(57)【特許請求の範囲】
【請求項１】
ファイル毎の管理データを格納するファイル管理領域を有する記録媒体に対し、情報を記録・再生する情報記録再生装置において、
前記記録媒体に記録する外部ホストコンピュータからの記録情報の少なくとも一部を前記記録媒体に記録する前に一時保存すると共に、前記記録媒体からの再生情報の少なくとも一部を前記外部ホストコンピュータに送信する前に一時保存するキャッシュメモリと、
前記キャッシュメモリに保存した情報の少なくとも一部を解析する解析部を有する前記記録媒体への情報の記録・再生を制御する制御部と
を備え、
前記制御部は、
前記解析部による解析結果に基づき、前記記録媒体のフォーマットを識別し、前記ファイル管理領域の位置を確定して、前記キャッシュメモリに前記ファイル管理領域の少なくとも一部を常時キャッシュすると共に、
前記記録媒体に同じ内容の前記ファイル管理領域が複数存在する場合は、複数の前記ファイル管理領域の内容を比較し、全てが一致する場合において前記キャッシュメモリに前記ファイル管理領域を１つのみ常時キャッシュし、
さらに、前記ファイル管理領域の特定アドレスへの書込が発生した場合、前記ファイル管理領域のキャッシュを中止する
ことを特徴とする情報記録再生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報記録再生装置、更に詳しくはファイル管理領域のキャッシュ部分に特徴のある情報記録再生装置に関する。
【０００２】
【従来の技術】
一般に光ディスク装置等の情報記録再生装置は、情報処理装置におけるホストコンピュータの外部記録装置として用いられているが、記録媒体に対するデータの書き込み処理及び読み出し処理はホストコンピュータとの間でのデータ転送処理速度よりも遅いため、近年では中間にキャッシュメモリを設け、このキャッシュメモリを介してデータ転送を行うことにより、データの記録処理や再生処理の高速化を図ったものが用いられてきている。特に、光ディスクを記録媒体として用いる光ディスク装置では、記録媒体への書き込み処理に多くの時間がかかるため、記録データや再生データを一時格納するディスクキャッシュメモリを設けたものが一般的である。
【０００３】
従来の光ディスク等の情報記録再生装置では、例えば特開平８−１１０８６８号公報のように、ホストコンピュータから最も頻繁にアクセスされるファイル管理領域の位置やサイズを、初期設定時にホストコンピュータから指定してもらった後に、キャッシュメモリに常時保存するものもある。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記特開平８−１１０８６８号公報では、初期投定時に、記録媒体上の複数の領域のうちのいずれかの領域からファイル管理テーブルを読み出してキャッシュバッファ上のファイル管理テーブル格納領域に転送する管理テーブル転送手段は有するが、ファイル管理領域の個数や位置及びサイズ等の設定方法は記述されていない。
【０００５】
すなわち、特開平８−１１０８６８号公報では、ホストコンピュータからファイル管理領域の位置やサイズを指定されなければファイル管理領域を常時キャッシュすることができないために、ホストコンピュータ（一般的には記録／再生動作を制御しているのはデバイスドライバと呼ばれているソフトウェア）と情報記録再生装置の双方がファイル管理領域を常時キャッシュするための機能を有しなければならないといった問題があり、そのためには特殊なデバイスドライバを使用しなければならない。
【０００６】
本発明は、上記事情に鑑みてなされたものであり、ディスクの論理フォーマットを解析しファイル管理領域を常時キャッシュすることで、ファイルの作成、削除及び修正時にファイル管理領域へのディスクアクセス回数を減らし、記録処理や再生処理を大幅に高速化することのできる情報記録再生装置を提供することを目的としている。
【０００７】
【課題を解決するための手段】
本発明の情報記録再生装置は、ファイル毎の管理データを格納するファイル管理領域を有する記録媒体に対し、情報を記録・再生する情報記録再生装置において、前記記録媒体に記録する外部ホストコンピュータからの記録情報の少なくとも一部を前記記録媒体に記録する前に一時保存すると共に、前記記録媒体からの再生情報の少なくとも一部を前記外部ホストコンピュータに送信する前に一時保存するキャッシュメモリと、前記キャッシュメモリに保存した情報の少なくとも一部を解析する解析部を有する前記記録媒体への情報の記録・再生を制御する制御部とを備え、
前記制御部は、
前記解析部による解析結果に基づき、前記記録媒体のフォーマットを識別し、前記ファイル管理領域の位置を確定して、前記キャッシュメモリに前記ファイル管理領域の少なくとも一部を常時キャッシュすると共に、
前記記録媒体に同じ内容の前記ファイル管理領域が複数存在する場合は、複数の前記ファイル管理領域の内容を比較し、全てが一致する場合において前記キャッシュメモリに前記ファイル管理領域を１つのみ常時キャッシュし、
さらに、前記ファイル管理領域の特定アドレスへの書込が発生した場合、前記ファイル管理領域のキャッシュを中止する
ことを特徴とする。
【０００８】
本発明の情報記録再生装置では、前記制御部が前記解析部による解析結果に基づき、前記記録媒体のフォーマットを識別し、前記ファイル管理領域の位置を確定して、前記キャッシュメモリに前記ファイル管理領域の少なくとも一部を常時キャッシュすることで、ファイルの作成、削除及び修正時にファイル管理領域へのディスクアクセス回数を減らし、記録処理や再生処理を大幅に高速化することを可能とする。
【０００９】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態について述べる。
【００１０】
図１ないし図１１は本発明の一実施の形態に係わり、図１は情報記録再生装置の構成を示す構成図、図２は図１のＣＰＵのメイン処理の流れを示すフローチャート、図３は図２のＦＡＴ＿Ｃｈｅｃｋの処理の流れを示すフローチャート、図４は図３のＦＡＴ＿Ｒｅａｄの処理の流れを示すフローチャート、図５は図２のＣＭＤ＿Ｒｅｃｅｉｖｅの処理の流れを示すフローチャート、図６は図５のＦＡＴ＿Ｗ＿Ｃａｃｈｅの処理の流れを示すフローチャート、図７は図５のＷ＿Ｃａｃｈｅの処理の流れを示すフローチャート、図８は図５のＦＡＴ＿Ｒ＿Ｃａｃｈｅの処理の流れを示すフローチャート、図９は図２のＷｒｉｔｅ＿Ｃａｃｈｅの処理の流れを示すフローチャート、図１０は図９のＦＡＴ＿Ｗｒｉｔｅの処理の流れを示すフローチャート、図１１は図２のＣＭＤ＿Ｅｘｅの処理の流れを示すフローチャートである。
【００１１】
本実施の形態では、情報記録再生装置の一例として光磁気ディスクを用いて記録再生を行う光磁気ディスクドライブ装置の構成例を示すが、これに限らず、ハードディスク装置、相変化型光ディスク装置、フロッピーディスク装置、あるいは光カード装置等の情報記録再生装置にも適用できる。
【００１２】
（構成）
光磁気ディスクドライブ装置である情報記録再生装置１は、図１に示すように、ホストコンピュータとインターフェースケーブルを介して接続されＳＣＳＩによるコマンドやデータのやり取りを制御（プロトコル制御）するＳＣＳＩ制御部２と、ＳＣＳＩ制御部２に接続されスピンドルモータ３により回転される記録媒体としてのディスク４に対するデータのやり取りを制御するディスク制御部５と、ディスク４に対して読み書きを行うデータを一時格納するキャッシュメモリ６と、装置各部の動作を制御するＣＰＵ７と、ディスク４のファイル管理領域を解析する解析部８を有するＣＰＵ７の動作プログラムを格納したファームウェアプログラム格納部９と、ＣＰＵ７の動作時のデータ等を格納する作業エリアとなるメインメモリ１０と、ディスク４に対するデータの記録／再生を行う記録再生ヘッド１１を制御するリード／ライト制御部１２とを有して構成されている。
【００１３】
ここで、ディスク４は例えば５１２Ｂｙｔｅ／Ｓｅｃｔｏｒで物理フォーマットされており、キャッシュメモリ６の容量は例えば１ＭＢ＝８００Ｈ  Ｂｌｏｏｋ（＝Ｓｅｃｔｏｒ）で、リングバッファとして使用される。
【００１４】
また、本実施の形態では、ディスク４がファイル名、ファイル番号、アドレス及びセクタ数等の管理データがファイル管理テーブル（以下、ＦＡＴ：ファイル・アロケーション・テーブル）により管理されるＦＡＴモードで論理フォーマットされている場合について説明する。
【００１５】
ＦＡＴモードで論理フォーマットされているディスク４は、Ｂｏｏｔ  Ｓｅｃｔｏｒ，ＦＡＴ１，ＦＡＴ２，Ｒｏｏｔ  ＤｉｒｅｃｔｏｒｙからなるＤファイル管理領域２１とユーザエリア２２の各領域が設けら、また、キャッシュメモリ６は、Ｂｏｏｔ  Ｓｅｃｔｏｒ，ＦＡＴ１（＝ＦＡＴ２），Ｒｏｏｔ  ＤｉｒｅｃｔｏｒｙからなるＣファイル管理領域２３とリングバッファ２４の各領域が設けられて構成される。
【００１６】
（作用）
ＣＰＵ７は、ファームウェアプログラム格納部９に格納されている動作プログラムに従い、図２に示すように、まず、ステップＳ１で制御に用いる各パラーメータ値の初期設定を行い、ステップＳ２で装置のイニシャライズを行う（スピンドルモータ３を回転駆動し、ヘッド１１によりディスク４への記録／再生が可能な状態にする）。
【００１７】
そして、ステップＳ３でディスク４のフォーマットがＦＡＴモードか否かを確認する（ＦＡＴ＿Ｃｈｅｃｋ）。
【００１８】
その後、ステップＳ４でリングバッファ２４に未書き込みのライトキャッシュがあるかどうか確認し、未書き込みのライトキャッシュがあればステップＳ５でディスク４への書き込み処理（Ｗｒｉｔｅ＿Ｃａｃｈｅ）を行う。
【００１９】
ここで、図中のステップＳ４からＳ６のループ中には、ホストコンピユータからのコマンドを受信することができ、その際には、コマンド受信割り込み処理（ＣＭＤ＿Ｒｅｃｅｉｖｅ）を行う。
【００２０】
ステップＳ４において未書き込みのライトキャッシュがなければ、ステップＳ６でコマンド受信があるかどうか（フラグｃｍｄ＝１かどうか）を確認し、コマンド受信し実行すべきコマンドがあればステップＳ７でコマンド実行処理（ＣＭＤ＿Ｅｘｅ）を行った後、ステップＳ８でコマンドを終了しフラグをクリアし（ｃｍｄ＝０）、ステップＳ４に戻り処理を繰り返す。
【００２１】
ステップＳ３でのＦＡＴ＿ＣｈｅｃｋにおけるＦＡＴモードか否かの確認は、図３に示すように、まず、ステップＳ１１でＤファイル管理領域２１のＢｏｏｔ  Ｓｅｃｔｏｒをリードしキャッシュメモリの先頭部分に保存する。
【００２２】
そして、ファームウェアプログラム格納部９の解析部８のプログラムによりステップＳ１２でＢｏｏｔ  Ｓｅｃｔｏｒを解析することでＦＡＴモードフォーマットのＢｏｏｔ  Ｓｅｃｔｏｒかどうか、すなわちディスク４がＦＡＴモードでフォーマットされているかどうか判別し、ディスク４がＦＡＴモードでフォーマットされていない場合は処理を終了し、ディスクがＦＡＴモードでフォーマットされていると判断すると、ステップＳ１３でＢｏｏｔ  ＳｅｃｔｏｒのデータからＤファイル管理領域２１のＦＡＴの数（本実施の形態では２とする）、ＦＡＴ１、ＦＡＴ２、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙのアドレスとサイズを求めキャッシュメモリ６のＣファイル管理領域２３を更新し、Ｃファイル管理領域２３がキャッシュメモリ６の大半を占めてユーザエリア２２の記録再生を高速に処理するためのリングバッファ（セグメント）２４を確保できないことを防ぐために、ステップＳ１４でＤファイル管理領域２１が所定の容量以上かどうか識別し所定容量以上の場合は処理を中断し、所定容量以下の場合はステップＳ１５でＦＡＴリード処理（ＦＡＴ＿Ｒｅａｄ）を行い、図２のステップＳ４に戻る。
【００２３】
ステップＳ１５でのＦＡＴ＿Ｒｅａｄは、図４に示すように、ステップＳ２１でＤファイル管理領域２１のＦＡＴ１とＦＡＴ２のデータをリードし、Ｃファイル管理領域２３のＢｏｏｔ  Ｓｅｃｔｏｒのデータの続くアドレスに保存する。
【００２４】
そして、ステップＳ２２でＤファイル管理領域２１のＦＡＴ１がＦＡＴフォーマットかどうか判別し、ＦＡＴフォーマットではない場合は処理を終了し、ＦＡＴフォーマットの場合は、ステップＳ２３でＦＡＴ１とＦＡＴ２（ＦＡＴ１のコピー）が一致するかを確認する。
【００２５】
ステップＳ２３での処理は、本実施の形態のＦＡＴモードでのキャッシュ制御ではＦＡＴ１とＦＡＴ２が等しいものとして、キャッシュメモリ６にはＦＡＴ１のみを常時キャッシュして、Ｄファイル管理領域２１においてＦＡＴ２へのＷ／Ｒ（ライト／リード）はＦＡＴ１へのＷ／Ｒに置き換えて処理するためである。
【００２６】
ステップＳ２３でＦＡＴ１とＦＡＴ２とが一致しない場合は、最後のＦＡＴ書き込みが異常終了しているということで、ＦＡＴ１とＦＡＴ２のいずれが正しいのか分からないので、ＦＡＴモードでのキャッシュ制御には移行しない。
【００２７】
ステップＳ２３でＦＡＴ１とＦＡＴ２とが一致すれば、ディスク４がＦＡＴモードでフォーマットされていて且つＦＡＴ１とＦＡＴ２が一致していることになり、ステップＳ２４でＤファイル管理領域２１のＲｏｏｔ  Ｄｉｒｅｃｔｏｒｙをリードし、キャッシュメモリ６のＣファイル管理領域２３のＦＡＴ１（＝ＦＡＴ２）に続くアドレスに保存する。
【００２８】
そして、ステップＳ２５でＤファイル管理領域２１をキャッシュするためのデータを更新すると共にキャッシュメモリ６のリングバッファ２４を通常のライトキャッシュやＲ／Ｗに使用するようにするためのデータ（リングバッファ２４の先頭アドレスとリングバッファ２４のサイズ及び最初に通常のライトキャッシュを行う場合のキャッシュメモリ６のアドレス等）の更新を行うことで、Ｄファイル管理領域２１の一部（Ｂｏｏｔ  Ｓｅｃｔｏｒ、ＦＡＴ１（＝ＦＡＴ２）及びＲｏｏｔ  Ｄｉｒｅｃｔｏｒｙ）が常時キャッシュされる。ステップＳ１１からステップＳ２５の間で処理が中断された場合は、キャッシュメモリ６全てがリングバッファ２４として使用される。
【００２９】
なお、ディスク４のＤファイル管理領域２１にはＢｏｏｔ  Ｓｅｃｔｏｒ、ＦＡＴ１、ＦＡＴ２及びＲｏｏｔ  Ｄｉｒｅｃｔｏｒｙがあるが、ＦＡＴ２はＦＡＴ１のコピーなので、ＦＡＴ２へのＷ／ＲはＦＡＴ１のＷ／Ｒへ置き換えて処理してキャッシュメモリの使用量を抑えるようにしている。また、Ｄファイル管理領域２１にはＳｕｂ  Ｄｉｒｅｃｔｏｒｙが設けられるが、Ｓｕｂ  Ｄｉｒｅｃｔｏｒｙは、ユーザがディレクトリを作るたびに作成されることと、また他の部分とは連続した位置に作られるわけではないことから、Ｂｏｏｔ  Ｓｅｃｔｏｒ、ＦＡＴ１、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙから簡単に位置を特定することができないので、本実施の形態では常時キャッシュするようにはしていない。
【００３０】
図２中のステップＳ４からＳ６のループ中にホストコンピユータからのコマンドを受信した際のコマンド受信割り込み処理（ＣＭＤ＿Ｒｅｃｅｉｖｅ）は、図５に示すように、まず、ステップＳ３１でホストコンピュータから送られてきたコマンドから、読み書き込みを行うアドレス（以下、ｌｂａ（論理ブロックアドレス）と記す）とブロック数（以下、ｌｅｎｇｔｈ（データの長さ）と記す）を設定する。
【００３１】
次、ステップＳ３２でに受信したコマンドがライトコマンドかをチェックし、ライトコマンドならステップＳ３３でｌｂａが０かをチェックし、ｌｂａ＝０ならばＢｏｏｔ  Ｓｅｃｔｏｒとなるため、ステップＳ３４でＦＡＴモードを止めＣファイル管理領域２３を解除し設定をＦＡＴモードでない通常モードの時の値に変え、コマンドを受信したことを示すフラグをセットする（ｃｍｄ＝１）。
【００３２】
このコマンド受信フラグ（ｃｍｄ）がセットされると、図２で説明したようにステップＳ６でコマンド受信を認識し、ステップＳ７でコマンド実行処理（ＣＭＤ＿Ｅｘｅ）を行い、ステップＳ８でコマンド受信フラグ（ｃｍｄ）をクリアする。
【００３３】
図５に戻り、ステップＳ３３でｌｂａが０でないと認識すると、ステップＳ３５で現在ＦＡＴモードで且つｌｂａが常時キャッシュしているＤファイル管理領域２１のＢｏｏｔ  Ｓｅｃｔｏｒ、ＦＡＴ１、ＦＡＴ２、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙのｌｂａ＝０からの連続したエリア（以下、ＦＡＴ部と記す）の範囲かをチェックする。
【００３４】
そして、ＦＡＴ部ならばステップＳ３６でＦＡＴ部のライトキャッシュを行い（ＦＡＴ＿Ｗ＿Ｃａｃｈｅ）、ＦＡＴモードでないまたはＦＡＴ部以外の場合は、ステップＳ３７で通常のライトキャッシュを行う（Ｗ＿Ｃａｃｈｅ）。
【００３５】
ステップＳ３２でライトコマンドでないと認識した場合、すなわちリードコマンドの場合は、ステップＳ３８で現在ＦＡＴモードで且つｌｂａがＦＡＴ部の範囲かをチェックする。そして、ＦＡＴ部ならば、ステップＳ３９でキャッシュメモリ６からホストコンピユータにデータを返す、すなわち、ＦＡＴ部のリードキャッシュを行う（ＦＡＴ＿Ｒ＿Ｃａｃｈｅ）。ステップＳ３８においてＦＡＴモードでないまたはＦＡＴ部以外の場合は、ステップＳ４０で通常のディスク４からのリードを行うためにコマンド受信フラグをセットする（ｃｍｄ＝１）。
【００３６】
ステップＳ３６におけるＦＡＴ＿Ｗ＿Ｃａｃｈｅは、図６に示すように、まず、ステップＳ５１でｌｂａがＦＡＴ１かを確認する。ｌｂａがＦＡＴ１ならばステップＳ５２で指定されたｌｂａに相当するデータが保存されているキャッシュメモリ６の位置を算出し、ステップＳ５３でホストコンピュータからデータを受信し、ステップＳ５４でＦＡＴ部の書き込みを要求するフラグをセットする。
【００３７】
ステップＳ５１においてｌｂａがＦＡＴ１でない場合は、ステップＳ５５でｌｂａがＦＡＴ２かをチェックし、ｌｂａがＦＡＴ２の場合はステップＳ５６でｌｂａに相当するデータが保存されているキャッシュメモリ６の位置を算出し、同様にステップＳ５３でホストコンピュータからデータを受信し、ステップＳ５４でＦＡＴ部の書き込みを要求するフラグをセットする。
【００３８】
ステップＳ５５においてｌｂａがＦＡＴ２でもない場合はＲｏｏｔ  Ｄｉｒｅｃｔｏｒｙとなり、ステップＳ５７でｌｂａに相当するキャッシュメモリ６の位置を算出し、ステップＳ５３でホストコンピュータからデータを受信し、ステップＳ５４でＦＡＴ部の書き込みを要求するフラグをセットする。
【００３９】
常時キャッシユしているＦＡＴ部以外の通常のライトキャッシュである図５のステップＳ３７におけるＷ＿Ｃａｃｈｅは、図７に示すように、まず、ステップＳ６１でリングバッファ２４の使用状況からデータを受信するリングバッファ２４のアドレスを算出しｌｂａやｌｅｎｇｔｈと共に記憶して、未書き込みのキャッシュがあることを示すフラグをセットする。そして、ステップＳ６２でホストコンピュータからデータを受信する。
【００４０】
常時キャッシュしているＦＡＴ部のリードキャッシュである図５のステップＳ３９におけるＦＡＴ＿Ｒ＿Ｃａｃｈｅは、図８に示すように、まず、ステップＳ７１でｌｂａがＢｏｏｔ  Ｓｅｃｔｏｒかをチェックし、Ｂｏｏｔ  ＳｅｃｔｏｒでないならばステップＳ７２でｌｂａがＦＡＴ１かをチェックし、さらにＦＡＴ１でないならばステップＳ７３でｌｂａがＦＡＴ２かＲｏｏｔ  Ｄｉｒｅｃｔｏｒｙかをそれぞれチェックする。
【００４１】
ステップＳ７１においてｌｂａがＢｏｏｔ  ＳｅｃｔｏｒならばステップＳ７４で、ステップＳ７２においてｌｂａがＦＡＴ１ならばステップＳ７５で、ステップＳ７３においてｌｂａがＦＡＴ２ならばステップＳ７６で、ステップＳ７３においてｌｂａがＲｏｏｔ  ＤｉｒｅｃｔｏｒｙならばステップＳ７７で、それぞれｌｂａに相当するキャッシュメモリ６の位置を算出し、ステップＳ７８ででホストコンピュータへデータを送信する。
【００４２】
キャッシュした通常のライトキャッシュ及び常時キャッシュしているＦＡＴ部をディスク４にライトする図２のステップＳ５におけるＷｒｉｔｅ＿Ｃａｃｈｅは、図９に示すように、まず、ステップＳ８１で通常のライトキャッシュでディスク４に未書き込みのキャッシュがあるかをチェックする。未書き込みの通常のライトキャッシュがある場合は、ステップＳ８２で一番古いキャッシュをディスク４にライトする。そしてステップＳ８３で未書き込みのキャッシュのデータを更新し、このステップＳ８１〜Ｓ８３の動作を未書き込みのキャッシュがなくなるまで繰り返す。
【００４３】
ステップＳ８１で未書き込みの通常のライトキャッシュがないと判断した場合は、ステップＳ８４でＦＡＴ部が未書き込み（ＦＡＴ部書き込み要求フラグがセットされている）且つ、コマンド受信（実行待ち）状態でない（Ｂｏｏｔ  Ｓｅｃｔｏｒへのライトコマンド実行待ち状態を含む）かを確認し、ＦＡＴ部未書き込み且つコマンド実行待ちでないときは、ステップＳ８５でディスク４のＤファイル管理領域２１のＦＡＴ部の書込処理を行う（ＦＡＴ＿Ｗｒｉｔｅ）。
【００４４】
本実施の形態ではＦＡＴ部によりＦＡＴ１、ＦＡＴ２、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙを一括して未書き込み／書き込み済みを管理しているが、ディスク４への書き込みは各々別々に行っている。
【００４５】
そこで、ステップＳ８５のＦＡＴ＿Ｗｒｉｔｅは、図１０に示すように、まずステップＳ９１でＦＡＴ部書き込み要求フラグをクリアし、ステップＳ９２でＦＡＴ部のライトキャッシュが行われたれたか（ＦＡＴ部書き込み要求があるか）、未書き込みの通常のライトキャッシュがあるか、実行待ちのコマンドがあるかをチェックする。いずれかがある場合はＦＡＴ部の書き込みを中断し、ステップＳ９３でＦＡＴ部書き込み要求フラグをセットして終了する。またいずれも無い場合は、ステップＳ９４でＦＡＴ１をディスク４へライトする。
【００４６】
同様に、ＦＡＴ２の書き込み前に、ステップＳ９５でＦＡＴ部のライトキャッシュが行われたれたか（ＦＡＴ部書き込み要求があるか）、未書き込みの通常のライトキャッシュがあるか、実行待ちのコマンドがあるかをチェックする。いずれかがある場合はＦＡＴ部の書き込みを中断し、ステップＳ９３でＦＡＴ部書き込み要求フラグをセットして終了する。またいずれも無い場合は、ステップＳ９６でＦＡＴ２をディスク４へライトする。
【００４７】
また、同様に、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙの書き込み前に、ステップＳ９７でＦＡＴ部のライトキャッシュが行われたれたか（ＦＡＴ部書き込み要求があるか）、未書き込みの通常のライトキャッシュがあるか、実行待ちのコマンドがあるかをチェックする。いずれかがある場合はＦＡＴ部の書き込みを中断し、ステップＳ９３でＦＡＴ部書き込み要求フラグをセットして終了する。またいずれも無い場合は、ステップＳ９８でＲｏｏｔ  Ｄｉｒｅｃｔｏｒｙをディスク４へライトする。
【００４８】
通常は、ステップＳ９２、Ｓ９５、Ｓ９７でライトが中断されることはないが、ホストコンピュータの動作が遅い場合、複数のファイル作成間隔が長くなり、全てのファイル作成が終了する前に、ＦＡＴ＿Ｗｒｉｔｅの実行が開始されて、ステップＳ９２、Ｓ９５、Ｓ９７でライトが中断されることがありえる。そのような場合は、最後のコマンド実行からＦＡＴ＿Ｗｒｉｔｅ開始までに所定時間待つようにすればよい。
【００４９】
最後に、図２のステップＳ７におけるコマンド実行処理（ＣＭＤ＿Ｅｘｅ）について説明する。ＣＭＤ＿Ｅｘｅは、図１１に示すように、ステップＳ１０１でライトコマンドかをチェックし、ライトコマンドならばステップＳ１０２でホストコンピュータからのデータの受信及びディスクへの書き込みを行う。Ｂｏｏｔ  Ｓｅｃｔｏｒへのライトの場合は、書き込み終了後にＦＡＴモードチェック（図３のＦＡＴ＿Ｃｈｅｃｋ）を実行すれば、再度ＦＡＴモードで論理フォーマットされた場合ならばＦＡＴモードに移行することができる。ステップＳ１０１でライトコマンドでない、すなわちリードコマンドならば、ステップＳ１０３でディスクからのデータのリード及びホストコンピユータへのデータ送信を行う。
【００５０】
以上のような処理により、ＣＰＵ７はディスク４へのライトを行う場合は、まずヘッド１１をライトを行うｌｂａに駆動制御してアクセスさせ、その後リード／ライト制御部１２を制御し、キャッシュメモリ６に保存されているデータをリード／ライト制御部１２でディスク４に書き込めるデータに変調してディスク４にライトする。またディスク４からのリードを行う場合は、まずヘッド１１をリードを行うｌｂａに駆動制御してアクセスさせ、その後リード／ライト制御部１２を制御し、ディスク４からのリードデータをホストコンピュータへ送信するデータに復調して、ホストコンピュータにデータを送信する。
【００５１】
ここで、複数のファイルをホストコンピュータのハードディスクＨＤＤから記録再生装置１のディスク４のＲｏｏｔ  Ｄｉｒｅｃｔｏｒｙ内にコピーした場合について説明する。
【００５２】
まず、ホストコンピュータは、Ｂｏｏｔ  Ｓｅｃｔｏｒのリードコマンドを実行してディスク４がＦＡＴフォーマットかを確認する。このリードコマンドはＦＡＴ＿Ｒ＿Ｃａｃｈｅにより、ディスク４へアクセスすることなく、キャッシュメモリ６からデータが転送される。
【００５３】
同様に、以降のＢｏｏｔ  Ｓｅｃｔｏｒ、ＦＡＴ１、ＦＡＴ２、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙへのリードコマンドは、全てＦＡＴ＿Ｒ＿Ｃａｃｈｅにより、ディスク４へアクセスすることなく、キャッシュメモリ６からデータが転送される。
【００５４】
次に、ホストコンピュータは、ファイルをコピーするアドレスを求めるために、ＦＡＴ１のリードコマンドを実行し、その後、リードしたデータそのままで、ＦＡＴ１へのライトコマンドを実行する。このＦＡＴ１へのライトコマンドは、ＦＡＴ＿Ｗ＿Ｃａｃｈｅによりデータをキャッシュメモリ６へ転送しただけで終了する。また、ＦＡＴ１のディスク４への書き込みは、引き続き実行されるリードコマンドとライトコマンドが優先されて処理されるので、この時点ではまだ実行されない。
【００５５】
同様に、以降のＦＡＴ１、ＦＡＴ２、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙへのライトコマンドは、全てＦＡＴ＿Ｗ＿Ｃａｃｈｅにより、ディスク４へアクセスすることなく、キャッシュメモリ６へデータが転送されて終了し、引き続き実行されるリードコマンドとライトコマンドを優先して処理するので、全てのコマンドが終了するまで実行されない。
【００５６】
さらに、ホストコンピュータは、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙを更新するためにＲｏｏｔ  Ｄｉｒｅｃｔｏｒｙをリードし、１つ目のファイル情報を追加してＲｏｏｔ  Ｄｉｒｅｃｔｏｒｙのライトを行う。
【００５７】
その後、ホストコンピュータは、１つ目のファイルをディスク４のユーザエリア２２にライトする。このライトコマンドは、Ｗ＿Ｃａｃｈｅによりデータを転送しただけで終了するが、Ｗｒｉｔｅ＿Ｃａｃｈｅによりすぐにディスク４へライトされる。
【００５８】
そして、ホストコンピュータは、１つ目のファイル情報を追加した、ＦＡＴ１とＦＡＴ２のライトを行う。
【００５９】
この時点で、ディスク４へのアクセスは、１つ目のファイルをユーザエリア２２にライトする時の１回しか行われていない。
【００６０】
２つ目のファイルに関しても同様に行われる。
【００６１】
全てのファイルのコピー（リードコマンドとライトコマンド）が終了すると、ＦＡＴ＿Ｗｒｉｔｅにより、ＦＡＴ１、ＦＡＴ２、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙが各々１回のみライトされる。
【００６２】
（効果）
このように本実施の形態では、リード時には、ディスク４のＤファイル管理領域２１の一部を常時キャッシュしているために、Ｂｏｏｔ  Ｓｅｃｔｏｒ、ＦＡＴ１とＲｏｏｔ  Ｄｉｒｅｃｔｏｒｙへのそれぞれ複数のリードが、全てディスク４にアクセスされることなくキャッシュメモリ６から送信されるので、大幅に高速にできる。
【００６３】
同様にライトはＦＡＴ１、ＦＡＴ２及びＲｏｏｔ  Ｄｉｒｅｃｔｏｒｙにそれぞれ複数行われるが、これも全てのコマンド終了後に各々１回行われるだけになるので、大幅に高速にできる。
【００６４】
なお、ＦＡＴ＿Ｃｈｅｃｋは、電源投入時やＢｏｏｔ  Ｓｅｃｔｏｒライト時の他にも、記録再生装置が光磁気ディスク装置のように媒体交換可能な場合はディスク交換毎に行っても良い。また、事前に行わないで、ファイル管理領域のリードまたはライト時等に行うようにしても良い。
【００６５】
また、本実施の形態ではＦＡＴ１とＲｏｏｔ  Ｄｉｒｅｃｔｏｒｙの全領域を常時キャッシュしたが、一部の領域しか使用されていない場合等は、一部のみを常時キャッシュするようにしても良い。
【００６６】
さらに、本実施の形態ではＦＡＴフォーマットに関して説明したが、他のフォーマット（ＮＴＦＳ、ＨＦＳ、ＨＰＦＳ等）にも適用できる。
【００６７】
【発明の効果】
以上説明したように本発明の情報記録再生装置によれば、制御部が解析部による解析結果に基づき、記録媒体のフォーマットを識別し、ファイル管理領域の位置を確定して、キャッシュメモリにファイル管理領域の少なくとも一部を常時キャッシュするので、ファイルの作成、削除及び修正時にファイル管理領域へのディスクアクセス回数を減らし、記録処理や再生処理を大幅に高速化することが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係る情報記録再生装置の構成を示す構成図
【図２】図１のＣＰＵのメイン処理の流れを示すフローチャート
【図３】図２のＦＡＴ＿Ｃｈｅｃｋの処理の流れを示すフローチャート
【図４】図３のＦＡＴ＿Ｒｅａｄの処理の流れを示すフローチャート
【図５】図２のＣＭＤ＿Ｒｅｃｅｉｖｅの処理の流れを示すフローチャート
【図６】図５のＦＡＴ＿Ｗ＿Ｃａｃｈｅの処理の流れを示すフローチャート
【図７】図５のＷ＿Ｃａｃｈｅの処理の流れを示すフローチャート
【図８】図５のＦＡＴ＿Ｒ＿Ｃａｃｈｅの処理の流れを示すフローチャート
【図９】図２のＷｒｉｔｅ＿Ｃａｃｈｅの処理の流れを示すフローチャート
【図１０】図９のＦＡＴ＿Ｗｒｉｔｅの処理の流れを示すフローチャート
【図１１】図２のＣＭＤ＿Ｅｘｅの処理の流れを示すフローチャート
【符号の説明】
１…情報記録再生装置
２…ＳＣＳＩ制御部
３…スピンドルモータ
４…ディスク
５…ディスク制御部
６…キャッシュメモリ
７…ＣＰＵ
８…解析部
９…ファームウェアプログラム格納部
１０…記録再生ヘッド
１１…リード／ライト制御部
２１…Ｄファイル管理領域
２２…ユーザエリア
２３…Ｃファイル管理領域
２４…リングバッファ
【図１】
0004160139.tif 000002
【図２】
0004160139.tif 000003
【図３】
0004160139.tif 000004
【図４】
0004160139.tif 000005
【図５】
0004160139.tif 000006
【図６】
0004160139.tif 000007
【図７】
0004160139.tif 000008
【図８】
0004160139.tif 000009
【図９】
0004160139.tif 000010
【図１０】
0004160139.tif 000011
【図１１】
0004160139.tif 000012