JPH10275092A - マイクロプロセッサのトレース情報出力方法 - Google Patents

マイクロプロセッサのトレース情報出力方法

Info

Publication number
JPH10275092A
JPH10275092A JP9079719A JP7971997A JPH10275092A JP H10275092 A JPH10275092 A JP H10275092A JP 9079719 A JP9079719 A JP 9079719A JP 7971997 A JP7971997 A JP 7971997A JP H10275092 A JPH10275092 A JP H10275092A
Authority
JP
Japan
Prior art keywords
packet
output
trace
address
branch
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
JP9079719A
Other languages
English (en)
Inventor
Noriyuki Nakamura
宣幸 中村
Tatsuo Yano
達男 矢野
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.)
Hewlett Packard Japan Inc
Original Assignee
Hewlett Packard Japan 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 Hewlett Packard Japan Inc filed Critical Hewlett Packard Japan Inc
Priority to JP9079719A priority Critical patent/JPH10275092A/ja
Priority to EP98302523A priority patent/EP0869434A3/en
Publication of JPH10275092A publication Critical patent/JPH10275092A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】実行アドレス、データ、プロセッサステータス
等のトレース情報を出力するマイクロプロセッサにおい
て、トレース情報の出力のためにウエイトがかかる可能
性を低減する。 【構成・動作】トレース情報を可変長のパケットの形態
で出力する。これにより、平均すると従来よりも短時間
で1つのトレース情報の送出を終了できるので、リアル
タイムトレースを行っている間にトレース情報のオーバ
ーランが起こる確率が減少する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マイクロコンピュータ
を応用したシステムのデバッグを行なうためのトレース
情報の出力方法に関し、更に詳細には動作状態を表すト
レース情報を出力する機能を組み込んだマイクロプロセ
ッサにおけるトレース情報の出力方法に関する。
【0002】
【従来の技術】マイクロプロセッサを応用システムのデ
バッグに当たって、トレース情報、つまりプログラム実
行中のアドレス、データ、その他プロセッサの各種の状
態等の一連の情報を獲得することは重要である。特に、
トレース情報を獲得する際にマイクロプロセッサの動作
に影響を与えないこと、具体的にはマイクロプロセッサ
の動作への余分なウエイトの挿入等によって動作速度を
低下させない(リアルタイムトレース)ことが重要であ
る。従って、マイクロプロセッサの動作速度が向上して
いくにつれて、デバッグ時に外部にトレース情報の取得
用回路等を接続するという方式を取ることが困難になっ
ていくため、マイクロプロセッサ中にトレース情報を出
力する機能を組み込むことが提案されている。マイクロ
プロセッサ中にリアルタイムトレース機能を内蔵した従
来例を次に説明する。
【0003】[ピン構成と出力方法]従来、トレース出力
を行なうピンは、クロック信号ピン1本、ステータス信
号ピン数本と、データ信号ピン数本で構成されていた。
ここで、各信号ピンの機能は以下の通りである。
【0004】クロック信号ピン:プロセッサのコアクロ
ックと同一の周波数で、トレースの出力の基準となるク
ロック信号である。
【0005】ステータス信号ピン:クロック信号ピンに
同期して、命令の実行状態、例外の発生、分岐命令実行
による分岐の発生等の、プロセッサの状態を表示する。
【0006】データ信号ピン:例外や分岐の発生による
分岐先アドレスを、クロック信号ピンに同期して表示す
る。分岐先アドレスの出力は複数クロックに渡り表示さ
れるため、ステータス信号ピンがプロセッサの状態とと
もに、データ(つまり、分岐先アドレス)出力の開始を
も示す。
【0007】図1に、32ビットのアドレス空間を持ち、
命令長が32ビット固定のプロセッサについてのトレース
出力例を示す。時刻0における分岐により、分岐したこ
と及び分岐先アドレスの出力を行なうことを示すステー
タス"JMP"を出力し、データ出力線より分岐先アドレス
の出力を開始する。このとき、プログラムカウンタ(P
C)の下位2ビット(A0,A1)が常に0に固定なため、こ
れら2ビットは出力せず、A2から始めて順次上位側ビッ
トへ向かって出力を行なう。
【0008】なお、このようなトレース情報の出力方法
についての詳細は、たとえば特開平8−185336を
参照されたい。
【0009】ここで、ステータス信号ピンの本数や、表
示するプロセッサの状態、またこれらの状態に対応する
値は、プロセッサ毎、あるいはプロセッサコアアーキテ
クチャ毎に異なっていた。データ出力の開始点、及び出
力を行なうクロック数を表示するステータス信号ピンの
本数や意味も、マイクロプロセッサの種類により異なっ
ていた。
【0010】[PCの流れのトレース]PC流れをトレー
スするためには、デバッグモジュールより出力されたト
レース情報から、分岐や例外が、どのアドレスで発生し
(分岐元アドレス)、どのアドレスに分岐する(分岐先ア
ドレス)のかを判断できる必要がある。
【0011】以下に、従来技術における分岐元アドレス
及び分岐先アドレスの出力の態様を説明する。
【0012】[分岐元アドレス]分岐や例外が発生した場
合の分岐元アドレスは、1つ前の分岐や例外の分岐先ア
ドレスに、次の分岐が発生するまでのPCの増分を加算
することで得ることができる。そこで、従来では、上述
のように、命令を実行したかどうか、分岐が発生したか
どうか、例外が発生したかどうか、をプロセッサコアク
ロック毎にステータス信号で表示し、分岐や例外から次
の分岐が発生するまでの間に出力されたところの、命令
を実行したかどうかを示すステータス全てをトレースし
て集計することにより、分岐元アドレスを計算してい
た。
【0013】上述の例では、"JMP"での分岐先アドレス"
A"に、ステータス"BRT"までに出力された"SEQ"の数に4
を乗じた値を加えたものが、分岐命令のアドレスであ
る。なお、JMP直後のSEQは分岐遅延スロットの命令であ
るため、ここでは数えない。
【0014】[分岐先アドレス]分岐や例外が発生した場
合の分岐先アドレスに関しては、分岐先アドレス出力の
ビット数は固定であるか、ああるいは予め設定されたビ
ット数を出力していた。
【0015】分岐先アドレス出力のビット数が固定であ
る場合の例は、図1で示した。
【0016】一方、予め設定されたビット数を出力する
例を示すと、先ず、分岐が発生した場合に出力する分岐
先アドレスのビット数をレジスタにより設定してから、
トレースを開始する。例えば、32ビットのアドレス空間
を持つプロセッサの場合、分岐先アドレスのビット長
を、32ビット全て、下位16ビット等から選択し、予めレ
ジスタに設定しておく。
【0017】以下の<予め定められたビット数を出力す
る例>は、分岐が発生した時に分岐先アドレスの下位1
6ビットだけを出力する例を示す。 <予め定められたビット数を出力する例> ステータス X__$5__X__$9__X__$0
__X__tgt_X テ゛ータ X__$0__X__$0__X__3:
0_X__7:4_X_11:8_X15:12_X ここで、 PST: $5: 分岐命令による分岐が発生したこと
を示す $9: これより、16bitのデータ(この例では、分岐先アド
レスの下位16ビット)の出力を開始することを示す $0: ストール tgt: 分岐先命令の動作を示す。たとえば、命令を実行
した場合には、"$1"となる。
【0018】[データトレース]データトレースは、デー
タをトレース出力ピンに出力する特殊な命令をデバッグ
するプログラム中に挿入することにより行なっていた。
【0019】
【発明が解決しようとする課題】
[コアクロックの高速化]プロセッサのコアクロックの周
波数は高速になってきているが、外部に入出力できる周
波数を同様に高速化することは困難になってきている。
このため、プロセッサの性能を向上させる手法として、
プロセッサ内部は高い周波数で動作させ、外部との入出
力ピンの周波数はそれよりも低い動作周波数で動作させ
ることが多くなってきている。従って、プロセッサのコ
アクロックの周波数と同一の周波数で出力する必要のあ
る従来の方式をこのようなプロセッサに適用すると、プ
ロセッサ内部で多くのウエイトを挿入しない限り、リア
ルタイムあるいはリアルタイムに近いトレースを行うこ
とができなかった。
【0020】[プロセッサに依存しない出力形式]また、
プロセッサのコアクロックの周波数と同一の周波数でト
レース情報を出力できたとしても、2命令以上同時発行
するような機能拡張等の変更がなされたプロセッサがプ
ロセッサファミリに追加された場合に、新たにステータ
スを追加したり変更したりしなければならなかった。こ
のように、上記のような場合や、新たなプロセッサファ
ミリに対応する度に、デバッグツール(ハードウェア、
ソフトウェア)も新たに設計しなければならず、ツール
の開発の効率も悪かった。
【0021】[ピン構成の効率化、自由な本数]更に、従
来の方式では、トレース情報の出力に割り当てるピン数
は、ステータス信号ピンとデータ信号ピンの合計が4本
あるいは8本等と多く、しかも本数が固定であったた
め、チップの総ピン数及びパッケージサイズに制約を与
えていた。
【0022】[冗長なデータの削減]プログラムにはある
程度の局所性があるため、例外あるいは分岐時の分岐先
アドレスは、前回の分岐先アドレス等の最近得られたア
ドレス情報と比較するとその上位ビットが変化しないこ
とが多い。しかし、従来の方式では分岐先アドレスを出
力するに当たっては、そのアドレス全体または予め設定
されたビット数を下位ビットから出力するだけであっ
た。分岐先アドレス全体の出力の場合は、上位ビットが
変化しない場合には冗長な(不要な)データまでもが出力
されてしまう。また、予め設定されたビット数を下位ビ
ットから出力する場合には、上位ビットが変化する分岐
の場合にその上位ビットを判断することができなかっ
た。
【0023】従って、本発明は、上述の欠点を解決する
ために、プロセッサのアーキテクチャに依存しない出力
方式で、プロセッサコアの動作周波数に依存しない周波
数での出力を可能とし、できる限り少ないピン数で出力
し、そのピン数にも自由度があり、また多くの場合にリ
アルタイムトレースを行うことのできるマイクロプロセ
ッサのトレース情報の出力方法を提供することを目的と
する。
【0024】
【課題を解決するための手段】本願発明のトレース情報
の出力方法においては、トレース情報を出力できるマイ
クロプロセッサにおいて、トレース情報を可変長のビッ
ト列で構成されるパケットとして出力することにより、
上記目的を達成している。
【0025】
【実施例】図2は、本発明の一実施例が適用されるハー
ドウエア構成のブロック図である。図2において、デバ
ッグの対象となるターゲットシステム100には、マイ
クロプロセッサ101、メモリ103、入出力装置(I
/O)105が設けられている。また、必要に応じてこ
れ以外の構成要素を追加することも当然可能である。ま
た、これらの要素間は外部バス107で相互接続されて
いる。
【0026】マイクロプロセッサ101の内部には、通
常のマイクロプロセッサ動作を行うプロセッサコア11
1に加えて、デバッグ動作の一部(ここではとりわけト
レース情報の出力)をマイクロプロセッサ内で行うため
に追加されたデバッグモジュール113が設けられてい
る。デバッグモジュール113内には、トレース情報を
外部に出力するためのトレースパケット(以下で詳述す
る)を生成して出力するためのトレースパケット生成部
121が設けられている。トレースパケット生成部12
1はプロセッサコア111から分岐、割込み、例外の発
生などに関する情報を受取るとともに、命令/データア
クセス検出部123を介して、プロセッサコア111で
実行されている命令の命令アドレスあるいはその命令の
アクセス先が予め設定しておいたアドレスあるいはアド
レス範囲に一致したことやそのアドレスに関する情報を
得て、トレースパケットを生成する。
【0027】デバッグモジュール113にはこれ以外の
構成要素も含まれるが、これについては従来のロジック
アナライザやインサーキットエミュレータと同様である
ため、ここでの説明は省略する。
【0028】デバッグモジュール113のトレースパケ
ット生成部121で生成されたパケットはマイクロプロ
セッサ101のピンを介して出力され、ターゲットシス
テム100の外部に接続されたデバッグツール200内
のトレースストア回路201に与えられ、このようにし
てもたらされたトレース情報がこの回路中にストアされ
る。ホストコンピュータ300中のデバッガ301はト
レースストア回路201にストアされたトレース情報を
デバッグツール200内の通信インタフェース203、
LANや専用の接続線等を経由して取り出して解析し、
また逆にデバッグコントロール205を介して、マイク
ロプロセッサ113を制御し、実行、トレース、メモリ
アクセス、レジスタアクセス等を行わせる。なお、トレ
ースストアのためにロジックアナライザを使用する場合
などでは、トレースストアを行う部分とそれ以外の部分
が別個のモジュールになることもある。
【0029】以下では、図2のような構成のもとで行わ
れる、マイクロプロセッサからのトレース情報の出力に
ついて詳細に説明する。
【0030】[プロトコルの概要]従来、プロセッサの各
状態を固定ビット長のビット列で表し、プロセッサコア
のクロックと同一周波数のクロックに同期して、1クロ
ック期間で固定本数のステータス出力線により表示して
いた。これに対し、本発明では、プロセッサの各状態を
可変ビット長のパケットで表し、トレース出力用のクロ
ックに同期して可変本数のデータ出力線により1ないし
複数クロック期間で表示を行なう。なお、トレース出力
用のクロックは、プロセッサコアのクロックの周波数と
異なっても構わない。
【0031】[ピン構成とパケットの出力方法]この可変
ビット長のパケットを出力するための信号線は、次に示
すような3種類の信号線で構成される: a) 1本のクロック出力線 b) 1本以上のデータ出力線 c) 1本のステータス出力線
【0032】パケットはデータ出力線の本数毎のビット
列に分割され、データ出力線より、クロック出力線の信
号の変化に同期して、順次、LSBから出力される。従っ
て、パケットは複数クロックに渡り出力されることがあ
るため、ステータス出力線がパケットの区切りを表す。
【0033】図3は、パケットA, B, C, Dの4つのパケ
ットを出力した例である。ステータス出力線は各パケッ
トの出力の終了を表示している。パケットAを例にとる
と、データ出力線よりクロック毎に出力されたA-0, A-
1, A-2, A-3, A-4は、それぞれデータ出力線の本数と同
一のビット長のビット列である。パケットAを表すビッ
ト列は、このA-0, A-1, A-2, A-3, A-4のビット列を順
番に結合したものである。パケットのビット長がデータ
出力線の本数の倍数でない場合には、MSBに0を付加し、
データ出力線の本数の倍数のビット長になるようにす
る。
【0034】[パケットの種類の概要]パケットには、以
下の8つの種類がある: 1) 分岐または例外によりPCの流れが変化したことを
表すNSEQパケット。 2) 分岐または例外による分岐先アドレスを表すTPCパケ
ット。 3) 例外の発生を表すEXPパケット。 4) 一定期間、分岐または例外が発生しなかったことを
表すLSEQパケット。 5) 予め設定された条件が成立したことを表すMATCHパケ
ット。 6) 予め設定された条件がデータアクセスであるとき、
アクセスのデータを表すDATAパケット。 7) 上記パケットの発生条件が多発したために、出力さ
れなかったパケットがあることを表すOVFパケット。 8) 表示すべき上記のようなパケットがないことを表すN
OPパケット。
【0035】[NSEQパケットの説明]NSEQパケットは、分
岐または例外によりPCの流れが変化した時に出力され
る。このパケットは、下の<NSEQパケットのビット構成
>に示すように、NSEQパケットであることを示すビット
列{NSEQ}と、一つ前の分岐または例外の発生直後から今
回の分岐または例外発生直前までの間に増加したPCの
値を示すビット列{COUNT}で構成される。
【0036】
【0037】増加したPCの値を示すビット列{COUNT}
は、PCの増加する単位を1として換算した数値を2進
数で表し、下位ビットより出力する。ただし、分岐を発
生した命令の実行とその分岐遅延スロットの命令実行
は、この値に含めない。
【0038】PCの増加する単位は、プロセッサのアー
キテクチャに依存する。例えば、命令語長が2バイトと
4バイトの両方を取り得るものであるプロセッサの場合
はPCの増加する単位は2であり、命令語長が4バイト
固定であるプロセッサの場合はPCの増加する単位は4
である。
【0039】以下の<分岐発生時のパケット出力例>
に、4バイトの固定長命令のみを持つプロセッサの分岐
発生時のパケットの出力例を示す。分岐{1}が発生した
後、分岐{2}が発生するまでの間に5命令実行し、PC
の値は20増加しているため、分岐{2}によるNSEQパケ
ットのビット列{COUNT}は5(2進数で101)である。
【0040】
【0041】このパケットをトレースすれば、1つ前の
分岐または例外の分岐先アドレスに、ビット列{COUNT}
が示す、増加したPCの値を加えることにより、今回の
分岐または例外が発生した時のPCの値、すなわち分岐
元アドレスを求めることができる。
【0042】上述の例を用いると、分岐{2}の分岐命令
の分岐元アドレスは、(分岐{1}の分岐先アドレス'B')
+[(NSEQパケットの増加したPCの値を示すビット
列'5')×(命令長'4')]、すなわち'B+20'であること
がわかる。なお、分岐{1}による分岐先アドレス'B'は、
同様にして求められた分岐元アドレス'A'の命令を逆ア
センブルするか、TPCパケットにより求めることができ
る。
【0043】[LSEQパケットの説明]LSEQパケットは長い
間分岐または例外が発生しなかったことを示し、分岐ま
たは例外の後のPCの値の増加が一定の値を越える毎に
出力される。このパケットは、以下の<LSEQパケットの
ビット構成>に示すように、LSEQパケットであることを
示すビット列{LSEQ}のみで構成される。
【0044】
【0045】このパケットが出力された時は、その後に
発生した分岐または例外によるNSEQパケット中のビット
列{COUNT}、つまり増加したPCの値の計算に当たって
の起点は、先に発生した分岐または例外に対応するPC
の値ではなくこのLSEQパケット発生に対応するPCの値
である。これにより、プロセッサのPCの増加分をカウ
ントするカウンタとNSEQパケットのビット長を一定のビ
ット数以下に抑えることができる。
【0046】例えば、LSEQパケットを、PCの値が32
単位増加する毎に出力するように設定したとき、PCの
値が70単位増加した後分岐した場合には、以下の<LS
EQパケットの出力例>に示したシーケンスが発生する。
【0047】
【0048】[TPCパケットの説明]TPCパケットは、分岐
や例外が発生した場合に、分岐先アドレスを表示するた
めに出力される。このパケットは、以下の<TPCパケッ
トのビット構成>に示すように、TPCパケットであるこ
とを示すビット列{TPC}と、分岐先アドレスを表すビッ
ト列{TARGET}で構成される。分岐先アドレスを表すビッ
ト列{TARGET}は、分岐先アドレスを2進数で表し、下位
ビットより出力される。
【0049】
【0050】このパケットは、トレースした後、NSEQパ
ケットが示す分岐元アドレスの分岐命令を逆アセンブル
することにより分岐先アドレスが求められる場合には、
出力する必要はない。分岐先アドレスが求められない分
岐命令には、レジスタ間接分岐命令や、サブルーチンか
らのリターン命令等がある。分岐によりTPCパケットを
出力する場合には、NSEQパケット、TPCパケットの順に
出力する。
【0051】[EXPパケットの説明]EXPパケットは、例外
が発生した時に出力される。このパケットは、以下の<
EXPパケットのビット構成>に示すように、EXPパケット
であることを示すビット列{EXP}と、例外の原因を表す
ビット列{EXP_ID}から構成される。プロセッサのアーキ
テクチャによって例外の原因は異なる。従って、例外の
原因を表すビット列{EXP_ID}の定義はプロセッサのアー
キテクチャに依存する。
【0052】
【0053】このパケットを用いると、例外の発生及び
その原因をトレースすることができる。例外が発生した
時には、例外が発生した時のPCの値、例外が発生した
こと及び例外の原因、例外の発生による分岐先アドレス
をそれぞれ示すために、NSEQパケット、EXPパケット、T
PCパケットの順にパケットが出力される。
【0054】[MATCHパケットの説明]MATCHパケットは、
外部入力端子からトリガが通知された時、予め設定され
たアドレスに一致する命令の実行を検出した時、あるい
は予め設定されたアドレスまたはデータあるいはその両
方に一致するデータアクセスを検出した時に、出力され
る。このパケットは、<MATCHパケットのビット構成>
に示すように、MATCHパケットであることを示すビット
列{MATCH}と、成立した条件を示すビット列{INFO}で構
成される。
【0055】
【0056】成立した条件を示すビット列{INFO}は、ト
レースの結果から成立した条件を特定するためのもので
ある。データアクセスの検出の際には、設定された条件
がリードサイクルとライトサイクルのどちらでもよい場
合や、アドレスにマスクが使用された場合であっても、
リードとライトのどちらであったか、またアドレス比較
に際してマスクされていたことによってドントケアであ
った箇所が実際にはどのような値を取っていたのかを知
るための情報を、このビット列に含めることができる。
この場合のMATCHパケットの構成例を、以下の<MATCHパ
ケットのデータアクセスのビット構成>に示す。なお、
ここでコンパレータのチャンネルという用語を使用して
いるが、これは一致条件を複数設定できる構成を取る場
合にそれだけの個数のコンパレータを設け、これらを夫
々チャンネルと呼ぶのである。
【0057】
【0058】アクセスしたアドレスを示すビット列{ACC
_ADDR}は、アクセスしたアドレスを2進数で表し、下位
ビットより出力する。この時、マスクされなかったビッ
トの値は不定で良い。
【0059】[DATAパケットの説明]DATAパケットは、予
め設定されたアドレスまたはデータあるいはその両方に
一致するデータアクセスを検出した時に出力される。こ
のパケットは、以下の<DATAパケットのビット構成>に
示すように、DATAパケットであることを示すビット列{D
ATA}と、アクセスのあったデータとそのサイズを示すビ
ット列{ACC_DATA},{ACC_SIZE}で構成される。
【0060】
【0061】アクセスのデータサイズの種類はプロセッ
サのアーキテクチャによって異なる。従って、アクセス
のデータサイズを示すビット列{ACC_SIZE}の定義は、プ
ロセッサのアーキテクチャに依存する。アクセスのデー
タを示すビット列{ACC_DATA}はアクセスしたデータを2
進数で表し、下位ビットより出力する。
【0062】[OVFパケットの説明]OVFパケットは、デバ
ッグモジュール内部のトレースバッファがオーバーフロ
ーし、パケットを出力できなかった場合に出力される。
このパケットは、OVFパケットであることを示すビット
列{OVF}のみで構成される。
【0063】
【0064】本発明では、1つプロセッサの状態が複数
クロックに渡り出力される。このため、パケットの出力
中に新たなパケットが発生する可能性がある。トレース
バッファは、このような場合に新たに発生したパケット
が出力できる状態になるまで、すなわち現在出力中のパ
ケットを出力し終えるまで、情報を一時的に蓄えるため
のFIFOである。
【0065】従って、パケットの発生が頻発した場合に
は、パケットの出力が追い付かずに、トレースバッファ
がオーバーフローすることがある。トレースバッファが
オーバーフローした場合には、トレースバッファに残さ
れたパケットを全て出力した後、OVFパケットを出力す
る。この期間中はパケットの発生がマスクされる。すな
わち、OVFパケットは、次に出力されるパケットとの間
にレースバッファのオーバーフローにより出力できなか
ったパケットがあることを示す。
【0066】[NOPパケットの説明]NOPパケットは、以上
で述べたパケットのいずれも出力する必要のない時に出
力される。このパケットは、NOPパケットであることを
示すビット列{NOP}のみで構成される。
【0067】
【0068】[トレースモード]次に、この出力方式をよ
り効果的なものにするためのモードを説明する。
【0069】[リアルタイム/ノンリアルタイムトレー
スモード]リアルタイム/ノンリアルタイムトレースモ
ードは、プログラムのリアルタイム性を優先するか、ト
レースの完全性を優先するか、を選択するモードであ
る。リアルタイムモードは、トレースバッファがオーバ
ーフローする可能性があるがプログラム実行のリアルタ
イム性を保証するモードである。ノンリアルタイムトレ
ースモードは、プログラムのリアルタイム性をある程度
犠牲にしてもよいから完全なトレースをとるためのモー
ドである。このモードでは、トレースバッファがオーバ
ーフローする前にプロセッサの動作をストール、つまり
停止させるため、OVFパケットは発生しない。
【0070】[出力パケットの選択]パケットを出力する
条件が成立した時に出力を行なうかどうかをパケットの
種類毎に選択するモードである。
【0071】どのパケットを出力するかを選択すること
で、必要な情報のみを出力し、リアルタイムモードにお
けるトレースバッファのオーバーフローの可能性や、ノ
ンリアルタイムトレースモードにおけるリアルタイム性
の低下を抑えることができる。例えば、PCの流れをト
レースする必要がない時には、NSEQ, LSEQ, TPCパケッ
トの出力を行なわないようにすることができる。
【0072】[選択出力.関数分岐]プログラムモジュー
ル間の分岐をトレースするモードである。TPCパケット
は、通常、分岐等のプログラムフローの変化が発生した
時、その分岐命令を逆アセンブルしても分岐先アドレス
が判断できない時に出力されるが、このモードを有効に
すると、モジュール間での分岐に使用される可能性のあ
る分岐命令で分岐が発生したすべての場合にTPCパケッ
トを出力する。このような分岐命令としては、たとえば
サブルーチン/関数呼出し命令、間接分岐命令、割り込
み/例外からの復帰命令がある。
【0073】このモードでは、TPCパケットのみをトレ
ースするだけで、モジュールレベルのプログラムの流れ
をトレースすることができる。この場合、NSEQパケッ
ト、LSEQパケットを出力する必要がなくなる。一般に、
プログラムモジュール間の分岐よりもプログラムモジュ
ール内の分岐の方が分岐の発生頻度が高いので、このモ
ードを使用することによりパケットの発生量が抑えら
れ、リアルタイムトレースが可能になる局面が更に多く
なる。また、MATCHパケット等と共にトレースすること
により、どのモジュールを実行している時にMATCHパケ
ットの条件が成立したかを知ることができる。
【0074】例として、関数mainが関数subを呼び出す
場合を以下の<関数分岐トレース>に示す。プログラム
の実行を開始する前にデータアクセスの条件を設定し、
グローバル変数glb_varのアドレスをアクセスした際にM
ATCHパケットを出力するようにしておく。
【0075】<関数分岐トレース>で示されている動作
を、プログラムの実行順に従って説明する。 1) プログラムの開始により関数mainが呼び出される。
この時に使用される分岐命令は、一般に、JSR(Jump to
Subroutine)命令やJAL(Jump and Link)命令等の、関数
を呼び出すための命令である。このような命令ではTPC
パケットを出力する。 2) 続いて、関数main中で関数subを呼び出す。この時に
使用される分岐命令も1)の場合と同様の命令であるの
で、TPCパケットを出力する。 3) 関数sub内では、先ず、for文によりループを実行す
る。この時に使用される分岐命令は、一般にPC相対の
条件分岐命令であり、また関数間の分岐には使用されな
い。このような分岐命令による分岐ではTPCパケットを
出力しない。 4) 変数glb_varへのアクセスを行なったため、MATCHパ
ケットを出力する。 5) 関数mainへリターンを行なう。この時に使用される
分岐命令は、一般にRTS(Return from Subroutine)命令
や汎用のレジスタ間接ジャンプ命令(JR命令。JumpRegis
ter)である。また、割込みや例外からの復帰命令(RTI命
令、Return from Interrupt)も使用される。このような
命令ではTPCパケットを出力する。 6) その後、再び変数glb_varへのアクセスを行なったた
めMATCHパケットを出力する。
【0076】
【0077】以上のパケットをトレースすることによ
り、先ず関数mainが呼ばれ、関数subが呼ばれ、関数sub
内で変数glb_varへのアクセスが行なわれ、関数mainに
リターンし、その後、再び関数mainにより変数glb_var
へのアクセスが行なわれたことがわかる。
【0078】[出力ビット長の短縮]また、本発明では、
パケットの出力に要するクロック数を可能な限り少なく
するために、以下のような場合にパケットの出力を途中
で終了しても良いこととした。 a) TPCパケット以外のパケットでは、出力されていない
ビット列がすべて0の時 b) TPCパケットでは、出力されていないビット列が直前
に出力されたTPCパケットの分岐先アドレスと同じ時 TPCパケットに(b)を適用し、それ以外のパケットに(a)
を適用する。
【0079】先ず、(a)の場合について、この方法が特
に有効な、NSEQパケットとMATCHパケットでの例を用い
て説明する。以下の<NSEQパケットの途中で出力をやめ
ても良い例>で示すように、NSEQパケットでは、まだ出
力されていないビットが全て0の時にはパケットの出力
を終了しても構わない。これにより、分岐間隔の短い場
合はNSEQパケットを出力する頻度が多くなるが、短いク
ロック数で出力することができる。
【0080】
【0081】また、データアクセスの検出によるMATCH
パケットで、アクセスしたアドレスを示すビット列{ACC
_ADDR}を出力する場合の例を以下の<MATCHパケットの
途中で出力をやめても良い例>に示す。
【0082】通常、アドレスに対するマスクは特定のア
ドレスブロックへのアクセスを検出するために使用され
るため、下位ビットにマスクがかけられることが普通で
ある。また、マスクされなかったビットの値はデバッグ
を行う側で設定した値であるから、パケット中では不定
で良い。従って、条件が一致した時のアドレスのビット
の内、比較がマスクされなかったビットを全て0にする
と、マスクされなかった上位ビットは0となる。このた
め、出力に要するクロック数を短くすることができる。
【0083】マスクされなかったビットを0にした値
は、条件が一致した時のアドレスとアドレスマスクレジ
スタとの間で、単純に論理積をとる、あるいは、それに
準じる方法で得ることができる。以下に示す<MATCHパ
ケットの途中で出力をやめても良い例>は、アドレスマ
スクレジスタが比較すべきプロセッサのアドレスと同一
のビット数で構成され、アドレスマスクレジスタのビッ
トが1である時にはプロセッサのアドレスの対応するビ
ットを比較しないという構成の場合の例である。
【0084】
【0085】続いて、(b)の場合について、TPCパケット
を例に用いて説明する。以下の<一部の上位ビットを出
力しなくて良い例>で示すように、TPCパケットを出力
する際、一つ前に出力された分岐先アドレスと今回出力
しようとしている分岐先のアドレスとの間で変化のなか
った上位ビット部分は出力しなくてもよい。プログラム
の配置されるアドレスは、プロセッサが持つ全アドレス
空間の内の一部に過ぎない。このように、プログラムの
配置されるアドレスは局所性を持っており、またプログ
ラムの動作としても近くのアドレスへの分岐の方が高頻
度であることが多いため、分岐先のアドレスは上位ビッ
トが変化しないことが多い。従って、この機能を使うこ
とによって、多くの場合、出力に要するクロック数を少
なくすることができる。また、トレース開始直後におけ
る、「直前の値」は全てのビットが0である値とする。
なお、この例は、32ビットのアドレス空間を持つ、命
令長が32ビット固定のプロセッサについて示した。従
って、PCの下位2ビット(A0,A1)が常に0に固定なた
め、A2より出力を行ないこの2ビットは出力しない。
【0086】
【0087】[ツールの構成]以上で述べたトレースの出
力をツールで記録する手段を、いくつかの例を用いて説
明する。
【0088】[ツール.クロック毎に格納]デバッグツー
ルでトレースする最も簡単な方法として、デバッグモジ
ュールから出力されたデータ出力信号とステータス出力
信号の値をそのままトレースメモリにクロック毎に格納
する方法がある。この構成を図4に示す。この構成で
は、原理的には、データ出力信号線とステータス出力信
号の本数の合計を1ワードとするメモリと、そのアドレ
スをTRCCLK毎に変えていくカウンタを設けるだけで良
い。なお、図4中の信号名、端子名は以下のものを表し
ている: TRCEND:パケットの区切りを示すデバッグツールからの
ステータス信号線上の信号 TRCDATA:パケットデータを示すデバッグツールからの
データ信号線上の信号 reset:カウンタリセット信号 TRCCLK:トレースクロック信号 D:データ入力端子 A:アドレス入力端子 WE:書込みイネーブル信号入力端子
【0089】なお、実際には、トレースメモリが一杯に
なった時にトレースメモリへの格納を停止する機構、ト
レースメモリが一杯になる前にトレースを停止する機
構、トレース停止時のカウンタの値を読み出す機構、ト
レース終了後トレースメモリより値を読み出す機構等の
ための付加回路も必要となるが、ここでは省略する。
【0090】[ツール.パケット毎に格納]デバッグツー
ルでトレースするもう一つの方法として、デバッグモジ
ュールから出力されたデータ出力信号とステータス出力
信号により、数ビット長のビット列に分割されたパケッ
トをパラレルに直し、1つのビット列にしてからパケッ
ト単位でトレースメモリに格納する方法がある。この方
法によると、トレースメモリに格納する直前で、コンパ
レータによって予め設定された条件と比較し、必要なパ
ケットのみを記録したり、トリガにより条件が一致した
事象を時間の基準としてトレースを行なうことが可能と
なる。この方法による基本的な構成を図5に示す。この
構成の主要な要素は、パケットの先頭からトレースクロ
ック毎にカウントするカウンタ(パケット長カウンタ)
と、1つのパケットが十分に格納できるビット幅を持つ
レジスタ、パケット長カウンタの出力を用いてこのレジ
スタの更新すべきビットを指すためのデコーダで構成さ
れるパケットデータレジスタと、パケット長カウンタの
出力とパケットデータレジスタの出力を格納するための
トレースメモリと、そのアドレスをパケット格納毎に変
えていくカウンタと、パケットを選択的に格納するため
のコンパレータである。なお、図5中の信号名、端子名
等は以下のものを表している: TRCEND:パケットの区切りを示すデバッグツールからの
ステータス信号線上の信号 TRCDATA:パケットデータを示すデバッグツールからの
データ信号線上の信号 reset:カウンタリセット信号 TRCCLK:トレースクロック信号 CT:パケット長カウンタのカウント出力信号 Data:データ入力端子 Addr:アドレス入力端子 WEn:書込みイネーブル信号入力端子 Wclk:書込みクロック入力端子 &:ANDゲート A=B:コンパレータの2つの入力が一致したことを示す
出力信号端子
【0091】パケット長カウンタは、初期状態ではリセ
ットされており、クロック毎にインクリメントされる。
パケットの最後をステータス出力信号で検出した時、カ
ウンタはリセットされる。
【0092】パケットデータレジスタは、図6で示すよ
うに、データ出力信号線の本数のビット数だけのビット
幅を有するレジスタが数組設けられている。各レジスタ
の入力はそれぞれデータ出力信号線に接続され、1組毎
に書込み可能となっている。デコーダは、パケット長カ
ウンタの出力から書込むべきレジスタの組を選択する。
選択されたレジスタは、データ出力信号線が出力する値
により、トレースクロックで書込まれる。なお、パケッ
トの最初、すなわちカウンタの出力が0の時、最下位の
レジスタの組以外は0にクリアされる。
【0093】トレースメモリにパケット長を格納するの
は、TPCパケットの出力されなかった上位ビットが何ビ
ットあったかを判断するためである。コンパレータはパ
ケットを選択的に格納するために使用する。これによ
り、パケットをトレースメモリに格納する直前に予め設
定された条件と比較し、必要なパケットのみをトレース
することができる。また、コンパレータの出力をトレー
ストリガに使用することもできる。トリガ条件として
は、たとえばMATCHパケットを利用することができる。
また、コンパレータ及びトレースメモリの部分はロジッ
クアナライザのステートトレース機能を利用することで
省略することも可能である。この場合は、より強力なト
リガ、ストア機能を実現することができる。
【0094】なお、実際には、トレースメモリが一杯に
なった時にトレースメモリへの格納を停止する機構、ト
レースメモリが一杯になる前にトレースを停止する機
構、トレース停止時のカウンタの値を読み出す機構、ト
レース終了後トレースメモリより値を読み出す機構、等
のための付加回路も必要となるが、説明をわかりやすく
するためにここでは省略する。
【0095】[ツール.分岐先レジスタ]トリガを使用し
てトレースしたために一度トレースメモリに格納された
TPCパケットが上書きされたり、トレース出力の途中か
らトレースを記録しはじめたためにトレースメモリにト
レース開始直後のTPCパケットが格納されていない場合
は、上で述べたトレース方法ではTPCパケットの上位ビ
ットが判断できない可能性がある。このようなトレース
を行なう場合には、分岐先アドレスを格納するレジスタ
と分岐先アドレスの出力を検出するデコーダを付加する
必要がある。これにより、完全な分岐先アドレスを常に
トレースすることが可能となる。これを実現するための
基本的な構成を、図7に示す。
【0096】図7において、分岐先アドレスを格納する
レジスタは、分岐先アドレスを格納できるビット幅を持
ち、トレース開始直後からTPCパケットによる分岐先ア
ドレスの出力を保持するためのレジスタで、TPCパケッ
トを出力する度にその値を更新する。パケットタイプデ
コーダは、パケット長カウンタの値、ステータス出力線
とデータ出力線の状態、パケットデータレジスタの下位
数ビットの値から、現在出力中のパケットがTPCパケッ
トであるかどうかを検出する。分岐先アドレスレジスタ
は、分岐先アドレスを格納できるビット幅を持つレジス
タと、パケット長カウンタの出力を用いてこのレジスタ
の更新すべきビットを指すためのデコーダで構成され
る。
【0097】分岐先アドレスレジスタは、図8に示すよ
うに、パケットデータレジスタと同様に、データ出力信
号線の本数のビット数を1組とするレジスタ数本から構
成される。ただし、パケットデータレジスタのTPCパケ
ットであることを示すビット列に相当する部分のレジス
タは不要である。また、更新すべきビットを指すための
デコーダは、パケットデータレジスタのものと共通化す
ることもできる。分岐先アドレスレジスタは、TPCパケ
ットの出力である時のみ、パケットタイプデコーダの出
力により更新を行なう。また、トレース開始直後はデバ
ッグツールからのリセット信号resetにより値が0に初
期化される。
【0098】マルチプレクサは、パケットデータレジス
タの分岐先アドレスのが格納される部分と、分岐先アド
レスレジスタの出力を、2つの入力とし、パケットタイ
プデコーダがTPCパケットを示している場合は分岐先ア
ドレスレジスタの出力を、そうでない場合はパケットデ
ータレジスタの出力を、トレースメモリに送る。また、
常に、TPCパケットは完全な分岐先アドレスをもった形
で記録されるため、パケット長は記録する必要がなくな
る。
【0099】以上から、TPCパケットについても、コン
パレータを用いて、パケットを選択的に格納したりトレ
ースをトリガしたりすることができる。例えば、モジュ
ール分岐のモードでトレースする時に、コンパレータの
設定で、TPCパケットの分岐先アドレスの部分をあるモ
ジュールの先頭アドレスにしておけば、特定モジュール
が呼び出された場合にトリガをかけたりすることができ
る。
【0100】ここではパケット毎に記録する方法を例に
挙げてトリガによりトレースする期間を指定するという
態様で、分岐先アドレスレジスタの構成を説明したが、
クロック毎に記録する方法では、分岐先レジスタの値を
複数クロック分に分割して、ステータス出力線とデータ
出力線の状態とともに順時記録していくと、トレースメ
モリの1ワードに分岐先アドレスレジスタのためのビッ
トを1〜数ビット追加するだけで良く、効率的である。
【0101】また、いずれの方法でも、トリガを使用せ
ずに、トレース出力の途中からトレースの記録を行な
い、トレースメモリが一杯になった時点でトレースの記
録を終了する場合には、トレースの記録を開始した時の
分岐先アドレスレジスタの値のみを保存しても良い。
【0102】
【発明の効果】
[パケット化]プロセッサの状態を可変ビット長のパケッ
トで表すことにより、従来の方式よりも多様な情報が表
示できるようになった。例を示すと、例外の発生の検出
だけでなく例外の原因をも表示することや、予め設定さ
れた条件が成立した時の成立した条件の特定が可能とな
ったことがあげられる。更には、分岐が発生したとき等
に、その時点までの経過命令数情報をパケット中に入れ
ておくことから、従来例の様にプロセッサの状態をコア
クロックと同一の周波数で出力する必要がなくなったの
で、高速な周波数で動作したり、1クロックで2命令以
上同時発行するようなプロセッサにも対応することが可
能となった。
【0103】[冗長なデータの削減]パケットの出力途中
で出力を終了し冗長なビット列の出力を不要とした。ま
たこれが効果的となるようなパケットのビット構成を取
ることにより、パケットの出力に必要とするクロック数
を低減することができた。
【0104】[NSEQ]また、本発明では、特に、分岐元ア
ドレスを得る方法として、デバッグモジュールにPCの
増分を集計するカウンタを設け、分岐が発生した時に、
分岐が発生したという情報と集計したPCの増分を一つ
のパケットとして出力することにしたため、プロセッサ
コアクロック毎に分岐が発生したこと命令を実行したこ
とを表示する必要がなくなった。
【0105】このパケットは、トレースを行なう際にも
っとも発生頻度が高いと予想される。PCの増分を2進
数により下位ビットから出力することにより、分岐の頻
度が高い場合ほど短いクロック数で出力することが可能
となった。また、パケットの種類を表すビット列も固定
である必要がないため、発生頻度が高いこのようなパケ
ットほどこのビット列の長さが短くなるように定義する
ことも可能である。
【0106】[パケットの選択]パケットの種類毎にパケ
ットの出力を抑制するためのモードを設けたことによ
り、トレースに不要なパケットを出力しないことが可能
となった。
【0107】[関数レベルトレース]モジュール内での分
岐に使用される分岐命令以外の分岐発生でTPCパケット
を出力するするモードを設けたことにより、モジュール
レベルのプログラムの流れをトレースする場合には、プ
ログラムの流れをトレースするためのパケットを少なく
することが可能となった。
【0108】[ピン構成の効率化、自由な本数]以上のよ
うな工夫により、従来例よりも少ないピン数で同等のト
レースを行なうことができるようになった。これによ
り、節約されたクロック数を予め設定された条件が成立
の検出するためのトレースやデータアクセストレースの
ために用いたり、より高速な動作周波数やより少ないピ
ン数でのトレースを行なうことが可能となった。また、
コアクロックとトレース出力クロックの周波数の比率や
プロセッサのアーキテクチャに関連する表示すべきプロ
セッサの各状態の違い等と、ユーザの用途及びトレース
出力のために割くことのできるピン数を勘案して、ユー
ザが最適なデータ出力線の本数を選択することが可能と
なった。
【0109】[プロセッサに依存しない出力形式]プロセ
ッサのアーキテクチャにできる限り依存しないパケット
の定義やピン構成とすることにより、デバッグツールの
開発に要する工数を低減し、またデバッグツールの共通
化も可能となった。
【0110】[ステータス出力線]ステータス出力線によ
り、デバッグモジュールが途中で出力を終了しても良い
条件を検出した直後に出力を終了することが容易となっ
た。また、デバッグツールも、出力されたビット列をパ
ケット毎に記録することが容易となった。これにより、
デバッグツール側で、トレースメモリに記録する直前に
パケットを予め設定された条件と比較することができ、
パケットを選択的に記録したりトリガをしたりすること
が可能となった。
【0111】[データアクセスのアドレスマスク]予め設
定されたアドレスへのアクセスを検出する際、設定され
たアドレスへのアクセスを検出としたこととともに、ア
クセスされたアドレスをMATCHパケットにより出力する
ことで、予め設定したアドレスにマスクが用いられてい
た場合も、アクセスのあったアドレスを知ることが可能
となった。また、このアドレスを下位ビットより出力
し、マスクされなかったビットは0を出力することで、
特定のアドレスブロックへのアクセスの検出等のために
下位ビットにマスクが行なわれた場合は、パケットの出
力に要するクロック数を低減することも可能となった。
【0112】[データトレース]予め設定されたアドレス
へのアクセスを検出する際、アドレスに、マスク機能を
持つ場合であって条件が成立した時のマスクされたビッ
トを特定するためにそのアドレスを出力する際、マスク
されなかったビットは出力する必要がない。予め設定さ
れたアドレスへのアクセスを検出した時に、アクセスさ
れたデータを出力することにより、デバッグ中のプログ
ラムの内容を書き換えることなく、かつプログラムの実
行を妨げることなく、アクセスされたデータをトレース
することが可能となった。
【図面の簡単な説明】
【図1】従来技術を説明する図。
【図2】本発明の一実施例が適用されるハードウエア構
成のブロック図。
【図3】パケットを出力する際の新合繊のタイミングを
説明する図。
【図4】デバッグツールでトレースメモリへ書込みを行
うための回路例を示す図。
【図5】デバッグツールでトレースメモリへ書込みを行
うための他の回路例を示す図。
【図6】図5中のパケットデータレジスタの構成を示す
図。
【図7】デバッグツールでトレースメモリへ書込みを行
うための更に他の回路例を示す図。
【図8】図7中の分岐先アドレスレジスタの構成を示す
図。
【符号の説明】 100:ターゲットシステム 101:マイクロプロセッサ 103:メモリ 105:I/O 107:外部バス 111:プロセッサコア 113:デバッグモジュール 115:内部プロセッサバス 121:トレースパケット生成部 123:命令/データアクセス検出部 200:デバッグツール 201:トレースストア回路 203:通信インタフェース 205:デバッグコントロール 300:ホストコンピュータ 301:デバッガ

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】トレース情報を出力できるマイクロプロセ
    ッサにおいて、 前記トレース情報を可変長のビット列で構成されるパケ
    ットとして出力することを特徴とするマイクロプロセッ
    サのトレース情報出力方法。
  2. 【請求項2】前記ビット列は、 ビット列の出力のための1本または複数本のデータ出力
    線と、 パケットの区切りを示す1本のステータス出力信号と、 シリアル出力のための基準となるクロック線1本を介し
    て出力されることを特徴とする請求項1に記載のマイク
    ロプロセッサのトレース情報出力方法。
  3. 【請求項3】分岐/例外/割り込み等によってプログラム
    フローが変化したことに応答して、直前のプログラムフ
    ローの変化後の最初のアドレスから今回のプログラムフ
    ローの変化の発生の直前までのプログラムカウンタの増
    分を含むパケットを出力することを特徴とする請求項1
    または2に記載のマイクロプロセッサのトレース情報出
    力方法。
  4. 【請求項4】直前のプログラムフローの変化後の最初の
    アドレスから次回のプログラムフローの変化が発生する
    までにプログラムカウンタの増分が所定の値を越える毎
    にプログラムカウンタの増分が前記所定の値を超えたこ
    とを示すパケットを出力するとともに、 次回のプログラムフローの変化の発生に応答して出力さ
    れる前記パケットは、前記プログラムカウンタの増分を
    前記所定値で除算した剰余を含むことを特徴とする請求
    項3に記載のマイクロプロセッサのデバッグ情報出力方
    法。
  5. 【請求項5】プログラムフローの変化が発生したことに
    応答して、当該プログラムフローの変化後の最初のアド
    レスを表すパケットを出力することを特徴とする請求項
    1または2に記載のマイクロプロセッサのトレース情報
    出力方法。
  6. 【請求項6】プログラムフローの変化が発生したことに
    応答して、当該プログラムフローの変化が発生したこ
    と、及び当該プログラムフローの変化の原因を表すパケ
    ットを出力することを特徴とする請求項1または2に記
    載のマイクロプロセッサのデバッグ情報出力方法。
  7. 【請求項7】外部入力端子からトリガが通知されたこ
    と、予め設定されたアドレスに一致する命令の実行を検
    出したこと、予め設定されたアドレスまたはデータある
    いはその両方に一致するデータアクセスを検出したこと
    のいずれかの条件に応答して、これらの条件が成立した
    ことと、当該成立した条件が何であったかを表すパケッ
    トを出力することを特徴とする請求項1または2に記載
    のマイクロプロセッサのトレース情報出力方法。
  8. 【請求項8】予め設定されたアドレスまたはデータある
    いはその両方に一致するデータアクセスを検出した時
    に、アクセスされたデータの値を表すパケットを出力す
    ることを特徴とする請求項1または2に記載のマイクロ
    プロセッサのトレース情報出力方法。
  9. 【請求項9】先に発生したパケットが出力中である間に
    新たにパケットが発生した時、前記先に発生したパケッ
    トを出力し終えるまで前記新たに発生したパケットを保
    持できなかったことに応答して、前記新たに発生したパ
    ケットが失われたことを示すパケットを出力することを
    特徴とする請求項1または2に記載のマイクロプロセッ
    サのトレース情報出力方法。
  10. 【請求項10】予め設定するアドレスにマスクをかけて
    いる場合、条件が成立した時のマスクされたビットを特
    定するためにそのアドレスを出力する際、マスクされな
    かったビットの出力を行わないことができるパケットを
    出力することを特徴とする請求項7に記載のマイクロプ
    ロセッサのトレース情報出力方法。
  11. 【請求項11】パケットを出力する際に、当該パケット
    の出力の途中でまだ出力されずに残されたビット列が予
    め決められた特定の値であることに応答して、当該パケ
    ットの出力を途中で終了して次のパケットの出力を開始
    できることを特徴とする請求項1または2に記載のマイ
    クロプロセッサのトレース情報出力方法。
  12. 【請求項12】パケットを出力する際に、当該パケット
    の出力の途中でまだ出力されずに残されたビット列が、
    1つ前に出力されたパケットの対応するビット列と同一
    の値である場合には、当該パケットの出力を途中で終了
    して次のパケットの出力を開始できることを特徴とする
    請求項1または2に記載のマイクロプロセッサのトレー
    ス情報出力方法。
  13. 【請求項13】出力するパケット中に当該パケットの種
    類を示すパケット識別情報を格納するとともに、当該パ
    ケット中の前記パケット識別情報よりも後に出力される
    部分に前記出力を途中で終了できるビット列を格納し、
    前記パケット識別情報に基づいて、請求項11と請求項
    12の何れのトレース情報出力方法を使用するかを定め
    ることを特徴とするマイクロプセッサのトレース情報出
    力方法。
  14. 【請求項14】前記最初のアドレスを示すパケットの出
    力は、前記プログラムフローの変化を起こした命令がプ
    ログラムモジュール内での分岐にのみ使用される形式の
    分岐命令である場合には行われないことを特徴とする請
    求項5に記載のマイクロプロセッサのトレース情報出力
    方法。
JP9079719A 1997-03-31 1997-03-31 マイクロプロセッサのトレース情報出力方法 Pending JPH10275092A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9079719A JPH10275092A (ja) 1997-03-31 1997-03-31 マイクロプロセッサのトレース情報出力方法
EP98302523A EP0869434A3 (en) 1997-03-31 1998-03-31 Method for outputting trace information of a microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9079719A JPH10275092A (ja) 1997-03-31 1997-03-31 マイクロプロセッサのトレース情報出力方法

Publications (1)

Publication Number Publication Date
JPH10275092A true JPH10275092A (ja) 1998-10-13

Family

ID=13698019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9079719A Pending JPH10275092A (ja) 1997-03-31 1997-03-31 マイクロプロセッサのトレース情報出力方法

Country Status (1)

Country Link
JP (1) JPH10275092A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250779A (ja) * 1999-02-25 2000-09-14 Toshiba Corp プログラマブルコントローラ
JP2001356935A (ja) * 2000-03-02 2001-12-26 Texas Instr Inc <Ti> オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力
US6961872B2 (en) 2001-09-03 2005-11-01 Renesas Technology Corp. Microcomputer and debugging system
US7055078B2 (en) 2002-06-21 2006-05-30 Samsung Electronics, Co., Ltd. Microprocessor with trace module
US7330809B2 (en) 2002-03-26 2008-02-12 Kabushiki Kaisha Toshiba Trace data compression system and trace data compression method and microcomputer implemented with a built-in trace data compression circuit
CN100412815C (zh) * 2005-04-01 2008-08-20 上海宝信软件股份有限公司 一种在三层架构下对应用程序进行一体化调试的方法
JP2011519100A (ja) * 2008-04-28 2011-06-30 イマジネイション テクノロジーズ リミテッド パイプライン型アーキテクチャを有するデータプロセッサ内のトレースデータを与えるシステム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250779A (ja) * 1999-02-25 2000-09-14 Toshiba Corp プログラマブルコントローラ
JP2001356935A (ja) * 2000-03-02 2001-12-26 Texas Instr Inc <Ti> オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力
JP2013211046A (ja) * 2000-03-02 2013-10-10 Texas Instruments Inc オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力
US6961872B2 (en) 2001-09-03 2005-11-01 Renesas Technology Corp. Microcomputer and debugging system
US7330809B2 (en) 2002-03-26 2008-02-12 Kabushiki Kaisha Toshiba Trace data compression system and trace data compression method and microcomputer implemented with a built-in trace data compression circuit
US7055078B2 (en) 2002-06-21 2006-05-30 Samsung Electronics, Co., Ltd. Microprocessor with trace module
US7299393B2 (en) 2002-06-21 2007-11-20 Samsung Electronics Co., Ltd. Microprocessor with trace module
CN100412815C (zh) * 2005-04-01 2008-08-20 上海宝信软件股份有限公司 一种在三层架构下对应用程序进行一体化调试的方法
JP2011519100A (ja) * 2008-04-28 2011-06-30 イマジネイション テクノロジーズ リミテッド パイプライン型アーキテクチャを有するデータプロセッサ内のトレースデータを与えるシステム
US9720695B2 (en) 2008-04-28 2017-08-01 Imagination Technologies Limited System for providing trace data in a data processor having a pipelined architecture

Similar Documents

Publication Publication Date Title
KR100439781B1 (ko) 데이터프로세서와그동작방법,그디버깅동작실행방법및그중단점값수정방법
US6145122A (en) Development interface for a data processor
JP4225851B2 (ja) データ処理装置用トレース要素生成システム
KR100350568B1 (ko) 디버그기능을수행하기위한데이타처리시스템및방법
US5560036A (en) Data processing having incircuit emulation function
US6539500B1 (en) System and method for tracing
US6665821B1 (en) Microcomputer, electronic equipment, and debugging system
US6052774A (en) Apparatus and method for identifying exception routines indicated by instruction address issued with an instruction fetch command
US5367550A (en) Break address detecting circuit
US20030051122A1 (en) Trace information generation apparatus for generating branch trace information omitting at least part of branch source information and branch destination information on target processing
JPH09128265A (ja) データ処理システム
JP2000112783A (ja) プログラム検査方法、プログラム検査装置及びプログラム検査プログラムを記憶した記憶媒体
JP2693678B2 (ja) データ処理装置
EP0869434A2 (en) Method for outputting trace information of a microprocessor
US7376820B2 (en) Information processing unit, and exception processing method for specific application-purpose operation instruction
US6760864B2 (en) Data processing system with on-chip FIFO for storing debug information and method therefor
US6839869B2 (en) Trace control circuit for tracing CPU operation in real time
JPH10275092A (ja) マイクロプロセッサのトレース情報出力方法
JPH09218801A (ja) データプロセッサ
GB2329048A (en) A debugger interface unit with a stepping mode
JP2974601B2 (ja) マイクロプロセッサ及びデバッグシステム
JPH1124959A (ja) マイクロプロセッサのトレース情報出力方法
JP3349911B2 (ja) マイクロプロセッサ及びその開発支援装置
US20030204707A1 (en) Real-time tracing microprocessor unit and operating method
US20220391297A1 (en) Tracing circuit, semiconductor device, tracer, and tracing system