(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-22
(45)【発行日】2024-07-30
(54)【発明の名称】電力推定装置および電源制御システム
(51)【国際特許分類】
H02M 3/155 20060101AFI20240723BHJP
H02J 1/00 20060101ALI20240723BHJP
【FI】
H02M3/155 W
H02J1/00 306F
H02J1/00 302
(21)【出願番号】P 2020217034
(22)【出願日】2020-12-25
【審査請求日】2023-11-10
(73)【特許権者】
【識別番号】391022614
【氏名又は名称】学校法人幾徳学園
(74)【代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】河口 進一
【審査官】安食 泰秀
(56)【参考文献】
【文献】特開2016-146158(JP,A)
【文献】特開2007-249974(JP,A)
【文献】特開2010-244202(JP,A)
【文献】特開2002-044941(JP,A)
【文献】特開2009-005467(JP,A)
【文献】米国特許出願公開第2006/0090086(US,A1)
【文献】米国特許出願公開第2004/0236560(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H02M 3/155
H02J 1/00
(57)【特許請求の範囲】
【請求項1】
演算装置が消費する電力を推定する装置であって、
前記演算装置が備える性能計測回路から出力された出力値と、第1のパラメータとを用いて、該出力値の移動平均を計算する移動平均計算手段と、
前記移動平均計算手段の演算結果に第2のパラメータを適用して、前記演算装置が消費する電力の推定値を出力する電力推定手段と、
前記演算装置が消費する電力を計測する計測手段と、
前記性能計測回路から出力された前記出力値と、前記計測手段により計測された前記電力の電力値と、前記電力推定手段により出力された前記電力の推定値と、前記第2のパラメータとに基づき、前記第1のパラメータを更新するために該第1のパラメータを推定する第1のパラメータ推定手段と、
前記移動平均計算手段により計算された前記移動平均の値と、前記計測手段により計測された電力値と、前記電力推定手段により出力された前記電力の推定値とに基づき、前記第2のパラメータを更新するために該第2のパラメータを推定する第2のパラメータ推定手段と
を含む、電力推定装置。
【請求項2】
前記第1のパラメータ推定手段は、
前記第1のパラメータを評価するための評価関数の該第1のパラメータによる微分値を計算する微分値計算手段と、
前記微分値計算手段により計算された前記微分値に応じて、第1のパラメータに一定の値を加算または減算した値を、更新するための前記第1のパラメータの推定値として選択する選択手段と
を含む、請求項1に記載の電力推定装置。
【請求項3】
前記微分値計算手段は、
前記性能計測回路から出力された前記出力値から前記移動平均計算手段が保持する前回計算した移動平均の値を減算する第1の減算手段と、
前記第1の減算手段の減算結果と、前記第1のパラメータとを用い、前記移動平均の値の該第1のパラメータによる微分値を計算する第1の演算手段と、
前記計測手段により計測された前記電力値から前記電力推定手段により出力された前記電力の推定値を減算する第2の減算手段と、
前記第1の演算手段により計算された前記微分値と、前記第2の減算手段の減算結果と、前記第2のパラメータとを用い、第1の差分値を計算する第2の演算手段と、
前回計算した前記評価関数の前記第1のパラメータによる微分値を保持する第1の保持手段と、
前記第1の保持手段が保持する前記微分値から前記第1の差分値を減算する第3の減算手段と
を含む、請求項2に記載の電力推定装置。
【請求項4】
前記第1の保持手段は、リセット信号の入力により、保持する前記微分値をリセットする、請求項3に記載の電力推定装置。
【請求項5】
前記微分値計算手段は、前記第1の減算手段により計算された前記微分値に対し、一定の値を乗算する第1の乗算手段を含む、請求項3に記載の電力推定装置。
【請求項6】
前記第2のパラメータ推定手段は、
前記移動平均計算手段により計算された前記移動平均の値と、前記計測手段により計測された電力値と、前記電力推定手段により出力された前記電力の推定値とを用い、第2の差分値を計算する差分値演算手段と、
前回計算した前記電力の推定値を保持する推定値保持手段と、
前記差分値演算手段の演算結果と、前記推定値保持手段が保持する前記推定値とを加算する加算手段と
を含む、請求項1~5のいずれか1項に記載の電力推定装置。
【請求項7】
前記差分値演算手段は、
前記移動平均計算手段により計算された前記移動平均の値により、行数および列数が定義された行列を更新する第3の演算手段と、
前記移動平均計算手段により計算された前記移動平均の値と、前記第3の演算手段が更新した前記行列とを用い、前記計測手段により計測された電力値から前記電力推定手段により出力された前記電力の推定値を減算した減算値に乗算するための係数を計算する第4の演算手段と、
前記減算値と前記係数とを乗算する第2の乗算手段と
を含む、請求項6に記載の電力推定装置。
【請求項8】
前記差分値演算手段は、
更新された前記行列に対し、一定の値を乗算する第3の乗算手段と、
前記第3の乗算手段の乗算結果を保持する第2の保持手段と
を含む、請求項7に記載の電力推定装置。
【請求項9】
前記第2のパラメータ推定手段は、前記計測手段が前記電力値を計測する周期で前記第2のパラメータを推定する、請求項1~8のいずれか1項に記載の電力推定装置。
【請求項10】
前記第1のパラメータ推定手段は、前記計測手段が前記電力値を計測する周期より長い所定の周期で前記第1のパラメータを推定する、請求項1~9のいずれか1項に記載の電力推定装置。
【請求項11】
請求項1~10のいずれか1項に記載の電力推定装置と、前記電力推定装置から出力された演算装置が消費する電力の推定値に基づき、前記演算装置に電力を供給する電源装置を制御する電源制御装置とを含む、電源制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算装置が消費する電力を推定する電力推定装置および電源制御システムに関する。
【背景技術】
【0002】
PC(Personal Computer)等の一般的な計算機に実装される演算装置(プロセッサ)は、演算時間に比較して待ち時間が長く、低負荷となる時間が多くを占める。ここで、
図1を参照して、プロセッサの電源効率について説明する。ある程度の負荷率までは一定以上の効率であるが、その負荷率より低い低負荷領域に入ると、破線で囲んだ部分に示すように急激に効率が低下する。
図1中、負荷率は、ある期間における平均電力と最大電力の比である。また、効率は、投入した電力に対するプロセッサに供給するために変換した電力の割合である。したがって、実運用では、低負荷となる時間を多く占めるため、全体的に低効率で、電力損失が大きくなっている。
【0003】
プロセッサの電源効率を向上させるため、電源を並列に動作させるマルチフェーズ電源を用い、負荷に応じて効率が最大となるようにフェーズ数を制御する方法が知られている(例えば、特許文献1、2参照)。この方法では、プロセッサの電力負荷を監視するために、プロセッサに電力を供給する電力供給路上に電流センサを挿入し、プロセッサに供給される電流を計測している。
【0004】
しかしながら、プロセッサの電力負荷は、頻繁に変動するため、変動に応じて適切なタイミングでフェーズ数を変更しなければならない。電源制御をデジタル制御で実現する場合、AD(アナログ-デジタル)変換器で出力をデジタル信号に変換する必要があるため、負荷変動に対する応答遅延が生じるという問題もある。
【0005】
これらの問題に鑑み、電流センサを用いることなく、プロセッサがもつ性能カウンタから出力される性能カウンタ情報に基づき、プロセッサの電力負荷を推定し、推定した電力負荷に応じて電源効率改善に最も適するタイミングでフェーズ数を変更させる方法が提案されている(例えば、特許文献3、4参照)。
【0006】
上記の特許文献3に記載の方法では、性能カウンタから出力されるデジタル信号の移動加算平均から電力負荷を推定するため、移動加算平均を求めるための大容量のメモリと高性能なプロセッサが必要となる。一方、特許文献4に記載の方法では、指数移動平均処理と回帰分析により電力負荷を推定するため、このようなメモリやプロセッサが不要で、小規模なハードウェアでの電力推定が可能となっている。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2002-44941号公報
【文献】特開2009-5467号公報
【文献】特開2016-146158号公報
【文献】特願2020-138683号
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記の特許文献4に記載の方法では、指数移動平均処理と回帰分析に必要とされる平滑化係数と回帰係数というパラメータを事前に決定し、装置に設定しなければならない。これらのパラメータは、プロセッサで実行されるソフトウェアプログラムの種別等により最適値が異なる。このため、運用するプログラム毎に適するパラメータを事前に用意し、プログラム毎に切り替えて使用しなければならない。
【0009】
しかしながら、特定用途のプロセッサを除き、一般的なプロセッサでは、どのプログラムで運用するかは分からず、運用する可能性のある全てのプログラムに対する最適値を求めることは現実的に不可能である。取り得る方法として、代表的なプログラムに最適なパラメータを設定し、使用することになるが、これでは別のプログラムを実行した場合に電力推定精度が低下し、電力損失の削減を促進することができないという問題があった。
【課題を解決するための手段】
【0010】
本発明は、上記課題に鑑み、演算装置が消費する電力を推定する装置であって、
演算装置が備える性能計測回路から出力された出力値と、第1のパラメータとを用いて、該出力値の移動平均を計算する移動平均計算手段と、
移動平均計算手段の演算結果に第2のパラメータを適用して、演算装置が消費する電力の推定値を出力する電力推定手段と、
演算装置が消費する電力を計測する計測手段と、
性能計測回路から出力された出力値と、計測手段により計測された電力の電力値と、電力推定手段により出力された電力の推定値と、第2のパラメータとに基づき、第1のパラメータを更新するために該第1のパラメータを推定する第1のパラメータ推定手段と、
移動平均計算手段により計算された移動平均の値と、計測手段により計測された電力値と、電力推定手段により出力された電力の推定値とに基づき、第2のパラメータを更新するために該第2のパラメータを推定する第2のパラメータ推定手段と
を含む、電力推定装置が提供される。
【発明の効果】
【0011】
本発明によれば、電力損失の削減を促進することが可能となる。
【図面の簡単な説明】
【0012】
【
図2】従来の電源制御システムの1つの構成を示した図。
【
図3】従来の電源制御システムの別の構成を示した図。
【
図4】従来の電源制御システムが備える電力推定IIRデジタルフィルタの構成を示した図。
【
図5】従来の電源制御システムに設定するパラメータを決定するためのシステム構成を示した図。
【
図6】従来のパラメータを決定する処理の流れを示したフローチャート。
【
図8】電源制御システムに適用される電力推定装置の構成例を示した図。
【
図9】電力推定装置においてパラメータを決定する処理の流れを示したフローチャート。
【
図10】電力推定装置において第2のパラメータを推定した結果を示した図。
【
図11】電力推定装置において第1のパラメータを推定した結果を示した図。
【
図12】電力推定装置において推定した電力の誤差率の変動を示した図。
【
図13】パラメータの更新の有無により電力の推定値がどの程度改善されるかを示した図。
【発明を実施するための形態】
【0013】
本発明の電源制御システムは、プロセッサに供給する電源を制御するシステムである。プロセッサは、PC等の一般的な計算機のほか、テレビ、複合機、デジタルカメラ、空調機等の多くの電子機器に搭載され、種々の制御等を行っている。
【0014】
例えば、一般的な計算機では、プロセッサが種々のプログラムを実行し、データの転送、演算、加工、制御等を行う。このとき、プロセッサは、データやプログラムのやりとりを行う入出力(I/O)アクセス等により低負荷となる時間が多くを占める。プロセッサの電源効率は、
図1に示したように、低負荷領域で急激に悪化する。これでは、低負荷となる時間が多くを占めることから、多くの時間で効率が悪く、大きな電力損失につながる。
【0015】
また、プロセッサは、演算等を開始すると、負荷が急激に高くなり、負荷が大きく変動する。
【0016】
そこで、負荷が大きく変動する場合においても高い効率を実現するために、電源を並列に動作させるマルチフェーズ電源を用い、負荷に応じて効率が最大となるようにフェーズ数を制御する方法が採用されている。
図2に、マルチフェーズDC-DCコンバータの構成例を示す。マルチフェーズDC-DCコンバータ10は、プロセッサ電源として使用され、プロセッサの動作電圧に変換する装置である。計算機は、コンセントやバッテリから電源供給を受けて動作し、プロセッサは、計算機に供給された電源の電圧より低い電圧で動作するため、マルチフェーズDC-DCコンバータ10によりプロセッサの動作電圧に変換される。
【0017】
図2に示す例では、4つのフェーズを有している。フェーズは、電源を変換する1つの回路を示す。各フェーズは、電源供給路11上の第1のスイッチ12と、電源供給路11と基準電位点(アース)13との間に設けられる第2のスイッチ14と、コイル15とを含む。第1のスイッチ12および第2のスイッチ14は、例えば電界効果トランジスタ(FET)により実現される。FETは、ゲート(G)、ドレイン(D)、ソース(S)の3つの端子を有し、ゲートにかかる電圧によりソース-ドレイン間の電流を制御する回路である。マルチフェーズDC-DCコンバータ10の第1のスイッチ12および第2のスイッチ14は、電源制御回路16のパルス幅変調(PWM)制御によりオンとオフを繰り返し切り替え、出力する電力を制御する。
【0018】
電源制御回路16は、PWM制御を行うため、基準となる参照電圧と、実際にプロセッサ17に供給する電圧との差分が入力される。電源制御回路16は、参照電圧との差分が小さくなるように、PWM信号の周波数やパルス幅を調整する。
【0019】
プロセッサ17は、プログラムの実行、データの読み出しや書き込み等の様々な処理を行う。これらの処理は、必ずしも決まった時間に実行されない。このため、プロセッサ17へ供給する電力は、負荷に応じて変動できることが望ましい。そこで、マルチフェーズDC-DCコンバータ10とプロセッサ17との間には、バッファとして機能するコンデンサ18が設けられている。
【0020】
プロセッサの負荷が低負荷である場合、マルチフェーズDC-DCコンバータ10は、稼働するフェーズ数を減らす。各フェーズの第1のスイッチ12および第2のスイッチ14に使用されるFETは、ソース-ドレイン間に生じるオン抵抗等を有し、オン抵抗等により電力が熱に変換され、電力損失が生じる。低負荷の場合は、ソース-ドレイン間を流れる電流が少なく、ほぼ一定の抵抗となり、電力損失もほぼ一定である。したがって、フェーズ数を減らすことで、各フェーズで固定的に発生する電力損失を減少させ、プロセッサ電源全体での電力損失を抑制する。
【0021】
一方、プロセッサ17の負荷が高負荷である場合、マルチフェーズDC-DCコンバータ10は、稼働するフェーズ数を増やす。高負荷の場合、熱に変換される量が増加し、電力損失も負荷に応じて増加する。電気抵抗による熱の散逸の割合は、ジュールの第1法則により電流の二乗と電気抵抗に比例する。このため、フェーズ数を増やし、電流を分散させ、各フェーズに流れる電流を減少させることで、供給電流の二乗に比例する電力損失を小さくし、プロセッサ電源全体での電力損失を抑制する。
【0022】
このように、負荷に応じて効率が最大となる電源フェーズとなるように電源構成を遷移させることで、負荷が大きく変動した場合にも広範囲で最大効率を示す電源を実現することができる。
【0023】
電源制御回路16は、フェーズ数を制御するにあたって、現在どの程度の負荷であるかを判断するための負荷情報が必要となる。負荷は、プロセッサへ供給する電力に依存することから、プロセッサ17へ供給する電流量を負荷情報とすることができる。このため、マルチフェーズDC-DCコンバータ10とプロセッサ17との間に、電流を検出する電流検出器19が設けられ、電流検出器19から出力される電流量を負荷情報として取得している。
【0024】
プロセッサ17の負荷は、急激かつ頻繁に変動する。電流検出器19から出力される電流量を負荷情報として用いる場合、プロセッサ17の負荷変動に対する応答遅延が生じるため、負荷変動に適切に応答して、フェーズ数を制御することができない。電源供給路11上に電流検出器19を挿入すると、電流検出器19から出力される電流がアナログ信号として出力されるため、デジタル制御を行う場合、ADコンバータが必要となり、ADコンバータでのデジタル信号への変換には時間を要するからである。
【0025】
ところで、プロセッサ17は、処理負荷を監視するため、性能計測回路を備える。処理負荷は、プロセッサ17の内部でどのような種類の処理がどの程度の頻度で実行されているかという動作率aにより決まる。プロセッサの消費電力PCPU(W)は、次の式1で示されるように動作率aの関数として定義され、動作率aにより変動する。
【0026】
【0027】
上記式1中、fは動作周波数(Hz)、Cは負荷容量(VA)、Vはコア電圧(V)、Ileakはリーク電流(A)をそれぞれ示す。
【0028】
したがって、処理負荷と消費電力は連動しており、性能計測回路から出力される処理負荷の変動情報を取得することで、消費電力の変動を検出することができる。このため、電流検出器19により電力負荷を計算するために必要な電流を検出しなくても、性能計測回路からの情報により遅延を生じることなく電源制御が可能となる。
【0029】
図3は、性能計測回路からの情報を用いて電源制御を行う従来の構成を示した図である。電源回路20は、
図2に示したマルチフェーズDC-DCコンバータ10である。プロセッサ21は、性能計測回路22を備える。電源制御システムは、電力推定回路としての電力推定IIR(Infinite Impulse Response)デジタルフィルタ23と、電源制御器24とを含む。
【0030】
性能計測回路22は、プロセッサ21において電力消費に関わる演算が行われると、イベントを検出し、カウンタを更新し、カウンタ更新情報を示すデジタル信号を出力する。電力推定IIRデジタルフィルタ23は、性能計測回路22から出力されたデジタル信号を取得し、所定の処理を行い、負荷電力の推定値を出力する。
【0031】
電源制御器24は、電力推定IIRデジタルフィルタ23から出力された推定値に基づき、PWMのDuty比を算出する機能を有し、Duty比に基づき、電源回路20を制御するための電源制御信号(PWM信号)を生成する。電源回路20は、電源制御器24から出力された電源制御信号に基づき、入力された電圧をプロセッサ21へ供給できる電圧の電力に変換する。
【0032】
図4は、
図3に示す電力推定IIRデジタルフィルタ23の構成を示した図である。プロセッサ21においてイベントが発生すると、性能計測回路22が、イベントの種類に対応する性能計測項目(I=0,1,…,M)に対応する時刻Nにおける性能計測信号を出力する。イベントの種類は、例えばL2キャッシュメモリアクセス数(キャッシュヒット)、L2キャッシュメモリアクセス数(キャッシュミス)、データ転送サイクル数、ブランチ命令発行数(分岐予測ヒット/ミス)、発行命令数(演算回数)等である。性能計測回路22は、イベントに対応する性能計測項目の性能カウンタの値を1増加させ、論理レベルが1となり、計測対象のイベントが発生したことを示す信号を、性能計測信号として出力する。
【0033】
性能計測信号は、イベント発生の有無に応じて、0、1のいずれかの値を取る。したがって、時刻Nにおいて、イベントが発生した性能計測項目については、1の性能計測信号が出力され、イベントが発生していない性能計測項目については、0の性能計測信号が出力される。
図4では、性能計測信号は、event0[N]、event1[N]、…、eventM[N]で表される。
【0034】
電力推定IIRデジタルフィルタ23は、各性能計測項目につき入力された性能計測信号の移動平均を計算する演算部25と、演算部25の演算結果を用いて、プロセッサ21が消費する電力の推定値を計算して出力する推定部26とから構成される。
【0035】
演算部25は、入力された性能計測信号にパラメータαを適用し、保持しておいた前回計算した移動平均の値にパラメータβを適用し、それらを加算して移動平均の値を計算する。このため、演算部25は、各性能計測項目につき、2つの乗算器、1つの加算器、遅延素子を含む。パラメータβは、例えば1-αである。演算部25では、乗算器、加算器や遅延素子を用い、下記式2により移動平均の時系列データの値ψ-(N)を算出する。
【0036】
【0037】
上記式2中、PMNは、時刻Nにおける性能計測信号の値を示し、性能計測項目数M(0~n)の要素からなるベクトル量である。αTは、αの転置ベクトルであり、ψ-(N-1)は、前回計算した移動平均の値であり、これらも、性能計測項目数Mの要素からなるベクトル量である。αは、指数移動平均における平滑化係数を示し、予め調整された定数値が用いられる。
【0038】
推定部26は、演算部25の演算結果にパラメータPi、Qiを適用して、電力の推定値を計算する。iは、0からnまでの各項目を示す。推定部26は、各性能計測項目に対する移動平均の値につき、1つの乗算器、1つの加算器を含む。また、推定部26は、各性能計測項目につき計算した電力の推定値の合計を算出するための加算器を含む。推定部26は、乗算器、加算器を用い、下記式3により各性能計測項目に対する電力の推定値PN(ただし、PNの頂部に^が付く)を算出する。
【0039】
【0040】
上記式3中、ψ(N)は、下記式4に示すように、ψ-(N)のベクトル要素ψ-
0、…、ψ-
M-1の最後の要素として1を付加したベクトルである。パラメータθは、Pi、Qiに相当し、回帰係数を示し、予め調整された定数値が用いられる。上記式3は、回帰計算の一次式での定数項(切片)の加算を含め、ベクトルの内積により電力の推定値PN(ただし、PNの頂部に^が付く)を表している。
【0041】
【0042】
このように、電力の推定値を算出するには、パラメータα、θが必要になるが、従来においては、電力推定IIRデジタルフィルタ23を設計する際、
図5に示すようなシステムを組み、プロセッサ21の性能計測回路22から性能計測信号を取得し、プロセッサ21が消費する電力も計測し、得られたこれらのデータを用いて、
図6に示すフローに従って事前にパラメータα、θを決定している。
【0043】
システム(計算機)は、マザーボード30上にCPU31、チップセット(North)32、チップセット(South)33、RAM(Random Access Memory)34、ビデオコントローラ35を実装する。ビデオコントローラ35には、モニタ36が接続され、チップセット(South)33には、ストレージ37が接続されている。マザーボード30には、所定の電圧に変換して供給するATX電源38が接続され、CPU31へは、直流安定化電源39が接続される。直流安定化電源39は、安定した約1.3Vの電圧を生成して供給する。
【0044】
具体的な処理は、
図6のステップ100において、パラメータα、θを決定するために使用する運用ソフトウェアプログラムを
図5に示した計算機で実行する。ステップ101において、計算機によりある時間範囲で教師データを採取する。教師データは、プロセッサであるCPU31が備える性能計測回路から出力された性能計測信号の値PM、計測されたプロセッサの消費電力値Pである。
【0045】
ある時間範囲でデータを採取すると、複数のPM、Pが得られる。そこで、ステップ102において、ある範囲で候補となるパラメータ(平滑化係数)αの値の中から1つを選択し、ステップ103において、上記式2にαの値を設定し、PMを用いて、指数移動平均の時系列データの値ψを算出する。そして、ステップ104において、上記式3を用いて回帰分析を行い、ステップ105においてパラメータ(回帰係数)θを算出する。また、実測したPiの算術平均Pi(ただし、Piの頂部に-が付く)を算出し、算出した回帰係数θを用いて上記式3により電力の推定値Pi(ただし、Piの頂部に^が付く)を算出し、実測したPi、算術平均Pi(ただし、Piの頂部に-が付く)、推定値Pi(ただし、Piの頂部に^が付く)を用い、下記式5により決定係数R2を算出する。
【0046】
【0047】
決定係数R2は、実測値Piをどの程度よく説明できているかを示す指標であり、0から1までの値を取り、1に近いほど精度が高いことを示す。ステップ106では、候補となるαの値をすべて選択したかを判断する。選択していない場合、ステップ102へ戻り、すべて選択した場合、ステップ107へ進む。ステップ107では、算出された決定係数R2の中で最も大きくなる決定係数が得られたα、θを最適なパラメータとして決定する。
【0048】
このようにしてパラメータα、θを決定することができるが、プロセッサで実行されるプログラムは、パラメータ決定のために使用する1つの種類のプログラムだけではない。すると、プログラムの種別によって最適なパラメータが異なることから、運用する全プログラムに適するパラメータを事前に決定しておく必要がある。また、プログラムの種別によって決定した最適なパラメータを使用するように、実行するプログラムの種別を識別し、電力推定IIRデジタルフィルタ23への設定を、識別した種別のパラメータに切り替える必要がある。
【0049】
特定用途の計算機では、特定のプログラムしか実行しないため、事前に最適なパラメータを決定しておき、そのパラメータを使用して電力を推定することができる。しかしながら、一般的な計算機では、運用する可能性のある全てのプログラムに対する最適なパラメータを算出しておくことは現実的に不可能である。ある代表的なプログラムに最適なパラメータを設定し、電力を推定することができる。しかしながら、この方法では、別のプログラムを実行すると、電力の推定精度が悪化する場合がある。
【0050】
そこで、事前に最適なパラメータを算出する方法ではなく、プログラムをプロセッサに実行させ、プロセッサの実際の消費電力を計測し、電力の推定を行いながら、最適なパラメータを決定していく方法を採用する。プログラムを実行させる中で最適なパラメータを決定するため、事前のパラメータ決定に要する時間が不要となり、プロセッサで実行されるプログラムに寄らず、高い精度での電力の推定が可能となる。これにより、電源効率制御における電力損失削減を促進することができる。
【0051】
本方法による電力推定を可能にするシステム構成を、
図7に例示する。システムは、従来のシステムと同様、電源回路40、プロセッサ41、電源制御器42を含み、プロセッサ41は、性能計測回路43を含む。システムは、プロセッサ41の電力を推定する電力推定装置として電力推定デジタルフィルタ44と、負荷電力を計測する計測器45とをさらに含む。なお、計測器45から出力される信号がアナログ信号である場合、デジタル信号に変換するためのA/D(アナログ-デジタル)変換器を設けることができる。
【0052】
電力推定デジタルフィルタ44は、パラメータ推定部46と、負荷電力推定部47とを備える。負荷電力推定部47は、性能計測回路43から出力された性能計測信号PMN=[m0,m1,…,mM-1]と、パラメータ推定部46により推定されたパラメータとを用いて負荷電力の推定値を算出する。算出した推定値は、電源回路40を制御する電源制御器42へ入力される。
【0053】
パラメータ推定部46は、計測器45により計測された、電源回路40からプロセッサ41へ供給する負荷電力の値を取得し、負荷電力推定部47により推定された負荷電力の推定値や、負荷電力の推定値を計算する途中で算出される指数移動平均の値等を使用し、パラメータを算出し、更新する。
【0054】
パラメータ推定部46は、プログラム毎の最適なパラメータを決定するために、下記式6の評価関数を定義し、評価関数が最小となるパラメータの算出を行う。評価関数JNは、実測された電力Pk(k=0,1,…,N)と、負荷電力推定部47により推定された電力の推定値Pk(ただし、Pkの頂部に^が付く)の誤差平均を示すものである。
【0055】
【0056】
上記式6中、θTは、各性能計測項目に対する推定値θ(ただし、θの頂部に^が付く)を要素とする転置ベクトルで、各要素のθ(ただし、θの頂部に^が付く)は、下記式7の漸化式により表される。
【0057】
【0058】
上記式7中、Sは行列であり、下記式8の漸化式により表される。
【0059】
【0060】
上記式6に示す評価関数JNをパラメータの1つである平滑化係数αにより微分すると、下記式9の漸化式により表される。
【0061】
【0062】
また、上記式2の指数移動平均の値ψ-を平滑化係数αにより微分すると、下記式10の漸化式により表される。
【0063】
【0064】
上記式7、式8の漸化式を用いた最小二乗法によりパラメータθを計算することができ、上記式9、式10の漸化式を用い、パラメータαを少しずつ更新して勾配が最小になる点を探索する勾配降下法により、パラメータαを決定することができる。
【0065】
電力推定デジタルフィルタ44は、パラメータ推定部46と、負荷電力推定部47とを用い、時間毎に入力される性能計測信号PMおよび計測器45から入力される実測電力値を、上記式7~式10に適用し、パラメータα、θを算出する。
【0066】
性能計測回路43は、性能計測項目数の信号を出力する。計測器45は、実際にプロセッサ41が消費した電力の値を計測し、計測した値を示す信号を出力する。電力推定デジタルフィルタ44は、これらの信号の入力を受け付け、パラメータ推定部46において最適なパラメータα、θを算出し、これらのパラメータを使用して負荷電力を推定する負荷電力推定部47に、算出したパラメータを設定する。
【0067】
負荷電力推定部47は、設定されたパラメータを使用して負荷電力の推定値を算出する。電源制御器42は、負荷電力推定部47により算出された負荷電力の推定値に基づき、電源回路40において最も効率が最大となる制御を行う。これにより、プロセッサ41の電力効率の向上を図ることができる。
【0068】
電源制御では、プロセッサ41の負荷変動が生じた場合、電力損失につながるため、負荷変動を即座に制御に反映させる必要がある。計測器45により計測された実測電力値を用いて電源制御する場合、A/D変換等により時間的な遅延が生じるため、プロセッサ41の負荷変動を即座に制御に反映させることができない。しかしながら、本制御では、性能計測信号を用いて電力の推定値を決定するため、負荷変動を即座に制御に反映させることができ、計測器45により計測された実測電力値は、制御に使用するものではなく、パラメータの推定のみに使用されるため、時間的な制約は受けない。
【0069】
図8は、電力推定デジタルフィルタ44の構成例を示した図である。電力推定デジタルフィルタ44は、FPGA(Field Programmable Gate Array)やDSP(Digital Signal Processor)等のデジタルフィルタにより構成され、パラメータ推定部46と、負荷電力推定部47とを含む。負荷電力推定部47は、移動平均計算部50と、電力推定部55とを含む。
【0070】
移動平均計算部50は、乗算器51、52と、加算器53と、遅延素子54とを含む。電力推定デジタルフィルタ44は、時刻Nにおけるプロセッサ41の性能計測回路43から出力された性能計測信号を受け付け、移動平均計算部50へ入力する。性能計測信号は、性能計測項目数の要素をもつベクトル量である。
【0071】
移動平均計算部50には、パラメータ推定部46によりパラメータαが設定される。乗算器51は、移動平均計算部50に入力された性能計測信号PMNに、設定されたパラメータαを乗算し、第1の演算結果を出力する。乗算器52は、遅延素子54が保持する前回算出した移動平均の値ψ-(N-1)に(1-α)を乗算し、第2の演算結果を出力する。加算器53は、第1の演算結果と第2の演算結果を加算し、移動平均の値ψ-(N)を算出する。算出した移動平均の値ψ-(N)は、分岐され、1つは、電力推定部55へ入力され、もう1つは、次の演算のために、遅延素子54に保持される。
【0072】
電力推定部55は、入力されたベクトル量である移動平均の値ψ-(N)に、数値である1を要素として付加し、上記式4に示すψ(N)とし、パラメータ推定部46により設定されたパラメータθを適用し、負荷電力の推定値PN(ただし、PNの頂部に^が付く)を算出する。推定値PN(ただし、PNの頂部に^が付く)は、性能計測項目数Mに電力推定部55が計算する回帰一次式の切片に相当する1要素を加えたM+1個の要素をもつパラメータθとψ(N)の内積を計算した値である。
【0073】
パラメータ推定部46は、第1パラメータとしてパラメータαを算出する第1パラメータ推定部60と、第2パラメータとしてパラメータθを算出する第2パラメータ推定部80とを含む。
【0074】
第1パラメータ推定部60は、加算器61と、減算器62~64と、乗算器65、66と、遅延素子67、68と、演算器69と、セレクタ70、71と、比較器72とを含む。減算器62は、電力推定デジタルフィルタ44に入力された性能計測信号PMNから、移動平均計算部50の遅延素子54に保持された前回算出した移動平均の値ψ-(N-1)を減算する。遅延素子67は、前回算出した移動平均の値ψ-(N-1)をパラメータαで微分した微分値を保持する。乗算器65は、微分値に(1-α)を乗算する。加算器61は、減算器62の減算結果と、乗算器65の乗算結果とを加算する。加算器61の加算結果は、上記式10で得られる、移動平均の値をパラメータαで微分した値で、次のパラメータαの算出まで遅延素子67において保持される。加算器61、乗算器65、遅延素子67は、移動平均の値ψ-(N)をパラメータαで微分した微分値を計算する手段として機能する。
【0075】
乗算器66は、加算器61の加算結果に係数γδψを乗算する。パラメータαは、パラメータαの値を少しずつ更新して勾配が最小になる点を探索することにより決定される。このため、繰り返し計算を行い、最小になる点に収束させる必要があり、その収束を加速させる係数が、係数γδψである。なお、乗算器66は、必要に応じて設けることができる。
【0076】
減算器63は、計測器45により計測された実測電力値PNから、負荷電力推定部47により算出された負荷電力の推定値PN(ただし、PNの頂部に^が付く)を減算し、誤差Errを求める。演算器69は、乗算器66から出力された微分値と、誤差Errと、設定されたパラメータθとを乗算し、乗算した結果を2倍して差分値を得る。
【0077】
減算器64は、セレクタ70から出力される値から、演算器69により算出された差分値を減算する。減算器64の減算結果は、上記式7により得られる評価関数をパラメータαで微分した微分値であり、分岐され、比較器72と遅延素子68に入力される。遅延素子68は、前回算出した減算器64の減算結果を保持する。セレクタ70は、リセット信号の入力の有無により、値0または遅延素子68に保持した値を出力する。セレクタ70は、リセット信号が有りの場合、値0を出力し、無しの場合、遅延素子68に保持した値を出力する。加算器61と、減算器62~64と、乗算器65、66と、遅延素子67、68と、演算器69と、セレクタ70は、評価関数をパラメータαで微分した微分値を計算する微分値計算手段として機能する。
【0078】
比較器72は、減算器64の減算結果である微分値が0より大きいか否かにより、1または0を選択して出力する。微分値が0より大きい場合、1を出力し、0以下の場合、0を出力する。セレクタ71は、選択手段として機能し、比較器72から出力された値に応じて、設定されているパラメータαから増減値δを減算した値、またはパラメータαに増減値δを加算した値を選択し、パラメータαの推定値α(ただし、αの頂部に^が付く)を出力する。具体的には、出力された値が1である場合、αからδを減算した値を出力し、出力された値が0である場合、αにδを加算した値を出力する。推定値α(ただし、αの頂部に^が付く)は、現在設定されているパラメータαを更新する、αの更新値である。なお、増減値δは、更新量となる定数であり、例えば10-5等が設定される。増減値δは、10-5に限定されるものではなく、適切な値であれば、その他の値であってもよい。
【0079】
各性能計測項目(例えば、項目m)に対応するパラメータαmの範囲は、0<αm<1である必要がある。プロセッサ41に設定されている性能計測項目が電力消費に寄与しないプログラムがプロセッサ41で実行されている場合には、0<αm<1の範囲を逸脱する場合がある。このため、パラメータαの更新により上記範囲を逸脱する場合、更新を行わないようにする。
【0080】
第2パラメータ推定部80は、加算器81と、乗算器82と、遅延素子83、84と、演算器85~87を含む。N+1の要素をもつベクトルを表すψ(N)(ψNとも表される。)は、演算器86、77へ入力される。演算器86は、ψNと、遅延素子83に保持された行列SN-1を用い、上記式7、式8の第2項における係数gを算出する。演算器87は、ψNと、遅延素子83に保持された行列SN-1と、演算器86により算出された係数gを用い、上記式8の行列SNを算出する。行列SN、SN-1は、上記式4のベクトル要素に対応し、行数および列数が定義された(M+1)×(M+1)の行列である。
【0081】
乗算器82は、演算器87により算出された値に係数γSを乗算する。パラメータθも、パラメータαの値を少しずつ更新して勾配が最小になる点を探索することにより決定される。このため、繰り返し計算を行い、最小になる点に収束させる必要があり、その収束を加速させる係数が、係数γSである。係数γSは、行列SNに対して乗算される一定の定数であり、例えば100とされる。なお、100という値は、一例であり、この値に限定されるものではない。算出された行列SNは、次のパラメータ更新時に使用するために、遅延素子83に保持される。
【0082】
演算器85は、演算器86から出力された係数gと、第1パラメータ推定部60の減算器63から出力された誤差Errとを乗算する。乗算器82と、遅延素子83と、演算器85~87は、差分値を計算する手段として機能する。遅延素子84は、前回算出したパラメータの推定値θN-1(ただし、θN-1の頂部に^が付く)を保持する。加算器81は、演算器85から入力された差分値と、遅延素子84が保持する推定値θN-1(ただし、θN-1の頂部に^が付く)を加算し、パラメータの推定値θ(ただし、θの頂部に^が付く)を算出する。
【0083】
算出するα(ただし、αの頂部に^が付く)とθ(ただし、θの頂部に^が付く)は、適切なタイミングで設定することができる。θ(ただし、θの頂部に^が付く)を設定するタイミングとしては、例えば実測した電力値が電力推定デジタルフィルタ44に入力されたタイミング等が挙げられる。α(ただし、αの頂部に^が付く)を設定するタイミングとしては、例えば評価関数のパラメータαによる微分値がある程度収束し、安定するまでに必要なサイクル毎等が挙げられる。リセット信号は、一定の期間毎に入力され、例えばパラメータαの更新タイミングで入力されるように設定される。
【0084】
ちなみに、プロセッサ41の性能計測項目をMとした場合、PM、α、α(ただし、αの頂部に^が付く)、δ、ψ-のαによる微分値、JNのαによる微分値は、M個の要素を持つベクトルを表す。ψ、θ、θ(ただし、θの頂部に^が付く)は、M+1個の要素を持つベクトルを表す。Err、γS、γδψ、PN、PN(ただし、PNの頂部に^が付く)は、すべてスカラー量である。
【0085】
図9を参照して、
図7に示す装置および
図8に示す電力推定デジタルフィルタ44を使用して、パラメータα、θを決定する処理について説明する。ステップ200において、繰り返し計算が行われる変数について初期値0を設定する。変数は、評価関数のαによる微分値、移動平均の値ψ
-のαによる微分値、ψ
-、θ、α、行列Sである。
【0086】
ステップ201では、性能計測回路43から出力された性能計測信号PMk={m0,k,m1,k,…,mM-1,k}の入力を受け付ける。ステップ202では、上記式2、式3、式10に基づき、指数移動平均の値ψk、電力の推定値Pk(ただし、Pkの頂部に^が付く)、ψkのパラメータαによる微分値を算出する。なお、この各値を算出する処理は、プロセッサ41からの性能計測信号の受信に同期して実行される。性能計測信号は、通常、性能計測回路43から数ナノ秒毎に出力される。
【0087】
ステップ203では、計測器45により実測した電力値を取得したか否かを判断する。電力値は、通常、数百ナノ秒~マイクロ秒で受信する。電力値を取得していない場合、ステップ201へ戻り、性能計測信号の入力を受け付ける。一方、電力値を取得した場合、ステップ204へ進み、パラメータθを算出する処理を実行する。ステップ204では、上記式7、式8、式9に基づき、行列S、評価関数JNのパラメータαによる微分値、パラメータθを算出し、算出したパラメータθにより設定されたパラメータθを更新する。
【0088】
ステップ205では、パラメータαの更新タイミングであるか否かを判断する。パラメータαの更新は、例えば、先に説明した評価関数JNのαによる微分値が安定するまでに必要なサイクルとして一定の周期が定義され、その周期毎とされる。更新タイミングではない場合、ステップ201へ戻り、更新タイミングの場合、ステップ206へ進む。ステップ206では、評価関数JNのαによる微分値の符号に従い、αを増減させ、増減させたαにより設定されたパラメータαを更新する。更新後、ステップ201へ戻り、装置の電源が切断されるまで、ステップ201~ステップ206の処理が繰り返される。
【0089】
なお、ステップ206では、αの更新を行ったタイミングで、積算された評価関数JNのαによる微分値のリセットを実行する。
【0090】
このようにして、サイクル毎に、プロセッサ41の消費電力の推定値Pk(ただし、Pkの頂部に^が付く)を算出しながら、パラメータα、θの更新を継続して行うことで、パラメータを最適値に保つことができる。
【0091】
ここで、実行するプログラム1~3を順に切り替え、パラメータα、θを動的に最適化させながら、プロセッサ41の消費電力を推定する処理を実行させた場合のパラメータ調整の結果および電力推定の結果を、
図10~
図13に示す。
図7に示す構成の装置において、
図8に示す構成の電力推定デジタルフィルタ44を用い、上記の処理を実行させた。
【0092】
図10は、経過時間(sec)と回帰係数θとの関係を示した図である。ここでは、性能計測項目をプロセッサ41が計算する演算回数、キャッシュミスの2つとし、演算回数に対する回帰係数をθ
0、キャッシュミスに対する回帰係数をθ
1としている。また、θは、回帰一次式の切片(性能計測項目とは関わらず加算されている定数値)を含む回帰係数であり、上記のθ
0、θ
1に加えて、切片分に対する回帰係数を考慮する必要がある。ここでは、その切片分に対する回帰係数をθ
2としている。なお、演算回数については、電力に必ず反映されるものであるが、キャッシュミスについては、キャッシュミスが発生しなければ電力に反映されない。
【0093】
回帰係数θ0、θ1、θ2のいずれも、プログラムが切り替えられた段階で自動調整され、少なくとも1秒以内で最適化が図られている。なお、回帰係数θ1については、プログラム1からプログラム2に切り替えられた以降、キャッシュミスが発生していないため、回帰係数がほぼ0となっている。
【0094】
図11は、経過時間(sec)と平滑化係数αとの関係を示した図である。
図10と同様、性能計測項目を演算回数、キャッシュミスの2つとし、演算回数に対する平滑化係数をα
0、キャッシュミスに対する平滑化係数をα
1としている。
【0095】
平滑化係数については、安定するまでに時間を要し、
図11に示した結果では、安定しないうちにプログラムを切り替えているため、いずれのプログラムも一定の値を示していない。しかしながら、時間の経過に伴い、平滑化係数の値が変化していることから、最適値へ向けて平滑化係数の値が更新されていることが分かる。
【0096】
図12は、パラメータ調整時の電力の推定値の誤差率(%)の変化を示した図である。ここでの誤差率は、推定値と実測した電力値の差を、実測した電力値で除した数値の二乗の平均に対して平方根を取り、100を乗じた平均平方二乗誤差率を示している。プログラムの切り替え時には、パラメータα、θが最適化されていないため、誤差率が高くなる。しかしながら、パラメータの自動調整によりパラメータが最適化されていくので、誤差率が低下し、パラメータが最適値に近づくとほぼ一定の値となる。
【0097】
パラメータが自動調整されない場合、例えば、プログラム1に最適化されたパラメータが設定され、そのパラメータを使用して電力推定を行うと、プログラム2への切り替えにより、誤差率が10%を超えることなる。
【0098】
一方、パラメータを自動調整することで、いずれのプログラムに切り替えても、推定値の誤差率は10%未満となり、電力推定を高い精度に維持できることを見出すことができた。
【0099】
図13は、プログラムの切り替え直後と、パラメータ調整後でどの程度電力推定精度が改善されたかを示す図である。
図13(a)は、プログラムの切り替え直後の実測した電力値と電力の推定値を示し、
図13(b)は、パラメータ調整後の実測した電力値と電力の推定値を示す。
【0100】
このプログラムでは、プロセッサ41において高負荷状態と中程度の負荷状態を交互に繰り返す処理が実行されている。したがって、実測される電力値、電力の推定値ともに、パルス状となっている。
【0101】
プログラム切り替え直後は、切り替え前のプログラムに対して最適化されたパラメータを使用して電力の推定値を算出する。このため、切り替え後のプログラムに対しては、パラメータが最適化されておらず、パラメータが合っていない状態である。したがって、
図13(a)に示すように、電力の推定値は、実測した電力値に対し、大きな誤差率を有するものとなる。この例では、誤差率が約12%となっている。
【0102】
プログラムを切り替えた後、パラメータ調整を行うと、
図13(b)に示すように、電力の推定値は、実測した電力値に対し、誤差率が小さくなる。この例では、誤差率が1.8%まで低下している。このように、パラメータ調整を行うことで、誤差率を大幅に低下させることができ、その結果、電力損失の削減を実現できる。
【0103】
このように、電源制御システムが備える電力推定装置、すなわち電力推定デジタルフィルタ44に、パラメータ推定部46を組み込むことで、実行されるプログラムの動作に応じて最適なパラメータを、実際の動作中に(オンラインで)推定し、設定することができる。このため、パラメータを事前に探索し、用意する必要がなくなる。また、動作中にパラメータを常に最適値とすることが可能となり、プロセッサ41で実行するプログラムに寄らず、高い電力推定精度を維持することができる。これにより、電源効率をさらに向上させることができる。
【0104】
これまでに説明してきた例では、上記式6の評価関数に最小二乗法を適用した例で説明してきた。しかしながら、これに限られるものではなく、最小二乗法を適用した誤差に指数重みである忘却係数を付けた発展的な最小二乗法や、カルマンフィルタアルゴリズムを用いたシステム同定手法等を用いることができる。カルマンフィルタは、回帰式の係数を直近のデータで修正することにより最適な予測式を作成する。このため、これらの手法を採用することで、さらにパラメータ推定精度の向上を図ることができ、収束時間の向上も図ることができる。
【0105】
また、電力推定装置として、電力推定デジタルフィルタ44を用いて説明してきたが、電力推定デジタルフィルタ44に限定されるものではなく、電力推定デジタルフィルタ44により実行される処理を、マイクロプロセッサで実行されるプログラムによって実現することも可能である。
【0106】
これまで本発明の電力推定装置および電源制御システムについて上述した実施形態をもって詳細に説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態や、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【0107】
10…マルチフェーズDC-DCコンバータ
11…電源供給路
12…第1のスイッチ
13…アース
14…第2のスイッチ
15…コイル
16…電源制御回路
17…プロセッサ
18…コンデンサ
19…電流検出器
20…電源回路
21…プロセッサ
22…性能計測回路
23…電力推定IIRデジタルフィルタ
24…電源制御器
25…演算部
26…推定部
30…マザーボード
31…CPU
32、33…チップセット
34…RAM
35…ビデオコントローラ
36…モニタ
37…ストレージ
38…ATX電源
39…直流安定化電源
40…電源回路
41…プロセッサ
42…電源制御器
43…性能計測回路
44…電力推定デジタルフィルタ
45…計測器
46…パラメータ推定部
47…負荷電力推定部
50…移動平均計算部
51、52…乗算器
53…加算器
54…遅延素子
55…電力推定部
60…第1パラメータ推定部
61…加算器
62~64…減算器
65、66…乗算器
67、68…遅延素子
69…演算器
70、71…セレクタ
72…比較器
80…第2パラメータ推定部
81…加算器
82…乗算器
83、84…遅延素子
85~87…演算器