(57)【要約】【課題】  デバッグ時に命令のステップ実行の応答速度が低下しないインサーキットエミュレータ装置を提供する。【解決手段】  インサーキットエミュレータ装置１は、ターゲットＣＰＵ２１のデバッグ中の命令の実行履歴およびデータアクセスの履歴を記録するトレースメモリ装置４を有している。ターゲットＣＰＵ２１での命令の実行に伴ってメインメモリ２２に新たに書き込まれたデータを、トレースメモリ装置４に記録された命令実行履歴の情報に基づいて、トレースメモリ装置４に記録されたデータアクセス履歴の情報から取得する。【選択図】  図１
2005182573.tif 000002
【特許請求の範囲】
【請求項１】
デバッグ対象のプログラムを実行するターゲットＣＰＵと、
前記ターゲットＣＰＵによりデータの書き込みおよび読み出しが制御されるメインメモリと、
前記ターゲットＣＰＵの命令実行履歴およびデータアクセス履歴を記録するトレースメモリ装置とを具備し、
前記ターゲットＣＰＵでの命令の実行に伴って前記メインメモリに新たに書き込まれたデータを、前記トレースメモリ装置に記録された前記命令実行履歴の情報に基づいて、前記トレースメモリ装置に記録された前記データアクセス履歴の情報から取得して出力することを特徴とするインサーキットエミュレータ装置。
【請求項２】
デバッグ対象のプログラムを実行するターゲットＣＰＵと、
前記ターゲットＣＰＵによりデータの書き込みおよび読み出しが制御されるメインメモリと、
前記ターゲットＣＰＵの命令実行履歴およびデータアクセス履歴を記録するトレースメモリ装置とを具備し、
前記ターゲットＣＰＵでの命令の実行に伴って前記メインメモリに新たな書き込みの行われたアドレスを前記トレースメモリ装置に記録された前記命令実行履歴の情報に基づいて特定し、前記特定したアドレスのデータを前記メインメモリから読み出して出力することを特徴とするインサーキットエミュレータ装置。
【請求項３】
デバッグ対象のプログラムを実行するターゲットＣＰＵと、
前記ターゲットＣＰＵによりデータの書き込みおよび読み出しが制御されるメインメモリと、
前記ターゲットＣＰＵから前記メインメモリへの書き込み履歴を記録するログメモリ装置とを具備し、
前記ターゲットＣＰＵでの命令の実行に伴って前記メインメモリに新たに書き込まれたデータを、前記ログメモリ装置に記録された前記書き込み履歴の情報から取得して出力することを特徴とするインサーキットエミュレータ装置。
【請求項４】
デバッグ対象のプログラムを実行するターゲットＣＰＵと、
前記ターゲットＣＰＵによりデータの書き込みおよび読み出しが制御されるメインメモリと、
前記ターゲットＣＰＵから前記メインメモリへの書き込み履歴を記録するログメモリ装置とを具備し、
前記ターゲットＣＰＵでの命令の実行に伴って前記メインメモリに新たな書き込みの行われたアドレスを前記ログメモリ装置に記録された前記書き込み履歴の情報に基づいて特定し、前記特定したアドレスのデータを前記メインメモリから読み出して出力することを特徴とするインサーキットエミュレータ装置。
【請求項５】
前記ターゲットＣＰＵでの前記命令の実行が、前記プログラムを記述するコードの１ステップずつ行われることを特徴とする請求項１乃至４のいずれか１項に記載のインサーキットエミュレータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータシステムの開発におけるデバッグに使用されるインサーキットエミュレータ装置に関する。
【背景技術】
【０００２】
マイクロコンピュータシステムの開発に際しては、ハードウェアあるいはソフトウェアのデバッグのためにインサーキットエミュレータ装置が使用される。
【０００３】
インサーキットエミュレータ装置は、システムの開発対象のマイクロコンピュータに搭載されるＣＰＵと同一機能を有する評価用ＣＰＵと、エミュレーションの実行を制御する制御用ＣＰＵとを有し、外部のホストコンピュータから制御用ＣＰＵへ入力されるデバッグ用コマンドにより、その動作が制御される。
【０００４】
評価用ＣＰＵには、ＣＰＵ本体の機能を構成するターゲットＣＰＵとメインメモリが含まれている。メインメモリには、開発対象のシステムを動かすためのプログラムや固定的なデータが格納されるとともに、プログラム実行途中の処理結果も保存される。
【０００５】
そこで、デバッグの途中で、プログラムの実行状況の確認が必要なときは、ホストコンピュータから制御用ＣＰＵへブレークコマンドを送信してデバッグ中のプログラムの実行を一時停止した後、メモリリードコマンドによりメインメモリを読み出すことが行われている（例えば、特許文献１参照。）。
【０００６】
これにより、プログラムが実行された前後のデータが読み出され、そのデータを解析することにより、プログラムが正しく実行されているかどうかを知ることができる。
【特許文献１】特開平１０―２１１１８号公報  （第４ページ、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述のメモリリードによるデバッグには、メモリから読み出されるデータの量が多く、その処理に時間がかかるという問題があった。これは、プログラム実行前後で変化のなかったデータなど、メモリから敢えて取り直す必要のないデータを取得していることによる。
【０００８】
特に、詳細なデバッグを行うために、プログラムコードを１行ずつ実行する１命令ステップ実行コマンドを用いる場合、１命令実行ごとにメモリリードコマンドによるメインメモリの読み出しが必要となり、命令のステップ実行の応答速度が低下するという問題が発生していた。
【０００９】
そこで、本発明の目的は、デバッグ時に命令のステップ実行の応答速度が低下しないインサーキットエミュレータ装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一態様によれば、デバッグ対象のプログラムを実行するターゲットＣＰＵと、前記ターゲットＣＰＵによりデータの書き込みおよび読み出しが制御されるメインメモリと、前記ターゲットＣＰＵの命令実行履歴およびデータアクセス履歴を記録するトレースメモリ装置とを具備し、前記ターゲットＣＰＵでの命令の実行に伴って前記メインメモリに新たに書き込まれたデータを、前記トレースメモリ装置に記録された前記命令実行履歴の情報に基づいて、前記トレースメモリ装置に記録された前記データアクセス履歴の情報から取得して出力することを特徴とするインサーキットエミュレータ装置が提供される。
【００１１】
また、本発明の別の一態様によれば、デバッグ対象のプログラムを実行するターゲットＣＰＵと、前記ターゲットＣＰＵによりデータの書き込みおよび読み出しが制御されるメインメモリと、前記ターゲットＣＰＵの命令実行履歴およびデータアクセス履歴を記録するトレースメモリ装置とを具備し、前記ターゲットＣＰＵでの命令の実行に伴って前記メインメモリに新たな書き込みの行われたアドレスを前記トレースメモリ装置に記録された前記命令実行履歴の情報に基づいて特定し、前記特定したアドレスのデータを前記メインメモリから読み出して出力することを特徴とするインサーキットエミュレータ装置が提供される。
【００１２】
また、本発明のさらに別の一態様によれば、デバッグ対象のプログラムを実行するターゲットＣＰＵと、前記ターゲットＣＰＵによりデータの書き込みおよび読み出しが制御されるメインメモリと、前記ターゲットＣＰＵから前記メインメモリへの書き込み履歴を記録するログメモリ装置とを具備し、前記ターゲットＣＰＵでの命令の実行に伴って前記メインメモリに新たに書き込まれたデータを、前記ログメモリ装置に記録された前記書き込み履歴の情報から取得して出力することを特徴とするインサーキットエミュレータ装置が提供される。
【００１３】
また、本発明のさらに別の一態様によれば、デバッグ対象のプログラムを実行するターゲットＣＰＵと、前記ターゲットＣＰＵによりデータの書き込みおよび読み出しが制御されるメインメモリと、前記ターゲットＣＰＵから前記メインメモリへの書き込み履歴を記録するログメモリ装置とを具備し、前記ターゲットＣＰＵでの命令の実行に伴って前記メインメモリに新たな書き込みの行われたアドレスを前記ログメモリ装置に記録された前記書き込み履歴の情報に基づいて特定し、前記特定したアドレスのデータを前記メインメモリから読み出して出力することを特徴とするインサーキットエミュレータ装置が提供される。
【発明の効果】
【００１４】
本発明によれば、１命令実行ごとにメインメモリの読み出しを行わないので、デバッグ時のステップ実行命令の応答速度の低下を防止するができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施例を図面を参照して説明する。
【実施例１】
【００１６】
図１は、本発明の第１の実施例に係るインサーキットエミュレータ装置の構成を示すブロック図である。
【００１７】
本実施例のインサーキットエミュレータ装置１は、システムの開発対象のマイクロコンピュータと同一機能を有する評価用ＣＰＵ２と、エミュレーションの実行を制御する制御用ＣＰＵ３と、デバッグ中の命令の実行履歴およびデータアクセスの履歴を記録するトレースメモリ装置４とを有している。
【００１８】
このような本実施例においては、デバッグの途中でメインメモリに新たに書き込まれたデータ値の取得は、トレースメモリ装置４に記録されている命令の実行履歴およびデータアクセスの履歴の情報を利用して行なわれる。
【００１９】
評価用ＣＰＵ２は、ＣＰＵ本体の機能を構成するターゲットＣＰＵ２１と、ターゲットプログラムやデータを格納するメインメモリ２２と、デバッグ時にターゲットＣＰＵ２１を制御する制御回路２３とを有している。
【００２０】
制御用ＣＰＵ３は、インサーキットエミュレータ装置１の外部に接続されるパーソナルコンピュータなどのホストコンピュータ５から送出されるデバッグ用コマンドを受けて評価用ＣＰＵ２の制御回路２３へ制御命令を出力する。また、制御用ＣＰＵ３は、ホストコンピュータ５との間で入出力データの受け渡しを行い、評価用ＣＰＵ２の制御回路２３との間でデバッグに関するデータの受け渡しを行う。
【００２１】
プログラム実行途中でプログラムの実行を中断するときは、この制御用ＣＰＵ３から評価用ＣＰＵ２の制御回路２３へブレーク命令を出し、制御回路２３がターゲットＣＰＵ２１へブレーク信号を送ることによりターゲットＣＰＵ２１の動作を停止させる。
【００２２】
トレースメモリ装置４には、デバッグのためにプログラム実行途中でプログラムの実行を中断するとき、その直前までのターゲットＣＰＵ２１における命令の実行履歴およびデータのアクセス履歴が記録されている。すなわち、ターゲットＣＰＵ２１から、命令の実行サイクルのステータスを示すステータス信号と、アドレス信号およびデータの出力を受けてこれらを記録している。なお、命令のステータスとしては、コードのフェッチ（Ｆ）、コードの実行（Ｅ），データのリード（Ｒ）およびデータのライト（Ｗ）の４つを記録している。
【００２３】
トレースメモリ装置４において、命令の実行履歴であるステータス信号とデータのアクセス履歴であるアドレス信号とデータは１組にまとめられて、フレームという単位で記録されている。そして、このフレームには命令の実行順にフレーム番号が付けられている。
【００２４】
図２および図３にこのトレースメモリ装置４に記録されたデータの例を示す。
【００２５】
図２（ａ）は、レジスタのデータをメモリへ転送するレジスタ−メモリ間転送命令が実行されたときに、トレースメモリ装置４に記録されたデータの例である。このときライトステータスＷが記録されるのはフレーム番号４のフレームであり、このフレームのデータ欄に書かれているデータ値が、デバッグの途中でメインメモリ２２に新たに書き込まれたデータの値である。
【００２６】
図２（ｂ）は、スタックによるメモリアクセス命令が実行されたときに、トレースメモリ装置４に記録されたデータの例である。このときライトステータスＷが記録されるのはフレーム番号３と４の２つのフレームであり、この２つのフレームのデータ欄に書かれているデータ値が、デバッグの途中でメインメモリ２２に新たに書き込まれたデータの値である。
【００２７】
一方、図３は、Ｉ／Ｏ空間を示すアドレスに対してレジスタのデータを転送するレジスタ−Ｉ／Ｏ間転送命令が実行されたときに、トレースメモリ装置４に記録されたデータの例である。このときライトステータスＷは、フレーム番号３に記録されているが、書き込みアドレスがＩ／Ｏ空間の場合、トレースメモリ装置４に記録されたデータの値とメモリに書き込まれているデータの値とが一致しないことがある。
【００２８】
そこで、転送先のアドレスがＩ／Ｏ空間である場合は、デバッグの途中でメインメモリに新たに書き込まれたデータ値の取得は、ライトステータスＷが記録されているフレームのアドレス欄に書かれているアドレスのデータをメインメモリ２２から読み出すことによって行なわれる。
【００２９】
次に、図４および図５に示す動作フロー図を用いて、本実施例におけるデバッグ動作の進行の様子を説明する。
【００３０】
デバッグ動作の開始（ステップＳ１０１）後、ホストコンピュータ５から１命令ステップ実行コマンドが送出される（ステップＳ１０２）と、制御用ＣＰＵ３は制御回路２３へブレークポイント設定を命令する（ステップＳ１０３）。
【００３１】
この命令を受けて、制御回路２３は、命令の開始アドレスに＋１して命令の終了アドレスを設定する（ステップＳ１０４）。
【００３２】
その後、制御用ＣＰＵ３は、トレースメモリ装置４から先頭のフレーム番号を取得（ステップＳ１０５）し、制御回路２３へプログラム実行を命令する（ステップＳ１０６）。
【００３３】
プログラムの実行が先に設定した終了アドレスに達すると、制御回路２３はターゲットＣＰＵ２１へブレーク信号を送出する（ステップＳ１０７）。これによりプログラムの実行が停止すると、制御用ＣＰＵ３は、トレースメモリ装置４から最終フレームのフレーム番号を取得し（ステップＳ１０８）、最初のフレームのトレースデータを取得する（ステップＳ１０９）。
【００３４】
取得したトレースデータがライトステータス（Ｗ）かどうかをチェック（ステップＳ１１０）し、ライトステータスであれば（ＹＥＳ）、制御用ＣＰＵ３は、取得したトレースデータからアドレス（ライトアドレス）を取得する（ステップＳ１１１）。このとき、制御用ＣＰＵ３は取得したトレースデータの数をフレーム数としてカウントすることとし、最初のフレームでは、このフレーム数を１とし、以降、トレースデータを取得するごとにフレーム数を＋１する（ステップＳ１１２）。また、制御用ＣＰＵ３は、取得したトレースデータのフレーム番号に＋１する（ステップＳ１１３）。
【００３５】
一方、ステップＳ１１０でのチェックで取得したトレースデータがライトステータスでなければ（ＮＯ）、そのままステップＳ１１３へ進む。
【００３６】
ここで、＋１したフレーム番号が最終のフレーム番号かどうかをチェックする（ステップＳ１１４）。フレーム番号が最終フレーム番号でなければ（ＮＯ）、ステップＳ１０９に戻り、フレーム番号が最終フレーム番号であれば（ＹＥＳ）、フレーム数が０であるかどうかをチェックする（ステップＳ１１５）。ここでフレーム数が０である（ＹＥＳ）ときは、制御用ＣＰＵ２が取得したトレースデータの中にライトステータスが書かれたフレームがなかったことを意味する。すなわち、今回のプログラム実行ではメインメモリに新たに書き込まれたデータがないことを意味するので本動作は終了する（ステップＳ１２４）。
【００３７】
一方、フレーム数が０でないときは（ＮＯ）、トレースメモリ装置4に記録されているライトアドレスがメモリ空間を指定しているかどうかをチェックする（ステップＳ１１６）。
【００３８】
ライトアドレスがメモリ空間を指定しているときは（ＹＥＳ）、トレースメモリ装置４に記録されたデータが、そのままメインメモリ２２に書き込まれたデータであるので、このデータをプログラムの実行に伴ってメインメモリ２２に新たに書き込まれたデータとして取り扱うことができる。すなわち、この場合、メモリ２２を改めて読み出す必要がない。したがって、後述のステップＳ１２１へ進む。
【００３９】
一方、ライトアドレスがメモリ空間を指定していないときは（ＮＯ）、メインメモリ２２からデータを読み出す必要がある。そこで、制御用ＣＰＵ３は、このアドレスを指定して制御回路２３へメモリリードを命令する（ステップＳ１１７）。この命令を受けて、制御回路２３は指定されたアドレスのデータをメインメモリ２２から読み出し、制御用ＣＰＵ３へ送出する。すなわち、制御用ＣＰＵ３は制御回路２３を経由してメインメモリのデータを取得する（ステップＳ１１８）。
【００４０】
その後、制御用ＣＰＵ３は、フレーム数を−１して（ステップＳ１１９）、フレーム数が０になったかどうかをチェックする（ステップＳ１２０）。フレーム数が０でなかったら（ＮＯ）、ステップＳ１１６に戻り、フレーム数が０になるまで以降のステップを繰り返す。
【００４１】
フレーム数が０になると、動作はステップＳ１２１へ進む。このステップＳ１２１では、ホストコンピュータ５からログリードコマンドが送出される。
【００４２】
このログリードコマンドを受けて、制御用ＣＰＵ３は、上述の一連の動作でトレースメモリ装置4から取得したライトアドレスと、トレースメモリ装置4あるいはメインメモリ２２から取得したデータをホストコンピュータ５へ送出する（ステップＳ１２２）。
【００４３】
ホストコンピュータ５がこのライトアドレスとデータを取得して（ステップＳ１２３）、動作は終了する（ステップＳ１２４）。
【００４４】
このような本実施例のインサーキットエミュレータ装置では、トレースメモリ装置に記録された命令の実行履歴とデータのアクセス履歴を利用することにより、デバッグに必要なメモリに書き込まれたデータを容易に得ることができ、１命令ステップ実行コマンドを用いる場合でも命令のステップ実行の応答速度の低下を防止することができる。
【実施例２】
【００４５】
図６は、本発明の第２の実施例に係るインサーキットエミュレータ装置の構成を示すブロック図である。
【００４６】
本実施例のインサーキットエミュレータ装置１１は、図１に示した実施例１のインサーキットエミュレータ装置１の中のトレースメモリ装置４をログメモリ装置６に置き換えたものである。したがって、図６において、図１と同一の部分には同一の符号を付し、ここではその詳細な説明は省略する。
【００４７】
ログメモリ装置６は、プログラムの実行前にそれまでの履歴をリセットし、ターゲットＣＰＵ２１からメインメモリ２３へのライト信号発生したときのみにプログラムの履歴（ログ）を記録する。そのため、ログメモリ装置６には、ターゲットＣＰＵ２１から出力されるアドレスとデータのみが記録され、実施例１のトレースメモリ装置４では記録されていた命令の実行ステータスを表わす信号（Ｆ、Ｅ、Ｒ、Ｗ）は記録されない。
【００４８】
また、ログメモリ装置６の出力は、ログデータとして制御用ＣＰＵ３へ送出される。
【００４９】
このログメモリ装置６のメモリ容量は、ターゲットＣＰＵ２１のデータ転送命令の内、サイクル数が最大となる命令のサイクル数がその容量となっている。例えば、データ転送命令にレジスタ−メモリ間転送命令とスタックアクセス命令の２種類しかないとしたときに、前者に２バイトかかり、後者に３バイトかかる場合は、３バイトがログメモリ装置６のメモリ容量となる。
【００５０】
したがって、ログメモリ装置６は、実施例１のトレースメモリ装置４に比べて小規模のメモリで実現することができる。
【００５１】
図７に、このログメモリ装置６に記録されたデータの例を示す。ログメモリ装置６においては、ライト信号発生時のアドレスとデータが、ライト信号発生順にフレーム番号を付して記録される。
【００５２】
図７（ａ）は、レジスタ−メモリ間転送命令を実行したときにログメモリ装置６に記録されたデータの例であり、図７（ｂ）は、スタックによるメモリアクセス命令を実行したときにログメモリ装置６に記録されたデータの例である。いずれの場合も、図２（ａ）、（ｂ）に示した同じ命令を実行したときに実施例１のトレースメモリ装置４に記録されたデータに比べて、記録されているデータ量が少ないことがわかる。
【００５３】
また、図７（ｃ）は、レジスタ−Ｉ／Ｏ間転送命令を実行したときにログメモリ装置６に記録されたデータの例である。この場合も、図３に示した同じ命令を実行したときに実施例１のトレースメモリ装置４に記録されたデータに比べて、記録されているデータ量が少ない。
【００５４】
次に、図８および図９に示す動作フロー図を用いて、本実施例におけるデバッグ動作の進行の様子を説明する。
【００５５】
デバッグ動作の開始（ステップＳ２０１）後、ホストコンピュータ５から１命令ステップ実行コマンドが送出される（ステップＳ２０２）と、制御用ＣＰＵ３は制御回路２３へブレークポイント設定を命令する（ステップＳ２０３）。
【００５６】
この命令を受けて、制御回路２３は、命令の開始アドレスに＋１して命令の終了アドレスを設定し（ステップＳ２０４）、制御回路２３へプログラム実行を命令する（ステップＳ２０５）。
【００５７】
プログラムの実行が、先に設定した終了アドレスに達すると、制御回路２３はターゲットＣＰＵ２１へブレーク信号を送出する（ステップＳ２０６）。これによりプログラムの実行が停止すると、制御用ＣＰＵ３は、ログメモリ装置６にログデータが記録されているかどうかチェックする（ステップＳ２０７）。ログメモリ装置６にログデータが記録されていなければ（ＮＯ）、実行したプログラムではメモリへの書き込みがなかったことを意味するので本動作は終了する（ステップＳ２２１）。
【００５８】
ログメモリ装置６にログデータが記録されているときは（ＹＥＳ）、制御用ＣＰＵ３は、ログメモリ装置６から最終フレームのフレーム番号を取得し（ステップＳ２０８）、最初のフレームのログデータを取得する（ステップＳ２０９）。このとき、制御用ＣＰＵ３は取得したログデータの数をフレーム数としてカウントすることとし、最初のフレームでは、このフレーム数を１とし、以降、ログデータを取得するごとにフレーム数を＋１する（ステップＳ２１０）。
【００５９】
次に、ログメモリ装置６では記録されているデータ数が１個しかないこともあるため、ここで、ステップＳ２０９でログデータを取得したフレーム番号と、ステップＳ２０８で取得した最終フレーム番号とを照合する（ステップＳ２１１）。照合したフレーム番号が最終フレーム番号でないときは（ＮＯ）、次のログデータを取得するために、制御用ＣＰＵ３は、取得したログデータのフレーム番号に＋１して（ステップＳ２１２）、ステップＳ２０９へ戻り、最終フレームに達するまで以降のステップを繰り返す。
【００６０】
ログデータを取得したフレームの番号が最終フレーム番号に一致したときは（ＹＥＳ）、ログデータを取得したフレームに記載されているアドレスがメモリ空間を指定しているアドレスかどうかをチェックする（ステップＳ２１３）。
【００６１】
アドレスがメモリ空間を指定しているときは（ＹＥＳ）、ログメモリ装置６に記録されたデータが、そのままメインメモリ２２に書き込まれたデータであるので、このデータをプログラムの実行に伴ってメインメモリ２２に新たに書き込まれたデータとして取り扱うことができる。すなわち、この場合、メモリ２２を改めて読み出す必要がない。したがって、ステップＳ２１８へ進む。
【００６２】
一方、アドレスがメモリ空間を指定していないときは（ＮＯ）、メインメモリ２２からデータを読み出す必要がある。そこで、制御用ＣＰＵ３は、このアドレスを指定して制御回路２３へメモリリードを命令する（ステップＳ２１４）。この命令を受けて、制御回路２３は指定されたアドレスのデータをメインメモリ２２から読み出し、制御用ＣＰＵ３へ送出する。すなわち、制御用ＣＰＵ３は制御回路２３を経由してメインメモリのデータを取得する（ステップＳ２１５）。
【００６３】
その後、制御用ＣＰＵ３は、フレーム数を−１して（ステップＳ２１６）、フレーム数が０になったかどうかをチェックする（ステップＳ２１７）。フレーム数が０でなかったら（ＮＯ）、ステップＳ２１３へ戻り、フレーム数が０になるまで以降のステップを繰り返す。
【００６４】
フレーム数が０になると、動作はステップＳ２１８へ進む。このステップＳ２１８では、ホストコンピュータ５からログリードコマンドが送出される。
【００６５】
このログリードコマンドを受けて、制御用ＣＰＵ３は、上述の一連の動作でログメモリ装置６から取得したアドレスと、ログメモリ装置６あるいはメインメモリ２２から取得したデータをホストコンピュータ５へ送出する（ステップＳ２１９）。
【００６６】
ホストコンピュータ５がこのライトアドレスとデータを取得して（ステップＳ２２０）、動作は終了する（ステップＳ２２１）。
【００６７】
このような本実施例のインサーキットエミュレータ装置では、ログメモリ装置に記録されたメインメモリへの書き込み履歴を利用することにより、デバッグに必要なメモリに書き込まれたデータを容易に得ることができる。また、ログメモリ装置は小容量のメモリで実現できるのでデバッグ時の命令に対する応答速度の向上を図ることもできる。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施例１に係るインサーキットエミュレータ装置の構成を示すブロック図。
【図２】本発明の実施例１に係るインサーキットエミュレータ装置内のトレースメモリ装置に書き込まれるデータの例を示す図。
【図３】本発明の実施例１に係るインサーキットエミュレータ装置内のトレースメモリ装置に書き込まれるデータの例を示す図。
【図４】本発明の実施例１に係るインサーキットエミュレータ装置の動作フロー図。
【図５】本発明の実施例１に係るインサーキットエミュレータ装置の動作フロー図。
【図６】本発明の実施例２に係るインサーキットエミュレータ装置の構成を示すブロック図。
【図７】本発明の実施例２に係るインサーキットエミュレータ装置内のログメモリ装置に書き込まれるデータの例を示す図。
【図８】本発明の実施例２に係るインサーキットエミュレータ装置の動作フロー図。
【図９】本発明の実施例２に係るインサーキットエミュレータ装置の動作フロー図。
【符号の説明】
【００６９】
１、１１  インサーキットエミュレータ装置
２  評価用ＣＰＵ
２１  ターゲットＣＰＵ
２２  メインメモリ
２３  制御回路
３  制御用ＣＰＵ
４  トレースメモリ装置
５  ホストコンピュータ
６  ログメモリ装置
【図１】
2005182573.tif 000003
【図２】
2005182573.tif 000004
【図３】
2005182573.tif 000005
【図４】
2005182573.tif 000006
【図５】
2005182573.tif 000007
【図６】
2005182573.tif 000008
【図７】
2005182573.tif 000009
【図８】
2005182573.tif 000010
【図９】
2005182573.tif 000011