JPH07334310A - ディスク装置及び同装置における読み出しデータのバッファ記憶制御方法 - Google Patents

ディスク装置及び同装置における読み出しデータのバッファ記憶制御方法

Info

Publication number
JPH07334310A
JPH07334310A JP6123919A JP12391994A JPH07334310A JP H07334310 A JPH07334310 A JP H07334310A JP 6123919 A JP6123919 A JP 6123919A JP 12391994 A JP12391994 A JP 12391994A JP H07334310 A JPH07334310 A JP H07334310A
Authority
JP
Japan
Prior art keywords
data
read
area
storage
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.)
Pending
Application number
JP6123919A
Other languages
English (en)
Inventor
Ikuko Iida
郁子 飯田
Yasuhiko Ichikawa
靖彦 市川
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP6123919A priority Critical patent/JPH07334310A/ja
Priority to US08/463,126 priority patent/US5727232A/en
Publication of JPH07334310A publication Critical patent/JPH07334310A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

Abstract

(57)【要約】 【目的】外部装置からのシーケンシャルアクセスリード
にも、リピートアクセスリードにも有効なリードキャッ
シュ機能が実現できるようにする。 【構成】磁気ディスク11の連続する記憶位置から順次
読み出されたデータを一時記憶するためのバッファメモ
リ2を設け、ホスト装置からのリード要求を受けて、H
DC3が磁気ディスク11からその要求データの読み出
しを行った場合に、その読み出しデータを、CPU5に
よって割り当てられた、バッファ管理データ設定部32
の示すバッファメモリ2内のバッファ領域21に、その
始端から終端に向けてHDC3が記憶していき、当該領
域21の容量を越える場合には、CPU5によって新た
にバッファ管理データ設定部32に設定された開始バッ
ファアドレスの示す、例えばバッファ領域21の中間点
に戻り、その中間点から領域終端に向かって後続の読み
出しデータを記憶していく構成とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、記憶媒体から読み出し
たデータを一旦バッファメモリに記憶して外部装置に転
送するディスク装置及び同装置における読み出しデータ
のバッファ記憶制御方法に関する。
【0002】
【従来の技術】近年、ディスク(記憶媒体)の連続する
記憶位置から順次読み出されたデータを一時記憶するバ
ッファメモリを備えたディスク装置が各種開発されてい
る。この種のディスク装置のディスクコントローラ、例
えば磁気ディスク装置の磁気ディスクコントローラで
は、外部装置からリード要求を受け取ると、その要求デ
ータがバッファメモリに確保されたバッファ領域(或い
はセグメント領域)に存在するか否かを調べ、存在しな
いならば、当該バッファ領域(或いはセグメント領域)
に磁気ディスクから要求データを読み込むようになって
いる。
【0003】もし、要求データのサイズ(要求サイズ)
がバッファ領域(セグメント領域)のサイズより小さい
場合には、磁気ディスクコントローラは、当該バッファ
領域(或いはセグメント領域)が一杯になるまで後続デ
ータ(ディスクデータ)の読み込みを行う。
【0004】また、要求サイズがバッファ領域(セグメ
ント領域)のサイズより大きい場合には、磁気ディスク
コントローラは、当該バッファ領域(セグメント領域)
が一杯になるまで要求データを読み込んだ後、バッファ
アドレスをバッファ領域(セグメント領域)の先頭に自
動的に戻して、後続の要求データをバッファ領域(セグ
メント領域)の先頭から読み込む。そして要求データの
読み込みが終了したならば、要求データに続くデータ
(シーケンシャルデータ)の読み込みが当該バッファ領
域(セグメント領域)が一杯になるまで行われる。な
お、バッファアドレスをバッファ領域(セグメント領
域)の先頭に戻した後のデータ読み込みは、その読み込
み先に既に読み込まれている要求データが外部装置に転
送されるのを確認しながら行われる。
【0005】
【発明が解決しようとする課題】上記したように、バッ
ファメモリ(キャッシュ)を備えた従来の磁気ディスク
装置においては、外部装置からのリード要求に応じて磁
気ディスクからバッファ領域(或いはセグメント領域)
へのデータ読み込みが行われた場合、リード要求の指定
する要求データに続いて、後続のデータがバッファ領域
(セグメント領域)の終端に達するまで読み込まれるよ
うになっていた。
【0006】このような従来の磁気ディスク装置では、
外部装置から次のリード要求を受け取った場合、それが
シーケンシャルアクセス(シーケンシャルアクセスリー
ド要求)であるならば、即ち先行するリード要求で要求
されたデータに後続するディスクアドレスのデータ(シ
ーケンシャルデータ)のアクセスであるならば、そのシ
ーケンシャルデータ(の少なくとも先頭部分)はバッフ
ァ領域(セグメント領域)に既に読み込まれていること
から、そのシーケンシャルデータ(の少なくとも先頭部
分)を直ちにバッファ領域(或いはセグメント領域)か
ら取り出して外部装置に転送することができる。これに
より、要求されたシーケンシャルデータ(要求データ)
を磁気ディスクから読み込む場合に比べてシーケンシャ
ルアクセスリードの高速化が図れる。
【0007】このように、要求データに続くデータ(シ
ーケンシャルデータ)を磁気ディスクからバッファ領域
(セグメント領域)に当該領域が一杯になるまで読み込
んでおくことにより、外部装置からの次のリード要求が
シーケンシャルアクセスリード要求であった場合に、そ
の新たな要求データをバッファ領域(セグメント領域)
から取り出せるようにした機能は、リードキャッシュ
(リードアヘッドキャッシュ)機能と呼ばれる。
【0008】このリードキャッシュ機能を備えた磁気デ
ィスク装置では、外部装置からの次のリード要求がリピ
ートアクセス(リピートアクセスリード要求)の場合、
先行するリード要求に応じてバッファ領域(セグメント
領域)より小さい容量の要求データが当該バッファ領域
(セグメント領域)に読み込まれたならば、後続のデー
タはバッファ領域(セグメント領域)内の残り領域に読
み込まれるだけであり、目的とする要求データ(の少な
くとも先頭部分)はバッファ領域(セグメント領域)の
先頭から存在する。したがって、この場合にも、要求デ
ータ(の少なくとも先頭部分)を直ちにバッファ領域
(或いはセグメント領域)から取り出して外部装置に転
送することができるため、磁気ディスクから要求データ
を読み込む場合に比べてリピートアクセスリードの高速
化が図れる。
【0009】しかしながら、外部装置からの次のリード
要求がリピートアクセス(リピートアクセスリード要
求)の場合でも、先行するリード要求に応じてバッファ
領域(セグメント領域)のサイズより大きい容量の要求
データの読み込みが行われた際には、一旦バッファ領域
(セグメント領域)が一杯になるまでデータ読み込みが
行われた後、後続データがバッファ領域(セグメント領
域)の先頭から読み込まれることから、リピートアクセ
スの対象となるデータ(の少なくとも先頭部分)はバッ
ファ領域(セグメント領域)から失われる。
【0010】このため従来の磁気ディスク装置では、バ
ッファ領域(セグメント領域)のサイズより大きい容量
のデータリードの後のリピートアクセスリードに対し、
バッファ領域(セグメント領域)を有効利用できない、
即ちリードキャッシュ機能が有効利用できないという問
題があった。この問題は、光磁気ディスク装置など、磁
気ディスク装置以外のディスク装置においても同様であ
った。
【0011】本発明は上記事情を考慮してなされたもの
でその目的は、割り当てられたバッファ領域或いはセグ
メント領域の容量一杯にデータを読み込んだ後、後続の
データをバッファ領域或いはセグメント領域のいずれに
読み込むかを制御することにより、外部装置からのシー
ケンシャルアクセスリード要求は勿論リピートアクセス
リード要求にも有効なリードキャッシュ機能が実現でき
るディスク装置及び同装置における読み出しデータのバ
ッファ記憶制御方法を提供することにある。
【0012】
【課題を解決するための手段】本発明のディスク装置
は、外部装置からのリード要求に応じて記憶媒体からの
データ読み出しが行われた場合に、その読み出しデータ
をメモリ手段の割り当てられた領域の一端から他端に向
けて記憶していき、当該領域の他端まで読み出しデータ
が記憶された後は、当該領域の一端と他端の間の所定の
記憶位置から他端に向かって後続の読み出しデータを記
憶させるバッファ記憶制御手段を設けたことを特徴とす
るものである。
【0013】また、本発明のディスク装置における読み
出しデータのバッファ記憶制御方法は、外部装置からの
リード要求に応じて記憶媒体からのデータ読み出しが行
われた場合に、その読み出しデータをメモリ手段の割り
当てられた領域の一端から他端に向けて記憶していく第
1の段階と、この第1の段階で、メモリ手段の上記割り
当てられた領域の他端まで読み出しデータが記憶された
後は、当該領域の一端と他端の間の所定の記憶位置から
他端に向かって後続の読み出しデータを記憶させる第2
の段階とを設けたことを特徴とする。
【0014】
【作用】上記の構成においては、外部装置からのリード
要求に応じて記憶媒体からのデータ読み出しが行われた
場合、その読み出しデータ(要求データ)がメモリ手段
の割り当てられた記憶領域、例えば唯一のバッファ領域
(或いは複数のセグメント領域の中から選択された1つ
のセグメント領域)の一端(始端)から他端(終端)に
向けて記憶されていく。そして、当該領域の他端(終
端)まで読み出しデータ(要求データ)が記憶された後
は、即ちバッファ領域(セグメント領域)の容量一杯ま
で読み出しデータ(要求データ)が読み込まれた後は、
当該領域の始端(先頭)と終端の間の所定の記憶位置、
例えば中間の記憶位置(以下、この位置をAとする)か
ら終端に向かって後続の読み出しデータ(要求データ)
が読み込まれる。ここで、上記記憶位置Aは、例えば、
バッファ領域(或いはセグメント領域)の終端まで読み
出しデータが記憶された際に、所定の手段(開始位置設
定手段)により、あたかもバッファ領域(或いはセグメ
ント領域)の始端を設定するかのように、設定されるも
のである。
【0015】さて、以上のようにして、要求されたデー
タがすべて読み込まれた後は、当該領域内に、その要求
データに続けて後続のデータが記憶媒体から読み込まれ
る。この後続データの読み込みは、バッファ領域(セグ
メント領域)のA点と終端の間の領域が当該後続データ
で一杯になるまで、その読み込み先に既に読み込まれて
いる要求データが外部装置に転送されるのを確認しなが
ら続けられる。
【0016】以上のバッファ記憶制御の結果、バッファ
領域(セグメント領域)のA点から終端の範囲内には、
要求データに続くデータ(シーケンシャルデータ)が存
在し、バッファ領域(セグメント領域)の始端側(始端
からA点の範囲内)には、要求データの少なくとも先頭
部分が(後続データに書き換えられずに)存在する。
【0017】したがって、外部装置からの次のリード要
求がシーケンシャルアクセスであれば、その要求データ
(の少なくとも先頭部分)はバッファ領域(セグメント
領域)のA点以降に存在するため、ヒットとなる。この
場合、要求データ(の少なくとも先頭部分)は直ちにバ
ッファ領域(セグメント領域)から読み出されて外部装
置に転送される。
【0018】次に、外部装置からの次のリード要求がリ
ピートアクセスであれば、その要求データ(の少なくと
も先頭部分)はバッファ領域(セグメント領域)の始端
から存在するため、ヒットとなる。この場合、要求デー
タ(の少なくとも先頭部分)は直ちにバッファ領域(セ
グメント領域)から読み出されて外部装置に転送され
る。
【0019】以上のように、上記の構成のディスク装置
及び同装置における読み出しデータのバッファ記憶制御
方法によれば、バッファ領域(セグメント領域)の容量
一杯にデータを読み込んだ後は、後続のデータをバッフ
ァ領域(セグメント領域)の始端(先頭)から始まる領
域ではなく、始端と終端の間の所定の記憶位置から始ま
る領域に読み込むことにより、外部装置からのシーケン
シャルアクセスリード要求は勿論リピートアクセスリー
ド要求にも有効なリードキャッシュ機能が実現可能とな
る。
【0020】
【実施例】以下、本発明を磁気ディスク装置に適用した
実施例につき図面を参照して説明する。図1は磁気ディ
スク装置(ハードディスク装置)の全体構成を示すブロ
ック図である。
【0021】この磁気ディスク装置は、磁気ディスクド
ライブ1と、バッファメモリ2と、ハードディスクコン
トローラ(以下、HDCと称する)3と、ホストインタ
フェース4と、CPU5と、ROM6と、RAM7とか
ら構成される。
【0022】磁気ディスクドライブ1は、記憶媒体(記
録再生媒体)としての磁気ディスク11に対するリード
/ライト動作を(HDC3の制御により)ディスクヘッ
ド12を介して行うリード/ライト回路13と、モータ
駆動回路14とを有している。このモータ駆動回路14
は、CPU5からの制御により、磁気ディスク11を回
転するためのスピンドルモータ(図示せず)、及びディ
スクヘッド12を移動するためのボイスコイルモータ
(図示せず)を駆動するのに用いられる。
【0023】バッファメモリ2は、磁気ディスク11の
連続する記憶位置(セクタ)から順次読み出されたデー
タを一時記憶するためのもので、例えばRAMにより構
成される。このバッファメモリ2は、キャッシュ(リー
ドキャッシュ)としての役割を有する。本実施例では、
バッファメモリ2のある記憶領域が磁気ディスク11か
らの読み出しデータを一時記憶するための唯一のバッフ
ァ領域21としてCPU5により割り当てられるように
なっている。このバッファ領域21のサイズは、セクタ
サイズの整数倍である。バッファメモリ2をセグメント
方式で管理する場合には、バッファメモリ2の複数の領
域がそれぞれセグメント領域として割り当てられる。
【0024】HDC3は、図示せぬホスト装置とのイン
タフェースの制御を行う他、当該ホスト装置からのコマ
ンドを受けて磁気ディスクドライブ1を制御するもので
ある。また、HDC3は、CPU5とのインタフェース
機能も有する。
【0025】このHDC3は、磁気ディスク11からの
読み出しデータをバッファメモリ2に記憶すると共に、
当該バッファメモリ2に記憶されたデータを読み出して
ホスト装置に転送するバッファ制御機能を有する。この
バッファ制御機能には、磁気ディスク11からの読み出
しデータをバッファメモリ2内の割り当てられたバッフ
ァ領域21の容量一杯まで記憶していった後は、CPU
5により指定された開始バッファアドレス(本実施例で
は、バッファ領域21の始端と終端の間の所定の記憶位
置、例えば当該バッファ領域21の中間の記憶位置A)
から領域終端に向かって後続の読み出しデータを記憶し
ていくバッファ記憶制御機能が含まれている。
【0026】HDC3は、バッファメモリ2(内のバッ
ファ領域21)をシーケンシャルアクセスリード時のキ
ャッシュとして使用可能なように、シーケンシャルアク
セス用のキャッシュ管理データ設定部31を有してい
る。このキャッシュ管理データ設定部31には、図2に
示すように、バッファ領域21に記憶されているシーケ
ンシャルデータの磁気ディスク11上の先頭ディスクア
ドレス(キャッシュスタートディスクアドレス)、同じ
くバッファメモリ2上の先頭バッファアドレス(キャッ
シュスタートバッファアドレス)、キャッシュブロック
数(セクタ数)が設定されるようになっている。
【0027】HDC3はまた、バッファ管理データ設定
部32を有している。このバッファ管理データ設定部3
2には、図2に示すように、バッファ記憶領域21の始
端(の記憶位置)のバッファアドレス(開始バッファア
ドレス)と終端のバッファアドレス(終了バッファアド
レス)が設定される。また、磁気ディスク11からの読
み出しデータがバッファ領域21の終端まで読み込まれ
た場合には、開始バッファアドレスとして、前記記憶位
置Aを示すバッファアドレスが設定されるようになって
いる。
【0028】ホストインタフェース4は、ホスト装置と
HDC3とのインタフェースをなすものである。CPU
5は、HDC3に用意されていない制御を司るもので、
モータ駆動回路14の制御のほか、HDC3においてデ
ータをバッファ領域21の容量一杯まで読み込んだ後
に、後続のデータを読み込む先頭のバッファアドレス
(開始バッファアドレス)として前記Aを当該HDC3
(内のバッファ管理データ設定部32)に設定する制御
(バッファ記憶制御)を行う。
【0029】ROM6は、CPU5のファームウェアプ
ログラムを予め格納しておくためのものである。RAM
7は、CPU5のワークメモリ等に用いられる読み出し
/書き込みが可能なメモリである。RAM7には、バッ
ファメモリ2(内のバッファ領域21)をシーケンシャ
ルアクセス以外のリード時(例えばリピートアクセスリ
ード時)のキャッシュとして使用可能なように、キャッ
シュ管理データ設定部71が確保される。このキャッシ
ュ管理データ設定部71には、図3に示すように、バッ
ファ領域21の始端から記憶されているデータの磁気デ
ィスク11上の先頭ディスクアドレス(キャッシュスタ
ートディスクアドレス)、同じくバッファメモリ2上の
先頭バッファアドレス(キャッシュスタートバッファア
ドレス)、キャッシュブロック数(セクタ数)が設定さ
れるようになっている。
【0030】次に、本発明の一実施例の動作を、ホスト
装置からリード要求(リードコマンド)が送られた場合
を例に、図4並びに図5のフローチャートを参照して説
明する。
【0031】まず、ホスト装置から図1の磁気ディスク
装置に対してリード要求(リードコマンド)が送られた
ものとする。この場合、磁気ディスク装置では、バッフ
ァメモリ2をキャッシュ(リードキャッシュ)とするヒ
ット判定が行われる。
【0032】本実施例におけるリードキャッシュのヒッ
トの条件は、シーケンシャルヒット(先行するリードで
要求されたデータの次のディスクアドレスからのリード
が要求されるシーケンシャルアクセスリードの場合)、
リピートヒット(先行するリードコマンドと同じディス
クアドレスからのリードが要求されるリピートアクセス
リードの場合)、その他のヒット(バッファメモリ2に
キャッシュされているデータのどれかが要求される場
合)に分けられる。
【0033】さて、ホスト装置から図1の磁気ディスク
装置に送られたリード要求(リードコマンド)は、ホス
トインタフェース4を介してHDC3で受け取られる。
このリード要求は、HDC3からCPU5にも送られ
る。
【0034】HDC3は、ホスト装置からのリード要求
を受け取ると、シーケンシャルアクセスリードであるか
否かにより、シーケンシャルヒットの有無を判定する
(ステップS1)。ここでの判定は、要求されたディス
クアドレスとHDC3内のキャッシュ管理データ設定部
31に保持されているキャッシュスタートディスクアド
レスとを比較することにより行われる。
【0035】もし、アドレスが一致していないならば、
HDC3はシーケンシャルアクセスリード(シーケンシ
ャルヒット)でないものと判定し、その旨をCPU5に
通知する。
【0036】するとCPU5は、リピートアクセスリー
ドであるか否かにより、リピートヒットの有無を判定す
る(ステップS2)。ここでの判定は、要求されたディ
スクアドレスとCPU5の使用するRAM7内のキャッ
シュ管理データ設定部71に保持されているキャッシュ
スタートディスクアドレスとを比較することにより行わ
れる。
【0037】もし、アドレスが一致していないならば、
CPU5はリピートアクセスリード(リピートヒット)
でないものと判定し、今度はその他のヒットの有無を判
定する(ステップS3)。ここでの判定は、要求された
ディスクアドレスが、RAM7内のキャッシュ管理デー
タ設定部71に保持されているキャッシュスタートディ
スクアドレスとキャッシュブロック数(セクタ数)から
求められるディスクアドレス範囲にあるか否かにより行
われる。
【0038】もし、キャッシュスタートディスクアドレ
スが上記のディスクアドレス範囲にないならば、CPU
5は、その他のヒットでもないと判定する。この場合、
CPU5は、バッファメモリ2内のある領域を唯一のバ
ッファ領域21として割り当てるために、その領域の始
端のバッファアドレス(開始バッファアドレス)Sと終
端のバッファアドレス(終了バッファアドレス)EをH
DC3のバッファ管理データ設定部32に設定して、ホ
スト装置から要求されたデータを当該領域(バッファ領
域21)の始端から終端に向かって当該領域内に読み込
むように、HDC3に指示する(ステップS4)。
【0039】これによりHDC3は、ホスト装置からの
リード要求の示すデータ(ホスト装置の要求データ)
を、HDC3内のキャッシュ管理データ設定部31に設
定されている開始バッファアドレス(S)の示すバッフ
ァ領域21の始端(先頭)から終端に向かって、磁気デ
ィスクドライブ1(に装着されている磁気ディスク1
1)から当該領域21に、図6(a)において実線の矢
印で示すように読み込む。
【0040】CPU5は、ホスト装置の要求データのサ
イズが、バッファ領域21のサイズより小さいか否かを
調べる(ステップS5)。ここで、ホスト装置の要求デ
ータのサイズがバッファ領域21のサイズより小さい場
合について説明する。
【0041】CPU5は、ホスト装置の要求データのサ
イズがバッファ領域21のサイズより小さい場合、HD
C3に対し、要求データに後続するデータを磁気ディス
クドライブ1(内の磁気ディスク11)からバッファ領
域21に続けて読み込むように指示する(ステップS
6)。
【0042】するとHDC3は、(バッファ領域21よ
り小さいサイズの)例えば要求データaをバッファ領域
21の始端から読み込んだ後、後続の例えばデータb
(要求データaに続くアドレスのデータ、即ちシーケン
シャルアドレスのデータ)を図6(b)において太線の
矢印で示すように、要求データaの最終読み込み先バッ
ファアドレスの次のアドレスBからバッファ領域21の
終端まで(即ちバッファ領域21の容量一杯まで)読み
込む。
【0043】HDC3は、バッファ領域21へのデータ
読み込みと並行して、当該バッファ領域21に読み込ん
だ要求データを当該領域21の先頭から順次読み出して
ホストインタフェース4経由でホスト装置に転送する動
作を行う。
【0044】HDC3はまた、バッファ領域21に読み
込んだ要求データaの後続データ(シーケンシャルアド
レスのデータ)bの先頭(先頭セクタ)のディスクアド
レスをキャッシュスタートディスクアドレス、当該デー
タbのバッファ領域21内読み込み開始位置(先頭位
置)を示すバッファアドレスBをキャッシュスタートバ
ッファアドレス、当該データbのセクタ数(要求データ
aに続いてバッファ領域21の容量一杯まで読み込まれ
た後続データbのセクタ数)をキャッシュブロック数と
して、HDC3内のキャッシュ管理データ設定部31に
設定する(ステップS7)。このときのHDC3内のキ
ャッシュ管理データ設定部31及びバッファ管理データ
設定部32の内容を図7(a)に示す。
【0045】一方、CPU5は、バッファ領域21に読
み込まれた要求データaの先頭(先頭セクタ)のディス
クアドレス(要求アドレス)をキャッシュスタートディ
スクアドレス、当該データaのバッファ領域21内読み
込み開始位置を示すバッファアドレスSをキャッシュス
タートバッファアドレス、要求データaと後続データb
を合わせた(データa+bの)セクタ数をキャッシュブ
ロック数として、RAM7内のキャッシュ管理データ設
定部71に設定する(ステップS8)。このときのRA
M7内のキャッシュ管理データ設定部71の内容を図7
(b)に示す。
【0046】以上が、ホスト装置の要求データのサイズ
がバッファ領域21のサイズより小さい場合の動作であ
る。次に、ホスト装置の要求データのサイズがバッファ
領域21のサイズ以上の場合について説明する。
【0047】CPU5は、上記ステップS5において、
ホスト装置の要求データのサイズがバッファ領域21の
サイズ以上であると判定すると、HDC3に対し、バッ
ファ領域21の容量一杯まで要求データの読み込みを続
けるように指示する。
【0048】HDC3はCPU5からの指示に応じて、
図6(c)において実線の矢印で示すように、バッファ
領域21の容量一杯まで要求データの読み込みを行うと
(ステップS9)、その旨をCPU5に通知する。
【0049】するとCPU5は、HDC3に対し、後続
の要求データをバッファ領域21に読み込むための開始
バッファアドレスをHDC3のバッファ管理データ設定
部32に設定する(ステップS10)。従来、この開始
バッファアドレスには、バッファ領域21の始端の記憶
位置(バッファアドレス)が固定的に用いられていた。
これに対して本実施例では、バッファ領域21の容量一
杯までホスト装置の要求データが読み込まれた場合に
は、上記ステップS10において、開始バッファアドレ
スとして、バッファ領域21の始端と終端の間の所定の
記憶位置、更に詳細に述べるならば、バッファ領域21
をセクタサイズで分割した際の境界位置のうち、バッフ
ァ領域21の始端と終端を除く所定位置、例えば当該バ
ッファ領域21の中間の記憶位置(セクタ境界位置)A
が、バッファ管理データ設定部32に設定される。
【0050】CPU5は、開始バッファアドレスAをH
DC3内のバッファ管理データ設定部32に設定した際
に、当該HDC3に対して、ホスト装置からの後続の要
求データのバッファ領域21への読み込みを、このバッ
ファ管理データ設定部32に設定した開始バッファアド
レス(A)から続けるように指示する。
【0051】これによりHDC3は、後続の要求データ
をバッファ領域21内のバッファアドレスA(便宜上、
A点と称する)から始まる部分に読み込むために、この
部分に既に読み込まれている先行する要求データが、図
6(d)において一点鎖線の矢印で示すようにホスト装
置に転送されるのを待つ(ステップS11)。しかる
後、HDC3は、後続の要求データを、バッファ領域2
1のA点から終端に向かって、図6(e)において実線
の矢印51で示すように読み込む(ステップS12)。
なお、この読み込みは、実際には、所定のデータ量、例
えば1セクタ単位で行われ、読み込み先に既に読み込ま
れている1セクタ分のデータがホスト装置に転送された
ことが確認される毎に行われる。これは、次に述べる要
求データに続くアドレスのデータ(シーケンシャルアド
レスのデータ)の読み込みについても同様である。
【0052】HDC3は、上記のようにしてホスト装置
の要求データをバッファ領域21のA点以降の領域に読
み込むと、このバッファ領域21のA点から終端までの
領域が要求データに続くアドレスのデータ(シーケンシ
ャルアドレスのデータ)で一杯になるように、以下に述
べるようなデータ読み込み(シーケンシャルアドレスの
データの読み込み)を行う(ステップS13)。
【0053】即ちHDC3は、まずバッファ領域21に
おける要求データの最終読み込み先バッファアドレスの
次のアドレスDから当該バッファ領域21の終端に向か
って、その要求データに続くアドレスのデータ(シーケ
ンシャルアドレスのデータ)d1を、図6(f)におい
て太線の矢印52で示すように読み込んでいく。そして
HDC3は、バッファ領域21の終端までシーケンシャ
ルアドレスのデータd1を読み込むと、バッファ領域2
1のA点以降に既に読み込まれている(実線の矢印51
で示される)要求データがホスト装置に転送されるのを
確認しながら、後続のシーケンシャルアドレスのデータ
d2を、図6(f)において太線の矢印53で示すよう
に、バッファ領域21のA点より以降に読み込む。この
読み込みは、図6(f)に示すように、先のシーケンシ
ャルアドレスのデータd1の読み込み開始点Dの直前の
バッファアドレスまで行われる。即ち、図6(f)にお
いて矢印52,53で示すように、バッファ領域21の
A点から終端までの領域が、データd1,d2からなる
シーケンシャルアドレスのデータdで一杯になるまで行
われる。
【0054】以上の結果、バッファ領域21には、図6
(f)に示すように、その始端からA点までの領域に
は、ホスト装置の要求データの先頭部分であるデータc
(要求データc)が、A点から終端までの領域には、矢
印52,53で示す向きに矢印52,53の順にデータ
d1,d2からなる後続のデータ(シーケンシャルアド
レスのデータ)dが、それぞれ記憶される。
【0055】HDC3は、バッファ領域21(のA点以
降)に読み込んだシーケンシャルアドレスのデータ(要
求データの後続データ)dの先頭(先頭セクタ)のディ
スクアドレスをキャッシュスタートディスクアドレス、
当該データdのバッファ領域21内読み込み開始位置を
示すバッファアドレスDをキャッシュスタートバッファ
アドレス、当該データdのセクタ数をキャッシュブロッ
ク数として、HDC3内のキャッシュ管理データ設定部
31に設定する(ステップS14)。このときのHDC
3内のキャッシュ管理データ設定部31及びバッファ管
理データ設定部32の内容を図8(a)に示す。
【0056】一方、CPU5は、バッファ領域21に読
み込まれた(要求データのうち、その始端からA点まで
の領域に記憶されている)要求データcの先頭(先頭セ
クタ)のディスクアドレスをキャッシュスタートディス
クアドレス、当該データcのバッファ領域21内読み込
み開始位置を示すバッファアドレスSをキャッシュスタ
ートバッファアドレス、要求データcのセクタ数をキャ
ッシュブロック数として、RAM7内のキャッシュ管理
データ設定部71に設定する(ステップS15)。この
ときのRAM7内のキャッシュ管理データ設定部71の
内容を図8(b)に示す。
【0057】次に、以上のようにして、ホスト装置から
のリード要求に応じて、ホスト装置の要求データとその
後続データ(シーケンシャルアドレスのデータ)が磁気
ディスクドライブ1(内の磁気ディスク11)からバッ
ファ領域21に図6(b)または図6(f)に示すよう
に読み込まれた状態で、ホスト装置から図1の磁気ディ
スク装置に新たなリード要求(リードコマンド)が送ら
れた場合について説明する。
【0058】HDC3は、ホスト装置からのリード要求
を受け取ると、前記したように、要求されたディスクア
ドレスとHDC3内のキャッシュ管理データ設定部31
に設定されているキャッシュスタートディスクアドレス
とを比較することで、その要求されたリードがシーケン
シャルアクセスリード(シーケンシャルリード)である
か否かを判定する(ステップS1)。
【0059】もし、シーケンシャルアクセスリードであ
った場合、HDC3は、バッファ領域21にシーケンシ
ャルアドレスのデータがあり、シーケンシャルヒットで
あるものと判断する。
【0060】例えば、バッファ領域21の内容が図6
(b)に示すような状態で、ホスト装置から送られたリ
ード要求がシーケンシャルアクセスリードであった場
合、図6(b)中のデータbにヒットする。
【0061】この場合、HDC3内のキャッシュ管理デ
ータ設定部31には、図7(a)に示すように、キャッ
シュスタートバッファアドレスとしてBが設定されてい
ることから、HDC3は、バッファ領域21のアドレス
Bから始まる領域に記憶されているデータbをアドレス
Bのデータから順に、要求されたセクタ数(ブロック
数)だけ読み出してホスト装置に転送する(ステップS
16)。
【0062】もし、データbだけでは足りないときに
は、当該データbのホスト装置への転送と並行して、後
続の要求データ(不足分の要求データ)を磁気ディスク
ドライブ1(内の磁気ディスク11)から読み出す動作
が行われ、その後続要求データが、前記ステップS12
と同様に(図6(e)参照)、バッファ領域21のA点
から終端に向けて読み込まれ、ホスト装置に転送され
る。そして、要求データに続けてシーケンシャルアドレ
スのデータが、前記ステップS13と同様に(図6
(f)参照)、バッファ領域21のA点から終端までの
領域に読み込まれる。これに応じて、キャッシュ管理デ
ータ設定部31,71の設定内容も、図6(f)におけ
るデータcとデータdに対したのと同様に、更新され
る。
【0063】次に、バッファ領域21の内容が図6
(f)に示すような状態で、ホスト装置から送られたリ
ード要求がシーケンシャルアクセスリードであった場合
には、図6(f)中のデータdにヒットする。
【0064】この場合、HDC3内のキャッシュ管理デ
ータ設定部31には、図8(a)に示すように、キャッ
シュスタートバッファアドレスとしてDが設定されてい
ることから、HDC3は、バッファ領域21のA点から
終端までの領域に記憶されているデータdをアドレスD
のデータから順に、要求されたセクタ数(ブロック数)
だけ読み出してホスト装置に転送する(ステップS1
6)。
【0065】もし、データdだけでは足りないときに
は、不足分の要求データが、バッファ領域21内に読み
込まれている当該データdの最終位置の次からバッファ
領域21の終端に向けて読み込まれ、ホスト装置に転送
される。そして、要求データに続けてシーケンシャルア
ドレスのデータが、前記ステップS13と同様に(図6
(f)参照)、バッファ領域21のA点から終端までの
領域に読み込まれる。
【0066】次に、シーケンシャルアクセスリードでな
かった場合、HDC3はその旨をCPU5に通知する。
するとCPU5は、前記したように、要求されたディス
クアドレスとRAM7内のキャッシュ管理データ設定部
71に設定されているキャッシュスタートディスクアド
レスとを比較することで、その要求されたリードがリピ
ートアクセスリード(リピートリード)であるか否かを
判定する(ステップS2)。
【0067】もし、リピートアクセスリードであった場
合、CPU5は、バッファ領域21の先頭部分に(今回
ホスト装置から受け取ったリード要求の示す)要求デー
タ(の少なくとも先頭部分)があり、リピートヒットで
あるものと判断する。
【0068】例えば、バッファ領域21の内容が図6
(b)に示すような状態で、ホスト装置から送られたリ
ード要求がリピートアクセスリードであった場合、図6
(b)中のデータa及びb(データa+b)にヒットす
る。
【0069】この場合、RAM7内のキャッシュ管理デ
ータ設定部71には、図7(b)に示すように、キャッ
シュスタートバッファアドレスとしてSが設定されてい
ることから、CPU5は、バッファ領域21の先頭アド
レスSから始まる領域に記憶されているデータa+bを
アドレスSのデータから順に、要求されたセクタ数(ブ
ロック数)だけ読み出してホスト装置に転送するように
HDC3に指示する(ステップS17)。
【0070】もし、データa+bだけでは足りないとき
には、不足分の要求データが、前記ステップS12と同
様に(図6(e)参照)、バッファ領域21のA点から
終端に向けて読み込まれる。その後、要求データに続け
てシーケンシャルアドレスのデータが、前記ステップS
13と同様に(図6(f)参照)、バッファ領域21の
A点から終端までの領域に読み込まれる。
【0071】次に、バッファ領域21の内容が図6
(f)に示すような状態で、ホスト装置から送られたリ
ード要求がリピートアクセスリードであった場合には、
図6(f)中のデータcにヒットする。
【0072】ところで、従来は、バッファ領域21の容
量を越える要求データの読み込みは、バッファ領域21
の終端に達した後は、[従来の技術]の欄でも述べたよ
うに、バッファ領域21の始端に戻り、(最初の読み込
みと同様に)そこからバッファ領域21の終端に向かっ
て行われていた。このため、最初に読み込んだ要求デー
タ(の少なくとも先頭部分)は失われ、次のリードコマ
ンドがリピートアクセスリードであった場合、ヒットと
はならなかった。
【0073】これに対し、本実施例では、図5(f)に
示したようなバッファ領域21の容量を越える要求デー
タの読み込みが行われても、その要求データ(の先頭部
分)cはバッファ領域21(の始端からA点までの領
域)に残されているため、次のリードコマンドがリピー
トアクセスリードであっても、上記したように必ずヒッ
トする。
【0074】さて、図6(f)中のデータcにヒットし
た場合、RAM7内のキャッシュ管理データ設定部71
には、図8(b)に示すように、キャッシュスタートバ
ッファアドレスとしてSが設定されていることから、C
PU5は、バッファ領域21の先頭アドレスSからアド
レスAまでの領域に記憶されているデータcをアドレス
Sのデータから順に、要求されたセクタ数(ブロック
数)だけ読み出してホスト装置に転送するようにHDC
3に指示する(ステップS17)。ここで、データcだ
けでは足りないときの動作は、上記したデータa+bだ
けでは足りないときと同様であり、不足分の要求デー
タ、更には後続のデータの読み込みにバッファ領域21
のA点から終端までの領域だけが用いられる。
【0075】次に、リピートアクセスリードでなかった
場合、CPU5は、要求されたディスクアドレスが、R
AM7内のキャッシュ管理データ設定部71に設定され
ているキャッシュスタートディスクアドレスとキャッシ
ュブロック数(セクタ数)から求められるディスクアド
レス範囲にあるか否かにより、その他のヒットの有無を
判定する(ステップS3)。
【0076】CPU5は、その他のヒットと判定した場
合、要求されたディスクアドレスと、RAM7内のキャ
ッシュ管理データ設定部71に設定されているキャッシ
ュスタートディスクアドレス及びキャッシュスタートバ
ッファアドレスとから、バッファ領域21に記憶されて
いる要求データの先頭(先頭セクタ)のバッファアドレ
スを算出し、そのバッファアドレスのデータから順に、
要求されたセクタ数(ブロック数)だけ読み出してホス
ト装置に転送するようにHDC3に指示する(ステップ
S18)。ここでデータが足りないときには、既に述べ
たように、不足分の要求データ、更には後続のデータの
磁気ディスクドライブ1(内の磁気ディスク11)から
バッファ領域21への読み込みが行われ、要求データが
ホスト装置に転送される。
【0077】以上は、バッファメモリ2のある領域が唯
一のバッファ領域21として割り当てられる場合につい
て説明した。この方式では、後続のリードコマンドが、
当該バッファ領域21にキャッシュされているデータに
ヒットしなかった場合には、当該バッファ領域21には
要求された新たなデータが読み込まれるため、それ以前
にキャッシュされていたデータは失われてしまう。した
がって、その後、この失われたデータを要求するリード
コマンドがホスト装置から送られた場合には、再度バッ
ファ領域21にデータを読み込まなくてはならない。
【0078】そこで、この問題を解決するものとしてセ
グメントキャッシュ(と呼ばれるセグメント管理方式)
が知られている。セグメントキャッシュとは、ホスト装
置からのリードコマンドに対して、バッファメモリ内の
一部の記憶領域(バッファメモリに確保されている複数
の記憶領域の1つ)をセグメント(と呼ばれるバッファ
領域)として割り当て、当該セグメント(セグメント領
域)にデータを読み込み、キャッシュを行うことであ
る。もし、後続のリードコマンドが当該セグメントにキ
ャッシュされたデータにヒットしなかった場合には、バ
ッファメモリ内の別の記憶領域を、新たなセグメントと
して、このリードコマンドに割り当て、そこにデータを
読み込み、キャッシュする。この場合、先のセグメント
にキャッシュされていたデータは失われないため、その
後、当該データを要求するリードコマンドがホスト装置
から送られた場合には、このキャッシュされていたデー
タにヒットして(前記実施例における、その他のヒット
に相当)、直ちにホスト装置へ転送できる。なお、新た
に割り当てる記憶領域がない場合には、既に存在するセ
グメント群の中から、例えば最も以前に使用されたセグ
メントが選択されて割り当てられるLRU方式が用いら
れる。
【0079】本発明は、このようなセグメントキャッシ
ュにも応用可能である。即ち、ホスト装置からのリード
コマンドに対して、図1中のバッファメモリ2内の複数
の記憶領域(一般には同一サイズであるが、そうでなく
ても構わない)の1つがセグメント(セグメント領域)
として割り当てられた場合に、そのセグメンに対して
も、前記実施例におけるバッファ領域21に対するのと
同様に、そのセグメントに、セグメント始端から終端に
向かって要求データを読み込み、セグメントの領域を越
える要求データに対しては、セグメントの中間点を領域
先頭として、そこからセグメント終端に向かって後続の
データを読み込むようにすれば良い。
【0080】ここで、HDC3のキャッシュ管理データ
設定部31及びバッファ管理データ設定部32の設定内
容については、セグメントキャッシュの場合も(対象が
バッファ領域からセグメント領域に変わるだけで)何ら
変わらない。
【0081】これに対し、RAM7内のキャッシュ管理
データ設定部71は、前記実施例と異なる。即ち、セグ
メントキャッシュでは、RAM7内のキャッシュ管理デ
ータ設定部(71)が各セグメント毎に用意される。ま
た、このャッシュ管理データ設定部(71)のデータ構
造も以下に述べる理由で異なる。
【0082】まずHDC3のキャッシュ管理データ設定
部31の内容は、ホスト装置からのリードコマンドに対
してセグメント(記憶領域)の割り当てがなされて、そ
のセグメントへのデータ読み込みが行われると、そのセ
グメントについてのキャッシュ管理データに更新され
る。したがって、前回割り当てがなされたセグメントに
ついてのキャッシュ管理データは失われてしまう。そこ
で、セグメントキャッシュでは、RAM7内のキャッシ
ュ管理データ設定部(71)に、HDC3のキャッシュ
管理データ設定部31の内容も併せて保持するようにし
ている。
【0083】例えば、新たに割り当てられたセグメント
に対して、図6(b)に示すようなデータ読み込みが行
われた場合、RAM7内のキャッシュ管理データ設定部
(71)には、前記実施例と同様に、データaの(先頭
の)ディスクアドレス、データaの(先頭の)バッファ
アドレスS、及びデータa+bのセクタ数(キャッシュ
ブロック数)からなるキャッシュ管理データ(第1のキ
ャッシュ管理データと称する)が設定される他に、HD
C3内のキャッシュ管理データ設定部31に対するのと
同一の設定情報、即ち後続データbの(先頭の)ディス
クアドレス、データbの(先頭の)バッファアドレス
B、及びデータbのセクタ数からなるキャッシュ管理デ
ータ(第2のキャッシュ管理データと称する)も併せて
設定される。但し、図6(b)に示すデータ読み込みの
場合、第1のキャッシュ管理データだけで(データaだ
けでなくデータbに対する)ヒット判定(リピートヒッ
ト或いはその他のヒットの判定)が行えるため、第2の
キャッシュ管理データは必ずしも設定する必要はない。
【0084】また、新たに割り当てられたセグメントに
対して、図6(f)に示すようなデータ読み込みが行わ
れた場合、RAM7内のキャッシュ管理データ設定部
(71)には、前記実施例と同様に、データcのディス
クアドレス、データcのバッファアドレスS、及びデー
タcのセクタ数(キャッシュブロック数)からなる第1
のキャッシュ管理データが設定される他に、HDC3内
のキャッシュ管理データ設定部31に対するのと同一の
設定情報、即ち後続データdのディスクアドレス、デー
タdのバッファアドレスD、及びデータdのセクタ数か
らなる第2のキャッシュ管理データも併せて設定され
る。
【0085】こうすることにより、ホスト装置からのリ
ードコマンドに対してHDC3にてシーケンシャルヒッ
ト(シーケンシャルアクセスリード)でないと判定され
た場合、CPU5は、各セグメント毎に用意されたRA
M7内のキャッシュ管理データ設定部(71)の設定内
容をもとに、リピートヒット(リピートアクセスリー
ド)或いはその他のヒットを判定することが可能とな
る。
【0086】なお、前記実施例では、バッファ領域21
の容量一杯にデータを読み込んだ後の、後続データの読
み込み開始点を、当該バッファ領域21の中間点Aとし
た場合について説明したが、これに限るものではない。
例えば、上記読み込み開始点を、バッファ領域21の始
端と中間点Aの間に設定しても良い。この方式は、バッ
ファ領域21においてシーケンシャルアドレスのデータ
の占める割合が要求データより多くなることから、シー
ケンシャルアクセスリードの確率が高いシステムに適す
る。逆に、上記読み込み開始点を、バッファ領域21の
中間点Aと終端の間に設定しても良い。この方式は、バ
ッファ領域21において要求データの占める割合がシー
ケンシャルアドレスのデータより多くなることから、リ
ピートアクセスリードの確率が高いシステムに適する。
但し、十分な容量のバッファ領域21が確保できる場合
には、バッファ領域21内のヒットしたデータをホスト
装置に転送している期間に、後続のデータを磁気ディス
クドライブ1(内の磁気ディスク11)からバッファ領
域21内に読み込むことができることから、上記読み込
み開始点を、バッファ領域21の中間点Aに設定するの
が最も効率が良い。以上は、セグメントキャッシュにお
けるセグメント領域についても同様である。
【0087】また、前記実施例では、本発明を磁気ディ
スク装置に適用した場合について説明したが、これに限
るものではなく、本発明は、光磁気ディスク装置など、
磁気ディスク装置以外のディスク装置にも適用可能であ
る。
【0088】
【発明の効果】以上詳述したように本発明のディスク装
置及び同装置における読み出しデータのバッファ記憶制
御方法によれば、外部装置からのリード要求に応じて記
憶媒体からのデータ読み出しが行われた場合に、その読
み出しデータをメモリ手段の割り当てられた領域の一端
から他端に向けて記憶していき、当該領域の他端まで読
み出しデータが記憶された後は、当該領域の一端と他端
の間の所定の記憶位置から他端に向かって後続の読み出
しデータを記憶させる構成としたので、上記割り当てら
れた領域(バッファ領域或いはセグメント領域)の上記
所定の記憶位置から領域他端の範囲内には、要求データ
に続くデータ(シーケンシャルデータ)が存在し、上記
割り当てられた領域の一端側(領域一端から所定の記憶
位置の範囲内)には、要求データの少なくとも先頭部分
が(後続データに書き換えられずに)存在するようにな
り、したがって、外部装置からの次のリード要求がシー
ケンシャルアクセスリード要求であっても、リピートア
クセスリード要求であってもヒットして、いずれに対し
ても有効なリードキャッシュ機能が実現できる。
【図面の簡単な説明】
【図1】この発明の一実施例に係る磁気ディスク装置の
ブロック構成図。
【図2】図1中のHDC3に設けられたキャッシュ管理
データ設定部31及びバッファ管理データ設定部32の
データ構造例を示す図。
【図3】図1中のRAM7に設けられたキャッシュ管理
データ設定部71のデータ構造例を示す図。
【図4】同実施例においてホスト装置からリード要求を
受け取った場合の動作手順を説明するためのフローチャ
ートの一部を示す図。
【図5】同実施例においてホスト装置からリード要求を
受け取った場合の動作手順を説明するためのフローチャ
ートの残りを示す図。
【図6】同実施例におけるバッファ領域21へのデータ
読み込み形態を説明するための図。
【図7】図6(b)に示すデータ読み込みが行われた場
合の、HDC3内のキャッシュ管理データ設定部31及
びバッファ管理データ設定部32の設定内容と、RAM
7内のキャッシュ管理データ設定部71の設定内容を示
す図。
【図8】図6(f)に示すデータ読み込みが行われた場
合の、HDC3内のキャッシュ管理データ設定部31及
びバッファ管理データ設定部32の設定内容と、RAM
7内のキャッシュ管理データ設定部71の設定内容を示
す図。
【符号の説明】
1…磁気ディスクドライブ、2…バッファメモリ(メモ
リ手段)、3…HDC(ハードディスクコントロー
ラ)、5…CPU、7…RAM、11…磁気ディスク
(記憶媒体)、21…バッファ領域、31…キャッシュ
管理データ設定部、32…バッファ管理データ設定部、
71…キャッシュ管理データ設定部。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 記憶媒体の連続する記憶位置から順次読
    み出されたデータを一時記憶するメモリ手段と、 外部装置からのリード要求に応じて前記記憶媒体からの
    データ読み出しが行われた場合に、その読み出しデータ
    を前記メモリ手段の割り当てられた領域の一端から他端
    に向けて記憶していき、当該領域の他端まで前記読み出
    しデータが記憶された後は、当該領域の一端と他端の間
    の所定の記憶位置から他端に向かって後続の読み出しデ
    ータを記憶させるバッファ記憶制御手段とを具備するこ
    とを特徴とするディスク装置。
  2. 【請求項2】 記憶媒体の連続する記憶位置から順次読
    み出されたデータを一時記憶するメモリ手段と、 前記記憶媒体のある記憶位置から始まるデータの読み出
    し要求を外部装置から受け取った場合に、前記要求され
    た記憶位置のデータが前記メモリ手段内に存在するか否
    かを調べるヒット検出手段と、 前記ヒット検出手段により前記要求された記憶位置のデ
    ータが存在すると判別された場合に、そのデータを前記
    メモリ手段から読み出して前記外部装置に転送する転送
    手段と、 前記ヒット検出手段により前記要求された記憶位置のデ
    ータが存在しないと判別された場合に、前記記憶媒体か
    ら要求データおよび後続データの読み出しを行って、そ
    の読み出しデータを前記メモリ手段の割り当てられた領
    域の一端から他端に向けて記憶していき、当該領域の他
    端まで前記読み出しデータが記憶された後は、当該領域
    の一端と他端の間の所定の記憶位置から他端に向かって
    後続の読み出しデータを記憶させるバッファ記憶制御手
    段とを具備することを特徴とするディスク装置。
  3. 【請求項3】 前記メモリ手段は1つの記憶領域を持
    ち、当該記憶領域が前記割り当てられた領域として用い
    られることを特徴とする請求項1または請求項2に記載
    のディスク装置。
  4. 【請求項4】 前記メモリ手段は複数の記憶領域を持
    ち、前記記憶媒体からの読み出しデータを前記バッファ
    記憶制御手段により前記メモリ手段に記憶させる際に、
    その記憶用に前記複数の記憶領域のうちの1つを選択し
    て割り当てる領域割り当て手段を更に具備することを特
    徴とする請求項1または請求項2に記載のディスク装
    置。
  5. 【請求項5】 記憶媒体の連続する記憶位置から順次読
    み出されたデータをメモリ手段に一旦記憶した後、この
    記憶したデータを外部装置に転送するディスク装置にお
    ける読み出しデータのバッファ記憶制御方法において、 外部装置からのリード要求に応じて前記記憶媒体からの
    データ読み出しが行われた場合に、その読み出しデータ
    を前記メモリ手段の割り当てられた領域の一端から他端
    に向けて記憶していく第1の段階と、 前記第1の段階で、前記メモリ手段の前記割り当てられ
    た領域の他端まで前記読み出しデータが記憶された後
    は、当該領域の一端と他端の間の所定の記憶位置から他
    端に向かって後続の読み出しデータを記憶させる第2の
    段階とを具備することを特徴とするディスク装置におけ
    る読み出しデータのバッファ記憶制御方法。
  6. 【請求項6】 記憶媒体の連続する記憶位置から順次読
    み出されたデータをメモリ手段に一旦記憶した後、この
    記憶したデータを外部装置に転送するディスク装置にお
    ける読み出しデータのバッファ記憶制御方法において、 前記記憶媒体のある記憶位置から始まるデータの読み出
    し要求を前記外部装置から受け取った場合に、前記要求
    された記憶位置のデータが前記メモリ手段内に存在する
    か否かを調べる第1の段階と、 前記第1の段階で、前記要求された記憶位置のデータが
    存在すると判別された場合に、そのデータを前記メモリ
    手段から読み出して前記外部装置に転送する第2の段階
    と、 前記第1の段階で、前記要求された記憶位置のデータが
    存在しないと判別された場合に、前記記憶媒体から要求
    データおよび後続データの読み出しを行う第2の段階
    と、 前記第2の段階での前記記憶媒体からの読み出しデータ
    を前記メモリ手段の割り当てられた領域の一端から他端
    に向けて記憶していく第3の段階と、 前記第3の段階で、前記メモリ手段の前記割り当てられ
    た領域の他端まで前記読み出しデータが記憶された後
    は、当該領域の一端と他端の間の所定の記憶位置から他
    端に向かって前記第2の段階での前記記憶媒体からの後
    続の読み出しデータを記憶させる第4の段階とを具備す
    ることを特徴とするディスク装置における読み出しデー
    タのバッファ記憶制御方法。
  7. 【請求項7】 前記メモリ手段には、1つの記憶領域だ
    けが割り当てられることを特徴とする請求項5または請
    求項6に記載のディスク装置における読み出しデータの
    バッファ記憶制御方法。
  8. 【請求項8】 前記メモリ手段には複数の記憶領域が確
    保されており、前記記憶媒体からの読み出しデータを前
    記メモリ手段に記憶させる際には、その記憶用に前記複
    数の記憶領域のうちの1つを選択して割り当てることを
    特徴とする請求項5または請求項6に記載のディスク装
    置における読み出しデータのバッファ記憶制御方法。
JP6123919A 1994-06-06 1994-06-06 ディスク装置及び同装置における読み出しデータのバッファ記憶制御方法 Pending JPH07334310A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6123919A JPH07334310A (ja) 1994-06-06 1994-06-06 ディスク装置及び同装置における読み出しデータのバッファ記憶制御方法
US08/463,126 US5727232A (en) 1994-06-06 1995-06-05 Disk system having buffer with designated area to be used for repeat access data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6123919A JPH07334310A (ja) 1994-06-06 1994-06-06 ディスク装置及び同装置における読み出しデータのバッファ記憶制御方法

Publications (1)

Publication Number Publication Date
JPH07334310A true JPH07334310A (ja) 1995-12-22

Family

ID=14872593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6123919A Pending JPH07334310A (ja) 1994-06-06 1994-06-06 ディスク装置及び同装置における読み出しデータのバッファ記憶制御方法

Country Status (2)

Country Link
US (1) US5727232A (ja)
JP (1) JPH07334310A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG107548A1 (en) * 1997-03-27 2004-12-29 Ibm Disk drive device and method for controlling the same

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980029917A (ko) * 1996-10-28 1998-07-25 김광호 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법
JPH10269027A (ja) * 1997-03-26 1998-10-09 Toshiba Corp ディスク装置及び同装置におけるバッファ管理制御方法
JPH1165871A (ja) * 1997-08-11 1999-03-09 Mitsubishi Electric Corp ワンチップクロック同期式メモリー装置
US6449607B1 (en) * 1998-09-11 2002-09-10 Hitachi, Ltd. Disk storage with modifiable data management function
JP2000137631A (ja) * 1998-10-29 2000-05-16 Square Co Ltd コンピュータ読取可能な記録媒体および情報処理装置
KR20010027606A (ko) * 1999-09-14 2001-04-06 구자홍 디스크 기록매체의 데이터 전송장치 및 방법
US6564291B1 (en) * 2000-11-17 2003-05-13 Texas Instruments Incorporated Multi-function peripheral storage device buffer system
EP1280063A3 (en) * 2001-07-27 2005-03-30 Fujitsu Limited Cache control methods and apparatus for hard disk drives
TWI238386B (en) * 2001-11-02 2005-08-21 Lite On It Corp Method for data-caching from an optical storage device
US8307156B1 (en) 2002-07-31 2012-11-06 Western Digital Technologies, Inc. Adaptively modifying pre-read operations within a rotating media storage device
TW576969B (en) * 2002-11-29 2004-02-21 Lite On It Corp Multi-segment management structure and management method of buffer
JP2004258946A (ja) * 2003-02-26 2004-09-16 Renesas Technology Corp メモリカード
US7433975B2 (en) * 2005-03-24 2008-10-07 Intel Corporation Integrated circuit capable of marker stripping
US20080155166A1 (en) * 2006-12-22 2008-06-26 Fujitsu Limited Application specific processor for controlling data buffer manager
US10565099B2 (en) * 2012-12-28 2020-02-18 Apple Inc. Methods and apparatus for compressed and compacted virtual memory
US9235516B1 (en) * 2013-05-02 2016-01-12 Emc Corporation Techniques using cacheless read and deferred caching
US10380034B2 (en) * 2017-07-14 2019-08-13 International Business Machines Corporation Cache return order optimization
CN109992209B (zh) * 2019-03-29 2023-02-03 新华三技术有限公司成都分公司 数据处理方法、装置及分布式存储系统
US11409666B2 (en) * 2019-11-22 2022-08-09 EMC IP Holding Company LLC Techniques for providing I/O hints using I/O flags
US11507294B2 (en) * 2020-10-22 2022-11-22 EMC IP Holding Company LLC Partitioning a cache for fulfilling storage commands

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432919A (en) * 1989-07-06 1995-07-11 Digital Equipment Corporation Sequential reference management for cache memories
JPH03100718A (ja) * 1989-09-13 1991-04-25 Hitachi Ltd バッファ付きディスク装置の入出力処理方法
US5497477A (en) * 1991-07-08 1996-03-05 Trull; Jeffrey E. System and method for replacing a data entry in a cache memory
US5317713A (en) * 1991-09-19 1994-05-31 Quantum Corporation Micro-winchester disk drive having on-board segmented cache memory
US5353425A (en) * 1992-04-29 1994-10-04 Sun Microsystems, Inc. Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature
US5539914A (en) * 1993-06-14 1996-07-23 International Business Machines Corporation Method and system for preprocessing data block headers during access of data in a data storage system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG107548A1 (en) * 1997-03-27 2004-12-29 Ibm Disk drive device and method for controlling the same

Also Published As

Publication number Publication date
US5727232A (en) 1998-03-10

Similar Documents

Publication Publication Date Title
JPH07334310A (ja) ディスク装置及び同装置における読み出しデータのバッファ記憶制御方法
JP2783748B2 (ja) 動的マップド・データ蓄積システムにおける補助記憶装置へのデータ転送のための方法および装置
JP3898782B2 (ja) 情報記録再生装置
JP3586887B2 (ja) 情報記録再生装置およびデータキャッシュ方法
JPH0675897A (ja) 分割を許容するバッファ・メモリ管理方法及びその装置
JPH08328747A (ja) 磁気ディスク装置及び磁気ディスク装置におけるバッファ管理方法
JPH08286837A (ja) 外部記憶サブシステムの制御方法および制御装置
JPH06314177A (ja) 磁気ディスク装置及びアクセス方法
US6880042B2 (en) Data storage apparatus that combines a group of continuous data series stored in buffer separately before storing in a recording medium
JPH076088A (ja) 情報記憶装置
JPH11212733A (ja) 外部記憶システム
US6421747B1 (en) Method for maximizing buffer usage on a disk drive
JP3111912B2 (ja) ディスクキャッシュ制御方式
WO1984002016A1 (en) Dynamic addressing for variable track length cache memory
JPH064225A (ja) 予備セクタを先読みするディスク制御装置
JP2541791B2 (ja) Mzr方式の磁気ディスク装置に対する順次シ―ク処理方式
JPH04111015A (ja) 情報記録装置
JPS6331808B2 (ja)
JP2000339202A (ja) ディスク制御装置およびその制御方法ならびにディスク記憶媒体
JPH10106143A (ja) 光ディスク記録再生装置
JP3183253B2 (ja) ディスク装置の動的大容量化方法及び動的大容量化方式
JP2003345519A (ja) ディスクアレイ装置及びディスクアレイ制御方法
JP2000347810A (ja) ファイル装置
JPH06110613A (ja) 情報記憶装置コントローラ
JP2000181798A (ja) ディスク装置のキャッシュ制御方式