JP2000293557A - 消費電力のシミュレーション方法 - Google Patents
消費電力のシミュレーション方法Info
- Publication number
- JP2000293557A JP2000293557A JP11097318A JP9731899A JP2000293557A JP 2000293557 A JP2000293557 A JP 2000293557A JP 11097318 A JP11097318 A JP 11097318A JP 9731899 A JP9731899 A JP 9731899A JP 2000293557 A JP2000293557 A JP 2000293557A
- Authority
- JP
- Japan
- Prior art keywords
- power consumption
- cache
- instruction
- bus
- consumption information
- 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
Links
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
(57)【要約】
【課題】 プロセッサコアやメガセルコアを再利用し、
集積して大規模な半導体集積回路を設計する時に、その
半導体集積回路の消費電力を高速に見積もるシミュレー
ション方法を提供する。 【解決手段】 予め、CPUコア部の各命令に対しては
命令毎の消費電力情報を、キャッシュ部に対してはキャ
ッシュ動作毎の消費電力情報を、バス部に対しては、ア
ドレス領域毎の消費電力情報を備え、シミュレーション
実行中又は終了後に、前記の消費電力情報よりシミュレ
ーション対象の回路全体で消費される電力を計算する。
集積して大規模な半導体集積回路を設計する時に、その
半導体集積回路の消費電力を高速に見積もるシミュレー
ション方法を提供する。 【解決手段】 予め、CPUコア部の各命令に対しては
命令毎の消費電力情報を、キャッシュ部に対してはキャ
ッシュ動作毎の消費電力情報を、バス部に対しては、ア
ドレス領域毎の消費電力情報を備え、シミュレーション
実行中又は終了後に、前記の消費電力情報よりシミュレ
ーション対象の回路全体で消費される電力を計算する。
Description
【0001】
【発明の属する技術分野】本発明は、計算機を用いた半
導体集積回路の消費電力のシミュレーション方法に関
し、特に、プロセッサコアやメガセルコアと呼ばれる既
に設計されたコアライブラリを再利用し、集積して大規
模な半導体集積回路を設計する時に、その半導体集積回
路の回路動作を模擬すると共に、その消費電力を高速に
見積もるシミュレーション方法を提供するものである。
導体集積回路の消費電力のシミュレーション方法に関
し、特に、プロセッサコアやメガセルコアと呼ばれる既
に設計されたコアライブラリを再利用し、集積して大規
模な半導体集積回路を設計する時に、その半導体集積回
路の回路動作を模擬すると共に、その消費電力を高速に
見積もるシミュレーション方法を提供するものである。
【0002】
【従来の技術】従来、計算機を用いた半導体集積回路の
消費電力のシミュレーション方法としては、回路レベル
やゲートレベルのものが用いられてきた。
消費電力のシミュレーション方法としては、回路レベル
やゲートレベルのものが用いられてきた。
【0003】回路レベルの消費電力のシミュレーション
では、対象の半導体集積回路のトランジスタレベルのネ
ットリストを、SPICE等の回路レベルのシミュレー
ション方法により解析し、その結果の電圧値と電流値と
より電力を算出するものである。
では、対象の半導体集積回路のトランジスタレベルのネ
ットリストを、SPICE等の回路レベルのシミュレー
ション方法により解析し、その結果の電圧値と電流値と
より電力を算出するものである。
【0004】また、ゲートレベルの消費電力のシミュレ
ーション方法としては、特許公報第2518553号、
特開平2−171861号、特開平3−127180
号、等に開示されている。これらで開示されている方法
は、シミュレーション対象回路中に含まれる回路の構成
要素に対して、予め、前記の回路レベルの消費電力シミ
ュレーション方法により、回路中のゲートの入力/出力
や、ネット等のノードの信号変化あたりの消費電力を求
めておく。そして、対象の半導体集積回路のゲートレベ
ルの論理シミュレーションを行ない、回路中のゲートの
入力/出力や、ネット等のノードの信号変化を求め、そ
の信号変化と前記の予め求めた信号変化あたりの消費電
力とから、回路全体の消費電力を算出するものである。
ーション方法としては、特許公報第2518553号、
特開平2−171861号、特開平3−127180
号、等に開示されている。これらで開示されている方法
は、シミュレーション対象回路中に含まれる回路の構成
要素に対して、予め、前記の回路レベルの消費電力シミ
ュレーション方法により、回路中のゲートの入力/出力
や、ネット等のノードの信号変化あたりの消費電力を求
めておく。そして、対象の半導体集積回路のゲートレベ
ルの論理シミュレーションを行ない、回路中のゲートの
入力/出力や、ネット等のノードの信号変化を求め、そ
の信号変化と前記の予め求めた信号変化あたりの消費電
力とから、回路全体の消費電力を算出するものである。
【0005】これら従来の消費電力のシミュレーション
方法は、半導体集積回路の設計工程において、ゲートレ
ベル、又はトランジスタレベルの設計を行なう時点で利
用できるものである。
方法は、半導体集積回路の設計工程において、ゲートレ
ベル、又はトランジスタレベルの設計を行なう時点で利
用できるものである。
【0006】また、キャッシュメモリ、特に、命令キャ
ッシュを備えたプロセッサの消費電力を求める方法とし
ては、特開平9−218731号、特開平10−401
44号、及び特開平10−254944号等に開示され
ている。特開平9−218731号により開示されてい
る方法は、命令キャッシュがミスする場合とヒットした
場合の消費電力を各々求め、キャッシュのページサイ
ズ、命令分岐等を考慮しCPU動作の統計的な情報から
消費電力の見積もりを行う。特開平10−40144号
に開示されている方法は、実際のマイクロプロセッサに
おいてキャッシュがミスする場合とヒットする場合に関
して複数命令を実行し、その時の消費電力を測定するこ
とによりキャッシュを考慮した命令毎の消費電力を求め
る。特開平10−254944号に開示されている方法
は、プロセッサのストールを考慮して命令レベルでの消
費電力を求めている。
ッシュを備えたプロセッサの消費電力を求める方法とし
ては、特開平9−218731号、特開平10−401
44号、及び特開平10−254944号等に開示され
ている。特開平9−218731号により開示されてい
る方法は、命令キャッシュがミスする場合とヒットした
場合の消費電力を各々求め、キャッシュのページサイ
ズ、命令分岐等を考慮しCPU動作の統計的な情報から
消費電力の見積もりを行う。特開平10−40144号
に開示されている方法は、実際のマイクロプロセッサに
おいてキャッシュがミスする場合とヒットする場合に関
して複数命令を実行し、その時の消費電力を測定するこ
とによりキャッシュを考慮した命令毎の消費電力を求め
る。特開平10−254944号に開示されている方法
は、プロセッサのストールを考慮して命令レベルでの消
費電力を求めている。
【0007】これらの従来のプロセッサの消費電力のシ
ミュレーション方法及び装置は、命令メモリに着目し、
命令レベルでのプロセッサの消費電力を統計的に求める
ものである。
ミュレーション方法及び装置は、命令メモリに着目し、
命令レベルでのプロセッサの消費電力を統計的に求める
ものである。
【0008】
【発明が解決しようとする課題】しかしながら、近年、
半導体集積回路の設計においては、対象回路を全て新規
設計するのではなく、プロセッサコアやメガセルコアと
呼ばれる過去に一度以上設計した設計データを再利用可
能なコアライブラリ化し、それらを再利用、集積して大
規模な半導体集積回路を設計するコアベース設計又はI
P(IntellectualProperty)ベース設計と呼ばれる設計
が行なわれる様になってきた。このコアベース設計で
は、複数のコアライブラリを組み合わせて所望の速度、
面積、消費電力の仕様を持つ半導体集積回路を実現でき
るかを設計早期に見積もる必要があるが、前記従来のゲ
ートレベルや回路レベルの消費電力のシミュレーション
方法では、設計がゲートレベルや回路レベルまで進んで
からでないと消費電力を見積もれないという問題点を有
している。
半導体集積回路の設計においては、対象回路を全て新規
設計するのではなく、プロセッサコアやメガセルコアと
呼ばれる過去に一度以上設計した設計データを再利用可
能なコアライブラリ化し、それらを再利用、集積して大
規模な半導体集積回路を設計するコアベース設計又はI
P(IntellectualProperty)ベース設計と呼ばれる設計
が行なわれる様になってきた。このコアベース設計で
は、複数のコアライブラリを組み合わせて所望の速度、
面積、消費電力の仕様を持つ半導体集積回路を実現でき
るかを設計早期に見積もる必要があるが、前記従来のゲ
ートレベルや回路レベルの消費電力のシミュレーション
方法では、設計がゲートレベルや回路レベルまで進んで
からでないと消費電力を見積もれないという問題点を有
している。
【0009】また、近年の半導体集積回路設計では、単
にハードウエアとしてコアライブラリを組み合わせるの
ではなく、必要な機能をプロセッサコア上のソフトウエ
アで実現した場合と、メガセルコアを利用したハードウ
エアで実現した場合とのトレードオフを行ないながら所
望の半導体集積回路を設計するハードウエア/ソフトウ
エア協調設計が必要になってきた。このハードウエア/
ソフトウエア協調設計においては、速度や面積はもちろ
ん、1チップ化においては消費電力を見積もることが重
要であるが、数多くのプロセッサコア、メガセルコア等
のコアライブラリの中から必要なコアライブラリを選択
し、ソフトウエアを含め、大規模な半導体集積回路に対
して、ゲートレベルや回路レベルで消費電力の見積りを
行なうには膨大な計算時間が必要であるという問題点を
有している。さらに、半導体回路の高速化、システムL
SI化により、キャッシュメモリを備えたプロセッサコ
アの利用や、チップ上のバスを用いて多数のコアを統合
することが可能となり、様々なアーキテクチャ面のトレ
ードオフを行い、最適なシステム構成の探索を行う必要
がある。この場合も、プロセッサで実行されるソフトウ
エアの様々な動作に対して動的に消費電力を求め、同一
の機能をハードウエアで実行した場合の動作速度及び消
費電力を比較し、ある部分のソフトウエアはハードウエ
ア化する等の検討を行う。この場合、統計的な情報のみ
で電力を求めるのではなく、実際に使用するソフトウエ
アのモジュール毎に動的に消費電力を評価して、トレー
ドオフを行う必要がある。
にハードウエアとしてコアライブラリを組み合わせるの
ではなく、必要な機能をプロセッサコア上のソフトウエ
アで実現した場合と、メガセルコアを利用したハードウ
エアで実現した場合とのトレードオフを行ないながら所
望の半導体集積回路を設計するハードウエア/ソフトウ
エア協調設計が必要になってきた。このハードウエア/
ソフトウエア協調設計においては、速度や面積はもちろ
ん、1チップ化においては消費電力を見積もることが重
要であるが、数多くのプロセッサコア、メガセルコア等
のコアライブラリの中から必要なコアライブラリを選択
し、ソフトウエアを含め、大規模な半導体集積回路に対
して、ゲートレベルや回路レベルで消費電力の見積りを
行なうには膨大な計算時間が必要であるという問題点を
有している。さらに、半導体回路の高速化、システムL
SI化により、キャッシュメモリを備えたプロセッサコ
アの利用や、チップ上のバスを用いて多数のコアを統合
することが可能となり、様々なアーキテクチャ面のトレ
ードオフを行い、最適なシステム構成の探索を行う必要
がある。この場合も、プロセッサで実行されるソフトウ
エアの様々な動作に対して動的に消費電力を求め、同一
の機能をハードウエアで実行した場合の動作速度及び消
費電力を比較し、ある部分のソフトウエアはハードウエ
ア化する等の検討を行う。この場合、統計的な情報のみ
で電力を求めるのではなく、実際に使用するソフトウエ
アのモジュール毎に動的に消費電力を評価して、トレー
ドオフを行う必要がある。
【0010】本発明は、かかる点に鑑みてなされたもの
であり、その目的は、プロセッサコアやメガセルコアと
呼ばれる既に設計されたコアライブラリを再利用し、集
積して大規模な半導体集積回路を設計する時に、その半
導体集積回路の回路動作を模擬すると共に、その消費電
力を高速に見積もるシミュレーション方法を提供するこ
とにある。
であり、その目的は、プロセッサコアやメガセルコアと
呼ばれる既に設計されたコアライブラリを再利用し、集
積して大規模な半導体集積回路を設計する時に、その半
導体集積回路の回路動作を模擬すると共に、その消費電
力を高速に見積もるシミュレーション方法を提供するこ
とにある。
【0011】
【課題を解決するための手段】前記の目的を達成するた
め、本発明は、予め、プロセッサの命令レベルの各命令
に対しては命令毎の消費電力情報を、キャッシュメモリ
に対してはキャッシュ動作毎の消費電力情報を、バスに
対してはバスのアドレス空間に対して個々のアドレス領
域毎の消費電力情報を備え、シミュレーション実行中又
はシミュレーション実行後に、前記の消費電力情報より
シミュレーション対象の回路全体で消費される電力を計
算するものである。
め、本発明は、予め、プロセッサの命令レベルの各命令
に対しては命令毎の消費電力情報を、キャッシュメモリ
に対してはキャッシュ動作毎の消費電力情報を、バスに
対してはバスのアドレス空間に対して個々のアドレス領
域毎の消費電力情報を備え、シミュレーション実行中又
はシミュレーション実行後に、前記の消費電力情報より
シミュレーション対象の回路全体で消費される電力を計
算するものである。
【0012】具体的に請求項1の発明のシミュレーショ
ン方法は、キャッシュメモリを備えたプロセッサの命令
動作を計算機中でシミュレートする方法を対象とし、シ
ミュレーション実行前に予め、前記のプロセッサの命令
セットに対して、各々の命令が実行される時に消費され
る電力を求め、命令毎の消費電力情報として記憶すると
共に、前記のキャッシュメモリの複数の動作に対して、
各々の動作に消費される電力を求め、キャッシュ動作毎
の消費電力情報として記憶しておき、与えられたプログ
ラムコードに対するシミュレーション実行時に、各々の
命令に対して、命令動作及びキャッシュ動作をシミュレ
ートすると同時に、前記の命令毎の消費電力情報より実
行中の命令に対応するCPUコア部の消費電力を求め、
前記のキャッシュ動作毎の消費電力情報より、バスアク
セスにより発生するキャッシュ動作に対応したキャッシ
ュ部の消費電力を求め、前記のCPUコア部の消費電力
と、前記のキャッシュ部の消費電力とから、前記のプロ
セッサが前記のプログラムコード実行時の消費電力を求
めることを特徴とする。
ン方法は、キャッシュメモリを備えたプロセッサの命令
動作を計算機中でシミュレートする方法を対象とし、シ
ミュレーション実行前に予め、前記のプロセッサの命令
セットに対して、各々の命令が実行される時に消費され
る電力を求め、命令毎の消費電力情報として記憶すると
共に、前記のキャッシュメモリの複数の動作に対して、
各々の動作に消費される電力を求め、キャッシュ動作毎
の消費電力情報として記憶しておき、与えられたプログ
ラムコードに対するシミュレーション実行時に、各々の
命令に対して、命令動作及びキャッシュ動作をシミュレ
ートすると同時に、前記の命令毎の消費電力情報より実
行中の命令に対応するCPUコア部の消費電力を求め、
前記のキャッシュ動作毎の消費電力情報より、バスアク
セスにより発生するキャッシュ動作に対応したキャッシ
ュ部の消費電力を求め、前記のCPUコア部の消費電力
と、前記のキャッシュ部の消費電力とから、前記のプロ
セッサが前記のプログラムコード実行時の消費電力を求
めることを特徴とする。
【0013】請求項1記載の発明では、シミュレーショ
ン実行前に、プロセッサの命令セットの個々の命令及び
キャッシュメモリの複数の動作に対して、回路レベル又
はゲートレベルのシミュレーション、又は実際に試作し
た実チップの評価結果より、各命令が実行される時に消
費される電力を求め命令毎の消費電力情報に、各キャッ
シュ動作が実行される時に消費される電力を求めキャッ
シュ動作毎の消費電力情報に格納しておく。この処理
は、命令セット中の命令個数分及びキャッシュ動作種類
の個数分の処理を行なえば良いので、回路レベルやゲー
トレベルのシミュレーションを用いても現実的な時間内
に計算することが可能である。そして、シミュレーショ
ン実行中に与えられたプログラムコードに対する命令動
作をシミュレートすると共に、実行された命令に対応す
る消費出力の値を命令毎の消費電力情報から検索する。
キャッシュに関しては、実行される命令のフェッチ及
び、一部の命令に関してはデータの書き込み又は読み出
しのバスアクセスのキャッシュ動作をシミュレートする
と共に、実行されたキャッシュ動作に対応する消費電力
の値をキャッシュ動作毎の消費電力情報から検索する。
これらの消費電力の値を一定時間毎に集計していくこと
により、与えられたプログラムコードで動作する時にプ
ロセッサのCPUコア部とキャッシュ部が消費する電力
の時間遷移を求める。ここで、プログラムコードに従っ
て実行されるサイクル数は通常数千、数百万サイクル以
上の膨大なサイクル数になるが、命令毎の消費電力情報
は計算機中では表形式や関数形式等で保持することによ
り簡単に検索、計算することが可能であり、また一定時
間毎の消費電力を計算する場合も簡単な積算及び平均計
算等により、高速に行なうことが可能である。
ン実行前に、プロセッサの命令セットの個々の命令及び
キャッシュメモリの複数の動作に対して、回路レベル又
はゲートレベルのシミュレーション、又は実際に試作し
た実チップの評価結果より、各命令が実行される時に消
費される電力を求め命令毎の消費電力情報に、各キャッ
シュ動作が実行される時に消費される電力を求めキャッ
シュ動作毎の消費電力情報に格納しておく。この処理
は、命令セット中の命令個数分及びキャッシュ動作種類
の個数分の処理を行なえば良いので、回路レベルやゲー
トレベルのシミュレーションを用いても現実的な時間内
に計算することが可能である。そして、シミュレーショ
ン実行中に与えられたプログラムコードに対する命令動
作をシミュレートすると共に、実行された命令に対応す
る消費出力の値を命令毎の消費電力情報から検索する。
キャッシュに関しては、実行される命令のフェッチ及
び、一部の命令に関してはデータの書き込み又は読み出
しのバスアクセスのキャッシュ動作をシミュレートする
と共に、実行されたキャッシュ動作に対応する消費電力
の値をキャッシュ動作毎の消費電力情報から検索する。
これらの消費電力の値を一定時間毎に集計していくこと
により、与えられたプログラムコードで動作する時にプ
ロセッサのCPUコア部とキャッシュ部が消費する電力
の時間遷移を求める。ここで、プログラムコードに従っ
て実行されるサイクル数は通常数千、数百万サイクル以
上の膨大なサイクル数になるが、命令毎の消費電力情報
は計算機中では表形式や関数形式等で保持することによ
り簡単に検索、計算することが可能であり、また一定時
間毎の消費電力を計算する場合も簡単な積算及び平均計
算等により、高速に行なうことが可能である。
【0014】請求項2記載の発明は、前記請求項1に記
載のシミュレーション方法において、前記のキャッシュ
動作毎の消費電力情報が、少なくとも、キャッシュがヒ
ットした場合の動作とミスした場合の動作とを区別した
消費電力情報であり、与えられたプログラムコードに対
するシミュレーション実行時に、各々の命令に対して、
発生したバスアクセスに対してキャッシュがヒットした
場合には前記のキャッシュ動作毎の消費電力情報中のヒ
ットした場合の動作に対する消費電力情報によりキャッ
シュ部の消費電力を求め、キャッシュがミスした場合に
はミスした場合の動作の消費電力情報によりキャッシュ
部の消費電力を求めることを特徴とする。
載のシミュレーション方法において、前記のキャッシュ
動作毎の消費電力情報が、少なくとも、キャッシュがヒ
ットした場合の動作とミスした場合の動作とを区別した
消費電力情報であり、与えられたプログラムコードに対
するシミュレーション実行時に、各々の命令に対して、
発生したバスアクセスに対してキャッシュがヒットした
場合には前記のキャッシュ動作毎の消費電力情報中のヒ
ットした場合の動作に対する消費電力情報によりキャッ
シュ部の消費電力を求め、キャッシュがミスした場合に
はミスした場合の動作の消費電力情報によりキャッシュ
部の消費電力を求めることを特徴とする。
【0015】請求項3記載の発明は、請求項1に記載の
シミュレーション方法において、前記のキャッシュ動作
毎の消費電力情報が、少なくとも、キャッシュの動作が
書き込み処理である場合と読み出し処理である場合とを
区別した消費電力情報であり、かつ、書き込み処理と読
み出し処理の各々に対して、キャッシュがヒットした場
合の動作とミスした場合の動作とを区別した消費電力情
報であり、与えられたプログラムコードに対するシミュ
レーション実行時に、各々の命令に対して、発生したバ
スアクセスが読み出し処理であるか書き込み処理である
かと、キャッシュがヒットしたかミスしたかとを判断
し、前記のキャッシュ動作毎の消費電力情報の該当する
消費電力情報よりキャッシュ部の消費電力を求めること
を特徴とする。
シミュレーション方法において、前記のキャッシュ動作
毎の消費電力情報が、少なくとも、キャッシュの動作が
書き込み処理である場合と読み出し処理である場合とを
区別した消費電力情報であり、かつ、書き込み処理と読
み出し処理の各々に対して、キャッシュがヒットした場
合の動作とミスした場合の動作とを区別した消費電力情
報であり、与えられたプログラムコードに対するシミュ
レーション実行時に、各々の命令に対して、発生したバ
スアクセスが読み出し処理であるか書き込み処理である
かと、キャッシュがヒットしたかミスしたかとを判断
し、前記のキャッシュ動作毎の消費電力情報の該当する
消費電力情報よりキャッシュ部の消費電力を求めること
を特徴とする。
【0016】請求項4記載の発明は、請求項1に記載の
シミュレーション方法において、前記のキャッシュ動作
毎の消費電力情報として、命令キャッシュ用とデータキ
ャッシュ用とを備え、命令キャッシュ用のキャッシュ動
作毎の消費電力情報は、少なくとも、キャッシュがヒッ
トした場合の動作とミスした場合の動作とを区別した消
費電力情報であり、データキャッシュ用のキャッシュ動
作毎の消費電力情報は、少なくとも、キャッシュの動作
が書き込み処理である場合と読み出し処理である場合と
を区別した消費電力情報であり、かつ、書き込み処理と
読み出し処理の各々に対して、キャッシュがヒットした
場合の動作とミスした場合の動作とを区別した消費電力
情報であり、与えられたプログラムコードに対するシミ
ュレーション実行時に、各々の命令に対して、発生した
バスアクセスが、命令キャッシュに対する場合には、前
記の命令キャッシュ用のキャッシュ動作毎の消費電力情
報より、キャッシュがヒットしたかを判断し命令キャッ
シュ部の消費電力を求め、発生したバスアクセスが、デ
ータキャッシュに対する場合には、発生したバスアクセ
スが読み出し処理であるか書き込み処理であるかと、キ
ャッシュがヒットしたかミスしたかとを判断し、前記の
データキャッシュ用のキャッシュ動作毎の消費電力情報
の該当する消費電力情報よりデータキャッシュ部の消費
電力を求め、前記の命令キャッシュ部の消費電力と前記
のデータキャッシュ部の消費電力とからキャッシュ部全
体の消費電力を求めることを特徴とする。
シミュレーション方法において、前記のキャッシュ動作
毎の消費電力情報として、命令キャッシュ用とデータキ
ャッシュ用とを備え、命令キャッシュ用のキャッシュ動
作毎の消費電力情報は、少なくとも、キャッシュがヒッ
トした場合の動作とミスした場合の動作とを区別した消
費電力情報であり、データキャッシュ用のキャッシュ動
作毎の消費電力情報は、少なくとも、キャッシュの動作
が書き込み処理である場合と読み出し処理である場合と
を区別した消費電力情報であり、かつ、書き込み処理と
読み出し処理の各々に対して、キャッシュがヒットした
場合の動作とミスした場合の動作とを区別した消費電力
情報であり、与えられたプログラムコードに対するシミ
ュレーション実行時に、各々の命令に対して、発生した
バスアクセスが、命令キャッシュに対する場合には、前
記の命令キャッシュ用のキャッシュ動作毎の消費電力情
報より、キャッシュがヒットしたかを判断し命令キャッ
シュ部の消費電力を求め、発生したバスアクセスが、デ
ータキャッシュに対する場合には、発生したバスアクセ
スが読み出し処理であるか書き込み処理であるかと、キ
ャッシュがヒットしたかミスしたかとを判断し、前記の
データキャッシュ用のキャッシュ動作毎の消費電力情報
の該当する消費電力情報よりデータキャッシュ部の消費
電力を求め、前記の命令キャッシュ部の消費電力と前記
のデータキャッシュ部の消費電力とからキャッシュ部全
体の消費電力を求めることを特徴とする。
【0017】請求項5記載の発明は、1個以上のバスマ
スター及びバススレーブがバスで接続された回路のアー
キテクチャレベルの動作を計算機中でシミュレートする
方法において、シミュレーション実行前に予め、前記の
バスマスターが動作する時に消費する電力をバスマスタ
ー毎の消費電力情報に、前記のバススレーブが動作する
時に消費する電力をバススレーブ毎の消費電力情報に、
前記のバスのアドレス空間に対して、個々のアドレス領
域毎に、そのアドレス領域へのバスアクセス時にバス部
で消費される電力をアドレス領域毎の消費電力情報とし
て記憶しておき、前記の回路に対するシミュレーション
実行時に、各バスアクセスに対して、バスの動作をシミ
ュレートすると同時に、前記のバスマスター毎の消費電
力情報より、バスマスターの消費電力を求め、前記のバ
ススレーブ毎の消費電力情報より、バススレーブの消費
電力を求め、前記のアドレス領域毎の消費電力情報よ
り、発生したバスアクセスのアドレス値に対応するバス
部の消費電力を求め、前記のバスマスターの消費電力
と、前記のバススレーブの消費電力と、及び前記のバス
部の消費電力とから、前記の回路の動作時の消費電力を
求めることを特徴とする。
スター及びバススレーブがバスで接続された回路のアー
キテクチャレベルの動作を計算機中でシミュレートする
方法において、シミュレーション実行前に予め、前記の
バスマスターが動作する時に消費する電力をバスマスタ
ー毎の消費電力情報に、前記のバススレーブが動作する
時に消費する電力をバススレーブ毎の消費電力情報に、
前記のバスのアドレス空間に対して、個々のアドレス領
域毎に、そのアドレス領域へのバスアクセス時にバス部
で消費される電力をアドレス領域毎の消費電力情報とし
て記憶しておき、前記の回路に対するシミュレーション
実行時に、各バスアクセスに対して、バスの動作をシミ
ュレートすると同時に、前記のバスマスター毎の消費電
力情報より、バスマスターの消費電力を求め、前記のバ
ススレーブ毎の消費電力情報より、バススレーブの消費
電力を求め、前記のアドレス領域毎の消費電力情報よ
り、発生したバスアクセスのアドレス値に対応するバス
部の消費電力を求め、前記のバスマスターの消費電力
と、前記のバススレーブの消費電力と、及び前記のバス
部の消費電力とから、前記の回路の動作時の消費電力を
求めることを特徴とする。
【0018】請求項5記載の発明では、シミュレーショ
ン実行前に、回路中の個々のバスマスター、バススレー
ブ、及びバス部に対して、回路レベル又はゲートレベル
のシミュレーション、又は実際に試作した実チップの評
価結果より、バスサイクルあたりに消費される電力を求
め、各々、バスマスター毎の消費電力情報、バススレー
ブ毎の消費電力情報、及びアドレス領域毎の消費電力情
報に格納しておく。バスマスターとは、プロセッサ、D
SP、及びDMAコントローラ等であり、バスを獲得し
てバスに接続されたバススレーブやバスを獲得していな
いバスマスターに対して、バスを介して読み書きの処理
を行う。このバスマスターがバスを獲得して、バスサイ
クルを実行する時に内部で消費する電力を前記のバスマ
スター毎の消費電力情報に格納する。バススレーブは、
メモリ、タイマー、シリアルI/F、及び専用ハードウ
エア等である。また、バスマスターでバス非獲得時に外
部から内部レジスタ等をアクセスできる様に設計されて
いるものも含まれる。このバススレーブが前記のバスマ
スターからバスを介して選択されアクセスされる時に内
部で消費する電力を前記のバススレーブ毎の消費電力情
報に格納する。バス部は、バスアービタ、バスデコー
ダ、バスアダプタ、及びバス信号線等である。このバス
部は、アドレス空間等のバスサイクル実行時の条件によ
り消費される電力が異なるため、個々のアドレス領域毎
にバスサイクル時の消費電力を求め、前記のアドレス領
域毎の消費電力情報に格納する。この処理は、バスマス
ター、バススレーブ、及びバス部の複数のアドレス領域
の個数分、また、その中で場合により複数の動作状態が
ありその動作状態により消費される電力が異なる場合で
も、さらにその動作状態の個数分の処理を行うが、これ
らの個数は高々数十から数百までの有限個数であり、関
数化を行えば個数を減らすことができ、回路レベルやゲ
ートレベルのシミュレーションを用いても現実的な時間
内に計算することが可能である。そして、シミュレーシ
ョン実行中は、前記のバスマスター毎の消費電力情報、
バススレーブ毎の消費電力情報、及びアドレス領域毎の
消費電力情報から、各バスサイクルの動作状態に応じた
消費電力を検索し、検索した消費電力より回路全体の消
費電力を求める。ここで、シミュレーションで実行され
るバスサイクル数は通常数千、数百万サイクル以上の膨
大なサイクル数になるが、前記の各消費電力情報は計算
機中では表形式や関数形式等で保持することにより簡単
に検索、計算することが可能であり、また一定時間毎の
消費電力を計算する場合も簡単な積算及び平均計算等に
より、高速に行なうことが可能である。
ン実行前に、回路中の個々のバスマスター、バススレー
ブ、及びバス部に対して、回路レベル又はゲートレベル
のシミュレーション、又は実際に試作した実チップの評
価結果より、バスサイクルあたりに消費される電力を求
め、各々、バスマスター毎の消費電力情報、バススレー
ブ毎の消費電力情報、及びアドレス領域毎の消費電力情
報に格納しておく。バスマスターとは、プロセッサ、D
SP、及びDMAコントローラ等であり、バスを獲得し
てバスに接続されたバススレーブやバスを獲得していな
いバスマスターに対して、バスを介して読み書きの処理
を行う。このバスマスターがバスを獲得して、バスサイ
クルを実行する時に内部で消費する電力を前記のバスマ
スター毎の消費電力情報に格納する。バススレーブは、
メモリ、タイマー、シリアルI/F、及び専用ハードウ
エア等である。また、バスマスターでバス非獲得時に外
部から内部レジスタ等をアクセスできる様に設計されて
いるものも含まれる。このバススレーブが前記のバスマ
スターからバスを介して選択されアクセスされる時に内
部で消費する電力を前記のバススレーブ毎の消費電力情
報に格納する。バス部は、バスアービタ、バスデコー
ダ、バスアダプタ、及びバス信号線等である。このバス
部は、アドレス空間等のバスサイクル実行時の条件によ
り消費される電力が異なるため、個々のアドレス領域毎
にバスサイクル時の消費電力を求め、前記のアドレス領
域毎の消費電力情報に格納する。この処理は、バスマス
ター、バススレーブ、及びバス部の複数のアドレス領域
の個数分、また、その中で場合により複数の動作状態が
ありその動作状態により消費される電力が異なる場合で
も、さらにその動作状態の個数分の処理を行うが、これ
らの個数は高々数十から数百までの有限個数であり、関
数化を行えば個数を減らすことができ、回路レベルやゲ
ートレベルのシミュレーションを用いても現実的な時間
内に計算することが可能である。そして、シミュレーシ
ョン実行中は、前記のバスマスター毎の消費電力情報、
バススレーブ毎の消費電力情報、及びアドレス領域毎の
消費電力情報から、各バスサイクルの動作状態に応じた
消費電力を検索し、検索した消費電力より回路全体の消
費電力を求める。ここで、シミュレーションで実行され
るバスサイクル数は通常数千、数百万サイクル以上の膨
大なサイクル数になるが、前記の各消費電力情報は計算
機中では表形式や関数形式等で保持することにより簡単
に検索、計算することが可能であり、また一定時間毎の
消費電力を計算する場合も簡単な積算及び平均計算等に
より、高速に行なうことが可能である。
【0019】請求項6記載の発明は、請求項5に記載の
シミュレーション方法において、前記のアドレス領域毎
の消費電力情報が、少なくとも、バスアクセスのビット
幅を区別した消費電力情報であり、前記の回路に対する
シミュレーション実行時に、各バスアクセスに対して、
バスアクセスが発生する場合には、前記のアドレス領域
毎の消費電力情報より、発生したバスアクセスのアドレ
ス値とそのビット幅に対応したバス部の消費電力を求め
ることを特徴とする。
シミュレーション方法において、前記のアドレス領域毎
の消費電力情報が、少なくとも、バスアクセスのビット
幅を区別した消費電力情報であり、前記の回路に対する
シミュレーション実行時に、各バスアクセスに対して、
バスアクセスが発生する場合には、前記のアドレス領域
毎の消費電力情報より、発生したバスアクセスのアドレ
ス値とそのビット幅に対応したバス部の消費電力を求め
ることを特徴とする。
【0020】請求項7記載の発明は、請求項5に記載の
シミュレーション方法において、前記のアドレス領域毎
の消費電力情報が、少なくとも、バスアクセスが読み出
し処理である場合と書き込み処理である場合とを区別し
た消費電力情報であり、前記の回路に対するシミュレー
ション実行時に、各バスアクセスに対して、バスアクセ
スが発生する場合には、前記のアドレス領域毎の消費電
力情報より、発生したバスアクセスのアドレス値と読み
出し処理又は書き込み処理に対応したバス部の消費電力
を求めることを特徴とする。
シミュレーション方法において、前記のアドレス領域毎
の消費電力情報が、少なくとも、バスアクセスが読み出
し処理である場合と書き込み処理である場合とを区別し
た消費電力情報であり、前記の回路に対するシミュレー
ション実行時に、各バスアクセスに対して、バスアクセ
スが発生する場合には、前記のアドレス領域毎の消費電
力情報より、発生したバスアクセスのアドレス値と読み
出し処理又は書き込み処理に対応したバス部の消費電力
を求めることを特徴とする。
【0021】請求項8記載の発明は、請求項5に記載の
シミュレーション方法において、前記のアドレス領域毎
の消費電力情報が、少なくとも、バスの転送モード及び
転送ワード数に基づいた消費電力情報であり、前記の回
路に対するシミュレーション実行時に、各バスアクセス
に対して、バスアクセスが発生する場合には、前記のア
ドレス領域毎の消費電力情報より、発生したバスアクセ
スのアドレス値、転送モード、及び転送ワード数に対応
したバス部の消費電力を求めることを特徴とする。
シミュレーション方法において、前記のアドレス領域毎
の消費電力情報が、少なくとも、バスの転送モード及び
転送ワード数に基づいた消費電力情報であり、前記の回
路に対するシミュレーション実行時に、各バスアクセス
に対して、バスアクセスが発生する場合には、前記のア
ドレス領域毎の消費電力情報より、発生したバスアクセ
スのアドレス値、転送モード、及び転送ワード数に対応
したバス部の消費電力を求めることを特徴とする。
【0022】請求項9記載の発明は、CPUコアとキャ
ッシュメモリとから成るプロセッサと、バススレーブと
が、バスで接続された回路のアーキテクチャレベルの動
作を計算機中でシミュレートする方法を対象とし、与え
られたプログラムコードに対して、CPUコア部の消費
電力を、請求項1に記載の方法により求め、キャッシュ
部の消費電力を、請求項2、請求項3、又は請求項4に
記載の方法のいずれかの方法により求め、バス部の消費
電力及びバススレーブ部の消費電力を、請求項5、請求
項6、請求項7、及び請求項8に記載の方法の少なくと
も1個以上の方法により求め、前記のCPUコア部の消
費電力と、前記のキャッシュ部の消費電力と、前記のバ
ススレーブ部の電力と、及び前記のバス部の消費電力と
から、前記の回路アーキテクチャに対して前記のプログ
ラムコード実行時の消費電力を求めることを特徴とす
る。
ッシュメモリとから成るプロセッサと、バススレーブと
が、バスで接続された回路のアーキテクチャレベルの動
作を計算機中でシミュレートする方法を対象とし、与え
られたプログラムコードに対して、CPUコア部の消費
電力を、請求項1に記載の方法により求め、キャッシュ
部の消費電力を、請求項2、請求項3、又は請求項4に
記載の方法のいずれかの方法により求め、バス部の消費
電力及びバススレーブ部の消費電力を、請求項5、請求
項6、請求項7、及び請求項8に記載の方法の少なくと
も1個以上の方法により求め、前記のCPUコア部の消
費電力と、前記のキャッシュ部の消費電力と、前記のバ
ススレーブ部の電力と、及び前記のバス部の消費電力と
から、前記の回路アーキテクチャに対して前記のプログ
ラムコード実行時の消費電力を求めることを特徴とす
る。
【0023】請求項10記載の発明は、請求項1、請求
項2、請求項3、請求項4、請求項5、請求項6、請求
項7、請求項8、又は請求項9に記載のシミュレーショ
ン方法において、シミュレーション実行中には、消費電
力計算に必要な情報を記憶装置に保存しておき、シミュ
レーション実行後に、前記の記憶装置に保存しておいた
消費電力計算に必要な情報を元に、当該シミュレーショ
ンで求めた回路動作時の回路の消費電力を求めることを
特徴とする。
項2、請求項3、請求項4、請求項5、請求項6、請求
項7、請求項8、又は請求項9に記載のシミュレーショ
ン方法において、シミュレーション実行中には、消費電
力計算に必要な情報を記憶装置に保存しておき、シミュ
レーション実行後に、前記の記憶装置に保存しておいた
消費電力計算に必要な情報を元に、当該シミュレーショ
ンで求めた回路動作時の回路の消費電力を求めることを
特徴とする。
【0024】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図を用いて説明する。
て、図を用いて説明する。
【0025】(第1の実施の形態)第1の実施の形態で
は、請求項1及び請求項2に係る発明について図を用い
て説明する。
は、請求項1及び請求項2に係る発明について図を用い
て説明する。
【0026】図1は本実施の形態に係る消費電力のシミ
ュレーション方法のシミュレーション実行時の処理の流
れを示すフローチャートである。図1において、101
は命令動作をシミュレートするプロセッサモデルのCP
Uコア部やキャッシュメモリ部の内部変数等を初期値に
設定する初期化処理である。102はシミュレートする
プロセッサモデルに与えるプログラムコードを読み込
み、シミュレーションを開始する命令の位置とシミュレ
ーションを終了する命令の位置を設定するプログラム読
み込み処理である。103は与えられたプログラムコー
ドより、プロセッサモデルが現在の実行サイクルにおい
て実行する命令を読み込む命令読み込み処理である。命
令はCPU部からはキャッシュメモリを介して読み込ま
れるので、キャッシュ部の動作のシミュレーションもこ
こで行う。104は命令読み込み処理103でシミュレ
ートされたキャッシュ部の動作に従ってキャッシュ動作
毎の消費電力情報からキャッシュ部で消費される電力を
求めるキャッシュ部消費電力計算処理である。105は
命令読み込み処理103で読み込まれた命令のプロセッ
サ動作をシミュレートする命令実行処理である。106
は命令毎の消費電力情報より命令実行処理105でシミ
ュレートされた命令に対応する消費電力を求めるCPU
部消費電力計算処理である。107はキャッシュ部消費
電力計算処理104及びCPU部消費電力計算処理10
6で求められた消費電力よりプロセッサモデルで現在の
実行サイクルで消費される消費電力を求める消費電力計
算処理である。108はプログラム読み込み処理102
により設定されている終了命令位置によりシミュレート
すべきプログラムコードが終了しているかを判断するプ
ログラムコード終了判断処理である。109はプログラ
ムコード終了処理108でプログラムコードのシミュレ
ーションが終了していないと判断された時に、シミュレ
ーションを行う実行サイクルを1だけ進める実行サイク
ル更新処理であり、実行サイクルの更新後に命令読み込
み処理103に戻り次の実行サイクルの処理を継続す
る。110はプログラムコード終了判断処理108によ
りシミュレートすべきプログラムコードが終了している
時に消費電力計算処理107で計算した消費電力の情報
を出力する消費電力出力処理である。
ュレーション方法のシミュレーション実行時の処理の流
れを示すフローチャートである。図1において、101
は命令動作をシミュレートするプロセッサモデルのCP
Uコア部やキャッシュメモリ部の内部変数等を初期値に
設定する初期化処理である。102はシミュレートする
プロセッサモデルに与えるプログラムコードを読み込
み、シミュレーションを開始する命令の位置とシミュレ
ーションを終了する命令の位置を設定するプログラム読
み込み処理である。103は与えられたプログラムコー
ドより、プロセッサモデルが現在の実行サイクルにおい
て実行する命令を読み込む命令読み込み処理である。命
令はCPU部からはキャッシュメモリを介して読み込ま
れるので、キャッシュ部の動作のシミュレーションもこ
こで行う。104は命令読み込み処理103でシミュレ
ートされたキャッシュ部の動作に従ってキャッシュ動作
毎の消費電力情報からキャッシュ部で消費される電力を
求めるキャッシュ部消費電力計算処理である。105は
命令読み込み処理103で読み込まれた命令のプロセッ
サ動作をシミュレートする命令実行処理である。106
は命令毎の消費電力情報より命令実行処理105でシミ
ュレートされた命令に対応する消費電力を求めるCPU
部消費電力計算処理である。107はキャッシュ部消費
電力計算処理104及びCPU部消費電力計算処理10
6で求められた消費電力よりプロセッサモデルで現在の
実行サイクルで消費される消費電力を求める消費電力計
算処理である。108はプログラム読み込み処理102
により設定されている終了命令位置によりシミュレート
すべきプログラムコードが終了しているかを判断するプ
ログラムコード終了判断処理である。109はプログラ
ムコード終了処理108でプログラムコードのシミュレ
ーションが終了していないと判断された時に、シミュレ
ーションを行う実行サイクルを1だけ進める実行サイク
ル更新処理であり、実行サイクルの更新後に命令読み込
み処理103に戻り次の実行サイクルの処理を継続す
る。110はプログラムコード終了判断処理108によ
りシミュレートすべきプログラムコードが終了している
時に消費電力計算処理107で計算した消費電力の情報
を出力する消費電力出力処理である。
【0027】図2はシミュレートされるプロセッサの命
令セットの一例である。201は命令セットの一覧を示
した命令テーブルである。命令LDはアドレスにより指
定されるメモリ領域のデータからレジスタにデータを転
送するデータロード命令である。命令STはレジスタか
らアドレスにより指定されるメモリ領域にデータを転送
するデータストア命令である。命令MOVはソースで指
定されるレジスタからデスティネーションで指定される
レジスタに代入するデータ転送命令である。命令ADD
はソースで指定されるレジスタの値とデスティネーショ
ンで指定されるレジスタの値とを加算し、結果をデステ
ィネーションで指定されるレジスタに代入する加算命令
である。命令SUBはデスティネーションで指定される
レジスタの値からソースで指定されるレジスタの値を減
算し、結果をデスティネーションで指定されるレジスタ
に代入する減算命令である。命令MULはソースで指定
されるレジスタの値とデスティネーションで指定される
レジスタの値の乗算を行い、結果をデスティネーション
で指定されるレジスタに代入する乗算命令である。命令
CMPはソースで指定されるレジスタの値又は定数値と
デスティネーションで指定されるレジスタの値とを比較
し、等しければ比較結果フラグをリセットし、等しくな
ければ比較結果フラグをセットする比較命令である。命
令BNEは、比較結果フラグがセットされていればラベ
ルで指定される命令位置に処理をジャンプさせる条件分
岐命令である。命令JMPはラベルで指定される命令位
置に処理をジャンプさせる無条件分岐命令である。
令セットの一例である。201は命令セットの一覧を示
した命令テーブルである。命令LDはアドレスにより指
定されるメモリ領域のデータからレジスタにデータを転
送するデータロード命令である。命令STはレジスタか
らアドレスにより指定されるメモリ領域にデータを転送
するデータストア命令である。命令MOVはソースで指
定されるレジスタからデスティネーションで指定される
レジスタに代入するデータ転送命令である。命令ADD
はソースで指定されるレジスタの値とデスティネーショ
ンで指定されるレジスタの値とを加算し、結果をデステ
ィネーションで指定されるレジスタに代入する加算命令
である。命令SUBはデスティネーションで指定される
レジスタの値からソースで指定されるレジスタの値を減
算し、結果をデスティネーションで指定されるレジスタ
に代入する減算命令である。命令MULはソースで指定
されるレジスタの値とデスティネーションで指定される
レジスタの値の乗算を行い、結果をデスティネーション
で指定されるレジスタに代入する乗算命令である。命令
CMPはソースで指定されるレジスタの値又は定数値と
デスティネーションで指定されるレジスタの値とを比較
し、等しければ比較結果フラグをリセットし、等しくな
ければ比較結果フラグをセットする比較命令である。命
令BNEは、比較結果フラグがセットされていればラベ
ルで指定される命令位置に処理をジャンプさせる条件分
岐命令である。命令JMPはラベルで指定される命令位
置に処理をジャンプさせる無条件分岐命令である。
【0028】図3はシミュレーション対象となるプロセ
ッサの命令毎の消費電力情報を示す。301は命令毎の
消費電力テーブルであり、命令テーブル201で定義さ
れている命令毎に、その命令が一度実行される時の消費
電力値が格納されている。
ッサの命令毎の消費電力情報を示す。301は命令毎の
消費電力テーブルであり、命令テーブル201で定義さ
れている命令毎に、その命令が一度実行される時の消費
電力値が格納されている。
【0029】図4はシミュレーションの対象となるプロ
セッサで実行するプログラムの一例である。401はプ
ログラム全体であり、411から420の各一行が一命
令を表わしており、各行は左の列より、ラベル、命令、
デスティネーション(分岐命令ではラベル)、ソースを
示す。LD命令411のソースの[80]は、アドレス
空間上のアドレス80を示す。他のLD命令、ST命令
でも同様である。
セッサで実行するプログラムの一例である。401はプ
ログラム全体であり、411から420の各一行が一命
令を表わしており、各行は左の列より、ラベル、命令、
デスティネーション(分岐命令ではラベル)、ソースを
示す。LD命令411のソースの[80]は、アドレス
空間上のアドレス80を示す。他のLD命令、ST命令
でも同様である。
【0030】図5は、キャッシュ動作毎の消費電力情報
の一例である。501は、キャッシュ動作毎の消費電力
テーブルであり、502にキャッシュ動作としてヒット
とミスが定義され、予めキャッシュ動作がヒットした場
合とミスした場合について、回路シミュレータ等で求
め、このキャッシュ動作毎の消費電力テーブル501に
格納しておく。ここでは、ヒット時に20[μW/MH
z]、ミス時に100[μW/MHz]の値が格納され
ている。
の一例である。501は、キャッシュ動作毎の消費電力
テーブルであり、502にキャッシュ動作としてヒット
とミスが定義され、予めキャッシュ動作がヒットした場
合とミスした場合について、回路シミュレータ等で求
め、このキャッシュ動作毎の消費電力テーブル501に
格納しておく。ここでは、ヒット時に20[μW/MH
z]、ミス時に100[μW/MHz]の値が格納され
ている。
【0031】図15は、本実施の形態に係るシミュレー
ション処理を実行する計算機のハードウエアの構成図の
一例である。1501は処理されたあらゆる情報を見る
ためのディスプレイ装置、1502は設計者があらゆる
情報や処理命令を入力するためのキーボード、1503
はあらゆる処理を行う中央演算処理装置、1504は各
種情報を格納する記憶装置である。
ション処理を実行する計算機のハードウエアの構成図の
一例である。1501は処理されたあらゆる情報を見る
ためのディスプレイ装置、1502は設計者があらゆる
情報や処理命令を入力するためのキーボード、1503
はあらゆる処理を行う中央演算処理装置、1504は各
種情報を格納する記憶装置である。
【0032】以下、本実施の形態に係る消費電力のシミ
ュレーション方法を図1のフォローに基づき、プログラ
ム401を実行した場合を一例に用いて具体的に説明す
る。
ュレーション方法を図1のフォローに基づき、プログラ
ム401を実行した場合を一例に用いて具体的に説明す
る。
【0033】初期化処理101ではプログラムの実行を
行うための初期化を行う。ここでは、プロセッサモデル
のCPU部やキャッシュメモリ部の各種レジスタ等が設
定される。メモリの内容は、[80]は2、[A0]は
5が設定されているとする。プログラム読み込み処理1
02では、プログラムコード401が記憶手段に読み込
まれ、411からプログラムの実行を開始する様にプロ
グラムカウンタレジスタが設定される。また、420に
達した場合にプログラムの実行を終了する様に設定され
る。命令読み込み処理103では、プログラムカウンタ
レジスタが指す命令をフェッチする。この場合、キャッ
シュを介してLD命令411がフェッチされるが、キャ
ッシュにはこのアドレスへのアクセスは初回なのでキャ
ッシュはミスとなる。そして、キャッシュ部消費電力計
算処理104により、キャッシュ動作毎の消費電力テー
ブル501より、ミスした場合の100[μW/MH
z]が求められる。ここで、消費電力の計算はキャッシ
ュ毎の消費電力テーブル104から該当するキャッシュ
動作の消費電力値を引くだけの簡単な処理であり、容易
に高速に計算される。次に命令実行処理105によりL
D命令411の動作がシミュレートされ、メモリアドレ
ス[80]の値2がレジスタreg0に読み込まれる。
次に、CPU部消費電力計算処理106により命令毎の
消費電力テーブル301よりLD命令に相当する50
[μW/MHz]が求められる。そして、消費電力計算
処理107により、キャッシュ部消費電力計算処理10
4で求められた100[μW/MHz]とCPU部消費
電力計算処理106で求められた50[μW/MHz]
が加算され、150[μW/MHz]がサイクル1での
消費電力として求められる。次に、プログラムコード終
了判定処理108によりシミュレーション終了条件のコ
ードに達しているかが判断され、この場合達していない
ので、実行サイクル更新処理109でサイクル数が2に
設定され、プログラムカウンタレジスタも1進められ、
次の命令コード412が命令読み込み処理103でフェ
ッチされる。以下、命令読み込み処理から実行サイクル
更新処理109までが終了条件のコードに達するまで繰
り返される。図6にその結果を示す。
行うための初期化を行う。ここでは、プロセッサモデル
のCPU部やキャッシュメモリ部の各種レジスタ等が設
定される。メモリの内容は、[80]は2、[A0]は
5が設定されているとする。プログラム読み込み処理1
02では、プログラムコード401が記憶手段に読み込
まれ、411からプログラムの実行を開始する様にプロ
グラムカウンタレジスタが設定される。また、420に
達した場合にプログラムの実行を終了する様に設定され
る。命令読み込み処理103では、プログラムカウンタ
レジスタが指す命令をフェッチする。この場合、キャッ
シュを介してLD命令411がフェッチされるが、キャ
ッシュにはこのアドレスへのアクセスは初回なのでキャ
ッシュはミスとなる。そして、キャッシュ部消費電力計
算処理104により、キャッシュ動作毎の消費電力テー
ブル501より、ミスした場合の100[μW/MH
z]が求められる。ここで、消費電力の計算はキャッシ
ュ毎の消費電力テーブル104から該当するキャッシュ
動作の消費電力値を引くだけの簡単な処理であり、容易
に高速に計算される。次に命令実行処理105によりL
D命令411の動作がシミュレートされ、メモリアドレ
ス[80]の値2がレジスタreg0に読み込まれる。
次に、CPU部消費電力計算処理106により命令毎の
消費電力テーブル301よりLD命令に相当する50
[μW/MHz]が求められる。そして、消費電力計算
処理107により、キャッシュ部消費電力計算処理10
4で求められた100[μW/MHz]とCPU部消費
電力計算処理106で求められた50[μW/MHz]
が加算され、150[μW/MHz]がサイクル1での
消費電力として求められる。次に、プログラムコード終
了判定処理108によりシミュレーション終了条件のコ
ードに達しているかが判断され、この場合達していない
ので、実行サイクル更新処理109でサイクル数が2に
設定され、プログラムカウンタレジスタも1進められ、
次の命令コード412が命令読み込み処理103でフェ
ッチされる。以下、命令読み込み処理から実行サイクル
更新処理109までが終了条件のコードに達するまで繰
り返される。図6にその結果を示す。
【0034】図6において、601はサイクル数、60
2は実行された命令、603はCPU部で消費された電
力である。604は命令読み込み703での命令フェッ
チでのキャッシュ部の動作であり、「ミス」はミス、
「ヒット」はヒットを表わす。605は604のキャッ
シュ動作に応じてキャッシュ動作毎の消費電力情報から
求めた消費電力、606は実行した命令でバスアクセス
が発生した場合のキャッシュ部の動作であり、「Rミ
ス」は読み出しでミス、「Rヒット」は読み出しでヒッ
ト、「Wミス」は書き込みでミス、「Wヒット」は書き
込みでヒット、及び空欄はバスアクセス非発生を表わ
す。606は、603及び605の消費電力を加算した
プロセッサ全体での消費電力である。
2は実行された命令、603はCPU部で消費された電
力である。604は命令読み込み703での命令フェッ
チでのキャッシュ部の動作であり、「ミス」はミス、
「ヒット」はヒットを表わす。605は604のキャッ
シュ動作に応じてキャッシュ動作毎の消費電力情報から
求めた消費電力、606は実行した命令でバスアクセス
が発生した場合のキャッシュ部の動作であり、「Rミ
ス」は読み出しでミス、「Rヒット」は読み出しでヒッ
ト、「Wミス」は書き込みでミス、「Wヒット」は書き
込みでヒット、及び空欄はバスアクセス非発生を表わ
す。606は、603及び605の消費電力を加算した
プロセッサ全体での消費電力である。
【0035】シミュレーション終了条件のコードに達す
ると、消費電力出力処理110により、消費電力のシミ
ュレーション結果をディスプレイ装置1501に出力さ
れるか、記憶手段1504に出力される。
ると、消費電力出力処理110により、消費電力のシミ
ュレーション結果をディスプレイ装置1501に出力さ
れるか、記憶手段1504に出力される。
【0036】以上の様に、本発明に係る実施の形態によ
れば、請求項1又は請求項2に係る発明である消費電力
のシミュレーション方法によって、シミュレーション実
行前に、予め求められている各々の命令及びキャッシュ
部の動作状態に対して、命令毎の消費電力情報及びキャ
ッシュ動作毎の消費電力情報に格納しておき、検索集計
するのみで高速に与えられたプログラムコード実行時に
対する消費電力を求めることができる。特に請求項2に
係る発明では、キャッシュ動作毎の消費電力として、ヒ
ットとミスとを考慮したものであるため、命令キャッシ
ュを備えたプロセッサに最適なアーキテクチャレベルで
の消費電力のシミュレーション方法を提供することがで
きる。
れば、請求項1又は請求項2に係る発明である消費電力
のシミュレーション方法によって、シミュレーション実
行前に、予め求められている各々の命令及びキャッシュ
部の動作状態に対して、命令毎の消費電力情報及びキャ
ッシュ動作毎の消費電力情報に格納しておき、検索集計
するのみで高速に与えられたプログラムコード実行時に
対する消費電力を求めることができる。特に請求項2に
係る発明では、キャッシュ動作毎の消費電力として、ヒ
ットとミスとを考慮したものであるため、命令キャッシ
ュを備えたプロセッサに最適なアーキテクチャレベルで
の消費電力のシミュレーション方法を提供することがで
きる。
【0037】なお、本実施の形態ではキャッシュ動作毎
の消費電力情報として単純なテーブル形式を用いたが、
キャッシュ動作がヒットかミスかにより関数として定義
しても同様の効果が得られることは言うまでも無い。
の消費電力情報として単純なテーブル形式を用いたが、
キャッシュ動作がヒットかミスかにより関数として定義
しても同様の効果が得られることは言うまでも無い。
【0038】(第2の実施の形態)第2の実施の形態で
は、請求項1及び請求項3に係る発明について図を用い
て説明する。
は、請求項1及び請求項3に係る発明について図を用い
て説明する。
【0039】図7は本実施の形態に係る消費電力のシミ
ュレーション方法のシミュレーション実行時の処理の流
れを示すフローチャートである。図7において、701
は命令動作をシミュレートするプロセッサモデルのCP
Uコア部やキャッシュメモリ部の内部変数等を初期値に
設定する初期化処理である。702はシミュレートする
プロセッサモデルに与えるプログラムコードを読み込
み、シミュレーションを開始する命令の位置とシミュレ
ーションを終了する命令の位置を設定するプログラム読
み込み処理である。703は与えられたプログラムコー
ドより、プロセッサモデルが現在の実行サイクルにおい
て実行する命令を読み込む命令読み込み処理である。命
令はCPU部からはキャッシュメモリを介して読み込ま
れるので、キャッシュ部の動作のシミュレーションもこ
こで行う。704は命令読み込み処理703でシミュレ
ートされたキャッシュ部の動作に従って読み出し処理用
のキャッシュ動作毎の消費電力情報からキャッシュ部で
消費される電力を求める第1のキャッシュ部消費電力計
算処理である。705は命令読み込み処理703で読み
込まれた命令のプロセッサ動作をシミュレートする命令
実行処理である。706は命令毎の消費電力情報より命
令実行処理705でシミュレートされた命令に対応する
消費電力を求めるCPU部消費電力計算処理である。7
07は命令実行処理705においてシミュレートされた
命令でデータアクセスのバスアクセスが発生した場合、
データアクセスが書き込みの場合には書き込み処理用の
キャッシュ動作毎の消費電力情報より、データアクセス
が読み出しの場合には読み出し処理用のキャッシュ動作
毎の消費電力情報より、キャッシュ部で消費される消費
電力を計算する第2のキャッシュ部消費電力計算処理で
ある。708は第1のキャッシュ部消費電力計算処理7
04、CPU部消費電力計算処理706、及び第2のキ
ャッシュ部消費電力計算処理707で求められた消費電
力よりプロセッサモデルで現在の実行サイクルで消費さ
れる消費電力を求める消費電力計算処理である。709
はプログラム読み込み処理702により設定されている
終了命令位置によりシミュレートすべきプログラムコー
ドが終了しているかを判断するプログラムコード終了判
断処理である。710はプログラムコード終了判断処理
709でプログラムコードのシミュレーションが終了し
ていないと判断された時に、シミュレーションを行う実
行サイクルを1だけ進める実行サイクル更新処理であ
り、実行サイクルの更新後に命令読み込み処理703に
戻り次の実行サイクルの処理を継続する。711はプロ
グラムコード終了判断処理709によりシミュレートす
べきプログラムコードが終了している時に消費電力計算
処理708で計算した消費電力の情報を出力する消費電
力出力処理である。
ュレーション方法のシミュレーション実行時の処理の流
れを示すフローチャートである。図7において、701
は命令動作をシミュレートするプロセッサモデルのCP
Uコア部やキャッシュメモリ部の内部変数等を初期値に
設定する初期化処理である。702はシミュレートする
プロセッサモデルに与えるプログラムコードを読み込
み、シミュレーションを開始する命令の位置とシミュレ
ーションを終了する命令の位置を設定するプログラム読
み込み処理である。703は与えられたプログラムコー
ドより、プロセッサモデルが現在の実行サイクルにおい
て実行する命令を読み込む命令読み込み処理である。命
令はCPU部からはキャッシュメモリを介して読み込ま
れるので、キャッシュ部の動作のシミュレーションもこ
こで行う。704は命令読み込み処理703でシミュレ
ートされたキャッシュ部の動作に従って読み出し処理用
のキャッシュ動作毎の消費電力情報からキャッシュ部で
消費される電力を求める第1のキャッシュ部消費電力計
算処理である。705は命令読み込み処理703で読み
込まれた命令のプロセッサ動作をシミュレートする命令
実行処理である。706は命令毎の消費電力情報より命
令実行処理705でシミュレートされた命令に対応する
消費電力を求めるCPU部消費電力計算処理である。7
07は命令実行処理705においてシミュレートされた
命令でデータアクセスのバスアクセスが発生した場合、
データアクセスが書き込みの場合には書き込み処理用の
キャッシュ動作毎の消費電力情報より、データアクセス
が読み出しの場合には読み出し処理用のキャッシュ動作
毎の消費電力情報より、キャッシュ部で消費される消費
電力を計算する第2のキャッシュ部消費電力計算処理で
ある。708は第1のキャッシュ部消費電力計算処理7
04、CPU部消費電力計算処理706、及び第2のキ
ャッシュ部消費電力計算処理707で求められた消費電
力よりプロセッサモデルで現在の実行サイクルで消費さ
れる消費電力を求める消費電力計算処理である。709
はプログラム読み込み処理702により設定されている
終了命令位置によりシミュレートすべきプログラムコー
ドが終了しているかを判断するプログラムコード終了判
断処理である。710はプログラムコード終了判断処理
709でプログラムコードのシミュレーションが終了し
ていないと判断された時に、シミュレーションを行う実
行サイクルを1だけ進める実行サイクル更新処理であ
り、実行サイクルの更新後に命令読み込み処理703に
戻り次の実行サイクルの処理を継続する。711はプロ
グラムコード終了判断処理709によりシミュレートす
べきプログラムコードが終了している時に消費電力計算
処理708で計算した消費電力の情報を出力する消費電
力出力処理である。
【0040】シミュレートされるプロセッサの命令セッ
トとしては、図2で示した第1の実施の形態で用いたも
のと同じものを例に用いる。
トとしては、図2で示した第1の実施の形態で用いたも
のと同じものを例に用いる。
【0041】図8はシミュレーション対象となるプロセ
ッサの命令毎の消費電力情報を示す。801は命令毎の
消費電力テーブルであり、命令テーブル801で定義さ
れている命令毎に、その命令が一度実行される時の消費
電力値が格納されている。
ッサの命令毎の消費電力情報を示す。801は命令毎の
消費電力テーブルであり、命令テーブル801で定義さ
れている命令毎に、その命令が一度実行される時の消費
電力値が格納されている。
【0042】シミュレーションの対象となるプロセッサ
で実行するプログラムとしては、図4で示した第1の実
施の形態で用いたものを例に用いる。
で実行するプログラムとしては、図4で示した第1の実
施の形態で用いたものを例に用いる。
【0043】図9は、キャッシュ動作毎の消費電力情報
の一例である。901は、キャッシュ動作毎の消費電力
テーブルであり、902にキャッシュ動作として、書き
込み処理と読み出し処理とがあり、かつ、各々に対して
ヒットとミスが定義される。書き込み処理用のキャッシ
ュ動作毎の消費電力情報が910であり、読み出し処理
用のキャッシュ動作毎の消費電力情報が911である。
予め、各キャッシュ動作について、回路シミュレータ等
で求め、このキャッシュ動作毎の消費電力テーブル90
1に格納しておく。ここでは、書き込み処理用のキャッ
シュ動作毎の消費電力情報としては、ヒット時に100
[μW/MHz]、ミス時に80[μW/MHz]、読
み出し処理用のキャッシュ動作毎の消費電力情報として
は、ヒット時に20[μW/MHz]、ミス時に100
[μW/MHz]の値が格納されている。
の一例である。901は、キャッシュ動作毎の消費電力
テーブルであり、902にキャッシュ動作として、書き
込み処理と読み出し処理とがあり、かつ、各々に対して
ヒットとミスが定義される。書き込み処理用のキャッシ
ュ動作毎の消費電力情報が910であり、読み出し処理
用のキャッシュ動作毎の消費電力情報が911である。
予め、各キャッシュ動作について、回路シミュレータ等
で求め、このキャッシュ動作毎の消費電力テーブル90
1に格納しておく。ここでは、書き込み処理用のキャッ
シュ動作毎の消費電力情報としては、ヒット時に100
[μW/MHz]、ミス時に80[μW/MHz]、読
み出し処理用のキャッシュ動作毎の消費電力情報として
は、ヒット時に20[μW/MHz]、ミス時に100
[μW/MHz]の値が格納されている。
【0044】本実施の形態に係るシミュレーション処理
を実行する計算機のハードウエアの構成図としては、図
15で示した第1の実施の形態と同じものを用いる。
を実行する計算機のハードウエアの構成図としては、図
15で示した第1の実施の形態と同じものを用いる。
【0045】以下、本実施の形態に係る消費電力のシミ
ュレーション方法を図7のフォローに基づき、プログラ
ム401を実行した場合を一例に用いて具体的に説明す
る。
ュレーション方法を図7のフォローに基づき、プログラ
ム401を実行した場合を一例に用いて具体的に説明す
る。
【0046】初期化処理701ではプログラムの実行を
行うための初期化を行う。ここでは、プロセッサモデル
のCPU部やキャッシュメモリ部の各種レジスタ等が設
定される。メモリの内容は、[80]は2、[A0]は
5が設定されているとする。プログラム読み込み処理7
02では、プログラムコード401が記憶手段に読み込
まれ、411からプログラムの実行を開始する様にプロ
グラムカウンタレジスタが設定される。また、420に
達した場合にプログラムの実行を終了する様に設定され
る。命令読み込み処理703では、プログラムカウンタ
レジスタが指す命令をフェッチする。この場合、キャッ
シュを介してLD命令411がフェッチされるが、キャ
ッシュにはこのアドレスへのアクセスは初回なのでキャ
ッシュはミスとなる。そして、命令読み込みでは読み出
し処理であるので、第1のキャッシュ部消費電力計算処
理704により、読み出し処理用のキャッシュ動作毎の
消費電力情報910より、ミスした場合の100[μW
/MHz]が求められる。ここで、消費電力の計算は消
費電力テーブル901から該当するキャッシュ動作の消
費電力値を引くだけの簡単な処理であり、容易に高速に
計算される。次に命令実行処理705によりLD命令4
11の動作がシミュレートされ、メモリアドレス[8
0]の値2がレジスタreg0に読み込まれる。次に、
CPU部消費電力計算処理706により命令毎の消費電
力テーブル801よりLD命令に相当する20[μW/
MHz]が求められる。次に、命令実行処理705で、
バスアクセスが発生した場合には、第2のキャッシュ部
消費電力計算処理707により、バスアクセスで動作す
るキャッシュの消費電力を求める。LD命令では読み出
しのバスアクセスが発生し、アドレス[80]へのアク
セスはプログラム開始時より始めてであり、キャッシュ
はミスとなる、読み出し用のキャッシュ動作毎の消費電
力情報911より100[μW/MHz]が求められ
る。そして、消費電力計算処理708により、第1のキ
ャッシュ部消費電力計算処理704で求められた100
[μW/MHz]、CPU部消費電力計算処理706で
求められた20[μW/MHz]、及び第2のキャッシ
ュ部消費電力計算処理707で求められた100[μW
/MHz]を加算し、220[μW/MHz]がサイク
ル1での消費電力として求められる。次に、プログラム
コード終了判定処理709によりシミュレーション終了
条件のコードに達しているかが判断され、この場合達し
ていないので、実行サイクル更新処理710でサイクル
数が2に設定され、プログラムカウンタレジスタも1進
められ、次の命令コード412が命令読み込み処理70
3でフェッチされる。以下、命令読み込み処理から実行
サイクル更新処理710までが終了条件のコードに達す
るまで繰り返される。図10にその結果を示す。
行うための初期化を行う。ここでは、プロセッサモデル
のCPU部やキャッシュメモリ部の各種レジスタ等が設
定される。メモリの内容は、[80]は2、[A0]は
5が設定されているとする。プログラム読み込み処理7
02では、プログラムコード401が記憶手段に読み込
まれ、411からプログラムの実行を開始する様にプロ
グラムカウンタレジスタが設定される。また、420に
達した場合にプログラムの実行を終了する様に設定され
る。命令読み込み処理703では、プログラムカウンタ
レジスタが指す命令をフェッチする。この場合、キャッ
シュを介してLD命令411がフェッチされるが、キャ
ッシュにはこのアドレスへのアクセスは初回なのでキャ
ッシュはミスとなる。そして、命令読み込みでは読み出
し処理であるので、第1のキャッシュ部消費電力計算処
理704により、読み出し処理用のキャッシュ動作毎の
消費電力情報910より、ミスした場合の100[μW
/MHz]が求められる。ここで、消費電力の計算は消
費電力テーブル901から該当するキャッシュ動作の消
費電力値を引くだけの簡単な処理であり、容易に高速に
計算される。次に命令実行処理705によりLD命令4
11の動作がシミュレートされ、メモリアドレス[8
0]の値2がレジスタreg0に読み込まれる。次に、
CPU部消費電力計算処理706により命令毎の消費電
力テーブル801よりLD命令に相当する20[μW/
MHz]が求められる。次に、命令実行処理705で、
バスアクセスが発生した場合には、第2のキャッシュ部
消費電力計算処理707により、バスアクセスで動作す
るキャッシュの消費電力を求める。LD命令では読み出
しのバスアクセスが発生し、アドレス[80]へのアク
セスはプログラム開始時より始めてであり、キャッシュ
はミスとなる、読み出し用のキャッシュ動作毎の消費電
力情報911より100[μW/MHz]が求められ
る。そして、消費電力計算処理708により、第1のキ
ャッシュ部消費電力計算処理704で求められた100
[μW/MHz]、CPU部消費電力計算処理706で
求められた20[μW/MHz]、及び第2のキャッシ
ュ部消費電力計算処理707で求められた100[μW
/MHz]を加算し、220[μW/MHz]がサイク
ル1での消費電力として求められる。次に、プログラム
コード終了判定処理709によりシミュレーション終了
条件のコードに達しているかが判断され、この場合達し
ていないので、実行サイクル更新処理710でサイクル
数が2に設定され、プログラムカウンタレジスタも1進
められ、次の命令コード412が命令読み込み処理70
3でフェッチされる。以下、命令読み込み処理から実行
サイクル更新処理710までが終了条件のコードに達す
るまで繰り返される。図10にその結果を示す。
【0047】図10において、1001はサイクル数、
1002は実行された命令、1003はCPU部で消費
された電力である。1004は命令読み込み703での
命令フェッチでのキャッシュ部の動作であり、「Rミ
ス」は読み出しでミス、「Rヒット」は読み出しでヒッ
トを表わす。1005は1004のキャッシュ動作に応
じてキャッシュ動作毎の消費電力情報から求めた消費電
力、1006は実行した命令でバスアクセスが発生した
場合のキャッシュ部の動作であり、「Rミス」は読み出
しでミス、「Rヒット」は読み出しでヒット、「Wミ
ス」は書き込みでミス、「Wヒット」は書き込みでヒッ
ト、及び空欄はバスアクセス非発生を表わす。1007
は、1006でバスアクセスが発生した場合にキャッシ
ュ動作毎の消費電力情報から求めた消費電力、1008
は1003、1005、及び1007の消費電力を加算
したプロセッサ全体での消費電力である。
1002は実行された命令、1003はCPU部で消費
された電力である。1004は命令読み込み703での
命令フェッチでのキャッシュ部の動作であり、「Rミ
ス」は読み出しでミス、「Rヒット」は読み出しでヒッ
トを表わす。1005は1004のキャッシュ動作に応
じてキャッシュ動作毎の消費電力情報から求めた消費電
力、1006は実行した命令でバスアクセスが発生した
場合のキャッシュ部の動作であり、「Rミス」は読み出
しでミス、「Rヒット」は読み出しでヒット、「Wミ
ス」は書き込みでミス、「Wヒット」は書き込みでヒッ
ト、及び空欄はバスアクセス非発生を表わす。1007
は、1006でバスアクセスが発生した場合にキャッシ
ュ動作毎の消費電力情報から求めた消費電力、1008
は1003、1005、及び1007の消費電力を加算
したプロセッサ全体での消費電力である。
【0048】シミュレーション終了条件のコードに達す
ると、消費電力出力処理711により、消費電力のシミ
ュレーション結果をディスプレー装置1501に出力さ
れるか、記憶手段1504に出力される。
ると、消費電力出力処理711により、消費電力のシミ
ュレーション結果をディスプレー装置1501に出力さ
れるか、記憶手段1504に出力される。
【0049】以上の様に、本発明に係る実施の形態によ
れば、請求項1又は請求項3に係る発明である消費電力
のシミュレーション方法によって、シミュレーション実
行前に、予め求められている各々の命令及びキャッシュ
部の動作状態に対して、命令毎の消費電力情報及びキャ
ッシュ動作毎の消費電力情報に格納しておき、検索集計
するのみで高速に与えられたプログラムコード実行時に
対する消費電力を求めることができる。特に請求項3に
係る発明では、キャッシュ動作毎の消費電力として、書
き込み用と読み出し用とを備えているため、ユニファイ
ド形式の命令/データキャッシュ付きプロセッサに最適
なアーキテクチャレベルでの消費電力のシミュレーショ
ン方法を提供することができる。
れば、請求項1又は請求項3に係る発明である消費電力
のシミュレーション方法によって、シミュレーション実
行前に、予め求められている各々の命令及びキャッシュ
部の動作状態に対して、命令毎の消費電力情報及びキャ
ッシュ動作毎の消費電力情報に格納しておき、検索集計
するのみで高速に与えられたプログラムコード実行時に
対する消費電力を求めることができる。特に請求項3に
係る発明では、キャッシュ動作毎の消費電力として、書
き込み用と読み出し用とを備えているため、ユニファイ
ド形式の命令/データキャッシュ付きプロセッサに最適
なアーキテクチャレベルでの消費電力のシミュレーショ
ン方法を提供することができる。
【0050】なお、本実施の形態ではキャッシュ動作毎
の消費電力情報として単純なテーブル形式を用いたが、
キャッシュ動作がヒットかミスかにより関数として定義
しても同様の効果が得られることは言うまでも無い。
の消費電力情報として単純なテーブル形式を用いたが、
キャッシュ動作がヒットかミスかにより関数として定義
しても同様の効果が得られることは言うまでも無い。
【0051】(第3の実施の形態)第3の実施の形態で
は、請求項1及び請求項4に係る発明について図を用い
て説明する。
は、請求項1及び請求項4に係る発明について図を用い
て説明する。
【0052】図7は本実施の形態に係る消費電力のシミ
ュレーション方法のシミュレーション実行時の処理の流
れを示すフローチャートである。このフローチャート
は、第2の実施の形態で用いたフローチャートと同じも
のである。
ュレーション方法のシミュレーション実行時の処理の流
れを示すフローチャートである。このフローチャート
は、第2の実施の形態で用いたフローチャートと同じも
のである。
【0053】シミュレートされるプロセッサの命令セッ
トとしては、図2で示した第1の実施の形態で用いたも
のと同じものを例に用いる。
トとしては、図2で示した第1の実施の形態で用いたも
のと同じものを例に用いる。
【0054】シミュレーション対象となるプロセッサの
命令毎の消費電力情報としては、図8で示した第2の実
施の形態で用いたものと同じものを例に用いる。
命令毎の消費電力情報としては、図8で示した第2の実
施の形態で用いたものと同じものを例に用いる。
【0055】シミュレーションの対象となるプロセッサ
で実行するプログラムとしては、図4で示した第1の実
施の形態で用いたものを例に用いる。
で実行するプログラムとしては、図4で示した第1の実
施の形態で用いたものを例に用いる。
【0056】図11は、本実施の形態に係るキャッシュ
動作毎の消費電力情報の一例である。1101は、キャ
ッシュ動作毎の消費電力テーブルであり、1102は命
令キャッシュ用のキャッシュ動作毎の消費電力情報、1
103はデータキャッシュ用のキャッシュ動作毎の消費
電力情報である。1104にキャッシュ動作として、命
令キャッシュ用にはヒットとミス、データキャッシュ用
には書き込み処理と読み込み処理とがあり、かつ、各々
に対してヒットとミスとが定義される。予め、各キャッ
シュ動作について、回路シミュレータ等で求め、このキ
ャッシュ動作毎の消費電力テーブル1101に格納して
おく。ここでは、命令キャッシュ用のキャッシュ動作毎
の消費電力情報としては、ヒット時に30[μW/MH
z]、ミス時に120[μW/MHz]、データキャッ
シュ用の書き込み処理用のキャッシュ動作毎の消費電力
情報としては、ヒット時に100[μW/MHz]、ミ
ス時に80[μW/MHz]、読み出し処理用のキャッ
シュ動作毎の消費電力情報としては、ヒット時に20
[μW/MHz]、ミス時に90[μW/MHz]の値
が格納されている。
動作毎の消費電力情報の一例である。1101は、キャ
ッシュ動作毎の消費電力テーブルであり、1102は命
令キャッシュ用のキャッシュ動作毎の消費電力情報、1
103はデータキャッシュ用のキャッシュ動作毎の消費
電力情報である。1104にキャッシュ動作として、命
令キャッシュ用にはヒットとミス、データキャッシュ用
には書き込み処理と読み込み処理とがあり、かつ、各々
に対してヒットとミスとが定義される。予め、各キャッ
シュ動作について、回路シミュレータ等で求め、このキ
ャッシュ動作毎の消費電力テーブル1101に格納して
おく。ここでは、命令キャッシュ用のキャッシュ動作毎
の消費電力情報としては、ヒット時に30[μW/MH
z]、ミス時に120[μW/MHz]、データキャッ
シュ用の書き込み処理用のキャッシュ動作毎の消費電力
情報としては、ヒット時に100[μW/MHz]、ミ
ス時に80[μW/MHz]、読み出し処理用のキャッ
シュ動作毎の消費電力情報としては、ヒット時に20
[μW/MHz]、ミス時に90[μW/MHz]の値
が格納されている。
【0057】本実施の形態に係るシミュレーション処理
を実行する計算機のハードウエアの構成図としては、図
15で示した第1の実施の形態と同じものを用いる。
を実行する計算機のハードウエアの構成図としては、図
15で示した第1の実施の形態と同じものを用いる。
【0058】以下、本実施の形態に係る消費電力のシミ
ュレーション方法を図7のフォローに基づき、プログラ
ム401を実行した場合を一例に用いて具体的に説明す
る。
ュレーション方法を図7のフォローに基づき、プログラ
ム401を実行した場合を一例に用いて具体的に説明す
る。
【0059】初期化処理701ではプログラムの実行を
行うための初期化を行う。ここでは、プロセッサモデル
のCPU部やキャッシュメモリ部の各種レジスタ等が設
定される。メモリの内容は、[80]は2、[A0]は
5が設定されているとする。プログラム読み込み処理7
02では、プログラムコード401が記憶手段に読み込
まれ、411からプログラムの実行を開始する様にプロ
グラムカウンタレジスタが設定される。また、420に
達した場合にプログラムの実行を終了する様に設定され
る。命令読み込み処理703では、プログラムカウンタ
レジスタが指す命令をフェッチする。この場合、キャッ
シュを介してLD命令411がフェッチされるが、キャ
ッシュにはこのアドレスへのアクセスは初回なのでキャ
ッシュはミスとなる。そして、命令読み込みでは読み出
し処理であるので、第1のキャッシュ部消費電力計算処
理704により、命令キャッシュ用のキャッシュ動作毎
の消費電力情報1102より、ミスした場合の120
[μW/MHz]が求められる。ここで、消費電力の計
算は消費電力テーブル1101から該当するキャッシュ
動作の消費電力値を引くだけの簡単な処理であり、容易
に高速に計算される。次に命令実行処理705によりL
D命令411の動作がシミュレートされ、メモリアドレ
ス[80]の値2がレジスタreg0に読み込まれる。
次に、CPU部消費電力計算処理706により命令毎の
消費電力テーブル801よりLD命令に相当する20
[μW/MHz]が求められる。次に、命令実行処理7
05で、バスアクセスが発生した場合には、第2のキャ
ッシュ部消費電力計算処理707により、バスアクセス
で動作するキャッシュの消費電力を求める。LD命令で
は読み出しのバスアクセスが発生し、アドレス[80]
へのアクセスはプログラム開始時より始めてであり、キ
ャッシュはミスとなる。第2のキャッシュ部消費電力計
算処理707ではデータアクセスであり、データキャッ
シュが動作しするので、データキャッシュ用のキャッシ
ュ動作毎の消費電力情報1103より消費電力を求め
る。ここでは、読み出しでミスなので、90[μW/M
Hz]が求められる。そして、消費電力計算処理708
により、第1のキャッシュ部消費電力計算処理704で
求められた120[μW/MHz]、CPU部消費電力
計算処理706で求められた20[μW/MHz]、及
び第2のキャッシュ部消費電力計算処理707で求めら
れた90[μW/MHz]を加算し、230[μW/M
Hz]がサイクル1での消費電力として求められる。次
に、プログラムコード終了判定処理709によりシミュ
レーション終了条件のコードに達しているがが判断さ
れ、この場合達していないので、実行サイクル更新処理
710でサイクル数が2に設定され、プログラムカウン
タレジスタも1進められ、次の命令コード412が命令
読み込み処理703でフェッチされる。以下、命令読み
込み処理から実行サイクル更新処理710までが終了条
件のコードに達するまで繰り返される。図12にその結
果を示す。
行うための初期化を行う。ここでは、プロセッサモデル
のCPU部やキャッシュメモリ部の各種レジスタ等が設
定される。メモリの内容は、[80]は2、[A0]は
5が設定されているとする。プログラム読み込み処理7
02では、プログラムコード401が記憶手段に読み込
まれ、411からプログラムの実行を開始する様にプロ
グラムカウンタレジスタが設定される。また、420に
達した場合にプログラムの実行を終了する様に設定され
る。命令読み込み処理703では、プログラムカウンタ
レジスタが指す命令をフェッチする。この場合、キャッ
シュを介してLD命令411がフェッチされるが、キャ
ッシュにはこのアドレスへのアクセスは初回なのでキャ
ッシュはミスとなる。そして、命令読み込みでは読み出
し処理であるので、第1のキャッシュ部消費電力計算処
理704により、命令キャッシュ用のキャッシュ動作毎
の消費電力情報1102より、ミスした場合の120
[μW/MHz]が求められる。ここで、消費電力の計
算は消費電力テーブル1101から該当するキャッシュ
動作の消費電力値を引くだけの簡単な処理であり、容易
に高速に計算される。次に命令実行処理705によりL
D命令411の動作がシミュレートされ、メモリアドレ
ス[80]の値2がレジスタreg0に読み込まれる。
次に、CPU部消費電力計算処理706により命令毎の
消費電力テーブル801よりLD命令に相当する20
[μW/MHz]が求められる。次に、命令実行処理7
05で、バスアクセスが発生した場合には、第2のキャ
ッシュ部消費電力計算処理707により、バスアクセス
で動作するキャッシュの消費電力を求める。LD命令で
は読み出しのバスアクセスが発生し、アドレス[80]
へのアクセスはプログラム開始時より始めてであり、キ
ャッシュはミスとなる。第2のキャッシュ部消費電力計
算処理707ではデータアクセスであり、データキャッ
シュが動作しするので、データキャッシュ用のキャッシ
ュ動作毎の消費電力情報1103より消費電力を求め
る。ここでは、読み出しでミスなので、90[μW/M
Hz]が求められる。そして、消費電力計算処理708
により、第1のキャッシュ部消費電力計算処理704で
求められた120[μW/MHz]、CPU部消費電力
計算処理706で求められた20[μW/MHz]、及
び第2のキャッシュ部消費電力計算処理707で求めら
れた90[μW/MHz]を加算し、230[μW/M
Hz]がサイクル1での消費電力として求められる。次
に、プログラムコード終了判定処理709によりシミュ
レーション終了条件のコードに達しているがが判断さ
れ、この場合達していないので、実行サイクル更新処理
710でサイクル数が2に設定され、プログラムカウン
タレジスタも1進められ、次の命令コード412が命令
読み込み処理703でフェッチされる。以下、命令読み
込み処理から実行サイクル更新処理710までが終了条
件のコードに達するまで繰り返される。図12にその結
果を示す。
【0060】図12において、1201はサイクル数、
1202は実行された命令、1203はCPU部で消費
された電力である。1204は命令読み込み703での
命令フェッチでのキャッシュ部の動作であり、「Rミ
ス」は読み出しでミス、「Rヒット」は読み出しでヒッ
トを表わす。1205は1204のキャッシュ動作に応
じてキャッシュ動作毎の消費電力情報から求めた消費電
力、1206は実行した命令でバスアクセスが発生した
場合のキャッシュ部の動作であり、「Rミス」は読み出
しでミス、「Rヒット」は読み出しでヒット、「Wミ
ス」は書き込みでミス、「Wヒット」は書き込みでヒッ
ト、及び空欄はバスアクセス非発生を表わす。1207
は、1206でバスアクセスが発生した場合にキャッシ
ュ動作毎の消費電力情報から求めた消費電力、1208
は1203、1205、及び1207の消費電力を加算
したプロセッサ全体での消費電力である。
1202は実行された命令、1203はCPU部で消費
された電力である。1204は命令読み込み703での
命令フェッチでのキャッシュ部の動作であり、「Rミ
ス」は読み出しでミス、「Rヒット」は読み出しでヒッ
トを表わす。1205は1204のキャッシュ動作に応
じてキャッシュ動作毎の消費電力情報から求めた消費電
力、1206は実行した命令でバスアクセスが発生した
場合のキャッシュ部の動作であり、「Rミス」は読み出
しでミス、「Rヒット」は読み出しでヒット、「Wミ
ス」は書き込みでミス、「Wヒット」は書き込みでヒッ
ト、及び空欄はバスアクセス非発生を表わす。1207
は、1206でバスアクセスが発生した場合にキャッシ
ュ動作毎の消費電力情報から求めた消費電力、1208
は1203、1205、及び1207の消費電力を加算
したプロセッサ全体での消費電力である。
【0061】シミュレーション終了条件のコードに達す
ると、消費電力出力処理711により、消費電力のシミ
ュレーション結果をディスプレー装置1501に出力さ
れるか、記憶手段1504に出力される。
ると、消費電力出力処理711により、消費電力のシミ
ュレーション結果をディスプレー装置1501に出力さ
れるか、記憶手段1504に出力される。
【0062】以上の様に、本発明に係る実施の形態によ
れば、請求項1又は請求項4に係る発明である消費電力
のシミュレーション方法によって、シミュレーション実
行前に、予め求められている各々の命令及びキャッシュ
部の動作状態に対して、命令毎の消費電力情報及びキャ
ッシュ動作毎の消費電力情報に格納しておき、検索集計
するのみで高速に与えられたプログラムコード実行時に
対する消費電力を求めることができる。特に請求項4に
係る発明では、キャッシュ動作毎の消費電力として、命
令キャッシュ用とデータキャッシュ用とを備えているた
め、ハーバード形式の命令/データキャッシュ付きプロ
セッサに最適なアーキテクチャレベルでの消費電力のシ
ミュレーション方法を提供することができる。
れば、請求項1又は請求項4に係る発明である消費電力
のシミュレーション方法によって、シミュレーション実
行前に、予め求められている各々の命令及びキャッシュ
部の動作状態に対して、命令毎の消費電力情報及びキャ
ッシュ動作毎の消費電力情報に格納しておき、検索集計
するのみで高速に与えられたプログラムコード実行時に
対する消費電力を求めることができる。特に請求項4に
係る発明では、キャッシュ動作毎の消費電力として、命
令キャッシュ用とデータキャッシュ用とを備えているた
め、ハーバード形式の命令/データキャッシュ付きプロ
セッサに最適なアーキテクチャレベルでの消費電力のシ
ミュレーション方法を提供することができる。
【0063】なお、本実施の形態ではキャッシュ動作毎
の消費電力情報として単純なテーブル形式を用いたが、
キャッシュ動作がヒットかミスかにより関数として定義
しても同様の効果が得られることは言うまでも無い。
の消費電力情報として単純なテーブル形式を用いたが、
キャッシュ動作がヒットかミスかにより関数として定義
しても同様の効果が得られることは言うまでも無い。
【0064】(第4の実施の形態)第4の実施の形態で
は、請求項10に係る発明について図を用いて説明す
る。
は、請求項10に係る発明について図を用いて説明す
る。
【0065】本実施の形態に係るシミュレーション処理
を実行する計算機のハードウエアの構成図としては、図
15で示した第1の実施の形態と同じものを用いる。
を実行する計算機のハードウエアの構成図としては、図
15で示した第1の実施の形態と同じものを用いる。
【0066】図13は本実施の形態に係る消費電力のシ
ミュレーション方法のシミュレーション実行時の処理の
流れを示すフローチャートである。図13において、1
301は命令動作をシミュレートするプロセッサモデル
のCPUコア部やキャッシュメモリ部の内部変数等を初
期値に設定する初期化処理である。1302はシミュレ
ートするプロセッサモデルに与えるプログラムコードを
読み込み、シミュレーションを開始する命令の位置とシ
ミュレーションを終了する命令の位置を設定するプログ
ラム読み込み処理である。1303は与えられたプログ
ラムコードより、プロセッサモデルが現在の実行サイク
ルにおいて実行する命令を読み込む命令読み込み処理で
ある。命令はCPU部からはキャッシュメモリを介して
読み込まれるので、キャッシュ部の動作のシミュレーシ
ョンもここで行う。1304は命令読み込み処理130
3でシミュレートされたキャッシュ部の動作と現在の現
在のサイクルを記憶手段1504に出力する第1のキャ
ッシュ部動作保存処理である。1305は命令読み込み
処理1303で読み込まれた命令のプロセッサ動作をシ
ミュレートする命令実行処理である。1306は命令実
行処理1305でシミュレートされた命令の種類と現在
のサイクルを記憶手段1504に出力するCPU部動作
保存処理である。1307は命令実行処理1305にお
いてシミュレートされた命令でデータアクセスのバスア
クセスが発生した場合、発生したキャッシュ動作と現在
のサイクルを記憶手段1504に出力する第2のキャッ
シュ部動作保存処理である。1308はプログラム読み
込み処理1302により設定されている終了命令位置に
よりシミュレートすべきプログラムコードが終了してい
るかを判断するプログラムコード終了判断処理である。
1309はプログラムコード終了判断処理1308でプ
ログラムコードのシミュレーションが終了していないと
判断された時に、シミュレーションを行う実行サイクル
を1だけ進める実行サイクル更新処理であり、実行サイ
クルの更新後に命令読み込み処理1303に戻り次の実
行サイクルの処理を継続する。1310はプログラムコ
ード終了判断処理1308によりシミュレートすべきプ
ログラムコードが終了している時に、第1のキャッシュ
動作保存処理1304、CPU部動作保存処理130
6、及び第2のキャッシュ動作保存処理1307によ
り、記憶手段1504に保存された各サイクル毎のCP
U部の動作とキャッシュ部の動作と、命令毎の消費電力
及びキャッシュ動作毎の消費電力とから、与えられたプ
ログラムコードが実行された時の消費電力を求める消費
電力計算処理である。
ミュレーション方法のシミュレーション実行時の処理の
流れを示すフローチャートである。図13において、1
301は命令動作をシミュレートするプロセッサモデル
のCPUコア部やキャッシュメモリ部の内部変数等を初
期値に設定する初期化処理である。1302はシミュレ
ートするプロセッサモデルに与えるプログラムコードを
読み込み、シミュレーションを開始する命令の位置とシ
ミュレーションを終了する命令の位置を設定するプログ
ラム読み込み処理である。1303は与えられたプログ
ラムコードより、プロセッサモデルが現在の実行サイク
ルにおいて実行する命令を読み込む命令読み込み処理で
ある。命令はCPU部からはキャッシュメモリを介して
読み込まれるので、キャッシュ部の動作のシミュレーシ
ョンもここで行う。1304は命令読み込み処理130
3でシミュレートされたキャッシュ部の動作と現在の現
在のサイクルを記憶手段1504に出力する第1のキャ
ッシュ部動作保存処理である。1305は命令読み込み
処理1303で読み込まれた命令のプロセッサ動作をシ
ミュレートする命令実行処理である。1306は命令実
行処理1305でシミュレートされた命令の種類と現在
のサイクルを記憶手段1504に出力するCPU部動作
保存処理である。1307は命令実行処理1305にお
いてシミュレートされた命令でデータアクセスのバスア
クセスが発生した場合、発生したキャッシュ動作と現在
のサイクルを記憶手段1504に出力する第2のキャッ
シュ部動作保存処理である。1308はプログラム読み
込み処理1302により設定されている終了命令位置に
よりシミュレートすべきプログラムコードが終了してい
るかを判断するプログラムコード終了判断処理である。
1309はプログラムコード終了判断処理1308でプ
ログラムコードのシミュレーションが終了していないと
判断された時に、シミュレーションを行う実行サイクル
を1だけ進める実行サイクル更新処理であり、実行サイ
クルの更新後に命令読み込み処理1303に戻り次の実
行サイクルの処理を継続する。1310はプログラムコ
ード終了判断処理1308によりシミュレートすべきプ
ログラムコードが終了している時に、第1のキャッシュ
動作保存処理1304、CPU部動作保存処理130
6、及び第2のキャッシュ動作保存処理1307によ
り、記憶手段1504に保存された各サイクル毎のCP
U部の動作とキャッシュ部の動作と、命令毎の消費電力
及びキャッシュ動作毎の消費電力とから、与えられたプ
ログラムコードが実行された時の消費電力を求める消費
電力計算処理である。
【0067】シミュレートされるプロセッサの命令セッ
トとしては、図2で示した第1の実施の形態で用いたも
のと同じものを例に用いる。
トとしては、図2で示した第1の実施の形態で用いたも
のと同じものを例に用いる。
【0068】プロセッサの命令毎の消費電力情報として
は、図8に示した第2の実施の形態で使用したものと同
じものを例に用いる。
は、図8に示した第2の実施の形態で使用したものと同
じものを例に用いる。
【0069】シミュレーションの対象となるプロセッサ
で実行するプログラムとしては、図4で示した第1の実
施の形態で用いたものを例に用いる。
で実行するプログラムとしては、図4で示した第1の実
施の形態で用いたものを例に用いる。
【0070】キャッシュ動作毎の消費電力情報として
は、図9で示した第2の実施の形態で用いたものを例と
して用いる。
は、図9で示した第2の実施の形態で用いたものを例と
して用いる。
【0071】以下、本実施の形態に係る消費電力のシミ
ュレーション方法を図13のフォローに基づき、プログ
ラム401を実行した場合を一例に用いて具体的に説明
する。
ュレーション方法を図13のフォローに基づき、プログ
ラム401を実行した場合を一例に用いて具体的に説明
する。
【0072】初期化処理1301ではプログラムの実行
を行うための初期化を行う。ここでは、プロセッサモデ
ルのCPU部やキャッシュメモリ部の各種レジスタ等が
設定される。メモリの内容は、[80]は2、[A0]
は5が設定されているとする。プログラム読み込み処理
1302では、プログラムコード401が記憶手段に読
み込まれ、411からプログラムの実行を開始する様に
プログラムカウンタレジスタが設定される。また、42
0に達した場合にプログラムの実行を終了する様に設定
される。命令読み込み処理1303では、プログラムカ
ウンタレジスタが指す命令をフェッチする。この場合、
キャッシュを介してLD命令411がフェッチされる
が、キャッシュにはこのアドレスへのアクセスは初回な
のでキャッシュはミスとなる。そして、第1のキャッシ
ュ部動作保存処理1304により、サイクル1のフェッ
チでは読み出しミスしたことを記憶手段1504に保存
する。次に命令実行処理1305によりLD命令411
の動作がシミュレートされ、メモリアドレス[80]の
値2がレジスタreg0に読み込まれる。次に、CPU
部動作保存処理1306により、サイクル1でLD命令
が実行されたことを記憶手段1305に保存する。次
に、命令実行処理1305で、バスアクセスが発生した
場合には、第2のキャッシュ部動作保存処理1307に
より発生したキャッシュ動作を記憶手段に保存するが、
LD命令では読み出しのバスアクセスが発生し、アドレ
ス[80]へのアクセスはプログラム開始時より始めて
であり、キャッシュはミスとなる。よって、サイクル1
のデータのバスアクセスが発生しミスしたことを記憶手
段1504に保存する。次に、プログラムコード終了判
定処理1308によりシミュレーション終了条件のコー
ドに達しているがが判断され、この場合達していないの
で、実行サイクル更新処理1309でサイクル数が2に
設定され、プログラムカウンタレジスタも1進められ、
次の命令コード412が命令読み込み処理1303でフ
ェッチされる。以下、命令読み込み処理から実行サイク
ル更新処理1309までが終了条件のコードに達するま
で繰り返される。
を行うための初期化を行う。ここでは、プロセッサモデ
ルのCPU部やキャッシュメモリ部の各種レジスタ等が
設定される。メモリの内容は、[80]は2、[A0]
は5が設定されているとする。プログラム読み込み処理
1302では、プログラムコード401が記憶手段に読
み込まれ、411からプログラムの実行を開始する様に
プログラムカウンタレジスタが設定される。また、42
0に達した場合にプログラムの実行を終了する様に設定
される。命令読み込み処理1303では、プログラムカ
ウンタレジスタが指す命令をフェッチする。この場合、
キャッシュを介してLD命令411がフェッチされる
が、キャッシュにはこのアドレスへのアクセスは初回な
のでキャッシュはミスとなる。そして、第1のキャッシ
ュ部動作保存処理1304により、サイクル1のフェッ
チでは読み出しミスしたことを記憶手段1504に保存
する。次に命令実行処理1305によりLD命令411
の動作がシミュレートされ、メモリアドレス[80]の
値2がレジスタreg0に読み込まれる。次に、CPU
部動作保存処理1306により、サイクル1でLD命令
が実行されたことを記憶手段1305に保存する。次
に、命令実行処理1305で、バスアクセスが発生した
場合には、第2のキャッシュ部動作保存処理1307に
より発生したキャッシュ動作を記憶手段に保存するが、
LD命令では読み出しのバスアクセスが発生し、アドレ
ス[80]へのアクセスはプログラム開始時より始めて
であり、キャッシュはミスとなる。よって、サイクル1
のデータのバスアクセスが発生しミスしたことを記憶手
段1504に保存する。次に、プログラムコード終了判
定処理1308によりシミュレーション終了条件のコー
ドに達しているがが判断され、この場合達していないの
で、実行サイクル更新処理1309でサイクル数が2に
設定され、プログラムカウンタレジスタも1進められ、
次の命令コード412が命令読み込み処理1303でフ
ェッチされる。以下、命令読み込み処理から実行サイク
ル更新処理1309までが終了条件のコードに達するま
で繰り返される。
【0073】図14にその計算経過を示す。1401は
サイクル数、1402はCPU部動作保存処理1306
により保存された命令、1403は第1のキャッシュ部
動作保存処理1304で保存されたフェッチでのキャッ
シュの動作、1404は第2のキャッシュ部動作保存処
理1307で保存されたデータの読み込み又は書き込み
処理でのキャッシュの動作である。プログラムコード終
了判定処理1308でシミュレーション終了条件のコー
ドに達していると判断された時点では、1410の部分
のデータが記憶手段1504に保存されている。この1
410の情報から消費電力計算処理1310により、1
402の実行された命令と命令毎の消費電力テーブル8
01より1405のCPU部消費電力、1403のフェ
ッチ時のキャッシュ動作とキャッシュ動作毎の消費電力
情報901より1406の命令フェッチ時の消費電力、
1404のデータアクセス時のキャッシュ動作とキャッ
シュ動作毎の消費電力情報901より1407のデータ
アクセス時の消費電力を求め、1405、1406、及
び1407の消費電力より、全体の消費電力1408を
求める。消費電力計算処理1310において、全てのサ
イクルに対してこれらの処理が行なうと、1411の部
分の計算が行われる。
サイクル数、1402はCPU部動作保存処理1306
により保存された命令、1403は第1のキャッシュ部
動作保存処理1304で保存されたフェッチでのキャッ
シュの動作、1404は第2のキャッシュ部動作保存処
理1307で保存されたデータの読み込み又は書き込み
処理でのキャッシュの動作である。プログラムコード終
了判定処理1308でシミュレーション終了条件のコー
ドに達していると判断された時点では、1410の部分
のデータが記憶手段1504に保存されている。この1
410の情報から消費電力計算処理1310により、1
402の実行された命令と命令毎の消費電力テーブル8
01より1405のCPU部消費電力、1403のフェ
ッチ時のキャッシュ動作とキャッシュ動作毎の消費電力
情報901より1406の命令フェッチ時の消費電力、
1404のデータアクセス時のキャッシュ動作とキャッ
シュ動作毎の消費電力情報901より1407のデータ
アクセス時の消費電力を求め、1405、1406、及
び1407の消費電力より、全体の消費電力1408を
求める。消費電力計算処理1310において、全てのサ
イクルに対してこれらの処理が行なうと、1411の部
分の計算が行われる。
【0074】例えば、サイクル1では、LD命令が保存
されているので命令毎の消費電力情報801より20
[μW/MHz]、命令フェッチ時のキャッシュ動作1
403として「Rミス」つまり読み出しでミスが保存さ
れているのでキャッシュ動作毎の消費電力情報901よ
り100[μW/MHz]、データアクセス時のキャッ
シュ動作1404として「Rミス」つまり読み出しミス
が保存されているのでキャッシュ動作毎の消費電力情報
901より100[μW/MHz]が求められ、これら
の値を加算し1408の全体の消費電力として220
[μW/MHz]が求められる。求められた消費電力
は、消費電力のシミュレーション結果をディスプレー装
置1501に出力されるか、記憶手段1504に出力さ
れる。
されているので命令毎の消費電力情報801より20
[μW/MHz]、命令フェッチ時のキャッシュ動作1
403として「Rミス」つまり読み出しでミスが保存さ
れているのでキャッシュ動作毎の消費電力情報901よ
り100[μW/MHz]、データアクセス時のキャッ
シュ動作1404として「Rミス」つまり読み出しミス
が保存されているのでキャッシュ動作毎の消費電力情報
901より100[μW/MHz]が求められ、これら
の値を加算し1408の全体の消費電力として220
[μW/MHz]が求められる。求められた消費電力
は、消費電力のシミュレーション結果をディスプレー装
置1501に出力されるか、記憶手段1504に出力さ
れる。
【0075】以上の様に、本発明に係る実施の形態によ
れば、請求項10に係る発明である消費電力のシミュレ
ーション方法によって、シミュレーション実行前に、予
め求められている各々の命令及びキャッシュ部の動作状
態に対して、命令毎の消費電力情報及びキャッシュ動作
毎の消費電力情報に格納しておき、シミュレーション中
は、各サイクルで実行された命令及びキャッシュ動作を
記憶手段に保存しておき、シミュレーション終了後に保
存されたCPU部及びキャッシュ部の動作と、命令毎の
消費電力情報及びキャッシュ動作毎の消費電力情報より
動作時の動的な消費電力を求めることが可能である。本
発明では、シミュレーション処理と消費電力計算処理と
を分離できるため、市販のシミュレータ等を用いるた
め、シミュレータ内部に消費電力計算機能を組み込むこ
とが困難な場合等でも、後処理により消費電力をシミュ
レートする方法を提供することができる。
れば、請求項10に係る発明である消費電力のシミュレ
ーション方法によって、シミュレーション実行前に、予
め求められている各々の命令及びキャッシュ部の動作状
態に対して、命令毎の消費電力情報及びキャッシュ動作
毎の消費電力情報に格納しておき、シミュレーション中
は、各サイクルで実行された命令及びキャッシュ動作を
記憶手段に保存しておき、シミュレーション終了後に保
存されたCPU部及びキャッシュ部の動作と、命令毎の
消費電力情報及びキャッシュ動作毎の消費電力情報より
動作時の動的な消費電力を求めることが可能である。本
発明では、シミュレーション処理と消費電力計算処理と
を分離できるため、市販のシミュレータ等を用いるた
め、シミュレータ内部に消費電力計算機能を組み込むこ
とが困難な場合等でも、後処理により消費電力をシミュ
レートする方法を提供することができる。
【0076】(第5の実施の形態)第5の実施の形態で
は請求項5、請求項6、請求項7、請求項8に係る消費
電力シミュレーション方法について説明する。
は請求項5、請求項6、請求項7、請求項8に係る消費
電力シミュレーション方法について説明する。
【0077】図20は本実施形態に係る消費電力のシミ
ュレーション方法のシミュレーション実行時の処理流れ
を示すフローチャートである。2001はシミュレーシ
ョン対象となる回路内の各部の初期化を行う初期化処理
である。バスマスター部に対しては命令動作をシミュレ
ーションする内部状態を初期化し、当該モデルのシミュ
レーションにより計算される消費電力を記憶する手段を
初期化する初期化処理である。2002はシミュレート
するバスマスターに与えるプログラムコードを読み込
み、シミュレーションを開始する命令の位置とシミュレ
ーションを終了する命令の位置を設定する。2003は
与えられたプログラムコードより、バスマスターのモデ
ルが現実行サイクルにおいて実行する命令を読み込む処
理である。2004は命令読み込みにおけるバスモデル
の状態のアドレス、bit幅、転送モード、読み出しまた
は書き込みアクセスのいずれかであるかの情報を読み出
す処理である。2005は前記2004においてシミュ
レーションモデルより抽出したパラメータから消費電力
を計算し、実行されている実行サイクルとともに記憶す
る消費電力計算処理である。2006は読み込まれた命
令の動作をシミュレートする実行処理であり、2007
は命令実行におけるバスモデルの状態のアドレス、bit
幅、転送モード、読み出しまたは書き込みアクセスのい
ずれかであるかの情報を読み出す処理である。2008
は前記2007においてシミュレーションモデルより抽
出したパラメータから消費電力を計算し、実行されてい
る実行サイクルとともに記憶する消費電力計算処理であ
る。2009は2002により設定されている終了命令
位置によりシミュレートするべきプログラムコードが終
了しているかを判定する終了判定処理である。
ュレーション方法のシミュレーション実行時の処理流れ
を示すフローチャートである。2001はシミュレーシ
ョン対象となる回路内の各部の初期化を行う初期化処理
である。バスマスター部に対しては命令動作をシミュレ
ーションする内部状態を初期化し、当該モデルのシミュ
レーションにより計算される消費電力を記憶する手段を
初期化する初期化処理である。2002はシミュレート
するバスマスターに与えるプログラムコードを読み込
み、シミュレーションを開始する命令の位置とシミュレ
ーションを終了する命令の位置を設定する。2003は
与えられたプログラムコードより、バスマスターのモデ
ルが現実行サイクルにおいて実行する命令を読み込む処
理である。2004は命令読み込みにおけるバスモデル
の状態のアドレス、bit幅、転送モード、読み出しまた
は書き込みアクセスのいずれかであるかの情報を読み出
す処理である。2005は前記2004においてシミュ
レーションモデルより抽出したパラメータから消費電力
を計算し、実行されている実行サイクルとともに記憶す
る消費電力計算処理である。2006は読み込まれた命
令の動作をシミュレートする実行処理であり、2007
は命令実行におけるバスモデルの状態のアドレス、bit
幅、転送モード、読み出しまたは書き込みアクセスのい
ずれかであるかの情報を読み出す処理である。2008
は前記2007においてシミュレーションモデルより抽
出したパラメータから消費電力を計算し、実行されてい
る実行サイクルとともに記憶する消費電力計算処理であ
る。2009は2002により設定されている終了命令
位置によりシミュレートするべきプログラムコードが終
了しているかを判定する終了判定処理である。
【0078】図21は、シミュレーション対象となる一
回路例である。同図の2101、2102は読み出しま
たは書き込みバスアクセス処理を発生させることのでき
る装置バスマスター1、バスマスター2、であり、21
03は複数のバスを接続する装置バスアダプタである。
回路例である。同図の2101、2102は読み出しま
たは書き込みバスアクセス処理を発生させることのでき
る装置バスマスター1、バスマスター2、であり、21
03は複数のバスを接続する装置バスアダプタである。
【0079】また、2107、2108はバスであり、
制御信号線、アドレス信号線、データ信号線によって構
成されている。2107はバスマスタ2101及び21
02に接続されているメインバスである。2108はメ
インバスに対してバスアダプタ2103を介して接続さ
れたサブバスである。2104、2105、2106は
バスマスターからアクセスを受けるバススレーブであ
り、メインバスまたはサブバスに接続されている。21
04はアドレスによって区別して複数のデータを記憶し
ておけることのできる記憶装置であり、メインバス21
07に接続されている。2105,2106は機能ブロ
ック1及び機能ブロック2であり、内部に記憶回路を内
蔵し、接続されたバスによって読み出し及び書き込みが
可能である。2109はメインバスに接続された外部バ
スインターフェースであり、チップ外部の外部記憶装置
2110に接続されている。
制御信号線、アドレス信号線、データ信号線によって構
成されている。2107はバスマスタ2101及び21
02に接続されているメインバスである。2108はメ
インバスに対してバスアダプタ2103を介して接続さ
れたサブバスである。2104、2105、2106は
バスマスターからアクセスを受けるバススレーブであ
り、メインバスまたはサブバスに接続されている。21
04はアドレスによって区別して複数のデータを記憶し
ておけることのできる記憶装置であり、メインバス21
07に接続されている。2105,2106は機能ブロ
ック1及び機能ブロック2であり、内部に記憶回路を内
蔵し、接続されたバスによって読み出し及び書き込みが
可能である。2109はメインバスに接続された外部バ
スインターフェースであり、チップ外部の外部記憶装置
2110に接続されている。
【0080】図22は図21で示した回路例におけるア
ドレス構成例である。図22において2202で示され
た領域が本回路例におけるアドレス領域全体であり、ア
ドレス領域2203、2204、2205、2206で
構成されている。アドレス領域2203はバスマスタ2
101の内部記憶領域、アドレス領域2204は機能ブ
ロック1(2105)及び機能ブロック2(2106)
の内部記憶領域、アドレス領域2205は記憶装置21
04の記憶領域、アドレス領域2206は外部記憶装置
2110の記憶領域をそれぞれ示している。2201は
アドレス番号における記憶領域の境を示しており、0か
ら100までが記憶領域2203を、100から200
までが記憶領域2204を200から300までが記憶
領域2205を、300から500までが記憶領域22
06をしめすアドレス番号である。
ドレス構成例である。図22において2202で示され
た領域が本回路例におけるアドレス領域全体であり、ア
ドレス領域2203、2204、2205、2206で
構成されている。アドレス領域2203はバスマスタ2
101の内部記憶領域、アドレス領域2204は機能ブ
ロック1(2105)及び機能ブロック2(2106)
の内部記憶領域、アドレス領域2205は記憶装置21
04の記憶領域、アドレス領域2206は外部記憶装置
2110の記憶領域をそれぞれ示している。2201は
アドレス番号における記憶領域の境を示しており、0か
ら100までが記憶領域2203を、100から200
までが記憶領域2204を200から300までが記憶
領域2205を、300から500までが記憶領域22
06をしめすアドレス番号である。
【0081】図23、図24、図25は本実施形態にお
ける図20で示した回路に対する消費電力情報の一例を
示す図である。図23は前記図22におけるアドレス領
域2203、2204、2205、2206の消費電力
情報であり、2301は読み出しアクセスに対する1バ
スサイクル、8bitあたりの消費電力情報であり、23
02は書き込みアクセスに対する1バスサイクル、8bi
tあたりの消費電力情報である。図24は前記図21に
おけるバスマスター1及びバスマスター2の内部におい
て消費される消費電力情報である。図25はバススレー
ブである記憶装置2104および、機能ブロック1、機
能ブロック2内部で消費される消費電力情報である。
ける図20で示した回路に対する消費電力情報の一例を
示す図である。図23は前記図22におけるアドレス領
域2203、2204、2205、2206の消費電力
情報であり、2301は読み出しアクセスに対する1バ
スサイクル、8bitあたりの消費電力情報であり、23
02は書き込みアクセスに対する1バスサイクル、8bi
tあたりの消費電力情報である。図24は前記図21に
おけるバスマスター1及びバスマスター2の内部におい
て消費される消費電力情報である。図25はバススレー
ブである記憶装置2104および、機能ブロック1、機
能ブロック2内部で消費される消費電力情報である。
【0082】また、本例では連続転送における最初の1
回目の転送は単転送相当である。
回目の転送は単転送相当である。
【0083】これらの消費電力は、予め、シミュレーシ
ョンを行う前に各ブロックをゲートレベルやトランジス
タレベルで実現したデータを基に、ゲートレベルシミュ
レーションや回路シミュレーション等により評価し、消
費電力を求めておいたものである。
ョンを行う前に各ブロックをゲートレベルやトランジス
タレベルで実現したデータを基に、ゲートレベルシミュ
レーションや回路シミュレーション等により評価し、消
費電力を求めておいたものである。
【0084】図16はシミュレートされるバスマスター
1の命令セットの1例である。命令LDRはアドレスによ
り指定される記憶領域のデータからレジスタaまたはレ
ジスタbにアドレスにより指定される記憶領域にデータ
を32bit幅で単転送するデータ転送命令である。単転
送とはアドレスのインクリメントを伴わないでアクセス
が開始し、終了する転送である。命令LDRBはアドレスに
より指定される記憶領域のデータからレジスタaまたは
レジスタbにアドレスにより指定される記憶領域にデー
タを8bit幅で単転送するデータ転送命令である。命令L
DRHアドレスにより指定される記憶領域のデータからレ
ジスタaまたはレジスタbにアドレスにより指定される
記憶領域にデータを16bit幅で単転送するデータ転送
命令である。命令STRはレジスタaまたはレジスタbか
らアドレスにより指定される記憶領域にデータを32bi
t幅で単転送するデータ転送命令である。命令STRBはレ
ジスタaまたはレジスタbからアドレスにより指定され
る記憶領域にデータを8bit幅で単転送するデータ転送
命令である。命令STRHはレジスタaまたはレジスタbか
らアドレスにより指定される記憶領域にデータを16bi
t幅で単転送するデータ転送命令である。命令LDMはアド
レスルより指定されるアドレス番号を先頭にした記憶領
域のデータをレジスタaからレジスタbにいたる複数の
レジスタに順次32bit幅で連続転送するデータ転送命
令である。連続転送とは転送開始から終了までの間にア
ドレスがインクリメントし複数ワード長のデータを一度
の転送で行う転送である。命令LDMBはアドレスにより指
定されるアドレス番号を先頭にした記憶領域のデータを
レジスタaからレジスタbにいたる複数のレジスタに順
次8bit幅で連続転送するデータ転送命令である。命令L
DMHはアドレスにより指定されるアドレス番号を先頭に
した記憶領域のデータをレジスタaからレジスタbにい
たる複数のレジスタに順次16bit幅で連続転送するデ
ータ転送命令である。命令STMはレジスタaからレジス
タbに至る複数のレジスタからアドレスにより指定され
た記憶領域を先頭にした一連の記憶領域にデータを順次
32bit幅で連続転送するデータ転送命令である。命令S
TMHはレジスタaからレジスタbに至る複数のレジスタ
からアドレスにより指定された記憶領域を先頭にした一
連の記憶領域にデータを順次16bit幅で連続転送する
データ転送命令である。命令STMBはレジスタaからレジ
スタbに至る複数のレジスタからアドレスにより指定さ
れた記憶領域を先頭にした一連の記憶領域にデータを順
次8bit幅で連続転送するデータ転送命令である。命令N
OPは何の処理も行わない。
1の命令セットの1例である。命令LDRはアドレスによ
り指定される記憶領域のデータからレジスタaまたはレ
ジスタbにアドレスにより指定される記憶領域にデータ
を32bit幅で単転送するデータ転送命令である。単転
送とはアドレスのインクリメントを伴わないでアクセス
が開始し、終了する転送である。命令LDRBはアドレスに
より指定される記憶領域のデータからレジスタaまたは
レジスタbにアドレスにより指定される記憶領域にデー
タを8bit幅で単転送するデータ転送命令である。命令L
DRHアドレスにより指定される記憶領域のデータからレ
ジスタaまたはレジスタbにアドレスにより指定される
記憶領域にデータを16bit幅で単転送するデータ転送
命令である。命令STRはレジスタaまたはレジスタbか
らアドレスにより指定される記憶領域にデータを32bi
t幅で単転送するデータ転送命令である。命令STRBはレ
ジスタaまたはレジスタbからアドレスにより指定され
る記憶領域にデータを8bit幅で単転送するデータ転送
命令である。命令STRHはレジスタaまたはレジスタbか
らアドレスにより指定される記憶領域にデータを16bi
t幅で単転送するデータ転送命令である。命令LDMはアド
レスルより指定されるアドレス番号を先頭にした記憶領
域のデータをレジスタaからレジスタbにいたる複数の
レジスタに順次32bit幅で連続転送するデータ転送命
令である。連続転送とは転送開始から終了までの間にア
ドレスがインクリメントし複数ワード長のデータを一度
の転送で行う転送である。命令LDMBはアドレスにより指
定されるアドレス番号を先頭にした記憶領域のデータを
レジスタaからレジスタbにいたる複数のレジスタに順
次8bit幅で連続転送するデータ転送命令である。命令L
DMHはアドレスにより指定されるアドレス番号を先頭に
した記憶領域のデータをレジスタaからレジスタbにい
たる複数のレジスタに順次16bit幅で連続転送するデ
ータ転送命令である。命令STMはレジスタaからレジス
タbに至る複数のレジスタからアドレスにより指定され
た記憶領域を先頭にした一連の記憶領域にデータを順次
32bit幅で連続転送するデータ転送命令である。命令S
TMHはレジスタaからレジスタbに至る複数のレジスタ
からアドレスにより指定された記憶領域を先頭にした一
連の記憶領域にデータを順次16bit幅で連続転送する
データ転送命令である。命令STMBはレジスタaからレジ
スタbに至る複数のレジスタからアドレスにより指定さ
れた記憶領域を先頭にした一連の記憶領域にデータを順
次8bit幅で連続転送するデータ転送命令である。命令N
OPは何の処理も行わない。
【0085】図17はシミュレーションの対象になるバ
スマスターが実行するプログラムの一例であり、図17
において一列が一命令を表しており、左から命令、ディ
スティネーション、ソースの順番で記述されている。
スマスターが実行するプログラムの一例であり、図17
において一列が一命令を表しており、左から命令、ディ
スティネーション、ソースの順番で記述されている。
【0086】図18は図17で示したプログラムコード
が図21の記憶装置2104内部に記憶されているアド
レスと命令であり、行1801はアドレス200に「LD
RHreg#a 350」に対応するコードが記憶されており、行
1802はアドレス201に「STRB 120 reg#a」に対
応するコードが記憶されており、行1803はアドレス
202に「LDM [reg#a reg#b] 250」に対応するコード
が記憶されていることを示す。
が図21の記憶装置2104内部に記憶されているアド
レスと命令であり、行1801はアドレス200に「LD
RHreg#a 350」に対応するコードが記憶されており、行
1802はアドレス201に「STRB 120 reg#a」に対
応するコードが記憶されており、行1803はアドレス
202に「LDM [reg#a reg#b] 250」に対応するコード
が記憶されていることを示す。
【0087】以下、本実施の形態に係る消費電力のシミ
ュレーション方法を図20で示した処理の流れに基づ
き、図17で示されたプログラムを実行した場合を一例
に用いて具体的に説明する。本例においてreg#aとreg#b
は32bitレジスタで、reg#bはreg#aに対して4ワード
離れているとする。図17で示したプログラムコードが
バスマスター1によって実行されるものとし、バスマス
ター1及びバスマスター2からの命令フェッチは32bi
t単サイクル転送で行われるとして説明する。
ュレーション方法を図20で示した処理の流れに基づ
き、図17で示されたプログラムを実行した場合を一例
に用いて具体的に説明する。本例においてreg#aとreg#b
は32bitレジスタで、reg#bはreg#aに対して4ワード
離れているとする。図17で示したプログラムコードが
バスマスター1によって実行されるものとし、バスマス
ター1及びバスマスター2からの命令フェッチは32bi
t単サイクル転送で行われるとして説明する。
【0088】2001の初期化処理ではプログラムの実
行を行うための初期化を行う。本実施の形態では、命令
の実行位置を示すバスマスター1内のレジスタはアドレ
ス200を示す値に設定される。2002のプログラム
読み込み処理ではシミュレートするべきプログラムを読
み込み、記憶装置2104に読み込み図18に示したア
ドレスにプログラムコードが格納される。
行を行うための初期化を行う。本実施の形態では、命令
の実行位置を示すバスマスター1内のレジスタはアドレ
ス200を示す値に設定される。2002のプログラム
読み込み処理ではシミュレートするべきプログラムを読
み込み、記憶装置2104に読み込み図18に示したア
ドレスにプログラムコードが格納される。
【0089】2003の命令読み込みでは、記憶装置2
104からアドレス200番に格納された命令コードを
読み込む。
104からアドレス200番に格納された命令コードを
読み込む。
【0090】2004では前記2003でのバスアクセ
スの状態を読み込む。この場合、アドレス領域2204
へのアクセスであり32bit幅読み出し、単アクセスで
あり、1バスサイクルで読み込みは終了することが読み
出される。
スの状態を読み込む。この場合、アドレス領域2204
へのアクセスであり32bit幅読み出し、単アクセスで
あり、1バスサイクルで読み込みは終了することが読み
出される。
【0091】2005では前記2004で読み出したバ
スアクセス状態と図23、24、25に示した消費電力
情報から消費電力値が算出される。図23の2302よ
り0.3μW/MHz/8bit、32bitアクセスが1バ
スアクセスで完了したので1.2μW、さらにバスマス
ター1のバス接続部で消費される消費電力、図24の2
401より1μWおよび記憶装置2104のバス接続部
で消費される消費電力図25の2501より0.1μ
W、合計2.3μWと算出される。
スアクセス状態と図23、24、25に示した消費電力
情報から消費電力値が算出される。図23の2302よ
り0.3μW/MHz/8bit、32bitアクセスが1バ
スアクセスで完了したので1.2μW、さらにバスマス
ター1のバス接続部で消費される消費電力、図24の2
401より1μWおよび記憶装置2104のバス接続部
で消費される消費電力図25の2501より0.1μ
W、合計2.3μWと算出される。
【0092】2006では前記2003にて読み込んだ
命令1701が実行される。
命令1701が実行される。
【0093】2007で命令実行時のバス状態がシミュ
レーションモデルから読み出され、アドレス領域220
6からreg#aに8bit幅で単転送され、読み出されている
ことを算出する。
レーションモデルから読み出され、アドレス領域220
6からreg#aに8bit幅で単転送され、読み出されている
ことを算出する。
【0094】2008において2006における消費電
力が2007で読み出したバス情報を基に算出され、図
23の2303より0.3μW/Hz/8bitという消
費電力情報が読み出され、2401より0.1μW、2
504より0.1μWがそれぞれ消費電力情報として読
み出され、合計消費電力量として0.5μWとして算出
される。
力が2007で読み出したバス情報を基に算出され、図
23の2303より0.3μW/Hz/8bitという消
費電力情報が読み出され、2401より0.1μW、2
504より0.1μWがそれぞれ消費電力情報として読
み出され、合計消費電力量として0.5μWとして算出
される。
【0095】2009においてプログラムコード170
1は終了位置でないため、命令サイクルを1進めて20
03に戻り、2命令サイクル目として2003が処理さ
れる。
1は終了位置でないため、命令サイクルを1進めて20
03に戻り、2命令サイクル目として2003が処理さ
れる。
【0096】2サイクル目の実行サイクルにおいて、2
003において1802に相当する命令コードが記憶装
置2104から命令読み出しされる。
003において1802に相当する命令コードが記憶装
置2104から命令読み出しされる。
【0097】2004において命令読み出しの際のバス
アクセスの状態が読み出される。この場合、アドレス領
域2204へのアクセスであり32bit幅読み出し、単
アクセスであり、1バスサイクルで読み込みは終了する
ことが読み出される。
アクセスの状態が読み出される。この場合、アドレス領
域2204へのアクセスであり32bit幅読み出し、単
アクセスであり、1バスサイクルで読み込みは終了する
ことが読み出される。
【0098】2005では前記2004で読み出したバ
スアクセス状態と図23、24、25に示した消費電力
情報から消費電力値が算出される。図23の2301よ
り0.3μW/MHz/8bit、32bitアクセスが1バ
スアクセスで完了したので1.2μW、さらにバスマス
ター1のバス接続部で消費される消費電力、図24の2
401より1μWおよび記憶装置2104のバス接続部
で消費される消費電力図25の2501より0.1μ
W、合計2.3μWと算出される。
スアクセス状態と図23、24、25に示した消費電力
情報から消費電力値が算出される。図23の2301よ
り0.3μW/MHz/8bit、32bitアクセスが1バ
スアクセスで完了したので1.2μW、さらにバスマス
ター1のバス接続部で消費される消費電力、図24の2
401より1μWおよび記憶装置2104のバス接続部
で消費される消費電力図25の2501より0.1μ
W、合計2.3μWと算出される。
【0099】2006では前記2003にて読み込んだ
命令1702が実行される。
命令1702が実行される。
【0100】2007で命令実行時のバス状態がシミュ
レーションモデルから、reg#aからアドレス領域220
4への16ビット幅での単転送であることが読み出され
る。
レーションモデルから、reg#aからアドレス領域220
4への16ビット幅での単転送であることが読み出され
る。
【0101】2008において2006における消費電
力が2007で読み出したバス情報を基に算出され、図
23の2301より0.6μW/Hz/8bitという消
費電力情報が読み出され、2401から1μWが、25
02より0.2μWが消費電力情報として読み出され、
合計消費電力量として2.4μWとして算出される。
力が2007で読み出したバス情報を基に算出され、図
23の2301より0.6μW/Hz/8bitという消
費電力情報が読み出され、2401から1μWが、25
02より0.2μWが消費電力情報として読み出され、
合計消費電力量として2.4μWとして算出される。
【0102】2009においてプログラムコード170
1は終了位置でないため、命令サイクルを1進めて20
03に戻り、3命令サイクル目として2003が処理さ
れる。
1は終了位置でないため、命令サイクルを1進めて20
03に戻り、3命令サイクル目として2003が処理さ
れる。
【0103】3サイクル目の実行サイクルにおいて、2
003において1803に相当する命令コードが記憶装
置2104から命令読み出しされる。
003において1803に相当する命令コードが記憶装
置2104から命令読み出しされる。
【0104】2004において命令読み出しの際のバス
アクセスの状態が読み出される。この場合、アドレス領
域2204へのアクセスであり32bit幅読み出し、単
アクセスであり、1バスサイクルで読み込みは終了する
ことが読み出される。
アクセスの状態が読み出される。この場合、アドレス領
域2204へのアクセスであり32bit幅読み出し、単
アクセスであり、1バスサイクルで読み込みは終了する
ことが読み出される。
【0105】2005では前記2004で読み出したバ
スアクセス状態と図23、24、25に示した消費電力
情報から消費電力値が算出される。図23の2301よ
り0.3μW/MHz/8bit、32bitアクセスが1バ
スアクセスで完了したので1.2μW、さらにバスマス
ター1のバス接続部で消費される消費電力、図24の2
401より1μWおよび記憶装置2104のバス接続部
で消費される消費電力図25の2501より0.1μ
W、合計2.3μWと算出される。
スアクセス状態と図23、24、25に示した消費電力
情報から消費電力値が算出される。図23の2301よ
り0.3μW/MHz/8bit、32bitアクセスが1バ
スアクセスで完了したので1.2μW、さらにバスマス
ター1のバス接続部で消費される消費電力、図24の2
401より1μWおよび記憶装置2104のバス接続部
で消費される消費電力図25の2501より0.1μ
W、合計2.3μWと算出される。
【0106】2006では前記2003にて読み込んだ
命令1702が実行される。
命令1702が実行される。
【0107】2007において命令実行時のバス状態が
シミュレーションモデルから読み出される。reg#aからr
eg#bにいたる一連のレジスタは4ワードでありアドレス
番号250すなわちアドレス領域2005から4ワード
が32ビット幅で連続転送で、読み出される。
シミュレーションモデルから読み出される。reg#aからr
eg#bにいたる一連のレジスタは4ワードでありアドレス
番号250すなわちアドレス領域2005から4ワード
が32ビット幅で連続転送で、読み出される。
【0108】2008において2006における消費電
力が2007で読み出したバス情報を基に算出され、図
23の2302より単転送0.3μWが1転送と連続転
送0.1μWが3転送行われ、32ビット幅アクセスの
為に4倍される。2401より1μW、2501より
0.1μWが消費電力情報として読み出され、合計消費
電力情報として5.7μWと算出される。
力が2007で読み出したバス情報を基に算出され、図
23の2302より単転送0.3μWが1転送と連続転
送0.1μWが3転送行われ、32ビット幅アクセスの
為に4倍される。2401より1μW、2501より
0.1μWが消費電力情報として読み出され、合計消費
電力情報として5.7μWと算出される。
【0109】図19は以上の方法によりプログラム17
01の実行をシミュレートする事により得られる結果で
ある。
01の実行をシミュレートする事により得られる結果で
ある。
【0110】以上のような実施の形態によれば請求項5
に係る発明である消費電力のシミュレーション方法によ
って、シミュレーション実行前に、予め求められている
アドレス領域に対してバスアクセスが実行される時に消
費される電力値をアドレス領域毎の消費電力情報として
記憶しておき、シミュレーション実行時に与えられたプ
ログラムコードに対する命令動作をシミュレートすると
同時にアクセスアドレス領域毎の消費電力情報により実
行されるバスアクセスに対応する消費電力値を求め、シ
ミュレートするプログラムにおいて消費される消費電力
値をサイクル毎に求めることができる。通常アドレス領
域は32bitプロセッサにおいて4GBにも及ぶが、ア
ドレス領域毎の消費電力情報は計算機中で表形式などで
保持することにより、簡単に検索することが可能なた
め、消費電力の見積もりを高速に行うことができる。
に係る発明である消費電力のシミュレーション方法によ
って、シミュレーション実行前に、予め求められている
アドレス領域に対してバスアクセスが実行される時に消
費される電力値をアドレス領域毎の消費電力情報として
記憶しておき、シミュレーション実行時に与えられたプ
ログラムコードに対する命令動作をシミュレートすると
同時にアクセスアドレス領域毎の消費電力情報により実
行されるバスアクセスに対応する消費電力値を求め、シ
ミュレートするプログラムにおいて消費される消費電力
値をサイクル毎に求めることができる。通常アドレス領
域は32bitプロセッサにおいて4GBにも及ぶが、ア
ドレス領域毎の消費電力情報は計算機中で表形式などで
保持することにより、簡単に検索することが可能なた
め、消費電力の見積もりを高速に行うことができる。
【0111】また、請求項6に係る発明であるシミュレ
ートするバスマスターが複数のビット幅アクセスをする
ことが可能な場合、バスアクセスの際のビット幅を考慮
して消費電力を算出するために、複数のビット幅でのア
クセスをすることが可能なバスマスターに対しても正確
な消費電力の見積もりを行うことができる。
ートするバスマスターが複数のビット幅アクセスをする
ことが可能な場合、バスアクセスの際のビット幅を考慮
して消費電力を算出するために、複数のビット幅でのア
クセスをすることが可能なバスマスターに対しても正確
な消費電力の見積もりを行うことができる。
【0112】また請求項7に係る発明であるシミュレー
トするバスアクセスにおいて、読み出しアクセスと書き
込みアクセスに置ける消費電力情報を区別することで、
読み出し、書き込みいずれのバスアクセスにおいても高
精度の消費電力の見積もりを行うことが可能である。
トするバスアクセスにおいて、読み出しアクセスと書き
込みアクセスに置ける消費電力情報を区別することで、
読み出し、書き込みいずれのバスアクセスにおいても高
精度の消費電力の見積もりを行うことが可能である。
【0113】また、請求項8に係る発明であるシミュレ
ートするバスアクセスにおいて、転送モード別に消費電
力情報を記憶しておくことで、複数の転送モードを持つ
バスに対して、より正確な見積もりを行うことが可能に
なる。
ートするバスアクセスにおいて、転送モード別に消費電
力情報を記憶しておくことで、複数の転送モードを持つ
バスに対して、より正確な見積もりを行うことが可能に
なる。
【0114】さらにまた、本実施の形態では、説明の簡
易化のためバスマスターとして通常の単にプロセッサと
しているが、実際には、前記の第1の実施の形態、第2
の実施の形態、第3の実施の形態、及び第4の実施の形
態で示したキャッシュを考慮した方法と組み合わせるこ
とにより、より高精度の消費電力の見積もりを行えるこ
とは言うまでもない。
易化のためバスマスターとして通常の単にプロセッサと
しているが、実際には、前記の第1の実施の形態、第2
の実施の形態、第3の実施の形態、及び第4の実施の形
態で示したキャッシュを考慮した方法と組み合わせるこ
とにより、より高精度の消費電力の見積もりを行えるこ
とは言うまでもない。
【0115】
【発明の効果】以上説明した様に、請求項1、請求項
2、請求項3、請求項4、請求項9、及び請求項10記
載の発明によれば、シミュレーション実行前に、プロセ
ッサの命令セットの個々の命令及びキャッシュメモリの
複数の動作に対して、回路レベル又はゲートレベルのシ
ミュレーション、又は実際に試作した実チップの評価結
果より各命令が実行される時に消費される電力を求め命
令毎の消費電力情報及びキャッシュ動作毎の消費電力情
報に格納しておき、シミュレーション実行中に与えられ
たプログラムコードに対する命令動作及びキャッシュ動
作をシミュレートすると共に、実行された命令に対応す
る消費電力の値を命令毎の消費電力情報から、実行され
たキャッシュ動作に対応する消費電力の値をキャッシュ
動作毎の消費電力情報から検索し、一定時間毎に集計し
ていくことにより、与えられたプログラムコードで動作
する時にプロセッサ部が消費する電力の時間遷移を求め
る。ここで、プログラムコードに従って実行されるサイ
クル数は通常数千、数百万サイクル以上の膨大なサイク
ル数になるが、命令毎の消費電力情報は計算機中では表
形式等で保持することにより簡単に検索することが可能
であり、また一定時間毎の消費電力を計算する場合も簡
単な積算及び平均計算等により、高速に行なうことが可
能である。よって、キャッシュメモリを備えたプロセッ
サを含む半導体集積回路の回路動作を模擬すると共に、
その消費電力を高速に見積もるシミュレーション方法を
提供することができる。
2、請求項3、請求項4、請求項9、及び請求項10記
載の発明によれば、シミュレーション実行前に、プロセ
ッサの命令セットの個々の命令及びキャッシュメモリの
複数の動作に対して、回路レベル又はゲートレベルのシ
ミュレーション、又は実際に試作した実チップの評価結
果より各命令が実行される時に消費される電力を求め命
令毎の消費電力情報及びキャッシュ動作毎の消費電力情
報に格納しておき、シミュレーション実行中に与えられ
たプログラムコードに対する命令動作及びキャッシュ動
作をシミュレートすると共に、実行された命令に対応す
る消費電力の値を命令毎の消費電力情報から、実行され
たキャッシュ動作に対応する消費電力の値をキャッシュ
動作毎の消費電力情報から検索し、一定時間毎に集計し
ていくことにより、与えられたプログラムコードで動作
する時にプロセッサ部が消費する電力の時間遷移を求め
る。ここで、プログラムコードに従って実行されるサイ
クル数は通常数千、数百万サイクル以上の膨大なサイク
ル数になるが、命令毎の消費電力情報は計算機中では表
形式等で保持することにより簡単に検索することが可能
であり、また一定時間毎の消費電力を計算する場合も簡
単な積算及び平均計算等により、高速に行なうことが可
能である。よって、キャッシュメモリを備えたプロセッ
サを含む半導体集積回路の回路動作を模擬すると共に、
その消費電力を高速に見積もるシミュレーション方法を
提供することができる。
【0116】特に、請求項2記載の発明では、キャッシ
ュがヒットした場合の動作とミスした場合の動作とを区
別して消費電力を算出するため、命令キャッシュを備え
たプロセッサに対して最適な消費電力のシミュレーショ
ンを実現できる。
ュがヒットした場合の動作とミスした場合の動作とを区
別して消費電力を算出するため、命令キャッシュを備え
たプロセッサに対して最適な消費電力のシミュレーショ
ンを実現できる。
【0117】また、請求項3記載の発明では、キャッシ
ュの動作が書き込み処理である場合と読み出し処理であ
る場合とを区別し、かつ、書き込み処理と読み出し処理
の各々に対してキャッシュがヒットした場合の動作とミ
スした場合の動作とを区別して消費電力を算出するた
め、ユニファイト形式の命令/データキャッシュを備え
たプロセッサに対して最適な消費電力のシミュレーショ
ンを実現できる。
ュの動作が書き込み処理である場合と読み出し処理であ
る場合とを区別し、かつ、書き込み処理と読み出し処理
の各々に対してキャッシュがヒットした場合の動作とミ
スした場合の動作とを区別して消費電力を算出するた
め、ユニファイト形式の命令/データキャッシュを備え
たプロセッサに対して最適な消費電力のシミュレーショ
ンを実現できる。
【0118】また、請求項4記載の発明では、命令キャ
ッシュ用とデータキャッシュ用の消費電力情報を備え、
命令キャッシュではヒットした場合とミスした場合、デ
ータキャッシュでは書き込み処理と読み出し処理とを区
別し、かつ、各々に対してキャッシュがヒットした場合
とミスした場合とを区別して消費電力を算出するため、
ハーバード形式の命令/データキャッシュを備えたプロ
セッサに対して最適な消費電力のシミュレーションを実
現できる。
ッシュ用とデータキャッシュ用の消費電力情報を備え、
命令キャッシュではヒットした場合とミスした場合、デ
ータキャッシュでは書き込み処理と読み出し処理とを区
別し、かつ、各々に対してキャッシュがヒットした場合
とミスした場合とを区別して消費電力を算出するため、
ハーバード形式の命令/データキャッシュを備えたプロ
セッサに対して最適な消費電力のシミュレーションを実
現できる。
【0119】また、請求項5、請求項6、請求項7、請
求項8、請求項9、及び請求項10記載の発明によれ
ば、シミュレーション実行前に、回路中の個々のバスマ
スター、バススレーブ、及びバス部に対して、回路レベ
ル又はゲートレベルのシミュレーション、又は実際に試
作した実チップの評価結果より、バスサイクルあたりに
消費される電力を求め、各々、バスマスター毎の消費電
力情報、バススレーブ毎の消費電力情報、及びアドレス
領域毎の消費電力情報に格納しておき、シミュレーショ
ン実行中は、前記のバスマスター毎の消費電力情報、バ
ススレーブ毎の消費電力情報、及びアドレス領域毎の消
費電力情報から、各バスサイクルの動作状態に応じた消
費電力を検索し、検索した消費電力より回路全体の消費
電力を求める。ここで、シミュレーションで実行される
バスサイクル数は通常数千、数百万サイクル以上の膨大
なサイクル数になるが、前記の各消費電力情報は計算機
中では表形式や関数形式等で保持することにより簡単に
検索、計算することが可能であり、また、一定時間毎の
消費電力を計算する場合も簡単な積算及び平均計算等に
より、高速に行なうことが可能である。よって、バスに
より、バスマスターやバススレーブが統合された半導体
集積回路の回路動作を模擬すると共に、その消費電力を
高速に見積もるシミュレーション方法を提供することが
できる。
求項8、請求項9、及び請求項10記載の発明によれ
ば、シミュレーション実行前に、回路中の個々のバスマ
スター、バススレーブ、及びバス部に対して、回路レベ
ル又はゲートレベルのシミュレーション、又は実際に試
作した実チップの評価結果より、バスサイクルあたりに
消費される電力を求め、各々、バスマスター毎の消費電
力情報、バススレーブ毎の消費電力情報、及びアドレス
領域毎の消費電力情報に格納しておき、シミュレーショ
ン実行中は、前記のバスマスター毎の消費電力情報、バ
ススレーブ毎の消費電力情報、及びアドレス領域毎の消
費電力情報から、各バスサイクルの動作状態に応じた消
費電力を検索し、検索した消費電力より回路全体の消費
電力を求める。ここで、シミュレーションで実行される
バスサイクル数は通常数千、数百万サイクル以上の膨大
なサイクル数になるが、前記の各消費電力情報は計算機
中では表形式や関数形式等で保持することにより簡単に
検索、計算することが可能であり、また、一定時間毎の
消費電力を計算する場合も簡単な積算及び平均計算等に
より、高速に行なうことが可能である。よって、バスに
より、バスマスターやバススレーブが統合された半導体
集積回路の回路動作を模擬すると共に、その消費電力を
高速に見積もるシミュレーション方法を提供することが
できる。
【図1】本発明の第1の実施の形態におけるシミュレー
ション実行時の処理の流れを示すフローチャート
ション実行時の処理の流れを示すフローチャート
【図2】本発明の第1、第2、第3、及び第4の実施の
形態におけるシミュレートされるプロセッサの命令セッ
トの一例を示す図
形態におけるシミュレートされるプロセッサの命令セッ
トの一例を示す図
【図3】本発明の第1の実施の形態におけるシミュレー
ション対象となるプロセッサの命令毎の消費電力情報を
示す図
ション対象となるプロセッサの命令毎の消費電力情報を
示す図
【図4】本発明の第1、第2、第3、及び第4の実施の
形態におけるシミュレーションの対象となるプロセッサ
で実行するプログラムの一例を示す図
形態におけるシミュレーションの対象となるプロセッサ
で実行するプログラムの一例を示す図
【図5】本発明の第1の実施の形態におけるキャッシュ
動作毎の消費電力情報の一例を示す図
動作毎の消費電力情報の一例を示す図
【図6】本発明の第1の実施の形態における消費電力計
算の過程及び結果を示す図
算の過程及び結果を示す図
【図7】本発明の第2、第3及び第4の実施の形態にお
ける消費電力のシミュレーション方法のシミュレーショ
ン実行時の処理の流れを示すフローチャート
ける消費電力のシミュレーション方法のシミュレーショ
ン実行時の処理の流れを示すフローチャート
【図8】本発明の第2、第3及び第4の実施の形態にお
けるシミュレーション対象となるプロセッサの命令毎の
消費電力情報を示す図
けるシミュレーション対象となるプロセッサの命令毎の
消費電力情報を示す図
【図9】本発明の第2及び第4の実施の形態におけるキ
ャッシュ動作毎の消費電力情報の一例を示す図
ャッシュ動作毎の消費電力情報の一例を示す図
【図10】本発明の第2の実施の形態における消費電力
計算の過程及び結果を示す図
計算の過程及び結果を示す図
【図11】本発明の第3の実施の形態におけるキャッシ
ュ動作毎の消費電力情報の一例を示す図
ュ動作毎の消費電力情報の一例を示す図
【図12】本発明の第3の実施の形態における消費電力
計算の過程及び結果を示す図
計算の過程及び結果を示す図
【図13】本発明の第4の実施の形態における消費電力
のシミュレーション方法のシミュレーション実行時の処
理の流れを示すフローチャート
のシミュレーション方法のシミュレーション実行時の処
理の流れを示すフローチャート
【図14】本発明の第4の実施の形態における消費電力
計算の過程及び結果を示す図
計算の過程及び結果を示す図
【図15】本実施の形態に係るシミュレーション処理を
実行する計算機のハードウエアの構成図の一例を示す図
実行する計算機のハードウエアの構成図の一例を示す図
【図16】本発明の第5の実施の形態におけるバスマス
ターの命令セットの一例を示す図
ターの命令セットの一例を示す図
【図17】本発明の第5の実施の形態におけるバスマス
ターに与えるプログラムの一例を示す図
ターに与えるプログラムの一例を示す図
【図18】本発明の第5の実施の形態においてプログラ
ムコードが記憶領域に格納された形態の一例を示す図
ムコードが記憶領域に格納された形態の一例を示す図
【図19】本発明の第5の実施の形態における動作シミ
ュレーション結果の一例を示す図
ュレーション結果の一例を示す図
【図20】本発明の第5の実施の形態におけるシミュレ
ーション実行時の処理の流れを示すフローチャート
ーション実行時の処理の流れを示すフローチャート
【図21】本発明の第5の実施の形態におけるシミュレ
ーション対象となる回路の一例を示す図
ーション対象となる回路の一例を示す図
【図22】本発明の第5の実施の形態におけるシミュレ
ーションの対象となる回路のアドレス構成の一例を示す
図
ーションの対象となる回路のアドレス構成の一例を示す
図
【図23】本発明の第5の実施の形態におけるアドレス
領域毎の電力情報の一例を示す図
領域毎の電力情報の一例を示す図
【図24】本発明の第5の実施の形態におけるバスマス
ターでのバスアクセスに伴う消費電力情報の一例を示す
図
ターでのバスアクセスに伴う消費電力情報の一例を示す
図
【図25】本発明の第5の実施の形態における各周辺機
能ブロックでのバスアクセスに伴う消費電力情報の一例
を示す図
能ブロックでのバスアクセスに伴う消費電力情報の一例
を示す図
101、701、1301 初期化処理 104、704、707、1304、1307 キャッ
シュ部消費電力計算処理 105、705 命令実行処理 106、706、1306 CPU部消費電力計算処理 107、708 消費電力計算処理 301、801 命令毎の消費電力情報 501、901、1101 キャッシュ動作毎の消費電
力情報 2001 初期化処理 2002 プログラム読み込み処理 2003 命令読み込み処理 2004 バス状態読み込み処理 2005、2007 消費電力計算処理 2006 命令実行処理 2301 アドレス領域、転送モード、読み書きに依存
する消費電力情報 2302 アドレス領域、転送モード、読み書きに依存
する消費電力情報 2303 アドレス領域、転送モード、読み書きに依存
する消費電力情報
シュ部消費電力計算処理 105、705 命令実行処理 106、706、1306 CPU部消費電力計算処理 107、708 消費電力計算処理 301、801 命令毎の消費電力情報 501、901、1101 キャッシュ動作毎の消費電
力情報 2001 初期化処理 2002 プログラム読み込み処理 2003 命令読み込み処理 2004 バス状態読み込み処理 2005、2007 消費電力計算処理 2006 命令実行処理 2301 アドレス領域、転送モード、読み書きに依存
する消費電力情報 2302 アドレス領域、転送モード、読み書きに依存
する消費電力情報 2303 アドレス領域、転送モード、読み書きに依存
する消費電力情報
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B005 JJ00 MM01 VV24 5B046 AA08 BA02 JA04 JA05 5F064 AA04 BB09 BB12 HH09 HH12 HH14
Claims (11)
- 【請求項1】 キャッシュメモリを備えたプロセッサの
命令動作を計算機中でシミュレートする方法において、 シミュレーション実行前に予め、 前記のプロセッサの命令セットに対して、各々の命令が
実行される時に消費される電力を求め、命令毎の消費電
力情報として記憶すると共に、 前記のキャッシュメモリの複数の動作に対して、各々の
動作に消費される電力を求め、キャッシュ動作毎の消費
電力情報として記憶しておき、 与えられたプログラムコードに対するシミュレーション
実行時に、各々の命令に対して、 命令動作及びキャッシュ動作をシミュレートすると同時
に、 前記の命令毎の消費電力情報より実行中の命令に対応す
るCPUコア部の消費電力を求め、 前記のキャッシュ動作毎の消費電力情報より、バスアク
セスにより発生するキャッシュ動作に対応したキャッシ
ュ部の消費電力を求め、 前記のCPUコア部の消費電力と、前記のキャッシュ部
の消費電力とから、前記のプロセッサが前記のプログラ
ムコード実行時の消費電力を求めることを特徴とするシ
ミュレーション方法。 - 【請求項2】 前記のキャッシュ動作毎の消費電力情報
が、少なくとも、キャッシュがヒットした場合の動作と
ミスした場合の動作とを区別した消費電力情報であり、 与えられたプログラムコードに対するシミュレーション
実行時に、各々の命令に対して、 発生したバスアクセスに対してキャッシュがヒットした
場合には前記のキャッシュ動作毎の消費電力情報中のヒ
ットした場合の動作に対する消費電力情報によりキャッ
シュ部の消費電力を求め、キャッシュがミスした場合に
はミスした場合の動作の消費電力情報によりキャッシュ
部の消費電力を求めることを特徴とする請求項1に記載
のシミュレーション方法。 - 【請求項3】 前記のキャッシュ動作毎の消費電力情報
が、少なくとも、キャッシュの動作が書き込み処理であ
る場合と読み出し処理である場合とを区別した消費電力
情報であり、かつ、書き込み処理と読み出し処理の各々
に対して、キャッシュがヒットした場合の動作とミスし
た場合の動作とを区別した消費電力情報であり、 与えられたプログラムコードに対するシミュレーション
実行時に、各々の命令に対して、 発生したバスアクセスが読み出し処理であるか書き込み
処理であるかと、キャッシュがヒットしたかミスしたか
とを判断し、前記のキャッシュ動作毎の消費電力情報の
該当する消費電力情報よりキャッシュ部の消費電力を求
めることを特徴とする請求項1に記載のシミュレーショ
ン方法。 - 【請求項4】 前記のキャッシュ動作毎の消費電力情報
として、命令キャッシュ用とデータキャッシュ用とを備
え、 命令キャッシュ用のキャッシュ動作毎の消費電力情報
は、少なくとも、キャッシュがヒットした場合の動作と
ミスした場合の動作とを区別した消費電力情報であり、 データキャッシュ用のキャッシュ動作毎の消費電力情報
は、少なくとも、キャッシュの動作が書き込み処理であ
る場合と読み出し処理である場合とを区別した消費電力
情報であり、かつ、書き込み処理と読み出し処理の各々
に対して、キャッシュがヒットした場合の動作とミスし
た場合の動作とを区別した消費電力情報であり、 与えられたプログラムコードに対するシミュレーション
実行時に、各々の命令に対して、 発生したバスアクセスが、命令キャッシュに対する場合
には、前記の命令キャッシュ用のキャッシュ動作毎の消
費電力情報より、キャッシュがヒットしたかを判断し命
令キャッシュ部の消費電力を求め、 発生したバスアクセスが、データキャッシュに対する場
合には、発生したバスアクセスが読み出し処理であるか
書き込み処理であるかと、キャッシュがヒットしたかミ
スしたかとを判断し、前記のデータキャッシュ用のキャ
ッシュ動作毎の消費電力情報の該当する消費電力情報よ
りデータキャッシュ部の消費電力を求め、 前記の命令キャッシュ部の消費電力と前記のデータキャ
ッシュ部の消費電力とからキャッシュ部全体の消費電力
を求めることを特徴とする請求項1に記載のシミュレー
ション方法。 - 【請求項5】 1個以上のバスマスター及びバススレー
ブがバスで接続された回路のアーキテクチャレベルの動
作を計算機中でシミュレートする方法において、 シミュレーション実行前に予め、 前記のバスマスターが動作する時に消費する電力をバス
マスター毎の消費電力情報に、 前記のバススレーブが動作する時に消費する電力をバス
スレーブ毎の消費電力情報に、 前記のバスのアドレス空間に対して、個々のアドレス領
域毎に、そのアドレス領域へのバスアクセス時にバス部
で消費される電力をアドレス領域毎の消費電力情報とし
て記憶しておき、 前記の回路に対するシミュレーション実行時に、各バス
アクセスに対して、バスの動作をシミュレートすると同
時に、 前記のバスマスター毎の消費電力情報より、バスマスタ
ーの消費電力を求め、 前記のバススレーブ毎の消費電力情報より、バススレー
ブの消費電力を求め、 前記のアドレス領域毎の消費電力情報より、発生したバ
スアクセスのアドレス値に対応するバス部の消費電力を
求め、 前記のバスマスターの消費電力と、前記のバススレーブ
の消費電力と、及び前記のバス部の消費電力とから、前
記の回路の動作時の消費電力を求めることを特徴とする
シミュレーション方法。 - 【請求項6】 前記のアドレス領域毎の消費電力情報
が、少なくとも、バスアクセスのビット幅を区別した消
費電力情報であり、 前記の回路に対するシミュレーション実行時に、各バス
アクセスに対して、 バスアクセスが発生する場合には、前記のアドレス領域
毎の消費電力情報より、発生したバスアクセスのアドレ
ス値とそのビット幅に対応したバス部の消費電力を求め
ることを特徴とする請求項5に記載のシミュレーション
方法。 - 【請求項7】 前記のアドレス領域毎の消費電力情報
が、少なくとも、バスアクセスが読み出し処理である場
合と書き込み処理である場合とを区別した消費電力情報
であり、 前記の回路に対するシミュレーション実行時に、各バス
アクセスに対して、 バスアクセスが発生する場合には、前記のアドレス領域
毎の消費電力情報より、発生したバスアクセスのアドレ
ス値と読み出し処理又は書き込み処理に対応したバス部
の消費電力を求めることを特徴とする請求項5に記載の
シミュレーション方法。 - 【請求項8】 前記のアドレス領域毎の消費電力情報
が、少なくとも、バスの転送モード及び転送ワード数に
基づいた消費電力情報であり、 前記の回路に対するシミュレーション実行時に、各バス
アクセスに対して、 バスアクセスが発生する場合には、前記のアドレス領域
毎の消費電力情報より、発生したバスアクセスのアドレ
ス値、転送モード、及び転送ワード数に対応したバス部
の消費電力を求めることを特徴とする請求項5に記載の
シミュレーション方法。 - 【請求項9】 CPUコアとキャッシュメモリとから成
るプロセッサと、バススレーブとが、バスで接続された
回路のアーキテクチャレベルの動作を計算機中でシミュ
レートする方法において、 与えられたプログラムコードに対して、CPUコア部の
消費電力を、請求項1に記載の方法により求め、 キャッシュ部の消費電力を、請求項2、請求項3、又は
請求項4に記載の方法のいずれかの方法により求め、 バス部の消費電力及びバススレーブ部の消費電力を、請
求項5、請求項6、請求項7、及び請求項8に記載の方
法の少なくとも1個以上の方法により求め、 前記のCPUコア部の消費電力と、前記のキャッシュ部
の消費電力と、前記のバススレーブ部の電力と、及び前
記のバス部の消費電力とから、前記の回路アーキテクチ
ャに対して前記のプログラムコード実行時の消費電力を
求めることを特徴とするシミュレーション方法。 - 【請求項10】請求項1、請求項2、請求項3、請求項
4、請求項5、請求項6、請求項7、請求項8、又は請
求項9に記載のシミュレーション方法において、 シミュレーション実行中には、消費電力計算に必要な情
報を記憶装置に保存しておき、 シミュレーション実行後に、前記の記憶装置に保存して
おいた消費電力計算に必要な情報を元に、当該シミュレ
ーションで求めた回路動作時の回路の消費電力を求める
ことを特徴とするシミュレーション方法。 - 【請求項11】請求項1、請求項2、請求項3、請求項
4、請求項5、請求項6、請求項7、請求項8、請求項
9、又は請求項10に記載のシミュレーション方法を記
録した記録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11097318A JP2000293557A (ja) | 1999-04-05 | 1999-04-05 | 消費電力のシミュレーション方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11097318A JP2000293557A (ja) | 1999-04-05 | 1999-04-05 | 消費電力のシミュレーション方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000293557A true JP2000293557A (ja) | 2000-10-20 |
Family
ID=14189147
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11097318A Pending JP2000293557A (ja) | 1999-04-05 | 1999-04-05 | 消費電力のシミュレーション方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000293557A (ja) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007021392A3 (en) * | 2005-08-17 | 2007-11-29 | Sun Microsystems Inc | Inferential power monitor without voltage/current transducers |
| JP2009157909A (ja) * | 2007-12-05 | 2009-07-16 | Fujitsu Ltd | 消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法 |
| JP2010231633A (ja) * | 2009-03-27 | 2010-10-14 | Fujitsu Ltd | 検証支援プログラム、検証支援装置および検証支援方法 |
| KR101243513B1 (ko) | 2011-02-23 | 2013-03-20 | 성균관대학교산학협력단 | 프로세서 파워 시뮬레이션 수행 방법 및 프로세서 파워 시뮬레이션 시스템 |
| JP2014021572A (ja) * | 2012-07-13 | 2014-02-03 | Meidensha Corp | デジタル回路用シミュレーション装置及びそのプログラム。 |
| US9495272B2 (en) | 2009-06-11 | 2016-11-15 | Oracle America, Inc. | Method and system for generating a power consumption model of at least one server |
| US10663991B2 (en) | 2015-11-12 | 2020-05-26 | Oracle International Corporation | Determining parameters of air-cooling mechanisms |
-
1999
- 1999-04-05 JP JP11097318A patent/JP2000293557A/ja active Pending
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007021392A3 (en) * | 2005-08-17 | 2007-11-29 | Sun Microsystems Inc | Inferential power monitor without voltage/current transducers |
| US7869965B2 (en) | 2005-08-17 | 2011-01-11 | Oracle America, Inc. | Inferential power monitor without voltage/current transducers |
| JP2009157909A (ja) * | 2007-12-05 | 2009-07-16 | Fujitsu Ltd | 消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法 |
| JP2010231633A (ja) * | 2009-03-27 | 2010-10-14 | Fujitsu Ltd | 検証支援プログラム、検証支援装置および検証支援方法 |
| US9495272B2 (en) | 2009-06-11 | 2016-11-15 | Oracle America, Inc. | Method and system for generating a power consumption model of at least one server |
| KR101243513B1 (ko) | 2011-02-23 | 2013-03-20 | 성균관대학교산학협력단 | 프로세서 파워 시뮬레이션 수행 방법 및 프로세서 파워 시뮬레이션 시스템 |
| JP2014021572A (ja) * | 2012-07-13 | 2014-02-03 | Meidensha Corp | デジタル回路用シミュレーション装置及びそのプログラム。 |
| US10663991B2 (en) | 2015-11-12 | 2020-05-26 | Oracle International Corporation | Determining parameters of air-cooling mechanisms |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5941991A (en) | Method of estimating power consumption of each instruction processed by a microprocessor | |
| CN1885295B (zh) | 使用逻辑单元建置集成电路 | |
| US7770140B2 (en) | Method and apparatus for evaluating integrated circuit design model performance using basic block vectors and fly-by vectors including microarchitecture dependent information | |
| CN101779179B (zh) | 管线电子电路设计中检测时钟门控机会的方法和装置 | |
| JPH113254A (ja) | モジュール構成可能なフルチップパワープロファイラ | |
| WO2007078915A2 (en) | System and method for generating a plurality of models at different levels of abstraction from a single master model | |
| JPS5975347A (ja) | 論理回路のシミユレ−シヨン装置 | |
| JP7036814B2 (ja) | デバッギングシステム及び方法 | |
| CN102184290A (zh) | 一种嵌入式微处理器的周期精确和位精确系统级模型 | |
| JP2012502340A (ja) | 分岐オーバーライドを用いたプロセッサ実行のシミュレーション | |
| Atitallah et al. | MPSoC power estimation framework at transaction level modeling | |
| JP2000293557A (ja) | 消費電力のシミュレーション方法 | |
| JP5034916B2 (ja) | 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置 | |
| CN117933167A (zh) | 一种面向超长指令字异构处理器的模拟方法及模拟器 | |
| JP5040625B2 (ja) | Lsiの電力見積方法及びその装置 | |
| US8340952B2 (en) | Power estimation method and device therefor | |
| JPH11161692A (ja) | 消費電力のシミュレーション方法 | |
| JP2663893B2 (ja) | アーキテクチャ・シミュレータ | |
| US7308548B2 (en) | Processor organizing apparatus and method for organize a pipeline processor | |
| JP2002334128A (ja) | 半導体集積回路の消費電力シミュレーション方法 | |
| JPH1173329A (ja) | ソフトウエア開発支援システム | |
| JP3214459B2 (ja) | シミュレーション方法及び装置 | |
| Kim et al. | Top-down retargetable framework with token-level design for accelerating simulation speed of processor architecture | |
| Neffe et al. | Energy estimation based on hierarchical bus models for power-aware smart cards | |
| Park et al. | Fast cycle-accurate behavioral simulation for pipelined processors using early pipeline evaluation |