JP2861962B2 - コンピュータプログラムのシミュレーション装置および方法 - Google Patents

コンピュータプログラムのシミュレーション装置および方法

Info

Publication number
JP2861962B2
JP2861962B2 JP8241945A JP24194596A JP2861962B2 JP 2861962 B2 JP2861962 B2 JP 2861962B2 JP 8241945 A JP8241945 A JP 8241945A JP 24194596 A JP24194596 A JP 24194596A JP 2861962 B2 JP2861962 B2 JP 2861962B2
Authority
JP
Japan
Prior art keywords
simulation
time
peripheral circuit
machine language
instruction 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.)
Expired - Fee Related
Application number
JP8241945A
Other languages
English (en)
Other versions
JPH1091480A (ja
Inventor
雅春 井上
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.)
NEC Corp
Original Assignee
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP8241945A priority Critical patent/JP2861962B2/ja
Priority to US08/928,433 priority patent/US5963725A/en
Publication of JPH1091480A publication Critical patent/JPH1091480A/ja
Application granted granted Critical
Publication of JP2861962B2 publication Critical patent/JP2861962B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロコンピュ
ータプログラムのシミュレーション方法に関する。
【0002】
【従来の技術】マイクロコンピユータ(以下マイコンと
記述)を持つハードウェアを動作させるためには、マイ
コンに動作を指示するプログラムが不可欠である。そし
て、このプログラムの開発においては、プログラムが正
常に動作することを碓認するため、または、プログラム
が正常に動作しない場合にはその原因を調ベるために、
そのプログラムを搭載するハードウェア上で実行させて
動作確認をすることが必要になる。しかし、プログラム
の開発がハードウェアの開発と同時に行われハードウェ
アの完成後でないと動作確認することができない場合、
または、ハードウェアが高価であり動作確認に莫大なコ
ストがかかってしまう場合など、実際のハードウェア上
でプログラムを実行することができない場合がある。そ
こで、これらの問題を解決するためにプログラムを実際
に搭載するのとは別のハードウェア上で開発中のプログ
ラムを実行させて動作確認を行なうシミュレーション方
法が用いられている。
【0003】従来のシミュレーション方法の例として、
制御手段に制御される複数のシミュレーション手段を動
かして動作検証をする方法が、特開平6−208480
号公報に記載されている。
【0004】図9は上記公報に記載される従来のシミュ
レーション方法によるシミュレーションを行なうシステ
ムの構成を示すブロック図である。
【0005】この従来のシミュレーションを行うシステ
ムは、キーボード1100と、コンピュータ1101
と、シミュレーション情報保持用メモリ1106と、デ
ィスプレイ1108とで構成されている。また、コンピ
ュータ1101は、入力解析手段1102と、シミュレ
ーション制御手段1103と、機械語命令実行シミュレ
ーション手段1104と、周辺回路シミュレーション手
段1105と、シミュレーション情報表示手段1107
とで構成されている。
【0006】プログラム開発者からの指示を示すキーボ
ード1100への入力内容は、マイコン1101の入力
解析手段1102に伝達される。入力解析手段1102
は、キーボード1100から伝達された入力内容に示さ
れる指示を解析し、指示がシミュレーション実行のため
の指示である場合はシミュレーション制御手段1103
ヘ指示を送り、情報表示に関するものであればシミュレ
ーション情報表示手段1107ヘ指示を送る。シミュレ
ーション制御手段1103は、機械語命令実行シミュレ
ーション手段1104と周辺回路シミュレーション手段
1105の各々にシミュレーションの実行・中止などの
制御を行なう。機械語命令実行シミュレーション手段1
104は、プログラム開発者が作成したプログラムを機
械語レベルで順次実行する。周辺回路シミュレーション
手段1105は、マイコンの周辺回路をシミュレーショ
ンする。なお、ここでいう周辺回路とはハードウェアの
制御に有効なタイマ機能や通信機能を実現するものであ
る。シミュレーション情報保持用メモリ1106は、シ
ミュレーション実行時の機械語命令実行シミュレーショ
ン手段1104と周辺回路シミュレーション手段110
5の情報を記憶する。また、シミュレーション情報保持
用メモリ1106は特殊レジスタをその中に有し、周辺
回路シミュレーション手段1105は、機械語命令実行
シミュレーション手段1104による特殊機能レジスタ
ヘの書き込み内容により制御される。シミュレーション
情報表示手段1107は、入力解析手段1102とシミ
ュレーション制御手段1103から送られた指示に従っ
てシミュレーション情報保持用メモリ1106から情報
を取得し、ディスプレイ1108に対して取得した情報
表示の指示を行なう。ディスプレイ1108は、シミュ
レーション情報表示手段1107から指示された表示を
行う。
【0007】ここで、周辺装置を有するシステムを制御
するプログラムの動作確認を実施する場合には、そのプ
ログラム単独のシミュレーションを行なっても意味はな
く、周辺装置からの入出力をもシミュレーションするこ
とが動作確認の上では重要となる。そこで、周辺装置の
動作をシミュレーションする周辺回路シミュレーション
手段1105を、機械語命令実行シミュレーション手段
1104と同時に動作させ、各手段間のやりとりを含め
たシミュレーションを行なっている。この場合、各手段
のデータや各種コマンドの入出力はシミュレーション情
報保持用メモリ1106を共有メモリとして使用してシ
ミュレーションが行われるため、各手段のシミュレーシ
ョンを独自に実行することができなかった。
【0008】そこで、上記の従来のシミュレーション方
法では、シミュレーション制御手段1103の指示によ
り、周辺回路シミュレーションと機械語命令実行シミュ
レーションを1シミュレーション単位時間毎に交互に実
行するものとし、一方のシミュレーションに係る処理が
他方のシミュレーションの動作に影響を与える場合に
は、その処理を行った後に次のシミュレーション動作を
実行するようにしていた。ここで、シミュレーション単
位時間とは、シミュレーションを行う最低単位の時間の
事であり、シミュレーション対象のマイコンの動作クロ
ックや命令実行クロックのことである。
【0009】図10は上記従来例におけるコンピュータ
1101の各部の動作を示すフローチャートであり、以
下に図10を用いて従来のシミュレーション方法の手順
について説明する。入力解析手段1102によってシミ
ュレーション実行の指示がシミュレーション制御手段1
103ヘ送られると、シミュレーション制御手段110
3は、シミュレーション単位時間内で周辺回路シミュレ
ーション実行のための指示を周辺回路シミュレーション
手段1105ヘ出力する(ステップ1200)。周辺回
路シミュレーションが終了すると、シミュレーション制
御手段1103は、その結果割り込みが発生したかどう
かを確認し(ステップ1201)、割り込みが発生して
いた場合、割り込み開始のための処理を行ない(ステッ
プ1202)、その後シミュレーション単位時間内での
機械語命令実行シミュレーション開始の指示を機械語命
令実行シミュレーション手段1104に出力する(ステ
ップ1203)。ステップ1201にて割り込みが発生
していないことが確認された場合、割り込み開始のため
の処理を行なわずに機械語命令実行シミュレーション開
始の指示を機械語命令実行シミュレーション手段110
4に出力する。そして、機械語命令実行シミュレーショ
ンが終了すると、1シミュレーション単位時間の各シミ
ュレーションが終了したので、シミュレーション制御手
段1103は、シミュレーション終了か続行かを確認し
(ステップ1204)、終了なら処理を終え、続行なら
最初の処理ヘもどる。
【0010】ステップ1204におけるシミュレーショ
ンを終了するかどうかの判断要因としてはブレイクポイ
ントによる中断やユーザーからの指示による中断があ
る。ブレイクポイントとは、ソフトウェア的にプログラ
ムを中断させるためのコマンドであるブレイクコマンド
が挿入されている場所をいう。
【0011】上記方法では、シミュレーション単位時間
の時間間隔で各シミュレーションを交互に実行している
ので、他方のシミュレーション手段の動作に影響を与え
るような割り込み等の動作が途中で発生しても、その処
理がすぐに行えるため各シミュレーションを正確に実行
することができる。
【0012】
【発明が解決しようとする課題】上述した従来のシミュ
レーション方法では、周辺回路シミュレーションと機械
語命令実行シミュレーションを1シミュレーション単位
時間で交互にシミュレーションを行なっている、そのた
め各々のシミュレーションの各手段間の通信や前処理の
オーバーヘッドのため、シミュレーション速度が低下す
るという問題があった。
【0013】本発明の目的は、マイコンのシミュレーシ
ョンの様に時間的な事象をも正確に行うことが必要なシ
ミュレータで実行されシミュレーション速度の性能向上
することのできるシミュレーション方法を提供すること
である。
【0014】
【課題を解決するための手段】上記目的を達成するため
に、本発明のコンピュータプログラムのシミュレーショ
ン方法は、機械語命令実行シミュレーションおよび周辺
回路シミュレーションを、各シミュレーションの結果が
互いに影響を与えない時間内では連続して行う。
【0015】また、本発明のコンピュータプログラムの
シミュレーション装置は、機械語命令実行シミュレーシ
ョンが終了すると、その後行われる機械語命令実行シミ
ュレーションの実行結果が周辺回路シミュレーションの
動作に影響を与える動作が発生するまでの時間を求めて
周辺回路シミュレーション手段に通知し、前記機械語命
令実行シミュレーションに影響を与えない範囲内での前
記周辺回路シミュレーションが終了すると、前記周辺回
路シミュレーションが実行された時間を前記機械語命令
実行シミュレーション手段に通知するシミュレーション
制御手段を有し、前記各シミュレーション手段のそれぞ
れは、前記シミュレーション制御手段より通知された時
間内でシミュレーションを連続して行う。
【0016】本発明の実施態様によれば、シミュレーシ
ョン制御手段は、前記機械語命令実行シミュレーション
動作終了後、分岐命令が発生するまでの時間、ソフトウ
ェア割り込み命令が発生するまでの時間、特殊レジスタ
書き込み命令が発生するまでの時間、および連続してシ
ミュレーションを行うことが許容される時間の最大値と
して予め定められている時間であるシミュレーションM
AX時間、のうちの最も短い時間を、前記命令実行シミ
ュレーションの実行結果が周辺回路シミュレーションの
動作に影響を与える動作が発生するまでの時間として求
める。
【0017】本発明は、機械語命令実行シミュレーショ
ン手段から周辺回路シミュレーション手段の動作に影響
を与えない最大の時間を計算し、その時間を周辺回路シ
ミュレーション手段に通知して周辺回路シミュレーショ
ンを実行させ、周辺回路シミュレーション手段では通知
された時間内で機械語命令実行シミュレーションの動作
に影響を与える動作が発生しない限り連続して周辺回路
シミュレーションを行ない、周辺回路シミュレーション
が終了すると、機械語命令実行シミュレーション手段で
は連続して、周辺回路シミュレーションが実行された時
間と同じ時間だけ連続して機械語命令実行シミュレーシ
ョンを行なうようにしたものである。
【0018】本発明のシミュレーション方法によれば、
各シミュレーションを連続して実行することができるの
で、各手段間の通信や前処理に伴うオーバーヘッドが省
けシミュレーションの処理速度を向上させることができ
る。
【0019】また、本発明は、前記各シミュレーション
の実行開始前に、前記機械語命令実行シミュレーション
から前記周辺回路シミュレーションの動作に影響を与え
ない時間をシミュレーションを行うプログラムにより求
め、前記機械語命令実行シミュレーションおよび周辺回
路シミュレーションは、各シミュレーションの結果が互
いに影響を与えない時間内では連続して行われる。
【0020】また、本発明の実施態様によれば、前記シ
ミュレーション制御手段は、前記機械語命令実行シミュ
レーションが前記周辺回路シミュレーション手段の動作
に影響を与えるまでの時間を、前記各シミュレーション
の実行開始前にシミュレーションを行うプログラムから
求める。
【0021】また、本発明の実施態様によれば、前記周
辺回路シミュレーション手段は、前記周辺回路シミュレ
ーションの動作中に機械語命令実行シミュレーション手
段の動作に影響を及ぼす割り込みが発生した場合には、
実行していたシミュレーション動作を中断し、周辺回路
シミュレーションを動作させた時間を前記シミュレーシ
ョン制御手段へ通知し、前記通知を受け付た前記シミュ
レーション制御手段は前記通知された時間を実行時間と
して前記機械語命令実行シミュレーションを開始する。
【0022】本発明は、機械語命令実行シミュレーショ
ンが周辺回路シミュレーション手段の動作に影響を与え
ない時間を、シミュレーション実行以前にシミュレーシ
ョンを行うプログラムにより予め計算しておくので、シ
ミュレーション実行中のシミュレーション時間の計算が
省け、シミュレーションの処理速度を更に向上させるこ
とができる。
【0023】
【発明の実施の形態】次に、本発明の実施形態について
図面を参照して説明する。
【0024】図1は本発明の第1の実施形態のシミュレ
ーション方法によるシミュレーションを行なうシステム
のブロック図である。
【0025】本実施形態は、図9に示した従来のシステ
ムに対し、シミュレーション制御手段103が機械語命
令実行シミュレーション手段104と周辺回路シミュレ
ーション105ヘシミュレーション時間を通知するシミ
ュレーション時間通知手段109を有する点のみが異な
るものである。
【0026】図1におけるキーボード100、入力解析
手段102、機械語命令実行シミュレーション手段10
4、周辺回路シミュレーション手段105、シミュレー
ション情報保持用メモリ106、シミュレーション情報
表示手段107、ディスプレイ108およびコンピュー
タ101は、図9に示したキーボード1100、入力解
析手段1102、機械語命令実行シミュレーション手段
1104、周辺回路シミュレーション手段1105、シ
ミュレーション情報保持用メモリ1106、シミュレー
ション情報表示手段1107、ディスプレイ1108お
よびコンピュータ1101に対応するもので、その構成
および動作は同様なため説明は省略する。
【0027】本実施形態は、機械語命令実行シミュレー
ション手段104から周辺回路シミュレーション手段1
05の動作に影響を与えない最大の時間を計算し、その
時間を周辺回路シミュレーション手段105に通知して
周辺回路シミュレーションを実行させ、周辺回路シミュ
レーション手段105では通知された時間内で機械語命
令実行シミュレーションの動作に影響を与える動作が発
生しない限り連続して周辺回路シミュレーションを行な
い、周辺回路シミュレーションが終了すると、機械語命
令実行シミュレーション手段104では連続して、周辺
回路シミュレーションが実行された時間と同じ時間だけ
連続して機械語命令実行シミュレーションを行なうよう
にしたものである。
【0028】次に、図2を用いて本実施形態のシミュレ
ーション方法の処理手順について説明する。
【0029】まず、シミュレーション制御手段103
は、シミュレーションを行なうプログラムにおいて、次
の分岐命令が発生するまでの時間、次のソフトウェア割
り込み命令が発生するまでの時間、次の特殊レジスタ書
き込み命令が発生するまでの時間、および予め設定され
ているデフォルトのシミュレーションMAX時間のうち
の最も短い時間をシミュレーション時間とする(ステッ
プ200)。ソフトウエア割り込み命令とは機械語命令
実行により割り込みを発生させるための命令であり、周
辺回路からの割り込みとは異なる。デフォルトのシミュ
レーションMAX時間とは、シミュレーションを連続し
て処理する場合、途中にシミュレーションを中断させる
要因がない場合でも連続して処理する時間が長すぎない
ように設けられた一定の制限時間である。シミュレーシ
ョン分岐命令までと、ソフトウェア割り込み命令までの
時間を計算する理由は、この命令の実行後は命令が分岐
するので、分岐先で周辺機能に影響を与える可能性があ
るために一旦ここまでで処理を中断するためである。ま
た、特殊機能レジスタとは、周辺機能を動作させるため
のデータを記憶するものであり、特殊機能レジスタに書
き込みを行なうと周辺機能の動作を変更することにな
る。デフォルトのシミュレーションMAX時間を設定す
る理由は、連続して処理を行なうことによって、シミュ
レーション実行時に動的に表示を変更する場合の表示更
新間隔が空き過ぎないためである。次に、シミュレーシ
ョン制御手段103は、計算によって得られたシミュレ
ーション時間を周辺回路シミュレーション手段105に
伝達するとともに、周辺回路シミュレーションの実行を
指示する(ステップ201)。
【0030】周辺回路シミュレーション手段105で
は、シミュレーション制御手段103から伝達された時
間内で周辺回路シミュレーション処理を行なうが、機械
語命令実行シミュレーションヘの影響が考えられる割り
込みなどが発生した場合その時点で周辺回路シミュレー
ションを中断して、その中断するまでに周辺回路シミュ
レーションを実行した時間をシミュレーション制御手段
103ヘ通知し、処理をシミュレーション制御手段10
3ヘ戻す。また、周辺回路シミュレーション手段105
は、伝達された時間内で中断なく周辺回路シミュレーシ
ョンを実行した場合にも、終了までにシミュレーション
を実行した時間をシミュレーション制御手段103ヘ通
知し処理をシミュレーション制御手段103ヘ戻す。
【0031】シミュレーション制御手段103では、周
辺回路シミュレーション手段105から通知された時間
を新たなシミュレーション時間として設定する(ステッ
プ202)。シミュレーション制御手段103は、新た
に設定されたシミュレーション時間を機械語命令実行シ
ミュレーション手段104ヘ通知するとともに、そのシ
ミュレーション時間だけ機械語命令実行シミュレーショ
ンの実行を行う指示を出力する(ステップ203)。
【0032】周辺回路シミュレーション手段105が、
機械語命令実行シミュレーション手段104より通知さ
れた時間だけ中断なく周辺回路シミュレーションを実行
した場合は、周辺回路シミュレーション手段105から
機械語命令実行シミュレーション手段104へ通知され
る時間は、最初に機械語命令実行シミュレーション手段
104から周辺回路シミュレーション手段105に通知
した時間と同じであるため、機械語命令実行シミュレー
ション手段104は、周辺回路シミュレーション手段1
05に影響を与える可能性のある動作が発生するプログ
ラムのポイントの手前まで機械語命令実行シミュレーシ
ョンを連続して実施することとなる。
【0033】周辺回路シミュレーション手段105が、
機械語命令実行シミュレーション手段104より通知さ
れた時間より短い時間で周辺回路シミュレーションを中
断した場合は、機械語命令実行シミュレーション手段1
04は、機械語命令実行シミュレーションを周辺回路シ
ミュレーション手段105より通知された時間だけ実行
し中断すると、周辺回路シミュレーションが中断したポ
イントに対応したポイントで機械語命令実行シミュレー
ションを中断することとなる。そして、そのポイントで
周辺回路シミュレーションにおいて割り込みが発生した
かどうかを再確認し(ステップ204)、割り込みが発
生していれば割り込み実行のための処理を行う(ステッ
プ205)。この処理により、周辺回路シミュレーショ
ンにおいて発生した割り込みは処理される。
【0034】上記の動作により機械語命令実行シミュレ
ーションは、周辺回路シミュレーションが実行された時
間と同じ時間だけ実行される。
【0035】その後、コンピュータプログラムのシミュ
レーションを終了すべきか続行すべきかを確認し(ステ
ップ206)、終了すべきならばシミュレーション動作
の処理を終え、続行すべきなら最初の処理ヘもどる。
【0036】そして、再度同じ処理を繰返し行うことに
より機械語命令実行シミュレーション手段104と、周
辺回路シミュレーション手段105はお互いの動作に影
響を及ぼす動作が発生するまでの間は連続して各シミュ
レーションを実行しながら、交互に各シミュレーション
を実行することとなる。
【0037】次に図2のシミュレーション時間を取得す
るための処理(ステップ200)を図3を用いて説明す
る。まず最初にシミュレーション時間計算用のカウンタ
の初期化を行なう(ステップ300)。このカウンタの
初期化は最初のシミュレーション時間の計算ならば”
0”を入れ、2回目以降のシミュレーション時間の計算
ならば前回の計算時に後述するステップ306か307
の処理で保存した初期値を入れる。
【0038】次にシミュレーション対象プログラム格納
領域から命令コードを取得する(ステップ301)。取
得した命令が分岐、ソフトウェア割り込み、特殊機能レ
ジスタヘの書き込みのいずれかであるかどうかを確認し
(ステップ302)、いずれかであれば次回シミュレー
ション時間計算時にカウンタに初期値として入れる値
を”0”として保存し(ステップ307)、カウンタの
値をシミュレーション時間として処理を終了する(ステ
ップ309)。取得した命令が上記のいずれでもなけれ
ば、ブレイクコマンド挿入等のブレイク条件が設定され
ているかどうかを確認し(ステップ303)、ブレイク
条件が設定されていたらステップ307ヘ移り、ブレイ
ク条件が設定されていなければ命令実行に必要な時間を
取得する(ステップ304)。
【0039】ステップ304で取得する命令実行に必要
な時間はシミュレータ内部で持っている命令と実行時間
が1対1で対応するテーブルから取得する。
【0040】次に“カウンタ+取得した時間”がMAX
値を越えるかどうかを確認し(ステップ305)、越え
る場合にはステップ304の処理で取得した時間を今回
のシミュレーションではカウントせず次回シミュレーシ
ョン時にカウントするためカウンタの初期値として保存
(ステップ306)した後ステップ309の処理ヘ移
り、越えていなければ、カウンタにステップ304で取
得した時間を加えた後(ステップ308)、ステップ3
01の処理ヘ戻り、再びステップ301〜308の処理
を繰り返す。
【0041】上記の処理により機械語命令実行シミュレ
ーションによって周辺回路シミュレーションの動作に影
響を与えない時間を求めることができる。
【0042】次に、本発明の第2の実施形態について説
明する。第1の実施形態では、シミュレーション時間の
計算をシミュレーション実行中に行っているため、その
計算に要する時間だけシミュレーションの処理速度が遅
くなってしまっていた。
【0043】機械語命令実行シミュレーションが周辺回
路シミュレーションの動作に影響を与えるのは、特殊機
能レジスタヘの書き込みがある場合であり、そのタイミ
ングはユーザーが作成するプログラムから知ることが出
来る。また、プログラムの流れが変わるタイミングや割
り込み発生命令もユーザーが作成するプログラムから知
ることが出来る。一方、周辺回路シミュレーションから
機械語命令実行シミュレーションヘの影響は周辺回路シ
ミュレーションの実行時でなければ判らない。
【0044】そこで、本実施形態ではシミュレーション
実行開始前に、シミュレーションするプログラムより機
械語命令実行シミュレーションから周辺回路シミュレー
ションの動作に影響を与えないシミュレーション時間を
あらかじめ計算して求めておくことにより、計算時間を
省き、シミュレーションの処理速度を更に高めるように
するものである。
【0045】機械語プログラムは人間には分かりづらい
ため、プログラム開発者は人間が読み易い形態(以降ソ
ースプログラムと記述する)でプログラムを作成し、そ
れを機械語プログラムヘ翻訳するソフトウェアを使って
機械語プログラムを作成している。
【0046】また、ソースプログラムを翻訳するときに
は、デバッグに必要な情報を機械語プログラムと共に作
成し、デバッグ時に利用する事が出来る。たとえば、機
械語プログラムがソースプログラムの何行目に相当する
かというライン情報がデバッグ情報の簡単な例である。
そのデバッグ情報を拡張しシミュレーション時間の情報
を持たせることにより、シミュレーション時に利用する
ことが可能である。
【0047】図4はシミュレーション前に機械語命令で
書かれたソースプログラムからシミュレーション時間の
情報を計算する方法を示すフローチャートであり、図4
に従って計算方法を説明し、さらに表1、2、図5〜図
7を使って具体例を示す。
【0048】まずステップ400の処理でソースプログ
ラムの行数を示すlinenoに”1”を入れ初期化す
る。次にlineno番目の機械語命令が分岐/ソフト
ウエア割り込み/特殊機能レジスタヘの書き込み命令の
いずれかどうかを確認する(ステップ401)。いずれ
でもなければlineno番目のデバッグ情報を処理中
のデバッグ情報群に加える(ステップ402)。
【0049】デバッグ情報をデバッグ情報群として扱う
形態としてここではキュー構造を考える。キュー構造は
一つの情報が前後の情報を指し示す手段を持ち、情報群
が列を形作り、情報数を増やしたりつなげ変えたりする
のに適している。
【0050】ステップ402の処理の後、処理中のキュ
ーにつながっている全てのデバッグ情報にlineno
番目の機械語命令の命令クロックを足す。
【0051】ステップ401の処理で、機械語命令が分
岐/ソフトウェア割り込み/特殊機能レジスタのいずれ
かの場合は、処理中のキューにつながっているデバッグ
情報を処理済みのキユーにつなぎ変え(ステップ40
4)、その後lineno番目のデバッグ情報にlin
eno番目の機械語命令の命令クロックを記入し処理済
みのキューに加える(ステップ405)。ステップ40
2〜403かステップ404〜405のいずれかの処理
が終ったらlinenoを1増やし(ステップ40
6)、lineno番目の機械語命令が存在するかどう
かを調ベ(ステップ407)、存在する場合ステップ4
01の処理に戻りステップ401〜ステップ406の処
理を繰り返す。ステップ407でlineno番目の機
械語命令が存在しない場合処理中のキューにつながって
いるデバッグ情報を処理済みのキューにつなぎ変え処理
を終了する(ステップ408)。
【0052】表1はシミュレーション対象プログラムの
例であり、一番左端の数字は行数を示し、5行目と9行
目が分岐命令で8行目が特殊命令レジスタヘの書き込み
である。表2は命令とその命令実行に必要なクロックが
一対一になったテーブルである。
【0053】
【表1】
【0054】
【表2】 図5〜図7は図4のフローチャートに従い表1のシミュ
レーション対象プログラムを表2のテーブルを使って処
理した際の処理途中の状態を示した図であり、各々表1
のプログラムの4行目、5行目、7行目まで処理しステ
ップ407の処理に到達した際の状態を示している。
【0055】図5ではまだ処理済みのデバッグ情報は存
在せず、処理中のキューには表1の1〜4行に対するデ
バッグ情報がつながっている。1行目に対するデバッグ
情報のクロック情報には1行目から4行目の命令クロッ
クが足してあり、2行目に対するデバッグ情報には2行
目から4行目のクロックが足してある。他の行に対して
も同様である。図6では、5行目は分岐命令なので処理
中のキューにつながっているデバッグ情報を処理済みの
キューにつなぎ変え、5行目の分岐命令に対するデバッ
グ情報自身処理済みのキューにつないだ状態を示してい
る。1〜4行目に対するクロック情報は図5の時に保持
していた値と変わらず、5行目にのみクロック情報を書
き込んでいる。図7では更に7行目まで処理が進んだ所
である。以下同様に最終行まで処理を進める。
【0056】図8は、図2のステップ200のシミュレ
ーション時間を計算する処理に本実施形態のシミュレー
ション時間を計算する方法を適用したものであり、図4
〜図7、表1、2で示した方法で作成したデバッグ情報
から次の分岐、割り込み、特殊機能レジスタ迄の時間情
報を取得し利用する際のシミュレーション時間の計算処
理を表したフローチャートである。
【0057】このフローチャートの処理は、まずカウン
タの初期化を行なう(ステップ1000)。次に、デバ
ッグ情報から次の分岐、割り込み、特殊機能レジスタヘ
の書き込みまでの時間を取得する(ステップ100
1)。取得した時間内にブレイクポイントが存在する
か、またはMAX値を越えるかどうかを調ベ(ステップ
1002)、ブレイクポイントが存在していたりMAX
値を越えるなら図3の処理と同等のステップ1002〜
1010、1012の処理を行なう。ブレイクポイント
が設定されていずかつMAX値を越えていなければ、取
得した時間をカウンタに加えステップ1011、101
2の処理を行ない処理を終了する。
【0058】
【発明の効果】コンピュータプログラムのシミュレーシ
ョンにおいて、各手段間の通信や前処理に伴うオーバー
ヘッドを省くことにより、処理速度の向上を図ることが
出来る。
【図面の簡単な説明】
【図1】本発明の第1の実施形態のシミュレーション方
法によるシミュレーションを行なうシステムを示すブロ
ック図である。
【図2】本発明のシミュレーション方法を示すフローチ
ャートである。
【図3】図2のシミュレーション時間の計算処理を詳し
く説明したフローチャートである。
【図4】シミュレーション時間の情報をデバッグ情報に
持たせる手順を示したフローチャートである。
【図5】図4のフローチャートで処理するデバッグ情報
の状態を示す図である。
【図6】図4のフローチャートで処理するデバッグ情報
の状態を示す図である。
【図7】図4のフローチャートで処理するデバッグ情報
の状態を示す図である。
【図8】本発明の第2の実施形態のシミュレーション方
法を示すフローチャートである。
【図9】従来のシミュレーション方法によるシミュレー
ションを行なうシステムを示すブロック図である。
【図10】従来のシミュレーション方法を示すフローチ
ャートである。
【符号の説明】
100 キーボード 101 コンピュータ 102 入力解析手段 103 シミュレーション制御手段 104 機械語命令実行シミュレーション手段 105 周辺回路シミュレーション手段 106 シミュレーション情報保持用メモリ 107 シミュレーション情報表示手段 108 ディスプレイ 109 シミュレーション時間通知手段 200〜206 ステップ 300〜309 ステップ 400〜408 ステップ 1000〜1012 ステップ 1100 キーボード 1101 コンピュータ 1102 入力解析手段 1103 シミュレーション制御手段 1104 機械語命令実行シミュレーション手段 1105 周辺回路シミュレーション手段 1106 シミュレーション情報保持用メモリ 1107 シミュレーション情報表示手段 1108 ディスプレイ 1200〜1204 ステップ

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 コンピュータプログラムのシミュレーシ
    ョンを機械語レベルで順次実行することにより行う機械
    語命令実行シミュレーション手段と、マイクロコンピュ
    ータの周辺回路をシミュレートする周辺回路シミュレー
    ション手段とを備えるコンピュータプログラムのシミュ
    レーション装置において、 機械語命令実行シミュレーションが終了すると、その後
    行われる機械語命令実行シミュレーションの実行結果が
    周辺回路シミュレーションの動作に影響を与える動作が
    発生するまでの時間を求めて前記周辺回路シミュレーシ
    ョン手段に通知し、前記機械語命令実行シミュレーショ
    ンに影響を与えない範囲内での前記周辺回路シミュレー
    ションが終了すると、前記周辺回路シミュレーションが
    実行された時間を前記機械語命令実行シミュレーション
    手段に通知するシミュレーション制御手段を有し、 前記各シミュレーション手段のそれぞれは、前記シミュ
    レーション制御手段より通知された時間内でシミュレー
    ションを連続して行うことを特徴とするコンピュータプ
    ログラムのシミュレーション装置。
  2. 【請求項2】 請求項記載のコンピュータプログラム
    のシミュレーション装置において、前記シミュレーショ
    ン制御手段は、前記機械語命令実行シミュレーション動
    作終了後、分岐命令が発生するまでの時間、ソフトウェ
    ア割り込み命令が発生するまでの時間、特殊レジスタ書
    き込み命令が発生するまでの時間、および連続してシミ
    ュレーションを行うことが許容される時間の最大値とし
    て予め定められている時間であるシミュレーションMA
    X時間、のうちの最も短い時間を、前記命令実行シミュ
    レーションの実行結果が周辺回路シミュレーションの動
    作に影響を与える動作が発生するまでの時間として求め
    るコンピュータプログラムのシミュレーション装置。
  3. 【請求項3】 コンピュータプログラムのシミュレーシ
    ョンとして、機械語レベルで順次実行することにより行
    う機械語命令実行シミュレーションと、コンピュータの
    周辺回路をシミュレートする周辺回路シミュレーション
    とを交互に行うコンピュータプログラムのシミュレーシ
    ョン方法において、 前記各シミュレーションの実行開始前に、前記機械語命
    令実行シミュレーションから前記周辺回路シミュレーシ
    ョンの動作に影響を与えない時間をシミュレーションを
    行うプログラムにより求め、 前記機械語命令実行シミュレーションおよび周辺回路シ
    ミュレーションは、各シミュレーションの結果が互いに
    影響を与えない時間内では連続して行われることを特徴
    とするコンピュータプログラムのシミュレーション方
    法。
  4. 【請求項4】 請求項記載のコンピュータプログラム
    のシミュレーション装置において、前記シミュレーショ
    ン制御手段は、前記機械語命令実行シミュレーションが
    前記周辺回路シミュレーション手段の動作に影響を与え
    るまでの時間を、前記各シミュレーションの実行開始前
    にシミュレーションを行うプログラムから求めるコンピ
    ュータプログラムのシミュレーション装置。
  5. 【請求項5】 請求項1、2または請求項のいずれか
    に記載のコンピュータプログラムのシミュレーション装
    置において、 前記周辺回路シミュレーション手段は、前記周辺回路シ
    ミュレーションの動作中に機械語命令実行シミュレーシ
    ョン手段の動作に影響を及ぼす割り込みが発生した場合
    には、実行していたシミュレーション動作を中断し、周
    辺回路シミュレーションを動作させた時間を前記シミュ
    レーション制御手段へ通知し、前記通知を受け付た前記
    シミュレーション制御手段は前記通知された時間を実行
    時間として前記機械語命令実行シミュレーションを開始
    するコンピュータプログラムのシミュレーション装置。
JP8241945A 1996-09-12 1996-09-12 コンピュータプログラムのシミュレーション装置および方法 Expired - Fee Related JP2861962B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8241945A JP2861962B2 (ja) 1996-09-12 1996-09-12 コンピュータプログラムのシミュレーション装置および方法
US08/928,433 US5963725A (en) 1996-09-12 1997-09-12 Simulation system and method for microcomputer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8241945A JP2861962B2 (ja) 1996-09-12 1996-09-12 コンピュータプログラムのシミュレーション装置および方法

Publications (2)

Publication Number Publication Date
JPH1091480A JPH1091480A (ja) 1998-04-10
JP2861962B2 true JP2861962B2 (ja) 1999-02-24

Family

ID=17081913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8241945A Expired - Fee Related JP2861962B2 (ja) 1996-09-12 1996-09-12 コンピュータプログラムのシミュレーション装置および方法

Country Status (2)

Country Link
US (1) US5963725A (ja)
JP (1) JP2861962B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3169896B2 (ja) 1998-07-03 2001-05-28 日本電気株式会社 プログラム開発装置、プログラム開発方法及びプログラム開発プログラムを記憶した記憶媒体
US6980944B1 (en) * 2000-03-17 2005-12-27 Microsoft Corporation System and method for simulating hardware components in a configuration and power management system
US7226680B2 (en) * 2003-02-07 2007-06-05 General Motors Corporation Integrated air cooler, filter, and humidification unit for a fuel cell stack
US8762779B2 (en) * 2010-01-22 2014-06-24 Via Technologies, Inc. Multi-core processor with external instruction execution rate heartbeat
JP5528294B2 (ja) * 2010-10-20 2014-06-25 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション制御方法、システム及びプログラム
US8505089B2 (en) * 2010-12-27 2013-08-06 Kyocera Mita Corporation Image forming apparatus and control method for image forming apparatus
JP6249827B2 (ja) * 2014-03-06 2017-12-20 三菱電機株式会社 シミュレーション装置及びシミュレーションプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2159150A1 (ja) * 1972-11-30 1973-06-15 Materiel Telephonique
JPH03125233A (ja) * 1989-10-11 1991-05-28 Fuji Xerox Co Ltd 記録装置のシミュレータおよびそのシミュレーションエンジン
JPH0827745B2 (ja) * 1993-01-11 1996-03-21 日本電気株式会社 システムプログラムシミュレーション方式
US5805470A (en) * 1996-10-10 1998-09-08 Hewlett-Packard Company Verification of instruction and data fetch resources in a functional model of a speculative out-of order computer system

Also Published As

Publication number Publication date
JPH1091480A (ja) 1998-04-10
US5963725A (en) 1999-10-05

Similar Documents

Publication Publication Date Title
US6718294B1 (en) System and method for synchronized control of system simulators with multiple processor cores
JPH0533423B2 (ja)
JP2861962B2 (ja) コンピュータプログラムのシミュレーション装置および方法
JPH08328905A (ja) シミュレーション方法および装置
JP2005250937A (ja) マイクロコンピュータソフトウェアのプログラム検証装置
JPH07253909A (ja) マイクロプログラム検証方法
JP3443184B2 (ja) プログラマブルコントローラ用プログラム作成装置
JP4192380B2 (ja) Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体
JPH09198282A (ja) コンピュータ性能評価システム及び評価方法
JPS59212905A (ja) プログラマブル・コントロ−ラの制御方式
JP2000010813A (ja) シミュレーションテスト方式
KR920001103B1 (ko) 전자교환기용 소프트웨어 시뮬레이션방법
JPH04277840A (ja) 非同期命令のシミュレーション方式
JP3358123B2 (ja) コントローラの入出力シミュレート方法および装置
JPS62152045A (ja) プログラマブルコントロ−ラ
JP3638505B2 (ja) シミュレーション装置及びマイクロプロセッサ用ソフトウェアシミュレーション方法
JPH05120026A (ja) 言語処理プログラム作成装置
JPS6143347A (ja) ベクトル命令シミユレ−シヨン方法
JPS633348A (ja) デ−タ処理シミユレ−シヨン方式
JPH10154084A (ja) 命令シミュレーション方法および命令シミュレーションシステム
JPH07105045A (ja) 情報処理装置機能試験プログラムのデバッグ方式
JPH02219137A (ja) 試験プログラムの評価方式
JPH10320245A (ja) 計算機性能評価装置
JPH01159743A (ja) ファームソフトシミュレータ
JPS59146304A (ja) 加速シミユレ−シヨン機能付空調制御装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees