JP3351725B2 - パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体 - Google Patents

パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体

Info

Publication number
JP3351725B2
JP3351725B2 JP28237897A JP28237897A JP3351725B2 JP 3351725 B2 JP3351725 B2 JP 3351725B2 JP 28237897 A JP28237897 A JP 28237897A JP 28237897 A JP28237897 A JP 28237897A JP 3351725 B2 JP3351725 B2 JP 3351725B2
Authority
JP
Japan
Prior art keywords
instruction
power consumption
power
executed
processor
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
JP28237897A
Other languages
English (en)
Other versions
JPH10254944A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP28237897A priority Critical patent/JP3351725B2/ja
Priority to US09/003,123 priority patent/US6096089A/en
Publication of JPH10254944A publication Critical patent/JPH10254944A/ja
Application granted granted Critical
Publication of JP3351725B2 publication Critical patent/JP3351725B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パワーシミュレー
ション装置、パワーシミュレーション方法、及びパワー
シミュレーションプログラムを記録した機械読み取り可
能な記録媒体に関し、特に、シミュレーションの処理速
度をある程度保持しつつ、精度の高いパワーシミュレー
ションを実現することができる技術に関する。
【0002】
【従来の技術】プロセッサに使用されるパッケージを選
別したり、バッテリの容量を選出したりする場合には、
そのプロセッサが消費する電力値(消費電力値)を算出
する必要がある。この消費電力値を算出する手段として
は、仮想的にプロセッサを想定し、プロセッサ上で実行
される実行プログラムが実行された時の消費電力値をシ
ミュレーションすることにより求める技術が知られてい
る。この消費電力値を求めるシミュレーション(パワー
シミュレーション)として以下の2つの技術が開示され
ている。
【0003】図26は、パワーシミュレーション装置の
第1の従来例を示したブロック図である。このパワーシ
ミュレーション装置は、プロセッサ上で実行される実行
プログラムの命令列1を入力し、トレース情報5を生成
するトレース部3と、トレース情報5を入力し、1命令
あたりの消費電力ライブラリ25を用いて1命令当たり
の消費電力値であるパワー情報29を算出するパワー算
出部27とを備えるものである。
【0004】この第1の従来例では、実行プログラムの
トレース情報5のみに注目し、高速に求めるようにして
ある。命令毎に消費する電力値をあらかじめ求めてライ
ブラリとして用意し、トレース部3により得られた実行
命令に対応したライブラリデータを用いて消費電力値を
算出する。上記構成によるシミュレーション処理では、
シミュレーション処理時間が非常に短くなるが、命令毎
に一つの消費電力ライブラリしか用意しないため、誤差
が大きく、特に近年の複雑化したマイクロプロセッサに
対しては、更に誤差が大きくなるため、精度が低いとい
う問題があった。
【0005】図27は、パワーシミュレーション装置の
第2の従来例を示したブロック図である。このパワーシ
ミュレーション装置は、命令列1を実際のプロセッサ上
で動作するときの信号値に変換してゲートレベル用入力
信号値33を生成する信号変換部31と、生成されたゲ
ートレベル用入力信号値33を入力し、ゲートレベルの
シミュレーションを行うことにより高精度なパワー情報
37を生成するゲートレベルシミュレータ35とを備え
るものである。
【0006】この第2の従来例では、命令レベルの実行
プロセッサを、実際のプロセッサ上で動作するときの信
号値に自動的に変換し、下流のゲートレベルでプロセッ
サ内部を実際に動作させながらシミュレーションするこ
とにより消費電力を求め、レベルをゲートレベル等の下
位のレベルでプロセッサ内部の動作を忠実に実現しなが
らシミュレーションするため、高精度なシミュレーショ
ン結果を得ることができる。しかし、1回にかかるシミ
ュレーション実行処理時間が膨大になり、実行時間が非
常にかかるという問題があった。
【0007】
【発明が解決しようとする課題】上述の如く、第1の従
来例のパワーシミュレーション装置は、シミュレーショ
ン処理時間が非常に短くなるが、命令毎に一つの消費電
力ライブラリしか用意しないため、誤差が大きく、特に
近年の複雑化したマイクロプロセッサに対しては、更に
誤差が大きいため、精度が低いという問題があった。ま
た、第2の従来例のパワーシミュレーション装置は、高
精度なシミュレーション結果を得ることができるが、1
回にかかるシミュレーション実行処理時間が膨大になり
実行時間が非常にかかるという問題点があった。
【0008】本発明は、上記事情に鑑みてなされたもの
であり、その目的とするところは、シミュレーションの
処理速度をある程度保持しつつ精度の高いパワーシミュ
レーションを行うことができるパワーシミュレーション
装置、パワーシミュレーション方法、及びパワーシミュ
レーションプログラムを記録した機械読み取り可能な記
録媒体を提供することにある。
【0009】
【課題を解決するための手段】本発明の発明者は、従来
技術の第1のパワーシミュレータにおける精度の低さに
ついての問題点について考察した。この結果、プロセッ
サが何らかの原因でストールした場合に消費電力の誤差
が顕著に発生することが分かった。ここで、ストールと
は、例えば、命令をロードするのに数クロック掛かるよ
うな記憶装置に記憶されているような場合や、命令の依
存関係によって命令を実行できない場合にプロセッサの
実行が数クロック遅延することがある。このように何ら
かの原因による遅延によりプロセッサが命令を実行でき
ない状態をストールという。具体的には、一般にいわれ
るストール(例えば、次に実行すべき命令をメモリから
読み込むのに時間がかかってしまうために発生する遅
延)、ハザード(例えば、これから実行する命令が、前
の命令の実行結果に依存して実行内容が変わるために、
前の命令の実行結果が確定するまで実行できないために
発生する遅延)、及び、リソースコンフリクト(命令実
行に必要な資源が限られているとき、命令実行に伴って
使用しようとしたとき、先の命令によって未だ使用中の
ためにその実行が終了するまで命令実行を開始できない
ときに発生する遅延)が含まれる。
【0010】プロセッサが何らかの原因でストールした
場合には、このシステムクロックを数クロック余分に費
やすことになる。この余分に費やしたシステムクロック
のサイクルにおいても、ある程度電力消費するため、こ
れにより消費電力の誤差が生じていることが分かった。
【0011】そこで、プロセッサがストールするか否か
を考慮しながら消費電力のシミュレーションを行うよう
にすれば、シミュレーションの処理速度をある程度保持
しつつ精度の高いパワーシミュレーションを行うことが
でき、一気に問題点が解決することができることに気が
ついた。本発明の発明者は慎重な研究を重ねた結果、以
下のような発明を完成することができた。
【0012】上記目的を達成するため、請求項1の発明
は、プロセッサ上で実行される実行プログラムに含まれ
る命令が実行された時の消費電力値をシミュレーション
により求めるパワーシミュレーション装置において、前
記プロセッサがストールするか否かで前記命令毎に少な
くとも2つの消費電力値を記憶する手段と、その複数の
消費電力値を用いて前記プロセッサの消費電力値を計算
する手段と、を有することを特徴とする。
【0013】上記発明の構成では、プロセッサがストー
ルするか否かで消費電力値が異なることに鑑みて、複数
の消費電力値を用意し、この複数の消費電力値を用いて
プロセッサの消費電力値を求めるようにしてある。上記
発明の構成によれば、プロセッサがストールするか否か
で命令毎に複数の消費電力値を用いて消費電力を計算す
るようにしたため、処理速度をある程度保持しつつ精度
の高いパワーシミュレーションを行うことができるので
ある。
【0014】請求項2の発明は、プロセッサ上で実行さ
れる実行プログラムが実行された時の消費電力値をシミ
ュレーションにより求めるパワーシミュレーション装置
において、前記実行プログラムを入力し、その実行プロ
グラムのトレース情報を生成するトレース手段と、この
トレース手段で生成されたトレース情報を入力し、前記
実行プログラムのストール情報を検出するストール情報
検出手段と、このストール情報検出手段にて検出された
ストール情報を用い、ストール情報を考慮した消費電力
ライブラリから前記実行プログラムの消費電力値を算出
する消費電力算出手段と、を具備することを特徴とす
る。
【0015】上記発明の構成によれば、ストール情報を
考慮してパワーシミュレーションを行うので、高精度な
シミュレーション結果を得ることができるのである。
【0016】ここで、前記請求項2におけるストール情
報検出手段は、前記トレース手段で生成されたトレース
情報を入力し、プロセッサの動作情報保持手段で保持さ
れるパワーシミュレーションを行うプロセッサの動作情
報を用いて前記実行プログラムのストール情報を検出す
ることが好ましい。
【0017】上記構成によれば、プロセッサの動作情報
を用いてストール情報を検出するようにしてある。これ
により、前記発明の効果に加えて、このプロセッサの動
作情報を変更することにより、複数の種類のプロセッサ
についてパワーシミュレーションを行うことができるの
である。
【0018】また、前記請求項2における消費電力算出
手段は、実行プログラムの実行時の状態毎に用意された
消費電力値のライブラリデータを用いて消費電力を算出
することが好ましい。
【0019】上記構成によれば、実行プログラムの実行
時の状態毎に用意された消費電力値のライブラリデータ
を用いて消費電力を算出するようにしてある。これによ
り、請求項2記載の発明の効果に加えて、消費電力値の
ライブラリデータを変更することにより、複数の種類の
プロセッサについてパワーシミュレーションを行うこと
ができるのである。
【0020】請求項3の発明は、所定の実行プログラム
を実行するプロセッサ部と、前記所定の実行プログラム
を保持するメモリ部と、前記所定の実行プログラムの一
部を保持する命令キャッシュ部と、を備えたコンピュー
タシステムにおける消費電力値をシミュレーションによ
り求めるパワーシミュレーション装置において、前記実
行プログラムを入力し、その実行プログラムのトレース
情報を生成するトレース手段と、このトレース手段で生
成されたトレース情報を入力し、前記実行プログラムが
前記メモリ部若しくは命令キャッシュ部のいずれに保持
されるかの情報を含むストール情報を検出するストール
情報検出手段と、このストール情報検出手段にて検出さ
れたストール情報を用い、メモリ部に保持される場合の
消費電力及び命令キャッシュ部に保持されている場合の
消費電力を含むストール情報を考慮した消費電力ライブ
ラリから前記実行プログラムの消費電力値を算出する消
費電力算出手段と、を具備することを特徴とする。
【0021】上記発明の構成では、ストールの発生原因
としてキャッシュミス、すなわち、命令キャッシュ部に
所定の命令が保持されずに、メモリ部に保持されている
場合に発生するストールに注目したものである。これ
は、一般に対象とする命令をロードする場合にメモリ部
に保持されている場合にはストールが発生するためであ
る。従って、上記発明の構成によれば、キャッシュミス
した場合にストールが発生した場合に生じる消費電力の
誤差を低減して、高精度なパワーシミュレーションを行
うことができるのである。
【0022】ここで、前記請求項3における前記ストー
ル情報検出手段は、前記トレース手段で生成されたトレ
ース情報を入力し、前記実行プログラムが前記メモリ部
若しくは命令キャッシュ部のいずれに保持されるかの情
報、及び、前記実行プログラムが命令順序の変化を起こ
すか否かの情報を含むストール情報を検出することが好
ましい。
【0023】上記構成では、請求項3の発明に加えて、
命令順序の変化を起こすか否かの情報をも検出するよう
にしてある。ここで、命令順序の変化を起こす命令と
は、条件分岐命令や、無条件分岐命令が含まれる。この
命令順序の変化が起きる場合にもストールが発生するの
で、消費電力の誤差が生じる。従って、上記発明の構成
によれば、前記請求項3の発明よりさらに高精度にパワ
ーシミュレーションを行うことができるのである。
【0024】上記目的を達成するため、請求項の発明
は、プロセッサ上で実行される実行プログラムに含まれ
る命令が実行された時の消費電力値について、コンピュ
ータによるシミュレーションにて求めるパワーシミュレ
ーション方法において、コンピュータに、前記プロセッ
サがストールするか否かで前記命令毎に少なくとも2つ
の消費電力値を記憶するステップと、コンピュータ
その複数の消費電力値を用いて前記プロセッサの消費電
力値を計算するステップと、を有することを特徴とす
る。
【0025】上記目的を達成するため、請求項の発明
は、プロセッサ上で実行される実行プログラムに含まれ
る命令が実行された時の消費電力値をシミュレーション
により求めるパワーシミュレーションプログラムを記憶
した機械読み取り可能な記録媒体において、コンピュー
タに、前記プロセッサがストールするか否かで前記命令
毎に少なくとも2つの消費電力値を記憶させるステップ
と、コンピュータに、その複数の消費電力値を用いて前
記プロセッサの消費電力値を計算させるステップと、を
実行させるための記録媒体であることを要旨とする。
【0026】
【発明の実施の形態】以下、本発明に係るパワーシミュ
レーション装置、パワーシミュレーション方法、及びパ
ワーシミュレーションプログラムを記録した機械読み取
り可能な記録媒体の実施形態について、図面を参照しな
がら詳細に説明する。
【0027】第1 の実施形態 図1は、本実施形態のパワーシミュレーション装置を示
すブロック図である。このパワーシミュレーション装置
は、実行プログラムの命令列1を入力し、その実行プロ
グラム命令列1のトレース情報5を生成するトレース部
3と、トレース部5で生成されたトレース情報5を入力
し、マイクロプロセッサの動作情報7を用いて実行プロ
グラムのストール情報11を検出するストール情報検出
部9と、ストール情報検出部9にて検出されたストール
情報11を用い、ストール情報を考慮した消費電力ライ
ブラリ13から実行プログラムの消費電力値であるパワ
ー情報17を算出する消費電力算出部15とを備えるも
のである。
【0028】次に、本実施形態のパワーシミュレーショ
ン装置の動作の具体例を図面を参照しながら説明する。
以下の説明を簡単にするために、対象とする実行プログ
ラムを実行するコンピュータシステムの構成を図2に示
す。このコンピュータシステムは、実行プログラムを実
行するプロセッサ部19と、所定の実行プログラムを保
持するメモリ部23と、所定の実行プログラムの一部を
保持する命令キャッシュ部21とを備えるものである。
【0029】ここで、メモリ部23は、命令及びデータ
を保持するためのものであり、一般的には、低速、大容
量、安価であるということができる。また、命令キャッ
シュ部21は、メモリ部23より一般的には、高速、小
容量、高価であるということができる。本実施形態で
は、以下の説明の便宜のため、命令キャッシュ部21
は、同時に保持できる命令数を20とし、オーバーフロ
ーが発生する場合、一番過去に実現された命令から捨て
られるとするアルゴリズムを採用するものとする。
【0030】また、このコンピュータシステムで実行で
きる命令は、データを読み込むload命令と、データ
をメモリへ書き込むstore命令と、2つのレジスタ
値を加算するadd命令と、2つのレジスタ値を乗算す
るmult命令と、2つのレジスタ値が異なる限り指定
した命令番地に実行順序を変更するbne命令の5つと
する。
【0031】さらに、コンピュータシステム上で実行さ
れる全ての命令は、初めはメモリ部23に、ループ、分
岐に関係なく、プログラムとして与えられた順番で格納
されており、その順番は、連続した命令番地で与えられ
ているとする。これらの命令は、一度実行されることに
よって、命令キャッシュ部21に格納されるとする。
【0032】図3は、本実施形態で使用するコンピュー
タシステムの動作を説明するための図である。本実施形
態では、フェッチ(F)、デコード(D)、実行
(E)、メモリアクセス(M)、及びライトバック
(W)からなる5段のパイプライン制御を行うプロセッ
サを用いたコンピュータシステムを使用する。
【0033】これらの命令にストールが発生する状況
は、命令がメモリから読み込まれる場合とし、キャッシ
ュから読み込まれる場合は発生しないとする。また、b
ne命令については、前記以外に、実行命令順序変更時
でも発生するとする。従って、ストールを考慮した消費
電力ライブラリ13は、これらの各命令の各状態の全て
について消費される消費電力値をライブラリデータとし
て用意すると図4の様になる。図示の如く、プロセッサ
がストールするか否かで命令毎に複数の消費電力値を用
いて消費電力を計算するようにしたため、より正確なパ
ワーシミュレーション結果を得ることが出来るのであ
る。
【0034】以上のようなコンピュータシステムにて、
実行させる実行プログラムを図5に示す。この実行プロ
グラムを実行するときの消費電力値を本実施形態シミュ
レーション装置によって求めるための手順を図1に従っ
て説明する。
【0035】まず、図5に示す対象とするプログラムの
命令列1を実際にデータを変化させながら、一命令ずつ
実行させて展開することによって、これらの命令列がど
のような順番(これ以降、実行順序で示す)で実行され
るかというストールを考慮しないトレース情報5を求め
る。このトレース情報5を図6に示す。この例では、命
令番地8にあるbne命令によってループが発生し、命
令番地6から8までの命令が3回繰り返し実行され、こ
のプログラムの命令実行回数は16命令になることが分
かる。
【0036】次に、このトレース情報に、対象とするプ
ログラムの動作情報7を使用して、ストール情報検出ア
ルゴリズムに従ってストール情報を付加する。このスト
ール情報検出アルゴリズムの例を図7に示す。このアル
ゴリズムでは、まず、対象とする命令プログラムから、
これから実行する命令を一つ読み込み、その実行命令の
種類と、命令番地を記憶する(ステップS11)。
【0037】続いて、その命令の命令番地が、キャッシ
ュに保存されている命令番地と等しいかを調べる(ステ
ップS12)。等しくなければ、この命令はメモリから
読み込まれた事が分かる。一方、等しければ過去に一度
実行され、キャッシュに格納されている命令であること
が分かる。
【0038】更に、実行された命令の種類がbneであ
るかどうかを調べる(ステップS13,S14)。命令
がbneであるならば、命令実行順序が変化する場合が
考えられるからである。もし命令が、bneであるなら
ば、続いて、実行される命令の命令番地を参照する。現
在、実行しようとする命令の命令番地と次に実行される
命令の命令番地を比較することにより、連続ならば実行
順序変更なし、非連続ならば実行順序変更有りと判断す
ることができるため、bne命令によって命令順序が変
更されたのか、されなかったかが判断できるからであ
る。
【0039】最後に、キャッシュに格納される命令20
個のみを他の命令と区別するため、対象とした命令がキ
ャッシュ読み込みの場合は、キャッシュ格納命令順序を
過去に実行した命令番地を削除して詰め、新しい命令番
地を最後に追加する(ステップS21)。また、対象と
した命令がメモリ読み込みであった場合は、新しくキャ
ッシュに格納されるため、一番最後にこの命令を追加す
る(ステップS22)。この時、格納されている命令番
地数が20を越えるならば、一番古い命令番地を削除す
る(ステップS23)。
【0040】この様に図7で示したアルゴリズムに従
い、プロセッサ上で実行される命令プログラムの全ての
命令が終了するまで繰り返し行う(ステップS24)。
【0041】次に、図6に示したトレース情報5がどの
ように処理されるかを詳細に説明する。この図6の例で
は、初めの7つの命令は、全て過去に実行された命令の
命令番地と一致しないためステップS12からステップ
S14に分岐し、更に全てbne命令でないためステッ
プS14からステップS20へ行くというパスを通る。
【0042】まだ、格納命令番地数が20以下であるた
め、ステップS22、ステップS24に移動し、更に全
ての命令を実行していないため、ステップS24によっ
て、ステップS11へ戻るループを通る。
【0043】次に実行される実行順序8の命令は、それ
までの命令同様にステップS14まで行くが、ここで実
行命令がbneであるため、ステップS14に移動す
る。ここで次に実行される実行順序9の命令の命令番地
を見るとbneと連続していないため、ステップS19
へ行くパスとなる。それ以降は先の命令と同じくステッ
プS22で保存命令番地数が20以下であるため、ステ
ップS24へ移動し、ステップS11へ戻るループとな
る。
【0044】実行順序10の命令は、ステップS22で
保存されている命令番地と一致とするためステップS1
3に分岐する。ステップS13では命令がbneではな
いのでステップS18へ行くパスとなる。そして、過去
に実行した命令番地を削除して、新しく保存命令番地の
最後に追加する。実行順序10の命令も同様である。
【0045】実行順序11の命令も、ステップS12で
保存されている命令番地と一致するためステップS13
に分岐する。ここで、実行順序9,実行順序10の命令
と異なり、bne命令であるため、ステップS15に分
岐し、命令実行順序に変化があるか、ないかが調べられ
る。この場合、命令番地が連続しないため、命令実行順
序に変化有りとして、ステップS17へ行くパスとな
る。それ以降のパスは先の実行順序10と同じである。
【0046】実行順序12,13はそれぞれ、実行順序
9と同じパスを通る。また、実行順序14の命令も、実
行順序11の命令同様、ステップS15まで移動する。
ここで、次に実行される命令の命令番地を比較すると、
実行順序11と異なり、連続していることが分かる。こ
のため、ステップS18へ行くパスとなる。これ以降
は、実行順序11と同じである。
【0047】実行順序15の命令は、初めて実行される
命令であるため、ステップ12からステップS14へ進
み、ここでbneでないため、ステップS20へ移動す
るパスとなり、ステップS22,ステップS24を通る
ループとなる。実行順序16の命令も実行順序15と同
様である。
【0048】実行順序16を終了したところでステップ
S24により対象命令をすべて終了したかを見ると、次
に実行される命令が存在しないため、全て終了したこと
が分かり、このアルゴリズムによる、ストール情報検出
部の作業が終了(ステップS25)する。
【0049】以上により、トレース情報にストール情報
を付加する作業が終了し、その出力結果をまとめると、
図8に示す命令プログラムとその各命令の状態が対応付
けられた情報11を得ることができる。
【0050】パワー算出部15で、この図8に示す情報
11から、実行された命令と、その命令がキャッシュか
ら読み込まれたのか、それともメモリから読み込まれた
のか、また、命令実行順序を変更したか、しないかとい
う情報と、それに対応する、予め求めて用意した図4に
示した消費電力ライブラリデータ13を参照して、それ
ぞれの命令の消費電力値を例えば、load命令のメモ
リアクセス状況ならば、1500mWであるように求め
て、まとめて図9のような情報を求める。
【0051】この結果を用いて、それぞれの命令の消費
電力値を足し合わせることによって、最終的に対象とす
る命令プログラム全体の消費電力値17を得ることがで
きる。図9では、命令プログラムの合計は、20200
mWであることを示した。また、この命令プログラムの
平均消費電力量は、命令全体のプログラムの合計消費電
力を命令の数で除算することにより求めることが出来
る。本実施形態の場合には命令数が18なので、約11
22.2mWとなる。
【0052】このような命令レベルのパワーシミュレー
ション装置を用いることによって、高精度なシミュレー
ション結果を得ることができる。また、このシミュレー
ションにかかる実行時間も高速であるため、同一の作業
を実現するために複数のプログラムを作成して、その中
から最適なものを選び出したり、シミュレーションしな
がら、プログラムに修正を加えたりということが容易に
可能になる。
【0053】第2の実施形態 図10は、本実施形態のパワーシミュレーション装置を
示すブロック図である。このパワーシミュレーション装
置は、トレース情報を含むプログラム列5を入力し、実
行プログラムのストール情報11を検出するストール情
報検出部9と、ストール情報検出部9にて検出されたス
トール情報11を用い、ストール情報を考慮した消費電
力ライブラリ13から実行プログラムの消費電力値であ
るパワー情報17を算出する消費電力算出部15とを備
えるものである。
【0054】ここで、トレース情報を含むプログラム列
5は、例えば、別のコンパイラ等で得られる場合があ
る。このような場合には、得られたトレース情報を含む
プログラム列を用いてストール情報を検出して消費電力
を求めるようにしてもよい。ストール検出部9やパワー
検出部15の動作は第1の実施形態と同様であるので、
その説明は省略する。
【0055】第3の実施形態 次に、本発明の第3の実施の形態について、図面を参照
しながら詳細に説明する。説明を簡単にするために、対
象とする実行プログラムを実行するコンピュータシステ
ムの構成を図11のようにする。このコンピュータシス
テムは、実行プログラムを実行するプロセッサ部19
と、所定の実行プログラムを保持するメモリ部23と、
所定の実行プログラムの一部を保持する命令キャッシュ
部21と、実行プログラムに用いるデータの一部を保持
するデータキャシュ部22とを備えるものである。
【0056】ここで、メモリ部23は、命令及びデータ
を保持するためのものであり、一般的には、低速、大容
量、安価であるということができる。また、命令キャッ
シュ部21及びデータキャッシュ部22は、メモリ部2
3より一般的には、高速、小容量、高価であるというこ
とができる。本実施形態では、以下の説明の便宜のた
め、命令キャッシュ部21は、同時に保持できる命令数
を20とし、オーバーフローが発生する場合、一番過去
に実現された命令から捨てられるとするアルゴリズムを
採用するものとする。
【0057】このプロセッサで実行できる命令を、基準
となるデータ番地(本実施形態は、一意的にDataStart
とし、レジスタ30(以下r30)とする)に記述され
た数値を加えたデータ番地中に含まれているデータを読
み込むload命令と、2つのレジスタ値を加算するa
dd命令と、2つのレジスタ値を乗算するmult命令
と、2つのレジスタ値が異なる限り指定した命令番地に
実行順序を変更するbne命令の4つとする。
【0058】なお、プロセッサ上で実行される全ての命
令は、初めはメモリに、ループ、分岐に関係なく、プロ
グラムとして与えられた順番で格納されており、その順
番は、連続した命令番地で与えられているとする。これ
らの命令は、一度実行されることによって、その実行さ
れた順番に命令キャッシュに格納されるとする。
【0059】実行命令をメモリから読み込む際には、そ
の読み込み速度を向上させるため、奇数番の命令番地を
持つ命令が実行された場合、その次の命令も実行確定前
に先読み込み開始がなされるとする。
【0060】但し、奇数番地の命令がbne命令のとき
に同時に読み込まれる命令は、命令番地が後続の命令と
する。このため、この場合、bne命令によって命令実
行順序が変更されると、先読みされた命令が読み込まれ
た後、再度新しい命令を読み込むこととする。
【0061】また、全ての命令において、その命令によ
って計算された値を指定レジスタへ書き込むのに1サイ
クル余分にかかるとし、add命令、mult命令は、
入力として使用する2つのレジスタの値が確定した後で
ないと実行できないこととする。更にmult命令に必
要な乗算器は1つしかないとし、mult命令を連続し
て実行する場合にのみ、余分に実行サイクルが必要とな
るとする。
【0062】つまり、これらの命令にストール(ここで
いうストールとは、一般にいわれるストールが発生する
状況として、(1)命令がメモリから読み込まれた場
合、(2)データがメモリから読み込まれる場合、
(3)先の命令の実行結果を入力として使用するad
d,mult命令、(4)bne命令が、メモリ読み込
みかつ奇数番地の時に、この命令によって命令実行順序
が変更になった場合、(5)mult命令を連続して実
行した場合の5つの場合のみが起こりうるとする。
【0063】本発明で使用する、これらの各命令の各状
態の全てについて消費される消費電力値を用意したライ
ブラリデータが図12から図16である。図12はlo
ad命令に関するライブラリデータの例を示す図であ
る。図示の如く、load命令の場合をメモリにアクセ
スした場合及び命令キャッシュからアクセスした場合の
それぞれについて、ロードされるデータがメモリからア
クセスする場合及びデータキャッシュからアクセスする
場合の計4つの消費電力値がライブラリデータとして用
意される。図13はadd命令に関するライブラリデー
タの例を示す図である。図示の如く、add命令の場合
をメモリにアクセスした場合及び命令キャッシュからア
クセスした場合のそれぞれについて、データ依存による
ストールがある場合とない場合の計4つの消費電力値が
ライブラリデータとして用意される。図14はbne令
に関するライブラリデータの例を示す図である。図示の
如く、bne命令の場合を命令メモリかつ命令実行順序
変更に伴うストール発生の場合、命令メモリアクセスの
場合、及び命令キャッシュアクセスの場合の計3つの消
費電力値がライブラリデータとして用意される。図15
はmult命令に関するライブラリデータの例を示す図
である。図示の如く、mult命令の場合をメモリにア
クセスした場合及び命令キャッシュからアクセスした場
合のそれぞれについて、リソースコンフリクトがある場
合とない場合の計4つの消費電力値、及び図16に示す
如くリソースコンフリクト発生に伴う増加消費電力補正
値がライブラリデータとして用意される。
【0064】これらのように、プロセッサがストールす
るか否かで命令毎に複数の消費電力値を用いて消費電力
を計算するようにしたため、より正確なパワーシミュレ
ーション結果を得ることが出来るのである。
【0065】このような、コンピュータシステム上で、
図17に示すプログラムを実行するときにかかる消費電
力値を本発明のシミュレータ方式によって求めるための
手順を第1の実施形態で用いた図1に従って説明する。
【0066】図17に示した対象プログラムの命令列1
を実際にデータを変化させ、一命令ずつ実行させて展開
しながら、これらの命令列がどのような順番(これ以
降、実行順序で示す)で実行され、かつその実行順序で
実行される命令がどのようなストールを発生しているか
を、対象とするプロセッサの動作情報7を参照すること
によって、ストール情報検出部9に検出し、ストール情
報が付加された命令実行情報11を求める。
【0067】この例では、命令番地9にあるbne命令
によってループが発生し、命令番地4から9までの命令
が2回繰り返し実行されるので、このプログラムの命令
実行回数は18命令に成ることを得ることが出来る。こ
のトレース情報を図18に示した。
【0068】ここで、図17に示した対象プログラム列
の各命令列の詳細の説明は省略するが、図19に示す如
く基準となるデータ番地r30に格納されたアドレスに
は5が、次のアドレスには1が、次のアドレスには3
が、といったように格納されているものとする。
【0069】図20は、本実施形態のストール情報検出
部9の動作を示したフローチャートである。このアルゴ
リズムでは、まず初期化を行い(S31)、対象とする
命令プログラムから、これから実行する命令を一つ読み
込み、その実行命令の種類と、命令番地を記憶する(S
32)。
【0070】次に、その実行すべき命令の命令番地が、
キャッシュに保存されている命令番地と等しいかを調べ
る(S33)。ここで、等しければその命令は命令キャ
ッシュから読み込まれて実行する事になるためフラグを
たる(Iflag=1)(S34)。等しくなければこ
の命令はメモリから読み込まれて実行することになるた
めフラグをおろす(Iflag=0)(S35)。この
後、実行される命令が何であるかを判断する(S3
6)。
【0071】実行される命令がmult命令の場合の処
理を図21に示す。まず、直前の命令がmult命令か
どうかを調べる(S371)。直前の命令がmult命
令の場合の場合は、リソースコンフリクトによるストー
ルが発生するので、そのストール発生回数を保持するた
めにカウンタ(A)を1増やす(S372)。
【0072】また、今回の命令で入力とするレジスタ
が、直前の命令によって決定するレジスタ(出力レジス
タ)と同じか否かを調べる(S373)。同じ場合は、
ストールが発生するためにフラグ(Sflag)をたて
る(Sflag=1)(S374)。
【0073】以上の検討の後、Iflag、Sflag
2つのフラグの組み合わせを考慮して(S375)、今
回の実行したmult命令の状態を考慮した4種類のカ
ウンタのうち対応するカウンタの回数を1増やす(S3
76,S377,S378,S379)。
【0074】次に、実行される命令がLoad命令の場
合の処理を図22に示す。まず、入力データが保存され
ているデータ番地を読み込み、データ読み込みグラフを
立てる(Dflag=1)(S381)。このデータ番
地がデータキャッシュに保存しているデータ番地と等し
いかを調べる(S382)。等しければ、そのデータが
既にデータキャッシュに保存されているので、データキ
ャッシュから読み込まれると認識し、フラブ(DDfl
ag)を立てる(DDflag=1)(S3821)。
データキャッシュに保存されているデータ番地と等しく
ない場合は、データがメモリから読み込まれることにな
るために、フラグ(DDflag)を下げて(DDfl
ag=0)、新たにこのデータをキャッシュに保存され
ていると認識する(S383)。そして、この要因と命
令がメモリ/キャッシュ読み込みか(S384,S38
5)という要因という2つの要因を考慮してLoad命
令用に用意された2*2=4種類のカウンタのうち対応
するカウンタの回数を1増やす(S386,S387,
S388,S389)。
【0075】次に、実行される命令がadd命令の場合
の処理を図23に示す。まず、今回の命令で入力とする
レジスタが、直前の命令によって決定するレジスタ(出
力レジスタ)と同じかを調べる(S391)。同じ場所
は、ストールが発生するためにフラグ(Sflag)を
たてる(Sflag=1)(S392)。
【0076】以上の検討を行い、Iflag、Sfla
g2つのフラグの組み合わせを考慮して(S393)、
今回実行したadd命令の状態を考慮した4種類のカウ
ンタのうち対応するカウンタの回数を1増やす(S39
4,S395,S396,S397)。
【0077】次に、実行される命令がbne命令の場合
の処理を図24に示す。まず、命令がメモリ読み込みか
キャッシュ読み込みかどうかをチェックする(S40
1)。命令がメモリ読み込みの場合は、更にこの命令の
命令番地が奇数でかつ次に実行される命令の命令番地が
bneの命令番地と連続しているかを調べる(S40
2)。そして、以上の3つの場合について、用意された
3種類のカウンタのうち対応するカウンタの回数を1増
やす(S403,S404,S405)。
【0078】以上の様に実行する命令を、状態を考慮し
た実行に分類してそれぞれの実行回数に追加した後、命
令キャッシュ、データキャッシュに保持されるデータの
オーバーフローをチェックする。これについて、図20
を用いて説明する。
【0079】まず、今回の命令が命令キャッシュから読
み込まれたものか、メモリから読み込まれたものかを判
断する(S41)。命令キャッシュから読み込まれたも
のならば、過去に命令キャッシュに保存されていた方
の、命令番地データを削除する(S42)。一方、メモ
リ読み込みならば、今回実行した命令が新たに命令キャ
ッシュに保存されることを意味するので、保存している
命令番地の個数が20より多くなるかを調べ(S4
3)、多くなる場合は、最古の命令番地情報を削除する
(S44)。
【0080】次に、データを新たにレジスタに読み込ん
だかを調べる(S45)。データをレジスタに読み込ん
でいる場合、更にそのデータがメモリから読み込まれた
のか、データキャッシュから読み込まれたのかを判断す
る(S46)。
【0081】データキャッシュから読み込まれたものな
らば、過去にデータキャッシュに保存されていた方のデ
ータを削除する(S47)。一方、メモリ読み込みなら
ば、今回読み込んだデータが新たにデータキャッシュに
保存されることを意味するので、保存しているデータ番
地の個数が20より多くなるかを調べ(S48)、多く
なる場合は、最古のデータ番地情報を削除する(S4
9)。ここで、メモリからデータが読み込まれた場合
は、何も処理を行わずに次の処理へ進む。
【0082】そして、最後に実行プログラム中の全ての
命令について、このアルゴリズム処理を行ったかを調べ
(S50)、終了していなければ、フラグを初期化した
りプログラムカウンタ(N)を1増やしてから(S5
1)、再度、S3から繰り返し、終了していれば、本ア
ルゴリズムを終了させる。
【0083】次に、本実施形態の具体例として、図18
のプログラムを実行した場合で説明する。この例では、
初めにプログラムを解析するために、S31,S32と
いうルートを通り、S33で命令番地1の命令load
を認識する。この命令はキャッシュに保存されていない
命令番地のため、S35を通り、S36で実行される命
令の認識がされる。ここで、loadなので、S381
へ進み、入力データ番地にあるデータが既にデータキャ
ッシュにあるかを調べる(S382)。このload命
令ではNOであるため、フラグ(DDflag)をメモ
リ読み込みにし(S383)、命令がメモリ読み込みの
ため、S385からS389を通ってS41へ進む。S
41で命令がメモリ読み込みのため、S43に進み、ま
だ命令キャッシュに保持されている命令総数が20のた
めS45に直接移る。S45では使用データを新たにレ
ジスタへ読み込んでいるため、S46に進み、さらにそ
のデータがメモリ読み込みのためS48に進む。ここで
データキャッシュに保持されているデータ数が20以下
であるためS50へ進む。そしてまだ、最後の命令まで
実行していないため、S51を通って再度S32へ戻っ
て次の命令の処理に入る。
【0084】実行順序2の命令もメモリ読み込みのlo
ad命令であるため、命令番地1のload命令と同じ
くS382まで進む。ここで、読み込んでいるデータが
既にキャッシュに読み込まれているデータであるため、
S384へ進み、命令はメモリからの読み込みになるた
めS387を通って、S41へ進む。S46までは命令
番地1と同じパスを通るが、S46からS47に分岐
し、S50,S51を通って、S32に戻る。
【0085】実行順序3,4の命令は、実行順序1のl
oadと同じパスを通って処理される。
【0086】実行順序5の命令はメモリ読み込みのad
d命令であるため、S36までは実行順序1の命令と同
じルートを通るが、ここからS39へ分岐する。直前の
命令によって出力されるレジスタの値を入力データとし
ているため、S392を通ってS393に進みここで、
S394に振り分けられる。S41からS43を通っ
て、S45に進む。この命令はレジスタにデータを読み
込んでいないため、すぐにS50へ飛び、S51を経
て、S32に戻る。
【0087】実行順序6の命令はメモリ読み込みのmu
lt命令であるため、S36からS37へ振り分けられ
る。この命令では、直前の命令がmult命令ではない
ため、S373に飛ぶ。S373では、この命令が入力
とするレジスタが直前の命令の出力レジスタであるた
め、S374を通ってS375に進む、ここで、S37
7に振り分けられ、S378以降は、実行順序5の命令
と同じルートを通ってS32に戻る。
【0088】実行順序7の命令も実行順序6の命令同
様、メモリ読み込みのmult命令であるため、S37
1までは同じルートを通るが、今回は、直前の命令がm
ult命令であったため、S372を経てS373に進
む。ここで入力レジスタは直前の出力レジスタではない
ため、S375に飛び、S378に振り分けられる。S
378以降は、実行順序6の命令と同じルートを通る。
【0089】実行順序8の命令はメモリ読み込みのad
d命令であるため、実行順序5の命令と同じく、S39
1まで進む、この命令の入力レジスタは直前の出力レジ
スタでないため、S393に飛び、S395に振り分け
られS41へ進む。これ以降は、実行順序6の命令と同
じルートを通る。
【0090】実行順序9の命令はメモリ読み込みのbn
e命令であり、実行命令1と同じくS395まで進む
が、S36からS401へ分岐する。この命令はメモリ
読み込みのためS402に進み、この命令の実行順序が
奇数で、かつこの命令の次に実行される命令の命令番地
とは連続していないため、S404に振り分けられて、
S405へ進む。これ以降は、実行順序6の命令と同じ
ルートを通る。
【0091】実行順序10の命令は、再度命令番地4の
load命令であるため、S33での分岐では命令が命
令キャッシュに保存されているためS34を通ってS3
6にいく。S36からS382まで、実行順序4の命令
と同じルートを通るが、S382にて、使用データが既
にデータキャッシュに保存されているため、S384に
進み、S384に振り分けられて、S41へ進む。S4
1がyesなのでS42を通ってS45に進み、以降
は、実行順序2の命令と同じルートを通る。
【0092】実行順序11の命令も実行順序10の命令
同様、一度実行された命令であるため、S36まで実行
順序10の命令と同じルートを通る。S36でこの命令
がaddであるため、S391に振り分けられ、実行順
序5の命令と同じく、S392を通ってS393に進
む。ここで命令キャッシュ読み込みかつ、データ依存ス
トールありであるため、S396に振り分けられ、S4
1に進む。これ以降は、実行順序10と同じルートを通
る。
【0093】実行順序12の命令もS36まで実行順序
10の命令と同じルートを通る。mult命令であるた
め、S36でS371に振り分けられ、S375まで実
行順序6の命令と同じルートを通る。S375で命令キ
ャッシュ読み込みかつデータ依存ストール有りのためS
23に振り分けられてS41へ進む。S41以降は実行
順序10と同じルートを通る。
【0094】実行順序13の命令もまたS371まで実
行順序12の命令と同じルートを通る。S401からS
375までは実行順序7の命令と同じルートを通るが、
命令キャッシュ読み込みかつデータ依存ストールなしで
あるためS377に振り分けられて、S41に進む。こ
れ以降は、実行順序10と同じルートを通る。
【0095】実行順序14の命令はS391まで実行順
序11の命令と同じルートを通る。ここから実行順序8
の命令と同じく、S393に飛び、命令キャッシュ読み
込みかつデータ依存ストールなしであるためS397を
通ってS41に進み、以降は実行順序10と同じルート
を通る。
【0096】実行順序15の命令もS36まで実行順序
10の命令と同じルートを通る。ここで、bne命令で
あるため、S401に進み、命令キャッシュ読み込みの
ため、S405を通ってS41にいく。これ以降は実行
順序10と同じである。
【0097】実行順序16の命令は、実行順序2の命令
と同じルートを通る。
【0098】実行順序17の命令は、実行順序9の命令
と同じルートを通ってS402まで進むが、この命令の
次に実行される命令の命令番地は、連続しているため、
S403を通ってS41へ進む。それ以降は実行順序9
と同じルートを通る。
【0099】実行順序18の命令は、実行順序6の命令
と同じルートを通り、S50まで進む。ここで、この命
令がプログラム中の最後の命令であるため、アルゴリズ
ムを終了する。
【0100】以上により、トレース情報にストール情報
を付加する作業が終了し、その出力結果をまとめると、
図25に示す命令プログラムとその各命令の状態が対応
付けられた情報を得ることができる。
【0101】パワー算出部で、この図25に示す情報か
ら、それぞれの命令の消費電力値を足し合わせることに
よって最終的に対象とする命令プログラム全体の消費電
力値を得ることができる。また、命令プログラム全体の
消費電力値を実行命令数で除算することにより1命令辺
りの平均消費電力値を得ることが出来る。このようにし
て本実施形態を実施することにより、消費電力見積もり
結果が得られる。
【0102】このように、本実施形態のパワーシミュレ
ーション装置では、各命令の実行が行われる場合の状態
を解析して消費電力値をシミュレーションにより求める
ようにしてある。これにより、さらに精度の高いシミュ
レーション結果を得ることが出来る。
【0103】なお、上述したパワーシミュレーションを
実現するためのプログラムは記録媒体に保存することが
できる。この記録媒体をコンピュータシステムによって
読み込ませ、前記プログラムを実行してコンピュータを
制御しながら上述したパワーシミュレーションを実現す
ることができる。ここで、前記記録媒体とは、メモリ装
置、磁気ディスク装置、光ディスク装置等、プログラム
を記録することができるような装置が含まれる。
【0104】
【発明の効果】以上説明してきたように、本発明に係る
パワーシミュレーション装置、パワーシミュレーション
方法、及びパワーシミュレーションプログラムを記録し
た機械読み取り可能は記録媒体によれば、各命令のスト
ール情報を考慮したシミュレーションを行うことによ
り、実行プログラムのトレース情報のみを用いてシミュ
レーションする方式より、はるかに高精度であり、ま
た、プロセッサ内部を考慮したシミュレーション方式に
より、はるかに高速なシミュレーション結果を得ること
ができる。
【0105】また、本発明により、プロセッサ上で実行
する命令プログラム作成時に、低消費電力を意識したプ
ロセッサをリアルタイムで比較検討しながら作成する事
ができるようになる。
【図面の簡単な説明】
【図1】第1及び第3の実施形態におけるパワーシミュ
レーション装置を示すブロック図である。
【図2】第1 の実施形態の説明で使用するプロセッサの
構成を示す図である。
【図3】本実施形態の説明で使用するプロセッサのパイ
プライン処理を示す図である。
【図4】本実施形態で使用するプロセッサのストールを
考慮した消費電力ライブラリデータ13を示す図であ
る。
【図5】第1 の実施形態で使用するパワーシミュレーシ
ョン対象のプロセッサへの入力プログラムの命令列1を
示す図である。
【図6】トレース部3によって求められた図5の入力プ
ログラムのトレース結果を示す図である。
【図7】第1 の実施形態で用いるストール情報検出アル
ゴリズムを示すフローチャートである。
【図8】図7に示すアルゴリズムによって得られたスト
ールを考慮したトレース情報を示す図である。
【図9】第1 の実施形態のストールを考慮したパワー情
報17を示す図である。
【図10】第2の実施形態におけるパワーシミュレーシ
ョン装置を示すブロック図である。
【図11】第3の実施形態で使用するプロセッサの構成
を示す図である。
【図12】Load命令の消費電力ライブラリデータ1
3を示す図である。
【図13】Add命令の消費電力ライブラリデータ13
を示す図である。
【図14】Bne命令の消費電力ライブラリデータ13
を示す図である。
【図15】Mult命令の消費電力ライブラリデータ1
3を示す図である。
【図16】Mult命令に関する消費電力ライブラリデ
ータ13を示す図である。
【図17】第3の実施形態で使用するパワーシミュレー
ション対象のプログラムへの入力プログラムの命令列1
を示す図である。
【図18】トレース部3によって求められた図17の入
力プログラムのトレース結果を示す図である。
【図19】第3の実施形態で使用するデータ配置を示す
図である。
【図20】第3の実施形態で用いるスドル情報検出アル
ゴリズムを示すフローチャートである。
【図21】Mult命令に関する処理ステップS37の
アルゴリズムを示すフローチャートである。
【図22】Load命令に関する処理ステップS38の
アルゴリズムを示すフローチャートである。
【図23】Add命令に関する処理ステップS39のア
ルゴリズムを示すフローチャートである。
【図24】Bne命令に関する処理ステップS40のア
ルゴリズムを示すフローチャートである。
【図25】第3の実施形態のストールを考慮したパワー
情報17を示す図である。
【図26】第1の従来例における高速なパワーシミュレ
ーション装置を示すブロック図である。
【図27】第2の従来例における高精度なパワーシミュ
レーション装置を示すブロック図である。
【符号の説明】
1 命令列 3 トレース部 5 トレース情報 7 マイクロプロセッサの動作情報 9 ストール情報検出部 11 ストール情報を含むトレース情報 13 ストールを考慮した消費電力ライブラリ 15,27 パワー算出部 17 ストールを考慮したパワー情報 19 プロセッサ部 21 命令キャッシュ部 22 データキャッシュ部 23 メモリ部 25 一命令当りの消費電力ライブラリ 29 パワー情報 31 信号変換部 33 ゲートレベル用入力信号値 35 ゲートレベルシミュレータ 37 高精度パワー情報
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 Vivek Tiwari、外2名, Power Analysis of Embedded Software: A First Step Towa rds Software Power Minimization,Proc eedings of the 8th International Sym posium on System S ynthesis,IEEE,p.110 −115 (58)調査した分野(Int.Cl.7,DB名) G06F 17/50 666 G06F 17/50 664 JICSTファイル(JOIS) INSPECファイル(JOIS)

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 プロセッサ上で実行される実行プログラ
    ムに含まれる命令が実行された時の消費電力値をシミュ
    レーションにより求めるパワーシミュレーション装置に
    おいて、 前記プロセッサがストールするか否かで前記命令毎に少
    なくとも2つの消費電力値を記憶する手段と、 その複数の消費電力値を用いて前記プロセッサの消費電
    力値を計算する手段と、 を有することを特徴とするパワーシミュレーション装
    置。
  2. 【請求項2】 プロセッサ上で実行される実行プログラ
    ムが実行された時の消費電力値をシミュレーションによ
    り求めるパワーシミュレーション装置において、 前記実行プログラムを入力し、その実行プログラムのト
    レース情報を生成するトレース手段と、 このトレース手段で生成されたトレース情報を入力し、
    前記実行プログラムのストール情報を検出するストール
    情報検出手段と、 このストール情報検出手段にて検出されたストール情報
    を用い、ストール情報を考慮した消費電力ライブラリか
    ら前記実行プログラムの消費電力値を算出する消費電力
    算出手段と、 を具備することを特徴とするパワーシミュレーション装
    置。
  3. 【請求項3】 所定の実行プログラムを実行するプロセ
    ッサ部と、 前記所定の実行プログラムを保持するメモリ部と、 前記所定の実行プログラムの一部を保持する命令キャッ
    シュ部と、 を備えたコンピュータシステムにおける消費電力値をシ
    ミュレーションにより求めるパワーシミュレーション装
    置において、 前記実行プログラムを入力し、その実行プログラムのト
    レース情報を生成するトレース手段と、 このトレース手段で生成されたトレース情報を入力し、
    前記実行プログラムが前記メモリ部若しくは命令キャッ
    シュ部のいずれに保持されるかの情報を含むストール情
    報を検出するストール情報検出手段と、 このストール情報検出手段にて検出されたストール情報
    を用い、メモリ部に保持される場合の消費電力及び命令
    キャッシュ部に保持されている場合の消費電力を含むス
    トール情報を考慮した消費電力ライブラリから前記実行
    プログラムの消費電力値を算出する消費電力算出手段
    と、 を具備することを特徴とするパワーシミュレーション装
    置。
  4. 【請求項4】 プロセッサ上で実行される実行プログラ
    ムに含まれる命令が実行された時の消費電力値につい
    て、コンピュータによるシミュレーションにて求めるパ
    ワーシミュレーション方法において、 コンピュータに、前記プロセッサがストールするか否か
    で前記命令毎に少なくとも2つの消費電力値を記憶する
    ステップと、 コンピュータ、その複数の消費電力値を用いて前記プ
    ロセッサの消費電力値を計算するステップと、 を有することを特徴とするパワーシミュレーション方
    法。
  5. 【請求項5】 プロセッサ上で実行される実行プログラ
    ムに含まれる命令が実行された時の消費電力値をシミュ
    レーションにより求めるパワーシミュレーションプログ
    ラムを記憶した機械読み取り可能な記録媒体において、 コンピュータに、前記プロセッサがストールするか否か
    で前記命令毎に少なくとも2つの消費電力値を記憶させ
    るステップと、 コンピュータに、その複数の消費電力値を用いて前記プ
    ロセッサの消費電力値を計算させるステップと、 を実行させるためのパワーシミュレーションプログラム
    を記録した機械読み取り可能な記録媒体。
JP28237897A 1997-01-08 1997-10-15 パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体 Expired - Fee Related JP3351725B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP28237897A JP3351725B2 (ja) 1997-01-08 1997-10-15 パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体
US09/003,123 US6096089A (en) 1997-01-08 1998-01-06 Power simulation system, power simulation method and computer-readable recording medium for recording power simulation program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9-1683 1997-01-08
JP168397 1997-01-08
JP28237897A JP3351725B2 (ja) 1997-01-08 1997-10-15 パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体

Publications (2)

Publication Number Publication Date
JPH10254944A JPH10254944A (ja) 1998-09-25
JP3351725B2 true JP3351725B2 (ja) 2002-12-03

Family

ID=26334956

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28237897A Expired - Fee Related JP3351725B2 (ja) 1997-01-08 1997-10-15 パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体

Country Status (2)

Country Link
US (1) US6096089A (ja)
JP (1) JP3351725B2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11232147A (ja) 1998-02-16 1999-08-27 Toshiba Corp パワーエスティメーション装置、パワーエスティメーション方法、及びパワーエスティメーションプログラムを記録した機械読み取り可能な記録媒体
US6865526B1 (en) * 2000-01-24 2005-03-08 University Of California-Riverside Method for core-based system-level power modeling using object-oriented techniques
JP3877518B2 (ja) * 2000-12-13 2007-02-07 松下電器産業株式会社 プロセッサの電力制御装置
US6952664B1 (en) * 2001-04-13 2005-10-04 Oracle International Corp. System and method for predicting cache performance
US20020194511A1 (en) * 2001-06-18 2002-12-19 Swoboda Gary L. Apparatus and method for central processing unit power measurement in a digital signal processor
US6820222B2 (en) * 2001-08-08 2004-11-16 Texas Instruments Incorporated Apparatus and method for processor power measurement in a digital signal processor using trace data and simulation techniques
US6775787B2 (en) 2002-01-02 2004-08-10 Intel Corporation Instruction scheduling based on power estimation
US7330954B2 (en) * 2002-04-18 2008-02-12 Intel Corporation Storing information in one of at least two storage devices based on a storage parameter and an attribute of the storage devices
JP4469576B2 (ja) * 2003-08-19 2010-05-26 株式会社東芝 トレースデータ処理装置、トレースデータ処理方法およびトレースデータ処理プログラム
JP4289277B2 (ja) * 2004-10-26 2009-07-01 日本電気株式会社 電子装置、コンピュータ、冷却制御方法、および、冷却制御プログラム
WO2007066058A1 (en) * 2005-12-06 2007-06-14 Arm Limited Energy management
US20090210750A1 (en) * 2008-02-19 2009-08-20 Sas Institute Inc. Systems And Methods For Identifying Memory Leaks In A Computer System
US20090252845A1 (en) * 2008-04-03 2009-10-08 Southwick Kenneth J Collider chamber apparatus and method of use
US8566796B2 (en) * 2008-04-04 2013-10-22 Sas Institute Inc. Systems and methods for interactions with software probes
JP5299161B2 (ja) * 2008-08-22 2013-09-25 富士通株式会社 計算機装置および消費電力のサンプリング方法
US20100187320A1 (en) * 2009-01-29 2010-07-29 Southwick Kenneth J Methods and systems for recovering and redistributing heat
US8276020B2 (en) * 2009-03-18 2012-09-25 Sas Institute Inc. Systems and methods for automated determination of error handling
US7904754B2 (en) * 2009-03-18 2011-03-08 Sas Institute Inc. Systems and methods for automated determination of out of memory handling
US8661536B2 (en) * 2010-03-17 2014-02-25 Microsoft Corporation Side channel attack analysis
WO2012001779A1 (ja) * 2010-06-30 2012-01-05 富士通株式会社 情報処理装置の使用量解析方法、情報処理システム及びそのプログラム
JPWO2012046344A1 (ja) * 2010-10-08 2014-02-24 富士通株式会社 プログラム、ライブラリ作成装置、及び消費電力計算装置
CN103154890B (zh) * 2010-10-12 2016-04-13 富士通株式会社 模拟装置、方法以及程序
CN102221988B (zh) * 2011-05-23 2013-10-30 北京工商大学 一种快速的指令级处理器能耗估算方法
JP5961971B2 (ja) * 2011-10-12 2016-08-03 富士通株式会社 シミュレーション装置,方法,およびプログラム
US8904208B2 (en) * 2011-11-04 2014-12-02 International Business Machines Corporation Run-time task-level dynamic energy management
EP2811407A4 (en) * 2012-01-31 2015-09-30 Nec Corp INFORMATION PROCESSING DEVICE AND ELECTRICITY CALCULATION METHOD FOR THE INFORMATION PROCESSING DEVICE
JP5854924B2 (ja) * 2012-05-17 2016-02-09 三菱電機株式会社 消費電力推定装置、電子機器、消費電力推定方法、及びプログラム
JP6075157B2 (ja) * 2013-03-28 2017-02-08 富士通株式会社 算出方法、算出プログラム、および算出装置
JP6064765B2 (ja) * 2013-04-18 2017-01-25 富士通株式会社 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
JP6146197B2 (ja) * 2013-08-07 2017-06-14 株式会社ソシオネクスト 設計支援方法、設計支援プログラム、および設計支援装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666537A (en) * 1994-08-12 1997-09-09 Intel Corporation Power down scheme for idle processor components
US5557557A (en) * 1994-10-04 1996-09-17 Texas Instruments Incorporated Processor power profiler
US5515302A (en) * 1994-11-07 1996-05-07 Motorola, Inc. Method for identifying excessive power consumption sites within a circuit
US5719800A (en) * 1995-06-30 1998-02-17 Intel Corporation Performance throttling to reduce IC power consumption
JP3494813B2 (ja) * 1996-07-19 2004-02-09 株式会社東芝 マイクロプロセッサの消費電力見積もり方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Vivek Tiwari、外2名,Power Analysis of Embedded Software: A First Step Towards Software Power Minimization,Proceedings of the 8th International Symposium on System Synthesis,IEEE,p.110−115

Also Published As

Publication number Publication date
JPH10254944A (ja) 1998-09-25
US6096089A (en) 2000-08-01

Similar Documents

Publication Publication Date Title
JP3351725B2 (ja) パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体
US6059835A (en) Performance evaluation of processor operation using trace pre-processing
US6205555B1 (en) Processor power consumption estimating system, processor power consumption estimating method, and storage medium storing program for executing the processor power consumption estimating method
US5860151A (en) Data cache fast address calculation system and method
KR102161192B1 (ko) 코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치
JP2007531164A (ja) データスペキュレーションの明示的ソフトウェア制御のための方法及び構造
JP2001142927A (ja) 半導体集積回路装置の設計方法,回路の消費電力解析方法及び消費電力解析装置
JP2016536665A (ja) 推論的ベクトル演算の実行を制御するためのデータ処理装置及び方法
US20200192994A1 (en) Performance modeling and analysis of microprocessors using dependency graphs
JP2007532990A (ja) ヘルパーサブスレッドを含むスレッドの実行の明示的ソフトウェア制御のための方法及び構造
US20160196156A1 (en) Simulation apparatus, simulation method, and computer product
JP3274036B2 (ja) プロセッサの動作モデルと論理検証用試験命令列の自動生成方法及び装置
KR20100039121A (ko) 프로세서 및 그 명령어 번들 복원 방법
JP2009075965A (ja) ソフトウェア開発方法及びソフトウェア開発装置
JP2007094986A (ja) シミュレーション装置およびシミュレーション方法
US20160011889A1 (en) Simulation method and storage medium
Sazeides Modeling value speculation
JP2663893B2 (ja) アーキテクチャ・シミュレータ
JPH11161692A (ja) 消費電力のシミュレーション方法
US11144428B2 (en) Efficient calculation of performance data for a computer
US9519567B2 (en) Device, method of generating performance evaluation program, and recording medium
US6430682B1 (en) Reliable branch predictions for real-time applications
JP2994280B2 (ja) 計算機システムの性能評価方法
US20100077145A1 (en) Method and system for parallel execution of memory instructions in an in-order processor
JP6187264B2 (ja) 計算方法、計算プログラム、および計算装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070920

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080920

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080920

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090920

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090920

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100920

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110920

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees