(57)【要約】  【課題】  高速にメタ情報の読み書きができ且つ寿命が長い半導体フラッシュメモリを提供する。  【解決手段】  パーティションブートセクタ１０３の先頭を消去ブロック１１２の先頭と一致させる。ＦＡＴ１０５の先頭が消去ブロックの先頭と一致するように、予約領域１０４のセクタ数をＭ×Ｎ−１とする。Ｍはパーティションブートセクタ１０３と予約領域１０４とに係る消去ブロック数である。ユーザデータ領域１０９のセクタ数をクラスタ当たりのセクタ数で割って有効クラスタ数Ｔcとする。ＦＡＴで管理できるクラスタ数がユーザデータ領域１０９に確保されるクラスタ数以上となるように、ＦＡＴ当たりの消去ブロック数を決める。以上のようにして、ふたつのＦＡＴがひとつの消去ブロック内に並存するのを回避する。  【選択図】  図１
2005216119.tif 000002
【特許請求の範囲】
【請求項１】
消去ブロック単位でデータが消去される半導体フラッシュメモリであって、
ファイルとしてデータを記録するユーザ領域と、
前記ファイルを管理するためのデータであるメタ情報を記録するシステム領域とを備え、
前記ユーザ領域と前記システム領域とは消去ブロックを共有せず、
前記ユーザ領域においてひとつのデータが記録または消去される際に、これと関連付けて更新される複数のメタ情報は互いに異なる消去ブロックに記録される
ことを特徴とする半導体フラッシュメモリ。
【請求項２】
ＦＡＴファイルシステム規格に準拠して初期化されている半導体フラッシュメモリであって、
前記システム領域は、パーティションブートセクタとファイルアロケーションテーブルを含み、
前記パーティションブートセクタは、パーティションの先頭セクタに記録されており、
前記ファイルアロケーションテーブルは、前記パーティションブートセクタから所定のセクタ数だけ隔てて記録されており、
前記ファイルアロケーションテーブルの最終セクタが消去ブロックの最終セクタと一致するように、前記ファイルアロケーションテーブルのサイズが決定されている
ことを特徴とする請求項１に記載の半導体フラッシュメモリ。
【請求項３】
ＵＤＦファイルシステム規格に準拠して初期化されている半導体フラッシュメモリであって、
スペース・ビットマップがパーティションの先頭に記録されており、
前記スペース・ビットマップの最終セクタが消去ブロックの最終セクタと一致するように、前記スペース・ビットマップのサイズが決定されている
ことを特徴とする請求項１に記載の半導体フラッシュメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、消去ブロック単位を持つ不揮発性メモリを用いた記録媒体に関し、特に、そのような記録媒体に関する。
【背景技術】
【０００２】
近年、電気的に記録や消去が可能で、電源を切っても記録されたデータが不揮発なメモリ素子を内蔵した半導体フラッシュメモリが普及しつつある。この種の半導体フラッシュメモリは、機械的な可動部分が少なくて済み、小型・軽量に装置を構成できることから、モバイル機器などの分野ではハードディスクの代替として、すなわち二次記憶として利用されることも増えてきた。またメモリ素子の大容量化も進み、半導体フラッシュメモリは映像や音声を記録する用途にも使用され始めている。
【０００３】
半導体フラッシュメモリに記録された映像や音声などの情報は、一般にファイルシステムによってファイルとして管理されている。ファイルシステムは、個々のファイルのサイズや記録された日時、クラスタやセクタなどの記録領域の使用状況や空き状況などを管理し、これらのメタ情報を記録媒体に記録する。
例えば、あるオペレーティングシステムにおいては、二次記憶へのファイル入出力の最小単位を、メタ情報もユーザデータ領域のデータも区別せずにセクタとしている。これは、ハードディスクやフレキシブルディスクといった記録媒体の最小書き換え単位がセクタであるためである。また、ＦＡＴ（File Allocation Table）系のファイルシステムにおいては、ユーザデータ領域のデータが、連続したセクタを複数個まとめたクラスタという単位によって管理される。
【０００４】
一方、一般的に半導体フラッシュメモリは、データ記録の際には記録前に消去ブロックと呼ばれる一定のサイズのデータが電気的に一括消去される特徴を持っている。ここで、消去ブロックのサイズに満たないデータを記録する場合、一度そのブロックのデータを読み出して保持した後、ブロックのデータを一括消去し、保持していたデータを部分的に更新してから、ブロックに書き戻すことになる。このような動作はリード・モディファイ・ライトと呼ばれ、記録動作が複雑になり、記録の転送レートが低下する原因となる。高い転送レートでデータを記録するには、このような消去ブロックに対する部分的なデータ更新を避けるため、記録するデータのサイズを消去ブロックと同じサイズか、または、その整数倍のサイズにして、さらに記録するアドレスを消去ブロックの先頭に合わせる必要がある。
【０００５】
一般的に、半導体フラッシュメモリを二次記憶として用いる場合、半導体フラッシュメモリにおける消去ブロック単位の境界と、半導体フラッシュメモリの上で構築されたファイルシステムが扱うクラスタの境界とは一致しない。半導体フラッシュメモリ上で、クラスタが複数の消去ブロックにまたがっていた場合、ひとつのクラスタ書き換えに対して複数回のブロック消去がおこなわれることになり、これは半導体フラッシュメモリの寿命を著しく縮めるとともに、クラスタがひとつの消去ブロック内に含まれていた場合に比べて書き込み時間も多くかかる。
【０００６】
このような問題を解決するために、例えば、以下のような方法が開発されている（特許文献１を参照。）。
図７は、半導体フラッシュメモリをＦＡＴ１６ファイルシステムで初期化した場合のブロック構成図であって、特に、半導体フラッシュメモリ内のボリューム領域を表している。
【０００７】
図７に示されるように、ボリューム領域は、マスターブートレコード（MBR： Master Boot Record）及びルートパーティションテーブルセクタ７０１、予約領域７０２、７０３、システム領域７０８及びユーザデータ領域７０７から構成されている。
前記ＭＢＲ及びルートパーティションテーブルセクタ７０１には、パーティションの開始位置が記録されている。パーティションは、前記システム領域７０８から開始される。
【０００８】
予約領域７０２、７０３は、ＭＢＲ及びルートパーティションテーブルセクタ７０１とシステム領域７０８との間に設けられている領域である。以上、ＭＢＲ及びルートパーティションテーブルセクタ７０１と予約領域７０２、７０３から構成される領域をパーティション管理領域という。
システム領域７０８は、更にパーティションブートセクタ７０４、二重化ＦＡＴ７０５、ルートディレクトリエントリ（RDE： Root Directory Entry）７０６に分けられる。
【０００９】
また、ユーザデータ領域７０７は、クラスタ単位で管理されている。
このようにすれば、前記ユーザデータ領域７０７の先頭が半導体フラッシュメモリの消去ブロックの境界と一致するようにマスターブートレコード及びパーティションテーブルを含むセクタからパーティションブートセクタまでのデータサイズを決定することができる。
【００１０】
従って、ユーザデータ領域におけるクラスタどうしの境界と消去可能ブロックの境界とが一致するので、ひとつのクラスタの書き換えに当たってふたつの消去ブロックを消去するような無駄を省くことができる。
しかしながら、前記方法により解決されるのは、ユーザデータ領域におけるファイルシステムの管理単位と消去ブロック単位の差異のみである。前記半導体フラッシュメモリのシステム領域７０８には、ユーザデータ領域を管理するためのメタ情報が記録されている。これらのメタ情報の中には、数多くのセクタにまたがり、かつ頻繁に書き換えがおこなわれるものも存在する。ＦＡＴファイルシステムにおけるＦＡＴや、ＵＤＦ（Universal Disk Format）ファイルシステムにおけるスペース・ビットマップといった、記録媒体上のデータ割り当て状況や空き状況を記録した情報などがその代表である。
【００１１】
前記ＦＡＴや前記スペース・ビットマップはクラスタ単位で管理されないため、オペレーションシステムからの読み出しと更新の最小単位はセクタとなる。多くのオペレーションシステムにおいて、セクタ単位の入出力要求は、そのアドレスが連続している場合はひとつの大きな入出力要求として結合されるが、一般にメタ情報の更新場所が連続している保証はない。つまり、ひとつの消去ブロック内に含まれる様々な場所のセクタが書き換えられるたびに消去ブロックの読み出し、書き換え、書き戻しが発生する。ＦＡＴやスペース・ビットマップといったメタ情報は比較的小さな単位の更新を頻繁に繰り返す性質を持っているので、これは半導体フラッシュメモリの寿命を縮めるのみならず、メタ情報の更新に多大な時間を要することで、ユーザデータ領域のデータに関する実効的な書き出しレートの著しい劣化をまねくことにもなる。
【００１２】
そこで、ＦＡＴやスペース・ビットマップといったメタ情報を標準的なオペレーティングシステムに採用されているセクタ単位の入出力機構から独立させることが有効と考えられる。すなわち、前記メタ情報を主記憶上に消去ブロック単位でコピーし、オペレーションシステムは前記メタ情報のコピーに対して、ファイル入出力に伴うメタ情報の更新をおこなう。そしてオペレーションシステムは一定時間ごとに前記メタ情報コピーに対する更新の有無をチェックし、更新のあったメタ情報が含まれた消去ブロックを半導体フラッシュメモリに書き戻す。これにより、前記管理情報の更新に伴う消去ブロックの無駄な読み出し、書き換え、書き戻しの発生が抑制できる。
【特許文献１】特開２００１−１８８７０１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上述のように半導体フラッシュメモリを初期化すると複数のメタ情報がひとつの消去ブロックを共有する可能性があるため、メタ情報の入出力管理が複雑になる。図８は、かかる半導体フラッシュメモリ（二次記憶）のデータ構造を示す図である。図８において、内部に消去ブロック単位８０８を持つ二次記憶８０７はＦＡＴファイルシステムで初期化されている。この初期化では、ＦＡＴ８０３とＦＡＴ８０４が同一の消去ブロック８１０を共有し、またＦＡＴ８０４とルートディレクトリエントリ８０５が同一の消去ブロック８１０を共有している。
【００１４】
前記初期化が施された半導体フラッシュメモリのＦＡＴを前記運用法で管理するためには、消去ブロックのコピー８０９と消去ブロックのコピー８１０を主記憶８１１に保持する必要がある。ＦＡＴ８０３とＦＡＴ８０４は同一のデータであるため、これは冗長で、前記主記憶８１１の使用効率を悪化させる。また、このようにＦＡＴ８０３の先頭とＦＡＴ８０４の先頭がそれぞれ消去ブロック８０９、８１０内でオフセットを持つことで、ファイル入出力に伴うＦＡＴの参照や更新も煩雑になるうえ、ＦＡＴ更新に際して主記憶８１１上でＦＡＴ８０３、８０４それぞれの該当箇所を更新する必要が生じる。
【００１５】
また、ＦＡＴが記録された消去ブロック内にＦＡＴ以外の管理情報（図８ではルートディレクトリエントリ８０５）が入り込んだ形で初期化されているため、前記消去ブロックの更新がファイル入出力に伴うＦＡＴの更新以外でも生じることになるので、ファイルシステムの運用手段の設計が複雑化し、前記消去ブロックの更新有無管理も煩雑になる。
本発明は、上述のような問題に鑑みて為されたものであって、メタ情報の読み書きの高速化と半導体フラッシュメモリの長寿命化を実現し、且つ、ファイルシステムの運用手段の設計が容易となるように初期化された半導体フラッシュメモリを提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するため、本発明に係る半導体フラッシュメモリは、消去ブロック単位でデータが消去される半導体フラッシュメモリであって、ファイルとしてデータを記録するユーザ領域と、前記ファイルを管理するためのデータであるメタ情報を記録するシステム領域とを備え、前記ユーザ領域と前記システム領域とは消去ブロックを共有せず、前記ユーザ領域においてひとつのデータが記録または消去される際に、これと関連付けて更新される複数のメタ情報は互いに異なる消去ブロックに記録されることを特徴とする。
【発明の効果】
【００１７】
このようにすれば、メタ情報の読み書きを高速化すると共に、半導体フラッシュメモリの長寿命化を図ることができる。
また、本発明に係る半導体フラッシュメモリは、ＦＡＴファイルシステム規格に準拠して初期化されている半導体フラッシュメモリであって、前記システム領域は、パーティションブートセクタとファイルアロケーションテーブルを含み、前記パーティションブートセクタは、パーティションの先頭セクタに記録されており、前記ファイルアロケーションテーブルは、前記パーティションブートセクタから所定のセクタ数だけ隔てて記録されており、前記ファイルアロケーションテーブルの最終セクタが消去ブロックの最終セクタと一致するように、前記ファイルアロケーションテーブルのサイズが決定されていることを特徴とする。
【００１８】
このようにすれば、ＦＡＴファイルシステム規格に準拠して初期化されている半導体フラッシュメモリについて、本発明の効果を得ることができる。
また、本発明に係る半導体フラッシュメモリは、ＵＤＦファイルシステム規格に準拠して初期化されている半導体フラッシュメモリであって、スペース・ビットマップがパーティションの先頭に記録されており、前記スペース・ビットマップの最終セクタが消去ブロックの最終セクタと一致するように、前記スペース・ビットマップのサイズが決定されていることを特徴とする。
【００１９】
このようにすれば、ＵＤＦファイルシステム規格に準拠して初期化されている半導体フラッシュメモリについて、本発明の効果を得ることができる。
本構成により、頻繁に書き換えの生じるメタ情報等の管理情報を、それぞれ独立して常に消去ブロック単位で半導体フラッシュメモリに書き戻すことができるため、メタ情報の読み書きの高速化と半導体フラッシュメモリの長寿命化を実現しつつ、ファイルシステムの運用手段の設計が容易になる。
【００２０】
以上述べたように、本発明によれば、半導体フラッシュメモリの寿命を延長することができるとともに、半導体フラッシュメモリを二次媒体としてリアルタイム性の高いデータを記録する際、消去ブロックをまたがったメタ情報の書き出しや、同一消去ブロックの複数回書き直しによって記録の実効速度が低下することを防ぐことができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明に係る記録媒体の実施の形態について、ＦＡＴ１６ファイルシステムを採用した半導体フラッシュメモリ例にとり、図面を参照しながら説明する。
［１］  実施の形態
図１は、本発明の実施の形態に係る半導体フラッシュメモリの物理番地０から始まる空間全体を表わす図である。図１に示されるように、半導体フラッシュメモリ１のデータ構造は、パーティション管理領域、システム領域及びユーザデータ領域からなっている。
【００２２】
半導体フラッシュメモリ１は隣接するＮセクタ（Ｎ＝２i：ｉは自然数）ごとに消去ブロックを持ち、データの書き換えは、前記消去ブロック単位でバッファへの読み出し、バッファ上での書き換え、半導体フラッシュメモリへの書き戻しをすることによっておこなわれる。なお、書き換えられるデータサイズと位置が消去ブロックと完全に一致する場合は、バッファへの読み込みが生じないため、書き換えは高速に実行される。
【００２３】
物理番地０に書かれたマスターブートレコードとパーティションテーブル１０１には、パーティションの開始位置、すなわちパーテシションブートセクタ１０３の位置が書かれている。これらの間にあるセクタは予約領域１０２として扱われ、データが書き込まれることはない。本実施の形態においては、前記パーティションブートセクタ１０３の先頭が消去ブロック１１２の先頭と一致するように前記予約領域１０２の大きさが設定されている。
【００２４】
図２はＪＩＳ−Ｘ０６０５に規定されている、ＦＡＴ１６のパーティションブートセクタ１０３の構成を示す表である。図２に示されるように、前記パーティションブートセクタ１０３の１４〜１５バイト目を用いて、パーティションブートセクタ１０３の直後に続く予約領域１０４の大きさを定めることができる。本実施の形態では、予約領域１０４のセクタ数を（Ｍ×Ｎ−１）と定めることで、予約領域１０４の直後に続くＦＡＴ１０５の先頭を消去ブロックの境界と一致させている。ここでＭはパーティションブートセクタ１０３と予約領域１０４が占有する消去ブロックの数を示す正整数である。本実施の形態においては、Ｍ＝１としたが、Ｍが正整数であればＦＡＴ１０５先頭と消去ブロックの境界の一致は必ず成立するので、１以外の値をとるとしても良い。
【００２５】
また、パーティションブートセクタ１０３の２２〜２３バイト目で、ＦＡＴひとつ当たりの領域の大きさを設定できる。すなわち、有効クラスタ数Ｔcに関わらずＦＡＴの大きさを決められることを意味している。次式は有効クラスタ数Ｔcを決定する式である。
Ｔc＝［（ＴS−Ｓsys）／Ｓc］
ここで、ＴSはメディア全体のセクタ数を表わし、Ｓsysは管理情報（マスターブートレコードとパーティションテーブル１０１、パーティションブートセクタ１０３、ＦＡＴ１０５、１０６、ルートディレクトリエントリ１０７及び予約領域１０２、１０４）が占めるセクタ数を表わす。また、Ｓcは１クラスタ当たりのセクタ数を表わす。また、ガウス記号［ｘ］は、ｘを超えない最大の整数を表わす。すなわち、上式では、半導体フラッシュメモリ１の全セクタ数から管理情報を引いたセクタ数、すなわちユーザデータ領域１０９のセクタ数を、クラスタ当たりのセクタ数で割って、有効クラスタ数Ｔcとしている。
【００２６】
さて、本実施の形態においては、ＦＡＴの大きさを以下のようにして決定する。図３は、ＦＡＴひとつ当たりのセクタ数を決定する手順を示すフローチャートである。図３に示されるように、ＦＡＴひとつ当たりのセクタ数を決定するに際しては、先ず、パーティション内の総セクタ数ＴSからパーティションブートセクタ１０３と予約領域１０２、１０４とのセクタ数ＳRを減算して、ユーザデータ領域１０９、ＦＡＴ１０５、１０６及びルートディレクトリエントリ１０７が占有するセクタ数Ｓoを計算する（ステップＳ１００）。
【００２７】
続いて、ＦＡＴひとつ当たりの消去ブロック数を表わす変数Ｓに値ゼロを代入して初期化した後（ステップＳ１０１）、変数Ｓを１だけ増加させる（ステップＳ１０２）。
そして、不等式が成立するか否かを判断する。
［（Ｓo−Ｓ×Ｎ×ＦN−ＲＤＥS）／Ｓc］≦（Ｓ×Ｎ×ＳS×８／１６）−２
ここで、Ｎは消去ブロックひとつに含まれるセクタ数を表わす。ＦNはＦＡＴの個数を表わす。本実施の形態においては、ＦＡＴ１０５、１０６に対応させて、ＦNは２とする。また、ＲＤＥSはルートディレクトリエントリ１０７のセクタ数を表わし、Ｓcは１クラスタ当たりのセクタ数を表わす。ＳSは１セクタ当たりのバイト数を表わす。［ｘ］は上と同様、ガウス記号である。なお、ＦNは、ＪＩＳ−Ｘ０６０５に従って、２以外の正整数値をとるとしても良い。
【００２８】
すなわち、左辺は、パーティション内のユーザデータ領域に確保されるクラスタ数を表わし、右辺は、準備したＦＡＴの大きさで管理できるクラスタ数を表わす。よって、確保したＦＡＴの大きさがユーザデータ領域のクラスタ数をカバーしきれていない場合、前記不等式は成り立たない。逆に、ＦＡＴの大きさがユーザデータ領域のクラスタ数をカバーできる場合には、前記不等式が成立する。
【００２９】
さて、前記不等式が成立しない場合（ステップＳ１０３：ＮＯ）、ＦＡＴひとつ当たりの消去ブロック数Ｓを１だけ増加させて（ステップＳ１０２）、上記不等式が成立するか否かを判定する。
上記不等式が成立すると判定された場合には（ステップＳ１０３：ＹＥＳ）、ＦＡＴに必要な数の消去ブロックを割り当てることができたとして、式
ＦS＝Ｓ×Ｎ
を用いて、ＦＡＴひとつ当たりのセクタ数ＦSを算出して（ステップＳ１０４）、処理を終了する。
【００３０】
以上の方法により、ユーザデータ領域の管理に必要な大きさを持ったＦＡＴ１０５、１０６が消去ブロック単位の大きさで確保できる。また、前述のように予約領域１０４の大きさを調節することでＦＡＴの先頭を消去ブロックの境界と一致させたことから、以上の方法によって確保したＦＡＴの末尾もまた消去ブロックの境界と一致する。すなわち、ＦＡＴがちょうど消去ブロック単位で配置されることになる。
【００３１】
また、パーティションブートセクタ１０３の１７〜１８バイト目において、ルートディレクトリエントリ１０７の大きさを
Ｎ×Ｌ×ＳS／３２
とすれば、ユーザデータ領域の先頭と消去ブロックの境界を一致させることができる。ここで、Ｌはルートディレクトリエントリ１０７が占有する消去ブロックの数を表わし、任意の正整数値を与えることができる。ＳSはセクタひとつ当たりのバイト数を表わす。また、分母の３２は、ＪＩＳ−Ｘ０６０５に規定されているように、ディレクトリのエントリひとつ当たりに消費されるバイト数である。
【００３２】
以上のようにして、半導体フラッシュメモリ１を初期化することにより、ふたつのＦＡＴがひとつの消去ブロック内に並存するのを回避することができる。また、ユーザデータ領域の先頭を消去ブロック境界に一致させることができる。
従って、二重化されたＦＡＴを更新する際に、同一の消去ブロックが２回書き換えられるといった事態を回避して、消去ブロック毎の書き換え回数を減少させることができるの半導体フラッシュメモリ１の寿命を延長することができる。
【００３３】
本実施の形態においては、ＦＡＴ１０５、１０６は、それぞれ対応する消去ブロックに同じようにして配置される。すなわち、いずれのＦＡＴもその先頭を消去ブロックの先頭に置き、１消去ブロック分の領域を占有するように配置される。なお、本発明においては、ＦＡＴが占有する消去ブロック数は１に限定されないのは言うまでも無く、２以上の消去ブロックを占有するとしても良い。
【００３４】
従って、半導体フラッシュメモリにアクセスするアクセス装置が、ＦＡＴにアクセスするためにそのＦＡＴを消去ブロック単位で内蔵メモリに読み込む際、ＦＡＴの数だけメモリに読み込む必要はなく、ひとつのＦＡＴのみを内蔵メモリに読み込むだけでよくなる。すなわち、内蔵メモリ中のＦＡＴのコピーが更新された後は、その内容を半導体フラッシュメモリ上の複数のＦＡＴに対して上書きすることで、半導体フラッシュメモリ上の複数のＦＡＴの更新が可能となる。
【００３５】
［２］  変形例
以上、本発明を実施の形態に基づいて説明してきたが、本発明が上述の実施の形態に限定されないのは勿論であり、以下のような変形例を実施することができる。
（１）  上記実施の形態においては、パーティションブートセクタ１０３の先頭を消去ブロックの境界に一致させる場合について説明したが、本発明がこれに限定されないのは言うまでもなく、同一消去ブロック内にパーティションブートセクタ１０３とＦＡＴ１０５とが混在しない限り、パーティションブートセクタ１０３の先頭を消去ブロック境界に一致させる必要はない。例えば、パーティションブートセクタ１０３の先頭が消去ブロック境界からＫ番目のセクタにあるならば、ＦＡＴ先頭との間にある予約領域１０４の大きさをセクタ（Ｍ×Ｎ−Ｋ）個分とすれば良い。
【００３６】
（２）  上記実施の形態においてはＦＡＴを二重化する場合について説明したが、本発明がこれに限定されないのは言うまでもなく、パーティションブートセクタ１０３の１６バイト目で指定することにより、ＦＡＴの数を任意に変えても良い。
また、ＦＡＴをひとつしか持たず、従ってＦＡＴ１０６を有しない場合には、ＦＡＴ１０５の先頭を消去ブロック先頭と一致させる必要はない。消去ブロックの書き換え頻度が増大するおそれが無いからである。
【００３７】
この場合において、ＦＡＴ１０５とルートディレクトリエントリ１０７とを同一の消去ブロックに並存させないためには、ＦＡＴ１０５の末尾を消去ブロックの境界に一致させると良い。このためには、次式を満足するように各パラメータを設定すれば良い。
ＳR＋ＦS＝Ｎ×Ｉ
ここで、ＳRはＦＡＴ１０５とルートディレクトリエントリ１０７以外の管理情報が占めるセクタ数を表わす。ＦSはＦＡＴ１０５のセクタ数を表わす。また、Ｎは消去ブロックひとつ当たりのセクタ数を表わし、Ｉは正整数である。
【００３８】
上式の左辺はＦＡＴ１０５よりも前にあるすべての管理情報（マスターブートレコードとパーティションテーブル１０１、パーティションブートセクタ１０３及び予約領域１０２、１０４）とＦＡＴ１０５とが消費するセクタ数の総和であり、右辺は左辺が消去ブロック単位で確保されていることを表わしている。
（３）  上記本発明の形態においては、ＦＡＴ１６ファイルシステムを用いる場合を例にとり本発明について説明したが、本発明がこれに限定されないのは言うまでもなく、ＦＡＴ１６ファイルシステムに代えて、ＦＡＴ１２ファイルシステムやＦＡＴ３２ファイルシステムを用いるとしても良い。
【００３９】
上記ＦＡＴ１６ファイルシステムの場合には、ＦＡＴの大きさを決定する際に不等式：
［（Ｓo−Ｓ×Ｎ×ＦN−ＲＤＥS）／Ｓc］≦（Ｓ×Ｎ×ＳS×８／１６）−２
を用いたが、ＦＡＴ３２ファイルシステムの場合には、不等式：
［（Ｓo−Ｓ×Ｎ×ＦN−ＲＤＥS）／Ｓc］≦（Ｓ×Ｎ×ＳS×８／３２）−２
を用いると良い。また、ＦＡＴ１２ファイルシステムの場合には、不等式：
［（Ｓo−Ｓ×Ｎ×ＦN−ＲＤＥS）／Ｓc］≦（Ｓ×Ｎ×ＳS×８／１２）−２
を用いると良い。
【００４０】
このように、ＦＡＴ３２ファイルシステムを用いる場合には、ルートディレクトリエントリ１０７をシステム領域１０８内にもつ必要がないため、前記図３にて示される初期化手順において、ルートディレクトリエントリ１０７に関する処理を省略できる。
（４）  上記実施の形態においては、パーティションブートセクタ１０３に対して消去ブロックをひとつ割り当てる場合について説明したが、ＦＡＴをひとつしか持たず、従ってＦＡＴ１０６を有しない場合には、パーティションブートセクタ１０３をＦＡＴ１０５と同一の消去ブロックに配置しても良い。
【００４１】
例えば、図１において、消去ブロック３の先頭セクタにパーティションブートセクタ１０３を配置し、その後の（Ｎ−１）個のセクタをＦＡＴ１０５として使用するようにしても良い。
パーティションブートセクタ１０３をどの消去ブロックに配置するとしても、パーティションブートセクタ１０３は半導体フラッシュメモリをフォーマットする時に書き込まれた後は書き替えられることがないため、このようにしても半導体フラッシュメモリ１の寿命に影響を与えることがなく、本発明の効果にも影響しない。
【００４２】
（５）  上記実施の形態においては、ＦＡＴ１６ファイルシステムを例にとって説明したが、本発明がこれに限定されないのは言うまでもなく、ＦＡＴ系列のファイルシステムに代えて、ＵＤＦファイルシステムを用いるとしても良い。このＵＤＦファイルシステムについては、下記において標準規格化されている。
ISO/IEC 13346-1:1995, Information technology - Volume and file structure of write-once and rewritable media using nonsequential recording for information interchange - Part 1: General.
ISO/IEC 13346-2:1995, Information technology - Volume and file structure of write-once and rewritable media using nonsequential recording for information interchange - Part 2: Volume and boot block recognition.
ISO/IEC 13346-3:1995, Information technology - Volume and file structure of write-once and rewritable media using nonsequential recording for information interchange - Part 3: Volume structure. 
ISO/IEC 13346-4:1995, Information technology - Volume and file structure of write-once and rewritable media using nonsequential recording for information interchange - Part 4: File structure. 
ISO/IEC 13346-5:1995, Information technology - Volume and file structure of write-once and rewritable media using nonsequential recording for information interchange - Part 5: Record structure. 
ISO/IEC 13490-1:1995, Information technology - Volume and file structure of read-only and write-once compact disk media for information interchange - Part 1: General.
ISO/IEC 13490-2:1995, Information technology - Volume and file structure of read-only and write-once compact disk media for information interchange - Part 2: Volume and file structure.
さて、ＵＤＦファイルシステムを用いる場合の半導体フラッシュメモリのデータ構造について説明する。図４は、ＵＤＦファイルシステムを用いる場合の半導体フラッシュメモリ内の論理セクタ番号０から開始する空間を表わす図である。
【００４３】
ＵＤＦファイルシステムにおいて、ファイルの記録中に頻繁に更新されるメタ情報はスペース・ビットマップ４０３である。スペース・ビットマップ４０３は、図４に示されるように、パーティションの先頭に記録されている。前記パーティションの先頭位置は、メイン・ボリューム記述子４０１に含まれるパーティション記述子４０２にて特定される。前記パーティション記述子にて特定されるパーティションの先頭を消去ブロックの境界と一致させることで、スペース・ビットマップ４０３の先頭を消去ブロック境界に一致させることができる。
【００４４】
図５は、前記スペース・ビットマップ４０３の構成を示す表である。図５に示されるように、スペース・ビットマップ４０３の２０〜２３バイト目に、前記スペース・ビットマップ４０３の大きさが記述される。すなわち、パーティションに実際に含まれるブロック数とは独立にスペース・ビットマップ４０３の大きさを定義することができる。
従って、上記ＦＡＴ１６ファイルシステムの場合と同様にして、前記スペース・ビットマップ４０３をパーティション全体をカバーするのに充分な大きさとし、かつ前記スペース・ビットマップ４０３の末尾が消去ブロックの境界と一致するように定めることができる。これにより、前記スペース・ビットマップ４０３と他のメタ情報やユーザデータが同一消去ブロックに混在しないように配置することができる。
【００４５】
なお、上記においては、更新されるメタ情報が同一の消去ブロックを共有しないようにスペース・ビットマップ４０３の先頭セクタと消去ブロックの先頭セクタを一致させたが、ファイル記録中にパーティション先頭以前のセクタに対する書き換えが生じない場合は、スペース・ビットマップの先頭セクタを消去ブロックの先頭セクタに一致させる必要はない。同一の消去ブロックに並存する複数のメタ情報が同時に更新され得ないからである。
【００４６】
次に、半導体フラッシュメモリに効率よくファイルを記録するためのファイルシステムの運用方法について、ＦＡＴファイルシステムの場合を例にとって説明する。なお、ＵＤＦファイルシステムを用いる場合も同様の運用方法がとられる。図６は、半導体フラッシュメモリにファイルを記録するための手順を説明するための図である。
図６において、アプリケーション６０１は、二次記憶である半導体フラッシュメモリ６０５に格納されるべきデータを作成する。また、アプリケーション６０１は、ファイルシステム構成手段６０２に対して、前記データを半導体フラッシュメモリ６０５に格納するように依頼する。ファイルシステム構成手段６０２は、内部にメタ情報処理部６０６と、データ処理手段６０７を備えている。半導体フラッシュメモリ６０５は前述のようなデータ構造を有している。
【００４７】
ファイルシステム構成手段６０２は、半導体フラッシュメモリ６０５のマウント処理に際して、半導体フラッシュメモリ６０５上にあるパーティションのシステム領域６１３から、頻繁に書き換えが起こるメタ情報（例えば、論理セクタＮ番から論理セクタＭ番まで。）を、連続するセクタで構成される消去ブロック単位で切り出し、高速に読み書きが可能な機器の内蔵メモリ６０３にコピーする。
【００４８】
このとき、半導体フラッシュメモリ６０５は上記実施の形態に示したデータ構造をとっているので、必要なメタ情報を消去ブロック単位で内蔵メモリ６０３にコピーすることができる。
また、ふたつのＦＡＴが同一消去ブロックを共有しないので、一方のＦＡＴのみを消去ブロック単位で切り出し、前記内蔵メモリ６０３にコピーすることができる。従って、システムの省メモリ化が可能となる。なお、ファイルシステム構成手段６０２は、消去ブロック単位取得手段６１５を介して、半導体フラッシュメモリ６０５に問い合わせることによって、消去ブロックのサイズを取得する。
【００４９】
メタ情報処理部６０６は、内蔵メモリ６０３上で、コピーしてきたメタ情報を半導体フラッシュメモリ６０５の消去ブロックと同じ消去ブロック単位で管理し、消去ブロックごとに消去ブロック単位の書き換え有無管理手段を関連付ける。ここでは、書き換え有無管理手段の一例として、消去ブロックごとに関連付けた書き換え有無管理フラグ６０８を用いている。書き換え有無管理フラグ６０８は、マウント直後にすべて「ｃｌｅａｎ」に設定される。
【００５０】
さて、アプリケーション６０１からデータの書き込みを依頼されると、ファイルシステム構成手段６０２は、ユーザデータ領域データ処理手段６０７を用いて、アプリケーション６０１から受け付けたデータを前記半導体フラッシュメモリ６０５のユーザデータ領域６１４に書き込む。この際、メタ情報処理部６０６が前記データに係るメタ情報を作成し、内蔵メモリ６０３にコピーされたメタ情報を更新する。また、情報の更新があった消去ブロックについては、書き換え有無管理フラグ６０８が「ｄｉｒｔｙ」に設定される。
【００５１】
半導体フラッシュメモリ６０５上のメタ情報は定周期で更新される。すなわち、タイマー６１０は一定時間毎に半導体フラッシュメモリ６０５上のメタ情報の更新時期をメタ情報処理部６０６に通知する。当該通知を受け付けると、メタ情報処理部６０６は、内蔵メモリ６０３上の書き換え有無管理フラグ６０８を参照して、「ｄｉｒｔｙ」とされている書き換え有無管理フラグ６０８を検出する。書き換え有無管理フラグ６０８が「ｄｉｒｔｙ」ならば、内蔵メモリ６０３と半導体フラッシュメモリ６０５との間で対応するメタ情報の内容が一致しないからである。
【００５２】
メタ情報処理部６０６にて書き換え有無管理フラグ６０８が「ｄｉｒｔｙ」と判定された消去ブロックについては、消去ブロック単位書き出し手段６０４が内蔵メモリ６０３から当該消去ブロックを読み出して、半導体フラッシュメモリ６０５の対応する消去ブロックに消去ブロック単位で書き込む。
このようにすれば、メタ情報を常に消去ブロック単位でまとめて書き戻すことができるので、半導体フラッシュメモリの書き換え回数を削減して、その寿命を延ばすことができるとともに、高速なメタ情報の書き込みを実現することができる。
【００５３】
また、前記内蔵メモリ６０３へコピーした消去ブロックにはＦＡＴ以外のデータが混在していないため、書き換え有無管理フラグ６０８はＦＡＴの更新のみに着目して更新すれば良い。これにより、メタ情報の書き戻しに係る装置の構成を簡略化することができる。
なお、本変形例においては、消去ブロック単位取得手段６１５にて消去ブロックの大きさを取得するとしたが、これに代えて、ユーザがアプリケーション６０１を通じて手動で消去ブロックの大きさを通知するとしても良い。
【００５４】
また、本変形例においては、マウント時に頻繁に書き換えるメタ情報をすべて内蔵メモリにコピーするとしたが、これに代えて、ファイル記録中に必要になった部分だけを消去ブロック単位で内蔵メモリにコピーするとしても良い。
また、本変形例においては、メタ情報の書き戻しのタイミングをタイマー６１０にてメタ情報処理部６０６に通知するとしたが、これに代えて、アプリケーションが適当なタイミングでファイルシステム構成手段６０２にメタ情報の書き戻しを指示するとしても良い。
【産業上の利用可能性】
【００５５】
本発明に係る記録媒体は、消去ブロック単位をもつ不揮発性メモリを用い記録媒体であって、そのような記録媒体の寿命を延長することができる技術として有用である。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施の形態に係る半導体フラッシュメモリの物理番地０から始まる空間全体を表わす図である。
【図２】ＪＩＳ−Ｘ０６０５に規定されている、ＦＡＴ１６のパーティションブートセクタ１０３の構成を示す表である。
【図３】本発明の実施の形態に係るＦＡＴひとつ当たりのセクタ数を決定する手順を示すフローチャートである。
【図４】本発明の変形例（５）に係る半導体フラッシュメモリ内の論理セクタ番号０から開始する空間を表わす図である。
【図５】本発明の変形例（５）に係る半導体フラッシュメモリに記録されているスペース・ビットマップ４０３の構成を示す表である。
【図６】本発明の変形例（５）に係る半導体フラッシュメモリにファイルを記録するための手順を説明するための図である。
【図７】従来技術に係る半導体フラッシュメモリをＦＡＴ１６ファイルシステムで初期化した場合のブロック構成図であって、特に、半導体フラッシュメモリ内のボリューム領域を表している。
【図８】従来技術に係る半導体フラッシュメモリ（二次記憶）のデータ構造を示す図である。
【符号の説明】
【００５７】
１…………………半導体フラッシュメモリ
１０１……………マスターブートレコードとパーティションテーブル
１０２、１０４…予約領域
１０３……………パーテシションブートセクタ
１０５、１０６…ＦＡＴ
１０７……………ルートディレクトリエントリ
１０８、６１３…システム領域
１０９、６１４…ユーザデータ領域
１１１、１１２、１１３、１１４、１１５、６０９、６１２…消去ブロック
４０１……………メイン・ボリューム記述子
４０２……………パーティション記述子
４０３……………スペース・ビットマップ
６０１……………アプリケーション
６０２……………ファイルシステム構成手段
６０３……………内蔵メモリ
６０４……………消去ブロック単位書き出し手段
６０５……………半導体フラッシュメモリ
６０６……………メタ情報処理部
６０７……………データ処理手段
６０８……………書き換え有無管理フラグ
６１０……………タイマー
６１１……………セクタ
６１５……………消去ブロック取得手段
【図１】
2005216119.tif 000003
【図２】
2005216119.tif 000004
【図３】
2005216119.tif 000005
【図４】
2005216119.tif 000006
【図５】
2005216119.tif 000007
【図６】
2005216119.tif 000008
【図７】
2005216119.tif 000009
【図８】
2005216119.tif 000010