JP2886191B2 - 命令解析装置及び方法 - Google Patents
命令解析装置及び方法Info
- Publication number
- JP2886191B2 JP2886191B2 JP1206576A JP20657689A JP2886191B2 JP 2886191 B2 JP2886191 B2 JP 2886191B2 JP 1206576 A JP1206576 A JP 1206576A JP 20657689 A JP20657689 A JP 20657689A JP 2886191 B2 JP2886191 B2 JP 2886191B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- mark
- block
- memory
- state information
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/348—Circuit details, i.e. tracer hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/25—Testing of logic operation, e.g. by logic analysers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] 本発明はマイクロプロセッサ・ベース・システムの開
発に使用されるエミュレーション・ミステム(エミュレ
ータ)に関し、とくにデキューイング(dequeuing)動
作及びトレース動作中に解析の目的でエミュレータ内で
使用されるエミュレーション解析ステートにメモリ中で
追加マーキングを与えるための技術とハードウェアに関
する。
発に使用されるエミュレーション・ミステム(エミュレ
ータ)に関し、とくにデキューイング(dequeuing)動
作及びトレース動作中に解析の目的でエミュレータ内で
使用されるエミュレーション解析ステートにメモリ中で
追加マーキングを与えるための技術とハードウェアに関
する。
[従来技術及びその問題点] エミュレータは何かハードウェアができ上がる以前に
ソフトウェア(ターゲット・プログラム)をロードして
実行させる手段を設計者に提供することによって、マイ
クロプロセッサ・ベース・システム(ターゲット・シス
テム)の開発を支援するものである。エミュレータはタ
ーゲット・システムの一部または全部を置き換えること
ができる。エミュレータはシステムの開発のどの時点で
もターゲット・システムに接続できる。第6図はマイク
ロプロセッサ10と、メモリ12と、入出力装置14とを有す
る一般的なマイクロプロセッサ・ベース・システムのブ
ロック図である。第7図はエミュレータ18と、ホスト・
コンピュータ20とユーザ・ターミナル22とを有するエミ
ュレーション・システムのブロック図である。第8図は
マイクロプロセッサ・ベース・システムに接続されたエ
ミュレータのブロック図である。エミュレータはターゲ
ット・システム内のマイクロプロセッサ用のソケット1
6、第6図に示すマイクロプロセッサ10の代わりに挿入
され、ホスト・コンピュータ20によって支援される。エ
ミュレータはターゲット・システムにかわってマイクロ
プロセッサ機能及びメモリの一部を提供する。と言うの
も、ユーザはターゲット・システムのメモリ機能の一部
又は全部を持っていないかもしれないからである。開発
が完成に近づくにつれて、エミュレータによって実行さ
れる機能は次第にターゲット・システムに移行される。
開発中、エミュレータはターゲット・ソフトウェアの問
題についてのトラブルシューディングに有効な通常は利
用できないマイクロプロセッサ制御を更に追加提供す
る。このような制御としては、シングル・ステップ動
作、あるメモリ・アドレスについてのブレーク・ポイン
ト、不適正なメモリ・アドレスについてのブレーク・ポ
イント、内部レジスタの表示と修正等がある。
ソフトウェア(ターゲット・プログラム)をロードして
実行させる手段を設計者に提供することによって、マイ
クロプロセッサ・ベース・システム(ターゲット・シス
テム)の開発を支援するものである。エミュレータはタ
ーゲット・システムの一部または全部を置き換えること
ができる。エミュレータはシステムの開発のどの時点で
もターゲット・システムに接続できる。第6図はマイク
ロプロセッサ10と、メモリ12と、入出力装置14とを有す
る一般的なマイクロプロセッサ・ベース・システムのブ
ロック図である。第7図はエミュレータ18と、ホスト・
コンピュータ20とユーザ・ターミナル22とを有するエミ
ュレーション・システムのブロック図である。第8図は
マイクロプロセッサ・ベース・システムに接続されたエ
ミュレータのブロック図である。エミュレータはターゲ
ット・システム内のマイクロプロセッサ用のソケット1
6、第6図に示すマイクロプロセッサ10の代わりに挿入
され、ホスト・コンピュータ20によって支援される。エ
ミュレータはターゲット・システムにかわってマイクロ
プロセッサ機能及びメモリの一部を提供する。と言うの
も、ユーザはターゲット・システムのメモリ機能の一部
又は全部を持っていないかもしれないからである。開発
が完成に近づくにつれて、エミュレータによって実行さ
れる機能は次第にターゲット・システムに移行される。
開発中、エミュレータはターゲット・ソフトウェアの問
題についてのトラブルシューディングに有効な通常は利
用できないマイクロプロセッサ制御を更に追加提供す
る。このような制御としては、シングル・ステップ動
作、あるメモリ・アドレスについてのブレーク・ポイン
ト、不適正なメモリ・アドレスについてのブレーク・ポ
イント、内部レジスタの表示と修正等がある。
有用なマイクロプロセッサ制御のひとつに「命令解析
(instruction analysis)」と呼ばれるものがある。命
令解析は、ターゲット・プログラムの実行中のステート
の集まりを獲得する「トレース」と、マイクロプロセッ
サによるターゲット・プログラムの実行の後、獲得され
たステートの集まりの解析である逆アセンブルから成っ
ている。命令解析は実際の命令の過程を再現させようと
する。標準的な獲得のやり方では、実行に先立ってフェ
ッチされた命令を調べてステート情報を得る。この情報
は通常、単一のマイクロプロセッサ・サイクルのアドレ
ス、データ及び状態情報を含む。しかし、フェッチされ
る命令と実行される命令の間には著しい差があり得る。
命令のフェッチから命令の実行を再現させようとするプ
ロセスは「デキューイング(dequeuing)と呼ばれる。
(instruction analysis)」と呼ばれるものがある。命
令解析は、ターゲット・プログラムの実行中のステート
の集まりを獲得する「トレース」と、マイクロプロセッ
サによるターゲット・プログラムの実行の後、獲得され
たステートの集まりの解析である逆アセンブルから成っ
ている。命令解析は実際の命令の過程を再現させようと
する。標準的な獲得のやり方では、実行に先立ってフェ
ッチされた命令を調べてステート情報を得る。この情報
は通常、単一のマイクロプロセッサ・サイクルのアドレ
ス、データ及び状態情報を含む。しかし、フェッチされ
る命令と実行される命令の間には著しい差があり得る。
命令のフェッチから命令の実行を再現させようとするプ
ロセスは「デキューイング(dequeuing)と呼ばれる。
従来教示されているデキューイング方法のひとつは
「ハードウェア・デキューイング」と呼ばれる。このデ
キューイング法は、マイクロプロセッサのキューを回路
によって再現させようとするものだった。この方法は達
成が困難であり、従って時間がかなり、費用が高くつ
き、必ずしも正確でない。各ハードウエア・デキューイ
ング部はそのターゲット・プロセッサのアーキテクチャ
に依拠しており、その結果エミュレータをうまく動作さ
せるという困難な作業は新たなエミュレータの設計ごと
にくりかえされる。この設計に必要なマイクロプロセッ
サ・アーキテクチャに関する重要な情報はしばしば入手
できず、他の多くのプロセッサは上述のやり方では再現
できないキューを持っている。
「ハードウェア・デキューイング」と呼ばれる。このデ
キューイング法は、マイクロプロセッサのキューを回路
によって再現させようとするものだった。この方法は達
成が困難であり、従って時間がかなり、費用が高くつ
き、必ずしも正確でない。各ハードウエア・デキューイ
ング部はそのターゲット・プロセッサのアーキテクチャ
に依拠しており、その結果エミュレータをうまく動作さ
せるという困難な作業は新たなエミュレータの設計ごと
にくりかえされる。この設計に必要なマイクロプロセッ
サ・アーキテクチャに関する重要な情報はしばしば入手
できず、他の多くのプロセッサは上述のやり方では再現
できないキューを持っている。
従来の別のデキューイング法は「ソフトウェア・デキ
ューイング」として知られている。このデキューイング
法では、トレースで捕獲された命令フェッチ情報をデコ
ードすることによってマイクロプロセッサのキューを再
現しようとする。この方法はハードウエア・デキューイ
ング法よりも、実現のコストが大幅に安いが、正確さの
点で重大な問題があった。不正確になる主要な理由は、
分岐命令や条件付き分岐命令のデキューイングにある。
というのは、プリフェッチ・キューを持つマイクロプロ
セッサ内で分岐が起こるといくつもの命令フェッチが使
われなくなってしまい、その結果命令フェッチの順序と
は異なる順序で命令が実行されるからである。
ューイング」として知られている。このデキューイング
法では、トレースで捕獲された命令フェッチ情報をデコ
ードすることによってマイクロプロセッサのキューを再
現しようとする。この方法はハードウエア・デキューイ
ング法よりも、実現のコストが大幅に安いが、正確さの
点で重大な問題があった。不正確になる主要な理由は、
分岐命令や条件付き分岐命令のデキューイングにある。
というのは、プリフェッチ・キューを持つマイクロプロ
セッサ内で分岐が起こるといくつもの命令フェッチが使
われなくなってしまい、その結果命令フェッチの順序と
は異なる順序で命令が実行されるからである。
別の問題の原因として、命令には単語長、倍長語長、
又は長語長(4倍語長)のものがあり、また命令にはそ
れに関連するアーギュメント(オペランド)をもつもの
がある(たとえば、定数加算命令のような)ということ
がある。命令フェッチ情報の取り込みは、一般にユーザ
がターゲット・プログラム内に選択した位置から始まる
ので、最初の語が命令の先頭の語であるかどうかを判断
する方法がなかった。最初の語が命令の先頭の語ではな
い場合も、デキューイング部はそれにはかまわずそれを
命令の先頭語であると解釈してしまう。その結果、しば
しば、デコードされた命令フェッチ情報がプロセッサに
よってターゲット・プログラム中で実際に実行された命
令とはほとんど似ても似つかないものになってしまう。
その結果、ソフトウェア・デキューイング法はハードウ
ェア・デキューイング法よりもずっと安価だが、極めて
信頼性に欠けるものである。
又は長語長(4倍語長)のものがあり、また命令にはそ
れに関連するアーギュメント(オペランド)をもつもの
がある(たとえば、定数加算命令のような)ということ
がある。命令フェッチ情報の取り込みは、一般にユーザ
がターゲット・プログラム内に選択した位置から始まる
ので、最初の語が命令の先頭の語であるかどうかを判断
する方法がなかった。最初の語が命令の先頭の語ではな
い場合も、デキューイング部はそれにはかまわずそれを
命令の先頭語であると解釈してしまう。その結果、しば
しば、デコードされた命令フェッチ情報がプロセッサに
よってターゲット・プログラム中で実際に実行された命
令とはほとんど似ても似つかないものになってしまう。
その結果、ソフトウェア・デキューイング法はハードウ
ェア・デキューイング法よりもずっと安価だが、極めて
信頼性に欠けるものである。
[発明の目的] 本発明は上述した従来技術の問題点を解消し、正確な
命令解析を安価に行うことを目的とする。
命令解析を安価に行うことを目的とする。
[発明の概要] 本発明の一実施例によれば、ターゲット・プログラム
からの命令に対応する所定のコード化方式に従って決定
されたマークを保持する追加メモリをエミュレータに備
えることによってエミュレータ内の命令解析を改良して
いる。このマークは付加的なステート情報を命令解析中
にエミュレータのホスト・コントローラに与え、ターゲ
ット・プロセッサがターゲット・プログラムを実行中に
生成されたステート情報を、ターゲット・プロセッサ手
段によって実行されたテスト・プログラムに対応するス
テートのリストへもっと正確に変換する。
からの命令に対応する所定のコード化方式に従って決定
されたマークを保持する追加メモリをエミュレータに備
えることによってエミュレータ内の命令解析を改良して
いる。このマークは付加的なステート情報を命令解析中
にエミュレータのホスト・コントローラに与え、ターゲ
ット・プロセッサがターゲット・プログラムを実行中に
生成されたステート情報を、ターゲット・プロセッサ手
段によって実行されたテスト・プログラムに対応するス
テートのリストへもっと正確に変換する。
このマーキングシステムは任意のプロセッサに応用で
き、また最小の追加コストで最大の結果を達成できる任
意のコーディング方式に従ってよい。
き、また最小の追加コストで最大の結果を達成できる任
意のコーディング方式に従ってよい。
マーキング用のメモリとそのために必要なソフトウェ
アのために余計にかかるコストは小さいので、本発明は
従来の比較的高価なハードウェア・デキューイング法よ
りもすぐれ、しかもその結果得られるトレース情報の精
度はハードウェア・デキューイング方式に近いので、従
来のソフトウェア・デキューイング法よりもまたすぐれ
ている。
アのために余計にかかるコストは小さいので、本発明は
従来の比較的高価なハードウェア・デキューイング法よ
りもすぐれ、しかもその結果得られるトレース情報の精
度はハードウェア・デキューイング方式に近いので、従
来のソフトウェア・デキューイング法よりもまたすぐれ
ている。
[発明の実施例] 第1図はマーキング・ハードウェアを有するエミュレ
ータの好適な実施例のブロック図である。以下に各ブロ
ックの説明を行う。
ータの好適な実施例のブロック図である。以下に各ブロ
ックの説明を行う。
ホスト・コントローラ・デコーディング・ブロック24 このブロックはホスト・コントローラ・コマンドを受
け取ってエミュレータ内の種々のブロック用の適切な信
号を生成する。例えば、マークをロードせよというコマ
ンド(load mark command)がこのブロックに送られる
と、このブロックはデュアル・ポート・アクセス制御ブ
ロック34に対しては書込みストローブを、アドレス選択
ブロック40に対してはマーク・アドレス・ブロック信号
を、またマーク・メモリ・ブロック38に対してはイネー
ブル信号をそれぞれ生成する。このブロックは更に、制
御レジスタ及びステータス・バッファ28からステータス
を読出し、また同じブロックの制御レジスタへ情報を書
込むことができる。
け取ってエミュレータ内の種々のブロック用の適切な信
号を生成する。例えば、マークをロードせよというコマ
ンド(load mark command)がこのブロックに送られる
と、このブロックはデュアル・ポート・アクセス制御ブ
ロック34に対しては書込みストローブを、アドレス選択
ブロック40に対してはマーク・アドレス・ブロック信号
を、またマーク・メモリ・ブロック38に対してはイネー
ブル信号をそれぞれ生成する。このブロックは更に、制
御レジスタ及びステータス・バッファ28からステータス
を読出し、また同じブロックの制御レジスタへ情報を書
込むことができる。
ROMモジュール26(エミュレータ固有) このブロックには、エミュレータの動作に必要なエミ
ュレータ固有の全てのソフトウェアが入っている。例え
ば、このROMにはマーキング固有の全てのソフトウェア
が、ブレークを起こしレジスタを読み出しエミュレータ
の構成を定めるためのソフトウェアと共に入っている。
ュレータ固有の全てのソフトウェアが入っている。例え
ば、このROMにはマーキング固有の全てのソフトウェア
が、ブレークを起こしレジスタを読み出しエミュレータ
の構成を定めるためのソフトウェアと共に入っている。
制御レジスタ及びステータス・バッファ28 このブロッックはエミュレータを種々の動作モードに
構成するエミュレータ制御レジスタを含んでいる。例え
ば、これにはリセット信号が含まれており、この信号が
アサートされるとエミュレータがリセットされる。この
ブロックには更にステータス・レジスタも入っている。
このレジスタはホスト・コントローラ・デコーディング
・ブロック24が随時読み出してエミュレータがどの状態
にあるか(例えばフォアグラウンドで動作中であると
か、リセットされてバックグラウンド状態にある等)を
判定することができる。
構成するエミュレータ制御レジスタを含んでいる。例え
ば、これにはリセット信号が含まれており、この信号が
アサートされるとエミュレータがリセットされる。この
ブロックには更にステータス・レジスタも入っている。
このレジスタはホスト・コントローラ・デコーディング
・ブロック24が随時読み出してエミュレータがどの状態
にあるか(例えばフォアグラウンドで動作中であると
か、リセットされてバックグラウンド状態にある等)を
判定することができる。
解析部30 このブロックはプロセッサ52(80C196)が出したアド
レス、データ及びステータスを受け取って記憶し後に検
査する。このブロックは更に、マーク・メモリから出さ
れ、命令コードのロケーションに関する重要な情報を提
供するマークを受け取る。
レス、データ及びステータスを受け取って記憶し後に検
査する。このブロックは更に、マーク・メモリから出さ
れ、命令コードのロケーションに関する重要な情報を提
供するマークを受け取る。
ホスト・データ・バッファ/ラッチ32 このブロックはデュアルポート・メモリ・アクセス制
御ブロックと共働して、ホスト・コントローラが、本実
施例では80C196であるプロセッサ52がアクセス可能であ
るものと同じメモリをアクセスできるようにする。この
ブロックは適当な時点で利用できるようにホスト・コン
トローラ・データを各種のメモリ・ブロックにバッファ
しラッチする。
御ブロックと共働して、ホスト・コントローラが、本実
施例では80C196であるプロセッサ52がアクセス可能であ
るものと同じメモリをアクセスできるようにする。この
ブロックは適当な時点で利用できるようにホスト・コン
トローラ・データを各種のメモリ・ブロックにバッファ
しラッチする。
デュアル・ポート・アクセス制御ブロック34 このブロックはホスト・コントローラとプロセッサ52
からのアクセスを仲裁して、双方が例えばエミュレーシ
ョン・メモリ36やモニタ・メモリ42のような各種のメモ
リ・ブロックへアクセスできるようにする。このブロッ
クはメモリ・ブロックへの読み出しストローブ及び書き
込みストローブを生成し、かつ要求元のブロックへ戻す
必要なタイミング・ウエイト信号を生成する。
からのアクセスを仲裁して、双方が例えばエミュレーシ
ョン・メモリ36やモニタ・メモリ42のような各種のメモ
リ・ブロックへアクセスできるようにする。このブロッ
クはメモリ・ブロックへの読み出しストローブ及び書き
込みストローブを生成し、かつ要求元のブロックへ戻す
必要なタイミング・ウエイト信号を生成する。
エミュレーション・メモリ36 このブロックはプロセッサがフォアグラウンド・エミ
ュレーション・メモリで動作中に使用されるメモリを含
んでいる。
ュレーション・メモリで動作中に使用されるメモリを含
んでいる。
マーク・メモリ38 このブロックはマーク・タグを保持するために使用さ
れるメモリを含んでいる。このメモリにロードするのは
ホスト・コントローラ・デコーディング・ブロック24だ
けであり(80C196プロセッサ52はこれに書込むことはで
きない)、読み出しを行うのは解析部30だけである。ホ
スト・コントローラ・デコーディング・ブロッック24は
マーク・メモリ38の特定のアドレスにマーク・タグをロ
ードするので、プロセッサ52が同一のアドレスを出力す
ると、所望のマーク・タグが解析部30へ送り出される。
マーク・メモリ38は、エミュレータが初期化されたと
き、またはエミュレーション・メモリ・ロケーションが
マークされた後に変更されると、空のタグ値(マークが
付けられていない)に初期化される。
れるメモリを含んでいる。このメモリにロードするのは
ホスト・コントローラ・デコーディング・ブロック24だ
けであり(80C196プロセッサ52はこれに書込むことはで
きない)、読み出しを行うのは解析部30だけである。ホ
スト・コントローラ・デコーディング・ブロッック24は
マーク・メモリ38の特定のアドレスにマーク・タグをロ
ードするので、プロセッサ52が同一のアドレスを出力す
ると、所望のマーク・タグが解析部30へ送り出される。
マーク・メモリ38は、エミュレータが初期化されたと
き、またはエミュレーション・メモリ・ロケーションが
マークされた後に変更されると、空のタグ値(マークが
付けられていない)に初期化される。
アドレス選択ブロック40 このブロックはデュアル・ポート・アクセス制御ブロ
ック34と共働して、適切な時点に妥当なアドレスを各種
のメモリ・ブロックへ供給する。このブロックは書き込
むべき正しいメモリ・ブロック及びそのブロックの適切
なアドレスを選択する。
ック34と共働して、適切な時点に妥当なアドレスを各種
のメモリ・ブロックへ供給する。このブロックは書き込
むべき正しいメモリ・ブロック及びそのブロックの適切
なアドレスを選択する。
モニタ・メモリ42 このブロックはプロセッサがバックグラウンド・エミ
ュレーション・メモリで動作中に使用されるメモリを含
んでいる。このメモリはモニタ・コードを含み、またホ
スト・コントローラ・デコーディング・ブロック24との
通信には使用される通信用メモリも含んでいる。
ュレーション・メモリで動作中に使用されるメモリを含
んでいる。このメモリはモニタ・コードを含み、またホ
スト・コントローラ・デコーディング・ブロック24との
通信には使用される通信用メモリも含んでいる。
モニタ・マーク・メモリ44 このブロックはモニタが適正に動作するために用いら
れるマークを含んでいる。このメモリ44内の信号はモニ
タにある間のフォアグラウンド・メモリへのアクセスを
制御し、かつモニタ(バックグラウンド)状態から脱け
出ることも制御する。
れるマークを含んでいる。このメモリ44内の信号はモニ
タにある間のフォアグラウンド・メモリへのアクセスを
制御し、かつモニタ(バックグラウンド)状態から脱け
出ることも制御する。
カバレージ・メモリ46 このメモリ・ブロックはアドレス・ロケーション・ア
クセス・ステータスに関する情報を含んでいる。これは
ホスト・コントローラ・デコーディング・ブロック24に
よってリセット可能である。
クセス・ステータスに関する情報を含んでいる。これは
ホスト・コントローラ・デコーディング・ブロック24に
よってリセット可能である。
プロセッサ・データ・バッファ/ラッチ48 このブロックはデユアル・ポート・メモリ・アクセス
制御ブロック34と共働して、80C196プロセッサ52が、ホ
スト・コントローラ・デコーディング・ブロック24がア
クセスできるメモリと同じメモリをアクセスできるよう
にする。このブロックはプロセッサ・データを各種メモ
リ・ブロックにバッファしラッチして、適切な時点で使
用できるようにする。
制御ブロック34と共働して、80C196プロセッサ52が、ホ
スト・コントローラ・デコーディング・ブロック24がア
クセスできるメモリと同じメモリをアクセスできるよう
にする。このブロックはプロセッサ・データを各種メモ
リ・ブロックにバッファしラッチして、適切な時点で使
用できるようにする。
プロセッサ・ストローブ発生部50 このブロックはプロセッサ・ストローブをインターセ
プトして、例えばデユアル・ポート・アクセス制御ブロ
ック34や解析部30用のタイミング・ストローブのよう
な、エミュレータ全体を通して利用できる更に適切なタ
イミングと機能を有するストローブを生成する。
プトして、例えばデユアル・ポート・アクセス制御ブロ
ック34や解析部30用のタイミング・ストローブのよう
な、エミュレータ全体を通して利用できる更に適切なタ
イミングと機能を有するストローブを生成する。
プロセッサ52(80196) これはターゲット・プログラム、モニタ及び他の機能
を実行するターゲット・プロセッサである。
を実行するターゲット・プロセッサである。
ブレーク制御ブロック54 このブロックは、所望の時点でユーザ・コードの実行
を中断させて、レジスタやメモリをモニタしたりあるい
は80C196プロセッサ52の現在の状態の変更を行うことが
できる。中断は、モニタ(バックグラウンド)状態を脱
け出るときに現在の状態を正しく復元できるように注意
深く行われる。
を中断させて、レジスタやメモリをモニタしたりあるい
は80C196プロセッサ52の現在の状態の変更を行うことが
できる。中断は、モニタ(バックグラウンド)状態を脱
け出るときに現在の状態を正しく復元できるように注意
深く行われる。
ポート複製ブロック54 このブロックはプロセッサ52の内部機能を複製するこ
とによって、80C196プロセッサ・ポート・ピンの動作を
シミュレートする。これによって、エミュレータのユー
ザ・プローブは機能上はあたかも80C196プロセッサ52の
ように動作でき他の機能は実際には内部的にはエミュレ
ータ中で行われている。
とによって、80C196プロセッサ・ポート・ピンの動作を
シミュレートする。これによって、エミュレータのユー
ザ・プローブは機能上はあたかも80C196プロセッサ52の
ように動作でき他の機能は実際には内部的にはエミュレ
ータ中で行われている。
ユーザ・プローブ・バッファ/ラッチ58 このブロックはユーザのターゲット・システム(エミ
ュレータが挿入されるシステム)上に存在するコードの
実行ができるのに必要なメモリ・アドレス/データ・バ
ス制御を行う。
ュレータが挿入されるシステム)上に存在するコードの
実行ができるのに必要なメモリ・アドレス/データ・バ
ス制御を行う。
ユーザ・プローブ60 これはユーザのターゲット・システムに挿入する物理
的なユニットである。ユーザはそのターゲット・システ
ムから80C196プロセッサを取りはずし、その代わりにエ
ミュレータのユーザ・プローブ60を差し込む。
的なユニットである。ユーザはそのターゲット・システ
ムから80C196プロセッサを取りはずし、その代わりにエ
ミュレータのユーザ・プローブ60を差し込む。
マーキングハードウェアの好適な実施例はマークを生
成しまたデコードするために4つの別個のソフトウェア
・ブロックを使用する。オプション・モジュールはマー
クを作成する際に使用される種々のオプションを定義す
るために用いられる。マークを生成するため、次の2つ
のモジュールが使用される。すなわち、アドレスの適当
な範囲をテストするための構文モジュール(syntax mod
ule)と、命令コード情報を抽出し、マークを生成しか
つメモリ中の好適なロケーションにマークを記憶するた
めの状態機械モジュールである。マーキング・ソフトウ
ェア逆アセンブリ・モジュールは第4のモジュールであ
り、マークを抽出し、それを使って逆アセンブルされた
命令コード情報を作成するために用いられる。
成しまたデコードするために4つの別個のソフトウェア
・ブロックを使用する。オプション・モジュールはマー
クを作成する際に使用される種々のオプションを定義す
るために用いられる。マークを生成するため、次の2つ
のモジュールが使用される。すなわち、アドレスの適当
な範囲をテストするための構文モジュール(syntax mod
ule)と、命令コード情報を抽出し、マークを生成しか
つメモリ中の好適なロケーションにマークを記憶するた
めの状態機械モジュールである。マーキング・ソフトウ
ェア逆アセンブリ・モジュールは第4のモジュールであ
り、マークを抽出し、それを使って逆アセンブルされた
命令コード情報を作成するために用いられる。
第2図はオプションモジュールのフローチャートを示
す。このモジュールは解析ステータスの逆アセンブルに
先立って逆アセンブラによって呼出されて、ユーザが選
択した各種オプションを実際に設定する。ユーザがモジ
ュールをアクセスする(ブロック62)と、オプション変
数をチェックし、逆アセンブリ構成に変化が生じたか否
かの判定を行う(ブロック64)。オプション変数がセッ
トされていない場合は、逆アセンブリ構成を変更せず
(ブロック68)、オプション・モジュールを終結する
(ブロック70)。オプション変数がセットされている場
合は変数を検査し、選択されたオプションが正しいか否
かの判定がなされる(ブロック66)。オプション変数が
不当にセットされている場合は、逆アセンブリ構成は変
更せず(ブロック72)、ユーザに対してエラーが表示さ
れ、オプション・モジュールを終結する(ブロック7
4)。オプション変数が正しくセットされている場合
は、適切な逆アセンブラ・フラグ変数を変更して(ブロ
ック76)、オプション・モジュールを終結する(ブロッ
ク78)。
す。このモジュールは解析ステータスの逆アセンブルに
先立って逆アセンブラによって呼出されて、ユーザが選
択した各種オプションを実際に設定する。ユーザがモジ
ュールをアクセスする(ブロック62)と、オプション変
数をチェックし、逆アセンブリ構成に変化が生じたか否
かの判定を行う(ブロック64)。オプション変数がセッ
トされていない場合は、逆アセンブリ構成を変更せず
(ブロック68)、オプション・モジュールを終結する
(ブロック70)。オプション変数がセットされている場
合は変数を検査し、選択されたオプションが正しいか否
かの判定がなされる(ブロック66)。オプション変数が
不当にセットされている場合は、逆アセンブリ構成は変
更せず(ブロック72)、ユーザに対してエラーが表示さ
れ、オプション・モジュールを終結する(ブロック7
4)。オプション変数が正しくセットされている場合
は、適切な逆アセンブラ・フラグ変数を変更して(ブロ
ック76)、オプション・モジュールを終結する(ブロッ
ク78)。
第3図は構文モジュールのフローチャートを示してい
る。マーク・コマンドが実行されると構文モジュールが
呼出される(ブロック80)。先ずコマンドのパラメータ
を獲得し(ブロック82)、正当アドレス範囲についてチ
ェックする。(ブロック84)。アドレス範囲が正当でな
い場合は、コマンドをアボートし、ユーザに対してエラ
ーを指示し、構文モジュールを終結させる(ブロック8
6)。アドレス範囲が正当である場合は、マーキング・
ソフトウェア状態機械モジュールを呼出す(ブロック8
8)。状態機械モジュールが状態機械モジュール内の問
題によってエラー状態を戻した場合は、ユーザに対して
エラーを指示してこのコマンドをアポートする(ブロッ
ク90)。状態機械モジュールがエラーを戻さない場合
は、状態機械モジュールはアドレス範囲についてメモリ
内に適切なマークを置いた後に戻る。構文モジュールは
メモリの更に別の範囲がマークされるように指定されて
いるか否かを判定する(ブロック92)。メモリの更に別
の範囲がマークされることになっている場合は、この範
囲の正当性を判定する(ブロック84)。メモリの更に別
の範囲をマークすることになっていない場合は、構文モ
ジュールはユーザに対してエラーがないことを表示して
終結する(ブロック94)。
る。マーク・コマンドが実行されると構文モジュールが
呼出される(ブロック80)。先ずコマンドのパラメータ
を獲得し(ブロック82)、正当アドレス範囲についてチ
ェックする。(ブロック84)。アドレス範囲が正当でな
い場合は、コマンドをアボートし、ユーザに対してエラ
ーを指示し、構文モジュールを終結させる(ブロック8
6)。アドレス範囲が正当である場合は、マーキング・
ソフトウェア状態機械モジュールを呼出す(ブロック8
8)。状態機械モジュールが状態機械モジュール内の問
題によってエラー状態を戻した場合は、ユーザに対して
エラーを指示してこのコマンドをアポートする(ブロッ
ク90)。状態機械モジュールがエラーを戻さない場合
は、状態機械モジュールはアドレス範囲についてメモリ
内に適切なマークを置いた後に戻る。構文モジュールは
メモリの更に別の範囲がマークされるように指定されて
いるか否かを判定する(ブロック92)。メモリの更に別
の範囲がマークされることになっている場合は、この範
囲の正当性を判定する(ブロック84)。メモリの更に別
の範囲をマークすることになっていない場合は、構文モ
ジュールはユーザに対してエラーがないことを表示して
終結する(ブロック94)。
第4図はマーキング・ソフトウェア状態機械モジュー
ルのフローチャートを示す。このモジュールが前述の構
文モジュールによって呼出される(ブロック96)と、マ
ーク・ポインタをマークされるべきアドレスについての
先頭アドレス、すなわちスタート・アドレスに初期設定
する(ブロック98)。読み出しポインタもスタート・ア
ドレスに初期設定する(ブロック100)。命令コード情
報を、読み出しポインタによって指示されたメモリロケ
ーションから抽出し(ブロック102)、ルックアップ・
テーブルを参照することによって適切なマーク・コード
を生成する(ブロック104)。このルックアップ・テー
ブルはエミュレーション解析ステートのマーキングを行
うため予め定められたコーディング・スキーマを含んで
いる。本実施例については、プロセッサは最大サイズの
命令フェッチの場合2バイトを使用するものと想定さ
れ、3ビットが以下のような定義でマーキングのために
用いられる。
ルのフローチャートを示す。このモジュールが前述の構
文モジュールによって呼出される(ブロック96)と、マ
ーク・ポインタをマークされるべきアドレスについての
先頭アドレス、すなわちスタート・アドレスに初期設定
する(ブロック98)。読み出しポインタもスタート・ア
ドレスに初期設定する(ブロック100)。命令コード情
報を、読み出しポインタによって指示されたメモリロケ
ーションから抽出し(ブロック102)、ルックアップ・
テーブルを参照することによって適切なマーク・コード
を生成する(ブロック104)。このルックアップ・テー
ブルはエミュレーション解析ステートのマーキングを行
うため予め定められたコーディング・スキーマを含んで
いる。本実施例については、プロセッサは最大サイズの
命令フェッチの場合2バイトを使用するものと想定さ
れ、3ビットが以下のような定義でマーキングのために
用いられる。
000− 空(NULL)(これまでにマーキングされていな
い、またはこれまでに作用を受けていない) 001− 低位バイトだけが命令コードである 010− 高位バイトだけが命令コードである 011− 両バイトとも命令コードである 100− どのバイトも命令コードではないがマーキング
されている(オペランド) 残りの定義は利用されない。命令コードが正しくない
場合は、マーク・コマンドはアボートされ、エラーが構
文モジュールに戻される(ブロック106)。命令コード
が正しいものである場合は、参照されたマークをマーク
・メモリ中のマーク・ポインタのロケーションにロード
する(ブロック108)。
い、またはこれまでに作用を受けていない) 001− 低位バイトだけが命令コードである 010− 高位バイトだけが命令コードである 011− 両バイトとも命令コードである 100− どのバイトも命令コードではないがマーキング
されている(オペランド) 残りの定義は利用されない。命令コードが正しくない
場合は、マーク・コマンドはアボートされ、エラーが構
文モジュールに戻される(ブロック106)。命令コード
が正しいものである場合は、参照されたマークをマーク
・メモリ中のマーク・ポインタのロケーションにロード
する(ブロック108)。
抽出された命令コード情報が正当な非命令コード(つ
まりオペランド)である場合は、非命令コード・マーク
情報がマーク・メモリ中のマーク・ポインタの指すメモ
リ・ロケーションにロードされる(ブロック108)。ポ
インタをルックアップ・テーブルに基づく適切な数値だ
けインクリメントする。これらのインクリメント量は命
令コードとオペランド(もしあれば)のバイト・サイズ
によって決まる(ブロック110)。次にポインタをアド
レス範囲と比較して、マーク・コマンドを終結すべきか
否かが判定される(ブロック112)。アドレス範囲が終
了していない場合は、状態機械モジュールは、読み出し
ポインタの現在位置によって指定された読み出し位置か
ら命令コード情報を抽出するという以前のステップに戻
り(ブロック102)、上に述べたのと同様に動作を継続
する。アドレス範囲が終了している場合は、状態機械モ
ジュールはユーザに対して首尾よく完了した旨を指示
し、マーク・コマンドと状態機械モジュールを終結し
て、構文モジュールに戻る(ブロック114)。
まりオペランド)である場合は、非命令コード・マーク
情報がマーク・メモリ中のマーク・ポインタの指すメモ
リ・ロケーションにロードされる(ブロック108)。ポ
インタをルックアップ・テーブルに基づく適切な数値だ
けインクリメントする。これらのインクリメント量は命
令コードとオペランド(もしあれば)のバイト・サイズ
によって決まる(ブロック110)。次にポインタをアド
レス範囲と比較して、マーク・コマンドを終結すべきか
否かが判定される(ブロック112)。アドレス範囲が終
了していない場合は、状態機械モジュールは、読み出し
ポインタの現在位置によって指定された読み出し位置か
ら命令コード情報を抽出するという以前のステップに戻
り(ブロック102)、上に述べたのと同様に動作を継続
する。アドレス範囲が終了している場合は、状態機械モ
ジュールはユーザに対して首尾よく完了した旨を指示
し、マーク・コマンドと状態機械モジュールを終結し
て、構文モジュールに戻る(ブロック114)。
第5図はマーキング・ソフトウェア逆アセンブリ・モ
ジュールのフローチャートである。このモジュールはト
レースが実行されるときにユーザによって呼出される
(ブロック116)。逆アセンブリ・モジュールは単一の
ステートを逆アセンブルするために使用される。逆アセ
ンブリ・モジュールは、一連のステートを逆アセンブル
するために他のモジュールからくり返し呼出される。逆
アセンブラが先ず初期状態にされる(ブロック118)。
オプション・フラグ・セッティングを抽出して検査し、
マーキングがこのコマンドについてイネーブルされてい
るかどうか判定する(ブロック120)。マーキングがイ
ネーブルされていない場合は、ソフトウェア・デキュー
イング(又はバス・モード逆アセンブラ)を適用して命
令コード又はオペランドを判定し(ブロック122)、ま
た逆アセンブリ・モジュールを終結させる(ブロック12
4)。このアドレスに対してマーキングがイネーブルさ
れている場合は、マーク情報が抽出される(ブロック12
6)。抽出されたマーク情報がこの特定のアドレスにマ
ークが存在しないことを示している場合は、前述のよう
にバス・モード逆アセンブリが適用される(ブロック12
2)。抽出されたマーク情報が、この特定のアドレスに
マークが存在することを示している場合は、マークを検
査し、それが非命令コード・マークか正規命令コード・
マークであるか、特別命令コード・マークであるかの判
定を行う(ブロック126)。マークが非命令コード・マ
ークである場合は、オペランド・フェッチ・ステータス
を示して(ブロック128)、モジュールを終結する(ブ
ロック130)。マークが例えば空命令コードマークのよ
うに特別命令コード・マークである場合は、判定及び命
令コードを示すために特別マーク逆アセンブリを適用し
(ブロック132)、モジュールを終結させる(ブロック1
34)。マークが標準の命令コード・マークである場合
は、命令コード逆アセンブリを適用して逆アセンブルし
た命令コードを表示し(ブロック136)、モジュールを
終結させる。(ブロック138)。
ジュールのフローチャートである。このモジュールはト
レースが実行されるときにユーザによって呼出される
(ブロック116)。逆アセンブリ・モジュールは単一の
ステートを逆アセンブルするために使用される。逆アセ
ンブリ・モジュールは、一連のステートを逆アセンブル
するために他のモジュールからくり返し呼出される。逆
アセンブラが先ず初期状態にされる(ブロック118)。
オプション・フラグ・セッティングを抽出して検査し、
マーキングがこのコマンドについてイネーブルされてい
るかどうか判定する(ブロック120)。マーキングがイ
ネーブルされていない場合は、ソフトウェア・デキュー
イング(又はバス・モード逆アセンブラ)を適用して命
令コード又はオペランドを判定し(ブロック122)、ま
た逆アセンブリ・モジュールを終結させる(ブロック12
4)。このアドレスに対してマーキングがイネーブルさ
れている場合は、マーク情報が抽出される(ブロック12
6)。抽出されたマーク情報がこの特定のアドレスにマ
ークが存在しないことを示している場合は、前述のよう
にバス・モード逆アセンブリが適用される(ブロック12
2)。抽出されたマーク情報が、この特定のアドレスに
マークが存在することを示している場合は、マークを検
査し、それが非命令コード・マークか正規命令コード・
マークであるか、特別命令コード・マークであるかの判
定を行う(ブロック126)。マークが非命令コード・マ
ークである場合は、オペランド・フェッチ・ステータス
を示して(ブロック128)、モジュールを終結する(ブ
ロック130)。マークが例えば空命令コードマークのよ
うに特別命令コード・マークである場合は、判定及び命
令コードを示すために特別マーク逆アセンブリを適用し
(ブロック132)、モジュールを終結させる(ブロック1
34)。マークが標準の命令コード・マークである場合
は、命令コード逆アセンブリを適用して逆アセンブルし
た命令コードを表示し(ブロック136)、モジュールを
終結させる。(ブロック138)。
以下に示すマーキングの例では、コード(Cで書かれ
ている)のトレースと、次に実際に実行された命令シー
ケンスと、マーキングをイネーブルにしたときのトレー
ス・リスト表示と、従来のソフトウェア・デキューイン
グ法と同様な、マーキングをディスエーブルしたときの
トレース・リスト表示を示す。
ている)のトレースと、次に実際に実行された命令シー
ケンスと、マーキングをイネーブルにしたときのトレー
ス・リスト表示と、従来のソフトウェア・デキューイン
グ法と同様な、マーキングをディスエーブルしたときの
トレース・リスト表示を示す。
以下に示した2つのトレース・リストは同一のプロセ
ッサ・ステップ動作のリストであり、第1のリストはマ
ーキングをイネーブルしたものであり、第2のリストは
マーキングをディスエーブルしたものである。トレース
されているコードを以下に示す。
ッサ・ステップ動作のリストであり、第1のリストはマ
ーキングをイネーブルしたものであり、第2のリストは
マーキングをディスエーブルしたものである。トレース
されているコードを以下に示す。
CMPB 1C,#41;レジスタ1Cのバイトを値41H ;と比較 JE 42D ;等しい場合はアドレス42Dに ;ジャンプ CMPB 1C,#42;レジスタ1Cのバイトを値42H ;と比較 JE 433 ;等しい場合はアドレス433に ;ジャンプ SJMP 43F ;そうでない場合はアドレス43F ;にジャンプ 42D LDB 1D,#12 ;レジスタ1Dに値12Hをロード LD 1E,#0512;語レジスタ1Eに値512Hをロー ;ド SCALL 443 ;アドレス443にあるルーチン ;を呼出し 443 LD 20,#601 ;語レジスタ20に値601Hをロー ;ド 実際の命令シーケンスは以下の様になる。
CMPB 1C,#41;レジスタ1Cのバイトを値41H ;と比較 JE 42D ;比較が成功した場合は42Dに ;ジャンプ 42D LDB 1D,#12;レジスタに値12Hをロード LD 1E,#0512;語レジスタに値512Hをロード SCALL 443 ;アドレス443にあるルーチン ;を呼出し 443 LD 20,#601;語レジスタ20に値#601Hロー ;ド マーキングをイネーブルにした場のトレース・リスト
は、実行された実際の命令を適切な順序で極めて正確に
表現している。マーキング・タグはターゲット・プロセ
ッサ装置によって実行されるテスト・プログラムに対応
する状態リストへの変換中に使用するための追加状態情
報を提供する。
は、実行された実際の命令を適切な順序で極めて正確に
表現している。マーキング・タグはターゲット・プロセ
ッサ装置によって実行されるテスト・プログラムに対応
する状態リストへの変換中に使用するための追加状態情
報を提供する。
マーキングをイネーブルにした場合のトレース・リス
トとは対称的に、マーキングンをディステーブルにした
場合のトレース・リストは、状態情報を実行された命令
のリストへと正しく変換するための充分な情報が不足し
ている。マーキングをディステーブルしたトレースは、
行4での非命令コードフェッチで開始されると、実行さ
れないバイトを実行されたAND命令であるとして誤って
ディスアセンブルし、最初のJE(等しい場合にジャンプ
せよ)命令を見落としてしまう。トレース・リストは結
局行8で正しい状態に回復し、LDB(レジスタにロード
せよ)命令を正しく識別する。しかし、行13と14で再度
誤りが起る。その結果、トレース・リストがいつ信頼で
き、いつ信頼できないかをユーザが知ることは困難であ
る。マーキングを使用すれば、完璧ではないにせよ、信
頼性が大幅に高まる。
トとは対称的に、マーキングンをディステーブルにした
場合のトレース・リストは、状態情報を実行された命令
のリストへと正しく変換するための充分な情報が不足し
ている。マーキングをディステーブルしたトレースは、
行4での非命令コードフェッチで開始されると、実行さ
れないバイトを実行されたAND命令であるとして誤って
ディスアセンブルし、最初のJE(等しい場合にジャンプ
せよ)命令を見落としてしまう。トレース・リストは結
局行8で正しい状態に回復し、LDB(レジスタにロード
せよ)命令を正しく識別する。しかし、行13と14で再度
誤りが起る。その結果、トレース・リストがいつ信頼で
き、いつ信頼できないかをユーザが知ることは困難であ
る。マーキングを使用すれば、完璧ではないにせよ、信
頼性が大幅に高まる。
[発明の効果] 以上詳細に説明したように、本発明によれば、簡単な
構成でトレース結果の信頼性を大幅に向上させることが
できる。
構成でトレース結果の信頼性を大幅に向上させることが
できる。
第1図は本発明の一実施例のブロック図、第2図ないし
第5図は本発明の一実施例の動作を説明するフローチャ
ート、第6図ないし第8図は本発明を適用することので
きるシステムを説明するための図である。 10:マイクロプロセッサ 12:メモリ 14:入出力装置 16:ソケット 18:エミュレータ 20:ホスト・コンピュータ 22:ユーザ・ターミナル 24:ホスト・コントローラ・デコーディング・ブロック 26:ROMモジュール 28:制御レジスタ及びステータス・バッファ 30:解析部 32:ホスト・データ・バッファ/ラッチ 34:デュアル・ポート・アクセス制御ブロック 36:エミュレーション・メモリ 38:マーク・メモリ 40:アドレス選択ブロック 42:モニタ・メモリ 44:モニタ・マーク・メモリ 46:カバレージ・メモリ 48:プロセッサ・データ・バッファ/ラッチ 50:プロセッサ・ストローブ発生部 52:プロセッサ 54:ブレーク制御ブロック 56:ポート複製ブロック 58:ユーザ・プローブ・バッファ/ラッチ 60:ユーザ・プローブ
第5図は本発明の一実施例の動作を説明するフローチャ
ート、第6図ないし第8図は本発明を適用することので
きるシステムを説明するための図である。 10:マイクロプロセッサ 12:メモリ 14:入出力装置 16:ソケット 18:エミュレータ 20:ホスト・コンピュータ 22:ユーザ・ターミナル 24:ホスト・コントローラ・デコーディング・ブロック 26:ROMモジュール 28:制御レジスタ及びステータス・バッファ 30:解析部 32:ホスト・データ・バッファ/ラッチ 34:デュアル・ポート・アクセス制御ブロック 36:エミュレーション・メモリ 38:マーク・メモリ 40:アドレス選択ブロック 42:モニタ・メモリ 44:モニタ・マーク・メモリ 46:カバレージ・メモリ 48:プロセッサ・データ・バッファ/ラッチ 50:プロセッサ・ストローブ発生部 52:プロセッサ 54:ブレーク制御ブロック 56:ポート複製ブロック 58:ユーザ・プローブ・バッファ/ラッチ 60:ユーザ・プローブ
Claims (5)
- 【請求項1】以下の(a)ないし(d)を含み、命令解
析に使用され、複数の個別命令を含む被試験プログラム
からのエミュレーション状態にマーキングし、被試験プ
ログラムの少なくとも一部に対応する命令のリストをこ
のようなエミュレーション状態から再生する命令解析装
置: (a)前記被試験プログラム中の前記個別命令に対応す
るマークをストアするメモリ; (b)前記被試験プログラムを実行し、前記被試験プロ
グラム中の前記個別命令の実行に対応するエミュレーシ
ョン状態情報を送信するターゲット・プロセッサ; (c)前記ターゲット・プロセッサ及び前記メモリに接
続され、前記ターゲット・プロセッサからの前記エミュ
レーション状態情報を収集するとともに、前記メモリか
ら前記マークを読み出すアナライザ; (d)前記メモリ及び前記アナライザに接続され、前記
アナライザ中に収集される前記エミュレーション状態情
報を解析するため、前記エミュレーション・プロセッサ
による実行に先立って予め定められたコーディング方式
に従って前記個別命令に対応するマークを生成するホス
ト・コントローラ:前記ホスト・コントローラは前記マ
ークを前記メモリ中にストアするとともに、前記アナラ
イザによって収集されたエミュレーション状態情報を前
記被試験プログラムの少なくとも一部についての個別の
命令に対応する命令のリストへとデキューイングし、前
記デキューイングは前記状態情報及び特定の命令に対応
する前記マークに基づいて行われ、特定の命令に対応し
たエミュレーション状態情報についてデキューイングが
生起しようとするときには当該特定の命令に対応したマ
ークが使用される。 - 【請求項2】前記エミュレーション状態情報は、アドレ
ス、データ及びステータス情報を含むことを特徴とする
請求項1記載の命令解析装置。 - 【請求項3】前記エミュレーション状態情報は命令コー
ド情報を含み、前記ホスト・コントローラは前記命令コ
ード情報に関するマークを発生することを特徴とする請
求項1記載の命令解析装置。 - 【請求項4】以下の(a)ないし(d)のステップを設
け、トレースを行って獲得されたところの、被試験プロ
グラムで実行されたそれぞれの命令についてのエミュレ
ーション状態情報に基づいて、実行された命令のリスト
を得る命令解析方法: (a)コードのロケーションを表すマークをそれぞれの
命令に対応付ける; (b)前記マークをストアする; (c)前記トレースを行う; (d)前記トレースによって得られたエミュレーション
状態情報を前記ストアされたマークを参照して逆アセン
ブルする。 - 【請求項5】前記エミュレーション状態情報は、アドレ
ス、データ及びステータス情報を含むことを特徴とする
請求項4記載の命令解析方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/230,807 US5073968A (en) | 1988-08-09 | 1988-08-09 | Method and apparatus for marking emulation analysis states |
US230,807 | 1988-08-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0281140A JPH0281140A (ja) | 1990-03-22 |
JP2886191B2 true JP2886191B2 (ja) | 1999-04-26 |
Family
ID=22866657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1206576A Expired - Lifetime JP2886191B2 (ja) | 1988-08-09 | 1989-08-09 | 命令解析装置及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5073968A (ja) |
EP (1) | EP0354654B1 (ja) |
JP (1) | JP2886191B2 (ja) |
DE (1) | DE68924507T2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5581695A (en) * | 1990-05-09 | 1996-12-03 | Applied Microsystems Corporation | Source-level run-time software code debugging instrument |
US5228039A (en) * | 1990-05-09 | 1993-07-13 | Applied Microsystems Corporation | Source-level in-circuit software code debugging instrument |
US5488688A (en) * | 1994-03-30 | 1996-01-30 | Motorola, Inc. | Data processor with real-time diagnostic capability |
US5446876A (en) * | 1994-04-15 | 1995-08-29 | International Business Machines Corporation | Hardware mechanism for instruction/data address tracing |
TW247949B (en) * | 1994-11-10 | 1995-05-21 | Motorola Inc | Data processor with transparent operation during a background mode and method therefor |
US5941995A (en) * | 1997-05-20 | 1999-08-24 | Hewlett-Packard Company | Reloading state analyzer |
US5938778A (en) * | 1997-11-10 | 1999-08-17 | International Business Machines Corporation | System and method for tracing instructions in an information handling system without changing the system source code |
US5968188A (en) * | 1998-03-10 | 1999-10-19 | Grammar Engine | System for providing real-time code coverage |
DE10021517C1 (de) * | 2000-05-03 | 2002-01-10 | Kuelps Heinz Juergen | Zurückdrängung und Verminderung der Hochtemperatur-Halogen-Korrosion in Verbrennungsanlagen durch den Einsatz von Wirkstoffen sowie Wirkstoff-Mischungen |
US7409711B1 (en) * | 2002-12-24 | 2008-08-05 | The Chamberlain Group, Inc. | Method and apparatus for troubleshooting a security gate system remotely |
US7290174B1 (en) * | 2003-12-03 | 2007-10-30 | Altera Corporation | Methods and apparatus for generating test instruction sequences |
US7403887B1 (en) | 2004-01-14 | 2008-07-22 | Microsoft Corporation | Emulated memory management |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4205370A (en) * | 1975-04-16 | 1980-05-27 | Honeywell Information Systems Inc. | Trace method and apparatus for use in a data processing system |
US4419368A (en) * | 1978-06-05 | 1983-12-06 | Syntex (U.S.A.) Inc. | Naphthoquinone anti-psoriatic agents |
US4694420A (en) * | 1982-09-13 | 1987-09-15 | Tektronix, Inc. | Inverse assembly method and apparatus |
US4488228A (en) * | 1982-12-03 | 1984-12-11 | Motorola, Inc. | Virtual memory data processor |
JPS59133610A (ja) * | 1983-01-19 | 1984-08-01 | Omron Tateisi Electronics Co | プログラマブルコントロ−ラ |
US4636940A (en) * | 1983-03-31 | 1987-01-13 | Hewlett-Packard Company | Logic analyzer using source program or other user defined symbols in the trace specification and the trace listing |
US4636941A (en) * | 1983-05-24 | 1987-01-13 | Iwatsu Electric Co., Ltd. | Method and apparatus for analysis of microprocessor operation |
US4598364A (en) * | 1983-06-29 | 1986-07-01 | International Business Machines Corporation | Efficient trace method adaptable to multiprocessors |
JPS60238944A (ja) * | 1984-05-14 | 1985-11-27 | Mitsubishi Electric Corp | トレ−ス用記憶装置 |
JPS62214443A (ja) * | 1986-03-17 | 1987-09-21 | Fanuc Ltd | エミユレ−シヨン実行方法 |
FR2598001B1 (fr) * | 1986-04-23 | 1990-11-02 | Dassault Electronique | Dispositif pour le controle de logiciels industriels, en particulier de logiciels operant en temps reel, et procede correspondant |
US4802165A (en) * | 1986-10-08 | 1989-01-31 | Enteleki, Inc. | Method and apparatus of debugging computer programs |
-
1988
- 1988-08-09 US US07/230,807 patent/US5073968A/en not_active Expired - Fee Related
-
1989
- 1989-06-26 EP EP89306439A patent/EP0354654B1/en not_active Expired - Lifetime
- 1989-06-26 DE DE68924507T patent/DE68924507T2/de not_active Expired - Fee Related
- 1989-08-09 JP JP1206576A patent/JP2886191B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0354654A3 (en) | 1991-07-17 |
DE68924507D1 (de) | 1995-11-16 |
DE68924507T2 (de) | 1996-04-04 |
EP0354654B1 (en) | 1995-10-11 |
JPH0281140A (ja) | 1990-03-22 |
US5073968A (en) | 1991-12-17 |
EP0354654A2 (en) | 1990-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4190114B2 (ja) | マイクロコンピュータ | |
EP0241946B1 (en) | Information processing system | |
EP1130518B1 (en) | Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use thereof | |
US6915416B2 (en) | Apparatus and method for microcontroller debugging | |
KR100350568B1 (ko) | 디버그기능을수행하기위한데이타처리시스템및방법 | |
JP3846939B2 (ja) | データプロセッサ | |
US6052774A (en) | Apparatus and method for identifying exception routines indicated by instruction address issued with an instruction fetch command | |
US20020147965A1 (en) | Tracing out-of-order data | |
JP2776602B2 (ja) | 試験システムおよび命令実行シーケンス判定方法 | |
JP2886191B2 (ja) | 命令解析装置及び方法 | |
US6247146B1 (en) | Method for verifying branch trace history buffer information | |
US6173395B1 (en) | Mechanism to determine actual code execution flow in a computer | |
JP2006127553A (ja) | プログラムのテスト及びデバッギングが容易な中央処理装置 | |
US20050273666A1 (en) | Information processing apparatus and test method for programs | |
US11409636B2 (en) | Processor including debug unit and debug system | |
US5185745A (en) | Scan path diagnostic method | |
US20030061020A1 (en) | Test and debug processor and method | |
US20060259750A1 (en) | Selectively embedding event-generating instructions | |
US20020129336A1 (en) | Automatic symbol table selection in a multi-cell environment | |
EP1209567B1 (en) | Method and system for real time debugging a source program, particularly for DSP | |
US20050086454A1 (en) | System and methods for providing a debug function built-in type microcomputer | |
CN115758963A (zh) | 芯片eda仿真中打印信息的处理装置、方法及系统 | |
US7886194B2 (en) | Event-generating instructions | |
KR950001057B1 (ko) | 마이크로 프로세서(micro processor) | |
JPH06282599A (ja) | 論理検証方法および装置 |