JPH1124959A - Trace information outputting method of microprocessor - Google Patents

Trace information outputting method of microprocessor

Info

Publication number
JPH1124959A
JPH1124959A JP9176801A JP17680197A JPH1124959A JP H1124959 A JPH1124959 A JP H1124959A JP 9176801 A JP9176801 A JP 9176801A JP 17680197 A JP17680197 A JP 17680197A JP H1124959 A JPH1124959 A JP H1124959A
Authority
JP
Japan
Prior art keywords
trace
address
packet
access
debug
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
JP9176801A
Other languages
Japanese (ja)
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 JP9176801A priority Critical patent/JPH1124959A/en
Priority to EP98302523A priority patent/EP0869434A3/en
Publication of JPH1124959A publication Critical patent/JPH1124959A/en
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To perform an output in a frequency that does not depend on the operation frequency of a processor core, to output with the number of pins as small as possible, to let the number of pins have the degree of freedom and also to perform real time trace in many cases by outputting trace information as a packet comprising a variable length bit string. SOLUTION: An outputting method of trace information outputs trace information as a packet consisting of a variable length bit string in a microprocessor that outputs trace information. It is effective at the time of debugging a monitor program itself which preferably prepares such a special trace mode as to output a trace packet even in a debug mode in order to facilitate the development of a debug tool. Because it can be finished to send one piece of trace information in a shorter time than in the conventional practice on average, the probability that overrun of trace information occurs while real time trace is performed is reduced.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は、マイクロコンピュータ
を応用したシステムのデバッグを行なうためのトレース
情報の出力方法に関し、更に詳細には動作状態を表すト
レース情報を出力する機能を組み込んだマイクロプロセ
ッサにおけるトレース情報の出力方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method of outputting trace information for debugging a system to which a microcomputer is applied, and more particularly, to a method of outputting a trace information representing an operation state in a microprocessor. Related to the output method of trace information.

【0002】[0002]

【従来の技術】マイクロプロセッサを応用システムのデ
バッグに当たって、トレース情報、つまりプログラム実
行中のアドレス、データ、その他プロセッサの各種の状
態等の一連の情報を獲得することは重要である。特に、
トレース情報を獲得する際にマイクロプロセッサの動作
に影響を与えないこと、具体的にはマイクロプロセッサ
の動作への余分なウエイトの挿入等によって動作速度を
低下させない(リアルタイムトレース)ことが重要であ
る。従って、マイクロプロセッサの動作速度が向上して
いくにつれて、デバッグ時に外部にトレース情報の取得
用回路等を接続するという方式を取ることが困難になっ
ていくため、マイクロプロセッサ中にトレース情報を出
力する機能を組み込むことが提案されている。しかしな
がら、従来提案された構成では、以下の課題に示すよう
な点において必ずしも満足できるものではなかった。
2. Description of the Related Art In debugging an application system using a microprocessor, it is important to obtain trace information, that is, a series of information such as addresses and data during execution of a program and various other states of the processor. Especially,
It is important not to affect the operation of the microprocessor when acquiring the trace information, specifically, not to reduce the operation speed (real-time trace) by inserting an extra wait into the operation of the microprocessor. Therefore, as the operation speed of the microprocessor increases, it becomes difficult to adopt a method of connecting a trace information acquisition circuit or the like to the outside during debugging, so that the trace information is output into the microprocessor. It has been proposed to incorporate functionality. However, the configuration proposed in the past was not always satisfactory in terms of the following problems.

【0003】[0003]

【発明が解決しようとする課題】プロセッサのコアクロ
ックの周波数は高速になってきているが、外部に入出力
できる周波数を同様に高速化することは困難になってき
ている。このため、プロセッサの性能を向上させる手法
として、プロセッサ内部は高い周波数で動作させ、外部
との入出力ピンの周波数はそれよりも低い動作周波数で
動作させることが多くなってきている。従って、プロセ
ッサのコアクロックの周波数と同一の周波数で出力する
必要のある従来の方式をこのようなプロセッサに適用す
ると、プロセッサ内部で多くのウエイトを挿入しない限
り、リアルタイムあるいはリアルタイムに近いトレース
を行うことができなかった。
Although the frequency of the core clock of the processor has been increasing, it has become difficult to increase the frequency that can be input and output to and from the outside. For this reason, as a technique for improving the performance of the processor, the inside of the processor is often operated at a high frequency, and the frequency of the input / output pins with the outside is often operated at a lower operating frequency. Therefore, if a conventional method that needs to output at the same frequency as the core clock frequency of the processor is applied to such a processor, real-time or near real-time tracing can be performed unless a large amount of weight is inserted inside the processor. Could not.

【0004】また、プロセッサのコアクロックの周波数
と同一の周波数でトレース情報を出力できたとしても、
2命令以上同時発行するような機能拡張等の変更がなさ
れたプロセッサがプロセッサファミリに追加された場合
に、新たにステータスを追加したり変更したりしなけれ
ばならなかった。このように、上記のような場合や、新
たなプロセッサファミリに対応する度に、デバッグツー
ル(ハードウェア、ソフトウェア)も新たに設計しなけれ
ばならず、ツールの開発の効率も悪かった。
Further, even if trace information can be output at the same frequency as the frequency of the core clock of the processor,
When a processor that has been modified such as a function extension that issues two or more instructions at the same time is added to a processor family, a new status must be added or changed. As described above, the debugging tool (hardware and software) must be newly designed in each of the above cases and each time a new processor family is supported, and the tool development efficiency is low.

【0005】更に、従来の方式では、トレース情報の出
力に割り当てるピン数は、ステータス信号ピンとデータ
信号ピンの合計が4本あるいは8本等と多く、しかも本
数が固定であったため、チップの総ピン数及びパッケー
ジサイズに制約を与えていた。
Furthermore, in the conventional method, the total number of pins assigned to the output of trace information is as large as four or eight for status signal pins and data signal pins, and the number of pins is fixed. There were restrictions on the number and package size.

【0006】プログラムにはある程度の局所性があるた
め、例外あるいは分岐時の分岐先アドレスは、前回の分
岐先アドレス等の最近得られたアドレス情報と比較する
とその上位ビットが変化しないことが多い。しかし、従
来の方式では分岐先アドレスを出力するに当たっては、
そのアドレス全体または予め設定されたビット数を下位
ビットから出力するだけであった。分岐先アドレス全体
の出力の場合は、上位ビットが変化しない場合には冗長
な(不要な)データまでもが出力されてしまう。また、予
め設定されたビット数を下位ビットから出力する場合に
は、上位ビットが変化する分岐の場合にその上位ビット
を判断することができなかった。
Since a program has a certain degree of locality, the upper bits of a branch destination address at the time of an exception or a branch often do not change when compared with recently obtained address information such as a previous branch destination address. However, in the conventional method, when outputting the branch destination address,
Only the entire address or a preset number of bits is output from the lower bits. In the case of output of the entire branch destination address, even redundant (unnecessary) data is output if the upper bits do not change. Further, when a predetermined number of bits is output from the lower bits, in the case of a branch in which the upper bits change, the upper bits cannot be determined.

【0007】従って、本発明は、上述の欠点を解決する
ために、プロセッサのアーキテクチャに依存しない出力
方式で、プロセッサコアの動作周波数に依存しない周波
数での出力を可能とし、できる限り少ないピン数で出力
し、そのピン数にも自由度があり、また多くの場合にリ
アルタイムトレースを行うことのできるマイクロプロセ
ッサのトレース情報の出力方法を提供することを目的と
する。
Accordingly, the present invention, in order to solve the above-mentioned drawbacks, enables an output at a frequency independent of the operating frequency of a processor core by an output method independent of a processor architecture, and uses a pin number as small as possible. It is an object of the present invention to provide a method of outputting trace information of a microprocessor which has a degree of freedom in the number of output pins and can perform real-time tracing in many cases.

【0008】[0008]

【課題を解決するための手段】本願発明のトレース情報
の出力方法においては、トレース情報を出力できるマイ
クロプロセッサにおいて、トレース情報を可変長のビッ
ト列で構成されるパケットとして出力することにより、
上記目的を達成している。
According to the trace information output method of the present invention, a microprocessor capable of outputting trace information outputs the trace information as a packet composed of a variable-length bit string.
The above objective has been achieved.

【0009】[0009]

【実施例】【Example】

<1.1.デバッグ・ポート> <1.1.1 必須デバッグ・ポート>必須デバッグ・ポート
に関しては、JTAG(Joint Test Action Groupによって提
案されたボードやICのテスト等を目的とするインター
フェース規格;これは当業者には周知の事項であるため
ここではこれ以上説明しないが、詳細はIEEE Std1149.1
-1990 (IEEE Standard Test Access Port and Boundary
-Scan Architecture)を参照のこと)実装をデフォルトと
して使用する。 TCLK 入力 TMS 入力 TDI 入力 TDO 出力
<1.1. Debug Port><1.1.1 Required Debug Port> Regarding the required debug port, JTAG (an interface standard for testing boards and ICs proposed by the Joint Test Action Group; this is well known to those skilled in the art. It is not described here any more because it is a matter of IEEE Std1149.1
-1990 (IEEE Standard Test Access Port and Boundary
-See Scan Architecture)) Use implementation as default. TCLK input TMS input TDI input TDO output

【0010】<1.1.2 任意選択のデバッグ・ポート>以
下の信号は任意選択である。 TRST L 入力 RMODE/BKTGIO_L 入出力
<1.1.2 Optional Debug Port> The following signals are optional. TRST L input RMODE / BKTGIO_L input / output

【0011】<1.1.3 RMODE/BKTGIO_L>このピンは2つ
の機能、すなわちBKTGIO_LおよびRMODEを有する。JTAG-
Test-Logic-Reset controller stateでは、このピンはR
MODEとして働く。このピンは、他の状態ではBKTGIO_Lと
して働く。
<1.1.3 RMODE / BKTGIO_L> This pin has two functions: BKTGIO_L and RMODE. JTAG-
In the Test-Logic-Reset controller state, this pin is R
Work as MODE. This pin acts as BKTGIO_L in other states.

【0012】<1.1.3.1 RMODE>RMODEはリセット・モー
ドを表す。デバッグ・モジュールは、TAPコントローラ
がTest-Logic-Reset controller stateのときに初期化
される。このピンは、デバッグ・リセット設定の初期値
を選択する。デバッグ・リセットは、プロセッサへのリ
セット入力である。この効果は、ターゲット・システム
からのリセット入力と同じである。
<1.1.3.1 RMODE> RMODE represents a reset mode. The debug module is initialized when the TAP controller is in the Test-Logic-Reset controller state. This pin selects the initial value of the debug reset setting. Debug reset is a reset input to the processor. This effect is the same as a reset input from the target system.

【0013】RMODE入力のレベルに応じて、デバッグ・
リセット設定は、JTAG Test-Logic-Reset controller s
tateでは以下のように初期化される。 ロー:デバッグ・リセット設定をイネーブルする。デバ
ッグ・モジュールは、デバッグ・リセットが要求される
ように初期化される。 ハイ:デバッグ・リセット設定をディスエーブルする。
デバッグ・モジュールは、デバッグ・リセットが要求さ
れないように初期化される。
[0013] Depending on the level of the RMODE input, debugging
Reset settings can be made using the JTAG Test-Logic-Reset controller s
In tate, it is initialized as follows. Low: Enable debug reset settings. The debug module is initialized so that a debug reset is required. High: Disables debug reset settings.
The debug module is initialized so that a debug reset is not required.

【0014】この信号は、ターゲット・システム上のRO
M内のブート・プログラムが初期開発段階で不完全なも
のである場合、電力投入時にターゲット・システムが予
想されない状態で動作するのを回避するために必要であ
る。ツールは、接続されると、ターゲット・システムの
電力投入時にこの信号をローにドライブする。プロセッ
サは、ターゲット・システムからのリセット入力が解除
された後でもリセットされたままでいることができる。
This signal is output from the RO on the target system.
If the boot program in M is incomplete during the early development phase, it is necessary to prevent the target system from operating unexpectedly at power up. When connected, the tool drives this signal low upon power up of the target system. The processor can remain reset even after the reset input from the target system has been released.

【0015】ツールが接続されていないときにRMODEピ
ンのレベルがハイになるように、チップにはプルアップ
抵抗が必要である。RMODEがハイである場合、プロセッ
サの活動に対するデバッグ・モジュールの影響はないは
ずである。
The chip needs a pull-up resistor so that the level of the RMODE pin is high when the tool is not connected. If RMODE is high, there should be no effect of the debug module on processor activity.

【0016】<1.1.3.2 BKTGIO_L>RMODE/BKTGIO_L信号
は、Test-Logic-Reset controller state以外のコント
ローラ状態ではBKTGIO_Lとして働く。双方向信号BKTGIO
_Lは主として、外部機器からのトリガ入力によってプロ
セッサ実行を中止し、あるいは指定された事象で外部機
器をトリガするために使用される。この信号は、デバッ
グ・モジュール・リセットによってディスエーブルされ
る。
<1.1.3.2 BKTGIO_L> The RMODE / BKTGIO_L signal functions as BKTGIO_L in a controller state other than the Test-Logic-Reset controller state. Bidirectional signal BKTGIO
_L is mainly used to interrupt the processor execution by a trigger input from the external device or to trigger the external device at a specified event. This signal is disabled by a debug module reset.

【0017】この信号を出力向けに構成する場合、この
信号は以下の条件でローにドライブされる。 − プロセッサがデバッグ・モードである。 − トレース・トリガ条件が満たされている。
When configuring this signal for output, it is driven low under the following conditions: -The processor is in debug mode. − The trace trigger condition is satisfied.

【0018】これらの2つの条件は、個別に、信号をド
ライブするようにもまたドライブしないようにも構成す
ることができる。
These two conditions can be individually configured to drive or not drive the signal.

【0019】ブレーク出力 図1(A)に示すように、この信号は、プロセッサがデバ
ッグ・モードの間、ローにドライブされる。
Break Output As shown in FIG. 1A, this signal is driven low while the processor is in debug mode.

【0020】トリガ出力 図1(B)に示すように、この信号は、ハードウェア・ブ
レークポイント条件が満たされたときにローにドライブ
(パルス状に)される。
Trigger Output As shown in FIG. 1B, this signal is driven low (pulsed) when a hardware breakpoint condition is met.

【0021】この信号を入力向けに構成する場合、デバ
ッグ・モジュールが、信号のレベルがハイからローに変
化したときに以下のように動作する。
When configuring this signal for input, the debug module operates as follows when the level of the signal changes from high to low.

【0022】− プロセッサを中止してデバッグ・モー
ドにする。 − N-Traceのトリガ・パケットを生成する。
Halt the processor and enter debug mode. -Generate an N-Trace trigger packet.

【0023】これらの2つの活動は、個別に、それが起
こるようにも起こらないようにも構成することができ
る。
These two activities can be configured individually, as they occur or not.

【0024】ブレーク入力 BKTGIO_L入力の立ち下がりエッジでユーザ・プログラム
実行にブレークをかける。デバッグ・モードにあるとき
にこのエッジが入力された場合、プロセッサが正常モー
ドに戻るまで保留される。(図2(A)参照)
Break input Breaks the user program execution at the falling edge of the BKTGIO_L input. If this edge is entered while in debug mode, it will be suspended until the processor returns to normal mode. (See Fig. 2 (A))

【0025】トリガ入力 この機能は、オプションのN-traceを実装しない場合は
必要とされない。この機能は、BKTGIO_L入力の立ち下が
りエッジでN-trace MATCHパケットを生成する。デバッ
グ・モードにあるときにこのエッジが入力された場合で
も、ただちにMATCHパケットが出力される。(図2(B)参
照)
Trigger input This function is not required if the optional N-trace is not implemented. This function generates an N-trace MATCH packet on the falling edge of the BKTGIO_L input. Even if this edge is input while in the debug mode, a MATCH packet is output immediately. (See Fig. 2 (B))

【0026】<1.1.4 デバッグ・モジュールの初期化>
前述の<RMODE>で説明したように、デバッグ・モジュ
ールはTest-Logic-Reset controller stateで初期化さ
れる。デバッグ・モジュールは、初期化後のデバッグ・
リセットの機能を除いてプロセッサの活動に影響を与え
ない。
<1.1.4 Initialization of debug module>
As described in the above <RMODE>, the debug module is initialized in the Test-Logic-Reset controller state. The debug module is used for debugging after initialization.
Has no effect on processor activity except for the reset function.

【0027】<1.2.JTAGを介して制御されるデバッグ
機能> <1.2.1 JTAG命令>デバッグ・モジュールのほぼすべて
のデバッグ機能はJTAGを介して制御される。デバッグ・
モジュールを制御するにはJTAGプライベート命令を実装
しなければならない。プロセッサの識別情報を得るには
JTAGオプション命令のIDCODEも実装しなければならな
い。
<1.2. Debug Function Controlled via JTAG><1.2.1 JTAG Instruction> Almost all debug functions of the debug module are controlled via JTAG. debug·
You must implement JTAG private instructions to control the module. To obtain processor identification information
JTAG option instruction IDCODE must also be implemented.

【0028】a) JTAG IDCODEを実装しなければならな
い。 b) デバッグ・ツールのためにいくつかのJTAGプライベ
ート命令を実装しなければならない。
A) JTAG IDCODE must be implemented. b) Some JTAG private instructions must be implemented for debug tools.

【0029】以下のようにしてもよい。 c) IDCODE命令およびJTAGプライベート命令の命令レジ
スタ長およびビット割り当ては、各プロセッサ・ファミ
リごとに異なるものであってよい。
The following may be performed. c) Instruction register lengths and bit assignments for IDCODE and JTAG private instructions may be different for each processor family.

【0030】<1.2.2 device identification register
>この必須のdevice identification registerは、ユー
ザの最小限の助けでツールを構成するために使用され
る。電力投入後に、ツールは、このレジスタを読み取る
ことによって、プロセッサがサポートされているかどう
かを判定する。サポートされている場合、ツールはこの
レジスタの値に応じてツール自体を構成する。
<1.2.2 device identification register
> This mandatory device identification register is used to configure the tool with minimal user help. After power up, the tool reads this register to determine if the processor is supported. If supported, the tool configures itself according to the value of this register.

【0031】a) プロセッサ内のdevice identification
registerの値は、同じプロセッサ・ファミリ間で何ら
かの共通の特性を持っていなければならない。
A) device identification in the processor
The register value must have some common characteristics between the same processor family.

【0032】以下のようにしてもよい。 b) 実装オプションの詳細を伝えるためにJTAGを介して
アクセスできる別のレジスタを設けることができる。
The following may be adopted. b) There may be another register accessible via JTAG to convey details of the implementation options.

【0033】<1.2.3 デバッグ・モジュールの初期化>
この必須機能は、Test-Logic-Reset controller state
に入らずにデバッグ・モジュールを初期化するために使
用される。このリセットでは、デバッグ・リセット設定
は初期化されず、前の設定を保持する。
<1.2.3 Initialization of Debug Module>
This required feature is available in the Test-Logic-Reset controller state
Used to initialize a debug module without entering In this reset, the debug / reset setting is not initialized, and the previous setting is retained.

【0034】a) すべてのデバッグ機能は、デバッグ・
リセットの場合を除いて初期化しディスエーブルしなけ
ればならない。 b) デバッグ・リセット設定は変更してはならない。
A) All debugging functions are
Must be initialized and disabled except in the case of a reset. b) Debug reset settings must not be changed.

【0035】<1.2.4 BKTGIO_L/RMODE信号の構成> <1.2.4.1 BKTGIO_L/RMODE実装フラグ>この必須機能
は、BKTGIO_L/RMODE信号が実装されているかどうかを知
るために使用される。
<1.2.4 Configuration of BKTGIO_L / RMODE Signal><1.2.4.1 BKTGIO_L / RMODE Implementation Flag> This essential function is used to know whether or not the BKTGIO_L / RMODE signal is implemented.

【0036】a) BKTGIO_L/RMODE信号が存在するかどう
かが何らかの方法で分からなければならない。 以下のことを推奨する。 b) この信号が存在するかどうかをデバッグに関するJTA
Gプライベート命令によって選択されるtest data regis
ter内のビットによって知ることを推奨する。
A) The presence or absence of the BKTGIO_L / RMODE signal must be known in some way. We recommend the following: b) JTA for debugging whether this signal is present
Test data regis selected by G private instruction
It is recommended to know by the bit in ter.

【0037】以下のようにしてもよい。 c) test data register内のビットではなくdevice iden
tification registerの値を使用して、この存在がわか
るようにしてもよい。ツールは、サポートされているす
べてのプロセッサのIDのリストを持っていなければなら
ず、どのプロセッサがBKTGIO_L/RMODEピンを有するかが
分からなければならない。
The following may be performed. c) device iden instead of bits in test data register
The value of the tification register may be used to indicate this presence. The tool must have a list of IDs of all supported processors and must know which processor has the BKTGIO_L / RMODE pin.

【0038】<1.2.4.2 BKTGIO_L信号設定>BKTGIO_L信
号がある場合には必須であるこの機能は、BKTGIO_L信号
を構成するために使用される。
<1.2.4.2 BKTGIO_L Signal Setting> This function, which is required when there is a BKTGIO_L signal, is used to configure the BKTGIO_L signal.

【0039】a) デバッグ・モジュールがイネーブルさ
れている場合、イネーブルまたはディスエーブル、方向
(入力または出力)、機能(ブレークまたはトリガ、あ
るいはその両方)はどの状態でも構成可能でなければな
らない。 b) BKTGIO_L信号は、デバッグ・モジュール・リセット
によって初期化されなければならない(ディスエーブ
ル、入力)。
A) If the debug module is enabled, the enable or disable, direction (input or output), and function (break and / or trigger) must be configurable in any state. b) The BKTGIO_L signal must be initialized by a debug module reset (disable, input).

【0040】<1.2.5 N-traceの構成> <1.2.5.1 N-trace実装フラグ>この必須機能は、N-tra
ceが実装されているかどうかを知るために使用される。
<1.2.5 Configuration of N-trace><1.2.5.1 N-trace implementation flag>
Used to know if ce is implemented.

【0041】a) N-trace機能が存在するかどうかが何ら
かの方法で分からなければならない。
A) It must be known in some way whether the N-trace function exists.

【0042】以下のことを推奨する。 b) この信号が存在するかどうかを、デバッグに関するJ
TAGプライベート命令によって選択されるtest data reg
ister内のビットによって知ることを推奨する。
The following is recommended. b) Determine if this signal is present by J
Test data reg selected by TAG private instruction
It is recommended to know by the bit in the ister.

【0043】以下のようにしてもよい。 c) test data register内のビットではなくdevice iden
tification registerの値を使用して、この存在を分か
るようにしてもよい。ツールは、サポートされているす
べてのプロセッサのIDのリストを持っていなければなら
ず、どのプロセッサがN-traceポートを有するかが分か
らなければならない。
The following may be performed. c) device iden instead of bits in test data register
The value of the tification register may be used to indicate this presence. The tool must have a list of IDs of all supported processors and must know which processor has the N-trace port.

【0044】<1.2.5.2 N-traceイネーブル/ディスエ
ーブル>N-traceが存在する場合には必須のこの機能
は、N-trace機能をイネーブルまたはディスエーブルす
るために使用される。
<1.2.5.2 N-trace Enable / Disable> This function, which is required if N-trace is present, is used to enable or disable the N-trace function.

【0045】a) デバッグ・モジュールがイネーブルさ
れている場合、イネーブルまたはディスエーブルはどの
状態でも構成可能でなければならない。 b) N-traceは、デバッグ・モジュール・リセットによっ
て初期化(ディスエーブル)されなければならない。
A) If the debug module is enabled, enable or disable must be configurable in any state. b) N-trace must be initialized (disabled) by a debug module reset.

【0046】<1.2.6 実行制御> <1.2.6.1 デバッグ・モードおよびノーマル・モード>
デバッグ・モードおよびノーマル・モードを以下のよう
に定義する。
<1.2.6 Execution Control><1.2.6.1 Debug Mode and Normal Mode>
Debug mode and normal mode are defined as follows.

【0047】ノーマル・モード:このモードでは、プロ
セッサは、ユーザ・プログラムを実行し、あるいはリセ
ットされる(デバッグ・リセットを含む)。 デバッグ・モード:このモードでは、プロセッサはユー
ザ・プログラムの実行を停止する。
Normal mode: In this mode, the processor executes a user program or is reset (including a debug reset). Debug mode: In this mode, the processor stops execution of the user program.

【0048】<1.2.6.2 デバッグ・リセット>この必須
機能は、デバッグ・ツールからのプロセッサ・リセット
信号を入力するために使用される(ターゲット・システ
ムからのリセットと同様に動作する)。
<1.2.6.2 Debug Reset> This essential function is used to input a processor reset signal from a debug tool (it operates in the same manner as a reset from the target system).

【0049】a) デバッグ・リセットは、プロセッサが
どのような状態であっても、プロセッサ・リセットを強
制的に実行、解除できなければならない。 b) このリセットは、ターゲット・システムからのリセ
ットと同じ効果を有する。 c) JTAG Test-Logic-Reset controller stateでは、こ
の設定はRMODE信号に応じて初期化される。RMODEは、ロ
ーである場合にはデバッグ・リセットを要求する。そう
でない場合は、デバッグ・リセットを要求せず、プロセ
ッサは、ターゲット・システムがリセット入力をドライ
ブしていない場合はリセットされない。JTAG Test-Logi
c-Reset controller stateが終了した後、ツールはJTAG
を介して設定を変更する。 d) この設定をデバッグ・モジュール初期化によって変
更してはならない。
A) The debug reset must be able to forcibly execute and release the processor reset regardless of the state of the processor. b) This reset has the same effect as a reset from the target system. c) In the JTAG Test-Logic-Reset controller state, this setting is initialized according to the RMODE signal. RMODE requests a debug reset if low. Otherwise, no debug reset is requested and the processor will not be reset if the target system is not driving the reset input. JTAG Test-Logi
After the c-Reset controller state ends, the tool
Change the settings via. d) This setting must not be changed by debug module initialization.

【0050】<1.2.6.3 デバッグ・ブレーク>この必須
機能は、ユーザ・プログラムの実行とは非同期的にプロ
セッサをデバッグ・モードにするブレークを要求するた
めに使用される。
<1.2.6.3 Debug Break> This essential function is used to request a break that puts the processor in the debug mode asynchronously with the execution of the user program.

【0051】a) ブレークが要求されたとき、プロセッ
サはユーザ・プログラムの実行をできるだけ早くブレー
クしなければならない。 b) ブレークの後、プロセッサは指令されるまでデバッ
グ・モードに留まらなければならない。 c) 要求が成功したか、それとも失敗したかが分からな
ければならない。 d) ブレークが失敗した場合、デバッグ・モジュール初
期化によって要求がクリアされなければならない。
A) When a break is requested, the processor must break the execution of the user program as soon as possible. b) After a break, the processor must remain in debug mode until commanded. c) Whether the request succeeded or failed must be known. d) If the break fails, the request must be cleared by debug module initialization.

【0052】<1.2.6.4 デバッグリセットからのブレー
ク>この必須機能は、ユーザ・プログラムを実行せずに
デバッグ・リセットを解除した後にデバッグ・モードに
入るために使用される。
<1.2.6.4 Break from Debug Reset> This essential function is used to enter the debug mode after releasing the debug reset without executing the user program.

【0053】a) ツールがデバッグ・リセットを解除し
たとき、プロセッサはデバッグ・モードに入らなければ
ならない。 b) ターゲット・システムまたはプロセッサに対する予
想されない影響を回避するために、プロセッサは(命令
取り出しなどのために)ターゲット・システム・メモリ
にアクセスしてはならず、デバッグ・リセットからデバ
ッグ・モードへの遷移時にユーザ・プログラム命令を実
行してはならない。 c) 要求が成功したか、それとも失敗したかが分からな
ければならない。 d) ブレークが失敗した場合、デバッグ・モジュール初
期化によって要求がクリアされなければならない。
A) When the tool releases debug reset, the processor must enter debug mode. b) To avoid unexpected effects on the target system or the processor, the processor must not access the target system memory (for instruction fetch, etc.) and transition from debug reset to debug mode Sometimes user program instructions must not be executed. c) Whether the request succeeded or failed must be known. d) If the break fails, the request must be cleared by debug module initialization.

【0054】<1.2.6.5 ユーザ・プログラムの実行の再
開>この必須機能は、デバッグ・モードを終了しユーザ
・プログラムの実行を再開するために使用される。
<1.2.6.5 Resume Execution of User Program> This essential function is used to terminate the debug mode and resume execution of the user program.

【0055】a) プロセッサは、要求に応じてデバッグ
・モードを終了しなければならない。 b) プロセッサは、デバッグ・モードを終了した後で、
ブレークの直前の状態からユーザ・プログラムの実行を
再開しなければならない(ツールが、レジスタの内容の
修正などのユーザ要求に応答して状態を変更している場
合を除く)。 c) 要求が成功したか、それとも失敗したかが分からな
ければならない。 d) ブレークが失敗した場合、デバッグ・モジュール初
期化によって要求がクリアされなければならない。
A) The processor must exit debug mode on demand. b) After exiting debug mode, the processor
Execution of the user program must be resumed from the state immediately before the break (unless the tool is changing states in response to a user request, such as modifying the contents of a register). c) Whether the request succeeded or failed must be known. d) If the break fails, the request must be cleared by debug module initialization.

【0056】<1.2.6.6 ユーザ・リセット入力からのユ
ーザ・プログラムの実行>この必須機能は、ターゲット
・リセット入力に対して同期的にリセット・ハンドラか
らユーザ・プログラムを開始するために使用される。
<1.2.6.6 Execution of User Program from User Reset Input> This essential function is used to start a user program from a reset handler synchronously with a target reset input.

【0057】a) プロセッサは、ユーザ・プログラムを
実行せずにプロセッサ・リセット入力を待たなければな
らない。 b) プロセッサ・リセット入力の後、プロセッサは、プ
ロセッサの通常の動作と同じ動作としてユーザ・プログ
ラムを開始しなければならない。 c) 要求が成功したか、それとも失敗したかが分からな
ければならない。 d) ブレークが失敗した場合、デバッグ・モジュール初
期化によって要求がクリアされなければならない。 e) ターゲット・リセット入力が受信されたかどうかが
分からなければならない。 f) デバッグ・モジュール初期化によってモードがクリ
アされなければならない。
A) The processor must wait for the processor reset input without executing the user program. b) After the processor reset input, the processor must start the user program as a normal operation of the processor. c) Whether the request succeeded or failed must be known. d) If the break fails, the request must be cleared by debug module initialization. e) It must be known whether a target reset input has been received. f) The mode must be cleared by debug module initialization.

【0058】<1.2.6.7 電力投入からのユーザ・プログ
ラムの実行>この任意選択機能は、ターゲット電力投入
リセットに同期してリセット・ハンドラからユーザ・プ
ログラムを開始するために使用される。電力投入直後な
ので、ツールのほぼすべての機能はデバッグ・リセット
またはデバッグ・ブレークが入るまで動作しない。 a) プロセッサは、ユーザ・プログラムを実行せずに電
力投入リセットを待たなければならない。 b) 電力投入リセット入力の後、プロセッサは、プロセ
ッサの通常の動作と同じ動作としてユーザ・プログラム
を開始しなければならない。 c) プロセッサは、デバッグ・リセットまたはデバッグ
・ブレークに応答しなければならない。 d) N-traceおよびハードウェア・ブレークポイントは、
最初のデバッグ・リセットまたはデバッグ・ブレークの
前のノーマル・モードで構成可能でなければならない。 e) デバッグ・リセットまたはデバッグ・ブレークの
後、ツールのすべての機能が使用可能でなければならな
い。
<1.2.6.7 Executing User Program from Power-On> This optional function is used to start the user program from the reset handler in synchronization with the target power-on reset. Since power is turned on, almost all functions of the tool will not work until a debug reset or debug break occurs. a) The processor must wait for a power-on reset without executing the user program. b) After a power-on reset input, the processor must start the user program as a normal operation of the processor. c) The processor must respond to a debug reset or debug break. d) N-trace and hardware breakpoints
Must be configurable in normal mode before the first debug reset or debug break. e) After a debug reset or debug break, all features of the tool must be available.

【0059】<1.2.6.8 ソフトウェア・ブレークポイン
ト>この必須機能は、指定されたアドレスにある命令が
実行される直前にユーザ・プログラムの実行にブレーク
をかけるために使用される。プロセッサは、ソフトウェ
ア・ブレークポイント命令と呼ばれる特殊な命令を実行
したときにブレークがかかってデバッグ・モードにな
る。これは、指定されたアドレスにある命令をソフトウ
ェア・ブレークポイント命令で置き換えることによって
実現されるので、一度に設定できるブレークポイントの
数に制限はない。しかし、メモリがRAMでない場合には
設定できない。
<1.2.6.8 Software Breakpoint> This essential function is used to break the execution of the user program immediately before the instruction at the specified address is executed. When a processor executes a special instruction called a software breakpoint instruction, a break occurs and the processor enters a debug mode. This is achieved by replacing the instruction at the specified address with a software breakpoint instruction, so there is no limit on the number of breakpoints that can be set at one time. However, it cannot be set if the memory is not RAM.

【0060】a) 命令の置換は、すくなくともデバッグ
・モードで実行できなければならない。 b) プロセッサは、ソフトウェア・ブレークポイント命
令を実行するとき、次の命令を実行する前にブレークが
かからなければならない。 c) ブレークの後、プロセッサは、終了するよう命令さ
れるまでデバッグ・モードのままでいなければならな
い。 d) ソフトウェア・ブレークポイントがブレークを行わ
せたアドレスが分からなければならない。 e) プロセッサは、ソフトウェア・ブレークポイントを
最初の命令で置き換えた後にプログラムの実行を正しく
再開できなければならない。 f) ソフトウェア・ブレークポイント命令の長さは、最
も短い命令の長さと同じでなければならない。 g) ブレークが成功したか、それとも失敗したかが分か
らなければならない。 h) ブレークが失敗した場合、デバッグ・モジュール初
期化によって要求がクリアされなければならない。
A) Instruction replacement must be performed at least in debug mode. b) When the processor executes a software breakpoint instruction, a break must be set before executing the next instruction. c) After a break, the processor must remain in debug mode until commanded to exit. d) The address at which the software breakpoint caused the break must be known. e) The processor must be able to correctly resume program execution after replacing the software breakpoint with the first instruction. f) The length of the software breakpoint instruction must be the same as the length of the shortest instruction. g) You must know whether the break was successful or failed. h) If the break fails, the request must be cleared by debug module initialization.

【0061】以下のことを推奨する。 i) デバッグ・モジュールが、ノーマル・モードおよび
デバッグ・リセットならびにデバッグ・モードで命令を
置き換える機能を有することを推奨する。 j) ソフトウェア・ブレークポイント命令を公表しては
ならず、またデバッグのために表だって予約してもいけ
ない。 k) ブレークが起こったたとき、プログラム・カウンタ
は、そのソフトウェア・ブレークポイント命令が置かれ
ているアドレスを指し示さなければならない。
The following is recommended. i) It is recommended that the debug module has the ability to replace instructions in normal mode and debug reset and debug mode. j) Software breakpoint instructions must not be published, nor should tables be reserved for debugging. k) When a break occurs, the program counter must point to the address where the software breakpoint instruction is located.

【0062】<1.2.6.9 シングルステップ・ブレーク>
この必須機能は、ユーザ・プログラムの実行をステップ
毎に実行する(一度に1つだけ命令を実行する)ために
使用される。単一ステップ・モードにおいてプロセッサ
がデバッグ・モードを終了してユーザプログラムへ移行
する場合には、ユーザ・プログラムの1つの命令を実行
した後にブレークがかかってデバッグ・モードに入る。
<1.2.6.9 Single-step break>
This essential function is used to execute the user program step by step (execute only one instruction at a time). When the processor exits the debug mode and shifts to the user program in the single-step mode, a break occurs after executing one instruction of the user program, and the debug mode is entered.

【0063】a) シングルステップ・モード設定は、デ
バッグ・モードで変更(イネーブル/ディスエーブル)
可能でなければならない。 b) プロセッサは、ユーザ・プログラムの1つの命令を実
行したあとにデバッグ・モードにならなければならな
い。 c) ブレークの後、プロセッサは、終了するよう命令さ
れるまでデバッグ・モードのままでなければならない。 d) ステップ動作中に実行された命令(そのアドレスお
よび命令カウント)が分からなければならない。 e) プロセッサは、プログラムの実行を正しく再開でき
なければならない。 g) ブレークが成功したか、それとも失敗したかが分か
らなければならない。 h) ブレークが失敗した場合、デバッグ・モジュール初
期化によって未処理の要求がクリアされなければならな
い。
A) Single-step mode setting is changed in debug mode (enable / disable)
Must be possible. b) The processor must enter debug mode after executing one instruction of the user program. c) After a break, the processor must remain in debug mode until commanded to exit. d) The instruction executed during the step operation (its address and instruction count) must be known. e) The processor must be able to resume program execution properly. g) You must know whether the break was successful or failed. h) If the break fails, the pending request must be cleared by debug module initialization.

【0064】以下のようにしてもよい。 i) プログラムの実行を正しく再開するために、ステッ
プ動作中に複数の命令を実行してもよい。たとえば、プ
ロセッサが遅延分岐命令を有する場合にこのようにする
ことができる。
The following may be performed. i) Multiple instructions may be executed during a step operation to properly resume program execution. This can be done, for example, if the processor has a delayed branch instruction.

【0065】<1.2.6.10 ハードウェア・ブレークポイ
ント>この機能は、指定されたプロセッサ内部条件を検
出することによってユーザ・プログラムの実行にブレー
クをかけるために使用される。この仕様では、以下のタ
イプのハードウェア・ブレークポイントが定義される。
<1.2.6.10 Hardware Breakpoint> This function is used to break the execution of the user program by detecting a specified processor internal condition. This specification defines the following types of hardware breakpoints:

【0066】命令アドレス・ブレークポイント:プロセ
ッサは、指定されたアドレスにある命令を実行する前に
ユーザ・プログラムの実行にブレークをかける。ソフト
ウェア・ブレークポイントとは異なり、このブレークポ
イントは、RAM内以外の命令に設定することもできる。
データ・アクセス・ブレークポイント:プロセッサは、
メモリの指定されたアドレスに指定されたデータでアク
セスするときにユーザ・プログラムの実行にブレークを
かける。
Instruction address breakpoint: The processor breaks execution of the user program before executing the instruction at the specified address. Unlike software breakpoints, these breakpoints can be set on instructions outside of RAM.
Data access breakpoint: the processor
Breaks the execution of the user program when accessing the specified address of the memory with the specified data.

【0067】また、ハードウェア・ブレークポイント
は、指定されたプロセッサ内部条件で外部機器およびN-
traceをトリガ/トレースするために使用することがで
きる。さらに、N-traceは、データ・アクセス・ブレー
クポイントで指定されたメモリ・アクセスに使用される
アドレスおよびデータを出力することができる。
Further, a hardware breakpoint can be set to an external device and an N-
Can be used to trigger / trace trace. In addition, N-trace can output addresses and data used for memory access specified by data access breakpoints.

【0068】a) ハードウェア・ブレークポイント設定
は、プロセッサがデバッグ・モードであるか、それとも
ノーマル・モードであるかにかかわらずに変更可能でな
ければならない。 b) ノーマル・モードでは、設定の変更時にユーザ・プ
ログラムの実行に影響を与えてはならない(すなわち、
一時的にでも停止してはならない)。 c) 各ハードウェア・ブレークポイントは個別に構成可
能でなければならない。ここで構成するとは、ブレーク
するかどうか、トリガを出力するかどうか、MATCHパケ
ットを出力するかどうかなどが含まれる。 d) ブレークの後、プロセッサは、(ブレークがイネー
ブルされている場合に)デバッグ・モードのままでなけ
ればならない。 e) (ブレークがイネーブルされている場合に)どのハ
ードウェア・ブレークポイントによってブレークが行わ
れたかが分からなければならない。 f) プロセッサは、(ブレークがイネーブルされている
場合に)プログラムの実行を正しく再開できなければな
らない。 g) (ブレークがイネーブルされている場合に)ブレー
クが成功したか、それとも失敗したかが分からなければ
ならない。 h) (ブレークがイネーブルされている場合に)ブレー
クが失敗した場合、デバッグ・モジュール初期化によっ
て未処理の要求がクリアされなければならない。 i) 実装オプション(チャネルの数など)が分からなけ
ればならない。
A) The hardware breakpoint settings must be changeable regardless of whether the processor is in debug mode or normal mode. b) In normal mode, changing the settings must not affect the execution of the user program (ie,
Do not stop temporarily.) c) Each hardware breakpoint must be individually configurable. The configuration here includes whether to break, whether to output a trigger, whether to output a MATCH packet, and the like. d) After a break, the processor must remain in debug mode (if break is enabled). e) You must know which hardware breakpoint caused the break (if breaks are enabled). f) The processor must be able to correctly resume program execution (if breaks are enabled). g) You must know if the break succeeded or failed (if breaks are enabled). h) If the break fails (if breaks are enabled), the debug module initialization must clear any outstanding requests. i) Implementation options (number of channels, etc.) must be known.

【0069】<1.2.6.11 命令アドレス・ブレークポイ
ント(ハードウェア・ブレークポイント)>この必須機
能は、指定されたアドレスにある命令が実行される前に
ユーザ・プログラムの実行を中止するために使用され
る。ソフトウェア・ブレークポイントとは異なり、この
ブレークポイントは、RAM内以外の命令に設定すること
もできる。これは、指定されたアドレスにある命令が実
行されたことを検出する(がユーザ・プログラムの実行
にはブレークをかけない)ときにも使用される。
<1.2.6.11 Instruction Address Breakpoint (Hardware Breakpoint)> This required function is used to stop execution of the user program before the instruction at the specified address is executed. You. Unlike software breakpoints, these breakpoints can be set on instructions outside of RAM. This is also used to detect that the instruction at the specified address has been executed (but not to break the execution of the user program).

【0070】a) この機能は、「ハードウェア・ブレー
クポイント」の節で説明した規則に従わなければならな
い。 b) プロセッサは、(ブレークがイネーブルされている
場合に)ブレークポイントが設定された命令を実行する
前にブレークを起こさなければならない。 c) アドレスは、最も小さな命令の分解能で指定できな
ければならない。 d) デバッグ・モジュールは、ユーザ・プログラム・コ
ードがROM内に存在する場合に最低限の実行制御機能を
サポートするために、少なくとも1つの命令アドレス・
ブレークポイントを持っていなければならない。 e) ブレークポイントは、ユーザ・プログラム・コード
が存在するいかなるアドレスにも設定できなければなら
ない。 f) (ブレークがイネーブルされている場合に)アドレ
ス・ブレークポイントがブレークを行わせたアドレスが
分からなければならない。
A) This function must follow the rules described in the "Hardware Breakpoints" section. b) The processor must cause a break before executing the instruction on which the breakpoint is set (if break is enabled). c) Addresses must be specified with the smallest instruction resolution. d) The debug module must have at least one instruction address to support minimal execution control when the user program code is in ROM.
Must have breakpoints. e) Breakpoints must be set at any address where the user program code resides. f) The address at which the address breakpoint caused the break (if breaks are enabled) must be known.

【0071】以下のことを推奨する。 g) プログラム・カウンタは、ブレークポイントがヒッ
トしたアドレスを指し示すべきである。
The following is recommended. g) The program counter should point to the address where the breakpoint was hit.

【0072】以下のことは任意選択である。 e) アドレス比較はマスク機能またはレンジ機能を有す
ることができる。
The following is optional. e) The address comparison can have a mask function or a range function.

【0073】アドレス・マスクまたはレンジAddress mask or range

【0074】プログラムが、指定されたアドレス・ブロ
ックから出たこと、あるいは指定されたアドレス・ブロ
ックに入ったことを検出するために使用される。このた
め、マスクは下位アドレス・ビットのみに有効になるよ
うにすることができる。以下の2つのオプションが選択
可能である。(1)アドレスが範囲内であるときにブレ
ークポイントがヒットする。(2)アドレスが範囲外で
あるときにブレークポイントがヒットする。
A program is used to detect when a program exits or enters a specified address block. Thus, the mask can be made valid only for the lower address bits. The following two options are available. (1) A breakpoint is hit when the address is within the range. (2) Breakpoint hit when address is out of range.

【0075】<1.2.6.12 データ・アクセス・ブレーク
ポイント(ハードウェア・ブレークポイント)>この任
意選択機能は、指定されたアドレスへのデータ・アクセ
ス(変数または入出力)時にユーザ・プログラムの実行
にブレークをかけるために使用される。この機能は、指
定されたアドレスへのデータ・アクセスを検出する
(が、ユーザ・プログラムの実行にはブレークをかけな
い)ときにも使用される。N-traceは、データ・アクセ
ス・ブレークポイントで指定されたデータ・アクセスに
使用されたデータを出力することができる。この機能
は、C言語レベルのデバッグで、固定メモリ・ロケーシ
ョンまたは入出力に存在する指定された変数(グローバ
ル変数または静的変数)へのアクセスを検出するために
使用することができる。
<1.2.6.12 Data Access Breakpoint (Hardware Breakpoint)> This optional function breaks the execution of the user program when data is accessed (variable or input / output) to the specified address. Used to multiply. This function is also used when detecting data access to a specified address (but not breaking the execution of the user program). N-trace can output data used for data access specified by a data access breakpoint. This feature can be used in C-level debugging to detect access to specified variables (global or static) that reside in fixed memory locations or I / O.

【0076】a) この機能は、「ハードウェア・ブレー
クポイント」の節で説明した規則に従わなければならな
い。 b) プロセッサが分離された入出力空間を有する場合、
比較のためにメモリ空間または入出力空間を選択するス
イッチがなければならない。 c) プロセッサは、(ブレークがイネーブルされている
場合に)ブレークポイントが設定されたメモリまたは入
出力にアクセスすることによってブレークしなければら
ない。 d) アドレスは、少なくとも、最も小さなデータの分解
能に指定できなければならない。 e) アクセス・タイプは、読取りまたは書込み、あるい
はその両方から選択できなければならない。 f) ブレークポイントは、ユーザ・プログラムがデータ
操作のためにアクセスするいかなるアドレスにも設定し
できなければならない。
A) This function must follow the rules described in the "Hardware Breakpoints" section. b) If the processor has separate I / O space,
There must be a switch to select memory space or input / output space for comparison. c) The processor must break (if breaks are enabled) by accessing the memory or I / O where the breakpoint is set. d) Addresses must be specified at least for the smallest data resolution. e) The access type must be selectable between read and / or write. f) Breakpoints must be set at any address that the user program accesses for data manipulation.

【0077】以下のことは任意選択である。 g) アドレス比較は、マスク機能またはレンジ機能を有
することができる。 h) データ比較を行うことができる。 i) データ比較はマスク機能またはレンジ機能を有する
ことができる。 j) メモリおよび入出力だけでなくそれ以外の資源タイ
プも指定できてよい。
The following is optional. g) The address comparison can have a mask function or a range function. h) Data comparison can be performed. i) The data comparison can have a mask function or a range function. j) In addition to memory and I / O, other resource types may be specified.

【0078】アドレス・マスクまたはレンジ プログラムが、指定されたアドレス・ブロックの内外の
メモリまたは入出力位置へのアクセスを検出するために
使用される。たとえば、この機能は、不当なメモリ・ブ
ロックがアクセスされたときにユーザ・プログラムの実
行にブレークをかけ、あるいはN-traceを使用して、指
定された入出力ブロックへのデータ・アクセスをトレー
スする。このため、マスクは下位連続アドレス・ビット
のみに有効になるようにすることができる。以下の2つ
のオプションが選択可能である。 (1)アドレスが範囲内であるときにブレークポイント
がヒットする。(2)アドレスが範囲外であるときにブ
レークポイントがヒットする。
An address mask or range program is used to detect access to memory or I / O locations inside or outside the specified address block. For example, this feature breaks execution of the user program when an illegal block of memory is accessed, or uses N-trace to trace data access to specified I / O blocks. . Thus, the mask can be made valid only for the lower consecutive address bits. The following two options are available. (1) A breakpoint is hit when the address is within the range. (2) Breakpoint hit when address is out of range.

【0079】データ比較 指定されたデータへのアクセスを検出するために使用さ
れる。たとえば、この機能は、ユーザ・プログラムの実
行を中止し、あるいは指定された変数の内容が指定され
た値になったときにN-traceをトリガする。
Data comparison Used to detect access to specified data. For example, this function stops execution of the user program or triggers N-trace when the contents of the specified variable reaches the specified value.

【0080】データ・マスクまたはレンジ メモリや入出力へのデータアクセスが設定された範囲に
入っていたり、特定のパターンにマッチする場合に、そ
れを検出するのに使用される。たとえば、この機能は、
指定された変数の指定されたビットが指定された値にな
ったときにN-traceをトリガする。このため、マスクは
各ビットに個別に指定できなければならない。以下の2
つのオプションが選択可能である。(1)アドレスが範
囲内であるときにブレークポイントがヒットする。
(2)アドレスが範囲外であるときにブレークポイント
がヒットする。
Data Mask or Range Used to detect when data access to a memory or input / output is within a set range or matches a particular pattern. For example, this feature
Trigger N-trace when the specified bit of the specified variable reaches the specified value. For this reason, the mask must be able to be individually specified for each bit. 2 below
Two options are available. (1) A breakpoint is hit when the address is within the range.
(2) Breakpoint hit when address is out of range.

【0081】資源タイプ メモリまたは入出力以外のプロセッサ資源へのアクセス
を検出するために使用される。可能なプロセッサ資源
は、オンチップ・キャッシュ、オンチップTLB、レジス
タ(コプロセッサのレジスタを含む)である。
Resource Type Used to detect access to processor resources other than memory or input / output. Possible processor resources are on-chip cache, on-chip TLB, and registers (including coprocessor registers).

【0082】<1.2.6.13 デバッグ・モード・フラグ>
この必須機能は、プロセッサがデバッグ・モードである
か、それともノーマル・モードであるかを調べるために
使用される。これを使用することによって、ツールは、
ブレークが行われたことを検出し、あるいはノーマル・
モードでは許容されないデバッグ機能が実行可能かどう
かを知ることができる。
<1.2.6.13 Debug mode flag>
This required function is used to determine if the processor is in debug mode or normal mode. By using this, the tool
Detects that a break has taken place, or
It is possible to know whether a debugging function that is not allowed in the mode can be executed.

【0083】a) このフラグは、プロセッサがデバッグ
・モードであるか、それともノーマル・モードであるか
を示さなければならない。 b) このフラグは、プロセッサがデバッグ・モードであ
るか、それともノーマル・モードであるかにかかわらず
にアクセス可能でなければならない。
A) This flag must indicate whether the processor is in debug mode or normal mode. b) This flag must be accessible whether the processor is in debug mode or normal mode.

【0084】<1.2.6.14 ブレーク原因フラグ>この必
須機能は、ブレークの原因を調べるために使用される。
ツールは、ブレークの原因に応じてブレークの後に必要
な後処理を実行する。
<1.2.6.14 Break Cause Flag> This essential function is used to check the cause of a break.
The tool performs necessary post-processing after the break depending on the cause of the break.

【0085】a) このフラグは、ブレークの実行毎に更
新しなければならない。 b) このフラグは、デバッグ・モードでアクセス可能で
なければならない。 c) 複数のブレーク原因によってブレークが要求された
場合、すべての原因を示さなければならない。
A) This flag must be updated each time a break is executed. b) This flag must be accessible in debug mode. c) If a break was requested by more than one break cause, all causes must be indicated.

【0086】<1.2.7 プロセッサ・ステータス> <1.2.7.1 プロセッサ・ステータス・フラグ>この必須
機能は、現在のプロセッサ・ステータスを調べるために
使用される。これを使用することによって、ツールは、
ある種のプロセッサ・ステータスで失敗するコマンドの
送信を回避することができ、あるいはデバッグ機能の要
求が拒否された場合に失敗の原因を知る。これは、現在
のプロセッサ・ステータスをユーザに伝えるときにも使
用される。
<1.2.7 Processor Status><1.2.7.1 Processor Status Flag> This required function is used to check the current processor status. By using this, the tool
It is possible to avoid sending a command that fails with certain processor status, or to know the cause of the failure if the request for a debug function is denied. It is also used to communicate the current processor status to the user.

【0087】a) このフラグは、プロセッサ・ステータ
スが変化するたびに更新しなければならない。 b) このフラグは、プロセッサがデバッグ・モードであ
るか、それともノーマル・モードであるかにかかわらず
にアクセス可能でなければならない。 c) デバッグ機能が失敗するすべてのプロセッサ・ステ
ータスを示さなければならない。
A) This flag must be updated each time the processor status changes. b) This flag must be accessible whether the processor is in debug mode or normal mode. c) The debug function shall indicate all processor statuses that fail.

【0088】以下のことを推奨する。 d) 以下の優先順位で1つのプロセッサ・ステータスのみ
を示すことができる。
The following is recommended. d) Only one processor status can be indicated with the following priority.

【0089】<1.2.7.2 バスのハングアップ時のアドレ
ス>この任意選択機能は、ready応答がないためにバス
・サイクルがハングアップしたときのアドレスを調べる
ために使用される。
<1.2.7.2 Bus Hung-Up Address> This optional function is used to check the address when the bus cycle hangs up because there is no ready response.

【0090】<1.2.8 メモリおよび入出力アクセス>ツ
ール側からのメモリまたは入出力アクセス機能には3つ
の要件がある。 ・デバッグ・モードでのメモリまたは入出力への通常の
アクセス(必須) ・メモリまたは入出力へのクイック・アクセス(任意選
択) ・メモリへの高速プログラム・ダウンロード(任意選
択)
<1.2.8 Memory and Input / Output Access> The memory or input / output access function from the tool side has three requirements. • Normal access to memory or I / O in debug mode (required) • Quick access to memory or I / O (optional) • High-speed program download to memory (optional)

【0091】<1.2.8.1 デバッグ・モードでのメモリま
たは入出力への通常のアクセス>この必須機能は、デバ
ッグ・モードでメモリまたは入出力にアクセスするため
に使用される。ツールは、変数(ローカル変数を含む)
および入出力を表示し修正することができる。これは、
ソフトウェア・ブレークポイントを設定または除去する
ときに使用することもできる。
<1.2.8.1 Normal Access to Memory or I / O in Debug Mode> This essential function is used to access memory or I / O in debug mode. Tools include variables (including local variables)
And input and output can be displayed and modified. this is,
It can also be used when setting or removing software breakpoints.

【0092】a) 変数読取り/書込みおよびソフトウェ
ア・ブレークポイント設定/除去を使用するには、メモ
リまたは入出力がアクセス可能でなければならない。 b) プロセッサがアクセスできるアドレスにあるいかな
るメモリまたは入出力に対してもアクセス可能でなけれ
ばならない。 c) アクセスが完了したかどうかと、成功したか、それ
とも失敗したかが分からなければならない。 d) アクセスが例外(たとえば、バス・エラー)を発生
させようとしている場合、例外を発生させてはならず、
そのアクセスが異常終了することとその理由が分からな
ければならない。 e) アクセスが完了しない場合、影響を最小限に抑えな
ければならない。たとえば、応答がないためにバス・サ
イクルがハングアップした(無限待機)場合、ツールは
バス・サイクルを中止できなければならない。 f) アクセスは、失敗した場合、デバッグ・モジュール
初期化によって初期化されなければならない。 g) プロセッサが特権モードとユーザ・モードを有する
場合でも、モードにかかわらずにメモリおよび入出力に
アクセスできなければならない。
A) To use variable read / write and software breakpoint setting / removal, memory or I / O must be accessible. b) Must be accessible to any memory or I / O at addresses accessible by the processor. c) It must know whether the access has been completed and whether it has succeeded or failed. d) If the access is to raise an exception (eg, a bus error), the exception must not be raised,
You must know that the access is aborted and why. e) If access is not completed, the impact must be minimized. For example, if the bus cycle hangs due to no response (infinite wait), the tool must be able to abort the bus cycle. f) If access fails, it must be initialized by debug module initialization. g) Even if the processor has a privileged mode and a user mode, it must be able to access memory and I / O regardless of the mode.

【0093】以下のようにしてもよい。 h) ノーマル・モードまたはプロセッサ・リセット(デ
バッグ・リセットを含む)時にアクセスできる必要はな
い。
The following may be performed. h) Does not need to be accessible during normal mode or processor reset (including debug reset).

【0094】<1.2.8.2 メモリまたは入出力へのクイッ
ク・アクセス>この任意選択機能は、メモリまたは入出
力に迅速にアクセスするために使用される。その主要な
目的は、ユーザがユーザ・プログラムの実行に干渉せず
にグローバル変数、または静的変数、または入出力を監
視できるようにすることである。
<1.2.8.2 Quick Access to Memory or I / O> This optional function is used for quick access to memory or I / O. Its primary purpose is to allow a user to monitor global or static variables, or inputs and outputs, without interfering with the execution of the user program.

【0095】a) メモリまたは入出力のアクセスは、ユ
ーザ・プログラムの実行を停止してはならず、あるいは
ユーザ・プログラムの実行を停止する場合は非常に短い
時間だけにしなければならない。 b) メモリまたは入出力のアクセスは、プロセッサがデ
バッグ・モードであるか、それともノーマル・モードで
あるかにかかわらずに行われなければならない。 c) アクセスが完了したかどうかと、成功したかそれと
も失敗したかが分からなければならない。 d) ユーザ・プログラムがデータ操作のためにアクセス
するいかなるアドレスにあるメモリまたは入出力に対し
てもアクセスできなければならない。 e) アクセスが例外(たとえば、バス・エラー)を発生
させようとしている場合、例外を発生させてはならず、
そのアクセスが異常終了することとその理由が分からな
ければならない。 f) アクセスが完了しない場合、影響を最小限に抑えな
ければならない。たとえば、応答がないためにバス・サ
イクルがハングアップ(無限待機)した場合、バス・サ
イクルを中止できなければならない。 g) アクセスが失敗した場合、それはデバッグ・モジュ
ール初期化によって初期化されなければならない。 h) プロセッサが特権モードとユーザ・モードを有する
場合でも、モードにかかわらずにメモリおよび入出力に
アクセスできなければならない。
A) Access to memory or I / O must not halt the execution of the user program, or only a very short time when halt execution of the user program. b) Memory or I / O accesses must be made regardless of whether the processor is in debug mode or normal mode. c) It must know whether the access has been completed and whether it has succeeded or failed. d) The user program must be able to access memory or I / O at any address accessed for data manipulation. e) If the access is to raise an exception (eg, a bus error), the exception must not be raised,
You must know that the access is aborted and why. f) If access is not completed, the impact must be minimized. For example, if the bus cycle hangs up (infinite wait) due to no response, the bus cycle must be able to be aborted. g) If the access fails, it must be initialized by debug module initialization. h) Even if the processor has a privileged mode and a user mode, it must be able to access memory and I / O regardless of the mode.

【0096】以下のようにしてもよい。 i) プロセッサ・リセット(デバッグ・リセットを含
む)時にクイック・アクセスを実行できる必要はない。 j) 読取りアクセスしかサポートできなくてもよい。
The following may be performed. i) It is not necessary to be able to perform quick access at processor reset (including debug reset). j) It may not be possible to support only read access.

【0097】以下のことを推奨する。 k) アクセスの方式が通常のアクセスと同じであること
を推奨する。
The following is recommended. k) It is recommended that the access method be the same as normal access.

【0098】<1.2.8.3 メモリへの高速プログラム・ダ
ウンロード>この任意選択機能は、ユーザ・プログラム
をメモリにダウンロードするために使用される。
<1.2.8.3 High-speed Program Download to Memory> This optional function is used to download a user program to the memory.

【0099】a) メモリ・ブロックへの書込みは高速で
なければならない。 b) ユーザ・プログラムが存在するアドレスにあるいか
なるメモリに対しても書込み可能でなければならない。 c) アクセスが完了したかどうかと、成功したか、それ
とも失敗したかが分からなければならない。 d) アクセスが例外(たとえば、バス・エラー)を発生
させようとしている場合、例外を発生させてはならず、
そのアクセスが異常終了することとその理由が分からな
ければならない。 e) アクセスが完了しない場合、影響を最小限に抑えな
ければならない。たとえば、応答がないためにバス・サ
イクルがハングアップ(無限待機)した場合、ツールは
バス・サイクルを中止できなければならない。 f) アクセスが失敗した場合、それはデバッグ・モジュ
ール初期化によって初期化されなければならない。 g) プロセッサが特権モードとユーザ・モードを有する
場合でも、モードにかかわらずにメモリにアクセスでき
なければならない。
A) Writing to a memory block must be fast. b) Write to any memory at the address where the user program resides. c) It must know whether the access has been completed and whether it has succeeded or failed. d) If the access is to raise an exception (eg, a bus error), the exception must not be raised,
You must know that the access is aborted and why. e) If access is not completed, the impact must be minimized. For example, if a bus cycle hangs (infinite wait) due to no response, the tool must be able to abort the bus cycle. f) If the access fails, it must be initialized by debug module initialization. g) Even if the processor has a privileged mode and a user mode, it must be able to access the memory regardless of the mode.

【0100】以下のようにしてもよい。 h) ノーマル・モードまたはプロセッサ・リセット(デ
バッグ・リセットを含む)時に高速ダウンロードを実行
できる必要はない。
The following may be performed. h) It is not necessary to be able to perform fast downloads in normal mode or on processor reset (including debug reset).

【0101】以下のことを推奨する。 i) アクセスの方式が通常のアクセスと同じであること
を推奨する。
The following is recommended. i) It is recommended that the access method be the same as normal access.

【0102】<1.2.8.4 レジスタ・アクセス>この必須
機能は、デバッグ・モードでレジスタにアクセスするた
めに使用される。ツールはレジスタを表示し変更するこ
とができる。
<1.2.8.4 Register Access> This essential function is used to access a register in the debug mode. Tools can display and modify registers.

【0102】a) ユーザ・プログラムによって使用され
るすべてのプロセッサ・レジスタはデバッグ・モードで
アクセスできなければならない。 b) アクセスが成功したか、それとも失敗したかが分か
らなければならない。 c) アクセスが失敗した場合、デバッグ・モジュール初
期化によって要求がクリアされなければならない。 d) デバッグ・モードでも活動状態であるいくつかの関
数を制御するレジスタに対する変更をただちに有効にし
なければならない(たとえば、オンチップ周辺レジス
タ)。 e) プロセッサが特権モードとユーザ・モードを有する
場合でも、モードにかかわらずにレジスタにアクセスで
きなければならない。
A) All processor registers used by the user program must be accessible in debug mode. b) You must know whether the access was successful or failed. c) If the access fails, the request must be cleared by debug module initialization. d) Changes to registers that control some functions that are also active in debug mode must take effect immediately (eg, on-chip peripheral registers). e) Even if the processor has a privileged mode and a user mode, it must be able to access the registers regardless of the mode.

【0103】以下のようにしてもよい。 f) 読取り専用レジスタは書込みができなくてもよい。
書込み専用レジスタは読取りができなくてもよい。
The following may be performed. f) Read-only registers need not be writable.
The write-only register may not be readable.

【0104】<1.3.標準実装方法> <1.3.1 JTAGデバッグ命令>JTAG任意選択命令のIDCODE
を実装しなければならない。 IDCODE device identification
register
<1.3. Standard mounting method><1.3.1 JTAG debug instruction> IDCODE of JTAG optional instruction
Must be implemented. IDCODE device identification
register

【0105】以下の命令も、デバッグ用のJTAGプラ
イベート命令として定義されている。 DM_SYSTEM デバッグ・モジュール・システム・レジ
スタを選択する。 DM_CONTROL デバッグ・モジュール制御レジスタを選
択する。 DM_RADDR デバッグ・モジュール資源アクセス・ア
ドレス・レジスタを選択する。 DM_RDATA デバッグ・モジュール資源アクセス・デ
ータ・レジスタを選択する。
The following instructions are also defined as JTAG private instructions for debugging. DM_SYSTEM Select debug module system register. DM_CONTROL Select debug module control register. DM_RADDR Selects debug module resource access address register. DM_RDATA Selects debug module resource access data register.

【0106】JTAGプライベート命令が選択するtest dat
a registerの詳細を以下に説明する。
Test dat selected by JTAG private instruction
The details of a register will be described below.

【0107】<1.3.2 IDCODEレジスタ>このレジスタの
構成を図3に示す。
<1.3.2 IDCODE Register> FIG. 3 shows the configuration of this register.

【0108】デバイスがデバッグ・モジュールを有する
かどうかとを示す関数debug_module_exist()と、各製造
業者ごとのプロセッサ・ファミリIDコードを示す関数pr
ocessor_family_id()がある。デバッグ・ツールは、製
造業者から与えられた関数を使用することによってこれ
らを判定することができる。たとえば、ツールが、部品
番号が0x123?(ここで?は当該桁の数値が何でもよいこ
とを示す)であるプロセッサ・ファミリをサポートし、
バージョンのMSBが、デバイスがデバッグ・モジュール
を有するかどうかを示す場合、これらの関数はC言語風
に表記すれば以下のとおりである。 processor_family_id(part_no, version) = (part_no &
0xfff0);debug_module_exist(part_no, version) = pr
ocessor_family_id(part_no) == 0x1230 && (version &
0x8);
A function debug_module_exist () indicating whether the device has a debug module and a function pr indicating a processor family ID code for each manufacturer
There is ocessor_family_id (). The debug tool can determine these by using functions provided by the manufacturer. For example, if the tool supports a processor family with a part number of 0x123? (Where? Indicates that the digit in the digit is anything)
If the version of the MSB indicates whether the device has a debug module, these functions are written in C-style as follows: processor_family_id (part_no, version) = (part_no &
0xfff0); debug_module_exist (part_no, version) = pr
ocessor_family_id (part_no) == 0x1230 && (version &
0x8);

【0109】<1.3.3 デバッグ・モジュール・システム
・レジスタ> DINIT デバッグ・モジュールを初期化する(R/W)。 1:デバッグ・モジュールをリセット(初期化)する。 0:デバッグ・モジュールのリセットを解除する。 Test-Logic-Reset controller stateではデフォルトと
して1になる。
<1.3.3 Debug Module System Register> DINIT Initializes the debug module (R / W). 1: Reset (initialize) the debug module. 0: Release reset of debug module. Test-Logic-Reset controller state defaults to 1.

【0110】BKTGIO BKTGIO_L/RMODE信号実装(R) 1:実装している。 0:実装していない。BKTGIO BKTGIO_L / RMODE signal mounting (R) 1: mounted. 0: Not implemented.

【0111】BKTGIODIR BKTGIO_Lの方向(R/W) 1:入力 0:出力 デバッグ・モジュール初期化ではデフォルトとして1に
なる。
BKTGIODIR Direction of BKTGIO_L (R / W) 1: Input 0: Output Default is 1 when the debug module is initialized.

【0112】BKTGIOBEN BKTGIO_Lブレーク・イネー
ブル(R/W) 1:プロセッサ・ブレーク時にトリガをドライブし、あ
るいはBKTGIO_L入力時にプロセッサをトリガすることを
イネーブルする。 0:ディスエーブル デバッグ・モジュール初期化時にはデフォルトとして0
になる。
BKTGIOBEN BKTGIO_L Break Enable (R / W) 1: Drives a trigger at the time of processor break, or enables triggering of the processor at the time of BKTGIO_L input. 0: Disabled 0 by default when the debug module is initialized
become.

【0113】BKTGIOTEN BKTGIO_Lトリガ・イネーブ
ル(R/W) 1:N-Traceトリガ時にトリガをドライブし、あるいはBK
TGIO_L入力時にN-Traceをトリガすることをイネーブル
する。 0:ディスエーブル デバッグ・モジュール初期化時にはデフォルトとして0
になる。
BKTGIOTEN BKTGIO_L trigger enable (R / W) 1: Trigger drive at N-Trace trigger, or BK
Enable to trigger N-Trace on TGIO_L input. 0: Disabled 0 by default when the debug module is initialized
become.

【0114】NTRACE N-trace実装(R) 1:実装している。 0:実装していない。NTRACE N-trace implementation (R) 1: implemented. 0: Not implemented.

【0115】NTRACEEN N-traceイネーブル(R/W) 1:イネーブル 0:ディスエーブル デバッグ・モジュール初期化時にはデフォルトとして0
になる。
NTRACEEN N-trace enable (R / W) 1: Enable 0: Disable 0 when the debug module is initialized
become.

【0116】<1.3.4 デバッグ制御レジスタ> RESET デバッグ・リセット(R/W) 1:デバッグ・リセットを要求する。 0:デバッグ・リセットを解除する。 RMODEが存在する場合、Test-Logic-Reset controller s
tateではデフォルトとしてRMODEのレベルに従う。RMODE
が存在しない場合、Test-Logic-Reset controller stat
eではデフォルトとして0になる。
<1.3.4 Debug Control Register> RESET Debug Reset (R / W) 1: Requests a debug reset. 0: Release debug reset. Test-Logic-Reset controller s if RMODE exists
Tate follows the RMODE level as default. RMODE
Test-Logic-Reset controller stat if does not exist
e defaults to 0.

【0117】BREAK ブレーク要求(R/W) 書込み1:ブレークを要求するコマンド 書込み0:動作なし 読取り1:コマンドが完了しない(依然としてブレーク
を要求している)。 読取り0:ブレークが完了した。 このビットは、ブレークが完了したときにクリアされ
る。デバッグ・モジュール初期化時にデフォルトとして
0になる。
BREAK Break request (R / W) Write 1: Command requesting break Write 0: No operation Read 1: Command not completed (Break is still requested). Read 0: Break completed. This bit is cleared when the break has completed. As default at debug module initialization
Becomes 0.

【0118】EXIT デバッグ・モードから脱出する
(R/W) 書込み1:デバッグ・モードを離脱するコマンド 書込み0:動作なし 読取り1:コマンドが完了していない(依然としてデバ
ッグ・モードである)。 読取り0:コマンドが完了した。 ノーマル・モードへに脱出した直後にブレークが行われ
た場合であっても、このビットはコマンドが完了したと
きにクリアされる。 − 再び脱出するのを回避するため。 − ツールがデバッグ・モード・フラグによってノーマ
ル・モードを検出できない場合に新しいブレークを検出
するため。 デバッグ・モジュール初期化時にデフォルトとして0に
なる。
EXIT Exit from debug mode (R / W) Write 1: Command to leave debug mode Write 0: No operation Read 1: Command not completed (still in debug mode). Read 0: Command completed. This bit is cleared when the command completes, even if a break occurs immediately after exiting to normal mode. -To avoid escaping again. − To detect a new break when the tool cannot detect normal mode due to the debug mode flag. Defaults to 0 when the debug module is initialized.

【0119】MRST デバッグ・モードでユーザ・リセ
ットをマスクする(R/W)。 1:デバッグ・モードでターゲット・リセット入力を無
視(マスク)する。 0:デバッグ・モードでターゲット・リセット入力を受
け入れる。 デバッグ・モジュール初期化時にデフォルトとして0に
なる。
Mask the user reset in the MRST debug mode (R / W). 1: Ignore (mask) the target reset input in debug mode. 0: Accept target reset input in debug mode. Defaults to 0 when the debug module is initialized.

【0120】MNMI ユーザNMIのマスク(R/W) 1:NMIの発生を抑制する。 0:NMIの発生を抑制しない。 NMIがエッジ検知入力であると仮定する。未処理のNMIが
発生するのは、ビットがクリアされたときである。デバ
ッグ・モジュール初期化時にデフォルトとして0にな
る。
MNMI User NMI mask (R / W) 1: NMI generation is suppressed. 0: Does not suppress the occurrence of NMI. Assume NMI is the edge detection input. An unprocessed NMI occurs when a bit is cleared. Defaults to 0 when the debug module is initialized.

【0121】MINT ユーザ割り込みのマスク(R/W) 1:ユーザ割り込み入力を無視する。 0:ユーザ割り込み入力を受け入れる。 デバッグ・モジュール初期化時にデフォルトとして0に
なる。
MINT User interrupt mask (R / W) 1: User interrupt input is ignored. 0: Accept user interrupt input. Defaults to 0 when the debug module is initialized.

【0122】STEP シングルステップ・ブレーク(R/
W) 1:シングルステップ・ブレーク(シングルステップ・
モード)をイネーブルする。 0:シングルステップ・ブレークをディスエーブルす
る。 デバッグ・モジュール初期化時にデフォルトとして0に
なる。
STEP Single step break (R /
W) 1: Single step break (single step break)
Mode). 0: Disable single-step break. Defaults to 0 when the debug module is initialized.

【0123】DBM デバッグ・モードまたはノーマル
・モードを示す(R)。 1:デバッグ・モード 0:ノーマル・モード
DBM Indicates the debug mode or normal mode (R). 1: Debug mode 0: Normal mode

【0124】BRKCAUSE ブレーク原因(R)。これは
複数のビットからなる。各ブレーク原因ごとに1つのビ
ットが割り当てられ、ブレークが生起したときに対応す
るビットがセットされる。ブレークが複数のブレーク原
因によって生起した場合、複数のビットがセットされ
る。 ビットの割り当ては以下のように定義される。 ビット0:外部ブレーク ビット1:シングルステップ ビット2:ソフトウェア・ブレークポイント ビット3:BREAK ビット4:RESETからのブレーク ビット5:命令アドレス・ブレークポイント ビット6:データ・アクセス・ブレークポイント
BRKCAUSE Break cause (R). It consists of a number of bits. One bit is assigned for each break cause, and the corresponding bit is set when the break occurs. If a break is caused by more than one break cause, more than one bit is set. Bit assignment is defined as follows. Bit 0: external break bit 1: single step bit 2: software breakpoint bit 3: BREAK bit 4: break from RESET bit 5: instruction address breakpoint bit 6: data access breakpoint

【0125】CPUSTAT プロセッサ・ステータス
(R)。プロセッサ・ステータスは以下のようにコード
化される。
CPUSTAT Processor status (R). The processor status is coded as follows:

【0126】ACTFLG_CLK プロセッサ・クロック活動
状態フラグ(R/W)。ACTFLG_CLKビットは、クロック活
動を示す。デバッグ・ツールは、ターゲット・システム
・ボードからプロセッサにクロックが供給されていない
ことを検出することができる。 書込み1:動作なし 書込み0:活動状態フラグをクリアする。 読取り1:クロックは活動状態である。 読取り0:クロックは非活動状態である。 このフラグは、クロック上の何らかの活動があるときに
セットされる。このフラグがクリアされるのは、デバッ
グ・ツールがこのビットに0を書き込んだときである。
ACTFLG_CLK Processor clock active flag (R / W). The ACTFLG_CLK bit indicates clock activity. The debug tool can detect that the clock is not being supplied from the target system board to the processor. Write 1: No operation Write 0: Clear the active status flag. Read 1: Clock is active. Read 0: Clock is inactive. This flag is set when there is some activity on the clock. This flag is cleared when the debug tool writes a 0 to this bit.

【0127】ACTFLG_BUS バス・サイクル活動状態フラ
グ(R/W)。ACTFLG/BUSビットはバス活動を示す。 書込み1:動作なし 書込み0:活動状態フラグをクリアする。 読取り1:バス・サイクルは活動状態である。 読取り0:フラグがクリアされてからバス・サイクルは
実行されていない。 このフラグは、バス上の何らかの活動があるときにセッ
トされる。このフラグがクリアされるのは、デバッグ・
ツールがこのビットに1を書き込んだときである。
ACTFLG_BUS Bus cycle active state flag (R / W). The ACTFLG / BUS bit indicates bus activity. Write 1: No operation Write 0: Clear the active status flag. Read 1: Bus cycle is active. Read 0: No bus cycle has been performed since flag was cleared. This flag is set when there is some activity on the bus. This flag is cleared only when debugging
This is when the tool writes 1 to this bit.

【0128】<1.3.5 資源アクセス>以下の資源に同様
にアクセスすることができる。 − ユーザ・メモリ − ユーザ・レジスタ − デバッグ・レジスタ(ハードウェア・ブレークポイ
ントなど)
<1.3.5 Resource Access> The following resources can be similarly accessed. − User memory − User registers − Debug registers (such as hardware breakpoints)

【0129】以下のレジスタは、ユーザ資源にアクセス
するために使用される。 DM_RADDR デバッグ・モジュール資源アクセス・アドレ
ス・レジスタを選択する。 DM_RDATA デバッグ・モジュール資源アクセス・データ
・レジスタを選択する。
The following registers are used to access user resources. DM_RADDR Selects debug module resource access address register. DM_RDATA Selects debug module resource access data register.

【0130】DM_RADDRは以下のビットからなる。 ADDR アクセスすべき資源のアドレス RW 読取り/書込み ADDRINC アドレス増分 TYPE アクセスすべき資源のタイプ(メモリ、入出
力、レジスタなど) ASID アドレス空間ID(プロセスID) MMUE MMUイネーブル/ディスエーブル CACHEE キャッシュ・イネーブル/ディスエーブル OPSIZE 動作サイズ
DM_RADDR consists of the following bits. ADDR Address of resource to be accessed RW Read / write ADDRINC Address increment TYPE Type of resource to be accessed (memory, input / output, register, etc.) ASID Address space ID (process ID) MMUE MMU enable / disable CACHEE Cache enable / disable Able OPSIZE Operation size

【0131】DM_RDATAは以下のビットからなる。 DATA 読取り/書込みされるデータ START/BUSY プロセッサ資源アクセスを開始する。アク
セスが行われたときにクリアされる。 ABORT/ERR 現在のアクセスを中止する。アクセス中に
エラーが発生したときにセットされる。
DM_RDATA consists of the following bits. DATA Data to be read / written START / BUSY Starts processor resource access. Cleared when access is made. ABORT / ERR Cancel current access. Set when an error occurs during access.

【0132】資源アクセスは以下のシーケンスを用いて
行うことができる。 読取りアクセス 1)以下のパラメータをレジスタに設定する。 ADDR 読み取るべきメモリ・アドレス(ユーザ・メモ
リ)またはレジスタ番号(ユーザ・レジスタまたはデバ
ッグ・レジスタ)を設定する。 RW 読取りアクセスでは1に設定する。 TYPE 資源のタイプ(ユーザ・メモリ、またはユーザ
・レジスタ、またはデバッグ・レジスタ)を設定する。 ASID (ユーザ・メモリにアクセスしているとき)プ
ロセッサがMMUを備えている場合はプロセスIDを設定す
る。 MMUE (ユーザ・メモリにアクセスしているとき)プ
ロセッサがMMUを備えている場合はアクセスをMMUを通し
て行うべきかどうかを選択する。 CACHEE (ユーザ・メモリにアクセスしているとき)プ
ロセッサがキャッシュを備えている場合はアクセスをキ
ャッシュを通して行うべきかどうかを選択する。 OPSIZE 8ビット、16ビット、32ビットなどから動作サ
イズを設定する。 ADDRINC メモリまたはレジスタのブロックにアクセスし
ているときにアドレス増分を設定する。 2)START/BUSYを1に設定してアクセスを開始する。 3)START/BUSYが0にクリアされるまで待つ。ABORT/ERR
は、アクセスが正常に終了したかどうかを示す。 ABORT/ERR -------- 0 アクセスが正常に終了した。DATAは、アクセスによ
って検索されたデータを含む。 1 アクセスがエラーと共に終了した。 START/BUSYが長い間クリアされない場合、アクセスがハ
ングアップすることがある。この場合、ABORT/ERRを1に
設定してアクセスを中止すべきである。 4)START/BUSYを1に設定し、引き続き次の位置にアクセ
スする。
The resource access can be performed using the following sequence. Read access 1) Set the following parameters in the register. ADDR Set the memory address (user memory) or register number (user register or debug register) to be read. Set to 1 for RW read access. TYPE Set the type of resource (user memory, user register, or debug register). ASID (when accessing user memory) Set the process ID if the processor has an MMU. MMUE (when accessing user memory) If the processor has an MMU, select whether access should be through the MMU. CACHEE (when accessing user memory) If the processor has a cache, select whether the access should be through the cache. OPSIZE Set the operation size from 8 bits, 16 bits, 32 bits, etc. ADDRINC Set address increment when accessing a block of memory or registers. 2) Set START / BUSY to 1 to start access. 3) Wait until START / BUSY is cleared to 0. ABORT / ERR
Indicates whether the access has been completed normally. ABORT / ERR -------- 0 Access completed normally. DATA contains the data retrieved by the access. 1 Access terminated with an error. If START / BUSY is not cleared for a long time, access may hang. In this case, ABORT / ERR should be set to 1 to stop the access. 4) Set START / BUSY to 1 and continue accessing the next location.

【0133】書込みアクセス 1)以下のパラメータをレジスタに設定する。 ADDR 書き込むべきメモリ・アドレス(ユーザ・メモ
リ)またはレジスタ番号(ユーザ・レジスタまたはデバ
ッグ・レジスタ)を設定する。 RW 書込みアクセスでは0にクリアする。 TYPE 資源のタイプ(ユーザ・メモリ、またはユーザ
・レジスタ、またはデバッグ・レジスタ)を設定する。 ASID (ユーザ・メモリにアクセスしているとき)プ
ロセッサがMMUを備えている場合はプロセスIDを設定す
る。 MMUE (ユーザ・メモリにアクセスしているとき)プ
ロセッサがMMUを備えている場合はアクセスをMMUを通し
て行うべきかどうかを選択する。 CACHEE (ユーザ・メモリにアクセスしているとき)プ
ロセッサがキャッシュを備えている場合に、アクセスを
キャッシュ経由で行うべきかどうかを選択する。 OPSIZE 8ビット、16ビット、32ビットなどから動作サ
イズを設定する。 ADDRINC メモリまたはレジスタのブロックにアクセスし
ているときにアドレス増分を設定する。 DATA 書き込むべきデータを設定する。 2)START/BUSYを1に設定してアクセスを開始する。 3)START/BUSYが0にクリアされるまで待つ。ABORT/ERR
は、アクセスが正常に終了したかどうかを示す。 ABORT/ERR --------- 0 アクセスが正常に終了した。 1 アクセスがエラーと共に終了した。 START/BUSYが長い間クリアされない場合、アクセスがハ
ングアップすることがある。この場合、ABORT/ERRを1に
設定してアクセスを中止すべきである。 4)START/BUSYを1に設定し、引き続き次の位置にアクセ
スする。
Write access 1) Set the following parameters in the register. ADDR Set the memory address (user memory) or register number (user register or debug register) to be written. RW Cleared to 0 for write access. TYPE Set the type of resource (user memory, user register, or debug register). ASID (when accessing user memory) Set the process ID if the processor has an MMU. MMUE (when accessing user memory) If the processor has an MMU, select whether access should be through the MMU. CACHEE (when accessing user memory) If the processor has a cache, select whether the access should be via the cache. OPSIZE Set the operation size from 8 bits, 16 bits, 32 bits, etc. ADDRINC Set address increment when accessing a block of memory or registers. DATA Set the data to be written. 2) Set START / BUSY to 1 to start access. 3) Wait until START / BUSY is cleared to 0. ABORT / ERR
Indicates whether the access has been completed normally. ABORT / ERR --------- 0 Access completed normally. 1 Access terminated with an error. If START / BUSY is not cleared for a long time, access may hang. In this case, ABORT / ERR should be set to 1 to stop the access. 4) Set START / BUSY to 1 and continue accessing the next location.

【0134】<1.3.5.1 プロセッサがキャッシュおよび
MMUを備えている場合>プロセッサがキャッシュおよびM
MUを備えている場合、ユーザ・メモリ・アクセスは、キ
ャッシュおよびMMUを通して行うべきである。キャッシ
ュとMMUの各々についてイネーブルするかそれともディ
スエーブルするかを選択できるようにする必要がある。
キャッシュの特定のエントリを無効化できるようにする
必要もある。通常、ユーザは論理アドレスを指定する。
MMUを使用する場合、ユーザは論理アドレスとアドレス
空間ID(プロセスID)の両方を指定すべきである。
<1.3.5.1 The processor has a cache and
If MMU is equipped> Processor is cache and M
If equipped with MU, user memory access should be through cache and MMU. You need to be able to choose between enabling or disabling each of the cache and MMU.
You also need to be able to invalidate certain entries in the cache. Usually, a user specifies a logical address.
When using the MMU, the user should specify both the logical address and the address space ID (process ID).

【0135】通常のアクセス データ・キャッシュとメイン・メモリとの間の一貫性を
維持するには、キャッシュをイネーブルしなければなら
ない。ツールは、命令キャッシュにあるメモリの内容を
変更する場合、命令キャッシュの対応するエントリを無
効化すべきである。ソフトウェア・ブレークポイントの
設定は好例である。逆に、TLBミスを回避するにはMMUを
ディスエーブルしなければならない。ユーザ・インタフ
ェースまたはデバッガは、オブジェクト・モジュールに
記憶されているシンボル情報を使用して論理アドレスを
物理アドレスに変換できなければならない。ある種のデ
バッガは、MMUの現在の設定を通じてメモリにアクセス
するためにMMUをオンのままにしておくことができる。
Normal Access To maintain consistency between the data cache and main memory, the cache must be enabled. If the tool changes the contents of memory in the instruction cache, it should invalidate the corresponding entry in the instruction cache. Setting a software breakpoint is a good example. Conversely, the MMU must be disabled to avoid a TLB miss. The user interface or debugger must be able to translate logical addresses to physical addresses using the symbol information stored in the object module. Certain debuggers can leave the MMU on to access memory through the current settings of the MMU.

【0136】クイック・アクセス データ・キャッシュとメイン・メモリとの間の一貫性を
維持するには、キャッシュをイネーブルしなければなら
ない。逆に、TLBミスを回避するにはMMUをディスエーブ
ルしなければならない。ユーザ・インタフェースまたは
デバッガは、オブジェクト・モジュールに記憶されてい
るシンボル情報を使用して論理アドレスを物理アドレス
に変換できなければならない。
Quick Access To maintain consistency between the data cache and main memory, the cache must be enabled. Conversely, the MMU must be disabled to avoid a TLB miss. The user interface or debugger must be able to translate logical addresses to physical addresses using the symbol information stored in the object module.

【0137】高速ダウンロード キャッシュはディスエーブルし無効化しなければならな
い。プログラムはメイン・メモリにロードしなければな
らない。ユーザ・インタフェースまたはデバッガは、オ
ブジェクト・モジュールに記憶されているシンボル情報
を使用して論理アドレスを物理アドレスに変換できなけ
ればならない。
The fast download cache must be disabled and invalidated. The program must be loaded into main memory. The user interface or debugger must be able to translate logical addresses to physical addresses using the symbol information stored in the object module.

【0138】3.6 命令アドレス・ブレークポイント ハードウェア・ブレークポイントは、「資源アクセス」
方式を通じてアクセスすべきである。すくなくとも1つ
の命令アドレス・ブレークポイントが必要である。命令
アドレス・ブレークポイントは主として、システムがRO
Mベースであるときのブレークポイントとして使用され
る(したがって、ソフトウェア・ブレークポイントを使
用することはできない)。命令アドレス・ブレークポイ
ントはトレースをトリガするときにも使用される。条件
が合致した場合の動作は「ブレーク」、「トリガ」、
「両方」、「なし」から選択可能でなければならない。
3.6 Instruction Address Breakpoint A hardware breakpoint is a “resource access”
Should be accessed through the scheme. At least one instruction address breakpoint is required. Instruction address breakpoints are mainly RO
Used as a breakpoint when M-based (thus, software breakpoints cannot be used). Instruction address breakpoints are also used when triggering a trace. When the conditions are met, the actions are "break", "trigger",
It must be selectable from "both" and "none".

【0139】<1.3.6.1 命令アドレス・ブレークポイン
ト・レジスタ>以下のレジスタは、命令アドレス・ブレ
ークポイントを設定するために使用される。
<1.3.6.1 Instruction Address Breakpoint Register> The following registers are used to set an instruction address breakpoint.

【0140】 [0140]

【0141】IBAn 命令アドレス・ブレーク・アドレス
・レジスタn 命令アドレス・ブレークポイントのアドレスを記憶す
る。指定されたアドレスに記憶された命令が実行された
ときに、条件が満たされる。命令アドレスの分解能は、
命令の最小長でなければならない。
IBAn Instruction address break address register n Stores the address of an instruction address breakpoint. The condition is satisfied when the instruction stored at the specified address is executed. The instruction address resolution is
Must be the minimum length of an instruction.

【0142】IBCn 命令アドレス・ブレーク制御レジス
タn BE ブレーク・イネーブル。条件が満たされたときにユ
ーザ・プログラムを中止する。指定されたアドレスに記
憶された命令が実行されてはならない。 TE トリガ・イネーブル 条件が満たされたときにBKTGIO_Lに対するトリガを出力
する。ブレークが起こってもトリガが出力される。N-tr
aceが実装されている場合、N-traceパケットを出力する
条件を指定するビットがさらに必要である。
IBCn instruction address break control register n BE break enable. Abort the user program when the condition is met. The instruction stored at the specified address must not be executed. Outputs a trigger for BKTGIO_L when the TE trigger enable condition is satisfied. A trigger is output even if a break occurs. N-tr
If ace is implemented, additional bits are required to specify the conditions for outputting N-trace packets.

【0143】アドレス・マスク アドレス・マスク用に以下のレジスタが追加される。Address Mask The following register is added for the address mask.

【0144】IBAMn 命令アドレス・ブレーク・アドレ
ス・マスク・レジスタ IBAn用のビット・マスク。このレジスタのビットが1で
ある場合、IBAnの対応するビットは比較されない。すべ
てのビットをマスクする必要はない。そのような場合、
下位ビットをマスクすべきである。さらに、1マスク・
ビットで複数のビットをマスクすることが受け入れられ
る。この例として、4ビットごとのマスク・ビットや、
下位16ビットに関するマスク・ビットや、下位24ビット
に関するマスク・ビットが挙げられる。(LSBの)いく
つのビットをバイナリでマスクするかを指定することも
受け入れられる。
IBAMn Instruction address break address mask register Bit mask for IBAn. If a bit in this register is 1, the corresponding bit in IBAn is not compared. Not all bits need to be masked. In such a case,
The lower bits should be masked. In addition, one mask
It is acceptable to mask multiple bits with bits. Examples of this are mask bits every four bits,
There are a mask bit for the lower 16 bits and a mask bit for the lower 24 bits. It is also acceptable to specify how many bits (of the LSB) are masked in binary.

【0145】IBCnに以下のビットが追加される。 IBCn 命令アドレス・ブレーク制御レジスタ INV 0−条件が合致したときにブレークポイントがヒットする。 1−条件が合致しないときにブレークポイントがヒットする。The following bits are added to IBCn. IBCn Instruction address break control register INV 0-Breakpoint hit when condition is met. 1-Breakpoint is hit when condition is not met.

【0146】アドレス範囲 アドレスを「レンジ」によって比較する場合、IBAでは
なく以下のレジスタが使用される。 IBALn 命令アドレス・ブレーク・アドレス・ロー・レ
ジスタ IBAHn 命令アドレス・ブレーク・アドレス・ハイ・レ
ジスタ アドレスがIBALnないしIBAHnの範囲内(両方の境界、す
なわちIBALnおよびIBAHnを含む)である場合、アドレス
が合致する。
Address Range When comparing addresses by "range", the following registers are used instead of IBA. IBALn instruction address break address low register IBAHn instruction address break address high register Address matches if address is in range of IBALn or IBAHn (both boundaries, including IBALn and IBAHn) .

【0147】IBCnに以下のビットが追加される。 IBCn 命令アドレス・ブレーク制御レジスタ INV 0−条件が合致したときにブレークポイントがヒットする。 1−条件が合致しないときにブレークポイントがヒットする。The following bits are added to IBCn. IBCn Instruction address break control register INV 0-Breakpoint hit when condition is met. 1-Breakpoint is hit when condition is not met.

【0148】<1.3.6.2 ブレークポイントの作用>BE
(ブレーク・イネーブル)ビットをセットした場合、ブ
レークは、指定されたアドレスの命令が実行される前に
行われなければならない。プログラム・カウンタはその
命令を指し示すべきである。その場合、ツールは命令ブ
レークポイントをリセットし、ユーザ・プログラムに現
在のプログラム・カウンタから実行させる。ユーザ・プ
ログラムは作業を再開できなければならない。分岐遅延
スロットにあるブレークポイントまたはオーバラン・ブ
レーク・ステータス(命令が実行された後にブレークが
行われるケース)には特別な注意を払うべきである。命
令が実行されていない場合には、ブレークが起こっては
ならない。この例には、分岐や、例外や、前の命令での
ブレークが挙げられる。
<1.3.6.2 Action of Breakpoint> BE
If the (Break Enable) bit is set, the break must occur before the instruction at the specified address is executed. The program counter should point to that instruction. In that case, the tool resets the instruction breakpoint and causes the user program to execute from the current program counter. The user program must be able to resume work. Special attention should be paid to breakpoints in branch delay slots or overrun break status (where a break occurs after an instruction is executed). A break must not occur if the instruction has not been executed. Examples include branches, exceptions, and breaks on previous instructions.

【0149】<1.3.6.3 プロセッサがキャッシュとMMU
を備えている場合>設定アドレスは論理的なものでなけ
ればならない。論理アドレスだけでなくアドレス空間ID
も指定する方法があるべきである。アドレス空間IDは、
IBCnの以下のビットに指定される。 ASID アドレス空間ID ASIDM 1−ASIDがマスクされる。
<1.3.6.3 Processor is Cache and MMU
If> is provided, the set address must be logical. Address space ID as well as logical address
There should be a way to specify too. The address space ID is
It is specified in the following bits of IBCn. ASID Address space ID ASIDM 1-ASID is masked.

【0150】<1.3.7 データ・アクセス・ブレークポイ
ント>ハードウェア・ブレークポイントは、「資源アク
セス」方式を通じてアクセス可能であるべきである。ハ
ードウェア・ブレークポイントは、ユーザ・プログラム
が、指定されたデータを含む指定されたアドレスにアク
セスしたときにユーザ・プログラムを中止するために使
用される。読取りや書込みなどのアクセス・タイプも指
定すべきである。ハードウェア・ブレークポイントはト
レースをトリガするときにも使用される。条件が合致し
た場合の動作は「ブレーク」、「トリガ」、「両方」、
「なし」から選択できなければならない。
1.3.7 Data Access Breakpoints Hardware breakpoints should be accessible through a "resource access" scheme. Hardware breakpoints are used to halt a user program when the user program accesses a specified address containing specified data. The access type, such as read or write, should also be specified. Hardware breakpoints are also used when triggering a trace. When the condition is met, the action is "break", "trigger", "both",
Must be selectable from "None".

【0151】<1.3.7.1 データ・アクセス・ブレークポ
イント・レジスタ>データ・アクセス・ブレークポイン
トを設定するには以下のレジスタが使用される。 DBAn データ・アクセス・ブレーク・アドレス・レジス
タn 指定されたアドレスがアクセスされたときに条件が満た
される。 DBDn データ・アクセス・ブレーク・データ・レジスタn 読み取られあるいは書き込まれたデータが、指定された
データに等しいときに条件が満たされる。 DBCn データ・アクセス・ブレーク制御レジスタn MEM メモリ 条件はメモリ・アクセス・サイクルでしか満たされな
い。 IO 入出力アクセス 条件は入出力アクセス・サイクルでしか満たされない。 DBE データ比較器バイト・イネーブル ビット長はプロセッサのデータ・ワードのバイト数に等
しい。各ビットはプロセッサのバイト・イネーブルに対
応する。これらのビットをセットすると、プロセッサが
対応するデータ・バイトをイネーブルしていない場合は
データ条件が満たされない。 BEA アドレス合致時のブレーク・イネーブル アドレス条件が満たされたときにユーザ・プログラムに
ブレークをかける。 BED データ合致時のブレーク・イネーブル データ条件が満たされたときにユーザ・プログラムにブ
レークをかける。BEAビットとBEDビットの両方をセット
した場合、両方の条件が満たされたときにブレークが要
求される。両方ともクリアした場合、比較器の結果にか
かわらずにブレークが要求される。 BERD 読取りアクセス ブレーク条件は読取りサイクルでしか満たされない。 BEWR 書込みアクセス ブレーク条件は書込みサイクルでしか満たされない。BE
RDビットとBEWRビットの両方をセットした場合、アクセ
ス・タイプにかかわらずにブレークが要求される。両方
ともクリアした場合、ブレークは要求されない。 TEA アドレス合致時のトリガ・イネーブル アドレス条件が満たされたときにBKTGIO_Lに対するトリ
ガを出力する。ブレークが行われる場合でもトリガが出
力される。 TED データ合致時のトリガ・イネーブル データ条件が満たされたときにBKTGIO_Lに対するトリガ
を出力する。ブレークが行われる場合でもトリガが出力
される。TEAビットとTEDビットの両方をセットした場
合、両方の条件が満たされたときにトリガが出力され
る。両方ともクリアした場合、比較器の結果にかかわら
ずにトリガが出力される。 TERD 読取りアクセス トリガ条件は読取りサイクルでしか満たされない。 TEWR 書込みアクセス トリガ条件は書込みサイクルでしか満たされない。TERD
ビットとTEWRビットの両方をセットした場合、アクセス
・タイプにかかわらずにトリガが出力される。両方とも
クリアした場合、トリガは出力されない。N-traceが実
装されている場合、N-traceパケットを出力する条件を
指定するビットがさらに必要である。
<1.3.7.1 Data Access Breakpoint Register> The following registers are used to set a data access breakpoint. DBAn data access break address register n The condition is satisfied when the specified address is accessed. DBDn Data Access Break Data Register n A condition is met when the data read or written equals the specified data. DBCn data access break control register n MEM memory condition is satisfied only in memory access cycle. IO I / O access conditions are satisfied only in I / O access cycles. DBE Data Comparator Byte Enable The bit length is equal to the number of bytes in the processor data word. Each bit corresponds to a byte enable of the processor. When these bits are set, the data condition will not be met unless the processor has enabled the corresponding data byte. Break enable at BEA address match Breaks the user program when the address condition is satisfied. Break enable at BED data match Breaks the user program when the data condition is satisfied. If both the BEA and BED bits are set, a break is required when both conditions are met. If both are cleared, a break is requested regardless of the result of the comparator. BERD read access break condition is satisfied only in read cycle. BEWR Write Access Break condition is satisfied only in the write cycle. BE
If both the RD and BEWR bits are set, a break is requested regardless of the access type. If both are cleared, no break is required. Trigger enable at TEA address match Outputs trigger for BKTGIO_L when address condition is satisfied. A trigger is output even when a break occurs. Trigger enable when TED data matches Outputs a trigger for BKTGIO_L when data conditions are satisfied. A trigger is output even when a break occurs. If both TEA and TED bits are set, a trigger will be output when both conditions are met. If both are cleared, a trigger is output regardless of the result of the comparator. TERD Read Access Trigger condition is satisfied only in a read cycle. TEWR Write Access Trigger condition is satisfied only in a write cycle. TERD
If both the bit and the TEWR bit are set, a trigger is output regardless of the access type. If both are cleared, no trigger is output. If N-trace is implemented, additional bits are required to specify the conditions for outputting N-trace packets.

【0152】アドレス・マスク アドレス・マスク用に以下のレジスタが追加される。 DBAMn データ・アクセス・ブレーク・アドレス・マス
ク・レジスタ DBAn用のビット・マスク。このレジスタのビットが1で
ある場合、DBAnの対応するビットは比較されない。すべ
てのビットをマスクする必要はない。そのような場合、
下位ビットをマスクすべきである。さらに、1マスク・
ビットで複数のビットをマスクすることが受け入れられ
る。この例として、4ビットごとのマスク・ビットや、
下位16ビットに関するマスク・ビットや、下位24ビット
に関するマスク・ビットが挙げられる。(LSBの)いく
つのビットをバイナリでマスクするかを指定することも
受け入れられる。 DBCn データ・アクセス・ブレーク制御レジスタ AINV 0−条件が合致したときにブレークポイントがヒットする。 1−条件が合致しないときにブレークポイントがヒットする。
Address Mask The following register is added for the address mask. DBAMn Data access break address mask register Bit mask for DBAn. If a bit in this register is 1, the corresponding bit in DBAn is not compared. Not all bits need to be masked. In such a case,
The lower bits should be masked. In addition, one mask
It is acceptable to mask multiple bits with bits. Examples of this are mask bits every four bits,
There are a mask bit for the lower 16 bits and a mask bit for the lower 24 bits. It is also acceptable to specify how many bits (of the LSB) are masked in binary. DBCn Data Access Break Control Register AINV 0-Breakpoint is hit when condition is met. 1-Breakpoint is hit when condition is not met.

【0153】アドレス範囲 アドレスを「レンジ」によって比較する場合、DBAでは
なく以下のレジスタが使用される。 DBALn データ・アクセス・ブレーク・アドレス・ロー
・レジスタ DBAHn データ・アクセス・ブレーク・アドレス・ハイ
・レジスタ アドレスがDBALnないしDBAHnの範囲内(両方の境界、す
なわちDBALnおよびDBAHnを含む)である場合、アドレス
が合致する。DBCnに以下のビットが追加される。 DBCn データ・アクセス・ブレーク制御レジスタ AINV 0−条件が合致したときにブレークポイントがヒットする。 1−条件が合致しないときにブレークポイントがヒットする。
Address Range When comparing addresses by "range", the following registers are used instead of the DBA. DBALn Data Access Break Address Low Register DBAHn Data Access Break Address High Register If the address is in the range of DBALn or DBAHn (both boundaries, including DBALn and DBAHn), the address is Match. The following bits are added to DBCn: DBCn Data Access Break Control Register AINV 0-Breakpoint is hit when condition is met. 1-Breakpoint is hit when condition is not met.

【0154】データ・マスク データ・マスク用に以下のレジスタが追加される。 DBDMn データ・アクセス・ブレーク・データ・マスク
・レジスタ DBDn用のビット・マスク。このレジスタのビットが1で
ある場合、DBDnの対応するビットは比較されない。DBDn
のあらゆる単一ビットをマスクする必要がある。DBCに
以下のビットが追加される。 DBCn データ・アクセス・ブレーク制御レジスタ DINV 0−条件が合致したときにブレークポイントがヒットする。 1−条件が合致しないときにブレークポイントがヒットする。
Data Mask The following register is added for the data mask. DBDMn Data access break data mask register Bit mask for DBDn. If a bit in this register is 1, the corresponding bit in DBDn is not compared. DBDn
You need to mask every single bit of. The following bits are added to DBC: DBCn Data Access Break Control Register DINV 0-Breakpoint hit when condition is met. 1-Breakpoint is hit when condition is not met.

【0155】<1.3.7.2 ブレークポイントの作用>ブレ
ークの後、ツールはデータ・アクセス・ブレークポイン
トをリセットし、ユーザ・プログラムに現在のプログラ
ム・カウンタから実行させる。ユーザ・プログラムは作
業を再開できなければならない。データ・アクセス・サ
イクルを実施させる命令が実行される時間と実際にブレ
ークが行われる時間との間にある時間間隔が存在するこ
とがある。この時間間隔中に命令が実行されてもよい。
<1.3.7.2 Action of Breakpoint> After a break, the tool resets the data access breakpoint and causes the user program to execute from the current program counter. The user program must be able to resume work. There may be a time interval between the time the instruction causing the data access cycle to be executed is executed and the time the actual break occurs. Instructions may be executed during this time interval.

【0156】<1.3.7.3 プロセッサがキャッシュとMMU
を備えている場合>設定アドレスは論理的なものでなけ
ればならない。論理アドレスだけでなくアドレス空間ID
も指定する方法があるべきである。アドレス空間IDは、
DBCnの以下のビットに指定される。 ASID アドレス空間ID ASIDM 1−ASIDがマスクされる。
<1.3.7.3 Processor is Cache and MMU
If> is provided, the set address must be logical. Address space ID as well as logical address
There should be a way to specify too. The address space ID is
It is specified in the following bits of DBCn. ASID Address space ID ASIDM 1-ASID is masked.

【0157】<1.4.レベル2標準>レベル1標準が適用
できない場合、以下の仕様に従うべきである。 <1.4.1 モニタ>直接JTAGを通じてレジスタや、メモリ
や、キャッシュなどのユーザ資源にアクセスすることが
困難であるときの代替策はモニタ・プログラムを実行す
ることである。モニタを使用する場合は以下にリストし
たオプションのうちの1つを選択すること。
<1.4. Level 2 standard> If the level 1 standard is not applicable, the following specifications should be followed. <1.4.1 Monitor> When it is difficult to directly access user resources such as registers, memory, and caches through JTAG, an alternative is to execute a monitor program. If you use a monitor, select one of the options listed below.

【0158】<1.4.1.1 モニタ・プログラムが内部バッ
ファの数ワードに対して実行される場合>2つのJTAG命
令を追加すべきである。一方の命令では、MON_INST、MO
N_DATAACC、MON_INSTEXECがアクセスされる。他方の命
令では、MON_DATAがアクセスされる。 MON_INST モニタ命令レジスタ プロセッサは、デバッグ・モードのときにこのレジスタ
から命令を取り出す。 MON_DATA モニタ・データ・レジスタ デバッグ・モードでは、MON_DATAACCビットが1に設定さ
れている場合、ロード/ストア命令時にプロセッサがこ
のレジスタ内のデータにアクセスする。MON_DATAACCが0
にクリアされている場合、プロセッサは通常のユーザ・
メモリにアクセスする。 MON_DATAACC モニタ・データ・アクセス・フラグ プロセッサがデバッグ・モードである間、ロード/スト
ア命令がMON_DATAにアクセスするか、それともユーザ・
メモリにアクセスするかを示す。 MON_INSTEXEC モニタ・プログラムの実行 このビットに1を書き込むと、プロセッサはMON_INSTレ
ジスタから命令を取り出し実行する。プロセッサは、命
令の実行を終了したときにこのビットはクリアすべきで
ある。0を書き込むと無視される。
<1.4.1.1 When Monitor Program is Executed for Several Words of Internal Buffer> Two JTAG instructions should be added. In one instruction, MON_INST, MO
N_DATAACC and MON_INSTEXEC are accessed. In the other instruction, MON_DATA is accessed. MON_INST Monitor Instruction Register The processor fetches instructions from this register when in debug mode. MON_DATA Monitor Data Register In debug mode, if the MON_DATAACC bit is set to 1, the processor accesses data in this register during load / store instructions. MON_DATAACC is 0
Is cleared to the normal user
Access memory. MON_DATAACC Monitor Data Access Flag While the processor is in debug mode, a load / store instruction accesses MON_DATA or
Indicates whether to access memory. MON_INSTEXEC Execute monitor program Writing 1 to this bit causes the processor to fetch and execute instructions from the MON_INST register. This bit should be cleared when the processor has finished executing the instruction. Writing 0 is ignored.

【0159】<1.4.1.2 モニタ・プログラムが専用モニ
タ・メモリに配置されている場合>モニタがROM上に配
置されている場合、データ・アクセス用のレジスタが必
要である。あるいはユーザRAMの一部をモニタ用に使用
しなければならない。モニタをRAM上に配置する場合、
モニタをダウンロードする機能がなければならない。
<1.4.1.2 When Monitor Program is Arranged in Dedicated Monitor Memory> When the monitor is arranged on the ROM, a register for data access is required. Alternatively, a portion of the user RAM must be used for monitoring. When placing the monitor on RAM,
There must be the ability to download monitors.

【0160】<1.4.1.3 モニタ・プログラムのロード>
プロセッサ・リセット中にモニタをロードできない場
合、モニタがリセット後の最初のブレークの後に動作す
るのを妨げる機能がなければならない。
<1.4.1.3 Loading Monitor Program>
If the monitor cannot be loaded during a processor reset, there must be a function that prevents the monitor from running after the first break after reset.

【0161】<1.4.1.4 ユーザ・プログラムへのリター
ン>モニタ・プログラムを使用する際、レベル1標準に
記載したのとは異なり、EXITビットに1を書き込むので
はなく、特殊な命令(リターン命令)によってユーザ・
プログラムに戻ることができる。この場合、ユーザ・プ
ログラムが実行されているかどうかを判定するRUNFLAG
ビットを(EXITの代わりに)用意すべきである。 RUNFLAG ユーザ・プログラムが実行されたかどうかを
判定するために使用される。ユーザ・プログラムが実行
されたときにセットされる。0を書き込むとクリアされ
る。1を書き込むと無視される。デバッグ・ツールは、
ノーマル・モードに戻る前にこのビットをクリアする。
RUNFLAGが設定されているとき、BRKCAUSEを読み取るこ
とによってブレークの原因が検査される。
<1.4.1.4 Return to User Program> When using the monitor program, unlike the level 1 standard, instead of writing 1 to the EXIT bit, a special instruction (return instruction) is used. User
You can return to the program. In this case, RUNFLAG to determine whether the user program is running
Bits should be provided (instead of EXIT). RUNFLAG Used to determine if the user program has been executed. Set when the user program is executed. Cleared by writing 0. Writing 1 is ignored. The debugging tool is
Clear this bit before returning to normal mode.
When RUNFLAG is set, the cause of the break is checked by reading BRKCAUSE.

【0162】<1.4.2 クイック・アクセス>MMUの内部
にクイック・アクセス機構を挿入することが困難である
場合には、2つの方法がある。すなわち、この機構をMMU
とキャッシュの間に挿入し(方法2)、あるいはキャッ
シュの外側に挿入することができる(方法3)。クイッ
ク・アクセスはDMA状の機構によって行われる。ユーザ
・プログラムに対するこの機構の影響を最小限に抑えて
静的変数または入出力にアクセスすることができる。コ
ードのダウンロードも高速化する。DMA状の機構を、図
4の(1)ないし(3)の3つの位置のうちの1つでプロセッサ
のバスに接続することができる。
<1.4.2 Quick Access> If it is difficult to insert a quick access mechanism inside the MMU, there are two methods. In other words, this mechanism
And between the cache and the cache (method 2) or outside the cache (method 3). Quick access is provided by a DMA-like mechanism. Static variables or I / O can be accessed with minimal impact of this mechanism on user programs. Code download is also faster. A DMA-like mechanism can be connected to the processor bus at one of the three locations (1)-(3) in FIG.

【0163】<1.4.2.1 方法(1)>方法(1)を強く推
奨する。方法(2)または(3)を使用する場合、いくつ
かの制限がある。
<1.4.2.1 Method (1)> Method (1) is strongly recommended. There are some limitations when using method (2) or (3).

【0164】<1.4.2.2 方法(2)>メモリがクイック
・アクセスによってアクセスされるとき、現在のMMU設
定を参照することは不可能である。
<1.4.2.2 Method (2)> When the memory is accessed by quick access, it is impossible to refer to the current MMU setting.

【0165】<1.4.2.3 方法(3)>高速ダウンロード
は、デバッグ・モードでリセットの直後に行われる(キ
ャッシュもリセットされる)。したがって、方法(3)
はコードのダウンロードに有用である。ただし、以下の
制限が適用される。キャッシュがライトバック・キャッ
シュである場合、メイン・メモリの内容とキャッシュの
内容が異なることがある。したがって、クイック・アク
セスによるライトバック・キャッシュ領域からの読取り
はサポートされない。キャッシュ・スヌーピングがサポ
ートされず、メイン・メモリに何らかのデータが書き込
まれる場合、キャッシュの内容はメイン・メモリとは異
なるものになる。したがって、スヌーピングがサポート
されない場合、キャッシュ領域への書込みはサポートで
きない。通常のメモリ・アクセス(クイック・アクセス
ではない)はデバッグ・モードで行われる。ツールは、
書込みサイクル時にライトバックを実行することも、あ
るいは読取りサイクル時にエントリを無効化することも
できる。したがって、前述の問題は解決する。
<1.4.2.3 Method (3)> High-speed download is performed immediately after reset in the debug mode (the cache is also reset). Therefore, method (3)
Is useful for downloading code. However, the following restrictions apply. If the cache is a write-back cache, the contents of the main memory and the contents of the cache may be different. Therefore, reading from the write-back cache area by quick access is not supported. If cache snooping is not supported and any data is written to main memory, the contents of the cache will be different from main memory. Therefore, if snooping is not supported, writing to the cache area cannot be supported. Normal memory access (not quick access) is done in debug mode. The tools are
A write back can be performed during a write cycle, or an entry can be invalidated during a read cycle. Therefore, the above-mentioned problem is solved.

【0166】<1.4.2.4 クイック・アクセスがサポート
されない場合>すべてのメモリ・アクセスはモニタによ
って実行される。したがって、クイック・アクセスも高
速ダウンロードもサポートされない。
<1.4.2.4 When Quick Access Is Not Supported> All memory accesses are performed by the monitor. Therefore, neither quick access nor fast download is supported.

【0167】以下ではN-trace部について説明する。 <2.1.トレース・ポート>図5にトレースポートの信
号を示す。 TRCCLK 出力 トレース出力用のクロック TRCEND 出力 トレース・データの終了ビット
を示す。 TRCDATA[n-1:0] 出力 トレース・データ出力
The following describes the N-trace section. <2.1. Trace Port> FIG. 5 shows the signals of the trace port. TRCCLK Output Clock for trace output TRCEND Output Indicates the end bit of trace data. TRCDATA [n-1: 0] Output Trace data output

【0168】「n」が大きければ大きいほど、オーバフ
ローの可能性が低くなる。各トレース・パケットのビッ
ト長は可変である。TRCEND信号は、デバッグ・モジュー
ルがTRCDATAピンからのトレース・パケットの出力を終
了した時点を示す。これは、TRCDATA上には常に何らか
のパケットがあることを意味する。出力すべき他のトレ
ース・データがないとき、パケットは、「NOP」と呼ば
れる空パケットであってよい。図5(B)に示すように、
2本あるいはもっと多くのピンをTRCDATAに割り当てて
よい。
The larger “n”, the lower the possibility of overflow. The bit length of each trace packet is variable. The TRCEND signal indicates when the debug module has finished outputting trace packets from the TRCDATA pin. This means that there is always some packet on TRCDATA. When there is no other trace data to output, the packet may be an empty packet called "NOP". As shown in FIG.
Two or more pins may be assigned to TRCDATA.

【0169】<2.2.トレース・パケット・ビット長を
最小限に抑えるには>各トレース・パケットのサイズは
できるだけ小さくすべきである。何らかの方法で補間で
きるビットは省略すべきである。最初の数ビットでパケ
ットのタイプを判定することができ、TRCENDによってパ
ケットの終わりを知ることができるので、各パケットの
いくつかの後続ビットを削除することができる。
<2.2. To minimize trace packet bit length> The size of each trace packet should be as small as possible. Bits that can be interpolated in any way should be omitted. Since the first few bits can determine the type of the packet and the end of the packet can be known by TRCEND, some subsequent bits of each packet can be removed.

【0170】以下の2つの方法は有効であるが、簡単で
容易に実施できるので、これらの方法を使用する。 a) すべて零である後続ビットを抑制する。 b) 前のパケットと同じ値を有する後続ビットを抑制す
る。 TPCパケットには(b)を使用し、他のパケットには
(a)を使用する(パケットについては後で定義す
る)。
Although the following two methods are effective, they are used because they are simple and easy to implement. a) Suppress trailing bits that are all zero. b) Suppress subsequent bits that have the same value as the previous packet. Use (b) for TPC packets and (a) for other packets (packets will be defined later).

【0171】(a)の例 図6(A)に示すように、「1、0、0、1、1、0、0、0」と
いう8ビット・パケットの最後の3ビットを削除すること
ができる。TRCDATAが2ビットである場合、図6(B)に示
すように、最後の2ビットのみを削除することができ
る。
Example of (a) As shown in FIG. 6A, it is possible to delete the last three bits of the 8-bit packet “1, 0, 0, 1, 1, 0, 0, 0”. it can. When TRCDATA has 2 bits, only the last 2 bits can be deleted as shown in FIG.

【0172】(b)の例 図7(A)に示すように、34ビット・パケットの「パケッ
トY」を出力する予定であり、同じタイプの前のパケッ
トが「パケットX」であると仮定すると、図中のインジ
ケータ(縦棒シンボル「|」)の後のビットを出力する
必要はない。TRCDATA[1]の最後のビットが「1」であり
「0」ではないことに留意されたい。
Example of (b) As shown in FIG. 7A, assume that a "packet Y" of a 34-bit packet is to be output, and that a previous packet of the same type is "packet X". , There is no need to output the bit after the indicator (vertical bar symbol “|”) in the figure. Note that the last bit of TRCDATA [1] is "1" and not "0".

【0173】この例では、最初の4ビット(0、1、0、
0)は、パケットのタイプを示す。パケットが同じタイ
プの前にパケットに完全に合致する場合でも(「パケッ
トX」が「パケットY」と同一である場合)、最初の4ビ
ットを出力すべきである。しかし、この場合も方法
(1)を適用することによってこのパケットの最後の2ビ
ットを削除することができる。結局、図8に示すよう
に、最初の2ビットを出力するだけでよい。
In this example, the first four bits (0, 1, 0,
0) indicates the type of the packet. Even if the packet exactly matches the packet before of the same type ("Packet X" is the same as "Packet Y"), the first four bits should be output. However, also in this case, the last two bits of this packet can be deleted by applying the method (1). Eventually, only the first two bits need to be output, as shown in FIG.

【0174】 <2.3.トレース・パケット定義> 略号 コード -------- ---------------- NSEQ<seq#> 1,<seq#> TPC <program_counter> 0,1,0,0, <program_counter> TPCM 0,1,0,1 EXP <exp_id> 0,1,1,0, <exp_id> LSEQ 0,1,1,1 MATCH <match_info> 0,0,1,1, <match_info> DATA <type>,<data> 0,0,1,0, <type>,<data> OVF 0,0,0,1 NOP 0<2.3. Trace packet definition> Abbreviation code ------------------------ NSEQ <seq #> 1, <seq #> TPC <program_counter> 0,1, 0,0, <program_counter> TPCM 0,1,0,1 EXP <exp_id> 0,1,1,0, <exp_id> LSEQ 0,1,1,1 MATCH <match_info> 0,0,1,1 <match_info> DATA <type>, <data> 0,0,1,0, <type>, <data> OVF 0,0,0,1 NOP 0

【0175】<2.3.1 非順次実行> 略号 NSEQ <seq#> コード 1,<seq#><2.3.1 Non-sequential execution> Abbreviation NSEQ <seq #> Code 1, <seq #>

【0176】このパケットは、分岐または例外が発生し
たときに出力される。
This packet is output when a branch or exception occurs.

【0177】<seq#>は、この事象またはLSEQ(長い順次
実行)の前回の発生からこの事象の現在の発生まで命令
が順次実行される間のプログラム・カウンタ増分であ
る。<seq#>の単位は、プログラム・カウンタ増分の最小
数であるべきである。<seq#>は、バイナリ・フォーマッ
トで最下位ビット(LSB)から出力される。零の上位ビ
ットを出力する必要はない。
<Seq #> is the program counter increment during which instructions are executed sequentially from the previous occurrence of this event or LSEQ (Long Sequential Execution) to the current occurrence of this event. The unit of <seq #> should be the minimum number of program counter increments. <seq #> is output from the least significant bit (LSB) in binary format. It is not necessary to output the upper bits of zero.

【0178】 上の例中で「^」を付加されたビットは出力する必要は
ない。
[0178] The bits to which "^" is added in the above example need not be output.

【0179】このパケット(およびLSEQパケット)は、
前の分岐の分岐先アドレスと現在の分岐の分岐元アドレ
スとの間のプログラム・カウンタ距離を示すので、以下
のことに留意すべきである。
This packet (and LSEQ packet)
Since the program counter distance between the destination address of the previous branch and the source address of the current branch is indicated, the following should be noted.

【0180】− プロセッサが命令をスキップするがプ
ログラムの流れは変更しないとき、スキップされた命令
をカウントすべきである。一例は、MIPS R3000シリーズ
・プロセッサのbranch likely命令が選択されない場合
である。 − 逆に、分岐遅延スロット内の命令はカウントしては
ならない。分岐命令を逆アセンブルすることによって、
そのような命令が実行されたかどうかを判定することが
できる。
When the processor skips instructions but does not change the program flow, the skipped instructions should be counted. One example is when the branch likely instruction of the MIPS R3000 series processor is not selected. -Conversely, instructions in branch delay slots must not be counted. By disassembling the branch instruction,
It can be determined whether such an instruction has been executed.

【0181】<2.3.2 分岐先PC> 略号 TPC <program_counter> コード 0,1,0,0,<program_counter><2.3.2 Branch destination PC> Symbol TPC <program_counter> Code 0,1,0,0, <program_counter>

【0182】<program_counter>は、バイナリ・フォー
マットで最下位ビット(LSB)から出力される。前の分
岐先PCと同じ上位ビットを出力する必要はない。常に固
定されるビットの部分も出力する必要はない(たとえ
ば、MIPS R3000シリーズ・プロセッサのプログラム・カ
ウンタのビット1および0)。プロセッサがMMU(メモリ
管理装置)を備えている場合、<program_counter>は論
理アドレスであるべきである。例を以下の表に示す。
<Program_counter> is output from the least significant bit (LSB) in a binary format. It is not necessary to output the same upper bits as the previous branch destination PC. It is not necessary to output the part of the bits that are always fixed (for example, bits 1 and 0 of the MIPS R3000 series processor program counter). If the processor has an MMU (memory management unit), <program_counter> should be a logical address. Examples are given in the table below.

【0183】[0183]

【表1】 以前の ターゲット <program_counter> <program_counter> コード --------- -------- ---------------------------------- bfc00000 bfc00328 0100010100110000000000001111111101 ^^^^^^^^^^^^^^^^^^^^^^ bfc00328 bfc00208 0100010000010000000000001111111101 ^^^^^^^^^^^^^^^^^^^^^^^ bfc00208 00000000 0100000000000000000000000000000000 (注)下に^が付されたビットは出力する必要がない [Table 1] Previous target <program_counter> <program_counter> Code --------- -------- ------------------- --------------- bfc00000 bfc00328 0100010100110000000000001111111101 ^^^^^^^^^^^^^^^^^^^^^^ bfc00328 bfc00208 0100010000010000000000001111111101 ^^^^^^^ ^^^^^^^^^^^^^^^^ bfc00208 00000000 0100000000000000000000000000000000 (Note) Bits with ^ below need not be output

【0184】このパケットは以下の状況で出力される。 − 間接ジャンプが選択されたとき、このパケットはNSE
Qパケットの後に出力すべきである。本書での間接ジャ
ンプ命令の定義は、分岐またはジャンプを実行させる命
令であり、分岐先アドレスをその命令コードから復号す
ることはできない。たとえば、レジスタ間接ジャンプ
(MIPS R3000シリーズ・プロセッサの「jr$31」など)
やサブルーチンからのリターン(Motorola CPU32プロセ
ッサの「rts」など)など。 − プログラムカウンタを非順次に変化させる例外また
は事象が発生したときは、EXPパケットの後にこのパケ
ットを出力すべきである。 − 直接ジャンプが行われるときに内部N-traceバッファ
が空であるときは、このパケットを出力すべきである。
これは、逆アセンブルがTPCパケットからしか開始でき
ないからである。トレース・リストの第1行とそのトレ
ース・リスト内の第1のTPCパケットとの間に記憶された
状態を逆アセンブルすることはできない。N-traceは、
前のTPCパケットの<program_counter>が記憶されている
レジスタのすべてのビットを(零に)クリアすべきであ
る。
This packet is output in the following situation. This packet is NSE when indirect jump is selected
Should be output after the Q packet. The definition of the indirect jump instruction in this document is an instruction for executing a branch or a jump, and the branch destination address cannot be decoded from its instruction code. For example, a register indirect jump (such as "jr $ 31" on a MIPS R3000 series processor)
And returns from subroutines (such as "rts" on Motorola CPU32 processors). -When an exception or event occurs that causes the program counter to change non-sequentially, this packet should be output after the EXP packet. -If the internal N-trace buffer is empty when a direct jump is performed, this packet should be output.
This is because disassembly can only start from a TPC packet. The state stored between the first line of the trace list and the first TPC packet in the trace list cannot be disassembled. N-trace is
All bits of the register where the <program_counter> of the previous TPC packet is stored should be cleared (to zero).

【0185】複数のTRCDATAピンがある場合、余分なビ
ットに関しては意味のある値(零ではない)を出力すべ
きである。たとえば、2本のTRCDATAピンがある場合、上
記のコードの例で第2の分岐に関して「0101000001」
(「0101000000」ではない)が出力される。
If there is more than one TRCDATA pin, a meaningful value (not zero) should be output for the extra bits. For example, if there are two TRCDATA pins, "0101000001" for the second branch in the above code example
(Not "0101000000") is output.

【0186】<2.3.3 例外> 略号 EXP <exp_id> コード 0,1,1,0,<exp_id><2.3.3 Exception> Abbreviation EXP <exp_id> Code 0,1,1,0, <exp_id>

【0187】このパケットが出力されるのは、プロセッ
サ内で例外または特殊なイベントが発生したときであ
る。
This packet is output when an exception or special event occurs in the processor.

【0188】<exp_id>は、例外またはイベントのタイプ
を示す。<exp_id>のビット割り当ては、プロセッサ・フ
ァミリに依存する。<exp_id>はバイナリ・フォーマット
で最下位ビット(LSB)から出力される。それ以上の上
位ビットが全てゼロである場合、それらのビットを出力
する必要はない。
<Exp_id> indicates the type of exception or event. The bit assignment of <exp_id> depends on the processor family. <exp_id> is output from the least significant bit (LSB) in binary format. If all the upper bits are zero, there is no need to output those bits.

【0189】このパケットは、プロセッサが例外を生成
したときにNSEQパケットの後に出力される。例外ハンド
ラのアドレスが<exp_id>からは分からない場合、EXPパ
ケットの後にTPCパケットを出力すべきである。イベン
トの例は、割り込み、プロセスID変更、バス解放、スリ
ープ・モードの開始などがあり得る。
[0189] This packet is output after the NSEQ packet when the processor generates an exception. If the address of the exception handler is not known from <exp_id>, a TPC packet should be output after the EXP packet. Examples of events may be an interrupt, a process ID change, a bus release, a sleep mode entry, and the like.

【0190】<2.3.4 トリガまたはハードウェア・ブレ
ークポイントの合致、あるいはその両方> 略号 MATCH <match_info> コード 0,0,1,1,<match_info>
<2.3.4 Trigger and / or Hardware Breakpoint Match> Abbreviation MATCH <match_info> Code 0,0,1,1, <match_info>

【0191】このパケットが出力されるのは、オンチッ
プ・ハードウェア・ブレークポイント・ヒットや外部ト
リガ入力など、ユーザが指定したイベントが発生したと
きである。<match_info>のビット割り当てはプロセッサ
・ファミリに依存する。<match_info>は、イベントのタ
イプおよびチャネル番号(イベントがハードウェア・ブ
レークポイントである場合)を示す情報を含むべきであ
る。また、<match_info>は、イベントの詳細を示す追加
情報を含むことができる。MATCHパケットは、N-traceパ
ケットを取り込むデバッグ・ツールをトリガするために
使用されるので、トレース・バッファがオーバフローし
ている間でもMATCHパケットが失われてはならない。以
下に<match_info>の例を示す。
This packet is output when an event specified by the user, such as an on-chip hardware breakpoint hit or an external trigger input, occurs. The bit assignment of <match_info> depends on the processor family. <match_info> should contain information indicating the type of event and the channel number (if the event is a hardware breakpoint). <Match_info> may include additional information indicating details of the event. MATCH packets are used to trigger debug tools that capture N-trace packets, so that MATCH packets must not be lost while the trace buffer overflows. An example of <match_info> is shown below.

【0192】<2.3.4.1 <match_info>の例><match_inf
o>の最初の2ビットはイベントのタイプを示す。後続の
ビットはこのタイプに依存する。 <bptype> イベントのタイプ ------- ----------- 0,0 外部トリガ入力 0,1 命令アドレス・ブレークポイント 1,0 データ・アクセス・ブレークポイント 1,1 予約
<2.3.4.1 Example of <match_info >><match_inf
The first two bits of o> indicate the type of event. Subsequent bits depend on this type. <bptype> Event type ------- ----------- 0,0 External trigger input 0,1 Instruction address breakpoint 1,0 Data access breakpoint 1,1 Reservation

【0193】外部トリガ入力 略号 MATCH Extrg コード 0,0,1,1,0,0External trigger input Symbol MATCH Extrg code 0,0,1,1,0,0

【0194】命令アドレス・ブレークポイント 略号 MATCH Exec,<bplist> コード 0,0,1,1,0,1, <bplist>Instruction address breakpoint Abbreviation MATCH Exec, <bplist> Code 0,0,1,1,0,1, <bplist>

【0195】<bplist>は、命令アドレス・ブレークポイ
ントのどのチャネルにヒットしたかを示す。<bplist>
は、命令アドレス・ブレークポイントの数と同じ数のビ
ットを有する。ブレークポイントのチャネル「n」にヒ
ットすると、<bplist>のビット「n」がセットされる。2
つ以上のビットがセットされた場合、2つ以上の条件が
同時に満たされたことを意味する。
<Bplist> indicates which channel of the instruction address breakpoint has been hit. <bplist>
Has the same number of bits as the number of instruction address breakpoints. Hitting breakpoint channel "n" sets bit "n" of <bplist>. Two
If more than one bit is set, it means that more than one condition has been met at the same time.

【0196】データ・アクセス・ブレークポイント 略号 MATCH Acc, <bplist>,<rw>,[1, <addr>] コード 0,0,1,1,1,0, <bplist>,<rw>,[1, <addr>]Data access breakpoint Abbreviation MATCH Acc, <bplist>, <rw>, [1, <addr>] Code 0,0,1,1,1,0, <bplist>, <rw>, [ 1, <addr>]

【0197】<bplist>は、データ・アクセス・ブレーク
ポイントのどのチャネルにヒットしたかを示す。<bplis
t>は、データ・アクセス・ブレークポイントの数と同じ
数のビットを有する。ブレークポイントのチャネル
「n」にヒットすると、<bplist>のビット「n」がセット
される。2つ以上のビットがセットされた場合、2つ以上
の条件が同時に満たされたことを意味する。<rw>は、1
ビット長であり、アクセス・サイクルのアクセス・タイ
プを示す。 <rw> ---- -------------- 1 読取りサイクル 0 書込みサイクル
<Bplist> indicates which channel of the data access breakpoint has been hit. <bplis
t> has the same number of bits as the number of data access breakpoints. Hitting breakpoint channel "n" sets bit "n" of <bplist>. If more than one bit is set, it means that more than one condition was met at the same time. <rw> is 1
It is a bit length and indicates the access type of the access cycle. <rw> ---- -------------- 1 Read cycle 0 Write cycle

【0198】データ・アクセス・ブレークポイントがア
ドレス・マスクを用いて設定されているとき、ブレーク
ポイントのチャネルからアドレスを判定することはでき
ない。この場合、厳密なアドレスを判定するには、追加
情報、すなわちデータ・アクセス・サイクルのアドレス
(<addr>)が有用である。<addr>が出力されるのは、デ
ータ・アクセス・ブレークポイントのアドレス出力イネ
ーブル・ビットの「MAOE」がセットされた場合である。
一般に、アドレス・マスクは、アドレスの上位ビットで
はなく下位ビットをマスクするために使用される。パケ
ットのビット長を最小限を抑えるために、<addr>は、ア
ドレス・マスクとの論理和であるアドレスであるべきで
ある。 <addr> = <data access address> & <address mask reg
ister> <address mask register>のビットが設定されていると
き、比較器は、対応する<data access address>ビット
を比較しない。完全なアドレスは、マスクされたアドレ
スの値およびブレークポイント・チャネル番号から得る
ことができる。多数のデータ・アクセス・ブレークポイ
ントがヒットし、アドレスを出力するためにイネーブル
されたとき、ブレーク・チャネル番号が最低のアドレス
・マスクを使ってそのアドレスがマスクされる。アクセ
ス・サイクルで使用されたデータを示すには、DATAパケ
ットを後に続けることができる。
When a data access breakpoint is set using an address mask, the address cannot be determined from the channel of the breakpoint. In this case, additional information, that is, the address (<addr>) of the data access cycle, is useful for determining the exact address. <addr> is output when the address output enable bit “MAOE” of the data access breakpoint is set.
Generally, an address mask is used to mask the lower bits of an address rather than the upper bits. To minimize the bit length of the packet, <addr> should be an address that is the logical OR of the address mask. <addr> = <data access address>&<address mask reg
When the bits of ister><address mask register> are set, the comparator does not compare the corresponding <data access address> bits. The complete address can be obtained from the value of the masked address and the breakpoint channel number. When a number of data access breakpoints are hit and enabled to output an address, the address is masked using the address mask with the lowest break channel number. A DATA packet can follow to indicate the data used in the access cycle.

【0199】<2.3.5 データ・アクセス出力> 略号 DATA <type>,<data> コード 0,0,1,0,<type>,<data><2.3.5 Data Access Output> Abbreviation DATA <type>, <data> Code 0,0,1,0, <type>, <data>

【0200】このパケットは、事前に設定された条件が
満たされたときにデータ・アクセス・サイクルを出力す
るために使用される。<type>は、どんなタイプのデータ
が出力されるかを示す。ビット長および値の意味はプロ
セッサ・ファミリに依存する。<data>は、データ・アク
セス・サイクルのデータである。ビット長は可変であ
る。
This packet is used to output a data access cycle when a preset condition is satisfied. <type> indicates what type of data is output. The bit length and the meaning of the value depend on the processor family. <data> is data of a data access cycle. The bit length is variable.

【0201】データ・アクセス・ブレークポイントにヒ
ットし、データ出力ビットがイネーブルされたときに、
MATCHパケットに続いてDATAパケットを出力すべきであ
る。上位ビット側のビットがゼロならそれらを出力する
必要はない。以下に<type>および<data>の例を示す。
When a data access breakpoint is hit and the data output bit is enabled,
A DATA packet should be output following the MATCH packet. If the upper bits are zero, there is no need to output them. An example of <type> and <data> is shown below.

【0202】<2.3.5.1 <type>および<data>の例> <type> <type>は、プロセッサのバイト・イネーブル信号を表
す。32ビット・プロセッサでは、<type>のビット長は4
ビット(BE[3:0])である。<type>は、バイト・イネー
ブル0(BE[0])から出力される。 <data> <data>のビット長は、データ・アクセス・サイクルの動
作サイズに依存する。たとえば、バイト・アクセス・サ
イクルの場合、長さは8ビットになる。<data>はバイナ
リ・フォーマットで最大ビット(LSB)から出力され
る。
<2.3.5.1 Examples of <type> and <data >><type><type> represents a byte enable signal of the processor. On 32-bit processors, <type> has a bit length of 4
Bits (BE [3: 0]). <type> is output from byte enable 0 (BE [0]). <data> The bit length of <data> depends on the operation size of the data access cycle. For example, for a byte access cycle, the length would be 8 bits. <data> is output from the largest bit (LSB) in binary format.

【0203】<2.3.6 オーバフロー> 略号 OVF コード 0,0,0,1<2.3.6 Overflow> Abbreviation OVF code 0,0,0,1

【0204】オンチップ・トレース・バッファがオーバ
フローすると、バッファへの入力は、バッファ内のすべ
てのパケットが出力されるまで中断される。OVFパケッ
トは、トレース・バッファに最後に残ったパケットの後
に続くべきである。オーバフローのために入力が中断さ
れている間にMATCHパケット出力の条件が満たされた場
合、OVFパケットの後も依然としてMATCHパケットを出力
すべきである。MATCHパケットは、ユーザが指定したイ
ベントを検出するために使用されるので、失われてはな
らない。オーバフロー中に発生する他のパケットは失わ
れてもよい。
When the on-chip trace buffer overflows, input to the buffer is suspended until all packets in the buffer have been output. OVF packets should follow the last remaining packet in the trace buffer. If the condition of MATCH packet output is satisfied while the input is interrupted due to overflow, the MATCH packet should still be output after the OVF packet. MATCH packets are used to detect user-specified events and must not be lost. Other packets occurring during the overflow may be lost.

【0205】<2.3.7 長い順次実行> 略号 LSEQ コード 0,1,1,1<2.3.7 Long sequential execution> Abbreviation LSEQ code 0,1,1,1

【0206】このパケットは、NSEQコード用のカウンタ
のビットの数を制限するために用意されている。このパ
ケットは、最大数の順次命令が実行されたときに出力さ
れる。そのような最大数は、本仕様では指定されず、プ
ロセッサ・ファミリに依存させることができる。
This packet is provided to limit the number of bits of the NSEQ code counter. This packet is output when the maximum number of sequential instructions have been executed. Such a maximum is not specified in this specification and may be dependent on the processor family.

【0207】<2.3.8 出力すべきデータがない> 略号 NOP コード 0<2.3.8 No data to output> Abbreviation NOP code 0

【0208】このパケットは、出力すべき他のデータが
ない場合に出力される。
This packet is output when there is no other data to be output.

【0209】<2.3.9 小型パケット>当然のことなが
ら、このN-trace仕様を実装するには2組のバッファが必
要である。この一方は、イベントの「タイプ」を記憶す
るものである。これを「メイン・バッファ」と呼ぶ。他
方は、<program_counter>、<exp_id>、<data>などの
「データ」を記憶するものである。これを「データ・バ
ッファ」と呼ぶ。「データ・バッファ」のビット幅は
「メイン・バッファ」のビット幅よりも長い。「データ
・バッファ」の深さは、「メイン・バッファ」の深さよ
りも浅い。したがって、「データ・バッファ」が満杯の
とき、「メイン・バッファ」はまだ満杯ではない可能性
が高い。そうである場合、イベントの「データ」を省略
して、依然としてイベントの「タイプ」を出力すること
ができる。 <exp_id>を含まないEXPパケット <addr>を含まないMATCHパケット <data>および<type>を含まないDATAパケット
<2.3.9 Small Packet> As a matter of course, two sets of buffers are required to implement the N-trace specification. One of them stores the "type" of the event. This is called a "main buffer". The other stores "data" such as <program_counter>, <exp_id>, and <data>. This is called a "data buffer". The bit width of the “data buffer” is longer than the bit width of the “main buffer”. The depth of the "data buffer" is smaller than the depth of the "main buffer". Therefore, when the "data buffer" is full, it is likely that the "main buffer" is not yet full. If so, the "data" of the event can be omitted and the "type" of the event still output. EXP packet without <exp_id> MATCH packet without <addr> DATA packet without <data> and <type>

【0210】TPCパケットでは、他のパケットを定義す
る必要がある。 略号 TPCM コード 0,1,0,1
[0210] In the TPC packet, another packet must be defined. Abbreviation TPCM code 0,1,0,1

【0211】<2.4.トレース・モード>限られたトレ
ース・ピンおよびバッファを最も効果的に使用するため
に様々な任意選択のトレース・モードがあるべきであ
る。
<2.4. Trace Modes> There should be various optional trace modes to make the most efficient use of the limited trace pins and buffers.

【0212】<2.4.1 リアルタイム/非リアルタイム・
トレース>リアルタイム・トレース・モードでは、プロ
セッサはN-traceからの制約なしにユーザ・プログラム
を実行する。オンチップN-Traceバッファがオーバフロ
ーするとOVFパケットが生成される。例外的なケースで
は、正しいトレースに必要なある種のトレース情報が失
われることがある。
<2.4.1 Real-time / Non-real-time
Trace> In real-time trace mode, the processor executes the user program without any restrictions from N-trace. When the on-chip N-Trace buffer overflows, an OVF packet is generated. In exceptional cases, certain trace information required for correct tracing may be lost.

【0213】非リアルタイム・トレース・モードでは、
オンチップN-Traceバッファがオーバフローする前にプ
ロセッサのパイプラインが停止する。これによって完全
なトレースが確保されるが、プロセッサのユーザ・プロ
グラムの実行が減速する。
In the non-real-time trace mode,
The processor pipeline stops before the on-chip N-Trace buffer overflows. This ensures a complete trace, but slows down the execution of the user program on the processor.

【0214】<2.4.2 TPCパケット>TPCパケットは、分
岐のタイプに応じて選択的に出力されるべきである。TP
Cパケットを出力する4つのレベルがある。
<2.4.2 TPC Packet> The TPC packet should be selectively output according to the type of branch. TP
There are four levels to output C packets.

【0215】レベル0:TPCの抑制 このレベルでは、TPCパケットは出力されない。これ
は、データ・アクセス・トレースしか必要でない場合に
有用である。
Level 0: TPC suppression At this level, no TPC packet is output. This is useful when only a data access trace is needed.

【0216】レベル1:例外および間接ジャンプ時のTPC
パケット 例外および間接ジャンプが発生したときにTPCパケット
が出力される。これはノーマル・モードである。完全な
プログラム・フローのトレースにかなり近い。
Level 1: TPC at exception and indirect jump
A TPC packet is output when a packet exception or indirect jump occurs. This is a normal mode. Very close to a complete program flow trace.

【0217】レベル2:特殊命令時のTPCパケット このレベルでは、特殊命令時に常にTPCパケットが生成
される。このモードは、特殊命令が「関数間」ジャンプ
である場合に特に有用である。たとえば、この範疇には
Jump-and-link命令およびReturn命令を含めるべきであ
る。それによってプログラム・フローを関数レベルでト
レースすることができる(関数呼出し履歴など)。
Level 2: TPC packet at the time of special instruction At this level, a TPC packet is always generated at the time of a special instruction. This mode is particularly useful when the special instruction is an "inter-function" jump. For example, in this category
Should include Jump-and-link and Return instructions. This allows program flow to be traced at the function level (such as function call history).

【0218】レベル3:例外およびジャンプ時のTPCパケ
ット いかなる例外またはいかなるジャンプが発生したときに
もTPCパケットが出力される。このレベルでは、直接ジ
ャンプを逆アセンブルしなくてもプログラム・カウンタ
を再構築することができるので、トレースは常に正し
い。レベル0ないし2では、システム・クラッシュのため
にプログラム・コードが破壊された場合にプログラム・
カウンタを再構築することはできない。
Level 3: TPC packet at the time of exception and jump A TPC packet is output when any exception or any jump occurs. At this level, the trace is always correct, since the program counter can be rebuilt without having to disassemble the direct jump. Levels 0 and 2 allow the program to break if the program code is corrupted due to a system crash.
The counter cannot be rebuilt.

【0219】<2.4.3 その他のパケット>EXPパケッ
ト、NSEQパケット、LSEQパケットを選択的にイネーブル
またはディスエーブルすべきである。これは、TPCパケ
ットのレベル3またはレベル0に対応する。
<2.4.3 Other Packets> The EXP, NSEQ, and LSEQ packets should be selectively enabled or disabled. This corresponds to level 3 or level 0 of the TPC packet.

【0220】<2.5.デバッグ・レジスタ>デバッグ・
レジスタは、N-trace設定を制御する。デバッグ・レジ
スタは、N-wire「資源アクセス」方式によってアクセス
される。このレジスタにアクセスすることがプロセッサ
のユーザ・プログラムの実行に影響を与えてはならな
い。
<2.5. Debug register> Debug
Registers control N-trace settings. The debug registers are accessed by an N-wire "resource access" scheme. Accessing this register must not affect the execution of the user program of the processor.

【0221】<2.5.1 N-traceシステム・レジスタ>TRC
SYSデバッグ・レジスタは、N-Traceを制御するために使
用される。
<2.5.1 N-trace System Register> TRC
The SYS debug register is used to control N-Trace.

【0222】TRCSYS(N-Traceシステム・レジスタ) ID N-Trace実装ID(R) プロセッサ・ファミリ依存オプションを識別する。 NDATAPIN N-Traceピン構成(R) TRCDATAピンの数 OVF N-Traceオーバフロー・ステータス(R/W) このビットは、トレース・バッファがオーバフローした
ときにセットされる。 TGIN N-Trace入力ステータス(R/W) このビットは、外部トリガが検出されたときにセットさ
れる。 RESET N-Traceをリセットする(W). N-Traceをリセットする。 このビットがセットされた場合、N-Traceが初期化さ
れ、トレース・パケットは生成されない(NOPパケット
が出力される)。N-Traceリセット時には、トレース・
バッファおよびMO1(MATCHパケット一度出力)状態がク
リアされる。前の<program_counter>の値は、次のTPCパ
ケットを短くするために使用されるが、この値を初期化
すべきである。N-Traceリセット時にすべてのトレース
設定を変更することができる。このビットをクリアした
ときに、プロセッサ活動に応じてトレース・パケットが
生成されるべきである。 CLKDIV クロック周波数のトレース(W) TRCCLK周波数を変更する。このビットは、この周波数を
N-Traceアナライザに適応させるために使用される。こ
れは、コア・クロック周波数を分割することによって選
択される。 MODE モード構成のトレース(W) ビット0 リアルタイム・トレースまたは非リアルタ
イム・トレース ビット2, 1 TPCパケット出力レベルを選択する。 ビット3 EXPパケットを抑制する。 ビット4 NSEQパケットおよびLSEQパケットを抑制す
る。
TRCSYS (N-Trace System Register) ID N-Trace implementation ID (R) Identifies processor family dependent options. NDATAPIN N-Trace pin configuration (R) Number of TRCDATA pins OVF N-Trace overflow status (R / W) This bit is set when the trace buffer overflows. TGIN N-Trace input status (R / W) This bit is set when an external trigger is detected. RESET Reset N-Trace (W). Reset N-Trace. If this bit is set, N-Trace is initialized and no trace packet is generated (NOP packet is output). At the time of N-Trace reset,
The buffer and MO1 (MATCH packet output once) status are cleared. The previous <program_counter> value is used to shorten the next TPC packet, but this value should be initialized. All trace settings can be changed at N-Trace reset. When this bit is cleared, a trace packet should be generated in response to processor activity. CLKDIV Clock frequency trace (W) Change TRCCLK frequency. This bit sets this frequency
Used to adapt to N-Trace analyzer. This is selected by dividing the core clock frequency. MODE Trace of mode configuration (W) bit 0 Real-time trace or non-real-time trace bit 2, 1 Select TPC packet output level. Bit 3 suppresses EXP packets. Bit 4 Suppress NSEQ and LSEQ packets.

【0223】<2.5.2 ハードウェア・ブレークポイント
・レジスタ>ハードウェア・ブレークポイントに関する
デバッグ・レジスタは、MATCHパケットおよびDATAパケ
ットを出力する条件を指定するために使用される。各ハ
ードウェア・ブレークポイント・チャネルごとに以下の
レジスタを準備すべきである。
<2.5.2 Hardware Breakpoint Register> A debug register related to a hardware breakpoint is used to specify conditions for outputting a MATCH packet and a DATA packet. The following registers should be prepared for each hardware breakpoint channel.

【0224】<2.5.2.1 命令アドレス・ブレークポイン
ト> IBA 命令アドレス・ブレークポイント・アドレス・レ
ジスタ IBAM 命令アドレス・ブレークポイント・アドレス・マ
スク・レジスタ IBC 命令アドレス・ブレークポイント制御レジスタ INV 比較器反転 比較器の結果を反転させる。命令アドレスがIBAレジス
タおよびIBAMレジスタに合致しないときに条件が満たさ
れる。 ME MATCHパケット・イネーブル 条件が満たされたときにN-trace上でMATCHパケットを出
力する。 MO1 MATCHパケット一度出力 N-traceリセット以後、条件が初めて発生したときに1度
だけMATCHパケットを出力する。
<2.5.2.1 Instruction Address Breakpoint> IBA Instruction Address Breakpoint Address Register IBAM Instruction Address Breakpoint Address Mask Register IBC Instruction Address Breakpoint Control Register INV Comparator Inverter Invert the result. The condition is satisfied when the instruction address does not match the IBA and IBAM registers. ME MATCH packet enable Outputs a MATCH packet on N-trace when the conditions are met. MO1 MATCH packet output once After N-trace reset, output MATCH packet only once when condition occurs for the first time.

【0225】<2.5.2.2 データ・アクセス・ブレークポ
イント> DBA データ・アクセス・ブレークポイント・アドレス
・レジスタ DBAM データ・アクセス・ブレークポイント・アドレス
・マスク・レジスタ DBD データ・アクセス・ブレークポイント・データ・
レジスタ DBDM データ・アクセス・ブレークポイント・データ・
マスク・レジスタ DBC データ・アクセス・ブレークポイント制御レジス
タ AINV アドレス比較器反転 アドレス比較器の結果を反転させる。アクセス・アドレ
スがDBAレジスタおよびDBAMレジスタに合致しないとき
に条件が満たされる。 DINV データ比較器反転 データ比較器の結果を反転させる。アクセス・データが
DBDレジスタおよびDBDMレジスタに合致しないときに条
件が満たされる。 DBE データ比較器バイト・イネーブル ビット長は、プロセッサのデータ・ワードのバイト数に
等しい。各ビットは、プロセッサのバイト・イネーブル
に対応する。このビットがセットされると、プロセッサ
が対応するデータ・バイトをイネーブルしていない場
合、データ条件は満たされない。 MEA アドレス合致時のMATCHパケット・イネーブル 条件が満たされたときにN-trace上でMATCHパケットを出
力する。 MED データ合致時のMATCHパケット・イネーブル 条件が満たされたときにN-trace上でMATCHパケットを出
力する。MEAビットとMEDビットの両方をセットした場
合、両方の条件が満たされたときにMATCHパケットが出
力される。両方ともクリアした場合、比較器の結果にか
かわらずにMATCHパケットが出力される。 MERD 読取りアクセス 条件は、読取りサイクルでしか満たされない。 MEWR 書込みアクセス 条件は、書込みサイクルでしか満たされない。MERDビッ
トとMEWRビットの両方をセットした場合、アクセス・タ
イプにかかわらずにMATCHパケットが出力される。両方
ともクリアした場合、MATCHパケットは出力されない。 MO1 MATCHパケット一度出力 N-traceリセット以後、条件が初めて発生したときに1度
だけMATCHパケットを出力する。 MAOE MATCHパケット・アドレス出力イネーブル MATCHパケットにアクセス・アドレス情報を追加する。 AINVビットをイネーブルした場合、<addr>はDBAMレジス
タでマスクされた値であってはならない。<addr>は単な
るアクセス・アドレスであるべきである。 DEA アドレス合致時のDATAパケット・イネーブル アドレス条件が満たされたときにN-trace上でDATAパケ
ットを出力する。 DED データ合致時のDATAパケット・イネーブル 条件が満たされたときにN-trace上でDATAパケットを出
力する。DEAビットとDEDビットの両方をセットした場
合、両方の条件が満たされたときにDATAパケットが出力
される。両方ともクリアした場合、比較器の結果にかか
わらずにDATAパケットが出力される。 DERD 読取りアクセス 条件は、読取りサイクルでしか満たされない。 DEWR 書込みアクセス 条件は、書込みサイクルでしか満たされない。DERDビッ
トとDEWRビットの両方をセットした場合、アクセス・タ
イプにかかわらずにDATAパケットが出力される。両方と
もクリアした場合、DATAパケットは出力されない。
<2.5.2.2 Data Access Breakpoint> DBA Data Access Breakpoint Address Register DBAM Data Access Breakpoint Address Mask Register DBD Data Access Breakpoint Data Register
Register DBDM data access breakpoint data
Mask register DBC Data access breakpoint control register AINV Address comparator inversion Inverts the result of the address comparator. The condition is met when the access address does not match the DBA and DBAM registers. DINV Data comparator inversion Inverts the result of the data comparator. Access data
The condition is met when the DBD and DBDM registers do not match. DBE Data Comparator Byte Enable The bit length is equal to the number of bytes in the data word of the processor. Each bit corresponds to a byte enable of the processor. When this bit is set, the data condition is not met if the processor has not enabled the corresponding data byte. Enable MATCH packet when MEA address matches Outputs a MATCH packet on N-trace when the conditions are met. Enable MATCH packet when MED data matches. Outputs a MATCH packet on N-trace when the conditions are met. If both the MEA and MED bits are set, a MATCH packet is output when both conditions are met. If both are cleared, a MATCH packet is output regardless of the result of the comparator. The MERD read access condition is satisfied only in a read cycle. The MEWR write access condition can only be met in a write cycle. If both MERD and MEWR bits are set, a MATCH packet is output regardless of the access type. If both are cleared, no MATCH packet is output. MO1 MATCH packet output once After N-trace reset, output MATCH packet only once when condition occurs for the first time. MAOE MATCH packet address output enable Adds access address information to the MATCH packet. If the AINV bit is enabled, <addr> must not be the value masked in the DBAM register. <addr> should be just an access address. Enable DATA packet when DEA address matches Outputs DATA packet on N-trace when address condition is satisfied. Enable DATA packet when DED data match Outputs a DATA packet on N-trace when the conditions are met. If both the DEA and DED bits are set, a DATA packet is output when both conditions are met. If both are cleared, a DATA packet is output regardless of the result of the comparator. The DERD read access condition is satisfied only in a read cycle. The DEWR write access condition can only be met in a write cycle. If both the DERD and DEWR bits are set, a DATA packet is output regardless of the access type. If both are cleared, no DATA packet is output.

【0226】<2.6.トレース・パケットの使用法> <2.6.1 プログラム・カウンタ・フローのトレース>NS
EQパケット、LSEQパケット、TPCパケット、EXPパケット
を使用して分岐履歴をトレースすることができる。ユー
ザは、以下から分岐履歴のレベルを選択することができ
る。 − ある関数から別の関数への分岐(関数フロー) − すべての分岐(フル・プログラム・カウンタ・フロ
ー)
<2.6. Using Trace Packets><2.6.1 Trace of Program Counter Flow> NS
The branch history can be traced using the EQ packet, LSEQ packet, TPC packet, and EXP packet. The user can select a branch history level from the following. − Branch from one function to another (function flow) − all branches (full program counter flow)

【0227】<2.6.1.1 関数フロー>関数呼出し履歴ト
レースは、TPCパケットおよびEXPパケットを取り込むこ
とによって行われる。TPC出力モードはレベル2に設定す
べきである。
<2.6.1.1 Function Flow> Function call history tracing is performed by capturing a TPC packet and an EXP packet. TPC output mode should be set to level 2.

【0228】TPCパケットの<program_counter>は、関数
の入力のアドレスである場合、その関数が呼び出される
ことを示す。また、前のTPCパケットの<program_counte
r>が呼出し側のアドレス範囲内にあるので、前のTPCパ
ケットによって呼出し側を判定することができる。
If the <program_counter> of the TPC packet is the input address of a function, it indicates that the function is called. Also, the <program_counte> of the previous TPC packet
Since r> is within the address range of the caller, the caller can be determined by the previous TPC packet.

【0229】<2.6.1.2 フル・プログラム・カウンタ・
フロー>フル・プログラム・カウンタ・フローのトレー
スは、NSEQパケット、LSEQパケット、TPCパケット、EXP
パケットを取り込むことによって行われる。TPC出力モ
ードは、レベル1に設定すべきである。
<2.6.1.2 Full Program Counter
Flow> Full program counter flow trace is NSEQ packet, LSEQ packet, TPC packet, EXP
This is done by capturing packets. TPC output mode should be set to level 1.

【0230】プログラム・カウンタの再構築 どこで分岐が行われ(分岐命令の位置)、分岐の分岐先
はどこか(分岐先アドレス)を知ることによって、プロ
グラム・カウンタを再構築することができる。このプロ
トコルでは、プログラム・カウンタの再構築は、TPCパ
ケットからしか開始できない。
Reconstruction of Program Counter The program counter can be reconstructed by knowing where the branch is taken (the position of the branch instruction) and where the branch destination of the branch is (the branch destination address). In this protocol, the rebuilding of the program counter can only be started from a TPC packet.

【0231】以下に、プログラム・フローがどのように
再構築されるかを示す。 1)第1のTPCパケットを探索する。 2)トレース・リストの終わりの方へ向かってNSEQパケ
ットを探索する。NSEQ<seq#>パケットが見つかった場
合、そこでジャンプまたは分岐が行われている。ジャン
プ命令または分岐命令の位置は、前の分岐先アドレスに
<seq#>を加えることによって知ることができる。 3)その後にTPCパケットが続く場合、このパケットから
新しい分岐先アドレスを知ることができる。そうでない
場合、ジャンプ命令または分岐命令をディスアセンブル
することによって分岐先アドレスをデコードすることが
できる。 4)(2)から(4)までを繰り返す。
The following shows how the program flow is reconstructed. 1) Search for the first TPC packet. 2) Search for NSEQ packets towards the end of the trace list. If an NSEQ <seq #> packet is found, a jump or branch has occurred there. The jump or branch instruction is located at the previous branch destination address.
You can find out by adding <seq #>. 3) If a TPC packet follows, a new branch destination address can be known from this packet. Otherwise, the branch destination address can be decoded by disassembling the jump or branch instruction. 4) Repeat from (2) to (4).

【0232】フル・プログラム・カウンタ・フロー・ト
レース出力の例 ここでは例としてMIPS R3000シリーズ・プロセッサを使
用している。
Example of Full Program Counter Flow Trace Output Here, a MIPS R3000 series processor is used as an example.

【0233】[0233]

【表2】 [表2] このリストの先頭よりも前に: −TPCレジスタには'000028b4'が入っている −チップ上トレース・バッファは空である −命令'000028b4'から'000028dc'が逐次的に実行される +--- TRCEND | +- TRCDATA | | 0 1 (1) NSEQ: 00000009 000028d8: (1,2) bne $14, $0, 0x000028b4 0 1 000028dc: nop 0 0 000028b4: addu $25, $4, $0 0 0 000028b8: addiu $4, $4, 0x0001 1 1 000028bc: addu $24, $5, $0 0 0 (2) TPC: 000028b4(0 bit) 000028c0: addiu $5, $5, 0x0001 0 1 000028c4: lb $15, 0x0000($24) 0 0 000028c8: nop 1 0 000028cc: sb $15, 0x0000($25) 1 0 (3) NOP 000028d0: lb $14, 0x0000($5) 1 0 NOP 000028d4: nop 1 0 NOP 000028d8: bne $14, $0, 0x000028b4 1 0 NOP 000028dc: nop 1 0 NOP 000028e0: sb $0, 0x0000($4) 1 0 NOP 000028e4: addu $2, $3, $0 (表3へ続く)[Table 2] Before the head of this list:-TPC register contains '000028b4'-On-chip trace buffer is empty-Instructions '000028b4' to '000028dc' sequentially + --- TRCEND | +-TRCDATA | | 0 1 (1) NSEQ: 00000009 000028d8: (1,2) bne $ 14, $ 0, 0x000028b4 0 1 000028dc: nop 0 0 000028b4: addu $ 25, $ 4 , $ 0 0 0 000028b8: addiu $ 4, $ 4, 0x0001 1 1 000028bc: addu $ 24, $ 5, $ 0 0 0 (2) TPC: 000028b4 (0 bit) 000028c0: addiu $ 5, $ 5, 0x0001 0 1 000028c4: lb $ 15, 0x0000 ($ 24) 0 0 000028c8: nop 1 0 000028cc: sb $ 15, 0x0000 ($ 25) 1 0 (3) NOP 000028d0: lb $ 14, 0x0000 ($ 5) 1 0 NOP 000028d4: nop 1 0 NOP 000028d8: bne $ 14, $ 0, 0x000028b4 1 0 NOP 000028dc: nop 1 0 NOP 000028e0: sb $ 0, 0x0000 ($ 4) 1 0 NOP 000028e4: addu $ 2, $ 3, $ 0 (Continued in Table 3)

【0234】[0234]

【表3】 [表3(前半)] 0 1 (4) NSEQ: 0000000d 000028e8: (4,5) jr $31 0 1 000028ec: nop 0 0 000020cc: lui $10, 0x0000 0 1 000020d0: addiu $10, $10, 0x48c0 1 1 000020d4: addiu $11, $10, 0x065c 1 0 (5) TPC: 000020cc(10bit) 000020d8: ori $8, $0, 0x000a 0 1 000020dc: sw $8, 0x0000($11) 0 0 000020e0: ori $19, $0, 0x000a 0 0 000020e4: ori $18, $0, 0x0001 0 1 000020e8: (6) j 0x000022a4 0 1 000020ec: nop 0 0 000022a4: slt $14, $19, $18 0 0 000022a8: (7) beq $14, $0, 0x000020f0 [Table 3] [Table 3 (first half)] 0 1 (4) NSEQ: 0000000d 000028e8: (4,5) jr $ 31 0 1 000028ec: nop 0 0 000020cc: lui $ 10, 0x0000 0 1 000020d0: addiu $ 10, $ 10, 0x48c0 1 1 000020d4: addiu $ 11, $ 10, 0x065c 1 0 (5) TPC: 000020cc (10bit) 000020d8: ori $ 8, $ 0, 0x000a 0 1 000020dc: sw $ 8, 0x0000 ($ 11) 0 0 000020e0: ori $ 19, $ 0, 0x000a 0 0 000020e4: ori $ 18, $ 0, 0x0001 0 1 000020e8: (6) j 0x000022a4 0 1 000020ec: nop 0 0 000022a4: slt $ 14, $ 19, $ 18 0 0 000022a8: (7) beq $ 14, $ 0, 0x000020f0

【表4】 [表3(後半)] 0 1 000022ac: nop 0 1 000020f0: (8) jal 0x000024b4 0 0 000020f4: nop 0 0 000024b4: ori $8, $0, 0x0041 0 0 000024b8: sb $8, 0x8021($28) 1 0 000024bc: sw $0, 0x8024($28) 0 1 (6) NSEQ: 00000007 000024c0:(9,10) jr $31 0 1 000024c4: nop 0 1 000020f8: jal 0x00002484 1 1 000020fc: nop 0 1 (7) NSEQ: 00000001 00002484: lb $25, 0x8021($28) 1 1 00002488: nop 1 1 (8) NSEQ: 00000000 0000248c: xori $24, $25, 0x0041 0 1 (9) NSEQ: 00000003 00002490: sltiu $3, $24, 0x0001 0 1 00002494: lw $15, 0x8024($28) 1 1 00002498: nop 0 0(10) TPC: 000020f8(4 bit) 0000249c: or $15, $15, $3 0 1 000024a0: sw $15, 0x8024($28) 0 0 000024a4: ori $8, $0, 0x0042 0 0 000024a8: sb $8, 0x8020($28) 0 1 000024ac: jr $31 0 1 000024b0: nop 0 1 00002100: ori $8, $0, 0x0002 1 1 00002104: sw $8, 0x0060($29) [Table 4] [Table 3 (second half)] 0 1 000022ac: nop 0 1 000020f0: (8) jal 0x000024b4 0 0 000020f4: nop 0 0 000024b4: ori $ 8, $ 0, 0x0041 0 0 000024b8: sb $ 8, 0x8021 ($ 28 ) 1 0 000024bc: sw $ 0, 0x8024 ($ 28) 0 1 (6) NSEQ: 00000007 000024c0: (9,10) jr $ 31 0 1 000024c4: nop 0 1 000020f8: jal 0x00002484 1 1 000020fc: nop 0 1 (7) NSEQ: 00000001 00002484: lb $ 25, 0x8021 ($ 28) 1 1 00002488: nop 1 1 (8) NSEQ: 00000000 0000248c: xori $ 24, $ 25, 0x0041 0 1 (9) NSEQ: 00000003 00002490: sltiu $ 3, $ 24, 0x0001 0 1 00002494: lw $ 15, 0x8024 ($ 28) 1 1 00002498: nop 0 0 (10) TPC: 000020f8 (4 bit) 0000249c: or $ 15, $ 15, $ 3 0 1 000024a0: sw $ 15, 0x8024 ($ 28) 0 0 000024a4: ori $ 8, $ 0, 0x0042 0 0 000024a8: sb $ 8, 0x8020 ($ 28) 0 1 000024ac: jr $ 31 0 1 000024b0: nop 0 1 00002100: ori $ 8, $ 0, 0x0002 1 1 00002104: sw $ 8, 0x0060 ($ 29)

【0235】(1)リストの1番上にある分岐の前に、9
つの命令(000028b4ないし000028d4)が順次実行されて
いる(すなわち、ある位置から000028b4へジャンプが行
われ、それ以後000028b4まで分岐は行われていない)。
したがって、「NSEQ 9」コードが出力される。 (2)オンチップ・トレース・バッファが空であるた
め、分岐の分岐先アドレスが出力される。分岐先アドレ
スは前と同じであり、したがって「0100」のみが出力さ
れる(プログラム・カウンタ用のビットなし)。 (3)オンチップ・トレース・バッファが空になるのでN
OPが出力される。 (4)間接ジャンプの分岐先アドレスが出力される。 (5)前のTPCとは異なる下位10ビットが出力される。 (6)(5)でTPCが出力される間にジャンプが行われ
る。コード「NSEQ7」の出力は、(5)の出力が完了する
まで遅延される。 (7)分岐が行われるが、「NSEQ1」出力も遅延される。 (8)Jump and Linkが行われるが、「NSEQ0」出力も遅
延される。 (9)Jump Registerが行われるが、「NSEQ3」出力も遅
延される。 (10)Jump Registerの場合は、間接ジャンプなので、
トレース・バッファが空でないときでもTPCが出力され
る。これは、このリスト内のバッファ使用度のピークで
ある(4つのパケットがバッファされる)。
(1) Before the branch at the top of the list, 9
Two instructions (000028b4 through 00088d4) are being executed sequentially (ie, a jump is made from a certain position to 000028b4, and no branch is taken to 000028b4 thereafter).
Therefore, an “NSEQ 9” code is output. (2) Since the on-chip trace buffer is empty, the branch destination address of the branch is output. The branch destination address is the same as before, so that only "0100" is output (no bit for the program counter). (3) N because the on-chip trace buffer becomes empty
OP is output. (4) The branch destination address of the indirect jump is output. (5) The lower 10 bits different from the previous TPC are output. (6) A jump is performed while the TPC is output in (5). The output of code "NSEQ7" is delayed until the output of (5) is completed. (7) A branch is taken, but the "NSEQ1" output is also delayed. (8) Jump and Link are performed, but “NSEQ0” output is also delayed. (9) Jump Register is performed, but “NSEQ3” output is also delayed. (10) In the case of Jump Register, since it is an indirect jump,
TPC is output even when the trace buffer is not empty. This is the peak of buffer usage in this list (4 packets are buffered).

【0236】<2.6.2 ユーザ指定イベントの検出>ユー
ザ指定イベントが検出されるとMATCHパケットが出力さ
れる。
<2.6.2 Detection of User-Specified Event> When a user-specified event is detected, a MATCH packet is output.

【0237】<2.6.2.1 イベント時のN-traceアナライ
ザのトリガ>MATCHパケットは、パケットを取り込むN-t
raceアナライザをトリガするために使用される。アナラ
イザは、MATCHパケットを検出することによって特定の
イベントの前後にプロセッサ活動を取り込むことができ
る。第2のイベントおよびその後のイベントを無視する
にはMO1(イベントの第1回目の発生時にのみMATCHパケ
ットを出力する)をイネーブルすべきである。
<2.6.2.1 Trigger of N-trace Analyzer at Event> The MATCH packet is Nt for capturing the packet.
Used to trigger the race analyzer. An analyzer can capture processor activity before and after a particular event by detecting a MATCH packet. To ignore the second event and subsequent events, MO1 (output a MATCH packet only on the first occurrence of the event) should be enabled.

【0238】<2.6.2.2 イベントの発生の検出>MATCH
パケットの別の使用法は、イベントの発生を検出するこ
とである。MATCHパケットは以下のために使用すること
もできる。 − プログラム・カウンタ・トレースと混合する。 − アクセス・アドレス − いくつかのイベントをカウントする。 − イベントの間隔を測定する。
<2.6.2.2 Detection of Event Occurrence> MATCH
Another use of packets is to detect the occurrence of an event. MATCH packets can also be used for: -Mixed with the program counter trace. -Access address-Count some events. − Measure the interval between events.

【0239】プログラム・カウンタ・フロー・トレース
との混合 MATCHパケットをプログラム・カウンタ・フロー・パケ
ットと共にトレースする場合、プロセッサがイベントを
発生させた命令アドレス範囲を求めることができる。ア
ドレス範囲の精度はどのレベルの分岐情報をトレースし
ているか(フル・プログラム・カウンタ・フローまたは
関数フロー)に依存する。これは、データ・アクセスを
イベントとして使用する場合に特に有用である。たとえ
ば、関数フローを用いてトレースを行うと、前のTPCパ
ケットは、データ・アクセスを行う関数を示す。
Mixing with Program Counter Flow Trace When tracing a MATCH packet with a program counter flow packet, the processor can determine the instruction address range that caused the event. The accuracy of the address range depends on what level of branch information is being traced (full program counter flow or function flow). This is particularly useful when using data access as events. For example, when tracing is performed using a function flow, the previous TPC packet indicates a function that performs data access.

【0240】アクセス・アドレス アドレス・マスクを使用してデータ・アクセス・ブレー
クポイントを指定すると、マスクされたアドレス・ビッ
トはブレークポイント・チャネル番号(<bplist>)から
は分からない。MATCHパケット仕様の例と同様に、デー
タ・アクセス時にMATCHパケットにアドレス(<addr>)
を付加することができる。これは、正確なアドレスを知
る必要があるときに有用である。
Access Address When a data access breakpoint is specified using an address mask, the masked address bits are not known from the breakpoint channel number (<bplist>). Address (<addr>) in the MATCH packet at the time of data access, as in the example of the MATCH packet specification
Can be added. This is useful when you need to know the exact address.

【0241】いくつかのイベントのカウント MATCHパケットをカウントすることによって、指定され
たイベントをカウントすることができる。
Counting Some Events By counting MATCH packets, a specified event can be counted.

【0242】イベントの間隔の測定 1つのMATCHパケットと他のパケットとの間隔を測定す
ることができる。バッファリングのために、イベントの
発生からそれに対応するMATCHパケットまで時間遅延が
発生する。他のパケットがバッファされない場合、遅延
は最小限になり固定されるので、他のパケットを抑制し
て間隔をより正確なものにすべきである。
Measurement of Event Interval The interval between one MATCH packet and another packet can be measured. Due to the buffering, a time delay occurs from the occurrence of the event to the corresponding MATCH packet. If other packets are not buffered, the delay should be minimized and fixed, so other packets should be suppressed to make the interval more accurate.

【0243】<2.6.3 データ・アクセス・サイクル・ト
レース>MATCHパケットおよびDATAパケットを使用し
て、プロセッサ・データ・アクセス・サイクルをトレー
スすることができる。トレース・バッファ深さおよびTR
CDATAピン・カウントが限られるので、すべてのデータ
・アクセス・サイクルを出力することは不可能である。
データ・アクセス・サイクルを選択的に出力するには、
データ・アクセス・ブレークポイントを使用する。パケ
ット仕様の例では、MATCHパケットを使用して、データ
・アクセス・サイクルが実行されたこと、そのアクセス
・タイプおよびアドレスが示される。DATAパケットは、
アクセス・サイズおよびデータを示すために使用され
る。
<2.6.3 Data Access Cycle Trace> A processor data access cycle can be traced using a MATCH packet and a DATA packet. Trace buffer depth and TR
Due to the limited CDATA pin count, it is not possible to output every data access cycle.
To selectively output data access cycles,
Use data access breakpoints. In the example packet specification, a MATCH packet is used to indicate that a data access cycle has been performed, its access type and address. DATA packets are
Used to indicate access size and data.

【0244】<2.7.デバッグ・モードでのN-trace動作
>プロセッサがデバッグ・モードのとき、プロセッサ活
動によってトレース・パケットが生成されてはならな
い。デバッグ・モードではNOPパケットを連続的に出力
すべきである。
<2.7. N-trace operation in debug mode> When the processor is in debug mode, trace packets must not be generated by processor activity. In debug mode, NOP packets should be output continuously.

【0245】<2.7.1 デバッグ・モードへの遷移時>デ
バッグ例外の原因が外部トリガ入力またはハードウェア
・ブレークポイントである場合、パケット・イネーブル
・ビットに従ってMATCHパケットおよびDATAパケットを
出力すべきである。デバッグ例外が発生したときは、NS
EQパケットおよびEXPパケットを出力すべきである。ト
レース・バッファに残っている他のパケットは、これら
のNSEQパケットおよびEXPパケットよりも前に出力すべ
きである。
<2.7.1 Transition to Debug Mode> If the cause of a debug exception is an external trigger input or a hardware breakpoint, a MATCH packet and a DATA packet should be output according to the packet enable bit. . NS when a debug exception occurs
Should output EQ and EXP packets. Other packets remaining in the trace buffer should be output before these NSEQ and EXP packets.

【0246】<2.7.2 ノーマル・モードへの遷移時>プ
ロセッサがデバッグ・モードを終了するときは、ユーザ
・プログラムの実行が再開する命令アドレスを示すTPC
パケットを生成すべきである。
<2.7.2 Transition to Normal Mode> When the processor ends the debug mode, TPC indicating the instruction address at which the execution of the user program is resumed
A packet should be generated.

【0247】<2.7.3 ツールのデバッギングのために>
デバッグ・ツールの開発をしやすくするために、デバッ
グ・モード中でもトレース・パケットを出力するよう
な、特殊なトレース・モードを用意することが望ましい
モニタプログラム自身をデバッグする際に有用である。
<2.7.3 For Tool Debugging>
This is useful when debugging a monitor program itself for which it is desirable to prepare a special trace mode for outputting a trace packet even in the debug mode in order to facilitate development of a debug tool.

【図面の簡単な説明】[Brief description of the drawings]

【図1】ブレーク出力及びトリガ出力を説明するタイミ
ング・チャート。
FIG. 1 is a timing chart illustrating a break output and a trigger output.

【図2】ブレーク入力及びトリガ入力を説明するタイミ
ング・チャート。
FIG. 2 is a timing chart illustrating a break input and a trigger input.

【図3】IDCODEレジスタの構成を示す図。FIG. 3 is a diagram showing a configuration of an IDCODE register.

【図4】クイック・アクセス機構を挿入できる位置を説
明する図。
FIG. 4 is a diagram illustrating a position where a quick access mechanism can be inserted.

【図5】トレースポートの信号を示すタイミング・チャ
ート。
FIG. 5 is a timing chart showing trace port signals.

【図6】トレース・パケット・ビット長を短くする方法
を説明する図。
FIG. 6 is a view for explaining a method of shortening a trace packet bit length.

【図7】トレース・パケット・ビット長を短くする方法
を説明する図。
FIG. 7 is a view for explaining a method of shortening a trace packet bit length.

【図8】トレース・パケット・ビット長を短くする方法
を説明する図。
FIG. 8 is a view for explaining a method of reducing a bit length of a trace packet.

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】トレース情報を出力できるマイクロプロセ
ッサにおいて、 前記トレース情報を可変長のビット列で構成されるパケ
ットとして出力することを特徴とするマイクロプロセッ
サのトレース情報出力方法。
1. A microprocessor capable of outputting trace information, wherein the trace information is output as a packet composed of a variable-length bit string.
JP9176801A 1997-03-31 1997-07-02 Trace information outputting method of microprocessor Pending JPH1124959A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9176801A JPH1124959A (en) 1997-07-02 1997-07-02 Trace information outputting method of microprocessor
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
JP9176801A JPH1124959A (en) 1997-07-02 1997-07-02 Trace information outputting method of microprocessor

Publications (1)

Publication Number Publication Date
JPH1124959A true JPH1124959A (en) 1999-01-29

Family

ID=16020087

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9176801A Pending JPH1124959A (en) 1997-03-31 1997-07-02 Trace information outputting method of microprocessor

Country Status (1)

Country Link
JP (1) JPH1124959A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002304310A (en) * 2001-04-06 2002-10-18 Fujitsu Ltd Semiconductor integrated circuit
US6961872B2 (en) 2001-09-03 2005-11-01 Renesas Technology Corp. Microcomputer and debugging system
US7234068B2 (en) 2003-08-19 2007-06-19 Kabushiki Kaisha Toshiba Trace data and power measurement data matching apparatus and method that adds synchronization markers
JP2007537547A (en) * 2004-05-11 2007-12-20 クゥアルコム・インコーポレイテッド Data trace compression for integrated circuits with multiple memories.
JP2009259289A (en) * 2009-08-07 2009-11-05 Stmicroelectronics Sa Temporal correlation of message transmitted by monitor circuit of microprocessor
US7818620B2 (en) 2006-08-01 2010-10-19 Hitachi, Ltd. Program failure analysis system, failure analysis method, and emulator device
JP2011519100A (en) * 2008-04-28 2011-06-30 イマジネイション テクノロジーズ リミテッド System for providing trace data in a data processor having a pipelined architecture
JP2015516100A (en) * 2012-05-07 2015-06-04 マイクロチップ テクノロジー インコーポレイテッドMicrochip Technology Incorporated Processor device with instruction trace capability
US20180054374A1 (en) * 2016-08-19 2018-02-22 Andes Technology Corporation Trace information encoding apparatus, encoding method thereof, and readable computer medium

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002304310A (en) * 2001-04-06 2002-10-18 Fujitsu Ltd Semiconductor integrated circuit
US6961872B2 (en) 2001-09-03 2005-11-01 Renesas Technology Corp. Microcomputer and debugging system
US7234068B2 (en) 2003-08-19 2007-06-19 Kabushiki Kaisha Toshiba Trace data and power measurement data matching apparatus and method that adds synchronization markers
JP2007537547A (en) * 2004-05-11 2007-12-20 クゥアルコム・インコーポレイテッド Data trace compression for integrated circuits with multiple memories.
JP4885849B2 (en) * 2004-05-11 2012-02-29 クゥアルコム・インコーポレイテッド Data trace compression for integrated circuits with multiple memories.
US7818620B2 (en) 2006-08-01 2010-10-19 Hitachi, Ltd. Program failure analysis system, failure analysis method, and emulator device
JP2011519100A (en) * 2008-04-28 2011-06-30 イマジネイション テクノロジーズ リミテッド System for providing trace data in a data processor having a pipelined architecture
US9720695B2 (en) 2008-04-28 2017-08-01 Imagination Technologies Limited System for providing trace data in a data processor having a pipelined architecture
JP2009259289A (en) * 2009-08-07 2009-11-05 Stmicroelectronics Sa Temporal correlation of message transmitted by monitor circuit of microprocessor
JP2015516100A (en) * 2012-05-07 2015-06-04 マイクロチップ テクノロジー インコーポレイテッドMicrochip Technology Incorporated Processor device with instruction trace capability
US20180054374A1 (en) * 2016-08-19 2018-02-22 Andes Technology Corporation Trace information encoding apparatus, encoding method thereof, and readable computer medium
JP2018028888A (en) * 2016-08-19 2018-02-22 晶心科技股▲ふん▼有限公司Andes Technology Corporation Trace information encoder, method for encoding thereof, and readable computer medium

Similar Documents

Publication Publication Date Title
JP4475734B2 (en) Data processing apparatus and data processing method
US6145123A (en) Trace on/off with breakpoint register
JP3846939B2 (en) Data processor
US5978902A (en) Debug interface including operating system access of a serial/parallel debug port
JP4190114B2 (en) Microcomputer
US6009270A (en) Trace synchronization in a processor
US8185879B2 (en) External trace synchronization via periodic sampling
EP0391173B1 (en) Debug peripheral for microcomputers, microprocessors and core processor integrated circuits and system using the same
US5983017A (en) Virtual monitor debugging method and apparatus
US6094729A (en) Debug interface including a compact trace record storage
US6321329B1 (en) Executing debug instructions
US7412630B2 (en) Trace control from hardware and software
US7178133B1 (en) Trace control based on a characteristic of a processor&#39;s operating state
US6343358B1 (en) Executing multiple debug instructions
US6052774A (en) Apparatus and method for identifying exception routines indicated by instruction address issued with an instruction fetch command
US7181728B1 (en) User controlled trace records
EP0645705A1 (en) Testing and monitoring of programmed devices
US7506205B2 (en) Debugging system and method for use with software breakpoint
EP0652516A1 (en) Integrated microprocessor
WO1998021653A9 (en) Virtual monitor debugging method and apparatus
JPH09128265A (en) Data-processing system
JPH09114697A (en) Data processor
JPH09218803A (en) Data processor
US20060117224A1 (en) Trace and debug method and system for a processor
US20140344621A1 (en) Diagnosing code using single step execution