JP2000514941A - バスから収集されたデータに対するパリティ発生フライバルxor - Google Patents
バスから収集されたデータに対するパリティ発生フライバルxorInfo
- Publication number
- JP2000514941A JP2000514941A JP10537872A JP53787298A JP2000514941A JP 2000514941 A JP2000514941 A JP 2000514941A JP 10537872 A JP10537872 A JP 10537872A JP 53787298 A JP53787298 A JP 53787298A JP 2000514941 A JP2000514941 A JP 2000514941A
- Authority
- JP
- Japan
- Prior art keywords
- xor
- memory
- bus
- data
- buffer
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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
- G06—COMPUTING; CALCULATING OR 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)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Image Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
- Television Signal Processing For Recording (AREA)
- Catching Or Destruction (AREA)
- Other Investigation Or Analysis Of Materials By Electrical Means (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
この発明は、実質的な演算資源を消耗することなく、XOR動作を実行するための方法および装置を提供する。特定化されたプロセッサーは、1組のディスクドライブと同じバスに結合され、その特定化されたプロセッサーは、ディスクドライブへのデータ転送およびそこからのデータ転送を検証し、そして、個別の転送を要求することなく、ディスクドライブへ及びそこから転送されるデータに対してXOR動作を行う。特定化されたプロセッサーは、XOR動作のために使用されるXORアキュームレータを維持する。そのXORアキュームレータはXOR動作の結果を記録し、かつ、プロセッサーのコマンドを読み出す。そのXORアキュームレータは、各RAIDストライプのために、選択された組のRAIDストライプのために1組のアキュームレータレジスタを含む。メモリ(アドレス可能な内部メモリ)は、1組のアキュームレータレジスタを各々選択されたRAIDストライプに関係付ける。
Description
【発明の詳細な説明】
フライバイXOR
発明の背景
1.技術分野
この発明は、格納システムに関する。
2.関連した技術の説明
公知の一つの格納システムとしては、データが多数のディスクドライブを横切
て分配され、これらのディスクドライブの一つが、もしくはその格納ブロックの
一つまたは複数がデータを消失したときに備え、修復可能となるように格納され
る、“RAID”が公知である。後者の修復用としてデータを格納するためには
、パリティ情報からデータを修復できるようにRAIDシステムはパリティ情報
を伴ってデータを記録する。例えば一つのタイプのRAIDシステムでは、“ス
トライプ”として公知のユニットに、4ブロックにデータを、1ブロックにパリ
ティ情報を記録するために、5個のディスクが一組として使用される。
その分野で提起された一つは、パリティ情報を記録するRAIDシステムは、
パリティ情報の演算を迅速にかつ頻繁に要求することである。例えばストライプ
に書き込む動作は少なくとも一組のパリティ情報が演算されることを要求する。
パリティ情報を演算することはXOR(エクスクルーシィブオア)を実質的に使用
する。これはかなりの演算用リソースのアローケーション、例えばプロセッサー
サイクル、キャッシュロケーション、及びメモリアクセスサイクルのごときもの
を要求することが出来る。
パリティ情報を演算するための一つの可能な技術は、XOR機能を演算するた
めのプロセッサーを制御するためにソフトウエアを用いることである。この技術
は、いくつかの選択的な設計を持ち、例えば、レジスタの競合や不必要な待機を
避けるためにプロセッサーの命令をスケジュールをたてる試みを含み、又、不必
要なメモリの伝達やプロセッサーによる不必要な待機を避けるためにキャッシュ
の失敗を減じる。この技術はパリティ情報の演算目標を達成できるが、かなりの
演算用資源(プロセッサーサイクル、キャッシュロケーション、メモリ伝送)を要
求するという欠点を抱える。
パリティ情報を演算するための別の可能な技術は、XOR動作を実行するため
に、独立したメモリとともに第二のプロセッサーを採用することである。この第
二のプロセッサーは、DMA動作により、メインメモリ(つまり第1のプロセッ
サーにより使用されるメモリ)に結合され、これにより、第1のプロセッサーを
他の仕事に委ねる。この技術はパリティ情報の演算目標を達成できるが、第1の
プロセッサーがそのいくつかの負荷を軽減できるとしても、これもまた実質的な
メモリの伝送およびシステムバスの使用を要求するという欠点を持つ。
従って、いくつかの演算用資源を消耗したとしても、XOR動作を実行するた
めの方法及びシステムを提供することは有利である。その利点は、特定のプロセ
ッサーがメモリおよびディスクアクセスがシステムバスに伝送されるとき、それ
らのメモリ及びディスクアクセスを再検討し、XOR動作を実行し、これらのX
OR動作の結果を記録し、そしてこれらのXOR動作の結果をプロセッサーコマ
ンド上に出力する、本発明の実施例により達成される。
発明の概要
この発明は、実質的な演算用リソースを消費することなく、XOR動作を実行
するための方法およびシステムを提供する。特定のプロセッサーが一組のディス
クドライブと同じバスに結合され、その特定のプロセッサーは、ディスクドライ
ブへのデータ転送およびディスクドライブからのデータ転送を検証し、そして、
個々の転送を要求することなく、ディスクドライブへのデータ転送およびディス
クドライブからのデータ転送の際にXOR動作を実行する。
好ましい実施例では、特定のプロセッサーが、XOR動作のために使用される
XORアキュームレータを維持し、そのアキュームレータはXOR動作の結果を
記録し、そしてプロセッサーのコマンド上に読み出する。そのXORアキューム
レータは、各RAIDストライプのために、選択された一組のRAIDストライ
プのために一組のアキュームレータレジスタを含む。メモリ(アドレス可能な内
部メモリのごき)は、一組のアキュームレータレジスタを選択された各々のRA
IDストライプに関係させる。
図面の簡単な説明
図1はフライバイXORを実行するためのシステムのブロック図である。
図2はフライバイXORを実行するためのシステムを動作するための方法を示す
フローチャートである。
図3は第1のフライバイXOR素子のブロック図である。
図4は第2のフライバイXOR素子のブロック図である。
次の実施例では本発明の好ましい実施例が好ましいプロセスおよびデータ構成
に関して記述されている。しかしながら当業者であればこの明細書の通読後に本
発明の実施例は、プログラム制御下で動作する一つまたはより多くの一般目的の
プロセッサー(または特定用途のプロセッサー)を用いて実行でき、又、ここで開
示された好ましいプロセスのステップおよびデータ構造の実行は、過度の経験や
更なる発明を必要としないことが理解されよう。
システム構成
図1はフライバイXORを実行するためのシステムのブロック図を示す。
システム100は少なくとも一つのプロセッサー110、メモリ120、およ
びプロセッサー110とメモリ120を結合するためのシステムバス130を含
む。単一のプロセッサー110が示されているが、いくつかの応用に対するむ好
ましい実施例では一つのプロセッサー110より更に多くがシステムバス130
に結合され、そしてプロセッサー130はそれぞれのプロセッサーと協働させる
ようにしてもよい。
そのシステム100は更に複数のディスクドライブ140と、ディスクドライ
ブ140を制御し、かつ、中位のバス160を用いてディスクドライブ140と
システムバス130をデータ結合するために、少なくとも一つのディスクI/O
アダプタ150を含む。
好ましい実施例では、中位のバス160は、公知の標準PCIバスとして規格
化されたPCIバスであり、PCIブリッジ170を用いてシステムバス130
に結合される。
好ましい実施例では中位のバス160はPCIバスであったが本発明はPCI
バスや他の特定のタイプのバスの使用に制限されない。同様に中位のバス160
はここでは更に32ビットバスとして記述されているが本発明は32ビットバス
の使用に制限されず、64ビットバスのような他のビット幅で実行することも可
能である。このような変形は過度の経験や発明を要求しない。
フライバイXOR素子180は、中位のバス160を用いる伝送データからデ
ータを収集するために中位のバス160に結合されるそのフライバイXOR素子
180は、XOR動作の部分的および最終の結果をセーブするために、XORバ
ッファ190を用いる。
プロセッサー110がメモリ120と一つまたは複数のディスクドライブ14
0との間でデータの転送を開始するとき、そのデータは、システムバス130、
PCIブリッジ170および中位のバス160を使用して転送される。中位のバ
ス160を使用してデータが転送されたとき、フライバイXOR素子180はデ
ータを(データ転送を妨げることなく)読込み、そしてXORバッファ190内の
XORアキュームレータ(図2参照)の一つに加算する。RAIDストライプが全
体あるいは部分的に読出し又は書き込まれたとき、システム100のいかなる部
分から別のリソースを要求することなく、フライバイXOR素子180は流動的
にRAIDストライプに対する一組のパリティ情報を演算する。別のデータ転送
が要求されず、又、プロセッサー110およびメモリ120はこれらのXOR動
作を実行するために要求されない。
プロセッサー110は、読み書きされるRAIDストライプ内の格納ブロック
へパリティ情報が書き込まれるように指示されたとき、フライバイXOR素子1
80がXORバッファ190内の一つのXORアキュームレータから蓄積された
パリティ情報を読み出す。RAIDストライプ内の一つのディスクドライブがR
AIDストライプ内の一つの格納ブロックのすべてもしくは一部を喪失したとき
、RAIDストライプ内のデータを再構成もしくは修復するために、XORバッ
ファ190からの蓄積されたパリティ情報も使用され得る。
システム動作
図2はフライバイXORを実行するためのシステム動作の方法のフローチャー
トを示す。
フライバイXOR180の動作の方法200は、プロセッサー110、ディス
クドライブ140およびフライバイXOR素子180により実行される連続した
ステップを含む。
ポイント210では、システム100はRAIDストライプ上でXOR動作を
実行しようとしている。
ステップ221では、プロセッサー110はメモリバッファをメモリ120内
に位置させ、メモリバッファおよびひディスクドライブ140の一つへ転送され
たもしくはそこから転送されたDMAにセットアップする。
ステップ222では、プロセッサー110はメモリバッファのメモリアドレス
をフライバイXOR素子180へ転送し、そしてそのフライバイXOR素子18
0に対して、メモリバッファへ転送されるデータもしくはメモリバッファから転
送されるデータを認識させる。又、プロセッサー110は、XOR動作の結果を
蓄積するために、XORアキュームレータの一つをバッファ190内に位置させ
る。
ステップ223ではDMAの転送が実行される。フライバイXOR素子180
は中位のバス160をモニターし、そしてメモリバッファへの転送またはメモリ
バッファからの転送を認識させるように試みる。フライバイXOR素子180が
このような転送を認識したとき、転送されたデータをコピーし、それを、(XO
R動作を実行することにより)関係したXORアキュームレータバッファ内の蓄
積されたパリティ情報に加算する。認識されたメモリバッファに対するすべての
データが転送されたとき、関係したXORアキュームレータバッファはRAID
ストライプに対する演算されたパリティを保持する。
ステップ224では、プロセッサー110は、フライバイXOR素子180が
、蓄積されたパリティ情報を、関係するXORアキュームレータバッファからメ
モリ110内のメモリバッファまたはディスクドライブ140の一つの格納ブロ
ックへ読み出すように指令する。いずれかの場合でフライバイXOR素子180
からの読出しは、プロセッサーの読出しまたはディスクドライブ140の一つ
へのDMA転送により実行される。好ましい実施例では蓄積されたパリティ情報
からの読出しは、関係したXORアキュームレータバッファをゼロにリセットさ
せる。
ポイント230ではRAID上のXOR動作が完成され、システム100は別
のRAIDストライプを継続でき。
好ましい実施例ではプロセッサー110は、ディスクドライブ140の一つか
らメモリ120内のメモリバッファへ実際にデータを転送することなく、XOR
動作を実行できる。この動作は、データが実際にメモリ120に記憶されないこ
とを除き、あたかもメモリバッファに転送されるかのように実行されるので、こ
こではこの動作を“無”メモリバッファへの転送と称する。無メモリバッファへ
転送できることは都合がよい。即ち、RAIDストライプに対するディスク動作
があるためであり、この動作時、ディスクドライブ140に格納されたとき、R
AIDストライプの格納ブロックのいくらかに読み書きするのが望ましいが、全
体のRAIDストライプに対するパリティ情報を演算することは必要である。
例えばRAIDストライプの単一の格納ブロックに書き込むことが望まれると
き、前記格納ブロックとパリティ情報格納ブロックの双方に書き込むことが必要
である。公知のRAID格納システムでは、プロセッサーが新しいパリティ情報
を演算できるようには、最初に現在のパリティとデータブロックとをディスクか
らメモリへ読み出す必要がある。しかしながらこの発明では、フライバイXOR
素子180を用いてパリティ情報を演算するが、プロセッサー110やメモリ1
20の資源を使用することなく、これらのブロックを無メモリバッファに転送で
きる。
更に好ましい実施例では、RAIDストライプの単一の格納ブロックの書き込
みは数ステップで実行される:(1)フライバイXOR素子180を用いてパリテ
ィ情報を蓄積できるように、古い格納ブロックデータおよび古いパリティブロッ
クデータが無メモリバッファに転送される。(2)フライバイXOR素子180を
用いて格納ブロックを書き込み、同時にパリティ情報を演算できるように、新し
い格納ブロックデータが格納ブロックに書き込まれる。(3)蓄積されたパリティ
情報がXORバッファ190からパリティ格納ブロックへ書き込まれる。プロセ
ッサー110およびメモリ120の資源はこれらの動作で必要としない。
無メモリバッファへの転送を行うために、ステップ221でプロセッサー11
0はメモリ120内にメモリバッファを位置させず、そしてディスクドライブ1
40の一つとメモリ120により認識されないメモリアドレスとの間に転送され
たDMAにデータをセットアップする。ステップ223では、メモリ120が無
メモリバッファへの“転送された”データのいずれをも捕捉することなく、転送
DMA転送が実行され、そしてフライバイXOR素子180が中位バス160を
モニターする。
フライバイXOR素子
図3はフライバイXOR素子180のブロック図を示す。第1のフライバイX
OR素子180はバスインターフェイス310、タイミング及びコントロール素
子320および連想メモリ(CAM)330および関係する素子を含む。XORバ
ッファ190はフライバイXOR素子180に結合され、ランダムアクセスメモ
リ(RAM)340、FIFO群350および関係する素子を含む。XORバッフ
ァ190は概念的にRAM340を含み、好ましい実施例では、そのRAM34
0は外部RAM回路を用いて実現され、一方、FIFO350および関係する素
子はASIC内のフライバイXOR素子180の他の回路で実現される。
バスインターフェイス310およびタイミング及びコントロール素子320は
フライバイXOR素子180と中位のバス160との間にインターフェイスを与
える。そのインターフェイスは中位のバス160により使用される制御信号を伝
達する一組のコントロールパス311、0から31ビットのバスアドレス値を伝
達するバスアドレス(BA)パス312、0から31ビットのバスデータ値を伝達
するバスアドレス(BA)パス313を含む。PCIバスを用いる伝達はコンピュ
ータのシステム設計の分野では公知である。
中位バスがPCIバス以外か32ビット幅以外の別の実施例では、バスデータ値
は他のビット認識(0ないし63ビットのごとく)を持ち、そしてPCI以外の他
のバスプロトコルを用いて伝達を行う。
XORバッファ190はランダムアクセスメモリ(RAM)340を含み、その
メモリは、一組の32XORアキュームレータバッファを備え、それらの各々
は、4バイト(32ビット)幅、それゆえサイズが4Kバイとなる1024入力長で
ある。従って32までの異なるRAIDストライプが、フライバイXOR素子1
80により同時に実行されたXOR蓄積を持てる。
XORバッファ190は更にFIFO群350を含み、RAM340内の一つ
の32XORアキュームレータバッファ内でパリティ情報を蓄積できるように、
このFIFO群は、連続したワードのバスデータ値の入力とこれらの連続したワ
ード上でXOR動作の実行を行なう。
CAM330は一組の256入力を与え、それらの各々は、RAM340の3
2XORアキュームレータバッファの一つにの5ビットの関係したアドレスを有
する20ビットバスアドレス値に関係づける。そのCAM330は、CAM33
0内の256入力の一つを選択するためのアドレス入力ポート331、CAM3
30により適合されるべき20ビットのタグを与えるための20ビットタグポー
ト332、20ビットタグを有するCAM330により関係づけられた5ビット
値を与えるための5ビット値ポート333、ライトコントロール信号を受け取る
ためのライトコントロールポート334およびマッチ(整合)コントロール信号を
受け取るためのマッチコントロールポート335を備える。
タイミング及びコントロール素子320は又、マッチコントロールポート33
5からマッチコントロール信号を受け取り、そしてRAM340をアドレスする
ために15ビットRAMアドレスパス(RA)を与え、そしてCAM330をコン
トロールするためにコントロールパス315に書き込む。
バスアドレスパス312の12から31ビットおよびバスデータパス313の
12から31ビット(このように各ケースで上位20ビット)は、CAMマルチプ
レクサ336の入力に結合され、その出力はCAM330のタグポート332に
結合されている。タグポート332は又、20ビット出力を与え、その出力はド
ライバー337を用いてバスデータパス313に接続される。バリューポート3
33での関係した5ビット値はXORバッファ190に接続され、又、一対のド
ライバ338を用いてバスデータパス313に接続される。
そのXORバッファ190はRAM340を含み、そのRAMは、15ビット
RAMアドレス値を受け取るためのRAMアドレスポート341と、このRAM
340内で関係した位置に格納される32ビットRAMデータを与えるためのR
AMデータポート342を含む。このRAM340は概念的に32個のXORアキ
ュームレータバッファに分割され、それらの個々は1K32ビットワード(つま
り4Kバイト)を含み、そして各々は上位RAMアドレス値として5ビットXO
Rアキュームレータバッファ数(0ないし31)を持ちRAM340内で一組の
位置を占める。
バリューポート333での関係した5ビット値はRAMアドレスポート341
に結合され、RAM340内のアドレス用ワードに対する上位5ビットを与える
、バスアドレスパスの2ないし11ビット(つまりアドレス用ワードに対する低
位10ビット)はRAM340内のアドレス用ワードに対する低位の10ビット
を与え、そしてこれもRAMアドレスポート341に接続される。これにより、
RAM340はRAMアドレスポート341にて15ビットアドレスを受け取り
、そして32ビットデータワードをRAMデータポート342に与える。
RAMデータポート342は、ドライバ351を用いてバスデータパス313
(と同時にFIFO群350の入力)と、FIFOマルチプレクサ352の出力4
と、FIFOレジスタ353の入力部とに接続される。そのFIFO群350は
XORオペレータ354に接続される出力部を持ち、そのオペレータは、全32
ビットワード上でXORがパラレル動作を実行するために1組の32XORゲー
トを含む。このFIFOマルチプレクサ352はXORオペレータ354の出力
部と“ゼロ”入力部355とに接続される。
ステップ221およびステップ222にあるように新しいRAIDストライプ
のためのXORアキュームレータバッファを位置させるために、タイミング及び
コントロール素子320は、CAM330にメモリ120内のメモリバッファに
対する20ビットメモリアドレス(又、無メモリバッファに対する20ビットメ
モリアドレス)をロードさせ、そして上記20ビットメモリアドレスを32XO
Rアキュームレータバッファの一つに対する5ビット識別子に関連づける。バス
アドレス312の2〜9ビットはアドレス入力ポート331に接続され、CA
M330に対する新しい入力のアドレスを与える。そのCAMマルチプレクサ3
36はタイミング及びコントロール素子320の制御下においてタグポート3
32へ接続するためのバスデータパス313を選択する。そのCAM330は、
バスデータパス313からの12〜31ビットのバスデータ値を、特定化された
アドレスの新しい20ビットタグをアドレス入力ポート331に、又、バスデー
タパス313からの0〜4ビットのバスデータ値輪新しい5ビット値として挿入
する。プロセッサー110は診断目的のためにCAM330内で選択されたすべ
てを読むことが出来る。
ステップ223にて中位のバス160をモニターするためにタイミングおよび
コントロール素子320はタグポート332への接続のためにバスアドレスパス
312を選択する。中位バス160上に表れたメモリアドレスの上位20ビット
(または無メモリバッファ内のアドレス)がCAM330内の20ビットタグの一
つに整合するとき、CAM330はバスアドレスの12〜31ビットを整合させ
、前記20ビットタグ内の5ビット値に関係付ける。
中位バス160上のデータ値が1ワードづつFIFO群350へ読込まれるよ
うに、バスアドレスパス312の2〜11ビットはRAM340内のXORアキ
ュームレータバッファ内の個々のワードを選択するために使用されるが、関係し
た5ビット値は、RAM340内の32XORアキュームレータバッファの一つ
を選択するために用いられる。RAM340内のXORアキュームレータバッフ
ァをFIFO群350内のデータに関連づけたデータに基づきXOR動作を実行
できるように、タイミング及びコントロール素子320は、XORオペレータ3
54を通じてFIFO群350内の各ワードを、RAM340からFIFOレジ
スタ353に読込まれた対応するワードに関連して連続させる。この後、タイミ
ング及びコントロール素子320は、XOR動作の結果がRAM340内の関係
したXORアキュームレータバッファに書き戻されるようにする。
ステップ224にて蓄積されたパリティ情報を読み出すために、タイミングお
よびコントロール素子320は、RAMアドレスポート341への接続のために
バスアドレスパス312を選択し、RAM340内のXORアキュームレータバ
ッファ内の各ワードを順にバスデータパス313に読出し、一方、メモリ120
へまたはディスクドライブ140の一つに対してDMA転送が起きる。ほとんど
一般的には、DMA転送はディスクドライブ140の一つに直接に転送される
が、もしプロセッサー110がパリティ情報を演算しなくてはならないとき、メ
モリ120に転送できる。プロセッサー110は診断目的のために直接にRAM
340全体を読むこともでき、あるいは他にXORバッファ190内のパリティ
情報を読むかあるいは動作することが望ましい。XORアキュームレータバッフ
ァが一様のゼロ値にリセットされるように、タイミング及びコントロール素子3
20は同時にRAM340内のXORアキュームレータバッファ内の各ワードに
ゼロ値を書き込む。
XORバッファ190の内容と選択された情報との間でXOR動作を直接に行
えるように、プロセッサー110はまたRAM340内の選択された位置に直接
書き込む。これはステップ223で実行されるXOR動作に似る。しかしながら
、CAM330のバリューポート333からの5ビット値の出力のかわりに、バ
スデータパス313の12〜16ビットはRAMアドレスポート341に接続さ
れる。
好ましい実施例では、バスアドレスパス312上の値およびバスデータパス3
13は表3−1で示されるように使用される。表3−1ではアドレス範囲の値が
16進法で示され、選択されたビット幅はバスアドレス(BA)パス312および
バスデータ(BD)パス313で示される。表3−1
アドレス範囲 レジスタ リード/ライト データ/動作
000000..0000FF PCIバスレジスタリードライト PCIバスプロトコルで指定
010000..0103FF CAM入力 リードライトリード又はライトCAM入力
BA<2:9>CAM入力番号
BD<0:4>XORアキュームレータ番号
BD<12:31>メモリバッファアドレス
100000..10FFFF XORアキュームレータバッファリード XORアキュームレータバッファを
リード又はクリア
BA<12:16>XORアキュームレータバッファ番号
BD<0:31>結果
100000..10FFFF XORアキュームレータバッファライト XORをXORアキュームレータバッファ
に導く
BA<12:16>XORアキュームレータバッファ番号
BD<0:31>XORを導くための
データ
000000..FFFFFF XORアキュームレータバッファ X フライバイXORリメモリバッファ
BA<12:31>整合のための
メモリアドレス
BD<0:31>フライバイXOR
のためのデータ
200000..7FFFFF 無メモリバッファライトフライバイXORリヌルメモリバッファ
BA<12:31>整合のための
メモリアドレス
BD<0:31>フライバイXOR
のためのデータ
第2のフライバイXOR素子
図4は第2のフライバイXOR素子のブロック図を示す。
第2のフライバイXOR素子180及びXORバッファ190は第1のフライ
バイXOR素子180およびXORバッファ190と同様である。しかしながら
第1のSRAM430CAM330の替わりに使用され、又、第2のSRAM4
40はRAM340の替わりに使用される。第1のXOR素子180およびバッ
ファ190に似るが、XORバッファ190は概念的にSRAM430を含み、
好ましい実施例では、SRAM430は外部SRAM回路を使用して実現され、
一方、XORバッファ190の他の素子はASIC内のフライバイXOR素子1
80の他の回路で実現される。
第2のフライバイXOR素子180に対するバスインタフェイス410は第1
のフライバイXOR素子180に対するバスインタフェイス310に同様であ
り、第2のフライバイXOR素子180は第1のフライバイXOR素子180に
対するコントロール素子320と同様である。バスインタフェイス410および
タイミング及びコントロール素子420は同様にフライバイXOR素子180と
中位バスとの間にインタフェイスを与える。そのインタフェイスは中位バス16
0により制御信号を伝達する1組のコントロールパス411、0〜31のバスア
ドレス値を伝達するバスアドレス(BA)パス412、0〜31のバスデータ値を
伝達するバスデータ(BA)パス413を含む。
第1のSRAM430は5ビットワードメモリによる1メガワードを含み、そ
して第1のSRAMアドレス入力ポート431、ライトコントロール信号を受け
取るためのライトコントロール入力ポート432および確定コントロール信号と
して使用される出力データビットを与えるための確定コントロール出力ポート4
34(SRAM430に対する付加的なデータビット出力)を含む。バスアドレス
パス412の2〜21ビットはSRAMマルチプレクサ435の第1の入力部に
接続され、バスアドレスパス412の12〜31ビットはSRAMマルチプレク
サ435の第2の入力部に接続され、そしてSRAM435の出力部は第1のS
RAM入力ポート431に接続される。
タイミング及びコントロール素子420はまた確定コントロール出力ポート4
34から確定コントロール信号を受信し、そして第2のSRAM440をアドレ
スするために15ビットRAMアドレスパス(RA)と、第1のSRAM430を
制御するためのライトコントロールパス415を備える。
XORバッファ190は第2のSRAM440を含み、このSRAMは、15
ビットの第2のSRAMアドレス値を受け取るための第2のSRAMアドレス入
力ポート441および第2のSRAM440内の関係した位置に格納された32
ビットのSRAMデータバリューを受け取るために第2のSRAMデータポート
442を含む。RAM340と同様に第2のSRAM440は概念的に32個の
XORアキュームレータバッファに分割され、それらの各々は1K32ビットワ
ード(つまり4Kバイト)を含み、そして第2のSRAM440内で1組の位置を
占め、それらの各々は第2のSRAMアドレス値の上位ビットとして5ビットの
XORアキュームレータバッファ番号(0〜31)を持つ。
5ビット値を256組の20ビットタグの一つに関係づける替わりに、第1の
SRAM430は、各可能な20ビットタグに対する一つの入力、各入力に対す
る確定したビットおよび確定したビットの組、5ビット値を有するこれらの入力
に対する確定したビットを持つ。各20ビットタグは、メモリ120(または無
メモリバッファに対するアドレス)内のメモリバッファの可能な上位20ビット
アドレスを表す。各5ビット値は可能なXORアキュームレータバッファ数を表
す。
第1のSRAMデータポート433での関係した5ビット値は第2のSRAM
アドレスポート441に結合され、そして第2のSRAM440内のワードをア
ドレスするための上位5ビット値を与える。バスアドレスパス412の2〜11
ビット(つまり4ビットワードをアドレスするための低位10ビット)は、第2の
SRAM440内のワードをアドレスするための低位10ビットを与え、また、
第2のSRAMアドレスポート441に結合される。これにより、第2のSRA
M440は、第2のSRAMアドレスポート441で15ビット値を受け取り、
そして32ビットデータワードを第2のSRAMデータポート442に出力する
。
第2のSRAMデータポート42は第1のレジスタ450と、ドライバ451
を用いてバスデータパスバッファ413(およびまた第2のレジスタ452)とに
結合される。第1のレジスタ450および第2のレジスタ452はXORオペレ
ータ453の入力部に結合され、このオペレータは全体32ビットワード上でパ
ラレルでXOR動作を実行とするための1組の32XORゲートを含む。XOR
オペレータ453の出力および“ゼロ”入力454はXORマルチプレクサ45
5の入力部に接続され、そのXORマルチプレクサ455の出力は第2のSRA
Mデータポート442に接続される。
ステップ223にて中位のバスをモニターするために、タイミング及びコント
ロール素子420はバスアドレスパス412を選択して、第1のSRAMアドレ
ス入力ポート431に接続する。確定したビットが上記位置にセットされ、第1
のSRAMデータポート433が20ビットメモリアドレスと関係したXORア
キュームレータバッファに対して5ビット値を与えたとき、中位バス160上に
現れるメモリアドレス(または無メモリ内のアドレス)の上位20ビットは第1の
SRAM430をアドレスするために用いられる。
関係した5ビット値は第2のSRAM440内の32XORアキュームレータ
バッファの一つを選択するために用いられ、一方、バスアドレスパス412の2
〜11ビットは、第2のSRAM440内のXORアキュームレータバッファに
ある個々のワードを選択するために用いられる。第2のSRAM440内のデー
タ値は第1のレジスタ450へ1ワードづつ読み出され、一方、データ値は中位
バス160から第2のレジスタ452へ1ワードづつコピーされる。XORオペ
レータ453は、中位バス160を横切るデータを伴うXORアキュームレータ
バッファ内のデータでXOR動作を実行する。XORオペレータ453からの出
力は、SRAMデータポート442を用いて第2のSRAM440に書き戻され
る。
第1のフライバイXOR素子180と同様に、ステップ224であるように、
蓄積されたパリティ情報を読み出すために、タイミングおよびコントロール素子
420は、第2のSRAMアドレスポート441を結合するためにバスアドレス
パス412を選択し、第2のSRAM440内のXORアキュームレータバッフ
ァ内の各ワードを順にバスデータパス413に読出し、一方、DMA転送はメモ
リ120かディスクドライブ140の一つに対して起こる。第1のフライバイX
OR素子180と同様に、プロセッサー110も、診断目的のために、あるいは
もし読み出すかXORバッファ190内のパリティ情報全体で動作させることが
望ましいならば、第2のSRAM440入力を直接に読み出すことが出来る。第
1のフライバイXOR素子180と同様に、タイミングおよびコントロール素子
420は、第2のSRAM440内のXORアキュームレータバッファにある各
ワードへゼロを同時に書き込み、XORアキュームレータバッファを一定のゼロ
値にリセットさせる。
フライバイXOR素子180と同様に、プロセッサー110は第2のSRAM
440内の選択された位置に直接書き込むこともでき、XORバッファ190の
内容と選択された情報との間でXOR動作を直接行う。
第2のフライバイXOR素子180は付随的な特徴を持つ。すなわち、XOR
アキュームレータバッファと結合できるメモリ120(又は無メモリバッファ)内
のメモリバッファ数はCAM330内の入力数に制限されないことである。この
ことは任意の幅のRAIDストライプを使用でき、これにより、32RAIDス
トライプまで同時に使用できる。第2のフライバイXOR素子180は、第1の
SRAMデータポート433の幅および第2のSRAM440のサイズを変更す
ることにより、XORアキュームレータバッファの個数を変更するために変形す
ることが出来る。
好ましい実施例では、バスアドレスパス412およびバスデータパス上の値は
表4−1に示されたように用いられる。表4−1では、アドレス範囲の値は16
進法で示され、選択されたビット範囲はバスアドレス(BA)パス312およびバ
スデータ(BD)パス313に対して示されている。表4−1
アドレス範囲 レジスタ リード/ライト データ/動作
000000..0000FF PCIバスレジスタリードライト PCIバスプロトコルで指定
010000..0103FF テーブル入力 リードライトリード又はライトテーブル入力
BA<0:4>CAMアキュームレータ番号
BD<8>テーブル他入力値
BD<12:31>メモリバッファアドレス
100000..10FFFF XORアキュームレータバッファリード XORアキュームレータバッファを
リード又はクリア
BA<12:16>XORアキュームレータバッファ番号
BD<0:31>結果
100000..10FFFF XORアキュームレータバッファライト XORをXORアキュームレータバッファ
に導く
BA<12:16>XORアキュームレータバッファ番号
BD<0:31>XORを導くための
データ
000000..FFFFFF XORアキュームレータバッファ X フライバイXORリメモリバッファ
BA<12:31>整合のための
メモリアドレス
BD<0:31>フライバイXOR
のためのデータ
200000..7FFFFF 無メモリバッファライトフライバイXORリヌルメモリバッファ
BA<12:31>整合のための
メモリアドレス
BD<0:31>フライバイXOR
のためのデータ
好ましい実施例
第1のフライバイXOR素子およびその関係したXORバッファ190およ
び第20のフライバイXOR素子180およびその関係したXORバッファ19
0は好ましい実施例である。当業者であれば、この明細書の通読後、第1のフラ
イバイXOR素子180およびその関係したXORバッファ190はいくつかの
設計拘束に対して好ましく、又、第2のフライバイXOR素子180及びその関
係したXORバッファ190は他の組の設計拘束に対して好ましいことが理解さ
れよう。
例えば第1のフライバイXOR素子180およびその関係したXORバッファ
190は、比較的小さいが複雑なCAM330が比較的大きい付加的な外部SR
AM430より安価な場合に好ましく、一方、第2のフライバイXOR素子18
0およびその関係したXORバッファ190は、反対の状況あるいはRAIDサ
ブシステムに対するストライプが比較的広い場合に好ましい。
別の実施例
好ましい実施例をここで開示したが、本発明の内容、範囲および精神を留めた
種種の変形が可能であり、これらの変形は当業者がこの明細書を通読後、明白に
なるであろう。
【手続補正書】
【提出日】平成11年11月19日(1999.11.19)
【補正内容】
明細書
発明の名称
バスから収集されたデータに対するパリティ発生フライバイXOR
発明の背景
1.技術分野
この発明は、格納システムに関する。
2.関連した技術の説明
公知の一つの格納システムとしては、データが多数のディスクドライブを横切
って分配され、これらのディスクドライブの一つが、もしくはその格納ブロック
の一つまたは複数がデータを消失したときに備え、修復可能となるように格納さ
れる、“RAID”が公知である。後者の修復用としてデータを格納するために
は、パリティ情報からデータを修復できるようにRAIDシステムはパリティ情
報を伴ってデータを記録する。例えば一つのタイプのRAIDシステムでは、“
ストライプ”として公知のユニットに、4ブロックにデータを、1ブロックにパ
リティ情報を記録するために、5個のディスクが一組として使用される。
その分野で提起された一つの問題は、パリティ情報を記録するRAIDシステ
ムは、パリティ情報の演算を迅速にかつ頻繁に要求することである。例えばスト
ライプに書き込む動作は少なくとも一組のパリティ情報が演算されることを要求
する。パリティ情報を演算することはXOR(エクスクルーシィブオア)を実質的
に使用する。これはかなりの演算用資源のアローケーション、例えばプロセッサ
ーサイクル、キャッシュロケーション、及びメモリアクセスサイクルのごときも
のを一般に要求する。
パリティ情報を演算するための一つの可能な技術は、XOR機能を演算するた
めのプロセッサーを制御するためにソフトウエアを用いることである。この技術
は、いくつかの選択的な設計を持ち、例えば、レジスタの競合や不必要な待機を
避けるためにプロセッサーの命令にスケジュールをたてる試みを含み、又、不必
要なメモリの伝達やプロセッサーによる不必要な待機を避けるためにキャッシュ
の失敗を減じる。この技術はパリティ情報の演算目標を達成できるが、かなりの
演算用資源(プロセッサーサイクル、キャッシュロケーション、メモリ伝送)を要
求するという欠点を抱える。
パリティ情報を演算するための別の可能な技術は、XOR動作を実行するため
に、独立したメモリとともに第二のプロセッサーを採用することである。この第
二のプロセッサーは、DMA結合を用いて、メインメモリ(つまり第1のプロセ
ッサーにより使用されるメモリ)に結合され、そしてXOR動作のための入力を
DMA動作を用いてメモリから引き取り、これにより、第1のプロセッサーを他
の仕事に委ねる。この技術はパリティ情報の演算目標を達成できるが、第1のプ
ロセッサーがそのいくつかの負荷を軽減できるとしても、これもまた実質的なメ
モリの伝送およびシステムバスの使用を要求するという欠点を持つ。
従って、より少ない演算用資源を消費するが、XOR動作を実行するための方
法及びシステムを提供することは有利である。その利点は、特定のプロセッサー
がメモリおよびディスクアクセスがシステムバスに伝送されるとき、それらのメ
モリ及びディスクアクセスを再検討し、XOR動作を実行し、これらのXOR動
作の結果を記録し、そしてこれらのXOR動作の結果をプロセッサーコマンド上
に出力する、本発明の実施例により達成される。
発明の概要
この発明は、実質的な演算用資源を消費することなく、XOR動作さを実行す
るための方法およびシステムを提供する。特定のプロセッサーが一組のディスク
ドライブと同じバスに結合され、その特定のプロセッサーは、ディスクドライブ
へのデータ転送およびディスクドライブからのデータ転送を検証し、そして、個
々の転送を要求することなく、ディスクドライブへのデータ転送およびディスク
ドライブからのデータ転送の際にXOR動作を実行する。
好ましい実施例では、特定のプロセッサーが、XOR動作のために使用される
XORアキュームレータを維持し、そのアキュームレータはXOR動作の結果を
記録し、そしてプロセッサーのコマンド上に読み出す。そのXORアキュームレ
ータは、各RAIDストライプのために、選択された一組のRAIDストライプ
のために一組のアキュームレータレジスタを含む。メモリ(アドレス可能な内部
メ
モリのごき)は、一組のアキュームレータレジスタを選択された各々のRAID
ストライプに関係させる。
図面の簡単な説明
図1はフライバイXORを実行するためのシステムのブロック図である。
図2はフライバイXORを実行するためのシステムを動作するための方法を示す
フローチャートである。
図3は第1のフライバイXOR素子のブロック図である。
図4は第2のフライバイXOR素子のブロック図である。
次の実施例では本発明の好ましい実施例が好ましいプロセスおよびデータ構成
に関して記述されている。しかしながら当業者であればこの明細書の通読後に本
発明の実施例は、プログラム制御下で動作する一つまたはより多くの一般目的の
プロセッサー(または特定用途のプロセッサー)を用いて実行でき、又、ここで開
示された好ましいプロセスのステップおよびデータ構造の実行は、過度の経験や
更なる発明を必要としないことが理解されよう。
システム構成
図1はフライバイXORを実行するためのシステムのブロック図を示す。
システム100は少なくとも一つのプロセッサー110、メモリ120、およ
びプロセッサー110とメモリ120を結合するためのシステムバス130を含
む。単一のプロセッサー110が示されているが、いくつかの応用に対する好ま
しい実施例では一つのプロセッサー110より更に多くがシステムバス130に
結合され、そしてプロセッサー110はそれぞれのプロセッサーと協働させるよ
うにしてもよい。
そのシステム100は更に複数のディスクドライブ140と、ディスクドライ
ブ140を制御し、かつ、中位のバス160を用いてディスクドライブ140と
システムバス130をデータ結合するために、少なくとも一つのディスクI/O
アダプタ150を含む。
好ましい実施例では、中位のバス160は、公知の標準PCIバスとして規格
化されたPCIバスであり、PCIブリッジ170を用いてシステムバス130
に結合される。
好ましい実施例では中位のバス160はPCIバスであったが本発明はPCI
バスや他の特定のタイプのバスの使用に制限されない。同様に中位のバス160
はここでは更に32ビットバスとして記述されているが本発明は32ビットバス
の使用に制限されず、64ビットバスのような他のビット幅で実行することも可
能である。このような変形は過度の経験や発明を要求しない。
フライバイXOR素子180は、中位のバス160を用いる伝送データからデ
ータを収集するために中位のバス160に結合される。そのフライバイXOR素
子180は、XOR動作の部分的および最終の結果をセーブするために、XOR
バッファ190を用いる。
プロセッサー110がメモリ120と一つまたは複数のディスクドライブ14
0との間でデータの転送を開始するとき、そのデータは、システムバス130、
PCIブリッジ170および中位のバス160を使用して転送される。中位のバ
ス160を使用してデータが転送されたとき、フライバイXOR素子180はデ
ータを(データ転送を妨げることなく)読込み、そしてXORバッファ190内の
XORアキュームレータ(図2参照)の一つに加算する。RAIDストライプが全
体あるいは部分的に読出し又は書き込まれたとき、システム100のいかなる部
分から別の資源を要求することなく、フライバイXOR素子180は流動的にR
AIDストライプに対する一組のパリティ情報を演算する。別のデータ転送が要
求されず、又、プロセッサー110およびメモリ120はこれらのXOR動作を
実行するために要求されない。
プロセッサー110は、読み書きされるRAIDストライプ内の格納ブロック
へパリティ情報が書き込まれるように指示されたとき、フライバイXOR素子1
80がXORバッファ190内の一つのXORアキュームレータから蓄積された
パリティ情報を読み出す。RAIDストライプ内の一つのディスクドライブがR
AIDストライプ内の一つの格納ブロックのすべてもしくは一部を喪失したとき
、RAIDストライプ内のデータを再構成もしくは修復するために、XORバッ
ファ190からの蓄積されたパリティ情報も使用され得る。
システム動作
図2はフライバイXORを実行するためのシステム動作の方法のフローチャー
トを示す。
フライバイXOR180の動作の方法200は、プロセッサー110、ディス
クドライブ140およびフライバイXOR素子180により実行される連続した
ステップを含む。
ポイント210では、システム100はRAIDストライプ上でXOR動作を
実行しようとしている。
ステップ221では、プロセッサー110はメモリバッファをメモリ120内
に位置させ、メモリバッファおよびディスクドライブ140の一つへ転送された
もしくはそこから転送されたDMAにセットアップする。
ステップ222では、プロセッサー110はメモリバッファのメモリアドレス
をフライバイXOR素子180へ転送し、そしてそのフライバイXOR素子18
0に対して、メモリバッファへ転送されるデータもしくはメモリバッファから転
送されるデータを認識させる。又、プロセッサー110は、XOR動作の結果を
蓄積するために、XORアキュームレータの一つをバッファ190内に位置させ
る。
ステップ223ではDMAの転送が実行される。フライバイXOR素子180
は中位のバス160をモニターし、そしてメモリバッファへの転送またはメモリ
バッファからの転送を認識させるように試みる。フライバイXOR素子180が
このような転送を認識したとき、転送されたデータをコピーし、それを、(XO
R動作を実行することにより)関係したXORアキュームレータバッファ内の蓄
積されたパリティ情報に加算する。認識されたメモリバッファに対するすべての
データが転送されたとき、関係したXORアキュームレータバッファはRAID
ストライプに対する演算されたパリティを保持する。
ステップ224では、プロセッサー110は、フライバイXOR素子180が
、蓄積されたパリティ情報を、関係するXORアキュームレータバッファからメ
モリ110内のメモリバッファまたはディスクドライブ140の一つの格納ブロ
ックへ読み出すように指令する。いずれかの場合でフライバイXOR素子180
からの読出しは、プロセッサーの読出しまたはディスクドライブ140の一つへ
の
DMA転送により実行される。好ましい実施例では蓄積されたパリティ情報から
の読出しは、関係したXORアキュームレータバッファをゼロにリセットさせる
。
ポイント230ではRAID上のXOR動作が完成され、システム100は別
のRAIDストライプを継続できる。
好ましい実施例ではプロセッサー110は、ディスクドライブ140の一つか
らメモリ120内のメモリバッファへ実際にデータを転送することなく、XOR
動作を実行できる。この動作は、データが実際にメモリ120に記憶されないこ
とを除き、あたかもメモリバッファに転送されるかのように実行されるので、こ
こではこの動作を“無”メモリバッファへの転送と称する。無メモリバッファへ
転送できることは都合がよい。即ち、RAIDストライプに対するディスク動作
があるためであり、この動作時、ディスクドライブ140に格納されたとき、R
AIDストライプの格納ブロックのいくらかに読み書きするのが望ましいが、全
体のRAIDストライプに対するパリティ情報を演算することは必要である。
例えばRAIDストライプの単一の格納ブロックに書き込むことが望まれると
き、前記格納ブロックとパリティ情報格納ブロックの双方に書き込むことが必要
である。公知のRAID格納システムでは、プロセッサーが新しいパリティ情報
を演算できるようには、最初に現在のパリティとデータブロックとをディスクか
らメモリへ読み出す必要がある。しかしながらこの発明では、フライバイXOR
素子180を用いてパリティ情報を演算するが、プロセッサー110やメモリ1
20の資源を使用することなく、これらのブロックを無メモリバッファに転送で
きる。
更に好ましい実施例では、RAIDストライプの単一の格納ブロックの書き込
みは数ステップで実行される:(1)フライバイXOR素子180を用いてパリテ
ィ情報を蓄積できるように、古い格納ブロックデータおよび古いパリティブロッ
クデータが無メモリバッファに転送される。(2)フライバイXOR素子180を
用いて格納ブロックを書き込み、同時にパリティ情報を演算できるように、新し
い格納ブロックデータが格納ブロックに書き込まれる。(3)蓄積されたパリティ
情報がXORバッファ190からパリティ格納ブロックへ書き込まれる。プロセ
ッサー110およびメモリ120の資源はこれらの動作で必要としない。
無メモリバッファへの転送を行うために、ステップ221でプロセッサー11
0はメモリ120内にメモリバッファを位置させず、そしてディスクドライブ1
40の一つとメモリ120により認識されないメモリアドレスとの間に転送され
たDMAにデータをセットアップする。ステップ223では、メモリ120が無
メモリバッファへの“転送された”データのいずれをも捕捉することなく、転送
DMA転送が実行され、そしてフライバイXOR素子180が中位バス160を
モニターする。
フライバイXOR素子
図3はフライバイXOR素子180のブロック図を示す。第1のフライバイX
OR素子180はバスインターフェイス310、タイミング及びコントロール素
子320および連想メモリ(CAM)330および関係する素子を含む。XORバ
ッファ190はフライバイXOR素子180に結合され、ランダムアクセスメモ
リ(RAM)340、FIFO群350および関係する素子を含む。XORバッフ
ァ190は概念的にRAM340を含み、好ましい実施例では、そのRAM34
0は外部RAM回路を用いて実現され、一方、FIFO350および関係する素
子はASIC内のフライバイXOR素子180の他の回路で実現される。
バスインターフェイス310およびタイミング及びコントロール素子320は
フライバイXOR素子180と中位のバス160との間にインターフェイスを与
える。そのインターフェイスは中位のバス160により使用される制御信号を伝
達する一組のコントロールパス311、0から31ビットのバスアドレス値を伝
達するバスアドレス(BA)パス312、0から31ビットのバスデータ値を伝達
するバスアドレス(BA)パス313を含む。PCIバスを用いる伝達はコンピュ
ータのシステム設計の分野では公知である。
中位バスがPCIバス以外か32ビット幅以外の別の実施例では、バスデータ
値は他のビット認識(0ないし63ビットのごとく)を持ち、そしてPCI以外の
他のバスプロトコルを用いて伝達を行う。
XORバッファ190はランダムアクセスメモリ(RAM)340を含み、その
メモリは、一組の32XORアキュームレータバッファを備え、それらの各々は
、4バイト(32ビット)幅、それゆえサイズが4Kバイトとなる1024入力長で
あ
る。従って32までの異なるRAIDストライプが、フライバイXOR素子18
0により同時に実行されたXOR蓄積を持てる。
XORバッファ190は更にFIFO群350を含み、RAM340内の一つ
の32XORアキュームレータバッファ内でパリティ情報を蓄積できるように、
このFIFO群は、連続したワードのバスデータ値の入力とこれらの連続したワ
ード上でXOR動作の実行を行なう。
CAM330は一組の256入力を与え、それらの各々は、RAM340内の
32XORアキュームレータバッファの一つにの5ビットの関係したアドレスを
有する20ビットバスアドレス値に関係づける。そのCAM330は、CAM3
30内の256入力の一つを選択するためのアドレス入力ポート331、CAM
330により適合されるべき20ビットのタグを与えるための20ビットタグポ
ート332、20ビットタグを有するCAM330により関係づけられた5ビッ
ト値を与えるための5ビット値ポート333、ライトコントロール信号を受け取
るためのライトコントロールポート334およびマッチ(整合)コントロール信号
を受け取るためのマッチコントロールポート335を備える。
タイミング及びコントロール素子320は又、マッチコントロールポート33
5からマッチコントロール信号を受け取り、そしてRAM340をアドレスする
ために15ビットRAMアドレスパス(RA)を与え、そしてCAM330をコン
トロールするためにコントロールパス315に書き込む。
バスアドレスパス312の12から31ビットおよびバスデータパス313の
12から31ビット(このように各ケースで上位20ビット)は、CAMマルチプ
レクサ336の入力に結合され、その出力はCAM330のタグポート332に
結合されている。タグポート332は又、20ビット出力を与え、その出力はド
ライバー337を用いてバスデータパス313に接続される。バリューポート3
33での関係した5ビット値はXORバッファ190に接続され、又、一対のド
ライバ338を用いてバスデータパス313に接続される。
そのXORバッファ190はRAM340を含み、そのRAMは、15ビット
RAMアドレス値を受け取るためのRAMアドレスポート341と、このRAM
340内で関係した位置に格納される32ビットRAMデータを与えるためのR
AMデータポート342を含む。このRAM340は概念的に32個のXORア
キュームレータバッファに分割され、それらの個々は1K32ビットワード(つ
まり4Kバイト)を含み、そして各々は上位RAMアドレス値として5ビットX
ORアキュームレータバッファ数(0ないし31)を持ちRAM340内で一組
の位置を占める。
バリューポート333での関係した5ビット値はRAMアドレスポート341
に結合され、RAM340内のアドレス用ワードに対する上位5ビットを与える
、バスアドレスパスの2ないし11ビット(つまりアドレス用ワードに対する下
位10ビット)はRAM340内のアドレス用ワードに対する下位の10ビット
を与え、そしてこれもRAMアドレスポート341に接続される。これにより、
RAM340はRAMアドレスポート341にて15ビットアドレスを受け取り
、そして32ビットデータワードをRAMデータポート342に与える。
RAMデータポート342は、ドライバ351を用いてバスデータパス313
(と同時にFIFO群350の入力)と、FIFOマルチプレクサ352の出力と
、FIFOレジスタ353の入力部とに接続される。そのFIFO群350はX
ORオペレータ354に接続される出力部を持ち、そのオペレータは、全32ビ
ットワード上でXORがパラレル動作を実行するために1組の32XORゲート
を含む。このFIFOマルチプレクサ352はXORオペレータ354の出力部
と“ゼロ”入力部355とに接続される。
ステップ221およびステップ222にあるように新しいRAIDストライプ
のためのXORアキュームレータバッファを位置させるために、タイミング及び
コントロール素子320は、CAM330にメモリ120内のメモリバッファに
対する20ビットメモリアドレス(又、無メモリバッファに対する20ビットメ
モリアドレス)をロードさせ、そして上記20ビットメモリアドレスを32XO
Rアキュームレータバッファの一つに対する5ビット識別子に関連づける。バス
アドレスパス312の2〜9ビットはアドレス入力ポート331に接続され、C
AM330に対する新しい入力のアドレスを与える。そのCAMマルチプレクサ
336はタイミング及びコントロール素子320の制御下においてタグポート3
32へ接続するためのバスデータパス313を選択する。そのCAM330は、
バス
データパス313からの12〜31ビットのバスデータ値を、特定化されたアド
レスの新しい20ビットタグをアドレス入力ポート331に、又、バスデータパ
ス313からの0〜4ビットのバスデータ値を新しい5ビット値として挿入する
。プロセッサー110は診断目的のためにCAM330内で選択されたすべてを
読むことが出来る。
ステップ223にて中位のバス160をモニターするためにタイミングおよび
コントロール素子320はタグポート332への接続のためにバスアドレスパス
312を選択する。中位バス160上に表れたメモリアドレスの上位20ビット
(または無メモリバッファ内のアドレス)がCAM330内の20ビットタグの一
つに整合するとき、CAM330はバスアドレスの12〜31ビットを整合させ
、前記20ビットタグ内の5ビット値に関係付ける。
中位バス160上のデータ値が1ワードづつFIFO群350へ読込まれるよ
うに、バスアドレスパス312の2〜11ビットはRAM340内のXORアキ
ュームレータバッファ内の個々のワードを選択するために使用されるが、関係し
た5ビット値は、RAM340内の32XORアキュームレータバッファの一つ
を選択するために用いられる。RAM340内のXORアキュームレータバッフ
ァをFIFO群350内のデータに関連づけたデータに基づきXOR動作を実行
できるように、タイミング及びコントロール素子320は、XORオペレータ3
54を通じてFIFO群350内の各ワードを、RAM340からFIFOレジ
スタ353に読込まれた対応するワードに関連して連続させる。この後、タイミ
ング及びコントロール素子320は、XOR動作の結果がRAM340内の関係
したXORアキュームレータバッファに書き戻されるようにする。
ステップ224にて蓄積されたパリティ情報を読み出すために、タイミングお
よびコントロール素子320は、RAMアドレスポート341への接続のために
バスアドレスパス312を選択し、RAM340内のXORアキュームレータバ
ッファ内の各ワードを順にバスデータパス313に読出し、一方、メモリ120
へまたはディスクドライブ140の一つに対してDMA転送が起きる。ほとんど
一般的には、DMA転送はディスクドライブ140の一つに直接に転送されるが
、もしプロセッサー110がパリティ情報を演算しなくてはならないとき、メモ
リ
120に転送できる。プロセッサー110は診断目的のために直接にRAM34
0全体を読むこともでき、あるいは他にXORバッファ190内のパリティ情報
を読むかあるいは動作することが望ましい。XORアキュームレータバッファが
一様のゼロ値にリセットされるように、タイミング及びコントロール素子320
は同時にRAM340内のXORアキュームレータバッファ内の各ワードにゼロ
値を書き込む。
XORバッファ190の内容と選択された情報との間でXOR動作を直接に行
えるように、プロセッサー110はまたRAM340内の選択された位置に直接
書き込む。これはステップ223で実行されるXOR動作に似る。しかしながら
、CAM330のバリューポート333からの5ビット値の出力のかわりに、バ
スデータパス313の12〜16ビットはRAMアドレスポート341に接続さ
れる。
好ましい実施例では、バスアドレスパス312上の値およびバスデータパス3
13は表3−1で示されるように使用される。表3−1ではアドレス範囲の値が
16進法で示され、選択されたビット幅はバスアドレス(BA)パス312および
バスデータ(BD)パス313で示される。表3−1
アドレス範囲 レジスタ リード/ライト データ/動作
000000..0000FF PCIバスレジスタリードライト PCIバスプロトコルで指定
010000..0103FF CAM入力 リードライトリード又はライトCAM入力
BA<2:9>CAM入力番号
BD<0:4>XORアキュームレータ番号
BD<12:31>メモリバッファアドレス
100000..10FFFF XORアキュームレータバッファリード XORアキュームレータバッファを
リード又はクリア
BA<12:16>XORアキュームレータバッファ番号
BD<0:31>結果
100000..10FFFF XORアキュームレータバッファライト XORをXORアキュームレータバッファ
に導く
BA<12:16>XORアキュームレータバッファ番号
BD<0:31>XORを導くための
データ
000000..FFFFFF XORアキュームレータバッファ X フライバイXORリメモリバッファ
BA<12:31>整合のための
メモリアドレス
BD<0:31>フライバイXOR
のためのデータ
200000..7FFFFF 無メモリバッファライトフライバイXORリヌルメモリバッファ
BA<12:31>整合のためのメモリアドレス
BD<0:31>フライバイXOR
のためのデータ
第2のフライバイXOR素子
図4は第2のフライバイXOR素子のブロック図を示す。
第2のフライバイXOR素子180及びXORバッファ190は第1のフライ
バイXOR素子180およびXORバッファ190と同様である。しかしながら
第1のSRAM430はCAM330の替わりに使用され、又、第2のSRAM
440はRAM340の替わりに使用される。第1のXOR素子180およびバ
ッファ190に似るが、XORバッファ190は概念的にSRAM43Oを含み
、好ましい実施例では、SRAM430は外部SRAM回路を使用して実現され
、一方、XORバッファ190の他の素子はASIC内のフライバイXOR素子
180の他の回路で実現される。
第2のフライバイXOR素子180に対するバスインタフェイス410は第1
のフライバイXOR素子180に対するバスインタフェイス310に同様であり
、第2のフライバイXOR素子180は第1のフライバイXOR素子180に対
す
るコントロール素子320と同様である。バスインタフェイス410およびタイ
ミング及びコントロール素子420は同様にフライバイXOR素子180と中位
バスとの間にインタフェイスを与える。そのインタフェイスは中位バス160に
より制御信号を伝達する1組のコントロールパス411、0〜31のバスアドレ
ス値を伝達するバスアドレス(BA)パス412、0〜31のバスデータ値を伝達
するバスデータ(BA)パス413を含む。
第1のSRAM430は5ビットワードメモリによる1メガワードを含み、そ
して第1のSRAMアドレス入力ポート431、ライトコントロール信号を受け
取るためのライトコントロール入力ポート432および確定コントロール信号と
して使用される出力データビットを与えるための確定コントロール出力ポート4
34(SRAM430に対する付加的なデータビット出力)を含む。バスアドレス
パス412の2〜21ビットはSRAMマルチプレクサ435の第1の入力部に
接続され、バスアドレスパス412の12〜31ビットはSRAMマルチプレク
サ435の第2の入力部に接続され、そしてSRAM435の出力部は第1のS
RAM入力ポート431に接続される。
タイミング及びコントロール素子420はまた確定コントロール出力ポート4
34から確定コントロール信号を受信し、そして第2のSRAM440をアドレ
スするために15ビットRAMアドレスパス(RA)と、第1のSRAM430を
制御するためのライトコントロールパス415を備える。
XORバッファ190は第2のSRAM440を含み、このSRAMは、15
ビットの第2のSRAMアドレス値を受け取るための第2のSRAMアドレス入
力ポート441および第2のSRAM440内の関係した位置に格納された32
ビットのSRAMデータバリューを受け取るために第2のSRAMデータポート
442を含む。RAM340と同様に第2のSRAM440は概念的に32個の
XORアキュームレータバッファに分割され、それらの各々は1K32ビットワ
ード(つまり4Kバイト)を含み、そして第2のSRAM440内で1組の位置を
占め、それらの各々は第2のSRAMアドレス値の上位ビットとして5ビットの
XORアキュームレータバッファ番号(0〜31)を持つ。
5ビット値を256組の20ビットタグの一つに関係づける替わりに、第1の
SRAM430は、各可能な20ビットタグに対する一つの入力、各入力に対す
る確定したビットおよび確定したビットの組、5ビット値を有するこれらの入力
に対する確定したビットを持つ。各20ビットタグは、メモリ120(または無
メモリバッファに対するアドレス)内のメモリバッファの可能な上位20ビット
アドレスを表す。各5ビット値は可能なXORアキュームレータバッファ数を表
す。
第1のSRAMデータポート433での関係した5ビット値は第2のSRAM
アドレスポート441に結合され、そして第2のSRAM440内のワードをア
ドレスするための上位5ビット値を与える。バスアドレスパス412の2〜11
ビット(つまり4ビットワードをアドレスするための下位10ビット)は、第2の
SRAM440内のワードをアドレスするための下位10ビットを与え、また、
第2のSRAMアドレスポート441に結合される。これにより、第2のSRA
M440は、第2のSRAMアドレスポート441で15ビット値を受け取り、
そして32ビットデータワードを第2のSRAMデータポート442に出力する
。
第2のSRAMデータポート42は第1のレジスタ450と、ドライバ451
を用いてバスデータパスバッファ413へ(および第2のレジスタ452へも)結
合される。第1のレジスタ450および第2のレジスタ452はXORオペレー
タ453の入力部に結合され、このオペレータは全体32ビットワード上でパラ
レルでXOR動作を実行とするための1組の32XORゲートを含む。XORオ
ペレータ453の出力および“ゼロ”入力454はXORマルチプレクサ455
の入力部に接続され、そのXORマルチプレクサ455の出力は第2のSRAM
データポート442に接続される。
ステップ223にて中位のバスをモニターするために、タイミング及びコント
ロール素子420はバスアドレスパス412を選択して、第1のSRAMアドレ
ス入力ポート431に接続する。確定したビットが上記位置にセットされ、第1
のSRAMデータポート433が20ビットメモリアドレスと関係したXORア
キュームレータバッファに対して5ビット値を与えたとき、中位バス160上に
現れるメモリアドレス(または無メモリ内のアドレス)の上位20ビットは第1の
SRAM430をアドレスするために用いられる。
関係した5ビット値は第2のSRAM440内の32XORアキュームレータ
バッファの一つを選択するために用いられ、一方、バスアドレスパス412の2
〜11ビットは、第2のSRAM440内のXORアキュームレータバッファに
ある個々のワードを選択するために用いられる。第2のSRAM440内のデー
タ値は第1のレジスタ450へ1ワードづつ読み出され、一方、データ値は中位
バス160から第2のレジスタ452へ1ワードづつコピーされる。XORオペ
レータ453は、中位バス160を横切るデータを伴うXORアキュームレータ
バッファ内のデータでXOR動作を実行する。XORオペレータ453からの出
力は、SRAMデータポート442を用いて第2のSRAM440に書き戻され
る。
第1のフライバイXOR素子180と同様に、ステップ224であるように、
蓄積されたパリティ情報を読み出すために、タイミングおよびコントロール素子
420は、第2のSRAMアドレスポート441を結合するためにバスアドレス
パス412を選択し、第2のSRAM440内のXORアキュームレータバッフ
ァ内の各ワードを順にバスデータパス413に読出し、一方、DMA転送はメモ
リ120かディスクドライブ140の一つに対して起こる。第1のフライバイX
OR素子180と同様に、プロセッサー110も、診断目的のために、あるいは
もし読み出すかXORバッファ190内のパリティ情報全体で動作させることが
望ましいならば、第2のSRAM440入力を直接に読み出すことが出来る。第
1のフライバイXOR素子180と同様に、タイミングおよびコントロール素子
420は、第2のSRAM440内のXORアキュームレータバッファにある各
ワードへゼロを同時に書き込み、XORアキュームレータバッファを一定のゼロ
値にリセットさせる。
フライバイXOR素子180と同様に、プロセッサー110は第2のSRAM
440内の選択された位置に直接書き込むこともでき、XORバッファ190の
内容と選択された情報との間でXOR動作を直接行う。
第2のフライバイXOR素子180は付随的な特徴を持つ。すなわち、XOR
アキュームレータバッファと結合できるメモリ120(又は無メモリバッファ)内
のメモリバッファ数はCAM330内の入力数に制限されないことである。この
ことは任意の幅のRAIDストライプを使用でき、これにより、32RAIDス
トライプまで同時に使用できる。第2のフライバイXOR素子180は、第1の
SRAMデータポート433の幅および第2のSRAM440のサイズを変更す
ることにより、XORアキュームレータバッファの個数を変更するために変形す
ることが出来る。
好ましい実施例では、バスアドレスパス412およびバスデータパス上の値は
表4−1に示されたように用いられる。表4−1では、アドレス範囲の値は16
進法で示され、選択されたビット範囲はバスアドレス(BA)パス312およびバ
スデータ(BD)パス313に対して示されている。表4−1
アドレス範囲 レジスタ リード/ライト データ/動作
000000..0000FF PCIバスレジスタリードライト PCIバスプロトコルで指定
010000..0103FF テーブル入力 リードライトリード又はライトテーブル入力
BA<0:4>CAMアキュームレータ番号
BD<8>テーブル他入力値
BD<12:31>メモリバッファアドレス
100000..10FFFF XORアキュームレータバッファリード XORアキュームレータバッファを
リード又はクリア
BA<12:16>XORアキュームレータバッファ番号
BD<0:31>結果
100000..10FFFF XORアキュームレータバッファライト XORをXORアキュームレータバッファ
に導く
BA<12:16>XORアキュームレータバッファ番号
BD<0:31>XORを導くための
データ
000000..FFFFFF XORアキュームレータバッファ X フライバイXORリメモリバッファ
BA<12:31>整合のための
メモリアドレス
BD<0:31>フライバイXOR
のためのデータ
200000..7FFFFF 無メモリバッファライトフライバイXORリヌルメモリバッファ
BA<12:31>整合のための
メモリアドレス
BD<0:31>フライバイXOR
のためのデータ
好ましい実施例
第1のフライバイXOR素子およびその関係したXORバッファ190および
第20のフライバイXOR素子180およびその関係したXORバッファ190
は好ましい実施例である。当業者であれば、この明細書の通読後、第1のフライ
バイXOR素子180およびその関係したXORバッファ190はいくつかの設
計の場合に好ましく、又、第2のフライバイXOR素子180及びその関係した
XORバッファ190は他の組の設計の場合に好ましいことが理解されよう。
例えば第1のフライバイXOR素子180およびその関係したXORバッファ
190は、比較的小さいが複雑なCAM330が比較的大きい追加的な外部SR
AM430より安価な場合に好ましく、一方、第2のフライバイXOR素子18
0およびその関係したXORバッファ190は、反対の状況あるいはRAIDサ
ブシステムに対するストライプが比較的広い場合に好ましい。
別の実施例
好ましい実施例をここで開示したが、本発明の内容、範囲および趣旨を留めた
種々の変形が可能であり、これらの変形は当業者がこの明細書を通読後、明白に
なるであろう。
請求の範囲
1.ストライプから少なくとも一つのデータブロックを読出すステップを含み、
前記ストライプは、大容量格納デバイス(140)の各々一つに一つの格納ブロッ
クを含み、前記読出しのステップは前記データブロックからのデータをバス(1
30,160)へ転送するステップを含み、そして、前記データブロックを前記
バスに転送する前記ステップを実行する一方、前記転送のステップを妨げること
なく、XOR動作(354,453)の結果を蓄積する方法。
2.前記読出しステップはメモリバス(130)を用いて前記データブロックをプ
ロセッサー(110)に結合したメモリ(120)へコピーすることを含み、
前記データブロックからのデータを転送する前記ステップは、前記メモリバス
よりも第2のバス(160)へデータを転送するステップを含み、そして
前記蓄積ステップは前記データブロックを第2のバスへ転送する前記ステップ
に応答する請求の範囲第1項記載の方法。
3.前記読出しステップは前記多数の大容量格納デバイスの一つからのDMA転
送(223)を開始するステップを含み、
前記データブロックを転送する前記ステップは前記DMA転送のステップを含
み、
前記蓄積ステップは前記DMA転送に応答する請求の範囲第1項記載の方法。
4.前記読出しステップは前記多数の大容量格納デバイスの一つから選択された
メモリ位置へのDMA転送(223)を開始するステップを含み、そして、
前記選択されたメモリ位置は前記メモリにより無視され、これにより、前記メ
モリ内の前記データブロックを格納することなく、前記選択されたメモリ位置へ
のDMA転送は前記結果を効果的に蓄積する請求の範囲第1項記載の方法。
5.プロセッサー(110)、メモリ(120)、前記プロセッサーおよび前記メモ
リに結合されたメモリバス(130)、多数の大容量格納デバイス(140)および
、前記多数の大容量格納デバイス(140)を前記メモリバスに結合する第2のバ
ス(160)を有するシステムにおいて、
少なくとも一つの前記大容量格納デバイスと前記メモリ内のバッファ位置との
間でDMA動作(223)を開始させ、
前記バッファ位置内の多数のアドレスに対する前記第2のバスをモニターし、
前記DMA動作を妨げることなく、前記多数のアドレスに関係したデータをX
ORバッファ(190)へコピーし、
前記データに対するXOR動作(354、453)の結果を蓄積する、
ステップを含む方法。
6.前記バッファ位置は前記メモリにより無視され、これにより前記メモリ内の
前記データを格納することなく、前記バッファ位置への前記DMA動作は効果的
に前記結果を蓄積する請求の範囲第5項記載の方法。
7.プロセッサー(110)、前記プロセッサーに結合されたメモリバス(130)
、および前記メモリバスに結合されたメモリ(120)と、
多数の大容量格納デバイス(140)および、前記多数の大容量格納デバイス(
140)を前記メモリバスに結合する第2のバス(160)であって、これにより
、前記第2のバスは前記多数の大容量格納デバイスの一つへ、又はそこから転送
するように配置された第2のバス(160)と、
前記第2のバスに結合された素子(180)であって、前記転送の動作を妨げる
ことなく、前記多数の大容量格納デバイスへ、又はそこから転送されたデータを
コピーするための手段を備え、又、前記データに対するXOR動作(345、4
53)の結果を蓄積するための手段を含む素子(180)と、
を有するシステム。
8.前記コピーするための手段は、
多数のXORアキュームレータバッファ(340,440)と、
選択されたメモリアドレスの部位を前記多数のXORアキュームレータバッフ
ァの一つに整合できるように配置されたデバイスメモリ(330、430)と、
前記メモリと前記第2のバスとに結合され、そして、前記デバイスメモリ内の
データおよび前記選択されたメモリアドレスに関係したデータに対してXOR動
作を行うために、および前記XOR動作の結果を前記デバイスメモリに書き込む
ために配置されたXORオペレータ(354、453)と、
を含む請求の範囲第7項記載のシステム。
9.前記多数の大容量格納デバイスの一つに結合されたDMA転送素子(310,
320;410,420)を含み、前記DMA転送素子は、前記DMA転送素子
により実行されたDMA転送を認識するための手段、前記DMA転送からのデー
タをコピーする手段を含み、蓄積するための前記手段は前記認識するための手段
およびDMA転送に応答する請求の範囲第7項記載のシステム。
10.前記多数の大容量格納デバイスの一つに結合されたDMA転送素子(310
,320;410,420)を含み、前記選択された大容量格納デバイスの一つ
および選択されたメモリ位置からのDMA転送を実施するように配置され、前記
選択されたメモリ位置はメモリにより無視され、これにより、前記メモリ内のデ
ータを格納することなく、前記選択されたメモリ位置へのDMA転送は効果的に
結果を蓄積する請求の範囲第7項記載のシステム。
11.プロセッサー(110)、メモリ(120)、前記プロセッサーおよび前記メ
モリに結合されたメモリバス(130)、多数の大容量格納デバイス(140)およ
び、前記多数の大容量格納デバイス(140)を前記メモリバスに結合する第2の
バス(160)を有するシステムにおいて、
データで実行されたXOR動作(345、453)の結果をそれぞれが持つ多数
のXORアキュームレータバッファ(340、440)と、
多数の入力を持つテーブルであり、各々の入力はメモリアドレスの部位を前記
多数のXORアキュームレータバッファの一つに関係させ、前記メモリアドレス
は前記データと結びついているテーブルと、
を含むデータ構造。
【図1】
【図3】
─────────────────────────────────────────────────────
フロントページの続き
(81)指定国 EP(AT,BE,CH,DE,
DK,ES,FI,FR,GB,GR,IE,IT,L
U,MC,NL,PT,SE),OA(BF,BJ,CF
,CG,CI,CM,GA,GN,ML,MR,NE,
SN,TD,TG),AP(GH,GM,KE,LS,M
W,SD,SZ,UG,ZW),EA(AM,AZ,BY
,KG,KZ,MD,RU,TJ,TM),AL,AM
,AT,AU,AZ,BA,BB,BG,BR,BY,
CA,CH,CN,CU,CZ,DE,DK,EE,E
S,FI,GB,GE,GH,GM,GW,HU,ID
,IL,IS,JP,KE,KG,KP,KR,KZ,
LC,LK,LR,LS,LT,LU,LV,MD,M
G,MK,MN,MW,MX,NO,NZ,PL,PT
,RO,RU,SD,SE,SG,SI,SK,SL,
TJ,TM,TR,TT,UA,UG,US,UZ,V
N,YU,ZW
Claims (1)
- 【特許請求の範囲】 1.ストライプから少なくとも一つのデータブロックを読出すステップを含み、 前記ストライプは、大容量格納デバイス(140)の各々一つに一つの格納ブロッ クを含み、前記読出しのステップは前記データブロックからのデータをバス(1 30,160)へ転送するステップを含み、そして、前記データブロックを前記 バスに転送する前記ステップを実行する一方、前記転送のステップを妨げること なく、XOR動作(354,453)の結果を蓄積する方法。 2.前記読出しステップはメモリバス(130)を用いて前記データブロックをプ ロセッサー(110)に結合したメモリ(120)へコピーすることを含み、 前記データブロックからのデータを転送する前記ステップは、前記メモリバス よりも第2のバス(160)へデータを転送するステップを含み、そして 前記蓄積ステップは前記データブロックを第2のバスへ転送する前記ステップ に応答する請求の範囲第1項記載の方法。 3.前記読出しステップは前記多数の大容量格納デバイスの一つからのDMA転 送(223)を開始するステップを含み、 前記データブロックを転送する前記ステップは前記DMA転送のステップを含 み、 前記蓄積ステップは前記DMA転送に応答する請求の範囲第1項記載の方法。 4.前記読出しステップは前記多数の大容量格納デバイスの一つから選択された メモリ位置へのDMA転送(223)を開始するステップを含み、そして、 前記選択されたメモリ位置は前記メモリにより無視され、これにより、前記メ モリ内の前記データブロックを格納することなく、前記選択されたメモリ位置へ のDMA転送は前記結果を効果的に蓄積する請求の範囲第1項記載の方法。 5.プロセッサー(110)、メモリ(120)、前記プロセッサーおよび前記メモ リに結合されたメモリバス(130)、多数の大容量格納デバイス(140)および 、前記多数の大容量格納デバイス(140)を前記メモリバスに結合する第2のバ ス(160)を有するシステムにおいて、 少なくとも一つの前記大容量格納デバイスと前記メモリ内のバッファ位置との 間でDMA動作(223)を開始させ、 前記バッファ位置内の多数のアドレスに対する前記第2のバスをモニターし、 前記DMA動作を妨げることなく、前記多数のアドレスに関係したデータをX ORバッファ(190)へコピーし、 前記データに対するXOR動作(354、453)の結果を蓄積する、 ステップを含む方法。 6.前記バッファ位置は前記メモリにより無視され、これにより前記メモリ内の 前記データを格納することなく、前記バッファ位置への前記DMA動作は効果的 に前記結果を蓄積する請求の範囲第5項記載の方法。 7.プロセッサー(110)、前記プロセッサーに結合されたメモリバス(130) 、および前記メモリバスに結合されたメモリ(120)と、 多数の大容量格納デバイス(140)および、前記多数の大容量格納デバイス( 140)を前記メモリバスに結合する第2のバス(160)でありの、これにより 、前記第2のバスは前記多数の大容量格納デバイスの一つへ又、はそこから転送 するように配置された第2のバス(140)と、 前記第2のバスに結合された素子(180)であって、前記転送の動作を妨げる ことなく、前記多数の大容量格納デバイスへ、又はそこから転送されたデータを コピーするための手段を備え、又、前記データに対するXOR動作(345、4 53)の結果を蓄積するための手段をふくむ素子(180)と、 を有するシステム。 8.前記コピーするための手段は、 多数のXORアキュームレータバッファ(340,440)と、 選択されたメモリアドレスの部位を前記多数のXORアキュームレータバッフ ァの一つに整合できるように配置されたデバイスメモリ(330、430)と、 前記メモリと前記第2のバスとに結合され、そして、前記デバイスメモリ内の データおよび前記選択されたメモリアドレスに関係したデータに対してXOR動 作を行うために、および前記XOR動作の結果を前記デバイスメモリに書き込む ために配置されたXORオペレータ(354、453)と、 を含む請求の範囲第7項記載のシステム。 9.前記多数の大容量格納デバイスの一つに結合されたDMA転送素子(31 0,320;410,420)を含み、前記DMA転送素子は、前記DMA転送 素子により実行されたDMA転送を認識するための手段、前記DMA転送からの データをコピーする手段を含み、蓄積するための前記手段は前記認識するための 手段およびDMA転送に応答する請求の範囲第7項記載のシステム。 10.前記多数の大容量格納デバイスの一つに結合されたDMA転送素子(31 0,320;410,420)を含み、前記選択された大容量格納デバイスの一 つおよび選択されたメモリ位置からのDMA転送を実施するように配置され、前 記選択されたメモリ位置はメモリにより無視され、これにより、前記メモリ内の データを格納するとなく、前記記選択されたメモリ位置へのDMA転送は効果的 に結果を蓄積する請求の範囲第7項記載のシステム。 11.プロセッサー(110)、メモリ(120)、前記プロセッサーおよび前記メ モリに結合されたメモリバス(130)、多数の大容量格納デバイス(140)およ び、前記多数の大容量格納デバイス(140)を前記メモリバスに結合する第2の バス(160)を有するシステムにおいて、 データで実行されたXOR動作(345、453)の結果をそれぞれが持つ多数 のXORアキュームレータバッファ(340、440)と、 多数の入力を持つテーブルであり、各々の入力はメモリアドレスの部位を前記 多数のXORアキュームレータバッファの一つに関係させ、前記メモリアドレス は前記データと結びついているテーブルと、 を含むデータ構造。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/808,396 US5950225A (en) | 1997-02-28 | 1997-02-28 | Fly-by XOR for generating parity for data gleaned from a bus |
US08/808,396 | 1997-02-28 | ||
PCT/US1998/003833 WO1998038576A1 (en) | 1997-02-28 | 1998-02-27 | Fly-by xor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000514941A true JP2000514941A (ja) | 2000-11-07 |
Family
ID=25198648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10537872A Pending JP2000514941A (ja) | 1997-02-28 | 1998-02-27 | バスから収集されたデータに対するパリティ発生フライバルxor |
Country Status (10)
Country | Link |
---|---|
US (1) | US5950225A (ja) |
EP (2) | EP0927395B1 (ja) |
JP (1) | JP2000514941A (ja) |
KR (1) | KR100352039B1 (ja) |
CN (1) | CN1242330C (ja) |
AT (1) | ATE240551T1 (ja) |
AU (1) | AU6671098A (ja) |
DE (1) | DE69814579T2 (ja) |
HK (1) | HK1020624A1 (ja) |
WO (1) | WO1998038576A1 (ja) |
Families Citing this family (129)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6138126A (en) | 1995-05-31 | 2000-10-24 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a raid disk sub-system |
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
US6161165A (en) * | 1996-11-14 | 2000-12-12 | Emc Corporation | High performance data path with XOR on the fly |
US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
US6119244A (en) | 1998-08-25 | 2000-09-12 | Network Appliance, Inc. | Coordinating persistent status information with multiple file servers |
US6343984B1 (en) * | 1998-11-30 | 2002-02-05 | Network Appliance, Inc. | Laminar flow duct cooling system |
EP1912124B8 (en) | 1999-10-14 | 2013-01-09 | Bluearc UK Limited | Apparatus and system for implementation of service functions |
US6370616B1 (en) * | 2000-04-04 | 2002-04-09 | Compaq Computer Corporation | Memory interface controller for datum raid operations with a datum multiplier |
US6728922B1 (en) | 2000-08-18 | 2004-04-27 | Network Appliance, Inc. | Dynamic data space |
US6636879B1 (en) * | 2000-08-18 | 2003-10-21 | Network Appliance, Inc. | Space allocation in a write anywhere file system |
US7072916B1 (en) | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
US6952797B1 (en) | 2000-10-25 | 2005-10-04 | Andy Kahn | Block-appended checksums |
US20020174295A1 (en) | 2001-01-29 | 2002-11-21 | Ulrich Thomas R. | Enhanced file system failure tolerance |
US7054927B2 (en) | 2001-01-29 | 2006-05-30 | Adaptec, Inc. | File system metadata describing server directory information |
US6862692B2 (en) * | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
US20020138559A1 (en) * | 2001-01-29 | 2002-09-26 | Ulrich Thomas R. | Dynamically distributed file system |
US6990667B2 (en) | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Server-independent object positioning for load balancing drives and servers |
US6990547B2 (en) * | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Replacing file system processors by hot swapping |
US6799284B1 (en) | 2001-02-28 | 2004-09-28 | Network Appliance, Inc. | Reparity bitmap RAID failure recovery |
JP4615137B2 (ja) * | 2001-03-26 | 2011-01-19 | 富士通セミコンダクター株式会社 | 同期型メモリに対するフライバイ転送を可能にするdma制御システム |
US7739614B1 (en) | 2001-05-22 | 2010-06-15 | Netapp, Inc. | System and method for consolidated reporting of characteristics for a group of directories |
US8171414B2 (en) * | 2001-05-22 | 2012-05-01 | Netapp, Inc. | System and method for consolidated reporting of characteristics for a group of file systems |
US7249150B1 (en) * | 2001-07-03 | 2007-07-24 | Network Appliance, Inc. | System and method for parallelized replay of an NVRAM log in a storage appliance |
US6944785B2 (en) * | 2001-07-23 | 2005-09-13 | Network Appliance, Inc. | High-availability cluster virtual server system |
US6757695B1 (en) | 2001-08-09 | 2004-06-29 | Network Appliance, Inc. | System and method for mounting and unmounting storage volumes in a network storage environment |
US6851070B1 (en) | 2001-08-13 | 2005-02-01 | Network Appliance, Inc. | System and method for managing time-limited long-running operations in a data storage system |
US6965989B1 (en) | 2001-08-14 | 2005-11-15 | Network Appliance, Inc. | System and method for fast reboot of a file server |
US6883131B2 (en) * | 2001-09-28 | 2005-04-19 | Sun Microsystems, Inc. | XOR processing incorporating error correction code data protection |
US20030084397A1 (en) * | 2001-10-31 | 2003-05-01 | Exanet Co. | Apparatus and method for a distributed raid |
US6851082B1 (en) | 2001-11-13 | 2005-02-01 | Network Appliance, Inc. | Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array |
US6871317B1 (en) | 2001-11-13 | 2005-03-22 | Network Appliance, Inc. | Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array |
US7346831B1 (en) | 2001-11-13 | 2008-03-18 | Network Appliance, Inc. | Parity assignment technique for parity declustering in a parity array of a storage system |
US8402346B2 (en) * | 2001-12-28 | 2013-03-19 | Netapp, Inc. | N-way parity technique for enabling recovery from up to N storage device failures |
US7640484B2 (en) | 2001-12-28 | 2009-12-29 | Netapp, Inc. | Triple parity technique for enabling efficient recovery from triple failures in a storage array |
US7613984B2 (en) * | 2001-12-28 | 2009-11-03 | Netapp, Inc. | System and method for symmetric triple parity for failing storage devices |
US7073115B2 (en) * | 2001-12-28 | 2006-07-04 | Network Appliance, Inc. | Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups |
US6993701B2 (en) * | 2001-12-28 | 2006-01-31 | Network Appliance, Inc. | Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array |
US7437727B2 (en) * | 2002-03-21 | 2008-10-14 | Network Appliance, Inc. | Method and apparatus for runtime resource deadlock avoidance in a raid system |
US7254813B2 (en) * | 2002-03-21 | 2007-08-07 | Network Appliance, Inc. | Method and apparatus for resource allocation in a raid system |
US7200715B2 (en) | 2002-03-21 | 2007-04-03 | Network Appliance, Inc. | Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes |
US7539991B2 (en) | 2002-03-21 | 2009-05-26 | Netapp, Inc. | Method and apparatus for decomposing I/O tasks in a raid system |
US7107385B2 (en) | 2002-08-09 | 2006-09-12 | Network Appliance, Inc. | Storage virtualization by layering virtual disk objects on a file system |
US7426576B1 (en) | 2002-09-20 | 2008-09-16 | Network Appliance, Inc. | Highly available DNS resolver and method for use of the same |
US7171452B1 (en) | 2002-10-31 | 2007-01-30 | Network Appliance, Inc. | System and method for monitoring cluster partner boot status over a cluster interconnect |
US7457822B1 (en) | 2002-11-01 | 2008-11-25 | Bluearc Uk Limited | Apparatus and method for hardware-based file system |
US8041735B1 (en) | 2002-11-01 | 2011-10-18 | Bluearc Uk Limited | Distributed file system and method |
US8041761B1 (en) | 2002-12-23 | 2011-10-18 | Netapp, Inc. | Virtual filer and IP space based IT configuration transitioning framework |
US7328364B1 (en) | 2003-03-21 | 2008-02-05 | Network Appliance, Inc. | Technique for coherent suspension of I/O operations in a RAID subsystem |
US7664913B2 (en) * | 2003-03-21 | 2010-02-16 | Netapp, Inc. | Query-based spares management technique |
US7424637B1 (en) | 2003-03-21 | 2008-09-09 | Networks Appliance, Inc. | Technique for managing addition of disks to a volume of a storage system |
US7457982B2 (en) * | 2003-04-11 | 2008-11-25 | Network Appliance, Inc. | Writable virtual disk of read-only snapshot file objects |
US7383378B1 (en) | 2003-04-11 | 2008-06-03 | Network Appliance, Inc. | System and method for supporting file and block access to storage object on a storage appliance |
US7260737B1 (en) | 2003-04-23 | 2007-08-21 | Network Appliance, Inc. | System and method for transport-level failover of FCP devices in a cluster |
US7739543B1 (en) | 2003-04-23 | 2010-06-15 | Netapp, Inc. | System and method for transport-level failover for loosely coupled iSCSI target devices |
US7293152B1 (en) | 2003-04-23 | 2007-11-06 | Network Appliance, Inc. | Consistent logical naming of initiator groups |
US7437530B1 (en) | 2003-04-24 | 2008-10-14 | Network Appliance, Inc. | System and method for mapping file block numbers to logical block addresses |
US7181439B1 (en) * | 2003-04-25 | 2007-02-20 | Network Appliance, Inc. | System and method for transparently accessing a virtual disk using a file-based protocol |
US7437523B1 (en) | 2003-04-25 | 2008-10-14 | Network Appliance, Inc. | System and method for on-the-fly file folding in a replicated storage system |
US7330862B1 (en) | 2003-04-25 | 2008-02-12 | Network Appliance, Inc. | Zero copy write datapath |
US7577692B1 (en) | 2003-04-25 | 2009-08-18 | Netapp, Inc. | System and method for reserving space to guarantee file writability in a file system supporting persistent consistency point images |
US7603553B1 (en) | 2003-04-25 | 2009-10-13 | Netapp, Inc. | System and method to make file handles opaque to clients |
US7523201B2 (en) * | 2003-07-14 | 2009-04-21 | Network Appliance, Inc. | System and method for optimized lun masking |
US7593996B2 (en) | 2003-07-18 | 2009-09-22 | Netapp, Inc. | System and method for establishing a peer connection using reliable RDMA primitives |
US7716323B2 (en) * | 2003-07-18 | 2010-05-11 | Netapp, Inc. | System and method for reliable peer communication in a clustered storage system |
US7055014B1 (en) | 2003-08-11 | 2006-05-30 | Network Applicance, Inc. | User interface system for a multi-protocol storage appliance |
US7647451B1 (en) | 2003-11-24 | 2010-01-12 | Netapp, Inc. | Data placement technique for striping data containers across volumes of a storage system cluster |
TWI259356B (en) * | 2004-03-26 | 2006-08-01 | Infortrend Technology Inc | Apparatus for checking data coherence, controller and storage system having the same and method therefore is disclosed |
US20060123312A1 (en) * | 2004-11-19 | 2006-06-08 | International Business Machines Corporation | Method and system for increasing parallelism of disk accesses when restoring data in a disk array system |
US7353340B2 (en) * | 2005-08-17 | 2008-04-01 | Sun Microsystems, Inc. | Multiple independent coherence planes for maintaining coherency |
US7529894B2 (en) * | 2005-08-17 | 2009-05-05 | Sun Microsystems, Inc. | Use of FBDIMM channel as memory channel and coherence channel |
US7398360B2 (en) * | 2005-08-17 | 2008-07-08 | Sun Microsystems, Inc. | Multi-socket symmetric multiprocessing (SMP) system for chip multi-threaded (CMT) processors |
US8560503B1 (en) | 2006-01-26 | 2013-10-15 | Netapp, Inc. | Content addressable storage system |
US7509460B2 (en) * | 2006-05-04 | 2009-03-24 | Sun Microsystems, Inc. | DRAM remote access cache in local memory in a distributed shared memory system |
US7844584B1 (en) | 2006-06-23 | 2010-11-30 | Netapp, Inc. | System and method for persistently storing lock state information |
US7979701B1 (en) | 2006-09-15 | 2011-07-12 | Netapp, Inc. | Cross mapping graphical interface to show encryption relationships between hosts and storage devices |
US7822921B2 (en) | 2006-10-31 | 2010-10-26 | Netapp, Inc. | System and method for optimizing write operations in storage systems |
US7613947B1 (en) | 2006-11-30 | 2009-11-03 | Netapp, Inc. | System and method for storage takeover |
US7647526B1 (en) | 2006-12-06 | 2010-01-12 | Netapp, Inc. | Reducing reconstruct input/output operations in storage systems |
US7620669B1 (en) | 2006-12-15 | 2009-11-17 | Netapp, Inc. | System and method for enhancing log performance |
US8209587B1 (en) | 2007-04-12 | 2012-06-26 | Netapp, Inc. | System and method for eliminating zeroing of disk drives in RAID arrays |
US7975102B1 (en) | 2007-08-06 | 2011-07-05 | Netapp, Inc. | Technique to avoid cascaded hot spotting |
US8495417B2 (en) * | 2009-01-09 | 2013-07-23 | Netapp, Inc. | System and method for redundancy-protected aggregates |
US8688798B1 (en) | 2009-04-03 | 2014-04-01 | Netapp, Inc. | System and method for a shared write address protocol over a remote direct memory access connection |
US9646177B2 (en) * | 2011-04-29 | 2017-05-09 | Altera Corporation | Systems and methods for preventing data remanence in memory systems |
US9524107B2 (en) | 2014-07-30 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Host-based device drivers for enhancing operations in redundant array of independent disks systems |
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
US10817388B1 (en) | 2017-07-21 | 2020-10-27 | EMC IP Holding Company LLC | Recovery of tree data in a geographically distributed environment |
US10880040B1 (en) | 2017-10-23 | 2020-12-29 | EMC IP Holding Company LLC | Scale-out distributed erasure coding |
US10382554B1 (en) | 2018-01-04 | 2019-08-13 | Emc Corporation | Handling deletes with distributed erasure coding |
US10817374B2 (en) | 2018-04-12 | 2020-10-27 | EMC IP Holding Company LLC | Meta chunks |
US10579297B2 (en) | 2018-04-27 | 2020-03-03 | EMC IP Holding Company LLC | Scaling-in for geographically diverse storage |
US11023130B2 (en) | 2018-06-15 | 2021-06-01 | EMC IP Holding Company LLC | Deleting data in a geographically diverse storage construct |
US10936196B2 (en) * | 2018-06-15 | 2021-03-02 | EMC IP Holding Company LLC | Data convolution for geographically diverse storage |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US10901635B2 (en) | 2018-12-04 | 2021-01-26 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns |
US10931777B2 (en) | 2018-12-20 | 2021-02-23 | EMC IP Holding Company LLC | Network efficient geographically diverse data storage system employing degraded chunks |
US11119683B2 (en) | 2018-12-20 | 2021-09-14 | EMC IP Holding Company LLC | Logical compaction of a degraded chunk in a geographically diverse data storage system |
US10892782B2 (en) | 2018-12-21 | 2021-01-12 | EMC IP Holding Company LLC | Flexible system and method for combining erasure-coded protection sets |
US11023331B2 (en) | 2019-01-04 | 2021-06-01 | EMC IP Holding Company LLC | Fast recovery of data in a geographically distributed storage environment |
US10942827B2 (en) | 2019-01-22 | 2021-03-09 | EMC IP Holding Company LLC | Replication of data in a geographically distributed storage environment |
US10936239B2 (en) | 2019-01-29 | 2021-03-02 | EMC IP Holding Company LLC | Cluster contraction of a mapped redundant array of independent nodes |
US10846003B2 (en) | 2019-01-29 | 2020-11-24 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage |
US10942825B2 (en) | 2019-01-29 | 2021-03-09 | EMC IP Holding Company LLC | Mitigating real node failure in a mapped redundant array of independent nodes |
US10866766B2 (en) | 2019-01-29 | 2020-12-15 | EMC IP Holding Company LLC | Affinity sensitive data convolution for data storage systems |
US11029865B2 (en) | 2019-04-03 | 2021-06-08 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes |
US10944826B2 (en) | 2019-04-03 | 2021-03-09 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a mapped redundant array of independent nodes |
US11113146B2 (en) | 2019-04-30 | 2021-09-07 | EMC IP Holding Company LLC | Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system |
US11119686B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Preservation of data during scaling of a geographically diverse data storage system |
US11121727B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Adaptive data storing for data storage systems employing erasure coding |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11209996B2 (en) | 2019-07-15 | 2021-12-28 | EMC IP Holding Company LLC | Mapped cluster stretching for increasing workload in a data storage system |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11023145B2 (en) | 2019-07-30 | 2021-06-01 | EMC IP Holding Company LLC | Hybrid mapped clusters for data storage |
US11228322B2 (en) | 2019-09-13 | 2022-01-18 | EMC IP Holding Company LLC | Rebalancing in a geographically diverse storage system employing erasure coding |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11288139B2 (en) | 2019-10-31 | 2022-03-29 | EMC IP Holding Company LLC | Two-step recovery employing erasure coding in a geographically diverse data storage system |
US11119690B2 (en) | 2019-10-31 | 2021-09-14 | EMC IP Holding Company LLC | Consolidation of protection sets in a geographically diverse data storage environment |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11144220B2 (en) | 2019-12-24 | 2021-10-12 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes |
US11231860B2 (en) | 2020-01-17 | 2022-01-25 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage with high performance |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11288229B2 (en) | 2020-05-29 | 2022-03-29 | EMC IP Holding Company LLC | Verifiable intra-cluster migration for a chunk storage system |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5146588A (en) * | 1990-11-26 | 1992-09-08 | Storage Technology Corporation | Redundancy accumulator for disk drive array memory |
US5469566A (en) * | 1992-03-12 | 1995-11-21 | Emc Corporation | Flexible parity generation circuit for intermittently generating a parity for a plurality of data channels in a redundant array of storage units |
US5335235A (en) | 1992-07-07 | 1994-08-02 | Digital Equipment Corporation | FIFO based parity generator |
US5522050A (en) * | 1993-05-28 | 1996-05-28 | International Business Machines Corporation | Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus |
US5603051A (en) * | 1995-06-06 | 1997-02-11 | Hewlett-Packard Company | Input/output processor with a local memory providing shared resources for a plurality of input/output interfaces on an I/O bus |
US5729705A (en) * | 1995-07-24 | 1998-03-17 | Symbios Logic Inc. | Method and apparatus for enhancing throughput of disk array data transfers in a controller |
US5737744A (en) * | 1995-10-13 | 1998-04-07 | Compaq Computer Corporation | Disk array controller for performing exclusive or operations |
US5742752A (en) * | 1995-12-29 | 1998-04-21 | Symbios Logic Inc. | Method for performing a RAID stripe write operation using a drive XOR command set |
US6161165A (en) * | 1996-11-14 | 2000-12-12 | Emc Corporation | High performance data path with XOR on the fly |
-
1997
- 1997-02-28 US US08/808,396 patent/US5950225A/en not_active Expired - Lifetime
-
1998
- 1998-02-27 AU AU66710/98A patent/AU6671098A/en not_active Abandoned
- 1998-02-27 JP JP10537872A patent/JP2000514941A/ja active Pending
- 1998-02-27 EP EP98908761A patent/EP0927395B1/en not_active Expired - Lifetime
- 1998-02-27 WO PCT/US1998/003833 patent/WO1998038576A1/en active IP Right Grant
- 1998-02-27 AT AT98908761T patent/ATE240551T1/de not_active IP Right Cessation
- 1998-02-27 DE DE69814579T patent/DE69814579T2/de not_active Expired - Lifetime
- 1998-02-27 KR KR10-1998-0708645A patent/KR100352039B1/ko not_active IP Right Cessation
- 1998-02-27 EP EP03000767A patent/EP1310874A3/en not_active Ceased
- 1998-02-27 CN CNB988003813A patent/CN1242330C/zh not_active Expired - Fee Related
-
1999
- 1999-11-30 HK HK99105557A patent/HK1020624A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
HK1020624A1 (en) | 2000-05-12 |
CN1222986A (zh) | 1999-07-14 |
EP1310874A2 (en) | 2003-05-14 |
EP0927395B1 (en) | 2003-05-14 |
ATE240551T1 (de) | 2003-05-15 |
CN1242330C (zh) | 2006-02-15 |
DE69814579D1 (de) | 2003-06-18 |
WO1998038576A1 (en) | 1998-09-03 |
US5950225A (en) | 1999-09-07 |
EP0927395A1 (en) | 1999-07-07 |
KR20000065071A (ko) | 2000-11-06 |
EP1310874A3 (en) | 2004-09-22 |
KR100352039B1 (ko) | 2003-01-24 |
DE69814579T2 (de) | 2004-04-01 |
AU6671098A (en) | 1998-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2000514941A (ja) | バスから収集されたデータに対するパリティ発生フライバルxor | |
JP3697395B2 (ja) | 異なるデータ構造を格納するための方法及び装置 | |
US6484234B1 (en) | Method and apparatus for efficiently destaging data from a cache to two or more non-contiguous storage locations | |
US6748486B2 (en) | Method, system, and data structures for superimposing data records in a first data format to memory in a second data format | |
US5696910A (en) | Method and apparatus for tracking transactions in a pipelined bus | |
US7617372B1 (en) | Avoiding copy on first write | |
US6408369B1 (en) | Internal copy for a storage controller | |
US6463510B1 (en) | Apparatus for identifying memory requests originating on remote I/O devices as noncacheable | |
WO1998038576A9 (en) | Fly-by xor | |
US6636927B1 (en) | Bridge device for transferring data using master-specific prefetch sizes | |
WO1996018141A1 (fr) | Systeme informatique | |
JP3187720B2 (ja) | コントローラにおけるディスクアレイデータ転送のスループットを改善する方法及び装置 | |
US4646237A (en) | Data handling system for handling data transfers between a cache memory and a main memory | |
JP3288712B2 (ja) | コンテキストデータ検索用のリンクキャッシュ | |
US5923857A (en) | Method and apparatus for ordering writeback data transfers on a bus | |
US6516343B1 (en) | Computer system and method for enhancing memory-to-memory copy transactions by utilizing multiple system control units | |
EP0979454A1 (en) | Method and apparatus for supporting multiple overlapping address spaces on a shared bus | |
US7073004B2 (en) | Method and data processing system for microprocessor communication in a cluster-based multi-processor network | |
JPH0628261A (ja) | データ転送方法及び装置 | |
EP1662400B1 (en) | Apparatus with dual writing function, and storage control apparatus | |
JPS6113633B2 (ja) | ||
JP2636760B2 (ja) | マルチプロセッサシステム | |
CA2252553C (en) | Fly-by xor for generating parity for data gleaned from a bus | |
US6317857B1 (en) | System and method for utilizing checksums to recover data | |
US20030120862A1 (en) | Controlling method of storage apparatus, and storage apparatus, disk array device, and disk controller used in the method thereof |