(57)【特許請求の範囲】
【請求項１】
ホスト装置に接続されて、円盤状の情報記録媒体を用いてブロック単位に情報を記録再生する情報記録再生装置であって、
ホスト装置から再生要求された最終ブロックを中心に、最終ブロックよりも以前のブロックのデータを履歴データとし、最終ブロックよりも先のブロックのデータを先読データとして管理するキャッシュ管理手段と、
前記履歴データと前記先読データを格納するデータバッファと、
前記先読データを所定量に保つキャッシュ維持手段とを備えたことを特徴とする情報記録再生装置。
【請求項２】
ホスト装置に接続されて、円盤状の情報記録媒体を用いてブロック単位に情報を記録再生する情報記録再生装置であって、
ホスト装置から再生要求された最終ブロックを中心に、最終ブロックよりも以前のブロックのデータを履歴データとし、最終ブロックよりも先のブロックのデータを先読データとし、ホスト装置から記録要求されたブロックのデータを履歴データとして管理するキャッシュ管理手段と、
前記履歴データと前記先読データを格納するデータバッファと、
前記先読データを所定量に保つキャッシュ維持手段と、
前記キャッシュ維持手段が媒体から先読み動作中にホスト装置から記録要求を受けた場合、先読み動作を中止して中止したまでの先読データを求める先読中止手段と、
既存する前記履歴データと前記先読データの中で、ホスト装置から記録要求されたブロックは、ホスト装置から送られるデータによって前記データバッファと前記情報記録媒体を更新する記録データ挿入手段とを備えたことを特徴とする情報記録再生装置。
【請求項３】
ホスト装置に接続されて、円盤状の情報記録媒体を用いてブロック単位に情報を記録再生する情報記録再生装置であって、
ホスト装置から記録要求されたブロックのデータを履歴データとして管理するキャッシュ管理手段と、
前記履歴データを格納するデータバッファと、
前記情報記録媒体に前記履歴データを記録中にホスト装置から再生要求された場合に、前記再生要求された全てのブロックのデータが、前記履歴データに含まれるか否かを判断する完全ヒット判定手段と、
前記完全ヒット判定手段が含まれると判断した場合に、前記再生要求された中で前記履歴データに含まれる再生要求ブロックをホスト装置に送ることを前記記録中に行う並行転送手段とを備えたことを特徴とする情報記録再生装置。
【請求項４】
ホスト装置に接続されて、円盤状の情報記録媒体を用いてブロック単位に情報を記録再生する情報記録再生装置であって、
ホスト装置から再生要求された最終ブロックを中心に、最終ブロックよりも以前のブロックのデータを履歴データとし、最終ブロックよりも先のブロックのデータを先読データとし、ホスト装置から記録要求されたブロックのデータを履歴データとして管理するキャッシュ管理手段と、
前記履歴データと前記先読データを格納するデータバッファと、
前記先読データを所定量に保つキャッシュ維持手段と、
前記キャッシュ維持手段が媒体から先読み動作中にホスト装置から記録要求を受けた場合、先読み動作を中止して中止したまでの先読データを求める先読中止手段と、
既存する前記履歴データと前記先読データの中で、ホスト装置から記録要求されたブロックは、ホスト装置から送られるデータによって前記データバッファのデータと前記情報記録媒体のデータを更新する記録データ挿入手段と、
前記情報記録媒体に前記履歴データを記録中にホスト装置から再生要求された場合に、前記再生要求された中で前記履歴データと前記先読データに含まれる再生要求ブロックをホスト装置に送ることを前記記録中に行う並行転送手段とを備えたことを特徴とする情報記録再生装置。
【請求項５】
ホスト装置に接続されて、円盤状の情報記録媒体を用いてブロック単位に情報を記録再生する情報記録再生装置であって、
ホスト装置から記録要求されたブロックのデータを格納するデータバッファと、
ホスト装置から記録要求されたブロックのデータを前記データバッファに格納した時点でホスト装置に記録動作の完了を報告し、引き続き情報記録媒体に記録動作を行うライトバック手段と、
前記ライトバック手段による媒体の記録動作中にホスト装置から記録要求されたブロックが媒体記録中のブロックと連続する場合、前記データバッファ上にも連続して格納するとともに、連続して格納されたブロックを一括して媒体に記録するライトマージ手段とを備えたことを特徴とする情報記録再生装置。
【請求項６】
ホスト装置に接続されて、円盤状の情報記録媒体を用いてブロック単位に情報を記録再生する情報記録再生装置であって、
ホスト装置から記録要求されたブロックのデータを格納するデータバッファと、
ホスト装置から記録要求されたブロックのデータを前記データバッファに格納した時点でホスト装置に記録動作の完了を報告し、引き続き情報記録媒体に記録動作を行うライトバック手段と、
前記ライトバック手段による媒体の記録動作中にホスト装置から記録要求されたブロックが媒体記録中のブロックと連続する場合、前記データバッファ上にも連続して格納するとともに、連続して格納されたブロックを一括して媒体に記録するライトマージ手段と、
前記ライトバック手段による媒体の記録動作中にホスト装置から記録要求されたブロックが媒体記録中のブロックと不連続の場合、媒体上と同一相対位置にある前記データバッファ上の領域に格納し、媒体への記録動作が保留であることを管理するライトキュー管理手段と、
ホスト装置から記録要求されたブロックが前記ライトキュー管理手段が管理するブロックと連続する場合、前記データバッファ上にも連続して格納するキューマージ手段と、
前記ライトバック手段による媒体の記録動作が完了した時点で、前記ライトキュー管理手段が媒体への記録動作を保留しているデータを、前記ライトバック手段により媒体への記録動作を行うキューバック移行手段とを備えたことを特徴とする情報記録再生装置。
【請求項７】
前記データバッファは、前記データバッファの最終アドレスの次を先頭アドレスへ折り返したリングバッファとして用いられることを特徴とする請求項１、２、３、４のいずれかに記載の情報記録再生装置。
【請求項８】
前記キャッシュ維持手段は、前記先読データを前記データバッファの総量の整数分の１に等しい量に保つことを特徴とする請求項１、２、４のいずれかに記載の情報記録再生装置。
【請求項９】
前記キャッシュ維持手段は、前記先読データを情報記録媒体の１回転分のブロック数の整数倍に等しい量に保つことを特徴とする請求項１、２、４のいずれかに記載の情報記録再生装置。
【請求項１０】
ホスト装置に接続されて、円盤状の情報記録媒体を用いてブロック単位に情報を記録再生する情報記録再生装置のデータキャッシュ方法であって、
（ａ）ホスト装置から再生要求された最終ブロックを中心に、最終ブロックよりも以前のブロックのデータを履歴データとし、最終ブロックよりも先のブロックのデータを先読データとしてデータバッファに格納し管理するキャッシュ管理ステップと、
（ｂ）前記先読データを所定量に保つキャッシュ維持ステップとからなるデータキャッシュ方法。
【請求項１１】
ホスト装置に接続されて、円盤状の情報記録媒体を用いてブロック単位に情報を記録再生する情報記録再生装置のデータキャッシュ方法であって、
（ａ）ホスト装置から再生要求された最終ブロックを中心に、最終ブロックよりも以前のブロックのデータを履歴データとし、最終ブロックよりも先のブロックのデータを先読データとし、ホスト装置から記録要求されたブロックのデータを履歴データとしてデータバッファに格納し管理するキャッシュ管理ステップと、
（ｂ）前記先読データを所定量に保つキャッシュ維持ステップと、
（ｃ）前記キャッシュ維持手段が媒体から先読み動作中にホスト装置から記録要求を受けた場合、先読み動作を中止して中止したまでの先読データを求める先読中止ステップと、
（ｄ）既存する前記履歴データと前記先読データの中で、ホスト装置から記録要求されたブロックは、ホスト装置から送られるデータによってデータバッファと前記情報記録媒体を更新する記録データ挿入ステップとからなるデータキャッシュ方法。
【請求項１２】
ホスト装置に接続されて、円盤状の情報記録媒体を用いてブロック単位に情報を記録再生する情報記録再生装置のデータキャッシュ方法であって、
（ａ）ホスト装置から記録要求されたブロックのデータを履歴データとしてデータバッファに格納し管理するキャッシュ管理ステップと、
（ｂ）前記情報記録媒体に前記履歴データを記録中にホスト装置から再生要求された場合に、前記再生要求された全てのブロックのデータが、前記履歴データに含まれるか否かを判断する完全ヒット判定ステップと、
（ｃ）前記完全ヒット判定ステップが含まれると判断した場合に、前記再生要求された中で前記履歴データに含まれる再生要求ブロックをホスト装置に送ることを前記記録中に行う並行転送ステップとからなるデータキャッシュ方法。
【請求項１３】
ホスト装置に接続されて、円盤状の情報記録媒体を用いてブロック単位に情報を記録再生する情報記録再生装置のデータキャッシュ方法であって、
（ａ）ホスト装置から再生要求された最終ブロックを中心に、最終ブロックよりも以前のブロックのデータを履歴データとし、最終ブロックよりも先のブロックのデータを先読データとし、ホスト装置から記録要求されたブロックのデータを履歴データとしてデータバッファに格納し管理するキャッシュ管理ステップと、
（ｂ）前記先読データを所定量に保つキャッシュ維持ステップと、
（ｃ）前記キャッシュ維持手段が媒体から先読み動作中にホスト装置から記録要求を受けた場合、先読み動作を中止して中止したまでの先読データを求める先読中止ステップと、
（ｄ）既存する前記履歴データと前記先読データの中で、ホスト装置から記録要求されたブロックは、ホスト装置から送られるデータによってデータバッファと前記情報記録媒体を更新する記録データ挿入ステップと、
（ｅ）前記情報記録媒体に前記履歴データを記録中にホスト装置から再生要求された場合に、前記再生要求された中で前記履歴データと前記先読データに含まれる再生要求ブロックをホスト装置に送ることを前記記録中に行う並行転送ステップとからなるデータキャッシュ方法。
【請求項１４】
ホスト装置に接続されて、円盤状の情報記録媒体を用いてブロック単位に情報を記録再生する情報記録再生装置のデータキャッシュ方法であって、
（ａ）ホスト装置から記録要求されたブロックをデータバッファに格納した時点でホスト装置に記録動作の完了を報告し、引き続き情報記録媒体に記録動作を行うライトバックステップと、
（ｂ）前記ライトバックステップによる媒体の記録動作中にホスト装置から記録要求されたブロックが媒体記録中のブロックと連続する場合、データバッファ上にも連続して格納するとともに、連続して格納されたブロックを一括して媒体に記録するライトマージステップとからなるデータキャッシュ方法。
【請求項１５】
ホスト装置に接続されて、円盤状の情報記録媒体を用いてブロック単位に情報を記録再生する情報記録再生装置のデータキャッシュ方法であって、
（ａ）ホスト装置から記録要求されたブロックをデータバッファに格納した時点でホスト装置に記録動作の完了を報告し、引き続き情報記録媒体に記録動作を行うライトバックステップと、
（ｂ）前記ライトバックステップによる媒体の記録動作中にホスト装置から記録要求されたブロックが媒体記録中のブロックと連続する場合、データバッファ上にも連続して格納するとともに、連続して格納されたブロックを一括して媒体に記録するライトマージステップと、
（ｃ）前記ライトバックステップによる媒体の記録動作中にホスト装置から記録要求されたブロックが媒体記録中のブロックと不連続の場合、媒体上と同一相対位置にあるデータバッファ上の領域に格納し、媒体への記録動作が保留であることを管理するライトキュー管理ステップと、
（ｄ）ホスト装置から記録要求されたブロックが前記ライトキュー管理ステップが管理するブロックと連続する場合、データバッファ上にも連続して格納するキューマージステップと、
（ｅ）前記ライトバックステップによる媒体の記録動作が完了した時点で、前記ライトキュー管理ステップが媒体への記録動作を保留しているデータを、前記ライトバックステップにより媒体への記録動作を行うキューバック移行ステップとからなるデータキャッシュ方法。
【請求項１６】
前記キャッシュ管理ステップは、前記データバッファの最終アドレスの次を先頭アドレスへ折り返したリングバッファとして用いることを特徴とする請求項１０、１１、１２、１３のいずれかに記載のデータキャッシュ方法。
【請求項１７】
前記キャッシュ維持ステップは、前記先読データを前記データバッファの総量の整数分の１に等しい量に保つことを特徴とする請求項１０、１１、１３のいずれかに記載のデータキャッシュ方法。
【請求項１８】
前記キャッシュ維持ステップは、前記先読データを情報記録媒体の１回転分のブロック数の整数倍に等しい量に保つことを特徴とする請求項１０、１１、１３のいずれかに記載のデータキャッシュ方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、円盤状の情報記録媒体に対してブロック単位に記録再生する情報記録再生装置であり、特に、履歴キャッシュと先読キャッシュの両方の機能を有する情報記録再生装置である。
【０００２】
【従来の技術】
近年、ホストコンピュータの高速化が進み、その外部記憶装置（例えばハードディスク装置や光ディスク装置などの情報記録再生装置）との速度ギャップが開きつつある。このギャップを埋めるために、外部記憶装置はより高速になってきており、その方法には大きく分けて２つある。１つは、記録媒体の回転数を上げたり、記憶媒体の目的トラックにヘッドを移動するシーク時間を短縮したりした物理的に高速化である。もう１つは、装置内部に半導体メモリからなるバッファを持ち、ホストコンピュータから要求されたデータをバッファに存在していれば、記録媒体にアクセスせずにバッファ上のデータを転送する等のデータキャッシュ機能による論理的な高速化である。
【０００３】
データキャッシュには、再生動作を速くするリードキャッシュと、記録動作を速くするライトキャッシュとがある。さらに、リードキャッシュには、以前にホストコンピュータから要求されたデータをキャッシュデータとする履歴型と、以前にホストコンピュータから要求されたデータの次のデータを前もって読み出してキャッシュデータとする先読型とがある。
【０００４】
履歴型リードキャッシュは、大型計算機の分野で高速・低容量メモリ〜低速・大容量メモリの階層構造が全体として高速・大容量メモリとなるように、古くから研究されている。この履歴型リードキャッシュのアルゴリズムとして有名なのが、コードらによって米国特許第３，７３７，８８１に示されたＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅ）アルゴリズムであろう。ＬＲＵアルゴリズムは、高速なメモリを複数の小領域に分割し（この分割された小領域をページと呼ぶ）、要求されたデータがどのページにもなければ（ミスヒットと呼ぶ）、最も古くアクセスされたページのデータを破棄して、そのページに低速なメモリからの情報を格納するものである。これは、コンピュータが参照したデータを再び参照する確率が高いことに起因する。ＬＲＵアルゴリズムに関わらず、どの履歴型リードキャッシュも１つ以上のページを持つことは共通で、ミスヒットした場合にどのページのデータを破棄するかが異なるものである。
【０００５】
図１６は、円盤状の情報記録媒体のレイアウト図である。情報記録媒体は同心円状（もしくは螺旋状）の１回転分をトラック（図１６のＴ０、Ｔ１、Ｔ２）と呼ばれる。さらにトラックはセクタと呼ばれるブロック単位（０〜１５の番号が記入された扇形の領域）に分割されている。情報記録媒体は回転方向が左回りならば、同心円上にならぶブロックは左回りにアクセスされることになる。アクセス順にブロックには番号が付けられるのが普通である。
【０００６】
先読型リードキャッシュは、ハードディスク装置等の円盤状の情報記録媒体を回転させて情報を記録・再生する装置に対して、回転待ちを無くして再生動作を高速にするものである。通常、コンピュータ上で稼働するＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）およびアプリケーションは、１つのファイルを読み出す場合に、一度にファイル全体を再生要求せずに、ファイルの先頭から順番に小さく区分した単位に再生要求する。この様なアクセス形態をシーケンシャルアクセスと呼ぶ。例えば、ブロック１から１０までを１ブロック単位にシーケンシャルアクセスされた場合を想定してみる。ブロック１を要求された直後、即ちブロック２を通過中にブロック２を要求されるため、ほぼ１回転するまで待たなければならない。従って、１ブロックを再生するために１回転を要することになり、ブロック１から１０までを再生するためには１０回転が必要になる。そこで、ホストコンピュータから要求されたときに、情報記録媒体から要求されたブロックよりも先のブロックを前もって高速なメモリ（即ち半導体メモリでできたデータバッファ）に読み出しておく。次に要求されたブロックが前もって読み出していれば（ヒットと呼ぶ）、情報記録媒体にアクセスすることなくデータバッファのデータをホストコンピュータに転送する。こうすれば、ブロック１から１０までを再生するために１回転あれば充分である。最近では、先読型リードキャッシュを備えた情報記録再生装置として、飯田らによって特開平５−２７４０９０に示されている。シーケンシャルアクセスは、連続するブロック数が多くなるため、データバッファをリングバッファ（終端に到達すると先端に折り返されるバッファ）として制御することが多い。
【０００７】
従来の技術を適用して、履歴型と先読型の両方のリードキャッシュを備えた情報記録再生装置を得るためには以下のようにする必要がある。（１）内部データバッファを２分割して、一方を履歴キャッシュデータ領域とし他方を先読キャッシュデータ領域とする。
（２）各キャッシュデータ領域に、それぞれ履歴型と先読型のアルゴリズムを当てはめる。
（３）次の要求が同ブロックか次ブロックかを予測して、どちらを適用するか判断する。
但し、履歴型と先読型のアルゴリズムが全く異なるため、（１）では固定した境界で２分割する必要がある。
【０００８】
次にライトキャッシュであるが、代表的なものにライトスルーキャッシュとライトバックキャッシュとがある。ライトスルーキャッシュとライトバックキャッシュは、低速メモリの更新内容が高速メモリに反映され、更新された内容を参照する場合に高速メモリがアクセスされる点は同一で、低速メモリの更新が終わるまで待たされるのがライトスルーキャッシュで、低速メモリの更新が終わるのを待たないのがライトバックキャッシュである。従って、双方のキャッシュで情報の参照時間が短縮されるが、情報の更新時間が短縮されるのはライトバックキャッシュだけである。
【０００９】
ハードディスク装置や光ディスク装置等の円盤状の情報記録媒体を回転させて情報を記録再生する装置は、１セクタの記録が要求された場合、目的のセクタが存在するトラックへ移動するシークと、目的のセクタの頭出しをする回転待ち時間が必要になる。特に、光ディスク装置では、記録前に消去し、記録後に検証再生するため余計に時間がかかる。図１７は、光ディスク装置の記録動作を示したものである。
（Ｑ１）目的トラックへシークする。
（Ｑ２）目的セクタまでの回転待ち（平均１／２回転）。
（Ｑ３）１セクタ消去する。
（Ｑ４）目的セクタまでの回転待ち（１回転）。
（Ｑ５）１セクタ記録する。
（Ｑ６）目的セクタまでの回転待ち（１回転）。
（Ｑ７）１セクタ検証再生する。
【００１０】
上記のように、１セクタ記録するために平均２回転半の回転待ち時間＋シーク時間を要するため、ホスト装置と光ディスク装置をつなぐバスの速度に比べて非常に低速である。従って、光ディスク装置内のデータバッファに記録データが格納された時点でホスト装置には記録動作が完了したと通知し、その後にデータバッファ上の記録データを光ディスクに記録するライトバックキャッシュ機能により、ホスト装置から見た速度は高速化される。ハードディスクでは１セクタ記録するために平均半回転の回転待ち時間＋シーク時間となるが、これもホスト装置とハードディスク装置をつなぐバスの速度に比べて低速であるから同様なことが言える。
【００１１】
【発明が解決しようとする課題】
前述したように、履歴型リードキャッシュは参照されたブロックが再び参照される確率が高いことに起因し、先読型リードキャッシュは参照されたブロックの続きが参照される確率が高いことに起因する。起因となったものが違うため、両方のリードキャッシュ機能を備えることは困難であり、例え両方を備えたとしても、データバッファ内の履歴キャッシュデータ領域と先読キャッシュデータ領域は固定され、一方のリードキャッシュ機能が他方のを阻害するという問題を有していた。
【００１２】
また、媒体から先読キャッシュデータを再生中にホスト装置から記録要求があった場合に、先読キャッシュデータの再生が終了するまで媒体への記録動作が待機されるためパフォーマンスの低下を招くとともに、記録データは履歴キャッシュデータとして扱われるため先読キャッシュデータと共通に管理することできないという問題を有していた。
【００１３】
さらに、ライトバックキャッシュによる媒体への記録中にホスト装置から再生要求があった場合に、例えキャッシュデータに再生要求されたデータが存在していたとしても、媒体への記録が終了するまで待たされるためパフォーマンスの低下を招くという問題を有していた。
【００１４】
また、ライトバックキャッシュによってホスト装置から見た速度は高速化されていても、媒体に記録するために必要な時間は短縮されていないという問題点を有していた。
【００１５】
【課題を解決するための手段】
ホスト装置に接続されて、円盤状の情報記録媒体を用いてブロック単位に情報を記録再生する情報記録再生装置であって、ホスト装置から再生要求された最終ブロックを中心に、最終ブロックよりも以前のブロックのデータを履歴データとし、最終ブロックよりも先のブロックのデータを先読データとし、ホスト装置から記録要求されたブロックのデータを履歴データとして管理するキャッシュ管理手段と、前記履歴データと前記先読データを格納する先読履歴バッファと、前記先読データを所定量に保つキャッシュ維持手段と、前記キャッシュ維持手段が媒体から先読み動作中にホスト装置から記録要求を受けた場合、先読み動作を中止して中止したまでの先読データを求める先読中止手段と、既存する前記履歴データと前記先読データの中で、ホスト装置から記録要求されたブロックは、ホスト装置から送られるデータによって前記先読履歴バッファのデータと前記情報記録媒体のデータを更新する記録データ挿入手段と、ホスト装置から記録要求されたブロックのデータを前記先読履歴バッファに格納した時点でホスト装置に記録動作の完了を報告し、引き続き情報記録媒体に記録動作を行うライトバック手段と、前記ライトバック手段による媒体の記録動作中にホスト装置から記録要求されたブロックが媒体記録中のブロックと連続する場合、前記先読履歴バッファ上にも連続して格納するとともに、連続して格納されたブロックを一括して媒体に記録するライトマージ手段と、前記ライトバック手段による媒体の記録動作中にホスト装置から記録要求されたブロックが媒体記録中のブロックと不連続の場合、媒体上と同一相対位置にある前記先読履歴バッファ上の領域に格納し、媒体への記録動作が保留であることを管理するライトキュー管理手段と、ホスト装置から記録要求されたブロックが前記ライトキュー管理手段が管理するブロックと連続する場合、前記先読履歴バッファ上にも連続して格納するキューマージ手段と、前記ライトバック手段による媒体の記録動作が完了した時点で、前記ライトキュー管理手段が媒体への記録動作を保留しているデータを、前記ライトバック手段により媒体への記録動作を行うキューバック移行手段と、情報記録媒体に前記履歴データを記録中にホスト装置から再生要求された場合に、前記履歴データと前記先読データに含まれる再生要求ブロックをホスト装置に送る並行転送手段とを備えた情報記録再生装置およびデータキャッシュ方法である。
【００１６】
【作用】
上記構成により、ホスト装置から要求された最終ブロックを中心に履歴データと先読データを一元管理することができ、先読み動作中にホスト装置から記録要求されても即座に記録動作を開始できると共に、媒体から再生したデータとホスト装置から送られた記録データの両方をリードキャッシュデータとすることができ、媒体への記録処理とホスト装置への再生処理を並行して行うことができ、ホスト装置からシーケンシャルもしくは局所に集中する記録要求を受けた場合に媒体への記録動作自体を高速化することができる。
【００１７】
【実施例】
本発明の情報記録再生装置およびデータキャッシュ方法の実施例について、図面を参照しながら以下に説明する。
【００１８】
図１は、本発明の第一、第二、第三の実施例における情報記録再生装置の構成図である。図１において、１は情報記録再生装置、２はホスト装置、３はコントローラ装置、４はドライブ装置、５はホストＩＦバス、６はドライブＩＦバス、７は内部バス、８はホストＩＦ回路、９はドライブＩＦ回路、１０はＥＣＣ回路、１１はＣＰＵ、１２は先読履歴バッファ、１３はキャッシュ管理情報である。情報記録再生装置１は、ホスト装置２とＳＣＳＩインタフェース等のホストインタフェースのバスであるホストＩＦバス５によって接続される。情報記録再生装置１は、コントローラ装置３とドライブ装置４から構成される。情報記録再生装置１は、ホスト装置２の命令に従って、コントローラ装置３の制御によりドライブ装置４の情報記録媒体（図示せず）に記録および再生を行う。コントローラ装置３とドライブ装置４は、ＥＳＤＩ等のドライブインタフェースのバスであるドライブＩＦバス６によって接続されている。コントローラ装置３は、内部バス７によって接続されたホストＩＦ回路８とドライブＩＦ回路９とＥＣＣ回路１０とＣＰＵ１１と先読履歴バッファ１２と、キャッシュ管理情報１３によって構成されている。ＣＰＵ１１は、内部に格納されたプログラムに従って、ホストＩＦ回路８を用いてホストＩＦバス５を制御し、ドライブＩＦ回路９を用いてドライブＩＦバス６を制御し、ＥＣＣ回路１０を用いてエラー訂正を行い、先読履歴バッファ１２に格納されたデータをキャッシュ管理情報１３を用いてキャッシュデータとして管理する。
【００１９】
図２は、本発明の第一、第二、第三の実施例におけるキャッシュ管理の概念図で、ＣＰＵ１１がキャッシュ管理情報１３を用いて先読履歴バッファ１２のデータをキャッシュデータとして管理することを説明するために用意した図である。キャッシュ管理情報１３は、先読履歴バッファ１２に最初に格納されたブロックに対する情報記録媒体上の位置を示すＳＴＡ＿ＢＡと、先読履歴バッファ１２に先読データによって破壊されていない履歴データの先頭ブロックの媒体上の位置を示すＨＩＳ＿ＢＡと、先読履歴バッファ１２の総容量をブロック単位で示すＢＵＦ＿ＬＮＧと、ＳＴＡ＿ＢＡを先頭に情報記録媒体から再生したブロック数を示すＲＷ＿ＬＮＧと、ＳＴＡ＿ＢＡを先頭にホストから要求された最終ブロックまでのブロック数を示すＨＩＳ＿ＬＮＧから構成される。先読履歴バッファ１２の内、右上がりの斜線で塗りつぶされた領域が履歴データで、左上がりの斜線で塗りつぶされた領域が先読データである。先読データの先頭位置はＨＩＳ＿ＢＡ＋ＨＩＳ＿ＬＮＧで、先読データのブロック数はＲＷ＿ＬＮＧ−ＨＩＳ＿ＬＮＧとなる。先読履歴バッファ１２がリングバッファとして一周以上使用されていない場合、履歴データの先頭位置ＨＩＳ＿ＢＡはＳＴＡ＿ＢＡに等しく、履歴データのブロック数はＨＩＳ＿ＬＮＧとなる。
【００２０】
図３は、本発明の第一、第二、第三の実施例におけるリングバッファ管理の概念図で、先読履歴バッファ１２がリングバッファとして用いた場合におけるキャッシュデータの管理を説明するために用意した図である。図３（ａ）で示されるように、先読履歴バッファ１２は論理的に末端が先頭に折り返されてリング状のバッファとして機能する。このとき、ホスト装置２から要求された最終ブロックはＳＴＡ＿ＢＡ＋ＨＩＳ＿ＢＡで、この境界よりも後ろが履歴データで前が先読データである。図３（ｂ）は、リング状の先読履歴バッファ１２の展開図である。情報記録媒体から再生した総ブロック数ＲＷ＿ＬＮＧが、先読履歴バッファ１２の総ブロック数ＢＵＦ＿ＬＮＧを越えた場合、履歴データの一部は先読データによって上書きされる。先読履歴バッファ１２をプレーン状に戻した場合、情報記録媒体から再生した最終ブロックが格納されている位置は、ＲＷ＿ＬＮＧをＢＵＦ＿ＬＮＧで割った剰余となる（Ｘ％ＹはＸをＹで割った剰余を示す）。ＨＩＳ＿ＬＮＧについても同様である。また、残っている履歴データの先頭ブロック位置を示すＨＩＳ＿ＢＡは、ＳＴＡ＿ＢＡとＳＴＡ＿ＢＡ＋ＲＷ＿ＬＮＧ−ＢＵＦ＿ＬＮＧの内で大きい方になる（Ｍａｘ（Ｘ，Ｙ）はＸとＹの内で大きい方を示す）。従って、履歴データはＨＩＳ＿ＢＡからＳＴＡ＿ＢＡ＋ＨＩＳ＿ＬＮＧまでで、先読データはＳＴＡ＿ＢＡ＋ＨＩＳ＿ＬＮＧからＳＴＡ＿ＢＡ＋ＲＷ＿ＬＮＧまでとなる。また、先読履歴バッファ１２でデータが有効なブロックのプレーン状での位置は、ＳＴＡ＿ＢＡからの差分ブロック数をＢＵＦ＿ＬＮＧで割った剰余より求めることができる。
【００２１】
図４は、本発明の第一の実施例におけるデータキャッシュ方法のフローチャートである。ホスト装置が情報記録再生装置に再生要求を行った場合に、再生要求された最終ブロックを中心に履歴データと先読データとを管理し、所定量（ここでは先読履歴バッファの総容量の半分）の先読データを保持する動作について説明する。ホスト装置が再生要求した先頭ブロック位置をＲＥＱ＿ＢＡ、ブロック数をＲＥＱ＿ＬＮＧとする。
（Ｄ１）ホスト装置が再生要求した先頭ブロックがキャッシュされていればＤ２へ、そうでなければＤ５へ分岐する。先頭ブロックがキャッシュされている条件は、ＨＩＳ＿ＢＡ≦ＲＥＱ＿ＢＡ＜ＳＴＡ＿ＢＡ＋ＲＷ＿ＬＮＧになる。
（Ｄ２）先読データを所定量に保つために必要な読み足しブロック数を求める。読み足しブロック数ＡＤＤ＿ＬＮＧは、ホスト装置が再生要求した最終ブロック（ＲＥＱ＿ＢＡ＋ＲＥＱ＿ＬＮＧ）から以前にホスト装置が再生要求した最終ブロック（ＳＴＡ＿ＢＡ＋ＨＩＳ＿ＬＮＧ）を差し引いたブロック数になる。
（Ｄ３）先読データを所定量に保つために媒体からの読み足しが必要ならばＤ４へ、そうでなければＤ７へ分岐する。読み足しが必要である条件は、読み足しブロック数ＡＤＤ＿ＬＮＧ＞０になる。
（Ｄ４）媒体から読み足すことによるキャッシュ情報の更新を行う。ＲＷ＿ＬＮＧおよびＨＩＳ＿ＬＮＧは、それぞれＡＤＤ＿ＬＮＧを加えたものになり、ＨＩＳ＿ＢＡは、ＳＴＡ＿ＢＡとＳＴＡ＿ＢＡ＋ＲＷ＿ＬＮＧ−ＢＵＦ＿ＬＮＧの内で大きい方になる。
（Ｄ５）ホスト装置が再生要求したブロックとそれに引き続いた所定量（先読履歴バッファの総容量の半分）の先読みを行うようにキャッシュ情報を初期化する。ＳＴＡ＿ＢＡはＲＥＱ＿ＢＡに、ＡＤＤ＿ＬＮＧおよびＲＷ＿ＬＮＧはＲＥＱ＿ＬＮＧ＋ＢＵＦ＿ＬＮＧ／２に、ＨＩＳ＿ＬＮＧはＲＥＱ＿ＬＮＧに、ＨＩＳ＿ＢＡは、ＳＴＡ＿ＢＡとＳＴＡ＿ＢＡ＋ＲＷ＿ＬＮＧ−ＢＵＦ＿ＬＮＧの内で大きい方になる。
（Ｄ６）媒体から先読履歴バッファにデータを読み足す。
（Ｄ７）ホスト装置に再生要求されたブロックのデータを送る。
【００２２】
図５は、本発明の第一の実施例におけるデータキャッシュ方法の動作を説明する概念図である。図５（ａ）は、ホスト装置から再生要求されたブロックがキャッシュにミスヒットした場合に、キャッシュ情報が初期化されて媒体から再生されたデータが先読履歴バッファに格納された状態を示す。この状態でホスト装置から履歴データと先読データにまたがる再生要求を受けた場合に、キャッシュ情報が更新され媒体から読み足されたデータが先読履歴バッファに格納された状態を示すのが図５（ｂ）である。図５（ｃ）は、この状態でホスト装置から履歴データのみに再生要求を受けた場合に、キャッシュ情報が更新されず媒体からの読み足しも行われないため、先読履歴バッファの状態が変化しないことを示す。従って、図５（ｂ）と図５（ｃ）の先読履歴バッファの状態は同一である。さらに、この状態でホスト装置から先読データのみに再生要求を受けた場合は、キャッシュ情報が更新され媒体から読み足されたデータがリング状に折り返して履歴データの一部を上書きした状態を示したものが図５（ｄ）である。図５（ｄ）において、ＨＩＳ＿ＢＡよりも左に位置していた履歴データは有効でなくなる。
【００２３】
以上説明したように、本発明の第一の実施例において、ホスト装置から再生要求された最終ブロックを中心に履歴データと先読データを一元管理することができる。また先読データを常に所定量に保つこともできる。
【００２４】
図６は、本発明の第二の実施例におけるデータキャッシュ方法のフローチャートである。ホスト装置が情報記録再生装置に記録要求を行った場合に、先読み動作中にホスト装置から記録要求されても即座に記録動作を開始すると共に、媒体から再生したデータとホスト装置から送られた記録データの両方をリードキャッシュデータとする動作について説明する。ホスト装置が記録要求した先頭ブロック位置をＲＥＱ＿ＢＡ、ブロック数をＲＥＱ＿ＬＮＧとする。また、媒体から最後に再生したブロック位置ＥＮＤ＿ＢＡは、ドライブＩＦ回路９により求められるものとする。
（Ｆ１）媒体から先読データを再生中の場合Ｆ２へ、そうでなければＦ４へ分岐する。
（Ｆ２）媒体からの先読み動作を中止する。
（Ｆ３）先読み動作を中止したことによりキャッシュ情報を修正する。媒体から再生した総ブロック数ＲＷ＿ＬＮＧは最後に再生したブロック位置ＥＮＤ＿ＢＡから最初に再生したブロック位置ＳＴＡ＿ＢＡの差に１を加えた値に、ＨＩＳ＿ＢＡはＳＴＡ＿ＢＡとＳＴＡ＿ＢＡ＋ＲＷ＿ＬＮＧ−ＢＵＦ＿ＬＮＧの内で大きい方に修正される。
（Ｆ４）ホスト装置が記録要求した先頭ブロックがキャッシュされていればＦ５へ、そうでなければＦ６へ分岐する。先頭ブロックがキャッシュされている条件は、ＨＩＳ＿ＢＡ≦ＲＥＱ＿ＢＡ＜ＳＴＡ＿ＢＡ＋ＲＷ＿ＬＮＧになる。
（Ｆ５）既存のキャッシュデータに記録データを履歴データとして加えるように、キャッシュ情報を更新する。ＨＩＳ＿ＬＮＧおよびＲＷ＿ＬＮＧは、それぞれ自分自身とＲＥＱ＿ＢＡ＋ＲＥＱ＿ＬＮＧ−ＳＴＡ＿ＢＡの内で大きい方になる。ＨＩＳ＿ＢＡは、ＳＴＡ＿ＢＡとＳＴＡ＿ＢＡ＋ＲＷ＿ＬＮＧ−ＢＵＦ＿ＬＮＧの内で大きい方になる。
（Ｆ６）既存のキャッシュデータを破棄して、記録データを履歴データとなるように、キャッシュ情報を初期化する。ＳＴＡ＿ＢＡは、ＲＥＱ＿ＢＡに等しくなる。ＨＩＳ＿ＬＮＧおよびＲＷ＿ＬＮＧは、ＲＥＱ＿ＬＮＧに等しくなる。ＨＩＳ＿ＢＡは、ＳＴＡ＿ＢＡとＳＴＡ＿ＢＡ＋ＲＷ＿ＬＮＧ−ＢＵＦ＿ＬＮＧの内で大きい方になる。
（Ｆ７）ホスト装置から記録データを受けて、先読履歴バッファに格納する。
（Ｆ８）ホスト装置から受けた記録データを媒体に記録する。
【００２５】
図７は、本発明の第二の実施例におけるデータキャッシュ方法の動作を説明する概念図である。図７（ａ１）は、以前にホスト装置から再生要求されて、履歴データと先読データが先読履歴バッファに格納されている状態を示す。この状態でホスト装置から履歴データと先読データにまたがる記録要求を受けた場合に、記録データが履歴データとして既存のキャッシュデータを更新した状態を示すのが図７（ａ２）である。図７（ｂ１）は、図７（ａ１）と同じ状態を示す。この状態でホスト装置から先読データを越える記録要求を受けた場合に、記録データが履歴データとして既存のキャッシュデータを更新した状態を示すのが図７（ｂ２）である。
【００２６】
以上説明したように、本発明の第二の実施例において、ホスト装置が情報記録再生装置に記録要求を行った場合に、先読み動作中にホスト装置から記録要求されても即座に記録動作を開始すると共に、媒体から再生したデータとホスト装置から送られた記録データの両方をキャッシュデータとすることができる。
【００２７】
図８は、本発明の第三の実施例におけるデータキャッシュ方法のフローチャートである。媒体への記録中にホスト装置から再生要求を受けた場合に、媒体への記録処理とホスト装置への再生処理を並行して行う動作について説明する。ホスト装置が記録要求した先頭ブロック位置をＲＥＱ＿ＢＡ、ブロック数をＲＥＱ＿ＬＮＧとする。
（Ｈ１）ライトバックキャッシュによる媒体への記録処理中ならばＨ２へ、そうでなければ他の処理（例えば図４で示された処理）へ分岐する。
（Ｈ２）ホスト装置が再生要求したブロックの全てがキャッシュデータに存在する（完全ヒット）ならばＨ３へ、そうでなければＨ５へ分岐する。完全ヒットの条件は、ＲＥＱ＿ＢＡ≧ＨＩＳ＿ＢＡで且つＲＥＱ＿ＢＡ＋ＲＥＱ＿ＬＮＧ≦ＳＴＡ＿ＢＡ＋ＲＷ＿ＬＮＧになる。
（Ｈ３）完全ヒットした領域を履歴データとして扱うためにキャッシュ情報を更新する。ＨＩＳ＿ＬＮＧおよびＲＷ＿ＬＮＧは、それぞれ自分自身とＲＥＱ＿ＢＡ＋ＲＥ＿ＬＮＧ−ＳＴＡ＿ＢＡの内で大きい方になる。ＨＩＳ＿ＢＡは、ＳＴＡ＿ＢＡとＳＴＡ＿ＢＡ＋ＲＷ＿ＬＮＧ−ＢＵＦ＿ＬＮＧの内で大きい方になる。
（Ｈ４）ホスト装置へ再生要求されたブロックのデータを送る。
（Ｈ５）ライトバックキャッシュによる媒体への記録処理が終了するのを待つ。
【００２８】
図９は、本発明の第三の実施例におけるデータキャッシュ方法の動作を説明する概念図である。図９（ａ）は、以前にホスト装置から再生要求されて、履歴データと先読データが先読履歴バッファに格納されて、その後ホスト装置から履歴データのみに含まれる領域を記録要求されて、媒体へ記録している状態を示す。この状態で、媒体へ記録中のデータを含む履歴データと先読データにまたがって再生要求された場合に、再生要求されたデータを履歴データとして管理した状態を示すのが図９（ｂ）である。
【００２９】
以上説明したように、本発明の第三の実施例において、媒体への記録中にホスト装置へから再生要求を受けた場合に、媒体への記録処理とホスト装置への再生処理を並行して行うことができると共に、媒体から再生したデータとホスト装置から送られた記録データの両方をキャッシュデータとすることができる。
【００３０】
以下で述べるデータキャッシュ方法は、ホスト装置からの見かけの速度を向上させるだけでなく、媒体への記録処理自体を高速化するもので、その概念について補足説明を行う。円盤状の情報記録媒体を用いた場合に、半導体メモリを用いた場合との差は、アクセスする場所毎にそのアクセス時間が大きく異なることである。従来技術の説明で述べた様に、コンピュータ上で稼働するＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）およびアプリケーションは、１つのファイルを読み出す場合に、ファイルの先頭から順番に小さく区分した単位に再生要求する。この様なアクセス形態をシーケンシャルアクセスと呼ぶが、１つのファイルを書き込む場合も同様にシーケンシャルアクセスをする。例えば図１６において、ファイルがトラックＴ１のセクタ０から９に相当し、セクタ０から順に１セクタ単位に記録要求されることになる。この場合、図１７で説明した光ディスク装置の記録処理の手順から、ファイルを書き込むのに必要な時間を求めると、最低でも３回転×１０＝３０回転分となる。この時間は、１０セクタを一括で記録した時間（＝３回転）に比べて１０倍にもなる。この時間比率はハードディスクでも同じである。即ち、シーケンシャルアクセスの記録要求を、まとめて１つの記録要求に変換することができれば、媒体への記録処理自体を高速化することになる。
【００３１】
図１０は、本発明の第四、第五の実施例における情報記録再生装置の構成図である。図１０において、図１と同じ構成要素については同一番号を付し詳細な説明は省略する。図１０において、２０１は情報記録再生装置、２０３はコントローラ装置、２１１はＣＰＵ、２１２は記録マージバッファ、２１３は記録キャッシュ管理情報である。ＣＰＵ２１１は、内部に格納されたプログラムに従って、ホストＩＦ回路８を用いてホストＩＦバス５を制御し、ドライブＩＦ回路９を用いてドライブＩＦバス６を制御し、ＥＣＣ回路１０を用いてエラー訂正を行い、記録マージバッファ２１２に格納されたデータを記録キャッシュ管理情報２１３を用いてキャッシュデータとして管理する。
【００３２】
図１１は、本発明の第四、第五の実施例におけるキャッシュ管理の概念図で、ＣＰＵ２１１が記録キャッシュ管理情報２１３を用いて記録マージバッファ２１２のデータをキャッシュデータとして管理することを説明するために用意した図である。記録キャッシュ管理情報２１３は、記録マージバッファ２１２に最初に格納されたブロックに対して情報記録媒体上のブロック位置を示すＳＴＡ＿ＢＡと、記録マージバッファ２１２の総容量をブロック単位で示すＢＵＦ＿ＬＮＧと、媒体へ記録中の先頭ブロック位置を示すＭＲＧ＿ＢＡと、媒体へ記録中のブロック数を示すＭＲＧ＿ＬＮＧ、媒体への記録が保留されている先頭ブロック位置を示すＱＵＥ＿ＢＡと、媒体への記録が保留されているブロック数を示すＱＵＥ＿ＬＮＧから構成される。ＳＴＡ＿ＢＡとＢＵＦ＿ＬＮＧとＭＲＧ＿ＢＡとＭＲＧ＿ＬＮＧとを合わせてライトマージ情報とし、ＱＵＥ＿ＢＡとＱＵＥ＿ＬＮＧとを合わせてキューマージ情報と呼ぶこととする。記録マージバッファ２１２の内、右上がりの斜線で塗りつぶされた領域がライトマージデータで、左上がりの斜線で塗りつぶされた領域がキューマージデータである。
【００３３】
図１２は、本発明の第四の実施例におけるデータキャッシュ方法のフローチャートである。媒体への記録中にホスト装置から記録要求を受けた場合に、シーケンシャルアクセスな記録要求を一括して媒体への記録処理を行う動作について説明する。ホスト装置が記録要求した先頭ブロック位置をＲＥＱ＿ＢＡ、ブロック数をＲＥＱ＿ＬＮＧとする。
（Ｌ１）ライトバックキャッシュによる媒体への記録処理中ならばＬ２へ、そうでなければＬ６へ分岐する。
（Ｌ２）媒体へ記録中のデータとホスト装置から記録要求されたデータの両方が記録マージバッファに納まるならばＬ３へ、そうでなければＬ５へ分岐する。納まる条件は、ＲＥＱ＿ＢＡ＋ＲＥＱ＿ＬＮＧ≦ＳＴＡ＿ＢＡ＋ＢＵＦ＿ＬＮＧになる。
（Ｌ３）媒体へ記録中のデータとホスト装置から記録要求されたデータを結合できるならばＬ４へ、そうでなければＬ５へ分岐する。結合できる条件は、ＲＥＱ＿ＢＡがＭＲＧ＿ＢＡ＋ＭＲＧ＿ＬＮＧに等しい場合となる。
（Ｌ４）媒体へ記録中のデータにホスト装置から記録要求されたデータを結合するようにライトマージ情報を更新する。媒体に記録中のブロック数ＭＲＧ＿ＢＬＫにＲＥＱ＿ＬＮＧを加える。
（Ｌ５）ライトバックキャッシュによる媒体への記録処理が終了するのを待つ。
（Ｌ６）ホスト装置から記録要求されたデータを媒体へ記録中のデータになるようにライトマージ情報を初期化する。ＳＴＡ＿ＢＡおよびＭＲＧ＿ＢＡは、ＲＥＱ＿ＢＡになる。ＭＲＧ＿ＬＮＧは、ＲＥＱ＿ＬＮＧになる。
（Ｌ７）ホスト装置から記録要求されたデータを受け取り、記録マージバッファに格納する。
（Ｌ８）ＭＲＧ＿ＢＬＫで示されたブロック数を連続的に媒体に記録する。
【００３４】
図１３は、本発明の第四の実施例におけるデータキャッシュ方法の動作を説明する概念図である。図１３（ａ）は、媒体へ記録中でないときに、ホスト装置から記録要求を受けて、記録データを記録マージバッファに格納した状態を示す。この状態から、ホスト装置からシーケンシャルな記録命令を受けた場合に、以前の記録データと今回要求された記録データとを結合して記録マージバッファに格納した状態を示すのが図１３（ｂ）である。図１３（ｃ）は、さらにこの状態からシーケンシャルな記録命令を受けた場合の記録マージバッファの状態を示す。図１３（ａ）〜（ｃ）が、シーク動作中や回転待ち中に行われて、３つの要求は１つの要求に変換される。
【００３５】
以上説明したように、本発明の第四の実施例において、ホスト装置からシーケンシャルな記録要求を受けた場合に、これらをまとめて１つの記録要求に変換することにより、媒体への記録処理自体を高速化することができる。
【００３６】
図１４は、本発明の第五の実施例におけるデータキャッシュ方法のフローチャートである。本発明の第四の実施例に対するキュー構造を実現し、局所的に集中するアクセスにおいて一括して媒体への記録処理を行う動作について説明する。ホスト装置が記録要求した先頭ブロック位置をＲＥＱ＿ＢＡ、ブロック数をＲＥＱ＿ＬＮＧとする。
（Ｎ１）ライトバックキャッシュによる媒体への記録処理中ならばＮ２へ、そうでなければＮ６へ分岐する。
（Ｎ２）媒体へ記録中のデータとホスト装置から記録要求されたデータの両方が記録マージバッファに納まるならばＮ３へ、そうでなければＮ５へ分岐する。納まる条件は、ＲＥＱ＿ＢＡ＋ＲＥＱ＿ＬＮＧ≦ＳＴＡ＿ＢＡ＋ＢＵＦ＿ＬＮＧになる。
（Ｎ３）媒体へ記録中のデータとホスト装置から記録要求されたデータを結合できるならばＮ４へ、そうでなければＮ１１へ分岐する。結合できる条件は、ＲＥＱ＿ＢＡがＭＲＧ＿ＢＡ＋ＭＲＧ＿ＬＮＧに等しい場合となる。
（Ｎ４）媒体へ記録中のデータにホスト装置から記録要求されたデータを結合するようにライトマージ情報を更新する。媒体に記録中のブロック数ＭＲＧ＿ＢＬＫにＲＥＱ＿ＬＮＧを加える。
（Ｎ５）ライトバックキャッシュによる媒体への記録処理が終了するのを待つ。
（Ｎ６）ホスト装置から記録要求されたデータを媒体へ記録中のデータにするようにライトマージ情報を初期化する。ＳＴＡ＿ＢＡおよびＭＲＧ＿ＢＡは、ＲＥＱ＿ＢＡになる。ＭＲＧ＿ＬＮＧは、ＲＥＱ＿ＬＮＧになる。
（Ｎ７）ホスト装置から記録要求されたデータを受け取り、記録マージバッファに格納する。
（Ｎ８）媒体へ記録中のデータとキューマージデータとを結合できるならばＮ９へ、そうでなければＮ１０へ分岐する。結合できる条件は、ＭＲＧ＿ＢＡ＋ＭＲＧ＿ＬＮＧがＱＵＥ＿ＢＡに等しい場合となる。
（Ｎ９）媒体へ記録中のデータとキューマージデータとを結合する。ＭＲＧ＿ＬＮＧはＱＵＥ＿ＬＮＧを加えた値になる。キューマージデータがなくなったことを示すため、ＱＵＥ＿ＬＮＧは０になる。
（Ｎ１０）ＭＲＧ＿ＢＬＫで示されたブロック数を連続的に媒体に記録する。
（Ｎ１１）キューマージデータが存在するならばＮ１５へ、そうでなければＮ１２へ分岐する。キューマージデータが存在する条件は、ＱＵＥ＿ＬＮＧ＞０になる。
（Ｎ１２）キューマージデータとホスト装置から記録要求されたデータを結合できるならばＮ１６へ、そうでなければＮ１３へ分岐する。結合できる条件は、ＲＥＱ＿ＢＡ＋ＲＥＱ＿ＬＮＧ≧ＱＵＥ＿ＢＡで且つＲＥＱ＿ＢＡ≦ＱＵＥ＿ＢＡ＋ＱＵＥ＿ＬＮＧになる。
（Ｎ１３）ライトバックキャッシュによる媒体への記録処理が終了するのを待つ。
（Ｎ１４）キューマージデータをライトマージデータに変換する。ＭＲＧ＿ＢＡはＱＵＥ＿ＢＡに、ＭＲＧ＿ＬＮＧはＱＵＥ＿ＬＮＧになる。
（Ｎ１５）キューマージ情報を初期化する。ＱＵＥ＿ＢＡはＲＥＱ＿ＢＡに、ＱＵＥ＿ＬＮＧはＲＥＱ＿ＬＮＧになる。
（Ｎ１６）キューマージデータにホスト装置から記録要求されたデータを結合するようにキューマージ情報を更新する。ＱＵＥ＿ＬＮＧは、ＱＵＥ＿ＢＡ＋ＱＵＥ＿ＬＮＧとＲＥＱ＿ＢＡ＋ＲＥＱ＿ＬＮＧの内で大きい方からＱＵＥ＿ＢＡとＲＥＱ＿ＢＡの内で小さい方を差し引いたものになる。ＱＵＥ＿ＢＡは、自分自身とＲＥＱ＿ＢＡの内で小さい方になる。
【００３７】
図１５は、本発明の第五の実施例におけるデータキャッシュ方法の動作を説明する概念図である。図１５（ａ）は、媒体へ記録中でないときに、ホスト装置から記録要求を受けて、記録データを記録マージバッファに格納した状態を示す。この状態から、ホスト装置からシーケンシャルではないが記録マージバッファ上に収まりうる記録要求を受けて記録データを格納した状態を示すのが図１５（ｂ）である。図１５（ｃ）は、この状態から、ホスト装置から受けた記録命令がキューマージと結合し得る場合に、以前のキューマージデータと今回要求された記録データとを結合して記録マージバッファに格納した状態を示す。さらに、ライトマージデータとキューマージデータとの隙間を埋めるような記録命令をホスト装置から受けた場合、ライトマージデータと記録データとキューマージデータとを結合して記録マージバッファに格納した状態を示したのが図１５（ｄ）である。従って、完全にシーケンシャルな記録要求でなくても、局所的に集中する記録命令であれば、これらの記録命令を１つにまとめて媒体への記録処理を行うことができる。
【００３８】
以上説明したように、本発明の第五の実施例において、ホスト装置から局所的に集中した記録要求を受けた場合に、これらをまとめて１つの記録要求に変換することにより、媒体への記録処理自体を高速化することができる。
【００３９】
【発明の効果】
以上説明したように、本発明の第一の実施例において、ホスト装置から再生要求された最終ブロックを中心に履歴データと先読データを一元管理することができる。また先読データを常に所定量に保つこともできる。また、本発明の第二の実施例において、ホスト装置が情報記録再生装置に記録要求を行った場合に、先読み動作中にホスト装置から記録要求されても即座に記録動作を開始すると共に、媒体から再生したデータとホスト装置から送られた記録データの両方をキャッシュデータとすることができる。さらに、本発明の第三の実施例において、媒体への記録中にホスト装置へから再生要求を受けた場合に、媒体への記録処理とホスト装置への再生処理を並行して行うことができる。また、本発明の第四の実施例において、ホスト装置からシーケンシャルな記録要求を受けた場合に、これらをまとめて１つの記録要求に変換することにより、媒体への記録処理自体を高速化することができる。さらに、本発明の第五の実施例において、ホスト装置から局所的に集中した記録要求を受けた場合に、これらをまとめて１つの記録要求に変換することにより、媒体への記録処理自体を高速化することができる。
【図面の簡単な説明】
【図１】本発明の第一、第二、第三の実施例における情報記録再生装置の構成図
【図２】本発明の第一、第二、第三の実施例におけるキャッシュ管理の概念図
【図３】本発明の第一、第二、第三の実施例におけるリングバッファ管理の概念図
【図４】本発明の第一の実施例におけるデータキャッシュ方法のフローチャート
【図５】本発明の第一の実施例におけるデータキャッシュ方法の動作を説明する概念図
【図６】本発明の第二の実施例におけるデータキャッシュ方法のフローチャート
【図７】本発明の第二の実施例におけるデータキャッシュ方法の動作を説明する概念図
【図８】本発明の第三の実施例におけるデータキャッシュ方法のフローチャート
【図９】本発明の第三の実施例におけるデータキャッシュ方法の動作を説明する概念図
【図１０】本発明の第四、第五の実施例における情報記録再生装置の構成図
【図１１】本発明の第四、第五の実施例におけるキャッシュ管理の概念図
【図１２】本発明の第四の実施例におけるデータキャッシュ方法のフローチャート
【図１３】本発明の第四の実施例におけるデータキャッシュ方法の動作を説明する概念図
【図１４】本発明の第五の実施例におけるデータキャッシュ方法のフローチャート
【図１５】本発明の第五の実施例におけるデータキャッシュ方法の動作を説明する概念図
【図１６】円盤状の情報記録媒体のレイアウト図
【図１７】光ディスク装置の記録動作のフローチャート
【符号の説明】
１  情報記録再生装置
２  ホスト装置
３  コントローラ装置
４  ドライブ装置
５  ホストＩＦバス
６  ドライブＩＦバス
７  内部バス
８  ホストＩＦ回路
９  ドライブＩＦ回路
１０  ＥＣＣ回路
１１  ＣＰＵ
１２  先読履歴バッファ
１３  キャッシュ管理情報
２０１  情報記録再生装置
２０３  コントローラ装置
２１１  ＣＰＵ
２１２  記録マージバッファ
２１３  記録キャッシュ管理情報
【図１】
0003586887.tif 000002
【図２】
0003586887.tif 000003
【図３】
0003586887.tif 000004
【図４】
0003586887.tif 000005
【図５】
0003586887.tif 000006
【図６】
0003586887.tif 000007
【図７】
0003586887.tif 000008
【図８】
0003586887.tif 000009
【図９】
0003586887.tif 000010
【図１０】
0003586887.tif 000011
【図１１】
0003586887.tif 000012
【図１２】
0003586887.tif 000013
【図１３】
0003586887.tif 000014
【図１４】
0003586887.tif 000015
【図１５】
0003586887.tif 000016
【図１６】
0003586887.tif 000017
【図１７】
0003586887.tif 000018