JP2943896B2 - 計算機システム及びディスク・データの制御方法 - Google Patents

計算機システム及びディスク・データの制御方法

Info

Publication number
JP2943896B2
JP2943896B2 JP5220092A JP22009293A JP2943896B2 JP 2943896 B2 JP2943896 B2 JP 2943896B2 JP 5220092 A JP5220092 A JP 5220092A JP 22009293 A JP22009293 A JP 22009293A JP 2943896 B2 JP2943896 B2 JP 2943896B2
Authority
JP
Japan
Prior art keywords
data
disk
read
buffer
cache
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 - Lifetime
Application number
JP5220092A
Other languages
English (en)
Other versions
JPH0773107A (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.)
PII EFU YUU KK
Original Assignee
PII EFU YUU KK
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 PII EFU YUU KK filed Critical PII EFU YUU KK
Priority to JP5220092A priority Critical patent/JP2943896B2/ja
Publication of JPH0773107A publication Critical patent/JPH0773107A/ja
Application granted granted Critical
Publication of JP2943896B2 publication Critical patent/JP2943896B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディスク・キャッシュ
を有するホスト計算機と,転送バッファを有する先読み
バッファ付きディスク装置を具備する計算機システム及
びこの種の計算機システムにおけるディスク・データの
制御方法に関するものである。
【0002】
【従来の技術】図3は計算機システムの全体構成を示す
図である。同図において、10はホスト計算機、11は
中央処理装置、12はDMAコントローラ、13は主記
憶、14はディスク・キャッシュ、20は先読みバッフ
ァ付きディスク装置、21は先読みバッファ、22はデ
ィスク装置をそれぞれ示している。
【0003】ホスト計算機10は、中央処理装置11や
DMAコントローラ12,主記憶13,ディスク・キャ
ッシュ14などを有している。ホスト計算機10には、
その他、ディスプレイ装置や、キーボード、プリンタ等
が接続される。先読みバッファ付きディスク装置20
は、先読みバッファ21やディスク装置22などを有し
ている。
【0004】ディスク・キャッシュ14は、先読みバッ
ファ付きディスク装置20と主記憶13の間に存在し、
先読みバッファ付きディスク装置20からのデータをそ
の中に保持できる構成となっている。もちろん、ディス
ク・キャッシュ14を使用せずに先読みバッファ付きデ
ィスク装置20からのデータを主記憶13へ直接転送す
ることも出来る。これらの制御はディスク制御プログラ
ムのDMAコントローラ12への指示によって行われ
る。
【0005】DMAコントローラ12は複数のチャンネ
ル(例えば、8チャンネル)を有しており、その内の一
つが主記憶13をアクセスするために使用され、その内
の一つがディスク・キャッシュ14をアクセスするため
に使用される。DMAコントローラ12と先読みバッフ
ァ付きディスク装置20との間のデータ転送は、例えば
SCSIインタフェースを介して行われる。
【0006】図4はディスク・キャッシュの構成を示す
図である。ディスク・キャッシュは、キャッシュ・メモ
リ,キャッシュ管理テーブル,アクセス履歴テーブルな
どから構成されている。キャッシュ・メモリは、1MB
ないし16MB程度の大きさを有しており、ディスク内
データの一部コピーを保存する。1ブロックはディスク
装置と同サイズ(256バイトまたは512バイト)で
ある。
【0007】キャッシュ管理テーブルは、1項目が数バ
イト(例えば2バイト)であり、キャッシュ・メモリと
1対1に対応しており、現在,キャッシュ・メモリの中
にディスクの何れの部分のデータが保持されているかを
示すテーブルである。アクセス履歴テーブルは、過去の
アクセス履歴を保持するテーブルである。詳細は後述す
る。
【0008】図5はディスク・キャッシュ内ブロック格
納位置を説明する図である。キャッシュ・メモリのデー
タの格納位置およびそれと1対1に対応しているキャッ
シュ管理テーブルの位置を決定する方式としては、ハッ
シュ方式が使用される。具体的に言うと、キャッシュ・
メモリは1MBないし16MB程度とディスクに比較し
てかなり小さいものなので、ディスク内データの或る一
部分しか格納できないが、或るディスクのブロック位置
(アドレス)が判明すると、一意にキャッシュの位置が
決定すると言う方式である。
【0009】動作としては、例えばキャッシュ・メモリ
が1MBであるとし、ディスクの1ブロックが512バ
イトであるとすると、1MB(1048576バイト)
÷512バイト=2048ブロック分のデータがキャッ
シュに格納できることになるが、この数のことをエント
リ数と言う。図5のようにキャッシュ内を、使用してい
くとする。同図において、数字はディスクのブロック・
アドレスを示す。つまり、ブロック0,ブロック204
8,ブロック4096,…はAの位置に格納される。同
様に、ブロック1,ブロック2049,…はBの位置に
格納され、ブロック2,ブロック2050,…はCの位
置に格納されるように、使用していくとする。これは、
ディスクのブロックXが与えられた場合、Xをエントリ
数(この場合2048)で割った余りによってaから何
段目かが決定するという方式である。
【0010】すなわち、X÷(エントリ数)=Y余りn
とすると、このnがaから何段目かを示す数になる。デ
ィスクのブロック・アドレスが2050の場合は、20
50÷2048=1余り2となり、アドレス2050の
ブロックは、キャッシュ・メモリのaから数えて2段目
のCの位置に格納される。アドレスが4096の場合
は、4096÷2048=2あまり0となり、アドレス
4096のブロックはキャッシュ・メモリのaから数え
て0段目のAの位置に格納される。このような方式をハ
ッシュ方式と言い、簡単なアルゴリズムでキャッシュの
格納位置を決定することが出来る。
【0011】図6は先読みバッファ付きディスク装置の
構成例を示す図である。同図において、20は先読みバ
ッファ付きディスク装置、21は先読みバッファ、22
はディスク装置、23はコントローラをそれぞれ示して
いる。先読みバッファ21は、256KBないし512
KB程度の大きさを有している。コントローラ23は、
例えばマイクロプロセッサから構成されている。
【0012】図7はディスク制御プログラムの制御フロ
ーを示す図である。先ず、ディスクからデータをリード
する場合について説明する。ソフトウェアから、ディス
ク・データのリード要求があった場合、ディスクの読取
り開始ブロック・アドレスとブロック数が渡される。こ
れに基づき、ディスク制御プログラムはキャッシュ管理
テーブルをサーチして、キャッシュ・メモリ内に該当デ
ータが存在するかどうかをチェックする。存在すればヒ
ットと言い、存在しなければミスヒットという。
【0013】ヒットの場合、キャッシュ・メモリからデ
ータを主記憶へ転送し、ディスク装置にはアクセスしな
い。これによってディスク装置を高速に見せている。ミ
スヒットの場合、アクセス履歴によって、シーケンシャ
ル・アクセス(順編成ファイルへのアクセス等が此れに
該当する)かどうかを判断し、シーケンシャルアクセス
の場合は先読み分を含めた分のリードを先読みバッファ
付きディスク装置に要求し、そうでなければ要求分のみ
のリードを先読みバッファ付きディスク装置に要求す
る。
【0014】先読みバッファ付きディスク装置から転送
されたデータは、ディスク・キャッシュの該当位置に格
納されると同時に要求分は主記憶へ転送される。その後
で、キャッシュ管理テーブルの更新(新たに先読みバッ
ファ付きディスク装置からキャッシュに転送されたデー
タに対して)が行われる。これで、一回のソフトウェア
からの起動が終了する。この後のソフトからの起動で、
先程と同じデータの要求があった場合、もしくはシーケ
ンシャル・アクセスで後続のデータの要求があった場合
は、キャッシュにヒットする可能性が高い。
【0015】次に、ディスクにデータをライトする場合
の動作について説明する。ライト時にはリードのように
ヒット/ミスヒットはない。ソフトウェアから主記憶デ
ータのディスクへのライト要求(格納指示)があった場
合、リードの場合と同様にディスクの書込み開始ブロッ
ク・アドレスとブロック数が渡される。これに基づき、
ディスク制御プログラムは、ディスク・キャッシュ上の
格納位置を決定し、主記憶上のデータをディスク・キャ
ッシュに転送すると同時に先読みバッファ付きディスク
装置にもデータを書き込むための処理を行う。両方の転
送が終了した時点でキャッシュ管理テーブルの該当項目
を更新する。これで、ソフトウェアからの一回のライト
起動が終了する。この後のソフトウェアからの起動で、
先ほどライトしたデータと同じデータのリード要求があ
った場合は、ディスク・キャッシュにヒットする可能性
が高い。
【0016】図8は従来のホスト側ディスク・キャッシ
ュの先読み動作を説明するための図である。同図におい
て、はディスク装置からキャッシュへの先読み分も含
めたリード、はディスク・キャッシュから主記憶への
要求分のみの転送、はディスク・キャッシュにおける
先読み分、は先読みバッファにおける先読み分をそれ
ぞれ示している。
【0017】いま、ソフトウェアからディスク・データ
のリード要求があり、ディスクの読取り開始ブロック・
アドレス=X、ブロック数=Y1,主記憶アドレス=Z
であったと仮定する。ホスト計算機10(実際にはディ
スク制御プログラム)は、このリード要求で指定された
データがディスク・キャッシュ14にあるか否かを調
べ、ない場合にはアクセス履歴を参照して、シーケンシ
ャル・アクセスか否かを調べる。シーケシンャル・アク
セスの場合には、先読み分をY2とし、開始ブロック・
アドレス=X、ブロック数=Y1+Y2をパラメータと
して持つリード・コマンドを先読みバッファ付きディス
ク装置20に送る。
【0018】先読みバッファ付きディスク装置20は、
リード・コマンドを受け取ると、リード・コマンドで指
定されたブロックが先読みバッファ21にあるか否かを
調べる。ある場合には、ブロック・アドレス=Xを先頭
とする(Y1+Y2)ブロックを先読みバッファ21か
ら読み出してホスト計算機10に送る。ホスト計算機1
0(実際にはDMAコントローラ12)は、ブロック・
アドレス=Xを先頭とする(Y1+Y2)ブロックをデ
ィスク・キャッシュ14に書き込み、ブロック・アドレ
ス=Xを先頭とするY1ブロックを主記憶13のアドレ
スZ以降の領域に書き込む。
【0019】リード・コマンドで指定されたデータが先
読みバッファ21にない場合は、先読みバッファ付きデ
ィスク装置20は、リード・コマンドで指定されたデー
タを含む所定数(例えば1000)のブロックをディス
ク装置22から読み出して先読みバッファ21に格納す
ると共に、ブロック・アドレス=Xを先頭とする(Y1
+Y2)ブロックを読み出してホスト計算機10に送
る。それ以後の動作は前述した通りである。
【0020】図9はディスク装置からデータをリードす
る場合のホスト計算機の処理を示す図である。先読みバ
ッファ付きディスク装置からデータをリードする場合、
ソフトウェアからは、 ディスクの読取り開始ブロック・アドレス ブロック数 主記憶のメモリ・アドレス の3つの情報が渡される。このうち、との情報は、
リード・コマンドのパラメータとして、先読みバッファ
付きディスク装置に渡される。先読みバッファ付きディ
スク装置から該当のデータがインタフェース・バスを介
してホスト計算機に流れて来る。このとき、の情報を
用いてDMAコントローラによって主記憶に展開する。
【0021】図10は先読みバッファ付きディスク装置
の先読みバッファの構造を示す図である。先読みバッフ
ァの全体のサイズは256KBないし512KB程度で
あり、これをセグメント数と呼ばれる分割数で分割して
保持している。セグメント数は通常は4ないし8程度で
あり、したがって、1セグメント当たり32ないし12
8KB程度と言うことになる。
【0022】この先読みバッファは、2ポート構成とな
っており、ディスク媒体から読み取って先読みバッファ
に格納するポートと、インタフェース・バスから外部へ
送出するポートとを持っており、媒体からデータを読取
りながら外部へ送出することが出来るようになってい
る。なお、どれかを上書きして使用することになるが、
どれを使用するかはLRU(Least Recentry Used
)という有名なアルゴリズムを使用して決定する。つ
まり、最も古い(最も以前の)アクセスで使用されたバ
ッファを潰して使用し、今度はそのバッファを最新のも
のとして登録しておくので、常になるべく新しいデータ
をバッファに保持することが出来る仕組みである。
【0023】1つの先読みバッファのサイズは32KB
ないし128KB程度であるが、32KBの場合を想定
する。ディスクの1ブロックのサイズを512バイトと
すると、32KB(32768バイト)÷512バイト
=64ブロック分のデータを1個の先読みバッファの中
に保持できることになる。図示しないが、各先読みバッ
ファに対応して管理テーブルが存在し、各管理テーブル
は、対応する先読みバッファの各ブロック格納域にどの
ブロック・アドレスのデータが格納されているかを示す
情報を保持している。
【0024】図11および図12はリード時の先読みバ
ッファ付きディスク装置の処理を示す図である。ホスト
からリード・コマンドが送られてくると、ブロック・ア
ドレスとブロック数が渡されるので、先読みバッファ付
きディスク装置内のコントローラは、ディスク媒体の該
当位置へヘッドを移動する(シークという)。そして、
目的のブロックを見つけて、データを先読みバッファの
一つへ格納していく。これと同時に、外部送出用のポー
トから外部へデータを送出していく。
【0025】このようにホスト計算機からのリード・コ
マンドに基づいて該当データを転送していくわけである
が、例えば、ホスト計算機の要求ブロックが10ブロッ
クだったと仮定する。1個の先読みバッファ(1セグメ
ント)は、64ブロック分のデータを保持できるわけで
あるから、ホスト計算機へのデータ転送が終了した後も
54ブロック分のデータを継続して先読みして、先読み
バッファに格納していく。その後のホスト・アクセスが
先程の後続データであれば、先読みバッファにヒットす
ると言う仕組みである。
【0026】先読み中にホストからの新たなリード・コ
マンドを受け取った場合は、図12のフロー中の最後の
☆印の箇所でチェックが入り、そのコマンドの要求デー
タが先程の後続データであればそのまま先読みバッファ
中に入りつつあるデータをホスト計算機へ転送し、後続
データでなければ先読み動作は速やかに中止して、新た
なリード・コマンドの処理を行う。これによって、性能
劣化を防いでいる。
【0027】図13および図14はシーケンシャル・ア
クセス判断処理を示す図である。図7の制御フローにお
いて、アクセス履歴を参照して、シーケンシャル・アク
セスか否かの判断を行っているが、過去16回までのア
クセス履歴を記憶しておくために、“アクセス履歴テー
ブル”と呼ばれるテーブルを持っている。これは、ソフ
トウェアからのリード指示が発行された場合、その開始
ブロック・アドレスとブロック数を加算したもの(4バ
イト)を16通り覚えておくもので、64バイトのテー
ブルとなっている。図13および図14はシーケンシャ
ル・アクセス判断処理のフローを示す。図示のアルゴリ
ズムを使用することによって、今回のアクセスがシーケ
ンシャルアクセスかどうかが、SEQフラグのON/O
FFによって判明する。さらに今回のアクセス状況が新
たにテーブルに追加されることになる。
【0028】図15はアクセス履歴テーブルの遷移の例
を示す図である。図15(a) は初期状態を示す。初期状
態では、アクセス履歴テーブルの各項目(行)には、F
FFFFFFFが格納されている。ディスクの最大容量
の関係上、FFFFFFFFはあり得ないため、この値
を設定している。00000000にすると、0000
0000が開始ブロックとなるアクセスが、常にシーケ
ンシャル・アクセスと誤認識されてしまう。
【0029】アクセス履歴テーブルが図15(a) の状態
の下でブロック00000000から10ブロックのリ
ード要求があった場合には、アクセス履歴テーブルの内
容は図15(b) のように変化する。シーケンシャル・ア
クセス判断のアルゴリズムを使用すると、テーブルの項
目内に00000000が存在しないため、シーケンシ
ャル・アクセスでないと判断される。最初のアクセスは
常にシーケンシャル・アクセスでないと判断されるが、
最初だけなので、頻度は最小限である。
【0030】アクセス履歴テーブルが図15(b) の状態
の下でブロック00000010から10ブロックのリ
ード要求があった場合には、アクセス履歴テーブルの内
容は図15(c) のように変化する。アクセス履歴テーブ
ルの項目内に00000010と言う項目が存在するた
め、シーケシンシャル・アクセスと判断される。図15
(b) のテーブル状態から00000010の箇所が更新
されて、00000010+10=00000020と
なり、図15(c) のようになる。
【0031】その後、様々なアクセスがあって、アクセ
ス履歴テーブルの内容が図15(d)のようになったと仮
定する。アクセス履歴テーブルが図15(d) の状態の下
でブロック00222222から8ブロックのリード要
求があった場合には、アクセス履歴テーブルの内容は図
15(e) のように変化する。アクセス履歴テーブルの項
目内に00222222と言う項目が存在するため、シ
ーケンシャル・アクセスと判断される。図15(d) のテ
ーブルの状態から00222222の箇所が更新され
て、00222222+8=0022222Aとなり、
且つその項目が先頭(最新箇所)となり、古い項目は後
ろにずれる。
【0032】アクセス履歴テーブルが図15(e) の状態
の下でブロック0000ABCDから2ブロックのリー
ド要求があった場合には、アクセス履歴テーブルの内容
は図15(f) のように変化する。アクセス履歴テーブル
の項目内に0000ABCDと言う項目が存在しないた
め、シーケンシャル・アクセスでないと判断される。図
15(e) のテーブル項目に0000ABCD+2=00
00ABCFの項目が追加され、且つ其の項目が先頭
(最新箇所)となり、古い項目が後ろにずれる。このと
き、最も古い00000020が追い出される(アクセ
ス履歴テーブルから削除される)。
【0033】従来の技術では、ディスク・キャッシュの
中に、) アクセス要求のあったブロックのデータを保持
する。(ソフトの“データの再使用”と言う性質を利
用)) アクセス要求のあったブロックの後続データを先
読みして保持する。(ソフトの" 参照の局所性" と言う
性質を利用)などの動作を行い、ディスク装置を高速に
見せている。しかし、最近のディスク装置は、装置内に
先読みバッファを装備しており,) の機能は意味がなく
なっている。
【0034】
【発明が解決しようとする課題】上述した従来の技術に
は、以下のような問題点がある。 (a) 以降のリード要求で、ディスク・キャッシュ内の先
読みのデータがヒットされることが予測されるが、この
ときディスク・キャッシュのデータを主記憶へ転送する
時間と、先読みバッファ付きディスク装置の先読みバッ
ファのデータをホスト側キャシュを介さずに主記憶へ転
送する時間は同等であり、ディスク・キャッシュの効果
はなくなる。 (b) そればかりか、先読みバッファ付きディスク装置か
らの先読みデータの転送でディスク・キャッシュ内の旧
データが消失してしまうため、ディスク・キャッシュの
使用効率が悪く、結果的に全体を通したヒット率が低下
する。すなわち、シーケンシャル・アクセス時は、ホス
ト側キャッシュがあってもなくても性能は変わらない。
また、ディスク装置側からの転送速度が高速になると、
ディスク・キャッシュが付加されている方が遅くなると
言う性能逆転現象が発生する。
【0035】次にシーケンシャル・アクセスでない場合
を考える。 (1) ディスク装置側のバッファが主に先読み用に考えら
れていること。 (2) (ホスト側キャッシュ容量)>(ディスク側先読み
バッファ容量)であること。 (3) ディスク・アクセス時は、どのような場合でも、先
読みバッファ付きディスク装置の先読みバッファを使用
してしまうこと。 等の理由により先読みバッファのデータ保持性は低いと
言える。すなわち、シーケンシャル・アクセス以外の場
合は、ディスク装置側の先読みバッファにキャッシュと
しての効果は期待できない。なお、シーケンシャル・ア
クセスの場合は、一度使用されたデータは二度と使用し
ない場合が多いので、データ保持性は低くても問題はな
い。
【0036】本発明は、この点に鑑みて創作されたもの
であって、データ転送を効率良く行い得るとともに、キ
ャッシュ・ヒット率を向上できるようになった計算機シ
ステム及びこの種の計算機システムにおけるディスク・
データの制御方法を提供することを目的としている。
【0037】
【課題を解決するための手段】図1は本発明の原理説明
図である。請求項1の計算機システムは、 ディスクに対
するリード要求で指定されたデータがディスク・キャッ
シュに存在する場合にはディスク・キャッシュから当該
データを読み出して主記憶に格納し、当該データがディ
スク・キャッシュに存在しない場合にはリード要求を先
読みバッファ付きディスク装置に送るための処理を行う
ディスク制御手段を持つホスト計算機と、 ホスト計算機
からのリード要求を受け取ったとき当該リード要求で指
定されたデータが転送バッファの中に存在するか否かを
調べ、当該データが転送バッファの中に存在する場合に
は当該データを転送バッファから読み出してホスト計算
機に送り、当該データが転送バッファの中に存在しない
場合には当該データをディスク装置から読み出してホス
ト計算機に送ると共に先読みデータを転送バッファに格
納する先読みバッファ付きディスク装置とを具備する計
算機システムであって、 上記ディスク制御手段は、 リー
ド要求を先読みバッファ付きディスク装置に送る際、当
該リード要求がシーケンシャル・アクセスのリード要求
か否かを判定し、 シーケンシャル・アクセスと判定され
たリード要求に基づくリード・データが先読みバッファ
付きディスク装置から送られてきた時は当該リード・デ
ータをディスク・キャッシュに格納することなく主記憶
に格納するための処理を行い、 非シーケンシャル・アク
セスと判定されたリード要求に基づくリード・データが
先読みバッファ付きディスク装置から送られてきた時は
当該リード・データをディスク・キャッシュに格納する
と共に主記憶に格納するための処理を行うことを特徴と
するものである。
【0038】請求項2のディスク・データの制御方法
は、 ディスクに対するリード要求で指定されたデータが
ディスク・キャッシュに存在する場合にはディスク・キ
ャッシュから当該データを読み出して主記憶に格納し、
当該データがディスク・キャッシュに存在しない場合に
はリード要求を先読みバッファ付きディスク装置に送る
ホスト計算機と、 ホスト計算機からのリード要求を受け
取ったとき当該リード要求で指定されたデータが転送バ
ッファの中に存在するか否かを調べ、当該データが転送
バッファの中に存在する場合には当該データを転送バッ
ファから読み出してホスト計算機に送り、当該データが
転送バッファの中に存在しない場合には当該データをデ
ィスク装置から読み出してホスト計算機に送ると共に先
読みデータを転送バッファに格納する先読みバッファ付
きディスク装置とを具備する計算機システムにおいて、
リード要求を先読みバッファ付きディスク装置に送る
際、当該リード要求がシーケンシャル・アクセスのリー
ド要求か否かを判定し、 シーケンシャル・アクセスと判
定されたリード要求に基づくリード・データが先読みバ
ッファ付きディスク装置からホスト計算機に送られてき
た時には当該リード・データをディスク・キャッシュに
格納することなく主記憶に格納し、 非シーケンシャル・
アクセスと判定されたリード要求に基づくリード・デー
タが先読みバッファ付きディスク装置からホスト計算機
に送られてきた時には当該リード・データをディスク・
キャッシュに格納すると共に主記憶に格納することを特
徴とするものである。
【0039】
【作用】図1(a) を参照して、シーケンシャル・アクセ
ス時の動作について説明する。先読みバッファ付きディ
スク装置は、ホスト計算機からのリード要求を受け取る
と、ディスク装置から要求データDと,それに続く先読
分のデータD′を読み出し、要求データDと先読み分の
データD′を転送バッファに格納し、要求データDをホ
スト計算機に転送する。ホスト計算機は、シーケンシャ
ル・アクセス時には要求データDをディスク・キャッシ
ュ14に格納することなく、受け取った要求データDを
主記憶に格納する。
【0040】図1(b) を参照して、非シーケンシャル・
アクセス時の動作について説明する。先読みバッファ付
きディスク装置は、ホスト計算機からのリード要求を受
け取ると、ディスク装置から要求データDと,それに続
く先読分のデータD′を読み出し、要求データDと先読
み分のデータD′を転送バッファに格納し、要求データ
Dをホスト計算機に転送する。ホスト計算機は、非シー
ケンシャル・アクセス時には要求データDをディスク・
キャッシュに格納すると共に、要求データDを主記憶に
格納する。
【0041】ディスク・キャッシュにリード要求で指定
されたデータが存在するか否かの判定やリード要求がシ
ーケンシャル・アクセスのリード要求か否かの判定、シ
ーケンシャル・アクセスと判定されたリード要求に基づ
くデータが先読みバッファ付きディスク装置から送られ
て来た時に当該データを主記憶に格納する処理、非シー
ケンシャル・アクセスと判定されたリード要求に基づく
データが先読みバッファ付きディスク装置から送られて
来た時に当該データをディスク・キャッシュに格納する
と共に主記憶に格納する処理などは、ディスク制御手段
の制御の下で行われる。
【0042】本発明では、シーケンシャル・アクセス時
にはディスク・キャッシュにデータを格納せず、シーケ
ンシャル・アクセス以外の時には要求分のみをディスク
・キャッシュに格納しているので、ディスク・キャッシ
ュ内の旧データの消失を最小限にすることができ、ディ
スク・キャッシュのデータはその後のシーケンシャル・
アクセス時でも消失しない。また、数回のディスク・ア
クセス後、同一のデータの再要求があった場合には、こ
のディスク・キャッシュにより、ヒットが期待できる。
もし、このようなディスク・キャッシュが無く、先読み
バッファ付きディスク装置内の転送バッファのみでキャ
ッシュを構成した場合は、数回のディスク・アクセス
後、同一データの再要求があった場合は、数回のディス
ク・アクセス中にデータが消えてしまうので、ヒットが
期待できない。
【0043】
【実施例】図2は本発明における動作フローを示す図で
ある。本発明を実施するためのハードウェア構成は、従
来例と同じである。本発明と従来例の相違は、ディスク
制御プログラムの一部が相違するだけである。すなわ
ち、図7において、「該当アクセス履歴更新」→「先読
み分を含めてディスク起動.データはキャッシュに格
納」→「キャッシュ管理テーブル更新」→「要求分のみ
キャッシュから主記憶転送」と言う処理の流れがある
が、本発明はこの処理の流れの部分を変更したものであ
る。 ステップS1では、ソフトウェアからのリード要求を受
け取る。 ステップS2では、過去何回かのアクセス履歴を参照す
る。 ステップS3では、シーケンシャル・アクセスか否かを
調べる。YESの場合はステップS4に進み、NOの場
合はステップS7に進む。
【0044】 ステップS4では、該当アクセス履歴を更新する。 ステップS5では、ディスクにリード起動を送る。この
場合は、ホスト側のディスク・キャッシュは使用しな
い。 ステップS6では、ディスクからのデータをそのまま主
記憶へ転送する。
【0045】 ステップS7では、アクセス履歴を追加する。 ステップS8では、ディスクにリード起動を送る。 ステップS9では、ソフトからの要求分のみキャッシュ
にデータ格納する。 ステップS10では、キャッシュから主記憶へデータ転
送する。
【0046】
【発明の効果】以上の説明から明らかなように、本発明
によれば、キャッシュ・ヒット率を向上できると共に、
効率よくデータを転送することが可能となる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明における動作フローを示す図である。
【図3】計算機システムの全体を示す図である。
【図4】ディスク・キャッシュの構成を示す図である。
【図5】ディスク・キャッシュ内ブロック格納位置を説
明するための図である。
【図6】先読みバッファ付きディスク装置の構成を示す
図である。
【図7】ディスク制御プログラムの制御フローを示す図
である。
【図8】従来のホスト側ディスク・キャッシュの先読み
動作を説明する図である。
【図9】ディスク装置からデータをリードする場合のホ
スト計算機の処理を示す図である。
【図10】ディスク装置内の先読みバッファの構造を示
す図である。
【図11】リード時のディスク装置の処理を示す図であ
る。
【図12】リード時のディスク装置の処理(続き)を示
す図である。
【図13】シーケンシャル・アクセス判断処理を示す図
である。
【図14】シーケンシャル・アクセス判断処理(続き)
を示す図である。
【図15】アクセス履歴テーブルの遷移の例を示す図で
ある。
【符号の説明】
10 ホスト計算機 11 中央処理装置 12 DMAコントローラ 13 主記憶 14 ディスク・キャッシュ 20 先読みバッファ付きディスク装置 21 先読みバッファ 22 ディスク装置 23 コントローラ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 12/08 - 12/12 G06F 3/06

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 ディスクに対するリード要求で指定され
    たデータがディスク・キャッシュに存在する場合にはデ
    ィスク・キャッシュから当該データを読み出して主記憶
    に格納し、当該データがディスク・キャッシュに存在し
    ない場合にはリード要求を先読みバッファ付きディスク
    装置に送るための処理を行うディスク制御手段を持つホ
    スト計算機と、 ホスト計算機からのリード要求を受け取ったとき当該リ
    ード要求で指定されたデータが転送バッファの中に存在
    するか否かを調べ、当該データが転送バッファの中に存
    在する場合には当該データを転送バッファから読み出し
    てホスト計算機に送り、当該データが転送バッファの中
    に存在しない場合には当該データをディスク装置から読
    み出してホスト計算機に送ると共に先読みデータを転送
    バッファに格納する先読みバッファ付きディスク装置と
    を具備する計算機システムであって、 上記ディスク制御手段は、 リード要求を先読みバッファ付きディスク装置に送る
    際、当該リード要求がシーケンシャル・アクセスのリー
    ド要求か否かを判定し、 シーケンシャル・アクセスと判定されたリード要求に基
    づくリード・データが先読みバッファ付きディスク装置
    から送られてきた時は当該リード・データをディスク・
    キャッシュに格納することなく主記憶に格納するための
    処理を行い、 非シーケンシャル・アクセスと判定されたリード要求に
    基づくリード・データが先読みバッファ付きディスク装
    置から送られてきた時は当該リード・データをディスク
    ・キャッシュに格納すると共に主記憶に格納するための
    処理を行うことを特徴とする計算機システム。
  2. 【請求項2】 ディスクに対するリード要求で指定され
    たデータがディスク・キャッシュに存在する場合にはデ
    ィスク・キャッシュから当該データを読み出して主記憶
    に格納し、当該データがディスク・キャッシュに存在し
    ない場合にはリード要求を先読みバッファ付きディスク
    装置に送るホスト計算機と、 ホスト計算機からのリード要求を受け取ったとき当該リ
    ード要求で指定されたデータが転送バッファの中に存在
    するか否かを調べ、当該データが転送バッファの中に存
    在する場合には当該データを転送バッファから読み出し
    てホスト計算機に送り、当該データが転送バッファの中
    に存在しない場合には当該データをディスク装置から読
    み出してホスト計算機に送ると共に先読みデータを転送
    バッファに格納する先読みバッファ付きディスク装置と
    を具備する計算機システムにおいて、 リード要求を先読みバッファ付きディスク装置に送る
    際、当該リード要求がシーケンシャル・アクセスのリー
    ド要求か否かを判定し、 シーケンシャル・アクセスと判定されたリード要求に基
    づくリード・データが先読みバッファ付きディスク装置
    からホスト計算機に送られてきた時には当該リード・デ
    ータをディスク・キャッシュに格納することなく主記憶
    に格納し、 非シーケンシャル・アクセスと判定されたリード要求に
    基づくリード・データが先読みバッファ付きディスク装
    置からホスト計算機に送られてきた時には当該リード・
    データをディスク・キャッシュに格納すると共に主記憶
    に格納することを特徴とするディスク・データの制御方
    法。
JP5220092A 1993-09-03 1993-09-03 計算機システム及びディスク・データの制御方法 Expired - Lifetime JP2943896B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5220092A JP2943896B2 (ja) 1993-09-03 1993-09-03 計算機システム及びディスク・データの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5220092A JP2943896B2 (ja) 1993-09-03 1993-09-03 計算機システム及びディスク・データの制御方法

Publications (2)

Publication Number Publication Date
JPH0773107A JPH0773107A (ja) 1995-03-17
JP2943896B2 true JP2943896B2 (ja) 1999-08-30

Family

ID=16745806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5220092A Expired - Lifetime JP2943896B2 (ja) 1993-09-03 1993-09-03 計算機システム及びディスク・データの制御方法

Country Status (1)

Country Link
JP (1) JP2943896B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3524337B2 (ja) 1997-07-25 2004-05-10 キヤノン株式会社 バス管理装置及びそれを有する複合機器の制御装置
JP5094193B2 (ja) 2007-04-16 2012-12-12 株式会社日立製作所 記憶システム及びその制御方法
JP4391548B2 (ja) 2007-04-20 2009-12-24 株式会社メディアロジック デバイスドライバ
JP2009093225A (ja) * 2007-10-03 2009-04-30 Nec Corp ストレージ制御装置、方法及びプログラム並びにストレージ装置
US8433854B2 (en) * 2008-06-25 2013-04-30 Intel Corporation Apparatus and method for cache utilization
JP2011008570A (ja) * 2009-06-26 2011-01-13 Buffalo Inc ストレージ装置、情報処理システム、およびコンピュータプログラム
JP5117608B1 (ja) * 2011-09-30 2013-01-16 株式会社東芝 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法

Also Published As

Publication number Publication date
JPH0773107A (ja) 1995-03-17

Similar Documents

Publication Publication Date Title
US6216199B1 (en) Hardware mechanism for managing cache structures in a data storage system
US4489378A (en) Automatic adjustment of the quantity of prefetch data in a disk cache operation
EP0077453B1 (en) Storage subsystems with arrangements for limiting data occupancy in caches thereof
US4490782A (en) I/O Storage controller cache system with prefetch determined by requested record's position within data block
US8935479B2 (en) Adaptive cache promotions in a two level caching system
JP3183993B2 (ja) ディスク制御システム
US8762650B2 (en) Prefetching tracks using multiple caches
JP3399520B2 (ja) 圧縮メイン・メモリの仮想非圧縮キャッシュ
US9921973B2 (en) Cache management of track removal in a cache for storage
JP2000090009A (ja) キャッシュメモリにおいてキャッシュラインを置き換えるための方法および装置
JPS61156346A (ja) 記憶階層の先取り装置
JP2007011523A (ja) データの先読み方法及び計算機システム
JPH07334426A (ja) 情報記録再生装置およびデータキャッシュ方法
EP0066766B1 (en) I/o controller with a dynamically adjustable cache memory
JP2943896B2 (ja) 計算機システム及びディスク・データの制御方法
JP2001188658A (ja) ディスク制御システムおよびデータ再配置方法
JP2852232B2 (ja) コンピュータ
JPH0415493B2 (ja)
JP3335919B2 (ja) ディスクキャッシュ制御装置
JP3083530B2 (ja) キャッシュメモリのデータ管理方法およびキャッシュ制御装置
JP2854668B2 (ja) ディスク・キャッシュ制御方式
JP2854667B2 (ja) ディスク・キャッシュ制御方式
JP2636470B2 (ja) データ転送パス選択方法
JP3435176B2 (ja) 磁気ディスク装置
JPH05257810A (ja) 情報記録再生装置および情報記録方法