(57)【特許請求の範囲】
【請求項１】
マルチＣＰＵシステムを管理するメインＣＰＵとしての役割を果たすＣＰＵであって、前記マルチＣＰＵシステムは第１のクイック・パス相互接続ＱＰＩドメイン、第２のＱＰＩドメイン、第１のノード・コントローラＮＣグループ、および第２のＮＣグループを含み、前記第１のＮＣグループは前記第１のＱＰＩドメインおよび前記第２のＱＰＩドメインに接続され、前記第２のＮＣグループは前記第１のＱＰＩドメインおよび前記第２のＱＰＩドメインに接続され、各ＱＰＩドメインは少なくとも１つのＣＰＵを含み、前記メインＣＰＵは前記第１のＱＰＩドメインまたは前記第２のＱＰＩドメインに属し、各ＮＣグループは複数のＮＣを含み、同一のＮＣグループ内の複数のＮＣは相互接続され、前記メインＣＰＵは、
前記第１のＮＣグループ内のＮＣを除去すべきとき、前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記マルチＣＰＵシステム内の全てのＣＰＵを、ルート構成を修正することによって、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように制御し、
除去されるべき前記ＮＣが除去され、ターゲットＮＣが前記第１のＮＣグループに追加され、前記第１のＮＣグループ内の元のＮＣとのトポロジ関係が確立された後、ルート構成を修正することによって、前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記マルチＣＰＵシステム内にあり、かつ、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御する
ように構成される、ＣＰＵ。
【請求項２】
前記メインＣＰＵが、
前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記ＣＰＵに、記録されたデータ状態を無効状態に構成するように指示し、
システム沈黙を開始して、前記マルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成し、
前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記ＣＰＵに、ルート・レジスタ内にあり別のドメイン内のＣＰＵにアクセスするポートを、前記第２のＮＣグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成するように指示し、
システム沈黙のキャンセルを開始する
ように構成される、請求項１に記載のＣＰＵ。
【請求項３】
前記メインＣＰＵが、前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記ＣＰＵに、記録されたデータ状態を無効状態に構成するように指示するように構成されることは特に、前記メインＣＰＵが、
キャッシュ内のデータをクリアして、データ状態内の修正された状態を前記無効状態に構成するように、前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記ＣＰＵに指示することであって、前記データ状態は前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記ＣＰＵにより記録される、ことと、
共有状態および排他状態のデータ状態をブロードキャストして、前記データ状態における共有状態および排他状態を前記無効状態に構成するように前記第１のＮＣグループ内の全てのＮＣに指示することであって、前記データ状態は前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記ＣＰＵにより記録されることと、
を行うように構成されることを含む、請求項２に記載のＣＰＵ。
【請求項４】
前記メインＣＰＵが、システム沈黙を開始して、前記マルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成するように構成されることは特に、前記メインＣＰＵが、
前記メインＣＰＵ内の１つまたは複数の予約されたコアを除く残りのコアを沈黙させ、前記マルチＣＰＵシステム内の他のＣＰＵの全てのコアを沈黙させる
ように構成されることを含む、請求項２に記載のＣＰＵ。
【請求項５】
前記メインＣＰＵはさらに、
除去されるべき前記ＮＣが除去され、ターゲットＮＣが前記第１のＮＣグループに追加された後、記録されたデータ状態を前記無効状態に構成するように、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵに指示し、
前記マルチＣＰＵシステム内の全てのＣＰＵを前記沈黙状態に構成するようにシステム沈黙を開始し、
前記第１のＮＣグループ内の前記ターゲットＮＣと元のＮＣの間のトポロジ関係を確立し、
ルート・レジスタ内にあり別のドメイン内のＣＰＵにアクセスするポートを、前記第１のＮＣグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成するように前記少なくとも１つのＣＰＵに指示し、
システム沈黙のキャンセルを開始する
ように構成される、請求項２に記載のＣＰＵ。
【請求項６】
前記メインＣＰＵはさらに、
除去されるべき前記ＮＣが除去され、ターゲットＮＣが前記第１のＮＣグループに追加され、前記第１のＮＣグループ内の元のＮＣとのトポロジ関係が確立された後、
ドメイン間でアクセスされる異なるクロス・ドメインのシンクＣＰＵに応じて、かつ、ルート構成を修正することによって、幾つかのクロス・ドメインのシンクＣＰＵへのクロス・ドメイン・アクセスを前記第１のＮＣグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えるように、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御する
ように構成される、請求項１または２に記載のＣＰＵ。
【請求項７】
前記メインＣＰＵはさらに、
ターゲットＮＣが前記第１のＮＣグループに追加された後、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵに命令を送信し、記録されたデータ状態におけるＭ個のクロス・ドメインのシンクＣＰＵに対応するデータ状態を無効状態に設定するように前記少なくとも１つのＣＰＵに指示し、
システム沈黙を開始して、前記マルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成し、
前記少なくとも１つのＣＰＵのルート・レジスタ構成を修正して、ルート・レジスタ内にあり前記Ｍ個のＣＰＵにアクセスするポートを、前記第１のＮＣグループを用いることによりクロス・ドメイン・アクセスを実施するポートに構成し、
前記ルート・レジスタ構成の修正を完了した後、システム沈黙をキャンセルする
ように構成され、
前記ＣＰＵにより記録された前記データ状態はＮ個のクロス・ドメインのシンクＣＰＵの総数に対応し、Ｍ＜Ｎである、
請求項１に記載のＣＰＵ。
【請求項８】
前記Ｍ個のＣＰＵは前記第１のＮＣグループに直接接続される、請求項７に記載のマルチＣＰＵシステム。
【請求項９】
前記メインＣＰＵにより、記録されたデータ状態におけるＭ個のクロス・ドメインのシンクＣＰＵに対応するデータ状態を無効状態に設定するように前記少なくとも１つのＣＰＵに指示するステップは特に、前記メインＣＰＵが、
キャッシュ内にある前記Ｍ個のＣＰＵからのデータをクリアして、前記Ｍ個のクロス・ドメインのシンクＣＰＵに対応する前記データ状態内の修正された状態を前記無効状態に構成するように前記少なくとも１つのＣＰＵに指示し、
前記Ｍ個のクロス・ドメインのシンクＣＰＵに対応する前記記録されたデータ状態内の共有状態および排他状態のデータ状態をブロードキャストして、前記Ｍ個のクロス・ドメインのシンクＣＰＵに対応する前記データ状態における共有状態および排他状態を前記無効状態に構成するように前記第２のＮＣグループ内のＮＣに指示する
ように構成されることを含む、請求項７に記載のマルチＣＰＵシステム。
【請求項１０】
コンピュータであって、前記コンピュータは請求項１乃至９の何れか１項に記載の前記第１のＱＰＩドメイン、前記第２のＱＰＩドメイン、前記第１のＮＣグループ、および第２のＮＣグループを含み、前記コンピュータはさらにＢＩＯＳを含み、前記ＢＩＯＳは命令を生成するためにメインＣＰＵにより要求されるプログラムを格納するために使用される、コンピュータ。
【請求項１１】
マルチＣＰＵシステムを管理するメインＣＰＵに適用可能なマルチＣＰＵシステム管理方法であって、前記マルチＣＰＵシステムは第１のクイック・パス相互接続ＱＰＩドメイン、第２のＱＰＩドメイン、第１のノード・コントローラＮＣグループ、および第２のＮＣグループを含み、前記第１のＮＣグループは前記第１のＱＰＩドメインおよび前記第２のＱＰＩドメインに接続され、前記第２のＮＣグループは前記第１のＱＰＩドメインおよび前記第２のＱＰＩドメインに接続され、各ＱＰＩドメインは少なくとも１つのＣＰＵを含み、前記メインＣＰＵは前記第１のＱＰＩドメインまたは前記第２のＱＰＩドメインに属し、各ＮＣグループは複数のＮＣを含み、同一のＮＣグループ内の複数のＮＣは相互接続され、前記方法は、
前記第１のＮＣグループ内のＮＣを除去すべきとき、ルート構成を修正することによって、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記マルチＣＰＵシステム内の全てのＣＰＵを制御するステップと、
除去されるべき前記ＮＣが除去され、ターゲットＮＣが前記第１のＮＣグループに追加され、前記第１のＮＣグループ内の元のＮＣとのトポロジ関係が確立された後、前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記マルチＣＰＵシステム内にあり、かつ、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御するステップと、
を含む、方法。
【請求項１２】
ルート構成を修正することによって、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記マルチＣＰＵシステム内の全てのＣＰＵを制御するステップは特に、
記録されたデータ状態を無効状態に構成するように、前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記ＣＰＵに指示するステップと、
システム沈黙を開始してマルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成するステップと、
ルート・レジスタ内にあり別のドメイン内のＣＰＵにアクセスするポートを、前記第２のＮＣグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成するように、前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記ＣＰＵに指示するステップと、
システム沈黙のキャンセルを開始するステップと、
を含む、請求項１１に記載のマルチＣＰＵシステム管理方法。
【請求項１３】
記録されたデータ状態を無効状態に構成するように、前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記ＣＰＵに指示するステップは特に、
キャッシュ内のデータをクリアして、データ状態内の修正された状態を前記無効状態に構成するように、前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記ＣＰＵに指示するステップであって、前記データ状態は前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記ＣＰＵにより記録される、ステップと、
共有状態および排他状態のデータ状態をブロードキャストして、前記データ状態における共有状態および排他状態を前記無効状態に構成するように前記第１のＮＣグループ内の全てのＮＣに指示するステップであって、前記データ状態は前記第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記ＣＰＵにより記録される、ステップと、
を含む、請求項１２に記載のマルチＣＰＵシステム管理方法。
【請求項１４】
前記システム沈黙を開始してマルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成するステップは特に、
前記メインＣＰＵ内の１つまたは複数の予約されたコアを除く残りのコアを沈黙させ、前記マルチＣＰＵシステム内の他のＣＰＵの全てのコアを沈黙させるステップ
を含む、請求項１２に記載のマルチＣＰＵシステム管理方法。
【請求項１５】
前記方法はさらに、
ターゲットＮＣが前記第１のＮＣグループに追加された後、記録されたデータ状態を前記無効状態に構成するように、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵに指示するステップと、
前記マルチＣＰＵシステム内の全てのＣＰＵを前記沈黙状態に構成するようにシステム沈黙を開始するステップと、
前記第１のＮＣグループ内の前記ターゲットＮＣと元のＮＣの間のトポロジ関係を確立するステップと、
ルート・レジスタ内にあり別のドメイン内のＣＰＵにアクセスするポートを、前記第１のＮＣグループを用いることによりクロス・ドメイン・アクセスを実施するポートに構成するように前記少なくとも１つのＣＰＵに指示するステップと、
システム沈黙のキャンセルを開始するステップと、
を含む、請求項１２に記載のマルチＣＰＵシステム管理方法。
【請求項１６】
前記方法はさらに、
ターゲットＮＣが前記第１のＮＣグループに追加され、前記第１のＮＣグループ内の元のＮＣとのトポロジ関係が確立された後、
ドメイン間でアクセスされる異なるクロス・ドメインのシンクＣＰＵに応じて、幾つかのクロス・ドメインのシンクＣＰＵへのクロス・ドメイン・アクセスを前記第１のＮＣグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えるように、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御するステップ
を含む、請求項１１または１２に記載のマルチＣＰＵシステム管理方法。
【請求項１７】
前記方法はさらに、
ターゲットＮＣが前記第１のＮＣグループに追加された後、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵに命令を送信し、記録されたデータ状態におけるＭ個のクロス・ドメインのシンクＣＰＵに対応するデータ状態を無効状態に設定するように前記少なくとも１つのＣＰＵに指示するステップであって、前記ＣＰＵにより記録された前記データ状態はＮ個のクロス・ドメインのシンクＣＰＵの総数に対応し、Ｍ＜Ｎである、ステップと、
システム沈黙を開始してマルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成するステップと、
前記少なくとも１つのＣＰＵのルート・レジスタ構成を修正して、ルート・レジスタ内にあり前記Ｍ個のＣＰＵにアクセスするポートを、前記第１のＮＣグループを用いることによりクロス・ドメイン・アクセスを実施するポートに構成するステップと、
前記ルート・レジスタ構成の修正を完了した後、システム沈黙をキャンセルするステップと、
を含む、請求項１１に記載のマルチＣＰＵシステム管理方法。
【請求項１８】
マルチＣＰＵシステムを管理するメインＣＰＵとしての役割を果たすＣＰＵであって、前記マルチＣＰＵシステムは第１のクイック・パス相互接続ＱＰＩドメイン、第２のＱＰＩドメイン、第１のノード・コントローラＮＣグループ、および第２のＮＣグループを含み、前記第１のＮＣグループは前記第１のＱＰＩドメインおよび前記第２のＱＰＩドメインに接続され、前記第２のＮＣグループは前記第１のＱＰＩドメインおよび前記第２のＱＰＩドメインに接続され、各ＱＰＩドメインは少なくとも１つのＣＰＵを含み、前記メインＣＰＵは前記第１のＱＰＩドメインまたは前記第２のＱＰＩドメインに属し、各ＮＣグループは複数のＮＣを含み、同一のＮＣグループ内の複数のＮＣは相互接続され、前記メインＣＰＵは、
ターゲットＮＣが前記第１のＮＣグループに追加されたとき、ルート構成を修正することによって、前記ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第１のＱＰＩドメイン内にあり、かつ、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御するように構成され、前記ターゲットＮＣは前記第１のＱＰＩドメインに接続される、
ＣＰＵ。
【請求項１９】
前記メインＣＰＵが、ルート構成を修正することによって、前記ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第１のＱＰＩドメイン内にあり、かつ、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御するように構成されることは特に、前記メインＣＰＵが、
データ状態を無効状態に構成するように前記少なくとも１つのＣＰＵに指示し、
システム沈黙を開始して、前記マルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成し、
前記第１のＮＣグループ内の元のＮＣとのトポロジ関係を確立するように前記ターゲットＮＣに指示し、
ルート構成を修正して、ルート・レジスタ内にあり別のドメイン内のＣＰＵにアクセスするポートを、前記ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するポートに修正するように前記少なくとも１つのＣＰＵに指示し、
システム沈黙のキャンセルを開始する
ように構成されることを含む、請求項１８に記載のＣＰＵ。
【請求項２０】
前記メインＣＰＵが、ルート構成を修正することによって、前記ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第１のＱＰＩドメイン内にあり、かつ、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御するように構成されることは特に、前記メインＣＰＵが、
前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記少なくとも１つのＣＰＵに命令を送信し、記録されたデータ状態におけるＭ個のクロス・ドメインのシンクＣＰＵに対応するデータ状態を無効状態に設定するように前記少なくとも１つのＣＰＵに指示し、システム沈黙を開始して、前記マルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成し、
ルート構成を修正して、ルート・レジスタ内にあり前記Ｍ個のＣＰＵにアクセスするポートを、前記ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するポートに構成するように前記少なくとも１つのＣＰＵに指示する
ように構成されることを含み、
前記ＣＰＵにより記録された前記データ状態はＮ個のクロス・ドメインのシンクＣＰＵの総数に対応し、Ｍ＜Ｎである、
請求項１８に記載のＣＰＵ。
【請求項２１】
前記メインＣＰＵが、記録されたデータ状態におけるＭ個のクロス・ドメインのシンクＣＰＵに対応するデータ状態を無効状態に設定するように前記少なくとも１つのＣＰＵに指示するように構成されることは特に、前記メインＣＰＵが、
キャッシュ内にある前記Ｍ個のＣＰＵからのデータをクリアして、前記Ｍ個のクロス・ドメインのシンクＣＰＵに対応する前記データ状態内の修正された状態を前記無効状態に構成するように前記少なくとも１つのＣＰＵに指示する
ように構成されることを含み、
前記Ｍ個のクロス・ドメインのシンクＣＰＵに対応する前記記録されたデータ状態内の共有状態および排他状態のデータ状態をブロードキャストして、前記Ｍ個のクロス・ドメインのシンクＣＰＵに対応する前記データ状態における共有状態および排他状態を前記無効状態に構成するように前記第２のＮＣグループ内のＮＣに指示するようにさらに構成された、
請求項２０に記載のＣＰＵ。
【請求項２２】
コンピュータであって、前記コンピュータは請求項１８乃至２１の何れか１項に記載の前記第１のクイック・パス相互接続ＱＰＩドメイン、前記第２のＱＰＩドメイン、前記第１のＮＣグループ、および第２のＮＣグループを含み、前記コンピュータはさらにＢＩＯＳを含み、前記ＢＩＯＳは命令を生成するためにメインＣＰＵにより要求されるプログラムを格納するために使用される、コンピュータ。
【請求項２３】
マルチＣＰＵシステムを管理するためにメインＣＰＵにより使用されるマルチＣＰＵシステム管理方法であって、前記マルチＣＰＵシステムは第１のクイック・パス相互接続ＱＰＩドメイン、第２のＱＰＩドメイン、第１のノード・コントローラＮＣグループ、および第２のＮＣグループを含み、前記第１のＮＣグループは前記第１のＱＰＩドメインおよび前記第２のＱＰＩドメインに接続され、前記第２のＮＣグループは前記第１のＱＰＩドメインおよび前記第２のＱＰＩドメインに接続され、各ＱＰＩドメインは少なくとも１つのＣＰＵを含み、前記メインＣＰＵは前記第１のＱＰＩドメインまたは前記第２のＱＰＩドメインに属し、各ＮＣグループは複数のＮＣを含み、同一のＮＣグループ内の複数のＮＣは相互接続され、前記方法は、
ターゲットＮＣが前記第１のＮＣグループに追加されたとき、ルート構成を修正することによって、前記ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第１のＱＰＩドメイン内にあり、かつ、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御するステップであって、前記ターゲットＮＣは前記第１のＱＰＩドメインに接続される、ステップ
を含む、方法。
【請求項２４】
ルート構成を修正することによって、前記ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第１のＱＰＩドメイン内にあり、かつ、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御するステップは特に、
データ状態を無効状態に構成するように前記少なくとも１つのＣＰＵに指示するステップと、
システム沈黙を開始してマルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成するステップと、
前記第１のＮＣグループ内の元のＮＣとのトポロジ関係を確立するように前記ターゲットＮＣに指示するステップと、
ルート構成を修正して、ルート・レジスタ内にあり別のドメイン内のＣＰＵにアクセスするポートを、前記ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するポートに修正するように前記少なくとも１つのＣＰＵに指示するステップと、
システム沈黙のキャンセルを開始するステップを含む、請求項２３に記載のマルチＣＰＵシステム管理方法。
【請求項２５】
ルート構成を修正することによって、前記ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第１のＱＰＩドメイン内にあり、かつ、前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御するように構成されるステップは特に、
前記第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する前記少なくとも１つのＣＰＵに命令を送信し、記録されたデータ状態におけるＭ個のクロス・ドメインのシンクＣＰＵに対応するデータ状態を無効状態に設定するように前記少なくとも１つのＣＰＵに指示するステップであって、前記ＣＰＵにより記録された前記データ状態はＮ個のクロス・ドメインのシンクＣＰＵの総数に対応し、Ｍ＜Ｎである、ステップと、
システム沈黙を開始してマルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成するステップと、
ルート構成を修正して、ルート・レジスタ内にあり前記Ｍ個のＣＰＵにアクセスするポートを、前記ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するポートに構成するように前記少なくとも１つのＣＰＵに指示するステップと、
を含む、請求項２３に記載のマルチＣＰＵシステム管理方法。
【請求項２６】
記録されたデータ状態におけるＭ個のクロス・ドメインのシンクＣＰＵに対応するデータ状態を無効状態に設定するように前記少なくとも１つのＣＰＵに指示するステップは特に、
キャッシュ内にある前記Ｍ個のＣＰＵからのデータをクリアして、前記Ｍ個のクロス・ドメインのシンクＣＰＵに対応する前記データ状態内の修正された状態を前記無効状態に構成するように前記少なくとも１つのＣＰＵに指示するステップと、
さらに、前記Ｍ個のＣＰＵのデータの前記記録されたデータ状態構成における共有状態および排他状態のデータ状態をブロードキャストして、前記Ｍ個のクロス・ドメインのシンクＣＰＵに対応する前記データ状態における共有状態および排他状態を前記無効状態に構成するように前記第２のＮＣグループ内のＮＣに指示するステップであって、前記記録されたデータ状態構成は前記Ｍ個のクロス・ドメインのシンクＣＰＵに対応する、ステップと、
を含む、請求項２５に記載のマルチＣＰＵシステム管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータの分野に関し、特に、ＣＰＵおよびマルチＣＰＵシステム管理方法に関する。
【背景技術】
【０００２】
不均一メモリ・アクセス・アーキテクチャ（Ｎｏｎ−Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＮＵＭＡ）システムにおいて、中央演算装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵ）を、相互接続バスを通じて相互接続してマルチＣＰＵシステムを形成することができる。共通相互接続バスはクイック・パス相互接続プロトコル（Ｑｕｉｃｋ−Ｐａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ、ＱＰＩ）である。
【０００３】
しかし、コンポーネントのリソース制限のため、例えば、制限された数のＣＰＵ相互接続ポートのため、相互接続バスのみを用いることで、最大で８個のＣＰＵの間で相互接続を実装することができる。８個を超えるＣＰＵの間で相互接続を実装するためには、ノード・コントローラ（Ｎｏｄｅ  Ｃｏｎｔｒｏｌｌｅｒ、ＮＣ）を使用する必要がある。
【０００４】
図１は、ノード・コントローラ１１１、ノード・コントローラ１１２、および８個のＣＰＵを含む、先行技術におけるマルチＣＰＵシステム構造を示す。ＣＰＵ１２１、ＣＰＵ１２２、ＣＰＵ１２３、およびＣＰＵ１２４はＱＰＩドメインを形成し、ＣＰＵ１２５、ＣＰＵ１２６、ＣＰＵ１２７、およびＣＰＵ１２８は別のＱＰＩドメインを形成する。ＱＰＩドメイン内のＣＰＵが当該ＣＰＵ間のＱＰＩバスを通じて互いと通信してもよい。異なるＱＰＩドメイン内のＣＰＵの間の通信を実装するためには、ＮＣを使用する必要がある。
【０００５】
システム実行プロセスにおいて、クロスＮＣアクセスは単一の経路を用いて実施され、これが比較的長いシステム遅延に繋がる。低下した信頼性のケースでは、低信頼のＮＣを除去して取り替える必要がある。しかし、図１のアーキテクチャによれば、ＣＰＵによる別のドメインへのアクセスはＮＣ置き換え中に影響を受ける。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明の諸実施形態ではマルチＣＰＵシステム・アーキテクチャを提案する。２つのＮＣグループがＣＰＵに利用可能であり、ＣＰＵは、ターゲットＮＣへの最高速度のアクセスを提供するＮＣグループを選択でき、これがシステムの全体効率を高める。
【０００７】
第１の態様によれば、本発明の１実施形態はＣＰＵを提供する。当該ＣＰＵは、マルチＣＰＵシステムを管理するメインＣＰＵの役割を果たしてもよい。マルチＣＰＵシステムは、第１のクイック・パス相互接続ＱＰＩドメイン、第２のＱＰＩドメイン、第１のノード・コントローラＮＣグループ、および第２のＮＣグループを備える。第１のＮＣグループは第１のＱＰＩドメインおよび第２のＱＰＩドメインに接続され、第２のＮＣグループは第１のＱＰＩドメインおよび第２のＱＰＩドメインに接続され、各ＱＰＩドメインは少なくとも１つのＣＰＵを含み、メインＣＰＵは第１のＱＰＩドメインまたは第２のＱＰＩドメインに属し、メインＣＰＵは、第１のＮＣグループ内のＮＣを除去すべきとき、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施するマルチＣＰＵシステム内の全てのＣＰＵを、ルート構成を修正することによって、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように制御するように構成される。
【０００８】
当該方法を適用することによって、ＮＣをホット・リムーブでき、これがＮＣ除去に起因するマルチＣＰＵシステム性能への影響を減らす。
【０００９】
第１の態様の第１の可能な実装方式では、メインＣＰＵが、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施するマルチＣＰＵシステム内の全てのＣＰＵを、ルート構成を修正することによって、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように制御するように構成されることは特に、メインＣＰＵが、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施するＣＰＵに、記録されたデータ状態を無効状態に構成するように指示し、システム沈黙を開始して、マルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成し、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施するＣＰＵに、ルート・レジスタ内にあり別のドメイン内のＣＰＵにアクセスするポートを、第２のＮＣグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成するように指示し、システム沈黙のキャンセルを開始するように構成されることを含む。
【００１０】
当該実装方式は、ＣＰＵルート構成を修正することによってＮＣホット・リムーブを実装する特定の方式を提供する。
【００１１】
第１の態様の第２の可能な実装方式では、メインＣＰＵはさらに、除去されるべきＮＣが除去され、ターゲットＮＣが第１のＮＣグループに追加され、第１のＮＣグループ内の元のＮＣとのトポロジ関係が確立された後、ルート構成を修正することによって、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、マルチＣＰＵシステム内にあり、かつ、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御するように構成される。
【００１２】
当該実装方式はＮＣホット・リムーブ技術を提供する。ＮＣ追加プロセスが独立な解決策であってもよく、または、ＮＣ追加プロセスを第１の態様または第１の態様の第１の可能な実装方式と組み合わせて、組み合わされた解決策を形成してもよい。
【００１３】
第１の態様の第３の可能な実装方式では、メインＣＰＵはさらに、除去されるべきＮＣが除去され、ターゲットＮＣが第１のＮＣグループに追加された後、記録されたデータ状態を無効状態に構成するように第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵに指示し、システム沈黙を開始してマルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成し、第１のＮＣグループ内のターゲットＮＣと元のＮＣの間のトポロジ関係を確立し、ルート・レジスタ内にあり別のドメイン内のＣＰＵにアクセスするポートを、第２のＮＣグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成するように当該少なくとも１つのＣＰＵに指示し、システム沈黙のキャンセルを開始するように構成される。
【００１４】
当該解決策はより詳細なＮＣホット・リムーブ技術を提供する。
【００１５】
第１の態様の第４の可能な実装方式では、メインＣＰＵはさらに、ターゲットＮＣが第１のＮＣグループに追加された後、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵに命令を送信し、記録されたデータ状態におけるＭ個のクロス・ドメインのシンクＣＰＵに対応するデータ状態を無効状態に設定するように当該少なくとも１つのＣＰＵに指示し、システム沈黙を開始して、マルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成し、当該少なくとも１つのＣＰＵのルート・レジスタ構成を修正して、ルート・レジスタ内にあり当該Ｍ個のＣＰＵにアクセスするポートを、第１のＮＣグループを用いることによりクロス・ドメイン・アクセスを実施するポートに構成し、当該ルート・レジスタ構成の修正を完了した後に当該システム沈黙をキャンセルするように構成される。当該ＣＰＵにより記録されたデータ状態はＮ個のクロス・ドメインのシンクＣＰＵの総数に対応し、Ｍ＜Ｎである。
【００１６】
第１の態様の第４の可能な実装方式を適用することによって、異なるシンク・ノードに依存して、幾つかのＣＰＵを選択してルートを変更してもよく、残りのＣＰＵのルートは不変のままである。
【００１７】
第２の態様によればＣＰＵが提供される。当該ＣＰＵはマルチＣＰＵシステムを管理するメインＣＰＵの役割を果たす。当該マルチＣＰＵシステムは、第１のクイック・パス相互接続ＱＰＩドメイン、第２のＱＰＩドメイン、第１のノード・コントローラＮＣグループ、および第２のＮＣグループを備え、第１のＮＣグループは第１のＱＰＩドメインおよび第２のＱＰＩドメインに接続され、第２のＮＣグループは第１のＱＰＩドメインおよび第２のＱＰＩドメインに接続され、各ＱＰＩドメインは少なくとも１つのＣＰＵを含み、メインＣＰＵは第１のＱＰＩドメインまたは第２のＱＰＩドメインに属し、メインＣＰＵは、第１のＮＣグループ内のターゲットＮＣを除去すべきとき、ルート構成を修正することによって、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するマルチＣＰＵシステム内の全てのＣＰＵを制御するように構成される。
【００１８】
当該解決策はＮＣホット・リムーブを実装することができる。
【００１９】
第２の態様の第１の可能な実装方式では、メインＣＰＵが、ルート構成を修正することによって、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するマルチＣＰＵシステム内の全てのＣＰＵを制御するように構成されることは特に、メインＣＰＵが、記録されたデータ状態を無効状態に構成するように、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するＣＰＵに指示し、システム沈黙を開始して、マルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成し、ルート構成を更新してターゲットＮＣを孤立させるように第１のＮＣグループ内の残りのＮＣに指示し、ルート・レジスタ内にあり別のドメイン内のＣＰＵにアクセスするポートを、第２のＮＣグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成するようにターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するＣＰＵに指示し、システム沈黙のキャンセルを開始するように構成されることを含む。
【００２０】
第３の態様によれば、ＣＰＵが提供される。当該ＣＰＵはマルチＣＰＵシステムを管理するメインＣＰＵの役割を果たす。マルチＣＰＵシステムは、第１のクイック・パス相互接続ＱＰＩドメイン、第２のＱＰＩドメイン、第１のノード・コントローラＮＣグループ、および第２のＮＣグループ含む。第１のＮＣグループは第１のＱＰＩドメインおよび第２のＱＰＩドメインに接続され、第２のＮＣグループは第１のＱＰＩドメインおよび第２のＱＰＩドメインに接続され、各ＱＰＩドメインは少なくとも１つのＣＰＵを含み、メインＣＰＵは第１のＱＰＩドメインまたは第２のＱＰＩドメインに属し、メインＣＰＵは、ターゲットＮＣが第１のＮＣグループに追加されたとき、ルート構成を修正することによって、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、第１のＱＰＩドメイン内にあり、かつ、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御するように構成される。ターゲットＮＣは第１のＱＰＩドメインに接続される。
【００２１】
第３の態様の第１の可能な実装方式では、ＮＣ追加技術が提供される。
【００２２】
第３の態様の第１の可能な実装方式では、メインＣＰＵが、ルート構成を修正することによって、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、第１のＱＰＩドメイン内にあり、かつ、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御するように構成されることは特に、メインＣＰＵが、データ状態を無効状態に構成するように当該少なくとも１つのＣＰＵに指示し、システム沈黙を開始して、マルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成し、第１のＮＣグループ内の元のＮＣとのトポロジ関係を確立するようにターゲットＮＣに指示し、ルート構成を修正して、ルート・レジスタ内にあり別のドメイン内のＣＰＵにアクセスするポートを、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するポートに修正するように当該少なくとも１つのＣＰＵに指示し、システム沈黙のキャンセルを開始するように構成されることを含む。
【００２３】
第３の態様の第１の可能な実装方式では、詳細なＮＣ追加技術が提供される。
【００２４】
第３の態様の第２の可能な実装方式では、メインＣＰＵが、ルート構成を修正することによって、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、第１のＱＰＩドメイン内にあり、かつ、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御するように構成されることは特に、メインＣＰＵが、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵに命令を送信し、記録されたデータ状態におけるＭ個のクロス・ドメインのシンクＣＰＵに対応するデータ状態を無効状態に設定するように当該少なくとも１つのＣＰＵに指示し、システム沈黙を開始して、マルチＣＰＵシステム内の全てのＣＰＵを沈黙状態に構成し、当該少なくとも１つのＣＰＵに、ルート構成を修正して、ルート・レジスタ内にあり当該Ｍ個のＣＰＵにアクセスするポートを、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するポートに構成するように指示するように構成されることを含む。当該ＣＰＵにより記録されたデータ状態はＮ個のクロス・ドメインのシンクＣＰＵの総数に対応し、Ｍ＜Ｎである。
【００２５】
第３の態様の第２の可能な実装方式では、異なるシンク・ノードのルートを変更するための詳細なＮＣ追加技術が提供される。
【００２６】
本発明はさらに、コンピュータを提供する。当該コンピュータは第１のＱＰＩドメイン、第２のＱＰＩドメイン、第１のＮＣグループ、および第２のＮＣグループを含み、当該コンピュータはさらにＢＩＯＳを含む。当該ＢＩＯＳは全ての上述の態様におけるＣＰＵを実行するのに必要な命令を格納するために使用され、当該コンピュータは以上の態様と同様な技術的効果をもたらす。
【００２７】
本発明はさらに、マルチＣＰＵシステム管理方法を提供する。当該方法は、以上の全ての態様におけるメインＣＰＵまたは以上のコンピュータに適用可能であり、同様な技術的効果をもたらす。
【図面の簡単な説明】
【００２８】
【図１】先行技術におけるマルチＣＰＵシステムのアーキテクチャ図である。
【図２】本発明に従うマルチＣＰＵシステムの１実施形態のアーキテクチャ図である。
【図３】本発明に従うＮＣ除去方法の実施形態の流れ図である。
【図４】本発明に従うＮＣ追加方法の実施形態の流れ図である。
【図５】本発明に従う別のＮＣ除去方法の実施形態の流れ図である。
【図６】本発明に従う別のＮＣ追加方法の実施形態の流れ図である。
【発明を実施するための形態】
【００２９】
以下では、本発明の諸実施形態における添付図面を参照して、本発明の諸実施形態における技術的解決策を明確かつ十分に説明する。明らかに、説明した実施形態は本発明の諸実施形態の全部ではなく一部にすぎない。
【００３０】
ＮＵＭＡのようなマルチＣＰＵシステムがコンピュータに配置されている。マルチＣＰＵシステムでは、ＣＰＵの間の直接接続のみに依存することによって、当該システムのスケールは、当該ＣＰＵの外部インタフェースの数が制限されているので殆ど拡張可能ではない。より多くのＣＰＵから成るＣＰＵシステムを形成するために、異なるＣＰＵグループが一般にＮＣを用いることによって接続され、データがＮＣを用いることによって当該ＣＰＵグループの間で送信される。
【００３１】
ＮＣグループはＮＣプレーンとも呼ばれ、１つまたは複数のＮＣから成る。同一のＮＣグループ内の複数のＮＣはフル・メッシュ（ｆｕｌｌ  ｍｅｓｈ）、リング接続またはシリアル接続の方式で相互接続されうる。当該ＣＰＵグループはまたＱＰＩドメインと呼ばれ、当該ＱＰＩドメインは１つまたは複数のＣＰＵから成る。同一のＱＰＩドメイン内の複数のＣＰＵはＱＰＩバスを用いることによって接続される。ＮＣグループは当該ＣＰＵグループに接続される。
【００３２】
ＣＰＵグループ内のＣＰＵは当該ＱＰＩバスを用いることによって相互接続されるだけでなく、別のキャッシュ・コヒーレンシ（Ｃａｃｈｅ  Ｃｏｈｅｒｅｎｃｙ、ＣＣ）バス、例えば、ハイパー転送（Ｈｙｐｅｒ−Ｔｒａｎｓｐｏｒｔ、ＨＴ）バスを用いることによって相互接続されうる。したがって、ＣＰＵグループはキャッシュ・コヒーレンシドメインとも呼ばれうる。説明の簡単さのため、本発明の諸実施形態はＱＰＩドメインを１例として用いることによって説明される。
【００３３】
当該実施形態では、当該ＣＰＵの１つのポートはＮＣに接続され、残りのポートは当該ドメイン内の他のＣＰＵに接続される。ＮＣグループがＱＰＩドメインの間でパケットを転送してもよく、したがって、異なるＱＰＩドメイン内のＣＰＵがＮＣグループを用いることによってパケット送信を実装してもよい。
【００３４】
任意選択で、各ＣＰＵは複数のポートを有する。当該ポートのうち１つはＮＣに接続され、残りのポートは現在のＱＰＩドメイン内のＣＰＵに接続される。例えば、ＣＰＵは３つのポートを有し、当該ポートのうち１つはＮＣに接続され、残りの２つのポートは隣接するＣＰＵに接続される。ＣＰＵとＮＣの間の接続ラインはまた、当該ＣＰＵとＮＣグループの間の接続ラインである。ＮＣグループは転送機能を提供し、当該ＣＰＵは、ＮＣグループに接続されたラインを用いることによって他のＱＰＩドメイン内のＣＰＵと通信する。
【００３５】
ＮＣを使用するプロセスにおいて、信頼性が低下することがあり、故障さえも発生しうる。ＮＣが故障した場合、特定の影響がマルチＣＰＵシステム内のＣＰＵにアクセスする帯域幅上で生じうる。マルチＣＰＵシステムの信頼性を改善するために、理想的なマルチＣＰＵシステムはＮＣホット・スワップをサポートすべきである。マルチＣＰＵシステムの実行状態が管理ソフトウェアを用いることによって監視される。ＮＣの実行が不安定であることが分かった場合、例えば、ある期間内にＮＣの故障発生の頻度または回数が閾値を超えた場合、ＮＣは危険であるとマークされる。さらに、ＮＣが利用不能になる前に、当該危険なＮＣを、当該危険なＮＣをホット・リムーブして新たなＮＣをホット・アッドすることによって置き換えて、ＮＣの突然の故障により当該システムに生ずる重大な影響を防止する。
【００３６】
ホット・スワップとは、電源を落とさずにスワップすることをいい、ユーザが当該システムをオフにし電源を切ることなく関連部分を置き換えることを可能とする。特に、ホット・スワップは２つのプロセス、即ち、ホット・リムーブおよびホット・アッドを含む
【００３７】
本発明の当該実施形態では、複数のＱＰＩドメインは同一の複数のＮＣグループに接続される。ルート構成はＮＣおよびＣＰＵレジスタに格納され、パケット送信経路を、当該ルート構成を修正することによって変更してもよい。ＣＰＵの間の相互アクセス動作において、トランザクションは一連のアクセス動作を説明するために使用される。アクセス・トランザクションを開始した（アクセス要求を送信した）ＣＰＵはソースＣＰＵと呼ばれ、当該トランザクションに応答する（当該アクセス要求に応答する）ＣＰＵはシンクＣＰＵと呼ばれる。トランザクション処理プロセスでは、ソースＣＰＵとシンクＣＰＵの間でデータを送信するためのチャネルはルートと呼ばれる。データ・パケットの送信方向はトランザクションのルート方向と反対である。シンクＣＰＵは当該データ・パケットの送信者であり、ソースＣＰＵは当該データ・パケットの受信者である。要求パケットの送信方向は当該トランザクションのルート方向と同一である。ソースＣＰＵはデータ要求パケットを送信し、シンクＣＰＵは当該データ要求パケットに応答する。
【００３８】
図２は本発明に従う１実施形態のアーキテクチャ図である。ＱＰＩドメイン２３、ＱＰＩドメイン２４、およびＱＰＩドメイン２５は全てＮＣグループ２１およびＮＣグループ２２に接続される。任意のＣＰＵがＮＣグループ２１またはＮＣグループ２２を用いることによって他のＱＰＩドメイン内のＣＰＵにアクセスしてもよい。同一のＣＰＵがまた、異なるＮＣグループを用いることによって他のドメイン内の異なるＣＰＵにアクセスしてもよい。本発明の当該実施形態で述べたアクセスが、例えば、パケットの形で他のＣＰＵからデータを読み取ることであってもよい。特に、データは他のＣＰＵにより管理されるメモリから読み出される。
【００３９】
マルチＣＰＵシステムでは、１つのＣＰＵはメインＣＰＵの役割を果たす。メインＣＰＵはＮＣおよび他のＣＰＵを管理および制御し、メインＣＰＵが任意のＱＰＩドメインに配置されてもよい。メインＣＰＵはプログラムを実行することによって管理制御命令を生成する。当該プログラムがコンピュータのＢＩＯＳから取得されてもよい。当該ＢＩＯＳはマルチＣＰＵシステムに接続され、マルチＣＰＵシステムと当該ＢＩＯＳの両方は当該コンピュータ内の統合部分である。
【００４０】
即ち、ＱＰＩドメイン内のＣＰＵがＮＣを用いずに互いにアクセスしてもよい。例えば、図２では、ＣＰＵ２３１がＣＰＵ２３４にアクセスする必要がある場合、ＣＰＵ２３１−−ＣＰＵ２３２−−ＣＰＵ２３３−−ＣＰＵ２３４、ＣＰＵ２３１−−ＣＰＵ２３４、およびＣＰＵ２３１−−ＮＣ２１１−−ＣＰＵ２３４を含む複数の任意選択のルートがある。しかし、異なるＱＰＩドメイン内のＣＰＵはＮＣグループを用いることによって互いにアクセスする必要がある。ＣＰＵ２３１がＣＰＵ２４１にアクセスする場合、任意選択のアクセス経路はＣＰＵ２３１−−ＮＣ２１１−−ＮＣ２１２−−ＣＰＵ２４１であるか、または、以下のアクセス経路、即ち、ＣＰＵ２３１−−ＣＰＵ２３２−−ＮＣ２２１−−ＮＣ２２２−−ＣＰＵ２４２−−ＣＰＵ２４１が選択されてもよい。前者はＮＣグループ２１を通り、後者はＮＣグループ２２を通る。
【００４１】
本発明の１実施形態では、マルチＣＰＵシステムは、少なくとも２つのクイック・パス相互接続ＱＰＩドメイン、第１のＮＣグループ、および第２のＮＣグループを含む。各ＱＰＩドメインは少なくとも１つのＣＰＵを含み、各ＮＣグループは少なくとも１つのＮＣを含む。各ＮＣは全てのＱＰＩドメインに接続される。
【００４２】
マルチＣＰＵシステムでは、ＣＰＵが、別のＱＰＩドメイン内の第１のシンクＣＰＵにアクセスするときに、当該ＣＰＵのルート構成に従って、アクセス要求を第１のＮＣグループに送信してもよい。第１のＮＣグループは、当該アクセス要求を第２のＱＰＩドメイン内の第１のシンクＣＰＵに転送するために使用される。依然として、ＣＰＵが別のＱＰＩドメイン内の第２のシンクＣＰＵにアクセスするときに当該ＣＰＵのルート構成に従ってアクセス要求を第１のＮＣグループに送信してもよい。第１のＮＣグループは当該アクセス要求を第２のＱＰＩドメイン内の第２のシンクＣＰＵに転送するために使用される。
【００４３】
第１のＮＣグループを用いることによって第１のシンクＣＰＵにアクセスするＣＰＵが、第２のＮＣグループを用いることによって第２のシンクＣＰＵにアクセスするＣＰＵと同一であってもよく、または、異なってもよい。
【００４４】
以下では、異なるＱＰＩドメインに属するＣＰＵの間で通信が実施されるとき、当該システムへのＮＣ除去および追加により生ずる変化を簡単に説明する。
【００４５】
例えば、本発明の当該実施形態は、ＮＣグループ２１内のＮＣ２１１を除去する必要があるときの２つの解決策を提供する。両方の方式はメインＣＰＵの制御の下で実施される。一方の方式は、もともとＮＣグループ２１を通過する全てのルートをＮＣグループ２２に切り替えるものであり、他方の方式はもともとＮＣ２１１を通過するルートをＮＣグループ２２に切り替えるものであり、ＮＣグループ２１内の他のＮＣを通過するルートは不変のままである。
【００４６】
同様に、ＮＣをメインＣＰＵの制御の下で追加すべきときに幾つかの解決策がある。例えば、元のＮＣ２１１が除去された後、新たなＮＣ２１１がＮＣグループ２１に追加される。１つの方式は、クロス・ドメイン・アクセスを開始する異なるソースＣＰＵに応じて、メインＣＰＵがＮＣグループ２２を通るルートの幾つかを選択し、当該選択されたルートをＮＣグループ２１に切り替え、残りのルートは不変のままであるというものである。別の方式は、ドメインの間でアクセスされる異なるシンクＣＰＵに応じて、メインＣＰＵが、幾つかのシンクＣＰＵに対応するルートを、もともとＮＣグループ２２を通過するルートから選択し、当該選択されたルートをＮＣグループ２１に切り替え、残りのルートは不変のままであるというものである。さらに別の方式は、ＮＣグループ２２を通る全てのルートをＮＣグループ２１に切り替えるというものである。
【００４７】
クロス・ドメイン・アクセスは、アクセスされたＣＰＵおよびアクセス要求を送信したＣＰＵが同一のＱＰＩドメイン内になく、特に、アクセスされたメモリ・アドレスが別のＱＰＩドメイン内のＣＰＵにより管理されるメモリ・アドレスであること意味する。当該アクセス要求はデータを別のＣＰＵに要求するために１つのＣＰＵにより使用される。クロス・ドメイン・アクセスのアクセス要求がＮＣグループ内の任意のＮＣを通過した場合、当該クロス・ドメイン・アクセスはＮＣグループを通過すると考えられることに留意すべきである。１つのＮＣグループ（またはＮＣ）を用いることによってＣＰＵがクロス・ドメイン・アクセスを実施することは、当該ＣＰＵのルート構成において、ＮＣグループまたはＮＣが直接的にまたは間接的に指されることを意味する。これは、クロス・ドメイン・アクセスが現在の時間点で存在することは必ずしも意味しない。しかし、当該ＣＰＵがクロス・ドメイン・アクセス要求を送信するとき、当該アクセス要求がＮＣグループまたはＮＣを通過してもよい。
【００４８】
直接的にＮＣを指すことは、例えば、指されるＮＣに直接接続されることである。当該ＣＰＵルート構成において、次のノードは指されるＮＣである。当該ＣＰＵがクロス・ドメイン・アクセス要求を送信するとき、当該ＣＰＵルート構成に従って、当該クロス・ドメイン・アクセス要求が通過する次のノードは指されるＮＣである。間接的にＮＣを指すことは、例えば、（ＮＣまたはＣＰＵのような）別のノードをまず通過し、次いで指されるＮＣに接続されることである。当該ＣＰＵがクロス・ドメイン・アクセス要求を送信するとき、当該ＣＰＵルート構成に従って、当該クロス・ドメイン・アクセス要求が、他のノードをまず通過し、次いで指されるＮＣに到着してもよい。以上は、直接的にまたは間接的にＮＣを指す原理を説明し、直接的にまたは間接的にＮＣグループを指す原理は同一である。
【００４９】
実施形態１
図３を参照すると、本発明の当該実施形態はＮＣホット・リムーブ方法を提供する。当該方法は図２のアーキテクチャに基づいて説明されている。
【００５０】
第１のＮＣグループ内のＮＣを除去すべきとき、メインＣＰＵは、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施するマルチＣＰＵシステム内の全てのＣＰＵを制御し、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替える。
【００５１】
メインＣＰＵがＱＰＩドメイン２３内のＣＰＵ２３４であると仮定すると、除去すべきＮＣはＮＣ２１１である。説明の簡単さのため、当該実施形態における除去すべきＮＣ２１１はターゲットＮＣと呼ばれ、ＮＣグループ２１は第１のＮＣグループと呼ばれ、ＮＣグループ２２は第２のＮＣグループと呼ばれる。
【００５２】
Ｓ３０１．メインＣＰＵが、第１のＮＣグループ内のＮＣを除去する必要があることを示す信号を受信する。
【００５３】
例示的に、ユーザがＮＣ２１１を除去する準備ができているとき、当該ユーザが、オペレーティング・システムを用いることによって、除去命令をメインＣＰＵ２３４に送信してもよい。当該除去命令はＮＣ２１１の識別子を含む。このように、当該除去命令を受信したとき、メインＣＰＵ２３４が、除去すべきＮＣがＮＣグループ２１に存在すると判定してもよい。
【００５４】
例示的に、ＮＣグループ２１内のＮＣ２１１の信頼性が低下したことを検出した後、ＣＰＵ２３４がＮＣ２１１の除去を開始してもよい。ＮＣグループ２１を通過するルートがＮＣグループ２２に切り替えられ、ＮＣグループ２１の利用が停止した後、ＮＣ２１１をホット・リムーブしてもよい。
【００５５】
Ｓ３０２．メインＣＰＵが、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施するＣＰＵに、当該ＣＰＵにより記録されたデータ状態を無効状態に構成するように指示する。
【００５６】
メインＣＰＵがマルチＣＰＵシステム内のＣＰＵの間のトポロジ関係を学習してもよく、または換言すれば、メインＣＰＵは、各ＣＰＵおよび他の装置（ＮＣまたはＣＰＵ）の異なるポートの間の接続関係を知る。したがって、ＣＰＵルート構成内の外向きのポート情報を読むことによって、メインＣＰＵが、クロス・ドメイン・アクセスのために当該ＣＰＵにより使用されるＮＣグループが第１のＮＣグループであるかどうかを学習してもよい。したがって、メインＣＰＵがルート構成内の外向きのポートを修正するように別のＣＰＵに指示する場合、外部アクセスのために当該ＣＰＵにより使用される経路を変更することができる（後続のステップＳ３０４を参照されたい）。当該ルート構成は当該ＣＰＵのキャッシュに記録される。
【００５７】
例えば、メインＣＰＵは、ＣＰＵ２３１がＮＣグループ２１を用いることによって別のドメイン内のＣＰＵ（例えば、ＣＰＵ２４１）にアクセスする必要がある場合、使用する必要があるポートはＣＰＵ２３１の３つのポートのうちＮＣ２１１に接続されたポートであり、ＣＰＵ２３１がＮＣグループ２２を用いることによって別のドメイン内のＣＰＵ（例えば、ＣＰＵ２４１）にアクセスする必要がある場合、使用する必要があるポートはＣＰＵ２３１の３つのポートのうちＮＣ２２１を指すポート、即ち、ＣＰＵ２３１とＣＰＵ２３２の間のポートであることを記録する。別のドメインにアクセスするためにＣＰＵ２３１により現在構成されているポートが前者である場合、これは、ＣＰＵ２３１が第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することを意味する。当該方法によれば、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施するマルチＣＰＵシステム内の全てのＣＰＵを取得してもよい。
【００５８】
例えば、メインＣＰＵが、キャッシュに、異なるメモリ・アドレスにアクセスするために各ＣＰＵにより使用される外向きのポートを記録してもよい。メインＣＰＵのキャッシュを読んだ後、メインＣＰＵは、どのＣＰＵが第１のＮＣグループを使用してクロス・ドメイン・アクセスを実施するかを学習することができる。あるいは、独立な管理装置がかかる情報を記録し、当該情報をメインＣＰＵに提供してもよい。
【００５９】
図２を１例として用いると、ＣＰＵ２３１がＣＰＵ２３１のドメイン内にないメモリ・アドレスにアクセスしたとき、ＮＣ２１１に接続されＣＰＵ２３１内にあるポートが使用される。当該ＣＰＵは、コア、キャッシュ・エージェント（Ｃａｃｈｅ  Ａｇｅｎｔ、ＣＡ）、およびホーム・エージェント（Ｈｏｍｅ  Ａｇｅｎｔ、ＨＡ）を備える。ＣＡは当該キャッシュを管理し、ＨＡはメモリを管理する。データを要求するとき、ＣＰＵコアはまず当該ＣＰＵコアのＣＡを使用して、ＣＡにより管理されるキャッシュを検索し、当該データが見つからなかった場合には、ＨＡを使用してＨＡにより管理されるメモリを検索する。
【００６０】
データを提供するＨＡとアクセス要求を送信するコアが同一のＣＰＵまたは異なるＣＰＵに配置されてもよい。当該実施形態では、データを提供するＨＡを説明し、別のＱＰＩドメインに配置されたＨＡを強調する。
【００６１】
本発明の当該実施形態では、ＣＰＵのデータ状態とは、ＣＰＵキャッシュ内にあり当該ＣＰＵにより取得されているデータの状態のことをいう。当該データ状態は当該ＣＰＵキャッシュに記録され、ＣＡにより管理される。
【００６２】
ＣＰＵが別のＣＰＵのデータにアクセスしたことがある場合（特に、当該データが当該別のＣＰＵのＨＡにより管理されるメモリ内のデータであってもよい）、アクセスを開始したＣＰＵが、取得されたデータの現在の状態を記録してもよい。特定のパケット送信プロセスでは、ソースＣＰＵがアクセスを開始し、シンクＣＰＵはパケットを提供する。特に、シンクＣＰＵは、シンクＣＰＵのＨＡを用いることによってデータをメモリから取得し、次いで当該データをソースＣＰＵに提供する。当該ＣＰＵにより記録されたデータ状態は、当該ＣＰＵがソースＣＰＵの役割を果たすときに当該ＣＰＵにより取得された（パケットのような）データの状態であり、当該データ状態は要求されたものへのシンクＣＰＵのアクセスに対応する。キャッシュ・コヒーレンシ・プロトコル（ｃａｃｈｅ  ｃｏｈｅｒｅｎｃｙ  ｐｒｏｔｏｃｏｌ）に従って、所望のデータを取得した後、当該アクセス要求のソースＣＰＵはその自身のキャッシュに当該取得されたデータの状態を記録する。状態は、排他（Ｅｘｃｌｕｓｉｖｅ、Ｅ）状態、無効（Ｉｎｖａｌｉｄ、Ｉ）状態、共有（Ｓｈａｒｅ、Ｓ）状態、および修正（Ｍｏｄｉｆｙ、Ｍ）状態を含む。これらの状態がメモリ・アドレス（キャッシュ・ライン）内でマークされる。当該メモリ・アドレスがさらに当該メモリ内のデータのアドレスを記録してもよい。
【００６３】
Ｍ状態は、メモリ・アドレス内でマークされたデータがソースＣＰＵにより修正され（ダーティ）、シンクＣＰＵにより提供された元のデータと一貫していないことを示す。修正されたデータがメモリに書き戻された後、当該メモリ・アドレス内の状態をＥ状態に変更してもよい。Ｅ状態は、当該メモリ・アドレス内でマークされたデータが修正されておらず（クリーン）当該メモリ内のデータと一貫していることを示す。Ｓ状態は、当該メモリ・アドレス内でマークされたデータを複数のＣＰＵによりバッファでき、全てのキャッシュ内のデータが当該メモリ内のデータと一貫していることを意味する。Ｉ状態は、当該データが無効であること、例えば、別のＣＰＵが当該メモリ・アドレス内でマークされたデータを修正したかもしれないことを示す。
【００６４】
ＮＣがまた、データ状態を記録してもよい。ＣＰＵがクロス・ドメイン・パケットを送信したとき、および、当該クロス・ドメイン・パケットがＮＣを通過したとき、ＮＣはデータ状態を記録し、その結果、ＮＣにより記録されたデータ状態は当該パケットのソースＣＰＵにより記録されたデータ状態と一貫し続ける。後続のクロス・ドメイン・アクセスにおいて、別のＣＰＵがＮＣを用いることによって当該ＣＰＵのデータ状態を学習してもよく、これは、当該データ状態を当該ＣＰＵから取得するプラクティスと比較するとより高速である。
【００６５】
当該実施形態では、ＮＣグループ２１を用いることによって他のドメインにアクセスした全てのＣＰＵのルート構成を、ＮＣグループ２１ではなくＮＣグループ２２を指すように修正する必要がある。かかるＣＰＵはパケットＮＣグループ２２を用いることによってパケットを受信するソースＣＰＵとしての役割を果たしていないので、ＮＣに記録される対応するデータ状態はない。即ち、ＮＣの状態レコードにおいて、対応するデータ状態はＩ状態である。ＮＣグループ２１を用いることによってパケットを送信したＣＰＵに記録された状態をＩ状態に修正することによって、当該データ状態をＮＣと当該ＣＰＵの間で一貫するように保つことができる。
【００６６】
第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施するＣＰＵにより記録されたデータ状態を無効状態に構成する任意選択の実装方式は２つの部分を含む。第１の部分は、メインＣＰＵが、当該ＣＰＵによりバッファされたデータをクリアするように当該ＣＰＵに指示し、その結果、当該ＣＰＵ内のデータ状態Ｍ状態がＩ状態に変化することである。当該キャッシュクリアが特に、バッファされたデータを、当該データを提供するメモリに返すことを指してもよい。第２の部分は、メインＣＰＵが、ＮＣにより記録されたデータ状態をクリアするように第１のＮＣグループ内のＮＣに指示し、その結果、ＮＣに記録されたＳ状態とＥ状態の両方がＩ状態に変化し、当該ＣＰＵのＳ状態とＥ状態もまたそれに応じてＩ状態に変化することである。動作の当該２つの部分は命令を用いることによってメインＣＰＵにより開始される。以下で特定の解釈を提供する。
【００６７】
第１の部分：ＣＰＵコアが、クリア・キャッシュ・コマンドを実行し、したがって、当該ＣＰＵに記録された修正された状態のデータをメモリに書き込み、次いで当該データ状態を修正から無効に変更する。さらに、当該データを当該メモリに書き込むプロセスにおいて、当該データが第１のＮＣグループ内のＮＣを通過してもよい。第１のＮＣグループ内のＮＣはまた、ＮＣのディレクトリ・キャッシュにより記録された対応するディレクトリ状態を修正から無効に変更し、当該ＣＰＵに記録されたアクセスされたデータのディレクトリ状態と一貫するのを保つ。
【００６８】
第２の部分は、（１）第１のＮＣグループのＮＣがＮＣのキャッシュ内のデータ状態を問い合わせ（ＣＰＵがＮＣを用いることによって互いにアクセスするとき、ＮＣは当該アクセスされたデータの状態を記録する）、現在Ｓ状態およびＥ状態にあるレコードを取得し、スヌープ・メッセージをＳ状態またはＥ状態のレコードを有するＣＰＵに送信し、（２）当該スヌープ・メッセージを受信したＣＰＵがＳ状態およびＥ状態のレコードをＩ状態にダウングレードし、次いで応答メッセージをＮＣに送信することである。当該応答メッセージを受信した後、ＮＣはまた、ＮＣにより記録されたＳ状態およびＥ状態をＩ状態にダウングレードする。当該スヌープ・メッセージを受信したＣＰＵは、第１のＮＣグループを用いることによって別のＱＰＩドメイン内のＣＰＵにアクセスしたことがあるＣＰＵである。
【００６９】
Ｓ３０３．メインＣＰＵがシステム沈黙を開始する。
【００７０】
ＮＣホット・スワップはバス上のデータ連続性または割込みに関係するだけでなく、マルチＣＰＵシステム全体の動作モードと能力に影響を及ぼすことに留意すべきである。したがって、マルチＣＰＵシステムが沈黙状態にあるときにＮＣを除去することは、ＮＣ除去に起因するＣＰＵサービス・エラーを回避することができる。マルチＣＰＵシステムが沈黙状態にあるとき、全てのＣＰＵは、メモリおよび入出力インタフェースのリソースへのアクセスを一時停止し、入出力インタフェースから開始されたプリフェッチ、割込み等を無効にし、当該ＣＰＵの命令ポインタがソフトウェア・サイクルにおいて制限される。
【００７１】
メインＣＰＵが複数のコアを有する場合、システム沈黙の範囲はメインＣＰＵを含む全てのＣＰＵである。メインＣＰＵが沈黙しないように１つまたは複数のコアを出てもよく、残りのコアは沈黙する。他のＣＰＵのすべてのコアは沈黙する。メインＣＰＵ内の沈黙状態にないコアは後続の動作を実施するために使用される。
【００７２】
メインＣＰＵが単一のコアを有する場合、システム沈黙は、メインＣＰＵは沈黙しないが他のＣＰＵの全てのコアは沈黙することを意味する。メインＣＰＵが単一のコアを有するのは稀なケースであるので、メインＣＰＵが複数のコアを有するシナリオを以下の説明のための１例として使用する。
【００７３】
ＣＰＵ２３４が、沈黙する必要があるコアを沈黙させてもよい。他のＣＰＵが複数の方式で沈黙してもよい。任意選択の方式は、ＣＰＵ２３４が直接的に他のＣＰＵの沈黙レジスタを修正し、沈黙レジスタが修正されたＣＰＵが沈黙になるというものである。別の任意選択の方式は、ＣＰＵ２３４がマルチＣＰＵシステム全体において沈黙パケットをブロードキャストし、当該パケットを受信したＣＰＵが沈黙動作を開始し、当該ＣＰＵ自体を沈黙状態に設定するというものである。以下で、後者の方式を１例として用いて詳細な説明を与える。
【００７４】
沈黙コマンドは２つのタイプで来る。１つのタイプは、当該沈黙コマンドが直接的に他のＣＰＵの沈黙レジスタの構成を修正してもよく、沈黙レジスタが沈黙に構成されたＣＰＵが沈黙状態に入るというものである。別のタイプは、当該沈黙コマンドが他のＣＰＵのコアに送信された命令であり、当該命令を受信したＣＰＵのコアが沈黙プログラムを開始し、その結果、当該ＣＰＵが沈黙するというものである。
【００７５】
ＣＰＵ２３４と同一のＱＰＩドメイン内にあるＣＰＵ２３１、ＣＰＵ２３２、およびＣＰＵ２３３に対して、ＣＰＵ２３４は、ドメイン内のＣＰＵの間にあるＱＰＩバスを用いることによって沈黙パケットを送信する。ＣＰＵ２３１およびＣＰＵ２３３がＣＰＵ２３４の沈黙パケットを直接受信してもよく、ＣＰＵ２３２がＣＰＵ２３１またはＣＰＵ２３３により転送された沈黙パケットを受信してもよい。
【００７６】
ＣＰＵ２３４と同一のＱＰＩドメイン内にないＣＰＵ、例えば、ＱＰＩドメイン２４およびＱＰＩドメイン２５内のＣＰＵに対しては、ＣＰＵ２３４は沈黙パケットをＮＣグループに送信し、ＮＣグループは当該沈黙パケットをＱＰＩドメイン２４およびＱＰＩドメイン２５に送信する。当該沈黙パケットを受信したＣＰＵは、当該ドメイン内で当該沈黙パケットを転送し、最終的に全てのＣＰＵが当該沈黙パケットを受信する。
【００７７】
例えば、ＣＰＵ２３４が、ＮＣ２１１およびＮＣ２１２を用いることによって沈黙パケットをＣＰＵ２４１に送信する。ＣＰＵ２４１は、当該ＣＰＵの間にあるＱＰＩバスを用いることによって当該沈黙パケットの送信を継続し、その結果、ＱＰＩドメイン２４内の全てのＣＰＵが当該沈黙パケットを受信する。ＮＣ２１２はさらに当該沈黙パケットをＮＣ２１３に送信し、ＮＣ２１３が当該沈黙パケットをＣＰＵ２５１に送信する。ＣＰＵ２５１は、当該ＣＰＵの間にあるＱＰＩバスを用いることによって当該沈黙パケットの送信を継続し、その結果、ＱＰＩドメイン２５内の全てのＣＰＵが当該沈黙パケットを受信する。
【００７８】
Ｓ３０４．メインＣＰＵが、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する全てのＣＰＵに、ルート構成を修正するように指示し、その結果、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する全てのＣＰＵは、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替える。
【００７９】
ＣＰＵのルート・レジスタがルート情報を記録してもよい。当該ルート情報がメモリ・アドレスとＣＰＵポートの間の対応関係であってもよい。ＮＣのルート・レジスタはまたルート情報を記録する。当該ルート情報がメモリ・アドレスとＮＣポートの間の対応関係であってもよい。ＣＰＵとＮＣの両方は当該ルート情報に記録されたポートに従って要求パケットを送信し、その結果、当該要求パケットがルートに沿って送信される。当該ルートが通過したノードのルート・レジスタ内のルート情報を修正することによって、アクセス要求の送信経路全体を変更することができる。当該ルート・レジスタをＣＰＵのキャッシュに統合してもよい。
【００８０】
第２のＮＣグループを用いることによってパケットを送信するＣＰＵが第２のＮＣグループ内のＮＣに直接接続されるように切替えを実施する必要がある場合、当該切替えは、当該ＣＰＵによりクロス・ドメイン・アクセスに対して使用されるポートを第２のＮＣグループ内のＮＣに直接接続されたポートに構成することをいい、または、第２のＮＣグループおよび第２のＮＣグループ内のＮＣを用いることによってパケットを送信するＣＰＵの間に直接接続が無いが別のＣＰＵが存在するように切替えを実施する必要がある場合、当該切替えは、当該ＣＰＵによりクロス・ドメイン・アクセスに対して使用されるポートを、当該別のＣＰＵに接続されたポートに構成することをいう。当該アクセス要求を受信した後、当該別のＣＰＵが、当該アクセス要求を第２のＮＣグループ内のＮＣに転送してもよい。
【００８１】
例示的に、ＣＰＵ２３１によるＣＰＵ２４１へのアクセスはクロス・ドメイン・アクセスであり、最初に構成されたアクセス・ポートはＣＰＵ２３１のポートのうちＮＣ２１１に接続されたポートであると仮定する。ルート・レジスタが修正された後、新たなルート構成において、当該ポートがＣＰＵ２３１のポートのうちＣＰＵ２３２に接続されたポートに変化する。当該アクセスがＣＰＵ２３２に到着した後、ＣＰＵ２３２のルート構成において、ＣＰＵ２４１にアクセスするために使用されるポートはＣＰＵ２３２とＮＣ２２１の間のポートである。したがって、ＣＰＵ２３２が当該アクセスをＮＣ２２１に転送してもよく、ＮＣ２２１は当該アクセスの転送を継続し、その結果、当該アクセスがＣＰＵ２４１に到達することができる。アクセス経路全体はＣＰＵ２３１−−ＣＰＵ２３２−−ＣＰＵ２３３−−ＮＣ２２１−−ＣＰＵ２４２−−ＣＰＵ２４１である。メインＣＰＵはマルチＣＰＵシステムにおけるＣＰＵと各ＣＰＵの外向きのポート構成の間のトポロジ関係を記録するので、メインＣＰＵ２３１はＣＰＵ２３１のアクセス要求をＣＰＵ２３４ではなくＣＰＵ２３２に転送することを選択することに留意すべきである。したがって、ＣＰＵ２３２を用いることによって、当該クロス・ドメイン・アクセスを、ＮＣグループ２２を用いることによって比較的直接的に実施でき、次いでＣＰＵ２３１はルート・ポートをＣＰＵ２３２に対応するポートに構成するように指示されることを学習することができる。
【００８２】
確かに、異なるポリシに依存して、別の実施形態では、メインＣＰＵ２３１がまた、ＣＰＵ２３１にアクセス要求をＣＰＵ２３４に転送させることを選択してもよく、ＣＰＵ２３４が当該アクセス要求をＣＰＵ２３３に転送し、次いでＣＰＵ２３３が当該アクセス要求をＮＣ２２１に転送する。
【００８３】
ＣＰＵ２３４がＣＰＵ２５２にアクセスすることを仮定し、最初に構成されたポートがＣＰＵ２３４とＮＣ２１１の間のポートであることを仮定する。ルート・レジスタが修正された後、新たな構成において、当該ポートがＣＰＵ２３４とＮＣ２２１の間のポートに変化する。
【００８４】
ＣＰＵのポート（例えば、１つのＣＰＵが３つまたはそれより多くのポートを有してもよい）はそれぞれ異なる次のノード（例えば、当該ノードはＮＣまたはＣＰＵである）に接続されることが分かりうる。当該ＣＰＵのポートから送信されたアクセス要求を受信した後、別のノードが、当該アクセス要求がアクセスすべきシンクＣＰＵに到着するまで転送を継続する。転送されるプロセスにおいて、当該ＣＰＵのポートから送信されたアクセス要求が第２のＮＣグループを通過してもよく、当該ポートは、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施するポートである。したがって、ルート・レジスタにおいて、別のドメイン内のＣＰＵにアクセスするために使用されるポートが、第２のＮＣグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成されてもよい。当該別のドメイン内のＣＰＵを当該ＣＰＵにより管理されるメモリ・アドレスでマークしてもよい。
【００８５】
ステップＳ３０４の後、ＮＣを除去することができる。
【００８６】
Ｓ３０５．当該ルート構成の修正を完了した後にメインＣＰＵがシステム沈黙をキャンセルする。
【００８７】
沈黙をキャンセルするステップは沈黙プロセスと同様であり、以下のステップ、即ち、ＣＰＵ２３４が当該ＣＰＵの沈黙コアの沈黙状態をキャンセルし、当該ＣＰＵが、沈黙キャンセル・コマンドを用いることによって、他のＣＰＵの構成を修正して当該他のＣＰＵの沈黙状態をキャンセルするステップを含む。ＱＰＩドメイン２３内の他のＣＰＵについて、当該沈黙キャンセル・コマンドがＮＣにより転送されることなくＣＰＵ２３４により直接送信されてもよく、他のＱＰＩドメイン内のＣＰＵに対しては、ＣＰＵ２３４により送信された沈黙キャンセル・コマンドをＮＣ２２により転送してもよい。メインＣＰＵによりシステム沈黙をキャンセルするプロセスはシステム沈黙を開始するプロセスと同様であり、ステップＳ３０３を参照してもよい。差異は、沈黙コマンドをＮＣグループ２１により送信してもよいが、沈黙キャンセル・コマンドはＮＣグループ２２のみによって送信できるということである。
【００８８】
沈黙キャンセル・コマンドは２つのタイプで来る。１つのタイプは、当該沈黙キャンセル・コマンドが他のＣＰＵの状態関連レジスタの構成を直接修正してもよく、レジスタ構成が修正されたＣＰＵが沈黙状態をキャンセルするというものである。他のタイプは、当該沈黙キャンセル・コマンドが他のＣＰＵのコアに送信された命令であり、当該命令を受信したＣＰＵのコアが沈黙プログラムを開始し、その結果、当該ＣＰＵが沈黙をキャンセルするというものである。
【００８９】
当該システム沈黙がキャンセルされた後、各ＣＰＵは正常な実行を復元する。この場合、ルート修正のため、マルチＣＰＵシステム内の全てのＣＰＵはＮＣグループ２２を通過し、後にＱＰＩドメインの間でパケットを受信または送信するときにもはやＮＣグループ２１を使用しない。ＮＣグループ２１内のＮＣ２１１が除去された後、ＮＣグループ２１を用いることによってクロス・ドメイン・パケットを最初に受信し送信したＣＰＵがＱＰＩドメインの間でパケットの受信および送信を継続できることが保証される。即ち、以上の方法はマルチＣＰＵシステムにおけるＮＣのホット・リムーブを実装する。
【００９０】
実施形態２
図４を参照すると、以下では、ＮＣを既存のＮＣグループに追加するプロセスを説明する。図２のシステム・アーキテクチャを依然として１例として用いると、ＣＰＵ２３４はメインＣＰＵである。ＮＣグループ２１に追加される新たなＮＣ２１１は、実施形態１の除去されたＮＣ２１１と区別するために、当該実施形態では別のターゲットＮＣと呼ばれる。当該実施形態を実施形態１の後に実施してもよく、ＮＣ２１１の置き換えと等価である。特に明記しない限り、実施形態１における関連説明は依然として当該実施形態において適用可能である。
【００９１】
当該実施形態が、別のターゲットＮＣを第１のＮＣグループに追加した後、第１のＮＣグループを再利用する、即ち、マルチＣＰＵシステムに配置され第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御して、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるために使用してもよい。
【００９２】
ステップＳ４０１：メインＣＰＵが、別のターゲットＮＣが第１のＮＣグループに追加されることを検出する。
【００９３】
例示的に、マルチＣＰＵシステムは定期的に各スロットの状態を検出する。当該スロットはＮＣを挿入するために使用され、当該スロットの状態は、ＮＣが当該スロットに存在するかどうかを示すために使用される。このように、新たなＮＣが当該スロットに追加されるとき、当該状態が変化してもよく、メインＣＰＵが当該新たなＮＣの挿入を検出することができる。
【００９４】
以上の説明は例示的なものにすぎない。本発明は、どのようにメインＣＰＵが別のターゲットＮＣの第１のＮＣグループへの接続を検出するかを限定しない。例えば、本発明の当該実施形態では、ユーザがボタンを使用して、メインＣＰＵをトリガして各スロットの状態を検出してもよい。
【００９５】
Ｓ４０２．メインＣＰＵが、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵに命令を送信して、当該ＣＰＵにより記録されたデータ状態をＩ状態に構成するように当該ＣＰＵに指示する。
【００９６】
当該ステップにおいて、Ｉ状態に構成される必要があるＣＰＵは、後続のステップにおいてルート切り替えを実施する準備ができたＣＰＵである。当該データ状態をＩ状態に構成する動作は、Ｉ状態に構成される必要があるＣＰＵのキャッシュをクリアし、Ｉ状態に構成される必要があるＣＰＵが通過するＮＣにより、当該ＣＰＵの関連するＳ状態およびＥ状態をＩ状態に構成し、その結果、当該ＣＰＵのＳ状態およびＥ状態がそれに応じてＩ状態に変化することを含む。詳細なプロセスについては、ステップＳ３０２を参照してもよい。
【００９７】
第１のＮＣグループに切り替えられるべきＣＰＵを選択するための異なるポリシがあってもよい。当該選択を、２つのＮＣグループの性能またはアクセスがＣＰＵの間で実施されるときに通過するノードの数に従って行ってもよい。
【００９８】
Ｓ４０３．メインＣＰＵがシステム沈黙を開始する。
【００９９】
システム沈黙プロセスについては、ステップＳ３０３を参照してもよい。ステップＳ３０３との差異は、ステップＳ３０３における沈黙情報を、ＮＣグループ２１を用いることによってドメインの間で伝播してもよく、または、ＮＣグループ２２を用いることによってドメインの間で伝播してもよいが、ステップＳ４０３において、ＮＣグループ２１は動作せず、ＮＣグループ２２のみを用いることによってドメイン間で当該沈黙情報を伝播できるということである。
【０１００】
Ｓ４０４．別のターゲットＮＣを起動して、第１のＮＣグループ内の当該別のターゲットＮＣと元のＮＣの間のトポロジ関係を確立する。
【０１０１】
ルート・レジスタを構成することによって、転送関係が第１のＮＣグループ内の当該別のターゲットＮＣと少なくとも１つの元のＮＣの間で確立される。第１のＮＣグループが完全相互接続構造を使用する場合、確立された転送関係は、第１のＮＣグループ内の当該別のターゲットＮＣと全てのＮＣの間の転送関係である。このように、当該別のターゲットＮＣにより受信されたデータを他のＮＣに転送してもよく、他のＮＣが当該データを当該別のターゲットＮＣに転送してもよい。
【０１０２】
Ｓ４０５．メインＣＰＵが、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵを制御するための命令を使用して、クロス・ドメイン・アクセスが第１のＮＣグループを用いることによって実施されるようにルートを変更する。
【０１０３】
特に、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵのルート・レジスタ構成が修正される。当該少なくとも１つのＣＰＵは、ステップ４０２においてデータ状態をＩ状態に構成するＣＰＵを含み、また、元々Ｉ状態のＣＰＵを含む。当該ルート・レジスタに記録され別のドメイン内のＣＰＵにアクセスするポートは、第１のＮＣグループを用いることによりクロス・ドメイン・アクセスを実施するポートに修正される。
【０１０４】
第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵにおいて、当該データ状態がステップＳ４０２で既にＩ状態に構成され、したがって、ルート情報を当該ステップで修正してもよい。
【０１０５】
当該ステップについてはステップ３０４を参照してもよく、ここでは詳細は与えない。
【０１０６】
第１のＮＣグループに切り替えるべき特定のルートをポリシに従って変更してもよく、本発明の当該実施形態では限定されないことに留意すべきである。例えば、２つのＮＣグループを通るルートの数を当該２つのＮＣグループの性能に従って比例的に割り当ててもよく、または、比較的少数のＣＰＵ／ＮＣを訪問する経路がルートの２つの端点の間で訪問されたＣＰＵ／ＮＣの数に従ってルートとして選択し構成される。
【０１０７】
例示的に、ＣＰＵ２３１がＣＰＵ２４１にアクセスする。ＣＰＵ２３１の元のルート構成に従って、次のノードはＣＰＵ２３２であり、アクセス経路全体がＣＰＵ２３１−−ＣＰＵ２３２−−ＮＣ２２１−−ＮＣ２２２−−ＣＰＵ２４２−−ＣＰＵ２４１であってもよい。ルート・レジスタが修正された後、当該ルート・レジスタ内の次のノードはＮＣ２１１に構成され、新たなルートはＣＰＵ２３１−−ＮＣ２１１−−ＮＣ２１２−−ＣＰＵ２４１である。別の例として、ＣＰＵ２３４はＣＰＵ２５２にアクセスする。ＣＰＵ２３４の元のルート構成において、次のノードがＣＰＵ２３３であり、アクセス経路全体がＣＰＵ２３４−−ＣＰＵ２３３−−ＮＣ２２１−−ＮＣ２２２−−ＮＣ２２３−−ＣＰＵ２５２であってもよいことを仮定する。ルート・レジスタが修正された後、当該ルート・レジスタ内の次のノードはＮＣ２１１に構成され、当該アクセス経路全体がＣＰＵ２３４−−ＮＣ２１１−−ＮＣ２１２−−ＮＣ２１３−−ＣＰＵ２５１−−ＣＰＵ２５２に変化してもよい。
【０１０８】
当該ステップにおいて、任意選択の方式は、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施するＣＰＵのうち、第１のＮＣグループに直接接続されたＣＰＵは、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えられるというものである。
【０１０９】
Ｓ４０６．当該ルートが修正された後、メインＣＰＵがシステム沈黙をキャンセルする。
【０１１０】
ＣＰＵ２３４が当該ＣＰＵの沈黙コアの沈黙状態をキャンセルし、ＣＰＵ２３４が、沈黙キャンセル・コマンドを用いることによって、他のＣＰＵの構成を修正して当該他のＣＰＵの沈黙状態をキャンセルする。沈黙をキャンセルする詳細なプロセスについては、Ｓ３０５を参照されたい。マルチＣＰＵシステムのシステム沈黙がキャンセルされた後、各ＣＰＵは正常な実行を復元し、別のターゲットＮＣが追加される。
【０１１１】
以上のステップは、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵが、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるのを実装する。
【０１１２】
本発明の１実施形態はさらにルート切替え方法を提供する。第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵのうち、ドメイン間でアクセスされる異なるシンクＣＰＵに依存して、幾つかのシンクＣＰＵへのクロス・ドメイン・アクセスは第１のＮＣグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えられ、他のシンクＣＰＵへのクロス・ドメイン・アクセスが依然として第２のＮＣグループを用いることによって実施される。以下で詳細な説明を与える。
【０１１３】
当該実施形態のステップＳ４０２では、ＣＰＵのルート・レジスタに記録された全てのデータ状態がＩ状態に構成されてもよい。Ｉ状態に構成される必要があるデータ状態により描かれたデータが異なるＣＰＵから来てもよい。したがって、当該ステップを以下のように改善してもよい。即ち、データ状態が異なるデータ・ソースに依存してグループ化され、幾つかのＣＰＵから来るデータのデータ状態がＩ状態に構成され、他のＣＰＵから来るデータの対応する状態は不変のままである。
【０１１４】
即ち、ステップＳ４０２をＳ４０７で置き換えてもよい。
【０１１５】
Ｓ４０７．メインＣＰＵが、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵに命令を送信し、当該命令を受信したＣＰＵが、記録されたデータ状態の一部を無効状態に構成する。当該命令に従って無効状態に構成されたデータ状態が、メインＣＰＵによりアクセスされている幾つかのシンクＣＰＵに対応するデータ状態であってもよい。換言すれば、単一のＣＰＵに対して、当該ＣＰＵにより記録されるデータ状態は、Ｎ個のクロス・ドメインのシンクＣＰＵから来るデータのデータ状態を含む。当該ステップにおいて、当該Ｎ個のクロス・ドメインのシンクＣＰＵのうちＭ個のクロス・ドメインのシンクＣＰＵから来るデータのデータ状態は無効状態に構成され、Ｍ＜Ｎである。アクセスされたシンクＣＰＵおよびアクセスを開始したＣＰＵは異なるＱＰＩドメイン内にある。したがって、アクセスされたシンクＣＰＵを簡単にクロス・ドメインのシンクＣＰＵと称する。
【０１１６】
特に、アクセスされたデータを取得した後、ＣＰＵが当該アクセスされたデータのデータ状態を当該ＣＰＵのキャッシュに記録してもよい。アクセスされたクロス・ドメインのシンクＣＰＵの数がＮであると仮定すると、当該ＣＰＵはＮ個のＣＰＵから来るデータのデータ状態を記録する。当該ステップにおいて、当該Ｎ個のＣＰＵのうちＭ個のクロス・ドメインのシンクＣＰＵから来るデータのデータ状態は無効状態に構成され、Ｍ＜Ｎであり、ＭおよびＮの両方は自然数である。残りのＮ−Ｍ個のＣＰＵのデータのデータ状態は不変のままである。
【０１１７】
任意選択で、当該Ｍ個のＣＰＵは第１のＮＣグループに直接接続される。ステップＳ４０８においてルート切り替えを実施した後、当該Ｍ個のＣＰＵへのクロス・ドメイン・アクセスを他のＣＰＵによる転送なしに実施してもよい。
【０１１８】
ＣＰＵに記録されたデータ状態は、当該ＣＰＵによりアクセスされたデータのデータ状態である。当該データ状態は当該ＣＰＵにバッファされたデータに対応し、当該データが来るメモリ・アドレスに対応する。当該データが来るメモリ・アドレスは当該メモリ・アドレスを管理するＣＰＵに対応する。したがって、当該データ状態が当該データを提供するＣＰＵ（シンクＣＰＵ）に対応してもよい。
【０１１９】
理解の簡単さのため、さらなる解釈をここで与える。即ち、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵのうち、各ＣＰＵに記録されたデータ状態は、当該ＣＰＵによりアクセスされたことのあるデータのデータ状態であり、当該ＣＰＵによりアクセスされたことのあるデータが他のＣＰＵから来てもよい。当該ＣＰＵをまた、アクセスされたＣＰＵまたはシンクＣＰＵと称してもよい。シンクＣＰＵのうち、全部でＮ個のＣＰＵがアクセスを開始したＣＰＵ（ソースＣＰＵ）と異なるＱＰＩドメイン内にある。当該実施形態では、当該Ｎ個のＣＰＵのうちＭ個のシンクＣＰＵのみのデータ状態が無効状態に構成される。したがって、後続のステップにおいて、ルート切り替えが当該Ｍ個のＣＰＵに実施される。
【０１２０】
複数のアルゴリズムが、当該データのデータ状態が来るＣＰＵを選択するために利用可能である。例えば、アクセス・トランザクションのソースＣＰＵとシンクＣＰＵの間で訪問されたＣＰＵノードの数に従って、ソースＣＰＵが第１のＮＣグループを用いることによってシンクＣＰＵにアクセスするとき比較的少数の他のＣＰＵが訪問される場合、当該ルートは第１のＮＣグループに切り替えられ、そうでない場合は、第２のＮＣグループが依然として使用中である。
【０１２１】
例えば、図２に示すアーキテクチャにおいて、ＣＰＵ２３１はＣＰＵ２４１に対応するデータ状態およびＣＰＵ２４２に対応するデータ状態を記録する。ステップＳ４０２に従って、ＣＰＵ２３１の全てのデータ状態がＩ状態に構成され、ステップＳ４０７に従って、ＣＰＵ２４１に対応しＣＰＵ２３１内にあるデータ状態のみをＩ状態に構成してもよく、ＣＰＵ２４２に対応するデータ状態は不変のままである。
【０１２２】
ステップＳ４０２がＳ４０７で置き換えられる場合、ステップＳ４０５をＳ４０８で置き換える必要がある。
【０１２３】
Ｓ４０８．メインＣＰＵが、幾つかのクロス・ドメインのシンクＣＰＵへのクロス・ドメイン・アクセスを第１のＮＣグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えるように、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵに指示する。即ち、ステップＳ４０７におけるＩ状態に構成されたデータ状態に対応する当該Ｍ個のＣＰＵへのクロス・ドメイン・アクセスは、第１のＮＣグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えられる。特に、当該ＣＰＵのルート・レジスタ内のクロス・ドメイン・アクセスに対するポートは当該ＣＰＵ内のターゲットＮＣに接続されたポートに構成される。残りのデータ状態に対応するクロス・ドメインのシンクＣＰＵへのアクセスを不変に保つことができる。
【０１２４】
ステップＳ４０６で与えた例を依然として用いると、ＣＰＵ２３１によるＣＰＵ２４１へのアクセスを、第１のＮＣグループを用いることによって実施されるアクセスに切り替えてもよく、ＣＰＵ２３１によるＣＰＵ２４２へのアクセスは依然として第２のＮＣグループを使用する。
【０１２５】
ステップＳ４０１、Ｓ４０７、Ｓ４０３、Ｓ４０８、およびＳ４０５により形成される実施形態（図４の方式２）において、ルート管理がより改良され、ルートを用いることによって実施されるクロス・ドメインＣＰＵアクセスの効率を、ステップＳ４０１、Ｓ４０２、Ｓ４０３、Ｓ４０４、およびＳ４０５により形成される実施形態（図４の方式１）と比較して改善することができる。
【０１２６】
実施形態１および実施形態２ではＮＣホット・リムーブのプロセスおよびＮＣホット・アッドのプロセスをそれぞれ説明した。一緒に組み合わされる場合、当該２つのプロセスはＮＣホット・スワップのプロセスである。それらをまた、２つの独立なプロセスとして別々に使用してもよい。単一のＮＣまたは複数のＮＣを並列にホット・アッドまたはホット・リムーブしてもよい。
【０１２７】
実施形態３
実施形態１では、ターゲットＮＣが除去された後、ターゲットＮＣが配置されたＮＣグループ全体はもはやデータを転送しない。このプラクティスは、高い切替え速度と単純な動作の特徴を有する。
【０１２８】
図５を参照すると、当該実施形態は別のＮＣホット・リムーブ方法を提供する。ターゲットＮＣが除去された後、ターゲットＮＣが配置されたＮＣグループ内の残りのＮＣのうち少なくとも１つのＮＣは正常に動作を継続でき、即ち、データを転送することができる。実施形態１の解決策と比べると、ＮＣの利用効率が改善される。以下では、図２のアーキテクチャを依然として参照して本発明の当該実施形態を詳細に説明する。
【０１２９】
Ｓ５０１．メインＣＰＵが第１のＮＣグループ内のターゲットＮＣを除去する必要があることを示す信号を受信する。
【０１３０】
ターゲットＮＣは、除去すべきＮＣ、即ち、当該実施形態ではＮＣ２１１である。当該ステップはステップＳ３０１と同じであり、ここでは繰り返さない。
【０１３１】
Ｓ５０２．メインＣＰＵが、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するマルチＣＰＵシステム内の全てのＣＰＵに、当該ＣＰＵにより記録されたデータ状態を無効状態に構成するように指示する。
【０１３２】
当該ステップはステップＳ３０２と同様である。Ｓ３０２の内容を参照してもよく、当該ステップはここでは詳細に説明しない。差異は、ステップＳ３０２において、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施するＣＰＵのデータ・レコードが無効状態に構成され、ステップＳ５０２において、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するＣＰＵのデータ・レコードが無効状態に構成され、ターゲットＮＣではなく第１のＮＣグループ内の他のＮＣを用いることによってクロス・ドメイン・アクセスを実施する他のＣＰＵの記録されたデータ状態は不変のままであってもよいということである。したがって、本願では、影響されるＣＰＵの範囲が削減される。
【０１３３】
ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するＣＰＵは、ターゲットＮＣを直接使用することによってクロス・ドメイン・アクセスを実施するＣＰＵを含み、また、アクセス要求が別のＮＣまたは別のＣＰＵにより転送された後にターゲットＮＣを間接的に使用することによってクロス・ドメイン・アクセスを実施するＣＰＵを含む。
【０１３４】
Ｓ５０３．メインＣＰＵがシステム沈黙を開始する。
【０１３５】
メインＣＰＵが複数のコアを有する場合、システム沈黙の範囲は、メインＣＰＵを含む全てのＣＰＵである。上述のように、メインＣＰＵが複数のコアを有する場合、メインＣＰＵが沈黙しないように少なくとも１つのコアを出てもよく、残りのコアが沈黙し、他のＣＰＵの全てのコアが沈黙する。メインＣＰＵにおいて沈黙状態にないコアは後続の動作を実施するために使用される。
【０１３６】
当該沈黙プロセスはＳ３０３と同一であり、ここでは詳細に説明しない。
【０１３７】
Ｓ５０４．メインＣＰＵが、ターゲットＮＣを隔離するためにルート構成を更新するように第１のＮＣグループ内の残りのＮＣに指示する。
【０１３８】
ターゲットＮＣを除去する必要があるので、第１のＮＣグループ内の残りのＮＣの間の信号送信チャネルを変更する必要がある。第１のＮＣグループ内の残りのＮＣ上のルート構成により、ターゲットＮＣを隔離して、他のＮＣが（パケットまたは管理情報のような）情報をターゲットＮＣに送信し続けるのを防ぐことができる。したがって、残りのＮＣにより記録されたルートを更新する必要がある。第１のＮＣグループ内の残りのＮＣ全てがルート構成を更新する必要があるわけではない。例えば、ターゲットＮＣに直接接続されたＮＣのルート構成を更新してもよく、残りのＮＣのルート構成は不変のままである。
【０１３９】
任意選択で、当該ステップにおいて第１のＮＣグループを調節した結果は、ターゲットＮＣが存在しなかったケースにおける第１のＮＣグループ内の各ＮＣのルート構成と等価である。
【０１４０】
当該実施形態では、ＮＣ２１１が除去された後、ＮＣ２１４、ＮＣ２１２、およびＮＣ２１１の間の信号チャネルは消える。したがって、ＮＣグループ２１において除去されないＮＣのルートを、ＮＣ２１１に直接接続されたＮＣ２１４およびＮＣ２１２内のＮＣ２１１関連ルート情報の削除を含めて、再構成する必要がある。例えば、ＮＣ２１４の元のルート構成において、ＱＰＩドメイン２３にアクセスする必要がある場合、訪問すべき次のＮＣはＮＣ２１１である。次に、ＮＣ２１１を除去する必要がある。したがって、ＮＣ２１４のルート構成において、ＱＰＩドメイン２３にアクセスするために訪問すべき次のＮＣをＮＣ２１２に構成してもよい。
【０１４１】
さらに、ＣＰＵからＮＣグループへのデータ送信が追加される場合、シンクＣＰＵへのルートに関する情報を対応するＮＣに追加してもよい。新たに追加されたルート情報はシンクＣＰＵを指すポートを記録する。当該ルート情報を、アクセス・トランザクションを実施するプロセスにおける学習により、ＮＣにより取得してもよい。当該情報が追加されない場合、当該アクセス要求をまた、ブロードキャスト方式でシンクＣＰＵに送信してもよい。
【０１４２】
例えば、最初にＣＰＵ２３１が、ＮＣ２１１を用いることによってＣＰＵ２４１へのクロス・ドメイン・アクセスを実施する。ＮＣ２１１が除去された後、ＣＰＵ２３１からのクロス・ドメイン・アクセス要求がＮＣ２２１によって引き継がれる。したがって、ＣＰＵ２４１にアクセスするためのポート情報をＮＣ２２１のルート構成に追加してもよい。
【０１４３】
当該ステップにおいてＮＣグループ２１を調節した結果は、ＮＣ２１１が存在しなかったケースにおいてＮＣグループ２１が各ＱＰＩドメインに接続された後のＮＣグループ２１内の各ＮＣのルート構成と等価である。
【０１４４】
以上は、完全な説明ではなく単純な例である。特に、ＱＰＩドメイン２１内により多くのＮＣがあるケースでは、ＮＣグループ２１内のＮＣのルート構成の調節はより複雑である。
【０１４５】
ステップＳ５０４および後続のステップＳ５０５は順序に敏感ではなく、例えば、それらを同時に実施してもよく、または、何れかのステップが最初に実施される。
【０１４６】
Ｓ５０５．メインＣＰＵが、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施する全てのＣＰＵにそのルート構成を修正するように指示し、その結果、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施する全てのＣＰＵが、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替える。
【０１４７】
メインＣＰＵはマルチＣＰＵシステム全体のトポロジを学習する。即ち、メインＣＰＵは、ＣＰＵ間の接続関係と外部アクセスのために各ＣＰＵにより使用されるポートとを知る。当該ステップは、別のＱＰＩドメインにアクセスするためにターゲットＮＣにより使用されるポートを変更することによって実装することができる。
【０１４８】
当該ステップの原理はステップＳ３０４と同一である。Ｓ３０４を参照してもよく、ここでは詳細は与えない。差異は、より少ないＣＰＵが当該ステップにおいて切り替えられること、即ち、より少ないＣＰＵのルート構成が変更されることである。
【０１４９】
ステップＳ５０５の後、ＮＣを除去することができる。
【０１５０】
Ｓ５０６．メインＣＰＵがシステム沈黙をキャンセルする。
【０１５１】
当該ステップについては、ステップＳ３０５を参照してもよい。
【０１５２】
実施形態４
図６を参照すると、当該実施形態では、第１のＮＣグループ内の既存のＮＣが動作しているケースにおいて、新たなＮＣ（以降、ターゲットＮＣと称する）が第１のＮＣグループに追加され、第１のＮＣグループ内のターゲットＮＣおよび既存のＮＣの共同動作を実装する。ターゲットＮＣを第１のＱＰＩドメインに接続してもよい。第１のＱＰＩドメイン内にあり第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵは、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施することに切り替わる。
【０１５３】
例えば、実施形態３においてＮＣ２１１がホット・リムーブされた後、新たなＮＣ２１１がＮＣグループ２１にホット・アッドされる。したがって、ＮＣ２１１に直接接続されたＣＰＵ２３１が、ターゲットＮＣを用いることによって別のＱＰＩドメインにアクセスすることに切り替わってもよい。当該実施形態は実施形態２と同様であり、比較的狭い範囲において相違する。当該実施形態では、クロス・ドメイン・アクセスのルートが切り替えられるＣＰＵは第１のＱＰＩドメイン内のＣＰＵに限定され、実施形態２において、かかる制限は課されない。さらに、当該実施形態においてルートが切り替えられるＣＰＵは、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施し、実施形態２において、ルートが切り替えられるＣＰＵは第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する。当該実施形態の主要な部分は実施形態２と同様であるので、当該実施形態の大部分の内容については、実施形態２を参照してもよい。
【０１５４】
当該実施形態を、実施形態３の後に実施して、共同でＮＣ置換方法を形成してもよい。当該実施形態をまた別々に実施してもよく、その結果、新たなＮＣが正常に実行するＮＣグループに追加される。
【０１５５】
Ｓ６０１．メインＣＰＵが、ターゲットＮＣが第１のＮＣグループに追加されることを検出する。
【０１５６】
Ｓ６０１が実施されているとき、正常に動作するＮＣが第１のＮＣグループ内に存在する。即ち、少なくとも１つのＮＣは、データを転送する準備ができた状態にあるか、または、データを転送している。実施形態２では、ステップＳ４０１が実施されているとき、第１のＮＣグループ内の全てのＮＣはもはや動作しない。
【０１５７】
当該ステップはステップＳ４０１と同一であり、ここでは詳細に説明しない。
【０１５８】
Ｓ６０２．メインＣＰＵが、第１のＱＰＩドメイン内にあり第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵに記録されたデータ状態を、Ｉ状態に構成するように指示する。
【０１５９】
当該ステップにおいて、Ｉ状態に構成される必要があるＣＰＵは、後続のステップでルート切り替えを実施する準備ができたＣＰＵである。
【０１６０】
異なるアルゴリズムを使用して、特定のＣＰＵを選択してもよい。例えば、ターゲットＮＣの性能に従って、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する幾つかのＣＰＵが、ターゲットＮＣを用いることによってパケットを送信するために選択される。
【０１６１】
ＣＰＵに記録されたデータ状態をどのようにＩ状態に構成するかについては、ステップＳ４０２を参照されたい。
【０１６２】
Ｓ６０３．メインＣＰＵがシステム沈黙を開始する。
【０１６３】
どのようにシステム沈黙を実施するかについては、ステップＳ４０３を参照されたい。
【０１６４】
Ｓ６０４．ターゲットＮＣを起動して、第１のＮＣグループ内のターゲットＮＣと元のＮＣの間のトポロジ関係を確立する。
【０１６５】
ステップＳ４０４を参照されたい。
【０１６６】
Ｓ６０５．メインＣＰＵが、当該少なくとも１つのＣＰＵのルート構成を修正するように当該少なくとも１つのＣＰＵを制御するための命令を送信する。その結果、当該少なくとも１つのＣＰＵが、第１のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替える。特に、当該少なくとも１つのＣＰＵの各々のルート・レジスタのルート構成が修正され、その結果、当該ルート・レジスタに記録され別のドメイン内のＣＰＵにアクセスするポートは、ターゲットＮＣを用いることによってクロス・ドメイン・アクセスを実施するポートに構成され、例えば、当該少なくとも１つのＣＰＵのポートのうちターゲットＮＣに直接接続されたポートに構成される。
【０１６７】
当該ステップの詳細については、ステップＳ４０５を参照してもよく、ここでは詳細は与えない。差異は、ステップＳ４０５において、ルート構成が修正されたＣＰＵが配置されるＱＰＩドメインは決定されないが、当該実施形態では、ルート構成が修正されたＣＰＵが第１のＱＰＩドメイン内に配置されることである。
【０１６８】
Ｓ６０６．ルートが修正された後、メインＣＰＵがシステム沈黙をキャンセルする。
【０１６９】
沈黙をキャンセルするプロセスはステップＳ４０６と同様であり、ステップＳ４０６を参照してもよい。
【０１７０】
実施形態２と同様に、本発明の当該実施形態はさらにルート切替え方法を提供する。異なるシンクＣＰＵに依存して、切り替えるべきルートが選択される。図６において、当該２つの方式が方式１および方式２とマークされる。ステップＳ６０１、Ｓ６０２、Ｓ６０３、Ｓ６０４、Ｓ６０５、およびＳ６０６は方式１と呼ばれる。ステップＳ６０１、Ｓ６０７、Ｓ６０３、Ｓ６０４、Ｓ６０８、およびＳ６０６は方式２と呼ばれる。
【０１７１】
方式１および方式２は２つの異なるステップを有する。第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する第１のＱＰＩドメイン内の少なくとも１つのＣＰＵのうち、ドメイン間でアクセスされる異なるシンクＣＰＵに依存して、幾つかのシンクＣＰＵへのクロス・ドメイン・アクセスは第１のＮＣグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えられ、他のシンクＣＰＵへのクロス・ドメイン・アクセスが依然として第２のＮＣグループを用いることによって実施される。これは、ステップＳ６０２を以下のステップＳ６０７で置き換え、ステップＳ６０５をステップＳ６０８で置き換えることと等価である。
【０１７２】
Ｓ６０７．メインＣＰＵが、第１のＱＰＩドメイン内にあり第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵに命令を送信し、当該命令を受信したＣＰＵは、記録されたデータ状態の幾つかを無効状態に構成する。換言すれば、単一のＣＰＵに対して、当該ＣＰＵにより記録されるデータ状態は、Ｎ個のクロス・ドメインのシンクＣＰＵから来るデータのデータ状態である。当該ステップにおいて、Ｍ個のクロス・ドメインのシンクＣＰＵから来るデータのデータ状態は無効状態に構成され、Ｍ＜Ｎである。
【０１７３】
当該ステップの詳細と例については、ステップＳ４０７を参照してもよく、ここでは詳細は与えない。Ｓ４０７と比較すると、差異は、ステップＳ６０７において、データ状態が無効状態に構成されるＣＰＵが第１のＱＰＩドメインに制限され、ステップＳ４０７において、ＱＰＩドメイン制限が課されないことである。
【０１７４】
Ｓ６０８．メインＣＰＵが、第２のＮＣグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも１つのＣＰＵに、幾つかのシンクＣＰＵへのクロス・ドメイン・アクセスを、第１のＮＣグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えるように指示する。例えば、ステップＳ６０７においてＩ状態に構成されたデータ状態に対応するＣＰＵへのクロス・ドメイン・アクセスは、ターゲットＮＣを用いることによって実施されるクロス・ドメイン・アクセスに切り替えられる。特に、クロス・ドメイン・アクセスを実施するＣＰＵのルート・レジスタにおいて、クロス・ドメイン・アクセスに使用されるポートは、当該ＣＰＵのターゲットＮＣに接続されたポートに構成され、残りのデータ状態に対応するシンクＣＰＵへのアクセスが不変のままであってもよい。
【０１７５】
当該ステップについてはステップＳ４０８を参照してもよい。
【０１７６】
以上の実施形態ではマルチＣＰＵシステムを説明し、本発明はさらにコンピュータに関連する実施形態を提供することに留意すべきである。当該コンピュータは上述のマルチＣＰＵシステムを含み、さらにＢＩＯＳを含む。当該ＢＩＯＳはメインＣＰＵにプログラムを提供し、メインＣＰＵは、当該プログラムを実行することによって管理命令および制御命令を送信する。当該ＣＰＵがまた、ＣＣバスを用いることによって接続されＮＣを用いることによって通信を実施するプロセッサであってもよい。ＱＰＩドメインとＮＣグループの間でＱＰＩバスを使用してもよく、ＮＣ間でＱＰＩバスまたは別のバスを使用してもよい。
【０１７７】
本発明の各態様または各態様の可能な実装方式を特にシステム、方法、またはコンピュータ・プログラム製品として実装してもよい。したがって、本発明の各態様または各態様の可能な実装方式が、ハードウェアのみの実施形態、ソフトウェアのみの実施形態（ファームウェア、常駐ソフトウェア等を含む）、またはソフトウェアおよびハードウェアの組合せを有する実施形態の形態を使用してもよく、これらは本明細書において均一に「回路」、「モジュール」、または「システム」と称される。さらに、本発明の各態様または各態様の可能な実装方式がコンピュータ・プログラム製品の形をとってもよい。当該コンピュータ・プログラム製品とは、コンピュータ可読媒体に格納されたコンピュータ可読プログラム・コードのことをいう。
【０１７８】
当該コンピュータ可読媒体がコンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってもよい。当該コンピュータ可読記憶媒体は、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、およびコンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）のような、電子、磁気、光、電磁気、赤外線、または半導体のシステム、デバイス、もしくは装置、またはそれらの任意の適切な組合せを含むがこれらに限られない。
【０１７９】
コンピュータ内のプロセッサはコンピュータ可読媒体に格納されたコンピュータ可読プログラム・コードを読み取り、その結果、当該プロセッサは流れ図内の各ステップまたはステップの組合せで指定された機能および動作を実施でき、ブロック図内の各ブロックまたはブロックの組合せで指定された機能および動作を実装するための装置が生成される。
【０１８０】
明らかに、当業者は本発明に様々な修正および変形を加えることができる。本発明は、これらの修正および変形が以下の諸請求項およびその均等な技術により定義される保護の範囲内に入るならば、それらを包含しようとするものである。
【符号の説明】
【０１８１】
１１１  ノード・コントローラ
１１２  ノード・コントローラ
２１１  ノード・コントローラ
２１２  ノード・コントローラ
２１３  ノード・コントローラ
２１４  ノード・コントローラ
２２１  ノード・コントローラ
２２２  ノード・コントローラ
２２３  ノード・コントローラ
【図１】
0006536677.tif 000002
【図２】
0006536677.tif 000003
【図３】
0006536677.tif 000004
【図４】
0006536677.tif 000005
【図５】
0006536677.tif 000006
【図６】
0006536677.tif 000007