(57)【要約】リンクに基づくシステムにおけるシステムルーティング情報の変更を改善するための方法及び装置について記載する。１つの実施形態で、（ホットプラグ・イベント前の複数のコンポーネント間のルーティング経路に対応するデータを記憶する）第１のテーブル内のエントリ及び（ホットプラグ・イベント後の複数のコンポーネント間のルーティング経路に対応するデータを記憶する）第２のテーブル内のエントリは比較され、どの対応するルーティングレジスタがホットプラグ・イベントに応答して変更されるべきかが決定される。他の実施形態も開示されている。
2011503731.tif 000002
【特許請求の範囲】
【請求項１】
システムルーティング情報を変更する装置であって、
１又はそれ以上の通信リンクを介して結合されている複数のコンポーネントと、
ホットプラグ・イベント前の前記複数のコンポーネント間のルーティング経路に対応する第１のテーブルと、前記ホットプラグ・イベント後の前記複数のコンポーネント間のルーティング経路に対応する第２のテーブルとを記憶する記憶ユニットと、
どの対応するルーティングテーブルアレイ（ＲＴＡ）レジスタが前記ホットプラグ・イベントに応答して変更されるべきかを決定するよう前記第１のテーブル及び前記第２のテーブルにおいてエントリを比較するロジックと
を有する装置。
【請求項２】
前記ロジックは、前記第２のテーブルのエントリに従って、決定された前記ＲＴＡレジスタに格納されているデータの変更を引き起こす、請求項１記載の装置。
【請求項３】
前記決定されたＲＴＡレジスタを変更するよう読み出される前記第２のテーブルのエントリは、前記第１のテーブルの対応するエントリに格納されているデータとは異なるデータを格納する、請求項２記載の装置。
【請求項４】
前記ロジックを有するプロセッサを更に有する請求項１記載の装置。
【請求項５】
前記プロセッサは１又はそれ以上のプロセッサコアを有する、請求項４記載の装置。
【請求項６】
前記複数のコンポーネントの中の１又はそれ以上、前記記憶ユニット、又は前記ロジックは、同じ集積回路ダイ上にある、請求項１記載の装置。
【請求項７】
前記複数のコンポーネントは、１又はそれ以上のプロセッサ、１又はそれ以上のインターフェースデバイス、あるいは１又はそれ以上のメモリデバイスのうちの１つ又はそれ以上を有する、請求項１記載の装置。
【請求項８】
前記１又はそれ以上の通信リンクは、１又はそれ以上のポイント・ツー・ポイントリンクを有する、請求項１記載の装置。
【請求項９】
前記ホットプラグ・イベントは、リンクに基づくコンピュータシステムのコンポーネントの変更、コンポーネントの付加、又はコンポーネントの除去のうちの１つ又はそれ以上に対応する、請求項１記載の装置。
【請求項１０】
前記記憶ユニットは、前記第１のテーブルを記憶する第１の記憶デバイスと、前記第２のテーブルを記憶する第２の記憶デバイスとを有する、請求項１記載の装置。
【請求項１１】
システムルーティング情報を変更する方法であって、
ホットプラグ・イベントの発生に応答して、リンクに基づくコンピュータシステムにおいて複数のコンポーネント間のルーティング経路を決定するステップと、
前記ホットプラグ・イベントの発生後の前記複数のコンポーネント間のルーティング経路に対応するデータを第１のテーブルに記憶するステップと、
前記第１のテーブルを、前記ホットプラグ・イベントの発生前の前記複数のコンポーネント間のルーティング経路に対応するデータを記憶する第２のテーブルと比較するステップと、
前記比較の結果に基づいて１又はそれ以上のルーティングテーブルアレイ（ＲＴＡ）レジスタを更新するステップと
を有する方法。
【請求項１２】
前記ホットプラグ・イベントの発生を検出するステップを更に有する請求項１１記載の方法。
【請求項１３】
前記１又はそれ以上のＲＴＡレジスタを更新するステップは、前記第１のテーブルのエントリに基づく、請求項１１記載の方法。
【請求項１４】
前記第２のテーブルに記憶されているデータを、前記第１のテーブルに記憶されているデータにより置換するステップを更に有する請求項１１記載の方法。
【請求項１５】
前記ホットプラグ・イベントは、リンクに基づくコンピュータシステムのコンポーネントの変更、コンポーネントの付加、又はコンポーネントの除去のうちの１つ又はそれ以上に対応する、請求項１１記載の方法。
【請求項１６】
システムルーティング情報を変更するシステムであって、
複数のコンポーネントを結合する複数のポイント・ツー・ポイントリンクと、
夫々が、前記複数のコンポーネントにパケットルーティング情報を示すよう前記複数のコンポーネントの中の夫々１つに関連するルーティングデータを記憶する複数のルーティングテーブルアレイ（ＲＴＡ）レジスタと、
ホットプラグ・イベント前の前記複数のコンポーネント間のルーティング経路に対応する第１のテーブルと、前記ホットプラグ・イベント後の前記複数のコンポーネント間のルーティング経路に対応する第２のテーブルとを記憶する記憶ユニットと、
前記ホットプラグ・イベントの発生に応答して前記第２のテーブルに記憶されるべきデータを計算し、どの対応するＲＴＡレジスタが前記ホットプラグ・イベントに応答して変更されるべきかを決定するよう前記第１のテーブル及び前記第２のテーブルにおいてエントリを比較するプロセッサと
を有するシステム。
【請求項１７】
前記プロセッサは、前記第２のテーブルのエントリに従って、決定された前記ＲＴＡレジスタに記憶されているデータの変更を引き起こす、請求項１６記載のシステム。
【請求項１８】
前記プロセッサは、１又はそれ以上のプロセッサコアを有する、請求項１６記載のシステム。
【請求項１９】
前記複数のコンポーネントの中の１又はそれ以上、前記記憶ユニット、又は前記ロジックは、同じ集積回路ダイ上にある、請求項１６記載のシステム。
【請求項２０】
前記複数のコンポーネントは、１又はそれ以上のプロセッサ、１又はそれ以上のインターフェースデバイス、あるいは１又はそれ以上のメモリデバイスのうちの１つ又はそれ以上を有する、請求項１６記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、エレクトロニクスの分野に関する。より具体的に、本発明の実施形態は、リンクに基づくシステムにおけるシステムルーティング情報の変更のための技術に関する。
【背景技術】
【０００２】
ＲＡＳ（Reliability（信頼性）、Availability（利用可能性）及びServiceability（サービス性））は、特にサーバプラットフォームで、現代のコンピュータシステムにとって重要な特性となっている。例えばＣＳＩ（Common  System  Interface）等のリンクに基づくシステムでは、例えばソケット（又はリンク）ホットプラグ等のＲＡＳ特性の成功実現は、ランタイム中のルーティングデータの再構成に依存する。一般に、リンクに基づくシステムのメンバーの隣近所に関するルーティングデータは、リンクに基づくシステムの各メンバー近くの記憶デバイスに記憶されている。ルーティングデータの再構成動作は、さもなければＯＳ（Operation  System）によって用いられうるプロセッシング時間を利用することによって、ＯＳにとってトランスペアレントに処理される。ＯＳはそれ自身のレイテンシー（latency）要求を有するので、ルーティングテーブルの再構成の時間を最小限とすることは、ＲＡＳの実施において重要な判断基準となる。
【図面の簡単な説明】
【０００３】
【図１】本願で開示される種々の実施形態を実施するために利用されるコンピュータシステムの実施形態に係るブロック図を表す。
【図２】本願で開示される種々の実施形態を実施するために利用されるコンピュータシステムの実施形態に係るブロック図を表す。
【図３】幾つかの実施形態に従う方法のフロー図を表す。
【図４】幾つかの実施形態に従う方法のフロー図を表す。
【図５】本願で開示される種々の実施形態を実施するために利用されるコンピュータシステムの実施形態に係るブロック図を表す。
【図６】本願で開示される種々の実施形態を実施するために利用されるコンピュータシステムの実施形態に係るブロック図を表す。
【図７】本願で開示される種々の実施形態を実施するために利用されるコンピュータシステムの実施形態に係るブロック図を表す。
【図８】本願で開示される種々の実施形態を実施するために利用されるコンピュータシステムの実施形態に係るブロック図を表す。
【発明を実施するための形態】
【０００４】
詳細な記載は、添付の図面を参照して与えられる。図面において、参照符号の左端の数字は、その参照番号が最初に現れる図を示す。異なる図面における同じ参照番号の使用は、類似する又は同じアイテムを示す。
【０００５】
以下の記載で、多数の具体的な詳細は、様々な実施形態の完全な理解を与えるために挙げられている。なお、幾つかの実施形態は、かかる具体的な詳細によらずに実行されてよい。他の面では、周知の方法、手順、構成要素及び回路は、特定の実施形態を不明りょうにしないように、詳細には記載されていない。本発明の実施形態に係る様々な態様は、例えば、集積半導体回路（“ハードウェア”）、１又はそれ以上のプログラムで構成されているコンピュータ読取可能な命令（“ソフトウェア”）、あるいはハードウェア及びソフトウェアの何らかの組合せのような様々な手段を用いて実行されてよい。本開示のために、「ロジック」への言及は、ハードウェア、ソフトウェア、又はそれらの何らかの組合せのいずれかを意味すべきである。
【０００６】
本願で論じられている実施形態のうちの幾つかは、例えばＲＡＳを改善するために、リンクに基づくシステム（例えば、ＣＳＩシステム）でシステムルーティング構成のより効率的な及び／又はより速い変更を可能にする。より具体的に、幾つかの技術は、比較的大きなコンピュータシステム（例えば、図１を参照して論じられるようなエージェントとも本願で呼ばれる様々なノードの間の多数のルートを有するブレードサーバ）が、例えば、ＳＭＩ（System  Management  Interrupt（システム管理割込））、ＰＭＩ（Platform  Management  Interrupt（プラットフォーム管理割込））又は他の割込サービスに利用可能な限られた時間窓等のホットプラグ・イベントの間、計算され且つ更新される必要があるＲＴＡ（Routing  Table  Array（ルーティングテーブルアレイ））レジスタの量を減らすことによって、より効率的に及び／又はより速くシステムルーティング構成を変更することを可能にする。また、実施形態において、システムルーティング構成は、システムトポロジを変化させることなく変更され得る。加えて、本願で論じられている技術のうちの幾つかは、例えば図１〜８を参照して論じられているもののように、様々なタイプのコンピュータ環境で利用されてよい。
【０００７】
より具体的に、図１は、本発明の実施例に従うコンピュータシステム１００のブロック図を表す。システム１００は、１又はそれ以上のエージェント１０２−１〜１０２−Ｍ（集合的に本願では「エージェント１０２」と呼ばれる。）を有してよい。実施例で、エージェント１０２は、例えば図２〜８を参照して論じられるコンピュータシステムのようなコンピュータシステムのコンポーネントであってよい。
【０００８】
図１に表されているように、エージェント１０２は、ネットワーク構造１０４を介して通信を行うことができる。１つの実施形態において、ネットワーク構造１０４は、種々のエージェント（例えば、コンピュータデバイス）がデータをやり取りすることを可能にするコンピュータネットワークを有してよい。実施例で、ネットワーク構造１０４は、シリアル（例えば、ポイント・ツー・ポイント）リンク及び／又は共有通信ネットワークを介して通信を行う１又はそれ以上のインターコネクト（又は相互接続ネットワーク）を有してよい。例えば、幾つかの実施形態は、例えば、ＦＢ−ＤＩＭＭ（fully  buffered  dual  in-line  memory  modules）リンクがメモリモジュールをホストコントローラデバイス（例えば、プロセッサ又はメモリハブ）に結合するためのシリアルリンクである場合に、ＦＢ−ＤＩＭＭとの通信を可能にするリンク上でのコンポーネントのデバッグ又はバリデーションを容易にする。デバッグ情報はＦＢ−ＤＩＭＭチャネルホストから送信されてよく、これにより、デバッグ情報は、チャネルトラフィック・トレース・キャプチャツール（例えば、１又はそれ以上のロジックアナライザ）によって、チャネルに沿って監視され得る。
【０００９】
１つの実施形態において、システム１００は階層化プロトコルスキームをサポートしてよく、システム１００は、物理層、リンク層、ルーティング層、トランスポート層及び／又はプロトコル層を有してよい。ネットワーク構造１０４は、更に、ポイント・ツー・ポイント又は共有ネットワークのために１つのプロトコル（例えば、キャッシングプロセッサ又はキャッシング・アウェア（caching  aware）メモリコントローラ）から他のプロトコルへの（例えば、パケット形態での）データの送信を容易にする。また、幾つかの実施形態で、ネットワーク構造１０４は、１又はそれ以上のキャッシュ・コヒーレントプロトコルに従う通信を提供してよい。
【００１０】
更に、図１で矢印の方向によって示されるように、エージェント１０２は、ネットワーク構造１０４を介してデータを送受信してよい。従って、通信のために、幾つかのエージェントは一方向性リンクを利用し、一方、他のエージェントは双方向性リンクを利用してよい。例えば、１又はそれ以上のエージェント（例えば、エージェント１０２−Ｍ）は（例えば、一方向性リンク１０６を介して）データを送信し、他のエージェント（例えば、エージェント１０２−２）は（例えば、一方向性リンク１０８を介して）データを受信し、一方、あるエージェント（例えば、エージェント１０２−１）は（例えば、双方向性リンク１１０を介して）データを送信し且つ受信してよい。
【００１１】
図２は、本発明の１つの実施形態に従うポイント・ツー・ポイント（ＰｔＰ）コンピュータシステム２００のブロック図を表す。図２は、４つのプロセッサ又は中央演算処理ユニット（ＣＰＵ）（ＣＰＵ０〜ＣＰＵ３）と、幾つかの実施形態で入出力ハブ（ＩＯＨ）として実施され得る２つのインターフェースデバイス２０２及び２０４とを備えるＣＳＩリンクに基づくシステムの例を示す。
【００１２】
図２で、表されているＣＰＵ及びインターフェースデバイスは、（双方向の矢印として表されている）ＣＳＩリンクを介して互いと通信を行うＣＳＩコンポーネントであってよい。更に、リンクに結合されているボックス又は円の夫々の内部の数字は、所与のデバイスのためのサンプルポート番号を表す。図２に示されるように、ＣＰＵの夫々は、夫々のＣＰＵによってアクセス可能であるメモリサブシステムに結合されてよい。代替的に、ＣＰＵのうちの１つ又はそれ以上は、専用のメモリサブシステムに加えて又はそれに代えて、メモリユニット（図示せず。）を共有してよい。幾つかの実施形態で、インターフェースデバイス２０２〜２０４は、例えば（例えば、ＰＣＩｅ（Peripheral  Component  Interconnect  Express）規格、改訂２．０、２００６年１０月に従う）ＰＣＩｅ等のＩ／Ｏデバイス及び／又は例えば図７を参照して更に論じられるもののようなＩ／Ｏコントローラハブ（ＩＣＨ）への接続性を提供してよい。１つの実施形態において、プロセッサ間及び／又はプロセッサとインターフェースデバイスとの間の通信は、ＣＳＩパケットを用いて行われてよい。更に、（例えば、ＣＰＵ及び／又はインターフェースデバイスの１又はそれ以上を含む）ＣＳＩコンポーネントの夫々は、ＲＴＡ及びソースアドレスデコーダ（ＳＡＤ）を含んでよい。ＲＴＡは、ＣＳＩパケットルーティング情報を他のソケットに提供してよい。ＳＡＤは、例えば、メモリ、Ｉ／Ｏ等のリソースのルーティングを表すメカニズムを提供してよい。
【００１３】
１つの実施形態を説明するために、図２においてＣＰＵ３がＯＳ実行中に除去される必要があるとする。幾つかの実施形態で、ＣＳＩコンポーネントはＱｕｉｅｓｃｅモードをサポートする。このモードによって、通常のトラフィックは、ＲＴＡ／ＳＡＤ変更動作の間は一時停止され得る。一般に、コンピュータシステムのコンポーネントの付加、除去及び／又は変更を伴うこのような事象は、本願では「ホットプラグ・イベント」と呼ばれる。ＣＰＵ３の除去に関連する事象を扱うために、プラットフォームは、基本入出力システム（ＢＩＯＳ）にコンポーネントが除去される必要がある旨を知らせるようＳＭＩを生成してよい。幾つかの実施形態で、ＳＭＩ後の除去動作は、以下の事柄を伴う：
１．コードを処理するＳＭＩイベントの大部分の実行に寄与する支配（Monarch）ＣＰＵとして１つのＣＰＵを選択すること（以下、例えば、ＣＰＵ０が支配ＣＰＵと考えられる。）；
２．ＣＳＩリンクを通る全てのトラフィックを一時停止するよう、システム全体が支配ＣＰＵによって停止させられること；
３．支配ＣＰＵによってシステム構成ＲＴＡレジスタについて新しい値が計算され、ＲＴＡレジスタが更新されること；
４．支配ＣＰＵによって他のシステム構成動作（例えば、ＳＡＤレジスタについて新しい値を計算してＳＡＤレジスタを更新すること、除去対象のソケット（hot-removed  socket）へのリンクを無効にすること、等）が行われること；及び
５．支配ＣＰＵによるシステムの停止が終わり、非支配プロセッサが開放され、ＳＭＩから戻ること。システムは続けて実行される。
【００１４】
上記のステップ３で、システムルーティングを変更するために、再計算ルーティングが、除去されるソケット（又はリンクの）ルーティング構造の新たなトポロジを最初に得ることによって、実行される。第２に、全てのＲＴＡレジスタについての新しい値が計算されてよい。最後に、全てのＲＴＡレジスタは更新される。このアプローチは、全てのＲＴＡレジスタを通って、それらの値を計算し、それらを更新する必要があるために、たとえＲＴＡレジスタがホットプラグ・イベント後に古い値（例えば、図２の例におけるＣＰＵ０とＣＰＵ１との間のルーティングのためのそれらのＲＴＡレジスタ）を保持するとしても、むしろ効率が悪い。更に悪いことに、実際のシステムに関して、ＲＴＡは大量でありうる。例えば、幾つかのＣＰＵは夫々、ポート毎に８０個のＲＴＡエントリを有する１２のポートを有することがある。故に、システムルーティングを変更する処理は、著しいレイテンシーを導入しうる。言い換えると、これは、ホットプラグ・イベント中のシステム停止時間を増大させ、より大きいシステムではＯＳの許容デッドラインを超えうる。
【００１５】
図３及び４は夫々、実施例に従うコンピュータシステムでより効率的に及び／又はより速くルーティング情報を更新するために利用される方法３００及び４００のフロー図を表す。１つの実施形態において、例えば図１〜２及び５〜８を参照して本願で論じられる様々なコンポーネントは、図３又は４を参照して論じられる動作のうちの１つ又はそれ以上を実行するために利用されてよい。
【００１６】
図１〜３を参照すると、動作３０２で、（例えば、ＳＭＩ又はＰＭＩ等の割込によって示される）ホットプラグ・イベントの開始後、除去、付加及び／又は変更されるソケット（又はリンク）のルーティング構造の新たなトポロジが、例えばシステムレベルのルーティングテーブルを参照することで、得られる。１つの実施形態において、中間データテーブル（ここでは「ルーティングデータテーブル」とも呼ばれる。）は、変更されるＲＴＡレジスタをフィルタに通すとともに、新しいルーティング構造についてのレジスタ値を計算するために使用されてよい。ルーティングデータテーブルのセルは、起点から目標までのトランザクションのルーティングに係る情報を含んでよい。
【００１７】
例えば、以下の表１は、ＣＰＵ３が除去される前の図２に対応するテーブルの例を表す。ルーティング情報は、システム要求に特有の又はそれに基づくルーティングアルゴリズムを通じて計算される。表１の例は、最小距離アルゴリズムによって計算される。すなわち、表内の各セルは、所与の起点（行）から所与の目標（列）までの最小ルーティング経路を示す。なお、本発明の実施形態は、最小距離アルゴリムズに限定されず、如何なるルーティングアルゴリズムも、ルーティングデータテーブルのフォーマットに準拠するよう適合された出力とともに用いられてよい。
【００１８】
【表１】
2011503731.tif 000003
更に、このようなルーティング情報は、最終的なＲＴＡレジスタ値を計算するための中間結果であってよい。リンクに基づくシステムに関して、各コンポーネントに対するルーティング構造は、ポート、エントリ、及び仮想チャネル等とともに実施されてよい。故に、多くの逐次計算が行われてよい。また、実施に依存して、ルーティングテーブル情報の一部又は全ては、システムの起動時に又は予め起動前に計算されてよい。他の実施は、ホットプラグ・イベント中にルーティングテーブル情報の少なくとも一部を計算してよい。更に、幾つかの実施形態で、新しいトポロジは、例えば、第３部分（third-part）システム管理／アシスタントエージェントによって提供され又は動的に見出される情報等に基づいて、動作３０２で様々な手段によって得られる。
【００１９】
動作３０４において、あらゆる必要な変更が決定されてよい。例えば、ルーティングデータテーブル内の各セルは起点から目標までのルーティング情報を含むので、セルの値がホットプラグ・イベントの前後で変化しない場合は、対応するＲＴＡレジスタ値も変化する必要がない。そうでない場合は、ＲＴＡレジスタ値は、新しいポート又は経路への遷移のルーティングのために変更される。
【００２０】
例えば、以下の表２は、ＣＰＵ３が図２から除去されている（新しい）ルーティングデータテーブルの例を表す。実施例において、動作３０４で、ホットプラグ・イベントの前（表１）及び後（表２）のトポロジのルーティングデータテーブルにおけるセル値を比較することによって、更に計算されて最終的に更新される必要があるＲＴＡレジスタは、ホットプラグ・イベントに関連するレイテンシーを減らし及び／又は速度を増すよう除去されうる。
【００２１】
【表２】
2011503731.tif 000004
例えば、表２を表１と比較することによって、ＣＰＵ３の除去により６個のセルが変化し、１５個のセルは前の値を保持することが明らかになる。幾つかの実施形態で、現在のテーブルは、新しいテーブルとは異なるメモリデバイスに記憶されてよい（例えば、テーブルは、図２を参照して論じられた異なるメモリサブシステム又はキャッシュに記憶されてよい。）。代替的に、テーブルは、同じメモリデバイス（例えば、共有メモリデバイス又はプライベートメモリデバイス）に記憶されてよい。
【００２２】
例えば、各セルについて時間Ｔが逐次計算及びハードウェア更新のために必要であるとすると、費やされる時間は（１５＋６）Ｔ＝２１Ｔから６Ｔまで減らされ、３．５倍速くなる。ホットアッド（hot-add）の場合（例えば、ＣＰＵ３の付加）を考えると、表１はトポロジ変更後のルーティングデータテーブルに対応し、一方、表２は元の構成である。これは、ＣＰＵ３からのセル及びＣＰＵ３へのセルがカウントされるべきであるためであり、故に、費やされる時間は、（２１＋１０）Ｔ＝３１Ｔから（６＋１０）Ｔ＝１６Ｔまで減らされ、約２倍速くなる。従って、動作３０４でなされた決定に基づき、動作３０６は、フィルタを通されたＲＴＡレジスタについて新しい値を計算する。動作３０８で、ルーティング情報は、動作３０６の計算値に基づいて更新されてよい（例えば、動作３０４のフィルタを通されたＲＴＡレジスタのみが更新される。）。
【００２３】
図４は、実施例に従って図３の動作３０４を行うために使用される方法４００のフロー図を表す。動作４０２で、新しいトポロジに係る新しいルーティングデータテーブルが計算されてよい。１つの実施形態において、動作４０２は、除去、付加及び／又は変更をされるコンポーネントの隣接コンポーネントに対して実行されてよい。動作４０４で、新しいテーブルは、図３を参照して論じられたように、現在のテーブルと比較されてよい。動作４０４の比較に基づき、変更される（又はフィルタを通される）べきレジスタ（例えば、ＲＴＡレジスタ）が動作４０６で決定され得る。動作４０８で、現在のルーティングテーブルは、動作４０２で計算された新しいルーティングテーブルからのデータにより更新されてよい。
【００２４】
幾つかの実施形態は変更されるＲＴＡレジスタのみにフィルタをかけるので、システムに含まれるコンポーネントの数が増えるにつれて、かかる実施形態はより良い利益をもたらすことは明らかである。例えば、図５において、１２個のプロセッサを備える比較的大きいシステム５００が示されている。（システムの中央にある）ＣＰＵ７が付加される。以下の表３はシステム５００に対応する。明らかなように、変更されるセル及び変更されないセルの夫々の数は６２及び７０であり、故に、（６２＋７０）Ｔから６２Ｔまで性能が改善され、２倍より速くなる。
【００２５】
【表３】
2011503731.tif 000005
更に、図６のシステム６００で、角にあるＣＰＵ（ＣＰＵ４）が除去される。以下の表４はシステム６００に対応する。この例に関して、３つのセルのみが変更され、故に、ルーティング構成に費やされる時間は（３＋１０７）Ｔから３Ｔまで減らされ、３５倍より速くなる。
【００２６】
【表４】
2011503731.tif 000006
従って、幾つかの実施形態で、起点から目標までのルーティング情報を含む中間ルーティングデータテーブルが使用されてよい。ホットプラグ・イベントの前後のデータテーブルを比較することによって、最小セットのＲＴＡレジスタが計算及び更新され、性能が改善される。更に、たとえソケットのホットプラグ・イベントが例として本願において論じられているとしても、ここで論じられている実施形態は、また、リンク・ホットプラグとともに適切に動作する。上記の例は本発明を記載するためにＳＭＩを用いるが、同様の技術がＰＭＩによるシステムで使用されてよい。
【００２７】
図７は、コンピュータシステム７００の実施例に係るブロック図を表す。図１及び／又は図２のコンポーネントのうちの１つ又はそれ以上は、コンピュータシステム７００を参照して論じられる１又はそれ以上のコンポーネントを有してよい。コンピュータシステム７００は、相互接続ネットワーク（又はバス）７０４と結合される１又はそれ以上の中央演算処理ユニット（ＣＰＵ）７０２（集合的に、本願では「プロセッサ７０２」と呼ばれる。）を有してよい。プロセッサ７０２は、例えば、汎用プロセッサ、（コンピュータネットワーク１０４を介してやり取りされるデータを処理する）ネットワークプロセッサ等（ＲＩＳＣ（reduced  instruction  set  computer）プロセッサ又はＣＩＳＣ（complex  instruction  set  computer）を含む。）のあらゆるタイプのプロセッサであってよい。更に、プロセッサ７０２は、単一又は複数コア設計を有してよい。複数コア設計を有するプロセッサ７０２は、同じ集積回路（ＩＣ）ダイ上に異なるタイプのプロセッサコアを一体化してよい。また、複数コア設計を有するプロセッサ７０２は、対称又は非対称マルチプロセッサとして実施されてよい。
【００２８】
プロセッサ７０２は１又はそれ以上のキャッシュ（図示せず。）を有してよく、かかるキャッシュは様々な実施形態で専用及び／又は共有であってよい。一般に、キャッシュは、他の場所に格納されている又は先に計算されている元のデータに対応するデータを格納する。メモリアクセス・レイテンシーを減らすために、データがキャッシュに格納されると、元のデータの再フェッチ又は再計算をせずに、キャッシュしたコピーにアクセスすることによる将来的な使用が可能である。キャッシュは、例えば、レベル１（Ｌ１）キャッシュ、レベル２（Ｌ２）キャッシュ、レベル３（Ｌ３）キャッシュ、中間レベルキャッシュ、最終レベルキャッシュ（ＬＬＣ）等のあらゆるタイプのキャッシュであってよく、システム７００の１又はそれ以上のコンポーネントによって利用される電子データ（例えば、命令を含む。）を格納する。
【００２９】
チップセット７０６は、更に、相互接続ネットワーク７０４に結合されてよい。更に、チップセット７０６はメモリ制御ハブ（ＭＣＨ）７０８を有してよい。ＭＣＨ７０８は、メモリ７１２に結合されているメモリコントローラ７１０を有してよい。実施例で、ＭＣＨは、グラフィックロジックを更に有してよく、結果として、グラフィックＭＣＨ（ＧＭＣＨ）とも呼ばれることがある。メモリ７１２は、例えば、プロセッサ７０２又はコンピュータシステム７００と通信を行う何らかの他のデバイスによって実行される命令のシーケンスを含むデータを記憶してよい。実施例で、メモリ７１２は、図２に示されているメモリサブシステムと同じか又は類似するものであってよい。また、本発明の１つの実施形態において、メモリ７１２は、例えば、ランダムアクセスメモリ（ＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、静的ＲＡＭ（ＳＲＡＭ）等の１又はそれ以上の揮発性記憶（又はメモリ）デバイスを有してよい。例えばハードディスク等の不揮発性メモリも用いられてよい。例えばマルチプロセッサ及び／又はマルチシステムメモリ等の更なるデバイスが相互接続ネットワーク７０４に結合されてよい。
【００３０】
ＭＣＨ７０８は、（例えば、実施例ではグラフィックアクセラレータを介して）表示デバイス７１６に結合されているグラフィックインターフェース７１４を更に有してよい。１つの実施形態において、グラフィックインターフェース７１４は、ＡＧＰ（accelerated  graphics  port）を介して表示デバイス７１６に結合されてよい。本発明の実施例で、表示デバイス７１６（例えば、フラットパネルディスプレイ）は、例えば信号変換器を通じて、グラフィックインターフェース７１４に結合されてよい。信号変換器は、ビデオメモリ又はシステムメモリ（例えば、メモリ７１２）等の記憶デバイスに記憶されている画像のデジタル表現を、ディスプレイ７１６によって解釈されて表示される表示信号に変換する。
【００３１】
図７に示されるように、ハブインターフェース７１８は、ＭＣＨ７０８を入出力制御ハブ（ＩＣＨ）７２０に結合してよい。ＩＣＨ７２０は、コンピュータシステム７００に結合されている入出力（Ｉ／Ｏ）デバイスへのインターフェースを提供することができる。ＩＣＨ７２０は、例えば、ＰＣＩｅに準拠するＰＣＩ（peripheral  component  interconnect）ブリッジや、ＵＳＢ（universal  serial  bus）等の周辺ブリッジ（又はコントローラ）７２４を通じてバス７２２に結合されてよい。ブリッジ７２４は、プロセッサ７０２と周辺デバイスとの間のデータ経路を提供することができる。他のタイプのトポロジが利用されてよい。また、多数のバスが、例えば、多数のブリッジ又はコントローラを通じて、ＩＣＨ７２０に結合されてよい。例えば、バス７２２は、アメリカ合衆国オレゴン州ポートランドのＰＣＩ  ＳＩＧ（special  interest  group）から入手可能なＰＣＩローカルバス規格、改訂２．０、２００４年３月９日に従ってよい（以降、「ＰＣＩバス」と呼ぶ。）。代替的に、バス７２２は、アメリカ合衆国オレゴン州ポートランドのＰＣＩ  ＳＩＧから入手可能なＰＣＩ−Ｘ規格、改訂２．０ａ、２００３年４月２日及び／又はＰＣＩｅ規格に従うバス（以降、「ＰＣＩ−Ｘバス」と呼ぶ。）を有してよい。更に、バス７２２は、他のタイプ及び構成のバスシステムを有してよい。更に、ＩＣＨ７２０に結合されている他の周辺デバイスは、本発明の様々な実施形態において、集積ドライブエレクトロニクス（ＩＤＥ）若しくはスモールコンピュータシステムインターフェース（ＳＣＳＩ）ハードドライブ、ＵＳＢポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピー（登録商標）ディスクドライブ、デジタル出力サポート（例えば、デジタルビデオインターフェース（ＤＶＩ））等を有してよい。
【００３２】
バス７２２は、オーディオデバイス７２６、１又はそれ以上のディスクドライブ７２８、及びネットワークアダプタ７３０（実施例で、ＮＩＣであってよい。）に結合されてよい。１つの実施形態において、バス７２２に結合されているネットワークアダプタ７３０又は他のデバイスは、チップセット７０６と通信を行ってよい。他のデバイスがバス７２２に結合されてよい。また、様々なコンポーネント（例えば、ネットワークアダプタ７３０）は、本発明の幾つかの実施形態で、ＭＣＨ７０８に結合されてよい。加えて、プロセッサ７０２及びＭＣＨ７０８は、単一チップを形成するようまとめられてよい。
【００３３】
更に、コンピュータシステム７００は、揮発性及び／又は不揮発性メモリ（又は記憶デバイス）を有してよい。例えば、不揮発性メモリには、読出専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、ディスクドライブ（例えば、７２８）、フロッピー（登録商標）ディスク、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタル・バーサタイル・ディスク（ＤＶＤ）、フラッシュメモリ、光磁気ディスク、又は電子データ（例えば、命令を含む。）を記憶可能な他のタイプの不揮発性の機械読取可能な媒体が含まれうる。
【００３４】
図８は、本発明の実施例に従ってポイント・ツー・ポイント（ＰｔＰ）構成で配置されているコンピュータシステム８００を表す。具体的に、図８は、プロセッサ、メモリ及び入出力デバイスが多数のポイント・ツー・ポイントインターフェースによって相互接続されているシステムを示す。図１〜７を参照して論じられている動作は、システム８００の１又はそれ以上のコンポーネントによって実行されてよい。
【００３５】
図８に表されているように、システム８００は複数のプロセッサを有してよい。そのうちの２つのプロセッサ８０２及び８０４のみが明りょうさのために示されている。プロセッサ８０２及び８０４は夫々、メモリ８１０及び８１２との通信を可能にする局所メモリコントローラハブ（ＭＣＨ）８０６及び８０８を有してよい。メモリ８１０及び８１２は、例えば、図７のメモリ７１２を参照して論じられたもののような様々なデータを記憶してよい。図８に示されるように、プロセッサ８０２及び８０４は、図７を参照して論じられた１又はそれ以上のキャッシュを更に有してよい。
【００３６】
実施例で、プロセッサ８０２及び８０４は、図７を参照して論じられたプロセッサ７０２のうちの１つであってよい。プロセッサ８０２及び８０４は夫々、ＰｔＰインターフェース回路８１６及び８１８を用いてＰｔＰインターフェース８１４を介してお互いにデータを交換することができる。また、プロセッサ８０２及び８０４は夫々、ＰｔＰインターフェース回路８２６、８２８、８３０及び８３２を用いて個々のＰｔＰインターフェース８２２及び８２４を介してチップセット８２０とデータを交換することができる。チップセット８２０は、更に、例えばＰｔＰインターフェース回路８３７を用いて、高性能グラフィックインターフェース８３６を介して高性能グラフィック回路８３４とデータを交換することができる。
【００３７】
少なくとも１つの実施形態において、図１〜７を参照して論じられた１又はそれ以上の動作は、プロセッサ８０２若しくは８０４及び／又は例えばバス８４０を介して通信するもののようなシステム８００の他のコンポーネントによって、実行されてよい。なお、本発明の他の実施形態は、図８のシステム８００内の他の回路、ロジックユニット、又はデバイスに存在してよい。更に、本発明の他の実施形態は、図８に表されている幾つかの回路、ロジックユニット、又はデバイスにわたって分配されてよい。
【００３８】
チップセット８２０は、ＰｔＰインターフェース回路８４１を用いてバス８４０と通信を行ってよい。バス８４０は、例えばバスブリッジ８４２及びＩ／Ｏデバイス８４３等の、バス８４０と通信を行う１又はそれ以上のデバイスを有してよい。バス８４４を介して、バスブリッジ８４２は、例えば、キーボード／マウス８４５、通信デバイス８４６（例えば、モデム、ネットワークインターフェースデバイス、又はコンピュータネットワーク１０４と通信を行う他の通信デバイス）、オーディオＩ／Ｏデバイス８４７、及び／又はデータ記憶デバイス８４８等の他のデバイスと通信を行ってよい。データ記憶デバイス８４８は、プロセッサ８０２及び／又は８０４によって実行されるコード８４９を記憶してよい。
【００３９】
本発明の様々な実施形態で、例えば図１〜８を参照して本願で論じられている動作は、ハードウェア（例えば、回路）、ソフトウェア、ファームウェア、マイクロコード、又はそれらの結合として実施されてよく、それらは、例えば、本願で論じられている処理を実行するようコンピュータをプログラムするために用いられる命令（又はソフトウェアプロシージャ）が記憶されている機械読取可能な又はコンピュータ読取可能な媒体を含め、コンピュータプログラムプロダクトとして提供されてよい。また、用語「ロジック」には、一例として、ソフトウェア、ハードウェア、又はソフトウェア及びハードウェアの組合せが含まれうる。機械読取可能な媒体には、本願で論じられているような記憶デバイスが含まれうる。更に、かかるコンピュータ読取可能な媒体は、コンピュータプログラムプロダクトとしてダウンロードされてよく、このとき、プログラムは、通信リンク（例えば、バス、モデム、又はネットワーク接続）を介して搬送波又は他の伝播媒体で具現されるデータ信号を用いて、遠隔のコンピュータ（例えば、サーバ）から要求しているコンピュータへ転送されてよい。
【００４０】
「１つの実施形態」又は「実施例」との明細書中の言及は、その実施形態に関連して記載される特定の機能、構成又は特徴が少なくとも実施に含まれうることを意味する。明細書中の様々な場所に現れる「１つの実施形態において」との言い回しは、すべて同じ実施形態を参照していることもあれば、そうでないこともある。
【００４１】
また、明細書及び特許請求の範囲で、語「結合され」及び「接続され」は、それらの活用形とともに、使用されてよい。本発明の幾つかの実施形態で、「接続され」は、２又はそれ以上の要素が物理的に直接に又は電気的にお互いに接していることを示すために使用される。「結合され」は、２又はそれ以上の要素が物理的に直接に又は電気的に接していることを示すために使用される。なお、「結合され」は、また、２又はそれ以上の要素が直接にお互いに接していないが、依然としてお互いと協働又は相互作用することも意味する。
【００４２】
このように、本発明の実施形態が構造上の特徴及び／又は方法論的な動作に文言上依存して記載されてきたが、当然に、請求対象は記載されている具体的な特徴又は動作に限られない。むしろ、具体的な特徴及び動作は、請求対象を実施する単純な形態として開示されている。
【図１】
2011503731.tif 000007
【図２】
2011503731.tif 000008
【図３】
2011503731.tif 000009
【図４】
2011503731.tif 000010
【図５】
2011503731.tif 000011
【図６】
2011503731.tif 000012
【図７】
2011503731.tif 000013
【図８】
2011503731.tif 000014
【国際調査報告】
2011503731.tif 000015
2011503731.tif 000016