JPH10320128A - ディスクアレイ装置の制御方法 - Google Patents

ディスクアレイ装置の制御方法

Info

Publication number
JPH10320128A
JPH10320128A JP9147111A JP14711197A JPH10320128A JP H10320128 A JPH10320128 A JP H10320128A JP 9147111 A JP9147111 A JP 9147111A JP 14711197 A JP14711197 A JP 14711197A JP H10320128 A JPH10320128 A JP H10320128A
Authority
JP
Japan
Prior art keywords
data block
block
magnetic disk
data
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.)
Pending
Application number
JP9147111A
Other languages
English (en)
Inventor
Masatoshi Saito
政利 齋藤
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP9147111A priority Critical patent/JPH10320128A/ja
Publication of JPH10320128A publication Critical patent/JPH10320128A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【解決手段】 内蔵磁気ディスク装置DKに対して、連
続するデータブロックの書き込み要求が発生した場合
に、それに続くデータブロックとそれらのデータブロッ
クに対応するパリティブロックを一定量先読みし、先読
みしたブロックをディスクアレイ制御部1に格納してお
く。その後発生する書き込み要求に対して、ディスクア
レイ制御部1に既に格納されているデータブロックとパ
リティブロックから新しいパリティデータを生成する。 【効果】 RAID4やRAID5ディスクアレイ装置
の連続書き込みの段階において、1回の書き込み要求に
必要な磁気ディスク装置へのアクセス回数を削減するこ
とができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、RAIDレベル4
や、RAIDレベル5アーキテクチャを採用したディス
クアレイ装置の制御方法に関する。
【0002】
【従来の技術】ディスクアレイ装置は、カリフォルニア
大学バークレ校において提案された「RAIDアーキテ
クチャ」を用いた、複数の磁気ディスク装置を内蔵する
ファイル装置のことである。このRAIDアーキテクチ
ャの中で、RAIDレベル4やRAIDレベル5と呼ば
れるアーキテクチャを採用したディスクアレイ装置は、
高い信頼性と高いスループットを実現することができ
る。これらは、特に、オンライントランザクション処理
のような少量データ単位でのアクセスが頻繁に発生する
アプリケーション環境で高性能を発揮すると言われてい
る(IEEE,1989,Introduction to Redundant Arrays o
f Inexpensive Disks , ACM,1989,A Casefor Redund
ant Arrays of Inexpensive Disks)。
【0003】
【発明が解決しようとする課題】ところで、上記のよう
な従来の技術には次のような解決すべき課題があった。
上記のようなディスクアレイ装置は、読込み要求があっ
たとき、複数の内部磁気ディスク装置に並列にデータを
アクセスして、高いスループットが達成される。しかし
ながら、データの信頼性を高めるためのパリティの処理
を行うために、ホストシステムからの1回の書き込み要
求に対し装置内部では2回の読み込みと2回の書き込み
を行うことが必要になる。従って、RAID4ディスク
アレイ装置やRAID5ディスクアレイ装置では、書き
込み要求に対する処理時間が増大してしまう。即ち、書
き込み要求が多発するようなシステム環境では、並列ア
クセスによる読み込み時の高いスループットを相殺して
しまい、装置全体のスループットが大幅に低下するとい
う問題があった。
【0004】
【課題を解決するための手段】本発明は以上の点を解決
するため次の構成を採用する。 〈構成1〉ディスクアレイ装置を構成する複数台の内蔵
磁気ディスク装置に対して、それぞれデータブロック単
位で並列にデータをアクセスし、ホストシステムから見
た論理アドレスが連続する所定数のデータブロックを、
同一の内蔵磁気ディスク装置に書き込むようにし、いず
れか1台の内蔵磁気ディスク装置には、他の内蔵磁気デ
ィスク装置に格納されて並列にアクセスされるデータブ
ロックのパリティブロックを格納するよう制御を行う場
合において、先に書き込み要求が発生したデータブロッ
クの論理アドレスと次に書き込み要求が発生したデータ
ブロックの論理アドレスとを比較して、両者の論理アド
レスが連続する場合に、予めこれらの論理アドレスと論
理アドレスが連続する所定数の旧データブロックを、同
一の磁気ディスク装置から先読みして一時記憶するとと
もに、これらのデータブロックと対応する旧パリティブ
ロックを別の内蔵磁気ディスク装置から先読みして一時
記憶し、続いて、先読みした旧データブロックの論理ア
ドレスへ新たなデータブロックの書き込み要求があった
とき、この新たなデータブロックと、記憶しておいた旧
データブロックと旧パリティブロックとを用いて、新た
なパリティブロックを生成し、それぞれ該当する内蔵磁
気ディスク装置に書き込むことを特徴とするディスクア
レイ装置の制御方法。
【0005】〈構成2〉ディスクアレイ装置を構成する
複数台の内蔵磁気ディスク装置に対して、それぞれデー
タブロック単位で並列にデータをアクセスし、ホストシ
ステムから見た論理アドレスが連続する所定数のデータ
ブロックを、同一の内蔵磁気ディスク装置に書き込むよ
うにし、いずれか1台の内蔵磁気ディスク装置には、他
の内蔵磁気ディスク装置に格納されて並列にアクセスさ
れるデータブロックのパリティブロックを格納するよう
制御を行う場合において、先に書き込み要求が発生した
データブロックの論理アドレスと次に書き込み要求が発
生したデータブロックの論理アドレスとを比較して、両
者の論理アドレスが連続する場合に、内蔵磁気ディスク
装置の該当する論理アドレスから旧データブロックを読
み出し、同時に他の磁気ディスク装置から、対応する旧
パリティブロックを読み出して、書き込み要求の発生し
た新たなデータブロックと旧データブロックと対応する
旧パリティブロックとを用いて、新たなパリティブロッ
クを生成して一時記憶し、論理アドレスが連続するデー
タブロックの書き込み要求が続くときは、同様の新たな
パリティブロックの生成と一時記憶を繰り返し、論理ア
ドレスが連続しない新たなデータブロックの書き込み要
求があったとき、一時記憶していた新たなデータブロッ
ク群と新たなパリティブロック群とを、それぞれ一括し
て該当する内蔵磁気ディスク装置に書き込むことを特徴
とするディスクアレイ装置の制御方法。
【0006】〈構成3〉ディスクアレイ装置を構成する
複数台の内蔵磁気ディスク装置に対して、それぞれデー
タブロック単位で並列にデータをアクセスし、ホストシ
ステムから見た論理アドレスが連続する所定数のデータ
ブロックを、同一の内蔵磁気ディスク装置に書き込むよ
うにし、いずれか1台の内蔵磁気ディスク装置には、他
の内蔵磁気ディスク装置に格納されて並列にアクセスさ
れるデータブロックのパリティブロックを格納するよう
制御を行う場合において、先に書き込み要求が発生した
データブロックの論理アドレスと次に書き込み要求が発
生したデータブロックの論理アドレスとを比較して、両
者の論理アドレスが連続する場合に、内蔵磁気ディスク
装置の該当する論理アドレスから旧データブロックを読
み出し、書き込み要求の発生した新たなデータブロック
と旧データブロックとを一時記憶し、論理アドレスが連
続するデータブロックの書き込み要求が続くときは、同
様の旧データブロックの読み出しと一時記憶を繰り返
し、論理アドレスが連続しない新たなデータブロックの
書き込み要求があったとき、該当する内蔵磁気ディスク
装置から一括して旧パリティブロック群を読み出すとと
もに、この旧パリティブロック群と、一時記憶していた
新たなデータブロック群と旧データブロック群とを用い
て、新たなパリティブロック群を生成して、新たなデー
タブロック群と新たなパリティブロック群をそれぞれ一
括して該当する内蔵磁気ディスク装置に書き込むことを
特徴とするディスクアレイ装置の制御方法。
【0007】〈構成4〉ディスクアレイ装置を構成する
複数台の内蔵磁気ディスク装置に対して、それぞれデー
タブロック単位で並列にデータをアクセスし、ホストシ
ステムから見た論理アドレスが連続する所定数のデータ
ブロックを、同一の内蔵磁気ディスク装置に書き込むよ
うにし、いずれか1台の内蔵磁気ディスク装置には、他
の内蔵磁気ディスク装置に格納されて並列にアクセスさ
れるデータブロックのパリティブロックを格納するよう
制御を行う場合において、先に書き込み要求が発生した
データブロックの論理アドレスと次に書き込み要求が発
生したデータブロックの論理アドレスとを比較して、両
者の論理アドレスが連続する場合に、内蔵磁気ディスク
装置の該当する論理アドレスから旧データブロックを読
み出して、書き込み要求の発生した新たなデータブロッ
クと旧データブロックとを用いて、パリティブロック演
算のための基礎になる中間値を生成して、新たなデータ
ブロックと中間値を一時記憶し、論理アドレスが連続す
るデータブロックの書き込み要求が続くときは、同様の
新たな中間値の生成と一時記憶を繰り返し、論理アドレ
スが連続しない新たなデータブロックの書き込み要求が
あったとき、該当する内蔵磁気ディスク装置から一括し
て旧パリティブロック群を読み出すとともに、この旧パ
リティブロック群と、一時記憶していた新たなデータブ
ロック群と中間値群とを用いて、新たなパリティブロッ
ク群を生成して、新たなデータブロック群と新たなパリ
ティブロック群をそれぞれ一括して該当する内蔵磁気デ
ィスク装置に書き込むことを特徴とするディスクアレイ
装置の制御方法。
【0008】〈構成5〉構成1から4のうちのいずれか
1項において、複数のタスクが、それぞれ論理アドレス
が連続するデータブロックの書き込み要求を行っている
場合に、各タスクが書き込み要求をする論理アドレスが
連続するかどうかを判定するデータを格納し、データブ
ロックやパリティブロックの一時記憶を制御をするため
の一時格納アドレスレジスタファイルを、タスク毎に設
けることを特徴とするディスクアレイ装置の制御方法。 〈構成6〉構成2から4のうちのいずれか1項におい
て、一時記憶には不揮発性の記憶装置を使用することを
特徴とするディスクアレイ装置の制御方法。
【0009】
【発明の実施の形態】以下、本発明の実施の形態を具体
例を用いて説明する。 〈具体例〉図1は、本発明によるRAID5ディスクア
レイ装置の具体例を示すブロック図である。図の装置
は、ディスクアレイ装置の主要部を示し、並列にアクセ
スされる4台の内蔵磁気ディスク装置DK#0,DK#
1,DK#2,DK#3を備えている。これらの内蔵磁
気ディスク装置は、ディスクアレイ制御部1に対し、そ
れぞれディスクインタフェースDKI/F#0,DKI
/F#1,DKI/F#2,DKI/F#3を介して接
続されている。
【0010】ディスクアレイ制御部1は、バスライン2
に対し、マイクロプロセッサ3、RAM(ランダム・ア
クセス・メモリ)部4、ホストI/F制御部5、一時格
納アドレスレジスタファイル6、一時格納用バッファ部
7、ROM(リード・オンリ・メモリ)部8及びDKI
/F制御部9−0〜9−3を接続して構成される。上記
内蔵磁気ディスク装置DK#0〜DK#3とディスクア
レイ制御部1との間のインタフェースとしては、SCS
I.IDE.FCあるいはSSA等のよく知られた構成
のインタフェースが採用される。
【0011】また、ディスクアレイ制御部1は、ホスト
システム11と、ホストI/F(インタフェース)10
を介して接続されている。ホストインタフェースとして
は、SCSI.FC.SSA.ISA.EISAあるい
はPCI等のよく知られたインタフェースが採用され
る。
【0012】マイクロプロセッサ3は、ディスクアレイ
装置全体を制御する。ROM部8には、このマイクロプ
ロセッサ3の動作用プログラムが格納されている。RA
M部4は、プログラム実行領域、内蔵磁気ディスク装置
やホストシステムから転送されたデータを格納する領域
及び作業領域等を確保する記憶装置である。ホストI/
F制御部5は、ホストインタフェースを制御する装置で
ある。DKI/F制御部9−0〜9−3は、ディスクイ
ンタフェースを制御する装置である。
【0013】RAIDアーキテクチャでは、内蔵磁気デ
ィスク装置の台数は規定されていない。また、RAID
5ディスクアレイ装置として、マイクロプロセッサ3や
ROM部8、RAM部4等を搭載せず、ホストシステム
1の側でこれらに代わる制御を行う構成もある。このよ
うに、ホストシステム側で制御するディスクアレイ装置
をソフトウェア制御ディスクアレイ装置と呼ぶ。また、
この図に示すような構成のものをハードウェア制御ディ
スクアレイ装置と呼ぶ。更に、後で説明するディスクア
レイ装置の基本的な演算である排他的論理和をアクセラ
レートするような専用ハードウェアを実装したものも考
えられる。
【0014】本発明は、内蔵ディスク装置の台数や、ハ
ードウェア/ソフトウェア制御ディスクアレイ、排他的
論理和アクセラレータの実装/未実装に関わらず適用す
ることが可能である。以下は、この図1に示したような
構成のディスクアレイ装置を例にとって説明を進める。
【0015】本発明の装置の特徴部分を説明する前に、
まずRAID5ディスクアレイ装置の基本的な動作等を
説明する。図2に、RAID5ディスクアレイ装置のデ
ータ配置説明図を示す。図2の(a)に示したものが、
ディスクアレイ装置に対しホストシステムからアクセス
を行う場合の論理アドレスを示す。図に示す1つ1つの
データブロックd00,d01,d02,…は、ホスト
システムからアクセスされる最小単位である。通常のデ
ータブロック容量は内蔵磁気ディスク装置のセクタ容量
に設定してある。なお、図中に記載したd00〜d35
やdp00〜dp11という文字は、いずれもディスク
アレイ装置内部での各データブロックの論理アドレスを
示す。しかしながら、これからの説明では、これらの論
理アドレスに格納されたデータブロックを指すことにす
る。従って、データブロックd00、パリティブロック
dp00というように表現して説明を進める。
【0016】図2(b)は、ディスクアレイ装置内での
実際のブロックの配置を示す。縦に4列に並べられたブ
ロック群は、それぞれ内蔵磁気ディスク装置DK#0,
DK#1,DK#2,DK#3に書き込まれるデータブ
ロックである。図に示すように、1台の内蔵磁気ディス
ク装置に格納されている連続したデータブロック例えば
d00,d01,d02,d03をデータチャンク21
と呼んでいる。通常のチャンク容量はホストシステムか
ら最も高い頻度でアクセスされる容量の2倍〜8倍程
度、例えば数キロバイトから数十キロバイトに設定され
る。この図の例では、データチャンクは4個のデータブ
ロックで構成され、チャンク容量は2キロバイトに設定
されている。
【0017】また、図のように、内蔵磁気ディスク装置
に格納されたデータブロックを横方向に1個ずつ取り出
したもの、例えばd00,d04,d08,dp00を
データ列22と呼んでいる。このデータ列22に含まれ
るデータブロックは、並列にデータをアクセスされる。
なお、dp00は、データブロックd00,d04,d
08のデータを全て排他的論理和することにより生成さ
れたパリティブロックである。このように、同一のデー
タ列22に含まれるいずれかのブロックには、他の3つ
のデータブロックのパリティブロックが格納されるよう
に構成されている。
【0018】また、(a)に示すように、ホストシステ
ムから見た連続した論理アドレスに格納されるデータブ
ロック群は、例えばこの図では3組のデータチャンクに
格納される。さらに、ストライプ24は、3個のデータ
チャンク21−1,21−3,21−4と、これらのパ
リティブロックを集めたパリティチャンク21−2から
構成されている。
【0019】ディスクアレイ装置は、一般にはホストシ
ステムに対してあたかも1台の磁気ディスク装置である
かのように振舞う。しかしながら、ホストシステムから
見たこの装置のディスクアドレス(以下、これを論理ア
ドレスと呼ぶ)の上で、連続するデータブロックは、実
際にはデータチャンク毎にそれぞれ別々の内蔵磁気ディ
スク装置に分散して配置される。そして、そこにパリテ
ィチャンクも含められる。また、4台の内蔵磁気ディス
ク装置があれば、必ずそのうち1台にパリティブロック
を格納するため、ホストシステムから見えるRAID5
ディスクアレイ装置の容量は1台分の内蔵磁気ディスク
装置の容量×3となる。
【0020】しかしながら、データ列ごとにパリティブ
ロックを生成して、1台の磁気ディスク装置に格納して
おくことによって、いずれかの内蔵磁気ディスク装置に
故障が発生した場合でも、残りの磁気ディスク装置上の
データから、故障した内蔵磁気ディスク装置上の全ての
データを再生することが可能である。このため、装置全
体としてのデータの信頼性を高めることができる。ま
た、データブロックの読み込み時には複数の内蔵磁気デ
ィスク装置に並列にデータをアクセスすることができる
ため、高いスループットを達成することができる。
【0021】ところが、ホストシステムからの書き込み
要求に対しては、要求の対象となったデータブロックの
書き込みに加えて、そのデータブロックに対するパリテ
ィブロックの更新が必要となるため、装置全体のスルー
プットが低下する。
【0022】図3には、RAID5ディスクアレイ装置
の書き込み時の動作説明図を示す。この図には、ディス
クアレイ制御部1中にRAM部4のみが示されている。
ここでは、図2に示したデータブロックd00に対する
書き込み要求時の処理を説明する。
【0023】データブロックd00に対するパリティブ
ロックは、dp00である。図3には、これらを格納し
た内蔵磁気ディスク装置DK#0とDK#3が図示され
ている。まずホストシステムから新たなデータブロック
d00′の書き込み要求が行われたとする(ステップS
1)。このとき、このデータブロックd00′はRAM
部4に一時格納される。これに対して、内蔵磁気ディス
ク装置DK#0から該当する論理アドレスの旧データブ
ロックd00が読み出され、RAM部4に格納される
(ステップS2)。
【0024】同時に、内蔵磁気ディスク装置DK#3か
ら対応する旧パリティブロックdp00が読み出され、
RAM部4に格納される(ステップS3)。次のステッ
プS4で、RAM部4に格納された新たなデータブロッ
クd00′と旧データブロックd00及び旧パリティブ
ロックdp00を用いてこれらの排他的論理和演算処理
を行い、新たなパリティブロックdp00′を得る。
【0025】図4に、新たなパリティデータ生成方法の
説明図を示す。この図に示すように、当初の書き込みデ
ータ即ち旧書き込みデータを、di、dj、dkとし、
そのパリティデータをdpとする。このとき、パリティ
データdpは、図の(1)式に示すように、di、d
j、dkを排他的論理和演算したものとなる。これに対
して、新たな書き込みデータをdi′とした場合、新た
なパリティデータdp′は、図の(2)式に示すよう
に、もとのパリティdpともとのデータdiと新たなデ
ータdi′との排他的論理和により求めることができ
る。これは次のようにして証明できる。
【0026】書き込みが終了後は、新たなパリティデー
タdp′と、新たな書き込みデータdi′と、他の内蔵
ディスクアレイ装置に書き込まれたデータdj,dkと
は、次の(3)式を満たさなければならない。 dp′=di′xor djxor dk …(3)
【0027】ここで、一般に次の(4)及び(5)式が
成立する。 dxor d=0 …(4) 0xor d=d …(5) これらの点を考慮して、(3)式を変形すると、次の
(6)式に示すようになる。 dp′=(di′xor djxor dk)xor 0 =di′xor djxor dkxor dixor di =(dixor djxor dk)xor dixor di′ =dpxor dixor di′ …(6)
【0028】以上のようにして、図3のステップS4に
おいて、新たなパリティブロックdp00′を生成し、
その後、ステップS5において、内蔵磁気ディスク装置
DK#0に新たなデータd00′を書き込む。また、同
時にステップS6において、新たなパリティブロックd
p00′を内蔵磁気ディスク装置DK#3に書き込む。
以上の通り、ホストシステムから1個のデータブロック
に対する書き込み要求があると、内蔵磁気ディスク装置
に対し2回の読み込みと2回の書き込みを行わなければ
ならない。本発明においては、こうした書き込み要求に
対する処理時間を短縮し、書き込み要求が多発する環境
において、スループットの低下の度合をより小さくす
る。
【0029】再び図1に戻って、本発明によるディスク
アレイ装置の構成について説明を続ける。本発明の装置
は、上記のような書き込み要求に対する処理時間を短縮
するために、連続するデータブロックの書き込み要求が
発生した場合に、それに続くデータブロックやこれらの
データブロックに対応するパリティブロックを先読みす
る。また、あるいはデータブロックとパリティブロック
の書き込みを遅延させ、これらをまとめて内蔵磁気ディ
スク装置に書き込む。
【0030】こうした処理を行うために、図1に示した
ディスクアレイ制御部1には、一時格納用バッファ部7
が設けられる。ここには後から書き込みを行うためのデ
ータが格納される。なお、データの信頼性を確保するた
め、この一時格納用バッファ部7は、バッテリでバック
アップされるかあるいはフラッシュメモリのような不揮
発性メモリで構成される。一時格納アドレスレジスタフ
ァイル6は、RAM部4や一時格納用バッファ部7に格
納されたデータブロックやパリティブロックへのアドレ
スポインタを設定しておくファイルである。
【0031】図5には、一時格納アドレスレジスタファ
イルの構成説明図を示す。この図に示すように、一時格
納アドレスレジスタファイルには、参照カウンタ31、
最終論理アドレス32、テーブルポインタ33、RAM
/バッファアドレスポインタテーブル34が設けられ
る。また、RAM/バッファアドレスポインタテーブル
34には、RAM部4等からデータブロックやパリティ
ブロックを読み出すためのアドレスを格納する第1テー
ブル35や第2テーブル36が設けられる。参照カウン
タ31は、一時格納アドレスレジスタファイルが有効に
機能しているか、中に格納されたデータが無効であるか
を示すフラグを格納する。なお、マルチタスク環境にお
いては、一時格納アドレスレジスタファイルが有効な期
間を表示するカウント値が格納される。最終論理アドレ
ス32は、ディスクアレイ装置の論理アドレスを格納し
ておくレジスタで、動作毎にその使用方法が異なる。
【0032】最終論理アドレス32は、処理対象となっ
ている最後のデータの論理アドレスを表示する。テーブ
ルポインタ33は、RAM/バッファアドレスポインタ
テーブル34の、次にアドレスを書き込むことができる
位置を示すポインタである。第1テーブル35や第2テ
ーブル36には、RAM部4に先読みされたデータブロ
ックの読み出しアドレスや一時格納用バッファ部7に一
時格納されたデータブロックの読み出しアドレスが保持
される。
【0033】〈先読み動作〉以下、図6、図7、図8を
用いて、先読み動作を説明する。図6には、参照カウン
タ無効時の書き込み動作説明図を示す。まず、ここで
は、装置が最初に1ブロックのデータを読み込む動作を
説明する。ステップS1において、ホストシステムから
論理アドレスd00への新たなデータブロックd00′
について書き込み要求が発生する。このデータブロック
d00′は、RAM部4に格納される。次に、ステップ
S2において、参照カウンタ31をチェックする。現
在、図1に示した一時格納アドレスレジスタファイル6
は無効であるから、参照カウンタ31の内容は“0”と
なっている。そこで、参照カウンタ31の内容を“1”
にし、一時格納アドレスレジスタファイル6を有効にす
る。そして、最終論理アドレス32に現在アクセス対象
となっているデータブロックの論理アドレスd00を設
定する(ステップS3)。
【0034】その後、内蔵磁気ディスク装置DK#0と
DK#3から旧データブロックd00と旧パリティブロ
ックdp00とを読み出す(ステップS4,ステップS
5)。これらもそれぞれRAM部4に格納される。続い
て、RAM部4に格納された新たなデータブロックd0
0′と旧データブロックd00と旧パリティブロックd
p00を用いて新たなパリティブロックdp00′を生
成する(ステップS6)。その後、新たなデータブロッ
クd00′と新たなパリティブロックdp00′を内蔵
磁気ディスク装置DK#0,DK#3に、それぞれ格納
する(ステップS7,ステップS8)。
【0035】こうして、ホストシステムに対し書き込み
終了を報告する。このように、最初のデータブロック書
き込み時は、従来通りの動作をするとともに一時格納ア
ドレスレジスタファイル6の最終論理アドレスをd00
に設定することで処理を終える。
【0036】図7に、先読み動作の説明図を示す。今度
は、ホストシステムからデータブロックd00′に続
く、d01′の書き込み要求が発生する。このデータブ
ロックd01′は、RAM部4に格納される(ステップ
S1)。ここで、参照カウンタ31をチェックする(ス
テップS2)。この参照カウンタが有効と判断すると、
次のステップS3において、最終論理アドレス32をチ
ェックする。最終論理アドレスがd00であって、現在
処理中の論理アドレスがd01であることから、ホスト
システムが連続するデータブロックについて書き込み要
求を発生していることを認識する。ここで、図1に示し
た一時格納アドレスレジスタファイル6のテーブルポイ
ンタ33を“0”に設定する(ステップS4)。第1テ
ーブル35も第2テーブル36も、T#0から情報の書
き込みが可能ということを示すためである。
【0037】ホストシステムから、d00,d01に対
する書き込み要求が続いたことから、次の書き込み要求
はd02,d03になることが予想される。そこで、こ
こでは、内蔵磁気ディスク装置DK#0からd01,d
02,d03のデータブロックを同時に読み出してRA
M部4に格納する。また、内蔵磁気ディスク装置DK#
3からパリティブロックdp01,dp02,dp03
を同時に読み出して、RAM部4に格納する(ステップ
S5,S6)。このように次のデータ書き込みを予測し
て、内蔵磁気ディスク装置から先行してデータブロック
やパリティブロックを読み出すことをここでは先読みと
言っている。
【0038】データブロックd03まで先読み処理を行
ったため、最終論理アドレス32をd03に設定する
(ステップS7)。その後、テーブルポインタ33を参
照して、T#0の第1テーブル35にd03のRAM部
アドレスを格納する。また、T#0の第2テーブル36
にdp03のRAM部アドレスを格納する(ステップS
8)。更に、テーブルポインタ33をインクリメントし
て、T#1の第1テーブル35にd02のRAM部アド
レスを格納し、T#1の第2テーブル36にdp02の
RAM部アドレスを格納する。こうして、テーブルポイ
ンタ33を“2”までインクリメントする(ステップS
9)。
【0039】その後、RAM部4に格納された新たなデ
ータブロックd01′と旧データブロックd01、旧パ
リティブロックdp01を使用して、新たなパリティブ
ロックdp01′を生成する(ステップS10)。そし
て、新たなデータブロックd01′を内蔵磁気ディスク
装置DK#0に格納する(ステップS11)。また、新
たなパリティブロックdp01′を内蔵磁気ディスク装
置DK#3に格納する(ステップS12)。こうして、
ホストシステムに対し書き込み終了の報告を行う。
【0040】ここまでは、1回の書き込み要求に対し2
回の読み出しと2回の書き込みを行っており、従来と同
様の処理手順となる。ただし、この図7の処理によっ
て、既にデータブロックd02,d03とパリティブロ
ックdp02,dp03とが先読みされてRAM部4に
格納された状態になっている。
【0041】図8には、先読み後の書き込み動作説明図
を示す。続いてホストシステムからデータブロックd0
2′の書き込み要求が発生すると、このデータブロック
d02′がRAM部4に格納される。ここで、参照カウ
ンタ31をチェックすると、その内容が“1”となって
おり、一時格納アドレスレジスタファイル6が有効だと
いうことを判断できる。
【0042】次に、ステップS3において、一時格納ア
ドレスレジスタファイルの最終論理アドレス32をチェ
ックする。この最終論理アドレスがd03であって、書
き込み要求の発生したデータブロックの論理アドレスが
d02であることから、このデータブロックd02のパ
リティブロック更新に必要なデータは既にRAM部4に
先読みされていることを検出する。
【0043】次に、テーブルポインタ33を“2”から
“1”にデクリメントする(ステップS4)。そして、
このポインタ値の値からT#1の第1テーブル35に格
納されたデータブロックd02のRAM部アドレスと第
2テーブル36に格納されたパリティブロックdp02
のRAM部アドレスを取り出す。そして、RAM部4を
参照する。新たなデータブロックd02′と旧データブ
ロックd02と旧パリティdp02がRAM部4から読
み出されると、これらを用いて新たなパリティブロック
dp02′を生成する(ステップS6)。
【0044】こうして、得られた新たなデータブロック
d02′とパリティデータパリティブロックdp02′
を、それぞれ内蔵磁気ディスク装置DK#0とDK#3
に格納する(ステップS7,ステップS8)。
【0045】この図に示す処理は、既に先読みによって
RAM部4に格納された旧データブロックと旧パリティ
ブロックとを使用して新たなパリティブロックを得るた
めに、これまで行ってきたような2回分の読み出し動作
が不要となる。即ち、1回の書き込み要求に対し2回の
データ書き込みのみで処理が完了する。その後、新たな
データブロックd03′の書き込み要求があった場合に
も、これと全く同様の動作が行われる。データブロック
d03′の新たな書き込みが終了すると、テーブルポイ
ンタは“0”にデクリメントされる。
【0046】更に、次の新たなデータブロックd04′
の書き込み要求が発生した場合にも、同様にしてホスト
システムが連続するブロックに対する書き込み要求を行
っていることを検出する。このときは、テーブルポイン
タが“0”となっていることから、既に先読みされたデ
ータがないことを察知する。そこで、今度は次の書き込
み要求を予想し、データブロックd04,d05,d0
6,d07について、先読みを行う。同様に、パリティ
ブロックdp04,dp05,dp06,dp07につ
いても先読みを行う。
【0047】こうして、第1テーブルと第2テーブルに
先読みしたデータブロックやパリティブロックのRAM
部アドレスを格納して、図7に示した場合と同様の処理
を実行する。即ち、データブロックd02′については
2回の読み込みと2回の書き込み処理が行われる。一
方、その後のデータブロックd05,d06,d07に
対する書き込み要求では、データブロックd02に対す
る処理と同様に2回分の読み込み動作を省略することが
できる。
【0048】〈遅延書き込み〉次に説明する例は、書き
込みを遅らせることによって、上記と同様の効果を得よ
うとするものである。図9に、遅延書き込み開始時の動
作説明図を示す。まず、ホストシステムから新たなデー
タブロックd00′についての書き込み要求が発生した
とする。これはRAM部4に格納される(ステップS
1)。ここで、一時格納アドレスレジスタファイルの参
照カウンタ31をチェックする。動作開始時のため、参
照カウンタ31の内容は“0”即ち無効となっている。
そこで、この内容を“1”にインクリメントする(ステ
ップS2)。そして、ステップS3において、テーブル
ポインタを“0”にセットする。次に、ステップS4及
びS5において、内蔵磁気ディスク装置DK#0とDK
#3から旧データブロックd00と旧パリティブロック
dp00とを読み出してRAM部4に格納する。
【0049】続いて、新たなデータブロックd00′と
旧データブロックd00と旧パリティブロックdp00
を用いて、新たなパリティブロックdp00′を生成す
る(ステップS6)。次に、一時格納アドレスレジスタ
ファイルの最終論理アドレス32の内容をd00に設定
する(ステップS7)。その後、RAM部4に格納され
た新たなデータブロックd00′と新たなパリティブロ
ックdp00′とを一時格納用バッファ部7に格納す
る。これから実行する遅延書きは、新たなデータブロッ
クやこれに基づいて生成された新たなパリティブロック
を直ちに内蔵磁気ディスク装置に書き込まず、その後い
くつかまとめて書き込みを行うようにする。
【0050】このためには、内蔵磁気ディスク装置に書
き込むべきデータをRAM部4に格納したままで保持し
ておいてもよい。しかしながら、RAM部4に格納され
たデータは電源を遮断すると消えてしまう。万一、停電
等のために電源が突然消えると、既に書き込み済みのは
ずのデータが消滅してしまう恐れがある。これでは信頼
性に欠ける。そこで、不揮発性の一時格納用バッファ部
7に、内蔵磁気ディスク装置に書き込むべきデータを書
き移しておく。従って、万一電源が遮断された場合で
も、あとからこのデータを内蔵磁気ディスク装置に書き
込めば遅延書きによる弊害を防止できる。
【0051】こうして一時格納用バッファ部7にデータ
ブロックやパリティブロックを書き込んだ場合に、第1
テーブル35にはd00′のバッファ部アドレスを書き
込み、第2テーブル36にはdp00′のバッファ部ア
ドレスを書き込んでおく(ステップS9)。その後、ス
テップS10において、テーブルポインタを“0”から
“1”にインクリメントし、ホストシステムに対し書き
込み要求の終了を報告する。この動作からわかるよう
に、書き込み要求に対して2回の読み出し動作のみで一
旦処理が終了している。
【0052】図10に、遅延書き込み開始後の動作説明
図を示す。図9の処理に続いて、ホストシステムからデ
ータブロックd01′の書き込み要求が発生したとす
る。このデータブロックd01′はRAM部4に格納さ
れる(ステップS1)。次に、ステップS2において、
参照カウンタ31を参照する。その内容が“1”で、一
時格納アドレスレジスタファイルが有効であることをチ
ェックすると、ステップS3に進み、最終論理アドレス
32の内容をチェックする。
【0053】最終論理アドレスがd00であって、書き
込み要求の発生したデータブロックのアドレスがd01
であることから、ホストシステムが連続するブロックに
書き込み要求を発生していることを検出する。そこで、
内蔵磁気ディスク装置DK#0から旧データブロックd
01を読み込み(ステップS4)、内蔵磁気ディスク装
置DK#3から旧パリティブロックdp01を読み込む
(ステップS5)。そして、RAM部4に格納されてい
る新たなデータブロックd01′と旧データブロックd
01、旧パリティブロックdp01を用いて、新たなパ
リティブロックdp01′を生成する(ステップS
6)。
【0054】次に、最終論理アドレス32の内容をd0
0からd01に変更する(ステップS7)。そして、ス
テップS8において、一時格納用バッファ部7に、新た
なデータブロックd01′と新たなパリティブロックd
p01′とを格納する。同時に、ステップS9におい
て、第1テーブル35と第2テーブル36に、それぞれ
d01′のバッファ部アドレスとdp01′のバッファ
部アドレスとを書き込む。これらの処理が終了すると、
ホストシステムに対して、書き込み要求の終了を報告す
る。その後、データブロック02への書き込み要求が発
生した場合に、実行する処理は、このd01に対する書
き込み要求の処理と同様である。
【0055】図11に、遅延書き込み動作説明図を示
す。今度は、新たなデータブロックd03′についての
書き込み要求が発生した場合を説明する。この場合に
も、これまでと同様に、ステップS1でデータブロック
を格納し、ステップS2で参照カウンタ31をチェック
する。次に、ステップS4において、最終論理アドレス
32をチェックして、その内容がd02であることを確
認する。次に、内蔵磁気ディスク装置DK#0とDK#
3から、それぞれデータブロックd03とパリティブロ
ックdp03とを読み出す(ステップS5,ステップS
6)。
【0056】続いて、新たなデータブロックd03′と
旧データブロックd03と、旧パリティブロックdp0
3を用いて、新たなパリティブロックdp03′を生成
する(ステップS7)。次に、ステップS8において、
テーブルポインタ33をデクリメントし、第1テーブル
35と第2テーブル36に格納されたd02′,d0
2′及びd00′のバッファ部アドレスを取得する。同
様に、dp02′,dp01′,dp00′のバッファ
部アドレスも取得する。
【0057】これによって、RAM部4と一時格納用バ
ッファ部7に格納されたデータをまとめると、データブ
ロックd00′〜d03′、パリティブロックdp0
0′〜dp03′のデータが保持されていることにな
る。そこで、これらを一挙に内蔵磁気ディスク装置DK
#0とDK#3に書き込む(ステップS11,ステップ
S12)。最後に、参照カウンタ31を“1”から
“0”にして、一時格納アドレスレジスタファイルの内
容を無効にし、遅延書き込み処理を終了する(ステップ
S13)。
【0058】以上の動作により、書き込み要求に対して
内蔵磁気ディスク装置への書き込みを直ちに行わず、デ
ータを蓄積し、数回に1回ずつまとめてデータの書き込
みを行うようにするので、アクセス回数を減少させるこ
とができる。
【0059】〈パリティブロックの遅延読み込み/書き
込み〉図12に、パリティブロック遅延読み込み/書き
込み動作説明図(その1)を示す。この例では、パリテ
ィブロックの読み込みや書き込みを遅らせることによっ
てアクセス回数を削減している。まず、初めに、ホスト
システムから新たなデータブロックd00′の書き込み
要求が発生すると、これをRAM部4に格納する(ステ
ップS1)。ここで、参照カウンタ31を参照し、その
値を“0”から“1”にインクリメントして、一時格納
アドレスレジスタファイルを有効にする。次に、ステッ
プS3において、テーブルポインタ33を“0”にす
る。その後、内蔵磁気ディスク装置DK#0から旧デー
タブロックd00を読み出す(ステップS4)。
【0060】続いて、新たなデータブロックd00′を
内蔵磁気ディスク装置DK#0に書き込む(ステップS
5)。次に、テーブルポインタ33の値を参照して、T
#0の第1テーブル35にd00のRAM部アドレスを
書き込む。また、第2テーブル36にd00′のRAM
部アドレスを書き込む。次のステップS7で、最終論理
アドレス32をd00に設定し、ステップS8でテーブ
ルポインタ33を“0”から“1”にインクリメントす
る。
【0061】こうして、RAM部4にd00′とd00
とを保持した状態で、ホストシステムに対して書き込み
要求の終了を報告する。
【0062】図13に、パリティブロックの遅延読み込
み/書き込み動作説明図(その2)を示す。次のアドレ
スの新たなデータブロックd01′について書き込み要
求が発生すると、ステップS1において、これをRAM
部4に格納する。ここで、参照カウンタ31をチェック
し、これが有効であると判断すると(ステップS2)、
最終論理アドレス32を参照する(ステップS3)。こ
の最終論理アドレスがd00であって、今回の書き込み
要求アドレスがd01であることから、連続するブロッ
クへの書き込み要求が発生していることを検出する。
【0063】その後、ステップS4で、内蔵磁気ディス
ク装置DK#0から旧データブロックd01を読み出し
て、RAM部4に格納する。続いて、新たなデータブロ
ックd01′を内蔵磁気ディスク装置DK#0に書き込
む(ステップS5)。ここで、テーブルポインタ33を
参照する。テーブルポインタの値が“1”であるから、
T#1の第1テーブルにd01のRAM部アドレスを格
納し、第2テーブルにd01′のRAM部アドレスを格
納する(ステップS7)。そして、最終論理アドレス3
2をd00からd01に設定する(ステップS8)。更
に、テーブルポインタ33を“1”から“2”にインク
リメントする(ステップS9)。こうして、新たにデー
タブロックd01′と旧データブロックd01とをRA
M部4に保持したまま、ホストシステムに対して書き込
み要求の終了を報告する。
【0064】図12と図13の処理を通じて、内蔵磁気
ディスク装置DK#3に格納されたパリティブロックの
読み出しはなされていない。従って、いずれの場合も2
回のアクセスで処理が終了している。その後、合計8つ
の連続するデータブロックについて書き込み要求が発生
した場合、これと全く同様の動作が繰り返される。
【0065】図14に、パリティブロックの遅延読み込
み/書き込み動作説明図(その3)を示す。ここで、連
続する8つのデータブロックへの書き込み要求が終了
し、全く別のブロックへの書き込み要求が発生したとす
る。このとき、ここで遅らせていたパリティブロックの
書き込みを一挙に行う。初めに、ホストシステムからデ
ータブロックd20についての書き込み要求が発生する
と、これをRAM部4に格納する。そして、参照カウン
タ31の内容をチェックし(ステップS2)、一時格納
アドレスレジスタファイルが有効と判断すると、最終論
理アドレス32を参照する(ステップS3)。
【0066】最終論理アドレスがd07であって、新た
な書き込みデータブロックのアドレスがd20であるか
ら、ホストシステムからの連続するブロックに対する書
き込み要求が終了したと判断する。その後、テーブルポ
インタ33を参照し(ステップS4)、第1テーブル3
5と第2テーブル36からd00〜d07のデータブロ
ックと、d00′〜d07′のパリティブロックを格納
したアドレスを取得する。次に、内蔵磁気ディスク装置
DK#3から更新前のパリティブロックdp00〜dp
03を読み込む。
【0067】この時点で、RAM部4には、更新前のデ
ータブロックd00〜d07と更新後のデータブロック
d00′〜d07′と、更新前のパリティブロックdp
00〜dp03が存在する。これまで内蔵磁気ディスク
装置DK#3のパリティブロックdp00〜dp07は
アクセスしていない。従って、これらのパリティブロッ
クをデータブロックd07の書き込み要求が終了した状
態に更新する必要がある。そこで、次のような演算処理
を行い、各パリティブロックを求める。
【0068】図15に、パリティの演算動作説明図(そ
の1)を示す。図には内蔵磁気ディスク装置DK#0〜
DK#3に格納されたデータブロックの内容を示す。そ
の1番上の内容は、それぞれ、d00,d04,d0
8,dp00となっている。データブロックd00が新
たにデータブロックd00′に書き換えられた場合、図
の(4)に示すような演算式により、パリティブロック
dp00「mid」が求められる。「mid」としたの
は、パリティブロックdp00はデータブロックd00
(新),d04(旧),d08(旧)に対するパリティ
を求めたものであるのに対し、既にd04(新)までの
書き込みが終了しているからである。即ち、(4)式で
求めたdp00は中間的な値である。
【0069】データブロックd04が書き込まれた場合
には、図の(5)式に示すようにして、新たなパリティ
ブロックdp00′が求められる。この(5)式に
(4)式を当てはめると、図の(6)式に示すようにな
る。即ち、旧データブロックd00とデータブロックd
00′と、旧データブロックd04と新データブロック
d04′と、旧パリティブロックdp00の排他的論理
和をとることによって、新たなデータブロックdp0
0′が求められる。
【0070】改めて、図14のRAM部4を参照する
と、このRAM部4には、図15(6)式による演算を
行うために必要なデータブロックが全て格納されてい
る。従って、これらによって、新たなパリティブロック
dp00′が求められる。新たなパリティブロックdp
01′,dp02′,dp03′についても全く同様の
方法により演算処理することができる。こうして、4つ
のパリティブロックdp00′〜dp03′を求めて一
括して内蔵磁気ディスク装置DK#3へ書き込む。これ
により、連続したデータブロックd00〜d07の書き
込みが終了した状態におけるパリティブロックdp00
〜dp03の更新が終了する。
【0071】図14のRAM部4に示したように、これ
まで説明したパリティブロック遅延読み込み/書き込み
動作においては、更新前のデータブロックd00〜d0
7と、更新後のデータブロックd00′〜d07′を全
てRAM部4に格納している。従って、8×2即ち16
ブロック分のRAM領域を専有しなければならない。こ
れから説明する例では、このデータブロックを格納して
おく領域を削減する。
【0072】図16に、パリティの演算動作説明図(そ
の2)を示す。ここでは、新たなデータd00について
の書き込み要求があると、旧データd00を読み出す際
に、両者の排他的論理和を演算し、パリティブロック演
算のための基礎になる中間値midp0を求めておく。
これをRAM部4に格納するとともに、第1テーブル3
5のT#0にmidp0のRAM部アドレスを格納す
る。データブロックd01,d02,d03についても
同様の処理を行う。従って、RAM部4には、midp
0,midp1,midp2,midp3が保持され
る。
【0073】続いて、新たなデータブロックd04′に
ついての書き込み要求があると、今度は(8)式を用い
て新たな中間値midp0′を求める。即ち、旧データ
ブロックd04と新たなデータブロックd04′と保存
してあった中間値midp0を用いて、新たな中間値m
idp0′を求める。これを再びRAM部に格納してお
く。第1テーブル35の内容はアドレスであるから実質
的に変更はない。このようにして、データブロックd0
4〜d07の読み込みが終了すると、RAM部4に中間
値midp0′〜midp3′が格納される。
【0074】その後は、図14に示したステップS6の
ように、パリティブロックdp00〜dp03を読み出
し、RAM部に格納された中間値midp0′〜中間値
midp3′を用いて、図16(9)式に示すような演
算処理を行う。こうして、新たなパリティブロックdp
00′〜dp03′を求める。こうした演算処理を行え
ば、RAM部に4ブロックの記憶領域を設けておけば、
パリティブロック遅延読み込み/書き込み動作が実行で
きることになる。このように記憶領域を削減すること
は、後で説明するマルチタスク環境における処理等に有
効に機能する。即ち、メモリを経済的に使用できる。
【0075】〈マルチタスク環境での対応〉以上の例で
は、ホストシステムからディスクアレイ装置に対し連続
したブロックへの書き込み要求が発生したことを検出
し、有効にアクセス回数の減少を図ることができる。ホ
ストシステム上である特定のタスクが1つだけ動作して
いるような場合には、ディスクアレイ装置に連続したブ
ロックへの書き込み要求が発生する確率が高いから、本
発明が有効に機能する。
【0076】一方、複数のタスクが動作する環境では、
各々のタスクからの要求がディスクアレイ装置上で混在
し、連続するブロックへの書き込み要求が隣接する可能
性が非常に小さくなる。従って、これまで通りの方法で
は、先読みや遅延書き込みによる磁気ディスク装置への
アクセス回数の削減効果を発揮できなくなってしまう。
そこで、この例では、一時格納アドレスレジスタファイ
ルを、動作するタスクの数だけ設けるようにする。この
場合、一時格納アドレスレジスタファイルの参照カウン
タの上限値を動作するタスクの数まで増やす。これによ
って、マルチタスク環境においても、連続ブロックへの
書き込み要求の処理を最適化することが可能になる。
【0077】図17には、マルチタスク環境での動作説
明図を示す。この図では、ホストシステム上で2つのタ
スクAとBが動作している例を用いて説明を行う。タス
クAはデータブロックd00〜d07への書き込み要求
を発生し、タスクBはデータブロックd16〜d23へ
の書き込み要求を発生しているものとする。また、ディ
スクアレイ装置上へは、それぞれのタスクから交互に書
き込み要求が到着すると仮定する。即ち、ディスクアレ
イに対し、データブロックd00,d16,d01,d
17という順に書き込み要求が到着するものとする。
【0078】これまで説明した動作シーケンスでは、こ
うした場合に連続ブロックへの書き込み要求とは認識で
きず、全て単独の書き込み要求になる。従って、各書き
込み要求毎に4回の磁気ディスク装置へのアクセスが必
要になる。
【0079】一方、この図に示す例では、一時格納アド
レスレジスタファイル6Aと、一時格納アドレスレジス
タファイル6Bとを設ける。これらの構成はいずれも図
5に示したものと同一の構成とする。なお、2つのタス
クを制御するために、各一時格納アドレスレジスタファ
イル6A,6Bの参照カウンタ31は、少なくとも
“0”から“2”までカウントできるよう構成してお
く。図に示した参照カウンタ31と最終論理アドレス3
2以外の部分については、これまでの例と同様に処理さ
れるため、ここでは図示を省略した。
【0080】図の横軸には時間を示した。参照カウンタ
31と最終論理アドレス32の内容は、時間の経過とと
もに図のように変化する。まず初めに、データブロック
d00に対する書き込み要求が発生したとする。この場
合、例えば一時格納アドレスレジスタファイル6Aがこ
れに最初に応答するものとする。一時格納アドレスレジ
スタファイル6Aの参照カウンタ31は“0”であるか
ら、これがインクリメントされ“1”になる。また、最
終論理アドレス32にはd00が格納される。次に、デ
ータブロックd16についての書き込み要求が発生す
る。これはタスクBによる要求である。このとき、一時
格納アドレスレジスタファイル6Aの参照カウンタ31
は“1”であって、最終論理アドレス32がd00であ
るから、連続ブロックへのアクセスでないと判断し、参
照カウンタ31を“1”だけインクリメントする。即
ち、参照カウンタ31は“1”から“2”に変わる。
【0081】一時格納アドレスレジスタファイル6A、
6Bの参照カウンタ31は、いずれも、“0”のときは
無効である。いずれかのタスクの書き込み要求がある
と、参照カウンタ31をインクリメントする。その書き
込み要求のあったデータブロックのアドレスと最終論理
アドレス32とが一致すれば、参照カウンタ31が
“1”ならそのままにし、“2”ならデクリメントす
る。一方、書き込み要求のあったデータブロックのアド
レスと最終論理アドレス32とが相違すれば、参照カウ
ンタ31をインクリメントする。参照カウンタ31が
“1”なら“2”とし、“2”なら“0”とする。
【0082】データブロックd16についての書き込み
要求が発生したとき、もう1つの一時格納アドレスレジ
スタファイル6Bの参照カウンタ31は“0”である。
そこで、新たな書き込み要求を受け付け、その参照カウ
ンタの値を“0”から“1”にインクリメントする。そ
して、最終論理アドレス32の内容をd16とする。続
いて、新たにデータブロックd01についての書き込み
要求が発生すると、一時格納アドレスレジスタファイル
6Bの最終論理アドレス32と比較して、連続書き込み
でないと判断する。従って、参照カウンタ31を“1”
から“2”にインクリメントする。
【0083】一方、一時格納アドレスレジスタファイル
6Aの最終論理アドレス32と比較して、連続書き込み
であると判断すると、一時格納アドレスレジスタファイ
ル6Aの参照カウンタ31が“2”から“1”にデクリ
メントされて、最終論理アドレス32にd01が書き込
まれる。次に、データブロックd17についての書き込
み要求が発生すると、今度は一時格納アドレスレジスタ
ファイル6Bの参照カウンタ31が“2”から“1”に
デクリメントされ、最終論理アドレス32にd17が書
き込まれる。
【0084】以上のように、タスクと同数の一時格納ア
ドレスレジスタファイルを利用することで、異なるタス
クからの書き込み要求が混在したとしても、連続ブロッ
クへのアクセスを効率的に処理することが可能になる。
【0085】〈各具体例の効果〉図18と図19には、
連続ブロック書き込み時の動作シーケンスを示す。この
図の例は、従来の方法により、各データブロックの読み
込みの都度、排他的論理和演算を行い、新たなデータブ
ロックと新たなパリティブロックを書き込むシーケンス
を示す。この図に示すように、データブロックd00〜
データブロックd07までの書き込み要求を受け付けた
場合、各書き込み要求毎に4回のアクセスを行い、合計
32回のアクセスが実行される。
【0086】この従来例と比較して、これまで説明した
具体例によるアクセス回数の減少の程度を証明する。図
20〜図23には、データブロックとパリティブロック
の先読み動作シーケンスチャートを示す。これらの図に
は、既に説明したデータブロックとパリティブロックを
先読みした場合の具体的なアクセス動作を示した。この
図に示すように、この例ではデータブロックd00〜d
07の書き込み要求に対しアクセス回数の合計は22回
となっている。即ち、従来の32回に比べ10回のアク
セス回数減少を図ることができる。
【0087】次に、図24〜図27に、データブロック
とパリティブロックの遅延書き込み動作シーケンスチャ
ートを示す。これらの図では、遅延書き込みによるアク
セス回数の減少例を具体的に示している。この遅延書き
込みによれば、合計アクセス回数は20回となる。即
ち、従来のアクセス32回に比べ、12回のアクセス減
少を図ることができる。
【0088】図28〜図30には、パリティブロックの
遅延読み込み/遅延書き込み動作シーケンスを示す。パ
リティブロックのみについて遅延読み込みや遅延書き込
みを行った場合には、この図に示すように、データブロ
ックd00〜データブロックd07の書き込み要求を実
行すると、合計アクセス回数が18回となる。即ち、従
来技術による場合に比べて14回のアクセス回数減少を
図ることができる。
【0089】次の図31と図32には、別の例のパリテ
ィブロックの遅延読み込み/遅延書き込み動作シーケン
スを示す。ここには、パリティブロックの遅延読み込み
/遅延書き込み動作シーケンスで示した動作に続いて、
新たな別のアドレスに対するデータブロックの書き込み
要求があった場合の処理を示す。
【0090】図33〜図37には、更に別の例のパリテ
ィブロックの遅延読み込み/遅延書き込み動作シーケン
スを示す。ここでは、中間値の演算処理が異なっている
のみで合計アクセス回数はもう一方の処理と変わらな
い。即ち、従来技術に比べ14回のアクセス回数節約を
図っている。
【0091】
【発明の効果】以上詳細に説明したように、本発明によ
るディスクアレイ装置の制御方法によれば、次のような
効果がある。 (1) 連続するデータブロックの書き込み要求が発生した
場合に、それに続くデータブロックとそれらのデータブ
ロックに対応するパリティブロックを一定量先読みし、
先読みしたブロックをディスクアレイ制御部に格納して
おき、その後発生する書き込み要求に対して、ディスク
アレイ制御部に既に格納されているデータブロックとパ
リティブロックから新しいパリティデータを生成するよ
うにすれば、連続書き込みの段階において、1回の書き
込み要求に必要な磁気ディスク装置へのアクセス回数を
削減することができる。従って、書き込み要求に対する
処理時間を短縮するとともに、装置全体のスループット
を向上させることができる。
【0092】(2) データブロックとパリティブロックの
磁気ディスク装置への書き込みを遅延させ、これらをバ
ッファ部に格納しておき、連続するデータブロックの書
き込み要求が発生した場合に、所定のタイミングでデー
タブロックやパリティブロックをまとめて磁気ディスク
装置に書き込むようにすれば、1回の書き込み要求に必
要な磁気ディスク装置へのアクセス回数を削減すること
ができる。これによっても、書き込み要求に対する処理
時間を短縮し、装置全体のスループットを向上させるこ
とができる。
【0093】(3) パリティデータの読み込みを遅延さ
せ、書き込み要求のあったデータブロックの新たなデー
タと旧データとを格納しておき、連続するデータブロッ
クの書き込みが発生した場合、パリティデータを一定量
まとめてディスク装置から読み込み、演算処理後書き込
みを行えば、1回の書き込み要求に必要な磁気ディスク
へのアクセス回数を削減することができる。これも同様
に、書き込み要求に対する処理時間を短縮し、装置全体
のスループットを向上させる効果を持つ。
【0094】(4) 書き込み要求のあったデータブロック
の新データ及び旧データの代わりに、これらの排他的論
理和をディスクアレイ制御部に格納すれば、パリティデ
ータの読み込みを遅延させる場合に、必要なディスクア
レイ制御部の記憶容量を削減することができる。これに
よって、ディスクアレイ装置のコスト削減や記憶領域の
有効利用を図ることができる。
【0095】(5) マルチタスク環境において、各タスク
毎に一時格納アドレスレジスタファイルを設定し、それ
ぞれ別々にデータ書き込み履歴をとることによって、マ
ルチタスクにおいても、連続した書き込みについて、書
き込み要求に対するアクセス回数を削減することができ
る。
【0096】(6) 上記 (1)〜(3) に示す方式を組み合わ
せて採用すると、更に一層のアクセス回数削減効果が得
られる。例えば、(1) 〜(3) の方式を全て採用すると、
従来32回のアクセスを行っていたものに対し7回のア
クセスで済むという効果が得られる。
【図面の簡単な説明】
【図1】本発明によるRAID5ディスクアレイ装置の
ブロック図である。
【図2】RAID5ディスクアレイ装置のデータ配置説
明図である。
【図3】RAID5ディスクアレイ装置の書き込み時の
動作説明図である。
【図4】新たなパリティデータ生成方法の説明図であ
る。
【図5】一時格納アドレスレジスタファイルの構成説明
図である。
【図6】参照カウンタ無効時の書き込み動作説明図であ
る。
【図7】先読み動作説明図である。
【図8】先読み後の書き込み動作説明図である。
【図9】遅延書き込み開始時の動作説明図である。
【図10】遅延書き込み開始後の動作説明図である。
【図11】遅延書き込み動作説明図である。
【図12】パリティブロック遅延読み込み/書き込み動
作説明図(その1)である。
【図13】パリティブロック遅延読み込み/書き込み動
作説明図(その2)である。
【図14】パリティブロック遅延読み込み/書き込み動
作説明図(その3)である。
【図15】パリティの演算動作説明図(その1)であ
る。
【図16】パリティの演算動作説明図(その2)であ
る。
【図17】マルチタスク環境での動作説明図である。
【図18】連続ブロック書き込み時の動作シーケンス
(その1)である。
【図19】連続ブロック書き込み時の動作シーケンス
(その2)である。
【図20】データブロックとパリティブロックの先読み
動作シーケンス(その1)である。
【図21】データブロックとパリティブロックの先読み
動作シーケンス(その2)である。
【図22】データブロックとパリティブロックの先読み
動作シーケンス(その3)である。
【図23】データブロックとパリティブロックの先読み
動作シーケンス(その4)である。
【図24】データブロックとパリティブロックの遅延書
き込み動作シーケンス(その1)である。
【図25】データブロックとパリティブロックの遅延書
き込み動作シーケンス(その2)である。
【図26】データブロックとパリティブロックの遅延書
き込み動作シーケンス(その3)である。
【図27】データブロックとパリティブロックの遅延書
き込み動作シーケンス(その4)である。
【図28】パリティブロックの遅延読み込み/遅延書き
込み動作シーケンス(その1)である。
【図29】パリティブロックの遅延読み込み/遅延書き
込み動作シーケンス(その2)である。
【図30】パリティブロックの遅延読み込み/遅延書き
込み動作シーケンス(その3)である。
【図31】パリティブロックの遅延読み込み/遅延書き
込み動作シーケンス(その4)である。
【図32】パリティブロックの遅延読み込み/遅延書き
込み動作シーケンス(その5)である。
【図33】パリティブロックの遅延読み込み/遅延書き
込み動作シーケンス(その6)である。
【図34】パリティブロックの遅延読み込み/遅延書き
込み動作シーケンス(その7)である。
【図35】パリティブロックの遅延読み込み/遅延書き
込み動作シーケンス(その8)である。
【図36】パリティブロックの遅延読み込み/遅延書き
込み動作シーケンス(その9)である。
【図37】パリティブロックの遅延読み込み/遅延書き
込み動作シーケンス(その10)である。
【符号の説明】
1 ディスクアレイ制御部 3 マイクロプロセッサ 4 RAM部 6 一時格納アドレスレジスタファイル 7 一時格納用バッファ部 9−0〜9−3 DKI/F制御部 11 ホストシステム DK#0〜DK#3 内蔵磁気ディスク装置

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 ディスクアレイ装置を構成する複数台の
    内蔵磁気ディスク装置に対して、それぞれデータブロッ
    ク単位で並列にデータをアクセスし、ホストシステムか
    ら見た論理アドレスが連続する所定数のデータブロック
    を、同一の内蔵磁気ディスク装置に書き込むようにし、
    いずれか1台の内蔵磁気ディスク装置には、他の内蔵磁
    気ディスク装置に格納されて並列にアクセスされるデー
    タブロックのパリティブロックを格納するよう制御を行
    う場合において、 先に書き込み要求が発生したデータブロックの論理アド
    レスと次に書き込み要求が発生したデータブロックの論
    理アドレスとを比較して、 両者の論理アドレスが連続する場合に、 予めこれらの論理アドレスと論理アドレスが連続する所
    定数の旧データブロックを、同一の磁気ディスク装置か
    ら先読みして一時記憶するとともに、これらのデータブ
    ロックと対応する旧パリティブロックを別の内蔵磁気デ
    ィスク装置から先読みして一時記憶し、 続いて、先読みした旧データブロックの論理アドレスへ
    新たなデータブロックの書き込み要求があったとき、こ
    の新たなデータブロックと、記憶しておいた旧データブ
    ロックと旧パリティブロックとを用いて、新たなパリテ
    ィブロックを生成し、それぞれ該当する内蔵磁気ディス
    ク装置に書き込むことを特徴とするディスクアレイ装置
    の制御方法。
  2. 【請求項2】 ディスクアレイ装置を構成する複数台の
    内蔵磁気ディスク装置に対して、それぞれデータブロッ
    ク単位で並列にデータをアクセスし、ホストシステムか
    ら見た論理アドレスが連続する所定数のデータブロック
    を、同一の内蔵磁気ディスク装置に書き込むようにし、
    いずれか1台の内蔵磁気ディスク装置には、他の内蔵磁
    気ディスク装置に格納されて並列にアクセスされるデー
    タブロックのパリティブロックを格納するよう制御を行
    う場合において、 先に書き込み要求が発生したデータブロックの論理アド
    レスと次に書き込み要求が発生したデータブロックの論
    理アドレスとを比較して、 両者の論理アドレスが連続する場合に、 内蔵磁気ディスク装置の該当する論理アドレスから旧デ
    ータブロックを読み出し、同時に他の磁気ディスク装置
    から、対応する旧パリティブロックを読み出して、 書き込み要求の発生した新たなデータブロックと旧デー
    タブロックと対応する旧パリティブロックとを用いて、
    新たなパリティブロックを生成して一時記憶し、 論理アドレスが連続するデータブロックの書き込み要求
    が続くときは、同様の新たなパリティブロックの生成と
    一時記憶を繰り返し、 論理アドレスが連続しない新たなデータブロックの書き
    込み要求があったとき、一時記憶していた新たなデータ
    ブロック群と新たなパリティブロック群とを、それぞれ
    一括して該当する内蔵磁気ディスク装置に書き込むこと
    を特徴とするディスクアレイ装置の制御方法。
  3. 【請求項3】 ディスクアレイ装置を構成する複数台の
    内蔵磁気ディスク装置に対して、それぞれデータブロッ
    ク単位で並列にデータをアクセスし、ホストシステムか
    ら見た論理アドレスが連続する所定数のデータブロック
    を、同一の内蔵磁気ディスク装置に書き込むようにし、
    いずれか1台の内蔵磁気ディスク装置には、他の内蔵磁
    気ディスク装置に格納されて並列にアクセスされるデー
    タブロックのパリティブロックを格納するよう制御を行
    う場合において、 先に書き込み要求が発生したデータブロックの論理アド
    レスと次に書き込み要求が発生したデータブロックの論
    理アドレスとを比較して、 両者の論理アドレスが連続する場合に、 内蔵磁気ディスク装置の該当する論理アドレスから旧デ
    ータブロックを読み出し、 書き込み要求の発生した新たなデータブロックと旧デー
    タブロックとを一時記憶し、 論理アドレスが連続するデータブロックの書き込み要求
    が続くときは、同様の旧データブロックの読み出しと一
    時記憶を繰り返し、 論理アドレスが連続しない新たなデータブロックの書き
    込み要求があったとき、該当する内蔵磁気ディスク装置
    から一括して旧パリティブロック群を読み出すととも
    に、この旧パリティブロック群と、一時記憶していた新
    たなデータブロック群と旧データブロック群とを用い
    て、新たなパリティブロック群を生成して、新たなデー
    タブロック群と新たなパリティブロック群をそれぞれ一
    括して該当する内蔵磁気ディスク装置に書き込むことを
    特徴とするディスクアレイ装置の制御方法。
  4. 【請求項4】 ディスクアレイ装置を構成する複数台の
    内蔵磁気ディスク装置に対して、それぞれデータブロッ
    ク単位で並列にデータをアクセスし、ホストシステムか
    ら見た論理アドレスが連続する所定数のデータブロック
    を、同一の内蔵磁気ディスク装置に書き込むようにし、
    いずれか1台の内蔵磁気ディスク装置には、他の内蔵磁
    気ディスク装置に格納されて並列にアクセスされるデー
    タブロックのパリティブロックを格納するよう制御を行
    う場合において、 先に書き込み要求が発生したデータブロックの論理アド
    レスと次に書き込み要求が発生したデータブロックの論
    理アドレスとを比較して、 両者の論理アドレスが連続する場合に、 内蔵磁気ディスク装置の該当する論理アドレスから旧デ
    ータブロックを読み出して、 書き込み要求の発生した新たなデータブロックと旧デー
    タブロックとを用いて、パリティブロック演算のための
    基礎になる中間値を生成して、新たなデータブロックと
    中間値を一時記憶し、 論理アドレスが連続するデータブロックの書き込み要求
    が続くときは、同様の新たな中間値の生成と一時記憶を
    繰り返し、 論理アドレスが連続しない新たなデータブロックの書き
    込み要求があったとき、該当する内蔵磁気ディスク装置
    から一括して旧パリティブロック群を読み出すととも
    に、この旧パリティブロック群と、一時記憶していた新
    たなデータブロック群と中間値群とを用いて、新たなパ
    リティブロック群を生成して、新たなデータブロック群
    と新たなパリティブロック群をそれぞれ一括して該当す
    る内蔵磁気ディスク装置に書き込むことを特徴とするデ
    ィスクアレイ装置の制御方法。
  5. 【請求項5】 請求項1から4のうちのいずれか1項に
    おいて、 複数のタスクが、それぞれ論理アドレスが連続するデー
    タブロックの書き込み要求を行っている場合に、 各タスクが書き込み要求をする論理アドレスが連続する
    かどうかを判定するデータを格納し、データブロックや
    パリティブロックの一時記憶を制御をするための一時格
    納アドレスレジスタファイルを、タスク毎に設けること
    を特徴とするディスクアレイ装置の制御方法。
  6. 【請求項6】 請求項2から4のうちのいずれか1項に
    おいて、 一時記憶には不揮発性の記憶装置を使用することを特徴
    とするディスクアレイ装置の制御方法。
JP9147111A 1997-05-21 1997-05-21 ディスクアレイ装置の制御方法 Pending JPH10320128A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9147111A JPH10320128A (ja) 1997-05-21 1997-05-21 ディスクアレイ装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9147111A JPH10320128A (ja) 1997-05-21 1997-05-21 ディスクアレイ装置の制御方法

Publications (1)

Publication Number Publication Date
JPH10320128A true JPH10320128A (ja) 1998-12-04

Family

ID=15422781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9147111A Pending JPH10320128A (ja) 1997-05-21 1997-05-21 ディスクアレイ装置の制御方法

Country Status (1)

Country Link
JP (1) JPH10320128A (ja)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100321987B1 (ko) * 1999-02-19 2002-02-04 윤종용 레이드 시스템에서 패러티 캐쉬 및 이의 운영 방법
KR100423812B1 (ko) * 2001-12-20 2004-03-22 한국전자통신연구원 디스크 캐쉬메모리 제어기 및 패리티 연산장치를 구비한알에이아이디 제어기 및 패리티 연산방법
US7941601B2 (en) 2006-01-17 2011-05-10 Kabushiki Kaisha Toshiba Storage device using nonvolatile cache memory and control method thereof
US8964361B2 (en) 2010-07-21 2015-02-24 Teradyne, Inc. Bulk transfer of storage devices using manual loading
US9001456B2 (en) 2010-08-31 2015-04-07 Teradyne, Inc. Engaging test slots
US9459312B2 (en) 2013-04-10 2016-10-04 Teradyne, Inc. Electronic assembly test system
US9779780B2 (en) 2010-06-17 2017-10-03 Teradyne, Inc. Damping vibrations within storage device testing systems
US10725091B2 (en) 2017-08-28 2020-07-28 Teradyne, Inc. Automated test system having multiple stages
US10775408B2 (en) 2018-08-20 2020-09-15 Teradyne, Inc. System for testing devices inside of carriers
US10845410B2 (en) 2017-08-28 2020-11-24 Teradyne, Inc. Automated test system having orthogonal robots
US10948534B2 (en) 2017-08-28 2021-03-16 Teradyne, Inc. Automated test system employing robotics
US10983145B2 (en) 2018-04-24 2021-04-20 Teradyne, Inc. System for testing devices inside of carriers
US11226390B2 (en) 2017-08-28 2022-01-18 Teradyne, Inc. Calibration process for an automated test system
CN114217736A (zh) * 2021-11-18 2022-03-22 新华三大数据技术有限公司 减少预读的数据写入方法、装置和存储介质
US11754622B2 (en) 2020-10-22 2023-09-12 Teradyne, Inc. Thermal control system for an automated test system
US11754596B2 (en) 2020-10-22 2023-09-12 Teradyne, Inc. Test site configuration in an automated test system
US11867749B2 (en) 2020-10-22 2024-01-09 Teradyne, Inc. Vision system for an automated test system
US11899042B2 (en) 2020-10-22 2024-02-13 Teradyne, Inc. Automated test system
US11953519B2 (en) 2020-10-22 2024-04-09 Teradyne, Inc. Modular automated test system
US12007411B2 (en) 2021-06-22 2024-06-11 Teradyne, Inc. Test socket having an automated lid

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100321987B1 (ko) * 1999-02-19 2002-02-04 윤종용 레이드 시스템에서 패러티 캐쉬 및 이의 운영 방법
KR100423812B1 (ko) * 2001-12-20 2004-03-22 한국전자통신연구원 디스크 캐쉬메모리 제어기 및 패리티 연산장치를 구비한알에이아이디 제어기 및 패리티 연산방법
US7941601B2 (en) 2006-01-17 2011-05-10 Kabushiki Kaisha Toshiba Storage device using nonvolatile cache memory and control method thereof
US9779780B2 (en) 2010-06-17 2017-10-03 Teradyne, Inc. Damping vibrations within storage device testing systems
US8964361B2 (en) 2010-07-21 2015-02-24 Teradyne, Inc. Bulk transfer of storage devices using manual loading
US9001456B2 (en) 2010-08-31 2015-04-07 Teradyne, Inc. Engaging test slots
US9459312B2 (en) 2013-04-10 2016-10-04 Teradyne, Inc. Electronic assembly test system
US10948534B2 (en) 2017-08-28 2021-03-16 Teradyne, Inc. Automated test system employing robotics
US10845410B2 (en) 2017-08-28 2020-11-24 Teradyne, Inc. Automated test system having orthogonal robots
US10725091B2 (en) 2017-08-28 2020-07-28 Teradyne, Inc. Automated test system having multiple stages
US11226390B2 (en) 2017-08-28 2022-01-18 Teradyne, Inc. Calibration process for an automated test system
US10983145B2 (en) 2018-04-24 2021-04-20 Teradyne, Inc. System for testing devices inside of carriers
US10775408B2 (en) 2018-08-20 2020-09-15 Teradyne, Inc. System for testing devices inside of carriers
US11754622B2 (en) 2020-10-22 2023-09-12 Teradyne, Inc. Thermal control system for an automated test system
US11754596B2 (en) 2020-10-22 2023-09-12 Teradyne, Inc. Test site configuration in an automated test system
US11867749B2 (en) 2020-10-22 2024-01-09 Teradyne, Inc. Vision system for an automated test system
US11899042B2 (en) 2020-10-22 2024-02-13 Teradyne, Inc. Automated test system
US11953519B2 (en) 2020-10-22 2024-04-09 Teradyne, Inc. Modular automated test system
US12007411B2 (en) 2021-06-22 2024-06-11 Teradyne, Inc. Test socket having an automated lid
CN114217736A (zh) * 2021-11-18 2022-03-22 新华三大数据技术有限公司 减少预读的数据写入方法、装置和存储介质

Similar Documents

Publication Publication Date Title
JPH10320128A (ja) ディスクアレイ装置の制御方法
US6523087B2 (en) Utilizing parity caching and parity logging while closing the RAID5 write hole
US5911779A (en) Storage device array architecture with copyback cache
US6738863B2 (en) Method for rebuilding meta-data in a data storage system and a data storage system
JP3422370B2 (ja) ディスクキャッシュ制御装置
US7035974B2 (en) RAID-5 disk having cache memory implemented using non-volatile RAM
US6898668B2 (en) System and method for reorganizing data in a raid storage system
US6289471B1 (en) Storage device array architecture with solid-state redundancy unit
US7861035B2 (en) Method of improving input and output performance of raid system using matrix stripe cache
JP3011035B2 (ja) 計算機システム
EP0556945A2 (en) Redundant storage array parity caching system
US20090265578A1 (en) Full Stripe Processing for a Redundant Array of Disk Drives
EP1019835A1 (en) Segmented dma with xor buffer for storage subsystems
JP2001147785A (ja) データを管理する方法
JP2002312130A (ja) 改良されたストライプベースの処理方法
US7051156B2 (en) Raid-5 disk having cache memory
JP2857288B2 (ja) ディスクアレイ装置
JP3122252B2 (ja) ディスクアレイ制御方式
JP2857289B2 (ja) ディスクアレイ装置
JP3224741B2 (ja) データ記憶装置
US7234022B2 (en) Cache accumulator memory for performing operations on block operands
CN115686366A (zh) 一种基于raid的写数据缓存加速方法
JPH10269695A (ja) コンピュータシステムにおける記憶装置の制御方式
JP3861061B2 (ja) ディスクキャッシュ制御装置
US20030115416A1 (en) Cache accumulator memory with an associativity mechanism