JPH07334425A - ディスクキャッシュ制御方式 - Google Patents

ディスクキャッシュ制御方式

Info

Publication number
JPH07334425A
JPH07334425A JP6132293A JP13229394A JPH07334425A JP H07334425 A JPH07334425 A JP H07334425A JP 6132293 A JP6132293 A JP 6132293A JP 13229394 A JP13229394 A JP 13229394A JP H07334425 A JPH07334425 A JP H07334425A
Authority
JP
Japan
Prior art keywords
cache
block
write
disk
data
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
JP6132293A
Other languages
English (en)
Inventor
Katsuhito Takatori
功人 鷹取
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 JP6132293A priority Critical patent/JPH07334425A/ja
Publication of JPH07334425A publication Critical patent/JPH07334425A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 ライトバック方式のディスクキャッシュの性
能の向上を図るディスクキャッシュ制御方式を提供す
る。 【構成】 ホスト1とディスク装置2とのデータ転送を
制御するディスク制御装置3は、ディスク装置2のセク
タよりも整数倍大きいキャッシュブロックをキャッシュ
メモリ4の管理単位として管理するキャッシュ制御部5
と、キャッシュメモリ4上のデータの状態をブロック情
報として管理するキャッシュ管理テーブル6と、を有す
る。ブロック情報は、キャッシュブロックの有効、更新
及びキャッシュブロック内の各セクタ毎の有効、更新等
キャッシュブロック内の状態に関する情報を含んでお
り、この情報に基づいてキャッシュメモリ4のデータの
有効性を判断し、LRUが低くアクセス要求のあるキャ
ッシュブロック近傍のキャッシュブロックからライトバ
ック処理を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、ディスクキャッシュ
制御方式、特にライトバック方式のディスクキャッシュ
において、その性能の向上とキャッシュメモリ上で発生
するエラー処理に関するものである。
【0002】
【従来の技術】ディスク装置はその機械的な構造上一旦
アクセスするとシーク時間と回転待ち時間を要し、アク
セス時間が主記憶等に比べて非常に遅くなってしまう。
そこでディスク制御装置上にデータの一部を保持するキ
ャッシュメモリを設けている。このキャッシュの処理
は、ディスク装置へ一旦アクセスしたらホストコンピュ
ータ(以下、ホストという)からの要求以上にデータを
リードするように、ディスクキャッシュをブロックに区
切り管理していた。データを余分にリードする時間は上
記機械的なアクセス時間にくらべれば許容できる値だか
らである。このようにして、一度ディスクにアクセスし
たら、余分にデータをリードしておき、次に連続してア
クセスした場合にはディスク装置にアクセスせず、高速
に処理できるようにしていた。
【0003】例えば、特開平5−314006号公報で
は、キャッシュのブロックを16セクタに分けて管理し
ている。これにより、ディスク装置からキャッシュメモ
リへのリードでは、ホストからの要求が16セクタ未満
の場合でも16セクタ分のリードを行うので、先読み効
果がありキャッシュのヒット率を向上させる。一方、ラ
イトの場合には、ホストからの要求が16セクタ未満で
あると、一旦キャッシュブロック上の足りないデータを
補完してからデータをライトするいわゆるリードモディ
ファイライトが発生してしまう。
【0004】また、ライトバック方式のディスクキャッ
シュでは、ホストからの要求に対してキャッシュメモリ
上に空きがなくなった時行われるリプレース処理におい
て、そのリプレースするキャッシュブロックが更新され
ていたならば、まず、その更新データをディスク装置へ
書き戻し、その後、ホストからの要求に該当するデータ
をキャッシュメモリに読み込んだ後、ホストからの要求
をキャッシュメモリにライトする処理が必要になり、性
能の低下につながっている。つまり、ホストから1つの
アクセス要求に対して、更新データの書き戻し及びライ
ト要求に該当するデータの読込みという2度のディスク
装置へのアクセスが必要になる。これを回避するため
に、あるタイミングで更新データをディスク装置へ書き
戻すライトバック処理をホストからの要求とは別に行
い、上記のような1つのアクセス要求に対して、2度の
ディスク装置へのアクセスをなるべく少なくするように
して、上記のようなリプレース処理のオーバーヘッドを
短縮している。
【0005】例えば、特開平5−303528号公報で
は、ライトバックを起動するタイマーを設け、そのタイ
マー値はキャッシュメモリ上にある更新データの数によ
って決定し、その数が多ければ、頻繁にライトバックを
行い、逆に少なければ、ライトバックをあまり行わない
よう制御している。そして、そのタイミングに応じてキ
ャッシュブロックのLRU順位で下位のキャッシュブロ
ックからライトバックを行っていた。
【0006】また、キャッシュブロックからのデータの
読出しが訂正不能なエラーが発生した場合、このブロッ
クがキャッシュメモリ上にある間はエラーを常にホスト
へ報告できるが、リプレース処理でこのキャッシュブロ
ックをディスク装置へ書き戻すと、誤ったデータを書き
込んでしまい、以降エラーは検出できなくなる。そのた
め、何等かの方法でエラー情報を残す必要がある。
【0007】例えば、特開平5−189346号公報で
は、エラーを示すエラーフラグをディスク装置の物理セ
クタへID情報と共に書き込み、読出し時にこの情報か
らエラーの判別を行っている。
【0008】
【発明が解決しようとする課題】従来のディスクキャッ
シュ制御は以上のように構成されているので、ホストか
らのアクセス要求がキャッシュブロックよりも小さい場
合に、リードモディファイライトが必要になり、性能の
低下につながっていた。
【0009】また、ライトバックのキャッシュブロック
を上記のように決定していたので、LRUが低くライト
バックに決定したキャッシュブロックと、実際にホスト
からのアクセス要求によってリプレースされるキャッシ
ュブロックとが必ずしも一致するとは限らず、せっかく
ライトバック処理を実行していても、実際に必要になる
キャッシュブロックには空きができていないという問題
点があった。
【0010】また、エラー情報をディスク装置の物理セ
クタにID情報と共に直接書く方法は、直接ディスク装
置を制御するような装置では良いが、最近広く普及して
いるSCSIのディスク装置を使用している制御装置で
は、ディスク装置の物理セクタへ直接書き込むことがで
きないという問題点があった。
【0011】この発明は上記のような問題点を解消する
ためになされたもので、キャッシュブロックをディスク
装置の最少記億単位であるセクタよりも大きくし、ホス
トからのキャッシュブロック未満のライトアクセス要求
があってもリードモディファイライトによるリプレース
処理のオーバーヘッドをなくすディスクキャッシュ制御
方式を提供することを目的とする。
【0012】また、ライトバック処理は、ホストからの
要求によってリプレースされ得るブロックを行うディス
クキャッシュ制御方式を提供することを目的とする。
【0013】更に、広く普及しているSCSIディスク
装置を使用しても、キャッシュメモリ上のエラーをハー
ドウェアの追加なしで簡単にエラー情報を残せるディス
クキャッシュ制御方式を提供することを目的とする。
【0014】
【課題を解決するための手段】以上の目的を達成するた
めに、請求項1記載の発明は、ホストコンピュータとデ
ィスク装置との間のデータ転送をキャッシュメモリを用
いて制御するディスク制御装置による、前記ホストコン
ピュータからのライトデータは前記キャッシュメモリに
だけ書き込み前記ディスク装置には書き込まずに前記ホ
ストコンピュータへ処理終了を伝えるライトバック方式
のディスクキャッシュ制御方式において、前記ディスク
装置の最少記憶単位よりも整数倍大きい単位を前記キャ
ッシュメモリの管理単位として管理するキャッシュ制御
手段と、前記キャッシュメモリを前記管理単位に分割し
たキャッシュブロックと一対一に対応させ前記キャッシ
ュブロック及び前記最少記憶単位の状態を含むブロック
情報を保持するキャッシュ管理テーブルと、を有し、前
記ブロック情報に含まれるキャッシュブロック内の状態
に基づいて前記キャッシュメモリのデータの有効性を判
断することを特徴とする。
【0015】請求項2記載の発明は、請求項1記載のデ
ィスクキャッシュ制御方式において、前記ブロック情報
は、キャッシュブロックに含まれているデータの有効性
及び更新の有無と、キャッシュブロック内の各セクタ毎
の有効性及び更新の有無と、に関する情報を含むことを
特徴とする。
【0016】請求項3記載の発明は、ホストコンピュー
タとディスク装置との間のデータ転送をキャッシュメモ
リを用いて制御するディスク制御装置による、前記ホス
トコンピュータからのライトデータは前記キャッシュメ
モリにだけ書き込み前記ディスク装置には書き込まずに
前記ホストコンピュータへ処理終了を伝えるライトバッ
ク方式のディスクキャッシュ制御方式において、前記キ
ャッシュメモリ上の更新データをディスク装置へ書き戻
すライトバック処理がなされるキャッシュブロックを決
定するライトバックブロック決定手段と、前記ライトバ
ックブロック決定手段からのライトバック要求をキュー
上に保持するライトバック要求キュー手段と、前記ライ
トバック要求キュー手段に従って前記キャッシュブロッ
クを前記ディスク装置へ書き戻すライトバック制御手段
と、を有し、ライトバック処理がなされるキャッシュブ
ロックは前記ホストコンピュータからのアクセスがあっ
たキャッシュブロック近傍のキャッシュブロックを選択
することを特徴とする。
【0017】請求項4記載の発明は、請求項1または請
求項3記載のディスクキャッシュ制御方式において、前
記ライトバック方式による前記キャッシュメモリからの
データの読出し時にエラーが発生した場合には、前記デ
ィスク装置への書込みデータに誤ったエラーコードを付
加して前記ディスク装置へライトコマンドを発行するこ
とを特徴とする。
【0018】
【作用】この発明におけるディスクキャッシュ制御方式
は、ホストからのアクセス要求がキャッシュブロックの
サイズよりも小さいときに、キャッシュ管理テーブルが
有するキャッシュブロック内の最少記憶単位の状態に関
する情報でキャッシュブロック内のデータの有効性を管
理するので、キャッシュブロック内の足りないデータを
リードするリードモディファイライトを必要としない。
従って、ディスク装置へのアクセス時間を短縮すること
ができる。
【0019】また、ホストからのアクセス要求があった
とき、ライトバックブロック決定手段は、アクセス要求
に対応するキャッシュブロックの近傍を主にライトバッ
クする。これは、将来ホストにアクセスされリプレース
を行わなければならないであろうキャッシュブロックを
あらかじめライトバックすることに相当する。従って、
キャッシュとしての性能の向上を図ることができる。
【0020】更に、キャッシュメモリからのデータの読
出しに訂正不能のエラーが発生した場合には、誤ったエ
ラーコードをデータに付加してライトコマンドを発行す
るので、次回この部分をディスク装置から読み出したと
きに、ホストにエラーを確実に報告することができる。
【0021】
【実施例】以下、この発明の一実施例を図について説明
する。図1には、ホスト1と、ホスト1からのデータを
記憶するディスク装置2と、ホスト1とディスク装置2
とのデータ転送を制御するディスク制御装置3と、が示
されている。このディスク制御装置3は、ホスト1から
のライトデータはキャッシュメモリにだけ書き込みディ
スク装置2には書き込まずにホスト1へ処理終了を伝え
るライトバック方式によりライトバック処理を行う。本
実施例におけるディスク制御装置3は、ホスト1とディ
スク装置2との間で転送するデータを一部保持するキャ
ッシュメモリ4と、ホスト1とディスク装置2との転送
データがキャッシュメモリ4上にあるかどうかを判断
し、あれば極力キャッシュメモリ4上からデータ転送を
行うよう制御するキャッシュ制御手段としてのキャッシ
ュ制御部5と、キャッシュメモリ4上のデータの状態を
管理するキャッシュ管理テーブル6と、を有する。この
キャッシュ管理テーブル6によりキャッシュメモリ4の
ヒットをキャッシュ制御部5が判定する。また、このキ
ャッシュ制御部5は、ディスク装置2の最少記憶単位で
あるセクタよりも整数倍大きい単位をキャッシュメモリ
4の管理単位として管理することを特徴とする。
【0022】図2はキャッシュ管理テーブル6の構成を
表した図であり、ディスク装置2の管理単位として分割
した4セクタを1つのキャッシュブロックとして管理す
るためのブロック情報60を含み、図では8ウェイセッ
トアソシエイティブ方式のキャッシュメモリ4の構成に
対応させてブロック情報60を持たせていることを表し
ている。
【0023】図3はブロック情報60の構成を示した図
である。ブロック情報60は、キャッシュブロックと一
対一に対応して設けられている。このブロック情報60
には、キャッシュブロックに含まれているデータが有効
であるかを示すブロック有効フラグ600と、キャッシ
ュブロックに含まれているデータにホスト1からのデー
タをライトして、かつまだディスク装置2へはライトし
ていないデータがあることを示すブロック更新フラグ6
01と、がキャッシュブロックに含まれているデータの
有効性及び更新の有無に関する情報として含まれてい
る。また、キャッシュブロック内の各セクタ対応にデー
タが有効であるかを示すセクタ有効フラグ602と、同
じく各セクタ対応に更新データがあるかを示すセクタ更
新フラグ603と、がキャッシュブロック内の各セクタ
毎の有効性及び更新の有無に関する情報として含まれて
いる。これらの情報、すなわち各キャッシュブロック内
の状態はフラグで保持されている。本実施例において
は、4セクタを1つのキャッシュブロックとして管理す
るため、セクタ有効フラグ602及びセクタ更新フラグ
603は、それぞれ4つのフラグにより構成されること
になる。また、ブロック情報60が保持するデータのブ
ロックアドレス604は、ディスク装置2のセクタアド
レスの上位一部を示すものである。更に、ディスク装置
2が複数台あった場合の識別のためのユニットアドレス
605と、このブロック情報のアクセス頻度を示すため
のLRUフラグ606と、を含む。
【0024】本実施例において特徴的なことは、ブロッ
ク情報60にキャッシュブロック内の状態を持たせ、こ
の状態に基づいてキャッシュメモリ4のデータの有効性
を判断するようにしたことである。これにより、ディス
ク装置2へのアクセスを極力抑えることができるのでキ
ャッシュとしての性能を向上させることができる。
【0025】次に動作について説明する。
【0026】まず、ホスト1からディスク装置2へアド
レスaから2セクタ分のデータのリード要求があったと
する。キャッシュ制御部5はキャッシュ管理テーブル6
を検索し、ホスト1からの要求データがキャッシュメモ
リ4上に存在するかをそのセクタを管理するブロック情
報60の中のブロック有効フラグ600をチェックす
る。この結果、ブロック有効フラグ600がオフであれ
ばキャッシュメモリ4上に該当するデータがないと判断
し、ディスク装置2からデータを読み出す。この時、ホ
スト1からのリード要求はアドレスaから2セクタだけ
であるが、キャッシュ制御部5によるディスク装置2へ
のリード要求は、この2セクタを含むキャッシュブロッ
クサイズで行う。すなわち、図4(a)に示すように、
この2セクタが1つのキャッシュブロックに含まれるな
ら1つのキャッシュブロックサイズである4セクタのリ
ード要求を出す。また、図4(b)に示すように、この
2セクタが2つのキャッシュブロックに含まれるなら、
8セクタのリード要求をディスク装置2へ出しデータを
読み出す。こうして、キャッシュ制御部5は、図5に示
したようにキャッシュメモリ4上にホスト1からの要求
を含むデータを置くことにより先読み効果を発揮させる
と共に、ホスト1からリード要求があった2セクタだけ
をホスト1へ転送する。また、この読み込んだ全てのキ
ャッシュブロックのブロック情報60のブロック有効フ
ラグ600をオンにし、更に、このブロック情報60の
セクタ有効フラグ602も全てオンにすることでキャッ
シュメモリ4上のデータを有効とする。なお、このとき
のブロック更新フラグ601及びセクタ更新フラグ60
3は、まだ更新していないので全てオフである。
【0027】続いて、ホスト1からディスク装置2へア
ドレス(a+2)から2セクタのリード要求があったと
する。キャッシュ制御部5は、キャッシュ管理テーブル
6を検索し、要求データがキャッシュメモリ4上に存在
するかをチェックする。今度は該当するセクタを管理す
るブロック情報60のブロック有効フラグ600がオン
であり、かつ、セクタ有効フラグ602がホスト1の要
求セクタ分オンである。そのため、図6のようにホスト
1の要求する2セクタのデータがキャッシュメモリ4上
に存在することが判明するので、ホスト1からの要求デ
ータはキャッシュメモリ4から転送され、このときのホ
スト1からのリード要求に対してディスク装置2へはア
クセスしない。これにより、ホスト1へ短時間でデータ
転送を完了する。つまり、先読みキャッシュの効果が出
ている。
【0028】一方、ディスク装置2へデータをライトす
る場合は次の通りである。ホスト1からディスク装置2
へアドレスbから2セクタのライト要求があったとす
る。キャッシュ制御部5はキャッシュ管理テーブル6を
検索し、ホスト1からの要求データがキャッシュメモリ
4上に存在するかをそのセクタを管理するブロック情報
60の中のブロック有効フラグ600をチェックする。
この結果、ブロック有効フラグ600がオフでありキャ
ッシュメモリ4上に該当するデータがないと判断された
とする。今度はホスト1からのライトデータをキャッシ
ュメモリ4上に置くための空き領域を探す。それには、
ブロック有効フラグ600がオフのブロックを探す。も
し、空き領域がなければ、LRU等の適当な規則に従っ
てキャッシュブロックを決め、そのキャッシュブロック
を空き領域に決定する。このとき、そのキャッシュブロ
ックのブロック情報60のブロック更新フラグ601が
オンでなければ、単に、そのブロック有効フラグ600
をオフにするだけで良い。同じデータがディスク装置2
上にもあるからである。ブロック更新フラグ601がオ
ンであったときのみ当該キャッシュブロックのデータの
セクタ更新フラグ603がオンとなっている部分のデー
タをディスク装置2へ書き戻し、ブロック有効フラグ6
00をオフにして、このキャッシュブロックを空き領域
とする。その後、ホスト1からのライトデータをキャッ
シュメモリ4にライトし、この時点でホスト1へは終了
を伝える。このとき、ディスク装置2へはアクセスしな
いので、その分の時間が短縮できる。また、キャッシュ
制御部5は、当該ブロック情報60のブロック有効フラ
グ600及びブロック更新フラグ601をオンにするこ
とでキャッシュメモリ4上のデータを有効とし、当該デ
ータに有効に更新があったことを保持するために該当す
るセクタ更新フラグ603とセクタ有効フラグ602も
オンにする。
【0029】続いて、ホスト1からディスク装置2へア
ドレス(b+2)から2セクタのライト要求があったと
する。キャッシュ制御部5は、キャッシュ管理テーブル
6を検索する。今度はホスト1からのデータを置くべき
キャッシュブロックを管理するブロック情報60のブロ
ック有効フラグ600がオンであるので、このキャッシ
ュブロック内の該当する領域にホスト1のデータをライ
トする。ディスク装置2へのアクセスはない。そして、
ホスト1へは終了を伝え、当該キャッシュブロックが更
新されたことにより該当するセクタ更新フラグ603及
びセクタ有効フラグ602をオンにする。
【0030】ここで、ホスト1からのアクセスがリード
だったとする。すなわち、ホスト1からディスク装置2
へアドレス(b+2)から2セクタのリード要求があっ
とする。キャッシュ制御部5はキャッシュ管理テーブル
6を検索する。ブロック要求フラグはオンなので、この
キャッシュブロックに所望のデータがあると一旦は判断
する。ところが、ホスト1からの要求アドレスに対応す
るセクタ有効フラグ602をチェックするとオフになっ
ているので、実際にはキャッシュ上にデータがないと判
断する。従って、この場合にはディスク装置2へリード
要求を出し、キャッシュにデータを読み込む。そして、
このデータをホスト1へ転送すると共に、そのセクタ有
効フラグ602をオンする。セクタ更新フラグ603は
オンにしない。
【0031】本実施例によれば、ブロック情報60を持
たせたキャッシュブロック単位及びセクタ単位に管理さ
れるキャッシュブロック内の状態に基づいて、ホスト1
からの要求に対しディスクキャッシュの制御を行うの
で、ディスク装置2へのアクセスを極力抑えることがで
きるので、ホスト1からみたディスク装置2へのアクセ
ス時間を短縮することができる。
【0032】次に、本実施例におけるライトバック制御
方式について説明する。
【0033】図7は、このライトバック制御方式を説明
するための図である。なお、図1と同様の要素には同じ
符号を付ける。図7には、キャッシュメモリ4上の更新
データをディスク装置2へ書き戻すライトバック処理が
なされるキャッシュブロックを決定するライトバックブ
ロック決定手段としてのキャッシュ制御部5と、キャッ
シュ制御部5により決定されたキャッシュブロックにラ
イトバック処理を行うためのライトバック要求をキュー
上に保持するライトバック要求キュー手段としてのライ
トバック要求キュー8と、ライトバック要求キュー8に
従って当該キャッシュブロックをディスク装置2へ書き
戻すライトバック制御手段としてのライトバック制御部
7と、が示されている。なお、キャッシュ制御部5とラ
イトバック制御部7とを1つのディスク制御装置3の制
御手段としてもよい。
【0034】本実施例において更に特徴的なことは、ラ
イトバック処理がなされるキャッシュブロックは、ホス
ト1からのアクセスがあったキャッシュブロック近傍の
キャッシュブロックを選択することである。これによ
り、将来ホストにアクセスされリプレースを行わなけれ
ばならないであろう当該キャッシュブロックをあらかじ
めライトバックすることになるので、キャッシュとして
の性能の向上を図ることができる。
【0035】次に動作について図1と図7を使用して説
明する。
【0036】ホスト1からディスク装置2のアドレスc
へのアクセス要求がきたとする。キャッシュ制御部5
は、アドレスcを含むキャッシュブロックをway数分
検索する。そして、way1、setx のブロックに所
望のデータがあり、上述した手順でデータをホスト1へ
転送する。この検索の時に、その検索したsetx とそ
の近傍としてsetx+1 の併せて16個のキャッシュブ
ロックの中からブロック更新フラグ601がオンで、か
つLRUが低いブロックを選んでおく。そして、このキ
ャッシュブロック(図7においてキャッシュメモリ4内
のハッチングしたブロック)をライトバック要求キュー
8にエントリする。なお、ライトバック制御部7は、こ
のライトバック要求キュー8からキャッシュブロックア
ドレスを読み出し、順次ディスク装置2へセクタ更新フ
ラグ603に基づいてライトバック処理を行う。
【0037】続いて、ホスト1からディスク装置2のア
ドレス(c+2)へのアクセス要求がきたとする。この
アドレスに対応するキャッシュブロックは、setx+1
のセットに相当するが、そこには空きがないとすると、
LRUの低いキャッシュブロックをリプレースする必要
が生じる。本実施例では、図7におけるキャッシュメモ
リ4内のway5、setx+1 のキャッシュブロックが
これに相当する。このとき、ライトバック制御部7によ
って、すでに当該キャッシュブロックをライトバックし
てあるので、この時点でライトバックする必要がない。
直ちに該当するブロック有効フラグ600をオフにする
だけで、ホスト1からのデータを当該キャッシュブロッ
ク内の部分にライトすることができる。
【0038】このようにして、ホスト1へ短い時間で終
了を通知できるので、キャッシュとしての性能を向上さ
せることができる。
【0039】なお、上記実施例では、ホスト1からアク
セス要求のあったキャッシュブロックの近傍として隣接
されたsetx+1 と併せて16個の中からライトバック
されるキャッシュブロックを選択したが、これに限られ
ず頻繁にアクセスされるであろう範囲を設定すればよ
い。
【0040】次に、本実施例においてキャッシュメモリ
4のアクセス時にエラーが発生した時の処理について説
明する。
【0041】図8はこのエラー発生時の処理を説明する
ための図であり、キャッシュメモリ4と、キャッシュ制
御部5と、ディスク装置2と、キャッシュ制御部5がデ
ィスク装置2へ故意に誤ったエラーコードとしてECC
(Error Correction Code )を付けて転送するデータ5
0と、を表したものである。なお、図1と同様の要素に
は同じ符号を付ける。
【0042】本実施例において更に特徴的なことは、キ
ャッシュメモリ4からのデータの読出し時に訂正不能エ
ラーが発生した場合には、ディスク装置2への書込みデ
ータに故意に誤ったECCを付加してディスク装置2へ
ライトコマンドを発行することである。これにより、次
回この部分をディスク装置2から読み出したときに、ホ
スト1にエラーを確実に報告することができる。
【0043】次に動作について説明する。
【0044】ホスト1からディスク装置2のアドレスd
へのアクセス要求がきたとする。キャッシュ制御部5
は、setx+1 のセット中からこのアドレスdに対応す
るキャッシュブロックを検索する。しかし、キャッシュ
メモリ4上に当該キャッシュブロックがなかった場合、
キャッシュメモリ4上に空きを作るため、リプレース処
理を行う。図8に示したように、リプレースを行うキャ
ッシュブロックをFとし、これに含まれるディスク装置
2の各セクタアドレスをf〜f+3とする。このキャッ
シュブロックに対応するブロック更新フラグ601がオ
ンだった場合、まず、このキャッシュブロック内の更新
されたデータをディスク装置2へライトバックする必要
がある。そのために、このキャッシュブロックを読み出
しディスク装置2へ転送する。
【0045】ここで、このキャッシュブロックの読出し
処理においてECC2ビットエラー等の訂正不能エラー
が発生したとする。このエラーは後にこのアドレスfを
ホスト1がアクセスしたときに必ずエラー報告する必要
がある。しかし、この時点では、ホスト1は別のアドレ
スdに関して要求を出しているのでエラーを報告するこ
とはできない。すると、キャッシュ制御部5は、一旦デ
ィスク装置2へのデータ転送を止める。そして、あらた
に、ECC付きのライトコマンド(writelon
g)をディスク装置2へ実行し実際のデータに故意に誤
ったECCを付加したデータ50を転送する。ディスク
装置2では、このコマンドで転送されるECCのチェッ
クは行わずに、そのまま正しいECCとして書き込む。
転送が完了したら、キャッシュブロックFに対応するブ
ロック有効フラグ600をオフにして、空き領域とす
る。この時、アドレスfにエラーがあったことを特に記
憶しておく必要はない。そして、空き領域となったキャ
ッシュブロックFへホスト1からデータをライトする。
【0046】次に、ホスト1からディスク装置2へアド
レスfのアクセス要求がきたとする。キャッシュ制御部
5は、このアドレスfがキャッシュメモリ4上に存在す
るかを検索する。しかし、上述した処理ですでにリプレ
ースされているので、アドレスfに該当するデータはキ
ャッシュメモリ4上にないことがブロック有効フラグ6
00を検索することで判明する。そのため、ディスク装
置2のアドレスfにリード要求を出しデータを読み出
す。ディスク装置2からのデータ転送が終了したとき、
ディスク装置2の当該アドレスfには誤ったECCが書
き込まれていることから確実にECCエラーが発生し、
ホスト1には訂正不能エラーが発生した旨を報告する。
キャッシュ制御部5は、ディスク装置2からエラーが報
告されると、この転送に関係したキャッシュブロックの
ブロック有効フラグ600をオフにすると共に、ホスト
1へアドレスfでエラーが発生したと終了を伝える。
【0047】以上のようにして、本実施例によれば、確
実にアドレスfにエラーが発生したことをホスト1へ伝
えることができる。
【0048】また、上記のように発生したエラーを処理
するため、特別な構成要素を必要とせず、広く普及とし
ているSCSIディスク装置等にもにも使用することが
できる。
【0049】
【発明の効果】以上のように、請求項1及び2記載の発
明によれば、リード動作時にキャッシュブロック単位に
データを読み込むでホストからの要求以上のデータを読
み込むため先読み効果があるということと、ライト動作
時にホストはブロック情報に従うことによりリードモデ
ィファライトを行わずにディスク装置へアクセスするこ
とができるため処理時間が短縮できることと、を同時に
実現することが可能となる。これにより、キャッシュの
性能を向上させることが可能となる。
【0050】また、複数セクタを1つのブロックとして
管理する二次効果として、キャッシュ管理テーブルの容
量を少なくすることが可能となる。
【0051】請求項3記載の発明によれば、ライトバッ
クブロック決定手段は、ホストがアクセスしてリプリー
ス処理が必要になると思われるアクセス要求に対応する
キャッシュブロックの近傍のキャッシュブロックを主に
あらかじめライトバックするようにしたので、実際のリ
プレース処理時にはディスクアクセスせず、キャッシュ
の性能を向上させることが可能となる。
【0052】請求項4記載の発明によれば、キャッシュ
メモリにおけるエラー発生時にディスク装置に誤ったエ
ラーコードを付加してデータを書き込むようにしたの
で、当該データの読込み時には確実にエラーが発生した
ことを認識させることが可能となる。
【0053】また、上記処理には、特別な構成要素を必
要とせず、広く普及としているSCSIディスク装置に
も使用することが可能となる。
【図面の簡単な説明】
【図1】 この発明に係るディスクキャッシュ制御方式
の一実施例によるディスク制御装置を示したブロック図
である。
【図2】 この実施例によるキャッシュ管理テーブルの
構成を示した図である。
【図3】 この実施例によるブロック情報の構成を示し
た図である。
【図4】 この実施例によるキャッシュメモリへの読込
みを示す模式図であり、(a)は読み込むデータが1つ
のキャッシュブロックに含まれる場合、(b)は読み込
むデータが2つのキャッシュブロックに含まれる場合、
を示した図である。
【図5】 この実施例によるホストへのデータ転送を示
す模式図である。
【図6】 この実施例によるホストへのデータ転送を示
す模式図である。
【図7】 この実施例によるライトバック制御方式の処
理を説明するための図である。
【図8】 この実施例によるキャッシュメモリのエラー
発生時の処理を説明するための図である。
【符号の説明】
1 ホスト、2 ディスク装置、3 ディスク制御装
置、4 キャッシュメモリ、5 キャッシュ制御部、6
キャッシュ管理テーブル、7 ライトバック制御部、
8 ライトバック要求キュー、60 ブロック情報、6
00 ブロック有効フラグ、601 ブロック更新フラ
グ、602 セクタ有効フラグ、603セクタ更新フラ
グ、604 ブロックアドレス、605 ユニットアド
レス、606 LRUフラグ。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 ホストコンピュータとディスク装置との
    間のデータ転送をキャッシュメモリを用いて制御するデ
    ィスク制御装置による、前記ホストコンピュータからの
    ライトデータは前記キャッシュメモリにだけ書き込み前
    記ディスク装置には書き込まずに前記ホストコンピュー
    タへ処理終了を伝えるライトバック方式のディスクキャ
    ッシュ制御方式において、 前記ディスク装置の最少記憶単位よりも整数倍大きい単
    位を前記キャッシュメモリの管理単位として管理するキ
    ャッシュ制御手段と、 前記キャッシュメモリを前記管理単位に分割したキャッ
    シュブロックと一対一に対応させ前記キャッシュブロッ
    ク及び前記最少記憶単位の状態を含むブロック情報を保
    持するキャッシュ管理テーブルと、を有し、前記ブロッ
    ク情報に含まれるキャッシュブロック内の状態に基づい
    て前記キャッシュメモリのデータの有効性を判断するこ
    とを特徴とするディスクキャッシュ制御方式。
  2. 【請求項2】 請求項1記載のディスクキャッシュ制御
    方式において、 前記ブロック情報は、キャッシュブロックに含まれてい
    るデータの有効性及び更新の有無と、キャッシュブロッ
    ク内の各セクタ毎の有効性及び更新の有無と、に関する
    情報を含むことを特徴とするディスクキャッシュ制御方
    式。
  3. 【請求項3】 ホストコンピュータとディスク装置との
    間のデータ転送をキャッシュメモリを用いて制御するデ
    ィスク制御装置による、前記ホストコンピュータからの
    ライトデータは前記キャッシュメモリにだけ書き込み前
    記ディスク装置には書き込まずに前記ホストコンピュー
    タへ処理終了を伝えるライトバック方式のディスクキャ
    ッシュ制御方式において、前記キャッシュメモリ上の更
    新データをディスク装置へ書き戻すライトバック処理が
    なされるキャッシュブロックを決定するライトバックブ
    ロック決定手段と、 前記ライトバックブロック決定手段からのライトバック
    要求をキュー上に保持するライトバック要求キュー手段
    と、 前記ライトバック要求キュー手段に従って前記キャッシ
    ュブロックを前記ディスク装置へ書き戻すライトバック
    制御手段と、 を有し、ライトバック処理がなされるキャッシュブロッ
    クは前記ホストコンピュータからのアクセスがあったキ
    ャッシュブロック近傍のキャッシュブロックを選択する
    ことを特徴とするディスクキャッシュ制御方式。
  4. 【請求項4】 請求項1または請求項3記載のディスク
    キャッシュ制御方式において、 前記ライトバック方式による前記キャッシュメモリから
    のデータの読出し時にエラーが発生した場合には、前記
    ディスク装置への書込みデータに誤ったエラーコードを
    付加して前記ディスク装置へライトコマンドを発行する
    ことを特徴とするディスクキャッシュ制御方式。
JP6132293A 1994-06-14 1994-06-14 ディスクキャッシュ制御方式 Pending JPH07334425A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6132293A JPH07334425A (ja) 1994-06-14 1994-06-14 ディスクキャッシュ制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6132293A JPH07334425A (ja) 1994-06-14 1994-06-14 ディスクキャッシュ制御方式

Publications (1)

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

Family

ID=15077908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6132293A Pending JPH07334425A (ja) 1994-06-14 1994-06-14 ディスクキャッシュ制御方式

Country Status (1)

Country Link
JP (1) JPH07334425A (ja)

Cited By (2)

* 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 ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法
JP2012517644A (ja) * 2009-02-13 2012-08-02 インディリンクス カンパニー リミテッド 高速記憶装置をキャッシュとして使用するストレージシステム

Cited By (2)

* 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 ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法
JP2012517644A (ja) * 2009-02-13 2012-08-02 インディリンクス カンパニー リミテッド 高速記憶装置をキャッシュとして使用するストレージシステム

Similar Documents

Publication Publication Date Title
US7111134B2 (en) Subsystem and subsystem processing method
US4875155A (en) Peripheral subsystem having read/write cache with record access
US5522032A (en) Raid level 5 with free blocks parity cache
CA1288870C (en) Method of handling disk sector errors in dasd cache
US8745334B2 (en) Sectored cache replacement algorithm for reducing memory writebacks
AU673488B2 (en) Cache memory system and method of operating the cache memory system
EP0114190B1 (en) Data storage hierarchy
US4935825A (en) Cylinder defect management system for data storage system
US5615353A (en) Method for operating a cache memory using a LRU table and access flags
US5463765A (en) Disk array system, data writing method thereof, and fault recovering method
US20070168754A1 (en) Method and apparatus for ensuring writing integrity in mass storage systems
US5590300A (en) Cache memory utilizing address translation table
US7962700B2 (en) Systems and methods for reducing latency for accessing compressed memory using stratified compressed memory architectures and organization
US9390020B2 (en) Hybrid memory with associative cache
JPH023215B2 (ja)
US5420983A (en) Method for merging memory blocks, fetching associated disk chunk, merging memory blocks with the disk chunk, and writing the merged data
US5586290A (en) Cache system of external storage device
US5293618A (en) Method for controlling access to a shared file and apparatus therefor
JPH05303528A (ja) ライトバック式ディスクキャッシュ装置
US6782444B1 (en) Digital data storage subsystem including directory for efficiently providing formatting information for stored records
US5867685A (en) System and method for sequential detection in a cache management system
JPH07334425A (ja) ディスクキャッシュ制御方式
JP2000285022A (ja) ディスク制御装置
JP3335919B2 (ja) ディスクキャッシュ制御装置
JP2000047942A (ja) キャッシュメモリ制御装置及びその制御方法