JP2003131942A - ハードディスク装置のキャッシュを制御する方法および装置 - Google Patents

ハードディスク装置のキャッシュを制御する方法および装置

Info

Publication number
JP2003131942A
JP2003131942A JP2002220035A JP2002220035A JP2003131942A JP 2003131942 A JP2003131942 A JP 2003131942A JP 2002220035 A JP2002220035 A JP 2002220035A JP 2002220035 A JP2002220035 A JP 2002220035A JP 2003131942 A JP2003131942 A JP 2003131942A
Authority
JP
Japan
Prior art keywords
data
cache
read
host
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2002220035A
Other languages
English (en)
Inventor
Yuichi Hirao
雄一 平尾
Aaron Olbrich
オルブリッチ アーロン
Douglas Prins
プリンス ダグラス
Kazuyuki Hori
一行 堀
Koji Yoneyama
浩二 米山
Shigeru Hatakeyama
滋 畠山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2003131942A publication Critical patent/JP2003131942A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Abstract

(57)【要約】 【課題】 ハードディスク装置のキャッシュを制御する
方法および装置に関し、読み出しコマンドに対しより速
く応答するハードディスク装置を提供し、かつ、キャッ
シュ・バッファに以前から記憶されているキャッシュ・
データを考慮してデータが断片化された状態で記憶され
るのを回避することを目的とする。 【解決手段】 キャッシュ・バッファ2に以前から記憶
されているキャッシュ・データを考慮し、不揮発性の記
憶媒体5から検索すべきデータが識別される。ホストか
ら要求されたデータは、検索のため、所望の量の予測読
み出しデータと先取りデータにより目印が付記される。
所望のデータとキャッシュ・バッファに既に記憶された
データとの間にギャップが存在する場合、当該ギャップ
の長さが判断される。データの一部が既にキャッシュ・
バッファに存在する場合、制御装置が、読み出し要求に
対し記憶媒体からの連続的なデータの検索により対処す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータに使
用されているハードディスク装置のキャッシュを制御す
る方法および装置に関するものであり、より詳細には、
読み出しコマンドを実行するために、キャッシュを構成
するキャッシュ・バッファに既に記憶されているデータ
を探索して利用するといったようなハードディスク装置
の制御方法および制御装置に関する。
【0002】なお、本発明は、2001年7月27日付けで米
国特許庁に出願された仮出願である出願番号第60/308,4
24号の継続出願に対応するものである。
【0003】
【従来の技術】大部分のコンピュータにおいては、デー
タの不揮発性を保証しつつ当該データを記憶しておくた
めに、ハードディスク装置が使用されている。ハードデ
ィスク装置は、基本的に、書き込みコマンドに応答して
データを磁気的な記憶媒体、光学的な記憶媒体、または
光磁気的な記憶媒体に書き込み、読み出しコマンドに応
答してその記憶媒体からデータを読み出す。最近のハー
ドディスク装置は非常に高速にて動作するが、コンピュ
ータシステムの他の部分の速度と比較すると、記憶媒体
からデータを検索する動作に関してはまだ比較的時間が
かかる。その大きな原因は、ハードディスク装置がある
種の機械的システムや電気機械的システムを備えている
ため、ハードディスク装置が潜在的に有する処理速度が
制限される点にある。
【0004】
【発明が解決しようとする課題】最近のハードディスク
装置は、不揮発性記憶媒体だけでなく、内部中央演算処
理ユニット(CPU:Central Processing Unit)や、
主に制御動作のためにCPUによって使用されるランダ
ム・アクセス・メモリ(RAM)や、記憶媒体に書き込
んだり記憶媒体から読み出したりすべきデータを一時的
に記憶しておくキャッシュ・バッファを備えている。キ
ャッシュ・バッファは揮発性メモリであり、非常に動作
が速い。しかしながら、読み出しコマンドは記憶媒体か
らデータを読み出すことによって実行されるため、装置
内の機械的システムの速度が比較的遅いという理由によ
って応答時間が長くなる。それゆえに、本発明の一つの
目的は、読み出しコマンドに対してより速く応答するハ
ードディスク装置を提供することである。
【0005】キャッシュ・バッファを管理するための公
知の方法では、キャッシュ・バッファに既に記憶されて
いるデータを要求するような新しいデータ要求のコマン
ドが実行されるときに、冗長データがキャッシュ・バッ
ファに記憶される。例えば、図1では、データNおよび
データMが、ディスクまたはその他の不揮発性記憶媒体
においてスペースXにより隔てられた異なる物理的領域
にそれぞれ記憶される。データNおよびデータMはキャ
ッシュ・バッファに記憶され、キャッシュ・データMお
よびキャッシュ・データNとしてキャッシュ・テーブル
に一時的に記憶される。
【0006】ホストの要求がスペースXにあるデータに
向けられたとき、ディスク装置は、代表的に、ホストの
要求に含まれるデータを検索し、これに加えて、ホスト
の要求に先行する所定量のデータ(予測読み出しデータ
(Pre-read Data )として知られる)と、ホストの要求
に続く所定量のデータ(先取りデータ(先の位置の読み
出しデータ)(Pre-fetch Data or Read-ahead Data )
として知られる)とを検索する。さらに、予測読み出し
データ、ホストの要求に含まれるデータ、および先取り
データ(図1に示すような媒体の拡張された読み出し要
求)は、キャッシュに記憶され、新しいキャッシュ・デ
ータとしてキャッシュ・テーブルに一時的に記憶され
る。しかしながら、図1から明らかなように、新しいキ
ャッシュ・データの一部とキャッシュ・データMおよび
Nの一部はキャッシュ・バッファに2回(2つの場所
に)記憶されるため、非効率的である。
【0007】キャッシュ・データMおよびNのうちの二
重データ、すなわち、重なったデータは、図2に示すよ
うに無効にしたり削除したりすることができるが、新し
いキャッシュ・データは断片化された状態で記憶される
ため、上記のように無効にしたり削除したりすることは
望ましくない。それゆえに、本発明の一つの目的は、キ
ャッシュを構成するキャッシュ・バッファに以前から記
憶されているキャッシュ・データを考慮し、データが断
片化された状態でキャッシュに記憶されることを回避す
ることによってホストの要求を実行するようなキャッシ
ュ・バッファの制御方法により、ディスク装置の性能を
向上させることである。
【0008】図3を参照すると、ホストの読み出し要求
の一部を包含するキャッシュ・データがすぐ近くに存在
する場合でも、この読み出し要求によって包含されるデ
ータの一部は、キャッシュ・バッファ内のキャッシュ・
データMおよびNの中にはないことがわかる。このた
め、ホストの要求は、単純にデータをキャッシュから検
索するだけでは、すなわち、キャッシュ・ヒットを実行
するだけでは満足させることができない。この原因は、
キャッシュ・データMおよびNが互いにすぐ近くに位置
する場合でも、キャッシュ・データMおよびNの間にあ
るデータは、キャッシュ・データMおよびNに対する予
測読み出しおよび/または先取りによって記憶媒体から
読み出すことができないことにある。したがって、本発
明の他の目的は、キャッシュ・バッファの利用率を増加
させることによってキャッシュ・ヒット率を改善するこ
とである。
【0009】ハードディスク装置のディスクは絶えず高
速で回転している。読み取りヘッドは、ディスク上をそ
の径方向に移動して、ディスクに記憶されている種々の
データを読み取る。読み取りヘッドが、データの出発点
を通過してしまった後に選択されたトラックに到着した
場合、読み取りヘッドは、読み取りのプロセスが開始さ
れる前に、ディスクが最大で1回転するまで待つ必要が
ある。このことによってもディスク装置の性能が低下す
る。本発明のさらに他の目的は、この点に関して性能を
向上させることである。
【0010】
【課題を解決するための手段】本発明の一つの実施態様
において、キャッシュを構成するキャッシュ・バッファ
に以前から記憶されているキャッシュ・データを考慮す
ることにより、不揮発性の記憶媒体から検索すべきデー
タが識別される。ホストからのデータの要求を受ける
と、要求されたデータは、検索のために、所望の量の予
測読み出しデータと、所望の量の先取りデータ、すなわ
ち先の位置の読み出しデータとを用いて目印が付記され
る。つぎに、キャッシュ・バッファにデータの一部が既
に存在しているか否かが判断されると共に、所望のデー
タとキャッシュ・バッファに既に記憶されているデータ
との間にギャップが存在している場合には当該ギャップ
がどの位であるかが判断される。データの一部が既にキ
ャッシュに存在している場合には、制御装置が、読み出
し要求に対し、記憶媒体からの単一の連続的なデータの
検索でもって対処する。これによって、キャッシュ・バ
ッファに記憶されているデータは、キャッシュ・バッフ
ァ内でギャップによって断片化されることはない。この
ようにして、ハードディスク装置の性能を評価するため
の個々のアクセス・パターンにおけるキャッシュ・ヒッ
ト率を同じ値に維持しながらキャッシュ・バッファの利
用率を向上させることができる。
【0011】本発明の他の実施態様においては、予測読
み出しデータおよび先取りデータの量を調節することに
より、読み取りヘッドがデータ読み取り開始地点を逃し
たためにディスクが1回転して読み取りが開始されるま
で待たざるを得なくなる回数を減少させることもでき
る。
【0012】当業者にとって、上記の本発明の目的およ
びその他の目的や、本発明の特別な実施態様は、以下に
示すような本発明の実施の形態の詳しい説明、添付の図
面、および特許請求の範囲から明らかであろう。
【0013】
【発明の実施の形態】図4から明らかなように、本発明
に係る典型的なコンピュータシステムは、ホストシステ
ム1と記憶システム7とを備えている。ホストシステム
(ホストとも呼ばれる)1は、記憶システム7に対して
書き込み要求を出してデータを記憶させ、読み取り要求
を出して記憶されたデータを検索する。記憶システム7
は、キャッシュ・バッファ(図4では、単にバッファと
記載している)2、制御装置3、CPU4、少なくとも
一つの不揮発性の記憶媒体5、およびRAM6を備えて
いる。記憶媒体5としては、磁気ディスク、光ディス
ク、光磁気ディスク、またはテープが可能である。キャ
ッシュ・バッファ2が記憶システム7の中ではなく、ホ
ストシステム1に存在することも可能である。
【0014】制御装置3は、予め定められた条件の下で
読み出しコマンドおよび書き込みコマンドを受け、デー
タをキャッシュ・バッファ2に転送する。書き込みデー
タを記憶させる場合、キャッシュ・バッファに空いた領
域を十分に確保し、書き込みデータがいつでも可能なと
きに逐次的に記憶されるようにする。換言すれば、書き
込みデータは、キャッシュ・バッファ内に空いたスペー
スがないようにして順番に記憶させることが好ましい。
キャッシュ・バッファは、複数個に分かれた論理領域も
しくは物理領域、または論理バッファもしくは物理バッ
ファを備えている。これらの論理領域もしくは物理領
域、または論理バッファもしくは物理バッファは、読み
出しの用途だけや書き込みの用途だけに用いられ、か
つ、単一の論理メモリが読み出しの動作および書き込み
の動作を共有することができる。
【0015】キャッシュ・バッファ内のデータに対応す
るキャッシュ情報は、RAM6に記憶されるか、また
は、キャッシュ・バッファ2の一つの区分に一時的に記
憶される。CPU4は、データの転送動作および一時記
憶動作を制御している。CPU4はまた制御装置3を制
御すると共に、キャッシュ・バッファからのデータをい
つ記憶媒体5に書き込むべきかを判断する。
【0016】データは、一般に、書き込みコマンドを受
けてすぐには記憶媒体5に書き込まれない。それゆえ
に、ホストシステム1が、記憶システム7に対して読み
出し要求を呈示したときに、CPU4は、RAM6内の
キャッシュ情報の中から要求されたデータを探索する。
要求されたデータが既にキャッシュ・バッファ2に記憶
されていた場合はキャッシュ・ヒットであり、記憶媒体
5からデータを読み出すのではなく、キャッシュ・バッ
ファ2内のデータが直ちにホストシステム1に転送され
る。このようなデータ転送動作は、書き込まれていない
データ(すなわち、記憶媒体5にまだ書き込まれていな
いデータ)が存在しているときに実行することができ
る。ところで、上記のようなキャッシュ・ヒットの対象
となるキャッシュ・データは、読み出し要求または書き
込み要求のいずれかに基づいてバッファ内に記憶され
る。さらに、制御装置3は、シーク動作からデータ転送
動作にいたるまで、種々の動作を実行することができ
る。
【0017】要求されたデータの全てをキャッシュ・バ
ッファから検索できない場合、すなわち、キャッシュ・
ヒットがない場合には、記憶媒体5から読み出すべきデ
ータの量が増え、要求されたデータだけでなく、予測読
み出しデータおよび先の位置の読み出しデータのような
追加データも読み出されることになる。さらに、要求さ
れたデータおよび上記の追加データが記憶媒体5から読
み出され、ホストシステム1に転送するためにキャッシ
ュ・バッファ2に記憶される。この場合には、キャッシ
ュ・バッファ2に記憶されているデータに対応するキャ
ッシュ情報が、RAM6に一時的に記憶される。
【0018】制御装置は、読み出し要求を受けると、ま
ず初めにキャッシュ・テーブルを参照して、要求された
データが既にキャッシュ・バッファ内にあるか否かを判
断する。全てのデータがバッファ内に存在している場合
には、キャッシュ・ヒットを通じて当該データを読み出
し、記憶媒体からデータを読み出すことはない。しかし
ながら、データのごく一部がキャッシュ・バッファに存
在していない場合であっても、例えば図3に示すよう
に、見当たらないデータを記憶媒体から読み出す必要が
ある。
【0019】読み出し要求がホストシステムから出され
る場合には、ホストのデータ転送要求の範囲が、媒体の
読み出し要求の範囲となる。キャッシュ情報が検索さ
れ、つぎに、要求されたデータと連続しかつ隣接するデ
ータがキャッシュ・バッファに保持されているか否かが
判断される。ホストが要求するデータがキャッシュ内の
データの全部または一部に対してキャッシュ・ヒットに
なった場合には、このキャッシュ・ヒットになったデー
タがキャッシュ・バッファからホストシステムに転送さ
れ、キャッシュ・ヒットになったデータ以外の残りのデ
ータは、新たに媒体の読み出し要求データとして再定義
される。ホストが読み出し要求を出したデータのすぐ近
くにキャッシュ・データがある場合には、媒体の読み出
し要求データとそのすぐ近くにあるキャッシュ・データ
との間の距離(以後、ギャップと呼ぶこととする)が得
られる。ここで、ギャップが大きくない場合には、媒体
の読み出し要求の範囲が拡張され、上記のような近傍の
キャッシュ・データまでが含まれるようになる。ギャッ
プを包含するバッファ領域が確保され、媒体の拡張読み
出し要求の拡張されたデータが媒体から読み出され、キ
ャッシュ・スペースに記憶される。ここで、キャッシュ
情報が一時的に記憶される。
【0020】最終的に、キャッシュ・バッファ内にある
ホストが要求したデータが転送される。すぐ近くにキャ
ッシュ・データがない場合またはギャップが大きい場合
には、媒体の読み出し要求の拡張範囲が、従来技術と同
様に予め定められた値に基づいて決定される。この方法
を用いることにより、バッファの利用率が向上する。と
いうのも、同じデータがキャッシュ・バッファ領域に重
複して記憶されることはなく、読み出しにおけるヒット
率が向上するからである。キャッシュ・データがキャッ
シュ・バッファ内に分散して記憶されず、キャッシュ・
データが全体として連続しているデータとして保持され
るため、装置の性能が向上する。
【0021】本発明の特別なケースについて、図面を参
照して説明する。
【0022】図5は、ホストの要求に対して予測読み出
し量と先取り量を決定する方法を説明する図である。一
般に、ホストのデータ要求に従って記憶媒体から読み出
すべきデータの範囲は、キャッシュ・バッファ内に存在
しているデータによって決定される。この方法は、ホス
トが要求するデータの全体をキャッシュ・バッファのシ
ーク動作によって当該キャッシュ・バッファ内で見つけ
ることができないために、ホストが要求するデータに対
するキャッシュ・ヒットがないときに使用される。
【0023】まず初めに、ホストが要求するデータに基
づいてキャッシュ・バッファ内のキャッシュ・データを
検索する。キャッシュ・バッファの検索は、ホストが要
求するデータの論理アドレスを利用してキャッシュ情報
テーブル上で行う。キャッシュ・バッファの探索を通し
て、ホストが要求するデータに関して当該データの論理
アドレスのすぐ近くにあるキャッシュ・データMおよび
Nが識別される。つぎに、データの論理アドレスに関し
てホストが要求するデータとその前方に隣接するキャッ
シュ・データNとの間の第1のギャップと、データの論
理アドレスに関してホストが要求するデータとその後方
に隣接するキャッシュ・データMとの間の第2のギャッ
プが計算される。第1のギャップの値を予測読み出し量
とし、第2のギャップの値を先取り量とする。予測読み
出し量、ホストが要求するデータの範囲、および先取り
量の3つが、媒体の拡張読み出し要求となる。この媒体
の拡張読み出し要求に基づく場合には、データが記憶媒
体から読み出され、キャッシュ・ヒット率を維持しつつ
バッファの利用量を顕著に少なくすることができる。
【0024】データは、第1のギャップおよび第2のギ
ャップを埋めるようにして記憶媒体からだけ読み出され
るので、上記の方法は、読み出しギャップ充填(Read-G
ap-Fill )法と呼ばれる。さらに、データは、重複した
データが記憶されることがないように、ギャップを充填
するようにして読み出されるため、キャッシュ・バッフ
ァに記憶されるデータに関しては、データの論理アドレ
スが連続している。このため、断片化されたデータが記
憶されることも回避できる。したがって、読み出しヒッ
ト率を向上させることができる。また一方で、予測読み
出し量が代表的な予測読み出し量に関する所定量よりも
少ない場合、および、先取り量が代表的な先取り量に関
する所定量よりも少ない場合、またはそのいずれか一方
の場合は、記憶媒体からデータを読み出すのに機械的な
動きを遂行する時間、例えば記憶媒体に対してヘッドが
移動する時間を短くすることができるので、ディスク装
置の性能を向上させることができる。さらに、この方法
では、ホストの要求するデータに対する予測読み出し量
および先取り量が、それぞれ第1のギャップおよび第2
のギャップに依存して変化する。
【0025】図5に示したように、要求されたデータに
加えて十分な予測読み出しデータと先取りデータ(先の
位置の読み出しデータ)がキャッシュ・バッファ内に存
在していない場合には、記憶媒体の読み出しを行う必要
がある。予測読み出しデータと先取りデータの長さは場
合によっては調整可能であるとはいえ、以下に見るよう
に、好ましい予測読み出しデータと先取りデータがいく
つかある。このため、キャッシュ・データNとホストの
要求との間にある予測読み出しデータは、記憶媒体から
得られる。その他には、こうすることによって、キャッ
シュ・バッファ内で、ホストの要求そのものを通じてキ
ャッシュ・データNからデータの連続性が作り出される
ということがある。ホストの要求とキャッシュ・データ
Mとの間にある先取りデータも記憶媒体から検索され
る。このようにして、ホストが要求するデータとキャッ
シュ・バッファ内のキャッシュ・データMとが連続する
ことになる。
【0026】キャッシュ・バッファ内に連続的なデータ
を記憶させること、すなわち、バッファ内にギャップが
ないことが好ましいとはいえ、図6に示すように、記憶
されたデータそのものがキャッシュ・バッファ内で連続
的である必要はない。図6では、図5に示した媒体の拡
張読み出し要求がキャッシュ・バッファに記憶される。
まず初めに、キャッシュ・データMが記憶され、つぎ
に、キャッシュ・データNが記憶され、さらに、媒体の
拡張読み出し要求を望み通り完全なものにするのに必要
な新しいキャッシュ・データが記憶される。こうすると
図6のバッファに空白の領域が残る。このようにして、
データの重複が回避され、キャッシュ・バッファ内にギ
ャップが形成されることはない。こうすると、キャッシ
ュ・バッファ内に、より連続的で、オープンで、利用し
やすいメモリスペースが提供される。しかも、前述の従
来の図2の方法と比較すると、断片化したデータを記憶
させることを回避することが可能になる。なぜならば、
新しい不連続的なデータにギャップが残っている場合
は、古いキャッシュ・データMおよびNの重複した部分
を無効にしたり削除したりする必要がないからである。
【0027】ギャップなしの状態でキャッシュ・バッフ
ァにデータを記憶させる方法がいくつかある。例えば図
7では、まず初めに、データ・ブロック内のデータC1が
キャッシュ・バッファに記憶され、つぎに、データC2が
記憶される。図7は、ホストの要求するデータR3の全体
が、キャッシュ・バッファ内に存在しているキャッシュ
・データC1の上に広がっているケースを示している。ホ
ストが要求するデータR3とキャッシュ・バッファ内に存
在しているキャッシュ・データC2との間にはギャップが
ある。図7では、データC1およびC2は、キャッシュ・バ
ッファ内でバッファ・アドレスに関しては連続である
が、記憶媒体内では不連続である。データC1およびC2
は、互いにかなり近くにあるにもかかわらず、これらの
データC1およびC2の論理アドレスも不連続になってい
る。
【0028】制御装置は、読み出し要求R3を受けると、
要求されたデータをバッファ内で探索する。ただし、こ
のデータには予測読み出しデータと先取りデータは含ま
れていない。キャッシュ・バッファを探索しても制御装
置がキャッシュ・ヒットに至らなかった場合、すなわ
ち、要求されたデータの全体がキャッシュ・バッファ内
で見つからなかった場合には、すぐ近くにあるキャッシ
ュ・データをキャッシュ・バッファ内で検索する動作が
実行される。図7では、この探索を通じて、キャッシュ
・データC1が、後方に隣接するキャッシュ・データとし
て検出され、キャッシュ・データC2が、前方に隣接する
キャッシュ・データとして識別されている。この状況で
は、後方に隣接するキャッシュ・データがないため予測
読み出し量は得られない。つぎに、所定の量をホストの
要求R3に対する予測読み出しデータとして、予め定めら
れた量を設定する。先取りデータに関しては、ギャップ
に対応する量が、ホストの要求R3に対する先取りデータ
として設定される。
【0029】媒体の拡張読み出し要求として、予測読み
出しデータ、ホストの要求R3、および先取りデータの合
計を計算する。キャッシュ・データC2の直後のスペース
をデータC3が利用できる場合、すなわち、このスペース
がデータC3に対して確保されている場合には、上記の計
算に基づき、図7に示したように、データC3を記憶媒体
から読み出してキャッシュ・バッファに記憶させる。そ
の後、重複したキャッシュ・データC1を削除または排除
するか、キャッシュ情報テーブルのキャッシュ・データ
に関するキャッシュ情報を無効にする。このとき、デー
タC1およびC2はバッファ内で連続である必要はない。バ
ッファ内でキャッシュ・データC1の後ろの位置に、予め
定められた予測読み出しデータ、ホストが要求するデー
タ、および先取りデータの全ての量を記憶するのに十分
なスペースがあることが望ましい。
【0030】この場合は、埋めるべきギャップを計算し
た後、予測読み出しデータ、要求された全てのデータ
(R3)、および先取りデータを記憶媒体から読み出し、
キャッシュ・バッファ内にデータC3として記憶させる。
このようにしてもディスク装置の性能が大きく低下する
ことはない。なぜならば、データが記憶媒体から連続的
に読み出されるからである。しかしながら、データC1は
データC3に含まれているために重複したデータとなって
いることから、データC1は除去される。このようにし
て、バッファ内のデータは、データC2の最初の位置から
データC3の終わりの位置まで連続であり、データC1が最
初に記憶されたバッファ内のスペースが自由スペースと
して利用できる。
【0031】図8は、ホストの要求R4の全体が、キャッ
シュ・バッファ内に存在しているキャッシュ・データC3
の上に広がっていて、しかもホストの要求R4とキャッシ
ュ・バッファ内に存在しているキャッシュ・データC1と
の間にギャップがあるケースを示すものである。図8で
は、データ・ブロックC1がキャッシュ・バッファに記憶
され、その後にデータ・ブロックC2が続いている。ここ
でも、データC1およびC2はキャッシュ・バッファ内に連
続的に記憶されているが、これらのデータの記憶媒体内
での論理ブロック・アドレス(LBA)は異なってい
る。ここでは、他のケースと同様に、ホストの要求に対
するキャッシュ・ヒットはないと仮定されている。さら
に、“C1”は、ホストの要求の後方に隣接するキャッシ
ュ・データであると規定され、“C2”は、ホストの要求
の前方に隣接するキャッシュ・データであると規定され
ている。
【0032】読み出し要求R4に関しては、制御装置が、
存在しているデータ、読み出し要求R4に対して前方に隣
接するキャッシュ・データ、および読み出し要求R4に対
して後方に隣接するキャッシュ・データを求めて、キャ
ッシュ・バッファ内を探索する。この場合には、キャッ
シュ・データC1が、後方に隣接するキャッシュ・データ
として見つけ出され、ホストの要求R4とキャッシュ・デ
ータC1との間のギャップが、このギャップを埋めるべき
予測読み出しデータとして計算される。キャッシュ・デ
ータC2は、前方に隣接するキャッシュ・データとして見
つけ出されるが、その全体が要求R4によって包含され
る。ホストの要求R4に対する先取りデータとして、制御
装置は予め定められた値を適用する。したがって、記憶
媒体が読み出され、予測読み出しデータと予め定められ
た先取りデータが検索される。しかしながら、要求R4の
全体も、他のデータと連続しているために、記憶媒体か
ら検索される。この結果、データC3の連続したストリン
グ(String)がキャッシュ・バッファに記録され、C2が
無効にされるかまたは削除される。
【0033】図9は、ホストのデータ要求R5の一部が、
キャッシュ・バッファに存在しているキャッシュ・デー
タC1の上に広がっていて、しかもホストのデータ要求と
キャッシュ・バッファに存在しているキャッシュ・デー
タC2との間にギャップが存在しているケースを示すもの
である。図9では、データC1がキャッシュ・バッファに
記憶され、その後にデータC2が続いている。当然のこと
ながら、データC1およびC2はバッファ内で連続的に記憶
されるが、これらのデータは記憶媒体内では異なるLB
Aに位置する。要求R5に関しては、制御装置が、要求さ
れたデータの一部がキャッシュ・バッファ内でキャッシ
ュ・データC1の上に広がっていること、および、ホスト
の要求R5とキャッシュ・データC2との間にギャップがあ
ることを明らかにする。R5とC1との間にはギャップがな
いため、ギャップを埋めるべき予測読み出し値は計算す
ることができない。
【0034】制御装置は、つぎに、ホストの要求のうち
のどの範囲がキャッシュ・データC1と重複しているかを
計算し、キャッシュ・データC1のうちで重複したデータ
をキャッシュ・ヒットとしてホストシステムに転送す
る。制御装置は、つぎに、キャッシュ・ヒットを通じて
読み出されかつ転送された範囲を、ホストの要求R5から
減算することによって、ホストの要求R5を更新する。こ
こでは、R5とC1との間にギャップがないため、制御装置
は、予測読み出し量に対して“0”という値を設定す
る。制御装置は、R5とC2との間のギャップに基づいて先
取り値を決定する。更新されたホストの要求R5と決定さ
れた先取り値に基づき、データC3を設定する。データC3
は、記憶媒体から検索する必要がある。つぎに、データ
C3を読み出し、キャッシュ・バッファ内でC2の後ろの位
置に記憶させる。この場合、データの重複はないため、
データC1およびC2は削除されない。
【0035】図10は、図9に示したケースのさらに別の
可能性を示すものである。図10では、データ・ブロック
を構成するデータC1およびC2が、記憶媒体では異なるL
BAを有するにもかかわらず、キャッシュ・バッファで
はやはり連続的に記憶されている。制御装置は、読み出
し要求R6を通じて、予測読み出し量としてデータC1を完
全に包含する予め定められた値を設定する。なぜなら
ば、R6とC1との間にはギャップがないため、予め定めら
れた予測読み出しデータ量のうちのいくつかは計算する
必要がないからである。既に説明したように、制御装置
は、ホストの要求R6に応じて先取りデータ量を計算す
る。この場合、データC1の前の位置に来るデータが予測
読み出しデータのために必要である。このようなわけ
で、データC1の前の位置に置く必要があるデータを検索
するために記憶媒体が連続的に読み出され、こうして読
み出されたデータが、データC3としてキャッシュ・バッ
ファに記憶される。つぎに、データC1が無効にされるか
または削除されて、連続的なデータがキャッシュ・バッ
ファに残される。
【0036】図11は図9と同様の図であるが、読み出し
要求R7にデータC2の一部が含まれているケースを示すも
のである。図11では、ホストのデータ要求R7の一部が、
キャッシュ・バッファに存在しているキャッシュ・デー
タC2の上に広がっている。ホストの要求R7とキャッシュ
・バッファに存在しているキャッシュ・データC1との間
にはギャップがある。図9の場合と同様に、制御装置
は、ホストの要求のうちのどの範囲がキャッシュ・デー
タC2と重複しているかを計算し、キャッシュ・データC2
のうちで重複したデータをキャッシュ・ヒットとしてホ
ストシステムに転送する。制御装置は、つぎに、転送さ
れた範囲をホストの要求R7から減算することにより、ホ
ストの要求R7を更新する。R7とC2との間にギャップがな
いため、制御装置は、先取り量に対して“0”という値
を設定する。制御装置は、R7とC1との間のギャップに基
づいて予測読み出し値を決定する。更新されたホストの
要求R7と決定された先取り値に基づき、データC3を設定
する。連続であるC1とC2との間のギャップが記憶媒体か
ら読み出され、データC3として記憶される。この場合に
は、バッファ内に重複がないため、データC1およびC2は
削除されない。
【0037】図12は、図11に示したケースのさらに別の
可能性を示すものである。図12では、予測読み出しデー
タが、R8とC1との間のギャップに基づいて決定される。
先取りデータとしては、予め定められた量が設定され
る。この場合、データC3内のLBAは、連続的に記憶媒
体から読み出される。データC3がデータC2の全体を包含
しているため、データC2はキャッシュ・バッファから削
除される。
【0038】これらのケースに加えて、ホストの要求が
或るキャッシュ・データの一部の上に広がると共に、別
のキャッシュ・データ全体の上に広がっているケース
(すなわち、複合ケース)がある。例えば、以下のケー
スがそうした複合ケースであると考えられる。
【0039】1)ホストの要求の一部が、データC1およ
びデータC2の両方の上に広がっている。すなわち、ホス
トの要求の後端の一部がデータC1の前端の上に広がり、
ホストの要求の前端の一部がデータC2の後端の上に広が
っている。
【0040】2)ホストの要求が、データC1の全体とデ
ータC2の一部の上に広がっている。
【0041】3)ホストの要求が、データC1の一部とデ
ータC2の全体の上に広がっている。
【0042】4)ホストの要求が、複数のデータC1およ
びC2の全体の上に広がっていて、しかも、それ以外のデ
ータC1またはC2の対向する端部の全体または一部の上に
広がっている。
【0043】既に説明した方法を組み合わせることによ
ってこれらのケースに対処することができる。いずれに
せよ、データが記憶媒体から直接に読み出されない場合
には、キャッシュ・データ内のデータは、キャッシュ・
ヒットがあったときに転送される。
【0044】本発明は、おそらく、数値例を参照するこ
とでよりよく理解されるであろう。データの連続性は、
一般に、連続した数字をLBA(論理ブロック・アドレ
ス)に割り当てることによって制御される。キャッシュ
・バッファが以下のLBAアドレスに情報を記憶してい
ると仮定しよう。すなわち、キャッシュ・データ1が10
〜19のLBAアドレスに情報を記憶し、キャッシュ・デ
ータ2が30〜39のLBAアドレスに情報を記憶し、キャ
ッシュ・データ3が50〜59のLBAアドレスに情報を記
憶していると仮定する。ホストシステムからの読み出し
要求25〜26(LBA)があり、キャッシュ・データが検
索される場合には、前方に隣接するキャッシュ・データ
であるキャッシュ・データ1:10〜19、後方に隣接する
キャッシュ・データであるキャッシュ・データ2:30〜
39(LBA)を削除することができる。したがって、記
憶媒体から実際に読み出されるデータの範囲には、予測
読み出し20〜24(LBA)、ホストの要求25〜26(LB
A)、および先取り27〜29(LBA)が含まれ、これら
全てのデータ20〜29(LBA)がキャッシュ・データと
して記憶される。この結果、キャッシュ・バッファを全
体として眺めると、データ10〜39(LBA)は、冗長な
キャッシュ・データなしの状態でバッファ内に連続的に
記憶させることができる。
【0045】ホストの要求が25〜45(LBA)を包含し
ていて、キャッシュ・バッファが検索される場合には、
前方に隣接するキャッシュ・データはキャッシュ・デー
タ1:10〜19(LBA)であり、後方に隣接するキャッ
シュ・データはキャッシュ・データ3:50〜59(LB
A)である。キャッシュ・データ2:30〜39(LBA)
は、ホストの要求によって完全に包含されている。本発
明では、キャッシュ・バッファを厳密に制御して媒体の
要求を2つの要求に分割することが可能である。要求の
一つは20〜24(LBA)であり、他方は46〜49(LB
A)である。しかし通常は、キャッシュ・データ2が削
除され、データ20〜49(LBA)が記憶媒体から読み出
されてキャッシュ・バッファにキャッシュ・データとし
て記憶される場合に性能の向上が期待される。
【0046】これらの結果を得る方法は、今や、以前よ
りも簡単に理解することができる。ハードディスク装置
のCPU は、ホストからの読み出し要求を受けると、
予測読み出しデータおよび先取りデータを要求されたア
ドレスに足し合わせ、キャッシュ・バッファ内に既にそ
のデータがあるか否かを判断する。探索(サーチ)は以
下のようにして行う。
【0047】ホストの要求の先頭の論理アドレス(LB
A)が、記憶されているキャッシュ・データの最終の論
理アドレスと順番に比較される。つぎに、ホストの要求
の先頭の論理アドレスと記憶されているキャッシュ・デ
ータの最終の論理アドレスとの間の差が最も小さい、隣
接した拡張キャッシュ・データC1を決定する。
【0048】この探索ステップと同様に、ホストの要求
の最終の論理アドレス(LBA)が、記憶されている拡
張キャッシュ・データの先頭の論理アドレスと順番に比
較される。つぎに、ホストの要求の最終の論理アドレス
と記憶されている拡張キャッシュ・データの先頭の論理
アドレスとの間の差が最も小さい、隣接したキャッシュ
・データC2が決定される。
【0049】通常は、ディスク装置が、キャッシュ・デ
ータだけでなく、キャッシュ・データを管理するための
キャッシュ情報テーブルも保持する。したがって、隣接
したキャッシュ・データC1およびC2を見つけるためにキ
ャッシュ情報が探索され、キャッシュ・データそのもの
は探索されない。一般に、テーブル内のキャッシュ情報
は、キャッシュ・データの各区分または全体に、少なく
とも以下の情報を含んでいる。
【0050】i)キャッシュ状態フラグ(有効、無効な
ど) ii)データの先頭アドレス iii)データの最終アドレス iv)キャッシュ・バッファ記憶位置の先頭アドレス v)キャッシュ・バッファ記憶位置の最終アドレス ハードウェアによるサポートが可能な場合、例えばサー
チ・エンジン・ハードウェアが利用できる場合には、単
純な形式のキャッシュ情報テーブルが生成されるのであ
れば、高速で探索を行うことが可能であろう。また一方
で、図13を参照すると、キャッシュ・テーブルが、ホス
トの要求Hの先頭アドレスHsaを用いてキャッシュ情報
テーブルの第1行から最終行まで探索されることがわか
る。この探索動作の期間では、先頭アドレスHsaが、記
憶されている全キャッシュ情報(n)の先頭アドレスC
sa(n)と比較される。先頭アドレスHsaがキャッシュ
情報の先頭アドレスCsa以上である場合には、先頭アド
レスHsaが、先頭アドレスCsaが先頭アドレスHsa以下
であると判断されたキャッシュ情報の最終アドレスCea
とも比較される。先頭アドレスHsaが最終アドレスCea
以下である場合には、先頭アドレスHsaがキャッシュ情
報の中に存在すると判断される。この場合は、そのよう
な部分に関するキャッシュ・ヒットを転送することがで
きる。そのような部分に関しては記憶媒体を読み出す必
要はなく、したがってそのような部分は素早くホストシ
ステムに転送することができる。
【0051】したがって、ホストの要求の範囲Hが、ホ
ストの要求の範囲H′に縮小される。つぎに、ホストの
要求H′の先頭アドレスHsaを用いて探索が続けられ
る。さらにヒットの転送が可能であれば、ヒットの転送
がなされ、新しい探索が行われる。ヒットの転送が不可
能でない限り、これらのステップが繰り返される。つぎ
に、最終ヒットの転送がなされる対象となったキャッシ
ュ・データが、前方に隣接したキャッシュ・データC1で
あると判断される。
【0052】その一方で、ヒットの転送を引き起こすこ
とのできる先頭アドレスが見つからない場合には、探索
が続けられる。探索中には、記憶されているキャッシュ
情報の先頭アドレスがホストの要求の先頭アドレスより
も小さいのであれば、記憶されているキャッシュ情報の
最終アドレスがホストの要求の先頭アドレスと比較さ
れ、記憶されているキャッシュ情報の最終アドレスとホ
ストの要求の先頭アドレスとの差が計算され、この計算
結果が一時的にメモリに保持される。先頭アドレスを見
つけ、アドレス同士を比較し、その距離を計算するとい
う動作は、計算された距離の最小値を有するキャッシュ
・データが見つかるまで繰り返される。それが見つかっ
た場合には、そのキャッシュ・データが前方に隣接する
キャッシュ・データC1であると見なされ、前方に隣接す
るキャッシュ・データの探索が終了する。
【0053】前方に隣接するキャッシュ・データの探索
が終了した後、ホストの要求H(またはH′)の最終ア
ドレスHea(またはH′ea)を用いてキャッシュ情報を
さらに探索する。このとき、2つの可能性がある。一つ
は、最終アドレスHeaがキャッシュ内に存在している可
能性であり、もう一つは最終アドレスHeaがキャッシュ
内に存在していない可能性である。第1の可能性につい
て、図13を参照して以下に説明する。図13では、見つか
った第1のデータがキャッシュ・データNであると仮定
している。
【0054】キャッシュ・データの状態の検出は、ある
一つのアルゴリズムによって行う。まず初めに、ホスト
の要求の最終アドレスHeaを、キャッシュ情報、例えば
キャッシュ・データL〜キャッシュ・データMの各先頭
アドレスCsa(n)と比較する。最終アドレスHeaが先
頭アドレスCsa(n)よりも小さい場合には、そのよう
な先頭アドレスCsa(n)を有するキャッシュ・データ
(n)が、後方に隣接するキャッシュ・データC2の候補
となる。図面では、キャッシュ・データMが候補であ
る。さらに探索を行い、キャッシュ・データ(M)の先
頭アドレスCsa(M)よりも近くにある先頭アドレスC
saを有するキャッシュ・データ(n)がないことがわか
った場合には、キャッシュ・データ(M)が後方に隣接
するキャッシュ・データであると判断される。たまたま
ホストの要求Hの最終アドレスHeaに最も近い先頭アド
レスCsaを有するキャッシュ・データ(n)が存在して
いる場合には、このキャッシュ・データ(n)が、後方
に隣接するキャッシュ・データと見なされる。最終アド
レスHeaが先頭アドレスCsa(n)以上である場合に
は、先頭アドレスHsaが最終アドレスCea(n)と比較
される。このとき、最終アドレスHeaが最終アドレスC
ea(n)以下である場合には、キャッシュ・データ
(n)が第1の状態であると理解することができる。
【0055】図13では、キャッシュ・データNが第1の
状態である。最終アドレスHeaが最終アドレスCea
(n)よりも大きいのであれば、上記のより大きな最終
アドレスを有するキャッシュ・データ(n)は捨てら
れ、探索が続けられる。このようにして捨てられるキャ
ッシュ・データ(n)は、図面ではキャッシュ・データ
Lである。このとき、第1の状態については、記憶媒体
から最初に範囲Aを読み出し、つぎに範囲Bを読み出
し、キャッシュ(N)からヒットの転送を行うことが考
えられる。しかしながら、通常は、ホストシステムがラ
ンダムに要求を出すのではなく多くのアクセス要求を順
番に出しているため、範囲Aを読み出した後に記憶媒体
からデータを読み出すことを止めるよりは、ホストの要
求範囲と連続している記憶媒体からデータを読み出し続
けるほうがよい。したがって、この場合には、第1の状
態にあるキャッシュ・データは捨てられる。第2の状態
を検出した場合にのみ、最終アドレスHeaを先頭アドレ
スCsa(n)と比較することが可能である。その後は、
記憶媒体から範囲Aを読み出し、キャッシュ情報をチェ
ックした後にキャッシュ・データLとキャッシュ・デー
タNが削除される。
【0056】このプロセスを実行するアルゴリズムを図
14および図15に示す。図14において、読み出しコマンド
(ステップS10)を受け取ると、ホストの要求範囲がH
に設定され、ホストの要求の先頭アドレスと最終アドレ
スが、それぞれHsaとHeaに設定される(ステップS1
2)。存在しているキャッシュ情報の先頭アドレスと最
終アドレスが、それぞれキャッシュ(キャッシュ・デー
タの略)(n)saとキャッシュ(n)eaに設定される
(ステップS14)。つぎにキャッシュ情報が一番上の行
から検索される(ステップS16)。
【0057】制御装置は、次のキャッシュ情報(n)が
存在しているか否かを判断する(ステップS18)。もし
存在しているのであれば、キャッシュ(n)saがHsa以
下であるか否かの判断がなされる(ステップS20)。も
し存在していないのであれば、ステップS28に行く。ス
テップS20の答えが「はい」である場合には、キャッシ
ュ(n)eaがHsaよりも小さいか否かをこのアルゴリズ
ムで判断する(ステップS22)。もしそうでなければ、
このアルゴリズムでバッファからデータ範囲(Hsa−キ
ャッシュ(n)ea)のヒットの転送を行い、残ったデー
タ範囲をH′と再定義する(ステップS24)。もしステ
ップS22で「はい」が得られた場合には、キャッシュ情
報(n)がデータC1の候補とされ、値(Hsa−キャッシ
ュ(n)ea )が予測読み出し量として設定される(ス
テップS26)。ステップS24またはステップS26の後、
ステップS18で「いいえ」が得られるまで、ルーチンが
何度もステップS18に戻る。このとき、予測読み出しの
候補がある場合には予測読み出し量Pr が最小値に設定
され、そうでない場合には予め定められた値に設定され
る(ステップS28)。
【0058】つぎに、図15において、キャッシュ情報
が、再びキャッシュ情報テーブルの一番上の行から探索
される(ステップS30)。これは、次のキャッシュ情報
(n)が存在しているか否かを判断することによって実
行される(ステップS32)。もし存在しているのであれ
ば、Heaがキャッシュ(n)saよりも小さいか否かをア
ルゴリズムが判断する(ステップS34)。もし存在して
いないのであれば、「はい」が得られるまで、ルーチン
が何度もステップS32に戻る。ステップS34で「はい」
が得られると、キャッシュ情報(n)がデータC2の候補
となり、値(キャッシュ(n)sa−Hea )が先取り量と
して設定される(ステップS36)。つぎにルーチンがス
テップS32に戻り、ステップS32で「いいえ」が得られ
るまでループが継続する。つぎに、先取りの候補がある
場合には先取り量Ra が最小値に設定され、ない場合に
は予め定められた値に設定される(ステップS38)。P
r とRa は、装置の機械的特性に従ってステップS40に
て調整され、バッファ・スペースが確保される(ステッ
プS42)。すると記憶媒体が読み出され、ホストの要求
するデータが記憶媒体から転送される。つぎに、先取り
が停止され、キャッシュ情報の一貫性がチェックされる
(ステップS44)。ルーチンは、ステップ(ステップS
46)で終了する。
【0059】一言付け加えておくと、専用のハードウェ
アではなくソフトウェアで探索を行っている場合には、
キャッシュ情報を二分木の形式にするほうが好ましかろ
う。この場合には、基本的な探索方法は、専用のハード
ウェアを用いる場合に適した検索方法と同じである。
【0060】さらに、読み出しギャップを埋めるために
高速探索を行うことが望まれている場合には、特殊な管
理情報を与え、その特殊な管理情報を用いて探索を行う
とよい。そのような特殊な管理情報としては、例えば、
キャッシュ情報の各ストリングまたはブロックに与えら
れた探索番号を記憶したテーブルや、各キャッシュ情報
ブロッの先頭アドレスと最終アドレス、すなわち各探索
番号の先頭アドレスと最終アドレスが可能である。前方
に隣接するキャッシュ情報および後方に隣接するキャッ
シュ情報、またはそのいずれか一方のキャッシュ情報の
探索においては、テーブルに記憶されている先頭アドレ
スと最終アドレスが上に説明したのと同じような手順で
探索される。
【0061】本発明では、“隣接する”は、たとえ距離
が大きくても最も近くにあることを意味する。しかしな
がら、所望の量のバッファ・スペースがいつでも利用で
きるわけではなく、記憶媒体を読み出してそのデータを
キャッシュに記憶させ得る量は、読み出しコマンドが実
行されたときに利用できるバッファ・スペースによって
制限される。
【0062】例えば、一つの要求に対して用意できるキ
ャッシュ・バッファの最大サイズが“100 ”であると仮
定しよう。このような制限がないのであれば、バッファ
のサイズは、そのバッファの実際の最大サイズに対応す
る。このとき、ホストの要求範囲が“10”であり、ホス
トの要求と前方に隣接するキャッシュ・データC1との距
離が“50”であり、ホストの要求と後方に隣接するキャ
ッシュ・データC2との距離が“20”であったとすると、
合計が80となり、ホストの要求に関して用意する必要の
あるバッファ・サイズは“80”になる。キャッシュ・デ
ータC1が存在していない場合には、予測読み出し量は、
キャッシュ・バッファの最大サイズが“100 ”であると
いう制約に基づいて“70”に決定される。すなわち、先
取りは、キャッシュC2への距離に由来する“20”であ
り、望ましいホストの要求のサイズは“10”であるた
め、予測読み出し量は、キャッシュ・バッファの最大サ
イズ“100 ”から先取り“20”とホストの要求のサイズ
“10”を減算することによって計算される。したがっ
て、記憶媒体からの読み出しのサイズは“70”と“20”
と“10”を足し合わせることによって“100 ”に設定さ
れるため、ホストの要求のサイズ“10”に対しては、キ
ャッシュ・バッファの最大サイズ“100 ”が用意され
る。
【0063】キャッシュ・データC1への距離が“50”
で、キャッシュ・データC2への距離が“60”である場合
には、合計サイズがホストの要求に対して“50”と“6
0”と“10”を足し合わせることによって得られるた
め、合計サイズはキャッシュ・バッファの最大サイズ
“100 ”を超える。この場合には、先取りが優先され、
予測読み出しがサイズ“30”に制限される。
【0064】キャッシュ・データC1への距離が“100 ”
で、キャッシュ・データC2への距離が“120 ”である場
合には、ホストの要求と先取りを合計したサイズだけで
バッファの最大サイズ“100 ”を超える。この場合に
は、先取りはサイズ“90”に制限され、予測読み出しは
“0”にされる。
【0065】しかしながら、予測読み出しおよび/また
は先取りの足し算が、不必要な待ち時間、すなわち回転
の待ち時間を長くしているのであれば、ディスク装置の
全体性能が低下する可能性がある。このような性能の低
下の問題を解決するためには、ジャスト・イン・タイム
方式のシーク動作(Just-in-time-seek Operation )が
有用なツールになる。
【0066】さらに、ホストへのアクセスのいくつかの
パターン、例えば、逆方向への多数の順次アクセスで
は、予測読み出しが“0”に設定されており、性能が低
下する可能性がある。この場合には、予測読み出しとし
て最小量を設定すると、性能が向上する可能性がある。
【0067】記憶装置は、読み出し処理動作において、
機械的パラメータまたは時間(例えば、シーク動作や回
転の待ち時間など)に関する処理速度特性を有すること
が知られている。そこで、媒体の読み出し要求のデータ
拡張量が現在のキャッシュ情報のみに基づいている場合
には、余分な処理時間が必要となる可能性がある。この
ため、装置の性能が低下する可能性がある。拡張量は、
予測読み出し量と先取り量に対応する。
【0068】ここで、読み出し要求がホストシステムか
ら出される場合には、ホストの転送要求のデータの範囲
は、媒体の読み出し要求のデータの範囲であると規定さ
れる。記憶されているキャッシュ情報は、このデータ範
囲に基づいて探索され、キャッシュ・バッファ内に、デ
ータの連続性に関して隣接するキャッシュ・データが存
在しているか否かが判断される。ホストのデータ転送要
求がキャッシュ・バッファ内のデータの全部または一部
を包含している場合には、ホストシステムが、キャッシ
ュ・バッファ内のキャッシュ・データに対してキャッシ
ュ・ヒットを行い、キャッシュ・ヒットとなったデータ
の範囲が、キャッシュ・バッファからホストシステムへ
転送される。もし残ったデータの範囲があるならば、そ
のデータの範囲が、媒体の読み出し要求の新しいデータ
の範囲とされる。隣接するキャッシュ・データが存在し
ている場合には、データの連続性に関し、媒体の読み出
し要求のデータの範囲とキャッシュのデータの範囲との
距離(以後、ギャップと呼ぶこととする)が計算され
る。このとき、この距離が第1の最大値にされる。隣接
するキャッシュ・データが存在していない場合には、比
較的大きな予め定められた値が第2の最大値に設定され
る。
【0069】つぎに、現在処理中のデータが記憶媒体の
どの位置にあるかに関する位置関係、すなわち、読み出
し手段の現在の位置と、媒体の読み出し要求のデータの
範囲との間の位置関係が得られる。このときに、記憶媒
体上での処理動作の時間、例えば、ヘッドの移動時間が
考慮される。この関係情報に基づき、予測読み出しと先
取りに対する制限値が計算される。第1の最大値がこの
制限値と比較される。第1の最大値がこの制限値よりも
大きい場合には、この制限値が予測読み出し値または先
取り値にされる。また一方で、第2の最大値もこの制限
値と比較される。第2の最大値がこの制限値よりも大き
い場合には、この制限値が予測読み出し値または先取り
値にされる。ホストの現在の要求に関する予測読み出し
値と先取り値を計算している間にホストの次の要求が得
られる場合には、上記の方法を組み込むことにより、読
み出しギャップ充填機能を装置に適用するにあたって処
理待ち時間が増加するのを回避することができる。
【0070】既に説明したように、ホストの現在の要求
に関する予測読み出し値と先取り値を計算している間に
ホストの次の要求が得られる場合には、ディスク装置の
性能は、ホストの要求に含まれているデータを用いて検
索される先取りデータと予測読み出しデータの量を最適
化することによって、向上させることができる。ホスト
の次の要求が、ホストの現在の要求を処理している間に
ディスク装置にやってこない場合には、最適化プロセス
が必要ないことに注意されたい。
【0071】図16は、ホストの現在の要求に関する予測
読み出し値と先取り値を計算している間に、ホストの次
の要求が得られる場所で予測読み出し量を決定するため
の方法を説明する図である。
【0072】図16では、ディスク媒体から現在データを
読み出している読み出しヘッドの位置が、位置“A”で
示されている。仮定されているのは、読み出しヘッドが
位置“A”にある間に、ディスク装置がホストの次の要
求を受け取ること、および、ホストの現在の要求のデー
タ終了位置から、ホストの次の要求に関するデータが位
置するトラックの位置までを探索するサーチ動作が終了
した後、読み出しヘッドが別のトラックの位置“B”に
移動することである。さらなる仮定は、トラックのイン
デックスが位置“C”に位置すること、ホストの次の要
求の開始位置が位置“D”であること、および、LBA
がインデックス“C”から得られることである。このよ
うな状況では、距離B−Dがあらかじめ読み出される場
合には、B〜Cに対するLBAとC〜Dに対するLBA
は不連続である。それゆえに、距離C−Dが予測読み出
し量に関する制限値とされる場合には、キャッシュ情報
の一時的な記憶が容易に行える。
【0073】図17では、読み出しヘッドの現在の位置が
位置“A”で示されている。仮定されているのは、読み
出しヘッドが位置“A”にある間、ディスク装置がホス
トの現在の要求の終わりに次の要求を位置“B”で受け
取ること、および、次の要求の開始位置が位置“E”で
あることである。ヘッドは、位置“C”で示してある位
置に移動することにより正しいトラックに移動し、位置
“E”で読み出しを開始することができる。位置“F”
は現在の要求に関する予め定められた先取りデータの最
終位置であるが、もしヘッドが位置“F”から位置
“E”に来ることができないのであれば、先取りデータ
D〜Fは読み出す必要がない。別の方法として、もし望
むのであれば、現在の要求に関して可能な最大の先取り
データを得るため、BとDとの間で可能な最大データを
読み出すことができる。
【0074】図18では、例えば、記憶媒体に現在アクセ
スしているデータの最終位置が“A”であると仮定して
いる。この最終位置Aからホストの転送要求データの出
発点Gまでのシーク動作が最短のルートで行われる場合
には、ヘッドの動きはAからCまでと仮定されている。
この状況では、以前に記憶されているキャッシュ・デー
タを考慮することによってDからGまでの領域が予測読
み出しデータ(第1の最大予測読み出しデータとされて
いる)として設定されている場合には、ヘッドは、サー
チ動作のための時間があるために位置Dから位置Cまで
のデータを読み出すことはできず、位置Dからデータを
読み出すには約1回転待つ必要がある。すると、予測読
み出し量が隣接するキャッシュ・データへの距離からだ
け計算される場合には、アクセス時間が長くなる。
【0075】また一方で、上記の待ち時間を回避するた
めに、予測読み出しデータが領域C〜Gに設定されてい
る場合には、もし位置Eがトラック上のデータの連続性
の境界であるならば、すなわち、もし位置Eが記憶媒体
上のトラックのインデックス領域であるならば、領域C
〜Fと領域F〜Gとはアドレスに関して不連続であり、
領域C〜Hからキャッシュ・バッファにデータを記憶さ
せるにあたってキャッシュ情報を制御することは厄介で
ある。このプロセスを簡単化するために、予測読み出し
データに対する推奨値を領域F〜Gに設定し、クリティ
カルな制限値を領域C〜Gに設定する。すると、たとえ
予測読み出しデータが、隣接するキャッシュ・データが
ないためにホストの次の要求に関する最大値に設定され
ても、あるいは、隣接するキャッシュ・データに基づい
て最大値に設定されても、予測読み出しデータの範囲は
機械的特性によって決定される制限値に基づいて調節さ
れるため、装置の性能が向上する。
【0076】さらに、予測読み出し量に対する制限値と
して、MPU(Micro processor Unit)またはCPU
は、固定された値、または、それよりも小さな可変の値
を選択することができる。固定された値は、データ転送
動作で使用されるバッファ・サイズを制限するのに用い
られる最大値である。可変の値は、記憶媒体上の種々の
データの位置、および読み出しヘッドの位置に基づいて
計算される。
【0077】さらに、図19に示すように、ホストのデー
タ要求範囲の最終位置が“A”であると仮定する。ホス
トの現在の読み出し要求を実行する前または実行中に、
ホストの次の要求F〜Gが確認されることを仮定してい
る。さらに、位置Fへのシーク動作Eが実行可能なクリ
ティカルな位置が、位置Dであると仮定している。ホス
トの現在の要求に対する先取りデータ値が領域A〜Dよ
りも大きい場合には、ホストの次の要求の領域F〜Gを
読み出すためには約1回回転するのを待つ時間が必要と
される。したがって、領域A〜Dは、先取りデータに対
するクリティカルな制限値であると見なすことができ
る。
【0078】しかしながら、このクリティカルな値が先
取り値として採用される場合には、次の要求に対する予
測読み出しデータが0になってしまう。次の要求が読み
出しコマンドである場合には、先取り値を用いて次の予
測読み出しデータを調節する必要がある。したがって、
最大値、推奨値およびクリティカルな値を考慮すること
によって、予測読み出し値および先取り値が最適な値ま
たは適切な値になるようにすることが好ましい。さら
に、装置の処理特性により異なるが、アクセスの順番を
さらに改良することによって性能を向上させることが可
能である。この場合、先取りを制限するよりも先取りを
続けることが考えられる。
【0079】ディスク媒体またはテープ媒体等の記憶媒
体5に機械的または電気機械的な制約があって性能特性
も制限される場合には、要求されたデータが既にキャッ
シュ・メモリにあるか否かを判断することによって処理
時間を短くすることができる。先取りデータおよび予測
読み出しデータを調節してディスクの不必要な回転やテ
ープの不必要な動きを回避することによっても性能を向
上させることができる。例えば、図20は、“A”の先取
りの範囲を決定する方法を示している。図20では、時間
Ta は、インデックス位置“O”からの時間とタイミン
グ(A)とを合わせた時間であり、一つの機械的特性
が、記憶媒体上のインデックス位置“O”を示してい
る。インデックス位置“O”に関しては、LBAの連続
性が乱されたり分離されたりする可能性がある。次のデ
ータ要求の開始位置が“D”である場合には、AからD
までのシーク時間はTs である。これは、シーク時間テ
ーブルを探索して得られる時間である。ここで、シーク
時間テーブルは、シーク距離とシーク時間との関係を示
す対応テーブルである。径方向の運動が周方向の運動に
変化するのに要する時間はTb に等しい。したがって、
“A”からの先取りが継続している場合のクリティカル
な値は、位置Cへの時間Tc に相当するデータ範囲に対
応している。時間Tc は、Td からTb およびTa を減
算することによって得られる。先取りがTc を過ぎても
続けられる場合には、ディスクを1回転させることなく
位置Dをシークすることは不可能である。
【0080】隣接するキャッシュ・データのデータ範囲
がキャッシュ・データ1であることをさらに仮定する。
すると、先取りの範囲はTc+Tpの範囲になる。しかし
ながら、通常は、1回転するのを待っていると性能が低
下するため、先取りの範囲をTc だけにする。この状況
では、Tp の範囲はギャップのまま残り、そのギャップ
が、断片化されたデータの記憶を回避する効果を低下さ
せる可能性がある。したがって、処理時間を増加させる
こと、または、キャッシュに断片化されたデータを持た
せることのどちらが装置の性能にとってより本質的であ
るかを考慮することが必要であり、先取り量は、どちら
が本質的であるかに基づいて決定される。
【0081】本発明の多くの利点は今や明らかである。
本発明の制御方法を採用する場合には、データが記憶媒
体から効率的に読み出され、キャッシュ・バッファに記
憶され、より多くのキャッシュ・データをキャッシュ・
バッファに保持することができる。また一方で、キャッ
シュ・データが断片化されることを回避することができ
るので、キャッシュ・ヒット率が向上し、性能も向上す
る。特別なアクセス・パターンでは、キャッシュ・バッ
ファの利用率は数倍にもなるため、キャッシュ・バッフ
ァをより効率的に使用することができ、ディスク装置な
どの装置のアクセス性能を顕著に向上させることが可能
になる。
【0082】これまでは、特定の装置ならびにその応用
例の関連で本発明の原理を説明してきたが、このような
説明は単なる例示であり、本発明の範囲を制限するもの
ではないことを理解しておく必要がある。
【図面の簡単な説明】
【図1】従来のハードディスク装置におけるデータ検索
法を示す図である。
【図2】従来のハードディスク装置における他のデータ
検索法を示す図である。
【図3】従来のハードディスク装置におけるさらに他の
データ検索法を示す図である。
【図4】本発明に係るハードディスク装置のブロック図
である。
【図5】本発明に係るハードディスク装置からのデータ
検索法を示す(その1)である。
【図6】本発明に係るハードディスク装置からのデータ
検索法を示す図(その2)である。
【図7】種々の条件における本発明に係るハードディス
ク装置からのデータ検索法の詳細を説明するための図
(その1)である。
【図8】種々の条件における本発明に係るハードディス
ク装置からのデータ検索法の詳細を説明するための図
(その2)である。
【図9】種々の条件における本発明に係るハードディス
ク装置からのデータ検索法の詳細を説明するための図
(その3)である。
【図10】種々の条件における本発明に係るハードディ
スク装置からのデータ検索法の詳細を説明するための図
(その4)である。
【図11】種々の条件における本発明に係るハードディ
スク装置からのデータ検索法の詳細を説明するための図
(その5)である。
【図12】種々の条件における本発明に係るハードディ
スク装置からのデータ検索法の詳細を説明するための図
(その6)である。
【図13】前方の隣接するキャッシュ・データの検索が
終了した後のハードディスク装置からのさらなるデータ
検索法を説明するための図である。
【図14】本発明に従ってデータ検索を行う手順を説明
するためのフローチャート(その1)である。
【図15】本発明に従ってデータ検索を行う手順を説明
するためのフローチャート(その2)である。
【図16】種々の条件の下でデータを検索しているとき
のディスクの状態を簡略化して示す図(その1)であ
る。
【図17】種々の条件の下でデータを検索しているとき
のディスクの状態を簡略化して示す図(その2)であ
る。
【図18】種々の条件の下でデータを検索しているとき
のハードディスクの状態の詳細を示す図(その1)であ
る。
【図19】種々の条件の下でデータを検索しているとき
のハードディスクの状態の詳細を示す図(その2)であ
る。
【図20】種々の条件の下でデータを検索しているとき
のハードディスクの状態の詳細を示す図(その3)であ
る。
【符号の説明】
1…ホストシステム 2…バッファ 3…制御装置 4…CPU 5…記憶媒体 6…RAM
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アーロン オルブリッチ アメリカ合衆国,カリフォルニア 95037, モーガン ヒル,エイサートン サークル 14525 (72)発明者 ダグラス プリンス アメリカ合衆国,カリフォルニア 92653, ラグーナ ヒルズ,ヒドゥン トレイル ロード 27096 (72)発明者 堀 一行 山形県西村山郡朝日町大谷1227−4 (72)発明者 米山 浩二 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 畠山 滋 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B005 JJ13 MM11 NN22 5B065 BA01 CH02

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 ホストから読み出しコマンドおよび書き
    込みコマンドを受ける記憶媒体を備えた記憶システム内
    のキャッシュを構成するキャッシュ・バッファを制御す
    る方法であって、 前記ホストからの第1のコマンドに応答して前記キャッ
    シュ・バッファに第1のデータを記憶させるステップ
    と、 第2のデータが全て前記キャッシュ・バッファ内の前記
    第1のデータに含まれている場合には、前記記憶システ
    ムから前記第2のデータを読み出すコマンドである前記
    ホストからの第2のコマンドを、前記キャッシュ・バッ
    ファから前記第2のデータを読み出すことによって実行
    するステップとを有し、 そうでない場合には、 前記第2のデータに予測読み出しデータおよび先取りデ
    ータを付加することによって拡張された要求を決定する
    ステップと、 前記キャッシュ・バッファ内で前記第1のデータと前記
    第2のデータとの間に重複があるか否かを判断するステ
    ップと、 前記記憶媒体内で前記第1のデータと前記第2のデータ
    との間にギャップがあるか否かを判断するステップとを
    有し、 前記ギャップまたは前記重複がある場合には、 前記記憶媒体から一つの連続したデータの流れを読み出
    すことによって前記キャッシュ・バッファに前記の拡張
    された要求を記憶させ、そのときに、前記キャッシュ・
    バッファ内にてギャップなしの状態で当該データが前記
    キャッシュ・バッファに記憶されるよう、前記の拡張さ
    れた要求を前記キャッシュ・バッファに記憶させるステ
    ップと、 前記キャッシュ・バッファから前記第2のデータを読み
    出すことによって前記第2のコマンドを実行するステッ
    プとを有することを特徴とする方法。
  2. 【請求項2】 前記方法において、前記記憶媒体が回転
    し、該記憶媒体が回転するにつれて前記の拡張された要
    求が前記記憶媒体から読み出され、 前記方法が、さらに、前記の拡張された要求を読み出す
    前に必要とされる回転量を減少させるために、前記予測
    読み出しデータの量を調節するステップを有する請求項
    1に記載の方法。
  3. 【請求項3】 ホストから読み出しコマンドおよび書き
    込みコマンドを受ける記憶媒体を備えた記憶システム内
    のキャッシュを構成するキャッシュ・バッファを制御す
    る方法であって、 前記ホストからの第1のコマンドに応答して前記キャッ
    シュ・バッファに第1のデータを記憶させるステップ
    と、 第2のデータの一部が前記キャッシュ・バッファ内の前
    記第1のデータに含まれている場合には、前記記憶シス
    テムから第2のデータを読み出すコマンドである前記ホ
    ストからの第2のコマンドを、前記キャッシュ・バッフ
    ァから前記第2のデータを読み出すことによって実行す
    るステップと、 前記第2のデータ中の残りのデータを第2のデータとし
    て再定義するステップと、 再定義された前記第2のデータを前記記憶媒体から読み
    出すステップとを有することを特徴とする方法。
  4. 【請求項4】 ホストから読み出しコマンドおよび書き
    込みコマンドを受ける記憶媒体を備えた記憶システム内
    のキャッシュを構成するキャッシュ・バッファを制御す
    る方法であって、 前記ホストからの第1のコマンドに応答して前記キャッ
    シュ・バッファに第1のデータを記憶させるステップ
    と、 下記の複数のステップを実行することによって、前記記
    憶媒体から第2のデータを読み出すコマンドである前記
    ホストからの第2のコマンドを実行するステップとを有
    し、 ここで、前記の複数のステップは、 予測読み出しデータおよび先取りデータの予め定められ
    た量を第2のデータに付加することによって拡張された
    要求を決定するステップと、 前記の拡張された要求に第1のデータの一部が含まれて
    いるか否かを判断し、前記第1のデータの一部が含まれ
    ている場合には、前記の拡張された要求に含まれる前記
    第1のデータと前記第2のデータとの間のギャップを識
    別するステップと、 前記の拡張された要求に前記ギャップのみが含まれるよ
    うに、前記の拡張された要求を調節するステップと、 修正された前記の拡張された要求を前記キャッシュ・バ
    ッファに記憶させるステップと、 前記キャッシュ・バッファから前記第2のデータを読み
    出すことによって前記第2のコマンドを実行するステッ
    プとを含むことを特徴とする方法。
  5. 【請求項5】 ホストから読み出しコマンドおよび書き
    込みコマンドを受ける記憶媒体を備えた記憶システム内
    のキャッシュを構成するキャッシュ・バッファを制御す
    る方法であって、 前記ホストからの第1のコマンドに応答して前記キャッ
    シュ・バッファに第1のデータを記憶させるステップ
    と、 前記第1のデータの論理アドレスを用いてキャッシュ情
    報テーブルを作成するステップと、 前記記憶媒体から前記第2のデータを読み出すコマンド
    である前記ホストからの前記第2のコマンドを実行する
    ステップと、 前記キャッシュ情報テーブルを探索して、前記キャッシ
    ュ・バッファに既に記憶されているデータの中から、前
    記ホストからの前記第2のコマンドに含まれるデータを
    識別するステップと、 前記論理アドレスに関し、前記ホストが第1に要求する
    データと、当該データの前方に隣接するキャッシュ・デ
    ータNとの間に存在するデータの第1のギャップを識別
    するステップと、 前記論理アドレスに関し、前記ホストが第2に要求する
    データと、当該データの後方に隣接するキャッシュ・デ
    ータMの間に存在するデータの第2のギャップを識別す
    るステップと、 前記第1のギャップの値を予測読み出し量として設定す
    ると共に、前記第2のギャップの値を先取り量として設
    定するステップと、 前記予測読み出し量、前記第2のデータの範囲および前
    記先取り量を、拡張された要求として認定し、前記第1
    のギャップおよび前記第2のギャップの中のデータを前
    記キャッシュ・バッファに読み込むステップと、 前記キャッシュ・バッファから前記第2のデータを読み
    出すことによって前記第2のコマンドを実行するステッ
    プとを有することを特徴とする方法。
  6. 【請求項6】 前記キャッシュ・バッファ内で重複した
    データが存在している場合には、以前に記憶された前記
    の重複したデータが無効にされる請求項5に記載の方
    法。
  7. 【請求項7】 前記方法が、さらに、 データの連続性に関し、前記第2のデータと前記キャッ
    シュ・データとの間のギャップを第1の最大値として認
    定するステップと、 第2の最大値を予め定められた値として認定するステッ
    プと、 前記記憶媒体上で現在処理中のデータが占める位置と前
    記の拡張された要求が占める位置との間の位置関係を測
    定するステップと、 前記の現在処理中のデータが占める位置と前記の拡張さ
    れた要求が占める位置に基づいて、前記記憶媒体上での
    処理動作時間を認定するステップと、 前記第2のデータに関係する予測読み出しデータおよび
    先取りデータに対する制限値を計算するステップと、 前記第1の最大値を、前記予測読み出しデータおよび前
    記先取りデータに対する制限値と比較するステップと、 前記第1の最大値が前記制限値よりも大きい場合には、
    該制限値を予測読み出し値または先取り値として採用す
    るステップと、 前記第2の最大値を前記制限値と比較し、前記第2の最
    大値が前記制限値よりも大きい場合には、該制限値を予
    測読み出し値または先取り値として採用するステップと
    を有し、 前記ホストからの第2の要求が、前記ホストからの現在
    の要求に関する予測読み出し値および先取り値を計算し
    ている間に与えられた場合には、前記ギャップを埋める
    ための処理待ち時間が増加しないようになっている請求
    項5に記載の方法。
  8. 【請求項8】 情報を記憶する不揮発性メモリと、ホス
    トユニットが処理を行うために前記不揮発性メモリから
    読み出された情報を記憶すると共に、前記不揮発性メモ
    リに書き込むべき情報を記憶する揮発性のランダム・ア
    クセス・キャッシュ・メモリとを備え、前記不揮発性メ
    モリは、一列になっている複数のブロック領域(LB
    A’s)として情報を記憶しており、前記複数のブロッ
    ク領域は、その一部または全部が情報ブロックで埋まっ
    ているハードディスク装置用のキャッシュ・アルゴリズ
    ムを含むような、ハードディスク装置のキャッシュを制
    御する装置であって、 ディスクにまだ書き込まれていない書き込みデータがバ
    ッファ内に存在する場合、前記複数のブロック領域の一
    部または全部を包含する第2の書き込みコマンドを受け
    たときのみ、該バッファにおいて前記書き込みデータを
    古い前記複数のブロック領域に上書きする手段と、 ギャップ内のどこかにある読み出しコマンドを受けたと
    きに、要求されたデータの前に読み出されたデータと、
    前記の要求されたデータの後に読み出されたデータとを
    用いてギャップを埋めることにより、前記複数のブロッ
    ク領域のスペース内のギャップを埋める手段と、 前記ディスクからの読み出し頻度を増加させるために、
    前記ディスクへの書き込み頻度を減少させる手段とを備
    えることを特徴とする装置。
  9. 【請求項9】 ホストから読み出しコマンドおよび書き
    込みコマンドを受ける回転式の記憶媒体を備えた記憶シ
    ステム内のキャッシュを構成するキャッシュ・バッファ
    を制御する方法であって、 予測読み出しデータおよび先取りデータを第1のデータ
    に付加することによって、前記記憶システムから前記第
    1のデータを読み出すという前記ホストからのコマンド
    を実行するステップを含み、そのときに、前記予測読み
    出しデータは、該予測読み出しデータ、前記第1のデー
    タおよび前記先取りデータを読み出す前に必要とされる
    回転量が減少するように決定されることを特徴とする方
    法。
JP2002220035A 2001-07-27 2002-07-29 ハードディスク装置のキャッシュを制御する方法および装置 Withdrawn JP2003131942A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US30842401P 2001-07-27 2001-07-27
US60/308424 2001-07-27
US10/206707 2002-07-26
US10/206,707 US20030041214A1 (en) 2001-07-27 2002-07-26 Cache control methods and apparatus for hard disk drives

Publications (1)

Publication Number Publication Date
JP2003131942A true JP2003131942A (ja) 2003-05-09

Family

ID=23193934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002220035A Withdrawn JP2003131942A (ja) 2001-07-27 2002-07-29 ハードディスク装置のキャッシュを制御する方法および装置

Country Status (3)

Country Link
US (1) US20030041214A1 (ja)
EP (1) EP1280063A3 (ja)
JP (1) JP2003131942A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101833416B1 (ko) * 2011-04-27 2018-04-13 시게이트 테크놀로지 엘엘씨 데이터 리드 방법 및 이를 적용한 저장 장치
US11947800B2 (en) 2021-10-27 2024-04-02 Red Hat, Inc. Determining weights for cache storage of fragmented data

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307156B1 (en) 2002-07-31 2012-11-06 Western Digital Technologies, Inc. Adaptively modifying pre-read operations within a rotating media storage device
US6965966B1 (en) * 2002-10-31 2005-11-15 Western Digital Technologies, Inc. Disk drive pre-computing seek parameters for a continuation track and a next command to facilitate continuing a read-ahead or aborting the read-ahead
JP2004318940A (ja) * 2003-04-14 2004-11-11 Renesas Technology Corp 記憶装置
US7080200B2 (en) * 2003-08-14 2006-07-18 Hitachi Global Storage Technologies Netherlands B.V. System and method for handling writes in HDD using 4K block sizes
US7730222B2 (en) * 2004-08-24 2010-06-01 Symantec Operating System Processing storage-related I/O requests using binary tree data structures
US7337273B2 (en) * 2004-03-31 2008-02-26 Microsoft Corporation Strategies for reading information from a mass storage medium using a cache memory
US8627002B2 (en) * 2006-10-12 2014-01-07 International Business Machines Corporation Method to increase performance of non-contiguously written sectors
JP4643667B2 (ja) * 2008-03-01 2011-03-02 株式会社東芝 メモリシステム
JP4991605B2 (ja) * 2008-03-19 2012-08-01 株式会社東芝 データ記憶装置およびその制御方法
US8943271B2 (en) 2008-06-12 2015-01-27 Microsoft Corporation Distributed cache arrangement
US8176256B2 (en) * 2008-06-12 2012-05-08 Microsoft Corporation Cache regions
US8140712B2 (en) 2009-07-17 2012-03-20 Sandforce, Inc. System, method, and computer program product for inserting a gap in information sent from a drive to a host device
US8516166B2 (en) * 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
KR101779992B1 (ko) 2010-02-24 2017-10-10 마벨 월드 트레이드 리미티드 데이터 저장 디바이스들에 대한 액세스들의 공간적인 분포에 기초하는 캐싱
US8930619B2 (en) 2012-05-29 2015-01-06 Dot Hill Systems Corporation Method and apparatus for efficiently destaging sequential I/O streams
US9684455B2 (en) 2013-03-04 2017-06-20 Seagate Technology Llc Method and apparatus for sequential stream I/O processing
US9552297B2 (en) 2013-03-04 2017-01-24 Dot Hill Systems Corporation Method and apparatus for efficient cache read ahead
US8886880B2 (en) 2012-05-29 2014-11-11 Dot Hill Systems Corporation Write cache management method and apparatus
US9053038B2 (en) 2013-03-05 2015-06-09 Dot Hill Systems Corporation Method and apparatus for efficient read cache operation
CN103049396B (zh) * 2012-12-10 2015-10-28 浪潮(北京)电子信息产业有限公司 数据的刷写方法及装置
CN103064762B (zh) * 2012-12-25 2015-12-02 华为技术有限公司 重删备份数据的恢复方法和装置
US9158687B2 (en) 2013-03-04 2015-10-13 Dot Hill Systems Corporation Method and apparatus for processing fast asynchronous streams
US9465555B2 (en) 2013-08-12 2016-10-11 Seagate Technology Llc Method and apparatus for efficient processing of disparate data storage commands
US9152563B2 (en) 2013-03-04 2015-10-06 Dot Hill Systems Corporation Method and apparatus for processing slow infrequent streams
US20150262631A1 (en) * 2014-03-11 2015-09-17 Naoki Shimizu Semiconductor memory device
JP6521694B2 (ja) * 2015-03-27 2019-05-29 株式会社バイオス 記憶制御システム及び記憶制御装置
US9734073B2 (en) * 2015-10-30 2017-08-15 Qualcomm Incorporated System and method for flash read cache with adaptive pre-fetch
WO2017189006A1 (en) * 2016-04-29 2017-11-02 Appdynamics Llc Predictive rollup and caching for application performance data
CN106740863A (zh) * 2016-11-30 2017-05-31 武汉长江通信智联技术有限公司 驾驶行为分析方法
US10996857B1 (en) * 2017-02-28 2021-05-04 Veritas Technologies Llc Extent map performance
US10423336B2 (en) * 2017-11-28 2019-09-24 International Business Machines Corporation Fast locate using imitation reads on tape drives
CN108874310A (zh) * 2018-05-28 2018-11-23 郑州云海信息技术有限公司 分布式存储的读缓存方法、装置及计算机可读存储介质
CN111324294B (zh) * 2018-12-17 2023-11-07 地平线(上海)人工智能技术有限公司 存取张量数据的方法和装置
CN109992209B (zh) * 2019-03-29 2023-02-03 新华三技术有限公司成都分公司 数据处理方法、装置及分布式存储系统
CN111930307B (zh) * 2020-07-30 2022-06-17 北京浪潮数据技术有限公司 一种数据读取方法、装置、设备及计算机可读存储介质
CN111930513B (zh) * 2020-08-31 2023-02-28 Oppo(重庆)智能科技有限公司 文件预读的调整方法、装置、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU661304B2 (en) * 1991-03-05 1995-07-20 Zitel Corporation Cache memory system and method of operating the cache memory system
JPH07334310A (ja) * 1994-06-06 1995-12-22 Toshiba Corp ディスク装置及び同装置における読み出しデータのバッファ記憶制御方法
US5696931A (en) * 1994-09-09 1997-12-09 Seagate Technology, Inc. Disc drive controller with apparatus and method for automatic transfer of cache data
US6141728A (en) * 1997-09-29 2000-10-31 Quantum Corporation Embedded cache manager
JP3708757B2 (ja) * 1999-06-30 2005-10-19 富士通株式会社 記憶装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101833416B1 (ko) * 2011-04-27 2018-04-13 시게이트 테크놀로지 엘엘씨 데이터 리드 방법 및 이를 적용한 저장 장치
US11947800B2 (en) 2021-10-27 2024-04-02 Red Hat, Inc. Determining weights for cache storage of fragmented data

Also Published As

Publication number Publication date
US20030041214A1 (en) 2003-02-27
EP1280063A3 (en) 2005-03-30
EP1280063A2 (en) 2003-01-29

Similar Documents

Publication Publication Date Title
JP2003131942A (ja) ハードディスク装置のキャッシュを制御する方法および装置
JP3183993B2 (ja) ディスク制御システム
US6381677B1 (en) Method and system for staging data into cache
JP3586887B2 (ja) 情報記録再生装置およびデータキャッシュ方法
US20090049255A1 (en) System And Method To Reduce Disk Access Time During Predictable Loading Sequences
US20070214325A1 (en) Data storage device and method thereof
JP4060506B2 (ja) ディスク制御装置
US20070005904A1 (en) Read ahead method for data retrieval and computer system
KR20090032821A (ko) 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치
US10152236B2 (en) Hybrid data storage device with partitioned local memory
TW201103016A (en) Systems and methods for tiered non-volatile storage
JP4925230B2 (ja) 記憶装置、記憶制御装置及び制御方法
US9189392B1 (en) Opportunistic defragmentation during garbage collection
JP3568110B2 (ja) キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置
KR19980029917A (ko) 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법
US6092145A (en) Disk drive system using sector buffer for storing non-duplicate data in said sector buffer
JPH11506238A (ja) キャッシュ管理システムにおける順次性検出用のシステムと方法
US11275684B1 (en) Media read cache
JP3969809B2 (ja) 記憶装置におけるデータバッファの管理方法
JPH10124387A (ja) キャッシュ制御装置および方法
JP2004164144A (ja) ディスク装置
JP3083530B2 (ja) キャッシュメモリのデータ管理方法およびキャッシュ制御装置
JP2002342038A (ja) コマンドの実行順序を制御するディスク装置
JPH04311216A (ja) 外部記憶制御装置
JP2002244816A (ja) ディスク装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20051004