JPH08328959A - ディスクキャッシュ制御装置 - Google Patents

ディスクキャッシュ制御装置

Info

Publication number
JPH08328959A
JPH08328959A JP7134042A JP13404295A JPH08328959A JP H08328959 A JPH08328959 A JP H08328959A JP 7134042 A JP7134042 A JP 7134042A JP 13404295 A JP13404295 A JP 13404295A JP H08328959 A JPH08328959 A JP H08328959A
Authority
JP
Japan
Prior art keywords
cache
data
block
disk
write
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
JP7134042A
Other languages
English (en)
Inventor
Atsushi Matsushita
淳 松下
Takeshi Fukazawa
雄 深沢
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP7134042A priority Critical patent/JPH08328959A/ja
Publication of JPH08328959A publication Critical patent/JPH08328959A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 本発明は、ストアインのディスクキャッシュ
装置において、キャッシュ判定を高速化し、ストアイン
によるペナルティを防ぐことを目的とする。 【構成】 ホスト計算機1からのアクセス要求があった
ブロックに対する構造チェックを高速でおこなう専用回
路、及びキャッシュバッファがライトデータで飽和して
しまった場合にペナルティを回避するための回路を内蔵
したキャッシュ判定回路10と、キャッシュバッファ上
のライトデータをディスク装置に2種類の方式で非同期
ライトバックする非同期ライトバック回路18によって
構成される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はディスク装置の性能向上
を目的としたディスクキャッシュ制御方式に関する。
【0002】
【従来の技術】ディスク制御装置におけるキャッシュバ
ッファを使用したブロックバッファリングは、ディスク
装置との入出力をブロック単位に行い、ディスク装置上
のデータの一部をキャッシュバッファ上でブロック単位
で管理するものである。ブロックバッファリングでは、
ブロック構造を用いてキャッシュバッファを制御し、そ
のブロック構造は、ディスクアドレスとブロックの状態
を示す情報から構成されている。そして、ブロックの状
態は、キャッシュバッファ上における該ブロックデータ
が有効か無効か(以下、バリッド・フラグと言う)を示
す情報と、該ブロックデータの内容がディスク装置上の
データ内容と異なっている(以下、ダーティ・ブロック
と言う)かどうかを示す情報により管理される。ホスト
計算機からのデータ読み取り要求においては、上述した
ブロック構造を用いてまず、キャッシュバッファのデー
タを検索し、該当するブロックが存在すれば(以下、キ
ャッシュヒットと言う)ディスク装置に対して入出力要
求を行うことなく、直接キャッスバッファの内容をホス
ト計算機に転送する。一方、該当ブロックが存在しなけ
れば(以下、ミスヒットと言う)、ディスク装置に対し
て入出力要求を実行し、キャッシュバッファのミスヒッ
ト位置にデータを読み出す(以下、これをステージング
と言う)。その後、ホスト計算機から要求のあった全て
のブロックがヒットとなった時点で、キャッスバッファ
の内容をホスト計算機に転送する。
【0003】以上、概説した従来技術によるキャッシュ
動作を図32乃至図36のフローチャートに基づいて説
明する。図32において、ホスト計算機からデータ読み
取り要求を受け付けると、ステップ100としてコマン
ドの中から転送ブロック長を取り出しブロックカウンタ
にセットする。 その後、転送要求のあった全てのブロ
ックがキャッシュヒットしているか否かをブロック単位
で判定・記録するため、ステップ101で単一ブロック
でのヒット/ミスヒット判定を実施し、ヒットで有れば
ステップ102でヒットコードを判定結果テーブルに保
管する。また、ミスヒットであればステップ103に移
行し、ミスヒットコードを判定結果テーブルに保管す
る。次にステップ104で、ブロックカウンタ分の判定
が完了したかを確認し、未判定ブロックがある場合には
ステップ105をへて次のブロック判定となる。この様
にして、転送要求分のヒット/ミスヒット判定が完了す
るとステップ106へ移行する。
【0004】従来よりキャッシュでは、cache p
ollutionを防ぐために、キャッシュが処理する
データの大きさには上限を設けるのが一般的である。こ
のため、図32において、ホスト計算機からデータ読み
取り要求を受け付けると、キャッシュの上限を越えた読
み出し要求か否かを判断(ステップ106)し、上限を
越えていた場合は、ディスク装置からの読み出しデータ
をキャッシュバッファに書き込まずに直接ホスト計算機
へ転送を行う。 これを非ステージングと言う。他方、
上限を越えていない場合は、ステージング処理となるた
め図32のステップ108へ移行し、ステップ101か
らステップ104で保管した各ブロックごとのヒット/
ミスヒット判定結果を取り出し、ステップ109ではミ
スヒットであればディスク装置から指定位置のデータを
キャッシュ・バッファの該当ブロック位置へステージン
グ(ステップ110)する。 一方、ブロックヒットの
場合には、必要なデータが既にキャッシュバッファ上に
ステージングされているため、ディスク装置からデータ
を読み出すことなく次の処理へ移行する。ステップ11
1では、転送要求の有った全てのブロックに対するデー
タをキャッシュバッファにステージング完了したかを確
認し、未完了で有ればステップ112を経て再度次のブ
ロックに対する処理へと移行し、完了していた場合には
ステップ113としてキャッシュバッファのデータを、
ホスト計算機へ転送する(ステップ113)。
【0005】ホスト計算機から上限を越えた読み出し要
求がなされた場合には、図32のステップ106から図
33のステップ200へ移行する。ステップ200は、
図32のステップ108と同様に図35のステップ10
1からステップ104で保管した判定結果の処理を実施
する。その後、ブロック単位でのキャッシュのヒット/
ミスヒット判定確認を実施(ステップ201)し、ヒッ
トであればステップ202としてディスク装置に入出力
要求をすることなく、キャッシュ・バッファの内容を該
当ブロックデータとしてホスト計算機に転送する。
【0006】ミスヒットであれば、ステップ203でデ
ィスク装置に対して入出力要求を行い、ディスク装置か
らの読み出しデータを該当ブロックデータとしてホスト
計算機に転送する。この様にしてヒット/ミスヒットに
対応したブロック単位のデータ転送を実施した後、ステ
ップ204で転送要求分のブロック転送が完了している
か否かを確認する。未転送ブロックがある場合にはステ
ップ205をへて再びステップ200へ戻り、転送が完
了していた場合には読み出し処理終了となる。
【0007】ディスクキャッシュには、リードデータの
みをキャッシュ上に格納し、ライトでのアクセスでヒッ
トした場合はキャッシュ上のヒットしたブロックを無効
化するリードキャッシュと、ライトデータもキャッシュ
上に格納するライトキャッシュがある。またライトキャ
ッシュには、ライトデータをキャッシュバッファ上に格
納する時にディスク装置の内容も同時に書き換えるライ
トスルーと、ライトデータをキャッシュバッファ上にの
み格納するストアインがある。ストアインはライトデー
タをキャッシュ上に『書き捨て』するので、リードキャ
ッシュとライトスルーに比べて、ホスト計算機のアクセ
スと同期したディスク装置起動が少ないことが特徴であ
る。
【0008】キャッシュ上のライトデータは、ホスト計
算機からの別途アクセスにおいてミスヒットが発生した
時に、このアクセスのために新たなブロックをキャッシ
ュ上に割り当てる必要性が生じ、ライトデータを含むの
ブロック(ダーティブロック)がリプレースの対象にさ
れる時に初めてディスク装置へ書き戻される。これをラ
イトバックと呼ぶ。しかし、このような事態が発生する
と、ホスト計算機からのアクセス要求とは直接関係なく
ディスク装置の起動が発生してしまい、結果としてホス
ト計算機に対する応答が遅くなってしまうので、従来は
リプレースの対象になる前に、ホスト計算機のアクセス
と同期しないように非同期ライトバック処理を実行して
おくことによって、キャッシュバッファ上のデータとデ
ィスク装置のデータの整合性を取る方法が取られてい
た。
【0009】さらに、従来における非同期ライトバック
方法としては、例えば特開平5−303528号公報に
示されたキャッシュバッファ上のダーティブロックの数
を監視し、その増減によって非同期ライトバックの間隔
を変更するといったものがあった。また、特開平6−2
59328号公報に示されているように、ホスト計算機
からディスク装置に対してアクセスが行われていない期
間は、終始非同期ライトバックを行なうというものがあ
った。
【0010】次に、従来のライトアクセス時の動作フロ
ーチャートの例を図34に示す。ステップ401で、ラ
イトコマンドによるアクセス対象ブロックがキャッシュ
バッファ上にあるか否かのヒット判定を行なう。ここで
アクセス対象ブロックが全てヒットしている場合は、ス
テップ408でキャッシュストア処理(キャッシュバッ
ファ上の該当ブロックに上書き)を行って終了する。一
部のブロック、または全ブロックがミスヒットしている
場合には、キャッシュバッファ上に格納するエリアをス
テップ402で決定する。次いで、ステップ403で、
格納するエリア内のダーティブロックによる無効化によ
りライトバック発生の有無を確認する。ライトバックが
発生しない場合は、ステップ408のキャッシュストア
処理をして終了する。一方、ライトバックが発生する場
合は、リプレースのためのライトバック処理を必要回数
繰返してエリアを確保した後、ステップ408のキャッ
シュストア処理を行なう。
【0011】次に、従来例におけるリードアクセス時の
動作フローチャートの例を図35に示す。ステップ50
1で、リードコマンドによるアクセス対象ブロックがキ
ャッシュバッファ上にあるかどうかのヒット判定を行な
う。ここでアクセス対象ブロックが全てヒットしている
場合は、ステップ506のキャッシュリード処理を実行
して終了する。一方、一部のブロック、または全ブロッ
クがミスヒットしている場合には、キャッシュバッファ
上に格納するエリアをステップ502で決定する。ステ
ップ503で格納対象エリア内のダーティブロックの有
無によりライトバックの発生の有無を判定する。ライト
バックが生じない場合には、ステップ505でステージ
ング処理をした後ステップ506のキャッシュリード処
理を行って終了する。一方、ライトバックが発生する場
合はリプレースのためのライトバックを必要回数繰返し
てエリアを確保した後、ステップ505のステージング
処理を実行してからステップ506のキャッシュリード
処理を行なう。
【0012】
【発明が解決しようとする課題】従来のディスクキャッ
シュ制御装置は、以上のようにして実現されていたの
で、キャッシュのヒット・ミスヒットの判定処理と該判
定結果によるデータ転送処理がシリアライズされていた
ためデータ転送起動のためのオーバヘッド時間がキャッ
シュ制御処理上に現れてくるために効率良いシステムを
実現出来ないという問題点があった。
【0013】また、ホスト計算機からのデータ読み取り
要求に対してキャッシュバッファにステージングを行う
場合、キャッシュバッファに更新データを含むブロック
(ダーティー・ブロック)が不連続な位置で存在してい
ると、ディスク装置からの読み出し処理では、このダー
ティブロックを飛ばして行う必要がある。このため、一
連の連続したデータアクセスであるにも係わらずキャッ
シュバッファにステージングする場合には、不連続なデ
ータとしてディスク装置に対して複数回の起動を発行す
る必要が生じ、結果として起動のためのオーバヘッドあ
るいはディスク回転待ち等の発生によりデータ転送に多
くの時間を費やし、読み出し時間の保証が出来ないとい
う問題点があった。
【0014】また、あるセット内のダーティブロック量
が多くなり飽和すると、キャッシュミスヒット時のリプ
レースにおいて必ずライトバック処理が発生しホスト計
算機に対する応答時間が長くなってしまうという問題点
があった。
【0015】さらに、ライトキャッシュにおいては、該
データをキャッシュバッファに置くに当たってライトバ
ックが発生する可能性があるが、このリプレースのため
のライトバックのために複数回のディスク起動が発生す
る場合には、ライトキャッシュによる効果が全く期待出
来ないという問題点があった。
【0016】加えて、ホスト計算機からのリードアクセ
スにおいても、リプレースによるライトバックのための
ディスク起動が何回も発生する場合には、キャッシュの
効果を期待出来ないという問題点があった。
【0017】この発明は上記のような問題点を解決する
ためになされたもので、キャッシュ判定処理とデータ転
送処理を並行して処理し、またキャッシュバッファ上で
ダーティブロックが不連続に存在するような場合におい
ても連続データとして必要なデータを読み出すことがで
きるようにすることで高速、且つ効率のよいディスクキ
ャッシュ制御装置を提供することを目的とする。さら
に、非同期処理によりキャッシュバッファ内のダーティ
ブロック量を調節し、キャッシュブロックのリプレース
によるライトバック処理によるディスク起動を抑えるこ
とにより、システム性能の良いディスクキャッシュ制御
装置を提供することを目的とする。
【0018】
【課題を解決するための手段】第1の発明に係わるディ
スクキャッシュ制御装置は、ストアインで、且つダイレ
クトマッピン方式のディスクキャッシュ制御装置におい
て、ホスト計算機からのライトデータ及びディスク装置
からのステージングデータを一次元配列形式のブロック
単位で格納しておくキャッシュバッファと、前記キャッ
シュバッファ上に指定されたデータブロックが存在する
か否かをブロック単位で判定するキャッシュ判定回路
と、前記キャッシュバッファと同一ブロック構成を有
し、キャッシュバッファを構成する各ブロックにデータ
が書き込まれているか否かを示すバリッド・フラグとキ
ャッシュブロックデータ内容とディスク装置内の対応す
るデータが一致しているか否かを示すダーティフラグと
キャッシュブロックデータのディスク装置上におけるデ
ータ位置を示すアドレス情報から成るステータステーブ
ルと、前記キャッシュブロック内におけるデータを指定
するデータカウンタと、前記データカウンタからの桁上
がり信号によりカウントアップされ前記キャッシュブロ
ック及び前記ステータステーブルをブロック単位で指定
するブロックカウンタと、前記ブロックカウンタの値を
前記キャッシュ判定回路からのラッチ信号により一時保
存するカウンタラッチを設けることによりキャッシュ判
定動作と前ブロックに対するデータ転送を並行して実行
するようにしたものである。
【0019】第2の発明に係わるディスクキャッシュ制
御装置は、ストアインで且つセットアソシエイティブ方
式のディスクキャッシュ制御装置において、ホスト計算
機からのライトデータ及びディスク装置からのステージ
ングデータをブロック単位でセットとウェイによる二次
元配列形式で格納しておくキャッシュバッファと、前記
キャッシュバッファ上に指定されたデータブロックが存
在するか否かをブロック単位で判定するキャッシュ判定
回路と、前記キャッシュバッファと同一のブロック構成
を有し、キャッシュバッファを構成する各ブロックにデ
ータが書き込まれているか否かを示すバリッド・フラグ
とキャッシュバッファ上のデータブロックの内容とディ
スク装置内のデータが一致しているか否かを示すダーテ
ィ・フラグとキャッシュブロックデータのディスク装置
上におけるデータ位置を示すアドレス情報から成るステ
ータステーブルと、前記キャッシュブロック内における
データを指定するデータカウンタと、前記キャッシュブ
ロック及び前記ステータステーブルを二次元配列のセッ
ト単位で指定し前記データカウンタからの桁上がり信号
によりカウントするブロックカウンタと、前記キャッシ
ュブロック及び前記ステータステーブルを二次元配列の
ウェイ単位で指定しマイクロプロセッサからの指示でカ
ウントするウェイカウンタと、前記ブロックカウンタと
前記ウェイカウンタの値をキャッシュ判定回路からのラ
ッチ信号により一時保存するカウンタラッチを設けるこ
とによりキャッシュ判定動作と前ブロックに対するデー
タ転送を並行して実行するようにしたものである。
【0020】第3の発明は、第1の発明におけるディス
クキャッシュ制御装置において、ホスト計算機から連続
した複数ブロックの読み出し要求を受け前記キャッシュ
バッファへのステージング動作を行う際に、キャッシュ
バッファに対するキャッシュバッファ書き込み許可信号
をブロック単位で制御するメモリ制御回路を設けるよう
にしたものである。
【0021】第4の発明は、第2の発明におけるディス
クキャッシュ制御装置において、ホスト計算機から連続
した複数ブロックの読み出し要求を受け前記キャッシュ
バッファへのステージング動作を行う際に、キャッシュ
バッファに対するキャッシュバッファ書き込み許可信号
をブロック単位で制御するメモリ制御回路を設けるよう
にしたものである。
【0022】第5の発明は、第1の発明におけるディス
クキャッシュ制御装置において、ディスク装置からの読
み出しデータとキャッシュバッファからの読み出しデー
タのいづれかを選択してホスト計算機に送るためのデー
タマルチプレクサと、前記ステータステーブルの内容に
基づいてデータマルチプレクサの制御信号を生成するス
イッチ制御回路を備えることにより連続した複数ブロッ
クの読み出し要求を受けた場合においてステージング動
作を行うことなくホスト計算機へデータ転送するように
したものである。
【0023】第6の発明は、第2の発明におけるディス
クキャッシュ制御装置において、ディスク装置からの読
み出しデータとキャッシュバッファからの読み出しデー
タのいづれかを選択してホスト計算機に送るためのデー
タマルチプレクサと、前記ステータステーブルの内容か
らデータマルチプレクサの制御信号を生成するスイッチ
制御回路を備えることにより連続した複数ブロックの読
み出し要求を受けた場合においてステージング動作を行
うことなくホスト計算機へデータを転送するようにした
ものである。
【0024】第7の発明に係わるディスクキャッシュ制
御装置は、ストアインで且つセットアソシエイティブ方
式のディスクキャッシュ制御装置において、ホスト計算
機からのライトデータ及びディスク装置からのステージ
ングデータをブロック単位でセットとウェイによる二次
元配列形式で格納しておくキャッシュバッファと、前記
キャッシュバッファ上に指定されたデータブロックが存
在するか否かをブロック単位で判定するキャッシュ判定
回路と、前記キャッシュバッファと同一のブロック構成
を有し、キャッシュバッファを構成する各ブロックにデ
ータが書き込まれているか否かを示すバリッド・フラグ
とキャッシュバッファ上のデータブロックの内容とディ
スク装置内のデータが一致しているか否かを示すダーテ
ィ・フラグとキャッシュブロックデータのディスク装置
上におけるデータ位置を示すアドレス情報から成るステ
ータステーブルと、前記キャッシュブロック内における
データを指定するデータカウンタと、前記キャッシュブ
ロック及び前記ステータステーブルを二次元配列のセッ
ト単位で指定し前記データカウンタからの桁上がり信号
によりカウントするブロックカウンタと、前記キャッシ
ュブロック及び前記ステータステーブルを二次元配列の
ウェイ単位で指定しマイクロプロセッサからの指示でカ
ウントするウェイカウンタと、非同期ライトバック制御
部を備え、前記非同期ライトバック制御部は、セットア
ソシエイティブ方式を構成するセットとウエイによる2
次元構造においてセット数に対応したフラグ数を有する
ライトバック情報と、前記ライトバック情報の退避情報
と、あるセット内にダーティブロックが一定量以上蓄積
された場合に起動されるセットライトバックと、ホスト
計算機からのキャッシュミスヒットによるディスクアク
セスを監視し該ディスクアクセスが一定期間発生してい
ない状態で起動されるタイマライトバックのいづれかに
基づくライトバック処理起動時にセットされる非同期起
動情報と、経過時間を計時し、キャッシュミスヒットに
よるディスク装置起動時にリセットされ、予め設定され
た時間内に該ディスク起動が行われなかった場合に割り
込みを発生させるリアルタイムクロック回路部と、前記
リアルタイムクロック回路部からの割り込み発生を受け
てセットされるタイマ起動情報と、前記非同期起動情報
のセットを受けてセットライトバックとタイマライトバ
ックに基づくライトバック処理を行う非同期ライトバッ
ク回路を備えるようにしたものである。
【0025】第8の発明は、第7の発明におけるディス
クキャッシュ制御装置において、前記キャッシュ判定回
路はライトバック回数算出部とを有し、前記ライトバッ
ク回数算出部は、ホスト計算機からのライトアクセス時
においてキャッシュブロック上のリプレース対象ブロッ
クでライトバック動作が必要な場合に該ライトバック動
作回数をカウントし、該カウント数が基準値を越える場
合にヒットブロックを無効化して直接ディスク装置へ書
込み処理するようにしたものである。
【0026】第9の発明は、第8の発明におけるディス
クキャッシュ制御装置において、前記キャッシュバッフ
ァはリードデータ格納専用エリアとリードデータおよび
ライトデータのいずれをも格納できる汎用エリアに分割
されたセットアソシエイティブ方式ストアインキャッシ
ュバッファ構成を有し、キャッシュブロック上のリプレ
ース対象ブロックにおいてライトバックが発生するか否
かを判定し、該ライトバックが発生する場合はキャッシ
ュバッファ上の格納エリアをリードデータ専用のウエイ
に指定した後ステージング処理を行うようにしたもので
ある。
【0027】
【作用】この発明によるディスクキャッシュ制御装置
は、キャッシュブロックおよびディスク装置からのデー
タ読み出し転送処理と、ブロックカウンタで指示される
次ブロックに相当するキャッシュブロックのヒット・ミ
スヒットのキャッシュ判定処理を並行して行う。
【0028】また、この発明によるディスクキャッシュ
制御装置は、ディスク装置からの読み出しデータをキャ
ッシュバッファにステージングする際、キャッシュヒッ
ト/ミスヒット結果をキャッシュバッファに対する書き
込み許可信号として使用し、ブロック単位でキャッシュ
バッファのヒットブロックに対する書き込み抑制制御を
行なう。
【0029】また、この発明によるディスクキャッシュ
制御装置は、キャッシュのヒット、ミスヒットの判定結
果を用いてスイッチ回路を制御し、キャッシュバッファ
およびディスク装置からのデータの流れをブロック単位
で切り替え制御するようにし、キャッシュバッファ上に
おけるヒット、ミスヒットブロックが不連続に存在して
いても、一回の起動による連続データと見なしてホスト
計算機に対しデータ転送する。
【0030】また、この発明によるディスクキャッシュ
制御装置は、あるセット内にダーティブロックが一定量
以上蓄積された時点でホスト計算機からのアクセスとは
非同期にライトバック処理を行う。さらに、ディスク装
置に対するアクセス状況を常時タイマーにより監視し、
キャッシュバッファ上のダーティブロックがある程度ま
とまった時点で非同期ライトバック処理を行うことでデ
ィスク装置に対する一括書き出し処理を行う。
【0031】さらに、この発明によるディスクキャッシ
ュ制御装置は、ライトデータをキャッシュバッファ上に
置く場合において、バッファブロックのリプレースが一
定回数以上発生する時は、キャッシュバッファ上でヒッ
トしているブロックを無効化し、ダーティブロックを残
すことなく直接ディスク装置へライトする。
【0032】さらに、この発明によるディスクキャッシ
ュ制御装置は、キャッシュバッファをリード専用エリア
とリード・ライトデータのいづれも置ける汎用エリアに
分割して管理し、ライトバックが発生する場合にはリー
ド専用エリアにウエイを指定してステージングを行うよ
うにする。
【0033】
【実施例】
実施例1.本発明の第一の実施例を、図1乃至図4に基
づいて説明する。図1は、本発明の一実施例を示すため
のダイレクトマッピング方式のストアイン型ディスクキ
ャッシュ制御装置のブロック図である。図2は、動作の
タイミングを示すタイミングチャートである。図3は、
ステ−タステーブルの構造を説明する図である。図4
は、ステ−タステーブルの内容を示す図である。
【0034】図1において、1はホスト計算機、2はス
トアイン型ディスクキャッシュ制御装置、3はディスク
装置、6はホスト計算機1からのストアデータ及びディ
スク装置3からのステージングデータを一次元配列形式
のブロック単位で格納しておくキャッシュバッファであ
る。7は図4に示すようにヒット判定を行うためのブロ
ックアドレスとブロックのデータ状態を示す2種類の状
態フラグから構成されたステ−タステーブルである。こ
こで、2種類の状態フラグとは、キャッシュバッファ6
にデータが書き込まれていることを示すバリッド・フラ
グとキャッシュバッファ6の内容と該当ディスク装置内
のデータが異なっていることを示すダーティフラグであ
る。
【0035】10は、ディスク装置3のアクセス位置の
データがキャッシュバッファ6のデータブロックに存在
するか否かをブロック単位で判定するためのキャッシュ
判定回路である。11はホスト計算機1からのアクセス
要求を解析し、各制御回路に対し指示を与えるマイクロ
プロセッサである。12はディスク装置3に対する読み
書き及びデータ授受を制御するディスク制御LSI、5
はキャッシュバッファ6の一次元配列に分割されたブロ
ック内をバイト単位で指定するデータカウンタである。
4はキャッシュバッファ6及びステ−タステーブル7を
ブロック単位で指定するセットカウンタである。9はセ
ットカウンタ4の値をキャッシュバッファ6用に一時保
存するアドレスラッチである。13はホスト計算機1か
らディスク装置3に対するアクセス要求及びデータの授
受を行うホストアダプタであり、22は転送要求信号を
発生させる転送要求回路である。
【0036】次に動作について説明する。図1におい
て、ディスクキャッシュ制御装置2は、ディスク装置3
に対するホスト計算機1からのアクセス要求をホストア
ダプタ13で受信し、その内容をマイクロプロセッサ1
1に伝える。マイクロプロセッサ11では、ホスト計算
機1からの要求内容を解析し、それがディスク装置3に
対する読み出し要求であればディスク装置3に対する転
送ブロック長とディスクアドレスをホスト計算機1の要
求内容から取り出し、取り出された転送ブロック長を転
送要求回路22に書き込む。また、マイクロプロセッサ
11は図3で示す様に、ディスクアドレスをキャッシュ
バッファ6とステ−タステーブル7をブロック単位で指
定するための下位アドレス(これをセット・アドレスと
呼ぶ)と、キャッシュ・ヒット判定を行うための上位ア
ドレス(これをブロックアドレスと呼ぶ)とに分け、セ
ットアドレスをセットカウンタ4に書き込み、ブロック
アドレスを比較データAとしてキャッシュ判定回路10
にそれぞれ書き込む。ここでは例として、転送ブロック
長=3,ディスクアドレスがセットアドレス=0,とブ
ロックアドレス=5に分解されたとして説明する。
【0037】図3で示す様に、セットカウンタ4に書き
込まれたセットアドレスは、一次元配列化されたステ−
タステーブル7の何れか一つのブロックを指し示す。そ
の結果、ステ−タステーブル7からはブロック0のステ
ータスとしてセットカウンタ4にて指定されたブロック
のステ−タス内容が出力される。ここで例えば、ステ−
タステーブル7の状態が、図4で示す様な内容であった
と仮定すると、セットカウンタ4には先頭のセットアド
レスとして”0”が書き込まれているので、セットアド
レス”0”に相当するデータ(ブロックアドレス=5、
バリッドフラグ=1)が出力される。出力されたデータ
は、図1及び図3で示すように比較データBとしてキャ
ッシュ判定回路10に伝えられる。キャッシュ判定回路
10では、既に書き込まれている比較データA(ディス
クアドレスの上位データに相当するブロックアドレス=
5)と、ステ−タステーブル7のセットアドレス”0”
から読み出された比較データBを用いてキャッシュのヒ
ット/ミスヒット判定が開始される。判定は、比較デー
タB内のバリッド・フラグが”1”(有効)を示し、且
つ、同比較データB内のブロックアドレスと比較データ
Aのブロックアドレスが一致している場合にヒットと判
定し、比較データAと比較データBのブロックアドレス
が不一致の場合、及び、比較データB内のバリッド・フ
ラグが”0”(無効)を示している場合にはミスヒット
と判定する。以上のことから、この例ではキャッシュ判
定回路10の比較データB内のバリッド・フラグは図4
で示すように1(有効)を示しており、比較データAと
比較データBのブロックアドレスが共に”5”で一致し
ている為、ヒットと判定される。
【0038】ヒット/ミスヒットのキャッシュ判定が完
了すると、図2で示す判定完了信号53がセットされる
と共に、ヒット/ミスヒット判定結果が、ディスク制御
LSI12へ伝達される。キャッシュのヒット/ミスヒ
ット判定完了信号53がセットされ、かつデータカウン
タ5の内容がゼロである事を示すカウントゼロ信号57
がセットされていれば、図2で示す様にセットカウンタ
4の内容がアドレスラッチ9にコピーされる。ここまで
の動作で、アドレスラッチ9とデータカウンタ5によ
り、キャッシュバッファ6に対する先頭ブロックのアク
セスアドレスが確定し、ディスク制御装置からのデータ
転送待ちの処理が完了となる。次に、転送要求回路22
は、同回路に書き込まれた転送ブロック長がゼロ以外
で、キャッシュ判定完了信号がセットされているとディ
スク制御装置12に対し転送要求信号58を発行する。
ディスク制御LSI12はキャッシュ判定回路10から
の判定結果を取り込み、ヒットであればアドレスラッチ
9とデータカウンタ5により指定されたキャッシュバッ
ファの内容をホストアダプタへ転送し、ミスヒットであ
ればディスク装置からのデータをホストアダプタへ転送
する。本動作例では、先頭ブロックがヒットと判定され
ていた為、図2の”データ転送”が示す様にキャッシュ
転送となる。この間、データカウンタ5は、ディスク制
御LSI12から出力されるデータ転送同期信号56を
受け、カウントアップを行いキャッシュバッファ6に対
するアクセスアドレスを順次更新すると共に、カウント
ゼロ信号57がリセットされる。
【0039】図2で示す様に、アドレスラッチ9はディ
スク制御LSI12によるデータ転送開始後もデータカ
ウンタ5が、再びカウントゼロ信号57をセットする迄
同一アドレスを保持する。しかし、セットカウンタ4
は、図2で示す様にカウントゼロ信号57がリセットさ
れた事を検出してカウントアップし、その結果、図4に
おけるセットアドレス”1”を差し示す事になり、次ブ
ロックのヒット/ミスヒットの判定開始となる。図4で
示す様に、次ブロックではバリッドフラグは”1”(有
効)を示しているが、比較データAの内容が”5”であ
るのに対して、比較データBの内容は”8”であり不一
致となってミスヒットと判定される。そして、次ブロッ
クに対するキャッシュヒット/ミスヒット判定を実施し
ている間に、平行して前ブロックのデータ転送が行われ
る。この様にして、ディスク制御装置12による前ブロ
ックのデータ転送と、次ブロックのヒット/ミスヒット
判定を平行して繰り返す。また、この次ブロックに対す
るキャッシュヒット/ミスヒット判定処理とディスク制
御LSI12による前ブロックのデータ転送処理のくり
返し動作は転送要求回路22にある転送ブロックカウン
タの内容が、データカウンタ5から出力されるカウント
ゼロ信号57を受けカウントダウンされ、その内容がゼ
ロになる事によりディスク制御LSI12へ発行されて
いた転送要求信号58の送出が抑制されて停止する。
【0040】本実施例によれば、先頭のブロックを除
き、以降のアクセスブロックに対してはディスク装置の
データ転送時間を利用し、キャッシュのヒット/ミスヒ
ット判定を行う事が出来るためディスク起動までのオー
バーヘッドを最小限に押さえることが可能である。ま
た、ディスク起動までに行うキャッシュのヒット/ミス
ヒット判定は、データ転送要求量に関係なく、先頭の1
ブロックのみである為、ディスク装置起動までの最大時
間保証が可能となる。
【0041】実施例2.本発明の第2の実施例につい
て、図5及至図7に基づいて説明する。図5は、本発明
の一実施例を示すためのセットアソシエイティブ方式の
ディスクキャッシュ制御装置のブロック図である。図6
は、ホスト計算機からのディスク装置に対するセクタア
ドレスとブロックアドレスの関係を示した図である。図
7は、ウエイカウンタとセットカウンタの動作を示すタ
イミングチャートである。
【0042】図5において、4はキャッシュバッファ6
及びステ−タステーブル7を二次元配列のセット列単位
で指定し、データカウンタ5からのカウントゼロ信号5
7によりカウントするセットカウンタである。8はキャ
ッシュバッファ6及びステ−タステーブル7を二次元配
列のウエイ列単位で指定するためのウエイカウンタであ
る。6はディスク装置3からのステージングデータをブ
ロック単位で格納しておくキャッシュバッファであり、
図6で示すようにセットカウンタ4及び、ウエイカウン
タ8によりブロック単位で二元配列化された構造を有す
る。7はキャッシュのヒット/ミスヒット判定を行うた
めのブロックアドレスとブロックのデータ状態を示す状
態フラグから構成されるステ−タステーブルであり、図
6で示すようにキャッシュバッファ6と同様にブロック
カウンタ4及び、ウエイカウンタ8によりブロック単位
で二次元配列化された構造を有する。その他の構成要素
は、図1と同様である。
【0043】次に動作について説明する。図5におい
て、実施例1と同様にしてディスクキャッシュ制御装置
2は、ディスク装置3に対するホスト計算機1からのデ
ータ読み出し要求をホストアダプタ13で受信し、その
内容をマイクロプロセッサ11に伝える。マイクロプロ
セッサ11は、ホスト計算機要求から取り出した転送ブ
ロック長を、転送要求回路22に書込む。さらにマイク
ロプロセッサ11は、ホスト計算機要求からディスクア
ドレスを取り出した後、図6で示すようにステータステ
ーブル7をセット列単位で指定するためのセットアドレ
スをセットカウンタ4に書き込み、キャッシュ・ヒット
判定を行うための上位アドレスを比較データAとしてキ
ャッシュ判定回路10に書き込む。図7で示す様にセッ
トカウンタ4の内容がマイクロプロセッサ11によりセ
ットされると、ウエイカウンタ8はゼロに初期化され
る。この結果、図6で示す様にセットカウンタ4ならび
にウエイカウンタ8により、二次元配列化されたステー
タステーブル7のブロック位置が決定され、そのテーブ
ル内容が比較データBとしてキャッシュ判定回路10に
伝達される。キャッシュ判定回路10では、既に書き込
まれている比較データAと、ステータステーブル7から
読み出された比較データBを用いてキャッシュのヒット
/ミスヒット判定が開始される。判定基準は、比較デー
タB内のバリット・フラグが有効を示し、且つ、比較デ
ータB内のブロックアドレスと比較データAのブロック
アドレスが一致している場合をヒットと判定し、比較デ
ータAと比較データBのブロックアドレスが不一致の場
合及び、比較データB内のバリッド・フラグが無効を示
している場合にはミスヒットと判定する。キャッシュ判
定回路10によるヒット/ミスヒットのキャッシュ判定
が完了すると、判定結果信号59と共にキャッシュ判定
完了信号53が出力される。ウエイカウンタ8では、図
7で示す様に伝達された判定結果信号59がミスヒット
を意味していた場合には、次のセットに格納されている
データのヒット/ミスヒット判定を実施するために、ウ
エイカウンタ8のカウントをアップさせる。一方、伝達
された判定結果信号59がヒットを意味していた場合に
はキャッシュ判定完了信号53に同期して、転送要求回
路22に対しウエイ確定信号60を送出すると同時に、
現在のウエイカウンタ8の内容とセットカウンタ4の内
容をアドレスラッチ9へコピーする。転送要求回路22
では、同回路に書き込まれた転送ブロックカウントがゼ
ロ以外で、ウエイ確定信号60がセットされているとデ
ィスク制御装置12に対し転送要求信号58を発行す
る。ディスク制御装置12は、キャッシュ判定回路10
からの判定結果信号59を取り込み、ヒットであればア
ドレスラッチ9並びにウエイカウンタ8とデータカウン
タ5により指定されたキャッシュブロックの内容をホス
トアダプタ13へ転送する。一方、ミスヒットで有れば
ディスク装置からのデータをホストアダプタへ転送す
る。この様にして、キャッシュ判定回路10からの結果
がミスヒットであれば次のウエイを指定し、ヒット判定
が出るまでウエイの変更を繰り返す。但し、すべてのウ
エイに関して判定結果がミスヒットであった場合には、
最終ウエイの評価が完了した時点でヒット時と同様に、
転送要求回路22に対しウエイ確定信号60をセットす
る。この時、ウエイ確定がヒットによるものか、または
全ウエイ・ミスヒットによるものかの区別は、図5で示
す転送要求信号58がセットされた時に発行されている
キャッシュ判定回路10からの判定結果信号59を用い
ることによって判別可能である。
【0044】以上の動作について以下に具体的に説明す
る。ここでは動作説明上、セットアドレス=1、ブロッ
クアドレス=5、転送ブロック長=2の起動要求があっ
たとする。はじめに起動要求の内容から取り出したセッ
トアドレスならびにブロックアドレスをそれぞれセット
カウンタ4及びキャッシュ判定回路10の比較データA
に書き込む。すると図7で示す様に、ウエイカウンタ8
は、セットカウンタ4の内容がマイクロプロセッサ11
により更新されると同時に、初期化(ゼロ)される。こ
の時点でセットカウンタ4とウエイカウンタ8は、各々
セットアドレス=1,ウエイアドレス=0となり、図6
で示すステータステーブル7は、セット列が”1”でウ
エイ列が”0”のブロック位置が指定される。ステータ
ステーブル7の各ブロックには図6で示すデータがセッ
トされていたとする。この結果、ステータステーブル7
から読み出されてきた内容は、ブロックアドレス=0、
バリッドフラグ=1(有効)となる。読み出されたデー
タは、比較データBとしてキャッシュ判定回路10に伝
えられる。図6で示すように、現在キャッシュ判定回路
10の比較データB内のバリッド・フラグは1(有効)
を示しているが、比較データAと比較データBのブロッ
クアドレスが”5”と”0”であり不一致となるため、
図7で示す様にキャッシュ判定結果59はミスヒットな
る。このため、キャッシュ判定完了信号53に同期して
ウエイカウンタ8がカウント・アップされてウエイ=1
となり、次ウエイに対するキャッシュ判定が開始され
る。セット=1,ウエイ=1のステータステーブル内容
は、図6で示す様にブロックアドレス=5、バリッドフ
ラグ=1(有効)でキャッシュ判定回路10による判定
結果は「ヒット」となる。 この結果、図7で示す様に
キャッシュ判定完了信号53に同期してセットカウンタ
4とウエイカウンタ8の内容がアドレスラッチ9にコピ
ーされ、同時にウエイ確定信号60が出力される。転送
要求回路22に書き込まれた転送ブロックカウントは、
ゼロ以外であるためウエイ確定信号60を転送要求回路
22が受け取ると図7で示す転送要求信号58が出力さ
れる。ディスク制御装置12は、転送要求信号58を受
け取るとキャッシュ判定回路10からの判定結果信号5
9を取り込み、キャッシュ判定結果信号59がヒットを
示しているためキャッシュ転送が開始される。ディスク
制御装置12による転送が開始されると、データカウン
タ5はデータ転送同期信号56により順次カウントアッ
プされ、図7で示す様にデータカウンタ5から出力され
ていたカウントゼロ信号57がリセットされる。このカ
ウントゼロ信号57のリセットに同期してセットカウン
タ4がカウントアップされ、同時にウエイカウンタ8が
リセットされる。これにより、キャッシュ判定のために
読み出されるステータステーブル7の対象は、セット1
の列からセット2列に切り替わる。キャッシュ判定回路
10では、図7で示す様にセットアドレス=2,ウエイ
アドレス=0のステータステーブルの内容を判定する。
判定は比較データAと比較データBのブロックアドレス
が各々”5”と”0”となるためミスヒットなり、図7
で示す様にウエイカウンタ8の内容がカウントアップさ
れ、次のウエイに対するヒット判定が開始される。ウエ
イ=1に対しては、図6で示す様にバリッドフラグが無
効を示しているので、判定結果はミスヒットとなり、ウ
エイカウンタ8の内容が再びカウントアップされ、ウエ
イ=2となる。ウエイ=2も、前記ウエイと同様にバリ
ッドフラグが無効を示しているので、判定結果はミスヒ
ットとなる。ここで、図6の例ではウエイ=2が最終ウ
エイであるため、強制的にウエイ確定信号60が出力さ
れる。ウエイ確定信号60が出力されると、図7で示す
様に転送要求回路22に書き込まれた転送ブロックカウ
ントは、ゼロ以外(”1”)を示しているため、転送要
求58が再び出力される。その後、図7で示すように1
ブロック分のデータ転送完了を示すカウントゼロ信号5
7が再びセットされ、その信号に同期して転送ブロック
長の内容をカウント・ダウンしながらディスクデータ転
送が行われる。
【0045】この様に本実施例では、ウエイカウンタを
用いることにより、二次元配列化されたセットアソシエ
イティブ方式のキャッシュに関して、先頭のブロックを
除き、以降のアクセスブロックに対してはディスク装置
のデータ転送時間を利用し、キャッシュのヒット/ミス
ヒット判定を行う事が出来るためディスク起動までのオ
ーバーヘッドを最小限に押さえることが可能である。ま
た、ディスク起動までに行うキャッシュのヒット/ミス
ヒット判定は、データ転送要求量に関係なく、先頭の1
ブロックのみである為、ディスク装置起動までの最大時
間保証が可能となる。
【0046】実施例3.本発明の第3の実施例を、図8
乃至図11に基づいて説明する。図8は、本発明の一実
施例を示すためのダイレクトマッピング方式ストアイン
型ディスクキャッシュ制御装置のブロック図である。図
9は、ダイレクトマッピング方式での読み出し概略フロ
ーである。図10は、本実施例におけるステージングの
実行列を示す図である。図11は、メモリ制御回路の概
略図である。14はホスト1から連続した複数ブロック
の読み出し要求を受けキャッシュバッファ6へのデータ
書き込み(ステージング動作)動作を行う場合に、キャ
ッシュバッファ6のメモリ書き込み許可信号54をブロ
ック単位で制御するメモリ制御回路である。その他の構
成要素は、図1で説明したものと同様である。
【0047】次に動作について図8、及び図9を中心に
説明する。図8において、ディスクキャッシュ制御装置
2は、ホスト計算機1からのディスク装置3に対するア
クセス要求をホストアダプタ13で受信し、その内容を
マイクロプロセッサ11に伝える。マイクロプロセッサ
11では、ホスト計算機1からの要求内容を解析し、そ
れがディスク読み出し要求であればディスク装置3に対
するセクタアドレスと転送ブロック長を要求内容から取
り出し、転送ブロック長を図8の転送要求回路22に書
き込むと共に、セクタアドレスを図3で示す様にキャッ
シュバッファ6及びステータステーブル7をブロック単
位で指定するためのセットアドレスとキャッシュヒット
判定を行うためのブロックアドレスとに分けた後、ステ
ップ99においてブロックアドレスをキャッシュ判定回
路10に書き込み、次いでステップ100にてセットア
ドレスをセットカウンタ4に書き込む。
【0048】次にマイクロプロセッサ11は、ホスト計
算機からの読み出し要求をもとにキャッシュの状態を評
価し、指定された全てのブロックがヒットであることが
判明した場合には、ステージング処理は不要であるため
ステップ113へ移行しキャッシュバッファ6のデータ
をホスト計算機へ転送する。次に、ブロックが全てヒッ
トしなかった場合にはステップ103へ移行し、転送ブ
ロック長からキャッシュ・ステージングを行う必要があ
るか否かを判別する。転送ブロック長が、一定長以内で
あれば、ステージング処理となる。実施例3は、このス
テージング時の処理に関するものである。ステップ10
4では、ステータステーブル7からセットカウンタ4で
指定されたブロックのステータスデータを読み出し、キ
ャッシュ判定回路10でキャッシュのヒット/ミスヒッ
トの判定を行う。判定結果は、キャッシュ判定結果信号
59としてメモリ制御回路14に伝達される。メモリ制
御回路14は、ステップ105とステップ106及び1
07の動作により図11で示すメモリ制御回路内部のレ
ジスタに、キャッシュ判定結果信号59を図8には図示
していないが、ラッチ信号としてアドレスラッチ9が書
き変わるタイミングで取り込む。ここで、ステップ10
6と107の違いは、図11のメモリ制御回路内部レジ
スタが、ステップ106ではオフとなり、ステップ10
7ではオンとなる事である。図10のセット”0”の例
では、判定結果はミスヒットであるためステップ107
へ移行し、図11のメモリ制御回路内部レジスタはオン
となり書き込み許可状態となる。次に、ステップ108
において、ディスク制御装置12への起動は今回が最初
であるため、ステップ116へ分岐する。ステップ11
6では、図8の転送要求回路22がキャッシュ判定回路
10から発行された判定完了信号53を受け、ディスク
制御LSI12に対し転送要求信号58を発行する。そ
の後、ステップ109においてセットカウンタ4の内容
がアドレスラッチ9へコピーされ、ステップ110に
て、ディスク制御LSI12によりディスク装置3から
データ読み出しが開始される。ディスク装置3から読み
出されてきたデータは、ディスク制御LSI12のデー
タ転送同期信号56に合わせキャッシュバッファ6に送
り込まれる。キャッシュバッファ6に送り込まれたデー
タは、図9のフローチャートには図示していないが図1
1に示すメモリ制御回路内部レジスタがオンであるた
め、データ転送同期信号56をキャッシュバッファ書き
込み許可信号54としてキャッシュバッファ6に伝達
し、キャッシュバッファに書き込みが開始される(ステ
ージング処理が実行)。次にステップ114にて、セッ
トカウンタ4の内容が加算される。その後再びステップ
104にもどり、次のセットに対するヒット/ミスヒッ
ト判定が実施される。図10のセット”1”の例では、
判定結果はヒットとなる。このため、ステップ106へ
移行し図11のメモリ制御回路内部レジスタはオフとな
り、キャッシュバッファ6への書き込み禁止状態とな
る。ステップ108では、前回ステップ110でディス
ク装置に対する起動がなされているのでステップ111
へ分岐する。ステップ111では、ステップ110で開
始した前ブロックのデータ転送が完了するまで繰り返さ
れる。転送完了の確認は、データカウンタ5から出力さ
れるカウントゼロ信号57の検出により行う。前ブロッ
クのデータ転送完了が確認されると、ステップ115へ
移行しセットカウンタの加算を行い、ステップ112で
全てのブロック長分のステージングが完了したか否かを
確認する。図10に示す様に、この時点では総てのブロ
ック長転送が完了していないため、ステップ109へ移
行し、セット1のセットアドレスがアドレスラッチ9に
コピーされる。その後ステップ110でディスク制御L
SI12によるディスク装置からのデータ読み出しが開
始される。図11のメモリ制御回路内部レジスタはオフ
であるためステップ110で読み出されてきたデータ
は、キャッシュバッファ6に伝達されるものの、図11
で示すキャッシュバッファ書き込み許可信号54が送出
されないため、キャッシュバッファ6にデータを書き込
めずヒットブロックはもとのデータを保持することとな
る。
【0049】この実施例によればディスク装置3からの
読み出しデータをキャッシュバッファ6にステージング
する際、キャッシュヒット/ミスヒット結果をキャッシ
ュバッファ6に対する書き込み許可信号として使用し、
ブロック単位でキャッシュバッファ6のヒットブロック
に対する書き込み抑制制御を行なうようにしたので、一
括した連続データとしてディスク起動を行うことが可能
となる。また、ディスクアクセスに費される時間の大半
はディスク起動時に発生する「シーク待ち時間」と「回
転待ち時間」であり、ヒットブロックのディスク空読み
を行った場合にアクセス要求のあったデータが不連続な
ために複数回のディスク起動に分割していたものを連続
したデータとして扱える様になり高速なディスクキャッ
シュ制御装置を提供することができる。
【0050】実施例4.本発明の第4の実施例につい
て、図12乃至図14に基づいて説明する。図12は、
本発明の一実施例を示すセットアソシエイティブ方式の
ストアイン型ディスクキャッシュ制御装置のブロック図
である。図13は、セットアソシエイティブ方式での読
み出し動作を示すフローチャートである。図14は、本
実施例におけるステージング動作の実行を示す図であ
る。
【0051】図12において、14はホスト計算機1か
ら連続した複数ブロックの読み出し要求を受けキャッシ
ュバッファ6へのステージング動作を行う場合に、キャ
ッシュバッファ6のメモリ書き込み許可信号54をブロ
ック単位で制御するメモリ制御回路である。それ以外の
構成要素は、図5で説明したものと同様である。
【0052】第4の実施例では、二次元配列化されたス
テータステーブルを検索するために、図13のステップ
120でウエイカウンタ8を初期化し、ステップ121
でメモリ制御回路14をキャッシュバッファへの書き込
み許可とする。その後、ステップ122でステータステ
ーブル7から読み出されてきたブロックの状態情報に対
して、キャッシュ判定回路10でヒット/ミスヒットの
判定を行う。ステップ123では空きブロックの検査を
行う。検査結果が空きブロックでなかった場合には、ス
テップ124へ移行しヒットブロックか否かの検査を実
施する。ステップ124での検査結果がヒットブロック
であった場合には、ステップ125へ移行し、メモリ制
御回路14がキャッシュ判定回路10での判定結果を受
け、キャッシュバッファへの書き込み禁止となる。ステ
ップ124での検査結果が、ミスヒットブロックであっ
た場合にはステップ128に移行し、未検査のウエイが
無いことを確認する。もし未検査ウエイが有ればステッ
プ129でウエイカウンタをインクリメントした後、ス
テップ122へ戻り次のウエイに対するキャッシュ判定
を行う。次に、ステップ123で空きブロックが発見さ
れた場合には、ステップ126でステージング用のブロ
ックを仮確保するため、ウエイカウンタ8に現在のウエ
イ番号を記憶しステップ128へ移行する。ステップ1
28では、未検査のウエイが無いことを確認し、もし未
検査ウエイが有ればステップ129でウエイカウンタを
インクリメントした後、ステップ122へ戻り次のウエ
イに対するキャッシュ判定を行う。ステップ128で、
全てのウエイに対する判定が完了していたならば、図9
のステップ108へ移行する。この時、図9のステップ
108への移行が図13のステップ125を実行した後
の移行である場合には、メモリ制御回路14がキャッシ
ュバッファへの書き込み禁止状態でのブロック転送とな
る。一方、図13のステップ125を実行せずに図9の
ステップ108へ移行した場合は、メモリ制御回路14
がキャッシュバッファへの書き込み許可状態でのブロッ
ク転送となる。以降の動作は、実施例3の図9のステッ
プ108以降の動作と同様となる。
【0053】ここで、図14を例にとって説明すると、
セット0からセット4の連続したデータをディスク装置
からキャッシュバッファにステージングする場合、図9
のステップ100で図12のセットカウンタ4にブロッ
ク0のセットアドレスとして”0”がセットされる。次
に図13のステップ120で図12のウエイカウンタ8
が、”0”に初期化される。次いで、ステップ121で
図12のメモリ制御回路14がキャッシュバッファへの
書き込み許可となった後、ステップ122でセット0の
ウエイ0が最初のブロックとして検査される。この検査
結果は、空きではないのでステップ124へ進む。しか
しヒットではないのでステップ128へ移行する。ステ
ップ128では、全ウエイの判定を完了していないので
ステップ129へ移行し、セット0,ウエイ1の検査に
移る。セット0のウエイ1では空きブロックであるた
め、ステップ123からステップ126へ分岐し図12
のウエイカウンタ8の内容であるウエイ番号1がセット
0用としてアドレスラッチ9にコピーされ、仮確定とな
る。次に、ステップ128で再び全ウエイの判定完了を
確認するが、未判定ウエイがあるためステップ129で
ウエイ番号2をセットしステップ122へ戻る。ステッ
プ122では、セット0,ウエイ2のキャッシュ判定を
実施する。その結果、図14で示すセット0,ウエイ2
はミスヒット・ブロックであるため、ステップ124か
らステップ128へ動作が移行する。ステップ128で
は図14で示すように最終ウエイを示しているため、図
9のステップ108へ分岐する。この時、ステージング
のウエイはステップ126で図12のアドレスラッチ9
にセットされており、のメモリ制御回路14はステップ
121でセットしたキャッシュバッファへの書き込み許
可が持続しており、図9のステップ108へ動作が移行
すると、図14で示す様にブロック0のディスク装置か
らの読み出しデータがセット0のウエイ1に書き込まれ
る。その後、図9のステップ110から再び図13のス
テップ120に戻ってきた時には、図12のセットカウ
ンタ4はセット1を示している。セット1でも、前回と
同様に図13のステップ120でウエイカウンタが初期
化され、ウエイ0から判定を開始する。その結果、ウエ
イ0はミスヒットであるためステップ124からステッ
プ128を経由してステップ122に戻ってくる。ウエ
イ1では、図14で示す様に空きブロックであるためス
テップ123からステップ126へ進み、図12のウエ
イカウンタ8の内容であるウエイ番号1がセット1用と
してアドレスラッチ9にコピーされた後、ステップ12
2へ戻る。ウエイ2では、図14で示す様にヒットブロ
ックであるためステップ124からステップ125へ進
む。ステップ125では、図12のメモリ制御回路14
をキャッシュバッファへの書き込み禁止状態とし、図9
のステップ108へ移行する。この結果、図14で示す
様にブロック1のディスク装置からの読み出しデータは
図12のメモリ制御回路14がキャッシュバッファへの
書き込み禁止状態であるためキャッシュバッファに書き
込まれる事なく、読み捨てとなる。またステップ126
でアドレスラッチ9にコピーされたウエイ番号は書込み
禁止である事から無効となる。次にセット2ではウエイ
0が空きブロックであり、以下のウエイ1と2は何れも
ミスヒットブロックであり、書込み許可としてウエイ0
確定される。さらに、セット3では、セット1と同様に
ヒットブロックが存在するため書込み禁止としてブロッ
ク3のディスク読み出しデータが読み捨てとなる。最後
にセット4ではヒットブロックが存在しないので、書込
み許可となりウエイ2が空きブロックとして書込み対象
として確定される。
【0054】この実施例によればディスク装置3からの
読み出しデータを、キャッシュバッファ6にステージン
グする際、キャッシュバッファとステ−タステーブルを
二次元配列構造としてアクセスするための独立したウエ
イカウンタを備えることにより、それぞれ異なった配列
のブロック位置を連続したブロックとしてアクセスする
ことができる。従って、ホスト計算機からのデータ読み
取り要求に対してキャッシュバッファに更新があったブ
ロックが不連続な位置に存在している場合であっても、
ステージングの際にヒットブロックのみをキャッシュバ
ッファへの書き込みを禁止することによりディスク装置
からは一連の連続したデータとして読み出すことが出来
る。また、ディスクアクセスに費される時間の大半はデ
ィスク起動時に発生する「シーク待ち時間」と「回転待
ち時間」であり、ヒットブロックのディスク空読みを行
った場合にアクセス要求のあったデータが不連続なため
に複数回のディスク起動に分割していたものを連続した
データとして扱える様になり高速なディスクキャッシュ
制御装置を提供することができる。
【0055】実施例5.本発明の第5の実施例につい
て、図15乃至図17に基づいて説明する。図15は、
本発明の一実施例を示すためのダイレクトマッピング方
式のストアイン型ディスクキャッシュ制御装置のブロッ
ク図である。図16は、ダイレクトマッピング方式での
読み出し概略フローチャートである。図15において、
15はホスト計算機1から連続した複数ブロックの読み
出し要求を受けステージング動作を行わずホスト計算機
1へデータを転送する場合に、ステータステーブル7の
内容からデータマルチプレクサ16の制御信号を生成す
るスイッチ制御回路である。16はホスト計算機1から
連続した複数ブロックの読み出し要求を受け、ステージ
ング動作を行わずホスト計算機1へデータを転送する場
合に、ディスク装置3からの読み出しデータとキャッシ
ュバッファ6からの読み出しデータのどちらかを選択し
てホスト計算機1に送るためのデータマルチプレクサで
ある。それ以外の構成要素は、図1で説明したものと同
様である。
【0056】次に、動作について説明する。図15に於
いて、ディスクキャッシュ制御装置2は、ホスト計算機
1からのディスク装置3に対するアクセス要求をホスト
アダプタ13で受信し、その内容をマイクロプロセッサ
11に伝える。マイクロプロセッサ11では、ホスト計
算機1からの要求内容を解析する。それがディスク読み
出し要求であればディスク装置3に対するセクタアドレ
スと要求ブロック長を要求内容から取り出す。
【0057】次にマイクロプロセッサ11は、取り出し
たセクタアドレスを、ブロックアドレスとセットアドレ
スに分離し、図9のステップ99においてブロックアド
レスをキャッシュ判定回路10に書き込み、ステップ1
00でセットアドレスをセットカウンタ4に書き込む。
ここで、全ブロックがヒットではなく、且つキャッシュ
の処理上限を越えている場合には、非ステージング動作
となるため、図15のスイッチ制御回路15を動作可能
状態として図16のステップ201へ移行する。
【0058】ステップ201において、キャッシュ判定
を行うためブロックカウンタ4により指定されたステー
タステーブル7の内容がキャッシュ判定回路10に取り
込まれ、そこで解析される。解析は、ステータステーブ
ル内のバリッド・フラグが有効を示し、且つ同ステータ
ステーブル内のブロックアドレスとキャッシュ判定回路
10に書き込まれたブロックアドレスが一致しているヒ
ットブロックの検出が行われる。ステップ202の判定
結果としてヒットブロックが検出されなかった場合に
は、ステップ203でミスヒットとしてディスク装置3
からの読み出したデータをホスト計算機1に転送出来る
よう図15のスイッチ制御回路15をセットする。一
方、ヒットブロックが検出された場合にはステップ20
4で、ディスク装置からの読み出しデータではなく、キ
ャッシュバッファからの読み出しデータをホスト計算機
1に転送するように、スイッチ制御回路15をセットす
る。次にステップ205でディスク装置への起動が実施
済みかどうかを確認する。未起動であればステップ20
6へ移行し、転送要求回路22がキャッシュ判定回路1
0から発行された判定完了信号53を受け、ディスク制
御装置12に対し転送要求信号58を発行する。その
後、ステップ207の処理としてセットカウンタ4の内
容がアドレスラッチ9へコピーされ、ステップ208で
ディスク制御装置12によるディスク装置からのデータ
読み出しが開始される。
【0059】ステップ209では、図15のデータマル
チプレクサ16が、スイッチ制御回路15から送出され
ているスイッチ切り替え信号55の状態がディスク転送
を示しているか、キャッシュ転送を示しているかを判定
し、ディスク転送を示していればステップ210へ分岐
し、ディスク装置3から読み出されてきたデータをディ
スク制御装置12のデータ転送同期信号56に合わせて
ホストアダプタ13を経由してホスト計算機1へ転送開
始する。一方、図15のスイッチ制御回路15から送出
されているスイッチ切り替え信号55の状態がキャッシ
ュ転送を示していれば、ステップ211へ分岐し、キャ
ッシュバッファ6の内容をディスク制御装置12のデー
タ転送同期信号56に同期させホストアダプタ13を経
由してホスト計算機1へ転送する。
【0060】ステップ210及びステップ211による
スイッチ制御回路15から送出されてくるスイッチ切り
替え信号55の状態に応じたデータ転送が開始された時
点で、ステップ212へ進み、セットカウンタ4の内容
が加算される。その後、再びステップ201に戻り、次
のセットに対するヒット/ミスヒット判定を実施する。
次に、ステップ205でディスク装置が起動済みであれ
ば、ステップ213へ進みステップ208で開始した前
の1ブロック分のデータ転送が完了するのを待つ。転送
完了の確認は、データカウンタ5から出力されるカウン
トゼロ信号57の検出により行う。前ブロックのデータ
転送完了が確認されると、ステップ215で全てのブロ
ック長分のブロック長のデータ転送が完了した事を確認
し、未完了であればステップ207へ移行し、現在のキ
ャッシュ判定のセットアドレスをラッチする。そして次
のブロックに対するキャッシュ判定処理に移る。
【0061】ここで、図17を例にとって説明すると、
ブロック1からブロック6の連続したデータをディスク
装置からキャッシュバッファにステージングせずに直接
ホスト計算機1へ転送する場合、ブロック1に対するキ
ャッシュ判定を実施する。結果は、図17に示す様にキ
ャッシュの範囲を越えているためミスヒットとなり、図
16のステップ203へ移行しディスク装置3からの読
み出したデータをホスト計算機1に転送出来るよう図1
5のスイッチ制御回路15をセットする。ステップ20
5では、まだディスク装置起動がなされていないのでス
テップ206へ分岐し、ステップ208で1ブロック分
のデータ転送が開始される。データ転送は、図15のス
イッチ制御回路15から送出されているスイッチ切り替
え信号55の状態が、ディスク装置側となっているため
図15のデータマルチプレクサ16は、ディスク装置か
らの読み出しデータをホスト計算機1に転送する。デー
タ転送が開始されると、ステップ212でセットアドレ
スを加算しステップ201へ戻り、図15に示すキャッ
シュ判定回路10は直ちに次のブロック2を検査する。
ブロック2は図17で示す様にキャッシュの範囲内とな
るが、キャッシュ判定結果はミスヒットとなる。このた
めブロック1の転送に引き続きブロック2もディスク装
置3からの読み出したデータをホスト計算機1に転送出
来るよう図15のスイッチ制御回路15をセットする。
ステップ205では、既にステップ206でディスク装
置起動がなされているので、ステップ213で先にステ
ップ208で開始した1ブロック分のデータ転送が完了
するのを待つ。1ブロック分のデータ転送が完了する
と、ステップ215で全てのブロック長分のブロック長
のデータ転送が完了しているかを確認する。しかし、図
17で示す様にまだ転送ブロック残があるためステップ
207へ移行し、現在のキャッシュ判定のセットアドレ
スをラッチする。次に、ステップ208で1ブロック分
のデータ転送が開始される。データ転送は、図15のス
イッチ制御回路15から送出されているスイッチ切り替
え信号55の状態がディスク装置側となっているため、
ブロック1と同様にデータマルチプレクサ16はディス
ク装置からの読み出しデータをホスト計算機1に転送す
る。ステップ212でセットアドレスを加算しステップ
201へ戻り、図15に示すキャッシュ判定回路10は
直ちに次のブロック3を検査する。キャッシュ判定結果
は、図17で示す様にセット1がヒットブロックである
ため、図16のステップ204へ進み図15のスイッチ
制御回路15をキャッシュ側にセットし直す。その後、
ステップ213で先のブロック2のデータ転送完了を確
認してステップ215へ進む。このように、図17のブ
ロック6まで順次転送を繰り返し、ブロック6の転送完
了をステップ213で確認した後、ステップ215で総
てのブロック転送が完了したことを確認して、読み出し
終了となる。
【0062】この実施例によれば、スイッチ制御回路1
5とデータマルチプレクサ16を用いてデータの流れを
制御することにより、キャッシュバッファに更新があっ
たブロックが不連続な位置で存在している場合でも、キ
ャッシュバッファから読みだしたヒットブロックに相当
するデータを読み捨てし、ディスク装置からの読み出し
に同期してキャッシュバッファから読み出すようにした
ので、一回のディスク装置起動で必要な読み出しをする
ことが出来る。また、ディスクアクセスに消費される時
間の大半はディスク起動時に発生する「シーク待ち時
間」と「回転待ち時間」であり、本実施例のようにヒッ
トブロックのディスク空読みを行うことにより、従来ア
クセス要求のあったデータが不連続なために複数回に分
割してディスク起動していたのを連続したデータとして
扱える様にした事で高速なディスクキャッシュ制御装置
を提供することができる。さらにどのような場合でも、
連続データとして一回のディスク起動で完了するため、
最大読み出し処理時間を保証することができる。
【0063】実施例6.本発明の第6の実施例につい
て、図18乃至図20を用いて説明する。図18は、本
発明の一実施例を示すためのセットアソシエイティブ方
式のストアイン型ディスクキャッシュ制御装置のブロッ
ク図である。図18において、15はホスト計算機1か
ら連続した複数ブロックの読み出し要求を受けステージ
ング動作を行わずにホスト計算機1へデータを転送する
場合にステータステーブル7の内容からデータマルチプ
レクサ16の制御信号を生成するスイッチ制御回路であ
る。16はホスト計算機1から連続した複数ブロックの
読み出し要求を受け、ステージング動作を行わずにホス
ト計算機1へデータを転送する場合、ディスク装置3か
らの読み出しデータとキャッシュバッファ6からの読み
出しデータのどちらかを選択してホスト計算機1に送る
為のデータマルチプレクサである。それ以外の構成要素
は、図5で説明したものと同様である。
【0064】次に、動作について説明する。図19にお
いて、二次元配列化されたステータステーブルを検索す
るために、ステップ220でウエイカウンタ8を初期化
し、ステップ221でスイッチ制御回路15に対しディ
スク装置3からの読み出しデータをホスト計算機1に転
送出来るよう指示する。その後、ステップ222でキャ
ッシュ判定を実施する。
【0065】ステップ226でヒットブロックか否かの
検査を実施する。検査結果がヒットブロックの場合には
現在のウエイ番号を記憶し、ステップ228でディスク
装置からの読み出しデータではなく、キャッシュバッフ
ァからの読み出しデータをホスト計算機1に転送するよ
うにスイッチ制御回路15をキャッシュ側にセットす
る。ヒットブロックでなかった場合には、ステップ22
5へ移行する。ステップ225では、未検査のウエイが
無いことを確認し、総てのウエイに対する判定が完了し
ているならば、図16のステップ205へ移行する。も
し未検査ウエイが有ればステップ224で図18のウエ
イカウンタ8内容を加算し、ステップ222へ戻り、次
のウエイに対するキャッシュ判定を行う。
【0066】ここで、図20を例にとって説明すると、
ブロック1からブロック6の連続したデータをディスク
装置からホスト計算機1に転送する場合、ブロック1を
最初に検査する。この場合、指定ブロックのコピーがキ
ャッシュバッファに無いため、ディスク装置からの読み
出しデータは直接ホスト計算機へ転送される。次にブロ
ック2では、ウエイ1及びウエイ2の両方にヒットが無
いため、ディスク装置からの読み出しデータがブロック
1同様に直接ホスト計算機へ転送される。ブロック3で
は、ウエイ2がヒットであるため、スイッチ制御回路に
よりホスト計算機への転送は、ディスク装置データでは
なくキャッシュバッファからの読み出しデータが転送さ
れる。ブロック4では、ウエイ1,2共にヒットが無い
ためディスク装置からの読み出しデータが、直接ホスト
計算機へ転送される。ブロック5では、ウエイ1にヒッ
トブロックが有るため、ホストへの転送は、ディスク装
置データではなくキャッシュバッファからの読み出しデ
ータが転送される。この間、ヒットブロックをキャッシ
ュバッファからホスト計算機へ転送している期間は、デ
ィスク装置からの読み出しデータは、読み捨てとなる。
そして、キャッシュ判定から桁上がり信号52の発生ま
での動作は、ブロック長分繰りかえされ、データの読み
出し、ホスト1計算機への転送が完了する。
【0067】この実施例によればステージングを伴わな
い読み取り要求に於いて、キャッシュバッファとステ−
タステーブルを二次元配列構造としてアクセスするため
の独立したウエイカウンタとキャッシュ判定結果でデー
タの転送方向を制御するスイッチ制御回路とデータマル
チプレクサ16を備えることにより、それぞれ異なった
配列のブロック位置を連続したブロックとしてアクセス
することができ、ホストからのデータ読み取り要求に対
してキャッシュバッファに更新があったブロックが不連
続な位置で存在している場合でも、ブロック単位でデー
タの流れを制御する事によりキャッシュバッファに更新
があったブロックを読み捨てし、ディスク装置からの読
み出しに同期してキャッシュバッファから読みだすた
め、一回のディスク装置起動で必要な読み出しをするこ
とが出来る。また、ディスク装置に於いてアクセスに消
費される時間の大半はディスク起動時に発生する「シー
ク待ち時間」と「回転待ち時間」であり、ヒットブロッ
クのディスク空読みを行った場合にアクセス要求のあっ
たデータが不連続なために複数回のディスク起動に分割
していたのを連続したデータとして扱える様にした事で
高速なディスクキャッシュ制御装置を提供することがで
きる。さらにどのような場合でも、連続データとして一
回のディスク起動で完了するため、最大読み出し処理時
間を保証することができる。
【0068】実施例7.本発明の第7の実施例を、図2
1乃至図27に基づいて説明する。図21においては、
1はホスト計算機、13はホストアダプタ、50はシス
テムバス、51はローカルバス、6はセットアソシエイ
ティブ方式のライトキャッシュバッファ、10はキャッ
シュ判定回路、99は非同期ライトバック制御部、11
はマイクロプロセッサ、12はディスク制御LSI、3
はディスク装置である。
【0069】次に動作について説明する。ホスト計算機
1は、システムバス50とホストアダプタ13を介し
て、ローカルバス51経由でディスク装置3へのリード
/ライトアクセスを要求してくる。このアクセス要求を
受け取ったマイクロプロセッサ11は、キャッシュ判定
回路10を起動する。キャッシュ判定回路10はキャッ
シュバッファ6上の各ブロックのデータを示すステータ
ステーブル7内を検索することにより、ヒット/ミスヒ
ットのキャッシュ判定をする。マイクロプロセッサ11
は、キャッシュヒットの場合はホスト計算機−キャッシ
ュバッファ6間でデータ転送を行う。ミスヒットの場合
は、ディスク制御LSI12を制御して、ホスト計算機
−ディスク装置3間のデータ転送を行う。
【0070】非同期ライトバック制御部99はキャッシ
ュバッファ6内のダーティブロックをディスク制御LS
I12に転送して、ホスト計算機1からのアクセスとは
非同期にディスク装置3に対してライトバック制御する
ものである。
【0071】本実施例は図21の非同期ライトバック制
御部99に特徴を持つものであり、その非同期ライトバ
ック制御部の詳細を図22に示す。
【0072】図22の非同期ライトバック回路18は、
図21のキャッシュバッファ6内のダーティブロックを
ディスク制御LSI12に転送し、ディスク装置3に対
して、ホスト計算機1からのアクセスとは非同期にライ
トバック制御させるための回路である。この非同期ライ
トバック回路18は、図21のマイクロプロセッサ11
とキャッシュ判定回路10からアクセスが可能な非同期
制御フラグ17によって制御される。
【0073】図22の非同期ライトバック回路18を制
御する非同期制御フラグ17の内容について説明する。
非同期制御フラグ17はセットライトバックとタイマラ
イトバックの2つのライトバック方式によるライトバッ
ク処理を非同期ライトバック回路18に対して行なわせ
るものである。ライトバックビット30は非同期ライト
バック回路18に対して、非同期ライトバックを行なう
旨セットされ、退避ビット31はライトバックビット3
0のコピーを保持する。ライトバックビット30と退避
ビット31は、どちらもセットアソシエイティブ方式を
構成するセットとウェイによる二次元構造のうちのセッ
トと同じ数のビット分用意されている。非同期起動ビッ
ト32は非同期ライトバック回路18を起動させるビッ
トであり、一方33のタイマ起動ビットは、タイマライ
トバックが発生した場合にセットされ、タイマライトバ
ックの二重起動防止に使用される。
【0074】図23は、セットライトバックとタイマラ
イトバックの2つの非同期ライトバックを制御するため
の非同期制御フラグの操作一覧である。また、図24に
非同期ライトバック回路の遷移図を示す。
【0075】セットライトバックとは、あるセット内に
ダーティブロックが一定量以上蓄積されたときに行なわ
れる非同期ライトバックである。セット内がダーティブ
ロックで飽和してしまうと、キャッシュミスヒット時の
リプレースにおいて必ずライトバックが発生しホスト計
算機に対する応答時間が長くなってしまう。そこでセッ
ト内に一定量以上のダーティブロックが蓄積された時点
で飽和を防ぐために優先的にそのセットを非同期ライト
バック処理するのがセットライトバックである。
【0076】次に、セットライトバックの詳細を示す。
ホスト計算機からのライトアクセス要求があった場合
に、図21のキャッシュ判定回路10がキャッシュ判定
をする際に、アクセスがあったセット内のダーティブロ
ック数をカウントをする。ここでダーティブロックが一
定数以上であることが検出されると、キャッシュ判定回
路10は該当するセットのライトバックビット30と退
避ビット31をONにしてから、非同期起動ビット32
をONにする。この操作によって、非同期ライトバック
回路18は、ライトバックビット30がONになってい
るセットに対してのみ非同期ライトバックを行なうの
で、ダーティブロックが一定数を超過したセットに対し
て、非同期ライトバックが開始されることになる。この
セットライトバックは、一度対象となったセット内のダ
ーティブロックがなくなるまで続けられ、そのセット内
のダーティーブロックがなくなるとライトバックビット
30と退避ビット31は共にOFFされる。あるセット
に対してセットライトバックがなされている間に、別の
セットのダーティブロックが一定数を超過した場合は、
同様にそのセットのライトバックビットがONされ、そ
のセットに対しても非同期ライトバックが行なわれる。
このようにしてセット内のダーティブロックがなくなる
とライトバックビットと退避ビットはOFFされ、全て
のライトバックビットがOFFになると、非同期起動ビ
ット32をOFFにして非同期ライトバックは終了す
る。退避ビットについては次に述べるタイマライトバッ
クとの併用の際にその役割を発揮するので以下で説明す
る。
【0077】タイマライトバックは、ディスク装置への
アクセスがそれ程頻繁でない時期を見計らって、全ての
セットに対して非同期ライトバック実行させるものであ
る。しかしながら非同期ライトバックを余りにも頻繁に
行なうと、大きく2つの問題が発生する。1つはホスト
計算機からのアクセス要求と非同期ライトバック処理が
重なってしまい、ホスト側への応答が遅くなるという問
題である。もう1つは、キャッシュバッファ上にダーテ
ィブロックをしばらく置いておくことにより、その後の
ホスト計算機からのアクセスによってダーティブロック
が連続になる可能性があり、そうなれば一度のディスク
装置に対するアクセスで済むところを、その都度ディス
ク装置への起動を数回に分けて非同期ライトバックする
ために、まとめ書きによるディスク装置へのアクセス抑
制効果を減少させることになってしまう。この点に関し
ては、ディスク装置に対する起動で最も時間がかかるの
は、シーク及び回転待ち時間であり、実際のデータ転送
にはさほど時間を要しないことを考えると、一括してデ
ィスク装置へ書き戻し処理を行なった方が効率が良いこ
とは容易に理解できる。そのために、前述のセットライ
トバックとは異なる非同期ライトバックの起動方法とし
て以下に述べるタイマライトバックを併用する。
【0078】以下にタイマライトバックの動作を示す。
タイマライトバックはホスト計算機からのリードアクセ
ス要求においてキャッシュミスヒットによるディスク装
置起動が発生する間隔を監視し、一定時間そのようなデ
ィスク装置起動がないことを確認してから発生する。こ
れによってホスト計算機からのアクセス要求との競合を
極力防ぐことになる。一定時間経過の監視は、マイクロ
プロセッサ11がリアルタイムクロック回路19からの
タイマ割り込みを検出する。リアルタイムクロック回路
19はマイクロプロセッサ11により、キャッシュミス
ヒットによるディスク装置起動時に、ディスク制御LS
I12を起動するのと同時に毎回リセットされており、
従って、ディスク装置起動が一定期間発生しなかった場
合においてのみ、タイマ割り込みが発生するものであ
る。タイマ割り込みを受けたマイクロプロセッサ11
は、タイマ起動ビット33がOFFになっているかどう
か確認する。タイマ起動ビット33がONになっている
場合は、すでにタイマライトバックが発生しているの
で、リアルタイムクロック回路19をリセットするだけ
で他の処理は何も行わない。一方、タイマ起動ビット3
3がOFFになっている場合は、リアルタイムクロック
回路19をリセットした後、ライトバックビット30の
内容を全てONにし、非同期起動ビット32とタイマ起
動ビット33をONにする。退避ビット31の内容はこ
こでは操作しない。
【0079】この操作によって非同期ライトバック回路
は、キャッシュの全セットに対して、非同期ライトバッ
クを開始するのである。そしてタイマライトバック中
に、キャッシュミスヒットによるディスク装置起動が新
たに発生すると、タイマライトバックによる非同期ライ
トバックを中止する。これは、ミスヒットによるディス
ク装置起動時には、マイクロプロセッサ11が前述した
リアルタイムクロック回路19をリセットする他に、退
避ビット31の内容をライトバックビット30の内容に
コピーし、タイマ起動ビット33をOFFにすることに
よって実現されている。この時、非同期起動ビット32
は操作をしない。退避ビットは、セットライトバックを
実行していたセットを示しているので、タイマライトバ
ック以前の状態に戻すことに相当する。タイマライトバ
ックは、セットライトバックと同様にしてライトバック
ビットがすべてOFFになるか、またはミスヒットによ
るディスク装置起動時に、終了することになる。
【0080】図25に非同期制御フラグの遷移例を示
す。この例は、まずセットライトバックが発生し、次に
タイマライトバックが発生、そしてタイマライトバック
がホスト計算機からのディスク装置アクセスで終了する
というものである。初期状態では、ライトバックビット
と退避ビットは全てOFFになっている。まずセット2
に対してセットライトバックが発生すると、ライトバッ
クビットと退避ビットのセット2を示すビットがONに
なり、非同期起動ビットもONされることによって、非
同期ライトバック回路はセット2の非同期ライトバック
を開始する。次にタイマライトバックが発生するとライ
トバックビットが全てONされ、非同期ライトバック回
路は全セットに対しての非同期ライトバックを開始す
る。そしてホスト計算機からのリード動作ミスヒットに
よるディスク装置起動が発生した場合には、退避ビット
の内容をライトバックビットにコピーすることによっ
て、タイマ起動前の状態(セット2に対してのみの非同
期ライトバック)に戻している。
【0081】次に、この非同期ライトバック回路18の
動作を図26のフローチャートによって説明する。図2
2の非同期ライトバック回路18はセットライトバック
とタイマライトバックのいずれかの非同期起動ビットが
ONになると動作を開始する。まず、図26のステップ
300,301でライトバックビットがONのセットを
検索し、ステップ302でそのセットにダーティブロッ
クがなければステップ309でそのセットに該当するラ
イトバックビットと退避ビットをOFFにして、次のラ
イトビットがONのセットに動作を移す。ステップ30
2でダーティブロックかセット内に見つかった場合は、
ステップ303で例えばLRU方式でライトバックの対
象にするブロックを決定する。ステップ304,305
で、そのブロックと連続の内容のブロックが次セットに
あるか検索し、あればまた次のセットを検索するという
ように連続ブロックが途切れるまで検索し、一度にライ
トバックするブロックを記憶する。そしてディスク制御
LSIにライトバックするブロックの位置を送り、ステ
ップ306のライトバック処理を行なう。ディスク制御
LSIからの割り込みが発生すると、ライトバックがホ
スト計算機からのアクセスによる強制終了なしで終了し
ているか確認してステップ300に戻る。強制終了によ
って正常終了していない場合はもう一度ライトバック処
理を行なう。正常終了によってステップ300に戻り、
次のライトバックがONのセットを検索するときには、
直前に処理をしたセットの次から行なうようにしてい
る。このことにより、ライトバックビットがONになっ
ているセットを平均的にライトバックしていくことがで
きる。非同期ライトバック回路は、図22の全てのライ
トバックビット30がOFFになると、非同期起動ビッ
ト32をOFFにして停止する。
【0082】次に、図27で非同期ライトバック回路に
よるライトバックの例を示す。6はセットアソシエイテ
ィブ方式のキャッシュバッファ、30はライトバックビ
ット、31は退避ビットである。この例ではライトバッ
クビットのセット1とセット4がONになっている。キ
ャッシュバッファ6はセットとウェイによる二次元構造
になっており、斜線部はダーティブロック、矢印はディ
スク装置上で連続していることを示している。尚、一般
的にセット内のライトバック対象ブロックはLRU方式
で決定しているが、説明を簡略にするために、セットの
上の方からライトバックすることにする。
【0083】まず、非同期ライトバック回路はライトバ
ックビットがONのセットを見つける。ここではライト
バックビットのセット1がONになっているのでセット
1を見て、ブロック60を決定する。そしてこれに連続
したブロック61と62をライトバックする。次にライ
トバックビットがONのセット4を見てブロック63を
ライトバックする。このように処理を進めていくと、ブ
ロック64,65,66,67,68の順でライトバッ
クが行われる。ブロック68をライトバックした後、ラ
イトバックビットがONになっているセット1を見る
が、すでにダーティブロックはないので、ライトバック
ビットと退避ビットのセット1をOFFし、セット4に
処理を移してブロック69をライトバックする。この
後、もう一度セット4を見て、ダーティブロックがない
ことを確認してからライトバックビットと退避ビットの
セット4をOFFし、図22の非同期起動ビット32を
OFFして停止するのである。
【0084】本実施例によれば、あるセット内にダーテ
ィブロックが一定量以上蓄積された時点でホスト計算機
からのアクセスとは非同期にライトバック処理を行うよ
うにしたので、キャッシュミスヒット時のリプレース処
理時間を短縮することができ、ホスト計算機に対する応
答時間の高速化を図ることが可能となる。また、ディス
ク装置に対するアクセス頻度の少ない動作状態を監視
し、キャッシュ上のダーティブロックがある程度まとま
った時点で非同期ライトバックを行うようにしたので、
ディスク装置に対するまとめ書きが期待でき、ディスク
装置起動の回数を抑制することができるので、効率の良
いディスクキャッシュ制御装置を構築できる。さらに、
2つの非同期起動方法を併用することによって、ダーテ
ィブロックが多くなったセットは強制的にセットライト
バックで、またディスク装置へのアクセスが少ない時は
全セットをタイマライトバックでディスク装置へ掃き出
すようにしたので、キャッシュバッファ上のダーティブ
ロックを全体的に均等に減らすことができる。
【0085】実施例8.本発明の第8の実施例を図2
1、図28、および図29に基づいて説明する。本実施
例は、図21のキャッシュ判定回路10に特徴を持つも
のである。そのキャッシュ判定回路の詳細を図28に示
す。
【0086】図において、キャッシュ判定回路10はヒ
ット判定部35と、リプレースブロック決定部36と、
ライトバック回数算出部37を備えている。図21のス
テータステーブル7を用いて、セットアソシエイティブ
方式ストアインでキャッシュバッファ6上のデータのキ
ャッシュ判定を行うのが、キャッシュ判定回路10であ
る。
【0087】次にこのキャッシュ判定回路10の動作概
要について説明する。ライトキャッシュとは、ライトア
クセスしたデータをキャッシュバッファ上に置くもので
ある。キャッシュバッファにダーティブロックを置き、
さらに非同期ライトバックを行なうことによりホスト計
算機からのアクセスの際にディスク装置を起動しないで
済むことになる。しかし、ダーティブロックをキャッシ
ュバッファ上に置くことは、リプレースの際のライトバ
ックを招くおそれがある。これは、キャッシュバッファ
上にホスト計算機からデータを置くための空きブロック
を作る時に、ホスト計算機からのアクセスとは無関係に
ダーティブロックをディスク装置にライトするものであ
る。このライトバックが一度のディスク装置起動です済
むならば、ライトキャッシュがない場合と応答時間は変
らないが、アクセス長が長くリプレースのためのライト
バックによって複数回のディスク装置起動が発生してし
まう場合には、寧ろライトキャッシュの存在しないシス
テムの方が、応答時間は短くなってしまう。そこで、こ
のキャッシュ判定回路10は、ホスト計算機からのライ
トアクセスにおいてリプレースのために複数回のディス
ク装置起動が発生する場合は、キャッシュ上でヒットし
ているブロックを無効化して、キャッシュバッファ上に
ダーティブロックを置かずにディスク装置に直接ライト
してしまうものである。この処理によって、ライトキャ
ッシュがない方が応答時間が早くなるといった事態を防
ぐことができるのである。
【0088】この詳細動作を図29のフローチャートに
よって説明する。ステップ401でライトコマンドによ
るアクセス対象ブロックが、キャッシュバッファ上にあ
るかどうかのヒット判定を行なう。ここでアクセス対象
ブロックが全てヒットしている場合は、ステップ408
のキャッシュストア処理(キャッシュバッファ上の該当
ブロックに上書き)して終了する。一部のブロック、ま
たは全ブロックがミスヒットしている場合は、キャッシ
ュバッファ上に格納するエリアをステップ402で決定
する。ステップ403で格納するエリア内のダーティブ
ロックの有無によりライトバックの発生の判定をする。
ライトバックが発生しない場合は、ステップ408のキ
ャッシュストア処理をして終了する。ライトバックが発
生する場合はその回数をステップ404でカウントす
る。ライトバックが1回だけ発生する場合は、リプレー
スのためのライトバックを行ない、エリアを確保してか
らステップ408のキャッシュストア処理を行なう。ラ
イトバックが2回以上発生する場合は、ステップ405
でヒットしているブロックを無効化した後、ステップ4
06でディスク装置へ直接ライトを行なって処理を終了
する。
【0089】本実施例によれば、ライトデータをキャッ
シュバッファ上に置くようにし、ライトアクセスにおい
てリプレースがある基準回数値以上発生する場合に、キ
ャッシュバッファ上でヒットしているブロックを無効化
して、ダーティブロックを置くことなく直接ディスク装
置へライトするようにしたのでライトアクセスにおける
応答時間を保証した効率のよいディスクキャッシュ装置
が実現できる。
【0090】実施例9.本発明の第9の実施例を図2
1、図28、図30、および図31に基づいて説明す
る。本実施例は、第8の実施例においてホスト計算機か
らのライトアクセスでの応答時間の保証をしたものに対
し、さらにキャッシュバッファ6の構造を変更すること
によって、ホスト計算機からのリードアクセスでも応答
時間を保証するものである。本実施例におけるキャッシ
ュバッファ6の詳細を図30に示す。
【0091】本実施例では、図28の構成のキャッシュ
判定回路10を使用する。そして、図30のようにリー
ドデータのみを置くリード専用エリア20と、リード/
ライトデータのどちらも置ける汎用エリア21に分割さ
れたセットアソシエイティブ方式ストアインのキャッシ
ュバッファ6を持つことを特徴とする。
【0092】次に、動作について説明する。第8の実施
例において、ライトキャッシュに対するホスト計算機か
らのライトアクセス時のペナルティについて説明した
が、リードアクセスに対しても同様なペナルティが発生
する。リードアクセスでミスヒットした場合は、ライト
動作とは異なり、必ずディスク装置起動が発生する。さ
らにリプレースのためにライトバックが発生することに
なれば、ディスク装置起動の回数はキャッシュがない場
合よりも多くなる。従って、リプレースによるライトバ
ックがなければ、キャッシュがない時とディスク装置起
動回数は同じなので応答時間を保証することができるこ
とになる。そこで、リプレースにおいてライトバックす
る必要のないデータ、つまりリードデータしか置くかな
い領域をキャッシュバッファに設定するのである。この
領域の存在により、ディスク装置起動の回数を1回に抑
制することが可能になる。
【0093】次に、動作の詳細を図31のフローチャー
トによって説明する。ステップ501でリードコマンド
によるアクセス対象ブロックがキャッシュバッファ上に
あるかどうかのヒット判定を行なう。ここでアクセス対
象ブロックが全てヒットしている場合は、ステップ50
6のキャッシュリード処理を実行して終了する。一部の
ブロック、または全ブロックがミスヒットしている場合
は、キャッシュバッファ上に格納するエリアをステップ
502で決定する。ステップ503で格納するエリア内
のダーティブロックの有無によりライトバックの発生の
有無を判定する。ライトバックが発生しない場合は、ス
テップ505でステージングをしてからステップ506
のキャッシュリード処理をして終了する。ライトバック
が1回でも発生する場合(この点が第8の実施例と異な
る)は、ステップ504でキャッシュバッファ上の格納
エリアをリード専用エリア内のウェイに指定して、ステ
ップ505のステージングをしてからステップ506の
キャッシュリード処理を行なう。
【0094】本実施例によれば、キャッシュバッファを
リードデータ専用エリアとリード・ライトデータのいづ
れも置ける汎用エリアに分割して管理し、ライトバック
が発生する場合にはリード専用エリアにウエイを指定し
てステージングを行うようにしたので、ホスト計算機か
らのリードアクセスにおいても応答時間を保証したディ
スクキャッシュ制御装置が実現できる。
【0095】
【発明の効果】この発明は以上説明したようにして構成
されているので、以下のような効果を奏する。
【0096】この発明によれば、アクセスブロックに対
するキャッシュ判定をディスク装置に対するデータ転送
時間を利用して行う様にしたため、ディスク起動のため
のオーバヘッド時間を最小に抑えることができ、キャッ
シュ制御装置の高速処理を実現する事ができる。
【0097】また、ディスク装置からの読み出しデータ
のキャッシュバッファへのステージング動作において、
キャッシュのヒット、ミスヒットの判定結果をキャッシ
ュバッファに対する書込み許可信号として使用し、ブロ
ック単位でキャッシュバッファのヒットブロックに対す
る書込み制御を行うようにしたので、キャッシュバッフ
ァ上におけるヒット、ミスヒットブロック位置が不連続
であっても、ディスク装置に対し一回の起動による連続
データと見なしてデータ転送することができるため、キ
ャッシュ制御装置の高速化を実現することができる。
【0098】また、キャッシュのヒット、ミスヒットの
判定結果を用いてキャッシュバッファおよびディスク装
置からのデータの流れをブロック単位で切り替え制御す
るようにしたので、キャッシュバッファ上におけるヒッ
ト、ミスヒットブロックが不連続に存在していても、一
回の起動による連続データと見なしてホスト計算機にデ
ータ転送することができるため、キャッシュ制御装置の
高速化を実現することができる。
【0099】また、あるセット内にダーティブロックが
一定量以上蓄積された時点でホスト計算機からのアクセ
スとは非同期にライトバック処理を行うようにしたの
で、キャッシュミスヒット時のリプレース処理時間を短
縮することができ、ホスト計算機に対する応答時間の高
速化を実現することができる。
【0100】また、ディスク装置に対するアクセス状況
を監視し、キャッシュバッファ上のダーティブロックが
ある程度まとまった時点で非同期ライトバック処理を行
うようにしたのでディスク装置に対するまとめ書きが期
待でき、ディスク装置の起動回数を抑制することができ
るので、効率のよいディスクキャシュ制御装置が実現で
きる。
【0101】さらに、ライトデータをキャッシュバッフ
ァ上に置く場合において、バッファブロックのリプレー
スが一定回数以上発生する場合に、キャッシュバッファ
上でヒットしているブロックを無効化し、ダーティブロ
ックを残すことなく直接ディスク装置へライトするよう
にしたので、ライトアクセスにおける応答時間を保証し
た効率のよいディスクキャシュ制御装置が実現できる。
【0102】加えて、キャッシュバッファをリード専用
エリアとリード・ライトデータのいづれも置ける汎用エ
リアに分割して管理し、ライトバックが発生する場合に
はリード専用エリアにウエイを指定してステージングを
行うようにしたので、ホスト計算機からのリードアクセ
スにおいても応答時間を保証した効率のよいディスクキ
ャシュ制御装置が実現できる。
【図面の簡単な説明】
【図1】 本発明の第1の実施例におけるディスクキャ
ッシュ制御装置のブロック図である。
【図2】 本発明の第1の実施例におけるディスクキャ
ッシュ制御装置の動作を示すタイミングチャートであ
る。
【図3】 本発明の第1の実施例のキャッシュ判定回路
に対するステータステーブル構造とブロックアドレスの
関係を示す図である。
【図4】 本発明の第1の実施例におけるステータステ
ーブルの内容を示す図である。
【図5】 本発明の第2の実施例におけるセットアソシ
エイティブ方式のディスクキャッシュ制御装置のブロッ
ク図である。
【図6】 本発明の第2の実施例のキャッシュ判定回路
におけるウエイカウンタとセットカウンタ及びブロック
アドレスの関係を示す図である。
【図7】 本発明の第2の実施例におけるウエイ更新動
作を示すタイミングチャートである。
【図8】 本発明の第3の実施例におけるダイレクトマ
ッピング方式のストアイン型ディスクキャッシュ制御装
置のブロック図である。
【図9】 本発明の第3の実施例におけるダイレクトマ
ッピング方式での読み出し動作を示すフローチャートで
ある。
【図10】 本発明の第3の実施例におけるステージン
グの動作を示す図である。
【図11】 本発明の第3の実施例におけるメモリ制御
回路を示す概略図である。
【図12】 本発明の第4の実施例におけるセットアソ
シエイティブ方式のストアイン型ディスクキャッシュ制
御装置のブロック図である。
【図13】 本発明の第4の実施例におけるセットアソ
シエイティブ方式での読み出し動作を示すフローチャー
トである。
【図14】 本発明の第4の実施例におけるステージン
グの実行例を示す図である。
【図15】 本発明の第5の実施例におけるダイレクト
マッピング方式のストアイン型ディスクキャッシュ制御
装置のブロック図である。
【図16】 本発明の第5の実施例におけるダイレクト
マッピング方式での読み出し動作を示すフローチャート
である。
【図17】 本発明の第5の実施例のダイレクトマッピ
ング方式での非ステージング処理におけるディスク装置
とキャッシュバッファの関係を示す図である。
【図18】 本発明の第6の実施例におけるセットアソ
シエイティブ方式のストアイン型ディスクキャッシュ制
御装置のブロック図である。
【図19】 本発明の第6の実施例におけるセットアソ
シエイティブ方式での読み出し動作を示すフローチャー
トである。
【図20】 本発明の第6の実施例のセットアソシエイ
ティブ方式での非ステージング処理におけるディスク装
置とキャッシュバッファの関係を示す図である。
【図21】 本発明の第7乃至第9の実施例におけるデ
ィスクキャッシュ制御装置のブロック図である。
【図22】 本発明の第7の実施例における非同期ライ
トバック制御部の詳細説明図である。
【図23】 本発明の第7の実施例における非同期ライ
トバック回路の非同期制御部による制御方法を説明する
図である。
【図24】 本発明の第7の実施例における非同期ライ
トバック回路の状態遷移を示す図である。
【図25】 本発明の第7の実施例における非同期制御
部の内部動作を説明する図である。
【図26】 本発明の第7の実施例のディスクキャッシ
ュ制御装置における非同期ライトバック制御を示すフロ
ーチャートである。
【図27】 本発明の第7の実施例におけるキャッシュ
バッファと非同期制御部の動作を示す図である。
【図28】 本発明の第8の実施例におけるキャッシュ
判定回路を示す図である。
【図29】 本発明の第8の実施例における書き込み要
求動作を示すフローチャートである。
【図30】 本発明の第9の実施例におけるキャッシュ
バッファを示す図である。
【図31】 本発明の第9の実施例におけるキャッシュ
動作を示すフローチャートである。
【図32】 従来技術におけるステージング処理フロー
を示す図。
【図33】 従来技術における非ステージング処理フロ
ーを示す図。
【図34】 従来技術におけるライトアクセス時の処理
フローを示す図。
【図35】 従来技術におけるリードアクセス時の処理
フローを示す図。
【符号の説明】
1 ホスト計算機、2 ディスクキャッシュ制御装置、
3 ディスク装置、4セットカウンタ、5 データカウ
ンタ、6 キャッシュバッファ、7 ステータステーブ
ル、8 ウエイカウンタ、9 アドレスラッチ、10
キャッシュ判定回路、11 マイクロプロセッサ、12
ディスク制御LSI、13 ホストアダプタ、14
メモリ制御回路、15 スイッチ制御回路、16 デー
タマルチプレクサ、17 非同期制御部フラグ、18
非同期ライトバック回路、19リアルタイムクロック回
路、20 リード専用エリア、21 汎用エリア、22
転送要求回路、30 ライトバック・ビット、31
退避ビット、32 非同期起動ビット、33 タイマ起
動ビット、35 ヒット判定部、36 リプレースブロ
ック決定部、37 ライトバック回数検出部、50 シ
ステムバス、51 ローカルバス、53 ラッチ信号、
54 キャッシュバッファ書き込み許可信号、55 ス
イッチ切り替え信号、56 データ転送同期信号、57
カウントゼロ信号、58 転送要求信号、59 キャ
ッシュ判定結果信号。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 ストアインで、且つダイレクトマッピン
    方式のディスクキャッシュ制御装置において、 ホスト計算機からのライトデータ及びディスク装置から
    のステージングデータを一次元配列形式のブロック単位
    で格納しておくキャッシュバッファと、 前記キャッシュバッファ上に指定されたデータブロック
    が存在するか否かをブロック単位で判定するキャッシュ
    判定回路と、 前記キャッシュバッファと同一ブロック構成を有し、キ
    ャッシュバッファを構成する各ブロックにデータが書き
    込まれているか否かを示すバリッド・フラグとキャッシ
    ュブロックデータ内容とディスク装置内の対応するデー
    タが一致しているか否かを示すダーティフラグとキャッ
    シュブロックデータのディスク装置上におけるデータ位
    置を示すアドレス情報から成るステータステーブルと、 前記キャッシュブロック内におけるデータを指定するデ
    ータカウンタと、 前記データカウンタからの桁上がり信号によりカウント
    アップされ前記キャッシュブロック及び前記ステータス
    テーブルをブロック単位で指定するブロックカウンタ
    と、 前記ブロックカウンタの値を前記キャッシュ判定回路か
    らのラッチ信号により一時保存するカウンタラッチを設
    けることによりキャッシュ判定動作と前ブロックに対す
    るデータ転送を並行して実行するようにしたことを特徴
    とするディスクキャッシュ制御装置。
  2. 【請求項2】 ストアインで且つセットアソシエイティ
    ブ方式のディスクキャッシュ制御装置において、 ホスト計算機からのライトデータ及びディスク装置から
    のステージングデータをブロック単位でセットとウェイ
    による二次元配列形式で格納しておくキャッシュバッフ
    ァと、 前記キャッシュバッファ上に指定されたデータブロック
    が存在するか否かをブロック単位で判定するキャッシュ
    判定回路と、 前記キャッシュバッファと同一のブロック構成を有し、
    キャッシュバッファを構成する各ブロックにデータが書
    き込まれているか否かを示すバリッド・フラグとキャッ
    シュバッファ上のデータブロックの内容とディスク装置
    内のデータが一致しているか否かを示すダーティ・フラ
    グとキャッシュブロックデータのディスク装置上におけ
    るデータ位置を示すアドレス情報から成るステータステ
    ーブルと、 前記キャッシュブロック内におけるデータを指定するデ
    ータカウンタと、 前記キャッシュブロック及び前記ステータステーブルを
    二次元配列のセット単位で指定し前記データカウンタか
    らの桁上がり信号によりカウントするブロックカウンタ
    と、 前記キャッシュブロック及び前記ステータステーブルを
    二次元配列のウェイ単位で指定しマイクロプロセッサか
    らの指示でカウントするウェイカウンタと、 前記ブロックカウンタと前記ウェイカウンタの値をキャ
    ッシュ判定回路からのラッチ信号により一時保存するカ
    ウンタラッチを設けることによりキャッシュ判定動作と
    前ブロックに対するデータ転送を並行して実行するよう
    にしたことを特徴とするディスクキャッシュ制御装置。
  3. 【請求項3】 ホスト計算機から連続した複数ブロック
    の読み出し要求を受け前記キャッシュバッファへのステ
    ージング動作を行う場合において、 キャッシュバッファに対するキャッシュバッファ書き込
    み許可信号をブロック単位で制御するメモリ制御回路を
    設けたことを特徴とする請求項1記載のディスクキャッ
    シュ制御装置。
  4. 【請求項4】 ホスト計算機から連続した複数ブロック
    の読み出し要求を受け前記キャッシュバッファへのステ
    ージング動作を行う場合において、 キャッシュバッファに対するキャッシュバッファ書き込
    み許可信号をブロック単位で制御するメモリ制御回路を
    設けたことを特徴とする請求項2記載のディスクキャッ
    シュ制御装置。
  5. 【請求項5】 ディスク装置からの読み出しデータとキ
    ャッシュバッファからの読み出しデータのいづれかを選
    択してホスト計算機に送るためのデータマルチプレクサ
    と、 前記ステータステーブルの内容に基づいてデータマルチ
    プレクサの制御信号を生成するスイッチ制御回路を備え
    ることにより連続した複数ブロックの読み出し要求を受
    けた場合においてステージング動作を行うことなくホス
    ト計算機へデータ転送するようにしたことを特徴とする
    請求項1記載のディスクキャッシュ制御装置。
  6. 【請求項6】 ディスク装置からの読み出しデータとキ
    ャッシュバッファからの読み出しデータのいづれかを選
    択してホスト計算機に送るためのデータマルチプレクサ
    と、 前記ステータステーブルの内容からデータマルチプレク
    サの制御信号を生成するスイッチ制御回路を備えること
    により連続した複数ブロックの読み出し要求を受けた場
    合においてステージング動作を行うことなくホスト計算
    機へデータを転送するようにしたことを特徴とする請求
    項2記載のディスクキャッシュ制御装置。
  7. 【請求項7】 ストアインで且つセットアソシエイティ
    ブ方式のディスクキャッシュ制御装置において、 ホスト計算機からのライトデータ及びディスク装置から
    のステージングデータをブロック単位でセットとウェイ
    による二次元配列形式で格納しておくキャッシュバッフ
    ァと、 前記キャッシュバッファ上に指定されたデータブロック
    が存在するか否かをブロック単位で判定するキャッシュ
    判定回路と、 前記キャッシュバッファと同一のブロック構成を有し、
    キャッシュバッファを構成する各ブロックにデータが書
    き込まれているか否かを示すバリッド・フラグとキャッ
    シュバッファ上のデータブロックの内容とディスク装置
    内のデータが一致しているか否かを示すダーティ・フラ
    グとキャッシュブロックデータのディスク装置上におけ
    るデータ位置を示すアドレス情報から成るステータステ
    ーブルと、 前記キャッシュブロック内におけるデータを指定するデ
    ータカウンタと、 前記キャッシュブロック及び前記ステータステーブルを
    二次元配列のセット単位で指定し前記データカウンタか
    らの桁上がり信号によりカウントするブロックカウンタ
    と、 前記キャッシュブロック及び前記ステータステーブルを
    二次元配列のウェイ単位で指定しマイクロプロセッサか
    らの指示でカウントするウェイカウンタと、 非同期ライトバック制御部を備え、 前記非同期ライトバック制御部は、 セットアソシエイティブ方式を構成するセットとウエイ
    による2次元構造においてセット数に対応したフラグ数
    を有するライトバック情報と、 前記ライトバック情報の退避情報と、 あるセット内にダーティブロックが一定量以上蓄積され
    た場合に起動されるセットライトバックと、ホスト計算
    機からのキャッシュミスヒットによるディスクアクセス
    を監視し該ディスクアクセスが一定期間発生していない
    状態で起動されるタイマライトバックのいづれかに基づ
    くライトバック処理起動時にセットされる非同期起動情
    報と、 経過時間を計時し、キャッシュミスヒットによるディス
    ク装置起動時にリセットされ、予め設定された時間内に
    該ディスク起動が行われなかった場合に割り込みを発生
    させるリアルタイムクロック回路部と、 前記リアルタイムクロック回路部からの割り込み発生を
    受けてセットされるタイマ起動情報と、 前記非同期起動情報のセットを受けてセットライトバッ
    クとタイマライトバックに基づくライトバック処理を行
    う非同期ライトバック回路を備えるようにしたことを特
    徴とするディスクキャッシュ制御装置。
  8. 【請求項8】 前記キャッシュ判定回路はライトバック
    回数算出部とを有し、 前記ライトバック回数算出部は、ホスト計算機からのラ
    イトアクセス時においてキャッシュブロック上のリプレ
    ース対象ブロックでライトバック動作が必要な場合に該
    ライトバック動作回数をカウントし、 該カウント数が基準値を越える場合にヒットブロックを
    無効化して直接ディスク装置へ書込み処理するようにし
    たことを特徴とする請求項7記載のディスクキャッシュ
    制御装置。
  9. 【請求項9】 前記キャッシュバッファはリードデータ
    格納専用エリアとリードデータおよびライトデータのい
    ずれをも格納できる汎用エリアに分割されたセットアソ
    シエイティブ方式ストアインキャッシュバッファ構成を
    有し、 キャッシュブロック上のリプレース対象ブロックにおい
    てライトバックが発生するか否かを判定し、該ライトバ
    ックが発生する場合はキャッシュバッファ上の格納エリ
    アをリードデータ専用のウエイに指定した後ステージン
    グ処理を行うようにしたことを特徴とする請求項8記載
    のディスクキャッシュ制御装置。
JP7134042A 1995-05-31 1995-05-31 ディスクキャッシュ制御装置 Pending JPH08328959A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7134042A JPH08328959A (ja) 1995-05-31 1995-05-31 ディスクキャッシュ制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7134042A JPH08328959A (ja) 1995-05-31 1995-05-31 ディスクキャッシュ制御装置

Publications (1)

Publication Number Publication Date
JPH08328959A true JPH08328959A (ja) 1996-12-13

Family

ID=15119019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7134042A Pending JPH08328959A (ja) 1995-05-31 1995-05-31 ディスクキャッシュ制御装置

Country Status (1)

Country Link
JP (1) JPH08328959A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258789A (ja) * 2004-03-11 2005-09-22 Toshiba Solutions Corp ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法
JP2006178858A (ja) * 2004-12-24 2006-07-06 Denso Wave Inc データ処理端末,データ処理端末のデータ管理方法及びコンピュータプログラム
JP2009032305A (ja) * 2007-07-24 2009-02-12 Toshiba Corp 情報記録装置及びその制御方法
JP2009211222A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP2011141657A (ja) * 2010-01-06 2011-07-21 Yokogawa Electric Corp データ処理装置
US8706950B2 (en) 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
US12032831B2 (en) 2008-03-01 2024-07-09 Kioxia Corporation Memory system

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258789A (ja) * 2004-03-11 2005-09-22 Toshiba Solutions Corp ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法
JP2006178858A (ja) * 2004-12-24 2006-07-06 Denso Wave Inc データ処理端末,データ処理端末のデータ管理方法及びコンピュータプログラム
JP4513554B2 (ja) * 2004-12-24 2010-07-28 株式会社デンソーウェーブ データ処理端末,データ処理端末のデータ管理方法及びコンピュータプログラム
JP2009032305A (ja) * 2007-07-24 2009-02-12 Toshiba Corp 情報記録装置及びその制御方法
JP2009211222A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US8706950B2 (en) 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
US9201717B2 (en) 2008-03-01 2015-12-01 Kabushiki Kaisha Toshiba Memory system
US10901625B2 (en) 2008-03-01 2021-01-26 Toshiba Memory Corporation Memory system
US11409442B2 (en) 2008-03-01 2022-08-09 Kioxia Corporation Memory system
US12032831B2 (en) 2008-03-01 2024-07-09 Kioxia Corporation Memory system
JP2011141657A (ja) * 2010-01-06 2011-07-21 Yokogawa Electric Corp データ処理装置

Similar Documents

Publication Publication Date Title
JP2566701B2 (ja) 共有キャッシュ内のデータ・ユニットに対する所有権の変更制御装置
JP3577331B2 (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
CN101446923B (zh) 一种响应于指令而清洗高速缓冲存储器线的装置和方法
KR100278328B1 (ko) 캐시 미스 버퍼
CA1238984A (en) Cooperative memory hierarchy
US8725987B2 (en) Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data
EP0412247B1 (en) Cache memory system
JP5536658B2 (ja) バッファメモリ装置、メモリシステム及びデータ転送方法
JP4298800B2 (ja) キャッシュメモリにおけるプリフェッチ管理
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
US20050086435A1 (en) Cache memory controlling apparatus, information processing apparatus and method for control of cache memory
JPH10232827A (ja) 先取りキャッシュ書戻しの方法と装置
US7237067B2 (en) Managing a multi-way associative cache
US20100217937A1 (en) Data processing apparatus and method
JPH08272682A (ja) ロード・バッファを備えたロード/ストア・ユニット内にて切り離されたタグ及びデータ・アレイへのアクセス方法及びそのアレイを有する装置
JP3236287B2 (ja) マルチプロセッサシステム
JPH06187150A (ja) キャッシュメモリ中でインストラクションを保管する方法及び回路
US6061765A (en) Independent victim data buffer and probe buffer release control utilzing control flag
US5287512A (en) Computer memory system and method for cleaning data elements
JPH08328959A (ja) ディスクキャッシュ制御装置
KR20190087500A (ko) 메모리 어드레스 변환
US6934810B1 (en) Delayed leaky write system and method for a cache memory
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム
JP2000347941A (ja) キャッシュメモリ装置
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ