(57)【要約】情報処理装置の性能と消費電力を適切に調整することを容易にする。  情報処理装置１は、制御部（制御手段）４と、演算装置５とを有している。演算装置５に対しては、当該演算装置５の性能に関わる複数の固定値と、演算装置５の電力に関わる複数の固定値とが動作条件として定められている。制御部４は、前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた前記周期で順次変更する制御信号とを同期して出力する。
2012067211.tif 000002
【特許請求の範囲】
【請求項１】
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置と、
前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号とを同期して出力する制御手段と
を有する情報処理装置。
【請求項２】
前記性能に関わる前記固定値は前記演算装置の動作周波数であり、前記電力に関わる前記固定値は前記演算装置の電源電圧値であり、
前記制御手段は、複数の前記動作周波数の中から選択された一部又は全部の前記動作周波数を前記周期で順次変更する制御信号と、複数の前記電源電圧の中から選択された一部又は全部の前記電源電圧を前記周期で順次変更する制御信号とを同期して出力する請求項１記載の情報処理装置。
【請求項３】
前記制御手段は、前記演算装置が実行するアプリケーションソフトウェアの動作特性に基づいて、前記性能に関わる前記固定値および前記電力に関わる前記固定値を選択すると共に、それら固定値を変更する周期を決定する請求項１又は請求項２記載の情報処理装置。
【請求項４】
前記制御手段は、さらに、消費電力に関わる前記演算装置の動作を制御する機能をも備えている請求項１又は請求項２又は請求項３記載の情報処理装置。
【請求項５】
前記周期は、前記演算装置が実行するアプリケーションソフトウェアの動作特性に基づいて定まる周期である請求項１乃至請求項４の何れか一つに記載の情報処理装置。
【請求項６】
前記制御手段は、進行中の周期の制御動作に対応する制御情報と、次の周期に実行予定の制御動作に対応する制御情報とを保持している請求項１乃至請求項５の何れか一つに記載の情報処理装置。
【請求項７】
前記制御手段は、前記周期よりも短い時間間隔毎にカウントするタイマと、当該タイマの値に基づいて前記制御信号を出力する制御信号出力手段とを有している請求項１乃至請求項６の何れか一つに記載の情報処理装置。
【請求項８】
請求項１乃至請求項７の何れか一つに記載の情報処理装置を備えている電子機器。
【請求項９】
情報処理装置に、
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置の前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号とを同期して出力する処理を行わせるコンピュータプログラムを記憶しているコンピュータプログラム記憶媒体。
【請求項１０】
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置の前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で変更する制御信号を出力し、
それと共に、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号を同期して出力する性能と電力の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、電子機器、コンピュータプログラム記憶媒体、および、性能と電力の制御方法に関する。
【背景技術】
【０００２】
図９は、情報処理装置の構成例を簡略化して示すブロック図である。この情報処理装置１００は、演算装置１０１と、周波数回路１０２と、電源回路（電源電圧生成回路）１０３と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）１０４と、記憶装置１０５とを有している。
記憶装置１０５は、各種データやコンピュータプログラムを格納する記憶媒体を備えている。周波数回路１０２は、基準信号を生成する回路構成を有している。電源回路１０３は、電源電圧を生成する回路構成を有している。Ｉ／Ｏ１０４は、情報処理装置１００から情報を外部に出力する機能と、外部から情報を情報処理装置１００に入力する機能とを有している。
演算装置１０１は、管理部１０７と、アプリケーション部１０８と、演算部１０９とを有している。管理部１０７は、記憶装置１０５から読み込んだコンピュータプログラムに従って周波数回路１０２を制御する機能（換言すれば、基準信号の周波数を制御する機能）を備えている。さらに、管理部１０７は、コンピュータプログラムに従って電源回路１０３を制御する機能（換言すれば、電源電圧値を制御する機能）も備えている。
アプリケーション部１０８は、記憶装置１０５から読み出したアプリケーションソフトウェア（コンピュータプログラム）に基づいて当該アプリケーションソフトウェアの機能（以下、アプリケーションとも記す）を実現する機能を備えている。演算部１０９は、アプリケーション部１０８からの指示に従って演算する機能を備えている。
上記のように、演算装置１０１は、記憶装置１０５から読み込んだコンピュータプログラムに従って動作することにより、各種機能を実現する装置である。この演算装置１０１は、例えば、ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）である。
ところで、近年、情報処理装置は、半導体集積回路（ＣＰＵ）が進歩していることにより、性能がますます向上している。その反面、情報処理装置は、消費電力が増大しているという問題を抱えるようになっている。その問題を抑制すべく、消費電力に大きく関与する半導体集積回路の動作周波数と電源電圧値を制御する手法が提案されている。この提案された手法では、設定できる半導体集積回路の動作周波数と電源電圧値とがそれぞれ複数点ある。そして、消費電力の抑制を考慮し、それら複数点の中から、アプリケーションに応じた動作周波数と電源電圧値とが選択される。
つまり、半導体集積回路の動作周波数を高めていくと、アプリケーションの性能（処理速度）を高めることができる。しかしながら、動作周波数を高くすると、半導体集積回路での消費電力が増加する。また、回路動作安定化のためには、半導体集積回路の動作周波数が高くなるにつれて電源電圧値も高くすることが好ましい。しかしながら、電源電圧値を高くすると、半導体集積回路での消費電力が増加する。これらのことを考慮して、上記提案された手法では、消費電力とアプリケーションの性能との兼ね合いが適当となるように、動作周波数と電源電圧値が、複数の設定値の中から選択されるようにしている。
特許文献１には、上記提案された手法を利用して電力を管理する装置の一例が示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１１８７２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、アプリケーションが複雑になってきているために、上記提案された手法では、次のような問題が生じる場合がある。すなわち、アプリケーションが複雑化することによって、アプリケーションに適切な動作周波数と電源電圧値が多様化する。このため、前述したような不連続的に設定された複数の動作周波数と電源電圧だけでは、動作周波数と電源電圧値を、アプリケーションに適切な状態に調整できない場合（換言すれば、性能と消費電力を適切に調整できない場合）がある。
本発明は上記問題を解決するためになされたものである。すなわち、本発明の主な目的は、性能と電力（消費電力）を調整することが容易となる情報処理装置、電子機器、コンピュータプログラム記憶媒体、および、性能と電力の制御方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置と、
前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号とを同期して出力する制御手段と
を有する。
本発明の電子機器は、上記本発明の情報処理装置を備える。
本発明のコンピュータプログラム記憶媒体は、
情報処理装置に、
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置の前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号とを同期して出力する処理を行わせるコンピュータプログラムを記憶している。
本発明の性能と電力の制御方法は、
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置の前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で変更する制御信号を出力し、
それと共に、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号を同期して出力する。
【発明の効果】
【０００６】
本発明によれば、情報処理装置の性能と電力を調整することが容易となる。
【図面の簡単な説明】
【０００７】
図１Ａは、本発明に係る第１実施形態の情報処理装置が持つ構成を簡略化して示すブロック図である。
図１Ｂは、第１実施形態における情報処理装置の構成をさらに説明するブロック図である。
図１Ｃは、第１実施形態の情報処理装置を備えた電子機器の構成を簡略化して示すブロック図である。
図２Ａは、第１実施形態の効果を説明する際に利用する周波数変化例を表す図である。
図２Ｂは、第１実施形態の効果を説明する際に利用する電源電圧の波形図である。
図３は、本発明に係る第２実施形態の情報処理装置が持つ構成を簡略化して示すブロック図である。
図４は、制御情報の一例を示す図である。
図５は、第２実施形態における動作周波数と電源電圧との波形例を示す図である。
図６は、第２実施形態において制御信号を出力する動作に関わるフローチャートである。
図７は、第２実施形態におけるデータを更新する動作に関わるフローチャートである。
図８は、本発明に係るその他の実施形態を説明する図である。
図９は、情報処理装置の一つを簡略化して示すブロック図である。
【発明を実施するための形態】
【０００８】
以下に、本発明に係る実施形態を図面を参照して説明する。
（第１実施形態）
図１Ａは、本発明に係る第１実施形態の情報処理装置が持つ構成を簡略化して示すブロック図である。この第１実施形態の情報処理装置１は、制御部（制御手段）４と、演算装置５とを有している。
演算装置５の動作条件として、当該演算装置５の性能に関わる複数の固定値（以下、性能関連値とも記す）、および、演算装置５の電力に関わる複数の固定値（以下、電力関連値とも記す）が予め定められている。演算装置５は、それら性能関連値と電力関連値に基づいた状態で動作する。
制御部（制御手段）４は、複数の性能関連値の中から選択された一部又は全部の性能関連値を予め定められた周期で順次変更する制御信号を出力する機能を備えている。さらに、制御部４は、複数の電力関連値の中から選択された一部又は全部の電力関連値を予め定められた周期で順次変更する制御信号を前記制御信号と同期して出力する機能を備えている。
例えば、図１Ｂに示されるように、情報処理装置１は、コンピュータプログラム記憶媒体としての記憶装置６を有する。当該記憶装置６は、コンピュータプログラム７を保持している。当該コンピュータプログラム７には、性能関連値と電力関連値をそれぞれ前記したように前記周期で変更する機能（周期変更機能）を制御部４に持たせるための処理手順が含まれている。
制御部４が記憶装置６のコンピュータプログラム７に従って動作することによって、制御部４の周期変更機能が実現される。
この第１実施形態の情報処理装置１は、次のような効果を得ることができる。この効果の説明では、説明を分かり易くするために、性能関連値は動作周波数とし、電力関連値は電源電圧値とする。例えば、演算装置５が動作可能な周波数（動作周波数、クロック周波数）として、互いに異なる複数（例えば４個）の周波数（性能関連値）Ｆａ，Ｆｂ，Ｆｃ，Ｆｄ（図２Ａ参照）が設定されているとする。
この第１実施形態では、制御部４の制御動作によって、演算装置５の動作周波数（クロック周波数）は、予め定められた周期で変化する。つまり、演算装置５の動作周波数においては、前記周波数Ｆａ，Ｆｂ，Ｆｃ，Ｆｄの中から選択された一部又は全部の周波数が前記周期で順次変化する。具体的には、例えば、図２Ａでは、演算装置５の動作周波数は、期間Ｋ１においては、周波数Ｆａから周波数Ｆｄに切り換わり、再び設定周波数Ｆａに戻るというサイクルを時間Ｔ１で繰り返す（周期変化する）。また、期間Ｋ２においては、演算装置５の動作周波数は、周波数Ｆａから周波数Ｆｃに切り換わり、再び周波数Ｆａに戻るというサイクルを時間Ｔ２で繰り返す（周期変化する）。なお、時間（周期）Ｔ１，Ｔ２は、例えばミリ秒未満の時間である。また、これら時間（周期）Ｔ１，Ｔ２は、同じでもよいし、異なっていてもよい。
ここで、情報処理装置１が、上記のような周波数変化の周期Ｔ１，Ｔ２よりも大きな周期レベル（例えばミリ秒レベル）で動作するアプリケーション（アプリケーションソフトウェアに基づいた機能）を備えているとする。このアプリケーションから見ると、演算装置５の動作周波数は、図２Ａに示す周波数Ｆｖに見える。その周波数Ｆｖは、実際に演算装置５が動作している複数の周波数（性能関連値）の平均周波数（周期Ｔ１，Ｔ２に占める時間割合で重み付けした平均値）である。このため、周波数Ｆｖは、周波数（性能関連値）Ｆａ，Ｆｂ，Ｆｃ，Ｆｄとは限らない。
つまり、周波数Ｆｖは、演算装置５が実際に動作する周波数と、その周波数で動作している時間が周期Ｔ１，Ｔ２において占める割合（時間割合）とを適宜に設定することにより、柔軟に変更することが可能である。
すなわち、演算装置５は、周波数（性能関連値）Ｆａ，Ｆｂ，Ｆｃ，Ｆｄで動作している。しかし、この第１実施形態の情報処理装置１は、アプリケーションから見た演算装置５の動作周波数（仮想的な動作周波数）Ｆｖを、その周波数（性能関連値）Ｆａ，Ｆｂ，Ｆｃ，Ｆｄに規制されずに柔軟に制御できる。
上記のような周波数制御と同様に、情報処理装置１は、電源電圧値を柔軟に制御できる。すなわち、演算装置５は、設定されている互いに異なる複数の電源電圧値（電力関連値）Ｖａ，Ｖｂ，Ｖｃ，Ｖｄ（図２Ｂ参照）で動作する。ところが、この第１実施形態の情報処理装置１は、アプリケーションから見た演算装置５の電源電圧値Ｖｖ（仮想的な電源電圧値）を、電源電圧値（電力関連値）Ｖａ，Ｖｂ，Ｖｃ，Ｖｄに制約されずに、柔軟に制御できる。この例では、電源電圧値Ｖｖは、実際の電源電圧値（電力関連値）の平均電圧値（周期Ｔ１，Ｔ２に占める時間割合で重み付けした平均値）である。
上記のように、この第１実施形態の情報処理装置１は、アプリケーションから見た演算装置５の見かけ上の動作周波数と電源電圧値（仮想的な動作周波数と電源電圧値）を、設定されている周波数（性能関連値）と電源電圧値（電力関連値）に規制（制約）されずに、柔軟に制御（微調整）できる。
動作周波数は装置の性能に大きく影響する。電源電圧値は消費電力に影響する。このため、上記のように、動作周波数および電源電圧値を柔軟に調整することが容易となることによって、この第１実施形態の情報処理装置１は、その性能と消費電力の調整が容易となる。換言すれば、この第１実施形態の情報処理装置１は、動作周波数と電源電圧値を、アプリケーションに適切な状態に容易に調整できる。
この情報処理装置１は、図１Ｃに示されるように、様々な電子機器８に組み込まれ、当該電子機器８の性能向上および省電力化に寄与できる。電子機器８の一例として、例えばパーソナルコンピュータ（パソコン）や、携帯通信装置（携帯電話や携帯情報端末等）がある。
なお、効果の説明では、性能に関わる固定値（性能関連値）を動作周波数とし、電力に関わる固定値（電力関連値）を電源電圧値としている。しかし、実際には、動作周波数は、性能だけではなく電力（消費電力）にも関与している。同様に、電源電圧は、電力（消費電力）だけでなく性能にも関与している。
（第２実施形態）
以下に、本発明に係る第２実施形態を説明する。
図３は、第２実施形態における情報処理装置の構成を簡略化して示すブロック図である。この第２実施形態の情報処理装置２０は、周波数回路２１と、電源回路２２と、細粒度制御部（制御手段）２３と、演算装置２４と、Ｉ／Ｏ２５と、記憶装置２６とを有している。
周波数回路２１は、基準信号を生成する回路構成を有している。電源回路２２は、演算装置２４が使用する電源電圧を生成する回路構成を有している。Ｉ／Ｏ２５は、情報処理装置２０に情報を入力する機能と、情報を出力する機能とを持つ構成部である。
記憶装置２６は、データやコンピュータプログラムが格納される記憶媒体（例えば、ハードディスク（磁気記憶媒体）等の不揮発性の記憶媒体）を有している。なお、上記コンピュータプログラムは、例えば、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等の可搬型記憶媒体に記憶され、当該可搬型記憶媒体から記憶装置２６に格納される。あるいは、上記コンピュータプログラムは、情報通信網を通って、記憶装置２６に格納（ダウンロード）される。
演算装置２４は、ＣＰＵ（中央演算装置）により構成される。この演算装置２４には、複数の互いに異なる動作周波数が、動作可能な周波数（クロック周波数）として設定されている。当該動作周波数は、性能に関わる固定値（性能関連値）である。
また、演算装置２４には、複数の互いに異なる電源電圧値が、動作可能な設定電圧値として、設定されている。設定電圧値は、電力に関わる固定値（電力関連値）である。
演算装置２４は、記憶装置２６に格納されているコンピュータプログラムを読み出し、当該コンピュータプログラムに従って動作することによって、次のような機能を実現する。すなわち、演算装置２４は、管理部３０と、アプリケーション部３１と、演算部３２とを有している。
アプリケーション部３１は、記憶装置２６に格納されているアプリケーションソフトウェアに基づいた処理（アプリケーション）を実行する機能を備えている。演算部３２は、アプリケーション部３１からの指令に基づいて演算等の処理を実行する機能を備えている。
管理部３０は、次に述べる制御情報を予め与えられる時間間隔毎（周期的）に細粒度制御部２３に向けて送信する機能を備えている。
その制御情報は、細粒度制御部２３が行う周期制御に使用する各種の設定情報である。ところで、アプリケーションには多くの種類がある。各アプリケーションには、それぞれ、性能を良好に発揮できる適切な演算装置２４の動作周波数（クロック周波数）がある。前記制御情報は、各アプリケーション毎に、上記のような各アプリケーションに適切な動作周波数や、省電力化を考慮して、定められている（設定されている）。
具体的には、例えば、図４に示されるように、制御情報は、周期（最大タイマ値（一例として、５１２））、動作周波数（性能関連値）、設定電圧値としての電源電圧値（電力関連値）、演算装置（ＣＰＵ）２４の命令供給停止モードや強制スリープモード等の動作モード（消費電力に関わる動作）の設定情報などを含む１周期分の情報である。換言すれば、その制御情報は、周波数回路２１と電源回路２２と細粒度制御部２３（タイマ３９）と演算装置２４の各動作に使用する設定情報である。この制御情報は、前記の如く、アプリケーション毎に、当該アプリケーションの性能と、演算装置（ＣＰＵ）２４の消費電力とを考慮して設定され、記憶装置２６に格納される。
なお、図４に示す制御情報は一例であって、制御情報は、図４に示す内容に限定されない。また、上記のように、制御情報は、アプリケーション毎に適宜設定されることから、例えば周期も、アプリケーションに応じて適宜設定される。さらに、制御情報に含まれる動作周波数、電源電圧値（設定電圧）は、演算装置２４が動作可能な予め定められた値である。さらに、演算装置２４が実行する動作モードの制御手法には、様々な手法があり、ここでは、それら手法のうちの何れを採用してもよいので、その説明は省略する。
管理部３０は、さらに、アプリケーション部３１が実行しているアプリケーションが切り替わる場合に、その次のアプリケーションに応じた制御情報を記憶装置２６から読み出して、細粒度制御部２３に通知する機能をも備えている。
細粒度制御部２３は、ＣＰＵ（中央演算装置）により構成される。細粒度制御部２３は、記憶装置２６から読み込んだコンピュータプログラムに従って動作することにより、周波数回路２１と電源回路２２と演算装置２４を制御する制御機能を実現する。この第２実施形態では、細粒度制御部２３は、図３に示されるように、メモリ３５，３６と、分配部（制御信号出力手段あるいは制御信号出力部）３７と、データ更新部３８と、タイマ３９とを有している。
データ更新部３８は、管理部３０から制御情報が通知された場合に、その制御情報をメモリ３６に格納する機能を備える。さらに、データ更新部３８は、その制御情報に基づいて、タイマ３９に最大タイマ値（つまり、タイマリセットする値）を設定（セット）する機能をも備えている。さらにまた、データ更新部３８は、タイマ３９がタイマリセットしたことを検知した場合に、メモリ３６の制御情報を読み出し、当該制御情報をメモリ３５に上書き格納（更新）する機能をも備えている。
タイマ３９は、予め定められた時間間隔（例えば、１ｎｓ）毎にタイマ値をカウントアップ（又はカウントダウン）する機能を備えている。また、タイマ３９は、データ更新部３８により設定された最大タイマ値をカウントする度に、タイマ値をリセット（タイマリセット）する機能を備えている。さらに、タイマ３９は、タイマリセットする度に、そのことをデータ更新部３８に通知する機能を備えている。
分配部（制御論理分配部）３７は、タイマ３９のタイマ値およびメモリ３５の制御情報に基づいて、次のように動作する機能を備えている。つまり、分配部３７は、タイマ３９のタイマ値を監視する。また、分配部３７は、タイマ値が、メモリ３５の制御情報に含まれているタイマ値に一致したときには、そのタイマ値に関連付けられている設定情報をメモリ３５から読み出す。そして、分配部３７は、周波数回路２１と電源回路２２と演算装置２４のそれぞれに対して、該当する設定情報を含む各制御信号を出力する。分配部３７は、それら制御信号を同じタイミングで出力する。つまり、それら制御信号が分配部３７から出力するタイミングは合っている（同期している）。
具体的には、例えば、タイマ３９のタイマ値が「２５６」になったときには、分配部３７は、メモリ３５の制御情報（例えば図４参照）から、そのタイマ値「２５６」に関連付けられている周波数「１．０ＧＨｚ」、電源電圧値「１．０Ｖ」、キャッシュサイズ「５１２ＫＢ」、命令供給停止モード「ＹＥＳ」、強制スリープモード「ＮＯ」等の設定情報を読み出す。そして、分配部３７は、その周波数「１．０ＧＨｚ」の情報が含まれている制御信号と、その電源電圧値「１．０Ｖ」の情報が含まれている制御信号と、命令供給停止モード「ＹＥＳ」等の情報が含まれている制御信号とを、周波数回路２１と電源回路２２と演算装置２４のそれぞれに対して、同期して出力する。
分配部３７は、制御情報に含まれているタイマ値毎に、上記のように制御信号を出力する。このような制御信号を受けた周波数回路２１と電源回路２２と演算装置２４の動作によって、基準信号の周波数（動作周波数）と、電源電圧値と、演算装置２４の制御動作（電力に関わる動作を含む）とが、前記周期で変化する。
図５は、周波数回路２１が生成している基準信号の周波数（動作周波数）が変化している状態を表す波形例を示している。図５は、さらに、電源回路２２が生成している電源電圧値が変化している状態を表す波形例をも示している。なお、図５中の点線Ｓ１，Ｓ２は、それぞれ、アプリケーションから見た場合の見かけ上の動作周波数、電源電圧値（つまり、周期変化する動作周波数、電源電圧における重み付け平均値）を示している。
メモリ３５は、進行中の制御動作に対応する１周期分の制御情報を格納する現周期データメモリである。メモリ３６は、次の周期に実行予定の制御動作に対応する１周期分の制御情報を格納する次周期データメモリである。これらメモリ３５，３６は、例えば、キャッシュメモリ（揮発性メモリ）により構成される。
次に、情報処理装置２０における細粒制御部２３の分配部３７とデータ更新部３８の動作例を図６と図７を参照しながら説明する。
すなわち、図６は、分配部３７の動作例を示すフローチャートである。図７は、データ更新部３８の動作例を示すフローチャートである。なお、図６と図７の各フローチャートは、分配部３７とデータ更新部３８が実行するコンピュータプログラムの処理手順を表す。
まず、分配部３７の動作例を説明する。図６のステップＳ１０１において、分配部３７は、タイマ３９のタイマ値（現在のタイマ値）を取り込む。そして、分配部３７は、ステップＳ１０２において、そのタイマ値を、メモリ（現周期データメモリ）３５に格納されている制御情報のタイマ値に照合する。ステップＳ１０３において、分配部３７は、タイマ値に一致するタイマ値が制御情報に有るか否かを判断する。
分配部３７は、その判断の結果、制御情報に現在のタイマ値に対応するタイマ値が無いと判断した場合には、前記ステップＳ１０１以降の動作を繰り返す。
これに対して、分配部３７は、上記判断の結果、現在のタイマ値に一致するタイマ値がメモリ３５の制御情報に有ると判断した場合には、ステップＳ１０４の動作を行う。つまり、分配部３７は、そのタイマ値に関連付けられている設定情報をメモリ３５の制御情報から読み出す。そして、分配部３７は、周波数回路２１と電源回路２２と演算装置２４に向けて、読み出した設定情報が含まれている制御信号を、それぞれ、同期して出力する。その後、分配部３７は、前記ステップＳ１０１以降の動作を繰り返す。
次に、データ更新部３８の動作例を説明する。図７のステップＳ２０１において、データ更新部３８は、管理部３０（演算装置２４）から制御情報を受け取ると、ステップＳ２０２において、メモリ（次周期データメモリ）３６に制御情報が格納されているか否かを判断する。この判断により、データ更新部３８は、メモリ（次周期データメモリ）３６に制御情報が格納されていないことを検知した場合には、ステップＳ２０７において、管理部３０から受け取った制御情報をメモリ（次周期データメモリ）３６に格納する。その後、データ更新部３８は、ステップＳ２０１以降の動作を繰り返す。
前記ステップＳ２０２において、データ更新部３８は、メモリ（次周期データメモリ）３６に制御情報が格納されていることを検知した場合には、ステップＳ２０３の動作を行う。つまり、データ更新部３８は、管理部３０から受け取った制御情報（以下、説明を分かり易くするために次々周期の制御情報と記す）を保持した状態で、タイマ３９からタイマリセットを知らせる通知を受け取ったか否かを判断する。そして、タイマ３９がリセットされていない場合には、データ更新部３８は、タイマ３９がリセットされるまで待機する。
前記ステップＳ２０３において、データ更新部３８は、タイマ３９がリセットされたことを検知した場合には、ステップＳ２０４において、メモリ（次周期データメモリ）３６から制御情報（次周期の制御情報）を読み出す。そして、ステップＳ２０５において、データ更新部３８は、その読み出した次周期の制御情報に含まれている最大タイマ値をタイマ３９に設定する。かつ、データ更新部３８は、その読み出した次周期の制御情報を現周期の制御情報としてメモリ（現周期データメモリ）３５に上書き格納（更新）する。その後、ステップＳ２０６において、データ更新部３８は、管理部３０から受け取って保持していた次々周期の制御情報を次周期の制御情報としてメモリ（次周期データメモリ）３６に上書き格納（更新）する。そして、データ更新部３８は、ステップＳ２０１以降の動作を繰り返す。
この第２実施形態の情報処理装置２０は、第１実施形態と同様に、ミリ秒レベルよりも短い周期で、演算装置２４の動作周波数や電源電圧値を変更（周期変更）できるので、第１実施形態と同様の効果を得ることができる。すなわち、この第２実施形態の情報処理装置２０は、ミリ秒レベルで動作するアプリケーションから見た演算装置２４の見かけ上の動作周波数と電源電圧値を柔軟に制御できるという効果を得ることができる。これにより、この第２実施形態の演算装置２４は、アプリケーション毎に、当該アプリケーションに適切な動作周波数と電源電圧値で動作できる。このため、この第２実施形態の情報処理装置２０（演算装置２４）は、アプリケーション（情報処理装置２０）の性能を維持しつつ、消費電力を抑制できる。
また、この第２実施形態では、情報処理装置２０は、さらに、演算装置２４における消費電力に関わる動作（例えば、命令供給停止モードや強制スリープモード等の動作）をも周期変更する制御構成を有している。このため、この第２実施形態の情報処理装置２０は、そのような演算装置２４の制御を行わない場合に比べて、消費電力をより抑制できる。
さらに、この第２実施形態では、細粒度制御部２３は、タイマ３９を有している。このため、そのタイマ３９を利用することで、細粒度制御部２３は、周波数回路２１と電源回路２２と演算装置２４への制御信号を同期して（同時に）出力することができる。これにより、その制御信号に基づいて、周波数回路２１と電源回路２２と演算装置２４は、同期して動作できる。このため、この第２実施形態の情報処理装置２０は、アプリケーションから見た動作周波数や電源電圧値を精度良く目標値とすることができる。
さらに、この第２実施形態の情報処理装置２０は、アプリケーション毎の制御情報に基づいて演算装置２４の動作周波数と電源電圧値を制御する。このため、演算装置２４は、各アプリケーション毎に（アプリケーションソフトウェアの動作特性に応じて）適切な動作周波数と電源電圧値で動作できる。
さらに、この第２実施形態の情報処理装置２０は、細粒度制御部（制御部）２３において、進行中の制御動作に対応する制御情報（現周期の制御情報）だけでなく、次の周期に実行予定の制御動作に対応する制御情報（次周期の制御情報）をも保持する。これにより、次のような効果を得ることができる。
すなわち、ＣＰＵ（細粒度制御部２３）は、その性能により、タイマ３９に最大タイマ値を設定する動作と、外部から情報を受け取って当該情報を内部のメモリに格納（更新）する動作とを同時に行うことが難しい。このため、タイマ３９がリセットしたときに、細粒度制御部２３が次周期の制御情報を保持していない場合には、次周期の制御情報を保持していないことが原因で、不適切な状態遷移に陥る虞がある。これに対して、この第２実施形態では、細粒度制御部２３は、次周期の制御情報を保持しておく。これにより、細粒度制御部２３は、上記のような不適切な状態遷移に陥ることを回避できる。
なお、基準信号の周波数を、設定されている動作周波数に合わせる制御動作や、電源電圧値を設定電圧値に合わせる制御動作を実現するためのコンピュータプログラムは、既に提案されている動作周波数と電源電圧を管理するソフトウェアの一部を利用することができる。
この第２実施形態の情報処理装置２０は、パーソナルコンピュータを始め、例えば携帯電話機や携帯情報端末等の電子機器に組み込まれ、高性能かつ省電力な電子機器の提供に寄与することができる。
（その他の実施形態）
なお、本発明は第１と第２の実施形態に限定されることなく、様々な実施の形態を採り得る。例えば、第２実施形態では、細粒度制御部２３と、演算装置２４とは、別々のＣＰＵである。これに対して、図８に示されるように、同じＣＰＵ４１が、細粒度制御部２３と演算装置２４の機能を実現する構成としてもよい。
また、第２実施形態では、細粒度制御部２３はＣＰＵにより構成されている。これに代えて、細粒度制御部２３は、第２実施形態で述べた機能を有することができれば、ＣＰＵ以外の論理回路により構成してもよい。
さらに、第２実施形態の情報処理装置２０は、周波数回路２１と電源回路２２を有しているが、それら周波数回路２１と電源回路２２の一方又は両方は、情報処理装置２０に設けられていなくともよい。この場合には、その周波数回路２１と電源回路２２の一方又は両方は、情報処理装置２０が組み込まれる例えば電子機器に設けられる。
さらに、第２実施形態では、性能に関わる固定値として、動作周波数が設定されている。これに対し、性能に関わる固定値は、動作周波数以外であって、かつ、演算装置２４の動作に関わる固定値であってもよい。また、第２実施形態では、電力に関わる固定値として、電源電圧値が設定されている。これに対し、電力に関わる固定値は、電源電圧値以外であって演算装置２４の動作に関わる固定値であってもよい。
さらに、上記では、一例として、ＣＰＵが実行する機能をコンピュータプログラムとして説明している。しかしながら、第１や第２の実施形態の情報処理装置１，２０において、制御部４や細粒度制御部２３の機能部は、コンピュータプログラムとハードウェアの少なくとも何れかによって実現されてもよい。すなわち、細粒度制御部（制御手段）の一部又全部は、ハードウェアによって実現してもよい。
さらに、図４に示される制御情報に含まれる電源電圧値は、１．０Ｖと１．１Ｖである。これに対して、制御情報に含まれる電源電圧値（つまり、周期変化に利用される電源電圧値）の一つは、０Ｖであってもよい。この場合には、例えば、細粒度制御部２３は、電源電圧値を次のように周期変化するように制御する。つまり、細粒度制御部２３は、演算装置２４の動作可能な複数の設定された電源電圧値の中で高い方の電源電圧値から一気に電源電圧値を０とし、その後、その高い電源電圧値に戻すというように、電源電圧値を制御する。これにより、情報処理装置２０は、より一層、高い性能と省電力機能を備えることができる。
なお、そのような場合には、電源電圧の電圧変化量が大きいので、電源電圧の変化に要する時間が長くなる。このことに起因した問題が発生する虞がある場合には、電源電圧値を変更するタイミング（タイマ値）は、動作周波数を変更するタイミング（タイマ値）とは異なるように設定する。
以上、実施形態を参照して本願発明を説明しているが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
なお、この出願は、２０１０年１１月１６日に出願された日本出願特願２０１０−２５６０３８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０００９】
本発明は、アプリケーションソフトを利用する情報処理装置や電子機器等に有効である。
【符号の説明】
【００１０】
１，２０  情報処理装置
２１  周波数回路
２２  電源回路
４  制御部
５，２４  演算装置
８  電子機器
２３  細粒度制御部
３７  分配部
【図１Ａ】
2012067211.tif 000003
【図１Ｂ】
2012067211.tif 000004
【図１Ｃ】
2012067211.tif 000005
【図２Ａ】
2012067211.tif 000006
【図２Ｂ】
2012067211.tif 000007
【図３】
2012067211.tif 000008
【図４】
2012067211.tif 000009
【図５】
2012067211.tif 000010
【図６】
2012067211.tif 000011
【図７】
2012067211.tif 000012
【図８】
2012067211.tif 000013
【図９】
2012067211.tif 000014
【手続補正書】
【提出日】平成25年4月17日(2013.4.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置と、
前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号とを同期して出力する制御手段と
を有する情報処理装置。
【請求項２】
前記性能に関わる前記固定値は前記演算装置の動作周波数であり、前記電力に関わる前記固定値は前記演算装置の電源電圧値であり、
前記制御手段は、複数の前記動作周波数の中から選択された一部又は全部の前記動作周波数を前記周期で順次変更する制御信号と、複数の前記電源電圧の中から選択された一部又は全部の前記電源電圧を前記周期で順次変更する制御信号とを同期して出力する請求項１記載の情報処理装置。
【請求項３】
前記制御手段は、前記演算装置が実行するアプリケーションソフトウェアの動作特性に基づいて、前記性能に関わる前記固定値および前記電力に関わる前記固定値を選択すると共に、それら固定値を変更する周期を決定する請求項１又は請求項２記載の情報処理装置。
【請求項４】
前記制御手段は、さらに、消費電力に関わる前記演算装置の動作を制御する機能をも備えている請求項１又は請求項２又は請求項３記載の情報処理装置。
【請求項５】
前記周期は、前記演算装置が実行するアプリケーションソフトウェアの動作特性に基づいて定まる周期である請求項１乃至請求項４の何れか一つに記載の情報処理装置。
【請求項６】
前記制御手段は、進行中の周期の制御動作に対応する制御情報と、次の周期に実行予定の制御動作に対応する制御情報とを保持している請求項１乃至請求項５の何れか一つに記載の情報処理装置。
【請求項７】
前記制御手段は、前記周期よりも短い時間間隔毎にカウントするタイマと、当該タイマの値に基づいて前記制御信号を出力する制御信号出力手段とを有している請求項１乃至請求項６の何れか一つに記載の情報処理装置。
【請求項８】
請求項１乃至請求項７の何れか一つに記載の情報処理装置を備えている電子機器。
【請求項９】
情報処理装置に、
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置の前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号とを同期して出力する処理を実行させるコンピュータプログラム。
【請求項１０】
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置の前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で変更する制御信号を出力し、
それと共に、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号を同期して出力する性能と電力の制御方法。
【国際調査報告】
2012067211.tif 000015
2012067211.tif 000016
2012067211.tif 000017
2012067211.tif 000018