(57)【要約】      （修正有）【課題】マルチノード・データ処理システムにおいてアクティブなプロセッサの数を動的に変更する方法及び構成を提供する。【解決手段】  マルチノード・データ処理システムにおいてアクティブなプロセッサの数を動的に変更する際に、一実施形態は、電源投入時にプロセッサがロードするＢＩＯＳの部分を変更するための、変換、コード（プログラム）、状態機械、又は他の論理を含む。幾つかの実施形態において、ＧＰＩＯピンによって送信された信号は、電源投入時にプロセッサがロードするＢＩＯＳの部分へのアドレス・ラインをフリップすることができる。幾つかの実施形態において、サービス・プロセッサは、ＧＰＩＯ又は不揮発性ＲＡＭの値を設定することができる。プロセッサの電源投入を制御するＢＩＯＳの部分は、値を読み取ることができ、その値によって分岐させることができる。【選択図】図１
2007172591.tif 000002
【特許請求の範囲】
【請求項１】
マルチノード・データ処理システムにおいてプロセッサを動的に作動させる方法であって、
ノード内のプロセッサがアクティブでない状態で前記マルチノード・データ処理システムのオペレーティング・システムを起動させるステップと、
前記プロセッサの前記作動に関連した、前記マルチノード・データ処理システムの遠隔からの信号を受信するステップと、
前記信号に応答して前記プロセッサを動的に作動させるステップと
を含む方法。
【請求項２】
ノード内のプロセッサがアクティブでない状態で前記マルチノード・データ処理システムのオペレーティング・システムを起動させる前記ステップは、
前記プロセッサを前記システムから除去するステップと、
前記プロセッサをロックダウンし、ディスエーブルにするステップと
を含む、請求項１に記載の方法。
【請求項３】
前記プロセッサをロックダウンし、ディスエーブルにする前記ステップは、前記プロセッサをスリープ状態に置くステップを含む、請求項２に記載の方法。
【請求項４】
前記プロセッサをロックダウンし、ディスエーブルにする前記ステップは、前記プロセッサをスピンロック状態に置くことを含む、請求項２に記載の方法。
【請求項５】
前記プロセッサの作動に関連した、前記マルチノード・データ処理システムの遠隔からの信号を受信する前記ステップは、オンデマンド式に該プロセッサを作動させるための使用可能化コードを受信するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記プロセッサを動的に作動させる前記ステップは、
前記ノードのサービス管理割り込みを生成するステップと、
前記ノードを再起動するステップと
を含む、請求項１に記載の方法。
【請求項７】
前記プロセッサを動的に作動させる前記ステップは、
汎用入力・出力ピン（ＧＰＩＯピン）において信号を受信するステップと、
アドレス・ラインをフリップするステップと、
前記フリップされたアドレス・ラインによって指定されたアドレスから基本入力・出力システム（ＢＩＯＳ）を起動するステップと
を含む、請求項６に記載の方法。
【請求項８】
マルチノード・データ処理システムにおいてプロセッサの状態を判断する方法であって、
前記プロセッサの電源を入れるステップと、
前記プロセッサが動的に作動されたかどうかを示す値を読み取るステップと、
前記値に基づいて前記プロセッサを用いるためにリソースを割り当てるステップと
を含む方法。
【請求項９】
値を読み取る前記ステップは、
前記プロセッサが動的に作動されたことを示す値を読み取るステップと、
前記値を変更するステップと、
前記プロセッサをスリープ状態にするステップと、
前記プロセッサへのリソース割り当てのシステム・テーブルを更新するステップと、
前記プロセッサを覚醒させるステップと
をさらに含む、請求項８に記載の方法。
【請求項１０】
前記値を読み取る前記ステップは、チップセット・スクラッチ・レジスタの前記値を読み取るステップを含み、非フラッシュ値を前記チップセット・スクラッチ・レジスタに書き込むステップをさらに含む、請求項８に記載の方法。
【請求項１１】
プロセッサを動的に作動させるためのシステムであって、前記システムが、
複数の相互接続されたノードであって、前記ノードの少なくとも１つが、
プロセッサと、
プロセッサを動的に作動させ得る割り込みハンドラと
を有する、複数の相互接続されたノードを含むマルチノード・データ処理システムと、
前記マルチノード・データ処理システムに接続され、前記プロセッサの作動に関連した信号を該マルチノード・データ処理システムに送信するように構成された遠隔サーバと
を備え、
前記マルチノード・データ処理システムは、前記遠隔サーバから前記信号を受信し、前記プロセッサを動的に作動させるように構成される、システム。
【請求項１２】
前記マルチノード・データ処理システムは、ｘ８６アーキテクチャに従って構成される、請求項１１に記載のシステム。
【請求項１３】
前記ノードの前記少なくとも１つは、システム管理割り込み（ＳＭＩ）をサポートする基本入力・出力システム（ＢＩＯＳ）を備える、請求項１１に記載のシステム。
【請求項１４】
前記ノードの前記少なくとも１つは、
サービス・プロセッサ・カードと、
前記サービス・プロセッサ・カードを前記ノードの前記ＢＩＯＳに接続する汎用入力・出力ピンと
を備え、
前記サービス・プロセッサ・カードは、前記ノードの前記少なくとも１つの前記プロセッサのリセットされたベクトルを変更するように構成される、請求項１３に記載のシステム。
【請求項１５】
前記遠隔サーバは、前記ノードの前記少なくとも１つの前記プロセッサのオンデマンド式作動をイネーブルにするように、使用可能化コードを前記マルチノード・データ処理システムに送信するように構成される、請求項１１に記載のシステム。
【請求項１６】
プロセッサの状態を判断するためのマルチノード・データ処理システムであって、
複数の相互接続されたノードと、
前記複数の相互接続されたノードの１つの中に含まれるプロセッサと、
前記プロセッサを動的に作動させるための手段と、
レジスタと、
前記プロセッサが動的に作動されたかどうかを示すように値を前記レジスタに書き込むための手段と
を備え、
前記プロセッサは、前記プロセッサが動的に作動されたかどうかを判断するように、パワーオン・セルフ・テスト中に前記レジスタから値を読み取るように構成される、マルチノード・データ処理システム。
【請求項１７】
前記プロセッサを動的に作動させるための前記手段は、システム管理割り込みをサポートする基本オペレーティング・システムを含む、請求項１６に記載のシステム。
【請求項１８】
前記レジスタは、前記プロセッサを含む前記複数の相互接続されたノードの前記１つの近くにチップセット・レジスタを備える、請求項１６に記載のシステム。
【請求項１９】
マルチノード・データ処理システムにおいてプロセッサを動的に作動させるためのプログラムであって、前記プログラムがシステムに、
ノード内のプロセッサがアクティブでない状態で前記マルチノード・データ処理システムのオペレーティング・システムを起動させるステップと、
前記プロセッサの前記作動に関連した、前記マルチノード・データ処理システムの遠隔からの信号を受信するステップと、
前記信号に応答して前記プロセッサを動的に作動させるステップと
を実行させる、プログラム。
【請求項２０】
汎用入力・出力ピン（ＧＰＩＯピン）において信号を受信するステップと、
アドレス・ラインをフリップするステップと、
前記フリップされたアドレス・ラインによって指定されたアドレスから基本入力・出力システム（ＢＩＯＳ）を起動するステップと
をさらに含む、請求項１９に記載のプログラム。
【請求項２１】
前記プロセッサの電源を入れるステップと、
前記プロセッサが動的に作動されたかどうかを示す値を読み取るステップと、
前記値に基づいて前記プロセッサを用いるためにリソースを割り当てるステップと
をさらに含む、請求項１９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムの分野に関する。より特定的には、本発明は、マルチノード・データ処理システムにおいてアクティブなプロセッサの数を動的に変更する方法及び構成に関する。
【背景技術】
【０００２】
マルチノード・データ処理システムは、複数のノードで構成され、その各々は、それぞれのプロセッサ又はプロセッサの組を有することができる。マルチノード・システムは、例えば、各々のノードが８つのプロセッサを有する、４つの相互接続されたノードを含むことができるので、システム全体は、事実上３２のプロセッサを提供する。ノードは、一般に、シャーシ内に含まれる。各々のノードは、一般的に、相互接続されたノードの間で共有可能なメモリ・リソースをもたらす。一般的に、多数のノードが連係して機能する。単一のオペレーティング・システムは、例えば、アプリケーションの実行、及び、実行のための個々のプロセッサへのアプリケーション・スレッドへの割り当てを制御することができる。マルチノード・システムは、システムを監視し、制御する多数のサービス・プロセッサ・コンポーネントを含むことができる。各々のノードは、サービス・プロセッサ・コンポーネントを含むことができる。サービス・プロセッサ・コンポーネントは、マルチノード・コンピュータ・システムのノードを検知し、ノードがどのように接続し、互いに通信するかを記載するテーブルを維持することができる。マルチノード・データ処理システムはまた、システム管理ソフトウェアのスイートを含むこともできる。マルチノード・システムは、大規模な冗長性及び電力を提供することができる。故障したノードに割り当てられた作業を別のノードに再割り当てすることができる。したがって、これらは、高いシステム可用性及び性能を提供することができる。例示的なマルチノード・システムは、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ社（ＩＢＭ）からのｘＳｅｒｉｅｓ（商標）ｅＳｅｒｖｅｒ（商標）ｘ４６０である。（「ｘＳｅｒｉｅｓ」は、ＩＢＭの登録商標であり、「ｅＳｅｒｖｅｒ」は、ＩＢＭの商標である。）
【０００３】
一般に、マルチノード・データ処理システムは、該マルチノード・データ処理システムのオペレーティング・システムをシャットダウンすることなく、割り込みの処理を可能にする。例えば、インテル・アーキテクチャ（ｘ８６）に基づいたマルチノード・システムは、一般的に、システム管理モードをサポートする。システム管理モードは、現在のプロセッサの状態を保存し、該プロセッサが、オペレーティング・システムをシャットダウンすることなく、割り込みの処理といったシステム管理機能を実行することを可能にする。システム管理割り込み（ｓｙｓｔｅｍ  ｍａｎａｇｅｍｅｎｔ  ｉｎｔｅｒｒｕｐｔ、ＳＭＩ）は、システム管理モードで処理される割り込みである。
【０００４】
マルチノード・データ処理システムは、一般的にモジュール式である。システム内のノードの数、及びノード内のアクティブなプロセッサの数を変更することができる。マルチノード・データ処理システムにおいてアクティブなプロセッサの数を変更することが望ましい。アクティブなプロセッサの増大は、増大したシステム処理の必要性の対処を助け、又は、システムをより高度な技術にアップグレードすることができる。例えば、最初に、アクティブなプロセッサを用いずにノードを構成することができる。ノードは、メモリ及びＩＯのみを提供するが、処理パワーを提供しない。システム処理の必要性が増大するにつれて、プロセッサを作動させるか、又はノードにプロセッサを付加することが望ましい。多くのシステムにおいては、ノード内のプロセッサの特定の構成だけが許容可能である。例えば、システムは、ノード内のプロセッサの数を０、或いは、１、２、又は４のような２の累乗に制限することができる。同様に、アクティブなプロセッサの減少により、処理の必要性が低いときにリソースを節約することができ、或いは、旧式のプロセッサ又は機能していないプロセッサを排除することができる。
【０００５】
付加されることになるプロセッサは、「キャパシティ・オン・デマンド」プログラムの予備として又は一部として既に物理的に存在している。こうしたプログラムは、コンピュータ・リソース要件が変動する問題の解決を助けるものである。ビジネス及び行政の用途に関するコンピュータ・リソース要件は、売上又は従業員の増大のために、時間の経過と共に増大することが多い。同じ時間の経過と共に、日々の業務の不可避のピーク及び谷によって、或いは、季節、期末、又は特別な販売促進の負荷の増大によって、リソース要件が動的に変動することがある。ある時間内のピーク・リソース要件が、どれも谷のリソース要件とは異なることがある。常に有効なものであるためには、コンピュータ化されたビジネス・リソースが、現在変動しているビジネスのニーズ及び成長による予測されるニーズに対処するのに十分なものでなければならない。
【０００６】
このような、変動し、常に増大するリソースの要求に対処するために、従来より、顧客は、上昇する可能性が高い将来の要件を考慮しながら、少なくとも現在のピーク要件に対応できるコンピューティング・リソースを購入する。したがって、顧客は、増大及び経営上のピーク及び谷に対応するために、すぐに必要とされるものより、コンピュータ化されたリソースに投資するという可能性に直面する。したがって、如何なる時点においても、顧客は、過剰のコンピューティング能力、すなわち、まさに実質費用を有することになる。こうした費用は、あらゆるコンピュータ顧客にとって大きい支出になり得る。
【０００７】
「キャパシティ・オン・デマンド」アプリケーションをサポートするコンピューティング・アーキテクチャは、コンピュータ・リソースに対する必要性の変動に対処するという問題の改善を助ける。これらのアプリケーションにより、顧客は、自分が支払った分より多くのコンピュータ・リソースを所有することが可能になる。一時的なピーク要求又は恒久的な増大のためにリソースに対する必要性が増大するとき、顧客は、自分のコンピュータに既にインストールされている付加的なコンピュータ・リソースを購入するか又は借りることができる。このような顧客は、暗証番号の形態で認証を獲得し、これらの付加的なリソースを（オンデマンド式コンピュータ・リソース）を一時的に又は恒久的に作動させることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
遠隔位置から、マルチノード・データ処理システムにおけるアクティブなプロセッサの数の変更を制御することが望ましい。遠隔サーバは、例えば、オンデマンド式にプロセッサをシステムに付加するための実施可能化コードを提供することができる。同様に、遠隔コンピュータ位置において、より高機能のプロセッサを作動させるための管理意思決定を行うことができる。現在のマルチノード・データ処理システムにおいては、遠隔位置から制御される付加的なプロセッサの作動は、システムの電源切断又は再起動を必要とすることがある。結果として生じる休止時間が、重大な結果を有する可能性がある。マルチノード・データ処理システムは、連続的な稼動可能時間を必要とする重大なプロセスを実行することができる。
【課題を解決するための手段】
【０００９】
上に識別された問題の大部分が、マルチノード・データ処理システムにおいてアクティブなプロセッサの数を動的に変更する方法及び構成によって対処される。１つの実施形態は、マルチノード・データ処理システムにおいてプロセッサを動的に作動させる方法を提供する。この方法は、ノード内のプロセッサがアクティブでない状態でマルチノード・データ処理システムのオペレーティング・システムを起動させるステップを含むことができる。この方法はまた、プロセッサの作動に関連した、マルチノード・データ処理システムの遠隔からの信号を受信するステップを含むこともできる。この方法はさらに、信号に応答して、プロセッサを動的に作動させるステップを含むこともできる。
【００１０】
別の実施形態は、マルチノード・データ処理システムにおいてプロセッサの状態を判断する方法を提供する。この方法は、プロセッサの電源を入れるステップを含むことができる。この方法はさらに、プロセッサが動的に作動されたかどうかを示す値を読み取るステップを含むことができる。この方法は、値に基づいてプロセッサを用いるためにリソースを割り当てることができる。
【００１１】
別の実施形態が、プロセッサを動的に作動させるためのシステムを提供する。このシステムは、マルチノード・データ処理システムを含むことができる。マルチノード・データ処理システムは、複数の相互接続されたノードを含むことができる。ノードの少なくとも１つは、プロセッサと、プロセッサを動的に作動させることができる割り込みハンドラとを含むことができる。プロセッサを動的に作動させるためのシステムは、マルチノード・データ処理システムに接続された遠隔サーバをさらに含むことができる。遠隔サーバは、プロセッサの作動に関連した信号をマルチノード・データ処理システムに送信するように構成することができる。遠隔サーバからの信号を受信し、プロセッサを動的に作動させるように、マルチノード・データ処理システムを構成することができる。
【００１２】
別の実施形態は、プロセッサの状態を判断するために、マルチノード・データ処理システムを提供する。マルチノード・データ処理システムは、複数の相互接続されたノードを含むことができる。マルチノード・データ処理システムはまた、複数の相互接続されたノードの１つの中に含まれたプロセッサを含むこともできる。マルチノード・データ処理システムはまた、プロセッサを動的に作動させるための手段を含むこともできる。マルチノード・データ処理システムはまた、レジスタを含むこともできる。マルチノード・データ処理システムはまた、プロセッサが動的に作動されたかどうかを示す値をレジスタに書き込むための手段を含むことができる。プロセッサは、パワーオン・セルフ・テスト中にレジスタから値を読み取り、プロセッサが動的に作動されたかどうかを判断するように構成することができる。
【００１３】
別の実施形態は、プログラムがマシンによって実行されるときに、マルチノード・データ処理システムにおいてプロセッサを動的に作動させるためのプログラムを提供する。このプログラムは、ノード内のプロセッサがアクティブでない状態でマルチノード・データ処理システムのオペレーティング・システムを起動させるステップを含むことができる。このプログラムは、プロセッサの作動に関連した、マルチノード・データ処理システムの遠隔からの信号を受信することを含むことができる。このプログラムは、信号に応答してプロセッサを動的に作動させるステップをさらに含むことができる。
【発明を実施するための最良の形態】
【００１４】
本発明の利点は、以下の詳細な説明を読み、同じ参照が類似した要素を示す添付の図面を参照するときに明らかになるであろう。
【００１５】
以下は、添付の図面に示される本発明の実施形態の詳細な説明である。これらの実施形態は、本発明を分かりやすく伝えるように詳細なものである。しかしながら、与えられる詳細の量は、予想される実施形態の変形を制限するように意図されるものではなく、逆に、本発明が、添付の特許請求の範囲によって定められるような本発明の精神及び範囲内に含まれるあらゆる修正、均等物、及び代替物を網羅するように意図されている。下記の詳細な説明は、こうした実施形態を当業者に明らかにするように設計されている。
【００１６】
一般的に言えば、マルチノード・データ処理システムにおいてアクティブなプロセッサの数を動的に変更する方法及び構成が考えられる。実施形態は、電源投入時にプロセッサがロードする基本入力・出力システム（ＢＩＯＳ）の部分を変更するための変換、コード（プログラム）、状態機械、又は他の論理を含む。幾つかの実施形態において、汎用入力・出力（ｇｅｎｅｒａｌ  ｐｕｒｐｏｓｅ  ｉｎｐｕｔ−ｏｕｔｐｕｔ、ＧＰＩＯ）ピン上で送られた信号が、電源投入時にプロセッサがロードするＢＩＯＳの部分へのアドレス・ラインをフリップすることができる。幾つかの実施形態において、サービス・プロセッサが、ＧＰＩＯ又は不揮発性ＲＡＭの値を設定することができる。プロセッサの電源投入を制御するＢＩＯＳの部分は、値を読み取り、値によって分岐することができる。実施形態は、動的に作動されたプロセッサの状態を判断するための変換、コード（プログラム）、状態機械、又は他の論理も含む。幾つかの実施形態において、プロセッサは、局所的なスクラッチ・レジスタから値を読み取り、プロセッサが動的に作動されたかどうかを判断することができる。動的に作動されたと判断した場合、実施形態は、スクラッチ・レジスタを消去し、プロセッサをスリープ状態にすることができる。次に、実施形態は、プロセッサが利用できるリソースを記載するテーブルを更新することができる。
【００１７】
特定の実施形態が、特定の回路又は論理構成を参照して以下に説明されるが、当業者であれば、他の実質的に同等な構成を用いて本発明の実施形態を有利に実施できることを認識するであろう。
【００１８】
ここで図面を参照すると、図１が、マルチノード・データ処理システムにおいてアクティブなプロセッサの数を動的に変更するためのシステム１００の実施形態を示す。システム１００は、拡張性ケーブル２００によって接続されるノード１１０及び１４５を含むマルチノード・データ処理システム１０５を含む。マルチノード・データ処理システム１０５は、接続２０５によって遠隔サーバ１９０に接続されている。接続２０５は、例えば、インターネット、或いはローカル・エリア・ネットワーク又はワイド・エリア・ネットワークのようなネットワーク接続で構成することができる。ノード１１０、１４５の各々は、種々のコンピューティング機能を実行する１つ又は複数のプロセッサ１１５、１７５を含むことができる。他の実施形態においては、ノードの一部を、プロセッサのないものにすることができる。プロセッサの相互接続を介して、プロセッサ１１５、１７５を互いに接続することができる。プロセッサ１１５、１７５の各々は、サービス・プロセッサ論理を含むことができる。サービス・プロセッサ論理は、互いに通信し、かつ、ノース・ブリッジ１２０、１８０と通信することができ、プロセッサ１１５、１７５が、一貫性のあるように協働して作動することを可能にする。他の実施形態においては、サービス・プロセッサ論理は、サービス・プロセッサ機能を実行するように厳密に制限されている特殊用途のプロセッサ内に含ませることができる。ノード１１０、１４５の各々の中にあるメモリ・コントローラ１２５、１８５が、メモリ１３５、１５０とノード１１０、１４５の他のコンポーネントとの間のインタフェースを提供する。
【００１９】
ノース・ブリッジ・コンポーネント１２０、１８０は、各々のノードの中に存在することができる。ノース・ブリッジ・コンポーネントは、ノース・ブリッジ、サウス・ブリッジとして一般に知られるチップセット・アーキテクチャ内に存在する。このアーキテクチャにおいて、ノース・ブリッジ・コンポーネントは、バス１９５によって１つ又は複数のプロセッサ１１５、１７５と通信する。ノース・ブリッジ１２０、１８０は、一般に、メモリ１３５、１５０、拡張グラフィックス、キャッシュ、及び周辺コンポーネント相互接続（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ、ＰＣＩ）バスとの相互作用を制御する。バス１９５は、一般にフロント・サイド・バスと呼ばれる。サウス・ブリッジ（図１には、図示されていない）は、一般に、シリアル・ポートＩＯ、音声、ユニバーサル・シリアル・バス等のような入力／出力（ＩＯ）機能を担う。しかしながら、本発明の実施形態は、こうしたノース・ブリッジ、サウス・ブリッジのチップセットに制限されるものではなく、よって、図１の表示は、限定ではなく、例証として解釈するべきである。
【００２０】
拡張性チップ１３０、１４０は、１つ又は複数の制御フィールドを含み、好ましい実施形態によって活用され、マルチノード・システム１０５のノード１１０、１４５の間で情報を伝達することを可能にする。拡張性チップ１３０、１４０において別個のノード１１０、１４５を拡張性ケーブル２００と接続することによって、多数のノード１１０、１４５が、単一のコンピュータとして機能することが可能になる。マルチノード・システム１０５内のノードの１つ、すなわちノード１４５は、メモリ・コントローラ１８５に結合された、該ノード１４５のためのシステム・メモリ１５０を含むことができる。システム・メモリ１５０は、マルチノード・システム１０５を制御し、アプリケーション・プロセスを実行するためのソフトウェアを格納することができる。このソフトウェアは、オペレーティング・システム（ＯＳ）１７０、システム管理割り込み（ＳＭＩ）１５５を含むＢＩＯＳ１６０、及びシステム管理ソフトウェア（ＳＭＳ）１６５を含むことができる。ＯＳ１７０は、実行のために、アプリケーション・プログラムによって生成されたスレッドを、マルチノード・システム１０５の多数のノード１１０、１４５の種々のプロセッサ１１５、１７５に割り当てることができる。ＢＩＯＳは、ディスク・ドライブ及びＩＯ装置との相互作用を含む、コンピュータの基本ハードウェア操作を制御するプログラミングである。ＢＩＯＳは、一般に、不揮発性メモリ内に格納され、システム起動時にロードされる。ＳＭＩ１５５は、システム管理モードにおいて処理される割り込みである。一般に、マルチノード・データ処理システムは、該マルチノード・データ処理システムのオペレーティング・システムをシャットダウンすることなく、割り込みの処理を可能にする。例えば、インテル・アーキテクチャ（ｘ８６）に基づいたマルチノード・システムは、一般に、システム管理モードをサポートする。システム管理モードは、現在のプロセッサの状態を保存し、該プロセッサが、オペレーティング・システムをシャットダウンすることなく、割り込みの処理のようなシステム管理機能を行うことを可能にする。他の実施形態においては、マルチノード・データ処理システム１０５は、非インテル・アーキテクチャ、又は異なる割り込みアーキテクチャを有するインテル・アーキテクチャに基づくものとすることができる。ＳＭＳ１６５は、サービス・プロセッサ論理によって与えられる情報を監視し、個々のコンピュータに配置されたシステム管理者にグラフィカル・インタフェースを提供することができる。システム管理者は、ＳＭＳ１６５を用いることによって、マルチノード・データ処理システム１０５の構成を変更することができる。他の実施形態において、ＳＭＳ１６５は、個々のデータ処理システム上に常駐することができる。他の実施形態は、サービス・プロセッサ論理と分離したＳＭＳを含むことができない。
【００２１】
サーバ１９０は、ネットワーク接続によって接続され、直接接続されていないので、マルチノード・データ処理システム１０５の遠隔にある。遠隔サーバ１９０は、マルチノード・データ処理システム１０５においてアクティブなプロセッサの数を変更することに関連した信号を、マルチノード・データ処理システム１０５に送ることができる。遠隔サーバ１９０は、例えば、マルチノード・データ処理システム１０５に、プロセッサのようなオンデマンド式コンピューティング・リソースをイネーブルにするための使用可能化コードを提供することができる。使用可能化コードの受信時に、マルチノード・データ処理システム１０５は、該マルチノード・データ処理システム１０５のコンポーネントであるが、作動されていなかったプロセッサ１１５、１７５の１つ又は複数を動的にイネーブルにすることができる。別の例として、システム管理者は、遠隔サーバ１９０から、マルチノード・データ処理システム１０５を制御することができる。システム管理者は、遠隔サーバ１９０からマルチノード・データ処理システム１０５にコマンドを送り、付加的なプロセッサを作動させることができる。さらに、作動後に、マルチノード・データ処理システム１０５は、プロセッサ１１５、１７５の状態を判断することができる。マルチノード・データ処理システム１０５は、プロセッサ１１５、１７５の１つが、システムの残りが作動し始めた後に動的に付加されたのか、又は、システムの残りと共に立ち上げられたのかを判断することができる。プロセッサは、マルチノード・システムのオペレーティング・システムのシャットダウン及び再起動を用いずに、プロセッサがマルチノード・システムに付加されたときに動的に付加される（「オンザフライ式に」付加される）。
【００２２】
図２は、シャーシ２１５、プロセッサ２５０、２６０、ノース・ブリッジ２７０、メモリ・コントローラ２７５、システム・メモリ２２５、及びサービス・プロセッサ・カード２９５を含む、アクティブなプロセッサの数を動的に変更することができるマルチノード・データ処理システムにおけるノード２２０の例を示す。プロセッサ２５０、２６０は、プロセッサ相互接続２５５によって接続される。プロセッサ相互接続２５５は、システム・バス２６５によってノース・ブリッジ２７０に接続される。ノース・ブリッジ２７０は、マルチノード・データ処理システムの機能を記載するパラメータを格納するために用い得るスクラッチ・レジスタ２８０を含む。ノース・ブリッジは、システム・バス２６５によってメモリ・コントローラ２７５に接続され、ＰＣＩバス２８５によってサービス・プロセッサ・カード２９５に接続される。メモリ・コントローラ２７５は、システム・バス２６５によってシステム・メモリ２２５に接続される。システム・メモリ２２５は、マルチノード・データ処理システムの作動を制御するソフトウェアを含むことができる。ソフトウェアは、オペレーティング・システムＯＳ２３０と、ＳＭＩ２３５を含むＢＩＯＳ２４０とを含む。サービス・プロセッサ・カード２９５は、マルチノード・データ処理システムの種々のコンポーネントを調整するための主要な機構を構成することができる。サービス・プロセッサ・カード２９５は、埋め込まれたオペレーティング・システム２９０を含むことができる。汎用入力出力ピン（ＧＰＩＯピン）２４５は、サービス・プロセッサ・カード２９５とＢＩＯＳ２４０との間に直接接続を提供する。他の実施形態においては、プロセッサ２５０、２６０によって、サービス・プロセッサ論理を実行することができる。他の実施形態において、ノードのメモリは、システムのＯＳを含むことができない。他の実施形態において、ノードは、２個でない、異なる数のプロセッサを有することができる。他の実施形態において、割り込みアーキテクチャを、ＳＭＩ以外のものにすることができる。他の実施形態において、ノードのアーキテクチャは、ノース・ブリッジ・アーキテクチャ、サウス・ブリッジ・アーキテクチャ以外のものにすることができる。
【００２３】
ＢＩＯＳ２４０は、プロセッサ２５０、２６０の作動を制御することができる。ノード２２０は、基本プロセッサ２５０を有することができる。シャーシ２１５の電源投入時に、基本プロセッサ２５０が、パワーオン・セルフ・テスト（ｐｏｗｅｒ−ｏｎ  ｓｅｌｆ  ｔｅｓｔ、ＰＯＳＴ）を実行することができる。ＰＯＳＴ中に、電気信号が、レジスタ２８０のようなレジスタから残りのデータを消去することができる。電気信号はまた、プログラム命令のカウンタを、基本プロセッサ２５０が実行を開始するための次の命令のアドレスである、特定のアドレスに設定することもできる。このアドレスは、ＢＩＯＳ２４０内に格納された基本プロセッサ２５０に関して、起動プログラムの開始を参照することができる。この命令は、一連のシステム・チェックを実行することができる。図２において、基本プロセッサ２５０は、システム・チェックを実行した後にプロセッサ２６０を立ち上げることができる。次に、基本プロセッサ２５０は、システム・データを調査し、プロセッサ２６０がノードの一部として作動されることになるかどうかを判断することができる。システムの立ち上げ時の最終ステップとして、ノード２２０のプロセッサ２５０、２６０の全てが立ち上げられると、基本プロセッサ２５０は、ノードの拡張性及び接続を見ることができる。システム立ち上げプロセスの最後の最後まで、ノードを接続することができない。
【００２４】
プロセッサ２６０がシステムまで接続されないことをシステム・データが示すとき、基本プロセッサ２５０は、ディスエーブルにされたプロセッサ２６０を配置することができる。１つの実施形態においては、起動中、ＢＩＯＳは、ａｄｖａｎｃｅｄ  ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  ｐｏｗｅｒ  ｉｎｔｅｒｆａｃｅ(ＡＣＰＩ）仕様及び／又はＳ３状態を用いて、プロセッサ２６０を低電力状態、待機状態、又はオフ状態にする。ＡＣＰＩは、オペレーティング・システム２３０が利用可能なハードウェアの状況情報を作成する電力管理仕様である。ＡＣＰＩシステムのファームウェアは、テーブル内に組織化されたデータを主システム・メモリ内に配置することによって、データ処理システムの特性を記載する。ＢＩＯＳ２４０がＯＳ２３０に制御を渡す前に、実行中のプロセッサのグループからプロセッサ２６０の最初の除去を行うことができる。別の実施形態において、基本プロセッサ２５０は、プロセッサ２６０をタイト・ループ又はスピン・サイクル状態にすることによって、プロセッサ２６０をディスエーブルにすることができる。プロセッサ２６０は、如何なるシステム作業も行うことなく、少数の組の命令を連続的に実行することができる。ＢＩＯＳ２４０は、プロセッサ２５０、２６０を作動させるための２つ又はそれ以上の組のコードを含むことができる。一方の組のコードは、通常システムに接続されたプロセッサ２６０を立ち上げることができ、他方の組のコードは、プロセッサ２６０をディスエーブルにすることができる。
【００２５】
図２の実施形態において、サービス・プロセッサ・カード２９５が、遠隔コンピュータから信号を受信し、アクティブなプロセッサ２５０、２６０の数を変更することができる。サービス・プロセッサ・カード２９５は、例えば、プロセッサ２６０の作動をイネーブルにする使用可能化コードを受信することができる。次に、サービス・プロセッサ・カード２９５は、ＧＰＩＯピン２４５によって信号をＢＩＯＳ２４０に送信することができ、これにより、プロセッサ２５０、２６０を立ち上げるコードを参照するアドレス・ラインがフリップされる。アドレス・ラインは、ＲＡＭチップの上にエッチングされ、ＲＡＭ内の特定の位置と関連付けられた電気回路を構成することができる。アドレスとの間で読み書きを行うために、信号がアドレス・ラインに沿って送られ、該アドレス・ラインに接続されたデータ・ラインにアクセスする。データ・ラインは、アドレス・ラインと関連付けられたアドレスに格納されたデータのワードのビット値を伝送することができる。アドレス・ラインをフリップすることによって、メモリ・アドレスが参照するアドレス・ラインが変更される。使用可能化コードを受信する前に、アドレス・ラインは、プロセッサ２６０を非アクティブ化する起動コードを参照することができる。使用可能化コードが遠隔コンピュータから受信され、アドレス・ラインがフリップされた後、電源投入時にロードされたコードが、プロセッサ２６０をマルチノード・データ処理システムのアクティブ部分として立ち上げるコードを構成することができる。サービス・プロセッサ・カード２９５は、プロセッサ２６０の電源を切るＳＭＩを生成することができる。サービス・プロセッサはまた、プロセッサ２６０によって用いるためのメモリ及びＩＯのようなシステム・リソースを割り当てることもできる。次に、サービス・プロセッサ・カード２９５は、プロセッサ２６０の電源を入れることができる。起動時に、プロセッサ２６０は、ＢＩＯＳ２４０からコードをロードし、プロセッサ２６０を作動させることができる。
【００２６】
他の実施形態においては、他の方法を用いて、プロセッサを動的に作動させることができる。例えば、レジスタ値によって、ＢＩＯＳ２４０を分岐させることができる。例えば、サービス・プロセッサ・カード２９５は、ＧＰＩＯの値又はＢＩＯＳ２４０が読み取る不揮発性ＲＡＭの値を設定し、その値によって、アクティブなプロセッサ２６０又はイネーブルにされたプロセッサ２６０を有するノード２２０を起動することができる。他の実施形態において、ノード２２０は、異なる数のプロセッサ、異なる数のアクティブなプロセッサ、及び異なる数の動的に作動させられたプロセッサを含むことができる。例えば、８つのプロセッサを有するプロセッサのないノードは、８つのプロセッサの全てをディスエーブルにした状態で立ち上げることができる。８つのプロセッサの全てを動的に作動させることもできる。別の例として、４つのプロセッサの２つがアクティブな状態で、ノードを立ち上げることができる。他の２つは、動的に作動させることができる。
【００２７】
図２の実施形態において、マルチノード・データ処理システムが作動されるとき、サービス・プロセッサ・カード２９５は、システム・リソースを、ノード２２０のような種々のコンポーネント・ノードに割り当てることができる。例えば、アクティブでないプロセッサを有するノードを、メモリ及びＩＯを有するノードとしてマルチノード・データ処理システム内に併合させることができる。システム内の他のプロセッサにメモリを割り当てることができる。後にノードのプロセッサが動的に作動される場合には、他のプロセッサに割り当てられたノード・メモリをそれらのプロセッサに割り当てないことが重要である。他のプロセッサに割り当てられたノード・メモリを用いてプロセッサからメモリを除去することにより、システムの故障がもたらされる可能性がある。したがって、プロセッサが作動されるとき、プロセッサ２５０、２６０のようなプロセッサの状態を判断できることが重要である。
【００２８】
図２の実施形態において、作動されたプロセッサは、ノース・ブリッジ２７０内に含まれるレジスタ２８０から値を読み取ることによって、該プロセッサが動的に作動されたのかどうかを判断することができる。プロセッサ２６０が動的に作動されたとき、基本プロセッサ２５０又はサービス・プロセッサ・カード２９５は、動的な作動を示すように、値をレジスタ２８０に書き込むことができる。ＰＯＳＴの実行時に、動的に作動されたプロセッサ２６０は、レジスタ２８０内の値を読み取ることができる。値が、プロセッサ２６０が動的に作動されたことを示す場合には、プロセッサ２６０は、レジスタ２８０内の値を、通常のプロセッサの作動を示すデフォルト値に再書き込みすることができる。次に、プロセッサ２６０がスリープすることが可能である。ＳＭＩ割り込みの結果として動的な作動が実行されたとき、デフォルト値がレジスタ２８０に書き込まれたことをＳＭＩ割り込みハンドラ２３５が判断するまで、ＳＭＩ割り込みハンドラ２３５がレジスタ２８０をポーリングすることができる。次に、ＳＭＩ割り込みハンドラは、ＡＣＰＩテーブルを更新し、新しい構成を示すことができる。他方、プロセッサ２５０、２６０の一方が正常に作動された場合には、レジスタ２８０の値を通常値とすることができる。プロセッサ２５０、２６０は、通常の電源投入ルーチンを進める。他の実施形態においては、プロセッサの状態を判断する異なる方法を用いることができる。例えば、プロセッサ２５０、２６０は、システム・テーブルを読み取り、電源投入時に利用可能なリソースを判断することができる。プロセッサ２５０、２６０が動的に作動される場合には、システム・テーブルを更新し、プロセッサ２５０、２６０の電源を切ることができる。次に、プロセッサ２５０、２６０の電源を入れ、変更されたシステム・テーブルを読み取ることができる。他の実施形態においては、プロセッサ２５０、２６０の電源を切ることなく、プロセッサ２５０、２６０に割り当てられたリソースを変更することができる。
【００２９】
ここで図３を参照すると、マルチノード・データ処理システムにおいてアクティブなプロセッサの数を動的に変更するための実施形態のフローチャートが示される。マルチノード・データ処理システムは、物理的にはノードの１つの中に存在するが、ディスエーブルにされたプロセッサを含むことができる。例えば、このシステムは、オンデマンド式システムを含むことができる。このシステムは、プロセッサの一部がディスエーブルにされた状態で出荷することができる。別の例として、このシステムは、バックアップとして利用可能なディスエーブルにされたプロセッサを含むことができる。フローチャート３００は、マルチノード・データ処理システムのためのプロセッサの作動に関連した信号を、マルチノード・データ処理システムの遠隔から受信する（要素３１０）ステップで開始する。例えば、オンデマンド式システムの場合、システム管理者は、システムが付加的な処理容量を必要としていると判断し、財務担当者が、付加的な容量を購入することができる。次に、システムの供給業者が、ディスエーブルにされたプロセッサを作動させるための使用可能化コードを送ることができる。使用可能化コードの送信は、プロセッサの作動に関連した信号を構成することができる。別の例として、ネットワーク上でマルチノード・データ処理システムに接続されたコンピュータで操作しているシステム管理者が、バックアップ・プロセッサをアクティブにし、旧式のプロセッサ又は故障の恐れがあるプロセッサと置き換えるように決定することができる。システム管理者は、ネットワークによってメッセージをマルチノード・データ処理システムに送り、予備のプロセッサの一部を作動させることができる。いずれの例においても、マルチノード・データ処理システムは、信号を受信することができる。
【００３０】
次に、システムは、ＳＭＩ割り込みを生成することができる（要素３３０）。ＳＭＩ割り込みハンドラは、作動されることになるプロセッサの電源を入れるかどうかを判断することができる（要素３４０）。プロセッサは、例えば、スピン・サイクルを実行することができる。プロセッサの電源が入れられる場合には、ＳＭＩ割り込みハンドラは、プロセッサの電源を切ることができる（要素３５０）。プロセッサの電源が切られると、ＳＭＩ割り込みハンドラは、ＧＰＩＯ（汎用入力／出力ピン）によって信号を送ることによって、プロセッサのためのアドレス・ラインをリセットすることができる（要素３６０）。アドレス・ラインを、起動時にプロセッサがロードするＢＩＯＳ内の位置と関連付けることができる。アドレス・ラインをリセットすることによって、ＳＭＩ割り込みハンドラが、プロセッサの起動を制御するコードを変更することが可能になる。
【００３１】
ＳＭＩ割り込みハンドラは、マルチノード・データ処理システムのノードがどのように接続し、それらがどのように通信するかを記載するシステム・テーブルを変更することができる（要素３７０）。変更されたテーブルは、作動されることになるプロセッサがシステムに接続されることを示すことができる。次に、ＳＭＩ割り込みハンドラは、作動されることになるプロセッサを再起動することができる（要素３８０）。起動プロセス中に、プロセッサは、ＰＯＳＴ手順を行い、システムのＢＩＯＳからコードをロードすることができる。リセットされたアドレス・ライン（要素３６０）の結果として、プロセッサは、該プロセッサを作動させるコードをロードすることができる。このシステムは、該システムが他のノードを作動させるための信号を受信したかどうかをチェックすることができる（要素３９０）。受信した場合には、３３０から３８０までの各要素を繰り返すことができる。受信しなかった場合には、プロセッサの動的な作動を終了することができる。
【００３２】
ここで図４を参照すると、プロセッサを動的に作動させるマルチノード・データ処理システムにおいてプロセッサの状態を判断するための実施形態のフローチャートが示される。フローチャート４００は、プロセッサを覚醒させること（要素４１０）で開始する。例えば、通常のシステム起動中に、システム内の他のプロセッサと共にプロセッサの電源を入れることができる。別の例として、バックアップ・プロセッサを動的に作動させることができる。別の例として、プロセッサは、オンデマンド式に動的に作動させることができる。覚醒されたプロセッサは、プロセッサの状態を示すレジスタ値を読み取ることができる（要素４２０）。レジスタは、プロセッサを含むノードのチップセット・レジスタの一部とすることができる。レジスタの値は、プロセッサの状態を示すことができる（要素４３０）。レジスタのデフォルト値、すなわち通常の起動時に設定される値が、プロセッサが動的に作動されなかったことを示し得る。異なるレジスタの値が、プロセッサが動的に作動されたことを示すことができる。例えば、プロセッサが動的に作動されることになるとき、別のプロセッサ又はＳＭＩハンドラは、それが動的に作動されたことを示す値をレジスタに書き込むことができる。
【００３３】
プロセッサが動的に作動されたことをレジスタ値が示す場合には、プロセッサは、レジスタ値をデフォルト値に再書き込みすることができる（要素４４０）。次に、このシステムは、プロセッサにより用いるためのメモリ及びＩＯを再構成するように、リソース・テーブルを更新することができる（要素４５０）。プロセッサがディスエーブルにされた状態でシステムの電源が入れられたので、通常プロセッサが利用可能なリソースを再割り当てすることが可能である。例えば、プロセッサは、アクティブなプロセッサを用いずに電源が入れられたブレード上に常駐することができる。ブレード上のメモリは、他のプロセッサに再割り当てすることができ、動的に作動させられたプロセッサが、これを利用できなくなることがある。システムは、プロセッサを覚醒させ（要素４６５）、該プロセッサを実行する（要素４７０）ことができる。作動させるための他のプロセッサがある場合には（要素４８０）、４１０から４７０までの各要素を繰り返すことができる。ない場合には、プロセッサを動的に作動させるマルチノード・データ処理システムにおけるプロセッサの状態の判断を終了することができる。
【００３４】
本発明の別の実施形態は、図１に示されるマルチノード・データ処理システム１０５のようなマルチノード・データ処理システムにおいてプロセッサの動的な作動を実施するためのプログラム製品として実施される。このプログラム製品のプログラムは、（ここに説明される方法を含む）実施形態の機能を定め、様々なデータ及び／又は信号支持媒体上に含ませることができる。例証となるデータ及び／又は信号支持媒体には、これらに限定されるものではないが、（ｉ）書き込み可能でない記憶媒体（例えば、ＣＤ−ＲＯＭドライブによって読み取り可能なＣＤ−ＲＯＭディスクのようなコンピュータ内の読み取り専用メモリ装置）上に恒久的に格納された情報、（ｉｉ）書き込み可能な記憶媒体（例えば、ディスケット・ドライブ又はハードディスク・ドライブ内のフロッピー・ディスク）上に格納された書き換え可能な情報、及び（ｉｉｉ）無線通信を含む、コンピュータ又は電話ネットワークを介してなど、通信媒体によってコンピュータに伝達される情報が挙げられる。後者の実施形態は、特定的に、インターネット及び他のネットワークからダウンロードされた情報を含む。本発明の機能を指示するコンピュータ可読命令を伝えるとき、こうしたデータ及び／又は信号支持媒体により、本発明の実施形態が示される。
【００３５】
一般に、本発明の実施形態を実施するために実行されるルーチンは、オペレーティング・システム、又は特定のアプリケーション、コンポーネント、プログラム、モジュール、オブジェクト、或いは一連の命令の一部とすることができる。本発明のコンピュータ・プログラムは、一般に、コンピュータによって機械可読形式に、よって実行可能な命令に変換される多数の命令で構成される。同様に、プログラムは、該プログラムの近くに常駐するか或いはメモリ内又は記憶装置上に見出される、変数及びデータ構造から構成される。さらに、以下に記載される種々のプログラムは、本発明の特定の実施形態においてそれらのプログラムを実施するアプリケーションに基づいて識別することができる。しかしながら、以下の如何なる特定のプログラムの名称も、便宜上用いられるものにすぎず、よって、本発明は、こうした名称によって識別及び／又は意味される何れかの特定のアプリケーションにだけ用いるように限定されるべきではないことを認識すべきである。
【００３６】
本発明が、マルチノード・データ処理システムにおいてプロセッサを動的に作動させる方法及び構成を考えるものであることは、本開示の利益を得る当業者には明らかであろう。詳細な説明及び図面に示され、説明された本発明の形態は、例示的なものにすぎないと考えるべきであることが理解される。上記の特許請求の範囲は、開示された例示的な実施形態のあらゆる変形を含むように広く解釈されることが意図される。
【００３７】
本発明及びその利点の一部が、幾つかの実施形態について詳細に説明されたが、添付の特許請求の範囲によって定められる本発明の精神及び範囲から逸脱することなく、種々の変更、置換、及び変更をここになし得ることを理解すべきである。本発明の実施形態は多数の目的を達成できるが、添付の特許請求の範囲の範囲に入る全ての実施形態が全ての目的を達成するわけではない。さらに、本出願の範囲は、本明細書に記載されたプロセス、マシン、製造物、組成物、手段、方法、及びステップの特定の実施形態に限定されるように意図されるものではない。当業者であれば本発明の開示から容易に理解するように、本発明に従って、ここに記載される対応する実施形態と実質的に同じ機能を実行する又は実質的に同じ結果を達成する、現在のところ存在する又は後に開発されることになる、プロセス、マシン、製造物、組成物、手段、方法、又はステップを用いることもできる。したがって、添付の特許請求の範囲は、こうしたプロセス、マシン、製造物、組成物、手段、方法、又はステップをその範囲内に含ませることが意図される。
【図面の簡単な説明】
【００３８】
【図１】マルチノード・データ処理システムにおいてアクティブなプロセッサの数を動的に変更するためのシステムの実施形態を示す。
【図２】アクティブなプロセッサの数を動的に変更することができるマルチノード・データ処理システムにおけるノードの例を示す。
【図３】マルチノード・データ処理システムにおいてアクティブなプロセッサの数を動的に変更するための実施形態のフローチャートを示す。
【図４】プロセッサを動的に作動させることができるマルチノード・データ処理システムにおいてプロセッサの状態を判断するための実施形態のフローチャートを示す。
【符号の説明】
【００３９】
１００：システム
１０５：マルチノード・データ処理システム
１１０、１４５、２２０：ノード
１１５、１７５、２５０、２６０：プロセッサ
１２０、１８０、２７０：ノース・ブリッジ
１２５、１８５、２７５：メモリ・コントローラ
１３５、１５０、２２５：メモリ
１５５、２３５：システム管理割り込み（ＳＭＩ）
１６０、２４０：ＢＩＯＳ
１６５：システム管理ソフトウェア（ＳＭＳ）
１７０、２３０、２９０：オペレーティング・システム（ＯＳ）
１９０：遠隔サーバ
１９５、２６５：バス
２４５：汎用入力・出力ピン（ＧＰＩＯピン）
２８０：スクラッチ・レジスタ
２９５：サービス・プロセッサ・カード
【図１】
2007172591.tif 000003
【図２】
2007172591.tif 000004
【図３】
2007172591.tif 000005
【図４】
2007172591.tif 000006