(57)【要約】【課題】電力見積計算の計算量の増加を抑える。【解決手段】電力見積対象装置で消費される電力値を、複数のパラメータの値に応じて複数取得し（ステップＳ１）、複数取得した電力値の平均値に対する電力値の変動の大きさを算出し（ステップＳ２）、変動の大きさが第１の値よりも小さいときは、電力見積対象装置における消費電力を平均値による定数で近似した第１の電力予測式を作成し（ステップＳ４）、変動の大きさが第１の値以上のときは、複数のパラメータによる消費電力に対する影響の大きさを算出し（ステップＳ５）、消費電力への影響の大きさに基づきパラメータ数を削減して、消費電力を線形式で近似した第２の電力予測式を作成し（ステップＳ６）、第１の電力予測式または第２の電力予測式を用いて消費電力を見積もる（ステップＳ７）。【選択図】図１
2015111326.tif 000002
【特許請求の範囲】
【請求項１】
電力見積対象装置で消費される電力値を、複数のパラメータの値に応じて複数取得し、
複数取得した前記電力値の平均値に対する前記電力値の変動の大きさを算出し、
前記変動の大きさが第１の値よりも小さいときは、前記電力見積対象装置における消費電力を前記平均値による定数で近似した第１の電力予測式を作成し、
前記変動の大きさが前記第１の値以上のときは、前記複数のパラメータによる前記消費電力に対する影響の大きさを算出し、
前記消費電力への影響の大きさに基づきパラメータ数を削減して、前記消費電力を線形式で近似した第２の電力予測式を作成し、
前記第１の電力予測式または前記第２の電力予測式を用いて前記消費電力を見積もる、
ことを特徴とする電力見積方法。
【請求項２】
前記複数のパラメータと前記電力値に基づく回帰分析及び検定により、前記複数のパラメータのそれぞれによる前記消費電力への影響の大きさを算出し、前記複数のパラメータのうち、前記消費電力への影響が小さいものから少なくとも１つを削除して、前記第２の電力予測式を作成すること、を特徴とする請求項１に記載の電力見積方法。
【請求項３】
前記回帰分析により、前記第２の電力予測式における前記複数のパラメータのそれぞれに対する係数を算出し、前記検定により、前記係数の有意確率を求め、前記有意確率が第２の値より大きいパラメータのうち、少なくとも前記有意確率が最大のものを、前記消費電力への影響が最も小さいと判定し、削除することを特徴とする請求項２に記載の電力見積方法。
【請求項４】
前記回帰分析により得られる回帰方程式の精度を示す決定係数または、前記決定係数の検定における有意確率を算出し、前記決定係数が第３の値より小さい、または前記有意確率が第４の値より大きいときは、前記第１の電力予測式を用いて前記消費電力を見積もることを特徴とする請求項２または３の何れか一項に記載の電力見積方法。
【請求項５】
前記平均値で近似した前記第１の電力予測式を作成する前、または前記パラメータを削除する前にユーザに許可を求める、または前記複数のパラメータまたは前記電力値の確認を促すことを特徴とする請求項１乃至４の何れか一項に記載の電力見積方法。
【請求項６】
前記第２の電力予測式を作成する際に使用する前記パラメータを変えたときに見積もられる前記消費電力に対する評価結果の変化をユーザに提示する、ことを特徴とする請求項１乃至５の何れか一項に記載の電力見積方法。
【請求項７】
前記電力見積対象装置はプロセッサを含み、前記プロセッサにおいて第１の命令種別の命令が実行されたときの第１のパラメータの値と、第２の命令種別の命令が実行されたときの第２のパラメータの値を、電力発生の要因の分類ごとの前記電力値とともに取得し、
前記第１のパラメータ及び前記第２のパラメータと前記電力値に基づく回帰分析及び検定により、前記第１のパラメータ及び前記第２のパラメータによる前記消費電力に対する影響の大きさを算出し、
前記第１のパラメータと前記第２のパラメータとを分けることによる前記消費電力の変化が誤差の範囲内であると判定するときには、前記第１のパラメータと前記第２のパラメータの加算で表される第３のパラメータを用いて、前記第２の電力予測式を作成する、ことを特徴とする請求項１乃至６の何れか一項に記載の電力見積方法。
【請求項８】
前記第１のパラメータと前記第２のパラメータとを分けることによる前記消費電力の変化が誤差の範囲外であると判定するときには、前記第１のパラメータと前記第２のパラメータを用いた第３の電力予測式を作成し、前記第３の電力予測式を用いて前記消費電力を見積もる、ことを特徴とする請求項７に記載の電力見積方法。
【請求項９】
前記第１の命令種別の命令は、整数演算が支配的な命令であり、前記第２の命令種別の命令は、浮動小数点演算が支配的な命令であり、前記第１のパラメータは、前記整数演算が支配的な命令が実行されたときのＭＩＰＳ値であり、前記第２のパラメータは、前記浮動小数点演算が支配的な命令が実行されたときのＭＩＰＳ値である、ことを特徴とする請求項７または８に記載の電力見積方法。
【請求項１０】
前記電力発生要因の分類ごとの動作率を乗じた、前記第１のパラメータ、前記第２のパラメータ及び前記第３のパラメータに基づいて、前記第２の電力予測式を作成する、ことを特徴とする請求項７乃至９の何れか一項に記載の電力見積方法。
【請求項１１】
前記電力発生要因の分類ごとの前記動作率は、クロックツリーの動作率またはデータパスの動作率の何れかに近似されることを特徴とする、請求項１０に記載の電力見積方法。
【請求項１２】
前記第１のパラメータの値と前記第２のパラメータの値の合計値と、前記プロセッサで実行されるプログラムにおいて支配的な命令種別を示すプログラムタイプ情報を取得し、
前記プログラムタイプ情報で示される前記命令種別ごとに、前記第１の電力予測式または前記第２の電力予測式を作成する、ことを特徴とする請求項７乃至１１の何れか一項に記載の電力見積方法。
【請求項１３】
プロセッサと、
複数のパラメータの値に応じた、電力見積対象装置で消費される電力値を記憶する記憶部と、を有し、
前記プロセッサは、
前記電力値を複数取得し、
複数取得した前記電力値の平均値に対する前記電力値の変動の大きさを算出し、
前記変動の大きさが第１の値よりも小さいときは、前記電力見積対象装置における消費電力を前記平均値による定数で近似した第１の電力予測式を作成し、
前記変動の大きさが前記第１の値以上のときは、前記複数のパラメータによる前記消費電力に対する影響の大きさを算出し、
前記消費電力への影響の大きさに基づきパラメータ数を削減して、前記消費電力を線形式で近似した第２の電力予測式を作成し、
前記第１の電力予測式または前記第２の電力予測式を用いて前記消費電力を見積もる、  ことを特徴とする電力見積装置。
【請求項１４】
電力見積対象装置で消費される電力値を、複数のパラメータの値に応じて複数取得し、
複数取得した前記電力値の平均値に対する前記電力値の変動の大きさを算出し、
前記変動の大きさが第１の値よりも小さいときは、前記電力見積対象装置における消費電力を前記平均値による定数で近似した第１の電力予測式を作成し、
前記変動の大きさが前記第１の値以上のときは、前記複数のパラメータによる前記消費電力に対する影響の大きさを算出し、
前記消費電力への影響の大きさに基づきパラメータ数を削減して、前記消費電力を線形式で近似した第２の電力予測式を作成し、
前記第１の電力予測式または前記第２の電力予測式を用いて前記消費電力を見積もる、  処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電力見積方法、電力見積装置及びプログラムに関する。
【背景技術】
【０００２】
集積回路や情報機器などを設計する際、前もって消費電力を見積もることが行われている。従来、電力見積対象となる装置のパラメータ（たとえば、プロセッサ使用率、プロセッサ温度など）を用いて、消費電力を抽象化した電力モデルを作成し、その電力モデルを用いて消費電力を見積もる手法がある。電力モデルは、パラメータと係数との積の和を用いた線形式で表され、各係数は、回帰分析などを利用して求められる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１１４８２号公報
【特許文献２】特開平１１−２３２１４７号公報
【特許文献３】特開平５−２６５６０５号公報
【特許文献４】特開平９−２６５４８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、電力見積対象となる装置のパラメータ数が増加すると、電力見積計算の計算量が増加してしまう。
【課題を解決するための手段】
【０００５】
発明の一観点によれば、電力見積対象装置で消費される電力値を、複数のパラメータの値に応じて複数取得し、複数取得した前記電力値の平均値に対する前記電力値の変動の大きさを算出し、前記変動の大きさが第１の値よりも小さいときは、前記電力見積対象装置における消費電力を前記平均値による定数で近似した第１の電力予測式を作成し、前記変動の大きさが前記第１の値以上のときは、前記複数のパラメータによる前記消費電力に対する影響の大きさを算出し、前記消費電力への影響の大きさに基づきパラメータ数を削減して、前記消費電力を線形式で近似した第２の電力予測式を作成し、前記第１の電力予測式または前記第２の電力予測式を用いて前記消費電力を見積もる、電力見積方法が提供される。
【０００６】
また、発明の一観点によれば、プロセッサと、複数のパラメータの値に応じた、電力見積対象装置で消費される電力値を記憶する記憶部と、を有し、前記プロセッサは、前記電力値を複数取得し、複数取得した前記電力値の平均値に対する前記電力値の変動の大きさを算出し、前記変動の大きさが第１の値よりも小さいときは、前記電力見積対象装置における消費電力を前記平均値による定数で近似した第１の電力予測式を作成し、前記変動の大きさが前記第１の値以上のときは、前記複数のパラメータによる前記消費電力に対する影響の大きさを算出し、前記消費電力への影響の大きさに基づきパラメータ数を削減して、前記消費電力を線形式で近似した第２の電力予測式を作成し、前記第１の電力予測式または前記第２の電力予測式を用いて前記消費電力を見積もる、電力見積装置が提供される。
【発明の効果】
【０００７】
開示の電力見積方法、電力見積装置及びプログラムによれば、電力見積計算の計算量の増加を抑えることができる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施の形態の電力見積方法及び電力見積装置の一例を示す図である。
【図２】第２の実施の形態の電力見積装置の一例を示す図である。
【図３】電力見積方法の一例の流れを説明する図である。
【図４】電力モデル作成処理の一例の流れを示すフローチャートである（その１）。
【図５】電力モデル作成処理の一例の流れを示すフローチャートである（その２）。
【図６】電力モデル作成処理の一例の流れを示すフローチャートである（その３）。
【図７】入力データに含まれる電力値の一例を示す図である。
【図８】入力データに含まれるパラメータ値の一例を示す図である。
【図９】入力データの取得画面の一例を示す図である。
【図１０】評価結果の出力画面の一例を示す図である。
【図１１】回帰分析結果の表示例を示す図である。
【図１２】問い合わせ画面の一例を示す図である。
【図１３】問い合わせ画面の一例を示す図である。
【図１４】第３の実施の形態の電力見積方法の一例の流れを示すフローチャートである。
【図１５】電力モデル作成・評価結果の一例を示す図である。
【図１６】命令種別ごとのＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【図１７】ＦＦについての、ＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【図１８】クロックラインに関係するセルについての、ＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【図１９】メモリについての、ＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【図２０】その他の電力発生要因（主に組み合わせ論理ゲート）についての、ＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【図２１】ＦＦについての、命令種別ごとのＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【図２２】クロックラインに関係するセルについての、命令種別ごとのＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【図２３】メモリについての、命令種別ごとのＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【図２４】その他の電力発生要因についての、命令種別ごとのＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【図２５】入力データ取得方法の一例を示す図である。
【図２６】算出された電力値とＭＩＰＳ値の一例を示す図である。
【図２７】電力ライブラリ作成処理の開始画面の一例を示す図である。
【図２８】電力ライブラリ作成処理の一例の流れを説明するフローチャートである。
【図２９】電力ライブラリの一例を示す図である。
【図３０】電力見積処理の開始画面の一例を示す図である。
【図３１】パラメータ値を指定するテーブルの一例を示す図である。
【図３２】電力ライブラリ作成処理の変形例を説明するフローチャートである。
【図３３】ＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【図３４】動作率を乗じたＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【図３５】命令種別ごとの、動作率を乗じたＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【図３６】入力データ取得方法の一例を示す図である。
【図３７】算出された電力値とＭＩＰＳ値及び動作率の一例を示す図である。
【図３８】電力ライブラリ作成処理の開始画面の一例を示す図である。
【図３９】電力ライブラリ作成処理の一例の流れを説明するフローチャートである。
【図４０】電力見積処理の開始画面の一例を示す図である。
【図４１】関数ρ（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ）の一例を示す図である。
【図４２】取得した入力データの一例を示す図である。
【図４３】電力ライブラリ作成処理の一例の流れを説明するフローチャートである。
【発明を実施するための形態】
【０００９】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の電力見積方法及び電力見積装置の一例を示す図である。
【００１０】
電力見積装置１０は、記憶部１１とプロセッサ１２を有している。プロセッサ１２は、記憶部１１に記憶されているデータ及びプログラムに基づき、以下のような電力見積方法を実行する。
【００１１】
まず、プロセッサ１２は、記憶部１１に記憶されている、電力見積対象装置（プロセッサ、ＬＳＩ（Large Scale Integrated circuit）、電気機器など）で消費される電力値を、複数のパラメータの値に応じて複数取得する（ステップＳ１）。
【００１２】
パラメータｐａ１，ｐａ２，…ｐａｍは、たとえば、プロセッサ使用率、ディスクアクセス速度、ネットワーク使用帯域、使用物理メモリ容量、プロセッサ温度などである。これらのパラメータｐａ１〜ｐａｍの組み合わせごとの電力値が、ステップＳ１の処理で複数取得される。
【００１３】
このようなパラメータｐａ１〜ｐａｍの値に応じた電力値は、たとえば、事前に設計情報などからシミュレーションにより算出され、記憶部１１に記憶されている。または、電力見積対象装置と同様のパラメータを持つ装置に対する実機測定により取得され、記憶部１１に記憶されている電力値を用いてもよい。
【００１４】
ステップＳ１の処理後、プロセッサ１２は、取得した複数の電力値の平均値に対する電力値の変動の大きさを算出する（ステップＳ２）。変動の大きさは、取得した複数の電力値の標準偏差／平均値により求まる変動係数ＣＶで表すことができる。
【００１５】
プロセッサ１２は、ステップＳ２の処理で算出した変動の大きさが、所定の値Ｖ１以上か否かを判定する（ステップＳ３）。そして、変動の大きさが値Ｖ１よりも小さければ、プロセッサ１２は、装置の消費電力を、電力値の平均値による定数で近似した電力予測式（電力モデル）を作成する（ステップＳ４）。図１の例では、Ｐ＝ｃ0が電力モデルであり、ｃ0は電力値の平均値である。これにより、平均値に対して電力値の変動が小さいときには、電力モデルを定数で表すことができるようになるため、電力モデルを簡素化でき、電力見積計算の計算量を削減できる。
【００１６】
変動の大きさが値Ｖ１以上のとき、プロセッサ１２は、パラメータｐａ１〜ｐａｍのそれぞれによる消費電力（見積もり電力）への影響の大きさを算出する（ステップＳ５）。
パラメータｐａ１〜ｐａｍのなかには、消費電力へ与える影響が小さく、電力モデルには不要なものがあることが考えられる。ステップＳ５の処理では、たとえば、回帰分析及び検定によりそのようなパラメータが検出される。消費電力への影響の大きさを表す指標として、たとえば、ｔ検定における係数（偏回帰係数）の有意確率（ｐ値（P-value）と呼ばれることもある）が用いられる。ｐ値を用いた検定の例については後述する。
【００１７】
プロセッサ１２は、ステップＳ５で算出された消費電力への影響の大きさに基づいて、パラメータｐａ１〜ｐａｍのうち、消費電力への影響が小さいものから少なくとも１つを削除して、電力モデルを作成する（ステップＳ６）。
【００１８】
たとえば、見積もり電力への影響が最も少ないパラメータから順にｘ個パラメータを削除すると、電力モデルは以下の式（１）で表せる。
【００１９】
【数１】
2015111326.tif 000003
【００２０】
Ｐは見積もり電力、ｃ0は電力値の平均値、ｍは入力したパラメータの個数、ｃiは、残っているパラメータ（削除しなかったパラメータ）のうちｉ番目のパラメータｐａiの係数である。係数ｃiは、ステップＳ５の回帰分析により求まる。
【００２１】
その後、プロセッサ１２は、ステップＳ４の処理で求めた電力モデルまたは、ステップＳ６の処理で求めた電力モデルを用いて、電力見積対象装置の消費電力を見積もる（ステップＳ７）。たとえば、ステップＳ４の処理で得られる電力モデルが採用されるときには、消費電力Ｐは、電力値の平均値（ｃ0）となる。ステップＳ６の処理で得られる電力モデルが採用されるときには、消費電力Ｐは、たとえば、ユーザによって入力されるパラメータ値（ステップＳ１の処理で取得されるパラメータｐａ１〜ｐａｍの値とは異なる値であってもよい）に応じて式（１）で算出される。
【００２２】
以上のように、第１の実施の形態の電力見積方法及び電力見積装置１０では、各パラメータが消費電力に与える影響を考慮しつつ、電力モデルにおけるパラメータの数を減らせるので、予測精度の悪化を抑えつつ電力見積の計算量を抑えることができる。
【００２３】
（第２の実施の形態）
以下第２の実施の形態の電力見積装置及び電力見積方法の一例を説明する。
（電力見積装置の一例）
図２は、第２の実施の形態の電力見積装置の一例を示す図である。
【００２４】
電力見積装置２０は、たとえば、コンピュータであり、プロセッサ２１によって装置全体が制御されている。プロセッサ２１には、バス２９を介してＲＡＭ（Random Access Memory）２２と複数の周辺機器が接続されている。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ２１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２５】
ＲＡＭ２２は、電力見積装置２０の主記憶装置として使用される。ＲＡＭ２２には、プロセッサ２１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２２には、プロセッサ２１による処理に必要な各種データが格納される。
【００２６】
バス２９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）２３、グラフィック処理装置２４、入力インタフェース２５、光学ドライブ装置２６、機器接続インタフェース２７及びネットワークインタフェース２８がある。
【００２７】
ＨＤＤ２３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ２３は、電力見積装置２０の補助記憶装置として使用される。ＨＤＤ２３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００２８】
グラフィック処理装置２４には、モニタ２４ａが接続されている。グラフィック処理装置２４は、プロセッサ２１からの命令にしたがって、画像をモニタ２４ａの画面に表示させる。モニタ２４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００２９】
入力インタフェース２５には、キーボード２５ａとマウス２５ｂとが接続されている。入力インタフェース２５は、キーボード２５ａやマウス２５ｂから送られてくる信号をプロセッサ２１に送信する。なお、マウス２５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３０】
光学ドライブ装置２６は、レーザ光などを利用して、光ディスク２６ａに記録されたデータの読み取りを行う。光ディスク２６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３１】
機器接続インタフェース２７は、電力見積装置２０に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース２７には、メモリ装置２７ａやメモリリーダライタ２７ｂを接続することができる。メモリ装置２７ａは、機器接続インタフェース２７との通信機能を搭載した記録媒体である。メモリリーダライタ２７ｂは、メモリカード２７ｃへのデータの書き込み、またはメモリカード２７ｃからのデータの読み出しを行う装置である。メモリカード２７ｃは、カード型の記録媒体である。
【００３２】
ネットワークインタフェース２８は、ネットワーク２８ａに接続されている。ネットワークインタフェース２８は、ネットワーク２８ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００３３】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した電力見積装置１０も、図２に示した電力見積装置２０と同様のハードウェアにより実現することができる。
【００３４】
電力見積装置（コンピュータ）２０は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。電力見積装置２０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、電力見積装置２０に実行させるプログラムをＨＤＤ２３に格納しておくことができる。プロセッサ２１は、ＨＤＤ２３内のプログラムの少なくとも一部をＲＡＭ２２にロードし、プログラムを実行する。また電力見積装置２０に実行させるプログラムを、光ディスク２６ａ、メモリ装置２７ａ、メモリカード２７ｃなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ２１からの制御により、ＨＤＤ２３にインストールされた後、実行可能となる。またプロセッサ２１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００３５】
（電力見積方法の一例）
図３は、電力見積方法の一例の流れを説明する図である。
電力見積装置２０は、図３に示すように、電力モデル（電力ライブラリ）作成処理（ステップＳ１０）と、電力見積処理（ステップＳ１１）を行う。
【００３６】
電力モデル（電力ライブラリ）作成処理では、プロセッサ２１は、たとえば、ＨＤＤ２３に記憶されているパラメータ値と電力値を含む入力データＩｎ１を取得して、電力モデルを作成する。なお、電力モデル作成処理では、電力モデルは、式（１）に示した電力モデルにおける係数のリストを含む電力ライブラリＤ１として出力され、たとえば、ＨＤＤ２３に記憶される。
【００３７】
電力見積処理では、プロセッサ２１は、パラメータ値を、入力データＩｎ２としてユーザから取得し、電力ライブラリＤ１で表される電力モデルにパラメータ値を適用して、消費電力（見積もり電力）Ｐｏを算出する。そして、プロセッサ２１は、算出した消費電力Ｐｏを、たとえば、グラフィック処理装置２４によりモニタ２４ａに表示させる。
【００３８】
以下、電力モデル作成処理の一例を説明する。
図４、図５及び図６は、電力モデル作成処理の一例の流れを示すフローチャートである。なお、各処理ステップの順序は一例であり、適宜入れ替えてもよい。
【００３９】
プロセッサ２１は、まず入力データを取得する（ステップＳ２０）。
図７は、入力データに含まれる電力値の一例を示す図である。
サンプル番号で示されている電力見積対象となる装置のサンプルにおける電力値の例が示されている。
【００４０】
図８は、入力データに含まれるパラメータ値の一例を示す図である。
サンプル番号で示されている電力見積対象となる装置におけるパラメータｐａ１〜ｐａｍの値の例が示されている。パラメータｐａ１〜ｐａｍは、たとえば、プロセッサ使用率、ディスクアクセス速度、ネットワーク使用帯域、使用物理メモリ容量、プロセッサ温度などである。
【００４１】
図９は、入力データの取得画面の一例を示す図である。
画面３０において、入力ファイル指定欄３１では、図７に示したような電力値が記載されている電力値ファイルと、図８に示したようなパラメータが記載されているパラメータ値ファイルが、ユーザによるマウス２５ｂなどの操作によって選択される。そして、ファイル読み込みボタン３２が押されることにより、選択されたファイルが読み込まれ、パラメータ選択画面３３にパラメータｐａ１〜ｐａｍのパラメータ名が表示され、ユーザによって使用するパラメータが選択される。
【００４２】
さらに、基準値入力欄３４では、後述する判定処理に使用する基準値ＣＶref，Ｒ2ref，ｐrefが、たとえば、ユーザによって入力される。基準値入力欄３４には、所定の値、たとえば、ＣＶref＝０．１、Ｒ2ref＝０．５、ｐref＝０．０５が、予めデフォルトの値として入力されていてもよい。
【００４３】
ＯＫボタン３５が押されると、ユーザによって選択または入力されたデータが、入力データとして取得される。キャンセルボタン３６が押されると、入力データＩｎ１の取得がキャンセルされる。
【００４４】
プロセッサ２１は、以上のように入力データを取得すると、図４に示すようなステップＳ２１の処理を行う。
ステップＳ２１の処理では、プロセッサ２１は、パラメータ数ｍが０であるか否かを判定する。パラメータ数ｍが０のときには、ステップＳ２２の処理が行われ、パラメータ数ｍが０ではないときには、ステップＳ２５の処理が行われる。
【００４５】
ステップＳ２２の処理では、プロセッサ２１は、取得した電力値の平均値（平均電力）を求め、係数ｃ0＝平均電力とした電力モデルを作成する（ステップＳ２２）。ステップＳ２２で作成される電力モデルは、消費電力を定数で示したものである。ステップＳ２２の処理では、プロセッサ２１は、算出した電力モデルをモニタ２４ａに表示させるようにしてもよい。
【００４６】
ステップＳ２２の処理の後、ステップＳ２３の処理が行われる。ステップＳ２３の処理では、プロセッサ２１は、作成した電力モデルを評価する。電力モデルの評価は、たとえば、以下の式（２）により算出される相対誤差ＲＥjを用いて行われる。
【００４７】
【数２】
2015111326.tif 000004
【００４８】
式（２）において、ｉはパラメータ番号、ｊはサンプル番号、ｙjはサンプル番号ｊのサンプルの電力値、なお、パラメータ数ｍが０のときは、相対誤差ＲＥjは、（ｃ0−ｙj）／ｙjとなる。
【００４９】
ステップＳ２３の処理後、評価結果が出力されるとともに、算出された係数や定数を含む電力ライブラリＤ１が作成される（ステップＳ２４）。
図１０は、評価結果の出力画面の一例を示す図である。
【００５０】
出力画面３８には、パラメータ数ｍが０のときに得られる電力モデルの例が示されている。相対誤差は、最小値Ｍｉｎ、最大値Ｍａｘ及び、ＭＡＰＥ（Mean Absolute Percentage Error：各サンプルの相対誤差の絶対値の平均）で示されている。
【００５１】
図４に示したステップＳ２１の処理で、パラメータ数が０ではないと判定されたときに行われるステップＳ２５の処理では、プロセッサ２１は、電力値の平均値に対する変動の大きさを示す変動係数ＣＶを算出する。変動係数ＣＶは、電力値の標準偏差と平均値を用いて、ＣＶ＝標準偏差／平均値、と表せる。
【００５２】
変動係数ＣＶが算出されると、プロセッサ２１は、ステップＳ２０の処理で取得した基準値ＣＶrefと、変動係数ＣＶとを比較して、ＣＶ≧ＣＶrefであるか否かを判定する（ステップＳ２６）。プロセッサ２１は、ＣＶ≧ＣＶrefであると判定したときには、ステップＳ２７の処理を行い、ＣＶ≧ＣＶrefでないと判定したときには、図５のステップＳ４０の処理を行う。
【００５３】
基準値ＣＶrefは、図９に示したような画面３０にて、たとえば、０．１、０．０１など、ユーザにより適宜入力される。後述するように、ＣＶ≧ＣＶrefでないときには電力モデルは平均電力で近似可能となる。そのため、電力モデルの評価の際に、誤差が大きかった場合には、プロセッサ２１は、より小さい基準値ＣＶrefを取得して、平均電力での電力モデルの近似が起こりにくいようにすることも可能である。
【００５４】
ステップＳ２７の処理では、回帰分析が行われる。回帰分析には、式（１）で示した電力モデルの線形式が、回帰方程式として用いられる（ただし、ここではまだパラメータを削除していないので、式（１）のｉは１〜ｍ）。プロセッサ２１は、式（１）に対して、ステップＳ２０の処理で取得した電力値とパラメータ値を適用して、最小二乗法などを用いて係数ｃiを求める。ステップＳ２７の処理では、プロセッサ２１は、さらに、電力値の変動Ｑと残差平方和Ｑeから、Ｒ2＝（Ｑ−Ｑe）／Ｑで表せる決定係数Ｒ2を算出する。変動は、各サンプルの電力値と平均電力との差分の二乗和である。残差平方和は、各サンプルの電力値と、得られた電力モデルで算出される各サンプルの電力値の計算値との差分の２乗和である。
【００５５】
決定係数は、回帰分析で得られる回帰方程式の精度を示す。決定係数が小さければ、電力を見積もる際の電力モデルとなる回帰方程式の精度は低く、決定係数が大きければ回帰方程式の精度は高いことを意味する。なお、決定係数は、パラメータ数の増加により大きくなる性質がある。そのため、プロセッサ２１は、パラメータ数増加による値の増大を補正した決定係数である自由度調整済決定係数を算出するようにしてもよい。
【００５６】
また、プロセッサ２１は、決定係数の検定における有意確率と、係数（偏回帰係数）の検定における有意確率を求める。
決定係数の検定は、分散比Ｆ＝回帰の分散／残差の分散が、回帰の自由度ｍ（パラメータ数）と、残差の自由度（ｎ（サンプル数）−ｍ−１）に基づくＦ分布（Ｆ（ｍ，ｎ−ｍ−１）に従うことを利用した検定である。決定係数が０（パラメータ値に対して得られる電力値が無相関であることを示す）と仮定したとき、回帰方程式により算出される電圧が、誤差により、入力された電力値となる確率が求められる。この確率が、決定係数の検定における有意確率（ｐ値）である。
【００５７】
偏回帰係数の検定は、統計量ｔ＝係数／標準誤差が、残差の自由度（ｎ−ｍ−１）によるｔ分布（ｔ（ｎ−ｐ−１）に従うことに基づく検定である。あるパラメータ値の係数が０だと仮定して、回帰方程式により算出される電圧が、誤差により、入力された電力値となる確率が求められる。この確率が、偏回帰係数の検定の有意確率（ｐ値）である。
【００５８】
プロセッサ２１は、以上のような回帰分析の結果を、たとえば、モニタ２４ａに表示させる（ステップＳ２８）。
図１１は、回帰分析結果の表示例を示す図である。
【００５９】
画面３９には、パラメータｐａ１〜ｐａ３に対する係数ｃiの計算結果が示されている。なお、係数ｃiの一番上の値は、ｃ0（定数項）の計算値である。ｐiは、各パラメータｐａ１〜ｐａ３の有意確率である。図１１の例では、有意確率ｐiは、２ｅ−１６（２×１０-16）よりも小さいことが示されている。また、決定係数、自由度調整済決定係数、決定係数の有意確率の例が示されている。図１１の例では、決定係数の有意確率の値も、２ｅ−１６よりも小さいことが示されている。
【００６０】
図４の処理フローの説明を続ける。ステップＳ２８の処理後、プロセッサ２１は、決定係数Ｒ2≧基準値Ｒ2refかつ、決定係数の有意確率ｐ≦基準値ｐrefであるか否かを判定する（ステップＳ２９）。基準値Ｒ2refは、たとえば、０．５である。Ｒ2＜０．５では、電力モデルを式（１）のような線形式で表しても、定数（平均電力）で表しても誤差はあまり変わらない傾向となる。また、決定係数の有意確率ｐが十分大きいときも、平均電力で予測しても誤差の変化は小さい。基準値ｐrefは、たとえば、０．０５である。
【００６１】
プロセッサ２１は、Ｒ2≧Ｒ2refかつ、ｐ≦ｐrefであるときには、ステップＳ３０の処理を行い、Ｒ2＜Ｒ2refまたは、ｐ＞ｐrefであるときには、図５のステップＳ４０の処理を行う。
【００６２】
ステップＳ３０の処理では、プロセッサ２１は、全てのパラメータｐａiの有意確率ｐiが、基準値ｐref以下であるか否かを判定する。全てのパラメータｐａiの有意確率ｐiが、基準値ｐref以下であるときには、前述のステップＳ２３の処理が行われる。ｐi＞ｐrefであるときには、そのパラメータｐａiは、電力の見積もりに役に立つとは言えないものと判断し、図６のステップＳ５０の処理が行われる。
【００６３】
前述のステップＳ２６の処理で、ＣＶ≧ＣＶrefではないと判定されたとき、または、ステップＳ２９の処理で、Ｒ2≧Ｒ2refかつ、ｐ≦ｐrefではないと判定されたとき、図５のステップＳ４０の処理が行われる。
【００６４】
ステップＳ４０の処理では、プロセッサ２１は、たとえば、以下に示すような問い合わせ画面をモニタ２４ａに表示させる。
図１２は、問い合わせ画面の一例を示す図である。
【００６５】
図１２では、変動係数ＣＶが基準値ＣＶref（図１２の例では、０．１）を下回ったときに、表示される問い合わせ画面４０の例が示されている。電力モデルを定数で表すか（定数モデルとするか）、入力されたデータで電力モデルを作成するか、入力されたパラメータ値や電力値を見直すか、ユーザに選択を促す画面となっている。図１２のような問い合わせ画面４０には、ボタン４１，４２，４３が表示されており、上記の３つの選択肢の何れを選択するかに応じて、たとえば、ユーザによるマウス２５ｂの操作によって、ボタン４１〜４３の何れかが押される。これにより、プロセッサ２１は、ユーザからの入力を取得する（ステップＳ４１）。
【００６６】
そして、プロセッサ２１は、ユーザによる入力が、処理の継続を指示するものか、処理の中止を指示するものか、定数モデルの採用を指示するものか判定する（ステップＳ４２）。
【００６７】
たとえば、図１２に示したような問い合わせ画面４０において、ボタン４１が押されたときには、プロセッサ２１は、処理の継続（入力されたデータによる電力モデルの作成）が指示されたものと判定する。プロセッサ２１は、処理の継続が指示されたものと判定した後は、前述したステップＳ２７またはステップＳ３０の処理を行う。ステップＳ２６の処理からステップＳ４０の処理が行われたときには、プロセッサ２１は、ステップＳ２７の処理を行う。ステップＳ２９の処理からステップＳ４０の処理が行われたときには、プロセッサ２１は、ステップＳ３０の処理を行う。
【００６８】
また、問い合わせ画面４０において、ボタン４２が押されたときには、プロセッサ２１は、処理の中止が指示されたものと判定し、電力モデル（電力ライブラリ）の作成処理を終了する。
【００６９】
また、問い合わせ画面４０において、ボタン４３が押されたときには、プロセッサ２１は、定数モデルの採用が指示されたものと判定する。プロセッサ２１は、定数モデルの採用が指示されたものと判定した後は、前述したステップＳ２２の処理を行う。
【００７０】
一方、前述のステップＳ３０の処理で、ｐi＞ｐrefとなるパラメータがあると判定されたときには、図６のステップＳ５０の処理が行われる。
ステップＳ５０の処理では、プロセッサ２１は、たとえば、以下に示すような問い合わせ画面をモニタ２４ａに表示させる。
【００７１】
図１３は、問い合わせ画面の一例を示す図である。
図１３では、パラメータｐａ４のｐ値（変動係数）が、基準値ｐref（図１３の例では、０．０５）より大きいときに、表示される問い合わせ画面５０の例が示されている。問い合わせ画面５０は、電力モデルから、パラメータｐａ４を削除するか、入力されたデータで電力モデルを作成するか、入力されたパラメータ値や電力値を見直すか、ユーザに選択を促す画面となっている。
【００７２】
なお、基準値ｐrefより大きいｐ値を示すパラメータが複数ある場合、たとえば、それらのパラメータのうち、最大のものについて図１３のような問い合わせ画面５０を表示する。
【００７３】
図１３のような問い合わせ画面５０には、ボタン５１，５２，５３が表示されており、上記の３つの選択肢の何れを選択するかに応じて、たとえば、ユーザによるマウス２５ｂの操作によって、ボタン５１〜５３の何れかが押される。これにより、プロセッサ２１は、ユーザからの入力を取得する（ステップＳ５１）。
【００７４】
そして、プロセッサ２１は、ユーザによる入力が、処理の継続を指示するものか、処理の中止を指示するものか、パラメータの削除を指示するものか判定する（ステップＳ５２）。
【００７５】
たとえば、図１３に示したような問い合わせ画面５０において、ボタン５１が押されたときには、プロセッサ２１は、処理の継続（入力されたデータによる電力モデルの作成）が指示されたものと判定する。プロセッサ２１は、処理の継続が指示されたものと判定した後は、前述したステップＳ２３の処理を行う。
【００７６】
また、問い合わせ画面５０において、ボタン５２が押されたときには、プロセッサ２１は、処理の中止が指示されたものと判定し、電力モデル（電力ライブラリ）の作成処理を終了する。
【００７７】
また、問い合わせ画面５０において、ボタン５３が押されたときには、プロセッサ２１は、パラメータの削除が指示されたものと判定し、たとえば、ｐ値の最も大きなパラメータを削除した電力モデルを作成する（ステップＳ５３）。その後、プロセッサ２１は、前述したステップＳ２１の処理を行う。
【００７８】
プロセッサ２１は、以上のような処理で作成した電力モデルを用いて、電力見積処理を行う。
以上のような、第２の実施の形態の電力見積装置２０及び電力見積方法によれば、予測される消費電力への影響を考慮しつつ、電力モデルにおけるパラメータの数を減らせるので、計算精度の悪化を抑えつつ電力見積の計算量を抑えることができる。
【００７９】
なお、本実施の形態で算出した変動係数ＣＶは、前述したように、入力データ（パラメータ値と電力値）を用いるだけで簡単に算出可能であるし、有意確率についても回帰分析で算出可能である。そのため、たとえば、電力モデル作成時の入力データの妥当性チェックに、相対誤差を算出する場合よりも計算量が少なくて済む。
【００８０】
また、電力モデルを平均電力で近似する前や、パラメータを削除する前に、事前に、図１２、図１３に示すような問い合わせ画面４０，５０を表示することで、ユーザに、入力するパラメータ値や電力値の確認を促すこともできる。
【００８１】
（第３の実施の形態）
以下、第３の実施の形態の電力見積方法について説明する。電力見積装置については、図２に示した電力見積装置２０が適用可能である。
【００８２】
図１４は、第３の実施の形態の電力見積方法の一例の流れを示すフローチャートである。なお、各処理ステップの順序は一例であり、適宜入れ替えてもよい。
ステップＳ６０の処理では、プロセッサ２１は、図４〜図６に示したような電力モデルの作成と評価を行う。その後、プロセッサ２１は、ステップＳ６０の処理の結果として、たとえば、以下のような情報をモニタ２４ａに表示させて、ユーザに提示する（ステップＳ６１）。
【００８３】
図１５は、電力モデル作成・評価結果の一例を示す図である。
画面６０には、サンプル番号Ｎｏ．１からＮｏ．５までのサンプルの電力モデル作成・評価結果の履歴が表示されている。
【００８４】
各サンプルに対して、相対誤差のワースト値（絶対値の最大値）、ＭＡＰＥ（Mean Absolute Percentage Error：相対誤差の絶対値の平均）、自由度調整済決定係数、使用した電力値ファイル、パラメータ値ファイル、パラメータが表示されている。
【００８５】
また、画面６０には、ボタン６１，６２，６３，６４が表示されている。たとえば、ユーザによるマウス２５ｂの操作によって、ボタン６１〜６４の何れかが押される。また、情報のソート（たとえば、相対誤差のワースト値、ＭＡＰＥ、自由度調整済決定係数を降順または昇順に並べ替える）を行う際には、たとえば、タイトルが表示されている欄６５，６６，６７が、たとえば、ユーザによるマウス２５ｂの操作によって押される。
【００８６】
このような、ユーザによるマウス２５ｂの操作などにより入力された入力信号を、プロセッサ２１は取得する（ステップＳ６２）。
そして、プロセッサ２１は、取得したユーザからの入力信号を判定する（ステップＳ６３）。
【００８７】
たとえば、図１５に示したような画面６０において、ボタン６１が押されたときには、プロセッサ２１は、電力モデル作成・評価及び表示処理の終了がユーザによって指示されたものと判定する。この場合、プロセッサ２１は、電力モデル作成・評価及び表示処理を終了する。
【００８８】
画面６０において、ボタン６２が押されたときには、プロセッサ２１は、ユーザによるマウス２５ｂの操作などで指定された結果を、画面６０から削除することが指示されたものと判定する。この場合、プロセッサ２１の制御のもと、指定された結果が画面６０から削除される（ステップＳ６４）。その後、ステップＳ６１の処理が行われる。
【００８９】
画面６０において、ボタン６３が押されたときには、プロセッサ２１は、新たなサンプルについて電力モデル作成・評価を行って、その結果を追加することが指示されたものと判定する。この場合、新たなサンプルに関してステップＳ６０の処理が行われた後、その結果が画面６０に追加される。
【００９０】
画面６０において、ボタン６４が押されたときには、プロセッサ２１は、詳細情報の表示を指示されたものと判定する。この場合、たとえば、ボタン６４が押される前に選択されている結果に関する詳細情報が、画面６０に表示される（ステップＳ６５）。その後、ステップＳ６１からの処理が繰り返される。詳細情報としては、たとえば、電力モデル（電力予測式）や、電力モデルを適用したときの相対誤差に基づく評価指標などがある。
【００９１】
画面６０において、結果のタイトルが表示されている欄６５，６６，６７が押されたときには、プロセッサ２１は、情報のソートを行うことが指示されたものと判定する。この場合、画面６０に表示されている結果が、降順または昇順に整列される（ステップＳ６６）。その後、ステップＳ６１からの処理が繰り返される。
【００９２】
以上のような第３の実施の形態の電力見積方法によれば、電力モデルを作成する際に使用するパラメータを変えたときに見積もられる消費電力に対する評価結果の変化をユーザに提示できる。これにより、前述した第２の実施の形態の電力見積方法と同様の効果が得られるとともに、ユーザがパラメータを変えた各サンプルについての電力モデルの評価結果を比較しやすくなり、ユーザの負担を軽減できる。
【００９３】
（第４の実施の形態）
以下、第４の実施の形態の電力見積方法について説明する。電力見積装置については、図２に示した電力見積装置２０が適用可能である。
【００９４】
第４の実施の形態の電力見積方法は、電力見積対象装置を、ＣＰＵやＤＳＰなどのプロセッサを含む半導体集積回路（たとえば、ＳｏＣ（System on a Chip））とするものである。第４の実施の形態の電力見積方法では、プロセッサにおける、電力発生要因や命令種別を考慮した電力モデルが作成される。
【００９５】
プロセッサを含む半導体集積回路では、プロセッサで消費される電力が支配的であるため、その電力を少ない誤差で予測することが望ましい。プロセッサの命令には、整数演算が支配的な命令（以下、整数系命令と呼ぶ）と浮動小数点演算が支配的な命令（以下、浮動小数点系命令と呼ぶ）があり、それぞれの命令を実行する回路では、消費電力が異なることが考えられる。そのため、単に、ＭＩＰＳ（Million Instruction Per Second;  百万命令毎秒）値を用いた一次式で消費電力を予測すると、よい精度が得られない。
【００９６】
これに対して、整数系命令か、浮動小数点系命令かの命令種別ごとに消費電力を予測すると、たとえば、以下に示すようなＭＩＰＳ値と消費電力とのよい相関が得られる。
図１６は、命令種別ごとのＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【００９７】
横軸はＭＩＰＳ値であり、縦軸は消費電力である。四角のプロット（たとえば、ｐｌｔ１）は、浮動小数点ベンチマークプログラムを用いた電力算出例を示し、ダイヤのプロット（たとえば、ｐｌｔ２）は、整数ベンチマークプログラムを用いた電力算出例を示している。図１６では、２種の命令種別（整数系命令と浮動小数点系命令）ごとの消費電力が２種のベンチマークプログラムで計算されている。
【００９８】
浮動小数点ベンチマークプログラムは、プロセッサにおける浮動小数点演算処理部分の性能評価を行う。浮動小数点ベンチマークプログラムには、たとえば、ＬＩＮＰＡＣＫがある。整数ベンチマークプログラムは、プロセッサにおける整数演算処理部分の性能評価を行う。整数ベンチマークプログラムには、たとえば、Ｄｈｒｙｓｔｏｎｅがある。
【００９９】
図１６に示すように、命令種別ごとの消費電力とＭＩＰＳ値とは、比較的よい相関を示しており、直線ｌｎ１，ｌｎ２でほぼ近似できることが分かる（決定係数が１に近い）。
また、プロセッサ内の電力発生要因の種類（セルの種類）によっては、消費電力とＭＩＰＳ値との相関の大きさが違う。たとえば、ＦＦ（Flip-Flop）（以下ではラッチ回路も含むものとする）については、ＭＩＰＳ値と消費電力との相関は、以下のようになる。
【０１００】
図１７は、ＦＦについての、ＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図であり、図１８は、クロックラインに関係するセルについての、ＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。また、図１９は、メモリ（ＲＡＭ（Random Access Memory））についての、ＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。図２０は、その他の電力発生要因（主に組み合わせ論理ゲート）についての、ＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【０１０１】
図１７〜図２０において、横軸はＭＩＰＳ値であり、縦軸は消費電力である。シミュレーションには、整数ベンチマークプログラムと浮動小数点ベンチマークプログラムが用いられている。
【０１０２】
図１７に示すように、ＦＦの消費電力とＭＩＰＳ値とは、比較的よい相関を示していることが分かる。クロックラインに関係するセル（たとえば、クロックバッファなど）と、メモリについては、図１８、図１９に示すように、消費電力とＭＩＰＳ値との相関はあまり取れていない。その他の電力発生要因については、図２０に示すように、消費電力とＭＩＰＳ値とがゆるい相関を示している。
【０１０３】
上記のような各電力発生要因についても、命令種別ごとに消費電力とＭＩＰＳ値との相関を調べると、以下のようになる。
図２１は、ＦＦについての、命令種別ごとのＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図であり、図２２は、クロックラインに関係するセルについての、命令種別ごとのＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。また、図２３は、メモリについての、命令種別ごとのＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図であり。図２４は、その他の電力発生要因についての、命令種別ごとのＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【０１０４】
図２１〜図２４において、横軸はＭＩＰＳ値であり、縦軸は消費電力である。各命令種別のシミュレーションには、整数ベンチマークプログラムと浮動小数点ベンチマークプログラムが用いられている。
【０１０５】
また、図２１〜図２４において、四角のプロット（たとえば、ｐｌｔ３，ｐｌｔ５，ｐｌｔ７，ｐｌｔ９）は、浮動小数点ベンチマークプログラムを用いた電力算出例を示している。また、ダイヤのプロット（たとえば、ｐｌｔ４，ｐｌｔ６，ｐｌｔ８，ｐｌｔ１０）は、整数ベンチマークプログラムを用いた電力算出例を示している。
【０１０６】
図２１に示すように、ＦＦの消費電力とＭＩＰＳ値は、命令種別ごとではさらによい相関を示していることが分かる。クロックラインに関係するセルについては、図２２に示すように命令種別ごとの消費電力とＭＩＰＳ値の相関がとれるようになっている。メモリについては、図２３に示すように、命令種別ごとでは、消費電力とＭＩＰＳ値との相関がとれている部分がある。その他の電力発生要因については、図２４に示すように、命令種別ごとでは、消費電力とＭＩＰＳ値とが比較的よい相関を示している。
【０１０７】
なお、図２２、図２３に示すように、クロックラインに関するセルとメモリに関しては、ＭＩＰＳ値の変化に対する消費電力の変動幅が小さい。
第４の実施の形態の電力見積方法では、上記のような命令種別と電力発生要因を考慮して、電力モデルが作成される。電力モデルで表現される見積もり電力は、電力発生要因の分類ごとの見積もり電力の和で表現される。また、電力発生要因の分類ごとの見積もり電力は、定数か、ＭＩＰＳ値の合計をパラメータとする線形式か、命令種別ごとのＭＩＰＳ値をパラメータとする線形式か、の何れかにより予測される。
【０１０８】
電力モデルは、たとえば、以下のように表される。
【０１０９】
【数３】
2015111326.tif 000005
【０１１０】
式（３）において、ＭＩＰＳIntは、整数系命令のＭＩＰＳ値を示し、ＭＩＰＳFPは、浮動小数点系命令のＭＩＰＳ値を示している。ｐ＿ｔｙｐｅ∈｛ＦＦ，ＣＫＢＵＦ，ＭＥＭ，ＯＴＨＥＲ｝は、電力発生要因の分類を示す。集合｛ＦＦ，ＣＫＢＵＦ，ＭＥＭ，ＯＴＨＥＲ｝の各要素は、それぞれ、ＦＦ、クロックラインに関するセル、メモリ、その他の電力発生要因を示している。
【０１１１】
Ｐｅｓｔp＿type（ＭＩＰＳInt，ＭＩＰＳFP）は、分類ｐ＿ｔｙｐｅにおける見積もり電力であり、以下の式（４）のようにモデル制御変数ｅｓｔ＿ｍ，ｅｓｔ＿ｉの状態に応じて３種類の電力予測式で表される。つまり、第２の実施の形態の電力見積方法と同様に、電力予測式は、定数モデル、パラメータ数を削除したモデル、またはパラメータ数を削除しないモデル（命令種別を考慮したモデル）で表される。
【０１１２】
モデル制御変数ｅｓｔ＿ｍは、電力予測式（電力モデル）を、線形式か定数で表すかを決める変数である。モデル制御変数ｅｓｔ＿ｉは、命令種別により電力予測式を使い分けるか否かを決める変数である。モデル制御変数ｅｓｔ＿ｍ，ｅｓｔ＿ｉについては、後述の処理により決定される。
【０１１３】
【数４】
2015111326.tif 000006
【０１１４】
ｅｓｔ＿ｍ＝ｃｏｎｓｔのとき、Ｐｅｓｔp＿type（ＭＩＰＳInt，ＭＩＰＳFP）は、ｐp＿type,constとなる。ｐp＿type,constは定数である。
ｅｓｔ＿ｍ＝ｌ＿ｉｎｓｔ＿ｎｕｍかつ、ｅｓｔ＿ｉ＝ＴＲＵＥであるとき、Ｐｅｓｔp＿type（ＭＩＰＳInt，ＭＩＰＳFP）は、命令種別ごとのＭＩＰＳ値の合計をパラメータとする線形式で表されている。ｅｓｔ＿ｍ＝ｌ＿ｉｎｓｔ＿ｎｕｍかつ、ｅｓｔ＿ｉ＝ＦＡＬＳＥであるとき、Ｐｅｓｔp＿type（ＭＩＰＳInt，ＭＩＰＳFP）は、命令種別ごとのＭＩＰＳ値をパラメータとする線形式で表されている。式（４）において、ｉ＿ｔｙｐｅは、命令種別を示し、Ｉｎｔ（整数系命令）とＦＰ（浮動小数点系命令）と、がある。
【０１１５】
式（４）において、π（ｅｓｔ＿ｉ，ｐ＿ｔｙｐｅ，ｉ＿ｔｙｐｅ）＝ｐp＿type,Φest＿i(i＿type)とする。ここで、Φｅｓｔ＿ｉ（ｉ＿ｔｙｐｅ）は、ｅｓｔ＿ｉ＝ＴＲＵＥのときｉ＿ｔｙｐｅとなり、その他のとき、ａｌｌとなる関数であるとする。また、ｅｓｔ＿ｍ＝ｃｏｎｓｔのとき１、ｅｓｔ＿ｍ＝ｌ＿ｉｎｓｔ＿ｎｕｍのとき、ＭＩＰＳi＿typeとなる関数ν（ｅｓｔ＿ｍ，ｉ＿ｔｙｐｅ）を導入し、式（４）を書き換えると、以下の式（５）のようになる。
【０１１６】
【数５】
2015111326.tif 000007
【０１１７】
式（５）では、ｅｓｔ＿ｍ＝ｃｏｎｓｔのときは、ｅｓｔ＿ｉ＝ＴＲＵＥであるとし、そのときのＰp＿type,all＝０としている。
式（５）を式（３）に代入すると、式（３）は、以下のように表される。
【０１１８】
【数６】
2015111326.tif 000008
【０１１９】
式（６）において、以下の式（７）のように定義する。
【０１２０】
【数７】
2015111326.tif 000009
【０１２１】
これにより、以下の式（８）が得られる。
【０１２２】
【数８】
2015111326.tif 000010
【０１２３】
本実施の形態では、パラメータ値（ＭＩＰＳ値）と電力値を含む入力データをプロセッサ２１が取得して、入力データに基づいて、回帰分析や検定などにより、前述したモデル制御変数ｅｓｔ＿ｍ，ｅｓｔ＿ｉ、係数ｐp＿type,i＿type、定数ｐconstが求められる。
【０１２４】
第４の実施の形態の電力見積方法についても、図３に示した処理の流れと同様に行われる。ただし、第４の実施の形態の電力見積方法では、パラメータ値として、ＭＩＰＳ値が用いられる。以下にＭＩＰＳ値と、電力値を含む入力データの取得方法の例を説明する。
【０１２５】
（入力データ取得方法）
図２５は、入力データ取得方法の一例を示す図である。
たとえば、プロセッサ２１により、電力ライブラリ作成用のプログラムが実行されると、電力見積対象の半導体集積回路のネットリストＤ１０を入力とした、ゲートレベルシミュレーションが行われる（ステップＳ７０）。なお、以下では、計算対象となる半導体集積回路は、物理設計の実績があるものであり（たとえば、試作チップ作成などが行われたもの）、電力が計算できることを前提とする。
【０１２６】
ゲートレベルシミュレーションにより、ゲートレベルでの波形データＤ１１が得られる。プロセッサ２１は、波形データＤ１１に基づき波形解析を行い、ＭＩＰＳ値を算出する（ステップＳ７１）。また、プロセッサ２１は、テクノロジライブラリＤ１２と、波形データＤ１１を用いて、ゲートレベルでの電力予測を行い、電力値を算出する（ステップＳ７２）。ＭＩＰＳ値や電力値の算出には、浮動小数点ベンチマークプログラムと整数ベンチマークプログラムが用いられる。
【０１２７】
図２６は、算出された電力値とＭＩＰＳ値の一例を示す図である。
図２６には、サンプルごとの電力値とＭＩＰＳ値が示されている。電力値は、ＦＦ、クロックラインに関係するセル（“ＣＬＫ”）、メモリ（“ＭＥＭ”）、その他（“ＯＴＨＥＲ”）、という分類ごとに算出される。たとえば、サンプル１〜サンプルｎにおける、ＦＦの電力値ＰFF1〜ＰFFn、ＣＬＫの電力値ＰCLK1〜ＰCLKn、ＭＥＭの電力値ＰMEM1〜ＰMEMn、ＯＴＨＥＲの電力値ＰOTHER1〜ＰOTHERnが算出される。
【０１２８】
ＭＩＰＳ値は、整数系命令（“Ｉｎｔ”）と、浮動小数点系命令（“ＦＰ”）とで、別々に算出される。たとえば、サンプル１〜サンプルｎにおける、ＩｎｔのＭＩＰＳ値である、ＭＩＰＳInt1〜ＭＩＰＳIntn、ＦＰのＭＩＰＳ値である、ＭＩＰＳFP1〜ＭＩＰＳFPnが算出される。
【０１２９】
算出された電力値とＭＩＰＳ値は、たとえば、ＨＤＤ２３などの記憶部に記憶される。
その後、プロセッサ２１は、電力値と命令種別ごとのＭＩＰＳ値を、たとえば、ＨＤＤ２３から取得し（読み出し）、電力ライブラリを作成する。なお、この時、プロセッサ２１は、サンプルの１〜サンプルｎの他のパラメータを取得してもよい。
【０１３０】
（電力ライブラリ作成処理）
以下、第４の実施の形態の電力見積方法における電力ライブラリ作成処理の一例を説明する。
【０１３１】
図２７は、電力ライブラリ作成処理の開始画面の一例を示す図である。
画面７０では、入力ファイル指定欄７１において、サンプルの電力値とＭＩＰＳ値が記述されたファイルが、ユーザによって指定される。図２７の例では、入力ファイル指定欄７１で、電力値とＭＩＰＳ値は別々のファイルで指定される。電力ライブラリ保存先指定欄７２では、作成される電力ライブラリの保存先が、ユーザによって指定される。なお、ＭＩＰＳ値以外の他のパラメータの値が記載されたファイルが指定されてもよい。
【０１３２】
また、ボタン７３が、たとえば、ユーザによるマウス２５ｂなどの操作によって押されると、以下に示すような電力ライブラリの作成処理が行われる。また、タブ７４が、たとえば、ユーザによるマウス２５ｂなどの操作によって押されると、後述する電力見積処理が行われる。
【０１３３】
電力ライブラリ作成処理では、プロセッサ２１は前述の式（３）〜（８）におけるモデル制御変数ｅｓｔ＿ｍp＿type，ｅｓｔ＿ｉp＿type及び、係数ｐp＿type，i＿type、定数ｐconstを求め、それらを電力ライブラリとしてＨＤＤ２３などの記憶部に記憶する。
【０１３４】
モデル制御変数ｅｓｔ＿ｍp＿typeは、電力予測式（電力モデル）を、線形式か定数で表すかを決める変数である。モデル制御変数ｅｓｔ＿ｍp＿typeは、たとえば、回帰分析における決定係数や、偏回帰係数の検定を利用して求められる。
【０１３５】
まず、決定係数を用いて求める方法について説明する。
プロセッサ２１は、たとえば、図２６に示したような電力値とＭＩＰＳ値に基づき、以下の式（９）のような回帰式を用いた回帰分析を行う。
【０１３６】
【数９】
2015111326.tif 000011
【０１３７】
回帰分析により、分類ｐ＿ｔｙｐｅ（たとえば、ＦＦ、クロックラインに関係するセル、メモリ、その他）ごとに、係数ｐp＿type，i＿type（ｐp＿type，Intと、ｐp＿type，FP）、定数ｐconstが算出される。
【０１３８】
そして、プロセッサ２１は、回帰分析の決定係数を求める。プロセッサ２１は、たとえば、決定係数が０．５以上ならば、その分類ｐ＿ｔｙｐｅの消費電力は、ＭＩＰＳ値との相関が大きいと見なし、ｅｓｔ＿ｍp＿type＝ｌ＿ｉｎｓｔ＿ｎｕｍとし、電力予測式を線形式で表すようにする。プロセッサ２１は、決定係数が０．５未満ならば、その分類ｐ＿ｔｙｐｅの消費電力は、ＭＩＰＳ値との相関が小さいと見なし、ｅｓｔ＿ｍp＿type＝ｃｏｎｓｔとし、電力予測式を定数で表すようにする。
【０１３９】
モデル制御変数ｅｓｔ＿ｍp＿typeを決定する方法として、偏回帰係数の検定を利用する方法もある。
偏回帰係数の検定を利用する場合、ξ＝ＭＩＰＳInt＋ＭＩＰＳFP、ζ＝ＭＩＰＳFPとおき、プロセッサ２１は、以下の式（１０）に対して、回帰分析及び偏回帰係数の検定を行う。
【０１４０】
【数１０】
2015111326.tif 000012
【０１４１】
なお、式（１０）で、ｐp＿type,ξ＝ｐp＿type,Intであり、ｐp＿type,ζ＝ｐp＿type,FP−ｐp＿type,Intである。
検定の結果、ξ、ζともに有意でなければ（たとえば、有意確率が基準値以下）、プロセッサ２１は、その分類ｐ＿ｔｙｐｅの消費電力は、ＭＩＰＳ値と相関が小さいと見なし、ｅｓｔ＿ｍp＿type＝ｃｏｎｓｔとし、電力予測式を定数で表すようにする。ξまたはζの少なくとも何れかが有意であれば、プロセッサ２１は、その分類ｐ＿ｔｙｐｅの消費電力は、ＭＩＰＳ値との相関が大きいと見なし、ｅｓｔ＿ｍp＿type＝ｌ＿ｉｎｓｔ＿ｎｕｍとし、電力予測式を線形式で表すようにする。
【０１４２】
なお、電力値の標準偏差／平均値、で表せる変動係数ＣＶを、モデル制御変数ｅｓｔ＿ｍp＿typeの決定の際に併用するようにしてもよい。たとえば、変動係数ＣＶが所定の値よりも小さければ、プロセッサ２１は、その分類ｐ＿ｔｙｐｅの消費電力は、ＭＩＰＳ値との相関が小さいと見なし、ｅｓｔ＿ｍp＿type＝ｃｏｎｓｔとし、電力予測式を定数で表すようにしてもよい。
【０１４３】
一方、命令種別により電力予測式を使い分けるか否かを決めるモデル制御変数ｅｓｔ＿ｉp＿typeは、たとえば、偏回帰係数の検定を利用して求められる。
プロセッサ２１は、上記の式（９）の係数ｐp＿type,Intと係数ｐp＿type,FPに差があれば、分類ｐ＿ｔｙｐｅの消費電力とＭＩＰＳ値との相関の大きさは、命令種別ごとに異なるものとみなし、モデル制御変数ｅｓｔ＿ｉp＿type＝ＴＲＵＥ、とする。プロセッサ２１は、係数ｐp＿type,Intと係数ｐp＿type,FPに差がなければ、分類ｐ＿ｔｙｐｅの消費電力とＭＩＰＳ値との相関の大きさは、命令種別が異なっても同じとみなし、モデル制御変数ｅｓｔ＿ｉp＿type＝ＦＡＬＳＥ、とする。
【０１４４】
検定において、係数ｐp＿type,Intと係数ｐp＿type,FPが異なる値であることを調べるには、ｐp＿type,ζ＝ｐp＿type,FP−ｐp＿type,Intが０ではないことを調べればよい。その場合、プロセッサ２１は、帰無仮説としてｐp＿type,ζ＝０と仮定し、求めた電力値が「定数＋誤差」の範疇かどうか有意確率を用いて判定する。
【０１４５】
上記の帰無仮説が棄却されたとき、プロセッサ２１は、電力値の変化が誤差だけでは説明できない（ζについて有意である）ものと判定し、モデル制御変数ｅｓｔ＿ｉp＿type＝ＴＲＵＥとする。帰無仮説が棄却されなかったときは、プロセッサ２１は、電力値の変化が誤差として説明できると判定し、モデル制御変数ｅｓｔ＿ｉp＿type＝ＦＡＬＳＥとする。
【０１４６】
係数ｐp＿type,i＿typeは、モデル制御変数ｅｓｔ＿ｉp＿typeによって以下のように算出される。
ｅｓｔ＿ｉp＿type＝ＴＲＵＥのとき、ｐp＿type,Int＝ｐp＿type,ξ、ｐp＿type,FP＝ｐp＿type,ξ＋ｐp＿type,ζ、と算出される。
【０１４７】
ｅｓｔ＿ｉp＿type＝ＦＡＬＳＥのときは、あらためて、ξ＝ＭＩＰＳInt＋ＭＩＰＳFPだけをパラメータとした電力予測式、ｐp＿type,allξ＋ｐp＿type,const＝Ｐp＿typeの係数として算出される。なお、ｐp＿type,all＝ｐp＿type,ξとしてもよい。
【０１４８】
定数ｐconstは、前述の式（７）で算出される。
以下、フローチャートを用いて、モデル制御変数ｅｓｔ＿ｍp＿type，ｅｓｔ＿ｉp＿type及び、係数ｐp＿type，i＿type、定数ｐconstを求める電力ライブラリ作成処理の流れをまとめる。
【０１４９】
図２８は、電力ライブラリ作成処理の一例の流れを説明するフローチャートである。なお、各処理ステップの順序は一例であり、適宜入れ替えてもよい。
プロセッサ２１は、以下のステップＳ８０〜Ｓ８９の処理を、分類ｐ＿ｔｙｐｅ（たとえば、ＦＦ、クロックラインに関係するセル、メモリ、その他）ごとに行う。
【０１５０】
まず、電力値の変動係数ＣＶの算出が行われ（ステップＳ８０）、変動係数ＣＶが基準値ＣＶref（たとえば、０．１）以上であるか否かが判定される（ステップＳ８１）。ＣＶ≧ＣＶrefではないときには、モデル制御変数ｅｓｔ＿ｍp＿typeはｅｓｔ＿ｍp＿type＝ｃｏｎｓｔとなる（ステップＳ８２）。これにより、モデル制御変数ｅｓｔ＿ｉp＿typeは、ｅｓｔ＿ｉp＿type＝ＦＡＬＳＥとなるとともに、全ての係数ｐp＿type,allは、０となり、ｐp＿type,constは、電力値Ｐp＿typeの平均値となる（ステップＳ８３）。これによって、分類ｐ＿ｔｙｐｅについての電力予測式は定数（電力値Ｐp＿typeの平均値）でモデル化される。
【０１５１】
一方、ステップＳ８１の処理で、ＣＶ≧ＣＶrefであると判定されたときには、回帰分析が行われる（ステップＳ８４）。ステップＳ８４の処理では、前述したように、たとえば、決定係数や、係数ｐp＿type,ξ，ｐp＿type,ζ、定数ｐp＿type,constが求められる。
【０１５２】
その後、モデルの選択が行われる（ステップＳ８５）。ステップＳ８５の処理では、電力予測式を定数（平均値）でモデル化するか、線形式でモデル化するかが選択される。
前述したように、たとえば、決定係数が０．５以上ならば、消費電力は、ＭＩＰＳ値との相関が大きいと見なされ、電力予測式を線形式でモデル化するように選択される。決定係数が０．５未満ならば、消費電力は、ＭＩＰＳ値との相関が小さいと見なされ、電力予測式を定数でモデル化するように選択される。
【０１５３】
また、前述したように、モデル選択に偏回帰係数の検定を利用する場合には、ξ、ζともに有意でなければ、消費電力は、ＭＩＰＳ値との相関が小さいと見なされ、電力予測式を定数でモデル化するように選択される。ξまたはζの少なくとも何れかが有意であれば、消費電力は、ＭＩＰＳ値との相関が大きいと見なされ、電力予測式を線形式でモデル化するように選択される。
【０１５４】
ステップＳ８５の処理で、電力予測式を定数（平均値）でモデル化することが選択されたときには、前述したステップＳ８２の処理が行われる。電力予測式を線形式でモデル化することが選択されたときには、モデル制御変数ｅｓｔ＿ｍp＿typeはｅｓｔ＿ｍp＿type＝ｌ＿ｉｎｓｔ＿ｎｕｍとなる（ステップＳ８６）。
【０１５５】
その後、命令種別（整数系命令か浮動小数点系命令）で電力予測式を使い分けるか否かが判定される（ステップＳ８７）。
ステップＳ８７の処理では、前述のような偏回帰係数の検定が行われ、命令種別に応じた電力値の変化が誤差だけでは説明できない（ζについて有意である）ものと判定されたときに、命令種別で電力予測式の使い分けを行う、と判定される。電力値の変化が誤差として説明できる（ζについて有意でない）と判定されたとき、命令種別で電力予測式の使い分けを行わない、と判定される。
【０１５６】
命令種別で電力予測式を使い分けると判定されたときには、モデル制御変数ｅｓｔ＿ｉp＿typeはＴＲＵＥとなるとともに、係数ｐp＿type,Intはｐp＿type,ξ、係数ｐp＿type,FPはｐp＿type,ξ＋ｐp＿type,ζとなる（ステップＳ８８）。命令種別で電力予測式を使い分けないと判定されたときには、モデル制御変数ｅｓｔ＿ｉp＿typeはＦＡＬＳＥとなるとともに、係数ｐp＿type,allはｐp＿type,ξとなる（ステップＳ８９）。なお、係数ｐp＿type,ξの代わりに、前述したように、ξ＝ＭＩＰＳInt＋ＭＩＰＳFPだけをパラメータとした電力予測式、ｐp＿type,allξ＋ｐp＿type,const＝Ｐp＿typeの係数ｐp＿type,allを用いてもよい。
【０１５７】
以上の処理が各分類ｐ＿ｔｙｐｅについて行われたのち、前述の式（７）に基づき、定数ｐconstが算出される（ステップＳ９０）。
以上のように求められたモデル制御変数ｅｓｔ＿ｍp＿type，ｅｓｔ＿ｉp＿type及び、係数ｐp＿type，i＿type、定数ｐconstは、電力ライブラリとして、たとえば、ＨＤＤ２３に記憶される。
【０１５８】
図２９は、電力ライブラリの一例を示す図である。
図２９に示されている電力ライブラリの例では、モデル制御変数ｅｓｔ＿ｉ、ｉ＿ｔｙｐｅ（Ｉｎｔ（整数系命令）とＦＰ（浮動小数点系命令））、分類ｐ＿ｔｙｐｅごとに、係数ｐp＿type，i＿typeがまとめられている。
【０１５９】
ｐFF,Int、ｐCKBUF,Int、ｐMEM,Int、ｐOTHER,Intは、モデル制御変数ｅｓｔ＿ｉがＴＲＵＥで、ｉ＿ｔｙｐｅがＩｎｔのときの係数ｐp＿type，i＿typeの値である。
ｐFF,FP、ｐCKBUF,FP、ｐMEM,FP、ｐOTHER,FPは、モデル制御変数ｅｓｔ＿ｉがＴＲＵＥで、ｉ＿ｔｙｐｅがＦＰのときの係数ｐp＿type，i＿typeの値である。
【０１６０】
ｐFF,all、ｐCKBUF,all、ｐMEM,all、ｐOTHER,allは、モデル制御変数ｅｓｔ＿ｉがＦＡＬＳＥのときの係数ｐp＿type，i＿typeの値である。
（電力見積処理）
以下、第４の実施の形態の電力見積方法における電力見積処理の一例を説明する。
【０１６１】
図３０は、電力見積処理の開始画面の一例を示す図である。
画面８０では、入力ファイル指定欄８１において、電力ライブラリとＭＩＰＳ値が記述されたファイルが、ユーザによって指定される。
【０１６２】
なお、ＭＩＰＳ値は、電力ライブラリ作成時に入力されるものと同じであっても異なるものであってもよい。ＭＩＰＳ値は、たとえば、ＩＳＳ（Instruction Set Simulator）を用いたシミュレーション、ＥＳＬ（Electronic System Level）シミュレーション、またはプロセッサが提供する性能解析情報から取得できる。
【０１６３】
見積もり電力保存先指定欄８２では、算出された見積もり電力の保存先が、ユーザによって指定される。
また、ボタン８３が、たとえば、ユーザによるマウス２５ｂなどの操作によって押されると、以下に示すような電力見積処理が行われる。
【０１６４】
電力見積処理では、プロセッサ２１は、式（８）に基づき、入力されたＭＩＰＳ値（ＭＩＰＳInt，ＭＩＰＳFP）と、電力ライブラリを参照して、見積もり電力Ｐｅｓｔ（ＭＩＰＳInt，ＭＩＰＳFP）を算出する。
【０１６５】
なお、式（８）において、π（ｅｓｔ＿ｉp＿type，ｐ＿ｔｙｐｅ，ｉ＿ｔｙｐｅ）は、図２９に示したような電力ライブラリにおける係数ｐp＿type，i＿typeの値である。また、式（８）において、パラメータの値であるν（ｅｓｔ＿ｍp＿type，ｉ＿ｔｙｐｅ）は、たとえば、以下のテーブルから決定される。
【０１６６】
図３１は、パラメータ値を指定するテーブルの一例を示す図である。
図３１に示されているテーブルの例では、モデル制御変数ｅｓｔ＿ｍ（ｃｏｎｓｔとｌ＿ｉｎｓｔ＿ｎｕｍ）と命令種別ｉ＿ｔｙｐｅ（ＩｎｔとＦＰ）に応じて、ν（ｅｓｔ＿ｍp＿type，ｉ＿ｔｙｐｅ）として使用されるパラメータの値が示されている。
【０１６７】
モデル制御変数ｅｓｔ＿ｍがｃｏｎｓｔのときは、ν（ｅｓｔ＿ｍp＿type，ｉ＿ｔｙｐｅ）は、命令種別ｉ＿ｔｙｐｅによらず、１である。モデル制御変数ｅｓｔ＿ｍがｌ＿ｉｎｓｔ＿ｎｕｍのとき、ν（ｅｓｔ＿ｍp＿type，ｉ＿ｔｙｐｅ）は、命令種別ｉ＿ｔｙｐｅがＩｎｔのときは、入力されたＭＩＰＳInt、命令種別ｉ＿ｔｙｐｅがＦＰのときは、入力されたＭＩＰＳFPである。
【０１６８】
プロセッサ２１は、電力ライブラリや図３１に示されているようなパラメータ値を指定するテーブルの値を、式（８）で示される電力モデルに適用することで、見積もり電力を算出する。
【０１６９】
（電力ライブラリ作成処理の変形例）
以下、電力ライブラリ作成処理の変形例を説明する。
前述の式（５）において、ｅｓｔ＿ｍ＝ｃｏｎｓｔのときの、Ｐｅｓｔp＿type（ＭＩＰＳInt，ＭＩＰＳFP）＝０×１＋０×１＋ｐp＿type,constは、０×ＭＩＰＳInt＋０×ＭＩＰＳFP＋ｐp＿type,constとしても同じである。
【０１７０】
また、式（５）から、ｅｓｔ＿ｍ＝ｃｏｎｓｔのとき（電力予測式を定数でモデル化するとき）、ｐp＿type,Intとｐp＿type,FPは０である。ｅｓｔ＿ｍ＝ｌ＿ｉｎｓｔ＿ｎｕｍかつｅｓｔ＿ｉ＝ＴＲＵＥのとき（電力予測式を線形式でモデル化するとともに命令種別ごとに電力予測式を使い分けるとき）、ｐp＿type,Intとｐp＿type,FPはｐp＿type,allである。これらの情報に基づき電力ライブラリを作成し、電力見積処理にて用いるようにすることで、式（５）は、以下の式（１１）のように簡略化できる。
【０１７１】
【数１１】
2015111326.tif 000013
【０１７２】
そのため、係数ｐp＿type,all、モデル制御変数ｅｓｔ＿ｉp＿type，ｅｓｔ＿ｍp＿type、関数π（ｅｓｔ＿ｉ，ｐ＿ｔｙｐｅ，ｉ＿ｔｙｐｅ），ν（ｅｓｔ＿ｍ，ｉ＿ｔｙｐｅ）は、電力予測式においては用いなくてもよくなる。そのため、電力モデルである式（８）は、以下の式（１２）のように簡略化できる。
【０１７３】
【数１２】
2015111326.tif 000014
【０１７４】
上記の式（１２）で表せる電力モデルに基づく電力ライブラリの作成処理について、以下に説明する。
図３２は、電力ライブラリ作成処理の変形例を説明するフローチャートである。なお、各処理ステップの順序は一例であり、適宜入れ替えてもよい。
【０１７５】
プロセッサ２１は、以下のステップＳ９０〜Ｓ９７の処理を、分類ｐ＿ｔｙｐｅ（たとえば、ＦＦ、クロックラインに関係するセル、メモリ、その他）ごとに行う。
ステップＳ９０，Ｓ９１の処理は、図２８に示したステップＳ８０，Ｓ８１の処理と同じである。ただし、式（１２）に基づく電力ライブラリの作成処理では、モデル制御変数ｅｓｔ＿ｍp＿typeは用いられないため、ＣＶ≧ＣＶrefではない場合には、ｅｓｔ＿ｍp＿type＝ｃｏｎｓｔとする処理は行われず、ステップＳ９２の処理が行われる。
【０１７６】
ステップＳ９２の処理では、ｐp＿type,Int＝０、ｐp＿type,FP＝０、ｐp＿type,const＝Ｐp＿typeの平均値となる。
ステップＳ９３，Ｓ９４の処理では、図２８に示したステップＳ８４，Ｓ８５の処理と同様に、回帰分析とモデルの選択が行われる。ただし、モデルの選択において、電力予測式が定数でモデル化するような選択が行われると、前述のように、ｅｓｔ＿ｍp＿type＝ｃｏｎｓｔとする処理は行われず、ステップＳ９２の処理が行われる。また、電力予測式が線形式でモデル化するような選択が行われると、ｅｓｔ＿ｍp＿type＝ｌ＿ｉｎｓｔ＿ｎｕｍとする処理は行われず、ステップＳ９５の処理が行われる。
【０１７７】
ステップＳ９５の処理では、図２８に示したステップＳ８７の処理と同様に、検定が行われ、命令種別（整数系命令か浮動小数点系命令）で電力予測式を使い分けるか否かが判定される。
【０１７８】
命令種別で電力予測式を使い分けると判定されたときには、ステップＳ９６の処理が行われ、命令種別で電力予測式を使い分けないと判定されたときには、ステップＳ９７の処理が行われる。
【０１７９】
ステップＳ９６の処理では、係数ｐp＿type,Intはｐp＿type,ξ、係数ｐp＿type,FPはｐp＿type,ξ＋ｐp＿type,ζとなり、ステップＳ９７の処理では、係数ｐp＿type,Int，ｐp＿type,FPはｐp＿type,ξとなる。
【０１８０】
以上の処理が各分類ｐ＿ｔｙｐｅについて行われたのち、前述の式（７）に基づき、定数ｐconstが算出される（ステップＳ９８）。
以上のように求められた係数ｐp＿type，i＿type、定数ｐconstは、電力ライブラリとして、たとえば、ＨＤＤ２３に記憶される。上記の処理によれば、係数ｐp＿type,all、モデル制御変数ｅｓｔ＿ｉp＿type，ｅｓｔ＿ｍp＿typeは用いずに電力ライブラリが作成される。そのため、電力見積処理の際には、図２９や図３１に示したようなテーブルの参照が不要になり、係数ｐp＿type，i＿type、定数ｐconstと、入力されたパラメータの値（ＭＩＰＳ値）から見積もり電力を算出することができるようになる。
【０１８１】
以上のような第４の実施の形態の電力見積方法によれば、命令種別や、電力発生要因を考慮した電力見積が行えるため、プロセッサを含む半導体集積回路の消費電力を精度よく見積もることができる。また、命令種別ごとにＭＩＰＳ値を分けることによる消費電力への影響が小さいときには、命令種別ごとのＭＩＰＳ値を合計したパラメータを用いるため、電力モデルを簡素化でき、前述第２乃至第３の実施の形態の電力見積方法と同様の効果が得られる。
【０１８２】
また、上記のような電力ライブラリ作成処理を、図４〜図６に示したような処理と組み合わせることもできる。これにより、ＭＩＰＳ値の他、他のパラメータを用いたときも、プロセッサの消費電力を考慮しつつ、パラメータ数を削除した、または平均電力を用いた簡素な電力モデルを作成できる。
【０１８３】
（第５の実施の形態）
以下、第５の実施の形態の電力見積方法について説明する。電力見積装置については、図２に示した電力見積装置２０が適用可能である。
【０１８４】
第５の実施の形態の電力見積方法も、電力見積対象装置を、ＣＰＵやＤＳＰなどのプロセッサを含む半導体集積回路としたものであるが、プロセッサにおける、電力発生要因や命令種別の他に、動作率も考慮した電力モデルを作成し、電力見積を行うものである。動作率は、１クロックサイクルで信号値が変動する確率（＝信号変動回数／クロック周波数）である。
【０１８５】
図３３は、ＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
また、図３４は、動作率を乗じたＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
【０１８６】
図３３において、横軸はＭＩＰＳ値を示し、縦軸は消費電力を示している。図３４では、横軸は動作率を乗じたＭＩＰＳ値を示し、縦軸は消費電力を示している。図３３、図３４で示されている消費電力は、各電力発生要因（ＦＦ、クロックバッファ、メモリ、その他）での消費電力の総和である。ＦＦとメモリの動作率としては、クロック端子の平均動作率、クロックバッファとその他の電力発生要因の動作率については出力端子の平均動作率が用いられている。なお、シミュレーションにおいて、浮動小数点系命令については浮動小数点ベンチマークプログラム、整数系命令については整数ベンチマークプログラムが用いられている。
【０１８７】
図３３、図３４に示されているように、ＭＩＰＳ値と消費電力との相関関係（図３３）に比べて、動作率を乗じたＭＩＰＳ値と消費電力との相関関係（図３４）は、よい相関を示す。
【０１８８】
図３５は、命令種別ごとの、動作率を乗じたＭＩＰＳ値と消費電力との相関関係のシミュレーション例を示す図である。
横軸は動作率を乗じたＭＩＰＳ値であり、縦軸は消費電力である。四角のプロット（たとえば、ｐｌｔ１１）は、浮動小数点ベンチマークプログラムを用いた電力算出例を示し、ダイヤのプロット（たとえば、ｐｌｔ１２）は、整数ベンチマークプログラムを用いた電力算出例を示している。図３５では、２種の命令種別（整数系命令と浮動小数点系命令）ごとの消費電力が２種のベンチマークプログラムで計算されている。
【０１８９】
図１６に示した命令種別ごとの消費電力とＭＩＰＳ値とは、比較的よい相関を示していたが、図３５に示した命令種別ごとの消費電力と動作率を乗じたＭＩＰＳ値とは、さらによい相関を示し、直線ｌｎ１１，ｌｎ１２でほぼ近似できることが分かる。
【０１９０】
第５の実施の形態の電力見積方法では、命令種別と電力発生要因の他に、上記のような動作率を考慮して、電力モデルが作成される。電力モデルで表現される見積もり電力は、電力発生要因の分類ｐ＿ｔｙｐｅごとの見積もり電力の和で表現される。また、分類ｐ＿ｔｙｐｅごとの見積もり電力は、定数か、ＭＩＰＳ値（または動作率を乗じたＭＩＰＳ値）の合計をパラメータとする線形式か、命令種別ごとのＭＩＰＳ値（または動作率を乗じたＭＩＰＳ値）をパラメータとする線形式か、の何れかにより予測される。なお、適用される動作率は、分類ｐ＿ｔｙｐｅごとに異なるが、クロックツリーの動作率またはデータパスの動作率の何れかに近似される。以下では、クロック端子を有するＦＦ、メモリ及びクロックバッファについてはクロックツリーの動作率が用いられ、その他についてはデータパスの動作率が用いられるものとする。これにより、計算量を抑えられる。なお、たとえば、クロックツリーの動作率の代わりに、ＦＦの動作率の平均値、メモリの動作率の平均値及びクロックバッファの動作率の平均値を、それぞれのセル数に基づいて加重平均したものを用いてもよい。
【０１９１】
電力モデルは、たとえば、以下のように表される。
【０１９２】
【数１３】
2015111326.tif 000015
【０１９３】
式（１３）において、αCKは、クロックツリーの動作率を示し、αDPは、データパスの動作率を示している。その他の要素については、式（３）と同じである。
Ｐｅｓｔp＿type（ＭＩＰＳInt，ＭＩＰＳFP，αCK，αDP）は、分類ｐ＿ｔｙｐｅにおける見積もり電力であり、以下の式（１４）のようにモデル制御変数ｅｓｔ＿ｍ，ｅｓｔ＿ｉの状態に応じて５種類の電力予測式で表される。
【０１９４】
【数１４】
2015111326.tif 000016
【０１９５】
式（１４）では、式（４）の３種類の電力予測式に加えて、動作率を考慮した２種類の電力予測式が追加されている。すなわち、ｅｓｔ＿ｍ＝ｌ＿ａｃｔ＿ｎｕｍかつ、ｅｓｔ＿ｉ＝ＴＲＵＥであるときに、Ｐｅｓｔp＿type（ＭＩＰＳInt，ＭＩＰＳFP，αCK，αDP）を表す、命令種別ごとのＭＩＰＳ値の合計に動作率αp＿typeを乗じた値をパラメータとする線形式が追加されている。さらに、ｅｓｔ＿ｍ＝ｌ＿ａｃｔ＿ｎｕｍかつ、ｅｓｔ＿ｉ＝ＦＡＬＳＥであるときに、Ｐｅｓｔp＿type（ＭＩＰＳInt，ＭＩＰＳFP，αCK，αDP）を表す、命令種別ごとのＭＩＰＳ値に動作率αp＿typeを乗じた値をパラメータとする線形式が追加されている。動作率αp＿typeは、分類ｐ＿ｔｙｐｅが、ＦＦ、メモリ、クロックバッファのときには、αp＿type＝αCKであり、その他のときには、αp＿type＝αDPである。
【０１９６】
ところで式（１４）は、以下のように書き換えられる。
【０１９７】
【数１５】
2015111326.tif 000017
【０１９８】
式（１５）において、ｅｓｔ＿ｍ＝ｃｏｎｓｔのときは、ｐp＿type,Int＝０、ｐp＿type,FP＝０、ｅｓｔ＿ｉ＝ＴＲＵＥのときは、ｐp＿type,Int＝ｐp＿type,all、ｐp＿type,FP＝ｐp＿type,allとする。また、関数ν（ｅｓｔ＿ｍp＿type，，ｉ＿ｔｙｐｅ）を導入する。関数ν（ｅｓｔ＿ｍp＿type，，ｉ＿ｔｙｐｅ）は、モデル制御変数ｅｓｔ＿ｍがｌ＿ａｃｔ＿ｎｕｍのときＭＩＰＳi＿typeαp＿type、モデル制御変数ｅｓｔ＿ｍがその他のときには、ＭＩＰＳi＿typeとなる関数である。関数ν（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ，ｉ＿ｔｙｐｅ）を用いて、式（１５）を書き換えると、以下の式（１６）のようになる。
【０１９９】
【数１６】
2015111326.tif 000018
【０２００】
式（１６）を、式（１３）に代入すると、以下のような電力予測式が得られる。
【０２０１】
【数１７】
2015111326.tif 000019
【０２０２】
本実施の形態における電力見積方法では、プロセッサ２１が、入力データ（ＭＩＰＳ値ＭＩＰＳi＿type、動作率αp＿type、電力値）に基づいて、回帰分析や検定などにより、モデル制御変数ｅｓｔ＿ｍ，ｅｓｔ＿ｉ、係数ｐp＿type、定数ｐconstを求める。
【０２０３】
本実施の形態の電力見積方法についても、図３に示した処理の流れと同様に行われる。ただし、第５の実施の形態の電力見積方法では、パラメータとして、ＭＩＰＳ値と動作率が用いられる。以下にＭＩＰＳ値、動作率と、電力値を含む入力データの取得方法の例を説明する。
【０２０４】
（入力データ取得方法）
図３６は、入力データ取得方法の一例を示す図である。
図２５に示した内容と同様の処理及びデータについては同一符号を付し、説明を省略する。なお、計算対象となる半導体集積回路は、物理設計の実績があるものであり（たとえば、試作チップ作成などが行われたもの）、電力が計算できるとともに、分類ｐ＿ｔｙｐｅごとの動作率をプロセッサ２１が取得できるものとする。電力ライブラリの作成に使用する動作率は、たとえば、各分類ｐ＿ｔｙｐｅの動作率の平均値とする。
【０２０５】
第５の実施の形態の電力見積方法において、波形解析（ステップＳ７１ａ）の際には、プロセッサ２１は、波形データＤ１１からＭＩＰＳ値の他に、動作率を取得する。
図３７は、算出された電力値とＭＩＰＳ値及び動作率の一例を示す図である。
【０２０６】
図３７には、図２６に示したサンプルごとの電力値、ＭＩＰＳ値の他に、サンプルごとの動作率が示されている。動作率は、ＦＦ、クロックラインに関係するセル（“ＣＬＫ”）、メモリ（“ＭＥＭ”）、その他（“ＯＴＨＥＲ”）、クロックツリー（“ＣＫ”）という分類ごとにまとめられている。たとえば、サンプル１〜サンプルｎにおける、ＦＦの動作率αFF1〜αFFn、ＣＬＫの動作率αCLK1〜αCLKn、ＭＥＭの動作率αMEM1〜αMEMn、ＯＴＨＥＲの電力値αOTHER1〜αOTHERn、ＣＫの動作率αCK1〜αCKnが示されている。
【０２０７】
算出された電力値、ＭＩＰＳ値及び動作率は、たとえば、ＨＤＤ２３などの記憶部に記憶される。
その後、プロセッサ２１は、電力値とＭＩＰＳ値を、たとえば、ＨＤＤ２３から取得し（読み出し）、電力ライブラリを作成する。
【０２０８】
（電力ライブラリ作成処理）
以下、第５の実施の形態の電力見積方法における電力ライブラリ作成処理の一例を説明する。
【０２０９】
図３８は、電力ライブラリ作成処理の開始画面の一例を示す図である。
画面９０では、入力ファイル指定欄９１において、サンプルの電力値、ＭＩＰＳ値及び動作率が記述されたファイルが、ユーザによって指定される。図３８の例では、入力ファイル指定欄９１で、電力値とＭＩＰＳ値と動作率は別々のファイルで指定される。電力ライブラリ保存先指定欄９２では、作成される電力ライブラリの保存先が、ユーザによって指定される。
【０２１０】
また、ボタン９３が、たとえば、ユーザによるマウス２５ｂなどの操作によって押されると、以下に示すような電力ライブラリの作成処理が行われる。また、タブ９４が、たとえば、ユーザによるマウス２５ｂなどの操作によって押されると、後述する電力見積処理が行われる。
【０２１１】
電力ライブラリ作成処理は、前述した第４の実施の形態における電力ライブラリ作成処理とほぼ同様である。ただし、第５の実施の形態における電力ライブラリ作成処理では、動作率を導入することにより、以下の処理が追加される。
【０２１２】
プロセッサ２１は、式（１４）（または式（１５））に示されている５種類の電力予測式のうち、動作率αp＿typeを使用するものと、使用しないものとで、どちらが消費電力をよく予測できるかの判断を行う。判断の基準としては、たとえば、決定係数が用いられる。
【０２１３】
図３９は、電力ライブラリ作成処理の一例の流れを説明するフローチャートである。なお、各処理ステップの順序は一例であり、適宜入れ替えてもよい。
プロセッサ２１は、以下のステップＳ１００〜Ｓ１１４の処理を、分類ｐ＿ｔｙｐｅ（たとえば、ＦＦ、クロックバッファ、メモリ、その他）ごとに行う。
【０２１４】
ステップＳ１００，Ｓ１０１，Ｓ１０２，Ｓ１０３の処理は、前述の図２８に示した電力ライブラリ作成処理のステップＳ８０〜Ｓ８３の処理とほぼ同じであり、分類ｐ＿ｔｙｐｅについての電力予測式は定数（電力値Ｐp＿typeの平均値）でモデル化される。ただ、第５の実施の形態における電力ライブラリ作成処理では、モデル制御変数ｅｓｔ＿ｉp＿typeは使用されないため、ステップＳ１０３の処理では、モデル制御変数ｅｓｔ＿ｉp＿typeの設定は行われない。また、図３９の電力ライブラリ作成方法の例では、係数ｐp＿type,allも使用されないため、ステップＳ１０３の処理では、ｐp＿type,Int＝０、ｐp＿type,FP＝０に設定される。
【０２１５】
一方、ステップＳ１０１の処理で、ＣＶ≧ＣＶrefであると判定されたときには、回帰分析が行われる（ステップＳ１０４）。ステップＳ１０４の処理では、ξ＝ＭＩＰＳInt＋ＭＩＰＳFP、ζ＝ＭＩＰＳFP、ξα＝αp＿typeξ、ζα＝αp＿typeζとして、以下の２つの式に対して回帰分析が行われる。
【０２１６】
【数１８】
2015111326.tif 000020
【０２１７】
【数１９】
2015111326.tif 000021
【０２１８】
式（１８）に対する回帰分析から係数ｐp＿type,ξ，ｐp＿type,ζ、定数ｐp＿type,constと決定係数Ｒ2が得られ、式（１９）に対する回帰分析から係数ｐp＿type,ξα，ｐp＿type,ζα、定数ｐp＿type,constαと決定係数Ｒα2が得られる。
【０２１９】
その後、モデルの選択が行われる（ステップＳ１０５）。ステップＳ１０５の処理では、電力予測式を定数（平均値）でモデル化するか、線形式でモデル化するかが選択される。
【０２２０】
たとえば、決定係数Ｒ2または決定係数Ｒα2が０．５以上ならば、消費電力は、ＭＩＰＳ値と相関があると見なされ、電力予測式を線形式でモデル化するように選択される。決定係数Ｒ2または決定係数Ｒα2が０．５未満ならば、消費電力は、ＭＩＰＳ値と相関がないと見なされ、電力予測式を定数でモデル化するように選択される。
【０２２１】
決定係数を用いる代わりに、たとえば、偏回帰係数の検定（ｔ検定）の有意確率（ｐ値）を用い、ｐ値が所定の閾値（たとえば０．０５）以下のときに線形式、閾値より大きいときに定数でモデル化するようにしてもよい。
【０２２２】
ステップＳ１０５の処理で、電力予測式を定数（平均値）でモデル化することが選択されたときには、前述したステップＳ１０２の処理が行われる。電力予測式を線形式でモデル化することが選択されたときには、電力予測式に動作率を適用するか否かが判定される（ステップＳ１０６）。
【０２２３】
ステップＳ１０６の処理では、たとえば、Ｒ2≧Ｒα2であるか否かによって、電力予測式に動作率を適用するか否かが判定される。
Ｒ2≧Ｒα2であるならば、動作率を用いたときの消費電力とＭＩＰＳ値との相関は、動作率を用いないときの消費電力とＭＩＰＳ値との相関と同じか小さいと見なされ、電力予測式に動作率を適用しないと判定される。Ｒ2＜Ｒα2であるならば、動作率を用いたときの消費電力とＭＩＰＳ値との相関は、動作率を用いないときの消費電力とＭＩＰＳ値との相関よりも大きいと見なされ、電力予測式に動作率を適用すると判定される。
【０２２４】
また、決定係数を用いる代わりに、たとえば、式（１８）、式（１９）における偏回帰係数の検定（ｔ検定）の有意確率（ｐ値）を用いてもよい。式（１８）における偏回帰係数の検定（ｔ検定）のｐ値が、式（１９）における偏回帰係数の検定（ｔ検定）のｐ値以下のときに動作率を適用しない、それ以外のときには動作率を適用するようにしてもよい。
【０２２５】
電力予測式に動作率を適用しないと判定されたときには、ステップＳ１０７，Ｓ１０８，Ｓ１０９，Ｓ１１０の処理が行われる。ステップＳ１０７〜Ｓ１１０の処理は、図２８のステップＳ８６〜Ｓ８９の処理とほぼ同じである。ただ、第５の実施の形態における電力ライブラリ作成処理では、モデル制御変数ｅｓｔ＿ｉp＿typeは使用されないため、ステップＳ１０９，Ｓ１１０の処理では、モデル制御変数ｅｓｔ＿ｉp＿typeの設定は行われない。また、図３９の電力ライブラリ作成方法の例では、係数ｐp＿type,allも使用されないため、ステップＳ１１０の処理では、ｐp＿type,Int＝ｐp＿type,ξ、ｐp＿type,FP＝ｐp＿type,ξに設定される。
【０２２６】
電力予測式に動作率を適用すると判定されたときには、ステップＳ１１１，Ｓ１１２，Ｓ１１３，Ｓ１１４の処理が行われる。
ステップＳ１１１の処理では、モデル制御変数ｅｓｔ＿ｍp＿typeはｅｓｔ＿ｍp＿type＝ｌ＿ａｃｔ＿ｎｕｍとなる。
【０２２７】
ステップＳ１１２の処理では、命令種別で電力予測式を使い分けるか否かが判定される。ステップＳ１１２の処理では、偏回帰係数の検定が行われ、命令種別に応じた電力値の変化が誤差だけでは説明できない（ζαについて有意である）ものと判定されたときに、命令種別で電力予測式の使い分けを行う、と判定される。電力値の変化が誤差として説明できる（ζαについて有意でない）と判定されたとき、命令種別で電力予測式の使い分けを行わない、と判定される。
【０２２８】
命令種別で電力予測式を使い分けると判定されたときには、ステップＳ１１３の処理にて、係数ｐp＿type,Intはｐp＿type,ξα、係数ｐp＿type,FPはｐp＿type,ξα＋ｐp＿type,ζα、定数ｐp＿type,constはｐp＿type,constαとなる。
【０２２９】
命令種別で電力予測式を使い分けないと判定されたときには、ステップＳ１１４の処理にて、係数ｐp＿type,Intと係数ｐp＿type,FPは、ｐp＿type,ξαとなり、定数ｐp＿type,constはｐp＿type,constαとなる。
【０２３０】
なお、ステップＳ１１０，Ｓ１１４の処理では、係数ｐp＿type,ξ，ｐp＿type,ξαの代わりに、ξだけをパラメータとした電力予測式の係数を用いてもよい。ξだけをパラメータとした電力予測式はｐp＿type,allξ＋ｐp＿type,const＝Ｐp＿typeまたはｐp＿type,allξα＋ｐp＿type,constα＝Ｐp＿typeと表せ、その係数はｐp＿type,allである。
【０２３１】
以上の処理が各分類ｐ＿ｔｙｐｅについて行われたのち、前述の式（７）に基づき、定数ｐconstが算出される（ステップＳ１１５）。
以上のように求められたモデル制御変数ｅｓｔ＿ｍp＿type及び、係数ｐp＿type，i＿type、定数ｐconstは、電力ライブラリとして、たとえば、ＨＤＤ２３に記憶される。
【０２３２】
（電力見積処理）
以下、第５の実施の形態の電力見積方法における電力見積処理の一例を説明する。
図４０は、電力見積処理の開始画面の一例を示す図である。
【０２３３】
画面１００では、入力ファイル指定欄１０１において、電力ライブラリとＭＩＰＳ値が記述されたファイルが、ユーザによって指定される。さらに、入力ファイル指定欄１０１では、パラメータとして使用する動作率として、電力ライブラリ作成時の動作率を利用するか、指定値を入力するかがユーザによって選択できるようになっている。動作率として指定値を入力したいときには、入力ファイル指定欄１０１において、クロックツリーの動作率やデータパスの動作率が入力できるようになっている。
【０２３４】
なお、ＭＩＰＳ値や動作率は、電力ライブラリ作成時に入力されるものと同じであっても異なるものであってもよい。ＭＩＰＳ値は、たとえば、ＩＳＳを用いたシミュレーション、ＥＳＬシミュレーション、またはプロセッサが提供する性能解析情報から取得できる。動作率も、たとえば、上記性能解析情報から取得できる。または、図４０のようにユーザ（設計者）が動作率の予測値を入力するようにしてもよい。また、電力ライブラリ作成時の動作率から算出される動作率のデフォルト値を用いてもよい。
【０２３５】
見積もり電力保存先指定欄１０２では、算出された見積もり電力の保存先が、ユーザによって指定される。
また、ボタン１０３が、たとえば、ユーザによるマウス２５ｂなどの操作によって押されると、以下に示すような電力見積処理が行われる。
【０２３６】
電力見積処理では、プロセッサ２１は、式（１７）に基づき、入力されたＭＩＰＳ値（ＭＩＰＳInt，ＭＩＰＳFP）と、電力ライブラリと、動作率を参照して、見積もり電力Ｐｅｓｔ（ＭＩＰＳInt，ＭＩＰＳFP，αCK，αDP）を算出する。
【０２３７】
なお、式（１７）において、関数ν（ｅｓｔ＿ｍp＿type，ｐ＿ｔｙｐｅ，ｉ＿ｔｙｐｅ）は、前述したように、モデル制御変数ｅｓｔ＿ｍがｌ＿ａｃｔ＿ｎｕｍのときＭＩＰＳi＿typeαp＿typeとなる。また、関数ν（ｅｓｔ＿ｍp＿type，ｐ＿ｔｙｐｅ，ｉ＿ｔｙｐｅ）は、モデル制御変数ｅｓｔ＿ｍがその他のときには、ｅｓｔ＿ｍ＝ＭＩＰＳi＿typeとなる。このような関数ν（ｅｓｔ＿ｍp＿type，ｐ＿ｔｙｐｅ，ｉ＿ｔｙｐｅ）の値を決定するテーブルを電力ライブラリとして作成し、電力見積処理の際に、モデル制御変数ｅｓｔ＿ｍの値に応じて、上記テーブルの値をプロセッサ２１が利用するようにしてもよい。これにより電力見積処理が容易になる。
【０２３８】
また、以下に示すような関数ρ（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ）を用いて関数ν（ｅｓｔ＿ｍp＿type，ｐ＿ｔｙｐｅ，ｉ＿ｔｙｐｅ）を表すことで、テーブルのサイズを小さくすることができる。
【０２３９】
関数ρ（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ）は、モデル制御変数ｅｓｔ＿ｍがｌ＿ａｃｔ＿ｎｕｍ、かつ、分類ｐ＿ｔｙｐｅがその他（“ＯＴＨＥＲ”）のときに、データパスの動作率αDPとなる。また、関数ρ（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ）は、モデル制御変数ｅｓｔ＿ｍがｌ＿ａｃｔ＿ｎｕｍ、かつ、分類ｐ＿ｔｙｐｅがＦＦ、クロックバッファ、メモリのときに、クロックツリーの動作率αCKとなる。また、関数ρ（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ）は、その他の条件のときには、１となる。
【０２４０】
関数ρ（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ）は、たとえば、以下のようなテーブルで表せる。
図４１は、関数ρ（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ）の一例を示す図である。
関数ρ（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ）は、モデル制御変数ｅｓｔ＿ｍがｌ＿ａｃｔ＿ｎｕｍで分類ｐ＿ｔｙｐｅがＦＦ、クロックバッファ、メモリのときに、クロックツリーの動作率αCK、分類ｐ＿ｔｙｐｅがその他のときには、データパスの動作率αDPとなる。関数ρ（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ）は、モデル制御変数ｅｓｔ＿ｍがｃｏｎｓｔまたはｌ＿ｉｎｓｔ＿ｎｕｍのときには、分類ｐ＿ｔｙｐｅによらず、１となる。
【０２４１】
このような関数ρ（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ）を用いると、関数ν（ｅｓｔ＿ｍp＿type，ｐ＿ｔｙｐｅ，ｉ＿ｔｙｐｅ）は、ν（ｅｓｔ＿ｍp＿type，ｐ＿ｔｙｐｅ，ｉ＿ｔｙｐｅ）＝ＭＩＰＳi＿typeρ（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ）と表せる。
【０２４２】
そして、電力見積処理の際、プロセッサ２１は、たとえば、ＨＤＤ２３に格納された図４１に示すようなテーブルを参照し、モデル制御変数ｅｓｔ＿ｍと分類ｐ＿ｔｙｐｅに応応じた関数ρ（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ）の値を取得する。そして、プロセッサ２１は、取得した関数ρ（ｅｓｔ＿ｍ，ｐ＿ｔｙｐｅ）の値と、ＭＩＰＳi＿typeに基づき、関数ν（ｅｓｔ＿ｍp＿type，ｐ＿ｔｙｐｅ，ｉ＿ｔｙｐｅ）を算出し、式（１７）で示される電力モデルに適用することで、見積もり電力を算出する。
【０２４３】
以上のような第５の実施の形態の電力見積方法では、第４の実施の形態の電力見積方法と同様の効果が得られるとともに、電力発生要因の分類ごとの動作率を考慮して電力見積を行うことで、より精度のよい電力見積を行える。また、動作率を考慮しない方が消費電力を精度よく算出できる場合（動作率を乗じたＭＩＰＳ値と消費電力と相関が小さい場合）には、動作率を考慮せずに電力モデルを作成するので、簡素な電力モデルを作成でき、電力見積計算の計算量を抑えることができる。
【０２４４】
（第６の実施の形態）
以下、第６の実施の形態の電力見積方法について説明する。電力見積装置については、図２に示した電力見積装置２０が適用可能である。
【０２４５】
前述した第４及び第５の実施の形態の電力見積方法では、整数系と浮動小数点系の命令のＭＩＰＳ値がそれぞれ計測できることを前提とした。以下に示す第６の実施の形態の電力見積方法では、計測できるＭＩＰＳ値は各命令種別のＭＩＰＳ値の合計値であるものとする。
【０２４６】
第６の実施の形態の電力見積方法では、プロセッサ２１が命令種別を判別するために、サンプル（ＣＰＵやＤＳＰなどのプロセッサを含む半導体集積回路）で実行されるプログラムは、どの命令種別が支配的なのかの情報が、たとえば、ユーザから提供される。たとえば、サンプルで実行されるプログラムの命令は、整数系命令が多いのか、浮動小数点系命令が多いのか、などの情報が提供される。
【０２４７】
第６の実施の形態の電力見積方法において作成される電力予測式は、動作率を考慮しない場合には、たとえば、式（８）、動作率を考慮する場合には、たとえば、式（１７）とほぼ同様になる。ただし、ＭＩＰＳ値は命令種別ｉ＿ｔｙｐｅごとに取得されないため、Σ内の変数として命令種別ｉ＿ｔｙｐｅはなくなり、電力予測式自体が、命令種別ｉ＿ｔｙｐｅごとに作成される。
【０２４８】
本実施の形態でも、ＭＩＰＳ値と電力値を含む入力データをプロセッサ２１が取得して、入力データに基づいて、回帰分析や検定などにより、前述したモデル制御変数ｅｓｔ＿ｍ、係数ｐp＿type,i＿type、定数ｐconst,i＿typeが求められる。
【０２４９】
本実施の形態の電力見積方法についても、図３に示した処理の流れと同様に行われる。ただし、第６の実施の形態の電力見積方法では、入力データとしてＭＩＰＳ値及び電力値の他、サンプルにおける支配的な命令種別ｉ＿ｔｙｐｅに関する情報と、動作率を考慮する場合には動作率の情報が用いられる。以下に入力データの取得方法の例を説明する。
【０２５０】
（入力データ取得方法）
各サンプルについての、電力値、ＭＩＰＳ値及び動作率については、前述の図３６に示した処理にて取得できる。ただし、本実施の形態の電力見積方法において取得されるＭＩＰＳ値は、命令種別ｉ＿ｔｙｐｅごとのＭＩＰＳ値ではなく、各命令種別ｉ＿ｔｙｐｅのＭＩＰＳ値の合計値である。これらの入力データとともに、プロセッサ２１は、サンプルにおける支配的な命令種別ｉ＿ｔｙｐｅに関する情報を、たとえば、ユーザから取得する。なお、この時、プロセッサ２１は、ＭＩＰＳ値以外に、サンプル１〜サンプルｎの他のパラメータを取得してもよい。
【０２５１】
図４２は、取得した入力データの一例を示す図である。
図４２には、サンプルごとの電力値、ＭＩＰＳ値、動作率の他に、サンプルのプログラムタイプｐｒｏｇ1〜ｐｒｏｇnが示されている。プログラムタイプｐｒｏｇ1〜ｐｒｏｇnは、支配的な命令種別ｉ＿ｔｙｐｅを示し、整数系命令が支配的なときにはＩｎｔ、浮動小数点系命令が支配的なときにはＦＰ、どちらの命令が支配的でもないときにはａｌｌとなる。なお、動作率を考慮しないときには、動作率は取得しなくてもよい。
【０２５２】
入力データは、たとえば、ＨＤＤ２３などの記憶部に記憶される。
その後、プロセッサ２１は、入力データを、たとえば、ＨＤＤ２３から取得し（読み出し）、電力ライブラリを作成する。
【０２５３】
（電力ライブラリ作成処理）
以下、第６の実施の形態の電力見積方法における電力ライブラリ作成処理の一例を説明する。
【０２５４】
図４３は、電力ライブラリ作成処理の一例の流れを説明するフローチャートである。なお、図４３では、動作率を考慮するときの電力ライブラリ作成処理の一例を示しているが、動作率を考慮しないときには、ステップＳ１２６，Ｓ１２９，Ｓ１３０の処理は行われない。各処理ステップの順序は一例であり、適宜入れ替えてもよい。
【０２５５】
プロセッサ２１は、以下のステップＳ１２０〜Ｓ１３０の処理を、分類ｐ＿ｔｙｐｅ（たとえば、ＦＦ、クロックラインに関係するセル、メモリ、その他）及び命令種別ｉ＿ｔｙｐｅ（前述したＩｎｔ、ＦＰ、ａｌｌ）ごとに行う。そのために、係数ｐp＿type,i＿typeや定数ｐp＿type,const,i＿typeは、命令種別ｉ＿ｔｙｐｅごとに求められる。
【０２５６】
ステップＳ１２０，Ｓ１２１，Ｓ１２２，Ｓ１２３の処理は、前述の図３９のステップＳ１００〜Ｓ１０３の処理とほぼ同じであり、分類ｐ＿ｔｙｐｅ及び命令種別ｉ＿ｔｙｐｅについての電力予測式は定数（電力値Ｐp＿typeの平均値）でモデル化される。ただ、本実施の形態における電力ライブラリ作成処理では命令種別ｉ＿ｔｙｐｅに応じた係数ｐp＿type,Intとｐp＿type,FPの使い分けは行われないため、ステップＳ１２３の処理では、係数ｐp＿type,i＿typeが用いられ、ｐp＿type,i＿type＝０と設定される。
【０２５７】
一方、ステップＳ１２１の処理で、ＣＶ≧ＣＶrefであると判定されたときには、回帰分析が行われる（ステップＳ１２４）。ステップＳ１２４の処理において処理対象となるサンプルは、命令種別ｉ＿ｔｙｐｅがＩｎｔまたはＦＰのときには、図４２に示したサンプル１〜サンプルｎのうち、プログラムタイプｐｒｏｇ1〜ｐｒｏｇnが、ＩｎｔまたはＦＰとなるものである。命令種別ｉ＿ｔｙｐｅがａｌｌのときには、図４２に示した全サンプル１〜サンプルｎが、処理対象となる。
【０２５８】
ステップＳ１２４の処理では、ξα＝αp＿typeＭＩＰＳとして、以下の２つの式に対して回帰分析が行われる。
【０２５９】
【数２０】
2015111326.tif 000022
【０２６０】
【数２１】
2015111326.tif 000023
【０２６１】
式（２０）に対する回帰分析から係数ｐp＿type、定数ｐp＿type,constと決定係数Ｒ2が得られ、式（２１）に対する回帰分析から係数ｐp＿type,α、定数ｐp＿type,constαと決定係数Ｒα2が得られる。
【０２６２】
その後に行われるステップＳ１２５，Ｓ１２６，Ｓ１２７，Ｓ１２９の処理は、図３９に示したステップＳ１０５〜Ｓ１０７，Ｓ１１１の処理と同じである。ただし、ステップＳ１２７，Ｓ１２９の処理後は、命令種別で電力予測式を使い分けるか否かの判定は行われず、ステップＳ１２８，Ｓ１３０の処理が行われる。
【０２６３】
ステップＳ１２８の処理では、ｐp＿type,i＿type＝ｐp＿type、ｐp＿type,const,i＿type＝ｐp＿type,constに設定される。ステップＳ１３０の処理では、ｐp＿type,i＿type＝ｐp＿type,α、ｐp＿type,const,i＿type＝ｐp＿type,constαに設定される。
【０２６４】
以上の処理が各分類ｐ＿ｔｙｐｅ、命令種別ｉ＿ｔｙｐｅについて行われたのち、前述の式（７）に基づき、定数ｐconstが算出される（ステップＳ１３１）。ただし、命令種別ｉ＿ｔｙｐｅごとの電力予測式が算出されるため、定数ｐconst，ｐp＿type,constの代わりに定数ｐconst,i＿type，ｐp＿type,const,i＿typeが用いられる。
【０２６５】
以上のように求められたモデル制御変数ｅｓｔ＿ｍp＿type及び、係数ｐp＿type，i＿type、定数ｐconst,i＿typeは、電力ライブラリとして、たとえば、ＨＤＤ２３に記憶される。
【０２６６】
また、上記のような電力ライブラリ作成処理を、図４〜図６に示したような処理と組み合わせることもできる。これにより、ＭＩＰＳ値の他、他のパラメータを用いたときも、プロセッサの消費電力を考慮しつつ、パラメータ数を削除した、または平均電力を用いた簡素な電力モデルを作成できる。
【０２６７】
（電力見積処理）
第６の実施の形態における電力見積処理は、第４または第５の実施の形態における電力見積処理とほぼ同様であるが、入力データとして、電力見積対象の予測ＭＩＰＳ値と、予測動作率（動作率を考慮する場合）の他に、支配的な命令種別が指定される。たとえば、整数系命令が支配的なときには、電力ライブラリのうち、命令種別ｉ＿ｔｙｐｅをＩｎｔとしたときの係数ｐp＿type,i＿typeや、定数ｐconst,i＿typeが用いられ電力見積が行われる。たとえば、浮動小数点系命令が支配的なときには、電力ライブラリのうち、命令種別ｉ＿ｔｙｐｅをＦＰとしたときの係数ｐp＿type,i＿typeや、定数ｐconst,i＿typeが用いられ電力見積が行われる。たとえば、整数系命令及び浮動小数点系命令のいずれも支配的ではないときには、電力ライブラリのうち、命令種別ｉ＿ｔｙｐｅをａｌｌとしたときの係数ｐp＿type,i＿typeや、定数ｐconst,i＿typeが用いられ、電力見積が行われる。
【０２６８】
以上のような第６の実施の形態の電力見積方法によれば、命令種別ごとのＭＩＰＳ値が得られないときも、第４または第５の実施の形態の電力見積方法と同様の効果が得られる。
【０２６９】
なお、以上説明してきた第４乃至第６の実施の形態の電力見積方法では、パラメータとしてＭＩＰＳ値や動作率を用いたが、他のパラメータを追加してもよい。
たとえば、キャッシュメモリを有するプロセッサでは、キャッシュアクセスによりＲＡＭアクセスが発生する際には、命令実行による電力消費に加えてＲＡＭアクセスによる電力消費が発生する。そのため、キャッシュアクセスの伴う命令実行と、伴わない命令実行を同じように扱って電力を見積もると、誤差の原因となる。
【０２７０】
また、キャッシュミスにより、たとえば、データハザード（おもに、リードミス時）やバッファフル（おもに、ライトスルーモードでのライト時）が発生するが、これらの現象は、ＣＰＵのＭＩＰＳ値の低下として観測される。そのためにキャッシュミスを考慮しないと誤差の原因となる。
【０２７１】
そのため、パラメータとし、キャッシュアクセス情報またはキャッシュミス情報を追加することが望ましい。キャッシュアクセス情報は、たとえば、単位時間あたりの命令キャッシュアクセス回数、データキャッシュアクセス回数である。キャッシュミス情報は、たとえば、単位時間あたりの命令キャッシュミス回数、データキャッシュミス回数である。
【０２７２】
パラメータとし、キャッシュアクセス情報またはキャッシュミス情報を追加しての電力見積についても、図３に示したフローで同様に行うことができる。キャッシュアクセス情報またはキャッシュミス情報は、たとえば、ハードウェアの性能カウンタなどを用いてサンプルを計測することで取得できる。電力値については、性能カウンタによる計測と同時に計測してもよいが、性能カウンタの電力を含めたくない場合には別途測定すればよい。
【０２７３】
また、追加するパラメータとして、単位時間あたりのシステムコール回数を用いてもよい。ＯＳ上で動作するアプリケーションの１つであるシステムコールについても、ＣＰＵのＭＩＰＳ値の低下として観測される。また、システムコールの種類によっても動作は異なるため、システムコールの種類を考慮しないと、誤差の原因となる。
【０２７４】
そのため、パラメータとし、システムコール情報を追加することが望ましい。システムコール情報は、たとえば、単位時間あたりの、リード系システムコール回数、ライト系システムコール回数、または、その他のシステムコール回数である。
【０２７５】
パラメータとし、システムコール情報を追加しての電力見積についても、図３に示したフローで同様に行うことができる。システムコール情報は、たとえば、プログラムのシステムコールの履歴を、Ｌｉｎｕｘ（登録商標）のｓｔｒａｃｅコマンドなどで取得するとともに、プログラムの走行時間から、システムコールの種類ごとの単位時間当たりのシステムコール回数を計測することで取得できる。
【０２７６】
なお、オーバヘッドが大きいので、プログラムのシステムコールの履歴を取得する処理と、プログラムの走行時間を計測する処理は別途行い、電力値については、プログラムの走行時間を計測する処理の際に計測することが望ましい。
【０２７７】
なお、命令トレースベースの電力予測のＡＰＩ部分（システムコールまたはライブラリ呼び出し）についても同様の方法で取り扱うことが可能である。
以上、実施の形態に基づき、本発明の電力見積方法、電力見積装置及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【０２７８】
１０  電力見積装置
１１  記憶部
１２  プロセッサ
【図１】
2015111326.tif 000024
【図２】
2015111326.tif 000025
【図３】
2015111326.tif 000026
【図４】
2015111326.tif 000027
【図５】
2015111326.tif 000028
【図６】
2015111326.tif 000029
【図７】
2015111326.tif 000030
【図８】
2015111326.tif 000031
【図９】
2015111326.tif 000032
【図１０】
2015111326.tif 000033
【図１１】
2015111326.tif 000034
【図１２】
2015111326.tif 000035
【図１３】
2015111326.tif 000036
【図１４】
2015111326.tif 000037
【図１５】
2015111326.tif 000038
【図１６】
2015111326.tif 000039
【図１７】
2015111326.tif 000040
【図１８】
2015111326.tif 000041
【図１９】
2015111326.tif 000042
【図２０】
2015111326.tif 000043
【図２１】
2015111326.tif 000044
【図２２】
2015111326.tif 000045
【図２３】
2015111326.tif 000046
【図２４】
2015111326.tif 000047
【図２５】
2015111326.tif 000048
【図２６】
2015111326.tif 000049
【図２７】
2015111326.tif 000050
【図２８】
2015111326.tif 000051
【図２９】
2015111326.tif 000052
【図３０】
2015111326.tif 000053
【図３１】
2015111326.tif 000054
【図３２】
2015111326.tif 000055
【図３３】
2015111326.tif 000056
【図３４】
2015111326.tif 000057
【図３５】
2015111326.tif 000058
【図３６】
2015111326.tif 000059
【図３７】
2015111326.tif 000060
【図３８】
2015111326.tif 000061
【図３９】
2015111326.tif 000062
【図４０】
2015111326.tif 000063
【図４１】
2015111326.tif 000064
【図４２】
2015111326.tif 000065
【図４３】
2015111326.tif 000066