JPWO2013073013A1 - 電力制御装置、電子計算機及び電力制御方法 - Google Patents

電力制御装置、電子計算機及び電力制御方法 Download PDF

Info

Publication number
JPWO2013073013A1
JPWO2013073013A1 JP2013544025A JP2013544025A JPWO2013073013A1 JP WO2013073013 A1 JPWO2013073013 A1 JP WO2013073013A1 JP 2013544025 A JP2013544025 A JP 2013544025A JP 2013544025 A JP2013544025 A JP 2013544025A JP WO2013073013 A1 JPWO2013073013 A1 JP WO2013073013A1
Authority
JP
Japan
Prior art keywords
information
unit
operating
processing unit
bus
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.)
Granted
Application number
JP2013544025A
Other languages
English (en)
Other versions
JP5776789B2 (ja
Inventor
佑太 寺西
佑太 寺西
浩一郎 山下
浩一郎 山下
鈴木 貴久
貴久 鈴木
宏真 山内
宏真 山内
康志 栗原
康志 栗原
俊也 大友
俊也 大友
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2013073013A1 publication Critical patent/JPWO2013073013A1/ja
Application granted granted Critical
Publication of JP5776789B2 publication Critical patent/JP5776789B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/06Energy or water supply
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Water Supply & Treatment (AREA)
  • Primary Health Care (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Game Theory and Decision Science (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Educational Administration (AREA)
  • Power Sources (AREA)

Abstract

電力制御装置(1)は、収集部(2)、決定部(3)、導出部(4)及び実行部(5)を備えている。収集部(2)は、処理部の動作及びバスの動作に関する情報を収集する。決定部(3)は、収集された各情報に基づいて処理部の動作周波数及び動作電圧を決定する。導出部(4)は、収集された各情報に基づいて、処理部が動作を停止するまでの時間及びバスが動作を停止するまでの時間を推定する。導出部(4)は、推定した時間に消費される電力を、決定された動作周波数及び動作電圧に基づいて処理部の動作を切り替えた場合に消費される電力に加えて合計消費電力を算出し、算出した合計消費電力と、切り替え前の消費電力との差分を求める判別式を導出する。実行部(5)は、判別式の値に基づいて処理部の動作周波数及び動作電圧の切り替えを実行する。

Description

この発明は、電力制御装置、電子計算機及び電力制御方法に関する。
従来、複数のプロセッサを有するマルチプロセッサシステムにおいて、できるだけ低い周波数や低い電源電圧を用いてプログラムを実行することで、消費電力を削減する方法(DVFS:Dynamic Voltage and Frequency Scaling)がある。例えば、各プロセッサで実行される各プログラムの性能制約を満たす範囲で、複数のプロセッサの周波数と電源電圧とのうちの少なくとも一方を制御する方法がある(例えば、特許文献1参照)。
特開2008−287592号公報
しかしながら、従来のDVFSでは、プロセッサの周波数や電源電圧を切り替える際、各プロセッサがデータ処理を停止するまでの時間やバスが停止するまでの時間に消費される電力を考慮していない。そのため、DVFSによって低い周波数や低い電源電圧に切り替えたにもかかわらず、切り替え後の消費電力に、これらデータ処理の停止やバスの停止までの時間に消費される電力を加えると、切り替え前の消費電力よりも増えてしまうことがあるという問題点がある。
消費電力を削減することができる電力制御装置、電子計算機及び電力制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、電力制御装置は、収集部、決定部、導出部及び実行部を備えている。収集部は、データ処理を行う処理部の動作に関する情報を収集する。収集部は、データを伝送するバスの動作に関する情報を収集する。決定部は、収集された処理部の動作に関する情報及びバスの動作に関する情報に基づいて処理部の動作周波数及び動作電圧を決定する。導出部は、収集された処理部の動作に関する情報に基づいて処理部が動作を停止するまでの時間を推定する。導出部は、収集されたバスの動作に関する情報に基づいてバスが動作を停止するまでの時間を推定する。導出部は、推定した時間に消費される電力を、決定された動作周波数及び動作電圧に基づいて処理部の動作を切り替えた場合に消費される電力に加えて合計消費電力を算出する。導出部は、算出した合計消費電力と、切り替え前の消費電力との差分を求める判別式を導出する。実行部は、判別式の値に基づいて処理部の動作周波数及び動作電圧の切り替えを実行する。
開示の電力制御装置、電子計算機及び電力制御方法によれば、消費電力を削減することができるという効果を奏する。
図1は、実施例1にかかる電力制御装置の構成を示すブロック図である。 図2は、実施例1にかかる電力制御方法を示すフローチャートである。 図3は、実施例2にかかる電子計算機のハードウェア構成を示すブロック図である。 図4は、実施例2にかかる電子計算機の機能的構成を示すブロック図である。 図5は、実施例2にかかる電子計算機における全CPUのデータ処理停止までの動作を説明する模式図である。 図6は、実施例2にかかる電子計算機における一CPUの停止までの動作を説明する模式図である。 図7は、実施例2にかかる電子計算機におけるバスの停止までの動作を説明する模式図である。 図8は、実施例2にかかる電力制御方法を示すフローチャートである。 図9は、実施例3にかかる電子計算機のハードウェア構成を示すブロック図である。 図10は、実施例3にかかる電子計算機における全CPUのデータ処理停止までの動作を説明する模式図である。
以下に、この発明にかかる電力制御装置、電子計算機及び電力制御方法の実施例を図面に基づいて詳細に説明する。以下の各実施例の説明において、同様の構成には同一の符号を付して重複する説明を省略する。なお、この実施例によりこの発明が限定されるものではない。
(実施例1)
・電力制御装置の説明
図1は、実施例1にかかる電力制御装置の構成を示すブロック図である。図1に示すように、電力制御装置1は、収集部2、決定部3、導出部4及び実行部5を備えている。収集部2、決定部3、導出部4及び実行部5は、例えばプロセッサに、後述する電力制御方法を実現するプログラムを実行させることにより実現されてもよい。
収集部2は、データ処理を行う処理部(図示省略)の動作に関する情報を収集する。例えば、処理部の動作に関する情報は、処理部で実行中のタスクの負荷量の情報を含んでいてもよい。また、収集部2は、データを伝送するバス(図示省略)の動作に関する情報を収集する。例えば、バスの動作に関する情報は、バスがダイレクトメモリアクセスによって動作中であるか否かという情報、及び1回のダイレクトメモリアクセスによって転送されるデータ量の情報を含んでいてもよい。
決定部3は、収集部2により収集された処理部の動作に関する情報及びバスの動作に関する情報に基づいて、切り替え後の処理部の動作周波数及び動作電圧を決定する。
導出部4は、収集部2により収集された処理部の動作に関する情報に基づいて、処理部が動作を停止するまでの時間を推定する。導出部4は、収集部2により収集されたバスの動作に関する情報に基づいて、バスが動作を停止するまでの時間を推定する。導出部4は、決定部3により決定された動作周波数及び動作電圧に基づいて処理部の動作を切り替えた場合に消費される電力に、処理部及びバスの停止までの推定時間に消費される電力を加えて合計消費電力を算出する。導出部4は、算出した合計消費電力と、切り替え前の消費電力との差分を求める判別式を導出する。
実行部5は、判別式の値に基づいて処理部の動作周波数及び動作電圧の切り替えを実行する。例えば、実行部5は、処理部の動作を切り替えた場合に消費される電力に、処理部及びバスの停止までの推定時間に消費される電力を加えた合計消費電力から、切り替え前の消費電力を引いた値が0よりも小さい場合に、切り替えを実行してもよい。
・電力制御方法の説明
図2は、実施例1にかかる電力制御方法を示すフローチャートである。図2に示すように、電力制御装置1において電力制御方法が開始されると、収集部2は、処理部の動作に関する情報及びバスの動作に関する情報を収集する(ステップS1)。次いで、決定部3は、収集部2により収集された処理部の動作に関する情報及びバスの動作に関する情報に基づいて切り替え後の処理部の動作周波数及び動作電圧を決定する(ステップS2)。
次いで、導出部4は、処理部及びバスが動作を停止するまでの時間を推定する。導出部4は、処理部の動作を切り替えた場合に消費される電力に、その動作停止までの推定時間に消費される電力を加えた合計消費電力を求める。そして、導出部4は、その合計消費電力と切り替え前の消費電力との差分を求める判別式を導出する(ステップS3)。
次いで、実行部5は、判別式の値が切り替えの条件を満たす値である場合(ステップS4:Yes)、処理部の動作周波数及び動作電圧を、決定部3により決定された動作周波数及び動作電圧に切り替えることを実行する(ステップS5)。そして、一連の処理を終了する。一方、例えば判別式の値が切り替えの条件を満たさない値である場合(ステップS4:No)、実行部5は、動作周波数及び動作電圧の切り替えを実行しないで一連の処理を終了する。
実施例1によれば、切り替え後の消費電力に、処理部及びバスが停止するまでの推定時間に消費される電力を加えることによって、切り替えによって電力消費量が減るか否かを見積もることができる。従って、切り替え後の消費電力に、処理部及びバスが停止するまでの推定時間に消費される電力を加えた合計消費電力が切り替え前の消費電力よりも多くなる場合に切り替えを実行しないようにすることによって、切り替えによって消費電力が増えてしまうのを防ぐことができる。そして、合計消費電力が切り替え前の消費電力よりも少なくなる場合に切り替えを実行することによって、消費電力を削減することができる。
(実施例2)
実施例2は、実施例1にかかる電力制御装置を電子計算機のDVFSを制御する装置に適用した例である。電子計算機の一例として、例えばパーソナルコンピュータやワークステーションなどのコンピュータ、またはPDA(Personal Digital Assistants)などの携帯情報端末が挙げられる。また、一例として、携帯電話機、携帯電話機と携帯情報端末としての機能を併せ持ついわゆるスマートフォンと呼ばれる携帯端末、種々の測定器、または種々の電子装置の組み込みシステムなどが挙げられる。
・電子計算機のハードウェア構成の説明
図3は、実施例2にかかる電子計算機のハードウェア構成を示すブロック図である。図3に示すように、電子計算機11は、コプロセッサ12、及び処理部の一例として例えばN個のCPU(Central Processing Unit、中央処理装置)(#1、#2、・・・、#N)13〜15を備えている。Nは、2以上の整数である。図3には、3個以上のCPUが示されているが、CPUの数は2個でもよい。
コプロセッサ12は、CPU(#1、#2、・・・、#N)13〜15に対してDVFSを制御する。例えばコプロセッサ12は、DVFSによって各CPU(#1、#2、・・・、#N)13〜15の動作周波数や動作電圧を切り替える際、各CPU(#1、#2、・・・、#N)13〜15に対してデータ処理の停止命令を発行する。また、例えばコプロセッサ12は、DVFSによって各CPU(#1、#2、・・・、#N)13〜15の動作周波数や動作電圧を切り替える際、バス20に対して動作の停止命令を発行する。
CPU(#1、#2、・・・、#N)13〜15は、それぞれに割り当てられたタスクを並列処理する。タスクの割り当ては、何れかのCPUでOS(Operating System、オペレーティングシステム)が実行されることにより実現されるスケジューラによって行われてもよい。ここでは、CPU#1_13がOSを実行するとして説明する。CPU(#1、#2、・・・、#N)13〜15は、マルチプロセッサシステムの個々のマイクロプロセッサであってもよいし、マルチコアプロセッサの個々のコアであってもよい。
電子計算機11は、分散メモリ型の計算機であり、例えばコプロセッサ12、CPU#1_13、CPU#2_14、・・・及びCPU#N_15のそれぞれに独立してメモリ16〜19が接続されていてもよい。メモリ16〜19は、それぞれコプロセッサ12及びCPU(#1、#2、・・・、#N)13〜15により作業領域として使用される。メモリ16〜19の一例として、例えばRAM(Random Access Memory、ランダムアクセスメモリ)が挙げられる。
コプロセッサ12、各CPU(#1、#2、・・・、#N)13〜15及び各メモリ16〜19は、バス20に接続されている。バス20には、バスアービタ21、ペリフェラル(周辺装置)22及びDMAC(Direct Memory Access Controller、ダイレクトメモリアクセスコントローラ)23が接続されている。バス20は、バス20に接続された各構成部12〜19,21〜23の間でデータを伝送する。
ペリフェラル22は、例えばキーボードやキーパッドやタッチパネルやマウスやマイクなどの入力装置、及びディスプレイやプリンタやスピーカや振動用のモータなどの出力装置、種々のメモリカードなどの外部記憶装置であってもよい。DMAC23は、メモリ16〜19とペリフェラル22との間のダイレクトメモリアクセスを制御する。バスアービタ21は、バスマスタである各CPU(#1、#2、・・・、#N)13〜15とDMAC23との間でバス20の使用権を調停する。
・電子計算機の機能的構成の説明
図4は、実施例2にかかる電子計算機の機能的構成を示すブロック図である。図4に示すように、電子計算機11において、電力制御装置1は、ハードウェアであるコプロセッサ12で、ソフトウェアである特権プログラム31が実行されることにより実現される。特権プログラム31の実行により、収集部2、決定部3、導出部4及び実行部5が実現される。
収集部2からの依頼により収集された情報は、直接、決定部3へ送られてもよいし、一旦収集部2へ送られ、収集部2から決定部3へ送られてもよい。ここでは、収集された情報が直接、決定部3へ送られるとして説明する。収集部2は、周波数電圧用収集部32及び消費電力量用収集部33を有する。
周波数電圧用収集部32は、CPU#1_13で実行されているOS38に対して、各CPU(#1、#2、・・・、#N)13〜15の動作に関する情報を依頼する。OS38は、周波数電圧用収集部32からの依頼に応答して、決定部3に各CPU(#1、#2、・・・、#N)13〜15の動作に関する情報を提供する。
各CPU(#1、#2、・・・、#N)13〜15の動作に関する情報の一例として、例えば各CPU(#1、#2、・・・、#N)13〜15においてタスクを完了させるために与えられた残り時間であるデッドライン時間や、実行されるタスクの最長実行時間の情報が挙げられる。タスクの最長実行時間は、タスクごとに例えばシミュレーションによって予め求められていてもよい。
消費電力量用収集部33は、OS38に対して、各CPU(#1、#2、・・・、#N)13〜15の動作に関する情報を依頼するとともに、バスアービタ21及びDMAC23に対して、バス20の動作に関する情報を依頼する。消費電力量用収集部33からの依頼に応答して、OS38は、決定部3に各CPU(#1、#2、・・・、#N)13〜15の動作に関する情報を提供する。消費電力量用収集部33からの依頼に応答して、バスアービタ21及びDMAC23は、決定部3にバス20の動作に関する情報を提供する。
各CPU(#1、#2、・・・、#N)13〜15の動作に関する情報の一例として、例えば各CPU(#1、#2、・・・、#N)13〜15において実行中のタスクが終了するまでの平均実行時間の情報や、実行中のタスクの負荷量の情報が挙げられる。バス20の動作に関する情報の一例として、ダイレクトメモリアクセスの実行中であるか否かという情報や、1回あたりのダイレクトメモリアクセスでバス20が占領される時間の情報が挙げられる。ダイレクトメモリアクセスの実行中であるか否かという情報は、例えばバスアービタ21から得られる。バス20の占領時間の情報は、例えばDMAC23から得られる。なお、各CPU(#1、#2、・・・、#N)13〜15やバス20の動作に関する情報がOS38に記録されている場合には、周波数電圧用収集部32及び消費電力量用収集部33は、OS38からそれらの情報を取得することができる。
決定部3は、例えば各CPU(#1、#2、・・・、#N)13〜15のデッドライン時間やタスクの最長実行時間の情報に基づいて、DVFSによって切り替えられた後の各CPU(#1、#2、・・・、#N)13〜15の動作周波数及び動作電圧を決定する。決定部3によって、各CPU(#1、#2、・・・、#N)13〜15について、デッドライン時間を守る範囲で例えば低い動作周波数及び低い動作電圧が決定される。例えばCMOS(Complementary Metal Oxide Semiconductor)回路の場合、動作周波数に動作電圧の2乗を掛け合わせたものに消費電力が比例するので、動作周波数及び動作電圧が低くなれば消費電力が減る可能性がある。
導出部4は、全CPU停止時間推定部34、バス停止時間推定部35及び判別式構成部36を有する。
全CPU停止時間推定部34は、コプロセッサ12がデータ処理の停止命令を発行してから、全てのCPU(#1、#2、・・・、#N)13〜15でデータ処理が停止するまでに、各CPU(#1、#2、・・・、#N)13〜15で生じる待機時間を推定する。各CPU(#1、#2、・・・、#N)13〜15の待機時間の推定方法については後述する。
バス停止時間推定部35は、コプロセッサ12がバス20の動作の停止命令を発行してから、バス20が動作を停止するまでに要する時間を推定する。バス20の動作停止時間の推定方法については後述する。
判別式構成部36は、DVFSを実行した場合の消費電力量の推定値と、DVFSを実行しない場合の消費電力量の推定値とを求める。判別式構成部36は、求めた消費電力量の推定値に基づいて、DVFSを実行するか否かを判別する判別式を導出し、値を求める。判別式の導出方法については後述する。
実行部5は、判別式の値に基づいて、DVFSを実行するか否かを決定する。例えば、実行部5は、DVFSを実行した場合の消費電力量の推定値が、DVFSを実行しない場合の消費電力量の推定値よりも小さい場合に、DVFSを実行する。例えば、実行部5は、DVFSを実行した場合の消費電力量の推定値が、DVFSを実行しない場合の消費電力量の推定値よりも大きい場合には、DVFSを実行しない。DVFSを実行する場合、実行部5は、各CPU(#1、#2、・・・、#N)13〜15でのデータ処理を停止させるための停止命令及びバス20の動作を停止させるための停止命令を発行する。
コプロセッサ12は、変更部37を備えている。変更部37は、実行部5がDVFSを実行すると決めた場合に、各CPU(#1、#2、・・・、#N)13〜15の動作周波数及び動作電圧を、決定部3により決定された動作周波数及び動作電圧に変更する。図4には、変更部37がCPU#1_13の動作周波数及び動作電圧を変更するように示されているが、変更部37は、図示省略した各CPU(#2、・・・、#N)14,15の動作周波数及び動作電圧も変更する。
・全CPUのデータ処理が停止するまでの動作の説明
図5は、実施例2にかかる電子計算機における全CPUのデータ処理停止までの動作を説明する模式図である。図5に示すように、実施例2のアーキテクチャでは、コプロセッサ12、CPU#1_13、CPU#2_14、・・・、及びCPU#N_15間に親子関係があるとする。そして、親に当たるプロセッサと子に当たるプロセッサとの間でしかメッセージをやり取りすることができないとする。
図示例では、コプロセッサ12は、CPU#1_13に対して親に当たり、CPU#1_13は、コプロセッサ12に対して子に当たるとする。また、図示省略したCPU#[N−1]は、CPU#N_15に対して親に当たり、CPU#N_15は、CPU#[N−1]に対して子に当たるとする。
コプロセッサ12は、DVFSを実行する際、まず、子に当たるCPU#1_13に対してデータ処理の停止命令を発行し、データ処理を停止するように通知する(ステップS11)。そして、コプロセッサ12は、動作を停止する(ステップS12)。動作を停止した後、全てのCPU(#1、#2、・・・、#N)13〜15のデータ処理が停止するまでの時間が、コプロセッサ12の待機時間41となる。
CPU#1_13は、コプロセッサ12からデータ処理停止の通知を受け取ると、子に当たるCPU#2_14に対してデータ処理を停止するように通知する(ステップS13)。そして、CPU#1_13は、データ処理を停止する(ステップS14)。データ処理を停止した後、残りのデータ処理中のCPU(#2、・・・、#N)14,15のデータ処理が停止するまでの時間が、CPU#1_13の待機時間42となる。
CPU#2_14は、CPU#1_13からデータ処理停止の通知を受け取ると、子に当たる図示省略したCPU#3に対してデータ処理を停止するように通知する(ステップS15)。そして、CPU#2_14は、データ処理を停止する(ステップS16)。データ処理を停止した後、残りのデータ処理中のCPU(#3、・・・、#N)15のデータ処理が停止するまでの時間が、CPU#2_14の待機時間43となる。
CPU#3以降のCPUについても同様である。最後に残ったデータ処理中のCPU#N_15がデータ処理を停止すると、全てのアプリケーションが停止したことになる(ステップS17)。従って、CPU#N_15については、待機時間は発生しない。コプロセッサ12及び各CPU(#1、#2、・・・、#[N−1])13,14の待機時間41〜43において、無駄な電力が消費される。
・各CPUの待機時間の推定方法の説明
図6は、実施例2にかかる電子計算機における一CPUの停止までの動作を説明する模式図である。CPUがデータ処理を停止するまでの動作は、何れのCPU(#1、#2、・・・、#N)13〜15でも同じであるが、ここでは、CPU#1_13を例にして説明する。
図6に示すように、例えばCPU#1_13がタスク#1、タスク#2及びタスク#3をこの順番で繰り返し実行しているとする。例えば、CPU#1_13は、あるサイクルのタスク#1_51の実行中にCPU停止の割り込みを受けると、割り込みを受けたときに実行中であるタスク#1_51の終了時点で停止する。
タスク#1_51の実行中、CPU#1_13にCPU停止の割り込みが入るタイミングは任意である。従って、CPU#1_13にCPU停止の割り込みが入ってから、CPU#1_13が停止するまでの平均時間は、OS38がタスク#1_51に割り当てた時間、すなわちタイムスライスの1/2の時間であるとみなしてもよい。
また、タスク#1_51の負荷量をS(1)とすると、CPU#1_13にCPU停止の割り込みが入ってから、CPU#1_13が停止するまでの平均時間は、αS(1)と推定することができる。αは比例定数である。
CPU#1_13にCPU停止の割り込みが入るタイミングは任意であるので、CPU#1_13がタスク#2またはタスク#3の実行中にCPU停止の割り込みを受けた場合も、同様である。従って、CPU#1_13がCPU停止の割り込みを受けてから停止するまでの平均時間は、次の(1)式で表される。
Figure 2013073013
ここで、k番目のCPU#kに割り当てられた#1〜#mの各タスクの負荷量をS(1)k、・・・、S(m)kとする。mは、2以上の整数であり、kの値によって異なっていてもよい。kは、1〜Nの整数である。CPU#kにCPU停止の割り込みが入ってからCPU#kのデータ処理が停止するまでの時間Skは、次の(2)式で表される。(2)式において、i及びjは、1〜mの整数である。
Figure 2013073013
従って、k番目のCPU#kについて、データ処理を停止してから全てのアプリケーションが停止するまでの待機時間TCPU_kは、[k+1]番目からN番目までの各CPUがデータ処理を停止するまでの時間を足し合わせたものとなる。これを式で表すと、次の(3)式となる。ただし、便宜上、コプロセッサ12を0番目のCPU、すなわちCPU#0と表すと、(3)式は、コプロセッサ12の待機時間も含めた式となる。つまり、(3)式では、kは0〜Nの整数である。
Figure 2013073013
・バスの動作停止時間の推定方法の説明
図7は、実施例2にかかる電子計算機におけるバスの停止までの動作を説明する模式図である。図7に示すように、DMA実行中52にコプロセッサ12がバス20に対して動作の停止命令を発行すると、バス20は、停止命令が発行されたときのダイレクトメモリアクセスの終了時点で停止する。
DMA実行中52にバス20に対して停止命令が発行されるタイミングは任意である。従って、1回のダイレクトメモリアクセスでバス20が占領される時間をTDMAとすると、DMA実行中52にバス停止命令が発行されてからバス20が停止するまでに要する時間の期待値は、[TDMA/2]である。DMA実行中でないときにバス停止命令が発行されると、バス20は直ちに停止する。バス20に対して停止命令が発行されてからバス20が停止するまでに要する時間をTBUSとすると、TBUSは、次の(4)式で表される。
Figure 2013073013
(4)式において、「その他」には、DMA実行中でない場合が含まれている。ここで、TDMAは、1回のDMAでのデータ転送量に比例する。1回のDMAでのデータ転送量は、次の(5)式で表される。(5)式は、1回のDMAで転送されるデータ転送量の上限とCPUがDMACに依頼したデータ転送量とで、何れか小さい方の値であることを表している。
Figure 2013073013
・判別式の導出方法の説明
DVFS実行前のCPU#0(コプロセッサ12)、CPU#1_13、・・・、CPU#N_15の電力をそれぞれP0_high、P1_high、・・・、PN_highとする。DVFS実行後のCPU#0(コプロセッサ12)、CPU#1_13、・・・、CPU#N_15の電力をそれぞれP0_low、P1_low、・・・、PN_lowとする。
ただし、1以上の整数iに対して、[Pi_high≧Pi_low]を満たすとする。また、コプロセッサ12の電力は一定であるとする。すなわち、iが0である場合、[P0_high=P0_low]であるとする。
・1.DVFSを実行しない場合の消費電力量
DVFS実行前の電力がPi_highであるCPU#iにおいて、Pi_highの電力のままで実行中のタスクが終了するまでの平均時間をTi_highとする。この場合、CPU#iにおいてタスクが終了するまでに全CPUが消費する電力量の合計は、次の(6)式で表されるP1であると推定される。すなわち、DVFSを実行しない場合の全CPU(コプロセッサ12を含む)の消費電力量は、P1であると推定される。
Figure 2013073013
・2.DVFSを実行する場合の消費電力量
CPU#iにおいて、電力をPi_lowに下げてから、実行中のタスクが終了するまでの平均時間をTi_lowとする。この場合、コプロセッサ12がCPUの停止命令を発行してからCPU#iにおいてタスクが終了するまでに全CPUが消費する電力量の合計は、次の(7)式で表されるP2であると推定される。すなわち、DVFSを実行する場合の全CPU(コプロセッサ12を含む)の消費電力量は、P2であると推定される。
Figure 2013073013
上記(7)式の右辺において、第1項目は、全CPUでのタスクの実行に消費される電力量を表している。第2項目は、DVFSを実行する際の準備において全CPUで消費される電力量を表している。第3項目の「Const」は、DVFS自体の消費電力量を表している。第2項目と第3項目とを足した消費電力量は、DVFSを実行する際のオーバーヘッドである。
CPU_iは、コプロセッサ12がCPUの停止命令を発行してからCPU#iが停止するまでの時間である。TBUS'は、全てのCPUが停止してからバス20が停止するまでの時間である。TBUS'は、次の(8)式で表される。すなわち、TBUS'は、TCPU_kのうち最も大きい値をTBUSから引いた値と、0とで、何れか大きい方の値である。TBUS'の値が0となるのは、データ処理中のCPUがある状態でバス20が動作を停止した場合である。
Figure 2013073013
・3.判別式の構成
判別式は、例えば上述したDVFSを実行する場合の消費電力量P2からDVFSを実行しない場合の消費電力量P2を引いた式であってもよい。この場合、判別式の値Dは、次の(9)式で表される。
Figure 2013073013
・4.DVFSを実行するか否かの判断
上述した判別式の値Dが0よりも小さい場合、DVFSを実行した方が実行しない場合よりも消費電力が少なくなると推定されるので、DVFSを実行してもよい。Dが0以上の場合には、DVFSを実行しても消費電力が変わらないか、増えてしまう虞があるので、DVFSを実行しなくてもよい。
・電力制御方法の説明
図8は、実施例2にかかる電力制御方法を示すフローチャートである。図8に示すように、電子計算機11において電力制御方法が開始されると、収集部2は、例えば定期的に、OS38やバスアービタ21やDMAC23に対して、DVFSを実行するか否かを判断する材料となる情報の提供を依頼する。それによって、決定部3に、例えば上述したタスク完了までのデッドライン時間、タスクの最長実行時間、タスク終了までの平均実行時間、各CPU(#1、#2、・・・、#N)13〜15の負荷量及びDMAの実行中か否か、などの情報が収集される(ステップS21)。
次いで、決定部3は、収集された各情報に基づいてDVFSを実行した場合の各CPU(#1、#2、・・・、#N)13〜15の動作周波数及び動作電圧を決定する(ステップS22)。全てのCPU(#1、#2、・・・、#N)13〜15について、決定した動作周波数及び動作電圧の値に変化がない場合、すなわち現在の値と同じである場合(ステップS22:変化なし)、ステップS21に戻る。
決定した動作周波数及び動作電圧の値が現在の値よりも小さいCPUが存在し、かつ現在の値よりも大きいCPUが存在しない場合(ステップS22:小さいものあり、かつ大きいものなし)、導出部4は、判別式を導出してその値Dを算出する(ステップS23)。判別式の値Dが0よりも大きい場合には(ステップS23:D>0)、ステップS21に戻る。
判別式の値Dが0よりも小さい場合には(ステップS23:D<0)、実行部5は、各CPU(#1、#2、・・・、#N)13〜15でのデータ処理を停止させるための停止命令及びバス20の動作を停止させるための停止命令を発行する(ステップS24)。それによって、全てのCPU(#1、#2、・・・、#N)13〜15でのデータ処理が停止し、バス20の動作が停止する。
その後、変更部37は、全CPU(#1、#2、・・・、#N)13〜15及びバス20の停止が完了した通知を受けると、DVFSを実行する(ステップS25)。それによって、各CPU(#1、#2、・・・、#N)13〜15の動作周波数及び動作電圧が、ステップS22で決定された動作周波数及び動作電圧に切り替えられる。その後、実行部5は、各CPU(#1、#2、・・・、#N)13〜15に対して、アプリケーションを再開する命令を発行する(ステップS26)。それによって、各CPU(#1、#2、・・・、#N)13〜15は、データ処理を再開する。そして、ステップS21に戻り、一連の処理を繰り返す。
一方、決定部3が決定した動作周波数及び動作電圧の値が現在の値よりも大きいCPUが存在する場合(ステップS22:大きいものあり)、ステップS23を省略してステップS24へ進む。この場合には、動作周波数及び動作電圧の値が現在の値よりも大きくなってしまったCPUについて、DVFSによって動作周波数及び動作電圧の値が現在の値よりも大きくなるように切り替えられる。これは、現在の動作周波数及び動作電圧でデータ処理を続けたのでは、デッドライン時間を守ることができないため、現在よりも高速でデータ処理を行う必要があるからである。
・DVFSを実行しない方が消費電力を削減できる例
次に、実施例2の効果の一例として、DVFSを実行しない方が実行する場合よりも消費電力を削減することができる例を説明する。簡単のため、図3に示す構成において、電子計算機11は、2個のCPU(#1、#2)13,14を有するとする。
例えば、CPU#1_13でタスク#A及びタスク#Bを実行中であり、CPU#2_14でタスク#C及びタスク#Dを実行中であるとする。また、タスク#A及びタスク#Bのタイムスライスを2msecとし、タスク#C及びタスク#Dのタイムスライスを1msecであるとする。コプロセッサ12の消費電力を10mWとし、CPU#1_13の消費電力を100mWとし、CPU#2_14の消費電力を50mWとする。タスク#A及びタスク#Bが終了するまでの時間を10msecとし、タスク#C及びタスク#Dが終了するまでの時間を5msecとする。
上述した動作状態において、DVFSを実行しない場合の全タスクが終了するまでの消費電力は、次の(10)式で表される。(10)式において、左辺の第1項目は、コプロセッサ12の消費電力を表している。第2項目は、CPU#1_13の消費電力を表している。第3項目は、CPU#2_14の消費電力を表している。
Figure 2013073013
次に、決定部3がCPU#2_14の周波数を半分にし、それに伴って電力を20mWに下げると決定したとする。この場合、CPU#2_14の周波数が半分になったので、タスク#C及びタスク#Dが終了するまでの時間は、上述した5msecの2倍の10msecとなる。従って、DVFSを実行した場合の全タスクが終了するまでの消費電力量は、次の(11)式で表される。(11)式において、左辺の第1項目は、コプロセッサ12の消費電力を表している。第2項目は、CPU#1_13の消費電力を表している。第3項目は、CPU#2_14の消費電力を表している。
Figure 2013073013
(10)式と(11)式とを単純に比較すると、DVFSを実行した方が実行しない場合よりも消費電力量が減っている。しかしながら、DVFSを実行する際には、オーバーヘッドが生じるので、このオーバーヘッドの消費電力量も考慮するのが好ましい。
DVFSを実行する際には、CPU#1_13とCPU#2_14とが停止する。実行部5がCPUの停止命令を発行してからCPU#1_13が停止するまでにかかる平均時間は、OS38が各タスクに割り当てたタイムスライスの1/2であると期待される。CPU#2_14についても同様である。従って、CPUの停止命令の発行からCPU#1_13及びCPU#2_14が停止するまでにかかる時間は、平均で次の(12)式で表される。
Figure 2013073013
(12)式より、ここでの例では、CPUの停止命令の発行からCPU#1_13及びCPU#2_14が停止するまでにかかる時間は、平均で1.5msecである。つまり、コプロセッサ12では、平均で1.5msecの待機時間が発生し、CPU#1_13では、平均で0.5msecの待機時間が発生することになる。これらの待機時間に消費される電力量は、次の(13)式で表される。
Figure 2013073013
従って、DVFSを実行する場合の消費電力量は、上記(11)式の値と(13)式の値とを足し合わせることとなり、次の(14)式で表される。(14)式より、DVFSのオーバーヘッドを考慮してDVFSを実行すると、実行しない場合よりも消費電力量が増えてしまう結果となる。この場合には、DVFSを実行しないのがよい。もちろん、DVFSを実行するとした場合の消費電力量が、DVFSを実行しない場合の消費電力量よりも少なくなれば、DVFSを実行するのがよい。
Figure 2013073013
・判別式を用いて繰り返しDVFSの実行を判断することの効果
上述した判別式では、推定値(期待値)を用いているので、判別式の値が実際の消費電力量の増減を正確に反映しているとは限らない。つまり、判別式の値Dに基づいてDVFSを実行するか否かを判断しても消費電力量が増えてしまう虞がある。しかし、判別式の値Dに基づいてDVFSを実行するか否かを判断する回数が増えるほど、判別式の値Dに基づいてDVFSを実行するか否かを判断しない場合に比べて、消費電力量を減らすことができる。このことが正しいことを以下に説明する。
判別式の値Dに基づいてDVFSを実行するか否かを判断するケースをケース1とし、判別式の値Dに基づいてDVFSを実行するか否かを判断しないケースをケース2とする。ケース1及びケース2のそれぞれについてn回、実施したときの消費電力量を比較し、nが大きいときに、ケース1をn回、実施したときの合計消費電力量からケース2をn回、実施したときの合計消費電力量を引いた値が0よりも小さくなることを示す。nは、正の整数である。
ケース2の消費電力量からケース1の消費電力量を引いた値を確率変数Xiとする。ケース1をn回、実施したときの合計消費電力量からケース2をn回、実施したときの合計消費電力量を引いた値は、次の(15)式で表される。従って、(15)式の値が0よりも小さくなることを示せばよい。(15)式〜(18)式において、iは1〜nの整数である。
Figure 2013073013
Xの期待値をE[X]と表すと、次の(16)式が成り立つ。Xの分散をV[X]と表し、E[Xi]をμiとおき、V[Xi]をσi 2とおくと、μiは0以下である。ここで、ΣXi/n(Σにおいて、iが取り得る値は1〜nである)の平均及び分散を考えると、次の(16)式及び(17)式が成り立つ。
Figure 2013073013
Figure 2013073013
従って、nが大きいとき、次の(18)式が成り立つ。
Figure 2013073013
(18)式より、(15)式の値が0よりも小さくなることが示された。0以上のある数yを設定して(18)式を変形すると、(19)式が得られる。(19)式をさらに変形すると、(20)式が得られるので、nが大きくなるほど、ケース1とケース2の差が広がっていくことが示された。
Figure 2013073013
Figure 2013073013
実施例2によれば、コプロセッサ12を含む全CPU(#1、#2、・・・、#N)13〜15間に親子関係がある例えば分散メモリ型の電子計算機11において、実施例1と同様の効果が得られる。
(実施例3)
・電力制御装置のハードウェアの説明
図9は、実施例3にかかる電子計算機のハードウェア構成を示すブロック図である。図9に示すように、実施例3にかかる電子計算機11は、共有メモリ型の計算機であり、バス20に接続された共有メモリ24を有している。電子計算機11のその他のハードウェア構成及び機能的構成は、実施例2と同様であるので、説明を省略する。
図10は、実施例3にかかる電子計算機における全CPUのデータ処理停止までの動作を説明する模式図である。図10に示すように、実施例3のアーキテクチャでは、コプロセッサ12、CPU#1_13、CPU#2_14、・・・、及びCPU#N_15間に親子関係がない。コプロセッサ12及び各CPU(#1、#2、・・・、#N)13〜15は、共有メモリ24を介して相互にメッセージのやりとりを行うことができる。
コプロセッサ12は、DVFSを実行する際、全CPU(#1、#2、・・・、#N)13〜15に対してデータ処理の停止命令を発行し、データ処理を停止するように通知する(ステップS31)。そして、コプロセッサ12は、動作を停止する(ステップS32)。
各CPU(#1、#2、・・・、#N)13〜15は、コプロセッサ12からデータ処理停止の通知を受け取ると、それぞれデータ処理を停止する(ステップS33〜ステップS35)。各CPU(#1、#2、・・・、#N)13〜15がデータ処理を停止した後、残りのデータ処理中のCPUのデータ処理が停止するまでの時間が、コプロセッサ12及び各CPU(#1、#2、・・・、#N)13〜15の待機時間41,42,44となる。
最後に残ったデータ処理中のCPU、図示例ではCPU#2_14がデータ処理を停止すると、全てのアプリケーションが停止したことになる(ステップS36)。最後にデータ処理を停止した例えばCPU#2_14については、待機時間は発生しない。コプロセッサ12及び各CPU(#1、・・・、#N)13,15の待機時間41,42,44において、無駄な電力が消費される。
なお、図10に示す動作は、分散メモリ型の電子計算機において、コプロセッサ12と全てのCPU(#1、#2、・・・、#N)13〜15との間に親子関係がなく、相互にメッセージのやりとりができる場合も同様である。従って、実施例3において以下の説明には、相互にメッセージのやりとりが可能な分散メモリ型の電子計算機の例も含む。
・各CPUの待機時間の推定方法の説明
各CPUの待機時間は、各タスクに割り当てられるタイムスライスをどのように仮定するかによって、例えば次の3つの方法で推定することができる。
・第1番目の推定方法
まず、全CPU(#1、#2、・・・、#N)13〜15において実行中のソフトウェアの負荷量が等しいと仮定し、そのため全てのタスクに割り当てられるタイムスライスが等しくTであると仮定する。
この場合、各CPU(#1、#2、・・・、#N)13〜15が停止するまでの時間Xkを確率変数とみなすと、Xkはそれぞれ独立に[0,T]の一様分布に従う。つまり、Xkは等しい確率で0〜Tの間の数値をとり、XiとXj(ただし、i≠j)の間には依存関係がない。確率変数Xが定数x以下となる確率をP(X<x)とすると、互いに独立であるX及びYについて、定理より、次の(21)式が成り立つ。
Figure 2013073013
最も遅いタイミングで停止するCPUの停止までの時間Xkが定数x以下となる確率は、xの範囲に応じて次の(22)式〜(24)式で表される。
Figure 2013073013
Figure 2013073013
Figure 2013073013
Xの確率分布はP(X<x)の微分で与えられるので、[max{Xi|i=1,2,...,N}]の確率分布をf(x)とすると、上記(22)式〜(24)式より、次の(25)式が得られる。
Figure 2013073013
ここで、Xの期待値をE(X)と表すと、期待値の定義より、次の(26)式が得られる。
Figure 2013073013
また、期待値の線形性により、次の(27)式が成り立つので、TCPU_kは、次の(28)式で表される。
Figure 2013073013
Figure 2013073013
任意のi∈{1,2,...,N}について、[E(Xi)=T/2]であり、[E(X0)=0]である。従って、上記(26)式及び(28)式より、TCPU_kは、次の(29)式で表される。ただし、コプロセッサ12を0番目のCPUとするので、TCPU_0は、コプロセッサ12の待機時間である。
Figure 2013073013
・第2番目の推定方法
各CPU(#1、#2、・・・、#N)13〜15において、実行中のアプリケーションの負荷量が等しいと仮定し、CPU#kで実行中のアプリケーションのタイムスライスが全てTkであると仮定する。つまり、CPU#1_13で実行中のアプリケーションのタイムスライスは、全てT1であり、CPU#2_14で実行中のアプリケーションのタイムスライスは、全てT2であるとし、T1とT2は等しくなくてもよいとする。
この場合、各CPU(#1、#2、・・・、#N)13〜15が停止するまでの時間Xkを確率変数とみなすと、Xkはそれぞれ独立に[0,Tk]の一様分布に従う。これは、T1<T2<・・・<TNとしても一般性を失わない。
最も遅いタイミングで停止するCPUの停止までの時間Xkが定数x以下となる確率は、T1及びT2に対するxの範囲に応じて次の(30)式〜(32)式で表される。
Figure 2013073013
Figure 2013073013
Figure 2013073013
一般に、Xkが定数x以下となる確率は、Ti及びTi+1に対するxの範囲に応じて次の(33)式及び(34)式で表される。
Figure 2013073013
Figure 2013073013
[max{Xi|i=1,2,...,N}]の確率分布をf(x)とすると、上記(30)式〜(34)式より、次の(35)式が得られる。
Figure 2013073013
ここで、Xの期待値をE(X)と表すと、次の(36)式が得られる。
Figure 2013073013
任意のi∈{1,2,...,N}について、[E(Xi)=Ti/2]であり、[E(X0)=0]である。従って、上記(28)式及び(36)式より、TCPU_kは、次の(37)式で表される。ただし、コプロセッサ12を0番目のCPUとするので、TCPU_0は、コプロセッサ12の待機時間である。
Figure 2013073013
・第3番目の推定方法
CPU#kごとにタイムスライスが異なっていてもよく、さらに各CPU(#1、#2、・・・、#N)13〜15においてタスクごとにタイムスライスが異なっていてもよいと仮定する。CPU#kで実行中のタスクのタイムスライスをT(1)k、・・・、T(m)kとする。mは、2以上の整数であり、kの値によって異なっていてもよい。kは、1〜Nの整数である。
この場合、各CPU(#1、#2、・・・、#N)13〜15が停止するまでの時間Xkを確率変数とみなす。また、Y(i)kが独立に[0,T(i)k]の一様分布に従うとすると、Xkは、次の(38)式で表される。従って、期待値E[Xk]は、次の(39)式で表される。
Figure 2013073013
Figure 2013073013
kを一様分布で近似すると、Xkは[0,Tk]の一様分布に従う。ただし、ここでのTkは、次の(40)式で表される。これは、T1<T2<・・・<TNとしても一般性を失わない。
Figure 2013073013
上述した第2番目の推定方法における式の導出過程と同様にしてTCPU_kを求めると、上記(37)式が得られる。ただし、(37)式において、Tkは、上記(40)式で与えられる。
実施例3において、バスの動作停止時間の推定方法、判別式の導出方法、電力制御方法、及び判別式を用いて繰り返しDVFSの実行を判断することの効果については、実施例2と同様であるので、説明を省略する。
実施例3によれば、共有メモリ型、またはコプロセッサ12を含む全CPU(#1、#2、・・・、#N)13〜15間に親子関係のない例えば分散メモリ型の電子計算機11において、実施例1と同様の効果が得られる。
1 電力制御装置
2 収集部
3 決定部
4 導出部
5 実行部
11 電子計算機
13〜15 処理部
20 バス
37 変更部
この発明は、電力制御装置、電子計算機及び電力制御方法に関する。
従来、複数のプロセッサを有するマルチプロセッサシステムにおいて、できるだけ低い周波数や低い電源電圧を用いてプログラムを実行することで、消費電力を削減する方法(DVFS:Dynamic Voltage and Frequency Scaling)がある。例えば、各プロセッサで実行される各プログラムの性能制約を満たす範囲で、複数のプロセッサの周波数と電源電圧とのうちの少なくとも一方を制御する方法がある(例えば、特許文献1参照)。
特開2008−287592号公報
しかしながら、従来のDVFSでは、プロセッサの周波数や電源電圧を切り替える際、各プロセッサがデータ処理を停止するまでの時間やバスが停止するまでの時間に消費される電力を考慮していない。そのため、DVFSによって低い周波数や低い電源電圧に切り替えたにもかかわらず、切り替え後の消費電力に、これらデータ処理の停止やバスの停止までの時間に消費される電力を加えると、切り替え前の消費電力よりも増えてしまうことがあるという問題点がある。
消費電力を削減することができる電力制御装置、電子計算機及び電力制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、電力制御装置は、収集部、決定部、導出部及び実行部を備えている。収集部は、データ処理を行う処理部の動作に関する情報を収集する。収集部は、データを伝送するバスの動作に関する情報を収集する。決定部は、収集された処理部の動作に関する情報及びバスの動作に関する情報に基づいて処理部の動作周波数及び動作電圧を決定する。導出部は、収集された処理部の動作に関する情報に基づいて処理部が動作を停止するまでの時間を推定する。導出部は、収集されたバスの動作に関する情報に基づいてバスが動作を停止するまでの時間を推定する。導出部は、推定した時間に消費される電力を、決定された動作周波数及び動作電圧に基づいて処理部の動作を切り替えた場合に消費される電力に加えて合計消費電力を算出する。導出部は、算出した合計消費電力と、切り替え前の消費電力との差分を求める判別式を導出する。実行部は、判別式の値に基づいて処理部の動作周波数及び動作電圧の切り替えを実行する。
開示の電力制御装置、電子計算機及び電力制御方法によれば、消費電力を削減することができるという効果を奏する。
図1は、実施例1にかかる電力制御装置の構成を示すブロック図である。 図2は、実施例1にかかる電力制御方法を示すフローチャートである。 図3は、実施例2にかかる電子計算機のハードウェア構成を示すブロック図である。 図4は、実施例2にかかる電子計算機の機能的構成を示すブロック図である。 図5は、実施例2にかかる電子計算機における全CPUのデータ処理停止までの動作を説明する模式図である。 図6は、実施例2にかかる電子計算機における一CPUの停止までの動作を説明する模式図である。 図7は、実施例2にかかる電子計算機におけるバスの停止までの動作を説明する模式図である。 図8は、実施例2にかかる電力制御方法を示すフローチャートである。 図9は、実施例3にかかる電子計算機のハードウェア構成を示すブロック図である。 図10は、実施例3にかかる電子計算機における全CPUのデータ処理停止までの動作を説明する模式図である。
以下に、この発明にかかる電力制御装置、電子計算機及び電力制御方法の実施例を図面に基づいて詳細に説明する。以下の各実施例の説明において、同様の構成には同一の符号を付して重複する説明を省略する。なお、この実施例によりこの発明が限定されるものではない。
(実施例1)
・電力制御装置の説明
図1は、実施例1にかかる電力制御装置の構成を示すブロック図である。図1に示すように、電力制御装置1は、収集部2、決定部3、導出部4及び実行部5を備えている。収集部2、決定部3、導出部4及び実行部5は、例えばプロセッサに、後述する電力制御方法を実現するプログラムを実行させることにより実現されてもよい。
収集部2は、データ処理を行う処理部(図示省略)の動作に関する情報を収集する。例えば、処理部の動作に関する情報は、処理部で実行中のタスクの負荷量の情報を含んでいてもよい。また、収集部2は、データを伝送するバス(図示省略)の動作に関する情報を収集する。例えば、バスの動作に関する情報は、バスがダイレクトメモリアクセスによって動作中であるか否かという情報、及び1回のダイレクトメモリアクセスによって転送されるデータ量の情報を含んでいてもよい。
決定部3は、収集部2により収集された処理部の動作に関する情報及びバスの動作に関する情報に基づいて、切り替え後の処理部の動作周波数及び動作電圧を決定する。
導出部4は、収集部2により収集された処理部の動作に関する情報に基づいて、処理部が動作を停止するまでの時間を推定する。導出部4は、収集部2により収集されたバスの動作に関する情報に基づいて、バスが動作を停止するまでの時間を推定する。導出部4は、決定部3により決定された動作周波数及び動作電圧に基づいて処理部の動作を切り替えた場合に消費される電力に、処理部及びバスの停止までの推定時間に消費される電力を加えて合計消費電力を算出する。導出部4は、算出した合計消費電力と、切り替え前の消費電力との差分を求める判別式を導出する。
実行部5は、判別式の値に基づいて処理部の動作周波数及び動作電圧の切り替えを実行する。例えば、実行部5は、処理部の動作を切り替えた場合に消費される電力に、処理部及びバスの停止までの推定時間に消費される電力を加えた合計消費電力から、切り替え前の消費電力を引いた値が0よりも小さい場合に、切り替えを実行してもよい。
・電力制御方法の説明
図2は、実施例1にかかる電力制御方法を示すフローチャートである。図2に示すように、電力制御装置1において電力制御方法が開始されると、収集部2は、処理部の動作に関する情報及びバスの動作に関する情報を収集する(ステップS1)。次いで、決定部3は、収集部2により収集された処理部の動作に関する情報及びバスの動作に関する情報に基づいて切り替え後の処理部の動作周波数及び動作電圧を決定する(ステップS2)。
次いで、導出部4は、処理部及びバスが動作を停止するまでの時間を推定する。導出部4は、処理部の動作を切り替えた場合に消費される電力に、その動作停止までの推定時間に消費される電力を加えた合計消費電力を求める。そして、導出部4は、その合計消費電力と切り替え前の消費電力との差分を求める判別式を導出する(ステップS3)。
次いで、実行部5は、判別式の値が切り替えの条件を満たす値である場合(ステップS4:Yes)、処理部の動作周波数及び動作電圧を、決定部3により決定された動作周波数及び動作電圧に切り替えることを実行する(ステップS5)。そして、一連の処理を終了する。一方、例えば判別式の値が切り替えの条件を満たさない値である場合(ステップS4:No)、実行部5は、動作周波数及び動作電圧の切り替えを実行しないで一連の処理を終了する。
実施例1によれば、切り替え後の消費電力に、処理部及びバスが停止するまでの推定時間に消費される電力を加えることによって、切り替えによって電力消費量が減るか否かを見積もることができる。従って、切り替え後の消費電力に、処理部及びバスが停止するまでの推定時間に消費される電力を加えた合計消費電力が切り替え前の消費電力よりも多くなる場合に切り替えを実行しないようにすることによって、切り替えによって消費電力が増えてしまうのを防ぐことができる。そして、合計消費電力が切り替え前の消費電力よりも少なくなる場合に切り替えを実行することによって、消費電力を削減することができる。
(実施例2)
実施例2は、実施例1にかかる電力制御装置を電子計算機のDVFSを制御する装置に適用した例である。電子計算機の一例として、例えばパーソナルコンピュータやワークステーションなどのコンピュータ、またはPDA(Personal Digital Assistants)などの携帯情報端末が挙げられる。また、一例として、携帯電話機、携帯電話機と携帯情報端末としての機能を併せ持ついわゆるスマートフォンと呼ばれる携帯端末、種々の測定器、または種々の電子装置の組み込みシステムなどが挙げられる。
・電子計算機のハードウェア構成の説明
図3は、実施例2にかかる電子計算機のハードウェア構成を示すブロック図である。図3に示すように、電子計算機11は、コプロセッサ12、及び処理部の一例として例えばN個のCPU(Central Processing Unit、中央処理装置)(#1、#2、・・・、#N)13〜15を備えている。Nは、2以上の整数である。図3には、3個以上のCPUが示されているが、CPUの数は2個でもよい。
コプロセッサ12は、CPU(#1、#2、・・・、#N)13〜15に対してDVFSを制御する。例えばコプロセッサ12は、DVFSによって各CPU(#1、#2、・・・、#N)13〜15の動作周波数や動作電圧を切り替える際、各CPU(#1、#2、・・・、#N)13〜15に対してデータ処理の停止命令を発行する。また、例えばコプロセッサ12は、DVFSによって各CPU(#1、#2、・・・、#N)13〜15の動作周波数や動作電圧を切り替える際、バス20に対して動作の停止命令を発行する。
CPU(#1、#2、・・・、#N)13〜15は、それぞれに割り当てられたタスクを並列処理する。タスクの割り当ては、何れかのCPUでOS(Operating System、オペレーティングシステム)が実行されることにより実現されるスケジューラによって行われてもよい。ここでは、CPU#1_13がOSを実行するとして説明する。CPU(#1、#2、・・・、#N)13〜15は、マルチプロセッサシステムの個々のマイクロプロセッサであってもよいし、マルチコアプロセッサの個々のコアであってもよい。
電子計算機11は、分散メモリ型の計算機であり、例えばコプロセッサ12、CPU#1_13、CPU#2_14、・・・及びCPU#N_15のそれぞれに独立してメモリ16〜19が接続されていてもよい。メモリ16〜19は、それぞれコプロセッサ12及びCPU(#1、#2、・・・、#N)13〜15により作業領域として使用される。メモリ16〜19の一例として、例えばRAM(Random Access Memory、ランダムアクセスメモリ)が挙げられる。
コプロセッサ12、各CPU(#1、#2、・・・、#N)13〜15及び各メモリ16〜19は、バス20に接続されている。バス20には、バスアービタ21、ペリフェラル(周辺装置)22及びDMAC(Direct Memory Access Controller、ダイレクトメモリアクセスコントローラ)23が接続されている。バス20は、バス20に接続された各構成部12〜19,21〜23の間でデータを伝送する。
ペリフェラル22は、例えばキーボードやキーパッドやタッチパネルやマウスやマイクなどの入力装置、及びディスプレイやプリンタやスピーカや振動用のモータなどの出力装置、種々のメモリカードなどの外部記憶装置であってもよい。DMAC23は、メモリ16〜19とペリフェラル22との間のダイレクトメモリアクセスを制御する。バスアービタ21は、バスマスタである各CPU(#1、#2、・・・、#N)13〜15とDMAC23との間でバス20の使用権を調停する。
・電子計算機の機能的構成の説明
図4は、実施例2にかかる電子計算機の機能的構成を示すブロック図である。図4に示すように、電子計算機11において、電力制御装置1は、ハードウェアであるコプロセッサ12で、ソフトウェアである特権プログラム31が実行されることにより実現される。特権プログラム31の実行により、収集部2、決定部3、導出部4及び実行部5が実現される。
収集部2からの依頼により収集された情報は、直接、決定部3へ送られてもよいし、一旦収集部2へ送られ、収集部2から決定部3へ送られてもよい。ここでは、収集された情報が直接、決定部3へ送られるとして説明する。収集部2は、周波数電圧用収集部32及び消費電力量用収集部33を有する。
周波数電圧用収集部32は、CPU#1_13で実行されているOS38に対して、各CPU(#1、#2、・・・、#N)13〜15の動作に関する情報を依頼する。OS38は、周波数電圧用収集部32からの依頼に応答して、決定部3に各CPU(#1、#2、・・・、#N)13〜15の動作に関する情報を提供する。
各CPU(#1、#2、・・・、#N)13〜15の動作に関する情報の一例として、例えば各CPU(#1、#2、・・・、#N)13〜15においてタスクを完了させるために与えられた残り時間であるデッドライン時間や、実行されるタスクの最長実行時間の情報が挙げられる。タスクの最長実行時間は、タスクごとに例えばシミュレーションによって予め求められていてもよい。
消費電力量用収集部33は、OS38に対して、各CPU(#1、#2、・・・、#N)13〜15の動作に関する情報を依頼するとともに、バスアービタ21及びDMAC23に対して、バス20の動作に関する情報を依頼する。消費電力量用収集部33からの依頼に応答して、OS38は、決定部3に各CPU(#1、#2、・・・、#N)13〜15の動作に関する情報を提供する。消費電力量用収集部33からの依頼に応答して、バスアービタ21及びDMAC23は、決定部3にバス20の動作に関する情報を提供する。
各CPU(#1、#2、・・・、#N)13〜15の動作に関する情報の一例として、例えば各CPU(#1、#2、・・・、#N)13〜15において実行中のタスクが終了するまでの平均実行時間の情報や、実行中のタスクの負荷量の情報が挙げられる。バス20の動作に関する情報の一例として、ダイレクトメモリアクセスの実行中であるか否かという情報や、1回あたりのダイレクトメモリアクセスでバス20が占領される時間の情報が挙げられる。ダイレクトメモリアクセスの実行中であるか否かという情報は、例えばバスアービタ21から得られる。バス20の占領時間の情報は、例えばDMAC23から得られる。なお、各CPU(#1、#2、・・・、#N)13〜15やバス20の動作に関する情報がOS38に記録されている場合には、周波数電圧用収集部32及び消費電力量用収集部33は、OS38からそれらの情報を取得することができる。
決定部3は、例えば各CPU(#1、#2、・・・、#N)13〜15のデッドライン時間やタスクの最長実行時間の情報に基づいて、DVFSによって切り替えられた後の各CPU(#1、#2、・・・、#N)13〜15の動作周波数及び動作電圧を決定する。決定部3によって、各CPU(#1、#2、・・・、#N)13〜15について、デッドライン時間を守る範囲で例えば低い動作周波数及び低い動作電圧が決定される。例えばCMOS(Complementary Metal Oxide Semiconductor)回路の場合、動作周波数に動作電圧の2乗を掛け合わせたものに消費電力が比例するので、動作周波数及び動作電圧が低くなれば消費電力が減る可能性がある。
導出部4は、全CPU停止時間推定部34、バス停止時間推定部35及び判別式構成部36を有する。
全CPU停止時間推定部34は、コプロセッサ12がデータ処理の停止命令を発行してから、全てのCPU(#1、#2、・・・、#N)13〜15でデータ処理が停止するまでに、各CPU(#1、#2、・・・、#N)13〜15で生じる待機時間を推定する。各CPU(#1、#2、・・・、#N)13〜15の待機時間の推定方法については後述する。
バス停止時間推定部35は、コプロセッサ12がバス20の動作の停止命令を発行してから、バス20が動作を停止するまでに要する時間を推定する。バス20の動作停止時間の推定方法については後述する。
判別式構成部36は、DVFSを実行した場合の消費電力量の推定値と、DVFSを実行しない場合の消費電力量の推定値とを求める。判別式構成部36は、求めた消費電力量の推定値に基づいて、DVFSを実行するか否かを判別する判別式を導出し、値を求める。判別式の導出方法については後述する。
実行部5は、判別式の値に基づいて、DVFSを実行するか否かを決定する。例えば、実行部5は、DVFSを実行した場合の消費電力量の推定値が、DVFSを実行しない場合の消費電力量の推定値よりも小さい場合に、DVFSを実行する。例えば、実行部5は、DVFSを実行した場合の消費電力量の推定値が、DVFSを実行しない場合の消費電力量の推定値よりも大きい場合には、DVFSを実行しない。DVFSを実行する場合、実行部5は、各CPU(#1、#2、・・・、#N)13〜15でのデータ処理を停止させるための停止命令及びバス20の動作を停止させるための停止命令を発行する。
コプロセッサ12は、変更部37を備えている。変更部37は、実行部5がDVFSを実行すると決めた場合に、各CPU(#1、#2、・・・、#N)13〜15の動作周波数及び動作電圧を、決定部3により決定された動作周波数及び動作電圧に変更する。図4には、変更部37がCPU#1_13の動作周波数及び動作電圧を変更するように示されているが、変更部37は、図示省略した各CPU(#2、・・・、#N)14,15の動作周波数及び動作電圧も変更する。
・全CPUのデータ処理が停止するまでの動作の説明
図5は、実施例2にかかる電子計算機における全CPUのデータ処理停止までの動作を説明する模式図である。図5に示すように、実施例2のアーキテクチャでは、コプロセッサ12、CPU#1_13、CPU#2_14、・・・、及びCPU#N_15間に親子関係があるとする。そして、親に当たるプロセッサと子に当たるプロセッサとの間でしかメッセージをやり取りすることができないとする。
図示例では、コプロセッサ12は、CPU#1_13に対して親に当たり、CPU#1_13は、コプロセッサ12に対して子に当たるとする。また、図示省略したCPU#[N−1]は、CPU#N_15に対して親に当たり、CPU#N_15は、CPU#[N−1]に対して子に当たるとする。
コプロセッサ12は、DVFSを実行する際、まず、子に当たるCPU#1_13に対してデータ処理の停止命令を発行し、データ処理を停止するように通知する(ステップS11)。そして、コプロセッサ12は、動作を停止する(ステップS12)。動作を停止した後、全てのCPU(#1、#2、・・・、#N)13〜15のデータ処理が停止するまでの時間が、コプロセッサ12の待機時間41となる。
CPU#1_13は、コプロセッサ12からデータ処理停止の通知を受け取ると、子に当たるCPU#2_14に対してデータ処理を停止するように通知する(ステップS13)。そして、CPU#1_13は、データ処理を停止する(ステップS14)。データ処理を停止した後、残りのデータ処理中のCPU(#2、・・・、#N)14,15のデータ処理が停止するまでの時間が、CPU#1_13の待機時間42となる。
CPU#2_14は、CPU#1_13からデータ処理停止の通知を受け取ると、子に当たる図示省略したCPU#3に対してデータ処理を停止するように通知する(ステップS15)。そして、CPU#2_14は、データ処理を停止する(ステップS16)。データ処理を停止した後、残りのデータ処理中のCPU(#3、・・・、#N)15のデータ処理が停止するまでの時間が、CPU#2_14の待機時間43となる。
CPU#3以降のCPUについても同様である。最後に残ったデータ処理中のCPU#N_15がデータ処理を停止すると、全てのアプリケーションが停止したことになる(ステップS17)。従って、CPU#N_15については、待機時間は発生しない。コプロセッサ12及び各CPU(#1、#2、・・・、#[N−1])13,14の待機時間41〜43において、無駄な電力が消費される。
・各CPUの待機時間の推定方法の説明
図6は、実施例2にかかる電子計算機における一CPUの停止までの動作を説明する模式図である。CPUがデータ処理を停止するまでの動作は、何れのCPU(#1、#2、・・・、#N)13〜15でも同じであるが、ここでは、CPU#1_13を例にして説明する。
図6に示すように、例えばCPU#1_13がタスク#1、タスク#2及びタスク#3をこの順番で繰り返し実行しているとする。例えば、CPU#1_13は、あるサイクルのタスク#1_51の実行中にCPU停止の割り込みを受けると、割り込みを受けたときに実行中であるタスク#1_51の終了時点で停止する。
タスク#1_51の実行中、CPU#1_13にCPU停止の割り込みが入るタイミングは任意である。従って、CPU#1_13にCPU停止の割り込みが入ってから、CPU#1_13が停止するまでの平均時間は、OS38がタスク#1_51に割り当てた時間、すなわちタイムスライスの1/2の時間であるとみなしてもよい。
また、タスク#1_51の負荷量をS(1)とすると、CPU#1_13にCPU停止の割り込みが入ってから、CPU#1_13が停止するまでの平均時間は、αS(1)と推定することができる。αは比例定数である。
CPU#1_13にCPU停止の割り込みが入るタイミングは任意であるので、CPU#1_13がタスク#2またはタスク#3の実行中にCPU停止の割り込みを受けた場合も、同様である。従って、CPU#1_13がCPU停止の割り込みを受けてから停止するまでの平均時間は、次の(1)式で表される。
Figure 2013073013
ここで、k番目のCPU#kに割り当てられた#1〜#mの各タスクの負荷量をS(1)k、・・・、S(m)kとする。mは、2以上の整数であり、kの値によって異なっていてもよい。kは、1〜Nの整数である。CPU#kにCPU停止の割り込みが入ってからCPU#kのデータ処理が停止するまでの時間Skは、次の(2)式で表される。(2)式において、i及びjは、1〜mの整数である。
Figure 2013073013
従って、k番目のCPU#kについて、データ処理を停止してから全てのアプリケーションが停止するまでの待機時間TCPU_kは、[k+1]番目からN番目までの各CPUがデータ処理を停止するまでの時間を足し合わせたものとなる。これを式で表すと、次の(3)式となる。ただし、便宜上、コプロセッサ12を0番目のCPU、すなわちCPU#0と表すと、(3)式は、コプロセッサ12の待機時間も含めた式となる。つまり、(3)式では、kは0〜Nの整数である。
Figure 2013073013
・バスの動作停止時間の推定方法の説明
図7は、実施例2にかかる電子計算機におけるバスの停止までの動作を説明する模式図である。図7に示すように、DMA実行中52にコプロセッサ12がバス20に対して動作の停止命令を発行すると、バス20は、停止命令が発行されたときのダイレクトメモリアクセスの終了時点で停止する。
DMA実行中52にバス20に対して停止命令が発行されるタイミングは任意である。従って、1回のダイレクトメモリアクセスでバス20が占領される時間をTDMAとすると、DMA実行中52にバス停止命令が発行されてからバス20が停止するまでに要する時間の期待値は、[TDMA/2]である。DMA実行中でないときにバス停止命令が発行されると、バス20は直ちに停止する。バス20に対して停止命令が発行されてからバス20が停止するまでに要する時間をTBUSとすると、TBUSは、次の(4)式で表される。
Figure 2013073013
(4)式において、「その他」には、DMA実行中でない場合が含まれている。ここで、TDMAは、1回のDMAでのデータ転送量に比例する。1回のDMAでのデータ転送量は、次の(5)式で表される。(5)式は、1回のDMAで転送されるデータ転送量の上限とCPUがDMACに依頼したデータ転送量とで、何れか小さい方の値であることを表している。
Figure 2013073013
・判別式の導出方法の説明
DVFS実行前のCPU#0(コプロセッサ12)、CPU#1_13、・・・、CPU#N_15の電力をそれぞれP0_high、P1_high、・・・、PN_highとする。DVFS実行後のCPU#0(コプロセッサ12)、CPU#1_13、・・・、CPU#N_15の電力をそれぞれP0_low、P1_low、・・・、PN_lowとする。
ただし、1以上の整数iに対して、[Pi_high≧Pi_low]を満たすとする。また、コプロセッサ12の電力は一定であるとする。すなわち、iが0である場合、[P0_high=P0_low]であるとする。
・1.DVFSを実行しない場合の消費電力量
DVFS実行前の電力がPi_highであるCPU#iにおいて、Pi_highの電力のままで実行中のタスクが終了するまでの平均時間をTi_highとする。この場合、CPU#iにおいてタスクが終了するまでに全CPUが消費する電力量の合計は、次の(6)式で表されるP1であると推定される。すなわち、DVFSを実行しない場合の全CPU(コプロセッサ12を含む)の消費電力量は、P1であると推定される。
Figure 2013073013
・2.DVFSを実行する場合の消費電力量
CPU#iにおいて、電力をPi_lowに下げてから、実行中のタスクが終了するまでの平均時間をTi_lowとする。この場合、コプロセッサ12がCPUの停止命令を発行してからCPU#iにおいてタスクが終了するまでに全CPUが消費する電力量の合計は、次の(7)式で表されるP2であると推定される。すなわち、DVFSを実行する場合の全CPU(コプロセッサ12を含む)の消費電力量は、P2であると推定される。
Figure 2013073013
上記(7)式の右辺において、第1項目は、全CPUでのタスクの実行に消費される電力量を表している。第2項目は、DVFSを実行する際の準備において全CPUで消費される電力量を表している。第3項目の「Const」は、DVFS自体の消費電力量を表している。第2項目と第3項目とを足した消費電力量は、DVFSを実行する際のオーバーヘッドである。
CPU_iは、コプロセッサ12がCPUの停止命令を発行してからCPU#iが停止するまでの時間である。TBUS'は、全てのCPUが停止してからバス20が停止するまでの時間である。TBUS'は、次の(8)式で表される。すなわち、TBUS'は、TCPU_kのうち最も大きい値をTBUSから引いた値と、0とで、何れか大きい方の値である。TBUS'の値が0となるのは、データ処理中のCPUがある状態でバス20が動作を停止した場合である。
Figure 2013073013
・3.判別式の構成
判別式は、例えば上述したDVFSを実行する場合の消費電力量P2からDVFSを実行しない場合の消費電力量P2を引いた式であってもよい。この場合、判別式の値Dは、次の(9)式で表される。
Figure 2013073013
・4.DVFSを実行するか否かの判断
上述した判別式の値Dが0よりも小さい場合、DVFSを実行した方が実行しない場合よりも消費電力が少なくなると推定されるので、DVFSを実行してもよい。Dが0以上の場合には、DVFSを実行しても消費電力が変わらないか、増えてしまう虞があるので、DVFSを実行しなくてもよい。
・電力制御方法の説明
図8は、実施例2にかかる電力制御方法を示すフローチャートである。図8に示すように、電子計算機11において電力制御方法が開始されると、収集部2は、例えば定期的に、OS38やバスアービタ21やDMAC23に対して、DVFSを実行するか否かを判断する材料となる情報の提供を依頼する。それによって、決定部3に、例えば上述したタスク完了までのデッドライン時間、タスクの最長実行時間、タスク終了までの平均実行時間、各CPU(#1、#2、・・・、#N)13〜15の負荷量及びDMAの実行中か否か、などの情報が収集される(ステップS21)。
次いで、決定部3は、収集された各情報に基づいてDVFSを実行した場合の各CPU(#1、#2、・・・、#N)13〜15の動作周波数及び動作電圧を決定する(ステップS22)。全てのCPU(#1、#2、・・・、#N)13〜15について、決定した動作周波数及び動作電圧の値に変化がない場合、すなわち現在の値と同じである場合(ステップS22:変化なし)、ステップS21に戻る。
決定した動作周波数及び動作電圧の値が現在の値よりも小さいCPUが存在し、かつ現在の値よりも大きいCPUが存在しない場合(ステップS22:小さいものあり、かつ大きいものなし)、導出部4は、判別式を導出してその値Dを算出する(ステップS23)。判別式の値Dが0よりも大きい場合には(ステップS23:D>0)、ステップS21に戻る。
判別式の値Dが0よりも小さい場合には(ステップS23:D<0)、実行部5は、各CPU(#1、#2、・・・、#N)13〜15でのデータ処理を停止させるための停止命令及びバス20の動作を停止させるための停止命令を発行する(ステップS24)。それによって、全てのCPU(#1、#2、・・・、#N)13〜15でのデータ処理が停止し、バス20の動作が停止する。
その後、変更部37は、全CPU(#1、#2、・・・、#N)13〜15及びバス20の停止が完了した通知を受けると、DVFSを実行する(ステップS25)。それによって、各CPU(#1、#2、・・・、#N)13〜15の動作周波数及び動作電圧が、ステップS22で決定された動作周波数及び動作電圧に切り替えられる。その後、実行部5は、各CPU(#1、#2、・・・、#N)13〜15に対して、アプリケーションを再開する命令を発行する(ステップS26)。それによって、各CPU(#1、#2、・・・、#N)13〜15は、データ処理を再開する。そして、ステップS21に戻り、一連の処理を繰り返す。
一方、決定部3が決定した動作周波数及び動作電圧の値が現在の値よりも大きいCPUが存在する場合(ステップS22:大きいものあり)、ステップS23を省略してステップS24へ進む。この場合には、動作周波数及び動作電圧の値が現在の値よりも大きくなってしまったCPUについて、DVFSによって動作周波数及び動作電圧の値が現在の値よりも大きくなるように切り替えられる。これは、現在の動作周波数及び動作電圧でデータ処理を続けたのでは、デッドライン時間を守ることができないため、現在よりも高速でデータ処理を行う必要があるからである。
・DVFSを実行しない方が消費電力を削減できる例
次に、実施例2の効果の一例として、DVFSを実行しない方が実行する場合よりも消費電力を削減することができる例を説明する。簡単のため、図3に示す構成において、電子計算機11は、2個のCPU(#1、#2)13,14を有するとする。
例えば、CPU#1_13でタスク#A及びタスク#Bを実行中であり、CPU#2_14でタスク#C及びタスク#Dを実行中であるとする。また、タスク#A及びタスク#Bのタイムスライスを2msecとし、タスク#C及びタスク#Dのタイムスライスを1msecであるとする。コプロセッサ12の消費電力を10mWとし、CPU#1_13の消費電力を100mWとし、CPU#2_14の消費電力を50mWとする。タスク#A及びタスク#Bが終了するまでの時間を10msecとし、タスク#C及びタスク#Dが終了するまでの時間を5msecとする。
上述した動作状態において、DVFSを実行しない場合の全タスクが終了するまでの消費電力は、次の(10)式で表される。(10)式において、左辺の第1項目は、コプロセッサ12の消費電力を表している。第2項目は、CPU#1_13の消費電力を表している。第3項目は、CPU#2_14の消費電力を表している。
Figure 2013073013
次に、決定部3がCPU#2_14の周波数を半分にし、それに伴って電力を20mWに下げると決定したとする。この場合、CPU#2_14の周波数が半分になったので、タスク#C及びタスク#Dが終了するまでの時間は、上述した5msecの2倍の10msecとなる。従って、DVFSを実行した場合の全タスクが終了するまでの消費電力量は、次の(11)式で表される。(11)式において、左辺の第1項目は、コプロセッサ12の消費電力を表している。第2項目は、CPU#1_13の消費電力を表している。第3項目は、CPU#2_14の消費電力を表している。
Figure 2013073013
(10)式と(11)式とを単純に比較すると、DVFSを実行した方が実行しない場合よりも消費電力量が減っている。しかしながら、DVFSを実行する際には、オーバーヘッドが生じるので、このオーバーヘッドの消費電力量も考慮するのが好ましい。
DVFSを実行する際には、CPU#1_13とCPU#2_14とが停止する。実行部5がCPUの停止命令を発行してからCPU#1_13が停止するまでにかかる平均時間は、OS38が各タスクに割り当てたタイムスライスの1/2であると期待される。CPU#2_14についても同様である。従って、CPUの停止命令の発行からCPU#1_13及びCPU#2_14が停止するまでにかかる時間は、平均で次の(12)式で表される。
Figure 2013073013
(12)式より、ここでの例では、CPUの停止命令の発行からCPU#1_13及びCPU#2_14が停止するまでにかかる時間は、平均で1.5msecである。つまり、コプロセッサ12では、平均で1.5msecの待機時間が発生し、CPU#1_13では、平均で0.5msecの待機時間が発生することになる。これらの待機時間に消費される電力量は、次の(13)式で表される。
Figure 2013073013
従って、DVFSを実行する場合の消費電力量は、上記(11)式の値と(13)式の値とを足し合わせることとなり、次の(14)式で表される。(14)式より、DVFSのオーバーヘッドを考慮してDVFSを実行すると、実行しない場合よりも消費電力量が増えてしまう結果となる。この場合には、DVFSを実行しないのがよい。もちろん、DVFSを実行するとした場合の消費電力量が、DVFSを実行しない場合の消費電力量よりも少なくなれば、DVFSを実行するのがよい。
Figure 2013073013
・判別式を用いて繰り返しDVFSの実行を判断することの効果
上述した判別式では、推定値(期待値)を用いているので、判別式の値が実際の消費電力量の増減を正確に反映しているとは限らない。つまり、判別式の値Dに基づいてDVFSを実行するか否かを判断しても消費電力量が増えてしまう虞がある。しかし、判別式の値Dに基づいてDVFSを実行するか否かを判断する回数が増えるほど、判別式の値Dに基づいてDVFSを実行するか否かを判断しない場合に比べて、消費電力量を減らすことができる。このことが正しいことを以下に説明する。
判別式の値Dに基づいてDVFSを実行するか否かを判断するケースをケース1とし、判別式の値Dに基づいてDVFSを実行するか否かを判断しないケースをケース2とする。ケース1及びケース2のそれぞれについてn回、実施したときの消費電力量を比較し、nが大きいときに、ケース1をn回、実施したときの合計消費電力量からケース2をn回、実施したときの合計消費電力量を引いた値が0よりも小さくなることを示す。nは、正の整数である。
ケース2の消費電力量からケース1の消費電力量を引いた値を確率変数Xiとする。ケース1をn回、実施したときの合計消費電力量からケース2をn回、実施したときの合計消費電力量を引いた値は、次の(15)式で表される。従って、(15)式の値が0よりも小さくなることを示せばよい。(15)式〜(18)式において、iは1〜nの整数である。
Figure 2013073013
Xの期待値をE[X]と表すと、次の(16)式が成り立つ。Xの分散をV[X]と表し、E[Xi]をμiとおき、V[Xi]をσi 2とおくと、μiは0以下である。ここで、ΣXi/n(Σにおいて、iが取り得る値は1〜nである)の平均及び分散を考えると、次の(16)式及び(17)式が成り立つ。
Figure 2013073013
Figure 2013073013
従って、nが大きいとき、次の(18)式が成り立つ。
Figure 2013073013
(18)式より、(15)式の値が0よりも小さくなることが示された。0以上のある数yを設定して(18)式を変形すると、(19)式が得られる。(19)式をさらに変形すると、(20)式が得られるので、nが大きくなるほど、ケース1とケース2の差が広がっていくことが示された。
Figure 2013073013
Figure 2013073013
実施例2によれば、コプロセッサ12を含む全CPU(#1、#2、・・・、#N)13〜15間に親子関係がある例えば分散メモリ型の電子計算機11において、実施例1と同様の効果が得られる。
(実施例3)
・電力制御装置のハードウェアの説明
図9は、実施例3にかかる電子計算機のハードウェア構成を示すブロック図である。図9に示すように、実施例3にかかる電子計算機11は、共有メモリ型の計算機であり、バス20に接続された共有メモリ24を有している。電子計算機11のその他のハードウェア構成及び機能的構成は、実施例2と同様であるので、説明を省略する。
図10は、実施例3にかかる電子計算機における全CPUのデータ処理停止までの動作を説明する模式図である。図10に示すように、実施例3のアーキテクチャでは、コプロセッサ12、CPU#1_13、CPU#2_14、・・・、及びCPU#N_15間に親子関係がない。コプロセッサ12及び各CPU(#1、#2、・・・、#N)13〜15は、共有メモリ24を介して相互にメッセージのやりとりを行うことができる。
コプロセッサ12は、DVFSを実行する際、全CPU(#1、#2、・・・、#N)13〜15に対してデータ処理の停止命令を発行し、データ処理を停止するように通知する(ステップS31)。そして、コプロセッサ12は、動作を停止する(ステップS32)。
各CPU(#1、#2、・・・、#N)13〜15は、コプロセッサ12からデータ処理停止の通知を受け取ると、それぞれデータ処理を停止する(ステップS33〜ステップS35)。各CPU(#1、#2、・・・、#N)13〜15がデータ処理を停止した後、残りのデータ処理中のCPUのデータ処理が停止するまでの時間が、コプロセッサ12及び各CPU(#1、#2、・・・、#N)13〜15の待機時間41,42,44となる。
最後に残ったデータ処理中のCPU、図示例ではCPU#2_14がデータ処理を停止すると、全てのアプリケーションが停止したことになる(ステップS36)。最後にデータ処理を停止した例えばCPU#2_14については、待機時間は発生しない。コプロセッサ12及び各CPU(#1、・・・、#N)13,15の待機時間41,42,44において、無駄な電力が消費される。
なお、図10に示す動作は、分散メモリ型の電子計算機において、コプロセッサ12と全てのCPU(#1、#2、・・・、#N)13〜15との間に親子関係がなく、相互にメッセージのやりとりができる場合も同様である。従って、実施例3において以下の説明には、相互にメッセージのやりとりが可能な分散メモリ型の電子計算機の例も含む。
・各CPUの待機時間の推定方法の説明
各CPUの待機時間は、各タスクに割り当てられるタイムスライスをどのように仮定するかによって、例えば次の3つの方法で推定することができる。
・第1番目の推定方法
まず、全CPU(#1、#2、・・・、#N)13〜15において実行中のソフトウェアの負荷量が等しいと仮定し、そのため全てのタスクに割り当てられるタイムスライスが等しくTであると仮定する。
この場合、各CPU(#1、#2、・・・、#N)13〜15が停止するまでの時間Xkを確率変数とみなすと、Xkはそれぞれ独立に[0,T]の一様分布に従う。つまり、Xkは等しい確率で0〜Tの間の数値をとり、XiとXj(ただし、i≠j)の間には依存関係がない。確率変数Xが定数x以下となる確率をP(X<x)とすると、互いに独立であるX及びYについて、定理より、次の(21)式が成り立つ。
Figure 2013073013
最も遅いタイミングで停止するCPUの停止までの時間Xkが定数x以下となる確率は、xの範囲に応じて次の(22)式〜(24)式で表される。
Figure 2013073013
Figure 2013073013
Figure 2013073013
Xの確率分布はP(X<x)の微分で与えられるので、[max{Xi|i=1,2,...,N}]の確率分布をf(x)とすると、上記(22)式〜(24)式より、次の(25)式が得られる。
Figure 2013073013
ここで、Xの期待値をE(X)と表すと、期待値の定義より、次の(26)式が得られる。
Figure 2013073013
また、期待値の線形性により、次の(27)式が成り立つので、TCPU_kは、次の(28)式で表される。
Figure 2013073013
Figure 2013073013
任意のi∈{1,2,...,N}について、[E(Xi)=T/2]であり、[E(X0)=0]である。従って、上記(26)式及び(28)式より、TCPU_kは、次の(29)式で表される。ただし、コプロセッサ12を0番目のCPUとするので、TCPU_0は、コプロセッサ12の待機時間である。
Figure 2013073013
・第2番目の推定方法
各CPU(#1、#2、・・・、#N)13〜15において、実行中のアプリケーションの負荷量が等しいと仮定し、CPU#kで実行中のアプリケーションのタイムスライスが全てTkであると仮定する。つまり、CPU#1_13で実行中のアプリケーションのタイムスライスは、全てT1であり、CPU#2_14で実行中のアプリケーションのタイムスライスは、全てT2であるとし、T1とT2は等しくなくてもよいとする。
この場合、各CPU(#1、#2、・・・、#N)13〜15が停止するまでの時間Xkを確率変数とみなすと、Xkはそれぞれ独立に[0,Tk]の一様分布に従う。これは、T1<T2<・・・<TNとしても一般性を失わない。
最も遅いタイミングで停止するCPUの停止までの時間Xkが定数x以下となる確率は、T1及びT2に対するxの範囲に応じて次の(30)式〜(32)式で表される。
Figure 2013073013
Figure 2013073013
Figure 2013073013
一般に、Xkが定数x以下となる確率は、Ti及びTi+1に対するxの範囲に応じて次の(33)式及び(34)式で表される。
Figure 2013073013
Figure 2013073013
[max{Xi|i=1,2,...,N}]の確率分布をf(x)とすると、上記(30)式〜(34)式より、次の(35)式が得られる。
Figure 2013073013
ここで、Xの期待値をE(X)と表すと、次の(36)式が得られる。
Figure 2013073013
任意のi∈{1,2,...,N}について、[E(Xi)=Ti/2]であり、[E(X0)=0]である。従って、上記(28)式及び(36)式より、TCPU_kは、次の(37)式で表される。ただし、コプロセッサ12を0番目のCPUとするので、TCPU_0は、コプロセッサ12の待機時間である。
Figure 2013073013
・第3番目の推定方法
CPU#kごとにタイムスライスが異なっていてもよく、さらに各CPU(#1、#2、・・・、#N)13〜15においてタスクごとにタイムスライスが異なっていてもよいと仮定する。CPU#kで実行中のタスクのタイムスライスをT(1)k、・・・、T(m)kとする。mは、2以上の整数であり、kの値によって異なっていてもよい。kは、1〜Nの整数である。
この場合、各CPU(#1、#2、・・・、#N)13〜15が停止するまでの時間Xkを確率変数とみなす。また、Y(i)kが独立に[0,T(i)k]の一様分布に従うとすると、Xkは、次の(38)式で表される。従って、期待値E[Xk]は、次の(39)式で表される。
Figure 2013073013
Figure 2013073013
kを一様分布で近似すると、Xkは[0,Tk]の一様分布に従う。ただし、ここでのTkは、次の(40)式で表される。これは、T1<T2<・・・<TNとしても一般性を失わない。
Figure 2013073013
上述した第2番目の推定方法における式の導出過程と同様にしてTCPU_kを求めると、上記(37)式が得られる。ただし、(37)式において、Tkは、上記(40)式で与えられる。
実施例3において、バスの動作停止時間の推定方法、判別式の導出方法、電力制御方法、及び判別式を用いて繰り返しDVFSの実行を判断することの効果については、実施例2と同様であるので、説明を省略する。
実施例3によれば、共有メモリ型、またはコプロセッサ12を含む全CPU(#1、#2、・・・、#N)13〜15間に親子関係のない例えば分散メモリ型の電子計算機11において、実施例1と同様の効果が得られる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)データ処理を行う処理部の動作に関する情報、及びデータを伝送するバスの動作に関する情報を収集する収集部と、
前記処理部の動作に関する情報及び前記バスの動作に関する情報に基づいて前記処理部の動作周波数及び動作電圧を決定する決定部と、
前記処理部の動作に関する情報及び前記バスの動作に関する情報に基づいて前記処理部が動作を停止するまでの時間及び前記バスが動作を停止するまでの時間を推定して、該推定時間に消費される電力を、前記決定に基づいて前記処理部の動作を切り替えた場合に消費される電力に加えた合計消費電力と、切り替え前の消費電力との差分を求める判別式を導出する導出部と、
前記判別式の値に基づいて前記処理部の動作周波数及び動作電圧の切り替えを実行する実行部と、
を備えることを特徴とする電力制御装置。
(付記2)前記処理部の動作に関する情報は、前記処理部で実行中のタスクの負荷量の情報を含み、
前記導出部は、前記負荷量情報に基づいて前記処理部が動作を停止するまでの時間を推定することを特徴とする付記1に記載の電力制御装置。
(付記3)前記バスの動作に関する情報は、前記バスがダイレクトメモリアクセスによって動作中であるか否かという情報、及び1回のダイレクトメモリアクセスによって転送されるデータ量の情報を含み、
前記導出部は、前記動作中情報及び前記データ量情報に基づいて前記バスが動作を停止するまでの時間を推定することを特徴とする付記1または2に記載の電力制御装置。
(付記4)前記処理部の動作周波数及び動作電圧を変更する変更部、をさらに備え、
前記実行部は、前記判別式の値が0よりも小さい場合に前記切り替えを実行し、
前記変更部は、前記切り替えを実行する場合に、前記決定部により決定された動作周波数または動作電圧に変更することを特徴とする付記1乃至付記3の何れか一の付記に記載の電力制御装置。
(付記5)前記収集部は、複数の前記処理部のそれぞれについて動作に関する情報を収集し、
前記決定部は、全ての前記処理部のそれぞれについて動作周波数及び動作電圧を決定し、
前記導出部は、全ての前記処理部のそれぞれについて動作停止までの時間を推定して、全ての前記処理部のそれぞれについて前記推定時間に消費される電力を求めて前記合計消費電力として足し合わせ、
前記実行部は、切り替え後の動作周波数及び動作電圧が切り替え前の動作周波数及び動作電圧よりも低くなる処理部があり、かつ残りの処理部について切り替え後の動作周波数及び動作電圧が切り替え前の動作周波数及び動作電圧に等しいかまたは低くなる場合に、前記切り替えを実行することを特徴とする付記1乃至付記4の何れか一の付記に記載の電力制御装置。
(付記6)データ処理を行う処理部と、
データを伝送するバスと、
前記処理部の動作に関する情報及び前記バスの動作に関する情報を収集する収集部と、
前記処理部の動作に関する情報及び前記バスの動作に関する情報に基づいて前記処理部の動作周波数及び動作電圧を決定する決定部と、
前記処理部の動作に関する情報及び前記バスの動作に関する情報に基づいて前記処理部が動作を停止するまでの時間及び前記バスが動作を停止するまでの時間を推定して、該推定時間に消費される電力を、前記決定に基づいて前記処理部の動作を切り替えた場合に消費される電力に加えた合計消費電力と、切り替え前の消費電力との差分を求める判別式を導出する導出部と、
前記判別式の値に基づいて前記処理部の動作周波数及び動作電圧の切り替えを実行する実行部と、
を備えることを特徴とする電子計算機。
(付記7)前記処理部の動作に関する情報は、前記処理部で実行中のタスクの負荷量の情報を含み、
前記導出部は、前記負荷量情報に基づいて前記処理部が動作を停止するまでの時間を推定することを特徴とする付記6に記載の電子計算機。
(付記8)前記バスの動作に関する情報は、前記バスがダイレクトメモリアクセスによって動作中であるか否かという情報、及び1回のダイレクトメモリアクセスによって転送されるデータ量の情報を含み、
前記導出部は、前記動作中情報及び前記データ量情報に基づいて前記バスが動作を停止するまでの時間を推定することを特徴とする付記6または7に記載の電子計算機。
(付記9)前記処理部の動作周波数及び動作電圧を変更する変更部、をさらに備え、
前記実行部は、前記判別式の値が0よりも小さい場合に前記切り替えを実行し、
前記変更部は、前記切り替えを実行する場合に、前記決定部により決定された動作周波数または動作電圧に変更することを特徴とする付記6乃至付記8の何れか一の付記に記載の電子計算機。
(付記10)前記収集部は、複数の前記処理部のそれぞれについて動作に関する情報を収集し、
前記決定部は、全ての前記処理部のそれぞれについて動作周波数及び動作電圧を決定し、
前記導出部は、全ての前記処理部のそれぞれについて動作停止までの時間を推定して、全ての前記処理部のそれぞれについて前記推定時間に消費される電力を求めて前記合計消費電力として足し合わせ、
前記実行部は、切り替え後の動作周波数及び動作電圧が切り替え前の動作周波数及び動作電圧よりも低くなる処理部があり、かつ残りの処理部について切り替え後の動作周波数及び動作電圧が切り替え前の動作周波数及び動作電圧に等しいかまたは低くなる場合に、前記切り替えを実行することを特徴とする付記6乃至付記9の何れか一の付記に記載の電子計算機。
(付記11)データ処理を行う処理部の動作に関する情報、及びデータを伝送するバスの動作に関する情報を収集し、
前記処理部の動作に関する情報及び前記バスの動作に関する情報に基づいて前記処理部の動作周波数及び動作電圧を決定し、
前記処理部の動作に関する情報及び前記バスの動作に関する情報に基づいて前記処理部が動作を停止するまでの時間及び前記バスが動作を停止するまでの時間を推定して、該推定時間に消費される電力を、前記決定に基づいて前記処理部の動作を切り替えた場合に消費される電力に加えた合計消費電力と、切り替え前の消費電力との差分を求める判別式を導出し、
前記判別式の値に基づいて前記処理部の動作周波数及び動作電圧の切り替えを実行することを特徴とする電力制御方法。
(付記12)前記処理部の動作に関する情報は、前記処理部で実行中のタスクの負荷量の情報を含み、
前記負荷量情報に基づいて前記処理部が動作を停止するまでの時間を推定することを特徴とする付記11に記載の電力制御方法。
(付記13)前記バスの動作に関する情報は、前記バスがダイレクトメモリアクセスによって動作中であるか否かという情報、及び1回のダイレクトメモリアクセスによって転送されるデータ量の情報を含み、
前記動作中情報及び前記データ量情報に基づいて前記バスが動作を停止するまでの時間を推定することを特徴とする付記11または12に記載の電力制御方法。
(付記14)前記判別式の値が0よりも小さい場合に前記切り替えを実行し、
前記切り替えを実行する場合に、前記処理部の動作周波数または動作電圧を、前記決定された動作周波数または動作電圧に変更することを特徴とする付記11乃至付記13の何れか一の付記に記載の電力制御方法。
(付記15)複数の前記処理部のそれぞれについて動作に関する情報を収集し、
全ての前記処理部のそれぞれについて動作周波数及び動作電圧を決定し、
全ての前記処理部のそれぞれについて動作停止までの時間を推定して、全ての前記処理部のそれぞれについて前記推定時間に消費される電力を求めて前記合計消費電力として足し合わせ、
切り替え後の動作周波数及び動作電圧が切り替え前の動作周波数及び動作電圧よりも低くなる処理部があり、かつ残りの処理部について切り替え後の動作周波数及び動作電圧が切り替え前の動作周波数及び動作電圧に等しいかまたは低くなる場合に、前記切り替えを実行することを特徴とする付記11乃至付記14の何れか一の付記に記載の電力制御方法。
1 電力制御装置
2 収集部
3 決定部
4 導出部
5 実行部
11 電子計算機
13〜15 処理部
20 バス
37 変更部

Claims (15)

  1. データ処理を行う処理部の動作に関する情報、及びデータを伝送するバスの動作に関する情報を収集する収集部と、
    前記処理部の動作に関する情報及び前記バスの動作に関する情報に基づいて前記処理部の動作周波数及び動作電圧を決定する決定部と、
    前記処理部の動作に関する情報及び前記バスの動作に関する情報に基づいて前記処理部が動作を停止するまでの時間及び前記バスが動作を停止するまでの時間を推定して、該推定時間に消費される電力を、前記決定に基づいて前記処理部の動作を切り替えた場合に消費される電力に加えた合計消費電力と、切り替え前の消費電力との差分を求める判別式を導出する導出部と、
    前記判別式の値に基づいて前記処理部の動作周波数及び動作電圧の切り替えを実行する実行部と、
    を備えることを特徴とする電力制御装置。
  2. 前記処理部の動作に関する情報は、前記処理部で実行中のタスクの負荷量の情報を含み、
    前記導出部は、前記負荷量情報に基づいて前記処理部が動作を停止するまでの時間を推定することを特徴とする請求項1に記載の電力制御装置。
  3. 前記バスの動作に関する情報は、前記バスがダイレクトメモリアクセスによって動作中であるか否かという情報、及び1回のダイレクトメモリアクセスによって転送されるデータ量の情報を含み、
    前記導出部は、前記動作中情報及び前記データ量情報に基づいて前記バスが動作を停止するまでの時間を推定することを特徴とする請求項1または2に記載の電力制御装置。
  4. 前記処理部の動作周波数及び動作電圧を変更する変更部、をさらに備え、
    前記実行部は、前記判別式の値が0よりも小さい場合に前記切り替えを実行し、
    前記変更部は、前記切り替えを実行する場合に、前記決定部により決定された動作周波数または動作電圧に変更することを特徴とする請求項1乃至請求項3の何れか一の請求項に記載の電力制御装置。
  5. 前記収集部は、複数の前記処理部のそれぞれについて動作に関する情報を収集し、
    前記決定部は、全ての前記処理部のそれぞれについて動作周波数及び動作電圧を決定し、
    前記導出部は、全ての前記処理部のそれぞれについて動作停止までの時間を推定して、全ての前記処理部のそれぞれについて前記推定時間に消費される電力を求めて前記合計消費電力として足し合わせ、
    前記実行部は、切り替え後の動作周波数及び動作電圧が切り替え前の動作周波数及び動作電圧よりも低くなる処理部があり、かつ残りの処理部について切り替え後の動作周波数及び動作電圧が切り替え前の動作周波数及び動作電圧に等しいかまたは低くなる場合に、前記切り替えを実行することを特徴とする請求項1乃至請求項4の何れか一の請求項に記載の電力制御装置。
  6. データ処理を行う処理部と、
    データを伝送するバスと、
    前記処理部の動作に関する情報及び前記バスの動作に関する情報を収集する収集部と、
    前記処理部の動作に関する情報及び前記バスの動作に関する情報に基づいて前記処理部の動作周波数及び動作電圧を決定する決定部と、
    前記処理部の動作に関する情報及び前記バスの動作に関する情報に基づいて前記処理部が動作を停止するまでの時間及び前記バスが動作を停止するまでの時間を推定して、該推定時間に消費される電力を、前記決定に基づいて前記処理部の動作を切り替えた場合に消費される電力に加えた合計消費電力と、切り替え前の消費電力との差分を求める判別式を導出する導出部と、
    前記判別式の値に基づいて前記処理部の動作周波数及び動作電圧の切り替えを実行する実行部と、
    を備えることを特徴とする電子計算機。
  7. 前記処理部の動作に関する情報は、前記処理部で実行中のタスクの負荷量の情報を含み、
    前記導出部は、前記負荷量情報に基づいて前記処理部が動作を停止するまでの時間を推定することを特徴とする請求項6に記載の電子計算機。
  8. 前記バスの動作に関する情報は、前記バスがダイレクトメモリアクセスによって動作中であるか否かという情報、及び1回のダイレクトメモリアクセスによって転送されるデータ量の情報を含み、
    前記導出部は、前記動作中情報及び前記データ量情報に基づいて前記バスが動作を停止するまでの時間を推定することを特徴とする請求項6または7に記載の電子計算機。
  9. 前記処理部の動作周波数及び動作電圧を変更する変更部、をさらに備え、
    前記実行部は、前記判別式の値が0よりも小さい場合に前記切り替えを実行し、
    前記変更部は、前記切り替えを実行する場合に、前記決定部により決定された動作周波数または動作電圧に変更することを特徴とする請求項6乃至請求項8の何れか一の請求項に記載の電子計算機。
  10. 前記収集部は、複数の前記処理部のそれぞれについて動作に関する情報を収集し、
    前記決定部は、全ての前記処理部のそれぞれについて動作周波数及び動作電圧を決定し、
    前記導出部は、全ての前記処理部のそれぞれについて動作停止までの時間を推定して、全ての前記処理部のそれぞれについて前記推定時間に消費される電力を求めて前記合計消費電力として足し合わせ、
    前記実行部は、切り替え後の動作周波数及び動作電圧が切り替え前の動作周波数及び動作電圧よりも低くなる処理部があり、かつ残りの処理部について切り替え後の動作周波数及び動作電圧が切り替え前の動作周波数及び動作電圧に等しいかまたは低くなる場合に、前記切り替えを実行することを特徴とする請求項6乃至請求項9の何れか一の請求項に記載の電子計算機。
  11. データ処理を行う処理部の動作に関する情報、及びデータを伝送するバスの動作に関する情報を収集し、
    前記処理部の動作に関する情報及び前記バスの動作に関する情報に基づいて前記処理部の動作周波数及び動作電圧を決定し、
    前記処理部の動作に関する情報及び前記バスの動作に関する情報に基づいて前記処理部が動作を停止するまでの時間及び前記バスが動作を停止するまでの時間を推定して、該推定時間に消費される電力を、前記決定に基づいて前記処理部の動作を切り替えた場合に消費される電力に加えた合計消費電力と、切り替え前の消費電力との差分を求める判別式を導出し、
    前記判別式の値に基づいて前記処理部の動作周波数及び動作電圧の切り替えを実行することを特徴とする電力制御方法。
  12. 前記処理部の動作に関する情報は、前記処理部で実行中のタスクの負荷量の情報を含み、
    前記負荷量情報に基づいて前記処理部が動作を停止するまでの時間を推定することを特徴とする請求項11に記載の電力制御方法。
  13. 前記バスの動作に関する情報は、前記バスがダイレクトメモリアクセスによって動作中であるか否かという情報、及び1回のダイレクトメモリアクセスによって転送されるデータ量の情報を含み、
    前記動作中情報及び前記データ量情報に基づいて前記バスが動作を停止するまでの時間を推定することを特徴とする請求項11または12に記載の電力制御方法。
  14. 前記判別式の値が0よりも小さい場合に前記切り替えを実行し、
    前記切り替えを実行する場合に、前記処理部の動作周波数または動作電圧を、前記決定された動作周波数または動作電圧に変更することを特徴とする請求項11乃至請求項13の何れか一の請求項に記載の電力制御方法。
  15. 複数の前記処理部のそれぞれについて動作に関する情報を収集し、
    全ての前記処理部のそれぞれについて動作周波数及び動作電圧を決定し、
    全ての前記処理部のそれぞれについて動作停止までの時間を推定して、全ての前記処理部のそれぞれについて前記推定時間に消費される電力を求めて前記合計消費電力として足し合わせ、
    切り替え後の動作周波数及び動作電圧が切り替え前の動作周波数及び動作電圧よりも低くなる処理部があり、かつ残りの処理部について切り替え後の動作周波数及び動作電圧が切り替え前の動作周波数及び動作電圧に等しいかまたは低くなる場合に、前記切り替えを実行することを特徴とする請求項11乃至請求項14の何れか一の請求項に記載の電力制御方法。
JP2013544025A 2011-11-15 2011-11-15 電力制御装置、電子計算機及び電力制御方法 Expired - Fee Related JP5776789B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/076330 WO2013073013A1 (ja) 2011-11-15 2011-11-15 電力制御装置、電子計算機及び電力制御方法

Publications (2)

Publication Number Publication Date
JPWO2013073013A1 true JPWO2013073013A1 (ja) 2015-04-02
JP5776789B2 JP5776789B2 (ja) 2015-09-09

Family

ID=48429125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013544025A Expired - Fee Related JP5776789B2 (ja) 2011-11-15 2011-11-15 電力制御装置、電子計算機及び電力制御方法

Country Status (3)

Country Link
US (1) US9639905B2 (ja)
JP (1) JP5776789B2 (ja)
WO (1) WO2013073013A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013158135A2 (en) 2012-04-18 2013-10-24 Ney-Li Funding, Llc Selective control for improving switched power supplies
JP2014021786A (ja) * 2012-07-19 2014-02-03 International Business Maschines Corporation コンピュータ・システム
US9710863B2 (en) * 2013-04-19 2017-07-18 Strategic Patent Management, Llc Method and apparatus for optimizing self-power consumption of a controller-based device
JP6175980B2 (ja) 2013-08-23 2017-08-09 富士通株式会社 Cpuの制御方法、制御プログラム、情報処理装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072991A (ja) * 2004-08-05 2006-03-16 Matsushita Electric Ind Co Ltd 省電力処理装置、省電力処理方法、及び省電力処理プログラム
JP2008077640A (ja) * 2006-09-22 2008-04-03 Sony Computer Entertainment Inc マルチプロセッサシステムにおける消費電力削減方法および装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630145A (en) * 1995-05-05 1997-05-13 United Microelectronics Corp. Method and apparatus for reducing power consumption according to bus activity as determined by bus access times
JP2974950B2 (ja) * 1995-10-26 1999-11-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 情報処理システム
US7360106B2 (en) * 2004-08-05 2008-04-15 Matsushita Electric Industrial Co., Ltd. Power-saving processing unit, power-saving processing method and program record medium
JP4353990B2 (ja) 2007-05-18 2009-10-28 株式会社半導体理工学研究センター マルチプロセッサ制御装置
US8442697B2 (en) * 2007-12-18 2013-05-14 Packet Digital Method and apparatus for on-demand power management
KR101740338B1 (ko) * 2010-10-20 2017-05-26 삼성전자주식회사 디지털 시스템에서 동적 클럭 제어 장치 및 방법
US8694811B2 (en) * 2010-10-29 2014-04-08 Texas Instruments Incorporated Power management for digital devices
US9025194B2 (en) * 2010-12-01 2015-05-05 Canon Kabushiki Kaisha Data transmission apparatus for transferring data to an output device for outputting data, printer, information processing apparatus, and control method thereof
US8527994B2 (en) * 2011-02-10 2013-09-03 International Business Machines Corporation Guarded, multi-metric resource control for safe and efficient microprocessor management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072991A (ja) * 2004-08-05 2006-03-16 Matsushita Electric Ind Co Ltd 省電力処理装置、省電力処理方法、及び省電力処理プログラム
JP2008077640A (ja) * 2006-09-22 2008-04-03 Sony Computer Entertainment Inc マルチプロセッサシステムにおける消費電力削減方法および装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015022328; 木村 英明、他3名: '影響の少ないインスツルメント手法と電力最適化のためのプログラム領域分割' 先進的計算基盤システムシンポジウム SACSIS2007 論文集 Vol. 2007, No. 5, 20070523, pp. 3-10, 社団法人情報処理学会 *

Also Published As

Publication number Publication date
JP5776789B2 (ja) 2015-09-09
WO2013073013A1 (ja) 2013-05-23
US9639905B2 (en) 2017-05-02
US20140222229A1 (en) 2014-08-07

Similar Documents

Publication Publication Date Title
Stavrinides et al. An energy-efficient, QoS-aware and cost-effective scheduling approach for real-time workflow applications in cloud computing systems utilizing DVFS and approximate computations
Li et al. Holistic energy and failure aware workload scheduling in Cloud datacenters
JP4413924B2 (ja) マルチコアプロセッサのパフォーマンス改善のための方法、システムおよび装置
JP2002202893A (ja) 多重タスクの実行を制御する方法と処理回路
TW200825704A (en) Dynamic voltage scheduling method, system thereof and record medium
Xu et al. Energy-efficient scheduling with reliability guarantee in embedded real-time systems
JP5776789B2 (ja) 電力制御装置、電子計算機及び電力制御方法
US8892819B2 (en) Multi-core system and external input/output bus control method
JP2007108944A (ja) 半導体集積回路装置
Moulik RESET: A real-time scheduler for energy and temperature aware heterogeneous multi-core systems
TW200809628A (en) Power aware dynamic scheduling in multiprocessor system employing voltage islands
US10539995B2 (en) Performance boosting method and system of semiconductor device
US10275007B2 (en) Performance management for a multiple-CPU platform
Chandio et al. Energy efficient VM scheduling strategies for HPC workloads in cloud data centers
JP2011108045A (ja) 計算機システム、管理サーバ及び電力削減方法
WO2013086054A2 (en) A method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state
US20130298132A1 (en) Multi-core processor system and scheduling method
US20170075589A1 (en) Memory and bus frequency scaling by detecting memory-latency-bound workloads
Taheri et al. Temperature-aware dynamic voltage and frequency scaling enabled MPSoC modeling using stochastic activity networks
US9141429B2 (en) Multicore processor system, computer product, and control method
ul Islam et al. A framework for learning based DVFS technique selection and frequency scaling for multi-core real-time systems
Murugan et al. On the interconnect energy efficiency of high end computing systems
Kiselev et al. An energy-efficient scheduling algorithm for shared facility supercomputer centers
CN102385529B (zh) 多cpu领域移动电子装置与其操作方法
JP2011209846A (ja) マルチプロセッサシステムとそのタスク割り当て方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150330

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150609

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150622

R150 Certificate of patent or registration of utility model

Ref document number: 5776789

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees