(57)【要約】【課題】本発明は、キャッシュバッファを設けたディスク装置のキャッシュ制御装置に関し、キャッシュバッファ中にサイズの大きな連続した空領域を予め自動的に確保し、空領域のサイズが小さいことによるデータライトのための待機をなくし、ディスク装置の性能向上を図ることを目的とする。【解決手段】キャッシュバッファからディスク媒体にデータをライトするためにヘッドがシークしている時間あるいは回転待ちしている時間あるいはヘッドが書き込み動作していない時間を検出する手段と、検出された時間のときに、キャッシュバッファの最大空き領域の前の領域あるいは後の領域のデータを、他の空き領域のデータとを入れ替える手段とを備え、最大空き領域を可及的に大きくするキャッシュ制御装置である。【選択図】  図１
2004164524.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュバッファを設けたディスク装置のキャッシュ制御装置において、
キャッシュバッファからディスク媒体にデータをライトするためにヘッドがシークしている時間あるいは回転待ちしている時間あるいはヘッドが書き込み動作していない時間を検出する手段と、
前記検出された時間のときに、前記キャッシュバッファの最大空き領域の前の領域あるいは後の領域のデータを、他の空き領域のデータとを入れ替える手段とを備え、
最大空き領域を可及的に大きくすることを特徴とするキャッシュ制御装置。
【請求項２】
キャッシュバッファを設けたディスク装置のキャッシュ制御装置において、
キャッシュバッファにディスク媒体からリードするためにヘッドがシークしている時間あるいは回転待ちしている時間あるいはヘッドが読み出し動作していない時間を検出する手段と、
前記検出された時間のときに、前記キャッシュバッファの最大空き領域の前の領域あるいは後の領域のデータを、他の空き領域のデータとを入れ替える手段とを備え、
最大空き領域を可及的に大きくすることを特徴とするキャッシュ制御装置。
【請求項３】
前記最大空き領域の前の領域あるいは後の領域とデータを入れ替える空の領域は、以前にディスク媒体にデータをライトした領域とすることを特徴とする請求項１あるいは請求項２記載のキャッシュ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュバッファを設けたディスク装置のキャッシュ制御装置に関するものである。
【０００２】
【従来の技術】
従来、ハードディスク装置は、ホストからのライトデータや、媒体から読み出したデータを一時的に保存するキャッシュバッファを設け、ホストからのライトあるいはリードの高速化を図っている。
【０００３】
この際、ホストからライトコマンドで送られてくるデータを当該ライトコマンドの発行順にキャッシュバッファに図８の（１）に示すように、Ｗｃｍｄ１からＷｃｍｄ８のように格納してキャッシュバッファ上に詰めて格納し、セグメント単位にデータを格納する手法で発生するキャッシュバッファの無駄な空き領域の発生を防止していた。
【０００４】
また、バッファに空領域が少なくて全てのデータを書き込むことができないときに、未使用のバッファセグメントを探し出して接続状況テーブルに登録して使用可能なバッファ容量を増加させてこれに書き込むようにしていた。
【０００５】
【特許文献１】特開平０５−０２０２６４号公報の〔０００５〕など参照。
【０００６】
【発明が解決しようとする課題】
しかし、上述した従来の後者の手法では、データを全てバッファの未使用領域に書き込めないときに、未使用のバッファセグメントを探してこれを使用したのでは、迅速にバッファにデータを書き込めないという問題があった。
【０００７】
また、上述した前者の手法でライトコマンドの発行順に図８の（１）のようにキャッシュバッファに格納したデータについて、ライトコマンドの発行順にメディアライト（ディスク媒体に書き込み）できればよいが、現在のヘッドの位置に近い順にキャッシュバッファ上のデータをメディアライトしたりなどにより図８の（２）のように，飛び飛びの領域のデータをメディアライトすることがあり、結果として連続した空き領域がなく、図８の（３）に示すように、ホストから空き領域よりも大きなデータのライトコマンドが発行されると、当該領域のサイズを満たす連続空き領域ができるまで待機させられてしまい、応答が遅くなってしまうという問題があった。
【０００８】
本発明は、これらの問題を解決するため、キャッシュバッファ中にサイズの大きな連続した空領域を予め自動的に確保し、空領域のサイズが小さいことによるデータライトのための待機をなくし、ディスク装置の性能向上を図ることを目的としている。
【０００９】
【課題を解決するための手段】
図１を参照して課題を解決するための手段を説明する。
【００１０】
図１において、  ＦＩＦＯ１，２は、キャッシュバッファ５上の領域のデータを入れ替えるものである。
【００１１】
キャッシュバッファ５は、ホストとディスク媒体６との間に設けてデータを一時的に記憶するものである。
【００１２】
ディスク媒体６は、データを書き込んだり、読み出したりするものである。
最大空領域抽出部７は、キャッシュバッファ５中の最大の空の領域を抽出するものである。
【００１３】
空時間検出部８は、ヘッドによってデータをディスク媒体６に書き込んだり、ディスク媒体６からデータを読み出したりしていない時間（シーク時間、回転待ち時間、ヘッドがアクセス動作していない時間）を検出するものである。
【００１４】
次に、動作を説明する。
空時間検出部８がキャッシュバッファ５からディスク媒体６にデータをライトするためにヘッドがシークしている時間あるいは回転待ちしている時間あるいはヘッドが書き込み動作していない時間を検出し、当該検出された時間のときに、ＦＩＦＯ１あるいはＦＩＦＯ２がキャッシュバッファ５の最大空き領域の前の領域あるいは後の領域のデータと他の空き領域のデータとを入れ替え、最大空き領域を可及的に大きくするようにしている。
【００１５】
空時間検出部８がキャッシュバッファ５にディスク媒体６からリードするためにヘッドがシークしている時間あるいは回転待ちしている時間あるいはヘッドが読み出し動作していない時間を検出し、当該検出された時間のときに、ＦＩＦＯ１あるいはＦＩＦＯ２がキャッシュバッファ５の最大空き領域の前の領域あるいは後の領域のデータと他の空き領域のデータとを入れ替え、最大空き領域を可及的に大きくするようにしている。
【００１６】
また、最大空領域の前の領域あるいは後の領域とデータを入れ替える空領域は、以前にディスク媒体にデータをライトした領域とするようにしている。
【００１７】
従って、ライトコマンドやリードコマンドの発行に対するヘッドのシークや回転待ちの時間、更にコマンドの発行されていない時間を利用し、キャッシュバッファ５の最大空領域の前あるいは後の領域のデータを他の空領域のデータと入れ替えて空領域のサイズを可及的に大きくすることにより、キャッシュバッファ中にサイズの大きな連続した空領域を予め自動的に確保し、空領域のサイズが小さいことによるデータライトのための待機をなくし、ディスク装置の性能向上を図ることが可能となる。
【００１８】
【発明の実施の形態】
次に、図１から図７を用いて本発明の実施の形態および動作を順次詳細に説明する。
【００１９】
図１は、本発明のシステム構成図を示す。
図１において、ディスク装置１１は、データをディスク媒体６に格納する外部記憶装置であって、ここでは、ＦＩＦＯ１，２，３，４，キャッシュバッファ５、ディスク媒体６、最大空領域抽出部７、空時間検出部８などから構成されるものである。
【００２０】
ＦＩＦＯ１，２は、キャッシュバッファ５上の領域のデータを入れ替えるものであって、ここでは、最大空領域の前あるいは後の領域のデータと、他の空の領域のデータとを入れ替え、結果として最大空領域を大きくするものである。
【００２１】
ＦＩＦＯ３は、キャッシュバッファ５とディスク媒体６との間に設けてデータを一時的に格納するものである。
【００２２】
ＦＩＦＯ４は、キャッシュバッファ５とホストとの間に設けてデータを一時的に格納するものである。
【００２３】
キャッシュバッファ５は、ホストからディスク媒体６へのライトデータを一時的に記憶したり、ディスク媒体６から読み出したリードデータを一時的に記憶したりなどするものである。
【００２４】
ディスク媒体６は、ヘッドをシークして該当位置にデータを書き込んだり、読み出したりなどする記憶媒体である。
【００２５】
最大空領域抽出部７は、キャッシュバッファ５中の最大の空領域を検出するものである。
【００２６】
空時間検出手段８は、ヘッドがディスク媒体６をシーク、回転待ちしている時間あるいはヘッドが動作していない時間を検出するものである。
【００２７】
データ再納ポインタＰ１，Ｐ２は、キャッシュバッファ５上のデータを入れ替える領域をポイントするポインタである（図７参照）。
【００２８】
次に、図２のフローチャートの順番に従い、図１の構成の動作を詳細に説明する。
【００２９】
図２は、本発明の動作説明フローチャートを示す。
図２において、Ｓ１は、コマンド受領する。これは、ホストから図１のディスク装置１１がコマンドを受領する。
【００３０】
Ｓ２は、リードコマンドがホストから図１のディスク装置１１に発行されたことに対応して、ディスク装置１１がディスク媒体６に対するヘッドのシーク命令を発行する。
【００３１】
Ｓ３は、回転待ち終了時に入れ替え処理中断する。これらＳ２、Ｓ３は、ディスク装置１１がシーク命令を発行し、ヘッドをディスク媒体６にリードデータが書き込まれている領域（トラック）に移動させ、更に、ディスク媒体６が回転してデータの書き込まれているトラック内の位置に到達するまで回転待ちし、これらシーク動作時および回転待ち時間の間、後述する最大空領域の前あるいは後の領域のデータと空の領域のデータとの入れ替え処理を行い、当該回転待ちの終了時に当該データの入れ替え処理を中断する。
【００３２】
Ｓ４は、リードデータを転送する。これは、Ｓ３でデータの入れ替え処理を中断した状態で、ヘッドによりディスク媒体６からデータをリードしてキャッシュバッファ５の最大空領域に格納すると共にホストに転送する。
【００３３】
Ｓ５は、応答する。
Ｓ６は、入れ替え処理を再開する。これは、キャッシュバッファ５の最大空領域の前あるいは後の領域のデータと、空の領域のデータとの入替え処理を再開する。
【００３４】
以上のように、ホストからリードコマンドが発行された場合に、ディスク媒体６のリードデータの格納されている位置へのヘッドのシーク動作する時間、更にリードデータの格納されているトラック内の位置に到着するまでの回転待ち時間の間、キャッシュバッファ５の最大空領域の前あるいは後の領域のデータと空の領域のデータとを図１のＦＩＦＯ１あるいはＦＩＦＯ２を使ってデータの入れ替えを行うことにより、キャッシュバッファ５の最大空領域をサイズが増すように処理し、ディスク媒体６からのリードデータがキャッシュバッファ５の空の連続領域に書き込めなくて待機する事態を解消し、リード処理を高速化することが可能となる。
【００３５】
Ｓ１１は、ライトコマンドがホストから図１のディスク装置１１に発行されたことに対応して、キャッシュバッファ５がフルか判別する。これは、ホストからライトコマンドが発行されたときに、キャッシュバッファ５が満杯で空がないか判別する。ＹＥＳの場合には、Ｓ１５からＳ１８を実行する。ＮＯの場合には、空領域があったので、Ｓ１２からＳ１４を実行する。
【００３６】
Ｓ１２は、Ｓ１１のＮＯで、キャッシュバッファ５に空領域があると判明したので、データの入れ替え処理を中断しないで、次に進む。
【００３７】
Ｓ１３は、ライトデータを転送する。これは、ホストがライトデータをキャッシュバッファ５の空領域に転送して格納する。
【００３８】
Ｓ１４は、応答する。これは、ディスク装置１１がキャッシュバッファ５にライトデータを格納したので、ライト終了の応答をホストに返す。そして、ひまなときに、キャッシュバッファ５上の当該ライトデータをディスク媒体６に格納する。
【００３９】
以上のように、ホストからライトコマンドが発行されて、キャッシュバッファ５に空領域があった場合、キャッシュバッファ５内の空領域の前あるいは後の領域のデータと空の領域のデータとの入れ替え処理を中断することなく、図１のＦＩＦＯ４を介してホストからのライトデータをキャッシュバッファ５の空領域に格納し、応答をホストに返すことにより、キャッシュバッファ５へのライトデータの空領域への書き込みと、キャッシュバッファ５の最大空領域の前あるいは後の領域のデータと空の領域のデータとの入れ替えを同時，並列する実行することが可能となる。
【００４０】
Ｓ１５は、Ｓ１１のＹＥＳで、キャッシュバッファ５に空領域がないと判明したので、データの入れ替え処理を中断し、次に進む。
【００４１】
Ｓ１６は、ライトデータを転送する。これは、キャッシュバッファ５に空領域がないと判明したので、キャッシュバッファ５内の未ライトのデータをディスク媒体６に格納して空領域を生成した後、ホストからのライトデータをキャッシュバッファ５の空領域に格納する。
【００４２】
Ｓ１７は、応答する。ライトデータの書き込み終了の応答をホストに返す。
Ｓ１８は、入れ替え処理を再開する。これにより、ホストからのライトデータ発行時に、当該ライトデータを格納する空領域がキャッシュバッファ５になく満杯の場合には、キャッシュバッファ５内のデータをディスク媒体６に書き込んでキャッシュバッファ５に空領域を作成してから当該空領域にライトデータを書き込む。
【００４３】
図３は、本発明の動作説明フローチャート（メディアライト）を示す。
図３において、Ｓ２１は、リオーダリングによりメディアライトを行うコマンドを選択する。これは、既述したキャッシュバッファ５内の最大空領域の前あるいは後の領域のデータと空の領域のデータとのＦＩＦＯ１，ＦＩＦＯ２を使ったデータ入れ替え処理を行う（ヘッドのシーク時間および回転待ち時間の間、データ入れ替え処理を行う）と共に、ライト処理を行うコマンドを選択する。
【００４４】
Ｓ２２は、シーク発行する。これは、Ｓ２１で選択したライトコマンドに対応して、ヘッドを該当トラックまでシークさせるシーク命令を発行する。当該シーク命令を発行して目的とするトラックに到達するシーク時間、更に、トラック内のデータ位置まで回転待ちする回転待ち時間の間、次のＳ２３の本発明に係るデータの入れ替え処理を行う。
【００４５】
Ｓ２３は、前メディアライトコマンドの空領域に、最大空領域の後のライトデータ転送（ＦＩＦＯ２を利用）する。これは、前にキャッシュバッファ５からデータをディスク媒体６に書き込んで空領域とした当該キャッシュバッファ５上の領域（空領域）のデータと、キャッシュバッファ５内の最大空領域の後の領域のデータとをＦＩＦＯ２を利用してデータの入れ替えを行う。これにより、最大空領域の後の領域が空領域となり、最大空領域のサイズが拡大されることとなる。
【００４６】
Ｓ２４は、最大空領域前後のデータ転送を中断および最大空領域情報を更新する。
【００４７】
Ｓ２５は、要求データのメディアライトする。これは、シークおよび回転待ちが終了し、ディスク媒体６にデータをライトできる状態になったので、ライト要求のあったデータをディスク媒体６に書き込む。そして、次コマンドのメディアライトについてＳ２１以降を繰り返す。
【００４８】
以上によって、ホストからライトコマンドが発行されたときに、シーク時間および回転待ち時間の間、キャッシュバッファ５内の最大空領域の後（あるいは前）の領域のデータと、メディアライトした空領域のデータとをＦＩＦＯ２を利用してデータの入れ替え処理を行って当該最大空領域情報を更新すると共に、ヘッドがシークおよび回転待ちしてライトできる状態となったときにライト要求の有ったデータをディスク媒体６に書き込むことが可能となる。
【００４９】
図４は、本発明の動作説明フローチャート（リオーダリング）を示す。
図４において、Ｓ３１は、キャッシュ管理テーブル５１からフラグ有効のコマンドを１つ抽出する。これは、後述する図５の（ａ）のキャッシュ管理テーブル５１からフラグ有効（ディスク媒体６に未ライトの有効なデータである旨を表すフラグ有効）のコマンドを１つ抽出する。
【００５０】
Ｓ３２は、現在のヘッド位置からシーク＋回転待ち予想時間Ｔａを算出する。これは、Ｓ３１で抽出したコマンドでデータをディスク媒体６の該当位置にライトするために必要な、現在のヘッド位置からシークに要する時間と、更に、ディスク媒体６の回転待ち時間との和の予想時間Ｔａを算出する。
【００５１】
Ｓ３３は、キャッシュ管理テーブル５１からフラグ有効のコマンドを抽出する。これは、Ｓ３１などで抽出されていないコマンドのうち、フラグ有効のコマンド（ディスク媒体６に未ライトのデータのコマンド）を１つ抽出する。ありの場合には、Ｓ３４に進む。なしの場合には、Ｓ３６で最小時間（Ｔａが最小時間）のコマンドを、次メディアライトコマンド（次にキャッシュバッファ５から取り出してディスク媒体６にライトするコマンド）と決定する。そして、既述した図３のメディアライトを実行する。
【００５２】
Ｓ３４は、Ｓ３３のありで、キャッシュ管理テーブル５１にフラグ有効のコマンドがあると判明したので、現在のヘッド位置から、シーク＋回転待ち予想時間Ｔｂを算出する。
【００５３】
Ｓ３５は、Ｔａ，Ｔｂから短い方のコマンドを選択し、その移動時間を新たなＴａとし、Ｓ３３以降を繰り返し、キャッシュ管理テーブル５１中の全てのフラグ有効（未ライト）のデータのコマンドについて現在位置からシーク＋回転待ち時間についてそれぞれ算出し、Ｓ３６で最終的に最短の時間のコマンドを次にメディアライトするコマンドと決定し、既述した図３のＳ２１以降の処理を実行する。
【００５４】
以上によって、図５の（ａ）のキャッシュ管理テーブル５１で管理されるキャッシュバッファ５中の未ライトのデータのうち、ヘッドの現在位置からシーク時間＋回転待ち時間が最小の未ライトのデータのコマンドを選択し、既述した図３のメディアライトを行うことが可能となる。これにより、キャッシュバッファ５から最短時間で未ライトデータをディスク媒体６にライトすることが可能となると共に、シーク時間＋回転待ち時間の間にキャッシュバッファ５内の最大空領域の前あるいは後の領域のデータと空領域のデータとをＦＩＦＯを使ってデータの入れ替えを行って当該最大空領域のサイズを可及的に大きくすることが可能となる。
【００５５】
図５は、本発明のテーブル例を示す。
図５の（ａ）は、キャッシュ管理テーブル５１の例を示す。キャッシュ管理テーブル５１は、キャッシュバッファ５の領域の有効／既ライトなどを管理するものであって、ここでは、図示の下記の情報を対応づけて登録して管理するものである。
【００５６】
・ＣＭＤ−ＩＤ：
・Ｒ／Ｗ：
・要求先頭アドレス：
・サイズ：
・バッファ格納先頭アドレス：
・フラグ：
・その他：
ここで、ＣＭＤ−ＩＤは制御プログラム識別するＩＤである。Ｒ／Ｗは、コマンドがリードコマンドかライトコマンドかの区別を表す。要求先頭アドレスはディスク媒体６のいずれに記憶するかの先頭アドレスを表す。サイズはデータのサイズを表す。バッファ格納先頭アドレスはキャッシュバッファ５上の格納先頭アドレスを表す。フラグはディスク媒体６に書き込み済みか否かを表すフラグを表す。
図５の（ｂ）は、空領域管理テーブル５２の例を示す。空領域管理テーブル５２には、キャッシュバッファ５の空領域のＩＤとその先頭アドレス、サイズを記憶して管理する。ここで、空領域には、下記の領域がある。これら空領域は、既述したデータの入れ替え処理が実行された場合にはその領域について更新する。
【００５７】
・リード・ライトのデータが存在しない領域
・既にディスク媒体６にライトが完了したライトコマンドのデータが存在する領域
・既にリードが完了したリードコマンドのデータが存在する領域
図６は、本発明の動作説明フローチャート（入替領域選択）を示す。
【００５８】
図６において、Ｓ４１は、リオーダリングで選択されたコマンドに対するデータが最大空領域に接触しているか判別する。これは、既述した図４のフローチャートで選択されたコマンドに対するデータを格納したキャッシュバッファ５の領域が、当該キャッシュバッファ５内の最大空領域の前あるいは後に接触しているか判別する。そして、Ｓ４１のＹＥＳの場合に、更に、Ｓ４２で最大空領域の後（後の領域）に接触している場合には、Ｓ４３で入れ替え領域は最大空領域の前の領域とし、Ｓ４５に進む。また、Ｓ４２のＮＯの場合には、最大空領域の前の領域に接触していると判明したので、Ｓ４４で入れ替え猟奇は、最大空領域の後の領域とし、Ｓ４５に進む。また、Ｓ４１のＮＯの場合には、Ｓ４４でここでは、入れ替え領域は最大空領域の後とする。
【００５９】
即ち、Ｓ４１からＳ４４は、
・リオーダリング（図４）で選択されたコマンドに対するデータが、
・最大空領域の後に接している場合には、入れ替え対象領域を最大空領域の前の領域と決定（Ｓ４１のＹＥＳ，Ｓ４２のＹＥＳ，Ｓ４３）
・最大空領域の前に接している場合には、入れ替え対象領域を最大空領域の後の領域と決定（Ｓ４１のＹＥＳ，Ｓ４２のＮＯ，Ｓ４４）
する。
・また、最大空領域に接していない場合（Ｓ４１のＮＯの場合）には、ここでは、Ｓ４４で入れ替え領域は、最大空領域の後とする。
【００６０】
Ｓ４５は、入れ替え相手の領域が存在するか判別する。ＹＥＳの場合には、Ｓ４６で入れ替えを実行する。ＮＯの場合には、入れ替え相手の領域が存在しないので入れ替えを中止する。
【００６１】
図７は、本発明の説明図（入替）を示す。
図７の（ａ）は、キャッシュバッファ（データ入替前）の例を示す。ここでは、最大空領域（メディアライト終了済データ存在）の後の領域のデータと、空領域（以前にメディアライト終了したデータが存在する領域）のデータとを入れ替える様子を示す。データを入れ替えると、図７の（ｂ）のようになる。
【００６２】
ここで、最大空領域である、メディアライト終了済データ存在の領域は、当該最大空領域のデータをディスク媒体５にライトを終了済の領域（空領域）である。空領域域（以前にメディアライト終了したデータが存在する領域）は、以前にディスク媒体６にデータをライトした空領域である。
【００６３】
図７の（ｂ）は、キャッシュバッファ（データ入替後）の例を示す。図示の状態では、最大空領域の後の領域が図７の（ａ）のデータ入替により空領域となり、当該最大空領域のサイズを拡大した様子を示す。データ入替は、既述したように、ディスク媒体６のヘッドのシーク時間、回転待ち時間，更に、ヘッドがアクセス動作をしていない時間のとき、即ち空時間のときにキャッシュバッファ５の最大空領域の前あるいは後の領域のデータと他の空領域のデータとをＦＩＦＯを利用して入れ替えることにより、当該最大空領域のサイズを可及的に大きくしておき、ホストからのライトコマンドやリードコマンドが発行されたときに当該最大空領域の先頭から連続して高速に書き込むことが可能となる。
【００６４】
（付記１）
キャッシュバッファを設けたディスク装置のキャッシュ制御装置において、
キャッシュバッファからディスク媒体にデータをライトするためにヘッドがシークしている時間あるいは回転待ちしている時間あるいはヘッドが書き込み動作していない時間を検出する手段と、
前記検出された時間のときに、前記キャッシュバッファの最大空き領域の前の領域あるいは後の領域のデータを、他の空き領域のデータとを入れ替える手段とを備え、
最大空き領域を可及的に大きくすることを特徴とするキャッシュ制御装置。
【００６５】
（付記２）
キャッシュバッファを設けたディスク装置のキャッシュ制御装置において、
キャッシュバッファにディスク媒体からリードするためにヘッドがシークしている時間あるいは回転待ちしている時間あるいはヘッドが読み出し動作していない時間を検出する手段と、
前記検出された時間のときに、前記キャッシュバッファの最大空き領域の前の領域あるいは後の領域のデータを、他の空き領域のデータとを入れ替える手段とを備え、
最大空き領域を可及的に大きくすることを特徴とするキャッシュ制御装置。
【００６６】
（付記３）
前記最大空き領域の前の領域あるいは後の領域とデータを入れ替える空の領域は、以前にディスク媒体にデータをライトした領域とすることを特徴とする付記１あるいは付記２記載のキャッシュ制御装置。
【００６７】
（付記４）
キャッシュバッファを設けたディスク装置のキャッシュ制御方法において、
キャッシュバッファからディスク媒体にデータをライトするためにヘッドがシークしている時間あるいは回転待ちしている時間あるいはヘッドが書き込み動作していない時間を検出するステップと、
前記検出された時間のときに、前記キャッシュバッファの最大空き領域の前の領域あるいは後の領域のデータを、他の空き領域のデータとを入れ替えるステップと
を有し、
最大空き領域を可及的に大きくすることを特徴とするキャッシュ制御方法。
【００６８】
（付記５）
キャッシュバッファを設けたディスク装置のキャッシュ制御方法において、
キャッシュバッファにディスク媒体からリードするためにヘッドがシークしている時間あるいは回転待ちしている時間あるいはヘッドが読み出し動作していない時間を検出するステップと、
前記検出された時間のときに、前記キャッシュバッファの最大空き領域の前の領域あるいは後の領域のデータを、他の空き領域のデータとを入れ替えるステップとを有し、
最大空き領域を可及的に大きくすることを特徴とするキャッシュ制御方法。
【００６９】
【発明の効果】
以上説明したように、本発明によれば、ライトコマンドやリードコマンドの発行に対するヘッドのシークや回転待ちの時間、更にコマンドの発行されていない時間を利用し、キャッシュバッファ５の最大空領域の前あるいは後の領域のデータを他の空領域のデータと入れ替えて空領域のサイズを可及的に大きくする構成を採用しているため、キャッシュバッファ中にサイズの大きな連続した空領域を予め自動的に確保し、空領域のサイズが小さいことによるライトのための待機がなくなり、ディスク装置の性能向上を図ることが可能となる。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】本発明の動作説明フローチャートである。
【図３】本発明の動作説明フローチャート（メディアライト）である。
【図４】本発明の動作説明フローチャート（リオーダリング）である。
【図５】本発明のテーブル例である。
【図６】本発明の動作説明フローチャート（入替領域選択）である。
【図７】本発明の説明図（入替）である。
【図８】従来技術の説明図である。
【符号の説明】
１，２，３，４：ＦＩＦＯ
５：キャッシュバッファ
６：ディスク媒体（メディア）
７：最大空領域抽出部
８：空時間検出部
１１：ディスク装置
【図１】
2004164524.tif 000003
【図２】
2004164524.tif 000004
【図３】
2004164524.tif 000005
【図４】
2004164524.tif 000006
【図５】
2004164524.tif 000007
【図６】
2004164524.tif 000008
【図７】
2004164524.tif 000009
【図８】
2004164524.tif 000010