JPWO2012067211A1 - 情報処理装置、電子機器、コンピュータプログラム、および、性能と電力の制御方法 - Google Patents
情報処理装置、電子機器、コンピュータプログラム、および、性能と電力の制御方法 Download PDFInfo
- Publication number
- JPWO2012067211A1 JPWO2012067211A1 JP2012544313A JP2012544313A JPWO2012067211A1 JP WO2012067211 A1 JPWO2012067211 A1 JP WO2012067211A1 JP 2012544313 A JP2012544313 A JP 2012544313A JP 2012544313 A JP2012544313 A JP 2012544313A JP WO2012067211 A1 JPWO2012067211 A1 JP WO2012067211A1
- Authority
- JP
- Japan
- Prior art keywords
- fixed values
- power
- information processing
- performance
- processing apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
情報処理装置の性能と消費電力を適切に調整することを容易にする。情報処理装置1は、制御部(制御手段)4と、演算装置5とを有している。演算装置5に対しては、当該演算装置5の性能に関わる複数の固定値と、演算装置5の電力に関わる複数の固定値とが動作条件として定められている。制御部4は、前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた前記周期で順次変更する制御信号とを同期して出力する。
Description
本発明は、情報処理装置、電子機器、コンピュータプログラム記憶媒体、および、性能と電力の制御方法に関する。
図9は、情報処理装置の構成例を簡略化して示すブロック図である。この情報処理装置100は、演算装置101と、周波数回路102と、電源回路(電源電圧生成回路)103と、I/O(Input/Output)104と、記憶装置105とを有している。
記憶装置105は、各種データやコンピュータプログラムを格納する記憶媒体を備えている。周波数回路102は、基準信号を生成する回路構成を有している。電源回路103は、電源電圧を生成する回路構成を有している。I/O104は、情報処理装置100から情報を外部に出力する機能と、外部から情報を情報処理装置100に入力する機能とを有している。
演算装置101は、管理部107と、アプリケーション部108と、演算部109とを有している。管理部107は、記憶装置105から読み込んだコンピュータプログラムに従って周波数回路102を制御する機能(換言すれば、基準信号の周波数を制御する機能)を備えている。さらに、管理部107は、コンピュータプログラムに従って電源回路103を制御する機能(換言すれば、電源電圧値を制御する機能)も備えている。
アプリケーション部108は、記憶装置105から読み出したアプリケーションソフトウェア(コンピュータプログラム)に基づいて当該アプリケーションソフトウェアの機能(以下、アプリケーションとも記す)を実現する機能を備えている。演算部109は、アプリケーション部108からの指示に従って演算する機能を備えている。
上記のように、演算装置101は、記憶装置105から読み込んだコンピュータプログラムに従って動作することにより、各種機能を実現する装置である。この演算装置101は、例えば、CPU(central processing unit)である。
ところで、近年、情報処理装置は、半導体集積回路(CPU)が進歩していることにより、性能がますます向上している。その反面、情報処理装置は、消費電力が増大しているという問題を抱えるようになっている。その問題を抑制すべく、消費電力に大きく関与する半導体集積回路の動作周波数と電源電圧値を制御する手法が提案されている。この提案された手法では、設定できる半導体集積回路の動作周波数と電源電圧値とがそれぞれ複数点ある。そして、消費電力の抑制を考慮し、それら複数点の中から、アプリケーションに応じた動作周波数と電源電圧値とが選択される。
つまり、半導体集積回路の動作周波数を高めていくと、アプリケーションの性能(処理速度)を高めることができる。しかしながら、動作周波数を高くすると、半導体集積回路での消費電力が増加する。また、回路動作安定化のためには、半導体集積回路の動作周波数が高くなるにつれて電源電圧値も高くすることが好ましい。しかしながら、電源電圧値を高くすると、半導体集積回路での消費電力が増加する。これらのことを考慮して、上記提案された手法では、消費電力とアプリケーションの性能との兼ね合いが適当となるように、動作周波数と電源電圧値が、複数の設定値の中から選択されるようにしている。
特許文献1には、上記提案された手法を利用して電力を管理する装置の一例が示されている。
記憶装置105は、各種データやコンピュータプログラムを格納する記憶媒体を備えている。周波数回路102は、基準信号を生成する回路構成を有している。電源回路103は、電源電圧を生成する回路構成を有している。I/O104は、情報処理装置100から情報を外部に出力する機能と、外部から情報を情報処理装置100に入力する機能とを有している。
演算装置101は、管理部107と、アプリケーション部108と、演算部109とを有している。管理部107は、記憶装置105から読み込んだコンピュータプログラムに従って周波数回路102を制御する機能(換言すれば、基準信号の周波数を制御する機能)を備えている。さらに、管理部107は、コンピュータプログラムに従って電源回路103を制御する機能(換言すれば、電源電圧値を制御する機能)も備えている。
アプリケーション部108は、記憶装置105から読み出したアプリケーションソフトウェア(コンピュータプログラム)に基づいて当該アプリケーションソフトウェアの機能(以下、アプリケーションとも記す)を実現する機能を備えている。演算部109は、アプリケーション部108からの指示に従って演算する機能を備えている。
上記のように、演算装置101は、記憶装置105から読み込んだコンピュータプログラムに従って動作することにより、各種機能を実現する装置である。この演算装置101は、例えば、CPU(central processing unit)である。
ところで、近年、情報処理装置は、半導体集積回路(CPU)が進歩していることにより、性能がますます向上している。その反面、情報処理装置は、消費電力が増大しているという問題を抱えるようになっている。その問題を抑制すべく、消費電力に大きく関与する半導体集積回路の動作周波数と電源電圧値を制御する手法が提案されている。この提案された手法では、設定できる半導体集積回路の動作周波数と電源電圧値とがそれぞれ複数点ある。そして、消費電力の抑制を考慮し、それら複数点の中から、アプリケーションに応じた動作周波数と電源電圧値とが選択される。
つまり、半導体集積回路の動作周波数を高めていくと、アプリケーションの性能(処理速度)を高めることができる。しかしながら、動作周波数を高くすると、半導体集積回路での消費電力が増加する。また、回路動作安定化のためには、半導体集積回路の動作周波数が高くなるにつれて電源電圧値も高くすることが好ましい。しかしながら、電源電圧値を高くすると、半導体集積回路での消費電力が増加する。これらのことを考慮して、上記提案された手法では、消費電力とアプリケーションの性能との兼ね合いが適当となるように、動作周波数と電源電圧値が、複数の設定値の中から選択されるようにしている。
特許文献1には、上記提案された手法を利用して電力を管理する装置の一例が示されている。
しかしながら、アプリケーションが複雑になってきているために、上記提案された手法では、次のような問題が生じる場合がある。すなわち、アプリケーションが複雑化することによって、アプリケーションに適切な動作周波数と電源電圧値が多様化する。このため、前述したような不連続的に設定された複数の動作周波数と電源電圧だけでは、動作周波数と電源電圧値を、アプリケーションに適切な状態に調整できない場合(換言すれば、性能と消費電力を適切に調整できない場合)がある。
本発明は上記問題を解決するためになされたものである。すなわち、本発明の主な目的は、性能と電力(消費電力)を調整することが容易となる情報処理装置、電子機器、コンピュータプログラム記憶媒体、および、性能と電力の制御方法を提供することにある。
本発明は上記問題を解決するためになされたものである。すなわち、本発明の主な目的は、性能と電力(消費電力)を調整することが容易となる情報処理装置、電子機器、コンピュータプログラム記憶媒体、および、性能と電力の制御方法を提供することにある。
本発明の情報処理装置は、
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置と、
前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号とを同期して出力する制御手段と
を有する。
本発明の電子機器は、上記本発明の情報処理装置を備える。
本発明のコンピュータプログラム記憶媒体は、
情報処理装置に、
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置の前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号とを同期して出力する処理を行わせるコンピュータプログラムを記憶している。
本発明の性能と電力の制御方法は、
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置の前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で変更する制御信号を出力し、
それと共に、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号を同期して出力する。
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置と、
前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号とを同期して出力する制御手段と
を有する。
本発明の電子機器は、上記本発明の情報処理装置を備える。
本発明のコンピュータプログラム記憶媒体は、
情報処理装置に、
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置の前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号とを同期して出力する処理を行わせるコンピュータプログラムを記憶している。
本発明の性能と電力の制御方法は、
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置の前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で変更する制御信号を出力し、
それと共に、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号を同期して出力する。
本発明によれば、情報処理装置の性能と電力を調整することが容易となる。
図1Aは、本発明に係る第1実施形態の情報処理装置が持つ構成を簡略化して示すブロック図である。
図1Bは、第1実施形態における情報処理装置の構成をさらに説明するブロック図である。
図1Cは、第1実施形態の情報処理装置を備えた電子機器の構成を簡略化して示すブロック図である。
図2Aは、第1実施形態の効果を説明する際に利用する周波数変化例を表す図である。
図2Bは、第1実施形態の効果を説明する際に利用する電源電圧の波形図である。
図3は、本発明に係る第2実施形態の情報処理装置が持つ構成を簡略化して示すブロック図である。
図4は、制御情報の一例を示す図である。
図5は、第2実施形態における動作周波数と電源電圧との波形例を示す図である。
図6は、第2実施形態において制御信号を出力する動作に関わるフローチャートである。
図7は、第2実施形態におけるデータを更新する動作に関わるフローチャートである。
図8は、本発明に係るその他の実施形態を説明する図である。
図9は、情報処理装置の一つを簡略化して示すブロック図である。
図1Bは、第1実施形態における情報処理装置の構成をさらに説明するブロック図である。
図1Cは、第1実施形態の情報処理装置を備えた電子機器の構成を簡略化して示すブロック図である。
図2Aは、第1実施形態の効果を説明する際に利用する周波数変化例を表す図である。
図2Bは、第1実施形態の効果を説明する際に利用する電源電圧の波形図である。
図3は、本発明に係る第2実施形態の情報処理装置が持つ構成を簡略化して示すブロック図である。
図4は、制御情報の一例を示す図である。
図5は、第2実施形態における動作周波数と電源電圧との波形例を示す図である。
図6は、第2実施形態において制御信号を出力する動作に関わるフローチャートである。
図7は、第2実施形態におけるデータを更新する動作に関わるフローチャートである。
図8は、本発明に係るその他の実施形態を説明する図である。
図9は、情報処理装置の一つを簡略化して示すブロック図である。
以下に、本発明に係る実施形態を図面を参照して説明する。
(第1実施形態)
図1Aは、本発明に係る第1実施形態の情報処理装置が持つ構成を簡略化して示すブロック図である。この第1実施形態の情報処理装置1は、制御部(制御手段)4と、演算装置5とを有している。
演算装置5の動作条件として、当該演算装置5の性能に関わる複数の固定値(以下、性能関連値とも記す)、および、演算装置5の電力に関わる複数の固定値(以下、電力関連値とも記す)が予め定められている。演算装置5は、それら性能関連値と電力関連値に基づいた状態で動作する。
制御部(制御手段)4は、複数の性能関連値の中から選択された一部又は全部の性能関連値を予め定められた周期で順次変更する制御信号を出力する機能を備えている。さらに、制御部4は、複数の電力関連値の中から選択された一部又は全部の電力関連値を予め定められた周期で順次変更する制御信号を前記制御信号と同期して出力する機能を備えている。
例えば、図1Bに示されるように、情報処理装置1は、コンピュータプログラム記憶媒体としての記憶装置6を有する。当該記憶装置6は、コンピュータプログラム7を保持している。当該コンピュータプログラム7には、性能関連値と電力関連値をそれぞれ前記したように前記周期で変更する機能(周期変更機能)を制御部4に持たせるための処理手順が含まれている。
制御部4が記憶装置6のコンピュータプログラム7に従って動作することによって、制御部4の周期変更機能が実現される。
この第1実施形態の情報処理装置1は、次のような効果を得ることができる。この効果の説明では、説明を分かり易くするために、性能関連値は動作周波数とし、電力関連値は電源電圧値とする。例えば、演算装置5が動作可能な周波数(動作周波数、クロック周波数)として、互いに異なる複数(例えば4個)の周波数(性能関連値)Fa,Fb,Fc,Fd(図2A参照)が設定されているとする。
この第1実施形態では、制御部4の制御動作によって、演算装置5の動作周波数(クロック周波数)は、予め定められた周期で変化する。つまり、演算装置5の動作周波数においては、前記周波数Fa,Fb,Fc,Fdの中から選択された一部又は全部の周波数が前記周期で順次変化する。具体的には、例えば、図2Aでは、演算装置5の動作周波数は、期間K1においては、周波数Faから周波数Fdに切り換わり、再び設定周波数Faに戻るというサイクルを時間T1で繰り返す(周期変化する)。また、期間K2においては、演算装置5の動作周波数は、周波数Faから周波数Fcに切り換わり、再び周波数Faに戻るというサイクルを時間T2で繰り返す(周期変化する)。なお、時間(周期)T1,T2は、例えばミリ秒未満の時間である。また、これら時間(周期)T1,T2は、同じでもよいし、異なっていてもよい。
ここで、情報処理装置1が、上記のような周波数変化の周期T1,T2よりも大きな周期レベル(例えばミリ秒レベル)で動作するアプリケーション(アプリケーションソフトウェアに基づいた機能)を備えているとする。このアプリケーションから見ると、演算装置5の動作周波数は、図2Aに示す周波数Fvに見える。その周波数Fvは、実際に演算装置5が動作している複数の周波数(性能関連値)の平均周波数(周期T1,T2に占める時間割合で重み付けした平均値)である。このため、周波数Fvは、周波数(性能関連値)Fa,Fb,Fc,Fdとは限らない。
つまり、周波数Fvは、演算装置5が実際に動作する周波数と、その周波数で動作している時間が周期T1,T2において占める割合(時間割合)とを適宜に設定することにより、柔軟に変更することが可能である。
すなわち、演算装置5は、周波数(性能関連値)Fa,Fb,Fc,Fdで動作している。しかし、この第1実施形態の情報処理装置1は、アプリケーションから見た演算装置5の動作周波数(仮想的な動作周波数)Fvを、その周波数(性能関連値)Fa,Fb,Fc,Fdに規制されずに柔軟に制御できる。
上記のような周波数制御と同様に、情報処理装置1は、電源電圧値を柔軟に制御できる。すなわち、演算装置5は、設定されている互いに異なる複数の電源電圧値(電力関連値)Va,Vb,Vc,Vd(図2B参照)で動作する。ところが、この第1実施形態の情報処理装置1は、アプリケーションから見た演算装置5の電源電圧値Vv(仮想的な電源電圧値)を、電源電圧値(電力関連値)Va,Vb,Vc,Vdに制約されずに、柔軟に制御できる。この例では、電源電圧値Vvは、実際の電源電圧値(電力関連値)の平均電圧値(周期T1,T2に占める時間割合で重み付けした平均値)である。
上記のように、この第1実施形態の情報処理装置1は、アプリケーションから見た演算装置5の見かけ上の動作周波数と電源電圧値(仮想的な動作周波数と電源電圧値)を、設定されている周波数(性能関連値)と電源電圧値(電力関連値)に規制(制約)されずに、柔軟に制御(微調整)できる。
動作周波数は装置の性能に大きく影響する。電源電圧値は消費電力に影響する。このため、上記のように、動作周波数および電源電圧値を柔軟に調整することが容易となることによって、この第1実施形態の情報処理装置1は、その性能と消費電力の調整が容易となる。換言すれば、この第1実施形態の情報処理装置1は、動作周波数と電源電圧値を、アプリケーションに適切な状態に容易に調整できる。
この情報処理装置1は、図1Cに示されるように、様々な電子機器8に組み込まれ、当該電子機器8の性能向上および省電力化に寄与できる。電子機器8の一例として、例えばパーソナルコンピュータ(パソコン)や、携帯通信装置(携帯電話や携帯情報端末等)がある。
なお、効果の説明では、性能に関わる固定値(性能関連値)を動作周波数とし、電力に関わる固定値(電力関連値)を電源電圧値としている。しかし、実際には、動作周波数は、性能だけではなく電力(消費電力)にも関与している。同様に、電源電圧は、電力(消費電力)だけでなく性能にも関与している。
(第2実施形態)
以下に、本発明に係る第2実施形態を説明する。
図3は、第2実施形態における情報処理装置の構成を簡略化して示すブロック図である。この第2実施形態の情報処理装置20は、周波数回路21と、電源回路22と、細粒度制御部(制御手段)23と、演算装置24と、I/O25と、記憶装置26とを有している。
周波数回路21は、基準信号を生成する回路構成を有している。電源回路22は、演算装置24が使用する電源電圧を生成する回路構成を有している。I/O25は、情報処理装置20に情報を入力する機能と、情報を出力する機能とを持つ構成部である。
記憶装置26は、データやコンピュータプログラムが格納される記憶媒体(例えば、ハードディスク(磁気記憶媒体)等の不揮発性の記憶媒体)を有している。なお、上記コンピュータプログラムは、例えば、CD−ROM(Compact Disc Read Only Memory)やUSB(Universal Serial Bus)メモリ等の可搬型記憶媒体に記憶され、当該可搬型記憶媒体から記憶装置26に格納される。あるいは、上記コンピュータプログラムは、情報通信網を通って、記憶装置26に格納(ダウンロード)される。
演算装置24は、CPU(中央演算装置)により構成される。この演算装置24には、複数の互いに異なる動作周波数が、動作可能な周波数(クロック周波数)として設定されている。当該動作周波数は、性能に関わる固定値(性能関連値)である。
また、演算装置24には、複数の互いに異なる電源電圧値が、動作可能な設定電圧値として、設定されている。設定電圧値は、電力に関わる固定値(電力関連値)である。
演算装置24は、記憶装置26に格納されているコンピュータプログラムを読み出し、当該コンピュータプログラムに従って動作することによって、次のような機能を実現する。すなわち、演算装置24は、管理部30と、アプリケーション部31と、演算部32とを有している。
アプリケーション部31は、記憶装置26に格納されているアプリケーションソフトウェアに基づいた処理(アプリケーション)を実行する機能を備えている。演算部32は、アプリケーション部31からの指令に基づいて演算等の処理を実行する機能を備えている。
管理部30は、次に述べる制御情報を予め与えられる時間間隔毎(周期的)に細粒度制御部23に向けて送信する機能を備えている。
その制御情報は、細粒度制御部23が行う周期制御に使用する各種の設定情報である。ところで、アプリケーションには多くの種類がある。各アプリケーションには、それぞれ、性能を良好に発揮できる適切な演算装置24の動作周波数(クロック周波数)がある。前記制御情報は、各アプリケーション毎に、上記のような各アプリケーションに適切な動作周波数や、省電力化を考慮して、定められている(設定されている)。
具体的には、例えば、図4に示されるように、制御情報は、周期(最大タイマ値(一例として、512))、動作周波数(性能関連値)、設定電圧値としての電源電圧値(電力関連値)、演算装置(CPU)24の命令供給停止モードや強制スリープモード等の動作モード(消費電力に関わる動作)の設定情報などを含む1周期分の情報である。換言すれば、その制御情報は、周波数回路21と電源回路22と細粒度制御部23(タイマ39)と演算装置24の各動作に使用する設定情報である。この制御情報は、前記の如く、アプリケーション毎に、当該アプリケーションの性能と、演算装置(CPU)24の消費電力とを考慮して設定され、記憶装置26に格納される。
なお、図4に示す制御情報は一例であって、制御情報は、図4に示す内容に限定されない。また、上記のように、制御情報は、アプリケーション毎に適宜設定されることから、例えば周期も、アプリケーションに応じて適宜設定される。さらに、制御情報に含まれる動作周波数、電源電圧値(設定電圧)は、演算装置24が動作可能な予め定められた値である。さらに、演算装置24が実行する動作モードの制御手法には、様々な手法があり、ここでは、それら手法のうちの何れを採用してもよいので、その説明は省略する。
管理部30は、さらに、アプリケーション部31が実行しているアプリケーションが切り替わる場合に、その次のアプリケーションに応じた制御情報を記憶装置26から読み出して、細粒度制御部23に通知する機能をも備えている。
細粒度制御部23は、CPU(中央演算装置)により構成される。細粒度制御部23は、記憶装置26から読み込んだコンピュータプログラムに従って動作することにより、周波数回路21と電源回路22と演算装置24を制御する制御機能を実現する。この第2実施形態では、細粒度制御部23は、図3に示されるように、メモリ35,36と、分配部(制御信号出力手段あるいは制御信号出力部)37と、データ更新部38と、タイマ39とを有している。
データ更新部38は、管理部30から制御情報が通知された場合に、その制御情報をメモリ36に格納する機能を備える。さらに、データ更新部38は、その制御情報に基づいて、タイマ39に最大タイマ値(つまり、タイマリセットする値)を設定(セット)する機能をも備えている。さらにまた、データ更新部38は、タイマ39がタイマリセットしたことを検知した場合に、メモリ36の制御情報を読み出し、当該制御情報をメモリ35に上書き格納(更新)する機能をも備えている。
タイマ39は、予め定められた時間間隔(例えば、1ns)毎にタイマ値をカウントアップ(又はカウントダウン)する機能を備えている。また、タイマ39は、データ更新部38により設定された最大タイマ値をカウントする度に、タイマ値をリセット(タイマリセット)する機能を備えている。さらに、タイマ39は、タイマリセットする度に、そのことをデータ更新部38に通知する機能を備えている。
分配部(制御論理分配部)37は、タイマ39のタイマ値およびメモリ35の制御情報に基づいて、次のように動作する機能を備えている。つまり、分配部37は、タイマ39のタイマ値を監視する。また、分配部37は、タイマ値が、メモリ35の制御情報に含まれているタイマ値に一致したときには、そのタイマ値に関連付けられている設定情報をメモリ35から読み出す。そして、分配部37は、周波数回路21と電源回路22と演算装置24のそれぞれに対して、該当する設定情報を含む各制御信号を出力する。分配部37は、それら制御信号を同じタイミングで出力する。つまり、それら制御信号が分配部37から出力するタイミングは合っている(同期している)。
具体的には、例えば、タイマ39のタイマ値が「256」になったときには、分配部37は、メモリ35の制御情報(例えば図4参照)から、そのタイマ値「256」に関連付けられている周波数「1.0GHz」、電源電圧値「1.0V」、キャッシュサイズ「512KB」、命令供給停止モード「YES」、強制スリープモード「NO」等の設定情報を読み出す。そして、分配部37は、その周波数「1.0GHz」の情報が含まれている制御信号と、その電源電圧値「1.0V」の情報が含まれている制御信号と、命令供給停止モード「YES」等の情報が含まれている制御信号とを、周波数回路21と電源回路22と演算装置24のそれぞれに対して、同期して出力する。
分配部37は、制御情報に含まれているタイマ値毎に、上記のように制御信号を出力する。このような制御信号を受けた周波数回路21と電源回路22と演算装置24の動作によって、基準信号の周波数(動作周波数)と、電源電圧値と、演算装置24の制御動作(電力に関わる動作を含む)とが、前記周期で変化する。
図5は、周波数回路21が生成している基準信号の周波数(動作周波数)が変化している状態を表す波形例を示している。図5は、さらに、電源回路22が生成している電源電圧値が変化している状態を表す波形例をも示している。なお、図5中の点線S1,S2は、それぞれ、アプリケーションから見た場合の見かけ上の動作周波数、電源電圧値(つまり、周期変化する動作周波数、電源電圧における重み付け平均値)を示している。
メモリ35は、進行中の制御動作に対応する1周期分の制御情報を格納する現周期データメモリである。メモリ36は、次の周期に実行予定の制御動作に対応する1周期分の制御情報を格納する次周期データメモリである。これらメモリ35,36は、例えば、キャッシュメモリ(揮発性メモリ)により構成される。
次に、情報処理装置20における細粒制御部23の分配部37とデータ更新部38の動作例を図6と図7を参照しながら説明する。
すなわち、図6は、分配部37の動作例を示すフローチャートである。図7は、データ更新部38の動作例を示すフローチャートである。なお、図6と図7の各フローチャートは、分配部37とデータ更新部38が実行するコンピュータプログラムの処理手順を表す。
まず、分配部37の動作例を説明する。図6のステップS101において、分配部37は、タイマ39のタイマ値(現在のタイマ値)を取り込む。そして、分配部37は、ステップS102において、そのタイマ値を、メモリ(現周期データメモリ)35に格納されている制御情報のタイマ値に照合する。ステップS103において、分配部37は、タイマ値に一致するタイマ値が制御情報に有るか否かを判断する。
分配部37は、その判断の結果、制御情報に現在のタイマ値に対応するタイマ値が無いと判断した場合には、前記ステップS101以降の動作を繰り返す。
これに対して、分配部37は、上記判断の結果、現在のタイマ値に一致するタイマ値がメモリ35の制御情報に有ると判断した場合には、ステップS104の動作を行う。つまり、分配部37は、そのタイマ値に関連付けられている設定情報をメモリ35の制御情報から読み出す。そして、分配部37は、周波数回路21と電源回路22と演算装置24に向けて、読み出した設定情報が含まれている制御信号を、それぞれ、同期して出力する。その後、分配部37は、前記ステップS101以降の動作を繰り返す。
次に、データ更新部38の動作例を説明する。図7のステップS201において、データ更新部38は、管理部30(演算装置24)から制御情報を受け取ると、ステップS202において、メモリ(次周期データメモリ)36に制御情報が格納されているか否かを判断する。この判断により、データ更新部38は、メモリ(次周期データメモリ)36に制御情報が格納されていないことを検知した場合には、ステップS207において、管理部30から受け取った制御情報をメモリ(次周期データメモリ)36に格納する。その後、データ更新部38は、ステップS201以降の動作を繰り返す。
前記ステップS202において、データ更新部38は、メモリ(次周期データメモリ)36に制御情報が格納されていることを検知した場合には、ステップS203の動作を行う。つまり、データ更新部38は、管理部30から受け取った制御情報(以下、説明を分かり易くするために次々周期の制御情報と記す)を保持した状態で、タイマ39からタイマリセットを知らせる通知を受け取ったか否かを判断する。そして、タイマ39がリセットされていない場合には、データ更新部38は、タイマ39がリセットされるまで待機する。
前記ステップS203において、データ更新部38は、タイマ39がリセットされたことを検知した場合には、ステップS204において、メモリ(次周期データメモリ)36から制御情報(次周期の制御情報)を読み出す。そして、ステップS205において、データ更新部38は、その読み出した次周期の制御情報に含まれている最大タイマ値をタイマ39に設定する。かつ、データ更新部38は、その読み出した次周期の制御情報を現周期の制御情報としてメモリ(現周期データメモリ)35に上書き格納(更新)する。その後、ステップS206において、データ更新部38は、管理部30から受け取って保持していた次々周期の制御情報を次周期の制御情報としてメモリ(次周期データメモリ)36に上書き格納(更新)する。そして、データ更新部38は、ステップS201以降の動作を繰り返す。
この第2実施形態の情報処理装置20は、第1実施形態と同様に、ミリ秒レベルよりも短い周期で、演算装置24の動作周波数や電源電圧値を変更(周期変更)できるので、第1実施形態と同様の効果を得ることができる。すなわち、この第2実施形態の情報処理装置20は、ミリ秒レベルで動作するアプリケーションから見た演算装置24の見かけ上の動作周波数と電源電圧値を柔軟に制御できるという効果を得ることができる。これにより、この第2実施形態の演算装置24は、アプリケーション毎に、当該アプリケーションに適切な動作周波数と電源電圧値で動作できる。このため、この第2実施形態の情報処理装置20(演算装置24)は、アプリケーション(情報処理装置20)の性能を維持しつつ、消費電力を抑制できる。
また、この第2実施形態では、情報処理装置20は、さらに、演算装置24における消費電力に関わる動作(例えば、命令供給停止モードや強制スリープモード等の動作)をも周期変更する制御構成を有している。このため、この第2実施形態の情報処理装置20は、そのような演算装置24の制御を行わない場合に比べて、消費電力をより抑制できる。
さらに、この第2実施形態では、細粒度制御部23は、タイマ39を有している。このため、そのタイマ39を利用することで、細粒度制御部23は、周波数回路21と電源回路22と演算装置24への制御信号を同期して(同時に)出力することができる。これにより、その制御信号に基づいて、周波数回路21と電源回路22と演算装置24は、同期して動作できる。このため、この第2実施形態の情報処理装置20は、アプリケーションから見た動作周波数や電源電圧値を精度良く目標値とすることができる。
さらに、この第2実施形態の情報処理装置20は、アプリケーション毎の制御情報に基づいて演算装置24の動作周波数と電源電圧値を制御する。このため、演算装置24は、各アプリケーション毎に(アプリケーションソフトウェアの動作特性に応じて)適切な動作周波数と電源電圧値で動作できる。
さらに、この第2実施形態の情報処理装置20は、細粒度制御部(制御部)23において、進行中の制御動作に対応する制御情報(現周期の制御情報)だけでなく、次の周期に実行予定の制御動作に対応する制御情報(次周期の制御情報)をも保持する。これにより、次のような効果を得ることができる。
すなわち、CPU(細粒度制御部23)は、その性能により、タイマ39に最大タイマ値を設定する動作と、外部から情報を受け取って当該情報を内部のメモリに格納(更新)する動作とを同時に行うことが難しい。このため、タイマ39がリセットしたときに、細粒度制御部23が次周期の制御情報を保持していない場合には、次周期の制御情報を保持していないことが原因で、不適切な状態遷移に陥る虞がある。これに対して、この第2実施形態では、細粒度制御部23は、次周期の制御情報を保持しておく。これにより、細粒度制御部23は、上記のような不適切な状態遷移に陥ることを回避できる。
なお、基準信号の周波数を、設定されている動作周波数に合わせる制御動作や、電源電圧値を設定電圧値に合わせる制御動作を実現するためのコンピュータプログラムは、既に提案されている動作周波数と電源電圧を管理するソフトウェアの一部を利用することができる。
この第2実施形態の情報処理装置20は、パーソナルコンピュータを始め、例えば携帯電話機や携帯情報端末等の電子機器に組み込まれ、高性能かつ省電力な電子機器の提供に寄与することができる。
(その他の実施形態)
なお、本発明は第1と第2の実施形態に限定されることなく、様々な実施の形態を採り得る。例えば、第2実施形態では、細粒度制御部23と、演算装置24とは、別々のCPUである。これに対して、図8に示されるように、同じCPU41が、細粒度制御部23と演算装置24の機能を実現する構成としてもよい。
また、第2実施形態では、細粒度制御部23はCPUにより構成されている。これに代えて、細粒度制御部23は、第2実施形態で述べた機能を有することができれば、CPU以外の論理回路により構成してもよい。
さらに、第2実施形態の情報処理装置20は、周波数回路21と電源回路22を有しているが、それら周波数回路21と電源回路22の一方又は両方は、情報処理装置20に設けられていなくともよい。この場合には、その周波数回路21と電源回路22の一方又は両方は、情報処理装置20が組み込まれる例えば電子機器に設けられる。
さらに、第2実施形態では、性能に関わる固定値として、動作周波数が設定されている。これに対し、性能に関わる固定値は、動作周波数以外であって、かつ、演算装置24の動作に関わる固定値であってもよい。また、第2実施形態では、電力に関わる固定値として、電源電圧値が設定されている。これに対し、電力に関わる固定値は、電源電圧値以外であって演算装置24の動作に関わる固定値であってもよい。
さらに、上記では、一例として、CPUが実行する機能をコンピュータプログラムとして説明している。しかしながら、第1や第2の実施形態の情報処理装置1,20において、制御部4や細粒度制御部23の機能部は、コンピュータプログラムとハードウェアの少なくとも何れかによって実現されてもよい。すなわち、細粒度制御部(制御手段)の一部又全部は、ハードウェアによって実現してもよい。
さらに、図4に示される制御情報に含まれる電源電圧値は、1.0Vと1.1Vである。これに対して、制御情報に含まれる電源電圧値(つまり、周期変化に利用される電源電圧値)の一つは、0Vであってもよい。この場合には、例えば、細粒度制御部23は、電源電圧値を次のように周期変化するように制御する。つまり、細粒度制御部23は、演算装置24の動作可能な複数の設定された電源電圧値の中で高い方の電源電圧値から一気に電源電圧値を0とし、その後、その高い電源電圧値に戻すというように、電源電圧値を制御する。これにより、情報処理装置20は、より一層、高い性能と省電力機能を備えることができる。
なお、そのような場合には、電源電圧の電圧変化量が大きいので、電源電圧の変化に要する時間が長くなる。このことに起因した問題が発生する虞がある場合には、電源電圧値を変更するタイミング(タイマ値)は、動作周波数を変更するタイミング(タイマ値)とは異なるように設定する。
以上、実施形態を参照して本願発明を説明しているが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
なお、この出願は、2010年11月16日に出願された日本出願特願2010−256038を基礎とする優先権を主張し、その開示の全てをここに取り込む。
(第1実施形態)
図1Aは、本発明に係る第1実施形態の情報処理装置が持つ構成を簡略化して示すブロック図である。この第1実施形態の情報処理装置1は、制御部(制御手段)4と、演算装置5とを有している。
演算装置5の動作条件として、当該演算装置5の性能に関わる複数の固定値(以下、性能関連値とも記す)、および、演算装置5の電力に関わる複数の固定値(以下、電力関連値とも記す)が予め定められている。演算装置5は、それら性能関連値と電力関連値に基づいた状態で動作する。
制御部(制御手段)4は、複数の性能関連値の中から選択された一部又は全部の性能関連値を予め定められた周期で順次変更する制御信号を出力する機能を備えている。さらに、制御部4は、複数の電力関連値の中から選択された一部又は全部の電力関連値を予め定められた周期で順次変更する制御信号を前記制御信号と同期して出力する機能を備えている。
例えば、図1Bに示されるように、情報処理装置1は、コンピュータプログラム記憶媒体としての記憶装置6を有する。当該記憶装置6は、コンピュータプログラム7を保持している。当該コンピュータプログラム7には、性能関連値と電力関連値をそれぞれ前記したように前記周期で変更する機能(周期変更機能)を制御部4に持たせるための処理手順が含まれている。
制御部4が記憶装置6のコンピュータプログラム7に従って動作することによって、制御部4の周期変更機能が実現される。
この第1実施形態の情報処理装置1は、次のような効果を得ることができる。この効果の説明では、説明を分かり易くするために、性能関連値は動作周波数とし、電力関連値は電源電圧値とする。例えば、演算装置5が動作可能な周波数(動作周波数、クロック周波数)として、互いに異なる複数(例えば4個)の周波数(性能関連値)Fa,Fb,Fc,Fd(図2A参照)が設定されているとする。
この第1実施形態では、制御部4の制御動作によって、演算装置5の動作周波数(クロック周波数)は、予め定められた周期で変化する。つまり、演算装置5の動作周波数においては、前記周波数Fa,Fb,Fc,Fdの中から選択された一部又は全部の周波数が前記周期で順次変化する。具体的には、例えば、図2Aでは、演算装置5の動作周波数は、期間K1においては、周波数Faから周波数Fdに切り換わり、再び設定周波数Faに戻るというサイクルを時間T1で繰り返す(周期変化する)。また、期間K2においては、演算装置5の動作周波数は、周波数Faから周波数Fcに切り換わり、再び周波数Faに戻るというサイクルを時間T2で繰り返す(周期変化する)。なお、時間(周期)T1,T2は、例えばミリ秒未満の時間である。また、これら時間(周期)T1,T2は、同じでもよいし、異なっていてもよい。
ここで、情報処理装置1が、上記のような周波数変化の周期T1,T2よりも大きな周期レベル(例えばミリ秒レベル)で動作するアプリケーション(アプリケーションソフトウェアに基づいた機能)を備えているとする。このアプリケーションから見ると、演算装置5の動作周波数は、図2Aに示す周波数Fvに見える。その周波数Fvは、実際に演算装置5が動作している複数の周波数(性能関連値)の平均周波数(周期T1,T2に占める時間割合で重み付けした平均値)である。このため、周波数Fvは、周波数(性能関連値)Fa,Fb,Fc,Fdとは限らない。
つまり、周波数Fvは、演算装置5が実際に動作する周波数と、その周波数で動作している時間が周期T1,T2において占める割合(時間割合)とを適宜に設定することにより、柔軟に変更することが可能である。
すなわち、演算装置5は、周波数(性能関連値)Fa,Fb,Fc,Fdで動作している。しかし、この第1実施形態の情報処理装置1は、アプリケーションから見た演算装置5の動作周波数(仮想的な動作周波数)Fvを、その周波数(性能関連値)Fa,Fb,Fc,Fdに規制されずに柔軟に制御できる。
上記のような周波数制御と同様に、情報処理装置1は、電源電圧値を柔軟に制御できる。すなわち、演算装置5は、設定されている互いに異なる複数の電源電圧値(電力関連値)Va,Vb,Vc,Vd(図2B参照)で動作する。ところが、この第1実施形態の情報処理装置1は、アプリケーションから見た演算装置5の電源電圧値Vv(仮想的な電源電圧値)を、電源電圧値(電力関連値)Va,Vb,Vc,Vdに制約されずに、柔軟に制御できる。この例では、電源電圧値Vvは、実際の電源電圧値(電力関連値)の平均電圧値(周期T1,T2に占める時間割合で重み付けした平均値)である。
上記のように、この第1実施形態の情報処理装置1は、アプリケーションから見た演算装置5の見かけ上の動作周波数と電源電圧値(仮想的な動作周波数と電源電圧値)を、設定されている周波数(性能関連値)と電源電圧値(電力関連値)に規制(制約)されずに、柔軟に制御(微調整)できる。
動作周波数は装置の性能に大きく影響する。電源電圧値は消費電力に影響する。このため、上記のように、動作周波数および電源電圧値を柔軟に調整することが容易となることによって、この第1実施形態の情報処理装置1は、その性能と消費電力の調整が容易となる。換言すれば、この第1実施形態の情報処理装置1は、動作周波数と電源電圧値を、アプリケーションに適切な状態に容易に調整できる。
この情報処理装置1は、図1Cに示されるように、様々な電子機器8に組み込まれ、当該電子機器8の性能向上および省電力化に寄与できる。電子機器8の一例として、例えばパーソナルコンピュータ(パソコン)や、携帯通信装置(携帯電話や携帯情報端末等)がある。
なお、効果の説明では、性能に関わる固定値(性能関連値)を動作周波数とし、電力に関わる固定値(電力関連値)を電源電圧値としている。しかし、実際には、動作周波数は、性能だけではなく電力(消費電力)にも関与している。同様に、電源電圧は、電力(消費電力)だけでなく性能にも関与している。
(第2実施形態)
以下に、本発明に係る第2実施形態を説明する。
図3は、第2実施形態における情報処理装置の構成を簡略化して示すブロック図である。この第2実施形態の情報処理装置20は、周波数回路21と、電源回路22と、細粒度制御部(制御手段)23と、演算装置24と、I/O25と、記憶装置26とを有している。
周波数回路21は、基準信号を生成する回路構成を有している。電源回路22は、演算装置24が使用する電源電圧を生成する回路構成を有している。I/O25は、情報処理装置20に情報を入力する機能と、情報を出力する機能とを持つ構成部である。
記憶装置26は、データやコンピュータプログラムが格納される記憶媒体(例えば、ハードディスク(磁気記憶媒体)等の不揮発性の記憶媒体)を有している。なお、上記コンピュータプログラムは、例えば、CD−ROM(Compact Disc Read Only Memory)やUSB(Universal Serial Bus)メモリ等の可搬型記憶媒体に記憶され、当該可搬型記憶媒体から記憶装置26に格納される。あるいは、上記コンピュータプログラムは、情報通信網を通って、記憶装置26に格納(ダウンロード)される。
演算装置24は、CPU(中央演算装置)により構成される。この演算装置24には、複数の互いに異なる動作周波数が、動作可能な周波数(クロック周波数)として設定されている。当該動作周波数は、性能に関わる固定値(性能関連値)である。
また、演算装置24には、複数の互いに異なる電源電圧値が、動作可能な設定電圧値として、設定されている。設定電圧値は、電力に関わる固定値(電力関連値)である。
演算装置24は、記憶装置26に格納されているコンピュータプログラムを読み出し、当該コンピュータプログラムに従って動作することによって、次のような機能を実現する。すなわち、演算装置24は、管理部30と、アプリケーション部31と、演算部32とを有している。
アプリケーション部31は、記憶装置26に格納されているアプリケーションソフトウェアに基づいた処理(アプリケーション)を実行する機能を備えている。演算部32は、アプリケーション部31からの指令に基づいて演算等の処理を実行する機能を備えている。
管理部30は、次に述べる制御情報を予め与えられる時間間隔毎(周期的)に細粒度制御部23に向けて送信する機能を備えている。
その制御情報は、細粒度制御部23が行う周期制御に使用する各種の設定情報である。ところで、アプリケーションには多くの種類がある。各アプリケーションには、それぞれ、性能を良好に発揮できる適切な演算装置24の動作周波数(クロック周波数)がある。前記制御情報は、各アプリケーション毎に、上記のような各アプリケーションに適切な動作周波数や、省電力化を考慮して、定められている(設定されている)。
具体的には、例えば、図4に示されるように、制御情報は、周期(最大タイマ値(一例として、512))、動作周波数(性能関連値)、設定電圧値としての電源電圧値(電力関連値)、演算装置(CPU)24の命令供給停止モードや強制スリープモード等の動作モード(消費電力に関わる動作)の設定情報などを含む1周期分の情報である。換言すれば、その制御情報は、周波数回路21と電源回路22と細粒度制御部23(タイマ39)と演算装置24の各動作に使用する設定情報である。この制御情報は、前記の如く、アプリケーション毎に、当該アプリケーションの性能と、演算装置(CPU)24の消費電力とを考慮して設定され、記憶装置26に格納される。
なお、図4に示す制御情報は一例であって、制御情報は、図4に示す内容に限定されない。また、上記のように、制御情報は、アプリケーション毎に適宜設定されることから、例えば周期も、アプリケーションに応じて適宜設定される。さらに、制御情報に含まれる動作周波数、電源電圧値(設定電圧)は、演算装置24が動作可能な予め定められた値である。さらに、演算装置24が実行する動作モードの制御手法には、様々な手法があり、ここでは、それら手法のうちの何れを採用してもよいので、その説明は省略する。
管理部30は、さらに、アプリケーション部31が実行しているアプリケーションが切り替わる場合に、その次のアプリケーションに応じた制御情報を記憶装置26から読み出して、細粒度制御部23に通知する機能をも備えている。
細粒度制御部23は、CPU(中央演算装置)により構成される。細粒度制御部23は、記憶装置26から読み込んだコンピュータプログラムに従って動作することにより、周波数回路21と電源回路22と演算装置24を制御する制御機能を実現する。この第2実施形態では、細粒度制御部23は、図3に示されるように、メモリ35,36と、分配部(制御信号出力手段あるいは制御信号出力部)37と、データ更新部38と、タイマ39とを有している。
データ更新部38は、管理部30から制御情報が通知された場合に、その制御情報をメモリ36に格納する機能を備える。さらに、データ更新部38は、その制御情報に基づいて、タイマ39に最大タイマ値(つまり、タイマリセットする値)を設定(セット)する機能をも備えている。さらにまた、データ更新部38は、タイマ39がタイマリセットしたことを検知した場合に、メモリ36の制御情報を読み出し、当該制御情報をメモリ35に上書き格納(更新)する機能をも備えている。
タイマ39は、予め定められた時間間隔(例えば、1ns)毎にタイマ値をカウントアップ(又はカウントダウン)する機能を備えている。また、タイマ39は、データ更新部38により設定された最大タイマ値をカウントする度に、タイマ値をリセット(タイマリセット)する機能を備えている。さらに、タイマ39は、タイマリセットする度に、そのことをデータ更新部38に通知する機能を備えている。
分配部(制御論理分配部)37は、タイマ39のタイマ値およびメモリ35の制御情報に基づいて、次のように動作する機能を備えている。つまり、分配部37は、タイマ39のタイマ値を監視する。また、分配部37は、タイマ値が、メモリ35の制御情報に含まれているタイマ値に一致したときには、そのタイマ値に関連付けられている設定情報をメモリ35から読み出す。そして、分配部37は、周波数回路21と電源回路22と演算装置24のそれぞれに対して、該当する設定情報を含む各制御信号を出力する。分配部37は、それら制御信号を同じタイミングで出力する。つまり、それら制御信号が分配部37から出力するタイミングは合っている(同期している)。
具体的には、例えば、タイマ39のタイマ値が「256」になったときには、分配部37は、メモリ35の制御情報(例えば図4参照)から、そのタイマ値「256」に関連付けられている周波数「1.0GHz」、電源電圧値「1.0V」、キャッシュサイズ「512KB」、命令供給停止モード「YES」、強制スリープモード「NO」等の設定情報を読み出す。そして、分配部37は、その周波数「1.0GHz」の情報が含まれている制御信号と、その電源電圧値「1.0V」の情報が含まれている制御信号と、命令供給停止モード「YES」等の情報が含まれている制御信号とを、周波数回路21と電源回路22と演算装置24のそれぞれに対して、同期して出力する。
分配部37は、制御情報に含まれているタイマ値毎に、上記のように制御信号を出力する。このような制御信号を受けた周波数回路21と電源回路22と演算装置24の動作によって、基準信号の周波数(動作周波数)と、電源電圧値と、演算装置24の制御動作(電力に関わる動作を含む)とが、前記周期で変化する。
図5は、周波数回路21が生成している基準信号の周波数(動作周波数)が変化している状態を表す波形例を示している。図5は、さらに、電源回路22が生成している電源電圧値が変化している状態を表す波形例をも示している。なお、図5中の点線S1,S2は、それぞれ、アプリケーションから見た場合の見かけ上の動作周波数、電源電圧値(つまり、周期変化する動作周波数、電源電圧における重み付け平均値)を示している。
メモリ35は、進行中の制御動作に対応する1周期分の制御情報を格納する現周期データメモリである。メモリ36は、次の周期に実行予定の制御動作に対応する1周期分の制御情報を格納する次周期データメモリである。これらメモリ35,36は、例えば、キャッシュメモリ(揮発性メモリ)により構成される。
次に、情報処理装置20における細粒制御部23の分配部37とデータ更新部38の動作例を図6と図7を参照しながら説明する。
すなわち、図6は、分配部37の動作例を示すフローチャートである。図7は、データ更新部38の動作例を示すフローチャートである。なお、図6と図7の各フローチャートは、分配部37とデータ更新部38が実行するコンピュータプログラムの処理手順を表す。
まず、分配部37の動作例を説明する。図6のステップS101において、分配部37は、タイマ39のタイマ値(現在のタイマ値)を取り込む。そして、分配部37は、ステップS102において、そのタイマ値を、メモリ(現周期データメモリ)35に格納されている制御情報のタイマ値に照合する。ステップS103において、分配部37は、タイマ値に一致するタイマ値が制御情報に有るか否かを判断する。
分配部37は、その判断の結果、制御情報に現在のタイマ値に対応するタイマ値が無いと判断した場合には、前記ステップS101以降の動作を繰り返す。
これに対して、分配部37は、上記判断の結果、現在のタイマ値に一致するタイマ値がメモリ35の制御情報に有ると判断した場合には、ステップS104の動作を行う。つまり、分配部37は、そのタイマ値に関連付けられている設定情報をメモリ35の制御情報から読み出す。そして、分配部37は、周波数回路21と電源回路22と演算装置24に向けて、読み出した設定情報が含まれている制御信号を、それぞれ、同期して出力する。その後、分配部37は、前記ステップS101以降の動作を繰り返す。
次に、データ更新部38の動作例を説明する。図7のステップS201において、データ更新部38は、管理部30(演算装置24)から制御情報を受け取ると、ステップS202において、メモリ(次周期データメモリ)36に制御情報が格納されているか否かを判断する。この判断により、データ更新部38は、メモリ(次周期データメモリ)36に制御情報が格納されていないことを検知した場合には、ステップS207において、管理部30から受け取った制御情報をメモリ(次周期データメモリ)36に格納する。その後、データ更新部38は、ステップS201以降の動作を繰り返す。
前記ステップS202において、データ更新部38は、メモリ(次周期データメモリ)36に制御情報が格納されていることを検知した場合には、ステップS203の動作を行う。つまり、データ更新部38は、管理部30から受け取った制御情報(以下、説明を分かり易くするために次々周期の制御情報と記す)を保持した状態で、タイマ39からタイマリセットを知らせる通知を受け取ったか否かを判断する。そして、タイマ39がリセットされていない場合には、データ更新部38は、タイマ39がリセットされるまで待機する。
前記ステップS203において、データ更新部38は、タイマ39がリセットされたことを検知した場合には、ステップS204において、メモリ(次周期データメモリ)36から制御情報(次周期の制御情報)を読み出す。そして、ステップS205において、データ更新部38は、その読み出した次周期の制御情報に含まれている最大タイマ値をタイマ39に設定する。かつ、データ更新部38は、その読み出した次周期の制御情報を現周期の制御情報としてメモリ(現周期データメモリ)35に上書き格納(更新)する。その後、ステップS206において、データ更新部38は、管理部30から受け取って保持していた次々周期の制御情報を次周期の制御情報としてメモリ(次周期データメモリ)36に上書き格納(更新)する。そして、データ更新部38は、ステップS201以降の動作を繰り返す。
この第2実施形態の情報処理装置20は、第1実施形態と同様に、ミリ秒レベルよりも短い周期で、演算装置24の動作周波数や電源電圧値を変更(周期変更)できるので、第1実施形態と同様の効果を得ることができる。すなわち、この第2実施形態の情報処理装置20は、ミリ秒レベルで動作するアプリケーションから見た演算装置24の見かけ上の動作周波数と電源電圧値を柔軟に制御できるという効果を得ることができる。これにより、この第2実施形態の演算装置24は、アプリケーション毎に、当該アプリケーションに適切な動作周波数と電源電圧値で動作できる。このため、この第2実施形態の情報処理装置20(演算装置24)は、アプリケーション(情報処理装置20)の性能を維持しつつ、消費電力を抑制できる。
また、この第2実施形態では、情報処理装置20は、さらに、演算装置24における消費電力に関わる動作(例えば、命令供給停止モードや強制スリープモード等の動作)をも周期変更する制御構成を有している。このため、この第2実施形態の情報処理装置20は、そのような演算装置24の制御を行わない場合に比べて、消費電力をより抑制できる。
さらに、この第2実施形態では、細粒度制御部23は、タイマ39を有している。このため、そのタイマ39を利用することで、細粒度制御部23は、周波数回路21と電源回路22と演算装置24への制御信号を同期して(同時に)出力することができる。これにより、その制御信号に基づいて、周波数回路21と電源回路22と演算装置24は、同期して動作できる。このため、この第2実施形態の情報処理装置20は、アプリケーションから見た動作周波数や電源電圧値を精度良く目標値とすることができる。
さらに、この第2実施形態の情報処理装置20は、アプリケーション毎の制御情報に基づいて演算装置24の動作周波数と電源電圧値を制御する。このため、演算装置24は、各アプリケーション毎に(アプリケーションソフトウェアの動作特性に応じて)適切な動作周波数と電源電圧値で動作できる。
さらに、この第2実施形態の情報処理装置20は、細粒度制御部(制御部)23において、進行中の制御動作に対応する制御情報(現周期の制御情報)だけでなく、次の周期に実行予定の制御動作に対応する制御情報(次周期の制御情報)をも保持する。これにより、次のような効果を得ることができる。
すなわち、CPU(細粒度制御部23)は、その性能により、タイマ39に最大タイマ値を設定する動作と、外部から情報を受け取って当該情報を内部のメモリに格納(更新)する動作とを同時に行うことが難しい。このため、タイマ39がリセットしたときに、細粒度制御部23が次周期の制御情報を保持していない場合には、次周期の制御情報を保持していないことが原因で、不適切な状態遷移に陥る虞がある。これに対して、この第2実施形態では、細粒度制御部23は、次周期の制御情報を保持しておく。これにより、細粒度制御部23は、上記のような不適切な状態遷移に陥ることを回避できる。
なお、基準信号の周波数を、設定されている動作周波数に合わせる制御動作や、電源電圧値を設定電圧値に合わせる制御動作を実現するためのコンピュータプログラムは、既に提案されている動作周波数と電源電圧を管理するソフトウェアの一部を利用することができる。
この第2実施形態の情報処理装置20は、パーソナルコンピュータを始め、例えば携帯電話機や携帯情報端末等の電子機器に組み込まれ、高性能かつ省電力な電子機器の提供に寄与することができる。
(その他の実施形態)
なお、本発明は第1と第2の実施形態に限定されることなく、様々な実施の形態を採り得る。例えば、第2実施形態では、細粒度制御部23と、演算装置24とは、別々のCPUである。これに対して、図8に示されるように、同じCPU41が、細粒度制御部23と演算装置24の機能を実現する構成としてもよい。
また、第2実施形態では、細粒度制御部23はCPUにより構成されている。これに代えて、細粒度制御部23は、第2実施形態で述べた機能を有することができれば、CPU以外の論理回路により構成してもよい。
さらに、第2実施形態の情報処理装置20は、周波数回路21と電源回路22を有しているが、それら周波数回路21と電源回路22の一方又は両方は、情報処理装置20に設けられていなくともよい。この場合には、その周波数回路21と電源回路22の一方又は両方は、情報処理装置20が組み込まれる例えば電子機器に設けられる。
さらに、第2実施形態では、性能に関わる固定値として、動作周波数が設定されている。これに対し、性能に関わる固定値は、動作周波数以外であって、かつ、演算装置24の動作に関わる固定値であってもよい。また、第2実施形態では、電力に関わる固定値として、電源電圧値が設定されている。これに対し、電力に関わる固定値は、電源電圧値以外であって演算装置24の動作に関わる固定値であってもよい。
さらに、上記では、一例として、CPUが実行する機能をコンピュータプログラムとして説明している。しかしながら、第1や第2の実施形態の情報処理装置1,20において、制御部4や細粒度制御部23の機能部は、コンピュータプログラムとハードウェアの少なくとも何れかによって実現されてもよい。すなわち、細粒度制御部(制御手段)の一部又全部は、ハードウェアによって実現してもよい。
さらに、図4に示される制御情報に含まれる電源電圧値は、1.0Vと1.1Vである。これに対して、制御情報に含まれる電源電圧値(つまり、周期変化に利用される電源電圧値)の一つは、0Vであってもよい。この場合には、例えば、細粒度制御部23は、電源電圧値を次のように周期変化するように制御する。つまり、細粒度制御部23は、演算装置24の動作可能な複数の設定された電源電圧値の中で高い方の電源電圧値から一気に電源電圧値を0とし、その後、その高い電源電圧値に戻すというように、電源電圧値を制御する。これにより、情報処理装置20は、より一層、高い性能と省電力機能を備えることができる。
なお、そのような場合には、電源電圧の電圧変化量が大きいので、電源電圧の変化に要する時間が長くなる。このことに起因した問題が発生する虞がある場合には、電源電圧値を変更するタイミング(タイマ値)は、動作周波数を変更するタイミング(タイマ値)とは異なるように設定する。
以上、実施形態を参照して本願発明を説明しているが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
なお、この出願は、2010年11月16日に出願された日本出願特願2010−256038を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、アプリケーションソフトを利用する情報処理装置や電子機器等に有効である。
1,20 情報処理装置
21 周波数回路
22 電源回路
4 制御部
5,24 演算装置
8 電子機器
23 細粒度制御部
37 分配部
21 周波数回路
22 電源回路
4 制御部
5,24 演算装置
8 電子機器
23 細粒度制御部
37 分配部
Claims (10)
- 自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置と、
前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号とを同期して出力する制御手段と
を有する情報処理装置。 - 前記性能に関わる前記固定値は前記演算装置の動作周波数であり、前記電力に関わる前記固定値は前記演算装置の電源電圧値であり、
前記制御手段は、複数の前記動作周波数の中から選択された一部又は全部の前記動作周波数を前記周期で順次変更する制御信号と、複数の前記電源電圧の中から選択された一部又は全部の前記電源電圧を前記周期で順次変更する制御信号とを同期して出力する請求項1記載の情報処理装置。 - 前記制御手段は、前記演算装置が実行するアプリケーションソフトウェアの動作特性に基づいて、前記性能に関わる前記固定値および前記電力に関わる前記固定値を選択すると共に、それら固定値を変更する周期を決定する請求項1又は請求項2記載の情報処理装置。
- 前記制御手段は、さらに、消費電力に関わる前記演算装置の動作を制御する機能をも備えている請求項1又は請求項2又は請求項3記載の情報処理装置。
- 前記周期は、前記演算装置が実行するアプリケーションソフトウェアの動作特性に基づいて定まる周期である請求項1乃至請求項4の何れか一つに記載の情報処理装置。
- 前記制御手段は、進行中の周期の制御動作に対応する制御情報と、次の周期に実行予定の制御動作に対応する制御情報とを保持している請求項1乃至請求項5の何れか一つに記載の情報処理装置。
- 前記制御手段は、前記周期よりも短い時間間隔毎にカウントするタイマと、当該タイマの値に基づいて前記制御信号を出力する制御信号出力手段とを有している請求項1乃至請求項6の何れか一つに記載の情報処理装置。
- 請求項1乃至請求項7の何れか一つに記載の情報処理装置を備えている電子機器。
- 情報処理装置に、
自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置の前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号と、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号とを同期して出力する処理を行わせるコンピュータプログラムを記憶しているコンピュータプログラム記憶媒体。 - 自演算装置の性能に関わる複数の固定値と、自演算装置の電力に関わる複数の固定値とが動作条件として定められている演算装置の前記性能に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で変更する制御信号を出力し、
それと共に、前記電力に関わる複数の前記固定値の中から選択された一部又は全部の前記固定値を予め定められた周期で順次変更する制御信号を同期して出力する性能と電力の制御方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010256038 | 2010-11-16 | ||
JP2010256038 | 2010-11-16 | ||
PCT/JP2011/076607 WO2012067211A1 (ja) | 2010-11-16 | 2011-11-14 | 情報処理装置、電子機器、コンピュータプログラム記憶媒体、および、性能と電力の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2012067211A1 true JPWO2012067211A1 (ja) | 2014-05-19 |
Family
ID=46084131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012544313A Pending JPWO2012067211A1 (ja) | 2010-11-16 | 2011-11-14 | 情報処理装置、電子機器、コンピュータプログラム、および、性能と電力の制御方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2012067211A1 (ja) |
WO (1) | WO2012067211A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6946663B2 (ja) * | 2017-02-27 | 2021-10-06 | 日本電気株式会社 | 中央演算処理装置、性能評価方法及びプログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7050478B1 (en) * | 2000-08-03 | 2006-05-23 | International Business Machines Corporation | Apparatus and method for synchronizing clock modulation with power supply modulation in a spread spectrum clock system |
JP4139579B2 (ja) * | 2001-06-19 | 2008-08-27 | 株式会社ルネサステクノロジ | 半導体装置および半導体装置の動作モード制御方法 |
JP2005085164A (ja) * | 2003-09-10 | 2005-03-31 | Sharp Corp | マルチプロセッサシステムの制御方法およびマルチプロセッサシステム |
JP4490298B2 (ja) * | 2004-03-02 | 2010-06-23 | 三菱電機株式会社 | プロセッサ電力制御装置及びプロセッサ電力制御方法 |
-
2011
- 2011-11-14 WO PCT/JP2011/076607 patent/WO2012067211A1/ja active Application Filing
- 2011-11-14 JP JP2012544313A patent/JPWO2012067211A1/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2012067211A1 (ja) | 2012-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11709534B2 (en) | Method and apparatus for managing global chip power on a multicore system on chip | |
KR101402178B1 (ko) | 적응형 전압 스케일링 | |
JP4808108B2 (ja) | プロセッサシステム | |
US10409353B2 (en) | Dynamic clock voltage scaling (DCVS) based on application performance in a system-on-a-chip (SOC), and related methods and processor-based systems | |
US20220113782A1 (en) | Reducing power consumption of communication interfaces by clock frequency scaling and adaptive interleaving of polling | |
US9690364B2 (en) | Systems and methods for dynamically adjusting memory state transition timers | |
CN108268119B (zh) | 操作片上系统的方法、片上系统和电子系统 | |
CN106066872B (zh) | 一种数据更新管理方法和电子设备 | |
CN104951044B (zh) | 动态电压和频率调节方法、片上系统及设备 | |
KR101420555B1 (ko) | 동적 전압 디더링 | |
JP6905596B2 (ja) | クロック分周デバイス及びその方法 | |
US9195260B2 (en) | Semiconductor device, radio communication terminal using same, and clock frequency control method | |
CN110637272A (zh) | 处理核组的动态最大频率极限 | |
US9781679B2 (en) | Electronic systems and method of operating electronic systems | |
US20210096635A1 (en) | Power control based on performance modification through pulse modulation | |
WO2012067211A1 (ja) | 情報処理装置、電子機器、コンピュータプログラム記憶媒体、および、性能と電力の制御方法 | |
JP6122682B2 (ja) | 半導体装置及びそれを備えたプロセッサシステム | |
JP2017049972A (ja) | 電子システム及び関連するクロック管理方法 | |
CN113193866A (zh) | 互补金属氧化物半导体(cmos)反相器电路装置 | |
CN113625859A (zh) | 智能预测处理器空闲时间的装置及方法 | |
JP2005115620A (ja) | タスク管理方法及びタスク管理手段を有する電子機器 | |
KR102623137B1 (ko) | 컴퓨팅 디바이스에서 동적 버퍼 사이징을 위한 시스템 및 방법 | |
JP2024527823A (ja) | 低電力デバイスのための低電力クロック発生器 | |
TW201947390A (zh) | 運算速度補償電路及其補償方法 | |
JP2015001832A (ja) | 情報処理装置およびその制御方法 |