(57)【要約】【目的】データの書き換え時間を短縮することが可能な不揮発性メモリのデータ書換方法及び半導体装置を提供することを目的とする。【構成】書込用データ、及び書込先のブロックを示す論理アドレスを受け、書込先のブロックがデータ書込済みである場合に複数のブロックのうちでデータ未書込の空きブロックを一時保管ブロックとし、一時保管ブロックに書込用データを書き込むデータ書込ステップと、書込先のブロックと一時保管ブロックとの一対毎に、その一対に対応したインデックス番号を割り当て、インデックス番号を一時保管ブロックの不揮発性メモリ内での位置を表す物理アドレスに対応付けして表す管理テーブルを生成する管理ステップと、を有し、データ書込ステップでは、管理テーブルから、書込先のブロックに割り当てられているインデックス番号に対応した物理アドレスを取得し、物理アドレスにて表される一時保管ブロックに書込用データを書き込む。【選択図】図５
2019074797.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックを有する不揮発性メモリのデータ書換方法であって、
書込用データ、及び書込先のブロックを示す論理アドレスを受け、前記書込先のブロックがデータ書込済みである場合に、前記複数のブロックのうちでデータ未書込の空きブロックを一時保管ブロックとし、前記一時保管ブロックに前記書込用データを書き込むデータ書込ステップと、
前記書込先のブロックと前記一時保管ブロックとの一対に、その一対に対応したインデックス番号を割り当て、前記インデックス番号を前記一時保管ブロックの前記不揮発性メモリ内での位置を表す物理アドレスに対応付けして表す管理テーブルを生成する管理ステップと、を有し、
前記データ書込ステップでは、前記管理テーブルから、前記書込先のブロックに割り当てられている前記インデックス番号に対応した前記物理アドレスを取得し、前記物理アドレスにて表される前記一時保管ブロックに前記書込用データを書き込むことを特徴とする不揮発性メモリのデータ書換方法。
【請求項２】
前記データ書込ステップでは、前記論理アドレスにて示される前記書込先のブロックと対を為す前記一時保管ブロックに第１の書込用データが書き込まれた後に、第２の書込用データ、及び前記第１の書込用データが書き込まれている前記一時保管ブロックと対を為す前記書込先のブロックを表す前記論理アドレスを受けた場合には、前記第２の書込用データを、前記第１の書込用データが書き込まれている前記一時保管ブロックに書き込むことを特徴とする請求項１に記載の不揮発性メモリのデータ書換方法。
【請求項３】
前記管理ステップでは、前記一時保管ブロックに書き込まれた前記書込用データの蓄積容量が前記一時保管ブロックの記憶容量と等しくなった場合に、前記一時保管ブロックと対を為す前記書込先のブロックに代えて前記一時保管ブロックを外部アクセス可能なブロックに設定することを特徴とする請求項１又は２に記載の不揮発性メモリのデータ書換方法。
【請求項４】
前記管理ステップでは、前記一時保管ブロックと対を為す前記書込先のブロックを前記空きブロックに設定することを特徴とする請求項３に記載の不揮発性メモリのデータ書換方法。
【請求項５】
前記管理ステップでは、前記書込先のブロックを示す論理アドレスに対応した物理アドレスを、前記一時保管ブロックの物理アドレスに変更すると共に、前記一時保管ブロックと対を為す前記書込先のブロックの物理アドレスを未使用のアドレスに変更することを特徴とする請求項４に記載の不揮発性メモリのデータ書換方法。
【請求項６】
前記管理ステップでは、前記複数のブロックのうちの前記空きブロックの残数が所定数以下となった場合に、前記一時保管ブロックを外部アクセス可能なブロックに設定すると共に、前記一時保管ブロックと対を為す前記書込先のブロックを前記空きブロックに設定することを特徴とする請求項１〜５のいずれか１に記載の不揮発性メモリのデータ書換方法。
【請求項７】
前記管理ステップは、前記インデックス番号毎に、そのインデックス番号に対応した前記一時保管ブロックへの前記書込用データの書込後に他の一時保管ブロックで実施されたデータ書込の回数を示す経過情報を対応付けして前記管理テーブルに記述し、
前記回数が最も多い前記経過情報に対応付けされている前記インデックス番号に対応した前記一時保管ブロックを外部アクセス可能なブロックに設定することを特徴とする請求項６に記載の不揮発性メモリのデータ書換方法。
【請求項８】
複数のブロックを有する不揮発性メモリを含む半導体装置であって、
書込用データ、及び書込先のブロックを示す論理アドレスを受け、前記書込先のブロックがデータ書込済みである場合に、前記複数のブロックのうちでデータ未書込の空きブロックを一時保管ブロックとし、前記一時保管ブロックに前記書込用データを書き込むデータ書込制御部と、
前記書込先のブロックと前記一時保管ブロックとの一対に、その一対に対応したインデックス番号を割り当て、前記インデックス番号を前記一時保管ブロックの前記不揮発性メモリ内での位置を表す物理アドレスに対応付けして表す管理テーブルを生成する管理制御部と、を有し、
前記データ書込制御部は、前記管理テーブルから、前記書込先のブロックに割り当てられている前記インデックス番号に対応した前記物理アドレスを取得し、前記物理アドレスにて表される前記一時保管ブロックに前記書込用データを書き込むことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ、特に不揮発性メモリに書き込まれているデータの書き換えを行うデータ書換方法、及び不揮発性メモリを含む半導体装置に関する。
【背景技術】
【０００２】
不揮発性の半導体メモリとしてのＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリと称する）は、ページ単位でデータの書込及び読出を行い、複数ページからなるブロック単位でデータの消去を行う。
【０００３】
ＮＡＮＤメモリでは、データ書込済みのページにデータを上書きすることはできないので、例えば以下のようにデータの書き換えを行っている（例えば、特許文献１参照）。
【０００４】
すなわち、先ず、書込用データを、データが書き込まれていない空きブロックに書き込む。次に、アドレスで指定された書込先のブロック内から、データの書換対象とはなっていない全てのデータを読み出し、これを上記したように書込用データが書き込まれた空きブロックに書き込む。そして、このブロックを外部からアクセス可能なブロックとして設定すると共に、上記した書込先のブロックのデータを消去することによって空きブロックを確保する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１３４６８２号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このように、上記したデータ書き込み方法では、データの消去単位であるブロック単位でデータの書き換えを行っている。
【０００７】
よって、書込用データのデータ容量がブロックの記憶容量よりも小さいと、上記したように、書込先のブロックからデータの書換対象とはなっていない全てのデータを読み出し、これを空きブロックに書き込むというコピー処理が必要となる。したがって、データの書き換え処理に時間が掛かるという問題が生じた。
【０００８】
そこで、本発明は、データの書き換え時間を短縮することが可能な不揮発性メモリのデータ書換方法及び半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る不揮発性メモリのデータ書換方法は、複数のブロックを有する不揮発性メモリのデータ書換方法であって、書込用データ、及び書込先のブロックを示す論理アドレスを受け、前記書込先のブロックがデータ書込済みである場合に、前記複数のブロックのうちでデータ未書込の空きブロックを一時保管ブロックとし、前記一時保管ブロックに前記書込用データを書き込むデータ書込ステップと、前記書込先のブロックと前記一時保管ブロックとの一対に、その一対に対応したインデックス番号を割り当て、前記インデックス番号を前記一時保管ブロックの前記不揮発性メモリ内での位置を表す物理アドレスに対応付けして表す管理テーブルを生成する管理ステップと、を有し、前記データ書込ステップでは、前記管理テーブルから、前記書込先のブロックに割り当てられている前記インデックス番号に対応した前記物理アドレスを取得し、前記物理アドレスにて表される前記一時保管ブロックに前記書込用データを書き込む。
【００１０】
又、本発明に係る半導体装置は、複数のブロックを有する不揮発性メモリを含む半導体装置であって、書込用データ、及び書込先のブロックを示す論理アドレスを受け、前記書込先のブロックがデータ書込済みである場合に、前記複数のブロックのうちでデータ未書込の空きブロックを一時保管ブロックとし、前記一時保管ブロックに前記書込用データを書き込むデータ書込制御部と、前記書込先のブロックと前記一時保管ブロックとの一対に、その一対に対応したインデックス番号を割り当て、前記インデックス番号を前記一時保管ブロックの前記不揮発性メモリ内での位置を表す物理アドレスに対応付けして表す管理テーブルを生成する管理制御部と、を有し、前記データ書込制御部は、前記管理テーブルから、前記書込先のブロックに割り当てられている前記インデックス番号に対応した前記物理アドレスを取得し、前記物理アドレスにて表される前記一時保管ブロックに前記書込用データを書き込む。
【発明の効果】
【００１１】
本発明は、論理アドレスによって指定された書込先のブロックに書き込まれているデータを書き換えるにあたり、データ未書込の空きブロックを一時保管ブロックとし、この一時保管ブロックに書込用データを書き込む。更に、書込先のブロックと一時保管ブロックとの一対に、その一対に対応したインデックス番号を割り当て、このインデックス番号を、一時保管ブロックの物理アドレスに対応付けして表す管理テーブルを生成する。
【００１２】
これにより、ブロック内の一部のデータ片のみが書き換えられた場合にも、管理テーブルからインデックス番号を参照することにより、書き換え後のデータ片を読み出すことが可能となる。
【００１３】
よって、ブロック内の一部のデータ片を書き換えるにあたり、データ書込先のブロックに書き込まれている上記データ片以外のデータを一時保管ブロックへコピーし、この一時保管ブロックを外部アクセス可能な状態に設定するという一連の処理が必要となる従来のデータ書き換え方法に比べて、データの書き換え時間を短縮することが可能になる。
【００１４】
また、複数のブロックがデータの書換対象となる場合には複数の一時保管ブロックが管理対象となるが、本発明では、インデックス番号により、複数の一時保管ブロックのうちからアクセス対象となった一時保管ブロックを示す物理アドレスを取得できる。
【００１５】
よって、複数の一時保管ブロックに対して１つずつアクセス対象であるか否かの判定を行ってアクセス対象に該当する一時保管ブロックを検索する場合に比べて、迅速にアクセス対象の一時保管ブロックを表す物理アドレスを取得することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】ホスト装置１０と、本発明に係る半導体装置としての不揮発性メモリ２０と、を有する情報処理システム１００の構成を示すブロック図である。
【図２】フラッシュメモリ部２４の記憶領域の区分を模式的に表す図である。
【図３】アドレス変換テーブルＴＢ１の一例を表す図である。
【図４】一時保管ブロック管理テーブルＴＢ２の一例を表す図である。
【図５】データ書き換え処理の手順を表すフローチャートを示す図である。
【図６】データ書き換え処理の手順を表すフローチャートを示す図である。
【図７】データ書き換え直前の段階でのフラッシュメモリ部２４の状態の一例を表す図である。
【図８】データ書き換え処理による第２の段階でのフラッシュメモリ部２４の状態の一例を表す図である。
【図９】データ書き換え処理による第３の段階でのフラッシュメモリ部２４の状態の一例を表す図である。
【図１０】データ書き換え処理による第４の段階でのフラッシュメモリ部２４の状態の一例を表す図である。
【図１１】データ書き換え処理による第５の段階でのフラッシュメモリ部２４の状態の一例を表す図である。
【図１２】データ書き換え処理による第６の段階でのフラッシュメモリ部２４の状態の一例を表す図である。
【図１３】空きブロックが残り２つである場合におけるフラッシュメモリ部２４の状態の一例を表す図である。
【図１４】空きブロックが残り１つである場合におけるフラッシュメモリ部２４の状態の一例を表す図である。
【図１５】空きブロックが残り１つだけとなった場合に実施される登録動作及び空きブロックの確保動作とフラッシュメモリ部２４の状態とを表す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
【００１８】
図１は、ホスト装置１０と、本発明に係る半導体装置としての不揮発性メモリ２０と、を有する情報処理システム１００の構成を示すブロック図である。
【００１９】
ホスト装置１０は、不揮発性メモリ２０に記憶されているデータに基づく情報処理を行う。また、ホスト装置１０は、書込命令、書込先を表すアドレス及び書込用のデータ、或いは、読出命令及びアドレスを、不揮発性メモリ２０に供給する。
【００２０】
不揮発性メモリ２０は、ホストインターフェース部（以下、ホストＩＦ部と称する）２１、内部バス２２、ＲＡＭ（Random Access Memory）２３、フラッシュメモリ部２４、及びメモリ制御部２５を有する。
【００２１】
ホストＩＦ部２１は、ホスト装置１０から供給された書込命令、書込先を表すアドレス及び書込用のデータ、或いは、読出命令及び読出用のアドレスを内部バス２２に供給する。また、ホストＩＦ部２１は、フラッシュメモリ部２４から読み出された読出データをホスト装置１０に供給する。
【００２２】
ＲＡＭ２３は、ホスト装置１０から供給された書込用のデータ、フラッシュメモリ部２４から読み出された読出データ、並びにフラッシュメモリ部２４に格納されている管理情報を記憶する。
【００２３】
フラッシュメモリ部２４は、例えばＮＡＮＤ型の不揮発性の半導体メモリである。
【００２４】
図２は、フラッシュメモリ部２４の記憶領域の区分を模式的に表す図である。図２に示すように、フラッシュメモリ部２４の記憶領域は、データが書き込まれるデータ領域ＤＡと、管理情報が記憶される管理領域ＭＡと、を含む。
【００２５】
データ領域ＤＡは、図２に示すように、物理アドレス「０」〜「（ｎ−１）」（ｎは２以上の整数）にて示されるｎ個のブロックＢ１〜Ｂｎに区分けされている。
【００２６】
管理領域ＭＡには、アドレス変換テーブルＴＢ１と、一時保管ブロック管理テーブルＴＢ２と、が記憶される。
【００２７】
図３は、アドレス変換テーブルＴＢ１の内容の一例を表す図である。図３に示すように、アドレス変換テーブルＴＢ１には、ホスト装置１０が扱うアドレスである論理アドレスに対応付けして、フラッシュメモリ部２４のブロックを表す物理アドレスが記述されている。尚、アドレス変換テーブルＴＢ１には、物理アドレス「０」〜「（ｎ−１）」のうちで、データ書き込み済みのブロックを表す物理アドレスが記述される。
【００２８】
更に、アドレス変換テーブルＴＢ１には、データ書き込み済みブロックを表す物理アドレスに対応付けして、インデックス番号が記述される。インデックス番号とは、データ書き込み済みブロックのうちのデータ書換中のブロックと、このデータ書換中のブロックの代わりに書込用データが書き込まれる一時保管ブロックと、の一対を識別する為の番号である。ただし、データ書換中ではないブロックに対しては、一律に初期値（例えば０）を有するインデックス番号が記述される。
【００２９】
例えば、アドレス変換テーブルＴＢ１には、データ書き込み済み又はデータの書き換えが完了したブロックであり、且つ現時点でデータの書換え中ではないブロックを表す物理アドレスに対応付けして、インデックス番号として例えば「０」が記述される。また、データ書換中のブロックを表す物理アドレスに対応付けして、ブロック毎に異なる「１」以上の番号を有するインデックス番号が記述される。
【００３０】
図４は、一時保管ブロック管理テーブルＴＢ２の内容の一例を表す図である。
【００３１】
図４に示すように、一時保管ブロック管理テーブルＴＢ２には、上記した一時保管ブロックを表す物理アドレスと、この一時保管ブロックに対応した上記インデックス番号と、ページ有効情報と、経過情報とが記述される。
【００３２】
尚、一時保管ブロック管理テーブルＴＢ２には、アドレス変換テーブルＴＢ１に記述されているインデックス番号のうちで最大のインデックス番号に「１」を加えたインデックス番号ｋ（ｋは整数）が記述される。このインデックス番号ｋは、次に使用するインデックス番号を表すものであり、当該インデックス番号ｋに対応した物理アドレスとして、未使用のアドレスである例えば「０ｘＦＦＦＦ」が記述される。
【００３３】
図４に示すページ有効情報とは、物理アドレスにて示されるブロック内のページ毎に、そのページが、現時点でデータが書込まれていないためデータが更新されておらず、新たなデータ書き込みが可能な「有効ページ」であるのか、或いはデータが書き込まれたためにデータ更新されており、それ故に新たなデータの書き込みができない「無効ページ」であるのかを各ビット桁の論理レベルで表す情報である。
【００３４】
図４には、各ブロックが３つのページ（ページＰ１〜Ｐ３と称する）からなり、且つ「有効ページ」は論理レベル０で表され、「無効ページ」は論理レベル１で表されるものとして、ページ有効情報の一例が示されている。
【００３５】
例えば、図４において、物理アドレス「０」にて示されるブロックＢ１に対応したページ有効情報は３ビットの［１１０］である。つまり、当該ページ有効情報の第１ビットは、ブロックＢ１に含まれるページＰ１がデータ書込み済みのため、「無効ページ」であることを表す論理レベル１である。また、このページ有効情報の第２ビットは、ブロックＢ１に含まれるページＰ２がデータ書込み済みのため、「無効ページ」であることを表す論理レベル１である。更に、このページ有効情報の第３ビットは、ブロックＢ１に含まれるページＰ３がデータ更新されていない、「有効ページ」であることを表す論理レベル０である。
【００３６】
図４に示される経過情報とは、インデックス番号毎に、そのインデックス番号に対応したブロックへのデータ書込の後に他のブロックで実施されたデータ書込の回数を表す情報である。
【００３７】
尚、上記したアドレス変換テーブルＴＢ１及び一時保管ブロック管理テーブルＴＢ２を表す管理情報は、電源投入に応じてフラッシュメモリ部２４の管理領域ＭＡから読み出され、ＲＡＭ２３に記憶される。そして、メモリ制御部２５は、当該ＲＡＭ２３に記憶された管理情報（ＴＢ１、ＴＢ２）に対して以下の更新又は追記等の処理を施し、最終的に得られた管理情報を、例えば装置のシステムオフのような電源遮断時や装置がスリープ状態となるタイミング、或いは一連の書込み動作が終了したタイミングでフラッシュメモリ部２４の管理領域ＭＡに書き込む。
【００３８】
メモリ制御部２５は、ホスト装置１０から供給された読出命令及び読出用の論理アドレスに応じて、その論理アドレスに対応したデータをページ単位でフラッシュメモリ部２４から読み出し、これを内部バス２２を介してホストＩＦ部２１に供給する。
【００３９】
また、メモリ制御部２５は、ホスト装置１０から供給された書込命令、書込用のデータ及び書込先のブロックを示す論理アドレスに応じて、当該書込用のデータをフラッシュメモリ部２４に書き込む。
【００４０】
すなわち、メモリ制御部２５は、書込先のブロックを示す論理アドレスがアドレス変換テーブルＴＢ１に記述されていない場合には、書込用のデータを、フラッシュメモリ部２４のデータ未書込のブロック（以下、空きブロックと称する）に書き込む。
【００４１】
一方、この当該論理アドレスがアドレス変換テーブルＴＢ１に記述されている場合には、メモリ制御部２５は、以下のようなデータ書き換え処理を実行することにより、データの書換を行う。
【００４２】
図５及び図６は、かかるデータ書き換え処理の手順を表すフローチャートである。
【００４３】
図５において、先ず、メモリ制御部２５は、アドレス変換テーブルＴＢ１から、書込先のブロックを示す論理アドレスに対応したインデックス番号を取り込み、このインデックス番号が「０」であるか否かを判定する（ステップＳ１０）。尚、前述したように、インデックス番号が「０」である場合には、このインデックス番号に対応した物理アドレスは、データの書換中ではないブロックを表す。一方、インデックス番号が「０」以外である場合には、このインデックス番号に対応した物理アドレスは、データ書換中のブロックを表す。
【００４４】
ステップＳ１０において、インデックス番号が「０」であると判定されると、メモリ制御部２５は、フラッシュメモリ部２４の空きブロックのうちの１つを一時保管ブロックとし、この一時保管ブロックに、書込用のデータを書き込む（ステップＳ１１）。
【００４５】
上記したステップＳ１１の実行後、メモリ制御部２５は、一時保管ブロックに関する管理情報（ＴＢ１、ＴＢ２）の更新を行う（ステップＳ１２）。
【００４６】
例えば、ステップＳ１２において、メモリ制御部２５は、アドレス変換テーブルＴＢ１における、書込先のブロックを示す論理アドレスに対応したインデックス番号を「０」以外の番号に書き換える。尚、「０」以外の番号とは、例えば、現時点でアドレス変換テーブルＴＢ１に記述されているインデックス番号のうちで最大の番号に「１」を加えた番号である。更に、メモリ制御部２５は、この書き換え後のインデックス番号と、上記した一時保管ブロックに対応した物理アドレスと、ページ有効情報と、経過情報とを対応付けして、一時保管ブロック管理テーブルＴＢ２に追記する。
【００４７】
尚、上記したページ有効情報としては、この一時保管ブロック内において書込用のデータが書き込まれたページに対応したビット桁を論理レベル１、それ以外のページに対応した各ビット桁を論理レベル０にする。経過情報については、ステップＳ１２で書き換えられたインデックス番号に対応した数値を「１」にする。更に、当該ステップＳ１２にて書き換えられたインデックス番号以外のインデックス番号に対応した経過情報の数値を「１」だけ増加する。未使用のインデックス番号に対応した経過情報の数値は初期値「０」のままとする。
【００４８】
一方、ステップＳ１０において、インデックス番号が「０」ではないと判定されると、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２から当該インデックス番号に対応した物理アドレスを取り込む。そして、メモリ制御部２５は、当該インデックス番号に対応した物理アドレスによって表されるブロック、つまり一時保管ブロックに書込用のデータを書き込む（ステップＳ１３）。
【００４９】
かかるステップＳ１３の実行後、メモリ制御部２５は、一時保管ブロックに関する管理情報（ＴＢ２）の更新を行う（ステップＳ１４）。
【００５０】
例えば、ステップＳ１４において、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２の上記インデックス番号に対応したページ有効情報を更新する。つまり、ページ有効情報を表すビット群のうちで、ステップＳ１３にて書込用のデータが書き込まれたページに対応したビット桁を、論理レベル１に書き換える。また、経過情報については、ステップＳ１１で書込用のデータが書き込まれた一時保管ブロックに対応したインデックス番号に対応した数値を「１」にする。更に、上記ステップＳ１１で書込用のデータが書き込まれた一時保管ブロックに対応したインデックス番号以外のインデックス番号に対応した経過情報の数値を「１」だけ増加する。
【００５１】
このように、メモリ制御部２５は、上記したステップＳ１２及びＳ１４において、書込先のブロックと一時保管ブロックとの一対に、その一対に対応したインデックス番号を割り当てる。そして、メモリ制御部２５は、このインデックス番号を一時保管ブロックのフラッシュメモリ部２４内での位置を表す物理アドレスに対応付けして表す管理テーブル（ＴＢ１、ＴＢ２）を生成する。
【００５２】
上記したステップＳ１４の実行後、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２に記述されているページ有効情報に基づき、この一時保管ブロックに、１ブロック分（全ページ）のデータの書込が完了したか否かを判定する（ステップＳ１５）。つまり、メモリ制御部２５は、ページ有効情報によって表される全ビットが論理レベル１であるか否かを判定し、全ビットが論理レベル１である場合に１ブロック分（全ページ）のデータの書込が完了したと判定する。
【００５３】
ステップＳ１５において、一時保管ブロックに対して１ブロック分の書込が完了したと判定された場合、メモリ制御部２５は、空きブロックを確保する為の管理情報（ＴＢ１、ＴＢ２）更新を行う（ステップＳ１６）。
【００５４】
例えば、ステップＳ１６では、メモリ制御部２５は、アドレス変換テーブルＴＢ１において、上記した書込先のブロックを示す論理アドレスに対応した物理アドレスを、一時保管ブロックの物理アドレスに書き換えると共に、インデックス番号を「０」に書き換える。また、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２における書き換え前のインデックス番号に対応した物理アドレス、つまり一時保管ブロックと対を為す書込先のブロックを示す物理アドレスを、未使用のアドレス［０ｘＦＦＦＦ］に書き換える。更に、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２における、書き換え前のインデックス番号に対応したページ有効情報を、全ページをデータ書き込み有効とするように書き換える。
【００５５】
すなわち、メモリ制御部２５は、一時保管ブロックに１ブロック分（全ページ）のデータの書込が完了した場合に、ステップＳ１６を実行することにより、この一時保管ブロックと対を為す書込先のブロックに代えてこの一時保管ブロックを外部アクセス可能なブロックに設定する。更に、メモリ制御部２５は、一時保管ブロックと対を為す書込先のブロックを空きブロックに設定する。
【００５６】
上記したステップＳ１２又はＳ１６の実行後、或いはステップＳ１５において一時保管ブロックに対して１ブロック分の書込が完了していないと判定された場合、メモリ制御部２５は、データ領域ＤＡに含まれる空きブロックの残数が１つであるか否かを判定する（ステップＳ１７）。
【００５７】
ステップＳ１７において、空きブロックの残数が１つであると判定されると、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２から、最大の値を示す経過情報に対応したインデックス番号を検索する（ステップＳ１８）。尚、最大の値を示す経過情報に対応したインデックス番号の一時保管ブロックは、一時保管ブロック管理テーブルＴＢ２に記されている一時保管ブロックのうちで、データの書き換えが行われた時点からの経過時間が最も長いブロックである。
【００５８】
次に、メモリ制御部２５は、アドレス変換テーブルＴＢ１から、ステップＳ１８で検索したインデックス番号に対応した物理アドレスを取得する。そして、メモリ制御部２５は、この物理アドレスで示されるブロック、つまりデータ書換中のブロックから、書き換え対象となっていない未更新データを読み出す。要するに、ステップＳ１８で検索したインデックス番号に対応する一時保管ブロック管理テーブルのページ有効情報を参照し、データ書換中のブロックから「有効ページ」に該当するページを読み出す（ステップＳ１９）。
【００５９】
次に、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２において上記インデックス番号に対応した物理アドレスで表されるブロック、つまり一時保管ブロックに、上記した未更新データ、つまり「有効ページ」に該当するページを書き込む（ステップＳ２０）。
【００６０】
次に、メモリ制御部２５は、上記した一時保管ブロックを外部アクセス可能なブロックとして登録すると共に、空きブロックを確保する為の管理情報（ＴＢ１、ＴＢ２）更新を行う（ステップＳ２１）。
【００６１】
例えば、ステップＳ２１において、メモリ制御部２５は、アドレス変換テーブルＴＢ１における上記したインデックス番号に対応した物理アドレスを、一時保管ブロックの物理アドレスに書き換えると共に、そのインデックス番号を「０」に書き換える。また、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２における、書き換え前のインデックス番号に対応した物理アドレスを、未使用のアドレス［０ｘＦＦＦＦ］に書き換える。更に、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２における、書き換え前のインデックス番号に対応したページ有効情報を全ページ有効を表す状態に初期化し、このインデックス番号に対応した経過情報を「０」に初期化する。更に、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２において、上記した未更新データが書き込まれたブロックに対応したインデックス番号以外の各インデックス番号に対応した経過情報を「１」だけ増加する。
【００６２】
すなわち、メモリ制御部２５は、ステップＳ１７〜Ｓ２１を実行することにより、空きブロックの残数が所定数以下となった場合に、一時保管ブロックを外部アクセス可能なブロックに設定すると共に、一時保管ブロックと対を為す書込先のブロックを空きブロックに設定する。尚、上記フローチャートのステップＳ１７において、空ブロックの残数が１になった場合を説明したが、空ブロックの残数は任意に設定してもよい。
【００６３】
上記したステップＳ２１の実行後、又はステップＳ１７において空きブロックの残数が１つではないと判定された場合、メモリ制御部２５は図５及び図６に示されるデータ書き換え処理を終了する。
【００６４】
以下に、メモリ制御部２５が図５及び図６に示すデータ書き換え処理を実行することによって行われるデータの書き換え動作を具体例をもって説明する。
【００６５】
図７は、データ書き換え直前の段階でのフラッシュメモリ部２４の状態の一例を表す図である。
【００６６】
フラッシュメモリ部２４のデータ領域ＤＡは、例えば図７に示すように夫々が３つのページＰ１〜Ｐ３を有する７つのブロックＢ１〜Ｂ７からなる。
【００６７】
ここで、図７に示す一例では、フラッシュメモリ部２４のブロックＢ１のページＰ１〜Ｐ３には、データｄ１１〜ｄ１３が既に書き込まれている。更に、ブロックＢ２のページＰ１〜Ｐ３にはデータｄ２１〜ｄ２３が既に書き込まれており、その他のブロックＢ３〜Ｂ７が空きブロックとなっている。
【００６８】
よって、図７に示すようなデータ領域ＤＡの状態時には、アドレス変換テーブルＴＢ１には、データｄ１１〜ｄ１３が書き込まれているブロックＢ１の物理アドレス「０」と、論理アドレス［０ｘ１００］とが対応付けして記述されている。更に、アドレス変換テーブルＴＢ１には、図７に示すように、データｄ２１〜ｄ２３が書き込まれているブロックＢ２の物理アドレス「１」と、論理アドレス［０ｘ２００］とが対応付けして記述されている。
【００６９】
尚、データ書き換えを行う直前の段階では、データ書換中のブロックは存在しない。よって、図７に示すように、アドレス変換テーブルＴＢ１には、ブロックＢ１及びＢ２を示す物理アドレス「０」及び「１」に夫々対応付けして、インデックス番号「０」が記述されている。更に、空きブロックであるブロックＢ３〜Ｂ７は、現段階では一時保管ブロックには該当していないので、この段階では、例えば一時保管ブロック管理テーブルＴＢ２には図７に示すように情報の記述はない。
【００７０】
以下に、引き続きホスト装置１０から、夫々１ページ分のデータ容量を有するデータｄ１１〜ｄ１３及びｄ２１を下記の順にデータｄ１１ａ〜ｄ１３ａ及びｄ２１ａに書き換えるアクセスが為された場合を例にとって、段階的にフラッシュメモリ部２４の状態遷移を説明する。
【００７１】
［データｄ１１をｄ１１ａに書換］
先ず、ホスト装置１０は、データｄ１１をｄ１１ａに書き換える為に、書込先のブロックを示す論理アドレス［０ｘ１００］と、書込用データとしてのデータｄ１１ａと、を書込命令と共に不揮発性メモリ２０に供給する。
【００７２】
メモリ制御部２５は、図７に示すアドレス変換テーブルＴＢ１から、書込先のブロックを示す論理アドレス［０ｘ１００］に対応したインデックス番号を取得する。このインデックス番号は図７に示すように「０」であるので、メモリ制御部２５は、空きブロックＢ３〜Ｂ７のうちのＢ３を一時保管ブロックとし、当該一時保管ブロックのページＰ１に図８に示すように書込用のデータｄ１１ａを書き込む（Ｓ１１）。
【００７３】
この際、メモリ制御部２５は、図８に示すように、アドレス変換テーブルＴＢ１に記述されている論理アドレス［０ｘ１００］に対応したインデックス番号を「１」に書き換える（Ｓ１２）。
【００７４】
また、メモリ制御部２５は、このインデックス番号「１」に対応付けして、一時保管ブロックであるブロックＢ３を表す物理アドレス「２」と、ページ有効情報と、経過情報とを図８に示すように一時保管ブロック管理テーブルＴＢ２に記述する（Ｓ１２）。尚、このページ有効情報としては、ページＰ１〜Ｐ３のうちのＰ１のみが「無効ページ」であることを表す［１００］が記述され、経過情報としては「１」が記述される。
【００７５】
［データｄ１２をｄ１２ａに書換］
次に、ホスト装置１０は、データｄ１２をｄ１２ａに書き換える為に、書込先のブロックを示す論理アドレス［０ｘ１００］、及び書込用のデータとしてのデータｄ１２ａを書込命令と共に不揮発性メモリ２０に供給する。
【００７６】
メモリ制御部２５は、図８に示すアドレス変換テーブルＴＢ１から、書込先のブロックを示す論理アドレス［０ｘ１００］に対応したインデックス番号を取得する。このインデックス番号は図８に示すように「１」であるので、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２から、インデックス番号「１」に対応した物理アドレス「２」及びページ有効情報[１００]を取得する。そして、メモリ制御部２５は、この物理アドレス「２」にて表される一時保管ブロックとしてのブロックＢ３の有効ページであるページＰ２に、図９に示すように書込用のデータｄ１２ａを書き込む（Ｓ１３）。
【００７７】
この際、メモリ制御部２５は、図９に示すように、一時保管ブロック管理テーブルＴＢ２に記述されているインデックス番号「１」に対応したページ有効情報を、ページＰ１〜Ｐ３のうちのＰ１及びＰ２が「無効ページ」であることを表す［１１０］に書き換え、経過情報としては再び「１」が記述される（Ｓ１４）。
【００７８】
［データｄ２１をｄ２１ａに書換］
次に、ホスト装置１０は、データｄ２１をｄ２１ａに書き換える為に、書込先のブロックを示す論理アドレス［０ｘ２００］と、書込用のデータとしてのデータｄ２１ａと、を書込命令と共に不揮発性メモリ２０に供給する。
【００７９】
メモリ制御部２５は、図９に示すアドレス変換テーブルＴＢ１から、書込先のブロックを示す論理アドレス［０ｘ２００］に対応したインデックス番号を取得する。このインデックス番号は図９に示すように「０」であるので、メモリ制御部２５は、空きブロックＢ４〜Ｂ７のうちのＢ４を一時保管ブロックとし、当該一時保管ブロックのページＰ１に図１０に示すように書込用のデータｄ２１ａを書き込む（Ｓ１１）。
【００８０】
また、メモリ制御部２５は、図１０に示すように、アドレス変換テーブルＴＢ１に記述されている論理アドレス［０ｘ２００］に対応したインデックス番号を「２」に書き換える（Ｓ１２）。
【００８１】
更に、メモリ制御部２５は、このインデックス番号「２」に対応付けして、一時保管ブロックであるブロックＢ４を表す物理アドレス「３」と、ページ有効情報と、経過情報とを図１０に示すように一時保管ブロック管理テーブルＴＢ２に記述する（Ｓ１２）。尚、このページ有効情報としては、ページＰ１〜Ｐ３のうちのＰ１のみが「無効ページ」であることを表す［１００］が記述され、経過情報としては「１」が記述される。また、インデックス番号「２」に対応したブロックＢ４へのデータ書き込み処理により、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２に記述されているインデックス番号「１」に対応した経過情報を「１」から「２」に増加する。
【００８２】
［データｄ１３をｄ１３ａに書換］
次に、ホスト装置１０は、データｄ１３をｄ１３ａに書き換える為に、書込先のブロックを示す論理アドレス［０ｘ１００］、及び書込用のデータとしてのデータｄ１３ａを書込命令と共に不揮発性メモリ２０に供給する。
【００８３】
メモリ制御部２５は、図１０に示すアドレス変換テーブルＴＢ１から、書込先のブロックを示す論理アドレス［０ｘ１００］に対応したインデックス番号を取得する。このインデックス番号は図１０に示すように「１」であるので、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２から、インデックス番号「１」に対応した物理アドレス「２」及びページ有効情報[１１０]を取得する。そして、メモリ制御部２５は、この物理アドレス「２」にて表される一時保管ブロックとしてのブロックＢ３の有効ページであるページＰ３に、図１１に示すように書込用のデータｄ１３ａを書き込む（Ｓ１３）。
【００８４】
この際、メモリ制御部２５は、図１１に示すように、一時保管ブロック管理テーブルＴＢ２に記述されているインデックス番号「１」に対応したページ有効情報を、ページＰ１〜Ｐ３の全てが「無効ページ」を表す［１１１］に書き換える（Ｓ１４）。また、インデックス番号「１」に対応したブロックＢ３へのデータ書き込み処理により、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２に記述されているインデックス番号「２」に対応した経過情報を「１」から「２」に増加し、インデックス番号「１」に対応した経過情報として「１」を記述する。
【００８５】
上記した一連の処理により、一時保管ブロック管理テーブルＴＢ２に記述されているインデックス番号「１」に対応したページ有効情報が、全ページが「無効ページ」を表す［１１１］となる。これにより、一時保管ブロックとしてのブロックＢ３には、データ書換対象となるブロックＢ１の内容（データｄ１１〜ｄ１３）を全て書き換える、管理サイズ分のデータｄ１１ａ〜ｓ１３ａの書き込みが完了する。
【００８６】
そこで、引き続きメモリ制御部２５は、当該一時保管ブロックを外部アクセス可能なブロックとしてアドレス変換テーブルＴＢ１に登録すると共に、書換対象データが書き込まれていたブロックＢ１を空きブロックとして確保する為の管理情報更新を行う（Ｓ１６）。
【００８７】
すなわち、メモリ制御部２５は、図１２に示すように、アドレス変換テーブルＴＢ１における、書込先のブロックＢ１を表す論理アドレス［０ｘ１００］に対応した物理アドレスを、一時保管ブロックとしてのブロックＢ３を表す「２」に書き換える。また、このような物理アドレスの書き換えに伴い、メモリ制御部２５は、論理アドレス［０ｘ１００］に対応したインデックス番号を「０」に書き換える。
【００８８】
更に、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２におけるインデックス番号「１」を使用不可とする為に、図１２に示すように、当該インデックス番号「１」に対応した物理アドレスを未使用の［０ｘＦＦＦＦ］に書き換える。また、このような物理アドレスの書き換えに伴い、メモリ制御部２５は、一時保管ブロック管理テーブルＴＢ２におけるページ有効情報を初期値［０００］、経過情報を初期値「０」に夫々書き換える。
【００８９】
よって、図１２に示すように、論理アドレス［０ｘ１００］に対応したブロックは、物理アドレス「２」のブロックＢ２に変更され、物理アドレス「０」のブロックＢ１が空きブロックに設定される。
【００９０】
尚、上記したような、一時保管ブロックを外部アクセス可能なブロックとして登録すると共に、空きブロックを確保する為の管理情報の更新処理（Ｓ１６）は、データ領域ＤＡの空きブロックの残数が所定数、例えば「１」以下となる場合にも実施される。
【００９１】
例えば、図１３に示すように、データ領域ＤＡ内に２つのブロックＢ６及びＢ７が残存している際にブロックＢ６が一時保管ブロックとして使用されると、メモリ制御部２５は、以下の処理を行う。
【００９２】
尚、図１３に示す一例では、ブロックＢ１〜Ｂ３が、ホスト装置１０からのアクセスが可能なブロックとしてアドレス変換テーブルＴＢ１に登録されている。この際、ブロックＢ１〜Ｂ３のうちでＢ１及びＢ２がデータ書換中のブロックであり、ブロックＢ１に書き込まれているデータｄ１１及びｄ１２がデータ書換対象となっている。これにより、図１３に示すように、データｄ１１に対する書換後のデータｄ１１ａが一時保管ブロックとしてのブロックＢ４のページＰ１に書き込まれており、データｄ１２に対する書換後のデータｄ１２ａがブロックＢ４のページＰ２に書き込まれている。更に、図１３に示す一例では、ブロックＢ２に書き込まれているデータｄ２１がデータ書換対象となっており、当該データｄ２１に対する書換後のデータｄ２１ａが、図１３に示すように、一時保管ブロックとしてのブロックＢ５のページＰ１に書き込まれている。
【００９３】
よって、アドレス変換テーブルＴＢ１には、ブロックＢ１を表す物理アドレス「０」に対応付けしてインデックス番号「１」が記述されており、ブロックＢ２を表す物理アドレス「１」に対応付けしてインデックス番号「２」が記述されている。尚、この段階においてブロックＢ３はデータ書換中のブロックではないので、当該ブロックＢ３を表す物理アドレス「２」に対応付けしてインデックス番号「０」が記述されている。
【００９４】
また、図１３に示すように、一時保管ブロック管理テーブルＴＢ２には、ブロックＢ１に対応したインデックス番号「１」に対応付けして、ブロックＢ４を表す物理アドレス「３」、ページ有効情報［１１０］が記述されている。尚、この一例では、インデックス番号「１」に対応した経過情報は「１」を表すものとする。
【００９５】
更に、一時保管ブロック管理テーブルＴＢ２には、ブロックＢ２に対応したインデックス番号「２」に対応付けして、ブロックＢ５を表す物理アドレス「４」、ページ有効情報［１００］が記述されている。尚、この一例では、インデックス番号「２」に対応した経過情報は「３」を表すものとする。また、図１３に示す一例では、次に使用するインデックス番号「３」に対応付けして、物理アドレス［０ｘＦＦＦＦ］、ページ有効情報［０００］及び「０」を表す経過情報が一時保管ブロック管理テーブルＴＢ２に記述されているものとする。
【００９６】
ここで、ホスト装置１０が、図１３に示すブロックＢ３に書き込まれているデータｄ３１を書き換えるために、書込命令、ブロックＢ３を表す論理アドレス［０ｘ３００］及び書込用のデータｄ３１ａを不揮発性メモリ２０に供給する。
【００９７】
すると、メモリ制御部２５は、図１３に示すアドレス変換テーブルＴＢ１から、書込先のブロックを示す論理アドレス［０ｘ３００］に対応したインデックス番号「０」を取得する。これにより、メモリ制御部２５は、空きブロックＢ６を一時保管ブロックとし、当該一時保管ブロックのページＰ１に、図１４に示すように書込用のデータｄ３１ａを書き込む（Ｓ１１）。
【００９８】
また、メモリ制御部２５は、図１４に示すように、アドレス変換テーブルＴＢ１に記述されている論理アドレス［０ｘ３００］に対応したインデックス番号を「０」から「３」に書き換える（Ｓ１２）。
【００９９】
更に、メモリ制御部２５は、図１４に示すように、一時保管ブロック管理テーブルＴＢ２におけるインデックス番号「３」に対応した物理アドレスを、［０ｘＦＦＦＦ］から「５」に、ページ有効情報を[０００]から［１００］に書き換える（Ｓ１２）。また、ブロックＢ６へのデータ書き込みにより、メモリ制御部２５は、図１４に示すように、インデックス番号「１」に対応した経過情報を「１」から「２」に増加し、インデックス番号「２」に対応した経過情報を「３」から「４」に増加する（Ｓ１２）。
【０１００】
図１４に示すように、ブロックＢ６が一時保管ブロックとして用いられることにより、データ領域ＤＡ内の空きブロックは残り１つ、つまりブロックＢ７だけとなる。
【０１０１】
そこで、メモリ制御部２５は、データ領域ＤＡ内の空きブロックの残数が１つか否かを判定（Ｓ１７）し、空きブロックが残り１つとなった場合には、以下の処理を行う。
【０１０２】
すなわち、先ず、メモリ制御部２５は、図１４に示す一時保管ブロック管理テーブルＴＢ２から、各インデックス番号に対応した経過情報のうちで最大の値「４」を示す経過情報に対応したインデックス番号「２」を検索する（Ｓ１８）。次に、メモリ制御部２５は、図１４に示すアドレス変換テーブルＴＢ１から、このインデックス番号「２」に対応した物理アドレス「１」を得る（Ｓ１９）。そして、この物理アドレス「１」で表されるデータ書換中のブロックＢ２から、検索したインデックス番号に対応した一時保管ブロック管理テーブルのページ有効情報により「有効ページ」に該当する、すなわちデータ書換対象となっていない未更新のデータｄ２２及びｄ２３を読み出す（Ｓ１９）。
【０１０３】
次に、メモリ制御部２５は、図１４に示す一時保管ブロック管理テーブルＴＢ２から、上記したインデックス番号「２」に対応した物理アドレス「４」を取得する（Ｓ２０）。そして、メモリ制御部２５は、図１５に示すように、当該物理アドレス「４」で表される一時保管ブロックＢ５のページＰ２及びＰ３に、上記した未更新のデータｄ２２及びｄ２３を書き込む（Ｓ２０）。
【０１０４】
次に、メモリ制御部２５は、上記した一時保管ブロックＢ５を外部アクセスが可能なブロックとして登録すると共に、データ書換対象のブロックＢ２を空きブロックとする為の管理情報の更新を行う（Ｓ２１）。
【０１０５】
つまり、メモリ制御部２５は、アドレス変換テーブルＴＢ１において、図１４に示すインデックス番号「２」に対応した物理アドレス「１」を、図１５に示すように「４」に書き換えると共に、そのインデックス番号「２」を図１５に示すように「０」に書き換える。
【０１０６】
また、メモリ制御部２５は、インデックス番号「２」に対応した物理アドレスを、図１５に示すように、未使用のアドレス［０ｘＦＦＦＦ］に書き換える。また、メモリ制御部２５は、図１５に示すように、一時保管ブロック管理テーブルＴＢ２におけるインデックス番号「２」に対応したページ有効情報を［０００］、経過情報を「０」に夫々初期化する。
【０１０７】
更に、上記した一時保管ブロックＢ５へのデータ書き込みに伴い、メモリ制御部２５は、図１５に示すように、インデックス番号「１」に対応した経過情報を「２」から「３」に増加し、インデックス番号「３」に対応した経過情報を「０」から「１」に増加する。よって、図１５に示すように、論理アドレス［０ｘ２００］に対応したブロックは、物理アドレス「４」のブロックＢ５に変更され、ブロックＢ２が空きブロックに設定される。
【０１０８】
以上、詳述したように、不揮発性メモリ２００では、メモリ制御部２５が以下のデータ書込ステップと、管理ステップと、を実行することによりデータの書き換えを行う。
【０１０９】
すなわち、データ書込ステップ（Ｓ１１、Ｓ１３）では、書込用データ、及び書込先のブロックを示す論理アドレスを受け、書込先のブロックがデータ書込済みである場合に、複数のブロックのうちでデータ未書込の空きブロックを一時保管ブロックとし、この一時保管ブロックに書込用データを書き込む。管理ステップ（Ｓ１２、Ｓ１４）では、書込先のブロックと一時保管ブロックとの一対毎に、その一対に対応したインデックス番号を割り当て、インデックス番号を一時保管ブロックの不揮発性メモリ内での位置を表す物理アドレスに対応付けして表す管理テーブル（ＴＢ１、ＴＢ２）を生成する。尚、データ書込ステップでは、この管理テーブルから、書込先のブロックに割り当てられているインデックス番号に対応した物理アドレスを取得し、この物理アドレスにて表される一時保管ブロックに書込用データを書き込む。
【０１１０】
尚、上記したデータ書込ステップ（Ｓ１１、Ｓ１３）の動作をメモリ制御部２５に設けたハードウェアとしての書込制御部によって行うようにしても良い。また、管理ステップ（Ｓ１２、Ｓ１４、Ｓ１６、Ｓ２１）の動作をメモリ制御部２５に設けたハードウェアとしての管理制御部によって行うようにしても良い。
【０１１１】
このように、不揮発性メモリ２００では、論理アドレスによって指定された書込先のブロックに書き込まれているデータを書き換えるにあたり、データ未書込の空きブロックを一時保管ブロックとし、この一時保管ブロックに書込用データを書き込む。更に、書込先のブロックと一時保管ブロックとの一対に、その一対に対応したインデックス番号を割り当て、このインデックス番号を、一時保管ブロックの物理アドレスに対応付けして表す管理テーブルを生成する。
【０１１２】
これにより、ブロック内の一部のデータ片のみが書き換えられた場合にも、外部からの読出アクセスに応じて当該管理テーブルのインデックス番号を参照することにより、書き換え後のデータ片を読み出すことが可能となる。
【０１１３】
つまり、データ書込先のブロックに書き込まれている上記データ片以外のデータを一時保管ブロックへコピーし、この一時保管ブロックを外部アクセス可能な状態に設定するという一連の処理を行わずとも、書き換え後のデータ片を読み出すことが可能となる。
【０１１４】
よって、不揮発性メモリ２００におけるデータの書き換え方法によれば、上記したようなコピー処理及び外部アクセス可能な状態への設定処理が必要となる従来のデータ書き換え方法に比べて、データの書き換え時間を短縮することが可能になる。
【０１１５】
また、不揮発性メモリ２００によれば、例えば１ブロックが１２ＭｂのＴＬＣ（Triple Level Cell）方式において、書込み単位（ページ）が４Ｍｂである場合、１ブロックを夫々４Ｍｂで３分割した疑似ＳＬＣ（Single Level Cell）として、ページ単位で管理することが可能となる。つまり、１回分の書き込みデータ容量が１ブロックの全データ容量よりも小さい場合に、データ書き換え中のブロックを疑似的にＳＬＣ方式で管理することができるようになる。
【０１１６】
ところで、当該データの書き換え方法によれば、複数のブロックがデータの書換対象となる場合には複数の一時保管ブロックも管理対象となる。この際、本発明では、インデックス番号により、複数の一時保管ブロックのうちからアクセス対象となった一時保管ブロックを示す物理アドレスを取得することができる。よって、複数の一時保管ブロックに対して１つずつアクセス対象であるか否かを判定することにより、アクセス対象に該当する一時保管ブロックを検索する場合に比べて、迅速にアクセス対象の一時保管ブロックを表す物理アドレスを取得することが可能となる。
【０１１７】
尚、上記実施例では、空きブロックの残数が１つになったことを条件として、一時保管ブロックを外部アクセス可能なブロックとして登録すると共に空きブロックを確保する管理処理（Ｓ１８〜Ｓ２１）を実施している。しかしながら、このような管理処理を実施する条件は、空きブロックの残数が１つになったことに限定されない。要するに、空きブロックの残数が所定数以下となった場合を条件として上記した管理処理（Ｓ１８〜Ｓ２１）を実施すれば良いのである。
【０１１８】
また、上記実施例では、一時保管ブロックを外部アクセス可能なブロックとして登録するにあたり、その登録対象とする一時保管ブロックを選出する条件を、経過情報によって示される他の一時保管ブロックでのデータ書込の回数が最大となるものとしている。しかしながら、一時保管ブロック毎に、その一時保管ブロックにデータ書込が行われてから次のデータ書込が行われるまでの経過時間を計測しておき、その経過時間が最大となる一時保管ブロックを外部アクセス可能なブロックとして登録するようにしても良い。
【０１１９】
また、上記実施例では、図５に示すステップＳ１５において、１ブロック分のデータの書込が完了したか否かを判定するために、メモリ制御部２５は、ページ有効情報によって表される全ビットが論理レベル１であるか否かを判定している。しかしながら、ステップＳ１５では、一時保管ブロックに書き込まれた書込用データの蓄積容量が、一時保管ブロックの記憶容量と等しくなったか否かを判定するようにしても良い。
【符号の説明】
【０１２０】
１０        ホスト装置
２０        不揮発性メモリ
２４        フラッシュメモリ部
２５        メモリ制御部
【図１】
2019074797.tif 000003
【図２】
2019074797.tif 000004
【図３】
2019074797.tif 000005
【図４】
2019074797.tif 000006
【図５】
2019074797.tif 000007
【図６】
2019074797.tif 000008
【図７】
2019074797.tif 000009
【図８】
2019074797.tif 000010
【図９】
2019074797.tif 000011
【図１０】
2019074797.tif 000012
【図１１】
2019074797.tif 000013
【図１２】
2019074797.tif 000014
【図１３】
2019074797.tif 000015
【図１４】
2019074797.tif 000016
【図１５】
2019074797.tif 000017