JPH07334395A - データ処理速度の評価方法 - Google Patents

データ処理速度の評価方法

Info

Publication number
JPH07334395A
JPH07334395A JP67595A JP67595A JPH07334395A JP H07334395 A JPH07334395 A JP H07334395A JP 67595 A JP67595 A JP 67595A JP 67595 A JP67595 A JP 67595A JP H07334395 A JPH07334395 A JP H07334395A
Authority
JP
Japan
Prior art keywords
instruction
simulation
data processing
executed
execution
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.)
Granted
Application number
JP67595A
Other languages
English (en)
Other versions
JP3366475B2 (ja
Inventor
Takashi Nasu
隆 那須
Tadashi Sakamoto
直史 坂本
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP00067595A priority Critical patent/JP3366475B2/ja
Priority to US08/411,981 priority patent/US5671402A/en
Publication of JPH07334395A publication Critical patent/JPH07334395A/ja
Application granted granted Critical
Publication of JP3366475B2 publication Critical patent/JP3366475B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Abstract

(57)【要約】 【目的】 速度性能評価対象プログラム中のどの部分に
時間がかかっているかの正確な評価を精度良く行う。 【構成】 シミュレーションエンジン101がシミュレ
ートする際、命令はプログラムカウンタ101c,10
1dにおいて保持される。そして命令の実行回数及び実
行に要した累計クロック数が、同一の命令毎に整理され
てそれぞれ実行回数格納配列102b及び累計クロック
数格納配列102cに格納される。 【効果】 同一の命令が何回実行されたか、またその実
行に要した累計時間が求められる。各命令毎に開始時刻
や終了時刻を取り出す関数や、周期的に割り込むサンプ
リングプログラムは必要ないので、これらに対応するオ
ーバヘッドによって速度性能評価の精度が制限されな
い。しかもループで繰り返して実行される命令に対して
も、その実行に要した実行時間を知ることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、データ処理装置が実
行するプログラムのどの部分で実行時間がかかっている
かの速度性能の評価に関するものである。
【0002】
【従来の技術】図17はデータ処理速度の評価方法とし
て一般的に用いられている、ベンチマークプログラム3
0の構造を示す概念図である。ベンチマークプログラム
30は、ベンチマークテストの対象となるベンチマーク
テスト対象プログラム32並びに、ベンチマークテスト
対象プログラム32の開始時刻を取り出す関数31及び
ベンチマーク対象プログラム32の終了した時刻を取り
出す関数33を備えている。
【0003】ベンチマークプログラム30の実行によ
り、プログラム32の実行に要した時間は、関数31に
よって得られた開始時刻と関数33で得られた終了時刻
との差をとって求められる。このプログラム32の実行
に要した時間によって、データ処理速度の性能が評価さ
れる。
【0004】ベンチマークプログラム30のうち、どの
部分の実行に要する時間が大きいかを評価するために
は、ベンチマーク対象プログラム32を細分化すること
で対応されていた。図18はベンチマーク対象プログラ
ム32が細分化されたベンチマーク対象プログラム32
a〜32cを備えたベンチマークプログラム30aの構
造を示す概念図である。
【0005】ベンチマーク対象プログラム32a〜32
cに対して、開始時刻を取り出す関数31a〜31c及
び終了時刻を取り出す関数33a〜33cがそれぞれ設
けられ、各ベンチマーク対象プログラム32a〜32c
の実行に要した時間が計測される。
【0006】このように実行の開始時刻及び終了時刻を
取り出す関数を呼び出す速度性能評価方法では、ベンチ
マーク対象プログラムのどの部分の実行時間が多くかか
っているかを評価するためにベンチマーク対象プログラ
ムを細分化し、細分化されたそれぞれにおいて必要な実
行時間を計測する必要がある。その一方で、時刻を取り
出す関数を呼び出すオーバーヘッドが生じるために、細
分化すればするほど正確な評価を行うことができなくな
るという問題点があった。更に、時刻を取り出す関数の
精度を越える評価は不可能である。
【0007】図19はデータ処理速度の評価方法の他の
従来の例を示す概念図である。速度性能評価対象プログ
ラム35の実行中において、周期的な割り込みによって
サンプリングプログラム34が起動される。図19にお
ける矢印は、周期的な割り込みによるサンプリングプロ
グラム34の起動を示す。サンプリングプログラム34
は、速度性能評価対象プログラム35の実行していた命
令の番地(アドレス)をサンプリングする。
【0008】例えばサンプリング間隔と測定頻度を指定
し、タイマによる割込を用い、サンプリング期間におい
て実行される状態をシミュレーションすることにより評
価する手法が特開平1−145736号公報に開示され
ている。
【0009】割り込みは周期的にかかるので、複数のサ
ンプリングされた命令の番地から、プログラムのどの部
分に実行時間がかかっているかを評価することができ
る。この方法では、図17及び図18を用いて説明され
た方法とは異なり、実行時間の測定開始および終了の時
刻を取り出す関数を呼び出す必要はない。
【0010】しかし、このように周期的な割り込みを用
いて速度性能評価を行う方法でも、割り込みプログラム
の起動などに必要なオーバーヘッドが無視できる程度に
サンプリングの間隔を大きくする必要があり、サンプリ
ング間隔を細分化すると却って正確な評価を行うことが
できなくなる場合があるという問題点があった。
【0011】
【発明が解決しようとする課題】以上のように、図17
乃至図19を用いて説明されたデータ処理速度の評価方
法では、関数の呼び出しや割り込みによって生じるオー
バーヘッドの為、詳細な評価を行うことができないとい
う問題点があった。
【0012】また、実行された命令の番地が予め設定さ
れた特定番地と一致した場合に、前記特定番地に対応し
て設けられたカウンタを用いて、特定番地に対応する所
定の命令の実行時間及び実行回数を計測する事により、
所定の命令のみの処理性能を測定する方法が、例えば特
開平2−31248号公報において開示されている。
【0013】この方法では、あらかじめ設定されたアド
レス範囲内の実行回数と実行時間を知ることができるも
のの、あくまでその設定されたアドレス範囲内全体に対
する評価を行えるに過ぎない。例えば設定されたアドレ
ス範囲内のループを繰り返し実行した場合、この実行に
要した実行時間を知ることはできないという問題点が残
る。更に、プログラムの1回の実行で測定できる部分は
設けられたカウンタの数で制限されるという問題点があ
った。
【0014】本発明は、このような問題点を解決するた
めになされたもので、速度性能評価対象プログラム中の
どの部分に時間がかかっているかの正確な評価を、プロ
グラムの細分化を行わずに1回の実行で可能にすること
を目的としている。
【0015】また更に、速度性能評価対象プログラムの
うち正確な評価を必要とする部分と、そうでない部分と
のシミュレーション方法を切り替え、迅速な処理を行う
ことができる評価を行うことを目的としている。
【0016】
【課題を解決するための手段】この発明のうち請求項1
にかかるものは、クロックに基づいて動作するデータ処
理装置において速度性能評価対象プログラムを実行する
際の速度を、シミュレーションによって評価するデータ
処理速度の評価方法である。ここで前記速度性能評価対
象プログラムは複数の命令を備えている。そしてこのデ
ータ処理速度の評価方法は、(I)(a)前記クロック
をシミュレートするシミュレーテッドクロックに基づい
て、前記速度性能評価対象プログラムを実行する前記デ
ータ処理装置の動作の前記シミュレーションを行う工程
と、(b)前記命令の各々に対応したアドレスにおい
て、前記シミュレーションにおいて実行された前記命令
の実行回数及び実行に要した前記シミュレーテッドクロ
ックのクロック数を保持する工程とを有する第1種シミ
ュレーション工程を備える。ここで前記工程(a)は
(a−1)前記シミュレーションにおいて実行されてい
た第1の前記命令の実行が終了し、前記速度性能評価対
象プログラムにおいて前記第1の命令に続く第2の前記
命令が前記シミュレーションにおいて実行される際に、
前記第1及び第2の命令を保持する工程と、(a−2)
前記速度性能評価対象プログラムの命令が更新して前記
シミュレーションにおいて実行されることにより、前記
工程(a−1)において保持される前記第1及び第2の
命令を更新する工程とを含む。また前記工程(b)は
(b−1)前記工程(a−1)において保持されている
前記第1の命令に対応するアドレスに対応して保持され
ている前記実行回数を、前記第1の前記命令の実行が終
了する毎に1増加させる工程と、(b−2)前記工程
(a−1)において保持されている前記第1の命令に対
応するアドレスに対応して保持されている前記クロック
数に、前記シミュレーションにおいて前記第1の命令が
実行されるのに要したクロック数を、前記第1の前記命
令の実行が終了する毎に累加させる工程とを含む。そし
て更に前記工程(a)は(a−3)前記工程(b−
1),(b−2)が実行された後で、前記工程(a−
1)において保持されていた前記第1の命令を、前記第
2の命令に更新する工程をも含む。
【0017】この発明のうち請求項2にかかるものは、
請求項1記載のデータ処理速度の評価方法であって、前
記工程(b)は(b−3)前記シミュレーションにおい
て前記シミュレーテッドクロックを生成する工程と、
(b−4)前記シミュレーテッドクロックをカウントし
てクロック数を求める工程と、(b−5)前記工程(b
−2)の後で、前記工程(b−4)においてカウントさ
れたクロック数をリセットする工程とを更に含む。
【0018】この発明のうち請求項3にかかるものは、
請求項1記載のデータ処理速度の評価方法であって、前
記命令の複数は速度性能評価対象プログラムにおいて、
サブプログラムを構成している。そして前記第1種シミ
ュレーション工程(I)は(c)前記サブプログラムを
構成する前記命令の各々に対し、前記シミュレーション
において実行されるのに要したクロック数を、前記工程
(a),(b)に基づいて求める工程と、(d)前記サ
ブプログラムが前記シミュレーションにおいて実行され
た回数を求める工程と、(e)前記サブプログラムを構
成する前記命令が、前記シミュレーションにおける実行
に要したクロック数の総和をとる工程と、(f)前記工
程(e)で求められた前記総和を、前記工程(d)で求
められた前記回数で割ることにより、前記サブプログラ
ムを構成する前記命令が、前記シミュレーションにおい
て実行されるのに要する平均的なクロック数を求める工
程とを更に有する。
【0019】この発明のうち請求項4にかかるものは、
請求項3記載のデータ処理速度の評価方法であって、前
記サブプログラムは実行される際には必ずその先頭の命
令から末尾の命令まで連続的に実行される基本ブロック
である。そして前記工程(e)は(e−1)前記基本ブ
ロックが前記シミュレーションにおいて実行された回数
を、前記基本ブロックを構成する前記命令の内のいずれ
かが前記シミュレーションにおいて実行された回数から
求める工程を含む。
【0020】この発明のうち請求項5にかかるものは、
請求項1記載のデータ処理速度の評価方法であって、前
記サブプログラムを構成する前記命令の少なくとも一つ
に関し、理想的な状態において実行される際に要求され
るクロック数が理想クロック数として既知である。そし
て、前記第1種シミュレーション工程(I)は(c)前
記理想クロックが既知である命令が前記シミュレーショ
ンにおいて実行された回数を、前記工程(a),(b)
から求める工程と、(d)前記理想クロックが既知であ
る命令が前記シミュレーションにおいて実行されるのに
要したクロック数を、前記工程(a),(b)から求め
る工程と、(e)前記理想クロック数に前記工程(c)
で求めた前記回数を乗じて理想実行クロック数を求める
工程と、(f)前記理想実行クロック数と前記工程
(d)で求められた前記クロック数とを比較する工程と
を更に有する。
【0021】この発明のうち請求項6にかかるものは、
請求項1記載のデータ処理速度の評価方法であって、
(II)前記命令毎に前記命令実行後の前記データ処理装
置の内部状態を仮想的に実現する第2種シミュレーショ
ン工程と、(III )前記速度性能評価対象プログラムが
前記データ処理装置において実行される状態を、前記第
1種シミュレーション工程及び前記第2種シミュレーシ
ョン工程のいずれか一方によって選択的にかつ連続的に
シミュレーションする調整工程とを更に備える。そして
前記第1種シミュレーション工程と前記第2種シミュレ
ーション工程とにおいて使用される記憶領域は共有され
る。
【0022】この発明のうち請求項7にかかるものは、
請求項6記載のデータ処理速度の評価方法であって、前
記調整工程(III )は(c)現在シミュレートしている
前記命令に次いでシミュレートされるべき前記命令の認
識を行う工程と、(d)前記認識が行われた命令に基づ
いて前記第1種シミュレーション工程(I)及び前記第
2種シミュレーション工程(II)の何れか一方を選択的
に実行させる工程とを有する。
【0023】この発明のうち請求項8にかかるものは、
請求項7記載のデータ処理速度の評価方法であって、前
記第1種シミュレーション工程(I)及び前記第2種シ
ミュレーション工程(II)のそれぞれにおいて、現在シ
ミュレーション中の前記命令に次いでシミュレートされ
るべき前記命令のアドレスが配列に格納される。
【0024】この発明のうち請求項9にかかるものは、
請求項6記載のデータ処理速度の評価方法であって、前
記データ処理装置は(x−1)前記速度性能評価対象プ
ログラムが直接に関与し得る可視レジスタと、(x−
2)前記速度性能評価対象プログラムが直接に関与し得
ない不可視レジスタとを備える。そして前記第1種シミ
ュレーション工程(I)は(c)前記可視レジスタの内
容を保持する工程と、(d)前記不可視レジスタの内容
を保持する工程とを更に有し、前記第2種シミュレーシ
ョン工程(II)は(e)前記可視レジスタの内容を保持
する工程を有する。ここで前記調整工程(III )は
(f)一の前記命令に対応して前記第2種シミュレーシ
ョン工程(II)によって前記データ処理装置の動作のシ
ミュレーションを行った後、他の前記命令に対応して前
記第1種シミュレーション工程(I)によって前記デー
タ処理装置の動作のシミュレーションを行う際に、前記
第1種シミュレーション工程(I)の工程(d)によっ
て保持された内容をリセットする工程を有する。
【0025】この発明のうち請求項10にかかるもの
は、請求項6記載のデータ処理速度の評価方法であっ
て、前記調整工程(III )は(c)前記シミュレーショ
ンが中断した直後に入力される第1種コマンドにより、
その後にシミュレートされるすべき命令に対して前記第
1種シミュレーション工程(I)を行う工程と、(d)
前記シミュレーションが中断した直後に入力される第2
種コマンドにより、その後にシミュレートされるすべき
命令に対して前記第2種シミュレーション工程(II)を
行う工程とを有する。
【0026】この発明のうち請求項11にかかるもの
は、請求項6記載のデータ処理速度の評価方法であっ
て、前記複数の命令は特定命令と非特定命令に区分され
る。そして、前記調整工程(III )は(c)前記非特定
命令に対して前記第1種シミュレーション工程(I)を
行う工程と、(d)前記特定命令に対して前記第2種シ
ミュレーション工程(II)を行う工程とを有する。
【0027】この発明のうち請求項12にかかるもの
は、請求項6記載のデータ処理速度の評価方法であっ
て、前記複数の命令は第1及び第2の仮想システムコー
ルを更に備える。そして、前記調整工程(III )は
(c)前記第1及び第2の仮想システムコールに挟まれ
て備えられた前記命令に対して前記第1種シミュレーシ
ョン工程(I)を行う工程と、(d)前記第1の仮想シ
ステムコールについて前記第2の仮想システムコールと
反対側に設けられた前記命令、及び前記第2の仮想シス
テムコールについて前記第1の仮想システムコールと反
対側に設けられた前記命令に対して前記第2種シミュレ
ーション工程(II)を行う工程とを有する。
【0028】
【作用】この発明のうち請求項1にかかるデータ処理速
度の評価方法においては、命令のそれぞれに対応するア
ドレスにおいて、シミュレーションにおいて命令が実行
されるのに要したクロック数及び実行回数が累加され
る。
【0029】この発明のうち請求項2にかかるデータ処
理速度の評価方法においては、クロック数を求めるため
にシミュレーテッドクロックがシミュレーション上で生
成され、カウントされる。
【0030】この発明のうち請求項3にかかるデータ処
理速度の評価方法においては、サブプログラムを構成す
る命令の各々がシミュレーション上において実行される
のに要するクロック数の総和が、実行回数で割った値が
求められるので、サブプログラムを構成する命令がシミ
ュレーションにおいて実行されるのに要する平均的なク
ロック数が求められる。
【0031】この発明のうち請求項4にかかるデータ処
理速度の評価方法においては、サブプログラムが基本ブ
ロックであるので、前記基本ブロックが前記シミュレー
ションにおいて実行された回数は、前記基本ブロックを
構成する前記命令の内のいずれかが前記シミュレーショ
ンにおいて実行された回数として求められる。
【0032】この発明のうち請求項5にかかるデータ処
理速度の評価方法においては、理想クロック数に実行回
数を乗じて得られる理想実行クロック数と、シミュレー
ション上の実行で実際に要したクロック数とが比較され
る。
【0033】この発明のうち請求項6にかかるデータ処
理速度の評価方法においては、正確に処理速度を評価す
る第1種シミュレーション工程と、迅速にシミュレーシ
ョンを行う第2種シミュレーション工程とが場合に応じ
て排他的に実行される。
【0034】この発明のうち請求項7にかかるデータ処
理速度の評価方法においては、如何なる命令に対して第
1種及び第2種シミュレーション工程のいずれを用いて
シミュレーションを行うかが判断される。
【0035】この発明のうち請求項8にかかるデータ処
理速度の評価方法においては、第1種及び第2種シミュ
レーション工程の切り替えの判断に必要な命令のアドレ
スが、第1種及び第2種シミュレーション工程のそれぞ
れにおいて記憶される。
【0036】この発明のうち請求項9にかかるデータ処
理速度の評価方法においては、不可視レジスタの内容が
工程(f)によってリセットされる。
【0037】この発明のうち請求項10にかかるデータ
処理速度の評価方法においては、中断時に入力されるコ
マンドによって第1種及び第2種シミュレーション工程
のいずれを用いてシミュレーションを行うかが判断され
る。
【0038】この発明のうち請求項11にかかるデータ
処理速度の評価方法においては、予め第2種シミュレー
ションを行うべき命令が特定命令として速度性能評価プ
ログラムに備えられている。
【0039】この発明のうち請求項12にかかるデータ
処理速度の評価方法においては、仮想システムコールで
挟まれて位置する命令のみに対して第2種シミュレーシ
ョンが行われる。
【0040】
【実施例】
A.クロック数の累計を求めるシミュレーション方法: (a−1)実施例1:図1はデータ処理装置の動作をク
ロック単位にシミュレートするプログラム(シミュレー
タ)100の構造を示す概念図である。プログラム10
0はシミュレーション対象となるデータ処理装置のシミ
ュレーションを実行するシミュレーションエンジン(シ
ミュレーションコア)101と、後述する種々の配列及
びプログラムが配置されるメモリ空間102とを備えて
いる。このように、ソフト上でシミュレーション対象と
なるデータ処理装置を仮想的に実現することは、例えば
Verilog−HDL等のハードウェア記述言語を用
いて一般的に行われている。そして、ここで述べるプロ
グラム100を、一般のプログラミング言語であるC言
語で構成することが可能である。C言語を用いたシミュ
レータについては例えばTechnical Report of IEICE, V
LD93-88,1993,Dec., The Institute of Electronics, I
nformation and Communication Engineers(信学技報)
の第25頁乃至第32頁において紹介されている。
【0041】シミュレーションエンジン101は、シミ
ュレーション対象となるデータ処理装置のクロックに対
応するクロックをシミュレートしてシミュレーテッドク
ロックCLKを発生するクロック発生要素101aを備
えており、このシミュレーテッドクロックCLKに基づ
いてデータ処理装置のシミュレーションが実行される。
【0042】シミュレーションエンジン101はカウン
ト要素101bを更に備えており、シミュレーテッドク
ロックCLKをカウントしてシミュレーテッドクロック
CLKのクロック数tを出力する。これらのクロック発
生要素101a、カウント要素101bは既述のように
言語を用いてソフトウエアとして構築される。
【0043】メモリ空間102の一部には、シミュレー
ションエンジン101においてシミュレーションされる
速度性能評価対象プログラム102aが割り付けられて
いる。この速度性能評価対象プログラム102aに沿っ
て、シミュレーテッドクロックCLKに基づいて、シミ
ュレーションエンジン101によるデータ処理速度の性
能評価が行われる。
【0044】シミュレーションエンジン101には、シ
ミュレーションエンジン101によって実行されている
プログラム命令のアドレスを保持するプログラムカウン
タ101c、及びその直前に実行されたプログラム命令
のアドレスを保持するプログラムカウンタ101dが、
更に備えられている。これらのプログラムカウンタ10
1c,101dはソフトウエアとして構築され、更にシ
ミュレーションエンジン101もソフトウエアとして構
築される。
【0045】メモリ空間102には、実行回数格納配列
102b及び累計クロック数格納配列102cがさらに
割り付けられている。実行回数格納配列102b及び累
計クロック数格納配列102cには、それぞれプログラ
ムカウンタ101dにおいて保持されるアドレスに対応
する命令が実行された回数及びその実行に要したクロッ
ク数の累計(以下「累計クロック数」という)が保持さ
れる。これらの配列102b,102cもソフトウエア
として構築される。
【0046】図2は、図1に示されたプログラム100
を実行する事によってデータ処理速度の性能評価を行う
方法を示すフローチャートである。ステップS1におい
て、シミュレーションエンジン101によってカウント
要素101bのクロック数tが0にリセットされる。そ
して、ステップS2においてシミュレーテッドクロック
CLKの一つ分だけ進んだデータ処理装置の状態が求め
られる。データ処理装置の状態がシミュレーテッドクロ
ックCLKの一つ分だけ進められることによって命令
(これは一般的にはシミュレーテッドクロックCLKが
一つ進むことによって終了するとは限らず、シミュレー
テッドクロックCLKが複数進むことによって終了する
場合もある)が新たになる場合には、プログラムカウン
タ101cが更新される。もし命令が新たにならない場
合には、プログラムカウンタ101cは更新されない。
【0047】プログラムカウンタ101cが更新されな
い場合とは、プログラムカウンタ101cに保持されて
いるアドレスに対応する命令が新たにならない場合であ
る。即ち、プログラムカウンタ101cに保持されてい
るアドレスに対応する命令の実行が継続している場合で
ある。この場合は、この命令の実行には少なくともシミ
ュレーテッドクロック一つ分の時間が更に必要である場
合であるから、ステップS4に進んでクロック数を1増
加させ、再度ステップS2において次の状態へ進む。
【0048】一方、ステップS3においてプログラムカ
ウンタ101cが更新される場合にはステップS5に進
む。ステップS5では実行回数格納配列102bの有す
る実行回数の値が1だけ増加される。1だけ増加される
実行回数は、プログラムカウンタ101dが保持するア
ドレスに対応する実行回数である。プログラムカウンタ
101cは既にステップS3において更新されているの
で、その直前に実行された命令の1回の実行が終了した
こととなり、これに対応する実行回数が1だけ増加され
るのである。
【0049】そしてステップS6において、実行が終了
した当該命令の実行に要した時間(クロック数)が累計
クロック数格納配列102cの累計クロック数に加算さ
れる。ここで加算される累計クロック数は当該命令に対
応したものであり、これ以前にも当該命令が実行されて
いた場合には、その実行された際に要した時間が既に格
納されている。したがって、ある命令に対応する累計ク
ロック数は、その命令が複数回実行された場合(例えば
ループを繰り返した場合等)にはそれらの実行に要した
時間の累計を示していることになる。つまりループで繰
り返して実行される命令に対しても、ループで繰り返さ
れた実行に要した実行時間を知ることができる。
【0050】ステップS7においてはプログラムカウン
タ101dの保持する内容をプログラムカウンタ101
cの保持する内容と一致させ、次に実行される命令のア
ドレスが保持される。一方、ステップS8によってカウ
ント要素101bのクロック数tが0にリセットされ
る。その後でステップS4においてクロック数tが1増
加される。
【0051】この様に本実施例によれば、シミュレーシ
ョン対象の速度性能評価対象プログラム102aが実行
させる各々の命令に対し、シミュレーションエンジン1
01がシミュレートする際の実行回数及び実行に要した
累計クロック数が、同一の命令毎に整理されてそれぞれ
実行回数格納配列102b及び累計クロック数格納配列
102cに格納される。従って同一の命令が何回実行さ
れたか、またその累計時間がシミュレーテッドクロック
の数として求められる。
【0052】この際、各命令毎に開始時刻や終了時刻を
取り出す関数や、周期的に割り込むサンプリングプログ
ラムは必要ないので、これらに対応するオーバヘッドに
よって速度性能評価の精度が制限されることはない。し
かもループで繰り返して実行される命令に対しても、そ
の実行に要した実行時間を知ることができる。更に速度
性能評価対象プログラム101を1回実行するだけで、
これを構成する全命令に関して評価を行うことができ
る。
【0053】(a−2)実施例2:図3はこの発明の他
の実施例を説明するフローチャートである。この実施例
における評価方法においては、特に基本ブロック部分の
速度性能を評価することができる。ここで基本ブロック
とは、連続した命令の列であって、それが実行される際
には必ず基本ブロックの先頭から実行され、途中へ飛び
込んだり途中から飛び出すことがないものを言う。
【0054】まずステップS9において、対象とされる
基本ブロックを構成する命令が何番地から何番地までに
割り付けられているかが調べられる。上記の基本ブロッ
クの性質上、実施例1で述べた方法を用いた場合には、
基本ブロック中の各番地の命令の実行回数は必ず一致し
ていることになる。逆に命令の実行回数が異なっていた
場合、プログラムの流れが正しくない状態もしくは基本
ブロックの範囲の調査が正しくないことが解る。
【0055】ステップS10において、基本ブロックを
構成する各命令の命令で要した累計クロック数を算出
し、それらの和を求める。累計クロック数の算出は、実
施例1に示された方法によって求めることができる。
【0056】次にステップS11において基本ブロック
の実行回数を求める。既述の基本ブロックの性質上、こ
れは基本ブロック中の何れの番地の命令の実行回数とも
一致する。従って、基本ブロック中の任意の番地の命令
の実行回数を、基本ブロックの実行回数として求めるこ
とができる。
【0057】ステップS12において、基本ブロックで
要した累計クロック数をその実行回数で割り、基本ブロ
ックの平均実行クロック数を求めることができる。
【0058】(a−3)実施例3:図4はこの発明の更
に他の実施例を説明するフローチャートである。この実
施例におけるデータ処理速度の評価方法においては、特
にプログラム中の関数や手続きなどのプログラム単位
(サブプログラム)毎の速度を評価することができる。
【0059】まずステップS13において、プログラム
単位を構成する命令が何番地から何番地までに割り付け
られているかを調べる。後は実施例2と同様に、ステッ
プS14でプログラム単位に該当するブロックを構成す
る各命令で要したクロック数を算出し、それらの和を求
める。クロック数の算出は、実施例1に示された方法に
よって求めることができる。
【0060】そしてステップS15でプログラム単位の
実行回数を求める。プログラム単位の実行回数は、プロ
グラム単位を表すブロックに他のブロックから飛び込ん
できた回数や飛び出した回数で決定できる。以上でプロ
グラム単位で要した累計クロック数とそのプログラム単
位の実行回数がわかるため、プログラム単位で要した累
計クロック数をその実行回数で割り、プログラム単位の
平均実行クロック数を求めることができる。
【0061】(a−4)実施例4:図5はこの発明の更
に他の実施例を説明するフローチャートである。本実施
例においては、ある命令を実行するのに要したクロック
数と、その命令の理想的な実行に要する理想実行クロッ
ク数とを比較することにより、プログラムの実行時に余
分な実行クロック数を要していないか否かを判断するこ
とで、データ処理速度が評価される。
【0062】図6は、速度性能評価対象プログラム10
5がブロック51を備えている様子を示す概念図であ
る。ブロック51には複数の命令が存在している。ここ
では2つの命令MOV,ADDに着目して説明する。
【0063】ブロック51が実行される場合における、
命令MOV,ADDが実行される回数、及び実行に要し
た累計クロック数は、実施例1に示された方法を用いる
ことで求めることができる。
【0064】その一方で、各命令には理想的な状態にお
いて実行された場合に要するクロック数(以下「理想累
計クロック数」という)がある。具体的にはパイプライ
ンの状態が理想的であり、命令の実行に必要なメモリデ
ータ操作がスムーズに実施された場合において、各命令
が実行される際に要する累計クロック数である。
【0065】従って、各命令毎に理想累計クロック数と
実行回数とを乗算することにより、理想的な状況におい
てブロック51が実行された場合での各命令の累計クロ
ック数(以下「理想実行累計クロック数」という)を求
めることができる。そして理想実行累計クロック数と累
計クロック数とを比較してデータ処理速度の評価を行う
ことができる。
【0066】具体的にはまずステップS17において、
ブロック51において命令MOV,ADDの実行に要し
た累計クロック数t1 ,t2 を求める。既述の様に、こ
れは実施例1で説明された方法を用いることによって実
現することができる。
【0067】次にステップS18では、ブロック51に
おいて命令MOV,ADDが実行された回数a1 ,a2
を求める。これも実施例1で説明された方法を用いるこ
とによって実現することができる。
【0068】次にのステップS19,S20において理
想実行累計クロック数を求める。まずステップS19に
おいては命令MOVの理想実行累計クロック数b1 を求
める。これは、命令MOVの理想累計クロック数をτ1
とすると、 b1 =a1 ×τ1 …(式1) で求められる。
【0069】そして、ステップS20においては命令A
DDの理想実行累計クロック数b2を求める。これは、
命令ADDの理想累計クロック数をτ2 とすると、 b2 =a2 ×τ2 …(式2) で求められる。
【0070】この様にして求められた命令MOVの理想
実行累計クロック数b1 と命令ADDの理想実行累計ク
ロック数b2 との和に対して、命令MOVの累計クロッ
ク数t1 と命令ADDの累計クロック数t2 との和を比
較して、所定の条件を満足しているか否かがステップS
21において判断される。例えば、 t1 =25,t2 =68, τ1 =2,τ2 =3,a1 =10,a2 =20…(式
3) であった場合には、 b1 +b2 =10×2+20×3=80, t1 +t2 =25+68=93 …(式4) となり、ブロック51における命令列の並び方が、命令
MOV,ADDの実行に関して理想的でないことを示し
ている。ステップS21において設定された所定の条件
は、この13(=93−80)の累計クロック数の差が
許容されるべきか否かを判断する。
【0071】そして、所定の条件が満足されない場合に
は(即ち累計クロック数と理想実行累計クロック数の際
が許容されるべきものでない場合には)、ステップS2
2において命令列の並び換えを行うことによってパイプ
ラインの状態を改善し、メモリデータ操作がスムーズに
実施できるようにする。所定の条件が満足された場合に
は、命令列の並び換えを行う必要はない。
【0072】この様に、本実施例によれば理想的な場合
と実際のシミュレーションで得られた場合とで、命令の
実行に要するクロック数を比較する工程を設けたので、
データ処理装置の構成上プログラムの実行時に余分な実
行クロック数がかかっているか否かを判断することで、
プログラムの速度性能を評価できる。そしてブロックの
命令列の並びを変えて理想的な実行クロック数に近づけ
る最適化が可能となる。
【0073】B.2つのタイプのシミュレーション方法
の組み合わせ: (b−1)実施例5:前節「A.クロック数の累計を求
めるシミュレーション方法」では、プログラム中のどの
部分に時間がかかっているかの正確な評価をプログラム
の細分化を行わずに可能にするシミュレータ(プログラ
ム100)を示した。このようにデータ処理装置の動作
をクロック単位にシミュレートするシミュレータを以下
「第1種シミュレータ」と仮称する。
【0074】これに対して、従来から広く使用されてい
るシミュレータは、データ処理装置上で動作するプログ
ラムをシミュレーションする際に、データ処理装置の命
令単位で命令実行後の内部状態を仮想的に実現するもの
である。この種のシミュレータ(以下「第2種シミュレ
ータ」と仮称する)では、命令実行後の内部状態だけを
シミュレートすることに注力しており、命令を実行する
過程のデータ処理装置の内部動作はシミュレートしな
い。特開平4−112338号公報や特開平5−158
740号公報においては第2種シミュレータが示されて
いる。
【0075】例えば前者においては、評価対象プログラ
ムの実行には、命令単位で内部状態を仮想的に実現する
シミュレータを使用する技術が開示されている。そして
実行に際して各仮想計算機が構成要素を利用することに
関する情報を集め、これらを基に確率情報を用いて性能
評価が行われる技術が開示されている。しかし、この手
法に基づいて得られる値は実行に必要な累計クロック数
を正確には評価していない。
【0076】あるいは特開平3−282642号公報に
おいて、指定されたアドレス範囲内の命令を割込み命令
で置き換え、指定範囲の実行命令数をカウントする技術
が開示されている。命令が割込み命令で置き換えられ、
指定範囲の実行命令数から実行に必要な累計クロック数
を予測している。
【0077】このように第2種シミュレータは、第1種
シミュレータと比べて、実行に必要な累計クロック数を
正確に計算することができない。しかし、第2種シミュ
レータは第1種シミュレータと比較して、その処理速度
が速い。従って、一方の長所は他方の短所となってお
り、これら第1種及び第2種シミュレータを組み合わせ
て用いることにより、それぞれの特色を生かした有利な
シミュレーション方法を得ることができる。
【0078】その理由は次の通りである。当然のことで
はあるが、プログラムの性能評価を全体として行うこと
は必須である。しかしプログラムは通常、プログラム
全体の性能評価を実施した上で、更にその結果からチュ
ーニングすべき部分を見つけ出し、当該部分が所望の
処理速度で処理されるように改修され、再度プログラ
ム全体の性能評価が行われる、という手順で開発され
る。
【0079】つまり、評価対象プログラムの特定部分の
性能評価が重要となる。そして開発されるプログラムの
大規模化に伴い、プログラム実行にかかる時間が膨大に
なってきている。これらを考え併せると、当該特定部分
は処理速度が遅いが実行に必要な累計クロック数を正確
に求められる第1種シミュレータを使用し、特定部分で
ない部分では正確には実行に必要な累計クロック数を測
定できないが、処理速度が速い第2種シミュレータを使
用することが望ましい。
【0080】例えば既述の特開平3−282642号公
報においては指定範囲において実行される命令に関して
はその実行に必要な累計クロック数を予測している。
【0081】あるいは特開平6−19736号公報にお
いてはエミュレータに関する技術が開示されている。ト
レースメモリを節約するために制御用のマイクロプロセ
ッサが別途用意されている。予め設定された領域が実行
される際には1命令ごとに実行させ、それ以外の領域で
は連続的に実行させることにより予め設定した所定領域
のみの情報を得るというものである。これによれば予め
設定された領域内だけで1命令ごとにターゲット・マイ
クロプロセッサのレジスタ等の内容がトレースメモリに
格納されるため、メモリ容量を少なくすることができ
る。
【0082】しかし、これらの技術はなんらかの形でア
ドレス指定を行いその部分のプログラム評価を行うもの
の、命令を割込み命令で置き換えたり、マイクロプロセ
ッサがアドレストラップ機能を備えていることを前提と
している。
【0083】また、特開昭63−292337号公報で
は、汎用コンピュータと論理シミュレータとがチャネル
で接続されていて、汎用コンピュータ上で動作する命令
インタプリタと論理シミュレータ間で仮想メモリのデー
タも含めてデータが転送されるという技術が開示されて
いる。この技術において、プログラムの実行が命令イン
タプリタと論理シミュレータとの間で乗り移りながら進
められる。
【0084】しかし、プログラムの実行が、命令インタ
プリタと論理シミュレータとの間で乗り移るためには、
乗り移り命令という、乗り移りを実施するための命令を
使用しなければならない。また仮想メモリのように膨大
な量のデータを転送しなければならない。このデータの
転送は多大の時間を要する。これはデータ処理装置を仮
想的に実現する方法が異なる、汎用コンピュータと論理
シミュレータとを乗り換えてプログラムを実行する限
り、避けられない問題点である。
【0085】以下に述べる実施例では、命令を割込み命
令で置き換える必要もなく、マイクロプロセッサがアド
レストラップ機能を備えていることを前提ともせず、デ
ータの転送は多大の時間を要しないでプログラムの性能
評価を全体として行い、かつプログラムのうち所望の部
分については実行に必要な累計クロック数を正確に評価
する事ができる。
【0086】実施例5は基礎となる基本的な考え方を示
す。図7はシミュレータ300の構成を示す概念図であ
る。シミュレータ300は実施例1において紹介された
第1種シミュレータ100及び第2種シミュレータ20
0を備えている。既述のようにこのようなシミュレータ
100,200は言語を用いてソフトウエアとして構築
することが可能であり、従って、シミュレータ300も
ソフトウエアとして構築することができる。シミュレー
タ100,200はいずれも同一のデータ処理装置を仮
想的に実現する。
【0087】メモリ空間302はシミュレータ100,
200によって共有され、ソフトウエア上で配列として
構築することができる。メモリ空間302上には速度性
能評価対象プログラム302aがロードされる。
【0088】シミュレータ300は、速度性能評価対象
プログラム302aに対して、性能評価の対象となる領
域ではシミュレータ100によって実行に要する累計ク
ロック数を正確に評価しつつ、性能評価の対象でない領
域ではシミュレータ200によって迅速に、それぞれシ
ミュレーションを実行する。
【0089】このようにシミュレータ100,200を
切り替えても、これらは同一のデータ処理装置を仮想的
に実現しているのであるから、速度性能評価対象プログ
ラム302aのシミュレーションの実行が不連続となる
ことはない。また速度性能評価対象プログラム302a
がロードされるメモリ空間302はシミュレータ10
0,200によって共有されているのでデータ転送に多
大な時間を必要とする事はない。
【0090】このように、第1種シミュレータ100及
び第2種シミュレータ200を組み合わせてシミュレー
タ300を構成し、性能評価の対象領域とそれ以外の領
域とでシミュレータ100,200を切り替えてシミュ
レーションを行うことで、速度性能評価対象プログラム
302aの評価を迅速にしかも正確に実行する事ができ
る。
【0091】(b−2)実施例6:実施例6においては
シミュレーション100,200の切り替えを具体的に
説明する。図8はこの発明の実施例6を示す概念図であ
る。シミュレータ300はプログラムカウンタ9及び切
り替えプログラム10を備えている。
【0092】プログラムカウンタ9は現在シミュレーシ
ョン中の命令に次いでシミュレーションされるべき命令
のアドレスを格納するものであり、シミュレータ300
が構築されるソフトウエアにおいて、配列として構築さ
れる。
【0093】切り替えプログラム10はシミュレータ1
00,200のいずれか一方を指定し、指定された方が
速度性能評価対象プログラム302aのシミュレーショ
ンを遂行する。
【0094】速度性能評価対象プログラム302aは、
シミュレータ100,200が共有するメモリ空間30
2にロードされているので、プログラムカウンタ9はシ
ミュレータ100,200に共通した命令のアドレスを
容易に格納することができる。切り替えプログラム10
はプログラムカウンタ9に格納されている命令のアドレ
スを読み取り、シミュレータ100,200のいずれを
選択すべきかを判断して、一方を指定する。
【0095】この際、ある命令の実行をしている途中で
はシミュレータの切り替えは行われない。シミュレーシ
ョン100,200において実行されるシミュレーショ
ンの切れ目のうち、最も細かくかつ両者に共通するもの
は連続して実行される異なる命令同士の間に存在するた
めである。これはシミュレータ100は命令の実行をし
ている途中の状態をも管理しているが、シミュレータ2
00は命令の実行をしている途中の状態を管理すること
なく、命令実行後の状態のみを管理していることに起因
する。
【0096】図9はシミュレータ100,200の切り
替えを行う手順を示すフローチャートである。シミュレ
ーションの開始後、ステップS31においてプログラム
カウンタ9の示す命令が、性能評価の対象となる領域に
存在するものであるか否かが判断される。
【0097】性能評価の対象となる領域に存在する命令
がプログラムカウンタ9に格納されているのであれば、
シミュレータ100によってシミュレーテッドクロック
に基づいたシミュレーションが行われる(ステップS3
2)。シミュレータ100においてはシミュレーテッド
クロック毎にデータ処理装置の状態が仮想的に実現され
る。シミュレータ100における命令の実行(これは複
数のシミュレーテッドクロックの更新が必要な場合があ
る)が終了すると、ステップS35においてプログラム
カウンタ9の更新がなされる。
【0098】一方、プログラムカウンタ9に格納されて
いる命令が性能評価の対象となる領域に存在しないので
あれば、シミュレータ200によって命令単位でシミュ
レーションが実行される(ステップS34)。そしてこ
れが終了するとステップS35においてプログラムカウ
ンタ9の更新がなされる。
【0099】プログラムカウンタ9の更新がなされる
と、速度性能評価対象プログラム302aの備える命令
の全てが実行されたか否かが判断され(ステップS3
6)、結果が「諾」であればシミュレーションは終了
し、「否」であればステップS31へ戻ってプログラム
カウンタ9の内容が再度吟味される。
【0100】図10を用いて、特定の関数が性能評価の
対象となった場合を例に取って説明する。速度性能評価
対象プログラム302aは3つの領域37,38,39
から構成されており、領域38は性能評価の対象となる
特定の関数である。
【0101】速度性能評価対象プログラム302aのシ
ミュレーションを行う当初では、実行に必要な累計クロ
ック数を正確に求める必要がない。プログラムカウンタ
9において格納される命令が領域37に存在しているた
めである。よってシミュレーションする際には切り替え
プログラム10によってシミュレータ200が指定さ
れ、これによってシミュレーションが遂行される。この
遂行は図9のステップS34に相当する。
【0102】シミュレーションが進み、プログラムカウ
ンタ9において格納される命令が領域38に存在するよ
うになると、シミュレータ100が指定されて、これに
よってシミュレーションが遂行される。この遂行は図9
のステップS32に相当する。
【0103】そして更にシミュレーションが進み、プロ
グラムカウンタ9において格納される命令が領域39に
存在するようになると、シミュレータ200が指定され
て、これによってシミュレーションが遂行される。この
遂行は図9のステップS34に相当する。
【0104】このようにして領域38に存在する特定の
関数のみに対して実行に必要な累計クロック数を正確に
求め、それ以外の命令に関しては累計クロック数の正確
さを犠牲にして迅速なシミュレーションを行うことがで
きる。
【0105】(b−3)実施例7:図11はこの発明の
実施例7を示す概念図である。実施例6ではプログラム
カウンタ9はシミュレータ100,200の外部に構築
されていた。しかし、図7に示されるように同一の内容
が格納されるのであればシミュレータ100,200の
各々において配列9a,9bとして構築されても良い。
【0106】この場合にはシミュレータ100,200
はそれぞれがシミュレーションを行っていない時点にお
いても、それぞれの内部で構築される配列9a,9bの
格納する内容(命令のアドレス)が更新されることとな
る。あるいは切り替えプログラム10によってシミュレ
ーションするように指定されたシミュレータは、その指
定された時点において、他方のシミュレータの格納する
配列の内容を参照して、自らの格納する配列の内容を更
新することとなる。
【0107】(b−4)実施例8:図12はこの発明の
実施例8を示す概念図である。実施例6において説明さ
れたように、シミュレータ100,200の切り替えの
タイミングは命令の終了時である。これはシミュレータ
100は命令の実行をしている途中の状態をも管理して
いるが、シミュレータ200は命令の実行をしている途
中の状態を管理することなく、命令実行後の状態のみを
管理していることに起因する。
【0108】従って、シミュレータ200においてデー
タ処理装置を仮想的に実現するものの一部として構築さ
れるレジスタ等(これは速度性能評価対象プログラム3
02aにとっては直接に関与し得るものである。以下
「可視レジスタ」と仮称する)は、全てシミュレータ1
00において構築されている。シミュレータ100,2
00は同一のデータ処理装置を仮想的に実現しており、
しかもメモリ空間302は両者において共有されている
からである。
【0109】しかし逆に、シミュレータ100において
データ処理装置を仮想的に実現するものの一部として構
築されるレジスタ等の一部(これは速度性能評価対象プ
ログラム302aにとっては直接に関与し得ないもので
ある。以下「不可視レジスタ」と仮称する)は、シミュ
レータ200において構築されていない。
【0110】可視レジスタの内容さえシミュレータ10
0からシミュレータ200に伝達されれば足りるため、
シミュレータ100からシミュレータ200へとシミュ
レーションを行う主体が切り替わる場合には、シミュレ
ータ200におけるシミュレーションの遂行にデータの
不足は生じない。しかしその一方、シミュレータ200
からシミュレータ100へとシミュレーションを行う主
体が切り替わる場合には、シミュレータ100における
シミュレーションの遂行に必要な不可視レジスタに格納
されるべき値が特定されない恐れもある。これではシミ
ュレータ200からシミュレータ100へとシミュレー
ションを行う主体が切り替わる以前にシミュレータ10
0がシミュレーションを遂行したことによって不可視レ
ジスタに与えられていた値が、シミュレーション主体の
切り替えによってシミュレータ100がシミュレーショ
ンを再開する際に用いられることになり、正確なシミュ
レーションを行うことができない場合も存在する。
【0111】このような事態を防止するため、シミュレ
ータ300はCPUリセットプログラム7を備えてい
る。CPUリセットプログラム7は不可視レジスタや実
行開始アドレスを初期化するプログラムであり、一般に
シミュレータによってハードウエアの動作をシミュレー
ションする際に、当該ハードウエアのリセットをシミュ
レーションする為に用いられる。
【0112】本実施例ではこのCPUリセットプログラ
ム7を、シミュレータ100が再開する場合においても
実行させる。具体的にはCPUリセットプログラム7が
メモリ空間302の未使用領域にロードされ(矢印
8)、これがシミュレータ100において実行されるこ
とにより、シミュレータ100内の不可視レジスタの内
容がリセットされる。これにより、以前にシミュレータ
100がシミュレーションを遂行したことによって不可
視レジスタに与えられていた値が、シミュレーション主
体の切り替えによってシミュレータ100がシミュレー
ションを再開する際に用いられることが回避できる。
【0113】この際、リセットされるのはシミュレータ
100において仮想的に実現されるデータ処理装置のC
PUに含まれる不可視レジスタの内容のみであって、シ
ミュレータ200において構築される可視レジスタの内
容は、シミュレータ200において終了したばかりの命
令によって設定されたまま、シミュレータ100におい
て構築された可視レジスタにコピーされる(矢印6)。
そしてプログラムカウンタ9に格納されていた命令に基
づいてシミュレータ100におけるデータ処理装置のシ
ミュレーションが再開される。
【0114】矢印6で示される、可視レジスタの内容の
コピーをもCPUリセットプログラム7に担当させるこ
ともできる。その場合にはシミュレータ100からシミ
ュレータ200への可視レジスタの内容のコピーを、C
PUリセットプログラム7に担当させることもできる。
このような場合にはCPUリセットプログラム7はシミ
ュレータ100からシミュレータ200への切り替えの
際にも実行されることになる。
【0115】(b−5)実施例9:シミュレーション対
象であるデータ処理装置において、ブレークポイントに
ヒットすることで動作が中断することがある。このよう
な動作の中断は例えばコマンド入力を待つために行われ
る。
【0116】かかる中断もシミュレーションにおいて仮
想的に実行される。実施例9は動作中断状態に際して、
その後性能評価をすべきか否かを指定するコマンドを入
力する場合について説明する。
【0117】図13は、この発明の実施例9を説明する
ためのフローチャートである。ステップS41はブレー
クポイントにヒットすることで動作が中断している状態
を示している。これはシミュレータ100,200を問
わず、速度性能評価対象プログラム302aを実行した
結果、ブレークポイントにヒットすること等によって生
じる。但し、速度性能評価対象プログラム302aその
ものが終了する場合にも実行中断に該当するので、ステ
ップS41の状態がプログラムの終了による中断であれ
ば、ステップS42によってフローは終了する。
【0118】ステップS42においてプログラム終了で
ないと判断されれれば、ステップS43に進み、コマン
ド入力待ちのモードに遷移する(ステップS43)。
【0119】ステップS44において、入力されたコマ
ンドがプログラムの性能評価の開始を指定するものであ
るか否かが判断される。その結果が「Y」であれば、シ
ミュレーションされる命令を実行するのに必要な累計ク
ロック数を正確に求める必要がある。従って、ステップ
S45に進み、シミュレータ1を用いてシミュレーショ
ンが遂行される。
【0120】一方、ステップS44における判断の結果
が「N」であれば、当該コマンドがプログラムの性能評
価の終了を指定するものであるか否かについて更に判断
される(ステップS46)。
【0121】ステップS46における判断の結果が
「Y」であれば、既に正確に累計クロック数を求める必
要が無くなったのであるから、迅速なシミュレーション
を行うためにシミュレータ200を使用してシミュレー
ションを遂行する(ステップS48)。
【0122】あるいはステップS44,S46の何れに
おいても判断の結果が「N」であれば、中断された際に
使用されていたシミュレータを用いて当該コマンドが実
行される。
【0123】ステップS45,S47,S48が実行さ
れた後は再び中断(終了をも含む)が生じてステップS
41に戻る。
【0124】このようにして、性能評価の開始を指定す
るコマンドと、性能評価の終了を指定するコマンドとの
間において、命令の実行に必要な累計クロック数を正確
に求める、しかも迅速なシミュレーションを遂行するこ
とができる。
【0125】(b−6)実施例10:図14はこの発明
の実施例10を説明する概念図である。実施例10では
速度性能評価対象プログラム302a中に特定命令が存
在する場合のシミュレーションについて説明する。ここ
で特定命令は、その実行に必要な累計クロック数を正確
に知る必要のない命令をいう。
【0126】例えば、評価対象であるプログラムにおい
て、オペレーティング・システムや入出力ライブラリを
呼ぶ命令が存在する場合がある。このような命令を特定
命令とすることによって、その実行時間を除いたユーザ
とプログラムとの間のみにおいて必要となる累計クロッ
ク数を求め、プログラムの性能を評価することが可能と
なる。
【0127】速度性能評価対象プログラム302aは特
定命令41と、それ以外の領域40,42に区分され
る。特定命令41に関してのみシミュレータ200が用
いられ、それ以外の命令に関してはシミュレータ100
が用いられる。
【0128】図15はこのようなシミュレーションの遂
行を示すフローチャートである。シミュレーション開始
後はステップS51において、シミュレータ100を用
いたシミュレーションが遂行されている。そして、ステ
ップS52において次に実行されるべき命令が特定命令
であるか否かが判断される。判断の結果が「Y」であれ
ば正確に累計クロック数を求める必要はないので、シミ
ュレータ200を用いて迅速なシミュレーションが遂行
される(ステップS54)。判断の結果が「N」であれ
ば、引き続きシミュレーション100によって正確に累
計クロック数を求めつつシミュレーションが遂行される
(ステップS53)。
【0129】ステップS53またはステップS54が実
行された後、ステップS55においてプログラムが終了
したか否かが判断され、終了したのであればシミュレー
ションが終了し、そうでなければ再びステップS52に
戻る。
【0130】これを繰り返すことにより、迅速に、かつ
特定命令の実行を除いたプログラム実行に要する累計ク
ロック数のみを正確に求めることができる。
【0131】(b−7)実施例11:図16はこの発明
の実施例11を説明する概念図である。実施例11では
速度性能評価対象プログラム302a中に仮想システム
コール44,46を備えている場合について説明する。
仮想システムコールは、実施例9で説明された、プログ
ラムの性能評価の開始を指定するコマンドや、プログラ
ムの性能評価の終了を指定するコマンドに対応した機能
を有している。
【0132】仮想システムコール44,46で挟まれた
領域45に存在する命令のみが、シミュレータ100に
よってシミュレートされ、その命令の実行に必要な累計
クロック数が正確に求められる。そしてそれ以外の領域
43,47に存在する命令に関しては、その実行に必要
な累計クロック数を正確に求める必要がないので、シミ
ュレータ200によってシミュレーションが遂行され
る。
【0133】このようにシミュレーションを遂行するこ
とで、仮想システムコールを使用して指定された間の命
令の実行に要する累計クロック数を正確に求めつつ、迅
速なシミュレーションを遂行することが可能となる。
【0134】
【発明の効果】この発明のうち請求項1にかかるデータ
処理速度の評価方法においては、速度性能評価対象プロ
グラムが有する命令毎に、データ処理装置の動作のシミ
ュレーションにおける実行回数及び実行に要するクロッ
ク数が累積的に保持されるので、速度性能評価対象プロ
グラムの細分化を行うことなく、しかも、速度性能評価
対象プログラムを1回実行するだけで、速度性能評価対
象プログラムが有する各命令において、どのような速度
で実行されているかを評価する事ができる。
【0135】この発明のうち請求項2にかかるデータ処
理速度の評価方法においては、データ処理装置をシミュ
レーションする際にシミュレーテッドクロックをシミュ
レーション上で生成するので、これをカウントする事に
より、命令の実行に要する累計クロック数を求めること
ができる。
【0136】この発明のうち請求項3にかかるデータ処
理速度の評価方法においては、サブプログラムを構成す
る命令がシミュレーションにおいて実行されるのに要す
る平均的なクロック数を求めて、平均的にはどのような
速度で実行されているのかを評価する事ができる。
【0137】この発明のうち請求項4にかかるデータ処
理速度の評価方法においては、基本ブロックを構成する
命令の内のいずれかがシミュレーションにおいて実行さ
れた回数を以て、前記基本ブロックの実行回数として求
めることができる。
【0138】この発明のうち請求項5にかかるデータ処
理速度の評価方法においては、理想的な場合と実際のシ
ミュレーションで得られた場合とで、命令の実行に要す
る累計クロック数を比較する工程を設けたので、データ
処理装置の構成上、プログラムの実行時に余分なクロッ
ク数がかかっているか否かを判断し、プログラムの速度
性能を評価することができる。
【0139】以上のように、請求項1乃至請求項5にか
かるデータ処理速度の評価方法によれば、プログラミン
グ言語処理系における最適化についての検討手段を提供
することができる。
【0140】この発明のうち請求項6及び請求項8にか
かるデータ処理速度の評価方法においては、正確な速度
評価を行うべき命令に対しては第1種シミュレーション
工程によって、迅速にシミュレーションを行うべき命令
に対しては第2種シミュレーション工程によって、それ
ぞれシミュレーションを遂行するので迅速かつ正確な評
価を行うことができる。
【0141】この発明のうち請求項9にかかるデータ処
理速度の評価方法においては、第2種シミュレーション
工程から第1種シミュレーション工程に切り替えてシミ
ュレーションを行う際に、第1種シミュレーション工程
における誤動作を回避することができる。
【0142】この発明のうち請求項10にかかるデータ
処理速度の評価方法においては、コマンド入力によっ
て、第1種シミュレーション工程と第2種シミュレーシ
ョン工程とを切り替えてシミュレーションを行うことが
できる。
【0143】この発明のうち請求項11及び請求項12
にかかるデータ処理速度の評価方法においては、予め指
定された命令のみに関して第2種シミュレーション工程
によってシミュレーションが行われ、それ以外の命令に
関しては第1種シミュレーション工程によってシミュレ
ーションが行われる。
【0144】以上の様に、請求項6乃至請求項12にか
かるデータ処理速度の評価方法によれば、プログラムの
命令が配置されているアドレスの番地、基本ブロック、
関数や手続きなどのプログラム単位毎に、命令の実行に
要する累計クロック数の累計を求めることでプログラム
の速度性能を評価できる。これにより、プログラム中の
評価対象部分だけの実行に要する累計クロック数を正確
にかつ迅速に求めることができ、プログラムのチューニ
ングを効率的に行うことが可能となる。
【図面の簡単な説明】
【図1】 この発明の実施例1を示す概念図である。
【図2】 この発明の実施例1を示すフローチャートで
ある。
【図3】 この発明の実施例2を示すフローチャートで
ある。
【図4】 この発明の実施例3を示すフローチャートで
ある。
【図5】 この発明の実施例4を示すフローチャートで
ある。
【図6】 この発明の実施例4を示す概念図である。
【図7】 この発明の実施例5の基本的な考え方を示す
概念図である。
【図8】 この発明の実施例6を示す概念図である。
【図9】 この発明の実施例6を示すフローチャートで
ある。
【図10】 この発明の実施例6を示す概念図である。
【図11】 この発明の実施例7を示す概念図である。
【図12】 この発明の実施例8を示す概念図である。
【図13】 この発明の実施例9を示すフローチャート
である。
【図14】 この発明の実施例10を示す概念図であ
る。
【図15】 この発明の実施例10を示すフローチャー
トである。
【図16】 この発明の実施例11を示す概念図であ
る。
【図17】 従来の技術を示す概念図である。
【図18】 従来の技術を示す概念図である。
【図19】 従来の技術を示す概念図である。
【符号の説明】
100 (第1種)シミュレータ、101 シミュレー
ションエンジン、101a クロック発生要素、101
b カウント要素、101c,101d プログラムカ
ウンタ、102a,302a 速度性能評価対象プログ
ラム、102b実行回数格納配列、102c 累計クロ
ック数格納配列、9 プログラムカウンタ、9a,9b
配列、41 特定命令、10 切り替えプログラム、
44,46 仮想システムコール、200 (第2種)
シミュレータ。

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 クロックに基づいて動作するデータ処理
    装置において速度性能評価対象プログラムを実行する際
    の速度を、シミュレーションによって評価する速度性能
    評価方法であって、 前記速度性能評価対象プログラムは複数の命令を備え、 (I)(a)前記クロックをシミュレートするシミュレ
    ーテッドクロックに基づいて、前記速度性能評価対象プ
    ログラムを実行する前記データ処理装置の動作の前記シ
    ミュレーションを行う工程と、 (b)前記命令の各々に対応したアドレスにおいて、前
    記シミュレーションにおいて実行された前記命令の実行
    回数及び実行に要した前記シミュレーテッドクロックの
    クロック数を保持する工程とを有する第1種シミュレー
    ション工程を備え、前記工程(a)は(a−1)前記シ
    ミュレーションにおいて実行されていた第1の前記命令
    の実行が終了し、前記速度性能評価対象プログラムにお
    いて前記第1の命令に続く第2の前記命令が前記シミュ
    レーションにおいて実行される際に、前記第1及び第2
    の命令を保持する工程と、(a−2)前記速度性能評価
    対象プログラムの命令が更新して前記シミュレーション
    において実行されることにより、前記工程(a−1)に
    おいて保持される前記第1及び第2の命令を更新する工
    程とを含み、前記工程(b)は(b−1)前記工程(a
    −1)において保持されている前記第1の命令に対応す
    るアドレスに対応して保持されている前記実行回数を、
    前記第1の前記命令の実行が終了する毎に1増加させる
    工程と、(b−2)前記工程(a−1)において保持さ
    れている前記第1の命令に対応するアドレスに対応して
    保持されている前記クロック数に、前記シミュレーショ
    ンにおいて前記第1の命令が実行されるのに要したクロ
    ック数を、前記第1の前記命令の実行が終了する毎に累
    加させる工程とを含み、 前記工程(a)は(a−3)前記工程(b−1),(b
    −2)が実行された後で、前記工程(a−1)において
    保持されていた前記第1の命令を、前記第2の命令に更
    新する工程を更に含むデータ処理速度の評価方法。
  2. 【請求項2】 前記工程(b)は(b−3)前記シミュ
    レーションにおいて前記シミュレーテッドクロックを生
    成する工程と、(b−4)前記シミュレーテッドクロッ
    クをカウントしてクロック数を求める工程と、(b−
    5)前記工程(b−2)の後で、前記工程(b−4)に
    おいてカウントされたクロック数をリセットする工程と
    を更に含む、請求項1記載のデータ処理速度の評価方
    法。
  3. 【請求項3】 前記命令の複数は速度性能評価対象プロ
    グラムにおいて、サブプログラムを構成し、 前記第1種シミュレーション工程(I)は (c)前記サブプログラムを構成する前記命令の各々に
    対し、前記シミュレーションにおいて実行されるのに要
    したクロック数を、前記工程(a),(b)に基づいて
    求める工程と、 (d)前記サブプログラムが前記シミュレーションにお
    いて実行された回数を求める工程と、 (e)前記サブプログラムを構成する前記命令が、前記
    シミュレーションにおける実行に要したクロック数の総
    和をとる工程と、 (f)前記工程(e)で求められた前記総和を、前記工
    程(d)で求められた前記回数で割ることにより、前記
    サブプログラムを構成する前記命令が、前記シミュレー
    ションにおいて実行されるのに要する平均的なクロック
    数を求める工程とを更に有する、請求項1記載のデータ
    処理速度の評価方法。
  4. 【請求項4】 前記サブプログラムは、実行される際に
    は必ずその先頭の命令から末尾の命令まで連続的に実行
    される基本ブロックであって、 前記工程(e)は(e−1)前記基本ブロックが前記シ
    ミュレーションにおいて実行された回数を、前記基本ブ
    ロックを構成する前記命令の内のいずれかが前記シミュ
    レーションにおいて実行された回数から求める工程を含
    む、請求項3記載のデータ処理速度の評価方法。
  5. 【請求項5】 前記サブプログラムを構成する前記命令
    の少なくとも一つに関し、理想的な状態において実行さ
    れる際に要求されるクロック数が理想クロック数として
    既知であり、 前記第1種シミュレーション工程(I)は (c)前記理想クロックが既知である命令が前記シミュ
    レーションにおいて実行された回数を、前記工程
    (a),(b)から求める工程と、 (d)前記理想クロックが既知である命令が前記シミュ
    レーションにおいて実行されるのに要したクロック数
    を、前記工程(a),(b)から求める工程と、 (e)前記理想クロック数に前記工程(c)で求めた前
    記回数を乗じて理想実行クロック数を求める工程と、 (f)前記理想実行クロック数と前記工程(d)で求め
    られた前記クロック数とを比較する工程とを更に有す
    る、請求項1記載のデータ処理速度の評価方法。
  6. 【請求項6】 (II)前記命令毎に前記命令実行後の前
    記データ処理装置の内部状態を仮想的に実現する第2種
    シミュレーション工程と、 (III )前記速度性能評価対象プログラムが前記データ
    処理装置において実行される状態を、前記第1種シミュ
    レーション工程及び前記第2種シミュレーション工程の
    いずれか一方によって選択的にかつ連続的にシミュレー
    ションする調整工程とを更に備え、 前記第1種シミュレーション工程と前記第2種シミュレ
    ーション工程とにおいて使用される記憶領域は共有され
    る、請求項1記載のデータ処理速度の評価方法。
  7. 【請求項7】 前記調整工程(III )は (c)現在シミュレートしている前記命令に次いでシミ
    ュレートされるべき前記命令の認識を行う工程と、 (d)前記認識が行われた命令に基づいて前記第1種シ
    ミュレーション工程(I)及び前記第2種シミュレーシ
    ョン工程(II)の何れか一方を選択的に実行させる工程
    とを有する、請求項6記載のデータ処理速度の評価方
    法。
  8. 【請求項8】 前記第1種シミュレーション工程(I)
    及び前記第2種シミュレーション工程(II)のそれぞれ
    において、現在シミュレーション中の前記命令に次いで
    シミュレートされるべき前記命令のアドレスが配列に格
    納される、請求項7記載のデータ処理速度の評価方法。
  9. 【請求項9】 前記データ処理装置は(x−1)前記速
    度性能評価対象プログラムが直接に関与し得る可視レジ
    スタと、(x−2)前記速度性能評価対象プログラムが
    直接に関与し得ない不可視レジスタとを備え、 前記第1種シミュレーション工程(I)は (c)前記可視レジスタの内容を保持する工程と、 (d)前記不可視レジスタの内容を保持する工程とを更
    に有し、 前記第2種シミュレーション工程(II)は (e)前記可視レジスタの内容を保持する工程を有し、 前記調整工程(III )は (f)一の前記命令に対応して前記第2種シミュレーシ
    ョン工程(II)によって前記データ処理装置の動作のシ
    ミュレーションを行った後、他の前記命令に対応して前
    記第1種シミュレーション工程(I)によって前記デー
    タ処理装置の動作のシミュレーションを行う際に、前記
    第1種シミュレーション工程(I)の工程(d)によっ
    て保持された内容をリセットする工程を有する、請求項
    6記載のデータ処理速度の評価方法。
  10. 【請求項10】 前記調整工程(III )は (c)前記シミュレーションが中断した直後に入力され
    る第1種コマンドにより、その後にシミュレートされる
    すべき命令に対して前記第1種シミュレーション工程
    (I)を行う工程と、 (d)前記シミュレーションが中断した直後に入力され
    る第2種コマンドにより、その後にシミュレートされる
    すべき命令に対して前記第2種シミュレーション工程
    (II)を行う工程とを有する、請求項6記載のデータ処
    理速度の評価方法。
  11. 【請求項11】 前記複数の命令は特定命令と非特定命
    令に区分され、 前記調整工程(III )は (c)前記非特定命令に対して前記第1種シミュレーシ
    ョン工程(I)を行う工程と、 (d)前記特定命令に対して前記第2種シミュレーショ
    ン工程(II)を行う工程とを有する、請求項6記載のデ
    ータ処理速度の評価方法。
  12. 【請求項12】 前記複数の命令は第1及び第2の仮想
    システムコールを更に備え、 前記調整工程(III )は (c)前記第1及び第2の仮想システムコールに挟まれ
    て備えられた前記命令に対して前記第1種シミュレーシ
    ョン工程(I)を行う工程と、 (d)前記第1の仮想システムコールについて前記第2
    の仮想システムコールと反対側に設けられた前記命令、
    及び前記第2の仮想システムコールについて前記第1の
    仮想システムコールと反対側に設けられた前記命令に対
    して前記第2種シミュレーション工程(II)を行う工程
    とを有する、請求項6記載のデータ処理速度の評価方
    法。
JP00067595A 1994-04-12 1995-01-06 データ処理速度の評価方法 Expired - Fee Related JP3366475B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP00067595A JP3366475B2 (ja) 1994-04-12 1995-01-06 データ処理速度の評価方法
US08/411,981 US5671402A (en) 1994-04-12 1995-03-28 Method of evaluating a data processing rate using simulation

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP7313094 1994-04-12
JP6-73130 1994-04-12
JP00067595A JP3366475B2 (ja) 1994-04-12 1995-01-06 データ処理速度の評価方法

Publications (2)

Publication Number Publication Date
JPH07334395A true JPH07334395A (ja) 1995-12-22
JP3366475B2 JP3366475B2 (ja) 2003-01-14

Family

ID=26333695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00067595A Expired - Fee Related JP3366475B2 (ja) 1994-04-12 1995-01-06 データ処理速度の評価方法

Country Status (2)

Country Link
US (1) US5671402A (ja)
JP (1) JP3366475B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016184376A (ja) * 2015-03-27 2016-10-20 株式会社メガチップス 性能評価モジュール及びこれを組み込んだ半導体集積回路
US10001992B2 (en) 2015-02-17 2018-06-19 Fujitsu Limited Method, information processing apparatus, and medium

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2715993B2 (ja) * 1995-06-06 1998-02-18 日本電気株式会社 シミュレーション方法および装置
US6059835A (en) * 1997-06-13 2000-05-09 International Business Machines Corporation Performance evaluation of processor operation using trace pre-processing
US5938778A (en) * 1997-11-10 1999-08-17 International Business Machines Corporation System and method for tracing instructions in an information handling system without changing the system source code
US6816829B1 (en) * 2000-01-04 2004-11-09 International Business Machines Corporation System and method to independently verify the execution rate of individual tasks by a device via simulation
US6609216B1 (en) 2000-06-16 2003-08-19 International Business Machines Corporation Method for measuring performance of code sequences in a production system
US20020184363A1 (en) * 2001-04-20 2002-12-05 Steven Viavant Techniques for server-controlled measurement of client-side performance
US7321942B2 (en) * 2002-11-12 2008-01-22 Arm Limited Performance counter for adding variable work increment value that is dependent upon clock frequency
GB2395310A (en) * 2002-11-12 2004-05-19 Advanced Risc Mach Ltd Data processing system performance counter
US7260749B2 (en) * 2003-01-22 2007-08-21 Red Hat, Inc. Hot plug interfaces and failure handling
US7089354B2 (en) * 2003-07-30 2006-08-08 International Business Machines Corporation Disk fragmentation test system
US20060047597A1 (en) * 2004-08-27 2006-03-02 Michael Homer Options calculator
EP1936503A1 (en) * 2006-12-20 2008-06-25 International Business Machines Corporation A method and system for providing a deterministic virtual clock
TWI411925B (zh) * 2010-03-19 2013-10-11 Univ Nat Taiwan Virtual time device for time evaluation on virtual platform and its method
US8843932B2 (en) * 2011-01-12 2014-09-23 Wisconsin Alumni Research Foundation System and method for controlling excessive parallelism in multiprocessor systems
JP6223637B2 (ja) * 2015-05-29 2017-11-01 三菱電機株式会社 シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5488713A (en) * 1989-12-27 1996-01-30 Digital Equipment Corporation Computer simulation technique for predicting program performance
GB9023633D0 (en) * 1990-10-31 1990-12-12 Int Computers Ltd Predicting the performance of a computer system
US5303166A (en) * 1992-04-14 1994-04-12 International Business Machines Corporation Method and system for automated network benchmark performance analysis
US5517629A (en) * 1992-08-26 1996-05-14 Boland; R. Nick K. Methods for analyzing computer program performance
US5485574A (en) * 1993-11-04 1996-01-16 Microsoft Corporation Operating system based performance monitoring of programs

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10001992B2 (en) 2015-02-17 2018-06-19 Fujitsu Limited Method, information processing apparatus, and medium
JP2016184376A (ja) * 2015-03-27 2016-10-20 株式会社メガチップス 性能評価モジュール及びこれを組み込んだ半導体集積回路

Also Published As

Publication number Publication date
US5671402A (en) 1997-09-23
JP3366475B2 (ja) 2003-01-14

Similar Documents

Publication Publication Date Title
JP3366475B2 (ja) データ処理速度の評価方法
US5615357A (en) System and method for verifying processor performance
US5517629A (en) Methods for analyzing computer program performance
US5412799A (en) Efficient data processor instrumentation for systematic program debugging and development
Bose et al. Performance analysis and its impact on design
US5696942A (en) Cycle-based event-driven simulator for hardware designs
US20030171907A1 (en) Methods and Apparatus for Optimizing Applications on Configurable Processors
US7761272B1 (en) Method and apparatus for processing a dataflow description of a digital processing system
US11636122B2 (en) Method and apparatus for data mining from core traces
US5272651A (en) Circuit simulation system with wake-up latency
US6856951B2 (en) Repartitioning performance estimation in a hardware-software system
US8020123B2 (en) Transaction-based system and method for abstraction of hardware designs
JPH077428B2 (ja) 論理回路シミュレータとそのスパイク検出方法
US8000953B2 (en) Augmenting of automated clustering-based trace sampling methods by user-directed phase detection
US6691079B1 (en) Method and system for analyzing test coverage
US7366951B2 (en) Method and apparatus for test program generation based on an instruction set description of a processor
JP3645346B2 (ja) 論理シミュレーション装置
US6077305A (en) Latch inference using dataflow analysis
JP3274036B2 (ja) プロセッサの動作モデルと論理検証用試験命令列の自動生成方法及び装置
Razouk The use of Petri Nets for modeling pipelined processors
Wolf et al. Execution cost interval refinement in static software analysis
CN116149917A (zh) 评估处理器性能的方法及装置、计算设备、可读存储介质
US20040193395A1 (en) Program analyzer for a cycle accurate simulator
Bensalem et al. A Simplified Approach for Testing Real-Time Systems Based on Action Refinement.
Graham Performance prediction

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20081101

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20081101

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20091101

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees