JP2003178043A - マルチノードコンピュータシステムの性能を改善するハードウェア機構 - Google Patents
マルチノードコンピュータシステムの性能を改善するハードウェア機構Info
- Publication number
- JP2003178043A JP2003178043A JP2002192022A JP2002192022A JP2003178043A JP 2003178043 A JP2003178043 A JP 2003178043A JP 2002192022 A JP2002192022 A JP 2002192022A JP 2002192022 A JP2002192022 A JP 2002192022A JP 2003178043 A JP2003178043 A JP 2003178043A
- Authority
- JP
- Japan
- Prior art keywords
- nic
- address
- pio
- switch
- write reference
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
おいて、各スイッチが、CPUノードとI/Oノードと
メモリノードの間のデータパケットのルーティングを提
供する。 【解決手段】 各スイッチが、ネットワーク上のデータ
パケット伝送のために、対応するI/Oノードを通じて
ネットワークインタフェースコントローラ(NIC)に
接続される。各NICがメモリマップにマッピングされ
る。システムアドレス空間の一部が、対応するスイッチ
に接続された各NICごとに送信ウィンドウを形成す
る。各PIO書き込みはどこにデータパケットを送るの
が良いか決めるために直前の書き込みを頼らない。“ア
ドレスエイリアシング”を使用することで、NIC送信
ウィンドウのエイリアス化部分へのCPU書き込みは常
に、書き込みをしたCPUと同じスイッチに接続された
NICに向けられる。
Description
ドコンピュータシステムにおけるデータパケット伝送に
関するもので、詳記するならば、データパケットをロー
カルネットワークインタフェースコントローラを経由し
てルーティングするシステムおよび方法に関するもので
ある。
S)は、普通、これを実行するコンピュータシステムが
対称型であることを前提として設計されている。Sun
UE1000等の対称型マイクロプロセッサ(SM
P)では、プロセッサまたはメモリアドレスに関係なく
プロセッサがメモリに一様にアクセスできる。同様に、
どのプロセッサ上で動く入出力(I/O)ドライバも、
システム内のどのI/Oデバイスにも一様にアクセスで
きる。
ステムの多くは真の対称型でない。代表的な例は、中央
処理装置(CPU)ノードとI/Oノードがスイッチに
接続され、スイッチが高速ネットワーク経由で他のスイ
ッチおよびノードに接続されたシステムということにな
ろう。すべてのCPUノードがすべてのI/Oノードに
アクセスできるということであるから、このシステム
は、従来のOSに要求される程度まで対称型である。と
ころが、CPUノードがI/Oノードにアクセスする速
度は、CPUノードと同じスイッチに接続されたI/O
ノードにアクセスするときの方が、別のスイッチに接続
されたI/Oノードにアクセスするときより速い。従来
のOSは、位置的に最も近い適当なリソースに自動的に
アクセスするCPUのコンセプト(“プロセッサ・アフ
ィニティ”として知られている)をサポートしない。す
なわち、CPUノード上を走るソフトウェアが、常にC
PUノードと同じスイッチに接続されたI/Oノードに
アクセスするのを確実にしないということである。結果
として、CPUノードによっては、そこから遠隔のネッ
トワークインタフェースコントローラ(NIC)にアク
セスするのにシステムインタコネクトを横切らなければ
ならない一方で、ローカルNICへのアクセスが使用で
きるようになる場合もある。これは、ネットワーク経由
の伝送のための待ち時間が増し、システムインタコネク
トにおいて帯域幅が無駄に使用される結果となる。
トを介して接続された複数の中央処理装置(CPU)ノ
ード、入出力(I/O)ノード、およびメモリノードを
包含する分散型マルチノードコンピュータシステムを対
象とする(図1に示す通り)。インタコネクトは更に、
複数の相互に結合されたスイッチを包含する。各スイッ
チは、CPUノードとI/Oノードとメモリノードの間
のデータパケットのルーティングを提供する。各スイッ
チは、対応するI/Oノードを介してネットワーク上の
データパケット伝送のためのNICに接続される。各N
ICはメモリマップにマッピングされる。システムアド
レス空間の一部が、対応するスイッチに接続された各N
ICごとに送信ウィンドウを形成する(図2に示す通
り)。CPUが、データパケットをNIC送信ウィンド
ウに書き込むことによってネットワーク経由で伝送す
る。データパケット伝送を制御するメカニズムは、NI
C送信ウィンドウへのCPU書き込みが各々個々に自己
定義的であるように定められる。すなわち、どこにデー
タパケットを送るのか決めるときに直前の書き込みを頼
らないということである。データパケットの宛先および
その伝送のその他の情報は、送信ウィンドウに書き込ま
れたデータパケットの内部でコード化することができ
る。システム内でスイッチに接続されたNICは、CP
Uのその送信ウィンドウへの書き込みを同じように解釈
するように構成される。これで、NIC送信ウィンドウ
へのデータパケット書き込みがどのNICに向けてなさ
れても同じ効果を持つことが確実になる。“アドレスエ
イリアシング”の周知のコンセプトは、送信ウィンドウ
のエイリアスされた部分へのCPU書き込みが常に、書
き込みをするCPUと同じスイッチに接続されたNIC
に向けられるように当該のNIC送信ウィンドウ部分で
使用される。結果として、NICへのCPU書き込み
は、CPU上を走るソフトウェアがどのNICにアクセ
スしようとするかに関係なく、CPUに最も近い位置に
あるNICに向けられる。従って、分散型マルチノード
コンピュータシステムにおいてより良い性能が達成され
る。
示してあるのは、外部ネットワーク90に接続された分
散型マルチノードコンピュータシステム100の全体ア
ーキテクチャのブロック図である。システム100は、
複数のノード、すなわち中央処理装置(CPU)ノード
110a〜110n(全体として110)、メモリノー
ド115a〜115n、および入出力(“I/O”)ノ
ード120a〜120n(120)を含む。CPUノー
ド110は各々が従来の処理装置、例えばIntelま
たはIntelコンパチブルのPentiumTMクラス
またはより上位のプロセッサ、Sun SPARCTMク
ラスまたはより上位のプロセッサ、またはIBM/Mo
trola PowerPCTMクラスまたはより上位の
プロセッサである。I/Oノード120は各々が従来の
I/Oシステム、例えば記憶装置、入力装置、周辺装置
等々である。メモリノード115は各々が従来のメモリ
システム、例えばダイナミックランダムアクセスメモリ
(DRAM)システム、スタティックランダムアクセス
メモリ(SRAM)システム等々である。図1に示す通
り、システム100におけるノード110、115およ
び120は、インタコネクト125を介して接続され
る。インタコネクト125は、例えばルータまたはスイ
ッチを使って実現化されたメッシュ、リングまたはハイ
パーキューブであってよい。インタコネクト125は、
任意のノード対の間のパスを提供し、メッセージをある
ノードから別のノードへルーティングする。インタコネ
クト125は更に、複数の相互に連結したスイッチ13
0(a)〜(n)(全体として130)を包含するが、
説明し易くするために、図には4つのスイッチ0、1、
2および3だけを示す。スイッチ130は各々、CPU
ノード110とメモリノード115a〜115nとI/
Oノード120の間でのデータパケットのルーティング
を提供する。
おけるスイッチ130のIDを示すローカルスイッチI
D(SWID)を有する。各SWIDは、論理High
か論理lowかどちらかであるバイナリビットによって
特定されてよい。例えば図1に示す通り、スイッチ0は
SWID‘00’を有し、スイッチ1はSWID‘0
1’を有し、スイッチ2はSWID‘10’を有し、ス
イッチ3はSWID‘11’を有する。図1に示す通
り、スイッチ0は、3つのCPUノード110、1つの
メモリノード115、および1つのI/Oノード120
に接続される。スイッチ1は、2つのCPUノード11
0、1つのI/Oノード120、および1つのメモリノ
ード115に接続される。システム100におけるどの
ノードも、これが物理的に接続されるスイッチ130
と、これが物理的に接続されないスイッチ130とを併
せ持つことに注目されたい。CPU110は各々、CP
U110が直接接続されないスイッチへの非対称アクセ
スを持つ。一例を挙げると、番号1を付けたCPUノー
ド110は、スイッチ0に直接接続される。ところが、
CPUノード1は、スイッチ1、2および3には直接接
続されない。図1の実施例におけるこのような1つのス
イッチ130の詳細なブロック図を図4に示す。
るI/Oノード120を介してNIC85(n)(全体
として85)に接続される。図1に示す通り、スイッチ
0は対応するI/Oノードを介してNIC0に接続し、
スイッチ1は対応するI/Oノードを介してNIC1に
接続し、スイッチ2は対応するI/Oノードを介してN
IC2に接続し、スイッチ3は対応するI/Oノードを
介してNIC3に接続する。NIC85は、ギガビット
・イーサネット(登録商標)またはファイバチャネル等
のネットワークインタフェースのためのI/Oコントロ
ーラである。
0にNIC85へのプロセッサ入出力(PIO)書き込
みリファレンスを発行させるソフトウェアドライバ16
0を包含する。ソフトウェアドライバ160は、ソフト
ウェアとしてもハードウェアとしても実現することがで
きる。
ノードコンピュータシステム100のアドレスマップ2
00を示す。アドレスマップ200は、キャッシュメモ
リやI/Oノード120等のメモリ構造にアクセスする
ための1組のメモリアドレスを有する。図2に示す通
り、アドレスマップ200は0から始まり、264ビット
の幅である。図2の例では、0から232までのアドレス
はいずれもメモリノード115へのリファレンスを維持
する。234から240までのアドレスはいずれもメモリマ
ップト入出力(MMIO)ウィンドウ25へのリファレ
ンスを維持する。すべてのNIC85はアドレスマップ
200においてマッピングされる。システムアドレスマ
ップ200の一部が、対応するスイッチ130に接続さ
れた各NIC85ごとに送信ウィンドウを形成する。こ
のアドレス空間をNIC送信ウィンドウ27と呼ぶ。ア
ドレスマップ200では、さまざまなメモリ構造へのリ
ファレンスを維持するためにどんなアドレス範囲を選ん
でも構わないことを理解されたい。
送信ウィンドウに書き込むことによってネットワーク経
由で伝送する。データパケット伝送を制御するためのメ
カニズムは、NIC送信ウィンドウ27へのPIO書き
込みリファレンスが各々個々に自己定義的であるように
定められる。すなわち、各PIO書き込みはどこにデー
タパケットを送るのか決めるために直前のPIO書き込
みを頼らないということである。データパケット伝送に
必要とされる情報はすべて、単一のPIO書き込みでN
IC85に送信される。一例を挙げると、この情報は、
ネットワークの宛先、データパケット、プロトコルヘッ
ダ等を含んでよい。データパケットおよび他の情報の宛
先は、NIC送信ウィンドウ27に書き込まれたデータ
パケットの内部でコード化され得る。代替の実施例で
は、データパケットの宛先は、NIC送信ウィンドウ2
7の内部でオフセット(図示されていない)によって指
示されてよい。本発明の一実施例では、書き込み複合属
性が、データパケットを単一転送で送信するのに使用さ
れる。データパケットを単一転送でNIC85に送信す
るのに他の方法も活用できることを理解されたい。シス
テム100におけるスイッチに接続されたNIC85
は、その送信ウィンドウ27への書き込みを同じように
解釈する構成になっている。これで、NIC送信ウィン
ドウ27へのデータパケット書き込みがどのNIC85
に向けてなされても同じ効果を持つことが確実になる。
0、NIC1、NIC2およびNIC3とラベルを付さ
れた領域が直接メモリマッピングされる。先に述べた通
り、NIC0は対応するI/Oノードを通じてスイッチ
0に接続し、NIC1は対応するI/Oノードを通じて
スイッチ1に接続し、NIC2は対応するI/Oノード
を通じてスイッチ2に接続し、NIC3は対応するI/
Oノードを通じてスイッチ3に接続する。NIC送信ウ
ィンドウ27においてNIC0とラベルを付された空間
へのPIO書き込みリファレンスは、スイッチ0に属す
るNIC85に直接向かうようルーティングされる。同
様に、NIC2とラベルを付された空間へのPIO書き
込みリファレンスは、スイッチ2に属するNIC85に
直接向かうようルーティングされる。NIC送信ウィン
ドウ27においてラベル“LOCAL NIC ALI
AS”を付けた領域へのPIO書き込みリファレンス
は、このPIO書き込みリファレンスを発行したCPU
と同じスイッチに属するNICに向けてルーティングさ
れる。
IC ALIAS(ローカルNICエイリアス)のエリ
アをNIC0ウィンドウと共に自然に並べるようにする
ためのアドレスマップ200の間隙である。図2に示す
通り、LOCAL NICALIASは、MMIOウィ
ンドウ25においてNIC送信ウィンドウ27の最下部
から始まる。
るのは、NIC85へのPIO書き込みリファレンスで
使用されるアドレス50の好適なフォーマットの図解で
ある。アドレス50は、どこにデータパケットを送るべ
きかを指示する。アドレス50は、望ましくは、下記の
フィールドを含む。NICベースフィールド10、SW
IDフィールド20、NICサイズフィールド30、お
よびキャッシュラインオフセットフィールド40。
ICベースレジスタ(図3に示されていない)と照合す
ることによってNIC85に向けてPIO書き込みリフ
ァレンスがなされたかどうかを決定するのに使用され
る。NICベースフィールド10の内容がNICベース
レジスタに合致すれば、それは、NIC85に対してリ
クエストが出されていることを示す。NICベースレジ
スタ5については、後に図4に則して詳細に述べる。
システム初期設定時に指定値に設定される。一実施例で
は、SWIDフィールド20に保存された指定値がゼロ
“000”である。一実施例では、SWIDフィールド
20は3ビットの幅がある。値“000”は一例にすぎ
ず、SWIDフィールド20は任意のどんな数値も保持
できることを理解されたい。NIC85に向けてPIO
書き込みリファレンスを行なうことが決定されると、S
WIDフィールド20は、それがローカルNICエイリ
アスを指示する指定値を有するかどうか見るために検査
される。
ウィンドウ25におけるNIC送信ウィンドウ27のサ
イズを指定する。NIC送信ウィンドウ27は、サイズ
が2の累乗であるので、自然に並ぶ。キャッシュライン
オフセットフィールド40は、MMIOウィンドウ25
におけるキャッシュラインのサイズを指示する。
ム100の1つのスイッチ130の機能ブロック図であ
る。代表的なシステム100は複数のスイッチ130を
有するが、図4では、説明を分かり易くするためにその
ようなスイッチ130が1つしか描かれていない。図4
に示す通り、スイッチ130は数個の入力ポートを有す
るが、描かれているのは5個のポート8、9、11、1
2および15だけである。スイッチ130は更に、対応
するI/Oノード120を介してNIC85に接続す
る。
スタ5を包含する。NICベースレジスタ5は、図1に
示すNIC85がMMIOウィンドウ25においてマッ
ピングされた場所を示すべくプログラムされる。
リファレンスで使用されたアドレス50を復号するのに
適したエイリアスデコーダ2を包含する。図4では、説
明し易くするためにエイリアスデコーダ2が1つしか示
してないが、スイッチ130の各ポートがエイリアスデ
コーダ2を有する。NIC85に向けてPIO書き込み
リファレンスがなされたことが決定されると、エイリア
スデコーダ2は、アドレス50のSWIDフィールド2
0を読み取り、それがローカルNICエイリアスを指示
する指定値を有するかどうか決定する。アドレス50が
NIC送信ウィンドウ27におけるローカルNICエイ
リアスを示せば、エイリアスデコーダ2は、アドレス5
0のSWIDフィールドをローカルSWIDポート8か
ら受け取ったローカルSWID18と置き換えることに
よって、受け取ったアドレス50を修正する。エイリア
スデコーダ2は、修正アドレス50aをアドレスデコー
ダ4へ転送する。
aを受け取り、データパケットをこの修正アドレス50
aに向けてルーティングするのに使用される。修正アド
レス50aは、PIO書き込みリファレンスを発行した
CPU110に接続されたスイッチを指すNICローカ
ルのアドレスを含む。一例を挙げると、スイッチ1に接
続されたCPU110がPIO書き込みリファレンスを
発行した場合、リファレンスは、スイッチ1に接続され
たNIC1に向けてルーティングされる。スイッチ13
0は更に、アドレスデコーダ4に結合したクロスバー
(XBAR)6を包含する。XBAR6は、PIO書き
込みリファレンスをあるポートから別のポートに向けて
ルーティングする。
るのは、システム100によって実行されるデータパケ
ットのルーティングの方法のフローチャートである。プ
ロセスが始まり(510)、ソフトウェアドライバ16
0がCPU110にPIO書き込みリファレンスをNI
C85に向けて発行させる(520)。PIO書き込み
リファレンスは、望ましくは、アドレス50ならびにデ
ータパケットを含む。ソフトウェアドライバ160は、
PIO書き込みリファレンスで用いられるアドレス50
において、望ましくは、SWIDフィールド20を指定
値に設定する。指定値は、NIC送信ウィンドウ27に
おけるローカルNICエイリアスを指示する(図2に示
す)。データパケットを伝送するのに要求された情報は
すべて、単一のPIO書き込みリファレンスでNIC8
5に送られなければならず、データパケット内部でコー
ド化される。
130のポート9に到達する(図4に示す)。エイリア
スデコーダ2は、PIO書き込みリファレンスで使用さ
れたアドレス50を受け取る(530)。ステップ54
0において、NICベースフィールド10とNICベー
スレジスタ5の間で論理比較が行われる。NICベース
レジスタ5は、NIC85がMMIOウィンドウ25に
おいてマッピングされた場所を指示する。NICベース
フィールド10の内容がNICベースレジスタに等しい
ならば、それは、NIC85に対してPIO書き込みリ
ファレンスがなされていることを示す。その場合、それ
がローカルNICエイリアスを示す指定値を有するかど
うか見るために、アドレス50のSWIDフィールドが
検査される(550)。
ば、エイリアスデコーダは、アドレスのSWIDフィー
ルドをローカルSWID18と置き換え(555)、修
正アドレス50aを生成する(図4に示す)。修正アド
レス50aは、望ましくは、受け取られたアドレス50
と同じフィールドを有する。修正アドレス50aは、P
IO書き込みリファレンスを発行したCPU110に接
続されたスイッチを指すNICローカルのアドレスを含
む。
を有する修正アドレスを受け取り(560)、PIO書
き込みリファレンスを修正アドレス50aで指示された
通りのその宛先に向けてルーティングし、そして、プロ
セスは終了する(570)。結果として、PIO書き込
みリファレンスは、PIO書き込みリファレンスがどの
NICをターゲットにしているかに関係なく、リクエス
トを出したCPUに最も近い位置にあるNICに向けて
ルーティングされる。但し、NIC85に対してPIO
書き込みリファレンスがなされなかった場合、アドレス
は、修正されずにアドレスデコーダ4に送られる(58
0)。
ソフトウェアドライバ160は常に、動作中である現行
CPUに最も近い位置のNICを使用できることにな
り、システムのトポロジーを理解する必要もない。オペ
レーティングシステムは、ソフトウェアドライバ160
の知識なしにソフトウェアドライバ160をCPU間で
動作させることができ、ネットワーク90に各々独立し
て転送されるデータパケットは常に、現行CPUが接続
されているスイッチに接続されたNICを通っていくこ
とになる。
ネットワークインタフェースコントローラ(NIC)に
通信的に結合した複数のスイッチに通信的に結合した複
数のCPUを含むマルチノードコンピュータシステムに
おいて、プロセッサ入出力(PIO)書き込みリファレ
ンスを、CPUからこのCPUに対してローカルである
スイッチに接続されたNICまでルーティングする方法
であって、アドレスとデータを含むPIO書き込みリフ
ァレンスを受け取り、ローカルNICエイリアスを指示
するアドレスに応答して、そのアドレスに基いて、PI
O書き込みリファレンスを発行したCPUに接続されて
いるスイッチに対してローカルであるNICのアドレス
を含む修正アドレスを生成し、データをこの修正アドレ
スに向けてルーティングするステップを具備する方法。
(1) (付記2)前記アドレスが更にベースフィールドを含
み、該ベースフィールドをNICベースレジスタと照合
して前記NICに対してPIO書き込みリファレンスが
なされているかどうか決定するステップをさらに具備す
る付記1に記載の方法。(2) (付記3)PIO書き込みリファレンスが各々、NIC
がその宛先へデータを送るのに必要とされるすべての情
報を含む付記1に記載の方法。
(SWID)フィールドを包含し、修正アドレスを生成
するステップは更に、SWIDフィールドを、PIO書
き込みリファレンスを発行したCPUに接続されている
スイッチに対してローカルであるNICのローカルSW
IDと置き換えることを含む付記1に記載の方法。
(3) (付記5)マルチノードコンピュータシステムであっ
て、各々が1つのアドレスを含むPIO書き込みリファ
レンスを発行する複数のCPUと、各々がPIO書き込
みリファレンスをネットワークインタフェースコントロ
ーラ(NIC)に向けてルーティングするために少なく
とも1つのCPUに通信的に結合した複数のスイッチ
と、各々がPIO書き込みリファレンスをネットワーク
上でルートティングするために複数のスイッチの少なく
とも1つに通信的に結合した複数のNICと、各々が複
数のスイッチの1つに属し、前記アドレスに基づきPI
O書き込みリファレンスを発行したCPUに接続されて
いるスイッチに対してローカルであるNICのアドレス
を含む修正アドレスを生成するエイリアスデコーダとを
具備するシステム。(4) (付記6)各々が複数のスイッチの1つに属し、PIO
書き込みリファレンスを修正アドレスに向けてルーティ
ングする複数のアドレスデコーダをさらに具備する付記
5に記載のシステム。(5) (付記7)PIO書き込みリファレンスで使用されたア
ドレスが更に、メモリマップト入出力(MMIO)ウィ
ンドウに書き込むことのできるキャッシュラインの数を
指示するサイズフィールドを包含する付記5に記載のシ
ステム。(6) (付記8)PIOリファレンスで使用されたアドレスが
更に、MMIOウィンドウに書き込まれた各キャッシュ
ラインのサイズを指示するキャッシュラインオフセット
フィールドを具備する付記5に記載のシステム。(7) (付記9)各スイッチが更に、MMIOウィンドウにお
いてNICがマッピングされた場所を指示するNICベ
ースレジスタを具備する付記5に記載のシステム。
グラムされた定数を保存する付記9に記載のシステム。
チのMMIOウィンドウへのPIO書き込みリファレン
スを認識できる付記5に記載のシステム。
ファレンスが各々、NICがその宛先へデータを送るの
に必要とされるすべての情報を含む付記5に記載のシス
テム。
のネットワークインタフェースコントローラ(NIC)
に通信的に結合した複数のスイッチに通信的に結合した
複数のCPUを含むマルチノードコンピュータシステム
において、プロセッサ入出力(PIO)書き込みリファ
レンスをCPUからこのCPUに対してローカルである
スイッチに接続されたNICまでルーティングする方法
であって、ベースアドレスとスイッチID(SWID)
を含むアドレスを含むPIO書き込みリファレンスを受
け取り、ベースアドレスをNICベースレジスタと照合
してNICに対してPIO書き込みリファレンスがなさ
れているかどうか決定し、PIO書き込みリファレンス
がNICに対してなされていることに応答して、SWI
DがローカルNICエイリアスを指示する指定値を有す
るかどうか決定し、SWIDがローカルNICエイリア
スを指示する指定値を有することに応答して、SWID
フィールドをローカルSWIDと置き換えるステップを
具備する方法。(8) (付記14)各PIOリファレンスがデータパケットを
含み、NICへのPIOリファレンスが各々、NICが
その宛先へデータパケットを送るのに必要とされるすべ
ての情報を含む付記13に記載の方法。(9) (付記15)ローカルSWIDが、PIO書き込みリフ
ァレンスを発行したCPUに接続されたスイッチのID
である付記13に記載の方法。
が、PIO書き込みリファレンスを発行したCPUに対
してローカルであるスイッチに接続されたNICに向け
てPIO書き込みリファレンスをルーティングできるよ
うにするMMIOウィンドウ内の領域である付記13に
記載の方法。
ータシステムであって、アドレスを含むプロセッサ入出
力(PIO)リファレンスを発行するためのプロセッサ
手段と、PIOリファレンスをネットワークインタフェ
ースコントローラ(NIC)に向けてルーティングする
ためのスイッチング手段と、PIOリファレンスで使用
されたアドレスを受け取り、その受け取ったアドレスに
基づき、PIO書き込みリファレンスを発行したプロセ
ッサ手段に対してローカルであるスイッチング手段に接
続されたNICを指示する修正アドレスを生成するため
のエイリアス復号手段とを具備するシステム。(10)
ンピュータシステムの全体アーキテクチャのブロック図
である。
マップを図解したものである。
レンスで使用されたアドレスの好適なフォーマットを図
解したものである。
である。
ァレンスの宛先を復号する方法のフローチャートであ
る。
Claims (10)
- 【請求項1】 各スイッチが少なくとも1つのネットワ
ークインタフェースコントローラ(NIC)に通信的に
結合した複数のスイッチに通信的に結合した複数のCP
Uを含むマルチノードコンピュータシステムにおいて、
プロセッサ入出力(PIO)書き込みリファレンスを、
CPUからこのCPUに対してローカルであるスイッチ
に接続されたNICまでルーティングする方法であっ
て、 アドレスとデータを含むPIO書き込みリファレンスを
受け取り、 ローカルNICエイリアスを指示するアドレスに応答し
て、そのアドレスに基いて、PIO書き込みリファレン
スを発行したCPUに接続されているスイッチに対して
ローカルであるNICのアドレスを含む修正アドレスを
生成し、 データをこの修正アドレスに向けてルーティングするス
テップを具備する方法。 - 【請求項2】 前記アドレスが更にベースフィールドを
含み、該ベースフィールドをNICベースレジスタと照
合して前記NICに対してPIO書き込みリファレンス
がなされているかどうか決定するステップをさらに具備
する請求項1に記載の方法。 - 【請求項3】 アドレスが更にスイッチID(SWI
D)フィールドを包含し、修正アドレスを生成するステ
ップは更に、 SWIDフィールドを、PIO書き込みリファレンスを
発行したCPUに接続されているスイッチに対してロー
カルであるNICのローカルSWIDと置き換えること
を含む請求項1に記載の方法。 - 【請求項4】 マルチノードコンピュータシステムであ
って、 各々が1つのアドレスを含むPIO書き込みリファレン
スを発行する複数のCPUと、 各々がPIO書き込みリファレンスをネットワークイン
タフェースコントローラ(NIC)に向けてルーティン
グするために少なくとも1つのCPUに通信的に結合し
た複数のスイッチと、 各々がPIO書き込みリファレンスをネットワーク上で
ルートティングするために複数のスイッチの少なくとも
1つに通信的に結合した複数のNICと、 各々が複数のスイッチの1つに属し、前記アドレスに基
づきPIO書き込みリファレンスを発行したCPUに接
続されているスイッチに対してローカルであるNICの
アドレスを含む修正アドレスを生成するエイリアスデコ
ーダとを具備するシステム。 - 【請求項5】 各々が複数のスイッチの1つに属し、P
IO書き込みリファレンスを修正アドレスに向けてルー
ティングする複数のアドレスデコーダをさらに具備する
請求項4に記載のシステム。 - 【請求項6】 PIO書き込みリファレンスで使用され
たアドレスが更に、メモリマップト入出力(MMIO)
ウィンドウに書き込むことのできるキャッシュラインの
数を指示するサイズフィールドを包含する請求項4に記
載のシステム。 - 【請求項7】 PIOリファレンスで使用されたアドレ
スが更に、MMIOウィンドウに書き込まれた各キャッ
シュラインのサイズを指示するキャッシュラインオフセ
ットフィールドを具備する請求項4に記載のシステム。 - 【請求項8】 各スイッチが少なくとも1つのネットワ
ークインタフェースコントローラ(NIC)に通信的に
結合した複数のスイッチに通信的に結合した複数のCP
Uを含むマルチノードコンピュータシステムにおいて、
プロセッサ入出力(PIO)書き込みリファレンスをC
PUからこのCPUに対してローカルであるスイッチに
接続されたNICまでルーティングする方法であって、 ベースアドレスとスイッチID(SWID)を含むアド
レスを含むPIO書き込みリファレンスを受け取り、 ベースアドレスをNICベースレジスタと照合してNI
Cに対してPIO書き込みリファレンスがなされている
かどうか決定し、 PIO書き込みリファレンスがNICに対してなされて
いることに応答して、SWIDがローカルNICエイリ
アスを指示する指定値を有するかどうか決定し、 SWIDがローカルNICエイリアスを指示する指定値
を有することに応答して、SWIDフィールドをローカ
ルSWIDと置き換えるステップを具備する方法。 - 【請求項9】 各PIOリファレンスがデータパケット
を含み、NICへのPIOリファレンスが各々、NIC
がその宛先へデータパケットを送るのに必要とされるす
べての情報を含む請求項8に記載の方法。 - 【請求項10】 分散型マルチノードコンピュータシス
テムであって、 アドレスを含むプロセッサ入出力(PIO)リファレン
スを発行するためのプロセッサ手段と、 PIOリファレンスをネットワークインタフェースコン
トローラ(NIC)に向けてルーティングするためのス
イッチング手段と、 PIOリファレンスで使用されたアドレスを受け取り、
その受け取ったアドレスに基づき、PIO書き込みリフ
ァレンスを発行したプロセッサ手段に対してローカルで
あるスイッチング手段に接続されたNICを指示する修
正アドレスを生成するためのエイリアス復号手段とを具
備するシステム。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US30188601P | 2001-06-29 | 2001-06-29 | |
US60/301886 | 2001-06-29 | ||
US10/150,276 US6862634B2 (en) | 2001-06-29 | 2002-05-17 | Mechanism to improve performance in a multi-node computer system |
US10/150276 | 2002-05-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003178043A true JP2003178043A (ja) | 2003-06-27 |
JP3996457B2 JP3996457B2 (ja) | 2007-10-24 |
Family
ID=26847500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002192022A Expired - Fee Related JP3996457B2 (ja) | 2001-06-29 | 2002-07-01 | マルチノードコンピュータシステムにおけるルーティング方法および分散型マルチノードコンピュータシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6862634B2 (ja) |
JP (1) | JP3996457B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005166027A (ja) * | 2003-11-12 | 2005-06-23 | Ricoh Co Ltd | 画像システム |
JP2008204315A (ja) * | 2007-02-22 | 2008-09-04 | Nec Corp | 仮想サーバシステム |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6766360B1 (en) | 2000-07-14 | 2004-07-20 | Fujitsu Limited | Caching mechanism for remote read-only data in a cache coherent non-uniform memory access (CCNUMA) architecture |
US6961761B2 (en) * | 2001-05-17 | 2005-11-01 | Fujitsu Limited | System and method for partitioning a computer system into domains |
US6754776B2 (en) | 2001-05-17 | 2004-06-22 | Fujitsu Limited | Method and system for logical partitioning of cache memory structures in a partitoned computer system |
US7380001B2 (en) * | 2001-05-17 | 2008-05-27 | Fujitsu Limited | Fault containment and error handling in a partitioned system with shared resources |
US6862634B2 (en) | 2001-06-29 | 2005-03-01 | Fujitsu Limited | Mechanism to improve performance in a multi-node computer system |
US6742101B2 (en) * | 2001-06-29 | 2004-05-25 | Fujitsu Limited | Scalable and flexible method for address space decoding in a multiple node computer system |
US6920545B2 (en) * | 2002-01-17 | 2005-07-19 | Raytheon Company | Reconfigurable processor with alternately interconnected arithmetic and memory nodes of crossbar switched cluster |
US7287128B1 (en) | 2005-01-25 | 2007-10-23 | Seagate Technology Llc | Write on reference mesh |
CN100375080C (zh) * | 2005-04-15 | 2008-03-12 | 中国人民解放军国防科学技术大学 | 大规模分布共享系统中的输入输出分组节流方法 |
US9137179B2 (en) * | 2006-07-26 | 2015-09-15 | Hewlett-Packard Development Company, L.P. | Memory-mapped buffers for network interface controllers |
US7802025B2 (en) | 2007-06-26 | 2010-09-21 | International Business Machines Corporation | DMA engine for repeating communication patterns |
US8010875B2 (en) | 2007-06-26 | 2011-08-30 | International Business Machines Corporation | Error correcting code with chip kill capability and power saving enhancement |
US7984448B2 (en) * | 2007-06-26 | 2011-07-19 | International Business Machines Corporation | Mechanism to support generic collective communication across a variety of programming models |
US7793038B2 (en) | 2007-06-26 | 2010-09-07 | International Business Machines Corporation | System and method for programmable bank selection for banked memory subsystems |
US8140925B2 (en) | 2007-06-26 | 2012-03-20 | International Business Machines Corporation | Method and apparatus to debug an integrated circuit chip via synchronous clock stop and scan |
US7877551B2 (en) * | 2007-06-26 | 2011-01-25 | International Business Machines Corporation | Programmable partitioning for high-performance coherence domains in a multiprocessor system |
US8468416B2 (en) | 2007-06-26 | 2013-06-18 | International Business Machines Corporation | Combined group ECC protection and subgroup parity protection |
US8458282B2 (en) * | 2007-06-26 | 2013-06-04 | International Business Machines Corporation | Extended write combining using a write continuation hint flag |
US7886084B2 (en) | 2007-06-26 | 2011-02-08 | International Business Machines Corporation | Optimized collectives using a DMA on a parallel computer |
US8108738B2 (en) | 2007-06-26 | 2012-01-31 | International Business Machines Corporation | Data eye monitor method and apparatus |
US8230433B2 (en) | 2007-06-26 | 2012-07-24 | International Business Machines Corporation | Shared performance monitor in a multiprocessor system |
US8103832B2 (en) * | 2007-06-26 | 2012-01-24 | International Business Machines Corporation | Method and apparatus of prefetching streams of varying prefetch depth |
US8756350B2 (en) | 2007-06-26 | 2014-06-17 | International Business Machines Corporation | Method and apparatus for efficiently tracking queue entries relative to a timestamp |
US7827391B2 (en) | 2007-06-26 | 2010-11-02 | International Business Machines Corporation | Method and apparatus for single-stepping coherence events in a multiprocessor system under software control |
US8032892B2 (en) * | 2007-06-26 | 2011-10-04 | International Business Machines Corporation | Message passing with a limited number of DMA byte counters |
US8509255B2 (en) | 2007-06-26 | 2013-08-13 | International Business Machines Corporation | Hardware packet pacing using a DMA in a parallel computer |
US8285912B2 (en) * | 2009-08-07 | 2012-10-09 | Arm Limited | Communication infrastructure for a data processing apparatus and a method of operation of such a communication infrastructure |
US20110213730A1 (en) * | 2010-03-01 | 2011-09-01 | International Business Machines Corporation | Goal programming approach for optimal budget allocation for national analysis of wildland fire management |
CN101853237B (zh) * | 2010-05-31 | 2012-07-04 | 华为技术有限公司 | 片上系统及axi总线下的传输方法 |
US8583844B2 (en) * | 2011-05-31 | 2013-11-12 | Lsi Corporation | System and method for optimizing slave transaction ID width based on sparse connection in multilayer multilevel interconnect system-on-chip architecture |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5175839A (en) | 1987-12-24 | 1992-12-29 | Fujitsu Limited | Storage control system in a computer system for double-writing |
JP2809962B2 (ja) | 1993-03-02 | 1998-10-15 | 株式会社東芝 | 資源管理方式 |
US5465338A (en) * | 1993-08-24 | 1995-11-07 | Conner Peripherals, Inc. | Disk drive system interface architecture employing state machines |
US5561780A (en) | 1993-12-30 | 1996-10-01 | Intel Corporation | Method and apparatus for combining uncacheable write data into cache-line-sized write buffers |
JPH08185359A (ja) | 1994-10-31 | 1996-07-16 | Toshiba Corp | メモリサブシステム |
WO1996035169A1 (en) | 1995-05-05 | 1996-11-07 | Silicon Graphics, Inc. | Page migration in a non-uniform memory access (numa) system |
US5859985A (en) * | 1996-01-14 | 1999-01-12 | At&T Wireless Services, Inc. | Arbitration controller for providing arbitration on a multipoint high speed serial bus using drivers having output enable pins |
US6006255A (en) | 1996-04-05 | 1999-12-21 | International Business Machines Corporation | Networked computer system and method of communicating using multiple request packet classes to prevent deadlock |
US5761460A (en) * | 1996-07-19 | 1998-06-02 | Compaq Computer Corporation | Reconfigurable dual master IDE interface |
US6026472A (en) | 1997-06-24 | 2000-02-15 | Intel Corporation | Method and apparatus for determining memory page access information in a non-uniform memory access computer system |
US5887134A (en) * | 1997-06-30 | 1999-03-23 | Sun Microsystems | System and method for preserving message order while employing both programmed I/O and DMA operations |
US6014690A (en) | 1997-10-24 | 2000-01-11 | Digital Equipment Corporation | Employing multiple channels for deadlock avoidance in a cache coherency protocol |
US7380001B2 (en) | 2001-05-17 | 2008-05-27 | Fujitsu Limited | Fault containment and error handling in a partitioned system with shared resources |
US6961761B2 (en) | 2001-05-17 | 2005-11-01 | Fujitsu Limited | System and method for partitioning a computer system into domains |
US7159017B2 (en) | 2001-06-28 | 2007-01-02 | Fujitsu Limited | Routing mechanism for static load balancing in a partitioned computer system with a fully connected network |
US7194517B2 (en) | 2001-06-28 | 2007-03-20 | Fujitsu Limited | System and method for low overhead message passing between domains in a partitioned server |
US7213081B2 (en) | 2001-06-29 | 2007-05-01 | Fujitsu Limited | Dynamic determination of memory mapped input output range granularity for multi-node computer system |
US6742101B2 (en) | 2001-06-29 | 2004-05-25 | Fujitsu Limited | Scalable and flexible method for address space decoding in a multiple node computer system |
US6862634B2 (en) | 2001-06-29 | 2005-03-01 | Fujitsu Limited | Mechanism to improve performance in a multi-node computer system |
-
2002
- 2002-05-17 US US10/150,276 patent/US6862634B2/en not_active Expired - Lifetime
- 2002-07-01 JP JP2002192022A patent/JP3996457B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005166027A (ja) * | 2003-11-12 | 2005-06-23 | Ricoh Co Ltd | 画像システム |
JP2008204315A (ja) * | 2007-02-22 | 2008-09-04 | Nec Corp | 仮想サーバシステム |
Also Published As
Publication number | Publication date |
---|---|
US20030007457A1 (en) | 2003-01-09 |
US6862634B2 (en) | 2005-03-01 |
JP3996457B2 (ja) | 2007-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003178043A (ja) | マルチノードコンピュータシステムの性能を改善するハードウェア機構 | |
US7283473B2 (en) | Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network | |
US7401126B2 (en) | Transaction switch and network interface adapter incorporating same | |
US7685330B2 (en) | Method for efficient determination of memory copy versus registration in direct access environments | |
US7818459B2 (en) | Virtualization of I/O adapter resources | |
US6834332B2 (en) | Apparatus and method for swapping-out real memory by inhibiting i/o operations to a memory region and setting a quiescent indicator, responsive to determining the current number of outstanding operations | |
US9015350B2 (en) | Method and apparatus for a shared I/O network interface controller | |
US7555002B2 (en) | Infiniband general services queue pair virtualization for multiple logical ports on a single physical port | |
US7493409B2 (en) | Apparatus, system and method for implementing a generalized queue pair in a system area network | |
US7095750B2 (en) | Apparatus and method for virtualizing a queue pair space to minimize time-wait impacts | |
US6578122B2 (en) | Using an access key to protect and point to regions in windows for infiniband | |
US6829685B2 (en) | Open format storage subsystem apparatus and method | |
WO2020247042A1 (en) | Network interface for data transport in heterogeneous computing environments | |
US20050071472A1 (en) | Method and system for hardware enforcement of logical partitioning of a channel adapter's resources in a system area network | |
US20030023786A1 (en) | Apparatus and method for managing work and completion queues using head and tail pointers | |
US20090073978A1 (en) | Low Latency Multicast for InfinibandR Host Channel Adapters | |
US20050207423A1 (en) | Apparatus and method for managing memory in a network switch | |
US20090077268A1 (en) | Low Latency Multicast for Infiniband Host Channel Adapters | |
US20050078694A1 (en) | Packet manager interrupt mapper | |
US20030105931A1 (en) | Architecture for transparent mirroring | |
US11392528B2 (en) | Methods and apparatus for DMA engine descriptors for high speed data systems | |
US20240264964A1 (en) | Multi-plane, multi-protocol memory switch fabric with configurable transport | |
US20020198927A1 (en) | Apparatus and method for routing internet protocol frames over a system area network | |
US9274586B2 (en) | Intelligent memory interface | |
US7131020B2 (en) | Distributed copies of configuration information using token ring |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050620 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070316 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070327 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070522 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070703 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070802 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100810 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3996457 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: 20100810 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110810 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120810 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120810 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130810 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |