(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、設定された印加電圧値に従って上記ＣＰＵに印加する電圧を制御するＣＰＵ印加電圧制御装置と、上記ＣＰＵによる上記印加電圧値の設定の変更とは独立に、上記ＣＰＵの現在の状態に応じた上記印加電圧値への設定の変更を上記ＣＰＵ印加電圧制御装置に対して行うＣＰＵ印加電圧設定部とを有し、
上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記ＣＰＵ印加電圧設定部が設定する上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記動作周波数を下げるＣＰＵ制御部を備えることを特徴とする情報処理装置。
【請求項２】
上記ＣＰＵ印加電圧制御装置は、
上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの動作周波数に予め対応づけられた所定の上記電源電圧比較値より高いか否かを判定する電圧判定部と、
上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記ＣＰＵ制御部に対する割り込みを発生させる割り込み制御部とを備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
上記ＣＰＵ制御部は、上記ＣＰＵ印加電圧制御装置に対してポーリングし、上記ＣＰＵに現在印加されている電圧の印加電圧値を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
情報処理装置に搭載され、該情報処理装置の動作を制御するＣＰＵに印加する電圧を、設定された印加電圧値に従って制御するＣＰＵ印加電圧制御装置であって、
上記情報処理装置は、上記ＣＰＵによる上記印加電圧値の設定の変更に加え、上記ＣＰＵによる上記印加電圧値の設定の変更とは独立に、上記ＣＰＵの現在の状態に応じた上記印加電圧値への設定の変更を上記ＣＰＵ印加電圧制御装置に対して行うＣＰＵ印加電圧設定部による上記印加電圧値の設定の変更が可能であり、
上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの動作周波数に予め対応づけられた電源電圧比較値より高いか否かを判定する電圧判定部、および上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記ＣＰＵに対する割り込みを発生させ、上記ＣＰＵ印加電圧設定部が設定する上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記ＣＰＵに上記動作周波数を下げさせる割り込み制御部として機能する論理回路部を備えることを特徴とするＣＰＵ印加電圧制御装置。
【請求項５】
ＣＰＵと、設定された印加電圧値に従って上記ＣＰＵに印加する電圧の印加電圧値を制御するＣＰＵ印加電圧制御装置と、上記ＣＰＵによる上記印加電圧値の設定の変更とは独立に、上記ＣＰＵの現在の状態に応じた上記印加電圧値への設定の変更を上記ＣＰＵ印加電圧制御装置に対して行うＣＰＵ印加電圧設定部とを備える情報処理装置の制御方法であって、
上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記ＣＰＵ印加電圧設定部が設定する上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記動作周波数を下げるＣＰＵ制御ステップを含むことを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二次電池などから電力供給を受けて動作する情報処理装置、ＣＰＵ印加電圧制御装置、情報処理装置の制御方法に関する。
【背景技術】
【０００２】
近年、携帯端末機器は高機能化が進むにつれて、消費電力量の低減が大きな課題となっている。特に、スマートフォン、タブレット、および携帯電話などの携帯端末機器の多くは、内蔵する蓄電池（バッテリー）から電力が供給される。携帯端末機器において、１回のバッテリー充電によって使用継続可能な時間をより長時間化することが求められている。
【０００３】
ＣＭＯＳ（Complementary Metal Oxide Semiconductor）などの半導体のダイナミック消費電力は、「動作周波数」および「印加電圧の２乗」に比例することが知られている（非特許文献１参照）。すなわち、ＣＰＵ動作周波数が高くても、高い電圧をＣＰＵに印加しても、消費電力が大きくなってしまう。
【０００４】
そこで、携帯端末機器では、定期的にバッテリー残量をポーリングして、予め定められた閾値以下にバッテリー残量が減少していないかを確認し、バッテリー残量が閾値以下になった場合には、携帯端末機器のＣＰＵの動作周波数が高くならないように制限されるクロック制御を変更する仕組みを備えている。この仕組みによって、携帯端末機器の使用継続可能な時間を延ばすことができる。上記クロック制御の変更方法としては、（１）ＣＰＵ動作の高速周波数を単に使用禁止にする、（２）ＣＰＵ動作周波数がＣＰＵ使用率によって切り替えられる場合には、その閾値となるＣＰＵ使用率の値を高く設定変更することで、ＣＰＵの高速周波数への移行が起こりにくくする、などの方法が適用されている。
【０００５】
一方、ＣＰＵに印加する電圧値（以下では、「ＣＰＵ印加電圧値」と記す）を制御する技術としては、例えば、適応型電圧スケーラ（適応型電圧スケーリングとも呼ばれる。ＡＶＳ制御：Adaptive Voltage Scaling）が知られている。特許文献１に記載のＡＶＳは、電圧マージンを回避または低減するために、機能回路のターゲットまたは所望の動作周波数と遅延変動条件とに基づいて、機能回路に供給する電力レベルを適応的に調整する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１２−５２２２９３号公報（平成２４年  ９月２０日公表）
【非特許文献】
【０００７】
【非特許文献１】安藤壽茂、”半導体技術とコンピュータ技術の動向：低電力、高性能なコンピュータの実現に向けて”、[online]、平成１８年１０月３１日、サイエンティフィック・システム研究会科学技術計算分科会、[平成２６年２月６日検索]、インターネット（URL：https://www.ssken.gr.jp/MAINSITE/download/newsletter/2006/sci/2/2_andoPPT.pdf）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述のＣＰＵの動作周波数が高くならないようにソフトウェアによって制御する動的電圧・周波数制御（ＤＶＦＳ：Dynamic Voltage and Frequency Scaling；以下では、「ＤＶＦＳ制御」と記す）などの制御と、ＡＶＳなどのハードウェアによる電圧制御（以下では、「ＡＶＳ制御」と記す）とを組み合わせて、消費電力量をより効果的に低減させることができない、という問題がある。これは、特許文献１に記載のＡＶＳ制御はハードウェア制御（ＨＷ制御）であり、実際にＣＰＵに印加されている電圧値をＣＰＵがリアルタイムに把握することができないためである。
【０００９】
本発明は、上記の問題点を解決するためになされたものであり、その目的は、ソフトウェアによるＣＰＵの電圧や動作周波数の制御と、ハードウェアによるＣＰＵの電圧の制御とを組み合わせて、ＣＰＵ印加電圧をより細かく制御することにより、精度の高い電力制御を実現し、消費電力量をより効果的に低減させることが可能な情報処理装置等を提供することである。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明の一態様に係る情報処理装置は、ＣＰＵと、設定された印加電圧値に従って上記ＣＰＵに印加する電圧を制御するＣＰＵ印加電圧制御装置と、上記ＣＰＵによる上記印加電圧値の設定の変更とは独立に、上記ＣＰＵの現在の状態に応じた上記印加電圧値への設定の変更を上記ＣＰＵ印加電圧制御装置に対して行うＣＰＵ印加電圧設定部とを有し、上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記ＣＰＵ印加電圧設定部が設定する上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記動作周波数を下げるＣＰＵ制御部を備える。
【００１１】
また、上記の課題を解決するために、本発明の一態様に係るＣＰＵ印加電圧制御装置は、情報処理装置に搭載され、該情報処理装置の動作を制御するＣＰＵに印加する電圧を、設定された印加電圧値に従って制御するＣＰＵ印加電圧制御装置であって、上記情報処理装置は、上記ＣＰＵによる上記印加電圧値の設定の変更に加え、上記ＣＰＵによる上記印加電圧値の設定の変更とは独立に、上記ＣＰＵの現在の状態に応じた上記印加電圧値への設定の変更を上記ＣＰＵ印加電圧制御装置に対して行うＣＰＵ印加電圧設定部による上記印加電圧値の設定の変更が可能であり、上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの動作周波数に予め対応づけられた電源電圧比較値より高いか否かを判定する電圧判定部、および上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記ＣＰＵに対する割り込みを発生させ、上記ＣＰＵ印加電圧設定部が設定する上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記ＣＰＵに上記動作周波数を下げさせる割り込み制御部として機能する論理回路部を備える。
【００１２】
また、本発明の一態様に係る情報処理装置の制御方法は、ＣＰＵと、設定された印加電圧値に従って上記ＣＰＵに印加する電圧の印加電圧値を制御するＣＰＵ印加電圧制御装置と、上記ＣＰＵによる上記印加電圧値の設定の変更とは独立に、上記ＣＰＵの現在の状態に応じた上記印加電圧値への設定の変更を上記ＣＰＵ印加電圧制御装置に対して行うＣＰＵ印加電圧設定部とを備える情報処理装置の制御方法であって、上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記ＣＰＵ印加電圧設定部が設定する上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記動作周波数を下げるＣＰＵ制御ステップを含む。
【発明の効果】
【００１３】
本発明の一態様によれば、ソフトウェアによるＣＰＵに印加する電圧の印加電圧値やＣＰＵの動作周波数の制御と、ハードウェアによるＣＰＵに印加する電圧の印加電圧値の制御とを適切に組み合わせて、ＣＰＵ印加電圧をより細かく制御することにより、精度の高い電力制御を実現し、消費電力量をより効果的に低減させることができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】本発明に係る情報処理装置のハードウェア構成を示すブロック図である。
【図２】実施形態１に係る情報処理装置の要部構成の一例を示す機能ブロック図である。
【図３】ＣＰＵ印加電圧値を制御するときに参照されるＣＰＵ周波数−印加電圧設定値の例を示す図である。
【図４】通常モードにおけるＣＰＵ動作周波数の制御の一例を示す図である。
【図５】省電力モードにおけるＣＰＵ動作周波数の制御の一例を示す図である。
【図６】省電力モードにおける、ＣＰＵ印加電圧の上限値およびＣＰＵ周波数アップ許可電圧の一例を示す図である。
【図７】通常モードから省電力モードに切り替わったときに、ＣＰＵ印加電圧値を制御する処理の流れを示すフローチャートである。
【図８】省電力モードから通常モードに切り替わったときの処理の流れを示すフローチャートである。
【図９】実施形態２に係る情報処理装置の要部構成の一例を示す機能ブロック図である。
【図１０】実施形態２に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【図１１】通常モードから省電力モードに切り替わったときに、ＣＰＵ印加電圧値を制御する処理の流れを示すフローチャートである。
【図１２】省電力モードから通常モードに切り替わったときの処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１５】
〔実施形態１〕
以下、本発明の実施の形態について、詳細に説明する。なお、以下の各実施形態では、ＣＰＵ３２に印加する電圧の印加電圧値やＣＰＵ３２の動作周波数のソフトウェアによる制御としてＤＶＦＳ制御を例に挙げて説明する。一方、ＣＰＵ３２に印加する電圧の印加電圧値のハードウェアによる制御としてＡＶＳ制御を例に挙げて説明する。ただし、これらに限定されない。
【００１６】
（情報処理装置１のハードウェア構成）
まず、本発明にかかる情報処理装置１のハードウェア構成の概略について図２に基づいて説明する。図２は、本発明に係る情報処理装置１のハードウェア構成の一例を示すブロック図である。なお、情報処理装置１は、操作入力部、マイク、スピーカ、カメラ部、表示部、記憶部、および充電器接続部などを備えていてもよいが、説明を簡略化するために、図２では図示していない。
【００１７】
情報処理装置１は、図２に示すように情報処理装置１を制御するホストコントローラ３、電池２１、およびホストコントローラ３のＣＰＵシステムブロック３１（ＣＰＵ３２を含む）および情報処理装置１の各デバイス（図示せず）への電力供給を行う電源ＩＣ２（ＣＰＵ印加電圧制御装置）を備えている。電源ＩＣ２とホストコントローラ３とは、電源ＩＣ２のＣＰＵインタフェース２８およびホストコントローラ３の電源ＩＣインタフェース３４を介して、Ｉ２Ｃ（Inter-Integrated Circuit）やＳＰＭＩ（System Power Management Interface）などの通信によってデータなどの送受信を行う。なお、ここでは、情報処理装置１の各デバイスへの電力供給を行う部材として、電源ＩＣ２を例に挙げて説明するが、電源ＩＣ２の機能を集積回路とは異なる形態・構造の部材が担う構成であってもよい。
【００１８】
ホストコントローラ３は、情報処理装置１を制御するＣＰＵシステムが搭載されており、ＣＰＵシステムブロック３１、電源ＩＣインタフェース３４、システム電源制御部３５、および記憶部３６を備えている。さらに、ＣＰＵシステムブロック３１は、ＣＰＵ３２およびＡＶＳコントローラ３３（ＣＰＵ印加電圧設定部）を備えている。なお、ここでは、ＣＰＵシステムブロック３１が１つのＣＰＵ３２を搭載しているシングルコアシステムである場合を例に挙げて説明するがこれに限定されない。例えば、ＣＰＵシステムブロック３１が複数のＣＰＵ３２を搭載しているマルチコアシステムであっても良い。
【００１９】
ＣＰＵシステムブロック３１には、ＣＰＵ３２とＡＶＳコントローラ３３が実装されている。ＡＶＳコントローラ３３は、適応型電圧スケーラである。ＡＶＳコントローラ３３は、ＣＰＵ３２の状態（ＣＰＵの温度、消費電流など）を監視しており、ＡＶＳ制御により、ＣＰＵシステムブロック３１のＣＰＵ３２に印加する電圧を最適化するように、電源ＩＣ２のレジスタ２５のＣＰＵ電圧設定値２５２（図１参照）へ設定する。なお、ＣＰＵ３２によるＣＰＵ印加電圧値の設定の変更とは独立に、ＣＰＵ３２の現在の状態に応じたＣＰＵ印加電圧値への設定の変更を電源ＩＣ２に対して行うものであれば、適応型電圧スケーラに限定されない。ＣＰＵシステムブロック３１のＣＰＵ３２に印加する電圧の印加電圧値は、ＣＰＵシステムブロック３１によっても制御される。ＣＰＵシステムブロック３１のＤＶＦＳ制御部４４（ＣＰＵ制御部）（図１参照）は、記憶部３６に記憶されているＣＰＵ使用率閾値６１（図１参照）を参照して、現状のＣＰＵ使用率に応じて、ＣＰＵ動作周波数を設定し、該ＣＰＵ動作周波数に対応付けられたＣＰＵ印加電圧値（印加電圧値）を電源ＩＣ２のレジスタ２５のＣＰＵ電圧設定値２５２へ設定する。すなわち、レジスタ２５のＣＰＵ電圧設定値２５２へは、ＡＶＳコントローラ３３およびＣＰＵシステムブロック３１のＤＶＦＳ制御部４４のどちらからも設定可能である。ＡＶＳコントローラ３３およびＣＰＵシステムブロック３１のＤＶＦＳ制御部４４によって設定されるＣＰＵ印加電圧値はいずれも、ホストコントローラ３の電源ＩＣインタフェース３４および電源ＩＣ２のＣＰＵインタフェース２８を介して電源ＩＣ２の電源制御部２２に送られる。電源制御部２２は、ＡＶＳコントローラ３３およびＣＰＵシステムブロック３１のＤＶＦＳ制御部４４のいずれかが設定した最新のＣＰＵ印加電圧値に基づいて、ＣＰＵ３２に印加する電圧値を制御する。なお、ＡＶＳコントローラ３３およびＣＰＵシステムブロック３１のＤＶＦＳ制御部４４のいずれかがＣＰＵ印加電圧値を設定する際の処理については後に説明する。
【００２０】
システム電源制御部３５は、情報処理装置１全体の電源管理を行うものであり、ＣＰＵシステムブロック３１のＣＰＵ３２とは別のＣＰＵであってもよい。なお、システム電源制御部３５については、後に説明する。
【００２１】
電源ＩＣ２は、ホストコントローラ３のＣＰＵシステムブロック３１に送られる電力の電圧を制御する電源制御部２２、電源ＩＣ２が行う動作を制御する電源ＩＣ制御部２３（論理回路部）、および前出のＣＰＵインタフェース２８が実装されている。また、電源ＩＣ制御部２３は、さらに、電圧判定部２４、レジスタ２５（レジスタ部）、割り込みコントローラ２６（割り込み制御部）、および電池残量・充電制御部２７を備えている。電源制御部２２および電池残量・充電制御部２７は、電池２１と接続されている。
【００２２】
電源制御部２２は、電池２１からＣＰＵシステムブロック３１へ供給する電力の電圧を制御する。電源制御部２２は、出力電圧をプログラマブルに変更できるような電源回路（ＤＣ／ＤＣなど）を備えており、電池２１から供給される電力から、レジスタ２５のＣＰＵ電圧設定値２５２に設定されている電圧値のＣＰＵ印加電圧を作成する。
【００２３】
レジスタ２５は、電源制御部２２の制御データを保持する書き換え可能な半導体記憶装置であり、ＣＰＵ印加電圧上限値２５１およびＣＰＵ電圧設定値２５２が格納されている。ＣＰＵ印加電圧上限値２５１は、ホストコントローラ３のＣＰＵ印加電圧制限部４５（図１参照）によって設定される、現在のＣＰＵ動作周波数に対するＣＰＵ印加電圧として電力的に許容可能なＣＰＵ印加電圧値の上限値（電源電圧比較値）である。ＣＰＵ印加電圧上限値２５１は、ＣＰＵ動作周波数が変更される度にＣＰＵ印加電圧上限値２５１に設定（格納）される。一方、ＣＰＵ電圧設定値２５２は、ＣＰＵ３２に印加する電圧の印加電圧値として設定された値であり、前述のように、ＣＰＵ電圧設定値２５２は、ＡＶＳコントローラ３３およびＣＰＵシステムブロック３１のＤＶＦＳ制御部４４のどちらからも設定可能である。なお、ここでは、レジスタ２５を１つ備える場合を例に挙げているが、複数のレジスタ２５を備える構成であってもよい。
【００２４】
電圧判定部２４は、レジスタ２５のＣＰＵ電圧設定値２５２が設定される毎に、ＣＰＵ電圧設定値２５２とＣＰＵ印加電圧上限値２５１とを比較して、ＣＰＵ電圧設定値２５２が、ＣＰＵ印加電圧上限値２５１を超えていないかを監視する。ＣＰＵ電圧設定値２５２が、ＣＰＵ印加電圧上限値２５１を超えている場合は、ホストコントローラ３への割り込み（印加電圧情報）を出力するように割り込みコントローラ２６へ指示する。
【００２５】
割り込みコントローラ２６は、電圧判定部２４からの割り込み要求に応じて、ホストコントローラ３に対して割り込みを発生させる。なお、割り込みコントローラ２６は、他のブロックからの要求に基づいて、ホストコントローラ３に対して様々な割り込みを発生させてもよい。
【００２６】
すなわち、電源ＩＣ２には、電圧判定部２４、および割り込みコントローラ２６として機能する論理回路が形成されている。
【００２７】
電池残量・充電制御部２７は、定期的に電池２１の電池残量を確認しており、ホストコントローラ３の電池残量確認部５２（図１参照）に現在の電池残量に関する情報（電池残量情報）を通知する。また、電池残量・充電制御部２７は、電池２１の充電の制御も行う。なお、充電器（図示せず）が接続されたことを検知したとき、ホストコントローラ３へ割り込みによって、充電を開始することを通知してもよい。
【００２８】
（情報処理装置１の構成）
次に、情報処理装置１の構成について図１に基づいて説明する。図１は、本発明に係る情報処理装置１の要部構成の一例を示す機能ブロック図である。なお、図１においては、図２に示したＣＰＵインタフェース２８および電源ＩＣインタフェース３４は、説明を簡略化するために、その図示を省略する。また、説明の便宜上、既に上記で説明した部材については、その説明を省略する。
【００２９】
情報処理装置１は、定期的に電池残量をポーリングして、事前に決めた閾値以下に電池残量が減少していないかを確認し、電池残量が閾値以下になった場合は、電池寿命を延ばすために、ＣＰＵ３２のＣＰＵ動作周波数が高速になることを回避するように制御する。
【００３０】
情報処理装置１は、前述のように、電源ＩＣ２およびホストコントローラ３を備えており、ホストコントローラ３は、ＣＰＵシステムブロック３１、電源ＩＣインタフェース３４、システム電源制御部３５、および記憶部３６を備えている。
【００３１】
まず、ＣＰＵシステムブロック３１の構成について説明する。ＣＰＵシステムブロック３１は、さらに、ＣＰＵ３２およびＡＶＳコントローラ３３を備えている。
【００３２】
ＣＰＵ３２は、省電力モードを含む１または複数の動作モードを有する情報処理装置１に搭載され、情報処理装置１の動作を制御する。ＣＰＵ３２は、主機能部４１、ＣＰＵ周波数制御部３７および割り込みコントローラ４６を備える。なお、ホストコントローラ３が記憶部３６を含まない構成であってもよい。主機能部４１は、情報処理装置１の様々な処理を実行する。ＣＰＵ周波数制御部３７は、ＣＰＵ３２の動作周波数を制御して、情報処理装置１のパフォーマンスを制御する。ＣＰＵ周波数制御部３７は、ＣＰＵ使用率モニタ部４２、ＣＰＵ周波数−印加電圧テーブル選択部４３、ＤＶＦＳ制御部４４、およびＣＰＵ印加電圧制限部４５を備えている。割り込みコントローラ４６は、電源ＩＣ２の割り込みコントローラ２６からの割り込みを受け付けて、割り込みを受け付けたことをＤＶＦＳ制御部４４に通知する。
【００３３】
ＣＰＵ使用率モニタ部４２は、定期的にＣＰＵ３２のＣＰＵ使用率を監視しており、取得したＣＰＵ使用率をＤＶＦＳ制御部４４に送る。
【００３４】
ＣＰＵ周波数−印加電圧テーブル選択部４３は、モード決定部５１からの電池残量情報に基づいて、記憶部３６のＣＰＵ使用率閾値６１に格納されている、通常モードか省電力モードかのいずれかのＣＰＵ使用率閾値のテーブルを読み出す。
【００３５】
ＤＶＦＳ制御部４４は、ＣＰＵ周波数−印加電圧テーブル選択部４３によって読み出されたＣＰＵ使用率閾値６１のテーブルに規定されたＣＰＵ使用率閾値と、ＣＰＵ使用率モニタ部４２から取得したＣＰＵ使用率とを比較する。ＣＰＵ使用率モニタ部４２から取得したＣＰＵ使用率が、閾値を超えている場合、ＤＶＦＳ制御部４４は、ＣＰＵ周波数−印加電圧テーブル選択部４３によって読み出されたＣＰＵ使用率閾値６１を参照して、１段階アップしたときにＣＰＵ動作周波数を決定する。そして、ＤＶＦＳ制御部４４は、ＣＰＵ印加電圧値をＣＰＵ周波数−印加電圧設定値６３（図３参照）に規定されている、変更先のＣＰＵ動作周波数に対応するＤＶＦＳ制御設定電圧の電圧値を設定し、続けて、変更したいＣＰＵ動作周波数へとＣＰＵ動作周波数を設定する。
【００３６】
ＣＰＵ３２の動作周波数の変更は、ＣＰＵシステムブロック３１のＰＬＬ（Phase lock loop）設定などを変更することにより行われる。一方、ＣＰＵ３２に印加する電圧の印加電圧値の変更は、電源ＩＣ２のレジスタ２５のＣＰＵ電圧設定値２５２へ、電圧値を設定することにより行われる。
【００３７】
ＤＶＦＳ制御部４４は、割り込みコントローラ４６から、割り込みを受け取る。この割り込みは、現在のレジスタ２５に設定されているＣＰＵ電圧設定値２５２がＣＰＵ印加電圧上限値２５１を超えた場合に発生する。ＤＶＦＳ制御部４４が、割り込みを検出した場合にＣＰＵ動作周波数を制御する処理については後に説明する。
【００３８】
ＣＰＵ印加電圧制限部４５は、現在のＣＰＵ動作周波数に対応するＣＰＵ周波数アップ許可電圧値を、記憶部３６のＣＰＵ周波数アップ許可電圧６２を参照して、読み出すとともに、電源ＩＣ２のレジスタ２５からＣＰＵ電圧設定値２５２を読み出す。ＣＰＵ印加電圧制限部４５は、現在のＣＰＵ周波数に基づいて、ＣＰＵ印加電圧の上限値を決定し（図６参照）、レジスタ２５のＣＰＵ印加電圧上限値２５１へ設定する。
【００３９】
ＤＶＦＳ制御部４４がＣＰＵ動作周波数を変更するとき、ＣＰＵ印加電圧制限部４５に対して、ＣＰＵ動作周波数をアップしてもよいか否かを問い合せ、ＣＰＵ印加電圧制限部４５は、現在のＣＰＵ３２に印加されている電圧の印加電圧値がＣＰＵ周波数アップ許可電圧値以下であれば、ＣＰＵ動作周波数をアップしてもよい許可信号をＤＶＦＳ制御部４４に出力する（図７のＳ１０７にてＮＯ）。
【００４０】
続いて、システム電源制御部３５の構成について説明する。システム電源制御部３５は、情報処理装置１全体の電源管理を行っており、モード決定部５１および電池残量確認部５２を備えている。なお、システム電源制御部３５は、ＣＰＵシステムブロック３１のＣＰＵ３２と異なるＣＰＵであってもよい。
【００４１】
電池残量確認部５２は、電源ＩＣ２の電池残量・充電制御部２７に定期的に電池残量を通知するように要求し、電池残量・充電制御部２７から、電池残量情報を定期的に取得する。取得した電池残量情報は、モード決定部５１に送る。
【００４２】
モード決定部５１は、電池残量確認部５２からの電池残量情報に基づいて、動作モードを通常モードか省電力モードかのいずれかに切り替えることを決定して、ＣＰＵ周波数制御部３７に通知する。例えば、情報処理装置１が電池２１に充電された電力のみで動作しているときに電池残量が１０％以下になった場合には、モード決定部５１は通常モードから省電力モードに移行するようにＣＰＵ周波数制御部３７に指示する。逆に、情報処理装置１が充電器と接続され、電池２１の充電量が増加し、電池残量が１０％より多くなった場合には、モード決定部５１は省電力モードから通常モードに移行するようにＣＰＵ周波数制御部３７に指示する。
【００４３】
なお、ここでは、モード決定部５１が選択可能なモードとして、「通常モード」および「省電力モード」の２つのモードがある場合を例に挙げて説明するが、切り替え可能なモードとして３つ以上を備えていてもよい。例えば、所望の機能のＣＰＵ動作周波数を優先的に制御するお好みモードや、就寝時間帯に応じてＣＰＵ動作周波数を制御するお休みモードなど、さまざまなモードに切り替える構成であってもよい。
【００４４】
（ＣＰＵ印加電圧値の制御）
以下では、情報処理装置１におけるＣＰＵ印加電圧値の制御について、図３を用いて説明する。図３は、ＣＰＵ印加電圧値を制御するときに参照されるＣＰＵ周波数−印加電圧設定値６３の例を示す図である。
【００４５】
情報処理装置１は、ＣＰＵ３２の動作時のＣＰＵ使用率に応じた、ＤＶＦＳ制御によるＣＰＵ印加電圧値の制御（ソフトウェアによる制御）と、ＣＰＵ３２の状態（ＣＰＵの温度、消費電流など）応じたＡＶＳ制御によるＣＰＵ印加電圧値の制御（ハードウェアによる制御）とを行うことができる。
【００４６】
ＣＰＵ動作周波数およびＣＰＵ印加電圧値がＤＶＦＳ制御により変更される場合、設定されたＤＶＦＳ制御設定電圧に対応する各周波数に応じて、所定のＣＰＵ印加電圧値が設定される。ＤＶＦＳ制御によってＣＰＵ印加電圧の電圧値が変更された後は、ＡＶＳコントローラ３３がＣＰＵの温度や消費電流などに応じた最適なＣＰＵ印加電圧の電圧値を、周波数毎に規定されたＣＰＵ印加電圧値の範囲内で調整する。
【００４７】
以下に、ＤＶＦＳ制御およびＡＶＳ制御の一例について以下に説明する。まず、ＤＶＦＳ制御について説明する。
【００４８】
ＣＰＵ使用率モニタ部４２は、定期的にＣＰＵ３２のＣＰＵ使用率をモニタして、ＤＶＦＳ制御部４４に送る。一方、ＣＰＵ周波数−印加電圧テーブル選択部４３は、電池残量確認部５２からの電池残量情報に基づいてモード決定部５１によって決定された動作モード（例えば、通常モードか省電力モードか）に対応付けられたＣＰＵ使用率の閾値を規定するＣＰＵ使用率閾値６１を選択し、ＤＶＦＳ制御部４４に送る。ＣＰＵ周波数−印加電圧テーブル選択部４３は、例えば、通常モードであれば、ＣＰＵ使用率閾値６１から図４に示すテーブルを選択し、省電力モードであれば、ＣＰＵ使用率閾値６１から図５に示すテーブルを選択する。
【００４９】
ＤＶＦＳ制御部４４は、現在のＣＰＵ使用率が、ＣＰＵ使用率閾値６１に規定されたＣＰＵ動作周波数アップ（ＵＰ）の閾値、またはＣＰＵ動作周波数ダウン（ＤＯＷＮ）の閾値を超えているか否かを確認する。現在のＣＰＵ使用率が、ＣＰＵ使用率閾値６１に規定されたＣＰＵ動作周波数アップ（ＵＰ）の閾値より大きい場合、ＤＶＦＳ制御部４４は、図３に示すＣＰＵ周波数−印加電圧設定値６３を記憶部３６から読み出して、現在のＣＰＵ動作周波数より１段階高い周波数へ変更する。同様に、現在のＣＰＵ使用率が、ＣＰＵ使用率閾値６１に規定されたＣＰＵ動作周波数ダウン（ＤＯＷＮ）の閾値より小さい場合、ＤＶＦＳ制御部４４は、図３に示すＣＰＵ周波数−印加電圧設定値６３を記憶部３６から読み出して、現在のＣＰＵ動作周波数より１段階低い周波数へ変更する。
【００５０】
なお、ＣＰＵ動作周波数をアップする場合には、次の（１Ａ）および（２Ａ）の２段階で行う。（１Ａ）ＣＰＵ印加電圧をＣＰＵ周波数−印加電圧設定値６３（図３）を参照して、変更しようとしているＣＰＵ動作周波数（変更目標のＣＰＵ動作周波数）のＤＶＦＳ制御設定電圧値に設定する。（２Ａ）次に、ＣＰＵ動作周波数を変更する。一方、ＣＰＵ動作周波数をダウンする場合には、次の（１Ｂ）および（２Ｂ）の２段階で行う。（１Ｂ）ＣＰＵ動作周波数を変更する。（２Ｂ）次に、ＣＰＵ周波数−印加電圧設定値６３（図３）を参照して、ＣＰＵ印加電圧を（１Ｂ）で変更したＣＰＵ動作周波数のＤＶＦＳ制御設定電圧値に設定する。
【００５１】
次に、ＡＶＳ制御について説明する。
【００５２】
ＡＶＳ制御は、ＡＶＳコントローラ３３によるハードウェア制御によって、ＣＰＵ３２の温度や消費電量に応じた最適なＣＰＵ印加電圧値を、図３に示すような各ＣＰＵ動作周波数に対して規定されたＣＰＵ印加電圧の値の範囲内で調整する。ＡＶＳ制御はソフトウェア制御からは独立しており、情報処理装置１が起動中は常時動作している。ＡＶＳコントローラ３３はＣＰＵ３２に印加される電圧値の変更を決定すると、レジスタ２５のＣＰＵ電圧設定値２５２に電圧値を設定する。すなわち、レジスタ２５のＣＰＵ電圧設定値２５２には、ＤＶＦＳ制御によって設定されたＣＰＵ印加電圧値、およびＡＶＳ制御によって設定されたＣＰＵ印加電圧値がいずれも設定可能である。ＡＶＳ制御はハードウェア制御であるため、ＡＶＳ制御によってＣＰＵ印加電圧値が設定されたことを、ＣＰＵ周波数制御部３７がリアルタイムに把握することができない。
【００５３】
なお、ＡＶＳ制御によってＣＰＵ印加電圧の設定を変更するときの制御ロジックについては、本発明の特徴点とは直接関係が無いため、その説明を省略するが、例えば、特許文献１に記載の制御ロジックなどが適用され得る。
【００５４】
ここでは、ＣＰＵ周波数−印加電圧設定値６３を参照してＣＰＵ動作周波数をアップする場合について、図３を用いて具体的に説明する。ＣＰＵ３２のＣＰＵ動作周波数は、３００ＭＨｚ、４００ＭＨｚ、・・・、１．５ＧＨｚなどと段階的に設定可能であり、例えば、ＣＰＵ動作周波数が１．２ＧＨｚのときには、ＤＶＦＳ制御設定電圧は１．２Ｖであり、ＡＶＳ制御によって調節可能なＣＰＵ印加電圧値の範囲は１．１５〜１．３５Ｖである。８００ＭＨｚのときには、ＤＶＦＳ制御設定電圧は１．１Ｖであり、ＡＶＳ制御によって調節可能なＣＰＵ印加電圧値の範囲は１．０５〜１．１５Ｖである。
【００５５】
なお、図３ではＣＰＵ動作周波数として設定され得る各段階の一例として、３００ＭＨｚ、４００ＭＨｚ、・・・、１．５ＧＨｚを示したがこれに限定されない。例えば、より細かくＣＰＵ動作周波数の制御が可能なように多くの段階を設ける構成（例えば、３００ＭＨｚ〜１．５ＧＨｚを１００ＭＨｚ毎に設定可能とする構成）であってもよいし、逆に、より少ない段階を設ける構成であってもよい。なお、以下では、図３に示す、ＡＶＳコントローラが設定するＣＰＵ印加電圧値が対応付けられているＣＰＵ動作周波数において、１．５ＧＨｚから１．２ＧＨｚへ、１．２ＧＨｚから１．０ＧＨｚへ、などのようにＣＰＵ動作周波数を１段階ずつ切り替える処理を、「１段階下げる」などと表現している。
【００５６】
（通常モードおよび省電力モードにおけるＣＰＵ動作周波数の制御）
次に、通常モードおよび省電力モードにおいて参照する、記憶部３６に記憶されているＣＰＵ使用率閾値６１について、図４および図５を用いて説明する。図４は、通常モードにおけるＣＰＵ動作周波数の制御の一例を示す図であり、図５は、省電力モードにおけるＣＰＵ動作周波数の制御の一例を示す図である。
【００５７】
ＣＰＵ動作周波数の変更方法は、通常モードと省電力モードとでは異なっている。ＣＰＵ周波数−印加電圧テーブル選択部４３は、モード決定部５１が決定した動作モードが通常モードであれば、図４のテーブルを選択し、省電力モードであれば、図５のテーブルを選択する。例えば、ＣＰＵ動作周波数が上がると消費電力量が増すため、省電力モードでは、通常モードに比べてＣＰＵ動作周波数が高くなりにくい設定となっている。図５に示すように、省電力モードでは、通常モードでは使用可能である（図４参照）、ＣＰＵ動作周波数の最高の周波数の１．５ＧＨｚを使用禁止にしている。
【００５８】
ＤＶＦＳ制御部４４はＣＰＵ使用率が高くなると、図４および図５に示すようなＣＰＵ動作周波数の段階において、１段階上のＣＰＵ動作周波数に切り替える制御を行うが、この制御の閾値として設定されているＣＰＵ動作周波数ＵＰの閾値およびＣＰＵ動作周波数Ｄｏｗｎの閾値（％）の値が、通常モードと省電力モードとで異なる値が設定されている。例えば、通常モードにおいて、１．０ＧＨｚで動作しているＣＰＵ３２のＣＰＵ使用率が７５％を超えると、ＤＶＦＳ制御部４４は、１．０ＧＨｚから１．２ＧＨｚへとＣＰＵ動作周波数を１段階上げる（図４参照）。一方、省電力モードでは、１．０ＧＨｚで動作しているＣＰＵ３２のＣＰＵ使用率が８５％を超えるまで、ＣＰＵ動作周波数を上げない。すなわち、省電力モードではＣＰＵ動作周波数を切り替えるときのＣＰＵ使用率の閾値が高く設定されている。これにより、通常モードのときはＣＰＵ動作周波数を上げるときの閾値であったＣＰＵ使用率に達していても、省電力モードではＣＰＵ動作周波数を維持する。また、通常モードのときはＣＰＵ動作周波数を下げるときの閾値のＣＰＵ使用率に達する前に省電力モードではＣＰＵ動作周波数を下げる。このような制御を行うことで、省電力モードにおいて、ＣＰＵ動作周波数が高くなることを回避している。
【００５９】
（省電力モードでの、ＣＰＵ印加電圧の上限値およびＣＰＵ周波数アップ許可電圧）
次に、現在のＣＰＵ動作周波数に対応したＣＰＵ印加電圧の上限値およびＣＰＵ周波数アップ許可電圧について図６を用いて説明する。図６は、省電力モードにおける、ＣＰＵ動作周波数に対応するＣＰＵ印加電圧の上限値およびＣＰＵ周波数アップ許可電圧の一例を示す図である。
【００６０】
ＣＰＵ印加電圧制限部４５は、ＣＰＵ使用率が図５のＣＰＵ動作周波数ＵＰの閾値を超えたときに、電源ＩＣ２のレジスタ２５に記憶されている現在設定されているＣＰＵ印加電圧が、記憶部３６に格納されているＣＰＵ周波数アップ許可電圧６２に規定されているＣＰＵ周波数アップ許可電圧以下か否かを判定する。そして、現在のＣＰＵ印加電圧値が、ＣＰＵ周波数アップ許可電圧以下であれば、ＤＶＦＳ制御部４４は、ＣＰＵ動作周波数を上げて、その周波数に応じたＣＰＵ３２の印加電圧の上限値を電源ＩＣ２のレジスタ２５のＣＰＵ印加電圧上限値２５１に設定する。一方、現在のＣＰＵ印加電圧値が、ＣＰＵ周波数アップ許可電圧を超えている場合、ＣＰＵ使用率がたとえＣＰＵ動作周波数ＵＰの閾値を超えていても、ＣＰＵ動作周波数を上げない。
【００６１】
なお、ＣＰＵ動作周波数が、４００ＭＨｚ、３００ＭＨｚのときは、図３のように、ＣＰＵ印加電圧はＡＶＳ制御を行なわなくてもよい。したがって、図６では、ＣＰＵ動作周波数が４００ＭＨｚ、３００ＭＨｚのときは、割り込みが発生し得ないＣＰＵ印加電圧の上限値と、動作周波数ダウンを妨げないＣＰＵ周波数アップ許可電圧とが設定されてもよい。
【００６２】
（省電力モードに切り替わったときに、ＣＰＵ印加電圧値を制御する処理の流れ）
情報処理装置１は、省電力モードを含む１または複数の動作モードを有する情報処理装置１の動作を制御するＣＰＵ３２と、ＣＰＵ３２に印加する電圧のＣＰＵ印加電圧値を制御する電源ＩＣ２と、ＣＰＵ印加電圧値を電源ＩＣ２に設定するＡＶＳコントローラ３３とを有し、ＣＰＵ３２に現在印加されている電圧のＣＰＵ印加電圧値が、ＣＰＵ３２の現在のＣＰＵ動作周波数に予め対応付けられたＣＰＵ印加電圧の上限値より高い場合、ＡＶＳコントローラ３３が設定するＣＰＵ印加電圧値が、当該動作周波数に予め対応付けられたＣＰＵ印加電圧の上限値以下となるように、ＣＰＵ動作周波数を下げる。これにより、ＡＶＳコントローラ３３によるＣＰＵ印加電圧値の制御と、ＤＶＦＳ制御部４４によるＣＰＵ動作周波数の制御とを適切に組み合わせて、ＣＰＵ印加電圧をより細かく制御することにより、精度の高い電力制御を実現し、情報処理装置１の消費電力量をより効果的に低減させることができる。
【００６３】
以下では、通常モードで動作中に電池残量が少ないことを検出して、省電力モードに切り替わったときに、ＣＰＵ印加電圧値を制御する処理の流れについて、図７を用いて説明する。図７は、通常モードから省電力モードに切り替わったときに、ＣＰＵ印加電圧値を制御する処理の流れを示すフローチャートである。
【００６４】
電池残量確認部５２は、電池残量・充電制御部２７をポーリングしており、電池残量・充電制御部２７からの電池残量情報を定期的に取得して、電池２１の電池残量が所定の閾値以下になっているか否かを判定している。電池残量が閾値以下であることを検出すると（Ｓ１０１にてＹｅｓ）、電池残量確認部５２は、モード決定部５１に対して、電池残量が所定の閾値以下になっていることを示す電池残量情報を出力する。電池残量情報を取得したモード決定部５１は、通常モードから省電力モードへ移行するようにＣＰＵ周波数制御部３７に指示する（Ｓ１０２）。
【００６５】
次に、ＣＰＵ印加電圧制限部４５は、省電力モードにおけるＣＰＵ動作周波数に応じたＣＰＵ印加電圧の上限値（図６参照）を電源ＩＣ２のレジスタ２５のＣＰＵ印加電圧上限値２５１に設定する（Ｓ１０３）。
【００６６】
電圧判定部２４は、電源ＩＣ２の電圧判定部２４用に用意された割り込み要因の割り込みマスクを解除（マスク無効化）する（Ｓ１０４）。これにより、ＣＰＵ３２への印加電圧がＡＶＳコントローラ３３から電源制御部２２が取得しているＣＰＵ印加電圧の上限値を超えたときに、電源ＩＣ２からホストコントローラ３への割り込みが可能となる。
【００６７】
電圧判定部２４は、ＣＰＵ電圧設定値２５２と、ＣＰＵ印加電圧上限値２５１とを比較して、ＣＰＵ電圧設定値２５２がＣＰＵ印加電圧上限値２５１を超えていないかを監視している。
【００６８】
電圧判定部２４が、ＣＰＵ印加電圧上限値２５１に記憶されているＣＰＵ印加電圧の上限値よりも高いＣＰＵ印加電圧値がレジスタ２５に記憶されている（すなわち、ＣＰＵ３２に現在印加されている電圧のＣＰＵ印加電圧値が、ＣＰＵ印加電圧の上限値よりも高い）ことを検出すると、割り込みコントローラ２６はホストコントローラ３に対する割り込みを発生させる。
【００６９】
ホストコントローラ３の割り込みコントローラ４６が、電源ＩＣ２の割り込みコントローラ２６からの割り込みを検出した場合（Ｓ１０５にてＹＥＳ）、割り込みコントローラ４６は割り込み発生の要因を受信した割り込み信号から読み取り、ＣＰＵ印加電圧が上限値を超えたことを確認するとともに、電圧判定部２４用に用意された割り込みにマスクをかける（Ｓ１０９ａ）。割り込みコントローラ４６が割り込みを検出したことをＤＶＦＳ制御部４４に通知し、該通知を受け取ったＤＶＦＳ制御部４４は、ＣＰＵ３２の動作周波数を１段階下の周波数へ下げる（図３参照）。さらに、ＣＰＵ印加電圧制限部４５は、変更後のＣＰＵ動作周波数に応じたＣＰＵ印加電圧の上限値（図６参照）をレジスタ２５のＣＰＵ印加電圧上限値２５１に設定する（Ｓ１０９ｂ：ＣＰＵ制御ステップ）。
【００７０】
その後に、例えば、１．０秒間の待ち時間を設ける（Ｓ１１０）。最後に、割り込みコントローラ４６は、電圧判定部２４用に用意されていたマスクを外すように指示して、電源ＩＣ２からの割り込みを有効化して（Ｓ１１１）、Ｓ１０５に戻る。
【００７１】
一方、割り込みコントローラ４６が割り込みコントローラ２６からの割り込みを検出していない場合（Ｓ１０５においてＮＯ）、ＣＰＵ使用率モニタ部４２は、定期的にＣＰＵ３２のＣＰＵ使用率をモニタしており、ＤＶＦＳ制御部４４は、現在のＣＰＵ動作周波数に対するＣＰＵ使用率が、省電力モードにおけるＣＰＵ動作周波数を切り替えるときのＣＰＵ使用率の閾値（図５参照）を超えているか否かを判定する。なお、現在のＣＰＵ使用率がＣＰＵ使用率閾値を超えている場合には、ＣＰＵ動作周波数Ｄｏｗｎの閾値以下である場合とＣＰＵ動作周波数ＵＰの閾値以上である場合とが含まれているが、図７では前者の場合のみを図示している。例えば、ＣＰＵ使用率が、ＣＰＵ動作周波数Ｄｏｗｎの閾値以下である場合には、ＣＰＵ動作周波数を１段階下げた後にＳ１０３に戻り、Ｓ１０３以降の処理を行えばよい（図示せず）。
【００７２】
ＤＶＦＳ制御部４４が、現在のＣＰＵ使用率がＣＰＵ動作周波数ＵＰの閾値以下と判定した場合（Ｓ１０６にてＮＯ）、現在のＣＰＵ動作周波数を維持してＳ１０５に戻る。一方、ＤＶＦＳ制御部４４が、現在のＣＰＵ使用率がＣＰＵ動作周波数ＵＰの閾値より高いと判定した場合（Ｓ１０６にてＹＥＳ）、ＣＰＵ印加電圧制限部４５は、レジスタ２５に記憶されている、ＣＰＵ３２に現在印加されている電圧のＣＰＵ電圧設定値２５２が、ＣＰＵ周波数アップ許可電圧６２に規定されているＣＰＵ周波数アップ許可電圧の電圧値を超えているか否かを判定する（Ｓ１０７）。ＣＰＵ３２に現在印加されている電圧のＣＰＵ印加電圧値が、ＣＰＵ周波数アップ許可電圧６２に規定されたＣＰＵ周波数アップ許可電圧の電圧値を超えている場合（Ｓ１０７にてＹＥＳ）、ＤＶＦＳ制御部４４は現在のＣＰＵ動作周波数を維持してＳ１０５に戻る。他方、ＣＰＵ３２に現在印加されている電圧のＣＰＵ印加電圧値が、ＣＰＵ周波数アップ許可電圧６２に規定されたＣＰＵ周波数アップ許可電圧の電圧値以下の場合（Ｓ１０７にてＮＯ）、ＤＶＦＳ制御部４４はＣＰＵ動作周波数を１段階上の周波数に上げて、変更後のＣＰＵ動作周波数に応じたＣＰＵ印加電圧の上限値を電源ＩＣ２のＣＰＵ印加電圧上限値２５１へ設定して（Ｓ１０８）、Ｓ１０５に戻る。
【００７３】
このように、情報処理装置１は、電源ＩＣ２からＣＰＵ３２に現在印加されている電圧のＣＰＵ印加電圧値が、ＣＰＵ３２の動作周波数毎に予め対応づけられたＣＰＵ印加電圧の上限値より高いことを示す割り込み（印加電圧情報）を電源ＩＣ２から取得した場合、ＣＰＵ印加電圧値が、ＣＰＵ動作周波数に応じたＣＰＵ印加電圧の上限値以下となるように、ＣＰＵ動作周波数を制御する。これにより、情報処理装置１が省電力モードで動作するときに、許容できないＣＰＵ印加電圧値がＡＶＳ制御によって設定された場合であっても、ＣＰＵ３２の動作周波数を落とすことによって、情報処理装置１の省電力を実現することができる。
【００７４】
（通常モードに切り替わったときに、ＣＰＵ印加電圧値を制御する処理の流れ）
続いて、情報処理装置１が充電器（図示せず）に接続された場合、または電池残量が増加した場合などにおいて、省電力モードから通常モードに切り替わったときの処理の流れについて、図８を用いて説明する。図８は、省電力モードから通常モードに切り替わったときに、ＣＰＵ印加電圧値を制御する処理の流れを示すフローチャートである。
【００７５】
電池残量確認部５２は、電池残量・充電制御部２７をポーリングしており、電池残量・充電制御部２７からの電池残量情報を定期的に取得して、電池２１の電池残量が増加して所定の閾値より多くなっているか否かを判定している。また、電池残量・充電制御部２７は、情報処理装置１が充電器と接続されたことを検出した場合（Ｓ２０１にてＹＥＳ）、システム電源制御部３５（例えば、電池残量確認部５２）は、電源ＩＣ２の電圧判定部２４用に用意されていたマスクをかける（マスク有効化）ように電圧判定部２４に指示する（Ｓ２０２）。
【００７６】
モード決定部５１は、電池２１の電池残量の増加、または充電器との接続が検出された旨を示す情報を電池残量確認部５２から取得して、動作モードを省電力モードから通常モードへ切り替えるように、ＣＰＵ周波数制御部３７に指示する（Ｓ２０３）。
【００７７】
このように、情報処理装置１は、電源ＩＣ２からホストコントローラ３への割り込みを無効化してから、省電力モードから通常モードにモードを切り替える。これにより、省電力モードから通常モードへの切り替えに伴うＣＰＵ動作周波数の制御において、ＤＶＦＳ制御部４４が無駄な割り込みを受け付けることが無いため、モード切り替えにおけるＣＰＵの動作周波数の制御を円滑に行うことができる。
【００７８】
（情報処理装置１のＣＰＵ印加電圧値およびＣＰＵ動作周波数の制御により実現される省電力効果の見積もり）
以下では、情報処理装置１のＣＰＵ印加電圧値およびＣＰＵ動作周波数の制御による電力削減の見積もりの一例を説明する。
【００７９】
非特許文献１によれば、ＣＰＵのアクティブ電力をＰ、スイッチ容量をＣ、ＣＰＵクロック周波数（ＣＰＵ動作周波数）をｆ、および電源電圧値（ＣＰＵ印加電圧値）をＶとしたとき、Ｐ＝α（係数）×Ｃ×ｆ×Ｖ２（式１）という関係式が成り立つ。すなわち、ＣＰＵのアクティブ電力Ｐは、ＣＰＵクロック周波数ｆおよび電源電圧の２乗Ｖ２に依存している。ここで、スイッチ容量Ｃは、（単位面積当たりの容量）×（チップ面積）によって求められる値であり、同じＣＰＵについてのアクティブ電力を求める場合には、スイッチ容量Ｃの値は不変である。なお、以下の説明では、係数αは説明を簡略化するために省略する。
【００８０】
ＡＶＳ制御によってＣＰＵ印加電圧値（図３）を制御する機能を備える電子機器は、ＣＰＵ動作周波数が１．２ＧＨｚ、ＣＰＵ印加電圧値が１．１５〜１．３５Ｖで動作する。このＣＰＵ動作周波数およびＣＰＵ印加電圧値は、電池残量が低下して省電力モードで動作する場合においても変更されない。例えば、ＣＰＵ動作周波数が１．２ＧＨｚ、ＣＰＵ印加電圧値が１．２５Ｖで動作している場合は、アクティブ消費電力Ｐ１（Ｗ；ワット）は上記の式１を用いて、Ｐ１＝Ｃ×ｆ×Ｖ２＝Ｃ×１．２×１．３５２＝２．１８７Ｃ（Ｗ）と算出される。
【００８１】
これに対し、本発明の情報処理装置１が上記電子機器と同じＣＰＵ構成を有する場合、省電力モードに切り替わったときのＣＰＵ印加電圧値が１．２５Ｖである場合には、電源ＩＣ２の割り込みコントローラ２６からの割り込みを受け付けたＤＶＦＳ制御部４４が、ＣＰＵ動作周波数を１．２ＧＨｚから１．０ＧＨｚへと低下させる。このときのアクティブ消費電力Ｐ２は、Ｐ２＝Ｃ×１．０×１．２５２＝１．５６２５Ｃ（Ｗ）と算出される。このように、本発明の情報処理装置１、１ａは、単にＡＶＳ制御を備えるだけの電子機器に比べて、Ｐ１−Ｐ２＝０．６２４５Ｃ（Ｗ）の消費電力の削減効果がさらに見込まれる。
【００８２】
〔実施形態２〕
本発明の他の実施形態について、図９〜図１２に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【００８３】
本実施形態に係る情報処理装置１ａは、電源ＩＣ制御部２３ａがレジスタ２５ａ（レジスタ部）のみを備えている点、および記憶部３６ａにＣＰＵ印加電圧上限値６４を記憶する点で情報処理装置１の構成と異なっている。
【００８４】
まず、本発明にかかる情報処理装置１ａのハードウェア構成の概略について図１０に基づいて説明する。図１０は、本実施形態に係る情報処理装置１ａのハードウェア構成の一例を示すブロック図である。なお、情報処理装置１ａは、操作入力部、マイク、スピーカ、カメラ部、表示部、記憶部、および充電器接続部などを備えていてもよいが、説明を簡略化するために、図１０では図示していない。
【００８５】
情報処理装置１ａは、図１０に示すように情報処理装置１ａを制御するホストコントローラ３ａおよびホストコントローラ３ａのＣＰＵ３２ａおよび情報処理装置１ａの各デバイス（図示せず）への電力供給を行う電源ＩＣ２ａを備えている。電源ＩＣ２ａとホストコントローラ３ａとは、電源ＩＣ２ａのＣＰＵインタフェース２８およびホストコントローラ３ａの電源ＩＣインタフェース３４を介して、Ｉ２ＣやＳＰＭＩなどの通信によってデータなどの送受信を行う。
【００８６】
ホストコントローラ３ａは、情報処理装置１ａを制御するＣＰＵシステムが搭載されており、ＣＰＵシステムブロック３１ａ、電源ＩＣインタフェース３４、システム電源制御部３５、および記憶部３６ａを備えている。さらに、ＣＰＵシステムブロック３１ａは、ＣＰＵ３２ａおよびＡＶＳコントローラ３３を備えている。なお、ＣＰＵシステムブロック３１ａは、シングルコアシステムであってもよいし、マルチコアシステムであっても良い。
【００８７】
電源ＩＣ２ａは、ＣＰＵシステムブロック３１ａのＣＰＵ３２ａなどに供給する電力の電圧を制御する電源制御部２２、電源ＩＣ２ａが行う動作を制御する電源ＩＣ制御部２３ａ、および前出のＣＰＵインタフェース２８が実装されている。電源制御部２２は、電池２１からＣＰＵシステムブロック３１ａへ供給する電力の電圧を制御する。電源制御部２２は、出力電圧をプログラマブルに変更できるような電源回路（ＤＣ／ＤＣなど）を備えており、電池２１から供給される電力から、レジスタ２５ａのＣＰＵ電圧設定値２５２に設定されている電圧値のＣＰＵ印加電圧を作成する。また、電源ＩＣ制御部２３ａは、レジスタ２５ａおよび電池残量・充電制御部２７を備えている。
【００８８】
（情報処理装置１ａの構成）
次に、情報処理装置１ａの構成について図９に基づいて説明する。図９は、本実施形態に係る情報処理装置１ａの要部構成の一例を示す機能ブロック図である。なお、説明の便宜上、既に上記で説明した部材については、その説明を省略する。
【００８９】
情報処理装置１ａは、電源ＩＣ２ａおよびホストコントローラ３ａを備えている。電源ＩＣ２ａは、電源制御部２２、レジスタ２５ａ、および電池残量・充電制御部２７を備えており、一方、ホストコントローラ３ａは、ＣＰＵシステムブロック３１ａ、システム電源制御部３５、および記憶部３６ａを備えている。なお、ホストコントローラ３ａが記憶部３６ａを含まない構成であってもよい。
【００９０】
ＣＰＵシステムブロック３１ａは、ＣＰＵ３２ａおよびＡＶＳコントローラ３３を備えており、ＣＰＵ３２ａは、省電力モードを含む１または複数の動作モードを有する情報処理装置１ａに搭載され、該情報処理装置１ａの動作を制御する。ＣＰＵ３２ａは、主機能部４１およびＣＰＵ周波数制御部３７を備えている。システム電源制御部３５は、モード決定部５１および電池残量確認部５２を備えている。
【００９１】
記憶部３６ａは、ＣＰＵ使用率閾値６１、ＣＰＵ周波数アップ許可電圧６２、ＣＰＵ周波数−印加電圧設定値６３、およびＣＰＵ印加電圧上限値６４を備えている。すなわち、図１の情報処理装置１では、電源ＩＣ２の、レジスタ２５のＣＰＵ印加電圧上限値２５１に設定されていたＣＰＵ印加電圧の上限値が、本実施形態に係る情報処理装置１ａでは、記憶部３６ａのＣＰＵ印加電圧上限値６４に設定される。
【００９２】
記憶部３６ａのＣＰＵ印加電圧上限値６４は、ホストコントローラ３ａのＣＰＵ印加電圧制限部４５によって設定される、現在のＣＰＵ動作周波数に対するＣＰＵ印加電圧として電力的に許容可能なＣＰＵ印加電圧値の上限値（電源電圧比較値）である。ＣＰＵ印加電圧の上限値は、ＣＰＵ動作周波数が変更される度に記憶部３６ａのＣＰＵ印加電圧上限値６４に設定される。
【００９３】
ＣＰＵ３２ａの動作周波数の変更は、ＣＰＵシステムブロック３１ａのＰＬＬ設定などを変更することにより行われる。一方、ＣＰＵ３２ａに印加する電圧の印加電圧値の変更は、電源ＩＣ２ａのレジスタ２５ａのＣＰＵ電圧設定値２５２へ、電圧値を設定することにより行われる。また、ＤＶＦＳ制御部４４は、ＣＰＵ印加電圧制限部４５に対して、現在のＣＰＵ動作周波数を出力してもよい。
【００９４】
ＤＶＦＳ制御部４４は、ＣＰＵ印加電圧が設定されている電源ＩＣ２ａのレジスタ２５ａをポーリングして、電源ＩＣ２ａからＣＰＵ３２ａに印加されている電圧のＣＰＵ印加電圧値を定期的に取得する。ＤＶＦＳ制御部４４は、ＣＰＵ周波数−印加電圧テーブル選択部４３によって読み出されたＣＰＵ使用率閾値６１のテーブルに規定されたＣＰＵ使用率閾値と、ＣＰＵ使用率モニタ部４２から取得したＣＰＵ使用率とを比較する。ＣＰＵ使用率モニタ部４２から取得したＣＰＵ使用率が閾値を超えている場合、ＤＶＦＳ制御部４４は、ＣＰＵ周波数−印加電圧テーブル選択部４３によって読み出されたＣＰＵ使用率閾値６１を参照して、１段階アップしたときにＣＰＵ動作周波数を決定する。そして、ＤＶＦＳ制御部４４は、ＣＰＵ印加電圧値をＣＰＵ周波数−印加電圧設定値６３（図３参照）に規定されている、変更先のＣＰＵ動作周波数に対応するＤＶＦＳ制御設定電圧の電圧値を設定し、続けて、変更先のＣＰＵ動作周波数へとＣＰＵ動作周波数を設定する。
【００９５】
すなわち、電源ＩＣ２ａには、ＣＰＵ３２ａからのポーリングに対してＣＰＵ印加電圧値を送信するレジスタ２５ａとして機能する論理回路が形成されている。
【００９６】
ＣＰＵ印加電圧制限部４５は、現在のＣＰＵ動作周波数に対応するＣＰＵ周波数アップ許可電圧値を、記憶部３６ａのＣＰＵ周波数アップ許可電圧６２を参照して、読み出すとともに、電源ＩＣ２ａのレジスタ２５ａからＣＰＵ電圧設定値２５２を読み出す。ＣＰＵ印加電圧制限部４５は、現在のＣＰＵ周波数に基づいて、ＣＰＵ印加電圧の上限値を決定し（図６参照）、記憶部３６ａのＣＰＵ印加電圧上限値６４へ設定する。
【００９７】
この構成によれば、ＤＶＦＳ制御部４４がレジスタ２５ａをポーリングすることにより、電源ＩＣ２ａからＣＰＵ３２ａに印加されている電圧値を、ホストコントローラ３ａが把握することができるため、情報処理装置１ａが省電力モードで動作するときに、許容できないＣＰＵ印加電圧値がＡＶＳ制御によって設定された場合であっても、ＣＰＵ３２ａの動作周波数を落とすことにより、情報処理装置１ａの省電力を実現することができる。
【００９８】
（省電力モードに切り替わったときに、ＣＰＵ印加電圧値を制御する処理の流れ）
ここでは、通常モードで動作中に電池残量が少ないことを検出して、省電力モードに切り替わったときに、情報処理装置１ａがＣＰＵ印加電圧値を制御する処理の流れについて、図１１を用いて説明する。図１１は、通常モードから省電力モードに切り替わったときに、ＣＰＵ印加電圧値を制御する処理の流れを示すフローチャートである。
【００９９】
電池残量確認部５２は、電池残量・充電制御部２７をポーリングしており、電池残量・充電制御部２７から電池残量情報を定期的に取得して、電池２１の電池残量が所定の閾値以下になっているか否かを判定している。電池残量が閾値以下であることを検出すると（Ｓ３０１にてＹｅｓ）、電池残量確認部５２は、モード決定部５１に対して、電池残量が所定の閾値以下になっていることを示す電池残量情報を出力する。電池残量情報を取得したモード決定部５１は、通常モードから省電力モードへ移行するようにＣＰＵ周波数制御部３７に指示する（Ｓ３０２）。
【０１００】
ＤＶＦＳ制御部４４は、現在のＣＰＵ動作周波数を確認し、ＣＰＵ動作周波数に応じたＣＰＵ印加電圧の上限値を記憶部３６ａから読み出す（Ｓ３０３）。またＤＶＦＳ制御部４４は、省電力モードに切り替わると、ＣＰＵ３２ａに現在印加されている電圧のＣＰＵ印加電圧値のポーリングを開始する（Ｓ３０４）。
【０１０１】
ＤＶＦＳ制御部４４は、電池２１の電圧が設定されているレジスタ２５ａのＣＰＵ電圧設定値２５２をポーリングして、ＣＰＵ印加電圧として設定された電圧がＣＰＵ印加電圧の上限値を超えていないか（印加電圧情報）を判定する（Ｓ３０５）。現在のＣＰＵ印加電圧値が、ＣＰＵ印加電圧の上限値を超えている場合（Ｓ３０５にてＹＥＳ）、ＤＶＦＳ制御部４４はＣＰＵ動作周波数を１段階下のＣＰＵ動作周波数へ下げて（図３参照）、変更したＣＰＵ動作周波数に応じたＣＰＵ印加電圧の上限値（図６参照）を、ＣＰＵ印加電圧値の判定を行うためのＣＰＵ印加電圧の上限値として設定する（Ｓ３０９：ＣＰＵ制御ステップ）。
【０１０２】
その後、例えば１．０秒間の待ち時間を設ける（Ｓ３１０）。この最適化が完了するまで、ＤＶＦＳ制御部４４は、ＣＰＵ印加電圧値のポーリングを行わないことが望ましい。
【０１０３】
現在のＣＰＵ印加電圧値が、ＣＰＵ印加電圧の上限値以下である場合（Ｓ３０５にてＮＯ）、ＤＶＦＳ制御部４４は、現在のＣＰＵ使用率がＣＰＵ動作周波数ＵＰの閾値を超えているか否かを判定する（Ｓ３０６）。ＤＶＦＳ制御部４４が、現在のＣＰＵ使用率がＣＰＵ動作周波数ＵＰの閾値以下である場合（Ｓ３０６にてＮＯ）、現在のＣＰＵ動作周波数を維持してＳ３０５に戻る。一方、ＤＶＦＳ制御部４４が、現在のＣＰＵ使用率がＣＰＵ動作周波数ＵＰの閾値より高いと判定した場合（Ｓ３０６にてＹＥＳ）、ＣＰＵ印加電圧制限部４５は、レジスタ２５ａに記憶されている、ＣＰＵ３２ａに現在印加されている電圧のＣＰＵ印加電圧値が、ＣＰＵ周波数アップ許可電圧６２に規定されているＣＰＵ周波数アップ許可電圧値を超えているか否かを判定する（Ｓ３０７）。ＣＰＵ３２ａに現在印加されている電圧のＣＰＵ印加電圧値が、ＣＰＵ周波数アップ許可電圧６２に規定されているＣＰＵ周波数アップ許可電圧値を超えている場合（Ｓ３０７でＹＥＳ）、現在のＣＰＵ動作周波数を維持してＳ３０５に戻る。他方、ＣＰＵ３２ａに現在印加されている電圧のＣＰＵ印加電圧値が、ＣＰＵ周波数アップ許可電圧６２に規定されているＣＰＵ周波数アップ許可電圧値以下の場合（Ｓ３０７にてＮＯ）、ＤＶＦＳ制御部４４はＣＰＵ動作周波数を１段階上の周波数に上げて、変更後のＣＰＵ動作周波数に応じたＣＰＵ印加電圧の上限値を読み出して（Ｓ３０８）、Ｓ３０５に戻る。
【０１０４】
このように、情報処理装置１ａは、ＣＰＵ３２ａに現在印加されている電圧のＣＰＵ印加電圧値をレジスタ２５ａのＣＰＵ電圧設定値２５２へのポーリングによって取得し、ＣＰＵ３２ａに現在印加されている電圧のＣＰＵ印加電圧値が、ＣＰＵ３２ａの動作周波数に予め対応づけられたＣＰＵ印加電圧の上限値より高い場合、ＣＰＵ動作周波数を適切に制御する。これにより、情報処理装置１ａが省電力モードで動作するときに、許容できないＣＰＵ印加電圧値がＡＶＳ制御によって設定された場合であっても、ＣＰＵ３２ａの動作周波数を落とすことによって、情報処理装置１ａの省電力を実現することができる。
【０１０５】
（通常モードに切り替わったときに、ＣＰＵ印加電圧値を制御する処理の流れ）
続いて、情報処理装置１ａが充電器（図示せず）に接続された場合、または電池残量が増加した場合などにおいて、省電力モードから通常モードに切り替わったときの処理の流れについて、図１２を用いて説明する。図１２は、省電力モードから通常モードに切り替わったときに、ＣＰＵ印加電圧値を制御する処理の流れを示すフローチャートである。
【０１０６】
電池残量確認部５２は、電池残量・充電制御部２７をポーリングしており、電池残量・充電制御部２７から電池残量情報を定期的に取得して、電池２１の電池残量が増加して所定の閾値より多くなっているか否かを判定している。また、電池残量・充電制御部２７は、情報処理装置１ａが充電器と接続されたことを検出した場合（Ｓ４０１においてＹＥＳ）、モード決定部５１からの通知を受け取ったＤＶＦＳ制御部４４は、省電力モードにおいて定期的に行っていた、電池２１の電圧が設定されているレジスタ２５ａへのポーリングを解除する（Ｓ４０２）。
【０１０７】
次にモード決定部５１は、電池２１の電池残量の増加、または充電器との接続を電池残量確認部５２が検出した旨を示す情報を取得して、動作モードを省電力モードから通常モードへ切り替えるように、ＣＰＵ周波数制御部３７に指示する（Ｓ４０３）。
【０１０８】
このように、情報処理装置１ａは、電源ＩＣ２ａからホストコントローラ３ａへの割り込みを無効化してから、省電力モードから通常モードにモードを切り替える。これにより、省電力モードから通常モードへの切り替えに伴うＣＰＵ動作周波数の制御において、ＤＶＦＳ制御部４４がレジスタ２５ａを無駄にポーリングすることが無くなるため、モード切り替えにおけるＣＰＵ３２ａの動作周波数の制御を円滑に行うことができる。
【０１０９】
〔実施形態３〕
情報処理装置１、１ａのＣＰＵ３２、３２ａの制御ブロック（特に主機能部４１；ＣＰＵ周波数制御部３７、３７ａのＣＰＵ使用率モニタ部４２、ＣＰＵ周波数−印加電圧テーブル選択部４３、ＤＶＦＳ制御部４４、およびＣＰＵ印加電圧制限部４５；および割り込みコントローラ４６）、およびシステム電源制御部３５の制御ブロック（モード決定部５１および電池残量確認部５２）は、プロセッサを用いてソフトウェアによって実現される。
【０１１０】
詳細には、情報処理装置１、１ａは、各機能を実現するソフトウェアであるプログラムの命令を実行するプロセッサ、上記プログラムおよび各種データがコンピュータ（またはプロセッサ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはプロセッサ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１１１】
〔まとめ〕
本発明の態様１に係る情報処理装置１、１ａは、ＣＰＵ３２、３２ａと、設定された印加電圧値に従って上記ＣＰＵに印加する電圧を制御するＣＰＵ印加電圧制御装置（電源ＩＣ２、２ａ）と、上記ＣＰＵによる上記印加電圧値の設定の変更とは独立に、上記ＣＰＵの現在の状態に応じた上記印加電圧値への設定の変更を上記ＣＰＵ印加電圧制御装置に対して行うＣＰＵ印加電圧設定部（適応型電圧スケーラ、ＡＶＳコントローラ３３）とを有し、上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記ＣＰＵ印加電圧設定部が設定する上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記動作周波数を下げるＣＰＵ制御部（ＤＶＦＳ制御部４４）を備えている。
【０１１２】
上記ＣＰＵ印加電圧設定部は、上記ＣＰＵによる上記印加電圧値の設定の変更とは独立に、上記ＣＰＵの現在の状態に応じた上記印加電圧値への設定の変更を上記ＣＰＵ印加電圧制御装置に対して行う。それゆえ、上記ＣＰＵおよび上記ＣＰＵ印加電圧設定部が上記ＣＰＵ印加電圧制御装置に対して上記印加電圧値の設定の変更を行う情報処理装置において、上記ＣＰＵ印加電圧設定部が上記印加電圧値の設定の変更を行った場合、上記印加電圧値が、上記ＣＰＵの現在の動作周波数に予め対応付けられた電源電圧比較値より高く上記ＣＰＵ印加電圧制御装置に設定される虞がある。
【０１１３】
上記の構成によれば、上記ＣＰＵ印加電圧設定部が設定の変更を行う上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記動作周波数を下げる。これにより、例えば、情報処理装置が省電力モードで動作するときに、省電力のためには許容できないＣＰＵ印加電圧値がＣＰＵ印加電圧設定部によって設定された場合においても、ＣＰＵの動作周波数を落とすことができる。よって、ＣＰＵ印加電圧設定部を備える情報処理装置のＣＰＵ印加電圧をより細かく制御することにより、精度の高い電力制御を実現し、消費電力をさらに効果的に低減することができる。
【０１１４】
本発明の態様２に係る情報処理装置１は、上記態様１において、上記ＣＰＵ印加電圧制御装置は、上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの動作周波数に予め対応づけられた所定の上記電源電圧比較値より高いか否かを判定する電圧判定部２４と、上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記ＣＰＵ制御部に対する割り込みを発生させる割り込み制御部（割り込みコントローラ２６）とを備えていてもよい。
【０１１５】
上記の構成によれば、上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの動作周波数に予め対応づけられた所定の上記電源電圧比較値より高いと判定したときに、ＣＰＵ印加電圧制御装置からＣＰＵ制御部への割り込みを発生させる。これにより、ＣＰＵに現在印加されている印加電圧値が、上記ＣＰＵの動作周波数に予め対応付けられた電源電圧比較値より高くなったことを、ＣＰＵ印加電圧制御装置からＣＰＵ制御部へリアルタイムに通知することができる。よって、ＣＰＵ印加電圧設定部によって印加電圧値が設定された場合においても、ＣＰＵが設定された印加電圧値を知ることができるので、ＣＰＵは、印加電圧値に基づいてＣＰＵの動作周波数を適切に制御することができる。
【０１１６】
本発明の態様３に係る情報処理装置１は、上記態様２において、上記割り込み制御部は、省電力モードのとき、上記割り込みの発生を行ってもよい。
【０１１７】
これにより、ＣＰＵ印加電圧設定部による印加電圧の制御に加えて、効果的にＣＰＵの動作周波数を制御することができる。よって、省電力モードにおける消費電力を低減することができる。
【０１１８】
本発明の態様４に係る情報処理装置１ａは、上記態様１において、上記ＣＰＵ制御部は、上記ＣＰＵ印加電圧制御装置に対してポーリングし、上記ＣＰＵに現在印加されている電圧の印加電圧値を取得してもよい。
【０１１９】
これにより、ＣＰＵ制御部は、上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの現在の動作周波数に予め対応付けられた電源電圧比較値より高いか否かをリアルタイムに判断することができる。よって、ＣＰＵ印加電圧設定部によって印加電圧値が設定された場合においても、ＣＰＵが設定された印加電圧値を知ることができるので、ＣＰＵは、印加電圧値に基づいてＣＰＵの動作周波数を適切に制御することができる。
【０１２０】
本発明の態様５に係る情報処理装置１ａは、上記態様４において、上記ＣＰＵ制御部は、省電力モードのとき、上記ＣＰＵ印加電圧制御装置に対するポーリングを行ってもよい。
【０１２１】
これにより、ＣＰＵ印加電圧設定部による印加電圧の制御に加えて、効果的にＣＰＵの動作周波数を制御することができる。よって、省電力モードにおける消費電力を低減することができる。
【０１２２】
本発明の態様６に係るＣＰＵ印加電圧制御装置（電源ＩＣ２）は、情報処理装置１に搭載され、該情報処理装置の動作を制御するＣＰＵ３２に印加する電圧を、設定された印加電圧値に従って制御するＣＰＵ印加電圧制御装置であって、上記情報処理装置は、上記ＣＰＵによる上記印加電圧値の設定の変更に加え、上記ＣＰＵによる上記印加電圧値の設定の変更とは独立に、上記ＣＰＵの現在の状態に応じた上記印加電圧値への設定の変更を上記ＣＰＵ印加電圧制御装置に対して行うＣＰＵ印加電圧設定部（適応型電圧スケーラ、ＡＶＳコントローラ３３）による上記印加電圧値の設定の変更が可能であり、上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの動作周波数に予め対応づけられた電源電圧比較値より高いか否かを判定する電圧判定部２４、および上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記ＣＰＵに対する割り込みを発生させ、上記ＣＰＵ印加電圧設定部が設定の変更を行う上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記ＣＰＵに上記動作周波数を下げさせる割り込み制御部（割り込みコントローラ２６）として機能する論理回路部（電源ＩＣ制御部２３）を備える。上記の構成によれば、上記態様２と同様の効果を奏する。
【０１２３】
本発明の態様７に係るＣＰＵ印加電圧制御装置（電源ＩＣ２ａ）は、情報処理装置に搭載され、該情報処理装置の動作を制御するＣＰＵ３２ａに印加する電圧の印加電圧値を制御するＣＰＵ印加電圧制御装置であって、上記情報処理装置は、上記ＣＰＵによる上記印加電圧値の設定に加え、上記ＣＰＵによる上記印加電圧値の設定の変更とは独立に、上記ＣＰＵの現在の状態に応じた上記印加電圧値への設定の変更を上記ＣＰＵ印加電圧制御装置に対して行うＣＰＵ印加電圧設定部（適応型電圧スケーラ、ＡＶＳコントローラ３３）による上記印加電圧値の設定が可能であり、上記ＣＰＵに現在印加されている電圧の印加電圧値を記憶し、該印加電圧値を上記ＣＰＵからのポーリングに対して送信するレジスタ部（レジスタ２５ａ）として機能する論理回路部（電源ＩＣ制御部２３ａ）を備える。上記の構成によれば、上記態様４と同様の効果を奏する。
【０１２４】
本発明の態様８に係る情報処理装置１、１ａの制御方法は、ＣＰＵ３２と、設定された印加電圧値に従って上記ＣＰＵに印加する電圧の印加電圧値を制御するＣＰＵ印加電圧制御装置（電源ＩＣ２、２ａ）と、上記ＣＰＵによる上記印加電圧値の設定の変更とは独立に、上記ＣＰＵの現在の状態に応じた上記印加電圧値への設定の変更を上記ＣＰＵ印加電圧制御装置に対して行うＣＰＵ印加電圧設定部（適応型電圧スケーラ、ＡＶＳコントローラ３３）とを備える情報処理装置の制御方法であって、上記ＣＰＵに現在印加されている電圧の印加電圧値が、上記ＣＰＵの現在の動作周波数に予め対応付けられた電源電圧比較値より高い場合、上記ＣＰＵ印加電圧設定部が設定する上記印加電圧値が、当該動作周波数に予め対応付けられた電源電圧比較値以下となるように、上記動作周波数を下げるＣＰＵ制御ステップ（Ｓ１０９ｂ、Ｓ３０９）を含む。上記の構成によれば、上記態様１と同様の効果を奏する。
【０１２５】
本発明の各態様に係る情報処理装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記情報処理装置のホストコントローラが備える各部（ソフトウェア要素）として動作させることにより上記情報処理装置をコンピュータにて実現させる情報処理装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【０１２６】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。
【産業上の利用可能性】
【０１２７】
本発明は、充電池などの電池から供給される電力によって駆動する携帯機器等に利用することができる。
【符号の説明】
【０１２８】
１、１ａ  情報処理装置、
２、２ａ  電源ＩＣ（ＣＰＵ印加電圧制御装置）
２３、２３ａ  電源ＩＣ制御部（論理回路部）
２４  電圧判定部
２５、２５ａ  レジスタ（レジスタ部）
２６  割り込みコントローラ（割り込み制御部）
３２、３２ａ  ＣＰＵ
３３  ＡＶＳコントローラ（ＣＰＵ印加電圧設定部）
４４  ＤＶＦＳ制御部（ＣＰＵ制御部）
Ｓ１０９ｂ、Ｓ３０９  ＣＰＵ制御ステップ
【図１】
0006377560.tif 000002
【図２】
0006377560.tif 000003
【図３】
0006377560.tif 000004
【図４】
0006377560.tif 000005
【図５】
0006377560.tif 000006
【図６】
0006377560.tif 000007
【図７】
0006377560.tif 000008
【図８】
0006377560.tif 000009
【図９】
0006377560.tif 000010
【図１０】
0006377560.tif 000011
【図１１】
0006377560.tif 000012
【図１２】
0006377560.tif 000013