(57)【要約】      （修正有）【課題】オンライン・イベント要求を受信する。【解決手段】一実施例では、該オンライン・イベントによって影響されるノードが判定され、ソース・ノードが静止される。ARTが判定ノード毎に格納され、該ノードは該ARTを用いるよう指示される。該静止化ソース・ノードは更に、静止状態を終了するよう指示される。本発明の代替的実施例は複数仮想ネットワークをサポートするマルチプロセッサ・システムに適用可能である。1次ルーティングに用いられない仮想ネットワークに特有なARTが判定ノード毎に格納される。該1次ルーティング・テーブルは、各ソース・ノードが指示され、該ARTを用いることが開始されるまで、該ARTと同時に用いられる。【選択図】  図３
2006012112.tif 000002
【特許請求の範囲】
【請求項１】
方法であって：
オンライン・イベントに対する要求を受信する工程；
を有し、該オンライン・イベントは、複数ノード・システムで、該システムにおいてメッセージが1次ルーティング・テーブルを用いてルーティングされるもの、のノードに関するものであり；
更に、該複数ノード・システムのノードで、該オンライン・イベントによって影響されるもの、毎に代替ルーティング・テーブルを動的に実施する工程；
を有することを特徴とする方法。
【請求項２】
請求項１記載の方法であって、該複数ノード・システムのノードで、該オンライン・イベントによって影響されるもの、毎に代替ルーティング・テーブルを実施する工程が：
該影響されるノードのうちのソース・ノード全てを静止させる工程；
該影響されるノード毎に該代替ルーティング・テーブルを格納する工程；
該代替ルーティング・テーブルを用いるよう該影響されるノード各々に指示する工程；及び
静止状態を終了するよう該静止させるノード各々に指示する工程；
を有することを特徴とする方法。
【請求項３】
請求項２記載の方法であって：
該影響されるノードのうちのソース・ノード全てを静止させる工程；及び
該影響されるノード毎に該代替ルーティング・テーブルを格納する工程；
が同時に開始されることを特徴とする方法。
【請求項４】
請求項２記載の方法であって、該ソース・ノード各々が、プロセッサ、メモリ・コントローラ、入出力ハブ、チップセット、及び、該プロセッサ、メモリ・コントローラ、入出力ハブ、チップセット、の一体化された組み合わせ、から成る群から選定されるノード・エージェントを含むことを特徴とする方法。
【請求項５】
請求項２記載の方法であって、更に：
該１次ルーティング・テーブルを該代替ルーティング・テーブルとして該オンライン・イベントに後続するオンライン・イベントに備えて再指定する工程；及び
該複数ノード・システムが該後続するオンライン・イベントを受信する用意ができた旨の表示を備える工程；
を有することを特徴とする方法。
【請求項６】
請求項４記載の方法であって、該ノード・エージェント各々が該1次ルーティング・テーブル及び該代替ルーティング・テーブルを格納することを特徴とする方法。
【請求項７】
請求項２記載の方法であって、該影響されるノード毎に該代替ルーティング・テーブルを格納する工程が：
該影響されるノードのうちのソース・ノード全てを静止させる工程；
の完了を検出することによって開始されることを特徴とする方法。
【請求項８】
請求項７記載の方法であって、更に：
前記ノード毎の該1次ルーティング・テーブルを該代替ルーティング・テーブルによって、該影響されるノードのうちのソース・ノード全てを静止させる工程の完了によって、上書きする工程；
を有することを特徴とする方法。
【請求項９】
請求項８記載の方法であって：
該上書きする工程；
は、該ノード毎に該ソース・ノード各々に対するルーティングが可能なような、特定の配列で行われることを特徴とする方法。
【請求項１０】
請求項１記載の方法であって、該複数ノード・システムは複数仮想ネットワークをサポートし、該複数仮想ネットワークの少なくとも１つは該複数ノード・システムのトポロジをサポートすることを要せず、1次ルーティングは該少なくとも１つの仮想ネットワーク上では行われないことを特徴とする方法。
【請求項１１】
請求項１０記載の方法であって、該複数ノード・システムのノードで、該オンライン・イベントによって影響されるもの、毎に代替ルーティング・テーブルを動的に実施する工程が：
対象パーティション及び任意の影響されるパーティションのノードを判定する工程；及び
該判定ノード毎に該代替ルーティング・テーブルを格納する工程；
を有し；
該代替ルーティング・テーブルは該少なくとも１つの仮想ネットワークに特有なものであり；
更に、該代替ルーティング・テーブルを用いるよう該判定ノード各々に指示する工程；
を有することを特徴とする方法。
【請求項１２】
請求項１１記載の方法であって、更に：
該対象パーティションを静止させる工程；及び
該判定ノード全てが該代替ルーティング・テーブルを用いていることを検証し、該1次ルーティング・テーブルが何れの該ノードによっても用いられていないことを検証する工程；及び
該オンライン・イベント要求を承認する工程；
を有することを特徴とする方法。
【請求項１３】
請求項１２記載の方法であって、該1次ルーティング・テーブルが何れの該ノードによっても用いられていないことを検証する工程が：
少なくとも該複数ノード・システムの最長取引持続期間に等しい期間中は待つことによって行われることを特徴とする方法。
【請求項１４】
製造物品であって：
関連するデータを有する、マシンによってアクセス可能な媒体：
を有し、該データは、アクセスされた場合、該マシンが方法を行うことを結果として生じ、該方法が：
オンライン・イベントに対する要求を受信する工程；
を有し、該オンライン・イベントは、複数パーティションの複数ノード・システムで、該システムにおいてメッセージが1次ルーティング・テーブルを用いてルーティングされるもの、の対象パーティションのノードに関するものであり；
更に、該対象パーティション及び、任意の、該オンライン・イベントによって影響されるパーティション、のソース・ノード全てを静止させる工程；
該対象パーティション及び該影響されるパーティションのノード毎に代替ルーティング・テーブルを格納する工程；及び
該代替ルーティング・テーブルを用いるよう該代替ルーティング・テーブルが格納された該ノード各々に指示する工程；
を有することを特徴とする製造物品。
【請求項１５】
請求項１４記載の製造物品であって、該マシンによってアクセス可能な媒体が更に、データを含み、該データは、アクセスされた場合、該マシンが：
静止状態を終了するよう該静止させた該ノード各々に指示する工程；
を有する方法を実行する結果を生じることを特徴とする製造物品。
【請求項１６】
請求項１４記載の製造物品であって、該マシンによってアクセス可能な媒体が読み取り専用メモリ装置であることを特徴とする製造物品。
【請求項１７】
請求項１４記載の製造物品であって：
該影響される該ソース・ノード全てを静止させる工程；及び
該影響されるノード毎に該代替ルーティング・テーブルを格納する工程；
が同時に開始されることを特徴とする製造物品。
【請求項１８】
請求項１５記載の製造物品であって、更に：
該１次ルーティング・テーブルを該代替ルーティング・テーブルとして該オンライン・イベントに後続するオンライン・イベントに備えて再指定する工程；及び
該複数ノード・システムが該後続するオンライン・イベントを受信する用意ができた旨の表示を備える工程；
を有することを特徴とする製造物品。
【請求項１９】
請求項１８記載の製造物品であって、ノード・エージェント各々が該1次ルーティング・テーブル及び該代替ルーティング・テーブルを格納することを特徴とする製造物品。
【請求項２０】
請求項１５記載の製造物品であって、該影響されるノード毎に該代替ルーティング・テーブルを格納する工程が：
該影響されるソース・ノード全てを静止させる工程；
の完了を検出することによって開始されることを特徴とする製造物品。
【請求項２１】
請求項２０記載の製造物品であって、該マシンによってアクセス可能な媒体が更にデータを含み、該データは、アクセスされた場合に、該マシンが：
前記ノード毎の該1次ルーティング・テーブルを該代替ルーティング・テーブルによって、該影響されるソース・ノード全てを静止させる工程の完了によって、上書きする工程；
を有する方法を行うことを結果として生じることを特徴とする製造物品。
【請求項２２】
製造物品であって：
関連するデータを有する、マシンによってアクセス可能な媒体；
を有し、該データは、アクセスされた場合、該マシンが方法を行うことを結果として生じ、該方法は：
オンライン・イベントに対する要求を受信する工程；
を有し、該オンライン・イベントは、複数パーティションの複数ノード・システムで、該システムにおいてメッセージが1次ルーティング・テーブルを用いてルーティングされるもの、の対象パーティションのノードに関するものであり、該複数ノード・システムは複数仮想ネットワークをサポートし、該仮想ネットワークの少なくとも１つは該複数ノード・システムのトポロジをサポートすることを要せず、1次ルーティングが該少なくとも１つの仮想ネットワーク上では行われないものであり；
更に、該対象パーティション及び、任意の、該オンライン・イベントによって影響されるパーティション、のノードを判定する工程；及び 
該判定ノード毎に該代替ルーティング・テーブルを格納する工程；
を有し；
該代替ルーティング・テーブルは該少なくとも１つの仮想ネットワークに特有なものであり；
更に、該代替ルーティング・テーブルを用いるよう該判定ノード各々に指示する工程；
を有することを特徴とする製造物品。
【請求項２３】
請求項２２記載の製造物品であって、該マシンによってアクセス可能な媒体が更にデータを含み、該データがアクセスされた場合には、該マシンが方法を行うことを結果として生じ、該方法が：
該対象パーティションを静止させる工程；
該判定ノード全てが該代替ルーティング・テーブルを用いていることを検証し、該1次ルーティング・テーブルが何れの該ノードによっても用いられていないことを検証する工程；及び
該オンライン・イベント要求を承認する工程；
を有することを特徴とする製造物品。
【請求項２４】
請求項２３記載の製造物品であって、該1次ルーティング・テーブルが何れの該ノードによっても用いられていないことを検証する工程が：
少なくとも該複数ノード・システムの最長取引持続期間に等しい期間中は待つことによって行われることを特徴とする製造物品。
【請求項２５】
システムであって：
1つ又は複数のエージェントを有する複数パーティションにパーティション化された複数エージェント；
を有し、該エージェントは、共有相互接続で、該共有接続においてメッセージが1次ルーティング・テーブルを用いてルーティングされるもの、を有し；
更に、該エージェント各々に結合された相当するメモリ；
を有し、該メモリは命令を格納していて、該命令がプロセッサによって実行された場合には、該プロセッサに方法を行わせるものであり、該方法は：
オンライン・イベントに対する要求を受信する工程；
を有し、該オンライン・イベントは、複数ノード・システムのエージェント・ノードの１つに関するものであり；
更に、該エージェント・ノードで、該オンライン・イベントによって影響されるもの、毎に代替ルーティング・テーブルを動的に実施する工程；
を有し、該代替ルーティング・テーブルが該オンライン・イベントに相当する変更システム・トポロジを反映することを特徴とするシステム。
【請求項２６】
請求項２５記載のシステムであって、該エージェント・ノードで、該オンライン・イベントによって影響されるもの、毎に代替ルーティング・テーブルを実施する工程が：
該影響されるノードのうちのソース・ノード全てを静止させる工程；
該影響されるノード毎に該代替ルーティング・テーブルを格納する工程；
該代替ルーティング・テーブルを用いるよう該影響されるノード各々に指示する工程；及び
静止状態を終了するよう該静止させたノード各々に指示する工程；
を有することを特徴とするシステム。
【請求項２７】
請求項２６記載のシステムであって：
該影響されるノードのうちのソース・ノード全てを静止させる工程；及び
該影響されるノード毎に該代替ルーティング・テーブルを格納する工程；
が同時に開始されることを特徴とするシステム。
【請求項２８】
請求項２６記載のシステムであって、該影響されるノード毎に該代替ルーティング・テーブルを格納する工程が該影響されるノードのうちのソース・ノード全てを静止させる工程の完了を検出することによって開始され；
更に、該影響されるノードのうちのソース・ノード全てを静止させる工程の完了によって、該代替ルーティング・テーブルによって、前記ノード毎の該1次ルーティング・テーブルを上書きする工程；
を有し、該上書きする工程は該ノード毎に、該ソース・ノードに対するルーティングが可能であるような特定の配列で、行われることを特徴とするシステム。
【請求項２９】
請求項２５記載のシステムであって、該複数ノード・システムは複数仮想ネットワークをサポートし、該仮想ネットワークの少なくとも１つは該複数ノード・システムのトポロジをサポートすることを要せず、1次ルーティングが該少なくとも１つの仮想ネットワーク上では行われないことを特徴とするシステム。
【請求項３０】
請求項２９記載のシステムであって、該エージェント・ノードで、該オンライン・イベントによって影響されるもの、毎に代替ルーティング・テーブルを実施する工程が：
対象パーティション及び、任意の、該オンライン・イベントによって影響される、パーティションのノードを判定する工程；及び 
該判定ノード毎に該代替ルーティング・テーブルを格納する工程；
を有し；
該代替ルーティング・テーブルは該少なくとも１つの仮想ネットワークに特有なものであり；
更に、該代替ルーティング・テーブルを用いるよう該判定ノード各々に指示する工程；
を有することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、パーティション化マルチプロセッサ・システムに関し、特に、そのようなシステムのパーティション化を行う方法に関する。
【背景技術】
【０００２】
データ処理に対する要求の増大にともなって、大容量でかつ複雑なアプリケーションが開発されている。マルチプロセッサ・システム（MPS）はそのようなアプリケーションを迅速かつ効率的に実行するよう開発されている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
MPSは一般的に、バス・ベースの相互接続手法を用いて実施し得る。図１は先行技術によるバス・ベースのMPSを示す。システム１００は、図１に表すように、プロセッサ105a乃至105dを含む。該プロセッサは共通（共有）バス１１０を通じてチップセット１１５に接続される。該チップセットは同様に、メモリ１２０に接続される。該バス・ベースの相互接続手法は性能、スケーラビリティ、及び信頼性の面で明確な欠点を有する。そのようなシステムの性能は共有バスの長さによって悪化する。すなわち、プロセッサ間の電気接続を備える電線の長さはMPSにおけるプロセッサの数によってかわってくる。プロセッサの数が大きいほどプロセッサを動作し得る有効速度を低減し、電気接続が長いほど、該速度を低減する。バス・ベースのシステムはスケーラブルなものでないが、それはプロセッサを多く追加する場合に共有バスが障害となるからである。更に、プロセッサの全てが共通バスを共有することは、何らかの理由でバスの障害が発生する場合、プロセッサは全て動作不能になり、このバス・ベースのデザインによって信頼性が問題となることを表す。
【０００４】
これらの欠点を解消するよう、ポイント・ツー・ポイントで、リンク・ベースの相互接続手法が開発された。そのようなシステムの各ノードはエージェント（例えば、プロセッサ、メモリ・コントローラ、I/Oハブ部品、チップセット、など）及び接続ノード間でメッセージを通信し合うルータを含む。各ノードは、該システムの残りのノードの部分集合のみに直接接続し得る。一般に、そのようなシステムはシステム全体に対して単一のマネジャを有するが、そのリソースを論理的に独立したシステムにパーティション化することを可能にするので、例えば、8個のプロセッサを有するMPSについては、第１アプリケーションに2個のプロセッサを用い得るものであり、2個の別のプロセッサを第２アプリケーションに用い得るものであり、残りの4個のプロセッサを第３アプリケーションに用い得る。
【０００５】
そのようなシステムは性能、スケーラビティ、及び信頼性を向上させるものであるが、相互接続マネジメント・プロトコルの複雑化という犠牲を払うものである。すなわち、マルチ・プロセッサは独立して動作するので、単一同期点を有するバス・ベース手法よりも同期化が複雑になる。バス・ベース手法の欠点の多くを克服する一方、リンク・ベースの実施は図２及び図３を参照することによって示すような独自の欠点をもたらす。
【０００６】
図２は先行技術によるポイント・ツー・ポイント相互接続手法を用いて実施されたMPSを示す。図２に表すMPS２００は、エージェント0乃至７を含み、その各々は、例えば、統合プロセッサ、メモリ・コントローラ、及びルータを含み得る。図2に表すように、エージェント0乃至7はポイント・ツー・ポイント相互接続手法を用いて相互接続される。エージェント0乃至7は２つのパーティション、すなわちパーティション２０５でエージェント0、2、5、並びに7を含むもの、及びパーティション210で、エージェント１、３、４、並びに６を含むもの、にパーティション化される。そのような論理的パーティション化は、リソース割り当てに関する柔軟性を備えるが、性能の妨げにもなり得る。そのようなパーティション化では、パーティションからのノードの追加又は削除を行うことは、対象パーティション（追加ノード又は削除ノードを有するパーティション）のリセットを行う、すなわち静止させる、ことを要するのみならず、システムの残りも静止させることを要する。例えば、パーティション２０５のエージェント２とエージェント７との間での通信が行われる取引はパーティション２１０のエージェント（例えば、エージェント３）を通じてルーティングすることを要する。したがって、パーティション２１０におけるエージェントに障害が発生したか、さもなければ該エージェントがシステムから削除され、パーティション２１０を静止させることを要する場合、パーティション２０５も、静止させることを要する。
【０００７】
高度な柔軟性（柔軟なルート・スルー）を備えるシステム・トポロジでは、パーティションにノードを追加するかパーティションからノードを削除することはシステム全体を静止させることを要する。システム全体を静止させるのに要する時間はシステム・タイムアウトを不都合に左右しないように、可能な限り小さいものであることが最適である。
【０００８】
MPS全体を静止させることを避けるために、特定のパーティションのエージェント間の通信が異なるパーティションのエージェントを通じてルーティングされないようにシステム・トポロジを条件付けし得る。
【０００９】
図２Aは先行技術による条件付トポロジを有するポイント・ツー・ポイント相互接続手法を用いて実施されたMPSを示す。図２に表すように、エージェント0乃至7は２つのパーティション、すなわちパーティション２０５Aでエージェント1、3、5、並びに7を含むもの、及びパーティション210Aで、エージェント0、2、４、並びに６を含むもの、にパーティション化される。一方のパーティションのエージェント間で通信が行われる取引は他方のパーティションのエージェントを通じてルーティングすることを要しない。したがって、パーティションにノードを追加するかパーティションからノードを削除することは該対象パーティションのみを静止させることを要する、すなわち、トポロジ条件は、静止化を要する影響されるパーティションがないことを実現する。そのような条件は、しかしながら、システムの柔軟性を制限し、再パーティション化（パーティション化）及びリソース割り当てにおける柔軟性を備えるものでない。
【課題を解決するための手段】
【００１０】
本発明は、以下の明細書及び添付図面で、本発明の実施例を示すのに用いられるもの、を参照することによって最も良く理解し得る。
【発明を実施するための最良の形態】
【００１１】
以下の明細書では、数々の特定の詳細を示す。しかしながら、本発明の実施例はこれらの特定の詳細なしで実施し得ることが分かる。別の場合には、本明細書が分かりにくくならないように、周知の回路、構造及び手法は詳細には表していない。
【００１２】
本明細書の原文を通した「one  embodiment」又は「an  embodiment」への参照は、実施例に関して表す特定の構成、構造、又は特性は本発明の少なくとも１つの実施例に含まれることを表す。したがって、本明細書の原文を通した種々の箇所において存在する「in  one  embodiment」又は「in  an  embodiment」の句は必ずしも全てが同じ実施例を参照しているとは限らないものである。更に、該特定の構成、構造、又は特性は1つ以上の実施例において如何なる適切な方法によっても組み合わせ得る。
【００１３】
更に、本発明の特徴は単一実施例の開示内容の構成全てよりも少ない構成において見出される。したがって、本特許請求の範囲記載の請求項は明示的に本明細書に組み入れられ、各請求項は本発明の別個の実施例として独立するものである。
【実施例】
【００１４】
一般に、ポイント・ツー・ポイント相互接続手法を用いて実施されたMPSにおけるメッセージ（例えば、パケット）のルーティングはルーティング・テーブルを用いることによって行われる。そのようなネットワークでは、メッセージはソース・ノードから、ゼロ(0)以上の中間ノードを通じて、宛て先ノードに進む。各メッセージは関連する宛て先ノードを含み、メッセージが中間ノードで受信された場合、ルーティング・アルゴリズムはルーティング・テーブルを参照して、次のリンクで、該リンク上で該メッセージをルーティングするもの、を判定する。本発明の一実施例によれば、1次ルーティング・テーブル（PRT）と代替ルーティング・テーブルとの両方がエージェント毎に生成され、プログラム化される。PRTはMPSの通常動作中のルーティング・テーブルである一方、ARTは動的パーティション化イベントすなわちオンライン・イベント（OLE）が発生によって用いられる。OLEはパーティションへのノードの追加又はパーティションからのノードの削除のことである。OLEの発生によってシステム・トポロジが変動する。システムのトポロジはOLEによって、ノードが削除された場合、ルーティング経路の一部は、ノード及びそれに関連するルータがシステムより削除されたので、もはや存在しないということで、変更される。同様に、ノードの追加によって追加のルーティング経路が利用可能になる。これが発生する場合、ルーティングはPRTからARTに切り替えられる、すなわち、ARTはその場合、PRTになる。
【００１５】
図３はMPSが本発明の一実施例によって動的にパーティション化される方法を示す。方法３００は、図３に表し、OLE要求が受信される工程３０５から始まる。すなわち、OLEが要求されている旨の通知が受信される。OLEはノードのオンライン削除とノードのオンライン追加との何れかであり得る。
【００１６】
工程３１０では、対象パーティションのノード、更には任意の影響されるパーティションのノード、がマネジメント・アプリケーションによって判定される（すなわち、マネジメント・アプリケーションが要求OLEによって影響されるノードを検出する。）。一実施例では、マネジメント・アプリケーションはファームウェアで実施される。一実施例では、影響されるパーティションは、ノードで、該ノードに対して削除ノードがコンポーネント経由の経路としての役割を果たしたもの、を有するパーティション（オンライン・ノード削除の場合）、更には、新たに設定されるルーティング経路に沿ってルーティングされるメッセージの通信を行い得るノードを有するパーティション（オンライン・ノード追加の場合）を含む。一般に、影響されるパーティションは対象パーティションを含み、ＯＬＥの発生が該パーティション内の任意のソース・宛て先対に対するルーティング経路の変更を結果として生じるパーティションとして定義される。ＯＬＥによって影響されるＭＰＳのパーティションはこのＭＰＳのパーティション全てよりも少ないことがあり得る。
【００１７】
工程３１５では、対象パーティション及び影響されるパーティションのソース・ノード全てが静止される。パーティションは、該パーティションの各ノードが取引の送出を停止する場合に、静止され、取引は2つのノードを接続する外部リンク上で識別できるメッセージとして定義される。静止されたパーティションは、取引を送出することを、マネジメント・アプリケーションによってその後、そのように指示された場合に、再開する。ソース・ノードは、例えば、プロセッサ又は入出力エージェント、のような、取引を生成するエージェントを有するノードを含む。一実施例では、ソース・ノードの静止化はマネジメント・アプリケーションによって通信が行われる特定の取引の実行によって行われる。代替的実施例では、ソース・ノードの静止化は、セントラル・エージェントがソース・ノード各々でフラッグを設定することによって行われる。本発明の一実施例では、各ソース・ノードは並列で静止される。例えば、各ノードはマネジメント・アプリケーションからの静止化取引を受信し、検査し、取引の通信を停止する。各ノードは更に、従前に通信が行われた要求取引の完了を待ち、該完了時点では、ノード・エージェントは静止化が完了したことを示す。
【００１８】
工程３２０で、ソース・ノードの静止化と同時に行われるもの、ではマネジメント・アプリケーションは判定ノード毎にＡＲＴを格納し始め、それは更に中間ルータの各リンクでのルーティング・テーブルを含む。代替的実施例では、中間ルータは特定ノードに関連するものでない。デッドロックを回避するよう、ノード・エージェントは、対象パーティション及び影響されるパーティションの全てのソース・ノードが静止化されるまでは、ＡＲＴを用いることを開始するものでない。
【００１９】
工程３２５では、静止化の完了によって、マネジメント・アプリケーションは判定ノード・エージェント各々に対してＡＲＴを用いることを開始するよう該ノード・エージェンに指示する特定の取引の通信を行う。一実施例では、マネジメント・アプリケーションは各静止化ノード・エージェントに表示子を設定し、その結果、該静止化ノードはそれらの通常の動作を、ＡＲＴを用いて、再開する。この時点で、ＯＬＥ要求を承認し得る。
【００２０】
工程３３０では、マネジメント・アプリケーションは各ソース・ノードに対して静止状態を終了してＡＲＴでここではＰＲＴとして表すものによって通常動作を再開するよう指示する、メッセージの通信を行う。
【００２１】
工程３３５では、元のＰＲＴはその後のＯＬＥに備えてＡＲＴとして再指定され、マネジメント・アプリケーションはＭＰＳがその後のＯＬＥ要求を受信する用意ができた旨が通知される。
【００２２】
図４は本発明の一実施例によって、図3を参照して表す、方法３００の工程のタイムラインを示す。本明細書を通して、時間は、必ずしも一定の縮小比にあるものでなく、単に、別個のイベントの経時的経過を示すことを表す。図４のタイムライン４００に表すように、OLE要求が時間t1で受信され、時間t1と時間t2との間に、ファームウェアが対象パーティションと任意の影響されるパーティションのノードを判定し、時間t2と時間t3との間に、各判定ソース・ノードを静止させることを要求するメッセージを送出する。該ソース・ノードは時間t4と時間t5との間に静止される。全てのルート・スルーは、元のPRTを用いて完了し、宛て先に達する。一実施例では、静止化期間の完了はマネジメント・アプリケーションからの静止化メッセージに応じて各ソース・ノードによって送出される取引によって通知される。時間t4と時間t6との間に、要求OLEによって変更されたトポロジに対するARTが格納される。図４に表すように、ARTの格納は、一般に、静止化期間と同時に、開始され、行われることによって、再パーティション化時間を削減し、ソース・ノードの静止化に要する時間よりも（図に表すように）多い場合もあれば、少ない場合もある。その後の時間t7では、マネジメント・アプリケーションは静止化とART格納との完了を検出する。マネジメント・アプリケーションは更に、時間t8と時間t9との間に、ARTを用いるよう全てのノードに指示する。時間t9では、ARTを用いるよう全てのノードが指示された場合に、OLE要求が承認される。時間t10では、静止化ノードは静止状態を終了し、ARTを用いて通常の動作を開始するよう指示される。
【００２３】
図4に表すように、元のPRTを用いて通信が行われた取引はARTを用いる前に停止され、完了されるので、PRTを用いた取引とARTを用いた取引とは時間上、お互いに重なり合わない。
【００２４】
該実施例によれば、図３及び図４を参照して上記に表すように、各エージェントはPRTとARTとの両方を格納するので、両方のテーブルに対するルーティング・テーブルを格納する容量を要する。これらのテーブルはノード毎に用いられ、かつ、リンク毎に用いられる。PRTとARTとの両方を格納することは集積回路部品上に余分な領域を要する。本発明の代替的実施例は所要格納容量を、PRTとARTとの両方を格納する必要性を、静止状態が完了することを待って、PRTをARTによって上書きすることによって、なくすことによって、削減する。すなわち、ARTはPRTが格納されたチップ上の同一空間に格納され、所要ルーティング・テーブル格納容量を削減する。ルーティング・テーブル格納容量のこのような削減は、性能と計算量を犠牲にして獲得される。すなわち、ARTの格納はソース・ノードの静止化とはもはや同時に行われることが可能でないが、該静止化の完了後でしか開始しないので、動的パーティション化は長時間を要することになる。更に、以下に詳細に記載するように、ルーティング・アルゴリズムの計算量が増大する。
【００２５】
図４Aは本発明の一実施例によってMPSの動的パーティション化を行う方法のタイムラインを示す。図４Aに示す実施例では、静止化はARTを格納する前に完了する。タイムライン４００Aは図４のタイムライン４００と同様に進行する、すなわち、OLE要求が時間t1で受信され、時間t1と時間t2との間に、ファームウェアが対象パーティションと任意の影響されるパーティションのノードを判定し、時間t2と時間t3との間に、各判定ソース・ノードを静止させることを要求するメッセージを送出し、該ソース・ノードは更に、時間t4と時間t5との間に静止される。この時点では、タイムライン４００Ａはタイムライン４００と異なる、すなわちＡＲＴの格納はソース・ノードの静止化とは同時には、開始されず、行われない。タイムライン４００Ａに表すように、ＡＲＴの格納は該アプリケーションが静止化の完了を時間t6で検出した後でのみ開始される。時間t7と時間t8との間に要求OLEによって変更されたトポロジに対するARTが格納される。時間t9では、マネジメント・アプリケーションはART格納の完了を検出する。マネジメント・アプリケーションは更に、時間t10と時間t11との間に、ARTを用いるよう全てのノードに指示する。時間t11では、ARTを用いるよう全てのノードが指示された場合に、OLE要求が承認される。時間t12では、静止化ノードは静止状態を終了し、ARTを用いて通常の動作を開始するよう指示される。
【００２６】
上記のように、ルーティング・アルゴリズムの計算量は、各ノードでPRTがARTによって上書きされる方法によって増大する。例えば、対象パーティション及び任意の影響されるパーティションにおけるノードのPRTが更新の経過とともに削除されるので、更新が特定の配列で行われない限り、ソース・エージェントに対する経路を設定することが可能でないことがあり得る。一実施例によれば、マネジメント・アプリケーションは対象パーティション及び任意の影響されるパーティションにおけるノード・エージェントの全てのうちで線形配列を設定する。各ノードのPRTはその場合、該設定配列で、最も遠いものから開始し、最も近いもので終了するもの、によって、ARTによる上書き（更新）が行われる。このようにすれば、該システムは、PRTが利用可能でない（すなわち、もはや利用することが可能でない）経路に沿って静止化ノードによって送出された完了メッセージの通信を試行しないものである。
【００２７】
複数仮想ネットワークの実施例。仮想ネットワーク（VN）は、仮想チャネル群であり、該群に沿って如何なる、ノードからの、取引の通信をも行い得る。1つ以上のVNがデッドロックのないルーティングに、システム・トポロジに応じて、必要になり得る。すなわち、複数VNをサポートするシステムでは、複雑なシステム・トポロジを可能にするルーティング・アルゴリズムが考えられる。例えば、リング・ベースのトポロジで、平均ルーティング距離、更には、したがって平均ルーティング時間、を削減するもの、は少なくとも２つのVNを要する。
【００２８】
上記の本発明の実施例では、両方のPRTとARTとに同じVNが用いられ、PRTとARTとの両方によって引き起こされるルーティング・アルゴリズムに対してデッドロックのないルーティングを備えるには1つの仮想ネットワークで十分であるものとする。
【００２９】
本発明の代替的実施例は複数VNで、そのうちの少なくとも１つのVNはシステム・トポロジをサポートするのに必要でないもの、をサポートするシステム上で実施し得る。そのような実施例では、動的パーティション化/再パーティション化を、影響されるパーティションを静止させることなく、VN全てよりも少ないVNにルーティングを制限し、更に、OLE要求の通知によって、該ルーティングを未使用VNに切り替えることによって、行うことが考えられる。
【００３０】
図５はMPSが本発明の一実施例によって動的にパーティション化される方法を示す。図５に表す方法５００は、工程５０５で、PRTルーティングを複数VNシステムのVNの全てよりも少ないVNに制限するもの、から始まる。例えば、2つのVN、VN0、VN1、をサポートするシステムでは、PRTルーティングはVN0に制限される。
【００３１】
工程５１０では、OLE要求が受信される。OLE要求は、OLEに応じて受信され、ノードのオンライン削除又はノードのオンライン追加であり得る。
【００３２】
工程５１５では、対象パーティションのノード、更には、任意の影響されるパーティションのノード、がマネジメント・アプリケーションによって判定される。
【００３３】
工程５２０では、PRTルーティングに使用されていないVN（例えば、VN1）に特有のARTが判定ノード毎に格納され、該ARTは更に、中間ルータのリンク毎でのルーティング・テーブルを含む。この時点で、PRTルーティングに使用される1つ以上のVNにおけるトラフィックの全ては通常通りに進む。
【００３４】
工程５２５では、マネジメント・アプリケーションはソース・ノード各々に対して、ARTを用いることを開始するようノード・エージェントに指示する特定の取引の通信を行う。一実施例では、マネジメント・アプリケーションは各ノード・エージェントの設定空間においてアドレス指定された制御及びステータスのレジスタを設定する。この時点では、ＯＬＥ要求を承認し得る。
【００３５】
工程５３０では、ＡＲＴを用いることを開始するよう全てのソース・ノード・エージェントに指示することによって、マネジメント・アプリケーションは、全ての判定ノードがＡＲＴを用いることを検証し、ＰＲＴはもはや用いられていないことを検証する。対象パーティションは更に、ＰＲＴルーティング（例えば、VN0）を備えるＶＮに対して静止させ得る。一実施例では、全ての判定ノードがARTを用いていること及びPRTはもはや用いられていないことを検証することは、マネジメント・アプリケーションがソース・ノード各々に対して特定の取引（例えば、「同期化」取引）を送出することによって行い得る。代替的実施例では、該検証はセントラル・エージェントがソース・ノード各々でフラッグをリセットすることによって行い得る。各判定ノードからのこの取引に対する受信通知の受信は、全ての判定ノードがARTを用いており、PRTはもはや用いられていないことを検証する。代替的実施例では、検証は少なくともMPSの最長取引存続期間に等しい期間中、マネジメント・アプリケーションが待つことによって行われる。該期間は、その後のOLE要求を承認し得る時点を判定するのに用いられ、したがって、極めて柔軟である。
【００３６】
図６は、本発明の一実施例による、図５を参照して表す、方法５００の工程のタイムラインを示す。図６のタイムライン６００に表すように、OLE要求が時間t1で受信される。
上記のように、1次ルーティングは、OLE要求を受信する前は、複数VNシステムのVNの全てよりも少ないVNに制限される。時間t1と時間t2との間に、マネジメント・アプリケーションは対象パーティション及び任意の影響されるパーティションのノードを判定し、時間t2と時間t3との間に、マネジメント・アプリケーションは要求OLEによって変更されたトポロジに対するARTを格納する。該ARTは1次ルーティングに用いられていないVNに特有のものである。時間t4では、マネジメント・アプリケーションは、ARTを用い、PRTを用いることを停止するようソース・ノードに指示することを開始する。ARTを用い、PRTを用いることを停止するようソース・ノードに指示することは、時間t4と時間t5との間に及び、時間t5では全てのソース・ノードがARTを用いることを開始する。その後の時間t6では、マネジメント・アプリケーションは静止化及びART格納の完了を検出する。マネジメント・アプリケーションは同期化取引を全てのソース・ノードに送出する。同期化取引を完了後か、代替として、該システムの最大取引存続時間後の、時間t7に、OLE要求が承認される。この時点では、全てのノードが全ての要求に対してARTを用い、PRTはもはや用いられない。
【００３７】
図6に表すように、ソースと宛て先との間で２つのルーティング経路、PRTルーティング経路及びARTルーティング経路、が存在することが考えられる期間（時間t4から時間t7までの間）が存在する。そのような状態は相互接続デッドロックにつながり得る。本発明の一実施例では、元のトポロジが特定の、デッドロックのないVN（又はデッドロックのないVN群）を用い、OLEから結果として生じる、変更トポロジが別の、デッドロックのないVN（又はデッドロックのないVN群）を用いるように、ルーティングが条件付けされる。追加として、又は、代替として、更に、PRTルーティング経路とARTルーティング経路との間での中間スイッチングが可能でないように、ルーティングが条件付けされる。すなわち、取引メッセージはVNで、該取引メッセージが元々、その経路を開始したもの、上にとどまるように、ルーティングが条件付けされる。
【００３８】
一般事項。本発明の実施例はMPSを動的にパーティション化する方法及びシステムを備える。本発明の代替的実施例は任意の数のエージェントを有し、2つ以上のパーティションを実施する適用可能なMPSである。
【００３９】
本発明の実施例は、種々の工程で、該工程の多くをそれらの最も基本的な形態で表すもの、を有する方法を含むが、工程は本発明の基本的な範囲から逸脱することなく該方法の何れかに追加するか、該方法から削除することが可能である。本発明の種々の実施例の該工程はハードウェア部品によって実行し得るか、上記のような、マシンによって実行可能な命令によって実施し得る。代替として、該工程はハードウェアとソフトウェアとの組み合わせによって行い得る。本発明の実施例はコンピュータ・プログラム・プロダクトで、マシンによってアクセス可能な媒体で、コンピュータ（又は別の電子装置）をプログラム化して上記の本発明の実施例による方法を実行するのに用い得る命令を該媒体上に格納させたもの、を含み得るもの、として備え得る。
【００４０】
マシンによってアクセス可能な媒体は、マシン（例えば、コンピュータ、ネットワーク装置、携帯情報端末、製造ツール、1つ以上のプロセッサ群を有する任意の装置、など）によってアクセス可能な形式において情報を備える（すなわち、格納及び/又は伝送を行う）如何なる機構をも含む。例えば、マシンによってアクセス可能な媒体は：記録可能/非記録可能媒体（例えば、読み取り専用メモリ（ROM）、ランダム・アクセス・メモリ（RAM）；磁気ディスク記憶媒体、光記憶媒体、フラッシュ・メモリ装置、など）、更には、電気的、光学的、音響的、又は別の形式の伝搬信号（例えば、搬送波、赤外線信号、ディジタル信号、など）；などを含む。
【００４１】
本発明はいくつかの実施例によって記載したが、当業者は本発明が該記載実施例に限定されるものでないが、本特許請求の範囲の趣旨並びに範囲の範囲内に収まる修正及び変更によって実施し得ることを認識するものである。本明細書はしたがって、限定的なものではなく、例示的なものとして解されるものである。
【図面の簡単な説明】
【００４２】
【図１】先行技術によるバス・ベースのMPSを示す図である。
【図２】先行技術によるポイント・ツー・ポイント相互接続手法を用いて実施されるMPSを示す図である。
【図２Ａ】先行技術による条件付トポロジを有するポイント・ツー・ポイント相互接続手法を用いて実施されるMPSを示す図である。
【図３】本発明の一実施例によってMPSを動的にパーティション化する方法を示す図である。
【図４】本発明の一実施例によって図３を参照して表す工程のタイムラインを示す図である。
【図４Ａ】本発明の一実施例によってMPSの動的パーティション化を行う方法のタイムラインを示す図である。
【図５】本発明の一実施例によってMPSを動的にパーティション化する方法を示す図である。
【図６】本発明の一実施例によって図５を参照して表す工程のタイムラインを示す図である。
【符号の説明】
【００４３】
0  エージェント
1  エージェント
2  エージェント
3  エージェント
4  エージェント
5  エージェント
6  エージェント
7  エージェント
１００  システム
105a  プロセッサ
105b  プロセッサ
105c  プロセッサ
105d  プロセッサ
110  共通（共有）バス
115  チップセット
120  メモリ
200  ＭＰＳ
200A  MPS
205  パーティション
205A  パーティション
210  パーティション
210A  パーティション
300  方法
305  工程
310  工程
315  工程
320  工程
325  工程
330  工程
335  工程
400  タイムライン
400A  タイムライン
500  方法
505  工程
510  工程
515  工程
520  工程
525  工程
530  工程
600  タイムライン
t1  時間
t2  時間
t3  時間
t4  時間
t5  時間
t6  時間
t7  時間
t8  時間
t9  時間
t10  時間
t11  時間
t12  時間
【図１】
2006012112.tif 000003
【図２】
2006012112.tif 000004
【図２Ａ】
2006012112.tif 000005
【図３】
2006012112.tif 000006
【図４】
2006012112.tif 000007
【図４Ａ】
2006012112.tif 000008
【図５】
2006012112.tif 000009
【図６】
2006012112.tif 000010