図面 (/)

技術 シミュレーション装置、シミュレーション方法およびプログラム

出願人 ルネサスエレクトロニクス株式会社
発明者 加藤樹子
出願日 2001年3月15日 (19年9ヶ月経過) 出願番号 2001-075002
公開日 2002年9月27日 (18年3ヶ月経過) 公開番号 2002-278775
状態 拒絶査定
技術分野 特殊なプログラム実行装置 特別なプログラム実行装置 デバッグ/監視 CAD
主要キーワード 割り込み発生タイミング 判断命令 連携部分 高速割り込み 初期化済 システムシミュレータ 周辺処理 後処理ステップ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2002年9月27日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (7)

課題

高速シミュレーションを実現できるシミュレーション装置を提供する。

解決手段

CPUの命令実行処理のシミュレーションを行う命令処理部15と、前記CPUの周辺機能のシミュレーションを行う周辺処理部16と、前記CPUに実行させるためのプログラム11aに含まれる複数の命令のうちの特定命令の実行に関する第1特定時間Tiと、前記周辺処理部において割り込みが発生する時間に関する第2特定時間Tpとに基づいて、第3特定時間Ti or Tpを決定する時間管理部17とを備え、前記周辺処理部は、前記第3特定時間の間は、前記命令処理部に前記命令実行処理のシミュレーションを実行させないよう前記周辺機能のシミュレーションを中断せずに、前記周辺機能のシミュレーションを行う。

概要

背景

シミュレーション装置システムシミュレータ)は、開発されたプログラム命令実行が、実際の計算機上でどのように処理されていくかを模擬的に実行するものである。シミュレーション装置には、CPUの命令実行シミュレーションを行う命令処理部と、周辺装置の機能(周辺機能)シミュレーションを行う周辺処理部とが、同期を取りつつ実行するものがある。

図5は、従来のシミュレーション装置を示すブロック図である。図5に示すように、シミュレーション装置50は、デバッカ部51と、シミュレーション部53とを備えている。シミュレーション部53は、命令処理部54と、周辺処理部55とを有している。

命令処理部54は、ユーザプログラム52に含まれる、加算・減算命令メモリへのデータ書き込み・読み込み命令レジスタアクセス命令などのインストラクション(命令)を処理する。周辺処理部55は、タイマによる計時を行うと共に所定のタイミングで割り込みを発生する処理を行ったり、また、データ転送系の処理やデータ変換系の処理など(これらをまとめて周辺処理という)を行う。

まず、デバッカ部51が、ユーザプログラム52をダウンロードする。デバッカ部51は、ユーザプログラム52をシミュレーション部53に出力するとともに、シミュレーションを開始する命令をシミュレーション部53に出力する。

次に、シミュレーション部53では、一単位時間(デバイスの1クロック時間)ずつ時間を進めながら、命令処理部54と周辺処理部55とで交互に処理を行っていた。

すなわち、従来のシミュレーション装置50では、図6に示すように、ターゲットCPUの命令列と周辺機能のシミュレーションを、次のような手順で実現していた。
(1)1命令分のターゲットCPUのコードをフェッチデコードし、実行処理を行う(命令処理)。
(2)上記(1)で行った1命令実行時間分の周辺機能のシミュレーションを行う(周辺処理)。
(3)上記(1)、(2)の処理を繰り返す。

また、従来のシミュレーション装置50の中には、ターゲットCPUの命令コードをホストPC上のCPUの命令コードに変換することで、高速なシミュレーションを実現するものもあったが、このようなシミュレーション装置50においても、シミュレーションの手順は、前述と同様に、ターゲットCPUの1命令分の処理実行後、その命令実行時間分の周辺機能のシミュレーションを行う。

この方法では、命令処理部54が1クロック(ステップ)分の命令を実行した後、周辺処理部55が1クロック(ステップ)分の周辺機能を実行していた。そして、時間を1クロック分進め、その後に、命令処理部54が1クロック分の次の命令を実行した後、周辺処理部55が1クロック分の周辺機能を実行していた。

特開昭64−76236号公報には、次の内容が記載されている。すなわち、命令処理部54が1ステップだけ命令実行シミュレーションを実行し、その1ステップだけ命令実行シミュレーションを終了した時点でその後の命令実行シミュレーションを中断し、命令処理部54によるその命令実行シミュレーションが中断した状態で、周辺処理部55が命令処理部54の1ステップに相当する時間の周辺機能シミュレーションを実行して、その後の周辺機能シミュレーションを中断する。周辺処理部55が中断後、命令処理部54は1ステップだけ命令実行シミュレーションを実行して中断するという手順を繰り返すというものである。

上記のように、1クロック分ずつ命令と周辺機能を実行していくと、シミュレーションの動作が遅いという問題があった。すなわち、従来のシミュレーション装置50では、命令処理部54と周辺処理部55との連携部分で時間がかかり、命令処理の高速化を行っても、シミュレーション動作全体では高速化が実現できていなかった。

従来のシミュレーション装置50では、命令処理部54で1命令の実行処理を行う毎に周辺処理部55にその命令実行処理時間を通知し、周辺処理部55でその通知された実行処理時間分の周辺処理を行う。この方法では、シミュレーション中に命令処理部54と周辺処理部55間の制御渡し(関数コール;function call)が頻繁に発生する。命令処理部54および周辺処理部55の一方が1ステップ分の処理を行ってその処理を中断した後に、命令処理部54および周辺処理部55の他方に制御渡しを行い、当該他方が同1ステップ分の処理を行う。その当該他方が同1ステップ分の処理を行ってからその処理を中断し、その後、当該他方が上記一方に制御渡しを行う。以下はその繰り返しである。このため、命令列をホストPC上のCPUの命令コードに変換して高速化を図っても、周辺処理機能との連携部分で時間がかかり、高速化の支障となっていた。

なお、特開平7−160537号公報には、次のシミュレータが記載されている。そのシミュレータは、CPUの命令実行をシミュレーションを行なうCPUシミュレーション部と、CPUの周辺装置のシミュレーションを行なう周辺機能シミュレーション部と、前記CPUシミュレーション部でシミュレーションした命令を実機上で処理した場合に要する時間の累計であるCPU経過時間を格納するCPU経過時間管理部と、前記CPUシミュレーション部の内部状態が変化するごとに状態変化が始まる直前の時点のCPU経過時間を、前記CPU経過時間管理部から取りだし、前記CPUシミュレーション部の内部状態と対応づけて履歴情報として管理する履歴情報管理部と、前記周辺機能シミュレーション部でシミュレーションした処理を実機上で処理した場合に要する時間の累計である周辺機能経過時間を格納する周辺機能経過時間管理部と、前記CPUシミュレーション部から、前記周辺機能シミュレーション部に対して処理要求があった場合、前記CPU経過時間管理部からCPU経過時間を取りだし、前記周辺機能経過時間管理部から周辺機能経過時間を取りだし、前記CPU経過時間と前記周辺機能経過時間を対応づけて後述する周辺処理情報格納部に出力し、前記周辺機能シミュレーション部から、前記CPUシミュレーション部に割り込み要求があった場合、前記周辺機能経過時間管理部から割り込みが発生した時点の周辺機能経過時間を取り出し、この割り込みが発生する基となった処理要求が発生した時点のCPU経過時間と周辺機能経過時間とを取りだし、取り出されたそれぞれの経過時間を項とする演算により、CPUシミュレーション部がどの時点にもどって割り込みを行なうのか、割り込みを行う時点のCPU経過時間を算出し、前記状態復元部に対して算出された割り込みを行う時点のCPU経過時間出力する入出力管理部と、前記入出力管理部より出力された処理要求が発生した時点のCPU経過時間と周辺機能経過時間とを対応づけた周辺処理情報を格納する周辺処理情報格納部と、前記入出力管理部により出力された割り込みを行なう時点のCPU経過時間Tが入力されると、前記履歴情報管理部の格納内容を参照し、格納されている履歴情報のうちCPU経過時間が入力されたCPU経過時間Tに等しい、あるいは入力されたCPU経過時間Tより大きくかつ入力されたCPU経過時間Tに最も近いという条件をみたす履歴情報Hを前記履歴情報管理部から検索し、前記CPUシミュレーション部を前記履歴情報Hの内部状態と同じ状態にし、前記CPU経過時間管理部に格納されているCPU経過時間を入力されたCPU経過時間Tに更新する状態復元部と、を備えることを特徴としている。

概要

高速なシミュレーションを実現できるシミュレーション装置を提供する。

CPUの命令実行処理のシミュレーションを行う命令処理部15と、前記CPUの周辺機能のシミュレーションを行う周辺処理部16と、前記CPUに実行させるためのプログラム11aに含まれる複数の命令のうちの特定命令の実行に関する第1特定時間Tiと、前記周辺処理部において割り込みが発生する時間に関する第2特定時間Tpとに基づいて、第3特定時間Ti or Tpを決定する時間管理部17とを備え、前記周辺処理部は、前記第3特定時間の間は、前記命令処理部に前記命令実行処理のシミュレーションを実行させないよう前記周辺機能のシミュレーションを中断せずに、前記周辺機能のシミュレーションを行う。

目的

本発明の目的は、高速なシミュレーションを実現できるシミュレーション装置、シミュレーション方法およびプログラムを提供することである。本発明の他の目的は、従来のシミュレーション装置と同様のシミュレーション精度を保ちつつ、シミュレーション速度を高速化できるシミュレーション装置、シミュレーション方法およびプログラムを提供することである。

効果

実績

技術文献被引用数
2件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

CPUの命令実行処理シミュレーションを行う命令処理部と、前記CPUの周辺機能のシミュレーションを行う周辺処理部と、前記CPUに実行させるためのプログラムに含まれる複数の命令のうちの特定命令の実行に関する第1特定時間と、前記周辺処理部において割り込みが発生する時間に関する第2特定時間とに基づいて、第3特定時間を決定する時間管理部とを備え、前記周辺処理部は、前記第3特定時間の間は、前記命令処理部に前記命令実行処理のシミュレーションを実行させないよう前記周辺機能のシミュレーションを中断せずに、前記周辺機能のシミュレーションを行うシミュレーション装置

請求項2

請求項1記載のシミュレーション装置において、前記特定命令は、分岐システム制御、およびIOアドレッシングの少なくともいずれか一つであるシミュレーション装置。

請求項3

請求項1または2に記載のシミュレーション装置において、前記命令処理部は、前記第3特定時間の間は、前記周辺処理部に前記周辺機能のシミュレーションを実行させないよう前記命令実行処理のシミュレーションを中断せずに、前記命令実行処理のシミュレーションを行うシミュレーション装置。

請求項4

請求項3記載のシミュレーション装置において、前記周辺処理部による前記第3特定時間の間の前記周辺機能のシミュレーションは、前記命令処理部による前記第3特定時間の間の前記命令実行処理のシミュレーションよりも先に行われるシミュレーション装置。

請求項5

請求項1から4のいずれか1項に記載のシミュレーション装置において、前記第1特定時間は、前記特定命令の実行が終了するまでの時間であるシミュレーション装置。

請求項6

請求項1から5のいずれか1項に記載のシミュレーション装置において、前記第2特定時間は、前記周辺処理部の複数の周辺機能のそれぞれについての現時点から次に割り込みが発生するまでの時間のうち、前記現時点から最も早く前記割り込みが発生する時間であるシミュレーション装置。

請求項7

請求項1から6のいずれか1項に記載のシミュレーション装置において、前記第3特定時間として、前記第1特定時間と前記第2特定時間のうち、現時点からより早く来る方の時間が選択されるシミュレーション装置。

請求項8

請求項1から7のいずれか1項に記載のシミュレーション装置において、更に、前記複数の命令のそれぞれの実行時間を求めるとともに、前記複数の命令の中から前記特定命令を抽出する初期処理部を備え、前記第1特定時間は、前記複数の命令のそれぞれの前記実行時間を示す命令実行時間情報と前記抽出された特定命令に基づいて、現時点から次の前記特定命令の実行が終了するまでの時間として求められるシミュレーション装置。

請求項9

CPUの命令実行処理のシミュレーションを行う命令処理部と、前記CPUの周辺機能のシミュレーションを行う周辺処理部と、前記CPUに実行させるためのプログラムに含まれる複数の命令のうちの特定命令の実行に関する第1特定時間と、前記周辺処理部において割り込みが発生する時間に関する第2特定時間とに基づいて、第3特定時間を決定する時間管理部とを備え、前記周辺処理部は、前記第3特定時間の間は、前記命令処理部に前記命令実行処理のシミュレーションを実行させないよう前記周辺機能のシミュレーションを中断せずに、前記周辺機能のシミュレーションを行い、前記周辺処理部による前記第3特定時間の間の前記周辺機能のシミュレーションを行っている途中に割り込みが発生したときには、当該割り込みが発生した時点で当該周辺機能のシミュレーションを中断するとともに、当該割り込みが発生した時点に関する時間情報を前記時間管理部に出力し、前記時間管理部は、前記時間情報を前記命令処理部に出力し、前記命令処理部は、前記時間情報で定められた第4特定時間の間は、前記周辺処理部に前記周辺機能のシミュレーションを実行させないよう前記命令実行処理のシミュレーションを中断せずに、前記命令実行処理のシミュレーションを行うシミュレーション装置。

請求項10

CPUの命令実行処理のシミュレーションを行う命令処理部と、前記CPUの周辺機能のシミュレーションを行う周辺処理部と、前記CPUに実行させるためのプログラムに含まれる複数の命令のうちの特定命令の実行に関する第1特定時間と、前記周辺処理部において割り込みが発生する時間に関する第2特定時間とに基づいて、第3特定時間を決定する時間管理部とを備え、前記周辺処理部は、前記周辺機能のうちの前記命令処理部による前記命令実行処理のシミュレーションが行われる前に実行可能な第1周辺処理を実行する前処理部と、前記周辺機能のうちの前記命令処理部による前記命令実行処理のシミュレーションが行われた後に実行されるべき第2周辺処理を実行する後処理部とを備え、前記前処理部は、前記第3特定時間の間は、前記命令処理部に前記命令実行処理のシミュレーションを実行させないよう前記第1周辺処理のシミュレーションを中断せずに、前記第1周辺処理のシミュレーションを行い、その後に、前記命令処理部は、前記第3特定時間の間は、前記周辺処理部に前記周辺機能のシミュレーションを実行させないよう前記命令実行処理のシミュレーションを中断せずに、前記命令実行処理のシミュレーションを行い、その後に、前記後処理部は、前記第3特定時間の間は、前記命令処理部に前記命令実行処理のシミュレーションを実行させないよう前記第2周辺処理のシミュレーションを中断せずに、前記第2周辺処理のシミュレーションを行うシミュレーション装置。

請求項11

請求項1から10のいずれか1項に記載のシミュレーション装置において、更に、前記周辺処理部の複数の周辺機能のそれぞれについての現時点から次に割り込みが発生するまでの時間が記載されている周辺処理時間管理テーブルを備え、前記第3特定時間として、前記第1特定時間と前記第2特定時間のうち現時点から早く来る方の時間が選択されるときであって、前記第3特定時間として、前記第1特定時間が選択されたときに、前記命令処理部による前記命令実行処理のシミュレーションの結果、前記複数の周辺機能のそれぞれについての前記現時点から次に割り込みが発生するまでの時間に変化が生じた場合には、前記時間の変化を反映させるように前記周辺処理時間管理テーブルが更新されるシミュレーション装置。

請求項12

(a) CPUの命令実行処理のシミュレーションを行うステップと、(b) 前記CPUの周辺機能のシミュレーションを行うステップと、(c) 前記CPUに実行させるためのプログラムに含まれる複数の命令のうちの特定命令の実行に関する第1特定時間と、割り込みが発生する時間に関する第2特定時間とに基づいて、第3特定時間を決定するステップとを備え、前記(b)は、前記第3特定時間の間は、前記(a)が実行されないよう前記周辺機能のシミュレーションを中断せずに、前記周辺機能のシミュレーションを行うシミュレーション方法

請求項13

請求項12記載のシミュレーション方法において、前記特定命令は、分岐、システム制御、およびIOアドレッシングの少なくともいずれか一つであるシミュレーション方法。

請求項14

請求項12または13に記載のシミュレーション方法において、前記(a)は、前記第3特定時間の間は、前記(b)が実行されないよう前記命令実行処理のシミュレーションを中断せずに、前記命令実行処理のシミュレーションを行うシミュレーション方法。

請求項15

請求項14記載のシミュレーション方法において、前記(b)の前記第3特定時間の間の前記周辺機能のシミュレーションは、前記(a)の前記第3特定時間の間の前記命令実行処理のシミュレーションよりも先に行われるシミュレーション方法。

請求項16

請求項12から15のいずれか1項に記載のシミュレーション方法において、前記第1特定時間は、前記特定命令の実行が終了するまでの時間であるシミュレーション方法。

請求項17

請求項12から16のいずれか1項に記載のシミュレーション方法において、前記(b)は、周辺処理部によって実行され、前記第2特定時間は、前記周辺処理部の複数の周辺機能のそれぞれについての現時点から次に割り込みが発生するまでの時間のうち、前記現時点から最も早く前記割り込みが発生する時間であるシミュレーション方法。

請求項18

請求項12から17のいずれか1項に記載のシミュレーション方法において、前記(c)では、前記第3特定時間として、前記第1特定時間と前記第2特定時間のうち、現時点からより早く来る方の時間を選択するシミュレーション方法。

請求項19

請求項12から18のいずれか1項に記載のシミュレーション方法において、前記(a)から(c)は、繰り返し行われるシミュレーション方法。

請求項20

請求項12から19のいずれか1項に記載のシミュレーション方法において、更に、(d) 前記複数の命令のそれぞれの実行時間を求めるステップと、(e) 前記複数の命令の中から前記特定命令を抽出するステップとを備え、前記第1特定時間は、前記(d)により求められた前記複数の命令のそれぞれの前記実行時間を示す命令実行時間情報と、前記(e)において抽出された前記特定命令とに基づいて、現時点から次の前記特定命令の実行が終了するまでの時間として求められるシミュレーション方法。

請求項21

(f) CPUの命令実行処理のシミュレーションを行うステップと、(g) 前記CPUの周辺機能のシミュレーションを行うステップと、(h) 前記CPUに実行させるためのプログラムに含まれる複数の命令のうちの特定命令の実行に関する第1特定時間と、割り込みが発生する時間に関する第2特定時間とに基づいて、第3特定時間を決定するステップとを備え、前記(g)は、前記第3特定時間の間は、前記(f)が実行されないよう前記周辺機能のシミュレーションを中断せずに、前記周辺機能のシミュレーションを行い、前記(g)の前記第3特定時間の間の前記周辺機能のシミュレーションを行っている途中に割り込みが発生したときには、当該割り込みが発生した時点で当該周辺機能のシミュレーションを中断するとともに、当該割り込みが発生した時点に関する時間情報を生成し、前記(f)は、前記時間情報で定められた第4特定時間の間は、前記(g)が実行されないよう前記命令実行処理のシミュレーションを中断せずに、前記命令実行処理のシミュレーションを行うシミュレーション方法。

請求項22

(i) CPUの命令実行処理のシミュレーションを行うステップと、(j) 前記CPUの周辺機能のシミュレーションを行うステップと、(k) 前記CPUに実行させるためのプログラムに含まれる複数の命令のうちの特定命令の実行に関する第1特定時間と、割り込みが発生する時間に関する第2特定時間とに基づいて、第3特定時間を決定するステップとを備え、前記(j)は、前記周辺機能のうちの前記(i)の前記命令実行処理のシミュレーションが行われる前に実行可能な第1周辺処理を実行する前処理ステップと、前記周辺機能のうちの前記(i)の前記命令実行処理のシミュレーションが行われた後に実行されるべき第2周辺処理を実行する後処理ステップとを備え、前記前処理ステップは、前記第3特定時間の間は、前記(i)が実行されないよう前記第1周辺処理のシミュレーションを中断せずに、前記第1周辺処理のシミュレーションを行い、その後に、前記(i)は、前記第3特定時間の間は、前記(j)が実行されないよう前記命令実行処理のシミュレーションを中断せずに、前記命令実行処理のシミュレーションを行い、その後に、前記後処理ステップは、前記第3特定時間の間は、前記(i)に前記命令実行処理のシミュレーションを実行させないよう前記第2周辺処理のシミュレーションを中断せずに、前記第2周辺処理のシミュレーションを行うシミュレーション方法。

請求項23

請求項12から22のいずれか1項に記載のシミュレーション方法において、更に、(l) 前記(b)、(g)、または(j)を実行する周辺処理部の複数の周辺機能のそれぞれについての現時点から次に割り込みが発生するまでの時間が記載されている周辺処理時間管理テーブルを提供するステップを備え、前記第3特定時間として、前記第1特定時間と前記第2特定時間のうち現時点から早く来る方の時間が選択されるときであって、前記第3特定時間として、前記第1特定時間が選択されたときに、前記(a)、(f)、または(i)による前記命令実行処理のシミュレーションの結果、前記複数の周辺機能のそれぞれについての前記現時点から次に割り込みが発生するまでの時間に変化が生じた場合には、前記時間の変化を反映させるように前記周辺処理時間管理テーブルが更新されるシミュレーション方法。

請求項24

請求項12から23のいずれか1項に記載のシミュレーション方法に記載された各ステップをコンピュータに実行させるためのプログラム。

技術分野

0001

本発明は、シミュレーション装置シミュレーション方法およびプログラムに関し、特に、CPUの命令実行処理シミュレーション周辺装置機能シミュレーションを同期をとりつつ並列処理するシミュレーション装置、シミュレーション方法およびプログラムに関する。

背景技術

0002

シミュレーション装置(システムシミュレータ)は、開発されたプログラムの命令実行が、実際の計算機上でどのように処理されていくかを模擬的に実行するものである。シミュレーション装置には、CPUの命令実行シミュレーションを行う命令処理部と、周辺装置の機能(周辺機能)シミュレーションを行う周辺処理部とが、同期を取りつつ実行するものがある。

0003

図5は、従来のシミュレーション装置を示すブロック図である。図5に示すように、シミュレーション装置50は、デバッカ部51と、シミュレーション部53とを備えている。シミュレーション部53は、命令処理部54と、周辺処理部55とを有している。

0004

命令処理部54は、ユーザプログラム52に含まれる、加算・減算命令メモリへのデータ書き込み・読み込み命令レジスタアクセス命令などのインストラクション(命令)を処理する。周辺処理部55は、タイマによる計時を行うと共に所定のタイミングで割り込みを発生する処理を行ったり、また、データ転送系の処理やデータ変換系の処理など(これらをまとめて周辺処理という)を行う。

0005

まず、デバッカ部51が、ユーザプログラム52をダウンロードする。デバッカ部51は、ユーザプログラム52をシミュレーション部53に出力するとともに、シミュレーションを開始する命令をシミュレーション部53に出力する。

0006

次に、シミュレーション部53では、一単位時間(デバイスの1クロック時間)ずつ時間を進めながら、命令処理部54と周辺処理部55とで交互に処理を行っていた。

0007

すなわち、従来のシミュレーション装置50では、図6に示すように、ターゲットCPUの命令列と周辺機能のシミュレーションを、次のような手順で実現していた。
(1)1命令分のターゲットCPUのコードをフェッチデコードし、実行処理を行う(命令処理)。
(2)上記(1)で行った1命令実行時間分の周辺機能のシミュレーションを行う(周辺処理)。
(3)上記(1)、(2)の処理を繰り返す。

0008

また、従来のシミュレーション装置50の中には、ターゲットCPUの命令コードをホストPC上のCPUの命令コードに変換することで、高速なシミュレーションを実現するものもあったが、このようなシミュレーション装置50においても、シミュレーションの手順は、前述と同様に、ターゲットCPUの1命令分の処理実行後、その命令実行時間分の周辺機能のシミュレーションを行う。

0009

この方法では、命令処理部54が1クロック(ステップ)分の命令を実行した後、周辺処理部55が1クロック(ステップ)分の周辺機能を実行していた。そして、時間を1クロック分進め、その後に、命令処理部54が1クロック分の次の命令を実行した後、周辺処理部55が1クロック分の周辺機能を実行していた。

0010

特開昭64−76236号公報には、次の内容が記載されている。すなわち、命令処理部54が1ステップだけ命令実行シミュレーションを実行し、その1ステップだけ命令実行シミュレーションを終了した時点でその後の命令実行シミュレーションを中断し、命令処理部54によるその命令実行シミュレーションが中断した状態で、周辺処理部55が命令処理部54の1ステップに相当する時間の周辺機能シミュレーションを実行して、その後の周辺機能シミュレーションを中断する。周辺処理部55が中断後、命令処理部54は1ステップだけ命令実行シミュレーションを実行して中断するという手順を繰り返すというものである。

0011

上記のように、1クロック分ずつ命令と周辺機能を実行していくと、シミュレーションの動作が遅いという問題があった。すなわち、従来のシミュレーション装置50では、命令処理部54と周辺処理部55との連携部分で時間がかかり、命令処理の高速化を行っても、シミュレーション動作全体では高速化が実現できていなかった。

0012

従来のシミュレーション装置50では、命令処理部54で1命令の実行処理を行う毎に周辺処理部55にその命令実行処理時間を通知し、周辺処理部55でその通知された実行処理時間分の周辺処理を行う。この方法では、シミュレーション中に命令処理部54と周辺処理部55間の制御渡し(関数コール;function call)が頻繁に発生する。命令処理部54および周辺処理部55の一方が1ステップ分の処理を行ってその処理を中断した後に、命令処理部54および周辺処理部55の他方に制御渡しを行い、当該他方が同1ステップ分の処理を行う。その当該他方が同1ステップ分の処理を行ってからその処理を中断し、その後、当該他方が上記一方に制御渡しを行う。以下はその繰り返しである。このため、命令列をホストPC上のCPUの命令コードに変換して高速化を図っても、周辺処理機能との連携部分で時間がかかり、高速化の支障となっていた。

0013

なお、特開平7−160537号公報には、次のシミュレータが記載されている。そのシミュレータは、CPUの命令実行をシミュレーションを行なうCPUシミュレーション部と、CPUの周辺装置のシミュレーションを行なう周辺機能シミュレーション部と、前記CPUシミュレーション部でシミュレーションした命令を実機上で処理した場合に要する時間の累計であるCPU経過時間を格納するCPU経過時間管理部と、前記CPUシミュレーション部の内部状態が変化するごとに状態変化が始まる直前の時点のCPU経過時間を、前記CPU経過時間管理部から取りだし、前記CPUシミュレーション部の内部状態と対応づけて履歴情報として管理する履歴情報管理部と、前記周辺機能シミュレーション部でシミュレーションした処理を実機上で処理した場合に要する時間の累計である周辺機能経過時間を格納する周辺機能経過時間管理部と、前記CPUシミュレーション部から、前記周辺機能シミュレーション部に対して処理要求があった場合、前記CPU経過時間管理部からCPU経過時間を取りだし、前記周辺機能経過時間管理部から周辺機能経過時間を取りだし、前記CPU経過時間と前記周辺機能経過時間を対応づけて後述する周辺処理情報格納部に出力し、前記周辺機能シミュレーション部から、前記CPUシミュレーション部に割り込み要求があった場合、前記周辺機能経過時間管理部から割り込みが発生した時点の周辺機能経過時間を取り出し、この割り込みが発生する基となった処理要求が発生した時点のCPU経過時間と周辺機能経過時間とを取りだし、取り出されたそれぞれの経過時間を項とする演算により、CPUシミュレーション部がどの時点にもどって割り込みを行なうのか、割り込みを行う時点のCPU経過時間を算出し、前記状態復元部に対して算出された割り込みを行う時点のCPU経過時間出力する入出力管理部と、前記入出力管理部より出力された処理要求が発生した時点のCPU経過時間と周辺機能経過時間とを対応づけた周辺処理情報を格納する周辺処理情報格納部と、前記入出力管理部により出力された割り込みを行なう時点のCPU経過時間Tが入力されると、前記履歴情報管理部の格納内容を参照し、格納されている履歴情報のうちCPU経過時間が入力されたCPU経過時間Tに等しい、あるいは入力されたCPU経過時間Tより大きくかつ入力されたCPU経過時間Tに最も近いという条件をみたす履歴情報Hを前記履歴情報管理部から検索し、前記CPUシミュレーション部を前記履歴情報Hの内部状態と同じ状態にし、前記CPU経過時間管理部に格納されているCPU経過時間を入力されたCPU経過時間Tに更新する状態復元部と、を備えることを特徴としている。

発明が解決しようとする課題

0014

高速なシミュレーションを実現できるシミュレーション装置、シミュレーション方法およびプログラムが望まれている。従来のシミュレーション装置と同様のシミュレーション精度を保ちつつ、シミュレーション速度を高速化できるシミュレーション装置、シミュレーション方法およびプログラムが望まれている。

0015

本発明の目的は、高速なシミュレーションを実現できるシミュレーション装置、シミュレーション方法およびプログラムを提供することである。本発明の他の目的は、従来のシミュレーション装置と同様のシミュレーション精度を保ちつつ、シミュレーション速度を高速化できるシミュレーション装置、シミュレーション方法およびプログラムを提供することである。

課題を解決するための手段

0016

その課題を解決するための手段が、下記のように表現される。その表現中の請求項対応の技術的事項には、括弧()つき、番号、記号等が添記されている。その番号、記号等は、請求項対応の技術的事項と実施の複数・形態のうちの少なくとも一つの形態の技術的事項との一致・対応関係を明白にしているが、その請求項対応の技術的事項が実施の形態の技術的事項に限定されることを示されるためのものではない。

0017

本発明のシミュレーション装置(10)は、CPUの命令実行処理のシミュレーションを行う命令処理部(15)と、前記CPUの周辺機能のシミュレーションを行う周辺処理部(16)と、前記CPUに実行させるためのプログラム(11a)に含まれる複数の命令のうちの特定命令の実行に関する第1特定時間(Ti)と、前記周辺処理部(16)において割り込みが発生する時間に関する第2特定時間(Tp)とに基づいて、第3特定時間(Ti or Tp)を決定する時間管理部(17)とを備え、前記周辺処理部(16)は、前記第3特定時間(Ti or Tp)の間は、前記命令処理部(15)に前記命令実行処理のシミュレーションを実行させないよう前記周辺機能のシミュレーションを中断せずに、前記周辺機能のシミュレーションを行う。

0018

本発明のシミュレーション装置(10)において、前記特定命令は、分岐システム制御、およびIOアドレッシングの少なくともいずれか一つである。

0019

本発明のシミュレーション装置(10)において、前記命令処理部(15)は、前記第3特定時間(Ti or Tp)の間は、前記周辺処理部(16)に前記周辺機能のシミュレーションを実行させないよう前記命令実行処理のシミュレーションを中断せずに、前記命令実行処理のシミュレーションを行う。

0020

本発明のシミュレーション装置(10)において、前記周辺処理部(16)による前記第3特定時間(Ti or Tp)の間の前記周辺機能のシミュレーションは、前記命令処理部(15)による前記第3特定時間(Ti or Tp)の間の前記命令実行処理のシミュレーションよりも先に行われる。

0021

本発明のシミュレーション装置(10)において、前記第1特定時間(Ti)は、前記特定命令の実行が終了するまでの時間(Ti)である。

0022

本発明のシミュレーション装置(10)において、前記第2特定時間(Tp)は、前記周辺処理部(16)の複数の周辺機能のそれぞれについての現時点から次に割り込みが発生するまでの時間のうち、前記現時点から最も早く前記割り込みが発生する時間(Tp)である。

0023

本発明のシミュレーション装置(10)において、前記第3特定時間(Tior Tp)として、前記第1特定時間(Ti)と前記第2特定時間(Tp)のうち、現時点からより早く来る方の時間が選択される。

0024

本発明のシミュレーション装置(10)において、更に、前記複数の命令のそれぞれの実行時間を求めるとともに、前記複数の命令の中から前記特定命令を抽出する初期処理部(12)を備え、前記第1特定時間(Ti)は、前記複数の命令のそれぞれの前記実行時間を示す命令実行時間情報と前記抽出された特定命令に基づいて、現時点から次の前記特定命令の実行が終了するまでの時間(Ti)として求められる。

0025

本発明のシミュレーション装置(10)は、CPUの命令実行処理のシミュレーションを行う命令処理部(15)と、前記CPUの周辺機能のシミュレーションを行う周辺処理部(16)と、前記CPUに実行させるためのプログラム(11a)に含まれる複数の命令のうちの特定命令の実行に関する第1特定時間(Ti)と、前記周辺処理部(16)において割り込みが発生する時間に関する第2特定時間(Tp)とに基づいて、第3特定時間(Ti or Tp)を決定する時間管理部(17)とを備え、前記周辺処理部(16)は、前記第3特定時間(Ti or Tp)の間は、前記命令処理部(15)に前記命令実行処理のシミュレーションを実行させないよう前記周辺機能のシミュレーションを中断せずに、前記周辺機能のシミュレーションを行い、前記周辺処理部(16)による前記第3特定時間(Ti or Tp)の間の前記周辺機能のシミュレーションを行っている途中に割り込みが発生したときには、当該割り込みが発生した時点で当該周辺機能のシミュレーションを中断するとともに、当該割り込みが発生した時点に関する時間情報(Tpp or Tii)を前記時間管理部(17)に出力し、前記時間管理部(17)は、前記時間情報(Tpp or Tii)を前記命令処理部(15)に出力し、前記命令処理部(15)は、前記時間情報(Tpp or Tii)で定められた第4特定時間(Tpp or Tii)の間は、前記周辺処理部(16)に前記周辺機能のシミュレーションを実行させないよう前記命令実行処理のシミュレーションを中断せずに、前記命令実行処理のシミュレーションを行う。

0026

本発明のシミュレーション装置(10)は、CPUの命令実行処理のシミュレーションを行う命令処理部(15)と、前記CPUの周辺機能のシミュレーションを行う周辺処理部(16)と、前記CPUに実行させるためのプログラム(11a)に含まれる複数の命令のうちの特定命令の実行に関する第1特定時間(Ti)と、前記周辺処理部(16)において割り込みが発生する時間に関する第2特定時間(Tp)とに基づいて、第3特定時間(Ti or Tp)を決定する時間管理部(17)とを備え、前記周辺処理部(16)は、前記周辺機能のうちの前記命令処理部(15)による前記命令実行処理のシミュレーションが行われる前に実行可能な第1周辺処理を実行する前処理部(18)と、前記周辺機能のうちの前記命令処理部(15)による前記命令実行処理のシミュレーションが行われた後に実行されるべき第2周辺処理を実行する後処理部(19)とを備え、前記前処理部(18)は、前記第3特定時間(Ti or Tp)の間は、前記命令処理部(15)に前記命令実行処理のシミュレーションを実行させないよう前記第1周辺処理のシミュレーションを中断せずに、前記第1周辺処理のシミュレーションを行い、その後に、前記命令処理部(15)は、前記第3特定時間(Ti or Tp)の間は、前記周辺処理部(16)に前記周辺機能のシミュレーションを実行させないよう前記命令実行処理のシミュレーションを中断せずに、前記命令実行処理のシミュレーションを行い、その後に、前記後処理部(19)は、前記第3特定時間(Ti or Tp)の間は、前記命令処理部(15)に前記命令実行処理のシミュレーションを実行させないよう前記第2周辺処理のシミュレーションを中断せずに、前記第2周辺処理のシミュレーションを行う。

0027

本発明のシミュレーション装置(10)において、更に、前記周辺処理部(16)の複数の周辺機能のそれぞれについての現時点から次に割り込みが発生するまでの時間が記載されている周辺処理時間管理テーブル(16a)を備え、前記第3特定時間(Ti or Tp)として、前記第1特定時間(Ti)と前記第2特定時間(Tp)のうち現時点から早く来る方の時間が選択されるときであって、前記第3特定時間(Ti or Tp)として、前記第1特定時間(Ti)が選択されたときに、前記命令処理部(15)による前記命令実行処理のシミュレーションの結果、前記複数の周辺機能のそれぞれについての前記現時点から次に割り込みが発生するまでの時間に変化が生じた場合には、前記時間の変化を反映させるように前記周辺処理時間管理テーブル(16a)が更新される。

0028

本発明のシミュレーション方法(10)は、(a) CPUの命令実行処理のシミュレーションを行うステップ(15)と、(b) 前記CPUの周辺機能のシミュレーションを行うステップ(16)と、(c) 前記CPUに実行させるためのプログラム(11a)に含まれる複数の命令のうちの特定命令の実行に関する第1特定時間(Ti)と、割り込みが発生する時間に関する第2特定時間(Tp)とに基づいて、第3特定時間(Ti or Tp)を決定するステップ(S7、S8)とを備え、前記(b)は、前記第3特定時間(Ti or Tp)の間は、前記(a)が実行されないよう前記周辺機能のシミュレーションを中断せずに、前記周辺機能のシミュレーションを行う。

0029

本発明のシミュレーション方法(10)において、前記特定命令は、分岐、システム制御、およびIOアドレッシングの少なくともいずれか一つである。

0030

本発明のシミュレーション方法(10)において、前記(a)は、前記第3特定時間(Ti or Tp)の間は、前記(b)が実行されないよう前記命令実行処理のシミュレーションを中断せずに、前記命令実行処理のシミュレーションを行う。

0031

本発明のシミュレーション方法(10)において、前記(b)の前記第3特定時間(Ti or Tp)の間の前記周辺機能のシミュレーションは、前記(a)の前記第3特定時間(Ti or Tp)の間の前記命令実行処理のシミュレーションよりも先に行われる。

0032

本発明のシミュレーション方法(10)において、前記第1特定時間(Ti)は、前記特定命令の実行が終了するまでの時間(Ti)である。

0033

本発明のシミュレーション方法(10)において、前記(b)は、周辺処理部(16)によって実行され、前記第2特定時間(Tp)は、前記周辺処理部(16)の複数の周辺機能のそれぞれについての現時点から次に割り込みが発生するまでの時間のうち、前記現時点から最も早く前記割り込みが発生する時間(Tp)である。

0034

本発明のシミュレーション方法(10)において、前記(c)では、前記第3特定時間(Ti or Tp)として、前記第1特定時間(Ti)と前記第2特定時間(Tp)のうち、現時点からより早く来る方の時間を選択する。

0035

本発明のシミュレーション方法(10)において、前記(a)から(c)は、繰り返し行われる。

0036

本発明のシミュレーション方法(10)において、更に、(d) 前記複数の命令のそれぞれの実行時間を求めるステップと、(e) 前記複数の命令の中から前記特定命令を抽出するステップとを備え、前記第1特定時間(Ti)は、前記(d)により求められた前記複数の命令のそれぞれの前記実行時間を示す命令実行時間情報と、前記(e)において抽出された前記特定命令とに基づいて、現時点から次の前記特定命令の実行が終了するまでの時間(Ti)として求められる。

0037

本発明のシミュレーション方法(10)は、(f) CPUの命令実行処理のシミュレーションを行うステップ(15)と、(g) 前記CPUの周辺機能のシミュレーションを行うステップ(16)と、(h) 前記CPUに実行させるためのプログラム(11a)に含まれる複数の命令のうちの特定命令の実行に関する第1特定時間(Ti)と、割り込みが発生する時間に関する第2特定時間(Tp)とに基づいて、第3特定時間(Ti or Tp)を決定するステップ(17)とを備え、前記(g)は、前記第3特定時間(Ti or Tp)の間は、前記(f)が実行されないよう前記周辺機能のシミュレーションを中断せずに、前記周辺機能のシミュレーションを行い、前記(g)の前記第3特定時間(Ti or Tp)の間の前記周辺機能のシミュレーションを行っている途中に割り込みが発生したときには、当該割り込みが発生した時点で当該周辺機能のシミュレーションを中断するとともに、当該割り込みが発生した時点に関する時間情報(Tpp or Tii)を生成し、前記(f)は、前記時間情報(Tppor Tii)で定められた第4特定時間(Tpp or Tii)の間は、前記(g)が実行されないよう前記命令実行処理のシミュレーションを中断せずに、前記命令実行処理のシミュレーションを行う。

0038

本発明のシミュレーション方法(10)は、(i) CPUの命令実行処理のシミュレーションを行うステップ(15)と、(j) 前記CPUの周辺機能のシミュレーションを行うステップ(16)と、(k) 前記CPUに実行させるためのプログラム(11a)に含まれる複数の命令のうちの特定命令の実行に関する第1特定時間(Ti)と、割り込みが発生する時間に関する第2特定時間(Tp)とに基づいて、第3特定時間(Ti or Tp)を決定するステップ(17)とを備え、前記(j)は、前記周辺機能のうちの前記(i)の前記命令実行処理のシミュレーションが行われる前に実行可能な第1周辺処理を実行する前処理ステップ(18)と、前記周辺機能のうちの前記(i)の前記命令実行処理のシミュレーションが行われた後に実行されるべき第2周辺処理を実行する後処理ステップ(19)とを備え、前記前処理ステップ(18)は、前記第3特定時間(Ti or Tp)の間は、前記(i)が実行されないよう前記第1周辺処理のシミュレーションを中断せずに、前記第1周辺処理のシミュレーションを行い、その後に、前記(i)は、前記第3特定時間(Ti or Tp)の間は、前記(j)が実行されないよう前記命令実行処理のシミュレーションを中断せずに、前記命令実行処理のシミュレーションを行い、その後に、前記後処理ステップ(19)は、前記第3特定時間(Ti or Tp)の間は、前記(i)に前記命令実行処理のシミュレーションを実行させないよう前記第2周辺処理のシミュレーションを中断せずに、前記第2周辺処理のシミュレーションを行う。

0039

本発明のシミュレーション方法(10)において、更に、(l) 前記(b)、(g)、または(j)を実行する周辺処理部(16)の複数の周辺機能のそれぞれについての現時点から次に割り込みが発生するまでの時間が記載されている周辺処理時間管理テーブル(16a)を提供するステップを備え、前記第3特定時間(Ti or Tp)として、前記第1特定時間(Ti)と前記第2特定時間(Tp)のうち現時点から早く来る方の時間が選択されるときであって、前記第3特定時間(Ti or Tp)として、前記第1特定時間(Ti)が選択されたときに、前記(a)、(f)、または(i)による前記命令実行処理のシミュレーションの結果、前記複数の周辺機能のそれぞれについての前記現時点から次に割り込みが発生するまでの時間に変化が生じた場合には、前記時間の変化を反映させるように前記周辺処理時間管理テーブル(16a)が更新される。

0040

本発明のプログラムは、本発明のシミュレーション方法に記載された各ステップをコンピュータに実行させるためのプログラムである。

発明を実施するための最良の形態

0041

以下、添付図面を参照して、本発明のシミュレーション装置の一実施形態を説明する。

0042

図1は、本発明のシミュレーション装置の一実施形態の全体構成を示すブロック図である。図2は、本発明のシミュレーション装置の一実施形態の動作を示すフローチャートである。図3は、本発明のシミュレーション装置の一実施形態の動作を概略的に説明するためのタイミングチャートである。図4は、本発明のシミュレーション装置の一実施形態の動作を概略的に説明するための他のタイミングチャートである。

0043

図5および図6を参照して説明したように、従来のように、1クロック分ずつ命令と周辺機能を交互に実行していくと、シミュレーションの動作が遅いという問題があった。

0044

本実施形態のシミュレーション装置(システムシミュレータ)10では、以下の2つの機能を持つことで、従来と同等の精度を保ちつつ高速なシミュレーションを可能にする。

0045

<1>ターゲットCPU命令をホストPCの命令に変換する際等に、分岐命令、システム制御および周辺機能の動作を左右するIOアドレッシング等への印付けを行う機能。
<2>シミュレーション実行時に、先に、周辺処理部16で周辺機能シミュレーションを、上記の印付けされた命令の実行が終了するまでの時間分、または割り込み発生時まで一気に(周辺処理部16と命令処理部15間の制御渡しを行うことなく)行った後、命令処理部15で周辺処理部16がシミュレーションした時間分の命令処理を行う命令シミュレーション機能。すなわち、周辺処理部16が、上記の印付けされた命令の実行が終了するまでの時間分、または割り込み発生時まで、周辺機能シミュレーションを、その途中で中断することなく一度に行い、命令処理部15が周辺処理部16がシミュレーションした時間分の命令処理を途中で中断することなく一度に行う機能。

0046

本実施形態のシミュレーション装置10では、従来のように1クロック分ずつ命令と周辺機能を交互に実行していくのではなく、支障が無い可能な範囲で、命令処理部15または周辺処理部16において、一度に処理する命令または周辺処理の単位を、従来の1クロックよりも大きな時間に相当する分として扱う。

0047

シミュレーション装置10では、シミュレーション処理を開始(実行)する前に、命令処理部15または周辺処理部16において一度に処理しても支障が起きない範囲(以下、一ブロックと称することがある)を求め、その範囲の処理を一度に(命令処理部15と周辺処理部16間の制御渡しを発生させること無く)行う。「その一度に処理しても支障が起きない範囲を求めてから、その範囲を一度に行う」という動作を一サイクルとして、上記サイクルを繰り返し行う。

0048

次に、図1および図3を参照して、本実施形態の動作の概略を説明する。なお、本実施形態の動作の詳細については後述する。

0049

本実施形態のシミュレーション装置では、ターゲットCPUの命令と周辺機能のシミュレーションを次の(1)〜(6)のような順番で実現する。

0050

(1) あらかじめ、ターゲットCPUに実行させる全命令をホストPCのコードに変換し、同時に各々の命令実行に費やす時間を算出しておく(図3の符号(1)参照)。
(2) 上記(1)の処理時に、分岐命令、システム制御、周辺機能の動作を左右するIOアドレッシング等への印付けを行う(符号(2))。
(3)シミュレーションを開始する。

0051

(4) まず、周辺処理部16で、次に実行すべき命令から上記(2)で印付けした分岐命令、システム制御、IOアドレッシング等の実行が終了するまでの実行時間分の周辺処理を行い(符号(4−1))、その後、命令処理部15に制御を渡す(符号(4−2))。命令処理部15では、周辺処理部16が処理した時間分の命令(上記(2)で印付けされた分岐命令、システム制御、IOアドレッシング等を含む)の処理を行い(符号(4−3))、その後、再び周辺処理部16に制御を渡す(符号(4−4))。なお、ここで、例えば、符号(4−1)または(4−3)として一度に処理可能な範囲が、上記一ブロックに相当する。

0052

(5)周辺処理部16では、再び、次に実行すべき命令から上記(2)で印付けした分岐命令、システム制御、IOアドレッシング等の実行が終了するまでの実行時間分の周辺処理を行おうとするが(符号(5−1))、その周辺処理の途中で割り込みが発生した場合には命令処理部15に制御を渡す(符号(5−2))。命令処理部15では、上記(4−4)で周辺処理部16に制御が渡ってから割り込み発生までの時間分の命令実行を行い(符号(5−3))、その後、周辺処理部16に制御を渡す(符号(5−4))。周辺処理部16では、次の分岐命令、システム制御、IOアドレッシングの命令実行が終了するまで、又は、割り込み発生時までの処理を行い(符号(5−5))、その後、命令処理部15に制御を移す(符号(5−6))。上記符号(5−1)、(5−2)、(5−5)に関し、周辺処理部16では、周辺処理時間管理テーブル16aで各周辺機能の割り込み発生時間を予測し、上記符号(2)で印付けした命令の実行終了までの時間Tiより先に、割り込みが発生する(Tp)と予想される場合には、最短の割り込み発生時間(時間Tp)まで各周辺機能を処理して命令処理部15に制御を渡す。

0053

(6) 上記(4)、(5)の動作を繰り返し行うことで、CPUと周辺機器のシミュレーション(システムシミュレーション)を行う。

0054

図3を参照して説明したように、本実施形態のシミュレーション装置のシミュレーション動作の順番は、符号(4−1)→(4−2)→(4−3)→(4−4)→(5−1)→(5−2)→(5−3)…の順番である。ここで、周辺処理部16が処理すべき周辺機能には、図4に示すように、命令処理を行う前に実行すべき周辺機能(符号、)の他に、割り込み処理等のように命令処理が行われた後に行うべき周辺機能(符号、)がある場合がある。

0055

そこで、図4に示すように、符号(4−3)の命令処理が行われた後でなければ実行不可能な周辺処理(符号)がある場合には、図3と同様に、符号(4−1)→(4−2)→(4−3)の順番でシミュレーションを行った後に、図3と異なり、符号(4−4)の動作を行わずに、符号の周辺処理を行う(符号(4−3a)、(4−3b))。その後に、符号(4−3c)の動作を行った後に、図3と同様に、符号(5−1)の動作を行う。

0056

なお、図4において、符号(4−3)の命令処理が行われた後でなければ実行不可能な周辺処理(符号)がない場合には、符号(4−3)の動作の後は、図3と同様に、符号(4−4)の動作を行った後に、符号(5−1)の動作を行う。

0057

上記と同様に、符号(5−3)の命令処理が行われた後でなければ実行不可能な周辺処理(符号)がある場合には、図3と同様に、符号(5−1)→(5−2)→(5−3)の順番でシミュレーションを行った後に、図3と異なり、符号(5−4)の動作を行わずに、符号の周辺処理を行う(符号(5−3a)、(5−3b))。その後に、符号(5−3c)の動作を行った後に、図3と同様に、符号(5−5)の動作を行う。

0058

なお、図4において、符号(5−3)の命令処理が行われた後でなければ実行不可能な周辺処理(符号)がない場合には、符号(5−3)の動作の後は、図3と同様に、符号(5−4)の動作を行った後に、符号(5−5)の動作を行う。

0059

従来のシミュレーション装置50では、1命令毎に周辺処理を行う手法をとっていたものを、本実施形態のシミュレーション装置10では、割り込みや命令分岐、システム制御、IOアドレッシング等が発生するまでの一定時間分(一ブロック)の命令処理と周辺処理を一気に行うようにしたことで、シミュレーションの速度低下の一因である命令処理部15と周辺処理部16間の制御渡し(関数呼び出し)の回数頻度)を最低限に抑え、従来のシミュレーション装置50と同様のシミュレーション精度を保ちつつ、シミュレーション速度を高速化することができる。

0060

図1および図5に示すように、本実施形態のシミュレーション装置10では、初期処理部12が追加されている。初期処理部12は、ユーザプログラム11aの各命令を参照して、上記一ブロックとして一度に実行可能な命令または周辺処理であるか否かを解析し、所定の処理を施す(その動作内容の詳細は後述する)。

0061

命令処理の中にはシミュレーションの流れが変わるところがあって、そこまでは、(割り込みが発生する場合を除いて、)一ブロックとして命令処理部15と周辺処理部16間の制御渡しを発生させること無く一度に実行可能である。ここで、シミュレーションの流れが変わる要因となる命令の例としては、分岐命令(プログラムの流れが変わる)、IOアドレッシング(割り込み発生周期を変える命令など)、HALT命令しばらく命令処理を中断して、周辺機能の処理のみを行う)などがある。

0062

どこでシミュレーションの流れが変わるかは、ユーザプログラム11aの各命令を解析していくことで分かる。初期処理部12は、その解析の結果、シミュレーションの流れが変わるところで、印を付ける。初期処理部12は、符号11dに示すように、プログラムの命令と命令の間に印を付ける代わりに、テーブル(図示せず)を持っていて、そのテーブル上でシミュレーションの流れが変わる命令の実行番地を予め指定しておくことができる。

0063

一般に、シミュレーション装置では、周辺処理部において割り込みが起こってしまうと、そこで、命令処理部に戻って、割り込み命令割り込み処理ルーチンの命令)を実行しなくてはならない(図3の符号(5−4)、(5−5)、(5−6)参照)。つまり、(5−1)で発生した割り込みについて(5−6)以降の命令処理部で処理される。このことは、前述したシミュレーションの流れを変える要因となる命令の位置に加えて、周辺処理部での割り込み発生タイミングが、上記一ブロックを決定する要素になることを意味している。

0064

そこで、本実施形態のシミュレーション装置10の周辺処理部16は、現時点から何クロック経過したら割り込みが発生するかを示す、周辺処理時間管理テーブル16aを持っている。

0065

まず、初期処理部12がシミュレーションの流れが変わるところで、印用命令を埋め込んで初期化済ユーザプログラム11cを生成する(初期処理)。次に、時間管理部17は、周辺処理時間管理テーブル16aを参照して、現時点から、あと何クロックで割り込みが発生するかを時間Tpとして算出する。

0066

次いで、デバッガ部13は、初期化済ユーザプログラム11cをダウンロードし、シミュレーション部14は、その初期化済ユーザプログラム11cのシミュレーションを実行する。時間管理部17は、命令処理部15の命令実行時間管理部15aに対して、印が付いている命令の実行を終了するまでの時間Tiがどれだけであるかを問合せる。ここで、命令実行時間管理部15aは、その問合せに応答して、時間管理部17に対し、例えば、時間Tiは100クロックであると通知する。

0067

時間管理部17は、周辺処理時間管理テーブル16aを参照して、最短で割り込みが発生するまでの時間Tpがどれくらいであるかを求める。時間Tpは、例えば、50クロックであるとして求められる。

0068

時間管理部17は、時間Tiと時間Tpのうち、先に到達するのはどちらであるかを調べる。時間管理部17は、それらの時間Tiと時間Tpのうち、先に到達する時間TiまたはTpの時間分だけ処理を実行する旨を、命令処理部15および周辺処理部16のそれぞれに連絡する。なお、上記動作を含めた詳細な動作は後述する。

0069

次に、図1を参照して、本実施形態のシミュレーション装置の構成について説明する。

0070

図1において、符号10は、本実施形態のシミュレーション装置を示している。シミュレーション装置10は、システムシミュレータである。

0071

シミュレーション装置10は、初期処理部12と、デバッガ部13と、シミュレーション部14とを備えている。シミュレーション部14は、命令処理部15と、周辺処理部16と、時間管理部17とを有している。命令処理部15は、命令実行時間管理部15aを有している。周辺処理部16は、周辺処理時間管理テーブル16aと、前処理部18と、後処理部19とを有している。

0072

ユーザプログラム11aは、ユーザがシミュレーション対象であるターゲットCPU上で実行するために設計し、ターゲットCPUに対応した言語処理手段(コンパイラアセンブラ等)で処理したオブジェクトである。符号11bは、ユーザプログラム11aの命令列の一部を模式的に示したものである。

0073

初期化済ユーザプログラム11cは、ユーザプログラム11aに対して、後に詳述する初期処理部12での初期化処理(ステップS1)を施した結果である。符号11dは、初期化済ユーザプログラム11cの命令列の一部を模式的に示したものである。

0074

初期処理部12は、入力されたオブジェクト(ユーザプログラム)11aを元に、各命令の実行時間(実行に要する時間または実行タイミング)の計測や、本実施形態の実現に必要な命令(特定命令)の洗い出し(抽出)と印付けを行う。また、更なる高速化を目指す際には、初期化時にターゲットCPU命令をホストPC命令に置き換える処理も行うが、その処理もこの初期処理部12で行う。初期処理部12は、ここで処理済のものを初期化済ユーザプログラム11cとしてファイル化する。

0075

デバッガ部13は、ユーザから入力されたコマンドを受けてシミュレーション部14との情報のやりとりを行う。必要なシミュレーション情報の設定や参照、シミュレーション対象プログラムのダウンロードや実行、実行中断等を行う。

0076

シミュレーション部14は、デバッガ部13からのコマンドを受けて、初期化済ユーザプログラム11cの読み込みや実行、実行中断等のシミュレーション処理を行う。

0077

時間管理部17は、シミュレーション部14の時間経過を管理する。時間管理部17は、周辺処理時間管理テーブル16aを参照して、周辺処理部16の全ての周辺機能についての、次に割り込みが発生する時間を比較し、そのうち最も先の時間を時間Tpとして算出する。また、時間管理部17は、周辺処理時間管理テーブル16aの更新を行う。一般に、周辺処理部が、CPU(命令処理部)に対して、割り込み(信号)を発生すると、周辺処理部は命令処理部に制御を渡し、割り込み命令(割り込み処理ルーチンの命令)を実行する必要がある。

0078

周辺処理部16は、ターゲットCPUの周辺機能シミュレーションを行う。前処理部18は、命令処理部15が命令処理を行う前に実行可能な周辺機能(例えば、単に時間を進めて、所定のタイミングで割り込みを発生させるなどの周辺機能)を処理する。後処理部19は、割り込み処理等のように、命令処理部15によって命令処理が行われた後に行うべき周辺機能を処理する。ここで、後処理部19で実行される周辺処理には、あるメモリで実行された命令の結果を別のメモリに転送するなどの周辺機能が含まれる。

0079

周辺処理時間管理テーブル16aは、周辺処理部16の各周辺機能の、次に割り込みが発生するまでの時間を管理するテーブルである。周辺処理時間管理テーブル16aには、例えば、符号17aに示すように、「TM1 10CLK、TM5 50CLK、AD 120CLK」と記載される。TM1、TM5、ADは、周辺処理部16の各周辺機能に相当する。TM1では、いまの時間に対してあと10クロックで割り込みが発生し、TM5では、いまの時間に対してあと50クロックで割り込みが発生し、ADでは、いまの時間に対してあと120クロックでAD変換の割り込みが発生する。周辺処理時間管理テーブル16aの内容は、シミュレーションを行う対象であるユーザプログラム11aに応じてあらかじめ初期化が行われる。

0080

命令処理部15は、シミュレーション対象のターゲットCPUの命令実行処理を行う。命令実行時間管理部15aは、初期処理部12での処理の結果、初期化済ユーザプログラム11cに含まれた各命令実行時間情報を管理するとともに、その命令実行時間情報に基づいて、次に印付けされた命令の実行が終了するまでの時間を計上する。

0081

次に、図1および図2を参照して、本実施形態の動作を説明する。

0082

本実施形態のシミュレーション装置10を開始すると、最初に初期処理部12でユーザプログラム11aの初期処理を行う(ステップS1)。

0083

ステップS1では、上記言語処理手段で処理されたオブジェクトファイル(ユーザプログラム11a)を解析し、そのユーザプログラム11aに含まれるそれぞれの命令の実行時間の算出、および、そのユーザプログラム11aに含まれる複数の命令のうち特定の命令(特定命令)の洗い出しと印付けを行う。

0084

このステップS1にて洗い出しおよび印付けが行われる、上記特定命令とは、分岐命令やシステム制御、IOアドレッシングの命令等のように、その命令を実行することにより、命令処理部15で次回に(次のクロックで)実行すべきアドレスや実行タイミングが変更したり、周辺動作が変化したりする要因となる命令である。

0085

シーケンシャルに命令が並んでおり、一定のタイミング(クロック)でそれらの命令のそれぞれが実行されていくのが通常の流れである場合を想定する。ここで、上記特定命令とは、上記シーケンシャル順に従うと次に実行される順番であるにもかかわらず、当該次のタイミングで、実行できない命令が含まれる。実行できないケースには、例えば、次のメモリの番地以外のどこかにジャンプする場合や、命令処理が停止する場合が含まれる。

0086

また、上記特定命令には、周辺処理部が割り込みを発生するタイミングの周期を変える命令が含まれる。

0087

上記において、上記分岐命令および上記システム制御は、一般にCPUが処理できる命令(セット)を、以下の4つの機能別(〜)に分類したときの、それぞれ、分岐、システム制御に相当する。
データ転送。このデータ転送の命令は人間の行う記憶の出し入れに相当する。
データに対する演算。
分岐。この分岐命令は、プログラム処理の流れの制御で、人間の行う判断に相当する。判断命令に相当する。
システム制御。このシステム制御の命令は、人間の行動規制するしつけのようなものに相当する。このシステム制御の命令の実行は、システム全体に影響を与え、その後のプログラム処理に影響する。

0088

上記ステップS1にて洗い出しおよび印付けが行われるの分岐命令には、例えば、少なくとも、「jump(JP)」、「CALL」、「jump(JMP)」、「jump to subroutine(JSR)」、「branch(B)」が含まれる。

0089

「jump(JP)」には、条件付き無条件付きがある。「jump(JP)」において、ジャンプ先アドレス指定には、絶対アドレッシングと相対アドレッシングが使える。「CALL」では、条件付きまたは無条件のサブルーチンコールを行う。「jump to subroutine(JSR)」は、サブルーチンへの無条件ジャンプである。「branch(B)」は、条件付き分岐である。

0090

上記ステップS1にて洗い出しおよび印付けが行われるのシステム制御の命令には、例えば、少なくとも、「HALT」、「disenable interrupt(DI)」、「enable interrupt(EI)」、「interrupt mode(IM)」、「restart(RST)」、「return from subroutine(RET)」、「returnfrom interrupt(RETI)」、「return from non−maskable interrupt(RETN)」、「no operation(NOP)」、「return from interrupt(RTI)」、「return from subroutine(RTS)」、「synchronized to interrupt(SYNC)」、「software interrupt(SWI)」、「clear CC and wait for interrupt(CWAI)」が含まれる。

0091

「HALT」は、CPUを停止させる。「disenable interrupt(DI)」は、割り込みマスクをセットする。「enable interrupt(EI)」は、割り込みマスクを外す。「interrupt mode(IM)」は、割り込みモードを決める。「restart(RST)」は、リスタートさせる。「return from subroutine(RET)」は、サブルーチンリターンを行う。「return from interrupt(RETI)」は、インタラプト(割り込み)ルーチンからの割り込みを行う。「return from non−maskable interrupt(RETN)」は、ノンマスカブルインタラプトルーチンからのリターンを行う。「no operation(NOP)」は、なにも行わない。「return from interrupt(RTI)」は、割り込みの種類に応じてスタック退避したレジスタ復旧して、割り込まれた時点の手続きに戻る。「synchronize to interrupt(SYNC)」は、高速割り込み要求の入力に同期して次の処理に進め、の意味である。「software interrupt(SWI)」は、ソフトウェア割り込みである。「clear CC and wait for interrupt(CWAI)」は、コンディションコードレジスタ(CC)にセットされている割り込みマスクをクリアし、全レジスタをスタックへ退避させてから割り込みを待つ。

0092

上記IOアドレッシング命令とは、IOアドレス空間に対するアドレッシングを行う命令である。

0093

次に、ステップS1にて行われる印付けについて説明する。上記の特定命令への印付けは、符号11dに示すように、洗い出した特定命令の後に、実際のターゲットには存在しない命令(印用命令)を埋め込むか、別途テーブルで管理する等の処理を行うことで実現する。

0094

上記印用命令は、例えば「FFFF」として示される。符号11dの「2 Add…」、「5 Ld.w…」とは、その命令の実行時間(命令実行時間情報)を示しており、Add命令には2クロックかかり、ロードワード命令には5クロックかかることを示している。また、符号11dの「2/5bne label」では、その命令がブランチできないときは、2クロックかかり、ブランチできるときは、5クロックかかることが示されている。

0095

初期処理部12では、ユーザプログラム11aの各命令の命令実行時間(クロック数)を求めると共に、その実行時間の情報を各命令に添付するともに、上記特定命令に印付けを行う。初期処理部12は、上記の処理を行ったものを初期化済ユーザプログラム11cとしてファイル化する。

0096

また、更なる高速化を目指す際には、初期化時にターゲット命令をホストPC命令に置き換える処理も行うが、その処理もこの初期処理部12で行う。

0097

初期処理部12による初期処理(ステップS1)が終了すると、シミュレーション部14は、デバッガ部13によるコマンド発行待ち状態となる(ステップS2)。

0098

デバッガ部13は、ユーザからの指示に基づいて、ダウンロードコマンドを生成する。デバッガ部13は、そのダウンロードコマンドに基づいて、初期化済ユーザプログラム11cをダウンロードする。

0099

デバッガ部13は、ユーザからの指示に基づいて、実行開始コマンドを生成する。デバッガ部13は、その実行開始コマンド、および初期化済ユーザプログラム11cをシミュレーション部14に出力する。

0100

シミュレーション部14が、コマンド待ち状態(ステップS2)において、デバッガ部13からコマンドを入力するとステップS3に進む。ステップS3では、シミュレーション部14がデバッガ部13から入力したコマンドが、実行開始コマンドであるか否かが判定される。

0101

ステップS3の判定の結果、そのコマンドが実行開始コマンド以外である場合(ステップS3−N)には、ステップS4が実行される。ステップS4では、シミュレーション部14がデバッガ部13から入力したコマンドがデバック終了コマンドであるか否かが判定される。

0102

ステップS4の判定の結果、そのコマンドがデバック終了コマンドである場合(ステップS4−Y)には、シミュレーションを終了する。ステップS4の判定の結果、そのコマンドがデバック終了コマンド以外のコマンドである場合(ステップS4−N)には、そのコマンドの要求する処理を行って(ステップS5)、デバッガ部13からのコマンド待ち状態に入る(ステップS2)。

0103

ステップS3の判定の結果、そのコマンドが実行開始コマンドである場合(ステップS3−Y)には、ステップS6が実行される。

0104

ステップS6では、命令実行時間管理部15aが、現時刻から次に印付けされた命令の実行が終了するまでの時間Tiを算出する。命令実行時間管理部15aは、初期化済ユーザプログラム11cに含まれた各命令実行時間情報を管理しているため、その命令実行時間情報に基づいて、次に印付けされた命令の実行が終了するまでにどれくらいの時間Tiがかかるかが分かる。

0105

また、ステップS6では、時間管理部17は、周辺処理時間管理テーブル16aを参照して、全ての周辺機能についての、現時刻から次の割り込み発生までの時間のうち、最先の時間Tpを算出する。図1において、符号17aは、時間Tpの算出に際して、時間管理部17が周辺処理時間管理テーブル16aの内容を読み込んだ状態を示している。この符号17aの例では、TM1の10クロックが最短であるため、10クロックが時間Tpとなる。

0106

次に、時間管理部17は、時間Tiを命令実行時間管理部15aから取得し、時間Ti、Tpを比較する(ステップS7)。

0107

ここでは、まず先に、上記比較の結果、時間Tpが小さい場合(ステップS8−N)について説明する。

0108

時間管理部17は、その比較の結果、時間Tpが小さい場合(ステップS8−N)には、Tp時間分のシミュレーションを行うよう、命令処理部15と周辺処理部16に指示する。ここで、時間Tpが小さい場合とは、現時刻から将来を見て、時間Tpの方が時間Tiよりも先にくる場合に相当する。この場合には、ステップS9が実行される。

0109

次に、図2のフローチャートの流れから一旦離れて、ステップS9およびS10に共通する説明を行う。

0110

ステップS9およびステップS10のいずれの場合にも、シミュレーション部14では、命令処理部15が命令実行処理を行う前に、周辺処理部16が周辺機能シミュレーションを実行する(ステップS9,S10)。その理由は以下の通りである。

0111

シミュレーション部14は、印付けしたところまでの一部命令か、割り込み発生までの処理を一気に(連続して)行うことでシミュレーションの高速化を図るものであるが、周辺機能には、端子からの外部割り込み発生要求等のように、実際に周辺機能を実行して端子の状況を確認しなければ割り込み発生時間が決定できない機能がある。その為、常に、命令実行処理よりも周辺機能を先にシミュレーションすることで、実行しなければ分からない割り込み発生の検出を行う。

0112

次に、図2のフローチャートの流れに戻って、ステップS9について説明する。

0113

周辺処理部16(前処理部18)では、命令処理部15よりも先に、周辺機能をTp時間分、処理する(ステップS9)。その周辺処理部16によるTp時間分の周辺機能の処理の途中に、端子からの外部割り込み発生要求等があり、Tp時間到達前に割り込みが発生する事態が起こった場合には、そこで周辺処理を中断し、今回周辺処理を開始してからその割り込み発生までの時間Tpp時間を時間管理部17に通知する(ステップS9)。

0114

すると、時間管理部17は、周辺処理部16から通知された新しい時間Tpp分の処理を命令処理部15に指示し直す(ステップS9)。命令処理部15は、時間管理部17からTpp時間分の処理を指示された場合には、Tpp時間分の命令実行を行い、Tpp時間分の処理を指示されていない場合には、Tp時間分の命令実行を行う(ステップS9)。

0115

命令処理部15は、そのTp時間、またはTpp時間分の命令実行を行った後、周辺処理部16に制御を返す。周辺処理部16の後処理部19は、後で処理が必要な周辺処理(割り込み処理等。先に処理すると、本来命令実行後に発生すべき割り込みが命令実行前に発生することになるような周辺処理)をTp時間、またはTpp時間分行う(ステップS9)。後処理部19のここでの処理時間がTp時間、またはTpp時間のいずれであるかは、命令処理部15がここで命令実行を行った時間がTp時間、またはTpp時間のいずれであるかと同じである。その後、ステップS11が実行される。

0116

ステップS11では、時間管理部17の時間をTp、またはTpp分進める。同様に、ステップS12では、周辺処理時間管理テーブル16aの時間もTp時間、またはTpp時間分進める(周辺処理時間管理テーブル16aに記載された割り込み発生までの時間をTp時間、またはTpp時間分減算する)。ステップSS11およびS12において、進める時間がTp時間、またはTpp時間のいずれであるかは、命令処理部15がここで命令実行を行った時間がTp時間、またはTpp時間のいずれであるかと同じである。次に、ステップS13が実行される。

0117

ステップS13では、シミュレーション部14が、デバッガ部13から発生される命令中断コマンドを入力したか否かが判定される。その判定の結果、シミュレーション部14が命令中断コマンドを入力していない場合(ステップS13−N)には、シミュレーション部14は、再度、ステップS6からの処理を行う。一方、その判定の結果、シミュレーション部14が命令中断コマンドを入力している場合(ステップS13−Y)には、シミュレーション部14は、コマンド待ち状態に戻る(ステップS2)。

0118

次いで、上記ステップS8での比較の結果、時間Tpが時間Tiより大きいか等しい場合(ステップS8−Y)について説明する。

0119

時間Tpが時間Tiより大きいか等しい場合(ステップS8−Y)には、時間管理部17は、Ti時間分のシミュレーションを行うよう、命令処理部15と周辺処理部16に指示する。その結果、ステップS10が実行される。

0120

ステップS10では、ステップS9と共通に説明したように、命令処理部15による命令実行よりも先に、周辺処理部16が、周辺機能をTi時間分、実行する。この場合、Ti時間より前に(周辺処理部16によるTi時間分の周辺機能の処理の途中に)、端子からの外部割り込み発生要求等に基づいて、割り込みが発生した場合には、今回周辺処理を開始してからその割り込み発生までの時間Tiiを時間管理部17に通知する(ステップS10)。

0121

すると、時間管理部17は、周辺処理部16から通知された新しい時間Tii分の処理を命令処理部15に指示し直す(ステップS10)。命令処理部15は、時間管理部17からTii時間分の処理を指示された場合には、Tii時間分の命令実行を行い、Tii時間分の処理を指示されていない場合には、Ti時間分の命令実行を行う(ステップS10)。

0122

命令処理部15は、そのTi時間、またはTii時間分の命令実行を行った後、周辺処理部16に制御を返す。周辺処理部16の後処理部19は、後で処理が必要な周辺処理(割り込み処理等。先に処理すると、本来命令実行後に発生すべき割り込みが命令実行前に発生することになるような周辺処理)をTi時間、またはTii時間分行う(ステップS10)。後処理部19のここでの処理時間がTi時間、またはTii時間のいずれであるかは、命令処理部15がここで命令実行を行った時間がTi時間、またはTii時間のいずれであるかと同じである。その後、ステップS14が実行される。

0123

ステップS14では、時間管理部17の時間をTiまたはTii分進める。ステップSS14において、進める時間がTi時間、またはTii時間のいずれであるかは、命令処理部15がここで命令実行を行った時間がTi時間、またはTii時間のいずれであるかと同じである。次に、ステップS15が実行される。ステップS15では、上記ステップS12と異なる以下の処理が行われる場合がある。

0124

ステップS15では、周辺処理時間管理テーブル16aの時間を進める前に、時間管理部17が、ステップS10での命令実行の結果に基づいて割り込み発生時間の変化があるか否かを検出する必要がある。時間管理部17がその変化を検出した場合には、その変化を反映させるように、周辺処理時間管理テーブル16aの割り込み発生時間情報を書き換える(ステップS15)。

0125

ステップS15の内容を具体的に説明する。周辺処理時間管理テーブル16aにおいて、前回までタイマ(TM)1は、500クロック毎に割り込み発生するように指定されており、現時点ではあと100クロックで割り込み発生予定であったが、今回のステップS10での命令実行後、1000クロック毎に割り込みを発生するように変更になった場合には、周辺処理時間管理テーブル16aの所定の箇所(TM1の割り込み発生時間情報)を100から1000に変更する必要がある。これに対し、今回のステップS10での命令実行後、割り込み発生時間情報を見直す必要がなかった項目に関しては、上記ステップS12と同様に、周辺処理時間管理テーブル16aの時間を進める処理を行う(ステップS15)。次に、ステップS13が実行される。

0126

ステップS13では、シミュレーション部14が、デバッガ部13から発生される命令中断コマンドを入力したか否かが判定される。その判定の結果、シミュレーション部14が命令中断コマンドを入力していない場合(ステップS13−N)には、シミュレーション部14は、再度、ステップS6からの処理を行う。一方、その判定の結果、シミュレーション部14が命令中断コマンドを入力している場合(ステップS13−Y)には、シミュレーション部14は、コマンド待ち状態に戻る(ステップS2)。

発明の効果

0127

本発明のシミュレーション装置によれば、シミュレーションの高速化を実現することができる。命令処理部と周辺処理部との連携で時間を費やすことを最小限に抑えることができるからである。

図面の簡単な説明

0128

図1図1は、本発明のシミュレーション装置の一実施形態の全体構成を示すブロック図である。
図2図2は、本発明のシミュレーション装置の一実施形態の動作を示すフローチャートである。
図3図3は、本発明のシミュレーション装置の一実施形態の動作を概略的に説明するためのタイミングチャートである。
図4図4は、本発明のシミュレーション装置の一実施形態の動作を概略的に説明するための他のタイミングチャートである。
図5図5は、従来のシミュレーション装置の全体構成を示すブロック図である。
図6図6は、従来のシミュレーション装置の動作を概略的に説明するためのタイミングチャートである。

--

0129

10シミュレーション装置
11aユーザプログラム
11b初期化済ユーザプログラム
12初期処理部
13デバッガ部
14シミュレーション部
15命令処理部
16周辺処理部
16a 周辺処理時間管理テーブル
17時間管理部
18 前処理部
19 後処理部
50 シミュレーション装置
51 デバッガ部
52 ユーザプログラム
53 シミュレーション部
54 命令処理部
55 周辺処理部

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ