JP2015111326A - 電力見積方法、電力見積装置及びプログラム - Google Patents
電力見積方法、電力見積装置及びプログラム Download PDFInfo
- Publication number
- JP2015111326A JP2015111326A JP2013252864A JP2013252864A JP2015111326A JP 2015111326 A JP2015111326 A JP 2015111326A JP 2013252864 A JP2013252864 A JP 2013252864A JP 2013252864 A JP2013252864 A JP 2013252864A JP 2015111326 A JP2015111326 A JP 2015111326A
- Authority
- JP
- Japan
- Prior art keywords
- power
- value
- type
- parameter
- power consumption
- 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
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R21/00—Arrangements for measuring electric power or power factor
- G01R21/133—Arrangements for measuring electric power or power factor by using digital technique
Abstract
【課題】電力見積計算の計算量の増加を抑える。【解決手段】電力見積対象装置で消費される電力値を、複数のパラメータの値に応じて複数取得し(ステップS1)、複数取得した電力値の平均値に対する電力値の変動の大きさを算出し(ステップS2)、変動の大きさが第1の値よりも小さいときは、電力見積対象装置における消費電力を平均値による定数で近似した第1の電力予測式を作成し(ステップS4)、変動の大きさが第1の値以上のときは、複数のパラメータによる消費電力に対する影響の大きさを算出し(ステップS5)、消費電力への影響の大きさに基づきパラメータ数を削減して、消費電力を線形式で近似した第2の電力予測式を作成し(ステップS6)、第1の電力予測式または第2の電力予測式を用いて消費電力を見積もる(ステップS7)。【選択図】図1
Description
本発明は、電力見積方法、電力見積装置及びプログラムに関する。
集積回路や情報機器などを設計する際、前もって消費電力を見積もることが行われている。従来、電力見積対象となる装置のパラメータ(たとえば、プロセッサ使用率、プロセッサ温度など)を用いて、消費電力を抽象化した電力モデルを作成し、その電力モデルを用いて消費電力を見積もる手法がある。電力モデルは、パラメータと係数との積の和を用いた線形式で表され、各係数は、回帰分析などを利用して求められる。
しかしながら、電力見積対象となる装置のパラメータ数が増加すると、電力見積計算の計算量が増加してしまう。
発明の一観点によれば、電力見積対象装置で消費される電力値を、複数のパラメータの値に応じて複数取得し、複数取得した前記電力値の平均値に対する前記電力値の変動の大きさを算出し、前記変動の大きさが第1の値よりも小さいときは、前記電力見積対象装置における消費電力を前記平均値による定数で近似した第1の電力予測式を作成し、前記変動の大きさが前記第1の値以上のときは、前記複数のパラメータによる前記消費電力に対する影響の大きさを算出し、前記消費電力への影響の大きさに基づきパラメータ数を削減して、前記消費電力を線形式で近似した第2の電力予測式を作成し、前記第1の電力予測式または前記第2の電力予測式を用いて前記消費電力を見積もる、電力見積方法が提供される。
また、発明の一観点によれば、プロセッサと、複数のパラメータの値に応じた、電力見積対象装置で消費される電力値を記憶する記憶部と、を有し、前記プロセッサは、前記電力値を複数取得し、複数取得した前記電力値の平均値に対する前記電力値の変動の大きさを算出し、前記変動の大きさが第1の値よりも小さいときは、前記電力見積対象装置における消費電力を前記平均値による定数で近似した第1の電力予測式を作成し、前記変動の大きさが前記第1の値以上のときは、前記複数のパラメータによる前記消費電力に対する影響の大きさを算出し、前記消費電力への影響の大きさに基づきパラメータ数を削減して、前記消費電力を線形式で近似した第2の電力予測式を作成し、前記第1の電力予測式または前記第2の電力予測式を用いて前記消費電力を見積もる、電力見積装置が提供される。
開示の電力見積方法、電力見積装置及びプログラムによれば、電力見積計算の計算量の増加を抑えることができる。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の電力見積方法及び電力見積装置の一例を示す図である。
(第1の実施の形態)
図1は、第1の実施の形態の電力見積方法及び電力見積装置の一例を示す図である。
電力見積装置10は、記憶部11とプロセッサ12を有している。プロセッサ12は、記憶部11に記憶されているデータ及びプログラムに基づき、以下のような電力見積方法を実行する。
まず、プロセッサ12は、記憶部11に記憶されている、電力見積対象装置(プロセッサ、LSI(Large Scale Integrated circuit)、電気機器など)で消費される電力値を、複数のパラメータの値に応じて複数取得する(ステップS1)。
パラメータpa1,pa2,…pamは、たとえば、プロセッサ使用率、ディスクアクセス速度、ネットワーク使用帯域、使用物理メモリ容量、プロセッサ温度などである。これらのパラメータpa1〜pamの組み合わせごとの電力値が、ステップS1の処理で複数取得される。
このようなパラメータpa1〜pamの値に応じた電力値は、たとえば、事前に設計情報などからシミュレーションにより算出され、記憶部11に記憶されている。または、電力見積対象装置と同様のパラメータを持つ装置に対する実機測定により取得され、記憶部11に記憶されている電力値を用いてもよい。
ステップS1の処理後、プロセッサ12は、取得した複数の電力値の平均値に対する電力値の変動の大きさを算出する(ステップS2)。変動の大きさは、取得した複数の電力値の標準偏差/平均値により求まる変動係数CVで表すことができる。
プロセッサ12は、ステップS2の処理で算出した変動の大きさが、所定の値V1以上か否かを判定する(ステップS3)。そして、変動の大きさが値V1よりも小さければ、プロセッサ12は、装置の消費電力を、電力値の平均値による定数で近似した電力予測式(電力モデル)を作成する(ステップS4)。図1の例では、P=c0が電力モデルであり、c0は電力値の平均値である。これにより、平均値に対して電力値の変動が小さいときには、電力モデルを定数で表すことができるようになるため、電力モデルを簡素化でき、電力見積計算の計算量を削減できる。
変動の大きさが値V1以上のとき、プロセッサ12は、パラメータpa1〜pamのそれぞれによる消費電力(見積もり電力)への影響の大きさを算出する(ステップS5)。
パラメータpa1〜pamのなかには、消費電力へ与える影響が小さく、電力モデルには不要なものがあることが考えられる。ステップS5の処理では、たとえば、回帰分析及び検定によりそのようなパラメータが検出される。消費電力への影響の大きさを表す指標として、たとえば、t検定における係数(偏回帰係数)の有意確率(p値(P-value)と呼ばれることもある)が用いられる。p値を用いた検定の例については後述する。
パラメータpa1〜pamのなかには、消費電力へ与える影響が小さく、電力モデルには不要なものがあることが考えられる。ステップS5の処理では、たとえば、回帰分析及び検定によりそのようなパラメータが検出される。消費電力への影響の大きさを表す指標として、たとえば、t検定における係数(偏回帰係数)の有意確率(p値(P-value)と呼ばれることもある)が用いられる。p値を用いた検定の例については後述する。
プロセッサ12は、ステップS5で算出された消費電力への影響の大きさに基づいて、パラメータpa1〜pamのうち、消費電力への影響が小さいものから少なくとも1つを削除して、電力モデルを作成する(ステップS6)。
たとえば、見積もり電力への影響が最も少ないパラメータから順にx個パラメータを削除すると、電力モデルは以下の式(1)で表せる。
Pは見積もり電力、c0は電力値の平均値、mは入力したパラメータの個数、ciは、残っているパラメータ(削除しなかったパラメータ)のうちi番目のパラメータpaiの係数である。係数ciは、ステップS5の回帰分析により求まる。
その後、プロセッサ12は、ステップS4の処理で求めた電力モデルまたは、ステップS6の処理で求めた電力モデルを用いて、電力見積対象装置の消費電力を見積もる(ステップS7)。たとえば、ステップS4の処理で得られる電力モデルが採用されるときには、消費電力Pは、電力値の平均値(c0)となる。ステップS6の処理で得られる電力モデルが採用されるときには、消費電力Pは、たとえば、ユーザによって入力されるパラメータ値(ステップS1の処理で取得されるパラメータpa1〜pamの値とは異なる値であってもよい)に応じて式(1)で算出される。
以上のように、第1の実施の形態の電力見積方法及び電力見積装置10では、各パラメータが消費電力に与える影響を考慮しつつ、電力モデルにおけるパラメータの数を減らせるので、予測精度の悪化を抑えつつ電力見積の計算量を抑えることができる。
(第2の実施の形態)
以下第2の実施の形態の電力見積装置及び電力見積方法の一例を説明する。
(電力見積装置の一例)
図2は、第2の実施の形態の電力見積装置の一例を示す図である。
以下第2の実施の形態の電力見積装置及び電力見積方法の一例を説明する。
(電力見積装置の一例)
図2は、第2の実施の形態の電力見積装置の一例を示す図である。
電力見積装置20は、たとえば、コンピュータであり、プロセッサ21によって装置全体が制御されている。プロセッサ21には、バス29を介してRAM(Random Access Memory)22と複数の周辺機器が接続されている。プロセッサ21は、マルチプロセッサであってもよい。プロセッサ21は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ21は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM22は、電力見積装置20の主記憶装置として使用される。RAM22には、プロセッサ21に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM22には、プロセッサ21による処理に必要な各種データが格納される。
バス29に接続されている周辺機器としては、HDD(Hard Disk Drive)23、グラフィック処理装置24、入力インタフェース25、光学ドライブ装置26、機器接続インタフェース27及びネットワークインタフェース28がある。
HDD23は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD23は、電力見積装置20の補助記憶装置として使用される。HDD23には、OSのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置24には、モニタ24aが接続されている。グラフィック処理装置24は、プロセッサ21からの命令にしたがって、画像をモニタ24aの画面に表示させる。モニタ24aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース25には、キーボード25aとマウス25bとが接続されている。入力インタフェース25は、キーボード25aやマウス25bから送られてくる信号をプロセッサ21に送信する。なお、マウス25bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置26は、レーザ光などを利用して、光ディスク26aに記録されたデータの読み取りを行う。光ディスク26aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク26aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース27は、電力見積装置20に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース27には、メモリ装置27aやメモリリーダライタ27bを接続することができる。メモリ装置27aは、機器接続インタフェース27との通信機能を搭載した記録媒体である。メモリリーダライタ27bは、メモリカード27cへのデータの書き込み、またはメモリカード27cからのデータの読み出しを行う装置である。メモリカード27cは、カード型の記録媒体である。
ネットワークインタフェース28は、ネットワーク28aに接続されている。ネットワークインタフェース28は、ネットワーク28aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した電力見積装置10も、図2に示した電力見積装置20と同様のハードウェアにより実現することができる。
電力見積装置(コンピュータ)20は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。電力見積装置20に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、電力見積装置20に実行させるプログラムをHDD23に格納しておくことができる。プロセッサ21は、HDD23内のプログラムの少なくとも一部をRAM22にロードし、プログラムを実行する。また電力見積装置20に実行させるプログラムを、光ディスク26a、メモリ装置27a、メモリカード27cなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ21からの制御により、HDD23にインストールされた後、実行可能となる。またプロセッサ21が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
(電力見積方法の一例)
図3は、電力見積方法の一例の流れを説明する図である。
電力見積装置20は、図3に示すように、電力モデル(電力ライブラリ)作成処理(ステップS10)と、電力見積処理(ステップS11)を行う。
図3は、電力見積方法の一例の流れを説明する図である。
電力見積装置20は、図3に示すように、電力モデル(電力ライブラリ)作成処理(ステップS10)と、電力見積処理(ステップS11)を行う。
電力モデル(電力ライブラリ)作成処理では、プロセッサ21は、たとえば、HDD23に記憶されているパラメータ値と電力値を含む入力データIn1を取得して、電力モデルを作成する。なお、電力モデル作成処理では、電力モデルは、式(1)に示した電力モデルにおける係数のリストを含む電力ライブラリD1として出力され、たとえば、HDD23に記憶される。
電力見積処理では、プロセッサ21は、パラメータ値を、入力データIn2としてユーザから取得し、電力ライブラリD1で表される電力モデルにパラメータ値を適用して、消費電力(見積もり電力)Poを算出する。そして、プロセッサ21は、算出した消費電力Poを、たとえば、グラフィック処理装置24によりモニタ24aに表示させる。
以下、電力モデル作成処理の一例を説明する。
図4、図5及び図6は、電力モデル作成処理の一例の流れを示すフローチャートである。なお、各処理ステップの順序は一例であり、適宜入れ替えてもよい。
図4、図5及び図6は、電力モデル作成処理の一例の流れを示すフローチャートである。なお、各処理ステップの順序は一例であり、適宜入れ替えてもよい。
プロセッサ21は、まず入力データを取得する(ステップS20)。
図7は、入力データに含まれる電力値の一例を示す図である。
サンプル番号で示されている電力見積対象となる装置のサンプルにおける電力値の例が示されている。
図7は、入力データに含まれる電力値の一例を示す図である。
サンプル番号で示されている電力見積対象となる装置のサンプルにおける電力値の例が示されている。
図8は、入力データに含まれるパラメータ値の一例を示す図である。
サンプル番号で示されている電力見積対象となる装置におけるパラメータpa1〜pamの値の例が示されている。パラメータpa1〜pamは、たとえば、プロセッサ使用率、ディスクアクセス速度、ネットワーク使用帯域、使用物理メモリ容量、プロセッサ温度などである。
サンプル番号で示されている電力見積対象となる装置におけるパラメータpa1〜pamの値の例が示されている。パラメータpa1〜pamは、たとえば、プロセッサ使用率、ディスクアクセス速度、ネットワーク使用帯域、使用物理メモリ容量、プロセッサ温度などである。
図9は、入力データの取得画面の一例を示す図である。
画面30において、入力ファイル指定欄31では、図7に示したような電力値が記載されている電力値ファイルと、図8に示したようなパラメータが記載されているパラメータ値ファイルが、ユーザによるマウス25bなどの操作によって選択される。そして、ファイル読み込みボタン32が押されることにより、選択されたファイルが読み込まれ、パラメータ選択画面33にパラメータpa1〜pamのパラメータ名が表示され、ユーザによって使用するパラメータが選択される。
画面30において、入力ファイル指定欄31では、図7に示したような電力値が記載されている電力値ファイルと、図8に示したようなパラメータが記載されているパラメータ値ファイルが、ユーザによるマウス25bなどの操作によって選択される。そして、ファイル読み込みボタン32が押されることにより、選択されたファイルが読み込まれ、パラメータ選択画面33にパラメータpa1〜pamのパラメータ名が表示され、ユーザによって使用するパラメータが選択される。
さらに、基準値入力欄34では、後述する判定処理に使用する基準値CVref,R2 ref,prefが、たとえば、ユーザによって入力される。基準値入力欄34には、所定の値、たとえば、CVref=0.1、R2 ref=0.5、pref=0.05が、予めデフォルトの値として入力されていてもよい。
OKボタン35が押されると、ユーザによって選択または入力されたデータが、入力データとして取得される。キャンセルボタン36が押されると、入力データIn1の取得がキャンセルされる。
プロセッサ21は、以上のように入力データを取得すると、図4に示すようなステップS21の処理を行う。
ステップS21の処理では、プロセッサ21は、パラメータ数mが0であるか否かを判定する。パラメータ数mが0のときには、ステップS22の処理が行われ、パラメータ数mが0ではないときには、ステップS25の処理が行われる。
ステップS21の処理では、プロセッサ21は、パラメータ数mが0であるか否かを判定する。パラメータ数mが0のときには、ステップS22の処理が行われ、パラメータ数mが0ではないときには、ステップS25の処理が行われる。
ステップS22の処理では、プロセッサ21は、取得した電力値の平均値(平均電力)を求め、係数c0=平均電力とした電力モデルを作成する(ステップS22)。ステップS22で作成される電力モデルは、消費電力を定数で示したものである。ステップS22の処理では、プロセッサ21は、算出した電力モデルをモニタ24aに表示させるようにしてもよい。
ステップS22の処理の後、ステップS23の処理が行われる。ステップS23の処理では、プロセッサ21は、作成した電力モデルを評価する。電力モデルの評価は、たとえば、以下の式(2)により算出される相対誤差REjを用いて行われる。
式(2)において、iはパラメータ番号、jはサンプル番号、yjはサンプル番号jのサンプルの電力値、なお、パラメータ数mが0のときは、相対誤差REjは、(c0−yj)/yjとなる。
ステップS23の処理後、評価結果が出力されるとともに、算出された係数や定数を含む電力ライブラリD1が作成される(ステップS24)。
図10は、評価結果の出力画面の一例を示す図である。
図10は、評価結果の出力画面の一例を示す図である。
出力画面38には、パラメータ数mが0のときに得られる電力モデルの例が示されている。相対誤差は、最小値Min、最大値Max及び、MAPE(Mean Absolute Percentage Error:各サンプルの相対誤差の絶対値の平均)で示されている。
図4に示したステップS21の処理で、パラメータ数が0ではないと判定されたときに行われるステップS25の処理では、プロセッサ21は、電力値の平均値に対する変動の大きさを示す変動係数CVを算出する。変動係数CVは、電力値の標準偏差と平均値を用いて、CV=標準偏差/平均値、と表せる。
変動係数CVが算出されると、プロセッサ21は、ステップS20の処理で取得した基準値CVrefと、変動係数CVとを比較して、CV≧CVrefであるか否かを判定する(ステップS26)。プロセッサ21は、CV≧CVrefであると判定したときには、ステップS27の処理を行い、CV≧CVrefでないと判定したときには、図5のステップS40の処理を行う。
基準値CVrefは、図9に示したような画面30にて、たとえば、0.1、0.01など、ユーザにより適宜入力される。後述するように、CV≧CVrefでないときには電力モデルは平均電力で近似可能となる。そのため、電力モデルの評価の際に、誤差が大きかった場合には、プロセッサ21は、より小さい基準値CVrefを取得して、平均電力での電力モデルの近似が起こりにくいようにすることも可能である。
ステップS27の処理では、回帰分析が行われる。回帰分析には、式(1)で示した電力モデルの線形式が、回帰方程式として用いられる(ただし、ここではまだパラメータを削除していないので、式(1)のiは1〜m)。プロセッサ21は、式(1)に対して、ステップS20の処理で取得した電力値とパラメータ値を適用して、最小二乗法などを用いて係数ciを求める。ステップS27の処理では、プロセッサ21は、さらに、電力値の変動Qと残差平方和Qeから、R2=(Q−Qe)/Qで表せる決定係数R2を算出する。変動は、各サンプルの電力値と平均電力との差分の二乗和である。残差平方和は、各サンプルの電力値と、得られた電力モデルで算出される各サンプルの電力値の計算値との差分の2乗和である。
決定係数は、回帰分析で得られる回帰方程式の精度を示す。決定係数が小さければ、電力を見積もる際の電力モデルとなる回帰方程式の精度は低く、決定係数が大きければ回帰方程式の精度は高いことを意味する。なお、決定係数は、パラメータ数の増加により大きくなる性質がある。そのため、プロセッサ21は、パラメータ数増加による値の増大を補正した決定係数である自由度調整済決定係数を算出するようにしてもよい。
また、プロセッサ21は、決定係数の検定における有意確率と、係数(偏回帰係数)の検定における有意確率を求める。
決定係数の検定は、分散比F=回帰の分散/残差の分散が、回帰の自由度m(パラメータ数)と、残差の自由度(n(サンプル数)−m−1)に基づくF分布(F(m,n−m−1)に従うことを利用した検定である。決定係数が0(パラメータ値に対して得られる電力値が無相関であることを示す)と仮定したとき、回帰方程式により算出される電圧が、誤差により、入力された電力値となる確率が求められる。この確率が、決定係数の検定における有意確率(p値)である。
決定係数の検定は、分散比F=回帰の分散/残差の分散が、回帰の自由度m(パラメータ数)と、残差の自由度(n(サンプル数)−m−1)に基づくF分布(F(m,n−m−1)に従うことを利用した検定である。決定係数が0(パラメータ値に対して得られる電力値が無相関であることを示す)と仮定したとき、回帰方程式により算出される電圧が、誤差により、入力された電力値となる確率が求められる。この確率が、決定係数の検定における有意確率(p値)である。
偏回帰係数の検定は、統計量t=係数/標準誤差が、残差の自由度(n−m−1)によるt分布(t(n−p−1)に従うことに基づく検定である。あるパラメータ値の係数が0だと仮定して、回帰方程式により算出される電圧が、誤差により、入力された電力値となる確率が求められる。この確率が、偏回帰係数の検定の有意確率(p値)である。
プロセッサ21は、以上のような回帰分析の結果を、たとえば、モニタ24aに表示させる(ステップS28)。
図11は、回帰分析結果の表示例を示す図である。
図11は、回帰分析結果の表示例を示す図である。
画面39には、パラメータpa1〜pa3に対する係数ciの計算結果が示されている。なお、係数ciの一番上の値は、c0(定数項)の計算値である。piは、各パラメータpa1〜pa3の有意確率である。図11の例では、有意確率piは、2e−16(2×10-16)よりも小さいことが示されている。また、決定係数、自由度調整済決定係数、決定係数の有意確率の例が示されている。図11の例では、決定係数の有意確率の値も、2e−16よりも小さいことが示されている。
図4の処理フローの説明を続ける。ステップS28の処理後、プロセッサ21は、決定係数R2≧基準値R2 refかつ、決定係数の有意確率p≦基準値prefであるか否かを判定する(ステップS29)。基準値R2 refは、たとえば、0.5である。R2<0.5では、電力モデルを式(1)のような線形式で表しても、定数(平均電力)で表しても誤差はあまり変わらない傾向となる。また、決定係数の有意確率pが十分大きいときも、平均電力で予測しても誤差の変化は小さい。基準値prefは、たとえば、0.05である。
プロセッサ21は、R2≧R2 refかつ、p≦prefであるときには、ステップS30の処理を行い、R2<R2 refまたは、p>prefであるときには、図5のステップS40の処理を行う。
ステップS30の処理では、プロセッサ21は、全てのパラメータpaiの有意確率piが、基準値pref以下であるか否かを判定する。全てのパラメータpaiの有意確率piが、基準値pref以下であるときには、前述のステップS23の処理が行われる。pi>prefであるときには、そのパラメータpaiは、電力の見積もりに役に立つとは言えないものと判断し、図6のステップS50の処理が行われる。
前述のステップS26の処理で、CV≧CVrefではないと判定されたとき、または、ステップS29の処理で、R2≧R2 refかつ、p≦prefではないと判定されたとき、図5のステップS40の処理が行われる。
ステップS40の処理では、プロセッサ21は、たとえば、以下に示すような問い合わせ画面をモニタ24aに表示させる。
図12は、問い合わせ画面の一例を示す図である。
図12は、問い合わせ画面の一例を示す図である。
図12では、変動係数CVが基準値CVref(図12の例では、0.1)を下回ったときに、表示される問い合わせ画面40の例が示されている。電力モデルを定数で表すか(定数モデルとするか)、入力されたデータで電力モデルを作成するか、入力されたパラメータ値や電力値を見直すか、ユーザに選択を促す画面となっている。図12のような問い合わせ画面40には、ボタン41,42,43が表示されており、上記の3つの選択肢の何れを選択するかに応じて、たとえば、ユーザによるマウス25bの操作によって、ボタン41〜43の何れかが押される。これにより、プロセッサ21は、ユーザからの入力を取得する(ステップS41)。
そして、プロセッサ21は、ユーザによる入力が、処理の継続を指示するものか、処理の中止を指示するものか、定数モデルの採用を指示するものか判定する(ステップS42)。
たとえば、図12に示したような問い合わせ画面40において、ボタン41が押されたときには、プロセッサ21は、処理の継続(入力されたデータによる電力モデルの作成)が指示されたものと判定する。プロセッサ21は、処理の継続が指示されたものと判定した後は、前述したステップS27またはステップS30の処理を行う。ステップS26の処理からステップS40の処理が行われたときには、プロセッサ21は、ステップS27の処理を行う。ステップS29の処理からステップS40の処理が行われたときには、プロセッサ21は、ステップS30の処理を行う。
また、問い合わせ画面40において、ボタン42が押されたときには、プロセッサ21は、処理の中止が指示されたものと判定し、電力モデル(電力ライブラリ)の作成処理を終了する。
また、問い合わせ画面40において、ボタン43が押されたときには、プロセッサ21は、定数モデルの採用が指示されたものと判定する。プロセッサ21は、定数モデルの採用が指示されたものと判定した後は、前述したステップS22の処理を行う。
一方、前述のステップS30の処理で、pi>prefとなるパラメータがあると判定されたときには、図6のステップS50の処理が行われる。
ステップS50の処理では、プロセッサ21は、たとえば、以下に示すような問い合わせ画面をモニタ24aに表示させる。
ステップS50の処理では、プロセッサ21は、たとえば、以下に示すような問い合わせ画面をモニタ24aに表示させる。
図13は、問い合わせ画面の一例を示す図である。
図13では、パラメータpa4のp値(変動係数)が、基準値pref(図13の例では、0.05)より大きいときに、表示される問い合わせ画面50の例が示されている。問い合わせ画面50は、電力モデルから、パラメータpa4を削除するか、入力されたデータで電力モデルを作成するか、入力されたパラメータ値や電力値を見直すか、ユーザに選択を促す画面となっている。
図13では、パラメータpa4のp値(変動係数)が、基準値pref(図13の例では、0.05)より大きいときに、表示される問い合わせ画面50の例が示されている。問い合わせ画面50は、電力モデルから、パラメータpa4を削除するか、入力されたデータで電力モデルを作成するか、入力されたパラメータ値や電力値を見直すか、ユーザに選択を促す画面となっている。
なお、基準値prefより大きいp値を示すパラメータが複数ある場合、たとえば、それらのパラメータのうち、最大のものについて図13のような問い合わせ画面50を表示する。
図13のような問い合わせ画面50には、ボタン51,52,53が表示されており、上記の3つの選択肢の何れを選択するかに応じて、たとえば、ユーザによるマウス25bの操作によって、ボタン51〜53の何れかが押される。これにより、プロセッサ21は、ユーザからの入力を取得する(ステップS51)。
そして、プロセッサ21は、ユーザによる入力が、処理の継続を指示するものか、処理の中止を指示するものか、パラメータの削除を指示するものか判定する(ステップS52)。
たとえば、図13に示したような問い合わせ画面50において、ボタン51が押されたときには、プロセッサ21は、処理の継続(入力されたデータによる電力モデルの作成)が指示されたものと判定する。プロセッサ21は、処理の継続が指示されたものと判定した後は、前述したステップS23の処理を行う。
また、問い合わせ画面50において、ボタン52が押されたときには、プロセッサ21は、処理の中止が指示されたものと判定し、電力モデル(電力ライブラリ)の作成処理を終了する。
また、問い合わせ画面50において、ボタン53が押されたときには、プロセッサ21は、パラメータの削除が指示されたものと判定し、たとえば、p値の最も大きなパラメータを削除した電力モデルを作成する(ステップS53)。その後、プロセッサ21は、前述したステップS21の処理を行う。
プロセッサ21は、以上のような処理で作成した電力モデルを用いて、電力見積処理を行う。
以上のような、第2の実施の形態の電力見積装置20及び電力見積方法によれば、予測される消費電力への影響を考慮しつつ、電力モデルにおけるパラメータの数を減らせるので、計算精度の悪化を抑えつつ電力見積の計算量を抑えることができる。
以上のような、第2の実施の形態の電力見積装置20及び電力見積方法によれば、予測される消費電力への影響を考慮しつつ、電力モデルにおけるパラメータの数を減らせるので、計算精度の悪化を抑えつつ電力見積の計算量を抑えることができる。
なお、本実施の形態で算出した変動係数CVは、前述したように、入力データ(パラメータ値と電力値)を用いるだけで簡単に算出可能であるし、有意確率についても回帰分析で算出可能である。そのため、たとえば、電力モデル作成時の入力データの妥当性チェックに、相対誤差を算出する場合よりも計算量が少なくて済む。
また、電力モデルを平均電力で近似する前や、パラメータを削除する前に、事前に、図12、図13に示すような問い合わせ画面40,50を表示することで、ユーザに、入力するパラメータ値や電力値の確認を促すこともできる。
(第3の実施の形態)
以下、第3の実施の形態の電力見積方法について説明する。電力見積装置については、図2に示した電力見積装置20が適用可能である。
以下、第3の実施の形態の電力見積方法について説明する。電力見積装置については、図2に示した電力見積装置20が適用可能である。
図14は、第3の実施の形態の電力見積方法の一例の流れを示すフローチャートである。なお、各処理ステップの順序は一例であり、適宜入れ替えてもよい。
ステップS60の処理では、プロセッサ21は、図4〜図6に示したような電力モデルの作成と評価を行う。その後、プロセッサ21は、ステップS60の処理の結果として、たとえば、以下のような情報をモニタ24aに表示させて、ユーザに提示する(ステップS61)。
ステップS60の処理では、プロセッサ21は、図4〜図6に示したような電力モデルの作成と評価を行う。その後、プロセッサ21は、ステップS60の処理の結果として、たとえば、以下のような情報をモニタ24aに表示させて、ユーザに提示する(ステップS61)。
図15は、電力モデル作成・評価結果の一例を示す図である。
画面60には、サンプル番号No.1からNo.5までのサンプルの電力モデル作成・評価結果の履歴が表示されている。
画面60には、サンプル番号No.1からNo.5までのサンプルの電力モデル作成・評価結果の履歴が表示されている。
各サンプルに対して、相対誤差のワースト値(絶対値の最大値)、MAPE(Mean Absolute Percentage Error:相対誤差の絶対値の平均)、自由度調整済決定係数、使用した電力値ファイル、パラメータ値ファイル、パラメータが表示されている。
また、画面60には、ボタン61,62,63,64が表示されている。たとえば、ユーザによるマウス25bの操作によって、ボタン61〜64の何れかが押される。また、情報のソート(たとえば、相対誤差のワースト値、MAPE、自由度調整済決定係数を降順または昇順に並べ替える)を行う際には、たとえば、タイトルが表示されている欄65,66,67が、たとえば、ユーザによるマウス25bの操作によって押される。
このような、ユーザによるマウス25bの操作などにより入力された入力信号を、プロセッサ21は取得する(ステップS62)。
そして、プロセッサ21は、取得したユーザからの入力信号を判定する(ステップS63)。
そして、プロセッサ21は、取得したユーザからの入力信号を判定する(ステップS63)。
たとえば、図15に示したような画面60において、ボタン61が押されたときには、プロセッサ21は、電力モデル作成・評価及び表示処理の終了がユーザによって指示されたものと判定する。この場合、プロセッサ21は、電力モデル作成・評価及び表示処理を終了する。
画面60において、ボタン62が押されたときには、プロセッサ21は、ユーザによるマウス25bの操作などで指定された結果を、画面60から削除することが指示されたものと判定する。この場合、プロセッサ21の制御のもと、指定された結果が画面60から削除される(ステップS64)。その後、ステップS61の処理が行われる。
画面60において、ボタン63が押されたときには、プロセッサ21は、新たなサンプルについて電力モデル作成・評価を行って、その結果を追加することが指示されたものと判定する。この場合、新たなサンプルに関してステップS60の処理が行われた後、その結果が画面60に追加される。
画面60において、ボタン64が押されたときには、プロセッサ21は、詳細情報の表示を指示されたものと判定する。この場合、たとえば、ボタン64が押される前に選択されている結果に関する詳細情報が、画面60に表示される(ステップS65)。その後、ステップS61からの処理が繰り返される。詳細情報としては、たとえば、電力モデル(電力予測式)や、電力モデルを適用したときの相対誤差に基づく評価指標などがある。
画面60において、結果のタイトルが表示されている欄65,66,67が押されたときには、プロセッサ21は、情報のソートを行うことが指示されたものと判定する。この場合、画面60に表示されている結果が、降順または昇順に整列される(ステップS66)。その後、ステップS61からの処理が繰り返される。
以上のような第3の実施の形態の電力見積方法によれば、電力モデルを作成する際に使用するパラメータを変えたときに見積もられる消費電力に対する評価結果の変化をユーザに提示できる。これにより、前述した第2の実施の形態の電力見積方法と同様の効果が得られるとともに、ユーザがパラメータを変えた各サンプルについての電力モデルの評価結果を比較しやすくなり、ユーザの負担を軽減できる。
(第4の実施の形態)
以下、第4の実施の形態の電力見積方法について説明する。電力見積装置については、図2に示した電力見積装置20が適用可能である。
以下、第4の実施の形態の電力見積方法について説明する。電力見積装置については、図2に示した電力見積装置20が適用可能である。
第4の実施の形態の電力見積方法は、電力見積対象装置を、CPUやDSPなどのプロセッサを含む半導体集積回路(たとえば、SoC(System on a Chip))とするものである。第4の実施の形態の電力見積方法では、プロセッサにおける、電力発生要因や命令種別を考慮した電力モデルが作成される。
プロセッサを含む半導体集積回路では、プロセッサで消費される電力が支配的であるため、その電力を少ない誤差で予測することが望ましい。プロセッサの命令には、整数演算が支配的な命令(以下、整数系命令と呼ぶ)と浮動小数点演算が支配的な命令(以下、浮動小数点系命令と呼ぶ)があり、それぞれの命令を実行する回路では、消費電力が異なることが考えられる。そのため、単に、MIPS(Million Instruction Per Second; 百万命令毎秒)値を用いた一次式で消費電力を予測すると、よい精度が得られない。
これに対して、整数系命令か、浮動小数点系命令かの命令種別ごとに消費電力を予測すると、たとえば、以下に示すようなMIPS値と消費電力とのよい相関が得られる。
図16は、命令種別ごとのMIPS値と消費電力との相関関係のシミュレーション例を示す図である。
図16は、命令種別ごとのMIPS値と消費電力との相関関係のシミュレーション例を示す図である。
横軸はMIPS値であり、縦軸は消費電力である。四角のプロット(たとえば、plt1)は、浮動小数点ベンチマークプログラムを用いた電力算出例を示し、ダイヤのプロット(たとえば、plt2)は、整数ベンチマークプログラムを用いた電力算出例を示している。図16では、2種の命令種別(整数系命令と浮動小数点系命令)ごとの消費電力が2種のベンチマークプログラムで計算されている。
浮動小数点ベンチマークプログラムは、プロセッサにおける浮動小数点演算処理部分の性能評価を行う。浮動小数点ベンチマークプログラムには、たとえば、LINPACKがある。整数ベンチマークプログラムは、プロセッサにおける整数演算処理部分の性能評価を行う。整数ベンチマークプログラムには、たとえば、Dhrystoneがある。
図16に示すように、命令種別ごとの消費電力とMIPS値とは、比較的よい相関を示しており、直線ln1,ln2でほぼ近似できることが分かる(決定係数が1に近い)。
また、プロセッサ内の電力発生要因の種類(セルの種類)によっては、消費電力とMIPS値との相関の大きさが違う。たとえば、FF(Flip-Flop)(以下ではラッチ回路も含むものとする)については、MIPS値と消費電力との相関は、以下のようになる。
また、プロセッサ内の電力発生要因の種類(セルの種類)によっては、消費電力とMIPS値との相関の大きさが違う。たとえば、FF(Flip-Flop)(以下ではラッチ回路も含むものとする)については、MIPS値と消費電力との相関は、以下のようになる。
図17は、FFについての、MIPS値と消費電力との相関関係のシミュレーション例を示す図であり、図18は、クロックラインに関係するセルについての、MIPS値と消費電力との相関関係のシミュレーション例を示す図である。また、図19は、メモリ(RAM(Random Access Memory))についての、MIPS値と消費電力との相関関係のシミュレーション例を示す図である。図20は、その他の電力発生要因(主に組み合わせ論理ゲート)についての、MIPS値と消費電力との相関関係のシミュレーション例を示す図である。
図17〜図20において、横軸はMIPS値であり、縦軸は消費電力である。シミュレーションには、整数ベンチマークプログラムと浮動小数点ベンチマークプログラムが用いられている。
図17に示すように、FFの消費電力とMIPS値とは、比較的よい相関を示していることが分かる。クロックラインに関係するセル(たとえば、クロックバッファなど)と、メモリについては、図18、図19に示すように、消費電力とMIPS値との相関はあまり取れていない。その他の電力発生要因については、図20に示すように、消費電力とMIPS値とがゆるい相関を示している。
上記のような各電力発生要因についても、命令種別ごとに消費電力とMIPS値との相関を調べると、以下のようになる。
図21は、FFについての、命令種別ごとのMIPS値と消費電力との相関関係のシミュレーション例を示す図であり、図22は、クロックラインに関係するセルについての、命令種別ごとのMIPS値と消費電力との相関関係のシミュレーション例を示す図である。また、図23は、メモリについての、命令種別ごとのMIPS値と消費電力との相関関係のシミュレーション例を示す図であり。図24は、その他の電力発生要因についての、命令種別ごとのMIPS値と消費電力との相関関係のシミュレーション例を示す図である。
図21は、FFについての、命令種別ごとのMIPS値と消費電力との相関関係のシミュレーション例を示す図であり、図22は、クロックラインに関係するセルについての、命令種別ごとのMIPS値と消費電力との相関関係のシミュレーション例を示す図である。また、図23は、メモリについての、命令種別ごとのMIPS値と消費電力との相関関係のシミュレーション例を示す図であり。図24は、その他の電力発生要因についての、命令種別ごとのMIPS値と消費電力との相関関係のシミュレーション例を示す図である。
図21〜図24において、横軸はMIPS値であり、縦軸は消費電力である。各命令種別のシミュレーションには、整数ベンチマークプログラムと浮動小数点ベンチマークプログラムが用いられている。
また、図21〜図24において、四角のプロット(たとえば、plt3,plt5,plt7,plt9)は、浮動小数点ベンチマークプログラムを用いた電力算出例を示している。また、ダイヤのプロット(たとえば、plt4,plt6,plt8,plt10)は、整数ベンチマークプログラムを用いた電力算出例を示している。
図21に示すように、FFの消費電力とMIPS値は、命令種別ごとではさらによい相関を示していることが分かる。クロックラインに関係するセルについては、図22に示すように命令種別ごとの消費電力とMIPS値の相関がとれるようになっている。メモリについては、図23に示すように、命令種別ごとでは、消費電力とMIPS値との相関がとれている部分がある。その他の電力発生要因については、図24に示すように、命令種別ごとでは、消費電力とMIPS値とが比較的よい相関を示している。
なお、図22、図23に示すように、クロックラインに関するセルとメモリに関しては、MIPS値の変化に対する消費電力の変動幅が小さい。
第4の実施の形態の電力見積方法では、上記のような命令種別と電力発生要因を考慮して、電力モデルが作成される。電力モデルで表現される見積もり電力は、電力発生要因の分類ごとの見積もり電力の和で表現される。また、電力発生要因の分類ごとの見積もり電力は、定数か、MIPS値の合計をパラメータとする線形式か、命令種別ごとのMIPS値をパラメータとする線形式か、の何れかにより予測される。
第4の実施の形態の電力見積方法では、上記のような命令種別と電力発生要因を考慮して、電力モデルが作成される。電力モデルで表現される見積もり電力は、電力発生要因の分類ごとの見積もり電力の和で表現される。また、電力発生要因の分類ごとの見積もり電力は、定数か、MIPS値の合計をパラメータとする線形式か、命令種別ごとのMIPS値をパラメータとする線形式か、の何れかにより予測される。
電力モデルは、たとえば、以下のように表される。
式(3)において、MIPSIntは、整数系命令のMIPS値を示し、MIPSFPは、浮動小数点系命令のMIPS値を示している。p_type∈{FF,CKBUF,MEM,OTHER}は、電力発生要因の分類を示す。集合{FF,CKBUF,MEM,OTHER}の各要素は、それぞれ、FF、クロックラインに関するセル、メモリ、その他の電力発生要因を示している。
Pestp_type(MIPSInt,MIPSFP)は、分類p_typeにおける見積もり電力であり、以下の式(4)のようにモデル制御変数est_m,est_iの状態に応じて3種類の電力予測式で表される。つまり、第2の実施の形態の電力見積方法と同様に、電力予測式は、定数モデル、パラメータ数を削除したモデル、またはパラメータ数を削除しないモデル(命令種別を考慮したモデル)で表される。
モデル制御変数est_mは、電力予測式(電力モデル)を、線形式か定数で表すかを決める変数である。モデル制御変数est_iは、命令種別により電力予測式を使い分けるか否かを決める変数である。モデル制御変数est_m,est_iについては、後述の処理により決定される。
est_m=constのとき、Pestp_type(MIPSInt,MIPSFP)は、pp_type,constとなる。pp_type,constは定数である。
est_m=l_inst_numかつ、est_i=TRUEであるとき、Pestp_type(MIPSInt,MIPSFP)は、命令種別ごとのMIPS値の合計をパラメータとする線形式で表されている。est_m=l_inst_numかつ、est_i=FALSEであるとき、Pestp_type(MIPSInt,MIPSFP)は、命令種別ごとのMIPS値をパラメータとする線形式で表されている。式(4)において、i_typeは、命令種別を示し、Int(整数系命令)とFP(浮動小数点系命令)と、がある。
est_m=l_inst_numかつ、est_i=TRUEであるとき、Pestp_type(MIPSInt,MIPSFP)は、命令種別ごとのMIPS値の合計をパラメータとする線形式で表されている。est_m=l_inst_numかつ、est_i=FALSEであるとき、Pestp_type(MIPSInt,MIPSFP)は、命令種別ごとのMIPS値をパラメータとする線形式で表されている。式(4)において、i_typeは、命令種別を示し、Int(整数系命令)とFP(浮動小数点系命令)と、がある。
式(4)において、π(est_i,p_type,i_type)=pp_type,Φest_i(i_type)とする。ここで、Φest_i(i_type)は、est_i=TRUEのときi_typeとなり、その他のとき、allとなる関数であるとする。また、est_m=constのとき1、est_m=l_inst_numのとき、MIPSi_typeとなる関数ν(est_m,i_type)を導入し、式(4)を書き換えると、以下の式(5)のようになる。
式(5)では、est_m=constのときは、est_i=TRUEであるとし、そのときのPp_type,all=0としている。
式(5)を式(3)に代入すると、式(3)は、以下のように表される。
式(5)を式(3)に代入すると、式(3)は、以下のように表される。
式(6)において、以下の式(7)のように定義する。
これにより、以下の式(8)が得られる。
本実施の形態では、パラメータ値(MIPS値)と電力値を含む入力データをプロセッサ21が取得して、入力データに基づいて、回帰分析や検定などにより、前述したモデル制御変数est_m,est_i、係数pp_type,i_type、定数pconstが求められる。
第4の実施の形態の電力見積方法についても、図3に示した処理の流れと同様に行われる。ただし、第4の実施の形態の電力見積方法では、パラメータ値として、MIPS値が用いられる。以下にMIPS値と、電力値を含む入力データの取得方法の例を説明する。
(入力データ取得方法)
図25は、入力データ取得方法の一例を示す図である。
たとえば、プロセッサ21により、電力ライブラリ作成用のプログラムが実行されると、電力見積対象の半導体集積回路のネットリストD10を入力とした、ゲートレベルシミュレーションが行われる(ステップS70)。なお、以下では、計算対象となる半導体集積回路は、物理設計の実績があるものであり(たとえば、試作チップ作成などが行われたもの)、電力が計算できることを前提とする。
図25は、入力データ取得方法の一例を示す図である。
たとえば、プロセッサ21により、電力ライブラリ作成用のプログラムが実行されると、電力見積対象の半導体集積回路のネットリストD10を入力とした、ゲートレベルシミュレーションが行われる(ステップS70)。なお、以下では、計算対象となる半導体集積回路は、物理設計の実績があるものであり(たとえば、試作チップ作成などが行われたもの)、電力が計算できることを前提とする。
ゲートレベルシミュレーションにより、ゲートレベルでの波形データD11が得られる。プロセッサ21は、波形データD11に基づき波形解析を行い、MIPS値を算出する(ステップS71)。また、プロセッサ21は、テクノロジライブラリD12と、波形データD11を用いて、ゲートレベルでの電力予測を行い、電力値を算出する(ステップS72)。MIPS値や電力値の算出には、浮動小数点ベンチマークプログラムと整数ベンチマークプログラムが用いられる。
図26は、算出された電力値とMIPS値の一例を示す図である。
図26には、サンプルごとの電力値とMIPS値が示されている。電力値は、FF、クロックラインに関係するセル(“CLK”)、メモリ(“MEM”)、その他(“OTHER”)、という分類ごとに算出される。たとえば、サンプル1〜サンプルnにおける、FFの電力値PFF1〜PFFn、CLKの電力値PCLK1〜PCLKn、MEMの電力値PMEM1〜PMEMn、OTHERの電力値POTHER1〜POTHERnが算出される。
図26には、サンプルごとの電力値とMIPS値が示されている。電力値は、FF、クロックラインに関係するセル(“CLK”)、メモリ(“MEM”)、その他(“OTHER”)、という分類ごとに算出される。たとえば、サンプル1〜サンプルnにおける、FFの電力値PFF1〜PFFn、CLKの電力値PCLK1〜PCLKn、MEMの電力値PMEM1〜PMEMn、OTHERの電力値POTHER1〜POTHERnが算出される。
MIPS値は、整数系命令(“Int”)と、浮動小数点系命令(“FP”)とで、別々に算出される。たとえば、サンプル1〜サンプルnにおける、IntのMIPS値である、MIPSInt1〜MIPSIntn、FPのMIPS値である、MIPSFP1〜MIPSFPnが算出される。
算出された電力値とMIPS値は、たとえば、HDD23などの記憶部に記憶される。
その後、プロセッサ21は、電力値と命令種別ごとのMIPS値を、たとえば、HDD23から取得し(読み出し)、電力ライブラリを作成する。なお、この時、プロセッサ21は、サンプルの1〜サンプルnの他のパラメータを取得してもよい。
その後、プロセッサ21は、電力値と命令種別ごとのMIPS値を、たとえば、HDD23から取得し(読み出し)、電力ライブラリを作成する。なお、この時、プロセッサ21は、サンプルの1〜サンプルnの他のパラメータを取得してもよい。
(電力ライブラリ作成処理)
以下、第4の実施の形態の電力見積方法における電力ライブラリ作成処理の一例を説明する。
以下、第4の実施の形態の電力見積方法における電力ライブラリ作成処理の一例を説明する。
図27は、電力ライブラリ作成処理の開始画面の一例を示す図である。
画面70では、入力ファイル指定欄71において、サンプルの電力値とMIPS値が記述されたファイルが、ユーザによって指定される。図27の例では、入力ファイル指定欄71で、電力値とMIPS値は別々のファイルで指定される。電力ライブラリ保存先指定欄72では、作成される電力ライブラリの保存先が、ユーザによって指定される。なお、MIPS値以外の他のパラメータの値が記載されたファイルが指定されてもよい。
画面70では、入力ファイル指定欄71において、サンプルの電力値とMIPS値が記述されたファイルが、ユーザによって指定される。図27の例では、入力ファイル指定欄71で、電力値とMIPS値は別々のファイルで指定される。電力ライブラリ保存先指定欄72では、作成される電力ライブラリの保存先が、ユーザによって指定される。なお、MIPS値以外の他のパラメータの値が記載されたファイルが指定されてもよい。
また、ボタン73が、たとえば、ユーザによるマウス25bなどの操作によって押されると、以下に示すような電力ライブラリの作成処理が行われる。また、タブ74が、たとえば、ユーザによるマウス25bなどの操作によって押されると、後述する電力見積処理が行われる。
電力ライブラリ作成処理では、プロセッサ21は前述の式(3)〜(8)におけるモデル制御変数est_mp_type,est_ip_type及び、係数pp_type,i_type、定数pconstを求め、それらを電力ライブラリとしてHDD23などの記憶部に記憶する。
モデル制御変数est_mp_typeは、電力予測式(電力モデル)を、線形式か定数で表すかを決める変数である。モデル制御変数est_mp_typeは、たとえば、回帰分析における決定係数や、偏回帰係数の検定を利用して求められる。
まず、決定係数を用いて求める方法について説明する。
プロセッサ21は、たとえば、図26に示したような電力値とMIPS値に基づき、以下の式(9)のような回帰式を用いた回帰分析を行う。
プロセッサ21は、たとえば、図26に示したような電力値とMIPS値に基づき、以下の式(9)のような回帰式を用いた回帰分析を行う。
回帰分析により、分類p_type(たとえば、FF、クロックラインに関係するセル、メモリ、その他)ごとに、係数pp_type,i_type(pp_type,Intと、pp_type,FP)、定数pconstが算出される。
そして、プロセッサ21は、回帰分析の決定係数を求める。プロセッサ21は、たとえば、決定係数が0.5以上ならば、その分類p_typeの消費電力は、MIPS値との相関が大きいと見なし、est_mp_type=l_inst_numとし、電力予測式を線形式で表すようにする。プロセッサ21は、決定係数が0.5未満ならば、その分類p_typeの消費電力は、MIPS値との相関が小さいと見なし、est_mp_type=constとし、電力予測式を定数で表すようにする。
モデル制御変数est_mp_typeを決定する方法として、偏回帰係数の検定を利用する方法もある。
偏回帰係数の検定を利用する場合、ξ=MIPSInt+MIPSFP、ζ=MIPSFPとおき、プロセッサ21は、以下の式(10)に対して、回帰分析及び偏回帰係数の検定を行う。
偏回帰係数の検定を利用する場合、ξ=MIPSInt+MIPSFP、ζ=MIPSFPとおき、プロセッサ21は、以下の式(10)に対して、回帰分析及び偏回帰係数の検定を行う。
なお、式(10)で、pp_type,ξ=pp_type,Intであり、pp_type,ζ=pp_type,FP−pp_type,Intである。
検定の結果、ξ、ζともに有意でなければ(たとえば、有意確率が基準値以下)、プロセッサ21は、その分類p_typeの消費電力は、MIPS値と相関が小さいと見なし、est_mp_type=constとし、電力予測式を定数で表すようにする。ξまたはζの少なくとも何れかが有意であれば、プロセッサ21は、その分類p_typeの消費電力は、MIPS値との相関が大きいと見なし、est_mp_type=l_inst_numとし、電力予測式を線形式で表すようにする。
検定の結果、ξ、ζともに有意でなければ(たとえば、有意確率が基準値以下)、プロセッサ21は、その分類p_typeの消費電力は、MIPS値と相関が小さいと見なし、est_mp_type=constとし、電力予測式を定数で表すようにする。ξまたはζの少なくとも何れかが有意であれば、プロセッサ21は、その分類p_typeの消費電力は、MIPS値との相関が大きいと見なし、est_mp_type=l_inst_numとし、電力予測式を線形式で表すようにする。
なお、電力値の標準偏差/平均値、で表せる変動係数CVを、モデル制御変数est_mp_typeの決定の際に併用するようにしてもよい。たとえば、変動係数CVが所定の値よりも小さければ、プロセッサ21は、その分類p_typeの消費電力は、MIPS値との相関が小さいと見なし、est_mp_type=constとし、電力予測式を定数で表すようにしてもよい。
一方、命令種別により電力予測式を使い分けるか否かを決めるモデル制御変数est_ip_typeは、たとえば、偏回帰係数の検定を利用して求められる。
プロセッサ21は、上記の式(9)の係数pp_type,Intと係数pp_type,FPに差があれば、分類p_typeの消費電力とMIPS値との相関の大きさは、命令種別ごとに異なるものとみなし、モデル制御変数est_ip_type=TRUE、とする。プロセッサ21は、係数pp_type,Intと係数pp_type,FPに差がなければ、分類p_typeの消費電力とMIPS値との相関の大きさは、命令種別が異なっても同じとみなし、モデル制御変数est_ip_type=FALSE、とする。
プロセッサ21は、上記の式(9)の係数pp_type,Intと係数pp_type,FPに差があれば、分類p_typeの消費電力とMIPS値との相関の大きさは、命令種別ごとに異なるものとみなし、モデル制御変数est_ip_type=TRUE、とする。プロセッサ21は、係数pp_type,Intと係数pp_type,FPに差がなければ、分類p_typeの消費電力とMIPS値との相関の大きさは、命令種別が異なっても同じとみなし、モデル制御変数est_ip_type=FALSE、とする。
検定において、係数pp_type,Intと係数pp_type,FPが異なる値であることを調べるには、pp_type,ζ=pp_type,FP−pp_type,Intが0ではないことを調べればよい。その場合、プロセッサ21は、帰無仮説としてpp_type,ζ=0と仮定し、求めた電力値が「定数+誤差」の範疇かどうか有意確率を用いて判定する。
上記の帰無仮説が棄却されたとき、プロセッサ21は、電力値の変化が誤差だけでは説明できない(ζについて有意である)ものと判定し、モデル制御変数est_ip_type=TRUEとする。帰無仮説が棄却されなかったときは、プロセッサ21は、電力値の変化が誤差として説明できると判定し、モデル制御変数est_ip_type=FALSEとする。
係数pp_type,i_typeは、モデル制御変数est_ip_typeによって以下のように算出される。
est_ip_type=TRUEのとき、pp_type,Int=pp_type,ξ、pp_type,FP=pp_type,ξ+pp_type,ζ、と算出される。
est_ip_type=TRUEのとき、pp_type,Int=pp_type,ξ、pp_type,FP=pp_type,ξ+pp_type,ζ、と算出される。
est_ip_type=FALSEのときは、あらためて、ξ=MIPSInt+MIPSFPだけをパラメータとした電力予測式、pp_type,allξ+pp_type,const=Pp_typeの係数として算出される。なお、pp_type,all=pp_type,ξとしてもよい。
定数pconstは、前述の式(7)で算出される。
以下、フローチャートを用いて、モデル制御変数est_mp_type,est_ip_type及び、係数pp_type,i_type、定数pconstを求める電力ライブラリ作成処理の流れをまとめる。
以下、フローチャートを用いて、モデル制御変数est_mp_type,est_ip_type及び、係数pp_type,i_type、定数pconstを求める電力ライブラリ作成処理の流れをまとめる。
図28は、電力ライブラリ作成処理の一例の流れを説明するフローチャートである。なお、各処理ステップの順序は一例であり、適宜入れ替えてもよい。
プロセッサ21は、以下のステップS80〜S89の処理を、分類p_type(たとえば、FF、クロックラインに関係するセル、メモリ、その他)ごとに行う。
プロセッサ21は、以下のステップS80〜S89の処理を、分類p_type(たとえば、FF、クロックラインに関係するセル、メモリ、その他)ごとに行う。
まず、電力値の変動係数CVの算出が行われ(ステップS80)、変動係数CVが基準値CVref(たとえば、0.1)以上であるか否かが判定される(ステップS81)。CV≧CVrefではないときには、モデル制御変数est_mp_typeはest_mp_type=constとなる(ステップS82)。これにより、モデル制御変数est_ip_typeは、est_ip_type=FALSEとなるとともに、全ての係数pp_type,allは、0となり、pp_type,constは、電力値Pp_typeの平均値となる(ステップS83)。これによって、分類p_typeについての電力予測式は定数(電力値Pp_typeの平均値)でモデル化される。
一方、ステップS81の処理で、CV≧CVrefであると判定されたときには、回帰分析が行われる(ステップS84)。ステップS84の処理では、前述したように、たとえば、決定係数や、係数pp_type,ξ,pp_type,ζ、定数pp_type,constが求められる。
その後、モデルの選択が行われる(ステップS85)。ステップS85の処理では、電力予測式を定数(平均値)でモデル化するか、線形式でモデル化するかが選択される。
前述したように、たとえば、決定係数が0.5以上ならば、消費電力は、MIPS値との相関が大きいと見なされ、電力予測式を線形式でモデル化するように選択される。決定係数が0.5未満ならば、消費電力は、MIPS値との相関が小さいと見なされ、電力予測式を定数でモデル化するように選択される。
前述したように、たとえば、決定係数が0.5以上ならば、消費電力は、MIPS値との相関が大きいと見なされ、電力予測式を線形式でモデル化するように選択される。決定係数が0.5未満ならば、消費電力は、MIPS値との相関が小さいと見なされ、電力予測式を定数でモデル化するように選択される。
また、前述したように、モデル選択に偏回帰係数の検定を利用する場合には、ξ、ζともに有意でなければ、消費電力は、MIPS値との相関が小さいと見なされ、電力予測式を定数でモデル化するように選択される。ξまたはζの少なくとも何れかが有意であれば、消費電力は、MIPS値との相関が大きいと見なされ、電力予測式を線形式でモデル化するように選択される。
ステップS85の処理で、電力予測式を定数(平均値)でモデル化することが選択されたときには、前述したステップS82の処理が行われる。電力予測式を線形式でモデル化することが選択されたときには、モデル制御変数est_mp_typeはest_mp_type=l_inst_numとなる(ステップS86)。
その後、命令種別(整数系命令か浮動小数点系命令)で電力予測式を使い分けるか否かが判定される(ステップS87)。
ステップS87の処理では、前述のような偏回帰係数の検定が行われ、命令種別に応じた電力値の変化が誤差だけでは説明できない(ζについて有意である)ものと判定されたときに、命令種別で電力予測式の使い分けを行う、と判定される。電力値の変化が誤差として説明できる(ζについて有意でない)と判定されたとき、命令種別で電力予測式の使い分けを行わない、と判定される。
ステップS87の処理では、前述のような偏回帰係数の検定が行われ、命令種別に応じた電力値の変化が誤差だけでは説明できない(ζについて有意である)ものと判定されたときに、命令種別で電力予測式の使い分けを行う、と判定される。電力値の変化が誤差として説明できる(ζについて有意でない)と判定されたとき、命令種別で電力予測式の使い分けを行わない、と判定される。
命令種別で電力予測式を使い分けると判定されたときには、モデル制御変数est_ip_typeはTRUEとなるとともに、係数pp_type,Intはpp_type,ξ、係数pp_type,FPはpp_type,ξ+pp_type,ζとなる(ステップS88)。命令種別で電力予測式を使い分けないと判定されたときには、モデル制御変数est_ip_typeはFALSEとなるとともに、係数pp_type,allはpp_type,ξとなる(ステップS89)。なお、係数pp_type,ξの代わりに、前述したように、ξ=MIPSInt+MIPSFPだけをパラメータとした電力予測式、pp_type,allξ+pp_type,const=Pp_typeの係数pp_type,allを用いてもよい。
以上の処理が各分類p_typeについて行われたのち、前述の式(7)に基づき、定数pconstが算出される(ステップS90)。
以上のように求められたモデル制御変数est_mp_type,est_ip_type及び、係数pp_type,i_type、定数pconstは、電力ライブラリとして、たとえば、HDD23に記憶される。
以上のように求められたモデル制御変数est_mp_type,est_ip_type及び、係数pp_type,i_type、定数pconstは、電力ライブラリとして、たとえば、HDD23に記憶される。
図29は、電力ライブラリの一例を示す図である。
図29に示されている電力ライブラリの例では、モデル制御変数est_i、i_type(Int(整数系命令)とFP(浮動小数点系命令))、分類p_typeごとに、係数pp_type,i_typeがまとめられている。
図29に示されている電力ライブラリの例では、モデル制御変数est_i、i_type(Int(整数系命令)とFP(浮動小数点系命令))、分類p_typeごとに、係数pp_type,i_typeがまとめられている。
pFF,Int、pCKBUF,Int、pMEM,Int、pOTHER,Intは、モデル制御変数est_iがTRUEで、i_typeがIntのときの係数pp_type,i_typeの値である。
pFF,FP、pCKBUF,FP、pMEM,FP、pOTHER,FPは、モデル制御変数est_iがTRUEで、i_typeがFPのときの係数pp_type,i_typeの値である。
pFF,FP、pCKBUF,FP、pMEM,FP、pOTHER,FPは、モデル制御変数est_iがTRUEで、i_typeがFPのときの係数pp_type,i_typeの値である。
pFF,all、pCKBUF,all、pMEM,all、pOTHER,allは、モデル制御変数est_iがFALSEのときの係数pp_type,i_typeの値である。
(電力見積処理)
以下、第4の実施の形態の電力見積方法における電力見積処理の一例を説明する。
(電力見積処理)
以下、第4の実施の形態の電力見積方法における電力見積処理の一例を説明する。
図30は、電力見積処理の開始画面の一例を示す図である。
画面80では、入力ファイル指定欄81において、電力ライブラリとMIPS値が記述されたファイルが、ユーザによって指定される。
画面80では、入力ファイル指定欄81において、電力ライブラリとMIPS値が記述されたファイルが、ユーザによって指定される。
なお、MIPS値は、電力ライブラリ作成時に入力されるものと同じであっても異なるものであってもよい。MIPS値は、たとえば、ISS(Instruction Set Simulator)を用いたシミュレーション、ESL(Electronic System Level)シミュレーション、またはプロセッサが提供する性能解析情報から取得できる。
見積もり電力保存先指定欄82では、算出された見積もり電力の保存先が、ユーザによって指定される。
また、ボタン83が、たとえば、ユーザによるマウス25bなどの操作によって押されると、以下に示すような電力見積処理が行われる。
また、ボタン83が、たとえば、ユーザによるマウス25bなどの操作によって押されると、以下に示すような電力見積処理が行われる。
電力見積処理では、プロセッサ21は、式(8)に基づき、入力されたMIPS値(MIPSInt,MIPSFP)と、電力ライブラリを参照して、見積もり電力Pest(MIPSInt,MIPSFP)を算出する。
なお、式(8)において、π(est_ip_type,p_type,i_type)は、図29に示したような電力ライブラリにおける係数pp_type,i_typeの値である。また、式(8)において、パラメータの値であるν(est_mp_type,i_type)は、たとえば、以下のテーブルから決定される。
図31は、パラメータ値を指定するテーブルの一例を示す図である。
図31に示されているテーブルの例では、モデル制御変数est_m(constとl_inst_num)と命令種別i_type(IntとFP)に応じて、ν(est_mp_type,i_type)として使用されるパラメータの値が示されている。
図31に示されているテーブルの例では、モデル制御変数est_m(constとl_inst_num)と命令種別i_type(IntとFP)に応じて、ν(est_mp_type,i_type)として使用されるパラメータの値が示されている。
モデル制御変数est_mがconstのときは、ν(est_mp_type,i_type)は、命令種別i_typeによらず、1である。モデル制御変数est_mがl_inst_numのとき、ν(est_mp_type,i_type)は、命令種別i_typeがIntのときは、入力されたMIPSInt、命令種別i_typeがFPのときは、入力されたMIPSFPである。
プロセッサ21は、電力ライブラリや図31に示されているようなパラメータ値を指定するテーブルの値を、式(8)で示される電力モデルに適用することで、見積もり電力を算出する。
(電力ライブラリ作成処理の変形例)
以下、電力ライブラリ作成処理の変形例を説明する。
前述の式(5)において、est_m=constのときの、Pestp_type(MIPSInt,MIPSFP)=0×1+0×1+pp_type,constは、0×MIPSInt+0×MIPSFP+pp_type,constとしても同じである。
以下、電力ライブラリ作成処理の変形例を説明する。
前述の式(5)において、est_m=constのときの、Pestp_type(MIPSInt,MIPSFP)=0×1+0×1+pp_type,constは、0×MIPSInt+0×MIPSFP+pp_type,constとしても同じである。
また、式(5)から、est_m=constのとき(電力予測式を定数でモデル化するとき)、pp_type,Intとpp_type,FPは0である。est_m=l_inst_numかつest_i=TRUEのとき(電力予測式を線形式でモデル化するとともに命令種別ごとに電力予測式を使い分けるとき)、pp_type,Intとpp_type,FPはpp_type,allである。これらの情報に基づき電力ライブラリを作成し、電力見積処理にて用いるようにすることで、式(5)は、以下の式(11)のように簡略化できる。
そのため、係数pp_type,all、モデル制御変数est_ip_type,est_mp_type、関数π(est_i,p_type,i_type),ν(est_m,i_type)は、電力予測式においては用いなくてもよくなる。そのため、電力モデルである式(8)は、以下の式(12)のように簡略化できる。
上記の式(12)で表せる電力モデルに基づく電力ライブラリの作成処理について、以下に説明する。
図32は、電力ライブラリ作成処理の変形例を説明するフローチャートである。なお、各処理ステップの順序は一例であり、適宜入れ替えてもよい。
図32は、電力ライブラリ作成処理の変形例を説明するフローチャートである。なお、各処理ステップの順序は一例であり、適宜入れ替えてもよい。
プロセッサ21は、以下のステップS90〜S97の処理を、分類p_type(たとえば、FF、クロックラインに関係するセル、メモリ、その他)ごとに行う。
ステップS90,S91の処理は、図28に示したステップS80,S81の処理と同じである。ただし、式(12)に基づく電力ライブラリの作成処理では、モデル制御変数est_mp_typeは用いられないため、CV≧CVrefではない場合には、est_mp_type=constとする処理は行われず、ステップS92の処理が行われる。
ステップS90,S91の処理は、図28に示したステップS80,S81の処理と同じである。ただし、式(12)に基づく電力ライブラリの作成処理では、モデル制御変数est_mp_typeは用いられないため、CV≧CVrefではない場合には、est_mp_type=constとする処理は行われず、ステップS92の処理が行われる。
ステップS92の処理では、pp_type,Int=0、pp_type,FP=0、pp_type,const=Pp_typeの平均値となる。
ステップS93,S94の処理では、図28に示したステップS84,S85の処理と同様に、回帰分析とモデルの選択が行われる。ただし、モデルの選択において、電力予測式が定数でモデル化するような選択が行われると、前述のように、est_mp_type=constとする処理は行われず、ステップS92の処理が行われる。また、電力予測式が線形式でモデル化するような選択が行われると、est_mp_type=l_inst_numとする処理は行われず、ステップS95の処理が行われる。
ステップS93,S94の処理では、図28に示したステップS84,S85の処理と同様に、回帰分析とモデルの選択が行われる。ただし、モデルの選択において、電力予測式が定数でモデル化するような選択が行われると、前述のように、est_mp_type=constとする処理は行われず、ステップS92の処理が行われる。また、電力予測式が線形式でモデル化するような選択が行われると、est_mp_type=l_inst_numとする処理は行われず、ステップS95の処理が行われる。
ステップS95の処理では、図28に示したステップS87の処理と同様に、検定が行われ、命令種別(整数系命令か浮動小数点系命令)で電力予測式を使い分けるか否かが判定される。
命令種別で電力予測式を使い分けると判定されたときには、ステップS96の処理が行われ、命令種別で電力予測式を使い分けないと判定されたときには、ステップS97の処理が行われる。
ステップS96の処理では、係数pp_type,Intはpp_type,ξ、係数pp_type,FPはpp_type,ξ+pp_type,ζとなり、ステップS97の処理では、係数pp_type,Int,pp_type,FPはpp_type,ξとなる。
以上の処理が各分類p_typeについて行われたのち、前述の式(7)に基づき、定数pconstが算出される(ステップS98)。
以上のように求められた係数pp_type,i_type、定数pconstは、電力ライブラリとして、たとえば、HDD23に記憶される。上記の処理によれば、係数pp_type,all、モデル制御変数est_ip_type,est_mp_typeは用いずに電力ライブラリが作成される。そのため、電力見積処理の際には、図29や図31に示したようなテーブルの参照が不要になり、係数pp_type,i_type、定数pconstと、入力されたパラメータの値(MIPS値)から見積もり電力を算出することができるようになる。
以上のように求められた係数pp_type,i_type、定数pconstは、電力ライブラリとして、たとえば、HDD23に記憶される。上記の処理によれば、係数pp_type,all、モデル制御変数est_ip_type,est_mp_typeは用いずに電力ライブラリが作成される。そのため、電力見積処理の際には、図29や図31に示したようなテーブルの参照が不要になり、係数pp_type,i_type、定数pconstと、入力されたパラメータの値(MIPS値)から見積もり電力を算出することができるようになる。
以上のような第4の実施の形態の電力見積方法によれば、命令種別や、電力発生要因を考慮した電力見積が行えるため、プロセッサを含む半導体集積回路の消費電力を精度よく見積もることができる。また、命令種別ごとにMIPS値を分けることによる消費電力への影響が小さいときには、命令種別ごとのMIPS値を合計したパラメータを用いるため、電力モデルを簡素化でき、前述第2乃至第3の実施の形態の電力見積方法と同様の効果が得られる。
また、上記のような電力ライブラリ作成処理を、図4〜図6に示したような処理と組み合わせることもできる。これにより、MIPS値の他、他のパラメータを用いたときも、プロセッサの消費電力を考慮しつつ、パラメータ数を削除した、または平均電力を用いた簡素な電力モデルを作成できる。
(第5の実施の形態)
以下、第5の実施の形態の電力見積方法について説明する。電力見積装置については、図2に示した電力見積装置20が適用可能である。
以下、第5の実施の形態の電力見積方法について説明する。電力見積装置については、図2に示した電力見積装置20が適用可能である。
第5の実施の形態の電力見積方法も、電力見積対象装置を、CPUやDSPなどのプロセッサを含む半導体集積回路としたものであるが、プロセッサにおける、電力発生要因や命令種別の他に、動作率も考慮した電力モデルを作成し、電力見積を行うものである。動作率は、1クロックサイクルで信号値が変動する確率(=信号変動回数/クロック周波数)である。
図33は、MIPS値と消費電力との相関関係のシミュレーション例を示す図である。
また、図34は、動作率を乗じたMIPS値と消費電力との相関関係のシミュレーション例を示す図である。
また、図34は、動作率を乗じたMIPS値と消費電力との相関関係のシミュレーション例を示す図である。
図33において、横軸はMIPS値を示し、縦軸は消費電力を示している。図34では、横軸は動作率を乗じたMIPS値を示し、縦軸は消費電力を示している。図33、図34で示されている消費電力は、各電力発生要因(FF、クロックバッファ、メモリ、その他)での消費電力の総和である。FFとメモリの動作率としては、クロック端子の平均動作率、クロックバッファとその他の電力発生要因の動作率については出力端子の平均動作率が用いられている。なお、シミュレーションにおいて、浮動小数点系命令については浮動小数点ベンチマークプログラム、整数系命令については整数ベンチマークプログラムが用いられている。
図33、図34に示されているように、MIPS値と消費電力との相関関係(図33)に比べて、動作率を乗じたMIPS値と消費電力との相関関係(図34)は、よい相関を示す。
図35は、命令種別ごとの、動作率を乗じたMIPS値と消費電力との相関関係のシミュレーション例を示す図である。
横軸は動作率を乗じたMIPS値であり、縦軸は消費電力である。四角のプロット(たとえば、plt11)は、浮動小数点ベンチマークプログラムを用いた電力算出例を示し、ダイヤのプロット(たとえば、plt12)は、整数ベンチマークプログラムを用いた電力算出例を示している。図35では、2種の命令種別(整数系命令と浮動小数点系命令)ごとの消費電力が2種のベンチマークプログラムで計算されている。
横軸は動作率を乗じたMIPS値であり、縦軸は消費電力である。四角のプロット(たとえば、plt11)は、浮動小数点ベンチマークプログラムを用いた電力算出例を示し、ダイヤのプロット(たとえば、plt12)は、整数ベンチマークプログラムを用いた電力算出例を示している。図35では、2種の命令種別(整数系命令と浮動小数点系命令)ごとの消費電力が2種のベンチマークプログラムで計算されている。
図16に示した命令種別ごとの消費電力とMIPS値とは、比較的よい相関を示していたが、図35に示した命令種別ごとの消費電力と動作率を乗じたMIPS値とは、さらによい相関を示し、直線ln11,ln12でほぼ近似できることが分かる。
第5の実施の形態の電力見積方法では、命令種別と電力発生要因の他に、上記のような動作率を考慮して、電力モデルが作成される。電力モデルで表現される見積もり電力は、電力発生要因の分類p_typeごとの見積もり電力の和で表現される。また、分類p_typeごとの見積もり電力は、定数か、MIPS値(または動作率を乗じたMIPS値)の合計をパラメータとする線形式か、命令種別ごとのMIPS値(または動作率を乗じたMIPS値)をパラメータとする線形式か、の何れかにより予測される。なお、適用される動作率は、分類p_typeごとに異なるが、クロックツリーの動作率またはデータパスの動作率の何れかに近似される。以下では、クロック端子を有するFF、メモリ及びクロックバッファについてはクロックツリーの動作率が用いられ、その他についてはデータパスの動作率が用いられるものとする。これにより、計算量を抑えられる。なお、たとえば、クロックツリーの動作率の代わりに、FFの動作率の平均値、メモリの動作率の平均値及びクロックバッファの動作率の平均値を、それぞれのセル数に基づいて加重平均したものを用いてもよい。
電力モデルは、たとえば、以下のように表される。
式(13)において、αCKは、クロックツリーの動作率を示し、αDPは、データパスの動作率を示している。その他の要素については、式(3)と同じである。
Pestp_type(MIPSInt,MIPSFP,αCK,αDP)は、分類p_typeにおける見積もり電力であり、以下の式(14)のようにモデル制御変数est_m,est_iの状態に応じて5種類の電力予測式で表される。
Pestp_type(MIPSInt,MIPSFP,αCK,αDP)は、分類p_typeにおける見積もり電力であり、以下の式(14)のようにモデル制御変数est_m,est_iの状態に応じて5種類の電力予測式で表される。
式(14)では、式(4)の3種類の電力予測式に加えて、動作率を考慮した2種類の電力予測式が追加されている。すなわち、est_m=l_act_numかつ、est_i=TRUEであるときに、Pestp_type(MIPSInt,MIPSFP,αCK,αDP)を表す、命令種別ごとのMIPS値の合計に動作率αp_typeを乗じた値をパラメータとする線形式が追加されている。さらに、est_m=l_act_numかつ、est_i=FALSEであるときに、Pestp_type(MIPSInt,MIPSFP,αCK,αDP)を表す、命令種別ごとのMIPS値に動作率αp_typeを乗じた値をパラメータとする線形式が追加されている。動作率αp_typeは、分類p_typeが、FF、メモリ、クロックバッファのときには、αp_type=αCKであり、その他のときには、αp_type=αDPである。
ところで式(14)は、以下のように書き換えられる。
式(15)において、est_m=constのときは、pp_type,Int=0、pp_type,FP=0、est_i=TRUEのときは、pp_type,Int=pp_type,all、pp_type,FP=pp_type,allとする。また、関数ν(est_mp_type,,i_type)を導入する。関数ν(est_mp_type,,i_type)は、モデル制御変数est_mがl_act_numのときMIPSi_typeαp_type、モデル制御変数est_mがその他のときには、MIPSi_typeとなる関数である。関数ν(est_m,p_type,i_type)を用いて、式(15)を書き換えると、以下の式(16)のようになる。
式(16)を、式(13)に代入すると、以下のような電力予測式が得られる。
本実施の形態における電力見積方法では、プロセッサ21が、入力データ(MIPS値MIPSi_type、動作率αp_type、電力値)に基づいて、回帰分析や検定などにより、モデル制御変数est_m,est_i、係数pp_type、定数pconstを求める。
本実施の形態の電力見積方法についても、図3に示した処理の流れと同様に行われる。ただし、第5の実施の形態の電力見積方法では、パラメータとして、MIPS値と動作率が用いられる。以下にMIPS値、動作率と、電力値を含む入力データの取得方法の例を説明する。
(入力データ取得方法)
図36は、入力データ取得方法の一例を示す図である。
図25に示した内容と同様の処理及びデータについては同一符号を付し、説明を省略する。なお、計算対象となる半導体集積回路は、物理設計の実績があるものであり(たとえば、試作チップ作成などが行われたもの)、電力が計算できるとともに、分類p_typeごとの動作率をプロセッサ21が取得できるものとする。電力ライブラリの作成に使用する動作率は、たとえば、各分類p_typeの動作率の平均値とする。
図36は、入力データ取得方法の一例を示す図である。
図25に示した内容と同様の処理及びデータについては同一符号を付し、説明を省略する。なお、計算対象となる半導体集積回路は、物理設計の実績があるものであり(たとえば、試作チップ作成などが行われたもの)、電力が計算できるとともに、分類p_typeごとの動作率をプロセッサ21が取得できるものとする。電力ライブラリの作成に使用する動作率は、たとえば、各分類p_typeの動作率の平均値とする。
第5の実施の形態の電力見積方法において、波形解析(ステップS71a)の際には、プロセッサ21は、波形データD11からMIPS値の他に、動作率を取得する。
図37は、算出された電力値とMIPS値及び動作率の一例を示す図である。
図37は、算出された電力値とMIPS値及び動作率の一例を示す図である。
図37には、図26に示したサンプルごとの電力値、MIPS値の他に、サンプルごとの動作率が示されている。動作率は、FF、クロックラインに関係するセル(“CLK”)、メモリ(“MEM”)、その他(“OTHER”)、クロックツリー(“CK”)という分類ごとにまとめられている。たとえば、サンプル1〜サンプルnにおける、FFの動作率αFF1〜αFFn、CLKの動作率αCLK1〜αCLKn、MEMの動作率αMEM1〜αMEMn、OTHERの電力値αOTHER1〜αOTHERn、CKの動作率αCK1〜αCKnが示されている。
算出された電力値、MIPS値及び動作率は、たとえば、HDD23などの記憶部に記憶される。
その後、プロセッサ21は、電力値とMIPS値を、たとえば、HDD23から取得し(読み出し)、電力ライブラリを作成する。
その後、プロセッサ21は、電力値とMIPS値を、たとえば、HDD23から取得し(読み出し)、電力ライブラリを作成する。
(電力ライブラリ作成処理)
以下、第5の実施の形態の電力見積方法における電力ライブラリ作成処理の一例を説明する。
以下、第5の実施の形態の電力見積方法における電力ライブラリ作成処理の一例を説明する。
図38は、電力ライブラリ作成処理の開始画面の一例を示す図である。
画面90では、入力ファイル指定欄91において、サンプルの電力値、MIPS値及び動作率が記述されたファイルが、ユーザによって指定される。図38の例では、入力ファイル指定欄91で、電力値とMIPS値と動作率は別々のファイルで指定される。電力ライブラリ保存先指定欄92では、作成される電力ライブラリの保存先が、ユーザによって指定される。
画面90では、入力ファイル指定欄91において、サンプルの電力値、MIPS値及び動作率が記述されたファイルが、ユーザによって指定される。図38の例では、入力ファイル指定欄91で、電力値とMIPS値と動作率は別々のファイルで指定される。電力ライブラリ保存先指定欄92では、作成される電力ライブラリの保存先が、ユーザによって指定される。
また、ボタン93が、たとえば、ユーザによるマウス25bなどの操作によって押されると、以下に示すような電力ライブラリの作成処理が行われる。また、タブ94が、たとえば、ユーザによるマウス25bなどの操作によって押されると、後述する電力見積処理が行われる。
電力ライブラリ作成処理は、前述した第4の実施の形態における電力ライブラリ作成処理とほぼ同様である。ただし、第5の実施の形態における電力ライブラリ作成処理では、動作率を導入することにより、以下の処理が追加される。
プロセッサ21は、式(14)(または式(15))に示されている5種類の電力予測式のうち、動作率αp_typeを使用するものと、使用しないものとで、どちらが消費電力をよく予測できるかの判断を行う。判断の基準としては、たとえば、決定係数が用いられる。
図39は、電力ライブラリ作成処理の一例の流れを説明するフローチャートである。なお、各処理ステップの順序は一例であり、適宜入れ替えてもよい。
プロセッサ21は、以下のステップS100〜S114の処理を、分類p_type(たとえば、FF、クロックバッファ、メモリ、その他)ごとに行う。
プロセッサ21は、以下のステップS100〜S114の処理を、分類p_type(たとえば、FF、クロックバッファ、メモリ、その他)ごとに行う。
ステップS100,S101,S102,S103の処理は、前述の図28に示した電力ライブラリ作成処理のステップS80〜S83の処理とほぼ同じであり、分類p_typeについての電力予測式は定数(電力値Pp_typeの平均値)でモデル化される。ただ、第5の実施の形態における電力ライブラリ作成処理では、モデル制御変数est_ip_typeは使用されないため、ステップS103の処理では、モデル制御変数est_ip_typeの設定は行われない。また、図39の電力ライブラリ作成方法の例では、係数pp_type,allも使用されないため、ステップS103の処理では、pp_type,Int=0、pp_type,FP=0に設定される。
一方、ステップS101の処理で、CV≧CVrefであると判定されたときには、回帰分析が行われる(ステップS104)。ステップS104の処理では、ξ=MIPSInt+MIPSFP、ζ=MIPSFP、ξα=αp_typeξ、ζα=αp_typeζとして、以下の2つの式に対して回帰分析が行われる。
式(18)に対する回帰分析から係数pp_type,ξ,pp_type,ζ、定数pp_type,constと決定係数R2が得られ、式(19)に対する回帰分析から係数pp_type,ξα,pp_type,ζα、定数pp_type,constαと決定係数Rα2が得られる。
その後、モデルの選択が行われる(ステップS105)。ステップS105の処理では、電力予測式を定数(平均値)でモデル化するか、線形式でモデル化するかが選択される。
たとえば、決定係数R2または決定係数Rα2が0.5以上ならば、消費電力は、MIPS値と相関があると見なされ、電力予測式を線形式でモデル化するように選択される。決定係数R2または決定係数Rα2が0.5未満ならば、消費電力は、MIPS値と相関がないと見なされ、電力予測式を定数でモデル化するように選択される。
決定係数を用いる代わりに、たとえば、偏回帰係数の検定(t検定)の有意確率(p値)を用い、p値が所定の閾値(たとえば0.05)以下のときに線形式、閾値より大きいときに定数でモデル化するようにしてもよい。
ステップS105の処理で、電力予測式を定数(平均値)でモデル化することが選択されたときには、前述したステップS102の処理が行われる。電力予測式を線形式でモデル化することが選択されたときには、電力予測式に動作率を適用するか否かが判定される(ステップS106)。
ステップS106の処理では、たとえば、R2≧Rα2であるか否かによって、電力予測式に動作率を適用するか否かが判定される。
R2≧Rα2であるならば、動作率を用いたときの消費電力とMIPS値との相関は、動作率を用いないときの消費電力とMIPS値との相関と同じか小さいと見なされ、電力予測式に動作率を適用しないと判定される。R2<Rα2であるならば、動作率を用いたときの消費電力とMIPS値との相関は、動作率を用いないときの消費電力とMIPS値との相関よりも大きいと見なされ、電力予測式に動作率を適用すると判定される。
R2≧Rα2であるならば、動作率を用いたときの消費電力とMIPS値との相関は、動作率を用いないときの消費電力とMIPS値との相関と同じか小さいと見なされ、電力予測式に動作率を適用しないと判定される。R2<Rα2であるならば、動作率を用いたときの消費電力とMIPS値との相関は、動作率を用いないときの消費電力とMIPS値との相関よりも大きいと見なされ、電力予測式に動作率を適用すると判定される。
また、決定係数を用いる代わりに、たとえば、式(18)、式(19)における偏回帰係数の検定(t検定)の有意確率(p値)を用いてもよい。式(18)における偏回帰係数の検定(t検定)のp値が、式(19)における偏回帰係数の検定(t検定)のp値以下のときに動作率を適用しない、それ以外のときには動作率を適用するようにしてもよい。
電力予測式に動作率を適用しないと判定されたときには、ステップS107,S108,S109,S110の処理が行われる。ステップS107〜S110の処理は、図28のステップS86〜S89の処理とほぼ同じである。ただ、第5の実施の形態における電力ライブラリ作成処理では、モデル制御変数est_ip_typeは使用されないため、ステップS109,S110の処理では、モデル制御変数est_ip_typeの設定は行われない。また、図39の電力ライブラリ作成方法の例では、係数pp_type,allも使用されないため、ステップS110の処理では、pp_type,Int=pp_type,ξ、pp_type,FP=pp_type,ξに設定される。
電力予測式に動作率を適用すると判定されたときには、ステップS111,S112,S113,S114の処理が行われる。
ステップS111の処理では、モデル制御変数est_mp_typeはest_mp_type=l_act_numとなる。
ステップS111の処理では、モデル制御変数est_mp_typeはest_mp_type=l_act_numとなる。
ステップS112の処理では、命令種別で電力予測式を使い分けるか否かが判定される。ステップS112の処理では、偏回帰係数の検定が行われ、命令種別に応じた電力値の変化が誤差だけでは説明できない(ζαについて有意である)ものと判定されたときに、命令種別で電力予測式の使い分けを行う、と判定される。電力値の変化が誤差として説明できる(ζαについて有意でない)と判定されたとき、命令種別で電力予測式の使い分けを行わない、と判定される。
命令種別で電力予測式を使い分けると判定されたときには、ステップS113の処理にて、係数pp_type,Intはpp_type,ξα、係数pp_type,FPはpp_type,ξα+pp_type,ζα、定数pp_type,constはpp_type,constαとなる。
命令種別で電力予測式を使い分けないと判定されたときには、ステップS114の処理にて、係数pp_type,Intと係数pp_type,FPは、pp_type,ξαとなり、定数pp_type,constはpp_type,constαとなる。
なお、ステップS110,S114の処理では、係数pp_type,ξ,pp_type,ξαの代わりに、ξだけをパラメータとした電力予測式の係数を用いてもよい。ξだけをパラメータとした電力予測式はpp_type,allξ+pp_type,const=Pp_typeまたはpp_type,allξα+pp_type,constα=Pp_typeと表せ、その係数はpp_type,allである。
以上の処理が各分類p_typeについて行われたのち、前述の式(7)に基づき、定数pconstが算出される(ステップS115)。
以上のように求められたモデル制御変数est_mp_type及び、係数pp_type,i_type、定数pconstは、電力ライブラリとして、たとえば、HDD23に記憶される。
以上のように求められたモデル制御変数est_mp_type及び、係数pp_type,i_type、定数pconstは、電力ライブラリとして、たとえば、HDD23に記憶される。
(電力見積処理)
以下、第5の実施の形態の電力見積方法における電力見積処理の一例を説明する。
図40は、電力見積処理の開始画面の一例を示す図である。
以下、第5の実施の形態の電力見積方法における電力見積処理の一例を説明する。
図40は、電力見積処理の開始画面の一例を示す図である。
画面100では、入力ファイル指定欄101において、電力ライブラリとMIPS値が記述されたファイルが、ユーザによって指定される。さらに、入力ファイル指定欄101では、パラメータとして使用する動作率として、電力ライブラリ作成時の動作率を利用するか、指定値を入力するかがユーザによって選択できるようになっている。動作率として指定値を入力したいときには、入力ファイル指定欄101において、クロックツリーの動作率やデータパスの動作率が入力できるようになっている。
なお、MIPS値や動作率は、電力ライブラリ作成時に入力されるものと同じであっても異なるものであってもよい。MIPS値は、たとえば、ISSを用いたシミュレーション、ESLシミュレーション、またはプロセッサが提供する性能解析情報から取得できる。動作率も、たとえば、上記性能解析情報から取得できる。または、図40のようにユーザ(設計者)が動作率の予測値を入力するようにしてもよい。また、電力ライブラリ作成時の動作率から算出される動作率のデフォルト値を用いてもよい。
見積もり電力保存先指定欄102では、算出された見積もり電力の保存先が、ユーザによって指定される。
また、ボタン103が、たとえば、ユーザによるマウス25bなどの操作によって押されると、以下に示すような電力見積処理が行われる。
また、ボタン103が、たとえば、ユーザによるマウス25bなどの操作によって押されると、以下に示すような電力見積処理が行われる。
電力見積処理では、プロセッサ21は、式(17)に基づき、入力されたMIPS値(MIPSInt,MIPSFP)と、電力ライブラリと、動作率を参照して、見積もり電力Pest(MIPSInt,MIPSFP,αCK,αDP)を算出する。
なお、式(17)において、関数ν(est_mp_type,p_type,i_type)は、前述したように、モデル制御変数est_mがl_act_numのときMIPSi_typeαp_typeとなる。また、関数ν(est_mp_type,p_type,i_type)は、モデル制御変数est_mがその他のときには、est_m=MIPSi_typeとなる。このような関数ν(est_mp_type,p_type,i_type)の値を決定するテーブルを電力ライブラリとして作成し、電力見積処理の際に、モデル制御変数est_mの値に応じて、上記テーブルの値をプロセッサ21が利用するようにしてもよい。これにより電力見積処理が容易になる。
また、以下に示すような関数ρ(est_m,p_type)を用いて関数ν(est_mp_type,p_type,i_type)を表すことで、テーブルのサイズを小さくすることができる。
関数ρ(est_m,p_type)は、モデル制御変数est_mがl_act_num、かつ、分類p_typeがその他(“OTHER”)のときに、データパスの動作率αDPとなる。また、関数ρ(est_m,p_type)は、モデル制御変数est_mがl_act_num、かつ、分類p_typeがFF、クロックバッファ、メモリのときに、クロックツリーの動作率αCKとなる。また、関数ρ(est_m,p_type)は、その他の条件のときには、1となる。
関数ρ(est_m,p_type)は、たとえば、以下のようなテーブルで表せる。
図41は、関数ρ(est_m,p_type)の一例を示す図である。
関数ρ(est_m,p_type)は、モデル制御変数est_mがl_act_numで分類p_typeがFF、クロックバッファ、メモリのときに、クロックツリーの動作率αCK、分類p_typeがその他のときには、データパスの動作率αDPとなる。関数ρ(est_m,p_type)は、モデル制御変数est_mがconstまたはl_inst_numのときには、分類p_typeによらず、1となる。
図41は、関数ρ(est_m,p_type)の一例を示す図である。
関数ρ(est_m,p_type)は、モデル制御変数est_mがl_act_numで分類p_typeがFF、クロックバッファ、メモリのときに、クロックツリーの動作率αCK、分類p_typeがその他のときには、データパスの動作率αDPとなる。関数ρ(est_m,p_type)は、モデル制御変数est_mがconstまたはl_inst_numのときには、分類p_typeによらず、1となる。
このような関数ρ(est_m,p_type)を用いると、関数ν(est_mp_type,p_type,i_type)は、ν(est_mp_type,p_type,i_type)=MIPSi_typeρ(est_m,p_type)と表せる。
そして、電力見積処理の際、プロセッサ21は、たとえば、HDD23に格納された図41に示すようなテーブルを参照し、モデル制御変数est_mと分類p_typeに応応じた関数ρ(est_m,p_type)の値を取得する。そして、プロセッサ21は、取得した関数ρ(est_m,p_type)の値と、MIPSi_typeに基づき、関数ν(est_mp_type,p_type,i_type)を算出し、式(17)で示される電力モデルに適用することで、見積もり電力を算出する。
以上のような第5の実施の形態の電力見積方法では、第4の実施の形態の電力見積方法と同様の効果が得られるとともに、電力発生要因の分類ごとの動作率を考慮して電力見積を行うことで、より精度のよい電力見積を行える。また、動作率を考慮しない方が消費電力を精度よく算出できる場合(動作率を乗じたMIPS値と消費電力と相関が小さい場合)には、動作率を考慮せずに電力モデルを作成するので、簡素な電力モデルを作成でき、電力見積計算の計算量を抑えることができる。
(第6の実施の形態)
以下、第6の実施の形態の電力見積方法について説明する。電力見積装置については、図2に示した電力見積装置20が適用可能である。
以下、第6の実施の形態の電力見積方法について説明する。電力見積装置については、図2に示した電力見積装置20が適用可能である。
前述した第4及び第5の実施の形態の電力見積方法では、整数系と浮動小数点系の命令のMIPS値がそれぞれ計測できることを前提とした。以下に示す第6の実施の形態の電力見積方法では、計測できるMIPS値は各命令種別のMIPS値の合計値であるものとする。
第6の実施の形態の電力見積方法では、プロセッサ21が命令種別を判別するために、サンプル(CPUやDSPなどのプロセッサを含む半導体集積回路)で実行されるプログラムは、どの命令種別が支配的なのかの情報が、たとえば、ユーザから提供される。たとえば、サンプルで実行されるプログラムの命令は、整数系命令が多いのか、浮動小数点系命令が多いのか、などの情報が提供される。
第6の実施の形態の電力見積方法において作成される電力予測式は、動作率を考慮しない場合には、たとえば、式(8)、動作率を考慮する場合には、たとえば、式(17)とほぼ同様になる。ただし、MIPS値は命令種別i_typeごとに取得されないため、Σ内の変数として命令種別i_typeはなくなり、電力予測式自体が、命令種別i_typeごとに作成される。
本実施の形態でも、MIPS値と電力値を含む入力データをプロセッサ21が取得して、入力データに基づいて、回帰分析や検定などにより、前述したモデル制御変数est_m、係数pp_type,i_type、定数pconst,i_typeが求められる。
本実施の形態の電力見積方法についても、図3に示した処理の流れと同様に行われる。ただし、第6の実施の形態の電力見積方法では、入力データとしてMIPS値及び電力値の他、サンプルにおける支配的な命令種別i_typeに関する情報と、動作率を考慮する場合には動作率の情報が用いられる。以下に入力データの取得方法の例を説明する。
(入力データ取得方法)
各サンプルについての、電力値、MIPS値及び動作率については、前述の図36に示した処理にて取得できる。ただし、本実施の形態の電力見積方法において取得されるMIPS値は、命令種別i_typeごとのMIPS値ではなく、各命令種別i_typeのMIPS値の合計値である。これらの入力データとともに、プロセッサ21は、サンプルにおける支配的な命令種別i_typeに関する情報を、たとえば、ユーザから取得する。なお、この時、プロセッサ21は、MIPS値以外に、サンプル1〜サンプルnの他のパラメータを取得してもよい。
各サンプルについての、電力値、MIPS値及び動作率については、前述の図36に示した処理にて取得できる。ただし、本実施の形態の電力見積方法において取得されるMIPS値は、命令種別i_typeごとのMIPS値ではなく、各命令種別i_typeのMIPS値の合計値である。これらの入力データとともに、プロセッサ21は、サンプルにおける支配的な命令種別i_typeに関する情報を、たとえば、ユーザから取得する。なお、この時、プロセッサ21は、MIPS値以外に、サンプル1〜サンプルnの他のパラメータを取得してもよい。
図42は、取得した入力データの一例を示す図である。
図42には、サンプルごとの電力値、MIPS値、動作率の他に、サンプルのプログラムタイプprog1〜prognが示されている。プログラムタイプprog1〜prognは、支配的な命令種別i_typeを示し、整数系命令が支配的なときにはInt、浮動小数点系命令が支配的なときにはFP、どちらの命令が支配的でもないときにはallとなる。なお、動作率を考慮しないときには、動作率は取得しなくてもよい。
図42には、サンプルごとの電力値、MIPS値、動作率の他に、サンプルのプログラムタイプprog1〜prognが示されている。プログラムタイプprog1〜prognは、支配的な命令種別i_typeを示し、整数系命令が支配的なときにはInt、浮動小数点系命令が支配的なときにはFP、どちらの命令が支配的でもないときにはallとなる。なお、動作率を考慮しないときには、動作率は取得しなくてもよい。
入力データは、たとえば、HDD23などの記憶部に記憶される。
その後、プロセッサ21は、入力データを、たとえば、HDD23から取得し(読み出し)、電力ライブラリを作成する。
その後、プロセッサ21は、入力データを、たとえば、HDD23から取得し(読み出し)、電力ライブラリを作成する。
(電力ライブラリ作成処理)
以下、第6の実施の形態の電力見積方法における電力ライブラリ作成処理の一例を説明する。
以下、第6の実施の形態の電力見積方法における電力ライブラリ作成処理の一例を説明する。
図43は、電力ライブラリ作成処理の一例の流れを説明するフローチャートである。なお、図43では、動作率を考慮するときの電力ライブラリ作成処理の一例を示しているが、動作率を考慮しないときには、ステップS126,S129,S130の処理は行われない。各処理ステップの順序は一例であり、適宜入れ替えてもよい。
プロセッサ21は、以下のステップS120〜S130の処理を、分類p_type(たとえば、FF、クロックラインに関係するセル、メモリ、その他)及び命令種別i_type(前述したInt、FP、all)ごとに行う。そのために、係数pp_type,i_typeや定数pp_type,const,i_typeは、命令種別i_typeごとに求められる。
ステップS120,S121,S122,S123の処理は、前述の図39のステップS100〜S103の処理とほぼ同じであり、分類p_type及び命令種別i_typeについての電力予測式は定数(電力値Pp_typeの平均値)でモデル化される。ただ、本実施の形態における電力ライブラリ作成処理では命令種別i_typeに応じた係数pp_type,Intとpp_type,FPの使い分けは行われないため、ステップS123の処理では、係数pp_type,i_typeが用いられ、pp_type,i_type=0と設定される。
一方、ステップS121の処理で、CV≧CVrefであると判定されたときには、回帰分析が行われる(ステップS124)。ステップS124の処理において処理対象となるサンプルは、命令種別i_typeがIntまたはFPのときには、図42に示したサンプル1〜サンプルnのうち、プログラムタイプprog1〜prognが、IntまたはFPとなるものである。命令種別i_typeがallのときには、図42に示した全サンプル1〜サンプルnが、処理対象となる。
ステップS124の処理では、ξα=αp_typeMIPSとして、以下の2つの式に対して回帰分析が行われる。
式(20)に対する回帰分析から係数pp_type、定数pp_type,constと決定係数R2が得られ、式(21)に対する回帰分析から係数pp_type,α、定数pp_type,constαと決定係数Rα2が得られる。
その後に行われるステップS125,S126,S127,S129の処理は、図39に示したステップS105〜S107,S111の処理と同じである。ただし、ステップS127,S129の処理後は、命令種別で電力予測式を使い分けるか否かの判定は行われず、ステップS128,S130の処理が行われる。
ステップS128の処理では、pp_type,i_type=pp_type、pp_type,const,i_type=pp_type,constに設定される。ステップS130の処理では、pp_type,i_type=pp_type,α、pp_type,const,i_type=pp_type,constαに設定される。
以上の処理が各分類p_type、命令種別i_typeについて行われたのち、前述の式(7)に基づき、定数pconstが算出される(ステップS131)。ただし、命令種別i_typeごとの電力予測式が算出されるため、定数pconst,pp_type,constの代わりに定数pconst,i_type,pp_type,const,i_typeが用いられる。
以上のように求められたモデル制御変数est_mp_type及び、係数pp_type,i_type、定数pconst,i_typeは、電力ライブラリとして、たとえば、HDD23に記憶される。
また、上記のような電力ライブラリ作成処理を、図4〜図6に示したような処理と組み合わせることもできる。これにより、MIPS値の他、他のパラメータを用いたときも、プロセッサの消費電力を考慮しつつ、パラメータ数を削除した、または平均電力を用いた簡素な電力モデルを作成できる。
(電力見積処理)
第6の実施の形態における電力見積処理は、第4または第5の実施の形態における電力見積処理とほぼ同様であるが、入力データとして、電力見積対象の予測MIPS値と、予測動作率(動作率を考慮する場合)の他に、支配的な命令種別が指定される。たとえば、整数系命令が支配的なときには、電力ライブラリのうち、命令種別i_typeをIntとしたときの係数pp_type,i_typeや、定数pconst,i_typeが用いられ電力見積が行われる。たとえば、浮動小数点系命令が支配的なときには、電力ライブラリのうち、命令種別i_typeをFPとしたときの係数pp_type,i_typeや、定数pconst,i_typeが用いられ電力見積が行われる。たとえば、整数系命令及び浮動小数点系命令のいずれも支配的ではないときには、電力ライブラリのうち、命令種別i_typeをallとしたときの係数pp_type,i_typeや、定数pconst,i_typeが用いられ、電力見積が行われる。
第6の実施の形態における電力見積処理は、第4または第5の実施の形態における電力見積処理とほぼ同様であるが、入力データとして、電力見積対象の予測MIPS値と、予測動作率(動作率を考慮する場合)の他に、支配的な命令種別が指定される。たとえば、整数系命令が支配的なときには、電力ライブラリのうち、命令種別i_typeをIntとしたときの係数pp_type,i_typeや、定数pconst,i_typeが用いられ電力見積が行われる。たとえば、浮動小数点系命令が支配的なときには、電力ライブラリのうち、命令種別i_typeをFPとしたときの係数pp_type,i_typeや、定数pconst,i_typeが用いられ電力見積が行われる。たとえば、整数系命令及び浮動小数点系命令のいずれも支配的ではないときには、電力ライブラリのうち、命令種別i_typeをallとしたときの係数pp_type,i_typeや、定数pconst,i_typeが用いられ、電力見積が行われる。
以上のような第6の実施の形態の電力見積方法によれば、命令種別ごとのMIPS値が得られないときも、第4または第5の実施の形態の電力見積方法と同様の効果が得られる。
なお、以上説明してきた第4乃至第6の実施の形態の電力見積方法では、パラメータとしてMIPS値や動作率を用いたが、他のパラメータを追加してもよい。
たとえば、キャッシュメモリを有するプロセッサでは、キャッシュアクセスによりRAMアクセスが発生する際には、命令実行による電力消費に加えてRAMアクセスによる電力消費が発生する。そのため、キャッシュアクセスの伴う命令実行と、伴わない命令実行を同じように扱って電力を見積もると、誤差の原因となる。
たとえば、キャッシュメモリを有するプロセッサでは、キャッシュアクセスによりRAMアクセスが発生する際には、命令実行による電力消費に加えてRAMアクセスによる電力消費が発生する。そのため、キャッシュアクセスの伴う命令実行と、伴わない命令実行を同じように扱って電力を見積もると、誤差の原因となる。
また、キャッシュミスにより、たとえば、データハザード(おもに、リードミス時)やバッファフル(おもに、ライトスルーモードでのライト時)が発生するが、これらの現象は、CPUのMIPS値の低下として観測される。そのためにキャッシュミスを考慮しないと誤差の原因となる。
そのため、パラメータとし、キャッシュアクセス情報またはキャッシュミス情報を追加することが望ましい。キャッシュアクセス情報は、たとえば、単位時間あたりの命令キャッシュアクセス回数、データキャッシュアクセス回数である。キャッシュミス情報は、たとえば、単位時間あたりの命令キャッシュミス回数、データキャッシュミス回数である。
パラメータとし、キャッシュアクセス情報またはキャッシュミス情報を追加しての電力見積についても、図3に示したフローで同様に行うことができる。キャッシュアクセス情報またはキャッシュミス情報は、たとえば、ハードウェアの性能カウンタなどを用いてサンプルを計測することで取得できる。電力値については、性能カウンタによる計測と同時に計測してもよいが、性能カウンタの電力を含めたくない場合には別途測定すればよい。
また、追加するパラメータとして、単位時間あたりのシステムコール回数を用いてもよい。OS上で動作するアプリケーションの1つであるシステムコールについても、CPUのMIPS値の低下として観測される。また、システムコールの種類によっても動作は異なるため、システムコールの種類を考慮しないと、誤差の原因となる。
そのため、パラメータとし、システムコール情報を追加することが望ましい。システムコール情報は、たとえば、単位時間あたりの、リード系システムコール回数、ライト系システムコール回数、または、その他のシステムコール回数である。
パラメータとし、システムコール情報を追加しての電力見積についても、図3に示したフローで同様に行うことができる。システムコール情報は、たとえば、プログラムのシステムコールの履歴を、Linux(登録商標)のstraceコマンドなどで取得するとともに、プログラムの走行時間から、システムコールの種類ごとの単位時間当たりのシステムコール回数を計測することで取得できる。
なお、オーバヘッドが大きいので、プログラムのシステムコールの履歴を取得する処理と、プログラムの走行時間を計測する処理は別途行い、電力値については、プログラムの走行時間を計測する処理の際に計測することが望ましい。
なお、命令トレースベースの電力予測のAPI部分(システムコールまたはライブラリ呼び出し)についても同様の方法で取り扱うことが可能である。
以上、実施の形態に基づき、本発明の電力見積方法、電力見積装置及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
以上、実施の形態に基づき、本発明の電力見積方法、電力見積装置及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 電力見積装置
11 記憶部
12 プロセッサ
11 記憶部
12 プロセッサ
Claims (14)
- 電力見積対象装置で消費される電力値を、複数のパラメータの値に応じて複数取得し、
複数取得した前記電力値の平均値に対する前記電力値の変動の大きさを算出し、
前記変動の大きさが第1の値よりも小さいときは、前記電力見積対象装置における消費電力を前記平均値による定数で近似した第1の電力予測式を作成し、
前記変動の大きさが前記第1の値以上のときは、前記複数のパラメータによる前記消費電力に対する影響の大きさを算出し、
前記消費電力への影響の大きさに基づきパラメータ数を削減して、前記消費電力を線形式で近似した第2の電力予測式を作成し、
前記第1の電力予測式または前記第2の電力予測式を用いて前記消費電力を見積もる、
ことを特徴とする電力見積方法。 - 前記複数のパラメータと前記電力値に基づく回帰分析及び検定により、前記複数のパラメータのそれぞれによる前記消費電力への影響の大きさを算出し、前記複数のパラメータのうち、前記消費電力への影響が小さいものから少なくとも1つを削除して、前記第2の電力予測式を作成すること、を特徴とする請求項1に記載の電力見積方法。
- 前記回帰分析により、前記第2の電力予測式における前記複数のパラメータのそれぞれに対する係数を算出し、前記検定により、前記係数の有意確率を求め、前記有意確率が第2の値より大きいパラメータのうち、少なくとも前記有意確率が最大のものを、前記消費電力への影響が最も小さいと判定し、削除することを特徴とする請求項2に記載の電力見積方法。
- 前記回帰分析により得られる回帰方程式の精度を示す決定係数または、前記決定係数の検定における有意確率を算出し、前記決定係数が第3の値より小さい、または前記有意確率が第4の値より大きいときは、前記第1の電力予測式を用いて前記消費電力を見積もることを特徴とする請求項2または3の何れか一項に記載の電力見積方法。
- 前記平均値で近似した前記第1の電力予測式を作成する前、または前記パラメータを削除する前にユーザに許可を求める、または前記複数のパラメータまたは前記電力値の確認を促すことを特徴とする請求項1乃至4の何れか一項に記載の電力見積方法。
- 前記第2の電力予測式を作成する際に使用する前記パラメータを変えたときに見積もられる前記消費電力に対する評価結果の変化をユーザに提示する、ことを特徴とする請求項1乃至5の何れか一項に記載の電力見積方法。
- 前記電力見積対象装置はプロセッサを含み、前記プロセッサにおいて第1の命令種別の命令が実行されたときの第1のパラメータの値と、第2の命令種別の命令が実行されたときの第2のパラメータの値を、電力発生の要因の分類ごとの前記電力値とともに取得し、
前記第1のパラメータ及び前記第2のパラメータと前記電力値に基づく回帰分析及び検定により、前記第1のパラメータ及び前記第2のパラメータによる前記消費電力に対する影響の大きさを算出し、
前記第1のパラメータと前記第2のパラメータとを分けることによる前記消費電力の変化が誤差の範囲内であると判定するときには、前記第1のパラメータと前記第2のパラメータの加算で表される第3のパラメータを用いて、前記第2の電力予測式を作成する、ことを特徴とする請求項1乃至6の何れか一項に記載の電力見積方法。 - 前記第1のパラメータと前記第2のパラメータとを分けることによる前記消費電力の変化が誤差の範囲外であると判定するときには、前記第1のパラメータと前記第2のパラメータを用いた第3の電力予測式を作成し、前記第3の電力予測式を用いて前記消費電力を見積もる、ことを特徴とする請求項7に記載の電力見積方法。
- 前記第1の命令種別の命令は、整数演算が支配的な命令であり、前記第2の命令種別の命令は、浮動小数点演算が支配的な命令であり、前記第1のパラメータは、前記整数演算が支配的な命令が実行されたときのMIPS値であり、前記第2のパラメータは、前記浮動小数点演算が支配的な命令が実行されたときのMIPS値である、ことを特徴とする請求項7または8に記載の電力見積方法。
- 前記電力発生要因の分類ごとの動作率を乗じた、前記第1のパラメータ、前記第2のパラメータ及び前記第3のパラメータに基づいて、前記第2の電力予測式を作成する、ことを特徴とする請求項7乃至9の何れか一項に記載の電力見積方法。
- 前記電力発生要因の分類ごとの前記動作率は、クロックツリーの動作率またはデータパスの動作率の何れかに近似されることを特徴とする、請求項10に記載の電力見積方法。
- 前記第1のパラメータの値と前記第2のパラメータの値の合計値と、前記プロセッサで実行されるプログラムにおいて支配的な命令種別を示すプログラムタイプ情報を取得し、
前記プログラムタイプ情報で示される前記命令種別ごとに、前記第1の電力予測式または前記第2の電力予測式を作成する、ことを特徴とする請求項7乃至11の何れか一項に記載の電力見積方法。 - プロセッサと、
複数のパラメータの値に応じた、電力見積対象装置で消費される電力値を記憶する記憶部と、を有し、
前記プロセッサは、
前記電力値を複数取得し、
複数取得した前記電力値の平均値に対する前記電力値の変動の大きさを算出し、
前記変動の大きさが第1の値よりも小さいときは、前記電力見積対象装置における消費電力を前記平均値による定数で近似した第1の電力予測式を作成し、
前記変動の大きさが前記第1の値以上のときは、前記複数のパラメータによる前記消費電力に対する影響の大きさを算出し、
前記消費電力への影響の大きさに基づきパラメータ数を削減して、前記消費電力を線形式で近似した第2の電力予測式を作成し、
前記第1の電力予測式または前記第2の電力予測式を用いて前記消費電力を見積もる、 ことを特徴とする電力見積装置。 - 電力見積対象装置で消費される電力値を、複数のパラメータの値に応じて複数取得し、
複数取得した前記電力値の平均値に対する前記電力値の変動の大きさを算出し、
前記変動の大きさが第1の値よりも小さいときは、前記電力見積対象装置における消費電力を前記平均値による定数で近似した第1の電力予測式を作成し、
前記変動の大きさが前記第1の値以上のときは、前記複数のパラメータによる前記消費電力に対する影響の大きさを算出し、
前記消費電力への影響の大きさに基づきパラメータ数を削減して、前記消費電力を線形式で近似した第2の電力予測式を作成し、
前記第1の電力予測式または前記第2の電力予測式を用いて前記消費電力を見積もる、 処理をコンピュータに実行させるプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013252864A JP2015111326A (ja) | 2013-12-06 | 2013-12-06 | 電力見積方法、電力見積装置及びプログラム |
US14/557,665 US20150160274A1 (en) | 2013-12-06 | 2014-12-02 | Method and apparatus for power estimation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013252864A JP2015111326A (ja) | 2013-12-06 | 2013-12-06 | 電力見積方法、電力見積装置及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015111326A true JP2015111326A (ja) | 2015-06-18 |
Family
ID=53270917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013252864A Pending JP2015111326A (ja) | 2013-12-06 | 2013-12-06 | 電力見積方法、電力見積装置及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20150160274A1 (ja) |
JP (1) | JP2015111326A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6646201B2 (ja) * | 2015-07-27 | 2020-02-14 | 富士通株式会社 | 情報処理装置、電力推定プログラム及び電力推定方法 |
US11556162B2 (en) * | 2018-03-16 | 2023-01-17 | Advanced Micro Devices, Inc. | Per-instruction energy debugging using instruction sampling hardware |
US11836031B2 (en) * | 2020-11-10 | 2023-12-05 | Advanced Micro Devices, Inc. | Application override of power estimation mechanism |
CN113158441A (zh) * | 2021-03-31 | 2021-07-23 | 胜达克半导体科技(上海)有限公司 | 一种芯片测试机内提高抓取信号精度的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060080076A1 (en) * | 2004-10-12 | 2006-04-13 | Nec Laboratories America, Inc. | System-level power estimation using heteregeneous power models |
JP2013524302A (ja) * | 2010-03-31 | 2013-06-17 | 日本電気株式会社 | 精度を調節可能なマクロモデル電力解析のための方法及び装置 |
US20140108324A1 (en) * | 2012-10-12 | 2014-04-17 | Nec Laboratories America, Inc. | Data analytic engine towards the self-management of complex physical systems |
US20150025857A1 (en) * | 2013-07-22 | 2015-01-22 | International Business Machines Corporation | Statistical power estimation |
-
2013
- 2013-12-06 JP JP2013252864A patent/JP2015111326A/ja active Pending
-
2014
- 2014-12-02 US US14/557,665 patent/US20150160274A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20150160274A1 (en) | 2015-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8707268B2 (en) | Testing operations of software | |
US20160004629A1 (en) | User workflow replication for execution error analysis | |
JP2010002370A (ja) | パターン抽出プログラム、方法及び装置 | |
US20080307387A1 (en) | Software development apparatus and method for providing performance prediction | |
CN107203676B (zh) | 用以提升集成电路设计的时序性能的方法及数据处理系统 | |
JP2015111326A (ja) | 電力見積方法、電力見積装置及びプログラム | |
CN106528067A (zh) | 一种生成报表的方法及装置 | |
US10140399B2 (en) | Corner database generator | |
JP2017010173A (ja) | 人口推計方法、人口推計プログラム、および人口推計装置 | |
US20160117199A1 (en) | Computing system with thermal mechanism and method of operation thereof | |
US20140366140A1 (en) | Estimating a quantity of exploitable security vulnerabilities in a release of an application | |
US20170103043A1 (en) | Sampling data processing device, sampling data processing method, and computer program | |
JP5785725B2 (ja) | 電力見積装置、電力見積方法及びプログラム | |
JP6471615B2 (ja) | 性能情報生成プログラム、性能情報生成方法及び情報処理装置 | |
JP5012816B2 (ja) | 信号選択装置とシステムと回路エミュレータ及び方法並びにプログラム | |
JP6070337B2 (ja) | 物理故障解析プログラム、物理故障解析方法および物理故障解析装置 | |
EP3382553A1 (en) | Method executed by a computer, information processing apparatus and program | |
JP6056174B2 (ja) | 故障診断方法、故障診断装置及びプログラム | |
JP2005063208A (ja) | ソフトウェア信頼度成長モデル選択方法、ソフトウェア信頼度成長モデル選択装置、ソフトウェア信頼度成長モデル選択プログラム、およびプログラム記録媒体 | |
US20130030863A1 (en) | Trend-based target setting for process control | |
JP2018026056A (ja) | ソフトウェア品質判定方法 | |
JP5444939B2 (ja) | ソフトウェアのテスト方法及びプログラム | |
US9280622B2 (en) | Circuit verifying apparatus, circuit verifying method, and circuit verifying program | |
JP2014238666A (ja) | 予測式生成方法、予測式生成装置、及び、予測式生成プログラム | |
US8347124B2 (en) | Workload power consumption projection on information handling system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20150611 |