JP3072700B2 - 記憶装置及び方法 - Google Patents
記憶装置及び方法Info
- Publication number
- JP3072700B2 JP3072700B2 JP6286911A JP28691194A JP3072700B2 JP 3072700 B2 JP3072700 B2 JP 3072700B2 JP 6286911 A JP6286911 A JP 6286911A JP 28691194 A JP28691194 A JP 28691194A JP 3072700 B2 JP3072700 B2 JP 3072700B2
- Authority
- JP
- Japan
- Prior art keywords
- storage device
- command
- parity
- data
- error correction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1054—Parity-fast hardware, i.e. dedicated fast hardware for RAID systems with parity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Description
【0001】
【産業上の利用分野】本発明は記憶装置が記憶装置のア
レイにより提供されるデジタル記憶システムに関する。
レイにより提供されるデジタル記憶システムに関する。
【0002】
【従来の技術】単一のディスク・ドライブで達成される
よりも低いコストにより大記憶容量及び高い信頼性を提
供する、ディスクまたは他の直接アクセス記憶装置(D
ASD)のアレイの利用が知られている。
よりも低いコストにより大記憶容量及び高い信頼性を提
供する、ディスクまたは他の直接アクセス記憶装置(D
ASD)のアレイの利用が知られている。
【0003】米国特許第4870643号はラック内に
実装される標準の5.25インチのディスク・ドライブ
のアレイ、及びSCSI(Small Computer System Inte
rface)を使用するパネル・フレームを教示する。各デ
ータ・ワードはn個のセグメントに分割され、各セグメ
ントはn個の異なるドライブの1つに並列に転送され、
ワード転送レートを高速化する。
実装される標準の5.25インチのディスク・ドライブ
のアレイ、及びSCSI(Small Computer System Inte
rface)を使用するパネル・フレームを教示する。各デ
ータ・ワードはn個のセグメントに分割され、各セグメ
ントはn個の異なるドライブの1つに並列に転送され、
ワード転送レートを高速化する。
【0004】少なくとも1つのディスク・ドライブがパ
リティ・チェック情報を記憶し、これが故障したと思わ
れる任意の1つのディスク・ドライブ上のデータを再生
するために使用される。ドライブが故障すると、オペレ
ータは故障のドライブをフレームから抜き出し、正常な
ドライブと置き換える。次に再生されたデータが置換さ
れたドライブ上に書込まれる。ドライブはディスクの1
つに同期してではなく、マスタ制御装置からの信号に同
期して動作される。
リティ・チェック情報を記憶し、これが故障したと思わ
れる任意の1つのディスク・ドライブ上のデータを再生
するために使用される。ドライブが故障すると、オペレ
ータは故障のドライブをフレームから抜き出し、正常な
ドライブと置き換える。次に再生されたデータが置換さ
れたドライブ上に書込まれる。ドライブはディスクの1
つに同期してではなく、マスタ制御装置からの信号に同
期して動作される。
【0005】米国特許第4989206号は、米国特許
第4878643号で述べられるタイプのアレイを教示
するが、データ及びパリティを記憶するために必要とな
るよりも多くのドライブをアレイ内に含む。ドライブが
故障すると、システムがドライブをクロス・ポイント・
スイッチを通じて再接続することにより、故障のドライ
ブを正常なドライブにより置換する。
第4878643号で述べられるタイプのアレイを教示
するが、データ及びパリティを記憶するために必要とな
るよりも多くのドライブをアレイ内に含む。ドライブが
故障すると、システムがドライブをクロス・ポイント・
スイッチを通じて再接続することにより、故障のドライ
ブを正常なドライブにより置換する。
【0006】このシステムはプロセッサ及びキャッシュ
・メモリを有する制御モジュールを含む。各制御モジュ
ールはコンピュータから受信するデータ・ワードを、n
個のドライブ上に書込まれるn個のセグメントに分割
し、パリティ・ドライブ上に書込まれるパリティ・セグ
メントを生成する。
・メモリを有する制御モジュールを含む。各制御モジュ
ールはコンピュータから受信するデータ・ワードを、n
個のドライブ上に書込まれるn個のセグメントに分割
し、パリティ・ドライブ上に書込まれるパリティ・セグ
メントを生成する。
【0007】IBM Technical Disclosure Bulletin、Vol
ume 32、Number 7(1989年12月)のページ5で
は、IBM System 38及びIBM System 370で使用されるD
ASDアレイ・システムの改善を教示している。
ume 32、Number 7(1989年12月)のページ5で
は、IBM System 38及びIBM System 370で使用されるD
ASDアレイ・システムの改善を教示している。
【0008】これらのシステムでは、n個のドライブ内
の対応するDASDブロックのチェックサムがCPUに
より計算される。この教示では、チェックサム・レコー
ドを準備するために必要なCPU時間を低減するため
に、チェックサムがI/Oサブシステム・チャネル及び
キャッシュにおいて計算される。この開示ではまた、デ
ータがn個のドライブの間で分散されず、ドライブの1
つに書込まれる。しかし、チェックサムは全てのドライ
ブのエラー回復を提供するために、n個の全てのドライ
ブに渡って計算される。ドライブの1つがデータ・ブロ
ックにより書込まれる度に、チェックサムが全てのドラ
イブ内のデータから計算されることはない。
の対応するDASDブロックのチェックサムがCPUに
より計算される。この教示では、チェックサム・レコー
ドを準備するために必要なCPU時間を低減するため
に、チェックサムがI/Oサブシステム・チャネル及び
キャッシュにおいて計算される。この開示ではまた、デ
ータがn個のドライブの間で分散されず、ドライブの1
つに書込まれる。しかし、チェックサムは全てのドライ
ブのエラー回復を提供するために、n個の全てのドライ
ブに渡って計算される。ドライブの1つがデータ・ブロ
ックにより書込まれる度に、チェックサムが全てのドラ
イブ内のデータから計算されることはない。
【0009】その代わりに、チェックサムは書込まれる
べきドライブ内の旧データ・ブロックの影響を取り除く
ために、それを排他的論理和し、次に新たなチェックサ
ムを獲得するために新たなデータを排他的論理和するこ
とにより更新される。これらの排他的論理和演算がCP
Uにより実行される時、CPUはしばしば、そのキャッ
シュ・メモリを介して作業し、それによりキャッシュは
一度だけ使用されるロング・オペランドによって満たさ
れる。I/Oサブシステムによる計算は、メモリに対し
て直接実行され、従ってキャッシュは保存され、CPU
時間が低減される。
べきドライブ内の旧データ・ブロックの影響を取り除く
ために、それを排他的論理和し、次に新たなチェックサ
ムを獲得するために新たなデータを排他的論理和するこ
とにより更新される。これらの排他的論理和演算がCP
Uにより実行される時、CPUはしばしば、そのキャッ
シュ・メモリを介して作業し、それによりキャッシュは
一度だけ使用されるロング・オペランドによって満たさ
れる。I/Oサブシステムによる計算は、メモリに対し
て直接実行され、従ってキャッシュは保存され、CPU
時間が低減される。
【0010】IBM Technical Disclosure Bulletin、Vol
ume 32、Number 6B(1989年11月)の48ページ
では、チェックサム情報をドライブの1つに記憶する代
わりに、各ディスク・ドライブに渡って分散することを
教示する。この場合、任意のドライブ上の任意のデータ
・ブロックが書込まれる度に、チェックサムが再度書込
まれなければならないので、信頼性を増す効果がある。
別のチェックサム・ドライブが提供されると、そのドラ
イブは他のドライブのいずれかが書込まれる時に動作
し、書込まれる新たなパリティ・ブロックによりバック
ログ(backlog)され、他のドライブよりも早くだめに
なることになる。
ume 32、Number 6B(1989年11月)の48ページ
では、チェックサム情報をドライブの1つに記憶する代
わりに、各ディスク・ドライブに渡って分散することを
教示する。この場合、任意のドライブ上の任意のデータ
・ブロックが書込まれる度に、チェックサムが再度書込
まれなければならないので、信頼性を増す効果がある。
別のチェックサム・ドライブが提供されると、そのドラ
イブは他のドライブのいずれかが書込まれる時に動作
し、書込まれる新たなパリティ・ブロックによりバック
ログ(backlog)され、他のドライブよりも早くだめに
なることになる。
【0011】
【発明が解決しようとする課題】上述の従来技術は、低
コストのディスク・アレイの信頼性を改善したが、幾つ
かの問題も提示した。1989年12月のIBM Technica
l Disclosure Bulletinで述べられるように、I/Oサ
ブシステムの利用はI/Oボトルネックの潜在的な原因
として認識される。
コストのディスク・アレイの信頼性を改善したが、幾つ
かの問題も提示した。1989年12月のIBM Technica
l Disclosure Bulletinで述べられるように、I/Oサ
ブシステムの利用はI/Oボトルネックの潜在的な原因
として認識される。
【0012】この問題は更にRAID(Redundant Arra
y of Inexpensive Disks)AdvisoryBoard社(ミネソタ
州リノレイクス)によって認識される。同社はRAID
技術の情報源として、"RAIDBook"を発行している。その
中で同社は、RAIDレベル4において発生するパリテ
ィ書込みのボトルネックに対する部分的解決として、R
AIDレベル5を述べている。RAIDレベル4は上記
1989年12月のIBM刊行物の教示と類似であり、
RAIDレベル5は上記1989年11月のIBM刊行
物と類似である。
y of Inexpensive Disks)AdvisoryBoard社(ミネソタ
州リノレイクス)によって認識される。同社はRAID
技術の情報源として、"RAIDBook"を発行している。その
中で同社は、RAIDレベル4において発生するパリテ
ィ書込みのボトルネックに対する部分的解決として、R
AIDレベル5を述べている。RAIDレベル4は上記
1989年12月のIBM刊行物の教示と類似であり、
RAIDレベル5は上記1989年11月のIBM刊行
物と類似である。
【0013】この問題はアレイが直接、SCSIバスに
よりホスト・コンピュータに接続され、アレイがホスト
・コンピュータ内で動作するアレイ管理ソフトウェアに
より制御される場合に深刻である。I/O制御装置を提
供する既知の代替は高価であり、上記従来技術で述べた
ように、それ自身がボトルネックとなる可能性がある。
このボトルネックは、ホストが書込みコマンドをRAI
Dレベル2及び3の全てのディスクに送信しなければな
らない、或いは新たなデータに対応する新たなパリティ
を生成するために旧データ及び旧パリティを読出し、次
に新たなデータ及び新たなパリティをRAIDレベル4
及び5として書込まなければならない事実により一層悪
化する。
よりホスト・コンピュータに接続され、アレイがホスト
・コンピュータ内で動作するアレイ管理ソフトウェアに
より制御される場合に深刻である。I/O制御装置を提
供する既知の代替は高価であり、上記従来技術で述べた
ように、それ自身がボトルネックとなる可能性がある。
このボトルネックは、ホストが書込みコマンドをRAI
Dレベル2及び3の全てのディスクに送信しなければな
らない、或いは新たなデータに対応する新たなパリティ
を生成するために旧データ及び旧パリティを読出し、次
に新たなデータ及び新たなパリティをRAIDレベル4
及び5として書込まなければならない事実により一層悪
化する。
【0014】
【課題を解決するための手段】これらの及び他の問題
が、アレイ内の各記憶装置にロジック及び計算手段を提
供する本発明により軽減される。本発明によれば、書込
まれるデータが新たなコマンドの下で、ホスト・コンピ
ュータからターゲット・ドライブに送信され、この新た
なコマンドがターゲット・ドライブに新たなパリティの
一部を生成するように命令する。更にコマンドがパリテ
ィ・ドライブを識別してもよい。或いはRAIDレベル
5の上記RAIDBookで述べられるように、パリティ・ドラ
イブが永久にデータチャンク(datachunk)にもとづき
割当てられてもよい。
が、アレイ内の各記憶装置にロジック及び計算手段を提
供する本発明により軽減される。本発明によれば、書込
まれるデータが新たなコマンドの下で、ホスト・コンピ
ュータからターゲット・ドライブに送信され、この新た
なコマンドがターゲット・ドライブに新たなパリティの
一部を生成するように命令する。更にコマンドがパリテ
ィ・ドライブを識別してもよい。或いはRAIDレベル
5の上記RAIDBookで述べられるように、パリティ・ドラ
イブが永久にデータチャンク(datachunk)にもとづき
割当てられてもよい。
【0015】ターゲット装置はその媒体から旧データを
読出し、パリティ・シンドロームを生成し、新たなデー
タを記憶し、識別パリティ・ドライブと通信を開始す
る。そして、そのパリティ・ドライブに対して旧パリテ
ィを読出し、パリティ・シンドローム及び旧パリティか
ら新たなパリティ情報を生成するように命令する。パリ
ティ・ドライブは新たなパリティの生成後、ホストまた
はホストI/Oアクションを伴わずに、全てのパリティ
情報を書込む。
読出し、パリティ・シンドロームを生成し、新たなデー
タを記憶し、識別パリティ・ドライブと通信を開始す
る。そして、そのパリティ・ドライブに対して旧パリテ
ィを読出し、パリティ・シンドローム及び旧パリティか
ら新たなパリティ情報を生成するように命令する。パリ
ティ・ドライブは新たなパリティの生成後、ホストまた
はホストI/Oアクションを伴わずに、全てのパリティ
情報を書込む。
【0016】本発明の利点は、別のアレイ制御装置及び
その電源及びパッケージングのコストが削除され、同時
にホスト・コンピュータをパリティの生成及び余計なI
/Oオペレーションから解放することである。本発明の
別の利点は、本発明は少なくとも部分的に、各ディスク
・ドライブ内の既存のディスク装置プロセッサにおいて
実行されるマイクロコードにより実現されることにあ
る。
その電源及びパッケージングのコストが削除され、同時
にホスト・コンピュータをパリティの生成及び余計なI
/Oオペレーションから解放することである。本発明の
別の利点は、本発明は少なくとも部分的に、各ディスク
・ドライブ内の既存のディスク装置プロセッサにおいて
実行されるマイクロコードにより実現されることにあ
る。
【0017】別の態様では、各ディスク・ドライブに最
小の排他的論理和ロジックを追加することにより、ディ
スク・ドライブ内の既存の電源に多大な負荷を追加する
ことなしに、スピード的な利点を提供する。
小の排他的論理和ロジックを追加することにより、ディ
スク・ドライブ内の既存の電源に多大な負荷を追加する
ことなしに、スピード的な利点を提供する。
【0018】
【実施例】図1はデータを従来のRAIDレベル5のア
レイ・ディスク記憶システムに書込むための一般的なデ
ータ・パスを示す。ホスト・コンピュータ11内のアプ
リケーション・プログラム10が書込み要求を生成する
と、全ての変更データ・ブロックに対応するパリティ・
ブロックが変化する。
レイ・ディスク記憶システムに書込むための一般的なデ
ータ・パスを示す。ホスト・コンピュータ11内のアプ
リケーション・プログラム10が書込み要求を生成する
と、全ての変更データ・ブロックに対応するパリティ・
ブロックが変化する。
【0019】最初に、アレイ管理ソフトウェア20がア
プリケーション・プログラム仮想ディスク・アドレス
を、アレイ・メンバ番号1及びそのメンバ上のブロック
・アドレスに変換する。次に、アレイ管理ソフトウェア
20は、変更されるメンバ・ブロックの内容30をホス
ト内の内部バッファに読出す。アレイ管理ソフトウェア
はまた別途、選択データ・ブロック位置に対応するパリ
ティ・ブロックの内容40を、パリティ・ドライブ4か
ら内部バッファに読出す。アレイ管理ソフトウェア20
は次に、旧データ30と旧パリティ40との排他的論理
和を計算することにより(50)、ターゲット・ブロッ
ク内での旧データ30の寄与を除去する。次に、中間結
果50が新たなデータ60と排他的論理和され、新たな
パリティ情報70が獲得される。次に、アレイ管理ソフ
トウェアが新たなパリティ情報70をホストからパリテ
ィ・ドライブ4に書込み、また新たなデータ60をホス
ト・コンピュータ11からデータ・ドライブ1に書込
む。これらの読出し及び書込みオペレーションの各々は
I/Oボトルネックに寄与し、ホスト・コンピュータ資
源を消費する。
プリケーション・プログラム仮想ディスク・アドレス
を、アレイ・メンバ番号1及びそのメンバ上のブロック
・アドレスに変換する。次に、アレイ管理ソフトウェア
20は、変更されるメンバ・ブロックの内容30をホス
ト内の内部バッファに読出す。アレイ管理ソフトウェア
はまた別途、選択データ・ブロック位置に対応するパリ
ティ・ブロックの内容40を、パリティ・ドライブ4か
ら内部バッファに読出す。アレイ管理ソフトウェア20
は次に、旧データ30と旧パリティ40との排他的論理
和を計算することにより(50)、ターゲット・ブロッ
ク内での旧データ30の寄与を除去する。次に、中間結
果50が新たなデータ60と排他的論理和され、新たな
パリティ情報70が獲得される。次に、アレイ管理ソフ
トウェアが新たなパリティ情報70をホストからパリテ
ィ・ドライブ4に書込み、また新たなデータ60をホス
ト・コンピュータ11からデータ・ドライブ1に書込
む。これらの読出し及び書込みオペレーションの各々は
I/Oボトルネックに寄与し、ホスト・コンピュータ資
源を消費する。
【0020】図2は本発明により変更された記憶装置の
ブロック図を示す。ホスト・コンピュータ11はSCS
Iバス・アダプタ15により、複数のディスク装置13
−1乃至13−(n+1)に接続される。従来技術に関
連して述べられたように、n個のドライブがデータを記
憶し、関連する追加のドライブがパリティを記憶するよ
うに、n+1個のドライブのアレイを有することが一般
的である。
ブロック図を示す。ホスト・コンピュータ11はSCS
Iバス・アダプタ15により、複数のディスク装置13
−1乃至13−(n+1)に接続される。従来技術に関
連して述べられたように、n個のドライブがデータを記
憶し、関連する追加のドライブがパリティを記憶するよ
うに、n+1個のドライブのアレイを有することが一般
的である。
【0021】もちろん、レベル5の下でのRAIDBookに述
べられるように、各ドライブはドライブ性能を最適化す
るために、普通はデータ及びパリティを有する。
べられるように、各ドライブはドライブ性能を最適化す
るために、普通はデータ及びパリティを有する。
【0022】ホスト・コンピュータ11は大型メインフ
レーム・コンピュータ、またはパーソナル・コンピュー
タを含む任意のアーキテクチャの小型コンピュータであ
る。各記憶装置13は対応するSCSIアダプタ17を
有し、これはレシーバ・モード或いはイニシエータ・モ
ードのいずれかで動作することができる。SCSIアー
キテクチャは、DASD装置がホストを通じて保存デー
タ(archive data)を渡すことなしに、バックアップ機
能を実行するためにイニシエータ・モードを有する。
レーム・コンピュータ、またはパーソナル・コンピュー
タを含む任意のアーキテクチャの小型コンピュータであ
る。各記憶装置13は対応するSCSIアダプタ17を
有し、これはレシーバ・モード或いはイニシエータ・モ
ードのいずれかで動作することができる。SCSIアー
キテクチャは、DASD装置がホストを通じて保存デー
タ(archive data)を渡すことなしに、バックアップ機
能を実行するためにイニシエータ・モードを有する。
【0023】各記憶装置はまたプロセッサ19を有し、
これは媒体ハードウェアを制御し、要求される内部デー
タ転送を実行するようにプログラムされる。プロセッサ
19はほとんどの場合、マイクロプロセッサである。メ
モリ21もまた提供され、プロセッサ19において実行
されるプログラムを記憶し、データをバッファする。デ
ータ・バッファ機能は図3に関連して詳細に述べられ
る。プロセッサは直接接続されるシーク制御論理及びド
ライバ23を介して、媒体ハードウェアを制御する。
これは媒体ハードウェアを制御し、要求される内部デー
タ転送を実行するようにプログラムされる。プロセッサ
19はほとんどの場合、マイクロプロセッサである。メ
モリ21もまた提供され、プロセッサ19において実行
されるプログラムを記憶し、データをバッファする。デ
ータ・バッファ機能は図3に関連して詳細に述べられ
る。プロセッサは直接接続されるシーク制御論理及びド
ライバ23を介して、媒体ハードウェアを制御する。
【0024】ドライバ23はこの実施例では、磁気読出
し/書込みヘッドを媒体27上で移動するアクチュエー
タ25に接続される。媒体に書込まれ、また媒体から読
出されるデータは、読出し/書込みチャネル29を介し
て転送される。読出し/書込みチャネル29は読出し/
書込みヘッドに増幅器(図示せず)により接続される。
し/書込みヘッドを媒体27上で移動するアクチュエー
タ25に接続される。媒体に書込まれ、また媒体から読
出されるデータは、読出し/書込みチャネル29を介し
て転送される。読出し/書込みチャネル29は読出し/
書込みヘッドに増幅器(図示せず)により接続される。
【0025】プロセッサ19は標準のマイクロプロセッ
サ・バスにより、SCSIアダプタ17、メモリ21及
び読出し/書込みチャネルに接続される。このバスは好
適な実施例では、Intel社のマイクロプロセッサ809
6により使用されるタイプの16ビット幅のデータ及び
アドレス・バスである。
サ・バスにより、SCSIアダプタ17、メモリ21及
び読出し/書込みチャネルに接続される。このバスは好
適な実施例では、Intel社のマイクロプロセッサ809
6により使用されるタイプの16ビット幅のデータ及び
アドレス・バスである。
【0026】上述の装置の他に、後に図3に関連して述
べられるように、パリティ・シンドローム及び新たなパ
リティと、新たなコマンド(Write Protected(書込み
保護)及びWrite Parity(パリティ書込み))をそれぞ
れ生成するために、排他的論理和ロジック31が提供さ
れる。この好適な実施例では、排他的論理和ロジック3
1はハードウェア回路により実現され、これは図2に示
されるように、バス33によりプロセッサ19及びメモ
リ21に接続されて動作する。排他的論理和ロジック3
1は、完全に或いは部分的にプロセッサ19において実
行されるプログラムにより実現することも可能である。
べられるように、パリティ・シンドローム及び新たなパ
リティと、新たなコマンド(Write Protected(書込み
保護)及びWrite Parity(パリティ書込み))をそれぞ
れ生成するために、排他的論理和ロジック31が提供さ
れる。この好適な実施例では、排他的論理和ロジック3
1はハードウェア回路により実現され、これは図2に示
されるように、バス33によりプロセッサ19及びメモ
リ21に接続されて動作する。排他的論理和ロジック3
1は、完全に或いは部分的にプロセッサ19において実
行されるプログラムにより実現することも可能である。
【0027】しかしながら、プログラムによる実現は記
憶装置のオペレーションに悪影響を及ぼす。なぜなら、
マイクロプロセッサは通常は超高速プロセッサではな
く、一緒に排他的論理和されなければならないデータ・
ブロックは比較的長いため、大きな処理時間を要求する
からである。
憶装置のオペレーションに悪影響を及ぼす。なぜなら、
マイクロプロセッサは通常は超高速プロセッサではな
く、一緒に排他的論理和されなければならないデータ・
ブロックは比較的長いため、大きな処理時間を要求する
からである。
【0028】排他的論理和ロジック31の回路が、図5
に関連して詳細に述べられる。コマンド形式、並びにWr
ite Protected及びWrite Parityコマンドに対応して選
択されるパラメータは、記憶システムにおいて使用され
るアーキテクチャの特定の実施例に依存する。
に関連して詳細に述べられる。コマンド形式、並びにWr
ite Protected及びWrite Parityコマンドに対応して選
択されるパラメータは、記憶システムにおいて使用され
るアーキテクチャの特定の実施例に依存する。
【0029】 この実施例では、パリティが物理ブロッ
ク・アドレスにもとづき、所定数の装置に跨って確立さ
れる。それによりWrite Protected及びWrite Parityコ
マンドの各々は、同一の論理ブロック・アドレス及び転
送長を有する。パリティ・マッピングは、物理ブロック
・アドレスの関数(好適には図7に示されるような定義
関数)として選択される。ホストからWrite Protected
コマンドを受信したターゲット記憶装置は、この関数を
用いて、Write Parityコマンドの送信先である他の記憶
装置を決定する。
ク・アドレスにもとづき、所定数の装置に跨って確立さ
れる。それによりWrite Protected及びWrite Parityコ
マンドの各々は、同一の論理ブロック・アドレス及び転
送長を有する。パリティ・マッピングは、物理ブロック
・アドレスの関数(好適には図7に示されるような定義
関数)として選択される。ホストからWrite Protected
コマンドを受信したターゲット記憶装置は、この関数を
用いて、Write Parityコマンドの送信先である他の記憶
装置を決定する。
【0030】 当業者には理解されるように、Write Pro
tectedコマンド内の所定バイトによりパリティ装置を識
別する(例えば図5に示されるコマンド形式のバイト6
をそのために使用する)ことも、現実的な実施例であ
る。
tectedコマンド内の所定バイトによりパリティ装置を識
別する(例えば図5に示されるコマンド形式のバイト6
をそのために使用する)ことも、現実的な実施例であ
る。
【0031】図5に関連して後述されるように、Write
Protected及びWrite Parityコマンドは、SCSI Write 10
コマンドの場合に、オペレーション・コード・バイト
の"ベンダ特有(vender specific)"ビット7及び6が
0なのに対して、これらのビットがそれぞれ2進数の1
にセットされる以外は、SCSI Writeコマンドと同じ10
バイト形式を有する。
Protected及びWrite Parityコマンドは、SCSI Write 10
コマンドの場合に、オペレーション・コード・バイト
の"ベンダ特有(vender specific)"ビット7及び6が
0なのに対して、これらのビットがそれぞれ2進数の1
にセットされる以外は、SCSI Writeコマンドと同じ10
バイト形式を有する。
【0032】好適な実施例のオペレーション:図3及び
図4を参照すると、SCSIアーキテクチャを使用する
本発明の好適な実施例のデータ・パスが、そのオペレー
ションに関連して述べられる。最初に、ホスト・コンピ
ュータ11において実行されるアレイ管理ソフトウェア
が、アプリケーション・プログラムから受取る仮想ディ
スク・アドレスを、アレイ・メンバ番号及びそのメンバ
上のブロック・アドレスに変換する。次にアレイ管理ソ
フトウェアがWrite Protectedコマンド111及び新た
なデータ113を、n+1個のドライブを含むアレイ内
の選択された、またはターゲット・ドライブ13−iに
送信する。Write Protectedコマンド・オペレーション
は、ターゲット・ドライブからCommand Completeを受信
する以外は、ホスト・コンピュータのアレイとの関り合
いを終了する。
図4を参照すると、SCSIアーキテクチャを使用する
本発明の好適な実施例のデータ・パスが、そのオペレー
ションに関連して述べられる。最初に、ホスト・コンピ
ュータ11において実行されるアレイ管理ソフトウェア
が、アプリケーション・プログラムから受取る仮想ディ
スク・アドレスを、アレイ・メンバ番号及びそのメンバ
上のブロック・アドレスに変換する。次にアレイ管理ソ
フトウェアがWrite Protectedコマンド111及び新た
なデータ113を、n+1個のドライブを含むアレイ内
の選択された、またはターゲット・ドライブ13−iに
送信する。Write Protectedコマンド・オペレーション
は、ターゲット・ドライブからCommand Completeを受信
する以外は、ホスト・コンピュータのアレイとの関り合
いを終了する。
【0033】ターゲット・ドライブ13−iにおいて、
レシーブ・モードのSCSIアダプタ17ーi(参照番
号は図示していない)を介して受信したWrite Protecte
dコマンドが制御プロセッサ19−i内のXプログラム
に影響を与え、受信した新データがメモリ21−i内の
データ・バッファ117に書込まれる。Write Protecte
dコマンドに応答して、Xプログラムは旧データ119
を媒体27−iの作用領域(affected area)からバッ
ファ123に読出す。次にXプログラムは、123内の
旧データ119、及び117内の新たなデータ113を
排他的論理和31−iに転送し、ここでパリティ・シン
ドローム127が、113と119との排他的論理和に
より生成される。パリティ・シンドロームは一時的にバ
ッファ129に記憶される。
レシーブ・モードのSCSIアダプタ17ーi(参照番
号は図示していない)を介して受信したWrite Protecte
dコマンドが制御プロセッサ19−i内のXプログラム
に影響を与え、受信した新データがメモリ21−i内の
データ・バッファ117に書込まれる。Write Protecte
dコマンドに応答して、Xプログラムは旧データ119
を媒体27−iの作用領域(affected area)からバッ
ファ123に読出す。次にXプログラムは、123内の
旧データ119、及び117内の新たなデータ113を
排他的論理和31−iに転送し、ここでパリティ・シン
ドローム127が、113と119との排他的論理和に
より生成される。パリティ・シンドロームは一時的にバ
ッファ129に記憶される。
【0034】新たなデータは次に媒体27−iの作用領
域に書込まれる。Xプログラムは次にSCSIアダプタ
17−iをレシーブ・モードからイニシエート・モード
に切り換え、ドライブ13−iがWrite Parityコマンド
131を識別パリティ・ドライブ13−pに向けて発給
する。このコマンド131は、ホスト11から先に受信
したWrite Protectedコマンドと同じ論理ブロック・ア
ドレス及びカウントを含むことになる。ドライブ13−
iはまた、パリティ・シンドローム情報127をパリテ
ィ・ドライブ13−pに送信する。
域に書込まれる。Xプログラムは次にSCSIアダプタ
17−iをレシーブ・モードからイニシエート・モード
に切り換え、ドライブ13−iがWrite Parityコマンド
131を識別パリティ・ドライブ13−pに向けて発給
する。このコマンド131は、ホスト11から先に受信
したWrite Protectedコマンドと同じ論理ブロック・ア
ドレス及びカウントを含むことになる。ドライブ13−
iはまた、パリティ・シンドローム情報127をパリテ
ィ・ドライブ13−pに送信する。
【0035】Write Parityコマンド131に応答して、
記憶装置13−p内のYプログラムは、旧パリティ21
9を媒体27−pの作用領域からバッファの223に読
出す。次にYプログラムは、223内の旧パリティ21
9、及び217内のパリティ・シンドローム127を排
他的論理和31−pに転送し、ここで新たなパリティ情
報227が127と219との排他的論理和により生成
される。新たなパリティ情報227は一時的にバッファ
229に記憶される。
記憶装置13−p内のYプログラムは、旧パリティ21
9を媒体27−pの作用領域からバッファの223に読
出す。次にYプログラムは、223内の旧パリティ21
9、及び217内のパリティ・シンドローム127を排
他的論理和31−pに転送し、ここで新たなパリティ情
報227が127と219との排他的論理和により生成
される。新たなパリティ情報227は一時的にバッファ
229に記憶される。
【0036】新たなパリティ情報227は次に媒体27
−pの作用領域に、旧パリティ219の代わりに書込ま
れる。この新たなパリティは旧パリティからの情報を含
むので、他のドライブのいずれかが故障した場合、その
ドライブ上の対応ブロック内の他のデータを再生するた
めに、通常のように使用される。
−pの作用領域に、旧パリティ219の代わりに書込ま
れる。この新たなパリティは旧パリティからの情報を含
むので、他のドライブのいずれかが故障した場合、その
ドライブ上の対応ブロック内の他のデータを再生するた
めに、通常のように使用される。
【0037】図3及び図4から明らかなように、2つの
SCSIコマンド及び2つの情報だけがSCSIバスを
介して転送される。他の全てのオペレーションは作用さ
れる記憶装置ドライブに対して内部的に実行される。図
5は標準のWrite 10コマンドの場合のSCSIコマンド
形式を示す。0乃至9の10バイトが10行内に示さ
れ、各バイトの8ビットが7乃至0の列に示される。こ
こで列7が最上位ビットに相当する。
SCSIコマンド及び2つの情報だけがSCSIバスを
介して転送される。他の全てのオペレーションは作用さ
れる記憶装置ドライブに対して内部的に実行される。図
5は標準のWrite 10コマンドの場合のSCSIコマンド
形式を示す。0乃至9の10バイトが10行内に示さ
れ、各バイトの8ビットが7乃至0の列に示される。こ
こで列7が最上位ビットに相当する。
【0038】バイト0はオペコード(Op Code)であ
り、Write 10コマンドでは、これは16進数の2Aすな
わち2進数の00101010である。バイト1は論理ユニット
・アドレスを含み、他の制御フィールドは本発明には関
連しない。バイト2乃至バイト5は、32ビットの論理
ブロック・アドレスに相当する。バイト6は予約済みで
あり、バイト7及びバイト8は転送長である。バイト9
は追加の制御フィールドであり、本発明には関連しな
い。
り、Write 10コマンドでは、これは16進数の2Aすな
わち2進数の00101010である。バイト1は論理ユニット
・アドレスを含み、他の制御フィールドは本発明には関
連しない。バイト2乃至バイト5は、32ビットの論理
ブロック・アドレスに相当する。バイト6は予約済みで
あり、バイト7及びバイト8は転送長である。バイト9
は追加の制御フィールドであり、本発明には関連しな
い。
【0039】Write Protectedコマンド及びWrite Parit
yコマンドは、SCSI Write 10コマンドの場合に、オペレ
ーション・コード・バイトの"ベンダ特有"ビット7及び
6が2進数の0であるのに対して、これらのビットがそ
れぞれ1にセットされる以外は、SCSI Write 10コマン
ドと同じ10バイト形式を有する。すなわち、オペコー
ドはWrite ProtectedコマンドとWrite Parityコマンド
の場合で、それぞれ16進数のAAすなわち2進数の10
101010、及び16進数の6Aすなわち2進数の01101010
となる。
yコマンドは、SCSI Write 10コマンドの場合に、オペレ
ーション・コード・バイトの"ベンダ特有"ビット7及び
6が2進数の0であるのに対して、これらのビットがそ
れぞれ1にセットされる以外は、SCSI Write 10コマン
ドと同じ10バイト形式を有する。すなわち、オペコー
ドはWrite ProtectedコマンドとWrite Parityコマンド
の場合で、それぞれ16進数のAAすなわち2進数の10
101010、及び16進数の6Aすなわち2進数の01101010
となる。
【0040】図6は排他的論理和ロジック31の1実施
例の詳細なブロック図を示す。排他的論理和ロジック3
1の中心部では、3つのレジスタ間で、複数の排他的論
理和回路311が並列アレイとして接続される。排他的
論理和回路の数は、好適には、図2に示されるバス33
のデータ・パスの幅と同じに選択される。
例の詳細なブロック図を示す。排他的論理和ロジック3
1の中心部では、3つのレジスタ間で、複数の排他的論
理和回路311が並列アレイとして接続される。排他的
論理和回路の数は、好適には、図2に示されるバス33
のデータ・パスの幅と同じに選択される。
【0041】同様に、レジスタ313、315及び31
7はバス33と同じ幅を有する。各レジスタにはそれぞ
れアドレス・レジスタ323、325及び327が関連
付けられる。各アドレス・レジスタは、オペランド或い
は結果が記憶されるメモリ21内のバッファの開始アド
レスを記憶する。例えばレジスタ323は、図3に示さ
れる新たなデータを含むデータ・バッファ117の開始
アドレスを指し示す。同様にレジスタ325は、旧デー
タが含まれるバッファ123の開始アドレスを記憶し、
レジスタ327はパリティ・シンドロームが記憶される
アドレスを記憶する。
7はバス33と同じ幅を有する。各レジスタにはそれぞ
れアドレス・レジスタ323、325及び327が関連
付けられる。各アドレス・レジスタは、オペランド或い
は結果が記憶されるメモリ21内のバッファの開始アド
レスを記憶する。例えばレジスタ323は、図3に示さ
れる新たなデータを含むデータ・バッファ117の開始
アドレスを指し示す。同様にレジスタ325は、旧デー
タが含まれるバッファ123の開始アドレスを記憶し、
レジスタ327はパリティ・シンドロームが記憶される
アドレスを記憶する。
【0042】排他的論理和ロジック31は制御ブロック
331を含み、これはカウンタ333に接続される。こ
れらは一緒になって、直接メモリ・アクセス(DMA)
・モードにおける排他的論理和ロジック31のオペレー
ションを制御する。プログラムX及びYのサブプログラ
ムがマイクロプロセッサ19内で動作し、制御ブロック
331に対して、続く長さカウントすなわち書込まれる
新たなデータのバイト数をレジスタ333にロードする
ように指令することにより、DMAオペレーションを開
始する。その後、制御ブロック331の制御の下で、開
始アドレスがアドレス・レジスタ323、325及び3
27にロードされる。
331を含み、これはカウンタ333に接続される。こ
れらは一緒になって、直接メモリ・アクセス(DMA)
・モードにおける排他的論理和ロジック31のオペレー
ションを制御する。プログラムX及びYのサブプログラ
ムがマイクロプロセッサ19内で動作し、制御ブロック
331に対して、続く長さカウントすなわち書込まれる
新たなデータのバイト数をレジスタ333にロードする
ように指令することにより、DMAオペレーションを開
始する。その後、制御ブロック331の制御の下で、開
始アドレスがアドレス・レジスタ323、325及び3
27にロードされる。
【0043】 マイクロプロセッサ19が開始コマンド
を制御ブロック331に送信すると、制御ブロックは識
別アドレスからレジスタ313及び315へのロードを
開始し、それらを排他的論理和し、結果をレジスタ31
7から、アドレス・レジスタ327により指定されるメ
モリ21のアドレスに再度返送して記憶する。制御ブロ
ック331は次にカウンタ333及びアドレス・レジス
タ323、325及び327の内容をステップし、カウ
ンタ333の内容が0に減少するまで、このサイクルを
繰返す。この時点で、例えば旧データと新たなデータと
がドライブ13−iにおいて完全に排他的論理和され、
パリティ・シンドロームの生成オペレーションが完了す
る。
を制御ブロック331に送信すると、制御ブロックは識
別アドレスからレジスタ313及び315へのロードを
開始し、それらを排他的論理和し、結果をレジスタ31
7から、アドレス・レジスタ327により指定されるメ
モリ21のアドレスに再度返送して記憶する。制御ブロ
ック331は次にカウンタ333及びアドレス・レジス
タ323、325及び327の内容をステップし、カウ
ンタ333の内容が0に減少するまで、このサイクルを
繰返す。この時点で、例えば旧データと新たなデータと
がドライブ13−iにおいて完全に排他的論理和され、
パリティ・シンドロームの生成オペレーションが完了す
る。
【0044】同じシーケンスがパリティ・ドライブ13
−pにおいても実行され、新たなパリティがパリティ・
シンドローム及び旧パリティから生成される。
−pにおいても実行され、新たなパリティがパリティ・
シンドローム及び旧パリティから生成される。
【0045】図7は、RAIDレベル5によるメンバ記
憶装置に渡るデータ分散のマッピング例を示す。仮想デ
ィスク411は、例えばブロック0乃至ブロック11を
有し、アレイ管理ソフトウェア413により物理記憶装
置0乃至4に接続される。装置415(ディスク0とラ
ベル付けされる)は、ブロック0、4、8及び12を記
憶する。装置417(ディスク1とラベル付けされる)
は、ブロック1、5、9、並びにブロック12、13、
14及び15に対応するパリティを記憶する。装置41
9(ディスク2とラベル付けされる)は、ブロック2、
6、13、並びにブロック8、9、10及び11に対応
するパリティを記憶する。装置421(ディスク3とラ
ベル付けされる)は、ブロック3、10、14、並びに
ブロック4、5、6及び7に対応するパリティを記憶す
る。装置423(ディスク4とラベル付けされる)は、
ブロック7、11、15、並びにブロック0、1、2及
び3に対応するパリティを記憶する。
憶装置に渡るデータ分散のマッピング例を示す。仮想デ
ィスク411は、例えばブロック0乃至ブロック11を
有し、アレイ管理ソフトウェア413により物理記憶装
置0乃至4に接続される。装置415(ディスク0とラ
ベル付けされる)は、ブロック0、4、8及び12を記
憶する。装置417(ディスク1とラベル付けされる)
は、ブロック1、5、9、並びにブロック12、13、
14及び15に対応するパリティを記憶する。装置41
9(ディスク2とラベル付けされる)は、ブロック2、
6、13、並びにブロック8、9、10及び11に対応
するパリティを記憶する。装置421(ディスク3とラ
ベル付けされる)は、ブロック3、10、14、並びに
ブロック4、5、6及び7に対応するパリティを記憶す
る。装置423(ディスク4とラベル付けされる)は、
ブロック7、11、15、並びにブロック0、1、2及
び3に対応するパリティを記憶する。
【0046】好適な実施例により本発明を説明してきた
が、コンピュータ周辺装置の設計に携わる当業者には、
本発明の精神及び範囲から逸脱することなしに、構造及
びプログラミングの様々な変更が可能であることが理解
されよう。
が、コンピュータ周辺装置の設計に携わる当業者には、
本発明の精神及び範囲から逸脱することなしに、構造及
びプログラミングの様々な変更が可能であることが理解
されよう。
【0047】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0048】(1)コンピュータと共に使用されるタイ
プの記憶装置であって、前記記憶装置をコンピュータ及
び少なくとも1つの他の記憶装置に接続するインタフェ
ースと、前記インタフェースに接続されて、コマンドを
受信する制御手段と、前記制御手段に接続され、前記コ
マンドに応答してデータ及びエラー訂正情報を記憶する
ように前記制御手段により制御される記憶媒体と、前記
制御手段に接続され、前記インタフェースから受信され
た情報と、前記記憶媒体から受信された情報とから、前
記エラー訂正情報として有用な結果を計算する計算手段
と、を含む記憶装置。 (2)前記記憶媒体がディスク媒体を含む、前記(1)
記載の記憶装置。 (3)前記制御手段がマイクロプロセッサを含む、前記
(1)記載の記憶装置。 (4)前記インタフェースがSCSIインタフェースを
含む、前記(1)記載の記憶装置。 (5)前記計算手段が排他的論理和回路を含む、前記
(1)記載の記憶装置。 (6)前記コマンドが、前記制御手段に対して、前記イ
ンタフェースから受信した前記情報を前記媒体上に記憶
するように指令する書込み保護コマンドである、前記
(1)記載の記憶装置。 (7)前記書込み保護コマンドがSCSIコマンドの要
件に従う、前記(4)記載の記憶装置。 (8)前記書込み保護コマンドが11101010のオペコード
・ビット・パターンを有する、前記(7)記載の記憶装
置。 (9)前記コマンドが、前記制御手段に対して、前記エ
ラー訂正情報を前記媒体上に記憶するように指令するパ
リティ書込みコマンドである、前記(1)記載の記憶装
置。 (10)前記パリティ書込みコマンドがSCSIコマン
ドの要件に従う、前記(9)記載の記憶装置。 (11)前記パリティ書込みコマンドが01101100のオペ
コード・ビット・パターンを有する、前記(10)記載
の記憶装置。 (12)前記インタフェースから受信される前記情報が
前記媒体上に書込まれる新たなデータであり、前記結果
が旧データの影響が除去されて、前記新たなデータの影
響が追加されるエラー訂正情報である、前記(1)記載
の記憶装置。 (13)前記インタフェースから受信される情報が、旧
データの影響が除去されて、前記新たなデータの影響が
追加される前記エラー訂正情報であり、前記計算手段が
前記制御手段により制御されて、前記インタフェースか
ら受信される前記エラー訂正情報と、前記媒体上に記憶
される旧エラー訂正情報とから結果を計算し、前記旧デ
ータの影響が除去され、前記新たなデータの影響が追加
され、別の記憶装置上に記憶される他のデータの影響が
追加された新たなエラー訂正情報を計算し、前記新たな
エラー訂正情報が、前記新たなデータ内に存在するかも
しれない将来のエラーの訂正、或いは前記他のデータ内
に存在するかもしれないエラーの訂正に有用である、前
記(1)記載の記憶装置。 (14)記憶装置のアレイ上にデータを記憶する方法で
あって、第1のコマンド及び新たなデータを第1の記憶
装置に送信するステップと、前記第1の記憶装置内の第
1の媒体から旧データを読出すステップと、前記新たな
データと前記旧データとの排他的論理和を計算して、前
記旧データの影響の除去に関する情報と、前記新たなデ
ータの影響に関する情報とを含む第1のエラー訂正情報
を生成するステップと、前記第1の媒体上に前記新たな
データを記憶するステップと、第2のコマンド及び前記
第1のエラー訂正情報を、前記第1の記憶装置から第2
の記憶装置に送信するステップと、旧エラー訂正情報を
前記第2の記憶装置内の第2の媒体から読出すステップ
と、前記第1のエラー訂正情報と前記旧エラー訂正情報
との排他的論理和を計算して、前記旧データの影響の除
去に関する情報と、前記新たなデータの影響に関する情
報と、他の記憶装置上に記憶される他のデータの影響を
含む新たなエラー訂正情報を生成するステップと、前記
新たなエラー訂正情報を前記第2の媒体上に記憶するス
テップと、を含む方法。
プの記憶装置であって、前記記憶装置をコンピュータ及
び少なくとも1つの他の記憶装置に接続するインタフェ
ースと、前記インタフェースに接続されて、コマンドを
受信する制御手段と、前記制御手段に接続され、前記コ
マンドに応答してデータ及びエラー訂正情報を記憶する
ように前記制御手段により制御される記憶媒体と、前記
制御手段に接続され、前記インタフェースから受信され
た情報と、前記記憶媒体から受信された情報とから、前
記エラー訂正情報として有用な結果を計算する計算手段
と、を含む記憶装置。 (2)前記記憶媒体がディスク媒体を含む、前記(1)
記載の記憶装置。 (3)前記制御手段がマイクロプロセッサを含む、前記
(1)記載の記憶装置。 (4)前記インタフェースがSCSIインタフェースを
含む、前記(1)記載の記憶装置。 (5)前記計算手段が排他的論理和回路を含む、前記
(1)記載の記憶装置。 (6)前記コマンドが、前記制御手段に対して、前記イ
ンタフェースから受信した前記情報を前記媒体上に記憶
するように指令する書込み保護コマンドである、前記
(1)記載の記憶装置。 (7)前記書込み保護コマンドがSCSIコマンドの要
件に従う、前記(4)記載の記憶装置。 (8)前記書込み保護コマンドが11101010のオペコード
・ビット・パターンを有する、前記(7)記載の記憶装
置。 (9)前記コマンドが、前記制御手段に対して、前記エ
ラー訂正情報を前記媒体上に記憶するように指令するパ
リティ書込みコマンドである、前記(1)記載の記憶装
置。 (10)前記パリティ書込みコマンドがSCSIコマン
ドの要件に従う、前記(9)記載の記憶装置。 (11)前記パリティ書込みコマンドが01101100のオペ
コード・ビット・パターンを有する、前記(10)記載
の記憶装置。 (12)前記インタフェースから受信される前記情報が
前記媒体上に書込まれる新たなデータであり、前記結果
が旧データの影響が除去されて、前記新たなデータの影
響が追加されるエラー訂正情報である、前記(1)記載
の記憶装置。 (13)前記インタフェースから受信される情報が、旧
データの影響が除去されて、前記新たなデータの影響が
追加される前記エラー訂正情報であり、前記計算手段が
前記制御手段により制御されて、前記インタフェースか
ら受信される前記エラー訂正情報と、前記媒体上に記憶
される旧エラー訂正情報とから結果を計算し、前記旧デ
ータの影響が除去され、前記新たなデータの影響が追加
され、別の記憶装置上に記憶される他のデータの影響が
追加された新たなエラー訂正情報を計算し、前記新たな
エラー訂正情報が、前記新たなデータ内に存在するかも
しれない将来のエラーの訂正、或いは前記他のデータ内
に存在するかもしれないエラーの訂正に有用である、前
記(1)記載の記憶装置。 (14)記憶装置のアレイ上にデータを記憶する方法で
あって、第1のコマンド及び新たなデータを第1の記憶
装置に送信するステップと、前記第1の記憶装置内の第
1の媒体から旧データを読出すステップと、前記新たな
データと前記旧データとの排他的論理和を計算して、前
記旧データの影響の除去に関する情報と、前記新たなデ
ータの影響に関する情報とを含む第1のエラー訂正情報
を生成するステップと、前記第1の媒体上に前記新たな
データを記憶するステップと、第2のコマンド及び前記
第1のエラー訂正情報を、前記第1の記憶装置から第2
の記憶装置に送信するステップと、旧エラー訂正情報を
前記第2の記憶装置内の第2の媒体から読出すステップ
と、前記第1のエラー訂正情報と前記旧エラー訂正情報
との排他的論理和を計算して、前記旧データの影響の除
去に関する情報と、前記新たなデータの影響に関する情
報と、他の記憶装置上に記憶される他のデータの影響を
含む新たなエラー訂正情報を生成するステップと、前記
新たなエラー訂正情報を前記第2の媒体上に記憶するス
テップと、を含む方法。
【0049】
【発明の効果】本発明の実施により、別のアレイ制御装
置及びその電源及びパッケージングのコストが削除さ
れ、同時にホスト・コンピュータをパリティの生成及び
余計なI/Oオペレーションから解放することができ
る。本発明は少なくとも部分的に、各ディスク・ドライ
ブ内の既存のディスク装置プロセッサにおいて実行され
るマイクロコードにより実現することができる。各ディ
スク・ドライブに最小の排他的論理和ロジックを追加す
ることにより、ディスク・ドライブ内の既存の電源に多
大な負荷を追加することなしに、スピード的な利点を提
供することができる。
置及びその電源及びパッケージングのコストが削除さ
れ、同時にホスト・コンピュータをパリティの生成及び
余計なI/Oオペレーションから解放することができ
る。本発明は少なくとも部分的に、各ディスク・ドライ
ブ内の既存のディスク装置プロセッサにおいて実行され
るマイクロコードにより実現することができる。各ディ
スク・ドライブに最小の排他的論理和ロジックを追加す
ることにより、ディスク・ドライブ内の既存の電源に多
大な負荷を追加することなしに、スピード的な利点を提
供することができる。
【図1】RAIDレベル5の下での従来方法のデータ・
パスのブロック図である。
パスのブロック図である。
【図2】本発明によるデータ記憶装置のブロック図であ
る。
る。
【図3】本発明のデータ・パスのブロック図である。
【図4】本発明のデータ・パスのブロック図である。
【図5】SCSI書込みコマンドの形式を示す図であ
る。
る。
【図6】本発明によるパリティ生成手段のブロック図で
ある。
ある。
【図7】パリティ装置を選択するための可能な機能図で
ある。
ある。
0、1、2、3 データ・ドライブ 4 パリティ・ドライブ 10 アプリケーション・プログラム 11 ホスト・コンピュータ 13 記憶装置 15 SCSIバス・アダプタ 17 SCSIアダプタ 19 プロセッサ 20、413 アレイ管理ソフトウェア 21 メモリ 23 ドライバ 25 アクチュエータ 29 読出し/書込みチャネル 30、119 旧データ 31 排他的論理和ロジック 33 バス 40、219 旧パリティ 50 XORデータ 60、113 新たなデータ 70、227 新たなパリティ情報 111 Write Protectedコマンド 117 データ・バッファ 123、129、223、229 バッファ 127 パリティ・シンドローム 131 Write Parityコマンド 311 排他的論理和回路 313、315、317 レジスタ 323、325、327 アドレス・レジスタ 331 制御ブロック 333 カウンタ 411 仮想ディスク 415、417、419、421、423 装置
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平5−158621(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06
Claims (9)
- 【請求項1】ホスト・コンピュータに接続される記憶装
置アレイを構成するために使用される1つの記憶装置で
あって、 第1の動作モードでは前記記憶装置をホスト・コンピュ
ータに接続し、第2の動作モードでは前記記憶装置をパ
リティ更新動作を行なうべきアレイ内の他の記憶装置に
接続するためのインタフェースと、 前記インタフェースに接続され、書込み指示の第1のコ
マンド及び新データを前記ホスト・コンピュータから受
信し、制御プログラムに従って動作する制御手段と、 前記制御手段の制御の下に前記第1コマンドに応答して
前記新データを記憶するためのメモリ手段と、 前記制御手段の制御の下に旧データを読取ったり、前記
新データを記憶したりするために使用される記憶媒体
と、 前記メモリ手段及び前記記憶媒体のそれぞれからの前記
新データ及び前記旧データの論理的組合せ結果であって
エラー訂正情報として有用な結果を算出するための計算
手段と、 前記制御手段の制御の下に、前記第1のコマンドに基づ
いて生成されたパリティ更新指示の第2のコマンド及び
前記計算結果を前記他の記憶装置へ向けて発給するため
の前記インターフェースを含む手段と、 を含み、アレイ制御装置の介入なしにエラー訂正情報の
算出及びパリティ更新指示のコマンドの生成を行なって
アレイ内の他の記憶装置へ転送できる能力を有する記憶
装置。 - 【請求項2】前記制御手段がマイクロプロセッサから成
る請求項1記載の記憶装置。 - 【請求項3】前記インタフェースがSCSIインタフェ
ースから成り、前記第1及び第2の各コマンドがSCS
Iコマンドの要件に従う請求項1記載の記憶装置。 - 【請求項4】前記計算手段が排他的論理和回路から成る
請求項1記載の記憶装置。 - 【請求項5】前記第1コマンドが、前記制御手段に対し
て前記インタフェースから受信した前記新データを前記
記憶媒体上に記憶するように命令する書込み保護コマン
ドである請求項1記載の記憶装置。 - 【請求項6】前記第2コマンドが、前記他の記憶装置に
前記エラー訂正情報を記憶させるためのパリティ書込み
コマンドである請求項1記載の記憶装置。 - 【請求項7】前記計算結果は、旧データの影響の除去及
び新データの影響の追加に関する情報を含むエラー訂正
情報である請求項1記載の記憶装置。 - 【請求項8】新データを選択的に書込むための複数のタ
ーゲット記憶装置及びパリティ情報を更新するためのパ
リティ記憶装置を含みホスト・コンピュータと共に使用
するための記憶装置アレイ・システムであって、 A)前記各ターゲット記憶装置は、 該ターゲット記憶装置を前記ホスト・コンピュータ及び
前記パリティ記憶装置へ選択的に接続するためのインタ
フェースであって、該ホスト・コンピュータから書込み
指示の第1コマンド及び新データを受信する第1のイン
タフェースと、 前記第1コマンドに応答して旧データを読取ったり、前
記新データを記憶したりするために使用される第1の記
憶媒体と、 前記第1のインタフェースに接続され前記第1コマンド
の制御の下に前記新データを記憶するための第1のメモ
リ手段と、 前記第1のメモリ手段及び前記第1の記憶媒体に接続さ
れ、前記新データ及び旧データに基づいて旧データの影
響の除去及び新データの影響の追加に関する情報を含む
エラー訂正情報を算出するための第1の排他的論理和計
算手段と、 前記第1のコマンドに基づいて生成されたパリティ更新
指示の第2のコマンド及び前記計算結果を前記パリティ
記憶装置へ向けて発給するための前記インターフェース
を含む手段と、 から成り、さらに、 B)前記パリティ記憶装置は、 前記第2コマンド及び前記エラー訂正情報を受信するた
めの第2のインタフェースと、 前記第2のインタフェースに接続され前記第2コマンド
の制御の下に前記エラー訂正情報を記憶するための第2
のメモリ手段と、 旧パリティ情報を読取ったり、新パリティ情報を記憶し
たりするために使用される第2の記憶媒体と、 前記第2のメモリ手段及び前記第2の記憶媒体に接続さ
れ、前記エラー訂正情報及び前記旧パリティ情報に基づ
いて新パリティ情報を計算するための第2の排他的論理
和計算手段と、 前記新パリティ情報を前記第2の記憶媒体上に記憶する
ための手段と、 から成り、 アレイ制御装置の介入なしにターゲット記憶装置内でエ
ラー訂正情報の算出及びパリティ更新指示のコマンドの
生成を行なってパリティ記憶装置へ転送することを特徴
とするシステム。 - 【請求項9】少なくとも第1及び第2の記憶装置を含む
記憶装置アレイ並びにコンピュータから成るシステムに
データを記憶するための方法であって、 書込み指示の第1のコマンド及び新データを前記コンピ
ュータから前記第1の記憶装置に送信して該記憶装置内
に保持するためのステップと、 前記第1の記憶装置内において、第1の記憶媒体から旧
データを読出して保持するためのステップと、 前記第1の記憶装置内において、前記新データと前記旧
データとの排他的論理和を計算して、前記旧データの影
響の除去及び前記新データの影響の付加に関する情報を
含む第1のエラー訂正情報を生成するためのステップ
と、 前記第1の記憶媒体上に前記新データを記憶するステッ
プと、 前記第1のコマンドに基づいて生成されたパリティ更新
指示の第2のコマンド及び前記第1のエラー訂正情報を
前記第1の記憶装置から前記第2の記憶装置へ向けて送
信して前記第2の記憶装置内に保持するためのステップ
と、 前記第2の記憶装置内において、旧エラー訂正情報を第
2の記憶媒体から読出して保持するためのステップと、 前記第2の記憶装置内において、前記第1のエラー訂正
情報と前記旧エラー訂正情報との排他的論理和を計算し
て、前記旧データの影響の除去、前記新データの影響の
付加及び前記アレイ内の他の記憶装置上に記憶されてい
る他のデータの影響の付加に関する情報を含む新エラー
訂正情報を生成するためのステップと、 前記新エラー訂正情報を前記第2の記憶媒体上に記憶す
るためのステップと、 より成り、アレイ制御装置の介入なしに第1記憶装置内
でエラー訂正情報の算出及びパリティ更新指示のコマン
ドの生成を行なって第2記憶装置へ転送することを特徴
とする方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US178955 | 1988-04-07 | ||
| US17895594A | 1994-01-07 | 1994-01-07 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH07219719A JPH07219719A (ja) | 1995-08-18 |
| JP3072700B2 true JP3072700B2 (ja) | 2000-07-31 |
Family
ID=22654605
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6286911A Expired - Lifetime JP3072700B2 (ja) | 1994-01-07 | 1994-11-21 | 記憶装置及び方法 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US5574736A (ja) |
| EP (1) | EP0662660A1 (ja) |
| JP (1) | JP3072700B2 (ja) |
| KR (1) | KR0162121B1 (ja) |
| CA (1) | CA2134016A1 (ja) |
| MY (1) | MY113983A (ja) |
| SG (1) | SG42319A1 (ja) |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5894564A (en) * | 1995-06-07 | 1999-04-13 | International Business Machines Corporation | System for identifying memory segment bounded by previously accessed memory locations within data block and transferring thereof only when the segment has been changed |
| US6154810A (en) * | 1995-08-28 | 2000-11-28 | Apple Computer, Inc. | System and method for utilizing the memory of a portable computer as a disk cache while in SCSI target mode |
| US6108812A (en) * | 1996-06-20 | 2000-08-22 | Lsi Logic Corporation | Target device XOR engine |
| US5889934A (en) * | 1997-02-24 | 1999-03-30 | Data General Corporation | Data validation system for a group of data storage disks |
| US5935260A (en) * | 1997-05-02 | 1999-08-10 | Emc Corporation | Method and apparatus for providing system level errors in a large disk array storage system |
| US6112255A (en) * | 1997-11-13 | 2000-08-29 | International Business Machines Corporation | Method and means for managing disk drive level logic and buffer modified access paths for enhanced raid array data rebuild and write update operations |
| CN1291127C (zh) | 2002-03-01 | 2006-12-20 | 盖慈有限公司 | 传动装置 |
| JP2004199319A (ja) * | 2002-12-18 | 2004-07-15 | Konica Minolta Holdings Inc | 情報処理装置 |
| US7380198B2 (en) * | 2003-06-11 | 2008-05-27 | International Business Machines Corporation | System and method for detecting write errors in a storage device |
| GB2402803B (en) * | 2003-06-11 | 2006-06-28 | Ibm | Arrangement and method for detection of write errors in a storage system |
| US10585749B2 (en) * | 2017-08-10 | 2020-03-10 | Samsung Electronics Co., Ltd. | System and method for distributed erasure coding |
| KR20190085642A (ko) * | 2018-01-11 | 2019-07-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4870643A (en) * | 1987-11-06 | 1989-09-26 | Micropolis Corporation | Parallel drive array storage system |
| US4989206A (en) * | 1988-06-28 | 1991-01-29 | Storage Technology Corporation | Disk drive memory |
| JP2603757B2 (ja) * | 1990-11-30 | 1997-04-23 | 富士通株式会社 | アレ−ディスク装置の制御方法 |
| US5191584A (en) * | 1991-02-20 | 1993-03-02 | Micropolis Corporation | Mass storage array with efficient parity calculation |
| US5317713A (en) * | 1991-09-19 | 1994-05-31 | Quantum Corporation | Micro-winchester disk drive having on-board segmented cache memory |
| US5379417A (en) * | 1991-11-25 | 1995-01-03 | Tandem Computers Incorporated | System and method for ensuring write data integrity in a redundant array data storage system |
| JPH05158621A (ja) * | 1991-12-04 | 1993-06-25 | Hitachi Ltd | ディスク装置およびディスクアレイ装置 |
| US5398253A (en) * | 1992-03-11 | 1995-03-14 | Emc Corporation | Storage unit generation of redundancy information in a redundant storage array system |
| US5493574A (en) * | 1992-09-24 | 1996-02-20 | Zilog, Inc. | Power efficient RAM disk and a method of emulating a rotating memory disk |
| DE4309148A1 (de) * | 1993-03-22 | 1994-09-29 | Siemens Nixdorf Inf Syst | Disk-Array mit Lastverteilung |
| US5367669A (en) * | 1993-03-23 | 1994-11-22 | Eclipse Technologies, Inc. | Fault tolerant hard disk array controller |
-
1994
- 1994-10-21 CA CA002134016A patent/CA2134016A1/en not_active Abandoned
- 1994-11-21 JP JP6286911A patent/JP3072700B2/ja not_active Expired - Lifetime
- 1994-12-05 MY MYPI94003234A patent/MY113983A/en unknown
- 1994-12-06 EP EP94480163A patent/EP0662660A1/en not_active Withdrawn
- 1994-12-06 SG SG1996000409A patent/SG42319A1/en unknown
- 1994-12-19 KR KR1019940034897A patent/KR0162121B1/ko not_active Expired - Fee Related
-
1995
- 1995-11-21 US US08/561,225 patent/US5574736A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH07219719A (ja) | 1995-08-18 |
| KR950024098A (ko) | 1995-08-21 |
| KR0162121B1 (ko) | 1999-01-15 |
| MY113983A (en) | 2002-07-31 |
| EP0662660A1 (en) | 1995-07-12 |
| SG42319A1 (en) | 1997-08-15 |
| US5574736A (en) | 1996-11-12 |
| CA2134016A1 (en) | 1995-07-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3129732B2 (ja) | コピーバックキャッシュを有する記憶装置アレイ | |
| EP0572564B1 (en) | Parity calculation in an efficient array of mass storage devices | |
| CN101047010B (zh) | 用于最大化raid系统中受保护数据量的方法和系统 | |
| US6981171B2 (en) | Data storage array employing block verification information to invoke initialization procedures | |
| US4092732A (en) | System for recovering data stored in failed memory unit | |
| US5720027A (en) | Redundant disc computer having targeted data broadcast | |
| US6061750A (en) | Failover system for a DASD storage controller reconfiguring a first processor, a bridge, a second host adaptor, and a second device adaptor upon a second processor failure | |
| US6505281B1 (en) | Hard disk drives employing high speed distribution bus | |
| US5572660A (en) | System and method for selective write-back caching within a disk array subsystem | |
| US5758054A (en) | Non-volatile memory storage of write operation identifier in data storage device | |
| JP3164499B2 (ja) | ディスクアレイにおけるパリティデータの無矛盾性保持方法 | |
| US5579474A (en) | Disk array system and its control method | |
| JP3181398B2 (ja) | アレイ型記録装置 | |
| JP3561002B2 (ja) | ディスク装置 | |
| JPH07134635A (ja) | ディスクアレイ装置 | |
| JP3072700B2 (ja) | 記憶装置及び方法 | |
| JPH08161124A (ja) | 計算機システム | |
| JP3661205B2 (ja) | ディスクアレイシステムおよびディスクアレイシステムのパリティデータの生成方法 | |
| JP3247075B2 (ja) | パリティブロックの生成装置 | |
| US7809899B2 (en) | System for integrity protection for standard 2n-bit multiple sized memory devices | |
| US6901551B1 (en) | Method and apparatus for protection of data utilizing CRC | |
| JP2857288B2 (ja) | ディスクアレイ装置 | |
| CN1124376A (zh) | 改进的数据存储设备及操作方法 | |
| EP0687971A1 (en) | Disk data storage device | |
| KR100423812B1 (ko) | 디스크 캐쉬메모리 제어기 및 패리티 연산장치를 구비한알에이아이디 제어기 및 패리티 연산방법 |