(57)【要約】【課題】ＤＶＦＳ制御を行うデータ処理装置において、更なる低消費電力化を図る。【解決手段】データ処理装置（１）は、クロック信号（ＣＬＫ）に同期してデータ処理を実行するデータ処理制御部（１０）において所定期間で消費される実電力量（Ｐｒ＿０〜Ｐｒ＿３）と、仮定した周波数（ｆ１〜ｆ３）での前記データ処理制御部による前記所定期間における動作を想定したときの想定電力量（Ｐｆ１＿０〜Ｐｆ１＿３、Ｐｆ２＿０〜Ｐｆ２＿３、Ｐｆ３＿０〜Ｐｆ３＿３）とを演算する。データ処理装置（１）は、演算した実電力量と想定電力量のうち低消費電力となる周波数を考慮して、データ処理に係る負荷の状態に対応するクロック信号の周波数を選択制御する。【選択図】図１
2013012003.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号に同期してデータ処理を実行するとともに、前記データ処理に係る負荷の状態に基づいて前記クロック信号の周波数を選択制御するデータ処理制御部と、
前記データ処理制御部の実動作時に前記データ処理制御部で消費される所定期間の実電力量を演算するとともに、仮定した周波数での前記データ処理制御部による動作を想定した想定動作時の前記所定期間における想定電力量を演算する電力算出部と、を有し、
前記データ処理制御部は、前記実電力量と前記想定電力量のうち低消費電力となる周波数を考慮して、前記負荷の状態に対応するクロック信号の周波数を選択制御する、データ処理装置。
【請求項２】
前記データ処理制御部の動作状態は、データ処理が実行可能なアクティブ状態と、データ処理が実行不能な非アクティブ状態とを含み、
前記非アクティブ状態は、前記データ処理制御部に対するクロック信号の供給が停止している第１低消費電力状態と、前記データ処理制御部に対する前記クロック信号及び電源電圧の供給が停止している第２低消費電力状態とを含み、
前記電力算出部は、前記実動作時と前記想定動作時における前記アクティブ状態の継続時間と、前記第１低消費電力状態の継続時間と、前記第２低消費電力状態の継続時間とを把握し、夫々の前記継続時間と夫々の前記動作状態における単位時間当たりの消費電力量とに基づいて、前記実電力量と前記想定電力量とを算出する、請求項１記載のデータ処理装置。
【請求項３】
前記電力算出部は、前記所定期間の前記実電力量及び前記想定電力量の演算が完了する毎に、前記演算が完了したことを前記データ処理制御部に対して通知する、請求項１記載のデータ処理装置。
【請求項４】
前記電力算出部は、一定期間毎又は前記データ処理制御部の前記動作状態の変化毎に前記データ処理制御部で消費される実電力量を算出し、算出した前記実電力量を所定回数分だけ累積することで前記所定期間での前記実電力量を算出するとともに、
前記実電力量に係る演算毎に前記想定電力量を算出し、算出した前記想定電力量を前記所定回数分だけ累積することで前記所定期間での前記仮想電力量を算出する、請求項２記載のデータ処理装置。
【請求項５】
前記所定回数のうち１回分の実電力量は、前記データ処理制御部の前記動作状態における単位時間あたりの消費電力量と、その１回分における前記データ処理制御部の動作状態の継続時間を示す第１継続時間と、を乗算することで算出される、請求項４記載のデータ処理装置。
【請求項６】
前記所定回数のうち１回分の想定電力量は、前記仮定した周波数での前記データ処理制御部の前記動作状態における単位時間あたりの消費電力量と、その１回分における前記想定動作時の前記動作状態の継続時間を示す第２継続時間と、を乗算することで算出される、請求項５記載のデータ処理装置。
【請求項７】
前記電力算出部は、前記想定動作時の動作状態が前記アクティブ状態である場合には、対応する前記実動作時の前記第１継続時間を、前記想定動作時の周波数での前記データ処理制御部のデータ処理能力に応じて換算し、換算した時間を前記第２継続時間とする、請求項６記載のデータ処理装置。
【請求項８】
前記電力換算部は、前記想定動作時の前記データ処理制御部の動作状態が前記アクティブ状態である場合には、算出した前記第２継続時間に対する前記第１継続時間の差分を示す差時間を算出して累積し、前記想定動作時の前記データ処理制御部の動作状態が前記非アクティブ状態である場合には、前記第１継続時間と前記累積した差時間とを加算して算出した時間に基づいて前記第２継続時間を決定する、請求項７記載のデータ処理装置。
【請求項９】
前記電力算出部は、前記想定動作時の前記データ処理制御部の動作状態が前記非アクティブ状態である場合において、前記第２継続時間が所定の閾値より大きいときは、前記想定動作時の前記データ処理制御部の動作状態が前記第２低消費電力状態であると仮定し、前記所定の閾値より小さいときは、前記想定動作時の前記データ処理制御部の動作状態が前記第１低消費電力状態であると仮定して、前記想定電力を算出する、請求項８記載のデータ処理装置。
【請求項１０】
前記電力算出部は、前記算出した前記所定期間毎の前記実電力量に基づく第１電力情報と、前記算出した前記所定期間毎の前記想定電力量に基づく第２電力情報と、を格納するための記憶領域を有し、
前記記憶領域は、前記データ処理制御部によってアクセス可能とされる、請求項９記載のデータ処理装置。
【請求項１１】
前記電力算出部は、前記実電力量と前記想定電力量のうち最も小さい電力量を選択し、選択した電力量と前記実電力量との差分を示す電力量を前記所定回数だけ累積加算して前記第１電力情報として前記記憶領域に格納するとともに、前記選択した電力量と前記想定電力量との差分を示す電力量を前記所定回数だけ累積加算して前記第２電力情報として前記記憶領域に格納する、請求項１０記載のデータ処理装置。
【請求項１２】
前記電力算出部は、前記一定期間毎又は前記データ処理制御部の前記動作状態の変化毎に、前記実電力量と前記想定電力量のうち最も小さい電力量を選択し、選択した電力量と前記実電力量との差分を示す第１差分電力量を算出するとともに、前記選択した電力量と前記想定電力量との差分を示す第２差分電力量とを算出し、
前回算出した前記第１差分電力量と今回算出した前記第１差分電力量とを加算して、前記実電力量に係る累積差分電力量を算出するとともに、前回に算出した前記第２差分電力量と今回算出した第２差分電力量を加算して、前記想定電力量に係る累積差分電力量を算出し、
更に前記電力算出部は、前記実電力量に係る累積差分電力量と前記想定電力量に係る累積差分電力量のうち最も小さい電力量を選択し、当該選択した電力量と前記実電力量に係る累積差分電力量との差分を示す電力量を前記第１電力情報として前記記憶領域に格納し、当該選択した電力量と前記想定電力量に係る累積差分電力量との差分を示す電力量を前記第２電力情報として前記記憶領域に格納する、請求項１０記載のデータ処理装置。
【請求項１３】
前記電力算出部は、前記データ処理制御部の前記動作状態に応じた単位時間あたりの電力量が前記仮定することが可能な周波数毎に対応されて格納される第１テーブルと、
前記実電力量に係る周波数での前記データ処理制御部によるデータ処理能力と、前記仮定した周波数での前記データ処理制御部によるデータ処理能力との比を示す情報が前記仮定した周波数毎に格納される第２テーブルと、を更に有し、
前記電力算出部は、前記第１テーブルと前記第２テーブルの値に基づいて、前記実電力量と前記想定電力量の算出を行う、請求項９記載のデータ処理装置。
【請求項１４】
外部からの指示に応じて電源電圧を出力する第１半導体装置と、
前記第１半導体装置からの給電により動作する第２半導体装置と、を有するデータ処理システムであって、
前記第２半導体装置は、クロック信号に同期してデータ処理を実行するとともに前記データ処理に係る負荷の状態に基づいて前記クロック信号の周波数と電源電圧とを選択制御するデータ処理制御部と、
前記データ処理制御部による制御に基づいて前記クロック信号を生成して出力するクロック生成部と、
前記データ処理制御部の実動作時に前記データ処理制御部で消費される所定期間の実電力量を演算するとともに、仮定した周波数での前記データ処理制御部による動作を想定した想定動作時の前記所定期間における想定電力量を演算する電力算出部と、を有し、
前記データ処理制御部は、前記実電力量と前記想定電力量のうち低消費電力となる周波数を考慮して、前記負荷の状態に対応するクロック信号の周波数を選択制御するとともに、前記選択した周波数に応じた電源電圧の供給を前記第１半導体装置に対して指示する、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及びデータ処理システムの消費電力を低減させるための技術に関し、特にクロック信号の周波数や電源電圧を動的に制御する機能を備えるデータ処理装置に適用して有効な技術に関する。
【背景技術】
【０００２】
近年、マイクロプロセッサによるプログラム処理によって制御される組み込み機器の高性能化が進んでいる。これに伴い、マイクロプロセッサの消費電力が増加する傾向にある。このような状況において、マイクロプロセッサの消費電力を低減するための技術の１つである、ＤＶＦＳ（Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  ａｎｄ  Ｆｒｅｑｕｅｎｃｙ  Ｓｃａｌｉｎｇ）制御を適用したマイクロプロセッサが増加しつつある。ＤＶＦＳ制御は、ＣＰＵ等のプロセッサコアの負荷状態に基づいて、プロセッサコアに供給されるクロック信号の周波数と電源電圧とを動的に制御するパワーマネジメント技術である。
【０００３】
従来のＤＶＦＳ制御技術として特許文献１乃至４に、ＣＰＵで実行されるタスクやプロセス毎にＣＰＵの負荷を算出して動作周波数と動作電圧を制御する方法が開示されている。また、上記ＤＶＦＳ制御とは異なるが、特許文献５には、ＣＰＵリソースが割り当てられて仮想的に生成される仮想サーバを有する物理サーバにおいて、前記仮想サーバの負荷の合計量と前記物理サーバ内のＣＰＵリソースの総量とに基づいてＣＰＵの駆動周波数を制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１０７９４４号公報
【特許文献２】特開２００８−５９５５６号公報
【特許文献３】特開２００４−１５２０６８号公報
【特許文献４】特表２００１−５１７３３２号公報
【特許文献５】特開２００９−１７５７８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１乃至５に示されるように、ＤＶＦＳ制御ではＣＰＵ等の負荷に基づいて動作周波数や動作電圧を設定するが、その設定によるＣＰＵ等の電力状態までは監視しない。そのため、ＤＶＦＳ制御によりＣＰＵ等の負荷状態に基づいて動作周波数や動作電圧を設定したとしても、必ずしも電力的に最適な設定（例えば消費電力が最小となる設定）にならない可能性があると、本願発明者は考えた。具体的には、ＣＰＵに対するクロック信号の供給を停止するスリープモードや、クロック信号のみならず電源の供給も停止するスタンバイモード等の動作モードを備えるマイクロプロセッサでは、ＣＰＵの負荷状態に基づいて動作周波数や動作電圧を設定するだけでは、必ずしも電力的に最適な状態にならない場合がある。例えば、マイクロプロセッサが、１つのデータ処理を完了してから次のデータ処理を開始するまでの待機時間が長いときはスタンバイモードに移行し、短いときはスリープモードに移行する制御を行うものとし、スリープモードよりもスタンバイモードの方がＣＰＵの消費電力が小さいものと仮定した場合を考える。このようなマイクロプロセッサにおけるＤＶＦＳ制御では、例えばＣＰＵが動作周波数を下げてデータ処理を実行する低速設定と、動作周波数を上げてデータ処理を実行する高速設定の２つの設定状態が考えられる。前記低速設定の場合、データ処理を実行している間は動作周波数を上げて処理する場合に比べて消費電力は小さくなるが、動作周波数を下げている分データ処理に要する時間が長くなる。これにより、１つのデータ処理が完了してから次のデータ処理を開始するまでの待機時間が短くなるため、その後はスタンバイモードに移行できずにスリープモードに移行する可能性があり、その場合スタンバイモードに比べて待機時の消費電力が大きくなる。一方、前記高速設定の場合、データ処理を実行している間は動作周波数を下げて処理する場合に比べて消費電力は大きくなるが、動作周波数が高い分データ処理に要する時間が短くなる。これにより、データ処理が完了してから次のデータ処理を開始するまでの待機時間が長くなるため、スリープモードではなくスタンバイモードに移行できる可能性があり、その場合、より低消費電力となる可能性がある。
【０００６】
このように、データ処理時の消費電力だけでなく、データ処理後の待機時間まで含めた期間の消費電力を考慮すると、動作周波数を上げてデータ処理を行った方が動作周波数を下げてデータ処理を実行するよりも、前記期間では低消費電力になる可能性がある。したがって、待機時間の長さに応じてスリープモードとスタンバイモードが選択制御され、且つＤＶＦＳ制御が行われるマイクロプロセッサでは、ＣＰＵの負荷状態だけを判断基準として動作周波数を調整しても、データ処理時間や待機時間の長さによっては必ずしも電力的に最適な状態にならない場合があると、本願発明者は考えた。
【０００７】
本発明の目的は、ＤＶＦＳ制御を行うデータ処理装置において、更なる低消費電力化を図ることにある。
【０００８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１０】
すなわち、本データ処理装置は、クロック信号に同期してデータ処理を実行するデータ処理制御部において所定期間で消費される実電力量と、仮定した周波数での前記データ処理制御部による前記所定期間における動作を想定したときの想定電力量とを演算し、前記実電力量と前記想定電力量のうち低消費電力となる周波数を考慮して、前記データ処理に係る負荷の状態に対応する前記クロック信号の周波数を選択制御する。
【発明の効果】
【００１１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１２】
すなわち、本データ処理装置によれば、更なる低消費電力化を図ることができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本実施の形態に係るデータ処理装置を含むデータ処理システムを例示するブロック図である。
【図２】図２は、単位電力量テーブル３０４４の一例を示す説明図である。
【図３】図３は、処理時間比テーブル３０４５の一例を示す説明図である。
【図４】図４は、ＣＰＵ１０の実動作時と想定動作時との対応関係を表す説明図である。
【図５】図５は、ＣＰＵ１０の実動作時と想定動作時との対応関係を表す別の説明図である。
【図６】図６は、ＤＶＦＳ管理モジュール３０による実電力量と想定電力量の算出処理の流れの一例を示すフロー図である。
【図７】図７は、換算時間の算出処理の流れの一例を示すフロー図である。
【図８】図８は、データ処理装置１の動作タイミングの一例を示す説明図である。
【図９】図９は、比較例に係るデータ処理装置の動作タイミングの一例を示す。
【図１０】図１０は、データ処理装置１と比較例に係るデータ処理装置の電力特性を示す説明図である。
【発明を実施するための形態】
【００１４】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１５】
〔１〕（実動作時の電力量と仮定した周波数設定毎の想定電力量を算出してＣＰＵにフィードバックする）
本発明の代表的な実施の形態に係るデータ処理装置（１）は、クロック信号（ＣＬＫ）に同期してデータ処理を実行するとともに、前記データ処理に係る負荷の状態に基づいて前記クロック信号の周波数を選択制御するデータ処理制御部（１０）と、前記データ処理制御部の実動作時に前記データ処理制御部で消費される所定期間（測定回数情報３０４２）の実電力量（Ｐｒ＿０〜Ｐｒ３）を演算するとともに、仮定した周波数（ｆ１〜ｆ３）での前記データ処理制御部による動作を想定した想定動作時の前記所定期間における想定電力量（Ｐｆ１＿０〜Ｐｆ１＿３、Ｐｆ２＿０〜Ｐｆ２＿３、Ｐｆ３＿０〜Ｐｆ３＿３）を演算する電力算出部（３０）と、を有する。前記データ処理制御部は、前記実電力量と前記想定電力量のうち低消費電力となる周波数を考慮して、前記負荷の状態に対応するクロック信号の周波数を選択制御する。
【００１６】
項１のデータ処理装置では、前記所定期間の前記実電力量と前記仮定した周波数での前記想定電力のうち低消費電力となる周波数を判別するから、現状のデータ処理制御部の動作周波数が、前記データ処理制御部にとって電力的に最適な動作周波数であるか否かを判別することができる。これにより、現状のデータ処理制御部の動作周波数が電力的に最適でない場合には、前記データ処理制御部の消費電力をより低減させることができる動作周波数に変更することが可能となる。
【００１７】
〔２〕（ＣＰＵの動作状態毎に継続時間を把握して、動作状態毎に電力算出）
項１のデータ処理装置において、前記データ処理制御部の動作状態は、データ処理が実行可能なアクティブ状態と、データ処理が実行不能な非アクティブ状態とを含み、前記非アクティブ状態は、前記データ処理制御部に対するクロック信号の供給が停止している第１低消費電力状態（スリープ状態）と、前記データ処理制御部に対する前記クロック信号及び電源電圧の供給が停止している第２低消費電力状態（スタンバイ状態）とを含む。前記電力算出部は、前記実動作時と前記想定動作時における前記アクティブ状態の継続時間と、前記第１低消費電力状態の継続時間と、前記第２低消費電力状態の継続時間とを把握し、夫々の前記継続時間と夫々の前記動作状態における単位時間当たりの消費電力量とに基づいて、前記実電力量と前記想定電力量とを算出する。
【００１８】
項２のデータ処理装置では、前記所定期間の上記３つの動作状態を区別し、夫々の動作状態の前記継続時間を考慮して電力量の算出を行うから、前記所定期間の前記実電力量と前記想定電力量を、より精度良く算出することができる。
【００１９】
〔３〕（演算完了毎に通知）
項１又は２のデータ処理装置において、前記電力算出部は、前記所定期間の前記実電力量及び前記想定電力量の演算が完了する毎に、前記演算が完了したことを前記データ処理制御部に対して通知する。
【００２０】
これによれば、現状の前記データ処理制御部の動作周波数が電力的に最適な周波数であるか否かを、前記所定期間毎に判別することができる。
【００２１】
〔４〕（一定期間毎又はＣＰＵの動作状態の変化毎に電力量を算出）
項２又は３のデータ処理装置において、前記電力算出部は、一定期間（測定時間情報３０４１に設定されたタイマの上限値）毎又は前記データ処理制御部の前記動作状態の変化毎に前記データ処理制御部で消費される実電力量を算出し、算出した前記実電力量を所定回数分だけ累積することで前記所定期間での前記実電力量を算出する。また、前記電力算出部は、前記実電力量に係る演算毎に前記想定電力量を算出し、算出した前記想定電力量を前記所定回数分だけ累積することで前記所定期間での前記仮想電力量を算出する。
【００２２】
これによれば、前記所定期間における前記動作状態を考慮した電力量の算出を容易に行うことができる。また、前記データ処理制御部の前記動作状態が変化しない場合であっても、前記一定期間毎に電力量の算出を行うことができるから、電力量の算出回数が前記所定回数に到達しないことで前記所定期間における電力量の算出が行われなくなることを防止することができる。
【００２３】
〔５〕（１回分の実測電力量の算出方法）
項４のデータ処理装置において、前記所定回数のうち１回分の実電力量は、前記データ処理制御部の前記動作状態における単位時間あたりの消費電力量（ＰＡ１〜ＰＡ３、ＰＳ１〜ＰＳ３、ＰＢ１〜ＰＢ３）と、その１回分における前記実動作時の前記動作状態の継続時間を示す第１継続時間（Ｔｃ）と、を乗算することで算出される。
【００２４】
これによれば、前記データ処理制御部の前記実動作時における前記動作状態毎の前記実電力量を容易に算出することができる。
【００２５】
〔６〕（１回分の想定電力量の算出方法）
項５のデータ処理装置において、前記所定回数のうち１回分の想定電力量は、前記仮定した周波数での前記データ処理制御部の前記動作状態における単位時間あたりの消費電力量（ＰＡ１〜ＰＡ３、ＰＳ１〜ＰＳ３、ＰＢ１〜ＰＢ３）と、その１回分における前記想定動作時の前記動作状態の継続時間を示す第２継続時間（Ｔｖ）と、を乗算することで算出される。
【００２６】
これによれば、前記データ処理制御部の前記想定動作時における動作状態毎の前記想定電力量を容易に算出することができる。
【００２７】
〔７〕（換算時間Ｔｖの算出（アクティブ時））
項６のデータ処理装置において、前記電力算出部は、前記想定動作時の動作状態が前記アクティブ状態である場合には、対応する前記実動作時の前記第１継続時間を、前記想定動作時の周波数での前記データ処理制御部のデータ処理能力（ｒ１１〜ｒ１３、ｒ２１〜ｒ２３、ｒ３１〜ｒ３３）に応じて換算し、換算した時間を前記第２継続時間とする。
【００２８】
前述したように、クロック信号の周波数を高くしてデータ処理を実行すればデータ処理に要する時間は短くなるが、逆に周波数を低くしてデータ処理を実行すればデータ処理に要する時間は長くなる。すなわち、周波数が高ければデータ処理能力が高く、周波数が低ければデータ処理能力が低いともいえる。そこで、項７のデータ処理装置では、現状のデータ処理制御部でのアクティブ状態の継続時間を基準とし、その継続時間を前記仮定した周波数での前記データ処理制御部のデータ処理能力に応じて換算することで、前記第２継続時間を算出する。これによれば、前記仮定した周波数に応じたデータ処理時間を容易に算出することができる。
【００２９】
〔８〕（換算時間Ｔｖの算出（非アクティブ時））
項７のデータ処理装置において、前記電力換算部は、前記想定動作時の前記データ処理制御部の動作状態が前記アクティブ状態である場合には、算出した前記第２継続時間に対する前記第１継続時間の差分を示す差時間（ΔＴ）を算出して累積し（Ｔ０）、前記想定動作時の前記データ処理制御部の動作状態が前記非アクティブ状態である場合には、前記第１継続時間と前記累積した差時間とを加算して算出した時間に基づいて前記第２継続時間を決定する。
【００３０】
前述したように、前記データ処理制御部の動作状態がアクティブ状態から非アクティブ状態に移行する場合、アクティブ状態での継続時間の長さによって、その後の非アクティブ状態での継続時間が変化する。そこで、項８のデータ処理装置によれば、前記データ処理制御部の動作状態がアクティブ状態である場合には前記差時間を累積しておき、その後、前記データ処理制御部の動作状態が非アクティブ状態となったら、累積した前記差時間を用いて非アクティブ状態での前記第２継続時間を決定する。これにより、前記想定動作時における非アクティブ状態の継続時間を、より精度良く算出することができる。
【００３１】
〔９〕（換算時間Ｔｖに応じたスリープ状態とスタンバイ状態との切り替え）
項８のデータ処理装置における前記電力算出部は、前記想定動作時の前記データ処理制御部の動作状態が前記非アクティブ状態である場合において、前記第２継続時間が所定の閾値（Ｔｔｈ）より大きいときは、前記想定動作時の前記データ処理制御部の動作状態が前記第２低消費電力状態であると仮定し、前記所定の閾値より小さいときは、前記想定動作時の前記データ処理制御部の動作状態が前記第１低消費電力状態であると仮定して、前記想定電力を算出する。
【００３２】
これによれば、前記想定動作時における前記第１低消費電力状態と前記第２低消費電力状態とを自ら判別するから、前記想定動作時における非アクティブ状態での前記想定電力量をより精度良く算出することができる。
【００３３】
〔１０〕（算出した電力量を格納する記憶領域）
項４乃至９のいずれかのデータ処理装置において、前記電力算出部は、前記算出した前記所定期間毎の前記実電力量に基づく第１電力情報（３０６５）と、前記算出した前記所定期間毎の前記想定電力量に基づく第２電力情報（３０６６〜３０６８）と、を格納するための記憶領域（３０６２）を有する。前記記憶領域は、前記データ処理制御部によってアクセス可能とされる。
【００３４】
〔１１〕（累積差分電力量の情報を格納）
項１０のデータ処理装置において、前記電力算出部は、前記実電力量と前記想定電力量のうち最も小さい電力量を選択し、選択した電力量と前記実電力量との差分を示す電力量を前記所定回数だけ累積加算した情報を前記第１電力情報として前記記憶領域に格納するとともに、前記選択した電力量と前記想定電力量との差分を示す電力量を前記所定回数だけ累積加算して前記第２電力情報として前記記憶領域に格納する。
【００３５】
これによれば、例えば算出した前記所定期間毎の前記実電力量と前記想定電力量を前記記憶領域に格納する場合に比べて、格納するデータ量を小さくすることができる。これにより、前記記憶領域の容量を小さくすることができるから、例えば半導体基板上に前記データ処理装置を形成する場合には、前記半導体基板の小面積化に資する。
【００３６】
〔１２〕（累積差分電力量の差分の情報を格納）
項１０のデータ処理装置において、前記電力算出部は、前記一定期間毎又は前記データ処理制御部の前記動作状態の変化毎に、前記実電力量と前記想定電力量のうち最も小さい電力量を選択し、選択した電力量と前記実電力量との差分を示す第１差分電力量（３０５３）を算出するとともに、前記選択した電力量と前記想定電力量との差分を示す第２差分電力量（３０５４〜３０５６）とを算出する。また、前記電力算出部は、前回算出した前記第１差分電力量と今回算出した前記第１差分電力量とを加算して、前記実電力量に係る累積差分電力量を算出するとともに、前回に算出した前記第２差分電力量と今回算出した第２差分電力量を加算して、前記想定電力量に係る累積差分電力量を算出する。更に前記電力算出部は、前記実電力量に係る累積差分電力量と前記想定電力量に係る累積差分電力量のうち最も小さい電力量を選択し、当該選択した電力量と前記実電力量に係る累積差分電力量との差分を示す電力量を前記第１電力情報（３０６５）として前記記憶領域に格納し、当該選択した電力量と前記想定電力量に係る累積差分電力量との差分を示す電力量を前記第２電力情報（３０６６〜３０６８）として前記記憶領域に格納する。
【００３７】
これによれば、前記第１電力情報及び前記第２電力情報を、前記累積加算した差分の電力量に対して更に差分をとった電力量の情報とすることで、更にデータ量を小さくすることができる。これにより、前記記憶領域の容量を更に小さくすることができる。
【００３８】
〔１３〕（テーブルを用いて電力算出）
項９乃至１２のいずれかのデータ処理装置において、前記電力算出部は、前記データ処理制御部の前記動作状態に応じた単位時間あたりの電力量（ＰＡ１〜ＰＡ３、ＰＳ１〜ＰＳ３、ＰＢ１〜ＰＢ３）が前記仮定することが可能な周波数毎に対応されて格納される第１テーブル（３０４４）と、前記実電力量に係る周波数での前記データ処理制御部によるデータ処理能力と、前記仮定した周波数での前記データ処理制御部によるデータ処理能力との比を示す情報（ｒ１１〜ｒ１３、ｒ２１〜ｒ２３、ｒ３１〜ｒ３３）が前記仮定した周波数毎に格納される第２テーブル（３０４５）と、を更に有する。前記電力算出部は、前記第１テーブルと前記第２テーブルの値に基づいて、前記実電力量と前記想定電力量の算出を行う。
【００３９】
これによれば、例えば前記データ処理制御部に流れる電流や供給される電圧等を実際に測定することなく、容易に前記実電力量を算出することができる。
【００４０】
〔１４〕（システム）
本発明の代表的な実施の形態に係るデータ処理システム（１００）は、外部からの指示に応じて電源電圧を出力する第１半導体装置（２）と、前記第１半導体装置からの給電により動作する第２半導体装置（１）と、を有するデータ処理システムである。前記データ処理システムにおいて、前記第２半導体装置は、クロック信号（ＣＬＫ）に同期してデータ処理を実行するとともに前記データ処理に係る負荷の状態に基づいて前記クロック信号の周波数と電源電圧とを選択制御するデータ処理制御部（１０）と、前記データ処理制御部による制御に基づいて前記クロック信号を生成して出力するクロック生成部（２０）と、前記データ処理制御部の実動作時に前記データ処理制御部で消費される所定期間の実電力量（Ｐｒ＿０〜Ｐｒ＿３）を演算するとともに、仮定した周波数での前記データ処理制御部による動作を想定した想定動作時の前記所定期間における想定電力量（Ｐｆ１＿０〜Ｐｆ１＿３、Ｐｆ２＿０〜Ｐｆ２＿３、Ｐｆ３＿０〜Ｐｆ３＿３）を演算する電力算出部（６０）と、を有する。前記データ処理制御部は、前記実電力量と前記想定電力量のうち低消費電力となる周波数を考慮して、前記負荷の状態に対応するクロック信号の周波数を選択制御するとともに、前記選択した周波数に応じた電源電圧の供給を前記第１半導体装置に対して指示する。
【００４１】
前記データ処理システムによれば、項１と同様に、前記データ処理制御部における現状の動作周波数が、前記データ処理制御部にとって電力的に最適な動作周波数であるか否かを判別することができる。これにより、前記データ処理制御部における動作周波数が最適でない場合には、前記データ処理制御部の消費電力をより低減させることができる動作周波数に変更することが可能となる。
【００４２】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００４３】
≪データ処理システムの構成≫
図１に本実施の形態に係るデータ処理装置を含むデータ処理システムを例示する。同図に示されるデータ処理システム１００において、データ処理装置１は、特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によってＣＰＵや周辺回路モジュール等の複数の回路モジュールを１個の単結晶シリコンのような半導体基板に形成したシステムＬＳＩ（ＳＯＣ：Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）である。
【００４４】
データ処理装置１は、外部電源端子を介して電源ＩＣ２から電源電圧ＶＤＤの供給を受ける。電源ＩＣ２は、例えば入力された電圧ＶＩＮに基づいて電源電圧を生成し、生成した電源電圧をデータ処理装置１、外部メモリ（ＭＲＹ）３、及び水晶発振器（ＴＣＸＯ）４に供給する電源生成回路である。データ処理装置１は、制御信号１１により所望の電源電圧ＶＤＤの供給を電源ＩＣ２に対して指示し、電源ＩＣ２はその指示に応じて電圧を生成して出力する。これにより、データ処理装置１から指示された電圧値の電源電圧ＶＤＤがデータ処理装置１に供給される。外部メモリ３は、例えばＳＤＲＡＭ等の揮発性の記憶領域を有する外部記憶装置やフラッシュメモリ等の不揮発性の記憶領域を有する外部記憶装置である。
【００４５】
データ処理装置１は、特に制限されないが、中央処理装置（ＣＰＵ）１０、クロック信号生成部（ＣＰＧ）２０、ＤＶＦＳ管理モジュール３０、及び図示されないその他の周辺回路モジュール等から構成される。
【００４６】
クロック信号生成部２０は、水晶発振器４から出力される基準クロック信号に基づいてクロック信号を生成し、生成したクロック信号をＣＰＵ１０やその他の周辺回路モジュールに供給する。クロック信号生成部２０は、例えばＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路や分周器等から構成され、複数種類の周波数のクロック信号が生成可能とされる。図１には、生成したクロック信号のうちクロック信号ＣＬＫをＣＰＵ１０に供給する場合が代表的に例示されている。クロック信号生成部２０は、ＣＰＵ１０からの制御信号１２により、所望の周波数のクロック信号ＣＬＫの供給が指示されると、その指示に応じた周波数のクロック信号ＣＬＫを生成してＣＰＵ１０に対して出力する。また、クロック信号生成部２０は、ＣＰＵ１０に供給しているクロック信号ＣＬＫの周波数を示すクロック状態信号ＶｓｃをＤＶＦＳ管理モジュール３０に対して出力する。
【００４７】
ＣＰＵ１０は、図示されないＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や外部メモリ３等の記憶装置に格納されたソフトウェアに基づいて、プログラム処理を実行することで各種のデータ処理を行う。
【００４８】
ＣＰＵ１０の動作状態としては、例えば、アクティブ状態と非アクティブ状態とが有り、前記非アクティブ状態にはスリープ状態とスタンバイ状態が含まれる。前記アクティブ状態は、データ処理が実行可能な状態であり、例えば、ＣＰＵ１０に対してクロック信号ＣＬＫと電源電圧ＶＤＤが共に供給されている状態である。一方、非アクティブ状態は、データ処理が実行不能な状態である。また、スリープ状態は、例えばＣＰＵ１０に対するクロック信号ＣＬＫの供給が停止している状態であり、スタンバイ状態は、例えばＣＰＵ１０に対するクロック信号ＣＬＫ及び電源電圧ＶＤＤの供給が停止している状態である。例えば、電源電圧ＶＤＤの供給が停止しているとは、電源ＩＣ２からの電源電圧ＶＤＤの供給が停止される場合や、図示されない電源スイッチによって、チップ内部で電源電圧ＶＤＤの供給が停止される場合などである。前記スタンバイ状態は、上記のようにクロック信号ＣＬＫのみならず電源電圧ＶＤＤの供給も停止されるため、前記スリープ状態よりも低消費電力となるが、前記スリープ状態に比べてＣＰＵ１０の復帰に時間を要する。
【００４９】
ＣＰＵ１０のアクティブ状態から非アクティブ状態（スリープ状態又はスタンバイ状態）へ移行は以下の制御によって実現される。例えば、ＣＰＵ１０は、１つのデータ処理が完了してから次のデータ処理を開始するまでの待機時間を算出し、前記待機時間が長いときはアクティブ状態からスタンバイ状態に移行する。逆に前記待機時間が短いときはアクティブ状態からスリープ状態に移行する。スタンバイ状態に移行するかスリープ状態に移行するかは、例えば、算出した待機時間を所定の閾値Ｔｔｈと比較することによって判断される。例えば、算出した待機時間が閾値Ｔｔｈ以上のときは、ＣＰＵ１０はスタンバイ状態に移行し、閾値Ｔｔｈよりも小さいときは、ＣＰＵ１０はスリープ状態に移行する。ＣＰＵ１０の動作状態は、ＣＰＵ１０から出力されるスタンバイ状態信号Ｖｓｂ及びスリープ状態信号Ｖｓｐによって、ＤＶＦＳ管理モジュール３０等の周辺回路モジュールに通知される。例えば、ＣＰＵ１０がスタンバイ状態である場合にはスタンバイ状態信号Ｖｓｂがアサートされ、ＣＰＵ１０がスリープ状態である場合にはスリープ状態信号Ｖｓｐがアサートされる。スタンバイ状態信号Ｖｓｂ及びスリープ状態信号Ｖｓｐが共にネゲートされているときは、ＣＰＵ１０はアクティブ状態である。
【００５０】
ＣＰＵ１０は、前記待機時間に応じて動作状態を切り替える制御に加え、実行するデータ処理に係る負荷の状態を監視し、負荷状態に応じてＣＰＵ１０の動作電圧と動作周波数を調整するＤＶＦＳ制御を行う。具体的には、ＣＰＵ１０は、実行するタスクやプロセス等の待ち行列等からデータ処理に係る負荷の状態を把握する。前記負荷の状態が、例えば低負荷状態から高負荷状態に変化した場合には、クロック信号生成部２０に対してクロック信号の周波数を上げるように指示するとともに、電源ＩＣ２に対して変更後の周波数に応じた電源電圧（より高い電源電圧）を供給するように指示する。一方、例えば負荷状態が高負荷状態から低負荷状態に変化した場合には、ＣＰＵ１０は、クロック信号生成部２０に対してクロック信号の周波数を下げるように指示するとともに、電源ＩＣ２に対して変更後の周波数に応じた電源電圧（より低い電源電圧）を供給するように指示する。
【００５１】
前述したようにＣＰＵ１０の負荷状態だけを判断基準として動作周波数を調整しても、データ処理時間や待機時間の長さによっては、必ずしも電力的に最適な状態にならない可能性がある。そこで、本実施の形態に係るデータ処理装置１では、ＤＶＦＳ管理モジュール３０がＣＰＵ１０の実動作時の実電力量と、仮定した動作周波数でのＣＰＵ１０の動作を想定した想定動作時の想定電力量とを算出し、算出した実電力量と想定電力量とに基づいて、現状のＣＰＵ１０の動作周波数の設定が電力的に最適であるか否かを判断する。例えば、ＣＰＵ１０は、現状の周波数設定よりも他の周波数設定の方がより低消費電力になると判断したら、データ処理に係る負荷状態を考慮して、動作周波数の設定を変更する。
【００５２】
≪ＤＶＦＳ管理モジュールの概要≫
ＤＶＦＳ管理モジュール３０は、ＣＰＵ１０の実動作時にＣＰＵ１０で消費される所定期間の実電力量を算出するとともに、仮定した動作周波数でのＣＰＵ１０による動作を想定した想定動作時の前記所定期間における想定電力量を算出する。ＤＶＦＳ管理モジュール３０は、例えば、検出部３０１、モニタ部３０２、演算部３０３、基礎データ部３０４、電力差分生成部３０５、及び累計部３０６を備える。
【００５３】
検出部３０１は、スリープ状態信号Ｖｓｐ、スタンバイ状態信号Ｖｓｂ、及びクロック状態信号Ｖｓｃに基づいてＣＰＵ１０の動作状態（アクティブ状態、スリープ状態、及びスタンバイ状態）と動作周波数を検出し、検出結果を出力する。例えば、検出部３０１は、スリープ状態変化検出部３０１１と、スタンバイ状態変化検出部３０１２と、クロック信号変化検出部３０１３とを備える。クロック信号変化検出部３０１３は、クロック状態信号Ｖｓｃを監視し、クロック信号ＣＬＫの周波数の設定を示す信号を出力する。スリープ状態変化検出部３０１１は、スリープ状態信号Ｖｓｐを監視し、ＣＰＵ１０がスリープ状態であるか否かを示す信号を出力するとともに、スリープ状態信号Ｖｓｐの変化に応じた信号を出力する。スタンバイ状態変化検出部３０１２は、スタンバイ状態信号Ｖｓｂを監視し、ＣＰＵ１０がスタンバイ状態であるか否かを示す信号を出力するとともに、スタンバイ状態信号Ｖｓｂの変化に応じた信号を出力する。以下、前記スリープ状態信号Ｖｓｐの変化に応じた信号とスタンバイ状態信号Ｖｓｂの変化に応じた信号とを総称して変化検出信号１３とも称する。変化検出信号１３は、例えばスリープ状態信号Ｖｓｐ及びスタンバイ状態信号Ｖｓｂが変化する毎に信号レベルがハイレベルとローレベルの間で切り替わる信号である。
【００５４】
モニタ部３０２は、検出部３０１から出力された信号に基づいて、現在のＣＰＵ１０の状態を示すデータ（以下、「要素プロファイル」とも称する。）を生成し、変化検出信号１３が変化する毎（ＣＰＵ１０の動作状態が変化する毎）又は所定期間が経過する毎に、生成した要素プロファイルを演算部３０３に出力する。
【００５５】
前記要素プロファイルは、例えば、ＣＰＵステータス情報３０２１と、ＤＶＦＳステータス情報３０２２と、継続時間情報３０２３とを含む。
【００５６】
ＣＰＵステータス情報３０２１は、ＣＰＵ１０の動作状態を示す情報であり、例えば前記アクティブ状態、前記スリープ状態、及び前記スタンバイ状態のいずれかを示す情報である。
【００５７】
ＤＶＦＳステータス情報３０２２は、ＣＰＵ１０の周波数設定を示す情報である。例えばＤＶＦＳ制御によって設定可能なＣＰＵ１０の動作周波数として、第１周波数（ｆ１）、第２周波数（ｆ２）、及び第３周波数（ｆ３）の３つの周波数設定がある場合、３つのうち何れかの周波数設定を示す情報である。
【００５８】
継続時間情報３０２３は、変化検出信号１３が変化してから次に変化するまでの時間、又は前記所定期間を示す時間（以下、継続時間Ｔｃ、と称する）を示す情報である。具体的には、前記継続時間３０２３は、前記モニタ部３０２が内部に設けられたタイマを用いて前記変化検出信号１３の変化をトリガとして計時を行うことにより計測される時間である。例えば、モニタ部３０２は、変化検出信号１３が変化してから次に変化するまでの時間を前記タイマでカウントさせ、計測したカウント値を継続時間Ｔｃとする。また、前記モニタ部３０２は、前記タイマにカウントを開始させてから次の前記変化検出信号１３の変化が起こる前に前記所定期間が経過した場合には、その所定期間を示すカウント値を継続時間Ｔｃとする。前記所定期間は、例えば、後述する基礎データ部３０４の測定時間情報３０４１に設定されたタイマの上限値である。前記タイマは、前記モニタ部３０２が前記要素プロファイル（ＣＰＵステータス情報３０２１、ＤＶＦＳステータス情報３０２２、継続時間情報３０２３）を出力する毎にカウント値がリセットされる。これにより、前記タイマは、変化検出信号１３が変化する毎又は前記所定期間が経過する毎に、計時を繰り返す。
【００５９】
モニタ部３０２の具体的な動作について説明する。例えば、ＣＰＵ１０の動作周波数が第１周波数（ｆ１）であるとき、ＣＰＵ１０の動作状態がアクティブ状態からスタンバイ状態に切り替わると、ＣＰＵステータス情報３０２１にはスタンバイ状態を示す情報が書き込まれ、ＤＶＦＳステータス情報３０２２には第１周波数（ｆ１）を示す情報が書き込まれる。また、前記動作状態の切り替わりをトリガとして、前記タイマが計時を開始する。その後、ＣＰＵ１０の動作状態がアクティブ状態に切り替わると、モニタ部３０３はそのときの前記タイマのカウント値を継続時間Ｔｃとして継続時間情報３０２３に書き込むとともに、ＣＰＵステータス情報３０２１、ＤＶＦＳステータス情報３０２２、及び継続時間情報３０２３を含む要素プロファイルを演算部３０３に出力する。その後、モニタ部３０３は、前記タイマをリセットするとともに計時を再開させ、ＣＰＵステータス情報３０２１にはアクティブ状態を示す情報を書き込む。また、前記タイマが計時を開始した後ＣＰＵ１０の動作状態が変化する前に前記所定時間が経過したら、モニタ部３０３は前記タイマのカウント値（又は、測定時間情報３０４１に設定されたタイマの上限値）を継続時間Ｔｃとして継続時間情報３０２３に書き込むとともに、ＣＰＵステータス情報３０２１、ＤＶＦＳステータス情報３０２２、及び継続時間情報３０２３を含む要素プロファイルを演算部３０３に出力する。その後、モニタ部３０３は、前記タイマをリセットするとともに計時を再開させる。以上の処理により、ＣＰＵ１０の動作状態が変化する毎又は所定期間が経過する毎に前記要素プロファイルが生成され、演算部３０３に出力される。
【００６０】
演算部３０３は、ＣＰＵ１０で消費される実電力量と、前記想定動作時の想定電力量とを算出するための演算を行う。前記演算は、例えばＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等によるプログラム処理によって実現される。演算部３０３は、モニタ部３０２から前記要素プロファイルが与えられる毎に前記実電力量と前記想定電力量とを算出する。具体的には、演算部３０３は、前記要素プロファイルが与えられると、前記要素プロファイルに応じた動作状態及び周波数設定でのＣＰＵ１０の消費電力を実電力量３０３１として算出するとともに、設定可能なクロック信号ＣＬＫの周波数（動作周波数）毎に想定電力量を算出し、電力差分生成部３０５に出力する。例えば、ＣＰＵ１０の動作周波数の設定として、第１周波数（ｆ１）、第２周波数（ｆ２）、及び第３周波数（ｆ３）の３つの周波数設定が可能な場合には、第１周波数設定時の想定電力量３０３２、第２周波数設定時の想定電力量３０３３、第３周波数設定時の想定電力量３０３４を夫々算出する。前記実電力量及び前記想定電力量の詳細な算出方法については後述する。
【００６１】
基礎データ部３０４には、ＤＶＦＳ管理モジュール３０による電力量の算出を行う上で基準となる初期設定データが格納される。例えば、前記初期設定データは製造時等にデータ処理装置１内のＲＯＭに格納される。例えば、データ処理装置１に電源が投入され、リセット状態が解除されると、ＣＰＵ１０が前記ＲＯＭから前記初期設定データを読み出し、基礎データ部３０４に設定する。基礎データ部３０４は、例えば複数のレジスタから構成されるレジスタ群である。基礎データ部３０４には、初期設定データとして、例えば、測定時間情報３０４１、閾値情報３０４３、測定回数情報３０４２、単位電力量テーブル３０４４、及び処理時間比テーブル３０４５が格納される。
【００６２】
測定時間情報３０４１は、前述したように、前記モニタ部３０３の前記タイマの上限値を定める情報である。閾値情報３０４３は、前述した閾値Ｔｔｈの値を示す情報である。
【００６３】
測定回数情報３０４２は、ＤＶＦＳ管理モジュール３０がＤＶＦＳ制御によるＣＰＵ１０の電力状態をＣＰＵ１０にフィードバックする頻度を決定する情報である。具体的には、ＤＶＦＳ管理モジュール３０は、測定回数情報３０４２に設定された測定回数分の電力量の算出と累計が完了したら、ＣＰＵ１０に対して電力算出の完了を通知する。したがって、測定回数情報３０４２に設定される測定回数の値が小さいほどＣＰＵ１０にフィードバックする頻度が上がる。
【００６４】
単位電力量テーブル３０４４は、ＤＶＦＳ制御によるＣＰＵ１０の周波数設定毎の単位時間あたりの消費電力量がＣＰＵ１０の動作状態毎に格納されたルックアップテーブルである。当該デーブルの詳細は後述する。
【００６５】
処理時間比テーブル３０４５は、実動作時の動作周波数でのＣＰＵ１０のデータ処理能力と、想定動作時の動作周波数でのＣＰＵ１０のデータ処理能力との比に応じた処理時間比の値が格納されるルックアップテーブルである。当該テーブルの詳細は後述する。
【００６６】
電力差分生成部３０５は、与えられた複数の電力量のデータのうち最も小さい電力量を検出し、検出した電力量と前記複数の電力量との差分を表す差分電力量を、実動作時及び想定動作時の周波数設定毎に生成し、累計部３０６に出力する。具体的には、電力差分生成部３０５は、比較部３０５１と差分算出部３０５２とを有する。例えば、比較部３０５１は、演算部３０３から与えられた実電力量３０３１及び想定電力量３０３２〜３０３４のうち最も小さい電力量（最小電力量）を検出する。差分算出部３０５２は、前記最小電力量と実電力量３０３１との差分を表す実動作時の差分電力量３０５３と、前記最小電力量と想定電力量３０３２との差分を表す想定動作時（ｆ１）の差分電力量３０５４と、前記最小電力量と想定電力量３０３３との差分を表す想定動作時（ｆ２）の差分電力量３０５５と、前記最小電力量と想定電力量３０３４との差分を表す想定動作時（ｆ３）の差分電力量３０５６と、を生成する。差分電力量３０５３〜３０５６を生成する処理は、演算部３０３から実電力量及び想定電力量が出力される毎（ＣＰＵ１０の動作状態が変化する毎又は所定期間が経過する毎）に行われる。
【００６７】
更に、前記電力差分生成部３０５は、ＣＰＵ１０の動作状態が変化する毎又は所定期間が経過する毎に生成された差分電力量３０５３〜３０５６を累積加算することにより、実動作時の累積差分電力量の差分の情報３０６５と、想定動作時の累積差分電力量の差分の情報３０６６〜３０６８を生成し、累計部３０６に出力する。なお、累積差分電力量の差分の情報３０６５〜３０６８の詳細な生成方法については後述する。
【００６８】
累計部３０６は、累計電力格納部３０６２、通知部３０６３、及びカウンタ３０６４を有する。累計電力格納部３０６２は、累積差分電力量の差分の情報３０６５〜３０６８を実動作時及び想定動作時の周波数設定毎に格納するための記憶領域を有する。
【００６９】
カウンタ３０６４は、差分電力量３０５３〜３０５６を累積加算した回数をカウントし、カウント値を通知部３０６３に与える。前記通知部３０６３は、カウンタ３０６４のカウント値が基礎データ部３０４に測定回数情報３０４２として設定された回数の値と一致したら、ＣＰＵ１０に対して電力量の算出が完了したことを通知する。通知を受けたＣＰＵ１０は、累計電力格納部３０６２にアクセスして算出された実電力量と想定電力量とを参照し、より低消費電力となる周波数設定を判別することで、現状のＣＰＵ１０の動作周波数の設定が電力的に最適であるか否かを判断する。
【００７０】
≪電力量の算出≫
前記実電力量と前記想定電力量の算出方法について詳細に説明する。
【００７１】
（１）実電力量の算出方法
前記実電力量は、ＣＰＵ１０の実動作時の動作状態における単位時間あたりの消費電力量と、その動作状態の継続時間Ｔｃとを乗算することにより算出される。演算部３０３は、先ず、モニタ部３０２から前記要素プロファイルを受け取ると、基礎データ部３０４にアクセスし、単位電力量テーブル３０４４を参照してＣＰＵステータス情報３０２１及びＤＶＦＳステータス情報３０２２に対応する単位時間あたりの消費電力量を読み出す。
【００７２】
図２は、単位電力量テーブル３０４４の一例を示す説明図である。同図に示されるように、単位電力量テーブル３０４４は、ＤＶＦＳ制御によって設定可能なＣＰＵ１０の周波数毎の単位時間あたりの消費電力量がＣＰＵ１０の動作状態毎に格納される。同図には、一例として、３つの周波数設定（ｆ１〜ｆ３）における３つの動作状態（アクティブ状態、スリープ状態、及びスタンバイ状態）毎の単位時間あたりの消費電力が示されている。例えば、図２に示されるように、実動作時のＣＰＵ１０の動作状態がアクティブ状態であり、且つ動作周波数が第１周波数である場合には、演算部３０３はパラメータＰＡ１を読み出す。また、実動作時のＣＰＵ１０の動作状態がスリープ状態であり、且つ動作周波数が第２周波数である場合には、演算部３０３はパラメータＰＳ２を読み出す。
【００７３】
演算部３０３は、読み出した消費電力量のパラメータと継続時間情報３０２３に含まれる継続時間Ｔｃとを乗算することで実電力量を算出する。すなわち、実電力量Ｐｒは、式（Ｐｒ＝Ｐｎ  ×  Ｔｃ）で表される。なお、Ｐｎは単位時間あたりの電力量（例えば、１ｍＷ／ｓ等）であり、図２に示されるＰＡ１〜ＰＡ３、ＰＳ１〜ＰＳ３、及びＰＢ１〜ＰＢ３のパラメータのうちいずれかである。継続時間Ｔｃは、前述したように、変化検出信号１３が変化してから次に変化するまでの時間、又は前記所定期間を示す時間の情報であり、前記要素プロファイルの継続時間情報３０２３に含まれる。例えば、実動作時のＣＰＵ１０の動作状態が期間４Ｔのスタンバイ状態であり、且つ動作周波数が第３周波数である場合には、実電力量Ｐｒ＝Ｐｎ  ×  Ｔｃ＝ＰＢ３  ×  ４Ｔとなる。
【００７４】
（２）想定電力量の算出方法
前記想定電力量は、ＣＰＵ１０の想定動作時の動作状態における単位時間あたりの消費電力量と、その動作状態での換算時間Ｔｖとを乗算することにより算出される。
【００７５】
（ｉ）アクティブ状態での想定電力量
はじめにＣＰＵステータス情報３０２１がアクティブ状態である場合について説明する。
【００７６】
モニタ部３０２から受け取ったＣＰＵステータス情報３０２１がアクティブ状態を示す情報である場合、演算部３０３は、処理時間比テーブル３０４５を基に換算時間Ｔｖを算出するとともに、差時間ΔＴを算出する。
【００７７】
図３に処理時間比テーブルの一例を示す。同図に示されるように、処理時間比テーブル３０４５には、ＣＰＵ１０の実動作時の動作周波数でのデータ処理能力に対する想定動作時の動作周波数でのデータ処理能力を表す処理時間比が周波数設定毎に格納される。例えば、第１周波数ｆ１＝ｆ、第２周波数ｆ２＝２ｆ、第３周波数ｆ３＝４ｆとし、実動作時にＣＰＵ１０が第１周波数ｆ１で所定のデータ量のデータ処理を実行したときの処理時間を“１”とする。この場合、図３に示されるように、想定動作時の周波数が第１周波数ｆ１であれば、実動作時と同じデータ処理を実行したときの処理時間比は“ｒ１１（＝１）”となる。一方、想定動作時の周波数が第２周波数ｆ２であれば、実動作時と同じデータ処理を実行したときの処理時間比は“ｒ１２（＝０．５）”となり、想定動作時の周波数が第３周波数ｆ３であれば、実動作時と同じデータ処理を実行したときの処理時間比は“ｒ１３（＝０．２５）”となる。したがって、想定動作時のアクティブ状態での換算時間Ｔｖは、式（Ｔｖ＝Ｔｃ  ×  ｒｎ）で表される。ここで、ｒｎはｒ１１〜ｒ１３、ｒ２１〜ｒ２３、及びｒ３１〜ｒ３３のうちいずれかのパラメータである。例えば、実動作時のＣＰＵ１０の状態が第１周波数設定（ｆ１）、且つ期間４Ｔのアクティブ状態であり、想定動作時の周波数設定が第３周波数設定（ｆ３）である場合、換算時間Ｔｖは、Ｔｖ＝Ｔｃ  ×  ｒ１３＝４Ｔ  ×  ０．２５＝１Ｔとなる。
【００７８】
演算部３０３は、単位電力量テーブル３０４４を参照して、想定した周波数設定と動作状態に対応する単位時間あたりの消費電力量のパラメータを読み出し、読み出したパラメータと算出した換算時間Ｔｖとを乗算することで、想定電力量を算出する。すなわち、アクティブ状態での想定電力量Ｐｆｎは、式（Ｐｆｎ＝Ｐｎ  ×  Ｔｖ）で表される。例えば、実動作時のＣＰＵ１０の状態が第１周波数設定（ｆ１）、且つ期間４Ｔのアクティブ状態であり、想定動作時の周波数設定が第３周波数設定（ｆ３）である場合、想定電力量Ｐｆｎ＝ＰＡ３  ×  １Ｔとなる。
【００７９】
上述したように、想定動作時におけるアクティブ状態での処理時間（換算時間Ｔｖ）は周波数設定によって変動するため、その変動分は次の動作状態の継続時間に影響を与える。そこで、演算部３０３は、実動作時のアクティブ状態の継続時間Ｔｃと、対応する想定動作時の動作状態の換算時間Ｔｖとの差分を表す差時間ΔＴを算出する。
【００８０】
ＣＰＵステータス情報３０２１がアクティブ状態である場合、差時間ΔＴは、例えば、実動作時のアクティブ状態の継続時間Ｔｃと対応する想定動作時のアクティブ状態の換算時間Ｔｖとを減算した値に、その時点で累積されている差時間（以下、累積差時間、とも称する。）Ｔ０を加算することで算出される。すなわち、アクティブ状態での差時間ΔＴは、式（ΔＴ＝Ｔ０＋Ｔｃ−Ｔｖ）で表される。例えば、実動作時のＣＰＵ１０の状態が第１周波数設定、且つ期間４Ｔのアクティブ状態であり、想定動作時の周波数設定が第３周波数設定、且つ累積差時間Ｔ０＝２Ｔである場合、差時間ΔＴは、ΔＴ＝２Ｔ＋４Ｔ−１Ｔ＝５Ｔとなる。
【００８１】
なお、前記差時間ΔＴを算出する際、継続時間Ｔｃから換算時間Ｔｖを減算する方法に限らず、換算時間Ｔｖから継続時間Ｔｃを減算する方法でもよい。
【００８２】
（ｉｉ）非アクティブ状態での想定電力量
次に、ＣＰＵステータス情報３０２１が非アクティブ状態（スリープ状態又はスタンバイ状態）である場合について説明する。ＣＰＵステータス情報３０２１が非アクティブ状態である場合、演算部３０３は、累積差時間Ｔ０と、実動作時の継続時間Ｔｃに基づいて換算時間Ｔｖを算出する。
【００８３】
例えば、累積差時間Ｔ０と実動作時の継続時間Ｔｃとを加算した値が“０”より小さいとき、演算部３０３は、換算時間Ｔｖ＝０とし、差時間ΔＴを式（ΔＴ＝Ｔ０＋Ｔｃ）で表す。一方、累積差時間Ｔ０と実動作時の継続時間Ｔｃとを加算した値が“０”以上であるとき、演算部３０３は、換算時間Ｔｖを式（Ｔｖ＝Ｔ０＋Ｔｃ）で表し、差時間ΔＴ＝０とする。
【００８４】
演算部３０３は、単位電力量テーブル３０４４を参照して、想定した周波数設定と動作状態に対応する単位時間あたりの消費電力量のパラメータを読み出し、読み出したパラメータと算出した換算時間Ｔｖとを乗算することで非アクティブ状態での想定電力量を算出する。すなわち、非アクティブ状態での想定電力量Ｐｆｎは、式（Ｐｆｎ＝Ｐｎ  ×  Ｔｖ）で算出される。
【００８５】
次に、図４及び５を用いて前記実電力量と想定電力量の具体的な算出方法について説明する。
【００８６】
（３）実電力量と想定電力量の具体例（図４）
図４は、ＣＰＵ１０の実動作時と想定動作時との対応関係を表す説明図である。同図の（Ａ）には、ＣＰＵ１０の実動作時の動作状態の変化と各動作状態における継続時間Ｔｃが示される。同図の（Ｂ）には、ＣＰＵ１０の動作周波数を第１周波数（ｆ１）とした想定動作時の動作状態の変化と各動作状態の換算時間Ｔｖが示される。同図の（Ｃ）には、ＣＰＵ１０の動作周波数を第２周波数（ｆ２）とした想定動作時の動作状態の変化と各動作状態の換算時間Ｔｖが示される。同図の（Ｄ）には、ＣＰＵ１０の動作周波数を第３周波数（ｆ３）とした想定動作時の動作状態の変化と各動作状態の換算時間Ｔｖが示される。なお、同図を含めた以下の説明では、ｆ１＝ｆ、ｆ２＝２ｆ、ｆ３＝４ｆと仮定し、スタンバイ状態となる待機時間の閾値Ｔｔｈを５Ｔとする。
【００８７】
（ｉ）実電力量
同図（Ａ）に示されるように、実動作時のＣＰＵ１０の動作状態が、スタンバイ状態４００、アクティブ状態４０１、スリープ状態４０２、アクティブ状態４０３の順に変化し、夫々の継続時間Ｔｃが５Ｔ、４Ｔ、４Ｔ、４Ｔであるとする。また、スタンバイ状態４００におけるＣＰＵ１０の動作周波数が第３周波数（ｆ３）であり、それ以外の動作状態４０１〜４０３におけるＣＰＵ１０の動作周波数が第１周波数（ｆ１）であるとする。このとき、スタンバイ状態４００の実電力量Ｐｒ＿０＝ＰＢ３  ×  ５Ｔ、アクティブ状態４０１の実電力量Ｐｒ＿１＝ＰＡ１  ×  ４Ｔ、スリープ状態４０２の実電力量Ｐｒ＿２＝ＰＳ１  ×  ４Ｔ、アクティブ状態４０３の実電力量Ｐｒ＿３＝ＰＡ１  ×  ４Ｔ、となる。
【００８８】
想定動作時（図４の（Ｂ）〜（Ｄ））の動作状態は実動作時の動作状態と同様に変化するが、想定動作時の夫々の動作状態が継続する時間は、想定した動作周波数によって異なる。同図（Ｂ）〜（Ｄ）の夫々における想定電力量は以下となる。
【００８９】
（ｉｉ）周波数設定ｆ１の想定電力量
図４（Ｂ）に示されるように、スタンバイ状態４００に対応する期間４１０は、ＣＰＵ１０がデータ処理を実行しないスタンバイ状態の期間である。そのため、累積差時間Ｔ０＝０であるとすると、累積差時間Ｔ０と実動作時のスタンバイ状態４００の継続時間Ｔｃ（＝５Ｔ）とを加算した値が５Ｔとなり、０以上であるため、換算時間Ｔｖ＝Ｔ０＋Ｔｃ＝５Ｔとなる。このとき、差時間ΔＴは０となり、想定電力量Ｐｆ１＿０＝ＰＢ１  ×  ５Ｔとなる。
【００９０】
次にアクティブ状態４０１に対応する期間４１１は、ＣＰＵ１０がデータ処理を実行可能なアクティブ状態の期間であり、周波数設定は実動作時の周波数設定（ｆ１）と一致している。そのため、換算時間Ｔｖ＝Ｔｃ  ×  ｒ１１＝４Ｔ  ×  １＝４Ｔとなる。このとき、差時間ΔＴ＝０となり、想定電力量Ｐｆ１＿１＝ＰＡ１  ×  ４Ｔとなる。
【００９１】
以下、期間４１２、４１３の換算時間Ｔｖも同様に算出することができ、期間４１２の想定電力量Ｐｆ１＿２＝ＰＳ１  ×  ４Ｔ、期間４１３の想定電力量Ｐｆ１＿３＝ＰＡ１  ×  ４Ｔ、となり、差時間ΔＴはいずれも０となる。
【００９２】
（ｉｉｉ）周波数設定ｆ２の想定電力量
図４（Ｃ）に示されるように、スタンバイ状態４００に対応する期間４２０は、ＣＰＵ１０がデータ処理を実行しないスタンバイ状態の期間である。そのため、累積差時間Ｔ０が０であるとすると、累積差時間Ｔ０と実動作時のスタンバイ状態４００の継続時間Ｔｃ（＝５Ｔ）とを加算した値が５Ｔとなり、０以上であるため、換算時間Ｔｖ＝Ｔ０＋Ｔｃ＝５Ｔとなる。このとき差時間ΔＴは０となり、想定電力量Ｐｆ２＿０＝ＰＢ２  ×  ５Ｔとなる。
【００９３】
アクティブ状態４０１に対応する期間４２１は、ＣＰＵ１０がデータ処理を実行可能なアクティブ状態の期間であり、周波数設定は周波数ｆ２である。したがって、図３の処理時間比テーブル３０４５より、換算時間Ｔｖ＝Ｔｃ  ×  ｒ１２＝４Ｔ  ×  ０．５＝２Ｔとなる。このとき、差時間ΔＴ＝Ｔ０＋Ｔｃ−Ｔｖ＝０＋４Ｔ−２Ｔ＝２Ｔとなり、想定電力量Ｐｆ２＿１＝ＰＡ２  ×  ２Ｔとなる。
【００９４】
スリープ状態４０２に対応する期間４２２は、ＣＰＵ１０がデータ処理を実行しない非アクティブ状態での期間である。ここで、スリープ状態４０２の継続時間Ｔｃは４Ｔであるが、その前の期間４２１が実動作時よりも短縮されているため、短縮された分の時間を非アクティブ状態の期間として割り当てることが可能となる。すなわち、累積差時間Ｔ０と実動作時のスリープ状態４０２の継続時間Ｔｃ（＝４Ｔ）とを加算した値が６Ｔとなり、０以上であるため、換算時間Ｔｖ＝Ｔ０＋Ｔｃ＝６Ｔとなる。この場合、非アクティブ状態の換算時間Ｔｖ（＝６Ｔ）が前記閾値Ｔｔｈ（＝５Ｔ）以上の値であるため、期間４２２はスタンバイ状態の期間となる。すなわち、演算部３０３は、前記期間４２２をスタンバイ状態が６Ｔ続く期間として想定電力量を算出する。したがって、想定電力量Ｐｆ２＿２＝ＰＢ２  ×  ６Ｔとなる。また、このときの差時間ΔＴは０となる。
【００９５】
期間４２３の想定電力量も前記期間４２１と同様に算出することができ、期間４２３の想定電力量Ｐｆ２＿３＝ＰＡ２  ×  ２Ｔとなる。
【００９６】
（ｉｖ）周波数設定ｆ３の想定電力量
図４（Ｄ）に示されるように、先ず、スタンバイ状態４００に対応する期間４３０は、ＣＰＵ１０がデータ処理を実行しないスタンバイ状態の期間である。そのため、累積差時間Ｔ０＝０であるとすると、累積差時間Ｔ０と実動作時のスタンバイ状態４００の継続時間Ｔｃ（＝５Ｔ）とを加算した値が５Ｔとなり、０以上であるため、換算時間Ｔｖ＝Ｔ０＋Ｔｃ＝５Ｔとなる。このときの差時間ΔＴは０となり、想定電力量Ｐｆ３＿０＝ＰＢ３  ×  ５Ｔとなる。
【００９７】
アクティブ状態４０１に対応する期間４３１は、ＣＰＵ１０がデータ処理を実行可能なアクティブ状態の期間であり、周波数設定は周波数ｆ３である。そのため、処理時間比テーブル３０４５に従い、換算時間Ｔｖ＝Ｔｃ  ×  ｒ１３＝４Ｔ  ×  ０．２５＝１Ｔとなる。このとき、差時間ΔＴ＝Ｔ０＋Ｔｃ−Ｔｖ＝０＋４Ｔ−１Ｔ＝３Ｔとなり、想定電力量Ｐｆ２＿１＝ＰＡ２  ×  １Ｔとなる。
【００９８】
スリープ状態４０２に対応する期間４３２は、ＣＰＵ１０がデータ処理を実行しない非アクティブ状態での期間である。ここで、スリープ状態４０２の継続時間Ｔｃは４Ｔであるが、その前の期間４３１が実動作時よりも短縮されているため、短縮された分の時間を非アクティブ状態の期間として割り当てることが可能となる。すなわち、累積差時間Ｔ０（＝３Ｔ）と実動作時のスリープ状態４０２の継続時間Ｔｃ（＝４Ｔ）とを加算した値が７Ｔとなり、０以上であるため、換算時間Ｔｖ＝Ｔ０＋Ｔｃ＝７Ｔとなる。この場合、非アクティブ状態の換算時間Ｔｖ（＝７Ｔ）が前記閾値Ｔｔｈ（＝５Ｔ）以上の値であるため、期間４３２はスタンバイ状態の期間となる。すなわち、演算部３０３は、前記期間４３２をスタンバイ状態が７Ｔ続く期間として想定電力量を算出する。したがって、想定電力量Ｐｆ３＿２＝ＰＢ３  ×  ７Ｔとなる。また、このときの差時間ΔＴは０となる。
【００９９】
期間４３３の想定電力量も前記期間４３１と同様に算出することができ、期間４３３の想定電力量Ｐｆ３＿３＝ＰＡ３  ×  １Ｔとなる。
【０１００】
（４）実電力量と想定電力量の具体例（図５）
図５は、ＣＰＵ１０の実動作時と想定動作時との対応関係を表す別の説明図である。同図の（Ａ）には、ＣＰＵ１０の実動作時の動作状態の変化と各動作状態の換算時間Ｔｃが示される。同図の（Ｂ）には、ＣＰＵ１０の動作周波数を第１周波数（ｆ１）とした想定動作時の動作状態の変化と各動作状態の換算時間Ｔｖが示される。同図の（Ｃ）には、ＣＰＵ１０の動作周波数を第２周波数（ｆ２）とした想定動作時の動作状態の変化と各動作状態の換算時間Ｔｖが示される。同図の（Ｄ）には、ＣＰＵ１０の動作周波数を第３周波数（ｆ３）とした想定動作時の動作状態の変化と各動作状態における継続時間Ｔｖが示される。
【０１０１】
（ｉ）実電力量
先ず、図５（Ａ）に示されるように、実動作時のＣＰＵ１０の動作状態が、スリープ状態５００、アクティブ状態５０１、スタインバイ状態５０２、アクティブ状態５０３の順に変化し、夫々の継続時間が４Ｔ、２Ｔ、６Ｔ、２Ｔであるとする。また、スリープ状態５００におけるＣＰＵ１０の動作周波数は第１周波数（ｆ１）であり、それ以外の動作状態５０１〜５０３におけるＣＰＵ１０の動作周波数は第３周波数（ｆ３）であるとする。このとき、スタンバイ状態５００の実電力量Ｐｒ＿０＝ＰＢ１  ×  ４Ｔ、アクティブ状態５０１の実電力量Ｐｒ＿１＝ＰＡ３  ×  ２Ｔ、スリープ状態５０２の実電力量Ｐｒ＿２＝ＰＳ３  ×  ６Ｔ、アクティブ状態５０３の実電力量Ｐｒ＿３＝ＰＡ３  ×  ２Ｔ、となる。
【０１０２】
同図（Ｂ）〜（Ｄ）の夫々における想定電力量は以下となる。
【０１０３】
（ｉｉ）周波数設定ｆ１の想定電力量
図５（Ｂ）に示されるように、実動作時のスリープ状態５００に対応する期間５１０は、ＣＰＵ１０がデータ処理を実行しないスリープ状態の期間である。したがって、累積差時間Ｔ０が０であるとすると、累積差時間Ｔ０と実動作時のスリープ状態５００の継続時間Ｔｃ（＝４Ｔ）とを加算した値が４Ｔとなり、０以上であるため、換算時間Ｔｖ＝Ｔ０＋Ｔｃ＝４Ｔとなる。このときの差時間ΔＴは０となり、想定電力量Ｐｆ１＿０＝ＰＳ１  ×  ４Ｔとなる。
【０１０４】
アクティブ状態５０１に対応する期間５１１は、ＣＰＵ１０がデータ処理を実行可能なアクティブ状態の期間であり、周波数設定は周波数ｆ１である。したがって、図３の処理時間比テーブル３０４５より、換算時間Ｔｖ＝Ｔｃ  ×  ｒ３１＝２Ｔ  ×  ４＝８Ｔとなる。このとき、差時間ΔＴ＝Ｔ０＋Ｔｃ−Ｔｖ＝０＋２Ｔ−８Ｔ＝−６Ｔとなり、想定電力量Ｐｆ１＿１＝ＰＡ１  ×  ８Ｔとなる。
【０１０５】
スタンバイ状態５０２に対応する想定動作時の期間５１２は、ＣＰＵ１０がデータ処理を実行しない非アクティブ状態での期間である。このとき、スタンバイ状態５０２の継続時間Ｔｃは６Ｔであるが、その前の期間５１１が実動作時よりも延長されるため、延長した分の時間と継続時間Ｔｃが相殺され、非アクティブ状態の期間は割り当てられない。すなわち、累積差時間Ｔ０（＝−６Ｔ）と実動作時のスリープ状態５０２の継続時間Ｔｃ（＝６Ｔ）とを加算した値が０となるため、換算時間Ｔｖ＝Ｔ０＋Ｔｃ＝０となる。その結果、アクティブ状態の期間５１１とその後のアクティブ状態の期間５１３が連続することになる。演算部３０３は、前記期間５１２をスタンバイ状態が０Ｔ続く期間として想定電力量を算出する。すなわち、想定電力量Ｐｆ１＿２＝０となる。また、このときの差時間ΔＴは０となる。
【０１０６】
期間５１３の想定電力量も前記期間５１１と同様に算出することができ、期間５１３の想定電力量Ｐｆ１＿３＝ＰＡ１  ×  ８Ｔとなる。
【０１０７】
（ｉｉｉ）周波数設定ｆ２の想定電力量
図５（Ｃ）に示されるように、スタンバイ状態５００に対応する期間５２０は、ＣＰＵ１０がデータ処理を実行しないスリープ状態の期間である。したがって、累積差時間Ｔ０＝０であるとすると、累積差時間Ｔ０と実動作時のスリープ状態５００の継続時間Ｔｃ（＝４Ｔ）とを加算した値が４Ｔとなり、０以上であるため、換算時間Ｔｖ＝Ｔ０＋Ｔｃ＝４Ｔとなる。このときの差時間ΔＴは０となり、想定電力量Ｐｆ２＿０＝ＰＳ２  ×  ４Ｔとなる。
【０１０８】
アクティブ状態５０１に対応する期間５２１は、ＣＰＵ１０がデータ処理を実行可能なアクティブ状態の期間であり、周波数設定は周波数ｆ２である。したがって、図３の処理時間比テーブル３０４５により、換算時間Ｔｖ＝Ｔｃ  ×  ｒ３２＝２Ｔ  ×  ２＝４Ｔとなる。このとき、差時間ΔＴ＝Ｔ０＋Ｔｃ−Ｔｖ＝０＋２Ｔ−４Ｔ＝−２Ｔとなり、想定電力量Ｐｆ２＿１＝ＰＡ２  ×  ４Ｔとなる。
【０１０９】
スタンバイ状態５０２に対応する期間５２２は、ＣＰＵ１０がデータ処理を実行しない非アクティブ状態での期間である。このとき、スタンバイ状態５０２の継続時間Ｔｃは６Ｔであるが、その前の期間５１１が実動作時よりも延長されるため、延長した分だけ期間５２２の継続時間が短縮される。すなわち、累積差時間Ｔ０（＝−２Ｔ）と実動作時のスリープ状態５０２の継続時間Ｔｃ（＝６Ｔ）とを加算した値が４Ｔとなり、０以上であるため、換算時間Ｔｖ＝Ｔ０＋Ｔｃ＝４Ｔとなる。この場合、非アクティブ状態の換算時間Ｔｖ（＝４Ｔ）が前記閾値Ｔｔｈ（＝５Ｔ）よりも小さい値であるため、期間５２２はスリープ状態の期間となる。すなわち、演算部３０３は、前記期間５２２をスリープ状態が４Ｔ続く期間として想定電力量を算出する。したがって、想定電力量Ｐｆ２＿２＝ＰＳ２  ×  ４Ｔとなる。また、このときの差時間ΔＴは０となる。
【０１１０】
期間５２３の想定電力量も前記期間５２１と同様に算出することができ、期間５２３の想定電力量Ｐｆ２＿３＝ＰＡ２  ×  ４Ｔとなる。
【０１１１】
（ｉｖ）周波数設定ｆ３の想定電力量
図５（Ｄ）に示されるように、スタンバイ状態５００に対応する期間５３０は、ＣＰＵ１０がデータ処理を実行しないスタンバイ状態の期間である。したがって、累積差時間Ｔ０＝０であるとすると、累積差時間Ｔ０と実動作時のスタンバイ状態５００の継続時間Ｔｃ（＝５Ｔ）とを加算した値が５Ｔとなり、０以上であるため、換算時間Ｔｖ＝Ｔ０＋Ｔｃ＝５Ｔとなる。このとき差時間ΔＴは０となり、想定電力量Ｐｆ３＿０＝ＰＢ３  ×  ５Ｔとなる。
【０１１２】
次にアクティブ状態５０１に対応する期間５３１は、ＣＰＵ１０がデータ処理を実行可能なアクティブ状態の期間であり、周波数設定は実動作時の周波数設定（ｆ３）と一致している。したがって、図３の処理時間比テーブル３０４５より、換算時間Ｔｖ＝Ｔｃ  ×  ｒ３３＝２Ｔ  ×  １＝２Ｔとなる。このとき、差時間ΔＴ＝２Ｔ−２Ｔ＝０となり、想定電力量Ｐｆ３＿１＝ＰＡ３  ×  ２Ｔとなる。
【０１１３】
以下、期間５３２、５３３の換算時間Ｔｖも同様に算出することができ、期間５３２の想定電力量Ｐｆ３＿２＝ＰＳ３  ×  ６Ｔ、期間５３３の想定電力量Ｐｆ３＿３＝ＰＡ３  ×  ２Ｔ、となり、差時間ΔＴはいずれも０となる。
【０１１４】
上記のように算出された実電力量と仮想電力量は、ＣＰＵ１０の動作状態が変化する毎又は所定期間が経過する毎（要素プロファイルが生成される毎）に算出され、電力差分生成部３０５に与えられる。例えば、図４の場合、先ず、スタンバイ状態４００に対応する要素プロファイルが演算部３０３に与えられると、実電力量Ｐｒ＿０、想定電力量Ｐｆ１＿０、Ｐｆ２＿０、及びＰｆ３＿０の第１のデータ群が生成され、前記第１のデータ群が電力差分生成部３０５に出力される。その後、アクティブ状態４０１に対応する要素プロファイルが演算部３０３に与えられると、実電力量Ｐｒ＿１、想定電力量Ｐｆ１＿１、Ｐｆ２＿１、及びＰｆ３＿１の第２のデータ群が生成され、前記第２のデータ群が電力差分生成部３０５に与えられる。このように、要素プロファイル毎に電力量のデータ群が生成され、順次、電力差分生成部３０５に出力される。
【０１１５】
≪累積差分電力量の生成方法≫
累積差分電力量の生成方法について説明する。
【０１１６】
ここでは、一例として、前述の図４で生成された各電力量が電力差分生成部３０５に入力される場合を考える。なお、累計電力格納部３０６２の初期値は零であるとする。
【０１１７】
先ず、１回目の電力量のデータ群として、実電力量Ｐｒ＿０、想定電力量Ｐｆ１＿０、Ｐｆ２＿０、及びＰｆ３＿０が電力差分生成部３０５に与えられると、比較部３０５１が、実電力量Ｐｒ＿０、想定電力量Ｐｆ１＿０、Ｐｆ２＿０、及びＰｆ３＿０のうち、最も小さい電力量を検出する。差分算出部３０５２は、前記検出された最も小さい電力量と、実電力量Ｐｒ＿０、想定電力量Ｐｆ１＿０、Ｐｆ２＿０、及びＰｆ３＿０の４つの電力量とに基づいて、差分電力量を生成する。例えば、想定電力量Ｐｆ１＿０が最も小さい電力量である場合には、ΔＰｒ＿０（＝Ｐｒ＿０−Ｐｆ１＿０）、ΔＰｆ１＿０（＝Ｐｆ１＿０−Ｐｆ１＿０）、ΔＰｆ２＿０（＝Ｐｆ２＿０−Ｐｆ１＿０）、及びΔＰｆ３＿０（＝Ｐｆ３＿０−Ｐｆ１＿０）の４つの差分電力量を算出する。算出された差分電力量ΔＰｒ＿０、ΔＰｆ１＿０、ΔＰｆ２＿０、ΔＰｆ３＿０は、累計部３０６に与えられ、累計電力格納部３０６２に格納される。
【０１１８】
次に、２回目の電力量のデータ群として、実電力量Ｐｒ＿１、想定電力量Ｐｆ１＿１、Ｐｆ２＿１、及びＰｆ３＿１が電力差分生成部３０５に与えられると、前述と同様に、比較部３０５１は最も小さい電力量を検出し、差分算出部３０５２が差分電力量を生成する。例えば、想定電力量Ｐｒ＿１が最も小さい電力量である場合には、ΔＰｒ＿１（＝Ｐｒ＿１−Ｐｒ＿１）、ΔＰｆ１＿１（＝Ｐｆ１＿１−Ｐｒ＿１）、ΔＰｆ２＿１（＝Ｐｆ２＿１−Ｐｒ＿１）、及びΔＰｆ３＿１（＝Ｐｆ３＿１−Ｐｒ＿１）の４つの差分電力量を算出する。そして、電力差分生成部３０５は、既に累計電力格納部３０６２に格納されている差分電力量（ΔＰｒ＿０、ΔＰｆ１＿０、ΔＰｆ２＿０、及びΔＰｆ３＿０）と今回算出された差分電力量（ΔＰｒ＿１、ΔＰｆ１＿１、ΔＰｆ２＿１、及びΔＰｆ３＿１）とを実動作時及び想定動作時の周波数設定毎に加算し、累計電力格納部３０６２に格納する。例えば、差分算出部３０５２は、（ΔＰｒ＿０＋ΔＰｒ＿１）と、（ΔＰｆ１＿０＋Ｐｆ１＿１）と、（ΔＰｆ２＿０−ΔＰｆ２＿１）と、（ΔＰｆ３＿０−ΔＰｆ３＿１）とを算出し、累計電力格納部３０６２の累積差分電力量の値を更新する。更新された累積差分電力量は、再度、比較部３０５１に与えられ、差分算出部３０５２が累積差分電力量の差分を生成する。例えば、４つの累積差分電力量のうち（ΔＰｆ１＿０＋Ｐｆ１＿１）が最も小さい電力量である場合には、差分生成部３０５２は、｛（ΔＰｒ＿０＋ΔＰｒ＿１）―（ΔＰｆ１＿０＋Ｐｆ１＿１）｝、｛（ΔＰｆ１＿０＋ΔＰｆ１＿１）―（ΔＰｆ１＿０＋Ｐｆ１＿１）｝、｛（ΔＰｆ２＿０＋ΔＰｆ２＿１）―（ΔＰｆ１＿０＋Ｐｆ１＿１）｝、及び｛（ΔＰｆ３＿０＋ΔＰｆ３＿１）―（ΔＰｆ１＿０＋Ｐｆ１＿１）｝の４つの累積差分電力量の差分を算出する。ここで、実動作時の累積差分電力量の差分３０６５は｛（ΔＰｒ＿０＋ΔＰｒ＿１）―（ΔＰｆ１＿０＋Ｐｆ１＿１）｝であり、想定動作時（ｆ１）の累積差分電力量の差分３０６６は、｛（ΔＰｆ１＿０＋ΔＰｆ１＿１）―（ΔＰｆ１＿０＋Ｐｆ１＿１）｝であり、想定動作時（ｆ２）の累積差分電力量の差分３０６７は｛（ΔＰｆ２＿０＋ΔＰｆ２＿１）―（ΔＰｆ１＿０＋Ｐｆ１＿１）｝であり、想定動作時（ｆ３）の累積差分電力量の差分３０６７は｛（ΔＰｆ３＿０＋ΔＰｆ３＿１）―（ΔＰｆ１＿０＋Ｐｆ１＿１）｝である。これらの累積差分電力量の差分の情報は累計電力格納部３０６２に格納される。
【０１１９】
以上のように、電力差分生成部３０５が差分電力の生成と累計を繰り返し実行することで、累計電力格納部３０６２には、ＣＰＵ１０の動作状態が変化する毎又は所定期間が経過する毎に、実動作時及び想定動作時の周波数毎の累積差分電力量の差分の情報３０６５〜３０６８が格納される。格納される累積差分電力量の差分の情報は、上記のように最も小さい電力量に対する電力量の差分を累積し、更にその差分をとった情報であるため、単に電力量を測定回数分だけ累積する場合に比べてデータ量を小さくすることができる。これにより、累計電力格納部３０６２の記憶領域の容量を小さくすることができるから、データ処理装置１のチップ面積の低減に資する。
【０１２０】
≪実電力量と想定電力量の算出に係る処理フロー≫
図６は、ＤＶＦＳ管理モジュール３０による実電力量と想定電力量の算出処理の流れの一例を示すフロー図である。
【０１２１】
データ処理装置１に電源が投入され、リセットが解除されると、実電力量と想定電力量の算出に係る処理が開始される。先ず、ＣＰＵ１０は、例えばＲＯＭ等に格納された各種初期設定データを基礎データ部３０４に設定する（Ｓ１０１）。ＤＶＦＳ管理モジュール３０は、ＣＰＵ１０のスリープ状態信号Ｖｓｐやスタンバイ状態信号Ｖｓｂ等を監視し、ＣＰＵ１０の動作状態の変化、又は所定期間が経過するまで待機する（Ｓ１０２）。ＤＶＦＳ管理モジュール３０のモニタ部３０２は、ＣＰＵ１０の動作状態の変化又は所定期間の経過を検知すると、要素プロファイルを生成し、演算部３０３に出力する（Ｓ１０３）。その後、モニタ部３０２は、内部のタイマをリセットし、ＣＰＵ１０の動作状態の変化又は所定期間の経過を監視する（Ｓ１０４）。
【０１２２】
前記要素プロファイルを受けった演算部３０３は、実電力量の算出を開始する（Ｓ１０５）。演算部３０３は、単位電力量テーブル３０４４を参照し、受け取った前記要素プロファイルのＣＰＵステータス情報３０２１及びＤＶＦＳステータス情報３０２２に対応する単位電力量のパラメータを取得する（Ｓ１０６）。そして、演算部３０３は、受け取った前記要素プロファイルの継続時間情報３０２３の継続時間Ｔｃと、単位電力量のパラメータに基づいて実電力量を算出する（Ｓ１０７）。
【０１２３】
次に、演算部３０３は、ＤＶＦＳ制御において設定可能な周波数ｆ１、ｆ２、・・・ｆｎ−１、ｆｎ（ｎは自然数）のうち、何れか１つの周波数設定での想定電力量の算出を開始する（Ｓ１０８）。演算部３０３は先ず、想定した周波数設定（例えばｆ１）での換算時間Ｔｖを算出する（Ｓ１０９）。換算時間Ｔｖの算出に係る処理フローについては、後で詳述する。次に演算部３０３は、想定した周波数設定（ｆ１）での想定電力量を算出する（Ｓ１１０）。その後、ステップ１０８〜ステップ１１０までの処理を、想定した周波数設定ｆ１〜ｆｎ毎に繰り返して実行し、各想定動作時の想定電力量を算出する。なお、実電力量と想定電力量の算出手順は特に制限されず、例えば、各想定動作時の想定電力量を算出するステップ１０８〜ステップ１１０を実行してから、実電力量を算出するステップ１０５〜ステップ１０７を実行する手順としてもよい。
【０１２４】
実電力量と想定電力量が算出されると、電力差分生成部３０５は、算出した実電力量と想定電力量のうち、最も小さい電力量を検出する（Ｓ１１１）。電力差分生成部３０５と累計部３０６は、前述した方法により、実動作時と想定動作時の周波数設定毎に累積差分電力量の差分の情報を生成し、累計電力格納部３０６２に格納する（Ｓ１１２）。その後、累積部３０６は、カウンタ３０６４をインクリメントする（Ｓ１１３）。通知部３０６３は、カウンタ３０６４のカウンタ値と測定回数情報３０４２の設定値とを比較する（Ｓ１１４）。比較の結果、カウンタ値が設定値よりも小さい場合には、ステップ１０２に移行し、次のＣＰＵ１０の動作状態の変化、又は所定期間が経過を待って、実電力量及び想定電力量の算出を再度行う（Ｓ１０２〜Ｓ１１３）。一方、カウンタ値が設定値以上である場合には、通知部３０６３が、実電力量と想定電力量の算出が完了したことをＣＰＵ１０に対して通知する（Ｓ１１５）。通知を受けたＣＰＵ１０は、累計電力格納部３０６２にアクセスして算出された実電力量と想定電力量の情報とを参照し、より低消費電力となる周波数設定を判別し、必要に応じて周波数設定を変更する。
【０１２５】
次に、前述のステップ１０９の換算時間の算出処理について、図７を用いて詳細に説明する。
【０１２６】
図７は、換算時間の算出処理の流れの一例を示す説明図である。
【０１２７】
先ず、図６のステップ１０９において換算時間Ｔｖの算出が開始されると、演算部３０３は、取得した要素プロファイルのＣＰＵステータス情報３０２１を参照し、実動作時のＣＰＵ１０の動作状態がアクティブ状態であるか否かを判別する（Ｓ２０１）。動作状態がアクティブ状態である場合、演算部３０３は、処理時間比テーブル３０４５を参照し、実動作時の周波数設定と想定している周波数設定とに対応する処理時間比のパラメータを取得する（Ｓ２０２）。演算部３０３は、式（Ｔｖ＝Ｔｃ  ×  ｒｎ）により、換算時間Ｔｖを算出する（Ｓ２０３）。続いて、演算部３０３は、式（ΔＴ＝Ｔ０  ＋  Ｔｃ  −  Ｔｖ）により、差時間ΔＴを算出する（Ｓ２０４）。
【０１２８】
ステップ２０１において、動作状態がアクティブ状態でない場合、演算部３０３は、実動作時の継続時間Ｔｃと累積差時間Ｔ０とを加算した値が０以上であるか否かを判別する（Ｓ２０５）。前記加算した値が０より小さい場合には、演算部３０３は、式（ΔＴ＝Ｔ０  ＋  Ｔｃ）により、差時間ΔＴを算出する（Ｓ２０６）。続いて、演算部３０３は、換算時間Ｔｖ＝０とする（Ｓ２０７）。すなわち、想定動作時の非アクティブ状態の期間が消滅したものとする。
【０１２９】
一方、ステップ２０５において、前記加算した値が０以上である場合には、演算部３０３は、式（Ｔｖ＝Ｔｃ  ×  ｒｎ）により、換算時間Ｔｖを算出する（Ｓ２０８）。続いて演算部３０３は、差時間ΔＴ＝０とする（Ｓ２０９）。次に、演算部３０３は、基礎データ部３０４から閾値情報３０４３（前記閾値Ｔｔｈ）を読み出す（Ｓ２１０）。演算部３０３は、読み出した閾値Ｔｔｈとステップ２０８で算出した換算時間Ｔｖを比較する（Ｓ２１１）。比較の結果、換算時間Ｔｖが閾値Ｔｔｈ以上である場合には、演算部３０３は、想定動作時のＣＰＵ１０の動作状態をスタンバイ状態と決定する（Ｓ２１２）。そうでない場合には、演算部３０３は、想定動作時のＣＰＵ１０の動作状態をスリープ状態と決定する（Ｓ２１３）。
【０１３０】
以上のステップ２０４、ステップ２１２、及びステップ２１３が完了すると、演算部３０３は、単位電力量テーブル３０４４を参照し、想定した周波数設定と想定した動作状態とに対応する単位電力量のパラメータを取得する（Ｓ２１２）。その後は、前述したステップ１１０に移行し、想定動作時の想定電力量の算出が行われる。
【０１３１】
≪ＣＰＵ１０に対する実電力量と想定電力量のフィードバックの効果≫
前述したように、実電力量と想定電力量の算出完了の通知を受けたＣＰＵ１０は、累計電力格納部３０６２にアクセスして算出された実電力量と想定電力量とを参照し、より低消費電力となる周波数設定を判別することで、必要に応じてＣＰＵ１０の動作周波数の設定を変更する。
【０１３２】
図８は、本実施の形態に係るデータ処理装置１の動作タイミングの一例を示す説明図である。同図には、一例として、ＤＶＦＳ制御により周波数の設定が低速設定（低周波数設定）と高速設定（高周波数設定）との間で切り替え可能であるとし、ＤＶＦＳ管理モジュール３０による実電力量と想定電力量の測定回数（累積回数）が４回である場合が示されている。また、同図の動作状態を示す波形において、ハイレベルである期間はＣＰＵ１０がデータ処理を実行している期間を示し、ローレベルの期間はＣＰＵ１０がデータ処理を行っていない期間を示す。
【０１３３】
図８に示されるように、データ処理装置１は、スタンバイ状態信号Ｖｓｂ及びスリープ状態信号Ｖｓｐが変化する毎に実電力量と想定電力量を算出し、当該電力量の算出が４回完了する毎にＣＰＵ１０に電力量の算出の完了を通知することで電力量のフィードバックを行う。以下、電力量の完了を通知するタイミングをフィードバックタイミングと称する。先ず、タイミングｔ０において、ＣＰＵ１０のデータ処理に係る負荷の状態が高負荷状態から低負荷状態に変化すると、ＣＰＵ１０はタイミングｔ１においてクロック信号の周波数を高速設定から低速設定に切り替えてデータ処理を行う。その後、フィードバックタイミングｔｆ２において、ＤＶＦＳ管理モジュール３０から４回分の電力量の算出が完了したことの通知を受けたＣＰＵ１０は、累計電力格納部３０６２にアクセスして最も低消費電力となる周波数設定を判別し、その後の負荷状態を考慮した上で周波数設定を変更するか否か判断する。同図では、ＣＰＵ１０が現状の低速設定よりも高速設定の方が低消費電力となると判断し、タイミングｔ２において周波数設定を高速設定に変更する場合が一例として示されている。この場合、データ処理が低速設定の場合よりも短い時間で完了するため、１つのデータ処理から次のデータ処理までの待機時間が長くなり、スタンバイ状態に移行することが可能となる。同図では、タイミングｔ３において、ＣＰＵ１０はスタンバイ状態に移行し、スタンバイ状態信号Ｖｓｂがアサートされる場合が示されている。
【０１３４】
その後、フィードバックタイミングｔｆ３において、ＤＶＦＳ管理モジュール３０から通知を受けたＣＰＵ１０は、再度、累計電力格納部３０６２にアクセスして最も低消費電力となる周波数設定を判別し、周波数設定を変更するか否か判断する。同図では、ＣＰＵ１０が現状の高速設定の方が低消費電力となると判断し、引き続き高速設定でＣＰＵ１０が動作する場合が一例として示されている。その後、負荷状態が高負荷状態に変化してタイミングｔ４でデータ処理が開始されると、タイミングｔ５でそのデータ処理が完了し、スタンバイ状態に移行する。
【０１３５】
ここで、本実施の形態に係るデータ処理装置１の比較例として、実電力量と想定電力量のフィードバックを行わずにＤＶＦＳ制御を行うデータ処理装置の動作タイミングの一例を図９に示す。
【０１３６】
同図に示されるように、タイミングｔ０においてＣＰＵのデータ処理に係る負荷の状態が高負荷状態から低負荷状態に変化すると、ＣＰＵはタイミングｔ１において、クロック信号の周波数を高速設定から低速設定に切り替えてデータ処理を行う。比較例に係るデータ処理装置のＣＰＵは、実電力量と想定電力量に基づくフィードバック制御を行わないため、負荷状態が変化するまで周波数設定を変更しない。その結果、次に負荷状態が変化するタイミングｔ４まで、ＣＰＵは低速設定で動作する。この場合、データ処理に要する時間が高速設定の場合よりも長くなるため、１つのデータ処理と次のデータ処理との間の待機時間が短くなり、ＣＰＵはスタンバイ状態に移行することができない。そのため、ＣＰＵではアクティブ状態とスリープ状態との間で動作状態が交互に切り替わることになる。その後、タイミングｔ４でデータ処理に係る負荷が低負荷状態から高負荷状態に変化するが、ＣＰＵはすぐに高速設定に切り替わることができず、低速設定のままデータ処理を行う。そして、データ処理が完了する直前のタイミングｔ６で高速設定に切り替わり、そのデータ処理が完了すると、ＣＰＵはスリープ状態に移行する。
【０１３７】
図１０は、データ処理装置１と比較例に係るデータ処理装置の電力特性を示す説明図である。同図において、実線で示される特性５０１は図８に示した本実施の形態に係るデータ処理装置１の消費電力量を示し、破線で示される特性５０２は図９に示した比較例のデータ処理装置１の消費電力量を示す。同図に示されるタイミングｔ０〜ｔ５は、図８及び図９のタイミングｔ０〜ｔ５に対応される。
【０１３８】
同図に示されるように、タイミングｔ２までは、どちらのデータ処理装置も同様にＤＶＦＳ制御が行われるため、同一の消費電力となる。比較例に係るデータ処理装置は、その後も低速設定で動作し、スリープ状態とアクティブ状態を繰り返すため消費電力は緩やかに増加する。それに対し、本実施の形態に係るデータ処理装置１は、タイミングｔ２において高速設定に切り替わる。これにより、１つのデータ処理と次のデータ処理との間の待機時間が長くなるため、タイミングｔ３においてＣＰＵ１０はスタンバイ状態に移行でき、消費電力が抑えられる。その後、タイミングｔ４において、データ処理に係る負荷の状態が低負荷状態から高負荷状態に変化すると、データ処理装置１に係るＣＰＵ１０は高速設定であるためタイミングｔ５においてデータ処理が完了し、その後は再びスタンバイ状態となる。この結果、消費電力の増加が抑えられる。一方、比較例に係るデータ処理装置では、タイミングｔ４でＣＰＵの負荷状態が低負荷状態から高負荷状態に変化した後も、すぐには高速設定には切り替わることができず、ＣＰＵは低速設定のままタイミングｔ６までデータ処理を行う。その間、消費電力は抑えられるがデータ処理に要する時間が長くなる。その後、データ処理が完了する直前のタイミングｔ６で高速設定に切り替わり、消費電力が増加する。データ処理完了後も、ＣＰＵはスタンバイ状態ではなくスリープ状態に移行するため、消費電力が緩やかに増加する。
【０１３９】
以上のように、高速設定でデータ処理を短時間で終了し、その後スタンバイ状態で待機したデータ処理装置１の方が、比較例に係るデータ処理装置よりも低消費電力になる場合がある。
【０１４０】
以上、本実施の形態に係るデータ処理装置１によれば、ＣＰＵ１０のデータ処理に係る負荷の状態だけでなく、前記実電力量と前記想定電力量も演算するから、現状のＣＰＵ１０の動作周波数の設定が電力的に最適であるか否かを判別することができる。これにより、データ処理装置１は、より低消費電力となる周波数設定に変更することが可能となり、従来のＤＶＦＳ制御のみを行うデータ処理装置に比べて、消費電力の更なる低減を図ることができる。
【０１４１】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１４２】
例えば、演算部３０３がＤＳＰによって構成される場合を示したが、実電力量と想定電力量を算出することができれば、専用のロジック回路で構成することも可能である。また、図８及び図１０説明では、測定回数を４回とし、４回の電力量の算出が完了する毎にＣＰＵ１０に通知する場合を一例として示したが、これに限られず、必要に応じて測定回数を増やしてもよいし、減らしてもよい。また、ＣＰＵ１０のデータ処理の状態に応じて測定回数を変更してもよい。例えば、ＣＰＵ１０によるデータ処理が一定間隔で継続的に行われるような状況では周波数設定を変更する必要性が低いので、測定回数を増やすことで電力量のフィードバックの頻度を低くし、ＤＶＦＳ制御によるＣＰＵ１０の負荷を低減させる。その後、上記の状況から脱したら、測定回数を減らすことで電力量のフィードバックの頻度を高くし、ＣＰＵ１０の電力状態に応じた周波数設定の変更をし易くする。
【０１４３】
また、累計電力格納部３０６２に格納される情報は、ＣＰＵ１０が低消費電力となる周波数設定を判別することができる情報であればよく、前記累積差分電力量の差分の情報に限られない。例えば、累計電力格納部３０６２の記憶領域の容量の増大が許容できるのであれば、差分算出部３０５２によって差分を算出せずに、実電力量３０３１及び想定電力量３０３２〜３０３４を測定回数分だけ累積加算した情報を、実動作時及び想定動作時の周波数設定毎に格納してもよい。また、例えば、差分算出部３０５２によって算出された差分電力量３０５３〜３０５６を、実動作時及び想定動作時の周波数設定毎に測定回数分だけ累積加算し、累積加算した実動作時の差分電力量と、想定動作時の周波数設定毎の累積加算した差分電力量とを累計電力格納部３０６２に格納する。これによれば、実電力量３０３１及び想定電力量３０３２〜３０３４を単に累積加算して格納する場合に比べてデータ量を小さくすることができるから、累計電力格納部３０６２の記憶領域の容量を小さくすることができる。また、前述の累積差分電力量の差分を算出する方法に比べて処理が容易となる。
【符号の説明】
【０１４４】
１００  データ処理システム
１  データ処理装置
２  電源ＩＣ
３  外部メモリ
４  水晶発振器
１０  ＣＰＵ
２０  クロック信号生成部（ＣＰＧ）
１１、１２  制御信号
ＶＤＤ  電源電圧
ＣＬＫ  クロック信号
３０  ＤＶＦＳ管理モジュール
３０１  検出部
３０１１  スリープ状態変化検出部
３０１２  スタンバイ状態変化検出部
３０１３  クロック信号変化検出部
Ｖｓｐ  スリープ状態信号
Ｖｓｂ  スタンバイ状態信号
Ｖｓｃ  クロック状態信号
１３  変化検出信号
３０２  モニタ部
３０２１  ＣＰＵステータス情報
３０２２  ＤＶＦＳステータス情報
３０２３  継続時間情報
３０３  演算部
３０３１  実電力量
３０３２〜３０３４  想定電力量
３０３５〜３０３７  差時間
３０４  基礎データ部
３０４１  測定時間情報
３０４２  測定回数情報
３０４３  閾値情報
３０４４  単位電力量テーブル
３０４５  処理時間比テーブル
３０５  電力差分生成部
３０５１  比較部
３０５２  差分算出部
３０５３〜３０５６  差分電力量
３０６  累計部
３０６２  累計電力格納部
３０６３  通知部
３０６４  カウンタ
３０６５〜３０６８  累積差分電力量の差分
４００〜４０３、５００〜５０３  実動作時の動作状態の期間
４１０〜４１３、５１０〜５１３  想定動作時（周波数ｆ１）の動作状態の期間
４２０〜４２３、５２０〜５２３  想定動作時（周波数ｆ２）の動作状態の期間
４３０〜４３３、５３０〜５３３  想定動作時（周波数ｆ３）の動作状態の期間
ｔ０〜ｔ５  タイミング
ｔｆ１〜ｔｆ３  フィードバックタイミング
５０１  データ処理装置１の電力特性
５０２  比較例に係るデータ処理装置の電力特性
【図１】
2013012003.tif 000003
【図２】
2013012003.tif 000004
【図３】
2013012003.tif 000005
【図４】
2013012003.tif 000006
【図５】
2013012003.tif 000007
【図６】
2013012003.tif 000008
【図７】
2013012003.tif 000009
【図８】
2013012003.tif 000010
【図９】
2013012003.tif 000011
【図１０】
2013012003.tif 000012