(57)【要約】  本発明は動的と静的ブロック管理方法を含むフラッシュメモリのブロック管理方法を開示する。動的ブロック管理方法は、１つの空きブロックを書き込み操作対象の交換ブロックとして選択することで、毎回の書き込み操作過程において、新しいデータ及び／又は操作される目標ブロック内の古いデータを交換ブロックに書き込み、目標ブロックを消去して、目標ブロックの論理アドレスを交換ブロックの論理アドレスに変更し、目標ブロックを次の書き込み操作対象の交換ブロックにする。静的ブロック管理方法は、動的に変化するパラメータ、シードを設定することで、各シードの値を設定した各フラッシュメモリブロックの論理アドレスに対応させる。シードの値が変化するとき、シードの値に対応するフラッシュメモリブロックと交換ブロック内のデータに対して交換処理を行い、シードの値に対応するフラッシュメモリブロックを次の書き込み操作対象の交換ブロックにする。【選択図】図３
2010515179.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリのブロック管理方法であって、前記フラッシュメモリの各チップは複数のブロックを含み、各ブロックは複数のページで構成され、各ページはデータ記憶領域と冗長領域に区分されており、
前記ブロックからアドレス・マッピングテーブル・リザーブ領域として１つまたは複数のブロックを選択し、ページ単位でフラッシュメモリのブロックの論理アドレスと物理アドレスとのマッピングテーブルを記録するステップと、
少なくとも１つの空きブロックを交換ブロックとして選択し、前記マッピングテーブルの記録ページの冗長領域に当該交換ブロックのアドレス・マッピングテーブルアイテムである、交換ブロックの論理アドレスと物理アドレスとのマッピングテーブルアイテムを確立するステップと、
書き込み操作を行うときに、交換ブロックの論理アドレス情報に基づき、新しいデータ及び／又は操作される目標ブロック内の古いデータを前記交換ブロックに対応的に書き込み、目標ブロックを消去し、その後、目標ブロックの論理アドレスを交換ブロックの論理アドレスに変更し、目標ブロックを次の書き込み操作対象の交換ブロックにするステップとを含むことを特徴とするフラッシュメモリのブロック管理方法。
【請求項２】
前記書き込み操作は、
１）リザーブ領域内のアドレス・マッピングテーブル情報を読み取るステップと、
２）マッピングテーブル及びマッピングテーブル冗長領域に記載された情報に基づき、前回操作が正常に終了したかどうかを判断するステップと、
３）非正常に終了した場合は、異常処理プロセスに進み、正常に終了した場合は、データの書き込みステップに進むステップと、
４）データを書き込むとき、まず目標ブロック内のページ位置が前にある古いデータを交換ブロックに書き込んでから、次に今回操作対象となる新しいデータを交換ブロックに書き込み、その後、残った古いデータを交換ブロックに書き込むステップと、
５）目標ブロックを消去するステップと、
６）マッピングテーブル内の交換ブロックの論理アドレスに対応する物理アドレスと目標ブロックの論理アドレスに対応する物理アドレスとを交換するステップと、
７）更新されたアドレス・マッピングテーブルと交換ブロックのアドレス・マッピングテーブルアイテムを、リザーブ領域における次のページ内のマッピングテーブル領域及びマッピングテーブル冗長領域に記録するステップとを含むことを特徴とする請求項１に記載のフラッシュメモリのブロック管理方法。
【請求項３】
更新されたマッピングテーブル情報を毎回操作して前記リザーブ領域の1ページに記録し、操作回数の増加に応じて、所定の法則に基づき前記リザーブ領域の各ページにおいて循環的に記録することを特徴とする請求項１または請求項２に記載のフラッシュメモリのブロック管理方法。
【請求項４】
前記法則は、更新されたマッピングテーブル情報を前記リザーブ領域の次のページに記録し、操作回数の増加に応じて、前記リザーブ領域の第１ページから最後のページまで循環的に各ページに記録することを特徴とする請求項３に記載のフラッシュメモリのブロック管理方法。
【請求項５】
前記異常処理プロセスは、
データを交換ブロックに書き込む過程において電力が途絶えたかどうかを判断して、電力が途絶えていた場合、部分的に書き込まれた交換ブロックを消去するステップと、
目標ブロックを消去する過程において電力が途絶えたかどうかを判断して、電力が途絶えていた場合、目標ブロックを消去して交換ブロック内のデータを目標ブロックにコピーし、最後に交換ブロックを消去するステップと、
マッピングテーブルの更新過程において電力が途絶えたかどうかを判断して、電力が途絶えていた場合、マッピングテーブルとマッピングテーブル冗長領域との情報に基づき、前回操作対象の目標ブロックと交換ブロックを見つけ出し、交換ブロック内のデータを目標ブロックにコピーして交換ブロックを消去するステップとを含むことを特徴とする請求項２に記載のフラッシュメモリのブロック管理方法。
【請求項６】
フラッシュメモリのブロック管理方法であって、前記フラッシュメモリの各チップは若干のブロックを含み、各ブロックは複数のページで構成され、各ページはデータ記憶領域と冗長領域に区分されており、
前記ブロックからアドレス・マッピングテーブル・リザーブ領域として１つまたは複数のブロックを選択して、ページ単位でフラッシュメモリのブロックの論理アドレスと物理アドレスとのマッピングテーブルを記録するステップと、
少なくとも１つの空きブロックを交換ブロックとして選択し、前記マッピングテーブルの記録ページの冗長領域に当該交換ブロックのアドレス・マッピングテーブルアイテムである、交換ブロックの論理アドレスと物理アドレスとのマッピングテーブルアイテムを確立するステップと、
動的に変化可能なパラメータであって、その異なる各値が、設定された異なるフラッシュメモリブロックの論理アドレスに対応するシードを設定するステップと、
シードの値が変化するとき、アドレス・マッピングテーブルの情報に基づき、シードの値に対応するフラッシュメモリブロック内のデータを前記交換ブロックに書き込み、当該対応するブロックを消去し、シードの値に対応するフラッシュメモリブロックの論理アドレスを交換ブロックの論理アドレスに変更し、シードの値に対応するフラッシュメモリブロックを次の書込み操作対象の交換ブロックにするステップと、
書込み操作を行うとき、交換ブロックの論理アドレス情報に基づき、新しいデータ及び／又は操作される目標ブロック内の古いデータを前記交換ブロックに対応的に書き込み、目標ブロックを消去し、その後、目標ブロックの論理アドレスを交換ブロックの論理アドレスに変更して、目標ブロックを次の書き込み操作対象の交換ブロックにするステップとを含むことを特徴とするフラッシュメモリのブロック管理方法。
【請求項７】
マッピングテーブルが更新されるとき、シードの値をマッピングテーブルの冗長領域に記録することを特徴とする請求項６に記載のフラッシュメモリのブロック管理方法。
【請求項８】
循環パラメーターNを設定し、前記マッピングテーブルの記録ページ上の記録位置をN回循環するごとに、シードの値が１増えることと、
毎回、前記マッピングテーブルの記録位置が前記リザーブ領域の第１ページに戻る時点で、一つの循環とすることを特徴とする請求項６または請求項７に記載のフラッシュメモリのブロック管理方法。
【請求項９】
前記シードの値はフラッシュメモリの損耗程度を判断するのに使用することができることを特徴とする請求項６または請求項７に記載のフラッシュメモリのブロック管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体記憶分野に関り、具体的には、フラッシュメモリのブロック損耗を均等化(Wear Leveling)させるフラッシュメモリのブロック管理方法に関する。
【背景技術】
【０００２】
フラッシュメモリは高密度、大容量、短い読み書き操作時間及び不揮発性などの利点を持つために、ますます広い産業分野で使用されているが、フラッシュメモリチップ自体の欠点がこのような記憶デバイスの応用を制約している。その１つは、フラッシュメモリチップの特有な書き込み及びブロックの消去の特徴による、記憶デバイスに対する特有な操作によるものである。通常のフラッシュメモリの書き込み操作過程は、今回操作しようとする目標ブロック内の古いデータを読み出してRAM（Random Access Memory）に入れ、その後、目標ブロックに対して消去操作を行う。フラッシュメモリチップブロックはページの順番に基づいて書き込まれるので、ブロック内のページ順番が前にある古いデータを、消去操作後の目標ブロックに先に書き込み、それから新しい操作データを書き込んで、配列順番が後ろにある目標ブロック内の古いデータを書き込み、最後にブロック管理情報を更新する。このような複雑な操作過程においては復元不可能なエラーが発生する恐れがある。例えば、目標ブロックの消去過程において、システムへの電力供給が不正に途絶えてしまい、操作対象の目標ブロック内のデータもまだ書き戻しておらず、マッピングテーブル情報も更新されていない場合、元の古いデータは無効データになってしまう。もう１つは、通常、フラッシュメモリには使用寿命があり、これはフラッシュメモリセル自体の記憶原理によって決まる。一般的に、フラッシュメモリセルの操作方式は、まず記憶セルのフローティングゲートを放電させて（即ち、通常の消去操作）通用状態にし、次にデータの書き込み過程において、フローティングゲートを充電して（即ち、通常のプログラミング）データの記憶に必要な状態にする。消去とプログラミングを繰り返す過程において、フローティングゲートはトンネル効果により蓄積される電子が徐々に増え、ある程度に達した後、フローティングゲートに再び充電しようとすると、より大きな電圧が必要となり、このようなとき、このフラッシュメモリチップの使用周期が終わると言われる。通常、NOR型フラッシュメモリについて、消去または再プログラミング回数は１万回程度、NAND型フラッシュメモリについては、１０万回程度である。
【０００３】
上記の値は論理的な平均値にすぎず、フラッシュメモリチップの実際の応用において、フラッシュメモリデバイスの実際の寿命は理論値に比べてはるかに短い。その原因は主にフラッシュメモリチップブロックの操作頻度が異なることにある。具体的にいうと、消去または再プログラミングの頻度が比較的高いフラッシュメモリのブロックは壊れやすい。不良ブロック個数が一定の数に達すると、フラッシュメモリチップは使用不能になってフラッシュメモリデバイスの寿命が終わりになる。一方、あまり操作されなかったブロックも有り、記憶デバイスが壊れるまで、操作される回数は少なく、結果として、非常に大きな浪費になってしまう。現在、フラッシュメモリメーカーが採用している一般的な方法は、フラッシュメモリチップ内に部分的なスペースを予め用意し、これらの不良ブロックを取り替えることである。しかし、この方法によってもフラッシュメモリの寿命を適当に引き伸ばすだけで、フラッシュメモリのブロックを十分に利用することが出来ないので、多くのフラッシュメモリリソースを無駄にしてしまう。
【０００４】
CN1567256A号中国特許出願「フラッシュメモリメディアデータ保護方法」ではフラッシュメモリメディアにデータを書き込む方法を開示しており、この方法によれば、毎回の書き込み操作で、フラッシュメモリメディアから空きブロックを選択してその際の書き込み操作対象の記憶ブロックとし、その後、目標ブロック内の古いデータと新しいデータをこの記憶ブロックに書き込み、フラッシュメモリメディアのアドレス・マッピングテーブル情報において目標ブロックと記憶ブロックの論理アドレス対応関係を記載する。操作過程では、上記の論理アドレスのマッピングテーブルを通じて元のブロックと新しいブロックに対するアドレッシングができる。この方法の主な目的は、データの書き込みのとき、電力供給が途絶える前にフラッシュメモリメディアに書き込まれたデータファイルを保護することである。しかし、この方法の実現過程は比較的複雑で、毎回の書き込み操作で、データを書き込むための空きブロックを見つけ出すのに大量の時間がかかり、同時に、データの安全性のために元マッピングアドレスなどの関連情報を記録することにより、データブロック内の冗長情報領域が大量に占用されてしまう。その上、この方法を採用すれば、物理アドレスが前にある空きブロックが頻繁に使用され、ブロックの使用頻度が不均等になり、フラッシュメモリデバイスの寿命を縮めてしまう。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、フラッシュメモリの損耗をさらに均等化させて寿命を有効的に引き伸ばし、操作速度及びデータの安全性をさらに向上させることができるフラッシュメモリのブロック管理方法を提供することを目的とするものである。
【課題を解決するための手段】
【０００６】
上記の目的を達成するために、本発明は以下の技術案を提供する。
【０００７】
フラッシュメモリの動的ブロック管理方法であって、前記フラッシュメモリの各チップは若干のブロックを含み、各ブロックは複数のページで構成され、各ページはデータ記憶領域と冗長領域に区分されており、前記ブロックからアドレス・マッピングテーブル・リザーブ領域として１つまたは複数のブロックを選択し、ページ単位でフラッシュメモリのブロックの論理アドレスと物理アドレスとのマッピングテーブルを記録するステップと、少なくとも１つの空きブロックを交換ブロックとして選択し、前記マッピングテーブルの記録ページの冗長領域に当該交換ブロックのアドレス・マッピングテーブルアイテムである交換ブロックの論理アドレスと物理アドレスとのマッピングテーブルアイテムを確立するステップと、書き込み操作を行うとき、交換ブロックの論理アドレス情報に基づき、新しいデータ及び／又は操作される目標ブロック内の古いデータを前記交換ブロックに対応的に書き込み、目標ブロックを消去し、その後、目標ブロックの論理アドレスを交換ブロックの論理アドレスに変更して、目標ブロックを次の書き込み操作対象の交換ブロックにするステップとを含むことを特徴とする。
【０００８】
さらに、その書き込み操作には、
１）リザーブ領域内のアドレス・マッピングテーブル情報を読み取るステップと、
２）マッピングテーブル及びマッピングテーブル冗長領域に記載された情報に基づき、前回操作が正常に終了しているかどうかを判断するステップと、
３）非正常に終了した場合は、異常処理プログラムに進み、正常に終了した場合は、データの書き込みステップに進むステップと、
４）データを書き込むとき、まず目標ブロック内のページ位置が前にある古いデータを交換ブロックに書き込んでから、次に今回操作対象となる新しいデータを交換ブロックに書き込み、その後、残った古いデータを交換ブロックに書き込むステップと、
５）目標ブロックを消去するステップと、
６）マッピングテーブル内の交換ブロックの論理アドレスに対応する物理アドレスと目標ブロックの論理アドレスに対応する物理アドレスとを交換するステップと、
７）更新されたアドレス・マッピングテーブルと交換ブロックのアドレス・マッピングテーブルアイテムを、リザーブ領域の次のページ内のマッピングテーブル領域及びマッピングテーブル冗長領域に記録するステップとを含む。
【０００９】
さらに、更新されたマッピングテーブル情報を毎回操作して前記リザーブ領域の1ページに記録し、操作回数の増加に応じて、所定の法則に基づき前記リザーブ領域の各ページにおいて循環的に記録する。
【００１０】
さらに、更新されたマッピングテーブル情報を前記リザーブ領域の次のページに記録し、操作回数の増加に応じて、前記リザーブ領域の第１ページから最後のページまで循環的に各ページに記録する。
【００１１】
前記異常処理プログラムには、データを交換ブロックに書き込む過程において電力が途絶えたかどうかを判断して、電力が途絶えていた場合、部分的に書き込まれた交換ブロックを消去するステップと、目標ブロックを消去する過程において電力が途絶えたかどうかを判断して、電力が途絶えていた場合、目標ブロックを消去して交換ブロック内のデータを目標ブロックにコピーし、最後に交換ブロックを消去するステップと、マッピングテーブルの更新過程において電力が途絶えたかどうかを判断して、電力が途絶えていた場合、マッピングテーブルとマッピングテーブル冗長領域の情報に基づき、前回操作対象の目標ブロックと交換ブロックを見つけ出し、交換ブロック内のデータを目標ブロックにコピーして交換ブロックを消去するステップを含む。
【００１２】
本発明は、フラッシュメモリの静的ブロック管理方法も開示する。前記フラッシュメモリの各チップは複数のブロックを含み、各ブロックは複数のページで構成され、各ページはデータ記憶領域と冗長領域に区分されており、前記ブロックからアドレス・マッピングテーブル・リザーブ領域として１つまたは複数のブロックを選択し、ページ単位でフラッシュメモリのブロックの論理アドレスと物理アドレスとのマッピングテーブルを記録するステップと、少なくとも１つの空きブロックを交換ブロックとして選択し、前記マッピングテーブルの記録ページの冗長領域に当該交換ブロックのアドレス・マッピングテーブルアイテムである、交換ブロックの論理アドレスと物理アドレスとのマッピングテーブルアイテムを確立するステップと、動的に変化可能なパラメータであって、その異なる各値が、設定された異なるフラッシュメモリブロックの論理アドレスに対応するシードを設定するステップと、シードの値が変化するとき、アドレス・マッピングテーブルの情報に基づき、シードの値に対応するフラッシュメモリブロック内のデータを前記交換ブロックに書き込み、当該対応する交換ブロックを消去し、シードの値に対応するフラッシュメモリブロックの論理アドレスを交換ブロックの論理アドレスに変更し、シードの値に対応するフラッシュメモリブロックを次の書き込み操作対象の交換ブロックにするステップと、書き込み操作を行うとき、交換ブロックの論理アドレス情報に基づき、新しいデータ及び／又は操作される目標ブロック内の古いデータを前記交換ブロックに対応的に書き込み、目標ブロックを消去し、その後、目標ブロックの論理アドレスを交換ブロックの論理アドレスに変更して、目標ブロックを次の書き込み操作対象の交換ブロックにするステップとを含む。
【００１３】
さらに、マッピングテーブルが更新されるとき、シードの値をマッピングテーブルの冗長領域に記録する。
【００１４】
さらに、循環パラメータNを設定し、前記マッピングテーブルの記録ページ上の記録位置をN回循環するごとに、シードの値が１増え、毎回、前記マッピングテーブルの記録位置が前記リザーブ領域の第１ページに戻る時点で、一つの循環とする。
【００１５】
前記シードの値はフラッシュメモリの損耗程度を判断するのに使用することができる。
【発明の効果】
【００１６】
本発明は、次のような効果がある。
【００１７】
本発明によるフラッシュメモリのブロック管理方法は、フラッシュメモリのブロックにおいて、フラッシュメモリブロックの論理アドレスと物理アドレスとのマッピングテーブルを記録するためのアドレス・マッピングテーブル・リザーブ領域を割り当てるとともに、マッピングテーブルの記録ページの冗長領域で交換ブロックのアドレス・マッピングテーブルアイテムを確立する。そして、書き込み操作を行うとき、アドレス・マッピングテーブルの情報に基づき、データを交換ブロックに対応的に書き込み、目標ブロックを消去し、その後、目標ブロックの論理アドレスを交換ブロックの論理アドレスに変更し、目標ブロックを次の書き込み操作対象の交換ブロックにする。上記のブロック管理方法は、物理アドレスをフラッシュメモリのブロックの論理アドレスに分散的に対応させることに相当する。ホストのファイルシステムは操作過程においてフラッシュメモリの論理アドレスに対するコールは不均等であるが、論理アドレスから物理アドレスへのマッピングが乱れるので、このアドレスマッピングは動的に変化する対応関係になり、操作を、管理に参与している実際のフラッシュメモリの物理ブロックに均等に分配できるため、フラッシュメモリの使用寿命を有効的に引き伸ばすことができる。
【００１８】
さらに、パラメータ、シードを確立することにより、シードの値に対応するフラッシュメモリの論理ブロックを上記のアドレス均等コールのための管理過程に強制的にプッシュする。シードの値の増加に伴い、全てのブロックを損耗均等化の操作に次々にプッシュし、損耗均等化に参与しないデッドブロックの発生を有効的に避けられる。
【００１９】
本発明では、単体フラッシュメモリチップ内で１つの交換ブロックだけを動的に保持して、同時に、交換ブロックには独立的な交換ブロックのマッピング・アドレス・リザーブ領域を有する。このような交換ブロック情報を独立させる方法によって、フラッシュメモリチップ内での交換ブロックの検索時間を有効的に減少させ、また、データ領域において交換ブロック情報を記録するための冗長領域をより多く割り当てなくても済むことで、操作時間及びスペースを有効的に減少させることができる。
【００２０】
本発明によるデータの書き込み操作過程では、まず目標ブロックの部分的な古いデータを交換ブロックに書き込み、次に新しいデータを交換ブロックに書き込んで残った古いデータを交換ブロックに書き込み、その後目標ブロックを消去する。このような過程において消去操作が操作過程の最後に完成されることで、たとえ異常状況が発生した場合も、有効なデータを保存でき、手がかりも提供できるため、正常なデータの復元が可能である。
【図面の簡単な説明】
【００２１】
【図１】本発明におけるフラッシュメモリチップの区分の概略図である。
【図２】図１に示すページ３の拡大概念図である。
【図３】本発明のブロック管理方法の実施形態における動的な均等化の概念図である。
【図４】本発明のブロック管理方法の実施形態における静的な均等化の概念図である。
【図５】本発明のブロック管理方法の実施形態によるフローチャートである。
【発明を実施するための形態】
【００２２】
以下、図面及び実施形態を参考にして、本発明について詳細に説明する。
【００２３】
一般的に、フラッシュメモリ装置はインターフェース、インタフェースコントローラ、フラッシュメモリコントローラ及びフラッシュメモリチップアレイを備える。インタフェースコントローラは、一般的にマイクロコントローラ（MCU）及びファームウェア（Firmware）を具備する。フラッシュメモリ記憶デバイスはインターフェースを通じてホストのアプリケーションプログラム（Application Program）からの操作コマンドを受信して、インターフェースによりコマンドをインターフェースコントローラに伝送し、インタフェースコントローラにおけるファームウェア及びマイクロコントローラによりホストのコマンドをボトムレイヤー（Bottom Layer）操作コマンドに解析する。その後、フラッシュメモリコントローラに伝送し、最後にフラッシュメモリコントローラが、コマンドをフラッシュメモリコントロール信号に解析してフラッシュメモリチップアレイの操作を制御する。ここで、ファームウェアがホストのコマンドをボトムレイヤー操作コマンドに解析することには、フラッシュメモリチップのブロック管理方法が含まれる。
【００２４】
フラッシュメモリチップのブロック管理を始める前に、まずその領域を区分する。一般的には、フラッシュメモリチップアレイは複数のフラッシュメモリチップを含み、各フラッシュメモリチップはマトリックスレイアウトを採用することができる。各チップの読み書きは一般的にページ（Page）単位で行われる。本実施形態では、1枚ページに２０４８バイトの有効データ領域と６４バイトの冗長情報領域が含まれ、６４枚のページで１つのブロック（Block）を構成し、単体フラッシュメモリチップにおけるブロック個数はチップの記憶スペースにより決められる。本説明では、単体フラッシュメモリチップの記憶スペースが主に６４Ｍバイト以下であるが、記憶スペースが６４Ｍバイト以上の場合、６４Ｍバイトごとに対して１つのアドレス・マッピングテーブル・リザーブ領域を割り当て、その操作方法は記憶スペースが６４Ｍバイト以下のものと類似する。
【００２５】
本発明のブロック管理方法は以下の３つの技術により実現される。１つはフラッシュメモリの消去操作または再プログラミング操作をできるだけ減少させることで、フラッシュメモリチップの損耗回数を減少させる。もう１つは、消去操作または再プログラミング操作をできるだけ平均的に全てのフラッシュメモリのブロックに分配する、即ち、フラッシュメモリの各ブロックの操作頻度を同じにさせる。またもう１つは、安全なブロック管理方法及びシステム策略を提供することで、フラッシュメモリデータの安全性を確保することである。本発明は上記の３つの側面に配慮し、実施過程には主に動的な均等化と静的な均等化の２つの処理方法を含む。本発明の実施形態によるフローチャートは、図５に示すように、本発明によるブロック管理の動的な均等化と静的な均等化管理を含む。以下、２つの実施形態を参考にして説明する。
【００２６】
（実施形態１）
本発明による実施過程では、まず、フラッシュメモリのブロックがファイルシステムにおける論理アドレスとフラッシュメモリチップにおける実際の物理アドレスとのマッピング関係を維持するために、各フラッシュメモリチップに対して１つのアドレス・マッピングテーブルを確立する。それから、上記のアドレス・マッピングテーブルを記録するために、各フラッシュメモリチップにおいて上記のアドレス・マッピングテーブルを記録するための１つの領域を割り当てる。なお、この領域のサイズはフラッシュメモリチップのデータ領域の設計寿命に関係している。そして、更新されたアドレス・マッピングテーブルを1ページに毎回記録する。その後、上記のマッピング関係を初期化して、データブロックにおいて１つの空きブロックを交換ブロックとして選択し、同時に、交換ブロックのアドレス・マッピングテーブルアイテムを単独で設ける。当該交換ブロックのアドレス・マッピングテーブルアイテムは、マッピング領域のデータブロックのアドレス・マッピングテーブルページが毎回記録される冗長位置に記録される。
【００２７】
図１に示すように、図１の１はいくつかのブロックに区分されたフラッシュメモリチップ単体を示す。必要に応じて、いくつかのブロックをマッピングテーブル領域リザーブブロックとして選択する。ブロックの個数は記憶設計されたデバイスの寿命により決定する、即ち、マッピングテーブル領域の寿命はデータ領域の寿命より長くなければならない。図１の２はマッピングテーブル・リザーブブロックの区分を示しており、図面の例では、リザーブ領域のため２つのブロックを割り当て、各ブロックには６４ページを含み、毎回の操作完了後、マッピングテーブルは１ページに記録される。マッピングテーブルには、図２に示すように、主に本チップの論理ブロックアドレス（LBA）と物理ブロックアドレス（PBA）との対応関係を記録する。図１の３は現在のマッピングテーブル・リザーブ領域操作ページを示し、図２は当該ページの拡大図で、マッピングテーブルの主な記録情報である。図２の４はフラッシュメモリチップ内の任意のブロックの論理アドレスと物理アドレスとのマッピング関係を示し、図２の５はフラッシュメモリチップ内の冗長領域交換ブロックのアドレス・マッピングテーブルを示す。
【００２８】
本実施形態による前記動的な均等化管理は以下のステップを含む。まず、フラッシュメモリチップに対して書き込み操作を行うとき、先に今回操作対象の目標ブロックにおいてページ位置が前にある古いデータを交換ブロックに書き込み、次に、今回操作対象のデータを交換ブロックに書き込み、その後、残った古いデータを交換ブロックに書き込み、今回書き込み操作対象の目標ブロックを消去する。それから、目標ブロックの論理アドレスを交換ブロックの論理アドレスに変更し、目標ブロックを次の書き込み操作対象の交換ブロックにする。具体的な操作の際には、目標ブロックの論理アドレスに対応する物理アドレスを、交換ブロックの論理アドレスに対応する物理アドレスに交換する方法を採用することができる。最後に、更新されたデータブロックのアドレス・マッピングテーブルと交換ブロックのアドレス・マッピングテーブルを、フラッシュメモリチップの予め用意されたマッピングテーブル領域とマッピングテーブル冗長領域にそれぞれ記録する。
【００２９】
フラッシュメモリの損耗均等化を実現する動的な均等化管理方法は図３に示されており、図３の６は現在操作中のマッピングテーブル情報の記録ページを示し、図３の８は現在のマッピングテーブル冗長領域内の交換ブロックの論理アドレスと物理アドレスとの対応関係を示し、図３の７は現在操作対象の目標ブロックの論理アドレスと物理アドレスとの対応関係を示す。図３の９と１０はそれぞれ、現在操作対象の目標ブロックと交換ブロックの物理アドレスのフラッシュメモリチップにおける実際位置を示す。書き込み操作を行うとき、ファームウェアが、先にフラッシュメモリリザーブ領域に記録されたマッピングテーブル情報及び交換ブロック情報を読み出し、マッピングテーブルに記録された論理アドレスと物理アドレスとの対応関係により、ブロック内のデータページの順番に基づいて、まずは操作対象の目標ブロック内のページ順番が前にある古いデータを交換ブロック内の対応位置に書き込み、操作データを交換ブロック内の対応位置に書き込み、それから、残った古いデータを交換ブロックに書き込む。その後、今回の操作対象の目標ブロックの論理アドレスに対応する物理ブロックを消去する。次は、目標ブロックの論理アドレスを交換ブロックの論理アドレスに変更して、目標ブロックを次の書き込み操作対象の交換ブロックにする。最後に、全ての操作が完了した後、電力が途絶える前に、更新されたマッピングテーブルアイテムをリザーブ領域の次の物理ページに記録する。動的な均等化過程において、アドレス・マッピングテーブルを記録するリザーブ領域が繰り替えし操作により早期に破損することを防止するため、一般的には、当該領域に多数のブロックを分配して、物理アドレスの順番に基づき、循環的に記録する。動的な均等化管理を通じて、ブロックが均等的に操作されることをほぼ保証することができる。
【００３０】
本発明によれば、データの書き込み操作過程において、消去操作が全ての操作過程の最後に完成されることで、異常状況が発生した場合も、有効データを保存でき、手がかりも提供できるため、正常なデータの復元が可能である。
【００３１】
異常状況１：データを交換ブロックに書き込む過程において、デバイスへの電力供給が不正に途絶えた場合、書き込み操作が完成していないため、マッピングテーブルは更新されず、記憶デバイスの操作が正常に戻った後、マッピングテーブルを通じて元データの読み取りが可能であり、マッピングテーブル中の交換ブロックに対して１回の消去操作を行うだけで、操作前の状態に復元できる。
【００３２】
異常状況２：全てのデータが交換ブロックに書き込まれたが、目標ブロックの消去過程において、デバイスへの電力供給が不正に途絶えた場合、マッピングテーブルは更新されないため、マッピングテーブルを読み取ると、前回の異常操作により古いデータが部分的に消去されたことがわかるが、前回のデータ書き込み操作が済んでいるので、交換ブロックは空ではない。ファームウェアは上記の判断条件に応じて、目標ブロックを消去し、その後、交換ブロック中のデータを目標ブロックにコピーして交換ブロックを消去するだけでよい。
【００３３】
異常状況３：マッピングテーブルの更新過程において、デバイスへの電力供給が不正に途絶えた場合、前回のマッピングテーブルの記録及びマッピングテーブルの冗長領域に記載された交換ブロックの情報に基づいて、前回操作の目標ブロック及び交換ブロックを見つける。この場合、目標ブロックは空きブロックであるが、交換ブロックは正常の空ではないデータブロックである。ファームウェアは上記の判断条件に応じて、交換ブロック内のデータを目標ブロックにコピーして交換ブロックを消去し、最後に更新されたマッピングテーブルをリザーブ領域に書き込むだけでよい。
【００３４】
（実施形態２）
動的な均等化方法により、大部分のフラッシュメモリのブロックの操作される確率を同じにすることができるが、それでも一部操作されないデッドブロックが存在する。デッドブロックとは、操作されたことがない、即ち、損耗均等化操作に参与しないフラッシュメモリのブロックである。動的な均等化方法でデッドブロックの問題を解決できないため、さらに静的な均等化方法を提出する。本発明によるマッピングテーブル・リザーブ領域において、アドレス・マッピングテーブルは、ページ単位でフラッシュメモリのブロックに順次記録される。１つのブロックに対しての書き込みが済むと、物理アドレスの順序に基づいて次のブロックに書き込み、マッピングテーブル領域の全体を循環すると、再びマッピングテーブル・リザーブ領域のスタート位置に戻る。本実施形態では、マッピングテーブル・リザーブ領域の全体を循環するため必要となる書き込み操作回数は、マッピングテーブル・リザーブブロック個数の６４倍である。静的な均等化過程において、まずはシード（Seed）と命名されたパラメータを確立し、以下の方法で当該シードの値を維持する。マッピングテーブル領域を１回循環する度にシードの値は１増え、または循環回数のパラメータNを設定し、N回循環すると、シードの値は１増える。それから、マッピングテーブルを更新するたびにシードの値をマッピングテーブル冗長領域に記録する。シードの値が変化するとき、シードの値に等しいフラッシュメモリの論理アドレスに対応する物理ブロック内のデータを交換ブロックに強制的にコピーし、交換ブロックとシードの値に対応するフラッシュメモリの論理ブロックに対して１回の動的な均等化処理を行い、その後、消去して記録する。静的な均等化管理では、動的な均等化管理に強制的に参与させるため、毎回１つの論理ブロックをプッシュする。フラッシュメモリにデッドブロックが含まれる場合、即ち、ホストに操作されないブロックが含まれる場合、シードの値の増加に伴い、デッドブロックをプッシュしてこの損耗均等化管理に参与させる。一旦デッドブロックが損耗均等化管理に参与すると、操作が平均的に各ブロックに分配される。
【００３５】
本実施形態には、実施形態１の動的均等化管理方法及び異常操作の処理方法の他に、上記のフラッシュメモリのブロックの静的均等化管理方法も含む。図４に示すように、図４の１１はフラッシュメモリチップ・マッピングテーブル・リザーブブロックを示し、本実施形態では、２つのブロックをリザーブブロックとして予め選択する。図４の１２は残ったブロックを示し、本実施形態ではそれをデータ領域に割り当てる。図４の１３が示すのは現在操作過程においてマッピングテーブルアイテムが記録する物理ページ位置であり、今回の操作が完了すると、従来の操作方法によれば、ファームウェアはその物理アドレスに１を追加してリザーブブロックに記録するが、本実施形態では、もしこのような方法を採用すると、マッピングテーブルの記録ページをデータ領域を示す位置１５に書き込むことになるので、本実施形態では、図４の１４に示すように、ファームウェアがマッピングテーブルの記録ページを改めてスタート位置まで循環させる。同時に、循環操作を１回行う度に、または循環パラメータNを設定して上記の循環をN回行う度に、ファームウェアにより維持されるシードの値が１増えて、循環回数あるいは循環パラメータNを記録する。シードの値が１増えると、ファームウェアは１回の操作を強制的に始動し、シードの値に等しい論理アドレスに対応する物理アドレスのデータを交換ブロックに書き込むと同時に、シードの値に対応する目標ブロックに対して消去操作を行い、その後、シードの値に等しいブロックの論理アドレスを交換ブロックの論理アドレスに変更し、当該ブロックを次の書き込み操作対象の交換ブロックにする。具体的に実現する際には、交換ブロックの物理アドレスとシードの値に等しい論理アドレスに対応するブロックの物理アドレスとを交換し、最後にデータブロックのアドレス・マッピングテーブルアイテムを次の物理ページに記録し、交換ブロックのアドレス・マッピングテーブルを当該ページの冗長領域に記録する。そうすると、損耗均等化の操作に参与させるよう全てのブロックを次々プッシュし、結果として、損耗均等化管理に参与しないデッドブロックの出現を有効的に避けられる。
【００３６】
以上、本発明の実施例によって詳細に説明したが、本発明はこれに限定されるものではなく、本発明が属する技術分野において通常の知識を有する者により、本発明の思想を逸脱しない前提でいくつかの簡単な修正または置換をする場合、本発明の提出する特許請求の範囲で限定される特許保護範囲に属すると見なすべきである。
【図１】
2010515179.tif 000003
【図２】
2010515179.tif 000004
【図３】
2010515179.tif 000005
【図４】
2010515179.tif 000006
【図５】
2010515179.tif 000007
【国際調査報告】
2010515179.tif 000008
2010515179.tif 000009
2010515179.tif 000010
2010515179.tif 000011