〔実施形態1〕
以下、本発明の実施の形態について、詳細に説明する。なお、以下の各実施形態では、CPU32に印加する電圧の印加電圧値やCPU32の動作周波数のソフトウェアによる制御としてDVFS制御を例に挙げて説明する。一方、CPU32に印加する電圧の印加電圧値のハードウェアによる制御としてAVS制御を例に挙げて説明する。ただし、これらに限定されない。
(情報処理装置1のハードウェア構成)
まず、本発明にかかる情報処理装置1のハードウェア構成の概略について図2に基づいて説明する。図2は、本発明に係る情報処理装置1のハードウェア構成の一例を示すブロック図である。なお、情報処理装置1は、操作入力部、マイク、スピーカ、カメラ部、表示部、記憶部、および充電器接続部などを備えていてもよいが、説明を簡略化するために、図2では図示していない。
情報処理装置1は、図2に示すように情報処理装置1を制御するホストコントローラ3、電池21、およびホストコントローラ3のCPUシステムブロック31(CPU32を含む)および情報処理装置1の各デバイス(図示せず)への電力供給を行う電源IC2(CPU印加電圧制御装置)を備えている。電源IC2とホストコントローラ3とは、電源IC2のCPUインタフェース28およびホストコントローラ3の電源ICインタフェース34を介して、I2C(Inter-Integrated Circuit)やSPMI(System Power Management Interface)などの通信によってデータなどの送受信を行う。なお、ここでは、情報処理装置1の各デバイスへの電力供給を行う部材として、電源IC2を例に挙げて説明するが、電源IC2の機能を集積回路とは異なる形態・構造の部材が担う構成であってもよい。
ホストコントローラ3は、情報処理装置1を制御するCPUシステムが搭載されており、CPUシステムブロック31、電源ICインタフェース34、システム電源制御部35、および記憶部36を備えている。さらに、CPUシステムブロック31は、CPU32およびAVSコントローラ33(CPU印加電圧設定部)を備えている。なお、ここでは、CPUシステムブロック31が1つのCPU32を搭載しているシングルコアシステムである場合を例に挙げて説明するがこれに限定されない。例えば、CPUシステムブロック31が複数のCPU32を搭載しているマルチコアシステムであっても良い。
CPUシステムブロック31には、CPU32とAVSコントローラ33が実装されている。AVSコントローラ33は、適応型電圧スケーラである。AVSコントローラ33は、CPU32の状態(CPUの温度、消費電流など)を監視しており、AVS制御により、CPUシステムブロック31のCPU32に印加する電圧を最適化するように、電源IC2のレジスタ25のCPU電圧設定値252(図1参照)へ設定する。なお、CPU32によるCPU印加電圧値の設定の変更とは独立に、CPU32の現在の状態に応じたCPU印加電圧値への設定の変更を電源IC2に対して行うものであれば、適応型電圧スケーラに限定されない。CPUシステムブロック31のCPU32に印加する電圧の印加電圧値は、CPUシステムブロック31によっても制御される。CPUシステムブロック31のDVFS制御部44(CPU制御部)(図1参照)は、記憶部36に記憶されているCPU使用率閾値61(図1参照)を参照して、現状のCPU使用率に応じて、CPU動作周波数を設定し、該CPU動作周波数に対応付けられたCPU印加電圧値(印加電圧値)を電源IC2のレジスタ25のCPU電圧設定値252へ設定する。すなわち、レジスタ25のCPU電圧設定値252へは、AVSコントローラ33およびCPUシステムブロック31のDVFS制御部44のどちらからも設定可能である。AVSコントローラ33およびCPUシステムブロック31のDVFS制御部44によって設定されるCPU印加電圧値はいずれも、ホストコントローラ3の電源ICインタフェース34および電源IC2のCPUインタフェース28を介して電源IC2の電源制御部22に送られる。電源制御部22は、AVSコントローラ33およびCPUシステムブロック31のDVFS制御部44のいずれかが設定した最新のCPU印加電圧値に基づいて、CPU32に印加する電圧値を制御する。なお、AVSコントローラ33およびCPUシステムブロック31のDVFS制御部44のいずれかがCPU印加電圧値を設定する際の処理については後に説明する。
システム電源制御部35は、情報処理装置1全体の電源管理を行うものであり、CPUシステムブロック31のCPU32とは別のCPUであってもよい。なお、システム電源制御部35については、後に説明する。
電源IC2は、ホストコントローラ3のCPUシステムブロック31に送られる電力の電圧を制御する電源制御部22、電源IC2が行う動作を制御する電源IC制御部23(論理回路部)、および前出のCPUインタフェース28が実装されている。また、電源IC制御部23は、さらに、電圧判定部24、レジスタ25(レジスタ部)、割り込みコントローラ26(割り込み制御部)、および電池残量・充電制御部27を備えている。電源制御部22および電池残量・充電制御部27は、電池21と接続されている。
電源制御部22は、電池21からCPUシステムブロック31へ供給する電力の電圧を制御する。電源制御部22は、出力電圧をプログラマブルに変更できるような電源回路(DC/DCなど)を備えており、電池21から供給される電力から、レジスタ25のCPU電圧設定値252に設定されている電圧値のCPU印加電圧を作成する。
レジスタ25は、電源制御部22の制御データを保持する書き換え可能な半導体記憶装置であり、CPU印加電圧上限値251およびCPU電圧設定値252が格納されている。CPU印加電圧上限値251は、ホストコントローラ3のCPU印加電圧制限部45(図1参照)によって設定される、現在のCPU動作周波数に対するCPU印加電圧として電力的に許容可能なCPU印加電圧値の上限値(電源電圧比較値)である。CPU印加電圧上限値251は、CPU動作周波数が変更される度にCPU印加電圧上限値251に設定(格納)される。一方、CPU電圧設定値252は、CPU32に印加する電圧の印加電圧値として設定された値であり、前述のように、CPU電圧設定値252は、AVSコントローラ33およびCPUシステムブロック31のDVFS制御部44のどちらからも設定可能である。なお、ここでは、レジスタ25を1つ備える場合を例に挙げているが、複数のレジスタ25を備える構成であってもよい。
電圧判定部24は、レジスタ25のCPU電圧設定値252が設定される毎に、CPU電圧設定値252とCPU印加電圧上限値251とを比較して、CPU電圧設定値252が、CPU印加電圧上限値251を超えていないかを監視する。CPU電圧設定値252が、CPU印加電圧上限値251を超えている場合は、ホストコントローラ3への割り込み(印加電圧情報)を出力するように割り込みコントローラ26へ指示する。
割り込みコントローラ26は、電圧判定部24からの割り込み要求に応じて、ホストコントローラ3に対して割り込みを発生させる。なお、割り込みコントローラ26は、他のブロックからの要求に基づいて、ホストコントローラ3に対して様々な割り込みを発生させてもよい。
すなわち、電源IC2には、電圧判定部24、および割り込みコントローラ26として機能する論理回路が形成されている。
電池残量・充電制御部27は、定期的に電池21の電池残量を確認しており、ホストコントローラ3の電池残量確認部52(図1参照)に現在の電池残量に関する情報(電池残量情報)を通知する。また、電池残量・充電制御部27は、電池21の充電の制御も行う。なお、充電器(図示せず)が接続されたことを検知したとき、ホストコントローラ3へ割り込みによって、充電を開始することを通知してもよい。
(情報処理装置1の構成)
次に、情報処理装置1の構成について図1に基づいて説明する。図1は、本発明に係る情報処理装置1の要部構成の一例を示す機能ブロック図である。なお、図1においては、図2に示したCPUインタフェース28および電源ICインタフェース34は、説明を簡略化するために、その図示を省略する。また、説明の便宜上、既に上記で説明した部材については、その説明を省略する。
情報処理装置1は、定期的に電池残量をポーリングして、事前に決めた閾値以下に電池残量が減少していないかを確認し、電池残量が閾値以下になった場合は、電池寿命を延ばすために、CPU32のCPU動作周波数が高速になることを回避するように制御する。
情報処理装置1は、前述のように、電源IC2およびホストコントローラ3を備えており、ホストコントローラ3は、CPUシステムブロック31、電源ICインタフェース34、システム電源制御部35、および記憶部36を備えている。
まず、CPUシステムブロック31の構成について説明する。CPUシステムブロック31は、さらに、CPU32およびAVSコントローラ33を備えている。
CPU32は、省電力モードを含む1または複数の動作モードを有する情報処理装置1に搭載され、情報処理装置1の動作を制御する。CPU32は、主機能部41、CPU周波数制御部37および割り込みコントローラ46を備える。なお、ホストコントローラ3が記憶部36を含まない構成であってもよい。主機能部41は、情報処理装置1の様々な処理を実行する。CPU周波数制御部37は、CPU32の動作周波数を制御して、情報処理装置1のパフォーマンスを制御する。CPU周波数制御部37は、CPU使用率モニタ部42、CPU周波数−印加電圧テーブル選択部43、DVFS制御部44、およびCPU印加電圧制限部45を備えている。割り込みコントローラ46は、電源IC2の割り込みコントローラ26からの割り込みを受け付けて、割り込みを受け付けたことをDVFS制御部44に通知する。
CPU使用率モニタ部42は、定期的にCPU32のCPU使用率を監視しており、取得したCPU使用率をDVFS制御部44に送る。
CPU周波数−印加電圧テーブル選択部43は、モード決定部51からの電池残量情報に基づいて、記憶部36のCPU使用率閾値61に格納されている、通常モードか省電力モードかのいずれかのCPU使用率閾値のテーブルを読み出す。
DVFS制御部44は、CPU周波数−印加電圧テーブル選択部43によって読み出されたCPU使用率閾値61のテーブルに規定されたCPU使用率閾値と、CPU使用率モニタ部42から取得したCPU使用率とを比較する。CPU使用率モニタ部42から取得したCPU使用率が、閾値を超えている場合、DVFS制御部44は、CPU周波数−印加電圧テーブル選択部43によって読み出されたCPU使用率閾値61を参照して、1段階アップしたときにCPU動作周波数を決定する。そして、DVFS制御部44は、CPU印加電圧値をCPU周波数−印加電圧設定値63(図3参照)に規定されている、変更先のCPU動作周波数に対応するDVFS制御設定電圧の電圧値を設定し、続けて、変更したいCPU動作周波数へとCPU動作周波数を設定する。
CPU32の動作周波数の変更は、CPUシステムブロック31のPLL(Phase lock loop)設定などを変更することにより行われる。一方、CPU32に印加する電圧の印加電圧値の変更は、電源IC2のレジスタ25のCPU電圧設定値252へ、電圧値を設定することにより行われる。
DVFS制御部44は、割り込みコントローラ46から、割り込みを受け取る。この割り込みは、現在のレジスタ25に設定されているCPU電圧設定値252がCPU印加電圧上限値251を超えた場合に発生する。DVFS制御部44が、割り込みを検出した場合にCPU動作周波数を制御する処理については後に説明する。
CPU印加電圧制限部45は、現在のCPU動作周波数に対応するCPU周波数アップ許可電圧値を、記憶部36のCPU周波数アップ許可電圧62を参照して、読み出すとともに、電源IC2のレジスタ25からCPU電圧設定値252を読み出す。CPU印加電圧制限部45は、現在のCPU周波数に基づいて、CPU印加電圧の上限値を決定し(図6参照)、レジスタ25のCPU印加電圧上限値251へ設定する。
DVFS制御部44がCPU動作周波数を変更するとき、CPU印加電圧制限部45に対して、CPU動作周波数をアップしてもよいか否かを問い合せ、CPU印加電圧制限部45は、現在のCPU32に印加されている電圧の印加電圧値がCPU周波数アップ許可電圧値以下であれば、CPU動作周波数をアップしてもよい許可信号をDVFS制御部44に出力する(図7のS107にてNO)。
続いて、システム電源制御部35の構成について説明する。システム電源制御部35は、情報処理装置1全体の電源管理を行っており、モード決定部51および電池残量確認部52を備えている。なお、システム電源制御部35は、CPUシステムブロック31のCPU32と異なるCPUであってもよい。
電池残量確認部52は、電源IC2の電池残量・充電制御部27に定期的に電池残量を通知するように要求し、電池残量・充電制御部27から、電池残量情報を定期的に取得する。取得した電池残量情報は、モード決定部51に送る。
モード決定部51は、電池残量確認部52からの電池残量情報に基づいて、動作モードを通常モードか省電力モードかのいずれかに切り替えることを決定して、CPU周波数制御部37に通知する。例えば、情報処理装置1が電池21に充電された電力のみで動作しているときに電池残量が10%以下になった場合には、モード決定部51は通常モードから省電力モードに移行するようにCPU周波数制御部37に指示する。逆に、情報処理装置1が充電器と接続され、電池21の充電量が増加し、電池残量が10%より多くなった場合には、モード決定部51は省電力モードから通常モードに移行するようにCPU周波数制御部37に指示する。
なお、ここでは、モード決定部51が選択可能なモードとして、「通常モード」および「省電力モード」の2つのモードがある場合を例に挙げて説明するが、切り替え可能なモードとして3つ以上を備えていてもよい。例えば、所望の機能のCPU動作周波数を優先的に制御するお好みモードや、就寝時間帯に応じてCPU動作周波数を制御するお休みモードなど、さまざまなモードに切り替える構成であってもよい。
(CPU印加電圧値の制御)
以下では、情報処理装置1におけるCPU印加電圧値の制御について、図3を用いて説明する。図3は、CPU印加電圧値を制御するときに参照されるCPU周波数−印加電圧設定値63の例を示す図である。
情報処理装置1は、CPU32の動作時のCPU使用率に応じた、DVFS制御によるCPU印加電圧値の制御(ソフトウェアによる制御)と、CPU32の状態(CPUの温度、消費電流など)応じたAVS制御によるCPU印加電圧値の制御(ハードウェアによる制御)とを行うことができる。
CPU動作周波数およびCPU印加電圧値がDVFS制御により変更される場合、設定されたDVFS制御設定電圧に対応する各周波数に応じて、所定のCPU印加電圧値が設定される。DVFS制御によってCPU印加電圧の電圧値が変更された後は、AVSコントローラ33がCPUの温度や消費電流などに応じた最適なCPU印加電圧の電圧値を、周波数毎に規定されたCPU印加電圧値の範囲内で調整する。
以下に、DVFS制御およびAVS制御の一例について以下に説明する。まず、DVFS制御について説明する。
CPU使用率モニタ部42は、定期的にCPU32のCPU使用率をモニタして、DVFS制御部44に送る。一方、CPU周波数−印加電圧テーブル選択部43は、電池残量確認部52からの電池残量情報に基づいてモード決定部51によって決定された動作モード(例えば、通常モードか省電力モードか)に対応付けられたCPU使用率の閾値を規定するCPU使用率閾値61を選択し、DVFS制御部44に送る。CPU周波数−印加電圧テーブル選択部43は、例えば、通常モードであれば、CPU使用率閾値61から図4に示すテーブルを選択し、省電力モードであれば、CPU使用率閾値61から図5に示すテーブルを選択する。
DVFS制御部44は、現在のCPU使用率が、CPU使用率閾値61に規定されたCPU動作周波数アップ(UP)の閾値、またはCPU動作周波数ダウン(DOWN)の閾値を超えているか否かを確認する。現在のCPU使用率が、CPU使用率閾値61に規定されたCPU動作周波数アップ(UP)の閾値より大きい場合、DVFS制御部44は、図3に示すCPU周波数−印加電圧設定値63を記憶部36から読み出して、現在のCPU動作周波数より1段階高い周波数へ変更する。同様に、現在のCPU使用率が、CPU使用率閾値61に規定されたCPU動作周波数ダウン(DOWN)の閾値より小さい場合、DVFS制御部44は、図3に示すCPU周波数−印加電圧設定値63を記憶部36から読み出して、現在のCPU動作周波数より1段階低い周波数へ変更する。
なお、CPU動作周波数をアップする場合には、次の(1A)および(2A)の2段階で行う。(1A)CPU印加電圧をCPU周波数−印加電圧設定値63(図3)を参照して、変更しようとしているCPU動作周波数(変更目標のCPU動作周波数)のDVFS制御設定電圧値に設定する。(2A)次に、CPU動作周波数を変更する。一方、CPU動作周波数をダウンする場合には、次の(1B)および(2B)の2段階で行う。(1B)CPU動作周波数を変更する。(2B)次に、CPU周波数−印加電圧設定値63(図3)を参照して、CPU印加電圧を(1B)で変更したCPU動作周波数のDVFS制御設定電圧値に設定する。
次に、AVS制御について説明する。
AVS制御は、AVSコントローラ33によるハードウェア制御によって、CPU32の温度や消費電量に応じた最適なCPU印加電圧値を、図3に示すような各CPU動作周波数に対して規定されたCPU印加電圧の値の範囲内で調整する。AVS制御はソフトウェア制御からは独立しており、情報処理装置1が起動中は常時動作している。AVSコントローラ33はCPU32に印加される電圧値の変更を決定すると、レジスタ25のCPU電圧設定値252に電圧値を設定する。すなわち、レジスタ25のCPU電圧設定値252には、DVFS制御によって設定されたCPU印加電圧値、およびAVS制御によって設定されたCPU印加電圧値がいずれも設定可能である。AVS制御はハードウェア制御であるため、AVS制御によってCPU印加電圧値が設定されたことを、CPU周波数制御部37がリアルタイムに把握することができない。
なお、AVS制御によってCPU印加電圧の設定を変更するときの制御ロジックについては、本発明の特徴点とは直接関係が無いため、その説明を省略するが、例えば、特許文献1に記載の制御ロジックなどが適用され得る。
ここでは、CPU周波数−印加電圧設定値63を参照してCPU動作周波数をアップする場合について、図3を用いて具体的に説明する。CPU32のCPU動作周波数は、300MHz、400MHz、・・・、1.5GHzなどと段階的に設定可能であり、例えば、CPU動作周波数が1.2GHzのときには、DVFS制御設定電圧は1.2Vであり、AVS制御によって調節可能なCPU印加電圧値の範囲は1.15〜1.35Vである。800MHzのときには、DVFS制御設定電圧は1.1Vであり、AVS制御によって調節可能なCPU印加電圧値の範囲は1.05〜1.15Vである。
なお、図3ではCPU動作周波数として設定され得る各段階の一例として、300MHz、400MHz、・・・、1.5GHzを示したがこれに限定されない。例えば、より細かくCPU動作周波数の制御が可能なように多くの段階を設ける構成(例えば、300MHz〜1.5GHzを100MHz毎に設定可能とする構成)であってもよいし、逆に、より少ない段階を設ける構成であってもよい。なお、以下では、図3に示す、AVSコントローラが設定するCPU印加電圧値が対応付けられているCPU動作周波数において、1.5GHzから1.2GHzへ、1.2GHzから1.0GHzへ、などのようにCPU動作周波数を1段階ずつ切り替える処理を、「1段階下げる」などと表現している。
(通常モードおよび省電力モードにおけるCPU動作周波数の制御)
次に、通常モードおよび省電力モードにおいて参照する、記憶部36に記憶されているCPU使用率閾値61について、図4および図5を用いて説明する。図4は、通常モードにおけるCPU動作周波数の制御の一例を示す図であり、図5は、省電力モードにおけるCPU動作周波数の制御の一例を示す図である。
CPU動作周波数の変更方法は、通常モードと省電力モードとでは異なっている。CPU周波数−印加電圧テーブル選択部43は、モード決定部51が決定した動作モードが通常モードであれば、図4のテーブルを選択し、省電力モードであれば、図5のテーブルを選択する。例えば、CPU動作周波数が上がると消費電力量が増すため、省電力モードでは、通常モードに比べてCPU動作周波数が高くなりにくい設定となっている。図5に示すように、省電力モードでは、通常モードでは使用可能である(図4参照)、CPU動作周波数の最高の周波数の1.5GHzを使用禁止にしている。
DVFS制御部44はCPU使用率が高くなると、図4および図5に示すようなCPU動作周波数の段階において、1段階上のCPU動作周波数に切り替える制御を行うが、この制御の閾値として設定されているCPU動作周波数UPの閾値およびCPU動作周波数Downの閾値(%)の値が、通常モードと省電力モードとで異なる値が設定されている。例えば、通常モードにおいて、1.0GHzで動作しているCPU32のCPU使用率が75%を超えると、DVFS制御部44は、1.0GHzから1.2GHzへとCPU動作周波数を1段階上げる(図4参照)。一方、省電力モードでは、1.0GHzで動作しているCPU32のCPU使用率が85%を超えるまで、CPU動作周波数を上げない。すなわち、省電力モードではCPU動作周波数を切り替えるときのCPU使用率の閾値が高く設定されている。これにより、通常モードのときはCPU動作周波数を上げるときの閾値であったCPU使用率に達していても、省電力モードではCPU動作周波数を維持する。また、通常モードのときはCPU動作周波数を下げるときの閾値のCPU使用率に達する前に省電力モードではCPU動作周波数を下げる。このような制御を行うことで、省電力モードにおいて、CPU動作周波数が高くなることを回避している。
(省電力モードでの、CPU印加電圧の上限値およびCPU周波数アップ許可電圧)
次に、現在のCPU動作周波数に対応したCPU印加電圧の上限値およびCPU周波数アップ許可電圧について図6を用いて説明する。図6は、省電力モードにおける、CPU動作周波数に対応するCPU印加電圧の上限値およびCPU周波数アップ許可電圧の一例を示す図である。
CPU印加電圧制限部45は、CPU使用率が図5のCPU動作周波数UPの閾値を超えたときに、電源IC2のレジスタ25に記憶されている現在設定されているCPU印加電圧が、記憶部36に格納されているCPU周波数アップ許可電圧62に規定されているCPU周波数アップ許可電圧以下か否かを判定する。そして、現在のCPU印加電圧値が、CPU周波数アップ許可電圧以下であれば、DVFS制御部44は、CPU動作周波数を上げて、その周波数に応じたCPU32の印加電圧の上限値を電源IC2のレジスタ25のCPU印加電圧上限値251に設定する。一方、現在のCPU印加電圧値が、CPU周波数アップ許可電圧を超えている場合、CPU使用率がたとえCPU動作周波数UPの閾値を超えていても、CPU動作周波数を上げない。
なお、CPU動作周波数が、400MHz、300MHzのときは、図3のように、CPU印加電圧はAVS制御を行なわなくてもよい。したがって、図6では、CPU動作周波数が400MHz、300MHzのときは、割り込みが発生し得ないCPU印加電圧の上限値と、動作周波数ダウンを妨げないCPU周波数アップ許可電圧とが設定されてもよい。
(省電力モードに切り替わったときに、CPU印加電圧値を制御する処理の流れ)
情報処理装置1は、省電力モードを含む1または複数の動作モードを有する情報処理装置1の動作を制御するCPU32と、CPU32に印加する電圧のCPU印加電圧値を制御する電源IC2と、CPU印加電圧値を電源IC2に設定するAVSコントローラ33とを有し、CPU32に現在印加されている電圧のCPU印加電圧値が、CPU32の現在のCPU動作周波数に予め対応付けられたCPU印加電圧の上限値より高い場合、AVSコントローラ33が設定するCPU印加電圧値が、当該動作周波数に予め対応付けられたCPU印加電圧の上限値以下となるように、CPU動作周波数を下げる。これにより、AVSコントローラ33によるCPU印加電圧値の制御と、DVFS制御部44によるCPU動作周波数の制御とを適切に組み合わせて、CPU印加電圧をより細かく制御することにより、精度の高い電力制御を実現し、情報処理装置1の消費電力量をより効果的に低減させることができる。
以下では、通常モードで動作中に電池残量が少ないことを検出して、省電力モードに切り替わったときに、CPU印加電圧値を制御する処理の流れについて、図7を用いて説明する。図7は、通常モードから省電力モードに切り替わったときに、CPU印加電圧値を制御する処理の流れを示すフローチャートである。
電池残量確認部52は、電池残量・充電制御部27をポーリングしており、電池残量・充電制御部27からの電池残量情報を定期的に取得して、電池21の電池残量が所定の閾値以下になっているか否かを判定している。電池残量が閾値以下であることを検出すると(S101にてYes)、電池残量確認部52は、モード決定部51に対して、電池残量が所定の閾値以下になっていることを示す電池残量情報を出力する。電池残量情報を取得したモード決定部51は、通常モードから省電力モードへ移行するようにCPU周波数制御部37に指示する(S102)。
次に、CPU印加電圧制限部45は、省電力モードにおけるCPU動作周波数に応じたCPU印加電圧の上限値(図6参照)を電源IC2のレジスタ25のCPU印加電圧上限値251に設定する(S103)。
電圧判定部24は、電源IC2の電圧判定部24用に用意された割り込み要因の割り込みマスクを解除(マスク無効化)する(S104)。これにより、CPU32への印加電圧がAVSコントローラ33から電源制御部22が取得しているCPU印加電圧の上限値を超えたときに、電源IC2からホストコントローラ3への割り込みが可能となる。
電圧判定部24は、CPU電圧設定値252と、CPU印加電圧上限値251とを比較して、CPU電圧設定値252がCPU印加電圧上限値251を超えていないかを監視している。
電圧判定部24が、CPU印加電圧上限値251に記憶されているCPU印加電圧の上限値よりも高いCPU印加電圧値がレジスタ25に記憶されている(すなわち、CPU32に現在印加されている電圧のCPU印加電圧値が、CPU印加電圧の上限値よりも高い)ことを検出すると、割り込みコントローラ26はホストコントローラ3に対する割り込みを発生させる。
ホストコントローラ3の割り込みコントローラ46が、電源IC2の割り込みコントローラ26からの割り込みを検出した場合(S105にてYES)、割り込みコントローラ46は割り込み発生の要因を受信した割り込み信号から読み取り、CPU印加電圧が上限値を超えたことを確認するとともに、電圧判定部24用に用意された割り込みにマスクをかける(S109a)。割り込みコントローラ46が割り込みを検出したことをDVFS制御部44に通知し、該通知を受け取ったDVFS制御部44は、CPU32の動作周波数を1段階下の周波数へ下げる(図3参照)。さらに、CPU印加電圧制限部45は、変更後のCPU動作周波数に応じたCPU印加電圧の上限値(図6参照)をレジスタ25のCPU印加電圧上限値251に設定する(S109b:CPU制御ステップ)。
その後に、例えば、1.0秒間の待ち時間を設ける(S110)。最後に、割り込みコントローラ46は、電圧判定部24用に用意されていたマスクを外すように指示して、電源IC2からの割り込みを有効化して(S111)、S105に戻る。
一方、割り込みコントローラ46が割り込みコントローラ26からの割り込みを検出していない場合(S105においてNO)、CPU使用率モニタ部42は、定期的にCPU32のCPU使用率をモニタしており、DVFS制御部44は、現在のCPU動作周波数に対するCPU使用率が、省電力モードにおけるCPU動作周波数を切り替えるときのCPU使用率の閾値(図5参照)を超えているか否かを判定する。なお、現在のCPU使用率がCPU使用率閾値を超えている場合には、CPU動作周波数Downの閾値以下である場合とCPU動作周波数UPの閾値以上である場合とが含まれているが、図7では前者の場合のみを図示している。例えば、CPU使用率が、CPU動作周波数Downの閾値以下である場合には、CPU動作周波数を1段階下げた後にS103に戻り、S103以降の処理を行えばよい(図示せず)。
DVFS制御部44が、現在のCPU使用率がCPU動作周波数UPの閾値以下と判定した場合(S106にてNO)、現在のCPU動作周波数を維持してS105に戻る。一方、DVFS制御部44が、現在のCPU使用率がCPU動作周波数UPの閾値より高いと判定した場合(S106にてYES)、CPU印加電圧制限部45は、レジスタ25に記憶されている、CPU32に現在印加されている電圧のCPU電圧設定値252が、CPU周波数アップ許可電圧62に規定されているCPU周波数アップ許可電圧の電圧値を超えているか否かを判定する(S107)。CPU32に現在印加されている電圧のCPU印加電圧値が、CPU周波数アップ許可電圧62に規定されたCPU周波数アップ許可電圧の電圧値を超えている場合(S107にてYES)、DVFS制御部44は現在のCPU動作周波数を維持してS105に戻る。他方、CPU32に現在印加されている電圧のCPU印加電圧値が、CPU周波数アップ許可電圧62に規定されたCPU周波数アップ許可電圧の電圧値以下の場合(S107にてNO)、DVFS制御部44はCPU動作周波数を1段階上の周波数に上げて、変更後のCPU動作周波数に応じたCPU印加電圧の上限値を電源IC2のCPU印加電圧上限値251へ設定して(S108)、S105に戻る。
このように、情報処理装置1は、電源IC2からCPU32に現在印加されている電圧のCPU印加電圧値が、CPU32の動作周波数毎に予め対応づけられたCPU印加電圧の上限値より高いことを示す割り込み(印加電圧情報)を電源IC2から取得した場合、CPU印加電圧値が、CPU動作周波数に応じたCPU印加電圧の上限値以下となるように、CPU動作周波数を制御する。これにより、情報処理装置1が省電力モードで動作するときに、許容できないCPU印加電圧値がAVS制御によって設定された場合であっても、CPU32の動作周波数を落とすことによって、情報処理装置1の省電力を実現することができる。
(通常モードに切り替わったときに、CPU印加電圧値を制御する処理の流れ)
続いて、情報処理装置1が充電器(図示せず)に接続された場合、または電池残量が増加した場合などにおいて、省電力モードから通常モードに切り替わったときの処理の流れについて、図8を用いて説明する。図8は、省電力モードから通常モードに切り替わったときに、CPU印加電圧値を制御する処理の流れを示すフローチャートである。
電池残量確認部52は、電池残量・充電制御部27をポーリングしており、電池残量・充電制御部27からの電池残量情報を定期的に取得して、電池21の電池残量が増加して所定の閾値より多くなっているか否かを判定している。また、電池残量・充電制御部27は、情報処理装置1が充電器と接続されたことを検出した場合(S201にてYES)、システム電源制御部35(例えば、電池残量確認部52)は、電源IC2の電圧判定部24用に用意されていたマスクをかける(マスク有効化)ように電圧判定部24に指示する(S202)。
モード決定部51は、電池21の電池残量の増加、または充電器との接続が検出された旨を示す情報を電池残量確認部52から取得して、動作モードを省電力モードから通常モードへ切り替えるように、CPU周波数制御部37に指示する(S203)。
このように、情報処理装置1は、電源IC2からホストコントローラ3への割り込みを無効化してから、省電力モードから通常モードにモードを切り替える。これにより、省電力モードから通常モードへの切り替えに伴うCPU動作周波数の制御において、DVFS制御部44が無駄な割り込みを受け付けることが無いため、モード切り替えにおけるCPUの動作周波数の制御を円滑に行うことができる。
(情報処理装置1のCPU印加電圧値およびCPU動作周波数の制御により実現される省電力効果の見積もり)
以下では、情報処理装置1のCPU印加電圧値およびCPU動作周波数の制御による電力削減の見積もりの一例を説明する。
非特許文献1によれば、CPUのアクティブ電力をP、スイッチ容量をC、CPUクロック周波数(CPU動作周波数)をf、および電源電圧値(CPU印加電圧値)をVとしたとき、P=α(係数)×C×f×V2(式1)という関係式が成り立つ。すなわち、CPUのアクティブ電力Pは、CPUクロック周波数fおよび電源電圧の2乗V2に依存している。ここで、スイッチ容量Cは、(単位面積当たりの容量)×(チップ面積)によって求められる値であり、同じCPUについてのアクティブ電力を求める場合には、スイッチ容量Cの値は不変である。なお、以下の説明では、係数αは説明を簡略化するために省略する。
AVS制御によってCPU印加電圧値(図3)を制御する機能を備える電子機器は、CPU動作周波数が1.2GHz、CPU印加電圧値が1.15〜1.35Vで動作する。このCPU動作周波数およびCPU印加電圧値は、電池残量が低下して省電力モードで動作する場合においても変更されない。例えば、CPU動作周波数が1.2GHz、CPU印加電圧値が1.25Vで動作している場合は、アクティブ消費電力P1(W;ワット)は上記の式1を用いて、P1=C×f×V2=C×1.2×1.352=2.187C(W)と算出される。
これに対し、本発明の情報処理装置1が上記電子機器と同じCPU構成を有する場合、省電力モードに切り替わったときのCPU印加電圧値が1.25Vである場合には、電源IC2の割り込みコントローラ26からの割り込みを受け付けたDVFS制御部44が、CPU動作周波数を1.2GHzから1.0GHzへと低下させる。このときのアクティブ消費電力P2は、P2=C×1.0×1.252=1.5625C(W)と算出される。このように、本発明の情報処理装置1、1aは、単にAVS制御を備えるだけの電子機器に比べて、P1−P2=0.6245C(W)の消費電力の削減効果がさらに見込まれる。
〔実施形態2〕
本発明の他の実施形態について、図9〜図12に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
本実施形態に係る情報処理装置1aは、電源IC制御部23aがレジスタ25a(レジスタ部)のみを備えている点、および記憶部36aにCPU印加電圧上限値64を記憶する点で情報処理装置1の構成と異なっている。
まず、本発明にかかる情報処理装置1aのハードウェア構成の概略について図10に基づいて説明する。図10は、本実施形態に係る情報処理装置1aのハードウェア構成の一例を示すブロック図である。なお、情報処理装置1aは、操作入力部、マイク、スピーカ、カメラ部、表示部、記憶部、および充電器接続部などを備えていてもよいが、説明を簡略化するために、図10では図示していない。
情報処理装置1aは、図10に示すように情報処理装置1aを制御するホストコントローラ3aおよびホストコントローラ3aのCPU32aおよび情報処理装置1aの各デバイス(図示せず)への電力供給を行う電源IC2aを備えている。電源IC2aとホストコントローラ3aとは、電源IC2aのCPUインタフェース28およびホストコントローラ3aの電源ICインタフェース34を介して、I2CやSPMIなどの通信によってデータなどの送受信を行う。
ホストコントローラ3aは、情報処理装置1aを制御するCPUシステムが搭載されており、CPUシステムブロック31a、電源ICインタフェース34、システム電源制御部35、および記憶部36aを備えている。さらに、CPUシステムブロック31aは、CPU32aおよびAVSコントローラ33を備えている。なお、CPUシステムブロック31aは、シングルコアシステムであってもよいし、マルチコアシステムであっても良い。
電源IC2aは、CPUシステムブロック31aのCPU32aなどに供給する電力の電圧を制御する電源制御部22、電源IC2aが行う動作を制御する電源IC制御部23a、および前出のCPUインタフェース28が実装されている。電源制御部22は、電池21からCPUシステムブロック31aへ供給する電力の電圧を制御する。電源制御部22は、出力電圧をプログラマブルに変更できるような電源回路(DC/DCなど)を備えており、電池21から供給される電力から、レジスタ25aのCPU電圧設定値252に設定されている電圧値のCPU印加電圧を作成する。また、電源IC制御部23aは、レジスタ25aおよび電池残量・充電制御部27を備えている。
(情報処理装置1aの構成)
次に、情報処理装置1aの構成について図9に基づいて説明する。図9は、本実施形態に係る情報処理装置1aの要部構成の一例を示す機能ブロック図である。なお、説明の便宜上、既に上記で説明した部材については、その説明を省略する。
情報処理装置1aは、電源IC2aおよびホストコントローラ3aを備えている。電源IC2aは、電源制御部22、レジスタ25a、および電池残量・充電制御部27を備えており、一方、ホストコントローラ3aは、CPUシステムブロック31a、システム電源制御部35、および記憶部36aを備えている。なお、ホストコントローラ3aが記憶部36aを含まない構成であってもよい。
CPUシステムブロック31aは、CPU32aおよびAVSコントローラ33を備えており、CPU32aは、省電力モードを含む1または複数の動作モードを有する情報処理装置1aに搭載され、該情報処理装置1aの動作を制御する。CPU32aは、主機能部41およびCPU周波数制御部37を備えている。システム電源制御部35は、モード決定部51および電池残量確認部52を備えている。
記憶部36aは、CPU使用率閾値61、CPU周波数アップ許可電圧62、CPU周波数−印加電圧設定値63、およびCPU印加電圧上限値64を備えている。すなわち、図1の情報処理装置1では、電源IC2の、レジスタ25のCPU印加電圧上限値251に設定されていたCPU印加電圧の上限値が、本実施形態に係る情報処理装置1aでは、記憶部36aのCPU印加電圧上限値64に設定される。
記憶部36aのCPU印加電圧上限値64は、ホストコントローラ3aのCPU印加電圧制限部45によって設定される、現在のCPU動作周波数に対するCPU印加電圧として電力的に許容可能なCPU印加電圧値の上限値(電源電圧比較値)である。CPU印加電圧の上限値は、CPU動作周波数が変更される度に記憶部36aのCPU印加電圧上限値64に設定される。
CPU32aの動作周波数の変更は、CPUシステムブロック31aのPLL設定などを変更することにより行われる。一方、CPU32aに印加する電圧の印加電圧値の変更は、電源IC2aのレジスタ25aのCPU電圧設定値252へ、電圧値を設定することにより行われる。また、DVFS制御部44は、CPU印加電圧制限部45に対して、現在のCPU動作周波数を出力してもよい。
DVFS制御部44は、CPU印加電圧が設定されている電源IC2aのレジスタ25aをポーリングして、電源IC2aからCPU32aに印加されている電圧のCPU印加電圧値を定期的に取得する。DVFS制御部44は、CPU周波数−印加電圧テーブル選択部43によって読み出されたCPU使用率閾値61のテーブルに規定されたCPU使用率閾値と、CPU使用率モニタ部42から取得したCPU使用率とを比較する。CPU使用率モニタ部42から取得したCPU使用率が閾値を超えている場合、DVFS制御部44は、CPU周波数−印加電圧テーブル選択部43によって読み出されたCPU使用率閾値61を参照して、1段階アップしたときにCPU動作周波数を決定する。そして、DVFS制御部44は、CPU印加電圧値をCPU周波数−印加電圧設定値63(図3参照)に規定されている、変更先のCPU動作周波数に対応するDVFS制御設定電圧の電圧値を設定し、続けて、変更先のCPU動作周波数へとCPU動作周波数を設定する。
すなわち、電源IC2aには、CPU32aからのポーリングに対してCPU印加電圧値を送信するレジスタ25aとして機能する論理回路が形成されている。
CPU印加電圧制限部45は、現在のCPU動作周波数に対応するCPU周波数アップ許可電圧値を、記憶部36aのCPU周波数アップ許可電圧62を参照して、読み出すとともに、電源IC2aのレジスタ25aからCPU電圧設定値252を読み出す。CPU印加電圧制限部45は、現在のCPU周波数に基づいて、CPU印加電圧の上限値を決定し(図6参照)、記憶部36aのCPU印加電圧上限値64へ設定する。
この構成によれば、DVFS制御部44がレジスタ25aをポーリングすることにより、電源IC2aからCPU32aに印加されている電圧値を、ホストコントローラ3aが把握することができるため、情報処理装置1aが省電力モードで動作するときに、許容できないCPU印加電圧値がAVS制御によって設定された場合であっても、CPU32aの動作周波数を落とすことにより、情報処理装置1aの省電力を実現することができる。
(省電力モードに切り替わったときに、CPU印加電圧値を制御する処理の流れ)
ここでは、通常モードで動作中に電池残量が少ないことを検出して、省電力モードに切り替わったときに、情報処理装置1aがCPU印加電圧値を制御する処理の流れについて、図11を用いて説明する。図11は、通常モードから省電力モードに切り替わったときに、CPU印加電圧値を制御する処理の流れを示すフローチャートである。
電池残量確認部52は、電池残量・充電制御部27をポーリングしており、電池残量・充電制御部27から電池残量情報を定期的に取得して、電池21の電池残量が所定の閾値以下になっているか否かを判定している。電池残量が閾値以下であることを検出すると(S301にてYes)、電池残量確認部52は、モード決定部51に対して、電池残量が所定の閾値以下になっていることを示す電池残量情報を出力する。電池残量情報を取得したモード決定部51は、通常モードから省電力モードへ移行するようにCPU周波数制御部37に指示する(S302)。
DVFS制御部44は、現在のCPU動作周波数を確認し、CPU動作周波数に応じたCPU印加電圧の上限値を記憶部36aから読み出す(S303)。またDVFS制御部44は、省電力モードに切り替わると、CPU32aに現在印加されている電圧のCPU印加電圧値のポーリングを開始する(S304)。
DVFS制御部44は、電池21の電圧が設定されているレジスタ25aのCPU電圧設定値252をポーリングして、CPU印加電圧として設定された電圧がCPU印加電圧の上限値を超えていないか(印加電圧情報)を判定する(S305)。現在のCPU印加電圧値が、CPU印加電圧の上限値を超えている場合(S305にてYES)、DVFS制御部44はCPU動作周波数を1段階下のCPU動作周波数へ下げて(図3参照)、変更したCPU動作周波数に応じたCPU印加電圧の上限値(図6参照)を、CPU印加電圧値の判定を行うためのCPU印加電圧の上限値として設定する(S309:CPU制御ステップ)。
その後、例えば1.0秒間の待ち時間を設ける(S310)。この最適化が完了するまで、DVFS制御部44は、CPU印加電圧値のポーリングを行わないことが望ましい。
現在のCPU印加電圧値が、CPU印加電圧の上限値以下である場合(S305にてNO)、DVFS制御部44は、現在のCPU使用率がCPU動作周波数UPの閾値を超えているか否かを判定する(S306)。DVFS制御部44が、現在のCPU使用率がCPU動作周波数UPの閾値以下である場合(S306にてNO)、現在のCPU動作周波数を維持してS305に戻る。一方、DVFS制御部44が、現在のCPU使用率がCPU動作周波数UPの閾値より高いと判定した場合(S306にてYES)、CPU印加電圧制限部45は、レジスタ25aに記憶されている、CPU32aに現在印加されている電圧のCPU印加電圧値が、CPU周波数アップ許可電圧62に規定されているCPU周波数アップ許可電圧値を超えているか否かを判定する(S307)。CPU32aに現在印加されている電圧のCPU印加電圧値が、CPU周波数アップ許可電圧62に規定されているCPU周波数アップ許可電圧値を超えている場合(S307でYES)、現在のCPU動作周波数を維持してS305に戻る。他方、CPU32aに現在印加されている電圧のCPU印加電圧値が、CPU周波数アップ許可電圧62に規定されているCPU周波数アップ許可電圧値以下の場合(S307にてNO)、DVFS制御部44はCPU動作周波数を1段階上の周波数に上げて、変更後のCPU動作周波数に応じたCPU印加電圧の上限値を読み出して(S308)、S305に戻る。
このように、情報処理装置1aは、CPU32aに現在印加されている電圧のCPU印加電圧値をレジスタ25aのCPU電圧設定値252へのポーリングによって取得し、CPU32aに現在印加されている電圧のCPU印加電圧値が、CPU32aの動作周波数に予め対応づけられたCPU印加電圧の上限値より高い場合、CPU動作周波数を適切に制御する。これにより、情報処理装置1aが省電力モードで動作するときに、許容できないCPU印加電圧値がAVS制御によって設定された場合であっても、CPU32aの動作周波数を落とすことによって、情報処理装置1aの省電力を実現することができる。
(通常モードに切り替わったときに、CPU印加電圧値を制御する処理の流れ)
続いて、情報処理装置1aが充電器(図示せず)に接続された場合、または電池残量が増加した場合などにおいて、省電力モードから通常モードに切り替わったときの処理の流れについて、図12を用いて説明する。図12は、省電力モードから通常モードに切り替わったときに、CPU印加電圧値を制御する処理の流れを示すフローチャートである。
電池残量確認部52は、電池残量・充電制御部27をポーリングしており、電池残量・充電制御部27から電池残量情報を定期的に取得して、電池21の電池残量が増加して所定の閾値より多くなっているか否かを判定している。また、電池残量・充電制御部27は、情報処理装置1aが充電器と接続されたことを検出した場合(S401においてYES)、モード決定部51からの通知を受け取ったDVFS制御部44は、省電力モードにおいて定期的に行っていた、電池21の電圧が設定されているレジスタ25aへのポーリングを解除する(S402)。
次にモード決定部51は、電池21の電池残量の増加、または充電器との接続を電池残量確認部52が検出した旨を示す情報を取得して、動作モードを省電力モードから通常モードへ切り替えるように、CPU周波数制御部37に指示する(S403)。
このように、情報処理装置1aは、電源IC2aからホストコントローラ3aへの割り込みを無効化してから、省電力モードから通常モードにモードを切り替える。これにより、省電力モードから通常モードへの切り替えに伴うCPU動作周波数の制御において、DVFS制御部44がレジスタ25aを無駄にポーリングすることが無くなるため、モード切り替えにおけるCPU32aの動作周波数の制御を円滑に行うことができる。
〔実施形態3〕
情報処理装置1、1aのCPU32、32aの制御ブロック(特に主機能部41;CPU周波数制御部37、37aのCPU使用率モニタ部42、CPU周波数−印加電圧テーブル選択部43、DVFS制御部44、およびCPU印加電圧制限部45;および割り込みコントローラ46)、およびシステム電源制御部35の制御ブロック(モード決定部51および電池残量確認部52)は、プロセッサを用いてソフトウェアによって実現される。
詳細には、情報処理装置1、1aは、各機能を実現するソフトウェアであるプログラムの命令を実行するプロセッサ、上記プログラムおよび各種データがコンピュータ(またはプロセッサ)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはプロセッサ)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
〔まとめ〕
本発明の態様1に係る情報処理装置1、1aは、CPU32、32aと、設定された印加電圧値に従って上記CPUに印加する電圧を制御するCPU印加電圧制御装置(電源IC2、2a)と、上記CPUによる上記印加電圧値の設定の変更とは独立に、上記CPUの現在の状態に応じた上記印加電圧値への設定の変更を上記CPU印加電圧制御装置に対して行うCPU印加電圧設定部(適応型電圧スケーラ、AVSコントローラ33)とを有し、上記CPUに現在印加されている電圧の印加電圧値が、上記CPUの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記CPU印加電圧設定部が設定する上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記動作周波数を下げるCPU制御部(DVFS制御部44)を備えている。
上記CPU印加電圧設定部は、上記CPUによる上記印加電圧値の設定の変更とは独立に、上記CPUの現在の状態に応じた上記印加電圧値への設定の変更を上記CPU印加電圧制御装置に対して行う。それゆえ、上記CPUおよび上記CPU印加電圧設定部が上記CPU印加電圧制御装置に対して上記印加電圧値の設定の変更を行う情報処理装置において、上記CPU印加電圧設定部が上記印加電圧値の設定の変更を行った場合、上記印加電圧値が、上記CPUの現在の動作周波数に予め対応付けられた電源電圧比較値より高く上記CPU印加電圧制御装置に設定される虞がある。
上記の構成によれば、上記CPU印加電圧設定部が設定の変更を行う上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記動作周波数を下げる。これにより、例えば、情報処理装置が省電力モードで動作するときに、省電力のためには許容できないCPU印加電圧値がCPU印加電圧設定部によって設定された場合においても、CPUの動作周波数を落とすことができる。よって、CPU印加電圧設定部を備える情報処理装置のCPU印加電圧をより細かく制御することにより、精度の高い電力制御を実現し、消費電力をさらに効果的に低減することができる。
本発明の態様2に係る情報処理装置1は、上記態様1において、上記CPU印加電圧制御装置は、上記CPUに現在印加されている電圧の印加電圧値が、上記CPUの動作周波数に予め対応づけられた所定の上記電源電圧比較値より高いか否かを判定する電圧判定部24と、上記CPUに現在印加されている電圧の印加電圧値が、上記CPUの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記CPU制御部に対する割り込みを発生させる割り込み制御部(割り込みコントローラ26)とを備えていてもよい。
上記の構成によれば、上記CPUに現在印加されている電圧の印加電圧値が、上記CPUの動作周波数に予め対応づけられた所定の上記電源電圧比較値より高いと判定したときに、CPU印加電圧制御装置からCPU制御部への割り込みを発生させる。これにより、CPUに現在印加されている印加電圧値が、上記CPUの動作周波数に予め対応付けられた電源電圧比較値より高くなったことを、CPU印加電圧制御装置からCPU制御部へリアルタイムに通知することができる。よって、CPU印加電圧設定部によって印加電圧値が設定された場合においても、CPUが設定された印加電圧値を知ることができるので、CPUは、印加電圧値に基づいてCPUの動作周波数を適切に制御することができる。
本発明の態様3に係る情報処理装置1は、上記態様2において、上記割り込み制御部は、省電力モードのとき、上記割り込みの発生を行ってもよい。
これにより、CPU印加電圧設定部による印加電圧の制御に加えて、効果的にCPUの動作周波数を制御することができる。よって、省電力モードにおける消費電力を低減することができる。
本発明の態様4に係る情報処理装置1aは、上記態様1において、上記CPU制御部は、上記CPU印加電圧制御装置に対してポーリングし、上記CPUに現在印加されている電圧の印加電圧値を取得してもよい。
これにより、CPU制御部は、上記CPUに現在印加されている電圧の印加電圧値が、上記CPUの現在の動作周波数に予め対応付けられた電源電圧比較値より高いか否かをリアルタイムに判断することができる。よって、CPU印加電圧設定部によって印加電圧値が設定された場合においても、CPUが設定された印加電圧値を知ることができるので、CPUは、印加電圧値に基づいてCPUの動作周波数を適切に制御することができる。
本発明の態様5に係る情報処理装置1aは、上記態様4において、上記CPU制御部は、省電力モードのとき、上記CPU印加電圧制御装置に対するポーリングを行ってもよい。
これにより、CPU印加電圧設定部による印加電圧の制御に加えて、効果的にCPUの動作周波数を制御することができる。よって、省電力モードにおける消費電力を低減することができる。
本発明の態様6に係るCPU印加電圧制御装置(電源IC2)は、情報処理装置1に搭載され、該情報処理装置の動作を制御するCPU32に印加する電圧を、設定された印加電圧値に従って制御するCPU印加電圧制御装置であって、上記情報処理装置は、上記CPUによる上記印加電圧値の設定の変更に加え、上記CPUによる上記印加電圧値の設定の変更とは独立に、上記CPUの現在の状態に応じた上記印加電圧値への設定の変更を上記CPU印加電圧制御装置に対して行うCPU印加電圧設定部(適応型電圧スケーラ、AVSコントローラ33)による上記印加電圧値の設定の変更が可能であり、上記CPUに現在印加されている電圧の印加電圧値が、上記CPUの動作周波数に予め対応づけられた電源電圧比較値より高いか否かを判定する電圧判定部24、および上記CPUに現在印加されている電圧の印加電圧値が、上記CPUの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記CPUに対する割り込みを発生させ、上記CPU印加電圧設定部が設定の変更を行う上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記CPUに上記動作周波数を下げさせる割り込み制御部(割り込みコントローラ26)として機能する論理回路部(電源IC制御部23)を備える。上記の構成によれば、上記態様2と同様の効果を奏する。
本発明の態様7に係るCPU印加電圧制御装置(電源IC2a)は、情報処理装置に搭載され、該情報処理装置の動作を制御するCPU32aに印加する電圧の印加電圧値を制御するCPU印加電圧制御装置であって、上記情報処理装置は、上記CPUによる上記印加電圧値の設定に加え、上記CPUによる上記印加電圧値の設定の変更とは独立に、上記CPUの現在の状態に応じた上記印加電圧値への設定の変更を上記CPU印加電圧制御装置に対して行うCPU印加電圧設定部(適応型電圧スケーラ、AVSコントローラ33)による上記印加電圧値の設定が可能であり、上記CPUに現在印加されている電圧の印加電圧値を記憶し、該印加電圧値を上記CPUからのポーリングに対して送信するレジスタ部(レジスタ25a)として機能する論理回路部(電源IC制御部23a)を備える。上記の構成によれば、上記態様4と同様の効果を奏する。
本発明の態様8に係る情報処理装置1、1aの制御方法は、CPU32と、設定された印加電圧値に従って上記CPUに印加する電圧の印加電圧値を制御するCPU印加電圧制御装置(電源IC2、2a)と、上記CPUによる上記印加電圧値の設定の変更とは独立に、上記CPUの現在の状態に応じた上記印加電圧値への設定の変更を上記CPU印加電圧制御装置に対して行うCPU印加電圧設定部(適応型電圧スケーラ、AVSコントローラ33)とを備える情報処理装置の制御方法であって、上記CPUに現在印加されている電圧の印加電圧値が、上記CPUの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記CPU印加電圧設定部が設定する上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記動作周波数を下げるCPU制御ステップ(S109b、S309)を含む。上記の構成によれば、上記態様1と同様の効果を奏する。
本発明の各態様に係る情報処理装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記情報処理装置のホストコントローラが備える各部(ソフトウェア要素)として動作させることにより上記情報処理装置をコンピュータにて実現させる情報処理装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。