JPH11110255A - ソフトウェアをデバッグするための装置および方法 - Google Patents

ソフトウェアをデバッグするための装置および方法

Info

Publication number
JPH11110255A
JPH11110255A JP10133255A JP13325598A JPH11110255A JP H11110255 A JPH11110255 A JP H11110255A JP 10133255 A JP10133255 A JP 10133255A JP 13325598 A JP13325598 A JP 13325598A JP H11110255 A JPH11110255 A JP H11110255A
Authority
JP
Japan
Prior art keywords
instruction
breakpoint
data
processor core
signal
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.)
Pending
Application number
JP10133255A
Other languages
English (en)
Inventor
Simon Anthony Segars
アンソニー セガーズ サイモン
Peter Logan Harrod
ローガン ハロッド ピーター
Andrew John Merritt
ジョン マーリット アンドリュー
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JPH11110255A publication Critical patent/JPH11110255A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00—Error detection; Error correction; Monitoring
    • G06F11/36—Prevention of errors by analysis, debugging or testing of software
    • G06F11/362—Debugging of software
    • G06F11/3648—Debugging of software using additional hardware
    • G06F11/3656—Debugging of software using additional hardware using a specific debug interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【課題】 ソフトウェアをデバッグする際にコードを1
ステップごとに実行するための改良された技術を提供す
ること 【解決手段】 ステッピングプロセスを使用すべきこと
を表示するようセット可能なフィールドを有する制御レ
ジスタと、データ処理装置内のプロセッサコアが命令フ
ェッチを行うことをリクエストした時に第1信号を受信
するようになっているステートマシンとを備えた、デー
タ処理装置のためのデバッグインターフェースユニット
が提供される。フィールドがセットされている場合に、
所定の数の命令フェッチがプロセッサコアによってリク
エストされると、ステートマシンはプロセッサコアにブ
レークポイント信号を出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ソフトウェアをデ
バッグ(バグ除去)するための装置および方法に関し、
より詳細には、データ処理装置のためにソフトウェアを
デバッグする際に、コードをパスするステップ動作を容
易にする装置および方法に関する。
【0002】
【従来技術】代表的なデータ処理装置は、プロセッサコ
アに供給されるデータ値に適用される、ある命令シーケ
ンスを実行するようになっているプロセッサコアを有す
ることができる。一般に、プロセッサコアが必要とする
命令およびデータ値を記憶するためのメモリを設けるこ
とができる。更に、メモリに必要なアクセス回数を低減
するよう、プロセッサコアが必要とする命令およびデー
タ値を記憶するために、1つ以上のキャッシュが設けら
れるケースが多い。
【0003】かかるデータ処理装置によって実行される
ソフトウェアをデバッグする際に、ソフトウェアを実行
する際のデータ処理装置のアクティビティをモニタする
よう、コンピュータ上で実行されるデバッガーアプリケ
ーション(以下、デバッガーと総称する)を使用するこ
とが知られている。
【0004】このデバッガーはデータ処理装置内に設け
られた、埋め込まれた「回路内エミュレータ」(IC
E)ユニットを介してデータ処理装置とインターフェー
スすることができるようになっている。一般に、かかる
埋め込み型ICEユニットは数個のハードウェアブレー
クポイントユニットを含み、各ハードウェアブレークポ
イントユニットは識別時にデバッガーが関心を持つ命令
またはデータアクセスの属性を記憶するための多数のブ
レークポイントレジスタと、プロセッサコアによって開
始される命令またはデータアクセスに関するデータ処理
装置から受信される情報とブレークポイントレジスタ内
の属性とを比較するためのブレークポイント比較器とを
有する。ブレークポイントレジスタは一般にデータ、ア
ドレスまたは制御信号の属性をそれぞれ記憶するための
データレジスタ、アドレスレジスタおよび制御レジスタ
を含む。更に、例えばアドレスの所定ビットに関心がな
い時に「ドントケア(don't care)」ステータスを設定
できるようにするためのマスクフィールドを設けてもよ
い。
【0005】各ハードウェアブレークポイントユニット
は、ブレークポイント比較器がブレークポイントレジス
タの属性とデータ処理装置から受信される命令またはデ
ータアクセスに関する情報に含まれる対応する属性とが
一致すると判断した場合、プロセッサコアにブレークポ
イント信号を発生するようにできる。
【0006】ハードウェアブレークポイントユニットに
よって発生されるブレークポイント信号は、プロセッサ
コアが処理命令を停止するようにさせ、よってデバッガ
ーがデータ処理装置のその時のステートを分析できるよ
うにする。
【0007】かかるデータ処理装置によって実行される
ソフトウェアをデバッグする際に、所定の数の命令を実
行し、次にプロセッサおよび/またはメモリのステート
を検査し、その後、次の所定の数の命令を実行するよう
にコードをパスするようステップ動作できることが極め
て好ましい。特にこのプロセスを使用してコードを1回
ステップすること、すなわちコード1の命令を一回で実
行し、各命令の間でプロセッサおよび/またはメモリの
ステートを検査することが特に有効である。
【0008】かかる1回のステップ動作を実行するため
の公知の技術は、ソフトウェアを使ってプロセッサコア
が次にどの命令を検査し、プロセッサコアがその命令を
実行するとすぐに、プロセッサコアが終了するアドレス
を決定し、次に特定のハードウェアブレークポイントユ
ニットのブレークポイントレジスタ内のその命令アドレ
スの必要な属性を入力することである。このような方法
によりプロセッサコアがそのアドレスに命令フェッチリ
クエストを発生すると、ハードウェアのブレークポイン
トユニット内のブレークポイント比較器が命令フェッチ
リクエストとブレークポイントレジスタ内の属性との一
致を判断し、ブレークポイント信号を発生する。
【0009】
【発明が解決しようとする課題】しかしながら上記方法
には主な2つの不利点がある。第1に、上記方法はプロ
セッサがまさに何を行うかの複雑な予測をデバッガーア
プリケーションソフトウェアが行わなければならないこ
とである。更に、一回のステップ動作を実行するため
に、ハードウェアブレークポイントユニットのうちの1
つを保留しなければならない。しかしながらコスト要因
(例えばシリコンコスト)に起因し、埋め込み型ICE
ユニットは一般に少数のハードウェアブレークポイント
ユニットしか含まないので、特に1回のステップ動作を
行うためにハードウェアブレークポイントのうちの1つ
を保留させることは大いに不利になっている。
【0010】代替方法としては、「ソフトウェアブレー
クポイント」技術を使用する方法がある。ソフトウェア
ブレークポイント技術を使用する際、ハードウェアブレ
ークポイントユニットのブレークポイントデータレジス
タ内に固定パターンのビットを入れることができ、ブレ
ークポイント比較器は常に命令アクセスに関して受信さ
れた情報とその固定パターンとを比較する。次に、プロ
セッサが命令を実行するとすぐにプロセッサが終了する
アドレスが決定され、メモリ内のそのアドレスの命令を
メモリから除き、これを固定パターンのビットと置換す
る。この方法により、プロセッサコアがそのアドレスに
対し命令フェッチリクエストを発生すると、固定パター
ンのビットが検索され、ハードウェアブレークポイント
ユニット内のブレークポイント比較器がビットのそのパ
ターンとブレークポイントレジスタ内に記憶されたビッ
トのパターンとの一致を判断し、ブレークポイント信号
をプロセッサコアに発生する。このブレークポイント信
号は次にプロセッサコアが処理命令を停止するようにさ
せ、よってデバッガーはプロセッサおよび/またはメモ
リのステートを検査できる。このプロセスが一旦完了す
れば、デバッグステートが励起され、データ処理装置が
再び命令処理を開始する前に、メモリから取り出され、
固定ビットパターンが置換された命令がメモリ内の対応
するアドレスに戻される。
【0011】ソフトウェアブレークポイント技術の主な
利点としては、1つのハードウェアブレークポイントユ
ニットしか保留しなくてよく、命令が単一ステップ命令
であるか、または特定のユーザーの指定命令であるかに
よって、ブレークポイントが生じる命令を、その単一ハ
ードウェアブレークポイントで識別し、よってその命令
をメモリ内で固定パターンのビットと置換したものと見
なすことが挙げられる。
【0012】しかしながら、このソフトウェアブレーク
ポイント技術は依然として固定パターンのビットをメモ
リ内のどのアドレスに入れるかを決定するのに、プロセ
ッサが何を行わなければならないかという複雑な予測を
ソフトウェアが実行しなければならない。更にデータ処
理装置がキャッシュを使用しており、固定ビットパター
ンによってオーバーライトすべき命令がキャッシュ内に
ある場合、その命令をキャッシュ内にオーバーライトで
きないことがあり、その命令をキャッシュからフラッシ
ュさせなければならない。その理由は、メモリへのアク
セスを行うことなく、よって固定パターンのビットを検
索することなく、キャッシュから命令を他の方法で戻す
からである。このことはコードがキャッシュのロックダ
ウン部分に記憶されている場合は特に不利である。一般
にロックダウン部分はプロセッサコアおよび/または決
定可能な挙動(例えば決定可能な実行時間)を必要とす
るルーチンによって定期的に使用され、よってメモリか
ら検索される新しい命令によってオーバーライトすべき
でない多数の命令を記憶するのに使用される。別の不利
点としては、命令がROMに記憶されている場合、その
命令を通過する単一ステップにソフトウェアブレークポ
イント技術を使用できないことが挙げられる。その理由
は、固定されたパターンのビットでは命令をオーバーラ
イトできないからである。
【0013】従来技術の方法の上記問題点を前提とすれ
ば、本発明の目的はソフトウェアをデバッグする際にコ
ードを1ステップごとに実行するための改良された技術
を提供することにある。
【0014】
【課題を解決するための手段】本発明の第1の態様によ
れば、ステップ方法(stepping process)を使用すべき
ことを表示するように設定可能なフィールドを有する制
御レジスタと、データ処理装置内のプロセッサコアが命
令フェッチを行うことをリクエストした際に、第1信号
を受信するようになっており、プロセッサコアがリクエ
ストした命令フェッチの数の記録を維持するようになっ
ているステートマシンとを備え、該ステートマシンは更
に制御レジスタを参照し、フィールドがセットされてい
るかどうかを判断し、フィールドがセットされている場
合において、一旦プロセッサコアによって所定の数の命
令フェッチがリクエストされると、プロセッサコアにブ
レークポイント信号を出力するようになっている、デー
タ処理装置のためのデバッガーインターフェースユニッ
トが提供される。
【0015】本発明によれば、デバッガーインターフェ
ースユニットまたは先に述べたような埋め込み型ICE
ユニットは、ソフトウェアをデバッグする際にコードの
1ステップごとの実行を容易にするための別の要素を含
むようになっている。これら別の要素としては、プロセ
ッサコアが命令フェッチを行うようにリクエストするご
とに、第1信号を受信するようになっているステートマ
シンが挙げられる。更に、ステップ方法を使用すべきこ
とを表示するようにセット可能なエクストラフィールド
がデバッガーインターフェースユニットの制御レジスタ
内に設けられる。このステートマシンは制御レジスタを
参照し、フィールドがセットされているかどうかを判断
し、フィールドがセットされている場合、所定の数の命
令フェッチがリクエストされるとブレークポイント信号
を出力するようになっている。
【0016】かかるステートマシンを設けることにより
プロセッサが何を行うべきかの複雑な予測を行う必要が
なくなるのでデバッグソフトウェアの時間をかなり節約
できる。更に、かかるステートマシンを使用することに
よりメモリ内で命令を変える必要がなくなるので、キャ
ッシュから命令をフラッシングしなければならないとい
う問題が解消される。
【0017】好ましい実施例では、命令フェッチの所定
の数は2であり、ステップ方法は1回のステップ動作で
ある。代表的なデバッガーインターフェースユニット、
例えば埋め込み型ICEユニットは、命令フェッチが行
われていることを表示する信号に応答できる。従って、
ステートマシンはその信号の記録を維持するだけでよ
く、好ましい実施例によれば、かかる第2の信号が受信
されるとブレークポイント信号がアサートされる。この
ような方法により、次の命令が実行され、プロセッサは
何か他のことを行う前にデバッグステートとなる。
【0018】好ましくは第1信号は、命令フェッチのリ
クエストされていることを示すために、プロセッサコア
によって制御バスに出力される信号である。以下、この
第1信号をInMREQ信号と称す。先に述べたように、代表
的なデバッガーインターフェースユニット、例えば埋め
込み型ICEユニットは、既にInMREQ信号を受信するよ
うになっているので、ステートマシンは受信したInMREQ
信号の数の記録を維持するだけでよい。
【0019】好ましい実施例では、デバッガーインター
フェースユニットは、プロセッサコアによって開始され
る命令またはデータアクセスに関する情報を受信するた
めの入力ターミナルと、1つ以上のハードウェアブレー
クポイントユニットとを備え、各ブレークポイントユニ
ットがプロセッサコアにブレークポイントユニット信号
を送るようにする命令またはデータアクセスの属性を記
憶するための多数のブレークポイントレジスタ、および
ブレークポイントレジスタ内の属性と入力ターミナルで
受信された情報とを比較するためのブレークポイント比
較器と有し、ブレークポイント比較器がブレークポイン
トレジスタ内の属性と入力ターミナルで受信された情報
に含まれた対応する属性とが一致すると判断した場合、
各ブレークポイントユニットが前記ブレークポイント信
号を発生するようになっている。
【0020】先に述べたように、所定の事象が生じた時
に、かかるハードウェアブレークポイントユニットを使
用してブレークポイント信号を発生することができる。
ブレークポイントレジスタはアドレス、命令、データ値
または制御バスに出力された信号の特定の属性を記憶す
る他に、所定の属性をマスクし、実際に「ドントケア」
機能を果たすことができるように、マスク情報を記憶す
ることもできる。従って、ブレークポイント比較器が戻
されるデータ値の所定部分に関係せず、むしろブレーク
ポイント比較器が比較のための他の属性、例えばプロセ
ッサコアが発生する命令またはデータ値のアドレスを使
用することを表示するためのデータマスクをブレークポ
イントレジスタに加えることができる。ステップ動作を
実行するために、このステートマシンを使用することに
より、設けられたかかるハードウェアブレークポイント
ユニットを他の目的のために自由に使用でき、単一ステ
ップ動作を行うためにハードウェアブレークポイントユ
ニットのうちの1つを保留する必要はない。
【0021】好ましい実施例では、入力ターミナルはプ
ロセッサコアによって開始される命令またはデータアク
セスに関する情報を受信するためのアドレスバス、デー
タバスおよび制御バスに接続される。ブレークポイント
レジスタ内に記憶された属性はアドレス、(命令データ
を含む)データ、制御バスに出力される信号に対する属
性に関連づけでき、よって好ましい実施例では入力ター
ミナルはハードウェアブレークポイントユニットが必要
とされる情報のすべてにアクセスするように、アドレス
バス、データバスおよび制御バスからの情報を受信する
必要がある。
【0022】好ましい実施例では、デバッガーインター
フェースユニットはブレークポイントユニットまたはス
テートマシンのいずれかにより発生されるブレークポイ
ント信号を受信し、プロセッサコアに単一信号を出力す
るための論理ゲートを更に含む。ブレークポイント信号
が論理「1」の値をとる場合、論理ゲートはORゲートで
あることが好ましい。更に好ましい実施例では、デバッ
ガーインターフェースユニットは更に、デバッガーから
の属性を受信し、ブレークポイントレジスタ内に記憶す
るためのインターフェースを更に含む。このインターフ
ェースはシリアルインターフェース、例えばIEEE規
格1149.1−1990JTAGシリアルインターフ
ェースの形態であり、よってデバッガーインターフェー
スユニットがブレークポイントレジスタに追加すべきデ
ータ内でスキャンできることが好ましい。
【0023】本発明の第2の態様によれば、命令を実行
するためのプロセッサコアと、本発明の第1の態様に係
わるデバッガーインターフェースユニットとを備えたデ
ータ処理装置が提供される。更に本発明の第2の態様に
よれば、デバッガーインターフェースユニットとプロセ
ッサコアとを1つの回路内に組み合わせ、この回路を他
の要素、例えばメモリまたはキャッシュと独立して設け
ることができる。
【0024】データ処理装置は多数の他の特徴、例えば
プロセッサコアによって直接アクセスされるメモリまた
は1つ以上のキャッシュと組み合わせて使用されるメモ
リも含むことができる。フォンノイマンアーキテクチャ
(Von Neumann architecture)によれば、命令およびデ
ータの双方を記憶するために単一キャッシュを設けるこ
とができる。しかしながら好ましい実施例では、ハーバ
ードアーキテクチャ(Harvard architecture)が使用さ
れ、従って、データ処理装置は、命令を記憶するための
命令キャッシュと、データを記憶するためのデータキャ
ッシュと、命令キャッシュをプロセッサコアに接続する
ようになっており、プロセッサコアが命令キャッシュに
命令アドレスを出力できるようにする命令アドレスバス
およびプロセッサコアが前記命令アドレスに対応する命
令を受信することができるようにする命令データバス
と、データキャッシュをプロセッサコアに接続するよう
になっており、プロセッサコアがデータキャッシュにデ
ータアドレスを出力できるようにするデータアドレスバ
スおよびプロセッサコアが前記データアドレスに対応す
るデータ値を受信し、またはデータ値をデータキャッシ
ュに出力できるようにするデータデータバスとを更に備
える。
【0025】デバッガーインターフェースユニットの入
力ターミナルは命令アドレスバスおよび命令データバス
に接続され、ブレークポイント比較器がリクエストした
命令アクセスに関する必要な情報を1つ以上のハードウ
ェアブレークポイントユニットが受信することができる
ようにすることが好ましい。更に、デバッガーインター
フェースユニットの入力ターミナルはデータアドレスバ
スおよびデータデータバスに接続され、ブレークポイン
ト比較器が要求したデータアクセスに関する必要な情報
を1つ以上のハードウェアブレークポイントユニットが
受信することができるようにする。
【0026】更に命令制御バスおよびデータ制御バスの
双方に入力ターミナルを接続し、これら制御バスに出力
された信号に関する、ハードウェアブレークポイントユ
ニットによって要求できる必要な情報を受信することが
できる。
【0027】本発明の第3の態様によれば、(a)ステ
ップ方法を使用すべきことを表示するよう、制御レジス
タ内のフィールドをセットする工程と、(b)データ処
理装置内のプロセッサコアが命令フェッチを行うことを
リクエストした時に、第1信号を受信する工程と、
(c)プロセッサコアがリクエストした命令フェッチの
数の記録を維持する工程と、(d)前記工程(a)にて
制御レジスタのフィールドがセットされている場合にお
いて、一旦プロセッサコアによって所定の数の命令フェ
ッチがリクエストされると、プロセッサコアにブレーク
ポイント信号を出力する工程とを備えた、ステップ方法
を実行するためにデータ処理装置のためのデバッガーイ
ンターフェースユニットを作動させる方法が提供され
る。
【0028】添付図面に示した本発明の好ましい実施例
を参照して、単なる例により本発明について更に説明す
る。
【0029】
【発明の実施の形態】図1は、本発明の一実施例に係わ
るデータ処理装置を示し、この実施例ではデータ処理装
置は別個の命令キャッシュと別個のデータキャッシュを
有するハーバードアーキテクチャを使用している。
【0030】図1に示されるように、プロセッサコア1
00は命令バスラインを介して命令キャッシュ110に
接続され、かつデータバスラインを介してデータキャッ
シュ120に接続されている。命令キャッシュ110と
データキャッシュ120の双方を制御するための単一キ
ャッシュコントローラ130が示されている。しかしな
がらこれとは異なり、一つのコントローラが命令キャッ
シュ110用であり、一つのコントローラがデータキャ
ッシュ120用であるような別個のキャッシュコントロ
ーラを設けてもよい。
【0031】プロセッサコア110が命令を求めると
き、このコア110は命令アドレスバス160にその命
令のメモリアドレスを発生し、更に命令制御バス170
上にプロセッサの制御信号を発生する。このプロセッサ
制御信号はアドレスが読み出しリクエストまたは書き込
みリクエストのいずれに対応するのか、アクセスのタイ
プ(例えばシーケンシャルタイプ)、アクセスのサイズ
(例えばワード、バイト)、プロセッサの作動モード
(例えばスーパーバイザーまたはユーザーモード)等に
関する情報を含む。このプロセッサ制御信号はキャッシ
ュコントローラ130によって受信され、必要な命令を
命令キャッシュ110に記憶するかどうかをキャッシュ
コントローラに判断させるように促す。
【0032】好ましい実施例ではプロセッサコア100
が検索すべき命令を求めた時に、命令アドレスバス16
0に発生されたプロセッサ制御信号は命令メモリリクエ
スト(InMREQ)信号であり、この信号は命令キャッシュ
110が命令アドレスバス160上のアドレスと命令キ
ャッシュ110内のアドレスとを比較し、キャッシュ内
にそのアドレスに対応する命令が記憶されているかどう
かを判断しなければならないことを、キャッシュコント
ローラ130に通知する。記憶すると判断した場合、こ
の命令は命令キャッシュ110から命令データバス16
5に出力され、ここでプロセッサコア100によってこ
の命令が読み出される。アドレスに対応する命令がキャ
ッシュ110にない場合、キャッシュコントローラ13
0は外部バス220を介してメモリ140から命令を検
索させる。次に、検索された命令はキャッシュ110内
に記憶され、次に命令データバス165を通してプロセ
ッサコア100へ戻される。
【0033】同様にデータ値のためのアドレスをデータ
アドレスバス180上に出力することができ、データフ
ェッチが必要なことをメモリシステムに表示するための
信号(以下、データメモリリクエスト(DnMREQ)信号と
称す)がデータ制御バス190を通してキャッシュコン
トローラ130に出力される。これによりデータキャッ
シュ120はデータ値がデータキャッシュ内に記憶され
ている場合、データデータバス185上のそのアドレス
に対応するデータ値を戻すようにさせるか、またはキャ
ッシュコントローラ130はメモリ140からデータ値
を検索し、この点でデータ値がデータキャッシュ120
に記憶され、データデータバス185を通してプロセッ
サコア100に戻される。
【0034】本発明の好ましい実施例によれば、データ
処理装置には更に埋め込み型ICEユニット150が設
けられ、このユニットはコンピュータ、例えばパソコン
で実行される外部デバッガーアプリケーションに対する
デバッガーインターフェースユニットとして使用され
る。このデバッガーアプリケーションを以下、デバッガ
ーと称す。好ましい実施例では埋め込み型ICEユニッ
ト150は2つのハードウェアブレークポイントユニッ
ト200および205を含み、各ハードウェアブレーク
ポイントユニットはデバッガーが識別に関心を有する命
令またはデータアクセスの属性を記憶するための多数の
ブレークポイントレジスタおよびブレークポイントレジ
スタ内の属性とプロセッサコアによって開始される命令
またはデータアクセスに関する、データ処理装置から受
信される情報とを比較するためのブレークポイント比較
器を有する。データ処理装置からのこの情報は、種々の
命令バスライン160、165、170および/または
種々のデータバスライン180、185、190を通し
て得られる。各ハードウェアブレークポイントユニット
はブレークポイント比較器がブレークポイントレジスタ
の属性とデータ処理装置から受信される命令またはデー
タに関する情報に含まれる対応する属性とが一致すると
判断した場合、プロセッサコアにブレークポイント信号
を発生することができる。
【0035】デバッガーがハードウェアブレークポイン
ト200または205内のブレークポイントレジスタを
更新できるようにするためにシリアルインターフェー
ス、例えばJTAGシリアルインターフェースを設け、
デバッガーインターフェースユニットがブレークポイン
トレジスタに対かすべきデータ内でスキャンできるよう
にする。ブレークポイントレジスタ内に記憶すべき新し
い属性をデバッガーインターフェースユニットに与える
ことができ、これらパラメータはインターフェースをブ
レークポイント比較器によってその後使用できるように
ブレークポイントレジスタに記憶される。
【0036】各ブレークポイント比較器は、任意の時間
において命令バス160、165、170からの命令情
報またはデータバス180、185、190からのデー
タ情報のいずれかを見ることができるようになってい
る。ブレークポイント比較器が命令バスからの命令情報
を分析し、これがブレークポイントレジスタの属性と一
致していると判断した場合、パス230を介してプロセ
ッサコアにブレークポイント信号が送られる。しかしな
がらブレークポイント比較器がデータバス180、18
5、190からのデータ情報を解析し、ブレークポイン
トレジスタの属性と一致していると判断した場合、パス
240を介してプロセッサコア100にウォッチポイン
ト信号が送られる。好ましい実施例の次の説明のため
に、パス230を通して発生されるブレークポイント信
号およびパス240を通して発生されるウォッチポイン
ト信号の双方が、プロセッサコアの命令処理をするのを
停止させ、よってデバッガーがブレークポイント命令の
実行に先立ち、データ処理装置の現在ステートをデバッ
ガーが分析できるようにする際に、これら双方の信号を
ブレークポイント信号と見なすことができる。しかしな
がら好ましい実施例では、受信された信号が命令に関す
るブレークポイント信号であるか、またはデータに関す
るウォッチポイント信号であるかを判断できるように、
別個のパス230、240が設けられている。
【0037】プロセッサコア100がパス230または
240を介してブレークポイント信号を受信し、命令処
理を停止するとプロセッサコアはパス250を通して埋
め込み型ICEユニット150にデバッグアクノーレッ
ジ信号を送り、プロセッサコアがブレークポイント信号
を受信し、命令の処理を停止したことを埋め込み型IC
Eユニット150に伝える。埋め込み型ICEユニット
150はハードウェアブレークポイントユニット200
および205の他に埋め込み型ICEユニット150の
作動を制御するために使用されるデータの種々のアイテ
ムを含む多数の制御レジスタ210も含む。しかしなが
ら本発明の好ましい実施例によれば、制御レジスタ21
0に多数のエクストラフィールドが追加されており、こ
れら制御レジスタは所定の指定事象が生じた際に、ブレ
ークポイント信号の発生を取り扱うよう、埋め込み型I
CEユニットに加えられた別の要素によって使用され
る。これら別の要素は図4に示されており、図4は埋め
込み型ICEユニット150内の構成部品のより詳細な
概観を示すものである。
【0038】図4に示されるように、データ処理装置で
実行中のコードをデバッガーが1ステップごとに実行で
きるようにし、よって所定の数の命令を実行し、次にプ
ロセッサおよび/またはメモリのステートを検査し、そ
の後、次の所定の数の命令を実行するようにするための
ステートマシン300が設けられている。好ましい実施
例では、コードを通過する1回のステップ動作を実行す
るのに、このステートマシン300が使用され、よって
一度に1つの命令でコードが実行され、各命令の間でプ
ロセッサおよび/またはメモリのステートが検査され
る。ステートマシン300によってアクセス可能であ
り、かつステップ方法を使用すべきことを表示するよう
に設定可能な命令レジスタ210内にエキストラフィー
ルドが設けられている。このフィールドがセットされて
いる場合、ステートマシンはプロセッサコアによって発
生されるInMREQ信号の数の記録を維持するようになって
おり、所定の数のInMREQ信号が受信された後、ステート
マシン300はパス330を通してORゲート320に
ブレークポイント信号を発生するようになっている。ス
テートマシン300が一回のステップ動作を実行するよ
うになっている場合、ステートマシン300はプロセッ
サコアによって2つのInMREQ信号が発行されると、ステ
ートマシン300はブレークポイント信号を1回発生す
る。このステートマシン300の作動については図5〜
7を参照して後により詳細に説明する。
【0039】本発明の好ましい実施例によれば、埋め込
み型ICEユニット150はベクトルアドレスとも称さ
れることが多い例外アドレスにて、例外ルーチンへのア
クセスを識別するようになっているベクトルキャッチ論
理回路310も含む。制御レジスタ210には多数の別
のフィールドが追加されており、各フィールドは特定の
例外ルーチンに対応し、各フィールドはデバッガーが対
応する例外ルーチンへのアクセスを識別したがっている
ことを表示するように設定できる。
【0040】ベクトルキャッチ論理回路310はプロセ
ッサコアによって発生されるInMREQ信号を受信するよう
になっており、更にInMREQ信号と称される命令フェッチ
リクエストが実際に例外ルーチンの命令のための命令フ
ェッチリクエストであること表示するようにセットされ
た評価信号を受信するようにもなっている。ロジックキ
ャッチ論理回路310はこれら信号を受信すると、InMR
EQ信号に関連するアドレス内の所定の数のビットおよび
アドレスが、どの例外ルーチンに対応するかを判断する
よう、各例外ルーチンに対応する種々の別の制御レジス
タ内に記憶されたビットを使用するようになっている。
命令フェッチコマンドが例外ルーチンに対応し、この例
外ルーチンの、制御レジスタ内の対応するフィールドが
セットされている場合、ベクトルキャッチ論理回路31
0はパス340を通してORゲート320にブレークポ
イント信号を発生するようになっている。ベクトルキャ
ッチ論理回路310の作動については図8〜10を参照
して後により詳細に説明する。
【0041】ORゲート320はステートマシン300
およびベクトルキャッチ論理回路310によって発生さ
れるブレークポイント信号の他にORゲート320のハ
ードウェアブレークポイントユニット200および20
5からパス350および360を通って発生されるブレ
ークポイント信号を受信するようになっている。従っ
て、埋め込み型ICEユニット150の部品によってブ
レークポイント信号が発生されると、ORゲート320
はパス370を通してプロセッサコア100にブレーク
ポイント信号を発生する。ステートマシン300および
ベクトルキャッチ論理回路310は特に1回のステップ
および例外ルーチンへのアクセスの識別を特に処理する
ように設けられているので、ハードウェアブレークポイ
ントユニット200および205は他の目的のために自
由に使用できる。よってデバッガーは一部の別のデバッ
グ方法を実行しながら、1回のステップまたはベクトル
キャッチプロセスも実行できる。
【0042】当業者であれば、本発明の好ましい実施例
に係わる上記埋め込み型ICEユニット150は、図1
に示されるようなハーバードアーキテクチャを有するデ
ータ処理装置と共に使用することだけに限定されている
わけではないことが理解できよう。必要なことは、埋め
込み型ICEユニット150がプロセッサコアによって
開始される命令アクセスおよび/またはデータアクセス
に関する情報を受信するようにすることである。
【0043】従って、図2に示されるように、好ましい
実施例の埋め込み型ICEユニット150は命令および
データ値の双方を記憶するための単一キャッシュ400
が設けられているフォンノイマンアーキテクチャを有す
るデータ処理装置でも使用できる。このような構造で
は、プロセッサコア100が命令またはデータ値を必要
とする時には、このプロセッサコアはプロセッサのアド
レス(PA)バス410に、その命令またはデータ値の
メモリアドレスを入れる。更に、プロセッサコア100
はプロセッサ制御(PC)バス420にプロセッサ制御
信号を発生する。このプロセッサ制御信号はキャッシュ
コントローラ130によって受信され、この制御信号は
必要な命令またはデータ値がキャッシュ400内に記憶
されているかどうかをキャッシュコントローラが判断す
るように促す。更に、命令フェッチとデータフェッチと
を区別する別の制御信号が設けられている。キャッシュ
コントローラ130はアドレスバス410上のアドレス
とキャッシュ内のアドレスとを比較し、そのアドレスに
対応する命令またはデータ値がキャッシュ内に記憶され
ているかどうかを判断するように、キャッシュ400に
命令する。記憶されている場合、その命令またはデータ
値はキャッシュ400からプロセッサデータ(PD)バ
ス415に出力され、このバスからプロセッサコア10
0によって読み出される。そのアドレスに対応する命令
またはデータ値がキャッシュ400内にない場合、キャ
ッシュコントローラ130はその命令またはデータ値が
外部バス220を通してメモリ140から検索されるよ
うにする。次に、検索された命令またはデータ値はキャ
ッシュ400に記憶され、データバス415を通してプ
ロセッサコア100へ戻される。
【0044】プロセッサコア100は、プロセッサデー
タバス415を通して命令またはデータ値を受信する以
外に、データバス415を通してキャッシュに記憶でき
るよう、キャッシュ400へデータ値を出力することも
できる。これらデータ値は後の処理操作に必要とされる
時にプロセッサコア100によってその後、検索でき
る。
【0045】埋め込み型ICEユニット150は、図1
および4を参照してこれまで説明したのと同様に作動す
る。従ってこのユニットは、種々のバスライン410、
415、420に接続され、プロセッサコア100によ
って開始される命令またはデータアクセスに関する必要
な情報を受信する。単一ステップ動作またはベクトルキ
ャッチングのために、埋め込み型ICEユニットはデー
タフェッチではなく、命令フェッチを考慮するだけであ
る。図4を参照してこれまで説明したように、ステート
マシン300を使用してデバッガーが単一のステップ動
作を実行できるようにし、ベクトルキャッチ論理回路3
10を使用して例外ルーチンへのアクセスが生じたこと
を識別し、プロセッサコアによって実行される処理を中
止するように、プロセッサコアにブレークポイント信号
を発生し、このポイントにおけるプロセッサコアおよび
/またはメモリのステートをデバッガーが分析できるよ
うにする。パス370を通してプロセッサコアにブレー
クポイント信号が発生される時、プロセッサコア100
はパス250を通して埋め込み型ICEユニット150
にデバッグアクノーレッジ信号を送り、その処理を中止
したことを確認する。
【0046】好ましい実施例の埋め込み型ICEユニッ
ト150は、ハーバードアーキテクチャまたはフォンノ
イマンアーキテクチャのいずれかを有するデータ処理装
置と共に使用する他に、キャッシュを有しないデータ処
理装置、例えば図3に示されているようなデータ処理装
置と共に使用することも可能である。図3に示されてい
るように、このプロセッサコア100はプロセッサバス
ライン450、455、460を介してメモリ140に
プロセッサコア100が接続されている。プロセッサコ
ア100が命令またはデータ値を必要とすると、プロセ
ッサコアはその命令またはデータ値のメモリアドレスを
プロセッサアドレス(PA)バス450に出力し、更に
プロセッサ制御(PC)バス460にプロセッサ制御信
号を発生する。このプロセッサ制御信号はメモリ140
によって受信され、PAバス450に出力されたアドレ
スに記憶された命令またはデータ値をメモリが検索する
ように促す。命令フェッチとデータフェッチとを区別す
る別の制御信号も更に設けられている。検索された命令
またはデータ値はメモリ140からプロセッサデータ
(PD)バス455に出力され、このバスからプロセッ
サコア100によって読み出される。プロセッサコア1
00はPDバス455を通して命令またはデータ値を受
信する他に、PDバス455を通してメモリ140にデ
ータ値を出力し、メモリに記憶できるようにすることも
可能である。
【0047】埋め込み型ICEユニット150は、命令
またはデータアクセスに関する必要な情報を受信するよ
うに種々のプロセッサバス450、455、460に接
続されており、図1、2および4を参照して先に説明し
たのと同じように作動する。以上で本発明の好ましい実
施例に係わる埋め込み型ICEユニット150の一般的
な構造について説明したので、次に図5〜7を参照して
埋め込み型ICEユニット150内のステートマシン3
00の作動についてより詳細に説明する。
【0048】図5は、単一ステップ作動モードで作動す
る際に好ましい実施例のデータ処理装置によって発生さ
れる多数の信号の間の関係を示すタイミング図である。
各クロックサイクルの間が分離されていることを示すた
めに垂直線520が加えられている。これら種々のクロ
ックサイクルの間のステートマシン300のステート
(SM STATE)は、図5の底部に表示されてお
り、Iはステートマシンがアイドルステートにあり、F
1はステートマシン300が第1フェッチステートにあ
り、F2はステートマシン300が第2フェッチステー
トにあることを示す。図6にはこれらステートおよびス
テート間の関係が示されている。
【0049】第1クロックサイクルFE1の間、プロセ
ッサクロックは第1命令をフェッチするようになってい
る。従って、次のクロックサイクルの間のクロック信号
500の立ち上がりエッジでは、プロセッサコアは命令
フェッチを開始するために論理「0」値を有するInMREQ
信号510を発生し、同時に命令バスにその命令のアド
レスを出力するようになっている。FE1クロックサイ
クルにおけるクロックの立ち上がりエッジでは、ステー
トマシン300はプロセッサによって制御バスに第1In
MREQ信号が発生されたことを通知し、従って、アイドル
ステートを脱出し、F1ステートに移行する。FE1ク
ロックサイクルの終了時に第1命令フェッチリクエスト
に対応する命令データ530は、命令データ(ID)バ
スに戻される。
【0050】次にクロックサイクルでは、プロセッサは
(図5における参照符号DE1によって表示される)第
1命令をデコードするようにされ、(図5における参照
符号FE2によって表示される)メモリまたはキャッシ
ュからの第2命令もフェッチする。FE1クロックサイ
クルにおけるクロックの立ち上がりエッジとFE2クロ
ックサイクルにおけるクロックの立ち上がりエッジとの
間で、制御バス上にInMREQ信号がアサートされ、この命
令の対応するアドレスは命令バス上に出力される。更に
FE2クロックサイクルにおけるクロックの対応するエ
ッジではステートマシン300は第2InMREQ信号が発生
されたことを認識し、よってステートマシンはF1ステ
ートからF2ステートへ移行する。このようなFE2ク
ロックサイクルの終了時に第2命令リクエストに対応す
る命令データ535が命令データバスを通してプロセッ
サコアに戻される。
【0051】更に、FE2クロックサイクルにおけるク
ロックの立ち上がりエッジにて、ステートマシン300
は第2InMREQ信号が発生されていることを認識し、よっ
て第2命令フェッチが行われたことを認識しているの
で、ステートマシン300はFE2クロックサイクルの
クロックの立下りエッジで、ブレークポイント信号54
0をアサートするようになっている。FE2クロックサ
イクルにおけるクロックの立下りエッジとブレークポイ
ント信号540の発生との関係は、図5における矢印5
60によって表示されている。
【0052】次のクロックサイクルでは、プロセッサ1
00は(図5における参照符号EX1によって表示され
る)第1命令を実行し、更に(図5における参照符号D
E2によって表示される)第2命令をデコードするよう
になっている。更にプロセッサは、メモリまたはキャッ
シュから第3命令をフェッチし、よって第3InMREQ信号
がアサートされる。このクロックサイクルにおけるクロ
ックの立ち上がりエッジでは、ステートマシン300は
第3InMREQ信号が発生されたことを認識し、更にプロセ
ッサコアから埋め込み型ICEユニット150へのデバ
ッグアクノーレッジ信号550がまだ低レベルであるこ
とも認識する。このことは、プロセッサコア100がま
だ命令処理を停止していないことを示している。このよ
うな状況では、ステートマシンは図6に示されるような
F2ステートのままである。この理由は、プロセッサが
一旦停止すると、ステートマシンはアイドルステートに
戻るにすぎないからである。
【0053】ステートマシン300は、まだ論理「1」
レベルのデバッグアクノーレッジ信号550を受信して
いないので、このクロックサイクルの終了時に次のクロ
ックサイクルにおけるブレークポイント信号540を再
アサートするようになっている。第1命令は、例えば分
岐条件となることがあり、よって第1命令の直後に第2
命令を実行すると自動的にみなすことができないので、
デバッグアクノーレッジ信号550がアサートされるま
でフェッチされるその後の各命令に対し、ブレークポイ
ント信号は再アサートされることが好ましい。プロセッ
サがブレークポイントされた命令を処理するまで、すな
わちデバッグアクノーレッジ信号がプロセッサによって
アサートされるポイントにて、パイプラインの実行ステ
ージに命令が到達するまで、命令はフェッチされ続け
る。
【0054】図5を参照すると、次のクロックサイクル
において、プロセッサコアは第2命令を実行しており、
ブレークポイント信号540を受信するので、プロセッ
サコアは命令の処理を停止し、この次のクロックサイク
ルにおけるクロックの立ち上がりエッジでデバッグアク
ノーレッジ信号550を発生するようになっている。従
って、先のクロックサイクルでフェッチされ、デコード
された第2命令は、このクロックサイクルでは実行され
ず、従って、このクロックサイクルにおけるクロックの
立ち上がりエッジにてステートマシンはプロセッサが停
止したことを表示するデバッグアクノーレッジ信号55
0の存在を認識し、よってアイドルステートに戻る。次
に、このクロックサイクルの立下りエッジにてデータ処
理装置はデバッグステートに入り、このデバッグステー
トではInMREQ信号は命令フェッチが行われないことを表
示するハイレベルに留まる。プロセッサコアはブレーク
ポイント信号に応答しており、よって、もうブレークポ
イント信号を発生する必要はないので、ブレークポイン
ト信号540は低レベルのままであり、デバッグアクノ
ーレッジ信号550はプロセッサが停止したことを表示
する高レベルのままである。
【0055】デバッガーがプロセッサコアおよび/また
はメモリのステートの分析を終了すると、クロックはオ
ンに戻るように切り換えられ、デバッグアクノーレッジ
信号550はクロックの第1の立ち上がりエッジで論理
「0」レベルに戻る。更にプロセッサコアは、第2命令
が再フェッチされることを求めるためのInMREQ信号51
0を発生する。図5に示されるように、第2命令に対
し、単一ステッププロセス全体が繰り返され、この結
果、第2命令が実行されると、データ処理装置は再びデ
バッグステートになる。
【0056】図6は、図5を参照してこれまで説明した
ステートマシンのステートの概要を示すものである。従
って、ステートマシン300は第1命令フェッチが行わ
れるまでアイドルステート600のままであり、第1命
令フェッチが生じた時点でステートはF1ステート61
0に変わる。次に第2命令フェッチが生じると、ステー
トマシンはF1ステートからF2ステート620に移行
する。ステートマシン300はプロセッサが停止したこ
とを表示するデバッグアクノーレッジ信号550が受信
されるまで、F2ステート620のままであり、デバッ
グアクノーレッジ信号が受信された時点でステートマシ
ンはF2ステート620からアイドルステート600に
戻る。
【0057】図7にはステートマシン300の機能を行
うための好ましい実施例で使用される回路が示されてい
る。論理回路700は命令フェッチが発生されると論理
「0」の値となるInMREQ信号、プロセッサが停止すると
論理「1」の値となるデバッグアクノーレッジ(DBGAC
K)信号、および単一ステップを行うかどうかを示すよ
うセットされる、制御レジスタ210内のビット値であ
るCTL 信号を受信するようになっており、このCTL 信号
は単一ステップ方法を実行すべき時は論理「1」の値を
有する。論理回路700はステートマシンのステートを
示す2ビットの情報を受信するようにもなっており、こ
れら2ビットは「StepState 」と称される。StepState
[1:0]の値はステートマシン300の次のステート
を表示するための論理回路700によって出力される
「NextState 」[1:0]信号に応じて決まり、論理回
路700への種々の入力信号と本発明の好ましい実施例
により論理回路700から出力されるNextState [1:
0]の値との間の関係は次の表に示される。
【0058】
【表1】
【0059】上記表では、値00はステートマシン30
0のアイドルステートに対応し、値「01」はステート
マシン300のF1ステートに対応し、値「10」はス
テートマシン300のF2ステートに対応する。データ
処理回路に、まず電力が供給されると、パス715を通
してDタイプレジスタ710、更にDタイプラッチ72
0にもリセット信号が送られる。このリセット信号はD
タイプレジスタ710がStepState としての値「00」
を出力するようにさせ、Dタイプラッチ720が「Step
Bkpt」信号を「0」にリセットするようにさせる。
【0060】図5を参照すると、FE1クロックサイク
ルの間、InMREQ信号は低レベルになり、DBGACK信号は低
レベルとなり、CTL 信号は高レベルとなり、単一ステッ
プ動作を実行すべきと見なされる。ステップステートが
「00」となると、上記表からNextState がF1ステー
トに対応する「01」となることが示される。
【0061】Dタイプレジスタ710は、このNextStat
e 値を受信し、パス730を通してクロック信号も受信
する。FE1クロックサイクルの間、クロックの立ち上
がりエッジでDタイプレジスタ710はNextState 値、
すなわちステップステートとしての「01」を出力し、
このステップステートは論理回路700へ入力される。
更にパス760を通してAND ゲート780にStepState
のビット「1」が送られる。このAND ゲート780も
(インバータ770を介し)反転されたDBGACK信号を受
信するようになっている。ステップステート信号の第1
ビットはこのケースが0であるので、AND ゲート780
によって出力される信号は「0」となる。
【0062】Dタイプラッチ720はAND ゲート780
からの出力信号、更にクロック信号730を受信し、F
E1クロックサイクルにおけるクロックの立下りエッジ
にて信号StepBkptとしてAND ゲート780から受信した
信号を出力する。AND ゲート780からの信号はこのケ
ースでは0であるので、StepBkpt信号も0となる。
【0063】次のクロックサイクルではInMREQおよびDB
GACKの双方は低レベルであり、CTLは高レベルのままで
あり、StepState は「01」である。上記表に示されて
いるように、論理回路700により出力される次のステ
ートは「10」となる。従って、この次のクロックサイ
クルにおけるクロックの立ち上がりエッジでは、ステー
ト「10」がDタイプレジスタ710によってStepStat
e として出力され、このステートはステートマシン30
0のF2ステートに対応する。DBGACK信号は「0」であ
るので、AND ゲート780はインバータ770からの論
理「1」の値を受信する。更に、このステップステート
値の第1ビットは「1」であるので、AND ゲートの第2
入力端で論理「1」信号も受信し、よってDタイプラッ
チ720に論理回路「1」信号を出力する。従って、D
タイプラッチ720によりクロックサイクルの立下りエ
ッジでStepBkpt信号として論理「1」信号が出力され
る。図4に示されるように、このStepBkpt信号は、パス
330を通してORゲート320に出力される信号であ
り、この結果、プロセッサコアにブレークポイント信号
が発生される。
【0064】第3クロックサイクルではInMREQおよびDB
GACKは再び低レベルとなり、CTL は高レベルとなり、ス
テップステート信号は[10]となる。表の最終行に示
されるように、論理回路700によって出力される次の
ステートは値「10」のままであり、よってこのクロッ
クサイクルの立下りエッジではStepBkpt信号は再び値
「1」となる。このようなステートの関係はプロセッサ
コアはプロセッサが停止したことを表示する高レベルの
DBGACK信号をプロセッサコアが発生するときまで続く。
上記表における第2の欄に示されているように、StepSt
ate 、InMREQ信号またはCTL 信号の値に係わらず、高レ
ベルのDBGACK信号が存在することにより、論理回路70
0によって出力される次のステートは「00」とされ
る。更に、反転したDBGACK信号はAND ゲート780にも
加えられるので、これによりAND ゲートはStepState の
値[1]に拘わらず、「0」の値を出力する。したがっ
て、クロックサイクルの降下エッジではStepBkpt信号は
「0」の値に戻る。
【0065】以上でステートマシン300の動作につい
て説明したので、次に図8〜10を参照して好ましい実
施例に係わる埋め込み型ICEユニット150内に設け
られたベクトルキャッチ論理回路310の動作について
詳細に説明する。図8は、例外、例えばデータアボート
(data aborts )が生じる時の例外ルーチンへのアクセ
スを識別するために、ベクトルキャッチ論理回路310
を使用する際の好ましい実施例のデータ処理装置によっ
て発生される種々の信号を示すタイミング図である。図
8に示された種々の信号の相互作用については、図9に
更に示されており、この図9はベクトルキャッチ論理回
路310の主な要素を示すブロック図である。
【0066】種々のクロックサイクルの間の分離を示す
ために、図8内の垂直線880が設けられている。例外
が生じた場合、プロセッサコア100がこの例外を取り
扱うために使用される例外ルーチンの第1命令を検索す
るよう、命令フェッチリクエストを発生する。従って、
プロセッサコアはInMREQ信号を発生する他に、命令アド
レスバスにアドレス810も発生する。このアドレス
は、例外ルーチンにおける第1命令のアドレスに対応す
る。同時にプロセッサコア100により、評価信号も出
力される。この評価信号はInMREQ信号に加えて、制御バ
スに出力されることが好ましく、この信号は命令フェッ
チが例外ルーチンの命令に関連することを表示する。好
ましい実施例では、この評価信号は「VectAdd 」信号と
称され、図8ではライン820によって示されている。
【0067】図9に示されるように、ベクトルキャッチ
論理回路310内のデコード論理回路900に命令アド
レス情報およびVectAdd 信号が入力される。好ましい実
施例では、デコード論理回路900には命令アドレスの
うちのビット4〜2しか入力されない。好ましい実施例
では、どの命令ルーチンにアクセス中かを判断するの
に、これらビットしか必要でないからである。しかしな
がら当業者であれば、必要に応じてデコード論理回路9
00に命令アドレスの任意の数のビットを与えることが
できることが理解できよう。
【0068】デコード論理回路900はベクトルキャッ
チレジスタ930にもアクセスし、これらレジスタは図
4を参照してこれまで述べた埋め込み型ICEユニット
150内の制御レジスタ210のエクストラフィールド
となっている。好ましい実施例では、8つの例外ルーチ
ンが設けられており、よってベクトルキャッチレジスタ
930には8つのフィールドが設けられている。更に各
フィールドは、デバッガーが対応する例外ルーチンへの
アクセスを識別したいかどうかを表示するよう設定可能
な1ビットを含むことが好ましい。
【0069】例外ルーチンへのアクセスが行われている
ことを表示するよう、VectAdd 信号が高レベルであると
仮定すると、デコード論理回路900はアドレスのうち
のビット4〜2、およびどの例外ルーチンがアクセス中
であるか、更にベクトルキャッチレジスタ930内の対
応するビットがセットされているかどうかを判断するた
めのベクトルキャッチレジスタ930からの対応するビ
ットを使用するようになっている。後に図10を参照
し、上記機能を実行するための、本発明の好ましい実施
例におけるデコード論理回路900内に含まれる実際の
論理回路について詳細に説明する。
【0070】デバッガーが決定された例外ルーチンへの
アクセスを識別したいことを、ベクトルキャッチレジス
タ930内の対応するビットが表示する場合、デコード
論理回路900によりパス940を通してDタイプラッ
チ910に「VDecode 」信号が出力される。このVDecod
e 信号は図8においてライン830によって示されてお
り、VectAdd 信号と同様な形態であるが、デコード論理
回路900が必要な処理を実行するのに必要な時間によ
り、時間がずれていることが判る。
【0071】Dタイプラッチ910はパス970を通し
てクロック信号を受信し、よってクロックの立下りエッ
ジでパス950を通して「VTest 」信号としてVDecode
信号を出力するようになっている。このVTest 信号は、
図8ではライン840によって示されており、フェッチ
サイクルの開始を示すクロックの立下りエッジの後で、
このVTest 信号が出力されることが理解できよう。
【0072】VTest 信号は、パス970を通してクロッ
ク信号も受信するようになっている別のDタイプラッチ
920によって受信される。従って、フェッチサイクル
の終了時におけるクロックの立下りエッジでDタイプラ
ッチ920はVBkpt 信号としてのVTest 信号をパス96
0を通して出力するようになっている。このVBkpt 信号
は、図4を参照して先に示したように、パス340を通
してORゲート320へベクトルキャッチ論理回路31
0によって出力される信号に対応する。従って、図4に
示された埋め込み型ICEユニット150内のORゲート
320はベクトルキャッチ論理回路310からのVBkpt
信号を受信した際に、ブレークポイント信号を出力する
ようになっている。図8では、VBkpt 信号はライン85
0によって示され、ブレークポイント信号はライン86
0によって示されている。信号がベクトルキャッチ論理
回路310からORゲート320へ通過し、ORゲート32
0によって処理されるのにかかる時間のためにブレーク
ポイント信号860は一部がVBkpt 信号850の後で発
生されることが、図8から理解できよう。
【0073】最後に、図8を参照すると、命令アドレス
バス上に発生されるアドレス810に対応する命令デー
タ870は、フェッチサイクルの終了に向かって命令バ
スを通してプロセッサコアに戻される。図8および図9
の上記説明から、例外ルーチン命令がフェッチされるフ
ェッチサイクル直後のクロックサイクルにおけるブレー
クポイント信号のアサートが、上記方法によって保証さ
れることが理解できよう。従って、その命令が実行され
る前にプロセッサコアは強制的に処理を停止させられ
る。性質上、例外ルーチン命令は遅延を伴うことなく実
行されるので、図8に示されるようにブレークポイント
信号を1回アサートすれば充分である。
【0074】図10は、図9に示されたデコード論理回
路900をより詳細に示す。図10に示されるように、
このデコード論理回路900はパス980を通して命令
アドレスのビット4〜2を受信し、パス990を通して
VectAdd 信号を受信し、パス985を通してベクトルキ
ャッチレジスタからの8ビットを受信する。命令アドレ
スのうちのビット4〜2はインバータ992によって反
転され、反転されたアドレスNA[2:0]を形成し、
この信号は再び反転され、バッファ化されたアドレス指
定されたビットBA[2:0]を形成する。
【0075】好ましい実施例では命令アドレスのうちの
ビット4〜2がすべて「0」であり、従ってNA信号の
うちのビット2〜0がすべてが「1」であれば、第1例
外ルーチンにアクセスされる。更にベクトルキャッチレ
ジスタ930のビット0は、この例外ルーチンに対応
し、よってベクトルキャッチレジスタのビット0はNA
信号のうちのビット2〜0と共にAND ゲート996へ送
られる。更にAND ゲート996はパス990を通してVe
ctAdd 信号を受信し、この信号は例外ルーチンへの命令
フェッチが行われる時はいつも高レベルである。従っ
て、図10を参照するとNA信号のビット2〜0が高レ
ベルである場合、ベクトルキャッチレジスタのビット0
が高レベルであり(デバッガーが第1例外ルーチンへの
アクセスの識別を望むことを表示する場合)、およびVe
ctAdd 信号が高レベルであり、例外ルーチンへのアクセ
スが行われることを表示する場合、AND ゲート996は
レベル「1」の信号を出力するだけであることが理解で
きよう。
【0076】ベクトルキャッチレジスタ930の他の7
つのビットの各々に対し、同様なAND ゲート998、9
99が設けられており、これらAND ゲート998、99
9の特定の例外ルーチンに応じてNA信号またはBA信
号のいずれかからの選択的ビットを受信するようになっ
ている。したがって、一例として命令アドレスのうちの
ビット4および3が0であり、命令アドレスのうちのビ
ット2が1である場合、第2例外ルーチンにアクセスさ
れる。この場合、NA信号のうちのビット2および1は
高レベルとなり、BA信号のうちのビット0は高レベル
となるので、これらビットはベクトルキャッチレジスタ
のうちのビット1の他にAND ゲート998へ送られる。
したがって、第2例外ルーチンにアクセスされ、ベクト
ルキャッチレジスタのうちのビット1が高レベルにセッ
トされ、デバッガーがその第2例外ルーチンへのアクセ
スを識別するのに関心のあることを表示する場合、AND
ゲート998は、例外ルーチンへのアクセスが行われて
いるのを表示するのにVectAdd 信号が高レベルである限
り、ORゲート1000に高レベル信号を発生する。
【0077】最終例として、命令アドレスのうちのビッ
ト4〜2がすべて高レベルであり、よってBA信号のう
ちのビット2〜0が高レベルである場合、第8例外ルー
チンにアクセスされる。従って、AND ゲート999はB
A信号のうちのビット2〜0およびベクトルキャッチレ
ジスタ930のうちのビット7を受信するようになって
いる。従って、ベクトルキャッチのうちのそのビットが
セットされており、BA信号のうちの対応するビット2
〜0が高レベルであれば、AND ゲート999はORゲート
1000へ論理「1」信号を出力し、VectAdd 信号は高
レベルとなり、例外ルーチンへのアクセスが行われてい
ることを示す。ORゲート1000がAND ゲート996、
998、999のうちのいずれかから論理「1」信号を
受信する場合、ORゲートは論理「1」の値としてVDecod
e 信号を出力する。
【0078】本発明の好ましい実施例に係わるデータ処
理装置のうちの上記記載から、単一ステッピング機能お
よび例外ルーチンへのアクセスの識別をそれぞれ行う専
用ステートマシン300およびベクトルキャッチ論理回
路310を設けたことにより、他の目的に自由に使用で
きる埋め込み型ICEユニット内に任意の一般的ハード
ウェアブレークポイントユニットを残しながら、これら
一般的なデバッギング条件を取り扱うための、特に効率
的な技術が提供される。
【0079】以上で本明細書に特定の実施例を説明した
が、本発明はこの実施例に限定されるものでなく、発明
の範囲内で多くの変形および追加を行うことができるこ
とが理解できよう。例えば本発明の範囲から逸脱するこ
となく、従属請求項の特徴事項と独立請求項の特徴事項
との種々の組み合わせが可能であることが理解できよ
う。
【図面の簡単な説明】
【図1】データ処理装置がハーバードアーキテクチャを
有する、本発明の第1実施例に係わるデータ処理装置を
示す。
【図2】データ処理装置がフォンノイマンアーキテクチ
ャを有する、本発明の第2実施例に係わるデータ処理装
置を示す。
【図3】データ処理装置がキャッシュを使用せず、代わ
りにプロセッサコアがメモリに直接アクセスするように
なっている、本発明の第3実施例に係わるデータ処理装
置。
【図4】本発明の好ましい実施例に係わる埋め込み型I
CEユニットの主要部品を示す。
【図5】図4のステートマシンに対応する種々の信号の
間の関係を示すタイミング図である。
【図6】図4に示されたステートマシンの種々のステー
トの間の関係を示すステート図である。
【図7】図4に示されたステートマシンの部品を示すブ
ロック図である。
【図8】図4に示されたベクトルキャッチ論理回路に対
応する種々の信号の間の関係を示すタイミング図であ
る。
【図9】図4に示されたベクトルキャッチ論理回路の部
品を示すブロック図である。
【図10】図9のデコード論理回路内に含まれる論理回
路を示す図である。
【符号の説明】 100 プロセッサコア 110 命令キャッシュ 120 データキャッシュ 140 メモリ 150 埋め込み型ICEユニット
フロントページの続き (72)発明者 アンドリュー ジョン マーリット イギリス国 ケンブリッジシャー,ケンブ リッジ,オーク トリー アベニュー 33

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 ステップ方法を使用すべきことを表示す
    るように設定可能なフィールドを有する制御レジスタ
    と、 データ処理装置内のプロセッサコアが命令フェッチを行
    うことをリクエストした際に、第1信号を受信するよう
    になっており、プロセッサコアがリクエストした命令フ
    ェッチの数の記録を維持するようになっているステート
    マシンとを備え、 該ステートマシンが更に制御レジスタを参照し、フィー
    ルドがセットされているかどうかを判断し、フィールド
    がセットされている場合において、プロセッサコアによ
    って所定の数の命令フェッチがリクエストされると、プ
    ロセッサコアにブレークポイント信号を出力するように
    構成された、データ処理装置のためのデバッガーインタ
    ーフェースユニット。
  2. 【請求項2】 命令フェッチの所定の数が2であり、ス
    テップ方法が1回のステップ動作である、請求項1記載
    のデバッガーインターフェースユニット。
  3. 【請求項3】 第1信号が、命令フェッチのリクエスト
    されていることを示すための、プロセッサコアによって
    制御バスに出力される信号である、請求項1記載のデバ
    ッガーインターフェースユニット。
  4. 【請求項4】 プロセッサコアによって開始される命令
    またはデータアクセスに関する情報を受信するための入
    力ターミナルと、 1つ以上のハードウェアブレークポイントユニットとを
    備え、各ブレークポイントユニットがプロセッサコアに
    ブレークポイントユニット信号を送るようにする命令ま
    たはデータアクセスの属性を記憶するための多数のブレ
    ークポイントレジスタ、およびブレークポイントレジス
    タ内の属性と入力ターミナルで受信された情報とを比較
    するためのブレークポイント比較器と有し、 ブレークポイント比較器がブレークポイントレジスタ内
    の属性と入力ターミナルで受信された情報に含まれた対
    応する属性とが一致すると判断した場合、各ブレークポ
    イントユニットが前記ブレークポイント信号を発生する
    ように構成された、請求項1記載のデバッガーインター
    フェースユニット。
  5. 【請求項5】 入力ターミナルがプロセッサコアによっ
    て開始される命令またはデータアクセスに関する情報を
    受信するためのアドレスバス、データバスおよび制御バ
    スに接続されている、請求項4記載のデバッガーインタ
    ーフェースユニット。
  6. 【請求項6】 ブレークポイントユニットまたはステー
    トマシンのいずれかにより発生されるブレークポイント
    信号を受信し、プロセッサコアに単一信号を出力するた
    めの論理ゲートを更に含む、請求項4記載のデバッガー
    インターフェースユニット。
  7. 【請求項7】 デバッガーからの属性を受信し、ブレー
    クポイントレジスタ内に記憶するためのインターフェー
    スを更に含む、請求項4記載のデバッガーインターフェ
    ースユニット。
  8. 【請求項8】 命令を実行するためのプロセッサコア
    と、 請求項1に記載のデバッガーインターフェースユニット
    とを備えたデータ処理装置。
  9. 【請求項9】 命令を記憶するための命令キャッシュ
    と、 データを記憶するためのデータキャッシュと、 命令キャッシュをプロセッサコアに接続するようになっ
    ており、プロセッサコアが命令キャッシュに命令アドレ
    スを出力できるようにする命令アドレスバスおよびプロ
    セッサコアが前記命令アドレスに対応する命令を受信す
    ることができるようにする命令データバスと、 データキャッシュをプロセッサコアに接続するようにな
    っており、プロセッサコアがデータキャッシュにデータ
    アドレスを出力できるようにするデータアドレスバスお
    よびプロセッサコアが前記データアドレスに対応するデ
    ータ値を受信し、またはデータ値をデータキャッシュに
    出力できるようにするデータデータバスとを更に備え
    た、請求項8記載のデータ処理装置。
  10. 【請求項10】 デバッガーインターフェースユニット
    が、 プロセッサコアによって開始される命令またはデータア
    クセスに関する情報を受信するための入力ターミナル
    と、 1つ以上のハードウェアブレークポイントユニットとを
    備え、各ブレークポイントユニットがプロセッサコアに
    ブレークポイントユニット信号が送られるようにする命
    令またはデータアクセスの属性を記憶するための多数の
    ブレークポイントレジスタ、およびブレークポイントレ
    ジスタ内の属性と入力ターミナルで受信した情報とを比
    較するためのブレークポイント比較器と有し、 ブレークポイント比較器がブレークポイントレジスタ内
    の属性と入力ターミナルで受信された情報に含まれた対
    応する属性とが一致すると判断した場合、各ブレークポ
    イントユニットが前記ブレークポイント信号を発生する
    ようになっており、デバッガーインターフェースユニッ
    トの入力ターミナルが命令アドレスバスおよび命令デー
    タバスに接続され、ブレークポイント比較器がリクエス
    トした命令アクセスに関する必要な情報を1つ以上のハ
    ードウェアブレークポイントユニットが受信することが
    できるようにする、請求項9記載のデータ処理装置。
  11. 【請求項11】 デバッガーインターフェースユニット
    の入力ターミナルがデータアドレスバスおよびデータデ
    ータバスに接続され、ブレークポイント比較器が要求し
    たデータアクセスに関する必要な情報を1つ以上のハー
    ドウェアブレークポイントユニットが受信することがで
    きるようにする、請求項10記載のデータ処理装置。
  12. 【請求項12】 (a)ステップ方法を使用すべきこと
    を表示するよう、制御レジスタ内のフィールドをセット
    する工程と、 (b)データ処理装置内のプロセッサコアが命令フェッ
    チを行うことをリクエストした時に、第1信号を受信す
    る工程と、 (c)プロセッサコアがリクエストした命令フェッチの
    数の記録を維持する工程と、 (d)前記工程(a)にて制御レジスタのフィールドが
    セットされている場合において、プロセッサコアによっ
    て所定の数の命令フェッチがリクエストされると、プロ
    セッサコアにブレークポイント信号を出力する工程とを
    備えた、ステップ方法を実行するためにデータ処理装置
    のためのデバッガーインターフェースユニットを作動さ
    せる方法。
JP10133255A 1997-09-09 1998-05-15 ソフトウェアをデバッグするための装置および方法 Pending JPH11110255A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9719171.2 1997-09-09
GB9719171A GB2329048A (en) 1997-09-09 1997-09-09 A debugger interface unit with a stepping mode

Publications (1)

Publication Number Publication Date
JPH11110255A true JPH11110255A (ja) 1999-04-23

Family

ID=10818809

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10133255A Pending JPH11110255A (ja) 1997-09-09 1998-05-15 ソフトウェアをデバッグするための装置および方法

Country Status (2)

Country Link
JP (1) JPH11110255A (ja)
GB (1) GB2329048A (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2366006B (en) * 1999-12-23 2004-06-30 St Microelectronics Sa A computer system with debug facility
US7237090B1 (en) 2000-12-29 2007-06-26 Mips Technologies, Inc. Configurable out-of-order data transfer in a coprocessor interface
US7287147B1 (en) 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
US7181728B1 (en) 2001-04-30 2007-02-20 Mips Technologies, Inc. User controlled trace records
US7178133B1 (en) 2001-04-30 2007-02-13 Mips Technologies, Inc. Trace control based on a characteristic of a processor's operating state
US7069544B1 (en) 2001-04-30 2006-06-27 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data
US7185234B1 (en) 2001-04-30 2007-02-27 Mips Technologies, Inc. Trace control from hardware and software
US7124072B1 (en) 2001-04-30 2006-10-17 Mips Technologies, Inc. Program counter and data tracing from a multi-issue processor
US7168066B1 (en) 2001-04-30 2007-01-23 Mips Technologies, Inc. Tracing out-of order load data
US7134116B1 (en) 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
US7065675B1 (en) 2001-05-08 2006-06-20 Mips Technologies, Inc. System and method for speeding up EJTAG block data transfers
US7043668B1 (en) 2001-06-29 2006-05-09 Mips Technologies, Inc. Optimized external trace formats
US7231551B1 (en) 2001-06-29 2007-06-12 Mips Technologies, Inc. Distributed tap controller
US7159101B1 (en) 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
CN116383091B (zh) * 2023-05-29 2023-08-29 珠海妙存科技有限公司 eMMC验证平台的启动方法、启动装置及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0762278A1 (en) * 1995-08-30 1997-03-12 Motorola, Inc. Data processor with built-in emulation circuit

Also Published As

Publication number Publication date
GB2329048A (en) 1999-03-10
GB9719171D0 (en) 1997-11-12

Similar Documents

Publication Publication Date Title
JP4094724B2 (ja) ソフトウェアをデバッグする際に例外を識別するための装置および方法
US7689867B2 (en) Multiprocessor breakpoint
KR0168656B1 (ko) 데이터 처리 시스템
US6550056B1 (en) Source level debugger for debugging source programs
EP2686772B1 (en) Diagnosing code using single step execution
US7506205B2 (en) Debugging system and method for use with software breakpoint
GB2329048A (en) A debugger interface unit with a stepping mode
EP0762278A1 (en) Data processor with built-in emulation circuit
US20090006934A1 (en) Triggering diagnostic operations within a data processing apparatus
US7100027B1 (en) System and method for reproducing system executions using a replay handler
CN114780409A (zh) 基于程序运行进程的断点设置方法、电子设备和存储介质
US6606590B1 (en) Emulation system with address comparison unit and data comparison unit ownership arbitration
JPS60262251A (ja) マイクロプロセツサ開発支援装置
JPH08335177A (ja) プロセッサ動作観察方法及び装置
US5901300A (en) Control store address stop
US6671665B1 (en) Emulation system with search and identification of optional emulation peripherals
JPH07281924A (ja) トレース装置及びこれを備えたエミュレータ
JP2000222243A (ja) デバッグ装置及びデバッグ方法
Hohl et al. Debug Support on the ColdFire Architecture
JPH0322146A (ja) マイクロプログラム制御装置
JPH09114692A (ja) インサーキットエミュレータ
JPH0373035A (ja) デバッグ装置
JPH09237201A (ja) マイクロコンピュータアナライザ
JPH0333940A (ja) 評価用マイクロプロセッサ
JPS6170644A (ja) プログラムデバク方式