JP3080521B2 - ディスク装置 - Google Patents

ディスク装置

Info

Publication number
JP3080521B2
JP3080521B2 JP05246951A JP24695193A JP3080521B2 JP 3080521 B2 JP3080521 B2 JP 3080521B2 JP 05246951 A JP05246951 A JP 05246951A JP 24695193 A JP24695193 A JP 24695193A JP 3080521 B2 JP3080521 B2 JP 3080521B2
Authority
JP
Japan
Prior art keywords
data
read
command
read command
segment
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.)
Expired - Fee Related
Application number
JP05246951A
Other languages
English (en)
Other versions
JPH07104940A (ja
Inventor
徹 金子
通 強口
政明 佐藤
広二 味田
勝二 鈴木
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.)
Alps Alpine Co Ltd
Original Assignee
Alps Electric Co 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 Alps Electric Co Ltd filed Critical Alps Electric Co Ltd
Priority to JP05246951A priority Critical patent/JP3080521B2/ja
Publication of JPH07104940A publication Critical patent/JPH07104940A/ja
Application granted granted Critical
Publication of JP3080521B2 publication Critical patent/JP3080521B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディスク装置に係わ
り、特に、上位装置であるホストシステム(ホスト制御
手段)からディスク装置に対して読み出し要求されるデ
ータを予測し、これらのデータを予めディスク装置内の
記憶手段に保存させるように動作制御されるディスク装
置に関する。
【0002】
【従来の技術】従来、前述のような動作制御が行われる
ディスク装置、即ち、先読みを行うルックアヘッド制御
ディスク装置においては、ディスク装置からホスト制御
手段に転送させたデータをディスク装置内のキャッシュ
メモリ(記憶手段)に保存させておき、ホスト制御手段
からディスク装置に対してデータの読み出し要求があっ
た場合に、その要求されたデータが前記キャッシュメモ
リ内に保存されているときには、そのキャッシュメモリ
から当該データの読み出しを行ってホスト制御手段に転
送させ、一方、その要求されたデータが前記キャッシュ
メモリに保存されていなかったときには、新たにディス
クから当該データの読み出しを行ってホスト制御手段に
転送させるように動作制御するもの(以下、これを第1
動作制御手段という)、及び、ディスク装置からホスト
制御手段に転送させたデータの次のデータが、次回にホ
スト制御手段からディスク装置に対して読み出し要求さ
れるであろうことを推測し、常時、ホスト制御手段に転
送させたデータの次のデータをディスク装置内のキャッ
シュメモリに保存させるように動作制御するもの(以
下、これを第2動作制御手段という)の2つの動作制御
手段が知られていた。
【0003】
【発明が解決しようとする課題】しかしながら、前記既
知の第1動作制御手段及び前記既知の第2動作制御手段
においては、ともに、ディスク装置内のキャッシュメモ
リ(記憶手段)に保存されるべきデータがそれぞれ一義
的に定められるものであるため、ホスト制御手段からデ
ィスク装置に対して読み出し要求されるデータが前記キ
ャッシュメモリ内に保存されている確率(ヒット率)を
ある程度以上に高くすることはできず、そのヒット率に
自ずと限界があるという問題があった。
【0004】本発明は、前述の問題点を除去するもので
あって、その目的は、ホスト制御手段からディスク装置
に対して読み出し要求されるデータが記憶手段内に保存
されている確率(ヒット率)を向上させるようにしたデ
ィスク装置を提供することである。
【0005】
【課題を解決するための手段】前記目的を達成するため
に、本発明によるディスク装置は、ホスト制御手段から
供給される読み出しコマンドに基づき、ディスクに記録
されたデータを読み出す読み出し手段と、前記読み出さ
れたデータを前記ホスト制御手段に転送する転送手段
と、前記ホスト制御手段が次に送出する読み出しコマン
ドを推測する推測手段と、この推測手段の出力により前
記ディスクに記録された情報を先読みする先読み手段
と、1つ以上の分割セグメントからなり、前記先読み手
段及び/または前記読み出し手段によって読み出された
データを記録する記憶手段と、装置全体を制御動作する
制御手段とを有するものであって、前記推測手段は、前
回受信したコマンドと今回受信したコマンドがともに読
み出しコマンドであるかの第1の判別を行い、前記第1
の判別の肯定時に、前回受信した読み出しコマンドの終
了アドレスと今回受信した読み出しコマンドの先頭アド
レスと連続性があるかの第2の判別を行い、前記第2
の判別の肯定時及び否定時のそれぞれについて、今回受
信したコマンドの先頭アドレスが前記記憶手段のいずれ
かの分割セグメントにヒットしたかの第3の判別を行
い、前記第3の判別の肯定時に、今回受信した読み出し
コマンドで要求された全セクタ数のデータが前記記憶手
段の各分割セグメントの蓄積データでカバーできるかの
第4の判別を行い、前記第4の判別の肯定時に、前記要
求された全セクタ数のデータサイズが前記各分割セグメ
ントの蓄積データサイズより小さいかの第5の判別を行
い、前記第5の判別の肯定時に、前記転送手段が前記蓄
積データを前記記憶手段から読み出して前記ホスト制御
手段に転送する手段を具備する。
【0006】
【作用】前記手段によれば、前回の読み出しコマンドに
基づくデータに対して、連続したデータの読み出し要求
があったときだけでなく、コアテストのような非連続な
(ランダム/繰返し)データの読み出し要求があったと
きにおいても、ヒットデータをキャッシュメモリ(記憶
手段)から読み出し、ホスト制御システム(ホスト制御
手段)側に転送させるようにしているので、ホスト制御
システム(ホスト制御手段)から読み出し要求されるデ
ータのヒット率、すなわち、キャッシュメモリ(記憶手
段)に蓄積されている確率を高め、ディスク装置におけ
る処理の速度を向上させることができる。
【0007】
【実施例】以下、本発明の実施例を図面を用いて詳細に
説明する。
【0008】図1は、本発明によるディスク装置の一実
施例の構成を示すブロック構成図である。
【0009】図1において、1は磁気ディスク装置(H
DA)、2はデータ・バッファとなるキャッシュメモリ
(記憶手段)、3は制御部(制御手段)、4はリード
(読み出し)動作制御部(読み出し手段)、5はホスト
・バッファ間データ転送制御部(転送手段)、6はコマ
ンド解析部(推測手段)、6aはリード(読み出し)コ
マンド判別部(第1の判別手段)、6bはアドレス連続
関係判別部(第2の判別手段)、7はキャッシュデータ
検索部、7aはセグメント判別部(第3の判別手段)、
7bは全データ有無判別部(第4の判別手段)、7cは
サイズ判別部(第5の判別手段)、8はキャッシュデー
タ管理テーブル、9は先読みデータ決定部、10はホス
ト制御システム(ホスト制御手段)である。なお、先読
みは、先読みデータ決定部9にて定められたデータを制
御部3の制御に基づき、リード動作制御部4が行う。即
ち、先読み手段は、制御部3、リード動作制御部4及び
先読みデータ決定部9により構成される。
【0010】そして、磁気ディスク装置1は、データが
記録及び再生される磁気ディスク(図示なし)を備え、
リード動作制御部4の制御によって、前記磁気ディスク
から所定の記録データの読み出しが行われる。キャッシ
ュメモリ2は、後で詳しく述べるように、複数のセグメ
ントに分割されており、その分割セグメント数及び各セ
グメントサイズ(容量)が変更できるものであって、前
記磁気ディスクから読み出されたデータが一時的に蓄積
され、ホスト・バッファ間データ転送制御部5の制御に
よって、前記一時蓄積データがホスト制御システム10
に転送される。
【0011】また、コマンド解析部6は、リードコマン
ド判別部6a、アドレス連続関係判別部6bを備えてお
り、ホスト制御システム10からのコマンドの解析を行
う機能と、リードコマンド判別部6a及びアドレス連続
関係判別部6bの判別結果に基づいて、ホスト制御シス
テム10から前回受信したリードコマンドに続いて次も
リードコマンドを受信することを推測する機能を有す
る。ここで、前記リードコマンド判別部6aは、前回受
信したコマンドと今回受信したコマンドがともにリード
コマンドであるか否かの判別を行い、前記アドレス連続
関係判別部6bは、前回のリードコマンドの終了アドレ
スと今回のリードコマンドの先頭アドレスとの連続関係
があるか否かを判別する。キャッシュデータ検索部7
は、セグメント判別部7a、全データ有無判別部7b、
サイズ判別部7cを備え、キャッシュデータ管理テーブ
ル8と協動して、前記セグメント判別部7aは、今回の
リードコマンドの先頭アドレスがキャッシュメモリ2の
いずれかのセグメントにあるかを判別し、前記全データ
有無判別部7bは、今回のリードコマンドにより読み出
しが要求された全セクタ数のデータがセグメント内に蓄
積されているデータでカバーできるか否かを判別し、前
記サイズ判別部7cは、前記セグメント判別部7aの判
別結果に係りなく、今回のリードコマンドにより読み出
しが要求された全セクタ数のデータのサイズと分割され
たセグメントサイズとを比較判別する。
【0012】さらに、先読みデータ決定部9は、コマン
ド解析部6で行われた前記リードコマンドの到来の推測
に基づいて、リード動作制御部4を介して前記磁気ディ
スクに記憶されているデータの先読みを行い、その先読
みデータをキャッシュメモリ2に転送させる。制御部3
は、このディスク装置の全体的な動作制御を受け持つも
のである。
【0013】続く、図2は、キャッシュメモリ2におけ
るセグメント分割状態の一例を示す説明図であって、
(a)はセグメント分割例、(b)はセグメント数/サ
イズ変更例を示している。
【0014】図2(a)に示すように、キャッシュメモ
リ2は、例えば、バッファサイズ256KB(キロバイ
ト)がセグメント管理されており、それぞれサイズ64
KBの4つのセグメントSEG.0乃至SEG.3に分
割されて、各セグメントSEG.0乃至SEG.3がそ
れぞれ一単位となってリードキャッシュ/ルックアヘッ
ドに割り当てられる。ディスク装置は、ホスト制御シス
テム10からセットフューチャ(Set Features)コマンド
を受けると、制御部3の制御に基づき、図2(b)に示
すように、そのコマンドの内容に応じてキャッシュメモ
リ2のセグメント数/セグメントサイズ(容量)が適宜
変更されるが、ホスト制御システム10から図2(b)
に示すセグメント数以外の数の指定があったときには、
キャッシュメモリ2は、そのセグメント数の変更要求を
拒否し、現状のセグメント数を保持し続ける。
【0015】なお、セグメント分割状態は、当然、キャ
ッシュデータ管理テーブル8へもその情報が送られるよ
うになっている。
【0016】また、キャッシュメモリ2は、以下に述べ
るようないくつかの規則に従って運用される。第1に、
ホスト制御システム10からのリードコマンドで指定さ
れたデータブロック数(要求された全セクタのデータサ
イズ)が、キャッシュメモリ2のセグメントサイズを越
えているときは、2つ以上のセグメントが使用されるこ
とはなく、1つのセグメントがリングバッファ形式で使
用される。第2に、各セグメント内容は、常時、古いも
のから順に破棄される(LRU方式)。第3に、リード
キャッシュ/ルックアヘッドが破棄される条件は、.
リセット時、.コマンドによりセグメント数が変更さ
れたとき、.コマンド等によりルックアヘッドが禁止
されたとき、.リードロング(Read Long)、ライトロ
ング(Write Long)、フォーマット(Format)、ライトバッ
ファ(Write Buffer)コマンド実行時、.診断(Diagnos
tec )コマンド実行時、.ライト(Write)コマンドの指
定アドレスがバッファ内データアドレスと重なったとき
であって、この内、前記乃至の場合は全セグメント
が破棄され、前記の場合は該当セグメントのみが破棄
される。
【0017】次に、図3及び図4は、本実施例のディス
ク装置において実行される各種の判別機能を示すフロー
チャートであって、図3はその一部であり、図4はその
残りの一部である。なお、このフローチャートは、図3
及び図4に図示のように、2つの図面に分割されている
が、実際は図3に図示の矢印及び二重矢印の部分が図4
に図示の矢印及び二重矢印の部分にそれぞれ接続される
ものである。
【0018】ここで、図3及び図4に図示されたフロー
チャートに基づいて、本実施例のディスク装置の全体的
な動作について説明するが、ここでは、ディスク装置が
ホスト制御システム10から前回のコマンドを受信して
おり、ディスク装置は、そのコマンドに対応したデータ
処理を行った後に、ホスト制御システム10から引き続
いて今回再びコマンドを受信したものとして説明を行
う。
【0019】まず、ステップS1において、コマンド解
析部6は、今回受信したコマンドがリードコマンドであ
るか否かを判断し、リードコマンドであると判断した
(Y)ときには、次のステップS2に移行し、リードコ
マンド以外のコマンドであると判断した(N)ときに
は、そのコマンドの内容に従ったデータ処理等が行われ
る。
【0020】次に、ステップS2において、リードコマ
ンド判別部6aは、前回受信したコマンドが今回受信し
たコマンドと同様のリードコマンドであるか否かを判断
し、リードコマンドであると判断した(Y)ときには、
次のステップS3に移行し、リードコマンド以外のコマ
ンドであると判断した(N)ときには、別のステップS
7に移行する。
【0021】続く、ステップS3において、アドレス連
続関係判別部6bは、前回受信したリードコマンドの終
了アドレスと今回受信したリードコマンドの先頭アドレ
スとの間が連続(シーケンシャル)関係であるか否かを
判断し、連続関係であると判断した(Y)ときには、次
のステップS4に移行し、連続関係がないと判断した
(N)ときには、前記別のステップS7に移行する。
【0022】次いで、ステップS4において、セグメン
ト判別部7aは、今回受信したリードコマンドの先頭ア
ドレスがキャッシュメモリ2内のいずれかのキャッシュ
セグメントにヒットしているか否かを判断し、前記先頭
アドレスがいずれかのキャッシュセグメントにヒットし
ていると判断した(Y)ときには、次のステップS5に
移行し、前記先頭アドレスがいずれのキャッシュセグメ
ントにもヒットしていないと判断した(N)ときには、
以下に挙げる第4のデータ処理が行われる。
【0023】続いて、ステップS5において、全データ
有無判別部7bは、今回受信したリードコマンドにより
読み出し要求された全セクタ数のデータが既にキャッシ
ュセグメント内に蓄積されているデータでカバーできる
か否かを判断し、全セクタ数のデータが一つのセグメン
ト内に蓄積されているデータでカバーできると判断した
(Y)ときには、次のステップS6に移行し、セグメン
ト内に蓄積されているデータでカバーできないと判断し
た(N)ときには、以下に挙げる第3のデータ処理が行
われる。
【0024】続く、ステップS6において、サイズ判別
部7cは、今回受信したリードコマンドにより読み出し
要求された全セクタ数のデータのサイズが分割されたセ
グメントサイズよりも少ないか否かを判断し、全セクタ
数のデータサイズがセグメントサイズよりも少ないと判
断した(Y)ときには、以下に述べる第1のデータ処理
が行われ、全セクタ数のデータサイズがセグメントサイ
ズに等しいと判断した(N)ときには、以下に挙げる第
2のデータ処理が行われる。
【0025】また、前記別のステップS7において、セ
グメント判別部7aは、今回受信したリードコマンドの
先頭アドレスがキャッシュメモリ2内のいずれかのキャ
ッシュセグメントにヒットしているか否かを判断し、前
記先頭アドレスがいずれかのキャッシュセグメントにヒ
ットしていると判断した(Y)ときには、次のステップ
S8に移行し、前記先頭アドレスがいずれのキャッシュ
セグメントにもヒットしていないと判断した(N)とき
には、他のステップS11に移行する。
【0026】続いて、ステップS8において、全データ
有無判別部7bは、今回受信したリードコマンドにより
要求された全セクタ数のデータが既にキャッシュセグメ
ント内に蓄積されているデータでカバーできるか否かを
判断し、全セクタ数のデータが一つのセグメント内に蓄
積されているデータでカバーできると判断した(Y)と
きには、次のステップS9に移行し、セグメント内に蓄
積されているデータでカバーできないと判断した(N)
ときには、他のステップS10に移行する。
【0027】続く、ステップS9において、サイズ判別
部7cは、今回受信したリードコマンドにより要求され
た全セクタ数のデータのサイズが分割されたセグメント
サイズよりも少ないか否かを判断し、全セクタ数のデー
タサイズがセグメントサイズよりも少ないと判断した
(Y)ときには、以下に挙げる第5のデータ処理が行わ
れ、全セクタ数のデータサイズがセグメントサイズに等
しいと判断した(N)ときには、以下に挙げる第6のデ
ータ処理が行われる。
【0028】さらに、前記他のステップS10におい
て、サイズ判別部7cは、今回受信したリードコマンド
により要求された全セクタ数のデータのサイズと分割さ
れたセグメントサイズとの比較を行い、その比較の結
果、全セクタ数のデータサイズがセグメントサイズより
少ないときには、以下に挙げる第7のデータ処理が行わ
れ、全セクタ数のデータサイズがセグメントサイズに等
しいときには、以下に挙げる第8のデータ処理が行わ
れ、全セクタ数のデータサイズがセグメントサイズより
大きいときには、以下に挙げる第9のデータ処理が行わ
れる。
【0029】最後に、前記他のステップS11におい
て、サイズ判別部7cは、今回受信したリードコマンド
により要求された全セクタ数のデータのサイズと分割さ
れたセグメントサイズとの比較を行い、その比較の結
果、全セクタ数のデータサイズがセグメントサイズより
少ないときには、以下に挙げる第10のデータ処理が行
われ、全セクタ数のデータサイズがセグメントサイズに
等しいときには、以下に挙げる第11のデータ処理が行
われ、全セクタ数のデータサイズがセグメントサイズよ
り大きいときには、以下に挙げる第12のデータ処理が
行われる。
【0030】ここにおいて、前記第1乃至第12の各デ
ータ処理について説明する。
【0031】始めに、前記第1のデータ処理は、今回受
信したコマンドが前回受信したコマンドと同様にリード
コマンドであり、前回受信したリードコマンドの終了ア
ドレスと今回受信したリードコマンドの先頭アドレスと
の間に連続(シーケンシャル)関係があり、今回受信し
たリードコマンドの先頭アドレスがキャッシュメモリ2
内のいずれかのキャッシュにヒットしており、今回受信
したリードコマンドにより読み出し要求された全セクタ
数のデータが既にセグメント内に蓄積されているデータ
でカバーでき、しかも、今回受信したリードコマンドに
より読み出し要求された全セクタ数のデータサイズが分
割されたセグメントサイズよりも少ない場合であって、
この場合にはリードコマンドの開始アドレスから終了ア
ドレスまでがヒットした完全ヒット状態になり、ホスト
・バッファ間データ転送制御部5は、このヒットデータ
をキャッシュメモリ2から読み出し、ホスト制御システ
ム10側に転送する。このとき、前記リードコマンドは
連続関係にあるので、リードコマンドに基づきデータを
ホスト制御システム10側に転送しながら、セグメント
内の格納済(LAH済)のキャッシュ終了位置からコマ
ンド終了位置(リード要求終了位置)までを追加ルック
アヘッド(LAH)する。
【0032】この第1のデータ処理におけるセグメント
内の格納データの状態の一例を図6に示す。図6
(a)、(b)はそれぞれデータ転送前と後の状態であ
り、図中、Sはキャッシュの開始ポインタを示し、Rは
今回のリードコマンドで要求のあったデータの格納され
ている領域を示す。この例では、Sを開始点として、1
セグメント全体にわたって、キャッシュデータが格納さ
れており、開始ポインタSとリードコマンドで要求のあ
った開始アドレスが位置Aで一致しており、位置Bが終
了アドレス(コマンド終了位置)である。ホスト・バッ
ファ間データ転送制御部5は、位置Aから位置Bまでの
ヒットデータをホスト制御システム10側に転送しなが
ら、キャッシュ終了位置を示す位置Aから位置Bまでを
追加LAHする。このとき、開始ポインタSは、位置A
から位置Bに移される。なお、開始ポインタSの位置
は、キャッシュデータ管理テーブル8で管理されてい
る。
【0033】次いで、前記第2のデータ処理は、今回受
信したコマンドが前回受信したコマンドと同様にリード
コマンドであり、前回受信したリードコマンドの終了ア
ドレスと今回受信したリードコマンドの先頭アドレスと
の間に連続関係があり、今回受信したリードコマンドの
先頭アドレスがキャッシュメモリ2内のいずれかのキャ
ッシュにヒットしており、今回受信したリードコマンド
により読み出し要求された全セクタ数のデータが既にセ
グメント内に蓄積されているデータでカバーでき、しか
も、今回受信したリードコマンドにより読み出し要求さ
れた全セクタ数のデータサイズが分割されたセグメント
サイズに等しい場合であって、この場合にも、リードコ
マンドの開始アドレスから終了アドレスまでがヒットし
た完全ヒット状態になり、ホスト・バッファ間データ転
送制御部5は、このヒットデータをキャッシュメモリ2
から読み出し、ホスト制御システム10側に転送する。
このとき、前記リードコマンドが連続関係にあるので、
リードコマンドに基づきデータをホスト制御システム1
0側に転送しながら、セグメント内のキャッシュ終了位
置からコマンド終了位置までのセグメントサイズ分を追
加ルックアヘッド(LAH)する。なお、このとき、要
求された全セクタ数のデータサイズとセグメントサイズ
が等しいため、開始ポインタSの位置に変化はない。
【0034】続く、前記第3のデータ処理は、今回受信
したコマンドが前回受信したコマンドと同様にリードコ
マンドであり、前回受信したリードコマンドの終了アド
レスと今回受信したリードコマンドの先頭アドレスとの
間に連続関係があり、今回受信したリードコマンドの先
頭アドレスがキャッシュメモリ2内のいずれかのキャッ
シュにヒットしているが、今回受信したリードコマンド
により読み出し要求された全セクタ数のデータサイズが
既にセグメント内に蓄積されているデータでカバーでき
ない場合であって、この場合には、リードコマンドの開
始から途中までがヒットした前半ヒット状態になり、ホ
スト・バッファ間データ転送制御部5は、このヒットし
ている部分のデータをキャッシュメモリ2から読み出
し、ホスト制御システム10側に転送しながら、リード
動作制御部4は、ヒットしていない残りのデータを磁気
ディスク装置1から個別に読み出し、セグメント内のデ
ータにリングバッファ形式で追加しながらホスト制御シ
ステム10側に転送する。このときは、ホスト制御シス
テム10側にデータを転送した後に、コマンド終了位置
を始点として次の先頭ブロック(セクタ)から始まるデ
ータの1セグメント分をルックアヘッド(LAH)す
る。
【0035】次いで、前記第4のデータ処理は、今回受
信したコマンドが前回受信したコマンドと同様にリード
コマンドであり、前回受信したリードコマンドの終了ア
ドレスと今回受信したリードコマンドの先頭アドレスと
の間に連続関係があるが、今回受信したリードコマンド
の先頭アドレスがキャッシュメモリ2内のいずれかのキ
ャッシュにヒットしていない場合であって、この場合に
は、仮に、リードコマンドの中間部分がヒットしていて
もコマンドの開始からヒットしないノーヒット状態と判
定し、LRU方式により最も古いデータが格納されてい
るセグメント(セグメント内データ)が破棄され、リー
ド動作制御部4は、要求のあったヒットしていないデー
タを磁気ディスク装置1から前記データの破棄されたセ
グメント内に読み込みながら、ホスト制御システム10
側に転送する。このとき、ホスト制御システム10側に
データを転送させた後は、次の先頭ブロックから1つの
セグメント全領域をルックアヘッド(LAH)する。
【0036】続いて、前記第5のデータ処理は、前回受
信したコマンドが今回受信したコマンドと同じリードコ
マンドでないかまたは前回受信したリードコマンドの終
了アドレスと今回受信したリードコマンドの先頭アドレ
スとの間に連続関係でない、即ち、ランダムもしくはリ
ピート関係を有しており、今回受信したリードコマンド
の先頭アドレスがキャッシュメモリ2内のいずれかのキ
ャッシュにヒットしており、今回受信したリードコマン
ドにより読み出し要求された全セクタ数のデータが既に
セグメント内に蓄積されているデータでカバーでき、し
かも、今回受信したリードコマンドにより読み出し要求
された全セクタ数のデータサイズが分割されたセグメン
トサイズよりも少ない場合であって、この場合にはリー
ドコマンドの開始から終了までがヒットした完全ヒット
状態になり、ホスト・バッファ間データ転送制御部5
は、このヒットデータをキャッシュメモリ2から読み出
し、ホスト制御システム10側に転送する。ただし、こ
のときは転送したデータをセグメント内に残しておき、
ルックアヘッド(LAH)しない。これはディスク装置
の性能を評価するために、次も同じ先頭アドレスと終了
アドレスでリードコマンドをホスト制御システム10が
送出するコアテストと呼ばれるテストを、ホスト制御シ
ステム10が行っている可能性が高いためである。
【0037】次に、前記第6のデータ処理は、前回受信
したコマンドが今回受信したコマンドと同じリードコマ
ンドでないかまたは前回受信したリードコマンドの終了
アドレスと今回受信したリードコマンドの先頭アドレス
との間に連続関係でない、即ち、ランダムもしくはリピ
ート関係を有しており、今回受信したリードコマンドの
先頭アドレスがキャッシュメモリ2内のいずれかのキャ
ッシュにヒットしており、今回受信したリードコマンド
により読み出し要求された全セクタ数のデータが既にセ
グメント内に蓄積されているデータでカバーでき、その
上に、今回受信したリードコマンドにより読み出し要求
された全セクタ数のデータサイズが分割されたセグメン
トサイズに等しい場合であって、この場合には、前記第
5のデータ処理と同様に、リードコマンドの開始から終
了までがヒットした完全ヒット状態になり、ホスト・バ
ッファ間データ転送制御部5は、このヒットデータをキ
ャッシュメモリ2から読み出し、ホスト制御システム1
0側に転送する。ただし、このときもコアテストの可能
性が高いため、転送したデータをセグメントに残してお
き、ルックアヘッド(LAH)しない。
【0038】続く、前記第7のデータ処理は、前回受信
したコマンドが今回受信したコマンドと同じリードコマ
ンドでないかまたは前回受信したリードコマンドの終了
アドレスと今回受信したリードコマンドの先頭アドレス
との間に連続関係でない、即ち、ランダムもしくはリピ
ート関係を有しており、今回受信したリードコマンドの
先頭アドレスがキャッシュメモリ2内のいずれかのキャ
ッシュにヒットしているが、今回受信したリードコマン
ドにより読み出し要求された全セクタ数のデータが既に
セグメント内に蓄積されているデータでカバーできず、
しかも、今回受信したリードコマンドにより読み出し要
求された全セクタ数のデータサイズが分割されたセグメ
ントサイズより少ない場合であって、この場合には、リ
ードコマンドの開始から途中までがヒットした前半ヒッ
ト状態になり、ホスト・バッファ間データ転送制御部5
は、このヒットしている部分のデータをキャッシュメモ
リ2から読み出し、ホスト制御システム10側に転送
し、また、リード動作制御部4は、ヒットしていない残
りのデータを磁気ディスク装置1から個別に読み出し、
セグメント内のデータにリングバッファ形式で追加しな
がらホスト制御システム10側に転送する。このとき
は、コマンドサイズ(リードコマンドにより要求のあっ
た全データ)の全てをキャッシュ化し、セグメント内の
他の領域にルックアヘッド(LAH)する。即ち、前半
ヒット部分及びホスト制御システム10側に転送するた
めに追加したデータをセグメント内にキャッシュとして
残し、LAHの量をセグメント内の残りのサイズ分とす
る。
【0039】次に、前記第8のデータ処理は、前回受信
したコマンドが今回受信したコマンドと同じリードコマ
ンドでないかまたは前回受信したリードコマンドの終了
アドレスと今回受信したリードコマンドの先頭アドレス
との間に連続関係でない、即ち、ランダムもしくはリピ
ート関係を有しており、今回受信したリードコマンドの
先頭アドレスがキャッシュメモリ2内のいずれかのキャ
ッシュにヒットしているが、今回受信したリードコマン
ドにより読み出し要求された全セクタ数のデータが既に
セグメント内に蓄積されているデータでカバーできず、
しかも、今回受信したリードコマンドにより読み出し要
求された全セクタ数のデータサイズが分割されたセグメ
ントサイズに等しい場合であって、この場合にも、リー
ドコマンドの開始から途中までがヒットした前半ヒット
状態になり、ホスト・バッファ間データ転送制御部5
は、このヒットしている部分のデータをキャッシュメモ
リ2から読み出し、ホスト制御システム10側に転送
し、また、リード動作制御部4は、ヒットしていない残
りのデータを磁気ディスク装置1から個別に読み出し、
セグメント内のデータにリングバッファ形式で追加しな
がらホスト制御システム10側に転送する。ただし、こ
のときはルックアヘッド(LAH)しない。これは、前
半ヒット部分とホスト制御システム10側に転送するた
めに追加したデータをキャッシュとして、セグメント内
に残すと、セグメント内に空き領域がなくなるためであ
る。
【0040】次いで、前記第9のデータ処理は、前回受
信したコマンドが今回受信したコマンドと同じリードコ
マンドでないかまたは前回受信したリードコマンドの終
了アドレスと今回受信したリードコマンドの先頭アドレ
スとの間に連続関係でない、即ち、ランダムもしくはリ
ピート関係を有しており、今回受信したリードコマンド
の先頭アドレスがキャッシュメモリ2内のいずれかのキ
ャッシュにヒットしているが、今回受信したリードコマ
ンドにより読み出し要求された全セクタ数のデータが既
にセグメント内に蓄積されているデータでカバーでき
ず、しかも、今回受信したリードコマンドにより読み出
し要求された全セクタ数のデータサイズが分割されたセ
グメントサイズよりも大きい場合であって、この場合に
は、前記第3のデータ処理と同様に、リードコマンドの
開始から途中までがヒットした前半ヒット状態になり、
ホスト・バッファ間データ転送制御部5は、このヒット
している部分のデータをキャッシュメモリ2から読み出
し、ホスト制御システム10側に転送しながら、リード
動作制御部4は、ヒットしていない残りのデータを磁気
ディスク装置1から個別に読み出し、セグメント内のデ
ータにリングバッファ形式で追加しながらホスト制御シ
ステム10側に転送する。このときは、ホスト制御シス
テム10側にデータを転送した後に、コマンド終了位置
に相当するセグメントの位置を始点とし、次の先頭ブロ
ック(セクタ)から1セグメント分をルックアヘッド
(LAH)する。
【0041】続く、前記第10のデータ処理は、前回受
信したコマンドが今回受信したコマンドと同じリードコ
マンドでないかまたは前回受信したリードコマンドの終
了アドレスと今回受信したリードコマンドの先頭アドレ
スとの間に連続関係でない、即ち、ランダムもしくはリ
ピート関係を有しており、今回受信したリードコマンド
の先頭アドレスがキャッシュメモリ2内のいずれのキャ
ッシュにもヒットしておらず、しかも、今回受信したリ
ードコマンドにより読み出し要求された全セクタ数のデ
ータサイズが分割されたセグメントサイズより少ない場
合であって、この場合には、仮に、リードコマンドの中
間部分がヒットしていてもコマンドの開始からヒットし
ないノーヒット状態とし、LRU方式によりセグメント
は最も古いデータが格納されているものから破棄され、
リード動作制御部4は、要求のあったヒットしていない
データを磁気ディスク装置1から前記データの破棄され
たセグメント内に読み込ながら、ホスト制御システム1
0側に転送する。このとき、コマンドサイズを全てキャ
ッシュ化するためにホスト制御システム10側に転送さ
せたデータをセグメント内に残し、セグメント内の他の
領域をルックアヘッド(LAH)する。
【0042】続いて、前記第11のデータ処理は、前回
受信したコマンドが今回受信したコマンドと同じリード
コマンドでないかまたは前回受信したリードコマンドの
終了アドレスと今回受信したリードコマンドの先頭アド
レスとの間に連続関係でない、即ち、ランダムもしくは
リピート関係を有しており、今回受信したリードコマン
ドの先頭アドレスがキャッシュメモリ2内のいずれのキ
ャッシュにもヒットしておらず、しかも、今回受信した
リードコマンドにより読み出し要求された全セクタ数の
データサイズが分割されたセグメントサイズに等しい場
合であって、この場合には、前記第10のデータ処理と
同様に、コマンドの開始からヒットしないノーヒット状
態になり、LRU方式によりセグメントは最も古いデー
タが格納されているものから破棄され、リード動作制御
部4は、要求のあったヒットしていないデータを磁気デ
ィスク装置1から前記データの破棄されたセグメント内
に読み込みながら、ホスト制御システム10側に転送す
る。ただし、このときはホスト制御システム10側に転
送したデータをキャッシュとしてセグメント内に残すた
めに、ルックアヘッド(LAH)しない。
【0043】さらに、前記第12のデータ処理は、前回
受信したコマンドが今回受信したコマンドと同じリード
コマンドでないかまたは前回受信したリードコマンドの
終了アドレスと今回受信したリードコマンドの先頭アド
レスとの間に連続関係でない、即ち、ランダムもしくは
リピート関係を有しており、今回受信したリードコマン
ドの先頭アドレスがキャッシュメモリ2内のいずれのキ
ャッシュにもヒットしておらず、しかも、今回受信した
リードコマンドにより読み出し要求された全セクタ数の
データサイズが分割されたセグメントサイズよりも大き
い場合であって、この場合にも、前記第4のデータ処理
と同様に、コマンドの開始からヒットしないノーヒット
状態になり、LRU方式によりセグメントは最も古いデ
ータがが格納されているものから破棄され、リード動作
制御部4は、要求のあったヒットしていないデータを磁
気ディスク装置1から前記データの破棄されたセグメン
ト内に読み込みながら、ホスト制御システム10側に転
送する。このとき、ホスト制御システム10側にデータ
を転送させた後は、次の先頭ブロックから1つのセグメ
ント全領域をルックアヘッド(LAH)する。なお、前
記第7、第8、第10及び第11のデータ処理におい
て、要求データ転送後に、セグメント内にその転送デー
タをキャッシュとして残しておく理由は、第5及び第6
のデータ処理と同様に、コアテストに備えるためであ
る。
【0044】図5は、以上の第1乃至第12のデータ処
理を一覧表にまとめたキャッシュ/ルックアヘッド動作
マトリクスを示す説明図である。
【0045】図5において、丸内に示されている数字
は、それぞれ、第1乃至第12のデータ処理を示してい
る。
【0046】なお、前記第1乃至第12のデータ処理に
おいて、前記ノーヒットの中には、リードコマンドの全
てがヒットしないものだけでなく、リードコマンドの途
中がヒットしている中間ヒット状態、リードコマンドの
途中から終了までヒットしている後半ヒット状態も含ま
れるものである。このようにノーヒットを扱うことによ
り、ヒットの判断は先頭アドレスだけで済むので、効率
的な処理が可能となり、結果的に処理時間の短縮を計る
ことができる。
【0047】このように、本実施例によれば、ホスト制
御システム1からディスク装置に供給される次のコマン
ドの予測を行う際に、ディスク装置は、複数の各別の判
別を行った後で、前記コマンドの予測を行うようにして
いるので、前回のリードコマンドに基づくデータに対し
て連続関係にあるデータの読み出し要求であるか、コア
テストのような非連続な(ランダム/繰返し)データの
読み出し要求であるかの判別を確度よく行うことがで
き、ホスト制御システム1からディスク装置に対して読
み出し要求されるデータがキャッシュメモリ2内に保存
されている確率(ヒット率)を著しく向上させることが
できる。
【0048】
【発明の効果】以上説明したように、本発明のディスク
装置によれば、ホスト制御手段からディスク装置に供給
される次のコマンドの予測を行う際に、第1の判別乃至
第5の判別を行った後、前記コマンドの予測を行って
いるので、前回の読み出しコマンドに基づくデータに対
して、連続したデータの読み出し要求があったときだけ
でなく、コアテストのような非連続な(ランダム/繰返
し)データの読み出し要求があったときにおいても、ヒ
ットデータをキャッシュメモリ(記憶手段)から読み出
し、ホスト制御システム(ホスト制御手段)側に転送さ
せるようにしているので、ホスト制御システム(ホスト
制御手段)から読み出し要求されるデータのヒット率、
すなわち、キャッシュメモリ(記憶手段)に蓄積されて
いる確率を高め、ディスク装置における処理の速度を向
上させることができるという効果がある。
【図面の簡単な説明】
【図1】本発明によるディスク装置の一実施例の構成を
示すブロック構成図である。
【図2】キャッシュメモリ2におけるセグメント分割状
態の一例を示す説明図である。
【図3】本実施例のディスク装置において実行される各
種の判別機能を示すフローチャートの一部である。
【図4】本実施例のディスク装置において実行される各
種の判別機能を示すフローチャートの残りの一部であ
る。
【図5】本実施例の各データ処理を一覧表にまとめたキ
ャッシュ/ルックアヘッド動作マトリクスを示す説明図
である。
【図6】本実施例の第1のデータ処理におけるセグメン
ト内の格納データの一例を示す説明図である。
【符号の説明】
1 磁気ディスク装置 2 データ・バッファとなるキャッシュメモリ(記憶手
段) 3 制御部(制御手段) 4 リード(読み出し)動作制御部(読み出し手段) 5 ホスト・バッファ間データ転送制御部(転送手段) 6 コマンド解析部(推測手段) 6a リード(読み出し)コマンド判別部(第1の判別
手段) 6b アドレス連続関係判別部(第2の判別手段) 7 キャッシュデータ検索部 7a セグメント判別部(第3の判別手段) 7b 全データ有無判別部(第4の判別手段) 7c サイズ判別部(第5の判別手段) 8 キャッシュデータ管理テーブル 9 先読みデータ決定部 10 ホスト制御システム(ホスト制御手段)
フロントページの続き (72)発明者 味田 広二 東京都大田区雪谷大塚町1番7号 アル プス電気株式会社内 (72)発明者 鈴木 勝二 東京都大田区雪谷大塚町1番7号 アル プス電気株式会社内 (56)参考文献 特開 昭57−172457(JP,A) 特開 昭55−157056(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 ホスト制御手段から供給される読み出し
    コマンドに基づき、ディスクに記録されたデータを読み
    出す読み出し手段と、前記読み出されたデータを前記ホ
    スト制御手段に転送する転送手段と、前記ホスト制御手
    段が次に送出する読み出しコマンドを推測する推測手段
    と、この推測手段の出力により前記ディスクに記録され
    た情報を先読みする先読み手段と、1つ以上の分割セグ
    メントからなり、前記先読み手段及び/または前記読み
    出し手段によって読み出されたデータを記録する記憶手
    段と、装置全体を制御動作する制御手段とを有するディ
    スク装置において、前記推測手段は、前回受信したコマ
    ンドと今回受信したコマンドがともに読み出しコマンド
    であるかの第1の判別を行い、前記第1の判別の肯定時
    に、前回受信した読み出しコマンドの終了アドレスと今
    受信した読み出しコマンドの先頭アドレスと連続
    があるかの第2の判別を行い、前記第2の判別の肯定時
    及び否定時のそれぞれについて、今回受信したコマンド
    の先頭アドレスが前記記憶手段のいずれかの分割セグメ
    ントにヒットしたかの第3の判別を行い、前記第3の判
    別の肯定時に、今回受信した読み出しコマンドで要求さ
    れた全セクタ数のデータが前記記憶手段の各分割セグメ
    ントの蓄積データでカバーできるかの第4の判別を行
    い、前記第4の判別の肯定時に、前記要求された全セク
    タ数のデータサイズが前記各分割セグメントの蓄積デー
    タサイズより小さいかの第5の判別を行い、前記第5の
    判別の肯定時に、前記転送手段が前記蓄積データを前記
    記憶手段から読み出して前記ホスト制御手段に転送する
    ことを特徴とするディスク装置。
JP05246951A 1993-10-01 1993-10-01 ディスク装置 Expired - Fee Related JP3080521B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05246951A JP3080521B2 (ja) 1993-10-01 1993-10-01 ディスク装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05246951A JP3080521B2 (ja) 1993-10-01 1993-10-01 ディスク装置

Publications (2)

Publication Number Publication Date
JPH07104940A JPH07104940A (ja) 1995-04-21
JP3080521B2 true JP3080521B2 (ja) 2000-08-28

Family

ID=17156166

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05246951A Expired - Fee Related JP3080521B2 (ja) 1993-10-01 1993-10-01 ディスク装置

Country Status (1)

Country Link
JP (1) JP3080521B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3522527B2 (ja) 1998-03-27 2004-04-26 富士通株式会社 入出力制御装置および入出力制御方法
JP4819369B2 (ja) 2005-02-15 2011-11-24 株式会社日立製作所 ストレージシステム
JP4643667B2 (ja) * 2008-03-01 2011-03-02 株式会社東芝 メモリシステム

Also Published As

Publication number Publication date
JPH07104940A (ja) 1995-04-21

Similar Documents

Publication Publication Date Title
US5257370A (en) Method and system for optimizing data caching in a disk-based computer system
JP3183993B2 (ja) ディスク制御システム
US5253351A (en) Memory controller with a cache memory and control method of cache memory including steps of determining memory access threshold values
EP0301211B1 (en) Cache management for a peripheral data storage subsystem
JP3586887B2 (ja) 情報記録再生装置およびデータキャッシュ方法
JP3254429B2 (ja) データ転送/管理システム及び方法
US4972364A (en) Memory disk accessing apparatus
US5765213A (en) Method providing for the flexible prefetching of data from a data storage system
JP2003131942A (ja) ハードディスク装置のキャッシュを制御する方法および装置
JP2007304691A (ja) ディスク装置及び回転型記憶装置の先読み制御方法
JPH07334310A (ja) ディスク装置及び同装置における読み出しデータのバッファ記憶制御方法
US6523086B1 (en) Method for improving performance of read cache of magnetic disk drive
US7000077B2 (en) Device/host coordinated prefetching storage system
JP3087429B2 (ja) 記憶装置システム
JP3080521B2 (ja) ディスク装置
JP3566319B2 (ja) 情報記憶装置
JP4104283B2 (ja) 記憶サブシステム及び情報処理システム
JP3803798B2 (ja) 記録媒体制御装置および方法、並びにアクセス制御装置
JPH0415493B2 (ja)
JP2567903B2 (ja) データ転送方法
JP3435176B2 (ja) 磁気ディスク装置
JP2834081B2 (ja) 磁気ディスク制御装置
JPH0675710A (ja) バッファ付きディスク装置
JPS6331808B2 (ja)
EP0278471B1 (en) Data processing method and system for accessing rotating storage means

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000606

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080623

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090623

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090623

Year of fee payment: 9

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090623

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090623

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090623

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090623

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100623

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110623

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120623

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120623

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130623

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees