(57)【要約】  フラッシュメモリなどの情報記録媒体に動画データ等をリアルタイムで記録する際、空き記録領域の配置状態による記録速度への影響を抑制し、データ記録のリアルタイム性を保証する。  アクセス装置１内に、不揮発性メモリ２５の領域管理情報であるＦＡＴ１、ＦＡＴ２をＦＡＴブロック単位で管理する領域管理ブロック制御部１８を設けて、ＦＡＴブロック内の空き記録領域長を算出する。次にＦＡＴブロックごとの空き記録領域長を記録した領域管理ブロック情報１９をＲＡＭ１２上に生成する。空き記録領域長が閾値以上のＦＡＴブロックをデータ記録に割り当てて、空き領域の配置状態によらず領域管理情報更新の回数を抑制する。これにより領域管理情報更新の頻発によるバッファ溢れを防止し、データ記録時のリアルタイム性を保証することができる。【特許請求の範囲】
【請求項１】
格納データをファイルシステムにより管理する情報記録媒体にアクセスする情報記録媒体アクセス装置において、
ファイルシステムが管理する領域管理情報を固定長ブロック単位に分割して、各固定長ブロック内に含まれる空き領域長に関する情報を格納する領域管理ブロック情報を情報記録媒体アクセス装置内のメモリ上に生成し、ファイルデータ記録時の領域割り当てに前記領域管理ブロック情報に格納された情報を利用する領域管理ブロック制御部を具備する情報記録媒体アクセス装置。
【請求項２】
管理単位であるクラスタが複数集まって構成されるデータ記録領域と、前記各クラスタに対する１つの管理情報単位であるエントリ情報を複数保持する領域管理情報とを備える不揮発性メモリを含む情報記録媒体にアクセスする情報記録媒体アクセス装置であって、
前記領域管理情報は、前記データ記録領域において一定数の物理的に連続したクラスタが得られるように組み合わされた一定数の前記エントリ情報から成る領域管理ブロックを複数有するものであり、
前記情報記録媒体から前記領域管理情報を読み出し、前記領域管理ブロックごとに空きクラスタ数を算出し、前記各領域管理ブロックの前記空きクラスタ数を第１の閾値と比較して、第１の閾値以上のときに当該領域管理ブロックをデータ書き込みが可能な領域とする前記領域管理ブロック制御部と、
前記各領域管理ブロックと当該領域管理ブロック内の空き領域長に関する領域管理ブロック情報を保持するメモリと、を具備する情報記録媒体アクセス装置。
【請求項３】
前記領域管理ブロック制御部は、
前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納する請求項２記載の情報記録媒体アクセス装置。
【請求項４】
前記第１の閾値は、
連続するｔ回のファイルシステムの管理情報更新に挟まれる（ｔ−１）回のデータ記録期間内で最低限記録しなければならないファイルデータが記録できるクラスタ数である請求項２記載の情報記録媒体アクセス装置。
【請求項５】
前記領域管理ブロック制御部は、
前記領域管理ブロック毎に、前記データ記録領域において２つ以上の物理的に連続したクラスタが得られるように前記エントリ情報を２つ以上組み合わせて１つの組として管理し、各組のエントリ情報で示されるクラスタが全て空き領域となっている組に含まれるクラスタ数を前記第１の閾値と比較し、前記空きクラスタ数が前記第１の閾値以上である場合は、該当する領域管理ブロックが管理する記録領域をデータ記録可能な領域とする請求項２記載の情報記録媒体アクセス装置。
【請求項６】
前記領域管理ブロック制御部は、
前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納する請求項５記載の情報記録媒体アクセス装置。
【請求項７】
前記領域管理ブロック制御部は、
前記領域管理ブロック毎に、前記エントリ情報を２つ以上組み合わせて１つのスロットとして管理し、各スロットに含まれるクラスタの内、空きクラスタ数が第２の閾値以上の場合に当該スロットを空きスロットと判定し、前記領域管理ブロック内のすべての空きスロットに含まれる空きクラスタ数を前記第１の閾値と比較し、前記空きクラスタ数が前記第１の閾値以上である場合は、該当する領域管理ブロックが管理する記録領域をデータ記録可能な領域とする請求項２記載の情報記録媒体アクセス装置。
【請求項８】
前記領域管理ブロック制御部は、
前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納する請求項７記載の情報記録媒体アクセス装置。
【請求項９】
前記領域管理ブロック制御部は、
前記メモリに保持された前記領域管理ブロック情報を参照し、前記空き領域長が、一定値以上である前記領域管理ブロックに含まれる空き領域をファイルデータ記録時に割り当てる請求項１記載の情報記録媒体アクセス装置。
【請求項１０】
ファイルシステムが管理する領域管理情報を固定長ブロック単位に分割して、各固定長ブロック内に含まれる空き領域長に関する情報を格納する領域管理ブロック情報を情報記録媒体アクセス装置内のメモリ上に生成し、ファイルデータ記録時の領域割り当てに前記領域管理ブロック情報に格納された情報を利用するデータ記録方法。
【請求項１１】
管理単位であるクラスタが複数集まって構成されるデータ記録領域と、前記各クラスタに対する１つの管理情報単位であるエントリ情報を複数保持する領域管理情報とを備える不揮発性メモリを含む情報記録媒体にアクセスするデータ記録方法であって、
前記領域管理情報は、前記データ記録領域において一定数の物理的に連続したクラスタが得られるように組み合わされた一定数の前記エントリ情報から成る領域管理ブロックを複数有するものであり、
前記情報記録媒体から前記領域管理情報を読み出し、前記領域管理ブロックごとに空きクラスタ数を算出し、前記各領域管理ブロックの前記空きクラスタ数を第１の閾値と比較して、第１の閾値以上のときに当該領域管理ブロックをデータ書き込みが可能な領域とし、
前記各領域管理ブロックと当該領域管理ブロック内の空き領域長に関する領域管理ブロック情報をメモリに保持するデータ記録方法。
【請求項１２】
前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納する請求項１１記載のデータ記録方法。
【請求項１３】
前記第１の閾値は、
連続するｔ回のファイルシステムの管理情報更新に挟まれる（ｔ−１）回のデータ記録期間内で最低限記録しなければならないファイルデータが記録できるクラスタ数である請求項１１記載のデータ記録方法。
【請求項１４】
前記領域管理ブロック毎に、前記データ記録領域において２つ以上の物理的に連続したクラスタが得られるように前記エントリ情報を２つ以上組み合わせて１つの組として管理し、各組のエントリ情報で示されるクラスタが全て空き領域となっている組に含まれるクラスタ数を前記第１の閾値と比較し、前記空きクラスタ数が前記第１の閾値以上である場合は、該当する領域管理ブロックが管理する記録領域をデータ記録可能な領域とする請求項１１記載のデータ記録方法。
【請求項１５】
前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納する請求項１４記載のデータ記録方法。
【請求項１６】
前記領域管理ブロック毎に、前記データ記録領域において２つ以上の物理的に連続したクラスタが得られるように前記エントリ情報を２つ以上組み合わせて１つのスロットとして管理し、各スロットに含まれるクラスタの内、空きクラスタ数が第２の閾値以上の場合に当該スロットを空きスロットと判定し、前記領域管理ブロック内のすべての空きスロットに含まれる空きクラスタ数を前記第１の閾値と比較し、前記空きクラスタ数が前記第１の閾値以上である場合は、該当する領域管理ブロックが管理する記録領域をデータ記録可能な領域とする請求項１１記載のデータ記録方法。
【請求項１７】
前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納する請求項１６記載のデータ記録方法。
【請求項１８】
前記メモリに保持された前記領域管理ブロック情報を参照し、前記空き領域長が、一定値以上である前記領域管理ブロックに含まれる空き領域をファイルデータ記録時に割り当てる請求項１０記載のデータ記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、格納データをファイルシステムにより管理する情報記録媒体にアクセスする情報記録媒体アクセス装置、及び情報記録媒体に対するデータ記録方法に関する。
【背景技術】
【０００２】
音楽コンテンツや、映像データ等のデジタルデータを記録する情報記録媒体には、ハードディスク、光ディスク等、様々な種類が存在する。これらの情報記録媒体の１種類であるメモリカードは小型、軽量であることから、デジタルスチルカメラや携帯電話端末等、小型の携帯機器を中心に用いられ、急速に普及しつつある。【０００３】
現在メモリカードの記録素子として使用されている半導体メモリは、ＥＥＰＲＯＭやフラッシュＲＯＭ等のフラッシュメモリが主流である。特に多くの情報記録媒体で使用されているＮＡＮＤ型のフラッシュメモリには、データを書き込む前に書き込み先に記録されているデータを消去して、一旦未記録の状態にしてからデータを書き込まなければならないという特徴がある。ここでデータを消去する単位は消去ブロックと呼ばれ、アクセスの最小単位であるセクタが複数個集まってできたブロックとして管理されている。【０００４】
図１はフラッシュメモリにおける消去ブロックとセクタとの関係の一例を示した図である。図１の例では、１つの消去ブロックは３２のセクタから構成されている。アクセスはセクタ、例えば５１２バイト（Ｂ）、単位で行うことが可能であるが、書き込みに先立ち必要となるデータの消去処理は消去ブロック、例えば１６ｋＢ単位、で行われる。記録領域の容量は１６ｋＢの消去ブロックが６４０００ブロック連続した例を示している。【０００５】
すなわち、１消去ブロック（１６ｋＢ）分のデータをフラッシュメモリに記録する場合、下記の手順で記録処理が実行される。
（１）アクセス装置から入力されたコマンドを解釈する。
（２）有効なデータが格納されていない消去ブロックを１ブロック取得し、その消去ブロック（１消去ブロック分）のデータを消去する。
（３）（２）でデータを消去した消去ブロックに、アクセス装置からの入力データを１消去ブロック分記録する。【０００６】
また、１セクタ（５１２Ｂ）分のデータをフラッシュメモリに記録する場合は、下記の手順で記録処理が実行される。
（１）アクセス装置から入力されたコマンドを解釈する。
（２）有効なデータが格納されていない消去ブロックを１ブロック取得し、その消去ブロック（１消去ブロック分）のデータを消去する。
（３）（２）でデータを消去した消去ブロックに、アクセス装置からの入力データを１セクタ分記録する。
（４）１セクタ分を記録した消去ブロックの残りの３１セクタに、他の消去ブロックの有効データをコピーする。
このように、ＮＡＮＤ型フラッシュメモリに対する記録処理では、大きく分けてコマンド解釈処理、データ消去処理、データ記録処理の３つの処理が存在する。【０００７】
例えば、コマンド解釈処理に３ｍｓｅｃ、１セクタのデータ記録処理に２００μｓｅｃ、１消去ブロック（１６ｋＢ）の消去処理に２ｍｓｅｃかかるＮＡＮＤ型フラッシュメモリを想定する。先に示した記録手順に沿って、このＮＡＮＤ型フラッシュメモリに１消去ブロック（１６ｋＢ）分のデータを記録する場合、コマンド解釈に３ｍｓｅｃ、消去処理に２ｍｓｅｃ、データ記録処理に３２×２００μｓｅｃかかり、合計１１．４ｍｓｅｃの処理時間がかかる。同様に１セクタ（５１２Ｂ）分のデータを記録する場合、コマンド解釈に３ｍｓｅｃ、消去処理に２ｍｓｅｃ、データ記録処理に２００μｓｅｃ＋３１×２００μｓｅｃかかり、合計１１．４ｍｓｅｃの処理時間がかかる。【０００８】
すなわち、１６ｋＢ（１消去ブロック・３２セクタ）のデータを書き込んだ場合と５１２Ｂ（１セクタ）のデータを書き込んだ場合でほぼ同じ時間がかかることになる。１セクタあたりの書き込みに要する時間に直して比較すると、１消去ブロック分のデータを記録する時のほうが短くなっている。この例ではデータ転送時間等を考慮せず極端に性能差が出る場合について説明したが、実際のＮＡＮＤ型フラッシュメモリにおいても消去ブロック単位で書き込みを行った場合に書き込み時間が最短になる。【０００９】
ここではＮＡＮＤ型フラッシュメモリの特性について説明したが、ハードディスクや光ディスク等においても同様のことが起こる。不連続アドレスに小さな単位で記録した場合、磁気ヘッドや光学ヘッドを物理的に移動するシーク処理が頻発し、データの書き込み以外の時間が多くかかるようになり、記録速度が低下する。ＮＡＮＤ型フラッシュメモリと同様に、小さな単位で不連続な位置に記録するよりも、連続領域に一括して記録する方が高速に記録できるという特性を有している。【００１０】
一方、情報記録媒体に格納されたデータはファイルシステムにより管理されており、ユーザは格納されたデータをファイルとして容易に取り扱うことができる。従来より使用されているファイルシステムとして、ＦＡＴファイルシステムや、ＵＤＦファイルシステム（Ｕｎｉｖｅｒｓａｌ  Ｄｉｓｋ  Ｆｏｒｍａｔ）、ＮＴＦＳファイルシステム（Ｎｅｗ  Ｔｅｃｈｎｏｌｏｇｙ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）等が存在する。これらのファイルシステムでデータが管理されたメモリカードは、同一のファイルシステムを解釈する機器間でファイルの共有ができるため、機器間でデータを授受することが可能となる。【００１１】
ファイルシステムの一例として、ＦＡＴファイルシステムを説明する。図２にＦＡＴファイルシステムの構成を示す。ファイルシステムは、情報記録媒体内の論理アドレス空間上に構築されている。ＦＡＴファイルシステムでは、ＦＡＴファイルシステムにより管理する領域全体に対する管理情報を格納するファイルシステム管理情報領域３０１が、論理アドレス空間の先頭に存在する。これに続いてファイル内のデータ等を格納するユーザデータ領域３０２が存在する。ファイルシステム管理情報領域３０１は、マスターブートレコード・パーティションテーブル（ＭＢＲ・ＰＴ）３０３、パーティションブートセクタ（ＰＢＳ）３０４、領域管理情報であるＦＡＴ３０５、３０６、ルートディレクトリエントリ（ＲＤＥ）３０７から構成される。【００１２】
ＭＢＲ・ＰＴ３０３は、ファイルシステムで管理する論理アドレス空間上の領域全体を複数の領域に分割して、その１つ１つをパーティションとして管理するための情報を格納する部分である。ＰＢＳ３０４は、１つのパーティション内の管理情報を格納する部分である。ＦＡＴ３０５、３０６は、ファイルに含まれるデータの物理的な格納位置を示す部分である。さらにＲＤＥ３０７は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報を格納する部分である。また、ＦＡＴ３０５、３０６は、ファイルに含まれるデータの物理的な格納位置を示す重要な領域であることから、通常はファイルシステム管理情報領域３０１内に同じ情報を持つＦＡＴ３０５とＦＡＴ３０６が存在し、安全のために二重化されている。【００１３】
ユーザデータ領域３０２は全領域が“クラスタ”と呼ばれる管理単位に分割され管理されており、各クラスタはファイルに含まれるデータを格納している。クラスタの大きさは、一般的に５１２Ｂから３２ｋＢ程度の大きさである。ファイルサイズがクラスタサイズよりも大きい場合、ファイルに含まれるデータは複数のクラスタに跨って格納されており、各クラスタ間の繋がりは、ＦＡＴ３０５、３０６に格納されたリンク情報で管理されている。【００１４】
図３ＡはＦＡＴファイルシステムにおけるディレクトリエントリ４０１、図３ＢはＦＡＴ３０５、３０６、図３Ｃはユーザデータ領域３０２、のそれぞれ一例を示したものである。ＦＡＴファイルシステムは、ＲＤＥ３０７やユーザデータ領域３０２の一部に、ファイル名やファイルサイズ、ファイル属性等の情報を格納したディレクトリエントリ４０１を格納している。ディレクトリエントリ４０１には、ファイル名、属性、タイムスタンプ、開始クラスタ番号、ファイルサイズが含まれる。【００１５】
図３Ａの例に示すディレクトリエントリは、ファイル名がＦＩＬＥ１．ＴＸＴのファイルに関する情報を格納している。このファイルに含まれるデータの先頭部分はクラスタ番号１０のクラスタに格納されており、ファイルサイズは６４０００Ｂである。また図３Ａでは、ファイルサイズは６４０００Ｂである。ここでは、１クラスタの大きさを１６３８４Ｂと仮定しているので、ＦＩＬＥ１．ＴＸＴのデータは４クラスタに跨って格納されている。【００１６】
ＦＡＴ３０５、３０６には、ユーザデータ領域３０２に存在するクラスタ数と同数のＦＡＴエントリがそれぞれ存在する。管理単位であるエントリ情報としての各ＦＡＴエントリには各クラスタの使用状態、各クラスタ間のリンク情報が格納されている。【００１７】
図３Ｂの例では、クラスタ番号１０のＦＡＴエントリ値として“０ｘ０００Ｂ（１１）”が格納されており、クラスタ番号１０のクラスタが、クラスタ番号１１のクラスタにリンクしていることを示している。同様にクラスタ番号１１はＦＡＴエントリ値“０ｘ０００Ｃ（１２）”としてクラスタ番号１２のクラスタに、クラスタ番号１２はＦＡＴエントリ値“０ｘ０００Ｄ（１３）”としてクラスタ番号１３のクラスタにリンクしており、クラスタ番号１３はＦＡＴエントリ値に“０ｘＦＦＦＦ”が格納されている。【００１８】
ＦＡＴエントリ値における“０ｘＦＦＦＦ”はファイルの終端を示すため、ＦＩＬＥ１．ＴＸＴのデータは、クラスタ番号１０、１１、１２、１３の４クラスタに跨って格納されていることとなる。また、クラスタ番号１４のＦＡＴエントリ値として“０ｘ００００”が格納されている。ＦＡＴエントリ値における“０ｘ００００”は空きクラスタを意味するので、クラスタ番号１４には有効なデータは記録されていないことになる。【００１９】
ユーザデータ領域３０２にはファイルデータの実体が格納されており、図３Ｃの例では、クラスタ番号１０、１１、１２、１３の４クラスタにＦＩＬＥ１．ＴＸＴのデータの実体が記録されている。すなわち、ＦＡＴファイルシステムを用いてファイルデータを記録する場合には、ファイルデータをユーザデータ領域３０２に記録すると共に、ディレクトリエントリ４０１、ＦＡＴ３０５、３０６も同時に記録する必要がある。【００２０】
ここで、ＦＡＴファイルシステムで管理された情報記録媒体に、ポータブルムービー等を用いてリアルタイムで動画データを記録する場合を想定する。このようなリアルタイム性を必要とするデータを記録する場合、動画データの入力の速度とその記録の速度が異なるため、データの入力のほうが速い場合に、入力データを一時保存するバッファが溢れてデータの記録が停止することがある。これを防止するには、入力データの生成速度よりも高速で情報記録媒体に記録する必要がある。【００２１】
しかしフラッシュメモリやハードディスク、光ディスク等の情報記録媒体は、先に述べたようなデータの書込み時間についての特性を有することから、小さな単位での記録を続けると入力データの生成速度よりも情報記録媒体への記録速度が低くなる場合があり、リアルタイムデータの記録が停止する可能性があった。【００２２】
このような問題を解決する従来の方法として、データの読み書きに要求される速度に応じて、領域長の長い空き記録領域と領域長の短い空き記録領域を使い分ける方法が提案されている（特許文献１）。この方法では、リアルタイムデータ等の高速記録を必要とする時には領域長の長い空き記録領域へ記録を行うことで高速に記録し、比較的低速な記録でも許容できる静止画等のデータの場合は領域長の短い空き記録領域へ記録を行う。こうした使い分けによってリアルタイム性を確保しつつ、記録領域の有効利用を図っている。
【特許文献１】特開平９−２５１４０７号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】
まず図２と図４によって、リアルタイムデータの記録処理の手順を説明する。図４は、アクセス装置におけるリアルタイムデータ記録処理のフローを示したフローチャートである。本フローの処理は、主にアクセス装置内にあるファイルシステム制御部により実施されるが、実際にメモリカードに読み書きする際は、ファイルシステム制御部からアクセス制御部に命令を送付し、データの読み書きを実行する。【００２４】
リアルタイムデータの記録処理では、まず始めにディレクトリエントリを読み出す（Ｓ７０１）。ディレクトリエントリは、図２に示すファイルシステム管理情報３０１内のＲＤＥ３０７の領域、あるいはユーザデータ領域３０２の一部の領域に格納されている。次に読み出したディレクトリエントリを参照し、リアルタイムデータを記録するファイルの先頭データが格納されているクラスタ番号を確認する（Ｓ７０２）。【００２５】
次に、ＦＡＴ３０５、３０６を読み出し、Ｓ７０２で確認したクラスタ番号から始まるＦＡＴ上のリンクを辿り、書き込み位置のクラスタ番号を取得する（Ｓ７０３）。次に、リアルタイムデータの記録のために新しい空き記録領域を取得する必要があるか否かを確認する（Ｓ７０４）。ファイル終端へ追記する場合等、新しい空き領域を取得する必要があると判断した場合、ＦＡＴ上で空き記録領域を探し、１クラスタを割り当てる領域取得処理を行う（Ｓ７０５）。領域取得処理の詳細については後述する。【００２６】
Ｓ７０４で空き記録領域の取得が不要と判断した場合、あるいはＳ７０５で空き記録領域の取得を完了した場合、対象とするクラスタ内にリアルタイムデータを書き込む（Ｓ７０６）。次に既にメモリカード２に書き込み済みのリアルタイムデータの総量を確認し、記録対象の全データの書き込みが完了しているか判定する（Ｓ７０７）。完了していない場合、Ｓ７０３の処理に戻る。完了している場合、リアルタイムデータの記録に伴い変更されたクラスタ間のリンク関係を反映させるため、情報記録媒体上のＦＡＴ３０５、３０６を更新する（Ｓ７０８）。最後にファイルサイズやタイムスタンプ等を反映させるため、メモリカード２上のディレクトリエントリを更新する（Ｓ７０９）。【００２７】
次に、図４のＳ７０５で行なわれる領域取得処理を、図５を用いて説明する。まず始めに、現在参照している参照クラスタ番号（ＣＵＲＲＥＮＴ＿ＣＬＵ）の値にＦＡＴ上の探索開始クラスタ番号（ＳＴＡＲＴ＿ＣＬＵ）を代入する（Ｓ８０１）。探索開始クラスタ番号は、アクセス装置のファイルシステムの制御においても使用される変数である。具体的な値としては、メモリカードのマウント時にユーザデータ領域３０２の先頭を示すクラスタ番号“２”を探索開始クラスタ番号の値に設定する。他には前回最後にファイルアクセスしたクラスタ番号をアクセス装置内に保持しておき、マウント時に探索開始クラスタ番号に設定する等、様々な方法が考えられる。【００２８】
ここでは、マウント時に探索開始クラスタ番号の値として“２”を設定する場合を想定して説明する。この場合、Ｓ８０１の処理において、参照クラスタ番号の値にも同様に“２”が代入される。次にＦＡＴ３０５、３０６上に存在する参照クラスタ番号に対応するＦＡＴエントリ値を参照し、値が“０ｘ００００”であるか確認する（Ｓ８０２）。【００２９】
“０ｘ００００”であった場合、参照クラスタ番号のクラスタは空き記録領域であることから、領域取得に成功したことになる。そのため、探索開始クラスタ番号の値を参照クラスタ番号が示す番号に更新して、参照クラスタ番号が示すクラスタを空きクラスタとして使用し、処理を終了する（Ｓ８０３、Ｓ８０４）。【００３０】
ここでＳ８０３の探索開始クラスタ番号の更新は次のとおりである。参照クラスタ番号がユーザデータ領域３０２の最終クラスタ（ＬＡＳＴ＿ＣＬＵ）であった場合、探索開始クラスタ番号の値に“２”を代入する。それ以外の場合、探索開始クラスタ番号の値に参照クラスタ番号に１を加えた値を代入する。【００３１】
また、Ｓ８０４の処理では、参照クラスタ番号に対応するＦＡＴエントリ値を、使用中を示す“０ｘＦＦＦＦ”に設定する。これと共に、現在記録しようとしているリアルタイムデータの前に既に記録済みのデータがファイル内に存在し、この続きにリアルタイムデータを追記する場合には、その記録済みのデータが存在する位置のクラスタ番号に対応するＦＡＴエントリ値を、参照クラスタ番号を示す値に変更して設定する。【００３２】
また、Ｓ８０２の判定処理において参照クラスタ番号に対応するＦＡＴエントリ値が“０ｘ００００”ではなかった場合、下記の条件のいずれか一つでも条件が満たされているか確認する（Ｓ８０５）。
（１）参照クラスタ番号の値が探索開始クラスタ番号の値より１だけ小さい値である。
（２）参照クラスタ番号の値が最終クラスタであり、且つ探索開始クラスタ番号の値が“２”である。【００３３】
上記いずれかの条件を満たす場合、既に全ＦＡＴエントリ値の確認が完了しているため空き記録領域は存在せず、領域取得に失敗したことになる。従って一連の領域取得処理は終了し、リアルタイムデータ記録は中止となる（Ｓ８０６）。また、Ｓ８０５の処理においていずれの条件も満たさなかった場合は、参照クラスタ番号が、ユーザデータ領域３０２の最終クラスタと同じであるか判定する（Ｓ８０７）。同じであった場合、参照クラスタ番号の値に“２”を代入し、Ｓ８０２の処理に戻る（Ｓ８０８）。異なる場合、参照クラスタ番号の値に“１”を加算し、同様にＳ８０２の処理に戻る（Ｓ８０９）。【００３４】
このように従来のアクセス装置における領域取得処理では、ＦＡＴ上に存在する全ＦＡＴエントリ値を順次探索し、最初に見つかった空きクラスタをリアルタイムデータの記録に使用していた。【００３５】
以上に示した従来のリアルタイムデータの記録処理では、ディレクトリエントリ、ＦＡＴ３０５、３０６等の記録、更新であるＦＡＴ更新に要する時間を考慮した領域取得が行なわれていない。たとえ取得した空き記録領域の領域長が長くても、その配置が論理アドレス空間上で分散している場合、データの入力速度と記録速度の違いが生じリアルタイム性を維持できなくなる場合がある。【００３６】
この従来の記録処理が抱える問題について、以下に図面を用いて説明する。図６はＦＡＴファイルシステムにおけるデータ記録位置の一例を論理アドレス空間上で示す図である。ここでは、従来の方法における領域長の長い空き記録領域として、１６ｋＢのクラスタが１６クラスタ連続した合計２５６ｋＢの領域を１つの記録単位として管理する場合を想定する。尚、ファイルシステム管理情報領域３０１は、１６ｋＢのクラスタが３２クラスタ連続した５１２ｋＢの領域であり、ユーザデータ領域３０２は２５６ｋＢの記録単位が３９９８単位連続した１０２３４８８ｋＢの領域である。図６では、クラスタ番号４９９４から５０４１までの３つの記録単位が空き領域であり、これらの領域にファイルデータを記録する場合を示している。【００３７】
この場合におけるアクセス装置内のバッファ使用量と、情報記録媒体への記録タイミングを図７に示す。図７において、Ａはバッファの初期状態として既に使用されている量、Ｂはバッファに格納可能なデータ最大値を示す。すなわち、バッファ使用量が最大値Ｂの値を超えるとバッファ溢れが発生し、リアルタイムデータの記録が停止する。【００３８】
図６、図７の場合、クラスタ番号４９９４から５０４１までの領域に２５６ｋＢのデータを３つ記録した後、ＦＡＴ３０５、３０６、ディレクトリエントリ４０１を更新する。ここでクラスタ番号４９９４から５０４１までは連続した領域であることからＦＡＴ上のＦＡＴエントリ位置も隣接しており、ＦＡＴ３０５またはＦＡＴ３０６のうち、いずれか一方のＦＡＴにつき５１２Ｂの更新で、上記３つのデータ全てのリンク情報を更新する。この場合、合計７６８ｋＢのデータ記録に対し、ＦＡＴ３０５、３０６、ディレクトリエントリ４０１を各１回更新するだけで良いことから、バッファ使用量が最大値Ｂを超えることがなく、リアルタイム記録を継続することができる。【００３９】
一方、図８、図９の場合、２５６ｋＢ単位の３つの空き領域の配置が論理アドレス空間上で分散しており連続していないことから、２５６ｋＢのデータを１つの空き領域に記録する度に、ＦＡＴ３０５、３０６、ディレクトリエントリ４０１を更新する。ここではＦＡＴ３０５、３０６、ディレクトリエントリ４０１の更新が３回行なわれる。同じ７６８ｋＢのデータを記録する間にＦＡＴ３０５、３０６、ディレクトリエントリ４０１の更新が余分に２回行なわれている。この２回の間、データの記録は停止するので実質的なデータ記録速度は低下する。それにもかかわらず入力データの生成はほぼ一定の速度で行なわれることからバッファ溢れが発生し、リアルタイムデータの記録が停止することがある。【００４０】
この問題を解決する方法として、記録単位を２５６ｋＢから７６８ｋＢに変更することが考えられる。しかしメモリカードやハードディスク等、ファイルの作成、削除を特に頻繁に繰り返す情報記録媒体では空き記録領域が分散し易く、より大きな連続記録領域を確保することは困難となるので、有効な方法であるとはいえない。【００４１】
本発明では上記問題点に鑑み、ファイルシステムで管理された情報記録媒体に対し、空き記録領域の配置状態によらずＦＡＴ等の更新回数を抑制し、記録時のリアルタイム性を保証する情報記録媒体アクセス装置、及びデータ記録方法を提供することを目的とする。
【課題を解決するための手段】
【００４２】
この課題を解決するために、本発明の情報記録媒体アクセス装置は、格納データをファイルシステムにより管理する情報記録媒体にアクセスする情報記録媒体アクセス装置において、ファイルシステムが管理する領域管理情報を固定長ブロック単位に分割して、各固定長ブロック内に含まれる空き領域長に関する情報を格納する領域管理ブロック情報を情報記録媒体アクセス装置内のメモリ上に生成し、ファイルデータ記録時の領域割り当てに前記領域管理ブロック情報に格納された情報を利用する領域管理ブロック制御部を具備するものである。【００４３】
この課題を解決するために、本発明の情報記録媒体アクセス装置は、管理単位であるクラスタが複数集まって構成されるデータ記録領域と、前記各クラスタに対する１つの管理情報単位であるエントリ情報を複数保持する領域管理情報とを備える不揮発性メモリを含む情報記録媒体にアクセスする情報記録媒体アクセス装置であって、前記領域管理情報は、前記データ記録領域において一定数の物理的に連続したクラスタが得られるように組み合わされた一定数の前記エントリ情報から成る領域管理ブロックを複数有するものであり、前記情報記録媒体から前記領域管理情報を読み出し、前記領域管理ブロックごとに空きクラスタ数を算出し、前記各領域管理ブロックの前記空きクラスタ数を第１の閾値と比較して、第１の閾値以上のときに当該領域管理ブロックをデータ書き込みが可能な領域とする前記領域管理ブロック制御部と、前記各領域管理ブロックと当該領域管理ブロック内の空き領域長に関する領域管理ブロック情報を保持するメモリと、を具備するものである。【００４４】
ここで前記領域管理ブロック制御部は、前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納するようにしてもよい。【００４５】
ここで前記第１の閾値は、連続するｔ回のファイルシステムの管理情報更新に挟まれる（ｔ−１）回のデータ記録期間内で最低限記録しなければならないファイルデータが記録できるクラスタ数としてもよい。【００４６】
ここで前記領域管理ブロック制御部は、前記領域管理ブロック毎に、前記データ記録領域において２つ以上の物理的に連続したクラスタが得られるように前記エントリ情報を２つ以上組み合わせて１つの組として管理し、各組のエントリ情報で示されるクラスタが全て空き領域となっている組に含まれるクラスタ数を前記第１の閾値と比較し、前記空きクラスタ数が前記第１の閾値以上である場合は、該当する領域管理ブロックが管理する記録領域をデータ記録可能な領域としてもよい。【００４７】
ここで前記領域管理ブロック制御部は、前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納するようにしてもよい。【００４８】
ここで前記領域管理ブロック制御部は、前記領域管理ブロック毎に、前記エントリ情報を２つ以上組み合わせて１つのスロットとして管理し、各スロットに含まれるクラスタの内、空きクラスタ数が第２の閾値以上の場合に当該スロットを空きスロットと判定し、前記領域管理ブロック内のすべての空きスロットに含まれる空きクラスタ数を前記第１の閾値と比較し、前記空きクラスタ数が前記第１の閾値以上である場合は、該当する領域管理ブロックが管理する記録領域をデータ記録可能な領域としてもよい。【００４９】
ここで前記領域管理ブロック制御部は、前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納するようにしてもよい。【００５０】
ここで前記領域管理ブロック制御部は、前記メモリに保持された前記領域管理ブロック情報を参照し、前記空き領域長が、一定値以上である前記領域管理ブロックに含まれる空き領域をファイルデータ記録時に割り当てるようにしてもよい。【００５１】
この課題を解決するために、本発明のデータ記録方法は、ファイルシステムが管理する領域管理情報を固定長ブロック単位に分割して、各固定長ブロック内に含まれる空き領域長に関する情報を格納する領域管理ブロック情報を情報記録媒体アクセス装置内のメモリ上に生成し、ファイルデータ記録時の領域割り当てに前記領域管理ブロック情報に格納された情報を利用するものである。【００５２】
この課題を解決するために、本発明のデータ記録方法は、管理単位であるクラスタが複数集まって構成されるデータ記録領域と、前記各クラスタに対する１つの管理情報単位であるエントリ情報を複数保持する領域管理情報とを備える不揮発性メモリを含む情報記録媒体にアクセスするデータ記録方法であって、前記領域管理情報は、前記データ記録領域において一定数の物理的に連続したクラスタが得られるように組み合わされた一定数の前記エントリ情報から成る領域管理ブロックを複数有するものであり、前記情報記録媒体から前記領域管理情報を読み出し、前記領域管理ブロックごとに空きクラスタ数を算出し、前記各領域管理ブロックの前記空きクラスタ数を第１の閾値と比較して、第１の閾値以上のときに当該領域管理ブロックをデータ書き込みが可能な領域とし、前記各領域管理ブロックと当該領域管理ブロック内の空き領域長に関する領域管理ブロック情報をメモリに保持するものである。【００５３】
ここで前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納するようにしてもよい。【００５４】
ここで前記第１の閾値は、連続するｔ回のファイルシステムの管理情報更新に挟まれる（ｔ−１）回のデータ記録期間内で最低限記録しなければならないファイルデータが記録できるクラスタ数としてもよい。【００５５】
ここで前記領域管理ブロック毎に、前記データ記録領域において２つ以上の物理的に連続したクラスタが得られるように前記エントリ情報を２つ以上組み合わせて１つの組として管理し、各組のエントリ情報で示されるクラスタが全て空き領域となっている組に含まれるクラスタ数を前記第１の閾値と比較し、前記空きクラスタ数が前記第１の閾値以上である場合は、該当する領域管理ブロックが管理する記録領域をデータ記録可能な領域としてもよい。【００５６】
ここで前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納するようにしてもよい。【００５７】
ここで前記領域管理ブロック毎に、前記エントリ情報を２つ以上組み合わせて１つのスロットとして管理し、各スロットに含まれるクラスタの内、空きクラスタ数が第２の閾値以上の場合に当該スロットを空きスロットと判定し、前記領域管理ブロック内のすべての空きスロットに含まれる空きクラスタ数を前記第１の閾値と比較し、前記空きクラスタ数が前記第１の閾値以上である場合は、該当する領域管理ブロックが管理する記録領域をデータ記録可能な領域としてもよい。【００５８】
ここで前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納するようにしてもよい。【００５９】
ここで前記メモリに保持された前記領域管理ブロック情報を参照し、前記空き領域長が、一定値以上である前記領域管理ブロックに含まれる空き領域をファイルデータ記録時に割り当てるようにしてもよい。
【発明の効果】
【００６０】
本発明によれば、ファイルシステムで管理された情報記録媒体に対してリアルタイムデータを記録する場合、空き記録領域の配置状態によらず記録時のリアルタイム性を保証することが可能となる。
【図面の簡単な説明】
【００６１】
【図１】図１はフラッシュメモリにおける消去ブロックとセクタの関係の一例を示した説明図である。
【図２】図２はＦＡＴファイルシステムの構成を示した説明図である。
【図３Ａ】図３ＡはＦＡＴファイルシステムにおけるディレクトリエントリの一例を示した説明図である。
【図３Ｂ】図３ＢはＦＡＴファイルシステムにおけるＦＡＴの一例を示した説明図である。
【図３Ｃ】図３ＣはＦＡＴファイルシステムにおけるユーザデータ領域の一例を示した説明図である。
【図４】図４は従来のアクセス装置におけるリアルタイムデータの記録処理を示したフローチャートである。
【図５】図５は従来のアクセス装置における空き領域取得処理を示したフローチャートである。
【図６】図６はＦＡＴファイルシステムにおけるデータ記録位置の一例を示した説明図である。
【図７】図７はアクセス装置内のバッファ使用量と情報記録媒体への記録タイミングの一例を示した説明図である。
【図８】図８はＦＡＴファイルシステムにおけるデータ記録位置の一例を示した説明図である。
【図９】図９はアクセス装置内のバッファ使用量と情報記録媒体への記録タイミングの一例を示した説明図である。
【図１０】図１０は本発明の実施の形態における情報記録媒体アクセス装置とメモリカードを示した説明図である。
【図１１】図１１は本発明の実施の形態のアクセス装置におけるメモリカード挿入時の一連の処理フローを示したフローチャートである。
【図１２】図１２は本発明の実施の形態における領域管理ブロック制御部でＦＡＴを管理する際の管理単位の一例を示した説明図である。
【図１３】図１３は本発明の実施の形態における領域管理ブロック情報の生成処理を示したフローチャートである。
【図１４】図１４は本発明の実施の形態における領域管理ブロック情報の一例を示した説明図である。
【図１５】図１５は本発明の実施の形態のアクセス装置におけるリアルタイムデータの記録処理を示したフローチャートである。
【図１６Ａ】図１６Ａは本発明の実施の形態のアクセス装置における空き領域取得処理を示したフローチャートである。
【図１６Ｂ】図１６Ｂは本発明の実施の形態のアクセス装置における空き領域取得処理を示したフローチャートである。
【図１７】図１７は本発明の実施の形態における領域管理ブロック制御部でＦＡＴを管理する際のＦＡＴ状態の一例を示した説明図である。
【図１８】図１８は本発明の実施の形態におけるアクセス装置内のバッファ使用量と情報記録媒体への記録タイミングの一例を示した説明図である。
【図１９Ａ】図１９Ａは本発明の実施の形態における領域管理ブロック情報の生成処理を示したフローチャートである。
【図１９Ｂ】図１９Ｂは本発明の実施の形態における領域管理ブロック情報の生成処理を示したフローチャートである。
【図２０】図２０は本発明の実施の形態における探索済みブロック再判定の処理を示したフローチャートである。
【図２１】図２１は本発明の実施の形態の領域管理ブロック情報の生成処理過程での各値の関係を示した図である。
【図２２Ａ】図２２Ａは本発明の実施の形態における複数のクラスタで構成される記録単位とスロットを示す図である。
【図２２Ｂ】図２２Ｂは本発明の実施の形態における複数のクラスタで構成される記録単位とスロットを示す図である。
【符号の説明】
【００６２】
１  アクセス装置
２  メモリカード
１１，２２  ＣＰＵ
１２，２３  ＲＡＭ
１３  コネクタ
１４，２４  ＲＯＭ
１５  アプリケーション制御部
１６  ファイルシステム制御部
１７  アクセス制御部
１８  領域管理ブロック制御部
１９  領域管理ブロック情報
２１  ホストＩ／Ｆ部
２５  不揮発性メモリ
３０１  ファイルシステム管理情報領域
３０２  ユーザデータ領域
３０３  マスターブートレコード・パーティションテーブル
３０４  パーティションブートセクタ
３０５，３０６  ＦＡＴ
３０７  ルートディレクトリエントリ
４０１  ディレクトリエントリ
【発明を実施するための最良の形態】
【００６３】
以下、本発明の実施の形態について、図面を参照しつつ説明する。本実施の形態では、情報記録媒体としてＦＡＴファイルシステムで管理されているメモリカードを用いる場合を例として説明する。図１０は本実施の形態における情報記録媒体アクセス装置１（以下、アクセス装置１とする）と情報記録媒体であるメモリカード２の構成図である。アクセス装置１は、ＣＰＵ１１、ＲＡＭ１２、コネクタ１３、ＲＯＭ１４を含んでいる。【００６４】
コネクタ１３はアクセス装置１とメモリカード２との接続部であり、このコネクタ１３を経由して読出し・書込み等の各種コマンドやデータが送受信される。ＲＯＭ１４はアクセス装置１を制御するプログラムを格納しており、このプログラムはＲＡＭ１２を一時記憶領域として使用し、ＣＰＵ１１上で動作する。【００６５】
ＲＯＭ１４は、図１０には記載していないタッチパネル・キーボード等の入力装置の制御、ＬＣＤ・スピーカ等の出力装置の制御、メモリカード２に格納されたＡＶデータの再生制御、メモリカード２へのＡＶデータの記録制御等の、アクセス装置１がユーザに提供するサービス全般の制御を行うアプリケーション制御部１５を含んでいる。またＲＯＭ１４は、メモリカード２の不揮発性メモリ２５上に構築されたファイルシステムの制御を行うファイルシステム制御部１６と、メモリカード２に対するコマンド送受信を行うアクセス制御部１７も含んでいる。【００６６】
ファイルシステム制御部１６は更に、固定長のブロックを単位としてＦＡＴ１、ＦＡＴ２を管理し、空き記録領域の制御を行う領域管理ブロック制御部１８を含んでいる。領域管理ブロック制御部１８はＦＡＴ１、ＦＡＴ２を固定長に分割してできる各ＦＡＴブロックの空き記録領域長や有効性を示す情報を格納する領域管理ブロック情報１９をメモリであるＲＡＭ１２上に生成し、空き領域の制御にこれを使用する。【００６７】
また、図１０のメモリカード２は、ホストＩ／Ｆ２１、ＣＰＵ２２、ＲＡＭ２３、ＲＯＭ２４、不揮発性メモリ２５を含んでいる。ホストＩ／Ｆ２１は、アクセス装置１と各種コマンドやデータを送受信するためのインターフェースである。【００６８】
ＲＯＭ２４にはメモリカード２を制御するプログラムが格納されている。このプログラムはＲＡＭ２３を一時記憶領域として使用し、ＣＰＵ２２上で動作する。また不揮発性メモリ２５は、アクセス装置１から入力されたユーザデータを格納し、保持するメモリであり、フラッシュメモリ等の半導体メモリが記録素子として使用される。また、この不揮発性メモリ２５の記録領域には、ファイルシステム管理情報であるマスターブートレコード・パーティションテーブル（ＭＢＲ・ＰＴ）、パーティションブートセクタ（ＰＢＳ）、ＦＡＴ１、ＦＡＴ２、ルートディレクトリエントリ（ＲＤＥ）によってファイルシステムが構築されている。アクセス装置１はこのファイルシステムに則ったファイル単位でユーザデータを管理している。【００６９】
次に、本実施の形態のアクセス装置１におけるメモリカード２挿入時の処理について、図１１から図１４を用いて説明する。さらに、本実施の形態の特徴である、領域管理ブロック制御部１８と、ＲＡＭ１２上に生成される領域管理ブロック情報１９について詳述する。【００７０】
図１１は本実施の形態のアクセス装置１におけるメモリカード２挿入時の一連の処理フローを示している。まず、アクセス装置１のコネクタ１３にメモリカード２が挿入されると、コネクタ１３に接続された信号線からＣＰＵ１１にメモリカード２の挿入を通知する信号が送信され、メモリカードの挿入が検出される（Ｓ１０１）。【００７１】
ＣＰＵ１１がメモリカード２の挿入通知信号を受信すると、アクセス制御部１７を起動し、アクセス制御部１７のプログラムによってメモリカード２の初期化処理を実施する（Ｓ１０２）。この初期化処理では、アクセス装置１がメモリカード２に対する電力やクロックの供給を開始して、初期化コマンドをメモリカード２に入力する。初期化コマンドを受信したメモリカード２は、内部の不揮発性メモリ２５へ電力供給を開始する。その後、記録データのエラーチェック、論理アドレス・物理アドレス変換表の生成等、アクセス装置１からメモリカード２の不揮発性メモリ２５にアクセスするための準備を行う。【００７２】
初期化処理が完了すると、メモリカード２はアクセス装置１に初期化完了を通知する。次にアクセス装置１では、ＣＰＵ１１がファイルシステム制御部１６を起動し、アクセス制御部１７を経由して、メモリカード２の不揮発性メモリ２５のファイルシステム管理情報領域からファイルシステム管理情報を読み出す（Ｓ１０３）。ファイルシステム制御部１６は読み出したファイルシステム管理情報の内容を確認し、格納されている情報にエラーがないか、ファイルシステムの制御が行えるかを確認する（Ｓ１０４）。【００７３】
クラスタサイズが０に設定されている場合や、本来格納されているはずの識別子が格納されていない場合等、ファイルシステム管理情報にエラーがあった場合は、アクセス装置は、メモリカードが挿入されていないアンマウント状態であるとして後に続くマウントのための処理を行なわず、一連の初期化処理を終了する（Ｓ１０５、Ｓ１０６）。メモリカード２のファイルシステムに何らかの問題が生じている場合にアンマウント状態となる。この場合、再フォーマットするなどして正しいファイルシステムを構築しない限り、アクセス装置１はメモリカード２に対するマウント処理を行わず、ファイルアクセス処理は実現しない。【００７４】
逆に、ファイルシステム管理情報にエラーがなかった場合は、ファイルシステム制御部１６はメモリカード２のマウント処理を実施する（Ｓ１０７）。マウント処理では、メモリカード２のファイルシステムへのアクセスに必要な情報（各種管理情報が記録されているアドレス、クラスタサイズ等）をファイルシステム制御部１６がファイルシステム管理情報から抽出し、ＲＡＭ１２上に保持する。【００７５】
次に、ＣＰＵ１１は領域管理ブロック制御部１８を起動し、領域管理ブロック情報１９を生成する（Ｓ１０８）。Ｓ１０８の詳細な処理内容は後述する。最後に領域管理ブロック情報１９の生成が完了すると、アクセス装置１は、メモリカードがマウント状態であることを示すフラグをＲＡＭ１２上に保持し、一連の初期化処理を終了する（Ｓ１０９）。マウント状態に設定された場合、Ｓ１０７のマウント処理においてＲＡＭ１２上に保持した情報を用いて、メモリカード２上に構築されたファイルシステムにアクセスすることが可能となる。【００７６】
Ｓ１０８の領域管理ブロック情報１９の生成処理について説明する。領域管理ブロック情報１９では、ＦＡＴ１、ＦＡＴ２を５１２Ｂ等の固定長のブロック単位に分けたＦＡＴブロックを用いる。各ＦＡＴブロックが管理するユーザデータ領域中に存在する空き記録領域長の情報と、その空き記録領域長が閾値以上であるか否かを示すフラグとを生成して、これらを領域管理ブロック情報１９としてＲＡＭ１２上に保持する。ここまでが領域管理ブロック情報１９の生成処理の過程である。【００７７】
まず、ＦＡＴ１、ＦＡＴ２の管理方法から説明する。図１２は、ＦＡＴ１、ＦＡＴ２を領域管理ブロック制御部１８で管理する際の管理単位の一例を示した図である。ここでは、ファイルシステムとしてＦＡＴエントリを１６ビット単位で管理するＦＡＴ１６ファイルシステムを想定している。また、各パラメータは、クラスタのサイズを１６ｋＢ、ＦＡＴブロックのサイズを５１２Ｂ、ＦＡＴのサイズをＮ×５１２Ｂと想定している。つまりＦＡＴブロックは、ＦＡＴを固定長のブロックに分けて作られるものであり、ＦＡＴはＮ個のＦＡＴブロックに分割されている。【００７８】
領域管理ブロック制御部１８は、ＦＡＴ１、ＦＡＴ２をテーブルの先頭から順にＦＡＴブロックサイズの単位で区切り、空き記録領域長の情報を管理する。図１２の例では、ＦＡＴブロック１つ分に含まれるＦＡＴエントリ値はクラスタ２５６個分についての情報を表し、これは４ＭＢ分のユーザデータ領域の領域管理情報である。【００７９】
ＦＡＴブロックによってユーザデータ領域を４ＭＢの単位で区切ることができる。しかし、ユーザデータ領域の大きさは、４ＭＢの倍数長とは限らないため、ＦＡＴブロックＮの終端付近のＦＡＴエントリは実際には使用せず、それに対応するユーザデータ領域も使用しない。更に、ＦＡＴ１、ＦＡＴ２の先頭に存在する２つのＦＡＴエントリはＦＡＴを識別するための識別子が格納されており、ＦＡＴブロック１が管理する領域は、実際には（４ＭＢ−１６ｋＢ×２）分のユーザデータ領域となる。【００８０】
次にＦＡＴブロックを用いたユーザデータ領域の管理方法を基に、図１３を用いて領域管理ブロック情報１９の生成処理フローを説明する。領域管理ブロック情報１９の生成処理では、まず現在参照しているＦＡＴブロックの番号を示すＣＯＵＮＴＥＲの値を“１”に設定する（Ｓ２０１）。次に、ＣＯＵＮＴＥＲが示す番号に対応するＦＡＴブロック１内を参照し、ＦＡＴブロック１内の空きクラスタ数（ＥＭＰＴＹ＿ＣＬＵ＿ＮＵＭ）を算出する（Ｓ２０２）。【００８１】
具体的には、ＣＯＵＮＴＥＲで指定されたＦＡＴブロック内の２バイト単位の値を判定する。ＦＡＴエントリの値が“０ｘ００００”であれば対応するクラスタが空きであると判定し、１つの空きクラスタとして数える。この処理をＣＯＵＮＴＥＲで指定されたＦＡＴブロック内に存在する全てのＦＡＴエントリに対して繰り返し、ＦＡＴブロック内に存在する空きクラスタの総数を算出する。【００８２】
この際、ＣＯＵＮＴＥＲが“１”の場合には、先頭の２つのＦＡＴエントリを参照せず、残りの部分に含まれる全ＦＡＴエントリに対して上記２バイト単位での判定を行い、空きクラスタ数を算出する。また、ＣＯＵＮＴＥＲが“Ｎ”の場合には、ＦＡＴブロックＮ内で実際には使用されない終端付近のＦＡＴエントリを除外した残りの有効なＦＡＴエントリに対し上記判定を行い、空きクラスタ数を算出する。【００８３】
次に、空きクラスタ数が決定すれば、その値が閾値以上であるかの判定をする（Ｓ２０３）。閾値の詳細については後述するが、ここでは一例として閾値が“１００”に設定されている場合を説明する。空きクラスタ数が“１００”以上であった場合は閾値以上の値であるので、ＦＡＴブロックの有効性を示すフラグ（ＦＬＡＧ）を、“有効（ＶＡＬＩＤ）”に設定する（Ｓ２０４）。また、空きクラスタ数が“１００”未満であった場合は閾値未満の値であるので、フラグを“無効（ＩＮＶＡＬＩＤ）”に設定する（Ｓ２０５）。【００８４】
次に、領域管理ブロック情報１９内にはＣＯＵＮＴＥＲ番目のＦＡＴブロックの情報として、算出した空きクラスタ数と、フラグの値を格納する（Ｓ２０６）。この後、ＣＯＵＮＴＥＲが“Ｎ”である場合、全てのＦＡＴブロックに対する処理が完了したことになるので、Ｓ２０２に戻らないで処理を終了する（Ｓ２０７）。ＣＯＵＮＴＥＲが“Ｎ”でない場合、ＣＯＵＮＴＥＲに“１”を加算し、Ｓ２０２の処理に戻る（Ｓ２０８）。【００８５】
このようにして生成された、領域管理ブロック情報１９の一例を図１４に示す。領域管理ブロック情報１９は、ＦＡＴブロック数（この例では“Ｎ”）の情報から構成され、各ＦＡＴブロックに対し、ＦＡＴブロックに含まれる空きクラスタ数と、フラグが格納されている。【００８６】
図１４の例ではＦＡＴブロックの有効性を判定する閾値として“１００”を想定しており、ＦＡＴブロック３、ＦＡＴブロック４の空きクラスタ数が、それぞれ“１００”未満であることから、“ＩＮＶＡＬＩＤ”のフラグが格納されている。【００８７】
図１５は、アクセス装置におけるリアルタイムデータの記録処理を示したフローチャートである。上記のように作られた領域管理ブロック情報は、図１５に示すリアルタイムデータの記録時における空き領域取得処理に使用される。次に図１５、図１６Ａ、図１６Ｂを用いて本実施の形態における空き領域取得処理について説明する。【００８８】
図１６Ａ，図１６Ｂは、図１５のＳ３０５で行なわれる空き領域取得処理のフローチャートである。この空き領域取得処理は、領域管理ブロック情報を基に空き領域を割り当てる処理である。ＦＡＴ１、ＦＡＴ２は、Ｎ個のＦＡＴブロックに分割され管理されていると想定する。図１６Ａ，図１６Ｂの空き領域取得処理では、まず始めにＦＡＴ上の探索開始クラスタ番号に対応するＦＡＴエントリを含む探索開始ＦＡＴブロック番号（ＳＴＡＲＴ＿ＦＡＴ＿ＢＬ＿ＮＯ）を算出する（Ｓ４０１）。初期状態の探索開始クラスタ番号は先頭のクラスタ番号を示す２となっている。【００８９】
ＦＡＴ１６ファイルシステムを使用し、ＦＡＴブロックサイズが５１２Ｂの場合、探索開始ＦＡＴブロック番号の算出式は下記のようになる。
探索開始ＦＡＴブロック番号＝Ｉｐ（探索開始クラスタ番号×２／５１２）＋１
ここでＩｐ（Ｘ）は、Ｘの整数部分を意味する。例えば探索開始クラスタ番号が“３００”であった場合、探索開始ＦＡＴブロック番号は“２”となる。【００９０】
次に、現在参照している参照クラスタ番号の値に探索開始クラスタ番号を代入すると共に、現在参照している参照ＦＡＴブロック番号（ＣＵＲＲＥＮＴ＿ＦＡＴ＿ＢＬ＿ＮＯ）に探索開始ＦＡＴブロック番号を代入する（Ｓ４０２）。【００９１】
次に領域管理ブロック情報１９を参照し、参照ＦＡＴブロック番号に対応するＦＡＴブロックのフラグが“ＶＡＬＩＤ”であるか確認する（Ｓ４０３）。“ＶＡＬＩＤ”であった場合、参照ＦＡＴブロック番号に対応するＦＡＴブロック内で空きクラスタの取得を試みる（Ｓ４０４）。【００９２】
具体的には、現在参照しているＦＡＴブロック内において、参照クラスタ番号に対応するＦＡＴエントリから順に値を確認し、“０ｘ００００”であるＦＡＴエントリを探索する。この際、１つのＦＡＴエントリを確認する度に参照クラスタ番号の値に“１”を加算し、現在参照しているクラスタ番号を更新する。【００９３】
現在参照しているＦＡＴブロックの終端まで探索が完了するか、あるいは参照クラスタ番号の値がユーザデータ領域３０２の終端のクラスタ番号を超えるまでの間に“０ｘ００００”であるＦＡＴエントリが見つかった場合、領域取得に成功したことになる（Ｓ４０５）。続いて、取得した空きクラスタのクラスタ番号を探索開始クラスタ番号に代入して、ＳＴＡＲＴ＿ＣＬＵを更新する（Ｓ４０６）。取得した空きクラスタをリアルタイムデータ記録に使用し（Ｓ４０７）、処理を終了する。この処理では、具体的にはＳ８０３、Ｓ８０４と同様の処理が実施される。【００９４】
また、“０ｘ００００”であるＦＡＴエントリが見つからなかった場合、あるいは、Ｓ４０３の判定においてフラグが“ＩＮＶＡＬＩＤ”であった場合は、下記の条件のいずれか一つでも条件が満たされているか確認する（Ｓ４０８）。
（１）参照ＦＡＴブロック番号が探索開始ＦＡＴブロック番号より１だけ小さい値である。
（２）参照ＦＡＴブロック番号の値が“Ｎ”であり、探索開始ＦＡＴブロック番号が“１”である。【００９５】
いずれかの条件を満たす場合、既に全ＦＡＴブロックの領域検索が完了したことを示すのでリアルタイムデータの記録に使える空き記録領域は存在しない。即ち空き記録領域の取得に失敗したことになるので、一連の記録領域の取得処理は終了し、リアルタイムデータ記録は中止となる（Ｓ４０９）。【００９６】
また、Ｓ４０８の処理においていずれの条件も満たさなかった場合は、参照ＦＡＴブロック番号の値が“Ｎ”であるかを確認する（Ｓ４１０）。“Ｎ”であった場合は、参照ＦＡＴブロック番号の値に“１”を代入し、Ｓ４０３の処理に戻る（Ｓ４１１）。“Ｎ”でなかった場合は、参照ＦＡＴブロック番号の値に“１”を加算し、Ｓ４０３の処理に戻る（Ｓ４１２）。このように本実施の形態のアクセス装置１における領域取得処理では、フラグが“ＶＡＬＩＤ”であるＦＡＴブロックのみを空き領域検索の対象とする。【００９７】
図１６Ａ，図１６Ｂの領域取得処理を実施した場合におけるリアルタイムデータ記録時のＦＡＴ更新のタイミングとバッファ使用量の変化を図１７、図１８を用いて説明する。図１７は、領域管理ブロック情報が図１４の場合における、ＦＡＴ１、ＦＡＴ２の状態を示した図である。斜線で示されているＦＡＴブロック３とＦＡＴブロック４は、空きクラスタの数が閾値の１００未満であるのでリアルタイムデータの記録には用いられない。このＦＡＴの状態において探索開始クラスタ番号の値が“２”の場合にリアルタイムデータを記録すると、アクセス装置１内のバッファ使用量とメモリカード２への記録タイミングは図１８のようになる。【００９８】
リアルタイムデータ記録開始直後の状態では、まずＦＡＴブロック１に含まれる空き領域に、１５４クラスタのリアルタイムデータが記録される。次にＦＡＴ１、ＦＡＴ２、ディレクトリエントリの記録を行なう。この処理をまとめてＦＡＴ更新という。このＦＡＴ１、ＦＡＴ２の記録では、更新部分はＦＡＴブロック１の中に限られるため、更新量は１ＦＡＴブロック分のみである。【００９９】
次にＦＡＴブロック２に含まれる空き領域に２３４クラスタのリアルタイムデータが記録される。その後、同様にＦＡＴ更新、即ちＦＡＴ１、ＦＡＴ２、ディレクトリエントリが記録されるが、この場合も更新部分はＦＡＴブロック１つ分のみとなる。【０１００】
次にＦＡＴブロック３、ＦＡＴブロック４は、図１４に示す領域管理ブロック情報１９内のフラグが“ＩＮＶＡＬＩＤ”となっているため、リアルタイムデータの記録には使用されない。従って次のＦＡＴブロック５に含まれる１７８クラスタの空き領域にリアルタイムデータが記録される。その後も同様にＦＡＴ更新、即ちＦＡＴ１、ＦＡＴ２、ディレクトリエントリが記録されるが、この場合も更新部分はＦＡＴブロック１つ分のみとなる。【０１０１】
このように、領域管理ブロック情報１９内のフラグが“ＶＡＬＩＤ”となっているＦＡＴブロックに含まれる空き記録領域にのみリアルタイムデータを記録することで、ＦＡＴ更新の量は常にＦＡＴブロック１つ分のみとなり、連続する２つのＦＡＴ更新とＦＡＴ更新の間に記録されるリアルタイムデータ量は閾値以上のクラスタ数となることが保証される。そのため、ＦＡＴ更新が頻繁に発生することによるバッファ溢れを防止し、リアルタイムデータ記録時のリアルタイム性を保証することが可能となる。【０１０２】
以上のように、閾値の設定によってデータ記録の速度を一定以上に確保することができる。この閾値の決定方法について以下に説明する。ここで説明する閾値は第１の閾値（ＢＯＲＤＥＲ）と呼び、連続するｔ回のＦＡＴ更新に挟まれた（ｔ−１）回のデータ記録の期間内に最低限記録が必要なリアルタイムデータの量を示すものである。これは、各ＦＡＴブロックに含まれる空き領域をリアルタイムデータ記録に使用するか否かを決定するのに用いられる。まず、連続する２回のＦＡＴ更新に挟まれるデータ記録期間内に、最低限記録が必要なリアルタイムデータの量からＢＯＲＤＥＲを決定する場合を説明する。このｔ＝２におけるＢＯＲＤＥＲを特に、ＢＯＲＤＥＲ−１とする。【０１０３】
ＢＯＲＤＥＲ−１の決定方法を説明するにあたり、ＦＡＴ１、ＦＡＴ２、ディレクトリエントリの合計３つの書き込みを１セットのＦＡＴ更新と定義し、１セットのＦＡＴ更新の処理時間（Ｔ＿ＦＡＴ、以下Ｔｆとする）を１００ｍｓｅｃと想定する。また、アクセス装置１が記録するリアルタイムデータのビットレート（ＴＡＲＧＥＴ＿ＲＡＴＥ、以下Ｔｒとする）を３ＭＢ／ｓ、メモリカード２にリアルタイムデータを記録するレート（ＲＥＣ＿ＲＡＴＥ、以下Ｒｒとする）を４ＭＢ／ｓと想定する。【０１０４】
この場合、リアルタイムデータ１秒分の記録に必要な時間（Ｔ＿ＤＡＴＡ、以下Ｔｄとする）は、次の式で算出される。
Ｔｄ＝（Ｔｒ／Ｒｒ）×１０００
すなわち、Ｔｄ＝７５０ｍｓｅｃと算出される。また、１秒当たりに実施可能なＦＡＴ更新回数（Ｆｃ）は次の式で算出される。
Ｆｃ＝（１０００−Ｔｄ）／Ｔｆ【０１０５】
すなわち、Ｆｃ＝２．５回と算出される。そのため、連続する２セットのＦＡＴ更新に挟まれるデータ記録期間内で最低限記録が必要なクラスタ数は次の式で算出される。
ＢＯＲＤＥＲ−１＝Ｒｒ×Ｔｄ／１０００／Ｆｃ／Ｃｓ
Ｃｓはクラスタサイズを意味しており、クラスタサイズが１６ｋＢの場合、ＢＯＲＤＥＲ−１＝７６．８と算出される。すなわち、ＢＯＲＤＥＲ−１として“７７”を設定しＢＯＲＤＥＲ−１以上の数のクラスタを用いれば、この例ではリアルタイムデータ記録時のリアルタイム性が保証できることになる。【０１０６】
続いて、本実施の形態の変形例について以下に示す。上記の方法でＢＯＲＤＥＲ−１未満のＦＡＴブロックは“ＩＮＶＡＬＩＤ”として扱われ、当該ＦＡＴブロックが管理する記録領域をリアルタイムデータの記録に用いることはない。しかしそのＦＡＴブロックの直前または直後に、大きな空き記録領域を管理するＦＡＴブロックを組み合わせることができれば、上記の例で“ＩＮＶＡＬＩＤ”となっているＦＡＴブロックでも用いることができる場合がある。この場合の閾値の決定について次に説明する。【０１０７】
ここでは、連続する３回のＦＡＴ更新に挟まれる２つのデータ記録期間内に、最低限記録が必要なリアルタイムデータの量からＢＯＲＤＥＲを決定する場合を説明する。このＢＯＲＤＥＲは、先に述べたＢＯＲＤＥＲの定義においてｔ＝３の場合にあたる。今回のＢＯＲＤＥＲを、特にＢＯＲＤＥＲ−２とする。説明に用いるＦＡＴ更新の定義や、Ｔｆ、Ｔｒ、Ｒｒ、Ｔｄ、ＦＡＴ更新回数であるＦＡＴ＿ＣＯＵＮＴ（Ｆｃ）、クラスタサイズであるＣＬＵ＿ＳＩＺＥ（Ｃｓ）の定義は先に示した通りである。【０１０８】
この場合のＢＯＲＤＥＲ−２の決定は、２つのデータ記録期間内に最低限記録が必要なリアルタイムデータの量がもとになるので、次の式によって求められる。
ＢＯＲＤＥＲ−２＝Ｒｒ×Ｔｄ／１０００／Ｆｃ／Ｃｓ×２
Ｃｓが１６ｋＢの場合、ＢＯＲＤＥＲ−２＝１５３．６と算出される。すなわち、ＢＯＲＤＥＲ−２として“１５４”を設定しＢＯＲＤＥＲ−２以上の数のクラスタを用いれば、リアルタイムデータ記録時のリアルタイム性が保証できることになる。【０１０９】
このように、連続する３回のＦＡＴ更新に挟まれる２つのデータ記録期間を考える場合、領域管理ブロック情報の生成処理が図１３とは異なるので、以下に図１９Ａ，図１９Ｂ及び図２０を用いて説明する。【０１１０】
図１９Ａ，図１９Ｂにおいて、まず現在参照しているＦＡＴブロックの番号を示すＣＯＵＮＴＥＲの値を“１”に設定する（Ｓ５０１）。ＣＯＵＮＴＥＲの値が示すＦＡＴブロック内の空きクラスタ数を算出して、ＷＯＲＫ１とする（Ｓ５０２）。次に、ＣＯＵＮＴＥＲの値が“Ｎ”であるかどうかを確認する（Ｓ５０３）。ＣＯＵＮＴＥＲの値は“１”から始まるが、後の処理、Ｓ５１３からのループで帰ってきたＣＯＵＮＴＥＲの値は“１”より大きな値であるためＳ５０３において“Ｎ”であるかどうかの判断を行なう。【０１１１】
ＣＯＵＮＴＥＲの値が“Ｎ”でなければ、ＣＯＵＮＴＥＲの値に１を加算した番号のＦＡＴブロック内の空きクラスタ数を算出しＷＯＲＫ２とする（Ｓ５０５）。現在のＣＯＵＮＴＥＲの値は“１”であるので、２番目のＦＡＴブロックであるＦＡＴブロック２の空きクラスタ数をＷＯＲＫ２とする。しかしＣＯＵＮＴＥＲの値が“Ｎ”であれば、最後のＦＡＴブロックであるＦＡＴブロックＮを参照していることを示しており、次に続くＦＡＴブロックは存在しないので、ＷＯＲＫ２は“０”とする（Ｓ５０４）。【０１１２】
続いて、先に求めたＷＯＲＫ１とＷＯＲＫ２を合計し、空きクラスタ数を求める（Ｓ５０６）。求めた空きクラスタ数の値を予め決められたＢＯＲＤＥＲ−２と比較する（Ｓ５０７）。空きクラスタ数がＢＯＲＤＥＲ−２以上の場合は、ＣＯＵＮＴＥＲの値が示すＦＡＴブロックは、リアルタイムデータの記録に用いることができるので、当該ＦＡＴブロックがリアルタイムデータの記録に対して有効であることを示すためにフラグを“ＶＡＬＩＤ”に設定する（Ｓ５０８）。この“ＶＡＬＩＤ”のフラグとＷＯＲＫ１を領域管理ブロック情報内にＣＯＵＮＴＥＲの値が示すＦＡＴブロックの情報として格納する（Ｓ５１１）。【０１１３】
逆に、空きクラスタ数がＢＯＲＤＥＲ−２未満の場合は、ＣＯＵＮＴＥＲの値が示すＦＡＴブロックはリアルタイムデータの記録に用いることができない。このときは、当該ＦＡＴブロックがリアルタイムデータの記録に有効ではないということを示すためにフラグを“ＩＮＶＡＬＩＤ”に設定する（Ｓ５０９）。【０１１４】
Ｓ５０９の次の探索済みブロック再判定の処理（Ｓ５１０）を、図２０を用いて説明する。まず、ＣＯＵＮＴＥＲの値が“１”であるかどうかを判断し（Ｓ６０１）、“１”であればＳ５１１へ進み、“ＩＮＶＡＬＩＤ”のフラグとＷＯＲＫ１を領域管理ブロック情報内にＣＯＵＮＴＥＲの値が示すＦＡＴブロックの情報として格納する。ＣＯＵＮＴＥＲの値が“１”でなければ、ＣＯＵＮＴＥＲの値から１を減算してＬ＿ＣＯＵＮＴＥＲとする（Ｓ６０２）。【０１１５】
Ｌ＿ＣＯＵＮＴＥＲの値が示すＦＡＴブロック内の空きクラスタ数を求めてＬ＿ＷＯＲＫとし（Ｓ６０３）、このＬ＿ＷＯＲＫをＳ５０７で用いたＢＯＲＤＥＲ−２と比較する（Ｓ６０４）。Ｌ＿ＷＯＲＫがＢＯＲＤＥＲ−２以上であれば、図２０のフローに示す処理を終えてＳ５１１へ進み、“ＩＮＶＡＬＩＤ”のフラグとＷＯＲＫ１を領域管理ブロック情報内にＣＯＵＮＴＥＲの値が示すＦＡＴブロックの情報として格納する。【０１１６】
Ｌ＿ＷＯＲＫがＢＯＲＤＥＲ−２未満であれば、領域管理ブロック情報内のＬ＿ＣＯＵＮＴＥＲの値が示すＦＡＴブロックの情報として“ＩＮＶＡＬＩＤ”のフラグを格納する（Ｓ６０５）。【０１１７】
次に、Ｌ＿ＣＯＵＮＴＥＲの値が“１”かどうかの判定を行なう（Ｓ６０６）。Ｌ＿ＣＯＵＮＴＥＲの値が“１”でなければ、Ｌ＿ＣＯＵＮＴＥＲの値から１減算し（Ｓ６０７）、Ｓ６０３へとループして同じ処理を繰り返す。しかし、Ｌ＿ＣＯＵＮＴＥＲの値が“１”であるということは、ＦＡＴブロックの先頭であるＦＡＴブロック１を参照しているということを示しており、これよりさかのぼっては参照すべきＦＡＴブロックは存在しないので、探索済みブロック再判定の処理（Ｓ５１０）を終了し、Ｓ５１１へ進んで“ＩＮＶＡＬＩＤ”のフラグとＷＯＲＫ１を領域管理ブロック情報内に、ＣＯＵＮＴＥＲの値が示すＦＡＴブロックの情報として格納する。【０１１８】
図１９Ａ，図１９Ｂに戻ってＳ５１１の処理の次は、現在のＣＯＵＮＴＥＲの値が“Ｎ”であるかどうかを判断する（Ｓ５１２）。“Ｎ”でなければＣＯＵＮＴＥＲの値に１を加算し（Ｓ５１３）、Ｓ５０２へとループして同じ処理を行ない、ＣＯＵＮＴＥＲが“Ｎ”になるまで同じ処理を繰り返す。“Ｎ”であることは、現在ＦＡＴブロックＮを参照していることを示し、これより後に参照すべきＦＡＴブロックは存在しないので、領域管理ブロック情報生成処理を終了する。【０１１９】
上記の領域管理ブロック情報の生成処理について、ＣＯＵＮＴＥＲ、ＷＯＲＫ１、ＷＯＲＫ２に、実際の数値を用いて、図１４、図１９Ａ，図１９Ｂと図２０、図２１を参照しながら説明する。図２１のＷＯＲＫ１、ＷＯＲＫ２は図１４の空きクラスタ数を用いたものであり、各ＦＡＴブロックの空きクラスタ数は同じ数字を用いている。ここでＢＯＲＤＥＲ−２は、１５４に設定されているとする。【０１２０】
Ｓ５０１で、ＣＯＵＮＴＥＲの値を１とすると、Ｓ５０２でのＷＯＲＫ１はＦＡＴブロック１が示す１５４である。Ｓ５０３においてＣＯＵＮＴＥＲの値は“Ｎ”ではないので、ＷＯＲＫ２はＦＡＴブロック２が示す２３４であり、Ｓ５０６で２ＦＡＴブロックの合計の空きクラスタ数は３８８となる。Ｓ５０７での比較によると空きクラスタ数はＢＯＲＤＥＲ−２の値である１５４以上であるので、Ｓ５０８においてＦＡＴブロック１についてのフラグを“ＶＡＬＩＤ”とする。Ｓ５１１に移って、ＣＯＵＮＴＥＲの値の通り、ＦＡＴブロック１の情報としてＷＯＲＫ１を１５４、フラグを“ＶＡＬＩＤ”として領域管理ブロック情報内に格納する。Ｓ５１２において、ＣＯＵＮＴＥＲの値は“Ｎ”ではなく“１”であるので、Ｓ５１３に移ってＣＯＵＮＴＥＲの値に１を加算してＣＯＵＮＴＥＲの値を２としてＳ５０２に進む。【０１２１】
ＣＯＵＮＴＥＲの値が２であれば、Ｓ５０５においてＷＯＲＫ１が２３４でＷＯＲＫ２が２３であり、Ｓ５０６の合計空きクラスタ数は２５７となる。これもＳ５０７でＢＯＲＤＥＲ−２以上であると判断されるので、Ｓ５１１でＦＡＴブロック２の情報としてＷＯＲＫ１を２３４、フラグを“ＶＡＬＩＤ”として領域管理ブロック情報内に格納する。Ｓ５１３でＣＯＵＮＴＥＲの値に１を加算してＣＯＵＮＴＥＲの値を“３”としてＳ５０２にループする。【０１２２】
ＣＯＵＮＴＥＲの値が３のときは、Ｓ５０５においてＷＯＲＫ１が２３でＷＯＲＫ２が５６であり、Ｓ５０６の合計空きクラスタ数は７９となる。この値はＳ５０７においてＢＯＲＤＥＲ−２の値以上ではないので、Ｓ５０９においてＦＡＴブロック３についてのフラグを“ＩＮＶＡＬＩＤ“とする。【０１２３】
次に、Ｓ５１０の処理に移り、図２０のＳ６０１でＣＯＵＮＴＥＲの値が１であるかを判断する。現在のＣＯＵＮＴＥＲの値は“３”であるので、Ｓ６０２において、Ｌ＿ＣＯＵＮＴＥＲ（＝ＣＯＵＮＴＥＲ−１）の値は“２”となる。Ｓ６０３ではＬ＿ＣＯＵＮＴＥＲの値が“２”であることからＦＡＴブロック２内の空きクラスタ数Ｌ＿ＷＯＲＫを算出し、Ｌ＿ＷＯＲＫの値に２３４を得る。このＬ＿ＷＯＲＫは２つのＦＡＴブロックの空き領域の合計ではなく、ＦＡＴブロック２だけの空き領域であるが、それでもＢＯＲＤＥＲ−２以上であるので、ＦＡＴブロック３との組み合わせでもリアルタイムデータの記録に使用可能であるとしてＦＡＴブロック２の“ＶＡＬＩＤ”のフラグは維持される。【０１２４】
もしここでのＬ＿ＷＯＲＫが１３１であれば、ＦＡＴブロック２のフラグはすでに“ＶＡＬＩＤ”になっているが、ＢＯＲＤＥＲ−２未満であるのでＳ６０５の処理でＦＡＴブロック２のフラグは“ＩＮＶＡＬＩＤ“に設定しなおされる。この処理の根拠は次のように説明できる。つまり、ＦＡＴブロック３のフラグが“ＩＮＶＡＬＩＤ“となり空きクラスタ数が０であると扱われているので、ＦＡＴブロック３との組み合わせではＢＯＲＤＥＲ−２以上にはならず、ＦＡＴブロック２も用いることはできなくなるということである。このような処理をＣＯＵＮＴＥＲの値が“Ｎ”になるまで繰り返し、ＦＡＴブロック番号に対して、ＷＯＲＫ１とフラグを備えた、領域管理ブロック情報を生成する。【０１２５】
このような領域管理ブロック情報を生成し用いることで、ＦＡＴ更新の回数がユーザデータ領域３０２内の空き記録領域の配置状態に左右されなくなり、バッファ溢れを防止し、リアルタイムデータ記録時のリアルタイム性を保証することが可能となる。更に、本発明のアクセス装置ではＦＡＴブロック内に含まれる空き記録領域が必ずしも連続している必要はないため、小さな空き記録領域が分散してＦＡＴブロック内に存在する場合においてもＦＡＴ更新の回数を抑制し、リアルタイムデータを記録することができ、ユーザデータ領域３０２内の空き記録領域を効率的に使用することが可能となる。【０１２６】
ここまで、本発明の実施の形態について説明してきたが、本発明は上記の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更することができる。本実施の形態において説明した各種の数値は一例であり、その他の値に変更して本発明を実施することができる。【０１２７】
例えば、ＦＡＴブロックサイズとして５１２Ｂの場合について説明したが、１６ｋＢ等に変更しても構わない。また、領域管理ブロック情報１９をメモリカード挿入時に生成する場合について説明したが、静止画のデータを取り込むモードから動画のデータを取り込むモードに切換えた時や、アクセス装置の電源投入時など、挿入後の任意のタイミングで生成しても良い。さらに、ＦＡＴ１、ＦＡＴ２が更新される際に逐次領域管理ブロック情報１９の内容を更新しても良い。【０１２８】
また、情報記録媒体としてメモリカードを例として説明したが、小さな単位での記録が比較的低速で、大きな単位での記録が比較的高速となるような特徴を有する情報記録媒体であれば、ハードディスクや光ディスク等、他の種類の情報記録媒体を使用しても構わない。【０１２９】
ハードディスク等でアクセス装置１に常時接続されている情報記録媒体の場合、アクセス装置１に対する電源投入と同時か、あるいは情報記録媒体を使用する直前に図１１と同様の処理を実施すれば良い。この場合、Ｓ１０１、Ｓ１０２の処理は不要であり、必要であれば代わりに情報記録媒体固有の初期化処理を挿入すれば良い。【０１３０】
また、本実施の形態ではファイルシステムとしてＦＡＴファイルシステムを例に説明したが、その他のファイルシステムを用いても良い。例えば、ＵＤＦファイルシステムでは空き記録領域の管理をＳｐａｃｅＢｉｔＭａｐと呼ばれるビットマップで管理している。本発明をＵＤＦファイルシステムに適用する場合、ＦＡＴブロックの代わりに、ＳｐａｃｅＢｉｔＭａｐを固定長のブロック単位に分けて管理するＳｐａｃｅＢｉｔＭａｐブロックを用いて制御すれば良い。【０１３１】
これまでに、ＢＯＲＤＥＲ−１未満またはＢＯＲＤＥＲ−２未満の空き記録領域しか存在しないＦＡＴブロックへはリアルタイムデータを記録しない旨を説明した。しかし、このようなＦＡＴブロックへはリアルタイム性を必要としない静止画等のデータを記録することで更に記録領域を効率的に使用することが可能となる。【０１３２】
本実施の形態では、先に述べたＢＯＲＤＥＲの定義における、ｔ＝２とｔ＝３の場合を説明した。しかし、これらｔの値にかかわらず、ｔに４以上の値を設定してもよい。こうすることで、空き記録領域量が少ないＦＡＴブロックでも、その前後に空き記録領域量が多いＦＡＴブロックがあれば、リアルタイムデータの記録が可能となり、より空き記録領域を効率的に使用することができる。【０１３３】
更に本実施の形態では、「該当するＦＡＴブロック内に含まれる全空きクラスタ数」を算出し、ＢＯＲＤＥＲ−１またはＢＯＲＤＥＲ−２と比較してフラグを決定する方法について説明したが、次のように変更しても良い。【０１３４】
（１）連続する複数のＦＡＴエントリを１つのデータ記録単位とする方法がある。例えば、図２２Ａは１つのＦＡＴブロックを示しており、四角形の１つ１つはＦＡＴエントリである。○印、×印はそのＦＡＴエントリが管理するクラスタの状態を表し、○印はクラスタが空きであること、×印はクラスタに有効なデータが既に記録されていることを示す。図が示すように先頭のＦＡＴエントリから順に２つずつを１つのデータ記録単位として組にして、このデータ記録単位内に含まれる２つのＦＡＴエントリが○印である場合にそのデータ記録単位を“空きデータ記録単位”とする。次に、ＦＡＴブロック内に含まれる“空きデータ記録単位”が管理する空きクラスタの数をＢＯＲＤＥＲ−１またはＢＯＲＤＥＲ−２と比較してＦＡＴブロックの使用可能、不能を示すフラグを決定する。こうすることで少なくとも２つの連続した空きクラスタをリアルタイムデータの記録に使うことができる。【０１３５】
（２）別の方法として、連続する複数のクラスタで１つのスロットを構成することが考えられる。例えば図２２Ｂは、先頭のＦＡＴエントリから順に８つずつを１つの組にしてスロットを構成した状態を表している。図２２Ｂも１つのＦＡＴブロックを示しており、四角形、○印、×印の示す意味も（Ａ）と同じである。今、１つのスロット内の○印の数は、スロット（１）は５つ、（２）は６つ、（３）は２つ、（４）は４つである。○印はそのＦＡＴエントリが管理するクラスタが空きであることを表すので、スロット（１）は５つの空きクラスタを管理していることになり、スロット（２）、（３）、（４）も○印と同数の空きクラスタを管理している。ここで、一定数以上の空きクラスタを管理しているスロットを選ぶために第２の閾値を導入する。第２の閾値は１つのスロットで確保したい最少の空きクラスタの数であり、１つのスロット内の○印の数と比較することに用いられる。ここで第２の閾値を５とすると、スロット（１）と（２）は○印が５つ以上あり第２の閾値以上のスロットとなり、スロット（３）と（４）は第２の閾値以下のスロットとなる。この第２の閾値以上のスロット（１）と（２）を“空きスロット”として扱い、１つのＦＡＴブロック内の全ての空きスロットに含まれる○印、つまり空きクラスタの数を合計してこの合計をＢＯＲＤＥＲ−１またはＢＯＲＤＥＲ−２と比較する。この比較によってＦＡＴブロックの使用可能、不能を示すフラグが決定する。【０１３６】
（２）で述べたスロットは、先の（１）で述べた記録単位とは異なる。スロット、記録単位とも連続する複数のクラスタで構成され、リアルタイムデータの記録をより高速で行なうことを目的にしたものであるが、構成に用いられるクラスタの数が違い、スロットの方がより多くのクラスタで構成される。【０１３７】
例えば、フラッシュメモリを用いたメモリカードの場合、消去ブロックサイズ内に記録するデータ量と、記録速度の関係はほぼ比例に近い関係になることから、消去ブロックサイズ内に記録するデータ量が増加すれば、記録速度も高速になる。そのため、１つの消去ブロックを構成するクラスタ（ここでは、３２クラスタ）を管理している全部のＦＡＴエントリを１つのスロットとして設定し、ＦＡＴブロックを１以上のスロット（ここでは、８スロット）で構成する。この上で、一定以上の空き記録領域が存在するスロットのみを選択すると、１回の消去で記録できる新しいデータの量も一定以上が確保されることとなり、高速の記録速度を保証することが可能となる。【０１３８】
また、領域管理ブロック情報１９にフラグを格納する例について説明したが、Ｓ４０３の判定処理において毎回、第１の閾値と空きクラスタ数を比較するようにすればフラグは不要であり、領域管理ブロック情報１９にフラグを格納する必要はない。
【産業上の利用可能性】
【０１３９】
本発明に関わるアクセス装置は、ファイルシステムにより管理された情報記録媒体に対し、ＦＡＴ等の領域管理情報を固定長のブロック単位で管理し、閾値以上の空き記録領域を含む領域管理情報ブロックに含まれる空き記録領域のみをリアルタイムデータの記録に使用する。これにより、ユーザデータ領域内の空き記録領域の配置状態によらず、ＦＡＴ更新が頻繁に発生することによるバッファ溢れを防止し、リアルタイムデータ記録時のリアルタイム性を保証することが可能となる。このようなアクセス装置は、動画データ、音声データ等をリアルタイムに記録するポータブルムービー、ＤＶＤレコーダ、ＨＤＤレコーダ、レコーダ機能付きデジタルテレビ、デジタルスチルカメラ、ＩＣレコーダ等として利用することができる。
【図１】
2007034706.tif 000002
【図２】
2007034706.tif 000003
【図３Ａ】
2007034706.tif 000004
【図３Ｂ】
2007034706.tif 000005
【図３Ｃ】
2007034706.tif 000006
【図４】
2007034706.tif 000007
【図５】
2007034706.tif 000008
【図６】
2007034706.tif 000009
【図７】
2007034706.tif 000010
【図８】
2007034706.tif 000011
【図９】
2007034706.tif 000012
【図１０】
2007034706.tif 000013
【図１１】
2007034706.tif 000014
【図１２】
2007034706.tif 000015
【図１３】
2007034706.tif 000016
【図１４】
2007034706.tif 000017
【図１５】
2007034706.tif 000018
【図１６Ａ】
2007034706.tif 000019
【図１６Ｂ】
2007034706.tif 000020
【図１７】
2007034706.tif 000021
【図１８】
2007034706.tif 000022
【図１９Ａ】
2007034706.tif 000023
【図１９Ｂ】
2007034706.tif 000024
【図２０】
2007034706.tif 000025
【図２１】
2007034706.tif 000026
【図２２Ａ】
2007034706.tif 000027
【図２２Ｂ】
2007034706.tif 000028
【手続補正書】
【提出日】平成18年12月7日(2006.12.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
（削除）
【請求項２】
管理単位であるクラスタが複数集まって構成されるデータ記録領域と、前記各クラスタに対する１つの管理情報単位であるエントリ情報を複数保持する領域管理情報とを備える不揮発性メモリを含む情報記録媒体にアクセスする情報記録媒体アクセス装置であって、
前記領域管理情報は、前記データ記録領域において一定数の物理的に連続したクラスタが得られるように組み合わされた一定数の前記エントリ情報から成る領域管理ブロックを複数有するものであり、
前記情報記録媒体から前記領域管理情報を読み出し、前記領域管理ブロック毎に、前記データ記録領域において２つ以上の物理的に連続したクラスタが得られるように前記エントリ情報を２つ以上組み合わせて１つのスロットとして管理し、各スロットに含まれるクラスタの内、空きクラスタ数が第２の閾値以上の場合に当該スロットを空きスロットと判定し、前記領域管理ブロック内のすべての空きスロットに含まれる空きクラスタ数を第１の閾値と比較して、第１の閾値以上のときに当該領域管理ブロックが管理する記録領域をデータ書き込みが可能な領域とする領域管理ブロック制御部と、
前記各領域管理ブロックと当該領域管理ブロック内の空き領域長に関する領域管理ブロック情報を保持するメモリと、を具備する情報記録媒体アクセス装置。
【請求項３】
（削除）
【請求項４】
前記第１の閾値は、
連続するｔ回のファイルシステムの管理情報更新に挟まれる（ｔ−１）回のデータ記録期間内で最低限記録しなければならないファイルデータが記録できるクラスタ数である請求項２記載の情報記録媒体アクセス装置。
【請求項５】
（削除）
【請求項６】
（削除）
【請求項７】
（削除）
【請求項８】
前記領域管理ブロック制御部は、
前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納する請求項２記載の情報記録媒体アクセス装置。
【請求項９】
（削除）
【請求項１０】
（削除）
【請求項１１】
管理単位であるクラスタが複数集まって構成されるデータ記録領域と、前記各クラスタに対する１つの管理情報単位であるエントリ情報を複数保持する領域管理情報とを備える不揮発性メモリを含む情報記録媒体にアクセスするデータ記録方法であって、
前記領域管理情報は、前記データ記録領域において一定数の物理的に連続したクラスタが得られるように組み合わされた一定数の前記エントリ情報から成る領域管理ブロックを複数有するものであり、
前記情報記録媒体から前記領域管理情報を読み出し、前記領域管理ブロック毎に、前記データ記録領域において２つ以上の物理的に連続したクラスタが得られるように前記エントリ情報を２つ以上組み合わせて１つのスロットとして管理し、各スロットに含まれるクラスタの内、空きクラスタ数が第２の閾値以上の場合に当該スロットを空きスロットと判定し、前記領域管理ブロック内のすべての空きスロットに含まれる空きクラスタ数を第１の閾値と比較して、第１の閾値以上のときに当該領域管理ブロックが管理する記録領域をデータ書き込みが可能な領域とし、
前記各領域管理ブロックと当該領域管理ブロック内の空き領域長に関する領域管理ブロック情報をメモリに保持するデータ記録方法。
【請求項１２】
（削除）
【請求項１３】
前記第１の閾値は、
連続するｔ回のファイルシステムの管理情報更新に挟まれる（ｔ−１）回のデータ記録期間内で最低限記録しなければならないファイルデータが記録できるクラスタ数である請求項１１記載のデータ記録方法。
【請求項１４】
（削除）
【請求項１５】
（削除）
【請求項１６】
（削除）
【請求項１７】
前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第１の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第１の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納する請求項１１記載のデータ記録方法。
【請求項１８】
（削除）
【国際調査報告】
2007034706.tif 000029
2007034706.tif 000030