JPS6358550A - シミユレ−タ - Google Patents

シミユレ−タ

Info

Publication number
JPS6358550A
JPS6358550A JP61203178A JP20317886A JPS6358550A JP S6358550 A JPS6358550 A JP S6358550A JP 61203178 A JP61203178 A JP 61203178A JP 20317886 A JP20317886 A JP 20317886A JP S6358550 A JPS6358550 A JP S6358550A
Authority
JP
Japan
Prior art keywords
interrupt
interruption
request
program
requests
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
JP61203178A
Other languages
English (en)
Inventor
Osamu Ishiwata
石綿 修
Yuichi Oota
雄一 太田
Sakae Ayabe
栄 綾部
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 High Tech Corp
Original Assignee
Hitachi Electronics Engineering Co 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 Electronics Engineering Co Ltd filed Critical Hitachi Electronics Engineering Co Ltd
Priority to JP61203178A priority Critical patent/JPS6358550A/ja
Publication of JPS6358550A publication Critical patent/JPS6358550A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、各種制御システムの制御プログラムなどの
模擬実行を行うためのシミュレータに関する。
さらに詳細には、この発明は、そのような制御プログラ
ムなどの割込み機能のテストおよびデバッグを行う場合
に最適なシミュレータに関する。
[従来の技術] 各種制御システムの制御プログラムなどの開発は、しば
しばハードウェアの開発より先行する。
この場合、シミュレータを用いてプログラムを模擬実行
させ、そのテストおよびデバッグが行われる。
従来、そのようなシミュレータは計算機システム上でソ
フトウェアによって実現されているが、対象とするプロ
グラムの割込み機能のテストおよびデバッグを行う場合
、予めコマンドによって割込み要求を登録しておき、対
象プログラムの模擬実行を行わせい割込みを発生させる
ようになっている。
また、別の別込みを発生させるには、先に登録した一つ
の割込みが発生してから、改めて割込み要求をコマンド
により登録し、対象プログラムの模擬を再開させる必要
がある。
[解決しようとする問題点] 実機においては、ハードウェアからの割込みは非同期に
発生するものである。しかし、従来のシミュレータでは
、そのような実機環境に近い条件で割込みを発生させ、
割込み機能のテストおよびデバッグを行うことはできな
い。
また、多重割込みをサポートできない。
[発明の目的コ したがって、この発明の目的は、そのような割込みに関
連した問題点を解決し、制御システムなどのプログラム
を実機環境に近い条件で模擬し、割込み機能のテストお
よびデバッグを効果的に行うことができるシミュレータ
を提供することにある。
[問題点を解決するための手段] この目的を達成するために、この発明によるシミュレー
タは、複数の割込みの要求を時間情報および割込みレベ
ル情報とともに記憶するための手段と、前記プログラム
の模擬実行中に、前記手段によって記憶されている複数
の割込みの要求の中から、その時間情報および割込みレ
ベル情報に従い、割込み発生時刻に到達した割込みの要
求を割込みレベルの高いものから優先的に受け付け、そ
の割込みを発生させるための手段とを有する構成とされ
る。
[作用] このように、割込み発生時刻を指定するための時間情報
および割込みレベル情報とともに複数の割込みの要求を
記憶し、発生時刻に到来した割込みの要求を割込みレベ
ルの高いものから優先的に受け付けて、その割込みを発
生する構成である。
したがって、ハードウェアからの非同期な割込みを擬似
的に発生し、プログラムの割込み機能を実機環境に近い
条件でテストしデバッグを行うことができる。
また、複数の割込みの要求は時間情報および割込みレベ
ル情報とともに記憶されるから、多重割込みも容易に発
生させることができるので、プログラムの多重割込み機
能に関するテストおよびデバッグも容易に行うことがで
きる。
[実施例] 以下、図面を参照し、この発明の一実施例について詳細
に説明する。
第1図は、この発明のシミュレータの機能的構成を簡略
化して示す概略ブロック図である。第2図は、このシミ
ュレータが実現される計算機システムの簡略化したシス
テム構成図である。また、第3図は割込み待ち行列の構
成図であり、第4図は割込みベンディングテーブルの構
成図である。。
まず第2図において計算機システムについて説明すれば
、1はメモリであり、これにはシステムバス2を介して
中央演算処理装置(CPU)3およびチャネル4が接続
されている。チャネル4には、ディスク制御装置5を介
して磁気ディスク装置6が接続されている。
これ以外にも、キーボードディスプレイ装置なども一般
に含まれるが、この実施例の説明には直接関係しないの
で、図示されていない。
前記各部の機能は標準的であるから、その説明は割愛す
る。
次に第1図を参照し、このシミュレータについて説明す
るが、これは油泥計算機システム上でソフトウェアによ
って実現されるので、以下の説明において第2図も適宜
参照する。
/Oは模擬すべきプログラム(対象プログラム)の記憶
域およびその作業域としてのプログラムメモリであり、
実際には計算機システムのメモリ1の特定の領域/Oa
が使用される。
なお、この対象プログラムは割込み処理ルーチンも含ん
でいるものである。
12は機械語インタプリタ部であり、対象プログラムの
機械語命令を解釈し、その対象プログラムを計算機シス
テム上で動作させるものである。
なお、実行すべき機械語命令は、制御部24内のプログ
ラムカウンタによって指定される。
この機械語インタプリタ部12は、実際には計算機シス
テムのハードウェア資源を利用してソフトウェアにより
実現されるものであり、そのためのプログラムは、ある
磁気ディスク装置8からメモリ1の特定の領域12aに
ロードされCPU3により実行される。
14は対象プログラムが搭載されるプロセッサ(例えば
MC88000)のステータスレジスタと同じステータ
スレジスタであり、その内容は各時点における同プロセ
ッサ(ターゲットプロセッサ)の杖態などを反映する。
このステータスレジスタ14は、実際には計算機システ
ムのメモリ1の特定の領域14a(ま;/’。
はCPU3の内部レジスタ)が用いられる。機械語イン
タプリタ部12は、ステータスレジスタ14のコンディ
シロンコードレジスタ部の参照、アクセスが可能である
16は対象プログラムによって制御されるハードウェア
のI/O/O0定義ルーチンを格納したI/O定義ファ
イルであり、実際には計算機システムのある磁気ディス
ク装置6が用いられる。このI/O定義ルーチンには、
予め割込み登録命令が組み込まれている。
18はI/O処理部であり、対象プログラムのI/O命
令が発行された場合に、対応したI/O定義ルーチンを
解釈してI/O/O0模擬する。
また、このI/O処理部18は、I/O定義ルーチンの
割込み登録命令を検出した場合、割込み要求を割込み待
ち行列20に登録する。つまり、このI/O処理部18
は、対象プログラムからのI/Oアクセス時に、I/O
定義ルーチンの割込み登録命令に従って擬似的に割込み
要求を発生して割込み待ち行列に登録する機能も持って
いる。
このようなI/O処理部18は計算機システム上でソフ
トウェアによって実現されるもので、そのためのプログ
ラムはある磁気ディスク装置6からメモリ1の特定の領
域18aにロードされ、CPU3により実行される。
22はI/O制御部であり、対象プログラムからのI/
Oアクセス時に機械語インタプリタ部12から起動され
、そのアクセスアドレス、I/O区別、アクセスレング
スなどの情報、および出力の場合は出力データをI/O
処理部18に渡して、I/O処理部18を起動する。
また、このI/O制御部22は一定周期で制御部24か
ら起動される。その起動の度に、I/O制御部22は割
込み待ち行列20に登録されていル割込み要求のオフセ
ットサイクル数を一定数だけデクリメントする。そして
、オフセットサイクル数がゼロ以下の割込み要求を検索
し、その上うな割込み要求が見つかると、割込み発生要
求フラグ26をセットするとともに、その割込み要求を
割込みベンディングテーブル28に登録する。また、そ
の登録した割込み要求を割込み待ち行列20から抹消す
る。
このようなI/O制御部22は計算機システム上でソフ
トウェアによって実現されるもので、そのためのプログ
ラムはある磁気ディスク装置6からメモリ1の特定の領
域22aにロードされ、CPU3によって実行される。
30は対象プログラムの模擬実行に費やしたサイクル数
をカウントするためのサイクルカウンタであり、制御部
24によってインクリメントされる。このサイクルカウ
ンタ30の値は、I/O/O0タイミング制御などのた
めにI/O処理部18から参照されるようになっている
前記制御部24は、機械語インタプリタ部12とI/O
制御部22の起動制御などのシミュレータ全体の制御、
サイクルカウンタ30のインクリメントなどのほか、後
述の割込み発生に関する制御、換言すれば、ターゲット
プロセッサにおける割込み発生時の例外処理状態と同様
な動作を行う。
したがって、この制御部24は割込み発生要求フラグ2
6を参照でき、また、割込みベンディングテーブル28
およびステータスレジスタ14の参照および書き換えが
可能である。
このような制御部24も計算機システム上でソフトウェ
アによって実現されるものであり、そのためのプログラ
ムはある磁気ディスク装W16からメモリ1の特定の領
域24aにロードされ、CPU3により実行される。
前記割込み待ち行列20、割込み発生要求フラグ26お
よび割込みベンディングテーブル28としては、それぞ
れメモリ1の特定の領域20a。
26a+  28aが用いられる。
割込み待ち行列20の構造は第3図に示される通りであ
り、複数の割込み要求のI/O番号、オフセットサイク
ルおよび割込みレベルの情報が順番に登録されるように
なっている。
ここで、オフセットサイクルは、割込み要求の発生時刻
(割込み登録命令の発行時刻)から割込み発生までの時
間(サイクル数)を示す時間情報であり、割込み登録命
令によって指定される。また、割込みレベルも割込み登
録命令によって指定される。
割込みベンディングテーブル28の構造は第4図に示さ
れる通りである。図示のように、割込みベンディングテ
ーブル28には、マスク解除待ちの割込み要求の数がレ
ベル別に登録される。
次に、割込み模擬動作を中心に、このシミュレータによ
る対象プログラムの模擬実行動作を説明する。
制御部24の制御下で、機械語インタプリタ部12はプ
ログラムメモリ/Oから対象プログラムの機械語命令を
順次読み出して解釈し、計算機システム上で模擬実行を
1テっでいくが、アクセスアドレスからI/O命令を検
出すると(ここではメモリマツプI/Oを想定している
)、機械語インタプリタ部12はI/O制御22に制御
を渡す。
制御を受けたI/O制御部22は、アクセスアドレス、
■70区別、アクセスレングス、さらに出力動作ならば
出力データをI/O処理部18に渡して、I/O処理部
18を起動する。
起動されたI/O処理部18は対応するIlo 。
定義ルーチンを解釈し、対応したI/O動作を模擬する
。このI/O定義ルーチンに割込み登録命令が組み込ま
れている場合、その命令に従って割込み要求を割込み待
ちテーブル20に登録する。
その登録内容は前述の通りである。
このようなI/O動作(および割込み登録動作)を終わ
ると、I/O制御部22を通じて機械語インタプリタ部
12に制御が戻され、対象プログラムの模擬実行が続け
られる。
このような対象プログラムの模擬実行中に、−定周期で
、制御部24によってI/O制御部22が起動される。
この起動を掛けられると、I/O制御部22は、割込み
待ち行列20に登録されている割込み要求のオフセット
サイクル数を一定数だけデクリメントし、オフセットサ
イクル数がゼロまでデクリメントした割込み要求を登録
順に検索する。
そのような割込み要求を一つ見つけると、割込み発生要
求フラグ26をセットするとともに、その割込み霞求を
割込みベンディングテーブル28に登録する。つまり、
その割込み要求のレベルに対応した割込みベンディング
テーブル28内の割込み登録数をインクリメントする。
また、その割込みベンディングテーブル28に登録した
割込み要求を割込み待ち行列20から抹消する。
制御部24は一つの機械語命令の解釈実行が終わる毎に
機械語インクプリタ部12から制御が戻されるが、その
時に割込み発生要求フラグ26をチェックする。この割
込み発生要求フラグ26がリセット状態ならば、制御部
24は機械語インタプリタ12を起動して対象プログラ
ムの模擬実行を続けさせるが、割込み発生要求フラグ2
6がセット状態ならば、次に述べるような割込み発生制
御を行う。
まず、割込みベンディングテーブル28の割込み登録数
が1以上の最高のレベルを検索し、その割込みレベルを
ステータスレジスタ14の割込みマスクビットによって
指定されたレベルと比較し、前者の割込みレベルが後者
の指定レベルより高い場合、その割込みの易求を受け付
ける。
この場合、受け付けた割込み以外に割込みベンディング
テーブル28に割込みが登録されていなければ、割込み
発生要求フラグ26をリセットし、割込みベンディング
テーブル28の受け付けた割込みレベルの割込み登録数
を1だけデクリメントし、ステータスレジスタ14およ
びプログラムカウンタの内容をスタック領域(メモリ1
の特定領域)に退避させ、ステータスレジスタ14のS
ビットを“1”にし、さらに、受け付けた割込みレベル
をステータスレジスタ14の割込みマスクビットに設定
する。
このような準備処理が終わると、前記の受け付けた割込
みのレベルに対応した例外ベクタのアドレスを生成して
プログラムカウンタに設定し、機械語インタプリタ部2
4を起動する。
機械語インタプリタ部24はプログラムカウンタの指定
に従って、受け付けた割込み要求のレベルに対応した割
込みルーチンの命令を1語ずつ読み出して解釈し、模擬
実行する。この場合も、1命令毎に制御部24に制御が
戻され、制御部24によってプログラムカウンタの更新
が行われ、また割込み発生要求フラグ26のチェックが
行われる。
このようにして割込み処理ルーチンが模擬実行され、そ
のリターン命令が読み出されると、制御w524はスタ
ック領域に退避されていた内容をステータスレジスタ1
4およびプログラムに戻し、割込みにより中断されてい
た対象プログラムの模擬実行を再開させる。
さて前述のように、割込み処理ルーチンの実行中におい
ても、その一つの命令を実行するたびに、制御部24は
割込み発生要求フラグ26をチェックする。
なお、この場合はステータスレジスタ14のSビットが
“1”であるので、それが“0″の場合とは、次に述べ
るように割込みレベルと割込みマスクレベルとの比較条
件が若干違う。
そのチェックで割込み発生フラグ26がセット状態であ
ると、制御部24は割込みベンディングテーブル26内
の割込み登録数が1以上の最高の割込みレベルを検索し
、その割込みレベルとステータスレジスタ14の割込み
マスクビットによるレベルとを比較する。前者のレベル
が後者のレベル以下の場合、その割込みは受け付けず、
実行中の割込みルーチンを実行を続ける。
前者の割込みのレベルが後者のレベルより高い場合、制
御部24は実行中の割込み処理ルーチンの実行を中断し
、その割込み要求を受け付ける。
まず、その割込み登録数を1だけデクリメントし、また
、その時のステータスレジスタ14およびプログラムカ
ウンタの内容をスタック領域に退避させ、ステータスレ
ジスタ14のSビットを“1”に設定し、さらに割込み
マスクビットを新しく受け付けた割込みレベルに設定す
る。
そして、新しく受け付けた割込みのレベルによって例外
ベクタのアドレスを生成してプログラムカウンタに設定
し、機械語インタプリタ部12を起動させ、その割込み
処理ルーチンの模擬実行を行わせる。
この割込み処理ルーチンの模擬実行途中において、さら
にレベルの高い割込み要求が発生した場合にも、同様に
受け付けられる。
このように多重割込みが発生した場合、ある割込み処理
ルーチンが終了した後、中断していた別の割込み処理ル
ーチンが実行される。
ここまでの説明から明らかなように、このシミュレータ
によれば、ハードウェアからの非同期な割込みを擬似的
に自動的に発生させ、その処理を模擬することができる
。しかも、多重割込みの模擬が可能である。
このように、このシミュレータによれば、対象プログラ
ムの走るシステムの実機環境に近い条件で割込み処理の
模擬を行って、多重割込みも含めた割込み機能のテスト
およびデバッグを行うことができる。
以上、一実施例について説明したが、この発明はそれだ
けに限定されるものではない。
例えば、前記実施例においては、割込み要求のオフセッ
トサイクルの代わりに、割込み登録命令の発行時のサイ
クルカウンタ30の値とオフセットサイクルの加算値を
時間情報として割込み待ち行列20に登録してもよい。
こ゛のようにした場合、I/O制御部22は前記実施例
におけるような時間情報の値のデクリメントを行わず、
その時間情報の値とサイクルカウンタ30の値とを直接
的に比較し、発生要求時刻に達した割込み要求の検索を
行うことができる。
これ以外にも、この発明はその要旨を逸脱しない範囲内
で様々に変形して実施し得るものである。
[発明の効果] 以上説明したように、この発明にあっては、割込み発生
時刻を指定するための時間情報および割込みレベル情報
とともに複数の割込みの要求を記憶し、発生時刻に到来
した割込みの要求を割込みレベルの高いものから優先的
に受け付けて、その割込みを発生するから、ハードウェ
アからの非同期な割込みを擬似的に自動的に発生し、プ
ログラムの割込み機能を実機環境に近い条件でテストし
デバッグを行うことができ、また、多重割込みを容易に
発生できるので、プログラムの多重割込み機能に関する
テストおよびデバッグも容易に行うことができる。
このように、この発明によれば、従来のシミュレータの
問題点を解消し、各種制御システムのプログラムなどの
割込み機能のテストおよびデバッグを行う場合に好適な
シミュレータを実現できる。
【図面の簡単な説明】
第1図は、この発明によるシミュレータの一実施例の機
能的構成を簡略化して示す概略ブロック図、第2図は同
シミュレータが実現される計算機システムの簡略化した
システム構成図、第3図は同シミュレータの割込み待ち
行列の構成図、第4図は同シミュレータの割込みベンデ
ィングテーブルの構成図である。 /O・・・プログラムメモリ、12・・・機械語インタ
プリタ部、144・・・ステータスレジスタ、18・・
・I/O定義ファイル、18・・・I/O処理部、20
・・・割込み待ち行列、22・−1/O制御部、24・
・・制御部、26・・・割込み発生要求フラグ、28・
・・割込みベンディングテーブル、30・・・サイクル
カウンタ。

Claims (4)

    【特許請求の範囲】
  1. (1)割込みルーチンを含むプログラムの模擬実行を行
    うためのシミュレータにおいて、複数の割込みの要求を
    時間情報および割込みレベル情報とともに記憶するため
    の手段と、前記プログラムの模擬実行中に、前記手段に
    よって記憶されている複数の割込みの要求の中から、そ
    の時間情報および割込みレベル情報に従い、割込み発生
    時刻に到達した割込みの要求を割込みレベルの高いもの
    から優先的に受け付けて、その割込みを発生させるため
    の手段とを有することを特徴とするシミュレータ。
  2. (2)割込みの要求はプログラムのI/O命令の発行時
    に発生してその記憶のための手段に記憶されることを特
    徴とする特許請求の範囲第1項に記載のシミュレータ。
  3. (3)割込みの要求を受け付けて、その割込みを発生さ
    せるための手段は、受け付けるべき割込みの要求を定期
    的に検索することを特徴とする特許請求の範囲第1項ま
    たは第2項に記載のシミュレータ。
  4. (4)割込みの要求を受け付けて、その割込みを発生さ
    せるための手段は、割込み処理ルーチンの模擬実行中に
    、その割込みレベルより高いレベルの割込みの要求を受
    け付けて発生させることができることを特徴とする特許
    請求の範囲第1項ないし第3項のいずれか1項に記載の
    シミュレータ。
JP61203178A 1986-08-29 1986-08-29 シミユレ−タ Pending JPS6358550A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61203178A JPS6358550A (ja) 1986-08-29 1986-08-29 シミユレ−タ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61203178A JPS6358550A (ja) 1986-08-29 1986-08-29 シミユレ−タ

Publications (1)

Publication Number Publication Date
JPS6358550A true JPS6358550A (ja) 1988-03-14

Family

ID=16469748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61203178A Pending JPS6358550A (ja) 1986-08-29 1986-08-29 シミユレ−タ

Country Status (1)

Country Link
JP (1) JPS6358550A (ja)

Similar Documents

Publication Publication Date Title
JP2753500B2 (ja) 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法
US5129064A (en) System and method for simulating the I/O of a processing system
US6895460B2 (en) Synchronization of asynchronous emulated interrupts
JP3936737B2 (ja) 設計確認用疑似ランダム命令を生成するためのシステム、及びその方法
JP5270330B2 (ja) マルチコアマイコンシステムのシミュレーション方法及びシミュレーション装置
US5361352A (en) Method for debugging in a parallel computer system and system for the same
US5363501A (en) Method for computer system development verification and testing using portable diagnostic/testing programs
JPH06242987A (ja) コンピュータ装置においてマイクロプロセッサの正常な処理の引継ぎをホストプロセッサが実行する方法および装置
US20150212835A1 (en) Automatic identification of interesting interleavings in a multithreaded program
US20120278660A1 (en) Method and device for testing a system comprising at least a plurality of software units that can be executed simultaneously
KR920003044B1 (ko) 가상 머신 시스템용의 게스트 머신 실행 제어 시스템
US7016826B2 (en) Apparatus and method of developing software for a multi-processor chip
US7577557B2 (en) Simulator and simulation method for behaviors of processors
JP2919302B2 (ja) Cpuシミュレーション方法
JP2817786B2 (ja) シミュレーション装置及びシミュレーション方法
Carver et al. Deterministic execution testing of concurrent Ada programs
JPS6358550A (ja) シミユレ−タ
CN112416536B (zh) 提取处理器执行上下文的方法及处理器
JPH0677236B2 (ja) I/o割込みをシミュレートする装置及び方法
JP2944321B2 (ja) 論理評価システム
JPH07253909A (ja) マイクロプログラム検証方法
JPH05282160A (ja) リアルタイム・シミュレーション開発機構
JPH03218539A (ja) 並列計算機システムにおけるデバッグ方法
JPH05250221A (ja) シミュレータ実行方式
JPH0883198A (ja) プログラムシミュレーション装置