JPH0281140A - 命令解析装置及び方法 - Google Patents

命令解析装置及び方法

Info

Publication number
JPH0281140A
JPH0281140A JP1206576A JP20657689A JPH0281140A JP H0281140 A JPH0281140 A JP H0281140A JP 1206576 A JP1206576 A JP 1206576A JP 20657689 A JP20657689 A JP 20657689A JP H0281140 A JPH0281140 A JP H0281140A
Authority
JP
Japan
Prior art keywords
block
memory
list
mark
under test
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.)
Granted
Application number
JP1206576A
Other languages
English (en)
Other versions
JP2886191B2 (ja
Inventor
D Mollison Robert
ロバート・ディー・モリソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0281140A publication Critical patent/JPH0281140A/ja
Application granted granted Critical
Publication of JP2886191B2 publication Critical patent/JP2886191B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing 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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野〕 本発明はマイクロプロセッサ・ベース・システムの開発
に使用されるエミュレーション・ミステム(エミュレー
タ)に関し、とくにデキューイング(dequeuin
g)動作及びトレース動作中に解析の目的でエミュレー
タ内で使用されるエミュレーション解析ステートにメモ
リ中で追加マーキングを与えるための技術とハードウェ
アに関する。
[従来技術及びその問題点] エミュレータは何かハードウェアができ上がる以前にソ
フトウェア(ターゲット・プログラム)をロードして実
行させる手段を設計者に提供することによって、マイク
ロプロセッサ・ベース・システム(ターゲット・χシス
テム)の開発を支援するものである。エミュレータはタ
ーゲット・システムの一部または全部を置き換えること
ができる。
エミュレータはシステムの開発のどの時点でもターゲッ
ト・システムに接続できる。第6図はマイクロプロセッ
サlOと、メモリ12と、入出力装置14とを有する一
般的なマイクロプロセッサ・ベース・システムのブロッ
ク図である。第7図はエミュレータ18と、ホスト・コ
ンピュータ20とユーザ・ターミナル22とを有するエ
ミュレーション・システムのブロック図である。第8図
はマイクロプロセッサ・ベース・システムに接続された
エミュレータのブロック図である。エミュレータはター
ゲット・システム内のマイクロプロセッサ用のソケッわ
りに挿入され、ホスト・コンピュータ2oニよって支援
される。エミュレータはターゲット・システムにかわっ
てマイクロプロセッサ機能及びメモリの一部を提供する
。と言うのも、ユーザはターゲット・システムのメモリ
機能の一部又は全部を持っていないかもしれないからで
ある。開発が完成に近づくにつれて、エミュレータによ
って実行される機能は次第にターゲット・システムに移
行される。開発中、エミュレータはターゲット・ソフト
ウェアの問題についてのトラブルシューディングに有効
な通常は利用できないマイクロプロセッサ制御を更に追
加提供する。このような制御としては、シンクル・ステ
ップ動作、あるメモリ・アドレスについてのブレーク・
ポイント、不適正なメモリ・アドレスについてのブレー
ク・ポイント、内部レジスタの表示と修正等がある。
有用なマイクロプロセッサ制御のひとつに「命令解F?
 (instruction analysis) J
と呼ばれるものがある。命令解析は、ターゲット・プロ
グラムの実行中のステートの集まりを獲得する「トレー
ス」と、マイクロプロセッサによるター答ト・プログラ
ムの実行の後、獲得されたステートの集まりの解析であ
る逆アセンブルから成っている。命令解析は実際の命令
の過程を再現させようとする。標準的な獲得のやり方で
は、実行に先立ってフェッチされた命令を調べてステー
ト情報を得る。この情報は通常、単一のマイクロプロセ
ッサ・サイクルのアドレス、データ及び状態情報を含む
。しかし、フェッチされる命令と実行される命令の間に
は著しい差があり得る。命令のフェッチから命令の実行
を再現させようとするプロセスは[デキューイング(d
equeuing)と呼ばれる。
従来教示されているデキューイング方法のひとつは「ハ
ードウェア・デキューイング」と呼ばれる。このデキュ
ーイング法は、マイクロプロセッサのキューを回路によ
って再現させようとするではない。各ハードウェア・デ
キューイング部はそのタープ1.ト・プロセッサのアー
キテクチャに依拠しており、その結果エミュレータをう
まく動作させるという困難な作業は新たなエミュレータ
の設計ごとにくりかえされる。この設計に必要なマイク
ロプロセッサ・アーキテクチャに関する重要な情報はし
ばしば入手できず、他の多くのプロセッサは上述のやり
方では再現できないキーを持っている。
従来の別のデキューイング法は「ソフトウェア・デキュ
ーイング」として知られている。このデキューイング法
では、トレースで捕獲された命令フェッチ情報をデコー
ドすることによ、てマイクロプロセッサのキューを再現
しようとする。この方法はハードウェア・デキューイン
グ法よりも、実現のコストが大幅に安いが、正確さの点
で重大な問題があった。不正確になる主要な理由は、分
岐命令や条件付き分岐命令のデキューイングにある。
というのは、ブリフェッチ・キューを持つマイクロプロ
セッサ内で分岐が起こるといくつもの命令フェッチが使
われなくなってしまい、その結果命令フェッチの順序と
は異なる順序で命令が実行されるからである。
別の問題の原因として、命令には単語長、倍長語長、又
は長語長(4倍語長)のものがあり、また命令にはそれ
に関連するアーギュメント(オペランド)をもつものが
ある(たとえば、定数加算命令のような)ということが
ある。命令フェッチ情報の取り込みは、一般にユーザが
ターゲット・プログラム内に選択した位置から始まるの
で、最初の語が命令の先頭の語であるかどうかを判断す
る方法がなかった。最初の語が命令の先頭の語ではない
場合も、デキューイング部はそれにはかまわずそれを命
令の先頭語であると解釈してしまう。
その結果、しばしば、デコードされた命令フェッチ情報
がプロセッサによってターゲ、)・プログラム中で実際
に実行された命令とはほとんど似ても似つかないものに
なってしまう。その結果、ソフトウェア・デキューイン
グ法はハードウェア・デ[発明の目的] 本発明は上述した従来技術の問題点を解消し、正確な命
令解析を安価に行うことを目的とする。
[発明の概要] 本発明の一実施例によれば、ターゲット・プログラムか
らの命令に対応する所定のコード化方式に従って決定さ
れたマークを保持する追加メモリをエミュレータに備え
ることによってエミュレータ内の命令解析を改良してい
る。このマークは付加的なステート情報を命令解析中に
エミュレータのホスト・コントローラに与え、ターゲッ
ト・プロセッサがターゲット・プログラムを実行中に生
成されたステート情報を、ターゲット・プロセッサ手段
によって実行されたテスト・プログラムに対応するステ
ートのリストへもっと正確に変換する。
このマーキングシステムは任意のプロセッサに応用でき
、また最小の追加コストで最大の結果を達成できる任意
のコーディング方式に従ってよい。
マーキング用のメモリとそのために必要なソフトウェア
のために余計にかかるコストは小さいので、本発明は従
来の比較的高価なハードウェア・デキューイング法より
もすぐれ、しかもその結果得られるトレース情報の精度
はハードウェア・デキューイング方式に近いので、従来
のソフトウェア・デキューイング法よりもまたすぐれて
いる。
ミュレータの好適な実施例のブロック図である。
以下に各ブロックの説明を行う。
ホスト・コントローラ・デコーディング・ブロック24 このブロックはホスト・コントローラ・コマンドを受は
取ってエミュレータ内の種々のブロック用の適切な信号
を生成する。例えば、マークをロードせよというコマン
ド(load mark command)がこのプロ
フックに送られると、このブロックはデュアル・ボート
・アクセス制御ブロック34に対しては書込みストロー
ブを、アドレス選択ブロック40に対してはマーク・ア
ドレス・ブロック信号を、またマーク・メモリ・ブロッ
ク38に対してはイネ−プル信号をそれぞれ生成する。
このブロックは更に、制御レジスタ及びステータス・バ
ッファ28からステータスを読出し、また同じブロック
の制御レジスタへ情報を書込むことができる。
ROMモジュール26(エミュレータ固有)このブロッ
クには、エミュレータの動作に必要なエミュレータ固有
の全てのソフトウェアが入っている。例えば、このRO
Mにはマーキング固有の全てのソフトウェアが、ブレー
クを起こしレジスタを読み出しエミュレータの構成を定
めるためのソフトウェアと共に入っている。
制御レジスタ及びステータス・バッファ28このブロッ
ックはエミュレータを種々の動作モードに構成するエミ
ュレータ制御レジスタを含んでいる。例えば、これには
リセット信号が含まれており、この信号がアサートされ
るとエミュレータがリセットされる。このブロックには
更にステータス・レジスタも入っている。このレジスタ
はホスト・コントローラ・デコーディング・ブロック2
4が随時読み出してエミュレータがどの状態にあるか(
例えばフォアグラウンドで動作中であるとか、リセット
されてバックグラウンド状態にある等)を判定すること
ができる。
解析部30 このブロックはプロセッサ52 (80C196)が出
したアドレス、データおおびステータスを受は取って記
憶し後に検査する。このブロックは更に、マーク・メモ
リから出され、命令コードのロケーションに関する重要
な情報を提供するマークを受は取る。
ホスト・データ・バッファ/ラッチ32このブロックは
デュアルポート・メモリ・アクセス制御ブロックと共働
して、ホスト・コントローラが、本実施例では80C1
96であるプロセッサ52がアクセス可能であるものと
同じメモリをアクセスできるようにする。このブロック
は適当な時点で利用できるようにホスト・コントローラ
・データを各種のメモリ・ブロックにバッファしラッチ
する。
デュアル・ポート・アクセス制御ブロック34このブロ
ックはホスト・コントローラとプロセッサ52からのア
クセスを仲裁して、双方が例えばエミュレーション・メ
モリ36やモニタ・メモリ42のような各種のメモリ・
ブロックへアクセスできるようにする。このブロックは
メモリ・ブロックへの読み出しストローブ及び書き込み
ストローブを生成し、かつ要求元のブロックへ戻す必要
なタイミング・ウェイト信号を生成する。
エミュレーション・メモリ3に のブロックはプロセッサがフォアグラウンド・エミュレ
ーション・メモリで動作中に使用されるメモリを含んで
いる。
マーク・メモリ38 このブロックはマーク・タグを保持するために使用され
るメモリを含んでいる。このメモリにロードするのはホ
スト・コントローラ・デコーディング・ブロック24だ
けであり(80C196>プロセッサ52はこれに書込
むことはできない)、読み出しを行うのは解析部30だ
けである。ホスト・コントローラ・デコーディング・ブ
ロツック24はマーク・メモリ38の特定のアドレスに
マーク・タグをロードするので、プロセッサ52が同一
のアドレスを出力すると、所望のマーク・タグが解析部
30へ送り出される。マーク・メモリ38は、エミュレ
ータが初期化されたとき、またはエミュレーション・メ
モ+J・ロケーションがマークされた後に変更されると
、空のタグ値(マークが付けられていない)に初期化さ
れる。
アドレス選択ブロック40 このブロックはデュアル・ポート・アクセス制御ブロッ
ク34と共働して、適切な時点に妥当なアドレスを各種
のメモリ・ブロックへ供給する。このブロックは書き込
むべき正しいメモリ・ブロック及びそのブロックの適切
なアドレスを選択する。
モニタ・メモリ42 このブロックはプロセッサがバックグラウンド・エミュ
レーション・メモリで動作中に使用されるメモリを含ん
でいる。このメモリはモニタ・コードを含み、またホス
ト・コントローラ・デコーディング・ブロック24との
通信に使用される通信要メモリも含んでいる。
ようにする。
モニタ・マーク・メモリ44 このブロックはモニタが適正に動作するために用いられ
るマークを含んでいる。このメモリ44内の信号はモニ
タにある間のフォアグラウンド・メモリへのアクセスを
制御し、かつモニタ(ツクツクグラウンド)状態から脱
は出ることも制御する。
カバレージ・メモリ4に のメモリ・ブロックはアドレス・ロケーション・アクセ
ス・ステータスに関する情報を含んでいる。これはホス
ト・コントローラ・デコーディング・ブロック24によ
ってリセット可能である。
プロセッサ・データ・バッファ/ラッチ48このブロッ
クはデュアル・ボート・メモリ・アクセス制御ブロック
34と共働して、80C196プロセツサ52が、ホス
ト・コントローラ・デコーディング・ブロック24がア
クセスできるメモリと同じメモリをアクセスできるよう
にする。このブロックはプロセッサ・データを各種メモ
リ・ブロックにバッファしラッチして、適切な時点で使
用できるターセプトして、例えばデュアル・ポート・ア
クセス制御ブロック34や解析aB30用のタイミング
・ストローブのような、エミュレータ全体を通して利用
できる更に適切なタイミングと機能を有するストローブ
を生成する。
プロセッサ52 (80196) これはターゲット・プログラム、モニタ及び他の機能を
実行する。ターゲット・プロセッサである。
たりあるいは80C196プロセツサ52の現在の状態
の変更を行うことができる。中断は、モニタ(ツクツク
グラウンド)状態を脱は出るときに現在の状態を正しく
復元できるように注意深く行われる。
ポート複製ブロック54 このブロックはプロセッサ52の内部機能を複製するこ
とによって、80C196プロセツサ・ボート・ピンの
動作をシミュレートする。これによって、エミュレータ
のユーザ・プローブは機能上はあたかも80C196プ
ロセツサ52のように動作でき他の機能は実際には内部
的にはエミュレータ中で行われている。
ユーザ・プローブ・バッファ/ラッチ58このブロック
はユーザのターゲット・システム(エミュレータが挿入
されるシステム)上に存在するコードの実行ができるの
に必要なメモリ・アドレス/データ・バス制御を行う。
これはユーザのターゲット・システムに挿入する物理的
なユニットである。ユーザはそのターゲット・システム
から80C196プロセツサを取りはずし、その代わり
にエミュレータのユーザ・プローブ60を差し込む。
マーキングハードウェアの好適な実施例はマークを生成
しまたデコードするために4つの別個のソフトウェア・
ブロックを使用する。オプション・モジュールはマーク
を作成する際に使用される種々のオプションを定義する
ために用いられる。マークを生成するため、次の2つの
モジュールが使用される。すなわち、アドレスの適当な
範囲をテストするための構文モジュール(syntax
 module)と、命令コード情報を抽出し、マーク
を生成しかつメモリ中の適切なロケーションにマークを
記憶するための状態機械モジュールである。マーキング
・ソフトウェア逆アセンブリ・モジュールは第4のモジ
ュールであり、マークを抽出し、それを使って逆アセン
ブルされた命令コード情報を作成するために用いられる
第2図はオプションモジュールXのフローチャートを示
す。このモジュールは解析ステータスの逆アセンブルに
先立って逆アセンブラによって呼出されて、ユーザが選
択した各種オプションを実際に設定する。ユーザがモジ
ュールをアクセスする(ブロック62)と、オプション
変数をチエツクし、逆アセンブリ構成に変化が生じたか
否かの判定を行う(ブロック64)。オプション変数が
セットされていない場合は、逆アセンブリ構成を変更せ
ず(ブロック68)、オプション・モジュールを集結す
る(ブロック70)。オプション変数がセットされてい
る場合は変数を検査し、選択されたオプションが正しい
か否かの判定がなされる(ブロック66)。オプション
変数が不当にセットされている場合は、逆アセンブリ構
成は変更、せず(ブロック72)、ユーザに対してエラ
ーが表示され、オプション・モジュールを終結する(ブ
ロック74)。
オプション変数が正しくセットされている場合は、適切
な逆アセンブラ・フラグ変数を変更して(ブロック76
)、オプション・モジュールを終結する(ブロック78
)。
第3図は構文モジュールのフローチャートを示している
マーク・コマンドが実行されると構文モジュールが呼出
される(ブロック80)。先ずコマンドのパラメタを獲
得しくブロック82)、正当アドレス範囲についてチエ
ツクする。(ブロック84)。
アドレス範囲が正当でない場合は、コマンドをアボート
し、ユーザに対してエラーを指示し、構文モジュールを
集結させる(ブロック86)。アドレス範囲が正当であ
る場合は、マーキング・ソフトウェア状態機械モジュー
ルを呼出す(ブロック88)。
状態機械モジュールが状態機械モジュール内の問題によ
ってエラー状態を戻した場合は、ユーザに対してエラー
を指示してこのコマンドをアボートする(ブロック90
)。状態機械モジュールがエラーを戻さない場合は、状
態機械モジュールはアドレス範囲についてメモリ内に適
切なマークを置いた後に戻る。構文モジュールはメモリ
の更に別の範囲がマークされるように指定されているか
否かを判定する(ブロック92)。メモリの更に別の範
囲がマークされることになっている場合は、この範囲の
正当性を判定する(ブロック84)。メモリの更に別の
範囲をマークすることになっていない場合は、構文モジ
ュールはユーザに対してエラーがないことを表示して集
結する(ブロック94)。
第4図はマーキング・ソフトウェア状態機械モジュール
のフローチャートを示す。このモジュールが前述の構文
モジュールによって呼出される(ブロック96)と、マ
ーク・ポインタをマークされるべきアドレスについての
先頭アドレス、すなわちスタート・アドレスに初期設定
する(ブロック98)。読み出しポインタもスタート°
アドレスに初期設定する(ブロック100)。命令コー
ド情報を、読み出しポインタによって指示されたメモリ
ロケーションから抽出しくブロック102)、ルックア
ップ・テーブルを参照することによって適切なマーク・
コードを生成する。(ブロック104)。このルックア
ップ・テーブルはエミュレーション解析ステートのマー
キングを行うため予め定められたコーディング・スキー
マを含んでいる。本実施例については、プロセッサは最
大サイズの命令フェッチの場合2バイトを使用するもの
と想定され、3ビツトが以下のような定義でマーキング
のために用いられる。
00〇−空(NIILL)(これまでにマーキングされ
ていない、またはこれまでに作用を受けていない) 001− 低位バイトだけが命令コードである01〇−
高位バイトだけが命令コードである011− 両バイト
とも命令コードである100− どのバイトも命令コー
ドではないがマーキングされている(オペランド) 残りの定義は利用されない。命令コードが正しくない場
合は、マーク・コマンドはアボートされ、エラーが構文
モジュールに戻される(ブロック106)。命令コード
が正しいものである場合は、参照されたマークをマーク
・メモリ中のマーク・ポインタのロケーションにロード
する(ブロック108)。
抽出された命令コード情報が正当な非命令コード(つま
りオペランド)である場合は、非命令コード・マーク情
報がマーク・メモリ中のマーク・ポインタの指すメモリ
・ロケーションにロードされる(ブロック108)。ポ
インタをルックアップ・テーブルに基づく適切な数値だ
けインクリメントする。これらのインクリメント量は命
令コードとオペランド(もしあれば)のバイト・サイズ
によって決まる(ブロック110)。次にポインタをア
ドレス範囲と比較して、マーク・コマンドを終結すべき
か否かが判定される(ブロック112)。アドレス範囲
が終了していない場合は、状態機械モジュールは、読み
出しポインタの現在位置によって指定された読み出し位
置から命令コード情報を抽出するという以前のステップ
に戻り(ブロック102)、上に述べたのと同様に動作
を継続する。アドレス範囲が終了している場合は、状態
機械モジュールはユーザに対して首尾よく完了した旨を
指示し、マーク・コマンドと状態機械モジュールを終結
して、構文モジュールに戻る(ブロック114)。
第8図はマーキング・ソフトウェア逆アセンブリ・モジ
ュールのフローチャートである。このモジュールはトレ
ースが実行されるときにユーザによって呼出される(ブ
ロック116)。逆アセンブリ・モジュールは単一のス
テートを逆アセンブルするために使用され、る。逆アセ
ンブリ・モジュールは、一連のステートを逆アセンブル
するために他のモジュールからくり返し呼出される。逆
アセンブラが先ず初期状態にされる(ブロック118)
。オプション・フラグ・セツティングを抽出して検査し
、マーキングがこのコマンドについてイネーブルされて
いるかどうか判定する(ブロック120)。マーキング
がイネーブルされていない場合は、ソフトウェア・デキ
ューイング(又はバス・モード逆アセンブラ)を適用し
て命令コード又はオペランドを判定しくブロック122
)、また逆アセンブリ・モジュールを終結させる(ブロ
ック124)。このアドレスに対してマーキングがイネ
ーブルされている場合は、マーク情報が抽出される(ブ
ロック126)。
抽出されたマーク情報がこの特定のアドレスにマークが
存在しないことを示している場合は、前述のようにバス
・モード逆アセンブリが適用される(ブロック122)
。抽出されたマーク情報が、この特定のアドレスにマー
クが存在することを示している場合は、マークを検査し
、それが非命令コード・マークか正規命令コード・マー
クであるか、特別命令コード・マークであるかの判定を
行う(ブロック126)。マークが非命令コード・マー
クである場合は、オペランド・フェッチ・ステータスヲ
示して(ブロック128)、モジコールを終結する(ブ
ロック130)。マークが例えば空命令コードマークの
ように特別命令コード・マークである場合は、判定及び
命令コードを示すために特別マーク逆アセンブリを適用
しくブロック132)、モジュールを終結させる(ブロ
ック134)。マークが標準の命令コード・マークであ
る場合は、命令コード逆アセンブリを適用して逆アセン
ブルした命令コードヲ表示しくブロック136)、モジ
コールを終結させる。(ブロック138)。
以下に示すマーキングの例では、コード(Cで書かれて
いる)のトレースと、次に実際に実行された命令シーケ
ンスと、マーキングをイネーブルにしたときのトレース
・リスト表示と、従来のソフトウェア・デキューイング
法と同様な、マーキングをディスエーブルしたときのト
レース・リスト表示を示す。
以下に示した2つのトレース・リストは同一のプロセッ
サ・ステップ動作のリストであり、第1のリストはマー
キングをイネーブルしたものであり、第2のリストはマ
ーキングをディスエーブルしたものである。トレースさ
れているコードを以下に示す。
CMPB IC1t41; レジスターCのバイトを値
41)1と比較 JE  420  ;等しい場合はアドレス420にジ
ャンプ CMPB IC,$42; レジスターCのバイトを値
41)1と比較 JB  433  ;等しい場合はアドレス433にジ
ャンプ SJMP 43F  ;そうでない場合はアドレス43
Fにジャンプ 42D LDB  IO,Jt12 ; レジスターD
に値12HをロードLD  IB、1t0512; 3
吾レジスター81こ値512Hをロード 5CALL 443  ・アドレス443にあるルーチ
ンを呼出し 443 LD  20.$601; !吾しジスタ20
1ご値601Hをロード 実際の命令シーケンスは以下の様になる。
CMFB  IC,1t41  ; JR 42OLDB   10.t12 LD   IBJO512 SCALL  443 443 LD 20、$60ル ジスタlCのバイトを値41H と比較 比較が成功した場合は420に ジャンプ レジスタに値12)1をロード 語レジスタに値512Hをロード アドレス443にあるルーチン を呼出し 語レジスタ20に値$60180− 7−キングをイネーブルにした場合のトレース141u
>tl −am 4..16      ;マーキング
をイネーブルしてトレースを表示させるコマンド行 ア
ドレス、H80C196ニモニツク、H4041Cワー
ド命令フェッチ    :先行している命令からのフェ
ッチ5 0418      JB  0420   
       :042Dヘノジヤンプを示す0へのジ
ャンプの後ろに、プリフェッチバッファ中で;パージさ
れるフェッチが続くことに注意り10に値12Hをロー
ド中 ド・レジスタIBに −F中 443Hをコールする ts  osp^     ワード書込み=0436 
    :リターン・アドレスをプツシ易16 044
3      LD  20.婁0601      
  ;アドレス0443Hの命令を実行中マーキングを
ディスエーブルした場合のトレース例u>tl −06
4,,16:マーキングをディスエーブルしてトレース
棄表示させるコマンド−行 アドレス、H1lOc19
6ニモニフク、H4041CAND  OD、OF、[
IC]       :誤り一命令コードではないマー
キングをイネーブルにした場のトレース・リストは、実
行された実際の命令を適切な順序で極めて正確に表現し
ている。マーキング・タグはターゲット・プロセッサ装
置によって実行されるテスト・プログラムに対応する状
態リストへの変換中に使用するための追加状態情報を提
供する。
マーキングをイネーブルにした場合のトレース・リスト
とは対称的に、マーキングをデイステーブルにした場合
のトレース・リストは、状態情報を実行された命令のリ
ストへと正しく変換するための充分な情報が不足してい
る。マーキングをデイステーブルしたトレースは、行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:デュア
ル・ボート・アクセス制illブロック36:エミユレ
ーシヨン・メモリ 38:マーク・メモリ 40ニアドレス選択ブロック 42:モニタ・メモリ 44:モニタ・マーク・メモリ 46:カバレージ・メモリ 48:プロセッサ・データ・バッファ/ラッチ50:プ
ロセッサ・ストローブ発生部 52:プロセッサ 54ニブレーク制御ブロツク 56:ポート複製ブロック 58:ユーザ・プローブ・バッファ/ラッチ60:ユー
ザ・プローブ G

Claims (2)

    【特許請求の範囲】
  1. (1)命令解析に使用するため下記(A)ないし(D)
    を含み被試験プログラムからのエミュレーション解析状
    態をマーキングする装置: (A)前記被試験プログラム中の個々の命令に対応する
    マークを保持するメモリ手段; (B)前記メモリ手段に接続され前記被試験プログラム
    を実行するターゲット・プロセッサ手段:前記ターゲッ
    ト・プロセッサ手段によってフェッチされ前記対応する
    マークを含む状態情報のリストが生成される; (C)前記ターゲット・プロセッサ手段と前記メモリ手
    段に接続され前記生成される状態情報のリストを獲得す
    るアナライザ手段;および (D)前記メモリ手段と前記アナライザ手段に接続され
    、前記被試験プログラム命令を解析して予め定められた
    コーディング法に則って前記対応するマークを判定し、 前記対応するマークを前記メモリ手段にストアし、前記
    生成された状態情報のリストを前記ターゲット・プロセ
    ッサ手段によって実行された前記被試験プログラムに対
    応する状態情報のリストに変換するホスト・コントーラ
    手段。
  2. (2)下記(A)ないし(G)を含み被試験プログラム
    とともに使用するためエミュレーション解析状態をマー
    キングする方法: (A)前記被試験プログラムの命令を解析し予め定めら
    れたコーディング法に則って一組の対応するマークを定
    める; (B)前記対応するマークをメモリにストアする; (C)前記被試験プログラム中の個々の命令に対応する
    マークを保持する; (D)前記被試験プログラムを実行する; (E)ターゲット・プロセッサ手段によって実行され前
    記対応するマークを含む獲得される状態情報のリストを
    生成する; (F)前記生成された状態情報のリストを獲得する;お
    よび (G)前記生成された状態情報のリストを前記ターゲッ
    ト・プロセッサ手段によって 実行される前記被試プログラムに対応する状態のリスト
    に変換する。
JP1206576A 1988-08-09 1989-08-09 命令解析装置及び方法 Expired - Lifetime JP2886191B2 (ja)

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 true JPH0281140A (ja) 1990-03-22
JP2886191B2 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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5228039A (en) * 1990-05-09 1993-07-13 Applied Microsystems Corporation Source-level in-circuit software code debugging instrument
US5581695A (en) * 1990-05-09 1996-12-03 Applied Microsystems Corporation Source-level run-time 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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
EP0354654A2 (en) 1990-02-14
US5073968A (en) 1991-12-17
JP2886191B2 (ja) 1999-04-26
DE68924507T2 (de) 1996-04-04
DE68924507D1 (de) 1995-11-16
EP0354654B1 (en) 1995-10-11
EP0354654A3 (en) 1991-07-17

Similar Documents

Publication Publication Date Title
US6223144B1 (en) Method and apparatus for evaluating software programs for semiconductor circuits
KR100439781B1 (ko) 데이터프로세서와그동작방법,그디버깅동작실행방법및그중단점값수정방법
US6915416B2 (en) Apparatus and method for microcontroller debugging
US4782461A (en) Logical grouping of facilities within a computer development system
US5345580A (en) Microprocessor device and emulator device thereof
JP4190114B2 (ja) マイクロコンピュータ
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
EP0762276B1 (en) Data processor with built-in emulation circuit
US5737516A (en) Data processing system for performing a debug function and method therefor
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
EP0762277A1 (en) Data processor with built-in emulation circuit
US7139936B2 (en) Method and apparatus for verifying the correctness of a processor behavioral model
JPH0281140A (ja) 命令解析装置及び方法
US7428661B2 (en) Test and debug processor and method
KR20060108662A (ko) 테스트 프로그램 디버그 장치, 반도체 시험 장치, 테스트프로그램 디버그 방법, 및 시험 방법
EP0762278A1 (en) Data processor with built-in emulation circuit
US20060259750A1 (en) Selectively embedding event-generating instructions
CN117892661A (zh) 一种基于risc-v处理器验证的模拟器比对系统
US7110934B2 (en) Analysis of the performance of a portion of a data processing system
US7886194B2 (en) Event-generating instructions
KR100189977B1 (ko) 트레이스기능을 구비한 에뮬레이터시스템과 그 트레이스방법
JPH03252731A (ja) マイクロプロセッサ
JPS6325742A (ja) トレ−ス機能付マイクロプロセツサ
JPH08241225A (ja) 評価装置
JPH10326188A (ja) リソース競合チェック装置、アセンブル装置、リンク装置、命令パイプラインシミュレーション装置、リソース競合チェック方法、およびリソース競合チェックプログラムを記録した媒体