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

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

Info

Publication number
JP2776602B2
JP2776602B2 JP2031294A JP3129490A JP2776602B2 JP 2776602 B2 JP2776602 B2 JP 2776602B2 JP 2031294 A JP2031294 A JP 2031294A JP 3129490 A JP3129490 A JP 3129490A JP 2776602 B2 JP2776602 B2 JP 2776602B2
Authority
JP
Japan
Prior art keywords
processor
program
instruction
fetched
instructions
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
Application number
JP2031294A
Other languages
English (en)
Other versions
JPH02235149A (ja
Inventor
ディビッド・チャールズ・ミュラー
スティーブン・レイモンド・ウィリアム
ナビル・モハメド・アブジャラ
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
HP Inc
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 HP Inc filed Critical HP Inc
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; 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/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/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • 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/3648Software debugging using additional hardware
    • G06F11/3652Software debugging 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)

Description

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

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】被試験のシステムの動作をモニタする試験
    システムであって、 前記被試験システムはプログラム命令フェッチ・サイク
    ルの間に直ちに実行できるようにプログラム・メモリか
    ら複数の命令を取り出すプロセッサを有し、 前記各命令は前記プログラム・メモリ中の関連するアド
    レス・ロケーションに格納されており、 前記試験システムは前記プロセッサによって実効された
    命令シーケンスを判定し、 (a)前記プロセッサが、前記プログラム・メモリから
    複数のプログラム命令を取り出し、前記プロセッサによ
    って取り出されたプログラム命令を直ちに実行するのに
    応答して、プログラム命令フェッチ・サイクルの間に、
    前記プロセッサによって取り出された前記複数の命令の
    メモリ・アドレスを最後に取り出されたプログラム命令
    のメモリ・アドレスと比較し、前記取り出されたプログ
    ラム命令がプログラム命令フェッチの非連続を示すかを
    判定する手段; (b)前記比較する手段に応答し、前記取り出されたプ
    ログラム命令が非連続的なプログラム命令フェッチを表
    わしている場合には、前記取り出されたプログラム命令
    のうちの1つを予め定められた命令と取り替える手段; (c)前記取り出されたプログラム命令の1つを格納す
    る手段; (d)前記プロセッサが前記予め定められたプログラム
    命令を実行するのに応答し、前記実行された予め定めら
    れた命令を前記取り出されたプログラム命令のうちの前
    記1つで置換する手段 を有することを特徴とする試験システム。
  2. 【請求項2】請求項1に記載の試験システムにおいて、
    前記予め定められたプログラム命令がブレーク・ポイン
    ト命令を有することを特徴とする試験システム。
  3. 【請求項3】請求項1に記載の試験システムにおいて、
    前記取り出されたプログラム命令を記録する手段を有す
    ることを特徴とする試験システム。
  4. 【請求項4】請求項3に記載の試験システムにおいて、 前記プロセッサが前記予め定められたプログラム命令を
    実行できなかった時に、前記プログラム命令フェッチ・
    サイクルで取り出された前記複数のプログラム命令中の
    1以上の前記記録されたプログラム命令を削除する手段 を有することを特徴とする試験システム。
  5. 【請求項5】請求項1に記載の試験システムにおいて、
    前記取り替える手段が、 前記プロセッサと前記プログラム・メモリの間に置か
    れ、前記取り出されたプログラム命令のうちの1つの代
    わりに前記予め定められたプログラム命令を前記プロセ
    ッサに送る手段 を有することを特徴とする試験システム。
  6. 【請求項6】請求項5に記載の前記取り替え手段が、 前記取り出されたプログラム命令の1つを格納するバッ
    ファ手段 を有することを特徴とする試験システム。
  7. 【請求項7】請求項6に記載の試験システムにおいて、
    前記置換手段が、 前記予め定められたプログラム命令の実行に応答し、前
    記横取りされた取り出されたプログラム命令を、前記バ
    ッファ・手段から前記プロセッサに読み出す手段 を有することを特徴とする試験システム。
  8. 【請求項8】被試験システムの動作をモニタする試験シ
    ステムにおいて、 前記被試験システムはプログラム命令フェッチ・サイク
    ルの間に直ちに実行できるようにプログラム・メモリか
    ら複数の命令を取り出すプロセッサを有し、 前記命令は前記プログラム・メモリ中の関連するアドレ
    ス・ロケーションに格納されており、 前記プロセッサによって実行されたプログラム命令のシ
    ーケンスを判定する方法であって、 (a)前記プロセッサが、前記プログラム・メモリから
    複数のプログラム命令を取り出し、前記プロセッサによ
    って取り出されたプログラム命令を直ちに実行するのに
    応答して、プログラム命令フェッチ・サイクルの間に、
    前記プロセッサによって取り出された前記複数の命令の
    各々のメモリ・アドレスを最後に取り出されたプログラ
    ム命令のメモリ・アドレスと比較し、前記現在取り出さ
    れたプログラム命令がプログラム命令フェッチの非連続
    を示すかを判定するステップ; (b)前記取り出されたプログラム命令が非連続的なプ
    ログラム命令フェッチを表わしている場合には、前記取
    り出されたプログラム命令のうちの1つを予め定められ
    た命令と取り替えるステップ; (c)前記取り出されたプログラム命令の1つを格納す
    るステップ; (d)前記プロセッサが前記予め定められたプログラム
    命令を実行するのに応答し、前記実行された予め定めら
    れた命令を前記取り出されたプログラム命令のうちの前
    記1つで置換するステップ、 を有することを特徴とする判定方法。
  9. 【請求項9】請求項8に記載の判定方法において、前記
    取り替えステップが、 前記取り出されたプログラム命令のうちの1つの代わり
    に、前記予め定められたプログラム命令を前記プロセッ
    サに送るステップ を有することを特徴とする判定方法。
  10. 【請求項10】請求項9に記載の判定方法において、前
    記取り替えステップが、 前記取り出されたプログラム命令のうちの1つを横取り
    するステップ を有することを特徴とする判定方法。
  11. 【請求項11】請求項10に記載の判定方法において、前
    記置換ステップが、 前記プロセッサが前記予め定められたプログラム命令を
    実行するのに応答して、前記横取りされた取り出された
    プログラム命令を前記プロセッサに読み出すステップ を有することを特徴とする判定方法。
  12. 【請求項12】請求項8に記載の判定方法において、前
    記取り出されたプログラム命令を記録するステップを有
    することを特徴とする判定方法。
  13. 【請求項13】請求項12に記載の判定方法において、 前記プロセッサが前記予め定められたプログラム命令を
    実行できなかった時に、前記プログラム命令フェッチ・
    サイクルで取り出された前記複数のプログラム命令中の
    1以上の前記記録されたプログラム命令を削除するステ
    ップ を有することを特徴とする判定方法。
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 JPH02235149A (ja) 1990-09-18
JP2776602B2 true 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032085A (zh) * 2019-03-28 2019-07-19 西安交通大学 一种适用于专用处理器的多调试模式电路及其监测仿真方法

Families Citing this family (29)

* 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
US6694457B2 (en) 2001-03-06 2004-02-17 Hewlett-Packard Development Company, L.P. System and method for monitoring execution of privileged instructions
US6772372B2 (en) 2001-03-06 2004-08-03 Hewlett-Packard Development Company, L.P. System and method for monitoring unaligned memory accesses
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功能的方法
US11537401B2 (en) * 2021-02-10 2022-12-27 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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032085A (zh) * 2019-03-28 2019-07-19 西安交通大学 一种适用于专用处理器的多调试模式电路及其监测仿真方法
CN110032085B (zh) * 2019-03-28 2020-10-27 西安交通大学 一种适用于专用处理器的多调试模式电路及其监测仿真方法

Also Published As

Publication number Publication date
JPH02235149A (ja) 1990-09-18
US5134701A (en) 1992-07-28

Similar Documents

Publication Publication Date Title
JP2776602B2 (ja) 試験システムおよび命令実行シーケンス判定方法
EP0084431A2 (en) Monitoring computer systems
US4635193A (en) Data processor having selective breakpoint capability with minimal overhead
US4782461A (en) Logical grouping of facilities within a computer development system
US5022028A (en) Software verification apparatus
JP3846939B2 (ja) データプロセッサ
US4253183A (en) Method and apparatus for diagnosing faults in a processor having a pipeline architecture
US7802149B2 (en) Navigating trace data
JPH07168737A (ja) プログラム制御装置のモニタ方法
EP0111952B1 (en) Verification of a processor architecture having a partial instruction set
US20060259826A1 (en) Method and system of identifying overlays
US4813009A (en) Method and apparatus for determining internal status of a processor
US4989207A (en) Automatic verification of kernel circuitry based on analysis of memory accesses
JP2886191B2 (ja) 命令解析装置及び方法
EP0062978A2 (en) Apparatus for assisting fault-finding in data processing systems
US7360117B1 (en) In-circuit emulation debugger and method of operation thereof
US7100027B1 (en) System and method for reproducing system executions using a replay handler
US20010051866A1 (en) Tracing circuit, tracing method and record medium for operation monitoring device
JPS6383841A (ja) プログラムテスト可能な計算機中央処理装置
JPS60159951A (ja) 情報処理装置におけるトレ−ス方式
EP0569128A2 (en) Extended high-speed testing of microprocessor-based devices
JPS62164140A (ja) デ−タ処理システムの試験方法
JP2915944B2 (ja) カバレージ測定方法及びマイクロコンピュータ
JPS59112350A (ja) プログラム監視制御方式
JPH11143789A (ja) バストレース装置