(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサによるプログラムの実行履歴に対するトレース機能を有し、マイクロプロセッサを実装した状態でプログラムのデバッグを行うエミュレータ装置であって、
分岐トレースの対象外とする分岐命令の種類を選択指定する指定手段と、
前記マイクロプロセッサの実行する命令コードの示す分岐命令が、前記選択指定した種類の分岐命令と一致するか否かを判定する判定手段と、
前記判定手段により、前記命令コードの示す分岐命令と前記選択指定した分岐命令とが一致したと判定された場合、該選択指定した分岐命令についての分岐元アドレスと分岐先アドレスのトレースメモリへの格納を禁止する格納禁止手段と、
前記マイクロプロセッサがプログラムを実行する際に出力するプログラムアドレスと、分岐トレースの対象外とする分岐命令を置いた特定のプログラムアドレスとが一致するか否かを判定する判定手段と、
前記判定手段によって前記特定のプログラムアドレスと一致すると判定された場合、前記特定のプログラムアドレスに置いた分岐命令のトレースの有効を選択する選択手段と、を備え、
前記選択手段が前記特定のプログラムアドレスに置いた分岐命令のトレースを有効とした場合、該分岐命令の分岐元アドレスと分岐先アドレスがトレースメモリに格納されることを特徴するエミュレータ装置。
【請求項２】
前記分岐命令のうち条件分岐命令を分岐トレースの対象外として選択指定する指定手段と、
既に実行された条件分岐命令の分岐元アドレスと、現在の条件分岐命令の分岐元アドレスとを比較する比較手段と、
前記比較の結果、前記分岐元アドレスが一致した場合、前記条件分岐命令の実行回数の制限をもとに、前記分岐トレースの対象外とした条件分岐命令についての分岐元アドレスと分岐先アドレスのトレースメモリへの格納を禁止する格納禁止手段と、
をさらに備えた請求項１記載のエミュレータ装置。
【請求項３】
前記分岐トレースの対象外とした条件分岐命令について１回目のループ実行に限り、該条件分岐命令の分岐元アドレスと分岐先アドレスをトレースメモリに書き込み、該条件分岐命令と同じ条件分岐命令が再度、実行された場合には、該条件分岐命令の分岐元アドレスと分岐先アドレスのトレースメモリへの格納を禁止することを特徴とする請求項２記載のエミュレータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はエミュレータ装置に係り、特に、分岐トレース機能を有するオンチップ・エミュレータ等のエミュレータ装置に関するものである。
【背景技術】
【０００２】
オンチップ・エミュレータ(On-chip emulator)は、基板上にマイクロプロセッサ(MPU)を実装した状態（on-chip）でプログラムのデバッグを行うための装置として使用される。オンチップ・エミュレータの機能のうちトレース機能は、プログラムのどのアドレス（番地）をどのような順序で実行したかという実行履歴をトレースメモリに残すことができ、開発中のプログラムのデバッグを行う上で有効な機能である。
【０００３】
従来のオンチップ・エミュレータでは、トレース機能において、トレースメモリに格納するトレースデータ容量を大幅に圧縮する方法として、分岐トレース手法を用いていた。この分岐トレース手法は、分岐命令、又は割り込み以外のプログラムが実行されると、実行アドレスが「１」ずつ増加することを利用して、分岐命令が実行された分岐元アドレスと、その分岐先である分岐先アドレスのみをトレースメモリに格納することによって、実行履歴を再現する手法である。
【０００４】
図４は、従来のエミュレータ装置の構成を示すブロック図である。図４に示すエミュレータ装置２００において、ＣＰＵ（中央処理装置）１００は、実行すべき命令が格納されたプログラムメモリ１６０に対して、プログラムをフェッチ、デコード、または実行するアドレス３０１を出力する。そして、ＣＰＵ１００は、プログラムメモリ１６０から出力される、アドレス３０１に対応した命令コード３０６を実行する。この命令コード３０６が分岐命令ではない場合、アドレス３０１は「１」ずつ増加する。
【０００５】
一方、命令コード３０６が分岐命令であれば、ＣＰＵ１００は、その分岐命令がデコードされるタイミングに分岐タイミング信号３０３を出力する。また、ＣＰＵ１００は、その分岐命令が実行されるタイミングに分岐命令実行タイミング信号３０４を出力する。トレースメモリ書き込み制御回路１４０は、トレースメモリのアドレス生成回路（カウンタ）と書き込み信号生成回路からなる。トレースメモリ書き込み制御回路１４０に入力された分岐命令をデコードしたときの分岐タイミング信号３０３、及び分岐命令の実行したときの分岐命令実行タイミング信号３０４がアクティブになった場合のみ、トレースメモリのアドレス生成回路（カウンタ）をカウントアップし、トレースメモリへの書き込み信号を生成して、トレースメモリ１５０にトレースメモリアドレス、及び書き込み信号３０７を出力する。
【０００６】
また、トレースメモリ書き込み制御回路１４０は、分岐タイミング信号３０３、または分岐命令実行タイミング信号３０４がアクティブになった場合のみ、トレースデータ生成回路１３０に対して分岐命令トレースデータ生成信号３０５を出力する。この分岐命令トレースデータ生成信号３０５を受けたトレースデータ生成回路１３０はトレースデータ３０２を生成し、生成されたトレースデータ３０２は、順次、トレースメモリ１５０に書き込まれる。その結果、トレースメモリ１５０には、実行された分岐命令の分岐元アドレスと分岐先アドレスが格納される。
【０００７】
オンチップ・エミュレータにおけるトレースメモリは、対象チップのチップサイズや価格（原価）の制約を受けるため、そのメモリ容量を大きくすることができない。特許文献１に記載の装置は、プログラムのデバッグ作業に不要なトレース情報をトレースメモリに格納せず、デバッグに必要なトレース情報のみをトレースメモリに格納している。具体的には、実行した命令が分岐命令の場合、その分岐命令と、その命令の前後の所定ステップの命令のみをトレースメモリに格納することで、デバッグ装置におけるメモリ容量を小さくし、コスト低下を図るとともに、デバッグの作業効率を向上させている。
【０００８】
【特許文献１】特開平６−１８７１９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記従来のオンチップ・エミュレータやデバッグ装置は、分岐命令の種類にかかわらず、トレースデータとして、分岐命令の分岐元アドレスと分岐先アドレスをトレースメモリに格納している。そのため、従来のオンチップ・エミュレータ等で、メモリ容量の小さいトレースメモリに対して、局所的なアドレスをループする条件分岐命令等が含まれるプログラムを実行した場合、トレースの結果として、この条件分岐命令の分岐元アドレスと分岐先アドレスが主にトレースされる。その結果、プログラムデバッグとして使用するトレース情報がかなり不足する、という問題があった。
【００１０】
本発明は、上述した課題を解決するために提案されたものであり、プログラムデバッグに不要なトレース情報を排除して、限られたトレースメモリのメモリ領域をプログラムデバッグに効率的に使用できるエミュレータ装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１記載の発明は、マイクロプロセッサによるプログラムの実行履歴に対するトレース機能を有し、マイクロプロセッサを実装した状態でプログラムのデバッグを行うエミュレータ装置であって、
分岐トレースの対象外とする分岐命令の種類を選択指定する指定手段と、
前記マイクロプロセッサの実行する命令コードの示す分岐命令が、前記選択指定した種類の分岐命令と一致するか否かを判定する判定手段と、
前記判定手段により、前記命令コードの示す分岐命令と前記選択指定した分岐命令とが一致したと判定された場合、該選択指定した分岐命令についての分岐元アドレスと分岐先アドレスのトレースメモリへの格納を禁止する格納禁止手段と、
前記マイクロプロセッサがプログラムを実行する際に出力するプログラムアドレスと、分岐トレースの対象外とする分岐命令を置いた特定のプログラムアドレスとが一致するか否かを判定する判定手段と、
前記判定手段によって前記特定のプログラムアドレスと一致すると判定された場合、前記特定のプログラムアドレスに置いた分岐命令のトレースの有効を選択する選択手段と、を備え、
前記選択手段が前記特定のプログラムアドレスに置いた分岐命令のトレースを有効とした場合、該分岐命令の分岐元アドレスと分岐先アドレスがトレースメモリに格納されることを特徴する。
【００１２】
この発明によれば、トレース情報として必要のない分岐命令をトレースメモリから排除して、トレース情報においてプログラムデバッグに意味を持つデータの密度を高め、結果として、トレースメモリのメモリ領域を効率的に使用可能となる。
【００１３】
また、請求項２に記載したように、本発明は、前記分岐命令のうち条件分岐命令を分岐トレースの対象外として選択指定する指定手段と、既に実行された条件分岐命令の分岐元アドレスと、現在の条件分岐命令の分岐元アドレスとを比較する比較手段と、前記比較の結果、前記分岐元アドレスが一致した場合、前記条件分岐命令の実行回数の制限をもとに、前記分岐トレースの対象外とした条件分岐命令についての分岐元アドレスと分岐先アドレスのトレースメモリへの格納を禁止する格納禁止手段と、
をさらに備えた構成とすることができる。
【００１４】
これにより、トレースメモリの領域を効率的に使用でき、加えて、条件分岐命令のトレース情報を最小限のかたちで得ることができる。
【００１５】
この場合、請求項３に記載したように、前記分岐トレースの対象外とした条件分岐命令について１回目のループ実行に限り、該条件分岐命令の分岐元アドレスと分岐先アドレスをトレースメモリに書き込み、該条件分岐命令と同じ条件分岐命令が再度、実行された場合には、該条件分岐命令の分岐元アドレスと分岐先アドレスのトレースメモリへの格納を禁止する構成とすることができる。
【００１６】
これにより、１回ループの実行に限り、トレース情報として条件分岐命令のアドレスをトレースメモリに書き込むため、デバッグに要する最小限のトレース情報を得ることができる。
【発明の効果】
【００２０】
本発明によれば、プログラムデバッグにおいてトレースメモリのメモリ領域を効率的に使用して、トレース情報不足を解決できる、という効果を奏する。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施形態に係るエミュレータ装置の構成を示すブロック図である。
【図２】本発明の第２の実施形態に係るエミュレータ装置の構成を示すブロック図である。
【図３】本発明の第３の実施形態に係るエミュレータ装置の構成を示すブロック図である。
【図４】従来のエミュレータ装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、本発明の好ましい実施の形態について図面を参照しながら詳細に説明する。
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係るエミュレータ装置（オンチップ・エミュレータ）の構成を示すブロック図である。図１に示すエミュレータ装置１において、ＣＰＵ１０は、エミュレータ装置１全体の制御を司る中央処理装置である。ＣＰＵ１０は、例えば、実行すべき命令（プログラム）が格納されたプログラムメモリ６０をアクセスして、そのプログラムをフェッチ、デコード、または実行する。具体的には、ＣＰＵ１０がアドレス２０１を出力すると、そのアドレス２０１に対応した命令コード２０６がプログラムメモリ６０から出力される。そして、ＣＰＵ１０は、その命令コード２０６を実行する。
【００２３】
第１の実施形態に係るエミュレータ装置１は、マイクロプロセッサ等の命令コードを解析する命令コード解析回路７０を有し、トレースさせる分岐命令の種類を選択指定（設定）できるようにするため、この命令コード解析回路７０には、プログラムを実行する前に、選択指定の対象とする分岐命令の種類をあらかじめ設定しておく。
【００２４】
なお、マイクロプロセッサ等における分岐命令の種類としては、条件の有無にかかわらず常に分岐する無条件分岐命令、ある条件が成立したときのみ分岐する条件分岐命令、直接分岐命令以外の分岐命令である間接分岐命令、そして、割り込みに大別される。
【００２５】
エミュレータ装置１において、ＣＰＵ１０がプログラムメモリ６０をアクセスして命令コード２０６を読み込み、プログラムの実行を開始すると、命令コード解析回路７０は、その命令コード２０６を解析し、その命令コードの示す分岐命令が、あらかじめ選択指定した種類の分岐命令（ここでは、トレース情報として不要な分岐命令とする。）と一致するか否かを判定する。読み込んだ命令コード２０６の示す分岐命令が、あらかじめ設定された分岐命令と一致していれば、命令コード解析回路７０は、命令コード一致信号２０８をアクティブにする。この命令コード一致信号２０８は、トレースメモリ書き込み制御回路４０に入力される。
【００２６】
読み込んだ命令コード２０６が分岐命令ではない場合は、アドレス２０１は「１」ずつ増加するが、その命令コード２０６が分岐命令を示していれば、ＣＰＵ１０は、その分岐命令がデコードされるタイミングに分岐タイミング信号２０３を出力し、その分岐命令が実行されるタイミングに分岐命令実行タイミング信号２０４を出力する。トレースメモリ書き込み制御回路４０は、トレースメモリのアドレス生成回路（カウンタ）と書き込み信号生成回路からなる。トレースメモリ書き込み制御回路４０に入力された分岐命令をデコードしたときの分岐タイミング信号２０３、及び分岐命令の実行したときの分岐命令実行タイミング信号２０４がアクティブになった場合のみ、トレースメモリのアドレス生成回路（カウンタ）をカウントアップし、トレースメモリへの書き込み信号を生成して、トレースメモリ５０にトレースメモリアドレス、及び書き込み制御信号２０７を出力する。
【００２７】
また、トレースメモリ書き込み制御回路４０は、例えば、分岐タイミング信号２０３または分岐命令実行タイミング信号２０４がアクティブになり、命令コード一致信号２０８がアクティブとなった場合、トレースデータ生成回路３０に対しては、分岐命令トレースデータ生成信号２０５を出力しない。このとき、トレースメモリ書き込み制御回路４０は、トレースメモリ５０に対しても書き込み制御信号２０７を出力しない。この場合、命令コード２０６の示す分岐命令があらかじめ設定した種類の分岐命令であることを意味しており、トレースデータ生成回路３０では、トレースデータ２０２として、あらかじめ選択指定した分岐命令についての分岐元アドレスと分岐先アドレスが生成されない。その結果、トレースメモリ５０にも、これらの分岐元アドレスと分岐先アドレスは書き込まれない。
【００２８】
一方、分岐タイミング信号２０３または分岐命令実行タイミング信号２０４がアクティブになっても、命令コード一致信号２０８がアクティブとなっていない場合には、命令コード２０６の示す分岐命令があらかじめ設定した種類の分岐命令ではないとして、トレースメモリ書き込み制御回路４０は、トレースデータ生成回路３０に対して分岐命令トレースデータ生成信号２０５を出力する。その結果、トレースデータ生成回路３０は、トレースデータ２０２として、あらかじめ設定した種類の分岐命令以外の分岐命令についての分岐元アドレスと分岐先アドレスを生成する。そして、トレースメモリ５０には、これら生成された分岐元アドレスと分岐先アドレスが書き込まれる。
【００２９】
このように、第１の実施形態に係るエミュレータ装置では、分岐トレースの対象外とする分岐命令の種類をあらかじめ選択指定できるように構成することで、トレース情報として必要のない分岐命令を排除して、その分岐命令のトレースデータがトレースメモリに格納されないようにすることができる。その結果、トレース情報においてプログラムデバッグに意味を持つデータの密度を高めることができ、トレースメモリのメモリ領域を効率的に使用可能となる。
【００３０】
＜第２の実施形態＞
図２は、本発明の第２の実施形態に係るエミュレータ装置（オンチップ・エミュレータ）の構成を示すブロック図である。なお、図２に示すエミュレータ装置２において、図１に示す第１の実施形態に係るエミュレータ装置と同一の構成要素には同一の符号を付して、ここではそれらの説明を適宜、省略する。
【００３１】
上述した第１の実施形態に係るエミュレータ装置では、分岐トレースの対象外として選択指定された分岐命令はすべて、トレース対象として扱わない制御をしている。しかし、デバッグ作業の過程において、それらの分岐命令のうち特定の分岐命令については、トレース情報として必要となる場合がある。そこで、第２の実施形態に係るエミュレータ装置は、トレース対象外とした条件分岐命令については、トレース情報格納の回数に制限を設ける。具体的には、１回ループの実行に限りトレース情報としてトレースメモリに書き込むよう制御する。以下、そのための具体的な装置構成及び制御について説明する。
【００３２】
図２に示すように、第２の実施形態に係るエミュレータ装置２には、命令コード解析回路７０からの信号等を入力して、条件分岐命令の分岐元アドレス及び分岐先アドレスを比較するための分岐アドレス比較回路８０が配されている。命令コード解析回路７０には、例えば、プログラムの実行前に、対象とする条件分岐命令をあらかじめ設定しておく。ＣＰＵ１０によりプログラムの実行が開始されると、命令コード解析回路７０は命令コード２０６を解析して、この命令コード２０６の示す条件分岐命令が、トレース対象とする条件分岐命令と一致するか否かを判定する。そして、命令コード２０６の示す条件分岐命令が、対象とする条件分岐命令であると判定した場合、命令コード解析回路７０は、命令コード一致信号２０８をアクティブにする。
【００３３】
第２の実施形態に係るエミュレータ装置２では、プログラムによって条件分岐命令が実行された場合、例えば、実行されたのが１回目の条件分岐命令であれば、その条件分岐命令の分岐元アドレスと分岐先アドレスをトレースメモリ５０に書き込むように制御する。その後、再度、プログラムによって条件分岐命令が実行されると、命令コード解析回路７０は、命令コード一致信号２０８をアクティブにする。この信号を受けた分岐アドレス比較回路８０は、既にトレースメモリ５０に格納された分岐元アドレス（ここでは、１回目の条件分岐命令の分岐元アドレスであり、ｆ−ａｄｒとする。）と、現在、実行されている条件分岐命令の分岐元アドレス（ｐ−ａｄｒとする。）２０１とを比較する。そして、これらのアドレスｆ−ａｄｒとｐ−ａｄｒとが一致すれば、分岐アドレス比較回路８０は、再度、同じ条件分岐命令が実行されたとしてアドレス比較信号２０９をアクティブにし、その信号２０９をトレースメモリ書き込み制御回路４０へ入力する。
【００３４】
一方、ＣＰＵ１０は、その条件分岐命令について、条件分岐の条件成立を判定し、分岐条件が成立する場合、条件成立信号２１０をアクティブにして、その信号２１０をトレースメモリ書き込み制御回路４０に入力する。トレースメモリ書き込み制御回路４０は、分岐タイミング信号２０３または分岐命令実行タイミング信号２０４がアクティブになり、アドレス比較信号２０９がアクティブとなり、さらに、条件分岐命令の条件成立信号２１０がアクティブとなった場合、トレースデータ生成回路３０に対して分岐命令トレースデータ生成信号２０５を出力しない。
【００３５】
このように、トレースメモリ書き込み制御回路４０からトレースデータ生成回路３０に対して、分岐命令トレースデータ生成信号２０５が出力されない場合は、トレースデータ生成回路１３０はトレースデータ２０２を生成しない。このとき、トレースメモリ書き込み制御回路４０からトレースメモリ５０に対して書き込み制御信号２０７も出力されない。結果として、第２の実施形態に係るエミュレータ装置２は、同じ条件分岐命令は同じループを実行すると判断し、トレース対象外として選択指定した条件分岐命令については、１回目のループ実行に限り、その条件分岐命令の分岐元アドレスと分岐先アドレスをトレースメモリ５０に書き込む。そして、１回目のループ実行と同じ条件分岐命令が再度、実行された場合には、その条件分岐命令の分岐元アドレスと分岐先アドレスをトレースメモリ５０に格納しないよう制御している。
【００３６】
よって、第２の実施形態に係るエミュレータ装置では、同じ条件で分岐する場合について、それらの条件分岐命令すべての分岐元アドレスと分岐先アドレスを、トレース情報としてトレースメモリに書き込まず、トレース対象外に設置した条件分岐命令については、１回ループの実行に限りトレース情報として、分岐元アドレスと分岐先アドレスをトレースメモリに書き込むことで、トレースメモリの領域を効率的に使用できる。さらには、デバッグに必要な条件分岐命令のトレース情報を最小限のかたちで得ることができる。
【００３７】
＜第３の実施形態＞
図３は、本発明の第３の実施形態に係るエミュレータ装置（オンチップ・エミュレータ）の構成を示すブロック図である。なお、図３に示すエミュレータ装置３において、図１に示す第１の実施形態に係るエミュレータ装置及び図２に示す第２の実施形態に係るエミュレータ装置と同一の構成要素には同一の符号を付して、ここではそれらの説明を適宜、省略する。
【００３８】
上述したように、第１の実施形態に係るエミュレータ装置では、分岐トレースの対象外として選択指定された種類の分岐命令はすべて、トレース対象として扱わない制御をしている。また、第２の実施形態に係るエミュレータ装置では、同一の条件分岐命令をトレース対象外として選択指定し、その条件分岐命令について、回数を制限して、その分岐元アドレスと分岐先アドレスをトレースメモリに格納する制御をしている。しかし、トレース対象外に指定した分岐命令の種類に対して、プログラムデバッグにおいて必要のないトレース情報をプログラムアドレス上から指定できれば、より作業効率の良いデバッグを行える。以下、そのための具体的な構成及び制御について説明する。
【００３９】
図３に示す、第３の実施形態に係るエミュレータ装置３において、プログラムアドレス解析回路９０は、ＣＰＵ１０がプログラムを実行等する際に出力するアドレス２０１を入力し、そのプログラムアドレスを解析する機能を有する。そのため、プログラムアドレス解析回路９０には、あらかじめトレースの対象外とする分岐命令を置いたプログラムアドレスが格納されている。
【００４０】
第３の実施形態に係るエミュレータ装置３では、上述した第２の実施形態に係るエミュレータ装置と同様、ＣＰＵ１０がプログラムの実行を開始し、命令コードが分岐命令であれば、その命令がデコードされるタイミングに分岐タイミング信号２０３が出力され、その命令が実行されるタイミングに分岐命令実行タイミング信号２０４が出力される。また、分岐アドレス比較回路８０は、条件分岐命令が実行された場合、その条件分岐命令がトレース対象外とした条件分岐命令であれば、１回ループの実行に限り、その分岐元アドレスと分岐先アドレスをトレース情報としてトレースメモリに書き込むためにアドレス比較信号２０９をアクティブにする。さらに、ＣＰＵ１０は、その条件分岐命令について、条件分岐の条件成立を判定し、分岐条件が成立する場合には、条件成立信号２１０がアクティブになる。
【００４１】
一方、プログラムアドレス解析回路９０は、ＣＰＵ１０がプログラムを実行等する際に出力したプログラムアドレスが、あらかじめ格納されたトレース対象外とした分岐命令のプログラムアドレスか否かを解析する。そして、プログラムアドレス解析回路９０は、実行プログラムのプログラムアドレスが、対象外とする分岐命令のプログラムアドレスであれば、アドレス解析信号２１１をアクティブにする。
【００４２】
ここで、第３の実施形態に係るエミュレータ装置３では、分岐タイミング信号２０３または分岐命令実行タイミング信号２０４がアクティブになり、アドレス比較信号２０９がアクティブとなり、さらに、条件分岐命令の条件成立信号２１０がアクティブとなった場合であって、アドレス解析信号２１１がアクティブのときは、トレースメモリ書き込み制御回路４０がトレースデータ生成回路３０に対して分岐命令トレースデータ生成信号２０５を出力しないように設定されている。
【００４３】
そうすることで、第３の実施形態に係るエミュレータ装置において、プログラムデバッグにおいて必要のないトレース情報をプログラムアドレス上から指定し、分岐命令の種類にかかわらず、ある特定のプログラムアドレスに置いた分岐命令のトレースのみを無効にして、その分岐命令の分岐元アドレスと分岐先アドレスをトレース情報としてトレースメモリ５０へ書き込むのを禁止できる。結果として、トレースメモリの領域を効率的に使用できる。
【００４４】
これとは逆に、分岐タイミング信号２０３または分岐命令実行タイミング信号２０４がアクティブになり、アドレス比較信号２０９と条件成立信号２１０とがアクティブとなった場合でも、アドレス解析信号２１１がアクティブのときには、トレースメモリ書き込み制御回路４０がトレースデータ生成回路３０に対して分岐命令トレースデータ生成信号２０５を出力するように設定することもできる。
【００４５】
このように構成することで、第３の実施形態に係るエミュレータ装置において、トレース対象外に指定した分岐命令の種類に対して、ある特定のプログラムアドレスに置いた分岐命令のトレースのみを可能にする、すなわち、その分岐命令の分岐元アドレスと分岐先アドレスが、トレース情報としてトレースメモリ５０へ書き込まれるようにすることができる。
【符号の説明】
【００４６】
１，２，３      エミュレータ装置
１０      ＣＰＵ
３０    トレースデータ生成回路
４０    トレースメモリ書き込み制御回路
５０    トレースメモリ
６０      プログラムメモリ
７０      命令コード解析回路
８０    分岐アドレス比較回路
９０    プログラムアドレス解析回路
２０１    アドレス
２０２    トレースデータ
２０３      分岐タイミング信号
２０４      分岐命令実行タイミング信号
２０５    分岐命令トレースデータ生成信号
２０６    命令コード
２０７    書き込み制御信号
２０８      命令コード一致信号
２０９      アドレス比較信号
２１０      条件成立信号
２１１      アドレス解析信号
【図１】
0005722086.tif 000002
【図２】
0005722086.tif 000003
【図３】
0005722086.tif 000004
【図４】
0005722086.tif 000005