JPH02235149A - 試験システムおよび命令実行シーケンス判定方法 - Google Patents

試験システムおよび命令実行シーケンス判定方法

Info

Publication number
JPH02235149A
JPH02235149A JP2031294A JP3129490A JPH02235149A JP H02235149 A JPH02235149 A JP H02235149A JP 2031294 A JP2031294 A JP 2031294A JP 3129490 A JP3129490 A JP 3129490A JP H02235149 A JPH02235149 A JP H02235149A
Authority
JP
Japan
Prior art keywords
instruction
processor
instructions
program
fetched
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
JP2031294A
Other languages
English (en)
Other versions
JP2776602B2 (ja
Inventor
David C Mueller
ディビッド・チャールズ・ミュラー
Steven R Williams
スティーブン・レイモンド・ウィリアム
Nabil M Abu-Jbara
ナビル・モハメド・アブジャラ
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 JPH02235149A publication Critical patent/JPH02235149A/ja
Application granted granted Critical
Publication of JP2776602B2 publication Critical patent/JP2776602B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3636Debugging of software by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3644Debugging of software by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3648Debugging of software using additional hardware
    • G06F11/3652Debugging of software using additional hardware in-circuit-emulation [ICE] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明はプロセッサの動作をモニタする試験装置に関す
るものであシ、特に複数のプログラム命令を単一の命令
フェッチにより取出す能力を備えたプロセッサの逐次的
なプログラム実行を追跡(トレースとも言う)する装置
に関するものである。
〔従来技術およびその問題点〕
試験装置の分野Kおいて、プロセッサの命令フェッチ・
サイクル中に複数のプログラム命令を取出すプロセッサ
が順番に行うプラグラム実行をモニタすることが問題と
なっている。たとえば32ビット・プロセッサの多くは
32ピット幅のデータ・バスを使ってプロセッサの各命
令フェッチ・サイクル中に2つの16ビット命令を取出
している。プロセッサはプログラム命令を主として順番
に実行しそれによシプログラム命令フェッチ・サイクル
数が命令数の半分しか必要でないので、この動作によっ
て32ビット・プロセッサの効率が向上する。このよう
な構成では、プログラム命令のシーケンス中にジャンプ
操作に遭遇した場合の或る種のプロセッサが実行するプ
ログラム命令のシーケンスを正確に追跡することは困難
である。
ジャンプ動作が発生すると、プロセッサは命令バソファ
から残シのプログラムを消去して(flush)プログ
ラム命令を異なるアドレスからフェッチし始める。この
異なるアドレスからの最初のプログラム命令フェッチに
当って、後半の16ビットだけが必要なときでも常K命
令を32ビット分得る、つ″1シ常にフルワード境界に
整列した命令フェッチを行なうように設計することがあ
る。試験機器は取出された2つの命令のうちのどれがジ
ャンプ動作の目標であるかを判断することができない。
したがって、各命令フェッチ・サイクル中に複数のプロ
グラム命令を取出すプロセッサにおいては、現在入手可
能な試験装置は、どちらの命令がプロセッサにより実際
に実行され、どの命令が命令バッファに一時的に格納さ
れるがジャンプ命令の実行の直後には使用されないか、
を区別することができない。
〔発明の目的〕
本発明は上述した従来技術の問題点を解消し、このよう
な動作をするプロセッサについても命令実行を正確K追
跡できるようにすることを目的とする。
〔発明の概要〕
上述の問題は複数の命令を一度にフェッチできるプロセ
ッサの動作をモニタする試験装置により解決され、・こ
の分野での技術的進歩が達成される。
この試験装置はプログラム・メモリからの命令フェッチ
をモニタするものである。本発明の一実施例においては
、試験装置はプロセッサがジャンプ動作を実行したとき
を検出し、プロセッサがプログラム・メモリから取出し
たいくつかのプログラム命令の一つの代りにプレーク・
ポイント( breakpoint)命令を挿入するこ
とによシジャンプ動作の目標アドレスを判定する。この
命令の置換は、ジャンプ命令の実行後、命令フェッチ・
サイクルの一部として、プロセッサ・データ・バス上に
フレーク・ポイント命令を取出された命令のひとつの代
シに強制的に入れてやる、命令ジャミング回路(ins
truction jamming c,ircuit
 )によシ行われる。これによシブレーク・ポイント動
作が実行された場合は、ジャンプ動作の目標アドレスは
命令メモリから取出されたプログラム命令のうちのブレ
ーク・ポイント命令で置換えられた命令を含んでいるア
ドレス位置である。この場合には、試験装置はこのブレ
ーク・ポイント命令の実行に応答して、プログラム・メ
モリから最初に取出されてブレーク・ポイント命令で置
換されたプログラム命令を元にもどす。したがって、こ
のプレーク・ポイント命令は、実行されたならばこのア
ドレスがジャンプ命令の目標アドレスであることを示す
フラグとして働く。プレーク・ポイント命令がプロセッ
サによシ実行されなければ、これはジャンプ命令目標ア
ドレスが、取出されたプログラム命令のうちの他のもの
を含んでいるロケーションだからである。したがって、
このプレーク・ポイント命令の実行および不実行は、ジ
ャンプ命令の結果プロセッサがフェッチしたことによっ
て取出されたプログラム命令のうちのどれが実際に実行
されたかを試験装置に対して示すフラグとして働く。こ
のようにして、試験装置は試験対象のプロセッサが実際
に実行するプログラム命令のシーケンスを工確に記録す
る。
〔発明の実施例〕
試験装置の分野において、各プロセッサ命令フェッチ・
サイクル中に複数の命令を取出すプロセッサにより行わ
れる順次的プログラム実行をモニタすることが問題とな
っている。多くのプロセッサでは、32ビット幅のデー
タ・バスを使って、そのプロセッサの各命令フェッチ・
サイクル中に2つの16ビット命令を取出す。この動作
をすることによシ、プロセッサはプログラム命令を主と
して顆番に実行するためプログラム命令フェッチ・サイ
クル数が半分しか必要なくなるので、プロセッサの効率
が向上する。このような構成では、プログラム命令のシ
ーケンス中にジャンプ型の動作に遭遇した場合、或る種
のプロセッサではそれが実行したプログラム命令のシー
ケンスを正確に追跡することは困難である。ジャンプ動
作が発生すると、プロセッサは命令バッファからそこに
残っていたプログラム命令を消却してプログラム命令を
異なるアドレスからフェッチし始める。この異なるアド
レスからの最初のプログラム命令フェッチは、フルワー
ド境界K整列した32ビットのフルワードの後半の16
ビットだけが必要がときでも常に32ビット分の命令を
得るように設計することがある。したがって、各命令フ
エツチ・サイクル中に複数のプログラム命令を取出すプ
ロセッサに関しては、現在入手可能な試験装置は、どの
命令がプロセッサによシ実際に実行され、どの命令が命
令バッファに一時的に格納されたもののジャンプ命令の
実行の直後に使用されないかを区別することができない
試験装置の構成 第1図は各命令呼出しサイクル中に複数のプログラム命
令を取出すことができるプロセッサの動作をモニタする
試験装置、およびこの試験装置と試験されるシステムと
の相互接続をブロック図の形で示してある。試験装置1
00は一組のケーブル102ヲ介して、プロセッサ11
1によクで制御される被試験システム101に相互接続
されている。試験装置100と試験されるシステム10
1との接続は、被試験システム101の状態バス12l
,アドレス・バス120、およびデータ・バス122が
試験装置100と相互接続されるように行われる。この
接続により、試験装置100は被試験システム101の
正確な動作をモニタすることができる。
試験装置100は典型的には、キーボード108および
ビデオ・モニタ110を備えたコンピュータ109のよ
うなホストを備えている。コンピュータ109および試
験装置100の付加回路(図示してない)の機能は、被
試験システム101の中のプロセッサ111により実行
されるプログラム命令動作のシーケンスを記録すること
である。試験装置100のこの付加回路の機能は、コン
ピュータ109のこのソフトウエアと同様に周知であシ
、ここに詳細に開示することはしない。コンピュータ1
09はたとえばHewlett−Packardモデル
9000シリーズ300コンビ島−夕とすることができ
、付加試験装置はたとえばHewlett−Packa
rd 64120測定ノ《ツケージK含まれている。
試験装置100の記録・分析回路およびソフトウエアは
被試験システムのプロセッサ111の命令の流れを正確
に知ることはできない。というのは、プロセッサ111
がジャンプ、分岐、割り込み、あるいは他の同様な動作
をした場合はいつでも、プログラムの流れが順序的でな
くなる可能性があるからである。これらの状況において
は、プロセッサ111はプログラム・メモリから最初に
取出された動作シーケンスに従うのではなく、目標アド
レスという新しいアドレスから複数の命令をフェッチす
るかもしれない。被試験システム101のプロセッサ1
11の内部動作を複製する(replicate )か
模擬するかしてどの命令が実行されどれが実行されなか
ったかを明らかにすることは可能であるが、これは人間
がかなシの程度介入しなければならず、経費がかかシ且
つ間違いを起しやすい。エミュレータ・ボッド103は
、どの命令が実行されなかったかを、被試験システム1
01のプロセッサK間接的に自白させるように機能する
。これはソフトウエア・モニタを実行させたりあるいは
被試験システムのリアルタイム動作にかなシな影響を及
ぼすダンブ動作を実行することなく行われる。
第4図K示す接続は、被試験システム101のプロセッ
サ111の動作のエミエレーシロンを示している。この
アプリケーシ鱒ンでは、被試験システム101に通常存
在するプロセッサ111は、エミュレータ・ボッド10
3で置換えられる。エミュレータ・ポッド103は被試
験システム101から取外されたプロセッサ111と同
じ仕方で動作する。ケーブル102は被試験システム1
01のプロセッサ111が通常取付けられているコネク
タに差込まれている。ケーブル102は第1図に示すよ
うに、アドレス・バスl20、状態バス121、および
データ・バス122を被試験システム101からエミュ
レータ・ボッド103のプロセッサ104までもって行
く。プロセッサ104はプロセッサ111と同じデバイ
スであるか、またはプロセッサ111の動作をエミュレ
ートしてプロセッサ104が被試験システム101のプ
ログラム命令を「透明に」、つまりあたかもプロセッサ
111が動作しているかのように実行するデバイスであ
る。被試験システム101のプロセッサのアドレス・バ
ス120および状態バス121はプロセッサ104に直
接接続されている。被試験システム101のプロセッサ
のデータ・バス122はバッファ105を経由してプロ
セッサ104に接続される。
バッファ105の機能については以下に記す。このよう
にして、エミエレータ・ポンド103はプロセッサ11
1のように動作する。
プログラム分岐の例 命令フェッチ・サイクル毎に複数の命令を取出すプロセ
ッサの一例は米国のMotorola Incorpo
ratedのMC68020・マイクロプロセッサであ
る。このデバイスは16ビット語を基本とする命令セッ
トを持っている。しかし、このマイクロプロセッサの性
能を向上させるため、MC68020は命令フェッチ・
サイクル毎K合わせて32ピットの情報となる2つの語
をフェッチし、これによりデータ・バスのスループット
を向上させている。この一例は、JMP(AO)命令の
ようなジャンプ動作が発生したとき、32ビットの命令
が指定されたアドレスからフェッチされることである。
この動作はプロセッサの内部レジスタ(AO)に入って
いる目標アドレスへのジャンプを伴う。レジスタAOは
プロセッサの内部レジスタであるから、このレジスタに
入っているアドレスの値をプロセッサ内部の算術論理動
作を複製することなく決定することは不可能である。し
たがって、プロセッサが取出した2語のうちのどちらが
目標アドレスに相当しておシ、プロセッサが取出した2
語のうちのどちらがプロセッサが実行しない命令に相当
するか、を判定することは不可能である。
この問題を解決するために、第1図に示すエミエレータ
・ポッド103は2語のうちのどちらがプロセッサによ
り実行されるかを、プログラム命令のシーケンス中で間
接的に指示する。これは第1図に示すバッファ105、
命令混入回路( instructionjam ci
rcuit )106、およびカウンタ/比較器107
を用いて行われる。カウンタ/比較器107はプロセッ
サ104からのアドレス・バス120に現われるアドレ
スで決まるプログラム命令の順序(sequencin
g)を監視する。カウンタ/比較器107が、プロセッ
サ104により実行されるプログラム命令のシーケンス
中の次の数値のアドレスを表わしていないアドレスをア
ドレス・バス120上で検出した場合、これはプロセッ
サ104が順番から外れたアドレスからフェッチしよう
としていることを示す。
Me 68020  プロセッサの場合には、取出され
た32ビット語の高位アドレス側16ビットまたは低位
アドレス側16ビットの一方が、プロセッサ104がそ
れを使って実行を継続する命令であムプログラム命令の
シーケンスを徹底的に分析しない限シ、2つの16ビッ
ト語のうちのどちらがこの状況でプロセッサ104によ
り実行されるかを判定するのは不可能である。これら2
語のうちのどちらがプロセッサ104により実行される
かを決めるために、カウンタ/比較器107は、アドレ
ス・バス120に現われるアドレスの順序の乱れに応答
して、導線112を介してバッファ105および命令混
入回路106を同時に付勢する。バッファ105は、プ
ロセッサ104から被試験システム101のアドレス・
バス120上に出力されるアドレスに応答して被試験シ
ステム101のデータ・バス122上に現われる2つの
16ビット語のうちの一方を捕捉する。
これと同時に、命令混入回路106は被試験システム1
01のデータ・バス122から捕捉された命令の代シに
所定の命令をローカル・データ・バス123に出力する
。このようにして、例えば、32ビット語の低位アドレ
ス側16ビットをバッファ105の中に捕え、データ・
バス123上のその場所に命令混入回路106によシプ
レーク・ポイント命令(BKPT )を代わりに置《と
じよう。低位アドレス側16ビット語が、順序の乱れた
アドレスをアドレス・バス120に出現させたジャンプ
動作の目標である場合は、ブレーク・ポイント受付サイ
クル(break point acknowledg
e cycle)をプロセッサ104が実行し、これに
よシ低位側16ビット語がジャンプ動作に応答して実行
される命令であったことが示される。この場合には、カ
ウンタ/比較器107がバッファ105を付勢して、上
述のようK捕捉されていた最初に取出された命令を出力
させる。こうしてプロセッサ104はその動作な続行し
、これによってプロセッサ104Kよリ実行されるプロ
グラム命令の順序が判定される。
32ビント語の高位アドレス側16ビットがジャンプ命
令の目標であれば、ブレーク・ポイント受付サイクルは
発生せず、これにより試験装置100は高位アドレス側
16ビット語がジャンプ動作の目標であったと判定する
ことができる。したがって、この装置はプロセッサ10
4が取出した2つの16ビット語のうちのどちらがジャ
ンプ動作の目標であるかを、ブレーク・ポイント命令を
実行するというオーバヘッドだけで正確に識別すること
ができる。
上の例ではプレーク・ポイント命令を本発明の動作説明
に使用したが、他の同様な命令をこの代シに使用するこ
とができる。必要なことは、この混入させる命令がわず
かのプログラム実行時間しか必要とせず、実行中のプロ
グラム内のデータを変改したシコードに影響を与えたシ
してプロセッサ104の実際の動作に影響することがな
いということである。この配慮により、プログラムの流
れをゑ少のオーバヘッドだけでリアルタイム追跡するこ
とができる。それは混入される命令がプロセッサ104
の動作にほとんど影響を及ぼさないからである。プレー
ク・ポイント動作のがゎシに用いることができる他の命
令の例はトラップ( TRAP )命令である。この命
令を実行するとプロセッサは更にもう1つの命令しか持
っていないモニタ・プログラムに制御を移す。トラップ
命令を用いた場合には、プログラム・フローへの実質的
な介入が、フレーク・ポイント命令の場合よシもわずか
に多くなる。しかし、被試験システム101のリアルタ
イム動作が主たる重要事でないときは実行可能な代案で
ある。
試験システムの流れ図 このシステムの動作を更に例示するため纜、第2図およ
び第3図にそれぞれ命令メモリとその内容、およびこの
装置の動作の流れ図を示す。第2図はプロセッサ104
がプログラム・メモリから取出すプログラム命令の並び
を示している。第2図K示す最初の2つの命令は、プロ
セッサ104にょシ実行される命令の長い並びであるか
もしれない命令列中の最後に取出された命令を表してい
る。
各命令にはその左側にそのアドレス(ここではバイト・
アドレスであることに注意)がふられている。ここでは
、アドレスは例示の目的でそれぞれ1000および10
02と任意に選定されている。これら2つの連続したア
ドレスはプロセッサ104によシ1回のプログラム命令
フェクチ・サイクルで読出され、これによりメモリから
2つの16ビット語が取出される。第2図に示す例では
、これらの命令はそれぞれNOPおよびJMP(AO)
である。プロセッサ104は、プログラム・メモリから
取出された命令のシーケンスを実行するにあたシ、最初
にアドレス1000にある命令を実行する。プロセッサ
104はこの動作が完了するとアドレス1002から取
出された命令に進み、JMP(AO)命令を実行する。
このプログラム命令によシ、プロセッサ104は変数A
Oが指示するアドレスに格納されている命令を取出す。
モトローラのM068020プロセッサの場合、AOは
プロセッサ104の内部レジスタな表わしている。
第3図の流れ図には第1図に示す装置の動作を示してあ
る。ステップ301で、カウンタ/比較器107はプロ
セッサ104が出力する新しいアドレス毎にアドレス・
バス120をモニタする。ステップ302で、カウンタ
/比較器107はこのアドレスがこれまでK取出された
プログラム命令の系列中の次のアドレスであるか判断す
る。第2図に示すアドレス1000および1002の場
合にはこれらアドレスはこの数の1@序で流れる一連の
プログラム命令の一部であるとする。それ故、カウンタ
/比較器107は、これら取出された命令はプロセッサ
104がアクセスしたアドレスの継続順序の次のアドレ
スであると判断し、ステップ301に戻ってアドレス・
バス120に現われる次のアドレスをモニタする。プロ
セッサ104がアドレス1002から取出した命令を実
行すると、プロセッサ104はレジスタAOが指示して
いるアドレス・ロケーションまでジャンプする必要があ
るので、プログラム命令のシーケンスが中断される。例
示の目的で、値AOを2000に選定する。したがって
、プロセッサ104はアドレス・バス120に2000
を出力する。ステップ301で、カウンタ/比較器10
7はアドレス・バス120に新しいアドレスが現われた
ことに応答して、ステップ302で、このアドレスを以
前にアドレス・バス120上に現われ、記録されていた
アドレスと比較する。アドレス・バス120に現在ある
このアドレス(2000)はアドレス系列中の次のアド
レスではないから、処理はステップ303に進み、カウ
ンタ/比較器107がバンファ105を付勢してプロセ
ッサ104がプログラム・メモリから取出す2語のうち
の1語を捕捉させる。
第2図において、アドレス2000の命令はMOVED
o,DIなる命令として示され、アドレス2002にあ
る次の命令はMOVE  DI、D2なる命令である。
プロセッサ104はこれらの両方の命令を1回の命令フ
ェッチ・サイクルで取出すので、これら2つのアドレス
のどちらがその直前に実行されたジャンプ動作の目標で
あるかは明らかでない。それ故、ステップ303で、バ
ッファ105がメモリからプロセ冫サ104により取出
された2つの命令の一方を捕捉する。例示の目的で、メ
モリから取出された2語のうちの低位アドレス側に相当
するアドレス2000 にある命令がバッファ105に
格納されるとする。ステップ304で、カウンタ/比較
器107は命令混入回路106を付勢してプログラム・
メモリのメモリ・口ケーシ覆ン2000に格納されてい
た命令の代シに予め定められた命令をデータ・バスに出
力させる。例示の目的で、ここではフレーク・ポイント
命令(BKPTn )がメモリ・ロケーシ腸ン2000
に格納されていたプログラム命令の代シにローカル・デ
ータ・バス123K出力されるものとする。ステップ3
05で、プロセッサ104が実行した次の命令がプロセ
ッサ104により取出されたところの32ビット語の低
位アドレス側に現われてそれ故に捕捉された命令の代り
にローカル・データ・バス123に出力された予め定め
られた命令であるか否かを、エミュレーシラン・ボッド
103が判定する。この命令が予め定められた命令でな
い場合には、処理はステップ306に進み、コンピュー
タ110は、取出された語のうちの高位アドレス側がこ
の処理サイクル中にプロセッサ104により実行された
命令であることを記録する。次に処理はステップ301
に戻り、カウンタ/比較器回路107が上述のようにア
ドレス・バス120をモニタし続ける。
ステノブ305で、プロセッサ104が実行した次の命
令がプログラム・メモリから取出され捕捉された語の代
りにローカル・データ・バス123に混入させられた予
め定められた命令であれば、ステップ307で、コンピ
ュータ110が捕捉されていた命令をプロセッサ104
によシ実行されるプログラム命令のシーケンス中の次の
命令として記録する。
MC 6 8 0 2 0  プロセッサでは、BKP
Tn命令の実行は独特の動作であって容易に検出される
。ステップ308で、バッファ105はアドレス・ロケ
ーション2000 K現われ捕捉されていた命令をロー
カル・データ・バス123に出力し、プロセッサ104
がこの命令をその動作の通常サイクルの一部として実行
することができるようにする。
〔発明の効果〕
以上説明したように、バクファ105、カウンタ/比較
器回路107、および命令混入回路106を使用するこ
とによシ試験装置100がプロセッサ104により実行
されるプログラム命令のシーケンスを、予め定められた
プログラム中をたどりながら、正確に決定することがで
きる。プロセッサ104の動作のリアルタイム性能はこ
の試験装置の使用Kよシ最小限の影響を受けるだけであ
る。とい5のはプログラム命令を実行する通常の流れか
ら逸脱するのは取出された2つのプログラム命令のうち
どれがジャンプ動作に応答してプロセッサ104により
実行されるかを間接的に知らせるブレーク・ポイント動
作を時々挿入することだけだからである。
本発明の特定の実施例を開示したが当業者は付記した特
許請求の範囲に入る別の実現形態を工夫することができ
るしまたそうしようとするであろう。
【図面の簡単な説明】
第1図は本発明の一実施例のブロック図、第2図はジャ
ンプ動作の例を説明する図、第3図は本発明の一実施例
の動作を示すフローチャート、 第4図はエミュレータ・ボンドと被試験システムとの接
続形態を例示する図である。 100:試験装置 101:被試験システム 102:ケーブル 103 :エミュレータ・ボッド 104, 111 :プロセッサ 105:バッファ 106:命令混入回路 107:カウンタ/比較器 108:キーボード 109:コンピュータ 110:ビデオ・モニタ l12:導線 120:アドレス・バス 121:状態バス 122:データ・バス 123:ローカル・データeバス。

Claims (4)

    【特許請求の範囲】
  1. (1)被試験システムの動作をモニタする試験システム
    であって、 前記被試験システムはプログラム命令フェッチ・サイク
    ルの間にプログラム・メモリから複数の命令を取出すプ
    ロセッサを有し、 前記各命令は前記プログラム・メモリ中の関連するアド
    レス・ロケーシヨンにストアされており、 前記試験システムは前記プロセッサによって実行された
    命令シーケンスを判定し、 下記の(a)ないし(c)を設けたことを特徴とする試
    験システム: (a)命令フェッチ・サイクルの間に前記プロセッサに
    よって取出された前記複数の命令の各々のメモリ・アド
    レスを走査する手段; (b)前記走査する手段に応答し、前記取出された命令
    が非連続的な命令フェッチを表している場合には前記取
    出された命令のうちの1つを予め定められた命令と取代
    える手段; (c)前記予め定められた命令の実行に応答し、前記実
    行された予め定められた命令を前記取出された命令のう
    ちの前記1つで置換する手段。
  2. (2)被試験システムの動作をモニタするシステムにお
    ける命令実行シーケンス判定方法であって、 前記被試験システムはプログラム命令フェッチ・サイク
    ルの間にプログラム・メモリから複数の命令を取出すプ
    ロセッサを有し、 前記各命令は前記プログラム・メモリ中の関連するアド
    レス・ロケーションにストアされており、 下記(a)ないし(c)のステップを設けて前記プロセ
    ッサによって実行された命令のシーケンスを判定する命
    令シーケンス判定方法: (a)命令フェッチ・サイクルの間に前記プロセッサに
    よって取出された前記複数の命令の各々のメモリ・アド
    レスを走査し; (b)前記取出された命令が非連続的な命令フェッチを
    表わしている場合には前記取出された命令の1つを予め
    定められた命令と取代え;(c)前記プロセッサが前記
    予め定められた命令を実行したことに応答し、前記実行
    された予め定められた命令が取代えたところの前記取出
    された命令の前記1つをもとに戻す。
  3. (3)被試験システムの動作をモニタする試験システム
    であって、 前記被試験システムはプログラム命令フェッチ・サイク
    ルの間にプログラム・メモリから複数の命令を取出すプ
    ロセッサを有し、 前記各命令は前記プログラム・メモリ中の関連するアド
    レス・ロケーションにストアされており、 前記試験システムは前記プロセッサによって実行された
    命令シーケンスを判定し、 下記の(a)ないし(d)を設けたことを特徴とする試
    験システム: (a)命令フェッチ・サイクルの間に前記プロセッサに
    よって取出された前記複数の命令の各々のメモリ・アド
    レスを走査する手段; (b)下記の(b−1)ないし(b−3)を含み、前記
    走査する手段に応答し、前記取出された命令が非連続的
    な命令フェッチを表している場合には前記取出された命
    令のうちの1つを予め定められた命令と取代える手段: (b−1)前記プロセッサと前記プログ ラム・メモリとの間に挿入され前記予め定 められた命令を前記取出された命令のうち の前記1つのかわりに前記プロセッサへ送 出する手段; (b−2)前記取出された命令のうちの 前記1つを捕えるバッファ手段; (b−3)下記(b−3−1)を含み、 前記プロセッサが前記予め定められた命令 を実行したことに応答して前記取出された 命令のうちの前記1つをもどす手段: (b−3−1)前記プロセッサが前記 予め定められた命令を実行したことに応 答して前記捕えられた命令を前記バッフ ァ手段から読出して前記プロセツサへ与 える手段; (c)前記取出された命令についての記録を行なう手段
    ; (d)前記プロセッサが前記予め定められた命令を実行
    しなかった場合には前記命令フェッチ・サイクル中に取
    出された前記複数の命令中の前記記録された命令を消去
    する手段。
  4. (4)被試験システムの動作をモニタする試験システム
    であって、 前記被試験システムはプログラム命令フェッチ・サイク
    ルの間にプログラム・メモリから複数の命令を取出すプ
    ロセッサを有し、 前記各命令は前記プログラム・メモリ中の関連するアド
    レス・ロケーシヨンにストアされており、 前記試験システムは前記プロセッサによって実行された
    命令シーケンスを判定し、 下記の(a)ないし(c)を設けたことを特徴とする試
    験システム: (a)非連続的命令フェッチに応答し、プログラム命令
    フェッチ・サイクルの間前記プ ロセッサによって取出された前記複数の命 令のうちの1つを捕える手段; (b)前記非連続的命令フェッチに応答し、前記捕えら
    れた命令を予め定められた命令 と取代える手段; (c)前記プロセッサが前記予め定められた命令を実行
    したことに応答し、前記実行さ れた予め定められた命令を前記捕えられた 命令で置換える手段。
JP2031294A 1989-02-10 1990-02-09 試験システムおよび命令実行シーケンス判定方法 Expired - Lifetime JP2776602B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US310,153 1989-02-10
US07/310,153 US5134701A (en) 1989-02-10 1989-02-10 Test apparatus performing runtime replacement of program instructions with breakpoint instructions for processor having multiple instruction fetch capabilities

Publications (2)

Publication Number Publication Date
JPH02235149A true JPH02235149A (ja) 1990-09-18
JP2776602B2 JP2776602B2 (ja) 1998-07-16

Family

ID=23201224

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2031294A Expired - Lifetime JP2776602B2 (ja) 1989-02-10 1990-02-09 試験システムおよび命令実行シーケンス判定方法

Country Status (2)

Country Link
US (1) US5134701A (ja)
JP (1) JP2776602B2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06105432B2 (ja) * 1989-06-01 1994-12-21 三菱電機株式会社 マイクロプロセッサ
JPH0362202A (ja) * 1989-07-31 1991-03-18 Japan Electron Control Syst Co Ltd 制御プログラム開発装置
US5394544A (en) * 1989-08-07 1995-02-28 Ricoh Co., Ltd. Software system debugger with distinct interrupt vector maps for debugging and application programs
GB9019022D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station or similar data processing system including interfacing means to microchannel means
JPH04148242A (ja) * 1990-10-08 1992-05-21 Fujitsu Ltd ロード・モジュール実行時トレース処理方法
JP2839730B2 (ja) * 1991-02-25 1998-12-16 株式会社東芝 エミュレーション装置及び半導体装置
US5239642A (en) * 1991-04-02 1993-08-24 Motorola, Inc. Data processor with shared control and drive circuitry for both breakpoint and content addressable storage devices
JP3088129B2 (ja) * 1991-05-29 2000-09-18 日本電気株式会社 マイクロプロセッサ
US5495578A (en) * 1992-04-06 1996-02-27 Hewlett-Packard Company Apparatus and method for changing the behavior of a computer program while retaining control of program execution
JPH06139107A (ja) * 1992-10-30 1994-05-20 Nec Corp ブレイクアドレス検出回路
DE4345028A1 (de) * 1993-05-06 1994-11-10 Hewlett Packard Co Vorrichtung zur Reduzierung von Verzögerungen aufgrund von Verzweigungen
JPH07182182A (ja) * 1993-12-21 1995-07-21 Mitsubishi Electric Corp システムコール情報採取装置
US5446876A (en) * 1994-04-15 1995-08-29 International Business Machines Corporation Hardware mechanism for instruction/data address tracing
US5682533A (en) * 1994-09-27 1997-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Updating software within a telecommunications switch without interrupting existing communication and neither moving nor converting data
US5867701A (en) * 1995-06-12 1999-02-02 Intel Corporation System for inserting a supplemental micro-operation flow into a macroinstruction-generated micro-operation flow
US5812133A (en) * 1995-11-01 1998-09-22 Allen Bradley Company, Llc Industrial controller with display of rung execution
JP3679844B2 (ja) * 1995-11-09 2005-08-03 ファナック株式会社 シーケンス・プログラムの実行装置
US5991529A (en) * 1997-05-16 1999-11-23 Sony Corporation Testing of hardware by using a hardware system environment that mimics a virtual system environment
US6106571A (en) * 1998-01-29 2000-08-22 Applied Microsystems Corporation Relocatable instrumentation tags for testing and debugging a computer program
US7140005B2 (en) * 1998-12-21 2006-11-21 Intel Corporation Method and apparatus to test an instruction sequence
US6973417B1 (en) 1999-11-05 2005-12-06 Metrowerks Corporation Method and system for simulating execution of a target program in a simulated target system
US6934893B1 (en) * 2000-11-16 2005-08-23 Stmicroelectronics S.A. Method of monitoring the activation of programmed sequences of a programmed system and computer program and apparatus for implementing same
US6772372B2 (en) 2001-03-06 2004-08-03 Hewlett-Packard Development Company, L.P. System and method for monitoring unaligned memory accesses
US6694457B2 (en) 2001-03-06 2004-02-17 Hewlett-Packard Development Company, L.P. System and method for monitoring execution of privileged instructions
US7272832B2 (en) * 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
US20070006166A1 (en) * 2005-06-20 2007-01-04 Seagate Technology Llc Code coverage for an embedded processor system
US9183117B2 (en) 2013-06-20 2015-11-10 Abbott Laboratories Inc. Method for developing and testing a connectivity driver for an instrument
CN107480057B (zh) * 2017-07-31 2020-11-24 芯海科技(深圳)股份有限公司 一种在ICE中实现Call Stack功能的方法
CN110032085B (zh) * 2019-03-28 2020-10-27 西安交通大学 一种适用于专用处理器的多调试模式电路及其监测仿真方法
WO2022174246A1 (en) * 2021-02-10 2022-08-18 Microchip Technology Incorporated Trap sub-portions of computer-readable instructions and related systems, methods, and apparatuses

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3509541A (en) * 1967-04-04 1970-04-28 Bell Telephone Labor Inc Program testing system
GB1442665A (en) * 1972-12-14 1976-07-14 Siemens Ag Data processing systems
US4080650A (en) * 1976-07-28 1978-03-21 Bell Telephone Laboratories, Incorporated Facilitating return from an on-line debugging program to a target program breakpoint
US4126893A (en) * 1977-02-17 1978-11-21 Xerox Corporation Interrupt request controller for data processing system
US4176394A (en) * 1977-06-13 1979-11-27 Sperry Rand Corporation Apparatus for maintaining a history of the most recently executed instructions in a digital computer
US4241416A (en) * 1977-07-01 1980-12-23 Systron-Donner Corporation Monitoring apparatus for processor controlled equipment
JPS5582359A (en) * 1978-12-18 1980-06-21 Toshiba Corp Microprogram test unit
US4495563A (en) * 1981-07-02 1985-01-22 Texas Instruments Incorporated Microcomputer having separate access to complete microcode words and partial microcode words
US4740895A (en) * 1981-08-24 1988-04-26 Genrad, Inc. Method of and apparatus for external control of computer program flow
JPS5886648A (ja) * 1981-11-18 1983-05-24 Mitsubishi Electric Corp トレ−ス装置
US4511960A (en) * 1982-01-15 1985-04-16 Honeywell Information Systems Inc. Data processing system auto address development logic for multiword fetch
US4511961A (en) * 1982-04-16 1985-04-16 Ncr Corporation Apparatus for measuring program execution
US4782461A (en) * 1984-06-21 1988-11-01 Step Engineering Logical grouping of facilities within a computer development system
US4635193A (en) * 1984-06-27 1987-01-06 Motorola, Inc. Data processor having selective breakpoint capability with minimal overhead
US4811345A (en) * 1986-12-16 1989-03-07 Advanced Micro Devices, Inc. Methods and apparatus for providing a user oriented microprocessor test interface for a complex, single chip, general purpose central processing unit
US4819234A (en) * 1987-05-01 1989-04-04 Prime Computer, Inc. Operating system debugger
US4910663A (en) * 1987-07-10 1990-03-20 Tandem Computers Incorporated System for measuring program execution by replacing an executable instruction with interrupt causing instruction

Also Published As

Publication number Publication date
US5134701A (en) 1992-07-28
JP2776602B2 (ja) 1998-07-16

Similar Documents

Publication Publication Date Title
JPH02235149A (ja) 試験システムおよび命令実行シーケンス判定方法
US4782461A (en) Logical grouping of facilities within a computer development system
US5479652A (en) Microprocessor with an external command mode for diagnosis and debugging
US5754759A (en) Testing and monitoring of programmed devices
US5751942A (en) Trace event detection during trace enable transitions
US4635193A (en) Data processor having selective breakpoint capability with minimal overhead
JP4094724B2 (ja) ソフトウェアをデバッグする際に例外を識別するための装置および方法
EP0165517A2 (en) Emulator for non-fixed instruction set VLSI devices
US7802149B2 (en) Navigating trace data
US4813009A (en) Method and apparatus for determining internal status of a processor
JPH11110255A (ja) ソフトウェアをデバッグするための装置および方法
US4989207A (en) Automatic verification of kernel circuitry based on analysis of memory accesses
US6425122B1 (en) Single stepping system and method for tightly coupled processors
EP0062978A2 (en) Apparatus for assisting fault-finding in data processing systems
US7360117B1 (en) In-circuit emulation debugger and method of operation thereof
JPH06214819A (ja) 情報処理装置及びこの装置の評価システムならびに評価方法
JPS62164140A (ja) デ−タ処理システムの試験方法
JPS59112350A (ja) プログラム監視制御方式
JPS60262251A (ja) マイクロプロセツサ開発支援装置
JP2690213B2 (ja) マイクロコンピュータ
JPH05303512A (ja) Mpuのトレース装置
JPH0261731A (ja) マイクロプロセッサ
JPH03204044A (ja) カバレージ測定方法及びマイクロコンピュータ
JPS61123942A (ja) マイクロプロセツサ用デバツク装置
JPS59202546A (ja) デバツグ装置