JPH10154084A - 命令シミュレーション方法および命令シミュレーションシステム - Google Patents

命令シミュレーション方法および命令シミュレーションシステム

Info

Publication number
JPH10154084A
JPH10154084A JP8311867A JP31186796A JPH10154084A JP H10154084 A JPH10154084 A JP H10154084A JP 8311867 A JP8311867 A JP 8311867A JP 31186796 A JP31186796 A JP 31186796A JP H10154084 A JPH10154084 A JP H10154084A
Authority
JP
Japan
Prior art keywords
instruction
event
simulator
processing means
timing
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
JP8311867A
Other languages
English (en)
Inventor
Yasunari Yoshino
泰成 芳野
Takahiro Nakada
孝広 中田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP8311867A priority Critical patent/JPH10154084A/ja
Publication of JPH10154084A publication Critical patent/JPH10154084A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 非同期イベントの発生を、任意の制御性と再
現性を確保しつつ簡便に実施可能とする。 【解決手段】 命令シミュレータ100の命令実行処理
とは非同期に発生するイベントのデータ300を登録す
る手段500を設ける。また、被テスト命令列200に
は、非同期イベントの発生タイミングを制御するための
特殊命令を予め埋め込んでおく。命令シミュレータ10
0は、命令処理が特殊命令に達するとタイミング制御処
理手段400をコールする。該処理手段400は、特殊
命令の指示に基づき、非同期イベントの発生タイミング
に達した時点でイベント発生処理手段500をコールす
る。該処理手段500は、イベントデータ300を読み
込み、命令シミュレータ100上に非同期イベントを発
生させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は命令シミュレーショ
ン方法および命令シミュレーションシステムに係り、特
に、特定のハードウェアの機能や構造を意識した命令列
からなる被テスト命令列を逐次模擬する命令シミュレー
タを利用したソフトウェア検証方法およびシステムに関
し、さらに詳しくは、非同期動作を含んだハードウェア
動作に適合したソフトウェアの検証方法およびシステム
に関する。
【0002】
【従来の技術】近年のコンピュータやコントローラを代
表とする情報処理装置においては、一般にその機能は、
ハードウェアとその上で実行されるハードウェアを直接
制御するソフトウェアによって実現されている。例え
ば、汎用コンピュータにおいては、複雑な機能を持った
命令の処理や、周辺装置とのデータのやり取りに対し
て、ハードウェアだけでなくマイクロプログラムと呼ば
れるハードウェアを直接制御するソフトウェアを用いて
実現されている。また、民生用や産業用のコントローラ
においては、汎用的なCPUをコアとして、各機能がそ
の上で実行されるソフトウェアによって実現されてい
る。なお、これらのソフトウェアは一般に組み込みソフ
トウェアと呼ばれる。さらには、最近のRISCプロセ
ッサ用のコンパイラのように、アプリケーションプログ
ラムでありながら、ハードウェアを意識して開発され、
その製品の性能を左右するようなハードウェアの実現方
式に依存したソフトウェアも存在する。さらには、ハー
ドウェアの検証を目的として、個々のハードウェアの実
現機能の動作試験を行うハードウェアの構成方式に依存
したテストプログラムも開発されている。
【0003】以上のようなハードウェアを直接制御す
る、あるいはハードウェアの実現方法に依存したソフト
ウェアの開発検証においては、一般のアプリケーション
ソフトウェア開発にはない大きな問題がある。それは、
開発したソフトウェアを実行する環境が早期に得られな
いという点である。ハードウェアとソフトウェアの双方
を含めた全体の開発期間の短縮のために、一般にハード
ウェアの開発製造が終了してからソフトウェアの開発を
実施するのではなく、並行して開発することが要求され
る。しかし、開発対象のソフトウェアはハードウェアの
構成方式に依存した命令列となっているため、ハードウ
ェアの開発が終了するまでの期間において、ソフトウェ
アの検証を行う環境を得ることができない。
【0004】これに対して、ハードウェアが製造される
までは、一般に命令シミュレータによるシミュレーショ
ンによって、これらのソフトウェアの開発・検証が行わ
れる。ここで、命令シミュレータとは、シミュレータ内
にハードウェア資源や動作のモデルを保持し、被テスト
プログラムを逐次解釈実行しながら、ハードウェア動作
を模擬し、その実行結果として得られたハードウェア資
源の数値等により、被テストプログラムが仕様通りに実
現されているか否かを検証するものである。命令シミュ
レータには、基本的に被テストプログラムを逐次、実行
解釈するモデルが採用される。また命令シミュレータ内
での時間管理は命令単位であり、1命令の解釈・実行を
1時間単位としたモデルが採用される。これについて
は、例えば、特開平03−102540号公報に記載の
ように、プログラム内の指定された命令実行状態で命令
実行を停止し正常状態になっていることを逐次確認する
プログラムのテスト方式等が知られている。
【0005】
【発明が解決しようとする課題】一般にハードウェア
は、命令処理を逐次実行する部分と、非同期に動作する
周辺論理の部分とに大別することができる。また、マル
チプロセッシング構成等においては、複数の逐次実行す
る部分が互いに非同期に実行されている。この時、複数
の逐次処理間にお互いにデータのやり取りがあった場
合、一つの逐次処理部に着目すれば、他からのデータの
書き込みは非同期に発生するイベントとして扱うことが
できる。そこで、被テストプログラムが先に述べたハー
ドウェアの実現方式に依存し、ハードウェアを直接制御
するような場合において、逐次処理を行っている命令シ
ミュレータ上での非同期イベントの発生方法が問題にな
る。
【0006】通常の命令シミュレータにおいて、単純に
非同期イベントを発生させることは容易である。しか
し、命令シミュレータがソフトウェアの検証を目的とし
ているため、その非同期イベントの発生タイミングは操
作者の制御下におかれていなければならない。即ち、シ
ミュレーションをする場合、テストケースに基づいてテ
ストを実施するが、非同期イベントに対しても当然テス
トケースに従って、意図したタイミングで発生できなけ
ればならない。また、デバッグ等を行って、同じ条件で
シミュレーションを再実行させた場合には、前回と同じ
タイミングで発生しなければならない。つまり、再現性
が要求される。以上より命令シミュレータにおいては、
単に非同期イベントを発生させればよいだけでなく、そ
のイベントの発生のタイミングを意図したものにする制
御性と、非同期イベントの発生が同一条件で同じに発生
する再現性を確保することが要求される。
【0007】これに対しては、次の方法が考えられる。
例えば、非同期イベントを発生させたいタイミングに該
当する被テストプログラム中の命令にブレークポイント
を設定し、そこまで命令処理を実行させシミュレーショ
ンを中断させた後、非同期イベントを発生させる処理を
手操作によって実行し、あらためてシミュレーションを
再開させる方法である。これにより、意図したタイミン
グでの非同期イベントを発生可能で、かつ再現性も確保
できる。しかしながら、ブレークポイントの設定やシミ
ュレーションの停止、再実行、非同期イベントの発生指
示等の操作が必要になる。ソフトウェアの検証において
は、同様のケースを何度も実行しなければならない場合
が多く、上記の方法ではその都度上記の操作が必要とな
り、実用には供しない。
【0008】本発明の目的は、非同期イベントの発生
を、任意の制御性と再現性を確保しながら簡便に実施可
能とする命令シミュレーション方法およびシステムを提
供することにある。
【0009】
【課題を解決するための手段】本発明では、まず、発生
させたい非同期イベントの情報を登録する手段を設け、
該手段を命令シミュレーションとは非同期に実行し、非
同期イベントの情報を格納・登録する。また、被テスト
命令列には、非同期イベントの発生タイミングを制御す
ることを目的とした特殊命令を予め埋め込んでおく。命
令シミュレータにより被テスト命令列の命令実行処理が
進み、前記特殊命令に達した際に、非同期イベントの発
生タイミングを制御する処理手段をコールする。このタ
イミング制御処理手段は、前記特殊命令の命令オペラン
ドを読み込み、発生させる非同期イベントの種類と発生
タイミングを取得する。そして、命令シミュレーション
が発生タイミングに達した時点でイベント発生処理手段
をコールする。このイベント発生処理手段は先に格納し
てある非同期イベントの情報を読み出し、命令シミュレ
ータ上に非同期イベント発生させる。この時、発生させ
るべき非同期イベントの情報が未だ格納されていない場
合は、シミュレーションを停止し、登録手段により該当
する非同期イベントが登録されるのを待ち、そのイベン
トを発生させ、シミュレーションを再スタートさせる。
一方、命令実行が発生タイミングに達した際に、すでに
該当する非同期イベントが登録されている場合は、ただ
ちに非同期イベントを命令シミュレータ上に発生させ
る。
【0010】以上のようにして、操作者は特殊命令のオ
ペランドにより任意のタイミングで非同期イベントを発
生させることが可能となる。併せて、これらの条件が同
一の場合は、一意にタイミングを決定することができ
る。さらに予め被テストプログラムに特殊命令を埋めこ
みオペランドデータを変えるだけの容易な操作で非同期
イベントの発生を制御することが可能となる。これによ
り、非同期イベントを操作者の意図した任意のタイミン
グで発生可能とする制御性を持つだけでなく、テスト環
境に必要な再現性を確保することが可能となり、簡便な
操作で命令シミュレーションを可能とする。
【0011】
【発明の実施の形態】図1に、本発明の第1の実施例で
ある命令シミュレーションシステムの構成図を示す。本
命令シミュレーションシステムは、被テスト命令列20
0とテストデータ106を入力とし、該被テスト命令列
200をテストデータ106の条件下でシミュレーショ
ンして結果を表示装置107に表示あるいは実行結果デ
ータ108として出力する命令シミュレータ100と、
非同期イベントの情報をイベントデータ300に登録す
るイベント登録処理手段105、非同期イベントの発生
タイミングを制御・調整するタイミング制御処理手段4
00、及び命令シミュレータ100上に非同期イベント
を発生させるイベント発生処理手段500より構成され
る。非テスト命令列200には、予め非同期イベントの
発生タイミングをコントロールすることを目的とした特
殊命令が挿入されている。
【0012】図1において、命令シミュレータ100
は、特殊命令処理手段102を除くと、従来の通常の命
令シミュレータと同じであり、命令を解釈しシミュレー
ションする命令解釈実行処理手段101と、ハードウェ
アの各リソースの値の保持、並びに読み書きを管理する
リソース管理処理手段103、その他、デバッグのため
のユーザインターフェース処理手段や結果を出力する処
理手段等から構成される。ここで、命令解釈実行処理手
段101に特殊命令処理手段102が組み込まれる。該
命令シミュレータ100の特殊命令処理手段102を除
いた構成は従来の通常の命令シミュレータと同じである
ので、図1においては詳細構成は省略している。 本命
令シミュレーションシステムでは、被テスト命令列20
0をシミュレーションする命令シミュレータ100とは
非同期に実行されるイベント登録処理手段105にて、
非同期イベントの情報をイベントデータ300に登録す
る。ここで、イベント登録処理手段105は、非同期イ
ベントの情報を登録できるものであれば何でもよく、例
えば、オペレータ自身が登録する場合は、キーボードな
どがイベント登録処理手段の役割をはたす。また、後述
の図6に示すように、非同期に実行されている他の命令
シミュレータに起動されて非同期イベントの情報を自動
的に生成・登録するソフトウェア/ハードウェアでもよ
い。命令シミュレータ100が被テスト命令列200を
逐次シミュレーションして、特殊命令に達した時に、命
令解釈実行処理手段101に組み込まれた特殊命令処理
手段102が該特殊命令を実行し、タイミング制御処理
手段400を起動して、該命令オペランドで指示された
非同期イベントのタイプ(種類)と発生タイミングのカ
ウント値を渡す。タイミング制御処理手段400は、そ
の発生タイミングになるまで時間を調整し、発生タイミ
ングになった時に、イベント発生処理手段500を起動
する。イベント発生処理手段500は、該当する非同期
イベントの情報をイベントデータ300より読み出し、
命令シミュレータ100のリソース管理処理手段103
に働き掛けて、非同期イベントを命令シミュレータ10
0上に発生させる。
【0013】なお、タイミング制御処理手段400で
は、非同期イベントの発生タイミングに達した時に、外
部から該当非同期イベントの情報がイベントデータ30
0にない場合は、命令シミュレーションを停止させ、該
当する非同期イベントの情報がイベントデータ300に
登録されるまで待ち続け、登録された時点でイベント発
生処理手段500を起動する。
【0014】このように、本命令シミュレーションシス
テムでは、ユーザが被テスト命令列に埋め込んだ特殊命
令の命令オペランドを変えることにより、任意のタイミ
ングで非同期イベントを発生させることが可能となる。
また、タイミング制御処理手段400が、前記特殊命令
に従って発生タイミングを一意に決定し、命令シミュレ
ータ100の実行と非同期イベントの発生を管理するた
め、再現性も保証される。さらには、特殊命令の命令オ
ペランドをセットするだけの簡便な操作で、上記の非同
期イベントの発生タイミングをコントロールすることが
可能となる。
【0015】以下、図2乃至図5を併用して、図1に示
す命令シミュレーションシステムの各部について更に詳
しく説明する。
【0016】図2に、本命令シミュレーションシステム
の入力となる被テスト命令列200及びそれに埋め込ま
れた非同期イベントの発生タイミングをコントロールす
る特殊命令201の一例を示す。ここで、被テスト命令
列200は、命令シミュレータ100によって逐次解釈
実行される命令の流れを模式的に表したものであり、実
際の主記憶上のプログラムを示したものではない。ま
た、本例の場合は、命令長は32ビットの固定長として
いる。
【0017】図2において、被テスト命令列(被テスト
プログラム)200には、非同期イベントの発生タイミ
ングを制御するための特殊命令201が予め挿入されて
いる。特殊命令201は、オペコード202と、命令オ
ペランドとしてイベント種類203とカウント値レジス
タID204の3つのフィールドから構成される。オペ
コード202は、本特殊命令と他の一般の命令を区別す
るための一意に決定されるコードであり、命令シミュレ
ータ100においてのみ意味のあるコードである。一般
に、本命令が実機で実行された場合は、ノット・オペレ
ーション(NOOP)になるようにコードが割り付けら
れる。イベント種類フィールド203は、本命令によっ
て発生タイミングをコントロールしようとする対象とな
る非同期イベントの種類を表す一意の番号等が設定され
るフィールドである。カウント値レジスタIDフィール
ド204は、本命令の実行から非同期イベントの発生タ
イミングまでの命令シミュレータ100上での実行命令
数を保持するカウント値レジスタの番号(汎用レジスタ
番号など)が設定されるフィールドである。
【0018】操作者は非同期イベントを発生させたいポ
イントより前に実行される命令列の中に特殊命令201
を挿入する。その際、発生させたい非同期イベントの種
類をイベント種類フィールド203に、また、本特殊命
令から何命令実行後にイベントを発生させるかを保持し
たカウント値レジスタ(例えば、汎用レジスタを使用す
る)のID番号をカウント値レジスタIDフィールド2
04に指定する。特殊命令処理手段102は、被テスト
命令列200に埋め込まれた特殊命令201を実行し
て、カウント値レジスタIDフィールド204により該
当するレジスタからカウント値を取得し、イベント種類
フィールド203のイベント種類とともにタイミング制
御処理手段400に渡して、該タイミング制御処理手段
400を起動する。なお、カウント値レジスタは命令シ
ミュレータ内に複数設け、ユーザのオペレーションによ
って自由に設定できるほか、カウント値レジスタにカウ
ント値を設定する特殊命令を用意し、これを被テストプ
ログラムに予め埋め込み、実行することによっても設定
可能である。
【0019】以上のように、被テスト命令列200に、
非同期イベントの発生タイミングを規定する情報を含ん
だ命令オペランドを持った特殊命令201を埋め込むこ
とによって、任意のタイミングでのイベントの発生を指
示することが可能となる。
【0020】図3に、非同期イベントのイベントデータ
300の一例を示す。イベントデータ300は、命令シ
ミュレータ100とは独立に実行されるイベント登録手
段105によって生成・登録される。なお、イベントデ
ータ300はオペレータ自身がキーボード等から入力コ
マンドにより登録してもよい。
【0021】イベントデータ300は、イベントID3
01と、イベント種類302、イベント管理情報30
3、リソースデータ304の各フィールドより構成され
る。イベントID301は、各イベントに固有の番号で
あり、命令シミュレータ上での結果解析や表示に使用さ
れる。イベント種類302は、そのイベントの種類を示
す値であり、特殊命令201の命令オペランドであるイ
ベント種類フィールド203の値に対応する。イベント
管理情報303は、本イベントを発生させたイベント登
録処理手段105の情報等を保持し、命令シミュレータ
上での結果解析や表示に使用される。リソースデータ3
04は、本非同期イベントの発生によって書き換えられ
る命令シミュレータ上のリソースとその書き換えられる
データの組合せの集合である。
【0022】以上のように、イベントデータ300は、
発生すべき非同期イベントの具体的な情報を格納してい
る。従って、後述するように、イベント発生処理手段5
00は、これらの情報を使って命令シミュレータ100
上に指定された非同期イベントを発生させることが可能
となる。
【0023】図4に、タイミング制御処理手段400の
処理フローを示す。タイミング制御処理手段400は、
特殊命令処理手段102からの起動指示と、命令シミュ
レータ100からの一命令シミュレーションが実行する
毎に発生する終了信号を入力とする。また、イベントデ
ータ300を入力とし、特殊命令201の命令オペラン
ドで指定されたタイミングで非同期イベントが発生する
ように、発生タイミングの調整を行う。
【0024】タイミング制御処理手段400は、命令シ
ミュレータ100において被テスト命令列200中に埋
め込まれた特殊命令201が実行されるタイミングで、
特殊命令処理手段102によって起動(コール)され
る。
【0025】タイミング制御処理手段400では、ま
ず、処理401において、特殊命令処理手段102から
非同期イベントの種類とカウント値を受け取る。ここ
で、カウント値は、前記特殊命令から非同期イベントを
発生させる時点までの実行命令数、即ち、現時点から非
同期イベントを発生させるまでのタイミングを示してい
る。該カウント値(実行命令数)をタイミング制御処理
手段400が保持するカウンタに初期セットする。次
に、処理402において、命令シミュレータ100の命
令解釈実行処理手段101より入力される1命令のシミ
ュレーションが終了したことを示す信号に同期して、前
記カウンタを1減算する。次に、処理403によって条
件分岐を行い、カウンタの値が“0”でなければ、処理
402に戻り、“0”であれば次の処理404に進む。
カウント値が“0”の場合、既に命令シミュレータ10
0は非同期イベントを発生させるべきタイミングに命令
処理が進んでいることを意味するため、処理404にお
いて、非同期イベントを発生させるために命令シミュレ
ータ100の実行を停止させる。
【0026】続いて、タイミング制御処理手段400で
は、処理405において、イベントデータ300を読み
込む。次に、処理406において、処理401で得られ
た特殊命令201で指定された非同期イベント(発生さ
せるべき非同期イベントの種類)が当該イベントデータ
300内に存在するか否かを調べる。その結果より、処
理407において条件分岐が発生する。即ち、指定され
た種類の非同期イベントの情報がイベントデータ300
内にない場合は、処理406に戻り、再度イベントデー
タ300内に対象となる種類の非同期イベントの情報の
有無を調べる。一方、イベントデータ300内にある場
合は、次の処理408に進み、発生すべきイベントの種
類を指定してイベント発生処理手段500をコールす
る。
【0027】以上のように、タイミング制御処理手段4
00は、被テスト命令列200に埋め込まれた特殊命令
201の命令オペランドに従って、まず、処理402、
403によって、命令シミュレータ100での命令処理
を指定されたタイミング(命令数)まで実行させる。次
に、処理406、407によって、指定された非同期イ
ベントの情報がイベントデータ300に登録されるまで
待ち合わせを行う。こうして特殊命令201によって指
定されたタイミングに合わせて、非同期イベントを発生
させることが可能となる。
【0028】図5に、イベント発生処理手段500の処
理フローを示す。イベント発生処理手段500は、タイ
ミング制御処理手段400から起動(コール)される。
また、イベントデータ300を入力とし、命令シミュレ
ータ100内のリソース管理処理手段103に働き掛
け、指定された非同期イベントを命令シミュレータ10
0上に発生させる。
【0029】イベント発生処理手段500では、まず、
処理501において、イベントデータ300より発生さ
せるべき非同期イベントの情報を読み込む。ここで、該
当する非同期イベントの情報は、タイミング制御処理手
段400によって既にイベントデータ300内に存在す
ることが保証されている。また、同じくタイミング制御
処理手段400により、命令シミュレータ100が非同
期イベントを発生させるタイミングで停止していること
も保証されている。そこで、処理502において、イベ
ントデータ300のリソースデータ304を読み取り、
命令シミュレータ100上のリソース管理処理手段10
3を使って、命令シミュレータ100上の該当するリソ
ースの値を書き換えることにより、命令シミュレータ1
00上に非同期イベントを発生させる。最後に、処理5
03において、命令シミュレータ100にシミュレーシ
ョン開始信号を送り、命令シミュレーションを再開させ
る。
【0030】以上のように、イベント発生処理手段50
0は、イベントデータ300から発生させるべき非同期
イベントの情報を読み込み、これをリソース管理処理手
段103に渡すことにより、命令シミュレータ100上
に非同期イベントを発生させることが可能となる。
【0031】以上のように、図1の命令シミュレーショ
ンシステムでは、被テスト命令列200に予め埋め込ま
れた特殊命令201の命令オペランドで指定された非同
期イベントを、同じく命令オペランドで指定されたタイ
ミングで命令シミュレータ100上に発生させることが
可能となる。具体的には、タイミング制御処理手段40
0が、特殊命令処理手段102から特殊命令201のオ
ペランドデータを受け取り、まず、命令シミュレータ1
00を指定されたタイミングの命令まで実行させた後、
外部から非同期に生成されてイベントデータ300に格
納される非同期イベントの情報を待ち合わせる。次に、
非同期イベントの情報がそろった時点で、タイミング制
御処理手段400がイベント発生処理手段500をコー
ルし、初めてイベント発生処理手段500がイベントを
発生させる。これにより、非同期イベントの発生を、特
殊命令の命令オペランドによって指定された任意のタイ
ミングで発生させることが可能である。また、タイミン
グ制御処理手段400が指定されたタイミングで、命令
シミュレータ100の実行と非同期イベントの発生のタ
イミングの同期を取るため、再現性も保証される。さら
に、対象非同期イベントや発生タイミングは、命令オペ
ランドによって指定されるため、操作者は煩雑な操作を
必要とせずに非同期イベントの発生をコントロールする
ことが可能となる。
【0032】なお、図4に示すタイミング制御処理手段
400の処理フローでは、特殊命令処理手段102が特
殊命令201を解釈実行し、タイミング制御処理手段4
00は、該特殊命令処理手段102からその実行結果と
して発生すべき非同期イベントの種類およびカウント値
を受け取るとしたが、命令解釈実行処理手段101自体
あるいは特殊命令処理手段102が特殊命令201を解
読したなら直ちにタイミング制御処理手段400をコー
ルし、該タイミング制御処理手段400において、特殊
命令201の命令オペランドを解釈・実行して、イベン
トの種類およびカウント値を取得することでもよい。
【0033】図6に、本発明の第2の実施例である命令
シミュレーションシステムの構成図を示す。本命令シミ
ュレーションシステムでは、プロセス610とプロセス
620で、それぞれ非同期に命令シミュレータ100が
実行される。なお、これらのプロセスは、同一の計算機
上で実行される必要はなく、ネットワーク等で接続され
た複数の計算機システムに分散されて実行されてもよ
い。
【0034】図6において、プロセス610で実行され
る命令シミュレータ1は、図1で示した命令シミュレー
タ100と同様の構成である。即ち、命令シミュレータ
1は特殊命令処理手段102を備えた命令解釈実行処理
手段101とリソース管理処理手段103を含み、それ
にタイミング制御処理手段400及びイベント発生処理
手段500が付加される。これらの機能、動作は図1の
実施例と同じであり、ここでの説明は省略する。
【0035】本命令シミュレーションシステムでは、プ
ロセス610と非同期に実行されるプロセス620上で
別の命令シミュレータ2が実行されている。さらに、プ
ロセス620にはイベント登録処理手段105が実装さ
れている。命令シミュレータ2での命令実行中にプロセ
ス610で実行されている命令シミュレータ1に伝達す
るイベントが発生した場合、イベント登録処理手段10
5が起動されて、そのイベントの情報を生成し、イベン
トデータ300に登録する。一方、命令シミュレータ1
で実行されている被テスト命令列1に埋め込まれた特殊
命令によって指定されたタイミングで非同期イベントが
発生するように、図1の実施例と同様にしてタイミング
制御処理手段400とイベント発生処理手段500が動
作し、命令シミュレータ1上に指定された任意のタイミ
ングで非同期イベントが発生する。なお、イベントデー
タ300は、複数のプロセス間で共有される記憶資源で
あり、ファイルとしての他、共有メモリやパケットとし
て実現されうる。
【0036】以上のように、図6の命令シミュレーショ
ンシステムでは、非同期に動作する2つ以上の命令シミ
ュレータ間でデータの入出力がある場合に、データを受
け取る側の命令シミュレータの命令実行のタイミングと
非同期に発生する他の命令シミュレータが生成する非同
期イベントの発生タイミングを調整することにより、シ
ミュレータ間の非同期動作の再現性を保証することがで
きる。
【0037】なお、図6においては、命令シミュレータ
2から命令シミュレータ1への非同期イベントの伝播を
示しているが、同様の機構を双方のシミュレータに持た
せることにより、逆方向の非同期イベントの伝播も実現
することが可能である。
【0038】
【発明の効果】本発明の命令シミュレーション方法およ
びシステムによれば、命令シミュレーシタの外界等(コ
マンド入力、別の命令シミュレータの処理等)に起因す
る非同期に発生する非同期イベントの発生を、被テスト
命令列に特殊命令を埋め込むという簡単な操作により、
任意のタイミングで一意的に発生させることが可能とな
る。また、同一の特殊命令下においては、常に同一のタ
イミングで非同期イベントが発生し、再現性が保証され
る。これらにより、非同期動作を伴うソフトウェアに対
して、製造前に容易にテスト可能となる。さらに、非同
期イベントの発生タイミングを細かく変化させてシミュ
レーションするような詳細なテストケースを完全に実施
することが可能となり、ソフトウェアの信頼性の確保に
大きく寄与することが可能となる。
【図面の簡単な説明】
【図1】本発明の命令シミュレーション方法を実施する
システムの一例を示す構成図である。
【図2】本発明にかかる非同期イベントの発生タイミン
グ制御用特殊命令の一例を示す図である。
【図3】本発明にかかるイベントデータの一例を示す図
である。
【図4】本発明にかかるタイミング制御処理手段の処理
フローの一例である。
【図5】本発明にかかるイベント発生処理手段の処理フ
ローの一例である。
【図6】本発明の命令シミュレーション方法を実施する
第2のシステムの一例を示す構成図である。
【符号の説明】
100 命令シミュレータ 101 命令解釈実行処理手段 102 特殊命令処理手段 103 リソース管理処理手段 105 イベント登録処理手段 200 被テスト命令列 201 特殊命令 300 イベントデータ 400 タイミング制御処理手段 500 イベント発生処理手段

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 被テスト命令列とテストデータを入力
    し、前記被テスト命令列を解釈実行してハードウェア動
    作を模擬する命令シミュレーション方法において、 前記被テスト命令列に特殊命令を予め埋め込み、前記特
    殊命令によって、命令実行処理とは非同期に発生するイ
    ベントの発生タイミングを任意に制御し、非同期イベン
    トを前記命令実行処理内に発生させることを特徴とする
    命令シミュレーション方法。
  2. 【請求項2】 被テスト命令列とテストデータを入力と
    し、前記被テスト命令列を解釈実行してハードウェア動
    作を模擬する命令シミュレータと、 命令実行処理とは非同期に発生するイベントのデータを
    登録するイベント登録手段と、 前記被テスト命令列に予め埋め込まれた特殊命令に達し
    た際に前記命令シミュレータからコールされて、前記特
    殊命令の指示に基づき、命令実行処理と非同期イベント
    の発生タイミングを制御するタイミング制御手段と、 前記タイミング制御処理手段から非同期イベントの発生
    許可を受けて、前記登録されているイベントデータを読
    み込み、前記命令シミュレータに非同期イベントを発生
    させるイベント発生処理手段と、を有することを特徴と
    する命令シミュレーションシステム。
  3. 【請求項3】 各々非同期に被テスト命令列を実行する
    複数の命令シミュレータを具備し、イベント登録手段
    は、非同期イベントを発生させる一方の命令シミュレー
    タでの命令実行処理とは非同期に実行される他方の命令
    シミュレータのイベントデータを登録することを特徴と
    する命令シミュレーションシステム。
JP8311867A 1996-11-22 1996-11-22 命令シミュレーション方法および命令シミュレーションシステム Pending JPH10154084A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8311867A JPH10154084A (ja) 1996-11-22 1996-11-22 命令シミュレーション方法および命令シミュレーションシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8311867A JPH10154084A (ja) 1996-11-22 1996-11-22 命令シミュレーション方法および命令シミュレーションシステム

Publications (1)

Publication Number Publication Date
JPH10154084A true JPH10154084A (ja) 1998-06-09

Family

ID=18022378

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8311867A Pending JPH10154084A (ja) 1996-11-22 1996-11-22 命令シミュレーション方法および命令シミュレーションシステム

Country Status (1)

Country Link
JP (1) JPH10154084A (ja)

Similar Documents

Publication Publication Date Title
CN117422026B (zh) 一种基于risc-v架构的处理器验证系统
US6718294B1 (en) System and method for synchronized control of system simulators with multiple processor cores
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
JP4717492B2 (ja) マルチコアモデルシミュレータ
US6173438B1 (en) Embedded graphical programming system
JP2015060600A (ja) 仮想制御装置をリアルタイムテストするためのテスト装置
CN117422025A (zh) 一种基于risc-v架构的随机中断调试验证系统
JPH11513512A (ja) ディジタル信号プロセッサの製造方法
JPH11505645A (ja) プロセッサに基づくデジタルシステムをシミュレートするための装置および方法
JPH0728670A (ja) 情報処理装置
JP2861962B2 (ja) コンピュータプログラムのシミュレーション装置および方法
JPH08314760A (ja) プログラム開発支援装置
JP2828590B2 (ja) マイクロプログラム検証方法
JPH10154084A (ja) 命令シミュレーション方法および命令シミュレーションシステム
Davidson High level microprogramming: Current usage, future prospects
JP2803090B2 (ja) Mpuシミュレーション方法及びmpuシミュレータ
JP3745968B2 (ja) 試験システム及び試験方法及び試験プログラム及び試験プログラムを記録した計算機で読み取り可能な記録媒体
JPS6349851A (ja) シミユレ−シヨンシステム
JP3731929B2 (ja) デジタル回路をシミュレートする方法および装置
Devins SoC Verification Software–Test Operating System
JP3424548B2 (ja) 組み込み機器用ソフトウエア論理シミュレータ
JP3270729B2 (ja) 拡張命令セット・シミュレータ
JPH11110429A (ja) イベント発生装置、ハードウェアシミュレーション装置およびその方法
JP2002366378A (ja) プログラムのデバッグ装置及びデバッグ方法、並びに記憶媒体
CN115422050A (zh) 一种网络处理器的微码高效仿真方法