JP2001331385A - 別個のデータ転送部、および共通回路ボード上に複数のディレクタを備えたメッセージ・ネットワークを有するデータ記憶システム - Google Patents

別個のデータ転送部、および共通回路ボード上に複数のディレクタを備えたメッセージ・ネットワークを有するデータ記憶システム

Info

Publication number
JP2001331385A
JP2001331385A JP2001099693A JP2001099693A JP2001331385A JP 2001331385 A JP2001331385 A JP 2001331385A JP 2001099693 A JP2001099693 A JP 2001099693A JP 2001099693 A JP2001099693 A JP 2001099693A JP 2001331385 A JP2001331385 A JP 2001331385A
Authority
JP
Japan
Prior art keywords
director
data
directors
cache memory
message
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.)
Granted
Application number
JP2001099693A
Other languages
English (en)
Other versions
JP4350319B2 (ja
Inventor
Stephen D Macarthur
スティーブン・ディー・マッカーサー
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.)
EMC Corp
Original Assignee
EMC Corp
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 EMC Corp filed Critical EMC Corp
Publication of JP2001331385A publication Critical patent/JP2001331385A/ja
Application granted granted Critical
Publication of JP4350319B2 publication Critical patent/JP4350319B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Abstract

(57)【要約】 (修正有) 【課題】 構成部品の障害時にシステム全体を障害から
保護する冗長構成を有するデータ記憶システムを提供す
る。 【解決手段】 複数の第1,第2ディレクタと、第1,
第2ディレクタ・ボードのかかる1つの上の第1,第2
ディレクタに結合されている入出力ポートと、1対の出
入力ポートとを有するクロスバー・スイッチとを有する
システム・インターフェースとキャッシュ・メモリを有
するデータ転送部が設けられている。キャッシュ・メモ
リは複数の第1および第2ディレクタに結合されてい
る。メッセージ・ネットワークが設けられており、かか
るネットワークは、データ転送部とは独立して動作す
る。データは、データ転送部内のキャッシュ・メモリを
通過する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的に、データ
記憶システムに関し、更に特定すれば、記憶システムの
構成部品またはサブアセンブリ内における障害時に、シ
ステム全体を障害から保護する冗長構成を有するデータ
記憶システムに関する。
【0002】
【従来の技術】当技術分野では公知であるが、大型のホ
スト・コンピュータおよびサーバ(ここでは総称して
「ホスト・コンピュータ/サーバ」と呼ぶ)は、大容量
データ記憶システムを必要とする。これらの大型コンピ
ュータ/サーバは、一般に、データ・プロセッサを有
し、データ記憶システムを含む周辺機器を介してホスト
・コンピュータ/サーバに導入されるデータに対して、
多くの処理を実行する。これらの処理の結果は、記憶シ
ステムを含む周辺機器に出力される。
【0003】データ記憶システムの一種に、磁気ディス
ク記憶システムがある。ここでは、ディスク・ドライブ
・バンクおよびホスト・コンピュータ/サーバが、イン
ターフェースを介して互いに結合されている。インター
フェースは、「フロント・エンド」、即ち、ホスト・コ
ンピュータ/サーバ・コントローラ(またはディレク
タ)および「バック・エンド」、即ち、ディスク・コン
トローラ(またはディレクタ)を含む。インターフェー
スは、コントローラ(またはディレクタ)がホスト・コ
ンピュータ/サーバに対して透過的であるように、これ
らを動作させる。即ち、ホスト・コンピュータ/サーバ
が単にディスク・ドライブ・バンクがそれ自体のローカ
ル・ディスク・ドライブとして動作していると考えるよ
うに、ディスク・ドライブ・バンクにデータを記憶し、
ここからデータを検索する。かかるシステムの1つ
が、”System and Method for
DiskMapping and Data Retr
ieval”(ディスク・マッピングおよびデータ検索
システムおよび方法)と題する米国特許第5,206,
939号に記載されている。この特許の発明者は、Mo
she Yanai(モッシュ・ヤナイ)、Natan
Vishlitzky(ナタン・ビシュリツキ)、B
runo Alterescu(ブルーノ・アルテレス
ク)およびDaniel Castel(ダニエル・カ
ステル)であり、1993年4月27日に発行され、本
願と同一譲受人に譲渡されている。
【0004】この米国特許に記載されているように、イ
ンターフェースは、ホスト・コンピュータ/サーバ・コ
ントローラ(またはディレクタ)およびディスク・コン
トローラ(またはディレクタ)に加えて、アドレス可能
なキャッシュ・メモリも含むことができる。キャッシュ
・メモリとは、半導体メモリであって、ディスク・ドラ
イブ内への記憶の前に、ホスト・コンピュータ/サーバ
からのデータを迅速に記憶し、一方ホスト・コンピュー
タ/サーバに送る前に、ディスク・ドライブからのデー
タを記憶するために設けられている。半導体メモリであ
るキャッシュ・メモリは、ディスク・ドライブの場合に
おけるような磁気メモリとは異なり、そのデータ読み出
しおよび書き込みが、ディスク・ドライブよりも遥かに
速い。
【0005】ホスト・コンピュータ/サーバ・コントロ
ーラ、ディスク・コントローラおよびキャッシュ・メモ
リは、バックプレーン(背面)プリント回路ボードを介
して相互接続されている。即ち、ディスク・コントロー
ラがディスク・コントローラ・プリント回路ボード上に
実装されている。ホスト・コンピュータ/サーバ・コン
トローラは、ホスト・コンピュータ/サーバ・コントロ
ーラ・プリント回路ボード上に実装されている。そし
て、キャッシュ・メモリは、キャッシュ・メモリ・プリ
ント回路ボード上に実装されている。ディスク・ディレ
クタ、ホスト・コンピュータ/サーバ・ディレクタ、お
よびキャッシュ・メモリ・プリント回路ボードは、背面
プリント回路ボード内に差し込まれる。ディレクタにお
ける障害の場合にデータの完全性を得るために、背面プ
リント回路ボードは1対のバスを有する。1組のディス
ク・ディレクタが一方のバスに接続され、他の1組のデ
ィスク・ディレクタが他方のバスに接続されている。同
様に、1組のホスト・コンピュータ/サーバ・ディレク
タが、一方のバスに接続され、他の1組のホスト・コン
ピュータ/サーバ・ディレクタが他方のバスに接続され
ている。キャッシュ・メモリは双方のバスに接続されて
いる。バスの各1つは、データ、アドレスおよび制御情
報を供給する。
【0006】この構成を図1に概略的に示す。即ち、2
系統のバスB1、B2の使用により、ある程度の冗長性
を備え、一方のバスに接続されているコントローラまた
はディスク・ドライブに障害が発生した場合に、システ
ム全体を障害から保護する。更に、2系統のバスを用い
ることにより、単一のバスを有するシステムと比較し
て、システムのデータ転送帯域幅が増大する。したがっ
て、動作において、ホスト・コンピュータ/サーバ12
がデータを記憶したい場合、ホスト・コンピュータ12
は書き込み要求をフロント・エンド・ディレクタ14
(即ち、ホスト・コンピュータ/サーバ・ディレクタ)
の1つに発行し、書き込みコマンドを実行する。フロン
ト・エンド・ディレクタ14の1つは、要求に答えて、
ホスト・コンピュータ12にデータを求める。要求がフ
ロント・エンド・ディレクタ14の内の要求する1つに
渡った後、当該ディレクタ14は、データのサイズを決
定し、要求を記憶するためにキャッシュ・メモリ18内
に空間を予約する。次に、フロント・エンド・ディレク
タ14は、このフロント・エンド・ディレクタ14に接
続されているアドレス・メモリ・バスB1、B2の一方
の上で制御信号を生成し、キャッシュ・メモリ18への
転送をイネーブルする。次に、ホスト・コンピュータ/
サーバ12は、データをフロント・エンド・ディレクタ
14に転送する。すると、フロント・エンド・ディレク
タ14は、ホスト・コンピュータ/サーバ12に、転送
が完了したことを通知する。フロント・エンド・ディレ
クタ14は、キャッシュ・メモリ18内に格納されてい
る、図示しない表を調べ、バック・エンド・ディレクタ
20(即ち、ディクス・ディレクタ)の内どれがこの要
求を処理するか決定する。表は、ホスト・コンピュータ
・サーバ12のアドレスを、ディスク・ドライブ・バン
ク14内のアドレスにマップする。次に、フロント・エ
ンド・ディレクタ14は、要求を処理すべきバック・エ
ンド・ディレクタ20に対する「メール・ボックス」
(図示せず。キャッシュ・メモリ18内に記憶されてい
る)に、データ量およびデータのディスク・アドレスの
通知を入力する。他のバック・エンド・ディレクタ20
は、アイドル状態にあるときに、キャッシュ・メモリ1
8をポールし、それらの「メール・ボックス」をチェッ
クする。ポールした「メール・ボックス」が、転送を行
なうべきことを指示する場合、バック・エンド・ディレ
クタ20は要求を処理し、バンク22内のディスク・ド
ライブにアドレスし、キャッシュ・メモリ18からデー
タを読み出し、これをバンク22内のディスク・ドライ
ブのアドレスに書き込む。
【0007】バンク22内のディスク・ドライブからホ
スト・コンピュータ/サーバ12にデータを読み出す場
合、システムは逆に動作する。即ち、読み出し動作の
間、読み出し要求が、ホスト・コンピュータ/サーバ1
2によって、指定のメモリ・ロケーション(即ち、要求
されたデータ・ブロック)におけるデータに対して発せ
られる。フロント・エンド・ディレクタ14の1つは、
読み出し要求を受け取り、キャッシュ・メモリ18を検
査して、要求されたデータ・ブロックがキャッシュ・メ
モリ18内に記憶されているか否かについて判定を行な
う。要求されたデータ・ブロックがキャッシュ・メモリ
18内にある場合、キャッシュ・メモリ18から要求さ
れたデータ・ブロックを読み出し、ホスト・コンピュー
タ/サーバ12に送る。フロント・エンド・ディレクタ
14が、要求されたデータ・ブロックがキャッシュ・メ
モリ18内にないと判定した場合(即ち、いわゆる「キ
ャッシュ・ミス」)、ディレクタ14は、キャッシュ・
メモリ18(即ち、「メール・ボックス」)に、要求さ
れたデータ・ブロックを受け取る必要があることの注意
を書き込む。バック・エンド・ディレクタ20はキャッ
シュ・メモリ18をポールし、取るべき処置(即ち、要
求されたデータ・ブロックの読み出し動作)があるか否
かについて判定を行なう。キャッシュ・メモリ18のメ
ール・ボックスをポールし、読み出し動作を検出したバ
ック・エンド・ディレクタ20の1つは、要求されたデ
ータ・ブロックを読み出し、キャッシュ・メモリ18内
に記憶されている、要求されたデータ・ブロックの記憶
を開始する。記憶が完全にキャッシュ・メモリ18内に
書き込まれたとき、読み出し完了指示をキャッシュ・メ
モリ18内の「メール・ボックス」に置く。尚、フロン
ト・エンド・ディレクタ14は、読み出し完了指示を見
つけるために、キャッシュ・メモリ18をポールするこ
とを注記しておく。ポールしているフロント・エンド・
ディレクタ14の1つが読み出し完了指示を検出した場
合、このフロント・エンド・ディレクタ14は、この時
点ではキャッシュ・メモリ18内に記憶されている要求
データの、ホスト・コンピュータ/サーバ12への転送
を完了する。
【0008】
【発明が解決しようとする課題】メールボックスおよび
ポーリングを使用すると、ホスト・コンピュータ/サー
バ12およびディスク・ドライブ・バンク22間でデー
タを転送する時間が必要となるため、インターフェース
の動作帯域幅の減少を招くことになる。
【0009】
【課題を解決するための手段】本発明によれば、システ
ム・インターフェースを提供する。インターフェース
は、複数の第1ディレクタ・ボードを含む。第1ディレ
クタ・ボードの各々は、(i)複数の第1ディレクタ
と、(ii)第1ディレクタ・ボードのかかる1つの上
の第1ディレクタに結合されている入出力ポートと、1
対の出入力ポートとを有するクロスバー・スイッチとを
有する。複数の第2ディレクタ・ボードが設けられてい
る。第2ディレクタ・ボードの各1つは、(i)複数の
第2ディレクタと、(ii)第2ディレクタ・ボードの
かかる1つの上の第2ディレクタに結合されている入出
力ポートと、1対の出入力ポートとを有するクロスバー
・スイッチとを有する。キャッシュ・メモリを有するデ
ータ転送部が設けられている。キャッシュ・メモリは複
数の第1および第2ディレクタに結合されている。メッ
セージ・ネットワークが設けられており、かかるネット
ワークは、データ転送部とは独立して動作する。第1お
よび第2ディレクタは、メッセージ・ネットワークを通
じて第1ディレクタおよび第2ディレクタ間を通過する
メッセージに応答して、第1ディレクタおよび第2ディ
レクタ間のデータ転送を制御し、第1ディレクタおよび
第2ディレクタ間のデータ転送を容易にする。データ
は、データ転送部内のキャッシュ・メモリを通過する。
【0010】一実施形態では、ディレクタの各1つは、
第1ディレクタのかかる1つの入力とキャッシュ・メモ
リとの間に結合されているデータ・パイプと、メッセー
ジ・ネットワークと第1ディレクタのかかる1つとの間
でメッセージを転送するコントローラとを含む。
【0011】一実施形態では、ディレクタの各1つは、
第1ディレクタのかかる1つの入力とキャッシュ・メモ
リとの間に結合されているデータ・パイプと、マイクロ
プロセッサとを含む。コントローラが、マイクロプロセ
ッサおよびデータ・パイプに結合され、メッセージ・ネ
ットワークと第1ディレクタのかかる1つとの間におけ
るメッセージ転送を制御し、かつ第1ディレクタのかか
る1つの入力とキャッシュ・メモリとの間でデータを制
御する。
【0012】本発明のこれらおよびその他の特徴は、以
下の詳細な説明を添付図面と共に読むことによって、一
層容易に明らかとなろう。
【0013】
【発明の実施の形態】これより図2を参照し、システム
・インターフェース160を介してホスト・コンピュー
タ/サーバ120とディスク・ドライブ・バンク140
との間でデータを転送するデータ記憶システム100を
示す。図示のように、システム・インターフェース16
0は、ポート1231〜12332を介してホスト・コン
ピュータ/サーバ120に結合されている、ここでは3
2個の、複数のフロント・エンド・ディレクタ1801
〜18032、ポート12333〜12364を介してディス
ク・ドライブ・バンク140に結合されている複数のバ
ック・エンド・ディレクタ2001〜20032、グロー
バル・キャッシュ・メモリ220を有し、複数のフロン
ト・エンド・ディレクタ1801〜18016およびバッ
ク・エンド・ディレクタ2001〜20016に結合され
ているデータ転送部240、ならびにデータ転送部24
0とは独立して動作し、複数のフロント・エンド・ディ
レクタ1801〜18032およびバック・エンド・ディ
レクタ2001〜20032に結合されているメッセージ
・ネットワーク260を含む。フロント・エンド・ディ
レクタ1801〜18032およびバック・エンド・ディ
レクタ2001〜20032は、機能的に同様であり、マ
イクロプロセッサ(μP)299(即ち、中央演算装置
(CPU)およびRAM)、メッセージ・エンジン/C
PUコントローラ314、およびデータ・パイプ316
を含む。これらについては、図6、図7および図8と関
連付けて更に詳しく説明する。しかしながら、ここで
は、フロント・エンド・ディレクタ1801〜18032
およびバック・エンド・ディレクタ2001〜20032
は、メッセージ・ネットワーク260を通じてディレク
タ1801〜18032および2001〜20032間で受け
渡されるメッセージに応答して、ホスト・コンピュータ
/サーバ120およびディスク・ドライブ・バンク14
0間のデータ転送を制御することを言えば十分であろ
う。このメッセージは、ホスト・コンピュータ/サーバ
120およびディスク・ドライブ・バンク140間のデ
ータ転送を容易にする。かかるデータは、データ転送部
240を介してグローバル・キャッシュ・メモリ220
を通過する。即ち、フロント・エンド・ディレクタ18
1〜18032の場合、データは、ホスト・コンピュー
タからフロント・エンド・ディレクタ1801〜180
32内のデータ・パイプ316を通じて、グローバル・キ
ャッシュ・メモリ220に渡り、メッセージは、かかる
フロント・エンド・ディレクタ1801〜18032内の
メッセージ・エンジン/CPUコントローラ314を通
過する。バック・エンド・ディレクタ2001〜200
32の場合、データは、バック・エンド・ディレクタ20
1〜20032から、バック・エンド・ディレクタ20
1〜20032内のデータ・パイプ316を通じて、デ
ィスク・ドライブ・バンク140およびグローバル・キ
ャッシュ・メモリ220に渡り、メッセージはこの場合
もかかるバック・エンド・ディレクタ2001〜200
32内のメッセージ・エンジン/CPUコントローラ31
4を通過する。
【0014】かかる構成では、データ転送部240内の
キャッシュ・メモリ220には、ディレクタのメッセー
ジを転送する負担がかからない。むしろ、メッセージ・
ネットワーク260が、データ転送部240とは独立し
て動作することにより、システム・インターフェース1
60の動作帯域幅が増大する。
【0015】動作において、まず最初にホスト・コンピ
ュータ/サーバ120による読み出し要求について検討
すると(即ち、ホスト・コンピュータ/サーバ120は
ディスク・ドライブ・バンク140からのデータを要求
する)、要求は、ホスト・コンピュータ120内の複
数、ここでは32個のホスト・コンピュータ・プロセッ
サ1211〜12132の1つから、かかるホスト・コン
ピュータ・プロセッサ1211〜12132に接続されて
いる1つ以上のフロント・エンド・ディレクタ1801
〜18032の対に渡される。(尚、ホスト・コンピュー
タ120内において、ホスト・コンピュータ・プロセッ
サ1211〜12132の各々は、ここでは1対の(しか
し、1対に限定される訳ではない)フロント・エンド・
ディレクタ1801〜18032に結合され、それに結合
されているフロント・エンド・ディレクタ1801〜1
8032の1つにおける障害の場合に、冗長性が得られる
ようになっていることを注記しておく。同様に、ディス
ク・ドライブ・バンク140は、複数、ここでは32個
のディスク・ドライブ1411〜14132を有し、各デ
ィスク・ドライブ1411〜14132はここでは1対の
(しかし、1対に限定される訳ではない)バック・エン
ド・ディレクタ2001〜20032に結合され、これら
に結合されているバック・エンド・ディレクタ2001
〜20032の1つにおける障害の場合に冗長性が得られ
るようになっている。)各フロント・エンド・ディレク
タ1801〜18032は、マイクロプロセッサ(μP)
299(即ち、中央演算装置(CPU)およびRAM)
を含み、図6および図8に関連付けて詳細に説明する。
しかしながら、ここでは、マイクロプロセッサ299は
グローバル・キャッシュ・メモリ220からのデータを
要求することを言えば十分であろう。グローバル・キャ
ッシュ・メモリ220は、図示しない、常駐キャッシュ
管理テーブルを有する。各ディレクタ1801〜180
32、2001〜200 32は、常駐キャッシュ管理テーブ
ルにアクセスすることができ、フロント・エンド・ディ
レクタ1801〜18032がデータ転送を要求する毎
に、フロント・エンド・ディレクタ1801〜18032
はグローバル・キャッシュ・メモリ220に問い合わ
せ、要求したデータがグローバル・キャッシュ・メモリ
220内にあるか否かについて判定しなければならな
い。要求したデータがグローバル・キャッシュ・メモリ
220内にある場合(即ち、読み出し「ヒット」)、フ
ロント・エンド・ディレクタ1801〜18032、即
ち、その中にあるマイクロプロセッサ299は、グロー
バル・キャッシュ・メモリ220のためにDMA(直接
メモリ・アクセス)動作を仲介し、要求されたデータ
は、要求元のホスト・コンピュータ・プロセッサ121
1〜12132に転送される。
【0016】一方、グローバル・キャッシュ・メモリ2
20内のキャッシュ管理テーブルの問い合わせの結果と
して、データ要求を受信したフロント・エンド・ディレ
クタ1801〜18032が、要求データはグローバル・
キャッシュ・メモリ220内にないと判定した場合(即
ち、「ミス」)、かかるフロント・エンド・ディレクタ
1801〜18032は、要求データがディスク・ドライ
ブ・バンク140内にあると結論付ける。このため、デ
ータ要求を受信したフロント・エンド・ディレクタ18
1〜18032は、バック・エンド・ディレクタ2001
〜20032の1つからのデータを要求し、かかるバック
・エンド・ディレクタ2001〜2003 2がディスク・
ドライブ・バンク140からのデータを要求するように
しなければならない。どのバック・エンド・ディレクタ
2001〜20032がディスク・ドライブ・バンク14
0内のどのディスク・ドライブ1411〜14132を制
御するかというマッピングは、起動初期化フェーズにお
いて決定される。マップはグローバル・キャッシュ・メ
モリ220内に記憶されている。したがって、フロント
・エンド・ディレクタ1801〜18032がグローバル
・キャッシュ・メモリ220からのデータを要求し、要
求したデータがグローバル・キャッシュ・メモリ220
内にない(即ち、「ミス」)と判断した場合、フロント
・エンド・ディレクタ1801〜18032には、ディス
ク・ドライブ・バンク140内の要求データを担当する
バック・エンド・ディレクタ2001〜20032のグロ
ーバル・キャッシュ・メモリ220内のマップによって
も通知される。次に、要求元のフロント・エンド・ディ
レクタ1801〜18032は、マップで指定されたバッ
ク・エンド・ディレクタ2001〜20032からディス
ク・ドライブ・バンク140内のデータを要求しなけれ
ばならない。このフロント・エンド・ディレクタ180
1〜18032とバック・エンド・ディレクタ2001〜2
0032の内適切な1つ(グローバル・キャッシュ・メモ
リ220内に記憶されているマップによって判定する)
との間の要求は、メッセージによって行われる。このメ
ッセージは、フロント・エンド・ディレクタ1801
18032からメッセージ・ネットワーク260を通じて
適切なバック・エンド・ディレクタ2001〜20032
に到達する。尚、メッセージはグローバル・キャッシュ
・メモリ220を通過せず(即ち、データ転送部240
を通過しない)、代わりに別個の独立したメッセージ・
ネットワーク260を通過することを注記しておく。こ
のように、ディレクタ1801〜18032、2001〜2
0032間の通信は、メッセージ・ネットワーク260を
通じて行われるのであり、グローバル・キャッシュ・メ
モリ220を通じてではない。その結果、グローバル・
キャッシュ・メモリ220にとって貴重な帯域幅は、デ
ィレクタ1801〜18032、2001〜20032間のメ
ッセージのやりとりには用いられない。
【0017】したがって、グローバル・キャッシュ・メ
モリ220における「読み出しミス」時には、フロント
・エンド・ディレクタ1801〜18032は、メッセー
ジ・ネットワーク260を通じて、バック・エンド・デ
ィレクタ2001〜20032の適切な1つにメッセージ
を送り、かかるバック・エンド・ディレクタ2001
20032に、要求データをディスク・ドライブ・バンク
140からグローバル・キャッシュ・メモリ220に転
送するように命令する。完了時に、バック・エンド・デ
ィレクタ2001〜20032は、要求元のフロント・エ
ンド・ディレクタ1801〜18032に、メッセージに
よってデータ転送が完了したことを通知する。メッセー
ジは、バック・エンド・ディレクタ2001〜20032
からメッセージ・ネットワーク260を通じてフロント
・エンド・ディレクタ1801〜18032に達する。承
認信号に応答して、フロント・エンド・ディレクタ18
1〜18032には、これによって、キャッシュ「読み
出しヒット」が得られた場合に、前述したように、かか
るフロント・エンド・ディレクタ1801〜180
3 2が、グローバル・キャッシュ・メモリ220から要求
元のホスト・コンピュータ・プロセッサ1211〜12
32にデータを転送できることが通知される。
【0018】尚、要求データを担当するバック・エンド
・ディレクタ2001〜20032が1つ以上あり得るこ
とも注記しておく。したがって、要求データを担当する
バック・エンド・ディレクタ2001〜20032が1つ
だけの場合、要求元のフロント・エンド・ディレクタ1
801〜18032は、メッセージ・ネットワーク260
を通じて、バック・エンド・ディレクタ2001〜20
32の特定の1つのみにユニキャスト・メッセージを送
る。一方、要求データを担当するバック・エンド・ディ
レクタ2001〜20032が1つよりも多い場合、フロ
ント・エンド・ディレクタ1801〜18032の内要求
元から、要求データを担当するバック・エンド・ディレ
クタ2001〜20032全てに、マルチキャスト・メッ
セージ(ここでは、一連のユニキャスト・メッセージと
して実現する)を送る。いずれの場合でも、ユニキャス
トおよびマルチキャスト・メッセージ双方を用いる際、
かかるメッセージはメッセージ・ネットワーク260を
通じて受け渡されるのであり、データ転送部240を通
じてではない(即ち、グローバル・キャッシュ・メモリ
220を通じてではない)。
【0019】同様に、データを要求するホスト・コンピ
ュータ・プロセッサ1211〜12132が1つであって
も、データ読み出し動作を完了するためには、マルチキ
ャスト(即ち、一連のユニキャスト)メッセージによっ
て、メッセージ・ネットワーク260を通じて要求元の
ホスト・コンピュータ・プロセッサ1211または1つ
以上のその他のホスト・コンピュータ・プロセッサ12
1〜12132に承認信号を送る場合もあることを注記
しておく。
【0020】書き込み動作について検討する。ホスト・
コンピュータ120は、データをストレージ(即ち、デ
ィスク・ドライブ・バンク140)に書き込もうとす
る。フロント・エンド・ディレクタ1801〜18032
の1つが、ホスト・コンピュータ120からデータを受
信し、それをグローバル・キャッシュ・メモリ220に
書き込む。次いで、フロント・エンド・ディレクタ18
1〜18032は、バック・エンド・ディレクタ2001
〜20032がかかるキャッシュ・メモリ220からデー
タを取り出しディスク・ドライブ・バンク140に記憶
することができると判断した場合、ある時間期間の後
に、かかるデータの転送を要求する。ディスク・ドライ
ブ・バンク140への転送の前に、キャッシュ・メモリ
220内のデータには、「フレッシュ・データ」(即
ち、ディスク・ドライブ・バンク140に転送されてい
ないデータ、つまり、「書き込み保留」のデータ)とし
てのビットが添付される。したがって、ディスク・ドラ
イブ・バンク140への転送前に、グローバル・キャッ
シュ・メモリ220内の同一メモリ・ロケーション(例
えば、特定のバンク・アカウント)に対して多数の書き
込み要求がある場合、キャッシュ・メモリ220内のデ
ータは、最新データによって上書きされる。データがグ
ローバル・キャッシュ・メモリ220に転送される毎
に、当該転送を制御するフロント・エンド・ディレクタ
1801〜18032は、転送が完了したことをホスト・
コンピュータ120にも知らせることによって、他のデ
ータ転送のためにホスト・コンピュータ120を解放す
る。
【0021】グローバル・キャッシュ・メモリ220内
のデータをディスク・ドライブ・バンク140に転送す
る時刻となったとバック・エンド・ディレクタ2001
〜20032が判断した場合、バック・エンド・ディレク
タ2001〜20032は、グローバル・キャッシュ・メ
モリ220からディスク・ドライブ・バンク140にデ
ータを転送し、グローバル・キャッシュ・メモリ220
内のデータと関連付けられているタグをリセットし(即
ち、データのタグを除去し)、グローバル・キャッシュ
・メモリ220内のデータがディスク・ドライブ・バン
ク140に転送されたことを示す。尚、グローバル・キ
ャッシュ・メモリ220内においてタグを除去されたデ
ータは、新たなデータによって上書きされるまで、そこ
に残っていることを注記しておく。
【0022】次に図4および図5を参照し、電気キャビ
ネット300を含むシステム・インターフェース160
を示す。電気キャビネット300は、内部に、ここでは
各々4つのフロント・エンド・ディレクタ1801〜1
8032を有する複数、ここでは、8つのフロント・エン
ド・ディレクタ・ボード1901〜1908、ここでは各
々4つのバック・エンド・ディレクタ2001〜200
32を有する、複数、ここでは、8つのバック・エンド・
ディレクタ・ボード2101〜2108、および複数、こ
こでは、8つのメモリ・ボード220’を格納してい
る。これら全体でグローバル・キャッシュ・メモリ22
0を構成する。これらのボードは、背面302の前側に
差し込まれる。(尚、背面302は半平面(mid−p
lane)プリント回路ボードであることを注記してお
く。)背面302の後ろ側に差し込まれるのは、メッセ
ージ・ネットワーク・ボード3041、3042である。
背面302の後ろ側は、図2ないし図5には示されてい
ない、アダプタ・ボードが差し込まれている。これら
は、図2に示すように、背面302の後ろ側に差し込ま
れたボードを、コンピュータ120およびディスク・ド
ライブ・バンク140と結合する。即ち、端的に再度図
2を参照すると、図示しないI/Oアダプタが、フロン
ト・エンド・ディレクタ1801〜18032の各1つお
よびホスト・コンピュータ120間に結合され、図示し
ないI/Oアダプタが、バック・エンド・ディレクタ2
001〜20032の各1つおよびディスク・ドライブ・
バンク140の間に結合されている。
【0023】次に図6を参照すると、背面302に差し
込まれた、ディレクタ・ボード1901〜1908、21
1〜2108およびグローバル・キャッシュ・メモリ2
20、ならびに、ホスト・コンピュータ120と共に、
図示しないI/Oアダプタ・ボードを介して同様に背面
302に差し込まれた、ディスク・ドライブ・バンク内
のディスク・ドライブ1411〜14132を含むシステ
ム・インターフェース160が示されている。メッセー
ジ・ネットワーク260(図2)は、メッセージ・ネッ
トワーク・ボード3041および3042を含む。メッセ
ージ・ネットワーク・ボード3041および3042の各
1つは、その構造が同一である。1対のメッセージ・ネ
ットワーク・ボード3041および3042は、冗長性お
よびメッセージ負荷の均衡化のために用いられる。した
がって、各メッセージ・ネットワーク・ボード30
1、3042は、コントローラ306(即ち、メッセー
ジ・ネットワーク・ボード3041、3042の一方、こ
こではボード3041について図7に示すように、CP
U、システム・コントローラ・インターフェース、およ
びメモリから成る初期化および診断プロセッサ)、およ
びクロスバー・スイッチ部308(例えば、ここでは4
つのスイッチ3081〜3084で構成されたスイッチン
グ・ファブリック)を含む。
【0024】再度図6を参照すると、ディレクタ・ボー
ド1901〜2108の各1つは、先に注記したように、
4つのディレクタ1801〜18032、2001〜200
32(図2)を含む。尚、ボード当たり4つのフロント・
エンド・ディレクタ1801〜18032を有するディレ
クタ・ボード1901〜1908をフロント・エンド・デ
ィレクタと呼び、ボード当たり4つのバック・エンド・
ディレクタ2001〜20032を有するディレクタ・ボ
ード2101〜2108をバック・エンド・ディレクタと
呼ぶことを注記しておく。ディレクタ1801〜180
32、ディレクタ2001〜20032の各1つは、CPU
310、RAM312(先に言及したマイクロプロセッ
サ299を構成する)、メッセージ・エンジン/CPU
コントローラ314、およびデータ・パイプ316を含
む。
【0025】ディレクタ・ボード1901〜2108の各
1つは、クロスバー・スイッチ318を含む。クロスバ
ー・スイッチ318は、4つの入出力ポート319を有
し、各1つが、ディレクタ・ボード1901〜2108
の4つのディレクタ1801〜18032、2001〜20
32の対応する1つのデータ・パイプ316に結合され
ている。クロスバー・スイッチ318は、図6において
参照番号321で集合的に識別されている8つの出入力
ポートを有する(これらは背面302に差し込まれ
る)。フロント・エンド・ディレクタ・ボード1911
〜1918上のクロスバー・スイッチ318は、フロン
ト・エンド・ディレクタ・ボード1901〜1908上の
4つのフロント・エンド・ディレクタ1801〜180
32から選択した1つのデータ・パイプ316を、背面3
02および図示しないI/Oアダプタを介して、グロー
バル・キャッシュ・メモリ220に結合するために用い
られる。バック・エンド・ディレクタ・ボード2101
〜2108上のクロスバー・スイッチ318は、バック
・エンド・ディレクタ・ボード2101〜2108上の4
つのバック・エンド・ディレクタ2001〜20032
ら選択した1つのデータ・パイプ316を、背面302
および図示しないI/Oアダプタを介して、グローバル
・キャッシュ・メモリ220に結合するために用いられ
る。したがって、図2を参照すると、フロント・エンド
・ディレクタ1801〜18032内のデータ・パイプ3
16は、ホスト・コンピュータ120およびグローバル
・キャッシュ・メモリ220間でデータを結合し、一方
バック・エンド・ディレクタ2001〜20032内のデ
ータ・パイプ316は、ディスク・ドライブ・バンク1
40およびグローバル・キャッシュ・メモリ220間で
データを結合する。尚、ディレクタ1801〜18
32、2001〜20032の各1つおよびグローバル・
キャッシュ・メモリ220の間には、別個の二点間デー
タ経路P1〜P64(図2)があることを注記しておく。
また、背面302は、プリント回路ボードの1つ以上の
層の上において、エッチングした導体のみで構成されて
いるので、受動背面であることを注記しておく。即ち、
背面302は能動構成部品を全く有していない。
【0026】再度図6を参照すると、ディレクタ・ボー
ド1901〜2108の各1つはクロスバー・スイッチ3
20を含む。各クロスバー・スイッチ320は、4つの
入出力ポート323を有し、4つの入出力ポート323
の各1つは、ディレクタ・ボード1901〜2108上の
4つのディレクタ1801〜18032、2001〜200
32の対応する1つのメッセージ・エンジン/CPUコン
トローラ314に結合されている。各クロスバー・スイ
ッチ320は、1対の出入力ポート3251、3252
有し、これらは背面302に差し込まれている。各ポー
ト3251、3252は、それぞれ、背面302を介し
て、メッセージ・ネットワーク・ボード3041、30
2の対応する1つに結合されている。フロント・エン
ド・ディレクタ・ボード1901〜1908上のクロスバ
ー・スイッチ320は、フロント・エンド・ディレクタ
・ボード1901〜1908上の4つのフロント・エンド
・ディレクタ1801〜18032から選択した1つのメ
ッセージ・エンジン/CPUコントローラ314と、図
2のメッセージ・ネットワーク260との間でメッセー
ジを結合するために用いられる。同様に、バック・エン
ド・ディレクタ・ボード2101〜2108は、バック・
エンド・ディレクタ・ボード2101〜2108上の4つ
のバック・エンド・ディレクタ2001〜20032から
選択した1つが生成するメッセージを、かかる4つのバ
ック・エンド・ディレクタから選択した1つのメッセー
ジ・エンジン/CPUコントローラ314とメッセージ
・ネットワーク260(図2)との間で結合するために
用いられる。したがって、再度図2を参照すると、ディ
レクタ1801〜18032、2001〜20032の各1つ
とメッセージ・ネットワーク260との間に別個の専用
メッセージ経路を有する(各ディレクタ毎に背面302
に対してM個の個別接続が必要となる。ここでMは整数
である)代わりに、ここでは、M/4個の個別接続だけ
で済む。このように、ディレクタ1801〜18032
2001〜20032および背面302間の接続総数は、
1/4に減少する。したがって、図2および図6から、
メッセージ・ネットワーク260(図2)は、クロスバ
ー・スイッチ320およびメッセージ・ネットワーク・
ボード3041、3042を含むことがわかる。
【0027】図3Aに示すように、各メッセージは64
バイトの記述子であり、ソフトウエア制御の下でCPU
310(図6)によって作成され、RAM312内の送
出キューに記憶される。RAM312内の送出キューか
らメッセージを読み出し、メッセージ・ネットワーク2
60(図2)を通じて、以下で説明するDMA動作によ
って、1つ以上の別のディレクタに送信する場合、パケ
ット化/パケット分解部428(図8)のパケット化部
分において、図3Bに示すMAC型パケットにパケット
化する。ここでは、NGIOプロトコル仕様を用いる。
パケット型には3つある。即ち、メッセージ・パケット
部、承認パケット、およびメッセージ・ネットワーク・
ファブリック管理パケットであり、後者は、初期化中
(即ち、起動中)にメッセージ・ネットワーク・ルーテ
ィングを確立するために用いられる。図3Bに示すよう
に、MACパケットの各1つは、ソース(即ち、送信側
ディレクタ)および宛先(即ち、受信側ディレクタ)ア
ドレスを含む8バイトのヘッダ、ペイロードを有し、4
バイトの巡回冗長チェック(CRC)が末尾に位置す
る。承認パケット(即ち、信号)は、4バイトの承認ペ
イロード部を有する。メッセージ・パケットは、32バ
イトのペイロード部を有する。ファブリック管理パケッ
ト(FMP)は、256バイトのペイロード部を有す
る。MACパケットはクロスバー・スイッチ320に送
られる。パケットの宛先部分は、メッセージの宛先を示
すために用いられ、スイッチ320によってデコードさ
れ、どのポートにメッセージを導出するかについて判定
を行なう。デコード・プロセスは、スイッチ318内の
デコーダ・テーブル327を用い、かかるテーブルは、
初期化および診断プロセッサ(コントローラ)306
(図6)による起動中に、コントローラによって初期化
される。テーブル327(図8)は、メッセージに対す
るルーティングを識別するMACパケットの宛先アドレ
ス部分と、ディレクタ・ボード1901〜1908、21
1〜2108上の4つのディレクタ1801〜18
32、2001〜20032の1つ、またはメッセージを
発信する先のメッセージ・ネットワーク・ボード304
1、3042の1つとの間の関係を与える。
【0028】より具体的には、図6を参照すると、クロ
スバー・スイッチ320の各1つにつき、1対の出入力
ポート3251、3252が設けられており、各々、1対
のメッセージ・ネットワーク・ボード3041、3042
の対応する1つに結合されている。したがって、メッセ
ージ・ネットワーク・ボード3041、3042の各1つ
は、16個の入出力ポート3221〜32216を有し、
各1つが、図示のように、背面302を介して、ディレ
クタ・ボード1901〜1908、2101〜2108の対
応する1つの出入力ポート3251、3252の対応する
1つに結合されている。したがって、一例として図7の
メッセージ・ネットワーク・ボード3041を検討する
と、各スイッチ3081〜3084は、3つの結合ポート
3241〜3243を含む。結合ポート3241〜3243
は、図7に示すように、スイッチ3221〜3224を相
互接続するために用いられる。したがって、メッセージ
・ネットワーク・ボード3041を検討すると、図示の
ように、入出力ポート3221〜3228は、フロント・
エンド・ディレクタ・ボード1901〜1908の出入力
ポート3251に結合され、入出力ポート3229〜32
16は、バック・エンド・ディレクタ・ボード2101
〜2108の出入力ポート3251に結合されている。同
様に、メッセージ・ネットワーク・ボード3042を検
討すると、その入出力ポート3221〜3228は、背面
302を介して、フロント・エンド・ディレクタ・ボー
ド1901〜1908の出入力ポート3252に結合さ
れ、入出力ポート3229〜32216は、背面302を
介して、バック・エンド・ディレクタ・ボード2101
〜2108の出入力ポート3252に結合されている。
【0029】前述のように、メッセージ・ネットワーク
・ボード3041、3042の各1つは、図6および図7
に示すように、プロセッサ306(図6)および4つの
スイッチ3081〜3084を有するクロスバー・スイッ
チ部308を含む。スイッチ3081〜3084は、図示
のように相互接続されているので、メッセージは入出力
ポート3221〜32216のいずれの対の間でも通過す
ることができる。このため、フロント・エンド・ディレ
クタ1801〜18032のいずれの1つからのメッセー
ジでも、フロント・エンド・ディレクタ1801〜18
32の他の1つに、および/またはバック・エンド・デ
ィレクタ2001〜20032のいずれの1つにでも結合
することが可能となる。同様に、バック・エンド・ディ
レクタ2001〜20032のいずれの1つからのメッセ
ージでも、バック・エンド・ディレクタ2001〜20
32の他の1つに、および/またはフロント・エンド・
ディレクタ1801〜18032のいずれの1つにでも結
合することができる。
【0030】前述のように、各MACパケット(図3
B)は、アドレス宛先部分およびデータ・ペイロード部
分を含む。MACヘッダは、MACパケットの宛先を示
すために用いられ、かかるMACヘッダはスイッチによ
ってデコードされ、どのポートにMACパケットを導出
すべきかについて判定を行なう。このデコード・プロセ
スは、スイッチ3081〜3084内のテーブルを用い
る。かかるテーブルは、起動中にプロセッサ306によ
って初期化される。このテーブルは、MACパケットの
宛先を識別するMACヘッダと、メッセージ・ネットワ
ークを通じて辿るルートとの関係を与える。したがっ
て、初期化の後、スイッチ320およびスイッチ部30
8内のスイッチ3081〜3084はパケット・ルーティ
ングを与え、これによって、ディレクタ1801〜18
32、2001〜20032の各1つは、それ自体および
他のいずれか1つのディレクタ間でメッセージを送信す
ることができ、その際、かかる他のディレクタが同じデ
ィレクタ・ボード1901〜1908、2101〜2108
上にあるか、または別のディレクタ・ボード上にあるか
は無関係である。更に、MACパケットは、図3Bに示
すように、そのヘッダ内に追加ビットBを有し、これに
よって、メッセージはメッセージ・ネットワーク・ボー
ド3041またはメッセージ・ネットワーク・ボード3
042を通過することが可能になる。通常動作の間、こ
の追加ビットBは、論理1および論理0間で切り替えら
れ、1つのメッセージが冗長メッセージ・ネットワーク
・ボード3041、3042の一方を通過し、次のメッセ
ージがメッセージ・ネットワーク・ボード3041、3
042の他方を通過するようにして、システム上の負荷
要求を均衡化する。しかしながら、メッセージ・ネット
ワーク・ボード3041、3042の一方における障害の
場合、障害を発生したメッセージ・ネットワーク・ボー
ドを交換するまで、ボード3041、3042の障害がな
い方のみを用いる。
【0031】次に図8を参照して、ディレクタ・ボード
1901〜1908、2101〜2108の一例、ここで
は、ディレクタ1801、1803、1805、1807
含むディレクタ・ボード1901を示す。ディレクタ1
801〜1804の一例、ここでは、ディレクタ1801
を詳細に示すと、ディレクタ1801は、データ・パイ
プ316、メッセージ・エンジン/CPUコントローラ
314、RAM312、およびCPU310を含み、こ
れらは全て、図示のように、CPUインターフェース・
バス317に結合されている。一例としてのディレクタ
1801は、更に、ローカル・キャッシュ・メモリ31
9(CPU310に結合されている)、先に図6および
図7に関連付けて端的に説明した、クロスバー・スイッ
チ318、およびクロスバー・スイッチ320を含む。
データ・パイプ316は、プロトコル変換器400、四
ポートRAM402、および四ポートRAMコントロー
ラ404を含み、図示のように配列されている。端的に
説明すると、プロトコル変換器400は、フロント・エ
ンド・ディレクタ1801〜18032の場合、ホスト・
コンピュータ120のプロトコル間、(そして、バック
・エンド・ディレクタ2001〜20032の場合、バン
ク140内のディスク・ドライブによって用いられるプ
ロトコル間)、およびディレクタ1801〜1803、2
001〜2003 2およびグローバル・メモリ220(図
2)間のプロトコルを変換する。即ち、ホスト・コンピ
ュータ120が用いるプロトコルは、例えば、ファイバ
・チャネル、SCSI、ESCONまたはFICONで
あり、例えば、ホスト・コンピュータ120の製造者に
よって決定され、一方システム・インターフェース16
0(図2)内部で用いられるプロトコルは、インターフ
ェース160の製造者によって選択される場合がある。
四ポートRAM402は、FIFOであり、RAM40
2に入力するレート・データは、RAM402から出力
するレート・データとは異なる場合があるため、コント
ローラ404によって制御される。RAM402は4つ
のポートを有し、各々が18ビット・ディジタル・ワー
ドを処理するように構成されている。ここで、プロトコ
ル変換器400は、システム・インターフェース160
(図2)のプロトコルに対して36ビットのディジタル
・ワードを生成する。このワードの18ビット部分は、
四ポートRAM402の1対のポートの一方に結合さ
れ、このワードの別の18ビット部分は、四ポートRA
M402のポート対の他方に結合されている。四ポート
RAMは、1対のポート402A、402Bを有し、ポ
ート402A、402Bの各1つは、18ビット・ディ
ジタル・ワードを処理するように構成されている。ポー
ト402A、402Bの各1つは、独立制御可能であ
り、RAM402内のメモリ・アレイに対して、調停は
受けるが独立してアクセスすることができる。図示のよ
うに、データは、クロスバー・スイッチ318を介し
て、ポート402A、402Bおよびキャッシュ・メモ
リ220(図2)間で転送される。
【0032】クロスバー・スイッチ318は、1対のス
イッチ406A、406Bを含む。スイッチ406A、
406Bの各1つは、4つの入出力ディレクタ側ポート
1〜D4(先に図6と関連付けてまとめてポート319
として示した)、および4つの入出力メモリ側ポートM
1〜M4、M5〜M8をそれぞれ、図示のように含む。入出
力メモリ側ポートM1〜M4、M5〜M8は、先に図6に関
連付けてまとめて317として示した。スイッチ406
Aのディレクタ側ポートD1〜D4は、図示のように、デ
ィレクタ1801、1803、1805、1807の各1つ
における四ポートRAM402の402Aポートに接続
されている。同様に、スイッチ406Bのディレクタ側
ポートは、図示のように、ディレクタ1801、18
3、1805、1807の各1つにおける四ポートRA
M402の402Bポートに接続されている。図示のよ
うに、ポートD1〜D4は、バスRA1〜RA4上においてデ
ィレクタ1801、1803、1805、1807の内のコ
ントローラによってスイッチ406Aに供給された制御
ワードに応じて、ポートM1〜M4に選択的に結合され、
ポートD1〜D4は、バスRB1〜RB4上においてディレク
タ1801、1803、1805、1807の内のコントロ
ーラによってスイッチ406Bに供給された制御ワード
に応じて、ポートM5〜M8に結合されている。バスRA1
〜RA4上の信号は要求信号である。したがって、ディレ
クタ1801、1803、1805、1807のいずれか1
つのポート402Aを、バスRA1〜RA4上の要求信号に
応じて、選択的に、スイッチ406AのポートM1〜M4
のいずれか1つに結合することができる。同様に、ディ
レクタ1801〜1804のいずれの1つのポート402
Bも、バスRB1〜RB4上の要求信号に応じて選択的に、
スイッチ406BのポートM1〜M4のいずれの1つに
でも結合することができる。ディレクタ・ボード190
1〜1908、2101〜2108およびグローバル・キャ
ッシュ・メモリ220間の結合を図9に示す。
【0033】より具体的には、図2も参照すると、前述
のように、ホスト・コンピュータ120内のホスト・コ
ンピュータ・プロセッサ1211〜12132の各1つ
は、1対のフロント・エンド・ディレクタ1801〜1
8032に結合され、それに結合されているフロント・エ
ンド・ディレクタ1801〜18032の1つにおける障
害の場合に冗長性を与えるようにしている。同様に、デ
ィスク・ドライブ・バンク140は、複数、ここでは3
2個のディスク・ドライブ1411〜14132を有し、
各ディスク・ドライブ1411〜14132は1対のバッ
ク・エンド・ディレクタ2001〜20032に結合さ
れ、それに結合されているバック・エンド・ディレクタ
2001〜20032の1つにおける障害の場合に冗長性
を与えるようにしている。したがって、一例として、ホ
スト・コンピュータ・プロセッサ1211を検討する
と、かかるプロセッサ1211は、1対のフロント・エ
ンド・ディレクタ1801、1802に結合されている。
したがって、ディレクタ1801に障害が発生した場
合、ホスト・コンピュータ・プロセッサ1211は、他
のフロント・エンド・ディレクタ1802によってでは
あるが、なおもシステム・インターフェース160にア
クセスすることができる。このように、ディレクタ18
1、1802は、冗長ディレクタ対と見なされる。同様
に、他の冗長フロント・エンド・ディレクタ対は、フロ
ント・エンド・ディレクタ1803、1804;18
5、1806;1807、1808;1809、18
10;18011、18012;18013、18014;18
15、18016;18017、18018;18019、18
20;18021、18022;18023、18024;18
25、18026;18027、18028;18029、18
30;および18031、18032である(図2には、デ
ィレクタ18031、18032のみを示す)。
【0034】同様に、ディスク・ドライブ1411は、
1対のバック・エンド・ディレクタ2001、2002
結合されている。したがって、ディレクタ2001に障
害が発生した場合、ディスク・ドライブ1411は、他
のバック・エンド・ディレクタ2002によってではあ
るが、なおもシステム・インターフェース160にアク
セスすることができる。このように、ディレクタ200
1、2002は、冗長ディレクタ対と見なされる。同様
に、他の冗長バック・エンド・ディレクタ対は、バック
・エンド・ディレクタ2003、2004;2005、2
006;2007、2008;2009、20010;200
11、20012;20013、20014;20015、200
16;20017、20018;20019、20020;200
21、200 22;20023、20024;20025、200
26;20027、20028;20029、20030;および
20031、20032である(図2には、ディレクタ20
31、20032のみを示す)。更に、図9も参照する
と、グローバル・キャッシュ・メモリ220は、図示の
ように、複数、ここでは8個のキャッシュ・メモリ・ボ
ード2201〜2208を含む。更にまた、図10を参照
すると、キャッシュ・メモリ・ボードの一例、ここでは
ボード2201が詳細に示されている。これについて
は、”Fault Tolerant Memory
System”(フォールト・トレラント・メモリ・シ
ステム)と題する米国特許第5,943,287号に詳
しく記載されている。この特許は、発明者がJohn
K.Walton(ジョン K.ウォルトン)であり、
1999年8月24日に発行され、本願と同じ譲受人に
譲渡されている。その主題全体は、この言及により本願
にも含まれるものとする。したがって、図10に示すよ
うに、ボード2201は、複数、ここでは4つのRAM
メモリ・アレイを含み、アレイの各1つは、1対の冗長
ポート、即ち、AポートおよびBポートを有する。ボー
ド自体は16個のポート、即ち、8つ1組のAポートM
A1〜MA8および8つ1組のBポートMB1〜MB8を有す
る。8つのAポートの内4つ、ここではAポートMA1
A4は、図9に示すように、フロント・エンド・ディレ
クタ・ボード1901、1903、1905、1907の各
々のM1ポートにそれぞれ結合されている。8つのBポ
ートの内4つ、ここではBポートMB1〜MB4は、図9に
示すように、フロント・エンド・ディレクタ・ボード1
902、1904、1906、1908の各々のM1ポート
にそれぞれ結合されている。8つのAポートの内別の4
つ、ここではAポートMA5〜M A8は、図9に示すよう
に、バック・エンド・ディレクタ・ボード2101、2
103、2105、2107の各々のM1ポートにそれぞれ
結合されている。8つのBポートの内別の4つ、ここで
はBポートMB5〜MB8は、図9に示すように、バック・
エンド・ディレクタ・ボード2102、2104、210
6、2108の各々のM1ポートにそれぞれ結合されてい
る。
【0035】一例として、4つのAポートMA1〜MA4
ついて検討すると、4つのAポートMA1〜MA4の各1つ
は、論理ネットワーク2211Aを通じて、メモリ・アレ
イのいずれか1つのAポートに結合することができる。
したがって、ポートMA1について検討すると、かかるポ
ートは、4つのメモリ・アレイのAポートに結合するこ
とができる。同様に、4つのAポートMA5〜MA8につい
て検討すると、4つのAポートMA5〜MA8の各1つは、
論理ネットワーク2211Bを通じて、メモリ・アレイの
いずれか1つのAポートに結合することができる。同様
に、4つのBポートMB1〜MB4について検討すると、4
つのBポートMB1〜MB4の各1つは、論理ネットワーク
2211Bを通じて、メモリ・アレイのいずれか1つのB
ポートに結合することができる。同様に、4つのBポー
トMB5〜MB8について検討すると、4つのBポートMB5
〜MB8の各1つは、論理ネットワーク2212Bを通じ
て、メモリ・アレイのいずれか1つのBポートに結合す
ることができる。したがって、ポートMB1について検討
すると、かかるポートは、4つのメモリ・アレイのBポ
ートに結合することができる。このように、いずれかの
フロント・エンド・ディレクタ1801〜18032また
はバック・エンド・ディレクタ2001〜200 32から
のデータおよび制御が、メモリ・ボード上の4つのメモ
リ・アレイの各1つに到達することができる経路は、2
系統ある。つまり、メモリ・ボード上には、8組の冗長
ポート、即ち、ポートMA1、MB1;MA2、MB2;MA3
B3;MA4、MB4;MA5、MB5;MA6、MB6;MA7、M
B7;MA8、MB8がある。更に、前述のように、ディレク
タの各1つは、1対の冗長ポート、即ち、402Aポー
トおよび402Bポート(図8)を有する。したがっ
て、冗長ディレクタの各対毎に、当該対内のディレクタ
の一方のAポート(即ち、ポート402A)は、冗長メ
モリ・ポート対の一方に接続され、かかる対におけるデ
ィレクタの他方のBポート(即ち、402B)は、冗長
メモリ・ポート対の他方に接続される。
【0036】即ち、図11を参照すると、一例として冗
長ディレクタ対が示されており、ここでは、例えば、フ
ロント・エンド・ディレクタ1801およびフロント・
エンド・ディレクタ1802とする。最初に注記すべき
は、各冗長ディレクタ対におけるディレクタ1801
1802は、それぞれ異なるディレクタ・ボード、ここ
では1901、1902上になければならないということ
である。したがって、ここでは、フロント・エンド・デ
ィレクタ・ボード1901〜1908は、その上に、フロ
ント・エンド・ディレクタ1801、1803、18
5、1807;フロント・エンド・ディレクタ18
2、1804、1806、1808;フロント・エンド・
ディレクタ1809、18011、18013、18015
フロント・エンド・ディレクタ18010、18012、1
8014、18016;フロント・エンド・ディレクタ18
17、18019、18021、18023;フロント・エン
ド・ディレクタ18018、18020、18022、180
24;フロント・エンド・ディレクタ18025、18
27、18029、18031;フロント・エンド・ディレ
クタ180 18、18020、18022、18024を有す
る。したがって、ここでは、バック・エンド・ディレク
タ・ボード2101〜2108は、その上に、バック・エ
ンド・ディレクタ2001、2003、2005、20
7;バック・エンド・ディレクタ2002、2004
2006、2008;バック・エンド・ディレクタ200
9、20011、20013、20015;バック・エンド・
ディレクタ20010、200 12、20014、20016
バック・エンド・ディレクタ20017、20019、20
21、20023;バック・エンド・ディレクタ20
18、20020、20022、20024;バック・エンド
・ディレクタ20025、20027、20029、20
31;バック・エンド・ディレクタ20018、20
20、20022、20024を有する。
【0037】このように、図10に示すフロント・エン
ド・ディレクタ1801は、ここでは、フロント・エン
ド・ディレクタ・ボード1901上にあり、図11に示
すその冗長フロント・エンド・ディレクタ1802は、
別のフロント・エンド・ディレクタ・ボード、ここでは
例えば、フロント・エンド・ディレクタ・ボード190
2上にある。前述のように、四ポートRAM402のポ
ート402A(即ち、先に述べたAポート)は、クロス
バー・スイッチ318のスイッチ406Aに接続され、
四ポートRAM402のポート402B(即ち、先に述
べたBポート)は、クロスバー・スイッチ318のスイ
ッチ406Bに接続されている。冗長ディレクタ180
2も同様であるが、ディレクタ1801のスイッチ406
AのポートM1〜M4は、図示のように、グローバル・キ
ャッシュ・メモリ・ボード220 1〜2204のMA1ポー
トに接続されており、その冗長ディレクタ1802に対
して、スイッチ406AのポートM1〜M4は、図示のよ
うに、グローバル・キャッシュ・メモリ・ボード220
1〜2204の冗長MB1ポートに接続されている。
【0038】クロスバー・スイッチ318(図8)につ
いて更に詳しく言及すると、前述のように、ディレクタ
・ボード1901〜2108の各1つは、かかるスイッチ
318を有し、かかるスイッチ318は、1対のスイッ
チ406A、406Bを含む。スイッチ406A、40
6Bの各1つは、その構造が同一であり、その一例とし
て、ここではスイッチ406Aを図12に詳細に示す。
つまり、スイッチ406Aは、ディレクタ・ボードの一
例1901に関連して説明したように、4つの入出力デ
ィレクタ側ポートD1〜D4を含む。したがって、図8に
示すディレクタ・ボード1901では、スイッチ406
Aの4つの入出力ディレクタ側ポートD1〜D4は、各
々、ディレクタ・ボード1901上のディレクタ18
1、1803、1805、1807の対応する1つのポー
ト402Aに結合されている。
【0039】再度図12を参照すると、スイッチの一例
406Aは、複数、ここでは4個のスイッチ部4301
〜4304を含む。スイッチ部4301〜4304の各1
つは、その構造が同一であり、入出力ディレクタ側ポー
トD1〜D4の対応する1つと、出入力メモリ側ポートM
1〜M4の対応する1つとの間に、図示のようにそれぞれ
結合されている。(尚、スイッチ406B(図8)の出
入力メモリ側ポートは、図示のように、ポートM5〜M8
として示されていることは認められよう。また、スイッ
チ406Aは、ディレクタ1801、1803、18
5、1807(図8)における四ポート・コントローラ
404からのバスRA1〜RA4上の要求信号に応答し、ス
イッチ406Bは、同様に、ディレクタ1801、18
3、1805、1807内のコントローラ404からの
バスRB1〜RB4上の要求信号に応答することも理解され
よう)。即ち、ディレクタ1801のコントローラ40
4は、バスRA1またはバスRB1上に要求信号を生成す
る。同様に、ディレクタ1803のコントローラ404
は、バスRA2またはバスRB2上に要求信号を生成し、デ
ィレクタ1805のコントローラ404は、バスRA3
たはバスRB3上に要求信号を生成し、ディレクタ180
7のコントローラ404は、バスRA4またはバスRB4
に要求信号を生成する。
【0040】一例としてスイッチ部4301について検
討すると、かかるスイッチ部4301は、図12では、
バスRA1上の要求信号を供給されるFIFO432を含
むものとして示されている。(尚、スイッチ4302
4304内の、図示しない、FIFOには、それぞれ、
要求信号RA2〜RA4が供給されることは理解されよ
う)。また、スイッチ部4061は、要求発生部43
4、アービタ436、およびセレクタ442、446も
含み、全て図示のように配列されている。バスDM1〜
DM4上のメモリ側ポートM1〜M4におけるデータが、
セレクタ446への入力として供給される。また、セレ
クタ446には、FIFO432に記憶されている要求
信号RA1に応答して、バス449上に要求発生器によっ
て生成された制御信号も供給される。バス449上の制
御信号は、セレクタ446に、ディレクタ側ポートD1
に結合すべきメモリ側ポートM1〜M4の1つを示す。他
のスイッチ部4302〜4304も、それぞれ、ディレク
タ側ポートD1〜D4およびメモリ側ポートM1〜M4につ
いては、同様に動作する。
【0041】尚、ポートD1におけるワードのデータ部
分(即ち、バスDD1上のワード)は別のスイッチ部4
302〜4304にも結合されていることを注記してお
く。更に、ポートD2〜D4におけるワードのデータ部分
(即ち、それぞれ、バスDD2〜DD4上のワード)
は、図示のように、スイッチ部4301〜4304に供給
されることも注記しておく。即ち、スイッチ部4301
〜4304の各1つは、図示のように、ポートD1〜D4
におけるワードのデータ部分(即ち、バスDD1〜DD
4)を有する。また、ポートM1におけるワードのデー
タ部分(即ち、バスDM1上のワード)は他のスイッチ
部4302〜4304にも結合されていることを注記して
おく。更に、ポートM2〜M4におけるワードのデータ部
分(即ち、それぞれ、バスDM2〜DM4上のワード)
は、図示のように、スイッチ部4302〜4304に供給
されることも注記しておく。即ち、図示のように、スイ
ッチ部4301〜4304の各1つは、ポートM1〜M
4(即ちバスDM1〜DM4)上のワードのデータ部分
を有する。
【0042】以下で更に詳しく説明するが、バスRA1
のスイッチ部4301に対する要求は、ディレクタ18
1からの要求であり、ディレクタ1801のポート40
2A(ディレクタ側ポートD1)に結合するスイッチ4
301内の4つのポートM1〜M4の1つを識別する。し
たがって、ディレクタ1801のポート402Aは、バ
スRA1上のデータに応じて、選択的に、メモリ側ポート
1〜M4の1つに結合することができる。同様に、スイ
ッチ部4302〜4304それぞれに対するバスR A2、R
A3、RA4上の要求は、それぞれ、ディレクタ1803
1805、1807からの要求であり、ディレクタ180
3、1805、1807のポート402Aに結合するスイ
ッチ4301〜4304内の4つのポートM1〜M4の1つ
をそれぞれ識別する。
【0043】より具体的には、要求RA1は、四ポートR
AMコントローラ440(図8)によって生成される毎
に、受信FIFO432に記憶される。要求発生器43
4は、FIFO432から要求を受信し、4つのメモリ
側ポートM1〜M4の内どの1つをディレクタ1801
ポート402Aに結合するか判断する。メモリ側ポート
1〜M4に対するこれらの要求は、それぞれ、ラインR
A1,1〜RA1,4上に生成される。したがって、ラ
インRA1,1(即ち、メモリ側ポートM1に対する要
求)はアービタ436に供給され、ラインRA2,1、
RA3,1、RA4,1上の(ディレクタ1803、1
805、1807のポート402Aに結合されている)ス
イッチ部4302〜4304からの要求も、それぞれ、図
示のようにアービタ436に供給される。アービタ43
6は、メモリ側ポートM1に対する多数の要求を、先着
順で解決する。次いで、アービタ436は、メモリ側ポ
ートM1に結合するディレクタ1801、1803、18
5、1807の1つを示す制御信号を、バス435上に
生成する。
【0044】バス435上の制御信号は、セレクタ44
2に供給される。また、セレクタ442には、ポートD
1におけるデータのデータ部分(即ち、データ・バスD
D1上のデータ)が、図示のように、ポートD2〜D4
おけるデータのデータ部分、即ち、それぞれ、データ・
バスDD2〜DD4上のデータと共に供給される。した
がって、バス435上の制御信号によって、セレクタ4
42は、その出力に、アービタ436によってメモリ側
ポートM1へのアクセスを付与された、ディレクタ18
1、1803、1805、1807の1つからのデータ・
バスDD1〜DD4を結合する。セレクタ442の選択
された出力は、メモリ側ポートM1に結合される。尚、
アービタ436がラインRA1,1、RA2,1、RA
3,1、RA4,1上の信号を通じて要求を受信したと
き、アービタ436によって、それぞれラインAK1,
1、AK1,2、AK1,3、AK1,4上の承認信号
を通じて承認がそれぞれ返送されることを注記してお
く。かかる信号は、それぞれ、スイッチ部4301、4
302、4303、4304における要求発生器434に
供給される。
【0045】このように、いずれかのポートD1〜D4
のデータをポートM1〜M4の1つに結合し、先に図2に
関連付けて説明した二点間データ経路P1〜P64を実施
することができる。
【0046】再度図8を参照すると、ホスト・コンピュ
ータ120(図2)からのデータは、多くのホスト・コ
ンピュータ・プロセッサ1211〜12132からバッチ
でシステム・インターフェース160(図2)に提示さ
れる。つまり、ホスト・コンピュータ・プロセッサ12
1〜12132からのデータは、ディレクタ1801〜1
8032に提示される際に、互いにインターリーブされ
る。各ホスト・コンピュータ・プロセッサ1801〜1
8032(即ち、ソース)からのバッチは、プロトコル変
換器400によって、タグが付けられる。更に特定すれ
ば、ファイバ・チャネル接続の場合は、Tacheon
ASICによる。コントローラ404には、初期化の
間に参照テーブルが形成されている。データがプロトコ
ル変換器400に入来し、コントローラ404の制御の
下で四ポートRAM420に入力されると、プロトコル
変換器400は、コントローラに、データが四ポートR
AM420内にあることを知らせる。コントローラ40
4は、その参照テーブルのコンフィギュレーションを見
て、データを記憶するグローバル・キャッシュ・メモリ
220のロケーション(例えば、キャッシュ・メモリ・
ボード2201〜2208)を決定する。こうして、コン
トローラ404は適切なバスRA1、RB1上に要求信号を
生成し、次いで四ポートRAM402に、四ポートRA
M402内の特定のロケーションにデータ・ブロックが
あることを知らせ、それをグローバル・キャッシュ・メ
モリ220内の前述の特定のロケーションに移動する。
また、クロスバー・スイッチ318は、バスRA2
B2、RA3、RB3、RA4、RB4上にそれぞれ要求信号を
形成することによって、当該特定のディレクタ・ボード
1901上のディレクタ1803、1805、1807にお
ける他のコントローラ404のどれが要求しているかを
調べることができる。多数の要求の調停は、図12に関
連付けて先に説明したように、アービタ436によって
処理される。
【0047】再度図8を参照すると、ディレクタの一例
1801は、メッセージ・エンジン/CPUコントロー
ラ314を含むものとして示されている。メッセージ・
エンジン/CPUコントローラ314は、フィールド・
プログラム可能ゲート・アレイ(FPGA)内に内蔵さ
れている。メッセージ・エンジン(ME)315は、図
示のように、CPUバス317およびDMA部408に
結合されている。メッセージ・エンジン(ME)315
は、直接メモリ・アクセス(DMA)部408、メッセ
ージ・エンジン(ME)状態機械410、送信バッファ
424および受信バッファ424、MACパケット化/
パケット分解部428、送信および受信ポインタ・レジ
スタ420、ならびにパリティ発生器321を含む。D
MA部408は、図示してあり図13と関連付けて以下
に詳細に説明するDMA送信部418、および図示して
あり図14と関連付けて以下に詳細に説明するDMA受
信部424を含み、これらの各々は、図8に示すよう
に、CPUバス・インターフェース317に結合されて
いる。メッセージ・エンジン(ME)315は、DMA
送信部418に結合されている送信データ・バッファ4
22、DMA受信部421に結合されている受信データ
・バッファ424、アドレス・デコーダ401を介して
CPUバス317に結合されているレジスタ420、送
信データ・バッファ422に結合されている前述のパケ
ット化/パケット分解部428、図示のような受信デー
タ・バッファ424およびクロスバー・スイッチ32
0、ならびに送信データ・バッファ422およびクロス
バー・スイッチ320間に結合されているパリティ発生
器321を含む。即ち、パケット化部分428Pは、メ
ッセージ・ペイロードを、送信データ・バッファ422
からクロスバー・スイッチ320に受け渡されるMAC
パケット(図3B)にパケット化するために用いられ、
パケット分解部分428Dは、MACパケットを、クロ
スバー・スイッチ320から受信データ・バッファ42
4に受け渡されるメッセージ・ペイロードに分解するた
めに用いられる。パケット化は、ここでは、MACコア
によって行われ、MACコアは、MACパケットを構築
し、前述のように、メッセージを送信および受信するデ
ィレクタを示すソース・アドレスおよび宛先アドレス指
定、ならびに巡回冗長チェック(CRC)というような
ものを、各メッセージに添付する。また、メッセージ・
エンジン(ME)315は、受信書き込みポインタ45
0、受信読み出しポインタ452、送信書き込みポイン
タ454、および送信読み出しポインタ456も含む。
【0048】次に図15乃至図21を参照しながら、デ
ィレクタ1801〜18032、2001〜20032からの
メッセージの送信、およびディレクタ2101〜210
32によるメッセージの受信(ここでは、図8に示すディ
レクタ1801を例にとる)について説明する。最初に
メッセージの送信について検討するために、図8および
図15乃至図18を参照する。まず、前述のように、起
動時に、メッセージ・ネットワーク・ボード3041
3042双方のコントローラ306(図6)は、スイッ
チ部308内のスイッチ3081〜3084およびクロス
バー・スイッチ320に対して先に述べたメッセージ・
ルーティング・マッピングを初期化する。前述のよう
に、要求はホスト・コンピュータ120によって行われ
る。この要求は、プロトコル変換器400に送られる。
プロトコル変換器400は、CPUバス317およびバ
ッファ301を介してマイクロプロセッサ299に要求
を送る。例示のディレクタ1801のマイクロプロセッ
サ299内にあるCPU310(図8)が、メッセージ
をディレクタ1802〜18032、2001〜20032
別の1つに送信すると判断した場合(例えば、CPU3
10は、グローバル・キャッシュ・メモリ220(図
2)において「ミス」があったと判定し、図2に関連付
けて先に説明したように、バック・エンド・ディレクタ
2001〜20032の適切な1つにメッセージを送ろう
とする)、CPU310は64バイトの記述子(図3
A)を構築する。この記述子は、ディスク・ドライブ・
バンク140(図2)から読み出すデータのバッチのア
ドレスを示す32バイトのメッセージ・ペイロード(ス
テップ500)、および8バイト・ビット・ベクトルに
よって、メッセージの宛先、即ち、メッセージを受信す
るディレクタまたは複数のディレクタを示す32バイト
のコマンド・フィールド(ステップ510)を含む。コ
マンド・フィールドの8バイト部分は、メッセージを受
信するディレクタまたは複数のディレクタを示す。即
ち、8バイト部分における64ビットの各1つは64個
のディレクタの1つに対応する。ここでは、論理1のビ
ットは、対応するディレクタがメッセージを受信するこ
とを示し、論理0は、かかる対応するディレクタがメッ
セージを受信しないことを示す。したがって、8バイト
・ワードが論理1ビットを1つよりも多く有する場合、
1つよりも多いディレクタが同じメッセージを受信する
ことになる。以下で説明するが、同じメッセージは並行
にかかるディレクタの全てに送られるのではなく、逆に
同じメッセージは順次かかるディレクタ全てに送られ
る。いずれにしても、図15乃至図18に示すように、
得られる64バイト記述子は、CPU310(図8)に
よって発生され(ステップ512)、RAM312に書
き込まれる(ステップ514)。
【0049】より具体的には、図8に示すように、RA
M512は、1対のキュー、送出キューおよび受信キュ
ーを含む。RAM312は、図示のように、エラー検出
および訂正(EDAC)/メモリ制御部303を介し
て、CPUバス317に結合されている。一方、CPU
310は、メッセージ・エンジン(ME)315の状態
機械410(図8)に、記述子がRAM312に書き込
まれたことを示す。尚、メッセージ・エンジン(ME)
315は、図8に示すように、受信書き込みポインタま
たはカウンタ450、受信読み出しポインタまたはカウ
ンタ452、送出書き込みポインタまたはカウンタ45
4、および送出読み出しポインタまたはカウンタ454
も含むことも注記しておく。4つのポインタ450、4
52、454、456は全て、起動時にゼロにリセット
される。これも先に記したことであるが、メッセージ・
エンジン/CPUコントローラ314は、受信データ・
バッファ424(図8)に結合されているパケット化/
パケット分解部428のパケット分解部分428D、お
よび送信データ・バッファ422(図8)に結合されて
いるパケット化/パケット分解部428のパケット化部
分428Pも含む。したがって、図15乃至図18を再
度参照すると、CPU310がRAM312に記述子が
書き込まれたことを示し、既に送る準備ができていると
き、CPU310は送出書き込みポインタを増分し、レ
ジスタ・デコーダ401を介してこれを送出書き込みポ
インタ・レジスタ454に送る。したがって、送出書き
込みポインタ・レジスタ454の内容は、未だ送られて
いない、RAM312の送出キュー312S内のメッセ
ージ数を示す。状態機械410は、送出書き込みポイン
タ・レジスタ454および送出読み出しポインタ・レジ
スタ456をステップ518においてチェックする。前
述のように、送出書き込みポインタ・レジスタ454お
よび送出読み出しポインタ・レジスタ456の双方は、
起動中に、最初にゼロにリセットされる。したがって、
送出読み出しポインタ・レジスタ456および送出書き
込みポインタ・レジスタ454が異なる場合、状態機械
は、RAM312内にメッセージがあり、かかるメッセ
ージは送信の準備ができていることを知る。メッセージ
を送る場合、状態機械410は、記憶されている64バ
イトの記述子を図8のDMA送信部418を介してメッ
セージ・エンジン(ME)315へ送信開始する(ステ
ップ520、522)。記述子は、送出読み出しポイン
タ456が送出書き込みポインタ454と等しくなるま
で、RAM312内の送出キュー312Sから送られ
る。
【0050】ステップ510に関連して先に説明したよ
うに、CPU310は、メッセージを受信するディレク
タまたは複数のディレクタを示す宛先ベクトルを発生す
る。また、先に示したように、コマンド・フィールドは
32バイトであり、その内8バイトは、メッセージを受
信する64個のディレクタの対応する1つを表すビット
を有する。例えば、図18Aを参照すると、ビット位置
1〜64の各々は、ディレクタ1801〜18032、2
001〜20031をそれぞれ表す。ここで、この例で
は、論理1はビット位置1にしかないので、8バイト・
ベクトルは、宛先ディレクタがフロント・エンド・ディ
レクタ1801のみであることを示す。図18Bの例で
は、論理1はビット位置2にしかないので、8バイト・
ベクトルは、宛先ディレクタがフロント・エンド・ディ
レクタ1802のみであることを示す。図18Cの例で
は、論理1は1つのビット位置よりも多いので、メッセ
ージの宛先は1つよりも多いディレクタである。即ち、
マルチキャスト・メッセージである。図18Cの例で
は、論理1があるのはビット位置2、3、63、64の
みである。したがって、8バイト・ベクトルは、宛先デ
ィレクタがフロント・エンド・ディレクタ1802、1
803およびバック・エンド・ディレクタ20031、2
0032のみであることを示す。メッセージ・エンジン
(ME)315内のレジスタ部420(図8)のレジス
タには、マスク・ベクトルが記憶されており、使用でき
ない可能性があるディレクタまたは複数のディレクタを
識別する(例えば、不良ディレクタまたはその時点でシ
ステム内に存在しないディレクタ)。ステップ524、
525は、ユニキャスト送信のためにある。メッセージ
・エンジン(ME)315の状態機械410が、レジス
タ420内に記憶されている送信ベクトル・マスク(図
18D)を検査することによって、ディレクタが使用可
能であることを示した場合、メッセージ・エンジン(M
E)315は、先に論じたように、メッセージ・ペイロ
ードをMACヘッダおよびCRCによって、パケット化
部分428Pの内側でカプセル化する(ステップ52
6)。マスクの一例を図18Dに示す。このマスクは、
64個のビット位置を有し、ディレクタの各1つに対し
て1つずつとなっている。したがって、図18Aないし
図18Cに関連付けて先に説明した宛先ベクトルと同様
に、ビット位置1〜64は、それぞれ、ディレクタ18
1〜18032、2001〜20032を表す。ここで、本
例では、マスク内のビット位置における論理1は、表す
ディレクタが使用可能であることを示し、かかるビット
位置における論理0は、表すディレクタが使用不可能で
あることを示す。ここで、図18Dに示す例では、ディ
レクタ20032のみが使用不可能となっている。したが
って、メッセージが図18Cに示すような宛先ベクトル
を有する場合、宛先ベクトルが図18Dのマスクを通過
した後、図18Eに示すように、宛先ベクトルを変更す
る。したがって、ディレクタ20032はメッセージを受
信しない。かかる宛先ベクトルに対するマスク変更は、
重要である。何故なら、以下で説明するが、マルチキャ
スト上のメッセージは、順次送られるのであり、並行に
送られるのではないからである。したがって、使用不可
能なディレクタまたは複数のディレクタに対するメッセ
ージ送信を排除することによって、システムのメッセー
ジ送信効率が向上する。
【0051】パケット化/パケット分解部428(図
8)のパケット化部分によってメッセージをMACパケ
ットにパケット化した後、メッセージ・エンジン(M
E)315はMACパケットをクロスバー・スイッチ3
20に転送し(ステップ528)、MACパケットは、
メッセージ・ネットワーク260によって、メッセージ
・ネットワーク・ボード3041、3042を介して、ま
たは同一のディレクタ・ボード上でかかるディレクタ・
ボード上のクロスバー・スイッチ320を介して宛先に
導出される(ステップ530)。
【0052】図19乃至図21を参照しながら、メッセ
ージ読み出し動作について説明する。即ち、ステップ6
00において、ディレクタはメッセージを待つ。メッセ
ージを受信すると、メッセージ・エンジン(ME)31
5の状態機械410は、パケットを受信する(ステップ
602)。状態機械410は、受信ビット・ベクトル・
マスク(図18。レジスタ426に記憶されている)
を、パケットのソース・アドレスと突き合わせてチェッ
クする(ステップ604)。状態機械410が、メッセ
ージが不適正なソース(即ち、障害のあるディレクタ。
例えば、図18Dのマスクに示す)からであると判断し
た場合、パケットを破棄する(ステップ606)。一
方、状態機械410が、パケットが適正な即ち有効なデ
ィレクタ(即ち、ソース)からであると判断した場合、
メッセージ・エンジン(ME)315は、パケット分解
部428Dにおいて、パケットからメッセージを抜き出
す(ステップ608)。メッセージ・エンジン(ME)
315内の状態機械410は、DMA受信動作を介した
32バイト・ペイロードの転送を開始する(ステップ6
10)。DMAは、32バイト・メッセージを、RAM
312内のメモリ受信キュー312Rに書き込む(ステ
ップ612)。メッセージ・エンジン(ME)315の
状態機械410は、次に、受信書き込みポインタ・レジ
スタ450(ステップ614)を増分する。次に、CP
U310は、受信書き込みポインタ450が受信読み出
しポインタ452と等しいか否かについてチェックする
(ステップ616)。これらが等しい場合、かかる状態
は、CPU310にメッセージが受信されていないこと
を示す(ステップ618)。一方、受信書き込みポイン
タ450および受信読み出しポインタ452が等しくな
い場合、かかる状態は、CPU310に、メッセージが
受信されていることを示し、CPU310はRAM31
2の受信キュー314R内のメッセージを処理し、次い
でCPU310は受信読み出しポインタを増分し、これ
を受信読み出しポインタ・レジスタ452に書き込む。
このようにして、起動中にゼロに初期化された受信読み
出しポインタ452の内容および受信書き込みポインタ
450の内容が等しくなるまで、メッセージはRAM3
12の受信キュー312Rに記憶される。
【0053】次に図22を参照しながら、メッセージの
承認処理について説明する。ステップ700において、
受信DMAエンジン420は、問題なく、RAM312
(図8)内の受信キューへのメッセージ転送を完了す
る。メッセージ・エンジン(ME)315内の状態機械
410は、承認MACパケットを発生し、このMACパ
ケットを送出元ディレクタに、メッセージ・ネットワー
ク260(図2)を通じて送信する(ステップ702、
704)。送出元ディレクタにおけるメッセージ・エン
ジン(ME)315は、承認MACパケット内の16バ
イトのステータス・ペイロードを抜き取り、受信DMA
動作によってかかるステータス・ペイロードを転送する
(ステップ706)。送出元(即ち、ソース)ディレク
タのDMAは、RAMメモリの送出キュー314S内に
ある記述子のステータス・フィールドに書き込む(ステ
ップ708)。(承認メッセージを受信した)送出元デ
ィレクタのメッセージ・エンジン(ME)315の状態
機械410は、その送出読み出しポインタ454を増分
する(ステップ712)。(承認メッセージを受信し
た)送出元ディレクタのCPU310は、記述子ステー
タスを処理し、記述子をRAM312の送出キュー31
2Sから除去する(ステップ714)。尚、送出および
受信キュー312Sおよび312Rは、各々、巡回キュ
ーであることを注記しておく。
【0054】前述のように、MACパケットは、通常動
作の間、クロスバー・スイッチ320内のセレクタSに
よって、ハードウエアで、1対のメッセージ・ネットワ
ーク・ボード3041、3042の一方に交互に送信され
る。セレクタSは、MACパケット(図3B)のヘッダ
内にあるビットBに応答し、かかるビットBが1の論理
状態の場合、データをメッセージ・ネットワーク・ボー
ド402Aの1つに結合し、逆の論理状態に応答して、
データをメッセージ・ネットワーク・ボード402Bの
別の1つに結合する。即ち、1つのメッセージがボード
3041に送信されると、次のメッセージはボード30
2に送信される。
【0055】再度図13を参照しながら、送信DMAの
一例418について、その詳細を示す。前述のように、
記述子は、CPU310(図8)によって作成された
後、RAM312に記憶される。前述のように、送出書
き込みポインタ450(図8)および送出読み出しポイ
ンタ452が異なるカウントを有する場合、メッセージ
・エンジン(ME)315(図8)内の状態機械410
によって、作成した記述子はメッセージ・エンジン(M
E)315へのDMA送信に使用可能であることの指示
が与えられ、記述子のペイロードはMACパケットにパ
ケット化され、メッセージ・ネットワーク360(図
2)を通じて、1つ以上のディレクタ180 1〜180
32、2001〜20032に送られる。即ち、CPU31
0が作成した記述子は、最初にローカル・キャッシュ・
メモリ319に記憶され、後にRAM312内の送出キ
ュー312Sに転送される。送出書き込みポインタ45
0および送出読み出しポインタ452が異なるカウント
を有する場合、メッセージ・エンジン(ME)315の
状態機械410は、ステップ520(図15乃至図1
7)に関連して先に論じたように、DMA送信を開始す
る。更に、前述のように、記述子は、RAM312内の
送出キュー312Rに位置する。更に、前述のように、
メッセージを収容した各記述子は固定サイズであり、こ
こでは64バイトである。新たな未送信記述子がCPU
310によって作成される毎に、送出キュー312S内
の順次ロケーション即ちアドレスに順次記憶されてい
く。ここでは、アドレスは32ビット・アドレスであ
る。
【0056】送信DMAが開始されると、メッセージ・
エンジン(ME)315(図8)内の状態機械410
は、バス411上でキュー・アドレスを、DMA送信部
418(図13)内のアドレス・レジスタ413に、送
信書き込みイネーブル信号Tx_WE信号と共に送る。
DMA送信部418は、信号Xmit_Brをアサート
することによって、CPUバス317を要求する。CP
Uバス・アービタ414(図8)は、バス調停を実行
し、適切なときに、アービタ414はCPUバス317
へのアクセスをDMA送信部418に付与する。次に、
Xmit CPU状態機械419は、出力アドレス・レ
ジスタ403にロードすることによって、CPUバス3
17のアドレス・バス部分317A上に、アドレス・レ
ジスタ413内にある現在使用可能なアドレスを置く。
出力アドレス・レジスタ403にロードする前に、パリ
ティ発生器405が奇数パリティを発生する。RAM3
12の送出キュー312Sに対して、レジスタ403内
のアドレスを、CPUバス317の部分317Cを通じ
て、適切な読み出し制御信号と共に、CPUバス317
(図8)上に置く。RAM312からのアドレスにある
データは、CPUバス317のデータ・バス部分317
Dを通じて、パリティ・チェッカ415を通過し、デー
タ入力レジスタ417に達する。CPU310からの制
御信号は、CPUバス317のバス部分317Cを通じ
て、Xmit CPU状態機械419に供給される。制
御信号の1つは、要求された記述子の最新コピーがRA
M312の送出キュー312S内にあるか、または未だ
ローカル・キャッシュ・メモリ319内に位置するかを
示す。即ち、いずれの所与のアドレスにおいても、最新
記述子は最初にCPU310によってローカル・キャッ
シュ・メモリ319内に形成され、後にCPU310に
よってRAM312内のキューに転送される。したがっ
て、同一アドレスを有する2つの記述子があるという場
合もある。即ち、1つがRAM312にあり、1つがロ
ーカル・キャッシュ・メモリ319(図8)にあり、最
新の記述子はローカル・キャッシュ・メモリ319内に
ある。いずれの場合でも、送信DMA418は、RAM
312からDMA送信のために記述子を取得しなければ
ならず、この記述子は、状態機械419が生成した信号
402を用いて、送信バッファ・レジスタ421に記憶
され、これらのレジスタ421にロードされる。CPU
310からXmit CPU状態機械419への制御信
号は、最新の記述子がローカル・キャッシュ・メモリ3
19内にあるか否かを示す。最新の記述子がローカル・
キャッシュ・メモリ319内にある場合、XmitCP
U状態機械419は、RAM312内の送出キュー31
2Sから丁度読み出され、レジスタ421に格納されて
いるデータをセレクタ423に受け渡すのを禁止する。
このような場合、状態機械419は、同じアドレス・ロ
ケーションにおいて、別のデータ転送を実行しているは
ずである。次に、最新のメッセージは、CPU310に
よって、ローカル・キャッシュ・メモリ319からRA
M312内の送出キュー312Sに転送される。次に、
送信メッセージ状態機械419は、CPUバス317に
対する調停を再度行ない、かかるCPUバス317が付
与された後、Xmit CPU状態機械419はRAM
312から記述子を読み出す。このとき、しかしなが
ら、RAM312内の送出キュー312S内には、最新
の記述子が得られる。そして、Xmit CPU状態機
械419による信号402のアサートに応答して、RA
M312内の記述子を送信バッファ・レジスタ421に
ロードする。次に、レジスタ421内の記述子は、セレ
クタ423を介して、Xmitメッセージ(msg)状
態機械427の制御の下で、メッセージ・バス・インタ
ーフェース409に転送される。即ち、送信バッファ・
レジスタ421内の記述子は、Xmitメッセージ(m
sg)状態機械427によって、32ビット送信メッセ
ージ・バス・インターフェース409上で送信データ・
バッファ422(図8)に転送される。送信データ・バ
ッファ422(図8)内のデータは、図15乃至図17
のステップ530において説明したように、パケット化
/パケット分解部428のパケット化部によってパケッ
ト化される。
【0057】図23も参照しながら、送信DMA418
(図13)を動作させる方法を更に具体的に示す。前述
のように、各記述子は64バイトである。ここで、記述
子の転送は、2つのインターフェース、即ち、CPUバ
ス317および送信メッセージ・インターフェース・バ
ス409(図8)を介して行われる。CPUバス317
は、64ビット幅であり、8つの64ビット二重ワード
が64バイトの記述子を構成する。Xmit CPU状
態機械419は、制御信号を発生し、これによってRA
M312から送信バッファ・レジスタ421(図8)へ
の記述子の転送が行われる。64バイトの記述子は、C
PUバス317上における2回の32バイト・バースト
・アクセスによって転送される。8つの二重ワードの各
1つは、順次送信バッファ・レジスタ421(図13)
に記憶される。したがって、ステップ800において、
メッセージ・エンジン315の状態機械410は、送信
DMAアドレス・レジスタ413に、RAM312内の
送出キュー312Sにおける、送信する記述子のアドレ
スをロードする。これを行なうには、Tx_WE信号を
アサートする。これによって、Xmit CPU状態機
械419をステップ800に進め、アドレス・レジスタ
413にロードし、ステップ802に進む。ステップ8
02において、Xmit CPU状態機械419は、C
PU転送カウンタ431(図13)に、32バイトのカ
ウントをロードする。これは2である。これは、ステッ
プ802において、64バイトの記述子を転送するため
に必要となる、32バイトの転送回数である。Xmit
CPU状態機械419は、次にステップ804に進
む。ステップ804において、送信DMA状態機械41
9は、そのアドレス・レジスタ413にロードされたア
ドレスの有効性をチェックする。アドレス・レジスタ4
13にロードされたアドレスは、メモリ・アドレス・レ
ジスタ435にロードされた値と突き合わせてチェック
する。メモリ・アドレス・レジスタ435は、基底アド
レスおよびRAM312内の送出キュー312Sのオフ
セットを収容する。基底アドレスおよびオフセットの和
が、RAM312内の送出キュー312Sに対するアド
レス範囲となる。アドレス・チェック回路437は、ア
ドレス・レジスタ413内のアドレスがRAM312内
の送出キュー312Sの範囲内にあるか否か、常にチェ
ックしている。アドレスが送出キュー312Sの範囲外
にあることが発見された場合、ステップ416におい
て、転送を中断し、このステータスをステータス・レジ
スタ404に記憶し、次いでメッセージ・エンジン31
5の状態機械410に戻す。アドレスの有効性チェック
は、ステップ805において行われる。アドレスが範囲
以内にある場合、即ち、有効な場合、送信DMA状態機
械419は、転送を実行し、ステップ806に進む。ス
テップ806において、送信DMA状態機械419は、
アービタ414へのXmit_BR信号をアサートする
ことによって、CPUバス317を要求し、次いでステ
ップ807に進む。ステップ807において、Xmit
CPU状態機械419は、それにアービタによってバ
スが付与されているか否か常にチェックする。CPUバ
ス317が付与された場合、Xmit CPU状態機械
はステップ808に進む。ステップ808において、X
mit CPU状態機械419は、アドレスおよびデー
タ・サイクルを発生し、本質的にRAM312内の送出
キュー312Sからその送信バッファ・レジスタ421
に、32バイトの記述子を読み込む。Xmit CPU
状態機械419は、次にステップ810に進む。ステッ
プ810において、Xmit CPU状態機械419
は、そのバッファ・レジスタ421に読み込んだ記述子
をロードし、ステップ811に進む。ステップ811に
おいて、これら32バイトのデータ上に、何らかのロー
カル・キャッシュ・メモリ319のコヒーレンシ・エラ
ーがないかチェックする(即ち、最新データがキャッシ
ュ・メモリ319にはあるが、RAM312にはないと
いう状態が生じているか否かチェックする)。このデー
タがローカルCPUキャッシュ・メモリ319内に位置
することが検出された場合、Xmit CPU状態機械
419はこのデータを破棄し、ステップ806に進む。
ここで、XmitCPU状態機械419は再度CPUバ
ス317を要求し、付与されたなら、別の32バイトの
データを送信バッファ・レジスタ421に転送する。こ
の時点までに、CPUは記述子の最後のコピーをRAM
312に既に転送し終えている。最初にRAM312か
らフェッチした32バイトの記述子がローカルCPUキ
ャッシュ・メモリ319内になかった場合(即ち、キャ
ッシュ・コヒーレンシ・エラーが検出されなかった場
合)、Xmit CPU状態機械419はステップ81
2に進む。ステップ812において、Xmit CPU
状態機械419は、カウンタ431を減数し、アドレス
・レジスタ413を増分し、かかるアドレス・レジスタ
413が次のアドレスを示すようにする。次いで、Xm
it CPU状態機械は、ステップ814に進む。ステ
ップ814において、送信CPU状態機械419は、転
送カウンタ431が終了したか否か、即ち、ゼロまでカ
ウントしたか否か調べるためにチェックを行い、カウン
トがゼロでないことがわかった場合、ステップ804に
進み、次の32バイトの記述子の転送を開始する。カウ
ンタ431がゼロの場合、プロセスはステップ816に
進み、転送を完了する。RAM312から送信DMAバ
ッファ・レジスタ421への2番目の32バイトの記述
子の転送が成功すれば、CPUバス317上での転送は
完了する。
【0058】メッセージ・インターフェース409は、
32ビット幅であり、16個の32ビット・ワードが6
4バイトの記述子を構成する。64バイトの記述子は、
各々32バイトずつまとめて転送される。Xmit m
sg状態機械427は、インターフェース409を制御
し管理する。Xmit CPU状態機械は、信号433
をアサートし、最初の32バイトのCPUバス317上
での転送が成功したことを示し(図24のステップ81
8)、これがXmit msg状態機械をステップ81
8に進ませ、メッセージ・インターフェース上での転送
を開始する。ステップ820において、Xmit ms
g機械427は、バースト/転送カウンタ439をリセ
ットし、メッセージ・インターフェース409を通じた
転送を開始する。ステップ820において、「転送有
効」(TX_DATA_Valid)信号をアサートす
ることにより、メッセージ・エンジン315の状態機械
410にバス409上に有効なデータが得られること示
し、メッセージ・インターフェース409上での転送を
開始する。送信msg機械427は、バースト/転送カ
ウンタ439におけるバースト・カウンタが8に等しい
値に達するまで(ステップ822)、後続の各クロック
毎に、32ビットのデータを転送する。バースト/転送
カウンタ439内のバースト・カウンタは、ライン43
3上の信号によって、メッセージ・バス409上に32
ビット・ワードが置かれる毎に増分される。バースト・
カウンタが8になったとき、送信カウンタ431が終了
したか、即ち、ゼロか否かについて、状態機械427が
チェックを行なう(ステップ824)。バースト/転送
カウント439における転送カウンタの終了は、64バ
イトの記述子をメッセージ・エンジン315内の転送バ
ッファ422に転送し終えたことを示す。これが終了し
ていた場合、送信メッセージ状態機械427はステップ
826に進む。ステップ826において、Xmit m
sg状態機械は、転送出力終了(Tx_EOT)をアサ
ートし、メッセージ・バス409上での転送終了を示
す。この状態において、Tx_EOT信号のアサート後
に、ステータス・レジスタ404内に捕獲された転送の
ステータスを、メッセージ・エンジン315の状態機械
410に送る。DMA動作は、記述子を送信バッファ4
22(図8)に記憶することによって完了する。
【0059】一方、バースト/転送カウンタ439内の
転送カウンタが終了していない場合、プロセスはステッ
プ800に進み、前述の手順を繰り返し、記述子データ
の2番目の32バイトを転送し、その時点で転送は完了
する。
【0060】次に図14を参照し、受信DMA420を
示す。ここでは、別のディレクタから受信したメッセー
ジをRAM312(図8)に書き込む。受信DMA42
0は、3種類の情報、即ち、サイズが8バイトのエラー
情報、サイズが16バイトの承認情報、およびサイズが
32バイトの受信メッセージ・ペイロードおよび/また
はファブリック管理情報を処理するように構成されてい
る。図8も参照すると、メッセージ・エンジン315の
状態機械410は、Rx_WE信号をアサートし、受信
DMA420に、そのRecバッファ426(図8)に
データを転送する準備ができていることを示す。受信バ
ッファ内のデータとしては、8バイトのエラー情報、1
6バイトの承認情報、または32バイトのファブリック
管理/受信メッセージ・ペイロード情報が考えられる。
これは、Rx_transferカウント信号上に、2
ビット・エンコード受信転送カウントを置き、情報の種
類、およびこの情報がRAM312の受信キューに記憶
されるアドレスである、アドレスを示す。受信書き込み
イネーブル信号Rx_WEに応答して、受信メッセージ
機械450(図14)は、アドレスをアドレス・レジス
タ452に、および情報の種類を示す転送カウントを、
受信転送カウンタ454にロードする。アドレス・レジ
スタ452にロードされたアドレスは、アドレス・チェ
ック回路456によってチェックされ、これがRAM3
12内の受信キューアドレスの範囲内にあるか否かにつ
いて調べる。これを行なうには、アドレスを、メモリ・
レジスタ457(即ち、内部の基底アドレス・レジスタ
およびオフセット・レジスタ)にロードした値と突き合
わせてチェックする。基底アドレス・レジスタは、RA
M312内に常駐する受信キュー312Rの開始アドレ
スを収容し、オフセット・レジスタはRAM312内に
あるこの受信キュー312Rのサイズを収容する。した
がって、基底アドレス・レジスタおよびオフセット・レ
ジスタに記憶されている値の加算(additive
sum)は、RAM312R内の受信キューのアドレス
範囲を指定する。メモリ・レジスタ457には、初期化
の間にロードが行われる。Rx_WE信号をアサートし
た後に続くクロックで、メッセージ・エンジン315の
状態機械410は、先に進み、32ビットのメッセージ
・エンジン315のデータ・バス407(図14)上に
データを置く。Rx_data_valid信号が各3
2ビット・データに付随し、メッセージ・エンジン・デ
ータ・バス407上のデータが有効であることを示す。
このRx_data_valid信号に応答して、受信
メッセージ状態機械450は、データ・バス上のデータ
を受信バッファ・レジスタ460にロードする。メッセ
ージ・エンジンのデータ・バス407dを通じた転送の
終了は、Rx_EOT信号のアサートによって示され、
この時点で、受信メッセージ状態機械450は、バス4
07のメッセージ・エンジン・データ・バス407D上
の最後の32ビットのデータを受信バッファ・レジスタ
460にロードする。これは、バス407のメッセージ
・エンジンのデータ・バス407Dの部分を通じた転送
の終了を知らせる。かかる転送の終了時に、信号464
のアサートによって、Rx_Cpu状態機械462に移
送される(convey)。受信CPU機械462は、
ここで信号REC_Brをアサートすることによって、
CPUバス317を要求する。CPUバス・アービタ4
14(図8)による調停の後、受信DMA420(図1
4)には、CPUバス317へのアクセスが与えられ
る。受信CPU状態機械462は、先に進み、そのバッ
ファ・レジスタ424内にあるデータをCPUバス31
7を通じて、RAM312内の受信キュー312Rに転
送する。同時に、このデータは二重バッファ・レジスタ
466にも転送される。受信バッファ・レジスタ460
の出力にあるデータは、セレクタ470の一方の入力に
渡り、更に二重データ受信バッファ・レジスタ460に
も渡る。二重受信バッファ・レジスタ466の出力は、
セレクタ470の第2入力に供給される。データが受信
CPU状態機械462によって転送される際、キャッシ
ュ・コヒーレンシ・エラーに対するチェックも行われ
る。RAM312に書き込まれているアドレスに対応す
るデータがCPUのローカル・キャッシュ・メモリ31
9(図8)内に位置する場合、受信DMA機械420
は、CPU310がそのローカル・キャッシュ・メモリ
319内にある古いデータをRAM312内の受信キュ
ー312Rに戻しコピーし、二重バッファ・レジスタ4
66からの新たなデータのコピーで、この古いデータを
上書きするのを待つ。
【0061】より具体的には、中央演算装置310がD
MA受信部420に、受信バッファ・レジスタ460内
のデータがローカル・キャッシュ・メモリ319におい
て得られることを示す場合、受信CPU状態機械462
は、ライン463上に選択信号を生成する。ライン46
3は、二重バッファ・レジスタ466内のデータをセレ
クタ470の出力に結合し、次いでバス317に結合
し、ランダム・アクセス・メモリ312に格納する。
【0062】RAM312への書き込み成功によって、
DMA転送が完了する。すると、受信DMA420は、
メッセージ・エンジン315の状態機械410に、転送
のステータスについて知らせる。転送のステータスは、
ステータス・レジスタ459内に取り込まれる。
【0063】このように、受信DMAおよび送信DMA
双方により、ローカル・キャッシュ・メモリ319のチ
ェックを行い、受信DMAの場合、「古い」データを有
しているか否か、また送信DMAの場合、「新しい」デ
ータを有しているか否かについて判定を行なう。
【0064】次に図25を参照しながら、受信DMA4
20の動作を示す。即ち、ステップ830において、受
信メッセージ機械450は、書き込みイネーブル信号R
x_WEがアサートされているか否かチェックする。ア
サートされていることがわかった場合、受信DMA42
0は先に進み、アドレス・レジスタ452および転送カ
ウンタ454にロードする。転送カウンタ454にロー
ドされる値は、図8のメッセージ・エンジン状態機械3
10によって要求されたDMA転送の種類を決定する。
Rx_WE信号のアサートによって、DMA受信転送動
作が開始する。これがRx msg状態機械450をス
テップ832に進ませる。ステップ832において、R
ec msg状態機械450はアドレス・レジスタ45
2および転送カウンタ454にロードし、次いでステッ
プ834に進む。ステップ834において、Rx_DA
TA_VALID信号がアサートされているか否か調べ
るためにチェックを行なう。アサートされている場合、
ステップ836に進む。ステップ836において、Rx
msg状態機械は、バッファ・レジスタ460(図1
4)に、図14のバス407のメッセージ・エンジン・
データ・バス407D上にあるデータをロードする。R
x_DATA_VALID信号が、バス407上の各デ
ータ片に付随する。データは順次バッファ・レジスタ4
60(図14)にロードされる。バス407のメッセー
ジ・エンジン・データ・バス407D上での転送終了
は、Rx_EOT信号のアサートによって示される。受
信メッセージ状態機械450が転送終了状態にある場
合、ステップ840において、受信CPU状態機械46
2に知らせ、これによって、CPUバス317側での転
送が開始する。
【0065】受信CPU状態機械のフローについて、以
下に説明する。即ち、図26を参照すると、バス407
のメッセージ・エンジン・データ・バス407D部分上
における転送終了によって、受信CPU状態機械462
を起動し、ステップ842に進ませる。受信CPU状態
機械462は、この状態におけるアドレスの有効性をチ
ェックする(ステップ844)。これは、アドレス・チ
ェック回路456によって行われる。アドレス・レジス
タ452にロードされたアドレスがRAM312内の受
信キュー312Rの範囲外である場合、転送を中断し、
ステータスを受信ステータス・レジスタ459に取り込
み、Rec CPU状態機械462はステップ845に
進む。アドレスが有効な場合、受信CPU状態機械46
2は、ステップ846に進む。ステップ846におい
て、受信CPU状態機械462は、CPUバス317の
アクセスを要求する。次に、ステップ848に進む。ス
テップ848において、バス317に関する付与につい
てチェックする。付与が認められている場合、ステップ
850に進む。ステップ850において、Rec CP
U状態機械462は、アドレスおよびデータ・サイクル
を実行し、本質的にバッファ・レジスタ460内のデー
タを、RAM312内の受信キュー312Rに書き込
む。RAM312への書き込みと同時に、CPUバス3
17上に置かれたデータは、二重バッファ・レジスタ4
66にもロードされる。同時に、CPU310は、制御
ラインの1つにおいてRAM312に書き込んだアドレ
スに対応するデータが、そのローカル・キャッシュ・メ
モリ319において得られるか否かについて示す。アド
レスおよびデータ・サイクルの終了時に、Rec CP
U状態機械462は、ステップ850に進む。このステ
ップにおいて、送信DMA418(図13)に関連付け
て先に述べた種類のキャッシュ・コヒーレンシ・エラー
がないかチェックする。キャッシュ・コヒーレンシ・エ
ラーが検出された場合、受信CPU状態機械462はス
テップ846に進み、トランザクションを再試行する。
より具体的には、受信CPU状態機械462はここで前
回のアドレスに対して別のアドレスおよびデータ・サイ
クルを発生し、今回は、二重バッファ466からのデー
タをCPUデータ・バス317上に置く。キャッシュ・
コヒーレンシ・エラーがなかった場合、受信CPU状態
機械462はステップ852に進み、ここで転送カウン
タ454を減数し、アドレス・レジスタ452内のアド
レスを増分する。次いで、受信CPU状態機械462は
ステップ854に進む。ステップ854において、状態
機械462は、転送カウンタが終了したか、即ち、ゼロ
か否かチェックする。転送カウンタがゼロでない場合、
受信CPU状態機械462はステップ844に進み、転
送カウンタがゼロになるまで前述の手順を繰り返す。ス
テップ854において転送カウンタがゼロであった場
合、RAM312内の受信キュー312Rへの書き込み
が完了し、Rec CPU状態機械はステップ845に
進む。ステップ845において、ステータス・レジスタ
に記憶されているステータスを、メッセージ・エンジン
315の状態機械410に返送する。
【0066】再度図8を参照し、割込制御ステータス・
レジスタ412について更に詳しく説明する。前述のよ
うに、パケットは、パケット化/パケット分解部428
のパケット化部分によってクロスバー・スイッチ320
に送られ、1つ以上のディレクタに送信される。尚、パ
ケット化/パケット分解部428のパケット化部分によ
って送られたパケットは、クロスバー・スイッチ320
に渡る前に、メッセージ・エンジン315内のパリティ
発生器PGを通過することを注記しておく。かかるパケ
ットが、ディレクタの一例1801内のメッセージ・エ
ンジン315によってクロスバー・スイッチ320に送
られると、クロスバー・スイッチ320に渡される前
に、パリティ・ビット発生器PGによって、パリティ・
ビットがパケットに付加される。パケットのパリティ
は、クロスバー・スイッチ320内のパリティ・チェッ
カ/発生器(PG/C)のパリティ・チェッカ部分にお
いてチェックされる。チェックの結果は、クロスバー・
スイッチ320内のPG/Cによって、ディレクタ18
1内の割込制御ステータス・レジスタ412に送られ
る。
【0067】同様に、クロスバー・スイッチ320から
ディレクタの一例1801のメッセージ・エンジン31
5にパケットが送信される場合、パケットはディレクタ
1801内のメッセージ・エンジン315に送信される
前に、クロスバー・スイッチ320内のパリティ・チェ
ッカ/発生器(PG/C)のパリティ発生部分を通過す
る。次に、パケットのパリティは、ディレクタ1801
内のパリティ・チェッカ(PC)のパリティ・チェッカ
部分においてチェックされ、その結果(即ち、ステータ
ス)はステータス・レジスタ412に送信される。
【0068】以上、本発明の多数の実施形態について説
明した。しかしながら、本発明の精神および範囲から逸
脱することなく、種々の変更が可能であることは理解さ
れよう。したがって、他の実施形態も特許請求の範囲に
該当するものとする。
【図面の簡単な説明】
【図1】 従来技術によるデータ記憶システムのブロッ
ク図である。
【図2】 本発明によるデータ記憶システムのブロック
図である。
【図3】 図3Aは、図2のデータ記憶システムのシス
テム・インターフェースにおいて用いられる記述子のフ
ィールドを示す図である。図3Bは、図2のデータ記憶
システムのシステム・インターフェースにおいて用いら
れるMACパケット内で用いるフィールドを示す図であ
る。
【図4】 図2のデータ記憶システムに用いられるシス
テム・インターフェースを格納する電気キャビネットの
図である。
【図5】 図2のデータ記憶システムのシステム・イン
ターフェースを設けたプリント回路ボードを示す、概略
等幅図である。
【図6】 図2のデータ記憶システムにおいて用いられ
るシステム・インターフェースのブロック図である。
【図7】 図2のデータ記憶システムのシステム・イン
ターフェースにおいて用いられる1対のメッセージ・ネ
ットワーク・ボードの一方に対する、フロント・エンド
・ディレクタおよびバック・エンド・ディレクタ間の接
続を示すブロック図である。
【図8】 図2のデータ記憶システムのシステム・イン
ターフェースにおいて用いられるディレクタ・ボードの
一例のブロック図である。
【図9】 図2のデータ記憶システムにおいて用いられ
るシステム・インターフェースのブロック図である。
【図10】 図9のシステム・インターフェースにおい
て用いられるグローバル・キャッシュ・メモリ・ボード
の一例の図である。
【図11】 1対のホスト・プロセッサと、図9のシス
テム・インターフェースにおいて用いられるグローバル
・キャッシュ・メモリ・ボード間に結合された1対のデ
ィレクタ・ボードを示す図である。
【図12】 図9のシステム・インターフェースのフロ
ント・エンド・ディレクタおよびリア・エンド・ディレ
クタ内において用いられるクロスバー・スイッチの一例
のブロック図である。
【図13】 図9のシステム・インターフェースにおい
て用いられる送信直接メモリ・アクセス(DMA)のブ
ロック図である。
【図14】 図9のシステム・インターフェースにおい
て用いられる受信DMAのブロック図である。
【図15】 図16および図17間の関係を示す図であ
る。
【図16】 図9のシステム・インターフェースにおい
て用いられるメッセージ・ネットワークの送出動作のプ
ロセス・フロー図である。
【図17】 図9のシステム・インターフェースにおい
て用いられるメッセージ・ネットワークの送出動作のプ
ロセス・フロー図である。
【図18】 図18Aは、図9のシステム・インターフ
ェースにおけるメッセージ・ネットワークが用いるディ
ジタル・ワードの一例である。図18Bは、図9のシス
テム・インターフェースにおけるメッセージ・ネットワ
ークが用いるディジタル・ワードの一例である。図18
Cは、図9のシステム・インターフェースにおけるメッ
セージ・ネットワークが用いるディジタル・ワードの一
例である。図18Dは、かかるメッセージ・ネットワー
クにおいて用いられるマスク内のビットを示す図であ
る。図18Eは、図18Cに示すディジタル・ワードに
適用する図18Dのマスクの結果を示す図である。
【図19】 図20および図21間の関係を示す図であ
る。
【図20】 図9のシステム・インターフェースにおい
て用いられるメッセージ・ネットワークの受信動作を示
すプロセス・フロー図である。
【図21】 図9のシステム・インターフェースにおい
て用いられるメッセージ・ネットワークの受信動作を示
すプロセス・フロー図である。
【図22】 図9のシステム・インターフェースにおい
て用いられるメッセージ・ネットワークの承認動作を示
すプロセス・フロー図である。
【図23】 図13の送信DMAの送信DMA動作を示
すプロセス・フロー図である。
【図24】 図13の送信DMAの送信DMA動作を示
すプロセス・フロー図である。
【図25】 図14の受信DMAの受信DMA動作を示
すプロセス・フロー図である。
【図26】 図14の受信DMAの受信DMA動作を示
すプロセス・フロー図である。
【符号の説明】
100 データ記憶システム 120 ホスト・コンピュータ/サーバ 140 ディスク・ドライブ・バンク 160 システム・インターフェース 180 フロント・エンド・ディレクタ 190 フロント・エンド・ディレクタ・ボード 200 バック・エンド・ディレクタ 210 バック・エンド・ディレクタ・ボード 220 キャシュ・メモリ 240 データ転送部 260 メッセージ・ネットワーク 299 マイクロプロセッサ 314 コントローラ 316 データ・パイプ

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 システム・インターフェースであって、 (a)複数の第1ディレクタ・ボードであって、該第1
    ディレクタ・ボードの各1つが、 (i)複数の第1ディレクタと、 (ii)前記第1ディレクタ・ボードのかかる1つの上
    の前記第1ディレクタに結合されている入出力ポート
    と、1対の出入力ポートとを有するクロスバー・スイッ
    チと、を有する、第1ディレクタ・ボードと、 (b)複数の第2ディレクタ・ボードであって、該第2
    ディレクタ・ボードの各1つが、 (i)複数の第2ディレクタと、 (ii)前記第2ディレクタ・ボードのかかる1つの上
    の前記第2ディレクタに結合されている入出力ポート
    と、1対の出入力ポートとを有するクロスバー・スイッ
    チと、を有する、第2ディレクタ・ボードと、 (c)キャッシュ・メモリを有するデータ転送部であっ
    て、かかるキャッシュ・メモリが前記複数の第1および
    第2ディレクタに結合されている、データ転送部と、 (d)前記データ転送部とは独立して動作するメッセー
    ジ・ネットワークと、を備え、 (e)前記第1および第2ディレクタが、前記メッセー
    ジ・ネットワークを通じて前記第1ディレクタおよび前
    記第2ディレクタ間を通過するメッセージに応答して、
    前記第1ディレクタおよび前記第2ディレクタ間のデー
    タ転送を制御することにより、前記データに前記データ
    転送部内の前記キャッシュ・メモリを通過させ、前記第
    1ディレクタおよび前記第2ディレクタ間のデータ転送
    を容易にすることを特徴とするシステム・インターフェ
    ース。
  2. 【請求項2】 請求項1記載のシステム・インターフェ
    ースにおいて、前記第1ディレクタの各1つが、 前記第1ディレクタのかかる1つの入力と前記キャッシ
    ュ・メモリとの間に結合されているデータ・パイプと、 前記メッセージ・ネットワークと前記第1ディレクタの
    かかる1つとの間でメッセージを転送するコントローラ
    と、を含むことを特徴とするシステム・インターフェー
    ス。
  3. 【請求項3】 請求項1記載のシステム・インターフェ
    ースにおいて、前記第2ディレクタの各1つが、 前記第2ディレクタのかかる1つの入力と前記キャッシ
    ュ・メモリとの間に結合されているデータ・パイプと、 前記メッセージ・ネットワークと前記第2ディレクタの
    かかる1つとの間でメッセージを転送するコントローラ
    と、を含むことを特徴とするシステム・インターフェー
    ス。
  4. 【請求項4】 請求項2記載のシステム・インターフェ
    ースにおいて、前記第2ディレクタの各1つが、 前記第2ディレクタのかかる1つの入力と前記キャッシ
    ュ・メモリとの間に結合されているデータ・パイプと、 前記メッセージ・ネットワークと前記第2ディレクタの
    かかる1つとの間でメッセージを転送するコントローラ
    と、を含むことを特徴とするシステム・インターフェー
    ス。
  5. 【請求項5】 請求項1記載のシステム・インターフェ
    ースにおいて、前記第1ディレクタの各1つが、 前記第1ディレクタのかかる1つの入力と前記キャッシ
    ュ・メモリとの間に結合されているデータ・パイプと、 マイクロプロセッサと、 前記マイクロプロセッサおよび前記データ・パイプに結
    合され、前記メッセージ・ネットワークと前記第1ディ
    レクタのかかる1つとの間におけるメッセージ転送を制
    御し、かつ前記第1ディレクタのかかる1つの前記入力
    と前記キャッシュ・メモリとの間でデータを制御するコ
    ントローラと、を含むことを特徴とするシステム・イン
    ターフェース。
  6. 【請求項6】 請求項1記載のシステム・インターフェ
    ースにおいて、前記第2ディレクタの各1つが、 前記第2ディレクタのかかる1つの入力と前記キャッシ
    ュ・メモリとの間に結合されているデータ・パイプと、 マイクロプロセッサと、 前記マイクロプロセッサおよび前記データ・パイプに結
    合され、前記メッセージ・ネットワークと前記第2ディ
    レクタのかかる1つとの間におけるメッセージ転送を制
    御し、かつ前記第2ディレクタのかかる1つの前記入力
    と前記キャッシュ・メモリとの間でデータを制御するコ
    ントローラと、を含むことを特徴とするシステム・イン
    ターフェース。
  7. 【請求項7】 請求項5記載のシステム・インターフェ
    ースにおいて、前記第2ディレクタの各1つが、 前記第2ディレクタのかかる1つの入力と前記キャッシ
    ュ・メモリとの間に結合されているデータ・パイプと、 マイクロプロセッサと、 前記マイクロプロセッサおよび前記データ・パイプに結
    合され、前記メッセージ・ネットワークと前記第2ディ
    レクタのかかる1つとの間におけるメッセージ転送を制
    御し、かつ前記第2ディレクタのかかる1つの前記入力
    と前記キャッシュ・メモリとの間でデータを制御するコ
    ントローラと、を含むことを特徴とするシステム・イン
    ターフェース。
  8. 【請求項8】 ホスト・コンピュータ/サーバとディス
    ク・ドライブ・バンクとの間において、システム・イン
    ターフェースを介してデータを転送するデータ記憶シス
    テムであって、前記システム・インターフェースが、 (a)ホスト・コンピュータ/サーバに結合されている
    複数の第1ディレクタ・ボードであって、該第1ディレ
    クタ・ボードの各1つが、 (i)複数の第1ディレクタと、 (ii)前記第1ディレクタ・ボードのかかる1つの上
    の前記第1ディレクタに結合されている入出力ポート
    と、1対の出入力ポートとを有するクロスバー・スイッ
    チと、を有する、第1ディレクタ・ボードと、 (b)前記ディスク・ドライブ・バンクに結合されてい
    る複数の第2ディレクタ・ボードであって、該第2ディ
    レクタ・ボードの各1つが、 (i)複数の第2ディレクタと、 (ii)前記第2ディレクタ・ボードのかかる1つの上
    の前記第2ディレクタに結合されている入出力ポート
    と、1対の出入力ポートとを有するクロスバー・スイッ
    チと、を有する、第2ディレクタ・ボードと、 (c)キャッシュ・メモリを有するデータ転送部であっ
    て、かかるキャッシュ・メモリが前記複数の第1および
    第2ディレクタに結合されている、データ転送部と、 (d)前記データ転送部とは独立して動作するメッセー
    ジ・ネットワークと、を備え、 (e)前記第1および第2ディレクタが、前記メッセー
    ジ・ネットワークを通じて前記第1ディレクタおよび前
    記第2ディレクタ間を通過するメッセージに応答して、
    前記ホスト・コンピュータと前記ディスク・ドライブ・
    バンクとの間のデータ転送を制御することにより、前記
    データに前記データ転送部内の前記キャッシュ・メモリ
    を通過させ、前記ホスト・コンピュータ/サーバおよび
    前記ディスク・ドライブ・バンク間のデータ転送を容易
    にすることを特徴とするデータ記憶システム。
  9. 【請求項9】 請求項8記載のシステム・インターフェ
    ースにおいて、前記第1ディレクタの各1つが、 前記第1ディレクタのかかる1つの入力と前記キャッシ
    ュ・メモリとの間に結合されているデータ・パイプと、 前記メッセージ・ネットワークと前記第1ディレクタの
    かかる1つとの間でメッセージを転送するコントローラ
    と、 を含むことを特徴とするシステム・インターフェース。
  10. 【請求項10】 請求項8記載のシステム・インターフ
    ェースにおいて、前記第2ディレクタの各1つが、 前記第2ディレクタのかかる1つの入力と前記キャッシ
    ュ・メモリとの間に結合されているデータ・パイプと、 前記メッセージ・ネットワークと前記第2ディレクタの
    かかる1つとの間でメッセージを転送するコントローラ
    と、を含むことを特徴とするシステム・インターフェー
    ス。
  11. 【請求項11】 請求項9記載のシステム・インターフ
    ェースにおいて、前記第2ディレクタの各1つが、 前記第2ディレクタのかかる1つの入力と前記キャッシ
    ュ・メモリとの間に結合されているデータ・パイプと、 前記メッセージ・ネットワークと前記第2ディレクタの
    かかる1つとの間でメッセージを転送するコントローラ
    と、を含むことを特徴とするシステム・インターフェー
    ス。
  12. 【請求項12】 請求項8記載のシステム・インターフ
    ェースにおいて、前記第1ディレクタの各1つが、 前記第1ディレクタのかかる1つの入力と前記キャッシ
    ュ・メモリとの間に結合されているデータ・パイプと、 マイクロプロセッサと、 前記マイクロプロセッサおよび前記データ・パイプに結
    合され、前記メッセージ・ネットワークと前記第1ディ
    レクタのかかる1つとの間におけるメッセージ転送を制
    御し、かつ前記第1ディレクタのかかる1つの前記入力
    と前記キャッシュ・メモリとの間でデータを制御するコ
    ントローラと、を含むことを特徴とするシステム・イン
    ターフェース。
  13. 【請求項13】 請求項8記載のシステム・インターフ
    ェースにおいて、前記第2ディレクタの各1つが、 前記第2ディレクタのかかる1つの入力と前記キャッシ
    ュ・メモリとの間に結合されているデータ・パイプと、 マイクロプロセッサと、 前記マイクロプロセッサおよび前記データ・パイプに結
    合され、前記メッセージ・ネットワークと前記第2ディ
    レクタのかかる1つとの間におけるメッセージ転送を制
    御し、かつ前記第2ディレクタのかかる1つの前記入力
    と前記キャッシュ・メモリとの間でデータを制御するコ
    ントローラと、を含むことを特徴とするシステム・イン
    ターフェース。
  14. 【請求項14】 請求項12記載のシステム・インター
    フェースにおいて、前記第2ディレクタの各1つが、 前記第2ディレクタのかかる1つの入力と前記キャッシ
    ュ・メモリとの間に結合されているデータ・パイプと、 マイクロプロセッサと、 前記マイクロプロセッサおよび前記データ・パイプに結
    合され、前記メッセージ・ネットワークと前記第2ディ
    レクタのかかる1つとの間におけるメッセージ転送を制
    御し、かつ前記第2ディレクタのかかる1つの前記入力
    と前記キャッシュ・メモリとの間でデータを制御するコ
    ントローラと、を含むことを特徴とするシステム・イン
    ターフェース。
JP2001099693A 2000-03-31 2001-03-30 別個のデータ転送部、および共通回路ボード上に複数のディレクタを備えたメッセージ・ネットワークを有するデータ記憶システム Expired - Lifetime JP4350319B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/539,966 US7003601B1 (en) 2000-03-31 2000-03-31 Data storage system having separate data transfer section and message network with plural directions on a common printed circuit board
US09/539966 2000-03-31

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006061963A Division JP2006190327A (ja) 2000-03-31 2006-03-08 別個のデータ転送部、および共通回路ボード上に複数のディレクタを備えたメッセージ・ネットワークを有するデータ記憶システム

Publications (2)

Publication Number Publication Date
JP2001331385A true JP2001331385A (ja) 2001-11-30
JP4350319B2 JP4350319B2 (ja) 2009-10-21

Family

ID=24153397

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2001099693A Expired - Lifetime JP4350319B2 (ja) 2000-03-31 2001-03-30 別個のデータ転送部、および共通回路ボード上に複数のディレクタを備えたメッセージ・ネットワークを有するデータ記憶システム
JP2006061963A Pending JP2006190327A (ja) 2000-03-31 2006-03-08 別個のデータ転送部、および共通回路ボード上に複数のディレクタを備えたメッセージ・ネットワークを有するデータ記憶システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2006061963A Pending JP2006190327A (ja) 2000-03-31 2006-03-08 別個のデータ転送部、および共通回路ボード上に複数のディレクタを備えたメッセージ・ネットワークを有するデータ記憶システム

Country Status (4)

Country Link
US (1) US7003601B1 (ja)
JP (2) JP4350319B2 (ja)
DE (1) DE10116343A1 (ja)
GB (1) GB2366049B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4405277B2 (ja) 2004-02-16 2010-01-27 株式会社日立製作所 ディスク制御装置
US7467238B2 (en) 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
US10698613B1 (en) * 2019-04-19 2020-06-30 EMC IP Holding Company LLC Host processing of I/O operations
US10740259B1 (en) 2019-04-19 2020-08-11 EMC IP Holding Company LLC Host mapping logical storage devices to physical storage devices
US10698844B1 (en) 2019-04-19 2020-06-30 EMC IP Holding Company LLC Intelligent external storage system interface
US11151063B2 (en) 2019-04-19 2021-10-19 EMC IP Holding Company LLC Host system directly connected to internal switching fabric of storage system
US11500549B2 (en) 2019-04-19 2022-11-15 EMC IP Holding Company LLC Secure host access to storage system resources via storage system interface and internal switching fabric

Family Cites Families (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4484262A (en) 1979-01-09 1984-11-20 Sullivan Herbert W Shared memory computer method and apparatus
US4438494A (en) 1981-08-25 1984-03-20 Intel Corporation Apparatus of fault-handling in a multiprocessing system
US4476526A (en) 1981-11-27 1984-10-09 Storage Technology Corporation Cache buffered memory subsystem
US4780808A (en) 1981-11-27 1988-10-25 Storage Technology Corporation Control of cache buffer for memory subsystem
US4480307A (en) 1982-01-04 1984-10-30 Intel Corporation Interface for use between a memory and components of a module switching apparatus
US4636946A (en) 1982-02-24 1987-01-13 International Business Machines Corporation Method and apparatus for grouping asynchronous recording operations
US4456987A (en) 1982-03-22 1984-06-26 International Telephone And Telegraph Corporation Digital switching network
JPS59100964A (ja) 1982-12-01 1984-06-11 Hitachi Ltd ディスク制御システム及びその並列データ転送方法
US4633387A (en) 1983-02-25 1986-12-30 International Business Machines Corporation Load balancing in a multiunit system
US4688168A (en) 1984-08-23 1987-08-18 Picker International Inc. High speed data transfer method and apparatus
US4636948A (en) 1985-01-30 1987-01-13 International Business Machines Corporation Method for controlling execution of application programs written in high level program language
AU614246B2 (en) 1988-07-11 1991-08-22 Nec Infrontia Corporation Packet switching system for a distributed processing isdn switch
JP2567922B2 (ja) 1988-08-30 1996-12-25 株式会社日立製作所 パス制御方式
JP2872251B2 (ja) 1988-10-12 1999-03-17 株式会社日立製作所 情報処理システム
US6038641A (en) 1988-12-30 2000-03-14 Packard Bell Nec Two stage cache memory system and method
US5119485A (en) 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
JPH0338725A (ja) * 1989-07-05 1991-02-19 Mitsubishi Electric Corp データ処理装置及びマイクロプロセッサ
US5115433A (en) 1989-07-18 1992-05-19 Metricom, Inc. Method and system for routing packets in a packet communication network
US5214768A (en) * 1989-11-01 1993-05-25 E-Systems, Inc. Mass data storage library
US5140592A (en) 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
US5263145A (en) 1990-05-24 1993-11-16 International Business Machines Corporation Method and means for accessing DASD arrays with tuned data transfer rate and concurrency
US5269011A (en) 1990-09-24 1993-12-07 Emc Corporation Dynamically reconfigurable data storage system with storage system controllers selectively operable as channel adapters on storage device adapters
US5206939A (en) 1990-09-24 1993-04-27 Emc Corporation System and method for disk mapping and data retrieval
JPH0776942B2 (ja) 1991-04-22 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システムおよびそのデータ伝送装置
US5440752A (en) 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
JP3451099B2 (ja) 1991-12-06 2003-09-29 株式会社日立製作所 外部記憶サブシステム
JP2770901B2 (ja) 1992-09-29 1998-07-02 富士ゼロックス株式会社 ディスク制御方法
US5579474A (en) * 1992-12-28 1996-11-26 Hitachi, Ltd. Disk array system and its control method
JP3200500B2 (ja) 1993-05-27 2001-08-20 株式会社日立製作所 ディスク装置及びディスク制御方法
JP2630198B2 (ja) 1993-05-31 1997-07-16 日本電気株式会社 周辺装置用同報型バスインタフェース
US5903911A (en) * 1993-06-22 1999-05-11 Dell Usa, L.P. Cache-based computer system employing memory control circuit and method for write allocation and data prefetch
JP3264465B2 (ja) 1993-06-30 2002-03-11 株式会社日立製作所 記憶システム
JPH07134635A (ja) 1993-11-10 1995-05-23 Nec Eng Ltd ディスクアレイ装置
US5442628A (en) 1993-11-15 1995-08-15 Motorola, Inc. Local area network data processing system containing a quad elastic buffer and layer management (ELM) integrated circuit and method of switching
JP2723022B2 (ja) 1993-12-27 1998-03-09 日本電気株式会社 ディスク装置のインタフェース及びその制御方法
US5448564A (en) 1994-01-31 1995-09-05 Advanced Micro Devices, Inc. Modular architecture for fast-packet network
US5406607A (en) 1994-02-24 1995-04-11 Convex Computer Corporation Apparatus, systems and methods for addressing electronic memories
JP3195489B2 (ja) 1994-03-03 2001-08-06 株式会社日立製作所 外部記憶制御装置およびバス切り替え制御方法
JPH07302171A (ja) 1994-05-10 1995-11-14 Hitachi Ltd ディスク制御装置
US5551048A (en) 1994-06-03 1996-08-27 Digital Equipment Corporation Ring based distributed communication bus for a multiprocessor network
US5586264A (en) 1994-09-08 1996-12-17 Ibm Corporation Video optimized media streamer with cache management
CA2153445C (en) 1994-09-08 2002-05-21 Ashok Raj Saxena Video optimized media streamer user interface
US5603058A (en) 1994-09-08 1997-02-11 International Business Machines Corporation Video optimized media streamer having communication nodes received digital data from storage node and transmitted said data to adapters for generating isochronous digital data streams
JP3581727B2 (ja) 1994-11-11 2004-10-27 株式会社日立製作所 ディスクアレイコントローラ及びディスクアレイ装置
US5574865A (en) 1994-12-01 1996-11-12 Unisys Corporation System for data transfer protection during module connection/disconnection onto live bus
JPH08172446A (ja) 1994-12-19 1996-07-02 Nippon Telegr & Teleph Corp <Ntt> ネットワーク間メッセージ中継方法
EP0752664A3 (en) 1995-07-07 2006-04-05 Sun Microsystems, Inc. Method and apparatus for reporting data transfer between hardware and software
US5787265A (en) 1995-09-28 1998-07-28 Emc Corporation Bus arbitration system having a pair of logic networks to control data transfer between a memory and a pair of buses
US5839906A (en) 1995-09-28 1998-11-24 Emc Corporation Data storage system
US5948062A (en) 1995-10-27 1999-09-07 Emc Corporation Network file server using a cached disk array storing a network file directory including file locking information and data mover computers each having file system software for shared read-write file access
US5742789A (en) 1995-12-28 1998-04-21 Emc Corporation Dynamically adaptive data retrieval for a disk drive storage system
US5703875A (en) 1996-04-10 1997-12-30 Hughes Electronics Integrated control and data message network
JP3781212B2 (ja) 1996-06-04 2006-05-31 株式会社日立製作所 サブシステム
US5819104A (en) 1996-06-24 1998-10-06 Emc Corporation Disk array memory system having bus repeater at disk backplane
US6009481A (en) 1996-09-30 1999-12-28 Emc Corporation Mass storage system using internal system-level mirroring
US6438586B1 (en) 1996-09-30 2002-08-20 Emc Corporation File transfer utility which employs an intermediate data storage system
US5890207A (en) 1996-11-27 1999-03-30 Emc Corporation High performance integrated cached storage device
US6470389B1 (en) 1997-03-14 2002-10-22 Lucent Technologies Inc. Hosting a network service on a cluster of servers using a single-address image
US6061762A (en) 1997-04-14 2000-05-09 International Business Machines Corporation Apparatus and method for separately layering cache and architectural specific functions in different operational controllers
US5949982A (en) 1997-06-09 1999-09-07 International Business Machines Corporation Data processing system and method for implementing a switch protocol in a communication system
US6304903B1 (en) 1997-08-01 2001-10-16 Agilent Technologies, Inc. State machine for collecting information on use of a packet network
US6055603A (en) 1997-09-18 2000-04-25 Emc Corporation Method and apparatus for performing pre-request operations in a cached disk array storage system
US6275953B1 (en) 1997-09-26 2001-08-14 Emc Corporation Recovery from failure of a data processor in a network server
US6038638A (en) 1997-10-17 2000-03-14 International Business Machines Corporation Pausing and resuming applications running in a data processing system using tape location parameters and pipes
JP3601955B2 (ja) 1997-10-23 2004-12-15 株式会社日立製作所 データ転送方法およびそれに適した計算機システム
JP2001523860A (ja) 1997-11-14 2001-11-27 3ウェア、 インコーポレイテッド 高性能構造ディスク・アレイ・コントローラ
US6081860A (en) 1997-11-20 2000-06-27 International Business Machines Corporation Address pipelining for data transfers
US6418496B2 (en) 1997-12-10 2002-07-09 Intel Corporation System and apparatus including lowest priority logic to select a processor to receive an interrupt message
US6230229B1 (en) 1997-12-19 2001-05-08 Storage Technology Corporation Method and system for arbitrating path contention in a crossbar interconnect network
US6397281B1 (en) 1997-12-23 2002-05-28 Emc Corporation Bus arbitration system
US6125429A (en) 1998-03-12 2000-09-26 Compaq Computer Corporation Cache memory exchange optimized memory organization for a computer system
US6134624A (en) 1998-06-08 2000-10-17 Storage Technology Corporation High bandwidth cache system
US6178466B1 (en) 1998-06-12 2001-01-23 Unisys Corporation System for maximizing bandpass on an interface directly coupling two units where the interface has independently operative data and address interconnections, and computer sysem employing same.
US6275877B1 (en) 1998-10-27 2001-08-14 James Duda Memory access controller
US6563793B1 (en) 1998-11-25 2003-05-13 Enron Warpspeed Services, Inc. Method and apparatus for providing guaranteed quality/class of service within and across networks using existing reservation protocols and frame formats
US6240335B1 (en) 1998-12-14 2001-05-29 Palo Alto Technologies, Inc. Distributed control system architecture and method for a material transport system
US6317805B1 (en) 1998-12-18 2001-11-13 Emc Corporation Data transfer interface having protocol conversion device and upper, lower, middle machines: with middle machine arbitrating among lower machine side requesters including selective assembly/disassembly requests
US6389494B1 (en) 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
US6061274A (en) 1999-01-04 2000-05-09 Emc Corporation Methods and apparatus for message transfer in computer storage system
US6378029B1 (en) 1999-04-21 2002-04-23 Hewlett-Packard Company Scalable system control unit for distributed shared memory multi-processor systems
US6581137B1 (en) 1999-09-29 2003-06-17 Emc Corporation Data storage system
US6529521B1 (en) 1999-12-27 2003-03-04 Emc Corporation Data storage system
US7010575B1 (en) 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US6651130B1 (en) 2000-04-28 2003-11-18 Emc Corporation Data storage system having separate data transfer section and message network with bus arbitration

Also Published As

Publication number Publication date
JP2006190327A (ja) 2006-07-20
GB2366049B (en) 2004-10-27
DE10116343A1 (de) 2001-10-25
GB2366049A (en) 2002-02-27
US7003601B1 (en) 2006-02-21
GB0108075D0 (en) 2001-05-23
JP4350319B2 (ja) 2009-10-21

Similar Documents

Publication Publication Date Title
JP3689345B2 (ja) 別個のデータ転送部、およびバス調停機能を備えたメッセージ・ネットワークを有するデータ記憶システム
JP2001325158A (ja) 別個のデータ転送部およびメッセージ・ネットワークを有するデータ記憶システム
US6779071B1 (en) Data storage system having separate data transfer section and message network with status register
US6611879B1 (en) Data storage system having separate data transfer section and message network with trace buffer
US6779150B1 (en) CRC error detection system and method
US6636933B1 (en) Data storage system having crossbar switch with multi-staged routing
JP2802043B2 (ja) クロック故障検出回路
US6684268B1 (en) Data storage system having separate data transfer section and message network having CPU bus selector
US7117275B1 (en) Data storage system having separate data transfer section and message network
US6061274A (en) Methods and apparatus for message transfer in computer storage system
JPH118636A (ja) ファイバチャネルスイッチングシステム及びその方法
JP4309600B2 (ja) 別個のデータ転送部ならびに共通プリント回路ボード上の複数のディレクタおよび冗長スイッチング・ネットワークを備えたメッセージ・ネットワークを有するデータ記憶システム
US6609164B1 (en) Data storage system having separate data transfer section and message network with data pipe DMA
JP2006190327A (ja) 別個のデータ転送部、および共通回路ボード上に複数のディレクタを備えたメッセージ・ネットワークを有するデータ記憶システム
US6687797B1 (en) Arbitration system and method
US6631433B1 (en) Bus arbiter for a data storage system
US6816916B1 (en) Data storage system having multi-cast/unicast
US7421520B2 (en) High-speed I/O controller having separate control and data paths
US6901468B1 (en) Data storage system having separate data transfer section and message network having bus arbitration
US6742017B1 (en) Data storage system having separate data transfer section and message network with pointer or counters
US7073020B1 (en) Method for message transfer in computer storage system
US6889301B1 (en) Data storage system
US6581112B1 (en) Direct memory access (DMA) receiver
US6584513B1 (en) Direct memory access (DMA) transmitter
WO2005036400A2 (en) Data storage system having shared resource

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041008

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050107

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050405

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060308

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060314

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20061117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090107

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090722

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120731

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4350319

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120731

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130731

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term