(57)【要約】【課題】ＣＰＵが電力制御機能を有するコンピュータにおいて、意図しない低い性能のままでの動作を中止させて本来の性能でＣＰＵを動作させることのできる、電力制御監視装置を提供する。【解決手段】本発明の電力制御監視装置は、所定の電力制御ポリシーをＣＰＵに設定することで前記電力制御ポリシーに基づく電力制御を前記ＣＰＵに行わせる制御部と、前記ＣＰＵでの前記電力制御の状態を検出する監視部と、前記監視部が検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記ＣＰＵに再設定する再設定部と、を有する。【選択図】      図１
2018112910.tif 000002
【特許請求の範囲】
【請求項１】
所定の電力制御ポリシーをＣＰＵに設定することで前記電力制御ポリシーに基づく電力制御を前記ＣＰＵに行わせる制御部と、
前記ＣＰＵでの前記電力制御の状態を検出する監視部と、
前記監視部が検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記ＣＰＵに再設定する再設定部と、を有する電力制御監視装置。
【請求項２】
前記再設定部は、前記電力制御ポリシーが前記電力制御を行う設定の場合、前記監視部が検出した前記ＣＰＵに設定されている消費電力の上限値が前記電力制御ポリシーと矛盾していると、前記電力制御ポリシーの上限値を前記ＣＰＵに再設定する、請求項１記載の電力制御監視装置。
【請求項３】
前記再設定部は、前記電力制御ポリシーが前記電力制御を行わない設定の場合、前記ＣＰＵが前記電力制御を行っていることを前記監視部が検出すると、前記電力制御を行わない設定に前記ＣＰＵを再設定する、請求項１記載の電力制御監視装置。
【請求項４】
前記監視部は、定期的に前記電力制御の状態を検出する、請求項１から３の内の１項記載の電力制御監視装置。
【請求項５】
請求項１から４の内の１項記載の電力制御監視装置と、
前記電力制御監視装置により監視されるＣＰＵと、を有するコンピュータ。
【請求項６】
前記ＣＰＵは、前記ＣＰＵの動作周波数により電力制御する、請求項５記載のコンピュータ。
【請求項７】
所定の電力制御ポリシーをＣＰＵに設定することで前記電力制御ポリシーに基づく電力制御を前記ＣＰＵに行わせ、
前記ＣＰＵでの前記電力制御の状態を検出し、
検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記ＣＰＵに再設定する、電力制御監視方法。
【請求項８】
前記電力制御ポリシーが前記電力制御を行う設定の場合、検出した前記ＣＰＵに設定されている消費電力の上限値が前記電力制御ポリシーと矛盾していると、前記電力制御ポリシーの上限値を前記ＣＰＵに再設定する、請求項７記載の電力制御監視方法。
【請求項９】
前記電力制御ポリシーが前記電力制御を行わない設定の場合、前記ＣＰＵが前記電力制御を行っていることを検出すると、前記電力制御を行わない設定に前記ＣＰＵを再設定する、請求項７記載の電力制御監視方法。
【請求項１０】
所定の電力制御ポリシーをＣＰＵに設定することで前記電力制御ポリシーに基づく電力制御を前記ＣＰＵに行わせる処理と、
前記ＣＰＵでの前記電力制御の状態を検出する処理と、
検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記ＣＰＵに再設定する処理と、をコンピュータに実行させる電力制御監視プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が電力制御機能を有するコンピュータに関する。
【背景技術】
【０００２】
近年、コンピュータの処理速度の高速化に伴い、コンピュータ１台あたりの消費電力は増加し続けている。また、データセンターなどの施設の大規模化によるコンピュータの数や密度の増加に伴う消費電力の増加に際して、施設における消費電力の低減は重要な課題である。
【０００３】
コンピュータの低消費電力化のために、消費電力に上限（Ｐｏｗｅｒ  Ｃａｐｐｉｎｇ）を設け、ＣＰＵの動作周波数を低下させることによって消費電力がこの上限を超えないように制御する技術が、特許文献１や２に開示されている。
【０００４】
特許文献１の電力制御装置は、電子機器の消費電力値を取得する消費電力取得部と、取得された消費電力値に基づいて、電子機器の消費電力の移動平均を算出する移動平均算出部とを備える。さらに、算出された移動平均に基づいて、電子機器が駆動する負荷状態を判定する負荷状態判定部を備える。さらに、電子機器を、判定された負荷状態に対応する上限を設定する制限モードで動作させるか、当該上限を設定しない制限解除モードで動作させるかを制御する制御部を備える。特許文献１によれば、電子機器が駆動する負荷状態に応じて、本来、電子機器が駆動するために必要とする最適な動作制御をし、当該電子機器の駆動に応じた省電力制御を実現することができる。
【０００５】
特許文献２の計算機は、第１の周波数で動作する通常モードと、第１の周波数より低い第２の周波数で動作する省電力モードを有するプロセッサと、省電力制御部と、消費電力値を測定する電力センサ部とを備えている。電力センサ部は、省電力制御部によって設定された消費電力上限値と測定した消費電力値とを比較し、測定した消費電力値が消費電力上限値を上回ったときプロセッサに割り込み信号を出力する。プロセッサは、割り込み信号が入力されたとき、通常モードから省電力モードに切り替わる。特許文献２によれば、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やアプリケーションに依存せず、システム制御による遅延時間無く計算機の消費電力を動的に管理することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１６８６５６号公報
【特許文献２】国際公開第２０１０／１００７４０号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１や２の技術は、次のような課題を有している。すなわち、ＣＰＵの消費電力を制御する制御部が、消費電力の上限値を意図しない値に設定したり、通常モードに設定するはずが意図せずに省電力モードに設定したりした場合、コンピュータは本来よりも低い性能のままでの動作を継続させてしまう。このような障害は、ソフトエラーやノイズなどにより、制御部を動作させるファームウェアの動作に問題が生じた場合に発生するものである。
【０００８】
本発明は、上記の課題に鑑みてなされたものであり、その目的は、ＣＰＵが電力制御機能を有するコンピュータにおいて、意図しない低い性能のままでの動作を中止させて本来の性能でＣＰＵを動作させることのできる、電力制御監視装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の電力制御監視装置は、所定の電力制御ポリシーをＣＰＵに設定することで前記電力制御ポリシーに基づく電力制御を前記ＣＰＵに行わせる制御部と、前記ＣＰＵでの前記電力制御の状態を検出する監視部と、前記監視部が検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記ＣＰＵに再設定する再設定部と、を有する。
【００１０】
本発明のコンピュータは、本発明の電力制御監視装置と、前記電力制御監視装置により監視されるＣＰＵと、を有する。
【００１１】
本発明の電力制御監視方法は、所定の電力制御ポリシーをＣＰＵに設定することで前記電力制御ポリシーに基づく電力制御を前記ＣＰＵに行わせ、前記ＣＰＵでの前記電力制御の状態を検出し、検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記ＣＰＵに再設定する。
【００１２】
本発明の電力制御監視プログラムは、所定の電力制御ポリシーをＣＰＵに設定することで前記電力制御ポリシーに基づく電力制御を前記ＣＰＵに行わせる処理と、前記ＣＰＵでの前記電力制御の状態を検出する処理と、検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記ＣＰＵに再設定する処理と、をコンピュータに実行させる。
【発明の効果】
【００１３】
本発明によれば、ＣＰＵが電力制御機能を有するコンピュータにおいて、意図しない低い性能のままでの動作を中止させて本来の性能でＣＰＵを動作させることのできる、電力制御監視装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態の電力制御監視装置の構成を示すブロック図である。
【図２】本発明の第２の実施形態のコンピュータの構成を示すブロック図である。
【図３】本発明の第２の実施形態のコンピュータの電力制御監視の動作を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図を参照しながら、本発明の実施形態を詳細に説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
（第１の実施形態）
図１は、本発明の第１の実施形態の電力制御監視装置１の構成を示すブロック図である。電力制御監視装置１は、所定の電力制御ポリシーをＣＰＵに設定することで前記電力制御ポリシーに基づく電力制御を前記ＣＰＵに行わせる制御部１１を有する。さらに、前記ＣＰＵでの前記電力制御の状態を検出する監視部１２と、前記監視部１２が検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記ＣＰＵに再設定する再設定部１３と、を有する。
【００１６】
電力制御監視装置１によれば、ＣＰＵが電力制御ポリシーとは異なる電力制御を行っていた場合に、これを検知して本来の電力制御を行うようにＣＰＵの電力制御を再設定することができる。これにより、ＣＰＵが、電力制御ポリシーとは異なる電力制御を行うことにより、本来よりも低い性能のままでの動作を継続させてしまうことを防ぐことができる。
【００１７】
以上のように本実施形態によれば、ＣＰＵが電力制御機能を有するコンピュータにおいて、意図しない低い性能のままでの動作を中止させて本来の性能でＣＰＵを動作させることのできる、電力制御監視装置を提供することができる。
（第２の実施形態）
図２は、本発明の第２の実施形態のコンピュータ２０の構成を示すブロック図である。コンピュータ２０は、電力制御監視装置２と、電力制御監視装置２によって電力制御を規定および監視されているＣＰＵ２６と、ＣＰＵ２６が自身の電力制御をするソフトウェアを格納するメモリ２７と、コンピュータ２０に直流電圧を供給する電源ユニット２８とを有する。
【００１８】
電力制御監視装置２は、ＢＭＣ（Ｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）２１と、ＭＥ（Ｍａｎａｇｅｍｅｎｔ−Ｅｎｇｉｎｅ）２３を備えたチップセット２２と、メモリ２４と、メモリ２５とを有する。メモリ２４は、ＢＭＣ２１を動作させるファームウェアと、電力制御ポリシーを規定するデータと格納している。メモリ２５は、ＭＥ２３を動作させるファームウェアを格納している。
【００１９】
電力制御ポリシーは、ＣＰＵ２６に電力制御を行わせるか否かを規定する。さらに、ＣＰＵ２６に電力制御を行わせる場合は、ＣＰＵ２６の消費電力の上限値や、ＣＰＵ２６の消費電力が上限値を超えたときの対処方法として、例えばシャットダウンやアラート通知などや、消費電力の監視のサイクルなどを規定するものである。
【００２０】
ＢＭＣ２１は、コンピュータ２０の管理用のコントローラであり、ハードウェア（ＣＰＵ、メモリ、温度等）の監視、リモートコントロール、ハードウェアイベントの記録などを行う。ＢＭＣ２１は、ＩＰＭＩ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｐｌａｔｆｏｒｍ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｆａｃｅ）で定義された標準仕様に沿って、前記の動作をすることができる。
【００２１】
ＢＭＣ２１は、ＳＭバス（Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｂｕｓ）を介してＭＥ２３に接続している。さらに、ＭＥ２３は、ＰＥＣＩ（Ｐｌａｔｆｏｒｍ  Ｅｎｖｉｒｏｎｍｅｎｔａｌ  Ｃｏｎｔｒｏｌ  Ｉｎｔｅｒｆａｃｅ）でＣＰＵ２６に接続している。
【００２２】
ＢＭＣ２１は、ＳＭバスを介してＭＥ２３に対して、電力制御ポリシーに基づいて、電力制御を行うか否かや、電力制御を行う場合は消費電力の上限値などを、ＭＥ２３に設定するコマンドを発行する。ＭＥ２３は、ＢＭＣ２１から電力制御ポリシーに基づくコマンドを受け取ると、ＰＥＣＩを介して、ＣＰＵ２６に、Ｐｏｗｅｒ−Ｌｉｍｉｔライト（書き込み）コマンドを発行する。このコマンドには、電力制御をするか否かであるＬｉｍｉｔ制御イネーブル（ｅｎａｂｌｅ）／ディセーブル（ｄｉｓａｂｌｅ）を規定するビットや、電力制御ポリシーに対応した消費電力の上限値などを規定する複数のビットが定義されている。
【００２３】
ＣＰＵ２６は、このＰｏｗｅｒ−Ｌｉｍｉｔライトコマンドが発行されると、このコマンドに規定された電力制御を行うか否かや、電力制御を行う場合は消費電力の上限値などをＣＰＵ２６に設定する。ＣＰＵ２６は、電力制御を行う場合、設定した上限値以下の消費電力となるように、ＣＰＵ２６内部のクロックを低下させることによって消費電力を制御する。
【００２４】
また、ＢＭＣ２１は、ＳＭバスを介してＭＥ２３から、ＣＰＵ２６の電力制御の状態やＣＰＵ２６に設定された消費電力の上限値などの情報を取得することができる。すなわち、ＢＭＣ２１は、ＭＥ２３に対して、ＰＥＣＩを経由するＰｏｗｅｒ−Ｌｉｍｉｔ−Ｓｔａｔｕｓリード（読み出し）コマンドを発行して、ＣＰＵ２６内部の電力制御の状態を読み出すことができる。
【００２５】
ＢＭＣ２１は、読み出したＣＰＵ２６内部の電力制御の状態やＣＰＵ２６に設定されている消費電力の上限値が、ＢＭＣ２１がＭＥ２３に設定した電力制御ポリシーに矛盾している場合、ＭＥ２３の設定をリセットし、再度、ＭＥ２３に電力制御ポリシーに沿った設定をする。
【００２６】
ＭＥ２３は、再度設定された電力制御ポリシーに基づいて、再度、ＣＰＵ２６にＰｏｗｅｒ−Ｌｉｍｉｔライトコマンドを発行する。ＣＰＵ２６は、再度発行されたＰｏｗｅｒ−Ｌｉｍｉｔライトコマンドを受け取ると、受け取ったＰｏｗｅｒ−Ｌｉｍｉｔライトコマンドに電力制御ポリシーに基づいて規定された、電力制御を行うか否かや、電力制御を行う場合は消費電力の上限値などを再設定する。ＣＰＵ２６は、この再設定に基づいてＣＰＵ２６の消費電力の制御を行う。
【００２７】
なお、電力制御ポリシーは、ＣＰＵ２６に電力制御を行わせる場合は、ＣＰＵ２６の消費電力の上限値の他にも、ＣＰＵ２６の消費電力が上限値を超えたときの対処方法として、例えばシャットダウンやアラート通知などや、消費電力の監視のサイクルなどを規定している。そのため、消費電力が上限値を超えたときの対処方法や消費電力の監視のサイクルなどの設定が電力制御ポリシーに矛盾している場合も、上記の再設定を行うことで、電力制御ポリシーに沿った電力制御をＣＰＵ２６に行わせることができる。
【００２８】
以上のような、ＢＭＣ２１が読み出したＣＰＵ２６内部の電力制御の状態と、ＢＭＣ２１がＭＥ２３に設定した電力制御ポリシーとの矛盾が生じる原因としては、ＢＭＣ２１やＭＥ２３やＣＰＵ２６の動作に影響を及ぼすソフトエラーやノイズなどの存在が挙げられる。
【００２９】
以上のように、電力制御監視装置２においては、ＢＭＣ２１はＭＥ２３を介して、所定の電力制御ポリシーをＣＰＵ２６に設定することで電力制御ポリシーに基づく電力制御をＣＰＵ２６に行わせることができる。このＢＭＣ２１とＭＥ２３の機能は、第１の実施形態の電力制御監視装置１の制御部１１の機能に相当する。
【００３０】
さらに、ＢＭＣ２１はＭＥ２３を介して、ＣＰＵ２６での電力制御の状態を検出することができる。このＢＭＣ２１とＭＥ２３の機能は、第１の実施形態の電力制御監視装置１の監視部１２の機能に相当する。
【００３１】
さらに、検出した電力制御の状態が電力制御ポリシーと矛盾している場合、ＢＭＣ２１はＭＥ２３を介して、電力制御ポリシーをＣＰＵ２６に再設定することができる。このＢＭＣ２１とＭＥ２３の機能は、第１の実施形態の電力制御監視装置１の再設定部１３の機能に相当する。
【００３２】
以上のようにして、電力制御監視装置２は、電力制御ポリシーに沿った電力制御をＣＰＵ２６にさせることができる。すなわち、電力制御監視装置２は、ＣＰＵ２６が電力制御ポリシーに矛盾した電力制御を行い、本来よりも低い性能で動作していても、ＣＰＵ２６の電力制御の状態を検出して、電力制御ポリシーに沿った電力制御に改めさせることができる。これにより、ＣＰＵ２６が本来よりも低い性能のままでの動作を継続させてしまうことを防ぐことができる。
【００３３】
なお、チップセット２２とＣＰＵ２６とは、ＤＭＩ（Ｄｉｒｅｃｔ  Ｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）で接続され、画像処理や情報検索や通信などの通常のコンピュータの動作を相互に連携して行うことができる。
【００３４】
なお、ＭＥ２３は、ＰＭバス（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｂｕｓ）を介して、電源ユニット２８から、ＣＰＵ２６の消費電力値や電源ユニット２８内の温度や過電流をモニタリングすることができる。ＭＥ２３は、ＣＰＵ２６の消費電力値が電力制御ポリシーに設定された上限値を超えたことを検出した場合、電力制御ポリシーに設定されたアラート通知などの対処方法を実行することができる。
【００３５】
なお、メモリ２４やメモリ２５は、フラッシュメモリなどの不揮発性メモリとすることができる。また、メモリ２７は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）といった揮発性メモリと、フラッシュメモリなどの不揮発性メモリとを組み合わせることができる。
【００３６】
なお、電力制御ポリシーは、電力制御設定情報やＥＣＯ（Ｅｃｏｌｏｇｙ）設定情報などと呼んでも良い。
【００３７】
図３は、本発明の第２の実施形態のコンピュータ２０の電力制御監視の動作を示すフローチャートである。本フローチャートは、コンピュータ２０の電源がオンされてＣＰＵ２６の動作が定常状態となることで開始となる。そして、このときＣＰＵ２６は、予めＢＭＣ２１がＭＥ２３を介してＣＰＵ２６に設定した電力制御ポリシーに基づいて、電力制御を行っているものとする。
【００３８】
まず、ＢＭＣ２１が、メモリ２４に格納されている電力制御ポリシーを読み出す（ステップＳ０１）。ＢＭＣ２１は、所定の時間間隔で定期的に電力制御ポリシーを読み出すことができるが、これには限定されない。また、所定の時間間隔は利用者が設定することができるが、これには限定されない。ＢＭＣ２１は、また、利用者の指示を受けて電力制御ポリシーを読み出すようにしてもよい。ＢＭＣ２１は、また、一度読み出した電力制御ポリシーを自身の内に保持し、所定の時間間隔でステップＳ０２に移行してもよい。
【００３９】
ＢＭＣ２１は、ステップＳ０１で読み出した電力制御ポリシーがＣＰＵの電力制御を行う設定であるか否かを判定する（ステップＳ０２）。電力制御ポリシーが、ＣＰＵ２６の電力制御を行う設定である場合（ステップＳ０２のＹＥＳ）、ＢＭＣ２１は、ＣＰＵ２６に設定されている電力制御の設定状態、すなわち、電力制御するか否か、さらに消費電力の上限の設定値など電力制御ポリシーに基づいて設定された情報を検出する（ステップＳ０３）。このとき、ＢＭＣ２１は、ＭＥ２３に対してＰＥＣＩを経由するＰｏｗｅｒ−Ｌｉｍｉｔ−Ｓｔａｔｕｓリードコマンドを発行することによって、ＣＰＵ２６の電力制御の設定状態を読み出すことができる。
【００４０】
ＢＭＣ２１は、ステップＳ０３で読み出したＣＰＵ２６の電力制御の設定状態が、ＣＰＵの電力制御を行う設定か否かを判定する（ステップＳ０４）。
【００４１】
ＣＰＵ２６の設定が、ＣＰＵ２６の電力制御を行う設定である場合（ステップＳ０４のＹＥＳ）、ＢＭＣ２１は、ステップＳ０３で読み出したＣＰＵ２６の消費電力の設定値などが電力制御ポリシーに一致しているか否かを判定する（ステップＳ０５）。一致している場合（ステップＳ０５のＹＥＳ）、ＢＭＣ２１は動作を終了する。なお、ＢＭＣ２１は、所定時間の後に、再びステップＳ０１を繰り返すことができる。
【００４２】
一方、一致していない場合（ステップＳ０５のＮＯ）、ＢＭＣ２１は、電力制御ポリシーとの矛盾を無くする為に、ＭＥ２３に対して電力制御ポリシーを再設定する（ステップＳ０６）。
【００４３】
この再設定の手順は次の通りである。まず、ＢＭＣ２１は、ＭＥ２３に対して、ＭＥ２３に設定されている電力制御ポリシーをリセットするコマンドを発行する。ＭＥ２３は、このコマンドを受けてＭＥ２３に設定されている電力制御ポリシーをリセットする。ＢＭＣ２１は、ＭＥ２３に設定されている電力制御ポリシーがリセットされたことを確認すると、ＭＥ２３に対して、電力制御ポリシーを改めて設定するコマンドを発行する。ＭＥ２３は、ＢＭＣ２１からこのコマンドを受けると、ＰＥＣＩを介して、ＣＰＵ２６に、Ｐｏｗｅｒ−Ｌｉｍｉｔライトコマンドを発行する。ＣＰＵ２６は、改めて設定された電力制御ポリシーで、電力制御を開始することができる。
【００４４】
以上のようにして、ＢＭＣ２１は、電力制御ポリシーを再設定した後、動作を終了する。なお、ＢＭＣ２１は、所定時間の後に、再びステップＳ０１を繰り返すことができる。
【００４５】
ステップＳ０４で、ＣＰＵ２６の設定が、ＣＰＵ２６の電力制御を行わない設定である場合（ステップＳ０４のＮＯ）、ＢＭＣ２１は、電力制御ポリシーとの矛盾を無くする為に、ＭＥ２３に対してＣＰＵ２６を電力制御する状態に再設定する（ステップＳ０７）。
【００４６】
この再設定の手順は次の通りである。まず、ＢＭＣ２１は、ＭＥ２３に対して、ＭＥ２３に設定されている電力制御ポリシーをリセットするコマンドを発行する。ＭＥ２３は、このコマンドを受けてＭＥ２３に設定されている電力制御ポリシーをリセットする。ＢＭＣ２１は、ＭＥ２３に設定されている電力制御ポリシーがリセットされたことを確認すると、ＭＥ２３に対して、電力制御ポリシーと一致するように、電力制御の状態をＬｉｍｉｔ制御イネーブルに設定し、さらに消費電力の上限値などを設定するコマンドを改めて発行する。ＭＥ２３は、ＢＭＣ２１からこのコマンドを受けると、ＰＥＣＩを介して、ＣＰＵ２６に、Ｐｏｗｅｒ−Ｌｉｍｉｔライトコマンドを発行する。ＣＰＵ２６は、電力制御の状態をＬｉｍｉｔ制御イネーブルとし、電力制御ポリシーに沿って電力制御を行うことができる。
【００４７】
以上のようにして、ＢＭＣ２１は、電力制御ポリシーを再設定した後、動作を終了する。なお、ＢＭＣ２１は、所定時間の後に、再びステップＳ０１を繰り返すことができる。
【００４８】
ＢＭＣ２１は、電力制御ポリシーが、ＣＰＵ２６の電力制御を行う設定でない場合（ステップＳ０２のＮＯ）、ＢＭＣ２１は、ＣＰＵ２６に設定されている電力制御の設定状態、すなわち、電力制御するか否かを検出する（ステップＳ０８）。このとき、ＢＭＣ２１は、ＭＥ２３に対してＰＥＣＩを経由するＰｏｗｅｒ−Ｌｉｍｉｔ−Ｓｔａｔｕｓリードコマンドを発行することによって、ＣＰＵ２６の電力制御の設定状態を読み出すことができる。
【００４９】
ＢＭＣ２１は、ステップＳ０８で読み出したＣＰＵ２６の電力制御の設定状態が、ＣＰＵの電力制御を行う設定か否かを判定する（ステップＳ０９）。
【００５０】
ＣＰＵ２６の設定が、ＣＰＵ２６の電力制御を行わない設定である場合（ステップＳ０９のＮＯ）、ＢＭＣ２１は動作を終了する。なお、ＢＭＣ２１は、所定時間の後に、再びステップＳ０１を繰り返すことができる。
【００５１】
一方、ＣＰＵ２６の設定が、ＣＰＵ２６の電力制御を行う設定である場合（ステップＳ０９のＹＥＳ）、ＢＭＣ２１は、電力制御ポリシーとの矛盾を無くする為に、ＭＥ２３に対してＣＰＵ２６を電力制御しない状態に再設定する（ステップＳ１０）。
【００５２】
この再設定の手順は次の通りである。まず、ＢＭＣ２１は、ＭＥ２３に対して、ＭＥ２３に設定されている電力制御ポリシーをリセットするコマンドを発行する。ＭＥ２３は、このコマンドを受けてＭＥ２３に設定されている電力制御ポリシーをリセットする。ＢＭＣ２１は、ＭＥ２３に設定されている電力制御ポリシーがリセットされたことを確認すると、ＭＥ２３に対して、電力制御ポリシーと一致するように、電力制御の状態をＬｉｍｉｔ制御ディセーブルに設定するコマンドを発行する。ＭＥ２３は、ＢＭＣ２１からこのコマンドを受けると、ＰＥＣＩを介して、ＣＰＵ２６に、Ｐｏｗｅｒ−Ｌｉｍｉｔライトコマンドを発行する。ＣＰＵ２６は、電力制御の状態をＬｉｍｉｔ制御ディセーブルとすることができる。
【００５３】
以上のようにして、ＢＭＣ２１は、電力制御ポリシーを再設定した後、動作を終了する。なお、ＢＭＣ２１は、所定時間の後に、再びステップＳ０１を繰り返すことができる。
【００５４】
なお、ステップＳ０２の前に、ＣＰＵの電力制御の設定状態を検出するステップＳ０３、Ｓ０８を行っていてもよい。この場合、電力制御の設定状態として、電力制御するか否か、さらに消費電力の上限の設定値など電力制御ポリシーに基づいて設定された情報を検出する。また、ステップＳ０１からステップＳ０４およびステップＳ０８、Ｓ０９は、電力制御ポリシーに対してＣＰＵに設定されている電力制御の状態が矛盾しているか否かを判定できるのであれば、各ステップの順序を変えてもよい。
【００５５】
以上のようにして、電力制御監視装置２は、ＣＰＵ２６に電力制御ポリシーに沿った電力制御をさせることができる。すなわち、電力制御監視装置２は、ＣＰＵ２６が電力制御ポリシーに矛盾した電力制御を行い、本来よりも低い性能で動作していても、ＣＰＵ２６の電力制御の状態を検知して、電力制御ポリシーに沿った電力制御に改めさせることができる。これにより、ＣＰＵ２６が本来よりも低い性能のままでの動作を継続させてしまうことを防ぐことができる。
【００５６】
以上のように本実施形態によれば、ＣＰＵが電力制御機能を有するコンピュータにおいて、意図しない低い性能のままでの動作を中止させて本来の性能でＣＰＵを動作させることのできる、電力制御監視装置を提供することができる。
【００５７】
本発明は上記実施形態に限定されることなく、特許請求の範囲に記載した発明の範囲内で種々の変形が可能であり、それらも本発明の範囲内に含まれるものである。
【００５８】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
（付記１）
所定の電力制御ポリシーをＣＰＵに設定することで前記電力制御ポリシーに基づく電力制御を前記ＣＰＵに行わせる制御部と、
前記ＣＰＵでの前記電力制御の状態を検出する監視部と、
前記監視部が検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記ＣＰＵに再設定する再設定部と、を有する電力制御監視装置。
（付記２）
前記再設定部は、前記電力制御ポリシーが前記電力制御を行う設定の場合、前記監視部が検出した前記ＣＰＵに設定されている消費電力の上限値が前記電力制御ポリシーと矛盾していると、前記電力制御ポリシーの上限値を前記ＣＰＵに再設定する、付記１記載の電力制御監視装置。
（付記３）
前記再設定部は、前記電力制御ポリシーが前記電力制御を行わない設定の場合、前記ＣＰＵが前記電力制御を行っていることを前記監視部が検出すると、前記電力制御を行わない設定に前記ＣＰＵを再設定する、付記１記載の電力制御監視装置。
（付記４）
前記監視部は、定期的に前記電力制御の状態を検出する、付記１から３の内の１項記載の電力制御監視装置。
（付記５）
付記１から４の内の１項記載の電力制御監視装置と、
前記電力制御監視装置により監視されるＣＰＵと、を有するコンピュータ。
（付記６）
前記ＣＰＵは、前記ＣＰＵの動作周波数により電力制御する、付記５記載のコンピュータ。
（付記７）
所定の電力制御ポリシーをＣＰＵに設定することで前記電力制御ポリシーに基づく電力制御を前記ＣＰＵに行わせ、
前記ＣＰＵでの前記電力制御の状態を検出し、
検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記ＣＰＵに再設定する、電力制御監視方法。
（付記８）
前記電力制御ポリシーが前記電力制御を行う設定の場合、検出した前記ＣＰＵに設定されている消費電力の上限値が前記電力制御ポリシーと矛盾していると、前記電力制御ポリシーの上限値を前記ＣＰＵに再設定する、付記７記載の電力制御監視方法。
（付記９）
前記電力制御ポリシーが前記電力制御を行わない設定の場合、前記ＣＰＵが前記電力制御を行っていることを検出すると、前記電力制御を行わない設定に前記ＣＰＵを再設定する、付記７記載の電力制御監視方法。
（付記１０）
定期的に前記電力制御の状態を検出する、付記７から９の内の１項記載の電力制御監視方法。
（付記１１）
所定の電力制御ポリシーをＣＰＵに設定することで前記電力制御ポリシーに基づく電力制御を前記ＣＰＵに行わせる処理と、
前記ＣＰＵでの前記電力制御の状態を検出する処理と、
検出した前記電力制御の状態が前記電力制御ポリシーと矛盾している場合、前記電力制御ポリシーを前記ＣＰＵに再設定する処理と、をコンピュータに実行させる電力制御監視プログラム。
（付記１２）
前記電力制御ポリシーが前記電力制御を行う設定の場合、検出した前記ＣＰＵに設定されている消費電力の上限値が前記電力制御ポリシーと矛盾していると、前記電力制御ポリシーの上限値を前記ＣＰＵに再設定する処理を実行させる、付記１１記載の電力制御監視プログラム。
（付記１３）
前記電力制御ポリシーが前記電力制御を行わない設定の場合、前記ＣＰＵが前記電力制御を行っていることを検出すると、前記電力制御を行わない設定に前記ＣＰＵを再設定する処理を実行させる、付記１１記載の電力制御監視プログラム。
（付記１４）
定期的に前記電力制御の状態を検出する処理を実行させる、付記１１から１３の内の１項記載の電力制御監視プログラム。
【符号の説明】
【００５９】
１、２    電力制御監視装置
１１    制御部
１２    監視部
１３    再設定部
２０    コンピュータ
２１    ＢＭＣ
２２    チップセット
２３    ＭＥ
２４、２５、２７    メモリ
２６    ＣＰＵ
２８    電源ユニット
【図１】
2018112910.tif 000003
【図２】
2018112910.tif 000004
【図３】
2018112910.tif 000005