(57)【要約】【課題】  本発明は、少ないメモリで高速なファイルのアクセスができる装置を提供することを目的とする。【解決手段】  本発明のファイルアクセス装置は、FATのデータに基づいて作成された、記憶メディアに情報が連続して記録されている箇所を示す情報を記憶するチェーンテーブル記憶手段を備えた。【選択図】  図１
2006011882.tif 000002
【特許請求の範囲】
【請求項１】
記録される情報がFAT(File Allocation Table)で管理されるとともに、前記FAT及び前記情報を記録する記憶メディアに対して、外部から入力される前記情報の記録，再生を制御するコントローラを備えたファイルアクセス装置であって、
前記FATのデータに基づいて作成された、前記記憶メディアに前記情報が連続して記録されている箇所を示す情報を記憶するチェーンテーブル記憶手段を備え、
前記コントローラを、前記情報の記録，再生の際に、前記チェーンテーブル記憶手段の情報を用いるように構成したことを特徴とするファイルアクセス装置。
【請求項２】
記録される情報がFAT(File Allocation Table)で管理されるとともに、前記FAT及び前記情報を記録する記憶メディアに対して、外部から入力される前記情報の記録，再生を制御するコントローラを備えたファイルアクセス装置であって、
前記FATのデータに基づいて作成された、前記記憶メディアに前記情報が記録されていない箇所を示す情報を記憶する未記憶テーブル記憶手段を備え、
前記コントローラを、前記情報の記録，再生の際に、前記未記憶テーブル記憶手段の情報を用いるように構成したことを特徴とするファイルアクセス装置。
【請求項３】
記録される情報がFAT(File Allocation Table)で管理されるとともに、前記FAT及び前記情報を記録する記憶メディアに対して、外部から入力される前記情報の記録，再生を制御するコントローラ制御方法であって、
前記FATのデータに基づいて、前記記憶メディアに前記情報が連続して記録されている箇所を示す情報を作成し、
作成した情報をチェーンテーブル記憶手段に記憶し、
前記情報の再生の際に、前記チェーンテーブル記憶手段に記憶した情報を用いて、前記コントローラを制御することを特徴とするコントローラ制御方法。
【請求項４】
記録される情報がFAT(File Allocation Table)で管理されるとともに、前記FAT及び前記情報を記録する記憶メディアに対して、外部から入力される前記情報の記録，再生を制御するコントローラ制御方法であって、
前記FATのデータに基づいて、前記記憶メディアに前記情報が記録されていない箇所を示す情報を作成し、
作成した情報を未記憶テーブル記憶手段に記憶し、
前記情報の記録の際に、前記チェーンテーブル記憶手段に記憶した情報を用いて、前記コントローラを制御することを特徴とするコントローラ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、FAT(File Allocation Table)を用いたファイルアクセス装置に関する。
【背景技術】
【０００２】
従来、光ディスクシステム等において、ファイルを管理するFATを改良し、より高速にするものが知られている。
【特許文献１】特開平10-228400号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の装置においては、参照テーブル35に、図3に示されたFilename_Aのクラスタテーブル(内容としては、例えば図3C)相当をファイル数分用意する必要があるため、装置内に大容量のメモリを持つことができる装置のみにしか適用できないという問題点があった。
【０００４】
本発明は、上記に対応したファイルアクセス装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明のファイルアクセス装置は、記録される情報がFAT(File Allocation Table)で管理されるとともに、前記FAT及び前記情報を記録する記憶メディアに対して、外部から入力される前記情報の記録，再生を制御するコントローラを備えたファイルアクセス装置であって、
前記FATのデータに基づいて作成された、前記記憶メディアに前記情報が連続して記録されている箇所を示す情報を記憶するチェーンテーブル記憶手段を備え、
前記コントローラを、前記情報の記録，再生の際に、前記チェーンテーブル記憶手段の情報を用いるように構成したことを特徴とする。
【０００６】
そして、チェーンテーブル記憶手段に、情報が連続して記録されている箇所を示す情報を記憶しているので、少ないメモリですみ、大容量のメモリを持つことができない小型の装置にも搭載することができる。そして、情報の記録，再生の際に、該情報を用いることにより、情報が連続して記録されている箇所の情報をFATにアクセスすることなく得ることができるので、FATにアクセスするよりも、より高速なアクセスが可能となる。
【０００７】
また、記録される情報がFAT(File Allocation Table)で管理されるとともに、前記FAT及び前記情報を記録する記憶メディアに対して、外部から入力される前記情報の記録，再生を制御するコントローラを備えたファイルアクセス装置であって、
前記FATのデータに基づいて作成された、前記記憶メディアに前記情報が記録されていない箇所を示す情報を記憶する未記憶テーブル記憶手段を備え、
前記コントローラを、前記情報の記録，再生の際に、前記未記憶テーブル記憶手段の情報を用いるように構成したことを特徴とする。
【０００８】
そして、未記憶テーブル記憶手段に、情報が記録されていない箇所を示す情報を記憶しておけばよいので、少ないメモリですみ、大容量のメモリを持つことができない小型の装置にも搭載することができる。そして、情報の記録，再生の際に、該情報を用いることにより、情報が記録されていない箇所の情報をFATにアクセスすることなく得ることができるので、FATにアクセスするよりも、より高速なアクセスが可能となる。
【０００９】
また、本発明のコントローラ制御方法は、記録される情報がFAT(File Allocation Table)で管理されるとともに、前記FAT及び前記情報を記録する記憶メディアに対して、外部から入力される前記情報の記録，再生を制御するコントローラ制御方法であって、
前記FATのデータに基づいて、前記記憶メディアに前記情報が連続して記録されている箇所を示す情報を作成し、
作成した情報をチェーンテーブル記憶手段に記憶し、
前記情報の再生の際に、前記チェーンテーブル記憶手段に記憶した情報を用いて、前記コントローラを制御することを特徴とする。
【００１０】
また、記録される情報がFAT(File Allocation Table)で管理されるとともに、前記FAT及び前記情報を記録する記憶メディアに対して、外部から入力される前記情報の記録，再生を制御するコントローラ制御方法であって、
前記FATのデータに基づいて、前記記憶メディアに前記情報が記録されていない箇所を示す情報を作成し、
作成した情報を未記憶テーブル記憶手段に記憶し、
前記情報の記録の際に、前記チェーンテーブル記憶手段に記憶した情報を用いて、前記コントローラを制御することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、少ないメモリで高速なファイルのアクセスができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施の形態を説明する。
【００１３】
図１は、本発明のファイルアクセス装置の構成を示すブロック図である。なお、ファイルアクセス装置Dは、例えばメモリカードや小型HDDである。ファイルアクセス装置Ｆでは、ホストバス１００を介したフラッシュメモリ及びディスクドライブ等の記憶メディア１０２上のファイルシステム１０３へのアクセスは、論理アドレスで行われる。図示しないホストから特定データをアクセスすべき論理アドレスをホストバス１００を介して受けとったデバイスコントローラ１０１(詳細な構成については、図５で説明する)は、論理アドレスを適当な物理アドレスに変化して、記憶メディア１０２に対してデータアクセスを行う。ファイルシステム１０３は、デバイスパラメータブロック１０４（以降、DPBと称する）、FAT１０５、ルートディレクトリエントリ１０６（以降、ディレクトリエントリをDEと称する）及びデータ領域１０７等から構成される。DPBは、一般的に、記憶メディア１０２に対する論理アドレス0から始まり、FAT１０４、ルートDE１０６及びデータ領域１０７の開始論理アドレスの情報が含まれている。なお、CCT１１０，AT120については、後述する。
【００１４】
図２は、FAT１０５の一例を示す図である。FAT１０５は、データ領域１０７に割り当てられたクラスタと呼ばれるデータブロック単位で、各ファイルの構成を示すテーブルである。あるファイルＡが、後述する図４の４０１で示すように、６つのクラスタで構成される場合、FATデータは、ファイルを構成する最初のクラスタアドレスから順に次に参照するクラスタアドレスを示し、これらでクラスタチェーンを作っている。なお、ファイルの最終クラスタは、これ以上チェーンがなくこれをFFFFhで示す。また、FAT１０５のデータは、特別なクラスタを示し、0000hは未使用クラスタ、F8FFhは予約システムデータ等を示す。
【００１５】
図３は、図２のFAT１０５に対応する図１のCCT１１０の内容を示すものである。CCT１１０は、クラスタアドレスNで参照できるFATデータが、N+1を示すことを１ビットで判定可能なデータで構成される。例えば、クラスタアドレスMを含むファイルにおいて、次の参照すべきクラスタアドレスがM+1であれば、CCT１１０上のクラスタアドレスMで参照されるデータは'1'を示し、それ以外のCCTデータは'0'を示すものとする。但し、次クラスタへのつながりが判定可能であればデータの極性は特に問わない。
【００１６】
図４は、あるファイルＡのFAT１０５におけるクラスタチェーン４０１と、CCT１１０におけるビットデータ４０２を対比して示したものである。CCT１１０におけるビットデータ４０２では、ファイルＡを先頭クラスタから順次アクセスする時、先頭から３番目までの各クラスタアクセスにおいて、次にアクセスすべきクラスタアドレスは、現クラスタアドレス＋１であることをビット'1'で示す。また、４番目のクラスタのCCT１１０から参照できるビットデータが'0'であれば、４番目のクラスタアドレス＋１のデータは、ファイルＡを構成する現クラスタアドレスと連続したクラスタでないことを示す。そして、CCT１１０を参照して、最初のクラスタアドレスＣから連続したクラスタ数Ｗを求めることができる。これは、例えば、図４の場合であれば、デバイスコントローラ１０１は、CCT110のビットデータ４０２を参照することで、0012から0014までの3クラスタが連続することが判断できる。なお、ビット'0'を示す４番目のクラスタアドレスでは、連続していないことがわかるため、その場合のみFAT１０５を参照する。
【００１７】
図５は、デバイスコントローラ１０１の構成を示すブロック図である。データ転送制御部５０２は、ホストI/F制御部５０１から記憶メディア１０２に対する論理アドレス，データ転送量を含むデータ転送命令を受取り可能で、データバッファ５０３の特定データ領域の転送許可命令を出すことが可能であり、メディアI/F制御部５０４に対してデータバッファ５０３の特定データ領域を指定した物理アドレス，データ転送量含む転送命令を出すことが可能である。ホストI/F制御部５０１は、図示しないホスト機器とホストバス１００で接続され、ホストからのデータ転送命令を受取り、データ転送制御部５０２に伝える。また、データ転送制御部５０２からの命令により、データバッファ５０３の特定データをホストバス１００を介してデータ転送するものである。メディアI/F制御部５０４は、データ転送制御部５０２からのデータ転送命令に応じて、記憶メディア１０２に対してメディアバス５０５を介してデータバッファ５０３を使用したデータ転送するもである。なお、データ転送量の最小値は、セクタと呼ばれるブロックデータであり、クラスタはDPB１０４で指定されるセクタ数から構成されるものである。データバッファ５０３は、リードキャッシュに使用可能で、少なくとも２クラスタ以上のデータ領域を持てばよい。データ転送制御部５０２は、CCT１１０及びAT１２０データ領域をアクセス可能なものであり、データバッファ５０３上のデータを参照可能であり、また、図示しないホストからの論理アドレスを、物理−論理変換テーブルなどにより物理アドレスに変換できるものとする。
【００１８】
図６は、本発明におけるCCT１１０テーブルの作成方法を説明するためのフローチャートである。CCT１１０の作成においては、FAT１０５データの参照を必要とする。なお、FATデータの参照方法は、図示しないホスト機器が記憶メディア１０２に対してFATデータのリードまたはライトを実施するときに、データバッファ５０３に展開されるFAT１０５データを参照してもよいし、データ転送制御部５０２が、記憶メディア１０３からFAT１０５のデータをデータバッファ５０３にリードしてもよい。FAT１０５のデータが参照できる状態でCCT１１０の作成は開始される。次にFAT１０５のデータの参照するクラスタ番号のインデックスNを0に初期化する(ステップ６０２）。デバイスコントローラ１０１は、クラスタアドレスNのFAT１０５のデータDをFAT１０５よりリードする(ステップ６０３)。次に、クラスタ番号Nで参照されうるFAT１０５のデータDがN+1と等しいか判定し（ステップ６０４）、等しい場合インデックスＮで参照できるCCT１１０のデータビットを１にセットし（ステップ６０６）、等しくない場合はクラスタ番号Nで参照できるCCT１１０のデータビットを０にセットする（ステップ６０５）。NがDPB１０４で示される最大クラスタインデックス値に等しいか判定し（ステップ６０７）、等しい場合は、CCT１１０の作成を終了し、等しくない場合は、次のインデックスのCCT１１０ビットデータ作成すべくインデックス値を１加算し（ステップ６０８）、ステップ６０３以降のステップを繰り返す。
【００１９】
図７は、本発明におけるデータ転送制御部５０２のホストからのリード転送制御のフローチャートである。このフローチャートは、データ転送制御部５０２がホストI/F制御部５０１を介して図示しないホストからのリード転送リクエストを受取った時に開始される。なお、図示しないホストからからのリクエストには、リードすべき記憶メディア１０２に対する先頭論理セクタアドレスA0とセクタ数N0が含まれているものとする。まず、転送すべき論理セクタアドレスAは、先頭論理セクタアドレスA0に、転送済みセクタカウント数Nは0に初期化される（ステップ７０２）。この論理セクタアドレスAがデータ領域１０７内か否かを判定し（ステップ７０３）、データ領域１０７外であれば論理セクタアドレスAを物理セクタアドレスBに変換してリードすべきデータ転送数を1とする（ステップ７１１）。ステップ７０３において、データ領域１０５内であれば、論理セクタアドレスからクラスタアドレスCを求め（ステップ７０４）、データバッファ５０３にクラスタアドレスCの有効データ存在するかを判定し（ステップ７０５）、存在すればステップ７１５へ分岐する。ここで有効データが存在しない場合（ステップ７０５でNoの場合）、現在、メディアI/F制御部５０４を介した記憶メディア１０２上のクラスタアドレスNのデータリード命令を実施中であるか判定を行い（ステップ７０６）、実行中であればステップ７１４に分岐する。なお、ステップ７０６で未実行の場合(Noの場合)、ステップ７０７へ分岐する。そして、CCT１１０を参照してクラスタアドレスCから連続したクラスタ総数Wを求める（ステップ７０７）。次にデータバッファ５０３に該クラスタ総数Wの空き領域が有るか判定し（ステップ７０８）、存在しなければ利用可能な最大クラスタ数をWとする（ステップ７０９）。次に、データ転送制御部５０２は、クラスタアドレスCを物理セクタアドレスBに、データ転送クラスタ数Wをデータ転送セクタ数Xに変換する（ステップ７１０）。ステップ７１２では、記憶メディア１０２に対してメディアI/F制御部５０４を介した何ら命令が実行されてないか、すなわち、記憶メディアにアクセスが可能になるまで待つ（ステップ７１２）。アクセス可能となれば、記憶メディア１０２に対して、メディアI/F制御部５０４を介して物理セクタアドレスBからデータ転送セクタ数Xのデータリード命令を実施する（ステップ７１３）。ステップ７１４では、データバッファ５０３に有効な論理セクタアドレスAのデータが記憶メディア１０２からリード格納されるまで待つ。リード命令の実行が終了すれば、論理セクタアドレスAのデータを、図示しないホスト側にデータ転送すべきホストI/F制御部５０１に転送許可を出し（ステップ７１５）、転送カウンタ数Nを加算する（ステップ７１６）。転送カウンタ数NがホストI/F制御部５０１から受取った転送すべき総数N0と等しいか判定し（ステップ７１７）、等しければデータ転送制御部５０２の処理を終了する。等しくない場合は、次の物理セクタアドレスを転送すべく物理セクタアドレスAを求め（ステップ７１８）、ステップ７０３からの処理を繰り返す。
【００２０】
次に、図１のAT１２０について説明する。図８は、図２のFATに対応するAT１２０の内容を示すものである。図８のAT１２０は、クラスタアドレスNで参照できるデータに基づき該クラスタアドレスNが使用または未使用であるかを１ビットで判定可能なデータで構成される。これは、図８と図２とを比較すればわかるように、図２において、未使用クラスタである0000hのクラスタが'1'となっている。２クラスタ以上で構成されるファイルのデータ領域１０７へのライトにおいて、最初のクラスタに未使用であるクラスタアドレスN0が使用される時、一般的に、次に使用されるクラスタアドレスMはN0+n（n=１，２，３．．．．）である。なお、クラスタの未使用及び使用判定が可能であればデータの極性は特に問わない。また、AT検索において、DPB１０４で示される最大クラスタインデックス値を超える場合は、クラスタアドレス0から行うものとする。
【００２１】
図９は、本発明におけるAT１２０テーブルの作成方法を説明するためのフローチャートである。AT１１０の作成においては、FAT１０５データの参照を必要とする。FATデータの参照方法は、図示しないホスト機器が記憶メディア１０２に対してFATデータのリードまたはライトを実施するときに、データバッファ５０３に展開されるFAT１０５データを参照してもよいし、データ転送制御部５０２が、記憶メディア１０３からFAT１０５データをデータバッファ５０３にリードしてもよい。FAT１０５データが参照できる状態でAT１１０の作成は開始される。次にFAT１０５データの参照するクラスタ番号のインデックスNを0に初期化する（ステップ９０２）。クラスタ番号Nで参照されるFATデータDをリードする（ステップ９０３）。FAT１０５データの各データが0000hで未使用を示すデータであるか否かを判定し（ステップ９０４）、等しい場合、インデックスNで参照できるAT１１０のデータビットを'0'にセットし（ステップ９０５）、等しくない場合は、インデックスNで参照できるAT１２０のデータビットを'1'にセットする（ステップ９０６）。そして、NがDPB１０４で示される最大クラスタインデックス値に等しいか判定し（ステップ９０７）、等しい場合は、AT１１０の作成を終了し、等しくない場合は、次のインデックスのAT１１０ビットデータを作成すべくインデックス値を１加算し（ステップ９０８）、ステップ９０３の手順から繰り返す。
【００２２】
図１０は、本発明におけるデータ転送制御部５０２のホストからのライト転送制御のフローチャートである。このフローチャートは、データ転送制御部５０２がホストI/F制御部５０１を介して図示しないホストからのライト転送リクエストを受取った時に開始される。まず、転送すべき論理セクタアドレスAは、先頭論理セクタアドレスA0に、転送済みセクタカウント数Nは0に初期化される（ステップ１００２）。なお、図示しないホストからからのリクエストには、ライトすべき記憶メディア１０２に対する先頭論理セクタアドレスA0とセクタ数N0が含まれているものとする。データ転送制御部５０２は、論理セクタアドレスAから適当な物理セクタアドレスBを求める（ステップ１００３）。データ転送制御部５０２は、ホストI/F制御部５０１を介した物理セクタアドレスBのセクタデータがデータバッファ５０３に転送が終了するのを待つ（ステップ１００４）。次に、データ転送制御部５０２は、メディアI/F制御部５０４が使用可能な状態になるまで，すなわち実施中の命令があれば終了まで待つ（ステップ１００５）。なお、ここでは、後述するステップ１０１７で行うデータライト準備の終了も含めて待つものとする。メディアI/F制御部５０４が使用可能な状態になれば、記憶メディア１０２に対する物理セクタアドレスBを含む１クラスタ分のデータライト準備済みであるか判定し（ステップ１００６）、準備済みであれば、後述するステップ１００９を実施し、準備済みでない場合は、物理セクタアドレスBを含む１クラスタ分のデータライト準備を開始する（ステップ１００７）。データライト準備の開始後、その終了を待ち（ステップ１００８）、終了すれば、記憶メディア１０２に対し、メディアI/F制御装置５０４を介した物理セクタアドレスBの１セクタデータについてライト命令を実行する（ステップ１００９）。物理セクタアドレスBと対を成す論理セクタアドレスAがデータ領域１０７内であるか否かをDPB１０４データに基づき判定し（ステップ１０１０）、データ領域１０７外であれば後述するステップ１０１８に分岐する。データ領域１０７内であれば、論理セクタアドレスAがクラスタ境界の最終セクタであるかを判定し（ステップ１０１１）、最終クラスタでなければ、後述するステップ１０１８に分岐する。そして、ステップ１０１１において、クラスタ境界であれば、論理セクタアドレスAに相当するクラスタアドレスCを求め（ステップ１０１２）、クラスタアドレスC+1からAT１２０を参照して最初の未使用クラスタを示すビット'1'を検索する（ステップ１０１３）。但し、クラスタアドレスC+1が、DPB１０４データで示される最大クラスタアドレスを越える場合は、クラスタアドレス0から検索する。この時、ビット'1'を検索できない場合（ステップ１０１４）は、後述するステップ１０１８に分岐する。存在する場合は、該検索したビット'1'に該当するクラスタアドレスC1の物理セクタアドレスB1を求め（ステップ１０１５）、上記ステップ１００９の命令終了を待ち（ステップ１０１６）、ライト命令の実行が終了すれば、次のデータライト準備として、物理セクタアドレスB1から１クラスタ分のデータライト準備を開始し（１０１７）する。なお、ステップ１０１８では、上記ステップ１００９の命令終���を待つ。ステップ１０１８でライト命令実行が終了するか、ステップ１０１７でのデータライト準備が終われば、転送カウンタ数Nを加算し（ステップ１０１９）、転送カウンタ数NがホストI/F制御部５０１から受取った転送すべき総数N0と等しいか判定し（ステップ１０２０）、等しければデータ転送制御部５０２の処理を終了する。また、等しくない場合は、次の物理セクタアドレスを転送すべく次の物理セクタアドレスAを求め（ステップ１０２１）、ステップ１００３からの処理を繰り返す。
【００２３】
なお、CCT１１０及びAT１２０は、図１に示す配置に限定されるものではなく、デバイストローラー１０１からアクセス可能であれば、例えば、記憶メディア102内のファイルシステム１０３以外の領域(CCT１１１，AT１２１)に配置してもかまわない。
【図面の簡単な説明】
【００２４】
【図１】本発明のファイルアクセス装置の実施の形態の構成を示すブロック図。
【図２】FATを説明する図面。
【図３】CCTを説明する図。
【図４】図２と図３で示されるデータによる、ファイルAの構成例を示す図。
【図５】デバイスコントローラの構成を示すブロック図。
【図６】CCTテーブルの作成方法を説明するためのフローチャート。
【図７】CCTを用いたデータリードアクセスを説明するためのフローチャート。
【図８】ATを説明する図。
【図９】ATの作成方法を説明するためのフローチャート。
【図１０】ATを用いたデータライトアクセスを説明するためのフローチャート。
【符号の説明】
【００２５】
Ｆ  ファイルアクセス装置
１００  ホストバス
１０１  デバイスコントローラ
１０２  記憶メディア
１０３  ファイルシステム
１０４  デバイスパラメータブロック(DPB)
１０５  FAT
１０６  ルートディレクトリエントリ(ルートDE)
１０７  データ領域
１１０，１１１  CCT
１２０，１２１  AT
４０１  FAT１０５におけるクラスタチェーン
４０２  CCT１１０におけるビットデータ
５０１  ホストI/F制御部
５０２  データ転送制御部
５０３  データバッファ
５０４  メディアI/F制御部
５０５  メディアバス
【図１】
2006011882.tif 000003
【図２】
2006011882.tif 000004
【図３】
2006011882.tif 000005
【図４】
2006011882.tif 000006
【図５】
2006011882.tif 000007
【図６】
2006011882.tif 000008
【図７】
2006011882.tif 000009
【図８】
2006011882.tif 000010
【図９】
2006011882.tif 000011
【図１０】
2006011882.tif 000012