(57)【要約】  プロセッサのパフォーマンス状態を管理するシステム及び方法である。筐体は、プロセッサを有する第１の処理ボード及びプロセッサを有する第２の処理ボードを備えている。サービスプロセッサは、相互接続を介して筐体に接続されていてもよい。第２の処理ボードは、第２のボード上のプロセッサの最大プロセッサパフォーマンス状態を示す値を記憶するように構成されている。第１のプロセッサパフォーマンス状態への移行を求める検知された要求に応じて、第２のボード上のプロセッサは、第１のプロセッサ状態が前記最大プロセッサパフォーマンス状態以下である場合には第１のプロセッサパフォーマンス状態へと移行し、第１のプロセッサ状態が前記最大プロセッサ状態よりも大きい場合には最大プロセッサパフォーマンス状態へと移行するように構成されている。第２のプロセッサボードは、筐体内の他の部分で検知された動作環境状況に応じて値を記憶してもよい。
2010500693.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサのパフォーマンスを管理する方法であって、
最大プロセッサパフォーマンス状態を示す値を記憶し、
第１のプロセッサパフォーマンス状態への移行要求（２００）を検知し、
前記第１のプロセッサ状態が前記最大プロセッサパフォーマンス状態以下であるという判定（２０２）に応じて、前記プロセッサを前記第１のプロセッサパフォーマンス状態へ移行（２１２，２１４，２１６）させ、
前記第１のプロセッサ状態が前記最大プロセッサ状態よりも大きいという判定（２０２）に応じて、前記プロセッサを前記最大プロセッサパフォーマンス状態へ移行（２２２，２２４，２２６）させる方法。
【請求項２】
さらに、
筐体（１７０，１７２）の第１の部分における前記動作環境状況を検知し、
前記動作環境状況を遠隔のサービスプロセッサ（１３２）に通知し、
前記サービスプロセッサから前記筐体の第２の部分にコマンドを伝達し、
前記コマンドの受け取りに応じた値を記憶する、請求項１記載の方法。
【請求項３】
前記筐体の前記第２の部分では前記動作環境状況を検知しない、請求項２記載の方法。
【請求項４】
プロセッサのパフォーマンスを管理するシステムであって、
プロセッサ（１３０）を有する第１の処理ボード（１２０Ａ〜１２０Ｄ）及びプロセッサ（１３０）を有する第２の処理ボード（１２０Ａ〜１２０Ｄ）を備えた筐体（１０２）と、
相互接続（１４２）を介して前記筐体に接続されたサービスプロセッサ（１３２）を備えており、
前記第２の処理ボードは、
最大プロセッサパフォーマンス状態を示す値を記憶し、
第１のプロセッサパフォーマンス状態への移行要求を検知し、
前記第１のプロセッサ状態が前記最大プロセッサパフォーマンス状態以下であるという判定に応じて、前記第２の処理ボードの前記プロセッサを前記第１のプロセッサパフォーマンス状態へ移行し、
前記第１のプロセッサ状態が前記最大プロセッサ状態よりも大きいという判定に応じて、前記第２の処理ボードの前記プロセッサを前記最大プロセッサパフォーマンス状態へ移行するように構成されているシステム。
【請求項５】
前記筐体の前記第２の部分では前記動作環境状況を検知しない、請求項４記載のシステム。
【請求項６】
プロセッサのパフォーマンスを管理するシステム（１００）であって、
動作環境状況を監視するように構成されたコントローラ（１３２）と、
外部アクセス可能なレジスタ（１８２）を備えたプロセッサ（１３０）を備えており、
前記プロセッサは、
第１のプロセッサパフォーマンス状態への移行要求（２００）を検知し、
前記レジスタにアクセス（２０２）して最大プロセッサパフォーマンス状態を判定し、
前記第１のプロセッサ状態が前記最大プロセッサパフォーマンス状態以下であるという判定（２０２）に応じて、前記プロセッサを前記第１のプロセッサパフォーマンス状態へ移行（２１２，２１４，２１６）し、
前記第１のプロセッサ状態が前記最大プロセッサ状態よりも大きいという判定（２０２）に応じて、前記プロセッサを前記最大プロセッサパフォーマンス状態へ移行（２２２，２２４，２２６）するように構成されているシステム。
【請求項７】
前記コントローラは、検知された動作環境状況に応じた前記最大プロセッサパフォーマンス状態を示す値を記憶するように構成されている、請求項６記載のシステム。
【請求項８】
前記状況は温度状況を含む、請求項７記載のシステム。
【請求項９】
前記動作環境状況は、前記プロセッサ及び前記コントローラの外部にあるデバイスによって検知され、前記コントローラは、サービスプロセッサから受け取ったコマンドに応じて前記値を記憶するように構成されている、請求項６記載のシステム。
【請求項１０】
前記プロセッサは、前記第１のプロセッサ状態が前記最大プロセッサ状態よりも大きいという判定に応じて、前記プロセッサが前記第１のプロセッサ状態に移行されたことをオペレーティングシステムに通知するように構成されている、請求項６記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータシステムに関し、より詳細にはプロセッサのパフォーマンスの管理に関する。
【背景技術】
【０００２】
最近のコンピュータシステムには一般的に、動作環境を監視する様々な機構が搭載されている。例えば、インテリジェントプラットフォーム管理インターフェース（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｐｌａｔｆｏｒｍ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｆａｃｅ：ＩＰＭＩ）仕様は、システム管理者によるシステムの正常性の監視及び当該システムの管理を可能にするコンピュータハードウェアやファームウェアに対する共通インターフェース群を規定している。一般的に、システムのマザーボードには、ベースボード管理コントローラ（ｂａｓｅｂｏａｒｄ  ｍａｎａｇｅｍｅｎｔ  ｃｏｎｔｒｏｌｌｅｒ：ＢＭＣ）等のＩＰＭＩ機能に対応する専用のマイクロコントローラが搭載されていることがある。ＢＭＣは、システム管理ソフトウェアとプラットフォームハードウェアの間のインターフェースを管理している。ＩＰＭＩはオペレーティングシステム（ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ：ＯＳ）から独立して動作するので、ＯＳやシステム管理ソフトウェアがない場合でも、システム管理者はシステムの遠隔管理が可能になる。ＩＰＭＩは、サーバーシステム内でＢＭＣがどのように管理機能を拡張するかを規定することによって機能し、温度センサ、ファン回転速度、及び電圧といったボード搭載の計器装備を監視することで、メインプロセッサから独立して動作する。ＢＭＣを通じて、ＩＰＭＩもまた、システム管理者によるサーバーへの電力の制御や、ＢＩＯＳ設定及びオペレーティングシステムコンソール情報への遠隔アクセスを可能にしている。
【０００３】
一般的に、センサは、コンピュータシステムの中に組み込まれ、ＢＭＣによってデータがあるかどうかポーリングされる。温度、冷却ファン回転速度、電源モード、オペレーティングシステム（ＯＳ）のステータス等の様々な条件やパラメータの、監視や通知を行い得る。様々な条件を検知すると、ＢＭＣはネットワーク経由でシステム管理者に警告を通知し得る。それを受けてシステム管理者はＢＭＣと通信し、ハングアップしたＯＳを再起動させるためにリセットしたり電源を切って再投入したりするなど、いくつかの修正動作を行い得る。
【０００４】
最近のプロセッサは多くの場合、オペレーティングシステム指向の技術を用いて、様々なパフォーマンスレベルで動作できるようになっている。異なるプロセッサパフォーマンスレベルは、電源及び／または温度管理手法の一部としてよく使用される。例えば、システムがバッテリ電源で動作している場合には、動作時間をより長くするために、低下させた状態のプロセッサパフォーマンスレベルが使用されるであろう。同様に、プロセッサ動作温度がある所定の閾値を超えていると検知された場合には、動作温度を下げるために、低下させた状態のプロセッサパフォーマンスレベルが選択されるであろう。様々なプロセッサパフォーマンスレベルを「Ｐステート」と称することもある。オペレーティングシステムは一般に、あるプロセッサがアイドル状態か使用中の状態か（及びどの程度使用されているか）を判定するのに最も適しているので、オペレーティングシステムがプロセッサのＰステート値を制御する。プロセッサは、電源管理手法の一部として、例えば拡張構成及び電源インターフェース（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ：ＡＣＰＩ）仕様に従う場合もある。だが困ったことに、オペレーティングシステムは、他の動作環境状況を把握するには装備が不十分である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、ラック及びブレードシステム、筐体、電源、並びに冷却の要求事項を管理することは、適正な動作には不可欠である。しかし、筐体内の単一システム上にあるオペレーティングシステムは、他のシステムが起動時間中に過大な電力を消費していることや、筐体の電力需要が規定のレベルを超える前に自身のＰステートを下げる必要があることを把握できない。同様に、筐体の底部にある単一システムのオペレーティングシステムは、筐体内でより高い位置にあるシステムが過剰加熱の問題を抱えていることや、その問題の解決を促すために（たとえ自身の動作温度が正常なパラメータの範囲内であっても）自身のＰステートを下げる必要があることを認識していない可能性もある。さらに、オペレーティングシステムは、たくさんの異なるプロバイダからのソフトウェア要素が複雑にまじりあったものである。その結果オペレーティングシステムは、Ｐステート制御デーモンを停止し得るクラッシュの影響を受けてしまう。この現象が起きてしまうと、プロセッサのＰステートを変更する方法は現在のところ存在しない。
【０００６】
上記に鑑みて、プロセッサのパフォーマンスを管理するシステム及び方法が望まれている。
【課題を解決するための手段】
【０００７】
プロセッサのパフォーマンス状態を管理するシステム及び方法を考察する。
【０００８】
一実施形態において、筐体は、プロセッサを有する第１の処理ボード及びプロセッサを有する第２の処理ボードを備えている。１つの筐体内において、各処理ボードはそれぞれ複数のサーバーブレードを備えている。１つの筐体内におけるこのようなシステムの集合体を考えると、筐体のある部分における動作環境状況が筐体の別の部分に影響を及ぼし得る。一実施形態において、サービスプロセッサは、相互接続を介して筐体に接続される。第２の処理ボードは、第２のボード上のプロセッサの最大プロセッサパフォーマンス状態を示す値を記憶するように構成されている。第１のプロセッサパフォーマンス状態への移行を求める検知された要求に応じて、第２のボード上のプロセッサは、第１のプロセッサ状態が前記最大プロセッサパフォーマンス状態以下である場合には第１のプロセッサパフォーマンス状態へと移行し、また、第１のプロセッサ状態が前記最大プロセッサ状態よりも大きい場合には最大プロセッサパフォーマンス状態へと移行するように構成されている。第２のプロセッサボードは、筐体内の他の部分で検知された動作環境状況に応じて値を記憶してもよい。
【０００９】
一実施形態において、動作環境状況は第１の処理ボードによって検知され、サービスプロセッサへ通知される。通知された状況に応じて、サービスプロセッサは、コマンドを、コマンドの受け取りに応じた値を記憶するように構成されている第２の処理ボードへ伝達する。さらに、第２の処理ボード上のプロセッサは、実際は第１のプロセッサ状態とは異なる最大プロセッサパフォーマンス状態へと移行していたとしても、第１のプロセッサ状態に移行されたとオペレーティングシステムに通知してもよい。
【００１０】
これらの実施形態及び他の実施形態は以下の説明及び図面を参照することで考察され、また理解されるであろう。
【図面の簡単な説明】
【００１１】
本発明の他の目的及び効果は、以下の詳細な説明を読み、添付図面を参照すれば明白になるであろう。
【００１２】
【図１】コンピュータシステムの一実施形態のブロック図。
【図２】プロセッサパフォーマンス状態を管理する一実施形態を示す図。
【図３】パフォーマンス状態制限実体をプロセッサ内に投入する方法の一実施形態を示す図。
【図４】システム内のプロセッサパフォーマンス状態を管理する方法の一実施形態を示す図。
【図５】システム内のプロセッサパフォーマンス状態を管理する方法の一実施形態を示す図。
【図６】コンピュータシステムの一実施形態のブロック図。
【００１３】
本発明は種々の変形や代替形が可能であるが、本発明の特定の実施形態は各図面において例示のために示されたものであり、本明細書にて詳細を説明する。しかし、これらの図面及び詳細な説明は、本発明を開示された特定の形状に限定することを意図するものではなく、反対に、添付請求項で定義されるような本発明の精神及び範疇の範囲内にあるすべての変形、均等物、及び代替形を網羅することを意図するものであることは理解されるべきである。
【発明を実施するための形態】
【００１４】
上述のように、筐体のある部分の状況が筐体の別の部分では検知されていない場合がある。例えば、筐体の第１の部分では温度状況が許容できないレベルに達した状態にありながら、当該筐体の別の部分にあるプロセッサは最大限のプロセッサパフォーマンス状態で動作し続けていることがある。その結果、許容範囲を超えた加熱の問題を解決することが難しくなる。よって、オペレーティングシステムまたはソフトウェアの外部にある他のデバイスが、プロセッサのパフォーマンス状態（Ｐステート）の値を変更することができるようにすることが望ましい。このエンティティをＰステート制限実体と称してもよい。一実施形態において、Ｐステート制限実体は、プロセッサコアが達成可能な最高Ｐステート値を含むとともに外部アクセス可能な制御レジスタを、プロセッサ内に備えている。オペレーティングシステムの外部にある知能がインターフェースを介してＰステート制限実体を実行した場合、プロセッサコアの現在のＰステートがＰステート制限実体自身のパフォーマンスレベルにあるか、パフォーマンスレベル以下であるならば、プロセッサコアの現在のＰステートは同じ状態のままで変更しない。コアの現在のＰステートがＰステート制限実体よりも高いパフォーマンスモードにあるならば、コアのＰステートをＰステート制限実体と一致するように変更する。Ｐステート制限実体を高い値にしない限り、オペレーティングシステムまたはソフトウェアは、コアの実際のＰステート値をＰステート制限実体より高く設定することはできないが、より低いパフォーマンス状態には設定できる。様々な実施形態において、Ｐステート制限実体を固定する機能が存在するものもある。例えば、Ｐステート制限実体によってコアのＰステートをＰステート制限実体値に固定すべきかどうかを判定するビットを指定してもよい。このような固定機能により、複雑なＰステート変更なしに、パフォーマンス分析がマシン上で実行可能になる。
【００１５】
図１はコンピュータシステムの一実施形態を図示したものである。図示された実施形態において、４つのプロセッサボード１２０Ａ〜１２０Ｄを有する筐体１１０が図示されている。一実施形態では、筐体１１０はブレード筐体からなり、また、ボード１２０の各々はサーバーブレードからなっていてもよい。しかし、プロセッサボードを有する筐体を使用した、ブレードを用いない実施形態も可能であり、検討されている。また、図１には、相互接続１４２を介して筐体１１０に接続されたサービスプロセッサ１３２が示されている。相互接続１４２は、例えば、ローカルエリアネットワーク、インターネット、または他の適切な相互接続で構成されていてもよい。本明細書で用いられているように、数字の後に文字がついた参照符号が付けられている要素は、参照数字のみで総称することもできる。例えば、プロセッサボード１２０Ａ〜１２０Ｄをプロセッサボード１２０と総称することもできる。以下において、説明を簡単にするために、一般的に、サーバー型筐体及びそれに関連する方法及び機構を言及していく。しかし、「筐体」はサーバー型筐体以外の他の種類の筐体で構成されていてもよいことが理解されるべきである。例えば、図１において、筐体１０２がデータセンターを表していてもよい。このようなデータセンターは複数のサーバー及び／または他のデバイスを含んでいてもよい。よって、筐体という語は各図面に図示されているものに限定されない。
【００１６】
図示例において、ボード１２０Ａは、中央演算処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ：ＣＰＵ）１３０、メモリ（ｍｅｍｏｒｙ：ＭＥＭ）１４０、及び管理コントローラ１５０を有する。一実施形態では、管理コントローラ１５０は、インテリジェントプラットフォーム管理インターフェース（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｐｌａｔｆｏｒｍ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｆａｃｅ：ＩＰＭＩ）仕様に従った動作に対応するように構成されたベースボード管理コントローラ（ｂａｓｅｂｏａｒｄ  ｍａｎａｇｅｍｅｎｔ  ｃｏｎｔｒｏｌｌｅｒ：ＢＭＣ）からなる。一般的に、ＩＰＭＩはコンピュータシステム及びその正常性を監視するために使用可能なインターフェース規格である。他の非ＩＰＭＩ仕様に基づいた実施形態も可能であり、検討されている。他のボード１２０Ｂ〜１２０Ｄをプロセッサボード１２０Ａと同じように構成してもよい。
【００１７】
一実施形態では、各ボード１２０はそれぞれバックプレーン型回路基板（図示省略）に接続されていてもよい。例えば、ボード１２０Ａがコネクタ１２２Ａと接続するように描かれているが、このコネクタはボード１２０Ａをバックプレーンに接続させる働きをしてもよい。また、図１の実施形態には、センサ１７０及び１７２が示されている。各センサ１７０はボード１２０Ａに実装されるように、また、各センサ１７２は各ボード１２０の外部にあるように描かれている。センサ１７２は、例えば、バックプレーンまたは他のボードと関連付けすることも、また筐体１１０の内部にあることも可能である。センサ１７０及び１７２は、システム１００の様々な動作状況を検知するように構成されていてもよい。このような状況としては、温度、冷却ファン回転速度、電源モード、オペレーティングシステム（ＯＳ）のステータス等が含まれる。
【００１８】
一実施形態では、コントローラ１５０は、センサ１７０及び／またはセンサ１７２を介してシステム１００の動作状況を監視するように構成されている。さらに、コントローラ１５０は、バス１５２を介して相互接続１４２に接続されるように描かれている。このようにして、サービスプロセッサ１３２は、動作状況監視のためにコントローラ１５０（及び筐体１１０内部の他のコントローラ）にアクセスしてもよい。図示されている実施形態において、コントローラ１５０はバス１５４を介してＣＰＵ１３０に接続されている。一実施形態では、バス１５４はＳＭバス等の帯域外通信リンクからなる。しかし、筐体１１０内部にあるコントローラ１５０と他の部品またはデバイスとの間において、任意の適切な通信リンクを使用してもよい。
【００１９】
図示されている実施形態において、ＣＰＵ１３０はレジスタ１８０及び１８２を有する。レジスタ１８０は、電源管理及び／またはパフォーマンス管理に関連して用いられる（例えばＡＣＰＩ関連の機能用）レジスタからなっていてもよい。例えば、レジスタ１８０はプロセッサのＰステートを示すデータを含んでいてもよい。一実施形態では、プロセッサのＰステートは０〜５の範囲であってもよく、ここで０は最高パフォーマンスレベルを、５は最低パフォーマンスレベル（例えばアイドル状態）を表している。しかし、任意の適切なＰステートの範囲及び数を用いてもよい。さらに、レジスタ１８０への書き込みによって、ＣＰＵ１３０のＰステートの変更を開始してもよい。様々な実施形態において、レジスタ１８０がＣＰＵ１３０の外部のエンティティにアクセス可能ではないものもある。レジスタ１８２は、ＣＰＵ１３０の外部のエンティティにアクセス可能なプロセッサパフォーマンス「制限」レジスタからなる。一実施形態では、ＣＰＵ１３０は、プロセッサのパフォーマンス状態（Ｐステート）を管理する際に、レジスタ１８０及び１８２の両方を使用している。図示例において、レジスタ１８２はコントローラ１５０によってアクセスされてもよい。コントローラ１５０は、筐体１１０内にあるサービスプロセッサ１３２及び／または他のデバイスによって（例えばバックプレーンバスを介して）アクセス可能であるので、一般的に、レジスタ１８２は、ＣＰＵ１３０の外部にある種々のエンティティにより、コントローラ１５０経由でアクセスされてもよい。なお、２つの別個のレジスタ１８０及び１８２が示されているが、任意の適切な記憶デバイスを使用してもよい。例えば、外部アクセス可能な部分と外部アクセス不可能な部分を有する１つのメモリデバイスを用いてもよい。
【００２０】
上記で説明したように、センサは、コンピュータシステム内に組み込まれてもよく、またＢＭＣに通知してもよい。温度、冷却ファン回転速度、及び電源モード等の様々な状況やパラメータを監視及び通知してもよい。様々な状況を検知すると、ＢＭＣは警告を発してもよく、それが次にネットワーク経由でシステム管理者に伝達されてもよい。一般的に、コントローラ１５０等の外部エンティティは、ＣＰＵ１３０のプロセッサの状態に直接アクセスすることも直接制御することもできない。しかし、図示されている実施形態では、コントローラ１５０はレジスタ１８２経由でＣＰＵ１３０のＰステートに間接的に影響を及ぼしてもよい。特に、以下に説明するように、コントローラ１５０は、ＣＰＵ１３０に対して最大Ｐステートを設定することによって、ＣＰＵ１３０のＰステートを制限してもよい。レジスタ１８２もまた、現在設定されているＰステート制限実体がそのＰステート制限実体に固定されることを示すデータ（例えばビット）を含んでいてもよい。一般的に、プロセッサは、プロセッサが動作可能な最大Ｐステートを示すデータを記憶するように構成された外部アクセス可能なレジスタ（Ｐステート制限レジスタ）を含む。Ｐステートの移行が（例えばオペレーティングシステムによって）要求されているとプロセッサが検知すると、要求されたＰステートが現在の最大Ｐステートとコンフリクトが生じていないかどうかを判定するために、Ｐステート制限レジスタが参照される。さらに、Ｐステート制限実体を変更したときもまた、現在のＰステートが新たに設定された制限実体とコンフリクトが生じていない状態にあることの確認をプロセッサが開始するようにしてもよい。
【００２１】
サーバー型の例とは対照的に、データセンター１０２は、データセンター１０２内で動作するシステムのＰステートの変更をもたらす制約や動作状況を有していてもよい。例えば、データセンター１０２は、データセンター１０２内で動作するシステムに結果的にＰステート制限実体を強制する電源の制約を有していてもよい。別の場合では、データセンター１０２内は、データセンターのシステムに対してＰステートを下げることが望まれる状況であることを、サービスプロセッサ１３２が検知してもよい。例えば、サービスプロセッサ１３２は、数個のサーバー（例えば、サーバー１１０や図示省略の他のサーバー）から、データセンター自身の温度状況が問題ある状況であることを示す通知を受けてもよい。サービスプロセッサはそれに応じて、データセンター１０２の任意の数のサーバーに、各自のＰステートを制限するコマンドを伝達することもできる。多数のこのような代替形が実施可能であり、検討されている。
【００２２】
次に、図２において、プロセッサのＰステートを管理する方法の一実施形態を示す。図示例において、Ｐステートの制限実体に対応するように構成されたプロセッサ内のオペレーティングシステムによって、プロセッサのＰステートの変更が開始される。図示されているように、新たなＰステートへの移行が要求された場合（判定ブロック２００）には、オペレーティングシステムはＰステートの変更を開始してもよい（ブロック２０２）。その後、プロセッサが、要求された新たなＰステートが設定済のＰステート制限実体以下かどうかを判定する（判定ブロック２０４）。要求されたＰステートが制限実体以下の場合、プロセッサは新たに要求されたＰステートへ移行する。一実施形態では、新たなＰステートへの移行は、オペレーティングシステムによるプロセッサドライバへの発呼、Ｐステートの変更に備えて必要ならばドライバによるプロセッサの電圧の変更、ドライバによるプロセッサの新たなＰステートへの変更、及び、新たなＰステートに必要とされるプロセッサ電圧の変更という流れで構成されている。
【００２３】
一方、要求されたＰステートが制限実体以下ではない場合、新たに要求されたＰステートと既に確立されている制限実体との間でコンフリクトが生じていることになる。このような場合、プロセッサはＰステートを変更してもよいが、制限実体よりも大きな値に変更することはできない。すなわち、プロセッサはＰステートを制限実体に等しいものに変更してもよい（ブロック２０８）。従って、オペレーティングシステムは所望のＰステートへの変更を開始させてもよいが、その結果得られる実際のＰステートは制限されたものとなる。さらにオペレーティングシステムは、Ｐステートが制限されたことを認識していなくてもよい。このようにして、Ｐステート制限実体は、プロセッサのパフォーマンス状態に上限を設けている。
【００２４】
図３は別の手順を図示したものである。図２はオペレーティングシステムがＰステートの変更を開始する手順を図示しているが、図３は外部エンティティによって新たなＰステート制限実体をプロセッサ内に「投入」する手順を図示している。例えば、図１のコントローラ１５０がＣＰＵ１３０内にＰステート制限実体を、レジスタ１８２への書き込みを行うことによって投入してもよい。Ｐステート制限実体の投入（判定ブロック３００）に応答して、プロセッサは、投入されたＰステートを（例えばレジスタへの書き込みを検知することによって）検知し、新たに投入されたＰステートがプロセッサの現在のＰステートよりも小さいかどうかを判定してもよい（判定ブロック３０２）。もし現在のＰステート以上であれば、プロセッサのＰステートの変更は行われない。しかし、投入された制限Ｐステートが現在のＰステートよりも小さい場合は、プロセッサは自身のＰステートを新たに投入されたＰステートへ変更することを開始する。このようにして、オペレーティングシステム指向のＰステート変更機構を回避する。
【００２５】
一実施形態では、プロセッサのＰステート制限実体は、オペレーティングシステムにとって全く存在が感じられないものである。例えば、オペレーティングシステムにより値が３のＰステートへの変更が要求された場合、プロセッサのＰステートが実際は異なる値に制限されていた可能性があったとしても、プロセッサはただ、Ｐステートは値が３のステートに変更されたことを確認し、オペレーティングシステムに通知する。このような実施形態において、オペレーティングシステムは、プロセッサは値が３のＰステートで現在動作中であることを示す情報を持ち続ける。オペレーティングシステムが現状の制限値を超えるＰステートへの変更を要求した場合、プロセッサはこのような変更を行うことの通知はするが、Ｐステートの変更は全く行わない。別の実施形態において、オペレーティングシステムにＰステートの変更に関する正確な情報が提供されるものもある。
【００２６】
次に、図４において、Ｐステートの変更に対する、オペレーティングシステム指向の機構とプロセッサ指向の機構との相互作用を示す方法の一実施形態を示す。図示例において、オペレーティングシステムはＰステートの変更を要求してもよく、要求しない場合はＰステートの変更を開始してもよい（ブロック４００）。要求されたＰステートが現在のＰステート制限実体以下である場合（判定ブロック４０２）、プロセッサは要求されたＰステートに変更され得る。要求されたＰステートが制限Ｐステート制限値よりも大きい場合（判定ブロック４０２）、プロセッサのＰステートは、要求されたＰステートではなくＰステート制限値に変更される。その後、より大きなＰステート制限実体を上述のように投入してもよい（ブロック４０８）。オペレーティングシステムが要求した先のＰステートが現在のＰステート制限値よりも大きかったので、プロセッサは、新たに投入されたＰステート制限実体と先に要求されていたＰステートのうちの小さい方へと移行される。多数のこのような手順が実施可能であり、検討されている。
【００２７】
次に、図５において、システムにおいて上述の方法や機構を利用した方法の一実施形態を示す。上記で説明したように、筐体のある部分にある構成要素を監視すると、筐体の別の部分の状況が認識できない可能性がある。従って、筐体のある部分にあるプロセッサが問題のある状況になっていても、筐体の別の部分にあるプロセッサはそのような問題を全く認識していない可能性がある。その結果、あるプロセッサは所望の温度状況を上回って動作しているのに、別のプロセッサは最大限のパフォーマンスと電力で動作し続け、かなりの量の熱を発していることもある。上述の対処方法を用いると、筐体の様々な部分におけるプロセッサパフォーマンスを、筐体内の他の場所の状況に応じて変更可能である。
【００２８】
図５において、筐体のある部分において状況が検知される（判定ブロック５００）。例えば、あるサーバーブレード上にあるコントローラ（図１のコントローラ１５０等）が、温度状況が許容できないレベルに達していることを検知してもよい。それを受けて、当該ブレードのプロセッサパフォーマンスを低下させ得る。同じ時に、同じ筐体内の別の部分のサーバーブレードは、自身のセンサまたはモニタでは熱問題はないと検知する可能性がある。その結果、このブレードのプロセッサは最大限のパフォーマンスで動作し続け、結果として熱をさらに発生してしまう。
【００２９】
第１のサーバーブレード上で検知された温度状況に応じて、状況はサービスプロセッサ及び／またはシステム管理者のコンソールに通知される（ブロック５０２）。サービスプロセッサは、システム管理者によって手動で、もしくはソフトウェアによって自動で作動可能な警告を発してもよい。それに応じて、サービスプロセッサは筐体内の１つ以上のデバイスに対してコマンドを生成、送出してもよい（ブロック５０４）。例えば、通知された筐体の第１の部分の温度状況に応じて、サービスプロセッサは１つのコマンド、または複数のコマンドを、状況を通知したブレード以外の１つ以上のブレードに伝達してもよい。このような他のブレードは、筐体において通知したブレードとは異なる部分に存在する。この１つ以上のコマンドは、他の１つ以上のブレード上の各プロセッサに対してＰステートを下げられた値に制限させる、Ｐステート制限コマンドを含んでいてもよい。このようにして、温度状況の影響を即座に受けるプロセッサ以外のプロセッサのＰステートを変更可能である。よって、筐体をより完全に観察することが全体として維持され、状況もそれに応じて応答可能である。
【００３０】
図６は、上述の方法及び機構を搭載可能なコンピュータシステム１０の一実施形態を図示したものである。コンピュータシステム１０は複数の処理ノード１２Ａ、１２Ｂ、１２Ｃ、１２Ｄを有する。各処理ノードはそれぞれ、メモリコントローラ１６Ａ〜１６Ｄを介してメモリ１４Ａ〜１４Ｄに接続されている。さらに、各処理ノード１２Ａ〜１２Ｄは、処理ノード１２Ａ〜１２Ｄのうちの自身以外のものとの通信に用いられるインターフェースロジック１８Ａ〜１８Ｄを有している。例えば、処理ノード１２Ａは処理ノード１２Ｂ及び１２Ｃと通信するためのインターフェースロジック１８Ａを有している。同様に、処理ノード１２Ｂは処理ノード１２Ａ及び１２Ｄと通信するためのインターフェースロジック１８Ｂを有し、さらに、他も同様である。図６の実施形態において、処理ノード１２Ｄはインターフェースロジック１８Ｄを介して入出力（ｉｎｐｕｔ／ｏｕｔｐｕｔ：Ｉ／Ｏ）デバイス２０Ａと通信するように接続され、Ｉ／Ｏデバイス２０Ａはさらに第２のＩ／Ｏデバイス２０Ｂに接続されるように描かれている。他の処理ノードも同じように他のＩ／Ｏデバイスと通信してもよい。他の実施形態では、処理ノードは、Ｉ／Ｏバスに接続されたＩ／Ｏブリッジと通信してもよい。
【００３１】
コンピュータシステム１０は、パケットベースのノード間通信用リンクを実行してもよい。図示されている実施形態において、リンクは、単一方向ラインの組として実装されている（例えば、ライン２４Ａは処理ノード１２Ａから処理ノード１２Ｂへとパケットを伝送するのに、また、ライン２４Ｂは処理ノード１２Ｂから処理ノード１２Ａへとパケットを伝送するのに用いられている）。他のラインの組２４Ｃ〜２４Ｈは、図６に図示されているように、他の処理ノード間のパケットを伝送するのに用いられている。リンクは、処理ノード間の通信用にキャッシュコヒーレントな手法で動作してもよいし、Ｉ／Ｏデバイス２０ＡとＩ／Ｏデバイス２０Ｂ（所望されるならば、追加のＩ／Ｏデバイスも）の間のデイジーチェーン構造としてノンキャッシュコヒーレントな手法で動作してもよい。なお、ある処理ノードから別の処理ノードへ伝送されるパケットは、１つ以上の中間ノードを通過してもよい。例えば、処理ノード１２Ａから処理ノード１２Ｄへと伝送されるパケットは、図６に示されるように、処理ノード１２Ｂか処理ノード１２Ｃのいずれかを通過してもよい。任意の適切な経路選択アルゴリズムを使用してもよい。コンピュータシステム１０の他の実施形態には、図６に示した実施形態よりも処理ノードが多いものもすくないものもある。さらに、各処理ノードを他のすべての処理ノードにポイントツーポイントネットワークを介して接続するという、他の実施形態が可能である。
【００３２】
図示されたメモリコントローラ及びインターフェースロジックに加えて、各処理ノード１２Ａ〜１２Ｄは、以下でさらに説明するように、１つ以上のプロセッサ及び関連するキャッシュを有していてもよい。一般的に、処理ノードは少なくとも１つのプロセッサを備えており、メモリと他のロジックとの通信用のメモリコントローラも所望ならば随意含まれてもよい。なお、「処理ノード」及び「プロセッサノード」の語は本明細書では同義で使用可能である。
【００３３】
メモリ１４Ａ〜１４Ｄは任意の適切なメモリデバイスからなっていてもよい。例えば、メモリ１４Ａ〜１４Ｄは、１つ以上のラムバスＤＲＡＭ（Ｒａｍｂｕｓ  ＤＲＡＭ：ＲＤＲＡＭ）、シンクロナスＤＲＡＭ（ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ：ＳＤＲＡＭ）、ＤＲＡＭ、スタティックＲＡＭ等からなっていてもよい。コンピュータシステム１０のアドレス空間はメモリ１４Ａ〜１４Ｄの間で分割されている。各処理ノード１２Ａ〜１２Ｄは、どのアドレスをメモリ１４Ａ〜１４Ｄのどれに割り当てるか、故に、ある特定のアドレスに対するメモリ要求を処理ノード１２Ａ〜１２Ｄのどれにルーティングすべきかを決定するのに用いられるメモリマップを有していてもよい。あるメモリアドレスに関連する特定の処理ノードを、本明細書では、当該アドレスのホームノードと称する。一実施形態では、コンピュータシステム１０内のアドレスに対するキャッシュコヒーレンシ点は、アドレスに相当するバイトを記憶するメモリに接続したメモリコントローラ１６Ａ〜１６Ｄである。メモリコントローラ１６Ａ〜１６は、メモリ１４Ａ〜１４Ｄと相互接続可能な制御回路を備えていてもよい。さらに、メモリコントローラ１６Ａ〜１６Ｄは、メモリ要求の列を作成する要求列を有していてもよい。
【００３４】
一般に、インターフェースロジック１８Ａ〜１８Ｄは、リンクからパケット受け取るとともにリンク上に伝送すべきパケットをバッファリングするバッファを備えていてもよい。コンピュータシステム１０は、確実にパケットを伝送するための、任意の適切なリンクレベルのフロー制御機構を使用していてもよい。コンピュータシステム１０の処理ノード１２Ａ〜１２Ｄ間の通信は、所望ならば、種々のパケットベースの専用メッセージングを用いて対処してもよい。
【００３５】
Ｉ／Ｏデバイス２０Ａ〜２０Ｂは任意の所望の周辺装置を例示したものである。例えば、Ｉ／Ｏデバイス２０Ａ〜２０Ｂは、ネットワークインターフェースカード、ビデオアクセラレータ、オーディオカード、ハードディスクドライブまたはフロッピーディスクドライブあるいはそれらのドライブコントローラ、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）アダプタ及び電話通信カード、モデム、サウンドカード、及びＧＰＩＢインターフェースカードまたはフィールドバスインターフェースカード等の種々のデータ収集カードを含んでいてもよい。
【００３６】
一度上記の開示を完全に理解すれば、当業者には多数の変更や変型が明白であろう。例えば、上述の説明は電源や温度の状況について言及しているが、いかなる所望の事情に対してもＰステート制限実体を用いてもよい。例えば、Ｐステート制限実体を変更して、現在大いに利用されているシステムにより高い処理能力を供給することもできる。同時に、Ｐステート制限実体を変更して、十分に活用されていないシステムの処理能力を下げることもできる。多数のこのような手順が実施可能であり、検討されている。以下の請求項がこのような変更や変型をすべて含むように解釈されることが意図されている。
【産業上の利用可能性】
【００３７】
本発明は一般的にマイクロプロセッサに適応可能である。
【図１】
2010500693.tif 000003
【図２】
2010500693.tif 000004
【図３】
2010500693.tif 000005
【図４】
2010500693.tif 000006
【図５】
2010500693.tif 000007
【図６】
2010500693.tif 000008
【手続補正書】
【提出日】平成20年8月13日(2008.8.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
最大プロセッサパフォーマンス状態を示す値を記憶するステップと、
第１のプロセッサパフォーマンス状態への移行要求（２００）を検知するステップとを含むプロセッサのパフォーマンスを管理する方法であって、
前記第１のプロセッサ状態が前記最大プロセッサパフォーマンス状態以下であるという判定（２０２）に応じて、前記プロセッサを前記第１のプロセッサパフォーマンス状態へ移行（２１２，２１４，２１６）させ、
前記第１のプロセッサ状態が前記最大プロセッサ状態よりも大きいという判定（２０２）に応じて、前記プロセッサを前記最大プロセッサパフォーマンス状態へ移行（２２２，２２４，２２６）させる方法。
【請求項２】
前記値の記憶は、検出された動作環境状況に応じて行われ、
前記方法はさらに、
筐体（１７０，１７２）の第１の部分における前記動作環境状況を検知し、
前記動作環境状況を離れたサービスプロセッサ（１３２）に通知し、
前記サービスプロセッサから前記筐体の第２の部分にコマンドを伝達し、
前記コマンドの受け取りに応じた値を記憶する、請求項１記載の方法。
【請求項３】
前記筐体の前記第２の部分では前記動作環境状況を検知しない、請求項２記載の方法。
【請求項４】
プロセッサのパフォーマンスを管理するシステムであって、
プロセッサ（１３０）を有する第１の処理ボード（１２０Ａ〜１２０Ｄ）及びプロセッサ（１３０）を有する第２の処理ボード（１２０Ａ〜１２０Ｄ）を備えた筐体（１０２）と、
相互接続（１４２）を介して前記筐体に接続されたサービスプロセッサ（１３２）を備えており、
前記第２の処理ボードは、請求項１記載の方法を実施するように構成されているシステム。
【請求項５】
前記値の記憶は、前記筐体の検出された動作環境状況に応じて行われ、前記第２の処理ボードでは前記動作環境状況を検知しない請求項４記載のシステム。
【請求項６】
プロセッサのパフォーマンスを管理するシステム（１００）であって、
動作環境状況を監視するように構成されたコントローラ（１３２）と、
外部アクセス可能なレジスタ（１８２）を備えたプロセッサ（１３０）を備えており、
前記プロセッサは、
第１のプロセッサパフォーマンス状態への移行要求（２００）を検知し、
前記レジスタにアクセス（２０２）して最大プロセッサパフォーマンス状態を判定し、
前記第１のプロセッサ状態が前記最大プロセッサパフォーマンス状態以下であるという判定（２０２）に応じて、前記プロセッサを前記第１のプロセッサパフォーマンス状態へ移行（２１２，２１４，２１６）し、
前記第１のプロセッサ状態が前記最大プロセッサ状態よりも大きいという判定（２０２）に応じて、前記プロセッサを前記最大プロセッサパフォーマンス状態へ移行（２２２，２２４，２２６）する、ように構成されているシステム。
【請求項７】
前記コントローラは、検知された動作環境状況に応じた前記最大プロセッサパフォーマンス状態を示す値を記憶するように構成されている、請求項６記載のシステム。
【請求項８】
前記状況は温度状況を含む、請求項７記載のシステム。
【請求項９】
前記動作環境状況は、前記プロセッサ及び前記コントローラの外部にあるデバイスによって検知され、前記コントローラは、サービスプロセッサから受け取ったコマンドに応じて前記値を記憶するように構成されている、請求項６記載のシステム。
【請求項１０】
前記プロセッサは、前記第１のプロセッサ状態が前記最大プロセッサ状態よりも大きいという判定に応じて、前記プロセッサが前記第１のプロセッサ状態に移行したことをオペレーティングシステムに通知するように構成されている、請求項６記載のシステム。
【国際調査報告】
2010500693.tif 000009
2010500693.tif 000010
2010500693.tif 000011