以下に添付図面を参照して、本発明にかかる電力見積支援プログラム、電力見積支援装置および電力見積支援方法の実施の形態を詳細に説明する。
(電力見積支援方法の一実施例)
図1は、実施の形態にかかる電力見積支援方法の一実施例を示す説明図である。図1において、電力見積支援装置101は、回路の消費電力の見積もりを支援するコンピュータである。消費電力の見積対象となる回路は、例えば、LSI(Large Scale Integrated circuit)などの半導体集積回路である。
ここで、回路の消費電力を見積もる際のプリミティブな電力モデルとなるのは、例えば、ゲートレベルのセルをモデル化したものとなる。RTLの設計データは論理合成することによりゲートレベルの設計データに落とし込むことができる。このため、RTLの設計データから回路の消費電力を見積もることは比較的容易に行うことができる。
これに対して、RTLよりも抽象度が高いESLの設計データでは、例えば、機能ブロック間や機能ブロック/メモリ間のデータの流れなどが記述されている程度であり、ゲートとのリレーションをとることが難しい。また、ESLの設計データからRTLの設計データに落とし込むことが難しい場合がある。
そこで、本実施の形態では、電力見積支援装置101は、回路内のバスを介して部分回路に入出力されるデータ量(バス流量)と部分回路のトグルレートに相関があると仮定し、部分回路へのバス流量からトグルレートを推定するモデル式を作成する。これにより、部分回路へのバス流量程度の情報しか得られないESLでの電力見積を可能にする。以下、電力見積支援装置101の電力見積支援処理の一実施例について説明する。
(1)電力見積支援装置101は、ある回路の消費電力を見積もる電力見積シミュレーションの計測結果を取得する。ここで、計測結果は、例えば、回路内の部分回路について、シミュレーション中に所定の期間単位で計測されたバス流量とトグルレートとを対応付けて表す情報である。
また、部分回路は、例えば、複数のセルと信号線を含む回路ブロックである。セルは、例えば、NOTゲート、ANDゲート、バッファ、INV(インバータ)、FF(フリップフロップ)などの回路素子である。具体的には、例えば、部分回路は、LSIなどの半導体集積回路を形成するための部分的な回路情報として利用されるIP(Intellectual Property)であり、機能ブロック単位で再利用可能な形でまとめた設計資産である。
また、バス流量は、単位時間当たりの回路内のバスを介して部分回路に入出力されるデータ量である。バス流量の単位は、例えば、[byte/sec]であってもよく、[bit/sec]であってもよい。また、回路内のバス幅が固定の場合は、サイクル数/secをバス流量の単位として用いることにしてもよい。また、シミュレーション中のある期間のデータ量を取得する場合で期間が固定であれば、この期間を単位時間とみなして単にデータ量を流量と同一視する場合もある。この場合、バス流量の単位は、[byte]であっても[bit]であってもサイクル数であってもよい。なお、以下の説明では、バス流量を単に「流量」と表記する場合がある。
また、トグルレートは、部分回路における単位時間当たりの信号の変化回数を表すものである。具体的には、例えば、トグルレートは、部分回路内の各セルのトグルレートの平均値(平均トグルレート)、すなわち、各セルにおける単位時間当たりの信号の変化回数の平均値を表すものであってもよい。
図1の例では、回路内の部分回路Xについて、シミュレーション中の期間(例えば、期間T1)ごとに計測された、バス流量(例えば、バス流量x1)とトグルレート(例えば、トグルレートy1)とを対応付けて表す計測結果110が取得されている。
(2)電力見積支援装置101は、取得した計測結果に基づいて、部分回路のバス流量から部分回路のトグルレートを求めるトグルレート推定関数を作成する。具体的には、例えば、電力見積支援装置101は、計測結果110に基づいて、バス流量を独立変数とし、トグルレートを従属変数として回帰分析を行うことにより、バス流量からトグルレートを求めるトグルレート推定関数を作成する。
ここで、セルの電力係数PCは、下記式(1)を用いて表現することができる。電力係数PCは、例えば、信号の1変化当たりに消費されるセルの電力を表すものである。ただし、Cは、セルの静電容量[pF]である。Vは、セルの電圧[V]である。
PC=(1/2)*C*V2 ・・・(1)
また、n個のセルを含む回路の電力は、例えば、下記式(2)を用いて表現することができる。ただし、PCmは、n個のセルのm番目のセルの電力係数PCである。TRmは、n個のセルのm番目のセルのトグルレートTR[toggle/ns]である。
また、セルの電力係数PCのばらつきが小さいと仮定すると、n個のセルを含む回路の電力は、例えば、下記式(3)を用いて表現することができる。
また、バス流量と平均トグルレートとの間に強い相関があると仮定すると、部分回路(IP)の平均トグルレートは、例えば、下記式(4)を用いて表現することができる。
すなわち、電力見積支援装置101は、計測結果110から特定される期間ごとのバス流量とトグルレート(平均トグルレート)とを上記式(4)に代入して回帰分析を行うことにより、部分回路Xのトグルレート推定関数を作成することができる。より具体的には、例えば、電力見積支援装置101は、最小二乗法により、上記式(4)の係数CoeffX,CoffCを求めることにより、部分回路Xのトグルレート推定関数を作成する。
(3)電力見積支援装置101は、作成したトグルレート推定関数を部分回路と関連付けて出力する。具体的には、例えば、電力見積支援装置101は、作成した部分回路Xのトグルレート推定関数を、部分回路Xの識別情報(例えば、部分回路XのIP名)と関連付けてライブラリ120に登録することにしてもよい。
このように、電力見積支援装置101によれば、部分回路へのバス流量とトグルレートに相関があると仮定して、バス流量から部分回路のトグルレートを推定するトグルレート推定関数(モデル式)を作成することができる。これにより、消費電力の見積対象となる回路内部の詳細は決まっていなくとも、既存IPと同一品種の部分回路(例えば、既存IPと同一の機能を実現する部分回路)のトグルレートをバス流量から推定することができる。
また、電力見積支援装置101によれば、例えば、部分回路へのバス流量から推定されるトグルレートを上記式(3)に代入することにより、部分回路の電力を求めることができ、ESLでの電力見積を行うことができるようになる。なお、部分回路の電力係数(セルの電力係数の平均値にセル数nを掛けた値、すなわち、セルの電力係数の合計値)としては、例えば、既存技術により得られる部分回路と同一品種の既存IPの電力係数を用いることができる。
また、電力見積支援装置101によれば、部分回路の識別情報(例えば、IP名)と関連付けてトグルレート推定関数をライブラリ120に登録することができる。これにより、バス流量から部分回路のトグルレートを推定するモデル式を電力ライブラリとして提供することができる。
(電力見積支援装置101のハードウェア構成例)
図2は、電力見積支援装置101のハードウェア構成例を示すブロック図である。図2において、電力見積支援装置101は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、I/F(Interface)208と、ディスプレイ209と、キーボード210と、マウス211とを有している。また、各構成部はバス200によってそれぞれ接続されている。
ここで、CPU201は、電力見積支援装置101の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
I/F208は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク212に接続され、ネットワーク212を介して他の装置に接続される。そして、I/F208は、ネットワーク212と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F208には、例えば、モデムやLANアダプタなどを採用することができる。
ディスプレイ209は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ209は、例えば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。なお、電力見積支援装置101は、上述した構成部のうち、例えば、光ディスクドライブ206、光ディスク207、ディスプレイ209、キーボード210およびマウス211を有さないことにしてもよい。
(計測結果データの具体例)
つぎに、ある部分回路IPを含む回路の消費電力を見積もる電力見積シミュレーションの計測結果データの具体例について説明する。
図3Aおよび図3Bは、計測結果データの具体例を示す説明図である。図3Aおよび図3Bにおいて、計測結果データ300は、回路内の部分回路IPについて、シミュレーション中に所定の期間(Interval)単位で計測された、流量と実行率と平均トグルレートと電力とを対応付けて表す計測結果300−1〜300−38を含む情報である。
ここで、流量は、シミュレーション中の所定の期間単位(例えば、1サイクル)に計測された回路内のバスを介して部分回路IPに入出力されたデータ量である。実行率は、所定の期間において部分回路IPが、例えば、回路内のプロセッサから要求された処理を実行可能となってから処理の実行が完了するまでの状態である期間の割合である。平均トグルレートは、部分回路IP内の各セルにおける単位時間当たりの信号の変化回数の平均値である。電力は、所定の期間に部分回路IPで消費される電力の見積結果である。
なお、計測結果データ300は、例えば、図1に示した計測結果110に対応する。具体的には、計測結果データ300の流量は、計測結果110のバス流量に対応し、計測結果データ300の平均トグルレートは、計測結果110のトグルレートに対応している。
(電力見積支援装置101の機能的構成例)
図4は、電力見積支援装置101の機能的構成例を示すブロック図である。図4において、電力見積支援装置101は、取得部401と、作成部402と、算出部403と、出力部404と、を含む。取得部401〜出力部404は制御部となる機能であり、具体的には、例えば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F208により、その機能を実現する。各機能部の処理結果は、例えば、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶される。
取得部401は、部分回路IPを含む回路の消費電力を見積もるシミュレーションの計測結果データを取得する機能を有する。具体的には、例えば、取得部401は、図2に示したキーボード210やマウス211を用いたユーザの操作入力により、入力された計測結果データ300(図3参照)をRAM203等の記憶装置から読み出すことにしてもよい。
また、取得部401は、例えば、回路の消費電力を見積もる電力見積シミュレーションを行うことにより、計測結果データ300を取得することにしてもよい。なお、電力見積支援装置101は、例えば、部分回路IPを含む回路のゲートレベルの設計データ(例えば、ネットリスト)に基づいて、電力見積シミュレーションを実行することができる。
作成部402は、取得された計測結果データに基づいて、部分回路IPの流量を独立変数とし、部分回路IPの平均トグルレートを従属変数として回帰分析を行うことにより、流量から平均トグルレートを求めるトグルレート推定関数を作成する機能を有する。
具体的には、例えば、まず、作成部402は、上記式(4)を回帰式に設定する。つぎに、作成部402は、例えば、計測結果データ300に基づいて、最小二乗法により、独立変数の測定値と、従属変数の測定値および回帰式を用いて求めた独立変数の推定値との差の2乗平均が最小になるように、係数CoeffX,CoffCを求める。これにより、流量から平均トグルレートを求めるトグルレート推定関数を作成することができる。
また、作成部402は、計測結果データに基づいて、部分回路IPの流量と実行率とを独立変数とし、部分回路IPの平均トグルレートを従属変数として重回帰分析を行うことにより、流量から平均トグルレートを求めるトグルレート推定関数を作成してもよい。実行率は、シミュレーション中の所定の期間において部分回路IPが、プロセッサから要求された処理を実行可能となってから処理の実行が完了するまでの状態(実行状態)である期間の割合である。
具体的には、例えば、まず、作成部402は、下記式(5)を回帰式に設定する。ただし、RunRaticは、部分回路IPの実行率である。また、CoeffYは、係数である。
つぎに、作成部402は、例えば、計測結果データ300に基づいて、最小二乗法により、独立変数の測定値と、従属変数の測定値および回帰式を用いて求めた独立変数の推定値との差の2乗平均が最小になるように、係数CoeffX,CoeffY,CoffCを求める。これにより、流量と実行率から平均トグルレートを求めるトグルレート推定関数を作成することができる。
より具体的には、例えば、作成部402は、計測結果データ300に基づいて、部分回路IPの流量と実行率を独立変数とし、部分回路IPの平均トグルレートを従属変数として重回帰分析を行うことにより、下記式(6)のトグルレート推定関数を作成することができる。
また、作成部402は、作成した部分回路IPのトグルレート推定関数と、信号の1変化当たりに消費される部分回路IPの電力値とを用いて、部分回路IPの電力(消費電力)を求める電力推定関数を作成する機能を有する。
例えば、トグルレート推定関数が、部分回路IPの流量のみをパラメータとする関数の場合は、作成部402は、流量から部分回路IPの電力を求める電力推定関数を作成する。また、トグルレート推定関数が、部分回路IPの流量と実行率とをパラメータとする関数の場合は、作成部402は、流量と実行率とから部分回路IPの電力を求める電力推定関数を作成する。
ここで、信号の1変化当たりに消費される部分回路IPの電力値は、部分回路IP内のセル数nとセルの電力係数PCの平均値とを掛け合わせた値、すなわち、部分回路IP内の全セルの電力係数の合計値である(ただし、セルの電力係数PCのばらつきが小さいと仮定する。)。以下説明のため、信号の1変化当たりに消費される部分回路IPの電力値を「電力値(n*PC)」と表記する場合がある。
なお、電力見積支援装置101は、例えば、既存の電力見積ツールを用いて、1トグルレート時の部分回路IPの電力を見積もることにより、部分回路IPの電力値(n*PC)を得ることができる。また、電力見積支援装置101は、例えば、計測結果データ300に基づいて、部分回路IPの電力の平均値を平均トグルレートの平均値で除算することにより、部分回路IPの電力値(n*PC)を求めることにしてもよい。
具体的には、例えば、作成部402は、作成した部分回路IPのトグルレート推定関数と部分回路IPの電力値(n*PC)とを上記式(3)に代入することにより、流量から部分回路IPの電力を求める電力推定関数を作成する。これにより、部分回路IPの流量から部分回路IPの電力を求める電力推定関数を作成することができる。
より具体的には、例えば、作成部402は、上記式(6)のトグルレート推定関数と部分回路IPの電力値(n*PC)とを上記式(3)に代入することにより、下記式(7)の電力推定関数を作成することができる。ただし、部分回路IPの電力値(n*PC)を「10.4」とする。
算出部403は、作成された部分回路IPの電力推定関数を用いて、電力見積対象となる回路内の部分回路IPの見積消費電力を算出する機能を有する。例えば、電力推定関数が、部分回路IPの流量のみをパラメータとする関数の場合を想定する。この場合、算出部403は、回路内のバスを介して部分回路IPに入出力されるデータ量(流量)を電力推定関数に代入することにより、部分回路IPの見積消費電力を算出する。
また、電力推定関数が、部分回路IPの流量と実行率とをパラメータとする関数の場合を想定する。この場合、算出部403は、所定期間における回路内のバスを介して部分回路IPに入出力されるデータ量と部分回路IPの実行率とを電力推定関数に代入することにより、所定期間における部分回路IPの見積消費電力を算出する。
なお、電力推定関数に代入される回路内のバスを介して部分回路IPに入出力されるデータ量や部分回路IPの実行率は、例えば、ユーザの操作入力により、電力見積支援装置101に直接入力されることにしてもよい。また、電力見積支援装置101は、電力見積対象となるアーキテクチャシミュレーションモデルのシミュレーションを行うことにより、部分回路IPにバスを介して入出力されるデータ量や部分回路IPの実行率を取得することにしてもよい。
出力部404は、作成されたトグルレート推定関数を部分回路IPと関連付けて出力する機能を有する。具体的には、例えば、出力部404は、部分回路IPのトグルレート推定関数を、部分回路IPのIP名と関連付けてライブラリ120(図1参照)に登録することにしてもよい。なお、ライブラリ120は、例えば、RAM203、磁気ディスク205、光ディスク207などの記憶装置により実現される。
これにより、バス流量や実行率から部分回路IPのトグルレートを推定するモデル式(トグルレート推定関数)を電力ライブラリとして提供することができる。
また、出力部404は、作成された電力推定関数を部分回路IPと関連付けて出力することにしてもよい。具体的には、例えば、出力部404は、部分回路IPの電力推定関数を、部分回路IPのIP名と関連付けてライブラリ120に登録することにしてもよい。
これにより、バス流量や実行率から部分回路IPの電力を推定するモデル式(電力推定関数)を電力ライブラリとして提供することができる。
また、出力部404は、算出された部分回路IPの見積消費電力を出力することにしてもよい。出力部404の出力形式としては、例えば、RAM203、磁気ディスク205、光ディスク207などの記憶領域への記憶、ディスプレイ209への表示、不図示のプリンタへの印刷出力、I/F208による外部装置への送信などがある。
また、算出部403は、例えば、電力見積対象となる回路内の部分回路IPごとの見積消費電力を累積することにより、電力見積対象となる回路の見積消費電力を算出することにしてもよい。この場合、出力部404は、算出された電力見積対象となる回路の見積消費電力を出力することにしてもよい。
(平均トグルレートの推定例)
つぎに、作成部402によって作成されたトグルレート推定関数を用いて推定される部分回路IPの平均トグルレートの推定例について説明する。
図5は、平均トグルレートの計測結果と推定結果とを表す説明図である。図5において、グラフ501は、計測結果データ300の流量と実行率とを上記式(6)に代入することにより推定された部分回路IPの平均トグルレートの時系列変化を表している。また、グラフ502は、計測結果データ300の平均トグルレートの時系列変化を表している。
グラフ501,502によれば、部分回路IPの平均トグルレートの計測結果と推定結果とが同じような時系列変化をしていることが分かる。
(電力の推定例)
つぎに、作成部402によって作成された電力推定関数を用いて推定される部分回路IPの電力の推定例について説明する。
図6は、電力の計測結果と推定結果とを表す説明図である。図6において、グラフ601は、計測結果データ300の流量と実行率とを上記式(7)に代入することにより推定された部分回路IPの電力の時系列変化を表している。また、グラフ602は、計測結果データ300の電力の時系列変化を表している。
グラフ601,602によれば、部分回路IPの電力(消費電力)の計測結果と推定結果とが同じような時系列変化をしていることが分かる。
(電力見積支援装置101の電力見積支援処理手順)
つぎに、電力見積支援装置101の電力見積支援処理手順について説明する。
図7は、電力見積支援装置101の電力見積支援処理手順の一例を示すフローチャートである。図7のフローチャートにおいて、まず、電力見積支援装置101は、部分回路IPを含む回路の消費電力を見積もるシミュレーションの計測結果データを取得したか否かを判断する(ステップS701)。計測結果データは、例えば、図3に示した計測結果データ300である。
ここで、電力見積支援装置101は、計測結果データを取得するのを待つ(ステップS701:No)。そして、電力見積支援装置101は、計測結果データを取得した場合(ステップS701:Yes)、部分回路IPの平均トグルレートを表す従属変数を独立変数で計算する回帰式を設定する(ステップS702)。
回帰式は、例えば、上記式(4)や上記式(5)などである。回帰式は、例えば、ROM202等の記憶装置に記憶されている。また、設定される回帰式は予め決められていてもよく、ステップS702において、電力見積支援装置101が、ユーザの操作入力により、設定される回帰式の選択を受け付けることにしてもよい。
つぎに、電力見積支援装置101は、取得した計測結果データに基づいて、最小二乗法により、設定した回帰式に含まれる係数の値を算出する(ステップS703)。そして、電力見積支援装置101は、算出した係数の値を回帰式に代入することにより、部分回路IPのトグルレート推定関数を作成する(ステップS704)。
つぎに、電力見積支援装置101は、取得した計測結果データに基づいて、1トグルレート時の部分回路IPの電力値を算出する(ステップS705)。そして、電力見積支援装置101は、作成した部分回路IPのトグルレート推定関数と1トグルレート時の部分回路IPの電力値とを上記式(3)に代入することにより、部分回路IPの電力推定関数を作成する(ステップS706)。
つぎに、電力見積支援装置101は、作成した部分回路IPのトグルレート推定関数と電力推定関数とを、部分回路IPのIP名と関連付けてライブラリ120に登録して(ステップS707)、本フローチャートによる一連の処理を終了する。
以上説明したように、実施の形態にかかる電力見積支援装置101によれば、部分回路IPへのバス流量とトグルレートに相関があると仮定して、バス流量から部分回路IPのトグルレートを推定するトグルレート推定関数を作成することができる。具体的には、例えば、電力見積支援装置101によれば、部分回路IPを含む回路の電力見積シミュレーションの計測結果データに基づいて、上記式(4)を用いた回帰分析を行うことにより、トグルレート推定関数を作成することができる。
また、電力見積支援装置101によれば、部分回路IPへのバス流量および実行率とトグルレートとに相関があると仮定して、バス流量および実行率から部分回路IPのトグルレートを推定するトグルレート推定関数を作成することができる。具体的には、例えば、電力見積支援装置101によれば、部分回路IPを含む回路の電力見積シミュレーションの計測結果データに基づいて、上記式(5)を用いた回帰分析を行うことにより、トグルレート推定関数を作成することができる。
これにより、消費電力の見積対象となる回路内部の詳細は決まっていなくとも、既存IPと同一品種の部分回路IPのトグルレートを、バス流量や実行率から推定することができる。
また、電力見積支援装置101によれば、部分回路IPのトグルレート推定関数と、1平均トグルレート当たりの部分回路IPの電力値とを用いて、部分回路IPの電力を推定する電力推定関数を作成することができる。これにより、消費電力の見積対象となる回路内部の詳細は決まっていなくとも、既存IPと同一品種の部分回路IPの電力を、バス流量や実行率から推定することができる。
また、電力見積支援装置101によれば、部分回路IPの識別情報(例えば、IP名)と関連付けてトグルレート推定関数をライブラリ120に登録することができる。これにより、バス流量や実行率から部分回路IPのトグルレートを推定するモデル式を電力ライブラリとして提供することができる。また、ステップ707を利用時に行うとし、ステップ707の計算に必要なデータをライブラリに記載するとしてもよい。このようにすると1トグル当たりの電力値を利用時に補正をかけたのち、ステップ707を実行して電力推定関数を利用することが可能になる。このようにすることで電力ライブラリ作成時のテクノロジーライブラリと電力見積時のテクノロジーライブラリの相違を考慮した電力見積が可能となる。
また、電力見積支援装置101によれば、部分回路IPの識別情報(例えば、IP名)と関連付けて電力推定関数をライブラリ120に登録することができる。これにより、バス流量や実行率から部分回路IPの電力を推定するモデル式を電力ライブラリとして提供することができる。
なお、上述した説明では、部分回路IPの実行状態が一つの場合について説明したが、これに限らない。例えば、部分回路IPの実行状態が複数存在する場合、電力見積支援装置101は、各々の実行状態について所定の期間単位の実行率を取得し、各々の実行率を独立変数とする回帰分析を行うことにより、トグルレート推定関数を作成することにしてもよい。また、実行状態ごとのバス流量を独立変数にするとしてもよい。
(実施例)
以下、実施例について説明する。まず、電力要素の分類について説明する。本実施例では、FFクロック部、クロックツリー部、非クロックツリー部およびRAM/ROM部の4つの属性(電力要素)で回路を分割して電力見積を行う場合を想定する。
FFクロック部は、クロックツリーに含まれるFF(FFのクロック端子)の集合である。クロックツリー部は、クロックソースから辿ることができる出力端子を有する非FFのセルの集合である。なお、非FFとは、FFではないセルである。非クロックツリー部は、クロックツリーに含まれないセルの集合である。RAM/ROM部は、クロックツリーに接続されたRAMまたはROMである。
FFクロック部とクロックツリー部は、ユニットセルを対象としたクロックツリー関連の電力消費傾向に関係する電力要素である。FFは、クロックツリーの葉部分にクロックツリーの非FF要素の15倍程度の個数があり、CGIC(クロックゲーティングインテグレイティッドセル)によりよく止まるものもあれば、CGICがなくよく動くものもあり、設計によっても変化する可能性がある。
一方、クロックツリーは、ツリー構造になっており、葉の近くにCGICがあることが多い。また、幹の部分は、FF数よりもレイアウトマターで複雑さが決まる。これらのことから、FFクロック部とクロックツリー部は電力消費傾向が違う可能性がある。そこで、本実施例では、FFクロック部とクロックツリー部とを分けて扱う。
非クロックツリー部は、第1の非クロックツリーと、第2の非クロックツリーと、第3の非クロックツリーとに分けられる。第1の非クロックツリーは、クロックツリーに接続されたFFの集合である。第2の非クロックツリーは、クロックツリーに非接続のFFの集合である。第3の非クロックツリーは、クロックツリーに非接続の非FFの集合である。本実施例では、これら第1、第2および第3の非クロックツリーを一つのグループ(非クロックツリー部)として扱う。
RAM/ROM部については、まず、ユニットセル1セルとRAM/ROM1マクロとを比較すると1個当たりの消費電力の差が大きい。また、RAMの内外でクロックを止めることにより節電を行う場合が多く、RAMの制御に失敗すると節電効果のロスが大きくなる。また、回路内のRAM/ROMの個数は1000個程度と推測でき、ユニットセル(例えば、260万個)と比較すると少数である。これらのことから、本実施例では、RAM/ROMを1つのグループ(RAM/ROM部)として扱う。
(電力係数の抽象化)
つぎに、FFクロック部、クロックツリー部、非クロックツリー部およびRAM/ROM部の4つの属性(電力要素)で回路を分割した場合の電力係数の抽象化について説明する。なお、以下の説明では、「部分回路IP」を単に「IP」と表記する場合がある。また、プロセッサから要求された処理を実行可能となってから処理の実行が完了するまでのIPの状態を「Run状態」と表記し、Run状態以外のIPの状態を「Idle状態」と表記する場合がある。
図8は、クロックツリー部の一例を示す説明図である。図8において、ブロック800内部のクロックツリーの一例が示されている。図8の例では、部分クロックツリーA、部分クロックツリーB、部分クロックツリーでグルーピングされたグルーピング部の3個の部分回路がある。なお、部分クロックツリーは、クロックツリーのうちトグルレートが同じであることが保証されているセル群を含む部分である。
グルーピングして見積もった結果はクロックツリーについては3個に分けたことに等しい。さらに、部分クロックツリーAは、常時ONのため、固定消費分(グラフ化すれば切片に含まれる要因)である。部分クロックツリーBは、手置きCGICで制御されているものの、手置きCGICがブロック全体の制御をしていると考えると、IPがRun/Idleのどちらの状態かで制御する程度で、大きな粒度での制御であると考えられる。
したがって、Run状態のみをみた時には、部分クロックツリーBは、固定消費分になる。グルーピング部は、自動挿入CGICによる制御で、この部分は回路の動作に依存する部分である。しかし、グルーピングしても電力見積上、問題があまりない。したがって、Idle状態は別途見積って、Run状態の電力モデルを作るとすると、部分クロックツリーA、部分クロックツリーB、グルーピング部を分ける必要はないという考え方もできる。
同様に、FFについては、まず、部分クロックツリーAにつながるFFは、クロックツリーAのトグルレートと同じである。また、部分クロックツリーBにつながるFFは、クロックツリーBのトグルレートと同じである。また、自動置きCGICにより制御されるFFは、グルーピング部の平均トグルレートを用いればよいといえる。
したがって、クロックツリー部分と同様のことがいえて、部分クロックツリーAにつながるFFのクロック成分は固定消費的であり、部分クロックツリーBにつながるクロック部分はRun状態において固定消費的であると考えられる。また、グルーピングされた部分は、回路の動作に依存する部分であると考えられる。このため、グルーピングによってある程度の精度が出ていれば、クロックツリー、FFクロックに対して、ブロックに対して一つの電力係数にしてもよいと考えられる。
すなわち、自動置きCGICがドライブする部分は、バス流量と相関がある可能性がある部分であり、手置きCGIC部分は通例CPU(プロセッサ)からの設定値によりON/OFFが決まる部分であり、IPの状態値に依存すると考えられる部分である。CGICがない部分は固定的に電力を消費する固定値部分(切片部分)に相当する。つぎに、非クロックツリー部について説明する。
図9は、非クロックツリー部の一例を示す説明図である。図9において、非クロックツリー部900は、入力データの有無によって回路が動けるかどうかが決まる。非クロックツリー部900では、ループ回数などによりデータ取得間隔が伸び縮みするが、電力または性能が最も厳しくなる条件での測定を行うことが多い。
このような厳しい条件下ではスループット、レイテンシともに一定値に近づくと仮定すると、バス流量と計算量は比例関係にあり、計算量とトグルレートは比例関係にあることから、バス流量とトグルレートは比例関係になると推測できる。
なお、IPの電力値は、ループ回数などにより変化することがある。このため、例えば、動画処理のIPであれば、IPの電力値に対して「N番目の標準画像の実測値をベースにした電力値である」といった記述が付記されることにしてもよい。
また、RAM/ROMは、1個のインスタンスに含まれる個数が少なく、アクセス回数が回路部分の動作に依存する回路である。このため、回路に記述されたようにアクセスすることが期待できることを考慮すると、RAM/ROM成分として一まとめにしてもある程度の見積精度がでると期待できる。
(IPの状態を考慮した電力モデリング)
ここで、IPの状態(Run状態、Idle状態)を考慮した電力モデリングについて説明する。以下、1つのブロックを題材に説明する。このブロックを「ブロックA」と仮称する。なお、ここでは、エミュレーション電力見積のシミュレーション期間中のIPへのstart assert〜IPからのdone assertまでの期間をRun状態とし、それ以外の期間をIdle状態とする。
図10は、ブロックAの動作状況を示すガントチャートである。図10において、ガントチャート1000は、シミュレーション時刻の経過とともに変化するブロックAの動作状況(Run状態、Idle状態)を示している。なお、横軸は、シミュレーション時刻である。
図11は、ブロックAの状態データを示す説明図である。図11において、状態データ1100は、図10に示したガントチャート1000に対応するブロックAの詳細な動作状況を示している。状態データ1100によれば、ブロックAの動作状況は、ほぼ281[ms]以降はずっとRun状態であるといえる。
図12および図13は、エミュレーション電力見積のシミュレーション結果を示す説明図である。図12において、グラフ1200は、シミュレーション時刻の経過とともに変化するクロックツリー部、FFクロック部およびRAM/ROM部の電力を示している。また、図13において、グラフ1300は、シミュレーション時刻の経過とともに変化する非クロックツリー部のFF入力端子のトグル回数を示している。
例えば、ガントチャート1000によれば、281[ms]〜2.5[s]までは、ほぼ100[%]Run状態となっている。これに対して、グラフ1200によれば、クロックツリー部、FFクロック部およびRAM/ROM部の電力の著しい増減が、無視できないほど長い時間で起きている。また、グラフ1300によれば、非クロックツリー部のトグル回数の著しい増減が、無視できないほど長い時間で起きている。すなわち、Run/Idle状態のみを考慮した電力モデリングでは、高精度な電力見積は難しい。
(流量を考慮した電力モデリング)
つぎに、流量(バス流量)を考慮した電力モデリングについて説明する。IPの流量とIPの計算量との間は比例関係にあり、IPの計算量とIPの電力との間は比例関係にあると仮定すると、IPの流量とトグルレートとの間は比例関係にあると推測できる。以下、図14〜図21を用いて、流量を考慮した電力モデリングの実験結果について説明する。
図14は、非クロックツリーのトグルレートと流量との相関を示す説明図(その1)である。図14において、グラフ1400は、FF入力データ端子のトグル回数と流量との時系列変化を表している。
図15は、非クロックツリーのトグルレートと流量との相関を示す説明図(その2)である。図15において、図14に示したグラフ1400の各サンプルのFF入力データ端子のトグル回数と流量の散布図1500が示されている。散布図1500の決定係数は「0.98」であり、十分な相関が観測されているといえる。
なお、決定係数とは、独立変数(説明変数)が従属変数(被説明変数)のどれくらいを説明できるかを表す指標である。決定係数は、例えば、標本値から求めた回帰方程式のあてはまりのよさの尺度として利用される。決定係数は、例えば、xの変数の変化とyの変数の変化とがどれくらい似通っているかを表す(x、yは、例えば、流量)。
図16は、RAM/ROMの電力と流量との相関を示す説明図(その1)である。図16において、グラフ1600は、RAM/ROMの電力と流量との時系列変化を表している。
図17は、RAM/ROMの電力と流量との相関を示す説明図(その2)である。図17において、図16に示したグラフ1600の各サンプルの電力と流量の散布図1700が示されている。散布図1700の決定係数は「0.91」であり、十分な相関が観測されているといえる。
図18は、FFクロックの電力と流量との相関を示す説明図(その1)である。図18において、グラフ1800は、FFのクロック端子成分の電力と流量との時系列変化を表している。
図19は、FFクロックの電力と流量との相関を示す説明図(その2)である。図19において、図18に示したグラフ1800の各サンプルのFFクロック端子成分の電力と流量の散布図1900が示されている。散布図1900の決定係数は「0.18」であり、相関が観測されていないといえる。
図20は、クロックツリーの電力と流量との相関を示す説明図(その1)である。図20において、グラフ2000は、クロックツリーの電力と流量との時系列変化を表している。
図21は、クロックツリーの電力と流量との相関を示す説明図(その2)である。図21において、図20に示したグラフ2000の各サンプルのクロックツリーの電力と流量の散布図2100が示されている。散布図2100の決定係数は「0.51」であり、十分な相関は観測されていないといえる。
このように、非クロックツリー部とRAM/ROM部については流量と相関があるといえるが、クロックツリー部とFFクロック部については何らかの改善策が必要であるといえる。すなわち、流量のみを考慮した電力モデリングでは、高精度な電力見積は難しい。
(流量およびIPの状態を考慮した電力モデリング)
つぎに、流量およびIPの状態を考慮した電力モデリングについて説明する。流量を考慮した電力モデリングによれば、クロック系と非クロック系とRAMとで傾向が分かれている。RAMはクロック系であるが、チップイネーブル信号により、RAMのクロックゲーティングが大きな粒度で行えるため、相関が強い可能性がある。
クロック系も自動挿入CGICの部分は相関があると想定することができる。RAM/ROMと非クロックツリーは、計算量と電力量の相関が強く、Idle状態もRun状態で計算量が極めて小さい時も同じような傾向を示すが、クロックツリー、FFクロックはIdle状態とRun状態で計算量が極めて小さい時であっても異なる傾向を示すことがある。
すなわち、クロックツリー、FFクロックにはIPの制御要因による電力消費分があり、この電力消費分は、流量からは測れないために電力があっていないと想定することができる。そこで、以下の説明では、図22〜図27を用いて、「Idle状態とRun状態をもち、Run状態には流量と相関がある」というモデル化を行った場合の実験結果について説明する。
図22は、FFクロックの電力と流量との相関を示す説明図(その3)である。図22において、グラフ2200は、RUN状態のみのFFクロック端子成分の電力値と流量の時系列変化を表している。なお、0[ms]〜300[ms]付近は、Idle状態のため対象外となっている。
図23は、FFクロックの電力と流量との相関を示す説明図(その4)である。図23において、図22に示したグラフ2200の各サンプルのFFクロック端子成分の電力値と流量の散布図2300が示されている。散布図2300の決定係数は「0.75」であり、図19に示した実験結果と比べて大幅な改善がみられる。
図24は、FFクロックの電力と流量との相関を示す説明図(その5)である。図24において、グラフ2400は、図23に示した例で回帰分析により得られた式を用いて、流量から推定した電力の予測値と実際の電力値(図24中、FFCLK)の時系列変化を表している。グラフ2400によれば、電力の予測値と実際の電力値とが合っていることがわかる。
図25は、クロックツリーの電力と流量との相関を示す説明図(その3)である。図25において、グラフ2500は、RUN状態のみのクロックツリーの電力値と流量の時系列変化を表している。なお、0[ms]〜300[ms]付近は、Idle状態のため対象外となっている。
図26は、クロックツリーの電力と流量との相関を示す説明図(その4)である。図26において、図25に示したグラフ2500の各サンプルのクロックツリーの電力値と流量の散布図2600が示されている。散布図2600の決定係数は「0.74」であり、図21に示した実験結果と比べて大幅な改善がみられる。
図27は、クロックツリーの電力と流量との相関を示す説明図(その5)である。図27において、グラフ2700は、図26に示した例で回帰分析により得られた式を用いて、流量から推定した電力の予測値と実際の電力値(図27中、クロックツリー)の時系列変化を表している。グラフ2700によれば、電力の予測値と実際の電力値とが合っていることがわかる。
このように、FFクロックとクロックツリーに関しては、Run状態を考慮することにより、決定係数が大幅に上がっており、電力見積の精度を改善することができることがわかる。
また、図24や図27に示すように、波形の形もよく似ている。これは回路構造に依存していると考えられる。例えば、図8に示した回路があったとすると、Idle状態では、手置きCGICが止まり、部分クロックツリーBが完全に止まっているものと考えられる。
Run状態では、手置きCGICがONになっていて、部分クロックツリーBの部分が常時動作しているようにみえるため、固定消費分が増大する。一方、自動置きCGICは、計算に必要な時にしかONにならない。したがって、計算量と何らかの依存関係があると考えられる。すなわち、IPの計算量とトグルレートとの間に比例関係が成り立つといえる。
なお、IPの状態をRun/Idleで分類して決定係数が上がった理由は、Run/Idleと強い相関性をもつ手挿入CGICがあったためだと推測できる。したがって、広範囲のクロックツリーを止めうるCGICと相関性が出るIPの状態を洗い出して定義し、その状態ごとに回帰分析を行うことが望ましい。また、図28に示すように、複数のメジャーなコンポーネントが存在する場合が考えられる。
図28は、マルチファンクションの一例を示す説明図である。図28において、例えば、サブブロックAとサブブロックBとの電力差が大きく、共通サブブロック部分の電力が小さければ、信号がサブブロックAを通るか、サブブロックBを通るかが重要になってくる。
この場合には、例えば、設定レジスタの値も状態としてもっておくことが望ましい。バスアクセス部分は共通のため、流量と非クロックツリー部分の電力も大きく異なることになる。FFクロック、クロック部分についても影響は出る。一方、サブブロックAとサブブロックBとの電力差が小さく、共通サブブロック部分の電力が大きく、マルチパス部分が小さければ対応する必要はない。
すなわち、電力モデリングにおいては、広範囲に影響を及ぼす手挿入CGIC(ただし、PowerProなどを使って同等の効果が得られることを期待する設計も含む)と相関があるパラメータは考慮することが望ましい。そして、手挿入CGICと相関があるパラメータを考慮することにより、回帰分析による電力モデル作成の安全度が高まると言える。
(流量と待ち時間を考慮した電力モデリング)
つぎに、流量と待ち時間を考慮した電力モデリングについて説明する。上述した流量を考慮した電力モデリングで説明した例題のクロックツリーの電力とFFクロックの電力をみると、計算量が減るはずのところで増えており、切片として表されるような固定量と流量と負の相関を持っているような変化をしている。
これは、何らかの無駄に電力を消費するような事象が起きていると考えられる。また、流量を考慮した電力モデリングの決定係数がある程度よい値であることを考えると、バスに起因した事象が起きていると推測できる。そこで、バスの利用権を欲しているのに待たされた時間はマイナス的な要因であると仮定して、バスの流量に加えて待ち時間を電力モデリングの要素に加えた場合について説明する。
待ち時間とは、バスの利用権を欲しているのに待たされた時間、すなわち、アービターにリクエストを投げてから、バスの利用が許可されるまでの累積時間である。実験では、待ち時間データがあるサンプルと電力があるサンプルとでは、データ取得条件が、前者は1[ms]程度でサンプリングしており、後者は6[ms]程度でサンプリングしており、開始時間にもずれがあることが分かった。
そこで、本実験では、待ち時間データのほうに合わせて、サンプリングポイントの時刻が含まれる電力値を後者のデータから取って1つのデータにまとめたものを実験用のデータ(以下、「サンプルデータ2」という)とする。また、待ち時間は、ポートごとに発生する。
以下、図29〜図32を用いて、サンプルデータ2で流量のみで重回帰分析した例について説明する。なお、サンプルデータ2では、リードポート2個、ライトポート1個のトランザクションの履歴がある。
図29は、サンプルデータ2でのクロックツリーの相関を示す説明図(その1)である。図29において、グラフ2900は、クロックツリーの電力に関する、本データセットにおける流量からの予測値と観測値との時系列変化を表している。
図30は、サンプルデータ2でのクロックツリーの相関を示す説明図(その2)である。図30において、クロックツリーの電力に関する、本データセットにおける流量からの予測値と観測値の散布図3000が示されている。散布図3000の決定係数は「0.47」であり、図21の決定係数「0.51」と同等であることがわかる。
図31は、サンプルデータ2でのクロックツリーの相関を示す説明図(その3)である。図31において、グラフ3100は、FFクロック端子成分の電力に関する、本データセットにおける流量からの予測値と観測値との時系列変化を表している。
図32は、サンプルデータ2でのクロックツリーの相関を示す説明図(その4)である。図32において、FFクロック端子成分の電力に関する、本データセットにおける流量からの予測値と観測値の散布図3200が示されている。散布図3200の決定係数は「0.15」であり、図19の決定係数「0.18」と同等であることがわかる。
これらのことから、時間粒度が違うデータセットにおいても同等の精度が得られており、ポート数が多くなった要因は考慮しなくてもよいことが分かる。したがって、サンプルデータ2は(流量およびIPの状態を考慮した電力モデリング)までで用いたデータと同程度の品質があるといえる。そこで、待ち時間を用いた回帰分析実験においてはサンプルデータ2を使うことにする。
(流量と待ち時間とを用いた回帰分析結果)
つぎに、図33〜図36を用いて、流量と待ち時間とを用いた回帰分析結果について説明する。
図33は、流量と待ち時間によるクロックツリー電力見積の相関を示す説明図(その1)である。図33において、グラフ3300は、流量と待ち時間によるクロックツリーの電力の予測値と観測値との時系列変化を表している。
図34は、流量と待ち時間によるクロックツリー電力見積の相関を示す説明図(その2)である。図34において、図33に示したグラフ3300の予測値と観測値の散布図3400が示されている。散布図3400の決定係数は「0.97」であり、十分な相関が観測されているといえる。
図35は、流量と待ち時間によるFFクロック電力見積の相関を示す説明図(その1)である。図35において、グラフ3500は、流量と待ち時間によるFFクロック端子成分の電力の予測値と観測値との時系列変化を表している。
図36は、流量と待ち時間によるFFクロック電力見積の相関を示す説明図(その2)である。図36において、図35に示したグラフ3500の予測値と観測値の散布図3600が示されている。散布図3600の決定係数は「0.89」であり、十分な相関が観測されているといえる。
このように、流量と待ち時間とを考慮することにより、状態を考慮しなくても決定係数的には十分な相関が見受けられる。しかし、図33に示したグラフ3300や図35に示したグラフ3500から分かるように振幅が大きく、誤差がみられる。
(流量と待ち時間と状態とを用いた回帰分析結果)
つぎに、図37〜図40を用いて、流量と待ち時間と状態とを用いた回帰分析結果について説明する。
図37は、Run状態における流量と待ち時間によるクロックツリー電力見積の相関を示す説明図(その1)である。図37において、グラフ3700は、Run状態のみに着目した流量と待ち時間によるクロックツリーの電力の予測値と観測値との時系列変化を表している。
図38は、Run状態における流量と待ち時間によるクロックツリー電力見積の相関を示す説明図(その2)である。図38において、図37に示したグラフ3700の予測値と観測値の散布図3800が示されている。散布図3800の決定係数は「0.76」であり、相関が観測されているといえる。また、図34に比べて決定係数が小さくなっているが、図33のグラフ3300と図37のグラフ3700によれば、振幅が小さく誤差が小さくなっていることがわかる。
図39は、Run状態における流量と待ち時間によるFFクロック電力見積の相関を示す説明図(その1)である。図39において、グラフ3900は、Run状態のみに着目した流量と待ち時間によるFFクロック端子成分の電力の予測値と観測値との時系列変化を表している。
図40は、Run状態における流量と待ち時間によるFFクロック電力見積の相関を示す説明図(その2)である。図40において、図39に示したグラフ3900の予測値と観測値の散布図4000が示されている。散布図4000の決定係数は「0.77」であり、相関が観測されているといえる。また、図36に比べて決定係数が小さくなっているが、図35のグラフ3500と図39のグラフ3900によれば、振幅が小さく誤差が小さいことがわかる。
このように、流量と待ち時間に合わせて状態を考慮することにより、見積誤差を抑えることができる。
(流量と状態とを用いた回帰分析結果)
つぎに、図41〜図44を用いて、Run状態における流量を用いた回帰分析結果についても、流量およびIPの状態を考慮した電力モデリングまでで用いたデータの代わりに使った分析結果を説明する。
図41は、Run状態における流量によるクロックツリー電力見積の相関を示す説明図(その1)である。図41において、グラフ4100は、Run状態のみに着目した流量によるクロックツリーの電力の予測値と観測値との時系列変化を表している。
図42は、Run状態における流量によるクロックツリー電力見積の相関を示す説明図(その2)である。図42において、図41に示したグラフ4100の予測値と観測値の散布図4200が示されている。散布図4200の決定係数は「0.74」であり、図38に示した例と同等に、相関が観測されているといえる。
図43は、Run状態における流量によるFFクロック電力見積の相関を示す説明図(その1)である。図43において、グラフ4300は、Run状態のみに着目した流量によるFFクロック端子成分の電力の予測値と観測値との時系列変化を表している。
図44は、Run状態における流量によるFFクロック電力見積の相関を示す説明図(その2)である。図44において、図43に示したグラフ4300の予測値と観測値の散布図4400が示されている。散布図4400の決定係数は「0.75」であり、図40に示した例と同等に、相関が観測されているといえる。
(電力見積支援装置101の記述例)
図45A、図45Bおよび図45Cは、電力見積支援装置101の記述例を示す説明図である。図45A、図45Bおよび図45Cに示す記述例4500によれば、電力見積に用いたトグルレート値とバス情報、IP状態履歴を使って、電力を見積もった区間の中に含まれる各状態の占有率を求めることができる。
また、記述例4500によれば、各状態の算出式*占有率の和で回帰分析を行って推定式を出力することができる。なお、カウンタは、IP状態数*パラメータ数個用意して、状態Aパラメータaのカウンタ値を出力する。更に、状態の期間/単位時間も合わせて出力する。
(見積対象ブロックNの一例)
つぎに、見積対象ブロックNの一例について説明する。ここでは、クロックツリー部と非クロックツリー部とRAM/ROM部との回路範囲に分類した見積対象ブロックN(部分回路IP)について説明する。
図46は、見積対象ブロックNの一例を示す説明図である。図46において、見積対象ブロックNが、クロックツリー部と非クロックツリー部とRAM/ROM部との回路範囲に分類されている。この場合、流量(Trans)と状態(State)が回帰分析で使用されるパラメータ(独立変数)とすると、見積対象ブロックNの電力を見積もるために観測すべき値は、見積対象ブロックNに対する流量(Trans)と状態(State)となる。
流量(Trans)と状態(State)のパラメータをそれぞれXNTrans,XNStateとすると、見積対象ブロックNの電力推定関数は、例えば、下記式(8)となる。なお、XNTrans,XNStateの単位は、回帰分析を行ったときと同じ単位である。
以上説明したように、電力見積支援装置101によれば、例えば、クロックツリー部、FFクロック部、非クロックツリー部、RAM/ROM部ごとの電力ライブラリを提供することができる。例えば、部分回路IPをクロックツリー部と非クロックツリー部とRAM/ROM部との回路範囲に分類した場合、電力見積支援装置101は、各々の回路範囲の計測結果データを取得して、各々の回路範囲のトグルレート推定関数を作成することができる。
また、電力見積支援装置101は、各々の回路範囲のトグルレート推定関数と各々の回路範囲の電力値(n*PC)を用いて、各々の回路範囲の電力推定関数を作成することができる。これにより、クロックツリー部、非クロックツリー部およびRAM/ROM部といったカテゴリー別の消費電力を見積もることができる。
なお、本実施の形態で説明した電力見積支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本電力見積支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本電力見積支援プログラムは、インターネット等のネットワークを介して配布してもよい。
また、本実施の形態で説明した電力見積支援装置101は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、例えば、上述した電力見積支援装置101の機能(取得部401〜出力部404)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、電力見積支援装置101を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
回路の消費電力を見積もるシミュレーションにより所定の期間単位に計測された前記回路内のバスを介して部分回路に入出力されるデータ量と前記部分回路における単位時間当たりの信号の変化回数とを対応付けて表す計測結果を記憶部から読み出し、
前記計測結果に基づいて、前記データ量を独立変数とし、前記変化回数を従属変数として回帰分析を行うことにより、前記データ量から前記変化回数を求めるトグルレート推定関数を作成する、
処理を実行させることを特徴とする電力見積支援プログラム。
(付記2)前記コンピュータに、
作成した前記トグルレート推定関数と、前記信号の1変化当たりに消費される前記部分回路の電力値とを用いて、前記データ量から前記部分回路の電力を求める電力推定関数を作成する処理を実行させることを特徴とする付記1に記載の電力見積支援プログラム。
(付記3)前記計測結果は、前記データ量と前記変化回数と対応付けて、前記所定の期間において前記部分回路が要求された処理を実行可能となってから前記処理の実行が完了するまでの状態である期間の割合を表し、
前記トグルレート推定関数を作成する処理は、
前記計測結果に基づいて、前記データ量と前記割合とを独立変数とし、前記変化回数を従属変数として重回帰分析を行うことにより、前記データ量と前記割合とから前記変化回数を求めるトグルレート推定関数を作成することを特徴とする付記2に記載の電力見積支援プログラム。
(付記4)前記電力推定関数を作成する処理は、
作成した前記トグルレート推定関数と、前記信号の1変化当たりに消費される前記部分回路の電力値とを用いて、前記データ量と前記割合とから前記部分回路の電力を求める電力推定関数を作成することを特徴とする付記2または3に記載の電力見積支援プログラム。
(付記5)前記コンピュータに、
作成した前記トグルレート推定関数を前記部分回路と関連付けて出力する処理を実行させることを特徴とする付記2〜4のいずれか一つに記載の電力見積支援プログラム。
(付記6)前記コンピュータに、
作成した前記電力推定関数を前記部分回路と関連付けて出力する処理を実行させることを特徴とする付記2〜5のいずれか一つに記載の電力見積支援プログラム。
(付記7)コンピュータに、
回路の消費電力を見積もるシミュレーションにより所定の期間単位に計測された前記回路内のバスを介して部分回路に入出力されるデータ量と前記部分回路における単位時間当たりの信号の変化回数とを対応付けて表す計測結果を記憶部から読み出し、
前記計測結果に基づいて、前記データ量を独立変数とし、前記変化回数を従属変数として回帰分析を行うことにより、前記データ量から前記変化回数を求めるトグルレート推定関数を作成する、
処理を実行させる電力見積支援プログラムを記録したことを特徴とする前記コンピュータに読取可能な記録媒体。
(付記8)回路の消費電力を見積もるシミュレーションにより所定の期間単位に計測された前記回路内のバスを介して部分回路に入出力されるデータ量と前記部分回路における単位時間当たりの信号の変化回数とを対応付けて表す計測結果を取得する取得部と、
前記取得部によって取得された前記計測結果に基づいて、前記データ量を独立変数とし、前記変化回数を従属変数として回帰分析を行うことにより、前記データ量から前記変化回数を求めるトグルレート推定関数を作成する作成部と、
を有することを特徴とする電力見積支援装置。
(付記9)回路の消費電力を見積もるシミュレーションにより所定の期間単位に計測された前記回路内のバスを介して部分回路に入出力されるデータ量と前記部分回路における単位時間当たりの信号の変化回数とを対応付けて表す計測結果を取得する取得部と、
前記取得部によって取得された前記計測結果に基づいて、前記データ量を独立変数とし、前記変化回数を従属変数として回帰分析を行うことにより、前記データ量から前記変化回数を求めるトグルレート推定関数を作成する作成部と、
を有するコンピュータを含むことを特徴とする電力見積支援装置。
(付記10)コンピュータが、
回路の消費電力を見積もるシミュレーションにより所定の期間単位に計測された前記回路内のバスを介して部分回路に入出力されるデータ量と前記部分回路における単位時間当たりの信号の変化回数とを対応付けて表す計測結果を記憶部から読み出し、
前記計測結果に基づいて、前記データ量を独立変数とし、前記変化回数を従属変数として回帰分析を行うことにより、前記データ量から前記変化回数を求めるトグルレート推定関数を作成する、
処理を実行することを特徴とする電力見積支援方法。