(57)【要約】【課題】物理ブロックの管理を容易することができ、ひいては全体の情報処理時間の高速化を得ることができる。【解決手段】論理アドレス空間の論理ブロックアドレスと不揮発性メモリの物理ブロックアドレスを対応つけた論理−物理ブロックアドレス変換テーブル情報部と、前記論理ブロックアドレスと前記物理ブロックアドレスの対応付けがなされていない複数の物理ブロックの中から消去回数情報を読取り、前記消去回数情報が予め定めた所定条件を満たしている物理ブロックを選択物理ブロックとして選択する手段と、前記選択物理ブロックの物理ブロックアドレスを前記論理−物理ブロックアドレス変換テーブルに登録する論理−物理ブロックアドレス変換テーブル管理部を有する。【選択図】図１
2009003880.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置が利用する論理アドレス空間の論理ブロックアドレスと不揮発性メモリの物理ブロックの物理ブロックアドレスを対応つけた論理−物理ブロックアドレス変換テーブル情報部と、
前記物理ブロックが少なくとも前記論理−物理ブロックアドレス変換テーブル情報部により対応付けられているか否かを示す情報を格納した物理ブロック使用状況情報部と、
前記論理ブロックアドレスと前記物理ブロックアドレスの対応付けがなされていない複数の物理ブロックの消去回数情報を使用し、前記消去回数情報が予め定めた所定条件を満たしている物理ブロックを第１の物理ブロックとして選択する物理ブロック使用状況管理部及び物理ブロック消去回数管理部と、
前記第１の物理ブロックの物理ブロックアドレスを論理ブロックアドレスに対応付けて、前記論理−物理ブロックアドレス変換テーブル情報部に登録する論理−物理ブロックアドレス変換テーブル管理部と、
を有したことを特徴とする不揮発性メモリの制御装置。
【請求項２】
論理−物理ブロックアドレス変換テーブル管理部と前記物理ブロック消去回数管理部は、
前記第１の物理ブロックの物理ブロックアドレスが前記論理−物理ブロックアドレス変換テーブル情報部に登録される位置に、以前に存在した旧物理ブロックアドレスに対応する第２の物理ブロックに対して、データ消去を行ない、
前記旧物理ブロックアドレスに対応する物理ブロックに対して、データ消去が行われたとき、当該旧物理ブロックの冗長部の消去回数値を更新することを特徴とする請求項１記載の不揮発性メモリの制御装置。
【請求項３】
前記物理ブロック使用状況管理部と前記物理ブロック消去回数管理部は、
複数の前記物理ブロックの冗長部から読取った消去回数情報を管理しており、最も値の小さい消去回数情報を決定し、この消去回数情報を有する物理ブロックを前記第１の物理ブロックとすることを特徴とする請求項１記載の不揮発性メモリの制御装置。
【請求項４】
物理ブロック使用状況管理部と前記物理ブロック消去回数管理部は、
複数の前記物理ブロックの冗長部から読取った消去回数情報を管理しており、最も値の大きい消去回数情報を決定し、この消去回数情報を有する物理ブロックを前記選択物理ブロックとすることを特徴とする請求項１記載の不揮発性メモリの制御装置。
【請求項５】
物理ブロック単位の消去回数及び又はプログラミング回数に限度のある不揮発性メモリをランダムアクセスメモリ及び制御部により制御するメモリ制御方法において、前記制御部は、
ホスト装置が利用する論理アドレス空間の論理ブロックアドレスと前記不揮発性メモリの物理ブロックアドレスを対応つけた論理−物理ブロックアドレス変換テーブルを生成し、
前記物理ブロックが少なくとも前記論理−物理ブロックアドレス変換テーブルにより対応付けられているか否かを示す情報を含む物理ブロック使用状況情報を生成し、
前記論理ブロックアドレスと前記物理ブロックアドレスの対応付けがなされていない複数の物理ブロックの消去回数情報を使用し、前記消去回数情報が予め定めた所定条件を満たしている物理ブロックを第１の物理ブロックとして選択し、
前記第１の物理ブロックの物理ブロックアドレスを論理ブロックアドレスに対応付けて前記論理−物理ブロックアドレス変換テーブルに登録する、
ことを特徴とする不揮発性メモリの制御方法。
【請求項６】
さらに、前記選択物理ブロックの物理ブロックアドレスが前記論理−物理ブロックアドレス変換テーブルに登録される位置に、以前に存在した旧物理ブロックアドレスに対応する第２の物理ブロックに対して、データ消去を行ない、
前記旧物理ブロックアドレスに対応する物理ブロックに対して、データ消去が行われたとき、当該旧物理ブロックの冗長部の消去回数値を更新することを特徴とする請求項５記載の不揮発性メモリの制御方法。
【請求項７】
前記第１の物理ブロックをサーチするときは、複数の前記物理ブロックの冗長部から読取った消去回数情報を用いて、最も値の小さい消去回数情報を決定し、この消去回数情報を有する物理ブロックを前記第１の物理ブロックとすることを特徴とする請求項５記載の不揮発性メモリの制御方法。
【請求項８】
前記第１の物理ブロックをサーチするときは、複数の前記物理ブロックの冗長部から読取った消去回数情報を用いて、最も値の小さい消去回数情報を決定し、この消去回数情報を有する物理ブロックを前記第１の物理ブロックとすることを特徴とする請求項５記載の不揮発性メモリの制御方法。
【請求項９】
ホストからのコマンドを含むデータを受け取るホストインターフェースと、
ランダムアクセスメモリと、
不揮発性メモリと、
前記コマンドを解析するとともに、前記ランダムアクセスメモリ、前記不揮発性メモリを統括制御するマイクロプロセシングユニットと、
を有した記憶装置において、
前記ホスト装置が利用する論理アドレス空間の論理ブロックアドレスと前記不揮発性メモリの物理ブロックアドレスを対応つけた論理−物理ブロックアドレス変換テーブル情報部と、
前記物理ブロックが少なくとも前記論理−物理ブロックアドレス変換テーブルにより対応付けられているか否かを示す情報を格納した物理ブロック使用状況情報部と、
前記論理ブロックアドレスと前記物理ブロックアドレスの対応付けがなされていない複数の物理ブロックの中から消去回数情報を使用し、前記消去回数情報が予め定めた所定条件を満たしている物理ブロックを第１の物理ブロックとして選択する物理ブロック使用状況管理部及び物理ブロック消去回数管理部と、
前記第１の物理ブロックの物理ブロックアドレスを論理ブロックアドレスに対応付けて、前記論理−物理ブロックアドレス変換テーブルに登録する論理−物理ブロックアドレス変換テーブル管理部と、
を有したことを特徴とする記憶装置。
【請求項１０】
論理−物理ブロックアドレス変換テーブル管理部と前記物理ブロック消去回数管理部は、
前記第１の物理ブロックの物理ブロックアドレスが前記論理−物理ブロックアドレス変換テーブルに登録される位置に、以前に存在した旧物理ブロックアドレスに対応する物理ブロックに対して、データ消去を行ない、
前記旧物理ブロックアドレスに対応する物理ブロックに対して、データ消去が行われたとき、当該旧物理ブロックの冗長部の消去回数値を更新することを特徴とする請求項９記載の記憶装置。
【請求項１１】
物理ブロック使用状況管理部と前記物理ブロック消去回数管理部は、
複数の前記物理ブロックの冗長部から読取った消去回数情報を管理しており、最も値の小さい消去回数情報を決定し、この消去回数情報を有する物理ブロックを前記第１の物理ブロックとすることを特徴とする請求項９記載の記憶装置。
【請求項１２】
物理ブロック使用状況管理部と前記物理ブロック消去回数管理部は、
複数の前記物理ブロックの冗長部から読取った消去回数情報を管理しており、最も値の大きい消去回数情報を決定し、この消去回数情報を有する物理ブロックを前記選択物理ブロックとすることを特徴とする請求項９記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、不揮発性メモリの制御装置及びその制御方法及び記憶装置に関するもので、特に消去回数に応じた不揮発性メモリの管理方法に工夫がなされている。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリは、データ書き換え可能な不揮発性メモリとして知られている。この不揮発メモリは、消去単位は、１物理ブロック単位（例えば１２８Ｋバイト）である。一方、データ読み取り単位及び書き込み単位は、例えば２Ｋバイトに規定されている。
【０００３】
またこの不揮発性メモリは、消去または書き込み回数が多くなると素子が劣化し、エラー発生が多くなる。そこで、素子の性能を保証する要素として、書き換え回数を例えば１０万回程度に規定している。このために、不揮発性メモリのメモリ制御部に対しては、物理ブロックの消去回数を管理する機能が組み込まれている。
【０００４】
上記のメモリ制御部は、単純に各物理ブロックの消去回数を管理するだけではなく、各物理ブロックの消去回数の平均化を行なっている（例えば特許文献１、２）。つまり現在、消去回数の少ない物理ブロックを選択し、消去回数の多い物理ブロックと交換して使用するようにしている。
【０００５】
しかしながら、従来のメモリ制御部による制御方法であると、物理ブロックの交換処理が行われる毎の情報処理量が多いという問題がある。つまり、論理ブロックと物理ブロックを関連つけた論理−物理ブロック変換テーブルの全ての情報処理、及び物理ブロック消去回数テーブルの全ての情報処理が、物理ブロックの交換処理毎に行われる。このために物理ブロックの管理処理が複雑であり、また、処理時間も長くなるという問題がある。さらに、交換処理される物理ブロックの数が多くなると、処理時間もさらに長くなるという問題がある。
【特許文献１】ＵＳＰ５，７３７，７４２公報
【特許文献１】特開２００６−２３５９６０公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこでこの発明の目的は、物理ブロックの管理を容易することができ、ひいては全体の情報処理時間の高速化を得ることができる不揮発性メモリの制御装置及びその制御方法及び記憶装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するためにこの発明の一面は、物理ブロック単位の消去回数及び又はプログラミング回数に限度のある不揮発性メモリを制御するメモリ制御装置において、ホスト装置が利用する論理アドレス空間の論理ブロックアドレスと不揮発性メモリの物理ブロックの物理ブロックアドレスを対応つけた論理−物理ブロックアドレス変換テーブル情報部と、前記物理ブロックが少なくとも前記論理−物理ブロックアドレス変換テーブル情報部により対応付けられているか否かを示す情報を格納した物理ブロック使用状況情報部と、前記論理ブロックアドレスと前記物理ブロックアドレスの対応付けがなされていない複数の物理ブロックの消去回数情報を使用し、前記消去回数情報が予め定めた所定条件を満たしている物理ブロックを第１の物理ブロックとして選択する物理ブロック使用状況管理部及び物理ブロック消去回数管理部と、前記第１の物理ブロックの物理ブロックアドレスを論理ブロックアドレスに対応付けて、前記論理−物理ブロックアドレス変換テーブル情報部に登録する論理−物理ブロックアドレス変換テーブル管理部と、を有する。
【発明の効果】
【０００８】
上記の手段によると、基本的には論理ブロックアドレスと物理ブロックアドレスの対応付けがなされていない前記物理ブロック郡の消去回数情報を読取り、この消去回数情報が予め定めた所定条件を満たしている物理ブロックを選択して使用するようにしたので、管理する物理ブロックの数が少なくて済む。このために、物理ブロックの管理を容易することができ、ひいては全体の情報処理時間の高速化を得る。また論理ブロックアドレスと物理ブロックアドレスの対応付けがなされている物理ブロック郡の消去回数情報は、物理ブロックの冗長部に記述することで維持されている。
【発明を実施するための最良の形態】
【０００９】
以下図面を参照して、この発明の実施の形態を説明する。まず、本発明が適用された記憶装置の構成を図１に示して説明する。
【００１０】
＜記憶装置＞
記憶装置１００は、不揮発性メモリデバイス１０１、マイクロプロセッシングユニット（以下ＭＰＵと記す）１０２、ランダムアクセスユニット（以下ＲＡＭと記す）１０３、ホストインターフェース１０４、不揮発性メモリインターフェース１０５を有する。
【００１１】
不揮発性メモリデバイス１０１の記憶領域は、多数の物理ブロックＰＨＢで構成され、その記憶領域の一部にファイルシステム１０１ａを含む。
【００１２】
ＲＡＭ１０３に設定されている格納部としては、以下のような情報部を挙げることができる。論理ブロックアドレスと物理ブロックアドレスの対応付けを行なったテーブルを有する論理−物理ブロックアドレス変換テーブル情報部１０３ｂがある。さらに物理ブロックの使用状況を格納した物理ブロック使用状況情報部１０３ｃ、物理ブロック消去回数情報部１０３ｃを有する。また図示していないが、ＭＰＵ１０２で実行するためのプログラムを展開する領域も確保される。
【００１３】
なお上記の論理ブロックアドレスとは、ホスト装置が利用する論理アドレス空間の論理ブロックアドレスである。また物理ブロックアドレスは、不揮発性メモリデバイス１０１内の物理ブロックアドレスである。
【００１４】
また上記の物理ブロック使用状況情報部１０３ｃは、任意に使用可能な状態になった物理ブロックのブロックアドレスを登録している。ここでは論理ブロックアドレスと物理ブロックアドレスの対応付けがされていない物理ブロックのアドレスが登録されている。物理ブロック消去回数情報部１０３ｄは、物理ブロックアドレス使用状況情報部１０３ｃに登録されている任意使用可能な物理ブロックの各消去回数を格納するものである。
【００１５】
上記ＲＡＭ１０３内の、物理ブロック使用状況情報、論理−物理ブロックアドレス変換テーブル、物理ブロックアドレス、物理ブロック消去回数などの情報は、ＭＰＵ１０２の機能により管理及び処理される。
【００１６】
従って、ＭＰＵ１０２は、論理−物理ブロックアドレス変換テーブル管理部１０２ｂ、物理ブロックの使用状況を格納した物理ブロック使用状況管理部１０２ｃ，物理ブロック消去回数管理部１０２ｄを有する。また不揮発性メモリデバイス１０１内のファイルシステム制御部１０２ｅ、これらの管理部を統括する統合処理部１０２ｘも有する。統合処理部１０２ｘはデータの書き込み、読出しも実行する。
【００１７】
＜全体動作＞
今、ホストからホストインターフェース１０４を介してコマンドが入力されると、ＭＰＵ１０２は、コマンド解析部１０２fでコマンドを解析し、コマンド内容に応じた処理を行うものである。このときはＲＡＭ１０３に展開されているプログラムが、ＭＰＵ１０２で実行される。
【００１８】
解析されたコマンドがデータライトコマンドであれば、ＭＰＵ１０２の制御の元で、基本的には（１）論理−物理ブロックアドレス変換テーブル情報部１０３ｂが参照され、指定されている論理ブロックアドレスに対応する物理ブロックアドレスに対してデータ書き込み処理が実行される。
【００１９】
または、（２）データライトコマンドがきたときＭＰＵ１０２の制御の元で次のような処理が実行される。即ち、物理ブロック使用状況情報部１０３ｃと物理ブロック消去回数情報部１０３ｄの情報が参照され任意使用可能な物理ブロック群の中から適当な物理ブロックが選択される。次に、ホストから送られてきた論理ブロックアドレスと選択された物理ブロックのアドレスとを、論理−物理ブロックアドレス変換テーブル情報部１０３ｂ上で対応付けるとともに、当該選択物理ブロックに対して、不揮発性メモリインターフェース１０５を介して、不揮発性メモリデバイス１０１にデータライトが行なわれる。その際に不揮発性メモリデバイス１０１に対するリードモディファイライトなど、必要に応じてＲＡＭ１０３がバッファとして使用される。
【００２０】
上記の項目（１）の処理と項目（２）の処理のいずれを選択するか、また項目（１）と（２）の処理をどの程度の割合で選択するかは、種々の方法で実現してよい。
【００２１】
また、任意使用可能な物理ブロックを選択して、論理−物理ブロックアドレス変換テーブルを修正するタイミングも各種の方法が可能である。例えば、ホストから書き込みコマンドが来たとき実行する。又は、ファイルシステムの更新が行なわれたときに実行する（このときは選択する物理ブロックが多数であってもよい）。さらには、ホストから消去コマンドが来たときに実行する方法であってもよい。
【００２２】
好ましくは、任意使用可能な物理ブロックを選択して、論理−物理ブロックアドレス変換テーブルを修正するタイミングは、何らかの要因でファイルシステムの更新が行なわれ後、あるいはファイルシステムの更新処理と同時に実行することが好ましい。
【００２３】
そして、データライトコマンドがきたときのデータ保存処理は、論理−物理ブロックアドレス変換テーブル情報部１０３ｂが参照され、指定されている論理ブロックアドレスに対応する物理ブロックアドレスに対してデータ書き込み処理が実行される手順でもよい。
【００２４】
上記の処理は使用する物理ブロックの交換処理に相当し、物理ブロックの消去回数の平均化処理である。さらには、使用するのに安全な物理ブロック選択する選択処理である。さらに物理ブロックの管理が簡素であり、高速情報処理の実現を得ている。
【００２５】
解析されたコマンドが、データリードコマンドであれば、アクセスすべき論理ブロックアドレスに対する物理アドレスを論理−物理ブロックアドレス変換テーブル情報部１０３ｂを参照して求め、不揮発性メモリインターフェース１０５を介して、不揮発性メモリデバイス１０１からデータリードし、ホストインターフェース１０４を介して、ホストにデータ転送するものである。
【００２６】
＜不揮発性メモリデバイス上の物理ブロック使用状況＞
図２は、不揮発性メモリデバイスの記憶領域の例とその使用状況を示している。不揮発性メモリデバイス１０１上の記憶領域２０１は、全て物理ブロックで構成される。そして、一部の物理ブロックは、論理−物理ブロックアドレス変換テーブル情報部１０３ｂにより、論理ブロックと対応付けられている。この物理ブロックを割り当て済みの物理ブロック２０２とここでは称する。未割り当ての物理ブロックをここでは任意に使用可能な物理ブロック２０３と称している。
【００２７】
＜論理-物理ブロックアドレス変換テーブル＞
図３は、図１における論理-物理ブロックアドレス変換テーブル１０３ｂの１例を示す図である。論理ブロックアドレス３０１が、ＲＡＭ１０３上の任意の番地から始まる４バイト単位のオフセットアドレスに相当し、データ部には前記論理ブロックアドレス３０１に対応付けられた物理ブロックアドレスデータ３０２が格納されるものである。点線で囲む部分３０３については、後で詳しく説明する。
【００２８】
＜物理ブロック使用状況情報と物理ブロック消去回数情報＞
図４は、図１の物理ブロック使用状況情報部１０３ｃと物理ブロック消去回数情報部１０３ｄの１例を説明する図である。物理ブロックアドレスデータ４０２は、図２で示した２０４で示される全物理ブロックが登録可能なデータ領域を持ち、物理ブロック消去回数データ４０３部は物理ブロックアドレスデータに対応した消去回数値が格納されるものである。インデックス４０１はＲＡＭ１０３上の任意の番地から始まる前記データ部を参照するためのオフセットアドレスに相当する。点線で囲む部分４０４については、後で詳しく説明する。
【００２９】
図４の説明では、物理ブロック使用状況情報部１０３ｃと物理ブロック消去回数情報部１０３ｄが、図２の任意使用可能な物理ブロック群２０４のみを管理しているように説明したが、これに限らず、割り当て済みの物理ブロック群２０３と任意使用可能な物理ブロック群２０４とを分類し、消去回数値とともに管理してもよい。
【００３０】
＜物理ブロック構造＞
図５は、物理ブロック構造の１例を示す図である。物理ブロック５０１は、ライトアクセス可能な単位である複数の物理ページ５０２から構成されている。各物理ページ５０２は、ホストからのライトデータを格納するユーザーデータアリア５０３とそれ以外の任意データを格納する冗長データエリア５０４から構成される。物理ブロックに対する消去回数値は、物理ページ５０２へのデータライト時に冗長データエリア５０４の任意領域に書き込まれる。この領域が消去回数カウンタ５０５として用いられる。
【００３１】
＜任意使用可能な物理ブロックの選択処理＞
図６は、任意使用可能な物理ブロックの選択を行なう際の動作を示すフロー図である。物理ブロックの検索開始時に（Ｉ，Ｊ）が初期化される。即ち、ステップＳ６０１において、Ｉ＝０，Ｊ＝０にセットされ、図４のインデックス００を起点とする設定がなされる（ステップＳ６０１）。
【００３２】
変数Iはインデックス４０１の値（図４参照）を示すものであり、変数Jは最大の物理ブロック消去回数の物理ブロックが格納されているインデックス４０１の値を示す。
【００３３】
変数Ｙは、変数Ｊで示されるインデックス４０１で参照可能な物理ブロックの消去回数データ４０３の値である（ステップＳ６０２）。物理ブロックを順次検索するための変数Ｉは任意に使用可能な物理ブロック数である。この変数Ｉは、Ｉmax値まで順次インクリメントされる（ステップＳ６０３，Ｓ６０４）。変数Ｘは、変数Ｉで示されるインデックス４０１で参照可能な物理ブロック消去回数データ４０３の値である（ステップＳ６０５）。
【００３４】
変数Ｘ（検索した物理ブロックの値）とＹ（最大値）を比較し（ステップＳ６０６）、現検索時点での最小の物理ブロック消去回数値（例えば０００００Ａ９９ｈ）とそのインデックス値（例えばα）を変数Ｙ、Ｊとして記憶する（ステップＳ６０７）。次にステップＳ６０３に戻り、ステップＳ６０４−Ｓ６０７が実行される。これにより、任意使用可能な物理ブロック群から物理ブロック消去回数が少ない物理ブロックが絞りだされてくる。
【００３５】
尚、最大消去回数情報を有する物理ブロックは、予め消去回数情報の比較処理により特定されている。
【００３６】
また、上記の選択物理ブロックの特定処理は、各種の実施形態が可能である。物理ブロックの消去回数を平均化できればよい。従って、複数の物理ブロックの消去回数の平均値を求め、この平均値以下の消去回数を有する物理ブロックが選択されるようにしてもよい。
【００３７】
または、頻繁に使用される論理アドレスと、まれに使用される論理アドレスを記憶し、論理アドレスの使用頻度に応じて、この論理アドレスに対応する物理アドレスを選択する選択方法が切替えらえてもよい。例えば使用頻度が大きい論理アドレス、例えば使用頻度がある閾値を超えている論理アドレスに関しては、消去回数の少ない物理アドレスを対応つける処理を行う。逆に、使用頻度が小さい論理アドレス、たとえば使用頻度がある閾値以下の論理アドレスに関しては、消去回数の大きな物理アドレスを対応つける処理（論理−物理ブロックアドレス変換テーブルの更新処理）を行う。この論理−物理ブロックアドレス変換テーブルの更新処理は、ホストからデータ書き込みコマンドがきた時、あるいは、ファイルシステムの更新処理がなされた後に行われる。
【００３８】
＜基本動作を説明するフロー図＞
図７は、本発明の基本動作を説明するフロー図である。図７と図１を参照しながら説明する。今、ホストからのライトコマンドがホストインターフェース１０４を介して入力したとする。
【００３９】
ＭＰＵ１０２は、コマンド解析部１０２ｆ、統合処理部１０２ｘ、物理ブロック使用状況管理部１０２ｃと物理ブロック消去回数管理部１０２ｄ、物理−論理ブロックアドレス変換テーブル管理部１０２ｂを有し、これらが一体となりデータ処理を実行する。
【００４０】
ＭＰＵ１０２はホストコマンドを解析し、物理ブロック使用状況情報部１０３ｃと物理ブロック消去回数情報部１０３ｄを参照して適当な任意に使用可能な物理ブロックＰｍを検索する（ステップＳ７０１；図６でも説明）。物理ブロック使用状況管理部１０２ｃ、物理ブロック消去回数管理部１０２ｄと統合処理部１０２ｘが一体となりデータ処理を実行する。
【００４１】
次に、論理−物理ブロックアドレス変換テーブル情報部１０３ｂのテーブルを参照し、ホストがライトすべき論理ブロックＬｍに対応した現在の物理ブロックＰｎを求め（ステップＳ７０３）。論理−物理ブロックアドレス変換テーブル管理部１０２ｂと統合処理部１０２ｘが一体となりデータ処理を実行する。
【００４２】
次に、ホストが書き込み開始位置を指定しているホストスタートアドレスが物理ブロック境界でないかを判定する（ステップＳ７０４）。ブロック境界でない場合には、物理ブロックＰｎのスタートアドレスよりも前のデータ（Ｐｎ内のデータ）を物理ブロックＰｍにまずコピーする（ステップＳ７０５）。これによりデータの取りこぼしを防ぐ。この処理後、ステップＳ７０６に移りホストからのデータ書き込みを実行する。
【００４３】
ライトすべきホストスタートアドレスが物理ブロック境界の場合は、スッテップ（ステップＳ７０５）をスキップして、ホストからのデータを物理ブロックＰｍに書き込む（ステップＳ７０６）。
【００４４】
次に、ホストエンドアドレスが、スタートアドレスと同じブロックであって、かつ、ブロック境ではないかを判別する（ステップＳ７０７）。
【００４５】
境界でなければ物理ブロックＰｎのエンドアドレスよりも後のデータを物理ブロックＰｍにコピーする（ステップＳ７０８）。次に物理ブロックＰｎを任意に使用可能な物理ブロックとして物理ブロック使用状況情報部１０３ｃと物理ブロック消去回数情報部１０３ｄに登録する。即ち、物理ブロックＰｎの消去回数カウンタ５０５の値をリードして（ステップＳ７０９）り、物理ブロックＰｎの消去処理を行い（ステップＳ７０１）、さらに前記物理ブロックＰｎの消去回数データを更新する（ステップＳ７１１）。
【００４６】
次に、物理ブロック使用状況情報部１０３ｃ（図４の点線で囲む４０４参照）のＰｍの情報部に、Ｐｎの物理ブロックアドレスデータ４０２と物理ブロック消去回数データ４０３を登録する（ステップＳ７１２、Ｓ７１３）。さらに、論理−物理ブロックアドレス変換テーブル情報部１０３ｄの論理ブロックＬｍに対応した物理ブロックアドレスデータとしてＰｍを登録する（ステップＳ７１４、及び図３の点線で囲む３０３参照）。ホストからのライトアクセス対象が１ブロックを超える場合は、更にステップＳ７０１からの動作を繰り返すものである。
【００４７】
＜他の実施形態＞
上記の実施形態では、論理−物理ブロックアドレス変換テーブル、物理ブロック使用状況情報、物理ブロック消去回数情報が、ＲＡＭ１０３に格納されているものとして説明した。しかしながら、これらの情報は、不揮発性メモリデバイス１０１の一部領域に格納されていてもよいことは勿論である。そして装置の電源がオンされたときに、これらの情報がＲＡＭ１０３上に展開されるようにしてもよい。
【００４８】
＜上記の実施形態の重要な部分のまとめ＞
上記したようにこの発明の一面は、物理ブロック単位の消去回数及び又はプログラミング回数に限度のある不揮発性メモリをランダムアクセスメモリ及び制御部により制御するメモリ制御方法である。ここで、ホスト装置が利用する論理アドレス空間の論理ブロックアドレスと前記不揮発性メモリの物理ブロックアドレスを対応つけた論理−物理ブロックアドレス変換テーブルを生成することができる。また少なくとも前記不揮発性メモリの物理ブロックが、前記論理−物理ブロックアドレス変換テーブルにより対応付けられているか否かを示す情報を含む物理ブロック使用状況情報を生成することができる。さらに前記物理ブロックの消去回数情報を含む物理ブロック消去回数情報を生成することができる。次に、論理ブロックアドレスと物理ブロックアドレスの対応付けがなされていない複数の物理ブロックの中から消去回数情報を読取り、前記消去回数情報が予め定めた所定条件を満たしている物理ブロックを選択物理ブロックとして選択することができる。そして、前記選択物理ブロックの物理ブロックアドレスを前記論理−物理ブロックアドレス変換テーブルに登録する。
【００４９】
またこの発明では、さらに、前記選択物理ブロックの物理ブロックアドレスが前記論理−物理ブロックアドレス変換テーブルに登録される位置に、以前に存在した旧物理ブロックアドレスに対応する物理ブロックに対して、データ消去を行なうことができる。そして前記旧物理ブロックアドレスに対応する物理ブロックに対して、データ消去が行われたとき、当該物理ブロックの冗長部の消去回数値を更新する。
【００５０】
またこの発明では、さらに前記選択物理ブロックをサーチするときは、複数の前記物理ブロックの冗長部から読取った消去回数情報を比較し、最も値の小さい消去回数情報を決定し、この消去回数情報を有する物理ブロックを前記選択物理ブロックとしてもよい。この場合は、データ書き込み先として指定されている論理ブロックが頻繁に使用される論理ブロックであり、使用回数がある閾値を越えているような場合に好適する。
【００５１】
またこの発明では、選択物理ブロックをサーチするときは、複数の前記物理ブロックの冗長部から読取った消去回数情報を比較し、最も値の小さい消去回数情報を決定し、この消去回数情報を有する物理ブロックを前記選択物理ブロックとしてもよい。この場合は、データ書き込み先として指定されている論理ブロックがまれに使用される論理ブロック（主に読出し専用として利用されている）であり、使用回数がある閾値以下のような場合に好適する。
【００５２】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００５３】
【図１】この発明が適用された記憶装置の構成説明図である。
【図２】不揮発性メモリの記憶領域のイメージ図である。
【図３】論理−物理ブロックアドレス変換テーブルのイメージ図である。
【図４】物理ブロック使用状況と物理ブロック消去回数データの関連を示す説明図である。
【図５】物理ブロック内のデータエリアの一例を示す説明図である。
【図６】この発明の装置の動作例で、任意に使用可能な複数の物理ブロックから、適当な物理ブロックを選択するときの動作例を示すフローチャートである。
【図７】この発明の装置の動作例を示すフローチャートである。
【符号の説明】
【００５４】
１００・・・記憶装置、１０１・・・不揮発性メモリでバイス、１０２・・・マイクロプロセシングユニット、１０３・・・ランダムアクセスメモリ（ＲＡＭ）。
【図１】
2009003880.tif 000003
【図２】
2009003880.tif 000004
【図３】
2009003880.tif 000005
【図４】
2009003880.tif 000006
【図５】
2009003880.tif 000007
【図６】
2009003880.tif 000008
【図７】
2009003880.tif 000009