(57)【特許請求の範囲】
【請求項１】
各フラッシュメモリで同じオフセット値を持つブロックから上位ブロックが構成されており、あるフラッシュメモリにデータを書き込む間に他のフラッシュメモリにデータローディングを行うインターリーブ方式でデータ演算が行われる複数のフラッシュメモリのデータを管理するための装置であって、
前記複数のフラッシュメモリに対する動作を制御するデバイスドライバと、
所定のフラッシュメモリでエラーブロックが発生した場合、前記エラーブロックに位置したデータを該当フラッシュメモリの所定ブロックに移動させる制御部と、
を含み、
前記制御部は、前記エラーブロックを該当フラッシュメモリの所定ブロックに移動させる際、前記所定ブロックを前記上位ブロックに含めることを該当フラッシュメモリの上位ブロック管理領域に記録し、
前記上位ブロック管理領域は、個々のフラッシュメモリの初期エラーブロックと前記初期エラーブロックに位置したデータを移動させたブロックとのマッピング情報を記録したエラーブロック管理領域とは別に設けられていることを特徴とするフラッシュメモリのデータ管理装置。
【請求項２】
各フラッシュメモリで同じオフセット値を持つブロックから上位ブロックが構成されており、あるフラッシュメモリにデータを書き込む間に他のフラッシュメモリにデータローディングを行うインターリーブ方式でデータ演算が行われる複数のフラッシュメモリのデータを管理するための方法であって、
前記複数のフラッシュメモリで発生したエラーブロックを把握する第１段階と、
前記エラーブロックに位置したデータを該当フラッシュメモリの所定ブロックに移動させる第２段階と、
を含み、
前記第１段階は、個々のブロックにデータ演算を行う際、データ演算失敗如何によってエラーブロックを把握し、
前記第２段階は、
所定のフラッシュメモリで発生したエラーブロックを該当フラッシュメモリの所定ブロックに移動させる第１過程と、
前記所定ブロックを前記上位ブロックに含めることを該当フラッシュメモリの上位ブロック管理領域に記録する第２過程と、を含み、
前記上位ブロック管理領域は、個々のフラッシュメモリの初期エラーブロックと前記初期エラーブロックに位置したデータを移動させたブロックとのマッピング情報を記録したエラーブロック管理領域とは別に設けられていることを特徴とするフラッシュメモリのデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフラッシュメモリのデータ管理装置及びその方法に係り、さらに詳細には、少なくとも一つ以上のフラッシュメモリを使用するシステムで、データ演算方式によって所定のフラッシュメモリで発生したエラーブロックを処理できるフラッシュメモリのデータ管理装置及びその方法に関する。
【背景技術】
【０００２】
一般的に、家電機器、通信機器、セットトップボックスなどの内蔵型システムでは、データを保存して処理するための保存媒体として不揮発性メモリが多く使われている。
【０００３】
前記不揮発性メモリのうち主に使われるフラッシュメモリは、電気的にデータを削除または再記録できる不揮発性記憶素子であって、マグネチックディスクメモリを基盤とする保存媒体に比べて電力消耗が少ないながらもハードディスクと同じく速いアクセスタイムを持ち、かつコンパクトなサイズのために携帯機器などに適している。
【０００４】
また、前記フラッシュメモリは、ハードウェアーの特性上既に記録されたデータに再記録する場合、該当データが記録されたブロック全体を削除する過程が必要である。
【０００５】
このように、前記フラッシュメモリでデータの記録及び削除単位の不一致により発生しうる性能低下を防止するために、論理アドレス及び物理アドレスの概念が導入された。
【０００６】
この時、前記論理アドレスは、ユーザーが所定のユーザープログラムを通じて前記フラッシュメモリで所定のデータ演算を行う場合に使われるアドレスであり、前記物理アドレスは、実際にフラッシュメモリで所定のデータ演算を行う場合に使われるアドレスである。
【０００７】
また、前記フラッシュメモリは一般的に、小ブロックフラッシュメモリと大ブロックフラッシュメモリとに大別できるが、前記小ブロックフラッシュメモリは、論理的な演算単位と物理的な演算単位とが同じである一方、前記大ブロックフラッシュメモリは、論理的な演算単位に比べて物理的な演算単位が大きいという特性を持つ。
【０００８】
すなわち、前記フラッシュメモリの論理的な演算単位及び物理的な演算単位をセクター及びページと称する場合を例として説明すれば、前記小ブロックフラッシュメモリは、前記セクター及びページの大きさが同じである一方、前記大ブロックフラッシュメモリは、前記ページが前記セクターに比べて所定倍数ほど大きい。
【０００９】
このようなフラッシュメモリのブロックは制限された削除回数を持つが、それは、前記フラッシュメモリは、所定ブロックに対する削除回数が基準値を超過するか、または物理的な特性のよくないブロックの場合に削除回数が前記基準値に近接すれば、エラーブロックが発生する恐れがあるからである。
【００１０】
この時、前記エラーブロックは、前記フラッシュメモリの工場出荷時に既に発生した初期エラーブロックと、前記フラッシュメモリのデータ演算中に発生するランタイムエラーブロックとに大別できる。
【００１１】
前記エラーブロックは、前記フラッシュメモリのあらゆるブロックで発生する可能性があり、前記フラッシュメモリの性能に大きな影響を及ぼすために、前記エラーブロックを効果的に処理できる多様な方法が提案されている。
【００１２】
図１は、一般的なフラッシュメモリの概略的な構造が図示された図面であって、前記フラッシュメモリで発生したエラーブロック処理のためのエラーブロック管理領域１０と、データの演算が行われるデータ領域２０とを含む。
【００１３】
ここで、前記エラーブロック管理領域１０は、前記フラッシュメモリで発生したエラーブロックについてのマッピング情報を含むエラーブロック情報領域１１と、前記エラーブロックに代えるための予備領域１２とを含む。
【００１４】
この時、前記マッピング情報は、前記エラーブロックを前記予備領域１２内の所定ブロックにマッピングさせるマッピングテーブルよりなる。
【００１５】
前記エラーブロック管理領域１０を利用した従来の技術によるフラッシュメモリのデータ管理方法を説明すれば、図２に図示されたように、まず前記フラッシュメモリの所定ブロックに対する初期エラー表示を確認する（Ｓ１１）。
【００１６】
前記初期エラー表示を通じて該当ブロックがエラーブロックであるかどうかを判断する（Ｓ１２）。
【００１７】
すなわち、該当ブロックが初期エラーブロックであるかどうかを判断することである。
【００１８】
前記判断の結果、エラーブロックである場合、前記エラーブロックを前記フラッシュメモリの正常ブロックにマッピングさせる（Ｓ１３）。
【００１９】
前記初期エラーブロックは、前記マッピング情報を通じて正常ブロックにマッピングされるが、前記初期エラーブロックは、前記マッピングテーブルにより前記予備領域１２の所定ブロックにマッピングされる。
【００２０】
したがって、前記初期エラーブロックに所定のデータ演算が行われる場合、前記マッピングテーブルにより、前記予備領域１２の所定ブロックでデータ演算が行われるようになる。
【００２１】
前記フラッシュメモリのあらゆるブロックについて初期エラーブロックの有無を判断するまで（Ｓ１４）、次のブロックに移動して初期エラーブロックの有無を判断する過程Ｓ１１、Ｓ１２、Ｓ１３を反復的に行う（Ｓ１５）。
【００２２】
この時、前記判断の結果、正常ブロックと判断されたが、データ演算が行われる途中でデータ演算失敗が発生すれば、該当ブロックはランタイムエラーブロックと判断される。
【００２３】
このように前記ランタイムエラーブロックが発生した場合、フラッシュメモリのデータ管理方法は、図３に図示されたように、所定ブロックでデータ演算を行う途中（Ｓ２１）でデータ演算が失敗したかどうかを判断する（Ｓ２２）。
【００２４】
すなわち、図４Ａに図示されたように、フラッシュメモリのデータ領域２０に含まれた所定のブロック２１でデータ演算を行う途中でデータ演算が失敗したかどうかを判断することである。
【００２５】
前記判断の結果、データ演算が失敗した場合、該当ブロックをエラーブロックと判断して前記マッピング情報に含める（Ｓ２３）。
【００２６】
また、前記エラーブロックを前記予備領域１２の所定ブロックにマッピングさせ（Ｓ２４）、前記マッピングされたブロックでデータ演算を行わせる（Ｓ２５）。
【００２７】
すなわち、図４Ｂに図示されたように、前記フラッシュメモリのデータ領域２０の所定ブロック２１のデータを、前記予備領域１２の所定ブロック１２ａに移動させる。
【００２８】
それ以後に前記エラーブロックでデータ演算を行う場合には、前記マッピング情報によって、前記エラーブロックからマッピングされた前記予備領域１２の所定ブロック１２ａでデータ演算が行われる。
【００２９】
この時、前記データ演算中のデータ書き込みを例として説明すれば、前記データ領域２０の所定ブロック２１でデータを書き込む途中でエラーブロックが発生すれば、前記データを前記予備領域１２の所定ブロック１２ａに移動させる。
【００３０】
また、前記エラーブロック２１でデータ演算を再び行う場合には、前記マッピング情報によって、前記予備領域１２の所定ブロック１２ａでデータ書き込みが行われる。
【００３１】
以後、前記データ演算が完了するまで、データ演算中にエラーブロックが発生したかどうかを判断する過程Ｓ２１、Ｓ２２、Ｓ２３、Ｓ２４、Ｓ２５を反復的に行う（Ｓ２６）。
【００３２】
しかし、前記のような従来のフラッシュメモリのデータ管理方法は、単一フラッシュメモリに限って使用できるため、少なくとも一つ以上のフラッシュメモリを含むシステムでは使用し難い問題点がある。
【００３３】
特許文献１はフラッシュメモリの特定領域を予備（spare）領域で指定して、フラッシュメモリに使い動作が遂行された中特定ブロックにエラーが発生すると、特定ブロックを指定された予備領域のブロックに再割当てする再割当て機能を持つフラッシュメモリを利用した補助記憶装置及びその方法を開示しているが、これは単一フラッシュメモリで使い回数が限られたフラッシュメモリの特性上発生する書き込動作でのブロックエラー及びベッドブロック発生を解決するためのこととして多数のフラッシュメモリを含めるシステムに適用しがたい問題点がある。
【特許文献１】韓国公開特許第１９９９−００５５９７２号
【発明の開示】
【発明が解決しようとする課題】
【００３４】
本発明は複数のフラッシュメモリを使用するシステムで、前記フラッシュメモリで発生したエラーブロックを効率的に処理できるフラッシュメモリのデータ管理装置及びその方法を提供するところにその目的がある。
【課題を解決するための手段】
【００３５】
前記目的を達成するために、本発明の実施例によるフラッシュメモリのデータ管理装置は、少なくとも一つ以上のフラッシュメモリに対する動作を制御するデバイスドライバと、所定のフラッシュメモリでエラーブロックが発生した場合、前記エラーブロックに位置したデータを該当フラッシュメモリの所定ブロックに移動させる制御部と、を含む。
【００３６】
望ましくは、前記制御部は、マルチチャンネル方式によるデータ演算を行う場合、前記エラーブロックと同じオフセット値を持つ他のフラッシュメモリのブロックに位置したデータを、各フラッシュメモリの所定ブロックに移動させる。
【００３７】
望ましくは、前記制御部は、インターリーブ方式によるデータ演算を行う場合、各フラッシュメモリで同じオフセット値を持つブロックよりなる上位ブロックを生成する。
【００３８】
望ましくは、前記制御部は、前記エラーブロックを該当フラッシュメモリの所定ブロックに移動させ、前記所定ブロックを前記上位ブロックに含める。
【００３９】
一方、本発明の実施例によるフラッシュメモリのデータ管理方法は、少なくとも一つ以上のフラッシュメモリで発生したエラーブロックを把握する第１段階と、前記エラーブロックに位置したデータを該当フラッシュメモリの所定ブロックに移動させる第２段階と、を含む。
【００４０】
望ましくは、前記第１段階は、所定ブロックにデータ演算を行う場合、データ演算失敗如何によってエラーブロックを把握する。
【００４１】
望ましくは、前記第２段階は、マルチチャンネル方式によるデータ演算を行う場合、前記エラーブロックと同じオフセット値を持つ他のフラッシュメモリのブロックに位置したデータを、各フラッシュメモリの所定ブロックに移動させる。
【００４２】
望ましくは、前記第２段階は、インターリーブ方式によるデータ演算を行う場合、各フラッシュメモリで同じオフセット値を持つブロックよりなる上位ブロックを生成する過程を含む。
【００４３】
望ましくは、前記第２段階は、所定のフラッシュメモリで発生したエラーブロックを該当フラッシュメモリの所定ブロックに移動させる第１過程と、前記所定ブロックを前記上位ブロックに含める第２過程と、を含む。
【００４４】
その他の実施例の具体的な事項は詳細な説明及び図面に含まれている。
【発明の効果】
【００４５】
本発明のフラッシュメモリのデータ管理装置及びその方法によれば、次のような効果が一つまたはそれ以上ある。
【００４６】
第１に、少なくとも一つ以上のフラッシュメモリを使用するシステムで、各フラッシュメモリで発生したエラーブロックによる性能低下を効果的に防止できる。第２に、複数のフラッシュメモリのデータを管理する方式によってエラーブロックを処理する方法を異ならせて、各データ管理方式によって最適の性能を保証できる。
【発明を実施するための最良の形態】
【００４７】
本発明の利点及び特徴、そしてこれを達成する方法は添付された図面に基づいて詳細に後述されている実施例を参照すれば明確になる。しかし、本発明は以下で開示される実施例に限定されるものではなく、この実施例から外れて多様な形に具現でき、本明細書で説明する実施例は本発明の開示を完全にし、本発明が属する技術分野で当業者に発明の範ちゅうを完全に報せるために提供されるものであり、本発明は請求項及び発明の詳細な説明により定義されるだけである。一方、明細書全体に亙って同一な参照符号は同一な構成要素を示す。
【００４８】
以下、添付された図面を参照して本発明の望ましい実施例を詳細に説明する。
【００４９】
最近複数のフラッシュメモリを使用するシステムは、主にマルチチャンネル方式及びインターリーブ方式を使用して全体的な性能を向上させている。
【００５０】
ここで、前記マルチチャンネル方式は、複数のフラッシュメモリを制御するための制御ラインを共有して使用するために、各フラッシュメモリに同時に並列的にデータを書き込みうる。
【００５１】
すなわち、図５Ａに図示されたように、二つのフラッシュメモリ１１１、１１２を制御するデバイスドライバ１１３が制御ライン１１４を共有し、データライン１１５、１１６は各フラッシュメモリ１１１、１１２を別途に使用する。
【００５２】
したがって、前記マルチチャンネル方式は各フラッシュメモリのバスがｎビット、フラッシュメモリの数をｍと仮定すれば、ｎ×ｍバスを持つ一つのフラッシュメモリのように使用できる。
【００５３】
このようなマルチチャンネル方式の動作は図５Ｂに図示されたように、前記マルチチャンネル方式は、制御ライン１１４を共有するために、データ演算命令及びデータ演算が行われるアドレスを含む制御信号１１７を、各フラッシュメモリ１１１、１１２に同時に伝送する。
【００５４】
また、前記各フラッシュメモリ１１１、１１２に対するデータライン１１５、１１６は別途に使用するために、各フラッシュメモリ１１１、１１２のデータのローディング１１８及びデータ演算１１９が同時に行われる。
【００５５】
この時、前記データローディング１１８は、各フラッシュメモリ１１１、１１２に該当するデータを共にローディングするために、総フラッシュメモリに該当するデータがローディングされる。
【００５６】
また、前記インターリーブ方式は、複数のフラッシュメモリがデータラインを共有するために、多重データ書き込み演算を行う場合を例として説明すれば、所定フラッシュメモリに対するデータローディング後、データを書き込む間に他のフラッシュメモリにデータをローディングできる。
【００５７】
このようなインターリーブ方式は、図６Ａに図示されたように、二つのフラッシュメモリ１２１、１２２を制御するデバイスドライバ１２３が前記各フラッシュメモリ１２１、１２２とデータライン１２４を共有し、制御ライン１２５、１２６は、各フラッシュメモリ１２１、１２２を別途に使用する。
【００５８】
前記インターリーブ方式の動作は、図６Ｂに図示されたように、所定フラッシュメモリに、データ演算命令及びデータ演算が行われるアドレスを含む制御信号１２７ａを伝送してデータローディング１２８ａを行った後、データ演算１２９ａが行われる間に他のフラッシュメモリにデータ演算命令及びデータ演算が行われるアドレスを含む制御信号１２７ｂを伝送し、データローディング１２８ｂを行ってデータ演算１２９ｂを行う。
【００５９】
本実施例は、前記のような複数のフラッシュメモリが使われたシステムで、前記各フラッシュメモリにエラーブロックが発生した場合、データの安定性確保及び効率的なエラーブロック処理のためのフラッシュメモリのデータ管理装置であって、図７に図示されたように、複数のフラッシュメモリ２１０、２２０、２３０の動作を制御するデバイスドライバ３００と、所定のフラッシュメモリでエラーブロックが発生した場合、前記エラーブロックに位置したデータを該当フラッシュメモリの所定ブロックに移動させる制御部４００と、を含む。
【００６０】
このようなフラッシュメモリのデータ管理装置を、前記マルチチャンネル方式及びインターリーブ方式を例として説明する。
【００６１】
まず、前記マルチチャンネル方式の場合、図８に図示されたように、各フラッシュメモリ５１０、５２０は、それぞれ発生したエラーブロックのマッピング情報を含む仮想ブロック管理領域５１１、５２１、前記エラーブロックに位置したデータが移動する予備領域５１２、５２２、及び所定のデータ演算が行われるデータ領域５１３、５２３に区分できる。
【００６２】
ここで、前記マルチチャンネル方式の特性上、各フラッシュメモリ５１０、５２０に並列的にデータの演算を行えるために前記各データ領域５１３、５２３で同じオフセット値を持つブロック５１３ａ、５２３ａにデータが存在する。
【００６３】
この時、所定のフラッシュメモリでエラーブロックが発生すれば、前記制御部４００は、前記エラーブロックに位置したデータを該当フラッシュメモリの予備領域内の所定ブロックに移動させる。
【００６４】
また、前記制御部４００は、前記エラーブロックと同じオフセット値を持つ他のフラッシュメモリの正常ブロックに位置したデータも、該当フラッシュメモリの予備領域内の所定ブロックに移動させる。
【００６５】
それは、前記マルチチャンネル方式で各フラッシュメモリに並列的にデータ演算を行うために、所定のフラッシュメモリでエラーブロックが発生すれば、他のデータにも影響を及ぼしてデータの損失をもたらす恐れがあるために、各フラッシュメモリ５１０、５２０のデータを前記予備領域５１２、５２２の所定ブロックに移動させることである。
【００６６】
一方、他の実施例で前記インターリーブ方式の場合、前記マルチチャンネル方式と同じく、各フラッシュメモリ５１０、５２０は、エラーブロックのマッピング情報を含む仮想ブロック管理領域５１１、５２１、前記エラーブロックに位置したデータが移動する予備領域５１２、５２２、及び所定のデータ演算が行われるデータ領域５１３、５２３に区分できる。
【００６７】
また、前記制御部４００は図９に図示されたように、各フラッシュメモリ５１０、５２０で同じオフセット値を持つブロック５１０ａ、５２０ａを合わせた上位ブロック５３０を生成する。
【００６８】
ここで、前記仮想ブロック管理領域５１１、５２１は、図１０に図示されたように、前記上位ブロック５３０に関する情報を含む上位ブロック管理領域５１１ａ、５２１ａと、前記データ領域５１３、５２３でエラーブロックが発生した場合、前記エラーブロックを前記予備領域５１２、５２２に含まれた所定ブロックにマッピングさせるマッピングテーブルよりなるエラーブロック管理領域５１１ｂ、５２１ｂとを含む。
【００６９】
したがって、前記制御部４００は、前記上位ブロック管理領域５１１ａ、５２１ａに含まれた上位ブロック５３０を通じて演算する時、図１１に図示されたように、前記上位ブロック５３０に括られた各フラッシュメモリのブロック５１０ａ、５２０ａでデータ演算を順次に行える。
【００７０】
この時、前記インターリーブ方式は、所定のフラッシュメモリでエラーブロックが発生した場合、該当フラッシュメモリの予備領域の所定ブロックに前記エラーブロックに位置したデータを移動させる。
【００７１】
また、前記各エラーブロックのような上位ブロックに含まれた他のフラッシュメモリのブロックは、前記予備領域の所定ブロックと共に再び同じ上位ブロックに含まれる。
【００７２】
このように前記予備領域内の所定ブロックと、再び上位ブロックに括られた他のフラッシュメモリのブロックとに関する情報は、前記上位ブロック管理領域５１１ａ、５２１ａに保存されるために、再び該当上位ブロックに対するデータ演算を行う場合、前記エラーブロックではない前記予備領域内の所定ブロックでデータ演算を行う。
【００７３】
前記のように構成される本実施例によるフラッシュメモリのデータ管理方法を説明すれば次の通りである。
【００７４】
本実施例によるフラッシュメモリのデータ管理方法は、図１２に図示されたように、まず複数のフラッシュメモリが使われるシステムで、各システムについての初期エラーブロック情報を把握する（Ｓ１１０）。
【００７５】
前記初期エラーブロックは、フラッシュメモリの工場出荷当時に発生したエラーブロックであって、前記初期エラーブロックを把握してそれを予備領域の所定ブロックにマッピングさせるマッピングテーブルを生成する（Ｓ１２０）。
【００７６】
このようなマッピングテーブルは、前記仮想ブロック管理領域５１１、５２１に保存され、所定のフラッシュメモリの初期エラーブロックでデータ演算を行う場合、前記予備領域にマッピングされたブロックでデータ演算を行わせる。
【００７７】
すなわち、前記初期エラーブロックは、図１３に図示されたように、前記フラッシュメモリの工場出荷当時にデータ領域６３０に発生したエラーブロック６３１、６３２を意味する。
【００７８】
また、前記初期エラーブロック６３１、６３２は、前記予備領域６２０の所定ブロック６２１、６２２にマッピングされて、以後に前記初期エラーブロック６３１、６３２でデータ演算が行われる場合、前記予備領域６２０のマッピングされたブロック６２１、６２２でデータ演算を行わせる。
【００７９】
この時、前記初期エラーブロック６３１、６３２にマッピングされた前記予備領域６２０のブロックに対するマッピングテーブルは、前記仮想ブロック管理領域６１０に保存される。
【００８０】
このようなマッピングテーブルは、図１４Ａに図示されたように、前記予備領域６２０のブロックアドレスを該当エラーブロックに指定することもあり、図１４Ｂに図示されたように、前記予備領域６２０の各ブロックに所定のオフセット値を指定し、前記オフセット値によるエラーブロックを指定することもある。
【００８１】
以後、ユーザーが所定のフラッシュメモリのブロックでのデータ演算を要請すれば（Ｓ１３０）、前記マッピングテーブルに含まれたブロックであるかどうかによりエラーブロックであるかどうかを判断する（Ｓ１４０）。
【００８２】
前記判断の結果、エラーブロックである場合、前記予備領域の所定ブロックでデータの演算が行われる（Ｓ１５０）。
【００８３】
もし、前記判断の結果、正常ブロックである場合、該当ブロックでデータ演算を行い（Ｓ１６０）、データ演算実行途中で演算失敗が発生するかどうかを判断する（Ｓ１７０）。
【００８４】
前記データ演算実行途中で演算失敗が発生すれば、前記演算失敗が発生したブロックをランタイムエラーブロックと判断し（Ｓ１８０）、前記データ演算失敗が発生したブロックを前記マッピングテーブルに追加して、前記予備領域の所定ブロックにマッピングさせる（Ｓ１９０）。
【００８５】
以後、前記予備領域の所定ブロックにデータを移動させ（Ｓ２００）、再びデータ演算を行う（Ｓ２１０）。
【００８６】
この時、前記インターリーブ方式の場合、前記データ演算は、各フラッシュメモリで同じオフセット値を持つ括られた上位ブロックで行われる。
【００８７】
この時、前記予備領域の所定ブロックにデータを移動させる方法を、複数のフラッシュメモリを管理できる方法であるマルチチャンネル方式及びインターリーブ方式を例として説明する。
【００８８】
まず、前記マルチチャンネル方式の場合、図１５に図示されたように、所定フラッシュメモリで発生したエラーブロックのデータを、該当フラッシュメモリの予備領域内の所定ブロックに移動させる（Ｓ３１１）。
【００８９】
以後、前記エラーブロックと同じオフセット値を持つ他のフラッシュメモリの正常ブロックに位置したデータを、各フラッシュメモリの予備領域内の所定ブロックに移動させる（Ｓ３１２）。
【００９０】
すなわち、前記マルチチャンネル方式は、図１６に図示されたように、各フラッシュメモリ７１０、７２０のうち任意のフラッシュメモリ７１０のデータ領域７１３でエラーブロック７１３ａが発生した場合、前記エラーブロック７１３ａに位置したデータを、該当フラッシュメモリ７１０の予備領域７１２に含まれた所定ブロック７１２ａに移動させる。
【００９１】
この時、前記エラーブロック７１３ａ及び前記予備領域７１２内の所定ブロック７１２ａに対するマッピングテーブルはエラーブロック管理領域７１１に保存される。
【００９２】
この時、前記マルチチャンネル方式の特性上並列的にデータ演算を行うために、他のフラッシュメモリ７２０のデータ領域７２３で、前記エラーブロック７１３ａと同じオフセット値を持つ正常ブロック７２３ａに位置したデータも、該当フラッシュメモリ７２０の予備領域７２２に含まれた所定ブロック７２２ａに移動する。
【００９３】
また、前記正常ブロック７２３ａ及び前記予備領域７２２に含まれた所定ブロック７２２ａに対するマッピングテーブルは、該当フラッシュメモリ７２０のエラーブロック管理領域７２１に保存される。
【００９４】
一方、他の実施例で前記インターリーブ方式の場合、図１７に図示されたように、まず、所定のフラッシュメモリで発生したエラーブロックに位置したデータを、該当フラッシュメモリの予備領域内の所定ブロックに移動させる（Ｓ３２１）。
【００９５】
また、前記所定ブロックは、前記エラーブロックと同じオフセット値を持つ他のフラッシュメモリのブロックと共に上位ブロックを構成する（Ｓ３２２）。
【００９６】
すなわち、前記インターリーブ方式は、図１８に図示されたように、各フラッシュメモリ８１０、８２０いずれでもエラーブロックが発生していない場合、各フラッシュメモリ８１０、８２０のデータ領域８１３、８２３で、同じオフセット値を持つブロック８１３ａ、８２３ａは同じ上位ブロック８３０に括られ、前記上位ブロック８３０に関する情報は、各フラッシュメモリ８１０、８２０の仮想ブロック管理領域８１１、８２１に含まれた上位ブロック管理領域に保存されるようにする。
【００９７】
以後に所定のフラッシュメモリ８１０で、前記上位ブロック８３０に含まれたブロック８１３ａがエラーブロックとなる場合、図１９に図示されたように、前記エラーブロック８１３ａに位置したデータは、該当フラッシュメモリ８１０の予備領域８１２に含まれた所定ブロック８１２ａに移動する。
【００９８】
また、前記エラーブロック８１３ａと同じ上位ブロック８３０に含まれた他のフラッシュメモリ８２０のブロック８２３ａは、前記予備領域８１２に含まれた所定ブロック８１２ａと共に上位ブロック８３０を生成する。
【００９９】
この時、前記上位ブロック８３０に関する情報は、各フラッシュメモリ８１０、８２０の仮想ブロック管理領域８１１、８２１に含まれた上位ブロック管理領域に保存される。
【０１００】
本発明によるフラッシュメモリのデータ管理装置及びその方法を例示された図面を参照として説明したが、本発明は本明細書に開示された実施例及び図面によって限定されるものではなく、その発明の技術思想範囲内で当業者により多様に変形可能であることはいうまでもない。
【産業上の利用可能性】
【０１０１】
本発明は、フラッシュメモリ技術分野に好適に適用できる。
【図面の簡単な説明】
【０１０２】
【図１】一般的なフラッシュメモリの概略的な構造が図示された図面である。
【図２】従来技術による単一フラッシュメモリでの初期エラーブロック処理方法が図示された図面である。
【図３】従来の技術による単一フラッシュメモリでのランタイムエラーブロック処理方法が図示された図面である。
【図４Ａ】一般的な単一フラッシュメモリのデータ演算が図示された図面である。
【図４Ｂ】一般的な単一フラッシュメモリのランタイムエラーブロックに位置したデータの移動が図示された図面である。
【図５Ａ】一般的なマルチチャンネル方式を利用したフラッシュメモリ基盤のシステムが図示された図面である。
【図５Ｂ】一般的なマルチャンネル方式でのデータ演算過程が図示された図面である。
【図６Ａ】一般的なインターリーブ方式を使用したフラッシュメモリ基盤のシステムが図示された図面である。
【図６Ｂ】一般的なインターリーブ方式でのデータ演算過程が図示された図面である。
【図７】本発明によるフラッシュメモリのデータ管理装置が図示された図面である。
【図８】本発明によるマルチャンネル方式でのデータ演算が図示された図面である。
【図９】本発明によるインターリーブ方式での上位ブロックが図示された図面である。
【図１０】本発明によるインターリーブ方式での仮想ブロック管理領域が図示された図面である。
【図１１】本発明による上位ブロックでのデータ演算が図示された図面である。
【図１２】本発明によるフラッシュメモリのデータ管理方法が図示された図面である。
【図１３】本発明による初期エラーブロックについての処理方法が図示された図面である。
【図１４Ａ】本発明によるエラーブロックを予備領域の所定ブロックにマッピングさせるマッピングテーブルが図示された図面である。
【図１４Ｂ】本発明によるエラーブロックを予備領域の所定ブロックにマッピングさせるマッピングテーブルが図示された図面である。
【図１５】本発明によるマルチャンネル方式でのランタイムエラーブロックの処理方法が図示された図面である。
【図１６】本発明によるマルチャンネル方式でのランタイムエラーブロックに位置したデータを、予備領域の所定ブロックに移動させる方法が図示された図面である。
【図１７】本発明によるインターリーブ方式でのランタイムエラーブロックの処理方法が図示された図面である。
【図１８】本発明によるインターリーブ方式でのデータ演算方法が図示された図面である。
【図１９】本発明によるインターリーブ方式でのランタイムエラーブロックに位置したデータを、予備領域の所定ブロックに移動させる方法が図示された図面である。
【符号の説明】
【０１０３】
２１０、２２０、２３０  フラッシュメモリ
３００  デバイスドライバ
４００  制御部
【図１】
0004704759.tif 000002
【図２】
0004704759.tif 000003
【図３】
0004704759.tif 000004
【図４Ａ】
0004704759.tif 000005
【図４Ｂ】
0004704759.tif 000006
【図５Ａ】
0004704759.tif 000007
【図５Ｂ】
0004704759.tif 000008
【図６Ａ】
0004704759.tif 000009
【図６Ｂ】
0004704759.tif 000010
【図７】
0004704759.tif 000011
【図８】
0004704759.tif 000012
【図９】
0004704759.tif 000013
【図１０】
0004704759.tif 000014
【図１１】
0004704759.tif 000015
【図１２】
0004704759.tif 000016
【図１３】
0004704759.tif 000017
【図１４Ａ】
0004704759.tif 000018
【図１４Ｂ】
0004704759.tif 000019
【図１５】
0004704759.tif 000020
【図１６】
0004704759.tif 000021
【図１７】
0004704759.tif 000022
【図１８】
0004704759.tif 000023
【図１９】
0004704759.tif 000024