(57)【要約】      （修正有）【課題】ＰＣＩアダプタを複数のブレードで共用する。【解決手段】複数のルートノードと、１つまたは複数のＰＣＩスイッチ及びＰＣＩアダプタを備え、ルートノードが複数のホストを含み、ルートノードのうちの１つがＰＣＩ構成マネージャ（ＰＣＭ）を含む分散コンピューティングシステムにおいて、ホストとアダプタの間でスイッチを通してＰＣＩトランザクションパケットをルーティングするための方法で、１つの指定されたスイッチ内にテーブルを作成し、特定のホストが指定されたスイッチに接続された場合に、ＰＣＭを操作して指定されたビットセットを有する送信先識別子をテーブルに入力し、指定されたスイッチを通して特定のホストからアダプタの１つに送出されたＰＣＩパケットに送信先識別子をアドレスとして追加し、送信先識別子を用いてアダプタの１つから指定されたスイッチを通して送出されたＰＣＩパケットが特定のホスト用であると判定する。【選択図】図３
2007195166.tif 000002
【特許請求の範囲】
【請求項１】
複数のルート・ノードを備え、１つまたは複数のＰＣＩスイッチおよび１つまたは複数のＰＣＩアダプタをさらに備え、各ルート・ノードが１つまたは複数のホストを含み、前記ルート・ノードのうちの１つがＰＣＩ構成マネージャ（ＰＣＭ）を含む分散コンピューティング・システムにおいて、それぞれのホストとアダプタの間で前記スイッチを通してＰＣＩトランザクション・パケットをルーティングするための方法であって、
前記スイッチのうちの少なくとも１つの指定されたスイッチ内にテーブルを作成するステップと、
前記ルート・ノードのうちの１つのルート・ノードの特定のホストが前記指定されたスイッチに接続された場合に、前記ＰＣＭを操作して指定されたビット・セットを有する送信先識別子を前記テーブルに入力するステップと、
前記指定されたスイッチを通して前記特定のホストから前記アダプタのうちの１つに送出されたＰＣＩパケットに前記送信先識別子をアドレスとして追加するステップと、
前記送信先識別子を用いて前記アダプタのうちの１つから前記指定されたスイッチを通して送出されたＰＣＩパケットが前記特定のホスト用であると判定するステップとを含む方法。
【請求項２】
前記送信先識別子を入力する前記ステップが、前記指定されたスイッチが前記送信先識別子の使用をサポートしていることを判定するステップに先行される請求項１に記載の方法。
【請求項３】
前記指定されたスイッチにアダプタが接続されると、前記指定されたスイッチが前記ＰＣＭに報告を送信する請求項１に記載の方法。
【請求項４】
前記報告に応答して、１つまたは複数の前記ホストと前記接続されたアダプタの間の関連を確立するように前記ＰＣＭが前記指定されたスイッチを構成し、その後、前記テーブル内のそれぞれのエントリを用いて前記接続されたアダプタと前記関連するホストの間でＰＣＩパケットをルーティングする請求項３に記載の方法。
【請求項５】
前記指定されたスイッチが複数のほぼ同一のルート・スイッチのうちの１つを備え、
各ルート・ノードがホストＣＰＵセットと、それに接続されたルート・コンプレックスとを備え、
前記ルート・コンプレックスの各々が前記ルート・スイッチのうちの１つに接続され、前記ルート・スイッチの各々が前記送信先識別子の使用をサポートし、送信先識別子エントリを収容するためのテーブルを有する請求項４に記載の方法。
【請求項６】
前記分散コンピューティング・システムが、関連するＰＣＩバス・アドレス空間を有し、前記バス・アドレス空間が送信先識別フィールドを含み、前記送信先識別フィールド内の特定の番号が前記ホストのうち特定のホストを識別する請求項１に記載の方法。
【請求項７】
前記送信先識別フィールドが選択された数の前記ＰＣＩバス・アドレスの上位ビットを含む請求項６に記載の方法。
【請求項８】
前記ルート・スイッチのうち選択されたスイッチの下に接続されたＰＣＩコンポーネントが、いくつかのコンポーネント・ツリーによってそれぞれ表され、前記ツリーが、前記選択されたスイッチで結合して１つのツリーを形成する請求項５に記載の方法。
【請求項９】
前記ルート・スイッチの各々が送信先識別子を用いて前記ＰＣＩパケットのうちの１つをルーティングするためのスイッチ・ポートを選択する請求項５に記載の方法。
【請求項１０】
前記ＰＣＭが、前記ルート・スイッチのテーブルの各々内の送信先識別子エントリを修正し、問い合わせ、削除することができる請求項５に記載の方法。
【請求項１１】
複数のルート・ノードを備え、１つまたは複数のＰＣＩスイッチおよび１つまたは複数のＰＣＩアダプタをさらに備え、各ルート・ノードが１つまたは複数のホストを含み、前記ルート・ノードのうちの１つがＰＣＩ構成マネージャ（ＰＣＭ）を含む分散コンピューティング・システムにおいて、それぞれのホストとアダプタの間で前記スイッチを通してＰＣＩトランザクション・パケットをルーティングするコンピュータ可読媒体内のコンピュータ・プログラムであって、
前記スイッチのうちの少なくとも１つの指定されたスイッチ内にテーブルを作成するための第１の命令と、
前記ルート・ノードのうちの１つのルート・ノードの特定のホストが前記指定されたスイッチに接続された時に、前記ＰＣＭを操作して指定されたビットを含む送信先識別子を前記テーブルに入力するための第２の命令と、
前記指定されたスイッチを通して前記特定のホストから前記アダプタのうちの１つに送出されたＰＣＩパケットに前記送信先識別子をアドレスとして追加するための第３の命令と、
前記送信先識別子を用いて前記アダプタのうちの１つから前記指定されたスイッチを通して送出されたＰＣＩパケットが、前記特定のホスト用であると判定するための第４の命令とを含むコンピュータ・プログラム。
【請求項１２】
前記指定されたスイッチにアダプタが接続されると、前記指定されたスイッチが前記ＰＣＭに報告を送信し、
前記報告に応答して、１つまたは複数の前記ホストと前記接続されたアダプタの間の関連を確立するように前記ＰＣＭが前記指定されたスイッチを構成し、その後、前記テーブル内のそれぞれのエントリを用いて前記接続されたアダプタと前記関連するホストの間でＰＣＩパケットをルーティングする請求項１１に記載のコンピュータ・プログラム。
【請求項１３】
前記指定されたスイッチが複数のほぼ同一のルート・スイッチのうちの１つを備え、
各ルート・ノードがホストＣＰＵセットと、それに接続されたルート・コンプレックスとを含み、
前記ルート・コンプレックスの各々が前記ルート・スイッチのうちの１つに接続され、前記ルート・スイッチの各々が前記送信先識別子の使用をサポートし、送信先識別子エントリを収容するためのテーブルを有する請求項１２に記載のコンピュータ・プログラム。
【請求項１４】
前記分散コンピューティング・システムが、関連するＰＣＩバス・アドレス空間を有し、前記バス・アドレス空間が送信先識別フィールドを含み、前記送信先識別フィールド内の特定の番号が前記ホストのうち特定のホストを一意的に識別する請求項１１に記載のコンピュータ・プログラム。
【請求項１５】
前記ルート・スイッチの各々が送信先識別子を用いて前記ＰＣＩパケットのうちの１つをルーティングするためのスイッチ・ポートを選択する請求項１３に記載のコンピュータ・プログラム。
【請求項１６】
分散コンピューティング・システムのための装置であって、
各々が１つまたは複数のホストを含む複数のルート・ノードと、
１つまたは複数のＰＣＩアダプタと、
異なるルート・ノードを接続して同じアダプタを共用するように動作することができる１つまたは複数のＰＣＩスイッチと、
前記スイッチの少なくとも１つの指定されたスイッチ内のテーブルを有するデータと、
前記ルート・ノードのうちの１つに常駐し、前記指定されたスイッチに前記ルート・ノードのうちの１つのルート・ノードの特定のホストが接続された時に、指定されたビットを有する送信先識別子を前記テーブルに入力するように動作することができるＰＣＩコンポーネントであって、前記送信先識別子が前記指定されたスイッチを通して前記特定のホストから前記アダプタのうちの１つに送出されたＰＣＩパケットにアドレスとして追加され、前記送信先識別子を用いて前記アダプタのうちの１つから前記指定されたスイッチを通して送出されたＰＣＩパケットが前記特定のホスト用であると判定されるＰＣＩコンポーネントとを備える装置。
【請求項１７】
前記指定されたスイッチにアダプタが接続されると、前記指定されたスイッチがＰＣＭに報告を送信し、
前記報告に応答して、１つまたは複数の前記ホストと前記接続されたアダプタの間の関連を確立するように前記ＰＣＭが前記指定されたスイッチを構成し、その後、前記テーブル内のそれぞれのエントリを用いて前記接続されたアダプタと前記関連するホストの間でＰＣＩパケットをルーティングする請求項１６に記載の装置。
【請求項１８】
前記指定されたスイッチが、複数のほぼ同一のルート・スイッチのうちの１つを備え、
各ルート・ノードが、ホストＣＰＵセットと、それに接続されたルート・コンプレックスとを備え、
前記ルート・コンプレックスの各々が前記ルート・スイッチのうちの１つに接続され、前記ルート・スイッチの各々が前記送信先識別子の使用をサポートし、送信先識別子エントリを収容するためのテーブルを有する請求項１７に記載の装置。
【請求項１９】
前記分散コンピューティング・システムが、関連するＰＣＩバス・アドレス空間を有し、前記バス・アドレス空間が送信先識別フィールドを含み、前記送信先識別フィールド内の特定の番号が前記ホストのうち特定のホストを一意的に識別する請求項１６に記載の装置。
【請求項２０】
前記ルート・スイッチの各々が送信先識別子を用いて前記ＰＣＩパケットのうちの１つをルーティングするためのスイッチ・ポートを選択する請求項１８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示し特許請求する発明は、概して、ＰＣＩｅスイッチファブリックによって複数のホストとアダプタの間でＰＣＩｅトランザクション・パケットをルーティングするための方法および関連する装置に関する。より詳細には、本発明は、ＰＢＡ内に組み込まれた送信先ＩＤ（ＤＩＤ）を用いた場合に、複数のホストとアダプタの間でＰＣＩトランザクション・パケットをルーティングするために必要な構造を構築し管理するための方法に関する。
【背景技術】
【０００２】
当業者には周知のように、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）はＰＣＩスイッチファブリック・バスなどでホスト・ユニットをアダプタまたは他のコンポーネントと相互接続するためにコンピューティング・システムで広く用いられている。しかし、ＰＣＩｅは、現在、複数の共用ＰＣＩｅリンクを備えた複数のホストがあるトポロジー内での入出力（Ｉ／Ｏ）アダプタの共用を認めていない。その結果、ブレード・クラスタまたは他のクラスタ化サーバを使用する際には、そのような共用機能が極めて価値があるとしても、ＰＣＩｅ用のアダプタおよび二次ネットワーク（例えば、ＦＣ、ＩＢ、Ｅｎｅｔ）は現在、通常は、個々のブレードおよびサーバ・システム内にしか配置されていない。それ故、クラスタ化ブレード間、またはクラスタ化システム内の複数のルート間でさえそのようなアダプタを共用できない。
【０００３】
複数のブレードまたはブレード・クラスタを含む環境では、ＰＣＩアダプタを１つのブレード専用に用いることは極めてコスト高につく。例えば、１０ギガビット・イーサネット（Ｒ）（１０ＧｉｇＥ）アダプタは、現在、６，０００ドル程度の価格である。これらの高価なアダプタをブレード間で共用できないため、実際、１０ＧｉｇＥなどのある種の新しいネットワーク技術を採用する率が低いという結果が生じている。さらに、ブレード内でＩ／Ｏアダプタを収容するための空間が限られていることによる制約がある。ＰＣネットワークが複数のホストを１つのＰＣＩアダプタに接続し、複数のホスト間で仮想ＰＣＩｅ  Ｉ／Ｏアダプタを共用できるならば、この空間が限られているという問題は解決できよう。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記環境でＰＣＩｅアダプタの仮想化を可能にするには、複数のホストとアダプタの間でＰＣＩトランザクション・パケットをルーティングするために必要な構造を構築し管理するための機構が必要である。この機構は、１つのホストのシステム・イメージ内のメモリおよびデータが他のホストのシステム・イメージ内の権限がないアプリケーションからアクセスされることを防止するように設計されていなければならない。同じＰＣＩツリー内の他のアダプタからのアクセスも防止しなければならない。さらに、この機構の実施は、現在使用されているＰＣＩハードウェアへの必要な変更を最小限にするものでなければならない。
【課題を解決するための手段】
【０００５】
本発明は、一般的に、複数のホストおよび共用ＰＣＩｅスイッチおよびアダプタを含む環境でパケットをルーティングするためのテーブルを提供し管理することを指向している。本発明は、ＰＣＩバス・アドレス（ＰＢＡ）内に送信先ＩＤ（ＤＩＤ）フィールドを含めることで従来のＰＢＡを修正することを特徴とする。それ故、ＤＩＤフィールドは、ＰＣＩｅスイッチを通して送り出されるトランザクション・パケット内に埋め込まれ、ＰＣＩアドレスに組み込まれている。特定のＤＩＤが、特定のホストまたはシステム・イメージに関連付けられ、それ故、そのパケットの物理または仮想エンド・ポイントを識別する。本発明の有用な一実施形態は、各々が１つまたは複数のホストを含む複数のルート・ノードを含む分散コンピューティング・システム内のＰＣＩｅスイッチを通してＰＣＩｅトランザクション・パケットをルーティングするのに必要な構造を構築し管理するための方法を指向する。このシステムは、１つまたは複数のＰＣＩアダプタをさらに含む。分散コンピューティング・システムの物理構成を示す物理ツリーが決定され、この物理ツリーから仮想ツリーが作成される。次に、仮想ツリーは、仮想ツリー内の少なくとも１つの送信元デバイスと少なくとも１つの送信先デバイスの間の関連を変更するように修正される。有効化機構が少なくとも１つの送信元デバイスと少なくとも１つの送信先デバイスの間の変更された関連を有効化し、少なくとも１つの送信元デバイスから少なくとも１つの送信先デバイスへのデータのルーティングを可能にする。
【発明を実施するための最良の形態】
【０００６】
図１は、本発明の好ましい実施形態を含む分散コンピューティング・システム１００を示す図である。図１の分散コンピューティング・システム１００は、それぞれＩ／Ｏリンク１５０、１５２、１５４、１５６および１５８を通してＩ／Ｏスイッチファブリック・バス１４４に接続され、ルート・ノード（ＲＮ）１６０〜１６６のメモリ制御装置１０８、１１８、１２８、および１３８に接続された複数のルート・コンプレックス（ＲＣ）１１０、１２０、１３０、１４０および１４２の形態をとる。Ｉ／Ｏファブリックは、リンク１８０〜１９４を通してＩ／Ｏアダプタ（ＩＯＡ）１６８〜１７８に取り付けられている。ＩＯＡは、ＩＯＡ１６８〜１７０および１７６などの１つの機能でよく、またはＩＯＡ１７２〜１７４および１７８などの複数の機能でもよい。さらに、それぞれのＩＯＡは、リンク１８０〜１８６などの１つのリンクを介してＩ／Ｏファブリック１４４に接続されていてもよく、またはリンク１８８〜１９４などの冗長構成のための複数のリンクに接続されていてもよい。
【０００７】
ＲＣ１１０、１２０、および１３０は、それぞれＲＮ１６０、１６２および１６４の組み込みコンポーネントである。共にＲＮ１６６の組み込みコンポーネントであるＲＣ１４０および１４２などの２つ以上のＲＣがＲＮ内に存在することがある。ＲＣに加えて、各ＲＮは、１つまたは複数の中央処理装置（ＣＰＵ）１０２〜１０４、１１２〜１１４、１２２〜１２４および１３２〜１３４、メモリ１０６、１１６、１２６および１３６、ならびにメモリ制御装置１０８、１１８、１２８および１３８から構成される。メモリ制御装置は、それぞれその対応するＲＮのＣＰＵ、メモリ、およびＩ／Ｏ  ＲＣを相互接続し、それぞれのメモリのコヒーレンシ・トラフィックの処理などの機能を実行する。
【０００８】
ＲＮは、ＲＮ１６０および１６２のメモリ制御装置１０８および１１８間に延びるリンク１４６によってメモリ制御装置の位置で接続されている。これは、１つの対称型多重処理（ＳＭＰ）システムとして機能することができる１つのコヒーレンシ・ドメインを形成する。あるいは、ノードは、ＲＮ１６４および１６６内と同様、別のコヒーレンシ・ドメインによって互いに独立している。
【０００９】
図１は、ＲＮ１６０などのその組み込みコンポーネントとしての、ＲＮの１つに組み込まれたＰＣＩ構成マネージャ（ＰＣＭ）１４８を示す。ＰＣＭはＩ／Ｏファブリックの共用リソースを構成し、ＲＮにリソースを割り当てる。
【００１０】
分散コンピューティング・システム１００は、種々の商用コンピューティング・システムを用いて実施できる。例えば、分散コンピューティング・システム１００は、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎから販売されているＩＢＭ  ｅＳｅｒｖｅｒ  ｉＳｅｒｉｅｓ  Ｍｏｄｅｌ８４０システムを用いて実施できる。そのようなシステムは、同様にＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎから販売されているＯＳ／４００オペレーティング・システムを用いた論理分割をサポートすることができる。
【００１１】
当業者には、図１に示すハードウェアが異なってもよいことを理解することができるだろう。例えば、光ディスク・ドライブなどの他の周辺装置も図示のハードウェアと併用、またはその代わりに使用することができる。図示の例は、本発明のアーチテクチャを限定するものではない。
【００１２】
図２を参照すると、本発明を実施できる論理パーティション・プラットフォーム２００の一例を示すブロック図が示されている。論理パーティション・プラットフォーム２００内のハードウェアは、例えば、図１のデータ処理システム１００として実施できる。論理パーティション・プラットフォーム２００は、パーティション・ハードウェア２３０と、オペレーティング・システム２０２、２０４、２０６、２０８と、ハイパーバイザ２１０とを含む。オペレーティング・システム２０２、２０４、２０６、および２０８は、１つのオペレーティング・システムの複数のコピーでもよく、またはプラットフォーム２００上で同時に実行される複数の異種オペレーティング・システムでもよい。これらのオペレーティング・システムは、ハイパーバイザとインタフェースをとるように設計されているＯＳ／４００を用いて実施できる。オペレーティング・システム２０２、２０４、２０６および２０８は、それぞれパーティション２１２、２１４、２１６および２１８内に位置する。さらに、これらのパーティションは、それぞれファームウェア・ローダ２２２、２２４、２２６および２２８を含む。パーティション２１２、２１４、２１６および２１８がインスタンス化されると、オープン・ファームウェアのコピーがハイパーバイザのパーティション・マネージャによって各パーティション内にロードされる。次に、パーティションに関連するかまたは割り当てられたプロセッサは、パーティションのメモリにディスパッチされてパーティション・ファームウェアを実行する。
【００１３】
パーティション・ハードウェア２３０は、複数のプロセッサ２３２〜２３８と、複数のシステム・メモリ・ユニット２４０〜２４６と、複数の入出力（Ｉ／Ｏ）アダプタ２４８〜２６２と、記憶ユニット２７０とを含む。パーティション・ハードウェア２３０は、また、パーティション内のエラーの処理などのさまざまなサービスを提供するために使用することができるサービス・プロセッサ２９０を含む。プロセッサ２３２〜２３８、メモリ・ユニット２４０〜２４６、ＮＶＲＡＭ２９８、Ｉ／Ｏアダプタ２４８〜２６２の各々を、各々がオペレーティング・システム２０２、２０４、２０６および２０８の１つに対応する論理パーティション・プラットフォーム２００内の複数のパーティションの１つに割り当てることができる。
【００１４】
パーティション管理ファームウェア（ハイパーバイザ）２１０は、パーティション２１２、２１４，２１６および２１８が論理パーティション・プラットフォーム２００の分割を作成し実行するためのいくつかの機能とサービスとを実行する。ハイパーバイザ２１０は、基本ハードウェアと同一のファームウェアで実施される仮想マシンである。Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎからハイパーバイザ・ソフトウェアが販売されている。ファームウェアは、電力が供給されなくてもその内容を保持するメモリ・チップ内に格納された「ソフトウェア」であり、例えば、読み出し専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、および不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）などである。それ故、ハイパーバイザ２１０は、論理パーティション・プラットフォーム２００のすべてのハードウェア・リソースを仮想化することで独立ＯＳイメージ２０２、２０４、２０６および２０８の同時実行を可能にする。
【００１５】
異なるパーティションの動作は、ハードウェア管理コンソール２８０などのハードウェア管理コンソールによって制御できる。ハードウェア管理コンソール２８０は、システム管理者がリソースの異なるパーティションへの再割り当てなどのさまざまな機能を実行できる別の分散コンピューティング・システムである。
【００１６】
図２に示すタイプの環境で、１つのパーティション内のリソースまたはプログラムが別のパーティション内の動作に影響することは許容されない。さらに、有用であるため、リソースの割り当てを細分化する必要がある。例えば、特定のＰＨＢ下のすべてのＩＯＡを同じパーティションに割り当てることは許容できない場合が多い。これは、リソースをパーティション間で動的に移動させる機能を含め、システムの構成可能性を制限するからである。
【００１７】
したがって、個別のＩＯＡまたはＩＯＡの部分などのリソースを別々のパーティションに割り当てられるように、ＩＯＡをＩ／Ｏバスに接続し、同時に、割り当てられたリソースが他のパーティションのリソースにアクセスするなどの方法で他のパーティションに影響することを防ぐ何らかの機能がブリッジ内に必要である。
【００１８】
図３を参照すると、図１のＩ／Ｏスイッチファブリック１４４の詳細を示す分散コンピューティング・システム３００が示されている。特に、複数のスイッチの使用を通して複数のルート・ノードをサポートしているＰＣＩファブリックの概念をさらに示すために、スイッチ３０２および３０４がマルチルート・アウェア・スイッチである複数のＰＣＩスイッチ（またはブリッジ）３０２、３０４および３０６を含むファブリック１４４が図３に示されている。図３は、さらに、それぞれポート３０８〜３１４、３１６〜３２４および３２６〜３３０を備えたスイッチ３０２、３０４および３０６を示す。本明細書で単独で用いる場合、「スイッチ」という用語はスイッチとブリッジの両方を含むことを理解されたい。本明細書で使用する「ブリッジ」という用語は、一般的に、同じプロトコルを使用するネットワークの２つのセグメントを接続するデバイスに関する。
【００１９】
図３はさらに、組み込み送信先識別子−ポート・ルーティング・テーブル（ＩＤＩＲＴ）３８２を備えたスイッチ３０２を示す。スイッチ３０４も同様にＩＤＩＲＴ３８４を備える。以降、図４および図５に関連して詳述するＩＤＩＲＴは、組み込みＤＩＤを用いたＰＣＩパケットのルーティングのために設定される。より詳細には、各ＩＤＩＲＴは特定のホストおよびアダプタに関するエントリを含む。
【００２０】
図３をさらに参照すると、各々が１つまたは複数のシステム・イメージ（ＳＩ）を含むホストＣＰＵセット３３２、３３４および３３６が示されている。それ故、ホスト・セット３３２はシステム・イメージＳＩ１およびＳＩ２を含み、ホスト・セット３３４はシステム・イメージＳＩ３を含み、ホスト・セット３３６はシステム・イメージＳＩ４およびＳＩ５を含む。各システム・イメージは、図２に関連して上に述べたパーティション２１２〜２１８などのパーティションと同等であるかまたはこれに対応することを理解されたい。各システム・イメージはホストとも同等である。それ故、システム・イメージＳＩ１およびＳＩ２は、各々ホストＣＰＵセット３３２のホストの１つと同等である。
【００２１】
ホストＣＰＵセットの各々は、上記のように関連するルート・コンプレックスを有する。ルート・コンプレックスを通して、それぞれのホストのシステム・イメージは、Ｉ／Ｏファブリック１４４とインタフェースをとるかこれにアクセスする。より詳細には、ホスト・セット３３２〜３３６は、それぞれＲＣ３３８〜３４２に相互接続されている。ルート・コンプレックス３３８は、ポート３４４および３４６を有し、ルート・コンプレックス３４０および３４２は、それぞれ１つのポート、すなわち、ポート３４８および３５０しか有さない。ホストＣＰＵセットの各々とそれに対応するルート・コンプレックスは、図１に示すＲＮ１６０〜１６６などのルート・ノードの例またはインスタンスを含む。さらに、ホストＣＰＵセット３３２は、図１のＰＣＭ１４８と同様または同一のＰＣＭ３７０を備える。
【００２２】
図３は、さらに、マルチルート・アウェア・スイッチ３０４のポートをそれぞれ含むポート３１６〜３２０の１つに接続された各ＲＣ３３８〜３４２を示す。マルチルート・アウェア・スイッチ３０４および３０２の各々は、複数のルート・ノードを収容するために複数のルーティングまたはデータ経路を備えたＩ／Ｏファブリック１４４などのＰＣＩファブリックを構成する機能を提供する。
【００２３】
スイッチ３０２および３０４などのマルチルート・アウェア・スイッチのそれぞれのポートを、アップストリーム・ポート、ダウンストリーム・ポート、またはアップストリーム・ポート、ダウンストリーム・ポートの両方として使用できる。一般に、アップストリーム・ポートの方がデータ・ソースに近く、データ・ストリームを受信する。ダウンストリーム・ポートは、データ・ソースから遠く、データ・ストリームを送信する。アップストリーム／ダウンストリーム・ポートは、アップストリーム・ポート、ダウンストリーム・ポートの両方の特性を有することができる。図３で、ポート３１６、３１８、３２０、３２６および３０８はアップストリーム・ポートである。ポート３２４、３１２、３１４、３２８および３３０はダウンストリーム・ポートで、ポート３２２および３１０はアップストリーム／ダウンストリーム・ポートである。
【００２４】
ダウンストリーム・ポートとして構成されたポートは、アダプタまたは別のスイッチのアップストリーム・ポートに取り付けるか接続する必要がある。図３で、マルチルート・アウェア・スイッチ３０２は、ダウンストリーム・ポート３１２を用いて２つの仮想Ｉ／Ｏアダプタまたはリソース３５４および３５６を有するＩ／Ｏアダプタ３５２に接続する。同様に、マルチルート・アウェア・スイッチ３０２は、ダウンストリーム・ポート３１４を用いて３つの仮想Ｉ／Ｏアダプタまたはリソース３６０、３６２および３６４を有するＩ／Ｏアダプタ３５８に接続する。マルチルート・アウェア・スイッチ３０４は、ダウンストリーム・ポート３２４を用いてスイッチ３０６のポート３２６に接続する。マルチルート・アウェア・スイッチ３０４は、ダウンストリーム・ポート３２８および３３０を用いてそれぞれＩ／Ｏアダプタ３６６およびＩ／Ｏアダプタ３６８に接続する。
【００２５】
アップストリーム・ポートとして構成されているポートの各々は、ルート・コンプレックス３３８〜３４２の１つに接続するために用いられる。それ故、図３は、アップストリーム・ポート３０８を用いてＲＣ３３８のポート３４４に接続するマルチルート・アウェア・スイッチ３０２を示す。同様に、マルチルート・アウェア・スイッチ３０４は、アップストリーム・ポート３１６、３１８および３２０を用いてルート・コンプレックス３３８のポート３４６、ＲＣ３４０の単一のポート３４８、およびＲＣ３４２の単一のポート３５０にそれぞれ接続する。
【００２６】
アップストリーム／ダウンストリーム・ポートとして構成されたポートは、別のスイッチのアップストリーム／ダウンストリーム・ポートに接続するために使用される。それ故、図３は、アップストリーム／ダウンストリーム・ポート３１０を用いてマルチルート・アウェア・スイッチ３０４のアップストリーム／ダウンストリーム・ポート３２２に接続するマルチルート・アウェア・スイッチ３０２を示す。
【００２７】
Ｉ／Ｏアダプタ３５２は、機能０（Ｆ０）がシステム・イメージＳＩ１に割り当てられ、そこからアクセス可能であり、機能１（Ｆ１）がシステム・イメージＳＩ２に割り当てられ、そこからアクセス可能な仮想化Ｉ／Ｏアダプタとして示されている。同様に、Ｉ／Ｏアダプタ３５８は、機能０（Ｆ０）がＳＩ３に割り当てられ、そこからアクセス可能であり、機能１（Ｆ１）がＳＩ４に割り当てられ、そこからアクセス可能であり、機能３（Ｆ３）がＳＩ５に割り当てられた仮想化Ｉ／Ｏアダプタとして示されている。Ｉ／Ｏアダプタ３６６は、機能Ｆ０がＳＩ２に割り当てられ、そこからアクセス可能であり、機能Ｆ１がＳＩ４に割り当てられ、そこからアクセス可能な仮想化Ｉ／Ｏアダプタとして示されている。Ｉ／Ｏアダプタ３６８は、ＳＩ５に割り当てられ、そこからアクセス可能な１つの機能Ｉ／Ｏアダプタとして示されている。
【００２８】
分散コンピューティング・システム３００などのシステムでは、ＰＣＭは、ＰＣＩスイッチに問い合わせてスイッチがパケットのルーティングのための組み込みＤＩＤの使用をサポートしているか否かを決定する。システム３００では、スイッチ３０２および３０４は、本明細書に記載するように組み込みＤＩＤをサポートしているが、スイッチ３０６はサポートしていない。
【００２９】
図４を参照すると、スイッチ３０４のＩＤＩＲＴ３８４などのＩＤＩＲＴの部分またはコンポーネント４００の概略図が示されている。より詳細には、図４は、各々が総計６４ビットを含むＰＣＩバス・アドレス空間４０２〜４１０を示す。さらに、図４では、各アドレス空間のビットが上位１６ビットおよび下位４８ビットにそれぞれグループ分けされる。
【００３０】
より詳細には、ＩＤＩＲＴに関連して、ＰＣＩアドレス空間の上位ビット（本実施形態では上位１６ビットに選択されている）を用いて送信先を識別する。それ故、ＰＣＩｅパケットを受信するスイッチは上位ビット、例えば、上位１６ビットのアドレスを使用して正しい送信先にルーティングするポートを選択する。次に、アドレス・ベースの残りの４８ビットは、その送信先が使用するアドレスになる。
【００３１】
図４は、さらに、各ＰＣＩアドレス空間のアドレス型を示す。これは、図４のアドレス空間が異なるアドレス型で使用できることを強調するためである。それ故、アドレス４０２、４０４および４０６は、各々ルート・コンプレックスで用いられるが、アドレス４０８および４１０は、各々仮想エンド・ポイントで用いられる。
【００３２】
特定のホストが組み込みＤＩＤをサポートしているスイッチに接続すると、ＰＣＭは、ＩＤＩＲＴのＰＢＡアドレス空間の１つが特定のホストに割り当てられるようにスイッチを構成する。ＰＣＭは、各々の接続されたホストのＩＤＩＲＴ内にエントリを作成することでこれを実行する。それ故、例えば、図４のアドレス空間４０２をホストＣＰＵセット３３２のＳＩ２に関連するホストに割り当てるようなエントリを作成することができる。同様に、アドレス空間４０４をホスト・セット３３４のＳＩ３に関連するホストに割り当てることができる。
【００３３】
上記のように、ＰＢＡアドレス空間がホストに割り当てられると、その後、アドレス空間の上位１６ビットが、ホストに関連する送信先識別子またはＤＩＤとして使用される。例えば、空間４０２のビットｘ００００がルート・コンプレックス３３８に割り当てられたＤＩＤになる。次に、スイッチは、アドレス空間４０２の下位４８ビットがルート・コンプレックス３３８に関連するパケットで利用可能であることをホストに報告する。ルート・コンプレックス３３８、３４０、および３４２などの各ルート・コンプレックスは、送信先識別子によって識別され、ホスト仮想化を用いて着信ＰＣＩｅトランザクションを適当なホストＳＩにルーティングできる。この配置構成で、３５４などの仮想エンド・ポイントがＰＣＩｅメモリ・トランザクションを開始すると、アダプタは、組み込みＤＩＤをＰＣＩｅメモリ・トランザクションのアドレス・フィールドの上位１６ビットに配置する。スイッチは、ＩＤＩＲＴを用いてＰＣＩｅトランザクションを組み込みＤＩＤに関連するルート・コンプレックスにルーティングする。
【００３４】
組み込みＤＩＤをサポートできるスイッチにアダプタが接続されると、スイッチはこのイベントをＰＣＭに報告する。次に、ＰＣＭは、エントリを各仮想エンド・ポイントのスイッチＩＤＩＲＴ内に配置し、各ルート・コンプレックスに、そのルート・コンプレックスに関連する仮想エンド・ポイントのセットとこれらの仮想エンド・ポイントの各々の組込みＤＩＤを送信する。この処理の結果、仮想エンド・ポイント・アダプタは、関連するホストの各々から「見える」ようになり、それによってアクセスできるようになる。例えば、空間４０８のビットｘ０００１は、仮想エンド・ポイント３５４に割り当てられたＤＩＤである。仮想エンド・ポイント３５４、３５６、３６０、３６２、３６４、３５０、３５１、および３５２などの各仮想エンド・ポイントは、送信先識別子によって識別され、ホスト仮想化を用いて着信ＰＣＩｅトランザクションを適当な仮想エンド・ポイントにルーティングできる。この配置構成で、３３８などのルート・コンプレックスがＰＣＩｅメモリ・トランザクションを開始すると、ルート・コンプレックスは、組み込みＤＩＤをＰＣＩｅメモリ・トランザクションのアドレス・フィールドの上位１６ビットに配置する。次に、スイッチは、ＩＤＩＲＴを用いてＰＣＩｅトランザクションを組み込みＤＩＤに関連する仮想エンド・ポイントにルーティングする。
【００３５】
ＰＣＭは、スイッチのＩＤＩＲＴに問い合わせてスイッチ構成に含まれるものを判定することができる。また、ＰＣＭは、スイッチＩＤＩＲＴ内のエントリを修正したり、それらのエントリが有効でなくなると、エントリを破棄または削除することができる。このように、本発明の実施形態は、１つのＤＩＤ番号で複数のデバイスを組み合わせまたは集合させ、ルーティング・ルックアップを簡単化する。さらに、各ホストは、そのＰＣＩアドレス空間セグメント内にあるＰＣＩアドレスにだけ送信できる。この処理は、本明細書でルート・スイッチとも呼ぶＩＤＩＲＴを含むスイッチのところで実行される。ルート・スイッチ傘下のすべてのＰＣＩｅコンポーネント・ツリーは、このスイッチでつながって１つのツリーを形成する。
【００３６】
図５を参照すると、ＰＣＩｅｘｐｒｅｓｓパケット５４０を受信したシステム３００のルート・スイッチ内の簡単化されたＩＤＩＲＴ５００が示されている。パケット５４０は、ＢＤＦおよびＰＢＡフィールド５４４および５４６を含み、ＢＤＦ番号はバス、デバイスおよびＰＣＩコンポーネントの機能を表す整数である。パケット５４０は、図のように、ＰＢＡアドレス・フィールド内にある上記の組み込みＤＩＤ番号５４２をさらに含む。上記のように、パケット５４０は、やはり図のように、ＰＢＡアドレス・フィールド内にあるＰＣＩｅコンポーネント・アドレス５６４をさらに含む。
【００３７】
パケットの組み込みＤＩＤ番号５４２をスイッチは使用してパケットを送出するスイッチ・ポート番号を含むＩＤＩＲＴ５００内のエントリをルックアップする。例えば、組み込みＤＩＤ番号５４２がＩＤＩＲＴエントリ１  ５４８をポイントする場合、スイッチ上のポートＡ  ５５６を用いてパケットが送出される。図５は、ポート５５８および５６０にそれぞれ対応するエントリ５５０および５５２をさらに示す。
【００３８】
発信ＰＣＩｅパケットをポートから送出できる前に、スイッチは、着信ＰＣＩｅパケット５４０に含まれるＢＤＦ＃からそのポートがＰＣＩｅパケットを受信可能か否かを検査する。スイッチは、組み込みＤＩＤ５４２を用いて組み込みＤＩＤ−ＢＤＦ＃有効化テーブル（ＩＤＩＶＴ）５７０内のエントリをルックアップし、着信パケット５４０からのＢＤＦ＃５４４をＩＤＩＶＴ５７０内のＢＤＦのリスト５９０と照合することでこの機能を実行する。ＩＤＩＤ番号５８４および５８８は、ＢＤＦ番号５９５および５９８にそれぞれ対応する。
【００３９】
図６は、本発明の例示としての実施形態のＰＣＩ構成ヘッダを示す。ＰＣＩ構成ヘッダは、一般的に、参照番号６００で示され、ＰＣＩ  Ｅｘｐｒｅｓｓは、ＰＣＩ構成ヘッダ６００内の固定アドレスでその拡張機能６０２を起動する。これらを用いてＰＣＩコンポーネントがマルチルート・アウェアＰＣＩコンポーネントであるか否か、デバイスが組み込みＤＩＤベースのルーティングをサポートしているか否か判定できる。ＰＣＩ  Ｅｘｐｒｅｓｓ拡張機能６０２がマルチルート・アウェア・ビット６０３セットおよび組み込みＤＩＤベースのルーティング・サポート・ビット６０４を有する場合、デバイスのＩＤＩＤ＃は、ＰＣＩ  Ｅｘｐｒｅｓｓ拡張機能領域６０５に格納することができる。しかし、本発明は、ＰＣＩ拡張機能を用いてＩＤＩＤが定義されるという本明細書に記載のシナリオに限定されないことを理解されたい。他の任意のフィールドも再定義でき、または予備のフィールドもＰＣＩの他の仕様に関する組み込み送信先ＩＤフィールドの実施態様に使用できる。
【００４０】
本発明は、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓプロトコルを用いてＩ／Ｏファブリック上で通信し、分散コンピューティング・システムへの修正を反映する分散コンピューティング・システムのような分散コンピューティング・システム内のデータのルーティングを管理するための方法およびシステムを指向する。特に、本発明は、上記のデータ・ルーティング機構が、ホスト間でＩＯＡを転送する、あるいはシステムに対しホストおよび／またはＩＯＡを追加したり削除するなどのシステムを介したデータのルーティングに影響する分散コンピューティング・システム内の修正を確実に適正に反映するように、データ・ルーティング機構に含まれる組み込み送信先ＩＤフィールドを管理する機構を提供する。
【００４１】
図７は、本発明の例示としての実施形態の分散コンピューティング・システムでのデータのルーティングを管理するシステムの概略図である。特に、図７は、分散コンピューティング・システム内のルーティング機構を変更して分散コンピューティング・システム内のルート・コンプレックスとＩＯＡの間の関連の変更を反映する方法の具体例を示す図である。
【００４２】
７０２に示すように、ＰＣＩ構成マネージャ（ＰＣＭ）は、最初に、分散コンピューティング・システムの現在の物理構成を示すツリーを表す組み込みＤＩＤルーティング・テーブル（ＩＤＩＤＲＴ）を作成する。ＰＣＭは、ファブリックの物理構成の全容がわかるようにＩ／Ｏファブリックの現在の構成を確認し、次に、この情報からＩＤＩＤＲＴを作成することでこのテーブルを作成する。７０２に示す物理ツリーでは、エンド・ポイント１（ＥＰ１）およびＥＰ３がＲＣ１に割り当てられ、ＥＰ２がＲＣ２に割り当てられているものとする。次に、ＰＣＭは、７０４に示すＲＣ１の管理者またはエージェントに提示する仮想ツリーを物理ツリーから作成する。この構成は７０２に示す物理構成と同じであるが、今度は仮想であることに留意されたい。
【００４３】
次に、ＲＣ１のシステム管理者またはエージェントは、ＥＰ２を削除することで仮想ツリーを修正するので、７０６に示すように、ＲＣ１と通信できない。次に、ＰＣＭは、新しいＩＤＩＤ有効化テーブル（ＩＤＩＤＶＴ）を作成して仮想ツリーの修正を反映する。
【００４４】
次に、７０４および７０６に示す手順がＲＣ２について繰り返される。特に、ＰＣＭは、ＲＣ２のシステム管理者またはエージェントに仮想ツリーを提示し、システム管理者またはエージェントは、ＥＰ１およびＥＰ３を削除することで仮想ツリーを修正するので、７０８に示すように、ＲＣ２とは通信できない。
【００４５】
物理ツリー内のすべてのＲＣについて上記プロセスが完了すると、スイッチ内のＩＤＩＤＶＴは７１０に示すようになり、ＩＤＩＤＶＴは、ＲＣ１を有効化してＥＰ１およびＥＰ３と通信させ、またその逆を可能にし、ＲＣ２を有効化してＥＰ２と通信させ、またその逆を可能にする。図７の物理ツリーには２つのＲＣと３つのＥＰしか含まれていないが、これはあくまで例示のためであって、ツリーは任意の所望の数のＲＣおよびＥＰを含むことができることを理解されたい。
【００４６】
図８は、本発明の例示としての実施形態の分散コンピューティング・システム内でのデータのルーティングを管理するための方法を示すフローチャートである。Ｉ／Ｏファブリックの物理構成の完全なテーブルを作成する（ステップ８０２）。次に、ＰＣＭは、物理構成に関する情報からＩＤＩＤＲＴを作成し、「ＩＤＩＤ−スイッチ・ポート」の関連付けを行う（ステップ８０４）。次に、ＩＤＩＤＲＴ内のすべてのＲＣおよびＥＰにＩＤＩＤおよびＢＤＦ＃が割り当てられ、バス＃がすべてのスイッチ間リンクに割り当てられる（ステップ８０６）。
【００４７】
図９は、本発明の例示としての実施形態の分散コンピューティング・システム内でのデータのルーティングの管理に関連して送信元および送信先識別子を割り当てる方法を示すフローチャートである。この方法は、一般に参照番号９００で示され、図８のステップ８０６として実施される。
【００４８】
図９を参照すると、スイッチがマルチルート・アウェアか否かが最初に判定される（ステップ９０２）。スイッチがマルチルート・アウェアでない場合（ステップ９０２の出力が「Ｎｏ」の場合）、この方法はエラーで終了する（ステップ９０４）。これはスイッチがマルチルート構成をサポートしていないためである。
【００４９】
スイッチがマルチルート・アウェアである場合（ステップ９０２の出力が「Ｙｅｓ」の場合）、ＰＣＭは、スイッチのポートＡＰ（ＡＰ＝アクティブ・ポート）で開始し、バス＃＝０で開始する（ステップ９０６）。次に、ＰＣＭは、ＰＣＩｅ構成空間にポートＡＰに取り付けられているコンポーネントについて問い合わせする（ステップ９０８）。コンポーネントがスイッチか否かの判定がなされる（ステップ９１０）。コンポーネントがスイッチの場合（ステップ９１０の出力が「Ｙｅｓ」の場合）、ポートＡＰにバス＃が割り当てられているか否かが判定される（ステップ９１２）。ポートＡＰにバス＃が割り当てられている場合（ステップ９１２の出力が「Ｙｅｓ」の場合）、ポートＡＰ−１に等しくポートＡＰが設定され（ステップ９１４）、この方法はステップ９０８に戻って次のポートについて繰り返される。
【００５０】
ポートＡＰにバス＃が割り当てられていない場合（ステップ９１２の出力が「Ｎｏ」の場合）、ＡＰのバス＃＝ＢＮがｃｕｒｒｅｎｔ；ＢＮ＝ＢＮ＋１に割り当てられ（ステップ９１６）、スイッチの下のスイッチについてこの方法を再度実行することでスイッチの下のＩ／Ｏファブリックにバス＃が割り当てられる（ステップ９１８）。次に、ポートＡＰ−１に等しくポートＡＰが設定され（ステップ９１４）、この方法は、ステップ９０８に戻って次のポートについて繰り返される。
【００５１】
コンポーネントがスイッチではないと判定された場合（ステップ９１０の出力が「Ｎｏ」の場合）、コンポーネントがＲＣか否かが判定される（ステップ９２０）。コンポーネントがＲＣの場合（ステップ９２０の出力が「Ｙｅｓ」の場合）、ＢＤＦ＃が割り当てられ（ステップ９２２）、ＲＣがＩＤＩＤをサポートしているか否かが判定される（ステップ９２４）。ＲＣがＩＤＩＤをサポートしている場合（ステップ９２４の出力が「Ｙｅｓ」の場合）、ＲＣにＩＤＩＤが割り当てられる（ステップ９２６）。次に、ＡＰ−１に等しくＡＰが設定され（ステップ９２８）、ＡＰが０より大きいか否かが判定される（ステップ９３０）。ＡＰが０より大きくない場合（ステップ９３０の出力が「Ｎｏ」の場合）、この方法は終了する。ＡＰが０より大きい場合（ステップ９３０の出力が「Ｙｅｓ」の場合）、この方法はステップ９０８に戻ってＰＣＩｅ構成空間に次のポートに取り付けられているコンポーネントについて問い合わせする。
【００５２】
ＲＣがＩＤＩＤをサポートしていない場合（ステップ９２４の出力が「Ｎｏ」の場合）、ＡＰ−１に等しくＡＰが設定され（ステップ９２８）、プロセスは上記のように継続する。
【００５３】
この間、コンポーネントがＲＣでないと判定された場合（ステップ９２０の出力が「Ｎｏ」の場合）、ＢＤＦ＃が割り当てられ（ステップ９３２）、ＥＰがＩＤＩＤをサポートしているか否かが判定される（ステップ９３４）。ＥＰがＩＤＩＤをサポートしている場合（ステップ９３４の出力が「Ｙｅｓ」の場合）、各仮想ＥＰにＩＤＩＤが割り当てられる（ステップ９３６）。ＡＰ−１に等しくＡＰが設定され（ステップ９２８）、上記のようにプロセスは継続する。
【００５４】
ＥＰがＩＤＩＤをサポートしていない場合（ステップ９３４の出力が「Ｎｏ」の場合）、ＡＰ−１に等しくＡＰが設定され（ステップ９２８）、上記のようにプロセスは継続する。
【００５５】
図８に戻って、ＩＤＩＤＲＴ内のすべてのＲＣおよびＥＰにＩＤＩＤおよびＢＤＦ＃が割り当てられ、すべてのスイッチ間リンクにバス＃が割り当てられた（ステップ８０６）後で、ファブリック内のＲＣ数にＲＣＮが設定され（ステップ８０８）、物理ツリー全体を複製することでＲＣＮについて仮想ツリーが作成される（ステップ８１０）。次に、仮想ツリーは、ＲＣの管理者またはエージェントに提示される（ステップ８１２）。システム管理者またはエージェントは、ツリーからＥＰを削除し（ステップ８１４）、仮想ツリーが、必要に応じて、完全に修正されるまで同様のプロセスが繰り返される。
【００５６】
次に、ＥＰ  ＢＤＦのリストに関連するＲＣ  ＩＤＩＤ＃、およびＥＰ  ＢＤＦ＃のリストに関連するＥＰ  ＩＤＩＤ＃を示すＩＤＩＤＶＴが各スイッチ上で作成される（ステップ８１６）。次に、ＲＣＮは、ＲＣＮ−１に等しくされ（ステップ８１８）、ＲＣＮ＝０か否かが判定される（ステップ８２０）。ＲＣＮ＝０の場合（ステップ８２０の出力が「Ｙｅｓ」の場合）、この方法は終了する。ＲＣＮが０に等しくない場合（ステップ８２０の出力が「Ｎｏ」の場合）、この方法は、ステップ８１０に戻り、次の物理ツリーを複製し、次の仮想ツリーについて以降のステップを繰り返すことで仮想ツリーが作成される。
【００５７】
それ故、本発明は、ＰＣＩ  Ｅｘｐｒｅｓｓプロトコルを用いてＩ／Ｏファブリック上で通信する分散コンピューティング・システムなどの分散コンピューティング・システムでのデータのルーティングを管理するための方法およびシステムを提供する。分散コンピューティング・システムの物理構成を示す物理ツリーが決定され、物理ツリーから仮想ツリーが作成される。次に、仮想ツリーは修正され、仮想ツリー内の少なくとも１つの送信元デバイスと少なくとも１つの送信先デバイスの間の関連が変更される。有効化機構は少なくとも１つの送信元デバイスと少なくとも１つの送信先デバイスの間の変更された関連を有効化して、少なくとも１つの送信元デバイスから少なくとも１つの送信先デバイスへのデータのルーティングを可能にする。
【００５８】
本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、または、ハードウェアおよびソフトウェア要素の両方を含む実施形態の形態をとることができる。好ましい実施形態では、本発明は、これに限定はされないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むソフトウェアで実施される。
【００５９】
さらに、本発明は、コンピュータまたは任意の命令実行システムによって、またはそれに関連して用いられるプログラム・コードを提供するコンピュータ可用またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形態をとることができる。この説明のため、コンピュータ可用またはコンピュータ可読媒体は、命令実行システム、装置またはデバイスによって、またはそれに関連して用いられるプログラムを含み、格納し、通信し、伝搬し、または移送することができる任意の装置でよい。
【００６０】
媒体は、電子、磁気、光、電磁気、赤外線、または半導体システム（または装置もしくはデバイス）または伝搬媒体であってもよい。コンピュータ可読媒体の例は、半導体またはソリッド・ステート・メモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、堅牢な磁気ディスクおよび光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク−読み出し専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−読み出し／書き込み（ＣＤ−Ｒ／Ｗ）およびＤＶＤを含む。
【００６１】
プログラム・コードを格納しまたは実行するかあるいはその両方を行うのに適したデータ処理システムは、システム・バスを通してメモリ素子に直接または間接に結合された少なくとも１つのプロセッサを含む。メモリ素子は、プログラム・コードの実際の実行時に使用するローカル・メモリ、大容量記憶装置、および実行時に大容量記憶装置からコードを取り出す回数を減らすために少なくとも何らかのプログラム・コードの一時記憶域を提供するキャッシュ・メモリを含むことができる。
【００６２】
入出力またはＩ／Ｏデバイス（これに限定はされないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む）を、直接または介在するＩ／Ｏ制御装置を通してシステムに結合することができる。
【００６３】
また、ネットワーク・アダプタをシステムに結合して、介在する私設または公衆ネットワークを通して、データ処理システムを他のデータ処理システムまたはリモート・プリンタまたは記憶装置に結合することができる。モデム、ケーブル・モデムおよびイーサネット・カードは現在利用可能な種類のネットワーク・アダプタのごく一部である。
【００６４】
本発明を図示し、説明するために、本発明を記述してきたが、上記記述は、本発明全体を網羅するものでもなければ、開示した形態に本発明を限定するためのものでもない。通常の当業者であれば、多くの修正および変更を思い付くことができるだろう。実施形態は、本発明の原理、実際の用途を最も分かり易く説明するために、また他の当業者が、特定の用途に適するように種々に修正した種々の実施形態について、本発明を理解することができるように選択し、記述した。
【図面の簡単な説明】
【００６５】
【図１】本発明のある実施形態と併用できる汎用分散コンピューティング・システムを示すブロック図である。
【図２】図１のシステム内の論理パーティション・プラットフォームの一例を示すブロック図である。
【図３】同図のシステムが本発明のある実施形態を実施することができる分散コンピューティング・システムの詳細なブロック図である。
【図４】各々が組み込みＤＩＤコンポーネントを備えた、本発明のある実施形態で使用するルート・コンプレックスまたは仮想エンド・ポイントに関連するいくつかのＰＣＩバス・アドレスを示す概略図である。
【図５】本発明のある実施形態のＰＣＩ−Ｅトランザクション・パケットと、簡単化された組み込み送信先ＩＤルーティング・テーブルと、簡単化された組み込み送信先ＩＤ有効化テーブルとを示す概略図である。
【図６】本発明の例示としての実施形態のＰＣＩ構成ヘッダを示す図である。
【図７】本発明の例示としての実施形態の分散コンピューティング・システム内でのデータのルーティングを管理するシステムの概略図である。
【図８】本発明の例示としての実施形態の分散コンピューティング・システム内でのデータのルーティングを管理するための方法を示すフローチャートである。
【図９】本発明の例示としての実施形態の分散コンピューティング・システム内でのデータのルーティングの管理に関連して送信元および送信先識別子を割り当てる方法を示すフローチャートである。
【符号の説明】
【００６６】
１００  分散コンピューティング・システム
１０２〜１０４，１１２〜１１４，１２２〜１２４，１３２〜１３４  中央処理装置（ＣＰＵ）
１０６、１１６、１２６、１３６  メモリ
１０８，１１８，１２８，１３８  メモリ制御装置
１５０，１５２，１５４，１５６，１５８  Ｉ／Ｏリンク
１４４  Ｉ／Ｏスイッチファブリック・バス
１４８，３７０  ＰＣＩ構成マネージャ（ＰＣＭ）
１６０〜１６６  ルート・ノード（ＲＮ）
１０８，１１８，１２８，１３８  メモリ制御装置
１１０，１２０，１３０，１４０，１４２  ルート・コンプレックス（ＲＣ）
１８０〜１９４  リンク
１６８〜１７８  Ｉ／Ｏアダプタ（ＩＯＡ）
２００  論理パーティション・プラットフォーム
２０２，２０４，２０６，２０８  オペレーティング・システム
２１０  ハイパーバイザ
２１２，２１４，２１６，２１８  パーティション
２２２，２２４，２２６，２２８  ファームウェア・ローダ
２３０  パーティション・ハードウェア
２３２〜２３８  プロセッサ
２４０〜２４６  システム・メモリ・ユニット
２４８〜２６２  入出力（Ｉ／Ｏ）アダプタ
２７０  記憶ユニット
２８０  ハードウェア管理コンソール
２９０  サービス・プロセッサ
２９８  ＮＶＲＡＭ
３００  分散コンピューティング・システム
３０２，３０４，３０６  ＰＣＩスイッチ（またはブリッジ）
３０８〜３１４，３１６〜３２４，３２６〜３３０  ポート
３８２  組み込み送信先識別子−ポート・ルーティング・テーブル（ＩＤＩＲＴ）
３３２，３３４，３３６  ホストＣＰＵセット
３３８，３４０，３４２  ルート・コンプレックス
３４４，３４６，３４８，３５０  ポート
３５４，３５６，３６０，３６２，３６４  リソース
３５２，３５８，３６８  Ｉ／Ｏアダプタ
４０２〜４１０  ＰＣＩバス・アドレス空間
５００  ＩＤＩＲＴ
５４０  ＰＣＩｅｘｐｒｅｓｓパケット
５４２  組み込みＤＩＤ
５４４  ＢＤＦフィールド
５４６  ＰＢＡフィールド
５４８  ＩＤＩＲＴエントリ１
５５６  ポートＡ
５５８，５６０  ポート
５７０  組み込みＤＩＤ−ＢＤＦ＃有効化テーブル（ＩＤＩＶＴ）
５８４  ＩＤＩＤ番号
５９０  ＢＤＦのリスト
５９５，５９８  ＢＤＦ番号
６００  ＰＣＩ構成ヘッダ
６０２  拡張機能
６０３  マルチルート・アウェア・ビット
６０４  ルーティング・サポート・ビット
６０５  ＰＣＩ  Ｅｘｐｒｅｓｓ拡張機能領域
ＳＩ１，ＳＩ２，ＳＩ３，ＳＩ４，ＳＩ５  システム・イメージ
【図１】
2007195166.tif 000003
【図２】
2007195166.tif 000004
【図３】
2007195166.tif 000005
【図４】
2007195166.tif 000006
【図５】
2007195166.tif 000007
【図６】
2007195166.tif 000008
【図７】
2007195166.tif 000009
【図８】
2007195166.tif 000010
【図９】
2007195166.tif 000011