JPH11149489A - シミュレーション装置 - Google Patents

シミュレーション装置

Info

Publication number
JPH11149489A
JPH11149489A JP9315496A JP31549697A JPH11149489A JP H11149489 A JPH11149489 A JP H11149489A JP 9315496 A JP9315496 A JP 9315496A JP 31549697 A JP31549697 A JP 31549697A JP H11149489 A JPH11149489 A JP H11149489A
Authority
JP
Japan
Prior art keywords
operation timing
program
instruction
correspondence table
clock cycle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9315496A
Other languages
English (en)
Inventor
Nobu Matsumoto
展 松本
Takahiro Tokuyoshi
隆宏 徳吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP9315496A priority Critical patent/JPH11149489A/ja
Publication of JPH11149489A publication Critical patent/JPH11149489A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【課題】 従来困難であった動作タイミングのシミュレ
ーションを自動的に行うことのできるシミュレーション
装置を提供することにある。 【解決手段】 本発明のシミュレーション装置は、プロ
グラムを入力する入力手段100と、動作タイミング設
定用のプログラムを実行してPC(プログラムカウン
タ)・CC(クロックサイクル数)対応表を生成するP
C・CC対応表生成手段210と、動作タイミング設定
用のプログラムとシミュレーションしようとするプログ
ラムを実行する命令レベルシミュレータ220と、動作
タイミング情報を生成する動作タイミング情報生成手段
230と、動作タイミング情報と命令レベルシミュレー
タからの情報とを参照して、各クロックサイクル数にお
けるステージ状態を再現するステージ状態再現手段24
0と、ステージ状態を出力する出力手段300とを具備
することを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プロセッサ等のシ
ミュレーションを行う際に、従来困難であった動作タイ
ミングのシミュレーションを自動的に行うことのできる
シミュレーション装置に関する。
【0002】
【従来の技術】従来では、プロセッサの命令セット・シ
ミュレータ(シミュレーション・モデルともいう)に
は、大きく分けてHDL(Verilog,VHDL等)記述による
シミュレーション・モデルとC言語によるシミュレーシ
ョン・モデルとがあった。
【0003】しかし、HDL(Verilog,VHDL等)記述に
よるシミュレーション・モデルでは、処理性能が低く、
また通常はデバッグ機能が無いためにソフト開発に利用
することは難しかった。
【0004】そこで、ソフト開発には、一般にC言語に
よるシミュレーション・モデルが使用されている。この
C言語によるシミュレーション・モデルは、さらに、機
能面のみをシミュレーション可能な命令レベル・シミュ
レータと、機能に併せて、プロセッサのどの命令が、い
つ実行されるかという動作タイミングについてもシミュ
レーション可能なcycle-accurateなシミュレータとの2
つに分類することができる。
【0005】タイミング制約の厳しいソフトの開発やH
W(ハードウェア)/SW(ソフトウェア)協調検証に
おいては、機能面についてのシミュレーションしかでき
ない命令レベル・シミュレータだけでは十分なシミュレ
ーションが行えず、動作タイミングについてもシミュレ
ーション可能なcycle-accurateなシミュレータが必要で
あった。
【0006】ここで、従来のcycle-accurateなシミュレ
ータについて説明する。
【0007】従来ではcycle-accurateなシミュレータで
動作タイミングをシミュレーションする場合には、動作
タイミングをシミュレーションするためのプログラムを
作成し、そのプログラムをcycle-accurateなシミュレー
タで実行することにより動作タイミングをシミュレーシ
ョンしていた。そのプログラムの作成方法としては、H
DL記述からC言語に変換して作られる場合と人手によ
り作成される場合との2つがあったが、HDL記述から
C言語に変換される場合にはソフトのシミュレーション
には不要な構造の記述が含まれているために、処理速度
が低くなるという問題点があり、そのために人手で作成
される場合が多かった。
【0008】
【発明が解決しようとする課題】しかしながら、上述し
たような人手で動作タイミングをシミュレーションする
プログラムを作成するには、その開発(特に、動作タイ
ミングについての実装と検証)に大きな工数が必要とな
る問題点があった。
【0009】それは人手でプログラムを作成する場合に
は、まずシミュレーションしようとしているプロセッサ
の仕様書に基づいてプログラムを作成するのであるが、
シミュレーションのうち機能面については、通常は仕様
書に明確に記載されており、人手でも容易に実装/検証
をすることができた(例えば、1週間程度で実装/検証
が可能である)。これに対し、動作タイミングの面につ
いては、実装/検証に大きな工数が必要であった(例え
ば、1年程度必要となる場合もある)。
【0010】この大きな工数が必要となる理由として
は、まず第1に、プログラムを作成する人が仕様を理解
することに多くの時間が必要であることが考えられ、第
2には動作タイミングは全てが仕様書に記されていると
は限らず、記されていない部分を見つけることに大きな
労力を要するということがある。また、動作タイミング
の仕様が全く記されていない場合もあり、このような場
合には動作タイミングを実装すること自体が大変困難で
あった。
【0011】本発明は上記事情に鑑みてなされたもので
あり、その目的は、シミュレーションする場合におい
て、多くの労力を必要としていた動作タイミングの実装
を自動化することを可能にすると共に、動作タイミング
の仕様が難解であったり、不明な場合であっても動作タ
イミングのシミュレーションを可能にするシミュレーシ
ョン装置を提供することにある。
【0012】
【課題を解決するための手段】上記目的を達成するため
に、第1の発明であるシミュレーション装置は、動作タ
イミング設定用のプログラムとシミュレーションしよう
とするプログラムを入力する入力手段と、この入力手段
により入力された動作タイミング設定用のプログラムを
実行して、クロックサイクル数とパイプラインの各ステ
ージのプログラムカウンタとの関係を表したプログラム
カウンタ・クロックサイクル数対応表を生成するプログ
ラムカウンタ・クロックサイクル数対応表生成手段と、
このプログラムカウンタ・クロックサイクル数対応表生
成手段によって生成されたプログラムカウンタ・クロッ
クサイクル数対応表を参照して、動作タイミング設定用
のプログラムとシミュレーションしようとするプログラ
ムとを実行する命令レベルシミュレータと、この命令レ
ベルシミュレータから出力される情報とプログラムカウ
ンタ・クロックサイクル数対応表とを参照して、先行す
る命令と後続する命令との関係により発生するストール
の段数を表した動作タイミング情報を生成する動作タイ
ミング情報生成手段と、この動作タイミング情報生成手
段によって生成された動作タイミング情報と命令レベル
シミュレータからの情報とを参照して、各クロックサイ
クル数におけるステージ状態を再現するステージ状態再
現手段と、このステージ状態再現手段によって再現され
たステージ状態を出力する出力手段とを具備することを
特徴とする。
【0013】この第1の発明によれば、従来多くの時間
と手間のかかっていた命令セット・シミュレータにおけ
るシミュレーションするプログラムの開発、特に動作タ
イミングのシミュレーションを自動化することができる
ので、シミュレーションするのに要する時間を大幅に短
縮することができる。さらに、従来はシミュレーション
の対象となるプロセッサやHDL記述のみが存在し、動
作タイミングに関する仕様が不明であるようなプロセッ
サに対しては動作タイミングのシミュレーションが不可
能であったが、本発明のシミュレーション装置によれば
可能になる。
【0014】第2の発明であるシミュレーション装置で
は、命令レベルシミュレータがキャッシュテーブルを有
していない場合に、動作タイミング情報に命令キャッシ
ュのミス率の情報とデータキャッシュのミス率の情報と
を含めて、この命令キャッシュのミス率またはデータキ
ャッシュのミス率とメモリのレイテンシとを掛け合わせ
てレイテンシ期待値を生成し、このレイテンシ期待値を
クロックサイクル数に加算することを特徴とする。
【0015】この第2の発明によれば、命令レベルシミ
ュレータがキャッシュテーブルを有していない場合で
も、キャッシュのミス率を保持することにより、クロッ
クサイクル数に実数を用いてレイテンシ期待値というか
たちで加算することができる。これによりキャッシュテ
ーブルを有していない場合でも正確なクロックサイクル
数を得ることができると共にシミュレーションの処理を
高速化でき、メモリ使用量を軽減できる。
【0016】第3の発明であるシミュレーション装置で
は、プログラムカウンタ・クロックサイクル数対応表生
成手段において、データキャッシュまたは命令キャッシ
ュからのRefill要求をプログラムカウンタ・クロ
ックサイクル数対応表に追加することを特徴とする。
【0017】この第3の発明によれば、データキャッシ
ュと命令キャッシュとからのRefill要求を検知す
ることにより、特別なプログラムを用意することなく、
バス競合についてシミュレーション装置自体が認識でき
るので、特別なプログラムを用意する手間を省くことが
できると共に、ストール段数およびその原因の特定が容
易になる。
【0018】第4の発明であるシミュレーション装置で
は、ステージ状態再現手段から出力されるステージ状態
のクロックサイクル数とプログラムカウンタ・クロック
サイクル数対応表のクロックサイクル数とを比較する比
較手段を具備することを特徴とする。
【0019】この第4の発明によれば、PC・CC対応
表生成手段で生成されたPC・CC対応表のクロックサ
イクル数とステージ状態再現手段で再現されたステージ
状態のクロックサイクル数とを比較する比較手段を設け
ることによって、より正確なクロックサイクル数を得る
ことができる。
【0020】
【発明の実施の形態】以下、本発明に係るシミュレーシ
ョン装置の一実施形態を図面に基づいて説明する。
【0021】図1は本実施形態のシミュレーション装置
の構成を示すブロック図である。
【0022】図1に示すように、本実施形態のシミュレ
ーション装置は、動作タイミングを設定するためのプロ
グラムやシミュレーションしようとするプログラム、さ
らに処理に必要なアーキテクチャ情報を入力する入力手
段100と、この入力手段100により入力された動作
タイミングを設定するためのプログラムによってPC
(プログラムカウンタ)・CC(クロックサイクル数)
対応表を生成するPC・CC対応表生成手段210と、
このPC・CC対応表生成手段210により生成された
PC・CC対応表を利用して、入力手段100によって
入力されたプログラムを実行する命令レベルシミュレー
タ220と、この命令レベルシミュレータ220により
出力された情報とPC・CC対応表とから動作タイミン
グ情報を生成する動作タイミング情報生成手段230
と、この動作タイミング情報生成手段230によって生
成された動作タイミング情報と命令レベルシミュレータ
220によって出力された情報とから各クロックにおけ
るパイプラインのステージ状態を再現するステージ状態
再現手段240と、このステージ状態再現手段240に
よって再現されたステージ状態を出力する出力手段30
0とから構成されている。
【0023】また、命令レベルシミュレータ220はキ
ャッシュテーブル225を有している。
【0024】なお、入力手段100は、キーボード、マ
ウス、ライトペン、又はフレキシブルディスク装置等が
含まれ、シミュレーション手段200は各種の処理を行
うためのCPUとこの処理の命令を記憶する記憶手段と
を有する通常のコンピュータシステムを含む装置であ
り、また、出力手段300は、ディスプレイ装置やプリ
ンタ装置等が含まれる。上記シミュレーション手段20
0に含まれるPC・CC対応表生成手段210、命令レ
ベルシミュレータ220、動作タイミング情報生成手段
230、ステージ状態再現手段240の各処理の命令や
タイミング制約は記憶手段に保持されており、必要に応
じてCPUにロードされ、実行がなされる。通常の場
合、実行の制御は、操作者が入力手段100に対して命
令(コマンド)の入力を行うことにより行われる。
【0025】次に、本実施形態のシミュレーション装置
の動作について説明する。図2は本実施形態のシミュレ
ーション装置の動作を示したフローチャートである。
【0026】まず、動作タイミング設定用のプログラム
P1とアーキテクチャ情報を入力手段100から入力す
る(S01)。アーキテクチャ情報にはプロセッサのパ
イプライン段数、各命令についての入力オペランドある
いは出力オペランドの情報、キャッシュ・サイズや方式
などの情報が含まれている。
【0027】また、動作タイミング設定用のプログラム
P1とは、さまざまなストール原因、例えばキャッシュ
ミスやデータハザードを含んだプログラムであって、各
ストール原因によって何段のストールが発生するかとい
う情報を得るために入力されるものである。
【0028】ここで、この動作タイミング設定用のプロ
グラムP1の例を図3に示す。図3のプログラムAはキ
ャッシュミスがなく、データハザードがある場合のプロ
グラムの例であり、プログラムBはデータキャッシュミ
スがあり、データハザードもある場合のプログラムの例
であり、プログラムCはデータキャッシュミスがあり、
命令キャッシュミスもある場合のプログラムの例であ
る。
【0029】このように、さまざまなストール原因を含
んだ動作タイミング設定用のプログラムP1は入力され
ると、PC・CC対応表生成手段210と命令レベルシ
ミュレータ220とに送られる。
【0030】プログラムP1の送られたPC・CC対応
表生成手段210では、それぞれのプログラムが含んで
いるストール原因に対応したPC・CC対応表を生成す
る。
【0031】このPC・CC対応表生成手段210は、
シミュレーションを行おうとしている対象のプロセッサ
やそのプロセッサを含む応用システム、あるいはHDL
シミュレータによって構成されているので、動作タイミ
ング設定用のプログラムP1が入力されると、各ストー
ル原因によって発生するストールがパイプラインの各ス
テージにどのような影響を与えるかについて情報を得る
ことができ、この情報をもとにPC・CC対応表を作成
する。例えば、図3のプログラムAが入力された場合に
はキャッシュミスがなく、データハザードがある場合の
PC・CC対応表が生成され、同様にプログラムBが入
力された場合にはデータキャッシュミスがあり、データ
ハザードもある場合のPC・CC対応表が生成され、プ
ログラムCが入力された場合にはデータキャッシュミス
があり、命令キャッシュミスもある場合のPC・CC対
応表が生成される(S02)。
【0032】ここで、PC・CC対応表について図4の
例をもとに説明する。
【0033】図4(a)のPC・CC対応表はクロック
サイクル数の各時点のパイプラインのステージ状態を示
している。パイプラインの各ステージは、Fがフェッ
チ、Dがデコード、Eがエクゼキュート、Mはメモリア
クセス、Wはライトバックを示している。図4(a)は
図4(b)のプログラムについてのPC・CC対応表で
あり、各命令のプログラムカウンタの値は図4(b)に
示す値であるが、図4(a)のPC・CC対応表では簡
単のため図4(b)のプログラムカウンタの値の下3桁
のみで表している。
【0034】図4(a)のPC・CC対応表では、クロ
ックサイクル数が101の時点で13Cの命令、即ちa
ddi命令がEの段を行うことができずに1段のストー
ルが発生していることが分かる。
【0035】このようなPC・CC対応表を生成するP
C・CC対応表生成手段210とは別に、ステップS0
1で入力手段100から入力された動作タイミング設定
用のプログラムP1とアーキテクチャ情報とは命令レベ
ルシミュレータ220にも送られる。命令レベルシミュ
レータ220では送られてきた動作タイミング設定用の
プログラムP1の1命令を読み込むとともに、PC・C
C対応表のプログラムカウンタを入手して当該命令をデ
コードし、その情報を動作タイミング情報生成手段23
0に送る(S03)。
【0036】この情報の送られた動作タイミング情報生
成手段230ではPC・CC対応表の該当する1行を読
み込み、当該命令時点におけるクロックサイクル数を得
る(S04)。そして、当該命令と当該命令時点におけ
るクロックサイクル数、それ以前の命令とそのクロック
サイクル数などの情報から、当該命令時点における動作
タイミング情報を作成、更新する(S05)。上記ステ
ップS03からステップS05までの処理を動作タイミ
ング設定用のプログラムの全ての命令について繰り返し
行い(S06)、全ての命令について終了すると動作タ
イミング情報が生成される(S07)。
【0037】ここで、動作タイミング情報について図5
の例をもとに説明する。動作タイミング情報は先行する
命令と後続する命令の関係を表したものであり、図5で
は縦には先行する命令が、横には後続する命令が表され
ており、図中の数字はストールする段数の最小値を表し
ている。また、キャッシュミスやバス競合があった場合
にはリストを付加していく。図5では先行する命令がm
ult命令で後続する命令もmult命令である場合に
は段数が「1」のストールが発生することを示してい
る。また、先行する命令がlw命令で後続する命令がm
ult命令である場合にはキャッシュミスが発生し、2
段のストールが発生することを示している。
【0038】次に、この動作タイミング情報がPC・C
C対応表と命令レベルシミュレータからの情報とによっ
て、どのように作成されるかについて説明する。
【0039】図4(a)のPC・CC対応表と図4
(b)のプログラムを例にすると、まず図4(b)のプ
ログラムを参照すると、lw命令、mult命令の順で
実行されており、図4(a)のPC・CC対応表を参照
するとlw命令のプログラムカウンタの下3桁である
「134」とmult命令の下3桁である「138」と
の間にはとくにストールが発生していないことが分か
る。
【0040】そこで、動作タイミング情報生成手段23
0では、図5の動作タイミング情報に示すように、先行
する命令がlw命令、後続する命令がmult命令とな
る欄にストール段数として「0」を書き込むことにな
る。
【0041】次に、図4(b)のプログラムを参照する
と、mult命令の次にはaddi命令が実行されてお
り、図4(a)のPC・CC対応表を参照するとmul
t命令のプログラムカウンタの下3桁である「138」
とaddi命令の下3桁である「13C」との間にはク
ロックサイクル数が「101」の行において、1段のス
トールが発生していることが分かる。
【0042】そこで、動作タイミング情報生成手段23
0では、図5の動作タイミング情報に示すように、先行
する命令がmult命令、後続する命令がaddi命令
となる欄にストール段数として「1」を書き込む。ただ
し、ここで書き込んだストールの段数は最小値を表すも
のであり、その他にストールの原因が存在した場合には
ストールする段数は増えていく。
【0043】また、命令レベルシミュレータ220のキ
ャッシュテーブル225からキャッシュミスが発生した
という情報を受けた場合には、動作タイミング情報生成
手段230では、図5に示すように、その情報をリスト
として動作タイミング情報に付加する。このようにし
て、動作タイミング情報生成手段230では図5のよう
な動作タイミング情報が作成される。
【0044】以上説明したように、動作タイミング情報
にストールの有無、ストール段数を記入することによっ
て、データハザードによるストールを自動的にシミュレ
ーションすることができるようになる。
【0045】また、動作タイミング情報生成手段230
は図6に示すように、PC・CC対応表からの情報を得
て動作する各ステージのプログラムカウンタ231(F
ステージプログラムカウンタ、Dステージプログラムカ
ウンタ、Eステージプログラムカウンタ、Mステージプ
ログラムカウンタ、Wステージプログラムカウンタ)
と、命令バッファ232とを具備している。そして、命
令バッファ232では命令レベルシミュレータ220か
らの命令を入手して蓄えておき、とくに分岐が発生した
という情報(アドレスがジャンプしたか否か)を受けた
ときには図に示すように記録することができる。この記
録により後続する命令にストールが発生したときに、そ
の原因が分岐ハザードであるか否かを特定することがで
きる。
【0046】次に、以上説明したようなステップS07
までを実行して動作タイミング情報が生成されたところ
でシミュレーションしようとするプログラムP2を入力
手段100から入力する(S08)。入力されたプログ
ラムP2は命令レベルシミュレータ220に送られ、命
令レベルシミュレータ220では送られてきたシミュレ
ーションしようとするプログラムP2の1命令を読み込
むとともに、PC・CC対応表のプログラムカウンタを
入手して当該命令をデコードして(S09)実行する
(S10)。そして、当該命令が命令レベルシミュレー
タ220で実行されたという情報がステージ状態再現手
段240に送られると、ステージ状態再現手段240で
は動作タイミング情報を受けて、当該命令と当該命令時
点のクロックサイクル数、それ以前の命令とその命令時
点のクロックサイクル数等の情報により、当該命令時点
のステージ状態を再現して出力する(S11)。
【0047】シミュレーションしようとするプログラム
P2の全ての命令について、ステップS09からステッ
プS11までの処理を繰り返し行い(S12)、終了す
るとステージ状態が再現され(S13)、このステージ
状態を出力手段300から処理結果として出力すると
(S14)動作タイミングについてのシミュレーション
が終了することになる。
【0048】ここで、出力されるステージ状態は、図4
に示したPC・CC対応表のようにパイプラインの各ス
テージの状態を全て再現して、そのときのクロックサイ
クル数を対応させたものであるが、簡単に表す場合には
クロックサイクル数のみを出力してもよい。このクロッ
クサイクル数のみを出力する場合には、ステージ状態再
現手段240はサイクル数カウンタのように簡単な構成
にすることができる。
【0049】次に、命令レベルシミュレータ220がキ
ャッシュテーブル225を有していない場合について説
明する。
【0050】図1のシミュレーション装置では、命令レ
ベルシミュレータ220がキャッシュ・テーブル225
を有していたので、キャッシュミスが発生したか否かの
情報について、動作タイミング情報生成手段230は命
令レベルシミュレータ220から正確な情報を得ること
ができた。
【0051】しかし、シミュレーションする時間を短く
したい場合には、命令レベルシミュレータ220がキャ
ッシュ・テーブル225を有していると、各命令毎にキ
ャッシュテーブルを参照する時間がかかるためにシミュ
レーションするスピードが遅くなる場合があった。従っ
て、シミュレーションする時間を短くしたい場合には命
令レベルシミュレータ220がキャッシュテーブル22
5を有しないほうがよい場合がある。また、もともと命
令レベルシミュレータがキャッシュテーブルを有してい
ない場合もある。
【0052】このような場合には、命令レベルシミュレ
ータ220からキャッシュミスが発生したか否かの情報
を得ることができないので、動作タイミング情報に図7
に示すような命令キャッシュのミス率と図8に示すよう
なデータキャッシュのミス率に関する情報を含める必要
がある。
【0053】図7のグラフは分岐命令が発生したときの
アドレス・ジャンプの量と命令キャッシュのミス率との
関係を示したグラフである。従って、動作タイミング情
報生成手段230とステージ状態再現手段240が直前
の分岐命令に対するアドレスジャンプの量を保持してお
くことによって、図7のグラフを利用してアドレスジャ
ンプの量から命令キャッシュのミス率を求めることがで
きる。
【0054】また、図8のグラフはデータキャッシュへ
のアクセス数(及びアクセス範囲)とデータキャッシュ
のミス率との関係を示したグラフである。従って、動作
タイミング情報生成手段230とステージ状態再現手段
240がアクセス数及びアクセス範囲を保持しておくこ
とによって、図8のグラフを利用してアクセス数からデ
ータキャッシュのミス率を求めることができる。
【0055】そして、この命令キャッシュ、データキャ
ッシュのミス率とメモリのレイテンシとを掛け合わせる
と、キャッシュのミス率は確率(1以下)であるのでレ
イテンシ期待値を生成することができる。このレイテン
シ期待値を命令の実行の度に、クロックサイクル数に加
算していくことによって、キャッシュテーブルからのキ
ャッシュミスに関する情報がない場合でも動作タイミン
グのシミュレーションを行うことができるようになる。
【0056】従来、クロックサイクル数は、整数(例え
ば、図4では100、101など)だったので整数加算
されていたものであるが、それではこの場合キャッシュ
ミスの影響は無視されてしまう。そこで、この問題を回
避するためにキャッシュテーブルがない場合には、クロ
ックサイクル数を実数値(例えば,100.8など)で
表してレイテンシ期待値を実数で加算できるようにす
る。このように、クロックサイクル数に実数を用いるこ
とによって、データへのアクセスの度にデータキャッシ
ュのミスの影響がレイテンシ期待値というかたちで加算
され、命令レベルシミュレータ220がキャッシュテー
ブル225を有しない場合であっても正確なクロックサ
イクル数を得ることができる。
【0057】また、ここでは図7や図8のように、特定
のパラメタ(アドレスジャンプの量、アクセス数、アク
セス範囲等)の関数としてキャッシュのミス率を表した
が、キャッシュのミス率を簡単にその平均値(一定値)
で表してもよい。
【0058】次に、バス競合が生じているか否かをシミ
ュレーション装置自体が検知することができる場合につ
いて説明する。
【0059】図1のシミュレーション装置では、バス競
合がある場合の動作タイミング情報を得るためには図3
に示すような特別なプログラムを用意してバス競合があ
る場合のPC・CC対応表を作成しなければならなかっ
た。しかし、バス競合が生じているか否かをシミュレー
ション装置自体が検知することができるようにすれば、
その手間を省略することができる。
【0060】そこで、図9に示すようにデータ・キャッ
シュと命令キャッシュからのrefill要求信号をBIU
(Bus Interface Unit)を介してPC・CC対応表生成
手段210で検知して利用できるように構成する。PC
・CC対応表生成手段210はシミュレーションを行お
うとしている対象のプロセッサやそのプロセッサを含む
応用システム、あるいはHDLシミュレータによって構
成されているので、データキャッシュや命令キャッシュ
を含んでいる。そこで、このデータキャッシュと命令キ
ャッシュから直接命令を検知できるように構成したもの
である。
【0061】そして、PC・CC対応表生成手段210
では、検知したrefill要求信号の値をPC・CC対応表
に追加して動作タイミング情報生成手段230に送るの
で、動作タイミング情報生成手段230では、送られて
きたrefill要求信号の値によってバス競合の有無を正し
く認識して動作タイミング情報を生成することができ
る。さらに、その動作タイミング情報を受け取ったステ
ージ状態再現手段240でもバス競合の影響について考
慮されたステージ状態を出力することができる。
【0062】このように、シミュレーション装置自体が
PC・CC対応表生成手段210においてバス競合の有
無を直接検知できるようにしたことにより、特別なプロ
グラムを作る手間を省略できるようになった。
【0063】次に、処理結果として出力されたステージ
状態が正しいか否かを確認することのできるシミュレー
ション装置について説明する。
【0064】図10はステージ状態が正しいか否かを確
認することのできるシミュレーション装置の構成を示す
ブロック図である。
【0065】図10のシミュレーション装置では、PC
・CC対応表生成手段210で生成されたPC・CC対
応表のクロックサイクル数とステージ状態再現手段24
0で再現されたステージ状態のクロックサイクル数とを
比較する比較手段250をさらに具備している。
【0066】PC・CC対応表生成手段210は、シミ
ュレーションを行おうとしている対象のプロセッサやそ
のプロセッサを含む応用システム、あるいはHDLシミ
ュレータによって構成されているので、シミュレーショ
ンをしようとするプログラムP2を入力した場合には正
確なクロックサイクル数を得ることが期待できる。従っ
て、PC・CC対応表のクロックサイクル数とステージ
状態再現手段240で生成されたステージ状態のクロッ
クサイクル数とを比較することによって、ステージ状態
のクロックサイクル数が正しいか否かを確認することが
できる。
【0067】この図10のシミュレーション装置は、図
2のフローチャートに示すような図1のシミュレーショ
ン装置と同様の処理を行ってステージ状態を出力した後
に、出力されたステージ状態が正しいか否かを確認する
以下に示すような処理を行う。
【0068】まず、シミュレーションしようとするプロ
グラムP2を入力手段100から再び入力すると、PC
・CC対応表生成手段210で実行され、PC・CC対
応表を生成する。
【0069】次に、プログラムP2が命令レベルシミュ
レータ220で1命令ずつ実行されると、ステージ状態
再現手段240では、命令レベルシミュレータ220か
ら送られる情報とすでに生成されている動作タイミング
情報とを受けて、第1の実施形態と同様にステージ状態
を出力する。
【0070】このステージ状態再現手段240で出力さ
れたステージ状態とPC・CC対応表生成手段210で
生成されたPC・CC対応表とが比較手段250に送ら
れ、ステージ状態のクロック・サイクル数とPC・CC
対応表のクロックサイクル数とを比較する。この比較し
た結果、それぞれのクロックサイクル数が違っていた場
合にはその直前の命令列、すなわちステージ状態再現手
段240の命令バッファの内容をログ・ファイルとして
出力する。シミュレータの開発者は、その内容を解析し
クロック・サイクル数の誤差を修正するような追加プロ
グラムを作成し、入力手段100から入力する。この追
加プログラムは、ステージ状態再現手段240により呼
び出されて(ダイナミック・リンクがなされ)利用され
る。
【0071】また、さらに一致しない場合には、ステー
ジ状態のクロック・サイクル数の値をPC・CC対応表
のクロックサイクル数で置き換える。この置き換えによ
り、以後の比較がいたずらに失敗することを防ぐことが
できるので、シミュレーションをする者の解析作業が軽
減されることになる。
【0072】
【発明の効果】以上説明してきたように、本発明のシミ
ュレーション装置によれば、従来多くの時間と手間のか
かっていた命令セット・シミュレータにおけるシミュレ
ーションするプログラムの開発、特に動作タイミングの
シミュレーションを自動化することができるので、シミ
ュレーションするのに要する時間を大幅に短縮すること
ができる。さらに、従来はシミュレーションの対象とな
るプロセッサやHDL記述のみが存在し、動作タイミン
グに関する仕様が不明であるようなプロセッサに対して
は動作タイミングのシミュレーションが不可能であった
が、本発明のシミュレーション装置によれば可能にな
る。
【0073】また、命令レベルシミュレータがキャッシ
ュテーブルを有していない場合でも、キャッシュのミス
率を保持することにより、クロックサイクル数に実数を
用いてレイテンシ期待値というかたちで加算することが
できる。これによりキャッシュテーブルを有していない
場合でも正確なクロックサイクル数を得ることができる
と共にシミュレーションの処理を高速化でき、メモリ使
用量を軽減できる。
【0074】また、データキャッシュと命令キャッシュ
とからのRefill要求信号を検知することにより、
特別なプログラムを用意することなく、バス競合につい
てシミュレーション装置自体が認識できるので、特別な
プログラムを用意する手間を省くことができると共に、
ストール段数およびその原因の特定が容易になる。
【0075】また、PC・CC対応表生成手段で生成さ
れたPC・CC対応表のクロックサイクル数とステージ
状態再現手段で再現されたステージ状態のクロックサイ
クル数とを比較する比較手段を設けることによって、よ
り正確なクロックサイクル数を得ることができる。
【図面の簡単な説明】
【図1】本発明によるシミュレーション装置の一実施の
形態の構成を示すブロック図である。
【図2】本発明によるシミュレーション装置の動作を示
すフローチャートである。
【図3】動作タイミングを設定するための特別なプログ
ラムの例を示す図である。
【図4】PC・CC対応表の例を示す図である。
【図5】動作タイミング情報の例を示す図である。
【図6】動作タイミング情報生成手段210の構成を示
すブロック図である。
【図7】データキャッシュのミス率とアドレスジャンプ
の量との関係を示したグラフである。
【図8】命令キャッシュのミス率とアクセス数との関係
を示したグラフである。
【図9】Refill要求を検知する場合のPC・CC
対応表生成手段210内の構成を示したブロック図であ
る。
【図10】図1のシミュレーション装置に比較手段をさ
らに具備した場合について示したブロック図である。
【符号の説明】
100 入力手段 200 シミュレーション手段 210 PC・CC対応表生成手段 220 命令レベルシミュレータ 225 キャッシュテーブル 230 動作タイミング情報生成手段 231 プログラムカウンタ 232 命令バッファ 240 ステージ状態再現手段 250 比較手段 300 出力手段

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 動作タイミング設定用のプログラムとシ
    ミュレーションしようとするプログラムを入力する入力
    手段と、 この入力手段により入力された前記動作タイミング設定
    用のプログラムを実行して、クロックサイクル数とパイ
    プラインの各ステージのプログラムカウンタとの関係を
    表したプログラムカウンタ・クロックサイクル数対応表
    を生成するプログラムカウンタ・クロックサイクル数対
    応表生成手段と、 このプログラムカウンタ・クロックサイクル数対応表生
    成手段によって生成された前記プログラムカウンタ・ク
    ロックサイクル数対応表を参照して、前記動作タイミン
    グ設定用のプログラムと前記シミュレーションしようと
    するプログラムとを実行する命令レベルシミュレータ
    と、 この命令レベルシミュレータから出力される情報と前記
    プログラムカウンタ・クロックサイクル数対応表とを参
    照して、先行する命令と後続する命令との関係により発
    生するストールの段数を表した動作タイミング情報を生
    成する動作タイミング情報生成手段と、 この動作タイミング情報生成手段によって生成された前
    記動作タイミング情報と前記命令レベルシミュレータか
    らの情報とを参照して、各クロックサイクル数における
    ステージ状態を再現するステージ状態再現手段と、 このステージ状態再現手段によって再現された前記ステ
    ージ状態を出力する出力手段とを具備することを特徴と
    するシミュレーション装置。
  2. 【請求項2】 前記命令レベルシミュレータがキャッシ
    ュテーブルを有していない場合に、前記動作タイミング
    情報に命令キャッシュのミス率の情報とデータキャッシ
    ュのミス率の情報とを含めて、この命令キャッシュのミ
    ス率またはデータキャッシュのミス率とメモリのレイテ
    ンシとを掛け合わせてレイテンシ期待値を生成し、この
    レイテンシ期待値を前記クロックサイクル数に加算する
    ことを特徴とする請求項1に記載のシミュレーション装
    置。
  3. 【請求項3】 前記プログラムカウンタ・クロックサイ
    クル数対応表生成手段において、データキャッシュまた
    は命令キャッシュからのRefill要求信号の値を前
    記プログラムカウンタ・クロックサイクル数対応表に追
    加することを特徴とする請求項1に記載のシミュレーシ
    ョン装置。
  4. 【請求項4】 前記ステージ状態再現手段から出力され
    るステージ状態のクロックサイクル数と前記プログラム
    カウンタ・クロックサイクル数対応表のクロックサイク
    ル数とを比較する比較手段を具備することを特徴とする
    請求項1に記載のシミュレーション装置。
JP9315496A 1997-11-17 1997-11-17 シミュレーション装置 Pending JPH11149489A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9315496A JPH11149489A (ja) 1997-11-17 1997-11-17 シミュレーション装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9315496A JPH11149489A (ja) 1997-11-17 1997-11-17 シミュレーション装置

Publications (1)

Publication Number Publication Date
JPH11149489A true JPH11149489A (ja) 1999-06-02

Family

ID=18066076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9315496A Pending JPH11149489A (ja) 1997-11-17 1997-11-17 シミュレーション装置

Country Status (1)

Country Link
JP (1) JPH11149489A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002086884A3 (en) * 2001-04-18 2007-07-19 Sun Microsystems Inc Method and apparatus for defining signal timing for an integrated circuit device
JP2010086047A (ja) * 2008-09-29 2010-04-15 Nec Electronics Corp シミュレーション装置及びシミュレーション方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002086884A3 (en) * 2001-04-18 2007-07-19 Sun Microsystems Inc Method and apparatus for defining signal timing for an integrated circuit device
JP2010086047A (ja) * 2008-09-29 2010-04-15 Nec Electronics Corp シミュレーション装置及びシミュレーション方法

Similar Documents

Publication Publication Date Title
US6647513B1 (en) Coverage-based test generation for microprocessor verification
US8560985B1 (en) Configuration-based merging of coverage data results for functional verification of integrated circuits
US6212493B1 (en) Profile directed simulation used to target time-critical crossproducts during random vector testing
US9600398B2 (en) Method and apparatus for debugging HDL design code and test program code
JP3822044B2 (ja) 設計検証システム、設計検証方法および設計検証プログラムを格納したコンピュータ読取り可能な記録媒体
US20050204345A1 (en) Method and apparatus for monitoring computer software
CN117556749A (zh) 芯片验证方法、测试用例的复用方法及装置
US10380313B1 (en) Implementation and evaluation of designs for heterogeneous computing platforms with hardware acceleration
US8700380B2 (en) Method for generating performance evaluation model
CN120704982A (zh) 一种监视方法、装置、验证设备、介质及程序
CN119167841A (zh) 仿真逻辑系统设计的方法、电子设备和存储介质
JP2005108007A (ja) Lsi設計検証装置及びlsi設計検証方法
JPH11149489A (ja) シミュレーション装置
US10816600B1 (en) Protocol analysis and visualization during simulation
US7502966B2 (en) Testcase generation via a pool of parameter files
US9507898B2 (en) Identification of mistimed forcing of values in design simulation
CN116450430A (zh) 处理器的验证方法、验证系统以及存储介质
CN114780409A (zh) 基于程序运行进程的断点设置方法、电子设备和存储介质
JP5034867B2 (ja) ソフトウェア検証支援プログラム、該プログラムを記録した記録媒体、ソフトウェア検証支援装置、およびソフトウェア検証支援方法
JP3647287B2 (ja) マルチプロセッサ・システムの性能評価方法および装置
JP2004145670A (ja) テストベンチ生成方法、テストベンチ生成装置、及びコンピュータプログラム
US12271669B1 (en) Executing instruction sequences generated from software interactions as part of formal verification of a design under test
CN117454835B (zh) 保存和读取波形数据的方法、电子设备以及存储介质
JPH07253909A (ja) マイクロプログラム検証方法
JPH10221410A (ja) Lsiの自動論理検証方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040907

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041130