JPH06236322A - ディスクアレイ用キャッシュシステム - Google Patents

ディスクアレイ用キャッシュシステム

Info

Publication number
JPH06236322A
JPH06236322A JP5310894A JP31089493A JPH06236322A JP H06236322 A JPH06236322 A JP H06236322A JP 5310894 A JP5310894 A JP 5310894A JP 31089493 A JP31089493 A JP 31089493A JP H06236322 A JPH06236322 A JP H06236322A
Authority
JP
Japan
Prior art keywords
cache
data
disk
array
parity
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.)
Granted
Application number
JP5310894A
Other languages
English (en)
Other versions
JP2837341B2 (ja
Inventor
Clive S Oldfield
クリーブ・スコット・オールドフィールド
Nicholas Shaylor
ニコラス・シェイラー
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06236322A publication Critical patent/JPH06236322A/ja
Application granted granted Critical
Publication of JP2837341B2 publication Critical patent/JP2837341B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】 【目的】 パリティデータを生成するに必要なディスク
に対する冗長なアクセスを減少あるいはなくすこと。 【構成】 キャッシュシステムは、ホストシステムとデ
ィスクアレイ間で転送したデータを保持するためのキャ
ッシュメモリを有し、そのディスクアレイはデータをス
トライド状に記憶させた複数のディスク記憶装置を有
し、各ストライドはアレイの2以上の記憶装置の各々に
マルチセクタ・ユニットと他のアレイ記憶装置に関連し
たマルチセクタ・パリティブロックを有し、単一物とし
てキャッシュ内で操作されるキャッシュデータユニット
としてのキャッシュにストライドを形成するデータと関
連のパリティをリンクする手段を有する。 【効果】 リストの底部のキャッシュユニットをディス
クにコミットさせるとき、ストライドを作るデータの大
部分がキャッシュ内に存在する可能性が増大し、それゆ
えパリティデータを生成するに必要なディスクへの冗長
なアクセスの数が減少あるいは無くなる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、多数のデータ記憶ディ
スク装置から構成するディスクアレイに使用するキャッ
シュシステムに関し、特に、ディスクアレイのディスク
への冗長アクセスの数を減少することができるキャッシ
ュシステムに関する。
【0002】
【従来の技術】近年、ディスクアレイへの関心が高まっ
てきている。ディスクアレイは、ホストシステムとディ
スクドライブ間のデータ転送を制御する1以上の制御エ
レメントを介してホストシステムに接続した多数のディ
スクドライブから成る。ディスクアレイは高データ記憶
容量、高信頼性、使用中のシステムとの高データ転送率
が得られるようにしてある。
【0003】多数の異なったアレイ構造が提案されてき
た。「A Case for Redundant A
rrays of Inexpensive disk
s(RAID)」のタイトルの文献(ACM SIGM
OD 協議会会報、イリノイ州シカゴ、1988年6月
1−3、109−116頁)は、異なったレベルのデー
タ管理を提供する5レベルのアレイ(RAIDS1−
5)の詳細を示している。RAIDレベルの各々は、多
数の安価なディスクドライブを互いにリンクさせること
によりユーザがデータ記憶容量を増加することを可能に
する。このRAIDシステムは、2個のドライバ(RA
ID 1)へデータの2つのコピーを記憶させるか、あ
るいはオリジナルデータを多数のサブセクションに分割
したり、データをアレイの2以上のドライブに細分化す
るなどしてドライブの故障によるデータの損失に対する
保護をおこなう。細分化したデータと同等のデータを演
算し、専用のパリティドライブ(RAID−4)に記憶
させる。データ保持ドライブの一つが故障した場合、故
障したドライブ(RAID2−5)のデータを再生する
ために、そのパリティデータや細分化したデータの残り
データを利用することができる。従って、RAID2−
5の構造はデータ転送が並行度の増加を見込めると仮定
して、データ・スループットを増大できるものである。
この速度増加は並行度に依存し、オリジナルデータを分
割するオーバヘッドは、多くなり、より短くなり、副転
送へ変わり、かつ、平均転送長さと副転送のサイズ間の
関係に関連するパラメータセレクションへと変化する。
RAID4およびRAID5のより詳細な構造は上記会
報に記載されている。
【0004】安価なディスク(RAID−5)システム
の冗長なアレイにおけるパリティ/チェックサムの設定
は、システムの構造に関して多くの問題に直面してい
る。すなわち、エラーの回復、データ損失の防止、シス
テムの能力、実行上の複雑さなどである。RAIDシス
テムを使用する不利な点は、低い信頼性のポテンシャル
の問題である。どれか単独でディスク装置が故障する
と、全アレイが故障してしまうので、RAIDシステム
の信頼性はディスク装置の数が増えるにつれ減少する。
システムの信頼性におけるこの望ましくない低下をさけ
るため、単独のディスク装置が故障した場合のデータの
回復を行う方法が必要とされてきた。これは、アレイに
冗長を導入することによって達成される。つまり、デー
タの第二コピーを関連のデータ装置(例えば、RAID
4構造におけるように)と分離した装置にパリティある
いはチェックサムとして記憶させる。パリティの生成は
単独装置の故障によるデータ損失の従属的回復を可能と
するので、データを単独な位置で記憶させない。
【0005】通常の読取り操作の間、パリティ生成を支
持することによって生じる能力の影響はない。しかし、
書込み操作の間、パリティの生成は関係してくる。これ
は、データ域に対するいかなる変化もそのデータ域に関
連したパリティデータの更新を有するという事実によ
る。さらに、新しいデータの書込みと新しいパリティの
書込み間のシステムの故障の可能性を最小にしなくて
は、他のデータ回復が不可能となる。この必要性は、デ
ータが有効になるときに、ディスク装置にデータを記憶
させるホストに関連した装置にパリティを生成させたり
記憶させたりすることによって従来、満たされてきた。
【0006】この方法は、パリティ装置が多くのデータ
装置と組み合わされるので、潜在的に大きなオーバヘッ
ドをとる。これは、あるパリティ装置に関連した全ての
装置にある余分なオーバーヘッドが並行して書込まれ
ず、得られたパリティは全てのデータ装置の組合せであ
ることを示す。比較的短いアクセスが全ての装置へのア
クセスを背負い込むわけではないので、これは一般的に
は希なケースである。この場合、パリティ生成は、アド
レスしてない装置からの既存データの回復、あるいは新
しいデータの書込み以前のデータと共にその既存データ
グループに対する既存パリティの読取りを伴う。
【0007】ある状況では、短い転送長さのためにパリ
ティ更新のオーバーヘッドは不適切になる。これは、ま
た、短い転送のシーケンスに分割される長い転送による
場合(ホストファイル・システムがこれをおこなう)で
ある。
【0008】
【発明が解決しようとする課題】本発明は従来技術の欠
点を克服し、パリティデータを生成するに必要なディス
クに対する冗長なアクセスを減少あるいはなくすことを
目的とする。
【0009】
【課題を解決するための手段】上記目的を達成するた
め、本発明によるキャッシュシステムは、ホストシステ
ムとディスクアレイ間で転送したデータを保持するため
のキャッシュメモリを有し、そのディスクアレイはデー
タをストライド状に記憶させた複数のディスク記憶装置
を有し、各ストライドはアレイの2以上の記憶装置の各
々にマルチセクタ・ユニットと他のアレイ記憶装置に関
連したマルチセクタ・パリティブロックを有し、そのキ
ャッシュシステムは、単一物としてキャッシュ内で操作
されるキャッシュデータユニットとしてのキャッシュに
ストライドを形成するデータと関連のパリティをリンク
する手段を有する。
【0010】ホストアクセスはデータと関連のパリティ
の両方を有するキャッシュメモリに向けられる。本発明
では、キャッシュは最も小さいデータ転送のサイズに基
づいたユニットとしてではなく、パリティブロック及び
その関連のデータブロックに基づいて作られる。一例と
して、キャッシュユニットは3個の4Kバイト・ブロッ
クと、単独の4Kバイト・パリティブロックである。
【0011】望ましいキャッシュシステムでは、ホスト
によってアドレスされたデータを有するキャッシュユニ
ットは、キャッシュユニットの一番最近に使用されたリ
スト(MRUリストと称す)のヘッドに移動させられ
る。そして、ホスト書込みデータを、できれば前のアク
セスから記憶させたデータと共に、このキャッシュユニ
ットに記憶させる。別のキャッシュユニットがアドレス
されると、ある未使用のユニットがキャッシュリストを
さらに押し下げる。この方法でキャッシュを使用するこ
とは、キャッシュ内でのデータへのアクセスの特徴が全
くランダムでなく、ある程度の連続的なアクセス(時間
に直接関係する必要はない)であり、キャッシュのサイ
ズが充分に大きいなら、有効なデータの全てを有するキ
ャッシュリストの未使用な終端部に向かっているキャッ
シュユニットの可能性は高くなるという利点を有する。
全てのデータがキャッシュユニットにあるなら、それ以
上のデータアクセスなしで生成することが可能なパリテ
ィと共に、(キャッシュサイズが有限なので)ディスク
アレイにこのキャッシュデータの連続的な記憶が可能と
なる。従って、キャッシュしてない構造でそのパリティ
を生成するために必要な冗長アクセスは排除される。キ
ャッシュにキャッシュユニットのデータ全てがない場
合、更新パリティデータを生成するためにディスクのデ
ータをアクセスする必要が生じる。しかし、必要な冗長
アクセスの数はシステム能力の改良によって大きく減少
させられる。
【0012】冗長アクセスを減少あるいは排除するに必
要なキャッシュのサイズはホストによって要求されたデ
ータアクセスの性質に依存する。データの要求が本来大
きく、連続的なら、このディスク装置への冗長アクセス
をなくす、あるいは実質的になくすために必要なキャッ
シュメモリの量は、要求が大きくランダムである場合よ
り小さいものとなる。
【0013】キャッシュシステムの採用では、データを
防護されていないメモリに入れさせないことが重要であ
る。望ましいキャッシュシステムは、必要な信頼性を確
保できるキャッシュメモリのデュアルタイプで不揮発性
の物を使用する。電力系統やハードウェアの故障の場合
には、データはシステムが再機能するまで保存される。
(単一の)装置の故障の場合には、損失したデータの再
生成はパリティ生成の従来方法と類似方法でおこなわれ
る。
【0014】
【実施例】以下に説明するのは、本発明のキャッシュシ
ステムをホストプロセッサで実行するソフトウェアにお
いて実施したものである。図1はホストバス15を介し
てアレイアダプタ20へ接続したホストシステム10か
ら構成するデータ処理システムを示す。このアダプタも
通信リンク25を介してディスクアレイ30に接続され
ている。アレイ30は付属の4個のディスクデータ記憶
装置34、36、38、40のアレイ・コントローラ3
2の形をとる。また、ホストバスには、不揮発性キャッ
シュメモリ50が接続され、このキャッシュメモリは、
ホストメモリとディスクアレイのディスク記憶装置間で
転送するデータを保持するために使用される。
【0015】図2は、本発明のキャッシュシステムに関
連して使用されるアレイのディスク記憶装置にデータを
記憶させる方法を示す。図2において、2ストライドの
データが示され、各装置34、36、38、40のデー
タ記憶トラック35、37、39、41に記憶される。
各装置はストライプ60として知られるストライドのサ
ブユニット、図2では3セクタ(3×512バイト)の
長さを有する。データの初めのストライドは、ディスク
Aの3個のA1セクタ、ディスクBの3個のB1セク
タ、ディスクCの3個のC1セクタ、およびパリティデ
ィスクに関連のパリティデータを有する。同様に、デー
タの第2番目のストライドは3個のA2、3個のB2、
3個のC2、及び3個のP2セクタを有する。上記のよ
うに、従来のディスクアレイシステムでは、ホストから
新しいセクタ70、71、72、73をアレイに書き込
む要求は、ストライドの形でデータの残りをディスクか
ら読み取ること、新たなパリティデータの演算、及びア
レイへの新しいセクタ70、71、72、73、そして
新しいパリティを書き込むことを含む。
【0016】ホストによるデータ要求をキャッシュシス
テムによりサービスするためのメカニズムについて図
3、図4及び図5を参照にして説明する。図3は本発明
を実施する制御情報を保持するためのホストコンピュー
タ・プログラムによって使用される記憶区域(コントロ
ールブロック)の連関を示したものである。図5は確定
したコントロールブロックに対する関係を有する(要求
側タスク及びサーバタスクに細分化した)プログラムの
構造を示す。
【0017】ホスト10から入力する要求をIOパケッ
トの待ち行列(GPin)100に入れる。すると、ホ
ストはその要求の成功/失敗を知らせるステータスが戻
るのを待つ。待ち行列はサブシステムによって読み取ら
れ、得られたゲット/プットパケット(GPBLK)を
複数のジョブ(JIOB)120、122、124にス
トライプし、これら全てのサブトラックの完成がその初
めの要求を満たす。これらのJIOBの各々は、全デー
タ転送要求が単独のストライプに存在する、すなわち、
ストライプの境界を越えることがない、という特性を有
する。これらJIOBのトラッキングの進行を可能とす
るため、各JIOBを初めの要求と1対1の対応を有す
る単独の親ジョブコントロール・ブロック(JCB)1
10と接続させる。JIOBの各々は待ち行列状態にな
り、実行を待つ。これらのJIOBはキャッシュマネー
ジャ(図4参照)によって処理される。データがキャッ
シュメモリで有効なら、該当JIOBは即座に完了する
ことができる。幾分あるいは完全に全てのデータがキャ
ッシュに存在しない場合には、そのデータは(書込みが
ディスクアクセスを要求しない時に読取り要求の場合に
対してのみ)ディスク34からフェッチしなくてはなら
ない。キャッシュマネージメントはキャッシュコントロ
ール・ブロック(CCB)150の2重にリンクしたリ
ストから成り、最新の利用(MRU)順位付け体系に保
持される。効果的なキャッシュ探索が可能となるため
に、ハッシイングを固有のストライドアドレスについて
行う。ハッシュ衝突にたいして、側鎖も使用する。
【0018】JIOBの完成のために、別の細分化が行
われ、ストライプIO要求(SIOB)160、16
2、164のメニュが作られる。ストライドの部分を形
成する各ストライプはストライプ・コントロールブロッ
ク(SCB)と称される関連のコントロールブロック1
30、132、134、136を有する。これは関連の
メモリ区域(ストライプデータ・ブロック”SDB”)
のステータスを保持し、共通ストライプについてオペレ
ーションをおこなうJIOBの待ち行列を可能にする。
作られた各SIOBは、次の実行のディスクIO待ち行
列に入れられる。
【0019】SIOBが完了すると、SIOBが発生し
たSCBは更新され、ステータスが集められる。全ての
SIOBが完了すると、即座に完了することができなか
ったので待ち行列状態にあるJIOBのいずれかが完了
可能となる。これらのJIOBが完了すると、JIOB
が発生したJCBは更新され、ステータスが集められ
る。全てのJIOBが完了すると、全要求が完了可能と
なる。ステータスは、サブシステムに初めに受け入れた
GPパケットの形でホストに戻される。
【0020】本発明の実施例で使用した各コントロール
ブロックのフォーマットについて説明する。 1.ゲット/プット パケット・ブロック − GPB
LK これはホストアプリケーションからの要求を受けるため
に使用されるパケットである。各個別のアクセスからの
併合したステータスもこのパケットに戻される。
【0021】 GPBLK_rwflag GPBLK_length GPBLK_diskaddr GPBLK_paramID GPBLK_bufferptr GPBLK_returncode
【0022】GPBLK_RWFLAG:ホストの要求
が読取りか書込みか特定する。 GPBLK_LENGTH:セクタ内の全アクセスの長
さ。 GPBLK_DISKADDR:要求の開始の(アレイ
における)仮想セクタ数。 GPBLK_PARAMID:完了ステータスを戻すた
めのタグID。 GPBLK_BUFFERPTR:データ区域の開始点
のホストにおける物理アドレス。 GPBLK_RETURNCODE:ホストへ戻るため
の各個別要求の併合したステータスを含む。
【0023】 2.ジョブコントロール・ブロック − JCB ジョブコントロール・ブロックは、誕生したJIOBの
各々にたいする親であり、ユーザの要求(入力GPBL
K)と1対1の関係を有する。JIOBの完了はJCB
_counterを減少させ、ステータスを現行ステー
タスと併合させる。
【0024】 JCB_counter JCB_waitAllsem JCB_waitAllhandle JCB_returncode
【0025】JCB_COUNTER:ステータスがホ
ストに戻ることができる前に完了させる必要がある未完
成JIOBの数を維持する。 JCB_WAITALISEMおよびJCB_WAIT
ALLHANDLE:未解決の副要求の全ての完了まで
ホスト要求を保留するために使用される信号およびハン
ドル。 JCB_RETURNCODE:副要求の全ての併合し
たステータス。
【0026】 3.ジョブI/Oコントロールブロック − JIOB JIOBはホスト要求の一部分を有するが、単一のスト
ライプ内に含まれる。
【0027】 JIOB_Qptrs JIOB_rwflag JIOB_device JIOB_diskaddr JIOB_length JIOB_bufferptr JIOB_JCBptr JIOB_SCBptr
【0028】JIOB_QPTRS:種々の待ち行列内
でJIOBの待ち行列を可能とする 。 JIOB_RWFLAG:DASDにたいするこの
IO要求が読取りか書込みか示す。 JIOB_DEVICE:これは、要求が関係づけられ
る必要な物理装置である。 JIOB_DISKADDR:これは、転送開始点の装
置の物理セクタアドレスである。 JIOB_LENGTH:これはセクタにおける転送の
長さである。この長さは、ストライプ境界が越えられる
ことがないようなものである点に注意。 JIOB_BUFFERPTR:このサブタスクにたい
するデータの開始点のホストにおいて演算した新たなア
ドレスである。 JIOB_JCBPTR:このサブタスクが発生した親
JCBへもどるポインタ。 JIOB_SCBPTR:このJIOBが関連するSC
Bにたいするポインタ。
【0029】 4.キャッシュコントロール・ブロック − CCB キャッシュコントロール・ブロックは、二重リンクリス
ト内に維持され、ストライドベースでのキャッシュを可
能にする数個のストライプコントロール・ブロック(S
CB)(装置)を結びつける。
【0030】 CCB_Qptrs CCB_InUseflag CCB_hashptr CCB_strideaddr CCB_SCBptr[0] CCB_SCBptr[1] CCB_SCBptr[2] CCB_SCBptr[ndev]
【0031】CCB_QPTRS:CCBリストとフリ
ーCCB待ち行列を維持するための連携ポインタ。 CCB_INUSEFLAG:現在使用中のCCBの解
除をさけるための防護。 CCB_HASHPTR:ハッシュテーブル内の衝突を
可能にする。もし有効なら、このハッシュ位置に存在し
た可能性のある次のCCBをこれがポイントする。 CCB_STRIDEADDR:固有のストライドアド
レスを保持する。ハッシュ「衝突」の可能性ゆえに必要
とされる。 CCB_SCBPTR(DEVICE):ポインタのア
レイで、初め空白で、関連のストライプコントロール・
ブロック(SCB)を参照する。1装置につき1。
【0032】 5.ストライプコントロール・ブロック − SCB ストライプコントロール・ブロックは、ストライプデー
タ・ブロック(SDB)としても知られているキャッシ
ュメモリのステータスを維持する。SCBとSDBの間
には1対1の関係があるが、SDBは対応のSCBが存
在するなら必ずしも存在することはない。SDB/SC
Bメモリのアロケーションは動的計画に基づいている。
【0033】 SCB_Qptrs SCB_validmask SCB_modifiedmask SCB_IOstate SCB_counter SCB_SIOBQptrs SCB_RwaitQptrs SCB_WwaitQptrs SCB_dataptr SCB_returncode
【0034】SCB_QPTRS:フリーSCBのリス
トを維持するために使用される。 SCB_VALIDMASK:有効か不要か、ストライ
プデータ・ブロック(SDB)に保持された各セクタを
識別する。1セクタに対し1ビット。 SCB_MODIFIEDMASK:数カ所でディスク
に保存される必要のあるSDB内のセクタを識別(どの
DASDセクタが無効となったか)する。 SCB_IOSTATE:4つのSCB状態(アイド
ル、読取り待ち、書込み待ち、コミット待ち)の1つを
識別する。 SCB_COUNTER:SCBがアイドル状態にもど
る前に実行する必要がある未完成なDASD要求(SI
OB)のカウントを維持する。 SCB_SIOBQPTRS:これは、SIOBの一時
的にリンクしたリスト(メニュ)のヘッドである。 SCB_RWAITQPTRS:これは、保留したJI
OBのリンクしたリストのヘッドであり、関連したSD
Bでの読取りオペレーションを要求した。SCB_CO
UNTERがゼロにもどる時のみ、これらの要求が満た
される。 SCB_WWAITQPTRS:読取り待ち行列と同様
であるが、これらのJIOB全ては書込みオペレーショ
ンを要求した。これらは全ての読取りオペレーションが
完了した後にのみ実行可能である。 SCB_DATAPTR:これはストライプデータ・ブ
ロック(SDB)をポイントする。SDBがこのSCB
に割り当てられていない場合、ポインタは空白となる。 SCB_RETURNCODE:この副要求を満たすた
めに発生させられたSIOBからの併合したステータス
を維持する。
【0035】 6.ストライプI/Oブロック − SIOB ストライプI/OブロックはDASDへ送った待ち行列
状態の要求であり、その目的はDASDそのものへ、ま
たはそのものからの非キャッシュセクタをフェッチす
る、あるいはキャッシュセクタを記憶させることであ
る。オリジナルのJIOBは1ストライプに含まれるの
で、JIOBから生まれたSIOBの数は多くともN/
2となる。ここで、Nはストライプあたりのセクタの数
である。
【0036】 SIOB_Qptrs SIOB_rwflag SIOB_device SIOB_diskaddr SIOB_length SIOB_bufferoffset SIOB_SCBptr
【0037】SIOB_QPTRS:多種の待ち行列の
1つにおけるSIOBを維持する。 SIOB_RWFLA:この要求が読取りか書込みか示
す。 SIOB_DEVICE:物理DASD装置番号を参照
する。 SIOB_DISKADDR:要求を開始するための上
記DASDの物理LBA。 SIOB_LENGTH:要求アクセスのセクタの長
さ。これはストライプの境界が越えられることがなく、
しかもキャッシュの有効で修正したデータもDASD読
取り要求に重ね書込みされないものである。 SIOB_BUFFEROFFSET:データ転送を開
始するSDBの開始位置(SCB_dataptr)か
らのセクタ内のオフセットである。(NB.SCB_d
ataptrは、SDBがまだ割り当てられてない場合
この時点で空白となる。) SIOB_SCBPTR:このSIOBが発生した親S
CBへのポイントをおこなう。
【0038】キャッシュのマネージメントは「最新の使
用」アルゴリズムに基づく。入力するデータ要求(読取
り又は書込み)は初めに、キャッシュメモリが今までの
要求によって割り当てられたかどうかをチェックされ
る。割り当てられてない場合は、メモリ域をデータ記憶
用に割り当てが試みられる。この試みが失敗なら、その
コマンドはメモリが有効になるまで保留される。
【0039】要求されたメモリ域がすでにある場合、あ
るいは、上記割り当てが成功した場合、そのホスト要求
はこのキャッシュメモリについてオペレーションを開始
する。読取り要求データがキャッシュ内で現在有効でな
い場合、要求データをホストアプリケーションにコピー
する前にディスクからキャッシュメモリにディスクIO
を実行する。書込み要求は単に、そのアプリケーション
からのデータをキャッシュメモリ(急速書込みバッファ
として作用)にコピーする。
【0040】キャッシュコントロール・ブロック(CC
B)は、ストライドグループの個々のストライプを共に
処理することを可能とする。これらCCBは最新使用
(MRU)から最低頻度使用(LRU)の順に二重リン
クのリストに保持される。CCBへのデータアクセス
は、CCBリスト内のMRU位置にそのCCBを移動さ
せる。従って、未使用のCCBとそれらの対応ストライ
プコントロール・ブロック(SCB)およびストライプ
データ・ブロック(SDB)は、CCBリストのLRU
終点へと押しやられることになる。これらのCCBはD
ASDへコミットするための候補となり、リソースを解
放できるようになる。
【0041】CCBリストの急速検索はハッシュ方法に
よって行われる。図4のブロック図に示すように、現在
の要求のストライドアドレスをハッシュし、得られたフ
ァンクションリターン値をハッシュテーブルへのインデ
ックスとして使用する。ハッシュテーブルはCCBリス
ト内に保持されたCCBにたいするポインタのアレイで
ある。エントリが空白なら、CCBはそのリスト内に存
在しない。そのテーブルがCCBをポイントしているな
ら、ストライドアドレスを比較しなくてはならない。こ
れは、多くのストライドアドレスを単独のハッシュテー
ブル・エントリに写像することができる。これらの「衝
突」は側鎖によって処理される。ハッシュテーブルによ
って引用された初めのCCBは、異なったストライドア
ドレスで、共通のハッシュ値を有するCCBのポテンシ
ャルリストのヘッドであるポインタを持つ。CCBの存
在/不在を確認するために、この側鎖をトラバースさ
せ、ストライドアドレスを比較しなければならない。一
般的に、この側鎖の長さは短く、供給されたハッシュテ
ーブルは大きく、かつハッシュファンクションは衝突を
最小にするように選択される。
【0042】本発明を実施するコンピュータプログラム
は2つの主タスクに分割される。それは、ホストからの
要求及びディスクIO要求にたいするサービスをそれぞ
れ個別に担当する。これらの2つのタスクは要求側タス
クおよびサーバタスクと称される。図5は、このタスク
とコントロールブロック間のオペレーション上の関係を
有する本発明によるキャッシュシステムの構造をブロッ
ク図で示したものである。
【0043】要求側タスクはユーザアプリケーション要
求のサービスを担当し、できるかぎりその要求を進める
ように試みる。ディスクIOあるいはキャッシュメモリ
のようなリソースが必要とされ、しかも現在有効でない
なら、部分的に完了した要求を後続する処理のために多
数の待ち行列の1つに入れる。図5では、要求側タスク
を、アレイマネージャ220とキャッシュマネージャ2
40の2つの一次ファンクションに細分化したものを示
す。要求側タスクの連続的な指示をリスト化したものは
添付の表7に示す。
【0044】サーバタスク(図5では200)は待ちデ
ィスクIO要求のサービスを行う。この要求ディスクI
Oの完了時には、サーバが関連のコントロールブロック
のステータスを更新することにより、要求側タスクは間
接的にその完了を知らせられる。サーバタスクの連続的
な指示をリスト化したものは添付の表8に示す。
【0045】背景処理260も2つの一次ファンクショ
ンを有する。つまり、(1)MRUリストの底部のCC
Bをディスクアレイにコミットさせ、それによりキャッ
シュリソースを解放する、(2)キャッシュリソースが
有効な時、SCB待ち行列からSCBを取り除き、SD
Bをそこに割り当てる。CCBをディスクにコミットさ
せるプロセスの一部分として、背景処理は必要に応じて
ディスクからのデータ読取りを有するパリティ生成を実
行する。この背景処理の指示をリスト化したものを添付
の表9に示す。
【0046】図5に示すように、GPパケット100は
アレイマネージャ220によってJIOB待ち行列に保
持される複数のJIOB120、122、124に細分
化される。キャッシュマネージャはこのJIOBを処理
し、ディスクIO待ち行列に入れられる複数のSIOB
160、162、164を生成し、続いてサーバタスク
200によって処理される。SIOBが完了すると、こ
のサーバタスクはSCB130、132、134、13
6を更新する。
【0047】本発明のキャッシュシステムを使用して、
読取り/書込みのシナリオの一例を以下に説明する。こ
のシナリオ例を充分に理解できるように、参照は表7〜
9に準じたものを使用する。
【0048】1.IFホスト要求がREADでキャッシ
ュにセクタがALL存在する、これ以上ディスクIOは
要求されないので要求NOWをcomplete。
【0049】2.IFこのホスト要求がREADでSC
BがIDLE、またはWaitWritingでセクタ
のALLが有効ではない、IO状態をWaitRead
ingにset、JIOB−>SCBReadWait
Qをqueue,有効なセクタのALLを読み取るため
に必要なSIOBのメニュをストライプ(次の3.を参
照)にbuild、そして、IF、SDBのアロケーシ
ョンがうまくディスクIOを開始(SIOBをディスク
IOQへmove)、ELSE SCB−>SCBWa
itQをput(つまり、SDBが有効になるまで延期
アクセス)。
【0050】3.IFホスト要求がREADでSCBが
WaitReadingでセクタのALLが有効でな
い、PREVIOUSアクセスをIO状態がWaitR
eadingへのセットがTHIS要求も満たすとas
sume、それゆえqueueJIOB−>SCBRe
adWaitQ。
【0051】4.IFホスト要求がREADでSCBが
WaitCommittingでセクタのALLが存在
しない、唯一のSIOBメニュ待ち行列がコミットに使
用されているので未だに要求へのサービスが不可能であ
り、従ってqueue JIOB−>SCBReadW
aitQ。
【0052】5.IFホスト要求がWRITEでSCB
がIDLEでSDBが有効,then要求の全体をco
mplete。
【0053】6.IFホスト要求がWRITEでSCB
が待ち(読取り/書込み/コミット)の状態、queu
e JIOB−>SCBWriteWaitQ。(注
意:キャッシュ読取りを開始した非ホストは有効なキャ
ッシュデータに重ね書込みを許可されることがないの
で、ALLReadが完了する前にWriteは許可さ
れない。)
【0054】7.IFホスト要求がWRITEでSCB
がIDLEでSDBの有効は無し、queue JIO
B−>SCBWriteWaitQ、queue SC
B−>SCBWaitQおよび状態をWaitWrit
ingにset(SDBが有効になるまで全アクセスを
延期)。
【0055】SCBから発生した最終SIOBが完了の
後(SCBカウンタ=0)、次がおこなわれる。
【0056】8.IF SCBがWaitReadin
g、SCBReadWaitQのALL JIOBをc
omplete可能となる。(要求されたALLセクタ
が有効となる)(上記3.を再開)
【0057】9.IF SCBがWaitCommit
ting、SCBReadWaitQに待ち行列してい
たALL JIOBを初めからrestart。(SI
OBメニュを設立するため必要)(上記4.を再開)
【0058】10.IF SCBがWaitReadi
ng、SCBWriteWaitQについてALL J
IOBをcomplete可能となる。(ALL Re
adが終了したのちにのみWriteを許可)(上記
6.を再開)
【0059】11.IF SCBがWaitCommi
tting/Writing、SCBWriteWai
tQのALL JIOBを初めからrestart。
(上記6.を再開)
【0060】背景処理はSCBWaitQに待ち行列し
ていたSCBを再スタートさせる試みをする。IF S
CBがこの待ち行列に存在する、AND SDBが有効
となった−
【0061】12.IF SCBがWaitReadi
ng(Read ONLY又はRead/Write)
ディスクIOをrecommence(SIOBをdi
skIOQに移動)。(上記2.または7.を再開)
【0062】13.IF SCBがWaitWriti
ng(Write ONLY)、SCBWriteWa
itQのALL JIOBをcomplete可能とな
る。(上記7.の完了)
【0063】本発明をホストソフトウェアの実行に関し
て説明したが、これはある環境では多くのホストバス・
トラフィックという結果となるので最適な解決でないこ
とは容易に想像できる。しかし、ここで説明したソフト
ウェアデザインは、ハードウェアとソフトウェア中断機
構に極めて似た「イベント駆動」の環境に基づく。この
デザインは、本発明の望ましい実施となり得る専用の第
二プロセッサに極めて近いマップである。
【0064】 [表1] 要求側タスク IOが活動するまでwait 装置ドライバからIOパケット(GP)をget 親JCBをcreat n JIOBS(アレイマネージャ)にGPをstripe 各JIOBをJIOB待ち行列にqueue 実行JIOB待ち行列をcall 背景処理をcall JCBが完了(そのJCBに関連したALL JIOBが完了)するまでwa it IOパケットを装置ドライバにreturn loop 実行JIOB待ち行列:(キャッシュマネージャ) JIOB待ち行列が空でない時、 少なくとも1CCBと1SCBが有効かensure ifそれが実行できない、 return JIOB待ち行列からJIOBをunqueue ストライドアドレスのハッシュ検索をperform ifキャッシュがミス(CCBが不在)、 ハッシュテーブルに新たなCCBエントリ&リンクをinitial ise if要求されたストライプ(装置)に対してSCBが不在、 関連のCCBエントリに新たなSCBエントリ&リンクをiniti alise entry if READ、 if 必要とされるALLセクタがSDBに存在/有効、 終了したJIOBをcall return else SCBのReadWaitqueueにJIOBをqueue if SCBのIO状態がWaitReadingまたはWaitComm itting return。 if SCBのIO状態がWaitWritingまたはIdle、 IO状態をWaitReadingにset ディスク全てから読み取るのに必要なSIOBをcreate セクタをinvalid なにも存在しないならSDBを割り当てるattempt if失敗、 SCBをSCB待ちの待ち行列にput return。 if有効なSDBを有する、 全SIOBをディスクIO待ち行列にmove return。 if WRITE、 なにも存在しないならSDBの割り当てをattempt if SCBのIO状態が待ち(読取り/書込み/コミット)、 JIOBをSCBのWriteWait待ち行列にput return。 if IO状態がアイドルでSDBが存在しない、 JIOBをWriteWait待ち行列にput SCBをSCBWait待ち行列にput IO状態をWaitWritingにset return。 if IO状態がアイドルでSDBが存在、 終了したJIOBをcall return。
【0065】 [表2] サーバタスク ディスクIO待ち行列が空でない状態までwait 待ち行列空SIOBをremove DASDを新たなLBA(ディスクアドレス)にset if READ、 DASD Readをperform(そして完了をwait) if WRITE、 DASD Writeをperform(そして完了をwait) 終了したSIOBをcall loop 終了したSIOB: ディスク(キャッシュミス)からブロックに読み込むために有効なビットをs et ディスク(コミットされた)に書き込まれたブロック用に修正したビットをc lear 親SCBカウンタ(未終了のSIOBの数)をdecrement if カウントがゼロになる、 ReadWait待ち行列の全てのJIOBに対し、 if IO状態が読み取り待ちの状態、 終了したJIOBをcall else JIOBをJIOB待ち行列にput back WriteWait待ち行列の全てのJIOBに対し、 if IO状態が読み取り待ちの状態、 終了したJIOBをcall else JIOBをJIOB待ち行列にput back IO状態をアイドルにset 実行JIOB待ち行列をcall 背景処理をcall 終了したJIOB: if READ、 アプリケーションバッファにSDBデータをcopy if WRITE、 修正して、有効なマスクをupdate アプリケーションバッファをSDBにcopy カウントがゼロになるなら親JCBカウンタ(未終了JIOBの数)をdec rement、 信号JCBが完了(要求側タスクの待ち信号をclear)
【0066】 [表3] 背景処理 if SCBWait待ち行列になにかある、 SDBをtryしget、 if成功、 SCBWait待ち行列からSCBをremove if読取りを待つ、(つまり、読取り、そしてできれば書込み発生 ) SIOBをディスクIO待ち行列にmove if書込みを待つ、(つまり、ストライプにたいし読取りの発生な し) 書込み待ち行列内の全JIOBと終了したJIOBをcall queue IO状態をアイドルにset いくつかのリソースが解放されているので、実行JIOB待ち行列をcall パリティが生成可能で後続とコミット可能なポイントにCCBをProgre ss、 ディスクにCCBをtry、およびcommit、 by: CCBチェーン(LRUからMRUへ)のあるパーセンテージを scanning、 for:− 何らかの理由で待っているSCBを所有しないCCB、でそ のCCBは修正済みデータブロックを有する少なくとも1つのSCBを伴う4つ のSCB全てを有する。 このCCBで、パリティをgenerate このCCBに付属した修正データブロック(パリティストライプを含む )を伴う各SCBにより、 IO状態をコミット待ちにset ディスクに全ての修正ブロックを書き込むのに必要なSIOBを create これらSIOBをディスクIO待ち行列にqueue
【0067】
【発明の効果】本発明のキャッシュシステムによれば、
リストの底部のキャッシュユニットをディスクにコミッ
トさせるとき、ストライドを作るデータの大部分がキャ
ッシュ内に存在する可能性が増大し、それゆえパリティ
データを生成するに必要なディスクへの冗長なアクセス
の数が減少あるいは無くなるという効果を有する。
【図面の簡単な説明】
【図1】ホストシステムがキャッシュとホストアダプタ
を介してディスクアレイに接続したデータ処理システム
を示すブロック図である。
【図2】図1のディスクアレイを作るデータ記憶装置の
トラック上のデータのストライドの配列を示す概略図で
ある。
【図3】本発明のキャッシュシステムによる制御ブロッ
クの組合せを有するデータ要求機構を示すブロック図で
ある。
【図4】本発明によるキャッシュシステムで使用される
ハッシュテーブルと側鎖を示す概略図である。
【図5】制御ブロックとの関係を含んだ本発明の実行で
使用されるタスクの構造を示すブロック図である。
【符号の説明】
10 ホストシステム 15 ホストバス 20 アレイアダプタ 25 通信リンク 30 ディスクアレイ 32 アレイコントローラ 34 ディスク記憶装置 36 ディスク記憶装置 38 ディスク記憶装置 40 ディスク記憶装置 50 キャッシュメモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 クリーブ・スコット・オールドフィールド イギリス、エスオーワン・フォーエルアー ル、ハンプシャー州、サザンプトン、レジ ェンツ・パーク、プリンス・オブ・ウェー ルズ・アベニュー 4 (72)発明者 ニコラス・シェイラー イギリス、エスピーワン・スリーワイエ ー、ウィルトシャー州、サリスベリ、スク ール・レイン、ジ・オールド・スクール・ ハウス(番地なし)

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】ホストシステム(10)とディスクアレイ
    (30)間を転送されたデータを保持するためのキャッ
    シュメモリ(50)を有するキャッシュシステムにおい
    て、 該ディスクアレイは複数のディスク記憶装置(34、3
    6、38、40)から成り、各ディスク記憶装置にはデ
    ータがストライド状に記憶されており、各ストライドは
    該アレイの2以上の装置の各々に記憶させたデータのマ
    ルチセクタ・ユニットと他のアレイ装置に記憶させた関
    連のマルチセクタ・パリティブロックを有し、 該キャッシュシステムはデータおよび単一存在物として
    該キャッシュ内で処理されるキャッシュデータ・ユニッ
    トとして該キャッシュ内でストライドを作る関連のパリ
    ティをリンクするキャッシュマネージメント手段を有す
    る、ことを特徴とするキャッシュシステム。
  2. 【請求項2】 上記キャッシュユニットはMRUリスト
    に維持され、上記キャッシュデータ・ユニットを該MR
    Uリストのヘッドに移動させるようにキャッシュ内に保
    持されたストライド状のデータの一部を要求するホスト
    からの参照に応じた手段をさらに有することを特徴とす
    る請求項1に記載のキャッシュシステム。
  3. 【請求項3】 上記MRUリストの底部のキャッシュデ
    ータ・ユニットを上記ディスク記憶装置にコミットさ
    せ、該データユニットを該ディスク記憶装置にコミット
    させる前に該キャッシュデータに関連のパリティデータ
    を生成するために上記キャッシュマネージメント手段に
    よって必要とされる1以上の記憶装置のデータ位置を判
    定するための手段を有することを特徴とする請求項2に
    記載のキャッシュシステム。
  4. 【請求項4】 ホストシステムと共に使用するアレイ記
    憶サブシステムは、複数のディスク記憶装置とアレイと
    して配置した関連のコントローラ手段と、該ディスクと
    該メモリ間を転送されたデータを保持するため該アレイ
    と通信するために接続した上記請求項のいずれかに記載
    のキャッシュシステム。
  5. 【請求項5】 ホストシステムとディスクアレイ間を転
    送されたデータを保持するため使用されるキャッシュシ
    ステムを管理する方法において、 該ディスクアレイは複数のディスク記憶装置から成り、
    各ディスク記憶装置にはデータがストライド状に記憶さ
    れており、各ストライドは該アレイの2以上の装置の各
    々に記憶させたデータのマルチセクタ・ユニットと他の
    アレイ装置に記憶させた関連のマルチセクタ・パリティ
    ブロックを有し、該データと単一存在物として該キャッ
    シュ内で処理されるキャッシュデータ・ユニットとして
    該キャッシュ内でストライドを作る関連のパリティをリ
    ンクすることを特徴とするキャッシュシステムを管理す
    る方法。
JP5310894A 1992-12-22 1993-12-10 ディスクアレイ用キャッシュシステム Expired - Fee Related JP2837341B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9226725.1 1992-12-22
GB9226725A GB2273798A (en) 1992-12-22 1992-12-22 Cache system for disk array.

Publications (2)

Publication Number Publication Date
JPH06236322A true JPH06236322A (ja) 1994-08-23
JP2837341B2 JP2837341B2 (ja) 1998-12-16

Family

ID=10727035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5310894A Expired - Fee Related JP2837341B2 (ja) 1992-12-22 1993-12-10 ディスクアレイ用キャッシュシステム

Country Status (4)

Country Link
US (1) US5600816A (ja)
EP (1) EP0607663A1 (ja)
JP (1) JP2837341B2 (ja)
GB (1) GB2273798A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013196481A (ja) * 2012-03-21 2013-09-30 Nec Corp キャッシュ装置、情報処理システム、および、キャッシュ方法

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6874101B2 (en) 1991-01-31 2005-03-29 Hitachi, Ltd. Storage unit subsystem
JP3409859B2 (ja) 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
JP3687111B2 (ja) * 1994-08-18 2005-08-24 株式会社日立製作所 記憶装置システムおよび記憶装置の制御方法
US5712970A (en) * 1995-09-28 1998-01-27 Emc Corporation Method and apparatus for reliably storing data to be written to a peripheral device subsystem using plural controllers
US5671365A (en) * 1995-10-20 1997-09-23 Symbios Logic Inc. I/O system for reducing main processor overhead in initiating I/O requests and servicing I/O completion events
KR0174711B1 (ko) * 1996-04-24 1999-04-15 김광호 하드디스크 캐시의 제어방법
US5860091A (en) * 1996-06-28 1999-01-12 Symbios, Inc. Method and apparatus for efficient management of non-aligned I/O write request in high bandwidth raid applications
US5963960A (en) * 1996-10-29 1999-10-05 Oracle Corporation Method and apparatus for queuing updates in a computer system
US6052697A (en) * 1996-12-23 2000-04-18 Microsoft Corporation Reorganization of collisions in a hash bucket of a hash table to improve system performance
US6067599A (en) * 1997-05-29 2000-05-23 International Business Machines Corporation Time delayed auto-premigeration of files in a virtual data storage system
JPH11203056A (ja) * 1998-01-19 1999-07-30 Fujitsu Ltd 入出力制御装置及びアレイディスク装置
US6704837B2 (en) 1998-06-29 2004-03-09 International Business Machines Corporation Method and apparatus for increasing RAID write performance by maintaining a full track write counter
US6343343B1 (en) * 1998-07-31 2002-01-29 International Business Machines Corporation Disk arrays using non-standard sector sizes
US6272590B1 (en) * 1999-02-19 2001-08-07 International Business Machines Corporation Method and system for prefetching sequential data in a data storage system
US6216199B1 (en) * 1999-08-04 2001-04-10 Lsi Logic Corporation Hardware mechanism for managing cache structures in a data storage system
US6795894B1 (en) * 2000-08-08 2004-09-21 Hewlett-Packard Development Company, L.P. Fast disk cache writing system
US6922801B2 (en) * 2001-06-01 2005-07-26 International Business Machines Corporation Storage media scanner apparatus and method providing media predictive failure analysis and proactive media surface defect management
US8719661B1 (en) * 2010-11-15 2014-05-06 Vmware, Inc. Transparent and lightweight recovery from hardware memory errors
JP2003263563A (ja) * 2002-03-08 2003-09-19 Fujitsu Ltd 保険管理システム、保険管理方法、およびプログラム
CN100428193C (zh) * 2004-02-07 2008-10-22 华为技术有限公司 一种在数据存储系统中预取数据的方法
JP2005309818A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd ストレージ装置、そのデータ読出方法、及びそのデータ読出プログラム
JP2006107311A (ja) * 2004-10-08 2006-04-20 Hitachi Ltd ディスクアレイ装置およびその制御方法
US8255627B2 (en) 2009-10-10 2012-08-28 International Business Machines Corporation Secondary cache for write accumulation and coalescing
US8566540B2 (en) * 2010-02-02 2013-10-22 International Business Machines Corporation Data migration methodology for use with arrays of powered-down storage devices
US9785561B2 (en) 2010-02-17 2017-10-10 International Business Machines Corporation Integrating a flash cache into large storage systems
US9152500B1 (en) 2014-09-22 2015-10-06 Storagecraft Technology Corporation Hash collision recovery in a deduplication vault
US10691566B2 (en) 2017-07-27 2020-06-23 International Business Machines Corporation Using a track format code in a cache control block for a track in a cache to process read and write requests to the track in the cache
CN111105724A (zh) * 2019-11-30 2020-05-05 苏州浪潮智能科技有限公司 智能存储系统
US11809274B2 (en) * 2021-04-21 2023-11-07 EMC IP Holding Company LLC Recovery from partial device error in data storage system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04245352A (ja) * 1991-01-31 1992-09-01 Hitachi Ltd 制御装置の制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636946A (en) * 1982-02-24 1987-01-13 International Business Machines Corporation Method and apparatus for grouping asynchronous recording operations
EP0203601B1 (en) * 1985-05-29 1992-08-05 Kabushiki Kaisha Toshiba Cache system adopting an lru system, and magnetic disk controller incorporating it
JP2834189B2 (ja) * 1989-07-05 1998-12-09 株式会社日立製作所 入出力制御方法
JPH0731582B2 (ja) * 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置
US5210866A (en) * 1990-09-12 1993-05-11 Storage Technology Corporation Incremental disk backup system for a dynamically mapped data storage subsystem
US5274799A (en) * 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
JP3308554B2 (ja) * 1991-02-20 2002-07-29 株式会社日立製作所 制御装置及び制御装置の制御方法
US5325509A (en) * 1991-03-05 1994-06-28 Zitel Corporation Method of operating a cache memory including determining desirability of cache ahead or cache behind based on a number of available I/O operations
US5341381A (en) * 1992-01-21 1994-08-23 Tandem Computers, Incorporated Redundant array parity caching system
US5418921A (en) * 1992-05-05 1995-05-23 International Business Machines Corporation Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes
US5408644A (en) * 1992-06-05 1995-04-18 Compaq Computer Corporation Method and apparatus for improving the performance of partial stripe operations in a disk array subsystem
US5315602A (en) * 1992-08-12 1994-05-24 Digital Equipment Corporation Optimized stripe detection for redundant arrays of disk drives

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04245352A (ja) * 1991-01-31 1992-09-01 Hitachi Ltd 制御装置の制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013196481A (ja) * 2012-03-21 2013-09-30 Nec Corp キャッシュ装置、情報処理システム、および、キャッシュ方法

Also Published As

Publication number Publication date
JP2837341B2 (ja) 1998-12-16
GB2273798A (en) 1994-06-29
GB9226725D0 (en) 1993-02-17
US5600816A (en) 1997-02-04
EP0607663A1 (en) 1994-07-27

Similar Documents

Publication Publication Date Title
JP2837341B2 (ja) ディスクアレイ用キャッシュシステム
JP3409859B2 (ja) 制御装置の制御方法
US5884098A (en) RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems
US5917723A (en) Method and apparatus for transferring data between two devices with reduced microprocessor overhead
JP3697149B2 (ja) キャッシュ・メモリを管理する方法
US6216199B1 (en) Hardware mechanism for managing cache structures in a data storage system
JP3422370B2 (ja) ディスクキャッシュ制御装置
US6542960B1 (en) System and method for parity caching based on stripe locking in raid data storage
US5588110A (en) Method for transferring data between two devices that insures data recovery in the event of a fault
US7849254B2 (en) Create virtual track buffers in NVS using customer segments to maintain newly written data across a power loss
JP2002323959A (ja) 磁気ディスク制御装置のログ主体不揮発性書き込みキャッシュ・システム及び方法
US6098191A (en) Storage unit and storage unit subsystem
JP2002023958A (ja) 計算機、計算機システムおよびデータ転送方法
US6782444B1 (en) Digital data storage subsystem including directory for efficiently providing formatting information for stored records
JP5977430B2 (ja) ストレージシステム、ストレージシステムの制御方法及びストレージコントローラ
JP4252102B2 (ja) 計算機システムおよび二次記憶装置
US5900009A (en) System and method for accessing records in a cache slot which are associated with a current owner storage element or at least one previous owner storage element
JPH0773090A (ja) 計算機システムおよび二次記憶装置
JP4128206B2 (ja) 計算機システムおよび二次記憶装置
JP4506292B2 (ja) キャッシュ制御方法およびデータ処理システム並びにその処理プログラム
JP3747937B2 (ja) 計算機システムおよび二次記憶装置
JP3747788B2 (ja) 計算機システムおよび二次記憶装置
JP3214452B2 (ja) 磁気ディスク制御装置
EP1168173A2 (en) Fault tolerant storage device with cache
US6594726B1 (en) Digital data storage subsystem including arrangement for efficiently controlling fast write storage operation

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees