(57)【要約】【課題】１組のプロセッサを管理するための方法、装置、およびコンピュータ命令を提供すること。【解決手段】論理的に区分されたデータ処理システム内で、区分に割り当てられたプロセッサを割振り解除するための要求に応答して、１組のプロセッサ中のプロセッサを停止する。そのプロセッサの停止に応答して、プロセッサを区分から隔離された隔離状態に置く。次いで、そのプロセッサを、後で再割当てできるように資源のプールに入れる。
2006507561.tif 000002
【特許請求の範囲】
【請求項１】
論理的に区分されたデータ処理システム中で１組のプロセッサを管理するための方法であって、
前記論理的に区分されたデータ処理システム内の区分に割り当てられたプロセッサを割振り解除するための要求に応答して、前記１組のプロセッサに属する前記プロセッサを停止させるステップと、
前記プロセッサを停止させる前記ステップに応答して前記区分から隔離される、前記プロセッサを隔離状態に置くステップと、
後で再割当てができるように前記プロセッサを資源のプールに入れるステップとを含む方法。
【請求項２】
前記プロセッサを割り振るための要求に応答して、前記プロセッサを前記区分に割り当てるステップと、
前記区分で使用できるように前記プロセッサを構成するステップと、
前記プロセッサへのアクセスに使用される資源を初期化するステップと、
前記プロセッサをスピン・ループ・ソフトウェア状態マシン中に置くステップと、
前記プロセッサの制御を前記区分に送るステップとをさらに含む、請求項１に記載の方法。
【請求項３】
前記プロセッサを隔離状態に置く前記ステップが、前記プロセッサの割込み処理機能を使用不能にすることによって行われる、請求項２に記載の方法。
【請求項４】
前記プロセッサの前記割振り解除が、前記区分の実行を終了せずに行われる、請求項１または２に記載の方法。
【請求項５】
前記論理的に区分されたデータ処理システム内の区分に割り当てられたプロセッサを割振り解除するための要求に応答して、前記プロセッサをスピン・ループ・ソフトウェア状態マシン中に置いて前記プロセッサを停止状態にするステップと、
前記区分がアクセスできなくなる前記プロセッサを前記区分から隔離するステップと、
前記プロセッサが前記区分から隔離された後、前記プロセッサを割振り解除するステップとをさらに含む、請求項１ないし４のいずれかに記載の方法。
【請求項６】
前記割振り解除する前記ステップが、前記スピン・ループ・ソフトウェア状態マシンから前記プロセッサを取り出し、前記プロセッサを再割振りのためのプールに入れる、請求項５に記載の方法。
【請求項７】
前記区分が第１の区分であり、
前記プロセッサが割振り解除された後、前記プロセッサを第２の区分に割り振るための要求を受け取ったことに応答して、前記プロセッサにアクセスできない状態にある前記第２の区分に前記プロセッサを割り振るステップと、
前記プロセッサをスピン・ループ・ソフトウェア状態マシン中に置くステップと、
前記プロセッサを前記スピン・ループ・ソフトウェア状態マシン中に置いた後、前記プロセッサを前記区分から隔離解除するステップと、
前記プロセッサを、前記プロセッサが前記第２の区分によって指定されたアドレスのコードの実行を開始する実行状態に置くステップとをさらに含む、請求項５に記載の方法。
【請求項８】
１組のプロセッサを管理するための論理的に区分されたデータ処理システムであって、
バス・システムと、
前記バス・システムに接続された通信ユニットと、
前記バス・システムに接続されたメモリであって、１組の命令を含むメモリと、
前記バス・システムに接続された１組のプロセッサを有する処理ユニットであって、前記１組の命令を実行して、前記論理的に区分されたデータ処理システム内の区分に割り当てられたプロセッサを割振り解除するための要求に応答して前記１組のプロセッサに属する前記プロセッサを停止させ、前記プロセッサの停止に応答して前記プロセッサを前記区分から隔離された隔離状態に置き、後で再割当てができるように資源のプールに前記プロセッサを入れる処理ユニットと
を含む、論理的に区分されたデータ処理システム。
【請求項９】
前記配置手段が、第１の配置手段であり、
前記プロセッサを割り振るための要求に応答して、前記プロセッサを前記区分に割り当てる割当て手段と、
前記区分で使用できるように前記プロセッサを構成する構成手段と、
前記プロセッサへのアクセスに使用される資源を初期化する初期化手段と、
前記プロセッサをスピン・ループ・ソフトウェア状態マシン中に置く第２の配置手段と、
前記プロセッサの制御を前記区分に送る送信手段とをさらに含む、請求項８に記載の論理的に区分されたデータ処理システム。
【請求項１０】
コンピュータ・システムにロードされその上で実行されたとき、請求項１ないし７のいずれかに記載の方法のすべてのステップを実施するためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に改良されたデータ処理システムに関し、詳細には、データ処理システム中で構成要素を管理する方法および装置に関する。さらにより詳細には、本発明は、論理的に区分（partition）されたデータ処理システム中でプロセッサを管理する方法および装置を提供する。
【背景技術】
【０００２】
データ処理システム（プラットフォーム）内で論理的に区分された（ＬＰＡＲ）機能を用いると、単一のオペレーティング・システム（ＯＳ）または複数の異種オペレーティング・システムの複数のコピーが、単一のデータ処理システムのプラットフォーム上で同時に実行できるようになる。オペレーティング・システム・イメージがその内部で実行する区分には、重複のないプラットフォーム資源のサブセットが割り当てられる。これらのプラットフォーム割振り可能資源（allocable resource）には、アーキテクチャが異なる、割込み管理領域内の１つまたは複数のプロセッサ、システム・メモリ領域、および入出力（Ｉ／Ｏ）アダプタ・バス・スロットが含まれる。区分の資源は、ＯＳイメージに対しプラットフォームのファームウェアによって表現される。
【０００３】
プラットフォーム内で走る、相異なるＯＳまたはＯＳイメージのそれぞれは、ある論理区分（logicalpartition）上のソフトウェア・エラーが他のどの論理区分の正しい動作にも影響し得ないように、互いに相手から保護されている。これは、プラットフォーム資源の独立した１組を各ＯＳイメージが直接管理するように割り振ることによって、またＯＳに割り振られていない資源を様々なイメージが制御できないようにする機構を提供することによって実施される。さらに、オペレーティング・システムの割振り資源（allocatedresource）の制御下で、他の任意のイメージの資源がソフトウェア・エラーに影響されないようにする。したがって、各ＯＳのイメージ（またはそれぞれ異なるＯＳ）は、プラットフォーム内の割振り可能な資源の相異なる１組を直接制御する。
【０００４】
ＬＰＡＲシステム中のハードウェア資源に関しては、これらの資源は、それ自体も独立した様々な区分の間で独立に共用されており、それぞれがスタンドアロン・コンピュータのように見える。これらの資源には、例えば入出力（Ｉ／Ｏ）アダプタ、ディム（ＤＩＭＭ）・メモリ、不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）およびハード・ディスク・ドライブが含まれ得る。ＬＰＡＲシステム内の各区分は、システム全体のパワー・サイクルを行う必要がなく、何回も繰り返してブートやシャットダウンを行うことができる。
【０００５】
実際には、区分の間で独立に共用されたいくつかの入出力装置は、ホストＰＣＩ（周辺コンポーネント相互接続）ブリッジなど共通のハードウェア装置によってそれ自体制御され、そのブリッジは、ブリッジで制御されたあるいはその下位にある多くの入出力アダプタを有することができる。ホスト・ブリッジおよびそのブリッジに接続された入出力アダプタは、ＬＰＡＲシステム内で階層的なハードウェア・サブシステムを形成する。さらに、このブリッジは、そのスロットに割り当てられた区分すべてによって共用されるものと考えることができる。
【０００６】
現在では、システム管理者が所与の資源を別の区分に変更したいとき、ある区分からこれらの資源の割振りを解除し、他の区分に再割振りすることができるようになる前に、この変更によって影響を受ける区分を停止しあるいはシャットダウンする必要がある。このタイプの割振り解除および割振り機能は、静的論理パーティショニング（static logical partitioning）と呼ばれる。このタイプの機能では、影響を受ける区分の正常な動作を一時的に中断させる。この正常動作の一時的な中断により、ＬＰＡＲシステムのユーザまたはクライアントが影響を受けることもあり得る。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ＬＰＡＲシステムにおいて、影響を受ける区分の動作の中断を必要とせずに区分を管理するための、改良された方法、装置、およびコンピュータ命令を有することが求められている。
【課題を解決するための手段】
【０００８】
第１の態様では、本発明は、論理的に区分されたデータ処理システム中で１組のプロセッサを管理するための方法であって、論理的に区分されたデータ処理システム内の区分に割り当てられたプロセッサを割振り解除するための要求に応答して、プロセッサを停止させるステップであって、そのプロセッサが１組のプロセッサに属するステップと、プロセッサを停止させるステップに応答して、そのプロセッサを隔離状態に置く（place）ステップであって、プロセッサが区分から隔離されるステップと、後で再割当てができるようにそのプロセッサを資源のプールに入れるステップとを含む方法を提供する。
【０００９】
この方法は、プロセッサを割り振るための要求に応答して、プロセッサを区分に割り当てるステップと、その区分で使用できるようにプロセッサを構成する（configure）ステップと、プロセッサへのアクセスに使用する資源を初期化するステップと、プロセッサをスピン・ループ・ソフトウェア状態マシン中に置くステップと、プロセッサの制御を区分に送るステップとをさらに含むことが好ましい。
【００１０】
プロセッサを隔離状態に置くステップが、プロセッサの割込み処理機能を使用不能にすることによって行われることが好ましい。
【００１１】
後で再割当てができるようにプロセッサを資源のプールに入れるステップにより、プロセッサを、割り振られていない状態に変化させることが好ましい。
【００１２】
この方法は、動的にプロセッサの割振り解除を実施することが好ましい。
【００１３】
プロセッサの割振り解除を、その区分の実行を終了せずに行うことが好ましい。
【００１４】
第２の態様では、本発明は、論理的に区分されたデータ処理システム中でプロセッサを管理するための、論理的に区分されたデータ処理システムにおける方法であって、論理的に区分されたデータ処理システム内の区分に割り当てられたプロセッサを割振り解除するための要求に応答して、プロセッサをスピン・ループ・ソフトウェア状態マシン中に置いてプロセッサを停止状態にするステップと、プロセッサをその区分から隔離するステップであって、区分がプロセッサにアクセスできなくなるステップと、プロセッサが区分から隔離された後、プロセッサを割振り解除するステップとを含む方法を提供する。
【００１５】
割振り解除するステップが、スピン・ループ・ソフトウェア状態マシンからプロセッサを取り出し、プロセッサを再割振り用のプールに入れることが好ましい。
【００１６】
その区分が第１の区分であり、プロセッサが割振り解除された後、このプロセッサを第２の区分に割り振るための要求を受け取ったことに応答して、プロセッサにアクセスできない状態にある第２の区分にプロセッサを割り振るステップと、プロセッサをスピン・ループ・ソフトウェア状態マシン中に置くステップと、プロセッサをスピン・ループ・ソフトウェア状態マシン中に置いた後、プロセッサを区分から隔離解除するステップと、プロセッサが第２の区分によって指定されたアドレスのコードの実行を開始する実行状態にプロセッサを置くステップとをさらに含むことが好ましい。
【００１７】
第２の区分が第１の区分であることが好ましい。
【００１８】
この方法は、第２の区分中で使用できるようにプロセッサを構成するステップをさらに含むことが好ましい。
【００１９】
プロセッサの割振り解除および割振りを、第１および第２の区分の実行を終了せずに行うことが好ましい。
【００２０】
第３の態様では、本発明は、１組のプロセッサを管理するための論理的に区分されたデータ処理システムであって、バス・システムと、バス・システムに接続された通信ユニットと、バス・システムに接続されたメモリであって、１組の命令を含むメモリと、バス・システムに接続された１組のプロセッサを有する処理ユニットであって、その１組の命令を実行して、論理的に区分されたデータ処理システム内の区分に割り当てられたプロセッサを割振り解除するための要求に応答して１組のプロセッサに属するプロセッサを停止させ、プロセッサの停止に応答してプロセッサを区分から隔離された隔離状態に置き、後で再割当てができるように資源のプールにプロセッサを入れる処理ユニットとを含む、論理的に区分されたデータ処理システムを提供する。
【００２１】
第４の態様では、本発明は、論理的に区分されたデータ処理システム中でプロセッサを管理するための論理的に区分されたデータ処理システムであって、バス・システムと、バス・システムに接続された通信ユニットと、バス・システムに接続されたメモリであって、１組の命令を含むメモリと、バス・システムに接続された処理ユニットであって、その１組の命令を実行して、論理的に区分されたデータ処理システム内の区分に割り当てられたプロセッサを割振り解除するための要求に応答して処理ユニット中のプロセッサをスピン・ループ・ソフトウェア状態マシン中に置いて処理ユニット中のプロセッサを停止状態にし、プロセッサにアクセスできない区分からプロセッサを隔離し、プロセッサを区分から隔離した後にプロセッサを割振り解除する処理ユニットとを含む、論理的に区分されたデータ処理システムを提供する。
【００２２】
第５の態様では、本発明は、論理的に区分されたデータ処理システム中で１組のプロセッサを管理するための、論理的に区分されたデータ処理システムであって、論理的に区分されたデータ処理システム内の区分に割り当てられたプロセッサを割振り解除するための要求に応答して、プロセッサを停止する停止手段であって、プロセッサが１組のプロセッサに属する停止手段と、プロセッサの停止に応答して、プロセッサを隔離状態に置く第１の配置（placing）手段であって、プロセッサが区分から隔離される第１の配置手段と、後で再割当てができるようにプロセッサを資源のプールに置く第２の配置手段とを含む、論理的に区分されたデータ処理システムを提供する。
【００２３】
配置手段が、第１の配置手段であり、プロセッサを割り振るための要求に応答して、区分にプロセッサを割り当てる割当て手段と、区分で使用できるようにプロセッサを構成する構成手段と、プロセッサへのアクセスに使用される資源を初期化する初期化手段と、スピン・ループ・ソフトウェア状態マシン中にプロセッサを置く第２の配置手段と、プロセッサの制御を区分に送る送信手段とをさらに含むことが好ましい。
【００２４】
プロセッサを隔離状態に置くことが、プロセッサの割込み処理機能を使用不能にすることによって行われることが好ましい。
【００２５】
後で再割当てができるようにプロセッサを資源のプールに入れることにより、プロセッサを、割り振られていない状態に変化させることが好ましい。
【００２６】
この方法は、動的にプロセッサの割振り解除を実施することが好ましい。
【００２７】
プロセッサの割振り解除を、区分の実行を終了せずに行うことが好ましい。
【００２８】
第６の態様では、本発明は、論理的に区分されたデータ処理システム中でプロセッサを管理するための、論理的に区分されたデータ処理システムであって、論理的に区分されたデータ処理システム内で区分に割り当てられたプロセッサを割振り解除するための要求に応答して、プロセッサをスピン・ループ・ソフトウェア状態マシン中に置いてプロセッサを停止状態にする配置手段と、プロセッサを区分から隔離する隔離手段であって、区分がプロセッサにアクセスできなくなる隔離手段と、プロセッサが区分から隔離された後にプロセッサを割振り解除する割振り解除手段とを含む、論理的に区分されたデータ処理システムを提供する。
【００２９】
割振り解除手段が、スピン・ループ・ソフトウェア状態マシンからプロセッサを取り出し、再割振りができるようにプロセッサをプールに入れることが好ましい。
【００３０】
区分が第１の区分であり、また配置手段が第１の配置手段であり、プロセッサが割振り解除された後、第２の区分にプロセッサを割り振るための要求を受け取ったことに応答して、プロセッサにアクセスできない状態にある第２の区分にプロセッサを割り振るための割振り手段と、スピン・ループ・ソフトウェア状態マシン中にプロセッサを置く第２の配置手段と、プロセッサをスピン・ループ・ソフトウェア状態マシン中に置いた後、プロセッサを区分から隔離解除する隔離解除手段と、プロセッサを、プロセッサが第２の区分によって指定されたアドレスのコードの実行を開始する実行状態に置く第３の配置手段とをさらに含むことが好ましい。
【００３１】
第２の区分が第１の区分であることが好ましい。
【００３２】
論理的に区分されたデータ処理システムが、プロセッサを第２の区分中で使用できるように構成する構成手段をさらに含むことが好ましい。
【００３３】
プロセッサの割振り解除および割振りを、第１の区分および第２の区分の実行を終了せずに行うことが好ましい。
【００３４】
第７の態様では、コンピュータ・システムにロードされ実行されたとき、第１または第２の態様のうちのいずれかの方法の諸ステップを実施するためのコンピュータ・プログラムを提供する。
【００３５】
論理的に区分されたデータ処理システム中でプロセッサを管理するためのコンピュータ可読媒体中のコンピュータ・プログラム製品であって、論理的に区分されたデータ処理システム内の区分に割り当てられたプロセッサを割振り解除するための要求に応答して、プロセッサをスピン・ループ・ソフトウェア状態マシン中に置いてプロセッサを停止状態にするための第１の命令と、プロセッサをその区分から隔離するための第２の命令であって、区分がプロセッサにアクセスできなくなる第２の命令と、プロセッサが区分から隔離された後、プロセッサを割振り解除するための第３の命令とを含む、コンピュータ・プログラム製品を提供することが好ましい。
【００３６】
このようにして、本発明は、１組のプロセッサを管理するのに適した方法、装置、およびコンピュータ命令を提供する。論理的に区分されたデータ処理システム内の区分に割り当てられたプロセッサを割振り解除するための要求に応答して、１組のプロセッサ中のプロセッサを停止する。このプロセッサの停止に応答して、プロセッサを区分から隔離されている隔離状態に置く。次いで、後で再割当てができるように、プロセッサを資源のプールに入れる。
【００３７】
本発明の好ましい実施形態を、単なる例として、添付図面を参照して次に説明する。
【発明を実施するための最良の形態】
【００３８】
次に図面、特に図１を参照すると、本発明を実施できるデータ処理システムのブロック図が示されている。データ処理システム１００は、システム・バス１０６に接続された複数のプロセッサ１０１、１０２、１０３、１０４を含むＳＭＰ（対称型マルチプロセッサ）システムでよい。例えば、データ処理システム１００は、ネットワーク内でサーバとして実装される、米国ニューヨーク州Armonkのインターナショナル・ビジネス・マシーンズ・コーポレーション（ＩＢＭ社）の製品、ＩＢＭ  ＲＳ／６０００とすることができる。あるいは、単一プロセッサ・システムも使用することができる。メモリ・コントローラ／キャッシュ１０８もシステム・バス１０６に接続されており、複数のローカル・メモリ１６０〜１６３へのインターフェースを提供する。入出力バス・ブリッジ１１０は、システム・バス１０６に接続され、入出力バス１１２へのインターフェースを提供する。メモリ・コントローラ／キャッシュ１０８および入出力バス・ブリッジ１１０を図示のように統合することができる。
【００３９】
データ処理システム１００は、論理的に区分された（ＬＰＡＲ）データ処理システムである。したがって、データ処理システム１００は、同時に走る複数の異種オペレーティング・システム（または単一オペレーティング・システムの複数のインスタンス）を有することができる。この複数のオペレーティング・システムのそれぞれが、その内部で実行される任意の数のソフトウェア・プログラムを有することができる。データ処理システム１００は、様々なＰＣＩ入出力アダプタ１２０、１２１、１２８、１２９、１３６、グラフィックス・アダプタ１４８、およびハード・ディスク・アダプタ１４９を異なる論理区分に割り当てることができるように論理的に区分される。この場合、グラフィックス・アダプタ１４８は、表示装置（図示せず）への接続を提供し、一方ハード・ディスク・アダプタ１４９は、ハード・ディスク１５０を制御するための接続を提供する。
【００４０】
したがって、例えばデータ処理システム１００が３つの論理区分Ｐ１、Ｐ２、Ｐ３に分割されると仮定する。各ＰＣＩ入出力アダプタ１２０、１２１、１２８、１２９、１３６、グラフィックス・アダプタ１４８、ハード・ディスク・アダプタ１４９、各ホスト・プロセッサ１０１〜１０４、および各ローカル・メモリ１６０〜１６３が３区分のうちの１つに割り当てられる。例えば、プロセッサ１０１、ローカル・メモリ１６０、および入出力アダプタ１２０、１２８、１２９を論理区分Ｐ１に割り当てることができる。プロセッサ１０２、１０３、ローカル・メモリ１６１、およびＰＣＩ入出力アダプタ１２１、１３６を区分Ｐ２に割り当てることができる。また、プロセッサ１０４、ローカル・メモリ１６２、１６３、グラフィックス・アダプタ１４８およびハード・ディスク・アダプタ１４９を論理区分Ｐ３に割り当てることができる。
【００４１】
データ処理システム１００内で実行する各オペレーティング・システムは、異なる論理区分に割り当てられる。したがって、データ処理システム１００内で実行される各オペレーティング・システムは、その論理区分内にある入出力ユニットだけにアクセスできる。したがって、例えばＡＩＸ（Advanced Interactive Executive）オペレーティング・システムの１つのインスタンスが区分Ｐ１内で実行され、ＡＩＸオペレーティング・システムの次のインスタンス（イメージ）が区分Ｐ２内で実行され、Ｗｉｎｄｏｗｓ（Ｒ）２０００オペレーティング・システムが論理区分Ｐ３内で動作することができる。Ｗｉｎｄｏｗｓ（Ｒ）２０００は、米国ワシントン州RedmondのMicrosoftCorporation（マイクロソフト社）の製品であり、商標である。
【００４２】
入出力バス１１２に接続されたＰＣＩ（周辺コンポーネント相互接続）ホスト・ブリッジ１１４は、ＰＣＩローカル・バス１１５へのインターフェースを提供する。いくつかのＰＣＩ入出力アダプタ１２０、１２１を、ＰＣＩ／ＰＣＩブリッジ１１６、ＰＣＩバス１１８、ＰＣＩバス１１９、入出力スロット１７０、および入出力スロット１７１を介してＰＣＩバス１１５に接続することができる。ＰＣＩ／ＰＣＩブリッジ１１６は、ＰＣＩバス１１８とＰＣＩバス１１９へのインターフェースを提供する。ＰＣＩ入出力アダプタ１２０、１２１は、それぞれ入出力スロット１７０、１７１中に挿入される。典型的なＰＣＩバスの実装形態では、４〜８個の入出力アダプタ（すなわち、アドイン・コネクタ用の拡張スロット）をサポートする。各ＰＣＩ入出力アダプタ１２０、１２１は、データ処理システム１００と、例えば、データ処理システム１００に対してクライアントである他のネットワーク・コンピュータなどの入出力装置との間のインターフェースを提供する。
【００４３】
追加のＰＣＩホスト・ブリッジ１２２は、追加のＰＣＩバス１２３のためのインターフェースを提供する。ＰＣＩバス１２３は、複数のＰＣＩ入出力アダプタ１２８、１２９に接続されている。ＰＣＩ入出力アダプタ１２８、１２９は、ＰＣＩ／ＰＣＩブリッジ１２４、ＰＣＩバス１２６、ＰＣＩバス１２７、入出力スロット１７２、および入出力スロット１７３を介してＰＣＩバス１２３に接続することができる。ＰＣＩ／ＰＣＩブリッジ１２４は、ＰＣＩバス１２６とＰＣＩバス１２７へのインターフェースを提供する。ＰＣＩ入出力アダプタ１２８、１２９は、それぞれ入出力スロット１７２、１７３に挿入される。このようにして、例えばモデムやネットワーク・アダプタなどの追加の入出力装置を各ＰＣＩ入出力アダプタ１２８、１２９を介してサポートすることができる。このようにして、データ処理システム１００は、複数のネットワーク・コンピュータへの接続を可能にする。
【００４４】
入出力スロット１７４に挿入されたメモリ・マップ・グラフィックス・アダプタ１４８は、ＰＣＩバス１４４、ＰＣＩ／ＰＣＩブリッジ１４２、ＰＣＩバス１４１、およびＰＣＩホスト・ブリッジ１４０を介して入出力バス１１２に接続することができる。ＰＣＩバス１４５に接続された入出力スロット１７５中に、ハード・ディスク・アダプタ１４９を挿入することができる。このＰＣＩバス１４５もまた、ＰＣＩホスト・ブリッジ１４０にＰＣＩバス１４１で接続されたＰＣＩ／ＰＣＩブリッジ１４２に接続されている。
【００４５】
ＰＣＩホスト・ブリッジ１３０は、ＰＣＩバス１３１が入出力バス１１２に接続するためのインターフェースを提供する。ＰＣＩ入出力アダプタ１３６は、ＰＣＩバス１３３によってＰＣＩ／ＰＣＩブリッジ１３２に接続されている入出力スロット１７６に接続されている。ＰＣＩ／ＰＣＩブリッジ１３２は、ＰＣＩバス１３１に接続されている。このＰＣＩバスは、ＰＣＩホスト・ブリッジ１３０を、サービス・プロセッサ・メールボックス・インターフェース／ＩＳＡバス・アクセス・パススルー・ロジック１９４とＰＣＩ／ＰＣＩブリッジ１３２に接続している。サービス・プロセッサ・メールボックス・インターフェース／ＩＳＡバス・アクセス・パススルー・ロジック１９４は、ＰＣＩ／ＩＳＡブリッジ１９３宛にＰＣＩアクセスを転送する。ＮＶＲＡＭストレージ１９２は、ＩＳＡバス１９６に接続されている。サービス・プロセッサ１３５は、そのローカル・ＰＣＩバス１９５を介して、サービス・プロセッサ・メールボックス・インターフェース／ＩＳＡバス・アクセス・パススルー・ロジック１９４に結合されている。サービス・プロセッサ１３５はまた、複数のＪＴＡＧ／Ｉ２Ｃバス１３４を介してプロセッサ１０１〜１０４にも接続されている。ＪＴＡＧ／Ｉ２Ｃバス１３４は、ＪＴＡＧ／ｓｃａｎバス（ＩＥＥＥ１１４９．１参照）とフィリップスのＩ２Ｃバスの組合せである。しかし、別法では、ＪＴＡＧ／Ｉ２Ｃバス１３４を、単にフィリップスのＩ２ＣバスあるいはＪＴＡＧ／ｓｃａｎバスで置き換えることもできる。ホスト・プロセッサ１０１、１０２、１０３、１０４のＳＰ−ＡＴＴＮ信号のすべてがサービス・プロセッサの割込み入力信号に接続されている。サービス・プロセッサ１３５は、それ自体のローカル・メモリ１９１を有し、ハードウェアのＯＰパネル１９０へのアクセス権を有している。
【００４６】
始めに、データ処理システム１００に電源が投入されると、サービス・プロセッサ１３５はＪＴＡＧ／Ｉ２Ｃバス１３４を使用して、システム（ホスト）・プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８、および入出力ブリッジ１１０に問合せを行う。このステップが完了すると、サービス・プロセッサ１３５は、データ処理システム１００のインベントリおよびトポロジを理解する。サービス・プロセッサ１３５はまた、ホスト・プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８、および入出力ブリッジ１１０を問い合せることによって見つけたエレメントすべてに対して、ＢＩＳＴ（Built-In-Self-Test）組込み自己試験、ＢＡＴ（Basic Assurance Test）、およびメモリ・テストを実行する。ＢＩＳＴ、ＢＡＴ、およびメモリ・テスト中に検出された障害についてのどんなエラー情報もサービス・プロセッサ１３５が収集し、報告する。
【００４７】
ＢＩＳＴ、ＢＡＴ、メモリ・テスト中に障害があると分かったエレメントを除外した後でも、システム資源の有意義かつ有効な構成（configuration）が可能である場合、データ処理システム１００は、先に進みローカル（ホスト）・メモリ１６０〜１６３に実行可能コードをロードすることができる。次いで、サービス・プロセッサ１３５は、ローカル・メモリ１６０〜１６３にロードされたコードを実行できるように、ホスト・プロセッサ１０１〜１０４を解放する。ホスト・プロセッサ１０１〜１０４が、データ処理システム１００内の各オペレーティング・システムからのコードを実行している間に、サービス・プロセッサ１３５は、エラーをモニタしかつ報告するモードに入る。サービス・プロセッサ１３５がモニタする項目の種類には、例えば、冷却ファンの速度と動作、温度センサ、電源レギュレータ、ならびにプロセッサ１０１〜１０４、ローカル・メモリ１６０〜１６３、および入出力ブリッジ１１０によって報告された回復可能／回復不能なエラーが含まれる。
【００４８】
サービス・プロセッサ１３５は、データ処理システム１００中でモニタされた項目のすべてに関するエラー情報を保管しかつ報告する役割を持っている。サービス・プロセッサ１３５はまた、エラー・タイプおよび定義された閾値に基づいて措置を講ずる。例えば、サービス・プロセッサ１３５は、プロセッサのキャッシュ・メモリ上の回復可能なエラーが過剰になっていることに気付き、これがハード障害の前兆であると決定することができる。この判定に基づいて、サービス・プロセッサ１３５は、現在実行しているセッション中および今後のＩＰＬ（Initial Program Load）中にその資源を構成解除するものとしてマーク付けすることができる。ＩＰＬは、しばしば「ブート」または「ブート・ストラップ」とも呼ばれる。
【００４９】
データ処理システム１００は、様々な市販のコンピュータ・システムを使用して実装することができる。例えば、データ処理システム１００は、インターナショナル・ビジネス・マシーンズ・コーポレーション（ＩＢＭ社）から市販のＩＢＭ  ｅＳｅｒｖｅｒ  ｉＳｅｒｉｅｓモデル８４０システムを使用して実装することができる。このようなシステムは、やはりインターナショナル・ビジネス・マシーンズ・コーポレーション（ＩＢＭ社）から市販のＯＳ／４００オペレーティング・システムを用いて論理的に区分することをサポートできる。
【００５０】
当業者であれば、図１に示すハードウェアが変わり得ることが理解されよう。例えば、光ディスク・ドライブなど他の周辺装置を、図示のハードウェアに加えてまたその代わりに使用することもできる。図示の例は、本発明に関するアーキテクチャ上の限定を示唆するものではない。
【００５１】
図２を参照すると、本発明を実装することができる例示的な論理的に区分されたプラットフォームのブロック図が示してある。論理的に区分されたプラットフォーム２００中のハードウェアは、例えば、図１のデータ処理システム１００として実装され得る。論理的に区分されたプラットフォーム２００は、区分されたハードウェア２３０、オペレーティング・システム２０２、２０４、２０６、２０８、およびハイパーバイザ（hypervisor）２１０を含む。オペレーティング・システム２０２、２０４、２０６、２０８は、プラットフォーム２００上で同時に走る単一オペレーティング・システムまたは複数の異種オペレーティング・システムの複数のコピーでよい。これらのオペレーティング・システムは、ハイパーバイザとインターフェースを取るように設計されたＯＳ／４００を用いて実装することができる。オペレーティング・システム２０２、２０４、２０６、２０８は、区分２０３、２０５、２０７、２０９中に位置する。
【００５２】
さらに、これらの区分は、ファームウェア・ローダ２１１、２１３、２１５、２１７も含む。ファームウェア・ローダ２１１、２１３、２１５、２１７は、ＩＥＥＥ１２７５標準のオープン・ファームウェア（Open Firmware）およびインターナショナル・ビジネス・マシーンズ・コーポレーション（ＩＢＭ社）から市販のＲＴＡＳ（runtimeabstraction software）を使用して実装することができる。区分２０３、２０５、２０７、２０９がインスタンス化されると、オープン・ファームウェアのコピーがハイパーバイザの区分マネジャによって各区分にロードされる。次いで、区分に関連するまたは割り当てられたプロセッサは、区分のメモリに対してディスパッチされ、区分のファームウェアを実行する。
【００５３】
区分されたハードウェア２３０は、複数のプロセッサ２３２〜２３８、複数のシステム・メモリ・ユニット２４０〜２４６、複数の入出力（Ｉ／Ｏ）アダプタ２４８〜２６２、およびストレージ・ユニット２７０を含む。区分されたハードウェア２３０はまた、区分中のエラー処理など様々なサービスを提供するのに使用できるサービス・プロセッサ２９０も含む。プロセッサ２３２〜２３８、メモリ・ユニット２４０〜２４６、ＮＶＲＡＭストレージ２９８、および入出力アダプタ２４８〜２６２のそれぞれを、論理的に区分されたプラットフォーム２００内の複数の区分のうちの１つに割り当てることができ、その複数の区分のそれぞれは、オペレーティング・システム２０２、２０４、２０６、２０８のうちの１つに対応する。
【００５４】
区分管理ファームウェア（ハイパーバイザ）２１０は、区分２０３、２０５、２０７、２０９のためにいくつかの機能およびサービスを実施して論理的に区分されたプラットフォーム２００の区分を作成し実行する。ハイパーバイザ２１０は、その基礎となるハードウェアと一致する仮想マシンが実装されたファームウェアである。ハイパーバイザのソフトウェアは、インターナショナル・ビジネス・マシーンズ・コーポレーション（ＩＢＭ社）から市販されている。ファームウェアは、例えばＲＯＭ（読み出し専用メモリ）、ＰＲＯＭ（プログラム可能ＲＯＭ）、ＥＰＲＯＭ（消去可能なプログラム可能ＲＯＭ）、ＥＥＰＲＯＭ（電気的に消去可能なプログラム可能ＲＯＭ）、不揮発性ＲＡＭ（不揮発性ランダム・アクセス・メモリ）など電力なしにそのコンテンツを保持するメモリ・チップに記憶された「ソフトウェア」である。したがって、ハイパーバイザ２１０は、論理的に区分されたプラットフォーム２００のハードウェア資源すべてを仮想化することにより、独立したＯＳイメージ２０２、２０４、２０６、２０８を同時に実行することができる。
【００５５】
異なった区分における動作は、コンソール２６４などハードウェア管理コンソールを介して制御することができる。コンソール２６４は、システム管理者が資源を別の区分に割り振ることを含めて、様々な機能を実施できる別のデータ処理システムである。
【００５６】
次に、図３を見ると、本発明の好ましい実施形態によるＬＰＡＲテーブルが示されている。この例では、ＬＰＡＲテーブルがＮＶＲＡＭ３００およびシステム・メモリ３０２中にある。ＮＶＲＡＭ３００は、図２でＮＶＲＡＭ２９８として実装され、システム・メモリ３０２は、図２でメモリ２４４として実装されているものでよい。これらのテーブル中の情報は、特定の区分ならびに状況情報にどの資源が割り当てられているかを識別するのに使用される。
【００５７】
この例では、ＮＶＲＡＭ３００中で、これらのテーブルには、プロセッサ・テーブル３０４、ドロワ（drawer）・テーブル３０６、入出力（Ｉ／Ｏ）スロット割当てテーブル３０８、状況／コマンド・テーブル３１０、およびシステム資源テーブル３１２が含まれる。プロセッサ・テーブル３０４は、このＬＰＡＲデータ処理システム内にある各プロセッサの記録を維持する。このテーブル中の各記録は、例えばプロセッサに割り当てられた論理区分ＩＤ、物理ロケーションＩＤ、プロセッサの状況、およびプロセッサの状態を含むことができる。
【００５８】
ドロワ・テーブル３０６は、ＬＰＡＲシステム内の各ドロワの記録を含み、各記録はドロワの状況およびスロット数を含むことができる。ドロワは、フレーム内部のロケーションである。各ドロワは、プロセッサ・ノード、入出力装置、およびメモリ・ボードを挿入するスロットの最大数を有する。フレームは、様々な構成要素にマウンティングを提供し、また電力を供給する。
【００５９】
入出力スロット割当てテーブル３０８は、ＬＰＡＲシステム中の各スロットの記録を含み、また、例えばロケーション・コード、入出力装置ＩＤ、およびスロットに割り当てられた区分のＩＤを含むことができる。
【００６０】
システム・メモリ３０２は、ＴＣＥ（translation control entry）テーブル３１４、ＭＭＩＯ（メモリ・マップ入出力）テーブル３１６、および割込みテーブル３１８を含む。これらのテーブルは、入出力スロットにアクセスするのに使用される資源を識別するのに用いられる情報を含む。例えば、ＴＣＥテーブル３１４は、各スロットに対するＤＭＡ（ダイレクト・メモリ・アクセス）アドレスのためのＴＣＥを含むことができる。さらに、スロットのＭＭＩＯ（メモリ・マップ入出力）アドレスがＭＭＩＯテーブル３１６中にある。さらに、異なるスロットに割り当てられた割込みも、割込みテーブル３１８中で識別することができる。この情報は、図２のハイパーバイザ２１０などのハイパーバイザによって制御されアクセス可能である。
【００６１】
状況／コマンド・テーブル３１０は、区分ごとの記録を含む。このテーブルは、区分のコマンド状態、区分に対する現在のコマンド、区分に対する最後のコマンドを含むことができる。
【００６２】
システム資源テーブル３１２は、システムが利用可能な資源に関する情報を維持する。このテーブルは、例えばスロットの最大数、プロセッサの最大数、ドロワの最大数、インストールされている全メモリ、区分に割り振られた全メモリ、および時間情報を含むことができる。
【００６３】
次に図４を見ると、本発明の好ましい実施形態に従ってプロセッサをある区分から他の区分へと再割振りするのに使用するプロセスの流れ図が示されている。図４に示すプロセスは、図２のコンソール２６４などのハードウェア管理コンソール中で実施することができる。この諸ステップは、各ステップをユーザが開始することにより、あるいはオペレーティング・システムからの応答に基づいて各ステップを開始するプロセスで、動的に再割振りするために関係するプロセッサおよび区分をユーザ入力で選択することによって実施することができる。この例では、要求は、プロセッサを第１の区分から割振り解除し、第２の区分に割り振るためのものである。
【００６４】
プロセスは、第１の区分からプロセッサを割振り解除するための要求をオペレーティング・システムに送ることによって開始する(ステップ４００）。この要求には、この例におけるプロセッサを識別するためのプロセッサＩＤが含まれる。次いで、プロセッサが利用可能であるかどうかについて判定が行われる（ステップ４０２）。この判定では、基本的にはプロセッサの大域プール中のプロセッサが利用可能であるかどうかモニタする。プロセッサが利用できない場合、プロセスは次に進みステップ４０２に戻る。プロセッサが利用できる場合は、利用可能なプロセッサのテーブル中の区分ＩＤが、第１の区分から第２の区分に変更される（ステップ４０４）。この区分ＩＤは、図３のプロセッサ・テーブル３０４などのプロセッサ・テーブル中で変更される。その後、第２の区分中のオペレーティング・システムに要求が送られてプロセッサが追加され（ステップ４０６）、その後このプロセスは終了する。
【００６５】
以下で述べる図は、プロセッサを割振り解除しかつ割り振るために、オペレーティング・システム、ファームウェア・ローダ、およびハイパーバイザによって行われるプロセスを示す。これらの例では、プロセスはコンソールからの要求に応答して開始される。
【００６６】
次に図５を参照すると、本発明の好ましい実施形態に従ってプロセッサを割振り解除するために用いられるプロセスの流れ図が示されている。図５に示すプロセスは、図２の論理的に区分されたプラットフォーム２００などの論理的に区分されたデータ処理システム中で実施することができる。
【００６７】
プロセスは、プロセッサを割振り解除するための要求を受け取ることによって開始する（ステップ５００）。この例では、区分のオペレーティング・システムからその要求を受け取る。次に、プロセッサが選択されているかどうかについて判定が行われる（ステップ５０２）。プロセッサが選択されていない場合、プロセッサを選択する（ステップ５０４）。この例では、何らかのポリシーまたは１組のルールに基づいて、オペレーティング・システムがプロセッサを選択する。例えば、この指定のない割振り解除要求に応答するために、オペレーティング・システムは、例えばプロセッサの割込み優先順位やプロセッサの作業負荷などの属性に基づいてどのプロセッサを選択するか決定する。
【００６８】
プロセッサの状態が停止に変更され（ステップ５０６）、プロセッサの実行が停止される（ステップ５０８）。ステップ５０６は、選択されたプロセッサを、オペレーティング・システムがＲＴＡＳコールをするためにディスパッチすることによって開始される。この例では、コールは、rtas_stop_self()コールである。このコールに応答して、選択されたプロセッサは、ハイパーバイザ２１０などのハイパーバイザへのコールを開始し、プロセッサの状態を実行から停止へと変更する。この状態では、プロセッサは、rtas_spin_loop()とも呼ばれるループに入り、区分中の他のプロセッサから送られるトリガ・イベントをそのループ内で待つ。あるいは、オペレーティング・システムは、選択されたプロセッサが停止状態に変更されていることを確認する照会を行う。オペレーティング・システムは、ファームウェア・ローダのＲＴＡＳコンポーネントへのrtas_query_stopped_state()コールにより、この照会を行うことができる。
【００６９】
プロセッサにアクセスするために使用される資源は除去される（ステップ５１０）。ステップ５１０は、プロセッサを区分から隔離するために実施される。これらの例では、隔離とは、プロセッサが割込みサーバとしてもはや動作できないことを意味する。言い換えると、プロセッサは、もはや割込みを受け取り、処理することができない。この例で除去される資源には、このプロセッサをサーバとして指定する外部の割込みソースの除去、および任意の外部割込みをこのプロセッサに経路指定する大域サーバ・キューを使用不能にすることが含まれる。この隔離は、オペレーティング・システムからのコールに応答して、ＲＴＡＳがハイパーバイザへのコールをすることによって実施される。次いで、プロセッサの状態が隔離へと変更される（ステップ５１２）。
【００７０】
プロセッサが隔離された後、オペレーティング・システムは、このプロセッサを利用可能なプロセッサの大域プールに戻せる状態にある。プロセッサは割振りを解除され（ステップ５１４）、プロセッサの状態が割振り解除へと変更される（ステップ５１６）。割振り解除は、オペレーティング・システムがプロセッサを割振り解除するためのコールを行うことによって開始される。この例では、コールは、ＲＴＡＳを含むファームウェア・ローダに対して行われるrtas_set_indicator()コールである。現在利用可能なrtas_set_indicator()コールが、意図した機能を実施するために本発明の機構で用いられる新しいタイプのインジケータを処理するように修正される。ＲＴＡＳは、現在rtas_spin_loop()中にあるプロセッサに割振り解除イベントまたはトリガ・イベントを送ることにより、割振り解除を実施することができる。このイベントは、プロセッサで肯定応答され、次にプロセッサが、利用可能なプロセッサの大域プールにこのプロセッサを戻すためのコールをハイパーバイザに送る。プロセッサは、今や割振り解除された状態にあることを示すために、その区分レジスタ識別子をゼロにリセットする。割振り解除イベントまたはトリガ・イベントは、「大域プロセッサ・プールに移動」イベントとも呼ばれる。このＩＤを利用可能なプロセッサの大域プール中にプロセッサが現在あることを示すゼロに設定することによって、区分識別子が更新される(ステップ５１８）。この更新は、図３のＮＶＲＡＭ３００中にあるプロセッサ・テーブル３０４などのテーブル中で行われる。アラート・メッセージが送られ（ステップ５２０）、その後このプロセスは終了する。アラート・メッセージは、図２のコンソール２６４などのハードウェア管理コンソールに送られる。
【００７１】
このアラート・メッセージは、プロセッサが割振り解除されたことを示すために使用される。
【００７２】
再びステップ５０２に戻って、プロセッサが選択されている場合は、プロセスは前述のようにステップ５０６に進む。
【００７３】
次に図６を見ると、本発明の好ましい実施形態に従って区分にプロセッサを割り振るために用いられるプロセスの流れ図が示されている。図６で示すプロセスは、図２の論理的に区分されたプラットフォーム２００など論理的に区分されたデータ処理システム中で実施することができる。
【００７４】
このプロセスは、プロセッサを割り振るための要求を受け取ることによって開始される（ステップ６００）。図２のコンソール２６４などのコンソールで、オペレータまたはシステム管理者がこのステップの要求を開始することができる。オペレーティング・システムがプロセッサを割り振るための許可を受け取るが、それには、割り振るべきプロセッサが示されていることも示されていないこともあり得る。プロセッサが識別されない場合は、プロセッサを識別するためのコールが行われる。オペレーティング・システムはプロセッサを区分に割り当てるためのコールを行う。次いで、プロセッサが区分に割り当てられる(ステップ６０２）。この割当ては、rtas_set_indicator()コールを用いて開始することができる。オペレーティング・システムからのコールを受け取ったのに応答して、ＲＴＡＳは、プロセッサの状態を割振り解除から隔離に変更する（ステップ６０４）。
【００７５】
プロセッサは、ディスパッチされ停止する(ステップ６０６）。区分にディスパッチされると、プロセッサはその区分ＩＤレジスタと他のハイパーバイザ資源レジスタを初期化する。各プロセッサは、そのハードウェア中に区分ＩＤレジスタを有している。同じ区分に属するすべてのプロセッサは、その内部の区分ＩＤレジスタに同じ（ＬＰＡＲプロセッサ・テーブルから得られた）区分ＩＤ値が書き込まれる必要がある。新しいプロセッサが新しい区分にディスパッチされると、プロセッサ内部の区分ＩＤレジスタは、すでにその区分中にある他のプロセッサの区分ＩＤと同一に設定される。プロセッサのハードウェアは、その正常な動作のために区分ＩＤを使用する。同様に、ページ・テーブル・レジスタやリアル・モード・オフセット・レジスタ、リアル・モード・サイズ・レジスタなどプロセッサ特有の他のレジスタがあり、それらを、すでに区分中にある他のプロセッサによって使用されている値と同じ値に初期化する必要がある。プロセッサは、ソフトウェア状態マシンrtas_spin_loop()中にプロセッサを置くことによって停止するが、その場合、プロセッサがスピン・ループ・プロセスを実行し、追加の命令を実行するためのトリガ・イベントを待つ。プロセッサの状態は停止に変更される(ステップ６０８）。これは、オペレーティング・システムが、プロセッサの構成を行うように隔離解除するためのコールを行った結果である。この状態の変化は、所望の状態変化を示すパラメータがその中に含まれるrtas_set_indicator()コールなどＲＴＡＳへのコールによって開始される。次に、ＲＴＡＳがこの状態を変えるためのコールをハイパーバイザに行うことによって、プロセッサの状態は隔離から停止へと変更される。
【００７６】
ステップ６０４の結果、プロセッサが最初にスピン・ループに入ったとき、プロセッサが正常にスピン・ループ中にあるかどうか、オペレーティング・システムが知らないこともあり得る。ステップ６０８で、状態が隔離から停止に変更され、ステップ６０８は、プロセッサが区分のＲＴＡＳ状態マシンrtas_spin_loop()中に確かにあることをオペレーティング・システムが確認するための機構となっている。ステップ６０８の結果として、プロセッサは、ＯＳカーネルのプロセッサ資源マネジャの制御下に入るようにディスパッチされ得る状態になる。
【００７７】
プロセッサが構成される（ステップ６１０）。この構成は、オペレーティング・システムによって開始される。この例では、rtas_configure_connector()コールがＲＴＡＳに対して行われる。実施される構成は、例えば割込みサーバとして機能するようにプロセッサをセットアップすることを含むことができる。あるいは、大域サーバ・キューがプロセッサ宛に割込みを経路指定できるようにすることもできる。
【００７８】
プロセッサの状態は実行に変更され、オペレーティング・システムのカーネルにプロセッサの完全な制御が与えられ（ステップ６１２）、その後このプロセスは終了する。このステップは、オペレーティング・システムがプロセッサを使用できるときに、オペレーティング・システムによって開始される。オペレーティング・システムは、rtas_start_cpu()などのコールをＲＴＡＳに送って、オペレーティング・システムにプロセッサの制御を与えるよう要求する。これに応答して、ＲＴＡＳは、このプロセッサの状態を停止から実行に設定するようハイパーバイザにコールを送る。その後、ＲＴＡＳは、トリガ・イベントを送り、プロセッサに、オペレーティング・システムのためにターゲット・アドレスで命令の実行を開始させるようにする。このトリガ・イベントは、ターゲット・アドレスでのサブルーチンに対する引数のメモリ・バッファ・アドレスを含むことができる。この状態変化に応答して、プロセッサはこのイベントに肯定応答し、スピン・ループ状態を終了し、そのレジスタに提供されるメモリ・バッファ・アドレスを設定し、ターゲット・アドレスで提供されるサブルーチンに分岐する。
【００７９】
次に、図７を参照すると、本発明の好ましい実施形態によるスピン・ループ・ソフトウェア状態マシンに用いられるプロセスの流れ図が示されている。図７に示すプロセスは、図２のプロセッサ２３２などのプロセッサ中で実施することができる。図７に示すプロセスは、プロセッサがrtas_spin_loop()コールによって開始される状態などのスピン・ループ状態に入ったときに行われるイベントをより詳細に説明している。この状態も、プロセッサが以下で述べるスピン・ループ・プロセス中の諸ステップを実行したときに生ずる停止状態である。
【００８０】
プロセスは、トリガ・イベントが生じたかどうか決定することによって開始される(ステップ７００）。これらのイベントとは、コール中でプロセッサへ渡すことができ、プロセッサに機能を実施させ、あるいは選択されたコードを実行させる特有の命令またはパラメータのことである。トリガ・イベントが生じた場合、イベントが「go_to_OS」であるかどうかについて判定が行われる（ステップ７０２）。イベントが「go_to_OS」ではない場合、イベントが「go_to_globalprocessor_pool」であるかどうかについて判定が行われる（ステップ７０４）。イベントが「go_to_globalprocessor_pool」ではない場合、イベントが「turn_off_myself」であるかどうかについて判定が行われる(ステップ７０６）。イベントが「turn_off_myself」である場合、プロセッサは、システムから取り出され（ステップ７０８）、その後このプロセスは終了する。プロセッサが不良プロセッサまたは実行時に誤動作するプロセッサであると識別された場合には、「turn_off_myself」の形を取るイベントが生ずる。
【００８１】
再度ステップ７０６に戻ると、イベントが「turn_off_myself」ではない場合、前述のようにプロセスはステップ７００に戻る。トリガ・イベントが全くない場合、プロセスは次に進んで、「スピン・ループ」とも呼ばれる「ループ」中のステップ６０６に戻る。
【００８２】
ステップ７０４を再度参照すると、イベントが「go_to_globalprocessor_pool」である場合、ハイパーバイザは、コールされてＮＶＲＡＭ状態を隔離から割振り解除に変更する（ステップ７１２）。この状態は、図３のプロセッサ・テーブル３０４などのプロセッサ・テーブル中で変更される。次いで、プロセスは、大域プロセッサ・プール・マネジャのプロセッサ制御ループ中で実行され、今後のディスパッチを待ち（ステップ７１４）、その後このプロセスは終了する。
【００８３】
再度ステップ７０２を参照すると、イベントが「go_to_OS」である場合、プロセッサは、オペレーティング・システムによりアドレス・セットアップに分岐し、そこからコードを実行し（ステップ７１０）、その後このプロセスは終了する。ステップ７１０で、プロセッサが停止状態から実行状態に入る。プロセッサは、隔離から停止に状態を変えた後に、「go_to_OS」イベントに応答してステップ７１０の実行状態に入ることができる。再度ステップ７００を参照すると、トリガ・イベントが生じなかった場合は、プロセスは開始（start）に戻る。
【００８４】
このようにして、本発明は、論理的に区分されたデータ処理システム中で、プロセッサ資源を動的に割振り解除および割振りできるようにする改良された方法、装置、およびコンピュータ命令を提供する。このプロセスを用いると、ユーザまたはシステム管理者がプロセッサをある区分から割振り解除するための要求を送り、そのプロセッサを他の区分に割り振ることが可能になる。オペレーティング・システムは、プロセッサを区分から割振り解除するのに必要な諸ステップを開始し、再割振りができるようにそのプロセッサを大域プール中に入れる。再割振りが検出されたとき、次いで、図３のプロセッサ・テーブル３０４などのプロセッサ・テーブル中の区分ＩＤを変更することにより、プロセッサを他の区分に割り振ることができる。その後、ユーザは、区分２中のオペレーティング・システムにプロセッサをその区分へ割り振る（grant）よう求める要求を送ることができ、次いで、オペレーティング・システムがそのプロセッサを割り振るのに必要な諸ステップを実施する。これらのステップすべてが、影響を受けるどちらの区分の動作も終了させずに実施される。
【００８５】
完全に機能するデータ処理システムに関して本発明を述べてきたが、本発明の諸プロセスを命令のコンピュータ可読媒体の形、および様々な形式で配布することができ、また、実際の配布にどんなタイプの信号伝達媒体が使用されようとも、本発明が等しく適用されることが当業者なら理解できることに留意することが重要である。コンピュータ可読媒体の例には、フロッピー（Ｒ）・ディスクやハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録可能タイプ媒体、ならびにデジタル／アナログ通信リンクや、例えば無線周波数および光波通信などの通信方式を使用した有線／無線通信リンクなどの通信タイプ媒体が含まれる。コンピュータ可読媒体は、特定のデータ処理システム中で実際に使用できるように復号される、符号化されたフォーマットの形を取ることができる。
【００８６】
本発明の記載を例示および説明のために示してきたが、これは網羅的なものではなく、また本発明を開示された形に限定するものではない。当業者であれば、多くの修正形態および変形形態が明らかであろう。例えば、プロセッサの動的な割振りおよび割振り解除に関与するものとして例示された特定の構成要素は、オペレーティング・システム、ＲＴＡＳ、およびハイパーバイザである。これらの特定の構成要素は例示のためであり、動的な割振りのための諸プロセスを実行できる方法を限定するものではない。本発明の原理、実際の用途を最もよく説明し、企図した特定の用途に適した様々な修正を含む様々な実施形態に関して本発明を当業者が理解できるように、実施形態を選択し説明している。
【図面の簡単な説明】
【００８７】
【図１】本発明を実施することができるデータ処理システムのブロック図である。
【図２】本発明を実施することができる例示的な論理的に区分されたプラットフォームのブロック図である。
【図３】本発明の好ましい実施形態によるＬＰＡＲテーブルを示す図である。
【図４】本発明の好ましい実施形態に従って、プロセッサをある区分から他の区分に再割振りするために使用するプロセスの流れ図である。
【図５】本発明の好ましい実施形態に従って、プロセッサを割振り解除するために使用するプロセスの流れ図である。
【図６】本発明の好ましい実施形態に従って、プロセッサを区分に割り振るために使用するプロセスの流れ図である。
【図７】本発明の好ましい実施形態によるスピン・ループ・ソフトウェア状態マシンのために使用するプロセスの流れ図である。
【図１】
2006507561.tif 000003
【図２】
2006507561.tif 000004
【図３】
2006507561.tif 000005
【図４】
2006507561.tif 000006
【図５】
2006507561.tif 000007
【図６】
2006507561.tif 000008
【図７】
2006507561.tif 000009
【国際調査報告】
2006507561.tif 000010
2006507561.tif 000011
2006507561.tif 000012