JPH11161692A - 消費電力のシミュレーション方法 - Google Patents

消費電力のシミュレーション方法

Info

Publication number
JPH11161692A
JPH11161692A JP32773997A JP32773997A JPH11161692A JP H11161692 A JPH11161692 A JP H11161692A JP 32773997 A JP32773997 A JP 32773997A JP 32773997 A JP32773997 A JP 32773997A JP H11161692 A JPH11161692 A JP H11161692A
Authority
JP
Japan
Prior art keywords
power consumption
instruction
cycle
value
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP32773997A
Other languages
English (en)
Inventor
Hiroshi Mizuno
洋 水野
Yoichiro Mae
洋一郎 前
Isao Kawamoto
功 河本
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP32773997A priority Critical patent/JPH11161692A/ja
Publication of JPH11161692A publication Critical patent/JPH11161692A/ja
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 プロセッサコアやメガセルコア再利用による
大規模半導体集積回路設計時に、その半導体集積回路の
消費電力を高速に見積もる。 【解決手段】 プロセッサ部の実行処理をシミュレート
し、予め求められているプロセッサ部の消費電力情報よ
りプロセッサ部で消費される電力を計算する1802
と、機能ブロックの動作をシミュレートし、動作レベル
の機能ブロックのその一部の入力ピン又は出力ピンの状
態毎の消費電力情報より消費電力を求める1803と、
論理ゲート毎の消費電力情報と論理ゲートの出力のトグ
ル回数より消費電力を求める1804と、各ブロックの
消費電力を集計し出力する1805とを備え、プロセッ
サにてシミュレートするプログラムコードが終了するま
で、1802から1805を繰り返し回路全体で消費さ
れる電力を計算することを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、計算機を用いた半
導体集積回路の消費電力のシミュレーション方法に関
し、特に、プロセッサコアやメガセルコアと呼ばれる既
に設計されたコアライブラリを再利用し、集積して大規
模な半導体集積回路を設計する時に、その半導体集積回
路の回路動作を模擬すると共に、その消費電力を高速に
見積もるシミュレーション方法を提供するものである。
【0002】
【従来の技術】従来、計算機を用いた半導体集積回路の
消費電力のシミュレーション方法としては、回路レベル
やゲートレベルのものが用いられてきた。
【0003】回路レベルの消費電力のシミュレーション
では、対象の半導体集積回路のトランジスタレベルのネ
ットリストを、SPICE等の回路レベルのシミュレー
ション方法により解析し、その結果の電圧値と電流値と
より電力を算出するものである。
【0004】また、ゲートレベルの消費電力のシミュレ
ーション方法としては、特許公報第2518553号、
特開平2−171861号、特開平3−127180
号、等に開示されている。これらで開示されている方法
は、シミュレーション対象回路中に含まれる回路の構成
要素に対して、予め、前記の回路レベルの消費電力シミ
ュレーション方法により、回路中のゲートの入力/出力
や、ネット等のノードの信号変化あたりの消費電力を求
めておく。そして、対象の半導体集積回路のゲートレベ
ルの論理シミュレーションを行ない、回路中のゲートの
入力/出力や、ネット等のノードの信号変化を求め、そ
の信号変化と前記の予め求めた信号変化あたりの消費電
力とから、回路全体の消費電力を算出するものである。
【0005】これら従来の消費電力のシミュレーション
方法は、半導体集積回路の設計工程において、ゲートレ
ベル、又はトランジスタレベルの設計を行なう時点で利
用できるものである。
【0006】
【発明が解決しようとする課題】しかしながら、近年、
半導体集積回路の設計においては、対象回路を全て新規
設計するのではなく、プロセッサコアやメガセルコアと
呼ばれる過去に一度以上設計した設計データを再利用可
能なコアライブラリ化し、それらを再利用、集積して大
規模な半導体集積回路を設計するコアベース設計又はI
P(IntellectualProperty)ベース設計と呼ばれる設計
が行なわれる様になってきた。このコアベース設計で
は、複数のコアライブラリを組み合わせて所望の速度、
面積、消費電力の仕様を持つ半導体集積回路を実現でき
るかを設計早期に見積もる必要があるが、前記従来のゲ
ートレベルや回路レベルの消費電力のシミュレーション
方法では、設計がゲートレベルや回路レベルまで進んで
からでないと消費電力を見積もれないという問題点を有
している。
【0007】また、近年の半導体集積回路設計では、単
にハードウエアとしてコアライブラリを組み合わせるの
ではなく、必要な機能をプロセッサコア上のソフトウエ
アで実現した場合と、メガセルコアを利用したハードウ
エアで実現した場合とのトレードオフを行ないながら所
望の半導体集積回路を設計するハードウエア/ソフトウ
エア協調設計が必要になってきた。このハードウエア/
ソフトウエア協調設計においては、速度や面積はもちろ
ん、1チップ化においては消費電力を見積もることが重
要であるが、数多くのプロセッサコア、メガセルコア等
のコアライブラリの中から必要なコアライブラリを選択
し、ソフトウエアを含め、大規模な半導体集積回路に対
して、ゲートレベルや回路レベルで消費電力の見積もり
を行なうには膨大な計算時間が必要であるという問題点
を有している。
【0008】本発明は、かかる点に鑑みてなされたもの
であり、その目的は、プロセッサコアやメガセルコアと
呼ばれる既に設計されたコアライブラリを再利用し、集
積して大規模な半導体集積回路を設計する時に、その半
導体集積回路の回路動作を模擬すると共に、その消費電
力を高速に見積もるシミュレーション方法を提供するこ
とにある。
【0009】
【課題を解決するための手段】前記の目的を達成するた
め、本発明は、予め、プロセッサの命令レベルの各命令
に対しては命令毎の消費電力情報を、動作レベルの機能
ブロックに対してはその一部の入力ピン又は出力ピンの
状態毎の消費電力情報又は実チップを備え、シミュレー
ション実行中又はシミュレーション実行後に、前記の消
費電力情報又は実チップよりシミュレーション対象の回
路全体で消費される電力を計算するものである。
【0010】具体的に請求項1の発明のシミュレーショ
ン方法は、プロセッサの命令動作を計算機中でシミュレ
ートする方法を対象とし、シミュレーション実行前に、
予め前記のプロセッサの命令セットに対して、各々の命
令が実行される時に消費される電力を求め、命令毎の消
費電力情報として記憶しておき、シミュレーション実行
時に、与えられたプログラムコードに対する命令動作を
シミュレートすると同時に、前記の命令毎の消費電力情
報より実行中の個々の命令に対応する消費電力を求め、
前記のプログラムコードに対する命令の実行履歴の消費
電力を求めることを特徴とする。
【0011】請求項1記載の発明では、シミュレーショ
ン実行前に、プロセッサの命令セットの個々の命令に対
して、回路レベル又はゲートレベルのシミュレーショ
ン、又は実際に試作した実チップの評価結果より各命令
が実行される時に消費される電力を求め命令毎の消費電
力情報に格納しておく。この処理は、命令セット中の命
令個数分の処理を行なえば良いので、回路レベルやゲー
トレベルのシミュレーションを用いても現実的な時間内
に計算することが可能である。また、プロセッサの内部
では、実行される命令がデコードされ、そのデコード結
果によりその命令実行に必要なブロックのハードウエア
が動作し、動作したハードウエアに対して電力が消費さ
れるため、命令毎に消費電力を求めておく事により実行
時の命令毎の消費電力を模擬できる。そして、シミュレ
ーション実行中に与えられたプログラムコードに対する
命令動作をシミュレートすると共に、実行された命令に
対応する消費出力の値を消費電力情報から検索し、一定
時間毎に集計していくことにより、与えられたプログラ
ムコードで動作する時にプロセッサ部が消費する電力の
時間遷移を求める。ここで、プログラムコードに従って
実行されるサイクル数は通常数千、数百万サイクル以上
の膨大なサイクル数になるが、命令毎の消費電力情報は
計算機中では表形式等で保持することにより簡単に検索
することが可能であり、また一定時間毎の消費電力を計
算する場合も簡単な積算及び平均計算等により、高速に
行なうことが可能である。
【0012】請求項2記載の発明は、前記請求項1に記
載のシミュレーション方法において、前記のプロセッサ
がパイプライン処理構造を備えたものであり、前記の命
令毎の消費電力情報は、各々の命令に対して、各パイプ
ライン・ステージ別に消費される電力を記憶したもので
あり、シミュレーション実行時に、一サイクルで消費さ
れる電力を求める時に、当該一サイクルにシミュレート
している命令と、パイプライン処理構造上実際のハード
ウエア上では同時に実行される当該一サイクルの直前の
複数サイクルにシミュレートされた複数の命令との各命
令に対して、前記の命令毎の消費電力情報より、対応す
るパイプライン・ステージの消費電力を求め合計するこ
とにより、一サイクルで消費される電力を求め、前記の
一サイクルで消費される電力の計算を、前記のプログラ
ムコードの命令の実行履歴に対して連続に行なうことを
特徴とする。
【0013】請求項3記載の発明は、請求項1に記載の
シミュレーション方法において、前記のプロセッサがス
ーパースケーラ処理構造を備えたものであり、シミュレ
ーション実行時に、一サイクルで消費される電力を求め
る時に、前記のプロセッサに備えられたスーパースケー
ラ処理構造を考慮し、当該一サイクルで同時に実行され
ると予測される複数の命令を前記のプログラムコードか
ら求め、前記の当該一サイクルで同時に実行される複数
の命令の各命令に対して、前記の命令毎の消費電力情報
より消費電力を求め合計することにより、一サイクルで
消費される電力を求め、前記の一サイクルで消費される
電力の計算を、前記のプログラムコードに対して連続に
行なうことを特徴とする。
【0014】請求項4記載の発明は、請求項1に記載の
シミュレーション方法において、前記の命令毎の消費電
力情報が、一部の命令に対しては、当該命令のオペラン
ドを引数に含む関数により表現されており、シミュレー
ション実行時に、前記の一部の命令の消費電力を求める
場合には、当該命令の前記の関数に当該命令のオペラン
ドを与えて消費電力を求めることを特徴とする。
【0015】請求項5記載の発明は、プロセッサ部と、
論理回路部とから成る回路の動作をシミュレートする協
調シミュレーションを対象とし、プロセッサ部に対して
は、請求項1、請求項2、請求項3、又は請求項4に記
載のシミュレーション方法により、プロセッサ部の消費
電力を計算し、論理回路部に対しては、回路内部の動作
をシミュレートすると同時に、回路内部のノードの信号
変化を元に、論理回路部の消費電力を計算し、前記のプ
ロセッサ部の消費電力と、前記の論理回路部の消費電力
とから、全体の回路の消費電力を求めることを特徴とす
る。
【0016】請求項6記載の発明は、1個以上の動作レ
ベルの機能ブロックを含む回路の動作を計算機中でシミ
ュレートする方法を対象とし、シミュレーション実行前
に、前記の動作レベルの機能ブロックの各々について、
当該機能ブロックの特定の1個以上の入力ピン又は出力
ピンを電力モードピンとし、電力モードピンの取り得る
状態毎に、当該機能ブロックが一サイクルに消費する電
力を求め、電力モードピン状態毎の消費電力情報として
記憶しておき、シミュレーション実行時に、前記の回路
の動作をシミュレートすると同時に、一サイクル毎に、
前記の動作レベルの機能ブロックの各々に対して、当該
機能ブロックの当該サイクルでの電力モードピンの状態
より、前記の電力モードピン状態毎の消費電力情報より
当該機能ブロックの消費する電力を求め合計することに
より、前記の回路で消費される電力を求めることを特徴
とする。
【0017】請求項6記載の発明では、シミュレーショ
ン実行前に、動作レベルの機能ブロックに対して、その
電力モードピンの取り得る状態毎に、その機能ブロック
が一サイクルに消費する電力を求め、電力モードピン状
態毎の消費電力情報として記憶しておく。ここで、電力
モードピンをその動作レベルの機能ブロックを実際に開
発し機能レベルやゲートレベルで実現した場合の内部構
造を考慮し、一サイクルで消費する電力値をその電力モ
ードピンの状態より区別できる1本以上のピンを電力モ
ードピンとして定義する。例えば、その機能ブロックが
複数のサブブロックから構成されそのピンの状態に応じ
て動作するサブブロックが決定されるピンを電力モード
ピンとする。これにより、その機能ブロックの電力モー
ドピンの状態を元にその機能ブロックの一サイクルの消
費電力を模擬できる。そして、シミュレーション実行時
に、回路の動作をシミュレートすると同時に、各サイク
ル毎に、電力モードピン状態毎の消費電力情報より対応
する機能ブロックの消費電力を求め、回路中の全ての機
能ブロックに対して消費電力の値を一定時間毎に集計し
ていくことにより、与えられたテストベクターで動作す
る時にそれらの機能ブロック部が消費する電力の時間遷
移を求める。ここで、実際のシミュレーションでは実行
されるサイクル数は通常数千、数百万サイクル以上の膨
大なサイクル数になる場合もあるが、電力モードピンの
状態毎の消費電力情報は計算機中では表形式等で保持す
ることにより簡単に検索することが可能であり、また一
定時間毎の消費電力を計算する場合も簡単な積算及び平
均計算等により、高速に行なうことが可能である。
【0018】請求項7記載の発明は、請求項6に記載の
シミュレーション方法において、前記の電力モードピン
状態毎の消費電力情報が、一部又は全部の動作レベルの
機能ブロックに対しては、前記の電力モードピンの取り
得る状態毎に、当該状態となった一サイクル直後の複数
サイクル分の各サイクル毎の消費電力の情報を持つもの
であり、シミュレーション実行時に、前記の複数サイク
ル分の各サイクル毎の消費電力を持つ機能ブロックに関
して、一サイクルにおける消費電力の計算を行なう場合
に、当該サイクルの電力モードピンの状態に加え、過去
の複数サイクルの電力モードピンの状態を元に、前記の
電力モードピン状態毎の消費電力情報から当該機能ブロ
ックが消費する電力を求めることを特徴とする。
【0019】請求項8記載の発明は、プロセッサ部と、
動作レベルの機能ブロックから成る動作レベル回路部
と、論理回路部とから成る回路の動作をシミュレートす
る協調シミュレーションを対象とし、プロセッサ部に対
しては、請求項1、請求項2、請求項3、又は請求項4
に記載のシミュレーション方法により、プロセッサ部の
消費電力を計算し、動作レベル回路部に対しては、請求
項6又は請求項7に記載のシミュレーション方法によ
り、動作レベル回路部の消費電力を計算し、論理回路部
に対しては、回路内部の動作をシミュレートすると同時
に、回路内部のノードの信号変化を元に、論理回路部の
消費電力値を計算し、前記のプロセッサ部の消費電力
と、前記の動作レベル回路部の消費電力と、前記の論理
回路部の消費電力とから、全体の回路の消費電力を求め
ることを特徴とする。
【0020】請求項9記載の発明は、回路中の1個以上
の部分回路に対して、個々の部分回路を実現した実チッ
プを備え、前記の回路の回路動作のシミュレーションを
行なう時に、前記の実チップを備えた部分回路の動作に
関しては、前記の実チップの入力ピンに入力値を与え、
その出力ピンの出力値を用いるシミュレーション方法を
対象とし、前記の実チップを備えた部分回路の0個以上
の第1のグループの部分回路に対しては、シミュレーシ
ョン実行時に、当該実チップで消費される電力を測定
し、シミュレーション対象の回路全体の条件を考慮した
補正処理を行ない当該部分ブロックの消費電力を求め、
前記の実チップを備えた部分回路で前記の第1のグルー
プ以外の第2のグループの部分回路に対しては、請求項
6又は請求項7に記載の方法で消費電力を求め、実チッ
プを備えていない回路部分に対しては、回路内部の動作
をシミュレートすると同時に、回路内部のノードの信号
変化を元に、論理回路部の消費電力を計算する方法か、
請求項1、請求項2、請求項3、請求項4、請求項5、
請求項6、請求項7、又は請求項8に記載のシミュレー
ション方法により消費電力を求め、前記の実チップ部を
備えた回路に対して求めた消費電力と、実チップを備え
ていない回路部分に対して求めた消費電力とから、全体
の回路の消費電力を求めることを特徴とする。
【0021】請求項10記載の発明は、請求項1、請求
項2、請求項3、請求項4、請求項5、請求項6、請求
項7、請求項8、又は請求項9に記載のシミュレーショ
ン方法において、シミュレーション実行中には、消費電
力計算に必要な情報を記憶装置に保存しておき、シミュ
レーション実行後に、前記の記憶装置に保存しておいた
消費電力計算に必要な情報を元に、当該シミュレーショ
ンで求めた回路動作時の回路の消費電力を求めることを
特徴とする。
【0022】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図を用いて説明する。
【0023】(第1の実施の形態)第1の実施の形態で
は、請求項1に係る発明について図を用いて説明する。
【0024】図1は請求項1に係る消費電力のシミュレ
ーション方法を詳細に示すフローチャートである。図1
において101は命令動作をシミュレートするプロセッ
サモデルに与えられるプログラムコードを記憶する記憶
手段および当該プロセッサモデルが持つレジスタ、メモ
リおよびプロセッサモデルのシミュレーションにより計
算される消費電力を記憶する記憶手段を初期化し、実行
サイクルを初期化する初期化処理である。102はシミ
ュレートするプロセッサモデルに与えるプログラムコー
ドを読み込み、シミュレーションを開始する命令の位置
とシミュレーションを終了する命令の位置を設定するプ
ログラムコード読み込み処理である。103は与えられ
たプログラムコードより、プロセッサモデルが現実行サ
イクルにおいて実行する命令を読み込む処理であり、1
04は読み込まれた命令のプロセッサ動作をシミュレー
トする実行処理であり、105は実行された命令と予め
求められている命令毎の消費電力情報より現実行サイク
ルで消費されている消費電力を計算し、実行されている
命令と計算された消費電力を現実行サイクルとともに記
憶する消費電力計算処理である。106は102により
設定されている終了命令位置によりシミュレートするべ
きプログラムコードが終了しているかを判定するプログ
ラムコード終了判定処理である。シミュレートするプロ
グラムコードが終了していない場合、107により現実
行サイクル数を1進めて、103に戻り次にシミュレー
トするべき命令が読み込まれる。シミュレートするプロ
グラムコードが終了している場合、108の消費電力出
力処理により、計算された消費電力値が出力される。
【0025】図2はシミュレートされるプロセッサの命
令セットの一例である。命令LDはアドレスにより指定
されるメモリ領域のデータからレジスタaまたはレジス
タbにデータを転送するデータ転送命令である。命令S
Tはレジスタaまたはレジスタbからアドレスにより指
定されるメモリ領域にデータを転送するデータ転送命令
である。命令MOVはソースで指定されるレジスタaま
たはレジスタbまたは定数値をデスティネーションで指
定されるレジスタaまたはレジスタbに代入する算術演
算命令である。命令ADDはソースで指定されるレジス
タaまたはレジスタbまたは定数値とデスティネーショ
ンで指定されるレジスタaまたはレジスタbとを加算
し、結果をデスティネーションで指定されているレジス
タに代入する算術演算命令である。命令MULはソース
で指定されるレジスタaまたはレジスタbまたは定数値
とデスティネーションで指定されるレジスタaまたはレ
ジスタbとを乗算し、結果をデスティネーションで指定
されるレジスタに代入する算術演算命令である。命令C
MPはソースで指定されるレジスタaまたはレジスタb
または定数値とデスティネーションで指定されるレジス
タaまたはレジスタbとを比較し、等しければ比較結果
フラグをセットし、等しくなければ比較結果フラグをリ
セットする比較命令である。命令BEQは、比較結果フ
ラグがセットされていれば、ラベルで指定されている命
令位置に処理をジャンプさせる条件分岐命令である。命
令JMPはラベルで指定されている命令位置に処理をジ
ャンプさせる無条件分岐命令である。命令RETIは割
り込み信号が入力された後に処理される割り込み処理か
ら、割り込み信号が入力される前に処理されていた命令
位置に処理を戻す割り込み処理復帰命令である。命令N
OPは何も処理を行わない。
【0026】図3はシミュレーションの対象となるプロ
セッサの命令毎の消費電力情報を含んだテーブルであ
る。図3において左側の項は実行する命令、右側の項は
命令を実行することにより消費される電力情報を表して
いる。消費電力値の単位はμW/MHzである。
【0027】図4はシミュレーションの対象となるプロ
セッサで実行するプログラムの一例である。図4におい
て一列が一命令を表しており、左からラベル、命令、デ
スティネーション、ソースの順番で記述されており、4
13、414、415、416、417の各命令に対し
てはラベルはつけられていない。
【0028】図31は第1の実施の形態に係るハードウ
エアの構成図の一例を示しており、図31において、3
101は処理されたあらゆる情報をみるためのディスプ
レイ装置、3102は設計者があらゆる情報や処理命令
を入力するためのキーボード、3103はあらゆる処理
を行う中央演算処理装置、3104は各情報を格納する
記憶装置である。
【0029】以下、第1の実施の形態に係る消費電力の
シミュレーション方法を図1のフローに基づきプログラ
ム401を実行した場合を例に用いて具体的に説明す
る。シミュレーションの対象となるプロセッサは201
の命令セットを備え、アクセス可能なアドレス空間のう
ちアドレス[A0]以後は周辺レジスタに割り当てられ
ているものとする。
【0030】101の初期化処理ではプログラムの実行
を行なうための初期化を行なう。本実施の形態では、ア
ドレス[A0]の値はシミュレーション開始時は値’
0’で、3サイクル目に値’1’に変化するように設定
され、命令の実行位置を示すレジスタは411の命令を
指す値に設定される。また、アドレス[80]の値は
値’2’に設定され、実行サイクルは1に設定される。
【0031】102のプログラム読み込み処理では、シ
ミュレートするべきプログラムを読み込み、記憶手段に
格納し、プログラムの実行が418に達した場合にプロ
グラムの実行を終了するように設定される。
【0032】103の命令読み込みでは、記憶手段から
命令の実行位置を示すレジスタの値を取り出し、次に実
行する命令の位置を求め、求めた位置から始まる命令コ
ードを読み込む。ここでは、命令の実行位置を示すレジ
スタは411を指す値に初期化されており、411の命
令”MOV reg_b 0”に対応するコードを読み込
む。
【0033】104の命令実行処理では、読み込んだ命
令を解釈し、命令の動作をシミュレートし、レジスタb
に0を代入し、命令の実行位置を示すレジスタの値を4
12を指す値に変更する。
【0034】105の消費電力計算処理では、消費電力
情報テーブル301から実行した命令”MOV”に対応
する列を選び、消費電力値30を算出し、当該一サイク
ルの消費電力値として実行命令”MOV”とともに記憶
する。
【0035】106のプログラム終了判定処理では、プ
ログラムの終了判定を行う。この場合、まだプログラム
の実行は終了位置に達していないため、107によりサ
イクルを1進め、103に戻り次の命令の実行サイクル
へと移る。
【0036】以下、110の処理を同様に繰り返し、プ
ログラムの実行動作をシミュレートしながら各サイクル
毎に消費電力値を随時記憶する。
【0037】2サイクル目では命令412を実行しレジ
スタaにアドレス[A0]の値0を読み込み、3サイク
ル目では命令413を実行しレジスタの値を比較して一
致しているため比較結果レジスタをセットし、4サイク
ル目では命令414を実行し比較結果レジスタがセット
されているためラベルLOOPで示される命令412へ
分岐する。5サイクル目では命令412を実行し3サイ
クル目に変化したアドレス[A0]の値’1’をレジス
タaに読み込み、6サイクル目では命令413を実行し
レジスタの値を比較して値が異なるため比較結果フラグ
をリセットする。7サイクル目では命令414を実行し
比較結果フラグがリセットされているため分岐せずに命
令415へ進み、8サイクル目では命令415を実行し
アドレス[80]の値2をレジスタbに読み込む。9サ
イクル目では命令416を実行しレジスタaの値1に値
1を加えてレジスタaに代入し、10サイクル目では命
令417を実行し、レジスタaの値2とレジスタbの値
2を乗算し、レジスタaに代入する。11サイクル目で
は命令418を実行しレジスタaの値4をアドレス[8
1]に書き出す。
【0038】プログラムの実行が418の命令まで進む
と、106でプログラムの終了判定により、命令実行を
終了し、108の消費電力出力処理により、記憶した各
サイクルでの消費電力値が出力される。
【0039】図5の501はプログラム401の実行を
シミュレートすることにより得られる結果である。50
2は命令実行サイクル、504は各命令実行サイクルで
の消費電力値である。503は各サイクル毎に実行され
ている命令を参考に記載している。
【0040】以上のように本発明の第1の実施の形態に
よれば、請求項1に係る発明である消費電力のシミュレ
ーション方法によって、シミュレーション実行前に、予
め求められている各々の命令が実行される時に消費され
る電力値を命令毎の消費電力情報として記憶しておき、
シミュレーション実行時に、与えられたプログラムコー
ドに対する命令動作をシミュレートすると同時に、命令
毎の消費電力情報より実行中の個々の命令に対応する消
費電力値を求め、シミュレートするプログラムにおいて
消費される消費電力値をサイクル毎に求めることがで
き、プロセッサ部が消費する電力の時間遷移を求めるこ
とができる。プログラムコードに従って実行されるサイ
クル数は通常数千、数百万サイクル以上の膨大なサイク
ル数になるが、命令毎の消費電力情報は計算機中では表
形式等で保持することにより簡単に検索することが可能
であるため、消費電力見積もりを高速に行なうことが可
能である。
【0041】なお、この例では各命令実行サイクル毎の
消費電力値のみを求めているが、算出された消費電力値
の総和を求めることによりプログラムの実行全体にかか
る消費電力値がわかり、消費電力値の総和にプロセッサ
の動作周波数を掛けシミュレーションにかかったサイク
ル数で割ることによりプログラム実行中の平均消費電力
が求まることは言うまでもない。
【0042】なお、ここではマイクロコントローラ的な
プロセッサの例を示したが、信号処理プロセッサおよび
メディアプロセッサにおいても同様に動作のシミュレー
トと同時に消費電力をシミュレートできることは言うま
でもない。
【0043】(第2の実施の形態)第2の実施の形態で
は、請求項10に係る発明について図を用いて説明す
る。
【0044】図28は請求項10に係る消費電力のシミ
ュレーション方法を詳細に示すフローチャートである。
図28において2801は命令動作をシミュレートする
プロセッサモデルに与えられるプログラムコードを記憶
する記憶手段および当該プロセッサモデルが持つレジス
タ、メモリおよびプロセッサモデルのシミュレーション
により計算される消費電力を記憶する記憶手段を初期化
し、実行サイクルを初期化する初期化処理である。28
02はシミュレートするプロセッサモデルに与えるプロ
グラムコードを読み込み、シミュレーションを開始する
命令の位置とシミュレーションを終了する命令の位置を
設定するプログラムコード読み込み処理である。280
3は与えられたプログラムコードより、プロセッサモデ
ルが現実行サイクルにおいて実行する命令を読み込む処
理であり、2804は読み込まれた命令のプロセッサ動
作をシミュレートする実行処理であり、2805は実行
された命令と現実行サイクルを記憶する命令履歴記憶処
理である。2806は2802により設定されている終
了命令位置によりシミュレートするべきプログラムコー
ドが終了しているかを判定するプログラムコード終了判
定処理である。シミュレートするプログラムコードが終
了していない場合、2807により現実行サイクル数を
1進めて、2803に戻り次にシミュレートするべき命
令が読み込まれる。シミュレートするプログラムコード
が終了してる場合、2808の消費電力計算出力処理に
より、予めプロセッサの命令セットに対して各々が実行
される時に消費される電力値を求めてある消費電力情報
テーブルと、シミュレーションで記憶されているサイク
ル数と命令履歴から各サイクルでの消費電力値を計算
し、各サイクルの消費電力を積算し、シミュレートされ
た実行サイクル数で割ることにより、消費電力の平均値
を算出し出力される。
【0045】図31は第2の実施の形態に係るハードウ
エアの構成図の一例を示しており、図31において、3
101は処理されたあらゆる情報をみるためのディスプ
レイ装置、3102は設計者があらゆる情報や処理命令
を入力するためのキーボード、3103はあらゆる処理
を行う中央演算処理装置、3104は各情報を格納する
記憶装置である。
【0046】以下、第2の実施の形態に係る消費電力の
シミュレーション方法を図28のフローに基づき、図2
の命令セットと図3の消費電力情報テーブルを持つプロ
セッサに対して、図4のプログラムコード401を実行
した場合を例に用いて具体的に説明する。シミュレーシ
ョンの対象となるプロセッサは201の命令セットを持
ちアクセス可能なアドレス空間のうちアドレス[A0]
以後は周辺レジスタに割り当てられているものとする。
【0047】2801の初期化処理ではプログラムの実
行を行なうための初期化を行なう。本実施の形態では、
アドレス[A0]の値はシミュレーション開始時は値’
0’で、3サイクル目に値’1’に変化するように設定
され、命令の実行位置を示すレジスタは411の命令を
指す値に設定される。また、アドレス[80]の値は
値’2’に設定され、実行サイクルは1に設定される。
【0048】2802のプログラム読み込み処理では、
シミュレートするべきプログラムを読み込み、記憶手段
に格納し、プログラムの実行が418に達した場合にプ
ログラムの実行を終了するように設定される。
【0049】2803の命令読み込みでは、記憶手段か
ら命令の実行位置を示すレジスタの値を取り出し、次に
実行する命令の位置を求め、求めた命令位置から始まる
命令コードを読み込む。ここでは、命令の実行位置を示
すレジスタは411を指す値に初期化されており、41
1の命令”MOV reg_b 0”に対応するコードを
読み込む。
【0050】2804の命令実行処理では、読み込んだ
命令を解釈し、命令の動作をシミュレートし、レジスタ
bに0を代入し、命令の実行位置を示すレジスタの値を
412を指す値に変更する。
【0051】2805の命令履歴記憶処理では、実行サ
イクル数と実行した命令”MOV”を記憶する。
【0052】2806のプログラム終了判定処理では、
プログラムの終了判定を行う。この場合、まだプログラ
ムの実行は終了位置に達していないため、2807によ
りサイクルを1進め、2803に戻り次の命令の実行サ
イクルへと移る。
【0053】以下、2810の処理を同様に繰り返し、
プログラムの実行動作をシミュレートしながら各サイク
ル毎に実行した命令を随時記憶する。
【0054】2サイクル目では命令412を実行しレジ
スタaにアドレスA0の値0を読み込み、3サイクル目
では命令413を実行しレジスタの値を比較して一致し
ているため比較結果レジスタをセットし、4サイクル目
では命令414を実行し比較結果レジスタがセットされ
ているためラベルLOOPで示される命令412へ分岐
する。5サイクル目では命令412を実行し3サイクル
目に変化したアドレス[A0]の値’1’をレジスタa
に読み込み、6サイクル目では命令413を実行しレジ
スタの値を比較して値が異なるため比較結果フラグをリ
セットする。7サイクル目では命令414を実行し比較
結果がクリアされているため分岐せずに命令415へ進
み、8サイクル目では命令415を実行しアドレス[8
0]の値2をレジスタbに読み込む。9サイクル目では
命令416を実行しレジスタaの値1に値1を加えてレ
ジスタaに代入し、10サイクル目では命令417を実
行し、レジスタaの値2とレジスタbの値2を乗算し、
レジスタaに代入する。11サイクル目では命令418
を実行しレジスタaの値4をアドレス[81]に書き出
す。
【0055】プログラムの実行が418の命令まで進む
と、2806でプログラムの終了判定により、命令実行
を終了する。
【0056】以上の処理により、図29の2901に示
す実行サイクルと実行命令の履歴が作成される。290
2は実行サイクルであり、2903は実行された命令履
歴である。
【0057】2808の消費電力計算出力処理では29
01の履歴と301の消費電力テーブルより、各サイク
ルで実行されている命令に対応する消費電力を求め、図
30の3001に示す各サイクルでの消費電力値を出力
する。また、各実行サイクルの消費電力値を積算し、実
行サイクル数で割ることによりシミュレートされるプロ
グラムの実行における平均の消費電力値を求める。30
02は実行サイクルであり、3003は命令履歴、30
04は計算された消費電力値である。また、3005は
各サイクルの消費電力値を積算した結果と実行サイクル
数で割った平均の消費電力値である。
【0058】以上のように本発明の第2の実施の形態に
よれば、請求項10に係る発明である消費電力のシミュ
レーション方法によって、シミュレーション実行時に、
与えられたプログラムコードに対する命令動作をシミュ
レートすると同時に、各サイクル毎の命令履歴を記憶し
ておく。プログラムのシミュレート後に、シミュレーシ
ョン実行前に、予め求められている各々の命令が実行さ
れる時に消費される消費電力情報とシミュレート時に記
憶されたサイクル毎の命令履歴より、プロセッサの消費
電力値をサイクル毎に求めることができ、プロセッサ部
が消費する電力の時間遷移を求めることができる。プロ
グラムコードに従って実行されるサイクル数は通常数
千、数百万サイクル以上の膨大なサイクル数になるが、
シミュレートしている実行命令の履歴と実行サイクルを
記憶することは容易であり、膨大なサイクル数と命令履
歴であっても、消費電力情報は計算機中では表形式等で
保持することにより簡単に検索することが可能であるた
め、消費電力見積もりを高速に行なうことが可能であ
る。また、算出された消費電力値の総和を求めることに
よりプログラムの実行全体にかかる消費電力値がわか
り、消費電力値の総和にプロセッサの動作周波数を掛け
シミュレーションにかかったサイクル数で割ることによ
りプログラム実行中の平均消費電力を求めることができ
る。
【0059】なお、ここではマイクロコントローラ的な
プロセッサの例を示したが、信号処理プロセッサおよび
メディアプロセッサにおいても同様に動作のシミュレー
トと同時に消費電力をシミュレートできることは言うま
でもない。 (第3の実施の形態)第3の実施の形態では、請求項
1、請求項2、請求項4に係る発明について図を用いて
説明する。
【0060】図6は請求項1、請求項2、請求項4に係
る消費電力のシミュレーション方法について図1の11
0の命令毎のシミュレーションおよび消費電力算出処理
を、本実施の形態において用いる3段パイプライン処理
構造のプロセッサの場合について各パイプラインステー
ジ毎に算出するフローチャートである。601は与えら
れたプログラムコードより、プロセッサモデルが実行す
る命令を読み込むフェッチ処理と読み込まれた命令を解
釈するデコード処理であり、602は現実行サイクルに
おけるフェッチ/デコードステージの処理において消費
される消費電力を計算し、現実行サイクルとパイプライ
ンステージともに計算結果を記憶する消費電力計算処理
である。603はパイプラインにおいてハザードの発生
を検出するハザード検出処理である。603においてハ
ザードが検出された場合、608の命令の処理を停止す
るストール処理が行われる。609はストール処理分の
サイクルとして現実行サイクルを1進める処理であり、
610はストール処理の消費電力を計算し、計算された
消費電力をフェッチ/デコードステージとして現実行サ
イクルとともに記憶する消費電力計算処理である。60
4はフェッチ/デコード処理により解釈された命令を実
行する実行処理であり、605は命令の実行処理により
消費される消費電力値を計算し、現実行サイクルに1を
加算したサイクル数とパイプラインステージともに計算
結果を記憶する消費電力計算処理である。606は実行
処理による結果をプログラムコードにより指定されてい
るメモリまたはレジスタにデータを格納するライトバッ
ク処理であり、607は606のライトバック処理によ
り消費される消費電力を計算し、現実行サイクルに2を
加算したサイクル数とパイプラインステージともに計算
結果を記憶する消費電力計算処理である。
【0061】図7において701は本実施の形態でシミ
ュレーションを行うプロセッサモデルにおいて、予め求
められている消費電力情報テーブルの一例である。本実
施の形態におけるプロセッサは3つのパイプラインステ
ージとして、プログラムコードが格納されているメモリ
から命令を読み出すフェッチと読み出された命令を解釈
するデコードのフェッチ/デコードステージ、解釈され
た命令を処理する実行ステージ、処理された結果を指定
されたレジスタまたはメモリにデータを格納するライト
バックステージを持つ。711は各命令の各ステージ毎
の消費電力情報が格納されている消費電力情報テーブル
である。命令LDの実行ステージ、命令STのライトバ
ックステージ、命令MULの実行ステージ、命令ADD
の実行ステージの消費電力は各命令により指定されるメ
モリアドレスの値、レジスタの値により変化する関数と
して与えられている。712はこの関数の一例を表して
いる。713は命令以外の処理の消費電力情報テーブル
である。割り込み処理が発生した場合の消費電力値、パ
イプラインハザードにより処理が中止されたストール時
の消費電力値が格納されている。
【0062】図31は第3の実施の形態に係るハードウ
ェアの構成図の一例を示しており、図31において、3
101は処理されたあらゆる情報をみるためのディスプ
レイ装置、3102は設計者があらゆる情報や処理命令
を入力するためのキーボード、3103はあらゆる処理
を行う中央演算処理装置、3104は各情報を格納する
記憶装置である。
【0063】以下、本実施の形態に係る消費電力のシミ
ュレーション方法について詳細な処理の説明を、図1お
よび図6のフローチャートに従い、図2に示す命令セッ
トと図7の消費電力情報テーブルをもつ3段のパイプラ
インプロセッサモデルに対して、図4のプログラムコー
ドの実行シミュレーションの一例について行う。図8は
401のプログラムコードを実行した場合の各サイクル
毎、各命令毎の状態を表している。
【0064】本実施の形態でシミュレートするプロセッ
サは、図2の201で与えられている命令セットを持
ち、パイプラインステージとして、フェッチ/デコー
ド、実行、ライトバックの3つを持つ3段パイプライン
構造を備えており、パイプラインデータハザードに対し
ては処理を停止させるストール処理を備えている。ま
た、分岐命令に対してはパイプライン動作を行わない。
【0065】図1のフローチャートの101の初期化処
理により、命令動作をシミュレートするプロセッサモデ
ルに与えられるプログラムコードを記憶する記憶手段お
よび当該プロセッサモデルが持つレジスタ、メモリおよ
びプロセッサモデルのシミュレーションにより計算され
る消費電力情報を記憶する記憶手段を初期化し、実行サ
イクルを1に初期化する。さらに、シミュレーションの
条件となる初期化データを読み込み初期化を行う。この
初期化ではアドレス[80]の値を’2’に、アドレス
[A0]のメモリの値は、初期値として値’0’を持
ち、8サイクル目に値’1’に変化するように初期設定
されている。
【0066】102のプログラム読み込み処理により4
01のプログラムコードが読み込まれ、シミュレーショ
ンを開始する命令の位置を411の命令、シミュレーシ
ョンを終了する命令の位置を418の命令に設定する。
【0067】110では、シミュレートするプロセッサ
モデルが3段パイプライン処理構造であるため、このプ
ロセッサモデルの場合について各パイプラインステージ
毎に算出するフローチャートである図6に従って説明す
る。
【0068】実行サイクル1サイクル目の601のフェ
ッチ/デコード処理によりプログラムコード411が読
み込まれ、フェッチ/デコードされる。602の消費電
力計算処理により、711の消費電力情報テーブルの命
令MOVのフェッチ/デコードステージの消費電力値9
[μW/MHz]が算出される。この値が1サイクル目
のフェッチ/デコードステージとして記憶される。
【0069】ハザードは発生していないため603のハ
ザード判定処理から604の実行処理に処理は移る。
【0070】604の実行処理によりプログラムコード
411が実行され、定数値’0’が読み込まれる。60
5の消費電力計算処理により、711の消費電力情報テ
ーブルの命令MOVの実行ステージの消費電力値8[μ
W/MHz]が算出される。この値が2サイクル目の実
行ステージとして記憶される。
【0071】606のライトバック処理によりプログラ
ムコード411のライトバック処理が行われ、604で
読み込まれた定数値’0’がレジスタbに書き込まれ
る。607の消費電力計算処理により、711の消費電
力情報テーブルの命令MOVのライトバックステージの
消費電力値12[μW/MHz]が算出され、この値が
3サイクル目のライトバックステージとして記憶され
る。
【0072】プログラムコード411に対する一連の処
理の状態を表しているのが、図8の811である。
【0073】分岐命令の処理ではなく、106のプログ
ラム終了判定では命令位置が終了位置ではないため、1
07で実行サイクルを1進め、110に戻り、2サイク
ル目として601が処理される。
【0074】2サイクル目に601のフェッチ/デコー
ド処理によりプログラムコード412が読み込まれ、フ
ェッチ/デコードされる。602の消費電力計算処理に
より、711の消費電力情報テーブルの命令LDのフェ
ッチ/デコードステージの消費電力値11[μW/MH
z]が算出される。この値が2サイクル目のフェッチ/
デコードステージとして記憶される。
【0075】ハザードは発生していないため603のハ
ザード判定処理から604の実行処理に処理は移る。
【0076】604の実行処理によりプログラムコード
412が実行され、アドレス[A0]の値が読み込まれ
る。101の初期化処理ではアドレス[A0]の値は、
初期値としては値’0’が与えられている。605の消
費電力計算処理により、711の消費電力テーブルの命
令LDの実行ステージの消費電力値が計算される。この
場合、消費電力値は関数f1として与えられている。関
数f1は712の関数定義より、指定されたアドレスが
[A0]であるため、20[μW/MHz]と算出され
る。この値が3サイクル目のフェッチ/デコードステー
ジとして記憶される。
【0077】606のライトバック処理によりプログラ
ムコード412のライトバックが処理され、604で読
み込まれたアドレス[A0]の値’0’がレジスタaに
書き込まれる。607の消費電力計算処理により、71
1の消費電力情報テーブルの命令LDのライトバックス
テージの消費電力値11[μW/MHz]が算出され、
この値が4サイクル目のライトバックステージとして記
憶される。
【0078】プログラムコード412に対する一連の処
理の状態を表しているのが、図8の812である。
【0079】分岐命令の処理ではなく、106のプログ
ラム終了判定では命令位置が終了位置ではないため、1
07で実行サイクルを1進め、110に戻り、3サイク
ル目として601が処理される。
【0080】3サイクル目に601のフェッチ/デコー
ド処理によりプログラムコード413が読み込まれ、フ
ェッチ/デコードされる。602の消費電力計算処理に
より、711の消費電力情報テーブルの命令CMPのフ
ェッチ/デコードステージの消費電力値9[μW/MH
z]が算出される。この値が3サイクル目のフェッチ/
デコードステージとして記憶される。
【0081】603のハザード検出処理において、レジ
スタaはプログラムコード412の4サイクル目のライ
トバックステージにより確定し、この値は5サイクル目
に参照できるが、413の命令CMPでは4サイクル目
でレジスタaを参照し、ここでパイプラインデータハザ
ードが発生している。このため、608のストール処理
が行われる。609によりサイクルを1進め、続いて6
10の消費電力計算処理により、713の消費電力情報
テーブルのストール処理の消費電力値2[μW/MH
z]が算出される。この値が4サイクル目のフェッチ/
デコードステージとして記憶される。
【0082】ハザードは発生していないため603のハ
ザード判定処理から604の実行処理に処理は移る。
【0083】604の実行処理によりプログラムコード
413が実行され、レジスタaとレジスタbの値が比較
される。605の消費電力計算処理により、711の消
費電力テーブルの命令CMPの実行ステージの消費電力
値12[μW/MHz]が算出される。この値が5サイ
クル目の実行ステージとして記憶される。
【0084】606のライトバック処理によりプログラ
ムコード413のライトバックが処理され、604で比
較された結果として、比較結果フラグが設定される。レ
ジスタaの値は’0’であり、レジスタbの値も’0’
であるため、比較結果フラグはセットされる。607の
消費電力計算処理により、711の消費電力情報テーブ
ルの命令CMPのライトバックステージの消費電力値8
[μW/MHz]が算出され、この値が6サイクル目の
ライトバックステージとして記憶される。
【0085】プログラムコード413に対する一連の処
理の状態を表しているのが、図8の813である。
【0086】分岐命令の処理ではなく、106のプログ
ラム終了判定ではプログラムが終了していないため、1
07でサイクルを1進め、110に戻り、5サイクル目
として601が処理される。
【0087】5サイクル目に601のフェッチ/デコー
ド処理によりプログラムコード414が読み込まれ、フ
ェッチ/デコードされる。602の消費電力計算処理に
より、711の消費電力情報テーブルの命令BEQのフ
ェッチ/デコードステージの消費電力値10[μW/M
Hz]が算出される。この値が5サイクル目のフェッチ
/デコードステージとして記憶される。
【0088】603のハザード検出処理において、比較
結果フラグはプログラムコード413の6サイクル目の
ライトバックステージにより確定し、7サイクル目で参
照可能となるが414の命令BEQでは6サイクル目で
比較結果フラグを参照し、ここでパイプラインデータハ
ザードが発生している。このため、608のストール処
理が行われる。続いて609でサイクルが1進められ、
610の消費電力計算処理により、713の消費電力情
報テーブルのストール処理の消費電力値2[μW/MH
z]が算出される。この値が6サイクル目のフェッチ/
デコードステージとして記憶される。
【0089】ハザードは発生していないため603のハ
ザード判定処理から604の実行処理に処理は移る。
【0090】604の実行処理によりプログラムコード
414が実行され、比較結果フラグの値が読み込まれ
る。605の消費電力計算処理により、711の消費電
力情報テーブルの命令BEQの実行ステージの消費電力
値1[μW/MHz]が算出される。この値が7サイク
ル目の実行ステージとして記憶される。
【0091】606のライトバック処理によりプログラ
ムコード414のライトバックステージが処理され、6
04で読み込まれた比較結果フラグがセットされている
ため、次に処理する命令位置をラベルにて指定されてい
るプログラムコードである412に変更する。607の
消費電力計算処理により、711の消費電力情報テーブ
ルの命令BEQのライトバックステージの消費電力値9
[μW/MHz]が算出され、この値が8サイクル目の
ライトバックステージとして記憶される。
【0092】プログラムコード414に対する一連の処
理の状態を表しているのが、図8の814である。
【0093】分岐命令であるため、612でサイクルを
1進め、106のプログラム終了判定ではプログラムが
終了していないため、107でさらにサイクルを1進
め、110に戻り、9サイクル目として701が処理さ
れる。
【0094】9サイクル目に601のフェッチ/デコー
ド処理によりプログラムコード412が読み込まれ、フ
ェッチ/デコードされる。602の消費電力計算処理に
より、711の消費電力情報テーブルの命令LDのフェ
ッチ/デコードステージの消費電力値11[μW/MH
z]が算出される。この値が9サイクル目のフェッチ/
デコードステージとして記憶される。
【0095】ハザードは発生していないため603のハ
ザード判定処理から604の実行処理に処理は移る。
【0096】604の実行処理によりプログラムコード
412が実行され、アドレス[A0]の値が読み込まれ
る。101の初期化処理ではアドレス[A0]の値は、
8サイクル目に’1’に変化するように初期化されてい
るため、値’1’が読み込まれる。605の消費電力計
算処理により、711の消費電力情報テーブルの命令L
Dの実行ステージの消費電力値が計算される。この場
合、消費電力値は関数f1として与えられている。関数
f1は712の関数定義より、指定されたアドレスが
[A0]であるため、20[μW/MHz]と算出され
る。この値が10サイクル目の実行ステージとして記憶
される。
【0097】606のライトバック処理によりプログラ
ムコード412のライトバックが処理され、604で読
み込まれたアドレス[A0]の値’1’がレジスタaに
書き込まれる。607の消費電力計算処理により、71
1の消費電力情報テーブルの命令LDのライトバックス
テージの消費電力値11[μW/MHz]が算出され、
この値が11サイクル目のライトバックステージとして
記憶される。
【0098】プログラムコード412に対する一連の処
理の状態を表しているのが、図8の822である。
【0099】分岐命令でなく、106のプログラム終了
判定ではプログラムが終了していないため、107でサ
イクルが1進められ、110に戻り、10サイクル目と
して601が処理される。
【0100】10サイクル目に601のフェッチ/デコ
ード処理によりプログラムコード413が読み込まれ、
フェッチ/デコードされる。602の消費電力計算処理
により、711の消費電力情報テーブルの命令CMPの
フェッチ/デコードステージの消費電力値9[μW/M
Hz]が算出される。この値が10サイクル目のフェッ
チ/デコードステージとして記憶される。
【0101】603のハザード検出処理において、レジ
スタaはプログラムコード412の11サイクル目のラ
イトバックステージにより確定し、12サイクル目で参
照できるが、413の命令CMPでは11サイクル目で
レジスタaを参照し、ここでパイプラインデータハザー
ドが発生している。このため、608のストール処理が
行われる。609によりサイクルを1進めて、610の
消費電力計算処理により、713の消費電力情報テーブ
ルのストール処理の消費電力値2[μW/MHz]が算
出される。この値が11サイクル目のフェッチ/デコー
ドステージとして記憶される。
【0102】ハザードは発生していないため603のハ
ザード判定処理から604の実行処理に処理は移る。
【0103】604の実行処理によりプログラムコード
413が実行され、レジスタaとレジスタbの値が比較
される。605の消費電力計算処理により、711の消
費電力テーブルの命令CMPの実行ステージの消費電力
値12[μW/MHz]が算出される。この値が12サ
イクル目の実行ステージとして記憶される。
【0104】606のライトバック処理によりプログラ
ムコード413のライトバックが処理され、604で比
較された結果として、比較結果フラグが設定される。レ
ジスタaの値は’1’であり、レジスタbの値は’0’
であるため、比較結果フラグはリセットされる。607
の消費電力計算処理により、711の消費電力情報テー
ブルの命令CMPのライトバックステージの消費電力値
8[μW/MHz]が算出され、この値が13サイクル
目のライトバックステージとして記憶される。
【0105】プログラムコード413に対する一連の処
理の状態を表しているのが、図8の823である。
【0106】分岐命令でなく、106のプログラム終了
判定ではプログラムが終了していないため、107でサ
イクルが1進められ、110に戻り、12サイクル目と
して601が処理される。
【0107】12サイクル目に601のフェッチ/デコ
ード処理によりプログラムコード414が読み込まれ、
フェッチ/デコードされる。602の消費電力計算処理
により、711の消費電力情報テーブルの命令BEQの
フェッチ/デコードステージの消費電力値10[μW/
MHz]が算出される。この値が12サイクル目のフェ
ッチ/デコードステージとして記憶される。
【0108】603のハザード検出処理において、比較
結果フラグはプログラムコード413の13サイクル目
のライトバックステージにより確定し、14サイクル目
で参照できるが、414の命令BEQでは13サイクル
目で比較結果フラグを参照し、ここでパイプラインデー
タハザードが発生している。このため、608のストー
ル処理が行われる。609でサイクルが1進められ、6
10の消費電力計算処理により、713の消費電力情報
テーブルのストール処理の消費電力値2[μW/MH
z]が算出される。この値が13サイクル目のフェッチ
/デコードステージとして記憶される。
【0109】ハザードは発生していないため603のハ
ザード判定処理から604の実行処理に処理は移る。
【0110】604の実行処理によりプログラムコード
414が実行され、比較結果フラグの値が読み込まれ
る。605の消費電力計算処理により、711の消費電
力情報テーブルの命令BEQの実行ステージの消費電力
値1[μW/MHz]が算出される。この値が14サイ
クル目のフェッチ/デコードステージとして記憶され
る。
【0111】606のライトバック処理によりプログラ
ムコード414のライトバックステージが処理され、6
04で読み込まれた比較結果フラグがリセットされてい
るため、次に処理する命令位置を415の命令の位置に
設定する。607の消費電力計算処理により、711の
消費電力情報テーブルの命令BEQのライトバックステ
ージの消費電力値9[μW/MHz]が算出され、この
値が15サイクル目のライトバックステージとして記憶
される。
【0112】プログラムコード414に対する一連の処
理の状態を表しているのが、図8の824である。
【0113】分岐命令であるため、612でサイクルを
1進め、106のプログラム終了判定ではプログラムが
終了していないため、107でさらにサイクルを1進
め、110に戻り、16サイクル目として601が処理
される。
【0114】16サイクル目に601のフェッチ/デコ
ード処理によりプログラムコード415が読み込まれ、
フェッチ/デコードされる。602の消費電力計算処理
により、711の消費電力情報テーブルの命令LDのフ
ェッチ/デコードステージの消費電力値11[μW/M
Hz]が算出される。この値が16サイクル目のフェッ
チ/デコードステージとして記憶される。
【0115】ハザードは発生していないため603のハ
ザード判定処理から604の実行処理に処理は移る。
【0116】604の実行処理によりプログラムコード
415が実行され、アドレス[80]の値が読み込まれ
る。アドレス[80]の値は101の初期化により値’
2’に初期化されている。605の消費電力計算処理に
より、711の消費電力情報テーブルの命令LDの実行
ステージの消費電力値が計算される。この場合、消費電
力値は関数f1として与えられている。関数f1は71
2の関数定義より、指定されたアドレスが[80]であ
るため、10[μW/MHz]と算出される。この値が
17サイクル目の実行ステージとして記憶される。
【0117】606のライトバック処理によりプログラ
ムコード415のライトバックが処理され、604で読
み込まれたアドレス[80]の値’2’がレジスタaに
書き込まれる。607の消費電力計算処理により、71
1の消費電力情報テーブルの命令LDのライトバックス
テージの消費電力値11[μW/MHz]が算出され、
この値が18サイクル目のライトバックステージとして
記憶される。
【0118】プログラムコード415に対する一連の処
理の状態を表しているのが、図8の825である。
【0119】分岐命令の処理ではなく、106のプログ
ラム終了判定ではプログラムが終了していないため、1
07でサイクルを1進め、110に戻り、17サイクル
目として601が処理される。
【0120】17サイクル目に601のフェッチ/デコ
ード処理によりプログラムコード416が読み込まれ、
フェッチ/デコードされる。602の消費電力計算処理
により、711の消費電力情報テーブルの命令ADDの
フェッチ/デコードステージの消費電力値10[μW/
MHz]が算出される。この値が17サイクル目のフェ
ッチ/デコードステージとして記憶される。
【0121】ハザードは発生していないため603のハ
ザード判定処理から604の実行処理に処理は移る。
【0122】604の実行処理によりプログラムコード
416が実行され、レジスタaの値’1’と定数値’
1’が読み込まれ、加算される。605の消費電力計算
処理により、711の消費電力情報テーブルの命令AD
Dの実行ステージの消費電力値が計算される。この場
合、消費電力値は関数f4として与えられている。関数
f4は712の関数定義より、デスティネーション値お
よびソース値がともに非零であるため、消費電力値50
が算出される。この値が18サイクル目の実行ステージ
として記憶される。
【0123】606のライトバック処理によりプログラ
ムコード416のライトバックが処理され、604で加
算された結果がレジスタaに書き込まれる。607の消
費電力計算処理により、711の消費電力情報テーブル
の命令ADDのライトバックステージの消費電力値10
[μW/MHz]が算出され、この値が19サイクル目
のライトバックステージとして記憶される。
【0124】プログラムコード416に対する一連の処
理の状態を表しているのが、図8の826である。
【0125】分岐命令の処理ではなく、106のプログ
ラム終了判定では命令位置が終了位置ではないため、1
07で実行サイクルを1進め、110に戻り、18サイ
クル目として601が処理される。
【0126】18サイクル目に601のフェッチ/デコ
ード処理によりプログラムコード417が読み込まれ、
フェッチ/デコードされる。602の消費電力計算処理
により、711の消費電力情報テーブルの命令MULの
フェッチ/デコードステージの消費電力値11[μW/
MHz]が算出される。この値が18サイクル目のフェ
ッチ/デコードステージとして記憶される。
【0127】603のハザード検出処理において、レジ
スタaはプログラムコード416の19サイクル目のラ
イトバックステージにより確定し、20サイクル目で参
照できるが、417の命令MULでは19サイクル目で
レジスタaを参照し、ここでパイプラインデータハザー
ドが発生している。このため、608のストール処理が
行われる。609でサイクルを1進め、610の消費電
力計算処理により、713の消費電力テーブルのストー
ル処理の消費電力値2[μW/MHz]が算出される。
この値が19サイクル目のフェッチ/デコードステージ
として記憶される。
【0128】ハザードは発生していないため603のハ
ザード判定処理から604の実行処理に処理は移る。
【0129】604の実行処理によりプログラムコード
417が実行され、レジスタaの値’2’とレジスタb
の値’2’が読み込まれ、乗算される。605の消費電
力計算処理により、711の消費電力情報テーブルの命
令MULの実行ステージの消費電力値が計算される。こ
の場合、消費電力値は関数f3として与えられている。
関数f3は712の関数定義より、デスティネーション
値およびソース値がともに非零であるため、消費電力値
70が算出される。この値が20サイクル目の実行ステ
ージとして記憶される。
【0130】606のライトバック処理によりプログラ
ムコード417のライトバックが処理され、604の乗
算結果がレジスタaに書き込まれる。607の消費電力
計算処理により、711の消費電力情報テーブルの命令
MULのライトバックステージの消費電力値10[μW
/MHz]が算出され、この値が21サイクル目のライ
トバックステージとして記憶される。
【0131】プログラムコード417に対する一連の処
理の状態を表しているのが、図8の827である。
【0132】分岐命令の処理ではなく、106のプログ
ラム終了判定ではプログラムが終了していないため、1
07でサイクルを1進め、110に戻り、20サイクル
目として601が処理される。
【0133】20サイクル目に601のフェッチ/デコ
ード処理によりプログラムコード418が読み込まれ、
フェッチ/デコードされる。602の消費電力計算処理
により、711の消費電力情報テーブルの命令STのフ
ェッチ/デコードステージの消費電力値10[μW/M
Hz]が算出される。この値が20サイクル目のフェッ
チ/デコードステージとして記憶される。
【0134】603のハザード検出処理において、レジ
スタaはプログラムコード417の21サイクル目のラ
イトバックステージにより確定し、22サイクル目で参
照できるが、418の命令STでは21サイクル目でレ
ジスタaを参照し、ここでパイプラインデータハザード
が発生している。このため、608のストール処理が行
われる。609でサイクルが1進められ、610の消費
電力計算処理により、713の消費電力テーブルのスト
ール処理の消費電力値2[μW/MHz]が算出され
る。この値が21サイクル目のフェッチ/デコードステ
ージとして記憶される。
【0135】ハザードは発生していないため603のハ
ザード判定処理から604の実行処理に処理は移る。
【0136】604の実行処理によりプログラムコード
418が実行され、レジスタaの値’2’が読み込まれ
る。605の消費電力計算処理により、711の消費電
力テーブルの命令STの実行ステージの消費電力値12
[μW/MHz]が算出される。この値が22サイクル
目の実行ステージとして記憶される。
【0137】606のライトバック処理によりプログラ
ムコード419のライトバックが処理され、604で読
み込まれたレジスタaの値がアドレス[81]に書き込
まれる。607の消費電力計算処理により、711の消
費電力情報テーブルの命令STのライトバックステージ
の消費電力値が算出される。この場合、消費電力値は関
数f2として与えられている。関数f2は712の関数
定義により、指定するアドレスが[81]であるため、
消費電力値10が算出される。この値が23サイクル目
の実行ステージとして記憶される。
【0138】プログラムコード413に対する一連の処
理の状態を表しているのが、図8の828である。
【0139】106のプログラム終了判定により、シミ
ュレーションが終了する。108の消費電力出力処理で
は記憶した各サイクルに各ステージ毎の消費電力値を合
計し、サイクル毎の消費電力値を出力する。図9は以上
の方法によりプログラム401の実行をシミュレートす
ることにより得られる結果である。
【0140】以上のように本発明の第3の実施の形態に
よれば、請求項1に係る発明である消費電力のシミュレ
ーション方法によって、シミュレーション実行前に、予
め求められている各々の命令が実行される時に消費され
る電力値を命令毎の消費電力情報として記憶しておき、
シミュレーション実行時に、与えられたプログラムコー
ドに対する命令動作をシミュレートすると同時に、命令
毎の消費電力情報より実行中の個々の命令に対応する消
費電力値を求め、シミュレートするプログラムにおいて
消費される消費電力値をサイクル毎に求めることがで
き、プロセッサ部が消費する電力の時間遷移を求めるこ
とができる。プログラムコードに従って実行されるサイ
クル数は通常数千、数百万サイクル以上の膨大なサイク
ル数になるが、命令毎の消費電力情報は計算機中では表
形式等で保持することにより簡単に検索することが可能
であるため、消費電力見積もりを高速に行なうことが可
能である。
【0141】また、請求項2に係る発明であるシミュレ
ートするプロセッサがパイプライン処理構造を備えたも
のである場合、命令毎の消費電力情報を各々の命令の各
パイプラインステージ毎に電力値を記憶し、シミュレー
ション実行時に、与えられたプログラムコードに対する
命令動作をシミュレートすると同時に、命令毎のパイプ
ラインステージ毎の消費電力情報より、たとえパイプラ
インデータハザードが発生したとしても、実行中の個々
の命令の各パイプラインステージに対応する消費電力値
を求め、シミュレートするプログラムにおいて消費され
る消費電力値をより詳細に求めることができ、プロセッ
サ部が消費する電力の時間遷移を求めることができる。
プログラムコードに従って実行されるサイクル数は通常
数千、数百万サイクル以上の膨大なサイクル数になる
が、命令毎の消費電力情報は計算機中では表形式等で保
持することにより簡単に検索することが可能であるた
め、消費電力見積もりを高速に行なうことが可能であ
る。
【0142】また、請求項4にかかる発明である、命令
毎の消費電力情報が一部の命令に対しては命令のオペラ
ンドを引数に含む関数により表現されている場合、この
命令の実行時の消費電力値計算では、当該命令のオペラ
ンドを関数に与えて消費電力値を求めることにより、消
費電力値がオペランドに依存する命令を含むプログラム
の実行時の消費電力値を高精度に求めることが可能であ
る。
【0143】なお、この例では各命令実行サイクル毎の
消費電力値のみを求めているが、算出された消費電力値
の総和を求めることによりプログラムの実行全体にかか
る消費電力値がわかり、消費電力値の総和にプロセッサ
の動作周波数を掛けシミュレーションにかかったサイク
ル数で割ることによりプログラム実行中の平均消費電力
が求まることは言うまでもない。
【0144】なお、この例では各命令の各ステージ毎に
消費電力を計算しているが、各サイクル毎の各命令の各
ステージの履歴を記憶しておき、別途図7の消費電力情
報テーブルより消費電力値を求めることが可能であるこ
とは言うまでもない。
【0145】なお、ここではマイクロコントローラ的な
プロセッサの例を示したが、信号処理プロセッサおよび
メディアプロセッサにおいても同様に動作のシミュレー
トと同時に消費電力をシミュレートできることは言うま
でもない。
【0146】(第4の実施の形態)第4の実施の形態で
は請求項1、請求項3、請求項4に係る消費電力のシミ
ュレーション方法について説明する。
【0147】図10は第4の実施の形態に係る消費電力
のシミュレーション方法を表すフローチャートである。
図10において、1001は初期化データを読み込み、
記憶手段の内容を初期化する処理、1002は記憶手段
から同時に実行する可能性のある複数の命令コードを読
み込む処理、1003は読み込んだ命令コードを解釈
し、対象とするプロセッサに備えられたスーパースケー
ラ処理構造を考慮して同時に実行される命令を選び出す
処理、1004は1003で選び出した命令の1つを実
行し、記憶手段の内容を更新する処理、1005は10
04で実行した命令をもとに命令毎の消費電力情報を参
照し命令実行に費やされる電力を算出する処理、100
6は1003で選び出した命令の実行が全て終了したか
を判定する処理、1007は1005で算出した消費電
力値を合計し、その値をもとに1002から1006で
処理される一サイクル分の処理に対する消費電力値を算
出し、出力手段へ出力する処理、1008はプログラム
の終了を判定する処理、1009はサイクルを1進める
処理である。
【0148】次に、第4の実施の形態に係る消費電力の
シミュレーション方法を図10のフローに基づき図4の
プログラム401を実行する場合を例に用いて具体的に
説明する。
【0149】ここでシミュレーションの対象とするプロ
セッサは201の命令セットを持ち、アクセス可能なア
ドレス空間のうちアドレスA0以後は周辺レジスタに割
り当てられており、スーパースケーラ処理構造を備え最
大2つの命令が同時に実行可能であるとする。ただし、
命令の同時実行ができるのは連続する2つの命令が同時
に同じレジスタを用いず、同時にメモリにアクセスせ
ず、先の命令が分岐命令でない場合に限るものとする。
【0150】図11は対象とするプロセッサの消費電力
情報を含んだテーブルである。ただし、図11において
1101は図2の各命令に対応した消費電力値のテーブ
ルであり、左側の項は実行する命令、右側の項は左の命
令を実行することにより消費される電力値を表してお
り、1102は実行する命令に依存せずに1サイクルで
消費される電力値である。単位はμW/MHzとしてい
る。ここで、f1、f2、f3、f4はオペランドに従
い変化する関数を表しており、f1はソースで指定され
るアドレスがA0以後の場合は2、A0より前の場合は
4となり、f2はデスティネーションで指定されるアド
レスがA0以後の場合は4、A0より前の場合は8とな
り、f3はソースおよびデスティネーションで指定され
るレジスタまたは定数値の少なくとも一方が0の場合は
1、共に0でない場合は7となり、f4はソースおよび
デスティネーション出指定されるレジスタまたは定数値
の少なくとも一方が0の場合は1、共に0でない場合は
5となる。
【0151】1001の初期化処理では、記憶手段の初
期化情報をファイルから読み込み、読み込んだ内容に従
い記憶手段の内容を初期化する。ここで、読み込まれる
ファイルには図4のプログラム401およびレジスタ、
メモリの初期設定情報が含まれ、記憶手段にはシミュレ
ーションの対象とするプロセッサのレジスタの値、メモ
リの内容および周辺レジスタの時間変化情報が記憶され
る。この例では、アドレスA0の値はシミュレーション
開始時は0で、3サイクル目に1に変化するように設定
し、命令の実行位置を示すレジスタは411を指す値に
設定し、アドレス80の値は2に設定し、プログラムの
実行が418に達した場合にプログラムの実行を終了す
るように設定し、サイクルを1に設定する。
【0152】1002の命令コード読み込み処理では、
記憶手段から命令の実行位置を示すレジスタの値を取り
出し、次に実行する命令の位置を求め、求めた位置から
始まる命令コードを2命令分読み込む。ここでは、命令
の実行位置を示すレジスタは411を指す値に初期化さ
れており、411の命令”MOV reg_b 0”に対
応するコードと412の命令”LD reg_a [A
0]”に対応するコードを読み込む。
【0153】1003の同時実行命令の選択処理では、
読み込んだ複数の命令を解釈し、対象とするプロセッサ
のスーパースケーラ処理構造を考慮して当該一サイクル
で実行する命令を選び出す。ここでは、読み込んだ2つ
の命令は同時実行可能であると判定し、両者を選び出
す。
【0154】1004の命令実行処理では、選択した一
つ目の命令の動作をシミュレートし、レジスタbに0を
代入し、命令の実行位置を示すレジスタの値を412を
指す値に変更する。次に、消費電力値テーブルから実行
した命令”MOV”に対応する列を選び、消費電力値2
0を算出する。
【0155】1006の未処理命令の存在の判定処理で
は、1003で選び出した命令を全て実行したかを判定
する。この場合412の命令をまだ実行していないた
め、1004に戻り412の命令の実行を行う。そし
て、1004の処理で412の命令”LD reg_a
[A0]”の動作をシミュレートし、アドレスA0の周
辺レジスタの値0をレジスタaに代入し記憶手段に格納
し、命令の実行位置を示すレジスタの値を413を指す
値に変更する。
【0156】次に、1005の処理で消費電力値テーブ
ルから、実行した命令”LD”に対応する列を選び、消
費電力値を算出する。実行命令”LD”に対する消費電
力値はオペランドに依存した値10+f1となっている
が、この場合読み込むアドレスがA0であるため、関数
f1の値は20となり消費電力値30を算出する。
【0157】次に、1006の処理で1003で選び出
した命令を全て実行したかを判定するが、この場合すべ
ての命令の実行が終了しているため1007へ進む。
【0158】1007の消費電力出力処理では、100
3で選び出した命令に対して1005で算出した消費電
力値を合計し、これに実行した命令に関わらず一サイク
ルで消費される共通処理の電力値20を消費電力値テー
ブル1102から算出して加算し、その合計値70を当
該一サイクルの消費電力値として出力手段に出力し、消
費電力積算値に加える。
【0159】1008の終了判定処理では、プログラム
の終了判定を行う。この場合、まだプログラムの実行は
終了位置に達していないため、1009に進む。
【0160】1009のサイクルを1進める処理では、
実行サイクル数を1進め、1002に戻り次の命令の実
行サイクルへと移る。
【0161】2サイクル目では”CMP”命令と”BE
Q”命令が読み込まれるが”BEQ”命令は”CMP”
命令で比較結果を格納するレジスタに書き込まれた値を
用いるため、同時に実行できないと判定し、”CMP”
命令のみを選び出して実行する。このため1005の処
理では”CMP”命令に対する消費電力値20のみを選
び出し、1007の処理ではこれに共通処理の消費電力
値20を加えた値40を2サイクル目の消費電力値とし
て出力する。
【0162】以下同様に、1002から1007の処理
を繰り返してプログラムの実行動作をシミュレートしな
がら各サイクルでの消費電力値を算出する。そして、
プログラムの実行が418まで進むと、プログラムの終
了判定をし処理を終了する。
【0163】図12において1201はプログラム40
1の実行をシミュレートした結果得られる命令の実行履
歴と出力した消費電力値である。図12において121
1は命令実行サイクル、1212、1213は各サイク
ルに実行された命令、1214は各サイクルでの消費電
力値である。サイクル1とサイクル7ではスーパースケ
ーラ処理構造が有効に働き、同一サイクルで2つの命令
が実行されており、その他のサイクルでは1つの命令が
実行されている。また、アドレスA0の内容はサイクル
3で1に変化するため、サイクル2の比較命令ではレジ
スタの値は一致しており、サイクル3で分岐が起きる
が、サイクル4ではaには1が読み込まれるためサイク
ル5での比較命令ではレジスタの値は一致せずサイクル
6では分岐は起きない。そして、サイクル7ではレジス
タbにアドレス80の値2が読み込まれると同時にレジ
スタaの値に1が加えられレジスタaの値は2となり、
サイクル8ではレジスタaの値にレジスタbの値2が掛
けられ4となり、サイクル9ではレジスタaの値4がア
ドレス81に書き込まれる。
【0164】以上のように本発明の第4の実施の形態に
よれば、請求項1に係る発明である消費電力のシミュレ
ーション方法によって、シミュレーション実行前に、予
め求めらている各々の命令が実行される時に消費される
電力値を命令毎の消費電力情報として記憶しておき、シ
ミュレーション実行時に、与えられたプログラムコード
に対する命令動作をシミュレートすると同時に、命令毎
の消費電力情報より実行中の個々の命令に対応する消費
電力値を求め、シミュレートするプログラムにおいて消
費される消費電力値をサイクル毎に求めることができ、
プロセッサ部が消費する電力の時間遷移を求めることが
できる。プログラムコードに従って実行されるサイクル
数は通常数千、数百万サイクル以上の膨大なサイクル数
になるが、命令毎の消費電力情報は計算機中では表形式
等で保持することにより簡単に検索することが可能であ
るため、消費電力見積もりを高速に行なうことが可能で
ある。
【0165】また、請求項3に係る発明であるシミュレ
ートするプロセッサがスーパースケーラ処理構造を備え
たものである場合、一サイクルに同時に実行される命令
を考慮して、消費電力を算出するために、スーパースケ
ーラ構造を備えたプロセッサに対しても正確に消費電力
をシミュレートすることができる。
【0166】また、請求項4にかかる発明である、命令
毎の消費電力情報が一部の命令に対しては命令のオペラ
ンドを引数に含む関数により表現されている場合、この
命令の実行時の消費電力値計算では、当該命令のオペラ
ンドを関数に与えて消費電力値を求めることにより、消
費電力値がオペランドに依存する命令を含むプログラム
の実行時の消費電力値を高精度に求めることが可能であ
る。
【0167】なお、ここではマイクロコントローラ的な
プロセッサの例を示したが、信号処理プロセッサおよび
メディアプロセッサにおいても同様に動作のシミュレー
トと同時に消費電力をシミュレートできることは言うま
でもない。
【0168】(第5の実施の形態)本発明の第5の実施
形態では、請求項6及び請求項7に係る発明に関して説
明する。本発明の一実施形態に係る消費電力のシミュレ
ーション方法について、図13、図14、図15、図1
6、及び図17に基づき説明する。第5の実施形態を実
現するハードウエア構成については、第1の実施形態と
同様、図31に示すものを用いる。
【0169】図13は、本実施形態に係る消費電力のシ
ミュレーション方法のシミュレーション実行時の処理流
れを示すフローチャートである。1301は回路中の各
機能ブロックに対して外部入力又は前段の機能ブロック
の出力ピンの値から入力ピンの値を準備するブロック入
力値設定処理、1302は各機能ブロックに対してその
入力ピンの値と内部状態から各機能ブロックの新しい状
態を求めるブロック評価処理、1303は前記の各機能
ブロックの評価処理1302の計算結果から各ブロック
の出力ピンの状態を求めるブロック出力値取得、130
4は各機能ブロックの消費電力を求めるブロック消費電
力計算処理、1305は前記のブロック消費電力計算処
理1304で計算された各機能ブロックの消費電力を合
計して回路全体の消費電力を求める消費電力集計処理、
1306は目的時刻までのシミュレーション処理が終了
したかを判定し、終了している場合にはシミュレーショ
ン実行を終了し、終了していない場合には処理を継続す
るシミュレーション終了判定処理、1307はシミュレ
ーション時刻を次のサイクルに進め時刻更新処理であ
り、時刻更新処理1307の後、新しい時刻に対して、
ブロック入力値設定処理1301から消費電力集計処理
1305までが行なわれ、これらの処理が目的の時刻ま
で繰り返される。
【0170】図14は、シミュレーション対象となる一
回路例である。同図の1401、1402、1403、
及び1404は、機能ブロックBLK1、BLK2、B
LK3、及びBLK4であり、各々、ALU(算術演算
ユニット)、ADD/SUB(加算/減算)、MUL
(乗算)、及びSHIFT(ビットシフト)である。B
LK1のALUの演算内容は、その入力ピンMの状態に
依存しており、1430に示す様に、入力ピンM[1:
0]が、0、1、2、及び3の場合、各々、加算、減
算、排他的論理和、及び論理積となる。また、BLK2
の演算も、その入力ピンMの状態に依存しており、14
31に示す様に、0の場合加算、1の場合減算となる。
また、BLK4の演算は、シフト動作であり、入力S
[4:0]で入力された値分、LSB方向へビットシフ
トされる。1410から1417は回路に対する入力ピ
ン、1418及び1419は回路に対する出力ピンであ
り、同図に示す様に各機能ブロックのピンに接続されて
いる。これらの機能ブロックBLK2、BLK3、及び
BLK4は2段パイプラインで実現されており、あるサ
イクルでの演算結果はそのサイクルの終りではなく、次
のサイクルの終りに出力される。また、1420及び1
421は、各々内部信号線O及びPであり、Oは機能ブ
ロックBLK1のY出力、Pは機能ブロックBLK3の
Y出力に接続されている。
【0171】図16は、本実施形態における、図14で
示した回路に対する電力モードピン状態毎の消費電力情
報の一例を示す図である。1601、1602、160
3、及び1604は、機能ブロックBLK1、BLK
2、BLK3、及びBLK4の電力モードピン状態毎の
消費電力情報である。機能ブロックBLK1では入力ピ
ンM[1:0]を電力モードピンとし、その値が0、
1、2、及び3の状態での消費電力が、各々、20、2
5、15、及び10μW/MHzと求められている。機
能ブロックBLK2では入力ピンMを電力モードピンと
し、さらにこの機能ブロックBLK2は2段パイプライ
ン構造を用いたものであり、ある時刻の電力モードピン
の状態だけでなく、一サイクル前の電力モードピンの状
態にも消費電力が依存する。よって、各モードピンの状
態毎に、パイプライン・ステージ1とパイプライン・ス
テージ2との、各々の消費電力が求められている。例え
ば、1602の表では、電力モードピンMが0の場合、
パイプライン・ステージ1では35μW/MHz、パイ
プライン・ステージ2、つまり次のサイクルではそのサ
イクルでの電力モードピンの状態にかかわらず、15μ
W/MHzの電力を消費することを意味している。機能
ブロックBLK3は、入力ピンの状態に依存せず、毎サ
イクル毎に55μW/MHzの消費電力が定義されてい
る。つまり、この場合電力モードピンは定義されない。
機能ブロックBLK4は、シフト量を定義する入力S
[4:0]を電力モードピンとし、シフト量が16(1
6進数:10)ビット未満の場合と、16ビット以上の
場合で消費電力値が異なり、さらに、2段パイプライン
構造であり、S[4:0]が16ビット未満の場合、そ
のサイクルで5μW/MHz、次のサイクルで15μW
/MHz、S[4:0]が16ビット以上の場合、その
サイクルで20μW/MHz、次のサイクルで30μW
/MHzを消費すると定義されている。これら電力モー
ドピン状態毎の消費電力情報中の消費電力は、予め、こ
れら動作レベルでの機能ブロックを用いたシミュレーシ
ョン実行前に、各ブロックをゲートレベルやトランジス
タレベルで実現したデータを基に、ゲートレベルシミュ
レーションや回路シミュレーション等によりどのピンの
状態が消費電力に大きな影響を与えるかを評価し消費電
力を求めておいたものである。
【0172】図13で示した処理の流れにより、図14
で示した回路に対する動作のシミュレーションを行なっ
た結果の一例を図15に、その時に図16の電力モード
ピン毎の消費電力情報を用いて消費電力のシミュレーシ
ョンを行なった結果を図17に示す。図15の波形中の
数字は全て16進数表示である。この時の処理の流れ
を、図13で示したフローに従って説明する。
【0173】最初、シミュレーション時刻は、0nsか
ら始まるが、回路の各入力ピンの状態は0であり、内部
信号線や出力ピンは不定値(以下X)になっている。ま
ず、CLKが時刻0nsで立ち上がると、ブロック入力
値設定処理1301により、各ブロックの入力ピンの値
が準備される。時刻0nsでは、全ての入力ピンは0、
内部信号線はXであり、各ブロックの入力ピンの状態
は、以下の様に準備される。 (式501) BLK1:A=0、B=0、M=0 BLK2:A=X、B=X、M=0 BLK3:A=0、B=0 BLK4:A=X、S=0 次に、ブロック評価処理1302で、(式501)の入
力ピンの状態に基づいて新しい状態が次の(式502)
の様に計算される。ここで、{ }内はパイプラインの
1段目(ステージ1)が終了した計算途中の内部状態で
ある。 (式502) BLK1:Y=0 BLK2:{A=X、B=X、M=0}、Y=X BLK3:{A=0、B=0}、Y=X BLK4:{A=X、S=0}、Y=X 次に、ブロック出力値取得処理1303により各機能ブ
ロックの出力ピンの状態が更新される。ここで、遅延を
考慮したシミュレーションの場合には、各出力ピン又は
機能ブロックに定義された遅延時間に従って、出力ピン
の状態が更新される。
【0174】次にブロックの消費電力計算処理1304
及び消費電力集計処理1305で消費電力計算が行なわ
れるが、シミュレーション開始直後のサイクルでは内部
状態が安定していないので、ここでは計算を行なってい
ない。続いて、シミュレーション終了判定処理1306
を経て、時刻更新処理1307で時刻を100n、サイ
クル1に進め、サイクル1のシミュレーション処理へ移
る。
【0175】次に、サイクル1では、ブロック入力値設
定処理1301では以下の(式503)に示す様に入力
ピンの状態が準備される。 (式503) BLK1:A=0F23、B=05FA、M=0 BLK2:A=X、B=0、M=0 BLK3:A=3B50、B=2590 BLK4:A=X、S=0 次に、ブロック評価処理1302で、(式503)に基
づき、以下の様に各ブロックの状態が計算され、ブロッ
ク出力取得1303で各出力ピンの状態が出力される。 (式504) BLK1:Y=151D BLK2:{A=X、B=0、M=0}、Y=X BLK3:{A=3B50、B=2590}、Y=0 BLK4:{A=X、S=0}、Y=X 次に、ブロック消費電力計算処理1304で、各ブロッ
クの消費電力が計算される。まず、以下の様に各ブロッ
クの電力モードピンの状態が調べられる。()内のステ
ージはパイプライン・ステージ数であり、ステージ1は
現在のクロックサイクル、ステージ2は一サイクル前の
0サイクルでの電力モードピンの状態である。 (式505) BLK1:M=0 BLK2:M=0(ステージ1)、M=0(ステージ
2) BLK4:S=0(ステージ1)、S=0(ステージ
2) そして、この電力モードピンの状態に基づき、図16で
示した電力モードピン毎の消費電力情報1601、16
02、1603、及び1604より該当する消費電力が
以下の様に得られる。 (式506) BLK1:20 BLK2:35(ステージ1)、15(ステージ2)、
50(小計) BLK3:55 BLK4:5(ステージ1)、15(ステージ2)、2
0(小計) これらが、消費電力集計処理1305で、合計され、1
45μW/MHzの消費電力が得られる。ここでは、1
00ns周期、つまり、10MHzで動作しているの
で、周期(T)あたりの消費電力は、1450μW/M
Hzとなる。これらの一連の消費電力の計算結果をまと
めると、図17のサイクル1の欄の様になる。
【0176】これらの処理をサイクルを1ずつ進めなが
ら繰り返し、目的のシミュレーション時刻までの、動作
及び消費電力のシミュレーションが実行される。ここで
は、全てのサイクルの説明は省略するが、例えば、サイ
クル5では、ブロック入力値設定処理1301は、 (式507) BLK1:A=0153、B=75AC、M=2 BLK2:A=0010A460、B=E780、M=
1 BLK3:A=3B50、B=2590 BLK4:A=0010A460、S=18 であり、ブロック評価処理1302では、 (式508) BLK1:Y=74FF BLK2:{A=0010A460、B=E780、M
=1}、Y=BF9DD255 BLK3:{A=3B50、B=2590}、Y=12
F35AE9 BLK4:{A=0010A460、S=18}、Y=
BF9C0496 と計算され、ブロック消費電力計算処理1304で、各
電力モードピンの状態は、 (式509) BLK1:M=2 BLK2:M=1(ステージ1)、M=0(ステージ
2) BLK4:S=18(ステージ1)、S=0(ステージ
2) であり、この電力モードピンの状態に基づき、 (式510) BLK1:15 BLK2:40(ステージ1)、15(ステージ2)、
55(小計) BLK3:55 BLK4:20(ステージ1)、15(ステージ2)、
35(小計) と消費電力が計算され、合計値は、160μW/MH
z、1600μW/Tとなる。これらの処理が、7サイ
クルまで行なわれた結果は、図15及び図17に示した
ものとなる。
【0177】ここで、回路中の動作レベルの機能ブロッ
クの消費電力は、機能ブロックBLK3の様に各サイク
ル一定のものもあるが、他の機能ブロックの様にその動
作状態に依存し、変化する場合があるが、シミュレーシ
ョン実行前に、各機能ブロックの消費電力の動作状態へ
の依存度を調べ、その依存性を反映できる1個以上の入
力ピン又は出力ピンを電力モードピンとし、その電力モ
ードピンの状態別の消費電力を求め、電力モードピン状
態毎の消費電力情報として記憶しておき、それによりシ
ミュレーション中に動的に、各機能ブロックの動作を模
擬すると同時に消費電力を正しく求めることができる。
また、電力モードピン状態毎の消費電力情報は、テーブ
ル形式等で情報を記憶しておくことにより、簡単に各機
能ブロックの動作状態に対応した消費電力を検索するこ
とが可能であり、本来の動作シミュレーション速度をほ
とんど低下させることなく、実現が可能である。
【0178】なお、本実施形態では、各機能ブロックの
入力ピンを電力モードピンとして指定しているが、対象
となる機能ブロックの消費電力の動作依存性に従って、
通常の出力ピンや消費電力計算のための内部状態をピン
として外部に出した仮想的な出力ピンの状態を利用する
場合があることは、言うまでもない。
【0179】また、本実施形態では、各機能ブロックの
消費電力の計算とそれらの集計を行ない回路全体の消費
電力計算をシミュレーション実行中に行なっているが、
各シミュレーション時刻毎の電力モードピンの状態をフ
ァイル等の記憶手段に保存しておき、シミュレーション
実行後にそれらの情報を基に各機能ブロックの消費電力
の計算とそれらの集計を行ない回路全体の消費電力計算
を行なっても同様の結果が得られることは言うまでもな
い。
【0180】(第6の実施の形態)第6の実施の形態で
は、請求項5、請求項8に係る発明について図を用いて
説明する。
【0181】図18は、請求項5、請求項8に係る消費
電力のシミュレーション方法を詳細に示すフローチャー
トである。図18において1801はシミュレーション
対象となる回路内の各部を初期化とクロックサイクルを
初期化する初期化処理である。プロセッサ部に対しては
命令動作をシミュレートするプロセッサモデルに与えら
れるプログラムコードを記憶する記憶手段および当該プ
ロセッサモデルが持つレジスタ、メモリを初期化し、シ
ミュレートするプロセッサモデルに与えるプログラムコ
ードを読み込み、シミュレーションを開始する命令の位
置とシミュレーションを終了する命令の位置を設定す
る。1802はプロセッサ部の現クロックサイクルにお
ける実行処理をシミュレートし、プロセッサ部の消費電
力を計算するプロセッサ部処理である。1803は動作
レベル回路部の各機能ブロック入力ピンの値を設定し、
各機能ブロックの入力ピンの値と内部状態から各機能ブ
ロックの新しい状態と出力ピンの値を求めることによ
り、現クロックサイクルの各機能ブロックの動作をシミ
ュレートし、当該動作の消費電力を計算する動作レベル
回路部処理である。1804は現クロックサイクルの回
路中の論理回路部の動作をシミュレートし、消費電力を
計算する論理回路処理である。1805は実行した命令
毎に、プロセッサ部、動作レベル回路部内の各機能ブロ
ック、論理回路部の各ゲートの消費電力を集計し、出力
する消費電力集計出力処理である。1806はシミュレ
ートするプログラムコードが終了しているかを判定し、
終了している場合にはシミュレーション実行を終了し、
終了していない場合には処理を継続するシミュレーショ
ン終了判定処理、1807はシミュレーションの実行ク
ロックサイクルを進めるクロック更新処理であり、クロ
ック更新処理1807の後、新しいクロックサイクルに
対して、1802から1805まで行われ、これらの処
理がシミュレートするプログラムコードが終了するまで
繰り返される。
【0182】図20の2001はシミュレーション対象
となる一回路例である。図20の2004は命令を処理
するCPUブロック、2005はプログラムコードを記
憶する内部メモリブロックであり、CPUブロックと内
部メモリブロックより2002のプロセッサ部を構成し
ている。このプロセッサ部は命令セットとして、図2の
201の命令セットを持つ。また、当該プロセッサ部は
命令の処理ステージとして4つのステージを持ち、それ
ぞれ、フェッチ/デコードステージ、命令実行1ステー
ジ、命令実行2ステージ、ライトバックステージであ
る。フェッチ/デコードステージでは、命令を読み出
し、解釈するフェッチ/デコード処理が行われる。この
ステージではプロセッサ部の出力ピンは変化しない。命
令実行1ステージ、および命令実行2ステージにおい
て、命令MOVではソースで指定されるレジスタaまた
はレジスタbまたは定数値を読み込み、命令MULでは
ソースで指定されるレジスタaまたはレジスタbまたは
定数値とデスティネーションで指定されるレジスタaま
たはレジスタbとを乗算し、命令BEQでは比較結果フ
ラグの状態を読み込んで命令実行位置を判定し、命令C
MPではソースで指定されるレジスタaまたはレジスタ
bまたは定数値とデスティネーションで指定されるレジ
スタaまたはレジスタbとを比較し、命令JMPではラ
ベルで指定されている命令位置を読み込み、命令RET
Iでは割り込み信号が入力される前に処理されていた命
令位置を読み込み、命令NOPでは何も処理されない。
これらの命令では命令実行1ステージおよび命令実行2
ステージで、プロセッサ部の出力ピンは変化しない。命
令LDにおいて命令実行1ステージでは、プロセッサ部
の出力ピンであるADをプログラムコードに指定されて
いるアドレスに設定し、 ̄RREQを0に設定する。命
令LDの命令実行ステージ2では、プロセッサ部の入出
力ピンDTの値を読み込んだ後に、出力ピンADを値X
に、 ̄RREQを1に設定する。命令STにおいて命令
実行1ステージでは、プロセッサ部の出力ピンであるA
Dをプログラムコードに指定されているアドレスに設定
し、 ̄WREQを0に設定し、プロセッサ部の入出力ピ
ンDTにプログラムコードで指定されている値を出力す
る。命令STの命令実行ステージ2では、出力ピンAD
を値Xに、 ̄WREQを1に、入出力ピンDTを不定値
Xに設定する。ライトバックステージにおいて、命令L
Dでは読み込まれたデータをデスティネーションで指定
されているレジスタaまたはレジスタbに書き込み、命
令STでは何も処理せず、命令MOVではデスティネー
ションで指定されるレジスタaまたはレジスタbに読み
込まれた値を書き込み、命令MULではデスティネーシ
ョンで指定されるレジスタaまたはレジスタbに乗算結
果を書き込み、命令BEQでは命令実行位置を設定し、
命令CMPでは比較結果より比較結果フラグを設定し、
命令JMPでは実行命令位置を設定し、命令RETIで
は実行命令位置を設定し、命令NOPでは何も処理され
ない。ライトバックステージでは全ての命令においてプ
ロセッサ部の出力ピンは変化しない。2006は2入力
NANDゲート、2007、2008、2009はイン
バータゲートであり、2003は論理シミュレータでシ
ミュレートされる論理回路部である。2010は機能ブ
ロックBLK1である。BLK1は外部メモリであり、
その処理内容は入力ピンM1、M2の状態に依存してい
る。2011に示すように入力ピンM1が1の場合、メ
モリへの書き込みを行う入力モード、M2が1の場合メ
モリからの読み出しを行う出力モードである。M1、M
2の両者が0の場合、BLK1は何も行わず、M1、M
2がともに1の場合は不正な入力であり動作は規定され
ていない。このBLK1の入力モードの動作は、あるサ
イクルにおいて入力ピンM1が1である場合、同一サイ
クル時の入力ピンADの値と入出力ピンDTの値を読み
込み、このADの値のアドレスにDTの値のデータを書
き込む。このBLK1の出力モードの動作は、あるサイ
クルにおいて入力ピンM2が1である場合、同一サイク
ル時の入力ピンADの値を読み込み、次サイクルで、こ
のADの値のアドレスのデータを入出力ピンDTに出力
し、出力したサイクルの次サイクルで入出力ピンDTの
値を不定値Xにする。
【0183】図19は本実施の形態における図18の1
802のプロセッサ部処理をより詳細に示すフローチャ
ートである。1901はプロセッサ部の入力ピンの値を
準備する入力値設定処理であり、1902は命令の実行
において、現クロックサイクルがフェッチ/デコードス
テージにあるかを判定するフェッチ/デコード判定処理
であり、フェッチ/デコードステージと判定されると、
1909の現命令実行位置の命令を読み出し、解釈する
フェッチでコード処理が行われる。1903は命令の実
行において、現クロックサイクルが命令実行1ステージ
にあるかを判定する命令実行1判定処理であり、命令実
行1ステージと判定されると、1910の現命令実行位
置の命令の命令実行処理1が行われる。1904は命令
の実行において、現クロックサイクルが命令実行2ステ
ージにあるかを判定する命令実行2判定処理であり、命
令実行2ステージと判定されると、1911の現命令実
行位置の命令の命令実行処理2が行われる。1905は
現命令実行位置の命令のライトバック処理である。19
06は割り込み入力が入力されているかを判定する割り
込み判定処理であり、割り込みと判定された場合、19
12のライトバック処理後のレジスタ値を別記憶手段に
退避し、次の実行命令位置を変更する割り込み処理が行
われる。1907は現命令と割り込み処理において消費
される消費電力を計算する消費電力値計算処理であり、
1908は現命令の処理ステージにおいて、出力ピンを
設定する出力ピン設定処理である。
【0184】図21は、本実施の形態における図20で
示した回路に対する消費電力情報の一例である。210
1はプロセッサ部の消費電力情報である。2107は各
命令毎に消費される消費電力値であり、2108は割り
込み処理時の消費電力値である。2102は機能ブロッ
クの電力モードピン状態毎の消費電力情報であり、21
03はNANDゲートであり、2104は2103のN
ANDゲートの出力ピンが変化する場合に消費される電
力情報である。2105はインバータゲートであり、2
106はインバータゲートの出力ピンが変化する場合に
消費される電力情報である。単位は全てμW/MHzで
ある。
【0185】図22は、本実施の形態における図20で
示した2002のプロセッサ部に与えられるプログラム
コードの一例である。図22において一列が一命令を表
しており、左からラベル、命令、デスティネーション、
ソースの順番で記述されており、2211、2212、
2213は割り込み信号がセットされ、割り込み処理時
に実行されるプログラムコードである。本実施の形態の
初期化では、シミュレートの開始命令位置は2221の
命令に設定され、終了命令位置は2226に設定され
る。
【0186】図31は第6の実施の形態に係るハードウ
エアの構成図の一例を示しており、図31において、3
101は処理されたあらゆる情報をみるためのディスプ
レイ装置、3102は設計者があらゆる情報や処理命令
を入力するためのキーボード、3103はあらゆる処理
を行う中央演算処理装置、3104は各情報を格納する
記憶装置である。
【0187】以下、第6の実施の形態に係る消費電力の
シミュレーション方法を図18、図19のフローに基づ
きプログラムコード2201を実行した場合を例に用い
て具体的に説明する。シミュレートの結果算出される消
費電力値を図23に示し、また、シミュレーション時の
各入出力ピンの波形を図32、図33に、途中に計算さ
れている消費電力値を図34、図35に示す。なお、図
32では、CLKの長さが、クロックサイクル1から
8、17から24と、クロックサイクル9から16で異
なるが、これはクロック周期が異なることを表したもの
ではなく、信号線の波形が変化している部分の動作をよ
り詳細に分かりやすく示すために変更しているものであ
る。
【0188】1801の初期化ではプログラムの実行の
ための初期化を行う。本実施の形態では、回路の各入出
力ピンおよび内部信号線、プロセッサ部、動作レベル回
路部、論理回路部が初期化される。 ̄RESETを1
に、INTAを0にINTBを1に初期化し、このため
プロセッサ部の ̄INTピンも1に初期化される。プロ
セッサ部の入出力ピンと内部状態も初期化され、 ̄WR
EQ、 ̄RREQがともに1、AD、DTが不定値(以
下X)に初期化される。プロセッサ部の内部の処理ステ
ージもフェッチ/デコードステージに初期化される。こ
の処理ステージは1クロックサイクル毎にフェッチ/デ
コード、命令実行1、命令実行2、ライトバックと変化
し、次のクロックサイクルでフェッチ/デコードステー
ジに戻る。プロセッサ部にプログラムコード2201が
読み込まれ、シミュレート開始命令位置が2221、シ
ミュレート終了命令位置が2226に設定される。BL
K1のM1、M2はともに0に初期化される。また、B
LK1のアドレス[A0]には値02をアドレス[A
1]には値03を初期値として与え、CLKには周期的
に0と1に値が変化するクロック信号が与えられるもの
とする。
【0189】1802のプロセッサ部の処理は、本実施
の形態のプロセッサ部では、図19のフローとなるた
め、1901のプロセッサ部の入力ピンが読み込まれ
る。シミュレーションの開始時であるため、入力ピンの
値は初期化時の値と変らない。
【0190】プロセッサ部はフェッチ/デコードステー
ジであるため、1902により1909に処理は移り、
シミュレート開始命令位置のプログラムコードの222
1の命令MOVがフェッチ/デコードされる。
【0191】次に1908の出力ピン設定処理が行われ
るが、命令MOVのフェッチ/デコードステージではプ
ロセッサ部の出力ピンは変化しない。
【0192】1803の動作レベル回路部の処理が行わ
れる。BLK1では機能ブロックの入力ピンの値を設定
する。1クロックサイクル目の入力ピンの値は、論理回
路部がまだシミュレートされていないため、初期値が設
定される。BLK1の入力ピンの値と内部状態からBL
K1の新しい状態と出力ピンの値を求める。BLK1の
M1、M2はともに0であるため、2011の動作モー
ドよりBLK1の出力ピンは変化しない。また、動作レ
ベル回路部の消費電力として、消費電力情報2102よ
り、BLK1の消費電力は5μW/MHzと計算され、
1クロックサイクル目として記憶される。
【0193】次に1804の論理回路部の処理が行われ
る。1クロックサイクル目では、論理回路部の入力ピン
は変化していないため、出力ピンも変化しない。各論理
ゲートの出力が変化しないため、消費電力値は0とな
る。
【0194】次に1805では、まだ命令の処理の途中
であるフェッチ/デコードステージであるため、集計さ
れない。
【0195】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理は移る。
【0196】1901でプロセッサ部の入力ピンが読み
込まれる。1クロックサイクル目では変化していないた
め、入力ピンの値は初期化時の値と変らない。
【0197】プロセッサ部は命令実行1ステージである
ため、1903により1910に処理は移り、プログラ
ムコードの2221の命令MOVの命令実行1ステージ
の処理が行われる。
【0198】次に1908の出力ピン設定処理が行われ
るが、命令MOVの命令実行1ステージではプロセッサ
部の出力ピンは変化しない。
【0199】1803の動作レベル回路部の処理が行わ
れる。1クロックサイクル目の処理と同様に、BLK1
の消費電力は2102より5μW/MHzと計算され、
2クロックサイクル目として記憶される。次の1804
の論理回路部の処理も前のサイクルの処理と同様に、各
論理ゲートの出力が変化しないため、消費電力値は0と
なる。
【0200】次に1805では、まだ命令の処理の途中
である命令実行1ステージであるため、集計されない。
【0201】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理が移る。
【0202】1901のプロセッサ部の入力ピンが読み
込まれる。2クロックサイクル目では変化していないた
め、入力ピンの値は初期化時の値と変らない。
【0203】プロセッサ部は命令実行2ステージである
ため、1904により1911に処理は移り、プログラ
ムコードの2221の命令MOVの命令実行2ステージ
の処理が行われる。
【0204】次に1908の出力ピン設定処理が行われ
るが、命令MOVの命令実行2ステージではプロセッサ
部の出力ピンは変化しない。
【0205】1803の動作レベル回路部の処理が行わ
れる。前のサイクルの処理と同様に、BLK1の消費電
力は2102より5μW/MHzと計算され、3クロッ
クサイクル目として記憶される。次の1804の論理回
路部の処理も前のサイクルの処理と同様に、各論理ゲー
トの出力が変化しないため、消費電力値は0となる。
【0206】次に1805では、まだ命令の処理の途中
である命令実行2ステージであるため、集計されない。
【0207】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理が移る。
【0208】1901のプロセッサ部の入力ピンが読み
込まれる。前クロックサイクルでは変化していないた
め、入力ピンの値は初期化時の値と変らない。
【0209】プロセッサ部はライトバックステージであ
るため、1905によりプログラムコードの2221の
定数値1がレジスタbに書き込まれる。
【0210】1906の割り込み判定処理では、4クロ
ックサイクル目においてプロセッサ部の入力ピン ̄IN
Tは1であり、割り込み入力は行われていないと判定さ
れる1907に移る。
【0211】1907ではプロセッサ部の命令MOVの
消費電力として、消費電力情報2101より30μW/
MHzと算出され、4クロックサイクル目で1つ目の命
令に対する消費電力値として記憶される。
【0212】次に1908の出力ピン設定処理が行われ
るが、命令MOVのライトバックステージではプロセッ
サ部の出力ピンは変化しない。
【0213】1803の動作レベル回路部の処理が行わ
れる。前のサイクルの処理と同様に、BLK1の消費電
力は2102より5μW/MHzと計算され、4クロッ
クサイクル目として記憶される。次の1804の論理回
路部の処理も前のサイクルの処理と同様に、各論理ゲー
トの出力が変化しないため、消費電力値は0となる。
【0214】次に1805では、プロセッサ部で処理す
る命令のライトバックステージであるため、回路内の各
部で算出された消費電力値を積算し、プロセッサ部の命
令MOVをシミュレートする時に消費した電力値を算出
し、出力する。プロセッサ部は1907で算出された3
0μW/MHzであり、動作レベル回路部は、1から4
クロックサイクルまで、各ロックサイクル毎に5μW/
MHzであるため、この4クロックサイクル分で20μ
W/MHzあり、論理回路部は0積算値μW/MHz
で、積算値は50μW/MHzとなる。
【0215】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理が移る。
【0216】次に処理される命令は2222の命令CM
Pであり、フェッチ/デコードステージから、ライトバ
ックステージの5クロックサイクル目から8クロックサ
イクル目までで処理される。この命令も各ステージでプ
ロセッサ部の出力ピンを変化させず、また、回路への入
力ピンも5クロックサイクル目から8クロックサイクル
目までの間に変化しない。プロセッサ内部では、レジス
タbの値と定数値1が比較される。レジスタbは4クロ
ックサイクル目に1が書き込まれているため、等しいと
判定され、比較結果フラグがセットされる。プロセッサ
部の消費電力値としては、消費電力情報2101より、
命令CMPに対応する30μW/MHzが算出され、B
LK1はM1、M2とも0で変化せず、各クロックサイ
クル毎に5μW/MHzが消費され、積算値50μW/
MHzが算出される。
【0217】次に処理される命令は2223の命令BE
Qであり、フェッチ/デコードステージから、ライトバ
ックステージの9クロックサイクル目から12クロック
サイクル目までで処理される。この命令も各ステージで
プロセッサ部の出力ピンを変化させないが、回路への入
力ピンのうちINTAが11クロックサイクル目で0か
ら1に変化する。
【0218】9クロックサイクル目から10クロックサ
イクル目については、回路の入力ピンは変化せず、回路
内の内部信号線は変化しない。8クロックサイクル目ま
でと同様に動作レベル回路部、論理回路部は処理され、
論理レベル回路部は各クロックサイクル毎に5μW/M
Hzと算出され、論理回路部は0μW/MHzと算出さ
れる。
【0219】11クロックサイクル目の1802のプロ
セッサ部の命令実行2ステージの処理の後、1803の
動作レベル回路部の処理が行われ、10クロックサイク
ル目と同様に5μW/MHzと算出され、1804の論
理回路部の処理が行われる。
【0220】1804では2006のNANDゲートの
入力ピンが変化し、出力が1から0に変化する。この時
の2006のNANDゲートの消費電力は消費電力情報
2104より0.1μW/MHzと算出される。他のゲ
ートについては出力が変化していないため、消費電力値
は0μW/MHzとなる。
【0221】次に1805では、まだ命令の処理の途中
である命令実行2ステージであるため、集計されず、1
806の終了判定処理により、シミュレートするプログ
ラムコードが終了していないと判定され、処理を継続
し、1807により、クロックサイクルを進めて12ク
ロックサイクル目として、1802に戻り、1901に
処理が移る。
【0222】1901のプロセッサ部の入力ピンが読み
込まれる。12クロックサイクル目ではプロセッサ部の
入力 ̄INTが0に変化している。プロセッサ部はライ
トバックステージであるため、1905のライトバック
処理では、プログラムコードの2223の命令BEQに
より、8サイクル目で書き込まれた比較結果フラグがセ
ットされているため、次に実行する実行命令位置をLO
OPとラベルされている命令2222に設定する。
【0223】1906の割り込み判定では、 ̄INTが
0であるため、割り込みと判定され、1912が処理さ
れる。
【0224】1912では、現在のレジスタ値、命令実
行位置を割り込み処理用の記憶領域に退避し、命令実行
位置をプログラムコードの2211の命令に設定する。
【0225】1907ではプロセッサ部の命令BEQの
消費電力として、消費電力情報2101より20μW/
MHzと算出され、さらに消費電力情報2108より割
り込み処理の20μW/MHzが算出され、合計の40
μW/MHzが12クロックサイクル目で3つ目の命令
に対するプロセッサ部の消費電力値として記憶される。
【0226】次に1908の出力ピン設定処理が行われ
るが、命令BEQのライトバックステージでは出力ピン
は変化しないが、割り込み処理により ̄INTACKが
0に設定される。
【0227】1803の動作レベル回路部の処理が行わ
れる。11のサイクルの処理と同様に、BLK1の消費
電力は2102より5μW/MHzと計算され、12ク
ロックサイクル目として記憶される。次の1804の論
理回路部ではプロセッサ部の出力ピン ̄INTACKが
変化しており、回路の出力ピンINTACKが1に変化
する。このため、消費電力情報2106よりの論理ゲー
ト2007のINV1の消費電力値として、0.2μW
/MHzが算出される。他の論理ゲートについては、出
力が変化しないため、消費電力値は0μW/MHzとな
る。
【0228】次に1805では、プロセッサ部で処理す
る命令のライトバックステージであるため、回路内の各
部で算出された消費電力値を積算し出力する。プロセッ
サ部は1907で算出された40μW/MHzであり、
動作レベル回路部は、9から12クロックサイクル目ま
で、各クロックサイクル毎に5μW/MHz、論理回路
部は、11クロックサイクル目でNANDの0.1μW
/MHz、12クロックサイクル目でINV1の0.2
μW/MHzで、60.3μW/MHzが算出される。
【0229】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理が移る。
【0230】13クロックサイクル目の処理として、1
901のプロセッサ部の入力ピンが読み込まれる。プロ
セッサ部はフェッチ/デコードステージであるため、1
902により1909に処理は移り、シミュレート開始
命令位置のプログラムコードの2211の命令LDがフ
ェッチ/デコードされる。
【0231】次に1908の出力ピン設定処理が行われ
るが、命令LDのフェッチ/デコードステージではプロ
セッサ部の出力ピンは変化しないが、12クロックサイ
クル目の割り込み処理に対して、 ̄INTACKが1に
設定される。
【0232】1803の動作レベル回路部の処理が行わ
れる。BLK1では機能ブロックの入力ピンの値を設定
し、BLK1の入力ピンの値と内部状態からBLK1の
新しい状態と出力ピンの値を求める。このクロックサイ
クル時はBLK1のM1、M2はともに0であるため、
2011の動作モードよりBLK1の出力ピンは変化し
ない。また、動作レベル回路部の消費電力として、消費
電力情報2102より、BLK1の消費電力は5μW/
MHzと計算され、13クロックサイクル目として記憶
される。
【0233】次に1804の論理回路部の処理が行われ
る。13クロックサイクル目では、2007のINV1
の入力が変化し、出力ピンが0から1に変化し、回路の
出力ピンINTACKが1から0に変化する。このため
論理ゲート2007のINV1の消費電力値として消費
電力情報2106より0.1μW/MHzが算出され
る。
【0234】次に1805では、まだ命令の処理の途中
であるフェッチ/デコードステージであるため、集計さ
れない。
【0235】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理は移る。
【0236】14クロックサイクル目として、1901
のプロセッサ部の入力ピンが読み込まれる。回路の入力
ピンINTAが1から0に変化しているが、14クロッ
クサイクル目の論理回路部はまだシミュレートされてい
ないため、13クロックサイクル目の入力を読み込む。
【0237】プロセッサ部は命令実行1ステージである
ため、1903により1910に処理は移り、プログラ
ムコードの2211の命令LDの命令実行1ステージの
処理が行われる。
【0238】次に1908の出力ピン設定処理が行われ
るが、命令LDにおいて命令実行1ステージでは、プロ
セッサ部の出力ピンであるADをプログラムコードに指
定されているアドレス、この場合A0に設定し、 ̄RR
EQを0に設定する。
【0239】1803の動作レベル回路部の処理が行わ
れる。動作レベル回路部2010の入力は、論理回路部
の出力ピンであり、14クロックサイクル目の論理回路
部はまだシミュレートされていないため、13クロック
サイクル目の値により動作レベル回路部は処理される。
M1、M2がともに0であり、BLK1の消費電力は2
102より5μW/MHzと計算される。
【0240】次の1804の論理回路部の処理は、回路
の入力ピンINTA、およびプロセッサ部の出力ピン ̄
RREQとADが変化しており、論理ゲート2006の
NANDの出力が0から1に変化し、論理ゲート200
9のINV3の出力が0から1に変化し、論理回路部の
出力ピンが設定される。論理ゲートの出力値の変化よ
り、消費電力情報2104と2106より論理ゲート2
006のNANDの消費電力値として0.4μW/MH
z、論理ゲート2009のINV3の消費電力値として
0.2μW/MHzが算出され、論理回路部の消費電力
値として0.6μW/MHzが算出される。
【0241】次に1805では、まだ命令の処理の途中
である命令実行1ステージであるため、集計されない。
【0242】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理が移る。
【0243】15クロックサイクル目として、1901
のプロセッサ部の入力ピンが読み込まれ、14クロック
サイクル目で0から1に変化した ̄INTの値もここで
読み込まれる。
【0244】プロセッサ部は命令実行2ステージである
ため、1904により1911に処理は移り、プログラ
ムコードの2211の命令LDの命令実行2ステージの
処理が行われる。
【0245】次に1908の出力ピン設定処理が行われ
るが、命令LDにおいて命令実行2ステージでは、プロ
セッサ部の出力ピンであるADを不定値Xに、 ̄RRE
Qを1に設定する。
【0246】1803の動作レベル回路部の処理が行わ
れる。動作レベル回路部2010の入力は、論理回路部
の出力ピンであり、15クロックサイクル目の論理回路
部はまだシミュレートされていないため、14クロック
サイクル目の値により動作レベル回路部は処理される。
M1は0、M2は1であり、BLK1は出力モードで処
理される。BLK1は動作レベル回路部の入力ピンAD
の値A0のアドレスの値を入出力ピンDTに設定する。
1801の初期化処理でアドレスA0には値02が格納
されているため、入出力ピンDTには値02が設定され
る。動作レベル回路部の消費電力は消費電力情報210
2より25μW/MHzと計算される。
【0247】次の1804の論理回路部の処理は、およ
びプロセッサ部の出力ピン ̄RREQとADが変化して
おり、論理ゲート2009のINV3の出力が1から0
に変化し、論理回路部の出力ピンが設定される。他の論
理ゲートの出力は変化しない。論理ゲートの出力値の変
化より、消費電力情報2106よりINV3の消費電力
値として0.1μW/MHzが算出される。
【0248】次に1805では、まだ命令の処理の途中
である命令実行2ステージであるため、集計されない。
【0249】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理が移る。
【0250】16クロックサイクル目として、1901
のプロセッサ部の入力ピンが読み込まれる。プロセッサ
部の入出力ピンDTが不定値Xから値02に変化してい
る。
【0251】プロセッサ部はライトバックステージであ
るため、1905のライトバック処理が行われる。プロ
セッサ部の入出力ピンDTの値02がプログラムコード
2211で指定されているレジスタaに書き込まれる。
【0252】1906の割り込み判定処理では、16ク
ロックサイクル目においてプロセッサ部の入力ピン ̄I
NTは1であり、割り込み入力は行われていないと判定
され1907に移る。
【0253】1907ではプロセッサ部の命令LDの消
費電力として、消費電力情報2101より40μW/M
Hzと算出され、16クロックサイクル目で1つの命令
に対する消費電力値として記憶される。
【0254】次に1908の出力ピン設定処理が行われ
るが、命令LDにおいてライトバックステージでは、プ
ロセッサ部の出力ピンを変化させない。
【0255】1803の動作レベル回路部の処理が行わ
れる。動作レベル回路部2010の入力は、論理回路部
の出力ピンであり、16クロックサイクル目の論理回路
部はまだシミュレートされていないため、15クロック
サイクル目の値により動作レベル回路部は処理される。
動作レベル回路部の出力ピンDTが不定値Xに設定され
る。消費電力はM1、M2がともに0であり、BLK1
の消費電力は2102より5μW/MHzと計算され
る。
【0256】次の1804の論理回路部の処理は、論理
回路部の入力は何も変化していないため、各論理ゲート
の出力は変化しない。このため、消費電力値として0μ
W/MHzが算出される。
【0257】次に1805では、プロセッサ部で処理す
る命令のライトバックステージであるため、回路内の各
部で算出された消費電力値を積算し、プロセッサ部の命
令LDをシミュレートの間に消費した電力値を算出し、
出力する。プロセッサ部の消費電力は1907で算出さ
れた40μW/MHzであり、動作レベル回路部は、1
3、14、16クロックサイクル目で、各クロックサイ
クル毎に5μW/MHz、15クロックサイクル目で2
5μW/MHzであり、論理回路部の各論理ゲートの消
費電力値が13クロックサイクル目でINV1が0.1
μW/MHz、NANDが14クロックサイクル目で
0.4μW/MHz、INV3が14クロックサイクル
目で0.2μW/MHz、15クロックサイクル目で
0.1μW/MHzであるため、この4クロックサイク
ル分で積算値80.8μW/MHzとなる。
【0258】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理が移る。
【0259】次に処理される命令は2212の命令MO
Vであり、フェッチ/デコードステージから、ライトバ
ックステージの17クロックサイクル目から20クロッ
クサイクル目までで処理される。この命令も各ステージ
でプロセッサ部の出力ピンを変化させず、また、回路へ
の入力ピンも17クロックサイクル目から20クロック
サイクル目までの間に変化しない。プロセッサ内部で
は、20クロックサイクル目のライトバックステージで
レジスタbに定数値0が書き込まれる。プロセッサ部の
消費電力値としては、消費電力情報2101より、命令
MOVに対応する30μW/MHzが算出され、BLK
1はM1、M2とも0で変化せず、各クロックサイクル
毎に5μW/MHzが消費され、積算値50μW/MH
zが算出される。
【0260】次に処理される命令は2213の命令RE
TIであり、フェッチ/デコードステージから、ライト
バックステージの21クロックサイクル目から24クロ
ックサイクル目までで処理される。この命令も各ステー
ジでプロセッサ部の出力ピンを変化させず、また、回路
への入力ピンも21クロックサイクル目から24クロッ
クサイクル目までの間に変化しない。プロセッサ内部で
は、ライトバックステージで、12クロックサイクル目
で退避されたデータを復帰し、次の命令実行位置をプロ
グラムコード2201の2222に設定する。プロセッ
サ部の消費電力値としては、消費電力情報2101よ
り、命令RETIに対応する40μW/MHzが算出さ
れ、BLK1はM1、M2とも0で変化せず、各クロッ
クサイクル毎に5μW/MHzが消費され、積算値60
μW/MHzが算出される。
【0261】次に処理される命令は2222の命令CM
Pであり、フェッチ/デコードステージから、ライトバ
ックステージの25クロックサイクル目から28クロッ
クサイクル目までで処理される。この命令も各ステージ
でプロセッサ部の出力ピンを変化させず、また、回路へ
の入力ピンも25クロックサイクル目から28クロック
サイクル目までの間に変化しない。プロセッサ内部で
は、レジスタbの値と定数値1が比較される。レジスタ
bは20クロックサイクル目に0が書き込まれているた
め、等しくないと判定され、28クロックサイクル目の
ライトバックステージで比較結果フラグがリセットされ
る。プロセッサ部の消費電力値としては、消費電力情報
2101より、命令CMPに対応する30μW/MHz
が算出される。BLK1はM1、M2とも0で変化せ
ず、各クロックサイクル毎に5μW/MHzが消費さ
れ、BLK1と合わせて積算値50μW/MHzが算出
される。
【0262】次に処理される命令は2223の命令BE
Qであり、フェッチ/デコードステージから、ライトバ
ックステージの29クロックサイクル目から32クロッ
クサイクル目までで処理される。この命令も各ステージ
でプロセッサ部の出力ピンを変化させず、また、回路へ
の入力ピンも29クロックサイクル目から32クロック
サイクル目までの間に変化しない。プロセッサ内部で
は、28クロックサイクルでリセットされている比較結
果フラグにより、32クロックサイクル目のライトバッ
クステージで次の命令実行位置をプログラムコードの2
224に設定する。プロセッサ部の消費電力値として
は、消費電力情報2101より、命令BEQに対応する
20μW/MHzが算出される。BLK1はM1、M2
とも0で変化せず、各クロックサイクル毎に5μW/M
Hzが消費され、積算値40μW/MHzが算出され
る。
【0263】33クロックサイクル目として1901の
プロセッサ部の入力ピンが読み込まれる。プロセッサ部
はフェッチ/デコードステージであるため、1902に
より1909に処理は移り、シミュレート開始命令位置
のプログラムコードの2224の命令LDがフェッチ/
デコードされる。
【0264】次に1908の出力ピン設定処理が行われ
るが、命令LDのフェッチ/デコードステージではプロ
セッサ部の出力ピンは変化しない。
【0265】1803の動作レベル回路部の処理が行わ
れる。BLK1では機能ブロックの入力ピンの値を設定
し、BLK1の入力ピンの値と内部状態からBLK1の
新しい状態と出力ピンの値を求める。このクロックサイ
クル時はBLK1のM1、M2はともに0であるため、
2011の動作モードよりBLK1の出力ピンは変化し
ない。また、動作レベル回路部の消費電力として、消費
電力情報2102より、BLK1の消費電力は5μW/
MHzと計算され、33クロックサイクル目として記憶
される。
【0266】次に1804の論理回路部の処理が行われ
る。33クロックサイクル目では、入力ピンは変化して
いない。消費電力値は0と算出される。
【0267】次に1805では、まだ命令の処理の途中
であるフェッチ/デコードステージであるため、集計さ
れない。
【0268】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理は移る。
【0269】34クロックサイクル目として、1901
のプロセッサ部の入力ピンが読み込まれる。プロセッサ
部の入力ピンは変化していない。
【0270】プロセッサ部は命令実行1ステージである
ため、1903により1910に処理は移り、プログラ
ムコードの2224の命令LDの命令実行1ステージの
処理が行われる。
【0271】次に1908の出力ピン設定処理が行われ
るが、命令LDにおいて命令実行1ステージでは、プロ
セッサ部の出力ピンであるADをプログラムコードに指
定されているアドレス、この場合A1に設定し、 ̄RR
EQを0に設定する。
【0272】1803の動作レベル回路部の処理が行わ
れる。動作レベル回路部2010の入力は、論理回路部
の出力ピンであり、34クロックサイクル目の論理回路
部はまだシミュレートされていないため、33クロック
サイクル目の値により動作レベル回路部は処理される。
M1、M2がともに0であり、BLK1の消費電力は2
102より5μW/MHzと計算される。
【0273】次の1804の論理回路部の処理は、プロ
セッサ部の出力ピン ̄RREQとADが変化しており、
論理ゲート2009のINV3の出力が0から1に変化
し、論理回路部の出力ピンが設定される。論理ゲートの
出力値の変化より、消費電力情報2106よりINV3
の消費電力値として0.2μW/MHzが算出され、論
理回路部の消費電力値として0.2μW/MHzが算出
される。
【0274】次に1805では、まだ命令の処理の途中
である命令実行1ステージであるため、集計されない。
【0275】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理が移る。
【0276】35クロックサイクル目として、1901
のプロセッサ部の入力ピンが読み込まれる。プロセッサ
部の入力ピンは変化していない。
【0277】プロセッサ部は命令実行2ステージである
ため、1904により1911に処理は移り、プログラ
ムコードの2224の命令LDの命令実行2ステージの
処理が行われる。
【0278】次に1908の出力ピン設定処理が行われ
るが、命令LDにおいて命令実行2ステージでは、プロ
セッサ部の出力ピンであるADを不定値Xに、 ̄RRE
Qを1に設定する。
【0279】1803の動作レベル回路部の処理が行わ
れる。動作レベル回路部2010の入力は、論理回路部
の出力ピンであり、35クロックサイクル目の論理回路
部はまだシミュレートされていないため、34クロック
サイクル目の値により動作レベル回路部は処理される。
M1は0、M2は1であり、BLK1は出力モードで処
理される。BLK1は動作レベル回路部の入力ピンAD
の値A1のアドレスの値を入出力ピンDTに設定する。
1801の初期化処理でアドレスA1には値03が格納
されているため、入出力ピンDTには値03が設定され
る。動作レベル回路部の消費電力は2102より25μ
W/MHzと計算される。
【0280】次の1804の論理回路部の処理は、およ
びプロセッサ部の出力ピン ̄RREQとADが変化して
おり、論理ゲート2009のINV3の出力が1から0
に変化し、論理回路部の出力ピンが設定される。他の論
理ゲートの出力は変化しない。論理ゲートの出力値の変
化より、消費電力情報2106よりINV3の消費電力
値として0.1μW/MHzが算出される。
【0281】次に1805では、まだ命令の処理の途中
である命令実行2ステージであるため、集計されない。
【0282】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理が移る。
【0283】36クロックサイクル目として、1901
のプロセッサ部の入力ピンが読み込まれる。プロセッサ
部の入出力ピンDTが不定値Xから値03に変化してい
る。
【0284】プロセッサ部はライトバックステージであ
るため、1905のライトバック処理が行われる。プロ
セッサ部の入出力ピンDTの値03がプログラムコード
2224で指定されているレジスタbに書き込まれる。
【0285】1906の割り込み判定処理では、36ク
ロックサイクル目においてプロセッサ部の入力ピン ̄I
NTは1であり、割り込み入力は行われていないと判定
される1907に移る。
【0286】1907ではプロセッサ部の命令LDの消
費電力として、消費電力情報2101より40μW/M
Hzと算出され、36クロックサイクル目で1つ目の命
令に対する消費電力値として記憶される。
【0287】次に1908の出力ピン設定処理が行われ
るが、命令LDにおいてライトバックステージでは、プ
ロセッサ部の出力ピンを変化させない。
【0288】1803の動作レベル回路部の処理が行わ
れる。動作レベル回路部2010の入力は、論理回路部
の出力ピンであり、36クロックサイクル目の論理回路
部はまだシミュレートされていないため、35クロック
サイクル目の値により動作レベル回路部は処理される。
動作レベル回路部の出力ピンDTが不定値Xに設定され
る。消費電力はM1、M2がともに0であり、BLK1
の消費電力は2102より5μW/MHzと計算され
る。
【0289】次の1804の論理回路部の処理は、論理
回路部の入力は何も変化していないため、各論理ゲート
の出力は変化しない。このため、消費電力値として0μ
W/MHzが算出される。
【0290】次に1805では、プロセッサ部で処理す
る命令のライトバックステージであるため、回路内の各
部で算出された消費電力値を積算し、プロセッサ部の命
令LDで消費した電力値を算出し、出力する。プロセッ
サ部は1907で算出された40μW/MHzであり、
動作レベル回路部は、33、34、36クロックサイク
ル目で、各クロックサイクル毎に5μW/MHz、35
クロックサイクル目で25μW/MHzであり、論理回
路部の各論理ゲートの消費電力値が34クロックサイク
ル目でINV3が0.2μW/MHz、35クロックサ
イクルでINV3が0.1μW/MHzであるため、こ
の33から36クロックサイクル分で積算値80.3μ
W/MHzとなる。
【0291】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理が移る。
【0292】次に処理される命令は2225の命令MU
Lであり、フェッチ/デコードステージから、ライトバ
ックステージの37クロックサイクル目から40クロッ
クサイクル目までで処理される。この命令も各ステージ
でプロセッサ部の出力ピンを変化させず、また、回路へ
の入力ピンも37クロックサイクル目から40クロック
サイクル目までの間に変化しない。プロセッサ内部で
は、レジスタaの値02とレジスタbの値03とが乗算
され、結果の値06が40クロックサイクルのライトバ
ックステージで、レジスタaに書き込まれる。プロセッ
サ部の消費電力値としては、消費電力情報2101よ
り、命令MULに対応する90μW/MHzが算出さ
れ、BLK1はM1、M2とも0で変化せず、各クロッ
クサイクル毎に5μW/MHzが消費され、BLK1と
合わせて積算値110μW/MHzが算出される。
【0293】41クロックサイクル目として、1901
のプロセッサ部の入力ピンが読み込まれる。プロセッサ
部はフェッチ/デコードステージであるため、1902
により1909に処理は移り、シミュレート開始命令位
置のプログラムコードの2226の命令STがフェッチ
/デコードされる。
【0294】次に1908の出力ピン設定処理が行われ
るが、命令STのフェッチ/デコードステージではプロ
セッサ部の出力ピンは変化しない。
【0295】1803の動作レベル回路部の処理が行わ
れる。BLK1では機能ブロックの入力ピンの値を設定
し、BLK1の入力ピンの値と内部状態からBLK1の
新しい状態と出力ピンの値を求める。このクロックサイ
クル時はBLK1のM1、M2はともに0であるため、
2011の動作モードよりBLK1の出力ピンは変化し
ない。また、動作レベル回路部の消費電力として、消費
電力情報2102より、BLK1の消費電力は5μW/
MHzと計算され、41クロックサイクル目として記憶
される。
【0296】次に1804の論理回路部の処理が行われ
る。41クロックサイクル目では、入力ピンは変化して
いない。消費電力値は0と算出される。
【0297】次に1805では、まだ命令の処理の途中
であるフェッチ/デコードステージであるため、集計さ
れない。
【0298】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理は移る。
【0299】42クロックサイクル目として、1901
のプロセッサ部の入力ピンが読み込まれる。プロセッサ
部の入力ピンは変化していない。
【0300】プロセッサ部は命令実行1ステージである
ため、1903により1910に処理は移り、プログラ
ムコードの2226の命令STの命令実行1ステージの
処理が行われる。
【0301】次に1908の出力ピン設定処理が行われ
るが、命令STにおいて命令実行1ステージでは、プロ
セッサ部の出力ピンであるADをプログラムコードに指
定されているアドレス、この場合A2に設定し、 ̄WR
EQを0に設定し、プロセッサ部の入出力ピンDTにプ
ログラムコードで指定されている値を出力する。この場
合、レジスタaの値であり、レジスタaは40クロック
サイクル目で値06が設定されている。
【0302】1803の動作レベル回路部の処理が行わ
れる。動作レベル回路部2010の入力は、論理回路部
の出力ピンであり、42クロックサイクル目の論理回路
部はまだシミュレートされていないため、41クロック
サイクル目の値により動作レベル回路部は処理される。
M1、M2がともに0であり、BLK1の消費電力は2
102より5μW/MHzと計算される。
【0303】次の1804の論理回路部の処理は、プロ
セッサ部の出力ピン ̄RREQとADと入出力ピンDT
が変化しており、論理ゲート2009のINV2の出力
が0から1に変化し、論理回路部の出力ピンが設定され
る。論理ゲートの出力値の変化より、消費電力情報21
06よりINV2の消費電力値として0.2μW/MH
zが算出され、論理回路部の消費電力値として0.2μ
W/MHzが算出される。
【0304】次に1805では、まだ命令の処理の途中
である命令実行1ステージであるため、集計されない。
【0305】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理が移る。
【0306】43クロックサイクル目として、1901
のプロセッサ部の入力ピンが読み込まれる。プロセッサ
部の入力ピンは変化していない。
【0307】プロセッサ部は命令実行2ステージである
ため、1904により1911に処理は移り、1908
の出力ピン設定処理で、プログラムコードの2226の
命令STの命令実行2ステージの処理が行われる。命令
STの命令実行2ステージでは、出力ピンADを不定値
Xに、 ̄WREQを1に、入出力ピンDTを不定値Xに
設定する。
【0308】1803の動作レベル回路部の処理が行わ
れる。動作レベル回路部2010の入力は、論理回路部
の出力ピンであり、43クロックサイクル目の論理回路
部はまだシミュレートされていないため、42クロック
サイクル目の値により動作レベル回路部は処理される。
M1は1、M2は0であり、BLK1は入力モードで処
理される。BLK1は動作レベル回路部の入力ピンAD
の値A2のアドレスの値と入出力ピンDTの値06を読
み込み、BLK1の内部のデータとしてアドレスA2に
値06を書き込む。動作レベル回路部の消費電力は21
02より50μW/MHzと計算される。
【0309】次の1804の論理回路部の処理は、およ
びプロセッサ部の出力ピン ̄WREQとADと入出力ピ
ンDTが変化しており、論理ゲート2009のINV2
の出力が1から0に変化し、論理回路部の出力ピンが設
定される。他の論理ゲートの出力は変化しない。論理ゲ
ートの出力値の変化より、消費電力情報2106よりI
NV2の消費電力値として0.1μW/MHzが算出さ
れる。
【0310】次に1805では、まだ命令の処理の途中
である命令実行2ステージであるため、集計されない。
【0311】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していないと判定さ
れ、処理を継続し、1807により、クロックサイクル
を進めて、1802に戻り、1901に処理が移る。
【0312】44クロックサイクル目として、1901
のプロセッサ部の入力ピンが読み込まれる。プロセッサ
部の入出力ピンDTが不定値Xから値03に変化してい
る。
【0313】プロセッサ部はライトバックステージであ
るため、1905のライトバック処理が行われる。プロ
セッサ部の入出力ピンDTの値03がプログラムコード
2224で指定されているレジスタbに書き込まれる。
【0314】1906の割り込み判定処理では、36ク
ロックサイクル目においてプロセッサ部の入力ピン ̄I
NTは1であり、割り込み入力は行われていないと判定
される1907に移る。
【0315】1907ではプロセッサ部の命令STの消
費電力として、消費電力情報2101より60μW/M
Hzと算出され、44クロックサイクル目で1つ目の命
令に対する消費電力値として記憶される。
【0316】次に1908の出力ピン設定処理が行われ
るが、命令STにおいてライトバックステージでは、プ
ロセッサ部の出力ピンを変化させない。
【0317】1803の動作レベル回路部の処理が行わ
れる。動作レベル回路部2010の入力は変化していな
い。消費電力はM1、M2がともに0であり、BLK1
の消費電力は2102より5μW/MHzと計算され
る。
【0318】次の1804の論理回路部の処理は、論理
回路部の入力は何も変化していないため、各論理ゲート
の出力は変化しない。このため、消費電力値として0μ
W/MHzが算出される。
【0319】次に1805では、プロセッサ部で処理す
る命令のライトバックステージであるため、回路内の各
部で算出された消費電力値を積算し、プロセッサ部の命
令STで消費した電力値を算出し、出力する。プロセッ
サ部は1907で算出された60μW/MHzであり、
動作レベル回路部は、41、42、44クロックサイク
ル目で、各クロックサイクル毎に5μW/MHz、43
クロックサイクル目で50μW/MHzであり、論理回
路部の各論理ゲートの消費電力値が42クロックサイク
ル目でINV2が0.2μW/MHz、43クロックサ
イクルでINV2が0.1μW/MHzであるため、こ
の41から44クロックサイクル分で積算値125.3
μW/MHzとなる。
【0320】1806の終了判定処理により、シミュレ
ートするプログラムコードが終了していると判定され、
シミュレーション処理を終了する。
【0321】シミュレーションの結果として図23に示
す各命令毎に消費されている消費電力値が出力される。
【0322】なお、ここでは各命令毎に消費電力値を出
力したが、プロセッサ部の各ステージ毎により詳細な消
費電力情報を予め準備しておくことにより、各クロック
サイクル毎に消費電力値の推移を求めることができるこ
とは言うまでもない。
【0323】また、ここではマイクロコントローラ的な
プロセッサの例を示したが、信号処理プロセッサおよび
メディアプロセッサにおいても同様に動作のシミュレー
トと同時に消費電力をシミュレートできることは言うま
でもない。
【0324】以上のように本発明の第6の実施の形態に
よれば、請求項5に係る発明である消費電力のシミュレ
ーション方法によって、プロセッサ部に加え、論理回路
部も考慮し、論理回路部に対しては、内部のノードの信
号変化を基に消費電力を算出し、プロセッサ部で消費さ
れる電力と合算して、回路全体の消費電力を求めること
ができる。
【0325】また、請求項8に係る発明である消費電力
のシミュレーション方法によって、プロセッサ部、動作
レベルの機能ブロック、及びゲートレベル等の論理回路
部とが混在する回路でも、プロセッサ部に対しては命令
レベルでの消費電力計算、動作レベルの機能ブロックに
対しては電力モードピンによる消費電力計算、その他の
論理回路部に対しては内部のノードの状態変化に基づく
消費電力計算を行なうため、プロセッサコア、メガセル
コア、及び通常の論理回路が混在する回路に対しても、
高速かつ正確に消費電力を求めることができる。
【0326】(第7の実施の形態)本発明の第7の実施
形態では、請求項9に係る発明に関して説明する。本発
明の一実施形態に係る消費電力のシミュレーション方法
について、図14、図15、図24、図25、図26、
及び図27に基づき説明する。
【0327】図25は、本実施形態を実現するハードウ
エア構成の一例を示す図である。2501は計算機であ
り、その内部は図31に示したハードウエア構成を持
つ。2502は実チップエミュレータであり、シミュレ
ーション対象回路中の部分回路に対して、計算機250
1の中でなく、実チップを用いたシミュレーションを行
なうためのものである。2503及び2504はインタ
フェース部であり、計算機2501と実チップエミュレ
ータ2502とを接続し、実チップエミュレータ250
2は計算機2501の制御下で動作する。2510は計
算機2501からの制御命令に従って実チップエミュレ
ータ2502内部の各部を制御する制御部、2511は
シミュレーションに使用する実チップへ電力を供給する
電力供給部、2512は実チップの入力ピンの値を設定
する入力生成部、2513は実チップのクロックを制御
するクロック制御部、2514は実チップの出力ピンの
状態を測定する出力測定部、2515は実チップの消費
電力を測定する電力測定部である。また、2520及び
2521はシミュレーション対象の回路中の部分回路の
動作を模擬するための実チップである。
【0328】図24は、本実施形態に係る消費電力のシ
ミュレーション方法のシミュレーション実行時の処理流
れを示すフローチャートである。
【0329】2401から2403までの処理は実チッ
プを備えていない部分回路の機能ブロックに対して回路
動作を求める処理であり、2401は各機能ブロックに
対して外部入力又は前段の機能ブロックの出力ピンの値
から入力ピンの値を準備するブロック入力値設定処理、
2402はブロック入力値設定処理2401で入力ピン
の状態を設定した各機能ブロックに対してその入力ピン
の値と内部状態から各機能ブロックの新しい状態を求め
るブロック評価処理、2403は前記の各機能ブロック
の評価処理2402の計算結果から各ブロックの出力ピ
ンの状態を求めるブロック出力値取得処理である。
【0330】2404から2406までの処理は実チッ
プを備えている部分回路の機能ブロックに対して回路動
作を求める処理であり、2404は各機能ブロックに対
して外部入力又は前段の機能ブロックの出力ピンの値か
ら前記の実チップエミュレータ2502の入力生成部2
512を用いて実チップの入力ピンの値を設定する実チ
ップ入力値設定処理、2405は実チップ入力値設定処
理2404で入力ピンの状態を設定した実チップに対し
てクロック制御部2513により1サイクル分のクロッ
クを動作させ実チップを新しい状態に更新する実チップ
ブロック評価処理、2406は出力測定部2514によ
り各実チップの出力ピンの状態を測定する実チップのブ
ロック出力値取得処理である。
【0331】2407から2411は回路の消費電力を
計算する処理であり、2407は実チップが実際に消費
した電力を基に部分回路の電力を測定する部分回路(第
1のグループの部分回路)の実チップに対して、電力測
定部2515より先ほど対応する実チップが1サイクル
分の動作を行なった時に測定した消費電力を取得する実
チップの電力値取得処理、2408はその消費電力の値
から補正処理を行ないシミュレーション回路中の対応す
る部分回路が消費する電力を計算する電力値補正処理、
2409は実チップで動作は求めるが、消費電力は電力
モードピン毎の消費電力情報から求める部分回路(第2
のグループの部分回路)に対して消費電力を求める消費
電力計算1処理、2410は実チップを備えていない部
分回路の消費電力を電力モードピン毎の消費電力情報か
ら求める消費電力計算2処理、2411は電力値補正処
理2408、消費電力計算1処理2409、及び消費電
力計算2処理2410で求めた電力を合計し回路全体の
消費電力を求める消費電力集計処理である。
【0332】2412及び2413は目的のシミュレー
ションの時刻までサイクルを進めながら2401から2
411の処理を繰り返すための処理であり、2412は
目的時刻までのシミュレーション処理が終了したかを判
定し、終了している場合にはシミュレーション実行を終
了し、終了していない場合には処理を継続するシミュレ
ーション終了判定処理、2413はシミュレーション時
刻を次のサイクルに進める時刻更新処理であり、時刻更
新処理2413の後は、ブロック入力値設定処理240
1からの処理が繰り返される。
【0333】図14は、シミュレーション対象となる一
回路例である。同図の1401、1402、1403、
及び1404は、機能ブロックBLK1、BLK2、B
LK3、及びBLK4であり、各々、ALU(算術演算
ユニット)、ADD/SUB(加算/減算)、MUL
(乗算)、及びSHIFT(ビットシフト)である。B
LK1のALUの演算内容は、その入力ピンMの状態に
依存しており、1430に示す様に、入力ピンM[1:
0]が、0、1、2、及び3の場合、各々、加算、減
算、排他的論理和、及び論理積となる。また、BLK2
の演算も、その入力ピンMの状態に依存しており、0の
場合加算、1の場合減算となる。また、BLK4の演算
は、シフト動作であり、入力S[4:0]で入力された
値分、LSB方向へビットシフトされる。1410から
1417は回路に対する入力ピン、1418及び141
9は回路に対する出力ピンであり、同図に示す様に各機
能ブロックのピンに接続されている。これらの機能ブロ
ックBLK2、BLK3、及びBLK4は2段パイプラ
インで実現されており、あるサイクルでの演算結果はそ
のサイクルの終りではなく、次のサイクルの終りに出力
される。また、1420及び1421は、各々内部信号
線O及びPであり、Oは機能ブロックBLK1のY出
力、Pは機能ブロックBLK3のY出力に接続されてい
る。
【0334】本実施形態では、機能ブロックBLK1及
びBLK2は実チップを備えず計算機2503内のみで
動作を求める部分回路、機能ブロックBLK3は実チッ
プにより動作も消費電力も求める部分回路(第1のグル
ープの部分回路)、機能ブロック4は動作は実チップに
より求めるが消費電力は計算機2503内のみで電力モ
ードピン状態毎の消費電力情報により求める部分回路
(第2のグループの部分回路)とする。よって、実チッ
プエミュレータ2502には、機能ブロックBLK3及
びBLK4の動作を模擬するための、2520及び25
21に示す実チップ1及び実チップ2が装着されてお
り、さらに、実チップによる消費電力測定を行なう25
20の実チップ1には電力測定部2515に接続されて
おり、実チップによる消費電力測定を行なわない252
1の実チップ2は直接、電力供給部2511に接続され
ている。
【0335】図26は、本実施形態における、図14で
示した回路に対する電力モードピン状態毎の消費電力情
報及び実チップの消費電力からの補正計算式の一例を示
す図である。
【0336】2601、2602、及び2604は、機
能ブロックBLK1、BLK2、及びBLK4の電力モ
ードピン状態毎の消費電力情報である。機能ブロックB
LK1では入力ピンM[1:0]を電力モードピンと
し、その値が0、1、2、及び3の状態での消費電力
が、各々、20、25、15、及び10μW/MHzと
求められている。機能ブロックBLK2では入力ピンM
を電力モードピンとし、さらにこの機能ブロックBLK
2は2段パイプライン構造を用いたものであり、ある時
刻の電力モードピンの状態だけでなく、一サイクル前の
電力モードピンの状態にも消費電力が依存する。よっ
て、各モードピンの状態毎に、パイプライン・ステージ
1とパイプライン・ステージ2との、各々の消費電力が
求められている。例えば、2602の表では、電力モー
ドピンMが0の場合、パイプライン・ステージ1では3
5μW/MHz、パイプライン・ステージ2、つまり次
のサイクルではそのサイクルでの電力モードピンの状態
にかかわらず、15μW/MHzの電力を消費すること
を意味している。機能ブロックBLK4は、シフト量を
定義する入力S[4:0]を電力モードピンとし、シフ
ト量が16(16進数:10)ビット未満の場合と、1
6ビット以上の場合で消費電力値が異なり、さらに、2
段パイプライン構造であり、S[4:0]が16ビット
未満の場合、そのサイクルで5μW/MHz、次のサイ
クルで15μW/MHz、S[4:0]が16ビット以
上の場合、そのサイクルで20μW/MHz、次のサイ
クルで30μW/MHzを消費すると定義されている。
これら電力モードピン状態毎の消費電力情報中の消費電
力は、予め、これら動作レベルでの機能ブロックを用い
たシミュレーション実行前に、各ブロックをゲートレベ
ルやトランジスタレベルで実現したデータを基に、ゲー
トレベルシミュレーションや回路シミュレーション等に
よりどのピンの状態が消費電力に大きな影響を与えるか
を評価し消費電力を求めておいたものである。
【0337】2603は、実チップの消費電力から対応
する部分回路の消費電力を求める機能ブロックBLK3
の補正計算式を示す表である。ここでは、 (式701) 部分回路の消費電力 = (実チップの消費電力−25
0)×0.5 と定義されている。実チップは、シミュレーション対象
の回路で仮定している半導体製造工程とは異なる半導体
製造工程を用いて実現されていたり、FPGA等の異な
るデバイスで実現されているので、この補正式は、使用
する実チップの入出力セルやパッド等の本来部分回路に
対応しないが実チップであるために存在する回路や、使
用する半導体製造工程やデバイス構造の違い等を考慮し
て、決定する。
【0338】図24で示した処理の流れにより、図14
で示した回路に対する動作のシミュレーションを行なっ
た結果の一例を図15に、その時に図26の電力モード
ピン毎の消費電力情報と実チップに対する消費電力補正
式を用いて消費電力のシミュレーションを行なった結果
を図27に示す。図15の波形中の数字は全て16進数
表示である。この時の処理の流れを、図24で示したフ
ローに従って説明する。
【0339】最初、シミュレーション時刻は、0nsか
ら始まるが、回路の各入力ピンの状態は0であり、内部
信号線や出力ピンは不定値(以下X)になっている。ま
ず、CLKが時刻0nsで立ち上がると、ブロック入力
値設定処理2401により、各ブロックの入力ピンの値
が準備される。時刻0nsでは、全ての入力ピンは0、
内部信号線はXであり、各ブロックの入力ピンの状態
は、以下の様に準備される。 (式702) BLK1:A=0、B=0、M=0 BLK2:A=X、B=X、M=0 次に、ブロック評価処理2402で、(式702)の入
力ピンの状態に基づいて新しい状態が次の(式703)
の様に計算される。ここで、{ }内はパイプラインの
1段目(ステージ1)が終了した計算途中の内部状態で
ある。 (式703) BLK1:Y=0 BLK2:{A=X、B=X、M=0}、Y=X 次に、ブロック出力値取得処理2403により各機能ブ
ロックの出力ピンの状態が更新される。ここで、遅延を
考慮したシミュレーションの場合には、各出力ピン又は
機能ブロックに定義された遅延時間に従って、出力ピン
の状態が更新される。
【0340】続いて、実チップを備えた機能BLK3及
びBLK4の動作のシミュレーションが行なわれる。実
チップ入力値設定処理2404において入力生成部25
12により実チップの入力ピンが以下の様に設定され
る。機能ブロックBLK4のAはシミュレーション中で
はまだ不定値Xであるが、実チップではXは使用できな
いので0を与える。 (式704) BLK3:A=0、B=0 BLK4:A=X(実際は0)、S=0 次に、実チップ評価処理2405においてクロック制御
部2513により実チップのクロックが1クロックだけ
動かされ実チップに演算を行なわせる。この時に252
0の実チップ1に対しては電力測定部2515がその消
費電力を測定している。続いて、実チップの出力値取得
処理2406において出力測定部2514により実チッ
プの出力が得られる。ただし、ここでは、シミュレーシ
ョン開始直後であり実チップの出力は正しい値ではない
ので、以下の様にXに補正される。 (式705) BLK3:Y=X BLK4:Y=X 次に処理2407から処理2411により消費電力計算
が行なわれるが、シミュレーション開始直後のサイクル
では内部状態が安定していないので、ここでは計算を行
なっていない。続いて、シミュレーション終了判定処理
2412を経て、時刻更新処理2413で時刻を100
n、サイクル1に進め、サイクル1のシミュレーション
処理へ移る。
【0341】次に、サイクル1では、ブロック入力値設
定処理2401では以下の(式706)に示す様に入力
ピンの状態が準備される。 (式706) BLK1:A=0F23、B=05FA、M=0 BLK2:A=X、B=0、M=0 次に、ブロック評価処理2402で、(式706)に基
づき、以下の様に各ブロックの状態が計算され、ブロッ
ク出力値取得処理2403で各出力ピンの状態が出力さ
れる。 (式707) BLK1:Y=151D BLK2:{A=X、B=0、M=0}、Y=X 次に、実チップ入力値設定処理2404で、以下の様に
実チップの対応する入力ピンが設定される。 (式708) BLK3:A=3B50、B=2590 BLK4:A=X(実際は0)、S=0 次に、実チップ評価処理2405で、実チップのクロッ
クが1クロック動作され、実チップの出力値取得処理2
406で各出力ピンの状態が得られる。ここでも、機能
ブロックBLK4は2段パイプラインで初期化が完了し
ていないので、Xへの補正が行なわれている。 (式709) BLK3:{A=3B50、B=2590}、Y=0 BLK4:{A=X、S=0}、Y=X 次に、実チップ消費電力取得処理2407により、実チ
ップにより消費電力を測定する実チップの消費電力が取
得される。ここでは、機能BLK3の実チップ1に対し
て300μWの実測結果が得られたとする。そして、電
力値補正処理2408により、図26の表2603の補
正式に従って、以下の様に機能BLK3の消費出力値が
求められる。 (式710) BLK3:部分回路の消費電力 = (300−250)
×0.5 = 25 次に、消費電力計算1処理2409により、実チップは
備えているが、消費電力は計算機上で求める機能ブロッ
クBLK4に対して、電力モードピンの状態、 (式711) BLK4:S=0(ステージ1)、S=0(ステージ
2) に基づき、図26で示した電力モードピン毎の消費電力
情報2604より該当する消費電力が以下の様に得られ
る。 (式712) BLK4:5(ステージ1)、15(ステージ2)、2
0(小計) 次に、ブロック消費電力計算2処理2410により、残
りの機能ブロックBLK1及びBLK2に対して、電力
モードピンの状態、 (式713) BLK1:M=0 BLK2:M=0(ステージ1)、M=0(ステージ
2) に基づき、図26で示した電力モードピン毎の消費電力
情報2601及び2602より該当する消費電力が以下
の様に得られる。 (式714) BLK1:20 BLK2:35(ステージ1)、15(ステージ2)、
50(小計) そして、これらが、(式710)、(式712)、及び
(式714)の各機能ブロックの消費電力が消費電力集
計処理2411で合計され、115μW/MHzの消費
電力が得られる。ここでは、100ns周期、つまり、
10MHzで動作しているので、周期(T)あたりの消
費電力は、1150μW/MHzとなる。これらの一連
の消費電力の計算結果をまとめると、図27のサイクル
1の欄の様になる。
【0342】これらの処理をサイクルを1ずつ進めなが
ら繰り返し、目的のシミュレーション時刻までの、動作
及び消費電力のシミュレーションが実行される。ここで
は、全てのサイクルの説明は省略するが、例えば、サイ
クル5では、ブロック入力値設定処理2401及び実チ
ップ入力値設定処理2404は、 (式715) BLK1:A=0153、B=75AC、M=2 BLK2:A=0010A460、B=E780、M=
1 BLK3:A=3B50、B=2590 BLK4:A=0010A460、S=18 であり、ブロック評価処理2402及び実チップ評価処
理2405では、 (式716) BLK1:Y=74FF BLK2:{A=0010A460、B=E780、M
=1}、 Y=BF9DD255 BLK3:Y=12F35AE9 BLK4:Y=BF9C0496 と計算され、実チップ消費電力取得処理2407及び電
力値補正処理2408では、 (式717) BLK3:部分回路の消費電力 = (328−250)
×0.5 = 39 と機能ブロックBLK3の消費電力が得られ、消費電力
計算1処理2409及び消費電力計算2処理2410
で、各電力モードピンの状態は、 (式718) BLK1:M=2 BLK2:M=1(ステージ1)、M=0(ステージ
2) BLK4:S=18(ステージ1)、S=0(ステージ
2) であり、この電力モードピンの状態に基づき、 (式719) BLK1:15 BLK2:40(ステージ1)、15(ステージ2)、
55(小計) BLK4:20(ステージ1)、15(ステージ2)、
35(小計) と消費電力が計算され、合計値は、144μW/MH
z、1440μW/Tとなる。これらの処理が、7サイ
クルまで行なわれた結果は、図15及び図27に示した
ものとなる。
【0343】ここで、実チップにより回路動作を得てい
る部分回路に対して、回路動作を得ると同時に消費電力
を測定し、計算機により補正処理を行なうことにより、
目的のシミュレーション環境における消費電力を求める
ことができる。この場合、実チップの消費電力は回路動
作を求めると同時にその消費電力を測定しているので、
動作の模擬と同様に大規模な機能ブロックに対しても高
速に消費電力を求めることが可能である。また、実チッ
プによる回路動作を得る機能ブロックで、実チップの電
力値を補正するのが困難な機能ブロックに関しては、電
力モードピンの状態毎の消費電力情報に基づく消費電力
計算により高速に消費電力のシミュレーションを行なう
ことができる。
【0344】なお、本実施形態では、毎クロックサイク
ル毎に実チップの消費電力取得処理2407及び電力値
補正処理2408により消費電力を求めているが、実チ
ップの電源ピンのパッドや電源配線の容量による蓄積電
荷により、ある時間間隔以下では電力測定部2515に
より正しく実チップの電力が測定できない場合等には、
複数のクロック分を電力測定部2515によりまとめて
測定することにより対応できるのは言うまでもない。
【0345】また、本実施形態では、各機能ブロックの
消費電力の計算とそれらの集計を行ない回路全体の消費
電力計算をシミュレーション実行中に行なっているが、
各シミュレーション時刻毎の電力モードピンの状態をフ
ァイル等の記憶手段に保存しておき、シミュレーション
実行後にそれらの情報を基に各機能ブロックの消費電力
の計算とそれらの集計を行ない回路全体の消費電力計算
を行なっても同様の結果が得られることは言うまでもな
い。
【0346】
【発明の効果】以上説明した様に、請求項1、請求項
2、請求項3、請求項4、及び請求項5記載の発明によ
れば、シミュレーション実行前に、プロセッサの命令セ
ットの個々の命令に対して、回路レベル又はゲートレベ
ルのシミュレーション、又は実際に試作した実チップの
評価結果より各命令が実行される時に消費される電力を
求め命令毎の消費電力情報に格納しておき、シミュレー
ション実行中に与えられたプログラムコードに対する命
令動作をシミュレートすると共に、実行された命令に対
応する消費電力の値を消費電力情報から検索し、一定時
間毎に集計していくことにより、与えられたプログラム
コードで動作する時にプロセッサ部が消費する電力の時
間遷移を求める。ここで、プログラムコードに従って実
行されるサイクル数は通常数千、数百万サイクル以上の
膨大なサイクル数になるが、命令毎の消費電力情報は計
算機中では表形式等で保持することにより簡単に検索す
ることが可能であり、また一定時間毎の消費電力を計算
する場合も簡単な積算及び平均計算等により、高速に行
なうことが可能である。
【0347】特に、請求項2記載の発明では、各命令に
対して、各パイプライン・ステージ別に消費される電力
を用い、一サイクルで同時に実行されている複数命令の
各パイプライン・ステージで消費される電力を合算して
消費電力を算出するため、パイプライン処理構造を備え
たプロセッサに対しても正確に消費電力をシミュレート
することができる。
【0348】また、請求項3記載の発明では、スーパー
スケーラ処理構造を考慮し、一サイクルに同時に実行さ
れる命令を考慮して、消費電力を算出するために、スー
パースケーラ構造を備えたプロセッサに対しても正確に
消費電力をシミュレートすることができる。
【0349】また、請求項4記載の発明では、一部の命
令に対しては、オペランドを引数に含む関数により消費
電力を計算するため、同じ命令でもオペランドにより消
費される電力が異なる場合でも、オペランドに依存した
正確な消費電力を求めることができる。
【0350】また、請求項5記載の発明では、プロセッ
サ部に加え、論理回路部も考慮し、論理回路部に対して
は、内部のノードの信号変化を元に消費電力を算出し、
プロセッサ部で消費される電力と合算して、回路全体の
消費電力を求めることができる。
【0351】請求項6、請求項7、及び請求項8記載の
発明によれば、動作レベルの機能ブロックが含まれてい
ても、各機能ブロックが動作する時に消費される電力の
違いを識別できる1個以上の入力ピン又は出力ピンを電
力モードピンとし、シミュレーション実行前に、動作レ
ベルの各機能ブロックに対して、回路レベル又はゲート
レベルのシミュレーション等により電力モードピンの取
り得る状態全ての場合について、消費される電力を求め
電力モードピン毎の消費電力情報に格納しておき、シミ
ュレーション実行中には、各サイクル毎に、動作レベル
の各機能ブロック毎の電力モードピンの状態より、表形
式等簡単に検索できる電力モードピン毎の消費電力情報
から電力を検索し、一定時間毎に集計していくことによ
り、動作レベルの機能ブロックが、与えられたテストベ
クターで動作する時に消費する電力の時間遷移を高速に
求めることができる。
【0352】特に、請求項7記載の発明では、一部の動
作レベルの機能ブロックに対しては、ある状態から複数
サイクル間に消費される電力を保持できるものであるた
め、機能ブロックがパイプライン処理構造等を備え、そ
のサイクルの電力モードピンの状態だけでは正しく消費
電力を見積もれない場合でも、複数サイクルにわたって
消費される電力を計算することが可能であり、正確な消
費電力を求めることができる。
【0353】また、請求項8記載の発明では、プロセッ
サ部、動作レベルの機能ブロック、及びゲートレベル等
の論理回路部とが混在する回路でも、プロセッサ部に対
しては命令レベルでの消費電力計算、動作レベルの機能
ブロックに対しては電力モードピンによる消費電力計
算、その他の論理回路部に対しては内部のノードの状態
変化に基づく消費電力計算を行なうため、プロセッサコ
ア、メガセルコア、及び通常の論理回路が混在する回路
に対しても、高速かつ正確に消費電力を求めることがで
きる。
【0354】請求項9記載の発明では、実チップを利用
したシミュレーションにおいて、実チップを用いる部分
回路に対しては動作を実チップで求める時に、一部の部
分回路に対してはその実チップで消費される電力も測定
し、測定した電力を実チップとシミュレーション対象の
回路の条件とから補正処理を行ない、シミュレーション
実行中に実チップで電力を測定するのが困難であった
り、実チップからのシミュレーション条件に対する補正
処理が困難な実チップを用いる部分回路に対してはシミ
ュレーション実行前に、予め定めた電力モードピンの状
態毎に消費される電力を求め、消費電力情報中に格納し
ておき、シミュレーション実行中は、部分回路の動作は
実チップで求め、消費電力は電力モードピンの状態に基
づき、消費電力情報から求め、さらに、実チップ部以外
の部分は計算上のシミュレーションにより電力を求め、
こられの電力を合算することにより回路全体の消費電力
を高速に求めることができる。
【0355】請求項10記載の発明では、請求項1、請
求項2、請求項3、請求項4、請求項5、請求項6、請
求項7、請求項8、又は請求項9記載の発明において、
シミュレーション実行中に消費電力計算を行なわずに、
ファイル等の記憶手段に消費電力計算に必要な情報を保
持しておき、シミュレーション実行後に、ファイル等の
記憶手段に保持されている情報から消費電力を計算する
ので、既存のシミュレータを利用しシミュレーション実
行中への消費電力計算処理を組み込みにくい場合でも、
消費電力計算のシミュレーションを実現することができ
る。
【図面の簡単な説明】
【図1】本発明の第1及び第2及び第3の実施の形態に
おけるシミュレーション実行時の処理の流れを示すフロ
ーチャート
【図2】本発明の第1及び第2及び第3及び第4及び第
6の実施の形態におけるプロセッサの命令セットの一例
を示す図
【図3】本発明の第1及び第2の実施の形態におけるプ
ロセッサの命令毎の消費電力情報の一例を示す図
【図4】本発明の第1及び第2及び第3及び第4の実施
の形態におけるプロセッサに与えるプログラムの一例を
示す図
【図5】本発明の第1の実施の形態における消費電力の
シミュレーション結果の一例を示す図
【図6】本発明の第3の実施の形態におけるシミュレー
ション実行時の処理の流れを示す一部のフローチャート
【図7】本発明の第3の実施の形態におけるプロセッサ
の命令毎の消費電力情報の一例を示す図
【図8】本発明の第3の実施の形態におけるシミュレー
ション実行時のプロセッサの状態を示す図
【図9】本発明の第3の実施の形態における消費電力の
シミュレーション結果の一例を示す図
【図10】本発明の第4の実施の形態におけるシミュレ
ーション実行時の処理の流れを示すフローチャート
【図11】本発明の第4の実施の形態におけるプロセッ
サの命令毎の消費電力情報の一例を示す図
【図12】本発明の第4の実施の形態における消費電力
のシミュレーション結果の一例を示す図
【図13】本発明の第5の実施の形態におけるシミュレ
ーション実行時の処理の流れを示すフローチャート
【図14】本発明の第5及び第7の実施の形態における
動作レベルの回路の一例を示す図
【図15】本発明の第5及び第7の実施の形態における
動作のシミュレーション結果の一例を示す図
【図16】本発明の第5の実施の形態における電力モー
ドピン状態毎の電力情報の一例を示す図
【図17】本発明の第5の実施の形態における消費電力
のシミュレーション結果の一例を示す図
【図18】本発明の第6の実施の形態におけるシミュレ
ーション実行時の処理の流れを示すフローチャート
【図19】本発明の第6の実施の形態におけるシミュレ
ーション実行時のプロセッサ部に対する処理の流れを示
すフローチャート
【図20】本発明の第6の実施の形態におけるシミュレ
ーションの対象となる回路の一例を示す図
【図21】本発明の第6の実施の形態における各ブロッ
クの消費電力情報の一例を示す図
【図22】本発明の第6の実施の形態におけるプロセッ
サ部に与えるプログラムの一例を示す図
【図23】本発明の第6の実施の形態における消費電力
のシミュレーション結果の一例を示す図
【図24】本発明の第7の実施の形態におけるシミュレ
ーション実行時の処理の流れを示すフローチャート
【図25】本発明の第7の実施の形態における消費電力
のシミュレーション方法を実現するためのハードウエア
構成の一例を示す図
【図26】本発明の第7の実施の形態における電力モー
ドピン状態毎の電力情報及び実チップの消費電力からの
補正計算式の一例を示す図
【図27】本発明の第7の実施の形態における消費電力
のシミュレーション結果の一例を示す図
【図28】消費電力のシミュレーション方法を詳細に示
すフローチャート
【図29】実行サイクルと実行命令の履歴を示す図
【図30】各サイクルでの消費電力値を示す図
【図31】本発明の第1〜第3及び第5及び第6の実施
の形態における消費電力のシミュレーション方法を実現
するためのハードウエア構成の一例を示す図
【図32】本発明の第6の実施の形態におけるシミュレ
ーション実行時の各ピンの値と実行命令の一例を示す図
【図33】本発明の第6の実施の形態におけるシミュレ
ーション実行時の各ピンの値と実行命令の一例を示す図
【図34】本発明の第6の実施の形態におけるシミュレ
ーション実行時の消費電力の計算過程の一例を示す図
【図35】本発明の第6の実施の形態におけるシミュレ
ーション実行時の消費電力の計算過程の一例を示す図
【符号の説明】
101、1001 初期化処理 102 プログラム読み込み処理 103、1002 命令読み込み処理 104、1004 命令実行処理 105、1005、1907 命令毎の消費電力情報に
よる消費電力値計算処理 110 プロセッサで実行される1サイクルの処理 503 各サイクルでの実行命令 504 各サイクルでの消費電力計算結果 601 フェッチおよびデコードステージの命令の処理 602 命令毎の消費電力情報によるフェッチおよびデ
コードステージの命令の消費電力計算処理 604 実行ステージの命令の処理 605 命令毎の消費電力情報による実行ステージの命
令の消費電力計算処理 606 ライトバックステージの命令の処理 607 命令毎の消費電力情報によるライトバックステ
ージの命令の消費電力計算処理 608 ストール処理 610 ストール処理の消費電力計算処理 711 命令毎の各処理ステージでの消費電力情報 712 命令オペランドに依存する消費電力情報の計算
式 713 特殊処理に対する消費電力情報 1003 スーパースケーラ処理構造により同時に実行
する命令の選択処理 1007 消費電力の集計及び出力処理 1101 命令毎の消費電力情報 1102 割り込み処理の消費電力情報 1301、2401 ブロック入力値設定処理 1302、2402 ブロック評価処理 1303、2403 ブロック出力値取得処理 1304、2410 電力モードピン状態毎の消費電力
情報による消費電力計算処理 1305、2411 消費電力集計処理 1601、1602、1604、2601、2602、
2604 電力モードピン状態毎の消費電力情報 1901 プロセッサ部の入力値取得処理 1905 ライトバックステージの命令の処理 1908 プロセッサの出力値設定処理 1909 フェッチ/デコードステージの命令の処理 1910 第1実行ステージの命令の処理 1911 第2実行ステージの命令の処理 1912 割り込み処理 2101 プロセッサの命令毎の消費電力情報 2102 電力モードピン状態毎の消費電力情報 2104、2106 出力値のトグル毎の消費電力情報 2404 実チップ入力値設定処理 2405 実チップ評価処理 2406 実チップの出力値取得処理 2407 実チップ消費電力取得処理 2408 実チップの消費電力値からの電力値補正処理
(第1のグループの部分回路の消費電力計算処理) 2409 電力モードピン状態毎の消費電力情報による
消費電力計算処理(第2のグループの部分回路の消費電
力計算処理) 2520、2521 実チップ 2515 電力測定部

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサの命令動作を計算機中でシミ
    ュレートする方法において、 シミュレーション実行前に、予め前記のプロセッサの命
    令セットに対して、各々の命令が実行される時に消費さ
    れる電力を求め、命令毎の消費電力情報として記憶して
    おき、 シミュレーション実行時に、与えられたプログラムコー
    ドに対する命令動作をシミュレートすると同時に、前記
    の命令毎の消費電力情報より実行中の個々の命令に対応
    する消費電力を求め、前記のプログラムコードに対する
    命令の実行履歴の消費電力を求めることを特徴とするシ
    ミュレーション方法。
  2. 【請求項2】 前記のプロセッサがパイプライン処理構
    造を備えたものであり、 前記の命令毎の消費電力情報は、各々の命令に対して、
    各パイプライン・ステージ別に消費される電力を記憶し
    たものであり、 シミュレーション実行時に、一サイクルで消費される電
    力を求める時に、 当該一サイクルにシミュレートしている命令と、パイプ
    ライン処理構造上実際のハードウエア上では同時に実行
    される当該一サイクルの直前の複数サイクルにシミュレ
    ートされた複数の命令との各命令に対して、 前記の命令毎の消費電力情報より、対応するパイプライ
    ン・ステージの消費電力を求め合計することにより、一
    サイクルで消費される電力を求め、 前記の一サイクルで消費される電力の計算を、前記のプ
    ログラムコードの命令の実行履歴に対して連続に行なう
    ことを特徴とする請求項1に記載のシミュレーション方
    法。
  3. 【請求項3】 前記のプロセッサがスーパースケーラ処
    理構造を備えたものであり、 シミュレーション実行時に、一サイクルで消費される電
    力を求める時に、 前記のプロセッサに備えられたスーパースケーラ処理構
    造を考慮し、当該一サイクルで同時に実行されると予測
    される複数の命令を前記のプログラムコードから求め、 前記の当該一サイクルで同時に実行される複数の命令の
    各命令に対して、前記の命令毎の消費電力情報より消費
    電力を求め合計することにより、一サイクルで消費され
    る電力を求め、 前記の一サイクルで消費される電力の計算を、前記のプ
    ログラムコードに対して連続に行なうことを特徴とする
    請求項1に記載のシミュレーション方法。
  4. 【請求項4】 前記の命令毎の消費電力情報が、一部の
    命令に対しては、当該命令のオペランドを引数に含む関
    数により表現されており、 シミュレーション実行時に、前記の一部の命令の消費電
    力を求める場合には、当該命令の前記の関数に当該命令
    のオペランドを与えて消費電力を求めることを特徴とす
    る請求項1に記載のシミュレーション方法。
  5. 【請求項5】 プロセッサ部と、論理回路部とから成る
    回路の動作をシミュレートする協調シミュレーションに
    おいて、 プロセッサ部に対しては、請求項1、請求項2、請求項
    3、又は請求項4に記載のシミュレーション方法によ
    り、プロセッサ部の消費電力を計算し、 論理回路部に対しては、回路内部の動作をシミュレート
    すると同時に、回路内部のノードの信号変化を元に、論
    理回路部の消費電力を計算し、 前記のプロセッサ部の消費電力と、前記の論理回路部の
    消費電力とから、全体の回路の消費電力を求めることを
    特徴とする協調シミュレーション方法。
  6. 【請求項6】 1個以上の動作レベルの機能ブロックを
    含む回路の動作を計算機中でシミュレートする方法にお
    いて、 シミュレーション実行前に、前記の動作レベルの機能ブ
    ロックの各々について、当該機能ブロックの特定の1個
    以上の入力ピン又は出力ピンを電力モードピンとし、電
    力モードピンの取り得る状態毎に、当該機能ブロックが
    一サイクルに消費する電力を求め、電力モードピン状態
    毎の消費電力情報として記憶しておき、 シミュレーション実行時に、前記の回路の動作をシミュ
    レートすると同時に、一サイクル毎に、前記の動作レベ
    ルの機能ブロックの各々に対して、当該機能ブロックの
    当該サイクルでの電力モードピンの状態より、前記の電
    力モードピン状態毎の消費電力情報より当該機能ブロッ
    クの消費する電力を求め合計することにより、前記の回
    路で消費される電力を求めることを特徴とするシミュレ
    ーション方法。
  7. 【請求項7】 前記の電力モードピン状態毎の消費電力
    情報が、一部又は全部の動作レベルの機能ブロックに対
    しては、前記の電力モードピンの取り得る状態毎に、当
    該状態となった一サイクル直後の複数サイクル分の各サ
    イクル毎の消費電力の情報を持つものであり、 シミュレーション実行時に、前記の複数サイクル分の各
    サイクル毎の消費電力を持つ機能ブロックに関して、一
    サイクルにおける消費電力の計算を行なう場合に、当該
    サイクルの電力モードピンの状態に加え、過去の複数サ
    イクルの電力モードピンの状態を元に、前記の電力モー
    ドピン状態毎の消費電力情報から当該機能ブロックが消
    費する電力を求めることを特徴とする請求項6に記載の
    シミュレーション方法。
  8. 【請求項8】 プロセッサ部と、動作レベルの機能ブロ
    ックから成る動作レベル回路部と、論理回路部とから成
    る回路の動作をシミュレートする協調シミュレーション
    において、 プロセッサ部に対しては、請求項1、請求項2、請求項
    3、又は請求項4に記載のシミュレーション方法によ
    り、プロセッサ部の消費電力を計算し、 動作レベル回路部に対しては、請求項6又は請求項7記
    載のシミュレーション方法により、動作レベル回路部の
    消費電力を計算し、 論理回路部に対しては、回路内部の動作をシミュレート
    すると同時に、回路内部のノードの信号変化を元に、論
    理回路部の消費電力を計算し、 前記のプロセッサ部の消費電力と、前記の動作レベル回
    路部の消費電力と、前記の論理回路部の消費電力とか
    ら、全体の回路の消費電力を求めることを特徴とするシ
    ミュレーション方法。
  9. 【請求項9】 回路中の1個以上の部分回路に対して、
    個々の部分回路を実現した実チップを備え、 前記の回路の回路動作のシミュレーションを行なう時
    に、前記の実チップを備えた部分回路の動作に関して
    は、前記の実チップの入力ピンに入力値を与え、その出
    力ピンの出力値を用いるシミュレーション方法におい
    て、 前記の実チップを備えた部分回路の0個以上の第1のグ
    ループの部分回路に対しては、シミュレーション実行時
    に、当該実チップで消費される電力を測定し、シミュレ
    ーション対象の回路全体の条件を考慮した補正処理を行
    ない当該部分ブロックの消費電力を求め、 前記の実チップを備えた部分回路で前記の第1のグルー
    プ以外の第2のグループの部分回路に対しては、請求項
    6又は請求項7に記載の方法により消費電力を求め、 実チップを備えていない回路部分に対しては、回路内部
    の動作をシミュレートすると同時に、回路内部のノード
    の信号変化を元に、論理回路部の消費電力を計算する方
    法か、請求項1、請求項2、請求項3、請求項4、請求
    項5、請求項6、請求項7、又は請求項8に記載のシミ
    ュレーション方法により消費電力を求め、 前記の実チップ部を備えた回路に対して求めた消費電力
    と、実チップを備えていない回路部分に対して求めた消
    費電力とから、全体の回路の消費電力を求めることを特
    徴とするシミュレーション方法。
  10. 【請求項10】 請求項1、請求項2、請求項3、請求
    項4、請求項5、請求項6、請求項7、請求項8、又は
    請求項9に記載のシミュレーション方法において、 シミュレーション実行中には、消費電力計算に必要な情
    報を記憶装置に保存しておき、 シミュレーション実行後に、前記の記憶装置に保存して
    おいた消費電力計算に必要な情報を元に、当該シミュレ
    ーションで求めた回路動作時の回路の消費電力を求める
    ことを特徴とするシミュレーション方法。
JP32773997A 1997-11-28 1997-11-28 消費電力のシミュレーション方法 Pending JPH11161692A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32773997A JPH11161692A (ja) 1997-11-28 1997-11-28 消費電力のシミュレーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32773997A JPH11161692A (ja) 1997-11-28 1997-11-28 消費電力のシミュレーション方法

Publications (1)

Publication Number Publication Date
JPH11161692A true JPH11161692A (ja) 1999-06-18

Family

ID=18202447

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32773997A Pending JPH11161692A (ja) 1997-11-28 1997-11-28 消費電力のシミュレーション方法

Country Status (1)

Country Link
JP (1) JPH11161692A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007213556A (ja) * 2006-01-11 2007-08-23 Matsushita Electric Ind Co Ltd 回路解析装置
JP2008102927A (ja) * 2006-10-19 2008-05-01 Internatl Business Mach Corp <Ibm> コンピュータ・プロセッサ・システムのための消費電力管理方法及びシステム
JP2008299464A (ja) * 2007-05-30 2008-12-11 Nec Electronics Corp 消費電力計算方法、消費電力計算プログラムおよび消費電力計算装置
JP2009157909A (ja) * 2007-12-05 2009-07-16 Fujitsu Ltd 消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法
US7836326B2 (en) 2006-07-25 2010-11-16 National University Corporation Nagoya University Apparatus with variable pipeline stages via unification processing and cancellation
WO2012001779A1 (ja) * 2010-06-30 2012-01-05 富士通株式会社 情報処理装置の使用量解析方法、情報処理システム及びそのプログラム
JP2013084178A (ja) * 2011-10-12 2013-05-09 Fujitsu Ltd シミュレーション装置,方法,およびプログラム
WO2013114745A1 (ja) 2012-01-31 2013-08-08 日本電気株式会社 情報処理装置、及び情報処理装置の使用電力算出方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007213556A (ja) * 2006-01-11 2007-08-23 Matsushita Electric Ind Co Ltd 回路解析装置
US7836326B2 (en) 2006-07-25 2010-11-16 National University Corporation Nagoya University Apparatus with variable pipeline stages via unification processing and cancellation
JP2008102927A (ja) * 2006-10-19 2008-05-01 Internatl Business Mach Corp <Ibm> コンピュータ・プロセッサ・システムのための消費電力管理方法及びシステム
JP2008299464A (ja) * 2007-05-30 2008-12-11 Nec Electronics Corp 消費電力計算方法、消費電力計算プログラムおよび消費電力計算装置
JP2009157909A (ja) * 2007-12-05 2009-07-16 Fujitsu Ltd 消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法
WO2012001779A1 (ja) * 2010-06-30 2012-01-05 富士通株式会社 情報処理装置の使用量解析方法、情報処理システム及びそのプログラム
US9372523B2 (en) 2010-06-30 2016-06-21 Fujitsu Limited Calculating amount of power consumed by a user's application in multi-user computing environment basing upon counters information
JP2013084178A (ja) * 2011-10-12 2013-05-09 Fujitsu Ltd シミュレーション装置,方法,およびプログラム
US9372703B2 (en) 2011-10-12 2016-06-21 Fujitsu Limited Simulation apparatus and simulation method
WO2013114745A1 (ja) 2012-01-31 2013-08-08 日本電気株式会社 情報処理装置、及び情報処理装置の使用電力算出方法
US9600388B2 (en) 2012-01-31 2017-03-21 Nec Corporation Information processing apparatus that computes power consumption for CPU command

Similar Documents

Publication Publication Date Title
US6125334A (en) Module-configurable full-chip power profiler
US6477697B1 (en) Adding complex instruction extensions defined in a standardized language to a microprocessor design to produce a configurable definition of a target instruction set, and hdl description of circuitry necessary to implement the instruction set, and development and verification tools for the instruction set
US7770140B2 (en) Method and apparatus for evaluating integrated circuit design model performance using basic block vectors and fly-by vectors including microarchitecture dependent information
US8010334B2 (en) Method and apparatus for evaluating integrated circuit design performance using basic block vectors, cycles per instruction (CPI) information and microarchitecture dependent information
US20030212963A1 (en) Method and apparatus for jump control in a pipelined processor
US11734480B2 (en) Performance modeling and analysis of microprocessors using dependency graphs
US20200073662A1 (en) Padded vectorization with compile time known masks
Wan et al. An energy conscious methodology for early design exploration of heterogeneous DSPs
JPH04233040A (ja) コンピュータプログラム実行シミュレーションシステム
JPH11161692A (ja) 消費電力のシミュレーション方法
US20030154469A1 (en) Apparatus and method for improved execution of a software pipeline loop procedure in a digital signal processor
WO2000070483A2 (en) Method and apparatus for processor pipeline segmentation and re-assembly
EP1190305B1 (en) Method and apparatus for jump delay slot control in a pipelined processor
US20110218791A1 (en) System for Simulating Processor Power Consumption and Method of the Same
JP2000293557A (ja) 消費電力のシミュレーション方法
US7308548B2 (en) Processor organizing apparatus and method for organize a pipeline processor
Hsieh et al. Microprocessor power analysis by labeled simulation
Wilhelm Efficient analysis of pipeline models for WCET computation
US20060168431A1 (en) Method and apparatus for jump delay slot control in a pipelined processor
WO2000070444A2 (en) Method and apparatus for jump control in a pipelined processor
Kim et al. Performance simulation modeling for fast evaluation of pipelined scalar processor by evaluation reuse
US20240192958A1 (en) Branch target buffer operation with auxiliary indirect cache
Carmona et al. Implementation of a fully pipelined ARM compatible microprocessor core
Kumar et al. Learning-based architecture-level power modeling of CPUs
Rykunov et al. Automated generation of processor architectures in embedded systems design

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040427