JP5298444B2 - プロセッサ設計を特徴付けるための方法、装置、論理プログラム及びシステム - Google Patents

プロセッサ設計を特徴付けるための方法、装置、論理プログラム及びシステム Download PDF

Info

Publication number
JP5298444B2
JP5298444B2 JP2007067540A JP2007067540A JP5298444B2 JP 5298444 B2 JP5298444 B2 JP 5298444B2 JP 2007067540 A JP2007067540 A JP 2007067540A JP 2007067540 A JP2007067540 A JP 2007067540A JP 5298444 B2 JP5298444 B2 JP 5298444B2
Authority
JP
Japan
Prior art keywords
power consumption
parameter
processor
timing
training program
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.)
Expired - Fee Related
Application number
JP2007067540A
Other languages
English (en)
Other versions
JP2007249974A (ja
Inventor
亨 石原
ファラー ファルザン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2007249974A publication Critical patent/JP2007249974A/ja
Application granted granted Critical
Publication of JP5298444B2 publication Critical patent/JP5298444B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は一般に電力分析に関連し、特にソフトウエアプログラムがプロセッサで実行される際の電力消費を評価することに関連する。
多くの電子システムでは、システムの動作時にどの程度多くの電力が消費されるかを知ることが望まれる。しばしば低電力消費であることは重要な設計基準になる。なぜなら電力消費はシステム温度及びバッテリ利用度に特に影響するからである。多くの場合、ソフトウエアの動作が電力消費に影響する。
本発明の課題は、プロセッサで実行されるソフトウエアプログラムの電力消費を推定する技法を提供することである。
特定の実施例では、その技法は、プロセッサの電力モデルを作成することで特定のプロセッサで動作するソフトウエアプログラムの電力消費を推定する方法で説明される。プロセッサの電力モデルを求めた後に、そのプロセッサで走る様々なソフトウエアプログラムについて電力消費を推定することができる。
特定の実施例によれば、プロセッサ設計を特徴付ける方法は、トレーニングプログラムを特定することを含む。複数のタイミングウインドウの各々について、前記トレーニングプログラムを実行するプロセッサの低レベルシミュレーションから平均電力消費が判定される。1以上のパラメータが特定され、タイミングウインドウの各々について、前記トレーニングプログラムの高レベルシミュレーションから各パラメータの値が判定される。
タイミングウインドウの各々について、パラメータに関連する係数の乗算されたパラメータ各々の値の総和に等しい推定された電力消費が判定される。前記推定された電力消費が、タイミングウインドウの過半数の平均電力消費に近づくように前記係数が選択される。
本発明による実施例は様々な技術的利点をもたらす。例えば、これらの技法は、プロセッサで動作するソフトウエアプログラムの電力消費を高速且つ正確に推定する方法をもたらす。ある実施例は、短い動作期間の間での個々のサブシステムの電力消費を推定する方法をもたらす。特定の実施例は、ゲートレベルのモデリングよりも高速であって命令レベルのモデリングよりも正確なソフトウエア電力消費推定方法をもたらす。ある実施例はプロセッサの電力消費特性の線形モデルと、その線形モデル用のパラメータ及び関連する係数を決定する方法を用意し、プロセッサの電力消費を正確に推定する。ある実施例では、ソフトウエアの電力消費を推定する方法は多くの様々な組み込みアプリケーションに適用可能である。
本発明の他の技術的利点は、以下の説明、図面及び特許請求の範囲から当業者にとって更に明白になるであろう。なお、具体的な利点が上記に列挙されたが、様々な実施例は列挙された利点の全部又は一部を含んでよいし、全く含まなくてもよい。
本発明及びその利点に関する更に完全な理解を期するため、添付図面に関連する以下の説明が参照される。
図1はソフトウエア電力消費を推定するためのシステムを示し、全体的に10で示されている。図示されているように、システム10は高レベルシミュレータ12、低レベルシミュレータ14、キャラクタリゼーションツール16、メモリ18、ホストコンピュータ20及びユーザインターフェース22を含む。概してシステム10内の要素は、ソフトウエア電力消費を推定するために相互運用する。総電力消費又は平均電力消費を推定することでしばしば十分であるが、場合によっては、設計モジュール各々が消費する電力量や、如何なるプログラム状態又は入力データの下にあるかを知る必要がある。この目的のために回路レベルの又はゲートレベルのシミュレータが使用されるかもしれないが、これらの手法はしばしば時間がかかりすぎる。
高レベルシミュレータ12は、プログラムの動作特性を確認するためにプログラムの動作を模擬する。特定の実施例によれば、高レベルシミュレータ12は、シミュレートされるプログラム及び関連するテストベクトルを入力として受信する。プログラムのシミュレーションに続いて、高レベルシミュレータ12はそのプログラムの動作に関する特徴を用意する。例えば高レベルシミュレータ12は命令セットシミュレータでもよく、その命令セットシミュレータは、適用される所与のテストベクトルについてそのプログラムの命令トレース(履歴)を用意する。
低レベルシミュレータ14は、プログラムの動作特性を確認するために特定のプロセッサでのプログラムの動作を模擬する。低レベルシミュレータ14は、シミュレートするのにより多くの時間を要するかもしれないが、プログラムの平均電力消費を判定するのに使用される場合にはより正確な結果をもたらすことができる点で主に高レベルシミュレータ12と異なる。特定の実施例によれば、低レベルシミュレータ14は、シミュレートされるプログラム、そのプログラム用のテストベクトル、及びそのプログラムが実行されるプロセッサに関する情報を入力として受信する。例えば低レベルシミュレータ14は、シミュレーション中にゲートの出力変化を示すゲートレベルシミュレータでもよい。
キャラクタリゼーションツール16は、テストプロセッサの電力モデルを作成する。テストプロセッサの電力モデルは、そのテストプロセッサに実装されるソフトウエアプログラムについて推定される消費電力を迅速且つ正確にシステム10が決定することを可能にする。特定の実施例では、この電力モデルを作成するために、キャラクタリゼーションツール16は:(i)テストベクトル及びトレーニングプログラムの高レベルシミュレーション結果及び(ii)そのテストプロセッサに関するテストベクトル及びトレーニングプログラムの低レベルシミュレーション結果を受信する。図示の例では、高レベルシミュレータ12はハイレベルシミュレーション結果を用意し、低レベルシミュレータ14はローレveルシミュレーション結果を用意する。図示されるように、キャラクタリゼーションツール16はタイミングディバイダ24、電力計算器26、パラメータ抽出器28及び線形プログラミングモジュール30を含む。
タイミングディバイダ24は、高レベルシミュレーション及び低レベルシミュレーション双方を特定のプロセッササイクル数に対応するタイミングウインドウに分ける。タイミングウインドウは数千サイクル長にも及ぶ順序でもよい。しかしながらシステム10は、プロセッサの動作部分を分けるために、固定長でも可変長でも適切などんな長さでもよいタイミングウインドウを有するタイミングディバイダ24をも想定している。特定のタイミングウインドウでは、高レベルシミュレーション及び低レベルシミュレーションは、たとえ異なる方法であってもトレーニングプログラムについて実質的に同じ動作をシミュレートする。高レベルシミュレーション及び低レベルシミュレーションをタイミングウインドウに分割した後に、タイミングディバイダ24は低レベルシミュレーション結果を電力計算器26に伝送し、高レベルシミュレーション結果をパラメータ抽出器28に伝送する。
電力計算器26は低レベルシミュレーションを用いて各タイミングウインドウについてトレーニングプログラムの平均電力消費を判定する。各タイミングウインドウについて判定された平均電力消費は完璧に正確である必要はないことが理解される。電力計算器26はその結果を線形プログラミングモジュール30に送る。
パラメータ抽出器28は各タイミングウインドウについて高レベルシミュレーションにおけるパラメータ(又は一群のパラメータ)の値を判定する。パラメータは、そのプログラムの高レベルシミュレーションから得られるプログラムに関する特徴又は特徴群を表現する。例としてパラメータは命令キャッシュアクセス数、行われる分岐として予想される分岐実行回数、同じキャッシュラインをアクセスする2つの連続的なロード命令対の数等を含んでもよい。タイミングウインドウ各々について、パラメータ抽出器28は高レベルシミュレーションにおけるパラメータ(又はパラメータ群)の値を確認する。例えば、1つのタイミングウインドウに関する高レベルシミュレーションは、10回の命令キャッシュアクセスがあることを示すかもしれない。命令キャッシュアクセス数がパラメータであったならば、パラメータ抽出器28はそのパラメータの値が10であることを確認する。パラメータ抽出器28はその結果を線形プログラミングモジュール30に送信する。ある実施例ではパラメータ抽出器28はどのパラメータを評価するかを決定してもよい。評価されたパラメータは、テストプロセッサの電力モデルを作成するために線形プログラミングモジュール30で使用可能である。
図示されているように、線形プログラミングモジュール30は、電力計算器36から得られた平均電力消費量及びパラメータ抽出器28から得られたパラメータ及び値を利用して、テストプロセッサの電力モデルを作成する。各タイミングウインドウについて、関連する係数の掛かったパラメータは、そのタイミングウインドウについての平均的な電力消費を近似する。あるタイミングウインドウの平均電力消費と、パラメータ及び係数から算出された推定された電力消費との差分は、電力推定誤差になる。線形プログラミングモジュール30はそのパラメータについての最適な係数(電力推定誤差を最少にする係数)を見出す。ある実施例では、線形プログラミングモジュール30は電力推定誤差が特定の範囲内に収まるか否かを予測する。収まらなければ、線形プログラミングモジュールは、パラメータ抽出器28から新たなデータを要求することで分析にパラメータを追加する。他の実施例では、線形プログラミングモジュール30は、関連する係数の掛かったパラメータ値が或る数式の中で他の項に比較して非常に小さいか否かを確認する。その場合(小さい場合)、線形プログラミングモジュール30は、電力評価に及ぼす影響が小さいことに起因してそのパラメータを使用しないように決定する。
キャラクタリゼーションツール16は特定の構成及びモジュール配置を含む単一要素として描かれているが、それは論理的観点からの記述であり、キャラクタリゼーションツール16の要素及び機能は1以上の物理的なロケーションに位置していてよいことに留意すべきである。また、キャラクタリゼーションツール16の機能は要素の適切な如何なる集まり及び配置で用意されてもよい。プロセッサの電力モデルを用意するために、キャラクタリゼーションツール16の様々な要素で実行される機能は、適切な移管ル装置及び論理モジュールで実現されてもよい。
図示の例では、システム10はメモリ18も含む。図示されるようにメモリ18はトレーニングプログラム32、ベクトル34、テストプロセッサ情報36、プロセッサキャラクタリゼーション38、ソフトウエアプログラム40及びソフトウエア42を含む。メモリ18内に示される情報は個別的なファイル、フォルダその他の格納要素として図示されているが、同様な情報は適切な如何なる手法で格納されてよいことが理解されるべきである。
トレーニングプログラム32及びベクトル34はテストプロセッサの電力モデルを作成するのに使用される。トレーニングプログラム32及びベクトル34は、関連するベクトル34と共に動作するトレーニングプログラム32各々について高レベルシミュレーション結果を得るために高レベルシミュレータ12に送られる。トレーニングプログラム32、ベクトル34及びテストプロセッサ情報36は、関連するベクトル34と共にそのテストプロセッサで動作するトレーニングプログラム32各々について低レベルシミュレーション結果を得るために低レベルシミュレータ14に送られる。キャラクタリゼーションツール16はそのテストプロセッサで動作するトレーニングプログラム32の高レベル及び低レベルシミュレーション結果を利用して、テストプロセッサの電力モデルを作成する。一旦確認されると、電力モデルはプロセッサキャラクタリゼーション38に格納される。プロセッサキャラクタリゼーション38は、ソフトウエアプログラム40のソフトウエア電力消費の評価に使用可能である。ある実施例では、メモリ18は複数のソフトウエアプログラム40を含み、システム10の要素はソフトウエアプログラム40各々についてのソフトウエア電力消費の推定値を判定するよう動作する。
ソフトウエア42はプログラム、ソフトウエア、ハードウエア、論理装置又は回路の適切な何らかのものをも含み、実行時にはシステム10内の様々な要素の動作を制御することができる。ソフトウエア42はシステム10内の他の部分(メモリ18以外の部分)に含まれていてもよい。また、ソフトウエア42はメモリ18又はシステム10内に含まれていてもいなくてもよい。
図示されるように、ホストプロセッサ20はプロセッサキャラクタリゼーション38を用いてソフトウエアプログラム40のソフトウエア電力消費を推定する。ホストプロセッサ20は、高レベルシミュレータ12によるソフトウエアプログラム40の高レベルシミュレーションを要求する。特定の実施例では、ソフトウエアプログラム40は、ベクトル34に格納されていてもいなくてもよいテストベクトルを伴う。高レベルシミュレーション結果を受けた後で、ホストプロセッサ20は高レベルシミュレーションを複数の時間間隔に分割する。指定された各時間間隔はそのタイミングウインドウについて評価されたソフトウエア電力消費を与える。これらの時間間隔は、トレーニングプログラムの分析に使用されるタイミングウインドウと同じ長さでもよいし、異なる長さでもよい。ある実施例では高レベルシミュレーションは複数の時間間隔に分割されない。特定の実施例では、ホストプロセッサ20はタイミングディバイダ24により分けられた高レベルシミュレーションを得る。タイミングウインドウを用いることで、ホストプロセッサ20は、特定の時間間隔にわたってソフトウエアプログラム40の電力消費を決定することができる。
高レベルシミュレーションの各時間間隔について、ホストプロセッサ20はプロセッサキャラクタリゼーション38で指定された各パラメータの値を決定する。特定の実施例では、ホストプロセッサ20はパラメータ抽出器28からパラメータ値を取得する。プロセッサキャラクタリゼーション38により指定された各パラメータの値を決定した後に、ホストプロセッサ20は、決定されたパラメータ値を用いてプロセッサキャラクタリゼーション38を評価することで、ソフトウエアプログラム40の推定された電力消費量を計算する。このプロセスはソフトウエアプログラム40用に特定された時間間隔各々について反復可能である。ホストプロセッサ20は、1つのモジュールとして描かれているが、プログラム、ソフトウエア、ハードウエア、論理装置又は回路の適切な何らかのものを含んでよく、システム10内の様々な要素の動作を制御してよい。
ユーザインターフェース22は或るインターフェースであり、そのインターフェースを介してユーザはシステム10と通信することができ且つシステム10から情報を受けることができる。特定の実施例では、プロセッサキャラクタリゼーション38を決定するためにキャラクタリゼーションツール16でどのパラメータが使用されるべきかをユーザは選択することができる。ある実施例では、電力推定誤差が特定の限界に等しい又はそれより大きかった場合に、キャラクタリゼーションツール16により使用されるべき追加的パラメータをユーザは特定することができる。ある実施例では、ユーザインターフェース22は、プロセッサキャラクタリゼーション38が得られた後に残っている電力推定誤差を表示することができる。ある実施例では、ユーザインターフェース22はキャラクタリゼーションツール16により決定された後にプロセッサキャラクタリゼーション38を表示することができる。特定の実施例では、ユーザインターフェース22はソフトウエアプログラム40の推定されたソフトウエア電力消費を表示する。この表示は例えばテーブル形式で又は図形表示で行われてもよい。ユーザインターフェースはシステム10に含まれても含まれなくてもよいし、要素の適切な何らかの集まり及び配置で用意されてもよい。
ソフトウエア電力消費を推定するシステムの特定の実施例が図示及び説明され、そこに全てが含まれることは意図されていない。システム10内の要素は適切な何らかの技法又はプロトコルを用いて相互につながる。システム10は要素の或る特定の構成及び配置を含むように描かれているが、それは論理的な記述に過ぎず、システム10の要素及び機能は論理的に及び物理的に適切に合成され、分離され又は分散されてもよいことに留意すべきである。また、システム10の機能は要素の適切な如何なる集まり及び配置で用意されてもよい。システム10の様々な要素で実行される機能は、電力モデルを作成することでソフトウエア電力消費を推定する適切な何らかの装置又は論理で実現されてよい。
図2はソフトウエア電力消費推定用のモデルを決定するためにプロセッサをキャラクタライズする一般的な方法50を示すフローチャートである。モデル50に示されるように、プロセッサは線形近似モデルを用いて特徴付けられる。そのエネルギ消費は線形結合を用いてモデル化されてよい:
Figure 0005298444
数式(1)ではPi,ci,Nはモデルのパラメータ、関連する係数及びパラメータ数をそれぞれ表す。パラメータ選択後に、対応する係数は、推定されるエネルギ消費Eestimate及び実際のエネルギ消費の間の差を小さくするように選択される。図示の例では、実際のエネルギ消費は、低レベルシミュレーションで推定されるエネルギ消費Elowに非常に近くなるよう仮定されている。パラメータを選択して係数を決定した後に、様々なプログラムについて推定されるエネルギ消費Eestimateが数式(1)を用いて算出可能になる。
ステップ52では、プロセッサキャラクタリゼーション38を作成するのにトレーニングプログラム32及びベクトル34のどれが使用されるかをキャラクタリゼーションツール16が特定する。選択されたトレーニングプログラム32及びベクトル34は、ターゲットアプリケーション領域を表現し、或いは様々なアプリケーション領域の特徴を組み入れるように設計されてもよい。特定の実施例では、プロセッサキャラクタリゼーション38を作成するためにトレーニングプログラム32及びベクトル34のどれが使用されるべきかをユーザが特定してよいように、ユーザインターフェース22が組み入れられることが可能である。他の実施例では、メモリ18に格納された関連するベクトル34及びトレーニングプログラム32の全てがプロセッサキャラクタリゼーション38を作成するのに使用される。
次に、キャラクタリゼーションツール16はステップ54で各トレーニングプログラム32の電力消費を確認する。ある実施例では、各トレーニングプログラム32の電力消費は複数のタイミングウインドウの各々について決定される。ある実施例では、キャラクタリゼーションツール16は、低レベルシミュレータ14から得られたトレーニングプログラム32各々の低レベルシミュレーションからエネルギ消費を決定する。電力計算器26は、低レベルシミュレーションからエネルギ消費を決定し、そのエネルギ消費量を線形プログラミングモジュール30に送信する。ステップ54は時間がかかるかもしれないので、多くの場合には、特定のプロセッサについてプロセッサキャラクタリゼーション38を作成するのに一度だけ必要とされる。
ステップ56では、キャラクタリゼーションツール16が各トレーニングプログラム32について命令トレースを決める。或いは、キャラクタリゼーションツール16はステップ56で別の高レベルシミュレーションを使用してもよく、そのシミュレーションからパラメータ値が決定可能である。キャラクタリゼーションツール16は、例えば各トレーニングプログラム32について命令トレースのような高レベルシミュレーション結果を受けるために、トレーニングプログラム32及び対応するベクトル34を高レベルシミュレータ12に送信する。
ステップ58では、キャラクタリゼーションツール16はテストプロセッサの電力モデルに使用されるパラメータPiを決定する。ある実施例では、ユーザインターフェース22を介してプロセッサキャラクタリゼーション38を決定するために使用するパラメータをユーザが選択する。他の実施例では、例えばパラメータ抽出器28のようなシステム10内の他の要素又はキャラクタリゼーションツール16が、使用されるべきパラメータを決定する。Piは或るパラメータであり、そのパラメータの値は命令トレースから容易に抽出可能である。例えば、プログラムの以下の特徴がパラメータとして機能する。
PIM(PDM): 命令(データ)キャッシュミスの回数
PU0(PUI): 行われない(行われる)分岐として予測される行われない(行われる)分岐命令数
PT0(PTI): 行われない(行われる)分岐として予測される行われる(行われない)分岐命令数
PLR: リンクレジスタを利用する分岐命令数
PJM: 絶対アドレスに常にジャンプする分岐命令数(例えば、CALL、JUMP)
PLI(PSI): 実行されるロード(記憶)命令数
PLM(PSM): データキャッシュミスを引き起こすロード(記憶)命令数
PGS: 汎用レジスタ中のデータをチップ外メモリに移動する「MOVGS」命令の数
PSG: チップ外メモリ中のデータを汎用レジスタに移動する「MOVSG」命令の数
PIA(PDA): 命令(データ)キャッシュアクセスの回数
PLU(PLT): 行われる分岐として予測される行われる(行われない)命令(キャッシュラインの最後に位置する)の数
PLLIM(PLLIH): 同じキャッシュラインにアクセスする2つの連続的なロード命令対の数(最初の命令はキャッシュミス(ヒット)になる)
PSS1(PSS2): 同じキャッシュラインにアクセスする(しない)2つの連続的な記憶命令対の数
PLL2: 同じキャッシュラインにアクセスしない2つの連続的な記憶命令対の数
PC2: ターゲットがVLIWプロセッサである場合に、2ウェイVLIWのウェイ1及びウェイ2を用いる命令数
この特徴のリストは全てを包含するようには意図されていない。プロセッサキャラクタリゼーション38を決定するのに使用されるパラメータは、列挙されている特徴の全部又は一部を含んでもよいし、列挙済みのいずれにも該当しないものを含んでいてもよい。更に、個々のパラメータはこれらの又は他の特徴の組み合わせを含んでもよい。
ステップ60では、線形プログラミングモジュール30は、パラメータ群Piに対応する係数群ciを計算する。あるパラメータ一式について、線形プログラミングモジュール30はエネルギ推定誤差|Eestimate−Elow|を最小化する係数を発見する。ここでElow及びEestimateはステップ54及び数式(1)を通じてそれぞれ得られたエネルギ消費量である。ある実施例では、線形プログラミングモジュール30は、決定された係数と共にエネルギ推定誤差が特定の限界Econstより少ないか否かを評価する。エネルギ推定誤差が十分に小さければ、目下のパラメータ及び係数一式はプロセッサキャラクタリゼーション38に組み入れられる。そうでなければ、線形プログラミングモジュール30は新たなパラメータを追加し、係数及びエネルギ推定誤差を再計算する。特定の実施例では、線形プログラミングモジュール30は、関連する係数が乗算されたパラメータの値が前記の数式の中で他の項と比較して小さいか否かを評価する。もしも小さかったならば、線形プログラミングモジュール30はそのパラメータを破棄する。なぜならプロセッサキャラクタリゼーション38及び電力推定に与える影響が小さいからである。ある実施例では、エネルギ推定誤差が特定の限界Econstより小さくなるまでステップ60が反復される。
ステップ62では、キャラクタリゼーションツール16はプロセッサキャラクタリゼーション38を生成し、それをメモリ18に格納する。プロセッサキャラクタリゼーション38は様々なソフトウエアプログラム(例えば、ソフトウエアプログラム40)について電力消費を推定するのに使用可能である。
図2に関連して説明された方法は単なる例示に過ぎず、その動作を実行するように説明された装置及び動作手法は適切な如何なる方法で修正されてもよい。本方法は特定の順序で実行される特定のステップを説明しているが、これら上記のステップ又は追加的なステップの全部又は一部を適切な何らかの順序で実行する要素の適切な如何なる集まり及び配置をもシステム10は包含してよいことが理解されるべきである。
図3はプロセッササイクルをタイミングウインドウに分割する例を示し、各タイミングウインドウは対応するエネルギ消費量を示す。全体的に70で示されるグラフは、横軸に実行サイクル72を及び縦軸にエネルギ消費量74を示す。実行サイクル72は複数のタイミングウインドウ(例えば、タイミングウインドウ76)に分割される。タイミングウインドウ76は、タイミングウインドウ76内に該当する実行サイクル72について特定のエネルギ消費78を有する。エネルギ消費78は電力計算器26により決定され、電力計算器は1つのトレーニングプログラム32の低レベルシミュレーションによるそのタイミングウインドウでのエネルギ消費を計算する。エネルギ消費78は、ソフトウエアプログラム40のタイミングウインドウについてエネルギ消費を決定する際に、電力計算器26によって又はホストプロセッサ20によって決定されてもよい。ある実施例では、ユーザインターフェース22はグラフ70及び他の同様なグラフを表示し、ソフトウエアプログラム40、トレーニングプログラム32又は適切な何らかの他のプログラム若しくはアプリケーションの推定された又は平均的なエネルギ消費量をユーザに通知する。
グラフ70は特定の特性、特徴及び入力を有するように示されるが、同様な特徴又は特性が、(同様な入力を得ることのできる)如何なる数の及び如何なるタイプの要素及び/又は装置によって実行されてもよいことは理解されるであろう。更に、これらの要素及び/又は装置で実行される機能は適切な如何なる順序で実行されてもよく、及び/又は完全に省略されてもよい。グラフ70は、或る1つの手法で示されているが、如何なる必要な要素又は機能をも含むように意図される。
図4は全体的に100で示されたデータフローチャートを示し、データフローチャートはソフトウエア電力消費を推定するためのモデルを決定するようにテストプロセッサを特徴付ける。テストプロセッサ情報102及びトレーニングプログラム情報104は、ゲートレベルシミュレーション部106に入力される。テストプロセッサ情報102は、ゲートレベルシミュレーション部106に必要になるテストプロセッサについての如何なるタイプのデータをも含む。テストプロセッサ情報102はテストプロセッサ情報36としてメモリ18に格納されてもよい。ある実施例では、テストプロセッサ情報102はネットリスト又はセルライブラリを含む。トレーニングプログラム情報104はトレーニングプログラム及びそのベクトルを含み、それらはトレーニングプログラム32の1つ及びベクトル34の1つとしてメモリに格納されてもよい。トレーニングプログラム及びベクトルは、プロセッサを評価し、プロセッサ特徴を導出するために使用される。トレーニングプログラム情報104は、ターゲットアプリケーション領域を表現し、或いは様々なアプリケーション領域の特徴を組み入れるように設計されてもよい。ある実施例では、トレーニングプログラム情報104に含まれるベクトル及びトレーニングプログラムの選択は、その特徴付けに必要な計算時間及び電力推定精度に影響を及ぼす。特定の実施例では、トレーニングプログラム情報104は複数の別個のトレーニングプログラム32及び各プログラムに対応するベクトル34を含む。ある実施例では、トレーニングプログラム情報104は多くの様々なタイプのプログラムを含む。
ゲートレベルシミュレーション部106は、テストプロセッサ情報102で特定されるトレーニングプログラムの低レベルシミュレーションを実行する。図示されるように、ゲートレベルシミュレーション部106は、VCDゲート変化ファイルとして示されるようなゲート変化を示す変化量ダンプファイルを作成する。ある実施例では、トレーニングプログラムのゲートレベルシミュレーション部106は低レベルシミュレータ14から得られる。図示されるように、VCDゲート変化ファイル108はタイムディバイダ114に通知される。
命令セットシミュレーション部110は、トレーニングプログラム情報104を受信し、トレーニングプログラム情報104で指定されるトレーニングプログラム(又は、ある実施例では複数のプログラム)の高レベルシミュレーションを実行する。命令セットシミュレーション部110は、タイムディバイダ114に伝送される命令トレース112を生成する。特定の実施例では、命令セットシミュレーション部110は高レベルシミュレータ12によって実行される。ある実施例では、命令セットシミュレーション部110はゲートレベルシミュレーション部106と並行して動作する。他の実施例では、命令セットシミュレーション部110は、ゲートレベルシミュレーションと直列的に、先に実行された動作結果と共に動作する。
タイムディバイダ114は、VCDゲート変化ファイル108及び命令トレース112を受信し、各々をタイミングウインドウに分割する。各タイミングウインドウは、トレーニングプログラム情報104に従ってシミュレートされるテストプロセッサの特定のサイクル数を表現する。ある実施例はVCDゲート変化ファイル108及び命令トレース112をタイミングウインドウに分割しない。他の実施例はVCDゲート変化ファイル108及び命令トレース112を複数のタイミングウインドウに分割し、各ウインドウは多数のサイクルにわたるテストプロセッサの動作を表す。タイミングウインドウは固定長でもよいし又は可変長でもよい。
VCDゲート変化ファイル108をタイミングウインドウに分割することで、タイムディバイダ114及び電力計算器118は、各タイミングウインドウに対応するゲートの出力変化を特定できる。これらの変化は、ウインドウ116のゲート変化として表現され、電力計算器118に通知される。同様に、命令トレース112は小さなサブトレース(複数)に分割され、各サブトレースは或るタイミングウインドウに対応する。命令トレースが分割されるタイミングウインドウは、VCDゲート変化ファイル108が分割されるタイミングウインドウに相当する。一旦決定されると、サブトレース122はパラメータ抽出部124に通知される。特定の実施例では、命令トレース112をタイミングウインドウに分割するには、実行されるサイクル数を評価することを要する。例えば、命令セットシミュレーション部110は、サイクル不正確(cycle-inaccurate)命令セットシミュレータで実行可能である。サイクル不正確命令セットシミュレータは、パイプラインストールのペナルティサイクル、キャッシュミス、分岐予測ミス等の数を計算しないので、各パイプラインステージの動作をシミュレートしない。これらの実施例では、誤差が特定の限界未満になるまで、パラメータの追加又は削除及び誤差の評価を反復的に行うことで、実行サイクルが評価されてもよい。
電力計算器118はウインドウ116のゲート変化を利用して電力値120を決定する。電力値120は、テストプロセッサで動作するトレーニングプログラムの電力消費を表してもよい。各タイミングウインドウは対応する電力値120を有する。電力値120はリニアプログラマ130に通知される。図示の例では、電力値120はゲートレベルシミュレーション106で実行される低レベルシミュレーションに基づく。従って或る実施例では電力値120は、テストプロセッサで動作するトレーニングプログラムの正確な電力消費量ではない。しかしながら電力値120は十分に正確な電力消費推定値をもたらす。特定の実施例では、電力計算器26は電力値120を決定する。
パラメータ抽出部124はサブトレース124を用いて、テストプロセッサの電力モデルで使用するパラメータ126を決定する。ある実施例では、パラメータ抽出部124はパラメータ抽出器28により実行される。ある実施例では、ユーザはユーザインターフェース22を介してパラメータ126の全部又は一部を選択することができる。他の実施例では、キャラクタリゼーションツール16又はシステム10内の他の要素(例えばパラメータ抽出器28)は、どのパラメータが使用されるかを決定する。
パラメータ126は、高レベルシミュレーションから抽出可能な特徴(例えば、サブトレース122のような命令トレース)になる。パラメータ126は図2のステップ58でリストされた如何なる特徴を含んでもよい。しかしながら、この特徴のリストは可能な全てを包含するよう意図されてはいないこと、パラメータ126はこれら列挙された特徴の全部又は一部を含んでよいこと(更には、全く含まなくてもよいこと)が理解されるであろう。パラメータ126はリニアプログラマ130に送られる。
リニアプログラマ130は、プロセッサキャラクタリゼーション134のパラメータ126に対応する一群の係数を計算する。リニアプログラミングモジュール30で実行されてもよいリニアプログラマ130は、プロセッサキャラクタリゼーション58に対応してよいプロセッサキャラクタリゼーションを作成する。プロセッサキャラクタリゼーション134は、線形近似モデルを用いて、テストプロセッサの電力消費を特徴付ける。線形プログラマ130は数式(1)の線形な関係式を用いて電力消費をモデル化する:
Figure 0005298444
Pi,ci,Nはモデルのパラメータ、関連する係数及びパラメータ数をそれぞれ表す。始めに、モデルのパラメータはパラメータ126である。
一般に、プロセッサキャラクタリゼーション134を作成するために、リニアプログラマ130は、エネルギ推定誤差|Eestimate−Elow|を最小化する係数を発見する。ここでElowは電力値120で決定され、Eestimateは数式(1)で決定される。リニアプログラマモジュール130は、全てのタイミングウインドウについてエネルギ推定誤差を最小化する係数群を決定する。この問題は、「所与の一群のEi及びPijについて、トータルエラーYobjを最小化する一群の係数ciを見出すこと」のように形式化できる。変数は次のように決定される:
i: タイミングウインドウインデックス
j: パラメータインデックス
N: パラメータ数
M: タイミングウインドウ数
Ei: ゲートレベルシミュレーションを用いて推定されたi番目のタイムウインドウについてのエネルギ値
E’i: 数式(1)を用いて得られたi番目のタイムウインドウについてのエネルギ値
Yi: 誤差の絶対値|E’i−Ei|
Pij: 命令トレースから抽出されたパラメータ
ci: 決定された係数
係数群を発見するため、次式を最小化する:
Figure 0005298444
但し、以下の条件が課せられる:
Figure 0005298444
xmax及びxaveについて選択された値に基づいて、以下の3つの異なる目的関数の1つが最小化される:(1)平均誤差
Figure 0005298444
(2)最大誤差max(|E’−E|)又は(3)平均誤差及び最大誤差の和。特定の実施例では、xmax及びxaveの値は1又は0に限定されず、リニアプログラマ130が、平均誤差及び最大誤差の重み付け平均を最小化することを可能にする。ある実施例では、xmax及びxaveの値はユーザにより選択される。
パラメータ126に対応する係数を決定した後に、リニアプログラマ130はプロセッサキャラクタリゼーション134を作成する。一実施例では、モデルに固有のエネルギ推定誤差が大きすぎた場合に、リニアプログラマ130はパラメータ抽出部124に対して追加的なパラメータを要求する。この例は図5に関連して以下で説明される。プロセッサキャラクタリゼーション134の決定後に、様々なソフトウエアプログラムについて推定されたエネルギ消費Eestimateは、ソフトウエアプログラムのパラメータ126の値及びプロセッサキャラクタリゼーション134を用いて算出可能である。このプロセスは図6に関連して以下で説明される。
図4に関連して説明された方法は単なる例示に過ぎず、処理を行うように説明された装置及び処理方法は適切な如何なる手法で修正されてもよいことは理解されるであろう。本方法は特定の順序で実行される特定のステップを述べているが、理解されるべきことは、これらのステップ又は追加的なステップの全部又は一部を何らかの適用可能な順序で実行する要素の適切な如何なる集まり及び配置をもシステム10は想定していることである。
図5はソフトウエア電力消費推定用のモデルを決定するためのリニアプログラマの動作を示すフローチャートであり、全体的に150で示される。
ステップ152では、リニアプログラマ130は電力計算118から得られた電力値120を受ける。ステップ154では、ステップ152と並行して、リニアプログラマ130はパラメータ抽出部124から得たパラメータ126を受信する。ステップ156では、リニアプログラマ130はパラメータ126について最適な係数を計算する。ある実施例では、これは図4に関連して説明されたようにして行われる。
ステップ160に関し、リニアプログラマ130は何らかのパラメータ126が不要であるか否かを確認する。特定の実施例では、関連する係数の掛かった何らかのパラメータ126の値が数式中の他の項に比較して小さいか否かをリニアプログラマ130が評価する。パラメータが不要であった場合、本方法はステップ162に進み、特定のパラメータがパラメータ126及び現在の電力モデルから削除される。その特定のパラメータは、電力推定及びテストプロセッサの電力モデルに与える影響が弱いことに起因して使用されなくてもよい。パラメータ126の全てが必要であると判定された場合には、本方法はステップ164に進む。
ステップ164では、リニアプログラマ130は現在の電力モデルの電力推定誤差を算出する。各タイミングウインドウについて、電力推定誤差は|Eestimate−Elow|で表現可能であり、ここで、Elowは電力値120に対応するものであり、Eestimateは現在の電力モデルで決定される。ある実施例では、全てのタイミングウインドウについて現在の電力モデルの電力推定誤差は、以下の3つの異なる目的関数の1つによって発見可能である:(1)平均誤差
Figure 0005298444
(2)最大誤差max(|E’−E|)又は(3)平均誤差及び最大誤差の和。
ステップ166では、リニアプログラマ130は、ステップ164で決定された電力推定誤差が特定の限界値Econstより小さいか否かを評価する。電力推定誤差が十分に小さかったならば、本方法はステップ168に進み、電力モデルが完成し、プロセッサキャラクタリゼーション134になる。電力推定誤差が大きすぎた場合には、本方法はステップ170に進み、リニアプログラマ130は電力モデルで使用する追加的なパラメータを要求する。ある実施例では、リニアプログラマ130は追加的な1つ又は複数のパラメータの要求132をパラメータ抽出部124に送る。ある実施例では、パラメータ抽出器28は追加的などのパラメータが使用されるべきかを確認する。他の実施例ではユーザはユーザインターフェース22を介して追加的なパラメータを選択する。新たなパラメータがパラメータ126に付加された後で、本方法はステップ154に進み、受信されるパラメータは、オリジナルのパラメータ126及び追加されたパラメータ双方で構成される。そして本方法は最適な係数を計算し直し、現在の新たな電力モデルを決定する。ある実施例では、これらのステップは電力推定誤差が特定の限界Econstより小さくなるまで反復される。特定の実施例では、リニアプログラマ130は無限ループを回避するタイムアウト関数を導入する。
図5に関連して説明された方法は単なる例示に過ぎず、処理を行うように説明された装置及び処理方法は適切な如何なる手法で修正されてもよいことは理解されるであろう。本方法は特定の順序で実行される特定のステップを述べているが、理解されるべきことは、これらのステップ又は追加的なステップの全部又は一部を何らかの適用可能な順序で実行する要素の適切な如何なる集まり及び配置をもシステム10は想定していることである。
図6はプロセッサキャラクタリゼーションを用いてターゲットプログラムの電力消費を推定する方法を示すフローチャートであり、全体的に200で示される。ステップ202ではターゲットプログラムが特定される。ある実施例では、ターゲットプログラムはメモリ18に格納されたソフトウエアプログラム40である。次に、ホストプロセッサ20はステップ204でターゲットプログラムの命令トレースを決める。ホストプロセッサ20は命令トレースを得るためにターゲットプログラムを高レベルシミュレータ12に与える。ある実施例では、ホストプロセッサ20はターゲットプログラムの異なるシミュレーションを行い、そのシミュレーションから、プロセッサキャラクタリゼーション38で指定されるパラメータの値が得られる。
本方法はステップ206に進み、ホストプロセッサはテストプロセッサについてのプロセッサキャラクタリゼーションを確認する。図示されるように、ターゲットプログラムの電力消費は、特定のテストプロセッサで実行されるターゲットプログラムについて推定される。特定の実施例では、ステップ206はプロセッサキャラクタリゼーション38をロードすることを含む。ある実施例では、ステップ206はプロセッサキャラクタリゼーション38を決定することを含む。
ステップ208では、複数の時間間隔について又はターゲットプログラム全体について電力消費が評価されるべきか否かをホストプロセッサ20は決定する。電力消費が個々の時間間隔について評価されるべき場合には、本方法はステップ210に進み、ホストプロセッサ20はその時間間隔を確認する。この時間間隔はプロセッサキャラクタリゼーション38を得るのに使用されるタイミングウインドウと同様である。ある実施例では、ターゲットプログラムを分割するのに使用される時間間隔は不均一な長さでもよい。時間間隔は適切な如何なる長さにしてもよいことが理解されるであろう。ステップ212では、ステップ204で得られたターゲットプログラムの命令トレースは、各時間間隔に対応するサブトレースに分けられる。そしてステップ214ではホストプロセッサ20は各サブトレースについてプロセッサキャラクタリゼーション38で指定された各パラメータの値を決定する。ある実施例では、パラメータの値はターゲットプログラムのサブトレースから直接的に得られる。他の実施例でのパラメータの評価は、サブトレースの追加的な処理を必要とする。ステップ216では、パラメータの値が確認された後で、ホストプロセッサ20は取得したパラメータ値を用いて各サブトレースについて電力消費を評価する。
ステップ208で電力消費量がターゲットプログラム全体について推定されるべきことをホストプロセッサ20が判定した場合には、本方法はステップ220に進む。ステップ220ではホストプロセッサ20はプロセッサキャラクタリゼーション38で指定された各パラメータの値を決定する。ある実施例では、パラメータの値はターゲットプログラムの命令トレースから直接的に得られる。他の実施例でのパラメータの評価は、命令トレースの追加的な処理を必要とする。ステップ220では、パラメータの値が確認された後で、ホストプロセッサ20はパラメータ値を用いてターゲットプログラムの電力消費を評価する。
ステップ220及びステップ216のどちらからでも本方法はステップ222に進み、ホストプロセッサ20は計算結果が表示されるべきか否かを確認する。ある実施例では、ホストプロセッサ20は、代替的に又は追加的に、計算結果が格納又は保存されるべきか否かを確認する。表示されるべき場合、ホストプロセッサ20はステップ224で結果を表示する。ある実施例では、ホストプロセッサ20はユーザインターフェース22を用いて結果を表示する。結果が表示されるべきでない場合、ステップ224はスキップされる。本方法はステップ226に進み、ホストプロセッサ20は、他のターゲットプログラムの電力消費が推定されるべきか否かを確認する。推定されるべき場合、本方法はステップ202に戻り、そうでない場合方法200は終了する。
図6に関連して説明された方法は単なる例示に過ぎず、処理を行うように説明された装置及び処理方法は適切な如何なる手法で修正されてもよいことは理解されるであろう。ある実施例では、ホストプロセッサ20以外のシステム10の要素又はシステム10外の要素が、プロセッサキャラクタリゼーション38からターゲットプログラムの電力消費を推定する。本方法は特定の順序で実行される特定のステップを述べているが、理解されるべきことは、これらのステップ又は追加的なステップの全部又は一部を何らかの適用可能な順序で実行する要素の適切な如何なる集まり及び配置をもシステム10は想定していることである。
以上本発明がいくつかの実施例で説明されてきたが、多数の変更及び修正が当業者に示唆されるであろうし、そのような変更及び修正を本発明は特許請求の範囲内に包含することが意図される。
以下、本発明により教示される手段が例示的に列挙される。
(付記1)
プロセッサ設計を特徴付ける方法であって、
トレーニングプログラムを特定するステップと、
複数のタイミングウインドウの各々について、前記トレーニングプログラムを実行するプロセッサの低レベルシミュレーションから平均電力消費を判定するステップと、
1以上のパラメータを特定するステップと、
タイミングウインドウの各々について、前記トレーニングプログラムの高レベルシミュレーションから各パラメータの値を判定するステップと、
タイミングウインドウの各々について、パラメータに関連する係数の乗算されたパラメータ各々の値の総和に等しい推定された電力消費を判定するステップと、
前記推定された電力消費が、タイミングウインドウの過半数の平均電力消費に近づくように前記係数を選択するステップと、
を有する方法。
(付記2)
前記トレーニングプログラムが第1トレーニングプログラムであり、
前記タイミングウインドウが第1の複数のタイミングウインドウであり、
当該方法は、
第2トレーニングプログラムを特定するステップと、
第2の複数のタイミングウインドウの各々について、前記第2トレーニングプログラムを実行するプロセッサの低レベルシミュレーションから平均電力消費を判定するステップと、
前記第2の複数のタイミングウインドウの各々について、前記第2トレーニングプログラムの高レベルシミュレーションから各パラメータの値を判定するステップと、
前記第2の複数のタイミングウインドウの各々について、パラメータに関連する係数の乗算されたパラメータ各々の値の総和に等しい推定された電力消費を判定するステップと、
前記推定された電力消費が、前記第1の複数のタイミングウインドウ及び前記第2の複数のタイミングウインドウ双方の過半数についての平均電力消費に近づくように前記係数を選択するステップと、
を更に有する付記1記載の方法。
(付記3)
前記推定された電力消費及び前記平均電力消費間の差分が或る定数より小さい場合に、前記推定された電力消費は前記平均電力消費に近い付記1記載の方法。
(付記4)
前記タイミングウインドウが第1の複数のタイミングウインドウであり、当該方法は、
ソフトウエアプログラムを特定するステップと、
第2の複数のタイミングウインドウの各々について、前記ソフトウエアプログラムの高レベルシミュレーションから各パラメータの値を判定するステップと、
前記第2の複数のタイミングウインドウの各々について、パラメータに関連する係数の掛かったパラメータ各々の値の総和から前記ソフトウエアプログラムの推定された電力消費を計算するステップと、
を更に有する付記1記載の方法。
(付記5)
前記トレーニングプログラムがアプリケーションドメインを表現する付記1記載の方法。
(付記6)
タイミングウインドウ各々について、前記推定された電力消費及び前記平均電力消費間の差分に電力推定誤差が等しく、
推定された電力消費は、誤差の値が最小の場合に前記平均電力消費に近く、前記誤差の値は:
全てのタイミングウインドウに対して最大の電力推定誤差に等しい最大電力推定誤差、
各タイミングウインドウについて前記電力推定誤差の平均に等しい平均電力推定誤差、及び
前記最大電力推定誤差及び前記平均電力推定誤差の重み付け加算値
の何れかから選択されたものに等しい付記1記載の方法。
(付記7)
前記低レベルシミュレーションがゲートレベルシミュレーションであり、前記高レベルシミュレーションが命令セットシミュレーションである付記1記載の方法。
(付記8)
命令キャッシュミスの回数、
データキャッシュミスの回数、
行われない分岐として予測され行われなかった分岐命令の数、
行われる分岐として予測され行われた分岐命令の数、
行われない分岐として予測され行われた分岐命令の数、
行われる分岐として予測され行われなかった分岐命令の数、
リンクレジスタを利用する分岐命令の数、
絶対アドレスに常にジャンプする分岐命令の数、
実行されるロード命令数、
実行される記憶命令数、
データキャッシュミスを引き起こすロード命令数、
データキャッシュミスを引き起こす記憶命令数、
汎用レジスタからチップ外メモリへデータを動かす命令の数、
チップ外メモリから汎用レジスタへデータを動かす命令の数、
命令キャッシュアクセスの回数、
データキャッシュアクセスの回数、
キャッシュラインの末尾に位置する、行われる分岐として予測され行われた分岐命令の数、
キャッシュラインの末技に位置する、行われる分岐として予測され行われなかった分岐命令の数、
同じキャッシュラインにアクセスする2つの連続的なロード命令ペアであって、最初の命令はキャッシュミスになるものの数、
同じキャッシュラインにアクセスする2つの連続的なロード命令ペアであって、最初の命令がキャッシュヒットになるものの数、
同じキャッシュラインにアクセスする2つの連続的な記憶命令ペアの数、
同じキャッシュラインにアクセスしない2つの連続的な記憶命令ペアの数、
同じキャッシュラインにアクセスしない2つの連続的な記憶命令ペアの数、及び
2ウェイVLIWプロセッサのウェイ1及びウェイ2を利用する命令数
から選択された少なくとも1つを前記パラメータが含む付記1記載の方法。
(付記9)
関連する係数の掛かったパラメータ各々の値の総和は、前記プロセッサをモデル化する線形関係式による付記1記載の方法。
(付記10)
前記高レベルシミュレーションが、サイクル不正確シミュレータから得られ、
各タイミングウインドウが、前記プロセッサのサイクル数に対応し、
前記サイクル数が、線形関係式を用いて推定される付記1記載の方法。
(付記11)
1以上のパラメータが、選択された係数の評価に基づいて削除される付記1記載の方法。
(付記12)
前記推定された電力消費及び前記平均電力消費間の差分の評価に基づいて、前記パラメータに1以上の新たなパラメータが付加される付記1記載の方法。
(付記13)
プロセッサ設計を特徴付ける装置であって、
トレーニングプログラムを特定するキャラクタリゼーションツールと、
複数のタイミングウインドウの各々について、前記トレーニングプログラムを実行するプロセッサの低レベルシミュレーションから平均電力消費を判定する電力計算器と、
1以上のパラメータを特定し、タイミングウインドウの各々について、前記トレーニングプログラムの高レベルシミュレーションから各パラメータの値を判定するパラメータ抽出器と、
タイミングウインドウの各々について、パラメータに関連する係数の乗算されたパラメータ各々の値の総和に等しい推定された電力消費を判定するリニアプログラミングモジュールであって、前記推定された電力消費が、タイミングウインドウの過半数の平均電力消費に近づくように前記係数を選択するリニアプログラミングモジュールと、
を有する装置。
(付記14)
前記トレーニングプログラムが第1トレーニングプログラムであり、
前記タイミングウインドウが第1の複数のタイミングウインドウであり、
前記キャラクタリゼーションツールは、第2トレーニングプログラムを特定し、
前記電力計算器は、第2の複数のタイミングウインドウの各々について、前記第2トレーニングプログラムを実行するプロセッサの低レベルシミュレーションから平均電力消費を判定し、
前記パラメータ抽出器は、前記第2の複数のタイミングウインドウの各々について、前記第2トレーニングプログラムの高レベルシミュレーションから各パラメータの値を判定し、
前記リニアプログラミングモジュールは、前記第2の複数のタイミングウインドウの各々について、パラメータに関連する係数の乗算されたパラメータ各々の値の総和に等しい推定された電力消費を判定し、前記リニアプログラミングモジュールは、前記推定された電力消費が、前記第1の複数のタイミングウインドウ及び前記第2の複数のタイミングウインドウ双方の過半数についての平均電力消費に近づくように前記係数を選択する付記13記載の装置。
(付記15)
前記推定された電力消費及び前記平均電力消費間の差分が或る定数より小さい場合に、前記推定された電力消費は前記平均電力消費に近い付記13記載の装置。
(付記16)
ソフトウエアプログラムを特定するホストプロセッサを更に有する付記13記載の装置であって、
前記タイミングウインドウが第1の複数のタイミングウインドウであり、
前記パラメータ抽出器は、第2の複数のタイミングウインドウの各々について、前記ソフトウエアプログラムの高レベルシミュレーションから各パラメータの値を判定し、
前記ホストプロセッサは、前記第2の複数のタイミングウインドウの各々について、パラメータに関連する係数の掛かったパラメータ各々の値の総和から前記ソフトウエアプログラムの推定された電力消費を決定する付記13記載の装置。
(付記17)
前記トレーニングプログラムがアプリケーションドメインを表現する付記13記載の装置。
(付記18)
タイミングウインドウ各々について、前記推定された電力消費及び前記平均電力消費間の差分に電力推定誤差が等しく、
推定された電力消費は、誤差の値が最小の場合に前記平均電力消費に近く、前記誤差の値は:
全てのタイミングウインドウに対して最大の電力推定誤差に等しい最大電力推定誤差、
各タイミングウインドウについて前記電力推定誤差の平均に等しい平均電力推定誤差、及び
前記最大電力推定誤差及び前記平均電力推定誤差の重み付け加算値
の何れかから選択されたものに等しい付記13記載の装置。
(付記19)
前記低レベルシミュレーションがゲートレベルシミュレーションであり、前記高レベルシミュレーションが命令セットシミュレーションである付記13記載の装置。
(付記20)
命令キャッシュミスの回数、
データキャッシュミスの回数、
行われない分岐として予測され行われなかった分岐命令の数、
行われる分岐として予測され行われた分岐命令の数、
行われない分岐として予測され行われた分岐命令の数、
行われる分岐として予測され行われなかった分岐命令の数、
リンクレジスタを利用する分岐命令の数、
絶対アドレスに常にジャンプする分岐命令の数、
実行されるロード命令数、
実行される記憶命令数、
データキャッシュミスを引き起こすロード命令数、
データキャッシュミスを引き起こす記憶命令数、
汎用レジスタからチップ外メモリへデータを動かす命令の数、
チップ外メモリから汎用レジスタへデータを動かす命令の数、
命令キャッシュアクセスの回数、
データキャッシュアクセスの回数、
キャッシュラインの末尾に位置する、行われる分岐として予測され行われた分岐命令の数、
キャッシュラインの末技に位置する、行われる分岐として予測され行われなかった分岐命令の数、
同じキャッシュラインにアクセスする2つの連続的なロード命令ペアであって、最初の命令はキャッシュミスになるものの数、
同じキャッシュラインにアクセスする2つの連続的なロード命令ペアであって、最初の命令がキャッシュヒットになるものの数、
同じキャッシュラインにアクセスする2つの連続的な記憶命令ペアの数、
同じキャッシュラインにアクセスしない2つの連続的な記憶命令ペアの数、
同じキャッシュラインにアクセスしない2つの連続的な記憶命令ペアの数、及び
2ウェイVLIWプロセッサのウェイ1及びウェイ2を利用する命令数
から選択された少なくとも1つを前記パラメータが含む付記13記載の装置。
(付記21)
プロセッサ設計を特徴付ける媒体中にエンコードされる論理プログラムであって、
トレーニングプログラムを特定するステップと、
複数のタイミングウインドウの各々について、前記トレーニングプログラムを実行するプロセッサの低レベルシミュレーションから平均電力消費を判定するステップと、
1以上のパラメータを特定するステップと、
タイミングウインドウの各々について、前記トレーニングプログラムの高レベルシミュレーションから各パラメータの値を判定するステップと、
タイミングウインドウの各々について、パラメータに関連する係数の乗算されたパラメータ各々の値の総和に等しい推定された電力消費を判定するステップと、
前記推定された電力消費が、タイミングウインドウの過半数の平均電力消費に近づくように前記係数を選択するステップと、
をコンピュータに実行させる論理プログラム。
(付記22)
前記トレーニングプログラムが第1トレーニングプログラムであり、
前記タイミングウインドウが第1の複数のタイミングウインドウであり、
当該論理プログラムは、
第2トレーニングプログラムを特定するステップと、
第2の複数のタイミングウインドウの各々について、前記第2トレーニングプログラムを実行するプロセッサの低レベルシミュレーションから平均電力消費を判定するステップと、
前記第2の複数のタイミングウインドウの各々について、前記第2トレーニングプログラムの高レベルシミュレーションから各パラメータの値を判定するステップと、
前記第2の複数のタイミングウインドウの各々について、パラメータに関連する係数の乗算されたパラメータ各々の値の総和に等しい推定された電力消費を判定するステップと、
前記推定された電力消費が、前記第1の複数のタイミングウインドウ及び前記第2の複数のタイミングウインドウ双方の過半数についての平均電力消費に近づくように前記係数を選択するステップと、
をコンピュータに更に実行させる付記21記載の論理プログラム。
(付記23)
前記推定された電力消費及び前記平均電力消費間の差分が或る定数より小さい場合に、前記推定された電力消費は前記平均電力消費に近い付記21記載の論理プログラム。
(付記24)
前記タイミングウインドウが第1の複数のタイミングウインドウであり、当該論理プログラムは、
ソフトウエアプログラムを特定するステップと、
第2の複数のタイミングウインドウの各々について、前記ソフトウエアプログラムの高レベルシミュレーションから各パラメータの値を判定するステップと、
前記第2の複数のタイミングウインドウの各々について、パラメータに関連する係数の掛かったパラメータ各々の値の総和から前記ソフトウエアプログラムの推定された電力消費を計算するステップと、
をコンピュータに更に実行させる付記21記載の論理プログラム。
(付記25)
前記トレーニングプログラムがアプリケーションドメインを表現する付記21記載の論理プログラム。
(付記26)
タイミングウインドウ各々について、前記推定された電力消費及び前記平均電力消費間の差分に電力推定誤差が等しく、
推定された電力消費は、誤差の値が最小の場合に前記平均電力消費に近く、前記誤差の値は:
全てのタイミングウインドウに対して最大の電力推定誤差に等しい最大電力推定誤差、
各タイミングウインドウについて前記電力推定誤差の平均に等しい平均電力推定誤差、及び
前記最大電力推定誤差及び前記平均電力推定誤差の重み付け加算値
の何れかから選択されたものに等しい付記21記載の論理プログラム。
(付記27)
前記低レベルシミュレーションがゲートレベルシミュレーションであり、前記高レベルシミュレーションが命令セットシミュレーションである付記21記載の論理プログラム。
(付記28)
命令キャッシュミスの回数、
データキャッシュミスの回数、
行われない分岐として予測され行われなかった分岐命令の数、
行われる分岐として予測され行われた分岐命令の数、
行われない分岐として予測され行われた分岐命令の数、
行われる分岐として予測され行われなかった分岐命令の数、
リンクレジスタを利用する分岐命令の数、
絶対アドレスに常にジャンプする分岐命令の数、
実行されるロード命令数、
実行される記憶命令数、
データキャッシュミスを引き起こすロード命令数、
データキャッシュミスを引き起こす記憶命令数、
汎用レジスタからチップ外メモリへデータを動かす命令の数、
チップ外メモリから汎用レジスタへデータを動かす命令の数、
命令キャッシュアクセスの回数、
データキャッシュアクセスの回数、
キャッシュラインの末尾に位置する、行われる分岐として予測され行われた分岐命令の数、
キャッシュラインの末技に位置する、行われる分岐として予測され行われなかった分岐命令の数、
同じキャッシュラインにアクセスする2つの連続的なロード命令ペアであって、最初の命令はキャッシュミスになるものの数、
同じキャッシュラインにアクセスする2つの連続的なロード命令ペアであって、最初の命令がキャッシュヒットになるものの数、
同じキャッシュラインにアクセスする2つの連続的な記憶命令ペアの数、
同じキャッシュラインにアクセスしない2つの連続的な記憶命令ペアの数、
同じキャッシュラインにアクセスしない2つの連続的な記憶命令ペアの数、及び
2ウェイVLIWプロセッサのウェイ1及びウェイ2を利用する命令数
から選択された少なくとも1つを前記パラメータが含む付記21記載の論理プログラム。
(付記29)
プロセッサ設計を特徴付けるシステムであって、
トレーニングプログラムを特定する手段と、
複数のタイミングウインドウの各々について、前記トレーニングプログラムを実行するプロセッサの低レベルシミュレーションから平均電力消費を判定する手段と、
1以上のパラメータを特定する手段と、
タイミングウインドウの各々について、前記トレーニングプログラムの高レベルシミュレーションから各パラメータの値を判定する手段と、
タイミングウインドウの各々について、パラメータに関連する係数の乗算されたパラメータ各々の値の総和に等しい推定された電力消費を判定する手段と、
前記推定された電力消費が、タイミングウインドウの過半数の平均電力消費に近づくように前記係数を選択する手段と、
を有するシステム。
ソフトウエア電力消費を推定するシステムを示す図である。 ソフトウエア電力消費推定用のモデルを決定するためにプロセッサをキャラクタライズする一般的方法を示すフローチャートである。 プロセッササイクルを複数のタイミングウインドウ(各々は対応する電力消費量を示す)に分割する例を示す図である。 ソフトウエア電力消費推定モデルを決定するためにプロセッサをキャラクタライズするデータフローチャートを示す。 ソフトウエア電力消費推定モデルを決定するためのリニアプログラムの動作を示すフローチャートである。 ターゲットプログラムの電力消費を推定するためにプロセッサ評価を利用する方法を示すフローチャートである。
符号の説明
10 システム
12 高レベルシミュレータ
14 低レベルシミュレータ
16 キャラクタリゼーションツール
18 メモリ
20 ホストコンピュータ
22 ユーザインターフェース
24 タイミングディバイダ
26 電力計算器
28 パラメータ抽出器
30 線形プログラミングモジュール
32 トレーニングプログラム
34 ベクトル
36 テストプロセッサ情報
38 プロセッサキャラクタリゼーション
40 ソフトウエアプログラム
42 ソフトウエア

Claims (10)

  1. プロセッサ設計を特徴付ける方法であって、
    トレーニングプログラムを特定するステップと、
    前記トレーニングプログラムを実行するプロセッサの実行サイクルが分割されて形成される複数のタイミングウインドウの各々について、前記プロセッサの低レベルシミュレーションから平均電力消費を判定するステップと、
    1以上のパラメータを特定するステップと、
    前記複数のタイミングウインドウの各々について、前記トレーニングプログラムの高レベルシミュレーションから各パラメータの値を判定するステップと、
    タイミングウインドウの各々について、パラメータに関連する係数の乗算されたパラメータ各々の値の総和に等しい推定された電力消費を判定するステップと、
    前記推定された電力消費が、タイミングウインドウの過半数の平均電力消費に近づくように前記係数を選択するステップと、
    を有する方法。
  2. プロセッサ設計を特徴付ける装置であって、
    トレーニングプログラムを特定するキャラクタリゼーションツールと、
    前記トレーニングプログラムを実行するプロセッサの実行サイクルが分割されて形成される複数のタイミングウインドウの各々について、前記プロセッサの低レベルシミュレーションから平均電力消費を判定する電力計算器と、
    1以上のパラメータを特定し、前記複数のタイミングウインドウの各々について、前記トレーニングプログラムの高レベルシミュレーションから各パラメータの値を判定するパラメータ抽出器と、
    タイミングウインドウの各々について、パラメータに関連する係数の乗算されたパラメータ各々の値の総和に等しい推定された電力消費を判定するリニアプログラミングモジュールであって、前記推定された電力消費が、タイミングウインドウの過半数の平均電力消費に近づくように前記係数を選択するリニアプログラミングモジュールと、
    を有する装置。
  3. 前記トレーニングプログラムが第1トレーニングプログラムであり、
    前記タイミングウインドウが第1の複数のタイミングウインドウであり、
    前記キャラクタリゼーションツールは、第2トレーニングプログラムを特定し、
    前記電力計算器は、第2の複数のタイミングウインドウの各々について、前記第2トレーニングプログラムを実行するプロセッサの低レベルシミュレーションから平均電力消費を判定し、
    前記パラメータ抽出器は、前記第2の複数のタイミングウインドウの各々について、前記第2トレーニングプログラムの高レベルシミュレーションから各パラメータの値を判定し、
    前記リニアプログラミングモジュールは、前記第2の複数のタイミングウインドウの各々について、パラメータに関連する係数の乗算されたパラメータ各々の値の総和に等しい推定された電力消費を判定し、前記リニアプログラミングモジュールは、前記推定された電力消費が、前記第1の複数のタイミングウインドウ及び前記第2の複数のタイミングウインドウ双方の過半数についての平均電力消費に近づくように前記係数を選択する請求項2記載の装置。
  4. 前記推定された電力消費及び前記平均電力消費間の差分が或る定数より小さい場合に、前記推定された電力消費は前記平均電力消費に近い請求項2記載の装置。
  5. ソフトウエアプログラムを特定するホストプロセッサを更に有する請求項2記載の装置であって、
    前記タイミングウインドウが第1の複数のタイミングウインドウであり、
    前記パラメータ抽出器は、第2の複数のタイミングウインドウの各々について、前記ソフトウエアプログラムの高レベルシミュレーションから各パラメータの値を判定し、
    前記ホストプロセッサは、前記第2の複数のタイミングウインドウの各々について、パラメータに関連する係数の掛かったパラメータ各々の値の総和から前記ソフトウエアプログラムの推定された電力消費を決定する請求項2記載の装置。
  6. 前記トレーニングプログラムがアプリケーションドメインを表現する請求項2記載の装置。
  7. タイミングウインドウ各々について、前記推定された電力消費及び前記平均電力消費間の差分に電力推定誤差が等しく、
    推定された電力消費は、誤差の値が最小の場合に前記平均電力消費に近く、前記誤差の値は:
    全てのタイミングウインドウに対して最大の電力推定誤差に等しい最大電力推定誤差、
    各タイミングウインドウについて前記電力推定誤差の平均に等しい平均電力推定誤差、及び
    前記最大電力推定誤差及び前記平均電力推定誤差の重み付け加算値
    の何れかから選択されたものに等しい請求項2記載の装置。
  8. 前記低レベルシミュレーションがゲートレベルシミュレーションであり、前記高レベルシミュレーションが命令セットシミュレーションである請求項2記載の装置。
  9. プロセッサ設計を特徴付ける媒体中にエンコードされる論理プログラムであって、
    トレーニングプログラムを特定するステップと、
    前記トレーニングプログラムを実行するプロセッサの実行サイクルが分割されて形成される複数のタイミングウインドウの各々について、前記プロセッサの低レベルシミュレーションから平均電力消費を判定するステップと、
    1以上のパラメータを特定するステップと、
    前記複数のタイミングウインドウの各々について、前記トレーニングプログラムの高レベルシミュレーションから各パラメータの値を判定するステップと、
    タイミングウインドウの各々について、パラメータに関連する係数の乗算されたパラメータ各々の値の総和に等しい推定された電力消費を判定するステップと、
    前記推定された電力消費が、タイミングウインドウの過半数の平均電力消費に近づくように前記係数を選択するステップと、
    をコンピュータに実行させる論理プログラム。
  10. プロセッサ設計を特徴付けるシステムであって、
    トレーニングプログラムを特定する手段と、
    前記トレーニングプログラムを実行するプロセッサの実行サイクルが分割されて形成される複数のタイミングウインドウの各々について、前記プロセッサの低レベルシミュレーションから平均電力消費を判定する手段と、
    1以上のパラメータを特定する手段と、
    前記複数のタイミングウインドウの各々について、前記トレーニングプログラムの高レベルシミュレーションから各パラメータの値を判定する手段と、
    タイミングウインドウの各々について、パラメータに関連する係数の乗算されたパラメータ各々の値の総和に等しい推定された電力消費を判定する手段と、
    前記推定された電力消費が、タイミングウインドウの過半数の平均電力消費に近づくように前記係数を選択する手段と、
    を有するシステム。
JP2007067540A 2006-03-15 2007-03-15 プロセッサ設計を特徴付けるための方法、装置、論理プログラム及びシステム Expired - Fee Related JP5298444B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/377,073 US7549069B2 (en) 2006-03-15 2006-03-15 Estimating software power consumption
US11/377,073 2006-03-15

Publications (2)

Publication Number Publication Date
JP2007249974A JP2007249974A (ja) 2007-09-27
JP5298444B2 true JP5298444B2 (ja) 2013-09-25

Family

ID=38007038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007067540A Expired - Fee Related JP5298444B2 (ja) 2006-03-15 2007-03-15 プロセッサ設計を特徴付けるための方法、装置、論理プログラム及びシステム

Country Status (3)

Country Link
US (1) US7549069B2 (ja)
EP (1) EP1835426A1 (ja)
JP (1) JP5298444B2 (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349828B1 (en) * 2006-02-15 2008-03-25 Hewlett-Packard Development Company, L.P. Estimating an electronic device condition
FR2903511B1 (fr) * 2006-07-07 2008-11-14 Airbus France Sas Systeme et architecture avionique a gestion de puissance integree
US7757103B2 (en) * 2006-12-20 2010-07-13 Intel Corporation Method and apparatus to estimate energy consumed by central processing unit core
US10339227B1 (en) 2007-06-08 2019-07-02 Google Llc Data center design
US8195967B2 (en) * 2008-05-29 2012-06-05 International Business Machines Corporation Reducing power consumption during execution of an application on a plurality of compute nodes
US20090300399A1 (en) * 2008-05-29 2009-12-03 International Business Machines Corporation Profiling power consumption of a plurality of compute nodes while processing an application
US8296590B2 (en) 2008-06-09 2012-10-23 International Business Machines Corporation Budget-based power consumption for application execution on a plurality of compute nodes
US8291427B2 (en) * 2008-06-09 2012-10-16 International Business Machines Corporation Scheduling applications for execution on a plurality of compute nodes of a parallel computer to manage temperature of the nodes during execution
US8458722B2 (en) * 2008-06-09 2013-06-04 International Business Machines Corporation Thread selection according to predefined power characteristics during context switching on compute nodes
US8086882B2 (en) * 2008-06-29 2011-12-27 Microsoft Corporation Energy measurement techniques for computing systems
US8250389B2 (en) * 2008-07-03 2012-08-21 International Business Machines Corporation Profiling an application for power consumption during execution on a plurality of compute nodes
US8347120B2 (en) * 2008-08-12 2013-01-01 Ixys Corporation System and method for conserving power applied to an electrical apparatus
US8825464B2 (en) * 2008-09-02 2014-09-02 Oracle America, Inc. Method and apparatus for parallelization of sequential power simulation
US8214843B2 (en) * 2008-09-03 2012-07-03 International Business Machines Corporation Framework for distribution of computer workloads based on real-time energy costs
KR101035257B1 (ko) 2009-02-25 2011-05-18 충북대학교 산학협력단 유엠엘 설계 모델을 이용한 내장형 소프트웨어 소모 전력 예측 방법
US8756564B2 (en) 2009-05-29 2014-06-17 International Business Machines Corporation Techniques for providing environmental impact information associated with code
US8178997B2 (en) 2009-06-15 2012-05-15 Google Inc. Supplying grid ancillary services using controllable loads
US8631411B1 (en) * 2009-07-21 2014-01-14 The Research Foundation For The State University Of New York Energy aware processing load distribution system and method
US20110072378A1 (en) * 2009-09-24 2011-03-24 Nokia Corporation Method and apparatus for visualizing energy consumption of applications and actions
NL2003915C2 (en) * 2009-12-07 2011-06-09 Yggdra Solutions Improved power usage management.
KR101099491B1 (ko) 2009-12-11 2011-12-28 충북대학교 산학협력단 소모전력 분석방법
US8347124B2 (en) * 2009-12-21 2013-01-01 International Business Machines Corporation Workload power consumption projection on information handling system
US9002668B2 (en) 2010-04-28 2015-04-07 International Business Machines Corporation Discovering an equipment power connection relationship
US8436720B2 (en) 2010-04-29 2013-05-07 International Business Machines Corporation Monitoring operating parameters in a distributed computing system with active messages
JP5510543B2 (ja) * 2010-06-30 2014-06-04 富士通株式会社 情報処理装置の使用量解析方法、情報処理システム及びそのプログラム
JP5785725B2 (ja) * 2010-10-15 2015-09-30 富士通株式会社 電力見積装置、電力見積方法及びプログラム
TW201224748A (en) * 2010-12-06 2012-06-16 Ind Tech Res Inst Transaction level system power estimation method and system
US8756544B2 (en) 2010-12-06 2014-06-17 Industrial Technology Research Institute Method for inserting characteristic extractor
JP5609657B2 (ja) * 2011-01-11 2014-10-22 富士通株式会社 半導体集積回路の低電力設計支援装置及びその方法
JP4875212B1 (ja) * 2011-03-30 2012-02-15 株式会社東芝 情報処理装置、省電力貢献度の算出方法、及び提示方法
US20140236563A1 (en) * 2011-09-30 2014-08-21 Yuping Wu Integrated circuit simulation method and system
US9009517B2 (en) 2011-11-16 2015-04-14 Infineon Technologies Ag Embedded voltage regulator trace
JP5790431B2 (ja) 2011-11-18 2015-10-07 富士通株式会社 設計支援装置、設計支援方法および設計支援プログラム
US9176841B2 (en) * 2011-12-28 2015-11-03 Microsoft Technology Licensing, Llc Estimating application energy usage in a target device
US9009500B1 (en) 2012-01-18 2015-04-14 Google Inc. Method of correlating power in a data center by fitting a function to a plurality of pairs of actual power draw values and estimated power draw values determined from monitored CPU utilization of a statistical sample of computers in the data center
US8650552B1 (en) * 2012-06-22 2014-02-11 Google Inc. Methods and systems for simulation of energy consumption in mobile operating system emulators
US10114719B2 (en) 2013-02-21 2018-10-30 International Business Machines Corporation Estimating power usage in a computing environment
US9330424B2 (en) * 2013-06-28 2016-05-03 Vmware, Inc. Power management analysis and modeling for distributed computer systems
US10539609B2 (en) * 2014-12-08 2020-01-21 Nxp Usa, Inc. Method of converting high-level test specification language to low-level test implementation language
CN107111538B (zh) 2014-12-19 2020-05-19 杜比实验室特许公司 具有模拟的音频实时处理的音频基准测试
CN106708499B (zh) 2015-11-13 2020-10-27 财团法人工业技术研究院 绘图处理程序的分析方法与分析系统
US10078364B2 (en) * 2016-01-14 2018-09-18 Hcl Technologies Limited System and method for optimizing power consumption of one or more devices
JP6683920B2 (ja) * 2016-02-24 2020-04-22 富士通株式会社 並列処理装置、電力係数算出プログラムおよび電力係数算出方法
KR101799037B1 (ko) * 2016-05-31 2017-11-17 주식회사 인코어드 테크놀로지스 가전 기기 사용 가이드 시스템 및 가전 기기 사용 가이드 방법
US10387285B2 (en) * 2017-04-17 2019-08-20 Microsoft Technology Licensing, Llc Power evaluator for application developers
US10656700B2 (en) * 2017-07-10 2020-05-19 Oracle International Corporation Power management in an integrated circuit
FR3073302A1 (fr) * 2017-11-08 2019-05-10 STMicroelectronics (Grand Ouest) SAS Procede et dispositif de surveillance d'au moins une activite d'un objet connecte
CN114158083B (zh) * 2020-09-08 2024-09-17 大唐联仪科技有限公司 一种终端功耗测试系统、方法及电子设备
US11836031B2 (en) * 2020-11-10 2023-12-05 Advanced Micro Devices, Inc. Application override of power estimation mechanism
JP7525159B2 (ja) 2020-12-25 2024-07-30 学校法人幾徳学園 電力推定装置および電源制御システム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635893A (ja) * 1992-07-16 1994-02-10 Babcock Hitachi Kk プラントシミュレータ装置
US5521834A (en) * 1993-11-30 1996-05-28 At&T Global Information Solutions Company Method and apparatus for calculating dynamic power dissipation in CMOS integrated circuits
US5838947A (en) * 1996-04-02 1998-11-17 Synopsys, Inc. Modeling, characterization and simulation of integrated circuit power behavior
US6021381A (en) * 1996-06-05 2000-02-01 Sharp Kabushiki Kaisha System for detecting power consumption of integrated circuit
US6151568A (en) * 1996-09-13 2000-11-21 Sente, Inc. Power estimation software system
US6002878A (en) * 1997-07-01 1999-12-14 Motorola, Inc. Processor power consumption estimator that using instruction and action formulas which having average static and dynamic power coefficients
US6397170B1 (en) * 1998-08-18 2002-05-28 International Business Machines Corporation Simulation based power optimization
US6871172B1 (en) * 2001-01-22 2005-03-22 Xilinx, Inc. Method and apparatus for determining power dissipation
US6735744B2 (en) * 2001-02-07 2004-05-11 Nec Corporation Power mode based macro-models for power estimation of electronic circuits
US6895561B2 (en) * 2001-12-07 2005-05-17 Sun Microsystems, Inc. Power modeling methodology for a pipelined processor
US7421382B2 (en) * 2001-12-07 2008-09-02 Sun Microsystems, Inc. Data analysis techniques for dynamic power simulation of a CPU
US7363208B2 (en) * 2003-07-10 2008-04-22 Freescale Semiconductor, Inc. Power consumption estimation
US7000204B2 (en) * 2003-09-02 2006-02-14 Hewlett-Packard Development Company, L.P. Power estimation based on power characterizations
US7249331B2 (en) * 2004-10-07 2007-07-24 International Business Machines Corporation Architectural level throughput based power modeling methodology and apparatus for pervasively clock-gated processor cores
US20070198864A1 (en) * 2006-02-21 2007-08-23 Toshiba America Electronic Components Systems and methods for determining and using power profiles for software programs executing on data processors

Also Published As

Publication number Publication date
US20070220292A1 (en) 2007-09-20
US7549069B2 (en) 2009-06-16
JP2007249974A (ja) 2007-09-27
EP1835426A1 (en) 2007-09-19

Similar Documents

Publication Publication Date Title
JP5298444B2 (ja) プロセッサ設計を特徴付けるための方法、装置、論理プログラム及びシステム
US7770140B2 (en) Method and apparatus for evaluating integrated circuit design model performance using basic block vectors and fly-by vectors including microarchitecture dependent information
US7904870B2 (en) Method and apparatus for integrated circuit design model performance evaluation using basic block vector clustering and fly-by vector clustering
Ïpek et al. Efficiently exploring architectural design spaces via predictive modeling
US6772106B1 (en) Retargetable computer design system
US20190361808A1 (en) Cache configuration performance estimation
US8010334B2 (en) Method and apparatus for evaluating integrated circuit design performance using basic block vectors, cycles per instruction (CPI) information and microarchitecture dependent information
Norman et al. Using probabilistic model checking for dynamic power management
US7844928B2 (en) Method and apparatus for evaluating integrated circuit design performance using enhanced basic block vectors that include data dependent information
US7761272B1 (en) Method and apparatus for processing a dataflow description of a digital processing system
Mariani et al. OSCAR: An optimization methodology exploiting spatial correlation in multicore design spaces
Seshia et al. Quantitative analysis of systems using game-theoretic learning
JP5514211B2 (ja) 分岐オーバーライドを用いたプロセッサ実行のシミュレーション
Nouri et al. Building faithful high-level models and performance evaluation of manycore embedded systems
US8340952B2 (en) Power estimation method and device therefor
CN112825058B (zh) 处理器性能评估方法及装置
Douma et al. Fast and precise cache performance estimation for out-of-order execution
US7120567B2 (en) Method and apparatus for determining output uncertainty of computer system models
Zhang et al. Efficient ml-based performance estimation approach across different microarchitectures for risc-v processors
Tompazi et al. Instruction-aware learning-based timing error models through significance-driven approximations
Zhang et al. Towards ML-based Performance Estimation of Embedded Software: A RISC-V Case Study
Van Ertvelde et al. Workload reduction and generation techniques
US20240338509A1 (en) Method for determining computing hardware architectures
Jerabek et al. Static worst-case execution time analysis tool development for embedded systems software
US20040059561A1 (en) Method and apparatus for determining output uncertainty of computer system models using sensitivity characterization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120321

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120703

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120903

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121211

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130311

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130319

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130603

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees