(57)【要約】ファイルシステム制御部１５５Ａがファイルデータを主記憶メモリ１４２に書き込む際、ファイルデータとディレクトリエントリを異なるアロケーションユニットに書き込むことにより、ファイルを連続書き込みしやすくなると共に、ディレクトリエントリの更新時にファイルのコピー回数を少なくできる。こうすれば消去単位である物理ブロックサイズがクラスタサイズより大きい不揮発性メモリを使用した場合であっても、書き込みパフォーマンスを向上させることができる。【特許請求の範囲】
【請求項１】
アクセス装置と、不揮発性記憶装置とを含み、前記アクセス装置から与えられるコマンドと論理アドレスに応じて前記不揮発性記憶装置にファイルデータを書き込み、及び読み出す不揮発性記憶システムであって、  前記不揮発性記憶装置は、  不揮発性の主記憶メモリと、メモリコントローラと、を有するものであり、  前記主記憶メモリは、  前記アクセス装置の領域割当単位であるクラスタサイズよりも大きい複数の物理ブロックから成る不揮発性のメモリであり、  前記メモリコントローラは、  前記アクセス装置から与えられる論理アドレスに基づいて前記主記憶メモリの物理アドレスを決定するアドレス管理部と、  前記アドレス管理部で示されたアドレスに従って前記主記憶メモリにアクセスする主記憶メモリアクセス部とを有するものであり、  前記アクセス装置は、  複数のクラスタと、それを示す論理アドレスによってファイルデータを管理し、複数の連続するクラスタをアロケーションユニットとし、前記アロケーションユニットのサイズは前記主記憶メモリの物理ブロックサイズ以上の容量であり、ファイルデータを書き込むときにファイルデータ管理情報と前記ファイルデータとを互いに異なるアロケーションユニットに書き込む不揮発性記憶システム。
【請求項２】
前記アクセス装置は、前記ファイルデータ管理情報を特定のアロケーションユニットに集約させて書き込む請求項１記載の不揮発性記憶システム。
【請求項３】
前記主記憶メモリは、各物理ブロックの領域に追記書き込み可能な不揮発性のメモリであり、  前記メモリコントローラは、前記アロケーションユニットにおける論理セクタアドレスを物理セクタアドレスに変換する第２のアドレス管理部と、  前記ファイル管理情報を記録する際に前記第２のアドレス管理部で示されたセクタアドレスに従ってアロケーションユニットを保持する物理ブロックにアクセスする第２の主記憶メモリアクセス部とを有する請求項１記載の不揮発性記憶システム。
【請求項４】
前記アクセス装置は、前記ファイルデータと前記ファイルデータ管理情報を識別するために、少なくとも２種類のライトコマンド種を有する請求項１記載の不揮発性記憶システム。
【請求項５】
前記ライトコマンドは引数を有し、前記ファイルデータと前記ファイルデータ管理情報を識別するために、前記ライトコマンドの引数を変更する請求項１記載の不揮発性記憶システム。
【請求項６】
前記メモリコントローラは、前記主記憶メモリのメモリ容量を前記アクセス装置に通知するものであり、  前記アクセス装置は、前記メモリコントローラより通知されたメモリ容量に基づいて前記アロケーションユニットのサイズを決定する請求項１記載の不揮発性記憶システム。
【請求項７】
前記メモリコントローラは、前記主記憶メモリの物理ブロックサイズを前記アクセス装置に通知するものであり、  前記アクセス装置は、前記メモリコントローラより通知された物理ブロックサイズに基づいて前記アロケーションユニットのサイズを決定する請求項１記載の不揮発性記憶システム。
【請求項８】
前記アクセス装置は、前記アロケーションユニットに一定の空き領域が存在する前記アロケーションユニットのみを選択的に使用する請求項１記載の不揮発性記憶システム。
【請求項９】
前記不揮発性記憶装置は、前記主記憶メモリよりも書き換え保証回数が多く、且つオーバーライトが可能な不揮発性の補助記憶メモリを更に有するものであり、  前記メモリコントローラは、前記ファイルデータ管理情報を前記補助記憶メモリに書き込む請求項１記載の不揮発性記憶システム。
【請求項１０】
前記補助記憶メモリは、書き込み速度が前記主記憶メモリより速い不揮発性メモリである請求項９記載の不揮発性記憶システム。
【請求項１１】
前記補助記憶メモリは、不揮発性ＲＡＭである請求項９記載の不揮発性記憶システム。
【請求項１２】
前記補助記憶メモリは、強誘電体メモリ（ＦｅＲＡＭ）、磁性記録式随時書き込み読み出しメモリ（ＭＲＡＭ）、オボニックユニファイドメモリ（ＯＵＭ）、レジスタンスＲＡＭ（ＲＲＡＭ）のいずれか１つである請求項１１記載の不揮発性記憶システム。
【請求項１３】
複数のクラスタと、それを示す論理アドレスによってファイルデータを管理し、複数の連続するクラスタをアロケーションユニットとし、ファイルデータを記録するときにファイルデータ管理情報と前記ファイルデータとを異なるアロケーションユニットに書き込むものであり、前記アロケーションユニットのサイズは物理ブロックサイズ以上の容量であり、前記ファイルデータと前記ファイルデータ管理情報を不揮発性記憶装置に書き込む際、互いにこれらを識別できるライトコマンドを発行するアクセス装置に接続して用いられ、前記アクセス装置から与えられるコマンドと論理アドレスに応じてファイルデータを書き込み、及び読み出す不揮発性記憶装置であって、  不揮発性の主記憶メモリと、メモリコントローラと、を有し、  前記主記憶メモリは、  前記アクセス装置の領域割当単位であるクラスタサイズよりも大きい複数の物理ブロックから成る不揮発性のメモリであり、  前記メモリコントローラは、  前記アクセス装置から与えられる論理アドレスに基づいて前記主記憶メモリの物理アドレスを決定するアドレス管理部と、  前記アドレス管理部で示されたアドレスに従って前記主記憶メモリにアクセスする主記憶メモリアクセス部と、  前記主記憶メモリの容量についてのデータを保持するレジスタと、を有する不揮発性記憶装置。
【請求項１４】
前記主記憶メモリは、各物理ブロックの領域に追記書き込み可能な不揮発性のメモリであり、  前記メモリコントローラは、前記アロケーションユニットにおける論理セクタアドレスを物理セクタアドレスに変換する第２のアドレス変換部と、  前記ファイル管理情報を記録する際に前記第２のアドレス変換部で示されたセクタアドレスに従って前記主記憶メモリのアロケーションユニットを保持する物理ブロックにアクセスする第２の主記憶メモリアクセス部とを有する請求項１３記載の不揮発性記憶システム。
【請求項１５】
前記メモリコントローラは、前記主記憶メモリのメモリ容量を前記アクセス装置に通知する請求項１３記載の不揮発性記憶装置。
【請求項１６】
前記メモリコントローラは、前記主記憶メモリの物理ブロックサイズを前記アクセス装置に通知する請求項１３記載の不揮発性記憶装置。
【請求項１７】
前記不揮発性記憶装置は、前記主記憶メモリよりも書き換え保証回数が多く、且つオーバーライトが可能な不揮発性の補助記憶メモリを更に有するものであり、  前記メモリコントローラは、前記ファイルデータ管理情報を前記補助記憶メモリに書き込む請求項１３記載の不揮発性記憶装置。
【請求項１８】
前記補助記憶メモリは、書き込み速度が前記主記憶メモリより速い不揮発性メモリである請求項１７記載の不揮発性記憶装置。
【請求項１９】
前記補助記憶メモリは、不揮発性ＲＡＭである請求項１７記載の不揮発性記憶装置。
【請求項２０】
前記補助記憶メモリは、強誘電体メモリ（ＦｅＲＡＭ）、磁性記録式随時書き込み読み出しメモリ（ＭＲＡＭ）、オボニックユニファイドメモリ（ＯＵＭ）、レジスタンスＲＡＭ（ＲＲＡＭ）のいずれか１つである請求項１９記載の不揮発性記憶装置。
【請求項２１】
複数のクラスタと、それを示す論理アドレスによってファイルデータを管理し、複数の連続するクラスタをアロケーションユニットとし、ファイルデータを記録するときにファイルデータ管理情報と前記ファイルデータとを異なるアロケーションユニットに書き込むものであり、前記アロケーションユニットのサイズは物理ブロックサイズ以上の容量であり、前記ファイルデータと前記ファイルデータ管理情報を不揮発性の主記憶メモリに書き込む際、互いにこれらを識別できるライトコマンドを発行するアクセス装置に接続して用いられ、前記アクセス装置から与えられるコマンドと論理アドレスに応じて前記主記憶メモリにファイルデータを書き込み、及び読み出すメモリコントローラであって、  前記主記憶メモリは、  前記アクセス装置の領域割当単位であるクラスタサイズよりも大きい複数の物理ブロックから成る不揮発性のメモリであり、  前記メモリコントローラは、  前記アクセス装置から与えられる論理アドレスに基づいて前記主記憶メモリの物理アドレスを決定するアドレス管理部と、  前記アドレス管理部で示されたアドレスに従って前記主記憶メモリにアクセスする主記憶メモリアクセス部と、  前記主記憶メモリの容量についてのデータを保持するレジスタと、を有するメモリコントローラ。
【請求項２２】
前記主記憶メモリは、各物理ブロックの領域に追記書き込み可能な不揮発性のメモリであり、  前記メモリコントローラは、前記アロケーションユニットにおける論理セクタアドレスを物理セクタアドレスに変換する第２のアドレス変換部と、  前記ファイル管理情報を記録する際に前記第２のアドレス変換部で示されたセクタアドレスに従って前記主記憶メモリのアロケーションユニットを保持する物理ブロックにアクセスする第２の主記憶メモリアクセス部とを有する請求項２１記載のメモリコントローラ。
【請求項２３】
前記メモリコントローラは、前記主記憶メモリのメモリ容量を前記アクセス装置に通知する請求項２１記載のメモリコントローラ。
【請求項２４】
前記メモリコントローラは、前記主記憶メモリの物理ブロックサイズを前記アクセス装置に通知する請求項２１記載のメモリコントローラ。
【請求項２５】
前記メモリコントローラは、前記主記憶メモリよりも書き換え保証回数が多く、且つオーバーライトが可能な不揮発性の補助記憶メモリを更に有するものであり、前記ファイルデータ管理情報を前記補助記憶メモリに書き込む請求項２１記載のメモリコントローラ。
【請求項２６】
前記補助記憶メモリは、書き込み速度が前記主記憶メモリより速い不揮発性メモリである請求項２５記載のメモリコントローラ。
【請求項２７】
前記補助記憶メモリは、不揮発性ＲＡＭである請求項２５記載のメモリコントローラ。
【請求項２８】
前記補助記憶メモリは、強誘電体メモリ（ＦｅＲＡＭ）、磁性記録式随時書き込み読み出しメモリ（ＭＲＡＭ）、オボニックユニファイドメモリ（ＯＵＭ）、レジスタンスＲＡＭ（ＲＲＡＭ）のいずれか１つである請求項２７記載のメモリコントローラ。
【請求項２９】
アクセス装置と、不揮発性記憶装置を含み、前記不揮発性記憶装置は、前記アクセス装置の領域割当単位であるクラスタサイズよりも大きい複数の物理ブロックから成る不揮発性の主記憶メモリと、メモリコントローラと、を有するものであり、前記アクセス装置から与えられるコマンドと論理アドレスに応じて前記不揮発性記憶装置にファイルデータを書き込み、及び読み出す不揮発性記憶システムにおける不揮発性記憶装置の制御方法であって、  複数のクラスタと、それを示す論理アドレスによってファイルデータを管理し、複数の連続するクラスタであって、前記主記憶メモリの物理ブロックサイズ以上の容量をアロケーションユニットとし、  ファイルデータを記録するときにファイルデータ管理情報と前記ファイルデータとを異なるアロケーションユニットに書き込むものであり、  前記メモリコントローラは、前記アクセス装置から与えられる論理アドレスに基づいて前記主記憶メモリの物理アドレスを決定し、  前記ファイルデータと前記ファイルデータ管理情報を前記不揮発性記憶装置に書き込む際、互いにこれらを識別し、前記アドレス管理部で示されたアドレスに従って前記主記憶メモリにアクセスして書き込む不揮発性記憶装置の制御方法。
【請求項３０】
前記主記憶メモリは、各物理ブロックの領域に追記書き込み可能な不揮発性のメモリであり、  前記アロケーションユニットにおける論理セクタアドレスを前記メモリコントローラにより物理セクタアドレスに変換し、  前記ファイル管理情報を記録する際に前記第２のアドレス変換部で示されたセクタアドレスに従って前記主記憶メモリのアロケーションユニットを保持する物理ブロックにアクセスする請求項２９記載の不揮発性記憶装置の制御方法。
【請求項３１】
前記アクセス装置は、前記ファイルデータと前記ファイルデータ管理情報を識別するために、少なくとも２種類のライトコマンド種を変更する請求項２９記載の不揮発性記憶装置の制御方法。
【請求項３２】
前記アクセス装置は、前記不揮発性記憶装置に前記ファイルデータと前記ファイルデータ管理情報を識別して書き込む際、ライトコマンドの引数を変更する請求項２９記載の不揮発性記憶装置の制御方法。
【請求項３３】
前記アクセス装置は、前記メモリコントローラより通知された前記主記憶メモリのメモリ容量に基づいて前記アロケーションユニットのサイズを決定する請求項２９記載の不揮発性記憶装置の制御方法。
【請求項３４】
前記アクセス装置は、前記メモリコントローラより通知された前記主記憶メモリの物理ブロックサイズに基づいて前記アロケーションユニットのサイズを決定する請求項２９記載の不揮発性記憶装置の制御方法。
【請求項３５】
前記アクセス装置は、一定の空き領域が存在する前記アロケーションユニットのみを選択的に使用する請求項２９記載の不揮発性記憶装置の制御方法。
【請求項３６】
前記不揮発性記憶装置は、前記主記憶メモリよりも書き換え保証回数が多く、且つオーバーライトが可能な不揮発性の補助記憶メモリを更に有するものであり、  前記ファイルデータ管理情報を前記メモリコントローラにより前記補助記憶メモリに書き込む請求項２９記載の不揮発性記憶装置の制御方法。
【請求項３７】
主記憶メモリを有する不揮発性記憶装置に対してファイルデータを書き込み、及び読み出すアクセス装置であって、  複数のクラスタと、それを示す論理アドレスによってファイルデータを管理し、複数の連続するクラスタをアロケーションユニットとし、前記アロケーションユニットは前記主記憶メモリの物理ブロックサイズ以上の容量であり、ファイルデータを書き込むときにファイルデータ管理情報と前記ファイルデータとを互いに異なるアロケーションユニットに書き込むアクセス装置。
【請求項３８】
前記ファイル管理情報を特定のアロケーションユニットに集約させて書き込む請求項３７記載のアクセス装置。
【請求項３９】
前記ファイルデータと前記ファイルデータ管理情報を識別するために、少なくとも２種類のライトコマンド種を有する請求項３７記載のアクセス装置。
【請求項４０】
ライトコマンドは引数を有し、前記ファイルデータと前記ファイルデータ管理情報を識別するために、前記ライトコマンドの引数を変更する請求項３７記載のアクセス装置。
【請求項４１】
前記不揮発性記憶装置から通知されたメモリ容量に基づいて前記アロケーションユニットのサイズを決定する請求項３７記載のアクセス装置。
【請求項４２】
前記不揮発性記憶装置から通知された物理ブロックサイズに基づいて前記アロケーションユニットのサイズを決定する請求項３７記載のアクセス装置。
【請求項４３】
前記アロケーションユニットに一定の空き領域が存在する前記アロケーションユニットのみを選択的に使用する請求項３７記載のアクセス装置。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は書き換え可能な不揮発性メモリを備えた不揮発性記憶装置を記憶媒体として使用した不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、アクセス装置及び不揮発性記憶装置の制御方法に関するものである。
【背景技術】
【０００２】  書き換え可能な不揮発性メモリを備えた不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。また半導体メモリカードを使った不揮発性記憶システムは、デジタルスチルカメラ等を中心にその需要が広まっている。半導体メモリカードに主に使用されている不揮発性メモリであるＮＡＮＤ型フラッシュメモリは、１６ｋＢ（バイト）を消去単位としてきた。そのために半導体メモリカードを使用するアクセス装置は１６ｋＢを書き込みの管理単位、即ちファイルデータの領域割当単位であるクラスタ容量としている。【０００３】  しかし近年、不揮発性記憶システムは、テキストデータや静止画だけでなく動画等のストリームデータの記録再生システムとしてもその応用範囲が拡大している。それに伴いフラッシュメモリも十分な時間の動画が記録できる大容量のものが望まれている。また低コスト化も望まれている。この要望に対応し、消去単位を１２８ｋＢ或いは２５６ｋＢとしたＮＡＮＤ型フラッシュメモリが提案されている。しかし、アクセス装置からの１６ｋＢ単位での書き込みに対して、不揮発性記憶装置内部のメモリコントローラではＮＡＮＤ型フラッシュメモリの消去単位である１２８ｋＢ単位或いは２５６ｋＢ単位として扱うために、アクセス装置からみて相対的に１６ｋＢ単位の書き込みに要する時間がかかるという欠点があった。【０００４】  ここで、不揮発性記憶装置に格納されたデータを管理するファイルシステムについて説明する。ファイルシステムは、不揮発性記憶装置に格納されたデータをファイルとして容易に取り扱うことのできるシステムである。従来使用されているファイルシステムとして、ＦＡＴファイルシステム（詳細は、非特許文献１参照）や、ＵＤＦ（Ｕｎｉｖｅｒｓａｌ  Ｄｉｓｋ  Ｆｏｒｍａｔ）（詳細は、非特許文献２参照）、ＮＴＦＳ（Ｎｅｗ  Ｔｅｃｈｎｏｌｏｇｙ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）などが存在する。これらファイルシステムによりデータが管理された不揮発性記憶装置は、同一のファイルシステムを解釈する機器間でファイルデータを共有することができるため、機器間でデータを授受することが可能となる。ファイルシステムでは、データを記録する情報記録領域を、最小アクセス単位であるセクタ、及びセクタの集合であるクラスタに分割して管理し、１つ以上のクラスタをファイルとして管理する。【０００５】  次にＦＡＴファイルシステムと、ＦＡＴファイルシステムを用いた従来の不揮発性記憶システムについてより具体的に説明する。図１はＦＡＴファイルシステムの構成を示す。図１のファイルシステム管理領域６００は、不揮発性記憶システムのアクセス装置側から見たファイルシステムで管理する不揮発性メモリの領域を意味し、ユーザデータと記載された領域の全領域、あるいは一部の領域に相当する。ＬＡは論理アドレスであり、０〜Ｍ−１までの論理アドレスを持つ。ＦＡＴファイルシステムでは、ファイルシステム管理領域の先頭にファイルシステム管理領域の全体を管理するための管理情報領域６０１が存在し、引き続いてファイル内のデータなどを格納するデータ領域６０２が存在する。管理情報領域６０１は、マスターブートレコード・パーティションテーブル（ＭＢＲ・ＰＴ）６０３、パーティションブートセクタ（ＰＢＳ）６０４、ＦＡＴ６０５，６０６、ルートディレクトリエントリ（ＲＤＥ）６０７から構成される。【０００６】  ＭＢＲ・ＰＴ６０３は、ファイルシステム管理領域を複数のパーティションと呼ばれる領域に分割して管理するための情報を格納する部分である。ＰＢＳ６０４は、１つのパーティション内の管理情報を格納する部分である。ＦＡＴ６０５，６０６は、ファイルに含まれるデータの物理的な格納位置を示す部分である。ＲＤＥ６０７は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報を格納する部分である。ＦＡＴは、ファイルに含まれるデータの物理的な格納位置を示す重要な領域であることから、通常、ファイルシステム管理領域内に２つの同じ情報を持つＦＡＴ６０５，６０６が存在し、二重化されている。【０００７】  データ領域６０２は複数のクラスタから成り、各クラスタはファイルに含まれるデータを格納している。多くのデータを格納するファイルなどは、複数のクラスタに跨ってデータを格納しており、各クラスタ間の繋がりは、ＦＡＴ６０５，６０６に格納されたリンク情報で示されている。図２を用いてＦＡＴファイルシステムにおけるデータ格納例を説明する。データ領域６０２は、クラスタと呼ばれる固定長ブロック単位から成り、各クラスタには２から始まる昇順のクラスタ番号を持つ。ＦＡＴ６０５，６０６は各クラスタの使用状況と、各クラスタ間の繋がりを示すリンク情報を管理しており、各クラスタ番号に対応したＦＡＴエントリから構成される。ＦＡＴエントリは、ＦＡＴファイルシステムの種別により、１クラスタあたり１２ビット、１６ビット、３２ビットの３種類のうち、いずれかの大きさとなる。図２の例では１６ビットで１エントリを表現する場合を示している。ＦＡＴエントリには、次に繋がるクラスタのクラスタ番号、当該クラスタが空き領域であることを示す０ｘ００００、当該クラスタがリンク終端であることを示す０ｘＦＦＦＦのいずれかの値が格納される。図２の例では、クラスタ番号２、５、７に対応するＦＡＴエントリに０ｘ００００が格納されており、これら３つのクラスタが空き領域であることを示している。また、クラスタ番号３に対応するＦＡＴエントリに０ｘ０００４、クラスタ番号４に対応するＦＡＴエントリに０ｘ０００６、クラスタ番号６に対応するＦＡＴエントリに０ｘＦＦＦＦが格納されている。クラスタ番号３、４、６の３つのクラスタはデータを分割して格納していることを示している。【０００８】  次に図３、図４、図５を用いてＦＡＴファイルシステムにおけるファイルデータの書き込み例を説明する。図３はＦＡＴファイルシステムにおけるファイルデータ書き込みの処理手順を示した図である。図４は書き込み処理前、図５は処理後のディレクトリエントリ、ＦＡＴ６０５，６０６、データ領域６０２の一例を示した図である。ＦＡＴファイルシステムでは、ルートディレクトリエントリ６０７やデータ領域６０２の一部に、ファイル名やファイルサイズ、ファイル属性などの情報を格納したディレクトリエントリが格納されている。図４（ａ）ではディレクトリエントリの一例を示している。ディレクトリエントリで示されるファイルは、ファイル名がＦＩＬＥ１．ＴＸＴであり、クラスタ番号１０からファイルのデータが格納され、ファイルサイズは１６０００バイトである。図４では１クラスタの大きさを４０９６バイトと仮定しており、４クラスタに跨ってファイルのデータが格納されている。【０００９】  図３を用いて、ファイルデータ書き込み処理を説明する。ファイルデータ書き込み処理では、先ず始めに対象ファイルのディレクトリエントリを読み込む（Ｓ８０１）。次に、読み込んだディレクトリエントリに格納されたファイル開始クラスタ番号を取得し、ファイルデータの先頭位置を確認する（Ｓ８０２）。次に、ＦＡＴ６０５，６０６を読み込み、Ｓ８０２で取得したファイルデータの先頭位置から順にＦＡＴ６０５，６０６上でリンクを辿り、書き込み位置のクラスタ番号を取得する（Ｓ８０３）。次に、データ書き込みに際し、ファイルに新たに空き領域を割り当てる必要があるか判定する（Ｓ８０４）。空き領域の割り当てが不要な場合Ｓ８０６の処理に進む。空き領域の割り当てが必要な場合、ＦＡＴ６０５，６０６上で空き領域を検索し、１クラスタの空き領域をファイルの終端に割り当てる（Ｓ８０５）。次に、現在参照しているクラスタ内に書き込めるだけのデータをデータ領域６０２に書き込む（Ｓ８０６）。次に、全データの書き込みが完了したか判定する（Ｓ８０７）。まだデータが残っている場合、Ｓ８０４の処理に戻る。全データの書き込みが完了した場合、ディレクトリエントリ内に格納されたファイルサイズやタイムスタンプなどを更新し、不揮発性記憶装置に書き込む（Ｓ８０８）。最後にＦＡＴ６０５，６０６を不揮発性記憶装置に書き込み、処理を完了する（Ｓ８０９）。【００１０】  このファイルデータ書き込み処理により、図４に示された１６ｋバイトのデータを持つＦＩＬＥ１．ＴＸＴに１ｋバイトのデータを更に書き込んだ場合、図５に示される１７ｋバイトのデータを持つファイルに変化する。このようにＦＡＴファイルシステムでは、ファイルデータの格納領域としてクラスタ単位で割り当てが行われ、データが格納される。【００１１】  図６は従来の不揮発性記憶システムのブロック図である。図６において、不揮発性記憶システムは不揮発性記憶装置１０１とアクセス装置１０２から成り立っている。不揮発性記憶装置１０１は、メモリコントローラ１０３と不揮発性の主記憶メモリ１０４を含む。メモリコントローラ１０３はホストインターフェース１１１（図面ではインターフェースをＩ／Ｆと記述）、ＣＰＵ１１２、ＲＡＭ１１３、ＲＯＭ１１４、制御部１１５を含む。ホストインターフェース１１１は、アクセス装置１０２と各種コマンド、論理アドレス及びデータを送受信するインターフェースである。ＲＯＭ１１４にはメモリコントローラ１０３全体を制御するプログラムを格納している。このプログラムはＲＡＭ１１３を一時記憶領域として使用し、ＣＰＵ１１２上で動作する。制御部１１５は不揮発性記憶装置１０１内のデータ記憶領域である主記憶メモリ１０４を制御する回路である。制御部１１５は主記憶メモリのアドレスを管理するアドレス管理部１１６と主記憶メモリアクセス部１１７とを含んでいる。【００１２】  一方、図６において、アクセス装置１０２は不揮発���記憶装置１０１にアクセスするものであり、ＣＰＵ１２１、ＲＡＭ１２２、ＲＯＭ１２３、スロット１２４を含む。ＲＯＭ１２３にはアクセス装置１０２を制御するプログラムが格納されている。このプログラムはＲＡＭ１２２を一時記憶領域として使用し、ＣＰＵ１２１上で動作する。スロット１２４は、不揮発性記憶装置１０１とアクセス装置１０２との接続部である。アクセス装置１０２と不揮発性記憶装置１０１はスロット１２４を経由して各種コマンド、論理アドレス及びデータを送受信する。更にＲＯＭ１２３は、アプリケーションプログラム１２５、ファイルシステム制御部１２６、アクセス制御部１２７を含む。【００１３】  図７はアドレス管理部１１６を示したブロック図である。アドレス管理部１１６はアドレス変換テーブル１３２、物理領域管理テーブル１３３、及びテーブルアクセス部１３１を含んでいる。【００１４】  図８Ａは、不揮発性の主記憶メモリ１０４の物理ブロックを示した説明図であり、物理ブロックサイズが１６ｋＢの例である。図８Ａにおいて、各物理ブロックはページアドレス０〜３１までの３２ページから構成される。各ページは、ハッチングで示す１セクタ分のデータ領域（５１２バイト）と、管理領域（１６バイト）から構成される。【００１５】  図８Ｂは物理ブロックサイズが１２８ｋＢの例である。図８Ｂにおいて、各物理ブロックはページアドレス０〜１２７までの１２８ページを持つ。各ページは４セクタ分のデータ領域（２０４８バイト）と、管理領域（６４バイト）を持つ。ハッチングで示す１セクタは５１２バイトの領域を持つ。各ページの４つのセクタにはページ内配列番号０〜３が付与されている。【００１６】  図９Ａは不揮発性主記憶メモリ１０４の物理ブロックサイズが１６ｋＢの場合に、アクセス装置１０２が不揮発性記憶装置１０１に指定する論理ブロックアドレスＬＢＡのフォーマットを示した説明図である。図９Ａにおいて下位ビットから順に、セクタナンバー、クラスタナンバーである。尚、以下の説明ではクラスタのサイズは１６ｋＢとして説明する。ｂ１９〜ｂ５のクラスタナンバーはアドレス変換テーブル１３２によって主記憶メモリ１０４内の全３２７６８個の物理ブロックアドレスＰＢＡに変換される。それ以外のビットは物理ブロック内の全３２ページのページアドレスとして使用される。【００１７】  図９Ｂは不揮発性主記憶メモリ１０４の物理ブロックサイズが１２８ｋＢの場合に、アクセス装置１０２が不揮発性記憶装置１０１に指定する論理ブロックアドレスＬＢＡのフォーマットを示した説明図である。図９Ｂにおいて下位ビットから順に、セクタナンバー、クラスタナンバーであり、ｂ１９〜ｂ９はアドレス変換テーブル１３２によって主記憶メモリ１０４内の全２０４８個の物理ブロックアドレスＰＢＡに変換される。ｂ８〜ｂ２は物理ブロック内の全１２８ページのページアドレスに対応する。またｂ１〜ｂ０はページ内配列番号に対応する。なお主記憶メモリ１０４は２Ｇｂｉｔ（２５６ＭＢ）の容量とする。【００１８】  図１０Ａは主記憶メモリ１０４の物理ブロックサイズが１６ｋＢの場合、図１０Ｂは主記憶メモリ１０４の物理ブロックサイズが１２８ｋＢの場合の物理管理領域テーブル１３���を示した説明図である。図１０Ａ，図１０Ｂにおいて、物理領域管理テーブル１３３のアドレスは、主記憶メモリ１０４の各物理ブロックアドレスＰＢＡに対応し、各物理ブロックの状態、即ちブロックステータスを２ビットで記憶する。２進数で値００は有効なデータが記憶されている有効ブロックを示し、値０１はデータが書き込まれているが不要である無効ブロックを示し、値１０はメモリセル上のソリッドエラー等により使用できなくなった不良ブロックを示し、値１１は消去済みブロックを示す。【００１９】  図１１Ａは主記憶メモリ１０４の物理ブロックサイズが１６ｋＢの場合、図１１Ｂは主記憶メモリ１０４の物理ブロックサイズが１２８ｋＢの場合のアドレス変換テーブル１３２を示した説明図である。図１１Ａ，図１１Ｂにおいて、そのアドレスはアクセス装置１０２が指定した論理アドレスＬＢＡ、即ち図９Ａに示す論理ブロックアドレスＬＢＡのｂ１９〜ｂ５もしくは図９Ｂに示す論理ブロックアドレスＬＢＡのｂ１９〜ｂ９に対応して、アドレス変換テーブル１３２内に物理ブロックアドレスＰＢＡを記憶している。【００２０】  この従来の不揮発性記憶システムの動作について説明する。まずアクセス装置１０２は不揮発性記憶装置１０１をＦＡＴファイルシステムに基づいてフォーマットすることにより、図１２（ａ）に示した論理アドレス配置を構成する。図１２（ａ）においてＭＢＲ・ＰＴ６０３はＰＢＳ６０４、ＦＡＴ１，２、ＲＤＥ６０７までの管理情報領域６０１の大きさを調整し、クラスタサイズの倍数長になるように設定する。図１２（ｂ），（ｃ）は、これらの論理アドレスの内容を記憶する主記憶メモリ１０４を示しており、図１２（ｂ）は消去単位、即ち物理ブロックＰＢのサイズが１６ｋＢの場合、図１２（ｃ）は物理ブロックＰＢのサイズが１２８ｋＢの場合の配置を示す。いずれの場合においても、図１に示したデータ領域６０２、即ち図１２（ａ）のクラスタ＃２から始まる領域と、物理ブロックＰＢの境界が一致する。【００２１】  一方、ＣＰＵ１１２による初期化処理により、主記憶メモリアクセス部１１７を介して主記憶メモリ１０４のアドレス管理情報１１８を読み出す。そして図７に示すアドレス変換テーブル１３２と物理領域管理テーブル１３３を構成する。その他の初期化処理については説明を省略する。【００２２】  このようにフォーマット及び初期化された後に、アクセス装置１０２は主記憶メモリ１０４に対してアクセスを開始する。以下書き込み処理を例にその動作について説明する。まずアクセス装置１０２内のアクセス制御部１２７は書き込み指示をファイルシステム制御部１２６に送出する。ファイルシステム制御部１２６は、図１に示したＦＡＴ６０５，６０６に基づいて空き領域を検索し、空き領域が存在した場合、取得した空き領域にデータを書き込む。この時アクセス装置１０２は不揮発性記憶装置１０１に対してライトコマンドＷＣＭＤと所定の論理アドレスとデータを転送する。不揮発性記憶装置１０１では、ＣＰＵ１１２がライトコマンドＷＣＭＤを認識し、制御部１１５に制御を移す。制御部１１５において、アドレス管理部１１６が、アクセス装置１０２が転送した論理アドレスに基づき、書き込み先の物理ア��レスを決定する。アドレス管理部１１６において、図７に示したテーブルアクセス部１３１が物理領域管理テーブル１３３に基づき消去済みの物理ブロックを検索し、その物理ブロックを書き込み対象ブロックに指定する。更にテーブルアクセス部１３１はアドレス変換テーブル１３２の所定の論理アドレス位置に、書き込み対象ブロックである物理ブロックアドレスＰＢＡを書き込む。なお、テーブルアクセス部１３１の消去済み物理ブロックの検索においては、特定の物理ブロックに書き込みや消去が集中しないように、即ちウェアレベリングを考慮した検索機能が備わっているのが一般的である。【００２３】  次に、物理ブロックサイズがクラスタサイズ（１６ｋＢ）より大きくなることによる書き込みパフォーマンスの低下について、図１３と図１４を用いて説明する。図１３と図１４は、共にファイルシステム管理領域中のデータ領域の論理アドレスに対して書き込みを行った時に、ファイルデータとディレクトリエントリがどのように主記憶メモリ１０４内の物理ブロックにライトされるかを示した説明図である。なお図１２に示したように、ＦＡＴ６０５，６０６は管理情報領域に書き込まれるものであるので、簡単のため、ＦＡＴ６０５，６０６の書き込みについては説明を省略する。図１３は、物理ブロックサイズが１６ｋＢの場合、図１４は、物理ブロックサイズが１２８ｋＢの場合である。なお図中、ハッチングしたクラスタは使用中のクラスタであり、その中で星マークが付記されているクラスタにはディレクトリエントリが存在していることを示す。網掛け無しのクラスタは空きクラスタである。ＥＡは連続空き領域を示す。ファイル１とファイル２の２種類のファイルデータを書き込む例について説明する。ファイル１は、Ｆ１１とＦ１２とから構成されるファイルであり、付記された番号の上位はファイル番号、下位は書き込み順を表す。同様にファイル２は、Ｆ２１とＦ２２とから構成されるファイルであり、付記された番号の上位はファイル番号、下位は書き込み順を表す。ＷＣＭＤ１〜５の番号はライトコマンドＷＣＭＤの発行順を表す。ここで実線矢印はライト処理、破線矢印はコピー処理を示す。【００２４】  図１３を用いて物理ブロックサイズが１６ｋＢの場合の書き込み処理について説明する。ファイルシステム制御部１２６が空き領域としてクラスタ２、４、５、６を検索し、それらのクラスタにファイルデータを書き込んでいく。Ｆ１１の書き込み先であるクラスタ２の次のクラスタ３には、既にディレクトリエントリが存在している為、Ｆ１１とＦ１２を連続するように書き込めない。即ちＷＣＭＤ１、ＷＣＭＤ２の２つのライトコマンドによって、Ｆ１１とＦ１２の書き込み指示を発行する必要がある。まずＦ１１を書き込むために、アクセス装置１０２がＷＣＭＤ１を不揮発性記憶装置１０１に発行する。アドレス管理部１１６は消去済みの物理ブロック、ここではＰＢＡ５を検索し、書き込み対象ブロックとする。そして主記憶メモリアクセス部１１７がＰＢＡ５にＦ１１をライトする。次にＦ１２を書き込むために、アクセス装置１０２がＷＣＭＤ２を不揮発性記憶装置１０１に発行する。アドレス管理部１１６は消去済みの物理ブロックであるＰＢＡ１を検索し、���き込み対象ブロックとする。そして主記憶メモリアクセス部１１７がＰＢＡ１にＦ１２をライトする。Ｆ１１とＦ１２の書き込み、即ちファイル１の一連の書き込みが完了したので、ファイルシステム制御部１２６はクラスタ３に対してディレクトリエントリの更新指示を行う。この時、既にＰＢＡ２２にディレクトリエントリが存在していた場合、ＰＢＡ２２からディレクトリエントリを読み出し、ディレクトリエントリの更新を行った上で、アドレス管理部１１６が検索した消去済み物理ブロックＰＢＡ３３に更新されたディレクトリエントリをライトする。【００２５】  次にファイル２であるＦ２１とＦ２２をそれぞれクラスタ５とクラスタ６に書き込む。クラスタ５とクラスタ６は論理アドレス上、連続した領域であるので、一回のライトコマンド（ＷＣＭＤ４）だけで書き込める。不揮発性記憶装置１０１はＷＣＭＤ４を受けて、消去済み物理ブロックＰＢＡ８とＰＢＡ５５にそれぞれＦ２１とＦ２２をライトする。その後、ＰＢＡ４１に更新したディレクトリエントリをライトする。【００２６】  次に図１４を用いて物理ブロックサイズが１２８ｋＢの場合の書き込み処理について説明する。論理アドレス上、物理ブロックサイズ以上の論理アドレス範囲のことをアロケーションユニットと定義し、図１４においてはアロケーションユニットサイズ（ＡＵサイズ）は物理ブロックサイズに等しいサイズ、即ち１２８ｋＢとする。論理アドレス上のファイル書き込み処理は、物理ブロックサイズが１６ｋＢの場合と同様であるが、物理ブロックへの書き込み方法が異なる。まず使用中のクラスタ３と７が物理ブロックＰＢＡ５に書かれているとする。Ｆ１１の書き込み処理に応じて、アドレス管理部１１６が検索した消去済みの物理ブロックＰＢＡ１にＦ１１をライトすると共に、ＰＢＡ５に書かれているデータをＰＢＡ１にコピーする。以降同様にして各ファイルの書き込みに応じて物理ブロックへのライトとコピーが行われる。【００２７】  図１３と図１４を比較すると、物理ブロックサイズが１６ｋＢの場合は、ライト回数が４回、コピー回数が２回に対して、物理ブロックサイズが１２８ｋＢの場合はライト回数が４回とコピー回数が１９回となる。このことから、物理ブロックサイズがクラスタサイズより大きい不揮発性メモリを使用した場合は、コピー回数が多くなり、書き込みパフォーマンスが低下することがわかる。【非特許文献１】ＩＳＯ／ＩＥＣ９２９３、“Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ−Ｖｏｌｕｍｅ  ａｎｄ  ｆｉｌｅ  ｓｔｒｕｃｔｕｒｅ  ｏｆ  ｄｉｓｋ  ｃａｒｔｒｉｄｇｅｓ  ｆｏｒ  ｉｎｆｏｒｍａｔｉｏｎ”、１９９４年
【非特許文献２】ＯＳＴＡ  Ｕｎｉｖｅｒｓａｌ  Ｄｉｓｋ  Ｆｏｒｍａｔ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖｉｓｉｏｎ  １．５０、１９９７年
【発明の開示】
【発明が解決しようとする課題】
【００２８】  物理ブロックサイズがクラスタサイズより大きい不揮発性メモリを使用した場合に書き込みパフォーマンスが低下する要因は、以下の２点に集約できる。１．１つのアロケーションユニット中に、ファイルとディレクトリエントリが混在する為、ファイルデータを書き込む為の連続領域が確保しにくくなる、即ちファイルデータを連続書き込みしにくくなる。２．１つのアロケーションユニット中に、ファイルとそのファイルに対応するディレクトリエントリが混在する為、ディレクトリエントリの更新時にファイルのコピーが発生する。【００２９】  本発明の課題はこの２つの書き込みパフォーマンスの低下要因を解決し、物理ブロックサイズがクラスタサイズより大きい不揮発性メモリを使用した場合における書き込みパフォーマンスを向上させることである。
【課題を解決するための手段】
【００３０】  この課題を解決するために、本発明の不揮発性記憶システムは、アクセス装置と、不揮発性記憶装置とを含み、前記アクセス装置から与えられるコマンドと論理アドレスに応じて前記不揮発性記憶装置にファイルデータを書き込み、及び読み出す不揮発性記憶システムであって、前記不揮発性記憶装置は、不揮発性の主記憶メモリと、メモリコントローラと、を有するものであり、前記主記憶メモリは、前記アクセス装置の領域割当単位であるクラスタサイズよりも大きい複数の物理ブロックから成る不揮発性のメモリであり、前記メモリコントローラは、前記アクセス装置から与えられる論理アドレスに基づいて前記主記憶メモリの物理アドレスを決定するアドレス管理部と、前記アドレス管理部で示されたアドレスに従って前記主記憶メモリにアクセスする主記憶メモリアクセス部とを有するものであり、前記アクセス装置は、複数のクラスタと、それを示す論理アドレスによってファイルデータを管理し、複数の連続するクラスタをアロケーションユニットとし、前記アロケーションユニットのサイズは前記主記憶メモリの物理ブロックサイズ以上の容量であり、ファイルデータを書き込むときにファイルデータ管理情報と前記ファイルデータとを互いに異なるアロケーションユニットに書き込むものである。【００３１】  ここで前記アクセス装置は、前記ファイルデータ管理情報を特定のアロケーションユニットに集約させて書き込むようにしてもよい。【００３２】  ここで前記主記憶メモリは、各物理ブロックの領域に追記書き込み可能な不揮発性のメモリであり、前記メモリコントローラは、前記アロケーションユニットにおける論理セクタアドレスを物理セクタアドレスに変換する第２のアドレス管理部と、前記ファイル管理情報を記録する際に前記第２のアドレス管理部で示されたセクタアドレスに従ってアロケーションユニットを保持する物理ブロックにアクセスする第２の主記憶メモリアクセス部とを有するようにしてもよい。【００３３】  ここで前記アクセス装置は、前記ファイルデータと前記ファイルデータ管理情報を識別するために、少なくとも２種類のライトコマンド種を有するようにしてもよい。【００３４】  ここで前記ライトコマンドは引数を有し、前記ファイルデータと前記ファイルデータ管理情報を識別するために、前記ライトコマンドの引数を変更するようにしてもよい。【００３５】  ここで前記メモリコントローラは、前記主記憶メモリのメモリ容量を前記アクセス装置に通知するものであり、前記アクセス装置は、前記メモリコントローラより通知されたメモリ容量に基づいて前記アロケーションユニットのサイズを決定するようにしてもよい。【００３６】  ここで前記メモリコントローラは、前記主記憶メモリの物理ブロックサイズを前記アクセス装置に通知するものであり、前記アクセス装置は、前記メモリコントローラより通知された物理ブロックサイズに基づいて前記アロケーションユニットのサイズを決定するようにしてもよい。【００３７】  ここで前記アクセス装置は、前記アロケーションユニットに一定の空き領域が存在する前記アロケーションユニットのみを選択的に使用するようにしてもよい。【００３８】  ここで前記不揮発性記憶装置は、前記主記憶メモリよりも書き換え保証回数が多く、且つオーバーライトが可能な不揮発性の補助記憶メモリを更に有するものであり、前記メモリコントローラは、前記ファイルデータ管理情報を前記補助記憶メモリに書き込むようにしてもよい。【００３９】  ここで前記補助記憶メモリは、書き込み速度が前記主記憶メモリより速い不揮発性メモリとしてもよい。【００４０】  ここで前記補助記憶メモリは、不揮発性ＲＡＭとしてもよい。【００４１】  ここで前記補助記憶メモリは、強誘電体メモリ（ＦｅＲＡＭ）、磁性記録式随時書き込み読み出しメモリ（ＭＲＡＭ）、オボニックユニファイドメモリ（ＯＵＭ）、レジスタンスＲＡＭ（ＲＲＡＭ）のいずれか１つとしてもよい。【００４２】  この課題を解決するために、本発明の不揮発性記憶装置は、複数のクラスタと、それを示す論理アドレスによってファイルデータを管理し、複数の連続するクラスタをアロケーションユニットとし、ファイルデータを記録するときにファイルデータ管理情報と前記ファイルデータとを異なるアロケーションユニットに書き込むものであり、前記アロケーションユニットのサイズは物理ブロックサイズ以上の容量であり、前記ファイルデータと前記ファイルデータ管理情報を不揮発性記憶装置に書き込む際、互いにこれらを識別できるライトコマンドを発行するアクセス装置に接続して用いられ、前記アクセス装置から与えられるコマンドと論理アドレスに応じてファイルデータを書き込み、及び読み出す不揮発性記憶装置であって、不揮発性の主記憶メモリと、メモリコントローラと、を有し、前記主記憶メモリは、前記アクセス装置の領域割当単位であるクラスタサイズよりも大きい複数の物理ブロックから成る不揮発性のメモリであり、前記メモリコントローラは、前記アクセス装置から与えられる論理アドレスに基づいて前記主記憶メモリの物理アドレスを決定するアドレス管理部と、前記アドレス管理部で示されたアドレスに従って前記主記憶メモリにアクセスする主記憶メモリアクセス部と、前記主記憶メモリの容量についてのデータを保持するレジスタと、を有するものである。【００４３】  この課題を解決するために、本発明のメモリコントローラは、複数のクラスタと、それを示す論理アドレスによってファイルデータを管理し、複数の連続するクラスタをアロケーションユニットとし、ファイルデータを記録するときにファイルデータ管理情報と前記ファイルデータとを異なるアロケーションユニットに書き込むものであり、前記アロケーションユニットのサイズは物理ブロックサイズ以上の容量であり、前記ファイルデータと前記ファイルデータ管理情報を不揮発性の主記憶メモリに書き込む際、互いにこれらを識別できるライトコマンドを発行するアクセス装置に接続して用いられ、前記アクセス装置から与えられるコマンドと論理アドレスに応じて前記主記憶メモリにファイルデータを書き込み、及び読み出すメモリコントローラであって、前記主記憶メモリは、前記アクセス装置の領域割当単位であるクラスタサイズよりも大きい複数の物理ブロックから成る不揮発性のメモリであり、前記メモリコントローラは、前記アクセス装置から与えられる論理アドレスに基づいて前記主記憶メモリの物理アドレ��を決定するアドレス管理部と、前記アドレス管理部で示されたアドレスに従って前記主記憶メモリにアクセスする主記憶メモリアクセス部と、前記主記憶メモリの容量についてのデータを保持するレジスタと、を有するものである。【００４４】  この課題を解決するために、本発明の不揮発性記憶装置の制御方法は、アクセス装置と、不揮発性記憶装置を含み、前記不揮発性記憶装置は、前記アクセス装置の領域割当単位であるクラスタサイズよりも大きい複数の物理ブロックから成る不揮発性の主記憶メモリと、メモリコントローラと、を有するものであり、前記アクセス装置から与えられるコマンドと論理アドレスに応じて前記不揮発性記憶装置にファイルデータを書き込み、及び読み出す不揮発性記憶システムにおける不揮発性記憶装置の制御方法であって、複数のクラスタと、それを示す論理アドレスによってファイルデータを管理し、複数の連続するクラスタであって、前記主記憶メモリの物理ブロックサイズ以上の容量をアロケーションユニットとし、ファイルデータを記録するときにファイルデータ管理情報と前記ファイルデータとを異なるアロケーションユニットに書き込むものであり、前記メモリコントローラは、前記アクセス装置から与えられる論理アドレスに基づいて前記主記憶メモリの物理アドレスを決定し、前記ファイルデータと前記ファイルデータ管理情報を前記不揮発性記憶装置に書き込む際、互いにこれらを識別し、前記アドレス管理部で示されたアドレスに従って前記主記憶メモリにアクセスして書き込むものである。【００４５】  この課題を解決するために、本発明のアクセス装置は、主記憶メモリを有する不揮発性記憶装置に対してファイルデータを書き込み、及び読み出すアクセス装置であって、複数のクラスタと、それを示す論理アドレスによってファイルデータを管理し、複数の連続するクラスタをアロケーションユニットとし、前記アロケーションユニットは前記主記憶メモリの物理ブロックサイズ以上の容量であり、ファイルデータを書き込むときにファイルデータ管理情報と前記ファイルデータとを互いに異なるアロケーションユニットに書き込むものである。
【発明の効果】
【００４６】  本発明ではファイルデータとディレクトリエントリを異なるアロケーションユニットに書き込むので、ファイルデータを連続書き込みしやすくなると共に、ディレクトリエントリの更新時にファイルのコピー回数を少なくすることができる。更に、ディレクトリエントリは物理ブロックサイズより十分小容量であるので、主記憶メモリよりも書き換え保証回数が多く、且つオーバーライトが可能な不揮発性の補助記憶メモリに書き込むようにすることにより、ディレクトリエントリの更新速度を向上させることが可能となる。
【図面の簡単な説明】
【００４７】
【図１】図１はＦＡＴファイルシステムの構成図
【図２】図２はＦＡＴファイルシステムにおけるデータ格納例を示す説明図
【図３】図３はＦＡＴファイルシステムにおけるファイルデータ書き込みの処理手順を示した説明図
【図４】図４はＦＡＴファイルシステムにおける書き込み処理前のディレクトリエントリ、ＦＡＴ６０５，６０６、データ領域６０２の一例を示した説明図
【図５】図５はＦＡＴファイルシステムにおける書き込み処理後のディレクトリエントリ、ＦＡＴ６０５，６０６、データ領域６０２の一例を示した説明図
【図６】図６は従来の不揮発性記憶システムを示したブロック図
【図７】図７はアドレス管理部１１６を示したブロック図
【図８Ａ】図８Ａは物理ブロックが１６ＫＢの場合の不揮発性主記憶メモリ１０４の物理ブロックを示した説明図
【図８Ｂ】図８Ｂは物理ブロックが１２８ＫＢの場合の不揮発性主記憶メモリ１０４の物理ブロックを示した説明図
【図９Ａ】図９Ａは物理ブロックが１６ＫＢの場合のアクセス装置１０２が不揮発性記憶装置１０１に指定する論理アドレスフォーマットを示した説明図
【図９Ｂ】図９Ｂは物理ブロックが１２８ＫＢの場合のアクセス装置１０２が不揮発性記憶装置１０１に指定する論理アドレスフォーマットを示した説明図
【図１０Ａ】図１０Ａは物理ブロックが１６ＫＢの場合の物理管理領域テーブル１３３を示した説明図
【図１０Ｂ】図１０Ｂは物理ブロックが１２８ＫＢの場合の物理管理領域テーブル１３３を示した説明図
【図１１Ａ】図１１Ａは物理ブロックが１６ＫＢの場合のアドレス変換テーブル１３２を示した説明図
【図１１Ｂ】図１１Ｂは物理ブロックが１２８ＫＢの場合のアドレス変換テーブル１３２を示した説明図
【図１２】図１２は論理アドレス配置と物理ブロックの対応関係を示した説明図
【図１３】図１３は物理ブロックが１６ｋＢの場合に、ファイルデータとディレクトリエントリがどのように主記憶メモリ１０４内の物理ブロックにライトされるかを示した説明図
【図１４】図１４は物理ブロックが１２８ｋＢの場合に、ファイルデータとディレクトリエントリがどのように主記憶メモリ１０４内の物理ブロックにライトされるかを示した説明図
【図１５】図１５は本発明の実施の形態１における不揮発性記憶システムを示すブロック図
【図１６】図１６はファイルデータとディレクトリエントリがどのように不揮発性主記憶メモリ１０８内の物理ブロックにライトされるかを示した説明図
【図１７】図１７は本発明の実施の形態２における不揮発性記憶システムを示すブロック図
【図１８】図１８はファイルデータとディレクトリエントリがどのように主記憶メモリ１４３内の物理ブロック、あるいは不揮発性ＲＡＭ１６２にライトされるかを示した説明図
【図１９】図１９は主記憶メモリ１４３の物理ブロックサイズが１２８ｋＢの場合において物理ブロックの構成を示した説明図
【図２０】図２０は本発明の実施の形態３における不揮発性記憶システムを示すブロック図
【図２１】図２１は第１，第２の制御部とその周辺回路の構成を示すブロック図
【図２２】図２２はアドレス変換テーブルの一例を示す図
【図２３】図２３は物理領域管理テーブルの一例を示す説明図
【図２４】図２４はファイルデータとディレクトリエントリがどのように主記憶メモリ１７１内の物理ブロックにライトされるかを示した説明図
【図２５】図２５はディレクトリエントリ用の物理ブロックの記録状態を示す図
【図２６】図２６はディレクトリエントリ用の物理ブロックの記録状態を示す図
【図２７】図２７はこの実施の形態の論理アドレス空間上のデータエントリ用の論理ブロックとこれに対応する物理ブロックを示す説明図
【図２８】図２８はこの実施の形態の論理アドレス空間上のデータエントリ用の論理ブロックとこれに対応する物理ブロックを示す説明図
【図２９】図２９はこの実施の形態の論理アドレス空間上のデータエントリ用の論理ブロックとこれに対応する物理ブロックを示す説明図
【図３０】図３０はこの実施の形態の論理アドレス空間上のデータエントリ用の論理ブロックとこれに対応する物理ブロックを示す説明図
【図３１】図３１はこの実施の形態の論理アドレス空間上のデータエントリ用の論理ブロックとこれに対応する物理ブロックを示す説明図
【図３２】図３２はこの実施の形態の論理アドレス空間上のデータエントリ用の論理ブロックとこれに対応する物理ブロックを示す説明図
【図３３】図３３はこの実施の形態の論理アドレス空間上のデータエントリ用の論理ブロックとこれに対応する物理ブロックを示す説明図
【図３４】図３４はこの実施の形態の論理物理ブロックの再配置処理を示す説明図
【図３５】図３５はディレクトリエントリの更新時間の変化を示す図
【符号の説明】
【００４８】  １４０Ａ，１４０Ｂ，１４０Ｃ  不揮発性記憶装置  １４１Ａ，１４１Ｂ，１４１Ｃ  メモリコントローラ  １４２  主記憶メモリ  １４３  レジスタ  １４４  アドレス管理情報  １５０Ａ，１５０Ｂ，１５０Ｃ  アクセス装置  １５１  ＲＯＭ  １５２  記憶装置情報取得部  １５３  ＡＵサイズ格納テーブル  １５４  ＡＵサイズ決定部  １５５Ａ，１５５Ｂ，１５５Ｃ  ファイルシステム制御部  １６１  データ識別部  １６２  不揮発性ＲＡＭ  １７１  主記憶メモリ  １７２  第２の制御部  １７３  バス記憶部  １７４  セレクタ  １７５  アドレス管理部  １７６  主記憶メモリアクセス部  １７７  テーブルアクセス部  １７８  アドレス変換テーブル  １７９  物理領域管理テーブル
【発明を実施するための最良の形態】
【００４９】  （実施の形態１）  図１５は、本発明の実施の形態１における不揮発性記憶システムの構成を示すブロック図である。不揮発性記憶システムは不揮発性記憶装置１４０Ａとアクセス装置１５０Ａとによって構成されている。従来の不揮発性記憶システムと同一の構成要素は同一の符号を用いて説明する。図１５において、不揮発性記憶装置１４０Ａは、メモリコントローラ１４１Ａと不揮発性の主記憶メモリ１４２を含む。メモリコントローラ１４１Ａはホストインターフェース１１１（図面ではインターフェースをＩ／Ｆと記述）、ＣＰＵ１１２、ＲＡＭ１１３、ＲＯＭ１１４、制御部１１５、レジスタ１４３を含む。ホストインターフェース１１１は、アクセス装置１５０Ａとの間で各種コマンド、論理アドレス及びデータを送受信するインターフェースである。ＲＯＭ１１４にはメモリコントローラ１４１Ａ全体を制御するプログラムが格納されている。プログラムはＲＡＭ１１３を一時記憶領域として使用し、ＣＰＵ１１２上で動作する。制御部１１５は不揮発性記憶装置１４０Ａ内のデータ記憶領域である不揮発性の主記憶メモリ１４２を制御する回路である。主記憶メモリ１４２は例えばフラッシュメモリから成る不揮発性の大容量のメモリである。その物理ブロックの構成は、図８Ｂに示した従来のものと同様であり、物理ブロックサイズは各１２８ｋＢとする。レジスタ１４３は主記憶メモリ１４２のアロケーションユニットサイズ（ＡＵサイズ）や主記憶メモリ１４２の記憶容量を含め、不揮発性記憶装置１４０Ａに関わるさまざまな情報を格納する。【００５０】  一方、図１５においてアクセス装置１５０Ａは不揮発性記憶装置１４０Ａにアクセスするものであり、ＣＰＵ１２１、ＲＡＭ１２２、ＲＯＭ１５１、スロット１２４を含む。ＲＯＭ１５１にはアクセス装置１５０Ａを制御するプログラムが格納されており、ＲＡＭ１２２を一時記憶領域として使用し、ＣＰＵ１２１上で動作する。スロット１２４は、不揮発性記憶装置１４０Ａとアクセス装置１５０Ａとの接続部であり、アクセス装置１５０Ａと不揮発性記憶装置１４０Ａは各種コマンド、論理アドレス及びデータをスロット１２４を経由して送受信する。更にＲＯＭ１５１は、アプリケーションプログラム１２５、ファイルシステム制御部１５５Ａ、アクセス制御部１２７、記憶装置情報取得部１５２、ＡＵサイズ格納テーブル１５３、ＡＵサイズ決定部１５４を含む。ファイルシステム制御部１５５Ａは、ファイルデータの書き込み毎にファイルデータとディレクトリエントリとを異なるアロケーションユニットに書き込むように制御するものである。又記憶装置情報取得部１５２は、不揮発性記憶装置１４０Ａのレジスタ１４３に保持されているアロケーションユニットサイズや、主記憶メモリ１４２の記憶装置容量を取得する。【００５１】  図１６は、ファイルシステム管理領域中のデータ領域の論理アドレスに対して書き込みを行った時に、ファイルデータとディレクトリエントリがどのように主記憶メモリ１４２内の物理ブロックにライトされるかを示した説明図である。【００５２】  この実施の形態１による不揮発性記憶システムの動作について説明する。まず、図１５を用いてシステム全体の動作について説明す��。まずアクセス装置１５０Ａは不揮発性記憶装置１４０ＡをＦＡＴファイルシステムに基づいてフォーマットすることにより、従来の不揮発性記憶システムと同様に、図１２（ａ）に示した論理アドレス配置が構成される。本発明の実施の形態においても、ＭＢＲ・ＰＴ６０３からＲＤＥ６０７までの管理情報領域６０１の大きさを調整し、クラスタサイズの倍数長になるように設定する。図１２（ｃ）は、不揮発性記憶装置１４０Ａの物理ブロックの配置を示す。いずれの場合においても、図１に示したデータ領域６０２、即ち図１２（ａ）のクラスタ＃２から始まる領域と、物理ブロックの境界が一致する。【００５３】  一方、ＣＰＵ１１２の初期化処理により、主記憶メモリ１４２のアドレス管理情報１４４は、アドレス管理部１１６内のアドレス変換テーブル１３２と物理領域管理テーブル１３３に読み込まれる。【００５４】  このようにフォーマット及び初期化した後に、アクセス装置１５０Ａは不揮発性記憶装置１４０Ａに対してアクセスを開始する。まず記憶装置情報取得部１５２は不揮発性記憶装置１４０Ａ内のレジスタ１４３から記憶装置情報を取得する。なお、これらの情報は、初期化処理において、主記憶メモリ１４２からレジスタ１４３に読み込まれるものである。記憶装置容量は、必ずレジスタ１４３に存在するが、不揮発性記憶装置によってはアロケーションユニットサイズ（ＡＵサイズ）が格納されている場合とされていない場合がある。レジスタ１４３にＡＵサイズが格納されている場合は、記憶装置情報取得部１５２はそのＡＵサイズを取得する。ＡＵサイズ決定部１５４は、記憶装置情報取得部１５２がレジスタ１４３から取得したＡＵサイズそのものをＡＵサイズに決定する。一方、レジスタ１４３にＡＵサイズが格納されていない場合は、記憶装置情報取得部１５２は記憶装置容量を取得する。ＡＵサイズ決定部１５４は、記憶装置情報取得部１５２がレジスタ１４３から取得した記憶装置容量に基づき、ＡＵサイズ格納テーブル１５３を参照して最大ＡＵサイズ（Ｍａｘ＿ＡＵ＿Ｓｉｚｅ）を取得し、これをＡＵサイズとして決定する。ここで、ＡＵサイズ格納テーブル１５３には、表１に示すような対応関係が格納されている。【表１】
2005103903.tif 000002
【００５５】  以下の説明においては、レジスタ１４３にアロケーションユニットサイズが格納されているものとし、アロケーションユニットサイズを１２８ｋＢとする。なお、アロケーションユニットサイズは、物理ブロックサイズ以上の値であることが必要条件となる。上述した処理によって決定したアロケーションユニットサイズに基き、アクセス装置１５０Ａは不揮発性記憶装置１４０Ａに対してアクセスする。尚、レジスタ１４３にアロケーションユニットサイズが格納されていない場合において、ＡＵサイズ格納テーブル１５３がない場合は、記憶装置情報取得部１５２はレジスタ１４３から物理ブロックサイズを取得し、そのサイズの整数倍をアロケーションユニットサイズに決定してもよい。【００５６】  以下書き込み処理を例にその動作について説明する。まずアクセス装置１５０Ａ内のアクセス制御部１２７は、書き込み指示をファイルシステム制御部１５５Ａに送出する。ファイルシステム制御部１５５Ａは、図１に示したＦＡＴ６０５，６０６上で空き領域を検索し、空き領域が存在した場合、取得した空き領域にデータを書き込む。この時アクセス装置１５０Ａは不揮発性記憶装置１４０Ａに対してライトコマンドＷＣＭＤと所定の論理アドレスとデータを転送する。不揮発性記憶装置１４０Ａでは、ＣＰＵ１１２がライトコマンドＷＣＭＤを認識し、制御部１１５に制御を移す。制御部１１５において、アクセス装置１５０Ａが転送した論理アドレスに基づきアドレス管理部１１６が書き込み先の物理アドレスを決定する。アドレス管理部１１６において、図７に示したテーブルアクセス部１３１が物理領域管理テーブル１３３に基づき消去済みの物理ブロックを検索し、そのブロックを書き込み対象ブロックに指定する。更にテーブルアクセス部１３１は、アドレス変換テーブル１３２の所定の論理アドレス位置に書き込み対象ブロックアドレスを書き込む。なお、テーブルアクセス部１３１の消去済みの物理ブロックの検索においては、できるだけ特定の物理ブロックに書き込みや消去が集中しないようにウェアレベリングの機能が備わっているのが一般的である。【００５７】  次に、図１６を用いて、ファイルデータとそのファイルデータに対応するディレクトリエントリを異なるアロケーションユニットに書き込むことによって、図１４に示した従来の不揮発性記憶システムにおける書き込み処理よりも、書き込みパフォーマンスが向上することについて説明する。【００５８】  まずファイルシステム制御部１５５Ａが空きクラスタを検索する。ファイルシステム制御部１５５Ａは、ファイルデータとディレクトリエントリを異なるアロケーションユニットに配置する。ここではアロケーションユニットＡＵ０にファイル１，２を配置し、アロケーションユニットＡＵ２にディレクトリエントリを配置する。図１４に示した従来の不揮発性記憶システムの書き込み処理とのパフォーマンスを比較するために、前提条件を合わせる必要がある。図１４において、ディレクトリエントリの更新、即ちＷＣＭＤ３、ＷＣＭＤ５において、ＷＣＭＤ３の更新処理においては、クラスタ２，４，７の計３つ分のクラスタをコピーし、またＷＣＭＤ５の更新処理においては、クラスタ２，４，５，６，７���計５つ分のクラスタをコピーした例を示した。従って、図１６に示す本実施の形態１の不揮発性記憶システムの書き込み処理においても、ディレクトリエントリの更新において、５つ分のクラスタをコピーするような状態にしておけば、比較の為の前提条件としては十分である。その為に、クラスタ１８〜２２が使用中のクラスタであるとした。【００５９】  さて、ファイルシステム制御部１５５Ａが検索した空きクラスタ２〜５に、ファイル１の構成要素であるＦ１１，Ｆ１２と、ファイル２の構成要素であるＦ２１，Ｆ２２を書き込む。図１４の場合と異なりディレクトリエントリがクラスタ３に存在しない、即ち空き連続領域が確保しやすいので、ファイル１，２共に連続書き込みができる。まず使用中のクラスタ７が物理ブロックＰＢＡ５にライトされているとする。Ｆ１１とＦ１２の書き込み処理に応じて、アドレス管理部１１６が検索した消去済みの物理ブロックＰＢＡ１に、Ｆ１１とＦ１２を記憶すると共に、ＰＢＡ５に記憶されているデータをＰＢＡ１にコピーする。一方、アロケーションユニットＡＵ２に存在しているディレクトリエントリは、ＰＢＡ４に書き込まれているとする。ＷＣＭＤ１によるファイル１のライトに対応して、ＷＣＭＤ２でディレクトリエントリがＰＢＡ３３にライトされる。この時クラスタ１８〜２２に存在するデータのコピーも行われる。以降同様にして各ファイルの書き込みに応じて物理ブロックへのライトとコピーが行われる。【００６０】  次に表２に従来と実施の形態１の書き込みパフォーマンスを示す。【表２】
2005103903.tif 000003
従来の不揮発性記憶システムの場合は、ライト回数が４回、コピー回数が１９回であった。一方、実施の形態１の不揮発性記憶システムの場合は、ライト回数が４回とコピー回数が１６回である。即ち、実施の形態１の不揮発性記憶システムの方が、コピー３回分、書き込みパフォーマンスが向上したと言える。このパフォーマンス向上の要因は、ファイルデータとこのファイルデータに対応するディレクトリエントリを、互いに異なるアロケーションユニットに書き込んだために、ファイル１が連続書き込みできるようになったことである。因みに、コピーとは、リードとライトの２つの処理からなるので、ライトよりも処理時間が長い。なお、図１６においてクラスタ７は使用中のクラスタであるが、このクラスタには、ファイル１やファイル２以外のファイルに対応するディレクトリエントリであっても構わない。即ち、ファイルデータと、このファイルデータとは異なるファイルデータに対応するディレクトリエントリは、同一のアロケーションユニットに格納しても良い。このようにすることにより、複数のファイルデータを同時記録する場合においても、書き込みパフォーマンスを向上させることが可能になる。またファイルシステム制御部１５５Ａは、アロケーションユニット中に一定の空き領域が存在するアロケーションユニットのみを選択的に使用することにより、ファイルデータの連続書き込みがしやすくなるので、書き込みパフォーマンスを向上することができる。
【００６１】  （実施の形態２）  次に本発明の実施の形態２について図１７を用いて説明する。この実施の形態ではメモリコントローラ１４１Ｂにデータ識別部１６１、不揮発性ＲＡＭ１６２を加えたものであり、アクセス装置１５０Ｂはファイルシステム制御部１５５Ｂを有する。ファイルシステム制御部１５５Ｂは実施の形態１のファイルシステム制御部１５５Ａと異なり、ファイルシステム管理情報であるディレクトリエントリを常に特定のアロケーションユニット、ここではＡＵ２に書き込むようにしたものである。その他の構成は実施の形態１と同様である。【００６２】  データ識別部１６１は、アクセス装置１５０Ｂが書き込み処理において転送したデータが、ファイルデータなのか、あるいはファイルシステム管理情報であるディレクトリエントリなのかを識別するブロックである。【００６３】  不揮発性ＲＡＭ１６２は、ファイルデータよりも小容量で済むディレクトリエントリを記憶する不揮発性の補助記憶メモリである。補助記憶メモリは主記憶メモリ１４２よりも書き込み速度が速いことが好ましい。又不揮発性ＲＡＭは主記憶メモリよりも書き換え保証回数が多く、且つオーバーライトが可能な不揮発性のランダムアクセスメモリである。また不揮発性ＲＡＭ１６２は、特開平７−２８１８４２号公報などに開示されている強誘電体メモリ（ＦｅＲＡＭ）や、磁性記録式随時書き込み読み出しメモリ（ＭＲＡＭ）、オボニックユニファイドメモリ（ＯＵＭ）、レジスタンスＲＡＭ（ＲＲＡＭ）等を用いることが好ましい。尚、不揮発性ＲＡＭとして、例えば数百ｋＢのものが現在実用化されており、将来的に更に大容量のものが実用化されつつある。【００６４】  図１８は、ファイルシステム管理領域中のデータ領域の論理アドレスに対して書き込みを行った時に、ファイルデータがどのように主記憶メモリ１４２内の物理ブロックにライトされるか、またディレクトリエントリがどのように不揮発性ＲＡＭ１６２にライトされるかを示した説明図である。【００６５】  図１９は、不揮発性ＲＡＭ１６２のメモリマップを表す。不揮発性ＲＡＭ１６２は全容量が１２８ｋＢであり、５１２バイトのディレクトリエントリ２５６個分の記憶領域を有する。【００６６】  次に実施の形態２の動作について、特にディレクトリエントリのみ不揮発性ＲＡＭ１６２上で読み書き制御することにより、実施の形態１より更に書き込みパフォーマンスが向上することについて、説明する。更なるパフォーマンス向上を可能にするポイントは、図１６に示したようにディレクトリエントリの更新がある度に、毎回コピーが発生しない方法をとることである。さてオーバーライトが可能な不揮発性メモリは、図１６で示したように、物理ブロックの一部のセクタに書き換えが生じた際に、他のセクタを別の物理ブロックにコピーする必要が無い。即ちランダムアクセスメモリＲＡＭと同様に、特殊なアドレス操作を行うこと無しに書き換えが行える。図１８に基づいて説明すると、アロケーションユニットＡＵ２は、ディレクトリエントリのみが割り当てられたアドレスであり、ファイル１及び２のライトに対応するディレクトリエントリは星マークの付与されたアドレス、即ち５１２バイト分がライトされる。これ���相応して、不揮発性ＲＡＭ１６２上で５１２バイト分の書き換えが生じるが、上述した通り、不揮発性ＲＡＭ１６２はオーバーライト可能なメモリであるので、ライトコマンドＷＣＭＤ２及びＷＣＭＤ４の発生毎に、星マークの付与されたアドレス、即ち５１２バイト分のみを単に書き換えればよい。【００６７】  次に表３に不揮発性の主記憶メモリであるフラッシュメモリと、補助記憶メモリである不揮発性ＲＡＭとの比較を示す。表３に示すように、フラッシュメモリは書き換え保証回数が１０万回であるのに対し、不揮発性ＲＡＭは書き換え保証回数が１００億回と非常に大きいので、寿命上特に問題となるレベルではない。その理由について詳細に説明する。【表３】
2005103903.tif 000004
【００６８】  主記憶メモリ１４２として１ＧＢ分のフラッシュメモリを実装し、ファイルデータをクラスタ単位、即ちＦＡＴ１６において１６ｋＢ単位毎に１回のライトコマンドで書き換えた場合、１ＧＢ分の全容量を一通り書き換える為に、約６４Ｋ回のライトコマンドを発行することとなる。  １ＧＢ÷１６ｋＢ＝６４Ｋ回  ・・・（１）【００６９】  一方、このファイルデータの書き換えに対応して、１つのディレクトリエントリを６４Ｋ回書き換えることとなる。即ちフラッシュメモリの全ての物理ブロックを１回書き換えることは、不揮発性ＲＡＭ１６２の特定の５１２Ｂの領域を６４Ｋ回書き換えることに相当する。これは不揮発性ＲＡＭ１６２においてもワースト条件となる。表３によれば、フラッシュメモリの書き換え保証回数が１０万回である。そのため次の数式（２）により、フラッシュメモリが１０万回書き換えられた時に、不揮発性ＲＡＭ１６２は６４億回書き換えられることとなる。  ６４Ｋ回×１０万回＝６４億回＜１００億回  ・・・（２）表３によれば、この値は不揮発性ＲＡＭの書き換え保証回数１００億回より小さいので、フラッシュメモリの寿命と不揮発性ＲＡＭ１６２の寿命とは大きな差がなく、不揮発性ＲＡＭ１６２の書換回数は、寿命上特に問題となるレベルではない。【００７０】  また表３によれば、不揮発性ＲＡＭの１バイト当たりの書き込みサイクルは１００ｎｓ程度なので、ディレクトリエントリ５１２バイトを１回ライトするときには約５０μｓ程度となる。即ちフラッシュメモリの書き込みサイクルを上回ることは無い。従って、ディレクトリエントリの１回の書き換え時間は、ほぼ同等と考えてさしつかえない。【００７１】  表４に従来例と実施の形態２の書き込みパフォーマンス比較を示す。実施の形態２の方がコピー回数が断然少ないので、書き込みパフォーマンスが高いことがわかる。【表４】
2005103903.tif 000005
【００７２】  本実施の形態２におけるデータ識別部１６１の識別方法として、２つの方法について説明する。第１の方法は、アクセス装置１５０Ｂが不揮発性記憶装置１４０Ｂにファイルデータを書き込む際、ライトコマンドの引数でデータ種別を示す情報を指定するものである。すなわち、ライトコマンドはＷｒｉｔｅ（ｓｉｚｅ，ａｄｄｒ，ｄａｔａ＿ｋｉｎｄ）の形式を取り、ｓｉｚｅは書き込みサイズ、ａｄｄｒは書き込みアドレスを示し、これらの引数は従来通りの引数である。本実施の形態２では引数にｄａｔａ＿ｋｉｎｄを設けている点に特徴がある。ｄａｔａ＿ｋｉｎｄではライトコマンドに渡すデータの種別として、ファイルデータあるいはディレクトリエントリのいずれかを指定する。例えばｄａｔａ＿ｋｉｎｄを１ビットのフラグとし、データ識別部１６１が、ｄａｔａ＿ｋｉｎｄが値０の時にファイルデータ、ｄａｔａ＿ｋｉｎｄが値１の時にディレクトリエントリと判断して、制御信号を制御部１１５に送出する。【００７３】  第２の方法は、ライトコマンドとして、Ｗｒｉｔｅ（ｓｉｚｅ，ａｄｄｒ）とＷｒｉｔｅ＿ＤＥ（ｓｉｚｅ，ａｄｄｒ）の２種類を設け、前者がファイルデータ、後者がディレクトリエントリ用のライトコマンドとする方法である。なお、ＦＡＴ６０５，６０６等、ディレクトリエントリ以外は全てＷｒｉｔｅ（ｓｉｚｅ，ａｄｄｒ）を用いればよい。この方法においては、アクセス装置１５０Ｂが転送したコマンドをＣＰＵ１６２が認識し、そのコマンドがＷｒｉｔｅ（ｓｉｚｅ，ａｄｄｒ）もしくはＷｒｉｔｅ＿ＤＥ（ｓｉｚｅ，ａｄｄｒ）の場合、データ識別部１６１がそのいずれであるかを判断し、制御信号を制御部１１５に送出する。【００７４】  さて、データ識別部１６１は、アクセス装置からアクセスされたデータをファイルデータ又はディレクトリエントリと識別する。制御部１１５はデータと識別された場合、主記憶メモリ１４２をアクセスし、ディレクトリエントリと識別された場合、不揮発性ＲＡＭ１６２をアクセスする。【００７５】  本実施の形態２において、不揮発性ＲＡＭ１６２の容量を１２８ｋＢとしたが、ひとつのアロケーションユニットサイズが１２８ｋＢより大きい場合もありえるので、１２８ｋＢより大きな容量の不揮発性ＲＡＭを実装する方が望ましい。また不揮発性ＲＡＭ１６２はメモリコントローラ１４１Ｂに内蔵させず、メモリコントローラ１４１Ｂの外部に設けても構わない。【００７６】  以上のように、実施の形態２にあっては、アクセス装置１５０Ｂがファイルデータを不揮発性記憶装置１４０Ｂに書き込む際、ファイルシステム制御部１５５Ｂが、ファイルデータとディレクトリエントリを異なるアロケーションユニット、即ち異なる物理ブロックに書き込むようにした。そのためファイルデータを連続書き込みしやすくなると共に、ディレクトリエントリの更新時にファイルのコピー回数を少なくすることができる。更に、ファイルシステム制御部１５５Ｂが、特定のアロケーションユニットに全てのディレクトリエントリを記憶させるように制御し、書き込み対象となるデータがファイルデータかディレクトリエントリかに応じて識別し、主記憶メモリと補助記憶メモリに書き込みを行うようにしたので、��き込みの速度を大幅に向上させることが可能となる。【００７７】  尚この実施の形態２ではアロケーションユニットを補助記憶メモリに書き込むようにしたが、ディレクトリエントリを主記憶メモリの物理ブロックに書き込んでもよい。【００７８】  （実施の形態３）  次に本発明の実施の形態３について図２０，図２１を用いて説明する。この実施の形態による不揮発性記憶装置１４０Ｃでは、不揮発性の主記憶メモリを追記可能な不揮発性メモリ１７１としたものである。又メモリコントローラ１４１Ｃには第１の制御部１１５に加えて第２の制御部１７２が設けられる。第２の制御部１７２は不揮発性メモリ１７１の所定のアロケーションユニットにディレクトリエントリを書き込むための制御部である。第１の制御部１１５及び第２の制御部１７２は不揮発性記憶装置１４０Ｃ内のデータ記憶領域である不揮発性メモリ１７１を制御する制御部である。バス切替部１７３は第１の制御部１１５及び第２の制御部１７２間でデータやアドレス管理情報を切替えるものである。又セレクタ１７４は第１，第２の制御部からの書き込みデータを主記憶メモリ１７１への書き込みを切替えるセレクタである。不揮発性メモリ１７１の物理ブロックの構成は、図８Ｂに示した従来のものと同様である。【００７９】  一方、図２０において不揮発性記憶装置１４０Ｃにアクセスするアクセス装置１５０Ｃは、ファイルシステム制御部１５５Ｃの動作を除いて前述した実施の形態１の不揮発性記憶システムと同様である。従来又は前述した不揮発性記憶システムと同様の構成要素は、同一符号を付して詳細な説明を省略する。【００８０】  図２１は第１，第２の制御部１１５，１７２の周辺部の詳細な構成を示す図である。第１の制御部１１５は前述した実施の形態１の制御部１１５と同様である。第２の制御部は１７２はこれとほぼ同様に第２のアドレス管理部１７５と第２の主記憶メモリアクセス部１７６とを有している。アドレス管理部１７５はテーブルアクセス部１７７及びこれと接続されたアドレス変換テーブル１７８、物理領域管理テーブル１７９にアクセスするものである。又主記憶メモリアクセス部１７６はセレクタ１７４を介して主記憶メモリ１７１に対してアクセスを行い、ディレクトリエントリを書き込むものである。第２の制御部１７２は追記型でディレクトリエントリの書き込み制御を行うためのブロックである。【００８１】  図２２はこのアドレス変換テーブル１７８を示す図である。このアドレス変換テーブルは、ディレクトリエントリが書き込まれる論理ブロックの中の論理セクタアドレスとそれに対応する物理セクタアドレスが書き込まれた論理物理変換テーブルである。【００８２】  図２３は物理領域管理テーブル１７９を示す図である。物理領域管理テーブル１７９はこのディレクトリエントリを書き込む物理ブロックのセクタアドレスＰＳＡに対するセクタの状態を示すテーブルである。ここで値００は有効なセクタ、値０１は無効なセクタ、値１０は空白セクタとする。【００８３】  この実施の形態３の不揮発性記憶システムの動作について、特に追記型書き込み方法を導入することによりパフォーマンス向上が図れることについて説明する。更なるパフォーマンス向上を可能にする���イントは、ディレクトリエントリの更新がある度に、毎回コピーが発生しない方法をとることである。特開平５−２７９２４号に開示されている追記型書き込み方法、即ち物理ブロックを構成する各物理セクタへのディレクトリエントリの書き込み順は論理セクタ順ではなく、書き込み指示があった順番に次々に追記していく方法を適用する。【００８４】  この追記型書き込みは、物理ブロック内の空きセクタがなくなるか、あるいは所定数以下になるまではコピー処理なしに追記する。物理ブロック内の空きセクタがなくなるか、あるいは所定数以下になった時点で、別の消去済み物理ブロックを検索する。そしてその物理ブロックに論理セクタ順に記録し直す、即ちコピーする方法である。ディレクトリエントリのサイズは５１２バイトと比較的小さいサイズであり、且つ物理ブロックサイズが１２８ｋバイトであるので、１つの物理ブロックに対して、最大５１２回の追記が可能である、即ちコピー処理の発生の可能性が少なく、高速な書き込みができる。【００８５】  従って最大５１２個のファイルデータを書き込んだり書き換える間は、高速にディレクトリエントリを更新することができる。これが、ディレクトリエントリの書き込みに対して追記型書き込み方法を適用した理由である。図２４はこれを具体的に説明したもので、書き込みを行った時に、ファイルデータとディレクトリエントリがどのように不揮発性メモリ１７１内の物理ブロックにライトされるかを示した説明図である。図２４はディレクトリエントリが物理ブロックＰＢＡ４に書き込まれており、ライトコマンドＷＣＭＤ２，４でディレクトリエントリが追記されていく状態を示している。ここではディレクトリエントリのサイズが５１２Ｂと小さいので同一のクラスタ２３に追記されている。図１４と比較すると、ディレクトリエントリの更新の都度、コピー処理が発生していないことがわかる。図１４はライト回数４回、コピー回数１９回であるのに対し、図２４の方がライト回数６回、コピー回数４回であり、コピー回数が断然少ないので、書き込みパフォーマンスが高いことがわかる。【００８６】  まず、図２０を用いて、ディレクトリエントリのみに追記型書き込み方法を適用した場合の全体的な処理について説明をする。図２０において、データ識別部１６１は、アクセス装置１５０Ｃが書き込み処理において転送したファイルデータとディレクトリエントリを識別する。本実施の形態における識別方法としては、「ファイルデータはクラスタ単位で書き込まれる」という前提に立ち、データ容量の違いで識別できる。具体的には、５１２バイトのデータ転送の後に転送終了コマンドがきた場合は、そのデータはディレクトリエントリであり、それ以外の場合はファイルデータとして処理すればよい。【００８７】  その他の識別方法としては、実施の形態２と同様に書き込みコマンド種別を変えるといった方法が考えられる。具体的には、ファイルデータはマルチライトコマンド、ディレクトリエントリはシングルライトコマンドを使用する。更に他の識別方法としては、ライトコマンドにフラグをつけて、フラグによって識別してもよい。いずれの方法においても、アクセス装置１５０Ｃや不揮発性記憶装置１４０Ｃに対して一��の制約を与えるものである。【００８８】  さて、データ識別部１６１は、転送されたデータがファイルデータと識別されると、制御信号により、バス切替部１７３とセレクタ１７４を切替え、第１の制御部１１５が入力バス側に接続され、その出力が主記憶メモリ１７１の入力になるようにする。この場合は、第１の制御部１１５によって、従来の不揮発性記憶システムと同様の書き込み処理がなされる。一方、データ識別部１６１は、転送されたデータがディレクトリエントリであると識別すると、制御信号により、バス切替部１７３への入力バスを第２の制御部１７２側にスイッチし、セレクタ１７４において、第２の制御部１７２の出力が主記憶メモリ１７１とする。この場合は、第２の制御部１７２によって、追記型書き込み処理がなされる。【００８９】  図２５〜３３を用いて追記型書き込み処理の仕組みについて説明する。図２５は、主記憶メモリ１７１の物理ブロックサイズが１２８ｋＢである場合の物理セクタアドレスＰＳＡの配置を示した説明図である。図２５において、ＰＳＡとは物理セクタアドレスの略号であり、ＰＳＡに付記されている番号はアドレス値を表す。ページアドレスの降順にＰＳＡ０、ＰＳＡ１…ＰＳＡ５１１と配列される。これらの配列順にディレクトリエントリが書き込まれていく。【００９０】  図２６は、図２５で示した物理ブロックにディレクトリエントリＤＥ１〜ＤＥ４がライトされるシーケンスを示した説明図である。図２６において、ハッチングを施したセクタは使用中セクタであり、ハッチングを施していないセクタは空きセクタ、即ち消去済みのセクタを表す。ハッチングを施したセクタの内、２重枠で囲ったセクタは最新のディレクトリエントリが記録されたセクタであり、有効セクタである。一方ハッチングを施したセクタの内、１重枠で囲ったセクタは旧いディレクトリエントリが記録されたセクタであり、無効セクタである。まずファイル１に対応するディレクトリエントリＤＥ１がＰＳＡ０にライトされる。なおディレクトリエントリＤＥ１の添え字番号はファイル番号に対応し、このファイル番号から１を減算した番号を、論理セクタアドレスＬＳＡ０の添え字番号とする。ファイルデータの書き込み順はファイル１→ファイル２→ファイル１→ファイル３→ファイル２→ファイル４とする。これに対応したディレクトリエントリが図２６に示すように追記されていく。図２６の中で、ハッチングを施したセクタは使用中セクタであり、ハッチングを施していないセクタは空きセクタ、即ち消去済みのセクタを表す。ハッチングを施したセクタの内、２重枠で囲ったセクタは最新のディレクトリエントリが記録されたセクタであり、有効セクタとして扱われる。一方ハッチングを施したセクタの内、１重枠で囲ったセクタは旧いディレクトリエントリが記録されたセクタであり、無効セクタとして扱われる。【００９１】  この書き込み順に応じて、論理セクタアドレスＬＳＡとそれに対応する物理セクタアドレスＰＳＡに変換されるか、そして各物理セクタアドレスＰＳＡの状態フラグがどのように変化するかを示したものが、図２７〜図３３である。これらの各図の左側のブロックはアクセス装置１５０Ｃから見た論理アドレス空間上のディレクトリエントリに割り当てられた論理ブロックを示す。ここでは相対的な論理セクタアドレスとしてＬＳＡ０〜ＬＳＡ５１１が付されている。この論理アドレス空間上のブロックに対応する物理ブロックを図２７〜図３３の右側に示す。この物理ブロックはディレクトリエントリＤＥを書き込むための物理ブロックであり、アドレス管理部１１６のアドレス変換テーブル１３２によって対応付けられた物理ブロックである。そして物理ブロック内の具体的なセクタは第２の制御部１７２のアドレス管理部１７５内のアドレス変換テーブル１７８によって対応付けられている。図２７〜３３では、物理ブロックの相対的なセクタアドレスＰＳＡ０〜５１１を示している。【００９２】  図２７は、ディレクトリエントリが書き込まれていない初期状態を示す。さて論理アドレス上のデータエントリ用ブロックの論理セクタアドレスＬＳＡ０に図２８に示すようにディレクトリエントリＤＥ１が書き込まれる。主記憶メモリ１７１上では最初の書き込みであるので、物理セクタアドレスＰＳＡ０に書き込まれる。このとき変換後のＰＳＡ０の位置に対応するセクタステータスは物理領域管理テーブル１７９上で値００、即ち有効状態に変更される。【００９３】  同様にして図２９は論理セクタアドレスＬＳＡ１にディレクトリエントリＤＥ２を書き込んだ場合に、論理ブロックとそれに対応する物理ブロックの更新状態を示す。【００９４】  図３０は論理セクタアドレスＬＳＡ０のディレクトリエントリＤＥ１を書き換える処理を説明したものである。３番目の書き込みとなるので、物理セクタアドレスＰＳＡ２に新しいディレクトリエントリＤＥ１（Ｎ）が書き込まれる。即ちアドレス変換テーブル１７８では論理セクタアドレスＬＳＡ０に対応する物理セクタはＰＳＡ２となり、ＰＳＡ２の位置に対応するセクタステータスは物理領域管理テーブル１７９上で有効状態に変更される。更に既にＰＳＡ０の位置に記録されている元のディレクトリエントリＤＥ１（Ｏ）は不要となるので、ＰＳＡ０の位置に対応するセクタステータスは物理領域管理テーブル１７９上で値０１、即ち無効状態に変更される。【００９５】  同様にして図３１〜３３においても論理セクタアドレスでは書き換えが行われ、これに対応する論理アドレス空間のディレクトリエントリ用のブロックではディレクトリエントリの更新が行われる。これに対応してディレクトリエントリ用の物理ブロックが追記されていく。そしてこれに応じてアドレス変換テーブルやセクタのステータスが変化する。【００９６】  以上のように一連の書き込み及び書き換え処理に応じて、論理セクタアドレスに対する物理セクタのディレクトリエントリが更新される。最終的には図３４の左側に示すように、ディレクトリエントリを書き込んだ物理ブロックの全ての物理セクタアドレスが埋め尽くされる。その場合には第２の制御部１７２は新しい消去済みの物理ブロックを検索する。そして図３４の右側に示すように、新しい物理ブロックに各ディレクトリエントリが論理セクタアドレスＬＳＡ順になるように再配置する。即ち有効なディレクトリエントリのみをコピーし、不要となった旧物理ブロックを消去する。なお、旧物理ブロックに所定セクタ数のディレクトリエントリを書��込んだ時点で、再配置及び消去処理を行ってもよい。以上の追記型書き込み方法において、第２の制御部１７２はアドレスを管理し、主記憶メモリ１７１へ書き込みをする。尚物理領域管理テーブル１３３には、どの物理ブロックが使用中なのか消去済みなのかの情報を含んでいるが、この情報は、第１の制御部１１５と第２の制御部１７２との間で共有する必要がある。そのために、バスを介してお互いに情報のやりとりを行う。【００９７】  ディレクトリエントリに追記型書き込み方法を適用することにより、ディレクトリエントリの更新時間は、図３５に示す通りになる。なお、主記憶メモリ１７１へのデータ転送速度を１バイトあたり５０ｎｓ、主記憶メモリ１７１のプログラムビジー時間を３００μｓ、主記憶メモリ１７１のリードビジー時間を２５μｓ、主記憶メモリ１７１のプログラム及びリードのアクセス単位を１ページ（２ｋバイト）とする。【００９８】  ディレクトリエントリを記録している物理ブロックに空きセクタがある期間では、  （５０ｎｓ×５１２バイト）＋（３００μｓ×１ページ）＝約０．３３ｍｓにより更新時間は約０．３３ｍｓとなる。  一方、再配置及び消去が発生する期間では、  （５０ｎｓ×１２８ｋバイト）＋（３００μｓ×６４ページ）＋（５０ｎｓ×１２８ｋバイト）＋（２５μｓ×６４ページ）＋２ｍｓ＝約３３．６ｍｓにより、更新時間は約３３．６ｍｓとなる。【００９９】  ここで上述したように、ディレクトリエントリのサイズは、物理ブロックサイズに対して十分小さいサイズである、即ち、再配置及び消去が発生する頻度が少ないので、平均的にも、０．３３ｍｓ程度でディレクトリエントリの更新が行えると考えてよい。従って、低頻度で生じる３３．６ｍｓの処理時間分を吸収できるバッファを設けることにより、システムの転送レート上は問題ないと考えられる。このバッファのサイズは、２ＭＢｐｓ×３３．６ｍｓ＝約７０ｋＢにより、７０ｋＢ分の領域があればよく、例えばＲＡＭ１１３にそのエリアを確保すればよい。【０１００】  以上のように、アクセス装置１５０Ｃがファイルデータを不揮発性記憶装置１４０Ｃに書き込む際、ファイルシステム制御部１５５Ｃが、ファイルデータとそれに対応するディレクトリエントリを異なるアロケーションユニット、即ち異なる物理ブロックに書き込むようにしたので、ファイルデータを連続書き込みしやすくなると共に、ディレクトリエントリの更新時にファイルのコピー回数を少なくすることができる。更に、データ識別部１６１が書き込み対象となるデータがファイルデータなのかディレクトリエントリなのかを識別し、ディレクトリエントリの書き込みの場合にあっては、第２の制御部１７２が主記憶メモリ１７１の物理ブロックに対して追記型書き込みを行うようにしたので、ディレクトリエントリの更新速度を向上させることが可能となる。【０１０１】  この場合にも書き込みを高速化することができ、ディレクトリエントリの更新速度を向上させることができる。
【産業上の利用可能性】
【０１０２】  本発明にかかる不揮発性記憶システムは、物理ブロックサイズがクラスタサイズより大きな不揮発性メモリを用いた不揮発性記憶装置においても、高速書き込みができるものであり、半導体メモリカード等の不揮発性記憶装置を使用した種々の電子機器、例えば静止画記録再生装置や動画記録再生装置、あるいは携帯電話等において有益である。
【図１】
2005103903.tif 000006
【図２】
2005103903.tif 000007
【図３】
2005103903.tif 000008
【図４】
2005103903.tif 000009
【図５】
2005103903.tif 000010
【図６】
2005103903.tif 000011
【図７】
2005103903.tif 000012
【図８Ａ】
2005103903.tif 000013
【図８Ｂ】
2005103903.tif 000014
【図９Ａ】
2005103903.tif 000015
【図９Ｂ】
2005103903.tif 000016
【図１０Ａ】
2005103903.tif 000017
【図１０Ｂ】
2005103903.tif 000018
【図１１Ａ】
2005103903.tif 000019
【図１１Ｂ】
2005103903.tif 000020
【図１２】
2005103903.tif 000021
【図１３】
2005103903.tif 000022
【図１４】
2005103903.tif 000023
【図１５】
2005103903.tif 000024
【図１６】
2005103903.tif 000025
【図１７】
2005103903.tif 000026
【図１８】
2005103903.tif 000027
【図１９】
2005103903.tif 000028
【図２０】
2005103903.tif 000029
【図２１】
2005103903.tif 000030
【図２２】
2005103903.tif 000031
【図２３】
2005103903.tif 000032
【図２４】
2005103903.tif 000033
【図２５】
2005103903.tif 000034
【図２６】
2005103903.tif 000035
【図２７】
2005103903.tif 000036
【図２８】
2005103903.tif 000037
【図２９】
2005103903.tif 000038
【図３０】
2005103903.tif 000039
【図３１】
2005103903.tif 000040
【図３２】
2005103903.tif 000041
【図３３】
2005103903.tif 000042
【図３４】
2005103903.tif 000043
【図３５】
2005103903.tif 000044
【国際調査報告】
2005103903.tif 000045
2005103903.tif 000046
2005103903.tif 000047
2005103903.tif 000048