(57)【特許請求の範囲】
【請求項１】
ディスク媒体に記憶すべきデータ或いはディスク媒体から読み出したデータを一時的に格納するデータバッファを備え、前記ディスク媒体には、情報単位であるファイルの各データを記憶するための第１の情報の記憶部と、ファイルの格納場所を示す索引テーブルである第２の情報の記憶部、及び、前記ファイルの一覧情報である第３の情報の記憶部が少なくとも設けられており、これら各記憶部の情報により所望のデータを読み書きする記憶装置における、前記データバッファの管理方法であって、
前記データバッファの記憶領域を、少なくとも前記第１の情報の記憶領域と、前記第２の情報の記憶部の記憶容量と一致させた前記第２の情報の記憶領域、及び、前記第３の情報の記憶領域が存在するように、前記各記憶領域の境界アドレスを固定して分割しておき、
前記ディスク媒体からのデータの読み出し時に前記第１の情報の記憶領域が一杯になった時はアクセスカウンタ値に基づいてデータを記憶し、
前記第２の情報の記憶部から前記第２の情報を読み出して前記第２の情報の記憶領域に記憶する際には、前記第２の情報の記憶部から該第２の情報の記憶部に記憶されている全てのデータの読み出しが完了するか他のデータ読み出し指示がくるまで、前記第２の情報の記憶部から読み出したデータを前記第２の情報の記憶領域の前記第２の情報の記憶部のアドレスに対応するアドレスに記憶し、
前記第３の情報の記憶部から読み出したデータは前記第３の情報の記憶領域に記憶して保持するようにしたことを特徴とするデータバッファの管理方法。
【請求項２】
請求項１に記載のデータバッファの管理方法において、
前記データバッファの第３の情報の記憶領域の記憶容量を、前記ディスク媒体の第３の情報の記憶部の記憶容量と一致させ、
前記第３の情報の記憶部から前記第３の情報を読み出して前記第３の情報の記憶領域に記憶する際には、前記第３の情報の記憶部から該第３の情報の記憶部に記憶されている全ての情報の読み出しが完了するか他のデータ読み出し指示がくるまで、前記第３の情報の記憶部から読み出したデータを前記第３の情報の記憶領域の前記第３の情報の記憶部のアドレスに対応するアドレスに記憶して保持するようにしたことを特徴とするデータバッファの管理方法。
【請求項３】
ディスク媒体に記憶すべきデータ或いはディスク媒体から読み出したデータをホストの動作速度と変わらない速度で一時的に格納するデータバッファを備え、前記ディスク媒体には、情報単位であるファイルの各データを記憶するための第１の情報の記憶部と、ファイルの格納場所を示す索引テーブルである第２の情報の記憶部、及び、前記ファイルの一覧情報である第３の情報の記憶部が少なくとも設けられており、これら各記憶部の情報により所望のデータを読み書きする記憶装置における、前記データバッファの管理方法であって、
前記データバッファの記憶領域を、境界アドレスを固定して記憶容量の大きい領域と小さい領域の２つの領域に分割し、前記第２の情報の記憶部の記憶容量と一致させた記憶容量の小さい領域の方は、前記ディスク媒体の前記第２の情報の記憶部のデータを専用に記憶する領域とし、記憶容量の大きい領域の方は、前記ディスク媒体の第３の情報の記憶部のデータと、第１の情報の記憶部のデータの共通の記憶領域とし、
前記ディスク媒体からのデータの読み出し時に、前記第２の情報の記憶部から前記第２の情報を読み出して前記データバッファの記憶容量の小さい領域に記憶する際には、前記ディスク媒体の前記第２の情報の記憶部のデータは、該第２の情報の記憶部に記憶されている全ての情報の読み出しが完了するか他のデータ読み出し指示がくるまで前記データバッファの記憶容量の小さい領域の前記第２の情報の記憶部のアドレスに対応するアドレスに記憶して保持し、
前記第１の情報の記憶部から読み出したデータと前記第３の情報の記憶部から読み出したデータは、前記記憶容量の大きい領域を共通に使用して記憶して保持し、該記憶容量の大きい領域が一杯になった時は、前記読み出したデータをアクセスカウンタ値に基づいて記憶して保持するようにしたことを特徴とするデータバッファの管理方法。
【請求項４】
請求項１から３の何れか１項に記載のデータバッファの管理方法であって、前記データバッファの記憶領域が一杯になった時に、新たなデータを記憶するバッファアドレスを、最も古いアクセスカウンタ値を有するアドレスからにしたことを特徴とするデータバッファの管理方法。
【請求項５】
請求項１から３の何れか１項に記載のデータバッファの管理方法であって、前記データバッファの記憶領域が一杯になった時に、新たなデータを記憶するバッファアドレスを、最も低いアクセスカウンタ値を有するアドレスからにしたことを特徴とするデータバッファの管理方法。
【請求項６】
請求項１から３の何れか１項に記載のデータバッファの管理方法であって、前記記憶装置が光ディスク装置であることを特徴とするデータバッファの管理方法。
【請求項７】
請求項６に記載のデータバッファの管理方法であって、前記第１の情報の記憶部がデータ部であり、前記第２の情報の記憶部が索引テーブル部であり、前記第３の情報の記憶部がディレクトリ部であることを特徴とするデータバッファの管理方法。
【請求項８】
請求項７に記載のデータバッファの管理方法であって、前記データバッファがキャッシュメモリであることを特徴とするデータバッファの管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は記憶装置におけるデータバッファの管理方法に関し、特に、光ディスク装置を記憶装置として用いたホストコンピュータのオペレーティングシステム（以後ＯＳと言う）における光ディスク装置が保有するデータバッファの管理方法に関する。
【０００２】
従来、光ディスク装置を用いたファイルシステムにおいては、ホストコンピュータの処理速度に比べて、光ディスク装置の読み／書き速度が遅い（例えば、ホストコンピュータの動作クロックが２００ＭＨｚの時に、光ディスク装置の動作クロックが２５ＭＨｚ程度）ために、データの転送速度を光ディスク装置のデータの読み／書き速度に合わせると、ホストコンピュータの処理能力が低下してしまうという問題があった。
【０００３】
そこで、光ディスク装置をホストコンピュータに接続して使用する場合には、光ディスク装置内にキャッシュメモリと呼ばれるデータ転送速度の速いデータバッファを内蔵させておき、ホストコンピュータからの命令やデータのうち、後で使用される可能性の高いものをこのキャッシュメモリに一旦蓄えることによって、ホストコンピュータの処理能力を向上させていた。このキャッシュメモリはとりあえずデータを全てもらって正常終了を報告し、正常終了が報告されれば、ホストコンピュータのＯＳが別のタスクを動かせるので効率的である。このようにキャッシュメモリに一旦貯めたデータを後で使用する制御はキャッシュ制御と呼ばれている。このキャッシュ制御を行うのは、光ディスク装置のファームウェア、すなわち、ＭＰＵの中のＲＯＭのプログラムである。
【０００４】
このキャッシュ制御について更に詳しく説明すると、例えば、光ディスク装置にデータを書き込む場合は、データは光ディスク装置内のキャッシュメモリに一旦書き込まれ、キャッシュメモリ内のデータはゆっくり光ディスクに書き込まれる。一方、光ディスク装置からデータを読み出す場合は、光ディスクから読み出されたデータが一度キャッシュメモリに書き込まれた後に転送される。ところが、光ディスク装置から初めてデータを読み出す時は、キャッシュメモリ内にデータがないので、データの転送速度は光ディスク装置の読み出し速度になってしまう。ＯＳ側からの要求で１個のファイルを読む場合は、最初のコマンドにより１つのセクタが読み出される。次にＯＳから出るコマンドは次のセクタ（直ぐ後ろに書いてあるデータ）を読み出す可能性が高いので、光ディスク装置側は、１つのコマンドが来てＯＳ側に正常終了を返したら、次のコマンドが来ないうちに次のセクタのデータ読み出しを開始してキャッシュメモリに貯めておく処理を行う。キャッシュメモリに貯めたデータが次のコマンドで読み出されるデータに一致（ヒット）すれば、貯めたデータをキャッシュメモリから転送することができる。
【０００５】
ところが、次のコマンドが指示する読み出しセクタが、予めキャッシュメモリに貯めておいたセクタと異なる場合（セクタがヒットしなかった場合）は、もう１度処理時間をかけて光ディスク装置の指示されたセクタのデータが読み出されるので効率が悪い。よって、光ディスク装置からのデータ読み出し時のキャッシュメモリに予め記憶したデータのヒット率の向上が望まれている。
【０００６】
【従来の技術】
コンピュータで扱われる情報は、プログラムとデータの両方があるが、これらの保存、読み出し、検索、修正等の整理や作業をし易くするために、プログラムとデータは、あるまとまった情報単位（これはファイルと呼ばれる）毎に１つ１つ名前が付けられて処理される。ホストコンピュータのＯＳは、全ての記憶装置に対して、独自の制御方式を用いることにより記憶装置が保有する記憶領域上のデータ管理を行っている。制御方式は様々だが、最低でも以下の３部構成を持ってデータが管理される。
【０００７】
(1) 検索テーブル部（File Allocation Table 部、以後ＦＡＴ部という）
(2) ディレクトリ部 (Directory 部、以後ＤＩＲ部という）、及び
(3) データ部
ＦＡＴ部は、光ディスク装置のディスク媒体の複数のセクタに跨がって記憶されたファイルの、次のセクタのアドレスを記憶するものであり、ＤＩＲ部は、ファイルの先頭アドレスとファイル名を記憶するものであり、データ部はデータを記憶するものである。
【０００８】
ＯＳはファイルデータを読み取ろうとする際は、最初にＦＡＴ部及びＤＩＲ部からデータ部に関する情報を読み取り、読み取った情報を基にしてデータ部からデータを読み取る。すなわちデータ部からデータを読み取ろうとする場合には、必ずＦＡＴ部及びＤＩＲ部に対する読み取り作業が必要となる。
【０００９】
【発明が解決しようとする課題】
しかしながら、従来のキャッシュ制御方式では、キャッシュメモリからのＦＡＴ部、ＤＩＲ部、及びデータ部の読み取り手順を意識しておらず、ＯＳの読み取り指示に応じて、ランダムにＦＡＴ部、ＤＩＲ部、及びデータ部をディスク媒体から読み取ってはキャッシュメモリに記憶し、更に、次の指示が来るまでは前回の指示で読み取ったデータに続くデータを先読みしてキャッシュメモリに記憶していたために、データ部が分散されている場合には、ＦＡＴ部とＤＩＲ部がキャッシュメモリ上に存在する確率が低いという課題があった。
【００１０】
この課題について具体的に説明すると、従来の技術ではキャッシュメモリにおいて、ＦＡＴ部、ＤＩＲ部、及びデータ部を記憶するための領域が分かれていないので、初めにＦＡＴ部の読み出し指令が来たら、ＦＡＴ部の最初のセクタのデータが読み出された後に、ＦＡＴ部の次のセクタ以降のデータが読み出されてキャッシュメモリに記憶される。ところが、次の読み出し指令がＦＡＴ部ではなくデータ部であると、折角先読みされたＦＡＴ部のデータの上にデータ部のあるセクタのデータが上書きされて記憶され、この後にデータ部の次のセクタのデータが読み出されて記憶されて行くので、折角先読みされたＦＡＴ部のデータが潰されていく。よって、この後にＦＡＴ部の読み出し指令が来ても、既にキャッシュメモリ上にはＦＡＴ部のデータはなく、ＦＡＴ部がヒットしないのである。このようなことは、ＤＩＲ部やデータ部についても同様である。
【００１１】
そこで、本発明の目的は、光ディスク装置のような記憶装置が保有するデータバッファ上のデータ管理が複数種類のデータによって行われ、記憶媒体からのデータの読み出し時に各データの先読みが行われてデータバッファに記憶される記憶装置において、データバッファの記憶領域を管理することにより、先読みされた複数種類の異なるデータが消去されることがなく、データ読み出し時に読み出したいデータがデータバッファ上に存在する確率が高い記憶装置におけるデータバッファの管理方法を提供することである。
【００１２】
【課題を解決するための手段】
前記目的を達成する本発明の特徴は、以下に第１から第８の発明として示される。
第１の発明は、ディスク媒体に記憶すべきデータ或いはディスク媒体から読み出したデータを一時的に格納するデータバッファを備え、ディスク媒体には、情報単位であるファイルの各データを記憶するための第１の情報の記憶部と、ファイルの格納場所を示す索引テーブルである第２の情報の記憶部、及び、ファイルの一覧情報である第３の情報の記憶部が少なくとも設けられており、これら各記憶部の情報により所望のデータを読み書きする記憶装置における、データバッファの管理方法であって、データバッファの記憶領域を、少なくとも前記第１の情報の記憶領域と、第２の情報の記憶部の記憶容量と一致させた第２の情報の記憶領域、及び、第３の情報の記憶領域が存在するように、各記憶領域の境界アドレスを固定して分割しておき、ディスク媒体からのデータの読み出し時に第１の情報の記憶領域が一杯になった時はアクセスカウンタ値に基づいてデータを記憶し、第２の情報の記憶部から第２の情報を読み出して第２の情報の記憶領域に記憶する際には、第２の情報の記憶部から該第２の情報の記憶部に記憶されている全てのデータの読み出しが完了するか他のデータ読み出し指示がくるまで、第２の情報の記憶部から読み出したデータを第２の情報の記憶領域の第２の情報の記憶部のアドレスに対応するアドレスに記憶し、第３の情報の記憶部から読み出したデータは第３の情報の記憶領域に記憶して保持するようにしたことを特徴とするものである。
【００１３】
第２の発明は、第１の発明において、データバッファの第３の情報の記憶領域の記憶容量を、ディスク媒体の第３の情報の記憶部の記憶容量と一致させ、第３の情報の記憶部から第３の情報を読み出して第３の情報の記憶領域に記憶する際には、第３の情報の記憶部から該第３の情報の記憶部に記憶されている全ての情報の読み出しが完了するか他のデータ読み出し指示がくるまで、第３の情報の記憶部から読み出したデータを第３の情報の記憶領域の第３の情報の記憶部のアドレスに対応するアドレスに記憶して保持するようにしたものである。
【００１４】
第３の発明は、ディスク媒体に記憶すべきデータ或いはディスク媒体から読み出したデータをホストの動作速度と変わらない速度で一時的に格納するデータバッファを備え、ディスク媒体には、情報単位であるファイルの各データを記憶するための第１の情報の記憶部と、ファイルの格納場所を示す索引テーブルである第２の情報の記憶部、及び、ファイルの一覧情報である第３の情報の記憶部が少なくとも設けられており、これら各記憶部の情報により所望のデータを読み書きする記憶装置における、データバッファの管理方法であって、データバッファの記憶領域を、境界アドレスを固定して記憶容量の大きい領域と小さい領域の２つの領域に分割し、第２の情報の記憶部の記憶容量と一致させた記憶容量の小さい領域の方は、ディスク媒体の第２の情報の記憶部のデータを専用に記憶する領域とし、記憶容量の大きい領域の方は、ディスク媒体の第３の情報の記憶部のデータと、第１の情報の記憶部のデータの共通の記憶領域とし、ディスク媒体からのデータの読み出し時に、第２の情報の記憶部から第２の情報を読み出してデータバッファの記憶容量の小さい領域に記憶する際には、ディスク媒体の第２の情報の記憶部のデータは、該第２の情報の記憶部に記憶されている全ての情報の読み出しが完了するか他のデータ読み出し指示がくるまでデータバッファの記憶容量の小さい領域の第２の情報の記憶部のアドレスに対応するアドレスに記憶して保持し、第１の情報の記憶部から読み出したデータと第３の情報の記憶部から読み出したデータは、記憶容量の大きい領域を共通に使用して記憶して保持し、該記憶容量の大きい領域が一杯になった時は、読み出したデータをアクセスカウンタ値に基づいて記憶して保持するようにしたことを特徴とするものである。
【００１５】
第４の発明は、第１の発明から第３の発明の何れかにおいて、データバッファの記憶領域が一杯になった時に、新たなデータを記憶するバッファアドレスを、最も古いアクセスカウンタ値を有するアドレスからとしたものである。
第５の発明は、第１の発明から第３の発明の何れかにおいて、データバッファの記憶領域が一杯になった時に、新たなデータを記憶するバッファアドレスを、最も低いアクセスカウンタ値を有するアドレスからとしたものである。
【００１６】
第６の発明は、第１の発明から第３の発明の何れかにおいて、記憶装置を光ディスク装置としたものである。
第７の発明は、第６の発明において、第１の情報の記憶部がデータ部であり、第２の情報の記憶部が索引テーブル部であり、第３の情報の記憶部をディレクトリ部であるものである。
【００１７】
第８の発明は、第７の発明において、データバッファをキャッシュメモリとしたものである。
本発明によれば、データバッファの記憶領域が、ディスク媒体に設定された少なくとも３種類の情報の記憶部、例えば、ＦＡＴ部、ＤＩＲ部、及びデータ部の３つの記憶部をそれぞれ記憶するための専用の領域に分かれており、ホストが指示する論理ブロックアドレスが特定の情報の記憶部のものであれば、読み出されたその特定の情報の記憶部のデータが、データバッファの対応する特定の記憶領域に展開された後に転送され、その後は同じ記憶部のデータを先読みして同じ領域に展開が行われるので、次の指示が別の情報部の読み出しであった場合には、その情報部のデータはデータバッファ内の対応する別の記憶領域に展開されるので、前に展開を行った領域のデータは消去されない。この結果、再び、以前の指示と同じ情報の記憶部に対して読み出し指示が来た場合に、そのデータがデータバッファに存在する確率が高く、存在する場合にはデータバッファ内から直ちに読み出して送ることができる。
【００１８】
また、本発明によれば、データバッファの記憶領域が、ディスク媒体に設定されたデータ部の情報の記憶部の記憶領域と、特定の情報の記憶部、例えば、ＦＡＴ部の記憶領域の２つの領域に分かれており、ホストが指示する論理ブロックアドレスがその特定の情報の記憶部のものであれば、読み出された特定の情報の記憶部のデータが、データバッファの対応する特定の記憶領域に展開された後に転送され、その後は同じ記憶部のデータを先読みして同じ領域に展開が行われる。そして、ホストが指示する論理ブロックアドレスがデータ部のものであれば、読み出されたデータ部の記憶部のデータが、データバッファのデータ部用の記憶領域に展開された後に転送され、その後はデータ部のデータを先読みして同じ領域に展開が行われる。また、ホストが指示する論理ブロックアドレスが別の特定の情報の記憶部のものであれば、読み出された別の特定の情報の記憶部のデータは、データバッファのデータ部の記憶領域に共通に展開された後に転送され、その後は別の特定の情報の記憶部のデータを先読みしてデータ部用の記憶領域に展開が行われる。この結果、再び、以前の指示と同じ情報の記憶部に対して読み出し指示が来た場合に、そのデータがデータバッファに存在する確率が高く、存在する場合にはデータバッファ内から直ちに読み出して送ることができる。
【００１９】
なお、データバッファの記憶領域の容量が不足した場合には、記憶時期の古いデータの記憶領域、あるいはアクセス頻度の低いデータの記憶領域に新たなデータが記憶される。
例えば、読み出し指示がＦＡＴ部のものであればＦＡＴ部用データバッファ領域に対して読み出したデータと先読みしたデータの展開が行われ、ＤＩＲ部に対してならＤＩＲ部用データバッファ領域に対して読み出したデータと先読みしたデータの展開が行われる。ＦＡＴ部とＤＩＲ部に当てはまらないようならデータ部用データバッファ領域に対して読み出したデータと先読みしたデータの展開が行われる。
【００２０】
このように、使用目的別にデータバッファを管理することで、一度読み出して記憶された情報は、その情報の記憶領域の容量がなくなるまで残っているので、次にその情報の読み出し指示が来た場合に、当該情報の記憶部にそのデータが必ず存在するため、再度の読み込み動作が不要になり、読み出し速度が速くなって記憶装置の性能が向上する。
【００２１】
【発明の実施の形態】
以下添付図面を用いて本発明の実施形態を具体的な実施例に基づいて詳細に説明する。
図１はデータバッファを備えた記憶装置が使用されるシステムの構成例を示すブロック回路図であり、記憶装置として２台の光ディスク装置１が使用されている。各光ディスク装置１はシステムのＳＣＳＩバス５の上に接続され、ＳＣＳＩバス５の上で入出力動作を起動するイニシエータとして動作するホストシステム３から指定された入出力動作を実行する。ＳＣＳＩバス５には、この例では８台のＳＣＳＩデバイス（２台の光ディスク装置１、４台のコントローラ２、及び２台のホストアダプタ４）が接続されており、各ＳＣＳＩデバイスにはそれぞれに固有の機番（♯０〜♯７）が割り当てられている。また、この例のシステムは、イニシエータとして動作するホストシステム３が２台接続されたマルチホストシステムになっている。なお、機番♯２のコントローラ２にはハードディスクが接続され、機番♯３のコントローラ２には磁気テープが接続され、機番♯４のコントローラ２にはプリンタが接続され、機番♯５のコントローラ２には通信装置が接続されている。
【００２２】
図２(a) は図１の光ディスク装置１の外観図であり、(b) は内部構成を示す図である。光ディスク装置１は、その筐体（ディスクエンクロージャ）１０の中に、機構部１１、固定光学部１２、制御回路部１３、可動光学部及びアクチュエータ１４を備えており、機構部１１によってこの筐体１０内に出し入れされる光ディスクカートリッジ１５内の光ディスク６を記録媒体としている。
【００２３】
詳しい説明は省略するが、機構部１１は、スピンドルモータ、ポジショナ、ヘッドアクチュエータ、バイアスマグネット、及び、スピンドルモータの上下移動機構を備えている。また、固定光学部１２は、光学系、位置検出、及びレーザダイオード制御回路から構成されている。更に、制御回路部１３は筐体１０の外部に取り付けられており、ＳＩＳＩコネクタ、装置制御回路、データバッファとしてのキャッシュメモリ、及びＳＣＳＩコントーラ部から構成されている。
【００２４】
図３は図２(a) ，(b) で説明した光ディスク装置１の内部構成を示すブロック図である。光ディスク装置１の筐体１０内には前述のように、機構部１１、固定光学部１２、可動光学部及びアクチュエータ１４、及び、光ディスク６がある。光ディスク装置１の筐体１０の外側に設けられる制御回路部１３には、ＯＤＣ（光ディスクコントローラ）１６、ＯＤＣ１６に接続し、ＭＰＵ，ロジック回路，ＲＯＭ，Ｓ−ＲＡＭ等を備えた制御回路１７、制御回路１７に接続するＤＳＰ（デジタル信号プロセッサ）１８、ＯＤＣ１６と制御回路１７に接続されて筐体１０内の装置を駆動するアンプ群１９、および、ＯＤＣ１６に接続されたバッファメモリであるキャッシュメモリ（Ｄ−ＲＡＭで構成される）２０がある。
【００２５】
光ディスク装置１では、ＳＣＳＩバス５と光ディスクカートリッジ１５内のディスク媒体とのデータ転送を、キャッシュメモリ２０を介してＭＰＵが実行する、いわゆるキャッシュ制御が行われる。キャッシュメモリ２０にデータを格納することができるので、光ディスク装置１の実効データ転送速度に依存することなく、イニシエータであるホストシステム３はＳＣＳＩバス５の高速データ転送能力を生かした効率の良い入出力処理を行うことができる。
なお、以後の説明における読み出し、転送、展開、管理等の動作は、特に記載しない限り前述のＭＰＵが実行するものとする。
【００２６】
キャッシュ制御について詳しく説明すると、ホストシステム３が光ディスク装置１に書込コマンドを発行した時、光ディスク装置１はキャッシュメモリ２０に書込データを転送し、データ転送が終了した段階で書込コマンド終了を報告する。そして、光ディスク装置１は、ＳＣＳＩ動作と非同期に、書込処理や確認処理を行う。この結果、ホストシステム３から見た見かけ上の書込コマンド処理時間は短縮され、ホストシステム３の入出力特性が向上する。
【００２７】
一方、ホストシステム３から光ディスク装置１に読出コマンドが発行された場合は、光ディスク装置１は、光ディスク６からのデータ読出コマンドの実効を終了した後、後続のデータブロックを自動的に読み出してキャッシュメモリ２０に格納しておく。この動作は先読み動作と呼ばれる。従って、ホストシステム３からの次のコマンドが、先読みしてキャッシュメモリ２０内に格納してあるデータを要求している時には、光ディスク６をアクセスすることなく、キャッシュメモリ２０内のデータを転送することができるので、高速なシーケンシャルデータのアクセスが可能である。
【００２８】
以上のようなキャッシュ制御におけるデータの読み出し制御において、ホストシステム３からの次のコマンドによる読み出しデータが、先読みしてキャッシュメモリ２０内に格納してあるデータに一致することはヒットと呼ばれ、このヒット率が高い程、高速なシーケンシャルデータのアクセスが可能となる。
そこで、本発明では、キャッシュメモリ２０内のデータバッファ領域を、図４に示すように、ＦＡＴ部用データバッファ領域２１、ＤＩＲ部用データバッファ領域２２、およびデータ部用データバッファ領域２３の３つに分けている。このように、キャッシュメモリ２０内のデータバッファ領域を３つに分ける理由は、図５に示すように、光ディスク６に螺旋状に形成された記憶領域には、論理ブロックアドレス（ＬＢＡ）が０から始まるＦＡＴ部３１と、これに続くＤＩＲ部３２、及びデータ部３３が存在するからである。
【００２９】
そして、本発明では、ホストシステムが指示する論理ブロックアドレスがＦＡＴ部３１のものであれば、読み出したデータをキャッシュメモリ２０のＦＡＴ部用のデータバッファ領域２１に対して展開を行い、ＤＩＲ部３２に対してならＤＩＲ部用のデータバッファ領域２２に対してデータの展開を行う。また、ホストシステムが指示する論理ブロックアドレスがＦＡＴ部３１とＤＩＲ部３２のいずれにも当てはまらないようなら、読み出したデータをデータ部用のデータバッファ領域２３に対して展開を行う。
【００３０】
このように使用目的別にキャッシュメモリ２０のデータバッファ領域２１〜２３を管理することにより、ＦＡＴ部用データバッファ領域２１とＤＩＲ部用データバッファ領域２２には、ディスク媒体のＦＡＴ部３１及びＤＩＲ部３２のデータが必ず存在する。このため、光ディスク６のＦＡＴ部３１とＤＩＲ部３２に対するホストシステム３からの読み出し要求に対しては、これらのデータを一度読み出してキャッシュメモリ２０の対応するデータバッファ領域２１，２２に格納しておけば、以後はキャッシュメモリ２０からの転送と、データ部３３からの読み出しのデータ転送動作のみですむ事となり、光ディスク装置１の性能が向上する。
【００３１】
ここで、ホストコンピュータ３の一般的なＯＳ（オペレーティングシステム）が、光ディスクカートリッジ１５内の光ディスク６からデータを読み出す場合の過程を具体例を用いて説明する。
実施例として、光ディスク６には以下のようなファイルＡとファイルＢが記憶されており、これらファイルＡとファイルＢのデータを読み取る場合のキャッシュメモリ２０の分割について説明する。
【００３２】
0003969809.tif 000002
そして、ファイルＡとファイルＢのＦＡＴ部データは、図５のＦＡＴ部３１のＬＢＡ＝０ｈから始まるブロックに共通に記憶されており、ファイルＡとファイルＢのＤＩＲ部データはＤＩＲ部３２のＬＢＡ＝１００，１０１に共通に記憶されており、ファイルＡのデータ部データはデータ部３３のＬＢＡ＝３００〜３０４に記憶されており、ファイルＢのデータ部データはデータ部３３のＬＢＡ＝３０６〜３０Ｃに記憶されているものとする。但し、ＬＢＡの番地は１６進法で記載されているものとする。
（１）第１の実施例
第１の実施例は、図６(a) に示すように、光ディスク装置１が保有するキャッシュメモリ２０のデータバッファ領域を、バッファアドレス０ｈ〜１９９９９ｈのＦＡＴ部用データバッファ領域２１、バッファアドレス２００００ｈ〜５９９９９ｈのＤＩＲ部用データバッファ領域２２、及びバッファアドレス６００００ｈ以降のデータ部用データバッファ領域２３に分割している。この実施例は、キャッシュメモリ２０のサイズが大きく、ＯＳが使用するディスク媒体のＦＡＴ部３１及びＤＩＲ部３２と同サイズのデータバッファ領域２１，２２をキャッシュメモリ２０内に確保することができ、しかもデータ部用のデータバッファ領域２３もキャッシュメモリ２０内に十分確保できる場合の実施例である。
【００３３】
ＦＡＴ部用データバッファ領域２１とＤＩＲ部用データバッファ領域２２には、光ディスク６のＬＢＡ（論理ブロックアドレス）に対応したバッファアドレスを割り振る。
この実施例では、図５に示したファイルＡとファイルＢの、ＦＡＴ部３１におけるＬＢＡ＝０のデータがキャッシュメモリ２０のＦＡＴ部用データバッファ領域２１に格納され、ＤＩＲ部３２におけるＬＢＡ＝１００，１０１のデータがキャッシュメモリ２０のＤＩＲ部用データバッファ領域２２に格納される。そして、ファイルＡのデータ部３３におけるＬＢＡ＝３００〜３０４のデータと、ＬＢＡ＝３０６〜３０Ｃのデータもデータ部用データバッファ領域２３に格納することができる。この実施例ではデータ部用データバッファ領域２３が一杯になった時には、新たなデータを記憶するバッファアドレスを記憶時期の古い情報のアドレス、又は、アクセス頻度の低い情報のアドレスからにすることができる。
（２）第２の実施例
第２の実施例は、図６(b) に示すように、光ディスク装置１が保有するキャッシュメモリ２０のデータバッファ領域を、バッファアドレス０ｈ〜４９９９ｈのＦＡＴ部用データバッファ領域２１、バッファアドレス５０００ｈ〜９９９９ｈのＤＩＲ部用データバッファ領域２２、及びバッファアドレス１００００ｈ以降のデータ部用データバッファ領域２３に分割している。この実施例は、キャッシュメモリ２０のサイズが小さく、光ディスク６のＦＡＴ部３１とＤＩＲ部３２に相当するデータサイズをキャッシュメモリ２０のデータバッファ領域に確保することができない場合の実施例である。この場合でも、光ディスク６のＦＡＴ部３１のデータを記憶するＦＡＴ部用データバッファ領域２１と、ＤＩＲ部３２のデータを記憶するＤＩＲ部用データバッファ領域２２とを持つことには変わりがなく、それぞれのサイズが第１の実施例に比べると縮小される。このため、光ディスク６のＦＡＴ部３１とＤＩＲ部３２のそれぞれに対して、キャッシュメモリ２０のＦＡＴ部用データバッファ領域２１とＤＩＲ部用データバッファ領域２２は専用のバッファアドレスを持つことができない。従って、第２の実施例ではＦＡＴ部用データバッファ領域２１とＤＩＲ部用データバッファ領域２２の管理は、第１の実施例におけるデータ部用データバッファ領域２３の管理と同様に処理する。
（３）第３の実施例
第３の実施例は、図７(a) に示すように、光ディスク装置１が保有するキャッシュメモリ２０のデータバッファ領域を、バッファアドレス０ｈ〜１９９９９ｈのＦＡＴ部用データバッファ領域２１、バッファアドレス２００００ｈ〜２９９９９ｈのＤＩＲ部用データバッファ領域２２、及びバッファアドレス３００００ｈ以降のデータ部用データバッファ領域２３に分割している。第２の実施例は、キャッシュメモリ２０のサイズが、第１の実施例のキャッシュメモリ２０よりは小さいが、第２の実施例のキャッシュメモリ２０よりは大きい場合の実施例である。従って、第２の実施例では、ＯＳが使用する光ディスク６のＦＡＴ部３１と同サイズのデータバッファ領域２１はキャッシュメモリ２０内に確保するようにしたが、光ディスク６のＤＩＲ部３２に対しては、最小限のサイズのデータバッファ領域２２をキャッシュメモリ２０内に確保するようにし、残りのデータバッファ領域を全てデータ部用のデータバッファ領域２３としてある。
【００３４】
第３の実施例ではＤＩＲ部用データバッファ領域２２の管理は、第１の実施例におけるデータ部用データバッファ領域２３の管理と同様に処理する。
（４）第４の実施例
第４の実施例は、図７(b) に示すように、光ディスク装置１が保有するキャッシュメモリ２０のデータバッファ領域を、バッファアドレス０ｈ〜４９９９ｈのＦＡＴ部用データバッファ領域２１、バッファアドレス５０００ｈ〜４４９９９ｈのＤＩＲ部用データバッファ領域２２、及びバッファアドレス４５０００ｈ以降のデータ部用データバッファ領域２３に分割している。第４の実施例も、キャッシュメモリ２０のサイズが、第１の実施例のキャッシュメモリ２０よりは小さいが、第２の実施例のキャッシュメモリ２０よりは大きい場合の実施例である。従って、第４の実施例では、ＯＳが使用する光ディスク６のＤＩＲ部３２と同サイズのデータバッファ領域２２はキャッシュメモリ２０内に確保するようにしたが、光ディスク６のＦＡＴ部３１に対しては、最小限のサイズのデータバッファ領域２１をキャッシュメモリ２０内に確保するようにし、残りのデータバッファ領域を全てデータ部用のデータバッファ領域２３としてある。
【００３５】
第４の実施例ではＦＡＴ部用データバッファ領域２１の管理は、第１の実施例におけるデータ部用データバッファ領域２３の管理と同様に処理する。
第２〜第４の実施例のように、キャッシュメモリ２０のデータバッファ領域の大きさが十分に大きくない場合でも、読み出すファイルの容量が小さい場合は、第１の実施例と同様に、図５に示したファイルＡとファイルＢの、ＦＡＴ部３１におけるＬＢＡ＝０のデータがキャッシュメモリ２０のＦＡＴ部用データバッファ領域２１に格納でき、ＤＩＲ部３２におけるＬＢＡ＝１００，１０１のデータがキャッシュメモリ２０のＤＩＲ部用データバッファ領域２２に格納できる。ファイルＡのデータ部３３におけるＬＢＡ＝３００〜３０４のデータと、ＬＢＡ＝３０６〜３０Ｃのデータもデータ部用データバッファ領域２３に格納することができる。
次に、以上説明した第１の実施例のようにキャッシュメモリ２０内のデータバッファ領域が３つの領域に分割されている場合に、ＯＳが光ディスク６に記憶されているファイルＡを読み出そうとする場合の読み出し手順の一例について、図８〜図１０のフローチャートを用いて説明する。ファイルＡのデータを読み出そうとする場合には、最初にＦＡＴ３１部のデータを読み出し、次にＤＩＲ部３２のデータを読み出し、続いてデータ部３３のデータを読み出す。よって、ＯＳの読み出し手順をこの順に説明する。
【００３６】
図８は光ディスク６のＦＡＴ部３１のデータ読み出し手順を示すものである。ステップ８０１ではホストシステムからＦＡＴ部３１の読み出し指示が有ったか否かを判定する。読み出し指示があった場合にはステップ８０２に進み、キャッシュメモリ２０のＦＡＴ部用データバッファ領域２１に有効データが有るか否かを判定する（図にはＦＡＴ部用データバッファ領域は単にＦＡＴ部と記載）。最初はＦＡＴ部用データバッファ領域２１に有効データがないので、ステップ８０３に進み、光ディスク６のＦＡＴ部３１を読み出してキャッシュメモリ２０のＦＡＴ部用データバッファ領域２１に、バッファアドレス０ｈ番地から記憶し、続くステップ８０４においてＦＡＴ部用データバッファ領域２１内のデータを転送する。
【００３７】
ファイルＡのＦＡＴ部３１のデータは、図５で説明したように、光ディスク６のＬＢＡ＝０ｈから記録されている。そして、光ディスク装置１が保有するキャッシュメモリ２０には、光ディスク６のＦＡＴ部３１のデータの記憶用に専用に割り振られたバッファアドレス０ｈ番地が存在する。そこで、光ディスク装置１は、光ディスク６の記憶領域内のＬＢＡ＝０ｈからブロック数＝１ｈだけ読み出し、これをキャッシュメモリ２０のＦＡＴ部用データバッファ領域２１の０ｈ番地から展開し、展開終了後にホスト側に転送する。ＦＡＴ部用データバッファ領域２１に展開されたデータはそのまま保持され有効となる。
【００３８】
ステップ８０４でＦＡＴ部用データバッファ領域２１に展開されたデータを転送した後はステップ８０５に進み、光ディスク６のＦＡＴ部３１のデータ読み出しが完了したか否かを判定する。光ディスク６のＦＡＴ部３１のデータ読み出しが完了していない場合はステップ８０６に進み、ホスト側からの次の指示があるか否かを判定する。そして、次の指示がない場合には、光ディスク装置１はステップ８０７に進み、光ディスク６のＦＡＴ部３１の次のＬＢＡの１ブロック分のデータを先読みし、キャッシュメモリ２０のＦＡＴ部用データバッファ領域２１の続きのバッファアドレスから記憶する。
【００３９】
光ディスク６のＦＡＴ部３１の次のＬＢＡの１ブロック分のデータを先読みしてＦＡＴ部用データバッファ領域２１に記憶した後はステップ８０５に戻り、再度光ディスク６のＦＡＴ部３１のデータ読み出しが完了したか否かの判定を行い、以後はステップ８０５で光ディスク６のＦＡＴ部３１のデータ読み出しが完了した場合とステップ８０６でホスト側からの次の指示が来た場合の除き、光ディスク６のＦＡＴ部３１の次のＬＢＡの１ブロック分のデータを更に先読みしてＦＡＴ部用データバッファ領域２１の続きのバッファアドレスから記憶する動作を繰り返す。
【００４０】
一方、ステップ８０５で光ディスク６のＦＡＴ部３１のデータ読み出しが完了したと判定した場合と、ステップ８０６でホスト側から次の指示があったと判定した場合はステップ８０１に戻る。そして、ステップ８０１においてホスト側からの指示がＦＡＴ部の読み出し指示か否かを判定し、ＦＡＴ部以外の読み出し指示の場合はステップ８０８に進む。
【００４１】
図９は光ディスク６のＤＩＲ部３２のデータ読み出し手順を示すものである。ステップ８０８ではホストシステムからＤＩＲ部３２の読み出し指示が有ったか否かを判定する。読み出し指示があった場合にはステップ８０９に進み、キャッシュメモリ２０のＤＩＲ部用データバッファ領域２２に有効データが有るか否かを判定する（図にはＤＩＲ部用データバッファ領域は単にＤＩＲ部と記載）。最初はＤＩＲ部用データバッファ領域２２に有効データがないので、ステップ８１０に進み、光ディスク６のＤＩＲ部３２を読み出してキャッシュメモリ２０のＤＩＲ部用データバッファ領域２２に、バッファアドレス２０，０００ｈ番地から記憶し、続くステップ８１１においてＤＩＲ部用データバッファ領域２２内のデータを転送する。
【００４２】
ファイルＡのＤＩＲ部３２のデータは、図５で説明したように、光ディスク６のＬＢＡ＝１００ｈからブロック数＝２ｈだけ記録されている。そして、光ディスク装置１が保有するキャッシュメモリ２０には、光ディスク６のＤＩＲ部３２のデータの記憶用に専用に割り振られたバッファアドレス２０，０００ｈ番地が存在する。そこで、光ディスク装置１は、光ディスク６の記憶領域内のＬＢＡ＝１００ｈからブロック数＝２ｈだけ読み出し、これをキャッシュメモリ２０のＤＩＲ部用データバッファ領域２２の２０，０００ｈ番地から展開し、展開終了後にホスト側に転送する。ＤＩＲ部用データバッファ領域２２に展開されたデータはそのまま保持され有効となる。
【００４３】
ステップ８１１でＤＩＲ部用データバッファ領域２２に展開されたデータを転送した後はステップ８１２に進み、光ディスク６のＤＩＲ部３２のデータ読み出しが完了したか否かを判定する。光ディスク６のＤＩＲ部３２のデータ読み出しが完了していない場合はステップ８１３に進み、ホスト側からの次の指示があるか否かを判定する。そして、次の指示がない場合には、光ディスク装置１はステップ８１４に進み、光ディスク６のＤＩＲ部３２の次のＬＢＡの１ブロック分のデータを先読みし、キャッシュメモリ２０のＤＩＲ部用データバッファ領域２２の続きのバッファアドレスから記憶する。
【００４４】
光ディスク６のＤＩＲ部３２の次のＬＢＡの１ブロック分のデータを先読みしてＤＩＲ部用データバッファ領域２２に記憶した後はステップ８１２に戻り、再度光ディスク６のＤＩＲ部３２のデータ読み出しが完了したか否かの判定を行い、以後はステップ８１２で光ディスク６のＤＩＲ部３２のデータ読み出しが完了した場合とステップ８１３でホスト側からの次の指示が来た場合の除き、光ディスク６のＤＩＲ部３２の次のＬＢＡの１ブロック分のデータを更に先読みしてＤＩＲ部用データバッファ領域２２の続きのバッファアドレスから記憶する動作を繰り返す。
【００４５】
一方、ステップ８１２で光ディスク６のＤＩＲ部３２のデータ読み出しが完了したと判定した場合と、ステップ８１３でホスト側から次の指示があったと判定した場合はステップ８０８に戻る。そして、ステップ８０８においてホスト側からの指示がＤＩＲ部３２の読み出し指示か否かを判定し、ＤＩＲ部３２以外の読み出し指示の場合はステップ８１５に進む。
【００４６】
図１０は目的である光ディスク６のデータ部３３のデータ読み出し手順を示すものである。ステップ８１５ではホストシステムからデータ部３３の読み出し指示が有ったか否かを判定する。読み出し指示があった場合にはステップ８１６に進み、キャッシュメモリ２０のデータ部用データバッファ領域２３に有効データが有るか否かを判定する（図にはデータ部用データバッファ領域は単にデータ部と記載）。最初はデータ部用データバッファ領域２３に有効データがないので、ステップ８１７に進み、バッファに空きがあるか否か、即ちデータ部用データバッファ領域２３に空きがあるか否かを判定し、空きがある場合にはステップ８１８に進んでバッファの空いている所にデータを読み出してステップ８２０に進む。一方、ステップ８１７でバッファに空きがないと判定した場合はステップ８１９に進み、光ディスク６のデータ部３３を読み出してキャッシュメモリ２０のデータ部用データバッファ領域２３の、最も古いアクセスカウンタ値のアドレスに読み出して記憶し、続くステップ８２０においてデータ部用データバッファ領域２３内のデータを転送する。
【００４７】
ファイルＡのデータ部３３のデータは、図５で説明したように、光ディスク６のＬＢＡ＝３００ｈからブロック数＝５ｈだけ記録されている。そして、光ディスク装置１が保有するキャッシュメモリ２０には、光ディスク６のデータ部３３のデータの記憶用に専用に割り振られたバッファアドレスとして６００００ｈ番地以降が存在する。ここで、データ部３３のデータ量はＦＡＴ部３１やＤＩＲ部３２に記録されているデータ量よりも遙に多く、通常はキャッシュメモリ２０のデータ部用データバッファ領域２３の容量よりも大きい。そこで、光ディスク装置１が保有するキャッシュメモリ２０のデータ部用データバッファ領域２３は、ＦＡＴ部用データバッファ領域２１やＤＩＲ部用データバッファ領域２２と異なり、光ディスク６のデータ部３３のアドレスに対応していない。即ち、データ部用データバッファ領域２３は光ディスク６上のデータに対して専用のアドレスが存在するのではない。
【００４８】
このようなデータ部用データバッファ領域２３は、図３で説明したアクセスカウンタにより、最も古いアクセスカウンタ値のバッファアドレスを展開先と決め、有効か無効を示す情報を持つようになっている。従って、データ部用データバッファ領域２３に光ディスク６のデータ部３３のデータを記憶する場合には、アクセスカウンタにアドレスの記録を残しておき、最も古いアクセスカウンタ値のバッファアドレスから上書き記憶し、アクセスカウンタを更新することが行われる。ファイルＡのデータ部３３のデータを始めて記憶する場合は、データ部用データバッファ領域２３は全て無効である為、光ディスク６の記録領域内のＬＢＡ＝３００ｈからブロック数＝５ｈを読み出し、データ部用データバッファ領域２３の６００００ｈ番地から展開した後に転送する。データ部用データバッファ領域２３に展開されたデータはそのまま保持され有効となる。
【００４９】
ステップ８２０でデータ部用データバッファ領域２３に展開されたデータを転送した後はステップ８２１に進み、光ディスク６のファイルＡのデータ部３３のデータ読み出しが完了したか否かを判定する。ファイルＡのデータ部３３のデータ読み出しが完了していない場合はステップ８２２に進み、ホスト側からの次の指示があるか否かを判定する。そして、次の指示がない場合には、光ディスク装置１はステップ８２３に進み、ファイルＡのデータ部３３の次のＬＢＡの１ブロック分のデータを先読みし、キャッシュメモリ２０のデータ部用データバッファ領域２３の最も古いアクセスカウンタ値のバッファアドレスから記憶する。
【００５０】
ファイルＡのデータ部３３の次のＬＢＡの１ブロック分のデータを先読みしてデータ部用データバッファ領域２３に記憶した後はステップ８２１に戻り、再度ファイルＡのデータ部３３のデータ読み出しが完了したか否かの判定を行い、以後はステップ８２１でファイルＡのデータ部３３のデータ読み出しが完了した場合とステップ８２２でホスト側からの次の指示が来た場合の除き、ファイルＡのデータ部３３の次のＬＢＡの１ブロック分のデータを更に先読みしてデータ部用データバッファ領域２３の最も古いアクセスカウンタ値のバッファアドレスから記憶する動作を繰り返す。
【００５１】
一方、ステップ８２１でファイルＡのデータ部３３のデータ読み出しが完了したと判定した場合と、ステップ８２２でホスト側から次の指示があったと判定した場合はステップ８１５に戻る。そして、ステップ８１５においてホスト側からの指示がファイルＡのデータ部３３の読み出し指示か否かを判定し、データ部３３以外の読み出し指示の場合はこのルーチンを終了する。
【００５２】
このようにしてファイルＡのデータを読み出す場合、３回の媒体アクセス動作を行う事になる。
なお、第２〜第４の実施例のように、キャッシュメモリ２０のＦＡＴ部用データバッファ領域２１またはＤＩＲ部用データバッファ領域２２の大きさが小さく、読み出し時にＦＡＴ部用データバッファ領域２１またはＤＩＲ部用データバッファ領域２２の容量を越えてしまう場合には、ＦＡＴ部用データバッファ領域２１またはＤＩＲ部用データバッファ領域２２の記憶領域を前述のデータ部用データバッファ領域２３のようにアクセスカウンタで管理する。そして、ＦＡＴ部用データバッファ領域２１またはＤＩＲ部用データバッファ領域２２の記憶領域が一杯となり、データの展開が不可能になるとアクセスカウンタの値を参照し、アクセスカウンタが低い値、または低い値が複数個存在する場合は一番古いバッファアドレス上にディスク媒体からデータを読み出して展開し、新しく展開したデータのアクセスカウンタを設定する。有効データと同一な読み出しが行える場合はアクセスカウンタを更新し、有効を継続することができる。
【００５３】
この後、ＯＳがファイルＢのデータ部のデータを読み出す場合には、以上述べた手順と同様に、最初にＦＡＴ部３１のデータを読み出す。ところが、読み出そうとするＦＡＴ部３１のデータのＬＢＡ＝０ｈからのブロック数＝１ｈがファイルＡのデータを読み出した時のＦＡＴ部用データバッファ領域２１上の０ｈ番地に存在する。このため、ファイルＢのＦＡＴ部３１のデータは、光ディスク６の読み出し実動作を伴うことなく、キャッシュメモリ２０のＦＡＴ部用データバッファ領域２１から転送することができる。
【００５４】
続いて、ファイルＢのＤＩＲ部３２のデータを読み出すが、これも前回有効としたキャッシュメモリ２０のＤＩＲ部用データバッファ領域２２の２００００ｈ番地上に存在する為、キャッシュメモリ２０のＤＩＲ部用データバッファ領域２２から転送することができる。最後に目的であるファイルＢのデータ部３３のデータが読み出される。ファイルＢのデータは、データ部用データバッファ領域２３の上に該当するデータが存在しない為、光ディスク６の記録領域内のＬＢＡ＝３０６ｈからブロック数＝７ｈを読み出し、データ部用データバッファ領域２３の前回展開した続きのバッファアドレスに展開してから転送する。展開されたデータはデータバッファ上で保持され有効になる。この時、前回展開された６００００ｈ番地のアクセスカウンタ値は１つ古いものとなる。このようにファイルＡに続いてファイルＢのファイルデータを読み出す場合は、１回の光ディスク６の読み出し実動作だけで済むことになる。
【００５５】
また、ＯＳがその他のデータを読み出す場合にキャッシュメモリ２０上にあるＦＡＴ部用データバッファ領域２１、ＤＩＲ部用データバッファ領域２２内のデータを使用可能であれば、ファイルＢに対する読み出し動作と同様の動作を行うだけで済む。また、キャッシュメモリ２０上にあるＦＡＴ部用データバッファ領域２１、ＤＩＲ部用データバッファ領域２２内のデータを使用可能でない場合には、ファイルＡに対する読み出し動作と同様の動作を実行する。そして、ファイルに対する読み取り処理が繰り返されると、キャッシュメモリ２０上にあるＦＡＴ部用データバッファ領域２１、ＤＩＲ部用データバッファ領域２２内に有効データが増えていき、やがてＯＳが使用する光ディスク６のＦＡＴ部３１、ＤＩＲ部３２のデータが全てキャッシュメモリ２０に格納されて有効となり、ＯＳからの全ての光ディスク６のＦＡＴ部３１、ＤＩＲ部３２の読み取り動作がバッファ転送だけで良くなり、光ディスク装置１の性能が向上する。
【００５６】
次に、本発明のキャッシュメモリ２０のデータバッファの分割方法の変形実施例を説明する。
（５）第５の実施例
第５の実施例は、図１１(a) に示すように、光ディスク装置１が保有するキャッシュメモリ２０のデータバッファ領域を、バッファアドレス０ｈ〜１９９９９ｈのＦＡＴ部用データバッファ領域２１と、バッファアドレス２００００ｈ以降のＤＩＲ部データ部兼用データバッファ領域２４に分割している。この実施例も、キャッシュメモリ２０のサイズが小さく、光ディスク６のＦＡＴ部３１とＤＩＲ部３２に相当するデータサイズをキャッシュメモリ２０のデータバッファ領域に確保することができない場合の実施例である。
【００５７】
第５の実施例は前述の第１から第４の実施例と異なり、キャッシュメモリ２０のＦＡＴ部用データバッファ領域２１のみを光ディスク６のＦＡＴ部３１と同一なサイズを持つ専用のデータバッファ領域として確保したものである。第５の実施例では光ディスク６のＤＩＲ部３２とデータ部３３については、キャッシュメモリ２０内にＤＩＲ部データ部兼用データバッファ領域２４を確保し、これを共通に使用するようにしている。
【００５８】
このため、光ディスク６のとＤＩＲ部３２とデータ部３３はそれぞれキャッシュメモリ２０のＤＩＲ部データ部兼用データバッファ領域２４内に専用のバッファアドレスを持つことができない。従って、第５の実施例ではＤＩＲ部データ部兼用データバッファ領域２４の管理は、第１の実施例におけるデータ部用データバッファ領域２３の管理と同様に処理する。
（６）第６の実施例
第６の実施例は、図１１(b) に示すように、光ディスク装置１が保有するキャッシュメモリ２０のデータバッファ領域を、バッファアドレス０ｈ〜３９９９９ｈのＤＩＲ部用データバッファ領域２２と、バッファアドレス４００００ｈ以降のＦＡＴ部データ部兼用データバッファ領域２５に分割している。この実施例も、キャッシュメモリ２０のサイズが小さく、光ディスク６のＦＡＴ部３１とＤＩＲ部３２に相当するデータサイズをキャッシュメモリ２０のデータバッファ領域に確保することができない場合の実施例である。
【００５９】
第６の実施例は第５の実施例と同様に、キャッシュメモリ２０のＤＩＲ部用データバッファ領域２２のみを光ディスク６のＤＩＲ部３２と同一なサイズを持つ専用のデータバッファ領域として確保したものである。第６の実施例では光ディスク６のＦＡＴ部３１とデータ部３３については、キャッシュメモリ２０内にＦＡＴ部データ部兼用データバッファ領域２５を確保し、これを共通に使用するようにしている。
【００６０】
このため、光ディスク６のＦＡＴ部３１とデータ部３３はそれぞれキャッシュメモリ２０のＦＡＴ部データ部兼用データバッファ領域２５内に専用のバッファアドレスを持つことができない。従って、第６の実施例ではＦＡＴ部データ部兼用データバッファ領域２５の管理は、第１の実施例におけるデータ部用データバッファ領域２３の管理と同様に処理する。
【００６１】
第５の実施例において、ＯＳがファイルＡのデータ部３３のデータを読み出そうとする場合には、最初にＦＡＴ部３１のデータを読み出す。ファイルＡのデータのＦＡＴ部はＬＢＡ＝０ｈを使用している。光ディスク装置１が保有するＦＡＴ部用データバッファ領域２１にはＬＢＡ＝０ｈ専用に割り振られたバッファアドレス０ｈ番地が存在し、最初は無効を示している。この場合、光ディスク装置１はまず、光ディスク６の記憶領域内のＬＢＡ＝０ｈからブロック数＝１ｈのＦＡＴ部３１のデータを読み出し、ＦＡＴ部用データバッファ領域２１の０ｈ番地上に展開してから転送する。展開されたデータはデータバッファ上で保持され有効となる。
【００６２】
続いて、光ディスク装置１はＤＩＲ部３２のデータを読み出す。ファイルＡのデータのＤＩＲ部３２はＬＢＡ＝１００ｈを使用している。光ディスク装置１が保有するキャッシュメモリ２０のＤＩＲ部データ部兼用データバッファ領域２４にはＬＢＡ＝１００ｈのＤＩＲ部データが存在しないので、光ディスク装置１は光ディスク６の記憶領域内のＬＢＡ＝１００ｈからブロック数＝２ｈのＤＩＲ部３２のデータを読み出し、ＤＩＲ部データ部兼用データバッファ領域２４のバッファアドレス２００００ｈ番地に展開してから転送する。展開されたデータはデータバッファ上で保持され有効となり、アクセスカウンタに最新値をセットする。
【００６３】
最後に目的であるデータ部のデータを読み出す。ファイルＡのデータのデータ部３３はＬＢＡ＝３００ｈを使用している。これはＤＩＲ部３２と同様に光ディスク装置が保有するキャッシュメモリ２０のＤＩＲ部データ部兼用データバッファ領域２４には該当するデータが存在しないので、光ディスク装置１は光ディスク６の記憶領域内のＬＢＡ＝３００ｈからブロック数＝５ｈを読み出し、これをＤＩＲ部データ部兼用データバッファ領域２４のＤＩＲ部３２を展開した続きの２０４００ｈ番地に展開して転送する。展開されたデータはデータバッファ上で保持され有効となり、アクセスカウンタに最新値をセットする。この時、前回展開された２００００ｈ番地のアクセスカウンタ値は１つ古いものとなる。このようにしてファイルＡのファイルデータを読み出す場合は、３回の媒体アクセス動作を行う事になる。
【００６４】
この後、ＯＳが上記ファイルＢのデータ部のデータを読み出す場合には、上記手順と同様に最初に光ディスク６のＦＡＴ部３１のデータを読み出す。ところが、読み出そうとするＦＡＴ部データのＬＢＡ＝０ｈからブロック数＝１ｈのデータは、キャッシュメモリ２０のＦＡＴ部用データバッファ領域２１の０番地に存在する。このため、光ディスク装置１は光ディスク６からの読み出しを行うことなく、このデータをキャッシュメモリ２０のＦＡＴ部用データバッファ領域２１から転送する。
【００６５】
続いて、ＤＩＲ部３２のデータを読み出すが、これも前回有効としたキャッシュメモリ２０のＤＩＲ部データ部兼用データバッファ領域２４の２００００ｈ番地上に存在する為、キャッシュメモリ２０から転送する。最後に目的であるデータ部のデータを読み出す。これはＤＩＲ部データ部兼用データバッファ領域２４に該当するデータが存在しない。このため、光ディスク装置１は光ディスク６の記憶領域のデータ部３３からファイルＢのデータを読み出し、これをＤＩＲ部データ部兼用データバッファ領域２４の前回展開した続きのバッファアドレス２０Ｅ００ｈ番地に展開してから転送する。展開されたデータはＤＩＲ部データ部兼用データバッファ領域２４上で保持され有効になる。この時、前回展開された１０４００ｈ番地及び前々回展開された２００００ｈ番地のアクセスカウンタ値は１つ古いものとなる。このようなファイルＡに続いてファイルＢのファイルデータを読み出す場合は、１回の実動作だけで済むことが分かる。
【００６６】
また、ＯＳがその他のデータを読み出す場合でも、キャッシュメモリ２０上に記憶されている光ディスク６のＦＡＴ部３１とＤＩＲ部３２のデータが使用可能であれば、光ディスク６にアクセスすることなく、これらのデータをキャッシュメモリ２０から転送することができる。
これ以降、読み取り処理が繰り返されると、ＦＡＴ部用データバッファ領域２１に有効データが増えていき、やがてＯＳが使用する光ディスク６のＦＡＴ部３１のデータが全てＦＡＴ部用データバッファ領域２１上に有効となるので、光ディスク６のＦＡＴ部３１の読み取り動作は不要となり、全てキャッシュメモリ２０から転送することができる。また、光ディスク６のＤＩＲ部３２、データ部３３のデータの読み出しに関しては、キャッシュメモリ２０のＤＩＲ部データ部兼用データバッファ領域２４が一杯となり、データの展開が不可能になるとアクセスカウンタの値を参照し、アクセスカウンタ値が低い値もしくは低い値が複数個存在する場合は一番古いバッファアドレス上に光ディスク６から読み出したデータを展開し、新しく展開したデータのアクセスカウンタを設定する。有効データと同一な読み出しが行える場合はアクセスカウンタを更新し、有効を継続することができる。ＯＳの使用頻度の高いファイルがキャッシュメモリ２０上に残るため、磁気ディスク装置１の光ディスク６へのアクセス回数が減り、磁気ディスク装置１の性能が向上する。
【００６７】
第６の実施例において、ＯＳがファイルＡのデータ部３３のデータを読み出そうとする場合は、光ディスク６のＦＡＴ部３１から読み出したデータがＦＡＴ部データ部兼用データバッファ領域２５に、データ部３３のデータと共通に記憶され、ＤＩＲ部３２から読み出したデータが専用のＤＩＲ部用データァバッファ領域２２に記憶される点が、第５の実施例と異なるだけであるので、その説明を省略する。
【００６８】
図１２は、光ディスク媒体からのデータ読み出し時に、ＦＡＴ部とＤＩＲ部とデータ部とが全てキャッシュメモリに存在した場合の本発明の方法による読み出し時間の短縮を、従来のデータ読み出し時間と比較して示す説明図である。図におけるファーム処理は光ディスク装置の処理である。
従来は、ＦＡＴ部、ＤＩＲ部、データ部の読み出しコマンドがホスト（ＯＳ）から来る毎に、光ディスク装置はヘッドのシーク指示をし、ヘッドが光ディスク上の読み出し位置に移動されるとシーク完了指示が発行され、その後、光ディスクのリード指示でデータが読み取られ、リードが完了してデータがキャッシュメモリに読み込まれた後に、光ディスク装置からホストへデータが転送されていた。
【００６９】
これに対して、本発明の方法によれば、光ディスクからのデータ読み出し時に、ＦＡＴ部とＤＩＲ部とデータ部とが全てキャッシュメモリに存在した場合は、ＦＡＴ部とＤＩＲ部とデータ部への各リードコマンドの後に、キャッシュメモリからデータ転送を行うことができるので、光ディスクへのヘッドのアクセスが不要となる。この結果、ＦＡＴ部の読み出し時間、ＤＩＲ部の読み出し時間、及びデータ部の読み出し時間が全て短縮され、短縮された時間の合計がＴ０となり、時間Ｔ０の時間短縮が図れる。
【００７０】
図１３は、光ディスクからのデータ読み出し時に、ＦＡＴ部とＤＩＲ部とがキャッシュメモリに存在した場合の本発明の方法による読み出し時間の短縮を、従来のデータ読み出し時間と比較して示す説明図である。
この場合、本発明の方法によれば、データ部の読み出し時間だけは従来のデータ部の読み出し時間と同じになるが、ＦＡＴ部の読み出し時間とＤＩＲ部の読み出し時間が従来よりも短くなる。この結果、ＦＡＴ部の読み出し時間とＤＩＲ部の読み出し時間において読み出し時間が短縮され、短縮された時間の合計がＴ１となり、時間Ｔ１の時間短縮が図れる。
【００７１】
図１４は、光ディスクからのデータ読み出し時に、ＦＡＴ部のデータのみがキャッシュメモリに存在した場合の本発明の方法による読み出し時間の短縮を、従来のデータ読み出し時間と比較して示す説明図である。
この場合、本発明の方法によれば、ＤＩＲ部の読み出し時間とデータ部の読み出し時間とが従来のデータ部の読み出し時間と同じになるが、ＦＡＴ部の読み出し時間が従来よりも短くなる。この結果、ＦＡＴ部の読み出し時間が時間Ｔ２だけ短縮され、時間Ｔ２の時間短縮が図れる。
【００７２】
図１５は、光ディスクからのデータ読み出し時に、ＤＩＲ部のデータのみがキャッシュメモリに存在した場合の本発明の方法による読み出し時間の短縮を、従来のデータ読み出し時間と比較して示す説明図である。
この場合、本発明の方法によれば、ＦＡＴ部の読み出し時間とデータ部の読み出し時間とが従来のデータ部の読み出し時間と同じになるが、ＤＩＲ部の読み出し時間が従来よりも短くなる。この結果、ＤＩＲ部の読み出し時間が時間Ｔ３だけ短縮され、時間Ｔ３の時間短縮が図れる。
【００７３】
図１６は、光ディスクからのデータ読み出す時の色々な場合のデータ読み出し時間を、まとめて従来のデータ読み出し時間と比較して示す説明図である。データの読み出し時には、(a) に示すように、ホストコンピュータはＦＡＴ部、ＤＩＲ部、及びデータ部の全てのデータを読み出す必要がある。この場合、(b) に示す従来のキャッシュ制御方式によれば、ＦＡＴ部、ＤＩＲ部、及びデータ部の全ての読み出しにおいて読み出し、記憶、転送の実動作が必要になり、全てが完了する時間は長くなる。
【００７４】
これに対して、(c) 〜(e) が本発明によるキャッシュ制御方式によるデータの読み出し処理を示している。(c) が図１２で説明した場合と同じ状態を示しており、ＦＡＴ部、ＤＩＲ部、及びデータ部のデータが全てキャッシュメモリ内にあって、データは全てキャッシュメモリからの転送のみで済む場合である。この場合が最も読み出し時間が短縮できる。(d) が図１３で説明した場合と同じ状態を示しており、ＦＡＴ部とＤＩＲ部のデータがキャッシュメモリ内にあって、これらのデータはキャッシュメモリから転送できる場合である。この場合は(c) の場合に次いで読み出し時間が短縮できる。(e) はＦＡＴ部とＤＩＲ部のデータのいずれか一方がキャッシュメモリ内にあって、そのデータはキャッシュメモリから転送できる場合である。(e-1) が図１４で説明した場合と同じ状態を示しており、(e-2) が図１５で説明した場合と同じ状態を示している。これらの場合のように、ＦＡＴ部とＤＩＲ部のデータのいずれか一方のみがキャッシュメモリ内にあった場合でも、従来のキャッシュ制御方式におけるデータ読み出し時間よりも読み出し時間を短縮できる。
【００７５】
なお、以上説明した実施例では、記憶装置として光ディスク装置の例を説明しているが、本発明の方法における記憶装置は光ディスク装置に限定されるものではなく、記憶装置における記憶媒体とのデータの転送速度が、ホストコンピュータ側のデータの転送速度よりも遅いような記憶装置に対して有効に適用することができる。
【００７６】
【発明の効果】
以上説明したように、本発明の記憶装置におけるデータバッファの管理方法によれば、ＦＡＴ部、ＤＩＲ部のキャッシュヒット率が向上する為、記憶媒体からのデータの読み出し、読み出したデータのデータバッファへの記憶、及びデータバッファからのデータの転送の実動作時間が縮小され、処理速度が向上する。その結果、データ部を読み出す場合の一連の処理速度が向上する。
【図面の簡単な説明】
【図１】データバッファを備えた記憶装置が使用されるシステムの構成例を示すブロック回路図である。
【図２】  (a) は図１の光ディスク装置の外観図であり、(b) は図１の光ディスク装置の内部構成を示す図である。
【図３】図２(a) ，(b) の光ディスク装置の内部構成を示すブロック図である。
【図４】図３のキャッシュメモリの本発明における分割の一例を示す説明図である。
【図５】光ディスクの記憶領域の構成を示す説明図である。
【図６】  (a) は図４のキャッシュメモリの分割の第１の実施例を示すブロック図、(b) は図４のキャッシュメモリの分割の第２の実施例を示すブロック図である。
【図７】  (a) は図４のキャッシュメモリの分割の第３の実施例を示すブロック図、(b) は図４のキャッシュメモリの分割の第４の実施例を示すブロック図である。
【図８】本発明の記憶装置におけるデータバッファの管理方法のデータ読み出し手順を示すフローチャートの一部である。
【図９】本発明の記憶装置におけるデータバッファの管理方法のデータ読み出し手順を示すフローチャートの一部である。
【図１０】本発明の記憶装置におけるデータバッファの管理方法のデータ読み出し手順を示すフローチャートの一部である。
【図１１】  (a) は図４のキャッシュメモリの分割の第５の実施例を示すブロック図、(b) は図４のキャッシュメモリの分割の第６の実施例を示すブロック図である。
【図１２】記憶媒体からのデータ読み出し時にＦＡＴ部とＤＩＲ部とデータ部とが全てキャッシュメモリに存在した場合の読み出し時間の短縮を、従来のデータ読み出しと比較して示す説明図である。
【図１３】記憶媒体からのデータ読み出し時にＦＡＴ部とＤＩＲ部とがキャッシュメモリに存在した場合の読み出し時間の短縮を、従来のデータ読み出しと比較して示す説明図である。
【図１４】記憶媒体からのデータ読み出し時にＦＡＴ部のみがキャッシュメモリに存在した場合の読み出し時間の短縮を、従来のデータ読み出しと比較して示す説明図である。
【図１５】記憶媒体からのデータ読み出し時にＤＩＲ部のみがキャッシュメモリに存在した場合の読み出し時間の短縮を、従来のデータ読み出しと比較して示す説明図である。
【図１６】記憶媒体からのデータ読み出す時の色々な場合のデータ読み出し時間を比較して示す説明図である。
【符号の説明】
１…光ディスク装置
３…ホストシステム
４…ホストアダプタ
５…ＳＣＳＩバス
６…光ディスク
１２…固定光学部
１３…制御回路部
１４…可動光学部及びアクチュエータ
１５…光ディスクカートリッジ
１７…制御回路
２０…キャッシュメモリ
２１…ＦＡＴ部用データバッファ領域
２２…ＤＩＲ部用データバッファ領域
２３…データ部用データバッファ領域
２４…ＤＩＲ部データ部兼用データバッファ領域
２５…ＦＡＴ部データ部兼用データバッファ領域
３１…ＦＡＴ部
３２…ＤＩＲ部
３３…データ部
【図１】
0003969809.tif 000003
【図２】
0003969809.tif 000004
【図３】
0003969809.tif 000005
【図４】
0003969809.tif 000006
【図５】
0003969809.tif 000007
【図６】
0003969809.tif 000008
【図７】
0003969809.tif 000009
【図８】
0003969809.tif 000010
【図９】
0003969809.tif 000011
【図１０】
0003969809.tif 000012
【図１１】
0003969809.tif 000013
【図１２】
0003969809.tif 000014
【図１３】
0003969809.tif 000015
【図１４】
0003969809.tif 000016
【図１５】
0003969809.tif 000017
【図１６】
0003969809.tif 000018