JPH07121396A - エミュレータ - Google Patents
エミュレータInfo
- Publication number
- JPH07121396A JPH07121396A JP5287578A JP28757893A JPH07121396A JP H07121396 A JPH07121396 A JP H07121396A JP 5287578 A JP5287578 A JP 5287578A JP 28757893 A JP28757893 A JP 28757893A JP H07121396 A JPH07121396 A JP H07121396A
- Authority
- JP
- Japan
- Prior art keywords
- emulation
- information
- emulator
- processor
- target system
- 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.)
- Withdrawn
Links
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】
【目的】 エミュレーションにおいて、特定のレジスタ
情報をトレース可能とし、ユーザプログラムの動作確認
をする。 【構成】 ターゲットプロセッサを代行するエミュレー
ション用プロセッサ2内の、スタックポインタ及びフラ
グレジスタの保有情報はエミュレーション用インターフ
ェース21を介して出される。出力された該情報はトレ
ースメモリ部6の格納領域62格納される。格納された
情報は、改めてユーザプログラムを実行する際に、その
動作開始位置におけるエミュレーション用プロセッサの
内部状態を設定するための情報として利用される。
情報をトレース可能とし、ユーザプログラムの動作確認
をする。 【構成】 ターゲットプロセッサを代行するエミュレー
ション用プロセッサ2内の、スタックポインタ及びフラ
グレジスタの保有情報はエミュレーション用インターフ
ェース21を介して出される。出力された該情報はトレ
ースメモリ部6の格納領域62格納される。格納された
情報は、改めてユーザプログラムを実行する際に、その
動作開始位置におけるエミュレーション用プロセッサの
内部状態を設定するための情報として利用される。
Description
【0001】
【産業上の利用分野】本発明は、エミュレータさらには
ターゲットシステムを代行制御するためのエミュレーシ
ョン用プロセッサの内部状態を再現するための技術に関
し、例えばインサーキットエミュレータに適用して有効
な技術に関するものである。
ターゲットシステムを代行制御するためのエミュレーシ
ョン用プロセッサの内部状態を再現するための技術に関
し、例えばインサーキットエミュレータに適用して有効
な技術に関するものである。
【0002】
【従来の技術】マイクロコンピュータ応用機器(以下単
にターゲットシステムとも記す)の開発において、その
システムデバッグやシステム評価を行うためのエミュレ
ータは、ターゲットシステムのためのマイクロコンピュ
ータもしくはマイクロプロセッサ(以下単にターゲット
プロセッサとも記す)の機能を代行しながらソフトウェ
アデバッグもしくはシステムデバッグを支援する。な
お、エミュレータについて記載された文献の例として
は、日立マイクロコンピュータエンジニアリング(株)
発行(昭和63年10月1日),「日立マイコン技法」
Vol.2 No.2 p21乃至p27がある。この
ようなエミュレータは、ターゲットプロセッサと同等の
マイクロコンピュータやプロセッサ(以下単にエミュレ
ーション用プロセッサとも記す)を備え、ターゲットシ
ステムにおけるターゲットプロセッサ搭載領域にコネク
タやケーブルを介してインタフェースされ、このエミュ
レーション用プロセッサにソフトウェアデバッグ対象と
されるプログラムを実行させてターゲットシステムを代
行制御する。このとき、デバッグ対象プログラムの内容
を任意に変更したりして、その制御状態をトレースし、
所定のブレークポイントでそのトレース結果を確認可能
にしながらターゲットシステムのソフトウェアデバッグ
もしくはシステムデバッグを支援する。
にターゲットシステムとも記す)の開発において、その
システムデバッグやシステム評価を行うためのエミュレ
ータは、ターゲットシステムのためのマイクロコンピュ
ータもしくはマイクロプロセッサ(以下単にターゲット
プロセッサとも記す)の機能を代行しながらソフトウェ
アデバッグもしくはシステムデバッグを支援する。な
お、エミュレータについて記載された文献の例として
は、日立マイクロコンピュータエンジニアリング(株)
発行(昭和63年10月1日),「日立マイコン技法」
Vol.2 No.2 p21乃至p27がある。この
ようなエミュレータは、ターゲットプロセッサと同等の
マイクロコンピュータやプロセッサ(以下単にエミュレ
ーション用プロセッサとも記す)を備え、ターゲットシ
ステムにおけるターゲットプロセッサ搭載領域にコネク
タやケーブルを介してインタフェースされ、このエミュ
レーション用プロセッサにソフトウェアデバッグ対象と
されるプログラムを実行させてターゲットシステムを代
行制御する。このとき、デバッグ対象プログラムの内容
を任意に変更したりして、その制御状態をトレースし、
所定のブレークポイントでそのトレース結果を確認可能
にしながらターゲットシステムのソフトウェアデバッグ
もしくはシステムデバッグを支援する。
【0003】通常のデバック処理は、次のような方法で
行われる。先ず、ユーザプログラムの実行において所定
のアドレスなど一定の事象が発生する状態でターゲット
システムが停止するようにブレーク制御機能を用いてブ
レークポイントを設定し、次いでエミュレーション制御
機能を用いてデバックに有効なアドレスよりユーザプロ
グラムを実行させてエミュレーションを行う。ユーザプ
ログラムがブレーク制御機能により設定した地点(ブレ
ークポイント)に到達し若しくは一定の事象が発生する
と、ターゲットシステムの動作が停止する。この間、ユ
ーザはトレース制御機能により蓄えられたトレースメモ
リの情報を調べ、正常にターゲットシステムが動作した
か知ることができる。その結果、問題が無ければ順次ユ
ーザプログラムの動作部位を同様にして確認することが
できる。このとき、問題があれば得られたトレース情報
よりハードウエア及びソフトウエアの障害部位を解析す
ることができる。
行われる。先ず、ユーザプログラムの実行において所定
のアドレスなど一定の事象が発生する状態でターゲット
システムが停止するようにブレーク制御機能を用いてブ
レークポイントを設定し、次いでエミュレーション制御
機能を用いてデバックに有効なアドレスよりユーザプロ
グラムを実行させてエミュレーションを行う。ユーザプ
ログラムがブレーク制御機能により設定した地点(ブレ
ークポイント)に到達し若しくは一定の事象が発生する
と、ターゲットシステムの動作が停止する。この間、ユ
ーザはトレース制御機能により蓄えられたトレースメモ
リの情報を調べ、正常にターゲットシステムが動作した
か知ることができる。その結果、問題が無ければ順次ユ
ーザプログラムの動作部位を同様にして確認することが
できる。このとき、問題があれば得られたトレース情報
よりハードウエア及びソフトウエアの障害部位を解析す
ることができる。
【0004】従来のエミュレータは、ターゲットシステ
ム及びユーザプログラムをデバックする際、ユーザプロ
グラムの最初から停止部位までの動作を確認するのに有
効であった。再度ユーザプログラムの動作確認をする際
は、前回の停止位置より動作確認をする事ができる。ブ
レークしたときのエミュレーション用プロセッサの内部
状態は、再現可能になりエミュレータ側に退避されるか
らである。したがって、エミュレーション用プロセッサ
の上記退避された内部状態を復帰させることにより、ユ
ーザプログラム停止時の次からエミュレーションを再開
することができる。
ム及びユーザプログラムをデバックする際、ユーザプロ
グラムの最初から停止部位までの動作を確認するのに有
効であった。再度ユーザプログラムの動作確認をする際
は、前回の停止位置より動作確認をする事ができる。ブ
レークしたときのエミュレーション用プロセッサの内部
状態は、再現可能になりエミュレータ側に退避されるか
らである。したがって、エミュレーション用プロセッサ
の上記退避された内部状態を復帰させることにより、ユ
ーザプログラム停止時の次からエミュレーションを再開
することができる。
【0005】
【発明が解決しようとする課題】上記ブレークポイント
の次から連続的にエミュレーションを行わない場合、例
えばブレークポイントまでのトレース情報を検証した結
果、当該ブレークポイントの手前からエミュレーション
を再開したいような場合は、当該エミュレーションを再
開したい地点におけるエミュレーション用プロセッサの
内部状態を特別に設定しなければならない。しかしなが
ら、ブレーク時に退避可能なエミュレーション用プロセ
ッサの内部状態は、従来ブレークした時点における内部
状態だけであった。このため、任意の地点からエミュレ
ーションを再開するには、当該地点におけるエミュレー
ション用プロッセッサの内部状態を理論的に把握して、
スタックポインタやフラグレジスタなどのレジスタ情報
をエミュレータのコマンドで修正しなければならない。
このような修正すべき情報を理論的に把握するには時間
を要し、エミュレーションに多大な時間を要するという
問題点があることが本発明者らによって明らかにされ
た。更に、上記理論的に把握されたレジスタ情報はエミ
ュレーションを行う過程で実際に得られる内部状態とは
必ずしも一致するとは限らない。このため、上述の任意
の地点からのエミュレーションを再実行させる手法で
は、開発途上のターゲットシステムを高い信頼性を以て
評価することは難しいということが本発明者らによって
見いだされた。
の次から連続的にエミュレーションを行わない場合、例
えばブレークポイントまでのトレース情報を検証した結
果、当該ブレークポイントの手前からエミュレーション
を再開したいような場合は、当該エミュレーションを再
開したい地点におけるエミュレーション用プロセッサの
内部状態を特別に設定しなければならない。しかしなが
ら、ブレーク時に退避可能なエミュレーション用プロセ
ッサの内部状態は、従来ブレークした時点における内部
状態だけであった。このため、任意の地点からエミュレ
ーションを再開するには、当該地点におけるエミュレー
ション用プロッセッサの内部状態を理論的に把握して、
スタックポインタやフラグレジスタなどのレジスタ情報
をエミュレータのコマンドで修正しなければならない。
このような修正すべき情報を理論的に把握するには時間
を要し、エミュレーションに多大な時間を要するという
問題点があることが本発明者らによって明らかにされ
た。更に、上記理論的に把握されたレジスタ情報はエミ
ュレーションを行う過程で実際に得られる内部状態とは
必ずしも一致するとは限らない。このため、上述の任意
の地点からのエミュレーションを再実行させる手法で
は、開発途上のターゲットシステムを高い信頼性を以て
評価することは難しいということが本発明者らによって
見いだされた。
【0006】本発明の目的は、エミュレーション結果に
基づいて、ユーザプログラムの所望の動作部位からエミ
ュレーションを再開できるエミュレータを提供すること
にある。本発明の別の目的は、ターゲットシステムの実
状態に即したエミュレーションを行うことができるエミ
ュレータを提供することにある。
基づいて、ユーザプログラムの所望の動作部位からエミ
ュレーションを再開できるエミュレータを提供すること
にある。本発明の別の目的は、ターゲットシステムの実
状態に即したエミュレーションを行うことができるエミ
ュレータを提供することにある。
【0007】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0008】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0009】すなわち、ターゲットシステムに対する代
行制御に同期してエミュレーション用プロッセッサ内部
のスタックポインタ及びフラグレジスタの情報を外部に
出力するエミュレーション用インタフェース手段を当該
エミュレーション用プロッセッサに設けると共に、該イ
ンタフェース手段から出力されるスタックポインタ及び
フラグレジスタの保有情報を格納する領域をトレースメ
モリ部に割当てエミュレータを構成する。また、ターゲ
ットシステムの代行制御途上において、エミュレーショ
ン用プロセッサから出力されるアクセスアドレスを、タ
ーゲットシステムに採用されるスタック領域のアドレス
範囲とを比較し、その比較結果の一致に応じてそのアク
セスアドレスを情報の退避に利用されたスタック領域の
アドレスとしてトレースメモリ部に出力する検知回路を
設けてエミュレータを構成する。
行制御に同期してエミュレーション用プロッセッサ内部
のスタックポインタ及びフラグレジスタの情報を外部に
出力するエミュレーション用インタフェース手段を当該
エミュレーション用プロッセッサに設けると共に、該イ
ンタフェース手段から出力されるスタックポインタ及び
フラグレジスタの保有情報を格納する領域をトレースメ
モリ部に割当てエミュレータを構成する。また、ターゲ
ットシステムの代行制御途上において、エミュレーショ
ン用プロセッサから出力されるアクセスアドレスを、タ
ーゲットシステムに採用されるスタック領域のアドレス
範囲とを比較し、その比較結果の一致に応じてそのアク
セスアドレスを情報の退避に利用されたスタック領域の
アドレスとしてトレースメモリ部に出力する検知回路を
設けてエミュレータを構成する。
【0010】
【作用】上記した手段によれば、実際にエミュレーショ
ンが行われると、それがする処理状況に応じたスタック
ポインタの値及びフラグレジスタの値が時系列的にトレ
ースメモリ部に蓄積される。一旦、エミュレーションを
実行した範囲内の所望の地点からエミュレーションを再
開するときは、既にトレースされたスタックポインタ及
びフラグレジスタの値の中から当該再開地点の値を利用
してエミュレーション用プロセッサのスタックポインタ
及びフラグレジスタの値を設定する。所望の地点におい
て斯様にエミュレーション用プロセッサの内部状態を再
設定することは、ターゲットシステムの実状態に即した
エミュレーションを可能にする。また、上記した他の手
段によれば、実際にエミュレーションが行われると、そ
れがする処理状況に応じたアクセスアドレスとスタック
領域に保持されたアドレス範囲とを比較し、一致するこ
とにより該アドレスがトレースメモリ部に蓄積される。
一旦、エミュレーションを実行した範囲内の所望の地点
より再開するときは、既にトレースされたアクセスアド
レスを利用してエミュレーションプロセッサの内部状態
を設定する。こうして、ターゲットシステムの実状態に
即したエミュレーションを可能にする。
ンが行われると、それがする処理状況に応じたスタック
ポインタの値及びフラグレジスタの値が時系列的にトレ
ースメモリ部に蓄積される。一旦、エミュレーションを
実行した範囲内の所望の地点からエミュレーションを再
開するときは、既にトレースされたスタックポインタ及
びフラグレジスタの値の中から当該再開地点の値を利用
してエミュレーション用プロセッサのスタックポインタ
及びフラグレジスタの値を設定する。所望の地点におい
て斯様にエミュレーション用プロセッサの内部状態を再
設定することは、ターゲットシステムの実状態に即した
エミュレーションを可能にする。また、上記した他の手
段によれば、実際にエミュレーションが行われると、そ
れがする処理状況に応じたアクセスアドレスとスタック
領域に保持されたアドレス範囲とを比較し、一致するこ
とにより該アドレスがトレースメモリ部に蓄積される。
一旦、エミュレーションを実行した範囲内の所望の地点
より再開するときは、既にトレースされたアクセスアド
レスを利用してエミュレーションプロセッサの内部状態
を設定する。こうして、ターゲットシステムの実状態に
即したエミュレーションを可能にする。
【0011】
【実施例】図3には本発明の一実施例に係るエミュレー
タを適用したシステム構成例が示される。図3に示すよ
うにインサーキットエミュレータ11はソフトウエア開
発用のホストコンピュータなどのシステム開発装置であ
る親計算機10とシリアル回線バスラインを介して、又
エミュレートされるターゲットシステム9とケーブル1
2及びターゲットマイクロコンピュータ用ソケット13
を介して接続される。上記ターゲットシステム9は、マ
イクロコンピュータを応用した適宜用いられるシステム
である。上記インサーキットエミュレータ11は、その
ターゲットシステム9に本来実装されるべきマイクロコ
ンピュータ(以下ターゲットプロセッサとも記す)を代
行制御する。
タを適用したシステム構成例が示される。図3に示すよ
うにインサーキットエミュレータ11はソフトウエア開
発用のホストコンピュータなどのシステム開発装置であ
る親計算機10とシリアル回線バスラインを介して、又
エミュレートされるターゲットシステム9とケーブル1
2及びターゲットマイクロコンピュータ用ソケット13
を介して接続される。上記ターゲットシステム9は、マ
イクロコンピュータを応用した適宜用いられるシステム
である。上記インサーキットエミュレータ11は、その
ターゲットシステム9に本来実装されるべきマイクロコ
ンピュータ(以下ターゲットプロセッサとも記す)を代
行制御する。
【0012】図2には上記インサーキットエミュレータ
11の一例であるブロック図が示される。同図に示され
るインサーキットエミュレータ11において、エミュレ
ーション用プロセッサ2はスレーブバス4に接続され
る。このスレーブバス4を用いて、エミュレーション用
プロセッサ2から、ターゲットシステムとエミュレーシ
ョン用プロセッサ2が送受信する各種の信号や、エミュ
レーション用プロセッサ2の内部状態に応じた情報など
がターゲットプロセッサ用ソケット13を介して出力さ
れ、また、エミュレーション用プロセッサ2に対し、エ
ミュレーションのための各種制御信号が入力される。
11の一例であるブロック図が示される。同図に示され
るインサーキットエミュレータ11において、エミュレ
ーション用プロセッサ2はスレーブバス4に接続され
る。このスレーブバス4を用いて、エミュレーション用
プロセッサ2から、ターゲットシステムとエミュレーシ
ョン用プロセッサ2が送受信する各種の信号や、エミュ
レーション用プロセッサ2の内部状態に応じた情報など
がターゲットプロセッサ用ソケット13を介して出力さ
れ、また、エミュレーション用プロセッサ2に対し、エ
ミュレーションのための各種制御信号が入力される。
【0013】さらに、上記スレーブバス4には、エミュ
レーションプログラムなどを格納する代行メモリ部16
と、ブレーク制御部5と、トレースメモリ部6とエミュ
レーション制御部15などが接続される。エミュレーシ
ョン制御部15は、エミュレーションを行う際にエミュ
レーション用プロセッサにエミュレーションの開始条件
などを設定する。ブレーク制御部5は、エミュレーショ
ン用プロセッサ2の制御状態やスレーブバス4の状態を
監視して、その状態が予め設定された状態に達したとき
に、エミュレータ専用割込みを出力して、エミュレーシ
ョン用プロセッサ2によるユーザプログラムの実行を停
止させ、エミュレーションプログラムを実行させる(ブ
レーク)制御を行う。トレースメモリ部6は、前記エミ
ュレーション用プロセッサ2のリード動作またはライト
動作を示す信号、命令リード動作を示す信号などに基づ
き、スレーブバス4に与えられるアドレスやデータさら
には制御情報を逐次蓄える。代行メモリ部16、ブレー
ク制御部5、トレースメモリ部6はマスタバス3を介し
てマスタマイクロコンピュータ1の制御を受けるように
なっている。マスタバス3は、シリアルインタフェース
14を介して、特に制限はされないもののパーソナルコ
ンピュータなどの親計算機10に接続される。なお、必
要に応じてプローブ18をトレースメモリ部6に直結さ
せた構成を付加することができる。
レーションプログラムなどを格納する代行メモリ部16
と、ブレーク制御部5と、トレースメモリ部6とエミュ
レーション制御部15などが接続される。エミュレーシ
ョン制御部15は、エミュレーションを行う際にエミュ
レーション用プロセッサにエミュレーションの開始条件
などを設定する。ブレーク制御部5は、エミュレーショ
ン用プロセッサ2の制御状態やスレーブバス4の状態を
監視して、その状態が予め設定された状態に達したとき
に、エミュレータ専用割込みを出力して、エミュレーシ
ョン用プロセッサ2によるユーザプログラムの実行を停
止させ、エミュレーションプログラムを実行させる(ブ
レーク)制御を行う。トレースメモリ部6は、前記エミ
ュレーション用プロセッサ2のリード動作またはライト
動作を示す信号、命令リード動作を示す信号などに基づ
き、スレーブバス4に与えられるアドレスやデータさら
には制御情報を逐次蓄える。代行メモリ部16、ブレー
ク制御部5、トレースメモリ部6はマスタバス3を介し
てマスタマイクロコンピュータ1の制御を受けるように
なっている。マスタバス3は、シリアルインタフェース
14を介して、特に制限はされないもののパーソナルコ
ンピュータなどの親計算機10に接続される。なお、必
要に応じてプローブ18をトレースメモリ部6に直結さ
せた構成を付加することができる。
【0014】図1には、本実施例に係るエミュレータの
要部が示される。図1に示されるマルチプレクサ8は、
同図に代表的に示されたトレースメモリ部6及びブレー
ク制御部5をマスタマイクロコンピュータ1に接続する
のか、又はエミュレーション用プロセッサ2に接続する
のかを選択するための回路である。図2において、その
ようなマルチプレクサ8の機能はブレーク制御部5など
の各回路ブロックに含まれているものと理解されたい。
要部が示される。図1に示されるマルチプレクサ8は、
同図に代表的に示されたトレースメモリ部6及びブレー
ク制御部5をマスタマイクロコンピュータ1に接続する
のか、又はエミュレーション用プロセッサ2に接続する
のかを選択するための回路である。図2において、その
ようなマルチプレクサ8の機能はブレーク制御部5など
の各回路ブロックに含まれているものと理解されたい。
【0015】上記マルチプレクサ8は、エミュレーショ
ン途上において、トレースメモリ部6及びブレーク制御
部5のデータ入出力端子をエミュレーション用プロセッ
サ側に接続する。
ン途上において、トレースメモリ部6及びブレーク制御
部5のデータ入出力端子をエミュレーション用プロセッ
サ側に接続する。
【0016】エミュレーション用プロセッサ2は、デバ
ック対象とされるユーザプログラムを実行するとき、タ
ーゲットシステム9の代行制御に必要な情報をターゲッ
トシステム9との間でやりとりする。この状態はターゲ
ットシステム9と図示しないターゲットプロセッサとの
関係に等しい。更に、エミュレーション用プロセッサ2
はユーザプログラム(ターゲットプログラムとも記す)
若しくはターゲットシステム9の評価のために用いる各
種情報(ターゲットシステム9とやりとりされる情報も
含む)を、後述するエミュレーション用インタフェース
21(図4参照)から出力する。トレースメモリ部は6
は、ターゲットシステム9との間でやりとりされる情報
と共に、上記エミュレーション用インターフェース21
から評価のためにのみ出力される情報を、例えばエミュ
レーション用プロセッサ2が起動するバスサイクル毎に
蓄積していく。特に、エミュレーション用プロセッサ2
は、ユーザプログラムの実行によって設定されるセント
ラルプロセッシングユニット内のスタックポインタの情
報と演算処理による内部状態を示すフラグレジスタの情
報とを、エミュレーションに同期して上記エミュレーシ
ョン用インターフェースから出力する。上記トレースメ
モリ部6は、スタックポインタの情報及びフラグレジス
タの値を蓄積していく格納領域62を備える。
ック対象とされるユーザプログラムを実行するとき、タ
ーゲットシステム9の代行制御に必要な情報をターゲッ
トシステム9との間でやりとりする。この状態はターゲ
ットシステム9と図示しないターゲットプロセッサとの
関係に等しい。更に、エミュレーション用プロセッサ2
はユーザプログラム(ターゲットプログラムとも記す)
若しくはターゲットシステム9の評価のために用いる各
種情報(ターゲットシステム9とやりとりされる情報も
含む)を、後述するエミュレーション用インタフェース
21(図4参照)から出力する。トレースメモリ部は6
は、ターゲットシステム9との間でやりとりされる情報
と共に、上記エミュレーション用インターフェース21
から評価のためにのみ出力される情報を、例えばエミュ
レーション用プロセッサ2が起動するバスサイクル毎に
蓄積していく。特に、エミュレーション用プロセッサ2
は、ユーザプログラムの実行によって設定されるセント
ラルプロセッシングユニット内のスタックポインタの情
報と演算処理による内部状態を示すフラグレジスタの情
報とを、エミュレーションに同期して上記エミュレーシ
ョン用インターフェースから出力する。上記トレースメ
モリ部6は、スタックポインタの情報及びフラグレジス
タの値を蓄積していく格納領域62を備える。
【0017】上記マルチプレクサ8は、エミュレーショ
ン用プロセッサ2によるユーザプログラムの実行が停止
された状態、すなわちブレークされた状態において、ト
レースメモリ部6及びブレーク制御部5をマスタマイク
ロコンピュータ1に接続する。この状態において、トレ
ースメモリ部6にトレースされた情報はマスタマイクロ
コンピュータ1の制御を介して親計算機10に転送可能
にされる。ここで、トレースされた情報を検証した結
果、一旦エミュレーションを実行した範囲内でユーザプ
ログラムの所望の地点からエミュレーションを再開した
いときは、トレースされたスタックポインタ及びフラグ
レジスタの情報を用いてエミュレーション用プロッセサ
2の内部状態を再設定すればよい。すなわち、エミュレ
ーションが行われると、それによるデータ処理状況に応
じたスタックポインタ及びフラグレジスタの値が時系列
的に格納領域62に蓄積されているので、それらの中か
らエミュレーションの再開地点の値を選択してエミュレ
ーション用プロセッサ2のスタックポインタ及びフラグ
レジスタに再設定する。エミュレーション用プロセッサ
2内部の再設定は、その他にプログラムカウンタ、デー
タレジスタ及びアドレスレジスタも必要であるが、それ
らの値は、上記再設定すべきスタックポインタの値で示
されるスタック領域の値をトレースメモリ部6にトレー
スされた情報の中から参照することによって容易に得る
ことができる。これらの再設定の処理は、マスタマイク
ロコンピュータ1の制御に基づいてエミュレーション制
御部15が行う。これにより、トレースされたレジスタ
情報などを前記エミュレーション制御部15に設定する
ことにより、ブレークした地点以前の任意の地点よりエ
ミュレーションを開始することが可能となる。開始され
たユーザプログラムの終了条件は、ブレーク設定値によ
り決まり、この値はブレーク制御部5で設定される。こ
れらの制御動作は、全てマスタマイクロコンピュータ1
による指令により制御される。
ン用プロセッサ2によるユーザプログラムの実行が停止
された状態、すなわちブレークされた状態において、ト
レースメモリ部6及びブレーク制御部5をマスタマイク
ロコンピュータ1に接続する。この状態において、トレ
ースメモリ部6にトレースされた情報はマスタマイクロ
コンピュータ1の制御を介して親計算機10に転送可能
にされる。ここで、トレースされた情報を検証した結
果、一旦エミュレーションを実行した範囲内でユーザプ
ログラムの所望の地点からエミュレーションを再開した
いときは、トレースされたスタックポインタ及びフラグ
レジスタの情報を用いてエミュレーション用プロッセサ
2の内部状態を再設定すればよい。すなわち、エミュレ
ーションが行われると、それによるデータ処理状況に応
じたスタックポインタ及びフラグレジスタの値が時系列
的に格納領域62に蓄積されているので、それらの中か
らエミュレーションの再開地点の値を選択してエミュレ
ーション用プロセッサ2のスタックポインタ及びフラグ
レジスタに再設定する。エミュレーション用プロセッサ
2内部の再設定は、その他にプログラムカウンタ、デー
タレジスタ及びアドレスレジスタも必要であるが、それ
らの値は、上記再設定すべきスタックポインタの値で示
されるスタック領域の値をトレースメモリ部6にトレー
スされた情報の中から参照することによって容易に得る
ことができる。これらの再設定の処理は、マスタマイク
ロコンピュータ1の制御に基づいてエミュレーション制
御部15が行う。これにより、トレースされたレジスタ
情報などを前記エミュレーション制御部15に設定する
ことにより、ブレークした地点以前の任意の地点よりエ
ミュレーションを開始することが可能となる。開始され
たユーザプログラムの終了条件は、ブレーク設定値によ
り決まり、この値はブレーク制御部5で設定される。こ
れらの制御動作は、全てマスタマイクロコンピュータ1
による指令により制御される。
【0018】図4には、上記エミュレーション用プロセ
ッサ2のブロック構成の一例が示される。同図に示すよ
うにエミュレーション用プロセッサ2は、シングルチッ
プマイクロコンピュータ部分26とエミュレーション用
インタフェース21よりなる。シングルチップマイクロ
コンピュータ部分26は、図示しないターゲットプロセ
ッサに対応する部分である。シングルチップマイクロコ
ンピュータ部分26は、特に限定されないがセントラル
プロセッシングユニット29、リードオンリメモリ2
8、ランダムアクセスメモリ24、タイマ14、シリア
ルインタフェース14、外部バスインタフェース25、
入出力ポート26及びバス制御回路30などから構成さ
れる。これら回路ブロックは、データバス、アドレスバ
ス及びコントロールバスなどを含む内部バス31に共通
に接続されている。前記エミュレーション用インタフェ
ース21は、前記マスタマイクロコンピュータ1と信号
の送受信を行う。外部バスインターフェース25及び入
出力ポート27は、ターゲットシステムとの間で信号の
送受信を行うインタフェースとされる。このインタフェ
ースは、例えばポートの入出力データ、タイマの入出力
信号などを外部とやりとりする。
ッサ2のブロック構成の一例が示される。同図に示すよ
うにエミュレーション用プロセッサ2は、シングルチッ
プマイクロコンピュータ部分26とエミュレーション用
インタフェース21よりなる。シングルチップマイクロ
コンピュータ部分26は、図示しないターゲットプロセ
ッサに対応する部分である。シングルチップマイクロコ
ンピュータ部分26は、特に限定されないがセントラル
プロセッシングユニット29、リードオンリメモリ2
8、ランダムアクセスメモリ24、タイマ14、シリア
ルインタフェース14、外部バスインタフェース25、
入出力ポート26及びバス制御回路30などから構成さ
れる。これら回路ブロックは、データバス、アドレスバ
ス及びコントロールバスなどを含む内部バス31に共通
に接続されている。前記エミュレーション用インタフェ
ース21は、前記マスタマイクロコンピュータ1と信号
の送受信を行う。外部バスインターフェース25及び入
出力ポート27は、ターゲットシステムとの間で信号の
送受信を行うインタフェースとされる。このインタフェ
ースは、例えばポートの入出力データ、タイマの入出力
信号などを外部とやりとりする。
【0019】図5には、上記シングルチップマイクロコ
ンピュータ部分26におけるセントラルプロセッシング
ユニット(CPUとも記す)29の構成の一例が示され
る。前記スタックポインタ及びフラグレジスタの保有情
報は、ここで得られる。ユーザプログラム実行中は、順
次インストラクションレジスタ37に命令が読み込ま
れ、デコーダ38で命令の解読が行われることによっ
て、各部を制御する内部制御信号が生成される。これに
より当該命令に応じた処理がデータレジスタ33及び演
算器34を介して行われる。その結果は、内部レジスタ
である演算結果などを示すフラグレジスタ35、フラグ
レジスタの値を参照して決定される条件ジャンプによる
プログラムの移動位置を示す状態表示レジスタ36など
に反映される。演算結果や演算対象などは、各種の専
用,汎用レジスタ32に格納される。ここで、専用レジ
スタとしては、割込みの動作モードを示す割込みベクタ
レジスタ,オペコードのフェッチサイクルの数をカウン
トするオペランドフェッチサイクルカウント,LIFO
(ラースト・イン・アウト)形式のスタック領域におい
ても次にスタック可能な領域又は直前にスタックした領
域の先頭アドレスを格納するスタックポインタ32A,
次に実行される命令のアドレスを格納するプログラムカ
ウンタ,インデックスアドレッシングや16ビット演算
に用いられるインデックスレジスタなどが挙げられる。
また、汎用レジスタは、データレジスタ,アドレスレジ
スタなどから構成される。ここで得られるフラグレジス
タ及びスタックポインタの保有情報は、前記エミュレー
ション用インターフェース21により外部に出力され
て、トレース部6に格納可能とされる。
ンピュータ部分26におけるセントラルプロセッシング
ユニット(CPUとも記す)29の構成の一例が示され
る。前記スタックポインタ及びフラグレジスタの保有情
報は、ここで得られる。ユーザプログラム実行中は、順
次インストラクションレジスタ37に命令が読み込ま
れ、デコーダ38で命令の解読が行われることによっ
て、各部を制御する内部制御信号が生成される。これに
より当該命令に応じた処理がデータレジスタ33及び演
算器34を介して行われる。その結果は、内部レジスタ
である演算結果などを示すフラグレジスタ35、フラグ
レジスタの値を参照して決定される条件ジャンプによる
プログラムの移動位置を示す状態表示レジスタ36など
に反映される。演算結果や演算対象などは、各種の専
用,汎用レジスタ32に格納される。ここで、専用レジ
スタとしては、割込みの動作モードを示す割込みベクタ
レジスタ,オペコードのフェッチサイクルの数をカウン
トするオペランドフェッチサイクルカウント,LIFO
(ラースト・イン・アウト)形式のスタック領域におい
ても次にスタック可能な領域又は直前にスタックした領
域の先頭アドレスを格納するスタックポインタ32A,
次に実行される命令のアドレスを格納するプログラムカ
ウンタ,インデックスアドレッシングや16ビット演算
に用いられるインデックスレジスタなどが挙げられる。
また、汎用レジスタは、データレジスタ,アドレスレジ
スタなどから構成される。ここで得られるフラグレジス
タ及びスタックポインタの保有情報は、前記エミュレー
ション用インターフェース21により外部に出力され
て、トレース部6に格納可能とされる。
【0020】図6には本発明の別の実施例に係るエミュ
レータの要部が示される。この例は、図1のエミュレー
タに対し、スタックポインタ及びフラグレジスタの値を
外部に出力しない形式のエミュレーション用プロセッサ
を用いるものである。例えば、図1のエミュレータにお
いて、エミュレーション用プロセッサ2の代わりにシン
グルチップマイクロコンピュータ部分26が用いられる
一例が示されている。すなわち、図6には前記エミュレ
ーション用インタフェース21が無い場合のシステム構
成例が示される。図6に示すエミュレータは、図1に示
すエミュレータのようにスタックポインタやフラグレジ
スタの情報を直接トレースメモリ部6に格納する機構が
無いため、その機構に代替しうる検知回路7が付加され
る。この検知回路7では、ユーザプログラム実行中にタ
ーゲットシステムに採用されたスタック領域のアドレス
範囲が初期設定され、ユーザプログラムの実行時にシン
グルチップマイクロコンピュータ部分26から出力され
るアクセスアドレスが上記スタック領域のアドレス範囲
に入るのか比較動作を行う。例えば、ここで比較動作が
行われた場合、上記出力されるアドレスが同一であれば
トレースメモリ部6の領域61に該アクセスアドレスが
格納され、同一でない場合は空白情報が格納される。こ
うして、上記領域61に格納されたアクセスアドレス
は、エミュレーションを行う際のユーザプログラム実行
の指標として用いることができる。すなわち、一旦エミ
ュレーションされた範囲で任意の地点からエミュレーシ
ョンを再開するために、エミュレーション用プロセッサ
のスタックポインタを再設定するとき、上記領域61の
中から当該地点に対応するアドレス情報を参照すればよ
い。尚、他の回路ブロックの構成及び動作は、前記図1
の場合と同じである。
レータの要部が示される。この例は、図1のエミュレー
タに対し、スタックポインタ及びフラグレジスタの値を
外部に出力しない形式のエミュレーション用プロセッサ
を用いるものである。例えば、図1のエミュレータにお
いて、エミュレーション用プロセッサ2の代わりにシン
グルチップマイクロコンピュータ部分26が用いられる
一例が示されている。すなわち、図6には前記エミュレ
ーション用インタフェース21が無い場合のシステム構
成例が示される。図6に示すエミュレータは、図1に示
すエミュレータのようにスタックポインタやフラグレジ
スタの情報を直接トレースメモリ部6に格納する機構が
無いため、その機構に代替しうる検知回路7が付加され
る。この検知回路7では、ユーザプログラム実行中にタ
ーゲットシステムに採用されたスタック領域のアドレス
範囲が初期設定され、ユーザプログラムの実行時にシン
グルチップマイクロコンピュータ部分26から出力され
るアクセスアドレスが上記スタック領域のアドレス範囲
に入るのか比較動作を行う。例えば、ここで比較動作が
行われた場合、上記出力されるアドレスが同一であれば
トレースメモリ部6の領域61に該アクセスアドレスが
格納され、同一でない場合は空白情報が格納される。こ
うして、上記領域61に格納されたアクセスアドレス
は、エミュレーションを行う際のユーザプログラム実行
の指標として用いることができる。すなわち、一旦エミ
ュレーションされた範囲で任意の地点からエミュレーシ
ョンを再開するために、エミュレーション用プロセッサ
のスタックポインタを再設定するとき、上記領域61の
中から当該地点に対応するアドレス情報を参照すればよ
い。尚、他の回路ブロックの構成及び動作は、前記図1
の場合と同じである。
【0021】上記実施例によれば、以下の作用効果を得
るものである。 (1)ユーザプログラム実行時、エミュレーション用プ
ロセッサ2内のセントラルプロセッシングユニット29
で発生するフラグレジスタ及びスタックポインタの保有
情報をエミュレーション用インタフェース21を通じて
トレースメモリ部6の格納領域62へ送ることができ
る。このようにして得られる保有情報は、一旦エミュレ
ーションを行った範囲内で更に任意の地点からエミュレ
ーションを行う場合、当該地点におけるエミュレーショ
ン用プロセッサの内部状態を設定するための条件として
有効に用いられ、任意のユーザプログラム部位のエミュ
レーションを可能にし得る。 (2)ユーザプログラム実行時、シングルチップマイク
ロコンピュータ部分26がアクセスするアクセスアドレ
スと、スタック領域61に保持されたスタック領域のア
ドレス範囲との比較を行い、同一のアドレスであればス
タック領域に該アドレスを格納する。このようにして得
られるアクセスアドレスの情報は、一旦エミュレーショ
ンを行った範囲内で更に任意の地点からエミュレーショ
ンを行う場合、当該地点におけるエミュレーション用プ
ロセッサの内部状態を設定するための条件として有効に
用いられ、任意のユーザプログラム部位のエミュレーシ
ョンを可能にし得る。 (3)上記(1)及び(2)により、ターゲットシステ
ム9に対してエミュレーションを行って得られるような
実状態に即したエミュレーションを所望の地点より行う
ことができ、エミュレーションの信頼性を向上させるこ
とができる。
るものである。 (1)ユーザプログラム実行時、エミュレーション用プ
ロセッサ2内のセントラルプロセッシングユニット29
で発生するフラグレジスタ及びスタックポインタの保有
情報をエミュレーション用インタフェース21を通じて
トレースメモリ部6の格納領域62へ送ることができ
る。このようにして得られる保有情報は、一旦エミュレ
ーションを行った範囲内で更に任意の地点からエミュレ
ーションを行う場合、当該地点におけるエミュレーショ
ン用プロセッサの内部状態を設定するための条件として
有効に用いられ、任意のユーザプログラム部位のエミュ
レーションを可能にし得る。 (2)ユーザプログラム実行時、シングルチップマイク
ロコンピュータ部分26がアクセスするアクセスアドレ
スと、スタック領域61に保持されたスタック領域のア
ドレス範囲との比較を行い、同一のアドレスであればス
タック領域に該アドレスを格納する。このようにして得
られるアクセスアドレスの情報は、一旦エミュレーショ
ンを行った範囲内で更に任意の地点からエミュレーショ
ンを行う場合、当該地点におけるエミュレーション用プ
ロセッサの内部状態を設定するための条件として有効に
用いられ、任意のユーザプログラム部位のエミュレーシ
ョンを可能にし得る。 (3)上記(1)及び(2)により、ターゲットシステ
ム9に対してエミュレーションを行って得られるような
実状態に即したエミュレーションを所望の地点より行う
ことができ、エミュレーションの信頼性を向上させるこ
とができる。
【0022】以上、本発明者によってなされた発明を実
施例に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
施例に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
【0023】例えば、上記実施例ではエミュレーション
用プロセッサを1チップ型のシングルチップマイクロコ
ンピュータに対応するものとして説明したが、リードオ
ンリメモリなどの周辺回路を含まないデータプロセッサ
に対応されるものであってもよい。また、ターゲットシ
ステムはサーボモータを用いた応用機器であってもよ
い。また、エミュレーション用プロセッサは、シングル
ボードコンピュータに対応するものであることを妨げな
い。
用プロセッサを1チップ型のシングルチップマイクロコ
ンピュータに対応するものとして説明したが、リードオ
ンリメモリなどの周辺回路を含まないデータプロセッサ
に対応されるものであってもよい。また、ターゲットシ
ステムはサーボモータを用いた応用機器であってもよ
い。また、エミュレーション用プロセッサは、シングル
ボードコンピュータに対応するものであることを妨げな
い。
【0024】以上の説明では、主として本発明者によっ
てなされた発明をその背景となった利用分野であるイン
サーキットエミュレータなどに適用した場合について説
明したが、本発明はそれらに限定されるものではなく、
簡易型のシステム評価ツールなどにも適用する事ができ
る。本発明は、少なくともターゲットシステムを代行制
御しながらシステムデバッグもしくはソフトウェアデバ
ッグを行う条件のものに適用することができる。
てなされた発明をその背景となった利用分野であるイン
サーキットエミュレータなどに適用した場合について説
明したが、本発明はそれらに限定されるものではなく、
簡易型のシステム評価ツールなどにも適用する事ができ
る。本発明は、少なくともターゲットシステムを代行制
御しながらシステムデバッグもしくはソフトウェアデバ
ッグを行う条件のものに適用することができる。
【0025】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。すなわち、本発明のエミュレータは、タ
ーゲットシステムの代行制御途上において、エミュレー
ション用インタフェースを通じてトレースメモリ部の格
納領域へ送られるターゲットプロセッサ内のフラグレジ
スタ及びスタックポインタの保有情報を用いることによ
り、任意のユーザプログラム部位のエミュレーションを
可能にするものである。また、本発明のエミュレータ
は、ターゲットシステムの代行制御途上において、シン
グルチップマイクロコンピュータ部分がアクセスするア
クセスアドレスと、トレースメモリ部の領域に保持され
たスタック領域のアドレス範囲との比較の結果、トレー
スメモリ部の領域に格納されたアドレスを用いることに
より、任意のユーザプログラム部位のエミュレーション
を可能にするものである。このように、本発明は、ター
ゲットシステムに対してエミュレーションを行って得ら
れるような実状態に即したエミュレーションを所望の地
点より行うことができ、エミュレーションの信頼性を向
上させるものである。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。すなわち、本発明のエミュレータは、タ
ーゲットシステムの代行制御途上において、エミュレー
ション用インタフェースを通じてトレースメモリ部の格
納領域へ送られるターゲットプロセッサ内のフラグレジ
スタ及びスタックポインタの保有情報を用いることによ
り、任意のユーザプログラム部位のエミュレーションを
可能にするものである。また、本発明のエミュレータ
は、ターゲットシステムの代行制御途上において、シン
グルチップマイクロコンピュータ部分がアクセスするア
クセスアドレスと、トレースメモリ部の領域に保持され
たスタック領域のアドレス範囲との比較の結果、トレー
スメモリ部の領域に格納されたアドレスを用いることに
より、任意のユーザプログラム部位のエミュレーション
を可能にするものである。このように、本発明は、ター
ゲットシステムに対してエミュレーションを行って得ら
れるような実状態に即したエミュレーションを所望の地
点より行うことができ、エミュレーションの信頼性を向
上させるものである。
【図1】本実施例に係るエミュレータの要部を示すブロ
ック図である。
ック図である。
【図2】インサーキットエミュレータの一例ブロック図
である。
である。
【図3】本発明の一実施例に係るエミュレータを適用し
たシステム構成図である。
たシステム構成図である。
【図4】エミュレーション用プロセッサの一例ブロック
図である。
図である。
【図5】セントラルプロセッシングユニットの一例ブロ
ック図である。
ック図である。
【図6】本発明の別の一実施例に係るエミュレータの要
部を示すブロック図である。
部を示すブロック図である。
1 マスタマイクロコンピュータ 2 エミュレーション用プロセッサ 3 マスタバス 4 スレーブバス 5 ブレーク制御部 6 トレースメモリ部 7 検知回路 8 マルチプレクサ 9 ターゲットシステム 26 シングルチップマイクロコンピュータ 29 セントラルプロセッシングユニット 32 専用レジスタ及び汎用レジスタ 32A スタックポインタ 35 フラグレジスタ 61 領域 62 格納領域
Claims (2)
- 【請求項1】 エミュレーション用プロセッサを介して
ターゲットシステムを代行制御し、代行制御途上でター
ゲットシステムとの間でやりとりされる情報をトレース
メモリ部に格納してシステムデバッグを行うためのエミ
ュレータであって、上記エミュレーション用プロセッサ
は、情報の退避先を指すスタックポインタの保有情報と
演算処理による内部状態を示すフラグレジスタの保有情
報とを、上記代行制御に同期して外部に出力するエミュ
レーション用インターフェース手段を備え、上記トレー
スメモリ部は、エミュレーション用インターフェース手
段から出力される上記スタックポインタ及びフラグレジ
スタの保有情報を格納する領域を備えて成るものである
ことを特徴とするエミュレータ。 - 【請求項2】 エミュレーション用プロセッサを介して
ターゲットシステムを代行制御し、代行制御途上でター
ゲットシステムとの間でやりとりされる情報をトレース
メモリ部に格納してシステムデバッグを行うためのエミ
ュレータにおいて、ターゲットシステムに採用されるス
タック領域のアドレス範囲を保持し、上記代行制御途上
において、エミュレーション用プロセッサから出力され
るアクセスアドレスと上記保持したアドレス範囲とを比
較し、その比較結果の一致に応じてそのアクセスアドレ
スを情報の退避に利用されたスタック領域のアドレスと
してトレースメモリ部に出力する検知回路を設けて成る
ものであることを特徴とするエミュレータ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5287578A JPH07121396A (ja) | 1993-10-22 | 1993-10-22 | エミュレータ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5287578A JPH07121396A (ja) | 1993-10-22 | 1993-10-22 | エミュレータ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07121396A true JPH07121396A (ja) | 1995-05-12 |
Family
ID=17719137
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5287578A Withdrawn JPH07121396A (ja) | 1993-10-22 | 1993-10-22 | エミュレータ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07121396A (ja) |
-
1993
- 1993-10-22 JP JP5287578A patent/JPH07121396A/ja not_active Withdrawn
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5594890A (en) | Emulation system for emulating CPU core, CPU core with provision for emulation and ASIC having the CPU core | |
| KR0168656B1 (ko) | 데이터 처리 시스템 | |
| US5488688A (en) | Data processor with real-time diagnostic capability | |
| KR970011212B1 (ko) | 데이타 프로세서 | |
| JPH011039A (ja) | インサーキット・エミュレータ | |
| JPS63111545A (ja) | デバツグ用マイクロプロセツサ | |
| JP2655615B2 (ja) | 情報処理装置 | |
| JPH07219809A (ja) | データ処理装置およびデータ処理方法 | |
| JP2513417B2 (ja) | 情報処理装置 | |
| EP0638864B1 (en) | Development support system for microcomputer with internal cache | |
| US5497456A (en) | Apparatus for transferring information between an interrupt producer and an interrupt service environment | |
| JP3380827B2 (ja) | エミュレータ装置 | |
| JPH08171504A (ja) | エミュレ−ション装置 | |
| JPH0727472B2 (ja) | デバッグ環境を備えた集積回路 | |
| JPH08272770A (ja) | マイクロコントローラディベロップメントシステム | |
| JPS62197831A (ja) | デ−タ処理装置 | |
| JPH0550016B2 (ja) | ||
| JP2808757B2 (ja) | デバッグ用マイクロプロセッサ | |
| JPH0682323B2 (ja) | デバッグ用マイクロプロセッサ | |
| JPH0435779B2 (ja) | ||
| JPH04314139A (ja) | デバッグ装置 | |
| JP2654105B2 (ja) | マイクロプロセッサ | |
| JPH04160650A (ja) | マイクロプロセッサ | |
| JPH04123235A (ja) | マイクロプログラムのデバッグ方式及び方法 | |
| JPS63289653A (ja) | インサ−キツトエミユレ−タ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20001226 |