(58)【調査した分野】(Int.Cl.,DB名)
前記再設定部は、前記電力制御ポリシーが前記電力制御を行う設定の場合、前記監視部が検出した前記CPUに設定されている消費電力の上限値が前記電力制御ポリシーと矛盾していると、前記電力制御ポリシーの上限値を前記CPUに再設定する、請求項1記載の電力制御監視装置。
【発明を実施するための形態】
【0015】
以下、図を参照しながら、本発明の実施形態を詳細に説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
(第1の実施形態)
図1は、本発明の第1の実施形態の電力制御監視装置1の構成を示すブロック図である。電力制御監視装置1は、所定の電力制御ポリシーをCPUに設定することで前記電力制御ポリシーに基づく電力制御を前記CPUに行わせる制御部11を有する。さらに、前記CPUでの前記電力制御の状態を検出する監視部12と、前記監視部12が検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記CPUに再設定する再設定部13と、を有する。
【0016】
電力制御監視装置1によれば、CPUが電力制御ポリシーとは異なる電力制御を行っていた場合に、これを検知して本来の電力制御を行うようにCPUの電力制御を再設定することができる。これにより、CPUが、電力制御ポリシーとは異なる電力制御を行うことにより、本来よりも低い性能のままでの動作を継続させてしまうことを防ぐことができる。
【0017】
以上のように本実施形態によれば、CPUが電力制御機能を有するコンピュータにおいて、意図しない低い性能のままでの動作を中止させて本来の性能でCPUを動作させることのできる、電力制御監視装置を提供することができる。
(第2の実施形態)
図2は、本発明の第2の実施形態のコンピュータ20の構成を示すブロック図である。コンピュータ20は、電力制御監視装置2と、電力制御監視装置2によって電力制御を規定および監視されているCPU26と、CPU26が自身の電力制御をするソフトウェアを格納するメモリ27と、コンピュータ20に直流電圧を供給する電源ユニット28とを有する。
【0018】
電力制御監視装置2は、BMC(Base Management Controller)21と、ME(Management−Engine)23を備えたチップセット22と、メモリ24と、メモリ25とを有する。メモリ24は、BMC21を動作させるファームウェアと、電力制御ポリシーを規定するデータと格納している。メモリ25は、ME23を動作させるファームウェアを格納している。
【0019】
電力制御ポリシーは、CPU26に電力制御を行わせるか否かを規定する。さらに、CPU26に電力制御を行わせる場合は、CPU26の消費電力の上限値や、CPU26の消費電力が上限値を超えたときの対処方法として、例えばシャットダウンやアラート通知などや、消費電力の監視のサイクルなどを規定するものである。
【0020】
BMC21は、コンピュータ20の管理用のコントローラであり、ハードウェア(CPU、メモリ、温度等)の監視、リモートコントロール、ハードウェアイベントの記録などを行う。BMC21は、IPMI(Intelligent Platform Management Interface)で定義された標準仕様に沿って、前記の動作をすることができる。
【0021】
BMC21は、SMバス(System Management Bus)を介してME23に接続している。さらに、ME23は、PECI(Platform Environmental Control Interface)でCPU26に接続している。
【0022】
BMC21は、SMバスを介してME23に対して、電力制御ポリシーに基づいて、電力制御を行うか否かや、電力制御を行う場合は消費電力の上限値などを、ME23に設定するコマンドを発行する。ME23は、BMC21から電力制御ポリシーに基づくコマンドを受け取ると、PECIを介して、CPU26に、Power−Limitライト(書き込み)コマンドを発行する。このコマンドには、電力制御をするか否かであるLimit制御イネーブル(enable)/ディセーブル(disable)を規定するビットや、電力制御ポリシーに対応した消費電力の上限値などを規定する複数のビットが定義されている。
【0023】
CPU26は、このPower−Limitライトコマンドが発行されると、このコマンドに規定された電力制御を行うか否かや、電力制御を行う場合は消費電力の上限値などをCPU26に設定する。CPU26は、電力制御を行う場合、設定した上限値以下の消費電力となるように、CPU26内部のクロックを低下させることによって消費電力を制御する。
【0024】
また、BMC21は、SMバスを介してME23から、CPU26の電力制御の状態やCPU26に設定された消費電力の上限値などの情報を取得することができる。すなわち、BMC21は、ME23に対して、PECIを経由するPower−Limit−Statusリード(読み出し)コマンドを発行して、CPU26内部の電力制御の状態を読み出すことができる。
【0025】
BMC21は、読み出したCPU26内部の電力制御の状態やCPU26に設定されている消費電力の上限値が、BMC21がME23に設定した電力制御ポリシーに矛盾している場合、ME23の設定をリセットし、再度、ME23に電力制御ポリシーに沿った設定をする。
【0026】
ME23は、再度設定された電力制御ポリシーに基づいて、再度、CPU26にPower−Limitライトコマンドを発行する。CPU26は、再度発行されたPower−Limitライトコマンドを受け取ると、受け取ったPower−Limitライトコマンドに電力制御ポリシーに基づいて規定された、電力制御を行うか否かや、電力制御を行う場合は消費電力の上限値などを再設定する。CPU26は、この再設定に基づいてCPU26の消費電力の制御を行う。
【0027】
なお、電力制御ポリシーは、CPU26に電力制御を行わせる場合は、CPU26の消費電力の上限値の他にも、CPU26の消費電力が上限値を超えたときの対処方法として、例えばシャットダウンやアラート通知などや、消費電力の監視のサイクルなどを規定している。そのため、消費電力が上限値を超えたときの対処方法や消費電力の監視のサイクルなどの設定が電力制御ポリシーに矛盾している場合も、上記の再設定を行うことで、電力制御ポリシーに沿った電力制御をCPU26に行わせることができる。
【0028】
以上のような、BMC21が読み出したCPU26内部の電力制御の状態と、BMC21がME23に設定した電力制御ポリシーとの矛盾が生じる原因としては、BMC21やME23やCPU26の動作に影響を及ぼすソフトエラーやノイズなどの存在が挙げられる。
【0029】
以上のように、電力制御監視装置2においては、BMC21はME23を介して、所定の電力制御ポリシーをCPU26に設定することで電力制御ポリシーに基づく電力制御をCPU26に行わせることができる。このBMC21とME23の機能は、第1の実施形態の電力制御監視装置1の制御部11の機能に相当する。
【0030】
さらに、BMC21はME23を介して、CPU26での電力制御の状態を検出することができる。このBMC21とME23の機能は、第1の実施形態の電力制御監視装置1の監視部12の機能に相当する。
【0031】
さらに、検出した電力制御の状態が電力制御ポリシーと矛盾している場合、BMC21はME23を介して、電力制御ポリシーをCPU26に再設定することができる。このBMC21とME23の機能は、第1の実施形態の電力制御監視装置1の再設定部13の機能に相当する。
【0032】
以上のようにして、電力制御監視装置2は、電力制御ポリシーに沿った電力制御をCPU26にさせることができる。すなわち、電力制御監視装置2は、CPU26が電力制御ポリシーに矛盾した電力制御を行い、本来よりも低い性能で動作していても、CPU26の電力制御の状態を検出して、電力制御ポリシーに沿った電力制御に改めさせることができる。これにより、CPU26が本来よりも低い性能のままでの動作を継続させてしまうことを防ぐことができる。
【0033】
なお、チップセット22とCPU26とは、DMI(Direct Media Interface)で接続され、画像処理や情報検索や通信などの通常のコンピュータの動作を相互に連携して行うことができる。
【0034】
なお、ME23は、PMバス(Power Management Bus)を介して、電源ユニット28から、CPU26の消費電力値や電源ユニット28内の温度や過電流をモニタリングすることができる。ME23は、CPU26の消費電力値が電力制御ポリシーに設定された上限値を超えたことを検出した場合、電力制御ポリシーに設定されたアラート通知などの対処方法を実行することができる。
【0035】
なお、メモリ24やメモリ25は、フラッシュメモリなどの不揮発性メモリとすることができる。また、メモリ27は、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)といった揮発性メモリと、フラッシュメモリなどの不揮発性メモリとを組み合わせることができる。
【0036】
なお、電力制御ポリシーは、電力制御設定情報やECO(Ecology)設定情報などと呼んでも良い。
【0037】
図3は、本発明の第2の実施形態のコンピュータ20の電力制御監視の動作を示すフローチャートである。本フローチャートは、コンピュータ20の電源がオンされてCPU26の動作が定常状態となることで開始となる。そして、このときCPU26は、予めBMC21がME23を介してCPU26に設定した電力制御ポリシーに基づいて、電力制御を行っているものとする。
【0038】
まず、BMC21が、メモリ24に格納されている電力制御ポリシーを読み出す(ステップS01)。BMC21は、所定の時間間隔で定期的に電力制御ポリシーを読み出すことができるが、これには限定されない。また、所定の時間間隔は利用者が設定することができるが、これには限定されない。BMC21は、また、利用者の指示を受けて電力制御ポリシーを読み出すようにしてもよい。BMC21は、また、一度読み出した電力制御ポリシーを自身の内に保持し、所定の時間間隔でステップS02に移行してもよい。
【0039】
BMC21は、ステップS01で読み出した電力制御ポリシーがCPUの電力制御を行う設定であるか否かを判定する(ステップS02)。電力制御ポリシーが、CPU26の電力制御を行う設定である場合(ステップS02のYES)、BMC21は、CPU26に設定されている電力制御の設定状態、すなわち、電力制御するか否か、さらに消費電力の上限の設定値など電力制御ポリシーに基づいて設定された情報を検出する(ステップS03)。このとき、BMC21は、ME23に対してPECIを経由するPower−Limit−Statusリードコマンドを発行することによって、CPU26の電力制御の設定状態を読み出すことができる。
【0040】
BMC21は、ステップS03で読み出したCPU26の電力制御の設定状態が、CPUの電力制御を行う設定か否かを判定する(ステップS04)。
【0041】
CPU26の設定が、CPU26の電力制御を行う設定である場合(ステップS04のYES)、BMC21は、ステップS03で読み出したCPU26の消費電力の設定値などが電力制御ポリシーに一致しているか否かを判定する(ステップS05)。一致している場合(ステップS05のYES)、BMC21は動作を終了する。なお、BMC21は、所定時間の後に、再びステップS01を繰り返すことができる。
【0042】
一方、一致していない場合(ステップS05のNO)、BMC21は、電力制御ポリシーとの矛盾を無くする為に、ME23に対して電力制御ポリシーを再設定する(ステップS06)。
【0043】
この再設定の手順は次の通りである。まず、BMC21は、ME23に対して、ME23に設定されている電力制御ポリシーをリセットするコマンドを発行する。ME23は、このコマンドを受けてME23に設定されている電力制御ポリシーをリセットする。BMC21は、ME23に設定されている電力制御ポリシーがリセットされたことを確認すると、ME23に対して、電力制御ポリシーを改めて設定するコマンドを発行する。ME23は、BMC21からこのコマンドを受けると、PECIを介して、CPU26に、Power−Limitライトコマンドを発行する。CPU26は、改めて設定された電力制御ポリシーで、電力制御を開始することができる。
【0044】
以上のようにして、BMC21は、電力制御ポリシーを再設定した後、動作を終了する。なお、BMC21は、所定時間の後に、再びステップS01を繰り返すことができる。
【0045】
ステップS04で、CPU26の設定が、CPU26の電力制御を行わない設定である場合(ステップS04のNO)、BMC21は、電力制御ポリシーとの矛盾を無くする為に、ME23に対してCPU26を電力制御する状態に再設定する(ステップS07)。
【0046】
この再設定の手順は次の通りである。まず、BMC21は、ME23に対して、ME23に設定されている電力制御ポリシーをリセットするコマンドを発行する。ME23は、このコマンドを受けてME23に設定されている電力制御ポリシーをリセットする。BMC21は、ME23に設定されている電力制御ポリシーがリセットされたことを確認すると、ME23に対して、電力制御ポリシーと一致するように、電力制御の状態をLimit制御イネーブルに設定し、さらに消費電力の上限値などを設定するコマンドを改めて発行する。ME23は、BMC21からこのコマンドを受けると、PECIを介して、CPU26に、Power−Limitライトコマンドを発行する。CPU26は、電力制御の状態をLimit制御イネーブルとし、電力制御ポリシーに沿って電力制御を行うことができる。
【0047】
以上のようにして、BMC21は、電力制御ポリシーを再設定した後、動作を終了する。なお、BMC21は、所定時間の後に、再びステップS01を繰り返すことができる。
【0048】
BMC21は、電力制御ポリシーが、CPU26の電力制御を行う設定でない場合(ステップS02のNO)、BMC21は、CPU26に設定されている電力制御の設定状態、すなわち、電力制御するか否かを検出する(ステップS08)。このとき、BMC21は、ME23に対してPECIを経由するPower−Limit−Statusリードコマンドを発行することによって、CPU26の電力制御の設定状態を読み出すことができる。
【0049】
BMC21は、ステップS08で読み出したCPU26の電力制御の設定状態が、CPUの電力制御を行う設定か否かを判定する(ステップS09)。
【0050】
CPU26の設定が、CPU26の電力制御を行わない設定である場合(ステップS09のNO)、BMC21は動作を終了する。なお、BMC21は、所定時間の後に、再びステップS01を繰り返すことができる。
【0051】
一方、CPU26の設定が、CPU26の電力制御を行う設定である場合(ステップS09のYES)、BMC21は、電力制御ポリシーとの矛盾を無くする為に、ME23に対してCPU26を電力制御しない状態に再設定する(ステップS10)。
【0052】
この再設定の手順は次の通りである。まず、BMC21は、ME23に対して、ME23に設定されている電力制御ポリシーをリセットするコマンドを発行する。ME23は、このコマンドを受けてME23に設定されている電力制御ポリシーをリセットする。BMC21は、ME23に設定されている電力制御ポリシーがリセットされたことを確認すると、ME23に対して、電力制御ポリシーと一致するように、電力制御の状態をLimit制御ディセーブルに設定するコマンドを発行する。ME23は、BMC21からこのコマンドを受けると、PECIを介して、CPU26に、Power−Limitライトコマンドを発行する。CPU26は、電力制御の状態をLimit制御ディセーブルとすることができる。
【0053】
以上のようにして、BMC21は、電力制御ポリシーを再設定した後、動作を終了する。なお、BMC21は、所定時間の後に、再びステップS01を繰り返すことができる。
【0054】
なお、ステップS02の前に、CPUの電力制御の設定状態を検出するステップS03、S08を行っていてもよい。この場合、電力制御の設定状態として、電力制御するか否か、さらに消費電力の上限の設定値など電力制御ポリシーに基づいて設定された情報を検出する。また、ステップS01からステップS04およびステップS08、S09は、電力制御ポリシーに対してCPUに設定されている電力制御の状態が矛盾しているか否かを判定できるのであれば、各ステップの順序を変えてもよい。
【0055】
以上のようにして、電力制御監視装置2は、CPU26に電力制御ポリシーに沿った電力制御をさせることができる。すなわち、電力制御監視装置2は、CPU26が電力制御ポリシーに矛盾した電力制御を行い、本来よりも低い性能で動作していても、CPU26の電力制御の状態を検知して、電力制御ポリシーに沿った電力制御に改めさせることができる。これにより、CPU26が本来よりも低い性能のままでの動作を継続させてしまうことを防ぐことができる。
【0056】
以上のように本実施形態によれば、CPUが電力制御機能を有するコンピュータにおいて、意図しない低い性能のままでの動作を中止させて本来の性能でCPUを動作させることのできる、電力制御監視装置を提供することができる。
【0057】
本発明は上記実施形態に限定されることなく、特許請求の範囲に記載した発明の範囲内で種々の変形が可能であり、それらも本発明の範囲内に含まれるものである。
【0058】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
所定の電力制御ポリシーをCPUに設定することで前記電力制御ポリシーに基づく電力制御を前記CPUに行わせる制御部と、
前記CPUでの前記電力制御の状態を検出する監視部と、
前記監視部が検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記CPUに再設定する再設定部と、を有する電力制御監視装置。
(付記2)
前記再設定部は、前記電力制御ポリシーが前記電力制御を行う設定の場合、前記監視部が検出した前記CPUに設定されている消費電力の上限値が前記電力制御ポリシーと矛盾していると、前記電力制御ポリシーの上限値を前記CPUに再設定する、付記1記載の電力制御監視装置。
(付記3)
前記再設定部は、前記電力制御ポリシーが前記電力制御を行わない設定の場合、前記CPUが前記電力制御を行っていることを前記監視部が検出すると、前記電力制御を行わない設定に前記CPUを再設定する、付記1記載の電力制御監視装置。
(付記4)
前記監視部は、定期的に前記電力制御の状態を検出する、付記1から3の内の1項記載の電力制御監視装置。
(付記5)
付記1から4の内の1項記載の電力制御監視装置と、
前記電力制御監視装置により監視されるCPUと、を有するコンピュータ。
(付記6)
前記CPUは、前記CPUの動作周波数により電力制御する、付記5記載のコンピュータ。
(付記7)
所定の電力制御ポリシーをCPUに設定することで前記電力制御ポリシーに基づく電力制御を前記CPUに行わせ、
前記CPUでの前記電力制御の状態を検出し、
検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記CPUに再設定する、電力制御監視方法。
(付記8)
前記電力制御ポリシーが前記電力制御を行う設定の場合、検出した前記CPUに設定されている消費電力の上限値が前記電力制御ポリシーと矛盾していると、前記電力制御ポリシーの上限値を前記CPUに再設定する、付記7記載の電力制御監視方法。
(付記9)
前記電力制御ポリシーが前記電力制御を行わない設定の場合、前記CPUが前記電力制御を行っていることを検出すると、前記電力制御を行わない設定に前記CPUを再設定する、付記7記載の電力制御監視方法。
(付記10)
定期的に前記電力制御の状態を検出する、付記7から9の内の1項記載の電力制御監視方法。
(付記11)
所定の電力制御ポリシーをCPUに設定することで前記電力制御ポリシーに基づく電力制御を前記CPUに行わせる処理と、
前記CPUでの前記電力制御の状態を検出する処理と、
検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記CPUに再設定する処理と、をコンピュータに実行させる電力制御監視プログラム。
(付記12)
前記電力制御ポリシーが前記電力制御を行う設定の場合、検出した前記CPUに設定されている消費電力の上限値が前記電力制御ポリシーと矛盾していると、前記電力制御ポリシーの上限値を前記CPUに再設定する処理を実行させる、付記11記載の電力制御監視プログラム。
(付記13)
前記電力制御ポリシーが前記電力制御を行わない設定の場合、前記CPUが前記電力制御を行っていることを検出すると、前記電力制御を行わない設定に前記CPUを再設定する処理を実行させる、付記11記載の電力制御監視プログラム。
(付記14)
定期的に前記電力制御の状態を検出する処理を実行させる、付記11から13の内の1項記載の電力制御監視プログラム。