(57)【要約】【課題】論理プロセッサを支援する物理プロセッサの再割り当てが、プロセッサの動作と同時に実行されるようにする。【解決手段】１つの物理プロセッサの動作状態が、他の物理プロセッサ上にロードされ、論理プロセッサが、異なる物理プロセッサにより支援されるようになされる。この再割り当ては、プロセッサ動作と同時に、かつオペレーティング・システムに対してトランスペアレントに実行される。【選択図】図２
2008033933.tif 000002
【特許請求の範囲】
【請求項１】
論理プロセッサを支援する物理プロセッサが変更されるべきであることを決定することと、
前記物理プロセッサの動作と同時に、前記論理プロセッサに対して他の物理プロセッサを再割り当てすることと、
を含む、処理環境の物理プロセッサを再割り当てする方法。
【請求項２】
前記再割り当てすることが、前記物理プロセッサと前記他の物理プロセッサのうちの１つ以上のオペレーティング・システムに対してトランスペアレントである、請求項１に記載の方法。
【請求項３】
前記再割り当てすることが、前記他の物理プロセッサ上に、現在前記論理プロセッサに割り当てられている前記物理プロセッサの動作状態をロードすることを含み、前記ロードすることに呼応して、前記他の物理プロセッサが、前記論理プロセッサに割り当てられる、請求項１に記載の方法。
【請求項４】
前記動作状態が、前記物理プロセッサの、
１つ以上の汎用レジスタと、１つ以上のアクセス・レジスタと、１つ以上の浮動小数点レジスタと、１つ以上の制御レジスタと、１つ以上のタイミング機能レジスタと、１つ以上のシステム構成レジスタと、１つ以上の命令アドレス・レジスタとのうちの少なくとも１つからのコンテンツを含む、請求項３に記載の方法。
【請求項５】
前記再割り当てすることが、
前記処理環境の新しい構成を決定することと、
前記物理プロセッサが置換されるべきであることを決定するために、現在前記論理プロセッサに割り当てられている前記物理プロセッサにより前記新しい構成を使用することと、
前記物理プロセッサで、前記物理プロセッサの動作状態を保存することと、
前記他の物理プロセッサが、前記論理プロセッサに割り当てられるべきであることを決定するために、前記他の物理プロセッサにより前記新しい構成を調べることと、
前記他の物理プロセッサ上に、前記物理プロセッサの保存された動作状態をロードすることとを含む、請求項１に記載の方法。
【請求項６】
前記再割り当てすることが、前記物理プロセッサおよび前記他の物理プロセッサの動作と同時であり、前記物理プロセッサおよび前記他の物理プロセッサが、前記再割り当て時に、チェック停止、クロック停止、または故障モードのうちの１つではない、請求項５に記載の方法。
【請求項７】
前記他の物理プロセッサが、前記物理プロセッサを置換するべき前記他の物理プロセッサであることを決定するために、前記新しい構成を使用することをさらに含む、請求項５に記載の方法。
【請求項８】
前記ロードすることが、
前記物理プロセッサの前記動作状態が保存されているストレージ内のロケーションを決定することと、
前記決定されたロケーションから、前記物理プロセッサの前記動作状態をロードすることとを含む、請求項７に記載の方法。
【請求項９】
前記ロードすることが、前記他の物理プロセッサのプロセッサ数を反映して前記物理プロセッサの前記動作状態を更新することをさらに含む、請求項８に記載の方法。
【請求項１０】
前記新しい構成を前記決定することが、
再割り当てされるべき前記少なくとも物理プロセッサを含むソース・プロセッサ・リストを作成することと、
前記代替として使用される前記少なくとも他の物理プロセッサを含むターゲット・プロセッサ・リストを作成することとを含み、前記ソース・プロセッサ・リストおよび前記ターゲット・プロセッサ・リストの前記作成が、前記再割り当ての事由に依存する、請求項５に記載の方法。
【請求項１１】
前記再割り当てを制御する前記処理環境のマスタ・プロセッサを選択することをさらに含む、請求項５に記載の方法。
【請求項１２】
物理プロセッサにより支援される論理プロセッサと、
前記論理プロセッサの前記支援として前記物理プロセッサを置換する、前記論理プロセッサに再割り当てされる他の物理プロセッサとを含み、
前記物理プロセッサの動作と同時に、前記他の物理プロセッサが再割り当てされる、処理環境の物理プロセッサを再割り当てするシステム。
【請求項１３】
処理環境の物理プロセッサを再割り当てするためのコンピュータ・プログラムであって、コンピュータに、
論理プロセッサを支援する物理プロセッサが変更されるべきであることを決定する決定機能と、
前記物理プロセッサの動作と同時に、前記論理プロセッサに対して他の物理プロセッサを再割り当てする再割り当て機能と、
を実現させる前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、処理環境の中の処理に関し、特に、処理環境の論理プロセッサを支援する物理プロセッサの同時再割り当てに関する。
【背景技術】
【０００２】
オペレーティング・システムは、プロセッサを論理プロセッサとみなす。この論理プロセッサは、特定の物理プロセッサにより支援される。プロセッサの物理割り当ては、機械が電源を入れられ、オペレーティング・システムがロードされる前に初期化されるときに決定される。通常、物理プロセッサに対して論理プロセッサの割り当てが行われると、この割り当ては変更されない。
【０００３】
しかしながら、特定の厳しい条件の下では、物理プロセッサに対する論理プロセッサの割り当てを変更できる。特に、プロセッサが故障するとき、処理環境の中に予備プロセッサが存在している場合、割り当てを変更できる。具体的には、プロセッサが故障した状況では、割り当てが変更され、故障したプロセッサの代わりに、予備プロセッサが論理プロセッサを支援するようになされる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
割り当て変更は、故障したプロセッサに対して利用可能であるが、論理プロセッサの物理支援を再割り当てする改良された機能に対する必要性が存在する。一例では、動作中のプロセッサ用の物理プロセッサ再割り当てに対する機能が必要である。例えば、論理プロセッサを支援する物理プロセッサの動作と同時に実行される物理プロセッサ再割り当て機能に対する必要性が存在する。さらに、トランスペアレントに、かつオペレーティング・システム・ソフトウェアを使用するオーバーヘッドなしに実行される再割り当て機能に対する必要性が存在する。
【課題を解決するための手段】
【０００５】
処理環境の物理プロセッサを再割り当てする方法を提供することにより、先行技術の欠点が克服されるとともに、さらなる利点がもたらされる。例えば、方法は、論理プロセッサを支援する物理プロセッサが変更されるべきであることを決定すること、および論理プロセッサに対して他の物理プロセッサを再割り当てすることを含み、再割り当てすることが、物理プロセッサの動作と同時に行われる。
【０００６】
また、上述した方法に対応するシステムおよびコンピュータ・プログラムが、本明細書に説明され、特許請求される。
【０００７】
その他の特徴および利点が、本発明の技術により実現される。本発明の他の実施形態および態様が、本明細書で詳細に説明されるとともに、特許請求する発明の一部とみなされる。
【０００８】
本発明の１つ以上の態様が、特に示されるとともに、本願の特許請求の範囲の中で例として明瞭に特許請求される。本発明の上述の、および他の、目的、特徴、および利点は、詳細な説明を添付図面と照らしあわせて読むことにより、明らかである。
【発明を実施するための最良の形態】
【０００９】
本発明の態様に基づいて、処理環境の１つ以上の論理プロセッサの物理支援が変更される。例えば、現在論理プロセッサに割り当てられている物理プロセッサ（ソース・プロセッサ）は、他の物理プロセッサ（ターゲット・プロセッサ）に置換される。この論理プロセッサに対する他の物理プロセッサの再割り当ては、最初に論理プロセッサを支援する物理プロセッサ（すなわち、ソース・プロセッサ）が動作中（故障、チェック停止、またはクロック停止と対照的に）に実行されるとともに、論理分割ハイパーバイザーを含んで、オペレーティング・システム・ソフトウェアに対してトランスペアレントに、かつオペレーティング・システム・ソフトウェアの関与なしに実行される。再割り当ては、１つ以上の論理プロセッサに対して同時に実行され得る。
【００１０】
本発明の１つ以上の態様が、様々な種類の処理環境において利用される。本発明の１つ以上の態様を取り入れ、かつ使用する処理環境の一実施形態について、図１を参照して説明する。処理環境１００は、１つ以上の接続１０４を介して相互に結合された複数のプロセッサ１０２を含む。この例の各プロセッサは、インターナショナル・ビジネス・マシーンズ・コーポレーション（ＩＢＭ（商標））により提供されるｚ／ＯＳ（商標）オペレーティング・システムを実行処理するｚＳｅｒｉｅｓ（商標）サーバである。例えば、接続１０４は、トークン・リング、ネットワーク接続、ケーブル、または他の任意の種類の接続である。ＩＢＭ（商標）、ｚＳｅｒｉｅｓ（商標）、およびｚ／ＯＳ（商標）は、アメリカ合衆国のニューヨーク州アーモンクにあるインターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である。本明細書で使用される他の名称は、インターナショナル・ビジネス・マシーンズ・コーポレーションまたは他の会社の登録商標、商標または製品名であり得る。
【００１１】
各プロセッサ１０２は、そのオペレーティング・システムに対する論理プロセッサとみなされる。しかしながら、この論理プロセッサは、それに割り当てられた物理プロセッサにより支援される。例えば、プロセッサの物理割り当ては、プロセッサ・タイプ（すなわち、ＣＰＵ、ＳＡＰ）および機器構成（例えば、物理プロセッサのレイアウト、ブックの個数）、もしくは、プロセッサ・タイプ（すなわち、ＣＰＵ、ＳＡＰ）または機器構成（例えば、物理プロセッサのレイアウト、ブックの個数）などに基づいて、環境のファームウェア（例えば、ミリコード）により行われる。
【００１２】
１つ以上の論理プロセッサの物理支援を再割り当てすることが必要であるか、または好ましいときがある。すなわち、１つ以上の論理プロセッサの物理支援を変更することが好ましいときがある。例として、割り当て変更は、ブックの置換動作およびプロセッサのアップグレード時、もしくは、ブックの置換動作またはプロセッサのアップグレード時に有益である。ブックの置換動作時に、ブックは、システムから除去されるべき対象とされる。オペレーティング・システムが、除去対象のブック上に物理的に位置する１つ以上のプロセッサを利用しているとき、退避の一環として、論理プロセッサは、システム内に残る他のブック上に物理的に位置するプロセッサに移動される。同様に、プロセッサのアップグレードが行われるとき、新しいプロセッサ資源が割り当てられる。新しいプロセッサ資源は、予備プロセッサの代わりをし、予備プロセッサの物理ロケーションは、既存の構成によっては最適ではない場合がある。したがって、現在割り当てられている物理プロセッサ資源は、再割り当てされる。
【００１３】
物理プロセッサ再割り当てに関連するロジックの一実施形態について、図２を参照して説明する。一実施例では、このロジックは、処理環境の１つ以上のプロセッサのミリコードで実行される。
【００１４】
図２を参照すると、最初に、ステップ２００で、再割り当てが呼び出される。再割り当ては、例えば、処理環境の資源の再割り当て、または同時ブック置換動作の実行を含む多くの異なる理由で呼び出され得る。また、再割り当ての他の理由も存在している。一実施形態では、再割り当て表示は、処理環境のすべてのプロセッサ上で受信される。他の実施形態では、再割り当て表示は、プロセッサのサブセット上で受信される。
【００１５】
再割り当ての呼び出しに呼応して、ステップ２０２で、再割り当てが、１つ以上のプロセッサの各々について実行される。再割り当てを実行するために、ステップ２０４で、再割り当てされるべき１つ以上の物理プロセッサが決定される（すなわち、１つ以上のソースが決定される）。さらに、ステップ２０６で、再割り当てのターゲットである物理プロセッサが決定される。特定の物理プロセッサが、ターゲットとソースの両方であるかもしれない。例えば、スワップが行われる予定であるとき（例えば、ｉＰＵ１／ｐＰＵ１、ｉＰＵ２／ｐＰＵ２→ｉＰＵ２／ｐＰＵ１、ｉＰＵ１／ｐＰＵ２）、スワップのプロセッサは、ソースとターゲットの両方である。
【００１６】
これらの決定に続いて、ステップ２０８で、再割り当てが行われる。これは、ソース物理プロセッサの動作状態をターゲット物理プロセッサ上に保存するステップを含む。例えば、上述のスワップの例では、物理プロセッサ２の動作状態は、物理プロセッサ１に再割り当てされ、物理プロセッサ１の動作状態は、物理プロセッサ２に再割り当てされる。
【００１７】
物理プロセッサの同時再割り当ての詳細について、図３〜図６を参照して説明する。特に、図３は、４つのプロセッサを含む処理環境内の同時物理プロセッサ再割り当てに関連するロジックの一実施形態を示し、図４は、再割り当てで使用される新しい構成の決定に関連するロジックの一実施形態を示し、図５は、ソース・プロセッサの状態の保存に関連するロジックの一実施形態を示し、図６は、ターゲット・プロセッサで保存された状態のローディングに関連するロジックの一実施形態を示す。
【００１８】
図３を参照すると、それぞれ論理プロセッサ識別子（ｉＰＵｘ）３０２、および物理プロセッサ識別子（ｐＰＵｘ）３０４で示された４つのプロセッサ３００がある。ある時点で、同時物理プロセッサ再割り当て技術が、プロセッサ上で呼び出される。一実施例として、処理環境の動作中の各プロセッサ（または、他の実施形態ではプロセッサのサブセット）上で命令を実行処理することにより、再割り当てが呼び出される。例えば、命令は、実行されるべき動作を示す演算コード、および動作を制御するために使用されるパラメータ・ブロックのアドレスを識別するレジスタ内に保存されたアドレスを含む。パラメータ・ブロックは、再割り当てが退避の一環であるかどうかを示す退避フィールド、再割り当てがリバランス機能の一部であるかどうかを示すリバランス・フィールド、予備プロセッサが同じブック内にあり得るかどうかを示す予備フィールド、退避機能に対するブックの個数を示すブック数、リターン・コード、およびトラッキングおよびデバッギングの記録を提供する古い構成データのような多くのフィールドを含むとともに、例えば、プロセスの始めの構成データ（例えば、ｏｐｅｒ−ＰＰＵ、ｏｐｅｒ−ＣＰＵ、ｏｐｅｒ−ＳＡＰなど）、物理ＰＵ番号ごとのプロセッサの種類を記述するベクトル、物理ＰＵから論理ＰＵへのマッピング、および論理ＰＵごとのプロセッサ情報（例えば、種類、状態、物理ＰＵ識別番号）を含む。
【００１９】
プロセッサ上の命令の呼び出しに呼応して、命令のファームウェア内の呼び出しの結果、プロセッサ・ファームウェア（例えば、ミリコード）が実行処理することにより、再割り当てが実行される。一実施例として、命令の実行処理に呼応して、ステップ３１０で、処理環境のプロセッサを同期化する。この例では、予備プロセッサを含む、すべてのプロセッサに対して同期化が行われる。さらに、単一プロセッサが、マスタ・プロセッサとして選定される。この選定は、無作為に、または事前に定義されたいくつかの基準に基づいて行われ得る。この例では、プロセッサ３がマスタとして選定される。マスタは、システム内の任意の予備プロセッサに対して同期するように警報を出す責任を有するとともに、また、プロセスの流れを制御する責任を有する。
【００２０】
処理環境内の、すべての動作中のプロセッサの同期の達成に呼応して、ステップ３１２で、マスタは、処理環境の新しい構成を決定する。この新しい構成は、例として、処理環境の要件および呼び出しの理由（例えば、ブック退避、プロセッサ再配分など）に基づいて決定される。この決定の一環として、マスタは、再割り当てされるべき１つ以上の物理プロセッサ（ソース）、および詳細に後述するソースに対するターゲットとなるべき１つ以上の物理プロセッサを決定する。この決定に続いて、マスタは、物理プロセッサ割り当てに対する変更について記述する、処理環境の中のグローバル構造（例えば、ハードウェア・システム・エリア・ストレージ・ロケーション）をアップグレードする。例えば、グローバル構造は、どの物理プロセッサが特定の論理プロセッサに再割り当てされるかを示す。この時点で、ステップ３１４において、各プロセッサは同期点に戻る。
【００２１】
その後、マスタは、プロセッサに対して、同期状態を離れて、新しい物理プロセッサ割り当てについて検査させる。ステップ３１６で、再割り当てされるべきマスタにより選択された物理プロセッサは、指定されたストレージ内に、それらのマイクロ・アーキテクチャ構成状態を保存し、ステップ３１８で、同期点に戻る。マイクロ・アーキテクチャ構成状態は、物理プロセッサの動作状態である。それは、例えば、汎用レジスタ、アクセス・レジスタ、浮動小数点レジスタ、制御レジスタ、タイミング機能レジスタ、システム構成レジスタ、命令アドレス・レジスタなどのコンテンツを含むプロセッサ・チェックポイント構成状態の情報を含む。再割り当てされるべきと選択されなかったプロセッサは、ステップ３１８で、同期点に戻る。
【００２２】
その後、マスタは、プロセッサに対して、同期状態を離れて、再び新しい物理プロセッサ割り当てについて検査させる。後述するように、ステップ３２０で、ターゲットとなるべきとマスタにより選択された物理プロセッサは、対応するソース物理プロセッサのマイクロ・アーキテクチャ構成状態をロードし、ステップ３２２で、同期に戻る。また、ステップ３２２で、ターゲットとなるべきと選択されなかったプロセッサは、同期点に戻る。
【００２３】
プロセッサが同期点に戻ることに呼応して、動作は完了し、マスタは、プロセッサに再割り当て手順を終了させる。再割り当ての結果、この実施形態では、論理プロセッサ１（ｉＰＵ１）は、物理プロセッサ２により支援され（参照番号３２４を参照のこと）、論理プロセッサ２（ｉＰＵ２）は、物理プロセッサ１により支援される（参照番号３２６を参照のこと）。
【００２４】
再割り当てプロセスの詳細について以下に説明する。例えば、新しい構成の決定（ステップ３１２）に関連するロジックの一実施形態について、図４を参照して説明する。上述したように、このロジックは、システム内のプロセッサが同期点に達することに呼応して、マスタ・プロセッサ上で実行処理される。
【００２５】
図４を参照すると、問合せ４００で、退避のために再割り当てが実行されているかどうかについて判断される。再割り当ての理由が、再割り当てを呼び出す命令により示される。再割り当てが退避のために実行されているとき、ステップ４０２で、除去対象のブック上に物理的に位置している予備以外のプロセッサを含むソース・プロセッサ・リストが作成される。さらに、ステップ４０４で、ソース・リスト内の各プロセッサに対して、除去対象ではないブックのうちの１つの上に物理的に位置する予備プロセッサを含むターゲット・プロセッサ・リストが作成される。
【００２６】
しかしながら、再割り当てが退避のために実行されていないとき、この実施形態では、再割り当ては、同時プロセッサ・アップグレード動作の一環として実行されている。したがって、ステップ４０６で、例として、プロセッサ・タイプ（例えば、ＣＰＵ、ＳＡＰなど）、および機器構成（例えば、１ブックあたりの物理プロセッサの個数、およびシステム内のブックの個数）に基づく所要の物理ロケーション内にないプロセッサを含むソース・プロセッサ・リストが作成される。これは、例えば、内部ストレージ内に保持されたデータ構造（例えば、表）で決定される。
【００２７】
ソース・リストに加えて、ステップ４０８で、ソース・プロセッサ・リスト内の各プロセッサに対して、その最適な物理ロケーションに位置していないが、ソース・プロセッサ・ロケーションの要件に適合するであろう他のプロセッサが見つけられるターゲット・プロセッサ・リストが作成される。すなわち、各ターゲットは、内部ストレージ内に保持されたデータ構造により決定されるような、プロセッサ・タイプおよび機器構成に基づくその最適の物理ロケーション内にない物理プロセッサである。
【００２８】
ソースおよびターゲット・プロセッサ・リストの作成に続いて、再割り当ての理由にかかわらず、ステップ４１０で、ソースおよびターゲット・リストが保存される。一実施例では、ソースおよびターゲット・プロセッサ・リストは、ハードウェア・システム・エリア・ストレージの共通領域内に保存され、リストが、システム内のすべてのプロセッサに利用可能であるようになされる。
【００２９】
次に、ステップ４１２で、構成が更新される。例として、ハードウェア・システム・エリア・ストレージ内のプロセッサ構成情報は、最終的な構成を反映するように更新される。これは、物理から論理へのベクトル、論理から物理へのベクトル、およびプロセッサ・タイプごとのビット・ベクトル（例えば、プロセッサのＳＡＰ、ＣＰＵなどのタイプを示す）を更新するステップを含む。
【００３０】
マスタが新しい構成を決定した後に、各プロセッサは、新しい物理プロセッサ割り当てを検査しなければならない。この処理の一実施形態について、図５を参照して説明する。最初に、問合せ５００で、プロセッサがその同期点を離れるべきかどうかについて、このロジックを実行処理するプロセッサが決定する。プロセッサが、まだ、その同期点を離れるようにトリガーされていないとき、プロセッサはそのまま残る。プロセッサが、その同期点を離れるようにトリガーされたとき、ステップ５０２で、プロセッサは、ハードウェア・システム・エリア・ストレージからソース・プロセッサ・リストをフェッチする。問合せ５０４で、プロセッサはリストを調べて、それがソース・プロセッサとして指定されているかどうかを判断する。プロセッサがソース・プロセッサとして指定されていないとき、このプロセッサに対する処理は完了し、ステップ５０６で、プロセッサは他の同期点に達する。
【００３１】
しかしながら、プロセッサがソース・プロセッサとして指定されているとき、ステップ５０８で、プロセッサは、本明細書でＲｕｎｉｔまたはマイクロ・アーキテクチャ構成状態と呼ばれるそれ自身の動作状態を、ハードウェア・システム・エリア・ストレージ内に保存する。例えば、この動作状態は、ミリコードで表示されるようなプロセッサの完全な状態を含む。一実施例では、保存は、一連のリードＲｕｎｉｔレジスタおよびストア命令を用いて達成される。各レジスタは、例えば命令により読み出され、特定のレジスタのコンテンツは、メモリ（例えば、ハードウェア・システム・エリア・ストレージ）のデータ構造内に保存される。その後、ステップ５０６で、プロセッサは同期点に入る。
【００３２】
プロセッサがＲｕｎｉｔ状態を保存して、他の同期点に入ることに続いて、図６に関して説明されるように、さらなる処理が実行される。一実施形態では、最初に、問合せ６００で、プロセッサが同期点を離れるべきかどうかが決定される。各プロセッサは、それがいつ同期点を離れることができるかについてマスタによりトリガーされる。ソースがそれらの動作状態またはマイクロ・アーキテクチャ構成状態を保存することに続いて、マスタは、プロセッサに対して、同期状態を離れて、新しい物理プロセッサ割り当てについて検査させる。この時点まで、プロセッサは同期点に残る。プロセッサが同期点を離れるべきであると決定されるとき、ステップ６０２で、プロセッサは、ターゲット・プロセッサ・リストをフェッチする。問合せ６０４で、プロセッサはリストを調べて、それがターゲットとして指定されているかどうかを判断する。プロセッサが、ターゲット・プロセッサであるとき、ステップ６０６で、プロセッサは保存されたアーキテクチャ構成状態を更新する。例えば、ターゲット・プロセッサは、このターゲットに対するソースを特定するターゲット・リストに基づいて、ソース・プロセッサの保存された動作状態のハードウェア・システム・エリア・ストレージ内のロケーションを決定する。ターゲット・プロセッサは、新しい物理プロセッサを反映するようにソース・プロセッサの保存された動作状態を更新する。例えば、ターゲット・プロセッサは、ターゲット物理プロセッサ・ユニット数を反映するようにプロセッサ・ユニット数を更新する。
【００３３】
さらに、ステップ６０８で、ターゲット・プロセッサは、保存されたアーキテクチャ構成状態をターゲットでロードする。一実施例では、ターゲット・プロセッサは、変更されたソース・プロセッサの保存されたＲｕｎｉｔ状態を対象とするロードＲ−Ｕｎｉｔ状態命令を発行する。ロードＲ−Ｕｎｉｔ状態命令は、例えば、ミリコードで実行処理し、ターゲット・プロセッサにおいて、対応するソースのＲ−Ｕｎｉｔレジスタを単一のアトミック・オペレーションでロードする。例えば、レジスタは、連続して一度にダブル・ワード、ロードされ、ロード命令のオペランド・フィールド内に指定されるストレージ・ロケーションで始まる。この命令の一実施形態は、２００１年２月１３日付にて発行されたスレゲル（Ｓｌｅｇｅｌ）らの「Ｔｒａｎｓｐａｒｅｎｔ  Ｐｒｏｃｅｓｓｏｒ  Ｓｐａｒｉｎｇ（トランスペアレントなプロセッサ・スペアリング）」と題する米国特許第６，１８９，１１２号に説明されており、この米国特許を全体として参照されたい。
【００３４】
その後、ステップ６１０で、処理は同期点に戻る。すべてのプロセッサが同期点に戻ることに呼応して、動作は完了し、マスタは、すべてのプロセッサを通常動作に復帰させる。一実施例では、これは、内部命令を終わらせるためのトリガーを含む。
【００３５】
論理プロセッサの物理支援を同時に再割り当てする機能について、詳細に上述されている。物理プロセッサの動作中に、１つの物理プロセッサの動作状態が、他の物理プロセッサに移される（例えば、どちらの物理プロセッサも故障、チェック停止、またはクロック停止状態ではない）。この再割り当てにより、他の物理プロセッサが、論理プロセッサを支援している。これは、処理環境の１つ以上のプロセッサに対して達成され得る。
【００３６】
本発明の１つ以上の態様が、例えば、コンピュータ使用可能媒体を有する製品（例えば、１つ以上のコンピュータ・プログラム）内に含まれ得る。媒体は、その中に、例えば、本発明の機能を提供しかつ促進するロジックのコンピュータ読み込み可能プログラム・コード手段（例えば、命令、コード、コマンドなど）を有する。製品は、コンピュータ・システムの一部として含まれたり、または別々に販売され得る。
【００３７】
本発明の１つ以上の態様を取り入れた製品またはコンピュータ・プログラムの一実施例について、図７を参照して説明する。コンピュータ・プログラム７００は、例えば、本発明の１つ以上の態様を提供しかつ促進するコンピュータ読み込み可能プログラム・コード手段またはロジック７０４をその上に保存する１つ以上のコンピュータ使用可能媒体７０２を含む。媒体は、電子的、磁気的、光学的、電磁気的、赤外線式、もしくは半導体のシステム（あるいは装置またはデバイス）または伝搬媒体であり得る。コンピュータ読み込み可能媒体の例としては、半導体またはソリッド・ステート・メモリ、磁気テープ、脱着可能コンピュータ・フレキシブル・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、堅牢な磁気ディスク、および光ディスクなどがある。光ディスクの例としては、読み出し専用メモリ・コンパクト・ディスク（ＣＤ−ＲＯＭ）、読み出し書き込みコンパクト・ディスク（ＣＤ−Ｒ／Ｗ）、およびＤＶＤなどがある。
【００３８】
１つ以上のコンピュータ読み込み可能プログラム・コード手段またはロジックで規定された１つ以上の相関的なモジュールのプログラム命令シーケンスまたは論理アセンブリは、本発明の１つ以上の態様の実行を指示する。
【００３９】
論理プロセッサの物理支援の再割り当ては、物理プロセッサの動作と同時に実行されることが有利である。すなわち、プロセッサは、この再割り当てを実行するために、チェック停止、クロック停止、または故障モードになる必要がない。さらに、ターゲット・プロセッサは、予備プロセッサである必要はない。再割り当ては、オペレーティング・システムおよび論理分割ハイパーバイザー、もしくは、オペレーティング・システムまたは論理分割ハイパーバイザーを含むソフトウェアに対してトランスペアレントに、かつオペレーティング・システムおよび論理分割ハイパーバイザー、もしくは、オペレーティング・システムまたは論理分割ハイパーバイザーを含むソフトウェアの関与なしに実行される。一実施例として、再割り当ては、特定のパフォーマンス強化を提供するミリコードで実行される。しかしながら、再割り当ては、他の実施形態において、ソフトウェア、ハードウェア、ファームウェア、またはそれらの組み合わせで実行され得る。
【００４０】
様々な実施形態について上述されているが、これらは例に過ぎない。例えば、本明細書に図示しかつ説明したもの以外の処理環境が、本発明の１つ以上の態様により利益を得ることができる。例えば、プロセッサは、本明細書に説明したより多くても、少なくてもよく、プロセッサは、ｚＳｅｒｉｅｓ（商標）プロセッサ以外でもよい。さらに、オペレーティング・システムは、ｚ／ＯＳ（商標）以外でもよく、異なるプロセッサ内のオペレーティング・システムは、互いに同じか、または異なる場合がある。本発明の要旨を逸脱することなく、処理環境に対して他の多数の変形が行われ得る。
【００４１】
さらなる例として、本明細書に説明した実施形態では、２つのプロセッサのスワップが実行されているが、これは一例に過ぎない。再割り当ては、上述したよりも多い、または少ないプロセッサの間で実行され得る。また、さらなる実施例では、マスタは、ソースまたはターゲットのどちらか、もしくはその両方であり得る。さらなる実施例では、再割り当ての呼び出しを含む特定の機能を実行するために、命令が使用されるが、他の実施形態では、命令以外により、これらの機能が実行され得る。本発明の要旨を逸脱することなく、他の多数の変形が存在し得る。
【００４２】
さらに、プログラム・コードを保存および実行処理、もしくは、保存または実行処理するために適した、システム・バスを介して直接または間接的にメモリ・エレメントに結合された少なくとも１つのプロセッサを含むデータ処理システムが使用可能である。例えば、メモリ・エレメントとしては、プログラム・コードの実際の実行処理時に使用されるローカル・メモリ、大容量記憶装置、および実行処理時に大容量記憶装置からコードを取り出さねばならない回数を減少させるために、少なくともいくつかのプログラム・コードの一時記憶域を提供するキャッシュ・メモリなどがある。
【００４３】
入出力デバイスまたはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、これらに限らない）は、直接に、または介在するＩ／Ｏコントローラを通じてシステムと結合され得る。また、ネットワーク・アダプタをシステムと結合することができ、データ処理システムが、介在する個人通信網または公衆通信網を通じて、他のデータ処理システム、もしくはリモート・プリンタ装置、または記憶デバイスと結合されるようになることを可能にする。モデム、ケーブル・モデム、およびイーサネット（登録商標）・カードは、利用可能な種類のネットワーク・アダプタのうちのほんのいくつかに過ぎない。
【００４４】
本発明の１つ以上の態様の機能は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの何らかの組み合わせで実行され得る。本発明の機能を実行する機械で実行可能な命令のうちの、少なくとも１つのプログラムを実施する機械で読み込み可能な、少なくとも１つのプログラム記憶デバイスを提供できる。
【００４５】
本明細書に図示したフロー・チャートは例に過ぎない。本発明の要旨を逸脱することなく、これらのフロー・チャート、もしくはその中に説明したステップ（または、動作）に対する多数の変形があり得る。例えば、ステップは、異なる順番で実行され、またはステップは、付加され、削除され、または変更され得る。これらの変形のすべては、特許請求する発明の一部とみなされる。
【００４６】
好ましい実施形態は、詳細に図示され、かつ説明されたが、本発明の要旨を逸脱することなく、様々な変更、付加、代替、およびその種の他のものが行われ得るため、これらは、請求項で規定されるような本発明の範囲内にあるとみなされることが当業者に明らかであろう。
【図面の簡単な説明】
【００４７】
【図１】本発明の１つ以上の態様を取り入れ、かつ使用する処理環境の一実施形態を示す。
【図２】本発明の態様に係る、同時物理プロセッサ再割り当ての実行と関連するロジックの一実施形態を示す。
【図３】本発明の態様に係る、同時物理プロセッサ再割り当ての実行の一実施形態と関連する詳細を示す。
【図４】本発明の態様に係る、同時物理プロセッサ再割り当て時に使用される新しい構成の決定に関連するロジックの一実施形態を示す。
【図５】本発明の態様に係る、再割り当てされるべきソース・プロセッサの動作状態の保存に関連するロジックの一実施形態を示す。
【図６】本発明の態様に係る、ターゲット・プロセッサでの保存された動作状態のローディングに関連するロジックの一実施形態を示す。
【図７】本発明の１つ以上の態様を取り入れたコンピュータ・プログラムの一実施形態を示す。
【図１】
2008033933.tif 000003
【図２】
2008033933.tif 000004
【図３】
2008033933.tif 000005
【図４】
2008033933.tif 000006
【図５】
2008033933.tif 000007
【図６】
2008033933.tif 000008
【図７】
2008033933.tif 000009