(57)【特許請求の範囲】
【請求項１】
最小消去回数の非使用中ブロックを、次にデータ書き込みを行うべき候補ブロックに設定する設定手段と、データ書き込み要求が生じると前記候補ブロックにデータを書込む書込手段とを備えるＮＡＮＤ型フラッシュメモリを用いた記憶装置において、
最小消去回数の使用中ブロックのデータを、最大消去回数の非使用中ブロックへ移動させるデータ移動手段と、
前記非使用中ブロックの最大消去回数と予め定められた実行閾値消去回数とを比較し、非使用中ブロックの最大消去回数が前記実行閾値消去回数を超えている第１の条件が成立する場合に、前記データ移動手段によるデータの移動を指示する制御手段と
を具備することを特徴とするＮＡＮＤ型フラッシュメモリを用いた記憶装置。
【請求項２】
前記制御手段は、非使用中ブロックの最大消去回数と予め定められた実行閾値消去回数とを比較し、非使用中ブロックの最大消去回数が前記実行閾値消去回数を超えている第１の条件が成立する場合に、更に、非使用中ブロック中の最小消去回数と使用中ブロック中の最小消去回数とを比較し、非使用中ブロック中の最小消去回数が使用中ブロック中の最小消去回数より大きい第２の条件の成立を検出し、この第２の条件が成立する場合に、更に、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件の成立を検出し、前記第１の条件と前記第２の条件と前記第３の条件が全て成立する場合に、前記データ移動手段によるデータの移動を指示することを特徴とする請求項１に記載のＮＡＮＤ型フラッシュメモリを用いた記憶装置。
【請求項３】
前記制御手段は、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件が成立する場合に、前記データ移動手段によるデータの移動を指示することを特徴とする請求項１に記載のＮＡＮＤ型フラッシュメモリを用いた記憶装置。
【請求項４】
前記制御手段は、非使用中ブロック中の最小消去回数と使用中ブロック中の最小消去回数とを比較し、非使用中ブロック中の最小消去回数が使用中ブロック中の最小消去回数より大きい第２の条件が成立する場合に、更に、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件の成立を検出し、前記第２の条件及び前記第３の条件が成立する場合に、前記データ移動手段によるデータの移動を指示することを特徴とする請求項１に記載のＮＡＮＤ型フラッシュメモリを用いた記憶装置。
【請求項５】
最小消去回数の非使用中ブロックを、次にデータ書き込みを行うべき候補ブロックに設定する設定ステップと、データ書き込み要求が生じると前記候補ブロックにデータを書込む書込ステップと、
最小消去回数の使用中ブロックのデータを、最大消去回数の非使用中ブロックへ移動させるデータ移動ステップと、
前記非使用中ブロックの最大消去回数と予め定められた実行閾値消去回数とを比較し、前記非使用中ブロックの最大消去回数が前記実行閾値消去回数を超えている第１の条件が成立する場合に、前記データ移動ステップによるデータの移動を指示する制御ステップと
を有することを特徴とするＮＡＮＤ型フラッシュメモリの使用方法。
【請求項６】
前記制御ステップでは、非使用中ブロックの最大消去回数と予め定められた実行閾値消去回数とを比較し、非使用中ブロックの最大消去回数が前記実行閾値消去回数を超えている第１の条件が成立する場合に、更に、非使用中ブロック中の最小消去回数と使用中ブロック中の最小消去回数とを比較し、非使用中ブロック中の最小消去回数が使用中ブロック中の最小消去回数より大きい第２の条件の成立を検出し、この第２の条件が成立する場合に、更に、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件の成立を検出し、前記第１の条件と前記第２の条件と前記第３の条件が全て成立する場合に、前記データ移動ステップによるデータの移動を指示することを特徴とする請求項５に記載のＮＡＮＤ型フラッシュメモリの使用方法。
【請求項７】
前記制御ステップでは、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件が成立する場合に、前記データ移動ステップによるデータの移動を指示することを特徴とする請求項５に記載のＮＡＮＤ型フラッシュメモリの使用法。
【請求項８】
前記制御ステップでは、非使用中ブロック中の最小消去回数と使用中ブロック中の最小消去回数とを比較し、非使用中ブロック中の最小消去回数が使用中ブロック中の最小消去回数より大きい第２の条件が成立する場合に、更に、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件の成立を検出し、前記第２の条件及び前記第３の条件が成立する場合に、前記データ移動ステップによるデータの移動を指示することを特徴とする請求項５に記載のＮＡＮＤ型フラッシュメモリの使用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＮＡＮＤ型フラッシュメモリを用いた記憶装置及びＮＡＮＤ型フラッシュメモリの使用方法に関するものである。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリは、ブロック単位で消去を行うことにより、データ書込みが可能となるデバイスである。このＮＡＮＤ型フラッシュメモリにおいては、消去回数が仕様により定められており、仕様を超えた消去（書替え）回数に達すると、不良ブロックとなる可能性が高まる。不良ブロックとなった場合には、それ以降の書替えは不可能となる。そのため、ＮＡＮＤ型フラッシュメモリにおいては、消去（書替え）がなされるブロックが集中しないようにするメモリの使用方法が求められる。
【０００３】
そこで、従来のＮＡＮＤ型フラッシュメモリの使用方法としては、各ブロックの消去回数を把握し、非使用中の（使用中となっていない）ブロックの中で消去回数が少ないブロックからデータ書込みに使用するようにしていた。
【０００４】
しかしながら、上記の従来手法によると、非使用中ブロックに限定した消去（書替え）回数の平滑化を行うことができるが、突出した消去（書替え）回数を持つブロックが早急に不良ブロックとなる可能性が高くなる。従って、システムとして保有するマージンブロックが枯渇し、以降の書替えを行うことができなくなる可能性があった。
【０００５】
また、従来、上記消去（書替え）回数の平滑化を行う手法としては、各ブロックの消去回数の管理を行い、その消去回数に基づいてブロック同士のデータの入れ替えを行うものが知られている（特許文献１参照）。具体的には、最大消去回数と最小消去回数の差が所定値以上となったとき、最大消去回数のブロックのデータと最小消去回数のブロックのデータとの入れ替えを行うというものである。
【０００６】
更に、特許文献２には、各ブロックのデータが消去された消去時期を計測する計測部と、各ブロックの消去回数をカウントし、ブロック毎に、空き状態或いは使用中状態であるかを示す状態値と上記消去時期と消去回数とを対応付けるブロックテーブルを備えて、空き状態で消去時期が最も古い方から一定数、または一定割合のブロックの中から、消去回数が最も少ないブロックを選択して、外部から供給されるデータを書込むことが開示されている。または、空き状態で消去時期が一定時期より古いブロックのうちで、消去回数が最も少ないブロックを選択して、外部から供給されるデータを書込むことが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−９１５３５号公報
【特許文献２】特開２００９−１６３３２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記特許文献１の手法によると、必ずしも非使用中ブロックであって消去回数が少ないブロックを確保することにはならないので、新たなデータ書き込み要求があった場合に、非使用中ブロックであって消去回数が少ないブロックにデータ書込みを行うことができない可能性がある。
【０００９】
また、特許文献２の手法は、空き状態のブロックに関する管理を行うものであるため、空き状態のブロックに限定した均等使用に留まる可能性がある。
【００１０】
本発明は、ＮＡＮＤ型フラッシュメモリを用いた記憶装置及びＮＡＮＤ型フラッシュメモリの使用方法の現状に鑑みてなされたもので、その目的は、システムの全体でブロックを均等使用することが可能となる、ＮＡＮＤ型フラッシュメモリを用いた記憶装置及びＮＡＮＤ型フラッシュメモリの使用方法を提供することである。
【課題を解決するための手段】
【００１１】
本発明に係るＮＡＮＤ型フラッシュメモリを用いた記憶装置は、最小消去回数の非使用中ブロックを、次にデータ書き込みを行うべき候補ブロックに設定する設定手段と、データ書き込み要求が生じると前記候補ブロックにデータを書込む書込手段とを備えるＮＡＮＤ型フラッシュメモリを用いた記憶装置において、最小消去回数の使用中ブロックのデータを、最大消去回数の非使用中ブロックへ移動させるデータ移動手段と、前記非使用中ブロックの最大消去回数と予め定められた実行閾値消去回数とを比較し、非使用中ブロックの最大消去回数が前記実行閾値消去回数を超えている第１の条件が成立する場合に、前記データ移動手段によるデータの移動を指示する制御手段とを具備することを特徴とする。
【００１２】
本発明に係るＮＡＮＤ型フラッシュメモリを用いた記憶装置では、前記制御手段は、非使用中ブロックの最大消去回数と予め定められた実行閾値消去回数とを比較し、非使用中ブロックの最大消去回数が前記実行閾値消去回数を超えている第１の条件が成立する場合に、更に、非使用中ブロック中の最小消去回数と使用中ブロック中の最小消去回数とを比較し、非使用中ブロック中の最小消去回数が使用中ブロック中の最小消去回数より大きい第２の条件の成立を検出し、この第２の条件が成立する場合に、更に、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件の成立を検出し、前記第１の条件と前記第２の条件と前記第３の条件が全て成立する場合に、前記データ移動手段によるデータの移動を指示することを特徴とする。
【００１４】
本発明に係るＮＡＮＤ型フラッシュメモリを用いた記憶装置では、前記制御手段は、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件が成立する場合に、前記データ移動手段によるデータの移動を指示することを特徴とする。
【００１５】
本発明に係るＮＡＮＤ型フラッシュメモリを用いた記憶装置では、前記制御手段は、非使用中ブロック中の最小消去回数と使用中ブロック中の最小消去回数とを比較し、非使用中ブロック中の最小消去回数が使用中ブロック中の最小消去回数より大きい第２の条件が成立する場合に、更に、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件の成立を検出し、前記第２の条件及び前記第３の条件が成立する場合に、前記データ移動手段によるデータの移動を指示することを特徴とする。
【００１６】
本発明に係るＮＡＮＤ型フラッシュメモリの使用方法は、最小消去回数の非使用中ブロックを、次にデータ書き込みを行うべき候補ブロックに設定する設定ステップと、データ書き込み要求が生じると前記候補ブロックにデータを書込む書込ステップと、最小消去回数の使用中ブロックのデータを、最大消去回数の非使用中ブロックへ移動させるデータ移動ステップと、前記非使用中ブロックの最大消去回数と予め定められた実行閾値消去回数とを比較し、前記非使用中ブロックの最大消去回数が前記実行閾値消去回数を超えている第１の条件が成立する場合に、前記データ移動ステップによるデータの移動を指示する制御ステップとを有することを特徴とする。
【００１７】
本発明に係るＮＡＮＤ型フラッシュメモリの使用方法は、前記制御ステップでは、非使用中ブロックの最大消去回数と予め定められた実行閾値消去回数とを比較し、非使用中ブロックの最大消去回数が前記実行閾値消去回数を超えている第１の条件が成立する場合に、更に、非使用中ブロック中の最小消去回数と使用中ブロック中の最小消去回数とを比較し、非使用中ブロック中の最小消去回数が使用中ブロック中の最小消去回数より大きい第２の条件の成立を検出し、この第２の条件が成立する場合に、更に、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件の成立を検出し、前記第１の条件と前記第２の条件と前記第３の条件が全て成立する場合に、前記データ移動ステップによるデータの移動を指示することを特徴とする。
【００１９】
本発明に係るＮＡＮＤ型フラッシュメモリの使用方法は、前記制御ステップでは、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件が成立する場合に、前記データ移動ステップによるデータの移動を指示することを特徴とする。
【００２０】
本発明に係るＮＡＮＤ型フラッシュメモリの使用方法は、前記制御ステップでは、非使用中ブロック中の最小消去回数と使用中ブロック中の最小消去回数とを比較し、非使用中ブロック中の最小消去回数が使用中ブロック中の最小消去回数より大きい第２の条件が成立する場合に、更に、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件の成立を検出し、前記第２の条件及び前記第３の条件が成立する場合に、前記データ移動ステップによるデータの移動を指示することを特徴とする。
【発明の効果】
【００２１】
本発明では、最小消去回数の使用中ブロックのデータを、最大消去回数の非使用中ブロックへ移動させる処理を、ブロックの消去回数による所定条件の成立により行うものであり、これにより、最小消去回数の非使用中ブロックを生成することにつながる。しかも、最小消去回数の非使用中ブロックを、次にデータ書き込みを行うべき候補ブロックに設定し、データ書き込み要求が生じると前記候補ブロックにデータを書込むようにしているので、上記で生成された、最小消去回数の非使用中ブロックへのデータ書込みを行って、システムの全体でブロックを均等使用することが可能となる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係るＮＡＮＤ型フラッシュメモリを用いた記憶装置が適用されるコンピュータシステムの一例を示すブロック図。
【図２】本発明の実施形態に係るＮＡＮＤ型フラッシュメモリを用いた記憶装置の要部ブロック図。
【図３】本発明の第１の実施形態に係るＮＡＮＤ型フラッシュメモリの使用方法を示すフローチャート。
【図４】本発明の実施形態に係るＮＡＮＤ型フラッシュメモリの使用方法におけるデータ移動の前のメモリ内部の状態を示す図。
【図５】本発明の実施形態に係るＮＡＮＤ型フラッシュメモリの使用方法におけるデータ移動の後のメモリ内部の状態を示す図。
【図６】本発明の第２の実施形態に係るＮＡＮＤ型フラッシュメモリの使用方法を示すフローチャート。
【図７】本発明の第３の実施形態に係るＮＡＮＤ型フラッシュメモリの使用方法を示すフローチャート。
【図８】本発明の第４の実施形態に係るＮＡＮＤ型フラッシュメモリの使用方法を示すフローチャート。
【発明を実施するための形態】
【００２３】
以下添付図面を参照して、本発明に係るＮＡＮＤ型フラッシュメモリを用いた記憶装置及びＮＡＮＤ型フラッシュメモリの使用方法の実施形態を説明する。各図において、同一の構成要素には、同一の符号を付して重複する説明を省略する。ＮＡＮＤ型フラッシュメモリを用いた記憶装置１０は、例えば、図１のコンピュータシステムに用いられる。
【００２４】
このコンピュータシステムは、ＣＰＵ２０が、主メモリ２１にプログラムやデータを読み込んで、各部を統括制御するシステムである。このコンピュータシステムには、このシステムに必要なデータを入力し、また、要求されたデータを出力するデータ入出力部２３がバス２２に接続されている。また、上記バス２２には、記憶装置１０が接続されている。
【００２５】
記憶装置１０には、ＮＡＮＤ型フラッシュメモリ１と、ＮＡＮＤ型フラッシュメモリ１を制御するコントローラ３とが備えられている。図２に示すように、コントローラ３には、設定手段３１、書込手段３２、データ移動手段３３、制御手段３４が設けられている。
【００２６】
設定手段３１は、ＮＡＮＤ型フラッシュメモリ１に関し、最小消去回数の非使用中ブロックを、次にデータ書き込みを行うべき候補ブロックに設定するものである。書込手段３２は、データ書き込み要求が生じると前記候補ブロックにデータを書込むものである。データ書き込み要求は、例えばＣＰＵ２０から送られる。
【００２７】
データ移動手段３３は、最小消去回数の使用中ブロックのデータを、最大消去回数の非使用中ブロックへ移動させるものである。制御手段３４は、ブロックの消去回数が「所定の場合」に前記データ移動手段３３によるデータの移動を指示するものである。
【００２８】
第１の実施形態では、ブロックの消去回数が「所定の場合」とは、次の場合であり、この場合には、制御手段３４がデータ移動手段３３によるデータの移動を指示する。その１は、ＮＡＮＤ型フラッシュメモリ１に関し、非使用中ブロックの最大消去回数が実行閾値消去回数を超えている第１の条件が成立する場合である。そこで、制御手段３４は、非使用中ブロックの最大消去回数と予め定められた実行閾値消去回数とを比較し、非使用中ブロックの最大消去回数が前記実行閾値消去回数を超えているか否かを検出する。
【００２９】
その２は、非使用中ブロック中の最小消去回数が使用中ブロック中の最小消去回数より大きい第２の条件の成立する場合である。そこで、制御手段３４は、第１の条件が成立する場合に、更に、非使用中ブロック中の最小消去回数と使用中ブロック中の最小消去回数とを比較し、非使用中ブロック中の最小消去回数が使用中ブロック中の最小消去回数より大きいか否かを検出する。
【００３０】
その３は、全ブロック中の最大消去回数と全ブロックの最小消去回数との差が予め定められた差閾値を超えている第３の条件の成立する場合である。そこで、制御手段３４は、第２の条件が成立する場合に、更に、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えているか否か検出する。
【００３１】
前記第１の条件と前記第２の条件と前記第３の条件が全て成立する場合に、制御手段３４は、前記データ移動手段３３によるデータの移動を指示する。
【００３２】
以上のように構成された第１の実施形態に係る記憶装置は、図３に示されるフローチャートのプログラムにより動作するので、このフローチャートに従って動作説明を行う。例えば、データの書き込み要求があると、スタートとなり、ＮＡＮＤ型フラッシュメモリ１に関し、非使用中ブロック中の最大消去回数を取得する（Ｓ１１）。次に、上記ステップＳ１１において取得した非使用中ブロック中の最大消去回数と予め定められた実行閾値消去回数とを比較し、非使用中ブロックの最大消去回数が上記実行閾値消去回数を超えているかを検出する（Ｓ１２）。ここに、実行閾値消去回数は、ＮＡＮＤ型フラッシュメモリ１の仕様により定められた消去回数閾値（この回数に達すると、不良ブロックとなる可能性が高まる消去回数）に、所定小数を乗じた値とする。例えば、消去回数閾値が６万であり、所定小数を０．９８と定めることができる。
【００３３】
上記ステップＳ１２において、ＮＯへ分岐すると、最小消去回数の非使用中ブロックを、次にデータ書き込みを行うべき候補ブロックに設定する設定ステップの処理と、データ書き込み要求に応じて、上記候補ブロックにデータを書込む書込ステップによる処理により、書き込み要求に係るデータを書込む（Ｓ３０）。
【００３４】
上記ステップＳ１２において、ＹＥＳへ分岐すると、非使用中ブロックと使用中ブロックの最大消去回数と最小消去回数とをそれぞれ、取得する（Ｓ１３）。次に、ステップＳ１３において取得した非使用中ブロックの最小消去回数と使用中ブロックの最小消去回数を比較し、非使用中ブロック中の最小消去回数が使用中ブロック中の最小消去回数より大きいかを検出する（Ｓ１４）。上記ステップＳ１４において、ＮＯへ分岐すると、前述のステップＳ３０が実行される。
【００３５】
上記ステップＳ１４において、ＹＥＳへ分岐すると、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えているかを検出する（Ｓ１５）。差閾値は、仕様により定められた消去回数閾値に全てのブロックが近付く前に、データ移動を行うための閾値であり、例えば、仕様により定められた消去回数閾値の半分程度とすることができる。上記ステップＳ１５において、ＮＯへ分岐すると、前述のステップＳ３０が実行される。
【００３６】
上記ステップＳ１５において、ＹＥＳへ分岐すると、書替え不能ブロックとして設定したブロックがあるかの検出が行われる（Ｓ１６）。上記ステップＳ１６において、ＮＯへ分岐すると、非使用中ブロック中の最大消去回数のブロックを書替え不能ブロックに設定する（Ｓ１７）。初回の判定における、この設定によって、この記憶装置の消去回数の上限が決まることになる。
【００３７】
ステップＳ１７に続く処理の場合には、或いは、ステップＳ１６においてＹＥＳへ分岐した場合には、書替不能ブロックを除く非使用中ブロック中の最大消去回数を再度取得し（Ｓ１８）、この最大消去回数となっている非使用中ブロックを移動先（データの移動先）ブロックＡとし、このブロックのデータを消去すると共に消去回数を１インクリメントする（Ｓ１９）。
【００３８】
次に、使用中ブロック中から最小消去回数となっているブロックを検索し、データを移動させる移動元ブロックＢに設定する（Ｓ２０）。次に、移動元ブロックＢのデータを移動先ブロックＡへ移動する（Ｓ２１）。
【００３９】
ステップＳ２１に続いて、ステップＳ３０の処理を行う。即ち、最小消去回数の非使用中ブロックを、次にデータ書き込みを行うべき候補ブロックに設定する設定ステップの処理を行う。このとき、上記候補ブロックは、移動元ブロックＢである。次に、データ書き込み要求に応じて、上記候補ブロックにデータを書込む書込ステップによる処理により、書き込み要求に係るデータを書込む（Ｓ３０）。
【００４０】
次に、上記のステップＳ１７〜Ｓ２１の処理をＮＡＮＤ型フラッシュメモリ１のブロックを示す図４、図５により説明する。ここでは、ＮＡＮＤ型フラッシュメモリ１のブロックは、ブロック番号１〜１０２４であり、ブロック番号３〜１０２０までのブロックは、本実施形態の移動処理に関係しないブロックとする。
【００４１】
また、最大消去回数の非使用中ブロックは、ブロック番号１０２２のブロックであり、消去回数は６００００である。最小消去回数の使用中ブロックは、ブロック番号０のブロックであり、消去回数は１である。ステップＳ１７においてブロック番号１０２２のブロックが書替え不能ブロックとされる。
【００４２】
ステップＳ１８においては、最大消去回数６００００が取得され、ステップＳ１９において、消去回数６００００の非使用中ブロック（ブロック番号１０２２）が移動先ブロックＡとされる。次に、ステップＳ２０において、最小消去回数１の使用中ブロック（ブロック番号０）が移動元ブロックＢとされる（図４）。
【００４３】
ステップＳ２１において、移動元ブロックＢである使用中ブロック（ブロック番号０）のデータが、移動先ブロックＡであるブロック（ブロック番号１０２２）へ移動される。この結果、図５に示すように、移動元ブロックＢであるブロック（ブロック番号０）は非使用中となり、消去回数が０の移動先ブロックＡであるブロック（ブロック番号１０２２）は、使用中となる。
【００４４】
以上により、移動元ブロックＢであるブロック（ブロック番号０）は非使用中となったため、ステップＳ３０の処理が行われる。即ち、最小消去回数の非使用中ブロックを、次にデータ書き込みを行うべき候補ブロックに設定する。ここでは、上記候補ブロックは、消去回数が０の移動元ブロックＢ（ブロック番号０）である。次に、データ書き込み要求に応じて、上記候補ブロック（ブロック番号０）にデータを書込む書込ステップによる処理により、書き込み要求のデータを書込む。
【００４５】
上記の処理により、最小消去回数の使用中ブロックのデータを、最大消去回数の非使用中ブロックへ移動させる処理を、所定条件の成立により行うものであり、これにより、最小消去回数の非使用中ブロックを生成することにつながる。しかも、最小消去回数の非使用中ブロックを、次にデータ書き込みを行うべき候補ブロックに設定し、データ書き込み要求が生じると前記候補ブロックにデータを書込むようにしているので、上記で生成された、最小消去回数の非使用中ブロックへのデータ書込みを行って、システムの全体でブロックを均等使用することが可能となる。
【００４６】
本実施形態において、最小消去回数の使用中ブロックのデータを、最大消去回数の非使用中ブロックへ移動させる処理を行う理由は次の通りである。消去回数の少ないブロックは、書替えがなされないブロックであり、参照される可能性が低いデータが記憶されていると考えられる。そのため、最小消去回数の使用中ブロックのデータを、最大消去回数の非使用中ブロックへ移動させたとしても、移動先の最大消去回数のブロックのデータは参照される可能性が低く、消去回数の更新スピードは遅いと考えられ、不良ブロックになり難いと推定されるためである。
【００４７】
第１の実施形態では、第１の条件と第２の条件と第３の条件が全て成立する場合に、前記データ移動手段３３によるデータの移動を指示することした。第２の実施形態では、第１の条件が成立する場合に、データ移動手段３３によるデータの移動を指示する。
【００４８】
第２の実施形態の処理を示すフローチャートは図６のようである。図３のフローチャートと比べると、ステップＳ１４、Ｓ１５が削除されている。この第２の実施形態によれば、非使用中ブロックの最大消去回数が実行閾値消去回数を超えた場合に、最小消去回数の使用中ブロックのデータを、最大消去回数の非使用中ブロックへ移動させる処理を行うので、最小消去回数のブロックが次に書込みを行う候補とすることができ、消去（書替え）回数を平滑にして記憶装置の寿命を長くすることが期待できる。
【００４９】
第３の実施形態では、前述の第３の条件が成立する場合に、データ移動手段３３によるデータの移動を指示する。第３の実施形態の処理を示すフローチャートは図７のようである。
【００５０】
図７のフローチャートと図３のフローチャートを比べると、図７のフローチャートにおいては、ステップＳ１２、Ｓ１４が削除されている。この第３の実施形態によれば、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件が成立する場合に、最小消去回数の使用中ブロックのデータを、最大消去回数の非使用中ブロックへ移動させる処理を行うので、最小消去回数のブロックが次に書込みを行う候補とすることができ、消去（書替え）回数を平滑にして記憶装置の寿命を長くすることが期待できる。
【００５１】
第４の実施形態では、前述の第２の条件及び前記第３の条件が成立する場合に、上記データ移動手段３３によるデータの移動を指示する。第４の実施形態の処理を示すフローチャートは図８のようである。
【００５２】
図８のフローチャートと図３のフローチャートを比べると、図８のフローチャートにおいては、ステップＳ１２が削除されている。この第４の実施形態によれば、非使用中ブロック中の最小消去回数と使用中ブロック中の最小消去回数とを比較し、非使用中ブロック中の最小消去回数が使用中ブロック中の最小消去回数より大きい第２の条件が成立する場合に、更に、全ブロック中の最大消去回数と全ブロックの最小消去回数との差を求め、この差が予め定められた差閾値を超えている第３の条件の成立を検出し、前記第２の条件及び前記第３の条件が成立する場合に、最小消去回数の使用中ブロックのデータを、最大消去回数の非使用中ブロックへ移動させる処理を行うので、最小消去回数のブロックが次に書込みを行う候補とすることができ、消去（書替え）回数を平滑にして記憶装置の寿命を長くすることが期待できる。
【符号の説明】
【００５３】
１  ＮＡＮＤ型フラッシュメモリ
３  コントローラ
１０  記憶装置
２０  ＣＰＵ
２１  主メモリ
２２  バス
２３  データ入出力部
３１  設定手段
３２  書込手段
３３  データ移動手段
３４  制御手段
【図１】
0006429196.tif 000002
【図２】
0006429196.tif 000003
【図３】
0006429196.tif 000004
【図４】
0006429196.tif 000005
【図５】
0006429196.tif 000006
【図６】
0006429196.tif 000007
【図７】
0006429196.tif 000008
【図８】
0006429196.tif 000009