(57)【要約】【課題】  ファイルのある位置をアクセスするために要する時間を短縮できるファイル位置検索方法および装置を提供すること。【解決手段】  ファイルの検索開始クラスタ（ＣＦ）を、前回、位置検索に使用し記憶した論理クラスタ（ＣＦｈ）に設定、すなわちＣＦ＝ＣＦｈとする。続いて、ＲＦＡＴの参照回数（ＮＣｈ）を、ＮＣｈ＝ｉｐ（ＢＰｈ／ＢＣ）−ｉｐ（ＢＰｄ／ＢＣ）より求め、前記設定したファイルの検索開始クラスタ（ＣＦｈ）から前記求めたＲＦＡＴの参照回数（ＮＣｈ）分、ＲＦＡＴのリンクを辿り、求められたクラスタをアクセスし、ファイルアロケーションテーブルへの参照回数を減らし、ファイルの位置情報の決定までの高速化を実現する。【選択図】図５
2005071447.tif 000002
【特許請求の範囲】
【請求項１】
ＦＡＴファイルシステムによりクラスタ単位で管理されている記録媒体上のファイルの位置情報を検索するファイル位置検索方法において、
逆ファイルアロケーションテーブルの参照回数を、目的のバイト位置と、前記ファイルの位置検索を行なった際に使用し記憶した履歴情報のバイト位置とをもとに求め、前記参照回数と、前記履歴情報のクラスタ番号である検索開始クラスタとをもとに前記逆ファイルアロケーションテーブルのリンクを辿り前記ファイルの目的とするクラスタをアクセスするファイル位置検索ステップを備えたことを特徴とするファイル位置検索方法。
【請求項２】
前記目的のバイト位置と前記履歴情報のバイト位置との大小関係を判定し、さらに前記ファイルの先頭のバイト位置と前記目的のバイト位置との差と、前記目的のバイト位置と前記履歴情報のバイト位置との差の大小関係を判定する判定ステップを備え、前記ファイル位置検索ステップは、前記判定ステップにおいて前記目的のバイト位置が前記履歴情報のバイト位置よりも小さく、かつ、前記履歴情報のバイト位置と前記目的のバイト位置との差が前記目的のバイト位置と前記ファイルの先頭のバイト位置との差よりも小さいと判定された場合、前記参照回数と、前記検索開始クラスタとをもとに前記逆ファイルアロケーションテーブルのリンクを辿り前記ファイルの目的とするクラスタをアクセスすることを特徴とする請求項１記載のファイル位置検索方法。
【請求項３】
前記ファイルの位置検索を行なった際に使用したバイト位置とクラスタ番号とを履歴情報として記憶する保持ステップを備え、前記ファイル位置検索ステップは、前記ファイルの検索開始クラスタを、前記保持ステップで記憶した履歴情報のクラスタ番号に設定する検索開始クラスタ設定ステップと、逆ファイルアロケーションテーブルの参照回数を、目的のバイト位置と、前記履歴情報のバイト位置と、クラスタあたりのバイト数とをもとに求める参照回数取得ステップと、前記参照回数取得ステップで求めた参照回数と、前記検索開始クラスタ設定ステップで設定した検索開始クラスタとをもとに前記逆ファイルアロケーションテーブルのリンクを辿り前記ファイルのクラスタをアクセスする検索ステップとを有していることを特徴とするファイル位置検索方法。
【請求項４】
ＦＡＴファイルシステムによりクラスタ単位で管理されている記録媒体上のファイルの位置情報を検索し、ファイルデータを記録・再生する記録再生装置において、
逆ファイルアロケーションテーブルの参照回数を、目的のバイト位置と、前記ファイルの位置検索を行なった際に使用し記憶した履歴情報のバイト位置とをもとに求め、前記参照回数と、前記履歴情報のクラスタ番号である検索開始クラスタとをもとに前記逆ファイルアロケーションテーブルのリンクを辿り前記ファイルの目的とするクラスタをアクセスするファイル位置検索手段を備えたことを特徴とする記録再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＡＴファイルシステムにおけるファイルの位置情報を検索するファイル位置検索方法および装置に関する。
【背景技術】
【０００２】
ＦＡＴファイルシステムにおいて、ファイルの位置情報検索を行うには、既存の各ファイルの先頭クラスタと先頭から順方向のクラスタリンクテーブルを使用し、目的の位置の論理クラスタを取得する必要がある。
【０００３】
ファイル検索時に、ファイルの先頭クラスタと、ファイルアロケーションテーブルを使用しての検索方法では、ファイルアロケーションテーブルを参照する回数は、ＢＣを１クラスタあたりのバイト数、ＢＰｄを検索目的のバイト位置（０−ｂａｓｅ）、ＮＣをファイルアロケーションテーブルの参照回数、ｉｐ（ｘ）をｘの整数部とすると、ファイルアロケーションテーブルの参照回数ＮＣはｉｐ（ＢＰｄ／ＢＣ）として求めることが出来る。
【０００４】
これによると、ファイルサイズが非常に大きい場合において、ファイルの最後の方のデータの論理クラスタを検索する場合、前述したファイルアロケーションテーブルの参照回数ＮＣを求める式のＢＰｄが非常に大きくなり、ファイルアロケーションテーブルの参照回数ＮＣは非常に大きい値になってしまう。
【０００５】
ファイルのある位置ＢＰｄをアクセスするために必要な時間は、Ｔｄが検索するために必要な時間、Ｔｆがファイルアロケーションテーブルを１回参照するのに要する参照時間 
とすると検索するために必要な時間ＴｄはＴｆ×ＮＣとなる。
【０００６】
このような再生されるサイズが大きいデータファイルにおいて、所望の部分に対しより高速かつ自由にアクセスできるようにしたものとして、ファイル内の現在のクラスタのアドレスに対応した前のクラスタのアドレスを記憶するようにしたディスク状記録媒体のアクセス方法がある（例えば、特許文献１参照）。
【特許文献１】特開平７−２２０４５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
かかる従来のアクセス方法には、以下の短所が付随している。すなわち、ファイルアロケーションテーブルの１回の参照時間が大きいシステムにおいては、その検索速度Ｔｄがファイルの読み出し位置により、後方へ行けば行くほど遅くなるといった課題がある。
本発明は、このような事情に鑑みてなされたものであり、ファイルのある位置をアクセスするために要する時間を短縮できるファイル位置検索方法および装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の目的を達成するため、本発明にかかるファイル位置検索方法は、逆ファイルアロケーションテーブルの参照回数を、目的のバイト位置と、ファイルの位置検索を行なった際に使用し記憶した履歴情報のバイト位置とをもとに求め、前記参照回数と、前記履歴情報のクラスタ番号である検索開始クラスタとをもとに前記逆ファイルアロケーションテーブルのリンクを辿り前記ファイルの目的とするクラスタをアクセスするファイル位置検索ステップを備えたことを特徴とする。
【０００９】
また、本発明にかかる記録再生装置は、逆ファイルアロケーションテーブルの参照回数を、目的のバイト位置と、ファイルの位置検索を行なった際に使用し記憶した履歴情報のバイト位置とをもとに求め、前記参照回数と、前記履歴情報のクラスタ番号である検索開始クラスタとをもとに前記逆ファイルアロケーションテーブルのリンクを辿り前記ファイルの目的とするクラスタをアクセスするファイル位置検索手段を備えたことを特徴とする。
【発明の効果】
【００１０】
本発明にかかるファイル位置検索方法および装置は、逆ファイルアロケーションテーブルの参照回数を、目的のバイト位置と、ファイルの位置検索を行なった際に使用し記憶した履歴情報のバイト位置とをもとに求め、前記参照回数と、前記履歴情報のクラスタ番号である検索開始クラスタとをもとに前記逆ファイルアロケーションテーブルのリンクを辿り前記ファイルの目的とするクラスタをアクセスすることで、ファイルアロケーションテーブルの参照回数を少なくしてファイルのある位置をアクセスするために要する時間を短縮する。
【発明を実施するための最良の形態】
【００１１】
ファイルのある位置をアクセスするために要する時間を短縮できるファイル位置検索方法および装置を提供するという目的を、逆ファイルアロケーションテーブルの参照回数を、目的のバイト位置と、ファイルの位置検索を行なった際に使用し記憶した履歴情報のバイト位置とをもとに求め、前記参照回数と、前記履歴情報のクラスタ番号である検索開始クラスタとをもとに前記逆ファイルアロケーションテーブルのリンクを辿り前記ファイルの目的とするクラスタをアクセスすることで実現した。
【実施例１】
【００１２】
図１は、この実施例１のファイル位置検索方法が適用されるディスク状記録媒体のディスクドライブ装置１００と、そのディスクドライブ装置１００に接続されたパーソナルコンピュータを示すブロック図である。ディスクドライブ装置１００は、オーディオ処理部１０、メディアドライブ部１２、メモリ転送コントローラ１３、クラスタバッファメモリ１４、補助メモリ１５、ＵＳＢインタフェース１６，１８、ＵＳＢハブ１７およびシステムコントローラ（ファイル位置検索手段）１９を備えている。
【００１３】
オーディオ処理部１０は、入力系として、アナログ音声信号入力部、Ａ／Ｄ、ディジタルオーディオデータ入力部を備える。また、出力系としてアナログ音声信号出力部を備える。また、ＡＴＲＡＣ圧縮エンコーダ／デコーダ、圧縮データのバッファメモリを備える。
メディアドライブ部１２は、装填されたディスク５３に対する記録／再生を行う。メモリ転送コントローラ３は、メディアドライブ部１２からの再生データやメディアドライブ部１２に供給する記録データについての受け渡しの制御を行う。
クラスタバッファメモリ１４は、メモリ転送コントローラ１３の制御に基づいて、メディアドライブ部１２によってディスク５３のデータトラックからレコーディングブロック単位で読み出されたデータのバッファリングを行う。
補助メモリ１５は、メモリ転送コントローラ１３の制御に基づいて、メディアドライブ部１２によりディスク５３から読み出された各種管理情報や特殊情報を記録する。
システムコントローラ１９は、ディスクドライブ装置１００内の全体の制御を行うとともに、接続されたパーソナルコンピュータ５２との間の通信制御を行う。システムコントローラ１９は、例えばディスク５３がメディアドライブ部１２に装填されることに応じて、ディスク５３からの管理情報等の読み出しをメディアドライブ部１２に指示し、メモリ転送コントローラ１３により読み出した管理情報等を補助メモリ１５に格納させる。
【００１４】
パーソナルコンピュータ５２からあるＦＡＴセクタの読み出し要求があった場合、システムコントローラ１９はメディアドライブ部１２にそのＦＡＴセクタを含むレコーディングブロックの読み出しを実行させる。読み出されたレコーディングブロックのデータは、メモリ転送コントローラ１３によりクラスタバッファメモリ１４に書き込まれる。システムコントローラ１９はクラスタバッファメモリ１４に書き込まれているレコーディングブロックのデータから、要求されたＦＡＴセクタのデータを読み出させ、ＵＳＢインタフェース１６、ＵＳＢハブ１７を介してパーソナルコンピュータ５２に送信させる制御を行う。
【００１５】
また、パーソナルコンピュータ５２からあるＦＡＴセクタの書込み要求があった場合、システムコントローラ１９はメディアドライブ部１２に、先ずそのＦＡＴセクタを含むレコーディングブロックの読み出しを実行させる。読み出されたレコーディングブロックは、メモリ転送コントローラ１３によりクラスタバッファメモリ１４に書き込まれる。そして、システムコントローラ１９は、パーソナルコンピュータ５２からのＦＡＴセクタのデータをＵＳＢインタフェース１６を介してメモリ転送コントローラ１３に供給させ、クラスタバッファメモリ１４上で該当するＦＡＴセクタのデータの書き換えを実行させる。さらにシステムコントローラ１９は、メモリ転送コントローラ１３に指示し、必要なＦＡＴセクタが書き換えられた状態でクラスタバッファメモリ１４に記憶されているレコーディングブロックのデータを、記録データとしてメディアドライブ部１２に転送させる。メディアドライブ部１２では、そのレコーディングブロックの記録データを変調してディスク５３に書き込む。
【００１６】
また、システムコントローラ１９は、ＦＡＴファイルシステムによりクラスタ単位で管理されている記録媒体上のファイルの位置情報を検索するファイル位置検索機能を備えている。このファイル位置検索機能は、逆ファイルアロケーションテーブルの参照回数を、目的のバイト位置と、前記ファイルの位置検索を行なった際に使用し記憶した履歴情報のバイト位置とをもとに求め、前記参照回数と、前記履歴情報のクラスタ番号である検索開始クラスタとをもとに前記逆ファイルアロケーションテーブルのリンクを辿り前記ファイルの目的とするクラスタをアクセスすることが出来る。
【００１７】
また、前記目的のバイト位置と前記履歴情報のバイト位置との大小関係を判定し、さらに前記ファイルの先頭のバイト位置と前記目的のバイト位置との差と、前記目的のバイト位置と前記履歴情報のバイト位置との差の大小関係を判定する判定機能を備えている。
前記ファイル位置検索機能は、前記判定機能において前記目的のバイト位置が前記履歴情報のバイト位置よりも小さく、かつ、前記履歴情報のバイト位置と前記目的のバイト位置との差が前記目的のバイト位置と前記ファイルの先頭のバイト位置との差よりも小さいと判定された場合、前記参照回数と、前記検索開始クラスタとをもとに前記逆ファイルアロケーションテーブルのリンクを辿り前記ファイルの目的とするクラスタをアクセスすることが出来る。
また、前記ファイルの位置検索を行なった際に使用したバイト位置とクラスタ番号とを履歴情報として記憶する保持機能を備えている。
【００１８】
前記ファイル位置検索機能は、前記ファイルの検索開始クラスタを、前記保持機能で記憶した履歴情報のクラスタ番号に設定する検索開始クラスタ設定機能と、逆ファイルアロケーションテーブルの参照回数を、目的のバイト位置と、前記履歴情報のバイト位置と、クラスタあたりのバイト数とをもとに求める参照回数取得機能と、前記参照回数取得機能で求めた参照回数と、前記検索開始クラスタ設定機能で設定した検索開始クラスタとをもとに前記逆ファイルアロケーションテーブルのリンクを辿り前記ファイルのクラスタをアクセスする検索機能を備えている。
【００１９】
ディスプレイ５１は、テキストデータやアイコンの表示が可能であり、システムコントローラ１９から供給される表示制御信号に基づき、状態情報やメッセージなどを表示する。
【００２０】
ここで、この実施例１、さらに後述する実施例２、実施例３、実施例４を含む以下の説明に使用する用語について解説すると、ＦＡＴとは、ファイルアロケーションテーブル（ファイルの記録クラスタの順番の情報を管理しているテーブル）であり、あるクラスタに対し、そのクラスタで終了なのか、次のクラスタに続くのか、続くのであればどのクラスタなのか、そのリンク状況を示すテーブルである。
また、ＦＦＳは、ＦＡＴファイルシステム（ファイルアロケーションテーブルを用いたファイル管理システム）である。
ＲＦＡＴは逆ファイルアロケーションテーブルであり、ファイルの記録クラスタの順番の情報を逆方向に管理しているテーブルであって、あるクラスタに対して、そのクラスタが先頭なのか、前のクラスタにも続くのか、続くのであればどのクラスタなのか、その逆リンク状況を示すテーブルである。このＦＡＴファイルシステムは、通常の順方向のファイルアロケーションテーブルの他、逆ファイルアロケーションテーブルを備えている。
ＢＣは、１クラスタあたりのバイト数であり、ＦＦＳでのＢＩＯＳ  Ｐａｒａｍｅｔｅｒ  Ｂｌｏｃｋから算出する。  ＣＦＳは、ファイルの検索開始クラスタ番号である。ＣＦｓはファイルの先頭クラスタであり、ディレクトリエントリから取得する。ＣＦｈは、検索した結果、求められたクラスタ番号である。
ＢＰはバイト位置（０−ｂａｓｅ）である。ＢＰｄは目的のバイト位置（０−ｂａｓｅ）である。ＢＰｓは、ファイルの先頭のバイト位置（０−ｂａｓｅ）である。ＢＰｈは、検索に使用したバイト位置（０−ｂａｓｅ）である。
ＮＣは、ＦＡＴの参照回数である。ＮＣｓは、ファイル先頭からのＦＡＴの参照回数である。ＮＣｈは、ＢＰｈからのＦＡＴ参照回数である。
ＦＡＴ〔ｎ〕は、ＦＡＴでのｎクラスタ目の項目番号取得を意味し、ｒＦＡＴ〔ｎ〕は、ＲＦＡＴでのｎクラスタ目の項目番号取得を意味する。
また、ＪＩＳ  Ｘ ０６０５表記を必要であれば用いることとし、ｉｐ（ｘ）はｘの整数部を意味する。
ミニディスクでは、ファイル管理システムに、ＦＡＴファイルシステムを使用している。そのＦＡＴファイルシステムは、ディスクからＳＤＲＡＭなどのメモリに読み出し、ファイル管理をメモリ上で行う。
【００２１】
図２は、ディスク５３からＳＤＲＡＭなどのメモリに読み出したＦＡＴファイルシステムＦＦＳを示す概念図である。図２に示すように、ＦＡＴファイルシステムＦＦＳは、ＢＩＯＳ  Ｐａｒａｍｅｔｅｒ  Ｂｌｏｃｋ（ＦＡＴファイルシステムにおけるシステム領域の１つであり、以下、ＢＰＢという）と、ＦＡＴ（ファイルアロケーションテーブル、すなわちファイルの記録クラスタの順番の情報を管理しているテーブルであり、あるクラスタに対して、そのクラスタで終了なのか、次のクラスタに続くのか、続くのであればどのクラスタなのか、そのリンク状態を示すテーブル）１と、ＦＡＴ２と、ＦＡＴファイルシステムＦＦＳにおけるシステム領域の１つであるルートディレクトリ（以下、Ｒｏｏｔ  Ｄｉｒという）などのディスクの管理情報を記録したＦＡＴファイルシステムＦＦＳのシステム領域、さらに、ＦＡＴにより管理される例えば１クラスタを１６Ｋバイトとするファイルデータ領域からなる。
【００２２】
先ず、ＦＦＳを用いた標準的なファイルの任意のバイト位置（ＢＰｄ）の論理クラスタ検索方法を説明する。
図３は、この標準的なファイルの任意のバイト位置の論理クラスタの検索方法を示すフローチャートである。この標準的な検索方法では、先ず、ファイルのディレクトリエントリから、ファイルの先頭クラスタ（ＣＦｓ）を取得する（ステップＳ１）。ファイルの検索開始クラスタ（ＣＦ）をファイル先頭（ＣＦｓ）に設定し、ＦＡＴの参照回数、アクセス回数（ＮＣｓ）をＮＣｓ＝ ｉｐ（ＢＰｄ／ＢＣ）より求める（ステップＳ２）。そして、ＦＡＴの参照回数（ＮＣｓ）分リンクを辿り（ステップＳ３、ステップＳ４、ステップＳ５）、求められたクラスタをアクセスする。
【００２３】
この標準的な論理クラスタ検索方法では、ミニディスクオーディオのように、ある１つのファイルサイズが、最大１ＧＢ程度になり、さらに、1クラスタ当りのバイト数が、１６ＫＢの場合、最終バイトの論理クラスタを検索する場合のＦＡＴの参照回数ＮＣｓは、ＮＣｓ＝ｉｐ（ＢＰｄ／ＢＣ）より、ｉｐ（１ＧＢ／１６ＫＢ）となり、６００００回を超えることになる。
【００２４】
この実施例１では、ミニディスクなどのディスクメディアで、そのファイル管理システムにＦＡＴファイルシステムを用いた機器において、ファイルの位置情報を検索する場合に、「対策１」として、一度、位置検索に使用したバイト位置とそのときのクラスタ番号を保持し、利用することでＦＡＴの参照回数を少なくすることを考える。
【００２５】
ミニディスクオーディオでは、最大１ＧＢのファイルに対して、ランダムなアクセスが繰り返し発生する。その１回前のバイト位置と、求められたクラスタ番号を記憶することによりＦＡＴ参照回数を削減する。これは、先頭（ＢＰｓ）から目的位置（ＢＰｄ）のＦＡＴ参照回数（ＮＣｓ）と、記憶した位置（ＢＰｈ）から目的位置（ＢＰｄ）のＦＡＴ参照回数（ＮＣｈ）に対し、ＮＣｈとＮＣｓを比較し、小さい方を選択することができるためである。
【００２６】
但し、この場合、ＦＡＴは後方検索しかできないため、ＢＰｓ＜ＢＰｈ＜ＢＰｄという条件を満たす時のみ使用できる。この条件を満たさない場合は、先頭からのＦＡＴ参照回数（ＮＣｓ）を使って求めることになる。
【００２７】
図４は、この実施例１のファイル位置検索方法を示すフローチャートである。このファイル位置検索方法では、前回のバイト位置（ＢＰｈ）とその時の論理クラスタ番号（ＣＦｈ）を利用しファイルの任意のバイト位置（ＢＰｄ）の論理クラスタを検索する。以下、このフローチャートに従って論理クラスタの検索方法を説明する。先ずファイルのディレクトリエントリから、ファイルの先頭クラスタ（ＣＦｓ）を取得する（ステップＳ１１）。次に前回のバイト位置（ＢＰｈ）＜ファイルの任意のバイト位置（ＢＰｄ）、すなわち履歴のほうのバイト位置が小さいかを判定し（ステップＳ１２）、履歴のほうのバイト位置（ＢＰｈ）が小さければステップＳ１３へ進み、また履歴のほうのバイト位置（ＢＰｈ）がファイルの任意のバイト位置（ＢＰｄ）より大きい場合にはステップＳ１５へ進む。
【００２８】
ステップＳ１３では、ファイルの検索開始クラスタ（ＣＦ）を、記憶した論理クラスタ（ＣＦｈ）に設定する。すなわちＣＦ＝ＣＦｈとする。続いて、前回のバイト位置（ＢＰｈ）を使用したＦＡＴの参照回数（ＮＣｈ）を、ＮＣｈ＝ｉｐ（ＢＰｄ／ＢＣ）−ｉｐ（  ＢＰｈ／ＢＣ） により求め（ステップＳ１４）、ステップＳ１７へ進む。
【００２９】
一方、ステップＳ１５においては、ファイルの検索開始クラスタ（ＣＦ）を、記憶したファイルの先頭クラスタ（ＣＦｓ）に設定する。すなわち、ＣＦ＝ＣＦｓとする。続いて、ファイルの先頭から検索する場合のＦＡＴの参照回数（ＮＣｓ）を、ＮＣｈ＝ｉｐ（ＢＰｄ／ＢＣ）より求め（ステップＳ１６）、ステップＳ１７へ進む。そして、ステップＳ１７、ステップＳ１８、ステップＳ１９により、ＦＡＴの参照回数（ＮＣｈ）分リンクを辿るループ処理を実行し、求められたクラスタをアクセスする。
【００３０】
ここで、前回のバイト位置（ＢＰｈ）を使用したＦＡＴの参照回数ＮＣｈ＝ｉｐ（ＢＰｄ／ＢＣ）−ｉｐ（  ＢＰｈ／ＢＣ）と、ファイルの先頭から検索する場合のＦＡＴの参照回数ＮＣｈ＝ｉｐ（ＢＰｄ／ＢＣ）との間には、（前回のバイト位置ＢＰｈを使用したＦＡＴの参照回数ＮＣｈ）＝（ファイルの先頭から検索する場合のＦＡＴの参照回数ＮＣｈ）−ｉｐ（ＢＰｈ／ＢＣ）という関係が成り立ち、ＮＣｈが大きいほど参照回数が増えることより、検索が高速化されたことになる。
【００３１】
以上のように、この実施例１によれば、ＢＰｓ＜ＢＰｈ＜ＢＰｄという条件を満たす場合、ＮＣｈ＝ｉｐ（ＢＰｄ／ＢＣ）−ｉｐ（  ＢＰｈ／ＢＣ） により求めた、前回のバイト位置（ＢＰｈ）を使用したＦＡＴの参照回数（ＮＣｈ）は、ファイルの先頭から検索する場合のＦＡＴの参照回数ＮＣｈ＝ｉｐ（ＢＰｄ／ＢＣ）よりも少なくなり、目的位置（ＢＰｄ）のクラスタをアクセスするための検索を高速化できるファイル位置検索方法および装置を提供できる効果がある。
【実施例２】
【００３２】
この実施例２では、ミニディスクのようなディスクメディアなどで、そのファイル管理システムにＦＡＴファイルシステムを用いた機器において、ファイルの位置情報を検索する場合に、「対策２」として逆方向にリンクする逆ファイルアロケーションテーブルを作成、利用する。すなわち、本来持っている順方向のクラスタリンクテーブルの他に、逆方向のクラスタリンクテーブルすなわち逆クラスタリンクテーブルを用意することにより、目的の位置の論理クラスタ位置決定の高速化を実現することを考える。
以下、逆方向のクラスタリンクテーブルＲＦＡＴを作成、利用することにより高速化を図る論理クラスタ検索方法について説明する。
前記実施例１の「対策１」を施すことによりＦＡＴの参照回数ＮＣを削減することはできた。しかし、ＢＰｓ＜ＢＰｈ＜ＢＰｄという条件を満たす場合しか対応できなかった。そこで、この実施例２では、ＲＦＡＴを作成・利用することによりＦＡＴの参照回数ＮＣを更に削減する。
【００３３】
先頭（ＢＰｓ）から目的位置（ＢＰｄ）のＦＡＴ参照回数（ＮＣｓ）と、記憶した位置（ＢＰｈ）から目的位置（ＢＰｄ）のＦＡＴ（またはＲＦＡＴ）参照回数（ＮＣｈ）を比較し、少ない方を選択する。ここで、ＦＡＴを使うかＲＦＡＴを使うかはＢＰｓ＜ＢＰｄ＜ＢＰｈの条件を満たすかどうかで判断する。この条件を満たす場合は、ＲＦＡＴを使用する。このＢＰｓ＜ＢＰｄ＜ＢＰｈという条件を満たす上で、さらに（ＢＰｈ−ＢＰｄ  ）＜（ＢＰｄ−ＢＰｓ）の条件を満たす場合、ＲＦＡＴを利用できると考えられる。
【００３４】
この（ＢＰｈ−ＢＰｄ）＜（ＢＰｄ−ＢＰｓ）の条件を満たす場合、逆方向にリンクを辿る事のできるＲＦＡＴが存在する時、ＮＣｈは、ＮＣｈ＝ｉｐ（ＢＰｈ／ＢＣ）−  ｉｐ（ＢＰｄ／ＢＣ）により求めることが出来る。
【００３５】
（ＢＰｈ−ＢＰｄ）＜（ＢＰｄ−ＢＰｓ）の条件を満たしている場合、ＮＣｈ＝ｉｐ（ＢＰｈ／ＢＣ）−  ｉｐ（ＢＰｄ／ＢＣ）により求めることの出来るＮＣｈは、先頭（ＢＰｓ）から目的位置（ＢＰｄ）のＦＡＴ参照回数（ＮＣｓ）より必ず小さい。
【００３６】
以上のように、この実施例２によれば、ＢＰｓ＜ＢＰｈ＜ＢＰｄという条件を満たす上で、さらに（ＢＰｈ−ＢＰｄ  ）＜（ＢＰｄ−ＢＰｓ）の条件を満たす場合、ＲＦＡＴを利用することで目的位置（ＢＰｄ）のＦＡＴ参照回数（ＮＣｓ）を少なくすることが可能であり、目的位置（ＢＰｄ）のクラスタをアクセスするための検索を高速化できるファイル位置検索方法および装置を提供できる効果がある。
【実施例３】
【００３７】
この実施例３では、「対策１」の位置検索に使用したバイト位置とそのときのクラスタ番号の保持、利用と、「対策２」の逆ファイルアロケーションテーブルの作成、利用により、結果としてファイルアロケーションテーブルへの参照回数を減らし、ファイルの位置情報の決定までの高速化を実現する。
【００３８】
以下、前記実施例１で説明した、前回のバイト位置（ＢＰｈ）とその時の論理クラスタ番号（ＣＦｈ）を利用する論理クラスタ検索方法と、前記実施例２で説明した、逆方向のクラスタリンクテーブルＲＦＡＴを作成、利用する論理クラスタ検索方法とを共に利用する論理クラスタ検索方法について説明する。
【００３９】
図５は、この実施例３における既に作成済みのＲＦＡＴ及び、前回のバイト位置とその時の論理クラスタ番号を利用してのファイルの任意のバイト位置の論理クラスタの検索方法を含むフローチャートである。以下、このフローチャートに従ってこの論理クラスタ検索方法の動作を説明する。なお、図５において図４と同一または相当の処理ステップについては同一の符号を付してある。
【００４０】
先ず、ファイルのディレクトリエントリから、ファイルの先頭クラスタ（ＣＦｓ）を取得する（ステップＳ１１）。次に、前記実施例１の「対策１」を適用可能か否かについて判定する（ステップＳ１２）。この判定では、条件ＢＰｈ＜ＢＰｄを満たすか否かを判断する。この判定の結果、条件ＢＰｈ＜ＢＰｄを満たす場合にはステップＳ１３へ進み前記実施例１で説明した「対策１」を実行する。また、条件ＢＰｈ＜ＢＰｄを満たさない場合にはステップＳ３０へ進む。ステップＳ３０では、前記実施例２の「対策２」を適用可能か否かについて判定する。この判定では、前記実施例２で説明した条件（ＢＰｈ−ＢＰｄ）＜（ＢＰｄ−ＢＰｓ）を満たすか否かを判断する。この判定の結果、前記条件を満たす場合にはステップＳ４１へ進み、「対策１」を含む「対策２」を実行する。また、前記条件を満たさない場合にはステップＳ１５へ進む。
【００４１】
ステップＳ１３では「対策１」を実行し、ファイルの検索開始クラスタ（ＣＦ）を、記憶した論理クラスタ（ＣＦｈ）に設定、すなわちＣＦ＝ＣＦｈとする。続くステップＳ１４では、ＢＰｈを使用したＦＡＴの参照回数（ＮＣｈ）を ＮＣｈ＝ｉｐ（ＢＰｄ／ＢＣ）−ｉｐ（ＢＰｈ  ／ＢＣ）により求める。そして、ステップＳ１７、ステップＳ１８、ステップＳ１９によりＦＡＴの参照回数（ＮＣｈ）分リンクを辿り、求められたクラスタをアクセスする。
【００４２】
ステップＳ１５では、ファイルの検索開始クラスタ（ＣＦ）を記憶したファイルの先頭クラスタ（ＣＦｓ）に設定、すなわちＣＦ＝ＣＦｓとする。続くステップＳ１６では、ファイルの先頭から検索する場合のＦＡＴの参照回数（ＮＣｓ）をＮＣｓ＝ｉｐ（ＢＰｄ  ／ＢＣ）から求める。そして、ステップＳ１７、ステップＳ１８、ステップＳ１９によりＦＡＴの参照回数（ＮＣｈ）分リンクを辿り、求められたクラスタをアクセスする。
【００４３】
ステップＳ４１では、ファイルの検索開始クラスタ（ＣＦ）を、前記「対策１」により記憶した論理クラスタ（ＣＦｈ）に設定、すなわちＣＦ＝ＣＦｈとする。続くステップＳ４２では、「対策２」の逆ファイルアロケーションテーブルを利用し、ＢＰｈとＲＦＡＴを使用したＲＦＡＴの参照回数（ＮＣｈ）を、ＮＣｈ＝ｉｐ（  ＢＰｈ／ＢＣ）−ｉｐ（ＢＰｄ／ＢＣ）より求める。続くステップＳ４３、ステップＳ４４、ステップＳ４５では、前記設定したファイルの検索開始クラスタ（ＣＦｈ）から前記求めたＲＦＡＴの参照回数（ＮＣｈ）分、リンクを辿り、求められたクラスタをアクセスする。
【００４４】
以上のように、この実施例３によれば、位置検索に使用したバイト位置とそのときのクラスタ番号の保持、利用とＲＦＡＴを利用することで、目的位置（ＢＰｄ）のＦＡＴ参照回数（ＮＣｓ）を小さくでき、目的位置（ＢＰｄ）のクラスタをアクセスするための検索を高速化できるファイル位置検索方法および装置を提供できる効果がある。
【実施例４】
【００４５】
次に、ＲＦＡＴ作成方法について説明する。
図６は、このＲＦＡＴ作成方法を示すフローチャートである。以下、このフローチャートに従ってＲＦＡＴ作成方法を説明する。
先ず、総クラスタ数（ｔｏｔａｌ）を取得し（ステップＳ５１）、次に、ＦＡＴと同等のサイズのテーブル領域を用意し、その全ての領域を”空き”状態（０クリア）に設定する（ステップＳ５２）。そして、ｔｏｔａｌ＞０であるか否かを判定し（ステップＳ５３）、ｔｏｔａｌ＝０ならば終了する。また、ステップＳ５３においてｔｏｔａｌ＞０であれば、Ｎ＝ＦＡＴ［ｔｏｔａｌ］を取得し、Ｎが有効であるか否かを判定する（ステップＳ５４）。ステップＳ５４においてＮが有効な値であると判定した場合（次のクラスタにリンクする場合）、逆ＦＡＴのＮにｔｏｔａｌと登録する。すなわちＲＦＡＴ［Ｎ］＝ｔｏｔａｌとする（ステップＳ５６）。また、ステップＳ５４においてＮが有効な値でないと判定した場合、ｔｏｔａｌ＝ｔｏｔａｌ−１を行い、ステップＳ５３へ戻る。
【００４６】
このＲＦＡＴを作成・利用することにより、１ファイルのサイズが大きくなればなるほど、そのファイルの任意の位置にアクセスする際に、必要なＦＡＴ参照回数の期待値を減らすことができる。結果として、サイズの大きいファイルに対するアクセス速度の向上が期待できる。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施例１のファイル位置検索方法が適用されるディスク状記録媒体のディスクドライブ装置と、そのディスクドライブ装置に接続されたパーソナルコンピュータを示すブロック図である。
【図２】本発明の実施例１のディスクドライブ装置のディスクからＳＤＲＡＭなどのメモリに読み出したＦＡＴファイルシステムＦＦＳを示す概念図である。
【図３】標準的なファイルの任意のバイト位置の論理クラスタの検索方法を示すフローチャートである。
【図４】本発明の実施例１のファイル位置検索方法を示すフローチャートである。
【図５】本発明の実施例３におけるファイルの任意のバイト位置の論理クラスタの検索方法を含むフローチャートである。
【図６】本発明の実施例４のＲＦＡＴ作成方法を示すフローチャートである。
【符号の説明】
【００４８】
１９……システムコントローラ（ファイル位置検索手段）、５３……ディスク（記録媒体）。
【図１】
2005071447.tif 000003
【図２】
2005071447.tif 000004
【図３】
2005071447.tif 000005
【図４】
2005071447.tif 000006
【図５】
2005071447.tif 000007
【図６】
2005071447.tif 000008