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
Application number
JP2002192022A
Other languages
English (en)
Other versions
JP3996457B2 (ja
Inventor
Jeremy J Farrell
ジェイ.ファレル ジェレミー
Kazunori Masuyama
和則 増山
Sudheer Miryala
ミルヤラ サディール
N Conway Patrick
エヌ.コンウェイ パトリック
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2003178043A publication Critical patent/JP2003178043A/ja
Application granted granted Critical
Publication of JP3996457B2 publication Critical patent/JP3996457B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol 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

(57)【要約】 【課題】 分散型マルチノードコンピュータシステムに
おいて、各スイッチが、CPUノードとI/Oノードと
メモリノードの間のデータパケットのルーティングを提
供する。 【解決手段】 各スイッチが、ネットワーク上のデータ
パケット伝送のために、対応するI/Oノードを通じて
ネットワークインタフェースコントローラ(NIC)に
接続される。各NICがメモリマップにマッピングされ
る。システムアドレス空間の一部が、対応するスイッチ
に接続された各NICごとに送信ウィンドウを形成す
る。各PIO書き込みはどこにデータパケットを送るの
が良いか決めるために直前の書き込みを頼らない。“ア
ドレスエイリアシング”を使用することで、NIC送信
ウィンドウのエイリアス化部分へのCPU書き込みは常
に、書き込みをしたCPUと同じスイッチに接続された
NICに向けられる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にマルチノー
ドコンピュータシステムにおけるデータパケット伝送に
関するもので、詳記するならば、データパケットをロー
カルネットワークインタフェースコントローラを経由し
てルーティングするシステムおよび方法に関するもので
ある。
【0002】
【従来の技術】従来のオペレーティングシステム(O
S)は、普通、これを実行するコンピュータシステムが
対称型であることを前提として設計されている。Sun
UE1000等の対称型マイクロプロセッサ(SM
P)では、プロセッサまたはメモリアドレスに関係なく
プロセッサがメモリに一様にアクセスできる。同様に、
どのプロセッサ上で動く入出力(I/O)ドライバも、
システム内のどのI/Oデバイスにも一様にアクセスで
きる。
【0003】
【発明が解決しようとする課題】最新のコンピュータシ
ステムの多くは真の対称型でない。代表的な例は、中央
処理装置(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へのアクセスが使用で
きるようになる場合もある。これは、ネットワーク経由
の伝送のための待ち時間が増し、システムインタコネク
トにおいて帯域幅が無駄に使用される結果となる。
【0004】
【課題を解決するための手段】本発明は、インタコネク
トを介して接続された複数の中央処理装置(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に向けられる。従って、分散型マルチノード
コンピュータシステムにおいてより良い性能が達成され
る。
【0005】
【発明の実施の形態】図1について説明すると、ここに
示してあるのは、外部ネットワーク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の間でのデータパケットのルーティング
を提供する。
【0006】スイッチ130は各々、システム100に
おけるスイッチ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に示す。
【0007】図1に示すスイッチ130は各々、対応す
る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コントロ
ーラである。
【0008】システム100は更に、CPUノード11
0にNIC85へのプロセッサ入出力(PIO)書き込
みリファレンスを発行させるソフトウェアドライバ16
0を包含する。ソフトウェアドライバ160は、ソフト
ウェアとしてもハードウェアとしても実現することがで
きる。
【0009】図2について説明すると、これは、マルチ
ノードコンピュータシステム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では、さまざまなメモリ構造へのリ
ファレンスを維持するためにどんなアドレス範囲を選ん
でも構わないことを理解されたい。
【0010】CPU110は、データパケットをNIC
送信ウィンドウに書き込むことによってネットワーク経
由で伝送する。データパケット伝送を制御するためのメ
カニズムは、NIC送信ウィンドウ27へのPIO書き
込みリファレンスが各々個々に自己定義的であるように
定められる。すなわち、各PIO書き込みはどこにデー
タパケットを送るのか決めるために直前のPIO書き込
みを頼らないということである。データパケット伝送に
必要とされる情報はすべて、単一のPIO書き込みでN
IC85に送信される。一例を挙げると、この情報は、
ネットワークの宛先、データパケット、プロトコルヘッ
ダ等を含んでよい。データパケットおよび他の情報の宛
先は、NIC送信ウィンドウ27に書き込まれたデータ
パケットの内部でコード化され得る。代替の実施例で
は、データパケットの宛先は、NIC送信ウィンドウ2
7の内部でオフセット(図示されていない)によって指
示されてよい。本発明の一実施例では、書き込み複合属
性が、データパケットを単一転送で送信するのに使用さ
れる。データパケットを単一転送でNIC85に送信す
るのに他の方法も活用できることを理解されたい。シス
テム100におけるスイッチに接続されたNIC85
は、その送信ウィンドウ27への書き込みを同じように
解釈する構成になっている。これで、NIC送信ウィン
ドウ27へのデータパケット書き込みがどのNIC85
に向けてなされても同じ効果を持つことが確実になる。
【0011】NIC送信ウィンドウ27では、NIC
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に向けてルーティングさ
れる。
【0012】未使用と記された領域は、LOCAL N
IC ALIAS(ローカルNICエイリアス)のエリ
アをNIC0ウィンドウと共に自然に並べるようにする
ためのアドレスマップ200の間隙である。図2に示す
通り、LOCAL NICALIASは、MMIOウィ
ンドウ25においてNIC送信ウィンドウ27の最下部
から始まる。
【0013】図3について説明すると、ここに示してあ
るのは、NIC85へのPIO書き込みリファレンスで
使用されるアドレス50の好適なフォーマットの図解で
ある。アドレス50は、どこにデータパケットを送るべ
きかを指示する。アドレス50は、望ましくは、下記の
フィールドを含む。NICベースフィールド10、SW
IDフィールド20、NICサイズフィールド30、お
よびキャッシュラインオフセットフィールド40。
【0014】NICベースフィールド10は、それをN
ICベースレジスタ(図3に示されていない)と照合す
ることによってNIC85に向けてPIO書き込みリフ
ァレンスがなされたかどうかを決定するのに使用され
る。NICベースフィールド10の内容がNICベース
レジスタに合致すれば、それは、NIC85に対してリ
クエストが出されていることを示す。NICベースレジ
スタ5については、後に図4に則して詳細に述べる。
【0015】SWIDフィールド20は、望ましくは、
システム初期設定時に指定値に設定される。一実施例で
は、SWIDフィールド20に保存された指定値がゼロ
“000”である。一実施例では、SWIDフィールド
20は3ビットの幅がある。値“000”は一例にすぎ
ず、SWIDフィールド20は任意のどんな数値も保持
できることを理解されたい。NIC85に向けてPIO
書き込みリファレンスを行なうことが決定されると、S
WIDフィールド20は、それがローカルNICエイリ
アスを指示する指定値を有するかどうか見るために検査
される。
【0016】NICサイズフィールド30は、MMIO
ウィンドウ25におけるNIC送信ウィンドウ27のサ
イズを指定する。NIC送信ウィンドウ27は、サイズ
が2の累乗であるので、自然に並ぶ。キャッシュライン
オフセットフィールド40は、MMIOウィンドウ25
におけるキャッシュラインのサイズを指示する。
【0017】図4について説明すると、これは、システ
ム100の1つのスイッチ130の機能ブロック図であ
る。代表的なシステム100は複数のスイッチ130を
有するが、図4では、説明を分かり易くするためにその
ようなスイッチ130が1つしか描かれていない。図4
に示す通り、スイッチ130は数個の入力ポートを有す
るが、描かれているのは5個のポート8、9、11、1
2および15だけである。スイッチ130は更に、対応
するI/Oノード120を介してNIC85に接続す
る。
【0018】各スイッチ130は更にNICベースレジ
スタ5を包含する。NICベースレジスタ5は、図1に
示すNIC85がMMIOウィンドウ25においてマッ
ピングされた場所を示すべくプログラムされる。
【0019】各スイッチ130は更に、PIO書き込み
リファレンスで使用されたアドレス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へ転送する。
【0020】アドレスデコーダ4は、修正アドレス50
aを受け取り、データパケットをこの修正アドレス50
aに向けてルーティングするのに使用される。修正アド
レス50aは、PIO書き込みリファレンスを発行した
CPU110に接続されたスイッチを指すNICローカ
ルのアドレスを含む。一例を挙げると、スイッチ1に接
続されたCPU110がPIO書き込みリファレンスを
発行した場合、リファレンスは、スイッチ1に接続され
たNIC1に向けてルーティングされる。スイッチ13
0は更に、アドレスデコーダ4に結合したクロスバー
(XBAR)6を包含する。XBAR6は、PIO書き
込みリファレンスをあるポートから別のポートに向けて
ルーティングする。
【0021】図5について説明すると、ここに示してあ
るのは、システム100によって実行されるデータパケ
ットのルーティングの方法のフローチャートである。プ
ロセスが始まり(510)、ソフトウェアドライバ16
0がCPU110にPIO書き込みリファレンスをNI
C85に向けて発行させる(520)。PIO書き込み
リファレンスは、望ましくは、アドレス50ならびにデ
ータパケットを含む。ソフトウェアドライバ160は、
PIO書き込みリファレンスで用いられるアドレス50
において、望ましくは、SWIDフィールド20を指定
値に設定する。指定値は、NIC送信ウィンドウ27に
おけるローカルNICエイリアスを指示する(図2に示
す)。データパケットを伝送するのに要求された情報は
すべて、単一のPIO書き込みリファレンスでNIC8
5に送られなければならず、データパケット内部でコー
ド化される。
【0022】PIO書き込みリファレンスは、スイッチ
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)。
【0023】先のステップにおける決定が肯定的であれ
ば、エイリアスデコーダは、アドレスのSWIDフィー
ルドをローカルSWID18と置き換え(555)、修
正アドレス50aを生成する(図4に示す)。修正アド
レス50aは、望ましくは、受け取られたアドレス50
と同じフィールドを有する。修正アドレス50aは、P
IO書き込みリファレンスを発行したCPU110に接
続されたスイッチを指すNICローカルのアドレスを含
む。
【0024】アドレスデコーダ4は、ローカルSWID
を有する修正アドレスを受け取り(560)、PIO書
き込みリファレンスを修正アドレス50aで指示された
通りのその宛先に向けてルーティングし、そして、プロ
セスは終了する(570)。結果として、PIO書き込
みリファレンスは、PIO書き込みリファレンスがどの
NICをターゲットにしているかに関係なく、リクエス
トを出したCPUに最も近い位置にあるNICに向けて
ルーティングされる。但し、NIC85に対してPIO
書き込みリファレンスがなされなかった場合、アドレス
は、修正されずにアドレスデコーダ4に送られる(58
0)。
【0025】こうして、本発明によれば有益なことに、
ソフトウェアドライバ160は常に、動作中である現行
CPUに最も近い位置のNICを使用できることにな
り、システムのトポロジーを理解する必要もない。オペ
レーティングシステムは、ソフトウェアドライバ160
の知識なしにソフトウェアドライバ160をCPU間で
動作させることができ、ネットワーク90に各々独立し
て転送されるデータパケットは常に、現行CPUが接続
されているスイッチに接続されたNICを通っていくこ
とになる。
【0026】(付記1)各スイッチが少なくとも1つの
ネットワークインタフェースコントローラ(NIC)に
通信的に結合した複数のスイッチに通信的に結合した複
数のCPUを含むマルチノードコンピュータシステムに
おいて、プロセッサ入出力(PIO)書き込みリファレ
ンスを、CPUからこのCPUに対してローカルである
スイッチに接続されたNICまでルーティングする方法
であって、アドレスとデータを含むPIO書き込みリフ
ァレンスを受け取り、ローカルNICエイリアスを指示
するアドレスに応答して、そのアドレスに基いて、PI
O書き込みリファレンスを発行したCPUに接続されて
いるスイッチに対してローカルであるNICのアドレス
を含む修正アドレスを生成し、データをこの修正アドレ
スに向けてルーティングするステップを具備する方法。
(1) (付記2)前記アドレスが更にベースフィールドを含
み、該ベースフィールドをNICベースレジスタと照合
して前記NICに対してPIO書き込みリファレンスが
なされているかどうか決定するステップをさらに具備す
る付記1に記載の方法。(2) (付記3)PIO書き込みリファレンスが各々、NIC
がその宛先へデータを送るのに必要とされるすべての情
報を含む付記1に記載の方法。
【0027】(付記4)アドレスが更にスイッチID
(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に記載のシステム。
【0028】(付記10)NICベースレジスタがプロ
グラムされた定数を保存する付記9に記載のシステム。
【0029】(付記11)各スイッチが、任意のスイッ
チのMMIOウィンドウへのPIO書き込みリファレン
スを認識できる付記5に記載のシステム。
【0030】(付記12)NICへのPIO書き込みリ
ファレンスが各々、NICがその宛先へデータを送るの
に必要とされるすべての情報を含む付記5に記載のシス
テム。
【0031】(付記13)各スイッチが少なくとも1つ
のネットワークインタフェースコントローラ(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に記載の方法。
【0032】(付記16)ローカルNICエイリアス
が、PIO書き込みリファレンスを発行したCPUに対
してローカルであるスイッチに接続されたNICに向け
てPIO書き込みリファレンスをルーティングできるよ
うにするMMIOウィンドウ内の領域である付記13に
記載の方法。
【0033】(付記17)分散型マルチノードコンピュ
ータシステムであって、アドレスを含むプロセッサ入出
力(PIO)リファレンスを発行するためのプロセッサ
手段と、PIOリファレンスをネットワークインタフェ
ースコントローラ(NIC)に向けてルーティングする
ためのスイッチング手段と、PIOリファレンスで使用
されたアドレスを受け取り、その受け取ったアドレスに
基づき、PIO書き込みリファレンスを発行したプロセ
ッサ手段に対してローカルであるスイッチング手段に接
続されたNICを指示する修正アドレスを生成するため
のエイリアス復号手段とを具備するシステム。(10)
【図面の簡単な説明】
【図1】本発明の一実施例による分散型マルチノードコ
ンピュータシステムの全体アーキテクチャのブロック図
である。
【図2】図1の分散型コンピュータシステムのアドレス
マップを図解したものである。
【図3】NICへのプロセッサ入出力(PIO)リファ
レンスで使用されたアドレスの好適なフォーマットを図
解したものである。
【図4】図1のシステムの一スイッチの機能ブロック図
である。
【図5】図1のシステムによって実行されたPIOリフ
ァレンスの宛先を復号する方法のフローチャートであ
る。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 サディール ミルヤラ アメリカ合衆国,カリフォルニア 95129, サンノゼ,ウエスト ウォルブルック ド ライブ 5725 (72)発明者 パトリック エヌ.コンウェイ アメリカ合衆国,カリフォルニア 94024, ロス アルトス,ドロレス アベニュ 973 Fターム(参考) 5B045 BB01 BB15 BB28 BB29 BB30 BB42 5K030 LB05

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 各スイッチが少なくとも1つのネットワ
    ークインタフェースコントローラ(NIC)に通信的に
    結合した複数のスイッチに通信的に結合した複数のCP
    Uを含むマルチノードコンピュータシステムにおいて、
    プロセッサ入出力(PIO)書き込みリファレンスを、
    CPUからこのCPUに対してローカルであるスイッチ
    に接続されたNICまでルーティングする方法であっ
    て、 アドレスとデータを含むPIO書き込みリファレンスを
    受け取り、 ローカルNICエイリアスを指示するアドレスに応答し
    て、そのアドレスに基いて、PIO書き込みリファレン
    スを発行したCPUに接続されているスイッチに対して
    ローカルであるNICのアドレスを含む修正アドレスを
    生成し、 データをこの修正アドレスに向けてルーティングするス
    テップを具備する方法。
  2. 【請求項2】 前記アドレスが更にベースフィールドを
    含み、該ベースフィールドをNICベースレジスタと照
    合して前記NICに対してPIO書き込みリファレンス
    がなされているかどうか決定するステップをさらに具備
    する請求項1に記載の方法。
  3. 【請求項3】 アドレスが更にスイッチID(SWI
    D)フィールドを包含し、修正アドレスを生成するステ
    ップは更に、 SWIDフィールドを、PIO書き込みリファレンスを
    発行したCPUに接続されているスイッチに対してロー
    カルであるNICのローカルSWIDと置き換えること
    を含む請求項1に記載の方法。
  4. 【請求項4】 マルチノードコンピュータシステムであ
    って、 各々が1つのアドレスを含むPIO書き込みリファレン
    スを発行する複数のCPUと、 各々がPIO書き込みリファレンスをネットワークイン
    タフェースコントローラ(NIC)に向けてルーティン
    グするために少なくとも1つのCPUに通信的に結合し
    た複数のスイッチと、 各々がPIO書き込みリファレンスをネットワーク上で
    ルートティングするために複数のスイッチの少なくとも
    1つに通信的に結合した複数のNICと、 各々が複数のスイッチの1つに属し、前記アドレスに基
    づきPIO書き込みリファレンスを発行したCPUに接
    続されているスイッチに対してローカルであるNICの
    アドレスを含む修正アドレスを生成するエイリアスデコ
    ーダとを具備するシステム。
  5. 【請求項5】 各々が複数のスイッチの1つに属し、P
    IO書き込みリファレンスを修正アドレスに向けてルー
    ティングする複数のアドレスデコーダをさらに具備する
    請求項4に記載のシステム。
  6. 【請求項6】 PIO書き込みリファレンスで使用され
    たアドレスが更に、メモリマップト入出力(MMIO)
    ウィンドウに書き込むことのできるキャッシュラインの
    数を指示するサイズフィールドを包含する請求項4に記
    載のシステム。
  7. 【請求項7】 PIOリファレンスで使用されたアドレ
    スが更に、MMIOウィンドウに書き込まれた各キャッ
    シュラインのサイズを指示するキャッシュラインオフセ
    ットフィールドを具備する請求項4に記載のシステム。
  8. 【請求項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. 【請求項9】 各PIOリファレンスがデータパケット
    を含み、NICへのPIOリファレンスが各々、NIC
    がその宛先へデータパケットを送るのに必要とされるす
    べての情報を含む請求項8に記載の方法。
  10. 【請求項10】 分散型マルチノードコンピュータシス
    テムであって、 アドレスを含むプロセッサ入出力(PIO)リファレン
    スを発行するためのプロセッサ手段と、 PIOリファレンスをネットワークインタフェースコン
    トローラ(NIC)に向けてルーティングするためのス
    イッチング手段と、 PIOリファレンスで使用されたアドレスを受け取り、
    その受け取ったアドレスに基づき、PIO書き込みリフ
    ァレンスを発行したプロセッサ手段に対してローカルで
    あるスイッチング手段に接続されたNICを指示する修
    正アドレスを生成するためのエイリアス復号手段とを具
    備するシステム。
JP2002192022A 2001-06-29 2002-07-01 マルチノードコンピュータシステムにおけるルーティング方法および分散型マルチノードコンピュータシステム Expired - Fee Related JP3996457B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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