(57)【要約】【課題】プロセッサのパワー・ステートを効率よく遷移させる電力制御システムを提供する。【解決手段】プロセッサは負荷が軽いときに、命令を実行しないスリーピング・ステートＣｎに移行し、アクティブなＣ０ステートとＣｎステートとの間を所定の遷移周波数で遷移する。プロセッサ１０にはＣｎステートのときは、Ｃ０ステートのときよりも小さな電圧が印加されるため消費電力が少ない。しかし、Ｃ０ステートとＣｎステートとの間を遷移するときに、電源装置１００の出力電圧がパワー・ステートの遷移に応じて変化するために平滑コンデンサに充電損失が発生する。演算回路は、充電損失、プロセッサのＣ０ステートおよびＣｎステートでの消費電力を計算して、低下するプロセッサの消費電力よりも充電損失が大きい場合はプロセッサの動作をＣ０ステートに維持するための遷移停止信号を出力する。【選択図】図２
2011145959.tif 000002
【特許請求の範囲】
【請求項１】
アクティブ・ステートと所定のスリーピング・ステートとの間を所定の遷移周波数でパワー・ステートが遷移する遷移ステートで動作するプロセッサに電力を供給する電源装置であって、
平滑コンデンサと、
前記プロセッサが前記遷移ステートで動作するときに、各パワー・ステートに応じて出力電圧を制御するコントローラと、
前記プロセッサの消費電力と前記パワー・ステートを遷移させたときに前記平滑コンデンサに発生する充電損失に基づいて遷移停止条件を計算して前記所定のスリーピング・ステートへの遷移を停止するための遷移停止信号を出力する演算回路と
を有する電源装置。
【請求項２】
前記演算回路は、前記充電損失を前記アクティブ・ステートに対応した出力電圧と前記所定のスリーピング・ステートに対応した出力電圧と前記平滑コンデンサの静電容量に基づいて計算する請求項１に記載の方法。
【請求項３】
前記演算回路は、前記遷移ステートで動作する前記プロセッサの消費電力と前記電源装置の電力損失の合計と、前記アクティブ・ステートを維持して動作する前記プロセッサの消費電力と前記電源装置の電力損失の合計を比較して前記遷移停止条件を計算する請求項１または請求項２に記載の電源装置。
【請求項４】
前記演算回路は、実測した前記プロセッサの消費電力と前記プロセッサからそれぞれ取得した出力電圧および前記遷移周波数に基づいて前記遷移停止条件を計算する請求項１から請求項３のいずれかに記載の電源装置。
【請求項５】
前記演算回路が前記遷移停止条件を計算するために、前記遷移停止信号の出力を停止して前記アクティブ・ステートを維持して動作しているプロセッサを所定時間ごとに前記遷移ステートで動作させるためのタイマ回路を有する請求項１から請求項４のいずれかに記載の電源装置。
【請求項６】
前記コントローラと前記演算回路が同一の半導体チップに形成されている請求項１から請求項５のいずれかに記載の電源装置。
【請求項７】
前記演算回路は、前記平滑コンデンサの静電容量に対応する抵抗値の抵抗素子から前記平滑コンデンサの静電容量を取得する請求項６に記載の電源装置。
【請求項８】
前記所定のスリーピング・ステートが前記プロセッサのキャッシュがパワー・オフになって専用のＳＲＡＭにプロセッサの動作状態が保存されるＡＣＰＩのＣ６ステートである請求項１から請求項７のいずれかに記載の電源装置。
【請求項９】
アクティブ・ステートと所定のスリーピング・ステートとの間を所定の遷移周波数でパワー・ステートが遷移する遷移ステートで動作するプロセッサと、
前記遷移停止信号に応答して前記プロセッサの前記遷移ステートでの動作を停止させるチップ・セットと、
前記プロセッサに電力を供給する請求項１から請求項８のいずれかに記載の電源装置と
を有するコンピュータ。
【請求項１０】
アクティブ・ステートと所定のスリーピング・ステートとの間を所定の遷移周波数でパワー・ステートが遷移する遷移ステートで動作するプロセッサと、
平滑コンデンサと、前記遷移ステートで動作するときに各パワー・ステートに応じて出力電圧を制御するコントローラと、前記プロセッサの消費電力と前記遷移ステートで動作する前記平滑コンデンサに発生する充電損失に基づいて遷移停止条件を計算して前記所定のスリーピング・ステートへの遷移を停止するための遷移停止信号を出力する演算回路とを含む電源装置と、
前記遷移停止信号に応答して前記プロセッサが前記所定のパワー・ステートよりも深度が１段浅いスリーピング・ステートと前記アクティブ・ステートとの間を遷移する遷移ステートで動作するように前記プロセッサの設定を変更するデバイスと
を有するコンピュータ。
【請求項１１】
アクティブ・ステートと所定のスリーピング・ステートとの間を所定の遷移周波数でパワー・ステートが遷移する遷移ステートで動作するプロセッサに平滑コンデンサを含む電源装置が電力を供給する方法であって、
前記プロセッサが前記遷移ステートで動作するステップと、
各パワー・ステートの遷移に応じて前記電源装置が出力電圧を変更するステップと、
前記コンピュータが、前記プロセッサの消費電力と前記電源装置の電力損失を前記アクティブ・ステートと前記所定のスリーピング・ステートのそれぞれについて計算して前記所定のスリーピング・ステートへの遷移を停止させる遷移停止条件の成否を判断するステップと、
前記遷移停止条件が成立したときに前記コンピュータが前記プロセッサのパワー・ステートを前記アクティブ・ステートに維持するステップと
を有する方法。
【請求項１２】
前記判断するステップが、前記電源装置の前記アクティブ・ステートに対応する出力電圧と前記スリーピング・ステートに対応する出力電圧の差に基づいて前記平滑コンデンサに発生する充電損失を計算するステップを含む請求項１１に記載の方法。
【請求項１３】
前記遷移停止条件が成立している間に、前記コンピュータが前記プロセッサを所定時間ごとに前記アクティブ・ステートから前記遷移ステートに移行させるステップを有する請求項１１または請求項１２に記載の方法。
【請求項１４】
複数のスリーピング・ステートを備えるプロセッサに平滑コンデンサを含む電源装置が電力を供給する方法であって、
前記プロセッサがアクティブ・ステートと所定のスリーピング・ステートとの間をパワー・ステートが所定の遷移周波数で遷移する遷移ステートで動作するステップと、
各パワー・ステートの遷移に応じて前記電源装置が出力電圧を変更するステップと、
前記コンピュータが、前記プロセッサの消費電力と前記平滑コンデンサの充電損失を計算して前記所定のスリーピング・ステートへの遷移を停止させる遷移停止条件の成否を判断するステップと、
前記遷移停止条件が成立したときに前記コンピュータが前記アクティブ・ステートと前記所定のパワー・ステートよりも深度が１段浅いスリーピング・ステートとの間を遷移する新たな遷移ステートで前記プロセッサを動作させるステップと
を有する方法。
【請求項１５】
前記新たな遷移ステートで動作してから所定の時間前記遷移停止条件が成立しない場合に、前記コンピュータは前記アクティブ・ステートと前記所定のスリーピング・ステートとの間を遷移するもとの遷移ステートで前記プロセッサを動作させるステップを有する請求項１４に記載の方法。
【請求項１６】
スイッチング素子と平滑コンデンサを含む出力回路に接続され、前記スイッチング素子を制御してアクティブ・ステートと所定のスリーピング・ステートとの間を所定の遷移周波数でパワー・ステートが遷移する遷移ステートで動作するプロセッサに所定の電圧を供給する半導体装置であって、
各パワー・ステートに応じて出力電圧を制御するコントローラと、
前記遷移周波数、前記パワー・ステートに対応する出力電圧、前記平滑コンデンサの静電容量、および前記プロセッサに流れる電流の値を取得する入力回路と、
前記入力回路に接続され前記プロセッサの消費電力と前記遷移ステートで動作させたときに前記平滑コンデンサに発生する充電損失を計算して前記所定のスリーピング・ステートへの遷移を停止するための遷移停止信号を出力する演算回路と
を有する半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、平滑コンデンサを備える電源装置がプロセッサに供給する電圧を制御して消費電力を低減する技術に関し、さらに詳細にはアクティブ・ステートとスリーピング・ステートの間を遷移するプロセッサに供給する電圧を制御して消費電力を低減する技術に関する。
【背景技術】
【０００２】
ＡＣＰＩ（Advanced Configuration and Power Interface）は、コンピュータ・システムについて、Ｇ０ステートからＧ２ステートまでの動作状態としてグローバル・ステートを定義する。Ｇ０ステートはワーキング・ステートといわれユーザ・モードのコードが実行される。Ｇ１ステートはスリーピング・ステートといわれ、コンピュータはＧ０ステートよりも少ない消費電力で動作し、ユーザ・モードのコードは実行せずユーザからはコンピュータが動作を停止しているようにみえる。Ｇ２ステートはソフトオフ・ステートといわれ、コンピュータは最小の消費電力で動作しユーザ・モードおよびシステム・モードのコードは実行されない。
【０００３】
さらにＡＣＰＩは、Ｇ０ステートにおけるシステム・プロセッサのパワー・ステートとして、アクティブ・ステートとスリーピング・ステートを定義する。アクティブ・ステートはプロセッサが命令を実行することができるパワー・ステートでＣ０ステートと表示する。スリーピング・ステートは、プロセッサが命令を実行せず、コアの電圧および消費電力はＣ０ステートより小さくなるパワー・ステートでＣ１ステートからＣｎステートまでのいずれかとして表示する。各スリーピング・ステートでは、消費電力が小さくなるほどＣ０ステートへの復帰時間は長くなる。
【０００４】
特許文献１は、プロセッサに電力を供給するＤＣ／ＤＣ変換部に設けたコンデンサから発生する騒音を防止するために、プロセッサのパワー・ステートの切り替え方式を変更することが記載されている。同文献には、プロセッサがＣ４ステートとＣ０ステートとの間を周期的に遷移している場合のパワー・ステートの切替周期が設定しておいた設定周期よりも短い場合に、Ｃ３ステートとＣ０ステートとの間で遷移するように変更させることが記載されている。特許文献２は、プロセッサのパワー・ステートを遷移させる方法を開示する。
【０００５】
非特許文献１には、インテル社で提供するＣ６パワー・ステートまで遷移するプロセッサを開示する。同文献には、プロセッサがＣ０ステートとＣ６ステートの間を頻繁に遷移する場合には、ＳＲＡＭへプロセッサステートを退避したり復帰したりするために平均消費電力が上昇することが記載されている。そして３〜４ミリ秒以下の頻度でＣ６ステートに遷移するような場合は、Ｃ４ステートを維持させてＣ６ステートに遷移しないようにするAuto-Demoteという機能をプロセッサに実装していることが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２５９３６８号公報
【特許文献２】米国特許第７３６３５２３号公報
【非特許文献】
【０００７】
【非特許文献１】後藤弘茂、”後藤弘茂のＷｅｅｋｌｙ海外ニュース、平均消費電力を大きく低減するＰｅｎｒｙｎらのＣ６ステイと”、［online］、［平成19年12月30日検索］、インターネット、〈URL：http://pc.watch.impress.co.jp/docs/2007/1214/kaigai407.htm〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＡＣＰＩに対応したオペレーティング・システム（ＯＳ）が処理すべき命令がないと判断してプロセッサにＨＡＬＴ命令を実行させると、プロセッサはＣ１ステートに遷移する。Ｃ１ステートに遷移してもさらにプロセッサに処理すべき命令がないと判断した場合は、ＯＳは順次Ｃ２ステート、Ｃ３ステート、Ｃ４ステートとスリーピング・ステートの深度を深めていく。アプリケーション・プログラム（以下、アプリケーションという。）は、プロセッサがスリーピング・ステートに移行する際に、処理すべきスレッドの有無にかかわらずプロセッサを定期的にＣ０ステートにレジュームさせるようにＯＳに要求する。定期的にレジュームさせる周波数はアプリケーションにより異なる。
【０００９】
プロセッサはＤＣ／ＤＣコンバータから各スリーピング・ステートに適した電圧の供給を受けるために、ＤＣ／ＤＣコンバータに電圧識別データを送る。ＤＣ／ＤＣコンバータは、プロセッサのスリーピング・ステートの深度が深まるに従って出力電圧を下げていく。よって、ＯＳとアプリケーションによりプロセッサが所定の周期でＣ０ステートとＣｎステートの間を遷移するときは、ＤＣ／ＤＣコンバータは電圧識別データに応じてパワー・ステートの遷移に同期して出力電圧を変化させる。
【００１０】
このとき、プロセッサにはＣ０ステートで最も高い電圧が印加されスリーピング・ステートではそれよりも低い電圧が周期的に印加されることになる。ＤＣ／ＤＣコンバータの出力回路には、電圧の脈動を低減する平滑コンデンサが接続されている。そして、高い出力電圧から低い出力電圧に切り替わるときには平滑コンデンサに蓄積された電荷を放電し、低い出力電圧から高い出力電圧に切り替わるときには放電された電荷を充電する必要があるため充電損失が発生する。出力電圧の切り替えにより平滑コンデンサに発生する充電損失は、パワー・ステートの切替周期に比例して増大する。
【００１１】
スリーピング・ステートでのプロセッサの消費電力はＣ０ステートでの消費電力よりも低いため、プロセッサの消費電力はＣ０ステートを維持させるよりもＣ０ステートとＣｎステートとの間を遷移させたほうが小さくなる。しかし、切替周期が短くなるとコンデンサの充電損失が増大するのでコンピュータの消費電力を低減するためには、プロセッサの消費電力と平滑コンデンサの充電損失を総合した判断が必用になる。
【００１２】
そこで本発明の目的は、電力効率の優れたパワー・ステートでプロセッサを動作させる電源装置を提供することにある。さらに本発明の目的は、プロセッサと電源装置の消費電力の合計が少ないパワー・ステートでプロセッサを動作させる電源装置を提供することにある。さらに本発明の目的は、そのような電源装置を搭載したコンピュータおよび電力の供給方法を提供することにある。
【課題を解決するための手段】
【００１３】
本発明においては、平滑コンデンサを含む電源装置が所定の出力電圧をプロセッサに供給する。あるアプリケーションが実行されるときプロセッサのパワー・ステートは、アクティブ・ステート（Ｃ０ステート）と所定のスリーピング・ステート（Ｃｎステート）との間を所定の遷移周波数でパワー・ステートが遷移するＣｎ遷移ステートで動作する。電源装置の出力電圧はパワー・ステートの変化に同期して変化する。電源装置の出力電圧が変化すると、平滑コンデンサを充放電する際に充電損失が発生する。プロセッサがＣ０ステートを維持する場合には充電損失は発生しないが、Ｃｎ遷移ステートで動作する場合は遷移周波数が高いほど大きな充電損失が発生し、かつそのときのプロセッサの消費電力はＣｎステートの深度が深くなるほど小さくなる。
【００１４】
本発明では、プロセッサが動作している間に、プロセッサの消費電力とＣｎ遷移ステートで動作させたときに平滑コンデンサに発生する充電損失とに基づいて遷移停止条件を計算する。Ｃ０ステートのプロセッサの消費電力よりもＣｎ遷移ステートのプロセッサの消費電力と充電損失の合計が大きい場合は遷移停止条件が成立したと判断する。遷移停止条件が成立したときは、Ｃｎ遷移ステートでの動作を停止したほうが有利であるためプロセッサのパワー・ステートをＣ０ステートに維持する遷移停止信号を出力する。
【００１５】
充電損失はＣ０ステートに対応した出力電圧とＣｎステートに対応した出力電圧と平滑コンデンサの静電容量に基づいて計算することができる。遷移停止信号は、Ｃｎ遷移ステートでのプロセッサの消費電力と電源装置の電力損失の合計と、Ｃ０ステートを維持したプロセッサの消費電力と電源装置の電力損失の合計を比較し有利なパワー・ステートを選択して出力することができる。プロセッサのＣｎステートにおける消費電力には個体差があったり、Ｃ０ステートにおける消費電力は他の制御技術で制御されたりするので、遷移停止条件の計算に使用するプロセッサの消費電力は実測することが望ましい。
【００１６】
また遷移周波数は実行するアプリケーションにより変化し、Ｃ０ステートのプロセッサの消費電力は他の制御技術により変化するので、所定時間ごとに遷移停止信号の出力を停止してプロセッサをＣｎ遷移ステートで動作させ、遷移停止条件の成否を時間軸上で定期的に判断することが望ましい。さらに本発明の他の態様においては、Ｃｎ遷移ステートで動作している間に遷移停止条件が成立したときには、深度が１段浅いスリーピング・ステートとアクティブ・ステートとの間を遷移する遷移ステートに変更することができる。そして、遷移ステートを変更してから所定の時間遷移停止条件が成立しない場合は、深度が１段深いスリーピング・ステートとアクティブ・ステートとの間を遷移するように遷移ステートを変更することができる。
【発明の効果】
【００１７】
本発明により、電力効率の優れたパワー・ステートでプロセッサを動作させる電源装置を提供することができた。さらに本発明により、プロセッサと電源装置の消費電力の合計が少ないパワー・ステートでプロセッサを動作させる電源装置を提供することができた。さらに本発明により、そのような電源装置を搭載したコンピュータおよび電力の供給方法を提供することができた。
【図面の簡単な説明】
【００１８】
【図１】ＤＣ／ＤＣコンバータに充電損失が発生する原理を説明する図である。
【図２】プロセッサに電力を供給する電力制御システムの構成を説明する機能ブロック図である。
【図３】プロセッサのパワー・ステートを制御する手順を示すフローチャートである。
【図４】ＤＣ／ＤＣコンバータの出力電圧の波形を示す図である
【図５】アプリケーションが要求する遷移周波数の一例を示す図である。
【図６】プロセッサのパワー・ステートを制御する他の手順を示すフローチャートである。
【発明を実施するための形態】
【００１９】
［プロセッサのパワー・ステート］
本実施の形態で説明するプロセッサ１０（図２参照）は、ＡＣＰＩのＣ０ステート、Ｃ１ステート、Ｃ２ステート、Ｃ３ステート、Ｃ４ステート、およびＣ６ステートのいずれかのパワー・ステートで動作することが可能である。Ｃ０ステートはアクティブ・ステートといわれ、プロセッサはいずれのスリーピング・ステートよりも大きな動作電圧で動作して命令を実行することができる。Ｃ０ステートからＣ１ステートへの遷移はＯＳがＨＡＬＴ命令を実行することで発生する。
【００２０】
ＯＳがＨＡＬＴ命令を実行するとプロセッサはＣ１ステートに遷移し、実際の命令を実行しないアイドル・プロセスがスケジューリングされる。Ｃ１ステートで動作するプロセッサは、実行すべきプロセスが発生したり割り込みがあったりすると、ただちにＣ０ステートに遷移して命令を実行することができる。Ｃ０ステートからＣ１ステートより深度が深いスリーピング・ステートへの遷移は、入出力制御用のチップセット（ＩＣＨ）などのハードウエアが、それぞれのパワー・ステートに割り当てられたプロセッサのピンに信号を送ることで発生する。なお、本明細書においては、特定のスリーピング・ステートをＣｎステートということにする。
【００２１】
Ｃ２ステートではコアのクロックが停止する。Ｃ３ステートでは、Ｌ１キャッシュの内容がＬ２キャッシュにフラッシュされてパワー・オフになり、クロック・ジェネレータが停止する。Ｃ４ステートでは、Ｌ２キャッシュの内容が順番にメイン・メモリにフラッシュされていく。そしてフラッシュされたライン単位でキャッシュ・アレイのパワーがオフになっていく。すべてのラインがフラッシュされるとＬ２キャッシュのパワーがオフになる。Ｃ６ステートでは、Ｌ１キャッシュとＬ２キャッシュがパワー・オフになりプロセッサの動作状態が専用のＳＲＡＭに保存される。
【００２２】
複数のスリーピング・ステートで動作するプロセッサは、スリーピング・ステートがＣ１ステートからＣ６ステートまで深く遷移するにしたがってコアの電圧を低下させてリーク電流を小さくしたり、クロックを停止したり、またはキャッシュをパワー・オフにしたりして消費電力をより低減することができる。インテル社のプロセッサの一例では、Ｃ０ステートのときにプロセッサに供給する電圧は１Ｖで、Ｃ６ステートのときには０．３５Ｖである。また、ある深度のＣｎステートからＣ０ステートに遷移するときのウエイクアップ時間は、それより深い深度のＣｎステートから遷移するときのウエイクアップ時間よりも短くなる。
【００２３】
ここで説明した各パワー・ステートにおけるプロセッサの状態やクロック・ジェネレータの状態は一例であり、本発明では他のパワー・ステートの状態が定義されたプロセッサを採用することもできる。また、プロセッサはシングル・コアでもマルチ・コアでも負荷に応じてパワー・ステートを遷移させることができるものであれば本発明に適用することができる。本発明でプロセッサのパワー・ステートに関して重要なことは、パワー・ステートが変化することでプロセッサに供給する電圧および消費電力が変化することだけである。
【００２４】
［充電損失］
図１は、ＤＣ／ＤＣコンバータに充電損失が発生する原理を説明する図である。ＤＣ／ＤＣコンバータは、直流電源から供給される直流電圧を各パワー・ステートに適した一定の直流電圧に変換してプロセッサに供給する。プロセッサは図１（Ｂ）に示すように、実行しているアプリケーションに依存した周期Ｔで、Ｃ０ステートとＣｎステートの間を遷移している。Ｃ０ステートのときにプロセッサに印加する電圧Ｖｏは各パワー・ステートの中で最も高い。また、Ｃｎステートのときにプロセッサに印加する電圧ＶｎはＶｏよりも小さい。
【００２５】
図１（Ａ）において、ＤＣ／ＤＣコンバータは、ハイサイド・トランジスタＨ−ＦＥＴ、ローサイド・トランジスタＬ−ＦＥＴ、インダクタＬ、平滑コンデンサＣｏｕｔ、およびレギュレータＩＣなどで構成される。インダクタＬと平滑コンデンサＣｏｕｔは、ＤＣ／ＤＣコンバータからプロセッサに流れる電圧および電流の脈動を低減する平滑回路を形成する。ＤＣ／ＤＣコンバータは同期整流方式を採用しており、レギュレータＩＣはＨ−ＦＥＴおよびＬ−ＦＥＴを所定の周期で交互にオン状態になるようにＰＷＭ（Pulse Width Modulation）方式で駆動する。レギュレータＩＣはＨ−ＦＥＴがオンになっているオン期間中はＬ−ＦＥＴをオフにし、Ｈ−ＦＥＴがオフになっているオフ期間中はＬ−ＦＥＴをオンにする。
【００２６】
レギュレータＩＣは、図には示していない電圧検出回路で検出した出力電圧に基づいてオン期間を調整して、出力電圧を他のデバイスにより設定された一定の値に維持するようにＰＷＭ制御する。一定の出力電圧で動作するＤＣ／ＤＣコンバータではオン期間に直流電源から経路１でプロセッサに電流が流れると同時に経路２で平滑コンデンサＣｏｕｔを充電する。オフ期間は経路３でインダクタＬに蓄積された電磁エネルギーがプロセッサに電流として流れ、平滑コンデンサＣｏｕｔからも経路４でプロセッサに電流が流れる。出力電圧が一定になるように動作するときは、平滑コンデンサＣの抵抗分を無視すればオン期間中に平滑コンデンサＣを充電した電力はオフ期間中にプロセッサに供給されるため充電電力の損失はない。
【００２７】
つぎにプロセッサのパワー・ステートの遷移に同期してＤＣ／ＤＣコンバータの出力電圧がＶｏとＶｎの間で変化するときの平滑コンデンサＣに発生する充電電力の損失を検討する。出力電圧がＶｏで動作しているときは、平滑コンデンサＣｏｕｔの平均電圧はＶｏになっている。そして、出力電圧をＶｎにするためにオン期間が短くなりオフ期間が長くなるようにレギュレータＩＣがＨ―ＦＥＴとＬ−ＦＥＴの動作を制御すると、出力電圧がＶｎに低下するために平滑コンデンサＣｏｕｔから経路５と経路６で電流が流れる。経路６で流れる電流は、直流電源に戻るが経路５で流れる電流は平滑コンデンサＣｏｕｔおよびインダクタＬからなる循環回路を流れて電力が消費される。
【００２８】
出力電圧がＶｎになると平滑コンデンサＣｏｕｔの平均電圧もＶｎになる。その後、出力電圧がＶｎからＶｏに変化するときは、平滑コンデンサＣｏｕｔの平均電圧をＶｎからＶｏまで上昇させるために経路２で平滑コンデンサに充電電力が供給される。この充電電力は、経路５で消費された電力に相当するため、出力電圧を変化させたことによる充電電力の損失（以下、充電損失という。）が発生する。アプリケーションは、プロセッサがＣｎステートに遷移する際に各アプリケーションが保有する独自の周期でプロセッサがＣ０ステートに遷移することを要求する。
【００２９】
Ｃｎステートで動作するプロセッサは、Ｃ０ステートで動作するときよりも消費電力が小さくなるが、プロセッサがＣ０ステートとＣｎステートとの間を周期的に遷移するときは、遷移する周波数（以下、遷移周波数という。）が高くなるほど充電損失が大きくなる。ここにプロセッサをＣ０ステートに留めておくか、Ｃｎステートに遷移させアプリケーションの要求に基づいてＣ０ステートとＣｎステートの間を所定の遷移周波数で遷移させるかは、プロセッサの消費電力とＤＣ／ＤＣコンバータの電力損失を総合して判断する必要がある。なお、プロセッサがＣ０ステートとＣｎステートの間を遷移している状態と、Ｃｎステートを維持している状態とを区別するために、Ｃ０ステートとＣｎステートの間を遷移している状態をＣｎ遷移ステートということにする。
【００３０】
［遷移ステートの決定方法］
ＤＣ／ＤＣコンバータがＣ０ステートで動作するときの出力電圧をＶｏ、スイッチング損失をＬｏ、プロセッサの電流をＩｏとし、Ｃｎステートで動作するときの出力電圧をＶｎ、スイッチング損失をＬｎ、プロセッサの電流をＩｎとする。また、遷移周波数をｆとし平滑コンデンサＣｏｕｔの静電容量をＣとする。Ｃｏステートで連続して動作するプロセッサが消費する電力Ｐｏは、
Ｐｏ＝Ｖｏ×Ｉｏ
Ｃｎ遷移ステートで動作するプロセッサが消費する電力Ｐｎは、図１（Ｂ）に示すように１周期においてＣｏステートで動作する割合をαとすれば、
Ｐｎ＝Ｖｏ×Ｉｏ×α＋Ｖｎ×Ｉｎ×（１−α）
となる。
【００３１】
プロセッサが遷移周波数ｆのＣｎ遷移ステートで動作するときに平滑コンデンサＣｏｕｔに発生する充電損失Ｐｃは、ＤＣ／ＤＣコンバータの効率と経路６で回収できる電力の割合を考慮した回路定数をβとして、
Ｐｃ＝０．５×Ｃ×（Ｖｏ２ーＶｎ２）×β×ｆ
となる。ここで、プロセッサがＣ０ステートを維持して動作するときのプロセッサの消費電力Ｐｏおよび直流電源装置に発生する電力損失Ｌｏの合計と、Ｃｎ遷移ステートで動作するときのプロセッサの消費電力Ｐｎ、直流電源装置に発生する電力損失Ｌｎ、および充電損失Ｐｃの合計を比較したときに、Ｃｏステートを維持するほうが有利になる条件である遷移停止条件は以下のようになる。
Ｐｏ＋Ｌｏ＜Ｐｎ＋Ｌｎ＋Ｐｃ
【００３２】
この式を変形すると、
Ｐｏ−Ｐｎ＜Ｌｎ−Ｌｏ＋Ｐｃ
となる。ここで、Ｃｎ遷移ステートで動作するＤＣ／ＤＣコンバータの電力損失とＣ０ステートを維持するＤＣ／ＤＣコンバータの電力損失の差であるＬｎ−Ｌｏは全体の中で無視できるほど小さいので、結局遷移停止条件は、
Ｖｏ×Ｉｏ−（Ｖｏ×Ｉｏ×α＋Ｖｎ×Ｉｎ×（１−α））＜Ｐｃ
となる。ここにα≪１であるため、遷移停止条件は、
Ｖｏ×Ｉｏ−Ｖｎ×Ｉｎ＜Ｐｃ…（式１）
となる。
【００３３】
式１は、Ｖｏ、Ｉｏ、Ｖｎ、Ｉｎ、Ｃ、ｆ、βを取得することができれば、計算することができる。式１によれば、遷移停止条件は、プロセッサのＣ０ステートを維持するときの消費電力とＣｎ遷移ステートで動作するときの消費電力の差が充電損失よりも小さい場合に成立する。また、遷移停止条件は、プロセッサのＣ０ステートを維持するときの消費電力が、Ｃｎ遷移ステートで動作するときの消費電力と充電損失の合計よりも小さい場合に成立するといえる。
【００３４】
［プロセッサの電力制御システム］
図２は、プロセッサに電力を供給する電力制御システムの構成を説明する機能ブロック図である。電力制御システムは、デスクトップ・コンピュータ、携帯式コンピュータ、サーバ、またはＰＤＡなどのコンピュータ・システムに搭載することができる。直流電源２３は、ＤＣ／ＤＣコンバータ１００に直流電圧を供給する、ＡＣアダプタ、上位のＤＣ／ＤＣコンバータ、または蓄電池とすることができる。ＤＣ／ＤＣコンバータ１００は、プロセッサ１０にそのパワー・ステートに適合した直流電圧を供給する。
【００３５】
プロセッサ１０は、電圧識別ピン（ＳＶＩＤ）を備えており、ライン１２９を通じて現在のパワー・ステートにおいて要求する動作電圧および遷移周波数を示す識別データをＤＣ／ＤＣコンバータ１００に送る。プロセッサ１０は、たとえば、Ｃ６ステートとＣ０ステートを１００Ｈｚの遷移周波数で遷移するときには、Ｃ０ステートの電圧が１ＶでＣ６ステートの電圧が０．３５Ｖで遷移周波数が１００Ｈｚであることを示す識別データをＤＣ／ＤＣコンバータ１００に送る。
【００３６】
プロセッサ１０は、Ｃ２ステートより深度の深いパワー・ステートに遷移するための複数の制御ピン（ＣＯＮＴ）を備えている。各制御ピンは制御ライン５１でチップ・セット１３に接続されている。プロセッサは、Ｃ０ステートで動作するときに、使用率に応じて動作電圧と動作周波数をセットにして低下させるインテル社のSpeedStep（登録商標）またはＡＭＤ社のPowerNowといった技術、あるいはスロットリングという技術で消費電力を低下させることができる。チップ・セット１３は制御ライン５１に信号を送ることで、プロセッサ１０のパワー・ステートを変更することができる。プロセッサ１０にはクロック・ジェネレータ１１が接続され、クロック・ジェネレータ１１にはチップ・セット１３が接続されている。クロック・ジェネレータ１１は、プロセッサ１０および図示しないバス、メモリ・コントローラ用のチップ・セット（ＭＣＨ）、およびメイン・メモリなどにクロックを供給する。
【００３７】
チップ・セット１３は、入出力制御用のチップ・セット（ＩＣＨ）またはその他のデバイスとすることができる。ＯＳ１５は、チップ・セット１３の内部レジスタを設定することで、クロック・ジェネレータ１１の動作およびプロセッサ１０のパワー・ステートを制御する。ＯＳ１５は、プロセッサ１０の使用率やタイムスライスの状態などに基づいてプロセッサの負荷の大きさを判断して、現在のパワー・ステートを変更するためのデータをチップ・セット１３のレジスタに書き込む。ＯＳ１５は、Ｃ２ステートより深度の深いパワー・ステートへの遷移を指示するときは、定期的にＣ０ステートに復帰して実行すべき命令や割り込みがないかどうかを確認するための時間または周波数を設定する復帰タイマ１６を備えている。
【００３８】
たとえば、ＯＳ１５は、復帰タイマを所定時間に設定して現在の負荷の状況に基づいてプロセッサ１０をＣ６ステートに遷移させると、プロセッサ１０は、Ｃ６ステートで所定の時間だけ動作するとＣ０ステートに復帰し、短時間だけＣ０ステートで動作してＣ６ステートに戻る。そして所定時間後にＣ０ステートに復帰するといった動作を繰り返す。ＯＳ１５およびアプリケーション１７は、プロセッサ１０の負荷となるプログラムである。コンピュータ・システムには、複数のアプリケーション１７が実装されており、各アプリケーションは動作するときにそれぞれ復帰タイマ１６に復帰時間を設定する。すなわち、コンピュータ・システムにおける遷移周波数は実行されているアプリケーションにより決まることになる。図６にアプリケーションが要求する遷移周波数の一例を示す。
【００３９】
ＢＩＯＳ１９は、ＡＣＰＩに適合しフラッシュＲＯＭに格納されている。ＢＩＯＳ１９にはプロセッサ１０がサポートする有効なスリーピング・ステートがシステムまたはユーザにより設定される。ＢＩＯＳ１９はメイン・メモリにロードされたときにプロセッサ１０の現在のＣｎステートへの遷移を停止するためのＤＥフラグ２０を有する。ＯＳ１５は、プロセッサの負荷状況を観測し、ＢＩＯＳ１９に設定された有効なスリーピング・ステートとＤＥフラグ２０に基づいていずれの遷移ステートで動作させるかを決定する。
【００４０】
エンベデッド・コントローラ（ＥＣ）２１は、コンピュータの電源および温度などを管理するためのマイクロ・コンピュータで、ＰＷＭコントローラ１０２に接続される。ＥＣ２１は、ＰＷＭコントローラ１０２の動作を制御する。ＥＣ２１はさらにＤＣ／ＤＣコンバータ１００のＡＮＤゲート１１５にライン５３で接続されている。ＥＣ２１はＡＮＤゲート１１５からＣｎステートへの遷移を停止するためのディスエーブル（ＤＥ）信号を受け取ったときにＤＥフラグ２０を設定する。
【００４１】
たとえば、プロセッサ１０がＣ６遷移ステートで動作しているときに、ＥＣ２１によりＤＥフラグ２０が設定されるとＯＳ１５はプロセッサ１０がＣ６ステートへの遷移を停止してＣ０ステートに留まるようにチップ・セット１３のレジスタを設定する。そして、ＤＥフラグ２０の設定が解除されたときにプロセッサ１０がＣ６遷移ステートで動作するようにチップ・セット１３のレジスタを設定する。
【００４２】
あるいは、ＯＳ１５または他のプログラムは、ＤＥフラグ２０が設定されたときに、プロセッサ１０が現在のスリーピング・ステートよりも深度が１段浅いスリーピング・ステートとＣ０ステートの間を遷移するようにチップ・セット１３のレジスタを設定してもよい。たとえばＯＳ１５は、プロセッサ１０がＣ６遷移ステートで動作しているときにＤＥフラグ２０が設定されたときにはＣ４遷移ステートで動作させる。そして、さらにＤＥフラグ２０が設定されたときにはＣ３遷移ステートで動作させたり、ＤＥフラグ２０の設定が解除されたときにはＣ６遷移ステートで動作させたりしてもよい。なお、復帰タイマ１６および遷移ステートの変更はＯＳ１５とは異なるプログラムが実行するようにしてもよい。
【００４３】
ＤＣ／ＤＣコンバータ１００は、ＭＯＳ型のトランジスタであるハイサイドＦＥＴ１１７およびローサイドＦＥＴ１１９、インダクタ１２１、および平滑コンデンサ１２３を含む。これらは図１で説明した要素と同様に動作し、かつ、平滑コンデンサ１２３は出力電圧が遷移周波数で変化するときに充電損失を発生する。レギュレータＩＣ１０１は、ＰＷＭコントローラ１０２、遷移周波数入力回路１０３、動作電圧入力回路１０５、静電容量入力回路１０７、演算増幅器１０９、演算回路１１１、タイマ１１３、およびＡＮＤゲート１１５を含む。ハイサイドＦＥＴ１１７のドレインは直流電源２３に接続されソースはローサイドＦＥＴ１１９のドレインに接続される。ローサイドＦＥＴ１１９のソースはグランドに接続される。
【００４４】
ハイサイドＦＥＴ１１７とローサイドＦＥＴ１１９のゲートは、ＰＷＭコントローラ１０２に接続される。インダクタ１２１は一方の端子がハイサイドＦＥＴ１１７のソースおよびローサイドＦＥＴ１１９のドレインに接続され、他方の端子がセンス抵抗１２５の一方の端子および平滑コンデンサ１２３の一方の端子に接続される。センス抵抗１２５の他方の端子はプロセッサ１０に接続される。平滑コンデンサ１２３の他方の端子はグランドに接続される。センス抵抗１２５の両端はそれぞれ、演算増幅器１０９の入力端子に接続される。演算増幅器１０９は出力が演算回路１１１に接続され、ＤＣ／ＤＣコンバータ１００の出力電流Ｉｏに相当するセンス抵抗１２５の両端の電圧を増幅して演算回路１１１に出力する。
【００４５】
遷移周波数入力回路１０３および動作電圧入力回路１０５はそれぞれ入力端子がライン１２９に接続され、出力端子が演算回路１１１に接続される。遷移周波数入力回路１０３は、プロセッサ１０から受け取った識別データで示される動作電圧の変化をカウントする周波数カウンタで構成され、その結果をアナログ信号の遷移周波数ｆとして演算回路１１１に送る。あるいは、遷移周波数入力回路１０３は、プロセッサ１０から受け取った遷移周波数ｆを示す識別データをアナログ信号に変換して演算回路１１１に送るようにすることもできる。動作電圧入力回路１０５は、プロセッサから受け取った動作電圧に関する識別データをアナログ信号に変換して演算回路に送る。ＰＷＭコントローラ１０２は、ライン１２９を通じてプロセッサ１０に接続され、プロセッサ１０から受け取った識別データに基づいて設定された電圧をプロセッサ１０のパワー・ステートに同期した遷移周波数で出力するようにハイサイドＦＥＴ１１７とローサイドＦＥＴ１１９を同期整流方式でスイッチング制御する。ＰＷＭコントローラ１０２には、一定の電圧を出力するために図示しない分圧抵抗から出力電圧がフードバックされる。
【００４６】
静電容量入力回路１０７は、入力端子が識別抵抗１２７の一方の端子に接続され出力端子が演算回路１１１に接続される。識別抵抗１２７は、平滑コンデンサ１２３の静電容量に対応する抵抗値を備え他方の端子がグランドに接続されている。静電容量入力回路１０７は識別抵抗１２７の抵抗値をアナログ信号に変換して演算回路１１１に送る。演算回路１１１の出力はＡＮＤゲート１１５の一方の端子に接続される。タイマ１１３はＡＮＤゲート１１５の他方の端子に接続される。
【００４７】
演算回路１１１は、式１の遷移停止条件をワイヤード・ロジック方式で計算するためのハードウエアで構成された演算回路で演算増幅器や論理素子で構成されている。ただし、演算回路１１１は、マイクロプロセッサで構成することもできる。演算回路１１１には、遷移停止条件を計算するための回路定数βの値が組み込まれており、平滑コンデンサ１２３の静電容量は抵抗１２７を通じて取得することができる。演算回路１１１は、出力電圧Ｖｏ、Ｖｎ、および遷移周波数ｆをプロセッサ１０からライン１２９に接続された動作電圧入力回路１０５および遷移周波数入力回路１０３を通じて取得し、出力電流Ｉｏ、Ｉｎはセンス抵抗１２５に接続された演算増幅器１０９から取得することができるので、プロセッサ１０がＣｎ遷移ステートで動作するときはダイナミックに遷移停止条件を計算することができる。
【００４８】
演算回路１１１は、プロセッサ１０がＣｎ遷移ステートで動作しているときにだけ遷移停止条件を計算し、Ｃ０ステートを維持しているときは遷移停止条件を計算しない。演算回路１１１は、遷移停止条件が成立したと判断したときにＡＮＤゲート１１５の一方の入力端子に遷移停止信号を出力する。タイマ１１３は演算回路１１１とＡＮＤゲート１１５の他方の入力端子に接続されている。タイマ１１３は、オンになる一定のオン時間とオフになる一定のオフ時間からなる一定の周期のタイマ信号を出力する。たとえばオン時間は１０００ミリ秒とし、オフ時間は１０ミリ秒とすることができる。演算回路１１１から遷移停止信号が出力されているときに、タイマ信号がオンになるとＤＥ信号がオンになる。タイマ信号がオフになると、それに応答して演算回路１１１はリセットしてそれまで出力していた遷移停止信号をオフにする。また、タイマ信号がオフになることでＤＥ信号もオフになる。
【００４９】
［パワー・ステートの制御方法］
つぎに図２に示した電力制御システムによる電力の供給方法を説明する。図３は、プロセッサ１０のパワー・ステートを制御する手順を示すフローチャートで、図４はＤＣ／ＤＣコンバータ１００の出力電圧の波形を示す図である。図４で、ライン３０１は、本実施の形態によるパワー・ステートの制御を行わない場合に、プロセッサ１０をスリーピング・ステートに移行させるＯＳ１５のアルゴリズムで決定されたスリーピング・ステートの深度とアプリケーション１７が設定した復帰時間Ｔにより決定された遷移周波数ｆにより、プロセッサが連続的にＣｎ遷移ステートで動作しているときのＤＣ／ＤＣコンバータ１００の出力電圧を示す。
【００５０】
またライン３０３はタイマ１１３が出力するタイマ信号を示し、ライン３０５は演算回路１１１が出力する遷移停止信号を示し、ライン３０７はＡＮＤゲート１１５が出力するＤＥ信号を示す。ライン３０９はライン３０１に対して本実施の形態によるパワー・ステートの制御を行った場合のＤＣ／ＤＣコンバータ１００の出力電圧を示している。タイマ１１３は、オン時間Ｔ１とオフ時間Ｔ２からなる一定周期のタイマ信号を遷移周波数や遷移停止信号とは無関係に独自に出力している。
【００５１】
ブロック２０１では、ＤＣ／ＤＣコンバータ１００から電力の供給を受けてプロセッサ１０がＣ０ステートで動作している。ＯＳ１５は、負荷状態に応じて所定のアルゴリズムでＣ０ステートのプロセッサ１０の動作電圧および動作周波数をセットで変更してもよい。復帰タイマ１６には現在プロセッサ１０で実行されているアプリケーション１０１により所定の復帰時間Ｔが設定されている。そしてＯＳ１５は、ＢＩＯＳ１９に設定された有効なパワー・ステートおよびＤＥフラグ２０を参照し、ＤＥフラグ２０が設定されていない場合にはプロセッサ１０の負荷に応じてプロセッサ１０をＣ１ステートから順番に深度の深いスリーピング・ステートに遷移させていく。ブロック２０３では、ＯＳ１５がプロセッサ１０をＣｎ遷移ステートで動作させるものとする。ＯＳ１５がチップ・セット１３のレジスタに、Ｃｎステートへ遷移させるためのデータと復帰時間Ｔを示すデータを書き込むと、プロセッサ１０はＣｎ遷移ステートで動作してＣｎステートとＣ０ステートとの間を復帰時間Ｔで決まる遷移周波数ｆで遷移する。
【００５２】
プロセッサ１０は、ライン１２９を通じてＰＷＭコントローラ１０２に、Ｃｎステートのときは電圧Ｖｎを出力し、Ｃ０ステートのときは電圧Ｖｏを出力するように識別データを送る。遷移周波数入力回路１０３は、プロセッサ１０から受け取った識別データで示される動作電圧の変化から遷移周波数ｆを計算して演算回路１１１に送る。ＤＣ／ＤＣコンバータ１００は、プロセッサ１０のパワー・ステートの遷移に同期して遷移周波数ｆで出力電圧をＶｎとＶｏの間で変化させる。このときの様子は図４のライン３０１の時刻ｔ２までの状態として示されている。ＤＣ／ＤＣコンバータ１００は周期的に電圧を変更することで平滑コンデンサ１２３に充電損失が発生する。
【００５３】
演算回路１１１は、プロセッサがＣｎ遷移ステートで動作するときは、遷移停止条件を計算する。ブロック２０５で演算回路１１１は、Ｃ０ステートに対応した出力電圧ＶｏおよびＣｎステートに対応した出力電圧Ｖｎを動作電圧入力回路１０５から取得し、遷移周波数ｆを遷移周波数入力回路１０３から取得し、さらに平滑コンデンサ１２３の静電容量を識別抵抗１２７から取得して遷移停止条件を計算する。演算回路１１１は時刻ｔ１で遷移停止条件が成立したと判断するとブロック２０７で遷移停止信号を出力してブロック２０９に移行する。ブロック２０７で遷移停止条件が成立しない限りプロセッサ１０はブロック２０３に戻ってＣｎ遷移ステートで動作する。
【００５４】
ブロック２０９でタイマ信号と遷移停止信号が時刻ｔ２でともにオンになるとＡＮＤゲート１１５はＥＣ２１にＤＥ信号を出力する。ＤＥ信号を受け取ったＥＣ２１はＢＩＯＳ１９のＤＥフラグ２０を設定する。ＢＩＯＳ１９からＤＥフラグ２０が設定されたことの通知を受け取ったＯＳ１５は、現在のスリーピング・ステートがディスエーブルに設定されたことを認識してプロセッサ１０がＣ０ステートを維持するようにチップ・セット１３のレジスタを設定する。ライン３０９に示すように遷移停止信号がオンである限りタイマ信号がオン時間Ｔ１の間はＤＥ信号がオンになるため、ＤＣ／ＤＣコンバータ１００の出力電圧はＶｏを維持する（ブロック２１１）。したがって、平滑コンデンサに充電損失が発生しなくなり充電損失とプロセッサ１０の消費電力を合計した電力損失はＣｎ遷移ステートで動作する場合よりも少なくなる。ブロック２１３では、遷移停止信号がオフにならない限りオン時間Ｔ１が経過するまでプロセッサ１０はＣ０ステートを維持する。
【００５５】
ブロック２１３では、時刻ｔ３でタイマ信号のオン時間Ｔ１が経過するとタイマ信号がオフになりそれに応答して演算回路１１１は遷移停止信号の出力を停止しＤＥ信号はオフになる。ＤＥ信号がオフになったことを認識したＥＣ２１によりＤＥフラグ２０の設定が解除されると、ＯＳ１５はブロック２０３に戻って、前に説明したのと同様の手順で時刻ｔ３から時刻ｔ５までのオフ時間Ｔ２の間プロセッサ１０をＣｎ遷移ステートで動作させる。オフ時間Ｔ２は、プロセッサ１０がＣ０ステートを維持して動作している間にＤＣ／ＤＣコンバータ１００の出力電流および遷移周波数またはいずれか一方が変化して遷移停止条件が不成立の方向に変化していないかどうかを演算回路１１１が再計算するための時間である。
【００５６】
ブロック２０５においてプロセッサ１０がＣｎ遷移ステートで動作していることを認識した演算回路１１１は、ブロック２０７で再度遷移停止条件の計算を行い時刻ｔ４で遷移停止条件が成立していると判断して遷移停止信号を出力する。ただし、オフ時間Ｔ２の間はタイマ信号がオフのためＡＮＤゲート１１５はＤＥ信号を出力しない。プロセッサ１０は時刻ｔ２まではＣｎ遷移ステートで動作する。ブロック２０９でタイマ信号のオフ時間Ｔ２が経過すると時刻ｔ５でブロック２１１に移行してＤＥ信号がオンになると、Ｃｎステートへの遷移が停止されプロセッサは再びＣ０ステートを維持する。
【００５７】
ブロック２１３でオン時間Ｔ１が終了して時刻ｔ６でタイマ信号がオフになって遷移停止信号とＤＥ信号がオフになると、プロセッサ１０はＣｎ遷移ステートで動作する（ブロック２０３）。ブロック２０５では演算回路１１１が遷移停止条件の計算を開始したとき今度は遷移停止条件が不成立であると判断して、時刻ｔ６以降はブロック２０７からブロック２０３に戻り遷移停止信号を出力しない。その結果時刻ｔ６以降は、プロセッサ１０がＣｎ遷移ステートで動作する。一例では、プロセッサがＣ６遷移ステートで動作しているときには遷移周波数が１ＫＨｚを越えると遷移停止条件が成立する。したがって、ＩＫＨｚを越えるような復帰時間Ｔを設定するアプリケーションを実行するときには、演算回路１１１の判断によりプロセッサ１０がＣ０ステートを維持して動作することで消費電力を低減することができる。
【００５８】
［パワー・ステートの他の制御方法］
図３、図４では、Ｃｎステートへの遷移をディスエーブルにしてＣｎ遷移ステートでの動作を停止する場合にＣ０ステートを維持する例を説明したが、本発明は現在のＣｎ遷移ステートで遷移停止条件が成立する場合にそれより深度が一段浅いパワー・ステートでの遷移ステートで動作させることもできる。図６は、プロセッサ１０のパワー・ステートを制御する他の手順を示すフローチャートである。ブロック４０１では、プロセッサ１０がサポートするすべてのスリーピング・ステートがＢＩＯＳ１９に設定されており、ＯＳ１５は負荷状態に応じてプロセッサ１０を順次深度の深いスリーピング・ステートに遷移させる。
【００５９】
ブロック４０３では、プロセッサ１０がＣ６遷移ステートで動作している。ブロック４０５では、演算回路１１１が遷移停止条件を計算する。遷移停止条件が成立しない限り、プロセッサはＣ６遷移ステートで動作する。ＯＳ１５は、負荷状態に応じて所定のアルゴリズムでＣ０ステートのプロセッサ１０の動作電圧および動作周波数をセットで変更してもよい。この制御方法ではタイマ１１３およびＡＮＤゲート１１５を設ける必要はなく、遷移停止条件が成立したときに演算回路１１１が出力する遷移停止信号はＤＥ信号としてＥＣ２１に送られる。
【００６０】
ブロック４０５で遷移停止条件が成立すると、ブロック４０７でＥＣ２１は、ＢＩＯＳに設定されているＣ６ステートをディスエーブルに設定する。その結果、ＯＳ１５は最も深度の深いスリーピング・ステートがＣ４ステートであると判断して、負荷状態に応じてブロック４０９でプロセッサ１０をＣ４ステートとＣ０ステートを遷移するＣ４遷移ステートで動作させる。ブロック４１１では、演算回路１１１がＣ４遷移ステートについて遷移停止条件を計算する。遷移停止条件が成立しない場合はブロック４１３に移行する。式１の遷移停止条件は、Ｃｎステートにおいては出力電圧Ｖｎの２乗で充電損失が変化し、出力電圧Ｖｎと出力電流Ｉｎの積でプロセッサ１０の消費電力が変化する。
【００６１】
したがって遷移周波数に変化がない場合において、Ｃ６遷移ステートでは遷移停止条件が成立しても、Ｃ４遷移ステートでは遷移停止条件が成立しないこともある。その場合は、プロセッサ１０がＣ０ステートを維持して動作するよりもＣ４遷移ステートで動作するほうが充電損失とプロセッサ１０の消費電力の合計は少なくなる。ブロック４１３では、ＥＣ２１のタイマが、Ｃ６ステートがディスエーブルになってからまたはＣ４遷移ステートに移行してからの動作時間が所定時間を越えた場合にはブロック４１５に移行する。ブロック４１５では、現在のシステムの状態が遷移周波数およびＣ０ステートでのプロセッサの消費電力またはいずれか一方が変化して、より消費電力の低減が可能なＣ６遷移ステートでの遷移停止条件が成立していることも考えられるのでＥＣ２１はＢＩＯＳ１９のＣ６ステートをイネーブルに設定する。
【００６２】
ＢＩＯＳ１９のＣ６ステートがイネーブルに設定されると、ブロック４０３に移行してプロセッサ１０は負荷状態に応じてＣ６遷移ステートで動作するようになる。そして、ブロック４０５で遷移停止条件が成立していない場合はＣ６遷移ステートでの動作を継続する。ブロック４１３で所定時間が経過していない場合は、ブロック４０９に戻ってプロセッサ１０は、Ｃ４遷移ステートでの動作を継続する。ブロック４１１で遷移停止条件が成立する場合はブロック４１７でＥＣ２１は、ＢＩＯＳ１９に有効なスリーピング・ステートとして設定されているＣ４ステートをディスエーブルに設定する。その結果、ＯＳ１５は最も深度の深いパワー・ステートがＣ３ステートであると判断して、ブロック４１９で負荷状態に応じてプロセッサ１０をＣ３遷移ステートで動作させる。ブロック４２１では、演算回路１１１がＣ３遷移ステートについて遷移停止条件を計算する。
【００６３】
ブロック４２１で遷移停止条件が成立する場合は、ブロック４２７でＥＣ２１がＢＩＯＳ１９に有効なスリーピング・ステートとして設定されているＣ３ステートをディスエーブルにしてからブロック４２９に移行し、遷移停止条件が成立しない場合はブロック４２３に移行する。ブロック４２３ではＣ４ステートがディスエーブルになってからまたはＣ３遷移ステートに移行してからの動作時間が所定時間を越えたときに、ブロック４２５に移行してＥＣ２１がＢＩＯＳ１９のＣ４ステートをイネーブルに戻してからブロック４０９に移行する。ブロック４２９では、プロセッサ１０が負荷状態に応じてＣ２遷移ステートで動作する。ブロック４３１では、Ｃ３ステートがディスエーブルになってからまたはＣ２遷移ステートに移行してからの動作時間が所定時間を越えた場合はブロック４２５に移行してＥＣ２１がＢＩＯＳ１９のＣ３ステートをイネーブルに戻してからブロック４１９に戻る。ブロック４３１でＣ３ステートがディスエーブルになってから所定時間が経過するまでは、プロセッサ１０はＣ２遷移ステートで動作する。
【００６４】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【００６５】
１００…ＤＣ／ＤＣコンバータ
１０１…レギュレータＩＣ
３０１…電力制御しない場合のＤＣ／ＤＣコンバータ１００の出力電圧
３０３…タイマ１１３が出力するタイマ信号
３０５…演算回路１１１が出力する遷移停止信号
３０７…ＡＮＤゲート１１５が出力するＤＥ信号
３０１…電力制御した場合のＤＣ／ＤＣコンバータ１００の出力電圧
【図１】
2011145959.tif 000003
【図２】
2011145959.tif 000004
【図３】
2011145959.tif 000005
【図４】
2011145959.tif 000006
【図５】
2011145959.tif 000007
【図６】
2011145959.tif 000008