(57)【要約】【課題】標準周波数自体は変わらずにより好適な消費電力制御を行う情報処理装置および情報処理装置の制御方法を提供する。【解決手段】本体と、消費電力の瞬時的なリミット値が設定され、この本体に内在するＣＰＵと、前記本体に供給される電力の電力量を計測する計測手段と、前記電力量が第一の瞬時値を超えないように前記リミット値を設定する設定手段とを備え、前記設定手段は、現時点より過去に遡った所定期間内において前記電力量が前記第一の瞬時値より低い第二の瞬時値を超えた累積時間が所定の閾値に達した場合、前記第二の瞬時値を前記電力量が超えないように前記リミット値を再設定する情報処理装置。【選択図】  図４
2014120072.tif 000002
【特許請求の範囲】
【請求項１】
本体と、
消費電力の瞬時的なリミット値が設定され、この本体に内在するＣＰＵと、
前記本体に供給される電力の電力量を計測する計測手段と、
前記電力量が第一の瞬時値を超えないように前記リミット値を設定する設定手段とを
備え、
前記設定手段は、現時点より過去に遡った所定期間内において前記電力量が前記第一の瞬時値より低い第二の瞬時値を超えた累積時間が所定の閾値に達した場合、前記第二の瞬時値を前記電力量が超えないように前記リミット値を再設定する情報処理装置。
【請求項２】
前記設定手段は、前記電力量が前記第二の瞬時値以下である継続時間が所定の閾値に達した場合、前記リミット値を前記第二の瞬時値への対応から前記第一の瞬時値への対応の状態へ戻す請求項１に記載の情報処理装置。
【請求項３】
前記電力量を供給する外部電源の種別または定格に応じて前記第一の瞬時値または前記第二の瞬時値を可変にする請求項１に記載の情報処理装置。
【請求項４】
本体と、消費電力の瞬時的なリミット値が設定されこの本体に内在するＣＰＵとを備えた情報処理装置における情報処理方法であって、
前記本体に供給される電力の電力量を計測する計測工程と、
前記電力量が第一の瞬時値を超えないように前記リミット値を設定する設定工程と、
現時点より過去に遡った所定期間内において前記電力量が前記第一の瞬時値より低い第二の瞬時値を超えた累積時間が所定の閾値に達した場合、前記第二の瞬時値を前記電力量が超えないように前記リミット値を再設定する再設定工程とを含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置および情報処理装置の制御方法に関する。
【背景技術】
【０００２】
電子機器、情報処理装置などにおいてより好適な消費電力制御を行うことが求められ続けている。例えば特許文献１は、放電容量の低いバッテリを用いて一時的に定格を超えてハイパフォーマンスで動作させるものである。また、特許文献２は、ACアダプタの定格電力に応じて最適な消費電力制御を行うというものである。しかしながらいずれも、消費電力制御はCPUのスロットリングを用いており、標準周波数そのものをGatingしている。
【０００３】
一方、標準周波数自体は変わらずにより最適な消費電力制御を行う技術への要望があるが、かかる要望を実現するための手段は知られていない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１８２５２２号公報
【特許文献２】特開２００７−７２９６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施の形態は、標準周波数自体は変わらずにより好適な消費電力制御を行う情報処理装置および情報処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、実施形態によれば情報処理装置は、本体と、消費電力の瞬時的なリミット値が設定され、この本体に内在するＣＰＵと、前記本体に供給される電力の電力量を計測する計測手段と、前記電力量が第一の瞬時値を超えないように前記リミット値を設定する設定手段とを備え、前記設定手段は、現時点より過去に遡った所定期間内において前記電力量が前記第一の瞬時値より低い第二の瞬時値を超えた累積時間が所定の閾値に達した場合、前記第二の瞬時値を前記電力量が超えないように前記リミット値を前記設定手段は再設定する。
【図面の簡単な説明】
【０００７】
【図１】本実施形態におけるパーソナルコンピュータの一例を示す斜視図。
【図２】本実施形態におけるパーソナルコンピュータのシステム構成を示すブロック図。
【図３】一実施形態を示すブロック構成図。
【図４】同実施形態の機能ブロック図。
【図５】同実施形態に用いられるフローチャート。
【図６】同実施形態のシステム電力変化のグラフ。
【発明を実施するための形態】
【０００８】
以下、実施形態を図１乃至図６を参照して説明する。
【０００９】
まず、図１を参照して、実施形態にかかる電子機器の構成について説明する。この電子機器は、例えば、バッテリによって駆動可能なノートブック型の携帯型パーソナルコンピュータ１０として実現されている。図１は、ディスプレイユニットを開いた状態におけるパーソナルコンピュータ１０を正面側から見た斜視図である。
【００１０】
パーソナルコンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とから構成される。ディスプレイユニット１２には、ＬＣＤ１９（Liquid Crystal Display）から構成される表示装置が組み込まれている。
【００１１】
ディスプレイユニット１２は、コンピュータ本体１１に支持され、そのコンピュータ本体１１に対してコンピュータ本体１１の上面が露出される開放位置とコンピュータ本体１１の上面がディスプレイユニット１２によって覆れる閉塞位置との間を回動自由に取り付けられている。コンピュータ本体１１は薄い箱形の筐体を有しており、その上面にはキーボード１３、パーソナルコンピュータ１０を電源オン／オフするための電源スイッチ１４およびタッチパッド１５が配置されている。
【００１２】
また、コンピュータ本体１１には、電源コネクタ２０が設けられている。電源コネクタ２０はコンピュータ本体１１の側面、例えば左側面に設けられている。この電源コネクタ２０には、外部電源装置が取り外し自在に接続される。外部電源装置としては、ＡＣアダプタを用いることが出来る。ＡＣアダプタは商用電源（ＡＣ電力）をＤＣ電力に変換する電源装置である。
【００１３】
電源コネクタ２０は、ＡＣアダプタのような外部電源装置から導出される電源プラグが取り外し自在に接続可能なジャックから構成されている。バッテリ１７は、例えば、コンピュータ本体１１の後端部に取り外し自在に装着される。
【００１４】
パーソナルコンピュータ１０は、外部電源装置からの電力、バッテリ１７からの電力によって駆動される。パーソナルコンピュータ１０の電源コネクタ２０に外部電源装置が接続されているならば、パーソナルコンピュータ１０は外部電源装置からの電力によって駆動される。また、外部電源装置からの電力は、バッテリ１７を充電するためにも用いられる。バッテリ１７の充電は、パーソナルコンピュータ１０が電源オンされている期間中のみならず、パーソナルコンピュータ１０が電源オフされている期間中にも実行してもよい。パーソナルコンピュータ１０の電源コネクタ２０に外部電源装置が接続されていない期間中は、パーソナルコンピュータ１０はバッテリ１７からの電力によって駆動される。
【００１５】
また、コンピュータ本体１１には、外部電源装置の有無等の各種電源ステータスを通知するためのインジケータ１６が設けられている。このインジケータ１６は、例えば、コンピュータ本体１１の正面に設けられている。インジケータ１６は、ＬＥＤから構成し得る。なお、スペーサ１８はコンピュータ本体１１の後部を高く保持するためのものである。
【００１６】
図２は、パーソナルコンピュータ１０のシステム構成を示している。パーソナルコンピュータ１０は、ＣＰＵ１１１、主メモリ１１３、グラフィクスコントローラ１１４、システムコントローラ１１５、ハードディスクドライブ（ＨＤＤ）１１６、光ディスクドライブ（ＯＤＤ）１１７、ＢＩＯＳ−ＲＯＭ１１８、エンベデッドコントローラ／キーボードコントローラ（ＥＣ／ＫＢＣ）１１９、電源コントローラ（ＰＳＣ）１２０、電源回路１２１、ＡＣアダプタ１２２等を備えている。ＡＣアダプタ１２２は上述の外部電源装置として使用される。本実施形態において、電源コントローラ（ＰＳＣ）１２０と電源回路１２１とは、外部電源装置（ＡＣアダプタ）からの電力量を測定するための消費電力測定回路１２３として機能する。消費電力測定回路１２３は、パーソナルコンピュータ１０が電源オンされている期間だけでなく、電源オフされている期間においても電力量を測定する。本実施形態では、外部電源装置（ＡＣアダプタ）から供給される電力がパーソナルコンピュータ１０における消費電力として扱う。電力量を計測する計測手段の主体であるＥＣ／ＫＢＣ１１９は、消費電力測定回路１２３によって測定された電力量（電流値、電圧値）、すなわち消費電力値を示すデータを読み取り、システムコントローラ１１５を通じてＣＰＵ１１１（オペレーティングシステム（ＯＳ））に出力する。
【００１７】
ＣＰＵ１１１は、パーソナルコンピュータ１０の各コンポーネントの動作を制御するプロセッサである。このＣＰＵ１１１は、ＨＤＤ１１６から主メモリ１１３にロードされる各種ソフトウェア、例えば、オペレーティングシステム（ＯＳ）１１３ａおよび各種ユーティリティプログラムやアプリケーションプログラムを実行する。
【００１８】
ユーティリティプログラムには、ピークシフト機能を実現するためのピークシフトユーティリティ１１３ｂが含まれる。ピークシフト機能は、社会全体における電力消費のピーク時間帯（昼間、特に夏期の日中１３時〜１６時など）に、外部電源装置（ＡＣアダプタ）からの電力供給を停止してバッテリ駆動に切り替え、電力消費の少ない時間帯（夜間）にバッテリの充電をするように電源管理する機能である。
【００１９】
アプリケーションプログラムには、消費電力測定回路１２３によって測定された消費電力値を示すデータを処理する消費電力量測定プログラム１１３ｃが含まれる。消費電力量測定プログラム１１３ｃは、ＥＣ／ＫＢＣ１１９のメモリ１１９ａ（揮発性のメモリ）に記録された消費電力値を示すデータを、ＯＳ１１３ａを通じて読み出してＨＤＤ１１６に記録する。また、消費電力量測定プログラム１１３ｃは、ＨＤＤ１１６に記録された消費電力値を示すデータを外部装置（後述するデータサーバ３０等）に送信する送信処理、外部装置に送信するデータを生成するデータ生成処理、消費電力値を示すデータをもとにした電力量の変化を表す画面（グラフ等）を表示する表示処理等を実行する。データ生成処理には、要求されるデータ精度（データ量）とするためのデータ補完処理が含まれる。
【００２０】
また、ＣＰＵ１１１は、不揮発性メモリであるＢＩＯＳ−ＲＯＭ１１８に格納されたＢＩＯＳ（基本入出力システム：Basic Input Output System）も実行する。ＢＩＯＳ（以下BIOS）はハードウェア制御のためのシステムプログラムである。
【００２１】
グラフィクスコントローラ１１４は、パーソナルコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１９を制御する表示コントローラである。
システムコントローラ１１５は、ＰＣＩバス１に接続されており、ＰＣＩバス１上の各デバイスとの通信を実行する。ＰＣＩバス１には、例えば通信デバイス１２４が接続される。通信デバイス１２４は、ＣＰＵ１１１の制御のもとで、ネットワークを介した外部装置（例えば、データサーバ）との通信を制御する。また、システムコントローラ１１５は、ハードディスクドライブ（ＨＤＤ）１１６および光ディスクドライブ（ＯＤＤ）１１７を制御するためのSerial ATAコントローラを内蔵している。
【００２２】
ＥＣ／ＫＢＣ１１９、電源コントローラ（ＰＳＣ）１２０、およびバッテリ１７は、Ｉ２Ｃバスのようなシリアルバス２を介して相互接続され、システムコントローラ１１５とＬＰＣバスを介して接続されている。ＥＣ／ＫＢＣ１１９は、パーソナルコンピュータ１０の電力管理を実行するための電源管理コントローラであり、例えば、キーボード（ＫＢ）１３およびタッチパッド１５などを制御するキーボードコントローラを内蔵した１チップマイクロコンピュータとして実現されている。ＥＣ／ＫＢＣ１１９は、ユーザによる電源スイッチ１４の操作に応じてパーソナルコンピュータ１０を電源オンおよび電源オフする機能を有している。パーソナルコンピュータ１０の電源オンおよび電源オフの制御は、ＥＣ／ＫＢＣ１１９とＰＳＣ１２０との協働動作によって実行される。ＥＣ／ＫＢＣ１１９から送信されるオン信号を受けると、ＰＳＣ１２０は電源回路１２１を制御してパーソナルコンピュータ１０の各内部電源をオンする。また、ＥＣ／ＫＢＣ１１９から送信されるオフ信号を受けると、ＰＳＣ１２０は電源回路１２１を制御してパーソナルコンピュータ１０の各内部電源をオフする。ＥＣ／ＫＢＣ１１９、ＰＳＣ１２０、および電源回路１２１は、パーソナルコンピュータ１０が電源オフされている期間中も、バッテリ１７、またはＡＣアダプタ１２２からの電力によって動作する。
【００２３】
電源回路１２１は、コンピュータ本体１１に装着されたバッテリ１７からの電力、またはコンピュータ本体１１に外部電源として接続されるＡＣアダプタ１２２からの電力を用いて、各コンポーネントへ供給すべき電力（動作電源）を生成する。コンピュータ本体１１にＡＣアダプタ１２２が接続されている場合には、電源回路１２１は、ＡＣアダプタ１２２からの電力を用いて各コンポーネントへの動作電源を生成すると共に、充電回路（図示せず）をオンすることによってバッテリ１７を充電する。電源回路１２１には、ＡＣアダプタ１２２の電圧値及び電流値、バッテリ１７の電圧値及び電流値を示す信号を出力する検出回路１２１ａが含まれる。ＰＳＣ１２０は、検出回路１２１ａから出力される信号をもとに、ＡＣ電源の電流値／電圧値を示すデータ、バッテリ１７の電流値／電圧値を示すデータを生成する。
【００２４】
本実施形態におけるＥＣ／ＫＢＣ１１９、ＰＳＣ１２０、および電源回路１２１は、パーソナルコンピュータ１０が電源オンされている期間だけでなく、電源オフされている期間中も消費電力測定回路１２３により測定される消費電力値を示すデータを測定し、このデータを記録するための動作をする。
【００２５】
ＥＣ／ＫＢＣ１１９（以下EC）は、電源オンされている期間では、ＰＳＣ１２０から入力される消費電力値を示すデータを直ぐにシステムコントローラ１１５を通じてＣＰＵ１１１（ＯＳ１１３ａ、消費電力量測定プログラム１１３ｃ）に出力し、消費電力量測定プログラム１１３ｃがそのデータをＨＤＤ１１６に記録する。一方、電源オフされている期間では、ＰＳＣ１２０から入力される消費電力値を示すデータを内部のメモリ１１９ａに一時記録して、次の電源オン時にシステムコントローラ１１５を通じてＣＰＵ１１１（ＯＳ１１３ａ、消費電力量測定プログラム１１３ｃ）に出力し、消費電力量測定プログラム１１３ｃがそのデータをＨＤＤ１１６に記録する。
【００２６】
図３は、一実施形態を示すＣＰＵ１１１（以下単にCPU）のブロック構成図である。CPUはCore1乃至Core4の４つのコア（処理の中心部分）を備え、各コアは例えば図示せぬ共有（一次）キャッシュとそれぞれのコア専用の二次キャッシュの役割を有するキャッシュメモリを通じて、外部とのデータの受け渡しをするよう構成されている。
【００２７】
また熱制御処理部HTは、PL1即ちCPU消費電力の長期リミット値を示すCPU内部設定値とPL2即ちCPU消費電力の瞬時的なリミット値を示すCPU内部設定値とに基づき、Turbo Boost（登録商標）周波数にリミットがかかるように制御を行うよう構成されている。
【００２８】
このTurbo Boost周波数は、固定値レジスタで構成されている周波数設定列テーブルPclに取りうる値の並びPi（0≦i≦n）が定義されている。i が小さいほどTurbo Boost周波数は高く、例えば以下１００ＭＨzの倍数の単位で逓減し各コアの既定値はP1である。本実施例では、Turbo BoostのOver TDP機能をサポートするCPUを使用している。
【００２９】
図４に実施例の機能ブロック図を示す。パーソナルコンピュータ１０のシステム全体の消費電力は、検出回路１２１ａを経由して前述のようにECでモニタリングされる。ACの挿抜検出もECが行う。
【００３０】
次のパラメータは、CPUの図示せぬ内部レジスタの値であり、BIOSでダイナミックに設定可能である。
まず前述のようにPL1は CPU消費電力の長期リミット値を示すCPU内部設定値であり、CPUにおける20〜30秒の電力平均値がPL1を超えないようにTurbo Boost周波数にリミットがかかる。本実施例ではPL1が固定値であるとして説明する。なお、PL1には通常はTDPと同じ値を設定する。次にPL2は CPU消費電力の瞬時的なリミット値を示すCPU内部設定値で、CPUの瞬時電力がPL2を超えないようにTurbo Boost周波数にリミットがかかる。
【００３１】
次のパラメータは、ECが保持する(モニタリングする)データである。
Pは現時点のシステム全体の消費電力である。PmaxはACアダプタ若しくはバッテリの最大定格である。Pmax_pはACアダプタ若しくはバッテリの最大ピーク電力である。Tmax_pはACアダプタ若しくはバッテリの電力が一時的に最大定格を上回ることができる時間の最大値である。デューティ比は50%とする。PLdefはシステム全体の瞬時電力がPmax_pを超えないように設定されたPL2の値。PL2の初期値として用いる。PLvarはシステム全体の瞬時電力がPmaxを超えないように設定されたPL2の値でPLvar < PLdefの関係にある。
【００３２】
図５に機能ブロックの制御全体のフローチャートを示す。図６に、システム電力の変化のグラフを示す。以下、EC主体の制御の流れを図５、図６を用いて記述する。
【００３３】
まず、起動後にBIOS はPL2の初期値をPLdefに設定する。また、現在の状態がAC駆動かバッテリ駆動かによって、Pmax, Pmax_p, Tmax_pを各々の仕様に合った値に設定を行う（ステップＳ５１）。次に、ECがモニタリングしているPの値がPmaxを超えたところでトリガをかけて（ステップＳ５２）タイマーカウントを開始し、Pの値(若しくはPがPmaxを超えているかどうかを識別できる値)の記録を行う（ステップＳ５３）。サンプリング周期はECの仕様等により適当な値を使う(例えば10ms)。
【００３４】
そして、PがPmaxを超えていられる時間は周期Tmax_p×2の間のTmax_pであるから、条件として、”現時点より過去に遡ってTmax_p×2の期間に、PがPmaxより大となった時間が累積でTmax_p−αに達した時”
に、仕様のリミットに達したと判断し（ステップＳ５４のＹｅｓ）、PL2をPLvarに下げて（ステップＳ５５）、PがPmax以下に下がるようにする。
【００３５】
ここで、αは、BIOSがPL2の値を切り替えて実際にCPU電力が変化するまでに要する時間に適当なマージンを加えた値とする。PがPmax以下に下がった後は、時間がTmax_p経過するのを待ち（ステップＳ５６）、再度PL2をPLdefに戻して（ステップＳ５７）Pの記録とタイマーカウントをストップし（ステップＳ５８）、処理は終了する。また、PがPmaxを超えてカウントを開始してから、Tmax_pの間連続してPmax以下となったときは（ステップＳ５９のＹｅｓ）、PL2はPLdefのままでPの記録とタイマーカウントをストップし（ステップＳ６０）、処理は終了する。他方でTmax_pの間連続してPmax以下とはならなかったときは（ステップＳ５９のＮｏ）、ＥＣにてPの記録とタイマーカウントを継続し（ステップＳ６０）ステップＳ５４に戻る。
【００３６】
他の実施例、変形例として、上記はACアダプタと標準バッテリという構成で実施例を述べているが、対して拡張バッテリをサポートしている場合は、通常、拡張バッテリの方が標準バッテリより容量が大きい (即ち、定格が大きい) ため、拡張バッテリを装着した時にPmax, Pmax_p, Tmax_pを拡張バッテリに関するに切り替えて制御を行うことで、標準バッテリよりパフォーマンスを上げることができる。その際、拡張バッテリの残量が切れた時には各パラメータを標準バッテリのものに戻すという制御が必要となる。
【００３７】
（まとめ）
最新のあるCPUでは、Turbo Boost動作時、温度上昇のヘッドルームを利用して、消費電力が短期間 (20〜30秒) にTDP (Thermal Design Power)を超えて瞬時的なパフォーマンスを向上させている (Over TDP機能)が、これによってシステム全体の消費電力がACアダプタ及びバッテリの定格オーバーとなるリスクが高くなっている(バッテリは一般的にACアダプタよりも定格が低いので、ACアダプタに比べるとさらにリスクが高い)。一方、薄型・軽量化の視点では、アダプタ・バッテリの容量をむやみに上昇はできない。
【００３８】
従来は、システム消費電力がACアダプタ及びバッテリの定格を計算上 (若しくは実測による検証により) 超える可能性がある場合は、あらかじめCPUの内部レジスタ制御によりOver TDPの機能をOFFするか若しくはその値に制限をかけて、定格を超えないようにしていた。が、実際はACアダプタ及びバッテリはその消費電力が最大定格を一時的に超えることは許容される (ピーク電力)
【００３９】
ことから、上記の制御では、まだ余力を残した状態でTurbo Boostに制限をかけていることになる。
本実施形態は、ACアダプタ若しくはバッテリの最大定格及び最大ピーク電力の仕様を元に、その仕様範囲内で最大限にパフォーマンスを出すように、Turbo Boost制御を最適化したものである。
【００４０】
先行技術では、電力を下げるためにCPUのスロットリングを行って制御しているが、これは消費電力を大きく下げる効果はあるものの、標準周波数自体が前述のPnより低値安定となり、パフォーマンスが大幅に下がることとなる。また、必要以上に電力を下げることに繋がり、電源の定格の範囲を最大限に使うことはできない。
【００４１】
本実施形態は、CPUの標準周波数自体は変わらず、Over TDP部分の電力にリミットをかけて、Turbo周波数に制限をかけるため、パフォーマンスの劣化は最小限に抑えられ、また電源の定格を最大限に使うことができる。
【００４２】
（実施形態の補足）
【００４３】
（１）．システム全体の消費電力をEmbedded Controller (EC) でモニタリングを行う。CPUのTurbo Boost動作時において、システム全体の消費電力がACアダプタ若しくはバッテリの最大定格を上回った時点で、EC内でトリガをかけ、タイマーカウントと消費電力の記録を開始する。その後、消費電力値が最大定格を上回っている時間がACアダプタ若しくはバッテリの仕様 (数秒程度)
に達する直前に、BIOS経由でCPU内部レジスタの操作によりOver TDPに電力制限をかけ(これによってCPU内でTurboの周波数に制限がかかる)、システム全体の消費電力が最大定格を下回るように調整を行う。最大定格を上回っている時間が仕様に達しなかった時は制限をかけない。
【００４４】
（２）．ACアダプタとバッテリでは、最大定格や最大ピーク電力の仕様が異なる (通常はバッテリの方が小さい) ので、ACの挿抜を検出して、AC駆動時とバッテリ駆動時において、各々の仕様に合わせて１の制御におけるECのトリガ条件を切り替える。また、拡張バッテリをサポートしている場合は、拡張バッテリ装着時に、その仕様に合わせてトリガ条件を切り替える。
【００４５】
上記（１），（２）により、ACアダプタ、標準バッテリ及び拡張バッテリ各々の仕様の範囲内で、Turbo Boostの最大のパフォーマンスを引き出すことができる。
【００４６】
なお、この発明は上記実施形態に限定されるものではなく、この外その要旨を逸脱しない範囲で種々変形して実施することができる。
また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係わる構成要素を適宜組み合わせても良いものである。
【符号の説明】
【００４７】
１０…パーソナルコンピュータ、１１９…ＥＣ／ＫＢＣ、１２０…電源コントローラ（ＰＳＣ）、１２１…電源回路、１２２…ＡＣアダプタ。
【図１】
2014120072.tif 000003
【図２】
2014120072.tif 000004
【図３】
2014120072.tif 000005
【図４】
2014120072.tif 000006
【図５】
2014120072.tif 000007
【図６】
2014120072.tif 000008