(57)【特許請求の範囲】
【請求項１】
それぞれプロセッサ、入出力装置及びルータを有し、同一筐体内において相互接続された第１及び第２のドメインと、前記第１のドメインと前記第２のドメインのそれぞれと相互接続された第３のドメインとを有し、前記第１乃至第３のドメイン間相互にデータを送受信する情報処理システムのデータ転送方法において、
前記第１のドメインが有するルータが、前記第１のドメインが有するプロセッサ又は入出力装置からデータを受信するステップと、
前記第１のドメインが有するルータが、前記受信したデータが有する情報に基づいて、前記データの転送元及び転送先を識別するステップと、
前記データの転送先が前記第２のドメインであると識別するとともに、送信元が前記第１のドメインが有する入出力装置であると認識した場合には、前記データを前記第３のドメインに転送するステップとを有することを特徴とするデータ転送方法。
【請求項２】
前記第３のドメインが前記受信した前記データを前記第２のドメインに転送するステップを有することを特徴とする請求項１に記載のデータ転送方法。
【請求項３】
前記第１のドメインが有するルータが、前記受信したデータが有する情報に基づいて、前記データの送信元及び送信先を識別するステップは、前記データが有する情報を用いて、前記ルータが有するルーティングテーブルが有する経路情報を選択することにより、前記データの送信元及び転送先を識別することを特徴とする請求項１又は２に記載のデータ転送方法。
【請求項４】
前記第１のドメインが有するルータと、前記第２のドメインが有するルータは、前記筐体内で相互に接続されることを特徴とする請求項１乃至３のいずれか一項に記載のデータ転送方法。
【請求項５】
プロセッサと入出力装置を有する第１のドメインと、
前記第１のドメインと相互接続された第２のドメインと、
前記第１のドメインと前記第２のドメインのそれぞれと相互接続された第３のドメインと、
前記第１のドメインが有するプロセッサ又は入出力装置からデータを受信し、前記受信したデータが有する情報に基づいて、前記データの転送先が前記第２のドメインであり、かつ、送信元が前記第１のドメインが有する入出力装置であると識別した場合には、前記データを前記第３のドメインに転送するルータとを有することを特徴とする情報処理システム。
【請求項６】
前記第１のドメインが有するルータは、前記第３のドメインが前記受信した前記データを前記第２のドメインに転送することを特徴とする請求項５に記載の情報処理システム。
【請求項７】
前記第１のドメインが有するルータはルーティングテーブルを有し、
前記データが有する情報を用いて、前記ルーティングテーブルが有する経路情報を選択することにより、前記データの送信元及び送信先を識別することを特徴とする請求項５又は６に記載の情報処理システム。
【請求項８】
前記第１のドメインが有するルータと、前記第２のドメインが有するルータは、前記筐体内で相互に接続されることを特徴とする請求項５乃至７のいずれか一項に記載の情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本出願は、米国特許法３５ Ｕ．Ｓ．Ｃ． §１１９（ｅ）に基づき２００１年６月２８日付けで出願された出願番号６０／３０２，２２６の「ＲＯＵＴＩＮＧＭＥＣＨＡＮＩＳＭ ＦＯＲ ＳＴＡＴＩＣ ＬＯＡＤ ＢＡＬＡＮＣＩＮＧ ＩＮＡ ＰＡＲＴＩＴＩＯＮＥＤ ＣＯＭＰＵＴＥＲ ＳＹＳＴＥＭ ＷＩＴＨ Ａ ＦＵＬＬＹ ＣＯＮＮＥＣＴＥＤ ＮＥＴＷＯＲＫ」という名称のＨｉｔｏｓｈｉ Ｏｉ、Ｐａｔｉｃｋ Ｎ． Ｃｏｎｗａｙ、Ｔａｋｅｓｈｉ Ｓｈｉｍｉｚｕ、Ｋａｚｕｎｏｒｉ Ｍａｓｕｙａｍａ、Ｓｕｄｈｅｅｒ Ｍｉｒｙａｌａ、Ｊｅｒｅｍｙ Ｆａｒｒｅｌｌ、及びＮｏｒｉｏ Ｋａｉｄｏによる仮出願による優先権を主張するものであり、この引用によってそのすべてが本明細書に包含される。
本発明は、コンピュータシステムにおける共有メモリ構造の論理パーティション化に関するものであり、更に詳しくは、パーティション化されたコンピュータシステムにおけるメッセージトラフィックのバランシングに関する。
【０００２】
【従来の技術】
マルチノードコンピュータネットワークは、それぞれが独自のアドレス空間を有し独立したマシンとして機能する複数のドメインにパーティション化することができる。この場合、オペレーティングシステムは、それぞれのドメインにおいて別々に稼動する。ドメインにパーティション化することによって、コンピュータネットワークのリソースを異なるタスクに効率的に割り当てることが可能になり、コンピュータシステムの使用法に柔軟性をもたらすと共に、コンピュータリソースを隔離することによって、特定ドメインにおけるハードウェア又はソフトウェア障害が、システムのその他のドメインの稼動を妨げることのないように制限できる。
【０００３】
【発明が解決しようとする課題】
マルチノードコンピュータネットワークのハードウェア実装には、グループ化された中央処理装置（ＣＰＵ）及び入力／出力（Ｉ／Ｏ）ノードが１つのモジュールとして存在するものがあり、それらをしばしばシャーシ又はキャビネットと呼ぶ。これらの複数のシャーシを１つに結合し、マルチノードクラスタを形成することができる。複数シャーシシステムをいくつかのドメインにパーティション化した場合、あるドメインに存在するノードは、その他のドメインのノードに対して読み取り及び書き込み要求を実行することはできない。この結果、ドメインが異なるシャーシを結合するケーブル（ドメイン間ケーブル）が、メッセージトラフィックに使用されず、同一ドメイン内のシャーシを結合するケーブル（ドメイン内ケーブル）が、メッセージトラフィックによって非常に輻輳することになる。パーティション化されたシステムにおいては、通常、ドメイン内メッセージトラフィックが、ドメイン間メッセージトラフィックよりも多い。
【０００４】
メッセージトラフィックのバランスシングをとる方法としては、既知のものがいくつか存在するが、カリフォルニア州Ｐａｌｏ Ａｌｔｏに所在するＨｅｗｌｅｔｔ Ｐａｃｋａｒｄ ＣｏｍｐａｎｙのＨＰ９０００「Ｓｕｐｅｒｄｏｍｅ」Ｓｅｒｖｅｒがその１つである。しかし、このシステムはパーティション化されたシステムにおける未使用経路による負荷バランシングをサポートしていない。また、メッセージトラフィックのバランスをとる別の方法として、動的適応ルーティング（Dynamic Adaptive Routing）があるが、これには複雑な実装が必要であり、ハードウェアコストの上昇を招くことになる。
【０００５】
【課題を解決するための手段】
本発明には、ドメイン間ケーブル上の入力／出力（Ｉ／Ｏ）メッセージトラフィックのバランスをとってドメイン内ケーブル上の輻輳を軽減するためのシステムと方法が含まれている。パーティション化されたマルチシャーシコンピュータシステムは、少なくとも２つのドメインを有している（図１を参照）。これらのドメインは互いに隔離されており、いずれのドメインもその他のドメインの共有アドレス空間に対して直接読み取り及び書き込みを実行することはできない。システム内の各ドメインは、そのドメイン内に少なくとも１つのシャーシを有している。同一ドメイン内のシャーシはドメイン内ケーブルを介して結合されており、ドメインが異なるシャーシはドメイン間ケーブルを介して結合されている。シャーシとしては、通信可能に結合されたプロセッサノード、Ｉ／Ｏノード、メモリノード、及びルータを備えているものが望ましい。また、ルータは、少なくとも２つのルーティングテーブルを維持管理し、メッセージのルーティング先となる出口ポートを判定するものが望ましい（図４を参照）。この場合、第１ルーティングテーブルは、Ｉ／Ｏノードからのトランザクション用にプログラムされており、第２ルーティングテーブルは、プロセッサノードからのトランザクション用にプログラムされている。
【０００６】
各々のトランザクションにおいて、ソースノードは、宛先ノードに対して情報又はリソースを要求する。この要求メッセージは、その要求メッセージを受信する宛先ノードＩＤを示す宛先ノードフィールドと、ソースノードを示すＩ／Ｏビットフィールドと、データを格納するペイロードフィールドとからなるフォーマットを有している。本発明の一実施例においては、宛先ノードＩＤとＩ／Ｏビットに基づいて、トランザクションをＩ／Ｏトランザクション及びプロセッサ−メモリトランザクション（非Ｉ／Ｏトランザクション）に分類する。宛先ノードがＩ／Ｏであるか、或いはソースノードがＩ／ＯノードであることをＩ／Ｏビットが示している場合、該トランザクションはＩ／Ｏトランザクションとして分類され、ドメイン間ケーブルを介してルーティングされる。そうでなければ、トランザクションはプロセッサ−メモリトランザクション（非Ｉ／Ｏ）に分類され、ドメイン内ケーブルを介してルーティングされる。本発明においては、Ｉ／Ｏトランザクションをドメイン間ケーブルを介してルーティングすることによって、使用頻度の高いドメイン内ケーブル上のメッセージトラフィックの輻輳を軽減している。この結果、プロセッサ−メモリトランザクションのレイテンシー（待ち時間）を削減する効果がある。
【０００７】
【発明の実施の形態】
図１は、ドメイン１、ドメイン２、及びドメインＮという複数のドメインにパーティション化された従来のコンピュータシステム１００のブロックダイアグラムであり、それぞれのドメインは独自のアドレス空間を有する独立したマシンとして動作する。ドメイン１、２、及びＮは互いに隔離されており、いずれのドメインもその他のドメインの共有アドレス空間に対して直接読み取り又は書き込みを実行できない。図１の各ドメインは、ＣＰＵノード１１０−１〜１１０−ｎ（１１０と総称する）、メモリノード１１５−１〜１１５−ｎ（１１５と総称する）、及びＩ／Ｏノード１２０−１〜１２０−ｎ（１２０と総称する）などの複数のノードを備えている。各ＣＰＵノード１１０は、Ｉｎｔｅｌ又はＩｎｔｅｌ互換のＰｅｎｔｉｕｍTMクラス以上のプロセッサ、Ｓｕｎ ＳＰＡＲＣTMクラス以上のプロセッサ、或いはＩＢＭ／Ｍｏｔｏｒｏｌａ ＰｏｗｅｒＰＣTMクラス以上のプロセッサなどの従来型の処理装置である。また、各Ｉ／Ｏノード１２０は、ストレージデバイス、入力デバイス、周辺デバイスなどの従来型のＩ／Ｏシステムであり、各メモリノード１１５は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）システム、スタティックランダムアクセスメモリ（ＳＲＡＭ）システムなどの従来型のメモリシステムである。これらのノード１１０、１１５、１２０は、相互接続１２５を介して接続されている。該相互接続１２５は、命令、データ、及びその他の信号のノード間での転送を実現するために複数のノードを結合している。なお、相互接続１２５は、ルータ又はスイッチを使用して実装されたメッシュ、リング、又はハイパーキューブなどであってよい。パーティション化されたコンピュータシステム１００においては、ドメイン１、２、及びＮの読み取り及び書き込み要求は、各々のドメイン内のノード間でのみ実行可能である。
【０００８】
図２は、本発明の一実施例による完全相互接続３シャーシコンピュータシステム２００のブロックダイアグラムである。コンピュータシステム２００は、ドメイン１ １６０及びドメイン２ １８０という２つのドメインにパーティション化されている。これらのドメインは互いに隔離されており、いずれのドメインも、もう一方のドメインの共有アドレス空間に対して直接読み取り又は書き込みを実行することはできない。ドメイン１内には、シャーシＡ及びシャーシＢが存在しており、ドメイン２内には、シャーシＣが存在している。すべてのシャーシＡ、Ｂ、及びＣは、従来型の高速データ転送ネットワークケーブルによって完全に相互接続されており、専用のリンクを形成している。たとえば、ドメイン１内のシャーシＡ及びＢは、ドメイン内ケーブルＡ−Ｂ１６１を介して接続されており、シャーシＡ及びＣは、ドメイン間ケーブルＡ−Ｃ１６３を介して接続され、シャーシＢ及びＣは、ドメイン間ケーブルＣ−Ｂ１６７を介して接続されている。
【０００９】
各シャーシＡ、Ｂ、及びＣは、Ｐノード１１０ａ〜１１０ｃ（１１０と総称する）、Ｉ／Ｏノード１２０ａ〜１２０ｃ（１２０と総称する）、及びルータ１５０ａ〜１５０ｃ（１５０と総称する）を備えている。Ｐノード１１０としては、プロセッサ及びメモリを備えているものが望ましい。図２に示されている実施例においては、３つのＰノード１１０及び３つのＩ／Ｏノード（Ｉ）１２０からなる合計６つのノードを備えている。ただし、パーティション化されたシステム２００は、いくつのノードを備えてもよい。
【００１０】
各シャーシＡ、Ｂ、及びＣ内の各ルータ１５０ａ〜１５０ｃは、そのシャーシのＰノード１１０と信号線の第１セット１５５によって通信可能に結合しており、そのシャーシのＩノード１２０と信号線の第２セット１５７によって通信可能に結合している。シャーシＡ内のルータ１５０ａは、ケーブルＡ−Ｂ１６１（直接経路）を介してシャーシＢ内のルータ１５０ｂと結合している。また、シャーシＡ内のルータ１５０ａは、ケーブルＡ−Ｃ１６３（間接経路）を介してシャーシＣ内のルータ１５０ｃと結合している。そして、シャーシＢ内のルータ１５０ｂは、ケーブルＣ−Ｂ１６７（間接経路）を介してシャーシＣ内のルータ１５０ｃと結合している。なお、信号線の第1セット１５５、信号線の第２セット１５７、及びケーブル１６１、１６３、及び１６７は、１本以上のデータワイヤなど、どのような信号通信媒体であってもよい。
【００１１】
各ルータ１５０は、複数の出口ポートを有する従来型の４×４クロスバースイッチである。これらのルータ１５０は、メッセージの転送先である次のネットワークポイントを判定する。ルータ１５０ａ〜１５０ｃ内部の小さな数字０、１、２、３は、図２の実施例におけるノードとケーブルの接続ポートを示している。更に、各ルータ１５０は、少なくとも１つのルーティングテーブルの維持管理をも行う（その一例を図４に示している）。
【００１２】
本発明においては、Ｉ／Ｏトランザクションとプロセッサ−メモリトランザクション（非Ｉ／Ｏトランザクション）という２つのカテゴリが存在する。各トランザクションで、ソースノードが宛先ノードに対して情報又はリソースを要求する。簡単にするため、これらの要求メッセージをメッセージと総称する。Ｉ／Ｏ直接メモリアクセス（ＤＭＡ）トランザクションは、Ｉ／Ｏノードから起動され（ＩからＰのトラフィック）、構成レジスタ（未図示）アクセスは、プロセッサノードから起動される（ＰからＩのトラフィック）。これらのＩ／Ｏトランザクションは、非Ｉ／Ｏトランザクションほどメモリアクセスのレイテンシーに敏感ではない。次に、Ｉ／Ｏトランザクションの例について、図６を参照して説明する。図６に示すように、Ｐノード０がＩノード３に対して情報を要求する。このトランザクションは、ドメイン間ケーブルＣ−Ｂ１６７とＡ−Ｃ１６３を介してルーティングされる。本発明においては、Ｉ／Ｏトランザクションをケーブル１６３や１６７などの未使用のドメイン間ケーブルによってルーティングすることにより、ドメイン内ケーブル１６１上のトラフィックを削減する効果を奏しており、この結果、レイテンシーが減少される。
【００１３】
一方、プロセッサ−メモリトランザクションにおいては、図５に示すように、ドメイン１のシャーシＡ内のＰノード０が、同一ドメイン内のシャーシＢの他のＰノード２のメモリに対して情報を要求し、また逆も同様である。このトランザクションは、Ａ−Ｂケーブル１６１などのドメイン内ケーブルを介してルーティングされる。
【００１４】
次に、図３を参照すれば、本発明の一実施例における要求メッセージ３００のフォーマットが図示されている。このフォーマットとしては、宛先ノードＩＤフィールド１０、Ｉ／Ｏビットフィールド２０、及びペイロードフィールド３０を有するものが望ましい。
【００１５】
システム内の各ノード（ＣＰＵ又はＩ／Ｏノード）は、グローバルな一意のノードＩＤを有している。宛先ノードＩＤフィールド１０は、メッセージを受信するノードのＩＤを示すものであり、これにはＰノード１１０又はＩ／Ｏノード１２０が該当する。
【００１６】
Ｉ／Ｏビットフィールド２０は、ソースノード（その要求メッセージを作成したノード）を識別するフィールドである。前述のとおり、例えば、メッセージは、Ｉ／Ｏノード或いはＰノードで作成される。このＩ／Ｏビットを適切に設定するのは、ソースノードの責任である。Ｉ／Ｏビットフィールド２０には、「０」又は「１」のビット値を格納するのが望ましい。本発明の一実施例においては、ビット値「１」は、ソースノードがＩ／Ｏノードであることを示しており、ビット値「０」は、ソースノードがプロセッサノードであることを示している。また、本発明の別の実施例においては、ビット値「１」は、ソースノードがプロセッサノードであることを示し、ビット値「０」は、ソースノードがＩ／Ｏノードであることを示している。ルータ１５０は、このＩ／Ｏビットを使用してルーティングテーブルを選択する。なお、ペイロードフィールド３０には、データ自身が格納される。
【００１７】
図４には、各シャーシＡ、Ｂ、及びＣの各ルータ１５０ａ〜１５０ｃの２つのルーティングテーブルが示されている。ルーティングテーブル４１０ａ〜４１０ｃ（４１０と総称する）は、Ｐノード１１０からのトランザクションに対して使用される。一方、ルーティングテーブル４２０ａ〜４２０ｃは、各々のシャーシ内のＩ／Ｏノード１２０からのトランザクションに対して使用される。これらのルーティングテーブル４１０及び４２０内のエントリに対しては、宛先ノードＩＤに応じたインデックスが付加されている。各エントリは、メッセージをルーティングすべきルータ１５０ａ、１５０ｂ、１５０ｃの出口ポート（例えば、ポート０、１、２、又は３）を示している。なお、ルーティングテーブル４１０及び４２０内の網掛けされたエントリは、その宛先ノードがメッセージが作成されたドメインの外にあることを示している。例えば、図４に示しているように、シャーシＡ及びＢの場合、宛先ノード４及び５はドメイン１の外にあり、宛先ノード０、１、２、及び３はドメイン１の中にある。シャーシＣの場合には、宛先ノード０、１、２、及び３はドメイン２の外にあり、宛先ノード４及び５はドメイン２の中にある。そして、下線のエントリは、メッセージが間接経路（ドメイン間ケーブル）によってルーティングされることを示している。次に、ルーティングテーブル４１０及び４２０の使用方法の例を、図５及び６を参照しつつ説明する。
【００１８】
まず図５を参照すれば、これは、ドメイン内ケーブルＡ−Ｂ１６１を使用するプロセッサ−メモリ（ＰからＰ)メッセージトランザクションのブロックダイアグラムを示している。まず、シャーシＡのノード０のプロセッサがメッセージをノード２に対して送信する。ルータ１５０は、そのメッセージのＩ／Ｏビットに基づいて、ソースノードを識別すると共に宛先ノードを識別する。Ｉ／Ｏビット＝０の場合、Ｐノード０がソースノードであることを示している。宛先ノードはノード２である。シャーシＡ内のルータ１５０ａは、図５のＰルーティングテーブル４１０ａを使用して出口ポートを判定する。ルーティングテーブル４１０ａ内の宛先ノードＩＤ２に対応するエントリは、メッセージをルータ１５０ａのポート２にルーティングすることを示している。この結果、メッセージはケーブルＡ−Ｂ１６１を介して送信され、シャーシＢ内のルータ１５０ｂに到達する。このメッセージは、シャーシＡ内のＰノードからのものであるため、そのＩ／Ｏ＝０である。したがって、Ｐルーティングテーブル４１０ｂを使用して出口ポートを判定する。Ｐルーティングテーブル４１０ｂは、メッセージをポート０とＰノード２にルーティングすることを示している。
【００１９】
メモリアクセスが完了すると、シャーシＢ内のＰノード２は、Ｉ／Ｏ＝０の応答メッセージをシャーシＡ内のＰノード０に対して送り返す。ルータ１５０ｂは、その応答メッセージの宛先ノードＩＤとＩ／Ｏビットを読み取り、その要求メッセージがＰノードからのものであると判定する。この結果、Ｐルーティングテーブル４１０ｂを使用する。ノード０（応答メッセージの宛先）に対応するエントリは、メッセージをケーブルＡ−Ｂ１６１を介してルータ１５０ａのポート２にルーティングすることを示している。この結果、メッセージは、ケーブルＡ−Ｂ１６１を介して送信され、シャーシＡ内のルータ１５０ａに到達する。Ｉ／Ｏ＝０であり、Ｐルーティングテーブル４１０ａを使用する。Ｐルーティングテーブル４１０ａのインデックスは、メッセージをポート０にルーティングする必要があることを示している。
【００２０】
次に、図６を参照すれば、ドメイン間ケーブルＣ−Ｂ１６７とＡ−Ｃ１６３を使用するＩ／Ｏトランザクション（ＰからＩ）のルーティングメカニズムの動作が示されている。シャーシＡ内のＰノード０が、Ｉ／Ｏ＝０でシャーシＢ内のＩノード３にアクセスする。ルータ１５０ａは、このメッセージを受信するとメッセージに格納されているＩ／Ｏビットを分析する。この場合、Ｉ／Ｏビットは、そのメッセージがＩ／Ｏノードではなく、Ｐノードからのものであることを示している。したがって、ルータ１５０ａはＰルーティングテーブル（Ｐ）４１０ａを選択する。図４に示すように、宛先ノードＩＤ３は、メッセージをルータ１５０ａのポート３からシャーシＣに接続されたケーブルＡ−Ｃ１６３にルーティングすることを示している。したがって、メッセージは、Ａ−Ｃケーブル１６３を介して送信され、ルータ１５０ｃに到達する。このメッセージは、Ｉ／Ｏノードからのものではないため、Ｉ／Ｏ＝０であり、Ｐルーティングテーブル４１０ｃを使用する。Ｐルーティングテーブル４１０ｃは、メッセージをポート２からシャーシＢに接続されたケーブルＣ−Ｂ１６７にルーティングする必要があることを示している。したがって、メッセージは、Ｃ−Ｂケーブル１６７を介して送信され、ルータ１５０ｂに到達する。Ｉ／Ｏ＝０であり、Ｐルーティングテーブル４１０ｂを使用する。Ｐルーティングテーブル４１０ｂのインデックスは、メッセージをポート１にルーティングすることを示しており、これは、要求メッセージの宛先（ノード３）である。
【００２１】
Ｉ／Ｏアクセスが完了した後に、Ｉノード３は、Ｉ／Ｏ＝１の応答メッセージをノード０内のＰに送り返す。Ｉ／Ｏ＝１であるため、ルータ１５０ｂにおいてＩ／Ｏルーティングテーブル４２０ｂを使用する。宛先ノードＩＤであるノード０に対応するエントリは、メッセージをポート３からシャーシＣに接続されたケーブルＣ−Ｂ１６７にルーティングすることを示している。したがって、メッセージは、ケーブルＣ−Ｂを介して送信され、ルータ１５０ｃに到達する。なお、メッセージをケーブルＣ−Ｂ１６７を介して送信する前に、メッセージのＩ／Ｏビットが１から０に変更されることに留意されたい。さもなければ、作成元ではないシャーシ内のルータ１５０によってＩ／Ｏビットが無視される。
【００２２】
このメッセージが同一シャーシ内のＩ／Ｏノードからのものではないため、Ｐルーティングテーブル４１０ｃを使用して出口ポートを判定する。Ｐルーティングテーブル４１０ｃは、メッセージをルータ１５０ｃのポート３からシャーシＡに接続されたケーブルＡ−Ｃ１６３にルーティングすることを示している。したがって、メッセージは、ケーブルＡ−Ｃ１６３を介して送信され、ルータ１５０ａに到達する。このメッセージが同一シャーシ内のＩ／Ｏノードからのものではないため、Ｉ／Ｏ＝０であり、Ｐルーティングテーブル４１０ａを使用する。Ｐルーティングテーブル４１０ａは、メッセージをポート０にルーティングすることを示しており、これは、この応答メッセージの宛先である。この結果、Ｉ／Ｏトランザクションはドメイン間ケーブル１６３、１６７を介してルーティングされ、これによって、ドメイン内ケーブル１６１上の輻輳が軽減される。
【００２３】
次に、図７を参照すれば、本発明に従ってトラフィックのバランスをとる方法のフローチャートが示されている。このプロセスは段階６１０から始まり、段階６２０でルータ１５０がメッセージを受信する。段階６３０で、ルータ１５０はそのメッセージの宛先ノードＩＤを識別する。また、ルータ１５０は、ソースノードがＩ／Ｏノードであるか又はプロセッサノードであるかを示すＩ／Ｏビットの識別も行う。宛先のノードがＩ／Ｏノードであるか、又はソースノードがＩ／Ｏノードであることを、Ｉ／Ｏビットが示している場合、段階６４０において、このトランザクションは、Ｉ／Ｏトランザクションに分類され、段階６５０でドメイン間ケーブルを介してルーティングされる。同様に、ソースノードがＰノードの場合にも、メッセージはドメイン間ケーブルを介してルーティングされる。ルーティングテーブル４１０及び４２０に付加されたインデックス（図４を参照）によって、システムは出口ポートを判定できる。一方、トランザクションが非Ｉ／Ｏトランザクション（プロセッサ−メモリ）の場合、段階６６０において、メッセージは、ドメイン内ケーブルを介してルーティングされ、段階６７０で、このプロセスは終了する。
（付記１）少なくとも２つのドメインにパーティション化されたコンピュータシステムであって、第１ドメインは第１ケーブルによって結合された少なくとも第１及び第２シャーシを有し、第２ドメインは少なくとも１つのシャーシを有し、前記第１ドメインの各シャーシは第２ケーブルと第３ケーブルによって前記第２ドメインのシャーシに結合され、前記各シャーシは複数のプロセッサノード、Ｉ／Ｏノード、及びメモリノードを含むコンピュータシステムにおいてメッセージトラフィックのバランスをとる方法であって、
メッセージを受信する段階と、
前記メッセージから宛先ノードと、ソースノードがＩ／Ｏノードであるかどうかを示す指定値を有するＩ／Ｏビットを識別する段階と、
前記ソースノードがＩ／Ｏノードであることを示す前記Ｉ／Ｏビットに応答し、前記メッセージを前記第２ケーブル及び第３ケーブルを介して前記第１シャーシから前記第２シャーシにルーティングする段階とを有することを特徴とする方法。
（付記２）Ｉ／Ｏノードである前記宛先ノードに対応し、前記メッセージを前記第２ケーブル及び第３ケーブルを介して前記第１シャーシから前記第２シャーシにルーティングする段階を有する付記１に記載の方法。
（付記３）前記ソースノードが非Ｉ／Ｏノードであり前記宛先ノードが非Ｉ／Ｏノードであることを示す前記Ｉ／Ｏビットに応答し、前記メッセージを前記第１ケーブルを介して前記第１シャーシから前記第２シャーシにルーティングする段階を有する付記１に記載の方法。
（付記４）各シャーシはルータを有し、該ルータはプロセッサノードからのトランザクションを識別するためのルーティングテーブルを備えており、該ルーティングテーブルにインデックスを付加してプロセッサノードであるソースノードに基づいて出口ポートを判定する段階を更に有する付記１に記載の方法。
（付記５）各シャーシは更にルータを有し、該ルータはＩ／Ｏノードからのトランザクションを識別するためのルーティングテーブルを備えており、該ルーティングテーブルにインデックスを付加してＩ／Ｏノードであるソースノードに基づいて出口ポートを判定する段階を更に有する付記１に記載の方法。
（付記６）前記ソースノードがＩ／Ｏノードの場合に前記Ｉ／Ｏビットの指定値が「１」である付記１に記載の方法。
（付記７）前記ソースノードがプロセッサノードの場合に前記Ｉ／Ｏビットの指定値が「０」である付記１に記載の方法。
（付記８）前記ソースノードがプロセッサノードの場合に前記Ｉ／Ｏビットの指定値が「１」である付記１に記載の方法。
（付記９）前記ソースノードがＩ／Ｏノードの場合に前記Ｉ／Ｏビットの指定値が「０」である付記１に記載の方法。
（付記１０）少なくとも２つのドメインにパーティション化されたマルチシャーシコンピュータシステムにおいて、第１ドメインは第１ケーブルによって結合された少なくとも第１及び第２シャーシを有し、第２ドメインは少なくとも１つのシャーシを有し、前記第１ドメインの各シャーシは第２ケーブルと第３ケーブルによって前記第２ドメインのシャーシに結合され、前記各シャーシは複数のプロセッサノード、Ｉ／Ｏノード、及びメモリノードを含むシステムであって、
メッセージを受信する手段と、
前記メッセージから宛先ノードと、ソースノードがＩ／Ｏノードであるかどうかを示す指定値を有するＩ／Ｏビットを識別する手段と、
前記ソースノードがＩ／Ｏノードであることを示す前記Ｉ／Ｏビットに応答し、前記メッセージを前記第２ケーブル及び第３ケーブルを介して前記第１シャーシから前記第２シャーシにルーティングする手段とを有することを特徴とするシステム。
（付記１１）Ｉ／Ｏノードである前記宛先ノードに対応し、前記メッセージを前記第２ケーブル及び第３ケーブルを介して前記第１シャーシから前記第２シャーシにルーティングする手段を有する付記１０に記載のシステム。
（付記１２）前記ソースノードが非Ｉ／Ｏノードであり前記宛先ノードが非Ｉ／Ｏノードであることを示す前記Ｉ／Ｏビットに応答し、前記メッセージを前記第１ケーブルを介して前記第１シャーシから前記第２シャーシにルーティングする段階を有する付記１０に記載のシステム。
（付記１３）少なくとも２つのドメインにパーティション化されたマルチシャーシコンピュータシステムであって、
第１ケーブルによって結合された少なくとも２つのシャーシを有する第１ドメインと、
少なくとも１つのシャーシを有する第２ドメインとを有し、
前記第１ドメインの各シャーシは第２ケーブル及び第３ケーブルによって前記第２ドメインのシャーシに結合され、前記第１ドメイン及び第２ドメインの各シャーシは要求メッセージを前記第１ケーブル及び第２ケーブルを介してルーティングするルータを含むことを特徴とするシステム。
（付記１４）複数のＩ／Ｏノードを有し、前記ルータは前記Ｉ／Ｏノードからのトランザクションを識別するためのルーティングテーブルを維持管理する付記１３に記載のシステム。
（付記１５）複数のプロセッサノードを有し、前記ルータは前記プロセッサノードからのトランザクションを識別するためのルーティングテーブルを維持管理する付記１３に記載のシステム。
【図面の簡単な説明】
【図１】図１は、マルチノードネットワークコンピュータシステムの全体アーキテクチャの一実施例を示すブロックダイアグラムである。
【図２】図２は、本発明の実施例に従って２つのドメインにパーティション化された完全相互接続３シャーシシステムのブロックダイアグラムである。
【図３】図３は、本発明による一実施例における要求メッセージのフォーマットを図示したものである。
【図４】図４は、ルーティングテーブルのブロックダイアグラムである。
【図５】図５は、ドメイン内ケーブルを使用するプロセッサ−メモリ（ＰからＰ）メッセージトランザクションのブロックダイアグラムである。
【図６】図６は、ドメイン間ケーブルを使用するプロセッサ−Ｉ／Ｏトランザクションのブロックダイアグラムである。
【図７】図７は、図２の実施例において実行する方法のフローチャートである。
【図１】
0003996455.tif 000002
【図２】
0003996455.tif 000003
【図３】
0003996455.tif 000004
【図４】
0003996455.tif 000005
【図５】
0003996455.tif 000006
【図６】
0003996455.tif 000007
【図７】
0003996455.tif 000008