JP2004504658A - データ管理アーキテクチャ - Google Patents

データ管理アーキテクチャ Download PDF

Info

Publication number
JP2004504658A
JP2004504658A JP2002511051A JP2002511051A JP2004504658A JP 2004504658 A JP2004504658 A JP 2004504658A JP 2002511051 A JP2002511051 A JP 2002511051A JP 2002511051 A JP2002511051 A JP 2002511051A JP 2004504658 A JP2004504658 A JP 2004504658A
Authority
JP
Japan
Prior art keywords
coupled
xor
cache
engine
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002511051A
Other languages
English (en)
Other versions
JP2004504658A5 (ja
Inventor
マクブライド,リー
マニング,ゴードン
イラー,デイブ・エス
ウィリアムズ,リチャード
ピスチェク,マイケル
Original Assignee
データダイレクト・ネットワークス・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by データダイレクト・ネットワークス・インコーポレーテッド filed Critical データダイレクト・ネットワークス・インコーポレーテッド
Publication of JP2004504658A publication Critical patent/JP2004504658A/ja
Publication of JP2004504658A5 publication Critical patent/JP2004504658A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1054Parity-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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

XORエンジンがキャッシュのホスト/ネットワーク側に独特に配置された、性能最適化されたRAIDレベル3記憶域アクセス・コントローラ。本発明は、この独特のXOR配置と共に複数のデータ通信チャネルおよび集中化されたキャッシュ・メモリを利用して、ホスト・ネットワークとデータ記憶域との間の性能およびフォールト・トレランスを最大限にする。XORをキャッシュのホスト/ネットワーク側に配置することにより、各記憶デバイスは完全に独立することができる。XORエンジンがデータ・パス中に配置され、パリティがキャッシュ書込み転送中にリアルタイムで生成されるので、帯域幅オーバーヘッドは0になる。高性能RAIDコントローラの適用例では、最小限の帯域幅オーバーヘッドのシステム・アーキテクチャが、優れた性能を提供する。

Description

【0001】
(発明の概要)
本発明は、独特のXORエンジン配置を有する、性能が最適化されたRAIDレベル3記憶域アクセス・コントローラである。本発明は、この独特のXOR配置と共に複数のデータ通信チャネルおよび集中化されたキャッシュ・メモリを利用して、ホスト・ネットワークとデータ記憶域との間の性能およびフォールト・トレランスを最大限にする。
【0002】
(XORの概念)
RAIDシステムで使用されるXORパリティの概念は、エラー符号化およびエラー訂正(ECC)に排他的論理和(XOR)の数学的特性を利用する。パリティを計算してデータと共に記憶することにより、障害またはエラーの条件が発生したときに正しいデータを再生成する能力がRAIDシステムにもたらされる。例えば、データ・バイトAが値12(0001100)を含み、データ・バイトBが値15(00001111)を含むとする。この2つのバイトにおける各8ビットにわたってXOR機能を用いて、パリティ値3(00000011)を計算する。
00001100∧00001111=00000011
【0003】
このパリティ値は、データ・バイトAおよびBと共に記憶される。データ・バイトAを含む記憶域に障害が起きた場合は、データ・バイトBとパリティ値とのXORを計算することにより、データ・バイトAの値を再生成することができる。
00001111∧00000011=0001100
【0004】
同様に、データ・バイトBを含む記憶域に障害が起きた場合は、データ・バイトAとパリティ値とのXORを行うことにより、データ・バイトBを再生成することができる。
00001100∧00000011=0001111
【0005】
(XORのアーキテクチャ上の配置)
キャッシュ方式のRAIDレベル3システムでは、アーキテクチャ内でパリティを計算するXORエンジンを配置するために可能な位置が3つある。すなわち、
【0006】
1)キャッシュ・データ・パスの記憶域側(キャッシュと記憶デバイス・インタフェースとの間)の位置
【0007】
2)キャッシュに対する別個のポートとしての位置
【0008】
3)キャッシュ・データ・パスのホスト・ネットワーク側(キャッシュとホスト・ネットワーク・インタフェースとの間)の位置
【0009】
図1に示すようにXORエンジンをキャッシュの記憶域側に配置することは、ハードウェアの視点から、XORエンジンを配置するのに最も容易な位置である。しかし、この解決法には、性能に関する重大な欠点がある。データが記憶デバイスに書き込まれるときにパリティが生成されて記憶されるので、ホスト入出力コマンドに関係するすべての記憶デバイスは、共にコマンド同期化されていなければならない。すなわち、これらがすべて同じ入出力コマンドを実行していなければならない。コマンド同期化された1組の記憶デバイスのうちで最も遅いデバイスがシステム帯域幅を決定するので、このことはシステム性能に悪影響を及ぼす可能性がある。ランダム・ファイル転送の場合のように、RAIDシステムの記憶デバイスが多量の「シーク」を実行しているとき、これは格別に大きな性能上の問題である。
【0010】
図2に示すように、XORエンジンをキャッシュに対する別個のポートとして配置すると、データが記憶デバイスに書き込まれる前にパリティが別個のオペレーションとして生成されるので、各記憶デバイスを完全に独立とする、すなわちコマンド非同期とすることができる。記憶デバイスがデータ転送を開始するのに互いに待つ必要がないとき、独立した入出力オペレーションの連続を発行することができる。この構成では、XORポートは、ソフトウェアXOR実装とすることもでき(CPUがデータを読み取ってXORを行い、パリティを生成する)、ハードウェアXOR実装とすることもできる(専用ハードウェア回路がデータを読み取ってXORを行い、パリティを生成する)。ハードウェア設計の視点からは、このアーキテクチャは、独立した3つのポート、すなわちホスト/ネットワークと記憶デバイスとXORエンジンとからキャッシュにアクセス可能でなければならない点で、かなり一層複雑である。データをキャッシュからXORポートにルーティングしてパリティを生成し、その後キャッシュに戻さなければならないので、キャッシュの総帯域幅の3分の1以上がこのオペレーションの実行のために犠牲になる。
【0011】
図3に示すように、XORエンジンをキャッシュのホスト/ネットワーク側に配置すると、各記憶デバイスは完全に独立することができる。XORエンジンがデータ・パス中に配置され、パリティがキャッシュ書込み転送中にリアルタイムで生成されるので、帯域幅オーバーヘッドは0になる。高性能RAIDコントローラの適用例では、最小限の帯域幅オーバーヘッドのシステム・アーキテクチャが、優れた性能を提供する。
【0012】
従来技術のRAIDシステム・アーキテクチャでは、図1に関して上述したように、XORエンジンをキャッシュの記憶域インタフェース側に配置する。記憶デバイス間のコマンド同期が必要とされるため、このアーキテクチャの性能は、コマンド同期化された1組の記憶デバイスにおける最悪の場合のシーク・タイムに直接に結び付く。さらに、現行技術の記憶デバイスは、コマンドタグ・キューイングと呼ばれる機能を実装する。このオペレーションは、記憶デバイスが入出力コマンドのキューに作用することを可能にするものであり、これにより記憶デバイスは、最も効率的な順序で入出力命令を実行して、帯域幅効率をさらに高めることができる。しかし、従来技術のアーキテクチャで必要とされるコマンド同期のために、コマンドタグ・キューイングを完全に利用して性能を高めることができない。
【0013】
(性能が最適化されたRAID3記憶域アクセス・コントローラの発明)
本発明による記憶域アクセス・コントローラでは、図3に示すようにXORエンジンをキャッシュのホスト/ネットワーク側に配置する新規な配置により、図1および2に示したXOR配置の欠陥が除去される。XORエンジンがキャッシュのホスト/ネットワーク側に位置するので、パリティは、データがホスト・ネットワークから受け取られるときにリアルタイムで計算され、データと共にキャッシュに記憶される。データが記憶デバイスに転送されるとき、すべての記憶デバイス通信チャネルは、それらの最大帯域幅を利用してコマンド非同期で稼動することができる。
【0014】
本発明によるアーキテクチャでは、もはや各記憶デバイスのコマンドが同期化されないので、この場合、コマンドタグ・キューイングを使用してシステム性能をさらに高めることができる。本発明のこの特性は、記憶デバイスの層が追加されたときはより重要になる。記憶デバイスの層が複数あるとき、本発明は、「シーク」が隠れた状態になるので、すなわち帯域幅オーバーヘッドにトランスペアレントになるので、優れた性能を提供する。別の記憶デバイスが通信チャネルを介してキャッシュ・メモリとの間でデータを転送している間に、1つまたは多くの記憶デバイスがそれ自体のデータを「シーク」していることが可能である。シークおよびアクティブ通信に関するこの時間多重方式により、本発明によるアーキテクチャは、従来技術のアーキテクチャよりも性能が優れている。XORエンジンをキャッシュのホスト・ネットワーク側に配置するこの独特の配置は、性能をもたらす本発明の特性である。
【0015】
(発明の詳細な説明)
性能が最適化された記憶域アクセス・コントローラである本発明は、集中化されたデータ・キャッシュのホスト/ネットワーク側にパリティXORエンジンが位置するRAIDコントローラである。XORディジタル回路の独特の位置により、本発明は、最小限のパリティ計算オーバーヘッドでデータ転送帯域幅を最大限にすることができる。
【0016】
(ホスト/ネットワーク・インタフェース)
図3を参照するが、本発明は、XORエンジン33と通信するホスト/ネットワーク・インタフェース31、ならびに、XORエンジン33と記憶デバイス・インタフェース37の両方と通信する中央キャッシュ・メモリ35を利用する。図4に示すように、記憶マネージャ41が、入出力コマンドのデコーダ機能および制御機能を提供し、中央キャッシュ・メモリの割振りおよび利用を管理する。ホスト/ネットワーク・インタフェース31は、ホスト・コンピュータまたはコンピュータ・ネットワークへの通信インタフェースである。一実施形態では、本発明は、SCSIコマンド・セットを利用するANSIX3T11ファイバ・チャネル・インタフェースをフロント・エンドで維持するが、その他のインタフェースとプロトコルの組合せで置き換えてもよい(TCP/IP、ETHERNET(登録商標)、INFINIBANDなど)。このインタフェースのバック・エンドは、64データ・ビットからなる双方向並列データ・バスである。その他のデータ・バス幅も、モジュロ2(2、4、8、16、32、...)である限り使用することができる。ホスト/ネットワーク・インタフェース31は、ファイバ・チャネル・コマンドをデータ・コマンドおよび非データ・コマンドに変換しデコードする。非データ・コマンドは、記憶マネージャによってさらにデコードされるようにバッファに入れられ、データ・コマンドは、ホスト読取りオペレーションおよびホスト書込みオペレーションのためにデコードされる。ホスト書込みコマンドは、データをホスト/ネットワーク・インタフェース31からXORエンジン33にルーティングし、ホスト読取りコマンドは、キャッシュ・メモリ35からXORエンジンを介してホスト・ネットワーク・インタフェース33に転送をセットアップする。
【0017】
これに関して図5を参照するが、ホスト/ネットワーク・インタフェース31は、カスタムASIC(特定用途向け集積回路)内に実装される。このASICは、物理インタフェース51(例えばLSI Logic Inc.のGigablaze(商標)トランシーバ)と、プロトコル・エンジン53(LSI Logic Inc.のMerlin(商標)Fibre Channelコアで実装される)とを利用する。送信バッファ55aおよび受信バッファ55bは、アドレス・モードを制御するためのカスタム論理回路を有するデュアルポートSRAMセルによって実装される。これらのカスタム論理回路は、標準的な2進カウンタで実装することができる。一実施形態では、15ビットの2進カウンタを使用してバッファの書込みアドレスを計算し、15ビットのカウンタを使用して読取りアドレスを計算する。書込みカウンタはFIFO書込みによってインクリメントし、読取りカウンタはFIFO読取りによってインクリメントする。送信バッファの深度は10KBであり、受信バッファの深度は12KBである。ホスト/ネットワーク・インタフェース31は、53.125MHzで稼動する32ビットMIPS(商標)ISAなどのマイクロコントローラ55の制御下で動作する。このマイクロコントローラは、LSI Logic Inc.から入手可能なTinyRISC(商標)コアを使用して実装することができる。マイクロコントローラ63は、内部8Kx32SRAMによってサポートされ、また、記憶マネージャへのプロセッサ間通信のためのIDT70V25 8Kx16デュアルポートSRAM61によって外部からサポートされる。
【0018】
(XORエンジン)
XORエンジン33は、前述のように、ホスト/ネットワーク・インタフェース31と中央キャッシュ・メモリ35との間にある。XORエンジンは、XORパリティの生成、XORパリティのチェック、正しくないデータの再生成すなわちエラー訂正の、3つの機能を実施する。XORエンジンは、パイプライン化されたレジスタ・セットを使用して、データ転送中にリアルタイムで計算、チェック、訂正を行うことができる。図6を参照すると、この図は本発明で使用するのに適したXORエンジンの一実施形態のブロック図を示している。XORエンジンは、ホスト/ネットワーク・インタフェースからトランシーバ65を介して双方向64ビット・バスを受け取る。ホスト書込みデータ転送中は、XORエンジンは、ホスト/ネットワーク・インタフェースからの64データ・ビットのXORを行うことによって8ビットのパリティ・バイトを計算する。
【0019】
このXORバイトは次のように計算される。
【0020】
パリティ・ビット[00]=D[00]∧D[08]∧D[16]∧D[24]∧D[32]∧D[40]∧D[48]∧D[56]
【0021】
パリティ・ビット[01]=D[01]∧D[09]∧D[17]∧D[25]∧D[33]∧D[41]∧D[49]∧D[57]
【0022】
パリティ・ビット[02]=D[02]∧D[10]∧D[18]∧D[26]∧D[34]∧D[42]∧D[50]∧D[58]
【0023】
パリティ・ビット[03]=D[03]∧D[11]∧D[19]∧D[27]∧D[35]∧D[43]∧D[51]∧D[59]
【0024】
パリティ・ビット[04]=D[04]∧D[12]∧D[20]∧D[28]∧D[36]∧D[44]∧D[52]∧D[60]
【0025】
パリティ・ビット[05]=D[05]∧D[13]∧D[21]∧D[29]∧D[37]∧D[45]∧D[53]∧D[61]
【0026】
パリティ・ビット[06]=D[06]∧D[14]∧D[22]∧D[30]∧D[38]∧D[46]∧D[54]∧D[62]
【0027】
パリティ・ビット[07]=D[07]∧D[15]∧D[23]∧D[31]∧D[39]∧D[47]∧D[55]∧D[63]
【0028】
次いで、XORパリティ・バイトを64ビット・データ・ワードに付加して、72ビット・ワードを生成する。これを、72ビット・データ・バスでキャッシュ・メモリに直接転送する。さらに、72ビット・バスの9つの各データ・バイトを保護するために、標準バイト・パリティも追加する。
【0029】
ホスト読取り転送中は、同じ72ビット・データ・バス上で、72データ・ビットをキャッシュ・メモリから受け取る。XORエンジンは、ホスト書込みXORと同じXORアルゴリズムを使用して、下位64データ・ビットに対するXORパリティを計算する。次いで、以下の式に従って、計算したXORパリティ・バイトと72ビット・データ・バスの上位バイトとのXORを行う。
【0030】
エラー・ビット[00]=D[64]∧パリティ・ビット[00]
【0031】
エラー・ビット[01]=D[65]∧パリティ・ビット[01]
【0032】
エラー・ビット[02]=D[66]∧パリティ・ビット[02]
【0033】
エラー・ビット[03]=D[67]∧パリティ・ビット[03]
【0034】
エラー・ビット[04]=D[68]∧パリティ・ビット[04]
【0035】
エラー・ビット[05]=D[69]∧パリティ・ビット[05]
【0036】
エラー・ビット[06]=D[70]∧パリティ・ビット[06]
【0037】
エラー・ビット[07]=D[71]∧パリティ・ビット[07]
【0038】
エラー・ビットのいずれかが0でない場合、XORパリティ・エラーが示される。この場合は、バイト・パリティ・ビットをデコードするか、あるいは記憶デバイスに照会することにより、エラーをバイト・グループに局所化することができる。エラーが検出され、エラーのバイト・レーンがデコードされた場合、XORエンジンは、XORパリティ再生成器と共に置換マルチプレクサを備えることによってエラー訂正が可能になる。
【0039】
データ再生成の場合、エラーのバイト・レーンをパリティ・バイト(D[71:64])で置換し、次いでこの64ビット・ワードに対してパリティを再計算する。得られる8ビット・コードが、エラーのバイト・レーンに対する再生成されたデータ・バイトである。次いで、このデータを適切なバイト・レーン中に代用して、64ビット双方向データ・バスを介してホスト/ネットワーク・インタフェースに64ビット・ワードとして転送する。
【0040】
これに関して図6を参照するが、XORエンジン33は、標準的な2入力ブール排他的論理和(XOR)ゲートを使用してRX XOR77およびTX XOR73の機能を実装できるカスタムASICを利用する。同様に、障害条件にある排他的論理和パリティ・データを再生成するのに使用されるXOR再生成器69も、同じ標準的な2入力ブールXORゲートを使用して実装することができる。パリティ・エラー検出器75もまた、パリティ・データの各ビットを8つの送信生成されたXORビットの各ビットでチェックするように配線された2入力XORゲートのアレイで実装することができる。
【0041】
レーンMUX71およびパリティ置換MUX67は、マルチプレクサを使用して実装される。レーンMUXは、FAIL CH.SELECT入力で示す4ビット選択コードを伴う8つの9:1マルチプレクサとして配線される。これらの入力信号は、記憶デバイス・インタフェース37へのデータ・チャネルのいずれかに欠陥があるときは常に生成される。パリティ置換MUXは、64個の2:1マルチプレクサとして実装することができ、正しい64ビット・データをトランシーバ65から直接選択するか、あるいは再生成された64ビット・データをXOR再生成器69から選択するようにすることができる。
【0042】
トランシーバ65および79は、トライステート可能の双方向入出力バッファを使用して実装することができる。
【0043】
(中央キャッシュ・メモリ35)
中央キャッシュ・メモリは、RAIDレベル3ストライピングを実施する固体デュアル・ポート・メモリ・アレイであり、図7にこれを示す。キャッシュ・メモリは、XORエンジンと通信するための72ビットの双方向バス81と、各記憶デバイス・インタフェースと通信するための個別の64ビット双方向バス83とを有する。また、サポートされる記憶インタフェース数はモジュロ2でなければならず、それに加えて、XORパリティをサポートするためのものが少なくとも1つなければならない。本発明による記憶域アクセス・コントローラは、データ用の記憶インタフェース85を8つ、パリティ用の記憶インタフェース87を1つ、フォールト・トレランス予備用にマッピング可能記憶インタフェース87を1つ維持する。この構成を「8+1+1」と呼ぶ。
【0044】
図8を参照するが、ホスト/ネットワーク書込み中は、XORエンジンからの72ビットのデータが、中央キャッシュ・メモリにおいて一連のバス・エキスパンダ91中で受け取られる。これらのバス・エキスパンダの機能は、72ビット・バスを9バイト・レーンに分割することである。次いで、各バイト・レーンを時間逆多重化して、64ビット・バス93を構築することができる。この結果、9つの64ビット幅バスとなり、各バスはそれ自体のキャッシュ・メモリ・セグメントにフィードする。各64ビット・バスは、デュアル・ポート・メモリ・アレイ・セグメント95の「A」ポートにフィードする。この時間逆多重化の機能を入来データに対して実施することにより、データが中央キャッシュ・メモリ・アレイに記憶されるときに、RAIDレベル3ストライピング済みデータが生み出される。
【0045】
すべてのRAID3データがキャッシュ中にある状態になれば、データは、標準的な双方向トランシーバ・デバイスによって実装されるレジスタド・バッファ99を介し、メモリ・セグメントの「B」ポートを介して、記憶デバイス・インタフェースからアクセス可能になる。特定の入出力コマンドに関するすべてのデータがキャッシュ内にあるので、各記憶デバイス・インタフェースは今や、それらのメモリ・セグメント上で独立して動作することができる。この特徴により、本発明は、コマンドタグ・キューイングなどの高度なディスク・ドライブ機能を利用することができ、読取りおよび書込みのインターリーブおよび並べ替えを行うことによって記憶デバイスの性能を最大限にする。
【0046】
ホスト/ネットワーク読取り機能の間は、各記憶デバイス・インタフェースは、それら自体のコマンド・キューに従って、それらに割り当てられたデータ・ブロックを独立して記憶デバイスから読み取る。この入出力コマンドに関連するデータがすべての記憶デバイス・インタフェースから「B」ポートを介してキャッシュに転送されると、キャッシュからXORエンジンを介してホスト/ネットワーク・インタフェースへの転送が開始される。データは、「A」ポートを介してメモリ・セグメントから取り出される。64ビット・バスはバス・ファネル97中にフィードされ、バス・ファネル97はデータを8ビット・バス上に時間多重化する。これらの8ビット・バスまたはバイト・レーンは、共に連結して72ビット・バスを形成し、XORマシンにフィードする。
【0047】
(記憶デバイス・インタフェース37)
記憶デバイス・インタフェース37は、中央キャッシュ・メモリの個々のキャッシュ・メモリ・セグメント85と記憶デバイスとの間でデータを転送する通信インタフェースである。一実施形態では、本発明による記憶域アクセス・コントローラは、このインタフェースのためにファイバ・チャネルをSCSIプロトコルで使用するが、記憶デバイスによってサポートされるその他のインタフェースおよびプロトコルを使用することもできる。記憶デバイス・インタフェースは、64ビット双方向バスを介してキャッシュ・メモリ・セグメントと通信し、64ビット・バスを記憶デバイスに必要なプロトコルに変換するためのプロトコル・スタックを管理する。
【0048】
図9に示すように、記憶デバイス・インタフェース37は、ホスト/ネットワーク・インタフェースに使用されるのと同じカスタムASICデバイスを利用する。これは、物理インタフェース107用のGigablaze(商標)トランシーバと、プロトコル・エンジン105用のMerlin(商標)Fibre Channelコアと、マイクロコントローラ111用のTinyRISC(商標)MIPsプロセッサを備える。マイクロコントローラは、8Kワードの内部SRAMによってサポートされる。受信バッファおよび送信バッファが、内部デュアル・ポートSRAMセル103Aおよび103Bとして実装され、インタフェース・バッファ101は標準的なASIC入出力バッファ・セルである。記憶マネージャとのプロセッサ間通信のために、外部IDT70V25 8Kx16デュアルポートSRAMを利用する。
【0049】
(記憶マネージャ)
図4に関して上述したように、記憶マネージャ41は、ホスト/ネットワーク・インタフェースと記憶デバイス・インタフェースの両方にアクセスできるディジタル・コンピュータ・サブシステムである。記憶マネージャは、ホスト/ネットワーク・インタフェースによって解析されたホスト/ネットワーク・インタフェース・コマンドをデコードすることを担う。これらのコマンドに応答して、中央キャッシュとネットワーク・インタフェースおよび記憶インタフェースとの間のデータ・トラフィックを指示するための制御情報を、ホスト/ネットワーク・インタフェースと記憶デバイス・インタフェースの両方に送る。このサブシステムはまた、キャッシュ・メモリ空間の割振りおよび管理を行うためのキャッシュ機能も提供する。
【0050】
図10に示すように、記憶マネージャ41は、FT−64010システム・コントローラ123とI82558Ethernet(登録商標)コントローラ125とによってサポートされる、100MHz MIPS(商標)64ビット・マイクロプロセッサ(IDT4650)などのマイクロプロセッサ121を利用する。プロセッサRAMが、16MBのファスト・ページ・モード・ダイナミック・ランダム・アクセス・メモリ(DRAM)127によって実装され、ROM129が、4MBのFLASHメモリによって実装される。システム通信ポート131が16550UARTによってサポートされ、ホスト・ネットワーク・インタフェースおよび記憶インタフェースへの通信は、標準的な双方向トランシーバを介して行われる。
【図面の簡単な説明】
【図1】従来技術のRAIDレベル3記憶域アクセス・コントローラ・アーキテクチャを示すブロック図である。
【図2】代替RAIDレベル3記憶域アクセス・コントローラ・アーキテクチャを示すブロック図である。
【図3】本発明によるRAIDレベル3記憶域アクセス・コントローラ・アーキテクチャを示すブロック図である。
【図4】本発明で使用できるタイプの記憶域アクセス・コントローラのブロック・レベル図である。
【図5】本発明で使用できるタイプのホスト/ネットワーク・インタフェースのブロック・レベル図である。
【図6】本発明で使用できるタイプのXORエンジンのブロック・レベル図である。
【図7】本発明で使用できるタイプの中央キャッシュ・メモリのブロック・レベル図である。
【図8】図7の中央キャッシュ・メモリ中で使用するタイプのキャッシュ・セグメントのブロック・レベル図である。
【図9】本発明で使用できるタイプの記憶デバイス・インタフェースのブロック・レベル図である。
【図10】本発明で使用できるタイプの記憶マネージャのブロック・レベル図である。

Claims (7)

  1. a)XORエンジンと、
    b)前記XORエンジンに結合され、ホスト・コンピュータ・システムに結合するためのホスト・ネットワーク・インタフェースと、
    c)前記XORエンジンに結合されたキャッシュと、
    d)前記キャッシュに結合され、複数の記憶デバイスに結合するための記憶デバイス・インタフェースとを備えるデータ管理アーキテクチャ。
  2. 前記XORエンジンが、
    a)前記ホスト・ネットワーク・インタフェースに結合された第1のトランシーバと、
    b)i)前記データを使用してXORパリティ・バイトを生成し、かつ前記パリティ・バイトを前記データに付加し、ii)XORパリティをチェックし、iii)検出されたパリティ・エラーを訂正するための論理手段と、
    c)前記キャッシュに結合された第2のトランシーバとを備える請求項1に記載のデータ管理アーキテクチャ。
  3. 前記ホスト・ネットワーク・インタフェースが、
    a)物理インタフェースと、
    b)前記物理インタフェースに結合されたプロトコル・エンジンと、
    c)前記プロトコル・エンジンに結合された受信バッファと、
    d)前記プロトコル・エンジンに結合された送信バッファと、
    e)前記送信バッファおよび受信バッファに結合されたインタフェース・バッファと、
    f)前記プロトコル・エンジンに結合されたバスと、
    g)前記バスに結合されたマイクロコントローラと、
    h)前記バスに結合されたメモリとを備える請求項1に記載のデータ管理アーキテクチャ。
  4. 前記キャッシュが、
    複数のキャッシュ・セグメントを含み、前記キャッシュ・セグメントがそれぞれ、i)デュアル・ポート・メモリ・アレイ、ii)前記XORエンジンと前記デュアル・ポート・メモリ・アレイとの間に結合されたバス・エキスパンダ、iii)前記XORエンジンと前記デュアル・ポート・メモリ・アレイとの間に結合されたバス・ファネル、およびiv)前記記憶デバイス・インタフェースと前記デュアル・ポート・メモリとの間に結合されたバッファを備える請求項1に記載のデータ管理アーキテクチャ。
  5. 前記記憶デバイス・インタフェースが、
    a)物理インタフェースと、
    b)前記物理インタフェースに結合されたプロトコル・エンジンと、
    c)前記プロトコル・エンジンに結合された受信バッファと、
    d)前記プロトコル・エンジンに結合された送信バッファと、
    e)前記送信バッファおよび受信バッファに結合されたインタフェース・バッファと、
    f)前記プロトコル・エンジンに結合されたバスと、
    g)前記バスに結合されたマイクロコントローラと、
    h)前記バスに結合されたメモリとを備える請求項1に記載のデータ管理アーキテクチャ。
  6. a)XORエンジンと、
    b)前記XORエンジンに結合され、ホスト・コンピュータ・システムに結合するためのホスト・ネットワーク・インタフェースと、
    c)前記XORエンジンに結合されたキャッシュと、
    d)前記キャッシュに結合され、複数の記憶デバイスに結合するための記憶デバイス・インタフェースとを備えるデータ管理アーキテクチャであって、
    前記XORエンジンが、
    前記ホスト・ネットワーク・インタフェースに結合された第1のトランシーバと、
    i)前記データを使用してXORパリティ・バイトを生成し、かつ前記パリティ・バイトを前記データに付加し、ii)XORパリティをチェックし、iii)検出されたパリティ・エラーを訂正するための論理手段と、
    前記キャッシュに結合された第2のトランシーバとを備える、データ管理アーキテクチャ。
  7. a)XORエンジンと、
    b)前記XORエンジンに結合され、ホスト・コンピュータ・システムに結合するためのホスト・ネットワーク・インタフェースと、
    c)前記XORエンジンに結合され、複数のキャッシュ・セグメントを含むキャッシュであって、前記キャッシュ・セグメントがそれぞれ、i)デュアル・ポート・メモリ・アレイ、ii)前記XORエンジンと前記デュアル・ポート・メモリ・アレイとの間に結合されたバス・エキスパンダ、iii)前記XORエンジンと前記デュアル・ポート・メモリ・アレイとの間に結合されたバス・ファネル、およびiv)前記記憶デバイス・インタフェースと前記デュアル・ポート・メモリとの間に結合されたバッファを備えるキャッシュと、
    d)前記キャッシュに結合され、複数の記憶デバイスに結合するための記憶デバイス・インタフェースとを備えるデータ管理アーキテクチャであって、
    前記XORエンジンが、
    前記ホスト・ネットワーク・インタフェースに結合された第1のトランシーバと、
    i)前記データを使用してXORパリティ・バイトを生成し、かつ前記パリティ・バイトを前記データに付加し、ii)XORパリティをチェックし、iii)検出されたパリティ・エラーを訂正するための論理手段と、
    前記キャッシュに結合された第2のトランシーバとを備える、データ管理アーキテクチャ。
JP2002511051A 2000-06-15 2001-06-15 データ管理アーキテクチャ Pending JP2004504658A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US21208500P 2000-06-15 2000-06-15
US09/882,471 US7127668B2 (en) 2000-06-15 2001-06-14 Data management architecture
PCT/US2001/041002 WO2001096987A2 (en) 2000-06-15 2001-06-15 Data management architecture

Publications (2)

Publication Number Publication Date
JP2004504658A true JP2004504658A (ja) 2004-02-12
JP2004504658A5 JP2004504658A5 (ja) 2008-08-14

Family

ID=26906755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002511051A Pending JP2004504658A (ja) 2000-06-15 2001-06-15 データ管理アーキテクチャ

Country Status (4)

Country Link
US (1) US7127668B2 (ja)
JP (1) JP2004504658A (ja)
AU (1) AU2001275540A1 (ja)
WO (1) WO2001096987A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011518392A (ja) * 2008-04-22 2011-06-23 エルエスアイ コーポレーション ドライブアレイにおける分散キャッシュシステム

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
USRE42761E1 (en) 1997-12-31 2011-09-27 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US7844687B1 (en) 1999-10-06 2010-11-30 Gelvin David C Method for internetworked hybrid wireless integrated network sensors (WINS)
US6950966B2 (en) * 2001-07-17 2005-09-27 Seachange International, Inc. Data transmission from raid services
FR2879337A1 (fr) * 2004-12-15 2006-06-16 St Microelectronics Sa Circuit memoire, tel que dram, comportant un mecanisme correcteur d'erreur
TWI285313B (en) * 2005-06-22 2007-08-11 Accusys Inc XOR circuit, RAID device capable of recover a plurality of failures and method thereof
US7676607B2 (en) * 2005-12-08 2010-03-09 Electronics And Telecommunications Research Institute Hardware acceleration apparatus for iSCSI target system using TOE and method for performing read/write command using the apparatus
US8020074B2 (en) * 2007-08-24 2011-09-13 Datadirect Networks, Inc. Method for auto-correction of errors in a RAID memory system
US8181089B1 (en) 2007-08-24 2012-05-15 Datadirect Networks, Inc. Method for auto-correction of errors in a solid-state memory system
US7917810B2 (en) * 2007-10-17 2011-03-29 Datadirect Networks, Inc. Method for detecting problematic disk drives and disk channels in a RAID memory system based on command processing latency
US8095763B2 (en) * 2007-10-18 2012-01-10 Datadirect Networks, Inc. Method for reducing latency in a raid memory system while maintaining data integrity
US8661218B1 (en) 2007-10-18 2014-02-25 Datadirect Networks, Inc. Method for reducing latency in a solid-state memory system while maintaining data integrity
US7877626B2 (en) * 2007-12-31 2011-01-25 Datadirect Networks, Inc. Method and system for disk storage devices rebuild in a data storage system
US8285919B2 (en) * 2008-05-27 2012-10-09 Initio Corporation SSD with improved bad block management
US20090307416A1 (en) * 2008-06-04 2009-12-10 Intitio Corporation Ssd with a controller accelerator
US8949549B2 (en) * 2008-11-26 2015-02-03 Microsoft Corporation Management of ownership control and data movement in shared-memory systems
US9118351B2 (en) 2012-02-15 2015-08-25 Infineon Technologies Ag System and method for signature-based redundancy comparison
US8959420B1 (en) 2012-12-19 2015-02-17 Datadirect Networks, Inc. Data storage system and method for data migration between high-performance computing architectures and data storage devices using memory controller with embedded XOR capability
US9639457B1 (en) 2012-12-20 2017-05-02 Datadirect Networks, Inc. Data storage system and method for data migration between high-performance computing architectures and data storage devices using storage controller with distributed XOR capability
WO2016058262A1 (zh) * 2014-12-16 2016-04-21 深圳赛思鹏科技发展有限公司 一种基于二进制域里德所罗门码的数据编解码方法
US20180039425A1 (en) * 2016-08-02 2018-02-08 Alibaba Group Holding Limited Method and apparatus for improved flash memory storage latency and robustness
US11630725B2 (en) * 2019-12-24 2023-04-18 Micron Technology, Inc. Management of parity data in a memory sub-system
US11782824B2 (en) 2022-02-08 2023-10-10 Macronix International Co., Ltd. Universal data path architecture for different data array

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01150953A (ja) * 1987-12-08 1989-06-13 Matsushita Electric Ind Co Ltd ディスクキャッシュ装置
JPH0612855A (ja) * 1992-05-02 1994-01-21 Stc Internatl Computers Ltd ディスクドライブアレイ
JPH0822379A (ja) * 1994-07-08 1996-01-23 Hitachi Ltd ディスクアレイ装置
JPH10333840A (ja) * 1997-06-03 1998-12-18 Sony Corp データ記録再生装置及びデータ記録再生方法
JPH11167521A (ja) * 1993-06-30 1999-06-22 Hitachi Ltd 記憶システム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4823347A (en) * 1987-05-18 1989-04-18 International Business Machines Corporation Deferred parity checking of control signals across a bidirectional data transmission interface
US5045998A (en) * 1988-05-26 1991-09-03 International Business Machines Corporation Method and apparatus for selectively posting write cycles using the 82385 cache controller
US5146588A (en) * 1990-11-26 1992-09-08 Storage Technology Corporation Redundancy accumulator for disk drive array memory
JPH0820964B2 (ja) * 1991-09-13 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション メモリ制御装置および方法
US5455939A (en) * 1992-06-17 1995-10-03 Intel Corporation Method and apparatus for error detection and correction of data transferred between a CPU and system memory
US5388108A (en) * 1992-10-23 1995-02-07 Ncr Corporation Delayed initiation of read-modify-write parity operations in a raid level 5 disk array
US5668971A (en) * 1992-12-01 1997-09-16 Compaq Computer Corporation Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer
EP0612015A1 (en) * 1993-02-16 1994-08-24 International Business Machines Corporation Improved disk array system having special parity groups for data blocks with high update activity
US5463772A (en) * 1993-04-23 1995-10-31 Hewlett-Packard Company Transparent peripheral file systems with on-board compression, decompression, and space management
JPH07134635A (ja) * 1993-11-10 1995-05-23 Nec Eng Ltd ディスクアレイ装置
US5396620A (en) * 1993-12-21 1995-03-07 Storage Technology Corporation Method for writing specific values last into data storage groups containing redundancy
US5594862A (en) * 1994-07-20 1997-01-14 Emc Corporation XOR controller for a storage subsystem
US5412668A (en) * 1994-09-22 1995-05-02 International Business Machines Corporation Parity striping feature for optical disks
US5574882A (en) * 1995-03-03 1996-11-12 International Business Machines Corporation System and method for identifying inconsistent parity in an array of storage
US5774641A (en) * 1995-09-14 1998-06-30 International Business Machines Corporation Computer storage drive array with command initiation at respective drives
US5737744A (en) * 1995-10-13 1998-04-07 Compaq Computer Corporation Disk array controller for performing exclusive or operations
US5883909A (en) * 1996-11-06 1999-03-16 Lsi Logic Corporation Method and apparatus for reducing data transfers across a memory bus of a disk array controller
US6161165A (en) * 1996-11-14 2000-12-12 Emc Corporation High performance data path with XOR on the fly
US6151641A (en) * 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US6223301B1 (en) * 1997-09-30 2001-04-24 Compaq Computer Corporation Fault tolerant memory
US5941969A (en) * 1997-10-22 1999-08-24 Auspex Systems, Inc. Bridge for direct data storage device access
US6341342B1 (en) * 1997-11-04 2002-01-22 Compaq Information Technologies Group, L.P. Method and apparatus for zeroing a transfer buffer memory as a background task
US6185652B1 (en) * 1998-11-03 2001-02-06 International Business Machin Es Corporation Interrupt mechanism on NorthBay
US6460122B1 (en) * 1999-03-31 2002-10-01 International Business Machine Corporation System, apparatus and method for multi-level cache in a multi-processor/multi-controller environment
US6542960B1 (en) * 1999-12-16 2003-04-01 Adaptec, Inc. System and method for parity caching based on stripe locking in raid data storage
US6370616B1 (en) * 2000-04-04 2002-04-09 Compaq Computer Corporation Memory interface controller for datum raid operations with a datum multiplier
US6792505B2 (en) * 2001-04-16 2004-09-14 International Business Machines Corporation System apparatus and method for storage device controller-based message passing having effective data channel bandwidth and controller cache memory increase
US6513098B2 (en) * 2001-05-25 2003-01-28 Adaptec, Inc. Method and apparatus for scalable error correction code generation performance
US6763398B2 (en) * 2001-08-29 2004-07-13 International Business Machines Corporation Modular RAID controller

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01150953A (ja) * 1987-12-08 1989-06-13 Matsushita Electric Ind Co Ltd ディスクキャッシュ装置
JPH0612855A (ja) * 1992-05-02 1994-01-21 Stc Internatl Computers Ltd ディスクドライブアレイ
JPH11167521A (ja) * 1993-06-30 1999-06-22 Hitachi Ltd 記憶システム
JPH0822379A (ja) * 1994-07-08 1996-01-23 Hitachi Ltd ディスクアレイ装置
JPH10333840A (ja) * 1997-06-03 1998-12-18 Sony Corp データ記録再生装置及びデータ記録再生方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011518392A (ja) * 2008-04-22 2011-06-23 エルエスアイ コーポレーション ドライブアレイにおける分散キャッシュシステム

Also Published As

Publication number Publication date
WO2001096987A3 (en) 2007-10-25
AU2001275540A1 (en) 2001-12-24
AU2001275540A8 (en) 2008-01-03
US20010056520A1 (en) 2001-12-27
WO2001096987A2 (en) 2001-12-20
US7127668B2 (en) 2006-10-24

Similar Documents

Publication Publication Date Title
JP2004504658A (ja) データ管理アーキテクチャ
US9753674B2 (en) RAIDed memory system
US10453530B2 (en) RDMA-SSD dual-port unified memory and network controller
US7913148B2 (en) Disk controller methods and apparatus with improved striping, redundancy operations and interfaces
US8015440B2 (en) Apparatus, system, and method for data storage using progressive raid
US8560772B1 (en) System and method for data migration between high-performance computing architectures and data storage devices
US9639457B1 (en) Data storage system and method for data migration between high-performance computing architectures and data storage devices using storage controller with distributed XOR capability
US20030084397A1 (en) Apparatus and method for a distributed raid
US8959420B1 (en) Data storage system and method for data migration between high-performance computing architectures and data storage devices using memory controller with embedded XOR capability
USRE40877E1 (en) Method of communicating data in an interconnect system
US9542101B2 (en) System and methods for performing embedded full-stripe write operations to a data volume with data elements distributed across multiple modules
US9710199B2 (en) Non-volatile memory data storage with low read amplification
US7861036B2 (en) Double degraded array protection in an integrated network attached storage device
WO2010133080A1 (zh) 基于(d,k)摩尔图的网络存储结构的数据存储方法
US20070180296A1 (en) Back-annotation in storage-device array
US20060179345A1 (en) Method and system for wire-speed parity generation and data rebuild in RAID systems
US8291161B2 (en) Parity rotation in storage-device array
CN116701253A (zh) 用于管理raid信息的存储器控制器
US6370616B1 (en) Memory interface controller for datum raid operations with a datum multiplier
US20070022364A1 (en) Data management architecture
TWI386795B (zh) 具有改進之拆解及冗餘操作及介面之磁碟控制器方法及裝置
EP2859553B1 (en) Memory system management
CN117334243A (zh) 高速缓存线数据保护
WO2024026956A1 (zh) 数据存储方法、装置、存储设备及计算机可读存储介质
US11474920B2 (en) Dynamic mapping of logical to physical memory for increased performance

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080613

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110816