(57)【要約】【課題】不揮発性メモリの物理ブロックの消去回数の平均化処理（物理ブロックの交替処理）を容易でかつ高速化する。【解決手段】不揮発性メモリのファイルシステムを解析しリードオンリー的ファイルの論理ブロックを識別するファイルシステム制御部１０２ｅと、前記論理ブロックに対応する物理ブロックアドレスから第１の物理ブロックを得る論理−物理ブロックアドレス変換テーブル管理部１０２ｂと、物理ブロック使用状況情報と物理ブロック消去回数情報から所定の条件を満足した任意使用可能な第２の物理ブロックを選択する物理ブロック情報管理部１０２Ｙを有する。そして前記第１の物理ブロックのデータを前記第２の物理ブロックに移し、前記第２の物理ブロックのアドレスを前記論理ブロックアドレスに対応つけ、前記第１及び第２の物理ブロックの使用状況を修正する物理ブロック情報修正部１０２ｇを有する。【選択図】図１
2009003784.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリデバイスのファイルシステムを解析し、リード用途に使用されると判断されるリードオンリー的ファイルの論理ブロックを識別するファイルシステム制御部と、
論理-物理ブロックアドレス変換テーブルを用いて、前記論理ブロックに対応する物理ブロックアドレスから第１の物理ブロックを得る論理−物理ブロックアドレス変換テーブル管理部と、
物理ブロック使用状況情報と物理ブロック消去回数情報を参照して、任意使用可能な物理ブロック群から所定の条件を満足した第２の物理ブロックを選択する物理ブロック情報管理部と、
前記第１の物理ブロックのデータを前記第２の物理ブロックに移し、前記第２の物理ブロックのアドレスを前記論理ブロックアドレスに対応付け、前記物理ブロック使用状況情報における前記第１及び第２の物理ブロックの使用状況を修正する物理ブロック情報修正部を有することを特徴とする不揮発性メモリの制御装置。
【請求項２】
物理ブロック情報修正部は、
物理ブロック使用状況情報部における前記第１の物理ブロックの使用状況を修正する際に、該当第１の物理ブロックのデータを消去することを特徴とする請求項１記載の不揮発性メモリの制御装置。
【請求項３】
前記ファイルシステム制御部は、ホストからの所定のコマンドがあったときに、前記リードオンリー的ファイルのデータが格納されている論理ブロックを識別するのを開始することを特徴とする請求項１記載の不揮発性メモリの制御装置。
【請求項４】
前記ファイルシステム制御部は、前記不揮発性メモリのファイルシステムに含まれているファイル毎の属性情報から前記リードオンリー的ファイルを認識し、ファイルアロケーションテーブルから前記リードオンリー的ファイルの論理アドレスを認識することを特徴とする請求項１記載の不揮発性メモリの制御装置。
【請求項５】
物理ブロック単位の消去回数及び又はプログラミング回数に限度のある不揮発性メモリデバイスをランダムアクセスメモリと制御部により制御するメモリ制御方法において、前記制御部は、
前記不揮発性メモリデバイスのファイルシステムを解析し、リード用途に使用されると判断されるリードオンリー的ファイルの論理ブロックを識別し、
論理-物理ブロックアドレス変換テーブルを用いて、前記論理ブロックに対応する物理ブロックアドレスから第１の物理ブロックを得て、
物理ブロック使用状況情報と物理ブロック消去回数情報を参照して、任意使用可能な物理ブロック群から所定の条件を満足した第２の物理ブロックを選択し、
前記第１の物理ブロックのデータを前記第２の物理ブロックに移し、前記第２の物理ブロックのアドレスを前記論理ブロックアドレスに対応付け、前記物理ブロック使用状況情報における前記第１及び第２の物理ブロックの使用状況を修正することを特徴とする不揮発性メモリの制御方法。
【請求項６】
前記第１の物理ブロックの使用状況を修正する際に、該当第１の物理ブロックのデータを消去することを特徴とする請求項５記載の不揮発性メモリの制御方法。
【請求項７】
前記制御部は、ホストからの所定のコマンドがあったときに、前記リードオンリー的ファイルのデータが格納されている論理ブロックの識別処理を開始することを特徴とする請求項５記載の不揮発性メモリの制御方法。
【請求項８】
前記制御部は、前記不揮発性メモリのファイルシステムに含まれているファイル毎の属性情報から前記リードオンリー的ファイルを認識し、ファイルアロケーションテーブルから前記リードオンリー的ファイルの論理アドレスを認識することを特徴とする請求項１記載の不揮発性メモリの制御方法。
【請求項９】
ホストからのコマンドを含むデータを受け取るホストインターフェースと、
ランダムアクセスメモリと、
不揮発性メモリデバイスと、
前記コマンドを解析するとともに、前記ランダムアクセスメモリ、前記不揮発性メモリデバイスを統括制御するマイクロプロセシングユニットと、を有した記憶装置において、
前記不揮発性メモリデバイスのファイルシステムを解析し、リード用途と判断されるリードオンリー的ファイルのデータの論理ブロックを識別するファイルシステム制御部と、
論理-物理ブロックアドレス変換テーブルを用いて、前記論理ブロックに対応する物理ブロックアドレスから第１の物理ブロックを得る論理−物理ブロックアドレス変換テーブル管理部と、
物理ブロック使用状況情報と物理ブロック消去回数情報を参照して、任意使用可能な物理ブロック群から所定の条件を満足した第２の物理ブロックを選択する物理ブロック情報管理部と、
前記第１の物理ブロックのデータを前記第２の物理ブロックに移し、前記第２の物理ブロックのアドレスを前記論理ブロックアドレスに対応つけ、前記物理ブロック使用状況情報における前記第１及び第２の物理ブロックの使用状況を修正する物理ブロック情報修正部を有することを特徴とする記憶装置。
【請求項１０】
物理ブロック情報修正部は、
物理ブロック使用状況情報部における前記第１の物理ブロックの使用状況を修正する際に、該当第１の物理ブロックのデータを消去することを特徴とする請求項９記載の記憶装置。
【請求項１１】
前記ファイルシステム制御部は、ホストからの所定のコマンドがあったときに、前記リードオンリー的ファイルのデータが格納されている論理ブロックを識別するのを開始することを特徴とする請求項９記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は不揮発性メモリの制御装置及びその制御方法及び記憶装置に関するもので、特にファイルシステムの情報を利用して論理ブロックアドレス対物理ブロックアドレス変換テーブルを管理する不揮発性メモリの管理方法に工夫がなされている。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリは、データ書き換え可能な不揮発性メモリとして知られている。この不揮発メモリは、消去単位は、１物理ブロック単位（例えば１２８Ｋバイト）である。一方、データ読み取り単位及び書き込み単位は、例えば２Ｋバイトに規定されている。またこの不揮発性メモリは、消去または書き込み回数が多くなると素子が劣化し、エラー発生が多くなる。そこで、素子の性能を保証する要素として、書き換え回数を例えば１０万回程度に規定している。このために、不揮発性メモリのメモリ制御部に対しては、物理ブロックの消去回数を管理する機能が組み込まれている（例えば特許文献１）。
【０００３】
また書き換え回数の多いファイルアロケーションテーブル（ＦＡＴ）の領域を、任意に変更して記憶領域の消去回数を平均化するという提案もある（例えば特許文献２）。
【０００４】
従来の不揮発性メモリの管理方法であると、メモリ全体の物理ブロック単位で消去回数を管理している。このために、消去回数の情報処理に時間がかかる。
【特許文献１】特開平１１−３２８７号公報
【特許文献２】特開平７−２１９７２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明の目的は、ファイルシステムの情報を利用することにより、不揮発性メモリの物理ブロックの消去回数の平均化処理（物理ブロックの交替処理）を容易でかつ高速化することができる不揮発性メモリの制御装置及び制御方法及び記憶装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、ファイルシステムを解析することで、リードオンリーファイル属性もしくは拡張子から主にリード用途として使用されると判断されるファイルのデータが格納されてある論理ブロックアドレスを識別し、論理-物理ブロックアドレス変換テーブルにより、前記論理ブロックに対応付けられている物理ブロックを得る手段と、物理ブロック毎の消去回数情報に基づき任意使用可能な物理ブロック群から適当な物理ブロックを選択する手段と、前記手段により求められる物理ブロック間の役割（有効なデータを格納しているin use←→任意に使用可能なready状態）を入れ替える手段を有する。
【０００７】
具体的には不揮発性メモリデバイスのファイルシステムを解析し、リード用途に使用されると判断されるリードオンリー的ファイルの論理ブロックを識別するファイルシステム制御部と、論理-物理ブロックアドレス変換テーブルを用いて、前記論理ブロックに対応する物理ブロックアドレスから第１の物理ブロックを得る論理−物理ブロックアドレス変換テーブル管理部と、物理ブロック使用状況情報と物理ブロック消去回数情報を参照して、任意使用可能な物理ブロック群から所定の条件を満足した第２の物理ブロックを選択する物理ブロック情報管理部と、前記第１の物理ブロックのデータを前記第２の物理ブロックに移し、前記第２の物理ブロックのアドレスを前記論理ブロックアドレスに対応付け、前記物理ブロック使用状況情報における前記第１及び第２の物理ブロックの使用状況を修正する物理ブロック情報修正部を有する。
【発明の効果】
【０００８】
上記の手段によると、ファイルシステムの情報を用いて、交換すべき物理ブロック群を一挙に把握することが可能となり、高速処理に好適となる。
【発明を実施するための最良の形態】
【０００９】
以下図面を参照して、この発明の実施の形態を説明する。まず、本発明が適用された記憶装置の構成を図１に示して説明する。
【００１０】
＜記憶装置＞
記憶装置１００は、不揮発性メモリデバイス１０１、マイクロプロセッシングユニット（以下ＭＰＵと記す）１０２、ランダムアクセスメモリユニット（以下ＲＡＭと記す）１０３、ホストインターフェース１０４、不揮発性メモリインターフェース１０５を有する。
【００１１】
不揮発性メモリデバイス１０１の記憶領域は、多数の物理ブロックＰＨＢで構成され、その記憶領域の一部にファイルシステム１０１ａを含む。
【００１２】
このファイルシステム１０１ａには、データ領域管理情報１０１１、データ領域１０１２が含まれる。データ領域管理情報１０１１は、ファイルアロケーションテーブル（ＦＡＴ）を含む。またデータ領域１０１２は、フォルダ、ファイルデータなどを含む。
【００１３】
ＲＡＭ１０３に設定されている格納部としては、以下のような情報部を挙げることができる。論理ブロックアドレスと物理ブロックアドレスの対応付けを行なったテーブルを有する論理−物理ブロックアドレス変換テーブル情報部１０３ｂがある。更に物理ブロック情報管理部１０２Ｙがある。この物理ブロック情報管理部１０２Ｙは、物理ブロックの使用状況を格納した物理ブロック使用状況情報部１０３ｃ、物理ブロック消去回数情報部１０３ｃを有する。また図示していないが、ＭＰＵ１０２で実行するためのプログラムを展開する領域も確保される。
【００１４】
なお上記の論理ブロックアドレスとは、ホストが利用する論理アドレス空間の論理ブロックアドレスである。また物理ブロックアドレスは、不揮発性メモリデバイス１０１内の物理ブロックアドレスである。
【００１５】
また上記の物理ブロック使用状況情報部１０３ｃは、任意に使用可能な状態になった物理ブロックのブロックアドレスを登録している。ここでは論理ブロックアドレスと物理ブロックアドレスの対応付けがされていない物理ブロックのアドレスが登録されている。または、全物理ブロックのアドレスが記述され、論理ブロックと対応付けされているか否かの識別子が付加される。
【００１６】
物理ブロック消去回数情報部１０３ｄは、物理ブロックアドレス使用状況情報部１０３ｃに登録されている任意使用可能な物理ブロックの各消去回数を格納するものである。
【００１７】
物理ブロック使用状況情報部１０３ｃ、物理ブロック消去回数情報部１０３ｄは、任意に使用可能な状態になった物理ブロックのブロックアドレスを有するとしたが、全ての物理ブロックのブロックアドレスを有してもよい。
【００１８】
上記ＲＡＭ１０３内の、物理ブロック使用状況情報、論理−物理ブロックアドレス変換テーブル、物理ブロックアドレス、物理ブロック消去回数などの情報は、ＭＰＵ１０２の機能により管理及び処理される。
【００１９】
従って、ＭＰＵ１０２は、論理−物理ブロックアドレス変換テーブル管理部１０２ｂ、物理ブロックの使用状況を格納した物理ブロック使用状況管理部１０２ｃ，物理ブロック消去回数管理部１０２ｄを有する。また不揮発性メモリデバイス１０１内のファイルシステムを制御するファイルシステム制御部１０２ｅ、さらには、この装置の特徴となる物理ブロック情報修正部１０２ｇを有する。この物理ブロック情報修正部１０２ｇはファイルシステム制御部１０２ｅ内に含まれてもよいが、説明をわかりやすくするために示した。後述するように第１の物理ブロックのデータを第２の物理ブロックに移し、第２の物理ブロックのアドレスを論理ブロックアドレスに対応つけことができる。また、物理ブロック使用状況情報における第１及び第２の物理ブロックの使用状況を修正することもできる。さらにまたこの物理ブロック情報修正部１０２ｇは、物理ブロック使用状況情報部における第１の物理ブロックの使用状況を修正する際に第１の物理ブロックのデータを消去することができる。
【００２０】
また上記管理部を統括する統合処理部１０２ｘも有する。統合処理部１０２ｘはデータの書き込み、読出しも実行する。
【００２１】
ファイルシステム制御部１０２ｅは、ファイルシステムを解析することができるし、またファイルシステムの更新処理を行うことができる。フィルシステムを解析するときは、フォルダ内の各ファイルのファイル情報がチェックされる。ファイル情報には、リードオンリー的ファイルであるか否かを示す属性情報が含まれる。または拡張子によりリードオンリー的ファイルであるか否かを判断できる場合もある。次にＦＡＴを利用してリード用途として使用されると判断されるファイルのデータが格納されてある論理ブロックアドレスを識別することができる。
【００２２】
論理−物理ブロックアドレス変換テーブル管理部１０２ｂは、論理−物理ブロックアドレス変換テーブルを制御する。これにより、論理ブロックに対応付けられている物理ブロックが把握される（現在物理ブロック又は第１の物理ブロックと称する）。
【００２３】
また、物理ブロック情報管理部１０２Ｙが参照される。例えば物理ブロック使用状況情報部１０３ｃがアクセスされ、物理ブロック毎の消去回数情報に基づき任意使用可能な物理ブロック群から適当な物理ブロックが選択される（選択物理ブロック又は第２の物理ブロックと称する）。さらに、使用中の現在物理ブロックのアドレスと、選択物理ブロックのアドレスが論理−物理ブロックアドレス変換テーブルで入れ替えされる。この処理は主に物理ブロック情報修正部１０２ｇにより実行される。
【００２４】
さらに使用中の現在物理ブロックのデータが、選択物理ブロックに移動される。そして、現在物理ブロックのデータは、消去処理され、その消去回数が更新される。そして、この現在物理ブロックは、任意使用可能な物理ブロックとして、物理ブロック使用状況管理部１０２ｃの制御のもとで、物理ブロック使用状況情報部１０３ｃに登録される。つまり先の現在物理ブロックは、有効なデータを格納しているin use状態から任意に使用可能なready状態に変更される。
【００２５】
＜ファイルシステムの基本構成＞
図２は、ファイルシステムの構成例を示す図である。データ領域管理情報１０１１には、ファイルのデータ本体以外の情報が格納されている。即ち、ブートセクタ２０１、ＦＡＴ２０２、ルートフォルダ２０３が含まれる。またデータ領域１０１２には、フォルダ及び又はファイル２０４が含まれている。
【００２６】
＜ＦＡＴとファイルのクラスタチェーン；図３、図４＞
図３に上記ＦＡＴの一例を示す。図４は、６つのクラスタで構成されるファイルのチェーンテーブルの1例を示す。
【００２７】
ＦＡＴは、図３に示すようにデータ領域１０１２に割り当てられたクラスタと呼ばれるデータ単位で、各ファイルの構成を示すテーブルである。
【００２８】
今、あるファイルＡが、図４の４０１で示すように６つのクラスタで構成されるものする。ＦＡＴデータは、ファイルＡを構成する最初のクラスタアドレスから順に参照できるように、ファイルを構成する複数のクラスタアドレスを示すクラスタチェーンを作っている。
【００２９】
ファイルの最終クラスタはチェーンがないためＦＦＦＦｈを示す。また、更に幾つかのテーブルデータは特別なクラスタを示し、００００ｈは未使用クラスタ、Ｆ８ＦＦｈは予約システムデータ等を示す。
【００３０】
２クラスタが１物理ブロック（＝１論理ブロック）に相当すると仮定すると図４で示すファイルがリードオンリー的ファイルであると判別される時、符号３０１で示される論理ブロックに対応する物理ブロックが図１０（後述）で処理される対象となりうる。
【００３１】
＜フォルダ内のファイル情報＞
フォルダには１つ又はそれ以上のファイル（１例を図４で示した）が格納される。図５は、フォルダの中にファイル毎に存在するファイル情報を示す図である。ファイル情報には、識別子を含むファイル名情報が記入されてある形式名情報５０３と、ファイル属性情報５０１を含む。ファイル属性情報５０１にはリードオンリー情報５０２が含まれる。またファイル情報には、ＦＡＴのファイルチェーンの先頭情報（先頭クラスタアドレス）５０４も含まれるものとする。
【００３２】
したがって、ファイル識別情報のリードオンリー情報５０２の内容を判断したとき、当該ファイルがリードオンリー的なファイルであるかどうかを判定することができる。
【００３３】
＜不揮発性メモリデバイス内の記憶領域６０１＞
図６は、不揮発性メモリデバイス内の記憶領域の例を示したものである。不揮発性メモリデバイス１０１上の記憶領域６０１は、全て物理ブロックで構成されるものであり、論理ブロックとは、論理−物理ブロックアドレス変換テーブル情報部１０７で対応付けられている。また、この物理ブロック群は、割り当て済みの物理ブロック６０２と、任意に使用可能な物理ブロック６０３に分類されうる。
【００３４】
後述する図１１で説明される物理ブロックＰｎと図１２で説明されるＰｓ‘は、任意に使用可能な物理ブロック６０３に変化し、図１１で説明される物理ブロックＰｍと図１２で説明されるＰｓは、論理ブロックと論理−物理ブロックアドレス変換テーブル情報部１０７で対応付けられる、割り当て済みの物理ブロック６０２に変化する。
【００３５】
＜論理-物理ブロックアドレス変換テーブル＞
図７は、図１における論理−物理ブロックアドレス変換テーブル１０７の１例を示す図である。論理ブロックアドレス７０１が、ＲＡＭ１０３上の任意の番地から始まる４バイト単位のオフセットアドレスに相当し、データ部には、前記論理ブロックアドレス３０１に対応付けられた物理ブロックアドレスデータ７０２が格納される。物理ブロックが対応付けられていない論理ブロックアドレスのデータ部は、FFFFFFFFhデータ（７０３）が格納されている。
【００３６】
後述する図１１におけるステップＢ００では、符号７０４に示すアドレスデータ変更処理が行われるものであり、図１２におけるステップＣ１２では、符号７０５に示すアドレスデータ変更処理が行われる。
【００３７】
＜物理ブロック消去回数情報＞
図８は図１の物理ブロック消去回数情報部１０３ｄの一例を説明する図である。物理ブロックアドレス８０１が、ＲＡＭ１０３上の任意の番地から始まる４バイト単位のオフセットアドレスに相当し、データ部は物理ブロックアドレス毎の消去回数データ８０２が格納される。後述する図１１におけるステップＢ０５では、データ消去処理が行われるが、このときは符号８０３に示すようにデータ消去処理が行われる。また後述する図１２におけるステップＣ０Ａでは、消去回数データの更新処理が行われるが、このときは符号８０５に示すように消去回数データの更新処理が行われるものである。また後述する図１１における物理アドレスＰｎの消去回数は符号８０４で示すように処理するものとする。
【００３８】
＜物理ブロック使用状況情報＞
図９は、図１における物理ブロック使用状況情報部１０３ｃの一例を示す図である。物理ブロックアドレス９０１が、ＲＡＭ１０３上の任意の番地から始まる１ビット単位のオフセットアドレスに相当し、データ部は任意に使用可能か否かを示す１ビットのフラグデータ９０２で構成される。任意に使用可能な物理ブロックアドレスで参照されるデータ部は、‘１’を格納し、すでに使用中ある物理ブロックアドレスで参照されるデータ部は‘０’を格納する。後述する図１１におけるステップＢ０９では、物理ブロックを使用状態に設定するが、このときは符号９０３に示すフラグ処理が行われる。逆に図１１のステップＢ１0では、物理ブロックを未使用状態に設定するが、このときは符号９０４に示すフラグ処理が行われる。後述する図１２におけるステップＣ０１では、符号９０５に示すフラグ処理が行われ、ステップＣ１０では、符号９０６に示すフラグ処理が行われるものである。
【００３９】
＜リードオンリー的論理ブロックの検索＞
図１０は、図１１のＢ０１の動作を説明するフロー図である。図１０すなわち図１１の動作実施タイミングは任意であり特に問わないが、図１３で示すホストからの命令の合間や、ＭＰＵ１２上で動作するプログラムが実行される合間に実施されることが好ましい。
【００４０】
また、本実施形態では、図１４で示すようなファイル構造のフォルダ解析をどのフォルダから解析するか、どのファイルから解析するか、クラスタチェーンのどこから解析するかについては特に問わない。
【００４１】
フォルダに１つ以上のファイルが存在すならば、そのフォルダには１つ以上のファイルのファイル情報（図５）が格納されており、そのファイル情報からリードオンリーファイル的であるかを解析する（ステップＡ０１）。リードオンリー的ファイルが、存在しなければ終了となり、必要に応じて別のフォルダを解析する。リードオンリー的ファイルが、存在すればファイルの先頭クラスタアドレス５０４（図５に示した）から図４に示すようなクラスタチェーンを伝う（ステップＡ０３）。そして、図３の符号３０１で示したような論理ブロック包括されている箇所を判別し（ステップＡ０４）、クラスタアドレスを論理ブロックアドレスに換算する（ステップＡ０５）。これにより、リードオンリー的ファイル内の論理ブロックアドレスが判別される。
【００４２】
＜基本動作＞
図１１は、本発明の基本動作を説明するフロー図である。ＲＡＭ１０３に格納されてあるプログラムの１部は、ファイルシステム１０６を解析することでリードオンリー的ファイルの論理ブロックＬｋを求めることができる（ステップＢ０１）。
【００４３】
前記論理ブロックＬｋが存在しなければ終了し（ステップＢ０２）、論理ブロックLｋが存在すれば、論理ブロックＬｋが割り当てられている物理ブロックＰｎを論理-物理ブロックアドレス変換テーブル情報部107を参照して求める（ステップＢ０３）。
【００４４】
次に、物理ブロックＰｎに関して、物理アドレス消去回数情報部１１１を参照し、物理ブロックＰｎの消去回数の値が、ある任意の閾値より大きいかどうかを判断する
物理ブロックＰｎの消去回数の値が、ある任意の閾値よりも大きければ、論理ブロックＬｋに対する物理ブロック入れ替え処理は行わないものとし、ある任意の閾値以下であれば次の処理を行う（ステップＢ０４）。
【００４５】
任意に使用可能で前記閾値値以上の物理アドレス消去回数を持つ物理ブロックから任意の物理ブロックＰｍを選択し（ステップＢ０Ａ）、前記物理ブロックＰｍのデータを消去する（ステップＢ０５）。次に物理ブロックＰｍの物理ブロック消去回数データを更新し（ステップＢ０６）、物理ブロックＰｎのデータを物理ブロックＰｍにコピーする（ステップＢ０７）。
【００４６】
次に、論理-物理ブロックアドレス変換テーブル１０７の論理ブロックＬｋに対応する物理ブロック情報をＰｎからＰｍに更新し（ステップＢ０８）、物理ブロック使用状況情報部１０８の物理ブロックＰｍのフラッグを使用状態に変更する（ステップＢ０９）。さらに、物理ブロック使用状況情報部１０８の物理ブロックＰｎの情報を未使用状態に変更する（ステップＢ１０）。以上の動作により、論理ブロックＬｋは、より書き込み回数耐性の低い物理ブロックに対応付けられる。
【００４７】
＜ホストからのコマンドに応答した動作例の説明＞
図１２は、本発明の装置がホストからのライトコマンドを受けて、データ処理する時の動作例を説明するフロー図である。
【００４８】
いま、ＭＰＵ１０２が、ホストインターフェース１０４を介してホストからのライトコマンドを受け取ったとする。すると、ＭＰＵ１０２は、物理ブロック使用状況情報部１０３ｃから未使用の物理ブロックＰｓを検索し(ステップC００)、物理ブロック使用状況情報部１０３ｃの物理ブロックＰｓ使用情報を変更し（ステップＣ０１）、物理ブロックＰｓのデータ消去処理を行い(ステップC０２)、物理ブロックＰｓの物理ブロック消去回数データを更新する（ステップＣ０Ａ）。
【００４９】
次に論理−物理ブロックアドレス変換テーブル情報部１０３ｂのテーブル上で、ホストがデータをライトするべき論理ブロックＬｍに関する情報を求める(ステップC０３)。つまり、論理ブロックＬｍに対応した物理ブロックが存在するかどうかを判断するためである。ここで論理ブロックＬｍに物理ブロックＰｓ’が登録済でなければ、ホストからのデータを物理ブロックＰｓに書き込む（ステップＣ１１）が、登録済（物理ブロックＰｓ’としてすでに存在している場合）であればステップC０５へ進む（ステップＣ０４）。
【００５０】
ホストが指定しているホストスタートアドレスが物理ブロックの境界でないかどうかを判定する（ステップＣ０５）。書き込みスタートアドレスが必ずしも、物理ブロックの先頭とはかぎらないからである。
【００５１】
ブロック境界でない場合、物理ブロックＰｓ’内のデータであって、前記スタートアドレスよりも前のデータをまず物理ブロックＰｓにコピーする（ステップＣ０６）。これによりデータの取りこぼしを防止している。ブロック境界であった場合は、前記スッテップをスキップして、ホストからのデータを物理ブロックＰｓに書き込む（ステップＣ０７）。
【００５２】
ホストから指定されているホストエンドアドレスが、スタートアドレスと同じブロックであって、かつ、ブロック境ではないかどうかを判別する（ステップＣ０８）。ブロック境界であった場合は、物理ブロックＰｓ’内のデータであって、エンドアドレス後のデータを物理ブロックＰｓにコピーする（ステップＣ０９）。
【００５３】
物理ブロックＰｓ’は、この時点で任意に使用可能な物理ブロックとして物理ブロック使用状況情報部１０３ｃに登録される（ステップＣ１０）。また論理−物理ブロックアドレス変換テーブル上の論理ブロックＬｍにＰＳを対応付けて登録する（ステップＣ１２）。ホストからのライトアクセス対象が１ブロックを超える場合は、更にステップC００からの動作を繰り返すものである。
【００５４】
＜ホストからのコマンド＞
図１３は、本発明の装置に対してホストから送られる情報の一例を時系列に示して説明する図である。ホストからは、記憶装置１００に送られる情報の期間を分類すると、ライトコマンド期間、データ転送期間、リードコマンド期間、データ転送期間などがある。この中で、リードオンリー的ファイルの処理期間（１３０１）を設定してもよい。このリードオンリー的ファイルの処理期間１３０１に送るＲＯコマンドを新設し、このＲＯコマンドにＭＰＵ１０２が応答し、図１０、図１１で示した動作を得る。
【００５５】
＜フォルダの例＞
図１４は、フォルダのツリー構造の例を説明する図である。頂点は、ルートフォルダＤ０３であり、ルートフォルダＤ０３を頂点としてフォルダツリーが構成され、其のフォルダ（Ｄ０１、Ｄ０３）にファイルＤ０２が属する。
【００５６】
上記したように本実施形態は、ファイルシステム情報を解析することでシステム的にリードオンリー用途の論理ブロックを検索し、前記論理ブロックと論理−物理ブロックアドレス変換テーブルで対応付けられている物理ブロックを処理する。このために、従来必要とされる物理ブロック単位の監視情報部（容量が増えるほど監視用のテーブルが増えるので幅広いメモリ領域を必要する）を設けることなく、ライトアクセスの可能性が少ない物理ブロックの選択が可能である。
【００５７】
本実施形態は、ブロック単位にイレーズ／ライト使用回数に限りの有る不揮発性メモリにおいて、使用制限回数に近い物理ブロックにライトアクセスの可能性が少ないデータを保存し、使用制限回数に遠い物理ブロックを任意に使用可能な状態、すなわち、データライト用途に確保しておくことができる。よって記憶装置全体としての書き換え限度回数の向上を図ることが出来る。
【００５８】
上記したように、本装置は、書き換え寿命が短くなった物理ブロックを書き換える確率が低い論理アドレスに割り当て、書き換え寿命が長き物理ブロックを書き換える確率が高い任意使用可能な物理ブロックまたは論理アドレスに割り当てることにより、記憶装置全体としての書き換え限度回数の向上を図ることが出来る。
【００５９】
また任意使用可能な物理ブロックに割り当てる際に予めデータを消去しておくことで、ホストからのデータライトに対するそのつどの物理ブロックの消去時間及びホストからのデータライトに付随して発生する冗長なデータライト時間を削減でき、ホストからの書き込み処理を高速に出来る。
【００６０】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００６１】
【図１】本発明に係る記憶装置の一実施形態を示すブロック図である。
【図２】ファイルシステムのファオーマットの一例を示す図である。
【図３】図２におけるＦＡＴの一例を説明する図である。
【図４】図３におけるファイルチェーンの一例を説明する図である。
【図５】図２フォルダ領域に格納されているファイル情報の一例を示す図である。
【図６】図１の不揮発性メモリの記憶領域の最小限に必要とされる領域の例を示したものである。
【図７】図１における論理−物理ブロックアドレス変換テーブル情報部の一例を示す図である。
【図８】図１における物理ブロック消去回数情報部の一例を示す図である。
【図９】図１における物理ブロック使用状況情報部の一例を示す図である。
【図１０】リードオンリーファイルの属性もしくは拡張子から主にリード用途として使用されると判断されるファイルのデータが格納されてある論理ブロックアドレスを求める動作を説明するフロー図である。
【図１１】本発明の基本動作の例を説明するフロー図である。
【図１２】ホストからのライトコマンド処理時の記憶装置の動作例を説明するフロー図である。
【図１３】ホストから送られてくる情報の時系列の一例を説明する図である。
【図１４】フォルダのツリー構造の一例を説明する図である。
【符号の説明】
【００６２】
１０１・・・不揮発性メモリデバイス、１０２・・・ＭＰＵ、１０３・・・ＲＡＭ、１０４・・・ホストインターフェース、１０５・・・不揮発性メモリインターフェース、１０１ａ・・・ファイルシステム、１０３ｂ・・・論理-物理ブロックアドレス変換テーブル情報部、１０３ｃ・・・物理ブロック使用状況情報部、１０３ｄ・・・物理ブロック消去回数情報部、１０１１・・・データ領域管理情報、１０１２・・・データ領域。
【図１】
2009003784.tif 000003
【図２】
2009003784.tif 000004
【図３】
2009003784.tif 000005
【図４】
2009003784.tif 000006
【図５】
2009003784.tif 000007
【図６】
2009003784.tif 000008
【図７】
2009003784.tif 000009
【図８】
2009003784.tif 000010
【図９】
2009003784.tif 000011
【図１０】
2009003784.tif 000012
【図１１】
2009003784.tif 000013
【図１２】
2009003784.tif 000014
【図１３】
2009003784.tif 000015
【図１４】
2009003784.tif 000016