JP2003099383A - データ記憶システム用ノード・コントローラ - Google Patents

データ記憶システム用ノード・コントローラ

Info

Publication number
JP2003099383A
JP2003099383A JP2002177070A JP2002177070A JP2003099383A JP 2003099383 A JP2003099383 A JP 2003099383A JP 2002177070 A JP2002177070 A JP 2002177070A JP 2002177070 A JP2002177070 A JP 2002177070A JP 2003099383 A JP2003099383 A JP 2003099383A
Authority
JP
Japan
Prior art keywords
node
memory
node controller
controller
pci
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
JP2002177070A
Other languages
English (en)
Inventor
Ashok Singhal
シングハル,アショック
Jeffrey A Price
エー. プライス,ジェフリー
David J Broniarczyk
ジェー. ブロニアルチック,デビット
George R Cameron
アール. キャメロン,ジョージ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
3Par Inc
Original Assignee
3Pardata Inc
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 3Pardata Inc filed Critical 3Pardata Inc
Publication of JP2003099383A publication Critical patent/JP2003099383A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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

Abstract

(57)【要約】 【課題】 少なくとも1つのノードを有するデータ記憶
システム用ノード・コントローラがデータ記憶ファシリ
ティにアクセスを行う。 【解決手段】 ノード・コントローラはノードのコンピ
ュータ/メモリ複合体とは別個のものである。ノード・
コントローラはノードを介するデータ転送のために全体
制御を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にデータ記憶の
分野に関し、具体的には、データ記憶システム用ノード
・コントローラに関する。
【0002】
【従来の技術】コンピュータ・システムの分野では、企
業内記憶アーキテクチャにより多量のデータと情報を記
憶する大容量電子記憶装置が設けられている。多くの企
業内アーキテクチャにはディスク記憶システムが組み込
まれ、相対的に低コストの不揮発性記憶装置が設置され
ている。しかし、ディスク記憶システムは多数の問題に
悩まされる場合がある。これらの問題には以下のような
問題点が含まれる。ディスク・システムは、その機械的
性質に起因する故障、及び、作動に関連してつきまとう
摩耗に起因する故障が生じ易い。ディスク・システムへ
のアクセス(読出し及び書込み)はその機械的性質に起
因して相対的に低速である。さらに、ディスク記憶シス
テムは、データ転送用としては相対的に低い帯域を有し
ている。これは、有効な帯域が“プラッタ・スピード”
(ディスク・ヘッドの下でデータ・ビットが移動する速
度)により制限を受けるためである。
【0003】ディスク記憶システムに関連する問題を低
減するための様々な技法が従来開発されてきた。“RA
ID”(低コストディスク冗長アレイ)と呼ばれるよう
な1つの技法では複数のディスク・ドライブが使用され
る。RAIDを用いることにより、1以上のディスク・
ドライブによって、冗長データ(パリティ情報やデータ
自体の複製コピーなど)の記憶が可能となるため、別の
ディスク・ドライブが故障した場合、この冗長データを
利用してデータの再構成が可能となる。
【0004】しかし、RAID技法は、記憶システムの
リソース、並びに、同記憶システムを制御するコンピュ
ータ・システムのリソースに重い負担をかける。例え
ば、RAIDでは、高速データ・キャッシュ、データの
複製を行うためのデータ・キャッシュと別の要素との間
での高帯域通信、保護された書込みキャッシュを行うた
めのデータのミラーリング、ホスト装置とディスク・ド
ライブに対する高いシステム帯域が要求される。
【0005】さらに、従来開発されてきた一般的格納シ
ステムでは、ホスト・インターフェース、ディスク・イ
ンターフェース、データ・キャッシュ及び通信チャネル
などの個々の機能ユニットのすべてを接続するために一
対の冗長バスが使用される。このアプローチは、システ
ムのスケーラビリティを制限するだけでなく、この共有
された相互接続に起因してパフォーマンスへの障害が生
じることになる。
【0006】
【発明が解決しようとする課題】本発明を利用すること
により、従来開発された記憶システムと技法に関連する
欠点と問題点が実質的に減少あるいは除去される。
【0007】
【課題を解決するための手段】本発明の1つの実施例に
よれば、少なくとも1つのノードを備えたデータ記憶シ
ステム用ノード・コントローラがデータ記憶用ファシリ
ティにアクセスする。このノード・コントローラはノー
ドのコンピュータ/メモリ複合体とは別個のものであ
る。ノード・コントローラはノードを介してデータ転送
を行うために全体制御を行うものである。
【0008】本発明の別の実施例によれば、ノード・コ
ントローラは記憶システムのノードを介してデータ転送
を行うために全体制御を行うものである。このノード・
コントローラはノードのコンピュータ/メモリ複合体と
は別個のものである。このノード・コントローラには、
データ記憶システム内の少なくとも1つのデータ・ソー
スからのデータに対して論理演算を実行する演算可能な
論理エンジンが含まれる。コマンド待ち行列がこの論理
エンジンに結合される。このコマンド待ち行列は、論理
エンジンによる処理が可能な論理制御ブロックを記憶す
るように作動可能である。
【0009】本発明の技術的利点には、記憶システムと
アーキテクチャとから成るノードでの組込みが可能なノ
ード・コントローラの設置が含まれる。ノード・コント
ローラはコンピュータ/メモリ複合体から独立してい
る。ノード・コントローラは、ノードでクラスタ・メモ
リを利用することによりノードを介してデータ転送の制
御や調整を行う。したがって、ノードのコンピュータ/
メモリ複合体には上記のようなタスク負担がかからなく
なる。その結果、コンピュータ/メモリ複合体の作業負
荷と役割を軽減することにより、ノード・コントローラ
は記憶システムとアーキテクチャの動作全体を促進し、
最適化する。
【0010】特定用途向け集積回路(ASIC)として
ノード用システム・ボードにノード・コントローラを実
装してもよい。ノード・コントローラは、背面配線板コ
ネクタを介して別のシステム・ボードと接続されるいく
つかの相互接続リンクをサポートすることもできる。ノ
ード・コントローラは、ノードに配置されるクラスタ・
メモリの1以上のバンクへのアクセス(読出しや書込
み)制御を行うこともできる。
【0011】
【発明の実施の形態】本発明の別の態様と利点は以下の
説明と添付図面から明らかになる。
【0012】添付図面を参照しながら、本発明及びその
さらなる特徴と利点の完全な理解のために以下の説明を
行う。
【0013】本発明の推奨実施例及びこれらの推奨実施
例の利点は図面の図1〜7を参照することによりもっと
も良く理解される。以下の様々な図面の同じ部分また対
応する部分については同じ参照番号が使用される。
【0014】ノード・コントローラの環境 図1は、本発明の実施例に従うノード10のブロック図
であり、このノード10内でノード・コントローラ12
の動作が可能となる。ノード10は、1以上のホスト装
置と記憶装置との間のインターフェース/アクセスのポ
イントとして一般に機能する。これらのホスト装置は、
例えば、サーバ・クラスタ、パーソナル・コンピュー
タ、メインフレーム及びサーバ・タワーなどのような様
々な処理装置を含むものであってもよい。またホスト装
置は、例えばプリンタ、モデム及びルータなどのような
様々な周辺機器を含むものであってもよい。テープ記憶
装置やディスク記憶装置のような任意の好適な大容量記
憶リソースを記憶装置に実装することも可能である。ノ
ード10の組込みが可能なデータ記憶システムについて
は、本譲受人に譲受された“データ記憶システム”とい
う表題の米国特許出願番号09/633,088(20
00年8月4日出願)に記載がある。上記特許出願は本
明細書に参照併合されている。
【0015】インターフェース/アクセス用として、ノ
ード10は、1以上の周辺機器構成要素相互接続(PC
I)スロットを含むものであってもよい。これらのスロ
ットの各々は1以上のそれぞれの接続14をサポートす
る。本明細書で用いられているように、“接続する”、
“結合する”という用語もしくはこれらの用語のいずれ
の異形も、2以上の要素間の直接または間接の任意の接
続または結合を意味する。このような接続または結合は
物理的あるいは論理的な接続乃至結合のいずれであって
もよい。図を明瞭にするために、図1では1つの接続1
4しかラベルされていない。各接続14はホスト装置ま
たは記憶装置の接続を行うことができる。接続14は、
小型コンピュータ・システム用インターフェース(SC
SI)、ファイバ・チャネル(FC)、ファイバ・チャ
ネル調停ループ(FCAL)、イーサネット(登録商
標)、InfiniBandまたは任意の他の好適な接
続であってもよい。
【0016】また、ノード10は、他のノードと交信を
行って、多量の通信が行われる、高度利用が可能な、デ
ータ記憶装置や処理やルート選定用として特に好適な、
調整可能なアーキテクチャの実現も可能である。このよ
うなデータ記憶システムについては米国特許出願番号0
9/633,088に記載されており、上記出願はその
全体が本明細書に参考文献として参照併合されている。
ノード10はいくつかの通信路16をサポートし、この
通信路16によって別のノードとの通信が可能になる。
ノード10が交信を行う各ノード用の別個の通信路16
を設けてもよい。ノード10と別のノードとの間でデー
タと情報の高速転送を行うための高帯域を有する高速双
方向リンクとして各通信路16を設けてもよい。1つの
実施例では、これらのリンクは2バイト幅とすることが
でき、リンク当たり1064MB/秒の総帯域について
各方向に266MHzでの動作が可能である。通信路1
6により、伝送制御プロトコル/インターネット・プロ
トコル(TCP/IP)のプロトコル・オーバーヘッ
ド、または、ファイバ・チャネル・プロトコルのプロト
コル・オーバーヘッドのないノード間低ラテンシ通信チ
ャネルが提供される。通信路16にわたるデータ/情報
転送の制御がノード間で共有される。1つの実施例で
は、通信路16を介するデータ/情報の転送は誤り訂正
コード(ECC)によりカバーされており、この誤り訂
正コードは任意の64ビットワードで単一のビット誤り
をカバーすることができ、さらに通信路16のいずれの
回線エラーの検出も行うことができる。
【0017】図示のように、ノード10はコンピュータ
/メモリ複合体18を含むものであってもよい。コンピ
ュータ/メモリ複合体18は、1以上の中央演算処理装
置(CPU)と関連するメモリを含むコンピュータ・シ
ステムであってもよい。各CPUメモリの組合せによ
り、オペレーティング・システムのコピーが独立に実行
される。コンピュータ/メモリ複合体18は、接続14
を介してデータと情報の転送が可能な1以上の好適なバ
スをサポートし、制御し、あるいは別様に管理するよう
に機能する。1つの実施例では、このような各バスは周
辺機器構成要素相互接続(PCI)バスであってもよ
い。また、コンピュータ/メモリ複合体18は、例え
ば、ハイパ・テキスト・トランスポート・プロトコル
(HTTP)サービス、ネットワーク・ファイル・シス
テム(NFS)サービス及び共有インターネット・ファ
イル・システム(CIFS)サービスなどのような別の
機能をサポートすることもできる。
【0018】1つの実施例では、本明細書に記載の、好
適な中央演算処理装置(CPU)デバイス、記憶装置、
及び、機能性を提供する特定用途向け集積回路(ASI
C)デバイスが設けられるシステム・ボードとしてノー
ド10の実現が可能となる。このシステム・ボードは、
通信路16をサポートする背面配線板コネクタとの接続
が可能である。図2を参照しながらこのような実施例を
示し、この実施例について以下説明する。
【0019】ノード・コントローラ12は、クラスタ・
メモリ20と共にノード10に常駐する。ノード・コン
トローラ12とクラスタ・メモリ20とは別個のもので
あり、コンピュータ/メモリ複合体18から独立してい
る。1つの実施例では、特定用途向け集積回路(ASI
C)デバイスとしてノード・コントローラ12の実現が
可能である。ノード・コントローラ12は、コンピュー
タ/メモリ複合体18と一体に動作することも可能であ
るが、ある程度まで、同コンピュータ/メモリ複合体1
8から独立して動作する。すなわち、コンピュータ/メ
モリ複合体18はノード・コントローラ12をプログラ
ムすることも可能である。プログラムされた場合、ノー
ド・コントローラ12はデータに対して独立の処理を行
うことが可能となり、それによってノード10を介する
データ転送を行うために全体制御が行われる。したがっ
て、コンピュータ/メモリ複合体18には、データに対
して実際の処理を行うタスク負担がかからなくなる。ク
ラスタ・メモリ20はノード・コントローラ12と結合
され、さらに、本明細書に記載のように、一般にその機
能はノード10を介して転送されるデータと情報とのキ
ャッシュを行うことである。例えば同期ダイナミック・
ランダム・アクセス・メモリ(SDRAM)などの任意
の好適なキャッシュ・メモリとしてクラスタ・メモリ2
0を実現してもよい。
【0020】(クラスタ・メモリ20と一体に動作す
る)ノード・コントローラ12を用いることにより、
(バルク転送を含む)ノード10を介して転送されるデ
ータ/情報をコンピュータ/メモリ複合体18の中に一
時的に記憶する必要はなくなる。バルク・データ転送に
汎用コンピュータ/メモリ複合体18をバイパスさせる
この能力は好都合なものである。この能力によって、非
常に大きな帯域でのデータ/情報の転送が可能となる。
さらに、コンピュータ/メモリ複合体18の負荷が小さ
くなるため、例えばHTTPサービス、NFSサービス
及びCIFSサービスなどのような別の機能を設けた
り、サポートしたりする利用が可能となる。したがっ
て、コンピュータ/メモリ複合体18の作業負荷と役割
の低減により、ノード・コントローラ12はノード10
を介してデータと情報の転送を促進し、最適化する。
【0021】ノードの例示的実現 図2は、本発明の実施例に従うノード10の例示的実現
を例示するものである。この実現例では、背面配線板コ
ネクタを介して別のノードと接続された好適なシステム
・ボードに取り付けられた1以上の集積回路(IC)デ
バイスをコンピュータ/メモリ複合体18とノード・コ
ントローラ12に実装することも可能である。
【0022】一般に、コンピュータ/メモリ複合体18
は多重プロセッサ可能チップセットを用いて実現が可能
である。図示のように、このチップセットはメイン・コ
ントローラ24と、入出力(I/O)ブリッジ26と、
PCI/レガシ・ブリッジ28とを含むことが可能であ
る。1つの実施例では、メイン・コントローラ24と、
I/Oブリッジ26と、PCI/レガシ・ブリッジ28
に、“Champ North Bridge”、“Champion入出力(I/
O)Bridge(CIOB)”及び“South Bridge”(これらは
それぞれすべて、South Bridge社により市販されてい
る)の実装が可能である。他のチップセットの利用も可
能である。
【0023】1以上の中央演算処理装置(CPU)30
(30aと30bとして別個にラベルされている)によ
り、ノード10を介するデータ転送の制御処理能力が一
般に与えられる。各CPU30には、例えばインテル社
製のペンテイアムIIIのような任意の好適な処理用デ
バイスを実装することができる。
【0024】1以上のスロット32はメイン・コントロ
ーラ24をシステム・メモリと接続する。図を明瞭にす
るために1つのスロット32しかラベルされていない。
各スロット32はシステム・メモリを実装するための好
適な記憶装置を保持してもよい。システム・メモリに
は、例えば668293同期ダイナミック・ランダム・
アクセス・メモリ(SDRAM)を実装してもよい。こ
のシステム・メモリは、ノード10用として転送制御時
に使用されるデータと情報の記憶用として一般に機能す
る。このシステム・メモリは、ノード10を介するバル
ク転送用データのキャッシュには必要とされない。それ
は、このキャッシュ機能がノードのクラスタ・メモリに
より実行されるからである。
【0025】ローカル・ドライブ34はPCI/レガシ
・ブリッジ28と接続される。ドライブ34を利用し
て、コンピュータ/メモリ複合体18用のローカル・オ
ペレーティング・システムをブートし、停電の場合、シ
ステム・メモリからローカル・データをバックアップす
ることができる。
【0026】2つの周辺機器構成要素相互接続(PC
I)バス36がコンピュータ/メモリ複合体18により
サポートされている。これらのPCIバスは、36aと
36bとして別個にラベルされており、各々66MH
z、64ビット・バスとすることができる。各バス用と
していくつかのPCIブリッジ38が設けられている。
図示のように、PCIバス36a用としてPCIブリッ
ジ38aと38bが設けられ、PCIバス36b用とし
てPCIブリッジ38cと38dが設けられる。PCI
バス36及びそれぞれのPCIブリッジ38は、ホスト
装置または記憶装置の接続が可能な1以上のPCIスロ
ットをサポートする。本実施例では、各PCIバス36
は1つの66MHz、64ビットPCIスロット40
(40aと40bとして別個にラベルされている)及び
2つの66MHz、64ビットPCIスロット42(4
2a、42b、42c、42dとして別個にラベルされ
ている)をサポートする。PCIバス36、PCIブリ
ッジ38及びPCIスロット40と42は、一体のもの
として、図1を参照して説明した接続14用の装置をサ
ポートしたり、提供したりするものである。
【0027】ノード・コントローラ12は、双方のPC
Iバス36に常駐するので、ホスト装置と記憶装置から
の、及び、ホスト装置と記憶装置へのデータ/情報の転
送を直接(すなわちコンピュータ/メモリ複合体18を
介するルート選定なしで)行うことも可能である。特定
用途向け集積回路(ASIC)としてノード・コントロ
ーラ12の実現が可能である。1以上のスロット44が
ノード・コントローラ12をクラスタ・メモリと接続す
る。8個のスロット44が示されているが、図を明瞭に
するために、図2にはこれらのスロット44のうち2つ
しかラベルされていない。各スロット44は、クラスタ
・メモリを実装する好適な記憶装置の保持が可能であ
る。
【0028】バンク内にクラスタ・メモリを実装しても
よい。これらのバンクは、図示のように、“クラスタ・
メモリ・バンク1”及び“クラスタ・メモリ・バンク
0”として別個にラベルされている。1つの実施例で
は、各バンクは、いくつかのデュアル・インライン・メ
モリ・モジュール(DIMM)を具備してもよく、各D
IMMは別個のスロット44内に保持される。各DIM
Mは1ギガバイトの容量までの同期ダイナミック・ラン
ダム・アクセス・メモリ(SDRAM)であってもよ
い。したがって、ノード10内のクラスタ・メモリの両
バンクの総容量は8ギガバイトにすることも可能であ
る。
【0029】長いバーストを用いてメモリー・バンクへ
のアクセスが可能となり、その結果、持続可能な帯域が
ピーク帯域に接近するようになる。1つの実施例では、
クラスタ・メモリの各バンクは8バイトの幅を持ち、1
33MHzで動作する。したがって、1064メガバイ
ト/秒のピーク帯域が結果として得られる。2つのバン
クの総帯域はおよそ2ギガバイト/秒となる。
【0030】汎用コンピュータ/メモリ複合体内のシス
テム・メモリとは異なり、クラスタ・メモリは、システ
ム・バス(ペンテイアム・バスなど)の制限や制約によ
る障害を受けない。逆に、データが、2つのPCIバス
によりクラスタ・メモリを出たり入ったりして運ばれる
ため、転送帯域をこれらの2つのPCIバスのほぼ最大
の総帯域にすることができる。各66MHz、64ビッ
トPCIバスは500メガバイト/秒の転送が可能であ
るため、2つのPCIバスだけで約1ギガバイト/秒の
クラスタ・メモリ帯域に寄与することができる。これは
システム・バスの達成可能な帯域を上回るものである。
【0031】ノード・コントローラ 図3は、本発明の実施例に従うノード・コントローラ1
2の例示的実現を例示するものである。この実現例で
は、ノード・コントローラ12の中に1以上のPCI制
御インターフェース50が含まれる。これらのインター
フェースは50aと50bとして別個にラベルされてい
る。各PCI制御インターフェース50には、それぞれ
のPCIバス(“PCI0”または“PCI1”)を備
えたインターフェースが設けられる。このような各バス
は64ビット、66MHzバスとしてもよい。PCI制
御インターフェース50によって、ノード・コントロー
ラ12が各バスのPCIデバイスとして機能するように
することができる。それぞれのコンピュータ/メモリ複
合体18内の構成ソフトウェアは、ノード・コントロー
ラ12を2つのPCIバスの別個のかつ独立したデバイ
スと見なすこともできる。
【0032】制御及びステータス・レジスタ(CSR)
52は各PCI制御インターフェース50と接続され
る。制御及びステータス・レジスタ52の一般的機能
は、ノード・コントローラ12内で用いられる様々な情
報、あるいは、通信路16を介して別のノード10へ送
られる制御情報の保持や追跡である。したがって、例え
ば制御及びステータス・レジスタ52は、ノード・コン
トローラ12内で用いられるフラグや別の制御信号の現
在値を保持してもよい。上記レジスタには割込み信号、
マスク信号及びコマンド信号が含まれてもよい。また、
制御及びステータス・レジスタ52はデータ用ベースア
ドレスを保持してもよい。ノード・コントローラ12の
別の部分並びに外部PCIデバイスは、制御及びステー
タス・レジスタ52の読出しまたは制御及びステータス
・レジスタ52への書込みを行うことも可能である。
【0033】ノード・コントローラ12はスレーブ・デ
バイス(ターゲット)として機能することも可能であ
り、それによって、各PCIバスの別のデバイス(コン
ピュータ/メモリ複合体18のホスト装置またはCPU
など)がクラスタ・メモリ20の読出しあるいはクラス
タ・メモリ20への書込みを行うことが可能となる。ま
た、PCIデバイスは制御及びステータス・レジスタ5
2の読出しまたは制御及びステータス・レジスタ52へ
の書込みを行うことも可能である。
【0034】メモリ・コントローラ54は、それぞれの
ノード10及び/又はリモート・ノードのクラスタ・メ
モリ20用インターフェースを設けたりサポートしたり
するように一般に機能する。1つの実施例では、別個の
メモリ・コントローラ54が設けられて、ローカル・ク
ラスタ・メモリ用の2つの72ビット、133MHzの
SDRAMチャネル(0及び1)の各々と、他のノード
のクラスタ・メモリへ伸びる通信路16とのサポートが
行われる。
【0035】図示のように、各通信路16は2つの別個
の相互接続リンクを含むものであってもよい。このよう
な各対のリンクの場合、一方のリンクはそれぞれのノー
ド10へノード・コントローラ12の中からデータ/情
報を運び出し、もう一方のリンクは同じノード10から
ノード・コントローラ12(特にメモリ・コントローラ
54)の中へデータ/情報を運び込む。1つの実施例で
は、これらのリンクは18ビットの幅を持ち、名目上1
33MHzで作動する。データがクロックの両端でサン
プルされた場合、データ転送速度は各リンクについて5
32MB/秒である。
【0036】クラスタ・メモリ20をプログラムした
り、複数領域に分割したりすることも可能である。各領
域は、例えば1ラインの64バイトであってもよく、さ
らに、リモート・ノード10と関連するようにしてもよ
い。ノード・コントローラ12を構成して、特定領域の
クラスタ・メモリ20の中へデータを書き込むことによ
り、それぞれの相互接続リンクを介して、関連するリモ
ート・ノードへ同じデータを送るようにしてもよい。そ
れに応じて、このデータはリモート・ノードのクラスタ
・メモリにおいて“鏡像化”される。また、ノード・コ
ントローラ12を構成して、別の領域へのデータの書込
みにより、同じデータの“放送”すなわちすべての送出
用相互接続リンクにわたってそれぞれのリモート・ノー
ドへこのデータの送信を行うようにしてもよい。
【0037】1以上の論理エンジン56が、PCI制御
インターフェース50、メモリ・コントローラ54及び
通信路16の送出用相互接続リンクと結合される。1つ
の実施例では、論理エンジン56は“排他的論理和”
(XOR)エンジンを具備する。また、論理エンジン5
6は、誤り訂正コード(ECC)スクラブ(scrub)、
ダイレクト・メモリ・アクセス(DMA)エンジン、B
zeroエンジン及び/又はパリティ・エンジンを含む
ものであってもよい。ノード・コントローラ12内の論
理エンジン56は、(ローカル・クラスタ・メモリ20
またはPCIバス36内の)13個までのソースから得
られるデータに対して(XOR演算などの)演算を実行
し、その結果を(いずれかのローカル・クラスタ・メモ
リ20、2つのPCIバス36のうちの一方または通信
路16のうちの1つの中の)宛先に書き込むことが可能
である。ソース、宛先、長さ及び演算タイプとフラグ
は、それぞれのコマンド待ち行列58に記憶された1以
上の論理制御ブロック(LCB)でプログラムされる。
1つの実施例では、各論理制御ブロックはXOR制御ブ
ロック(XCB)であってもよい。各論理制御ブロック
は、ノード・コントローラ12においてとるべき、ある
いは、ノード・コントローラ12によってとるべきアク
ションに対する1以上のコマンドを指定したり、そのコ
マンドを関係づけたりすることができる。論理エンジン
56は、(以下に説明するような)待ち行列の先頭部ま
たはコンシューマ側端部から“ジョブ”を奪う。1つの
実施例では、ノード・コントローラ12内に複数の論理
エンジン56が存在する。1つの論理エンジン56が、
待ち行列からの論理制御ブロックについて演算を実行し
ている間、その他の論理エンジン56は別の待ち行列か
らの論理制御ブロックだけについて演算を実行する。し
たがって、任意の所定の待ち行列からの唯一の論理制御
ブロックだけを一度にアクティブにすることができる。
【0038】論理エンジン56は、ノード・コントロー
ラ12内にいくつかの異なる機能を設けたり、サポート
したりする。例えば、論理エンジン56は、低コスト・
ディスク冗長アレイ(RAID)構成のサポートを行う
ことも可能である。具体的には、論理エンジン56は、
RAID容量の初期化や最大RAIDストリップの書込
みの際にRAIDパリティの計算を行ったり、RAID
グループ内の1つのディスクに不調が生じた場合にデー
タの再構成を行ったり、ディスクから読み出した古いパ
リティと、相互接続リンクを介して別のノードから受信
した部分的パリティとから新しいRAIDパリティの計
算を行ったりすることができる。論理エンジン56は、
例えばチェックサムのような別のタイプの演算処理を行
うことも可能である。チェックサムとは、データの有効
性を確かめるために利用できるコードである。
【0039】1つの実施例では、論理エンジン56は、
ローカル・クラスタ・メモリ20の複数領域を読み出
し、すべての領域に対して特定の論理演算(排他的論理
和演算など)を実行し、ローカル・クラスタ・メモリ2
0の別の領域へこの結果をライトバックすることができ
る。このライトバックは最大RAIDストリップの書込
みの高速化、及び、RAIDグループでのディスク故障
が生じた後のデータ再構成のスピードアップに利用され
る。各相互接続リンクについて個別の論理エンジン56
を設けるようにしてもよい。このような各論理エンジン
56は、ローカル・クラスタ・メモリ20の複数領域に
対して論理演算を実行し、リモート・ノードのクラスタ
・メモリの中へその結果を入れることができる。これ
は、RAIDの部分ストリップの書込み時に利用され、
新しいパリティの計算が行われる。また、各リンク論理
エンジン56を利用して、リモート・ノードのクラスタ
・メモリの中へローカル・クラスタ・メモリ領域20を
コピーするようにすることもできる。
【0040】コマンド待ち行列58は論理エンジン56
と接続される。コマンド待ち行列58は、論理エンジン
56により処理が可能な論理制御ブロックを記憶する。
各論理制御ブロックは、論理演算の実行が可能ないくつ
かのソースを指定して、その演算結果を特定の宛先へ送
信するようにしてもよい。各ソースは、クラスタ・メモ
リ領域20またはPCIバス36の中の1つであっても
よい。この宛先は、送出用相互接続リンク(通信路16
など)の中の1つ、PCIバス36、または、クラスタ
・メモリ領域20であってもよい。各宛先用として別個
のコマンド待ち行列58を設けてもよい。
【0041】本明細書に記載の機能性を用いて、ノード
・コントローラ12により、ノード10を介するデータ
/情報の記憶と通信が高速化され、それによってパフォ
ーマンスと可用性の改善が図られる。さらに、少なくと
も1つの実施例では、メモリ制御、リンク、PCI制御
及び論理エンジンを単一の集積回路デバイス(特定用途
向け集積回路(ASIC)など)に組み込むこともでき
るという理由によって、ノード・コントローラ12をこ
のように実装することにより、システム・リソースにわ
たる構成要素間でのデータ転送の必要性が実質的に少な
くなったり、除去されたりして、システム・リソースの
消費が少なくなり、パフォーマンスの大幅な改善が図ら
れる。
【0042】例えば、ノード10用システム・ボードの
一部として、ノード・コントローラ12が設けられる1
つの実施例では、ノード・コントローラは別のシステム
・ボードのノード・コントローラと交信を行い、一体に
動作して、例えば、バルク転送時にこれらのノード・コ
ントローラ間でのデータ/情報の転送を行うことも可能
となる。これらのノード・コントローラ12は交信を行
って、ピア・ツー・ピア間転送、すなわち、CPUとシ
ステム・メモリ(すなわち各ノード12内のコンピュー
タ/メモリ複合体18)を具備するメイン・コンピュー
タ・システム以外の2つのPCIデバイス間での転送を
行うリアルタイムでの通信が可能である。これはいくつ
かの理由で好都合である。ノード・コントローラ12は
ピア・ツー・ピア間転送を主として処理するため、各シ
ステム・ボード内のメイン・コンピュータ・システムは
別の機能を行うためのさらなる利用が可能となる。同時
に、別個のバスを必要としない、メイン・コンピュータ
・システムへの“通常の”PCIバス転送を制御情報の
転送に利用することが可能となる。さらに、データのバ
ルク転送により、例えば、システム・バスの相対的に狭
い帯域、及び、制限された容量のシステム・メモリのよ
うな典型的なメイン・コンピュータ・システムの限界が
回避される。大容量と、相対的に幅の広いクラスタ・メ
モリを用いる、超高速リンクを介するバルク・データ転
送が実行されるため、非常に高速なノード間転送が可能
となる。各ノード・コントローラ10用クラスタ・メモ
リ20が別個に設けられるため、異なるノードの別のノ
ード・コントローラへデータのトランスポートを行うた
めに追加転送を行う必要がなくなる。これらによって、
このようなノード・コントローラ12が組み込まれてい
るデータ記憶システムの効率とパフォーマンスの最適化
が行われる。
【0043】ノード・コントローラ・アドレス空間 図4は、本発明の実施例に従うノード・コントローラ1
2用の例示的アドレス空間60を例示するものである。
一般に、ノード10内で、ノード・コントローラ12は
2つのPCIバス36a、36bの各々のPCIデバイ
スとして機能する(図2を参照)。これらのPCIバス
を“PCI0”及び“PCI1”と呼ぶ場合もある。P
CIデバイス構成ソフトウェアは、(各々がそれ自身の
PCI構成ヘッダを備えた)各バス36の別個のかつ独
立したデバイスとしてノード・コントローラ12を扱
い、双方のバスのノード・コントローラ12に対して空
間を割り当てる。2つのPCIバス36a、36bのア
ドレスが異なるために、別個のPCIベースアドレス・
レジスタが、アドレス空間60によって、制御及びステ
ータス・レジスタ(CSR)52と、各バス用クラスタ
・メモリ20との中に設けられる。それにもかかわら
ず、これら2つのPCIバス36a、36bでは、他方
のPCI構成ヘッダ・レジスタの多くを物理的に共有す
ることが可能である。
【0044】図4を参照すると、制御及びステータス・
レジスタ52とクラスタ・メモリ20の双方の領域をノ
ード・コントローラ12のPCIでマップすることが可
能である。図示のように、制御及びステータス・レジス
タ52により、非先取り可能メモリとしてマップ可能な
1KB領域が設けられる。クラスタ・メモリ20によ
り、先取り可能メモリとしてマップ可能な0.5GB領
域が設けられる。1つの実施例では、クラスタ・メモリ
20のベースアドレス・レジスタにより、ローカル・ク
ラスタ・メモリのすべてについて十分な空間が指定さ
れ、この空間を4GB以上にすることも可能である。こ
れには64ビットPCIアドレス指定を必要とするた
め、ベースアドレス・レジスタを64ビットのベースア
ドレス・レジスタにしてもよい。しかし、利用可能なア
ドレス空間を制限するハードウェア上及びソフトウェア
上の制約が存在する可能性もあるため、アドレス空間6
0により、2つのクラスタ・メモリのベースアドレス・
レジスタ(狭いクラスタ・メモリのベースアドレス・レ
ジスタと広いクラスタ・メモリのベースアドレス・レジ
スタ)が設けられる。狭いクラスタ・メモリのベースア
ドレス・レジスタはクラスタ・メモリ20のトップの
0.5GBしかマップできないのに対して、広いクラス
タ・メモリのベースアドレス・レジスタの方はクラスタ
・メモリ20のすべて(8GBまで)のマップも可能で
ある。図示のように、同じクラスタ・メモリ20がPC
Iバスの双方に対してマップされる。ノード・コントロ
ーラ用アドレス空間の例示的構成を下記の表1〜4に略
記した。
【0045】
【表1】 ノード・コントローラPCI構成空間ヘッダ
【0046】
【表2】 CSRベースアドレス・レジスタ
【0047】
【表3】 狭いクラスタ・メモリのベースアドレス・レ
ジスタ
【0048】
【表4】 広いクラスタ・メモリのベースアドレス・レ
ジスタ
【0049】コマンド待ち行列 図5は本発明の実施例に従う例示的コマンド待ち行列5
8を例示するものである。コマンド待ち行列58は、論
理エンジン56により処理が可能ないくつかのコマンド
または論理制御ブロック(LCB)を記憶する。このた
めコマンド待ち行列58をLCB待ち行列と呼ぶ場合も
ある。各論理制御ブロックは、論理演算の実行が可能な
いくつかのソースを指定し、その結果を特定の宛先へ送
信することができる。各ソースはクラスタ・メモリ領域
20またはPCIバス36のうちの1つのバスであって
もよい。上記宛先は、送出用相互接続リンク(通信路1
6など)のうちの1つ、PCIバスあるいはクラスタ・
メモリ領域20のいずれかであってもよい。
【0050】各宛先について別個のコマンド待ち行列5
8を設けてもよい。図示のように、これらの待ち行列5
8には、第1及び第2のPCIバス(PCI0、PCI
1)用のコマンド待ち行列58aと58bと、いくつか
の通信路ノード・リンク(ノード・リンク0、ノード・
リンク1、ノード・リンク2、ノード・リンク3、ノー
ド・リンク4、ノード・リンク5、ノード・リンク6)
用のコマンド待ち行列58c、58d、58e、58
f、58g、58h、5i、及び、クラスタ・メモリ接
続用コマンド待ち行列5jとが含まれる。
【0051】1つの実施例では、図6に図示のように、
各コマンドまたはLCB待ち行列58を別個のバッファ
61として実装してもよい。各バッファ61は、バッフ
ァ61の終端部から始端部へラップ・アラウンドする循
環待ち行列として動作することも可能である。複数の論
理制御ブロック(LCB)を各バッファ61の中へ記憶
することもできる。
【0052】さらに、図6に描かれているように、LC
Bプロデューサ・レジスタ62とLCBコンシューマ・
レジスタ64とを各コマンド待ち行列58と関連づける
こともできる。LCBプロデューサ・レジスタ(produc
er register)62とLCBコンシューマ・レジスタ(c
onsumer register)64とを制御及びステータス・レジ
スタ52(図3)としてもよい。LCBプロデューサ・
レジスタ62により、次の論理制御ブロックを書き込ま
なければならないコマンド待ち行列58の特定アドレス
が指定される。LCBコンシューマ・レジスタ64によ
りコマンド待ち行列58の特定のアドレスを指定し、こ
のアドレスから次のまたは現在の論理制御ブロックを読
み出して、この論理制御ブロックで処理を行わなければ
ならない。1つの実施例では、ノード・コントローラ1
2のソフトウェアによって、(LCBプロデューサ・レ
ジスタ62により示される)コマンド待ち行列のプロデ
ューサ側端部への書込みが行われる。論理エンジン56
が論理制御ブロックの処理を継続できるように、ノード
・コントローラ12のハードウェアは、(LCBコンシ
ューマ・レジスタ64により示される)待ち行列のコン
シューマ側端部から論理制御ブロックを外す。
【0053】LCBコンシューマ・レジスタ64とLC
Bプロデューサ・レジスタ62とにより指定されるアド
レスが同じ場合には、コマンド待ち行列58は空にさ
れ、論理エンジン56は当該待ち行列をスキップする。
ソフトウェアが待ち行列58のLCBプロデューサ・レ
ジスタ62を増分すると、このような待ち行列58にサ
ービスを与える次の論理エンジン56により次の論理制
御ブロックが読み出され、そのタスクの実行が開始され
る。1つの実施例では、ソフトウェアによって、単にL
CBプロデューサ・レジスタ62への書込みが行われる
だけの場合もある。ハードウェアによるレジスタへの上
記書込みはタスクとして完了しているため、ソフトウェ
アによるLCBコンシューマ・レジスタ64への直接の
書込みを行うことはできない。
【0054】論理制御ブロックの例示的構成を下記の表
5に略記した。
【0055】
【表5】 論理制御ブロック(LCB)
【0056】表5に示される構成に関して、宛先アドレ
ス(DEST_ADDR)は、2つのPCIバス36
a、36bのうちの一方、または、リンク(通信路16
など)の1つのローカル・クラスタ・メモリ20の中に
設けることができる。これらのソース・アドレス(SR
C0_ADDR〜SRCD−ADDR)は、ローカル・
クラスタ・メモリ内、または、2つのPCIバス36
a、36bのうちの一方に設けてもよい。好適には、こ
の宛先アドレスは、待ち行列の中で暗黙のうちに了解さ
れていることが望ましいが、各ソース・アドレスは、該
アドレスがローカル・クラスタ・メモリ20とPCIバ
ス36のいずれに在るかを指定しなければならない。
【0057】リモート・ノードの論理エンジン56によ
り、或る特定ノード10のクラスタ・メモリ20の書込
みが可能である。リモート・ノードの論理エンジンによ
りリンクを介して書込みが可能なローカル・メモリ位置
を限定するためにリンク・メモリ保護が利用される。す
なわち、各リンクがアクセス可能なローカル・クラスタ
・メモリ20の専用範囲が各リンクに設定される。この
設定を達成するために、ノード・コントローラ12は各
リンクについてメモリ範囲を指定するベース・レジスタ
と限界レジスタの対を具備することができる。このベー
ス・レジスタと限界レジスタの対にはリンク保護ベース
・レジスタとリンク保護限界レジスタとが含まれるが、
これらのレジスタは制御及びステータス・レジスタ52
であってもよい(図3)。リンク保護ベース・レジスタ
には、ローカル・クラスタ・メモリ20内のベースアド
レス情報が保持されるか含まれる。リンク保護限界レジ
スタには、ローカル・クラスタ・メモリ20内の限界ア
ドレス情報が保持されるか含まれる。それぞれのリンク
は、(ベースアドレスを含む)ベースアドレスを起点と
する限界アドレスまで(但し限界アドレスは含まれな
い)の任意のアドレスへの書込みが許される。
【0058】1つの実施例では、コマンド待ち行列58
の特定の論理制御ブロックで動作中、論理エンジン56
が誤りを発見すると、その待ち行列58は一時停止さ
れ、その特定の誤りに対する対応ビットが論理エンジン
56用の制御及びステータス・レジスタ52にセットさ
れる。発見された上記誤りには、例えば特定の宛先(リ
ンク、PCIバスまたはクラスタ・メモリなど)のプロ
グラミング上の誤りが含まれる場合もある。上記ビット
をクリアすることによりコマンド待ち行列58の再開も
可能となる。但し当該誤りと関連する論理制御ブロック
の再開は行われない。
【0059】メモリー・バンク 図7は、本発明の実施例に従う、ノード・コントローラ
12により制御されるいくつかのメモリー・バンクを例
示するものである。これらのメモリー・バンクは、DI
MM0、DIMM1、DIMM2、DIMM3、DIM
M4、DIMM5、DIMM6、DIMM7として別個
にラベルされるいくつかのデュアル・インライン・メモ
リ・モジュール(DIMM)70の中に含めることがで
きる。図示のように、DIMM0にはバンク0とバンク
2が含まれ、DIMM1にはバンク1とバンク3が含ま
れ、DIMM2にはバンク4とバンク6が含まれ、DI
MM3にはバンク5とバンク7が含まれ、DIMM4に
はバンク8とバンク10が含まれ、DIMM5にはバン
ク9とバンク11が含まれ、DIMM6にはバンク12
とバンク14が含まれ、DIMM7にはバンク13とバ
ンク15が含まれる。各DIMM70は一般に1乃至2
の物理バンクを備えることができる。1つの実施例で
は、各DIMM70にはいくつかの同期DRAM(SD
RAM)を含むことができる。DRAMの数と幅により
物理メモリー・バンクを決定することができる。
【0060】ノード・コントローラ12は2つのメモリ
・コントローラ54を備えることも可能であり(図3を
参照)、これらメモリ・コントローラの各々は、DIM
M70につながる別個のデータ・パス(cntr10と
cntr11)のサポートも可能である。1つの実施例
では、各メモリ・コントローラ54は、4つの72ビッ
トDIMM70につながる72ビット幅の(64ビット
・データと8ビットECC)データ・パスをサポートす
ることも可能である。すべてのメモリ処理(読出し/書
込み)は64バイトのライン単位で実行することができ
る。1つのDIMM70の単一メモリー・バンクから8
サイクルの単一バースト長で1ラインのメモリ全体への
アクセスも可能である。一対の同一DIMMとしてDI
MM70をインストールしてもよい。その場合、各コン
トローラ54に対してDIMMの一方の対が対応する。
このメモリは、メモリ・コントローラ54の両端にわた
って64バイトのラインで2方向にインターリーブが可
能である。一方のメモリ・コントローラ54が偶数番号
のDIMM70の偶数番号のメモリー・バンクを制御
し、他方のメモリ・コントローラ54が奇数番号のDI
MM70の奇数番号のメモリー・バンクを制御すること
ができる。それぞれのチップ選択ラインCS[15:
0]を用いて、関連するメモリ・コントローラ54によ
り各メモリ・バンクの選択を行うことができる。但し、
CS[x]はメモリー・バンクxと関連する選択ライン
である。
【0061】チップ選択ラインに関するデータを維持す
るためにメモリ復号化レジスタを設けることができる。
1アドレス・ビットを用いて、偶数番号のメモリー・バ
ンクと奇数番号のメモリー・バンクとの間の選択を行う
ようにしてもよい。各対の同一メモリー・バンクをセグ
メントと呼ぶ場合もある。メモリ復号化レジスタによ
り、所定のメモリ・セグメントをアクティブにするアド
レス範囲が決定される。1つの実施例では、次のセグメ
ントの第1アドレス(あるいは、同じ意味であるが、メ
モリー・バンク内の(128MB単位の)累積合計メモ
リプラスすべての低位番号のセグメント)を指定するそ
れぞれの32ビット・メモリ復号化レジスタにより各セ
グメントのトップが指定される。メモリ・セグメントの
例示的アドレス・ブロックを下記の表6に例示する。
【0062】
【表6】 メモリ・セグメント・トップアドレス・ブロ
ック
【0063】1つの実施例では、各一対の同一DIMM
70に対してメモリ制御レジスタが設けられる。メモリ
制御レジスタは制御及びステータス・レジスタ52であ
ってもよい(図3を参照)。各メモリ制御レジスタによ
って、行アドレス・ストローブ(RAS)と、列アドレ
ス・ストローブ(CAS)と、バンク・アドレス生成
と、メモリの読出し/書込みタイミングとの制御が行わ
れる。メモリ制御レジスタの例を下記の表7に示す。
【0064】
【表7】 メモリ制御レジスタ
【0065】両方のメモリ・コントローラ54に対して
単一メモリ・モード・レジスタを設けてもよい。このメ
モリ・モード・レジスタは制御及びステータス・レジス
タ52であってもよく(図3)、SDRAMのプログラ
ミングの高速化に利用することができる。SDRAM
は、バンク選択に使用されるアドレスと共に、一度に1
物理メモリ・バンクずつプログラミングが行われる。メ
モリ・モード・レジスタの例を下記の表8に示す。
【0066】
【表8】 メモリ・モード・レジスタ
【0067】以上、本発明の実施例により、記憶システ
ムとアーキテクチャのノードに組込み可能なノード・コ
ントローラが設けられる。このノード・コントローラは
ノードのいずれのコンピュータ/メモリ複合体からも独
立している。このノード・コントローラは、ノードでク
ラスタ・メモリを利用することにより、ノードを介して
データ転送の制御や調整を行う。したがって、ノードに
おけるコンピュータ/メモリ複合体には上記のようなタ
スク負担がかからなくなる。したがって、コンピュータ
/メモリ複合体18の作業負荷と役割を低減することに
より、ノード・コントローラは記憶システムとアーキテ
クチャの動作全体を促進し、最適化する。
【0068】本発明の特定の実施例を示し、説明を行っ
たが、本発明から逸脱することなく、本発明のより広い
態様において変更や修正が可能であることは当業者には
明らかであり、したがって、添付の請求項は、本発明の
真の範囲に属するようなすべての変更及び修正をその請
求の範囲内に包含するものである。
【図面の簡単な説明】
【図1】本発明の実施例に従う、ノード・コントローラ
が動作できるような例示的環境を例示する。
【図2】本発明の実施例に従うノードの例示的実現を例
示する。
【図3】本発明の実施例に従うノード・コントローラの
例示的実現を例示する。
【図4】本発明の実施例に従うメモリの例示的割当てを
例示する。
【図5】本発明の実施例に従ういくつかの例示的コマン
ド待ち行列を例示する。
【図6】本発明の実施例に従う、コマンド待ち行列の関
連するプロデューサ・レジスタ(producer register)及
びコンシューマ・レジスタ(consumer register)と共に
例示的論理制御ブロックを例示する。
【図7】本発明の実施例に従う、ノード・コントローラ
が制御するいくつかのメモリー・バンクを例示する。
【符号の説明】
10 ノード 12 ノード・コントローラ 14 接続 16 通信路 18 コンピュータ/メモリ複合体 20 クラスタ・メモリ 24 メイン・コントローラ 26 I/Oブリッジ 28 PCI/レガシ・ブリッジ 30 CPU 32 システム・メモリ 34 ドライブ 36 66MHz、64ビットPCIバス 38 PCIブリッジ 40 66MHz64ビットPCIスロット 42 66MHz64ビットPCIスロット 44 クラスタ・メモリ・バンク 50 PCI0制御 52 CSR 54 メモリ・コントローラ 56 論理エンジン 58 コマンド待ち行列 60 アドレス空間 61 バッファ 62 プロデューサ 62 コンシューマ 70 DIMM
───────────────────────────────────────────────────── フロントページの続き (72)発明者 プライス,ジェフリー エー. アメリカ合衆国、94566、カリフォルニア 州、プレザントン、スプモンテ プレイス 1850 (72)発明者 ブロニアルチック,デビット ジェー. アメリカ合衆国、94043、カリフォルニア 州、マウンテン ビュー、グレディース アベニュー 175、アパートメント ナン バー 11 (72)発明者 キャメロン,ジョージ アール. アメリカ合衆国、95010、カリフォルニア 州、キャピトラ、マックコーミック アベ ニュー 415 Fターム(参考) 5B014 GA08 GB07 5B045 BB12 BB29 EE02 EE29

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 データ記憶ファシリティへのアクセスを
    行うための少なくとも1つのノードを有するデータ記憶
    システム用ノード・コントローラにおいて、上記ノード
    のコンピュータ/メモリ複合体とは別個のノード・コン
    トローラであって、上記ノードを介してデータ転送を行
    うために全体制御を行うことを特徴とするノード・コン
    トローラ。
  2. 【請求項2】 請求項1記載のノード・コントローラに
    おいて、上記記憶システム内の少なくとも1つのデータ
    ・ソースから得られるデータに対して論理演算を実行す
    るように作動可能な論理エンジンを具備することを特徴
    とするノード・コントローラ。
  3. 【請求項3】 請求項2記載のノード・コントローラに
    おいて、上記少なくとも1つのデータ・ソースが、相互
    接続リンク、周辺機器構成要素相互接続(PCI)バ
    ス、または、クラスタ・メモリのうちの1つであること
    を特徴とするノード・コントローラ。
  4. 【請求項4】 請求項2載のノード・コントローラにお
    いて、上記論理エンジンが排他的論理和エンジンを具備
    することを特徴とするノード・コントローラ。
  5. 【請求項5】 請求項1記載のノード・コントローラに
    おいて、論理制御ブロックを記憶するように作動可能な
    コマンド待ち行列を具備することを特徴とするノード・
    コントローラ。
  6. 【請求項6】 請求項1記載のノード・コントローラに
    おいて、上記ノード内のクラスタ・メモリとインターフ
    ェースするように作動可能なメモリ・コントローラを具
    備することを特徴とするノード・コントローラ。
  7. 【請求項7】 請求項1記載のノード・コントローラに
    おいて、集積回路デバイスとして実現されることを特徴
    とするノード・コントローラ。
  8. 【請求項8】 請求項1記載のノード・コントローラに
    おいて、上記ノード・コントローラとPCIバスとの間
    のインターフェースをサポートするように作動可能な周
    辺機器構成要素相互接続(PCI)用制御インターフェ
    ースを具備することを特徴とするノード・コントロー
    ラ。
  9. 【請求項9】 データ記憶システムのノードを介してデ
    ータ転送を行うために全体制御を行うノード・コントロ
    ーラであって、上記ノードのコンピュータ/メモリ複合
    体とは別個のノード・コントローラにおいて、 上記記憶システム内の少なくとも1つのデータ・ソース
    から得られるデータに対して論理演算を実行するように
    作動可能な論理エンジンと、 上記論理エンジンに結合されるコマンド待ち行列であっ
    て、上記論理エンジンにより処理が可能な論理制御ブロ
    ックを記憶するように作動可能なコマンド待ち行列と、
    を具備することを特徴とするノード・コントローラ。
  10. 【請求項10】 請求項9記載のノード・コントローラ
    において、上記少なくとも1つのデータ・ソースが、相
    互接続リンク、周辺機器構成要素相互接続(PCI)バ
    ス、または、クラスタ・メモリのうちの1つであること
    を特徴とするノード・コントローラ。
  11. 【請求項11】 請求項9記載のノード・コントローラ
    において、上記論理エンジンが排他的論理和エンジンを
    具備することを特徴とするノード・コントローラ。
  12. 【請求項12】 請求項9記載のノード・コントローラ
    において、上記ノード内のクラスタ・メモリとインター
    フェースするように作動可能なメモリ・コントローラを
    具備することを特徴とするノード・コントローラ。
  13. 【請求項13】 請求項9記載のノード・コントローラ
    において、集積回路デバイスとして実現されることを特
    徴とするノード・コントローラ。
  14. 【請求項14】 請求項9記載のノード・コントローラ
    において、上記ノード・コントローラと、上記コンピュ
    ータ/メモリ複合体により管理されるPCIバスとの間
    のインターフェースをサポートするように作動可能な周
    辺機器構成要素相互接続(PCI)用制御インターフェ
    ースを具備することを特徴とするノード・コントロー
    ラ。
  15. 【請求項15】 請求項9記載のノード・コントローラ
    において、上記コンピュータ/メモリ複合体によりプロ
    グラムされるように作動可能であることを特徴とするノ
    ード・コントローラ。
  16. 【請求項16】 請求項9記載のノード・コントローラ
    において、 上記コマンド待ち行列の第1アドレスを指定するように
    作動可能なプロデューサ・レジスタと、 上記コマンド待ち行列の第2アドレスを指定するように
    作動可能なコンシューマ・レジスタと、を具備すること
    を特徴とするノード・コントローラ。
  17. 【請求項17】 データ記憶システムのノードを介して
    データ転送を行うために全体制御を行うノード・コント
    ローラであって、上記ノードのコンピュータ/メモリ複
    合体とは別個のノード・コントローラにおいて、 上記ノード・コントローラと、上記コンピュータ/メモ
    リ複合体により管理されるPCIバスとの間のインター
    フェースをサポートするように作動可能な周辺機器構成
    要素相互接続(PCI)用制御インターフェースと、 上記ノード内のクラスタ・メモリとインターフェースす
    るように作動可能なメモリ・コントローラと、 上記PCI制御インターフェースと上記メモリ・コント
    ローラとに結合される論理エンジンであって、上記PC
    Iバスまたは上記クラスタ・メモリから得られるデータ
    に対して論理演算を実行するように作動可能な論理エン
    ジンと、 上記論理エンジンに結合されるコマンド待ち行列であっ
    て、上記論理エンジンにより処理が可能な論理制御ブロ
    ックを記憶するように作動可能なコマンド待ち行列と、
    を具備することを特徴とするノード・コントローラ。
JP2002177070A 2001-06-18 2002-06-18 データ記憶システム用ノード・コントローラ Pending JP2003099383A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/883681 2001-06-18
US09/883,681 US7543100B2 (en) 2001-06-18 2001-06-18 Node controller for a data storage system

Publications (1)

Publication Number Publication Date
JP2003099383A true JP2003099383A (ja) 2003-04-04

Family

ID=25383105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002177070A Pending JP2003099383A (ja) 2001-06-18 2002-06-18 データ記憶システム用ノード・コントローラ

Country Status (5)

Country Link
US (1) US7543100B2 (ja)
EP (1) EP1291780B1 (ja)
JP (1) JP2003099383A (ja)
AT (1) ATE378636T1 (ja)
DE (1) DE60223470T2 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653710B2 (en) * 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US7809852B2 (en) * 2001-07-26 2010-10-05 Brocade Communications Systems, Inc. High jitter scheduling of interleaved frames in an arbitrated loop
FR2879321B1 (fr) 2004-12-09 2007-03-02 St Microelectronics Sa Circuit de pilotage de bus
US8189603B2 (en) 2005-10-04 2012-05-29 Mammen Thomas PCI express to PCI express based low latency interconnect scheme for clustering systems
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
WO2011156466A2 (en) 2010-06-08 2011-12-15 Hewlett-Packard Development Company, L.P. Storage caching
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US8370567B1 (en) 2012-03-23 2013-02-05 DSSD, Inc. Storage system with self describing data
US8301832B1 (en) 2012-03-23 2012-10-30 DSSD, Inc. Storage system with guaranteed read latency
US8341342B1 (en) 2012-03-23 2012-12-25 DSSD, Inc. Storage system with incremental multi-dimensional RAID
US8327185B1 (en) 2012-03-23 2012-12-04 DSSD, Inc. Method and system for multi-dimensional raid
US8554963B1 (en) 2012-03-23 2013-10-08 DSSD, Inc. Storage system with multicast DMA and unified address space
US8392428B1 (en) 2012-09-12 2013-03-05 DSSD, Inc. Method and system for hash fragment representation
US8464095B1 (en) 2012-11-15 2013-06-11 DSSD, Inc. Method and system for multi-dimensional raid reconstruction and defect avoidance
JP6005533B2 (ja) * 2013-01-17 2016-10-12 株式会社東芝 記憶装置および記憶方法
US8554997B1 (en) 2013-01-18 2013-10-08 DSSD, Inc. Method and system for mirrored multi-dimensional raid
US8601206B1 (en) 2013-03-14 2013-12-03 DSSD, Inc. Method and system for object-based transactions in a storage system
US8924776B1 (en) 2013-12-04 2014-12-30 DSSD, Inc. Method and system for calculating parity values for multi-dimensional raid
US8949692B1 (en) 2014-01-23 2015-02-03 DSSD, Inc. Method and system for service-aware parity placement in a storage system
US20150244795A1 (en) * 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9563509B2 (en) 2014-07-15 2017-02-07 Nimble Storage, Inc. Methods and systems for storing data in a redundant manner on a plurality of storage units of a storage system
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9378149B1 (en) 2014-08-29 2016-06-28 Emc Corporation Method and system for tracking modification times of data in a storage system
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US10466913B2 (en) 2015-04-29 2019-11-05 EMC IP Holding Company LLC Method and system for replicating and using grid level metadata in a storage system
US20160357435A1 (en) * 2015-06-08 2016-12-08 Alibaba Group Holding Limited High density high throughput low power consumption data storage system with dynamic provisioning
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10127113B1 (en) 2016-03-31 2018-11-13 EMC IP Holding Company LLC Method and system for checkerboard RAID
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10289491B1 (en) 2017-04-28 2019-05-14 EMC IP Holding Company LLC Method and system for implementing multi-dimensional raid in an extensible storage array to optimize performance
US10466930B2 (en) 2017-04-28 2019-11-05 EMC IP Holding Company LLC Method and system for fast ordered writes with atomic multicast
US10339062B2 (en) 2017-04-28 2019-07-02 EMC IP Holding Company LLC Method and system for writing data to and read data from persistent storage
US10614019B2 (en) 2017-04-28 2020-04-07 EMC IP Holding Company LLC Method and system for fast ordered writes with target collaboration
US10761929B2 (en) * 2017-05-25 2020-09-01 Western Digital Technologies, Inc. Data storage drive rebuild with parity generation offload using peer-to-peer data transfers
US20220179784A1 (en) * 2020-12-09 2022-06-09 Advanced Micro Devices, Inc. Techniques for supporting large frame buffer apertures with better system compatibility

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4920484A (en) 1988-10-05 1990-04-24 Yale University Multiprocessor/memory interconnection network wherein messages sent through the network to the same memory are combined
ATE157183T1 (de) 1989-07-06 1997-09-15 Digital Equipment Corp Eingabewarteschlange für speichersubsysteme
US5708668A (en) * 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
US6301711B1 (en) 1993-11-30 2001-10-09 International Business Machines Corporation System and method for the network support of full motion video using a redundant array of inexpensive disks
US6209067B1 (en) 1994-10-14 2001-03-27 Compaq Computer Corporation Computer system controller and method with processor write posting hold off on PCI master memory request
US5642478A (en) * 1994-12-29 1997-06-24 International Business Machines Corporation Distributed trace data acquisition system
US5613071A (en) 1995-07-14 1997-03-18 Intel Corporation Method and apparatus for providing remote memory access in a distributed memory multiprocessor system
JPH0946842A (ja) 1995-07-28 1997-02-14 Mitsubishi Heavy Ind Ltd ケーブルの繰り出し長さおよび繰り出し速度検出装置
US5768623A (en) * 1995-09-19 1998-06-16 International Business Machines Corporation System and method for sharing multiple storage arrays by dedicating adapters as primary controller and secondary controller for arrays reside in different host computers
US6044441A (en) * 1995-09-29 2000-03-28 Intel Corporation Method and apparatus for encoding valid and invalid states in a cache with an invalid pattern
JP3779385B2 (ja) 1996-09-04 2006-05-24 株式会社東芝 ディスクアレイ制御装置
US5842038A (en) 1996-10-10 1998-11-24 Unisys Corporation Optimized input/output memory access request system and method
US6026464A (en) * 1997-06-24 2000-02-15 Cisco Technology, Inc. Memory control system and method utilizing distributed memory controllers for multibank memory
US6044438A (en) * 1997-07-10 2000-03-28 International Business Machiness Corporation Memory controller for controlling memory accesses across networks in distributed shared memory processing systems
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
US6151659A (en) * 1997-12-22 2000-11-21 Emc Corporation Distributed raid storage system
US6173374B1 (en) * 1998-02-11 2001-01-09 Lsi Logic Corporation System and method for peer-to-peer accelerated I/O shipping between host bus adapters in clustered computer network
US6601138B2 (en) * 1998-06-05 2003-07-29 International Business Machines Corporation Apparatus system and method for N-way RAID controller having improved performance and fault tolerance
US6128762A (en) * 1998-08-04 2000-10-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system with request forwarding
US6067603A (en) * 1998-10-01 2000-05-23 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect
US6167492A (en) 1998-12-23 2000-12-26 Advanced Micro Devices, Inc. Circuit and method for maintaining order of memory access requests initiated by devices coupled to a multiprocessor system
US6604155B1 (en) * 1999-11-09 2003-08-05 Sun Microsystems, Inc. Storage architecture employing a transfer node to achieve scalable performance
US20020087765A1 (en) * 2000-12-29 2002-07-04 Akhilesh Kumar Method and system for completing purge requests or the like in a multi-node multiprocessor system
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
US7035928B2 (en) * 2001-04-25 2006-04-25 Hewlett-Packard Development Company, L.P. Allocating computer resources for efficient use by a program
US7082390B2 (en) * 2002-04-30 2006-07-25 Lsi Logic Corporation Advanced storage controller

Also Published As

Publication number Publication date
ATE378636T1 (de) 2007-11-15
EP1291780A2 (en) 2003-03-12
US20030188079A1 (en) 2003-10-02
EP1291780A3 (en) 2004-08-11
DE60223470D1 (de) 2007-12-27
DE60223470T2 (de) 2008-10-02
US7543100B2 (en) 2009-06-02
EP1291780B1 (en) 2007-11-14

Similar Documents

Publication Publication Date Title
JP2003099383A (ja) データ記憶システム用ノード・コントローラ
US6658478B1 (en) Data storage system
US11556433B2 (en) High performance persistent memory
US6799252B1 (en) High-performance modular memory system with crossbar connections
US6253271B1 (en) Bridge for direct data storage device access
US7953899B1 (en) Universal diagnostic hardware space access system for firmware
JP4286826B2 (ja) マルチプロセッサシステムで多重構成をサポートする方法及び装置
US20050166006A1 (en) System including a host connected serially in a chain to one or more memory modules that include a cache
JP3836838B2 (ja) マルチプロセッサ・システムでのプロセッサ相互接続を使用するマイクロプロセッサ通信の方法およびデータ処理システム
US5937174A (en) Scalable hierarchial memory structure for high data bandwidth raid applications
JPH0776942B2 (ja) マルチプロセッサ・システムおよびそのデータ伝送装置
US20050283546A1 (en) Switch/network adapter port coupling a reconfigurable processing element to one or more microprocessors for use with interleaved memory controllers
JP2004506267A5 (ja)
US11741034B2 (en) Memory device including direct memory access engine, system including the memory device, and method of operating the memory device
US20060236032A1 (en) Data storage system having memory controller with embedded CPU
JP4703189B2 (ja) インタリーブされたメモリコントローラとともに用いるために再構成可能な処理要素を1つ以上のマイクロプロセッサに結合するスイッチ/ネットワークアダプタポート
US20220147470A1 (en) System, device, and method for accessing memory based on multi-protocol
US7136972B2 (en) Apparatus, system, and method for distributed management in a storage system
WO2016122602A1 (en) Systems and methods for sharing non-volatile memory between multiple access models
US6847990B2 (en) Data transfer unit with support for multiple coherency granules
US20220164286A1 (en) Memory controller, system including the same, and operating method of memory device
Lenoski et al. Scalable Shared-Memory Multiprocessing and the Silicon Graphics S2MP Architecture