JPH10187484A - シミュレータ - Google Patents

シミュレータ

Info

Publication number
JPH10187484A
JPH10187484A JP8356088A JP35608896A JPH10187484A JP H10187484 A JPH10187484 A JP H10187484A JP 8356088 A JP8356088 A JP 8356088A JP 35608896 A JP35608896 A JP 35608896A JP H10187484 A JPH10187484 A JP H10187484A
Authority
JP
Japan
Prior art keywords
model
address
time
access
hardware
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
JP8356088A
Other languages
English (en)
Inventor
Mikio Shiyou
幹夫 尚
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Data 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 Oki Data Corp filed Critical Oki Data Corp
Priority to JP8356088A priority Critical patent/JPH10187484A/ja
Publication of JPH10187484A publication Critical patent/JPH10187484A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【解決手段】 コンピュータ上でモデル化したCPUモ
デル1は、外部アクセスを行う場合、アドレスデコーダ
4を介して、デバイスモデル部5をアクセスする。各モ
デル6〜8は、ファームウェア上のアドレスを表示する
属性情報を持ち、アドレスデコーダ4は、その情報に基
づいてアクセス対象のモデルを選択する。計数部3は、
デバイスモデル部5から受け入れたアクセスサイクルに
より動作時間を計算し、デバイスモデル部5はリード/
ライト命令を実行して、その戻り値を返す。 【効果】 プロファイラ型のシミュレータにアドレスデ
コーダ4を介してデバイスモデル部5を接続し、任意の
アドレス空間上でハードウェアモデルをアクセスし、確
度の高いシミュレーションができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プロセッサがプロ
グラムを実行してハードウェアを制御するような装置の
動作をコンピュータ上で検証するシミュレータに関す
る。
【0002】
【従来の技術】プリンタやファクシミリ装置等の多くの
機器は、いずれもプロセッサによりその動作を制御され
る。プロセッサは、これらの機器に組み込まれた各種の
機構をファームウェアプログラムに従って制御する。こ
のような装置を制御するプログラムの開発段階では、そ
のプログラムが装置を正常に制御するかどうかを検証す
る。そしてその動作最適化のために、繰り返しシミュレ
ーションが行われる。こうしたシミュレーションに使用
されるシミュレータは、コンピュータ上で装置のプロセ
ッサやハードウェアをモデル化し、実際の装置が動作す
る状態をコンピュータ上で作り出しシミュレートする。
【0003】トレース型のシミュレータは、システムク
ロックを1つずつカウントし、モデル化したファイルの
状態を動作タイミングや動作時間あるいは動作中に使用
したデータを含めてログファイルに記録する。また、プ
ロファイラ型のシミュレータは、CPU(中央演算ユニ
ット)の命令をエミュレートして、各種の命令が発せら
れたとき、その命令を処理するために必要な時間を演算
処理により求めたり、ライト命令が何回、キャッシュヒ
ットが何回、メモリやI/Oの読み出しが何回といった
統計的データをログファイルに出力する。
【0004】
【発明が解決しようとする課題】ところで、上記のよう
な従来のシミュレータには、次のような解決すべき課題
があった。装置の動作を1クロックずつトレースしてい
くようなトレース型のシミュレータは、正確に装置全体
の動作を解析できるという利点を有する一方、全てのシ
ミュレーションを終了するためには非常に多くの時間を
必要とする。従って、ファームウェアプログラムを改良
しながら繰り返しシミュレーションをする場合に、開発
時間が長くなるという問題があった。一方、プロファイ
ラ型のシミュレータでは、メモリや入出力装置にアクセ
スを行う際のアクセス時間を積算することができるが、
実際のアクセス動作をシミュレーションしてはいない。
従って、ハードウェアモデルと組み合わせた場合の動作
の検証には不十分であった。
【0005】また、ファームウェアプログラムは、利用
される装置の設計に基づいて、単なるユーザーエリアの
アクセスのみならず、カーネルエリア等、通常のコンピ
ュータのアプリケーションプログラムがアクセスする領
域外の領域についてもアクセスを行う。従って、シミュ
レータの記憶領域を外れた不正なアドレスに対するアク
セスについてはシミュレーションを行うことができず、
プログラム全体について十分なデバッグや性能分析を行
うことが難しいという問題があった。
【0006】
【課題を解決するための手段】本発明は以上の点を解決
するため次の構成を採用する。 〈構成1〉プロセッサが所定のプログラムを実行して任
意のハードウェアを制御する装置の動作をシミュレーシ
ョンするために、コンピュータ上で、上記プロセッサと
ハードウェアとをモデル化したものにおいて、各ハード
ウェアモデルには、それぞれ自己をアクセスする際のア
ドレスを含む属性情報と自己をアクセスするための手続
き情報とを記述し、プロセッサモデルがハードウェアモ
デルをアクセスするとき、そのアドレスを受け入れて、
各ハードウェアモデルの属性情報を参照して、該当する
アドレスを持つハードウェアモデルを選択するアドレス
デコーダと、選択されたハードウェアモデルの手続き情
報により命令の実行時間を計数する計数部とを備えたこ
とを特徴とするシミュレータ。
【0007】〈構成2〉構成1において、ハードウェア
モデルは、属性情報に、そのハードウェアアクセス処理
に必要な時間を計数するためのアクセスサイクルに関す
る情報を含むことを特徴とするシミュレータ。
【0008】〈構成3〉構成1において、ハードウェア
モデルは、手続き情報に、シミュレータのメモリ上でア
クセス処理を実行するサブルーチンを含めたことを特徴
とするシミュレータ。
【0009】〈構成4〉構成1において、プログラムの
シミュレーションを実行した結果に基づいて、1命令を
実行するために必要な時間の平均値を求めて記憶する時
間記憶部を設け、再度シミュレーションを行う場合に、
計数部は、上記時間記憶部に記憶された1命令を実行す
るために必要な時間の平均値と実行すべき命令数との積
から、概略実行時間を求めることを特徴とするシミュレ
ータ。
【0010】
【発明の実施の形態】以下、本発明の実施の形態を具体
例を用いて説明する。 〈具体例1〉図1は、具体例1のシミュレータのブロッ
ク図である。このシミュレータは、CPUモデル1がシ
ミュレーションを行い、その結果をログファイル2に記
録する構成のものである。このシミュレータはプロファ
イラ型のシミュレータで、計数部3がプログラムの各命
令に対する動作時間を計算する構成となっている。この
計数部3には、アドレスデコーダ4を介してデバイスモ
デル部5が接続されている。デバイスモデル部5には、
ROM(リード・オンリ・メモリ)モデル6や、DRA
M(ダイナミック・ランダム・アクセス・メモリ)モデ
ル7や、I/O(入出力装置)モデル8等が設けられて
いる。
【0011】このようなシミュレータによって、例えば
ファクシミリやプリンタ等の制御用ファームウェアプロ
グラムの検証を行う。CPUモデル1は、メモリやプリ
ンタ等に設けられたプロセッサをモデル化したものであ
る。デバイスモデル部5は、プリンタ各部の機構をモデ
ル化したものである。プリンタの機構としてはメモリや
搬送モータやスイッチ等がある。
【0012】コンピュータ上でモデル化されたプロセッ
サモデルやハードウェアモデルはいずれも、コンピュー
タのメモリ上に割りつけられたデータやサブルーチンで
ある。ハードウェアモデルがメモリとすれば、例えばラ
イトアクセスの場合には、アクセスアドレスとデータを
供給すると、そのデータを対応する場所に記憶する。図
1に示したCPUモデル1は、このようにプロセッサの
動作を実行する部分である。計数部3は、CPUモデル
1が実行する各命令の実行時間を計数し、あるいはアド
レスデコーダ4を介してデバイスモデル部5をアクセス
させてその実行時間を計数し、ログファイル2に格納す
る処理を行う部分である。アドレスデコーダ4は、CP
Uモデル1が外部アクセス要求を出したとき、そのアク
セスアドレスと、各モデルのスタートアドレスやアクセ
ス幅を比較して、デバイスモデル部5のどのモデルに対
するアクセスかを判定し、該当するモデルのアクセスル
ーチンを呼び出す処理を行う部分である。
【0013】即ち、この発明の特徴は、プロセッサモデ
ルが実行中のプログラムに従ってアクセスするアドレス
は、シミュレータのハードウェアモデルが定義するメモ
リやレジスタのアドレスと全く異なっていてよい。
【0014】図2には、アドレスデコーダの機能説明図
を示す。上記のようにアドレスデコーダ4は、シミュレ
ートするプログラムのアクセスするべきアドレス9をC
PUモデル1から受け入れると、各モデルの属性情報を
参照する。そして、その属性情報とプログラムに従って
アクセスするアドレスとを比較して、どのモデルをアク
セスするものかを判断する。この判断の結果該当するハ
ードウェアモデルに対して、アドレスを含む引き数が与
えられる。アクセスアドレスからハードウェアモデルの
該当するデータ格納アドレスへのアドレス変換処理自体
は、アドレスデコーダかハードウェアモデルのいずれか
で行えばよい。
【0015】図3に、デバイスモデル部の例説明図を示
す。各デバイスモデル部は、この図に示すような属性情
報と手続き情報とを持つ。属性情報には、スタートアド
レスとアクセスサイズ、アクセスサイクル及びバッファ
ポインタが含まれる。また、手続き情報としては、読み
出し手続きと書き込み手続きが含まれる。スタートアド
レスやアクセスサイズは、実際のファームウェア上で割
り付けられるアドレスの値を示す。従って、カーネル空
間等へのアクセスがあった場合でも、アドレスデコーダ
4は、この属性情報を参照して、どのデバイスモデル部
に対するアクセスかを判断できる。
【0016】入力したアドレスが、スタートアドレス以
上で、スタートアドレスとアクセスサイズとを加算した
値以下の値であれば、そのモデルをアクセスするアドレ
スと判断できる。そのアドレスはアドレスデコーダある
いはデバイスモデル部側で対応するアドレスに変換され
てアクセス処理が実行される。バッファポインタは、デ
バイスモデル部上のデータを書き込むべきアドレスを示
すポインタである。また、アクセスサイクルは、そのデ
バイスモデル部をアクセスする際に必要な時間を示す。
【0017】ハードウェアモデルは手続き情報に従っ
て、データのリードライト等の手続きをして、所定の戻
り値を計数部に返す。手続き情報は、該当するアドレス
にデータを書き込んだり、該当するアドレスから戻り値
を求める処理を実行するサブルーチン等により構成され
る。
【0018】図4には、以上のシミュレータのアクセス
サイクル読み出し動作フローチャートを示す。上記のシ
ミュレータは、CPUモデルが外部アクセス要求を行っ
た場合に、そのアクセスに必要な時間を求め、更にデバ
イスモデル部に対しデータの書き込みや読み出し等の処
理を実行させる。図4に示したものは、その際の実行時
間を求めるためのアクセスサイクル読み出し動作を説明
する図である。
【0019】まず、ステップS1において、CPUモデ
ル1がアクセス要求を行うと、アドレスデコーダ4は、
ステップS2において、最初のモデルを選択する。例え
ば、図1に示した例では、ROMモデル6、DRAMモ
デル7及びI/Oモデル8の3種類のデバイスモデル部
が用意されている。アドレスデコーダ4は、これらのモ
デルのうち先頭から順番にその属性情報を参照し、モデ
ル選択処理を行う。即ち、図4のステップS3におい
て、最初に選択したモデルのスタートアドレスとアクセ
スサイズを取り出す。そして、ステップS4において、
現在のモデルに含まれるかどうかを判断する。
【0020】この判断は、図2を用いて説明した通りの
アドレス比較による。アドレスが所定の範囲ならば、選
択したモデルが該当するものと判断し、ステップS5で
更に別の属性データを読む。即ち、その属性データの中
からアクセスサイクルを表示する部分を取り出し、戻り
値Xに書き込む。そして、ステップS6において、CP
Uモデル1にこの戻り値Xを返し、処理を終了する。な
お、ステップS4において、アドレスが所定の範囲に無
い場合にはステップS7に進み、次のモデルを選択す
る。
【0021】もし、次のモデルがもう無いと判断される
と、ステップS8からステップS9に移り、アドレスエ
ラー処理が行われる。一方、次のモデルが存在する場合
には、再びステップS3に戻り、そのモデルのスタート
アドレスとアクセスサイズを取り出して、ステップS4
に進む。こうして、該当するデバイスモデル部から実行
時間を計算するためのアクセスサイクルを読み出し、計
数部3に渡す。計数部3は、これにより実行時間計算を
行う。実行時間は、アクセスサイクル×1クロック分の
時間で計算できる。
【0022】次に、デバイスモデル部5の処理を説明す
る。図5は、ライト命令処理動作フローチャートであ
る。ライト命令処理を行う場合には、図4に示したアク
セスサイクルの読み出しと同様にして、アクセス要求や
モデルの選択処理が実行される。ステップS1,S2,
S3,S4及びS10,S11,S12の処理は、図4
に示したものと全く同様である。
【0023】ここで、該当するモデルに対する命令がラ
イト命令かどうかが判断される(ステップS5)。ライ
ト命令の場合は、該当するモデルの手続き情報からライ
ト処理ルーチンWrite()が呼び出される(ステッ
プS6)。また、それ以外の場合にはリード命令であっ
て、該当するデバイスモデル部のリード処理ルーチンR
ead()が呼び出される(ステップS8)。これらの
処理の具体的な内容を図6及び図7を用いて説明する。
既に説明したように、デバイスモデル部の実体はシミュ
レータのメモリ上に形成されたデータやサブルーチンか
ら構成される。ライト処理やリード処理サブルーチン
は、例えばC言語により組み立てられる。
【0024】図6は、入出力装置のライト命令手続きの
説明図である。図に示す最初の4行は、入出力装置に設
定されたioreg(入出力レジスタ)のデータ型を定
義する部分である。書き込みデータはValue、処理
時刻はChange−timeと定義される。次の3行
は、入出力レジスタの名称をA,B,Cと定義してい
る。次の1行では、戻り値を返すタイミング制御のため
のデータ転送時間を定義する。こうして、データの書き
込み処理を宣言し、図のSwitchと記述された部分
で、ケース毎にレジスタA,BあるいはCを選択して、
データ書き込み処理を実行する。また、このようにデー
タが変更された時間をChange−timeとして記
録しておく。また、データ処理時刻も記憶しておく。デ
ータ処理時刻は、入出力装置アクセス動作の検証等に利
用される。なお、一般に書き込み処理は戻り値がないの
で、以下の説明では戻り値のない場合について説明をす
る。
【0025】図7には、メモリの読み出し手続きの説明
図を示す。これも同様にC言語で作成されたサブルーチ
ンで、読み出し手続きの場合には、予め図の注釈に示し
たように、アドレスのオフセット換算が行われる。即
ち、ここでアドレス変換を行っている。そして、該当す
るアドレスを指定し、そのポインタで示したローカルア
ドレスにあるデータを戻り値として返す。なお、図6の
Write()でアドレス変換に相当する処理がなかっ
たのは、I/Oモデルのためにレジスタが特定されてい
るためである。メモリモデルの場合には、アドレス変換
処理が含められる。
【0026】再び図5に戻って、ライト命令とリード命
令の処理に対応する戻り値の説明を行う。図5のステッ
プS6でライト命令が実行されると、ライト命令自身に
は戻り値が無いため、ステップS7において戻り値を
“0”として計数部に返す。また、ステップS8でリー
ド命令が実行されると、読み出されたデータがXに格納
され、ステップS9において戻り値をXとし、計数部に
その値を返す。
【0027】図8には、アクセスサイクル取り出しシー
ケンスチャートを示す。図8のCPUモデル1が、ステ
ップS1において外部アクセス要求を行うと、計数部3
がこれを受けて、CPUモデル1から受け入れたアドレ
スを引数とし(ステップS2)、アドレスデコーダ4の
サブルーチンを呼び出す。アドレスデコーダ4のサブル
ーチンは、デバイスモデル部5の選択処理を行う。1個
のモデルをステップS3で選択し、S4でその属性デー
タからスタートアドレスとアクセスサイズを受け入れる
と、ステップS5でアドレスデコーダ4が判定処理を行
う。
【0028】この処理は、該当するモデルを選択するま
で繰り返されるが、選択が終了するとステップS6に進
み、決定したデバイスモデル部5の属性データ読み出し
が行われる。そして、ステップS7,S8において、デ
バイスモデル部5からアクセスサイクルがアドレスデコ
ーダ4を通じて計数部3に送られる。計数部3は、ステ
ップS9で動作時間を計算してログファイルへの書き込
みを行う。
【0029】図9には、ライト命令処理の動作シーケン
スチャートを示す。CPUモデル1が計数部3に対しラ
イト命令を出力すると(ステップS1)、計数部3はア
ドレスデコーダ4に対し、アドレスと書き込みデータと
サイクルタイムから計算された処理時刻を引数として処
理を依頼する(ステップS2)。アドレスデコーダ4
は、図8と同様にデバイスモデル部5の選択処理を行う
(ステップS3,ステップS4,ステップS5)。デバ
イスモデル部が選択されると、アドレスデコーダ4から
引数と、例えば書き込み動作の場合、書き込み手続きの
サブルーチンWrite()が呼び出される(ステップ
S6)。
【0030】この引数は、計数部3からアドレスデータ
4が受け入れたアドレスと、書き込みデータと、処理時
刻である。デバイスモデル部5はデータと処理時刻とを
該当する領域に書き込み(ステップS7)、戻り値を
“0”としてステップS8でアドレスデコーダ4に返
す。その結果、計数部3にこの戻り値が返されてライト
命令処理が終了する。ステップS10で、CPUモデル
1はライト命令の終了通知を受ける。
【0031】図5には、具体的なシミュレーション時間
の説明図を示す。例えば、CPUモデルからリード命令
とライト命令等が出力された場合のシミュレーションの
結果をこの図を用いて説明する。まず、この図の横軸は
シミュレーション時間を示し、下側の軸にnS(ナノ
秒)単位で時刻が表示されている。なお、この場合、C
PUモデルによる命令は、常にキャッシュヒットとし、
データリードには120nS、データライトには30n
Sかかるものとする。更に、CPUモデルには1クロッ
クでアクセスできるライトバッファが1つ設けられてい
るものとする。また、1命令に費やす時間は10nSと
する。
【0032】CPUモデルが動作を開始すると、図示し
ないプログラムカウンタが“1”ずつカウントアップ
し、命令が順に呼び出される。まず、リード命令をエミ
ュレートすると、計数部3は前回のアクセスタイプと今
回のアクセスまでの命令数を元にバスの状態を計算す
る。最初はシミュレーションが始まったばかりで、前回
のアクセスタイプはなく、命令数もない。既に説明した
ように、計数部がそのリード命令に従ってバスを専有す
る時間を計算する。計数部がアドレスデコーダを介して
該当するモデルのアクセスサイクルを読み出すと、これ
によってバス専有時間が計算される。メモリリードサイ
クルの場合、120nSという時間計算が行われる。バ
スはこの間専有される。
【0033】次に、メモリから読み出された値を取り出
す。この値はCPUモデルに返される。CPUモデルは
120nS経過するまでウエイト状態となっている。読
み出された値を元にCPUが所定の処理を実行する。そ
の命令数を10とする。1命令が10nSだから100
nSの時間だけ読み出された命令に対する処理が実行さ
れる。今度はそのデータをデバイスモデル部に書き込む
ためのライト命令が発生したとする。この場合、再び計
数部が動作する。ライトサイクルのサイクル数が計算さ
れて、220nSの時点から30nSの時間だけ書き込
み処理が行われる。この間、再びバスが専有される。即
ち、220nSから250nSまでの間バスが専有され
る。その後、分岐命令が出力されるが、分岐命令発生ま
でには50nSかかる。従って、メモリライトサイクル
の終了した250nS〜270nSまでバスが空き時間
となる。このような計算を繰り返すことによってプログ
ラムの実行時間が計算され、ログファイルに記録され
る。
【0034】〈具体例1の効果〉以上のように、アドレ
スデコーダを介してデバイスモデル部をCPUモデルと
接続することにより、シミュレータのメモリ上に自由に
ハードウェアモデルを割り付けて、ファームウェアのア
ドレスをそのまま使用してシミュレーションができる。
即ち、ファームウェアがユーザースペースだけでなくカ
ーネルスペースや入出力装置のレジスタを直接アクセス
するような場合でも、そのままシミュレーションができ
る。また、このアドレスデコーダにより、実行する命令
の種類に応じて設定された実行時間を積算してシミュレ
ーションを行うプロファイラ型のシミュレータでも、ハ
ードウェアモデルを使用した精密なシミュレーションが
可能になる。従って、プロファイラ型のシミュレータに
よって、ハードウェアモデルに対するアクセスが可能に
なり、トレース型シミュレータの確度と汎用性を持ち、
プロファイラ型の高速性を併せ持つシミュレータとする
ことができる。
【0035】〈具体例2〉図11は、具体例2のシミュ
レータのブロック図である。このシミュレータは具体例
1の装置に加えて、時間計算部11と、CPI値メモリ
12とを備えている。こうして、CPUモデル1が命令
を実行する場合に、時間計算部11が一旦その命令処理
のための時間計算を行ってから計数部3にその結果を渡
す構成となっている。なお、CPUモデル1がデバイス
モデル部5に対しアクセスを行う場合には、その命令に
含まれるアドレス等がアドレスデコーダ4に送り込まれ
て処理される構成となっている。
【0036】この具体例では、具体例1と同様に、プロ
ファイラ型のシミュレータであっても、デバイスモデル
部5を接続してデータのリードライトを可能にしてい
る。一方、図10を用いて説明したように、具体例1で
は、例えばリード命令、ライト命令、その他各種の命令
を実行する際には、その都度実行サイクル数に応じた実
行時間の計算を行っている。即ち、実行時間計算のため
にデバイスモデル部の属性情報を読み出し、図4で説明
したような演算処理を行っている。しかしながら、一度
詳細なシミュレーションを終了したプログラムの一部を
手直ししながら再度シミュレーションを繰り返すことが
ある。こういった場合、処理時間を正確に求めることよ
りも、手直しによってデータに与える影響や動作の概略
を早く知ることが要求される。
【0037】そこで、この具体例では、全ての命令処理
に要する時間を一律に設定し、その値をCPI値メモリ
12に格納しておく。具体的には、プログラムのシミュ
レーションを行い、その合計の処理時間を、実行した命
令の数で割って、1命令当りの実行時間の平均値を求め
る。この値をCPI値メモリ12に格納する。従って、
CPUモデル1が命令を読み出すと、その都度CPI値
メモリ12に格納された1命令実行のための時間を自動
的に累積する。デバイスモデル部5に対するアクセス等
の処理は具体例1と同様に実行する。このようなシミュ
レーションによって、デバイスモデル部5のアクセスを
可能にしつつ、シミュレーションの高速化を図ることが
できる。
【0038】図12には、具体例2の動作フローチャー
トを示す。これを図11を参照しながら説明する。ま
ず、ステップS1において、CPUモデル1がプログラ
ムから命令を1命令取り出す。次に、ステップS2にお
いて、計数部3はその命令数をカウントし、ログファイ
ル2に書き込むための総命令数に相当するデータを更新
する。次に、ステップS3において、その1命令を実行
するための動作時間CPI値をCPI値メモリ12から
読み出して、これまでの動作時間に累積する。次のステ
ップS4では、その命令を解析する。これによって、そ
の命令がCPUのエミュレーションで処理される命令か
デバイスモデル部に対する外部アクセスを要求する命令
かを判断する。
【0039】ステップS5で外部アクセスかどうかを判
断し、外部アクセスでなければ再びステップS1に戻
り、新たな命令の読み出しを行う。外部アクセスであれ
ばステップS6に進み、データのリードライト処理を行
う。このデータのリードライト処理は、既に図5を用い
て説明した具体例1の動作と全く同様である。この処理
が終了すると、ステップS7において、全ての命令の読
み出しが終了したかどうか、即ち次の命令があるかどう
かの判断を行う。次の命令があれば、再びステップS1
に戻り、シミュレーションを続ける。命令が全て実行さ
れればこの処理を抜ける。なお、全て命令を実行した
後、計数部3はそのプログラムを処理するために実行し
た命令数や動作時間、その他のデータをログファイル2
に書き込む。
【0040】〈具体例2の効果〉以上の具体例によれ
ば、一旦シミュレーションの対象となるプログラムにつ
いて詳細なシミュレーションを行い、1命令を処理する
ために必要な時間を平均値で求めておけば、この値を利
用して、一律に自動的に動作時間の計算を行うことがで
きる。その結果、動作時間を計算するための処理を短縮
でき、シミュレーションの速度を高速化できる。例え
ば、外部アクセスの際に、アクセスサイクルの情報を受
け入れて命令処理時間を計算するのに、シミュレーショ
ン全体の3分の2程度の時間を費やす。この具体例2に
よれば、この処理を省略できるから、シミュレーション
時間を具体例1の場合に比べて3分の1程度に短縮し高
速化することができる。
【図面の簡単な説明】
【図1】具体例1のシミュレータのブロック図である。
【図2】アドレスデコーダの機能説明図である。
【図3】デバイスモデル部の例説明図である。
【図4】アクセスサイクル読み出し動作フローチャート
である。
【図5】ライト命令処理動作フローチャートである。
【図6】入出力装置の書き込み手続きの説明図である。
【図7】メモリの読み出し手続きの説明図である。
【図8】アクセスサイクル取り出し動作シーケンスチャ
ートである。
【図9】ライト命令動作シーケンスチャートである。
【図10】シミュレーション時間の説明図である。
【図11】具体例2のシミュレータのブロック図であ
る。
【図12】具体例2の動作フローチャートである。
【符号の説明】
1 CPUモデル 2 ログファイル 3 計数部 4 アドレスデコーダ 5 デバイスモデル部 6 ROMモデル 7 DRAMモデル 8 I/Oモデル

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサが所定のプログラムを実行し
    て任意のハードウェアを制御する装置の動作をシミュレ
    ーションするために、コンピュータ上で、前記プロセッ
    サとハードウェアとをモデル化したものにおいて、 各ハードウェアモデルには、それぞれ自己をアクセスす
    る際のアドレスを含む属性情報と自己をアクセスするた
    めの手続き情報とを記述し、 プロセッサモデルがハードウェアモデルをアクセスする
    とき、そのアドレスを受け入れて、各ハードウェアモデ
    ルの属性情報を参照して、該当するアドレスを持つハー
    ドウェアモデルを選択するアドレスデコーダと、 選択されたハードウェアモデルの手続き情報により命令
    の実行時間を計数する計数部とを備えたことを特徴とす
    るシミュレータ。
  2. 【請求項2】 請求項1において、 ハードウェアモデルは、属性情報に、そのハードウェア
    アクセス処理に必要な時間を計数するためのアクセスサ
    イクルに関する情報を含むことを特徴とするシミュレー
    タ。
  3. 【請求項3】 請求項1において、 ハードウェアモデルは、手続き情報に、シミュレータの
    メモリ上でアクセス処理を実行するサブルーチンを含め
    たことを特徴とするシミュレータ。
  4. 【請求項4】 請求項1において、 プログラムのシミュレーションを実行した結果に基づい
    て、1命令を実行するために必要な時間の平均値を求め
    て記憶する時間記憶部を設け、 再度シミュレーションを行う場合に、計数部は、 前記時間記憶部に記憶された1命令を実行するために必
    要な時間の平均値と実行すべき命令数との積から、概略
    実行時間を求めることを特徴とするシミュレータ。
JP8356088A 1996-12-25 1996-12-25 シミュレータ Pending JPH10187484A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8356088A JPH10187484A (ja) 1996-12-25 1996-12-25 シミュレータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8356088A JPH10187484A (ja) 1996-12-25 1996-12-25 シミュレータ

Publications (1)

Publication Number Publication Date
JPH10187484A true JPH10187484A (ja) 1998-07-21

Family

ID=18447272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8356088A Pending JPH10187484A (ja) 1996-12-25 1996-12-25 シミュレータ

Country Status (1)

Country Link
JP (1) JPH10187484A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813598B1 (en) 2000-02-04 2004-11-02 Renesas Technology Corp. Logic simulation method and logic simulation apparatus
JP2009015867A (ja) * 1999-02-05 2009-01-22 Tensilica Inc 構成可能なプロセッサを設計するための自動プロセッサ生成システム及び生成方法
US8006204B2 (en) 1999-02-05 2011-08-23 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
JP2022190627A (ja) * 2021-06-14 2022-12-26 東芝情報システム株式会社 メモリ性能測定シミュレーション装置及びメモリ性能測定シミュレーション用プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009015867A (ja) * 1999-02-05 2009-01-22 Tensilica Inc 構成可能なプロセッサを設計するための自動プロセッサ生成システム及び生成方法
US8006204B2 (en) 1999-02-05 2011-08-23 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US8875068B2 (en) 1999-02-05 2014-10-28 Cadence Design Systems, Inc. System and method of customizing an existing processor design having an existing processor instruction set architecture with instruction extensions
US8924898B2 (en) 1999-02-05 2014-12-30 Cadence Design Systems, Inc. System and method of designing instruction extensions to supplement an existing processor instruction set architecture
US6813598B1 (en) 2000-02-04 2004-11-02 Renesas Technology Corp. Logic simulation method and logic simulation apparatus
JP2022190627A (ja) * 2021-06-14 2022-12-26 東芝情報システム株式会社 メモリ性能測定シミュレーション装置及びメモリ性能測定シミュレーション用プログラム

Similar Documents

Publication Publication Date Title
US6052524A (en) System and method for simulation of integrated hardware and software components
Rosenfeld et al. DRAMSim2: A cycle accurate memory system simulator
US8725485B2 (en) Simulation method and simulation apparatus
JP3936737B2 (ja) 設計確認用疑似ランダム命令を生成するためのシステム、及びその方法
JP4564110B2 (ja) 二重プロセッサ回路の動作をシミュレーションするためのコンピュータ実行方法及び信号プロセッサシミュレータ
US6571204B1 (en) Bus modeling language generator
JP3608915B2 (ja) マルチプロセッシングシステムの性能評価方法および装置並びにマルチプロセッシングシステムの性能評価プログラムを格納した記憶媒体
US6212493B1 (en) Profile directed simulation used to target time-critical crossproducts during random vector testing
US20060136190A1 (en) Method of evaluating system performance
Lee et al. Timed compiled-code simulation of embedded software for performance analysis of SOC design
JP2004030638A (ja) マイクロプロセッサキャッシュ設計初期化
Razouk The use of Petri Nets for modeling pipelined processors
JPH10187484A (ja) シミュレータ
US20050209839A1 (en) Data processing apparatus simulation
JP5454349B2 (ja) 性能推定装置
US20070038431A1 (en) Data processing apparatus simulation
JPH1166037A (ja) シミュレータ
JP2005353020A (ja) コンピュータプログラムのシミュレーション方式
JP3214459B2 (ja) シミュレーション方法及び装置
JPH1173329A (ja) ソフトウエア開発支援システム
JP3647287B2 (ja) マルチプロセッサ・システムの性能評価方法および装置
JPH07253909A (ja) マイクロプログラム検証方法
JPH10221410A (ja) Lsiの自動論理検証方式
JPH11149489A (ja) シミュレーション装置
Klein et al. Performance estimation of mpeg4 algorithms on arm based designs using co-verification