JP2003150403A - Observation method for data processor and device thereof - Google Patents

Observation method for data processor and device thereof

Info

Publication number
JP2003150403A
JP2003150403A JP2002132057A JP2002132057A JP2003150403A JP 2003150403 A JP2003150403 A JP 2003150403A JP 2002132057 A JP2002132057 A JP 2002132057A JP 2002132057 A JP2002132057 A JP 2002132057A JP 2003150403 A JP2003150403 A JP 2003150403A
Authority
JP
Japan
Prior art keywords
data
unit
trace
packet
rtt
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
JP2002132057A
Other languages
Japanese (ja)
Inventor
Ball James
ボール ジェイムズ
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.)
ARC International UK Ltd
Original Assignee
ARC International UK Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARC International UK Ltd filed Critical ARC International UK Ltd
Publication of JP2003150403A publication Critical patent/JP2003150403A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a trace structure and a method improved to use in one or more data processors and providing accurate and non-forced trace and debug functions. SOLUTION: One embodiment includes a trace unit applied in such a way that data and information are obtained from an operating processor to generate a plurality of data packets related to various aspects of processor operation. In an exemplifiable embodiment, the trace unit is applied to generate commands encoded as a plurality of data packets having a specific function, respectively, data, and timing trace. The packet is stored in one or more buffers, and these buffers can be accessed by an exclusive packet port related to a debug port and a device. The trace unit, the processor, and the buffers are arranged in a single integrated circuit device. In another embodiment, a multiprocessor core and the trace unit are proposed. A structure for data packet compression is also disclosed.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本出願は、2001年11月
6日付けで出願され、発明の名称が“データプロセッサ
の観測方法及び装置“である米国仮特許出願第60/3
38,869号を優先権として主張する。
BACKGROUND OF THE INVENTION This application was filed on Nov. 6, 2001, and the title of the invention is US Provisional Patent Application No. 60/3, entitled "Data Processor Observation Method and Apparatus".
Claims No. 38,869 as priority.

【0002】著作権 この特許文書の開示部分は、著作権の保護を受ける資料
を含んでいる。この著作権者は、特許及び商標庁の特許
ファイルまたは記録物にあるように、特許文書または特
許の開示に関するいかなる者によるファックス複製に対
し異議を申し立てることはないが、いかなる場合も著作
権はすべて保有されている。
Copyright The disclosed portion of this patent document contains material which is subject to copyright protection. This copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the disclosure of the patent as it appears in the patent and trademark office patent files or records, but in all cases all copyrights Owned.

【0003】発明の背景 本発明は、デジタルデータプロセッサの分野に関するも
ので、より詳細には、このようなプロセッサの動作に関
連したデータ及びコードの観測及びトレース並びにこれ
に関連した構造に関するものである。
BACKGROUND OF THE INVENTION The present invention relates to the field of digital data processors and, more particularly, to data and code observations and traces associated with the operation of such processors and associated structures. .

【0004】[0004]

【関連技術】トレース機能は、特に、設計者またはユー
ザーが一つ以上のデジタルプロセッサまたは他の集積回
路内に発生するソフトウェア動作の実行結果を観測する
ことを可能にするために使われる。トレース機能は、一
般的に、たとえば一つのプログラムの各命令または所定
数の命令の実行以後、メモリの選択された部分、プログ
ラムカウンタ(PC)、及び/または選択された間隔でプロ
セッサのレジスタの状態を提供する。これらの多様な構
成要素の状態を記録することで、トレース機能は、プロ
セッサの内部動作とプログラムの実行に関する詳細な情
報をユーザーに提供する。このような情報を利用して、
多くの形態の設計またはコーディングエラーを確認する
ことができ、後で訂正することができる。これは、アー
キテクチャーまたはコード変換の否定的な影響が、設計
工程がさらに進行する前に容易に決定できるため、プロ
セッサの設計及び開発段階において特に有用である。
2. Description of Related Art Trace functions are used, inter alia, to enable designers or users to observe the results of executing software operations that occur within one or more digital processors or other integrated circuits. The trace function generally refers to the state of a selected portion of memory, the program counter (PC), and / or the processor's register at selected intervals after execution of each instruction or a predetermined number of instructions of a program, for example. I will provide a. By recording the state of these various components, the trace facility provides the user with detailed information about the internal operation of the processor and the execution of the program. By using such information,
Many forms of design or coding errors can be identified and corrected later. This is particularly useful during processor design and development, as the negative impact of architecture or transcoding can be easily determined before the design process progresses further.

【0005】いわゆる“ブレークポイント”の機能もプ
ロセッサのアーキテクチャーまたはコード内の問題点を
確認し防止するための手段を提供する。ブレークポイン
トの機能は、しばしば一つの命令で実現され、通常オペ
レーションの要求時、いかなる形の直接的な介入なし
で、プロセッサにさらなる命令の実行を中断させる。一
旦ブレークポイント命令がパイプラインにより実行され
ると、プロセッサは、実行を再開すべきことを知らせる
インターラプトのような何らかの外部信号を受信するま
でさらなる処理を中断する。ブレーク中、データは、パ
イプライン、メモリ、多様なレジスタ、またはプログラ
ムの状態を決定するために格納され及び/または検索さ
れ、要素内のエラーの確認を容易にする。
The so-called "breakpoint" function also provides a means for identifying and preventing problems in the processor architecture or code. Breakpoint functions are often implemented in one instruction, causing the processor to suspend execution of further instructions without any form of direct intervention when normal operation is requested. Once the breakpoint instruction is executed by the pipeline, the processor suspends further processing until it receives some external signal, such as an interrupt indicating that execution should resume. During breaks, data is stored and / or retrieved to determine the state of the pipeline, memory, various registers, or programs, facilitating the identification of errors within the element.

【0006】前述したトレース及びブレークポイント機
能は、いずれも従来技術のデータプロセッサ(及び関連
システム)内に統合されてきた。トレース設備を使用す
るために、このような従来技術のアプリケーションでプ
ロセッサを使用するソフトウェアは、通常フォールト処
理手続またはデバッギングモニタープログラムとのイン
ターフェースを提供しなければならない。また、ソフト
ウェアは、多様なトレースモードをイネーブルとし、ト
レース機能を選択的にイネーブルまたは使用不可とする
ために、レジスタとレジスタの制御ビットを処理するこ
とが要求される。
Both the trace and breakpoint functions described above have been integrated within prior art data processors (and associated systems). To use the trace facility, software that uses the processor in such prior art applications typically must provide an interface with a fault handling procedure or debugging monitor program. Software is also required to process the registers and control bits of the registers to enable various trace modes and selectively enable or disable the trace function.

【0007】これら従来技術のデバイスのデバッグ機能
は、しばしばプロセッサに通常の動作を中断させ、特定
のデバッグモードまたは例外ルーチンに入ることを要求
する。このようなモードでは、プロセッサは、ノーマル
動作中のように動作しないので、(i)このようなモード
中に観測された故障は、“正常”プロセッサ動作中には
発生しないことがあり、(ii)ノーマル動作中に発生する
故障は、観測又はキャプチャーされないこともある。こ
のような点がデバッグプロセッサに関する重要な障害で
ある。
The debug capabilities of these prior art devices often require the processor to interrupt normal operation and enter a particular debug mode or exception routine. In such a mode, the processor does not behave as it would during normal operation, so (i) the failures observed during such a mode may not occur during “normal” processor operation; ) Failures that occur during normal operation may not be observed or captured. This is an important obstacle for the debug processor.

【0008】これに加えて、多くの従来技術のアプロー
チは、トレース及びブレークポイント機能の動作中にプ
ログラムの制御を提供するためにプロセッサにより実行
される内部デバッグプログラムを必要とする。このよう
な制御構造は、本質的に非常に「強制的」であり、従っ
てプロセッサのノーマル動作及びそれに関連した任意の
フォールトまたはバグを観測するのに適切でない。
In addition to this, many prior art approaches require an internal debug program executed by the processor to provide control of the program during operation of the trace and breakpoint functions. Such a control structure is very "mandatory" in nature and thus not suitable for observing normal operation of the processor and any faults or bugs associated therewith.

【0009】既存のプロセッサトレース技術に対するも
う一つの障害は、トレースに関する情報がデコードされ
る前に完全なトレースが存在しなければならないという
必要性に関するものである。特に、トレースの開始が何
らかの理由で喪失されると、トレースの残りは、トレー
スの開始時に存在する損失された情報のためデコードす
ることが出来ない。
Another obstacle to existing processor trace technology relates to the need for a complete trace to be present before information about the trace can be decoded. In particular, if the start of the trace is lost for any reason, the rest of the trace cannot be decoded due to the lost information present at the start of the trace.

【0010】さらに、トレースデータが膨大な量のメモ
リ空間を消費するため、既存のトレース手法に関連した
オンチップメモリの要件は高くなる。同様に、トレース
データをチップ外に伝送するのに多大な帯域幅が必要で
あり、このため、トレース動作の速度が低下し、データ
用の膨大な量のチップバッファリングを必要とする。
Moreover, since trace data consumes a huge amount of memory space, the on-chip memory requirements associated with existing trace techniques are high. Similarly, transmitting trace data off-chip requires a large amount of bandwidth, which slows down the trace operation and requires a huge amount of chip buffering for the data.

【0011】したがって、正確で且つ非強制的なトレー
ス及びデバッグ機能を提供する一つ以上のデータプロセ
ッサで使用するための改善されたトレースの構造及び方
法に対する必要性が存在する。このような構造と方法
は、最小限のチップメモリと帯域幅要件をもって、リア
ルタイム観測を可能にし、PC、メモリ及び命令の周期実
行に関連したイベントを含む、一つ以上のプロセッサ内
の重要なイベントの複製を可能にするはずである。この
ような改善された構造及び方法は、構成において非常に
柔軟性があるので、ユーザーは、トレースを特定アプリ
ケーションに適応させることが可能になる。
Accordingly, there is a need for improved trace structures and methods for use with one or more data processors that provide accurate and non-forced trace and debug capabilities. Such structures and methods enable real-time observations with minimal chip memory and bandwidth requirements, and significant events in one or more processors, including events related to PC, memory, and periodic execution of instructions. Should be possible to duplicate. Such improved structures and methods are very flexible in configuration, allowing the user to tailor the trace to a particular application.

【0012】[0012]

【発明を解決するための手段】本発明の第1の態様にお
いて、一つ以上のデジタルプロセッサデバイスからデー
タトレースを獲得し格納するための改善された装置が開
示される。例示的な一実施形態において、この装置は、
プロセッサ(単数又は複数)と関連した少なくとも一つ
のトレース要素であり、プロセッサ(単数又は複数)の
動作と関連した多数のトレースデータを生成するように
適用された少なくとも一つのトレース要素と、デバッグ
または他のデータポートと、前記ポート及びプロセッサ
(単数又は複数)とデータ通信するホストデバイスであ
って、トレース要素(単数又は複数)により生成された
多数のトレースデータを格納するように適用されるホス
トデバイスとを含む。また、データバッファが提供され
る、トレースデータは、ホストデバイスに読み取られて
出力される前に、このデータバッファに一時的に格納さ
れる。第2の例示的な実施形態において、この装置は、
第2のデータポート(たとえば、“パケット”ポート)を
介してトレース要素とデータ通信するデータキャプチャ
ー/アナライザーユニットをさらに含む。
SUMMARY OF THE INVENTION In a first aspect of the invention, an improved apparatus for acquiring and storing data traces from one or more digital processor devices is disclosed. In one exemplary embodiment, the device is
At least one trace element associated with the processor (s), the debug element or the like having at least one trace element adapted to generate a number of trace data associated with the operation of the processor (s); A data port and a host device in data communication with said port and processor (s), the host device adapted to store a number of trace data generated by trace element (s). including. Also, a data buffer is provided, the trace data is temporarily stored in this data buffer before being read and output by the host device. In a second exemplary embodiment, the device is
Further included is a data capture / analyzer unit in data communication with the trace element via a second data port (eg, a "packet" port).

【0013】本発明の第2の態様において、改善された
集積回路デバイスが開示される。このデバイスは、一般
的に多数の論理ゲートが形成された一つ以上のダイ(di
e)(たとえばシリコンまたは同等な半伝導性基板)を含
む。例示的な一実施形態において、このデバイスは、少
なくとも一つのプロセッサコア、少なくとも一つのトレ
ースユニット、少なくとも一つのプロセッサコアとデー
タ通信するデバッグポートと、トレースユニットとデー
タ通信するパケットポートとが配列された単一のダイIC
(ASICまたはFPGAなど)を含む。また、関連メモリポート
を備えたメモリコントローラーが提供されるが、このよ
うなメモリコントローラーは、プロセッサコアとデータ
通信する。
In a second aspect of the invention, an improved integrated circuit device is disclosed. This device typically includes one or more dice (di
e) (eg silicon or equivalent semiconducting substrate). In an exemplary embodiment, the device is arranged with at least one processor core, at least one trace unit, a debug port in data communication with the at least one processor core, and a packet port in data communication with the trace unit. Single die ic
Includes (such as ASIC or FPGA). Also provided is a memory controller with associated memory ports, such memory controller being in data communication with the processor core.

【0014】第2の例示的な実施形態において、ICデバ
イスは、多数のプロセッサコアとトレースユニットとを
含み、トレースユニットと通信するマルチコアトレース
インターフェース(MTI)をさらに含み、MTIは、多数のト
レースユニット(及び関連プロセッサコア)を仲裁し、デ
バイス上に配置されたより少ない数(例えば1つ)のパケ
ットポートとインターフェースする。このデバイスは、
より少ない数のデバッグポート(及び関連デバッグプロ
グラムホスト)とノーマルチコア/トレースユニットイン
ターフェースを許容するマルチコアデバッグインターフ
ェース(MDI)デバイスをさらに含む。
In a second exemplary embodiment, the IC device includes a number of processor cores and a trace unit, and further includes a multicore trace interface (MTI) in communication with the trace unit, the MTI being the number of trace units. Arbitrate (and associated processor cores) to interface with a smaller number (eg, one) of packet ports located on the device. This device is
It also includes a multi-core debug interface (MDI) device that allows a smaller number of debug ports (and associated debug program hosts) and no multi-core / trace unit interfaces.

【0015】本発明の第3の態様において、プログラム
の実行中に一つ以上のプロセッサからトレースデータを
獲得する方法が開示される。この方法は、概略的に、プ
ロセッサからデータを受信するように適用されたトレー
スユニットを提供することと、受信されたデータに基づ
いてプロセッサの動作に関連した多数のパケットを生成
することと、多数のパケットのうち少なくとも一部を格
納デバイスに格納することと、プロセッサの動作に関連
した情報を得るために格納されたパケットの少なくとも
一部を分析することを含む。例示的な一実施形態におい
て、トレースユニットは、プロセッサの動作の多様な他
の態様に関連した4種類の明確なトレース(すなわち、
命令、データ、タイミング及び雑多な、または選択的な
命令、データ、イベント及びタイミングトレース)の生
成のために適用される。一つ以上の内部モニターは、ト
レースユニットに提供するためのプロセッサデータの獲
得を制御する。トレースユニットは、モニターされてい
るプロセッサから受信された入力(たとえば、トレース
ユニットのレジスタ空間に対する記録)と、選択的な外
部及びユーザー入力に基づいてOFF、RUN及びTRIGGERED
動作状態間で転換される。トレースユニットにより生成
されたパケットは、情報の形態及び生成されるトレース
と、ユーザー/設計者から受信された他の入力によって
固有にフォーマットされ、格納デバイスから提供される
パケットストリームの後続の分析を容易にする。
In a third aspect of the invention, a method of acquiring trace data from one or more processors during program execution is disclosed. The method generally comprises providing a trace unit adapted to receive data from the processor, generating a number of packets associated with the operation of the processor based on the received data, and Storing at least some of the packets in the storage device and analyzing at least some of the stored packets to obtain information related to the operation of the processor. In one exemplary embodiment, the trace unit includes four distinct traces (ie,
Applied to the generation of instructions, data, timing and miscellaneous or selective instructions, data, events and timing traces. One or more internal monitors control the acquisition of processor data for provision to the trace unit. The trace unit is OFF, RUN and TRIGGERED based on inputs received from the processor being monitored (for example, records to the trace unit register space) and selective external and user inputs.
Switched between operating states. The packets generated by the trace unit are uniquely formatted by the morphology of the information and the traces generated and other inputs received from the user / designer to facilitate subsequent analysis of the packet stream provided by the storage device. To

【0016】本発明の第4態様において、前述した一つ
以上のトレースと関連したデータを圧縮するための改善
された方法及び装置が開示される。このような圧縮の使
用は、必要なバッファサイズ及び必要なトレースピンの
帯域幅(格納費用)を有利に減少させる。例示的な一実施
形態において、可変長エンコード技術が使用され、頻度
値の決定されたまたは予め格納された確率分布に基づい
て、高い頻度の値を表すために、制限されたサイズのコ
ードが使用され、低い頻度の値を表すために、大きいコ
ードが使用される。一つの変形した実施形態において、
データの多数の“ニブル(nibble) ” (たとえば4ビッ
ト)としてRTTコードが選択される。
In a fourth aspect of the invention, an improved method and apparatus for compressing data associated with one or more of the traces described above is disclosed. The use of such compression advantageously reduces the required buffer size and the required trace pin bandwidth (storage cost). In one exemplary embodiment, a variable length encoding technique is used where a limited size code is used to represent high frequency values based on a determined or pre-stored probability distribution of frequency values. Large codes are used to represent low frequency values. In one modified embodiment,
The RTT code is selected as the number of "nibbles" (eg, 4 bits) of data.

【0017】第2の実施形態において、或る値の一部分
だけを格納するためにデルタエンコーディングが使われ
る。この格納された部分は、トレースにおいて以前にエ
ンコードされた値の参照のために使われる。参照値と他
のニブル(すなわちデルタ)だけがエンコードされる。
In the second embodiment, delta encoding is used to store only a portion of a value. This stored portion is used in the trace for reference to the previously encoded value. Only the reference value and other nibbles (ie deltas) are encoded.

【0018】第3の実施形態において、ランレングス(r
un-length)エンコードが使われる。このような実現法に
おいて、それぞれの個別イベントを別途に確認し格納す
る反面、繰り返されるイベントは、確認し且つカウント
する。このような技術は、同一形態のイベントのシーケ
ンスまたは実行が存在する時に最も有用である。
In the third embodiment, the run length (r
un-length) encoding is used. In such an implementation, each individual event is separately identified and stored, while repeated events are identified and counted. Such techniques are most useful when there are sequences or executions of the same type of event.

【0019】第4の実施形態において、ソース-コード
参照技術が採用される。このような実現法において、コ
ンパイルされたソースコードのテストにより誘導され得
る情報は格納されないので、格納の諸経費を減少させ
る。
In the fourth embodiment, the source-code reference technique is adopted. In such an implementation, no information that can be derived by testing the compiled source code is stored, thus reducing storage overhead.

【0020】本発明の第5の態様において、データパケ
ットローディングの改善された方法が開示される。一実
施形態において、データニブルのビットは、望ましい処
理特性を生成するために所定値に詰め込まれる。
In a fifth aspect of the present invention, an improved method of data packet loading is disclosed. In one embodiment, the bits of the data nibble are padded to a predetermined value to produce the desired processing characteristics.

【0021】本発明の第6の態様において、前述したト
レースユニットに使用するための改善されたモニター構
造が開示される。
In a sixth aspect of the present invention, an improved monitor structure for use in the aforementioned trace unit is disclosed.

【0022】本発明の第7の態様において、前述したト
レースユニットに使用するための改善されたパケットポ
ート構造が開示される。
In a seventh aspect of the present invention, an improved packet port structure for use in the aforementioned trace unit is disclosed.

【0023】[0023]

【発明の実施の形態】以下、図面を参照して説明する。
図面において同じ参照番号は同一の要素を示す。
DETAILED DESCRIPTION OF THE INVENTION A description will be given below with reference to the drawings.
Like reference numerals in the drawings denote like elements.

【0024】ここで使われる用語“プロセッサ”は、本
発明の譲受人により製作されたARCtangentとARCompact
のユーザー構成が可能な、コアのような縮小命令セット
コア(RISC)プロセッサ、中央処理ユニット(CPUs)、及び
デジタル信号プロセッサ(DSPs)を含むが、これに限定さ
れず、少なくとも一つの命令ワードで動作を遂行でき
る、任意の集積回路または他の電子デバイス(またはデ
バイスの集合)を含むことを意味する。このようなデバ
イスのハードウェアは、単一基板(たとえばシリコンダ
イ)上に集積されることができ、又は二つ以上の基板間
で分散されることができる。さらに、プロセッサの多様
な機能的な特性は、プロセッサと関連したソフトウェア
またはファームウエアとして単独で実現されることがで
きる。
As used herein, the term "processor" refers to ARCtangent and AR Compact manufactured by the assignee of the present invention.
User-configurable, reduced instruction set cores (RISC) processors such as cores, central processing units (CPUs), and digital signal processors (DSPs), including but not limited to at least one instruction word. It is meant to include any integrated circuit or other electronic device (or collection of devices) that is capable of performing an operation. The hardware for such devices can be integrated on a single substrate (eg, a silicon die) or distributed between two or more substrates. Moreover, various functional characteristics of a processor may be implemented solely as software or firmware associated with the processor.

【0025】ARCtangentプロセッサは、ASIC、システム
・オン・チップ(SoC)、及びFPGA集積のためのユーザー
カスタマイズ可能な32ビットRISCコアである。これ
は、合成、構成かつ拡張が可能なので、デベロッパー
は、構造を特定アプリケーションによって一層適切に変
更し拡張することができる。ARCtangentマイクロプロセ
ッサは、4つのステージの実行パイプラインを備えた3
2-ビットRISC構造を含む。命令セット、レジスタファ
イル、条件コード、キャシュ、バス、及び他の構造上の
特性は、ユーザー構成可能で、且つ拡張可能である。マ
イクロプロセッサは、32×32ビットのコアレジスタ
ファイルを備え、これは、アプリケーションが必要とす
れば倍加されることができる。これに加えて、多数の補
助レジスタ(2E32まで)を使用することができる。こ
のようなプロセッサコアの機能要素は、演算論理回路(A
LU)、レジスタファイル(たとえば32×32)、プログ
ラムカウンタ(PC)、命令フェッチ(i-fetch)インターフ
ェース論理回路と共に多様なステージラッチを含む。
The ARCtangent processor is a user-customizable 32-bit RISC core for ASIC, system on chip (SoC), and FPGA integration. It is compositable, configurable and extensible, allowing developers to modify and extend the structure more appropriately for their particular application. The ARCtangent microprocessor has a three-stage execution pipeline with three
Includes 2-bit RISC structure. Instruction sets, register files, condition codes, caches, buses, and other structural features are user configurable and extensible. The microprocessor comprises a 32x32 bit core register file, which can be duplicated if the application requires it. In addition, a number of auxiliary registers (up to 2E32) can be used. The functional elements of such a processor core are arithmetic logic circuits (A
LU), register file (eg, 32 × 32), program counter (PC), instruction fetch (i-fetch) interface logic circuit and various stage latches.

【0026】ARCompactは、設計者に対して32-ビット
のユーザー構成可能なプロセッサ上で16及び32ビッ
ト命令が混合されることを許容する一つの革新的なプロ
セッサ及び命令セット構造(ISA)である。ISAの主要長所
は、SoC(システム・オン・チップ)上のメモリ要件を著
しく減少させて、無線通信及び大量の家電製品のような
広く使われるアプリケーションで低い電力消耗と低いコ
ストのデバイスを実現する能力である。
ARCompact is an innovative processor and instruction set structure (ISA) that allows designers to mix 16 and 32-bit instructions on a 32-bit user-configurable processor. . ISA's key strength is to significantly reduce memory requirements on SoCs (system-on-chip) to enable low power consumption and low cost devices in widely used applications such as wireless communications and high volume home appliances. Ability.

【0027】また、次の説明がVHSICハードウェーア記
述言語(VHDL)に基づく設計合成を言及するが、Verilog
のような他のハードウェア記述言語(HDL)が本発明の多
様な実施形態を成功的に記述するために使用され得るこ
とに注目する必要がある。さらに、デザイン コンパイ
ラ 2000(DC00)のような一つの例示的なSynopsys
合成エンジンが今まで説明した多様な実施形態を合成す
るために使われるが、特にカデンス(Cadence)設計シス
テム社から取得可能なBuildgatesのような他の合成エン
ジンが使われることができる。IEEE標準1076・3-
1997、IEEE標準VHDL合成パッケージは、当業者に有
用であると予見できるハードウェア記述言語基盤の設計
及び合成性能を規定するための産業-許容言語を記述す
る。
Also, while the following description refers to design synthesis based on the VHSIC Hardware Description Language (VHDL), Verilog
It should be noted that other hardware description languages (HDLs) such as can be used to successfully describe various embodiments of the present invention. In addition, one exemplary Synopsys, such as Design Compiler 2000 (DC00)
Although the synthesis engine is used to synthesize the various embodiments described thus far, other synthesis engines such as Buildgates, which are specifically available from Cadence Design Systems, Inc., can be used. IEEE Standard 1076-3-
1997, IEEE Standard VHDL Synthesis Package, describes an industry-acceptable language for defining the design and synthesis performance of hardware description language platforms that can be foreseen by one of ordinary skill in the art.

【0028】概要 本発明のリアルタイムトレース(RTT)装置及び方法は、
プログラムの実行中に1つのプロセッサ(または多数の
プロセッサ)の非強制的な観測支援を提供する。例示的
な一実施形態において、RTTは、4種類の明確な形態の
トレース情報、すなわち(i)命令トレース、(ii)データ
トレース、(iii)タイミングトレース、(iv)雑多なトレ
ースを捕捉する。
Overview A real-time trace (RTT) device and method of the present invention comprises:
It provides non-forced observation support for one processor (or multiple processors) during program execution. In one exemplary embodiment, RTT captures four distinct forms of trace information: (i) instruction trace, (ii) data trace, (iii) timing trace, and (iv) miscellaneous trace.

【0029】命令トレースは、プロセッサ内で命令の流
れをトレースするためにプログラムカウンタ(PC)の進行
を記録する。データトレースは、ロード/ストアメモリ
アドレスとメモリデータを記録する。タイミングトレー
スは、命令実行の周期を記録する。雑多なトレースは、
トレース機能性に該当する、選択されたプロセッサ状態
の変化を記録する。
The instruction trace records the progress of the program counter (PC) to trace the flow of instructions within the processor. The data trace records load / store memory addresses and memory data. The timing trace records the cycle of instruction execution. Miscellaneous traces are
Record selected processor state changes that correspond to trace functionality.

【0030】本発明において、トレース情報は、例えば
一つ以上の“ニブル”を含む可変長パケット形態でエン
コードされる。以下で調査されるプロセスに固有な構造
を条件として他の数のビットの増加でうまく代替できる
としても、ここで使われる用語“ニブル”は、4ビット
よりなる1セットを言及する。可変長パケットは、当業
界によく知られた一般的な形態のチップ上のバッファメ
モリに格納される。しかし、バッファメモリは、パケッ
トをRTTパケットポートとデバッグポートの両者を介し
て伝送するために適用される。バッファメモリは、いか
なる時点でもバッファが完全に満たされることを避ける
ように、RTTパケットポートやデバッグポートを使用し
てパケットを「放出(drain)」する。本発明は、バッフ
ァのサイズ/格納容量、RTTパケットポートのためのピン
数(必要に応じて0に設定できる)、RTTパケットポート
ピンが専用または他の機能との共有(たとえば汎用I/O)
であるか、及びパケットポートと関連したクロック周波
数を含む、RTT及びバッファ構成に関連した多数のパラ
メータを、設計者が選択するのに有利である。クロック
出力ピンを駆動するクロック信号がASIC上の他のデバイ
スまたはピンから導出されることがないならば、パケッ
トポートクロック出力ピンが利用できる。
In the present invention, the trace information is encoded in the form of a variable length packet containing, for example, one or more "nibbles". The term "nibble" as used herein refers to a set of 4 bits, even though other increases in the number of bits may be successfully substituted, subject to the process-specific structure investigated below. The variable length packets are stored in a buffer memory on chip, which is a general form well known in the art. However, buffer memory is applied to transmit packets through both the RTT packet port and the debug port. The buffer memory "drains" packets using the RTT packet port and debug port to avoid filling the buffer completely at any time. The present invention provides buffer size / storage capacity, number of pins for the RTT packet port (which can be set to 0 if desired), RTT packet port pins dedicated or shared with other functions (eg general purpose I / O).
, And it is advantageous for the designer to select a number of parameters related to the RTT and buffer configuration, including the clock frequency associated with the packet port. Packet port clock output pins are available if the clock signals driving the clock output pins are not derived from other devices or pins on the ASIC.

【0031】次に、さらに以下で記述される例示的な一
実施形態において、本発明のRTTユニットは、次の特性
を持ってトレースを生成する。(i)全ての通常のフード
のシーケンスがキャプチャーされる、(ii)実行プログラ
ムのコンパイルされたソースコードが参照可能ならば
(一般に、自己変更コードはこのような要件に合わない
ので、サポートされない)、プログラムの流れは、命令
トレースから再構成され得る、(iii)キャプチャー、圧
縮及び送信方法は、トリガリングまたはフィルタリング
にいかなる制限をも加えない、(iv)トレース情報は、
(チップ上のまたはチップ外の)限定されたメモリに格納
される。もしメモリが満杯となると、新しいトレース情
報が格納されるように、古くなったトレース情報が廃棄
される(すなわちFIFO)か、より最近のトレース情報が優
先的に廃棄され(すなわち、LIFO)、またはトレースがブ
レークされる、(v)トレースをチップ外に伝達するため
の必要帯域幅を最小化させ、チップ上の及び/またはチ
ップ外のメモリの必要サイズを最小化させるために、ト
レースは有利に圧縮される。RTTsのためにイネーブルな
ピンが足りない後で記述される図22のような多重RTTs
(マイクロプロセッサ)を備える装置にとって帯域幅を最
小化させることが特に重要になる、(vi)このトレース
は、トレースの開始が失なわれるとしてもデコードされ
る、(vii)多重プロセッサコアを備えたデバイスがサポ
ートされる。
Next, in an exemplary embodiment, described further below, the RTT unit of the present invention produces a trace with the following characteristics. (i) All normal hood sequences are captured, (ii) If the compiled source code of the executable is visible
(Generally, self-modifying code does not meet such requirements, so it is not supported), program flow can be reconstructed from instruction traces, (iii) capture, compression and transmission methods do not rely on triggering or filtering. (Iv) Trace information that does not impose any restrictions
Stored in limited memory (on-chip or off-chip). If the memory is full, obsolete trace information is discarded (i.e.FIFO) so that new trace information is stored, or more recent trace information is preferentially discarded (i.e.LIFO), or Traces are broken, (v) traces are advantageously used to minimize the bandwidth required to transfer the traces off-chip and to minimize the required size of on-chip and / or off-chip memory. Compressed. Multiple RTTs as shown in Fig. 22 described after there are not enough pins enabled for RTTs
Bandwidth minimization is especially important for devices with (microprocessors), (vi) this trace is decoded even if the start of the trace is lost, (vii) with multiple processor cores. The device is supported.

【0032】本発明のRTTはユーザーが選択可能な多く
の選択事項を含むが、これらの一部は、コアまたはASIC
/FPGAの構成時(“build-time”)に設定され、他のもの
は、構成コア/RTT(s)の実行時に設定される。デバイス
の設計者は、設計構成と関連したレジスタトランスファ
言語(RTL)のソースコードでパラメータ(例えば常数)を
編集することによって、または設置工程の途中で構成パ
ラメータをセットすることで、またはこれら両方を行な
うことによって、構成時のオプションを設定する。デバ
イスユーザーは、RTTの補助レジスタを記録するプロセ
ッサ上のプログラムを実行することによって、または補
助レジスタに記録する外部ホストを備えたデバッグポー
トを使用することによって、実行時のオプションを設定
する。プロセッサ(たとえばARC)によるRTT補助レジスタ
に対する記録は、一実施形態でロック(lock)メカニズム
により資格が与えられる。このようなロックメカニズム
は、プロセッサプログラムが偶然にRTTレジスタに記録
しないことを保障する。大部分の実行時オプションは、
ユーザーに対するインターフェースを単純化するため
に、ホストまたは外部キャプチャーデバイス上に常駐す
るデバッグプログラムにより自動的に処理される。
The RTT of the present invention includes many user-selectable choices, some of which are core or ASIC.
/ FPGA is set when configuring (“build-time”), others are set when running the configuration core / RTT (s). Device designers can edit the parameters (e.g. constants) in the register transfer language (RTL) source code associated with the design configuration, or set configuration parameters during the installation process, or both. By doing so, you set the configuration options. The device user sets run-time options by running a program on the processor that records the auxiliary registers of the RTT, or by using the debug port with an external host to record the auxiliary registers. Records to the RTT auxiliary registers by the processor (eg, ARC) are qualified by a lock mechanism in one embodiment. Such a locking mechanism ensures that the processor program does not accidentally record in the RTT register. Most run-time options are
It is handled automatically by a debug program residing on the host or external capture device to simplify the interface to the user.

【0033】したがって、本発明に係る一つの例示的な
RTTシステムは、4個の主機能ユニットを含む。すなわ
ち、(i)既存のコア設計に統合される合成可能な論理ブ
ロック、(ii)ホスト制御インターフェースを備えたデー
タキャプチャーハードウェア、(iii)キャプチャーセッ
ションを構成し、結果を見るためのグラフィックユーザ
ーインターフェース、及び(iv)キャプチャーハードウェ
アとGUI間をインターフェースするためのソフトウェア
ドライバーである。
Accordingly, one exemplary embodiment of the present invention
The RTT system contains four main functional units. That is, (i) synthesizable logic blocks integrated into an existing core design, (ii) data capture hardware with a host control interface, (iii) a graphical user interface for configuring the capture session and viewing the results. And (iv) a software driver for interfacing between the capture hardware and the GUI.

【0034】単一プロセッサの構成 図1を参照して、本発明のRTT装置の第1の例示的な実
施形態を詳細に記述する。次の論議が基本的に単一のRI
SCに基づくプロセッサコア構成の概念でなされるが、多
くの特性及び属性が装置の他の構成(図22に関して本
明細書の後で記述されるマルチコアの例のような)及び
形態(たとえばDSPコア、CISC等)に直接適用される。
Single Processor Configuration Referring to FIG. 1, a first exemplary embodiment of the RTT device of the present invention will be described in detail. The following discussion is basically a single RI
Although made in the concept of an SC-based processor core configuration, many characteristics and attributes are present in other configurations of the device (such as the multi-core example described later in this specification with respect to FIG. 22) and morphology (eg, DSP core). , CISC, etc.).

【0035】図1に示すように、装置100は、一般的
にRTTユニット102、プロセッサコアユニット105
及びメモリコントローラー117を含む特定用途集積回
路ASICまたは現場プログラムが可能なゲートアレイFPGA
のような集積回路デバイス101(または多重分散デバ
イス)を含む。装置100は、デバッグポート/インター
フェース107、メモリポート/インターフェース11
3、及びパケットポート109をさらに含む。RTTユニ
ット102は、トレースキャプチャーユニット140、
モニターユニット142、生成ユニット144、制御ユ
ニット146及び共有バッファ112を含む多様な機能
ユニットを含む。プロセッサ状態情報は、一般的にプロ
セッサコアユニット105からキャプチャー及びモニタ
リングユニット140、142に直接流れ、制御ユニッ
ト146へは、アクションポイントトリガー生成器14
8を介して非直接的に流れる。補助レジスタ読出/書込
動作は、図1に示すように、プロセッサコアユニットコ
ア131とRTT制御ユニット146との間で直接的に行
われる。制御ユニット146は、RTTユニット102の
動作を制御するために使われる補助レジスタ及び状態マ
シンを含む。トレースキャプチャーユニット140は、
プロセッサ状態情報をコアユニット105(および、外
部入力インターフェース160を介してプログラムカウ
ンタ、条件コードレジスタ及び他のプロセッサ状態情報
のような任意の外部入力)から受信し、イネーブルとさ
れたトレースの形態に関する変化を検出し、RTTモニタ
リングユニット142に入力されるトレース信号152
を生成する。モニタリングユニット142は、トレース
情報を生成ユニット144に伝送する前に、これをダイ
ナミックにフィルタリングする。また、モニタリングユ
ニットは、以下で詳細に記述するように、RTT内の多様
な機能を実現させるために、RTT制御ユニット146に
伝達されるトリガー及び/またはイネーブルな信号を生
成する。
As shown in FIG. 1, a device 100 generally comprises an RTT unit 102, a processor core unit 105.
-Specific integrated circuit ASIC or field programmable gate array FPGA including memory controller 117 and memory controller 117
Such integrated circuit device 101 (or multiple distributed device) is included. The device 100 includes a debug port / interface 107 and a memory port / interface 11
3 and a packet port 109. The RTT unit 102 is a trace capture unit 140,
It includes various functional units including a monitor unit 142, a generation unit 144, a control unit 146 and a shared buffer 112. Processor state information generally flows directly from the processor core unit 105 to the capture and monitoring units 140, 142 and to the control unit 146 to the action point trigger generator 14.
Indirectly through 8. The auxiliary register read / write operation is directly performed between the processor core unit core 131 and the RTT control unit 146, as shown in FIG. The control unit 146 includes auxiliary registers and state machines used to control the operation of the RTT unit 102. The trace capture unit 140 is
Changes in the form of traces that receive processor state information from the core unit 105 (and any external inputs such as program counters, condition code registers and other processor state information via the external input interface 160). The trace signal 152 that is detected and is input to the RTT monitoring unit 142.
To generate. The monitoring unit 142 dynamically filters the trace information before transmitting it to the generating unit 144. The monitoring unit also generates a trigger and / or enable signal that is communicated to the RTT control unit 146 to implement various functions within the RTT, as described in detail below.

【0036】モニタリングユニット142は、トレース
信号152を生成ユニット144に提供し、生成ユニッ
トは、内部状態情報(例えばカウンタ)を更新することに
よって、またはパケットを生成することによってトレー
ス情報を記録する。パケットは、後で記述されるプロト
コルによって生成され、RTTの共有バッファ112に提
供される。共有バッファ112は、半導体業界でよく知
られた形態のバッファメモリを含み、パケットがキャプ
チャーデバイス(以下で詳細に記述)によりパケットポー
ト109(または他に、以下で詳細に記述する“内部”
モード動作を使用するデバッグポート)を介して「放出
(drain)」される時まで、生成ユニット144により生
成されたパケットを格納する。オーバーフローインター
ラプト信号は(たとえば“漏水(high water) ”マークま
たはバッファ内に存在する他の条件に基づいて)バッフ
ァ112により生成され、コアユニット105のインタ
ーラプトコントローラー133に提供されるが、ここで
コア131のパイプラインは、選択的に停止されるか、
そうでない場合、バッファオーバーフロー条件を減少あ
るいは緩和するようにコアの動作が変更される。
The monitoring unit 142 provides the trace signal 152 to the generation unit 144, which records the trace information by updating internal state information (eg counters) or by generating packets. The packet is generated by the protocol described later and provided to the RTT shared buffer 112. The shared buffer 112 includes a buffer memory of a form well known in the semiconductor industry to allow packets to be captured by the capture device (described in detail below) in the packet port 109 (or, alternatively, an "internal" described in detail below).
"Emission via debug port (using mode operation)
The packet generated by the generation unit 144 is stored until it is “drained”. The overflow interrupt signal is generated by buffer 112 (eg, based on a “high water” mark or other condition present in the buffer) and provided to interrupt controller 133 of core unit 105, where The core 131 pipeline is selectively stopped, or
If not, the behavior of the core is modified to reduce or mitigate buffer overflow conditions.

【0037】命令トレース、データトレース及びタイミ
ングトレースは個別的に、静的に、そしてダイナミック
にイネーブルとされる。イネーブルとされるためには、
これらは静的にイネーブルとされ、かつダイナミックに
イネーブルとされる必要がある。第4のトレース(雑多
な)は、静的にのみイネーブルとされる。あらゆるイネ
ーブルビットは、図1に示すように、制御ユニット14
6に格納される。静的イネーブルビットは、ユーザーに
より記録され、ダイナミックイネーブルビットは、モニ
ターユニット142またはユーザーにより記録される。
The instruction trace, data trace and timing trace are individually, statically and dynamically enabled. To be enabled,
These need to be statically enabled and also dynamically enabled. The fourth trace (Miscellaneous) is only statically enabled. Every enable bit, as shown in FIG.
6 is stored. The static enable bits are recorded by the user, and the dynamic enable bits are recorded by the monitor unit 142 or the user.

【0038】単一構成または多重プロセッサ構成のいず
れにおいても、本発明のRTTは、内部及び外部の2種類
の格納モードを使用する。モードは、後で詳細に記述す
るように、RTT共有バッファが放出する方法を決定す
る。RTTの格納モードは、ユーザーインターフェースを
介し又はデバイスに対する一つ以上の入力を介して、ユ
ーザーにより制御される。
In either a single configuration or a multiprocessor configuration, the RTT of the present invention uses two storage modes, internal and external. The mode determines how the RTT shared buffer emits, as described in detail below. The storage mode of the RTT is controlled by the user via the user interface or via one or more inputs to the device.

【0039】(i) 内部格納モード−図2を参照して、
“内部”格納モードで動作するように構成された本発明
の第1の例示的な実施形態が記述される。図2に示すよ
うに、装置200は、図1を参照して本明細書で前述し
たもので、少なくとも一つのプロセッサコア105と少
なくとも一つのRTTユニット102とを統合するASICま
たはFPGAのような集積回路デバイス101を含む。集積
回路デバイス101は、コンピュータ業界でよく知られ
た通り、回路ボード203(例えばマザーボードまたは
開発ボード)上に配置される。外部ホスト211は、デ
バッグプログラム(例えばSee Codeデバッガー)を駆動さ
せるが、プログラムは、デバイス101のデバッグポー
ト107を用いてプロセッサコア105とRTT102の
レジスタを読出しこれらに書込む。図示された実施形態
において、ホスト211は、パーソナルまたはデスクト
ップコンピュータを含み、ラップトップコンピュータ、
ネットワーク化されたミニコンピュータ、または携帯型
コンピュータまたはPDAのような携帯型デバイスを含む
他のデバイスをも成功的に使われることができる。さら
に他の代案として、ホスト211は、同一基板や他の基
板に配置された、該当技術分野でよく知られた形態のマ
イクロプロセッサ(たとえばインテルのペンティアム
(登録商標)IIIまたはIVシリーズ、またはAMDのK-シリ
ーズデバイス)のような他のプロセッサまたはプロセッ
サの集合を含むことができる。デバッグポート107
は、事実上、本出願の譲受人により共通的に提供される
“標準デバッグポート(たとえばIEEE 標準 1149 J
TAG、または並列ポート)または消費者/ユーザーにより
提供される他のポート構成のようないかなる構成でもな
されることができる。本発明は、標準配線によるデータ
経路、無線インターフェース、または光伝導体をも含む
任意の数の技術を使用してホスト211とデバイス10
1のデバッグポート107間のデータ伝達を観測できる
が、データ通信技術は、周知であり、したがってここで
はさらに説明しない。
(I) Internal storage mode --with reference to FIG.
A first exemplary embodiment of the invention configured to operate in an "internal" storage mode is described. As shown in FIG. 2, the device 200 is as previously described herein with reference to FIG. 1, and is an integrated circuit such as an ASIC or FPGA that integrates at least one processor core 105 and at least one RTT unit 102. The circuit device 101 is included. Integrated circuit device 101 is located on circuit board 203 (eg, a motherboard or development board), as is well known in the computer industry. The external host 211 drives a debug program (for example, See Code debugger), and the program reads the registers of the processor core 105 and the RTT 102 using the debug port 107 of the device 101 and writes them. In the illustrated embodiment, the host 211 includes a personal or desktop computer, a laptop computer,
Other devices, including handheld devices such as networked minicomputers, or handheld computers or PDAs can also be successfully used. As yet another alternative, the host 211 may be a microprocessor of a well-known form in the art (eg, Intel's Pentium® III or IV series, or AMD's, located on the same board or another board). Other processors or collections of processors, such as K-series devices). Debug port 107
Are effectively provided by the assignee of the present application as a "standard debug port (eg IEEE standard 1149 J
TAG, or parallel port) or any other port configuration provided by the consumer / user. The present invention uses any number of techniques, including standard wiring data paths, wireless interfaces, or even photoconductors, for host 211 and device 10.
Although data transfer between debug ports 107 of 1 can be observed, data communication techniques are well known and therefore will not be described further here.

【0040】内部格納モードにおいて、デバイス101
に連結した共有バッファ112は、リアルタイムで放出
されず、デバイスに連結したパケットポートは使われな
い。むしろバッファ112は、デバッグポート107を
介してRTTレジスタを読出す外部ホスト211によりト
レースがキャプチャーされた後、放出される。他に、ト
レースされるプロセッサコア105は、共有バッファ1
12からのパケットの放出を実行させるためにRTTレジ
スタを読出すことができる。
In the internal storage mode, the device 101
The shared buffer 112 connected to the device is not released in real time, and the packet port connected to the device is not used. Rather, the buffer 112 is released after the trace is captured by the external host 211 reading the RTT register via the debug port 107. In addition, the traced processor core 105 is shared buffer 1
The RTT register can be read to effect the release of packets from 12.

【0041】(ii)外部格納モード−図3を参照して本発
明の外部格納モードが記述される。外部格納モードにお
いて、共有バッファ112は、パケットポートを介して
外部キャプチャーデバイス320にリアルタイムで放出
される(図2の内部モードにおいてホスト211による
バッファの非リアルタイム放出とは異なる)。バッファ
112が新しいトレース情報の獲得/記録に追随できる
のに充分な速さで放出できないとは、2種類の基本的な
オプションが存在する。すなわち、(i)バッファのオー
バーフローは許容され、オーバーフローされたデータは
失なわれる、または(ii)新しいデータ生成の率を減少さ
せるように、プロセッサコアパイプラインが図1のオー
バーフローインターラプト論理を介して停止する。これ
らのオプションは、ユーザー(または設計者)により適し
たものとして選択される。外部キャプチャーデバイス3
20は、全トレースを格納するように構成され得るが、
通常はトレースの一部だけを格納し、初期のトレース情
報は、もはや必要とされないか適切でない時、廃棄され
る。
(Ii) External Storage Mode-The external storage mode of the present invention will be described with reference to FIG. In the external storage mode, the shared buffer 112 is ejected in real time to the external capture device 320 via the packet port (unlike the non-real time ejection of the buffer by the host 211 in the internal mode of FIG. 2). There are two basic options for the buffer 112 not being able to emit fast enough to follow the acquisition / recording of new trace information. That is, (i) buffer overflow is tolerated and overflowed data is lost, or (ii) the processor core pipeline passes through the overflow interrupt logic of Figure 1 to reduce the rate of new data generation. Stop. These options are chosen by the user (or designer) to be more appropriate. External capture device 3
20 may be configured to store all traces,
Normally only part of the trace is stored and the initial trace information is discarded when it is no longer needed or appropriate.

【0042】図2の内部格納モードのように、図3の装
置の外部ホスト211は、デバッグポート107を用い
てプロセッサコアとRTTのレジスタを読み書きする。デ
バッガー(たとえばSeeCodeプログラム)を駆動する。外
部ホスト211は、キャプチャーされたトレースをダウ
ンロードするために外部キャプチャーデバイス320と
通信する。外部ホスト211とキャプチャーデバイス3
20間の通信は、図示された実施形態では、データ通信
するホスト211内のネットワークインターフェースカ
ード(NIC)とキャプチャーデバイス320内の対応する
インターフェースアダプター(不図示)を含むIEEE 標準
802“イーサネット(登録商標)”結合を使用して達
成される。しかし、例えば、IEEE 標準 802.11aま
たは802.11bに従う無線LAN、ブルートゥースまた
は、IrDAインターフェース等を含む、ホストとキャプチ
ャーデバイス間のデータ通信の多様な他の手段が使われ
ることが出来ることを認識すべきである。外部キャプチ
ャーデバイス320は、(i)論理アナライザー、または
(ii)トレースキャプチャーユニットの他で、当分野の当
業者に公知された任意の数の他のデバイスを含むことが
できる。本発明は一つのキャプチャーデバイス320
(たとえば論理アナライザーまたはキャプチャーユニッ
ト)と動作するように適用されているが、キャプチャー
デバイス320は、特定のアプリケーションの必要に応
じて、多いか又は少ない機能を有する複数のデバイスを
含むことが出来ることを認識すべきである。一つの変形
において、論理アナライザーは、トレースデータを内部
バッファメモリ(不図示)に格納し、単純なトリガリング
を遂行し、トレースデータのフィルタリングは遂行しな
い。逆に、本発明が予定するトレースキャプチャーユニ
ットは、RTTの動作を支援するために特別に適用された
注文-設計されたユニットである。トレースキャプチャ
ーユニットは、トレースデータを格納するためにDRAMバ
ッファメモリを使用し、任意の複雑なトリガー及びフィ
ルタ機能を提供できる。
As in the internal storage mode of FIG. 2, the external host 211 of the apparatus of FIG. 3 uses the debug port 107 to read / write the processor core and RTT registers. Drive a debugger (eg SeeCode program). The external host 211 communicates with the external capture device 320 to download the captured trace. External host 211 and capture device 3
Communication between the 20 is in the illustrated embodiment an IEEE standard including a network interface card (NIC) in the host 211 for data communication and a corresponding interface adapter (not shown) in the capture device 320.
This is accomplished using 802 "Ethernet" coupling. However, it will be appreciated that a variety of other means of data communication between the host and the capture device may be used, including, for example, wireless LAN according to IEEE standard 802.11a or 802.11b, Bluetooth, or an IrDA interface. Should be. The external capture device 320 is (i) a logic analyzer, or
(ii) Besides the trace capture unit, any number of other devices known to those skilled in the art can be included. The present invention is a single capture device 320.
Although adapted to operate with (eg, a logic analyzer or capture unit), capture device 320 may include multiple devices with more or less functionality, depending on the needs of a particular application. It should be recognized. In one variation, the logic analyzer stores trace data in an internal buffer memory (not shown), performs simple triggering, and does not perform trace data filtering. Conversely, the trace capture unit envisioned by the present invention is a custom-designed unit specially adapted to support the operation of RTT. The trace capture unit uses DRAM buffer memory to store the trace data and can provide arbitrarily complex trigger and filter functions.

【0043】図1に示した実施形態のRTTユニットは、O
FF、RUN及びTRIGGEREDの3種類の動作モードのうちいず
れか1つに置かれる。リセットは、RTTユニット102
をOFF状態とする。トレースされるホストまたはプロセ
ッサコアは、RUN状態に変化させるためにRTTユニット内
の補助レジスタに書込む。トリガーの発生時、RTTユニ
ットは、TRIGGERED状態に転換する。RTTが前述した外部
格納モードにある時、RTTはパケットを生成し、外部キ
ャプチャーデバイス(たとえばアナライザーまたはトレ
ースキャプチャーユニット)に状態の変化を警告する。O
FF状態において、RTTはトレース情報を記録しない。共
有バッファ112には、何も加えられず、バッファから
何も除去・放出されず、何もパケットポート109に伝
達されない。
The RTT unit of the embodiment shown in FIG.
It is placed in one of the three operation modes of FF, RUN and TRIGGERED. Reset the RTT unit 102
Is turned off. The traced host or processor core writes to an auxiliary register in the RTT unit to change to the RUN state. When a trigger occurs, the RTT unit will transition to the TRIGGERED state. When the RTT is in the external store mode described above, the RTT will generate packets to alert the external capture device (eg analyzer or trace capture unit) of the change in state. O
In the FF state, RTT does not record trace information. Nothing is added to the shared buffer 112, nothing is removed / released from the buffer, and nothing is transmitted to the packet port 109.

【0044】外部入力信号(またはRTT内の特定のプログ
ラム可能レジスタの書込み)は、RTTユニット102をO
FFからRUNに転換させる。RUN状態でRTTは、イネーブル
とされたトレース形態に対してトレース情報を記録し、
イネーブルとされたトレースに関するパケットを共有バ
ッファ112に格納する。内部格納モードであれば、共
有バッファは新しいパケットのための空間を形成する要
求に応じて放出され、除去されたパケットは廃棄され
る。外部格納モードであれば、共有バッファ112は連
続的に放出され、除去されたパケットは、パケットポー
ト109を介して外部格納デバイスに伝送される。
An external input signal (or write to a particular programmable register in the RTT) causes the RTT unit 102 to
Switch from FF to RUN. In the RUN state the RTT records trace information for the enabled trace configurations,
Store the packets for the enabled traces in the shared buffer 112. In the internal storage mode, the shared buffer is released on demand to create space for new packets and the dropped packets are discarded. In the external storage mode, the shared buffer 112 is continuously released, and the removed packets are transmitted to the external storage device via the packet port 109.

【0045】トリガーは、RTTユニット102をRUNから
TRIGGEREDモードに転換させる。図示された実施形態に
おいて、トリガーは、(i)アクションポイントトリガー
イベント、(ii)モニタートリガーイベント、(iii)外部
入力信号イベント、または(iv)記録されたRTT制御レジ
スタイベントのうちのひとつを含む。また、本実施形態
は、一つのトリガー信号を生成するために、可能な全て
のトリガーソースを共通に論理OR演算させる。一つのト
リガーは、トレースの実行毎にただ1回発生する。した
がって、RTTユニット102は、他のトレースの実行が
開始される前にリセットされなければならない。
The trigger is to run the RTT unit 102 from RUN
Switch to TRIGGERED mode. In the illustrated embodiment, the trigger comprises one of (i) an action point trigger event, (ii) a monitor trigger event, (iii) an external input signal event, or (iv) a recorded RTT control register event. . Further, in the present embodiment, all possible trigger sources are commonly logically ORed in order to generate one trigger signal. One trigger fires only once per trace execution. Therefore, the RTT unit 102 must be reset before the execution of another trace is started.

【0046】RTTユニットが、まずTRIGGERED状態に入る
時、ユーザーは、プレ-トリガーされた共有バッファ中
のどの部分がプレ-トリガーされた履歴として保有され
るかを制御できる。仮にユーザーがトリガーイベントの
発生前(“トリガー以前”)のトレースを見ることを希望
したら、全バッファの内容が保有される。仮にユーザー
がトリガーイベント以後(“トリガー以後”)のトレース
を見ることを希望したら、共有バッファの内容のいずれ
も保有されない。仮にユーザーがトリガーの近くまたは
不規則に(“トリガー中央”)トレースを見ることを希望
したら、バッファ内容の一部(たとえば半分)だけ保有さ
れる。
When the RTT unit first enters the TRIGGERED state, the user can control which part of the pre-triggered shared buffer is retained as pre-triggered history. If the user wishes to see the trace before the trigger event occurs (“before the trigger”), the contents of the entire buffer are retained. If the user wishes to see the trace after the trigger event ("after the trigger"), none of the contents of the shared buffer will be retained. If the user wishes to see the trace near the trigger or irregularly (“trigger center”), only a portion (eg half) of the buffer content is retained.

【0047】TRIGGERED状態で、RTTユニットは、イネー
ブルとされたトレース形態に対するトレース情報を記録
し、パケットを共有バッファ112に格納する。内部格
納モードであれば、バッファは放出されず、バッファが
満杯となると、RTTユニット102は、OFF状態に転換す
る。外部格納モードであれば、バッファが連続的に放出
され、除去されたパケットがパケットポート109を介
して外部格納デバイスに伝送される。しかし、ユーザー
は、RTTユニットが格納モードであっても共有バッファ
のオーバーフロー時にRUN状態に転換するように指定す
ることができる。バッファオーバーフロー/動作モード/
状態の他の組合も本発明と符合して使われ得ることを認
識すべきである。
In the TRIGGERED state, the RTT unit records the trace information for the enabled trace configurations and stores the packet in the shared buffer 112. In the internal storage mode, the buffer is not released, and when the buffer is full, the RTT unit 102 switches to the OFF state. In the external storage mode, the buffer is continuously released and the removed packets are transmitted to the external storage device via the packet port 109. However, the user can specify that the RTT unit should transition to the RUN state when the shared buffer overflows even in storage mode. Buffer overflow / operating mode /
It should be appreciated that other combinations of states can be used consistent with the present invention.

【0048】本発明のRTTユニット102は、設計者が
指定した数の内部モニターを含む。各モニターは、プロ
セッサコアを観測し、トレースキャプチャーをダイナミ
ックに制御するために外部信号を選択する。図示された
実施形態において、各モニターは、ユーザーにより個別
的にイネーブルとなる。ユーザーは、(i)形態、(ii)ア
クション、及び(iii)条件を含むパラメータを有するそ
れぞれのイネーブルのモニターをプログラムする。形態
パラメータは、モニターがトリガーで動作するか、また
はフィルタで動作するかを指定する。“トリガー”の形
態は、RTTの動作状態をRUNからTRIGGEREDに変更させ
る。“フィルタ”形態は、ユーザーが関心のあるトレー
ス情報だけをキャプチャーするように許容する(下記の
フィルタに関する詳細説明参照)。
The RTT unit 102 of the present invention includes a designer specified number of internal monitors. Each monitor observes the processor core and selects an external signal to dynamically control the trace capture. In the illustrated embodiment, each monitor is individually enabled by the user. The user programs a monitor for each enable having parameters including (i) form, (ii) action, and (iii) condition. The morphological parameter specifies whether the monitor operates as a trigger or a filter. The form of "trigger" changes the operating state of RTT from RUN to TRIGGERED. The "filter" form allows the user to capture only the trace information of interest (see detailed description of filters below).

【0049】アクションパラメータは、モニターが活性
である時、RTTユニット102の応答を指定する。トリ
ガーアクションは、動作状態をRUNからTRIGGEREDに変更
するためのものである。各モニターは、モニターがトリ
ガーとしてプログラムされる時に使われるトリガー信号
を具備する。トリガー出力信号は、RTTのトリガー設備
に伝達される。トリガー信号は、条件が真である時、一
週期の途中に“1”にセットされ、その後モニターはイ
ネーブルとなる。
The action parameter specifies the response of the RTT unit 102 when the monitor is active. The trigger action is to change the operation state from RUN to TRIGGERED. Each monitor has a trigger signal that is used when the monitor is programmed as a trigger. The trigger output signal is transmitted to the RTT trigger facility. The trigger signal is set to "1" mid-week when the condition is true, after which the monitor is enabled.

【0050】各モニターは、モニターがフィルタとして
プログラムされる時に使われる各トレース形態のための
イネーブルの信号を具備する。フィルタクションは、命
令トレース、データトレース及びタイミングトレースを
含む、最高3つの形態のトレースのダイナミックトレー
スイネーブルビットに適用される。
Each monitor has an enable signal for each trace configuration used when the monitor is programmed as a filter. Filtering is applied to the dynamic trace enable bits of up to three forms of trace, including instruction trace, data trace and timing trace.

【0051】一つのフィルタは、図示した実施形態で二
つの独立した選択事項、すなわちダイナミックトレース
イネーブル及びレベル/エッジ反応として指定された4
個のアクション中のひとつを有する。4個のアクション
は、表1に示されている。
One filter is designated as two independent choices in the illustrated embodiment: dynamic trace enable and level / edge response.
Have one of your actions. The four actions are shown in Table 1.

【0052】[0052]

【表1】 [Table 1]

【0053】一つ以上のフィルタが反対動作で活性化さ
れれば、イネーブルを'1'にセットすることが多くな
る。しかし、一般的に、ユーザーは、相反する動作を有
するフィルタをプログラムすることを避けるべきであ
る。イネーブル状態と非イネーブル状態との間の変換に
関するパケット経費が存在するので、命令トレースと関
連したフィルタに対しても注意しなければならない。ダ
イナミック命令トレースイネーブルビットは、バッファ
のオーバーフローを避けるのに十分に遅い速度で変更さ
れるのが理想的である。
If more than one filter is activated in the opposite operation, the enable is often set to '1'. However, in general, users should avoid programming filters that have conflicting behavior. Care must also be taken with the instruction trace and associated filters, as there is packet cost associated with converting between enabled and unenabled states. Ideally, the dynamic instruction trace enable bits are changed at a slow enough rate to avoid buffer overflow.

【0054】モニター条件パラメータは、モニターを活
性化させる入力条件を指定する。ユーザーは、それぞれ
のモニターが一つの条件を観測するようにプログラムす
る。本実施形態の条件パラメータは、(i)常数(たとえば
32ビット整数)、(ii)ニブルマスク(たとえば8ビット
整数)、(iii)ソース(常数がテストされることに対する
値を指定)、及び(iv)関係(テスト形態を指定)の4つの
要素からなる。
The monitor condition parameter specifies the input condition for activating the monitor. The user programs each monitor to observe one condition. The condition parameters of this embodiment are (i) a constant (for example, a 32-bit integer), (ii) a nibble mask (for example, an 8-bit integer), (iii) a source (specifying a value for the constant to be tested), and (iv ) It consists of four elements of the relationship (specify the test form).

【0055】このような構造と関連した可能なソース
は、命令アドレス、データアドレス、データ値、及び選
択外部信号を含む。データアドレスとデータ値のソース
は、動作方向(たとえばロードまたは格納)とアドレス空
間(たとえばメモリまたは補助レジスタ)によりさらに指
定される。可能な関係は、大きいか同じ(≧)、小さい
(<)、同じ(=)、及び異なる(≠)を含む。図示した実施形
態において、値は、ニブルマスクと論理的にAND演算さ
れ、適用可能な関係を使用してソース要素と比較され
る。
Possible sources associated with such a structure include instruction addresses, data addresses, data values, and select external signals. The source of the data address and data value is further specified by the direction of operation (eg load or store) and address space (eg memory or auxiliary register). Possible relationships are greater or equal (≧), lesser
Includes (<), same (=), and different (≠). In the illustrated embodiment, the value is logically ANDed with the nibble mask and compared to the source element using applicable relationships.

【0056】モニターがレベル-反応フィルタ(許容また
は防止)として使われる時、一旦条件が真になれば、モ
ニタリングされる値が条件を偽にする新しい値に変化す
るまで、真のままであることに注目すべきである。
When a monitor is used as a level-responsive filter (allow or prevent), once the condition becomes true, it remains true until the monitored value changes to a new value that makes the condition false. Should be noted.

【0057】内部モニターの図示された実施形態におい
て、フィルタは、仮にこれらが同じ“形態”と“アクシ
ョン”パラメータとしてプログラムされれば、より複雑
なテストを生成するために共に結合(論理的にAND演算)
され有益とすることができる。任意のアドレス範囲は、
たとえば大きいか同じ(≧)関係を有するフィルタと小さ
い(<)関係を有するフィルタとを結合させることによっ
てテストすることができる。特定のデータアドレスに対
するデータ値は、データアドレスを有するフィルタとデ
ータ値を有するフィルタとを結合させることによってテ
ストされる。隣接したフィルタは、フィルタ対(iが0、
2、4等の時、iとi+1)に結合されることができる。隣
接したフィルタ対は、フィルタの4対(iが0、4、8等
の時、i,i+1、i+2、i+3)に結合されることができ
る。
In the illustrated embodiment of the internal monitor, the filters are combined (logically AND'ed) together to produce more complex tests if they are programmed as the same "morphology" and "action" parameters. Calculation)
And can be informative. Any address range is
For example, it can be tested by combining filters with a greater or the same (≧) relationship with filters with a smaller (<) relationship. The data value for a particular data address is tested by combining the filter with the data address and the filter with the data value. Adjacent filters have filter pairs (i = 0,
2, 4, etc., can be combined with i and i + 1). Adjacent filter pairs can be combined into four pairs of filters (i, i + 1, i + 2, i + 3 when i is 0, 4, 8, etc.).

【0058】一つの機能中にトレースを非イネーブルと
するが、呼出した機能は非イネーブルとしないために、
一対のフィルタが結合される。これらは、予防アクショ
ン、命令アドレスソース、及び機能の最初の命令のアド
レスから機能の最後の命令までのアドレス範囲でプログ
ラムされる。一つの機能中にトレースと、呼出したあら
ゆる機能を非イネーブルとするために、本実施形態は、
機能入力ポイントに対するフィルタと、各機能出口ポイ
ントに対するフィルタを使用する。入力ポイントフィル
タは、停止アクション、命令アドレスソース及び機能の
最初の命令のアドレスにプログラムされる。出口地点フ
ィルタはスタートアクション、命令アドレスソース、及
び出口ポイントのアドレスでプログラムされる。
To disable the trace during one function, but not the called function,
A pair of filters are combined. They are programmed with preventive actions, instruction address sources, and address ranges from the first instruction of the function to the last instruction of the function. In order to de-enable tracing and any called function during one function, the present embodiment
Use a filter for function input points and a filter for each function exit point. The input point filter is programmed to the address of the first instruction of the stop action, instruction address source and function. The exit point filter is programmed with a start action, an instruction address source, and an exit point address.

【0059】ここで前述したRTT102の内部モニター
に加えて、本発明は、外部キャプチャーデバイスが外部
モニターを具現するように構成されることもできる。内
部モニターと比較して、これら外部モニターは、RTTユ
ニットから放出されるリアルタイムパケットストリーム
を観測し、外部キャプチャーデバイス320(図3参照)
のためのフィルタとトリガー動作を行う。外部フィルタ
は、RTTユニット102に対するいかなる直接的な影響
を及ぼすものではなく、これらは、外部キャプチャーデ
バイスのメモリ(たとえばDRAM)に格納されたパケットを
フィルタリングする。外部トリガーは、RTTに対する選
択的な外部入力信号を駆動させることによって、RTTユ
ニット102の動作に間接的に影響を及ぼすことができ
る。
In addition to the internal monitor of RTT 102 previously described herein, the present invention may also be configured such that an external capture device embodies the external monitor. Compared to the internal monitors, these external monitors observe the real-time packet stream emitted from the RTT unit, and the external capture device 320 (see FIG. 3).
Do a filter and trigger action for. External filters do not have any direct effect on the RTT unit 102, they filter packets stored in the memory (eg DRAM) of the external capture device. The external trigger can indirectly affect the operation of the RTT unit 102 by driving a selective external input signal to the RTT.

【0060】外部モニターを提供する外部キャプチャー
デバイス320は、比較的複雑なデバイスである。デバ
イスは、パケット境界を認識できなければならないし、
圧縮されたパケットストリームをリアルタイムで圧縮解
除させることができなければならない(以下、詳細に記
述)。図示した実施形態において、パケット長は、パケ
ット内のフィールドとしてエンコードされないため、外
部キャプチャーデバイスは、長さを決定するために各生
成されたパケットをテストしなければならない。このよ
うな能力を有する外部キャプチャーデバイスは、典型的
にFPGAまたはASICを使用して具現され、論理アナライザ
ーは、一般的に実用的でない。しかしながら、パケット
長のエンコードが本発明と合わせて使われることがで
き、外部キャプチャーデバイスにおいてこのような複雑
度の必要性を軽減させることを認識しなければならな
い。しかし、この場合は、RTT構造とプログラムの増加
された複雑度はトレードオフの関係にある。なぜなら
(i)パケット長が決定され、(ii)決定されたパケット長
が、各パケット(またはパケットのサブセット)上にエン
コードされるという機構が必要となる。
The external capture device 320, which provides the external monitor, is a relatively complex device. The device must be able to recognize packet boundaries,
It must be possible to decompress the compressed packet stream in real time (described in detail below). In the illustrated embodiment, the packet length is not encoded as a field within the packet, so the external capture device must test each generated packet to determine the length. External capture devices with such capabilities are typically implemented using FPGAs or ASICs, and logic analyzers are generally impractical. However, it should be appreciated that packet length encoding can be used in conjunction with the present invention, reducing the need for such complexity in external capture devices. However, in this case, there is a trade-off between the RTT structure and the increased complexity of the program. Because
There is a need for a mechanism where (i) the packet length is determined and (ii) the determined packet length is encoded on each packet (or a subset of packets).

【0061】本発明のトレース情報は、パケットに格納
される時に選択的に圧縮される。圧縮の使用は、要求さ
れるバッファサイズ及び要求されるトレースピンの帯域
幅を減少させるのに有効である。ここで詳細に記述され
る次の圧縮技術、すなわち(i)可変長エンコード、(ii)
デルタ-エンコード、(iii) ランレングスコーディン
グ、及び(iv)ソース-コード基準は、以下で詳細に記述
するように、本発明のトレースユニットで個別的にまた
は連携して使われるが、他の形態のトレース/パケット
圧縮も本発明と合わせて使われることが出来ることを認
識しなければならない。
The trace information of the present invention is selectively compressed when stored in packets. The use of compression is effective in reducing the required buffer size and required trace pin bandwidth. The following compression techniques are described in detail here: (i) variable length encoding, (ii)
Delta-encoding, (iii) run-length coding, and (iv) source-code criteria can be used individually or in conjunction with the trace unit of the invention, as described in detail below, but in other forms. It should be recognized that the trace / packet compression of can also be used in conjunction with the present invention.

【0062】(i)可変長エンコーディング−可変長イン
コーディングは、高い頻度の値を表すために小さいコー
ドを使用し、低い頻度の値を表すために大きいコードを
使用する。ここで使われる“小さい”コードは、規定さ
れた目的のために保管しておいた全体コードワードに比
べて、より小さい数のビットであり、“大きい”コード
は、より大きい数のビットである。したがって、コード
ワードサイズが8ビットならば、たとえば“小さい”コ
ードは、一つの構造で2ビットを含むもので、“大き
い”コードは、6または7ビットを含むものであり得
る。コードワードサイズのこのような構造下で要求され
るビット数は、表現される項目の数に依存する。可変長
コーディングは、一般的に従来技術のよく知られたハフ
マン(Huffman)コーディングと類似しているが、本発明
のRTTコードは、ハフマンコーディングでのビットより
は多数のニブルである。可変長コーディングの使用は、
値の予見された確率分布の知識に依存する。可変長コー
ディングアルゴリズムは、データ処理技術分野で一般的
によく知られており、したがって当業者によって本発明
のRTTに容易に適用される。
(I) Variable length encoding -Variable length incoding uses small codes to represent high frequency values and large codes to represent low frequency values. As used herein, a "small" code is a smaller number of bits than a whole codeword stored for a specified purpose, and a "large" code is a larger number of bits. . Thus, if the codeword size is 8 bits, for example a "small" code may contain 2 bits in one structure and a "large" code may contain 6 or 7 bits. The number of bits required under such a structure of codeword size depends on the number of items represented. Variable length coding is generally similar to the well-known Huffman coding in the prior art, but the RTT code of the present invention is more nibbles than the bits in Huffman coding. The use of variable length coding is
Depends on knowledge of foreseen probability distribution of values. Variable length coding algorithms are generally well known in the data processing arts and are therefore easily applied by the person skilled in the art to the RTT of the invention.

【0063】(ii)デルタエンコーディング−デルタエン
コーディングは、値の一部分だけを格納する。このコー
ディングは、トレースで以前にエンコードされてきた一
つの値を参照する。基準値と他のニブルだけがエンコー
ドされる。デルタエンコードは、値(時間に対してゆっ
くり変化しようとする値)の一時的な位置を表す値に依
存する。パケットのサイズを減少させるために、命令ア
ドレスまたはデータアドレスの固有な、または“デル
タ”部分だけがパケットに記録される。特に、エンコー
ドされようとする完全なアドレスは、固有な部分を確認
するために、以前に記録された同一形態の完全なアドレ
ス(命令またはデータ)と比較される。二つのアドレスの
うち、多くのニブルが命令及びデータアクセスの空間及
び時間的な位置に起因して、同じ値を持つ。最下位ニブ
ルから最上位ニブルまで非−ゼロニブルだけがパケット
に記録される。したがって、固有な部分は、典型的に完
全なアドレスより少ない(潜在的に非常に少ない)。固有
な部分は、部分的なアドレスとして公知される。図4
は、このような圧縮方法論をグラフィック的に図示す
る。
(Ii) Delta Encoding -Delta encoding stores only a portion of the value. This coding refers to a single value that was previously encoded in the trace. Only the reference value and other nibbles are encoded. Delta encoding relies on a value that represents the temporal position of a value (a value that slowly changes over time). To reduce the size of the packet, only the unique or "delta" part of the instruction or data address is recorded in the packet. In particular, the complete address to be encoded is compared with the previously recorded complete address of the same form (instruction or data) to identify the unique part. Of the two addresses, many nibbles have the same value due to the spatial and temporal location of instruction and data access. Only non-zero nibbles are recorded in the packet from the least significant nibble to the most significant nibble. Therefore, the unique part is typically less (potentially much less) than the complete address. The unique part is known as the partial address. Figure 4
Graphically illustrates such a compression methodology.

【0064】記録されたアドレスは、完全又は部分的で
あることができ、部分アドレスは、サイズで可変的なの
で、アドレスは、アドレスに後続するサイズフィールド
と共にパケットにエンコードされる。図示した実施形態
において、完全な命令アドレスは、24ビットであり、
完全なデータアドレスは、32ビット長さであるが、所
望によって他の命令/データアドレス長さが使われるこ
とができる。サイズが完全なアドレスのサイズと同じな
らば、パケットでエンコードされた値は、完全なアドレ
スであり、そうでなければ、部分アドレスである。
The recorded address can be full or partial, and the partial address is variable in size, so the address is encoded in the packet with a size field following the address. In the illustrated embodiment, the complete instruction address is 24 bits,
The complete data address is 32 bits long, but other instruction / data address lengths can be used if desired. The value encoded in the packet is the complete address if the size is the same as the size of the complete address, else it is a partial address.

【0065】図示した実施形態のRTTユニット102
は、チップ上の共有バッファに現在格納された各形態の
アドレスのために最も古くなったアドレス及び一番最近
のアドレスの完全なアドレスを格納するために、4個の
レジスタ(すなわち、最も古くなった命令アドレス及び
一番最近の命令アドレスのために2個のレジスタと、最
も古くなったデータアドレス及び一番最近のデータアド
レスのための他の2個のレジスタ)を使用する。一番最
近のアドレスは、次に記録されたアドレスに対する固有
な部分を算出するために使われる。最も古くなったアド
レスは、部分アドレスと同一形態の完全なアドレスを有
する、最も古くなったパケットよりもっと古くなったバ
ッファ内のパケットに位置した部分アドレスの完全なア
ドレスを決定するために、トレースデコーダによる内部
格納モードで使われる(前述した)。アドレスを有するパ
ケットがバッファから除去されるため、最も古くなった
完全なアドレスは、適切に更新される。
RTT unit 102 of the illustrated embodiment
Has four registers (ie, the oldest address) to store the oldest address for each form of address currently stored in the shared buffer on the chip and the full address of the most recent address. 2 registers for the oldest and the latest instruction address and the other two registers for the oldest data address and the latest data address). The most recent address is used to calculate the unique part for the next recorded address. The oldest address has a complete address that has the same form as the partial address, the trace decoder to determine the complete address of the partial address located in the packet in the buffer that is older than the oldest packet. Used in internal storage mode by (see above). The oldest complete address is updated appropriately because the packet with the address is removed from the buffer.

【0066】(iii)ランレングスエンコーディング−ラ
ンレングスインコーディング(RLE)は、繰り返しイベン
トをカウントし、各イベントを別途に格納する代わり
に、イベントのカウント値を格納する。ランレングスエ
ンコーディングは、同一形態の順次的なイベントの実行
に依存する。特に、同一のデータ値で形成されたあらゆ
るストリーム(“ラン”と知らされた繰り返し値)は、
インデックス(カウント数)及び単一値で代替される。こ
のような原理は、繰り返しデータ値のシーケンスが出現
する特定のデータ形態に最適に適用される。たとえば、
RLEは、同一のバイトパターンの多数の連続的な発生を
含むデータファイルに效果的に適用される。RLEは、そ
の内容に関係なくいかなる種類のデータにも使われるこ
とができるが、RLEにより圧縮されるデータは、達成で
きる利得のサイズ(圧縮比率)を決定する。ランレングス
エンコーディング技術は、当業者が容易に理解されるは
ずなので、ここではさらに記述しない。
(Iii) Run Length Encoding -Run Length In Coding (RLE) counts repetitive events and stores the count value of the events instead of storing each event separately. Run-length encoding relies on the execution of the same type of sequential events. In particular, every stream formed of the same data value (a repeat value known as a "run")
It is replaced by an index (count number) and a single value. Such principles are optimally applied to particular data forms in which repeated sequences of data values occur. For example,
RLE is effectively applied to data files containing multiple consecutive occurrences of the same byte pattern. The RLE can be used for any kind of data regardless of its content, but the data compressed by the RLE determines the size of achievable gain (compression ratio). The run-length encoding technique should be easily understood by those skilled in the art and will not be described further here.

【0067】(iv)ソース-コード参照−ソース-コード参
照アプローチは、コンパイルされたソースコードをテス
トすることによって誘導され得る情報の格納を未然に防
止することによって、データ圧縮を達成する。たとえ
ば、プロセッサ分岐命令の目標アドレスは、分岐命令オ
ペコード(コンパイルされたソースコードで有用可能)に
エンコードされるので、トレース内では格納される必要
がない。
(Iv) Source-Code Reference -The source-code reference approach achieves data compression by obviating the storage of information that can be induced by testing the compiled source code. For example, the target address of a processor branch instruction does not need to be stored in the trace because it is encoded in the branch instruction opcode (which can be useful in compiled source code).

【0068】本発明のトレースデータは、一連のセグメ
ントで構成される。各セグメントは、独立的にデコード
されることができる。一つのセグメントは、SEGSTARTパ
ケットでスタートし、必要に応じてSEGENDパケットで終
了する(付録I及び以下のパケットプロトコルの論議を参
照)。SEGSTARTパケットは、セグメント内で実行される
第1の命令の完全な24ビットアドレスを含む。データ
アドレスを含むセグメント内の第1のパケットは、完全
な32-ビットアドレスを使用する。これらの完全なア
ドレスを記録することは、後続する部分アドレスが現行
セグメントより前のアドレスを参照することを防止す
る。SEGSTARTパケットには多数のゼロニブル(たとえば
本実施形態では少なくとも4個のニブル)が前行してお
り、外部キャプチャーデバイス320またはトレースデ
コーダにより容易にトレース内に位置されることができ
る。
The trace data of the present invention is composed of a series of segments. Each segment can be decoded independently. One segment starts with a SEGSTART packet and ends with a SEGEND packet if necessary (see Appendix I and packet protocol discussion below). The SEGSTART packet contains the complete 24-bit address of the first instruction executed within the segment. The first packet in the segment containing the data address uses the full 32-bit address. Recording these complete addresses prevents subsequent partial addresses from referencing addresses prior to the current segment. The SEGSTART packet is preceded by a number of zero nibbles (eg, at least four nibbles in this embodiment) and can be easily located in the trace by the external capture device 320 or trace decoder.

【0069】セグメントが終了しカウンタが非ゼロであ
る時、SEGENDパケットは、一つ以上の次の条件に基づく
カウンタ値で生成されるが、これらは、(i)(a)セグメン
ト内でユーザーが指定した命令の限界に到達(外部格納
モードだけ)、(b)バッファオーバーフロー、(c)一時的
に非イネーブルとなった後、タイミングトレースがイネ
ーブルとなる、(d)選択的な外部入力信号により要求さ
れる、及び/または(e)RTT内で制御レジスタを記録する
ことによって要求される理由のうちの一つ以上によりセ
グメントが終了し、新しいセグメントがスタートする;
When the segment ends and the counter is non-zero, SEGEND packets are generated with a counter value based on one or more of the following conditions, which are user-defined in the (i) (a) segment: The specified instruction limit is reached (external storage mode only), (b) buffer overflow, (c) timing trace is enabled after being temporarily disabled, (d) by selective external input signal A segment ends and a new segment starts for one or more of the reasons required and / or (e) by recording the control register in the RTT;

【0070】(ii)(a)命令トレースがスタートする、(b)
動作状態がRUNまたはTRIGGEREDであり、命令トレースが
初めてまたはフィルタにより一時的に非イネーブルとな
った後、イネーブルになる、及び/または (c)動作状態
がOFFであり、RUNまたはTRIGGEREDに転換され、命令ト
レースがイネーブルとなる(外部格納モードだけ)ことの
うち一つ以上でセグメントがスタートする;及び/または
(Ii) (a) Instruction trace starts, (b)
The operating state is RUN or TRIGGERED and instruction trace is enabled for the first time or after being temporarily disabled by the filter, and / or (c) the operating state is OFF and converted to RUN or TRIGGERED, A segment starts with one or more of the instruction traces enabled (external store mode only); and / or

【0071】(iii)(a)命令トレース終了、及び/または
(b)動作状態がRUNまたはTRIGGEREDであり、命令トレー
スがイネーブルから非イネーブルに転換される、であ
る。
(Iii) (a) End of instruction trace, and / or
(b) The operation state is RUN or TRIGGERED, and the instruction trace is switched from enable to non-enable.

【0072】外部格納モード(図3)において、トレース
のサイズが外部キャプチャーデバイスのイネーブルなメ
モリのサイズを超過すれば、古くなったトレース情報は
廃棄される。外部キャプチャーデバイス320は、セグ
メント境界に対する知識または考慮することなくトレー
スの開始段階を廃棄する。これは、メモリ内で最も古く
なったセグメントが主としてSEGSTARTパケットを消失
し、デルタアドレスエンコーディングであるためデコー
ドされないことを意味する。したがって、本実施形態に
おいて、このような理由で使用できないトレースの量を
制限するため、セグメントは故意に十分に少ない程度に
作られる。
In the external storage mode (FIG. 3), if the trace size exceeds the size of the external capture device's enabled memory, the obsolete trace information is discarded. The external capture device 320 discards the start phase of the trace without knowledge or consideration of segment boundaries. This means that the oldest segment in memory mainly misses the SEGSTART packet and is not decoded because it is a delta address encoding. Therefore, in this embodiment, the segments are deliberately made small enough to limit the amount of traces that cannot be used for this reason.

【0073】内部格納モード(図2)において、古くなっ
たトレース情報は、トレースのサイズがチップ上の共有
バッファ112のサイズを超過すれば、廃棄される。し
かし、SEGSTARTパケットは、この場合には不要である、
なぜならばRTTは最も古くなった完全な命令アドレスと
現在のデータアドレスをバッファ内に格納するからであ
る。それぞれの完全なアドレスは、自分の補助レジスタ
に格納されるが、必要に応じて他の格納構造を使うこと
もできる。
In the internal storage mode (FIG. 2), the old trace information is discarded if the trace size exceeds the size of the shared buffer 112 on the chip. But the SEGSTART packet is not needed in this case,
This is because the RTT stores the oldest complete instruction address and current data address in the buffer. Each complete address is stored in its own auxiliary register, but other storage structures can be used if desired.

【0074】本発明のRTTユニット102は、新しいセ
グメントのスタート時、0にリセットされ、命令が実行
されるたびに増加する15ビットセグメント命令カウン
タ(不図示)をさらに含む。カウンタは、セグメント内に
命令オフセットを生成し、命令トレース及び/またはデ
ータトレースがイネーブルとされている間、一つのセグ
メントが担当する実行命令の最大数を制限するために使
われる。
The RTT unit 102 of the present invention further includes a 15-bit segment instruction counter (not shown) that is reset to 0 at the start of a new segment and increments each time an instruction is executed. The counter is used to generate an instruction offset within a segment and limit the maximum number of executed instructions for a segment while instruction trace and / or data trace is enabled.

【0075】RTTユニット102のパケットポート10
9は、一つの内部バッファ112に専用されることがで
き、または選択的に多数のRTTsを有するデバイス(図2
2参照)内の多数の内部バッファ間で共有されることが
できる。パケットポート109の帯域幅は、バッファ1
12がめったにオーバーフローしないように十分に大き
くなければならない。バッファがオーバーフローする
時、ユーザーは、バッファは直ちにクリアされるのか、
またはバッファが特定数(たぶん0)のニブルの放出が許
容されるまで、パケットキャプチャーを非イネーブルと
するのかを制御する。両方の場合、パケットキャプチャ
ーが再開する前に、新しいセグメントがスタートする。
また、ユーザーは、オーバーフローがインターラプトを
生成するか否かを制御するが、このようなインターラプ
トは、RTTと関連した一つ以上のコアのパイプラインを
停止させる。ユーザーは、さらに、RTTユニット制御レ
ジスタに書込むことによって、バッファをクリアするこ
とができる。
Packet port 10 of RTT unit 102
9 may be dedicated to one internal buffer 112, or alternatively a device with multiple RTTs (see FIG. 2).
It can be shared among multiple internal buffers in (see 2). The bandwidth of the packet port 109 is the buffer 1
12 must be large enough so that it rarely overflows. When the buffer overflows, the user can
Alternatively, the buffer controls whether packet capture is disabled until a certain number (probably 0) of nibbles are allowed to be emitted. In both cases, a new segment starts before packet capture resumes.
The user also controls whether the overflow will generate an interrupt, which interrupts the pipeline of one or more cores associated with the RTT. The user can also clear the buffer by writing to the RTT unit control register.

【0076】前述したように、本発明のRTTと関連した
パケットは、一つ以上のニブルで構成される。パケット
がパケットポート109(たとえば外部モード)を使用し
て共有バッファ112から放出される時、これらは、ニ
ブルストリームを形成する。図1の実施形態の例示的な
パケットポート109においてピン数は、1、2、4、
8、16または32ピンである。また、パケットデータ
に同期されるクロックピンが要求される。一つの入力信
号を提供することが選択できる。設計者は、帯域幅やピ
ン数の要件及び関連考慮事項を基礎にして適切な数のピ
ンを選択する。
As described above, the packet related to the RTT of the present invention is composed of one or more nibbles. When packets are emitted from the shared buffer 112 using the packet port 109 (eg external mode), they form a nibble stream. In the exemplary packet port 109 of the embodiment of FIG. 1, the number of pins is 1, 2, 4,
It has 8, 16 or 32 pins. Also, a clock pin synchronized with the packet data is required. It is possible to choose to provide one input signal. The designer selects the appropriate number of pins based on bandwidth and pin count requirements and related considerations.

【0077】パケットは、一般的にスタートフィールド
から最後のフィールドへの順に伝送される。一つのフィ
ールドが一つのニブルより大きいならば、最下位ニブル
がまず伝送される(パケットのヘッダーは最下位ニブル
に存在)。パケットポートが一つのニブル(すなわち、1
または2ビット)より少ないならば、ニブルの最下位ビ
ットがまず伝送される。一つのゼロニブル(全4ビット
がゼロ)は、伝送するパケットがない時、パケットの間
に、パケットポート109上で駆動される。このような
技術は、“パディング”と知られている。一つのパケッ
ト内では、このようなパディングは許容されない。パケ
ットポートが単一のニブルより狭いならば、ゼロニブル
を伝送するために複数の周期が要求される。パケットポ
ートが一つのニブルより広いならば、パケットポート上
の全ピンがゼロとなる充分な“パッド”ニブルが伝送さ
れる。
Packets are generally transmitted in order from the start field to the last field. If one field is larger than one nibble, the lowest nibble is transmitted first (the packet header is in the lowest nibble). One nibble for a packet port (ie 1
Or 2 bits), the least significant bit of the nibble is transmitted first. One zero nibble (all four bits are zero) is driven on packet port 109 during a packet when there is no packet to transmit. Such a technique is known as "padding". No such padding is allowed within a packet. If the packet port is narrower than a single nibble, multiple periods are required to transmit the zero nibble. If the packet port is wider than one nibble, then enough "pad" nibbles are transmitted that all zeros on the packet port are zero.

【0078】“X”個またはより多くのパッドニブルの
シーケンス(本実施形態ではX=4)は、後続する第1の非
ゼロニブルが後続するパケットシーケンスの第1のパケ
ットのスタートであることを確認する。特定のパケット
形態(たとえばTRIG及びSEGSTART)に対するパケット境界
がパケットポート109上で容易に検出されるようにす
るために、一部のパケット形態では、オプションとして
4個以上のパッドニブルが前に付加される。しかし、X
個以上のゼロニブルの列は、一つのトレースパケット内
で自然的に発生できることを注目しなければならない。
このような列がパケットの先頭として誤って確認される
ことを防止するために、本発明のRTTユニットは、パケ
ットポート109上でパケットを伝送する前にニブルス
タッフィングを実行する。ここで使われる用語“ニブル
スタッフィング”は、ニブルのビットに所定の値を割当
ることを意味する。たとえば、X=4の場合、三個の連続
するゼロニブルがパケット内に発生すれば、RTTは、す
べてが1である特別ニブルを後に伴う三個のゼロニブル
を出力する(“スタックされたニブル”の特定の場合)。
外部キャプチャーデバイス320は、スタックされたニ
ブルを除去しない、なぜならば、パケットストリームを
デコードするためにトレースデコーダによりこれらが必
要であるからである。データストリーム内において4個
の第1のパッドニブルに後続するパッドニブルは、外部
キャプチャーデバイス320により廃棄される。4個以
上のパッドニブルの任意のシーケンスの後、第1の非ゼ
ロニブルは、rtt_pktポート109の最下位ビット(LS
B)上で出現する。
A sequence of "X" or more pad nibbles (X = 4 in this embodiment) confirms that the following first non-zero nibble is the start of the first packet of the following packet sequence. . In order to make it easier to detect packet boundaries for a particular packet format (eg TRIG and SEGSTART) on packet port 109, some packet formats are optionally prepended with four or more pad nibbles. . But X
It has to be noted that more than one sequence of zero nibbles can naturally occur within one trace packet.
To prevent such a sequence from being mistakenly identified as the beginning of a packet, the RTT unit of the present invention performs nibble stuffing before transmitting the packet on packet port 109. As used herein, the term "nibble stuffing" means assigning a predetermined value to the bits of a nibble. For example, for X = 4, if three consecutive zero nibbles occur in a packet, the RTT outputs three zero nibbles followed by a special nibble of all 1s (for "stacked nibbles" In certain cases).
The external capture device 320 does not remove the stacked nibbles because they are needed by the trace decoder to decode the packet stream. The pad nibbles that follow the four first pad nibbles in the data stream are discarded by the external capture device 320. After any sequence of four or more pad nibbles, the first non-zero nibble is the least significant bit (LS) of the rtt_pkt port 109.
B) Appears on.

【0079】パケットポート109は、選択的なrtt_w
ait入力信号を含むことができる。この入力信号が高い
状態に維持される限り、RTTユニット102は、パケッ
トポート109上で新しい値を駆動出来ない。パケット
ポート109は、各ニブルに対するパケット信号のスタ
ートを含むことができる。これらスタート信号は、これ
らの対応ニブルがパケット内の第1のニブルである時、
アサートされる。これらポートスタート信号は、パケッ
トポートのピンカウント値の別途の経費(たとえば25%
付加経費)によって、通常チップ外で駆動されない。代
りに、これらは、多重RTTユニット(図2参照)からパケ
ット境界の容易な検出を許容するためにMTI204によ
り使われる。次の表2は、これらの信号を要約する。
The packet port 109 uses the selective rtt_w
It can include an ait input signal. As long as this input signal remains high, RTT unit 102 cannot drive a new value on packet port 109. Packet port 109 may include a start of packet signal for each nibble. These start signals indicate that when their corresponding nibble is the first nibble in the packet,
Asserted. These port start signals are a separate expense (eg 25%) for the pin count value of the packet port.
It is usually not driven off-chip due to the added expense). Instead, they are used by the MTI 204 to allow easy detection of packet boundaries from multiple RTT units (see Figure 2). Table 2 below summarizes these signals.

【0080】[0080]

【表2】 [Table 2]

【0081】図5a及び図5bを参照すれば、本発明のRT
Tにより支援されるパケット形態が記述してある。特定
のパケットエンコードが付録Iと関連して後で論議され
る。
Referring to FIGS. 5a and 5b, the RT of the present invention
The packet format supported by T is described. Specific packet encodings are discussed later in connection with Appendix I.

【0082】本実施形態において、パケット形態は、与
えられたパケット内で第1フィールドとしてセットされ
る。本発明のパケット形態は、一般的に発生頻度に基づ
いて(i)頻繁、及び(ii)レア(rare)の2種類のカテゴリ
ーに分離される。頻繁なパケット形態は、これらのパケ
ット形態をエンコードするために一つのニブルを使用す
る。レアパケット形態は、これらのパケット形態をエン
コードするために二つのニブルを使用する。このような
アプローチは、より頻繁に発生するパケットがただ一つ
のニブルだけを必要とするので、諸費用を減少させる。
In the present embodiment, the packet type is set as the first field in a given packet. The packet format of the present invention is generally divided into two categories based on the frequency of occurrence: (i) frequent and (ii) rare. Frequent packet forms use a nibble to encode these packet forms. Rare packet forms use two nibbles to encode these packet forms. Such an approach reduces costs since more frequently occurring packets need only one nibble.

【0083】図示した実施形態の頻繁なパケット形態
は、一つ以上の特定コード、たとえば0000及び10
00を使用する。コード0000は、パケット間のパデ
ィングのために使われる。コード1000は、レアパケ
ット形態を指定し、第2のニブルが特別にレアパケット
形態を確認する。一部の頻繁なパケット形態は、4ビッ
ト以下にエンコードされ、残りのビットは、パケット内
容の一部をエンコードするのに使用されるか、または、
必要に応じて他の目的のために使われることができる。
一つのパケットフィールドが一つ以上のニブルを占有す
るとき、まず最下位ニブルがパケットに格納される。
The frequent packet form of the illustrated embodiment uses one or more specific codes, eg 0000 and 10.
00 is used. Code 0000 is used for padding between packets. Code 1000 specifies the rare packet morphology and the second nibble specifically identifies the rare packet morphology. Some frequent packet forms are encoded in 4 bits or less and the remaining bits are used to encode part of the packet content, or
It can be used for other purposes if desired.
When a packet field occupies more than one nibble, the lowest nibble is stored in the packet first.

【0084】パケット形態のコードは、図5a及び図5b
に図示された。各図面の8つの列は、ニブルの最下位3
ビットに対する可能な2進値を表す。各図面の二つの行
は、ニブルの最上位ビットに対する可能な値を表す。RS
Vは、予約組合せを表す。図5aの2部位にSTALLが位置
することに注目しなければならない。このような特性
は、パケット形態の二つの最上位ビットが他の情報をエ
ンコードするのに使用されるよう許容され有益である。
The packet form code is shown in FIGS. 5a and 5b.
Illustrated in. The eight columns in each drawing are the bottom three nibbles.
Represents the possible binary values for a bit. The two rows in each figure represent the possible values for the most significant bits of the nibble. RS
V represents a reservation combination. It should be noted that the STALL is located at two sites in Figure 5a. Such a property is beneficial as it allows the two most significant bits of the packet form to be used to encode other information.

【0085】前述したように、本発明のRTTユニットに
よりキャプチャーされる4種類のトレースイベント、す
なわち(i)命令トレース、(ii)データトレース、(iii)タ
イミングトレース及び(iv)雑多なトレースが存在する。
これらのトレースをより詳細に記述する。
As mentioned above, there are four types of trace events captured by the RTT unit of the present invention: (i) instruction trace, (ii) data trace, (iii) timing trace and (iv) miscellaneous trace. To do.
These traces are described in more detail.

【0086】(i)命令トレース-命令トレースは、注目す
るコアのプログラムカウンタ(PC)の値を記録する。PCに
対する非順次的な変化は、命令実行に同期(分岐、ジャ
ンプ、ループ、条件付き順次)するか、または命令実行
に非同期的(ゼロオーバーヘッドループトリガーまたイ
ンターラプトの受付け)に発生する。
(I) Instruction trace -Instruction trace records the value of the program counter (PC) of the core of interest. Non-sequential changes to the PC occur either synchronously with instruction execution (branch, jump, loop, conditional sequential) or asynchronously with instruction execution (zero overhead loop trigger or acceptance of interrupt).

【0087】同期トレースに関して、同期PCのエンコー
ドは命令の形態に依存して変化する。命令形態は、(1)
条件(たとえば条件付き/無条件)と、(2)命令機能(たと
えば順次/ループ/分岐/直接ジャンプ/間接ジャンプ)の
両属性の組合せを使用して記述される。
Regarding sync trace, the sync PC encoding varies depending on the form of the instruction. The command format is (1)
It is written using a combination of conditions (for example, conditional / unconditional) and (2) instruction function (for example, sequential / loop / branch / direct jump / indirect jump).

【0088】条件付き命令は、これらが条件コードテス
トをパスした時にのみ実行する。無条件部命令は、条件
コードテストを全く持たず、したがって常に実行する。
順次命令は、PCを命令のサイズで(たとえば本実施形態
で4または8バイト)増加させる。分岐命令(たとえばBc
c、BLcc及びLPcc)は、符号付き直値の隣接オフセット
をPC値に加える。ループ命令(たとえばLPcc)は、LP_S
TART及びLP_ENDレジスタに記録し、条件が不合格(fai
l)であれば、ループの末尾で、第1の命令に分岐する。
直接ジャンプ命令(たとえば直値へのJcc/JLcc)は、PC
に直値の目標をロードする。間接ジャンプ命令(たとえ
ばレジスタに対するJcc/JLcc)は、PCにプロセッサコア
レジスタからの目標をロードする。
Conditional instructions execute only when they pass the condition code test. Unconditional part instructions have no condition code tests and therefore always execute.
Sequential instructions increase the PC by the size of the instruction (eg 4 or 8 bytes in this embodiment). Branch instructions (for example, Bc
c, BLcc and LPcc) add a signed immediate neighbor offset to the PC value. Loop instruction (eg LPcc) is LP_S
Record in TART and LP_END register, and fail the condition (fai
If l), branch to the first instruction at the end of the loop.
Direct jump instructions (eg Jcc / JLcc to immediate value)
Load the immediate goals into. An indirect jump instruction (eg Jcc / JLcc for a register) loads the PC with the target from the processor core register.

【0089】図示した実施形態において、パケットを生
成するために、ユーザーは、2種類の同期命令トレース
構造、すなわち(i)最大圧縮及び(ii)外部フィルタの一
方を選択する。図6a及び図6bは、これらの2種類の構
造を各々グラフィック的に図示する。図6aと図6bのい
ずれにおいても、括弧値は、生成されたパケット形態に
対する補助記号を含むことに注目しなければならない。
In the illustrated embodiment, to generate a packet, the user selects one of two types of synchronous instruction trace structures: (i) maximum compression and (ii) outer filter. 6a and 6b graphically illustrate each of these two types of structures. It should be noted that in both FIG. 6a and FIG. 6b, the parenthesis values include supplementary symbols for the generated packet morphology.

【0090】図6aに示すように、最大圧縮構造は、命
令トレースを記録するために必要な最小数のパケットだ
けを生成する。本発明の譲受人により実行された評価に
基づいて、このような構造は、大部分のアプリケーショ
ンに適している。外部フィルタ構造(図6b)は、いずれ
も実行されたか、または無条件の分岐及びジャンプに対
する目標アドレスを有する一つのパケット(IA)を生成
する。外部フィルタは、一般的に、外部キャプチャーデ
バイス320が使われる時、たとえば外部キャプチャー
デバイス320が外部トリガー及び/またはフィルタ用
途のための機能境界を決定するために、リアルタイムで
パケットをテストする時に適切な構造である。しかしな
がら、また、外部フィルタ構造は、バッファオーバーフ
ローを避けるために要求されるパケットポートの帯域幅
を実際的に増加させることを認識しなければならない。
As shown in FIG. 6a, the maximum compression structure produces only the minimum number of packets needed to record an instruction trace. Based on the evaluation performed by the assignee of the present invention, such a structure is suitable for most applications. The outer filter structure (FIG. 6b) produces a single packet (IA) with the target address for any executed or unconditional branches and jumps. The external filter is generally suitable when the external capture device 320 is used, for example when the external capture device 320 tests packets in real time to determine functional boundaries for external trigger and / or filter applications. It is a structure. However, it must also be recognized that the external filter structure actually increases the required packet port bandwidth to avoid buffer overflows.

【0091】図6aの最大圧縮エンコードが後方への条
件付き分岐命令に選択されると、ユーザーは、2つの選
択的エンコード方法から一つを選択する。第1のエンコ
ード方法は、成功/失敗(パス/フェイル)の結果を記
録するために一つのPF(パス/フェイル状態)パケットを
生成する。第2のエンコード方法は、マルチビットカウ
ンタ(たとえば4または8ビット)を含むが、カウンタ
は、条件付き後方分岐命令が成功するたびに増加し、そ
の値は、条件付き後方分岐命令が失敗する各々の場合の
ためにBCBIC(後方向条件付き分岐命令カウンタ)に記録
される。第2(すなわち、カウンタ)の方法は、第1の方
法と比べて極めて良好な圧縮を提供する。
When the maximum compression encoding of FIG. 6a is selected for a backward conditional branch instruction, the user selects one of two alternative encoding methods. The first encoding method generates one PF (pass / fail status) packet to record the success / failure (pass / fail) result. The second encoding method includes a multi-bit counter (eg, 4 or 8 bits), but the counter is incremented each time the conditional backward branch instruction succeeds, and its value is each the conditional backward branch instruction fails. Is recorded in the BCBIC (backward conditional branch instruction counter) for the case. The second (ie counter) method provides much better compression than the first method.

【0092】本実施形態のカウンタ構造は、後方向条件
付き分岐の成功の確率が失敗の確率より著しく高いとい
う仮定に基づく。仮に分岐が成功されるならば、カウン
タは増加し、いかなるパケットも生成されない。仮に分
岐が失敗すると、現在カウンタ値を記録するBCBICパケ
ットが生成され、カウンタは、ゼロにセットされる。付
加的に、次のパケット形態、すなわちIA、STF、STV、LD
A、PF、LPEND、及びINTが生成された後(カウンタ値が1
ならば)、カウンタは、0にセットされる(次のパケット
形態の論議を参照)。カウンタがオーバーフローすれ
ば、BCICOVパケットが生成される。カウンタの値が0で
なく、セグメントが次の理由中の一つで終了すれば、カ
ウンタ値を有するSEGENDパケットが生成され、カウンタ
値はゼロに消去されるが、理由は、(a)セグメント内で
ユーザーが指定した命令限界に到達したり、(b)選択的
な外部入力信号により要求されたり、(c)RTT内の制御レ
ジスタに記録することによって要求されたり、及び/ま
たはd)選択的な状態がRUNまたはTRIGGEREDであり、命令
トレースがイネーブルから非イネーブルに転換されたか
らである。
The counter structure of this embodiment is based on the assumption that the backward conditional branch's success probability is significantly higher than its failure probability. If the branch is successful, the counter is incremented and no packet is generated. If the branch fails, a BCBIC packet that records the current counter value is generated and the counter is set to zero. Additionally, the following packet types: IA, STF, STV, LD
After A, PF, LPEND, and INT are generated (counter value is 1
If so, the counter is set to 0 (see the discussion of packet morphology below). If the counter overflows, a BCICOV packet will be generated. If the value of the counter is not 0 and the segment ends for one of the following reasons, a SEGEND packet with the counter value is generated and the counter value is cleared to zero, because (a) the segment User-specified command limit is reached, (b) required by a selective external input signal, (c) required by recording in a control register in the RTT, and / or d) selective. This is because the active state is RUN or TRIGGERED and the instruction trace is switched from enabled to unenabled.

【0093】非同期的な命令トレースに関して、非同期
的なPC変化のエンコードは、イベントの形態に依存す
る。
For asynchronous instruction tracing, the encoding of asynchronous PC changes depends on the form of the event.

【0094】本発明の命令トレースは、ゼロオーバーヘ
ッドループメカニズムをさらに含む。特に、PCがゼロオ
ーバーヘッドループ(LP_END-1)で最後の命令に至った
時、ループメカニズムはトリガーされる。仮に、LP_CO
UNTレジスタが1でなければ、PCは、LP_STARTレジスタ
を介してロードされずに、そうでなければPCは増加す
る。仮に、ループ内の最後の命令が分岐またはジャンプ
命令ならば、ループメカニズムによるPCのローディング
は、分岐またはジャンプのための遅延スロット命令の選
択にのみ影響を及ぼす。
The instruction trace of the present invention further includes a zero overhead loop mechanism. In particular, the loop mechanism is triggered when the PC reaches the last instruction in a zero overhead loop (LP_END-1). For example, LP_CO
If the UNT register is not 1, then PC is not loaded via the LP_START register, otherwise PC is incremented. If the last instruction in the loop is a branch or jump instruction, the loading of the PC by the loop mechanism only affects the selection of delay slot instructions for the branch or jump.

【0095】RTTは、LP_STARTへの条件付き分岐命令と
共に処理することによって、ゼロオーバーヘッドループ
トリガーの結果を記録する。ループトリガーは、機能を
入力させるのに使われないため、最大の圧縮構造が使わ
れる。任意の生成されたパケットは、ループでの最後の
命令によって生成された任意のパケット以後のトレース
に位置される。
The RTT records the result of the zero overhead loop trigger by processing with a conditional branch instruction to LP_START. The loop trigger is not used to enter the function, so the maximum compression structure is used. Any generated packet is located in the trace after any packet generated by the last instruction in the loop.

【0096】トレースデコーダは、LP_START及びLP_E
NDの値がループ命令やSR命令によって現在セグメントに
記録された場合には、値を知ることになる。仮にトレー
スデコーダがLP_START及びLP_ENDの値を知らずにゼロ
オーバーヘッドループが使われれば、RTTは、それらの
値を記録するために、LPSTARTパケットに引き続くLPEND
パケットを生成する。
The trace decoder uses LP_START and LP_E
If the value of ND is recorded in the current segment by a loop instruction or SR instruction, the value will be known. If the trace decoder does not know the values of LP_START and LP_END and a zero overhead loop is used, the RTT will record the values of LP_START and LP_END, and the RTT will follow the LPEND packet to record them.
Generate a packet.

【0097】インターラプトが使われるたびに、RTTに
よってインターラプト(INT)パケットが生成される。こ
のようなパケットは、現在のPC値と新しいPC値を記録す
る。例示した実施形態では、たとえ新しいPC値を格納/
提供する他のメカニズムが本発明と合わせて使われ得る
ということを知るようになっても、新しいPC値は、イン
ターラプトベクターテーブルに格納される。
Each time the interrupt is used, the RTT generates an interrupt (INT) packet. Such a packet records the current PC value and the new PC value. In the illustrated embodiment, even if a new PC value is stored /
The new PC value is stored in the interrupt vector table, even if it comes to the knowledge that the other mechanisms provided can be used in conjunction with the present invention.

【0098】(ii)データトレース:本発明のRTTユニット
のデータトレースは、命令をローディングし格納するた
めのデータ値とデータアドレスをキャプチャーする。ユ
ーザーは、ロードデータ、ロードアドレス、格納アドレ
ス及び格納アドレスキャプチャーがイネーブルまたは非
イネーブルとなるか否かを独立的に選択する。また、ユ
ーザーは、キャプチャーのために活性化されるアドレス
空間(メモリ及び補助レジスタ)を独立的に選択する。
(Ii) Data Trace : The data trace of the RTT unit of the present invention captures data values and data addresses for loading and storing instructions. The user independently selects whether load data, load address, storage address and storage address capture are enabled or not enabled. Also, the user independently selects the address space (memory and auxiliary register) to be activated for capture.

【0099】ロードアドレス(LDA)パケットは、ロード
命令が実行される時、ロード命令(LDB、LDW、LD、LR)
のために生成される。ロードデータ(LDD)パケットは、
データがレジスタファイルに再び記録される時に生成さ
れる。固定されたデータサイズ格納(STF)または可変的
なデータサイズ格納(STV)パケットは、格納命令が実行
される時、メモリ格納命令(STB、STW、ST、SR)のために
生成される。仮にSRがUSERレジスタならば、USERパケッ
トがSTFパケットの代りに生成される。USER、LP_STAR
T、またはLP_ENDレジスタに対するデータトレースは、
常にイネーブルになる;静的及びダイナミックなデータ
トレースイネーブル値は無視される。
The load address (LDA) packet is a load instruction (LDB, LDW, LD, LR) when the load instruction is executed.
Generated for. The load data (LDD) packet is
It is generated when the data is recorded again in the register file. Fixed data size store (STF) or variable data size store (STV) packets are generated for memory store instructions (STB, STW, ST, SR) when the store instructions are executed. If SR is a USER register, a USER packet will be generated instead of an STF packet. USER, LP_STAR
The data trace for T or LP_END register is
Always enabled; static and dynamic data trace enable values are ignored.

【0100】仮にデータフィルタリング(本明細書で前
述した)が使われているならば、ロード/格納命令の一部
だけが記録されることができる。特に、仮にデータトレ
ースを実行するためにセットされたアクションパラメー
タ(action parameter)と“データアドレス”または“デ
ータ値”にセットされたソースパラメータを備える、少
なくとも一つのイネーブルフィルタが存在すれば、トレ
ースデコーダは、命令トレースがイネーブルになるとし
ても、キャプチャーされたロード/格納のPCを決定出来
ない。仮にデータフィルタリング及び命令トレースがイ
ネーブルになれば、追加的な情報は、STF/STV/LDAパケ
ットに追加されることによって、それらのPC値を確認す
る。外部格納モードにおいて、これは、セグメント命令
カウンタの値を記録することによって達成される。内部
格納モードでは、セグメントカウンタが使われないの
で、セグメントカウンタは、基準として使われることが
できない。したがって、バッファ内の最も古くなった命
令進入からの命令カウントが代わりに使われる。
If data filtering (as described earlier in this specification) is used, only part of the load / store instructions can be recorded. In particular, if there is at least one enable filter with an action parameter set to perform a data trace and a source parameter set to a "data address" or a "data value", the trace decoder is present. Cannot determine the captured load / store PC even if instruction trace is enabled. If data filtering and instruction tracing are enabled, additional information confirms their PC value by being added to the STF / STV / LDA packets. In external store mode, this is accomplished by recording the value of the segment instruction counter. In internal storage mode, the segment counter cannot be used as a reference because the segment counter is not used. Therefore, the instruction count from the oldest instruction entry in the buffer is used instead.

【0101】(iii)タイミングトレース-本発明のRTTユ
ニット102は、微細な(fine-grained)タイミングの記
録を良好に支援する。微細なタイミングトレースがイネ
ーブルになるので、トレースデコーダは、それぞれの命
令が発行された周期と、命令実行に同期されたイベント
(ロードデータをリターンさせることを含む)が発生した
周期を決定できる。
(Iii) Timing Trace- The RTT unit 102 of the present invention favorably supports recording of fine-grained timing. Fine-grained timing traces are enabled so that the trace decoder can detect the cycle in which each instruction is issued and the events synchronized with instruction execution.
You can determine the cycle at which (including returning the load data) occurs.

【0102】外部キャプチャーデバイス320(図3)
は、概略的な(coarse-grained)タイミングの記録を支援
し、したがってこのデバイスは、外部キャプチャーモー
ドだけで支援される。概略的なタイミングにより、トレ
ースデコーダは、それぞれのパケットがパケットポート
上に送信された周期を決定できる。外部キャプチャーデ
バイスは、それぞれのパケットがパケットポート上に現
れた時、各パケットと関連した周期を記録する。例示の
実施形態で、これはパケットが生成された周期と大きい
相互関連がある。
External capture device 320 (FIG. 3)
Supports coarse-grained timing recording, so the device is only supported in external capture mode. The general timing allows the trace decoder to determine the period in which each packet was sent on the packet port. The external capture device records the period associated with each packet as it appears on the packet port. In the exemplary embodiment, this has a strong correlation with the period in which the packet was generated.

【0103】RTTは、追加的なパケット形態の生成とタ
イミング情報及びタイミングスタンピングのEL結合によ
り前述した微細なタイミングを支援する。微細なタイミ
ングをイネーブルとすることは、生成されるパケットの
量を増加させる。微細なタイミングがイネーブルになる
時に生成されるタイミング情報は、トレースデコーダ
が、命令が発送された時、ロードデータがレジスタファ
イルに記録された時、及び命令実行に同期的なイベント
が発生した時の周期を決定できるようにする。
The RTT supports the fine timing described above by generation of an additional packet form and EL combination of timing information and timing stamping. Enabling fine timing increases the amount of packets generated. The timing information generated when fine timing is enabled is used by the trace decoder when instructions are dispatched, load data is recorded in the register file, and when synchronous events occur in instruction execution. Be able to determine the cycle.

【0104】微細なタイミングが静的に非イネーブルか
ら静的にイネーブルに転換した時、16-ビットタイム-
スタンプが消去される。本実施形態で、そのタイム-ス
タンプは、微細なタイミングが静的にイネーブルとなる
周期毎に増加される。タイム-スタンプは、命令実行(前
述した)に同期されたイベントを記録するために生成さ
れるパケットとSEGSTARTパケットに格納される。タイム
-スタンプがオーバーフローされた時、タイム-スタンプ
オーバーフロー(TSOV)パケットが生成される;図17参
照。
When the fine timing is statically switched from non-enabled to statically enabled, 16-bit time-
The stamp is deleted. In this embodiment, the time-stamp is incremented every period in which fine timing is statically enabled. The time stamp is stored in the SEGSTART packet and the packet generated to record the event synchronized with the instruction execution (described above). time
-When a stamp overflows, a Time-Stamp Overflow (TSOV) packet is generated; see FIG.

【0105】微細なタイミングがイネーブルになり、命
令トレースがイネーブルになった時、RTTユニットは、S
TALLパケットとSICOVパケットを生成する。STALLパケッ
トは、トレースされるプロセッサコア(105)が命令を
発行出来ない周期毎に生成される。例示的な実施形態の
STALLパケットは、たとえ他のSTALLパケット構造及びプ
ロトコルが使われ得ることを知るようになっても、4-
ビット周期カウント、4-ビット命令カウント、及び選
択的に停止理由(stall reason)を含む。STALLパケット
の4-ビット周期カウントは、プロセッサコーダー(10
5)が停止する連続的な周期の数を含む。4-ビット命令
カウントは、命令またはデータトレースにより生成され
た最後のパケットが生成されたので、発行される命令の
数を含む。仮に命令カウンタがオーバーフローされれ
ば、SICOVパケットが生成される。命令カウントは、本
明細書で前述したロードデータ(LDD)パケットに存在す
ることになる。LDDパケットにあるこのような命令カウ
ント情報は、命令トレースがイネーブルになる場合、ロ
ードデータがレジスタファイルに記録された周期を、ト
レースデータが決定できるようにする。このような理由
で、命令トレースは、データトレースがイネーブルにな
る時、オプションとしてイネーブルになる。
When fine timing is enabled and instruction trace is enabled, the RTT unit
Generate TALL and SICOV packets. The STALL packet is generated in each cycle in which the traced processor core (105) cannot issue an instruction. Of the exemplary embodiment
A STALL packet may be 4-, even if it becomes aware that other STALL packet structures and protocols may be used.
Includes bit period count, 4-bit instruction count, and optionally stall reason. The 4-bit period count of the STALL packet is calculated by the processor coder (10
5) includes the number of consecutive cycles that stop. The 4-bit instruction count includes the number of instructions issued since the last packet generated by the instruction or data trace was generated. If the instruction counter overflows, a SICOV packet is generated. The instruction count will be present in the Load Data (LDD) packet described earlier in this specification. Such instruction count information in the LDD packet allows the trace data to determine the period at which the load data was recorded in the register file when instruction trace is enabled. For this reason, instruction trace is optionally enabled when data trace is enabled.

【0106】(iv)雑多なトレース-RTT外部の一つ以上の
信号が値を変更した時、EXTSIGパケットが生成される。
設計者は、どんな信号がモニタリングされるかを限定す
る。USERパケットは、プログラムがRTTユニット102
にあるUSER補助レジスタに対するSR命令を実行させる時
に生成される。記録される値は、USERパケットに格納さ
れる。このようなパケットは、プロセッサコーダー(1
05)上で実行中のプログラムがマーカー(marker)をト
レース内に位置させることができるようにする。
(Iv) Miscellaneous Traces- EXTSIG packets are generated when one or more signals outside the RTT change value.
The designer limits what signals are monitored. In the USER packet, the program is the RTT unit 102.
It is generated when executing the SR instruction for the USER auxiliary register in. The recorded value is stored in the USER packet. Such a packet is sent by the processor coder (1
05) Allow the program running above to place a marker in the trace.

【0107】APEパケットは、アクションポイントが発
生したことを表す。
The APE packet indicates that an action point has occurred.

【0108】次のイネーブルの機能は、例示的な実施形
態のRTTユニット102と関連したプログラム可能なレ
ジスタによって制御される;機能は、次のどんな形態の
トレース情報が潜在的にキャプチャーされるかをユーザ
ーが制御できるようにする:(i)命令トレース(インター
ラプト除外);(ii)インターラプト;(iii)ロードデータ;
(iv)格納データ;(v)ロードアドレス;(vi)格納アドレス;
(vii)メモリや補助レジスタまたは両アドレス空間;(vii
i)微細なタイミング;(ix)タイム-スタンピング;(x)選択
的な外部信号変化の記録;及び(xi)アクションポイント
イベントの記録。
The next enable function is controlled by the programmable registers associated with the RTT unit 102 of the exemplary embodiment; the function determines what form of trace information is potentially captured. Allow user control: (i) instruction trace (exclude interrupts); (ii) interrupts; (iii) load data;
(iv) Stored data; (v) Load address; (vi) Stored address;
(vii) memory or auxiliary register or both address spaces; (vii
i) fine timing; (ix) time-stamping; (x) recording of selective external signal changes; and (xi) recording of action point events.

【0109】ここで、付録Iは、本発明のRTTと関連した
パケットの例示的な実施形態に対するさらなる詳細な説
明を提供する。本発明のパケットは、そのパケット内の
それぞれの可能なフィールドに対する一つの行と、フィ
ールドサイズ(“b”の表示は、ビットを表し、“n”の
表示は、ニブル(nibble)を表す)だけでなく、フィール
ドの名称/機能を表す一つの列を含む表方式のフォーマ
ットを使用して付録Iで説明されている。このような表
方式のフォーマット内でのフィールドは、第1(最初)の
ニブルから最後のニブルまで順に目録化されている。仮
にパケットのニブルがいろいろなフィールドを含むなら
ば、そのフィールドは、最下位ビットから最上位ビット
まで順に目録化されている。ビット0は、本説明のため
に最下位ビットである。ニブルの境界は、それぞれの表
において拡大した行(水平)線で表示されている。仮にニ
ブルがただ部分的に使われるならば、使われないビット
は、予備的なものと処理され、ゼロ(zero)でエンコード
される。
Appendix I now provides a more detailed description of an exemplary embodiment of packets associated with the RTT of the present invention. The packet of the present invention includes only one row for each possible field in the packet, and the field size ("b" designations represent bits and "n" designations represent nibbles). Instead, it is described in Appendix I using a tabular format containing one column that describes the name / function of the field. The fields in such a tabular format are cataloged sequentially from the first (first) nibble to the last nibble. If the nibble of a packet contains various fields, the fields are cataloged in order from least significant bit to most significant bit. Bit 0 is the least significant bit for purposes of this description. The nibble boundaries are represented by expanded row (horizontal) lines in each table. If the nibble is only partially used, the unused bits are treated as preliminary and encoded with zero.

【0110】また、ビットは、パケットの“次のサイ
ズ”のフィールドが存在するかを表すために使われるこ
とができる。もし存在しないならば、サイズは、(サイ
ズの形態によって)デフォルト値として選択される。本
明細書で説明される例示的な実施形態のデフォルト命令
アドレスのサイズは、2ニブルである。同様に、デフォ
ルトデータアドレスサイズは、1ニブルであり、デフォ
ルトデータ値のサイズは、たとえ他の値が代わりに使わ
れることができるとしても、1ニブルである。パケット
で“次のサイズ”のフィールド以後に位置するサイズフ
ィールドは、一部のパケットの場合、ユーザーのセット
(たとえば、STFパケットに対してはデータアドレスサイ
ズフィールド)によって異なる。この場合、“次のサイ
ズフィールド存在”フラッグは、如何なるサイズのフィ
ールドが次に来てもこれを言及する。一部の場合、これ
は全く存在しない。このパケットサイズは、一実施形態
において、より少ないニブル数としてコーディングされ
る。これは、3-ビットサイズフィールドが1ないし8
ニブルを指定できるようにする。
Bits can also be used to indicate whether there is a "next size" field in the packet. If not present, the size is selected as the default value (depending on the size morphology). The default instruction address size for the exemplary embodiments described herein is 2 nibbles. Similarly, the default data address size is 1 nibble and the size of the default data value is 1 nibble, even if other values can be used instead. The size field located after the “next size” field in the packet is set by the user for some packets.
(For example, for STF packets, the Data Address Size field). In this case, the "next size field present" flag refers to whatever size field comes next. In some cases this does not exist at all. This packet size is coded as a smaller number of nibbles in one embodiment. This is a 3-bit size field from 1 to 8
Allows you to specify nibbles.

【0111】STF、STV、及びLDAパケットは、セグメン
ト命令カウントフィールドをさらに含むことができる。
例示的な実施形態で、このようなフィールドは、(i)完
全な15-ビットセグメント命令カウント値、又は(ii)
現在の命令セグメントカウントと最後にエンコードされ
たセグメント命令カウントとの間の3-ビット差(常に正
である)の一方としてエンコードされる。パケット内に
含まれた一つのビットフラッグは、どんなエンコード方
法が使われたかを指定する。セグメント命令カウントが
セグメントにエンコードされる最初の瞬間に、完全な値
がエンコードされる。
The STF, STV, and LDA packets may further include a segment instruction count field.
In an exemplary embodiment, such a field may be (i) a complete 15-bit segment instruction count value, or (ii)
Encoded as one of the 3-bit differences (always positive) between the current instruction segment count and the last encoded segment instruction count. One bit flag included in the packet specifies what encoding method was used. The full value is encoded at the first moment the segment instruction count is encoded in the segment.

【0112】他の実施形態図7を参照すれば、本発明の
第2の例示的な実施形態が詳細に説明されている。この
ような第2の実施形態は、前述した図1ないし図6bの
実施形態と共通の多数の特徴を有し、さらに追加的な特
徴及び改善点をも併合する。次の論議では、このような
追加的な特徴及び改善点を詳細に説明する。しかしなが
ら、二つの実施形態(そして実質的に他の実施形態)から
の所望の特徴は、ここに提供される開示が提供されれ
ば、当業者によってRTT発明の注文製作された実施形態
に容易に併合されることができることが分かるだろう。
したがって、図1及び図7の実施形態は、拡大された本
発明の特徴及び属性に対する多くの可能な置換を例示す
るものに過ぎない。
Other Embodiments Referring to FIG. 7, a second exemplary embodiment of the present invention is described in detail. Such a second embodiment has a number of features in common with the previously described embodiments of Figures 1 to 6b, and also incorporates additional features and improvements. The following discussion details these additional features and improvements. However, the desired features from the two embodiments (and substantially other embodiments) are readily apparent to one of ordinary skill in the art from the tailor made embodiments of the RTT invention, given the disclosure provided herein. It will be appreciated that it can be merged.
Therefore, the embodiments of FIGS. 1 and 7 are merely illustrative of the many possible permutations to the features and attributes of the present invention that have been expanded.

【0113】図7の実施形態においてRTTユニット(70
2)は、(i)命令トレース、(ii)データトレース、(iii)
イベントトレース、及び(iv)タイミングトレースを含む
4形態のトレース情報を提供する。後述するように、こ
の実施形態の“イベント”トレースは、命令実行とは関
連のない、選択されたコア状態変化を記録する。また、
タイミングトレースは、命令タイミングトレース及びイ
ベントタイミングトレースのような二つの成分に分けら
れる。命令タイミングトレースは、命令実行の周期を記
録する。イベントタイミングトレースは、イベントの周
期を記録する。
In the embodiment shown in FIG. 7, the RTT unit (70
2) is (i) instruction trace, (ii) data trace, (iii)
4 types of trace information including an event trace and (iv) timing trace are provided. As described below, the "event" trace of this embodiment records selected core state changes that are unrelated to instruction execution. Also,
Timing traces are divided into two components, such as instruction timing traces and event timing traces. The instruction timing trace records the cycle of instruction execution. The event timing trace records the cycle of the event.

【0114】RTT(702)は、あらゆる正当なコードシ
ーケンス(LOOPENDの場合及びゼロ-費用ループlimmの場
合に対してSRを除外)がキャプチャーされるトレースを
生成する。
RTT (702) produces a trace in which any legal code sequence (SR excluded for LOOPEND and zero-cost loop limm) is captured.

【0115】また、自己−変更コードのカテゴリー下に
あるような格納命令でインターラプトベクター表をロー
ドするプログラムは、それぞれのベクターエントリーの
第1の命令がコンパイルされたソースコードに位置して
いるコードへの無条件的な直接ジャンプの場合に支援さ
れる。
Also, a program that loads an interrupt vector table with a store instruction, such as under the category of self-modifying code, is a code where the first instruction of each vector entry is located in the compiled source code. Assisted in case of an unconditional direct jump to.

【0116】図7のRTTで、各パケットのサイズ及び内
容は、有利にもコンパイルされたソースコードへのアク
セス無しに決定されることができる。
With the RTT of FIG. 7, the size and content of each packet can advantageously be determined without access to the compiled source code.

【0117】前述した図1のRTTのように、図7のRTT
(702)は、構成時(build-time)でのいくつかの設定
と実行時(run-time)での他の設定のような多くの選択事
項を持つ。設計者は、RTLソースでの常数を編集したり
構成する途中に構成をセットすることで、構成時間選択
事項をセットする。ユーザーは、RTTの補助レジスタに
記録するコア上のプログラムを実行させたり、RTT補助
レジスタに記録する外部ホストを用いてデバッグポート
を使用することによって、実行-時間選択事項をセット
する。コアを介してRTT補助レジスタに記録すること
は、前述したようなロックメカニズム(RTT_LOCKレジス
タ)を介してさらに権限が附与されるが、全的に防止さ
れることもできる(RTT_HOST_CTLレジスタのNAWビッ
ト)。ロックは、コアプログラムがRTTレジスタに誤って
記録する確率を減少させる。大部分の実行-時間選択事
項は、ユーザーに対するインターフェースを単純化させ
るためにデバッグ(たとえば前述したSeeCodeデバッグ)
により自動的に処理される。
Like the RTT of FIG. 1 described above, the RTT of FIG.
(702) has many choices such as some settings at build-time and other settings at run-time. The designer sets the configuration time choices by editing the constants in the RTL source and setting the configuration during configuration. The user sets the run-time selections by running the program on the core that records in the RTT auxiliary registers or by using the debug port with an external host that records in the RTT auxiliary registers. Recording to the RTT auxiliary register via the core is further authorized via the locking mechanism (RTT_LOCK register) as described above, but it can also be prevented entirely (NAW bit in the RTT_HOST_CTL register). ). Locking reduces the probability that the core program will erroneously record in the RTT register. Most run-time choices are debugs to simplify the interface to the user (eg SeeCode debugs described above)
Automatically processed by.

【0118】動作中に、仮にRTTトレースバッファが新
しいトレース情報の記録を続いて維持する程に十分に早
く排出されることができなければ、バッファは、オーバ
ーフローされる。RTTは、バッファがオーバーフローさ
れる時、コアをインターラプトするように構成されるこ
とができる(RTT_BUF_CTLレジスタのI/Oビット)。バッ
ファがオーバーフローされることを完璧に防ぎ、あらゆ
る命令がトレースされることを保障するために、完全な
トレースモードが選択されることができる(RTT_EN_DI
S_CTLレジスタのFTビット)。完全なトレースモード
で、コアは、バッファがオーバーフローされることを防
止するために停止する。
In operation, if the RTT trace buffer cannot be drained fast enough to subsequently keep a record of new trace information, the buffer will overflow. RTT can be configured to interrupt the core when the buffer overflows (RTT_BUF_CTL register I / O bit). Full trace mode can be selected (RTT_EN_DI) to completely prevent the buffer from overflowing and to ensure that every instruction is traced.
FT bit of S_CTL register). In full trace mode, the core stalls to prevent buffer overflows.

【0119】また、図7の実施形態は、“フラットン(f
latten) ”ユニット(770)を含む。フラットンユニ
ット(770)は、プロセッサを観測し、命令、インタ
ーラプト、ループトリガー及びロードデータイベントが
発生する時を決定する。フラットンユニットの動作は、
以下で詳細に説明する。
In addition, the embodiment of FIG.
latten) "unit (770). The flatten unit (770) observes the processor and determines when instruction, interrupt, loop trigger and load data events occur.
The details will be described below.

【0120】本発明のパケットポートは、格納デバイス
にパケット(信号rtt_pkt_data)を伝送する。もしバッ
ファがオーバーフローされると、インターラプトが選択
的にコアに伝送される。
The packet port of the present invention transmits a packet (signal rtt_pkt_data) to the storage device. If the buffer overflows, the interrupt is selectively transmitted to the core.

【0121】動作中に、ハードウェアの再セットが発生
した時、RTT(702)は、非イネーブルとになるように
セットされ、すなわち非-トリガーされた状態にセット
され、そのバッファは消去される。RTTがイネーブルに
なる時にだけ、生成ユニット(744)はトレース情報を
記録し、モニターユニット(742)はトリガーを監視す
る。バッファ(712)は、バッファ内のパケットをパケ
ットポートに排出する。RTTが非イネーブルの状態から
イネーブルの状態に転換する時、バッファが消去され、
トリガーが消去され(RTTがイネーブルになる同じ瞬間に
セットされなければ)、トレース情報を記録するために
使われた生成ユニット(744)の任意の内部状態が消去
される。トリガーが発生した時、RTTは、出力パケット
ストリームにトリガーを記録して、キャプチャーデバイ
ス(722)がトリガーの発生時に、自分の動作を変更で
きるようにする。仮にキャプチャーデバイスがRTTから
トリガーを検出した時、ポスト-トリガー(post-trigge
r)のためにセットされれば、最小モードがRTT_DIS_CT
LレジスタのMMビットを1にセットすることで、イネー
ブルになることができる。最小モードで、RTTは、自分
がトリガーされない時、極めて低い速度でパケットを生
成し、その後、トリガーされた時、正常的にパケットを
生成する。このモードは、事実上トリガーが発生する前
にバッファがオーバーフローされないということを保障
する。
In operation, when a hardware reset occurs, RTT (702) is set to be non-enabled, ie, set to the non-triggered state and its buffer is cleared. . Only when RTT is enabled, the generation unit (744) records the trace information and the monitor unit (742) monitors the trigger. The buffer (712) discharges the packet in the buffer to the packet port. When RTT transitions from the non-enabled state to the enabled state, the buffer is erased,
The trigger is cleared (unless set at the same moment when RTT is enabled) and any internal state of the generation unit (744) used to record the trace information is cleared. When a trigger occurs, the RTT records the trigger in the output packet stream so that the capture device (722) can change its behavior when the trigger occurs. If the capture device detects a trigger from the RTT, post-trigger (post-trigge
r), the minimum mode is RTT_DIS_CT
It can be enabled by setting the MM bit in the L register to 1. In minimal mode, the RTT will generate packets at a very low rate when it is not triggered and then normally when it is triggered. This mode effectively guarantees that the buffer will not overflow before the trigger occurs.

【0122】RTT_STAT補助レジスタのENビットは、RTT
が現在イネーブルになっているか否かを示す。RTTは、
適当な命令をRTT_CMDレジスタに記録するコアまたはホ
ストにより、または0から1に転換するrtt_en_on及
びrtt_en_off入力信号によりイネーブルになるか非イ
ネーブルとなる。また、モニターは、プログラムされた
状況が発生する時、RTTを非イネーブルにすることがで
きる。
The EN bit of the RTT_STAT auxiliary register is
Indicates whether is currently enabled. RTT is
It is enabled or disabled by the core or host recording the appropriate instruction in the RTT_CMD register, or by the rtt_en_on and rtt_en_off input signals turning from 0 to 1. The monitor can also disable RTT when a programmed situation occurs.

【0123】RTT_STAT補助レジスタのTRビットは、RTT
が現在トリガーされているか否かを示す。RTTは、たと
えば(a) 適当な命令をRTT_CMDレジスタに記録するコア
やホスト、(b)トリガー状況を検出するモニター、(c)ア
クションポイントトリガー、または(d)0から1に転換
するrtt_trig_on入力信号によりトリガーされる。
The TR bit of the RTT_STAT auxiliary register is RTT
Indicates whether is currently triggered. RTT is, for example, (a) a core or host that records an appropriate instruction in the RTT_CMD register, (b) a monitor that detects the trigger status, (c) an action point trigger, or (d) an rtt_trig_on input signal that changes from 0 to 1. Triggered by.

【0124】仮に完全なトレースが非イネーブルになれ
ば、RTTは、バッファのオーバーフローが発生した時、
トレース情報をキャプチャーすることをブレーキし、バ
ッファがプログラム可能な空き値(programmable emptin
ess value)に至った時に再開する。RTT_STAT補助レジ
スタのOVビットは、バッファがオーバーフロー状態にあ
るか否かを表す。仮に完全なトレースがイネーブルにな
れば、RTTは、バッファのオーバーフローを防止するた
めに、コアパイプラインを厳格に停止させる。これは、
一部のアプリケーションでは好ましくないこともある。
If full trace is not enabled, RTT will
It brakes the capture of trace information and the buffer has a programmable empty value.
Resume when the ess value) is reached. The OV bit of the RTT_STAT auxiliary register indicates whether the buffer is in an overflow condition. If full tracing is enabled, RTT stalls the core pipeline to prevent buffer overflow. this is,
It may not be desirable for some applications.

【0125】また、本実施形態(図7)のRTTは、特定の
数の内部モニターを含む。それぞれのモニターは、ダイ
ナミックにトレースキャプチャーを制御し、トリガーを
検出するために、フラットンユニット(770)からのト
レース情報を観測する。モニターは、トリガー、フィル
タ、または両方で構成される。フィルタは、ユーザー
が、全体プログラムの代りに実行プログラム部分をトレ
ースすることによってキャプチャーされるトレース情報
の量を減少させることができるようにする。
The RTT of this embodiment (FIG. 7) also includes a certain number of internal monitors. Each monitor dynamically controls the trace capture and observes the trace information from the Flatton unit (770) to detect the trigger. The monitor consists of triggers, filters, or both. The filter allows the user to reduce the amount of trace information captured by tracing the executing program portion instead of the entire program.

【0126】それぞれのモニターは、ダイナミックなイ
ネーブルマスク、ソース、相互関連、動作及びトリガー
でプログラムされる。モニターは、RTTが非イネーブル
になる時、プログラムされる。以下で、このような特徴
をより詳細に説明する。
Each monitor is programmed with a dynamic enable mask, sources, correlations, actions and triggers. The monitor is programmed when RTT is de-enabled. Hereinafter, such features will be described in more detail.

【0127】モニターがフィルタ動作を行う時には、ど
のようなダイナミックなイネーブルがフィルタによって
影響を受けるかを指定するダイナミックなイネーブルマ
スクが使われる。命令トレースダイナミックイネーブ
ル;命令タイミングトレースダイナミックイネーブル;デ
ータトレースダイナミックイネーブルを含むそれぞれの
ダイナミックなイネーブルのために1ビットが存在す
る。仮に命令タイミングトレースダイナミックイネーブ
ルやデータトレースダイナミックイネーブルが“1”な
らば、命令トレースダイナミックイネーブルは、“1”
となるように強要される。仮に任意のフィルタがデータ
トレースに影響を与えるように構成されると、データフ
ィルタリングが活性化される。データフィルタリングが
活性化した時、RTTは、DATAパケットにセグメント命令
オフセットを含むように構成されなければならない。こ
れは、トレースデコーダプログラムが、どんなロード/
格納がDATAパケットと関連されるかを決定できるように
するために行われる。
When the monitor performs a filtering operation, it uses a dynamic enable mask that specifies what dynamic enable is affected by the filter. There is one bit for each dynamic enable including instruction trace dynamic enable; instruction timing trace dynamic enable; data trace dynamic enable. If the instruction timing trace dynamic enable and the data trace dynamic enable are “1”, the instruction trace dynamic enable is “1”.
Is forced to become. If any filter is configured to affect the data trace, data filtering is activated. When the data filtering is activated, the RTT should be configured to include the segment command offset in the DATA packet. This is what the trace decoder program loaded / loaded
It is done so that it can be decided whether the storage is associated with a DATA packet.

【0128】ユーザーは、イネーブルに変わる時パケッ
トが生成されるので、命令トレース及び命令タイミング
トレースと関連したフィルタに対して注意すべきであ
る。特に、SEGSTARTパケットは、命令トレースがイネー
ブルになるたびに生成され、ITTDENパケットは、命令タ
イミングのトレースダイナミックイネーブルが値を変え
るたびに生成され、STALLパケットは、ストール周期カ
ウンタがフラッシュ(flush)される必要がある場合、命
令タイミングのトレースダイナミックのイネーブルが非
イネーブルになる時に生成される。SEGSTARTパケット
は、ITTDENパケットよりずっと大きく、したがって、SE
GSTARTパケットは、バッファのオーバーフローにより大
きな悪影響を与えることになる。
The user should be aware of the filters associated with the instruction trace and instruction timing trace as packets will be generated when enabled. In particular, the SEGSTART packet is generated each time the instruction trace is enabled, the ITTDEN packet is generated each time the instruction timing trace dynamic enable changes value, and the STALL packet is flushed the stall period counter. Generated when the instruction timing trace dynamic enable is de-enabled, if needed. SEGSTART packets are much larger than ITTDEN packets and therefore SE
GSTART packets will have a major negative impact on buffer overflow.

【0129】本実施形態のモニターソースは、命令アド
レス、データアドレス及びデータ値(ST、SR、LR命令の
み)を含む。データアドレスとデータ値は、方向(ロー
ド、格納、またはいずれか一方)及びアドレス空間(メモ
リ、補助レジスタ、またはいずれか一方)にさらに指定
される。
The monitor source of this embodiment includes an instruction address, a data address and a data value (ST, SR, LR instructions only). Data addresses and data values are further specified in direction (load, store, and / or) and address space (memory, auxiliary registers, and / or one).

【0130】図1の実施形態のように、許容されたモニ
ター関係は、次の通りである:大きいか同じ(≧)、小さ
い(<)、同じ(=)及び異なる(≠)。その関係は、それぞれ
のモニターに関連した32-ビットのプログラム可能な
値に対してソース値を比較する。しかし、本実施形態で
のモニターアクションは、表3の内容を含む。
As in the embodiment of FIG. 1, the allowed monitor relationships are as follows: greater than or equal (≧), less than (<), the same (=) and different (≠). The relationship compares the source value to the 32-bit programmable value associated with each monitor. However, the monitor action in this embodiment includes the contents of Table 3.

【0131】[0131]

【表3】 [Table 3]

【0132】それぞれのモニターは、それぞれのダイナ
ミックなイネーブルに対する開始、ブレーキ、許容及び
防止信号を提供する。仮にいろいろなモニターが相反動
作を要求しているならば(開始/停止または許容/防止)、
最も低いインデックスを有するモニターが優勢である
(モニターは、たとえ他のスキームが容易に代替され得
ることが分かるが、本実施形態では、ゼロから1以下の
モニターの数まで番号が付けられる)。
Each monitor provides start, brake, allow and prevent signals for each dynamic enable. If various monitors require reciprocal motion (start / stop or allow / prevent),
The monitor with the lowest index is dominant
(The monitors are numbered from zero to the number of monitors less than or equal to 1 in this embodiment, although it will be appreciated that other schemes can be easily substituted).

【0133】仮に許容/防止アクションが活性化され
ば、このアクションは、ダイナミックなイネーブルの現
在値を無視する。許容/防止動作が非活性になる時、ダ
イナミックなイネーブルの値は、許容/防止が活性化す
る前に存在する値に戻る。
If the allow / prevent action is activated, this action ignores the current value of the dynamic enable. When the allow / prevent operation is deactivated, the value of the dynamic enable returns to the value that existed before the allow / prevent was activated.

【0134】それぞれのモニターは、トリガーとしても
構成されることができる。モニターと関連した“トリガ
ー”条件が真である時、RTTは、トリガーされる。図1
の実施形態のように、本実施形態におけるモニターの状
況は、より複雑なテストを生成するために共に結合され
ることができる(論理AND)。それぞれの対(インデックス
2n及び2n+1)が選択的に結合されるか、それぞれの
クワッド(quad)(インデックス4n、4n+1、4n+2及び
4n+3)が選択的に結合されることができる。モニター
が結合された時、それぞれのモニターの条件は、対また
はクワッドのすべての他のモニターも真である場合にの
み、真となる。対またはクワッドのすべての他のモニタ
ーは、固有のアクションを有し、同一にプログラムされ
たフィールドをトリガーする。ソース及び関連フィール
ドは、互いに異なってもよい。
Each monitor can also be configured as a trigger. The RTT is triggered when the "trigger" condition associated with the monitor is true. Figure 1
Like the embodiments of the above, the situations of the monitors in this embodiment can be combined together (logical AND) to generate more complex tests. Either each pair (index 2n and 2n + 1) is selectively combined, or each quad (index 4n, 4n + 1, 4n + 2 and 4n + 3) is selectively combined. You can When monitors are combined, the condition for each monitor is true only if all other monitors in the pair or quad are also true. All other monitors in a pair or quad have unique actions and trigger the same programmed field. The source and related fields may be different from each other.

【0135】任意のアドレス範囲は、“より大きいか同
じ”関係を有する一つのモニターと、“より小さい”関
係を有する第2のモニターとを組合わせることでテスト
することができる。特定のデータアドレスに対するデー
タ値は、データアドレスを有するモニターとデータ値を
有するモニターとを組合わせることでテストされる。ま
た、他のテスト方法も使われることができる。
Any address range can be tested by combining one monitor with a "greater than or equal" relationship with a second monitor with a "less than" relationship. The data value for a particular data address is tested by combining the monitor with the data address and the monitor with the data value. Other test methods can also be used.

【0136】機能途中にトレースを非イネーブルとする
ために(しかし、呼出した機能は非イネーブルとしな
い)、モニター対が組合わされる。モニターは、防止動
作、命令アドレスソース及び機能において第1の命令の
アドレスから機能内の最後の命令までのアドレス範囲で
プログラムされる。
Monitor pairs are combined to deactivate traces in the middle of a function (but do not deactivate the called function). The monitor is programmed in the address range from the address of the first instruction to the last instruction in the function in preventive action, instruction address source and function.

【0137】機能途中にトレースを非イネーブルとする
ために(そして呼出したあらゆる機能を非イネーブルと
するために)、モニターは、機能進入点に対して使用
し、モニターは、機能出口点それぞれのために使用す
る。進入点フィルタは、ブレーキ動作、命令アドレスソ
ース及び機能において第1の命令のアドレスでプログラ
ムされる。出口点モニターは、開始アクション、命令ア
ドレスソース、及び出口点のアドレスでプログラムされ
る。
To deactivate tracing mid-function (and to deactivate any function it calls), monitor is used for the function entry point and monitor is for each function exit point. To use. The entry point filter is programmed with the address of the first command in braking operation, command address source and function. The exit point monitor is programmed with a start action, an instruction address source, and an exit point address.

【0138】データエンコーディング下で、本実施形態
のRTTモジュール702は、各形態のアドレス(命令及び
データ)のうち、一番最近にエンコードされたアドレス
の全アドレスを格納するために、2つ(4つに対して)の
レジスタを使用する。これらアドレスは、その次に記録
されるアドレスに対する固有部分を計算するのに使われ
る。
Under the data encoding, the RTT module 702 of this embodiment stores two (4) addresses in order to store all addresses of the most recently encoded address among the addresses (command and data) of each format. Register). These addresses are used to calculate the unique part for the next recorded address.

【0139】以前のように、トレースは、独立的にデコ
ードされるそれぞれのセグメントを有するセグメントと
して構成される。セグメントは、SEGSTARTパケットで始
まり、その次のSEGSTARTパケットで終わる。一般的に、
SEGSTARTパケットは、セグメント内において一番目に実
行されるか、又はインターラプトされる命令の完全な2
4-ビットアドレスを含む。RTTが非イネーブルになる時
に生成されるSEGSTARTパケットは、例外である。このSE
GSTARTパケットは、パイプライン(まだ実行又はインタ
ーラプトされない)での次の命令アドレスを含む。
As before, the trace is organized as a segment with each segment independently decoded. A segment starts with a SEGSTART packet and ends with the next SEGSTART packet. Typically,
The SEGSTART packet is the complete two instructions that are executed or interrupted first in the segment.
Contains a 4-bit address. The exception is the SEGSTART packet generated when RTT is deenabled. This SE
The GSTART packet contains the next instruction address in the pipeline (not yet executed or interrupted).

【0140】データアドレスを含むセグメントでの第1
のパケットは、完全なデータアドレス(他の決定因が使
われることもできるが、この場合には、エクスツチル(e
xtutil)RTLソースファイルにあるext_a_幅パラメータ
によって指定されるサイズ)を使用する。これらの完全
なアドレスの記録により、後続する部分アドレスは、現
在セグメント以前のアドレスを参考しない。このSEGSTA
RTパケットは、少なくとも4つのゼロニブルだけ先行す
ることによって、外部キャプチャーデバイスやトレース
デコーダにより一つのトレースで容易に位置することが
できる。
First in segment containing data address
Packet is a complete data address (other determinants can be used, but in this case, the extension (e
xtutil) use the size specified by the ext_a_width parameter in the RTL source file. Due to the recording of these complete addresses, the subsequent partial addresses do not reference the addresses before the current segment. This SEGSTA
The RT packet can be easily located in one trace by an external capture device or trace decoder by leading it by at least four zero nibbles.

【0141】SEGSTARTは、次のような条件では、RTTに
より生成される:(i)セグメントでユーザーが指定した限
界に到達される(RTT_SEG_CTL。SEGMAX);(ii)バッファ
オーバーフローが消去される;(iii)それが選択的な外部
入力信号(rtt_new_seg)によって要求される;(iv)それ
がCMD_NS命令RTT_CMDレジスタに記録することによっ
て要求される;(v)RTTはトリガーされる;(vi)RTTは非イ
ネーブルになる;(vii)命令トレースが始まる;(viii)RTT
はイネーブルとなり、命令トレースが開始またはフィル
タによって一時的に非イネーブルになった後、イネーブ
ルになる;または(ix)RTTはイネーブルとなり、命令トレ
ースもイネーブルとなること。
SEGSTART is generated by RTT under the following conditions: (i) A segment specified by the user is reached in the segment (RTT_SEG_CTL.SEGMAX); (ii) Buffer overflow is cleared; ( iii) It is requested by a selective external input signal (rtt_new_seg); (iv) It is requested by recording in the CMD_NS instruction RTT_CMD register; (v) RTT is triggered; (vi) RTT is De-enabled; (vii) instruction trace begins; (viii) RTT
Is enabled and is enabled after the instruction trace is started or temporarily de-enabled by the filter; or (ix) RTT is enabled and the instruction trace is also enabled.

【0142】本実施形態において、あらゆる場合(RTTの
非イネーブル時には除外)に対して生成されるSEGSTART
は、遅延スロットに位置した命令により始まることがで
きない。セグメントの開始は、遅延スロットにない第1
の命令が実行されるか、命令がインターラプトされる時
まで遅延される。RTT702が非イネーブルになる時に
生成されるSEGSTARTは、遅延スロットに関して何らの制
約を有しない。
In this embodiment, SEGSTART generated for all cases (excluded when RTT is not enabled)
Cannot start with the instruction located in the delay slot. The start of the segment is the first not in the delay slot
Is delayed until the instruction is executed or the instruction is interrupted. The SEGSTART generated when RTT 702 is de-enabled has no restrictions on delay slots.

【0143】格納デバイスは、一般的に、トレースサイ
ズがその格納容量サイズを超過する場合、既存のトレー
ス情報を廃棄する。格納デバイスは、セグメント境界を
認知せず、トレースの開始を廃棄する。これは、メモリ
内の最も古くなったセグメントが通常自分のSEGSTARTパ
ケットを逃し(missing)、デコードされることができな
いことを意味する。ユーザーは、セグメントが非イネー
ブルなトレースのサイズを制限する程に十分に小さくな
るように、RTTを構成する。しかし、セグメント境界が
決定され考慮されるシステムも、本発明と合わせて具現
されることが出来ることはもちろんである。
The storage device generally discards existing trace information if the trace size exceeds its storage capacity size. The storage device is unaware of the segment boundaries and discards the start of the trace. This means that the oldest segment in memory usually misses its SEGSTART packet and cannot be decoded. The user configures the RTT so that the segment is small enough to limit the size of non-enabled traces. However, it goes without saying that a system in which segment boundaries are determined and taken into consideration can also be implemented in conjunction with the present invention.

【0144】また、本実施形態のRTTは、15-ビットセ
グメント命令オフセットカウンタを含むが、このカウン
タは、新しいセグメントが始まり、命令が実行される時
ごとに増加される時、ゼロにリセットされる。カウンタ
は、命令オフセットをセグメントで生成するために使わ
れ、命令トレース及び/またはデータトレースがイネー
ブルになる途中に、セグメントにより担当になる実行命
令の最大数を制限するために使われる。
The RTT of this embodiment also includes a 15-bit segment instruction offset counter, which is reset to zero when a new segment is started and incremented each time an instruction is executed. . The counter is used to generate the instruction offset in the segment and to limit the maximum number of executed instructions taken by the segment while instruction trace and / or data trace is being enabled.

【0145】図7の実施形態のパケットポートプロトコ
ルを詳細に説明する。
The packet port protocol of the embodiment of FIG. 7 will be described in detail.

【0146】前述したように、パケットポート709
は、パケットバッファ712を排出させるために使われ
る。パケットポート709の帯域幅は、バッファがほと
んどオーバーフローしない程度に十分に大きくしなけれ
ばならない。バッファがオーバーフローされる時、パケ
ットキャプチャーは、バッファが特定数の自由ニブル
(ゼロでもよい)に排出するように許容される途中に一時
遅延される。新しいセグメントは、パケットキャプチャ
ーが再開する前に始まる。ユーザーは、オーバーフロー
がコアへのインターラプトを発生させるか否かを制御す
る。ユーザーは、CMD_CB命令をRTT_CMDレジスタに記
録することによって、バッファを消去させることができ
る。
As described above, the packet port 709
Are used to drain the packet buffer 712. The bandwidth of the packet port 709 should be large enough so that the buffers almost never overflow. When the buffer is overflowed, packet capture will give the buffer a certain number of free nibbles.
It is temporarily delayed while allowed to be discharged (may be zero). The new segment begins before packet capture resumes. The user controls whether the overflow causes an interrupt to the core. The user can erase the buffer by recording the CMD_CB instruction in the RTT_CMD register.

【0147】本実施形態に対するパケットポート幅は、
32ビットである。しかし、4、8、及び16または他
のビット数のパケットポート幅が使われることができ
る。設計者は、帯域幅及びピンカウント値の考慮に基づ
いて適切なビット数を選択する。パケットデータは、RT
T出力信号のrtt_pkt_dataに伝送される。この信号
は、サイズにおいて32ビットであるが、ポート幅が3
2ビットより小さい場合、あらゆるビットが使われる。
この実施形態に使われないビットは、最上位ビットであ
る。
The packet port width for this embodiment is
It is 32 bits. However, packet port widths of 4, 8, and 16 or other numbers of bits can be used. The designer selects an appropriate number of bits based on considerations of bandwidth and pin count value. Packet data is RT
The T output signal is transmitted to rtt_pkt_data. This signal is 32 bits in size but has a port width of 3
If less than 2 bits, every bit is used.
The bits not used in this embodiment are the most significant bits.

【0148】本実施形態のパケットポートプロトコル
は、パケット内部において所定数“X”(たとえば4)ま
たはそれ以上の連続的なゼロニブルシーケンスが決して
存在しないように設計される。仮にトレースデコーダが
4またはそれ以上の連続的なゼロニブルを発見すれば、
それは、その次の非−ゼロニブルが新しいパケットの開
始であることを知ることになる。たとえパケット境界が
知られていないとしても、SEGSTARTパケットの開始が検
出されるように許容するために、SEGSTARTパケットは、
少なくとも4つのゼロニブルを前に付ける(prefix)。
The packet port protocol of this embodiment is designed such that there will never be a predetermined number of "X" (eg, 4) or more consecutive zero nibble sequences within the packet. If the trace decoder finds 4 or more consecutive zero nibbles,
It will know that the next non-zero nibble is the start of a new packet. To allow the start of a SEGSTART packet to be detected, even if the packet boundaries are unknown, the SEGSTART packet is
Prefix with at least 4 zero nibbles.

【0149】4またはそれ以上の連続的なゼロニブルシ
ーケンスがパケット内に現れることを防止するために、
本明細書で前述したようないわゆる“ニブルスタッフィ
ング(nibble stuffing) ”が行われる。特に、3つの連
続的なゼロニブルがパケット内に存在する時ごとに、RT
Tは、3つのゼロ以後にひとつまたはそれ以上のニブル
を追加する。追加される最後のニブルは、0xfの値を
有し、その前に追加される任意の他のニブルは、0x8
の値を有する。トレース格納デバイスは、詰まったニブ
ルを除去せず、むしろトレースデコーダプログラムがそ
れらを除去する。
In order to prevent 4 or more consecutive zero nibble sequences appearing in a packet,
So-called "nibble stuffing" is performed as described herein above. In particular, every time there are three consecutive zero nibbles in the packet, RT
T adds one or more nibbles after the three zeros. The last nibble added has a value of 0xf, and any other nibble added before it is 0x8.
Has a value of. The trace storage device does not remove stuck nibbles, but rather the trace decoder program removes them.

【0150】本実施形態のパケットポート772は、rt
t_pkt_holdと呼ばれるポート停止入力信号を支援す
る。この信号がハイ(high)である限り、RTT702は、
パケットポート709上で新しい値を駆動することが出
来ない。また、パケットポートは、rtt_pkt_startと
呼ばれるそれぞれのニブルに対するパケット信号の開始
を含む。これら信号は、それらの対応するニブルがパケ
ットにある第1のニブルである時にアサートされる。こ
のようなポート信号の開始は、典型的にパケットポート
ピンカウントでの追加的な諸費用(たとえば25%)によ
ってチップ外に運搬されない。代りに、それらは、いろ
いろなRTTからパケット境界を容易に検出するために、M
ATI(図22に関連して後述する)により使われる。
The packet port 772 of this embodiment is rt
Supports a port stop input signal called t_pkt_hold. As long as this signal is high, RTT702
Unable to drive new value on packet port 709. The packet port also contains a start of packet signal for each nibble called rtt_pkt_start. These signals are asserted when their corresponding nibble is the first nibble in the packet. The start of such a port signal is typically not carried off-chip due to the additional overhead in packet port pin count (eg, 25%). Instead, they use M to easily detect packet boundaries from various RTTs.
Used by ATI (discussed below in connection with FIG. 22).

【0151】表4及び表5は、本実施形態に使われるパ
ケット形態に対する例示的なパケット形態コードを提供
する。
Tables 4 and 5 provide exemplary packet form codes for the packet forms used in this embodiment.

【0152】[0152]

【表4】 [Table 4]

【0153】[0153]

【表5】 [Table 5]

【0154】付録IIは、このようなパケット上に追加的
な詳細事項(detail)を提供する。付録IIに対して、完全
な命令アドレスは、24-ビット長さ-ワードアドレスで
ある。フルデータアドレスのサイズは、ext_utilRTLソ
ースファイル(最小32ビットである)でext_a_width
パラメータにより指定される。データアドレスは、バイ
トアドレスである。共通スキームは、パケットにおいて
次のサイズのフィールドが存在する場合を表すために、
ビットを使用することである。もし存在しないならば、
サイズは、サイズ形態によるデフォルト値である。デフ
ォルト命令アドレスのサイズは、2ニブルであり、デフ
ォルトデータアドレスのサイズは、1ニブルであり、デ
フォルトデータ値のサイズは、1ニブルである。次のサ
イズフィールド以後にパケットに位置するサイズフィー
ルドは、一部パケット(たとえば、DATAパケットに対す
るデータアドレスのサイズ)に対するユーザーセットに
依存することができる。この場合、その次のサイズフィ
ールド存在フラッグは、どんなサイズフィールドがその
次であるかを表す。或る場合には、他のサイズフィール
ドが全く存在しないこともあり、フラッグが無視されな
ければならない。サイズは、一般的に1より少ないニブ
ルの数としてエンコードされる。これは、3-ビットサ
イズフィールドが1ないし8ニブルのサイズを指定する
ように許容する。DATAパケットは、セグメント命令オフ
セットフィールドを含むことができる。このフィールド
は、最大15-ビットセグメント命令オフセット値また
は現在の命令セグメントオフセットと最後にエンコード
されたセグメント命令オフセット間の3-ビット差異(常
に正)のいずれか一方としてエンコードされる。パケッ
ト内の1-ビットフラッグは、どんなエンコーディング
方法が使われたかを指定する(1は、3-ビット値と同一
であり、0は、15-ビット値と同一である)。SEGSTART
パケットの生成は、セグメント命令オフセットをゼロに
セットする。SRSPECパケットは、セグメント命令オフセ
ットフィールドを含む。それは、完全な15-ビット値
としてエンコードされる。
Appendix II provides additional details on such packets. For Appendix II, the complete instruction address is a 24-bit length-word address. The size of full data address is ext_a_width in ext_util RTL source file (minimum 32 bits)
It is specified by the parameter. The data address is a byte address. The common scheme is to represent when there is a next sized field in the packet:
Is to use a bit. If it doesn't exist,
The size is a default value according to the size form. The size of the default instruction address is 2 nibbles, the size of the default data address is 1 nibble, and the size of the default data value is 1 nibble. The size field located in the packet after the next size field may depend on the user set for some packets (eg, the size of the data address for DATA packets). In this case, the next size field present flag indicates what size field is next. In some cases, other size fields may not be present at all and the flag should be ignored. The size is typically encoded as the number of nibbles less than one. This allows the 3-bit size field to specify a size of 1-8 nibbles. The DATA packet may include a segment command offset field. This field is encoded either as a maximum 15-bit segment instruction offset value or a 3-bit difference between the current instruction segment offset and the last encoded segment instruction offset (always positive). The 1-bit flag in the packet specifies what encoding method was used (1 is the same as the 3-bit value and 0 is the same as the 15-bit value). SEGSTART
The packet generation sets the segment instruction offset to zero. The SRSPEC packet contains a segment command offset field. It is encoded as a complete 15-bit value.

【0155】前述したように、図7の実施形態のRTTに
よってキャプチャーされるトレースイベントの4形態が
次のように存在する:1)命令トレース、2)データトレ
ース、3)イベントトレース、及び4)タイミングトレー
ス。
As mentioned above, there are four forms of trace events captured by the RTT of the embodiment of FIG. 7 as follows: 1) instruction trace, 2) data trace, 3) event trace, and 4). Timing trace.

【0156】同期的な命令トレースに関して、本実施形
態は、条件付き命令がその命令内に“Q”フィールドを
有することを利用するが、このフィールドは、“alway
s”(0x00)を除外した任意の値にセットされる。無条
件の命令は、その命令内にQフィールドを有しないか、
選択的にQフィールドを有するが、“always”に対する
値にセットされる。拡張命令は、このような命令が条件
的でないことをコアパイプラインに知らせるために、ス
テージ3で命令の最下位5ビット、すなわちxshimm信号
の非−標準コーディングを使用する。RTTは、xshimm信
号を無視することによって、あらゆる拡張命令がQフィ
ールドを有するものと見なす(それらが短い近接データ
を使用しない場合)。
For synchronous instruction tracing, this embodiment takes advantage of the fact that conditional instructions have a "Q" field within them, which is "alway".
Set to any value except s "(0x00). Unconditional instructions have no Q field in the instruction,
It optionally has a Q field, but is set to the value for "always". The extension instructions use the least significant 5 bits of the instruction in stage 3, the non-standard coding of the xshimm signal, to inform the core pipeline that such instructions are not conditional. The RTT considers every extension instruction to have a Q field by ignoring the xshimm signal (unless they use short proximity data).

【0157】ハイ及びローの2つの同期命令圧縮モード
が存在する。RTT_PKT_CTLレジスタのLCMビットは、ど
んなモードが活性化されるかを制御する。これら2つの
圧縮モードは、一般的に図1の実施形態に関して本明細
書で前述した最大/最小モードと類似している(図5a及
び図5bに関する論議を参照)。
There are two synchronous instruction compression modes, high and low. The LCM bit of the RTT_PKT_CTL register controls what mode is activated. These two compression modes are generally similar to the maximum / minimum modes described earlier herein with respect to the embodiment of Figure 1 (see discussion regarding Figures 5a and 5b).

【0158】図1の実施形態と同様に、仮に高い-圧縮
エンコードが後方向条件付き分岐命令のために選択され
れば、図7の実施形態において、RTT_PKT_CTLレジス
タのUPCビットは、追加的に2種類のエンコード方法の
一方(すなわち、PFパケットまたはBCBPCパケットに記録
されるマルチビットカウンタ)を選択する。図1の実施
形態と同様に、カウンタ方法は、PFパケットを使用する
ことより、顕著に良好な圧縮を提供する。本実施形態に
おいて、カウンタは、IA、PF、DATA、SRSPEC、LPPC、LP
PCOV、LPTRIG、またはSTALLパケットが生成された後、
ゼロにセットされる。もしカウンタがオーバーフローさ
れれば、BCBPCOVパケットが生成される。
Similar to the embodiment of FIG. 1, if high-compression encoding is selected for the backward conditional branch instruction, then the UPC bit of the RTT_PKT_CTL register in the embodiment of FIG. Select one of the encoding methods (ie, the multi-bit counter recorded in the PF packet or BCBPC packet). Similar to the embodiment of FIG. 1, the counter method provides significantly better compression by using PF packets. In this embodiment, the counter is IA, PF, DATA, SRSPEC, LPPC, LP.
After a PCOV, LPTRIG, or STALL packet is generated,
Set to zero. If the counter overflows, a BCBPCOV packet is generated.

【0159】仮にカウンタがゼロではなく且つセグメン
トが終了すれば、カウンタ値は、その次のSEGSTARTパケ
ットに記録され、ゼロにリセットされる。もしINTパケ
ットがインターラプトを記録するために生成されれば、
カウンタ値は、INTパケットに記録され、ゼロにリセッ
トされる。
If the counter is not zero and the segment ends, the counter value is recorded in the next SEGSTART packet and reset to zero. If an INT packet is generated to record the interrupt,
The counter value is recorded in the INT packet and reset to zero.

【0160】本実施形態において、PC+4がゼロオーバ
ーヘッドループ(LP_END)で最後の命令に至った時、ル
ープメカニズムはトリガーされる。仮にループでの最後
の命令が、使用された分岐やジャンプ命令ならば、ルー
プメカニズムによるPCのローディングは、分岐またはジ
ャンプに対する遅延スロット命令の選択にのみ影響を与
え、PCは、使用された分岐またはジャンプ命令のターゲ
ットにセットされる。
In this embodiment, the loop mechanism is triggered when PC + 4 reaches the last instruction in the zero overhead loop (LP_END). If the last instruction in the loop is a branch or jump instruction that was used, the loading of the PC by the loop mechanism only affects the selection of delay slot instructions for the branch or jump, and the PC uses the branch or jump used. It is set as the target of the jump instruction.

【0161】もしループがフェイルすれば、カウンタ値
を記録するLPPCパケットが生成され、カウンタは、ゼロ
にセットされる。また、カウンタは、IA、PF、DATA、SR
SPEC、BCBPC、BCBPCOV、LPTRIG、またはSTALLパケット
が生成された後、ゼロにセットされる。もしカウンタが
オーバーフローされれば、LPPCOVパケットが生成され
る。
If the loop fails, an LPPC packet recording the counter value is generated and the counter is set to zero. The counters are IA, PF, DATA, SR
Set to zero after a SPEC, BCBPC, BCBPCOV, LPTRIG, or STALL packet is generated. If the counter overflows, an LPPCOV packet is generated.

【0162】トレースデコーダは、LP_START及びLP_E
NDの値が現在セグメントにループ命令やSR命令によって
記録されたならば、それらの値を知っている。仮にトレ
ースデコーダがLP_START及びLP_ENDの値を知らず、ゼ
ロオーバーヘッドループが使われれば、RTTは、それら
の値を記録するためにLPTRIGパケットを生成する。
The trace decoder uses LP_START and LP_E
If the value of ND is currently recorded in the segment by a loop or SR instruction, we know those values. If the trace decoder does not know the values of LP_START and LP_END and a zero overhead loop is used, the RTT will generate an LPTRIG packet to record those values.

【0163】図7の実施形態において、仮にインターラ
プト以後に実行される第1の命令やセグメント内の第1
の命令が無条件のジャンプならば、第1の命令は、IAパ
ケットを使用して記録される。これは、コンパイルされ
たソースコードがインターラプトベクター表(すなわち
自己−変更コード)で命令を含まない場合、デコーダを
援助するために行われる。デコーダは、テーブルで実行
される第1の命令がインターラプト調整機への無条件の
直接ジャンプであると仮定するが、インターラプト調整
機は、コンパイルされたソースコードに位置する。もし
プログラムがこのような規則に従わないならば、それ
は、コンパイルされたソースコードにインターラプトベ
クター表を提供すべきである。
In the embodiment of FIG. 7, it is assumed that the first instruction executed after the interrupt or the first instruction in the segment is executed.
If the instruction is an unconditional jump, the first instruction is recorded using an IA packet. This is done to aid the decoder if the compiled source code contains no instructions in the interrupt vector table (ie self-modifying code). The decoder assumes that the first instruction executed in the table is an unconditional direct jump to the interrupt coordinator, but the interrupt coordinator is located in the compiled source code. If the program does not follow such rules, it should provide the interrupt vector table in the compiled source code.

【0164】デートトレースに関して、メモリロード命
令(LDB、LDW、LD)が実行される時には、DATAパケット
がデータアドレスを記録するために生成される(データ
アドレスキャプチャーがイネーブルになった場合)。遅
延されたロードデータがレジスタファイルに再び記録さ
れる時には、DLDDパケットがデータ値を記録するために
生成される(データ値キャプチャーがイネーブルになる
場合)。
For date trace, when a memory load instruction (LDB, LDW, LD) is executed, a DATA packet is generated to record the data address (if data address capture is enabled). When the delayed load data is recorded again in the register file, a DLDD packet is generated to record the data value (if data value capture is enabled).

【0165】補助レジスタロード命令(LR)やメモリ格納
命令(STB、STW、ST)が実行される時には、DATAパケッ
トは、データアドレスとデータ値を潜在的に記録するた
めに生成される。
When the load auxiliary register instruction (LR) or the store memory instruction (STB, STW, ST) is executed, the DATA packet is generated to potentially record the data address and the data value.

【0166】補助レジスタ格納命令(SR)が実行されれ
ば、RTTは、パケット形態を決定するためにアドレスを
確認する。仮にアドレスが特定のレジスタに対するもの
ならば、SRSPECパケットが生成され、そうでなければ、
SRがST命令のように処理される。特定レジスタは、RTT
_USER、RTT_PKT_CTL、LPSTART及びLPENDである。RTT
_USERまたはRTT_PKT_CTLレジスタへのSRは、静的及
びダイナミックなイネーブルに関わらずSRSPECパケット
を生成する。LPSTARTまたはLPENDレジスタへのSRは、命
令トレースがイネーブルになる場合、SRSPECパケットを
生成する。
When the store auxiliary register instruction (SR) is executed, the RTT confirms the address to determine the packet form. If the address is for a particular register then an SRSPEC packet is generated, otherwise
SR is processed like an ST instruction. Specific register is RTT
_USER, RTT_PKT_CTL, LPSTART and LPEND. RTT
An SR to the _USER or RTT_PKT_CTL register will generate an SRSPEC packet regardless of static and dynamic enable. An SR to the LPSTART or LPEND register will generate an SRSPEC packet if instruction trace is enabled.

【0167】仮にデータフィルタリングが使われている
ならば、ロード/格納の一部だけが記録されることがで
きる。特に、データトレースに影響を与えるようにセッ
トされた動作を有する、少なくとも一つのイネーブルな
フィルタが存在すれば、トレースデコーダは、たとえ命
令トレースがイネーブルになるとしても、キャプチャー
されたロード/格納のPCを決定することが出来ない。も
しデータフィルタリングが活性化されれば、ユーザー
は、DATAパケットにセグメント命令オフセットを追加す
るようにRTTを構成する。
If data filtering is used, only part of the load / store can be recorded. In particular, if there is at least one enabled filter with the behavior set to affect the data traces, the trace decoder will not be able to load the captured load / store PC even if instruction traces are enabled. Can't decide. If data filtering is activated, the user configures the RTT to add the segment command offset to the DATA packet.

【0168】イベントトレースは、命令実行に関連がな
いコア状態の変化を記録する。
Event traces record core state changes unrelated to instruction execution.

【0169】本実施形態において、タイミングトレース
は、(a)命令タイミングトレースと、(b)イベントタイミ
ングトレースとで構成される。命令タイミングトレース
により、トレースデコーダは、それぞれの実行される命
令が退去された周期(コアパイプラインの終端に達した
周期)と、遅延されたロード-データに対するレジスタフ
ァイルへの記録周期を決定できることになる。イベント
タイミングトレースにより、トレースデコーダは、命令
実行に非同期的なイベントが発生した周期を決定できる
ことになる。このような非同期的なイベントには、(1)
アクションポイントトリガー、(2)外部信号変化、(3)
取ったインターラプト、及び(4)新しいセグメントがあ
る。命令タイミング及びイベントタイミングは、個別的
にRTT_PKT_CTLレジスタで静的にイネーブルになり得
る。また、命令タイミングは、モニター設備からのダイ
ナミックなイネーブルにより制御される。
In this embodiment, the timing trace is composed of (a) instruction timing trace and (b) event timing trace. The instruction timing trace allows the trace decoder to determine the period when each executed instruction is evicted (the period at which the end of the core pipeline is reached) and the delayed load-data recording period to the register file. Become. Event timing tracing allows the trace decoder to determine the period at which asynchronous events occur in instruction execution. For such an asynchronous event, (1)
Action point trigger, (2) External signal change, (3)
There are interrupts taken and (4) new segments. Instruction timing and event timing may be individually enabled statically in the RTT_PKT_CTL register. Also, command timing is controlled by a dynamic enable from the monitor facility.

【0170】RTTは、次のような2種類メカニズムによ
るタイミングトレースを支援する:タイムスタンプ及び
タイミングパケット。命令タイミングトレースは、二つ
のメカニズムをいずれも使用するが、イベントタイミン
グトレースは、タイムスタンプメカニズムだけを使用す
る。
RTT supports timing tracing by two types of mechanisms: time stamps and timing packets. Instruction timing trace uses both mechanisms, while event timing trace uses only the timestamp mechanism.

【0171】(i)タイムスタンプ-命令タイミングが静的
にイネーブルになる時やイベントタイミングが静的にイ
ネーブルになる時、タイムスタンピングメカニズムは、
イネーブルになる。タイムスタンピングがイネーブルに
なった時には、15-ビットタイムスタンプレジスタが
消去される。タイムスタンプは、タイムスタンピングが
イネーブルになる周期毎に増加する。タイムスタンピン
グがイネーブルになる場合、タイムスタンプは、APE、E
XTSIG、INT、SEGSTART及びSRSPE C RTT_PKT_CTLパケ
ットに格納される。タイムスタンプがオーバーフローさ
れる時には、タイムスタンプを含むパケットがそのよう
な同一周期で生成されない限り、TSOVパケットが生成さ
れる。後者の場合、タイスタンプを含むパケットは、タ
イムスタンプ-オーバーフローされたビットを含むが、
ビットは、1にセットされる。
(I) Timestamp -When instruction timing is statically enabled or event timing is statically enabled, the time stamping mechanism is
It will be enabled. When time stamping is enabled, the 15-bit time stamp register is erased. The time stamp is incremented each time time stamping is enabled. If time stamping is enabled, the time stamp is APE, E
Stored in XTSIG, INT, SEGSTART and SRSPECRTT_PKT_CTL packets. When the time stamp is overflowed, a TSOV packet is generated unless a packet containing the time stamp is generated in the same cycle. In the latter case, the packet containing the tie stamp will contain the timestamp-overflowed bits, but
The bit is set to 1.

【0172】(ii)タイミングパケット-命令タイミング
トレース及び命令トレースがイネーブルになった時(二
つのトレースは、静的に且つダイナミックにイネーブル
される)、RTTは、4-ビットストール周期カウンタを用
いて退去された命令間のストール周期をカウントする。
RTTは、ストール周期カウンタがオーバーフローされる
時、すなわち命令タイミングトレースがディセイブル(d
isable)され、カウンタがフラッシュされる必要がある
場合、その次の退去された命令が到着する前の周期にス
トール周期カウンタ値を含むSTALLパケットを出力す
る。STALLパケットの生成は、INTまたはSEGSTARTパケッ
トがハードウェアの費用を減少させるために同一の周期
に生成される場合、防止される。ストール周期カウンタ
値は、失われるが、INT及びSEGSTARTパケットにあるタ
イムスタンプ値は、等価の情報を提供する。
(Ii) Timing Packets -When instruction timing trace and instruction trace are enabled (two traces are statically and dynamically enabled), RTT uses a 4-bit stall period counter. Counts the stall period between evicted instructions.
RTT is set when the stall cycle counter overflows, that is, when the instruction timing trace is disabled (d
isable) and the counter needs to be flushed, it outputs a STALL packet containing the stall period counter value in the period before the arrival of the next evicted instruction. Generation of STALL packets is prevented if INT or SEGSTART packets are generated in the same cycle to reduce hardware cost. The stall period counter value is lost, but the timestamp values in the INT and SEGSTART packets provide equivalent information.

【0173】本実施形態のSTALLパケットは、4-ビット
のストールカウントを含むように構成され、トレースデ
コーダが、PC(すなわち、INT、DATA、PF、IA、BCBPC、B
CBPCOV、LPPC、LPPCOV、SRSPEC、SEGSTART、LPTRIG及び
STALL)を決定することを許容し、それぞれの退去された
命令に対して増加する最後のパケットが生成されたた
め、選択的に4-ビットのストール理由を含む。停止命
令カウントは、退去された命令の数である。このフィー
ルドによりストールを実行させる正確な命令は、たとえ
退去されたあらゆる命令がパケットを生成しないとして
も、決定できることになる。停止命令カウンタにより、
トレースデコーダは、PCを決定でき、任意のパケットが
生成された後には、ゼロにリセットされる。SICOVパケ
ットは、命令カウンタがオーバーフローされるたびに生
成される。
The STALL packet of this embodiment is configured to include a 4-bit stall count, and the trace decoder determines that the PC (that is, INT, DATA, PF, IA, BCBPC, B).
CBPCOV, LPPC, LPPCOV, SRSPEC, SEGSTART, LPTRIG and
STALL), and optionally includes a 4-bit stall reason, as the increasing last packet was generated for each evicted instruction. The stop instruction count is the number of instructions that have been evicted. The exact instruction that causes the stall to be performed by this field will be able to be determined, even if every instruction that was evicted does not generate a packet. By the stop instruction counter,
The trace decoder can determine the PC and is reset to zero after any packet is generated. A SICOV packet is generated every time the instruction counter overflows.

【0174】ストールを引き起こすことができる多くの
事件が存在するが、これは、(a) ベチ遅延(たとえば、I
-キャッシュ損失);(b)ロード使用;(c)ロードリターン
(たとえば、3つのポートレジスタファイルのみを使
用);(d)ロード/格納待機行列充満;(e)多重周期命令;(f)
依存性(たとえば、非短縮レジスタ、条件付きジャンプ/
分岐が後続するPELLEKEセット等);(g)インターラプト;
(h)長い-近接データ;(i)死んだ(killed)遅延-スロット
命令;(j)xholdup12またはxholdup123信号を用いた
拡張命令停止;(k)ブレーキ命令又はアクションポイント
トリガー;または(l)単一-段階または命令-段階モードで
のプロセッサを含む。命令がコアパイプラインに移動す
る時、命令は、いろいろなストール理由に出会う。それ
ぞれの命令に対するストールカウント及びストール理由
の完璧な履歴(history)を記録することは、たびたび非
常に大きい。本実施形態の4-ビットストール理由フィ
ールドは、次のような可能なストール理由をキャプチャ
ーする;(a) ベチストール(無効=0);(b)ロード-使用ス
トール;(c)ロード-リターンストール;及び(d)ロード/格
納行列フルストール(メモリコントローラーが使用中、
またはスコアボード充満)。仮に命令がそのストールを
実行させたら、それぞれの理由には、1にセットされる
限り、1ビットが割り当てられる。もし命令がストール
されたが、このような理由中のいかなる理由にも該当し
ないならば、ストール理由フィールドは、ゼロになる。
There are many incidents that can cause stalls, which include (a) vegetative delay (eg I
-Cash loss); (b) Load used; (c) Load return
(For example, use only 3 port register files); (d) Load / store queue full; (e) Multi-cycle instruction; (f)
Dependencies (eg non-shortening registers, conditional jumps /
(PELLEKE set followed by a branch); (g) Interrupt;
(h) long-proximity data; (i) killed delay-slot command; (j) extended command stop with xholdup12 or xholdup123 signal; (k) brake command or action point trigger; or (l) single. Includes the processor in one-step or instruction-step mode. As an instruction moves into the core pipeline, it encounters various stall reasons. Recording a stall count and a complete history of stall reasons for each instruction is often very large. The 4-bit stall reason field of the present embodiment captures the following possible stall reasons: (a) Beth stall (invalid = 0); (b) Load-use stall; (c) Load-return stall; And (d) load / store matrix full stall (in use by memory controller,
Or full scoreboard). If the instruction had its stall performed, each reason would be allocated one bit as long as it was set to one. If the instruction was stalled, but did not meet any of these reasons, the stall reason field will be zero.

【0175】前述した4つのストール理由は、それらが
ストールを減少させるための解決策を提示するので、選
択された。特に、ベチストールに対しては、I-キャッシ
ュサイズを増加させる。ロード-使用ストールに対して
は、D-キャッシュサイズを増加させたり、ロードと使用
との間に命令を追加させる。ロード-リターン停止に対
しては、4-ポートレジスタファイルを使用する。ロー
ド/格納待機行列フルストールに対しては、メモリ帯域
幅を増加させる。しかし、他のストールパラメータとビ
ット数が本発明と合わせて使われることができ、前述し
たスキームは、ただ例示的なものに過ぎないことが分か
るだろう。
The four stall reasons mentioned above were chosen because they offer a solution for reducing stalls. Especially for Betisutols, increase the I-cache size. For load-use stalls, increase the D-cache size or add instructions between load and use. For load-return stop, use 4-port register file. Increase memory bandwidth for load / store queue full stalls. However, it will be appreciated that other stall parameters and bit numbers can be used in conjunction with the present invention, and the scheme described above is merely exemplary.

【0176】DLDDパケットは、命令-タイミングトレー
スが静的にイネーブルになる時、ストール命令カウント
値と、ストール周期カウント値とを含む。これら値は、
命令タイミング及び命令タイミングトレースがイネーブ
ルになる時にだけ、意味がある(両者とも静的で且つダ
イナミックである)。DLDDパケットのこのような追加的
な値により、トレースデコーダは、ロードデータに対す
るレジスタファイルへの記録周期を決定できることにな
る。
The DLDD packet contains a stall instruction count value and a stall period count value when instruction-timing trace is statically enabled. These values are
Only meaningful when instruction timing and instruction timing trace are enabled (both static and dynamic). Such an additional value of the DLDD packet allows the trace decoder to determine the recording cycle of the load data in the register file.

【0177】付録IIIは、本発明の実施形態と関連したR
TT拡張補助レジスタを詳細に説明する。
Appendix III provides R related to embodiments of the present invention.
The TT extension auxiliary register will be described in detail.

【0178】バッファとパケットパイプラインの説明前
述したバッファユニット712の構成及び動作をより詳
細に説明する。
Description of Buffer and Packet Pipeline The configuration and operation of the above-mentioned buffer unit 712 will be described in more detail.

【0179】バッファ712の主な目的は、生成ユニッ
ト744から外部キャプチャーデバイス772にパケッ
トを伝送するための能力において、短い期間と中間期間
の融通性を提供することにある。トレースキャプチャー
を行う時、パケットは、特定の命令が会う時にだけ生成
され、その後、モニターは、それを許容する時にだけ生
成される。これは、時間によって生成されるデータの量
に対する非常に非均一なバラツキを発生させることがあ
る。生成ユニットにより同時的に生成され得るデータの
幅は、キャプチャーデバイスポートの幅(最小1ニブル)
と比べて非常に大きい(たとえば、前述した例示的な単
一-コア実施形態では、大体最大70ニブル)。これは、
データストリームを平滑(smooth)にさせるためにバッフ
ァが設置されないならば、オーバーフローが頻繁に発生
できること(これにより、トレース情報を損失させる)
を意味する。
The primary purpose of buffer 712 is to provide short-term and intermediate-term flexibility in the ability to transmit packets from generation unit 744 to external capture device 772. When performing a trace capture, packets are only generated when a particular instruction is encountered, and then the monitor is only generated when it allows it. This can cause very non-uniform variations in the amount of data generated over time. The width of data that can be simultaneously generated by the generation unit is the width of the capture device port (minimum 1 nibble)
Very large compared to (eg, approximately 70 nibbles maximum in the exemplary single-core embodiment described above). this is,
Overflow can occur frequently if no buffers are installed to make the data stream smooth (thus losing trace information)
Means

【0180】例示的な実施形態のバッファ712は、次
のような2部分に分けられる:(i)パケットパイプライ
ン;及び(ii)FIFO。パケットパイプライン部は、レジス
タに基づくもので、生成ユニットからの短い期間のデー
タバストをバッファリングするために使われる。FIFO部
は、RAMに基づくもので、パケットパイプラインからの
中間期間データバスト(burst)をバッファリングする。
The buffer 712 of the exemplary embodiment is divided into two parts: (i) a packet pipeline; and (ii) a FIFO. The packet pipeline section is register-based and is used to buffer a short duration data bust from the generation unit. The FIFO unit is based on RAM and buffers the intermediate period data bust from the packet pipeline.

【0181】バッファ712は、次のような機能と特徴
を提供する;(i)短時間に生成ユニットからの最大出力を
収容する能力;(ii)長時間にコード部を生成する高い帯
域幅を収容する能力;(iii)ゲートカウント(及びそれに
よるICコスト)とバッファリング能力の交換を許容する
構成能力;及び(iv)変換ツールを用いて説明言語(例え
ば、Verilog)への簡単な転換。
The buffer 712 provides the following functions and features; (i) the ability to accommodate the maximum output from the generation unit in a short time; (ii) the high bandwidth to generate the code part in a long time. Ability to accommodate; (iii) Configuration ability to allow the exchange of gate count (and thus IC cost) and buffering ability; and (iv) Simple conversion to a descriptive language (eg, Verilog) using a translation tool.

【0182】バッファ712のパケットパイプライン
は、生成ユニット744からの出力をバッファリング
し、FIFOの幅に出力を効果的に“ファンネルダウン(fun
nel down)”するために使われる。これは、比較的大き
いレジスタアレイを用いて示された実施形態で達成さ
れ、その幅及び深さは、デバイス構成瞬間に構成可能に
作られる。
The packet pipeline of buffer 712 buffers the output from generation unit 744 and effectively "funnels down" the output to the width of the FIFO.
This is achieved in the illustrated embodiment with a relatively large register array, the width and depth of which are made configurable at the device configuration instant.

【0183】フルデータとタイミングトレース構成が選
択されることによって、生成ユニット744からの出力
は、図示の実施形態において約70ニブル幅である。こ
のような出力は、次のような4つのパケット形態、すな
わち(1)セグメント開始、(2)命令実行、(3)ループト
リガー、及び(4)遅延されたロードデータに分類され
る。
With the full data and timing trace configurations selected, the output from the generation unit 744 is approximately 70 nibbles wide in the illustrated embodiment. Such outputs are classified into the following four packet types: (1) segment start, (2) instruction execution, (3) loop trigger, and (4) delayed load data.

【0184】合わせて4個のパケットカテゴリーが1ク
ロック周期で生成されることが(望ましくはないが)可能
である。パケットが生成される時、パケット自体、パケ
ットのサイズ、及び“新しい”フラッグが生成ユニット
744から出力される。仮に一つ以上のパケットが同時
に生成されれば、そのパケットは、指定された順序によ
ってパケットパイプラインに入力される。すなわちセグ
メント開始が最初に入力され、次いで、命令実行が入力
され、その後、ループトリガーが入力され、遅延された
ロードデータが最終的に入力される。
It is possible (though not desirable) for a total of four packet categories to be generated in one clock period. When a packet is generated, the packet itself, the size of the packet, and the “new” flag are output from the generation unit 744. If one or more packets are generated at the same time, the packets are input to the packet pipeline in the specified order. That is, the segment start is input first, then the instruction execution is input, then the loop trigger is input, and the delayed load data is finally input.

【0185】それぞれのパケットは、幅が広いか(図示
した実施形態では、23ニブルまで)、比較的幅が狭く
ても(4ニブル以下)よく、資源の使用を極大化させ、パ
ケットパイプラインアレイ(後述する)のレジスタは、
パケット部分として本明細書で言及した8個のニブルブ
ロックにグループ化される。また、32ビットのデータ
と一緒に、パケット部分は、パケット部分での有効ニブ
ル数に関する情報を含み、パケット境界に関する情報を
制御する。
Each packet may be wide (up to 23 nibbles in the illustrated embodiment) or relatively narrow (4 nibbles or less) to maximize resource use and to allow packet pipeline array The registers (described below) are
It is grouped into the eight nibble blocks referred to herein as the packet part. Also, along with the 32-bit data, the packet portion includes information regarding the number of effective nibbles in the packet portion and controls information regarding packet boundaries.

【0186】図8aに示したように、本発明のパケット
パイプライン800の第1の実施形態は、パケット部ア
レイ802で構成される。行804及び列806の数
は、デバイス構成瞬間にユーザーによって構成可能にな
るように有利に作られる。
As shown in FIG. 8a, the first embodiment of the packet pipeline 800 of the present invention comprises a packet part array 802. The number of rows 804 and columns 806 are advantageously made configurable by the user at the device configuration instant.

【0187】制御論理回路は、列806のうちどれが生
成ユニットからその次のパケット部分を受信すべきかを
決定するために、第1の行807にポインタを維持す
る。また、ポインタは、どんな列からデータを抽出する
かを決定するために、出力行に維持される。この実施形
態のポインタは、順次的に変わり、たとえ他のアプロー
チが代わりに使われることができるとしても、ポインタ
が最後の列に至った時に循環(wrapping)する。
The control logic maintains a pointer in the first row 807 to determine which of the columns 806 should receive the next packet portion from the production unit. Also, pointers are maintained in the output rows to determine from which column to extract the data. The pointer in this embodiment changes sequentially, wrapping when the pointer reaches the last column, even though other approaches can be used instead.

【0188】その次の行にあるが、同じ列にある部分が
空いていると表示される時、すなわちデータが行からFI
FOに送られている時は、有効部分がパケットパイプライ
ン800に流れる。
When it is displayed in the next row but the portion in the same column is vacant, that is, the data is FI from the row.
When being sent to the FO, the effective part flows to the packet pipeline 800.

【0189】パケットパイプラインの最小幅は、(i)FIF
O幅より大きく、または(ii)単一パケットの最大幅で作
られる。最大パケットパイプラインの幅は、共に生成さ
れたあらゆるパケットカテゴリーの最大幅と同じであ
る。深さは、1行から任意のサイズ(たとえば、32)ま
で変わることができるが、唯一の制限点は、消費者によ
って最終ICデバイスに提供可能なゲート数である。
The minimum width of the packet pipeline is (i) FIF
Greater than O width, or (ii) created with a maximum width of a single packet. The width of the maximum packet pipeline is the same as the maximum width of any packet category with which it was created. The depth can vary from one row to any size (eg 32), but the only limitation is the number of gates that the consumer can provide to the final IC device.

【0190】また、本実施形態のそれぞれのパケットカ
テゴリーは、セット時に、新しいパケットが生成された
ことを表す関連フラッグを有する。このようなパケット
が到着した時、パケットが正確な順序でパケットパイプ
ラインに入るようにするために、ラケットには、マルチ
ビット(たとえば、2-ビット)のタイムスタンプが割り
当てられる。古くなったパケットが除去され、パケット
パイプラインに位置する前に、新しいパケットが生成ユ
ニット出力端に到着した時には、オーバーフローが発生
する。
Further, each packet category of the present embodiment has an associated flag indicating that a new packet has been generated when set. When such packets arrive, the racket is assigned a multi-bit (eg, 2-bit) timestamp to ensure that the packets enter the packet pipeline in the correct order. Overflow occurs when stale packets are dropped and new packets arrive at the output of the production unit before they are placed in the packet pipeline.

【0191】図8bを参照すれば、本発明のパケットア
レイ構造に対する選択的な実施形態が図示されている。
明らかなように、前述した図8aのアレイ構造での資源
使用は、あらゆるパケット部分が同一に使われ、あらゆ
る部分が使用中にある時にだけ、オーバーフローが発生
するという点において最適である。しかし、ひとつの短
所として、パケットパイプライン入力において比較的大
きいサイズの多重化が必要であるという点が挙げられ
る。それぞれのパケット部分は、32-ビット幅を有
し、それぞれのビットは、図示した実施形態で10:1
マルチプレクサ(10:1mux)が必要である。そうした多
重化集約的な設計は、設計者が設計のための配置を生成
しようとする時、潜在的に問題を引き起こすことがあ
る。
Referring to FIG. 8b, an alternative embodiment to the packet array structure of the present invention is illustrated.
Obviously, the resource usage in the array structure of FIG. 8a described above is optimal in that overflow only occurs when every packet part is used the same and every part is in use. However, one disadvantage is the relatively large size of multiplexing required at the packet pipeline input. Each packet portion has a 32-bit width, and each bit is 10: 1 in the illustrated embodiment.
A multiplexer (10: 1 mux) is required. Such multiplex intensive designs can potentially cause problems when the designer seeks to generate placements for the design.

【0192】したがって、図8bの実施形態は、二つの
別途のパケットパイプラインを併合する。本発明の譲受
人によるシミュレーションは、セグメント開始及びルー
トトリガーパケット形態が生成される周波数は、命令実
行及び遅延されたロードデータパケット形態が生成され
る周波数より極めて低いことを示す。したがって、一つ
の構成においては、“低い”頻度の周波数パケットと、
“高い”頻度の周波数パケットは、別途の各パイプライ
ンアレイに分割され、パケットパイプライン入力端で必
要とする多重化の量を效果的に半減する。
Thus, the embodiment of FIG. 8b merges two separate packet pipelines. Simulations by the assignee of the present invention show that the frequency at which segment start and route trigger packet morphologies are generated is significantly lower than the frequency at which instruction execution and delayed load data packet morphologies are generated. Therefore, in one configuration, a “low” frequency packet of frequencies,
The "high" frequency frequency packets are split into separate pipeline arrays, effectively halving the amount of multiplexing required at the packet pipeline inputs.

【0193】図9を参照して、パケットパイプラインFI
FOのための一つの例示的な構造900を説明する。本実
施形態のFIFO902は、バッファサイズを大きく増加さ
せるために、オンチップRAMを使用する。RAMは、パケッ
トパイプラインより実質的に“幅が狭く”、したがっ
て、その主要機能は、中間-頻度及び中間-長さのデータ
バストをバッファリングすることである。図9に示した
ように、FIFO902は、該当分野でよく知られている形
態の正しい同期デュアルポートRAMを使用する。RAMの記
録論理は、RTTユニット及びコア705の残りと同じク
ロックで動作し、判読論理は、パケットポート709及
びキャプチャーデバイス772と同じクロックで動作す
る。
Referring to FIG. 9, packet pipeline FI
An example structure 900 for a FO is described. The FIFO 902 of this embodiment uses on-chip RAM to greatly increase the buffer size. RAM is substantially "narrower" than the packet pipeline, so its main function is to buffer medium-frequency and medium-length data busts. As shown in FIG. 9, the FIFO 902 uses a correct synchronous dual port RAM of the form well known in the art. The recording logic of RAM operates at the same clock as the rest of the RTT unit and core 705, and the read logic operates at the same clock as the packet port 709 and capture device 772.

【0194】FIFO902は、固定された幅、すなわち図
示された実施形態では、2パケット部を有するが、深さ
は、ビルドタイム(build-time)に構成可能である。ま
た、深さは、ゼロの値を含むように選択的に構成される
が、それは、FIFOを設計から完璧に除去する。
The FIFO 902 has a fixed width, ie two packet parts in the illustrated embodiment, but the depth is configurable at build-time. Also, the depth is selectively configured to contain a value of zero, which completely removes the FIFO from the design.

【0195】図8bのパケットパイプラインアレイ構造
を参照することによって、より小さいアレイから情報を
抽出する時を示す制御情報を、マルチプレクサとFIFO間
でも使用することに注目すべきである。これは、より小
さいアレイから判読する前に、多くの部分を主アレイか
らどのように判読するかを表すカウンタを用いて、この
実施形態で達成される。しかし、本発明と合わせて他の
アプローチが共に成功的に使われることができることを
理解すべきである。
It should be noted that by referring to the packet pipeline array structure of FIG. 8b, control information indicating when to extract information from a smaller array is also used between the multiplexer and the FIFO. This is accomplished in this embodiment with a counter that represents how many parts are read from the main array before being read from the smaller array. However, it should be understood that other approaches together with the present invention can be used successfully.

【0196】図8bの実施形態は、一般的に、2個のア
レイの相対的サイズを判断するためのメカニズムが存在
する時、最適化できることも理解すべきである。特に、
パケットパイプラインハードウェアに対する最適の使用
を達成するために、二つのアレイは、たとえそれらが満
たされる相対的な速度がトレースによって変わっても、
ほぼ同時にオーバーフローされなければならない。した
がって、ビルドタイム前に行われるシミュレーション
は、最適の相対的のサイズを決定するのに有用である。
It should also be appreciated that the embodiment of FIG. 8b can generally be optimized when there is a mechanism for determining the relative size of two arrays. In particular,
In order to achieve optimal use for packet pipeline hardware, the two arrays are designed so that even if the relative speed at which they are filled varies with trace.
Must be overflowed at about the same time. Therefore, a simulation performed before the build time is useful in determining the optimal relative size.

【0197】FIFO902は、RTTシステムに常に存在す
るものではないので、パケットパイプラインとFIFO間の
インタフェースは、FIFOとパケットポート間のインタフ
ェースに正確に一致するように作られることができる。
これは、FIFOを必要としない場合、パケットパイプライ
ンが(名前変更ブロック信号として動作するFIFOにより)
パケットポートに直接接続するように許容される。
The FIFO 902 is not always present in the RTT system, so the interface between the packet pipeline and the FIFO can be made to exactly match the interface between the FIFO and the packet port.
This is because the packet pipeline does not need a FIFO (with the FIFO acting as a rename block signal).
Allowed to connect directly to the packet port.

【0198】パケットパイプラインは、オプションの二
つのアレイ部で構成される。一方のアレイは、高い帯域
幅カテゴリーからのパケットを格納し、他方のアレイ
は、低い帯域幅カテゴリーからのパケットを格納する。
このようなアレイのサイズは、一定のサイズで完璧に構
成可能である。高い帯域幅アレイは、典型的により多く
のパケットをバッファリングするのに要求される時、非
常に大きくなる。パケットがパイプラインアレイに入力
・出力される順序は、それらが生成ユニット出力端に到
着する順序と同一である。
The packet pipeline consists of two optional array sections. One array stores packets from the high bandwidth category and the other array stores packets from the low bandwidth category.
The size of such an array is perfectly configurable with a fixed size. High bandwidth arrays are typically very large when required to buffer more packets. The order in which packets enter and exit the pipeline array is the same as the order in which they arrive at the output of the generator unit.

【0199】前述したように、任意の周期で最大4つの
パケットを生成することが可能であり、これは、きわめ
て希な場合にだけ発生する。あらゆるパケットは、特定
のカテゴリーに属し、他のカテゴリーからのパケットだ
けが同時に生成されることができる。生成ユニットから
のあらゆる出力は、レジスタから直接的に出て、新しい
パケットが到着しない限り、それらの値を有していなけ
ればならない。
As mentioned above, it is possible to generate up to 4 packets at any period, which only occurs in very rare cases. Every packet belongs to a particular category, and only packets from other categories can be generated at the same time. Any output from the generate unit must have their value unless it comes out of the register directly and a new packet arrives.

【0200】表6は、本実施形態の生成ユニットとパケ
ットパイプライン間の例示的なポートインタフェース信
号を目録化したリストである。
Table 6 is a list listing exemplary port interface signals between the generation unit and the packet pipeline of this embodiment.

【0201】[0201]

【表6】 [Table 6]

【0202】パケットは、一回にパイプラインアレイの
2部分から抽出され、出力レジスタのFIFOに印加され
る。下記の表7は、パケットパイプラインとFIFOブロッ
ク間のあらゆるポートインタフェース信号を列挙する。
Packets are extracted from two parts of the pipeline array at a time and applied to the output register FIFO. Table 7 below lists all port interface signals between the packet pipeline and the FIFO block.

【0203】[0203]

【表7】 [Table 7]

【0204】記述された実施形態で、パケットパイプラ
インに影響を及ぼす唯一の構成レジスタは、バッファ制
御レジスタである。このレジスタのデセイブルバッファ
オーバーフロー(DBO)ビットは、ノーマル動作中にはパ
ケットパイプラインに影響を及ぼさないが、バッファオ
ーバーフロー信号を遮断するための検証の目的だけで使
われる。
In the described embodiment, the only configuration register that affects the packet pipeline is the buffer control register. The Disable Buffer Overflow (DBO) bit in this register has no effect on the packet pipeline during normal operation, but is used only for verification purposes to block the buffer overflow signal.

【0205】表8は、本発明に係るコアでの適切なモジ
ュールとパケットパイプライン間のポートインタフェー
ス信号を目録化したリストである。
Table 8 is a cataloged list of port interface signals between the appropriate modules and packet pipelines in the core according to the present invention.

【0206】[0206]

【表8】 [Table 8]

【0207】2パイプラインアレイの幅と深さは、rtt
_optionパッケージで規定された常数により本実施形態
で独立的に構成可能である。PIPE_IE_DLD_COLS及びP
IPE_DLD_ROWSは、いずれも高い帯域幅アレイのサイズ
を限定し、このアレイには、命令実行及び遅延されたロ
ードデータカテゴリーからのパケットが格納される。PI
PE_CTL_LP_COLS及びPIPE_CTL_LP_ROWS常数は、低
い帯域幅アレイのサイズを限定し、このアレイには、制
御及びループトリガーカテゴリーからのパケットが格納
される。
The width and depth of the 2-pipeline array is rtt.
The constants defined in the _option package can be independently configured in this embodiment. PIPE_IE_DLD_COLS and P
IPE_DLD_ROWS both limit the size of the high bandwidth array, which stores packets from the instruction execution and delayed load data categories. PI
The PE_CTL_LP_COLS and PIPE_CTL_LP_ROWS constants limit the size of the low bandwidth array, which stores packets from the control and loop trigger categories.

【0208】行の個数に対する値には(その値が1また
はその以上の値になる限り)何らの制約がない。パケッ
トは、あらゆるパケットが適した場合にだけ、パイプラ
インに受け入れられ、したがって、行の個数が最大パケ
ット幅(部分的に)より大きいか同一になり、又はこのパ
ケットは決して受け入れられない。行の個数は、機能を
向上させないため、二つの最大パケットカテゴリーに対
する総幅(部分的に)を超過せず、かつ、システムのタ
イミング要求を充足することが難しい。
There is no restriction on the value for the number of rows (as long as the value is 1 or more). A packet is accepted into the pipeline only if every packet is suitable, and thus the number of rows is greater than or equal to the maximum packet width (partially), or this packet is never accepted. Since the number of rows does not improve the function, it does not exceed the total width (partially) for the two largest packet categories, and it is difficult to meet the timing requirements of the system.

【0209】パケットパイプラインのみがデータ部を処
理する。パケットがより一層管理可能であるようにし、
格納効率、達成可能なタイミング、及び複雑でない制御
論理回路間に良好な折衝を提供するために、RTTの本実
施形態のパケットは、いずれも部分に分けられる。部分
は、図10の例示的な装置に示したように、8ニブルの
データと、1ニブルの制御ビットとで構成される。デー
タがパケットのどんな部分にあっても、データは、その
部分に格納され、制御ビットは、下記の表9の情報を有
する。
Only the packet pipeline processes the data part. To make the packet more manageable,
In order to provide storage efficiency, achievable timing, and good negotiation between uncomplicated control logic, the packets of this embodiment of the RTT are all segmented. The portion consists of 8 nibbles of data and 1 nibble of control bits, as shown in the exemplary apparatus of FIG. Whatever the part of the packet is, the data is stored in that part and the control bits have the information in Table 9 below.

【0210】[0210]

【表9】 [Table 9]

【0211】パケットポートがSEGSTARTパケット前にゼ
ロにパッドする必要があり、パケットの中間にある任意
のデータとSEGSTARTパケットヘッダーとを区別する必要
があり得るため、パケットの境界が発生する所をデコー
ドできることが望ましい。
Being able to decode where packet boundaries occur because the packet port needs to be padded to zero before the SEGSTART packet and may need to distinguish any data in the middle of the packet from the SEGSTART packet header Is desirable.

【0212】パケットが生成ユニットの出力端に到着し
た時(新しい信号で指定されることによって)、このパケ
ットは、次の周期でパケットパイプラインに必ず受け入
れられるものではない。パケットは、パイプラインで空
間が利用可能になるか、又は空間が同一のカテゴリーの
他のパケットによって上書きする時までは、少しの間停
止することにより、バッファのオーバーフローをトリガ
ーさせる。
When a packet arrives at the output of the production unit (as specified by the new signal), it is not necessarily accepted by the packet pipeline in the next cycle. A packet triggers a buffer overflow by pausing for a moment until space becomes available in the pipeline or space is overwritten by another packet of the same category.

【0213】パケットが生成される順序と、このパケッ
トがパケットパイプラインを離れる順序とを保存するた
めに、あらゆる新しいパケットは、初めて到着する時、
エイジタグ(age tag)が割り当てられる。本実施形態に
おいて、このようなエイジタグは、2ビットで構成さ
れ、2ビットは、他の周期で到着するすべて4個のパケ
ットカテゴリーをカバーする。しかし、他のビット番号
及びスキームが使われてもよい。二つ以上の制御エイジ
タグ、すなわちパイプラインにまだ受け入れられない最
も古くなったパケットに対するoldest_ageポイント
と、一番最近に到着したパケットに対するnewest_age
ポイントがシステムにより維持される。
To preserve the order in which a packet is generated and the order in which this packet leaves the packet pipeline, every new packet arrives the first time
An age tag is assigned. In the present embodiment, such an age tag is composed of 2 bits, and 2 bits cover all 4 packet categories that arrive in other periods. However, other bit numbers and schemes may be used. Two or more control age tags, the oldest_age point for the oldest packet that is not yet accepted in the pipeline, and the newest_age for the most recently arrived packet.
Points are maintained by the system.

【0214】newest_ageタグは、新しいパケットが到
着する周期だけで増加する。oldest_age_tagは、その
エイジのあらゆるパケットがパイプラインに受け入れら
れるたびに増加する。記述された実施形態での2エイジ
カウンタは、いずれもモジュールで4演算(modulo N ar
tithmetic)を使用して循環するように作られる。
The newest_age tag is incremented only in the cycle in which new packets arrive. oldest_age_tag is incremented each time every packet of that age is accepted by the pipeline. The 2 age counters in the described embodiment are all 4 modules (modulo N ar)
tithmetic) is used to cycle.

【0215】また、それぞれのパケットパイプラインア
レイは、入力列ポインタと出力列ポインタを有する。こ
れらポインタは、アレイの幅を有するレジスタであり、
次の部分が、そのレジスタがどこに入るか、またはどこ
から抽出されるかを表すために、該当分野によく知られ
ている形態の“1-hot”エンコーディングを使用する。
1-hotシステムは、新しいポインタ値を計算する時、パ
ケットがパイプラインに適合するかに関係なく、制御論
理を簡単にする。たとえば、2進ポインタは、5個の列
よりなるアレイに対してモジュールで5演算(modulo N
artithmetic)を必要とする。
Further, each packet pipeline array has an input column pointer and an output column pointer. These pointers are registers with the width of the array,
The next part uses a form of "1-hot" encoding that is well known in the art to describe where the register falls in or is extracted from.
The 1-hot system simplifies control logic when calculating a new pointer value, regardless of whether the packet fits into the pipeline. For example, a binary pointer is a modular 5 operation on an array of 5 columns (modulo N
artithmetic) is required.

【0216】出力制御論理は、どんなアレイパケットが
その次に除去されなければならないかを決定するための
メカニズムを必要とする。いくつの部分がその特定部分
に先だって高い帯域幅アレイから除去されなければなら
ないかを表す部分カウンタは、低い帯域幅アレイの各部
分と関連する。高い帯域幅アレイから一部が除去される
たびに、出力部分カウンタは増加し、この値が抽出され
るべき次の低い帯域幅部分の部分カウント値に一致する
時、その部分が除去され、カウンタはリセットする。
The output control logic needs a mechanism to determine what array packet should be removed next. A part counter, which represents how many parts must be removed from the high bandwidth array prior to that particular part, is associated with each part of the low bandwidth array. Each time a portion is removed from the higher bandwidth array, the output fraction counter is incremented and when this value matches the fraction count value of the next lower bandwidth portion to be extracted, that portion is removed and the counter Reset.

【0217】これに対して、付録IVは、本実施形態のバ
ッファ/パケットパイプラインに用いられる例示的なレ
ジスタの定義を提供する。
In contrast, Appendix IV provides a definition of an exemplary register used in the buffer / packet pipeline of this embodiment.

【0218】ソフトウェアドライバー図11aに示した
ように、本発明は、キャプチャーハードウェアとソフト
ウェアデバッグプログラムとの間をインタフェースする
ために、ソフトウェアドライバーを追加的に使用する。
これにより、キャプチャーセッションは、実行される前
に構成することが可能になる。実行時に、図11aに示
したドライバーの例示的な実施形態は、RTT及び実行レ
ジスタをターゲット地点に構成し、キャプチャーハード
ウェアを初期化し備える。
Software Driver As shown in FIG. 11a, the present invention additionally uses a software driver to interface between the capture hardware and the software debug program.
This allows the capture session to be configured before it is run. At run time, the exemplary embodiment of the driver shown in FIG. 11a configures the RTT and execution registers to the target location and initializes the capture hardware.

【0219】本発明のRTTドライバーの例示的な実施形
態は、ミニコンピュータ(たとえば、太陽熱で動作するS
un Microsystems workstation)上で実行するように適用
されるが、他のハードウェア及びソフトウェア環境が使
用され得ることがわかる。例えば、マイクロコンピュー
タ(たとえば、WinNT)上で実行される、Microsoft Windo
ws(登録商標)に基づくドライバーアプローチが使われ
ることができる。本明細書で説明された多様な機能は、
本開示に与えられたプログラミング分野の当業者により
ターゲット環境/言語で容易に具現され得ることが分か
る。したがって、次の論議は、任意の特定具現に対する
詳細事項に対照されるもので、ソフトウェアドライバー
特徴の機能に焦点をおく。
An exemplary embodiment of the RTT driver of the present invention is a minicomputer (eg, a solar powered S
It applies to run on un Microsystems workstations), but it will be appreciated that other hardware and software environments may be used. For example, Microsoft Windo running on a microcomputer (eg WinNT)
A driver approach based on ws® can be used. The various features described herein include:
It will be appreciated that one of ordinary skill in the programming arts given the present disclosure can readily implement it in a target environment / language. Therefore, the following discussion will focus on the details of any particular implementation and focus on the functionality of the software driver feature.

【0220】本実施形態のドライバーソフトウェアは、
いろいろなデバッグ環境を支援するように設計される。
このような事実をふまえて、ドライバーは、任意の特定
デバッグに関係無しに有利に開発される。ターゲットが
決まったそれぞれのデバッグ環境のために、既存のGUI
インタフェースとRTTドライバーへのリンキングの統合
が要求されるが、そういう統合は、ソフトウェアプログ
ラミング分野の当業者によって容易に行われる。このよ
うなアプローチは、それぞれのデバッグ環境がRTTドラ
イバーソフトウェアとの密接な統合を提供するように保
障する。
The driver software of this embodiment is
Designed to support various debugging environments.
Based on this fact, the driver is advantageously developed regardless of any particular debug. Existing GUI for each targeted debug environment
Integration of the interface and linking to the RTT driver is required, but such integration is easily done by those skilled in the software programming arts. Such an approach ensures that each debug environment provides tight integration with the RTT driver software.

【0221】また、ドライバーソフトウェアは、単一の
論理アナライザーとインタフェースするように構成され
ることができ、また、ハードウェア変動、他の論理アナ
ライザーブランド、または専用の注文製ハードウェアを
支援するように更新され得るように、開放的で且つ拡張
可能である。任意の数の他のハードウェア環境が支援さ
れ得る。
The driver software can also be configured to interface with a single logic analyzer, and also to support hardware variations, other logic analyzer brands, or dedicated custom hardware. It is open and extensible so that it can be updated. Any number of other hardware environments may be supported.

【0222】RTTキャプチャーの制御は、例示的な実施
形態において、トレースセッションの概念に基づいて構
成される。トレースセッションは、ユーザーにより限定
されるトレースセットによって実行ターゲットのコード
及びキャプチャートレースの結果を含む。トレースセッ
ションは、それぞれのキャプチャー実行を表す。トレー
スセッションを開始する前に、ユーザーは、1セットの
トレースセットを構成する。構成は、本場合において、
キャプチャーされる情報の形態、トレース開始及び終了
条件、任意のトリガー条件及びそれと関連した動作、及
び適用されるべきフィルタに対する説明を含む。セッシ
ョンセットの詳細事項は、デバッグGUIにより選択的に
キャプチャーされ維持される。したがって、ユーザー
は、必要時に、このようなセットを修正し削除すること
ができる。また、デバッグにより、ユーザーは、現在の
トレースセットを節約するか、以前に節約されたセット
をロードすることができ、このセットは、次のようなも
のを含む: (i)キャプチャーバッファサイズ:ユーザーは、物理的
に利用可能な最大のサイズまで使われるべきトレースバ
ッファのサイズを指定することができる。 (ii)バッファ動作:ユーザーは、キャプチャーバッファ
が循環的なメモリ、又は1回使用メモリとして使われる
か否かを指定することができる。 (iii)ターゲット開始条件:ユーザーは、選択的なプロ
グラムカウンタ(PC)の実行開始値を指定することがで
きる。キャプチャーされたトレースの開始をこのような
PCと同期するためのオプションが提供される。
Control of RTT capture is based on the concept of a trace session in the exemplary embodiment. The trace session contains the code of the execution target and the result of the capture trace by the trace set defined by the user. The trace session represents each capture run. Before starting a trace session, the user configures a set of traces. The configuration is, in this case,
It includes a description of the type of information to be captured, trace start and end conditions, any trigger conditions and associated actions, and filters to be applied. Session set details are selectively captured and maintained by the debug GUI. Thus, the user can modify and delete such sets as needed. Debugging also allows the user to save the current trace set or load a previously saved set, which includes: (i) capture buffer size : user Allows you to specify the size of the trace buffer that should be used up to the maximum physically available size. (ii) Buffer operation : The user can specify whether the capture buffer is used as a circular memory or a single-use memory. (iii) Target start condition : The user can specify the execution start value of the selective program counter (PC). Start the captured trace like this
An option is provided to sync with your PC.

【0223】(iv)キャプチャー開始条件:ユーザーは、
トレースが活性化した直後に、トレースキャプチャーを
開始すべきか、又は一つ以上の指定された条件が充足さ
れた直後に開始すべきかを指定することができる。 (v)キャプチャー終了条件:ユーザーは、トレースキャ
プチャーをいつ終了すべきかを指定することができる。
これは、例えば、キャプチャーバッファがフルとなる
か、又は一つ以上の指定された条件がいつ充足されるか
である。 (vi)フィルタ:ユーザーは、特定のアドレス範囲をトレ
ースのために無視すべきかを指定することができる。逆
に、ユーザーは、重要なアドレス範囲を指定できること
によって、PCがその範囲内にある時にだけ、トレースが
キャプチャーされるようにする。
(Iv) Capture start condition : The user
It is possible to specify whether the trace capture should start immediately after the trace is activated or immediately after one or more specified conditions are met. (v) Capture end condition : The user can specify when to end the trace capture.
This is, for example, when the capture buffer is full or when one or more specified conditions are met. (vi) Filter : The user can specify whether a particular address range should be ignored for tracing. Conversely, the user can specify an important address range so that the trace is captured only when the PC is within that range.

【0224】キャプチャー開始及び終了のための条件
は、離散的なプログラムカウンタ(PC)値、PC範囲、デー
タ値、データアドレス、またはデータ値とアドレスの結
合を含むが、それらに限定されない。ユーザーは、RTT
ユニットで合成されるモニターの数だけで制限される任
意の数の開始及び条件又はフィルタを有することができ
る。
Conditions for starting and ending capture include, but are not limited to, discrete program counter (PC) values, PC ranges, data values, data addresses, or combinations of data values and addresses. User RTT
It is possible to have any number of starts and conditions or filters limited only by the number of monitors combined in the unit.

【0225】一旦トレースセットが定められると、ユー
ザーは、トレースキャプチャー(トレースセッション)
を開始する。それぞれのトレースセッションに対する結
果は、必要に応じて、デバッグGUIに提供されることが
できる。ユーザーは、スクリーン上のいろいろなトレー
ス結果を同時に比較するだけでなく、トレース結果を格
納しロードすることができる。
[0225] Once the trace set is defined, the user can trace capture (trace session).
To start. The results for each trace session can be provided to the debug GUI as needed. Users can store and load trace results as well as compare different trace results on the screen simultaneously.

【0226】本実施形態のソフトウェアドライバーは、
エラー及び例外状況の包括的な処理を提供する。欠陥(f
ault)に対する適切なテキスト説明が、ユーザーインタ
フェース、コンソール出力、またはログファイルにさら
に伝達される。
The software driver of this embodiment is
Provides comprehensive handling of error and exception situations. Defect (f
The appropriate text description for ault) is further communicated to the user interface, console output, or log file.

【0227】図11bは本発明のRTTドライバーに使わ
れるトレースセットを構成するためのダイアローグGUI
の例示的な実施形態を示す。GUIは拡張可能な数のトレ
ースフィルター及びトリガーを有する。フィルター及び
トリガーは活性の優先順位によって順序を定めることが
できる。フィルター/トリガーは第1“N”フィルター/
トリガーの主要属性が同時に見えるように簡略化したリ
ストビュー(list view)に表れている。フィルター/トリ
ガーの主要属性はリストディスプレーで2度クリックす
ることにより直接編集できる。適切な列で2度クリック
することは開始、停止、格納及び活性属性をトグルさせ
る。完全なエディタを入力させるために、ユーザーは他
の列で2度クリックする。総括的にトレースセッション
に対するセット、例えばバッファサイズ及び形態は別の
タブ区画からアクセスする。選択性の要約ビューが右側
サイドバー上に表れることがある。選択性の要約ビュー
により多様な制御及びビュー区画から選ばれる全てのト
レースセットは一つの場所に要約される。
FIG. 11b is a dialog GUI for configuring the trace set used in the RTT driver of the present invention.
2 illustrates an exemplary embodiment of the. The GUI has a scalable number of trace filters and triggers. Filters and triggers can be ordered by activity priority. The filter / trigger is the first “N” filter /
The main attributes of the trigger are shown in a simplified list view so that you can see them at the same time. The main attributes of the filter / trigger can be edited directly by double clicking on the list display. Clicking twice in the appropriate row toggles the start, stop, store and activate attributes. The user clicks twice in the other column to enter the full editor. In general, sets for trace sessions, such as buffer size and morphology, are accessed from a separate tabbed section. A summary view of selectivity may appear on the right sidebar. The Selectivity Summary View summarizes all trace sets selected from the various control and view panes in one place.

【0228】図11cはフィルター編集者ダイアローグ
GUIの例示的な実施形態を示す。ダイアローグGUIはター
ゲットアドレス値を入力するための多様な方法を提供す
る。アドレスは直接記入するか(例えば、16進数値と
して)、または最近使われたコードラベルリストをプル
ーダウンして入力することによって、アクセスできる。
選択的に、プルーダウンリストの下段にある“mor
e...”のオプションは完全なコードブラウザーをデ
ィスプレーするために選択できる。また、ダイアローグ
GUIによりユーザーは説明的なコメントを書き込むこと
ができるようになる。これは更に多くのフィルター/ト
リガーがトレースセットに追加される時、特に有用であ
る。
FIG. 11c shows the dialog of the filter editor.
3 illustrates an exemplary embodiment of a GUI. Dialog GUI provides various ways to enter the target address value. The address can be accessed by typing it in directly (eg as a hexadecimal value) or by pulling down a list of recently used code labels.
Alternatively, select “mor” at the bottom of the pull-down list.
e. . . The “” option can be selected to display a full code browser.
The GUI allows users to write descriptive comments. This is especially useful when more filters / triggers are added to the trace set.

【0229】例示的な実施形態のデバッガGUIは現在ロ
ーディングされる全てのトレースセッションを示すディ
スプレーを提供し、ユーザーの要求時には、他の要約ビ
ューの任意のものに対してディスプレーされるようにな
る。要約情報は選択的に、(i)トレースキャプチャの日
時、(ii)キャプチャ時間の期間、(iii)セッションデー
タのサイズ(これはトレースデータの総メモリーサイズ
やレコードの数により行われることができる)、(iv)ト
レースセッションに使われたトレースセット、(v)ディ
スクに格納されるか、そのディスクからロードされる全
てのセッションの結果に対して、ファイル名(ら)を含む
要約、及び(vi)トレースセッションに対するユーザーの
追加説明を含む。
The debugger GUI of the exemplary embodiment provides a display showing all currently loaded trace sessions, and will be displayed for any of the other summary views at the user's request. The summary information is optionally (i) the date and time of the trace capture, (ii) the duration of the capture time, (iii) the size of the session data (this can be done by the total memory size of the trace data or the number of records). , (Iv) the trace set used for the trace session, (v) a summary including the filename (s) for the results of all sessions stored on disk or loaded from that disk, and (vi ) Contains additional user description for the trace session.

【0230】デバッガGUIはキャプチャされた全てのト
レースイベントを年代順で示すトレースディスプレービ
ューを提供する。このビューは、RTTライブラリーがキ
ャプチャセッションに対する完全なトレースデータを管
理させるためにダイナミックに生成されるようになり、
これによって活性サブセットのみが常にデバッガで照会
されてディスプレーされるようになる。例示的な実施形
態において、トレースディスプレーは、ビュー領域がト
レースデータから抽出される情報の他のフィールドを示
すように命名された列に分類されるリストビューを含
む。トレースフィールドは、(i)タイムスタンプの情
報、(ii)プログラムカウンタのアドレス、(iii)現在ソ
ースの命令文(例えば、“C”またはアセンブラ言語)、
(iv)データアクセスのアドレス、(v)データのアクセス
値、(vi)実行“C”時間(例えば、評価が用いられる状況
下でオプコード命令が実行される周期の数)、(vii)例え
ば、トレースFIFOがオーバーフローされることのような
例外的なイベントを含むが、それらに限定されるもので
はない。
The Debugger GUI provides a trace display view showing all captured trace events in chronological order. This view is now dynamically generated to let the RTT library manage complete trace data for your capture session,
This ensures that only the active subset is always queried and displayed in the debugger. In the exemplary embodiment, the trace display includes a list view in which the view area is sorted into named columns to show other fields of information extracted from the trace data. The trace field contains (i) time stamp information, (ii) program counter address, (iii) the current source statement (eg "C" or assembler language),
(iv) data access address, (v) data access value, (vi) execution “C” time (eg, number of cycles an opcode instruction is executed under conditions where evaluation is used), (vii) eg, Includes, but is not limited to, exceptional events such as trace FIFO overflow.

【0231】トレースディスプレーはディスプレーされ
るフィールドのうち、任意のフィールド上での検索も可
能である。また、ユーザーはキャプチャした2種類のト
レースイベント間の経過時間を測定するためにソフトウ
ェアを使用することができる。また、トレースビューは
命令トレースラインから、一例としてデバッガのソース
コードへのジャンプのためのオプションを具備した、操
作可変付きメニューを使用する他のデバッガビューや隠
れたビューへのリンクを提供するように選択的に構成す
る。
In the trace display, it is possible to search on any field among the displayed fields. The user can also use the software to measure the elapsed time between the two captured trace events. Also, the trace view now provides a link from the instruction trace line to other debugger views or hidden views that use menus with variable navigation, with options for jumping to the debugger source code as an example. Configure selectively.

【0232】また、デバッガGUIは(1)トレース結果で
キャプチャされる色々なコード機能から消費された時間
の比較を可能にする統計ビュー、及び(2)ユーザーが客
体コードのシンボル表をブラウジングするための便利な
メカニズムを提供するように構成する。図11d及び図
11eはコード及び可変的なブラウジングに対する例を
それぞれ示す。コードブラウザーにおいて、ユーザーは
階層的なツリーから部分または機能名のうち、いずれか
を選択することができ、または現在選択した階層的なノ
ード内から個別的なソースラインを選択することができ
る。また、GUIに対するこの実施形態によりユーザーは
色々なセッション結果をオープンして他のセッションに
対して並べてオープンした等価のビューを見ることがで
きる。図11fは例示的なトレースデータ分析GUIを示
す。
Also, the debugger GUI is (1) a statistical view that allows comparison of the time spent from various code functions captured in the trace results, and (2) for the user to browse the symbol table of the object code. Configure to provide a convenient mechanism for. 11d and 11e show examples for codes and variable browsing, respectively. In the code browser, the user can select either a part or a function name from the hierarchical tree, or select individual source lines within the currently selected hierarchical node. Also, this embodiment for the GUI allows the user to open various session results and see side-by-side equivalent views opened for other sessions. FIG. 11f shows an exemplary trace data analysis GUI.

【0233】他のRTTユーザーインターフェースの特徴
はソースエディタで強調したコードブロックをフィルタ
リングするためのオプションを含む該当ビュー及びダイ
アローグの開示と、強調した対応するカテゴリーを有す
る総合的な統計を見せるためにトレースビューの一つの
ラインから統計ビューへの“迅速なジャンプ”を許す操
作可変付きメニューを含む。
Other RTT user interface features include disclosure of relevant views and dialogs, including options for filtering highlighted code blocks in the source editor, and tracing to show overall statistics with corresponding categories highlighted. Includes a variable menu that allows a "quick jump" from one line of view to the statistical view.

【0234】キャプチャできるトレースデータのサイズ
は潜在的に非常に大きいために、過剰または異質的なデ
ータを隠すための一部メカニズムを提供することが重要
である。“異質的な”データの定義はユーザーにより定
まり、したがって完璧にユーザーの制御下にある。一実
施形態において、このような“データ隠し”は、一例と
して事後−キャプチャフィルターを提供するトレースデ
ータを永久に変える機能の方式に行われる。選択的に、
ビュー−特定のデータ隠しが提供されるが、ここでは一
例として費用がかからない色々なループ繰り返しが、説
明のための単一のトレースディスプレーラインにフォー
ルドされる。このような単一ラインはそれの意味を表す
ためにグラフィック的な表式(例えば、“+”シンボル
やそれと類似なもの)にコメントが付与される。このよ
うなフォールドされた部分は伝統的なユーザーインター
フェースメカニズムを通じてユーザーの意志通りに拡張
及び崩壊される。
Since the size of trace data that can be captured is potentially very large, it is important to provide some mechanism for hiding excess or heterogeneous data. The definition of "heterogeneous" data is user-defined and is therefore completely under user control. In one embodiment, such "data hiding" is done by way of a function of permanently changing the trace data, which by way of example provides a post-capture filter. Selectively,
A view-specific data hiding is provided, but by way of example here various inexpensive loop iterations are folded into a single trace display line for illustration. Such a single line is commented on a graphical expression (eg, "+" symbol or the like) to express its meaning. Such folded parts are expanded and collapsed as desired by the user through the traditional user interface mechanism.

【0235】トレースキャプチャの結果を表示させるた
めの有用な方法は、メモリーブラウザー、レジスタビュ
ー及び従来の隠れたオンラインデバッガビューと、活性
PCをトレースするソースコードビューアーを含む。GUI
制御インターフェースによりユーザーはトレースバッフ
ァを通じて逆方向及び順方向に進むことができ、ターゲ
ットシステムの状態はトレースバッファ内の選択された
地点ですぐ現在ディスプレーされる。
Useful methods for displaying trace capture results include memory browser, register view and traditional hidden online debugger view, active
Includes a source code viewer to trace your PC. GUI
The control interface allows the user to move backwards and forwards through the trace buffer and the state of the target system is now immediately displayed at the selected point in the trace buffer.

【0236】以下、図12を参照して本発明のソフトウ
ェアドライバー構造についての一つの例示的な実施形態
を説明する。この実施形態においては、2つのI/Oイン
ターフェース、すなわちデバッガインターフェースとキ
ャプチャディバイスインターフェースがホストコンピュ
ータに提供されている。前述したように、デバッガイン
ターフェースはコンピュータと遠隔コアホストのデバッ
ガインターフェースとの間に両方向のリンクを提供す
る。キャプチャディバイスインターフェースは外部コン
ピュータと他の処理ディバイス及び、専用RTTキャプチ
ャディバイスとの間に両方向リンクを提供する。例え
ば、図12はインターフェースに結合されたアップスト
リーム及びダウンストリームの通信チャンネルを個別的
なチャンネルで表しているが、このようなチャンネルは
必要に応じて物理的な同一リンク上に構成できることは
勿論である。
Hereinafter, one exemplary embodiment of the software driver structure of the present invention will be described with reference to FIG. In this embodiment, two I / O interfaces are provided to the host computer, a debugger interface and a capture device interface. As mentioned above, the debugger interface provides a bidirectional link between the computer and the debugger interface of the remote core host. The capture device interface provides a bidirectional link between an external computer and other processing devices and a dedicated RTT capture device. For example, although FIG. 12 illustrates upstream and downstream communication channels coupled to the interface as separate channels, such channels can of course be configured on the same physical link if desired. is there.

【0237】図12の構造1200はキャプチャディバ
イス1272からホストコンピュータ(例えば、PC)12
74でトレースパケットを伝送する。次に、RTTドライ
バーはパケットが局部メモリー及び/またはディスクに
格納される以前にパケットを圧縮解除する。RTTドライ
バーには圧縮解除のために、オリジナルELFコードファ
イルへのアクセスが提供される。RTTドライバーは実際
に照会されたトレース結果をデバッガソフトウェアに再
び提供するデータベースサーバーの役割をする。ここ
で、RTTドライバーにはオープンされた数個のトレース
セッションからの結果が同時に存在でき、それによりユ
ーザーは色々なトレースセッションの間の視覚的な比較
を行うことができるという点を注目するべきである。さ
らに、RTTドライバーはトレース結果のシリアライゼィ
ションを管理する。デバッガソフトウェアにより促進さ
れるRTTドライバーは、例えばディスクファイルに命名
される格納位置にセッション結果を格納されて、この格
納位置からのセッション結果のロードが可能になる。
The structure 1200 of FIG. 12 is from the capture device 1272 to the host computer (eg, PC) 12
The trace packet is transmitted at 74. The RTT driver then decompresses the packet before storing it in local memory and / or disk. The RTT driver is provided access to the original ELF code file for decompression. The RTT driver acts as a database server that actually provides the queried trace results back to the debugger software. It should be noted here that the RTT driver can simultaneously have results from several open trace sessions, which allows the user to make a visual comparison between different trace sessions. is there. In addition, the RTT driver manages the serialization of trace results. The RTT driver facilitated by the debugger software allows session results to be stored in a storage location named, for example, a disk file, and the session results can be loaded from this storage location.

【0238】また、本発明のRTTドライバーは次の機能
をカバーするように、包括的なアプリケーションプログ
ラミングインターフェース(API)、即ち(i)性能照会、(i
i)ターゲットデバッガインターフェースの登録、(iii)
セッションの構成、(iv)セッションの実行、(v)セッシ
ョンの管理、及び(vi)照会セッションのデータを提供す
る。このような態様について詳細に後述する。
In addition, the RTT driver of the present invention covers the following functions so that the comprehensive application programming interface (API), that is, (i) performance inquiry, (i
i) target debugger interface registration, (iii)
Provides session configuration, (iv) session execution, (v) session management, and (vi) query session data. Such an aspect will be described later in detail.

【0239】(i)性能照会−このAPIはRTTシステムのキ
ャプチャ性能に対する情報を総括的にリターンさせる。
この情報は、例示的なこの実施形態においては、合成し
たRTTユニットの仕様だけでなく、使用しているハード
ウェアによっても決定される。合成したRTTユニットの
仕様はターゲットデバッガインターフェースを使用する
ことにより、ターゲット構成レジスタから読み取られる
が、望みの場合には他のアプローチを使用することもで
きる。次のコードはこのような特徴を例示する:
(I) Performance Query -This API returns information about the capture performance of the RTT system as a whole.
This information is determined by the hardware being used as well as the specifications of the synthesized RTT unit in this exemplary embodiment. The specification of the synthesized RTT unit is read from the target configuration register by using the target debugger interface, although other approaches can be used if desired. The following code illustrates such a feature:

【0240】(ii)ターゲットデバッガインターフェース
の登録−このAPIはデバッガRTTドライバーとのターゲッ
トデバッグインターフェースに対する処理の登録を行
う。記述した実施形態において、このような機能は2種
類の方式に具現できる。一つの方式はDLL/SO処理を利用
し、他の方式は選択的にDLL/SOライブラリーファイルへ
の列の経路を利用する。一例として:
(Ii) Target debugger interface
Registration -This API registers the process for the target debug interface with the debugger RTT driver. In the described embodiment, such a function can be implemented in two ways. One method uses DLL / SO processing, and the other method selectively uses a column path to the DLL / SO library file. As an example:

【0241】(iii)セッションの構成−このAPI機能セッ
トは次のトレースキャプチャセッションを達成させるセ
ットオプションに対する能力を提供する。構成可能なオ
プションは、パケットエンコーディングのどんなユニッ
トがRTTユニットにより使われるかを指定する圧縮スキ
ームを使用する。例示的な実施形態における選択は完全
なアドレスやデルタアドレスのいずれかであるが、本発
明に適当に他の形態のエンコーディングを使用できるこ
とは勿論である。次のコードはこのような機能を例示す
る:
(Iii) Session Configuration -This API feature set provides the ability for set options to accomplish the next trace capture session. The configurable option uses a compression scheme that specifies what unit of packet encoding is used by the RTT unit. The choice in the exemplary embodiment is either a full address or a delta address, although it will be appreciated that other forms of encoding may be used as appropriate for the present invention. The following code illustrates such a feature:

【0242】また、活性トレースカテゴリーの記述をセ
ッション構成の一部分として提供する。その記述はトレ
ースのどんなカテゴリーがキャプチャされるのかを指定
し、命令、タイムスタンピング、データ及び待機状態の
トレースを含むトレースカテゴリーからの個別的な選択
を可能にする。これは次のコードを例示する:
A description of the active trace category is also provided as part of session configuration. The description specifies what categories of traces are captured and allows for individual selection from trace categories including instruction, time stamping, data and wait traces. This illustrates the following code:

【0243】また、セッションの構成はキャプチャバッ
ファがどのように使われるかを指定するために選択的に
構成できる。一つの例示的な実施形態に含まれる選択
は、次のコードに示すように、固定使用モードや循環使
用モードのうちいずれかにおけるバッファの使用であ
る:
Also, session configuration can be selectively configured to specify how the capture buffer is used. The choices included in one exemplary embodiment are the use of buffers in either fixed-use mode or circular-use mode, as shown in the following code:

【0244】また、トレースフィルター及びトリガーは
セッション構成の一部としても明示できる。特に、この
APIによりフィルター及びトリガーセットは次の例のよ
うに指定できる:
Trace filters and triggers can also be specified as part of session configuration. Especially this
The API allows filter and trigger sets to be specified as in the following example:

【0245】(iv)セッションの実行−このAPIによりト
レースセッションの実行が可能になる。一例は次の通り
である:
(Iv) Session Execution -This API allows execution of trace sessions. An example is:

【0246】(v)セッションの管理−このAPI機能のセッ
トによりセッションの結果は格納及びロードでき、要約
情報の照会が可能になる。一例は次の通りである:
(V) Session Management -This set of API functions allows the results of a session to be stored and loaded, allowing the query of summary information. An example is:

【0247】(vi)照会セッションのデータ−このような
API機能セットによるセッション結果は次の例に示すよ
うに、デバッガで照会及びブラウジングすることが可能
になる:
(Vi) Query session data- such as
Session results with the API feature set can be queried and browsed in the debugger as shown in the following example:

【0248】モニターユニット以下、図13ないし図1
6を参照して、本発明のモニターユニット742を詳細
に説明する。前述したように、モニターブロックの一つ
の目的は、望まないトレース情報をフィルタリングして
除去することにより、チップの外でキャプチャディバイ
ス772に供給されるデータの量を減少させることにあ
る。
Monitor Unit Below, FIGS. 13 to 1
The monitor unit 742 of the present invention will be described in detail with reference to FIG. As mentioned above, one purpose of the monitor block is to reduce the amount of data provided to the capture device 772 off-chip by filtering out unwanted trace information.

【0249】周知するように、IC上の追加的なI/Oピン
は製作の際、コストが大きく上昇する。しかし、本発明
におけるパケットポートの幅は低いコストのアプリケー
ションのため、できるだけ小さく作ることができる。こ
のようなシステムにおいて、パケットポートはチップの
外にRTTデータを伝送するためにボトルネック現象が生
じる。オーバーフローが発生しない(そして何らの情報
も損失されない)ことを保障する2種類の主要な解決策
が、このようなボトルネック現象に存在する。第1解決
策はバッファを増加させることにより、キャプチャユニ
ットへの伝送が発生する以前に殆どのデータがチップ上
にあるように許すことを含む。これは短いサイズのデー
タバーストから中間サイズのデータバーストに対するオ
ーバーフローは防止できるが、長い期間の高い帯域は、
バッファのサイズを増加させることがパケットポートを
通じて伝送されるデータの量を減少させないため、結局
オーバーフローするようになる。第2方法はユーザーが
モニターを用いて適切でないと決定したデータを廃棄さ
せることを含む。したがって、モニターユニットが記述
の例示的な実施形態で使われる間には、そのようなモニ
ターユニットが更に広範囲な発明を実行するのに必須で
はないということは勿論である。
As is well known, the additional I / O pins on the IC add significant cost to the fabrication. However, the width of the packet port in the present invention can be made as small as possible for low cost applications. In such a system, a bottleneck occurs because the packet port transmits RTT data outside the chip. There are two major solutions to this bottleneck phenomenon, which guarantee that no overflow will occur (and no information will be lost). The first solution involves increasing the buffer to allow most of the data to be on-chip before transmission to the capture unit occurs. This prevents overflows from short size data bursts to medium size data bursts, but long periods of high bandwidth
Increasing the size of the buffer does not reduce the amount of data transmitted through the packet port, resulting in overflow. The second method involves discarding the data that the user has determined to be inappropriate using the monitor. Thus, it should be understood that while a monitor unit is used in the described exemplary embodiments, such a monitor unit is not essential for carrying out a more comprehensive invention.

【0250】この実施形態のモニターユニット742は
前述したフラットナーユニット770からの出力を用い
て、どんな情報が有効であるかを決定する(また、それ
により生成ユニット744がどんなパケットを生成すべ
きかを決定する)。存在する個別的なモニターの数と、
それによるフィルタリングの複雑度とは、ビルドタイム
(build time)でユーザーにより選択的に構成可能であ
る。それぞれの個別的なモニターの動作は本明細書で詳
細に後述する。
The monitor unit 742 in this embodiment uses the output from the flattener unit 770 described above to determine what information is valid (and thereby what packet the generating unit 744 should generate). decide). The number of individual monitors that exist,
The complexity of filtering by it is the build time
(build time) can be selectively configured by the user. The operation of each individual monitor is described in detail later in this specification.

【0251】本実施例のモニターは次のような機能、
即ち(i)プログラム可能な条件とバスとのモニタリン
グ、(ii)条件の充足時に、プログラム可能なアクション
の使用、(iii)範囲指定のフィルターを提供するため
に、例えば動作スクリーニングのような個別的なモニタ
ーの動作を結合する能力、(iv)色々なトレースの形態
(例えば、命令、タイミング及びデータ)の個別的なフィ
ルタリング、及び(v)変換ツールを使用して選択のため
のHDL/合成プログラム(例えば、Verilog)に転換を提供
するように構成する:。
The monitor of this embodiment has the following functions.
That is, (i) monitoring of programmable conditions and buses, (ii) use of programmable actions when conditions are met, (iii) individual filters such as motion screening to provide range-specified filters. Ability to combine different monitor behaviors, (iv) various trace configurations
Configure to provide transformations to the HDL / synthesis program (eg, Verilog) for selection using (v) conversion tools, and individual filtering (eg, instructions, timing and data):

【0252】一つの例示的な実施形態において、複数の
構成可能なモニターが設計の時提供され、ユーザーは例
えば0、2、4、6または8個のモニターを選択でき
る。仮に一つのモニターも選択されないと、モニターブ
ロックは相変らず存在するが、生成ユニット744に認
可されるダイナミックなイネーブル信号は常に活性され
る。モニターユニット(ら)742からの出力信号はフリ
ップ−フロップから直接駆動される。これは設計の好ま
しい分配を提供し、一般的に更に優れた合成結果を提供
する。しかし、そういうフリップ−フロップの使用は広
範囲な発明において重要なものではない。
In one exemplary embodiment, multiple configurable monitors are provided at design time, and the user can select, for example, 0, 2, 4, 6 or 8 monitors. If no monitor is selected, the monitor block still exists, but the dynamic enable signal granted to the generation unit 744 is always active. The output signal from monitor unit (s) 742 is driven directly from the flip-flop. This provides a favorable partitioning of the design and generally provides better synthetic results. However, the use of such flip-flops is not important in a wide range of inventions.

【0253】逆に、モニターブロックへの全ての入力は
登録した出力から流入しなければならない。これはまさ
に平らなブロックからの信号であるが、アクションポイ
ントが設計に併合されなければならないという例外の場
合がある。これは続けて研究するべき事項である。
Conversely, all inputs to the monitor block must come in from registered outputs. This is just a signal from a flat block, with the exception that action points must be merged into the design. This is something that should be studied further.

【0254】それぞれのモニターは2つの入力バスで比
較する。一つの例示的な実施形態において、一つのバス
はユーザーがホストインターフェースを通じてプログラ
ムするレジスタ値であり、他のバスは平らなブロックか
らのバス出力に対する選択である。(やはりホストイン
ターフェースからプログラムされるレジスタを通じて)
選択可能な3つのバスは、例えば(i)命令アドレスバ
ス、(ii)データアドレスバス、(iii)LR、SR及びST命令
のためのデータ値がある。図13は第1実施例をグラフ
ィック的に示す。遅延ロードデータ(LD命令からのデー
タ)は一貫性のないリターン回数により本実施例でモニ
タリングされない。
Each monitor compares on two input buses. In one exemplary embodiment, one bus is the register value that the user programs through the host interface and the other bus is the selection for the bus output from the flat block. (Again through registers programmed from the host interface)
The three selectable buses are, for example, (i) instruction address bus, (ii) data address bus, and (iii) data values for LR, SR and ST instructions. FIG. 13 graphically shows the first embodiment. Delayed load data (data from the LD instruction) is not monitored in this embodiment due to inconsistent return counts.

【0255】マルチプレクサ−の選択によりそれぞれの
モニターは前述した3つのバスのうちいずれかで4種類
の動作、すなわち≧、<、=、≠を行うことができる。
また、モニターによる比較は有効命令上で行われる時に
だけフィルタリングするので、出力は有効フラッグに結
合するべきである。これはこのような有効フラッグを生
成するために信号は平らなブロックからも出すと共に、
できるだけ入力バスのそれぞれに関連するためである。
Depending on the selection of the multiplexer, each monitor can perform four kinds of operations, that is, ≧, <, =, ≠ on any of the above-mentioned three buses.
Also, the output should be tied to a valid flag, as the comparison by the monitor filters only when done on a valid instruction. This is because the signal also comes out of the flat block to produce such an effective flag,
This is because it relates to each of the input buses as much as possible.

【0256】生成ブロックに出力される3つのダイナミ
ックなイネーブル信号が存在し、それぞれの信号はそれ
ぞれのトレース形態、すなわち命令トレース、命令タイ
ミングトレース、及びデータトレースのためのものであ
る。それぞれのダイナミックなイネーブルはどんなモニ
ターの出力がイネーブルビットを制御するのに使われて
いるかを選択する別の制御レジスタを具備する。モニタ
ーはアドレス範囲の比較(機能を分類するのに有用であ
る)を行うために全て結合することができ、次のような
形態らのうち、いずれかにより作動できる: (i)開始−条件が真の時、イネーブルは停止条件が行わ
れるまで、“1”にセットされる。 (ii)停止−条件が真の時、イネーブルは開始条件が行わ
れるまで、“0”にセットされる。 (iii)許容−条件が真の時、イネーブルは“1”にセッ
トされ、そうでなければデフォルト値を取る(開始/停止
条件により)。 (iv)防止−条件が真の時、イネーブルは“0”にセット
され、そうでなければ(開始/停止条件により)デフォル
ト値を取る。
There are three dynamic enable signals that are output to the generate block, each signal for a respective trace type: instruction trace, instruction timing trace, and data trace. Each dynamic enable comprises a separate control register that selects what monitor output is used to control the enable bits. Monitors can all be combined to perform address range comparisons (useful for grouping functions) and can be activated by any of the following forms: (i) start-condition When true, the enable is set to "1" until the stop condition is met. (ii) Stop-When the condition is true, the enable is set to "0" until the start condition is met. (iii) Accept-Enable is set to "1" when the condition is true, otherwise it takes the default value (depending on start / stop conditions). (iv) Prevent-When the condition is true, the enable is set to "0", otherwise (depending on the start / stop condition) it takes the default value.

【0257】開始及び停止条件に関するイネーブルの状
態を登録するために一つのフリップ−フロップが使われ
る。論理アナライザーがトリガー上でデータをキャプチ
ャする場合も、同一な方式のトリガー信号が使われる。
トリガーはモニターらのうちいずれか(モニターらの結
合を含む)や外部ソース(アクションポイントブロックも
含む)から生成できる。本明細書で前述したARCコアの例
示的な場合には、データ値及びレジスタファイルの再書
き込みだけでなく命令及びデータアドレスバスをモニタ
リングするのに使われる選択的なデバッグ設備が提供さ
れる。アクションポイントは望みの条件が満たされた時
にコアをブレーキさせることができ、モニターの可能時
に結合されることができる。しかし、このようなアクシ
ョンポイントはモニターとは若干相違する。アクション
ポイントは多くの信号をトレースしてモニターに対する
要件をトレースするのに使われ、平らになったパイプラ
インを確認しない。したがって、PCとの比較においてコ
アをブレーキさせるように構成されたアクションポイン
トは、それがレジスタファイルの再書き込みをブレーキ
させるように構成される同一な瞬間にはトリガーしな
い。
One flip-flop is used to register the enable state for start and stop conditions. The same type of trigger signal is used when the logic analyzer captures the data on the trigger.
Triggers can be generated from any of the monitors (including the combination of the monitors) or an external source (including the action point block). In the exemplary case of the ARC core described earlier in this specification, selective debug facilities are provided that are used to monitor the instruction and data address buses as well as rewriting the data values and register files. Action points can brake the core when desired conditions are met and can be combined when monitoring is possible. However, such action points are slightly different from the monitor. Action points are used to trace many signals and trace requirements to the monitor, not the flattened pipeline. Therefore, an action point configured to brake the core in comparison to a PC will not trigger at the same moment it is configured to brake the rewriting of the register file.

【0258】前述したように、モニターユニットは、ト
レース実行が行われる以前に、色々な構成レジスタがホ
ストトレースを通じてユーザーにより構成することが必
要である。
As mentioned above, the monitor unit requires that various configuration registers be configured by the user through the host trace before the trace execution is performed.

【0259】モニターブロックに存在することを含ん
で、全てのRTTレジスタは二重にアクセスされ、補助レ
ジスタ空間にマッピングされる。これは、ホスト及びコ
アがレジスタへの他のチャンネルを具備してホストアク
セスが非強制的であるというのを意味する。さらに、こ
のようなレジスタの位置が定まるべきである。それぞれ
のモニターは少なくとも2つのレジスタを必要とする。
一つは構成のためのもので、他の一つは比較値のための
ものである。また、ダイナミックなそれぞれのイネーブ
ルは構成レジスタを必要とするべきである。
All RTT registers, including those present in the monitor block, are doubly accessed and mapped into the auxiliary register space. This means that the host and core have other channels to the registers and host access is non-mandatory. In addition, the location of such registers should be fixed. Each monitor requires at least two registers.
One is for construction and the other is for comparison values. Also, each dynamic enable should require a configuration register.

【0260】例示的な実施形態において、それぞれのモ
ニターは個別的に構成することができ、それに関連する
2つのレジスタを具備する。第1モニターレジスタはど
んなバスがモニタリングされ、どんな形態の比較が行わ
れるかを選択するために使用する。第2モニターレジス
タは比較値を含む。同一または同一でない動作を行う
時、符号なし32-ビット値がこのレジスタに記録され
なければならない。より大きいか同一及びより小さな動
作を行う時、必要とする値のネガティブが2の補充形態
に書き込まなければならない。これはモニターユニット
がターゲットクロックの速度を達成するようにするため
に必要である。
In the exemplary embodiment, each monitor is individually configurable and has two registers associated with it. The first monitor register is used to select what bus is monitored and what form of comparison is made. The second monitor register contains a comparison value. An unsigned 32-bit value must be recorded in this register when performing identical or non-identical operations. When performing greater than or equal and smaller operations, the negative of the required value must be written into the two fill configurations. This is necessary to ensure that the monitor unit achieves the target clock speed.

【0261】それぞれのダイナミックなケーブルは開
始、停止、許容及び防止のような4個の特性各々に対し
てモニターまたはモニター結合を選択するように構成レ
ジスタをさらに具備する。一つはトリガーのソース(ら)
を選択するためのもので、他の一つはトレースキャプチ
ャ以後にトリガーの発生を識別するためのものである。
Each dynamic cable further comprises a configuration register to select a monitor or monitor coupling for each of the four properties such as start, stop, allow and prevent. One is the source of the trigger (R)
The other one is for identifying the occurrence of the trigger after the trace capture.

【0262】また平らなユニット770は実行履歴を再
構成するのに必要とするプロセッサのパイプラインから
必要とする信号を取り、これらを“平らに”して、特定
命令に関連する全ての信号が同一なクロック周期の間に
有効になる。これらの信号を生成ブロックに伝達する前
に、これらの信号はモニターユニット742に伝えられ
るが、ここでは、これらの信号の殆どはモニター自身が
実行のために取ったクロック周期番号により発送され
る。ゲート数についての高いコストを要するとしても、
モニターのダイナミックなフィルタリングが適切な命令
に影響を及ぼすように、これらの全ての信号を発送させ
る必要がある。ユーザーにより要求されるフィルタリン
グを行うために、これらの信号のうち、極めて一部はま
たモニターにより使われる。
The flattening unit 770 also takes the necessary signals from the processor pipeline that it needs to reconstruct the execution history and "flattens" them so that all signals associated with a particular instruction are It is valid during the same clock period. Prior to passing these signals to the generation block, these signals are passed to the monitor unit 742, where most of these signals are dispatched with the clock period number taken by the monitor itself for execution. Even though it costs a lot of money about the number of gates,
All these signals need to be routed so that the monitor's dynamic filtering affects the proper command. A very small portion of these signals is also used by the monitor to provide the filtering required by the user.

【0263】下の表10はこの実施形態において、平ら
なユニットとモニターユニットの間で使われる例示的な
ポートインターフェース信号を並べたものである。全て
の信号は他に説明されないと登録した入力である。
Table 10 below lists the exemplary port interface signals used between the flat unit and the monitor unit in this embodiment. All signals are registered inputs unless otherwise explained.

【0264】[0264]

【表10】 [Table 10]

【0265】平らなユニット770からの信号はモニタ
ーユニット742により発送されるが、そうでない場
合、生成ユニット744に伝えられる前に変わらないで
残るようになる。モニターユニットの内部から生成され
る3個の付加的な信号、すなわちトレース形態のそれぞ
れのためのダイナミックイネーブルが存在する。これら
はフィルタリングを制御し、どんなパケット形態が生成
されるかを決定する。
The signal from the flat unit 770 is dispatched by the monitor unit 742, but otherwise it remains unchanged before being passed on to the generation unit 744. There are three additional signals generated from inside the monitor unit, namely the dynamic enables for each of the trace configurations. These control the filtering and determine what packet form is generated.

【0266】下の表11はこの実施形態でモニターユニ
ットと生成ユニットの間で使われる例示的なポートイン
ターフェースの信号を並べたものである。
Table 11 below lists the signals for an exemplary port interface used between the monitor and generator units in this embodiment.

【0267】[0267]

【表11】 [Table 11]

【0268】モニターの作用を構成するために使われた
レジスタは全てコア(例、前述したARCtangent A4プロ
セッサ)の補助レジスタ空間にマッピングされる。全て
のレジスタはプロセッサの実行中にホストの非強制アク
セスを許すデュアルアクセス構造である。
All registers used to configure the monitor's operation are mapped into the auxiliary register space of the core (eg, the ARCtangent A4 processor described above). All registers are dual access structures that allow non-forced access by the host during processor execution.

【0269】表12はこの実施形態でモニターユニット
とコア内の適切なモジュールの間で使われる例示的なポ
ートインターフェース信号をリスト化したリストであ
る。全ての信号は他に説明されないと登録された入力で
ある。
Table 12 is a list listing exemplary port interface signals used between the monitor unit and the appropriate module in the core in this embodiment. All signals are registered inputs unless otherwise explained.

【0270】[0270]

【表12】 [Table 12]

【0271】一つ以上のRTTシステムを実行させる構成
レジスタはRTT_regsと称される別のモジュールで維持
される。このようなレジスタ(またはそれらから誘導さ
れる信号)のうち一部は、生成ユニットが平らなユニッ
ト信号及びダイナミックイネーブルを通じて適時にそれ
らを受信する順序で、モニターを活性化させるのにかか
る適切な周期数を通じて発送されなければならない。表
13を参照しよう。
The configuration registers that run one or more RTT systems are maintained in another module called RTT_regs. Some of these registers (or the signals derived from them) consist of the appropriate period for activating the monitor in the order in which the generating unit receives them in time through the flat unit signals and dynamic enables. Must be shipped through a number. See Table 13.

【0272】[0272]

【表13】 [Table 13]

【0273】RTTシステムに存在するモニターの数はこ
の実施形態で2、4、6、または8の値を取れるNUM_M
ONITORS定数(rtt_optionsで定まる)により構成可能で
ある。MONITORS_EXIST定数を“偽り”にセットするこ
とにより、モニターを一つも持たない設計にすることも
可能である。この実施形態において、NUM_MONITORS定
数は2以下には落ちてはならなく、編集通報がコード内
の不正確なループ範囲により発生することもある。しか
し、推論される論理は相変らず正確である。
The number of monitors present in the RTT system is NUM_M which can take the values 2, 4, 6 or 8 in this embodiment.
It can be configured by ONITORS constant (determined by rtt_options). It is also possible to design without a monitor by setting the MONITORS_EXIST constant to "false". In this embodiment, the NUM_MONITORS constant should not drop below 2 and edit notifications may occur due to incorrect loop ranges in the code. However, the inferred logic is still accurate.

【0274】DATA_TRACE定数は、RTTシステムがデータ
トレースに関するパケットを生成できるかを決定する。
これはモニターユニットのフィルタリング機能に影響を
及ぼす。データトレースのターンオンされることによ
り、モニターは命令アドレスバス、データアドレスバ
ス、及びlr、sr、stデータ値バスとの比較を行うことが
できる。データトレースがターンオフされると、モニタ
ーはひたすら命令アドレスバスとの比較のみを行うこと
ができる。
The DATA_TRACE constant determines whether the RTT system can generate packets for data traces.
This affects the filtering function of the monitor unit. The turn-on of the data trace allows the monitor to compare the instruction address bus, the data address bus, and the lr, sr, st data value buses. When the data trace is turned off, the monitor can only compare with the instruction address bus.

【0275】仮に命令タイミングトレースがTIMING_TR
ACE定数でイネーブルにならないと、タイミングトレー
スのダイナミックイネーブルが非活性状態に固定され、
モニターのうちいずれかにより影響を受けないべきであ
る。仮にデータトレースがDATA_TRACE定数にイネーブ
ルにならないならば、データトレースのダイナミックイ
ネーブルが非活性状態に固定されるはずであり、モニタ
ーらのうちいずれによっても影響を受けないべきであ
る。
If the instruction timing trace is TIMING_TR
If it is not enabled by the ACE constant, the dynamic enable of the timing trace is fixed to the inactive state,
It should not be affected by any of the monitors. If the data trace is not enabled for the DATA_TRACE constant, the dynamic enable of the data trace should be fixed in the inactive state and should not be affected by any of the monitors.

【0276】定数MONITORS_PIPELINEDはどれくらい多
くのステージでモニターが実行されているかを決定す
る。セットされた時、モニターは2つのステージを必要
とし、全ての平らなユニット信号はそれによって発送さ
れ、そうでなければモニターは単一つのステージで実行
する。
The constant MONITORS_PIPELINED determines how many stages the monitor is running. When set, the monitor requires two stages, and all flat unit signals are routed thereby, otherwise the monitor performs in a single stage.

【0277】図14は単一モニターユニット742の構
造1400に対する他の例示的な実施形態を示す。この
実施形態のモニターユニットに対する構造は次のような
2つの異なる部分に分けられる:1)モニター自体のそれ
ぞれによる比較動作部、及び2)モニターが結合される
方式及びモニターがダイナミックなイネーブルレジスタ
上で有する動作部。
FIG. 14 illustrates another exemplary embodiment for the structure 1400 of the single monitor unit 742. The structure for the monitor unit of this embodiment can be divided into two different parts as follows: 1) the comparison operation part by each of the monitors themselves, and 2) the way the monitors are combined and the monitor on the dynamic enable register. The operating unit that has.

【0278】データトレースがターンオフされた時、有
効な消失に対する比較を行うためにマルチプレクサ−1
402は任意のバスを選択する。比較を行うのに有効な
唯一のバスは命令アドレスバス1404である。
Multiplexer-1 to make a comparison for valid erasures when the data trace is turned off.
402 selects an arbitrary bus. The only valid bus for making comparisons is the instruction address bus 1404.

【0279】命令デコーダ1406は、モニターが比較
を行うために構成された命令のみによって活性されるこ
とを保障するために必要とする。命令アドレスバスに対
する比較を行う時、モニターの有効信号1408は常に
活性される。データアドレスやデータ値に対する比較を
行う時、モニター有効信号は、現在の命令形態がモニタ
ー条件レジスタ内の、命令形態のフラッグらのうちいず
れかと一致する場合にだけ活性される。
The instruction decoder 1406 is needed to ensure that the monitor is activated only by the instructions configured to make the comparison. The monitor valid signal 1408 is always active when making a comparison to the instruction address bus. When performing a comparison against a data address or data value, the monitor enable signal is activated only if the current instruction form matches any of the instruction form flags in the monitor condition register.

【0280】基準比較値1412はモニターの基準レジ
スタ(レジスタの定義を参照)から取られる、システムの
各モニターに対して一つの32ビットレジスタが存在す
る。
The reference compare value 1412 is taken from the monitor's reference register (see Register Definitions), one 32-bit register for each monitor in the system.

【0281】RTTユニットのモニターは図15に示した
ように1組または4組にも結合することができる。マル
チプレクサ−1502により選択された信号はモニター
制御レジスタによって決定されて、これに対しては付録
IIIに提供されていたレジスタ定義により説明する。
The monitors of the RTT unit can be combined in one set or four sets as shown in FIG. The signal selected by multiplexer-1502 is determined by the monitor control register, for which the appendix
It is explained by the register definition provided in III.

【0282】モニター条件レジスタは、モニターがダイ
ナミックイネーブルを実行させることができる方法を決
定する。それには次のような4つのオプションが存在す
る:1)開始、2)停止、3)許容、及び4)遮断。ダイナ
ミックなそれぞれのイネーブルには2つのフリップ−フ
ロップ、すなわちダイナミックイネーブル自体、及びデ
フォルト値を保有するために使われる開始/停止フリッ
プ−フロップが連結される。ダイナミックイネーブル
は、“遮断”モニターが活性される場合には“0”とな
り、“許容”モニターが活性される場合には“1”とな
るべきである。仮に許容または遮断モニターのうち、ど
れも活性されないならば、ダイナミックイネーブルは開
始/停止フリップ−フロップからデフォルト値を取る。
“開始”フィルターは開始/停止フリップ−フロップ活
性をセットし、“停止”は開始/停止フリップ−フロッ
プを非活性にセットするべきである。
The Monitor Condition Register determines how the monitor can force a dynamic enable. There are four options: 1) Start, 2) Stop, 3) Allow, and 4) Block. Each dynamic enable has two flip-flops associated with it, the dynamic enable itself, and a start / stop flip-flop that is used to hold a default value. The dynamic enable should be "0" when the "blocking" monitor is activated and "1" when the "allow" monitor is activated. If none of the Allow or Shutdown Monitors are activated, the Dynamic Enable takes default values from the Start / Stop Flip-Flops.
The "start" filter should set the start / stop flip-flop activity and the "stop" should set the start / stop flip-flop to inactive.

【0283】図16はダイナミックイネーブル上で結合
されたモニターの動作を示す。仮に一つ以上のモニター
が“許容”として動作し、一つ以上のモニターが“遮
断”として動作する所では衝突が起こり(または“開
始”と“停止”に対する衝突が起こる)、その時は最も
低いインデックスを有するモニターが優勢になる。
FIG. 16 illustrates the operation of a monitor coupled on dynamic enable. If one or more monitors behave as “tolerant” and one or more monitors are acting as “block”, a collision occurs (or a collision for “start” and “stop”), which is the lowest Monitors with indexes dominate.

【0284】前述した実施形態において、また開始モニ
ターはダイナミックイネーブル活性化(開始/停止フリッ
プ−フロップと共に)を行う付加的な特性を持っている
ことにより、“開始”条件の満足とともに、トレースキ
ャプチャが発生する。停止モニターは開始/停止フリッ
プ−フロップにのみ影響を与えて、本質的に開始条件を
充足してから一周期が過ぎた後にトレースキャプチャを
停止させる。これは停止条件を引き起こす命令がトレー
ス(例えば、ある機能のj-リンク出口点)で相変らずキャ
プチャされるというのを意味する。
In the embodiment described above, and because the start monitor has the additional property of performing dynamic enable activation (with start / stop flip-flops), trace capture can be achieved with satisfaction of the "start" condition. Occur. The stop monitor only affects the start / stop flip-flops, essentially stopping the trace capture one cycle after the start condition is met. This means that the instruction that causes the stop condition will still be captured in the trace (eg, the j-link exit point for a function).

【0285】また、プロセッサ自体はモニター制御補助
レジスタに記録を行うことにより、開始/停止フリップ
−フロップに影響を及ぼすことができる。これは他のト
レース形態のデフォルト状態がホストコンピュータまた
はRTT認識運営体制により、トレースキャプチャが発生
する前にセットアップできるようにする。
Further, the processor itself can influence the start / stop flip-flop by recording in the monitor control auxiliary register. This allows the default state of other trace configurations to be set up by the host computer or RTT-aware operating system before trace capture occurs.

【0286】付録IIIはこの実施形態で使われる例示的
なモニターレジスタに対する詳細な情報及び定義を提供
している。
Appendix III provides detailed information and definitions for the exemplary monitor registers used in this embodiment.

【0287】パケットポート前述したように、パケット
ポート772の主目的はチップの外のトレース情報を一
つ以上の外部キャプチャユニットに伝送することであ
る。パケットポートはバッファからトレース情報を受信
する役割を担い、このトレース情報が所定のプロトコル
に従うようにして外部キャプチャユニットがトレース履
歴を再構成できるようにする。生成ユニットから出力さ
れた全てのトレース情報はキャプチャユニットによって
見られるようになる。
Packet Port As mentioned above, the main purpose of packet port 772 is to transmit off-chip trace information to one or more external capture units. The packet port is responsible for receiving trace information from the buffer so that the trace information follows a predetermined protocol and allows the external capture unit to reconstruct the trace history. All trace information output from the generation unit will be viewed by the capture unit.

【0288】本発明に係るパケットポートの例示的な実
施形態は(i)構成可能なポートの幅、(ii)キャプチャク
ロックの提供、(iii)データストリームが所定のプロト
コルに符合させる、及び(iv)変換道具を活用して選択し
たHDL/合成プログラム(例、Verilogで翻訳のような機能
性を提供する。また、典型的なパケットポートはまたマ
ルチコアトレースが単一パケットポートを通じてストリ
ーミングできるように設計される。
An exemplary embodiment of a packet port according to the present invention is (i) configurable port width, (ii) providing a capture clock, (iii) allowing the data stream to conform to a predetermined protocol, and (iv) ) Utilize translation tools to provide selected HDL / synthesis programs (eg, Verilog-like translation-like functionality. Also, typical packet ports are also designed to allow multi-core traces to be streamed through a single packet port. To be done.

【0289】更に詳細に後述するように、また、例示的
な実施形態は有利にも少ないプロトコル変更を利用して
パケットポートの幅を1ピンに容易に縮小させる能力を
提供する。
As will be described in more detail below, the exemplary embodiment also advantageously provides the ability to easily reduce the width of a packet port to one pin utilizing fewer protocol changes.

【0290】図17に示すように、例示的な実施形態の
パケットポートの構造1700はFIFO902からの出力
を受信し、有効でないデータをフィルタリングする。こ
の構造1700は平行構造で配列された複数ノーマルチ
プレクサ−1704からなり、パケットポートピンの各
ニップルに一つノーマルチプレクサ−が割り当てられ
る。各パケットポートニブルはFIFO出力にあるデータの
各ニブルからの入力、いわゆる“ニブルスタッフィン
グ”を必要とする場合、0xF(“1111”)値を取るこ
とができる。他の構成を用いることもできるが、前述し
た実施形態でポートピンの個数は4の倍数(すなわち、
4、8、16等)でなければならない。
As shown in FIG. 17, the packet port structure 1700 of the exemplary embodiment receives the output from the FIFO 902 and filters out invalid data. The structure 1700 comprises a plurality of no-multiplexers 1704 arranged in a parallel structure, with one no-multiplexer assigned to each nipple of a packet port pin. Each packet port nibble can take a 0xF (“1111”) value if it requires an input from each nibble of data at the FIFO output, so-called “nibble stuffing”. Although other configurations can be used, the number of port pins is a multiple of 4 (ie,
4, 8, 16)).

【0291】RTTデータストリームの圧縮を解除するた
めに、セグメント開始パケットは外部キャッチャ装置に
より認められるように作られる。一つのセグメントにあ
る全ての順次的なパケットはセグメント開始パケットに
ある絶対データ値に対してエンコーディングされたデー
タを持つ。したがって、前述した例示的な構造1700
で4つのゼロ値のニブルはセグメント開始パケットより
前に置かれるようになる。これは後者がデータストリー
ムの中間に埋もれていても、外部キャプチャ装置がセグ
メント開始イベントを認識するように助ける。したがっ
て、例示的なRTTプロトコルで4つのゼロ値のニブルは
絶対トレースパケット内で表れてはだめで、これはニブ
ルスタッフィングによって達成される。具体的に、パケ
ットポートはトレースパケット内で3つの連続的なゼロ
値のニブルと会うようになれば、データストリーム内に
余分のニブル値0xF(“1111”)を挿入する。これは
次(4番目)のニブルがゼロの場合、前述したプロトコル
が違反でないというのを保障するようになる。ニブルス
タッフィングは4番目のニブル値がゼロでもそうでなく
とも発生する。図18はこの工程を図示的に示す。
To decompress the RTT data stream, the segment start packet is made as seen by the external catcher device. All sequential packets in a segment have the data encoded for the absolute data value in the segment start packet. Thus, the exemplary structure 1700 described above.
Thus, four zero value nibbles will be placed before the segment start packet. This helps the external capture device to recognize the segment start event even though the latter is buried in the middle of the data stream. Thus, in the exemplary RTT protocol, four zero value nibbles should not appear in the absolute trace packet, which is accomplished by nibble stuffing. Specifically, if the packet port encounters three consecutive zero-valued nibbles in the trace packet, it inserts an extra nibble value 0xF (“1111”) in the data stream. This ensures that if the next (4th) nibble is zero, the above protocol is not a violation. Nibble stuffing occurs whether the fourth nibble value is zero or not. FIG. 18 illustrates this process graphically.

【0292】また、例示的な実施形態において、パケッ
トポート772は他の同期スキームが使われることがで
きると認識されても、キャプチャユニットにより提供さ
れたクロック信号に同期化する。システムクロックが既
存のピンに対してモニターできるならば、この信号はデ
ータキャプチャを同期化するためにキャプチャユニット
により使われることができる。ゲートされたクロックは
より“知能的”でないキャプチャ装置からナルデータを
フィルタリングする役割をなくしてくれるパケットポー
トによって選択的に提供されることができる。図19に
示すように、キャプチャクロックはパケットポートピン
に有効なデータがある時にのみ変化する。外部キャプチ
ャユニットはパケットポートクロックの下降エッジでデ
ータをサンプリングする。これはデータが単にクロック
の上昇エッジでだけ変化するために、適切なセット及び
維持時間を保障してくれる。
Also, in the exemplary embodiment, packet port 772 synchronizes to the clock signal provided by the capture unit even though it is recognized that other synchronization schemes may be used. This signal can be used by the capture unit to synchronize the data capture if the system clock can be monitored for existing pins. The gated clock can be selectively provided by a packet port which eliminates the role of filtering null data from less "intelligent" capture devices. As shown in FIG. 19, the capture clock changes only when there is valid data on the packet port pin. The external capture unit samples the data on the falling edge of the packet port clock. This guarantees proper set and hold times as the data changes only on the rising edge of the clock.

【0293】テスト構造及び方法論本発明のRTTはプロ
グラム実行中にコアの非−妨害の観測を支持する。前述
したように、例示的な実施形態のRTTは命令トレース、
データトレース、イベントトレース及びタイミングトレ
ース情報のような4種類のトレース情報をキャプチャす
る。平らなユニット770は可能なトレース形態と関連
する変化を検出するためにプロセッサの状態を観測して
外部信号を選択する。トレース情報は生成ユニット74
4に伝送する前に、ユーザーセットに対するトレース情
報をダイナミックにフィルタリングするモニターユニッ
ト742に伝送される。また、モニターユニットはトリ
ガーを生成する。生成ユニット744は内部状態(例え
ば、カウンタ)を更新してパケットを生成することによ
りトレース情報を記録する。バッファ712はパケット
を格納して格納装置に伝送する。バッファの格納容量が
多過ぎると、インタラプトがコアに選択的に伝送され
る。制御ユニット746はRTTの動作制御に使われる補
助レジスタ及び状態装置を含む。
Test Structure and Methodology The RTT of the present invention supports the observation of non-interfering cores during program execution. As mentioned above, the RTT of the exemplary embodiment is an instruction trace,
Capture four types of trace information such as data trace, event trace and timing trace information. Flat unit 770 observes the state of the processor to select external signals to detect changes associated with possible trace morphology. Trace information is generated by the generating unit 74
4 to the monitor unit 742 which dynamically filters the trace information for the user set. The monitor unit also generates a trigger. The generation unit 744 records the trace information by updating the internal state (eg, counter) and generating a packet. The buffer 712 stores the packet and transmits it to the storage device. When the buffer has too much storage capacity, interrupts are selectively transmitted to the core. The control unit 746 includes auxiliary registers and state machine used to control the operation of the RTT.

【0294】前述したように、平らなユニット770は
コア(例えば、ARC)パイプラインの全てのパイプライン
の効果を除去する。平らなユニット770の出力は本質
的にパイプラインのないプロセッサの出力のように見え
る。平らなユニットは命令またはインタラプトがパイプ
ラインの特別な状態(すなわち、例示的なARCパイプライ
ンで4ステップまたは再書き込みステップ)にある時、
命令またはインタラプトに関連する全ての情報を含む。
コアパイプラインは第1、2及び3ステップで、命令ま
たはインタラプトに関連する情報を生成するが、平らな
ユニットはこの情報を生成する時に格納し、関連命令ま
たはインタラプトがパイプラインに出される時にコアパ
イプラインに出される。
As mentioned above, the flat unit 770 eliminates the effects of all pipelines in the core (eg, ARC) pipeline. The output of the flat unit 770 looks like the output of an essentially pipelineless processor. A flat unit is when an instruction or interrupt is in a special state of the pipeline (ie 4 steps or rewrite steps in the exemplary ARC pipeline),
Contains all information related to the instruction or interrupt.
The core pipeline, in steps 1, 2 and 3, generates information related to an instruction or interrupt, which the flat unit stores when generating this information and the core when the related instruction or interrupt is issued to the pipeline. It goes out to the pipeline.

【0295】RTTの平らなユニット770をテストする
のに使用する例示的なテストコードシナリオは付録Vに
提示する。
An exemplary test code scenario used to test the RTT flat unit 770 is presented in Appendix V.

【0296】RTTのモニターユニット742は平らなユ
ニット770からの出力を取り、情報が有効であるか、
またそれによって生成ユニット744がどんなパケット
を生成しなければならないかを決定する。存在する各モ
ニターの個数及びそれによるフィルタリングの複雑性は
構築時にユーザーによって構成可能である。付録VIは動
作中にRTTモニターユニット742に対して行われる規
定されたテストの例示的なセットを示す。付録VIのテー
ブルにある各列は多様なモニターが反応できる可能な組
合の範囲を提供するために、モニターがどのように構成
されるかを示す一つのテストに該当する。付録VIに示し
たことより、更に多くのフィルター組合が可能だと考え
られるが、示した例示的な組合は機能性及び強度に対し
て優れた範囲を提供する。
The RTT monitor unit 742 takes the output from the flat unit 770 to see if the information is valid.
It also determines what packet generation unit 744 should generate. The number of each monitor present and thus the filtering complexity is user configurable at build time. Appendix VI shows an exemplary set of defined tests performed on the RTT monitor unit 742 during operation. Each column in the table in Appendix VI represents one test that shows how monitors are configured to provide the range of possible combinations that various monitors can respond to. While more filter combinations are possible, as shown in Appendix VI, the exemplary combinations shown provide a superior range for functionality and strength.

【0297】生成ユニット744に対して、テストは付
録VIIに示すように構成される。
For generation unit 744, the test is configured as shown in Appendix VII.

【0298】バッファ712及びパケットポート772
に対して、テストは付録VIIIに示すように構成される。
Buffer 712 and packet port 772
On the other hand, the test is structured as shown in Appendix VIII.

【0299】制御ユニット746はRTTユニットにより
使われる全ての補助レジスタからなる。レジスタによっ
て、制御ユニットにあるレジスタには例示的な実施形態
で可能なソース3つまでが書き込まれるが、このソース
はコア、ホスト及びRTTユニットである。制御ユニット
746内で、全ての読み取り/書き込み動作及び各レジ
スタの機能性は選択的にテストされる。HMSL(Hyperscri
pt markup language)またはこれと同様なスクリプトが
ホストポートを通じて全ての制御レジスタに読み取り/
書き込みを行うために例示的な実施形態で使われる。H
MSLはまた“単一ステップ”で使われ、RTTを手動で
再活性化させることができる。しかし、他のスクリプト
または言語を使用して同一な効果を提供することもでき
る。
The control unit 746 consists of all auxiliary registers used by the RTT unit. The registers write up to three sources in the control unit, which are possible in the exemplary embodiment, which are the core, host and RTT units. Within the control unit 746, all read / write operations and the functionality of each register are selectively tested. HMSL (Hyperscri
pt markup language) or similar script to read / control all control registers through the host port.
Used in the exemplary embodiment for writing. H
MSL can also be used in a "single step" to manually reactivate the RTT. However, other scripts or languages can be used to provide the same effect.

【0300】RTTユニットのために開発されたテストコ
ードはシミュレーション状態で、及び性能観測のための
ハードウェアと共に使われることができる。シミュレー
ションにより生成された結果は同一なテストコードのた
めのハードウェアから生成された結果と比較するのに使
われる。例示的な実施形態において、2つのコア“ビル
ド”はRTTユニットをテストするのに使われる。第1の
構成はコアに対する最小のビルドオプションのみを含
む。第2の構成は最大可能ビルドオプションを含む。し
かし、多様なビルドオプションに対して他の組合が使わ
れることができ、例えば望みの機能及びオプションを相
違にセットした“部分的な”構成を含むこともできるべ
きである。表14はプロセッサコア(例えば、ARC)の例
示的な実施形態におけるビルドオプションを詳細に示
す。この例において、4個の異なるRTTユニット構成が
前述した最小及び最大オプションと共に使われた。
The test code developed for the RTT unit can be used in simulation and with hardware for performance observation. The results produced by the simulation are used to compare with the results produced by the hardware for the same test code. In the exemplary embodiment, two core "builds" are used to test the RTT unit. The first configuration contains only minimal build options for the core. The second configuration includes maximum possible build options. However, other combinations can be used for a variety of build options, including for example "partial" configurations with different desired features and options set. Table 14 details build options in an exemplary embodiment of a processor core (eg, ARC). In this example, four different RTT unit configurations were used with the minimum and maximum options described above.

【0301】[0301]

【表14】 [Table 14]

【0302】表15は例示的なRTTユニットビルドオプ
ションに関連する詳細内容を提供する。総合的に、八つ
(8)個の構成(コア+RTT)がVHDL/Verilog、他のシミュレ
ーター及びAA3/0.18技術と結合して使われることが
できる。この8つの相違するビルド全体はゲートカウン
ト及びクロック速度のために合成されて検証される。ま
た、他のコアのビルドオプションはこの構成らと共に結
合されることができる。
Table 15 provides details associated with exemplary RTT unit build options. Overall, eight
(8) Configurations (core + RTT) can be used in combination with VHDL / Verilog, other simulators and AA3 / 0.18 technology. The entire 8 different builds are synthesized and verified for gate count and clock speed. Also, other core build options can be combined with these configurations.

【0303】[0303]

【表15】 [Table 15]

【0304】テストシステム(本発明の譲受人により製
造されたARCTestシステム等)は少なくともRTTテストの
サブセットを支持する。メモリーモジュールはシミュレ
ーションの結果と比較するために、あらかじめ初期化し
た結果を得るのに使われる。このテストは、例えば顧客
の信用確認またはQCを含む多様な用途のために使われる
ことができる。次のテストシステムの一部として含まれ
るこのテストは理想的に次のような全てのサブセットを
テストするように構成する。このサブセットは(i)生成
され記録されたRTTインタラプト、ZeroOverheadLp、条
件付き中止/分岐、データロード及びdldd、制御レジス
タ(ホスト)の読み取り/書き込み、制御レジスタ(コア)
の読み取り/書き込み、HMSLを通じた単一ステッピン
グ、モニターのダイナミック活性化、モニター及びトリ
ガー、及びプールトレースモードを含む。
Test systems (such as the ARCTest system manufactured by the assignee of the present invention) support at least a subset of RTT tests. The memory module is used to obtain pre-initialized results for comparison with simulation results. This test can be used for a variety of applications including, for example, customer credit verification or QC. This test, which is included as part of the following test system, is ideally configured to test all subsets of: This subset is (i) generated and recorded RTT interrupt, ZeroOverheadLp, conditional abort / branch, data load and dldd, control register (host) read / write, control register (core)
Includes read / write, single stepping through HMSL, dynamic activation of monitor, monitor and trigger, and pool trace mode.

【0305】ランダム命令発生機能(“ランダム命令の
生成装置及び方法”という名称で2001年11月5日
に同一の譲受人により出願されて、全文が本明細書に参
照として併合された米国特許仮出願番号第60/33
8、507号に開示された例示的なシステム及び方法
等)は本発明のRTTテストのためのランダム命令を生産す
るのに使われることができる。
Random Command Generation Function (US Patent Provisional Patent Application filed on November 5, 2001 by the same assignee under the name "Random Command Generation Device and Method", the entire text of which is incorporated herein by reference. Application No. 60/33
The exemplary system and method disclosed in US Pat. No. 8,507) can be used to produce random instructions for the RTT test of the present invention.

【0306】表15に説明された4つのRTT構成は構成
ソフトウェア(例えば、前述した構造ソフトウェア)から
選択可能なデフォルトRTT構成で使われることができ
る。
The four RTT configurations described in Table 15 can be used with the default RTT configurations selectable from the configuration software (eg, the structural software described above).

【0307】図20はRTTユニットと結合されて使われ
るテストベンチの例示的な一つの構成を示す。テストベ
ンチはシミュレーション下でRTTをテストするのに使わ
れる。図20の“mon”機能2002はコアパイプライ
ン効果を除去し、圧縮解除されたデータをファイル(例
えば、*.atb)に格納する。RTTから得た圧縮されたデー
タは他のファイル(例えば、*.rtt)に格納される。第1
ソフトウェアアプリケーション2004(例えば、図2
0の代表的な例で“rttDisplay”)は圧縮されたRTTデー
タファイルを圧縮解除してテキストファイルの形成にお
いてトレースデータを生成するのに使われる。第2ソフ
トウェアアプリケーション2006(例えば、“atbDisp
lay”は圧縮解除されたデータファイルをテキストファ
イルに変換し、圧縮解除されたデータファイルと圧縮さ
れたファイルの圧縮解除バージョン間の知らされた差
(ら)を除去する。この2つのファイル間の差は複数の状
況で発生することがあるが、この状況は(i)ループが以
前のセグメントでセットアップされる時、多重セグメン
トを横切るゼロオーバーヘッドループ、(ii)タイミング
トレースのない遅延されたロード及び(iii)RTTが非活性
化した後、遅延ロードデータ(DLDD)の復帰(RTTトレース
がDLDDパケットを格納しない)を含む。
FIG. 20 shows an exemplary configuration of a test bench used in combination with the RTT unit. The test bench is used to test the RTT under simulation. The "mon" function 2002 of FIG. 20 removes the core pipeline effect and stores the decompressed data in a file (eg * .atb). The compressed data obtained from the RTT is stored in another file (eg * .rtt). First
Software application 2004 (eg, FIG.
A typical example of 0 is "rttDisplay") used to decompress a compressed RTT data file and generate trace data in the formation of a text file. The second software application 2006 (for example, "atbDisp
lay ”converts a decompressed data file into a text file, and the known difference between the decompressed data file and the decompressed version of the compressed file.
Remove (etc.). The difference between the two files can occur in multiple situations, which is (i) a zero overhead loop across multiple segments when the loop is set up in a previous segment, (ii) timing trace Includes delayed load data (DLDD) recovery (RTT trace does not store DLDD packets) after no delayed load and (iii) RTT deactivation.

【0308】ISS2010下で実行するテストコードは
別のソフトウェアアプリケーション(例えば、“scareTo
Atb”ソフトウェアアプリケーション)を使用する圧縮解
除されたデータファイル(例えば、*.atb)に変換された
一つまたはその以上の結果ファイル(例えば、*.iss)を
生成する。この生成された*.atbファイルは最終トレー
ステキストファイルを生成するためにatbDisplayにより
使われる。ScarcToAtbはISSデータから遅延ロードデー
タの効果を除去する。
The test code executed under the ISS 2010 is executed by another software application (for example, "scareTo
Generate one or more resulting files (eg * .iss) converted to a decompressed data file (eg * .atb) using the “Atb” software application. This generated *. The atb file is used by atbDisplay to generate the final trace text file ScarcToAtb removes the effects of delayed load data from the ISS data.

【0309】この実施形態ではRTTの立証のために3つ
の相違する参照を使用する。 (i)バッファオーバーフローがない場合、rttDisplay及
びatbDisplayの出力は比較可能である。 (ii)バッファオーバーフローの場合、rttSimアプリケー
ション(RTTと等価のソフトウェア)は*.atbファイルから
*.rttファイルを生成するのに使われ、生成された2つ
のrttファイルは比較可能である。 (iii)ISS2010から生成されたファイルはRTT出力に
比較するための独立の参照経路となる。
This embodiment uses three different references for RTT verification. (i) If there is no buffer overflow, the outputs of rttDisplay and atbDisplay are comparable. (ii) In case of buffer overflow, the rttSim application (software equivalent to RTT) is
Used to generate * .rtt files, the two generated rtt files are comparable. (iii) The file generated from ISS2010 will be an independent reference path for comparison with the RTT output.

【0310】前述したソフトウェアモジュールは必要と
するトレースデータを生成するために他の命令ラインオ
プションで選択的に構成される。
The software modules described above are optionally configured with other instruction line options to produce the required trace data.

【0311】シミュレーション下で、独立ブロックレベ
ルテストのために、最小RTTモジュールは平らなユニッ
ト770及び生成ユニット744である。RTT702の
モニターユニット742及びバッファユニット712は
同一なテストのために平らなユニット及び生成ユニット
と共に一つずつ追加することができる。トレース情報は
このキャプチャされたデータを使用して生成されるべき
である。タイミングのトレースがないならば、RTTモジ
ュールはISS下で同一なコードを作動することにより立
証することができる。タイミングトレースに対して、全
てのタイミング情報はISSを獲得したまま結合できる前
述したモニター機能(“mon”)2002を用いて得るこ
とができる。ここに説明された例示的なモニター機能2
002は、他の構成を使用することもできるが、ModelS
im及びVHDLを支持する。したがって、VHDL及びModelSim
シミュレーション下で作動する時、モニター機能200
2から生成された全ての*.atbファイルは保存されるべ
きである。このファイルはVerilogシミュレーションを
含む他のシミュレーター上で追加の比較をする時、基本
となる。
Under simulation, for independent block level testing, the minimal RTT module is the flat unit 770 and the generate unit 744. The monitor unit 742 and the buffer unit 712 of the RTT 702 can be added one by one with the flat unit and the generation unit for the same test. Trace information should be generated using this captured data. If there is no timing trace, the RTT module can be verified by running the same code under ISS. For timing traces, all timing information can be obtained using the monitor function (“mon”) 2002 described above, which can be combined with the ISS acquired. Exemplary Monitor Function 2 Described Here
002 can use other configurations, but ModelS
Support im and VHDL. Therefore, VHDL and ModelSim
Monitor function 200 when operating under simulation
All * .atb files generated from 2 should be saved. This file is the basis for additional comparisons on other simulators, including Verilog simulations.

【0312】前述したテストコードは開発ボード(本明
細書の譲受人により製造されるArcangl13TM開発ボー
ド等)上で作動するように、トレースデータをキャプチ
ャするために選択的に使われる論理アナライザーと共に
適用することができる。代案として、注文型キャプチャ
ポートが進んだトレースディスプレーと共に使われるこ
ともできる。
The test code described above is applied with a logic analyzer selectively used to capture trace data to work on a development board (such as the Arcangl 13TM development board manufactured by the assignee hereof). be able to. Alternatively, a custom capture port can be used with an advanced trace display.

【0313】図21は全てのテストコードと前述したソ
フトウェアアプリケーション/スクリプトが格納された
例示的なデレクトリ構造を示す。テストは毎RTTユニッ
ト(例、平滑、モニター、生成、等)に分類され、これら
のユニットに対する機能性及び“コーナーケース”(“c
orner cases”)(すなわち、性能または他のパラメータ
に影響を及ぼすことができる、半導体工程に関連したこ
とのような、2つ以上のパラメータの組合)。各RTTユニ
ット下のファイルは次の事項を含むように構造化し、こ
れらはTest_name.hex、Test_name.out、Test_name.s
及びTest_name_ISS.atbである。Test_name_ISS.atb
はテストコードのISSシミュレーションから生成された
*.atbファイルであることを注目しなければならない。
共通フォルダーはVector_tableとMakefileのような全
てのテストに共通のファイルを含む。Makefileは全ての
RTTユニットの多様な他のテストコードをコンパイルす
るために全ての命令ラインオプションを含む。
FIG. 21 shows an exemplary directory structure in which all test code and software applications / scripts described above are stored. The tests are categorized into RTT units (eg, smooth, monitor, generate, etc.) and the functionality and “corner case” (“c
orner cases ”) (ie, a combination of two or more parameters, such as those associated with a semiconductor process that can affect performance or other parameters). The file under each RTT unit should Structured to include, these are Test_name.hex, Test_name.out, Test_name.s
And Test_name_ISS.atb. Test_name_ISS.atb
Generated from ISS simulation of test code
Note that this is a * .atb file.
The common folder contains files common to all tests like Vector_table and Makefile. Makefile is all
Includes all instruction line options to compile various other test code for the RTT unit.

【0314】図21の“汎用”フォルダーはテストシス
テムとRTTに統合されるテストファイルのサブセットを
含む。
The "Universal" folder of FIG. 21 contains a subset of test files that are integrated with the test system and RTT.

【0315】一つの例示的な実施形態において、各コア
の構成は統合された単一つのRTT構成を含んで、コア構
成とRTT構成間の1:1関係を維持する。テストコードは
コア構成デレクトリに統合されないで、他の位置に統合
される。テストコードは他のコア+RTT構成(すなわち、
“1対複数”の関係)のために使われることができる。
リンクはこれらの全てのテストコードを他のコア構成に
付着するために選択的に使われる。
In one exemplary embodiment, the configuration of each core comprises a single unified RTT configuration, maintaining a 1: 1 relationship between the core configuration and the RTT configuration. The test code is not integrated into the core configuration directory, it is integrated elsewhere. The test code is in another core + RTT configuration (i.e.
Can be used for "one-to-many" relationships).
Links are optionally used to attach all these test codes to other core configurations.

【0316】デレクトリ構造の実施形態(図21)におい
て、シミュレーション下で実行される全てのテストはテ
ストコードデレクトリ自体(例、“mon.atb”)にその結
果を生成する。完了後、同一なことを他のデレクトリ
(例、BUILD/RTTデレクトリ)にコピーするためにスクリ
プトが使われ、コピー後にはテスト名が付加される。ま
た、生成された他のRTT/mon/ISSファイルの比較から生
成された結果は同一なBUILD/RTTデレクトリに格納され
る。
In the directory structure embodiment (FIG. 21), all tests run under simulation produce their results in the test code directory itself (eg, "mon.atb"). After completion, do the same thing in another directory
A script is used to copy to (eg BUILD / RTT directory), after which the test name is added. Also, the result generated from the comparison of other generated RTT / mon / ISS files is stored in the same BUILD / RTT directory.

【0317】また、コード適用範囲の道具がこの実施形
態で提供される。例示的な適用範囲の標準は以下で提供
される。 (i)命令文の適用範囲−テストベンチの実行途中に実行
されるプログラムの命令文の詳細事項を提供。各実行可
能な命令文(通知命令文とコメントは除外)はどれくらい
実行されたかを分かるためにテストされる。まだ実行さ
れていない命令文が識別される。 (ii)分岐の適用範囲−テストベンチにより実行された全
てのプログラム分岐の詳細事項を提供する。分岐は主に
IFとCASEブロックで発生して、これらのブロック内の条
件付き命令文の可能な結果に対応する。まだ実行されて
いない分岐が識別される。 (iii)条件の適用範囲−下位条件のどの組合が命令文を
真となるようにするかを分かるために条件付き命令文内
の特定下位−条件に対する検査が行われる。獲得されて
いないこのような任意の条件が識別される。 (iv)経路の適用範囲−テストベンチにより特定経路がHD
Lを通じて実行されたことを確認する。まだパスされて
いない経路が識別される。 (v)トリガーリングの適用範囲-VHDL内に書き込まれたモ
デルにのみ適用し、PROCESS及びWAIT命令文の認識
リストにある信号を伴う。命令文が変化する単一の信号
により、または信号の組合によりトリガーされるかを分
かるためにテストが行われる。トリガーされていない信
号が識別される。 (vi)信号トレース適用範囲−ユーザーが指定した信号セ
ットの値を含む。実行時間に信号のうち一つが変わるご
とに、モニターされる全ての信号の値が記録される。こ
れは実行途中に生成される信号値の組合の分析を可能と
する。 (vii)トグルの適用範囲−一つの信号が論理0から論理
1に変化した後、再び論理0に変わる時、または論理1
から0に、再び1に変わる時に得られて、行なわれない
回路領域の迅速で易しい識別を許す適用範囲の標準であ
る。 (viii)活動の適用範囲−シミュレーションの間信号が論
理値を変化させる回数のカウント値を提供する。このよ
うな設備は一つの回路内で、他の信号の相対的の活動に
対する情報を提供する。 (ix)排除の適用範囲−テスト下のHDLソースコードの選
択された領域が、テストリストのうち任意のことから排
除される。
A code scope tool is also provided in this embodiment. Exemplary coverage standards are provided below. (i) Scope of statement-Provides details of the statement of the program executed during the test bench execution. Each executable statement (excluding notification statements and comments) is tested to see how well it was executed. The statements that have not yet been executed are identified. (ii) Branch coverage- provides details of all program branches executed by the testbench. The branch is mainly
Occurs in IF and CASE blocks to correspond to possible outcomes of conditional statements within these blocks. Branches that have not yet been taken are identified. (iii ) Scope of condition-A check is made for a particular sub-condition in a conditional imperative statement to see which combination of sub-conditions makes the imperative statement true. Any such conditions that have not been captured are identified. (iv) Scope of route-specific route is HD depending on the test bench
Confirm that it was executed through L. Routes that have not been passed are identified. (v) Triggering range- Applies only to models written in VHDL, with signals in the recognition list of PROCESS and WAIT statements. Testing is done to see if the statement is triggered by a single changing signal or a combination of signals. Untriggered signals are identified. (vi) Signal Trace Coverage- includes signal set values specified by the user. Every time one of the signals changes at run time, the values of all monitored signals are recorded. This allows analysis of the combination of signal values generated during execution. (vii) Toggle range of application-when one signal changes from logic 0 to logic 1 and then to logic 0 again, or logic 1
It is a standard of coverage, which is obtained when changing from 1 to 0 and back to 1 and allows a quick and easy identification of circuit areas that are not performed. (viii) Scope of activity- provides a count of the number of times the signal changes a logic value during the simulation. Such equipment provides information on the relative activity of other signals within one circuit. (ix) Exclusion Scope- Selected areas of the HDL source code under test are excluded from any of the test lists.

【0318】RTTモジュール702をテストするために
使われるテストコードは次の条件/イベントの適用範囲
を提供するために適用されるが、これらは(i)インタラ
プト(メモリーエラー、命令エラー、ユーザーインタラ
プト)、(ii)コア/補助/状態レジスタに読み取り/書き込
み、(iii)演算/論理の演算動作、(iv)単一被演算者の命
令、(v)ジャンプ命令、(vi)ジャンプ及び無効(nullify)
遅延スロット命令、(vii)ジャンプ及び実行遅延スロッ
トの命令、(viii)近接アドレスを有するジャンプ、(ix)
フラッグセットを有するジャンプ、(x)条件付きジャン
プ、(xi)分岐、(xii)条件付き分岐、(xiii)s/wブレーキ
ポイント、(xiv)直/間接ジャンプ、(xv)分岐/ジャンプ
及びリンク、(xvi)ゼロオーバーヘッドの単一命令ルー
プ、(xvii)分岐とジャンプを有するゼロオーバーヘッド
ループ、(xviii)ブレーキポイント命令を有するゼロオ
ーバーヘッドループ、(xix)長い/短い近接データを有
し、またループの底でlimmデータを構成するゼロオーバ
ーヘッドループ、(xx)休止命令、(xxi)拡張命令、(xxi
i)ロード/格納動作、(xxiii)補助レジスタ動作、(xxiv)
短い/長い近接データ及び目的地近接データの使用、(xx
v)単一ステップの命令、(xxvi)フラッグとフラッグセッ
トの命令、(xxvii)演算命令に対するインタラプト、(xx
viii)ジャンプ/分岐命令に対するインタラプト、(xxix)
ロード/格納命令に対するインタラプト、(xxx)補助レジ
スタアクセスに対するインタラプト、(xxxi)自己−変更
コード、及び(xxxii)RTTバッファオーバーフローISRsで
ある。
The test code used to test the RTT module 702 is applied to provide coverage for the following conditions / events, which are (i) interrupts (memory error, instruction error, user interrupt). , (Ii) read / write to core / auxiliary / status register, (iii) arithmetic / logical operation, (iv) single operand instruction, (v) jump instruction, (vi) jump and nullify (nullify )
Delay slot instruction, (vii) jump and execution delay slot instruction, (viii) jump with adjacent address, (ix)
Jump with flag set, (x) conditional jump, (xi) branch, (xii) conditional branch, (xiii) s / w brake point, (xiv) direct / indirect jump, (xv) branch / jump and link , (Xvi) single instruction loop with zero overhead, (xvii) zero overhead loop with branches and jumps, (xviii) zero overhead loop with brake point instructions, (xix) long / short proximity data, and loop Zero overhead loop that composes limm data at the bottom of the, (xx) pause instruction, (xxi) extension instruction, (xxi
i) load / store operation, (xxiii) auxiliary register operation, (xxiv)
Use of short / long proximity data and destination proximity data, (xx
v) single step instruction, (xxvi) flag and flag set instruction, (xxvii) operation instruction interrupt, (xx
viii) Interrupt on jump / branch instruction, (xxix)
Interrupts for load / store instructions, (xxx) interrupts for auxiliary register accesses, (xxxi) self-modifying codes, and (xxxii) RTT buffer overflow ISRs.

【0319】多重プロセッサの構成 以下、図22を参照して、関連する多重RTTs2202を
具備した集積回路2200の一つの例示的な実施形態を
説明する。図22の実施形態がASICまたはFPGAに関して
計画されたことであるが、単一のダイなおかまたは複数
のダイを含むかに関わらず、他の形態の集積回路が本発
明に適当に使われることができるというのを認識するべ
きである。
Multiple Processor Configuration In the following, referring to FIG. 22, one exemplary embodiment of an integrated circuit 2200 with associated multiple RTTs 2202 will be described. It is to be understood that the embodiment of FIG. 22 was planned for an ASIC or FPGA, but that other forms of integrated circuits are suitable for use with the present invention, whether they include a single die or multiple dies. You should be aware that you can.

【0320】図22に示すように、集積回路2200
は、本明細書で前述した複数のRTTユニット2202を
含むが、RTTユニットは関連プロセッサコア要素220
5を含む。MTI(マルチコアトレースインターフェース)
ユニット2204はRTTユニット2202の出力に接続
され、その間でデータ通信するが、ここで仲裁ユニット
2206は各RTT2202からデータを受信し、一つの
チップ上の(または2つ以上のダイに分散された)複数の
RTTが一つ以上のバッファ及び/またはパケットポート
(ら)を共有することを許す。マルチプロセッサチップ
は、チップ上でプロセッサコア2205当たり一つのRT
Tを具備できるが、例えば単一RTTに多重化されたマルチ
コアなどのようなRTTユニット2202とコアの他の組
合が使われることができるということを分かっていなけ
ればならない。
As shown in FIG. 22, integrated circuit 2200
Includes a plurality of RTT units 2202 previously described herein, where the RTT units are associated processor core elements 220.
Including 5. MTI (multi-core trace interface)
Unit 2204 is connected to the output of RTT unit 2202 to communicate data there between, where arbitration unit 2206 receives data from each RTT 2202 and is on one chip (or distributed over two or more dies). plural
RTT has one or more buffers and / or packet ports
Allow (r) to be shared. The multiprocessor chip has one RT per processor core 2205 on the chip.
It is possible to have T, but it has to be understood that other combinations of RTT units 2202 and cores can be used, eg multi-core multiplexed into a single RTT.

【0321】図22に示すように、MTI2204(仲裁ユ
ニット2206を含む)はパケットポート2209とそ
れぞれのRTT2202間で仲裁する。仲裁ユニット22
06は該当RTTを選択し、RTTのバッファ2210からMT
I2204にパケットを“放出”する。放出されたパケ
ットは共有バッファ2212が存在するとここに格納さ
れる。そうでない場合、放出されたパケットは直接MTI
2204のパケットポート2214に伝えられる。
As shown in FIG. 22, the MTI 2204 (including the arbitration unit 2206) arbitrates between the packet port 2209 and each RTT 2202. Arbitration unit 22
06 selects the corresponding RTT, MT from the RTT buffer 2210
"Emit" the packet to I2204. The released packet is stored here if the shared buffer 2212 exists. Otherwise, the emitted packet is directly MTI
2204 to the packet port 2214.

【0322】MTI2204が使われる時、RTTs2202
はパケットポートの各ニブルに対してパケット-開始出
力信号を生成し、ポートストール入力信号を支援するよ
うに構成される。パケット出力信号(ら)の開始(rtt_pk
t_start)はMTI2204がパケット間の境界を容易に決
定するように許す。ポートストールまたは維持入力信号
(rtt_pkt_hold)により、衝突が発生する場合MTIが個
別RTTのパケットポートをストールさせる。
RTTs 2202 when MTI 2204 is used
Is configured to generate a packet-start output signal for each nibble of the packet port and support a port stall input signal. Start of packet output signal (etc.) (rtt_pk
t_start) allows the MTI 2204 to easily determine boundaries between packets. Port stall or sustain input signal
By (rtt_pkt_hold), MTI stalls the packet port of the individual RTT when a collision occurs.

【0323】また、MTI2204は各パケットが共有バ
ッファ2212にある時、これらの最終RTT識別フィー
ルドを付加する。識別子フィールドのサイズは一つの例
示的な実施形態において1ニブル(2ないし16RTTsに
対して)及び2ニブル(17ないし256RTTsに対して)
であるが、識別子フィールドの他の形態及び構成(また
は、パケットの発生を識別するための他のメカニズム
も)が使われることができるということを認識しなけれ
ばならない。例えば、識別子は別のビットまたはニブル
を含むことができるが、このような別途費用は他のRTT
−またはコア−が指定した情報を各パケットに関連させ
るために使われる。選択的に、識別子フィールドはパケ
ット境界の開始部(最後の反対となる)に付加できる。多
くの他の変形と置換が本発明に適当に可能である。
The MTI 2204 also adds these final RTT identification fields when each packet is in the shared buffer 2212. The size of the identifier field is 1 nibble (for 2 to 16 RTTs) and 2 nibbles (for 17 to 256 RTTs) in one exemplary embodiment.
However, it should be recognized that other forms and configurations of the identifier field (or other mechanisms for identifying the occurrence of a packet) can be used. For example, the identifier may include another bit or nibble, but such extra cost may be incurred by another RTT.
It is used to associate -or core-specified information with each packet. Optionally, the identifier field can be added at the beginning of the packet boundary (the opposite of the end). Many other variations and permutations are suitable for the present invention.

【0324】本明細書で記述した例示的な集積回路ディ
バイス(実際に、明示的に記述されていない本発明の任
意の他の集積回路の実施形態)に対する設計は当業者に
公知された任意の数の論理合成技術を使用して合成でき
ることを認識できるべきである。ユーザーが注文できる
(すなわち、“soft”)命令セットを具備した集積回路の
論理を合成する一つの例示的な方法は、発明の名称が
“半導体設計の構成及び機能性を管理する方法及び装
置”であって1998年10月14日出願された米国仮
特許出願第60/104、271号を優先権と主張して
同一な発明の名称に1999年10月14日出願された
本出願人の共同係留中である米国特許出願第90/41
8、663号に開示されて、2つの出願明細書はその全
体本が本明細書に参照として併合された。しかし、他の
合成アプローチに代替される場合もある。このような方
法を使用して得られた注文型VHDL設計を使ってディバイ
スが製作され、その後、論理レベル表現に合成され、そ
の次に当業界ではよく知られているコンパイル、配置、
及び製作技術を使用して物理的なディバイスに変換され
る。例えば本発明は0.35、0.18及び0.1ミクロ
ン工程と互換され、窮極的に更に細かいか、他の解決策
の工程に適用されることができる。ディバイスの製作の
ための一つの例示的な工程は他のことも使われることが
できるが、IBM社が提供した0.1ミクロン“Blue Logi
c”Cu-11工程である。
Designs for the exemplary integrated circuit devices described herein (in fact, any other integrated circuit embodiment of the invention not explicitly described) are any known in the art. It should be recognized that numbers can be combined using logic synthesis techniques. User can order
One exemplary method of synthesizing the logic of an integrated circuit having a (ie, "soft") instruction set is the title of the invention is "Method and apparatus for managing configuration and functionality of semiconductor design" 1998. US provisional patent application No. 60 / 104,271 filed on October 14, 1999, is claimed as priority, and the applicant of the present application filed on October 14, 1999 under the same title is in a joint mooring. US Patent Application No. 90/41
No. 8,663, the disclosures of two applications are incorporated herein by reference in their entireties. However, it may be replaced by other synthetic approaches. Devices are built using custom VHDL designs obtained using such methods, then synthesized into logic level representations, then compiled, placed, and well known in the art.
And converted to a physical device using fabrication techniques. For example, the present invention is compatible with 0.35, 0.18, and 0.1 micron processes and can be applied to processes of ultimately finer or other solutions. One exemplary process for device fabrication can be used with others, but the 0.1 micron "Blue Logi" provided by IBM Corp.
This is the c "Cu-11 process.

【0325】図23は1ミクロン工程を用いて製作され
た例示的な集積回路ディバイスを示す。図23に示すよ
うに、ディバイス2300は特にトレースユニット23
02、パイプラインプロセッサコア2305(例、AR
C)、チップ上の“ローカル”バッファメモリー231
2、外部デバッグインターフェース2307、メモリー
インターフェース2313、及びパケットポート230
9を含む。このディバイスは前述した方法を使用して得
られた注文型VHDL設計を使用して製作され、次に論理レ
ベルの表現に合成され、その後、当業界ではよく知られ
ているコンパイル、配置、及び製作技術を使って物理的
なディバイスに変換される。
FIG. 23 shows an exemplary integrated circuit device manufactured using a 1 micron process. As shown in FIG. 23, the device 2300 is particularly suitable for the trace unit 23.
02, pipeline processor core 2305 (eg, AR
C), "local" buffer memory 231 on chip
2, external debug interface 2307, memory interface 2313, and packet port 230
Including 9. This device is manufactured using a custom VHDL design obtained using the method described above, then synthesized into a logic-level representation, and then compiled, placed, and manufactured as is well known in the art. Converted into a physical device using technology.

【0326】図23の集積回路ディバイス(本明細書で
後術するもの等もやはり)は、直列通信ディバイス、並
列ポート、タイマー、カウンタ、高電流ドライバー、A/
D変換機、D/A変換機、インタラプト処理機、LCDドライ
バー、ROM及び、他の類似な装置のように共通的に取得
可能な周辺装置を含むことができるということを当業者
であれば認識するべきである。また、プロセッサは他の
注文型またはアプリケーション指定回路を含む場合もあ
る。本発明は方法及び装置を使用して結合されることが
できる周辺装置及び他の回路の形態、数及び複雑度に限
らない。かえって、時間が経過することにより改善され
ている既存の半導体工程の物理的な容量が限定を加える
べきである。したがって、本発明を採用する集積の可能
な複雑度と程度は半導体工程が改善されるより増加する
べきである。
The integrated circuit device shown in FIG. 23 (also the device to be described later in this specification) is a serial communication device, a parallel port, a timer, a counter, a high current driver, an A /
Those skilled in the art will recognize that commonly available peripherals such as D-converters, D / A-converters, interrupt processors, LCD drivers, ROMs and other similar devices can be included. Should do. The processor may also include other custom or application specific circuitry. The invention is not limited to the form, number and complexity of peripherals and other circuits that can be combined using the methods and devices. Instead, the physical capacity of existing semiconductor processes that have improved over time should add limitations. Therefore, the possible complexity and degree of integration employing the present invention should be increased more than the semiconductor process is improved.

【0327】多くのIC設計が現在マイクロプロセッサコ
アとDSPコアを使っていることを注目しなければならな
い。しかし、DSPは限定された数のDSP機能、またはICの
速いDMA構造にのみ対して必要とするべきである。本明
細書に開示された本発明はやはりそういう構造と互換さ
れる。更に、ここで開示された観測方法を用いてICのCP
UとDSP機能全てに対して大きい長所が具現される。
It should be noted that many IC designs currently use microprocessor and DSP cores. However, the DSP should only need for a limited number of DSP functions or the fast DMA structure of the IC. The invention disclosed herein is also compatible with such structures. Furthermore, using the observation method disclosed here, the CP of the IC
Great advantages are realized for all U and DSP functions.

【0328】方法 以下、図24aを参照して、プログラムの実行中に一つ
以上のプロセッサからトレースデータを獲得する方法が
本発明の前述した概念と記述される。次の説明が図1の
例示的な単一プロセッサRTTの実施形態に関して行われ
るが、他の実施形態(図7または図22のような)を用い
て一般的な方法が具現できるということは勿論である。
Method In the following, referring to FIG. 24a, a method for obtaining trace data from one or more processors during the execution of a program will be described in the above-mentioned concept of the invention. Although the following description is with respect to the exemplary uniprocessor RTT embodiment of FIG. 1, it should be understood that other embodiments (such as FIG. 7 or FIG. 22) can be used to implement the general method. Is.

【0329】図24aに示すように、この方法は概略的
にまず、評価されるプロセッサからのデータを受信する
ように適用されたトレースユニット102を提供するス
テップを含む(ステップ2402)。またホストが例え
ば、デバッグポートを介してトレースユニット102と
間接的にインターフェースされ、プロセッサコアのホス
トインターフェースが前述したようにトレースされる
(ステップ2404)。その後、プロセッサの動作と関連
する複数のパケットがトレースユニットによりプロセッ
サから受信されたデータに基づいて生成される(ステッ
プ2406)。これらのパケットは共有バッファ112
に格納され(ステップ2408)、後続的にプロセッサの
動作と関連する情報を得るために読み取られて分析され
る(ステップ2410)。前述した方法の例示的な実施形
態において、トレースユニット102が4つの明確なト
レース(すなわち、命令、データ、タイミング及び雑多
な)の生成のために採択される。内部のモニターはトレ
ースユニット102に提供するためにプロセッサデータ
のキャプチャを制御する。トレースユニットはモニター
されるプロセッサから受信された入力(例えば、トレー
スユニットのレジスタ空間に書き込み)と、任意の外部
及びユーザー入力に基づいて、OFF、RUN及びTRIGGERED
動作状態の間で変化する。トレースユニットにより生成
されたパケットは、生成される情報とトレースの形態
と、ユーザー/設計者から受信された他の入力によって
フォーマットされて、共有バッファから誘導されるパケ
ットストリームの後続分析を手軽に行う。
As shown in FIG. 24a, the method generally includes first providing a trace unit 102 adapted to receive data from the processor being evaluated (step 2402). The host is also indirectly interfaced with the trace unit 102, for example via a debug port, and the host interface of the processor core is traced as described above.
(Step 2404). Thereafter, a plurality of packets associated with the operation of the processor are generated by the trace unit based on the data received from the processor (step 2406). These packets are shared buffer 112
(Step 2408) and subsequently read and analyzed to obtain information associated with the operation of the processor (step 2410). In the exemplary embodiment of the method described above, the trace unit 102 is adopted for the generation of four distinct traces (ie, instruction, data, timing and miscellaneous). An internal monitor controls the capture of processor data for provision to the trace unit 102. The trace unit is OFF, RUN and TRIGGERED based on the inputs received from the monitored processor (eg writing to the trace unit register space) and any external and user inputs.
It varies between operating states. The packets generated by the trace unit are formatted with the information generated, the form of the trace, and other inputs received from the user / designer to facilitate subsequent analysis of the packet stream derived from the shared buffer. .

【0330】内部の格納ディバイスが使われると(図2
4b)、トレースユニットはRUN状態に置かれ(ステップ
2412)、RTT制御レジスタに書き込み等のトリガーリ
ングイベントに基づいて一つのトレースが共有バッファ
112内でキャプチャされる(ステップ2414)。ステ
ップ2416で、ホストはホストとトレースユニット間
のデバッグインターフェースまたは他のインターフェー
スを介してトレースデータを読み取る(非実時間)。
When the internal storage device is used (see FIG.
4b), the trace unit is placed in the RUN state (step 2412) and a trace is captured in the shared buffer 112 based on a triggering event such as writing to the RTT control register (step 2414). In step 2416, the host reads the trace data via the debug interface or other interface between the host and the trace unit (non-real time).

【0331】選択的に、外部の格納モードが選ばれると
(図24c)、トレースユニットはRUN状態に置かれ(ステ
ップ2420)、トレースユニット102によりパケッ
トが生成されてパケットポート109に接続されたキャ
プチャディバイスに伝達される(ステップ2422)。そ
の後、トレースがキャプチャされて共有バッファに格納
され(ステップ2424、2426)、共有バッファはパ
ケットポート109を介してキャプチャディバイスに放
出する(ステップ2428)。
If an external storage mode is selected,
(FIG. 24c), the trace unit is placed in the RUN state (step 2420) and a packet is generated by the trace unit 102 and transmitted to the capture device connected to the packet port 109 (step 2422). Thereafter, the trace is captured and stored in the shared buffer (steps 2424, 2426) and the shared buffer emits to the capture device via the packet port 109 (step 2428).

【0332】本発明の特定態様が方法ステップの特定シ
ーケンスに関して記述されたが、これらの説明は本発明
の更に広い方法を例示するだけであり、特定アプリケー
ションが必要に応じて変更することができる。特定ステ
ップは特定状況下で要らないか、オプションになる場合
もある。付加的に特定ステップまたは機能が開示された
実施形態に添加するか、または2つ以上のステップの遂
行順序を置換することもできる。このような全ての変形
は本明細書で開示され、請求された本発明の範疇内に含
まれることと考えられる。
Although particular aspects of the present invention have been described with respect to particular sequences of method steps, these descriptions are merely illustrative of the broader methods of the present invention and may be modified by particular applications as necessary. Certain steps may not be necessary or may be optional under certain circumstances. Additionally, particular steps or functions may be added to the disclosed embodiments or the order of performance of two or more steps may be transposed. All such modifications are considered to be included herein within the scope of the invention disclosed and claimed herein.

【0333】詳細な説明が多様な実施形態に付加された
本発明の新しい特徴を図示、記述及び指摘したが、本発
明の範疇を外れることがなくても、当業者により示した
ディバイスまたは工程の形態及び詳細事項で多様な省
略、置換及び変更が行われることができるということを
分かることができるべきである。前述した説明は本発明
を行うのにおいて現在考慮される最適のモードである。
本説明は本発明を限定しようとすることではなく、かえ
って本発明の一般的な原理を説明するのに用いられるべ
きである。本発明の範疇は添付された特許請求の範囲を
参照して決定されなければならない。
While the detailed description has illustrated, described and pointed out novel features of the invention which have been added to various embodiments, it will be understood that devices or steps shown by those skilled in the art may be carried out without departing from the scope of the invention. It should be appreciated that various omissions, substitutions and changes in form and detail may be made. The above description is the optimal mode currently considered in practicing the present invention.
This description is not intended to limit the invention but rather should be used to illustrate the general principles of the invention. The scope of the invention should be determined with reference to the appended claims.

【0334】付録 I 詳細なパケットの説明 IA(命令アドレス) IAパケットは間接ジャンプのターゲットPCを含む。フル
ターゲットPC値は24ビットだであるが、但し特異な部
分のみ記録される。
Appendix I Detailed Packet Description IA (Instruction Address) The IA packet contains the target PC of the indirect jump. The full target PC value is 24 bits, but only the unique part is recorded.

【0335】STF(格納、固定データサイズ) STFパケットは格納命令に対する全ての情報を含む。こ
れは格納命令の実行時に生成される。現在のトレースオ
プションによって、パケットはデータアドレス、データ
値、セグメント命令のカウンタサイズ、及びセグメント
命令のカウンタを含むことができる。フルデータアドレ
スは32ビットであるが、例示的な実施例において特異
な部分だけ書き込まれる。データ値のサイズはSTB命令
に対して8ビットで、STW命令に対して16ビットで、
及びSTとSR命令に対して32ビットである。 STV(格納、可変データサイズ) STVパケットはデータ値フィールドが可変可能なサイズ
のものを除いてはSTFパケットと類似である。データ値
のサイズはパケット内に明示される。その場合にSTFパ
ケットが使われるはずであるので、データ値は決して8
ニブルではない。
STF (Store, Fixed Data Size) The STF packet contains all the information for the store instruction. It is generated when the store instruction is executed. Depending on the current trace options, the packet may include a data address, a data value, a segment instruction counter size, and a segment instruction counter. The full data address is 32 bits, but only the unique portion is written in the exemplary embodiment. The data value size is 8 bits for STB instructions and 16 bits for STW instructions.
And 32 bits for ST and SR instructions. STV (Store, Variable Data Size) STV packets are similar to STF packets except that the data value field is of variable size. The size of the data value is specified in the packet. In that case the STF packet should be used, so the data value is never 8
Not a nibble.

【0336】LDA(ロードアドレス) LD(ロードアドレス)パケットはロード命令の実行時に生
成される。現在のトレースオプションよって、パケット
はデータアドレス、セグメント命令カウントの大きさ、
及びセグメント命令カウントを含むことができる。フル
データアドレスは32ビットであるが、但し特異な部分
のみ書き込まれる。
LDA (Load Address) LD (load address) packets are generated when a load instruction is executed. Depending on the current trace options, the packet may be a data address, the size of the segment instruction count,
And a segment instruction count. The full data address is 32 bits, but only the unique portion is written.

【0337】LDD(ロードデータ) LDDパケットはユーザーが、書き込まれるデータ値を使
用することができる場合、ロードデータがレジスタに書
き込まれる時に生成される。ロード命令が指令から外れ
てリターンする場合もあるので、ロード命令に対する宛
先レジスタフィールドを必要とする。もし“使用固定デ
ータ値のサイズ”フィールドが1であれば、ロードのサ
イズは操作符号に暗示され、“データ値のサイズ”フィ
ールドは省略される。暗示データ値のサイズはLDB命令
に対して8ビット、LDW命令に対して16ビット、LD及
びLR命令に対して32ビットである。もし“使用デフォ
ルトデータ値のサイズ”が1であれば、“データ値のサ
イズ”フィールドは省略される。もし“固定データ値の
サイズ”フィールドが1であれば、“使用デフォルトデ
ータ値のサイズ”フィールド値は0である。“ストール
命令カウンタ”フィールドはストール命令カウンタの値
を含む。LDDパケットの生成後にストール命令カウンタ
はゼロにセットされる。このフィールドはタイミングト
レースのイネーブル時に存在する。これにより、トレー
スデコーダはレジスタファイルに書き込まれるロードデ
ータの周期の決定を可能にする。ストール命令カウンタ
に対する更に詳細なことは詳述する微細タイミングの説
明を参照すればよい。
LDD (Load Data) LDD packets are generated when load data is written to a register if the user can use the data values to be written. The load instruction may require a destination register field for the load instruction because it may return out of the instruction. If the "Used Fixed Data Value Size" field is 1, the size of the load is implied by the opcode and the "Data Value Size" field is omitted. The size of the implied data value is 8 bits for LDB instructions, 16 bits for LDW instructions, and 32 bits for LD and LR instructions. If the "size of used default data value" is 1, the "size of data value" field is omitted. If the "size of fixed data value" field is 1, the "size of used default data value" field value is 0. The "stall instruction counter" field contains the value of the stall instruction counter. The stall instruction counter is set to zero after the LDD packet is generated. This field is present when timing trace is enabled. This allows the trace decoder to determine the cycle of load data written to the register file. For more details on the stall instruction counter, refer to the detailed timing description.

【0338】PF(パス/フェイル状態) PFパケットは条件付き命令のパスまたはフェイルの際、
それの条件コードのテストを示す。パス/フェイル状態
のビットはパスに対して1でフェイルに対して0であ
る。 USER(RTTにおけるUSERレジスタに対するSR) USERパケットはRTTにおけるUSER補助レジスタに対するS
R命令の実行時に生成される。書き込み値はパケットに
保存される。
PF (Pass / Fail state) A PF packet is used when a conditional instruction passes or fails.
Here is a test of its condition code. The pass / fail bit is 1 for pass and 0 for fail. USER (SR for USER register in RTT) USER packet is S for USER auxiliary register in RTT
It is generated when the R instruction is executed. The written value is stored in the packet.

【0339】STALL STALLパケットは微細タイミングのイネーブル時コア(co
re)が命令を送り出すことができない毎周期に生成され
る。“命令カウンタ及び“ストール理由”フィールドの
存在はプログラム可能なレジスタにより独立的にイネー
ブルになる。“ストール命令カウンタ”フィールドはス
トール命令カウンタの値を含む。このカウンタは或るパ
ケットの生成時に0にセッティングされてトレースデコ
ーダに対するPC(例えば、IA、イネーブルなデータフィ
ルターリングを有するSTV/STV/LDA、PF、BCBIC、BCBICO
V、USER、SEGSTART、LPEND、またはINT)の決定を可能に
し、送り出された各命令に対して増分される。このフィ
ールドは正確な命令に対して決定されるストールの体験
を可能にする。もしストール命令カウンタがオーバーフ
ローすると、SICOVパケットが生成される。ストールパ
ケットの生成時、このストール命令カウンタはゼロにセ
ットされる。“ストール理由”フィールドのインコーデ
ィングは複数の他の接近を含む。これは命令キャッシュ
ミス、ロード使用(すなわち、データキャッシュミス)、
格納バッファフル、及びマルチ周期命令を含むストール
ソース(複数のソースである)を明示する。周期カウンタ
値は連続的なストール周期に対して増分される。もしス
トール理由が存在すれば、その理由は必ず増分のための
周期カウンタに対して同一でなければならない。周期カ
ウンタが増分またはオーバーフローを中止する時、STAL
Lパケットが生成される。もし、“周期カウンタ=1”の
フィールドが1であれば、“周期カウンタ値=1以下”
のフィールドが省略される。もし“命令カウンタ=1”
のフィールドが1であれば、“周期カウンタ値”のフィ
ールドは省略される。“カウンタ値=1以下”のフィー
ルドは1ないし16周期のストール値をエンコードす
る。
STALL STALL packet is the core (co
re) is not able to issue a command and is generated every period. The presence of the "instruction counter and" stall reason "fields is independently enabled by a programmable register. The" stall instruction counter "field contains the value of the stall instruction counter, which is zero when a packet is generated. PC to trace decoder set (eg IA, STV / STV / LDA with enabled data filtering, PF, BCBIC, BCBICO
V, USER, SEGSTART, LPEND, or INT) and is incremented for each instruction issued. This field allows the stall experience to be determined for the exact command. If the stall instruction counter overflows, a SICOV packet is generated. When generating a stall packet, this stall instruction counter is set to zero. The incoding of the "stall reason" field includes multiple other approaches. This can be instruction cache misses, load uses (ie data cache misses),
Specify stall source (s), including store buffer full, and multi-cycle instructions. The cycle counter value is incremented for successive stall cycles. If a stall reason exists, it must be the same for the period counter for increments. When the cycle counter stops incrementing or overflowing, STAL
L packets are generated. If the field of "cycle counter = 1" is 1, "cycle counter value = 1 or less"
Field is omitted. If "instruction counter = 1"
If the field of 1 is 1, the field of “cycle counter value” is omitted. The "counter value = 1 or less" field encodes a stall value of 1 to 16 cycles.

【0340】SICOV(オーバーフローされたストール命令
カウンタ) SICOVパケットはオーバーフローしたストール命令カウ
ンタを示す。カウンタの最大値が一定なので、このカウ
ンタの値はパケット内にない。 TSOV(オーバーフローされたタイムスタンプ) TSOVパケットはオーバーフローした16ビットタイムス
タンプを示す。これはタイムスタンピングがイネーブル
な時に生成される。TSOVパケットがパケットポートに伝
送されるに先立って、RTTはその以前に全てのゼロの少
なくとも4個のニブルがあることを保証する。このスキ
ームの実行で、外部キャプチャ装置はTSOVパケットの開
始を容易に見出せる。
SICOV (Overflow Stall Instruction Counter) The SICOV packet indicates the overflow stall instruction counter. The value of this counter is not in the packet because the maximum value of the counter is constant. TSOV (Overflowed Timestamp) The TSOV packet indicates a 16-bit time stamp that overflowed. It is generated when time stamping is enabled. Prior to the TSOV packet being transmitted to the packet port, the RTT ensures that it has at least 4 nibbles of all zeros before it. With the implementation of this scheme, the external capture device can easily find the start of the TSOV packet.

【0341】BCBIC(後方向条件付きブランチ命令カウン
タ) BCBICパケットはその条件コードのテストにおいて後方
向条件付きブランチ命令がフェイルしたことを示す。こ
のパケットはパスされたが、トレースに記録されていな
い後方向条件付きブランチ命令に対する多数のタイムの
カウントを含む。もし命令トレースが活性であれば、カ
ウンタは増分されるのみである。“カウンタは0”のフ
ィールドが1であれば、“カウンタ値”のフィールドは
省略される。 BCBICOV(オーバーフローされた後方向条件付きブランチ
命令カウンタ) BICICOVパケットはオーバーフローした後方向条件付き
ブランチ命令カウンタを示す。カウンタの最大値が一定
なので、このカウンタの値はパケット内にない。
BCBIC (Backward Conditional Branch Instruction Counter) The BCBIC packet indicates that the backward conditional branch instruction has failed in the test for that condition code. This packet contains a count of a number of times for backward conditional branch instructions that were passed but not recorded in the trace. The counter is only incremented if the instruction trace is active. If the "counter is 0" field is 1, the "counter value" field is omitted. BCBICOV (Overflowed backward conditional branch instruction counter) The BICICOV packet indicates the overflowed backward conditional branch instruction counter. The value of this counter is not in the packet because the maximum value of the counter is constant.

【0342】APE(アクションポイントイベント) APEパケットはアクションポイントイベントが発生した
ことを示す。もしタイムスタンピングがイネーブルであ
れば、タイムスタンプフィールドはパケット内に含まれ
る。 EXTSIG(変更された外部信号) EXTSIGパケットはRTTDPに対して選択された一つ以上の
外部信号が変更されたことを示す。設計者はモニターさ
れる信号を規定する。全ての信号値はパケットに保存さ
れる。タイムスタンピングがイネーブルであれば、タイ
ムスタンプフィールドはパケット内に含まれる。
APE (Action Point Event) The APE packet indicates that an action point event has occurred. If time stamping is enabled, the time stamp field is included in the packet. EXTSIG (Modified External Signal) The EXTSIG packet indicates that one or more external signals selected for RTTDP have been modified. The designer defines the signal to be monitored. All signal values are stored in the packet. If time stamping is enabled, the time stamp field is included in the packet.

【0343】SEGSTART(セグメントの開始) SEGSTARTパケットはセグメント内の第1パケットであ
る。これはフルアドレスとして現在のPC値を含む。SEGS
TARTパケットがパケットポートに伝送される前に、RTT
はその以前に全てのゼロの少なくとも4個のニブルがあ
ることを保証する。これが行なわれることにより、トレ
ースデコーダ及び外部キャプチャ装置はパケットストリ
ーム内のどこかでもSEGSTARTパケットの開始を容易に見
出せる。もしタイムスタンピングがイネーブルであれ
ば、そのタイムスタンプフィールドはパケット内に含ま
れる。新しいセグメント理由フィールドはSEGSTARTが何
故パケットに含まれるのかを明示する。一つ以上の理由
が同時に発生すれば、理由は数の上で小さな値に書き込
まれる。可能なケースが以下の表3に書き込まれる。
SEGSTART (Start of Segment) The SEGSTART packet is the first packet in the segment. It contains the current PC value as a full address. SEGS
Before the TART packet is transmitted to the packet port, RTT
Guarantees that there are at least 4 nibbles of all zeros before it. By doing this, the trace decoder and external capture device can easily find the start of the SEGSTART packet anywhere in the packet stream. If time stamping is enabled, the time stamp field is included in the packet. The new segment reason field specifies why SEGSTART is included in the packet. If more than one reason occurs at the same time, the reasons are written numerically to a small value. Possible cases are written in Table 3 below.

【0344】SEGEND(セグメントのエンド) SEGENDパケットはBCBICカウンタ値が0ではなく、セグ
メントエンドが)以下の理由の中のいずれかである時に
生成される:(i)到達したセグメント内での命令限界がユ
ーザーに明示され、(ii)任意の外部入力信号により要求
され、(iii)RTT内での制御レジスタの書き込みにより要
求され、または(iv)任意の状態がRUNまたはTRIGGEREDで
あり、命令トレースがイネーブルから使用不可にスイッ
チされる。カウンタはフラッシュされた後にゼロにセッ
トされる。 TRIG(トリガー状態への進入) TRIGパケットは外部格納モード及びRUNとTRIGGERED状態
間のRTT変化詩に生成される。TRIGパケットのパケット
ポートへの伝送に先立って、RTTはその以前に全てのゼ
ロの少なくとも4個のニブルがあることを保証する。こ
れが行なわれることにより、外部キャプチャー装置はTR
IGパケットの開始を容易に見出せる。
SEGEND (End of segment) A SEGEND packet is generated when the BCBIC counter value is not 0 and the segment end is for any of the following reasons: (i) instruction limit within the reached segment Is specified to the user, (ii) requested by any external input signal, (iii) requested by writing a control register in RTT, or (iv) any state is RUN or TRIGGERED and the instruction trace is Switched from enabled to disabled. The counter is set to zero after it is flushed. TRIG (Enter Trigger State) TRIG packet is generated in external storage mode and RTT change poem between RUN and TRIGGERED states. Prior to the transmission of a TRIG packet to the packet port, the RTT guarantees that it has at least 4 nibbles of all zeros before it. By doing this, the external capture device will
You can easily find the start of an IG packet.

【0345】LPSTART(ループ開始) LPSTARTパケットはフル24ビット値に格納されたLP_S
TARTレジスタ値を含む。これはゼロオーバーヘッドルー
プがトリガーされる時及びLP_START値が現在のセグメ
ントに先立ってセットアップする時に生成される。 LPEND(ループエンド) LPENDパケットはフル24ビット値に格納されたLP_END
レジスタ値を含む。これはゼロオーバーヘッドループが
トリガーされる時及びLP_END値が現在のセグメントに
先立ってセットアップする時に生成される。
LPSTART (Loop Start) LPSTART packet contains LP_S stored in full 24-bit value.
Contains the TART register value. It is generated when the zero overhead loop is triggered and when the LP_START value sets up prior to the current segment. LPEND (loop end) LPEND packet is a full 24-bit value LP_END
Contains the register value. It is generated when the zero overhead loop is triggered and when the LP_END value sets up prior to the current segment.

【0346】INT(インタラプト取り) INTパケットはインタラプトが取られる時生成される。
これはインタラプトの時間におけるPC及びインタラプト
ベクターテーブルでの第1命令の新しいPCを含む。フル
PC値はインコードされる。タイムスタンピングがイネー
ブルであれば、タイプスタンプフィールドはパケット内
に含まれる。
INT (Interrupt Take) An INT packet is generated when an interrupt is taken.
This includes the PC at the time of the interrupt and the new PC of the first instruction in the interrupt vector table. full
The PC value is incoded. If time stamping is enabled, the timestamp field is included in the packet.

【0347】付録 II 詳細なパケットの説明(第2実施例) STALL STALLパケットはコアの使用が可能であるが、命令タイ
ミングトレースがイネーブルになる時命令を引き戻すこ
とができない毎周期に生成される。“カウンタ値”フィ
ールドはストール値を1から16周期(パケット内のゼ
ロの値は実際に16周期である)までインコードする。
周期カウンタ値は連続的なストール周期に対して増分さ
れる。周期カウンタが増分またはオーバーフローを中止
する時、STALLパケットが生成される。“命令カウン
タ”及び“ストール理由”フィールドの存在で、RTT_P
KT_CTLレジスタにより独立的にイネーブルになる。命
令カウンタが存在しなければ、“命令カウンタ=1”フ
ィールドは0である。“周期カウンタ=1”フィールド
が1であれば、“周期カウンタ値”フィールドは省略さ
れる。“命令カウンタ=1”フィールドが1であれば、
“命令カウンタ値”フィールドは省略される。4ビット
の“ストール理由”フィールドは以下のように規定され
る。
Appendix II Detailed packet description (second embodiment) STALL STALL packets are generated every cycle that the core is enabled to use, but cannot pull back instructions when instruction timing trace is enabled. The "Counter Value" field incodes the stall value from 1 to 16 cycles (the value of zero in the packet is actually 16 cycles).
The cycle counter value is incremented for successive stall cycles. A STALL packet is generated when the period counter stops incrementing or overflowing. The presence of the "instruction counter" and "stall reason" fields indicates that RTT_P
Independently enabled by KT_CTL register. If there is no instruction counter, the "instruction counter = 1" field is 0. If the “cycle counter = 1” field is 1, the “cycle counter value” field is omitted. If the “instruction counter = 1” field is 1,
The "instruction counter value" field is omitted. The 4-bit "Stall Reason" field is defined as follows.

【0348】DATA(データ変換) DATAパケットは補助レジスタロード(LR命令)に対する全
ての情報、全ての形態の格納(SR、ST、STW、STB命令)、
及びメモリロード(LD、LDW、LDB命令)に対する正しいデ
ータアドレスを含む。これはデータ変換命令の実行時に
生成される。現在のトレースオプションによって、パケ
ットはデータアドレス、データ値、セグメント命令のオ
フセットサイズを含む場合がある。フルデータアドレス
は32ビットであるが、但し特異な部分のみ書き込まれ
る。データ値は可変サイズである。データ値のサイズは
パケットに明記される。データ値の存在フィールドが1
であれば、データ値サイズ、使用デフォルトデータアド
レスサイズ、及びデータ値フィールドは存在する。格納
及び補助ロード命令に対して、データ値のキャプチャが
静的にイネーブルであればデータ値の存在は1である。
メモリロード命令に対して、DLDDパケットがデータ値を
保持しているので、データ値の存在は0である。もしデ
ータアドレスキャプチャーが静的にイネーブルであれ
ば、データアドレスフィールドが存在し、データアドレ
スサイズフィールドが存在し、使用デフォルトデータア
ドレスのサイズが0であればデータ値は存在しない。
DATA (Data conversion) DATA packet contains all information for auxiliary register load (LR instruction), all forms of storage (SR, ST, STW, STB instructions),
And the correct data address for memory loads (LD, LDW, LDB instructions). It is generated when the data conversion instruction is executed. Depending on the current trace options, the packet may include a data address, a data value, and a segment instruction offset size. The full data address is 32 bits, but only the unique portion is written. Data values are of variable size. The size of the data value is specified in the packet. Data value present field is 1
If so, the Data Value Size, Use Default Data Address Size, and Data Value fields are present. For store and auxiliary load instructions, data value present is 1 if data value capture is statically enabled.
Since the DLDD packet holds the data value for the memory load instruction, the existence of the data value is 0. If the data address capture is statically enabled, the data address field is present, the data address size field is present, and if the size of the used default data address is 0, there is no data value.

【0349】DLDD(遅延された-ロード データ) DLDDパケットは遅延ロードデータがレジスタファイルに
再び書き込まれる時にユーザーが書き込まれるロードデ
ータ値を利用できれば生成される。これはメモリロード
命令(LD、LDW、LDB)に対して生成される。遅延ロード命
令が指令から外れてリターンする場合もあるので、この
遅延ロード命令に対する宛先レジスタフィールドを必要
とする。補助レジスタ(LR)からのロードはそれらのロー
ドデータが遅れないのでこのパケットを使用しない。
“ストール周期カウンタ値”と“ストール命令カウンタ
値”フィールドによりトレースレコーダはレジスタファ
イルに書き込まれるロードデータの周期の決定を可能に
する。これらのフィールドは命令タイミングトレースが
静的である時に存在する。DLDDパケットの生成後にSTAL
Lパケットがストール理由フィールドを含まないとカウ
ンタはゼロにセットされる。
DLDD (Deferred-Load Data) A DLDD packet is generated if the user has available load data values to write when delayed load data is written back to the register file. It is generated for memory load instructions (LD, LDW, LDB). The deferred load instruction may deviate from the instruction and return, so it requires the destination register field for the deferred load instruction. Loads from the auxiliary register (LR) do not use this packet because their load data is not delayed.
The "stall cycle counter value" and "stall instruction counter value" fields allow the trace recorder to determine the cycle of the load data written to the register file. These fields are present when the instruction timing trace is static. STAL after DLDD packet generation
The counter is set to zero if the L packet does not contain a stall reason field.

【0350】PF(パス/フェイル状態) PFパケットはその条件コードテストにおいて条件付き命
令のパスまたはフェイルを示す。このパス/フェイル状
態のビットはパスに対して1でフェイルに対しては0で
ある。 IA(命令アドレス) IAパケットは間接ジャンプのターゲットPCまたはインタ
ラプトの発生後に第1命令が実行されれば条件付き直接
ジャンプのターゲットPCを含む。フルターゲットPC値は
24ビットであるが、但し特異な部分のみ書き込まれ
る。
PF (Pass / Fail State) The PF packet indicates the pass or fail of the conditional instruction in its condition code test. This pass / fail bit is 1 for pass and 0 for fail. IA (Instruction Address) The IA packet includes a target PC for an indirect jump or a target PC for a conditional direct jump if the first instruction is executed after the interrupt occurs. The full target PC value is 24 bits, but only the unique part is written.

【0351】BCBPC(後方向条件付きブランチパスカウン
タ) BCBPCパケットはその条件コードテストにおいて、後方
向条件付きブランチ命令のフェイルを示す。このパケッ
トはパスになるが、トレースに記録されない後方向条件
付きブランチ命令に対する多数の時間のカウントを含
む。このカウンタは命令トレースの活性時にのみ増分さ
れる。“パスカウント=0”フィールドが1であれば、
“パスカウント値”フィールドは省略される。 LPPC(ゼロオーバーヘッドループパスカウンタ) LPPCパケットはゼロオーバーヘッドループトリガーのフ
ェイル(ループの終了)を示す。このパケットはパスされ
るが、トレースに記録されないトリガーに対する多数の
時間のカウントを含む。このカウンタは命令トレースの
活性時にのみ増分される。“パスカウント=0”フィー
ルドが1であれば、“パスカウント値”フィールドは省
略される。
BCBPC (Branch Conditional Branch Path Counter) A BCBPC packet indicates a failure of a backward conditional branch instruction in its condition code test. This packet becomes a pass, but contains a number of time counts for backward conditional branch instructions that are not recorded in the trace. This counter is incremented only when the instruction trace is active. If the "pass count = 0" field is 1, then
The "pass count value" field is omitted. LPPC (Zero Overhead Loop Pass Counter) The LPPC packet indicates a zero overhead loop trigger fail (end of loop). This packet contains a number of time counts for triggers that are passed but not recorded in the trace. This counter is incremented only when the instruction trace is active. If the "pass count = 0" field is 1, the "pass count value" field is omitted.

【0352】SICOV(オーバーフローされたストール命令
カウンタ) SICOVパケットはストール命令カウンタのオーバーフロ
ーを示す。カウンタの最大値が一定なので、このカウン
タの値はパケットにない。 BCBPCOV(オーバーフローされた後方向条件付きブランチ
パスカウンタ) BCBPCOVパケットは後方向条件付きブランチパスカウン
タのオーバーフローを示す。カウンタの最大値が一定な
ので、このカウンタの値はパケットにない。
SICOV (Stall Instruction Counter Overflowed) The SICOV packet indicates a stall instruction counter overflow. The maximum value of the counter is constant, so the value of this counter is not in the packet. BCBPCOV (Overflowed backward conditional branch path counter) A BCBPCOV packet indicates a backward conditional branch path counter overflow. The maximum value of the counter is constant, so the value of this counter is not in the packet.

【0353】LPPCOV(オーバーフローされたゼロオーバ
ーヘッドループパスカウンタ) LPPCOVパケットはゼロオーバーヘッドループパスカウン
タのオーバーフローを示す。カウンタの最大値が一定な
ので、このカウンタの値はパケットにない。 APE(アクションポイント イベント) APEパケットはアクションポイントイベントが発生した
ことを示す。アクションポイントイベントの発生時にタ
イムスタンピングがイネーブルであれば、タイムスタン
プEnは‘1’にセットされ、タイムスタンプフィールド
はパケット内に含まれる。
LPPCOV (Overflowed Zero Overhead Loop Path Counter) The LPPCOV packet indicates a zero overhead loop path counter overflow. The maximum value of the counter is constant, so the value of this counter is not in the packet. APE (Action Point Event) The APE packet indicates that an action point event has occurred. If time stamping is enabled when the action point event occurs, the time stamp En is set to '1' and the time stamp field is included in the packet.

【0354】EXTSIG(変更された外部信号) EXTSIGパケットは選ばれた一つ以上の外部信号の値がRT
Tに対して更新されたことを示す。設計者はモニターさ
れる信号を規定する。全ての信号値はパケットに格納さ
れる。外部信号の値が更新される時にタイムスタンピン
グがイネーブルであれば、タイムスタンプEnは‘1’に
セットされ、タイムスタンプはパケット内に含まれる。 INT(インタラプト取り) INTパケットはインタラプトを取る時に生成される。こ
れはインタラプトされた命令(実行されない)のセグメン
ト命令オフセット及びインタラプトベクターテーブルの
第1命令のフルアドレスを含む。インタラプトが静的に
イネーブルで命令トレイシングが使用不可であれば、イ
ンタラプト命令の決定のためにデコーダによりセグメン
ト命令のオフセット値を使用することができなくてもIN
Tパケットは相変らず生成される。タイムスタンピング
がイネーブルであれば、タイムスタンプフィールドはパ
ケット内に含まれる。BCBPC及びLPPCカウンタ値はINTパ
ケットに記録された後にゼロにセットされる。
EXTSIG (changed external signal) EXTSIG packet has the value of one or more selected external signals as RT.
Indicates that T has been updated. The designer defines the signal to be monitored. All signal values are stored in packets. If time stamping is enabled when the value of the external signal is updated, the time stamp En is set to '1' and the time stamp is included in the packet. INT (take interrupt) INT packet is generated when taking an interrupt. It contains the segment instruction offset of the interrupted instruction (not executed) and the full address of the first instruction in the interrupt vector table. If interrupts are statically enabled and instruction tracing is disabled, the segment instruction offset value cannot be used by the decoder to determine the interrupt instruction IN
T-packets are still generated. If time stamping is enabled, the time stamp field is included in the packet. The BCBPC and LPPC counter values are set to zero after being recorded in the INT packet.

【0355】LPTRIG(ループトリガー) LPTRIGパケットはフル24ビット値に保存されたLP_ST
ART及びLP_ENDレジスタを含む。このパケットはゼロオ
ーバーヘッドループがリガーされて取られ、現在のセグ
メントの以前に実行された命令によってLP_START及びL
P_ENDレジスタが書き込まれる時に生成される。 TSOV(オーバーフローされたタイムスタンプ) TSOVパケットは15ビットタイムスタンプのオーバーフ
ローを示す。これはタイムスタンピングがイネーブルな
時に生成される。もし他のパケットがTSOVパケットの生
成に先立って生成された“タイムスタンプオーバーフロ
ー”ビットを含めば、TSOVパケットはそういうオーバー
フローに対して生成されない。
LPTRIG (loop trigger) LPTRIG packet is stored in full 24-bit value LP_ST
Includes ART and LP_END registers. This packet is taken with a zero overhead loop ligated and LP_START and L by the previously executed instruction of the current segment.
Generated when the P_END register is written. TSOV (Overflowed Timestamp) A TSOV packet indicates a 15-bit time stamp overflow. It is generated when time stamping is enabled. If other packets include the "timestamp overflow" bit generated prior to the generation of the TSOV packet, then the TSOV packet will not be generated for such overflow.

【0356】SEGSTART(セグメントの開始) SEGSTARTパケットはセグメント内の第1パケットであ
る。これはフルアドレスとして現在のPC値を含む。パケ
ットポートへのSEGSTARTパケットの伝送に先立って、RT
Tはその以前に全てのゼロの少なくとも4個のニブルが
あることを保証する。これが行なわれることにより、ト
レースデコーダと外部キャプチャ装置はSEGSTARTパケッ
トの開始を容易に見出せる。BCBPC及びLPPCカウンタ値
が全て0であれば、それらは省略される。タイムスタン
ピングがイネーブルであれば、タイムスタンプフィール
ドはパケット内に含まれる。SEGSTARTパケットにおいて
パケット制御レジスタ値のコンテンツはタイムスタンピ
ングに対するイネーブルの可否を決定する。
SEGSTART (Start of Segment) The SEGSTART packet is the first packet in the segment. It contains the current PC value as a full address. Prior to the transmission of the SEGSTART packet to the packet port, RT
T guarantees that there are at least 4 nibbles of all zeros before it. By doing this, the trace decoder and external capture device can easily find the start of the SEGSTART packet. If the BCBPC and LPPC counter values are all 0, they are omitted. If time stamping is enabled, the time stamp field is included in the packet. The content of the packet control register value in the SEGSTART packet determines whether time stamping is enabled.

【0357】新しいセグメント理由フィールドはSEGSTA
RTパケットが何故生成されているかを明示する。もし一
つ以上の理由が同時に発生されれば、理由は数の上で小
さい値に書き込まれる。可能なケースは次の通りであ
る。
The new segment reason field is SEGSTA
Specify why the RT packet is being generated. If more than one reason occurs at the same time, the reasons are written numerically to a small value. The possible cases are:

【0358】SRSPEC(特定のレジスタに対するSR) SRSPECパケットはプログラムが特定のレジスタに対して
SR命令を実行する時に生成される。特定のレジスタはRT
T_USER、RTT_PKT_CTLの時、LPSTART、及びLPENDであ
る。特定のレジスタ識別子及び書き込まれた値はパケッ
トに格納される。タイムスタンプ及びタイムスタンプオ
ーバーフローフィールドはこのタイムスタンプの使用が
可能であり、SRがRTT_PKT_CTLレジスタに関すること
である時にのみ存在する。
SRSPEC (SR for a specific register) SRSPEC packet is a program for a specific register.
It is generated when the SR instruction is executed. Specific register is RT
When T_USER and RTT_PKT_CTL, LPSTART and LPEND. The specific register identifier and the written value are stored in the packet. The Timestamp and Timestamp Overflow fields allow the use of this time stamp and are only present when SR is for the RTT_PKT_CTL register.

【0359】特定のレジスタ識別子はコードし、各レジ
スタに対するレジスタ値フィールドのサイズは次の通り
である。
The specific register identifier codes and the size of the register value field for each register is as follows:

【0360】付録 III - 例示的なレジスタ命令 Appendix III-Exemplary Register Instructions

【0361】“ADDr”列はレジスタの補助アドレスであ
る。“Resister Name”列はこの文書で使用したレジス
タの名前である。“Core WR”、“ホストWR”、及び“R
TT WR”列は各レジスタを書きこくことができるソース
(source)である可能性があるリストである。“EN WR”
列はRTTがイネーブルな間にレジスタの書き込みが可能
であるかを明示する。“RD”列はレジスタの読み取りが
可能であるかを明示する。読み取り可能なレジスタは3
個の全ての可能なソースにより読み取られることができ
る。“Dual”列はレジスタのデュアルアクセスが可能で
あるかを明示する。“Bits”列は各レジスタのサイズを
明示する。未使用及び保存レジスタビットは0と読み取
られ、必ず0と書き込まれる。書き込み専用レジスタに
対する読み取りはコア識別レジスタをリターンさせる。
読み取り専用レジスタに対する書き込みは無視される。
レジスタによって、3個の可能なソース:コア、ホスト
及びRTTまで書き込まれる。コアはSR命令の実行によっ
てレジスタを書き込む。ホストはホストインターフェー
スの使用によりレジスタを書き込む。RTTはこのRTTの初
期状態がレジスタの更新を命令する時にレジスタを書き
込む。RTT_HOST_CTLレジスタのNAWビットが1であれ
ば、RTTレジスタに対して書き込まれるいかなるコアで
も無視される。ホストのみNAWビットの値を制御し、こ
れはコアがRTTレジスタを書き込むとができないことを
保証するのに使用する。NAWビットに対して更に詳述す
るために、以下のRTT_HOST_CTLレジスタの説明を参照
する。NAWビットが0であれば、RTTがRTT_LOCKレジス
タを特定の値に書き込むコアによって、先にアンロクさ
れたことを除いてはRTTレジスタに書き込まれるいかな
るコアでも無視される。これはRTT_LOCKレジスタ自体
に対しては適用されない。ロックメカニズムに対して更
に詳述するために、以下のRTT_LOCKレジスタの説明を
参照する。デュアルアクセスレジスタはコアがイネーブ
ルな間にホストによってアクセスされることができる。
ホスト及びコアによりアクセス可能なデュアルアクセス
レジスタに対して、コア及びホストは同時に同一なRTT
レジスタを書き込むために試みることができる。このよ
うな状況で、ホストの書き込みはウィンであり、コアの
書き込みはローストである。ホスト及びコアにより書き
込みが可能なデュアルアクセスレジスタに対するコアの
書き込みの成功を保証するために、コアは必ずLR命令で
レジスタ値を読み取らなければならなく、これの成功時
までSR/LRを繰り返す。注目する点はRTT_CMDレジスタ
の読み取りは不可である反面、コマンドの成功の可否を
決定するためのRTT_STAT及びRTT_FIFO_STATレジスタ
の読み取りは可能だというものである。もしホストが
(たとえば、レジスタを読み取って、新しい値を計算
し、レジスタを書き込む)コアによって書き込むことが
できるRTTレジスタに対する複数のアクセスを“自動
に”実行することを必要とすれば、NAWビットはコアが
自動動作中にRTTレジスタの書き込みを防止できるいず
れかにセットされなければならない。
The column "ADDr" is the auxiliary address of the register. The "Resister Name" column is the name of the register used in this document. "Core WR", "Host WR", and "R"
"TT WR" column is a source that can write each register
A list that may be (source). "EN WR"
The column specifies whether the register can be written while RTT is enabled. The "RD" column specifies whether the register can be read. 3 readable registers
Can be read by all possible sources. The “Dual” column clearly indicates whether dual access to the register is possible. The “Bits” column specifies the size of each register. Unused and saved register bits are read as 0 and always written as 0. A read to a write-only register returns the core identification register.
Writes to read-only registers are ignored.
Registers write up to three possible sources: core, host and RTT. The core writes the register by executing the SR instruction. The host writes the register by using the host interface. The RTT writes the register when the initial state of this RTT commands a register update. If the NAW bit in the RTT_HOST_CTL register is 1, then any core written to the RTT register will be ignored. Only the host controls the value of the NAW bit, which is used to ensure that the core cannot write the RTT register. See the RTT_HOST_CTL register description below for further details on the NAW bit. If the NAW bit is 0, RTT is ignored by any core that writes the RTT_LOCK register to the specified value, and any core that writes to the RTT register except previously unlocked. This does not apply to the RTT_LOCK register itself. To further elaborate on the locking mechanism, refer to the RTT_LOCK register description below. The dual access register can be accessed by the host while the core is enabled.
The core and the host simultaneously use the same RTT for the dual access register that can be accessed by the host and the core
You can try to write a register. In this situation, the host writes are win and the core writes are roast. In order to guarantee the success of the writing of the core to the dual access register writable by the host and the core, the core must read the register value by the LR instruction and repeat SR / LR until the success. It should be noted that the RTT_CMD register cannot be read, but the RTT_STAT and RTT_FIFO_STAT registers can be read to determine the success or failure of the command. If the host is
If you need to "automatically" make multiple accesses to an RTT register that can be written by the core (for example, read the register, calculate the new value, and write the register), the NAW bit is automatically Must be set to one that prevents writing to the RTT register during operation.

【0362】RTT_ビルド レジスタ RTT_ビルドレジスタはRTT組み付け構成を明記する。こ
れはRTTの組み付け構成を決定するために、ホスト及び/
またはARCで実行されるプログラムにより使われる。 VERSIONフィールドはRTTの実行が存在することを明記す
る。値0×1はRTTの現在の実行である。0×0のVERSI
ONはRTTが存在しないことを明記する。他の値は保存さ
れる。NUM_MONフィールドは存在するモニターの数を明
記する。これのインコーディングは次の表によって与え
られる(NUM_MON=モニターの数/2):
RTT_Build Register The RTT_Build Register specifies the RTT assembly configuration. This is used to determine the host and / or
Or used by programs executed by ARC. The VERSION field specifies that there is an RTT run. The value 0x1 is the current run of RTT. 0x0 VERSI
ON specifies that there is no RTT. Other values are saved. The NUM_MON field specifies the number of monitors that are present. The incoding of this is given by the following table (NUM_MON = number of monitors / 2):

【0363】DTフィールドはデータトレースが設計に存
在すれば1で、それとも0である。TTフィールドはタイ
ミングトレースが設計に存在すれば1で、それとも0で
ある。APEフィールドはアクションポイントイベントがA
PEパケットに書き込まれることができれば1で、それと
も0である。USER_NB_M1フィールドは1以下のRTT_
USERレジスタにおけるニブルの数である。現在5(6ニ
ブル)に固定されているが、以後にRTTバージョンにおけ
る変化は可能である。FIFO_ENTRIESフィールドは現在
のFIFOエントリーの数を明記する。各エントリーは64
ビット幅である。FIFO_ENTRIESは0(FIFO存在しない)
から2048までの範囲を持つ。EXTSIG_NB_M1フィ
ールドはEXTSIGパケットに記録された1以下の外部信号
のニブル数を明記する。この値は何らの外部信号の記録
がない時に0(1ニブル)にデフォルトする。PORT_WIDT
Hフィールドはパケットポートの幅を明記する。これの
インコーディングは次の表によって与えられる:
The DT field is either 1 if a data trace is present in the design or 0. The TT field is 1 if a timing trace is present in the design or 0. Action point event is A in the APE field
1 if it can be written in a PE packet, or 0. USER_NB_M1 field is 1 or less RTT_
The number of nibbles in the USER register. Currently fixed at 5 (6 nibbles), but later RTT version changes are possible. The FIFO_ENTRIES field specifies the current number of FIFO entries. Each entry is 64
It is a bit width. FIFO_ENTRIES is 0 (FIFO does not exist)
It has a range from 1 to 2048. The EXTSIG_NB_M1 field specifies the number of nibbles of external signals of 1 or less recorded in the EXTSIG packet. This value defaults to 0 (1 nibble) when there is no recording of any external signal. PORT_WIDT
The H field specifies the width of the packet port. The incoding for this is given by the following table:

【0364】RTT_STAT レジスタ RTT_STATレジスタはRTTの状態を含む。 ENビットはイネーブルになるRTTの一つである。これは
リセット時にゼロにセットされる幾つの周期を取ること
ができる。TRビットはトリガーされるRTTの一つであ
る。これはリセット時にゼロにセットされる。IRQビッ
トはそのインタラプト信号がARCにアサートされるRTTの
一つである。これはリセット時にゼロにセットされる。
0Vビットはオーバーフロー状態にあるRTTバッファの一
つである。これはリセット時にゼロにセットされる。こ
のフィールドはテストの目的のために提供される。TSO
(タイムスタンプオーバーラン)、APO(アクションポイン
トオーバーラン)、及びESO(外部信号オーバーラン)ビッ
トはオーバーランのそれらの相応するメカニズムの一つ
にセットされる。以前のイベントがパケットに書き込ま
れるに先立ってイベントが再発生する時オーバーランが
検知になる。PMTビットはRTTバッファ内のパケットパイ
プラインが空いているか、または0の一つである。TMT
ビットはパケットポートが空いているか、または0の一
つである。これはリセット時に1にセットされる。この
フィールドはテストの目的のために提供される。ULビッ
トはアンロックされるRTTのひとつである。このRTTはRT
T_LOCKレジスタが特定の値に書き込まれる時にアンロ
ックされ、次のST命令の後には再びロックされる。BCBP
Cは後方向条件付きブランチパスカウンタの値を含む。
これはリセット時にゼロにセットされる。このフィール
ドはテストの目的のために提供されている。LPPCはゼロ
オーバーヘッドループパスカウンタの値を含む。これは
リセット時にゼロにセットされる。このフィールドはテ
ストの目的のために提供される。
RTT_STAT Register The RTT_STAT register contains the status of RTT. The EN bit is one of the enabled RTTs. It can take several cycles which are set to zero on reset. The TR bit is one of the triggered RTTs. It is set to zero on reset. The IRQ bit is one of the RTTs whose interrupt signal is asserted on ARC. It is set to zero on reset.
The 0V bit is one of the RTT buffers in overflow. It is set to zero on reset. This field is provided for testing purposes. TSO
The (Time Stamp Overrun), APO (Action Point Overrun), and ESO (External Signal Overrun) bits are set to one of their corresponding mechanisms for overrun. Overrun is detected when an event reoccurs prior to the previous event being written to the packet. The PMT bit is empty or one of 0 in the packet pipeline in the RTT buffer. TMT
The bit is either free on the packet port or is one of zero. It is set to 1 on reset. This field is provided for testing purposes. UL bit is one of the unlocked RTTs. This RTT is RT
It is unlocked when the T_LOCK register is written to a specific value and locked again after the next ST instruction. BCBP
C contains the value of the backward conditional branch path counter.
It is set to zero on reset. This field is provided for testing purposes. LPPC contains the value of the zero overhead loop pass counter. It is set to zero on reset. This field is provided for testing purposes.

【0365】RTT_CMD レジスタ RTT_CMDレジスタはRTTに対する次のコマンドの一つを
送信するために使われる。 RTT_CMDレジスタのフォーマットは次の通りである: RTT_CMDレジスタがコア上で実行されるSR命令によって
書き込まれれば、コマンドはSR命令後の第1命令やイン
タラプトに影響を与える。CMD_DISコマンドはRTTを使
用不可とする。CMD_EN_コマンドはRTTをイネーブルと
する。CMD_TRIGコマンドはRTTをトリガーする。CMD_E
N_TRIGコマンドはRTTをイネーブル及びトリガーする。
CMD_NSコマンドは次の非遅延スロット命令またはイ
ンタラプト後に新しいセグメントの開始である。CMD_C
Bコマンドはバッファのコンテンツを消去する。これは
テストの目的のために提供されている。CMD_SET_IR
QコマンドはARCに送信されるインタラプト要求信号を
セットする。これはテストの目的のために提供される。
CMD_CLR_IRQコマンドはコアに送信されたインタラ
プト要求信号を消去する。これはノーマル動作で使われ
る。
RTT_CMD Register The RTT_CMD register is used to send one of the next commands to the RTT. The format of the RTT_CMD register is as follows: If the RTT_CMD register is written by the SR instruction executed on the core, the command affects the first instruction after the SR instruction and the interrupt. The CMD_DIS command disables RTT. The CMD_EN_ command enables RTT. The CMD_TRIG command triggers RTT. CMD_E
The N_TRIG command enables and triggers RTT.
The CMD_NS command is the start of a new segment after the next non-delayed slot instruction or interrupt. CMD_C
The B command erases the contents of the buffer. It is provided for testing purposes. CMD_SET_IR
The Q command sets the interrupt request signal sent to the ARC. It is provided for testing purposes.
The CMD_CLR_IRQ command clears the interrupt request signal sent to the core. This is used in normal operation.

【0366】RTT_CK_CTLレジスタ RTT_CK_CTLはRTTクロックを制御する。 CK_ENビットは1にセットされてRTTをイネーブルと
し、ゼロにセットされてこれを使用不可とする。これは
リセット時にゼロにセットされる。RTTクロックが使用
不可であれば、RTT_CK_CTL、RTT_LOCK及びRTT_HOST
_CTLレジスタを除いて全ての動作は停止する。RTTクロ
ックはRTTが要求されない時、節電のために使用不可と
することもできる。
RTT_CK_CTL Register RTT_CK_CTL controls the RTT clock. The CK_EN bit is set to 1 to enable RTT and set to zero to disable it. It is set to zero on reset. RTT_CK_CTL, RTT_LOCK and RTT_HOST if the RTT clock is unavailable
All operations stop except for the _CTL register. The RTT clock can also be disabled to save power when RTT is not required.

【0367】RTT_ LOCKレジスタ コアが或る他のRTTレジスタの書き込みを許すに先立っ
て、これは必ずRTT_LOCKレジスタに対する以下に示す
値への書き込みによりRTTを先ずアンロックしなければ
ならない。これはRTTレジスタを誤って書き込むように
なる過誤コードの可能性を大きく減少させるために行わ
れる。RTT_ロックレジスタの書き込みの後に、コアは
他の一つのRTTレジスタの書き込みが許容される。RTT_
LOCKレジスタの書き込みの後に、RTTは次の命令がある
レジスタで実行されるまでアンロック状態にある。書き
込まれるRTT_LOCKに対するSRとRTTに対するSR間にイン
タラプトが生じてインタラプトハンドラーがSR命令を実
行させれば、インタラプトハンドラーはある命令を実行
するに先立ってRTT_STAT.ULビットを読み取らなければ
ならなく、最終SRの実行後にはRTT_LOCKレジスタに対
してSRを実行させなければならない。RTT_HOST_CTLの
時、レジスタのNAWビットが1にセットされると、コア
は何らのRTTレジスタの書き込みも許さない。
RTT_LOCK Register Prior to allowing the core to write to some other RTT register, it must always unlock the RTT first by writing the following values to the RTT_LOCK register. This is done to greatly reduce the likelihood of error code that would cause the RTT register to be written incorrectly. After writing the RTT_Lock register, the core is allowed to write one other RTT register. RTT_
After writing to the LOCK register, the RTT remains unlocked until the next instruction is executed in the register where it resides. If an interrupt occurs between the SR for the RTT_LOCK to be written and the SR for the RTT, causing the interrupt handler to execute the SR instruction, the interrupt handler must read the RTT_STAT.UL bit before executing an instruction, and the final SR After executing the above, SR must be executed for the RTT_LOCK register. When RTT_HOST_CTL, if the NAW bit of the register is set to 1, the core will not allow any RTT register writes.

【0368】RTT_HOST_CTL レジスタ RTT_HOST_CTLレジスタはホストに対してだけイネーブ
ルなオプションを含む。 NAWビットはRTTレジスタに対するコア書き込みのアクセ
スを制御する。このビットが1であれば、RTTレジスタ
に対する全てのSR命令は無視される。このビットが0で
あれば、SR命令はRTTレジスタを書き込む。ブロッキン
グコアはコアで実行されるプログラムがRTT動作を変更
出来ないように保証するためにRTTレジスタに書き込
む。NAWが0であれば、コアはコアで実行されるプログ
ラムが誤ってRTT動作を変更させる可能性を最小化する
ために使用する。NAWビットはリセット時にゼロにセッ
トされる。
RTT_HOST_CTL Register The RTT_HOST_CTL register contains options that are enabled only for the host. The NAW bit controls core write access to the RTT register. If this bit is 1, all SR instructions to the RTT register will be ignored. If this bit is 0, the SR instruction writes the RTT register. The blocking core writes to the RTT register to ensure that programs running in the core cannot change the RTT behavior. If NAW is 0, the core is used to minimize the chance that a program running in the core will accidentally change RTT behavior. The NAW bit is set to zero on reset.

【0369】RTT_PKT_CTL レジスタ RTT_PKT_CTL(パケットコントロール)レジスタはデコ
ーダのためにパケットストリームに記録されなければな
らない実行時間RTTオプションを制御する。 各ビットは1にセットされてイネーブルとなり、ゼロに
セットされて使用不可となる。ビットの意味は次の表に
よって与えられる。 ダイナミックエネイブルな全てのビットはリセット時に
ゼロにセットされる。命令タイミングトレースがダイナ
ミックエネイブルであれば、命令トレースもダイナミッ
クエネイブルにならなければならない。UPC(Use Pass C
ounts)ビットは後方向条件付きブランチパスカウンタ、
ゼロオーバーヘッドループパスカウンタ及び関連パケッ
ト(BCBPC、LPPC、BCBPCOV、LPPCOV)のイネーブル/使用
不可になる。このビットはRTTの使用不可の時にのみ変
更できる。UPCビットはリセット時にゼロにセットされ
る。LCMビットはゼロにセットされて動機命令トレース
の記録のための高圧縮モードを使用し、1にセットされ
て底圧縮モードを使用する。このビットはRTTの使用不
可の時にのみ変更できる。これはリセット時にゼロにセ
ットされる。STRビットはSTALLパケットがストール理
由フィールドを含んでいるかを制御する。STRはリセッ
ト時にゼロにセットされる。LDビットが1であれば、AD
V及びDAビットのうち、一つまたは二つ全て1にならな
ければならない。もしST、LR、またはSRビットのいずれ
かが1であれば、SDV及びDAビットの一つまたは二つ全
て1にならなければならない。ADV、SDV、またはDAビッ
トのいずれかが1であれば、データトレースはイネーブ
ルとなる。もし、データトレースまたは命令タイミング
トレースがイネーブルとなれば、命令トレースやはりト
レースデコードがトレースをデコードできるようにする
ためにイネーブルとならなければならない。RTT_USE
R、RTT_PKT_CTL、LPSTART、及びLPNEDレジスタへのSR
命令のためにSDV、DA、及びSRビットは無視される。RTT
_USER及びRTT_PKT_CTLレジスタへの格納はRTT_HOST
_CTL.NAWビットが1でなければ、常に書き込まれる。L
PSTART及びLPENDへの格納は命令トレースが静的にイネ
ーブルになる時にのみ書き込まれる。これらの全てのレ
ジスタへの格納はSRSPECパケットを使用して書き込まれ
る。RTT_PKT_CTLレジスタ値は各SEGSTARTパケットに
も書き込まれる。DTOビットはDATAパケットがセグメン
ト命令オフセット(Segment Instruction Offset)フィ
ールドを含むかを制御する。このフィールドはデータフ
ィルターリングの活性時に必ず存在することにより、ト
レースデコーダがロード/格納命令の記録を決定できな
ければならない。これはリセット時にゼロにセットされ
る。RTT_PKT_CTLレジスタはRTTの使用不可の時にのみ
書き込まれることができる。これはたとえSR命令により
RTT_PKT_CTLレジスタに書き込むことができるとして
も一旦RTTがイネーブルとなれば、必ずホストインター
フェースにより書き込まれる必要はない。この後者の場
合はパケット生成及びフォーマットを制御できるように
コア上の実行プログラムに対するトレースを可能にす
る。
RTT_PKT_CTL Register The RTT_PKT_CTL (packet control) register controls the run time RTT option that must be recorded in the packet stream for the decoder. Each bit is set to 1 to enable, and to zero to disable. The meaning of the bits is given by the following table. All dynamically enabled bits are set to zero on reset. If the instruction timing trace is dynamic enable, then the instruction trace must also be dynamic enable. UPC (Use Pass C
ounts) bit is the backward conditional branch path counter,
Zero overhead loop path counter and associated packets (BCBPC, LPPC, BCBPCOV, LPPCOV) enabled / disabled. This bit can only be modified when RTT is disabled. The UPC bit is set to zero on reset. The LCM bit is set to zero to use the high compression mode for recording motive instruction traces and set to 1 to use the bottom compression mode. This bit can only be modified when RTT is disabled. It is set to zero on reset. The STR bit controls whether the STALL packet contains a stall reason field. STR is set to zero at reset. If LD bit is 1, AD
One or two of the V and DA bits must all be 1. If any of the ST, LR, or SR bits is 1, then one or both of the SDV and DA bits must be 1. If any of the ADV, SDV, or DA bits are 1, then data trace is enabled. If data trace or instruction timing trace is enabled, instruction trace must also be enabled to enable trace decoding. RTT_USE
SR to R, RTT_PKT_CTL, LPSTART, and LPNED registers
SDV, DA, and SR bits are ignored for instructions. RTT
Storing in _USER and RTT_PKT_CTL registers is RTT_HOST
Always written if the _CTL.NAW bit is not 1. L
Stores to PSTART and LPEND are written only when instruction trace is statically enabled. The storage in all these registers is written using the SRSPEC packet. The RTT_PKT_CTL register value is also written in each SEGSTART packet. The DTO bit controls whether the DATA packet contains a Segment Instruction Offset field. This field must be present when the data filtering is active so that the trace decoder can determine the record of load / store instructions. It is set to zero on reset. The RTT_PKT_CTL register can only be written when RTT is disabled. This is due to the SR command
Even though the RTT_PKT_CTL register can be written to, it need not be written by the host interface once RTT is enabled. This latter case enables tracing to the executing program on the core so that packet generation and format can be controlled.

【0370】RTT_EN_DIS_CTL レジスタ RTT_EN_DIS_CTLレジスタはRTTのイネーブルまたは使
用不可の時にパケットストリームに記録されてはならな
いし、また変更が可能な実行時間RTTオプションを制御
する。 FT(Full Trace)ビットが1であれば、フルトレースモ
ードは活性である。フルトレースモードの活性時に、こ
のRTTは命令が段階4に到達する時にコアのストールリ
ングを開始し、パケットパイプラインにより受け取られ
た(或る)命令により全てのパケットが潜在的に生成さ
れる時、これのストールを消去する。フルトレースが活
性でならば、命令タイミングトレース及びイベントタイ
ミングトレースは使用不可になる(RTT_PKT_CTLのITT
及びETTビットは0になる)。FTビットはリセット時にゼ
ロにセットされる。
RTT_EN_DIS_CTL Register The RTT_EN_DIS_CTL register must not be recorded in the packet stream when RTT is enabled or disabled and also controls the run time RTT options that can be modified. If the FT (Full Trace) bit is 1, the full trace mode is active. When activated in full-trace mode, this RTT will start stalling the core when the instruction reaches stage 4 and when all packets are potentially generated by the (some) instruction received by the packet pipeline. , Erase this stall. If full trace is active, instruction timing trace and event timing trace are disabled (ITT of RTT_PKT_CTL
And the ETT bit will be 0). The FT bit is set to zero on reset.

【0371】RTT_SEG_CTL レジスタ RTT_SEG_CTLレジスタは最大命令カウントに基づいて
新しいセグメントの生成を制御する。 SEGMAXフィールドはセグメント命令オフセットに対す
る最大値を含む。この最大値はRTT内のパイプリングに
より2個の命令を超過する場合があり、遅延スロット内
の各命令を超過する場合がある(セグメントは遅延スロ
ットで開始されることができない)。ノーマルコアコー
ドは遅延スロットに命令を出さないので、遅延スロット
はセグメント内で1までだけ最大命令が増加される効果
がある。したがって、カウンタのオーバーフローを避け
ることができるSEGMAXに対する最大リガール値Sは0×
7ffcである。SEGMAXはリセット時にこの値にセッ
トされる。SEGMAXフィールドが現在のセグメント命令
オフセットより大きいならば、SEGMAX限界は次のセグ
メントの開始時まで影響を与えないようになる。
RTT_SEG_CTL Register The RTT_SEG_CTL register controls the generation of new segments based on the maximum instruction count. The SEGMAX field contains the maximum value for the segment instruction offset. This maximum may exceed two instructions due to pipelining in the RTT, and may exceed each instruction in the delay slot (a segment cannot start in the delay slot). Since the normal core code does not issue instructions in the delay slot, the delay slot has the effect of increasing the maximum instruction by 1 in the segment. Therefore, the maximum regirl value S for SEGMAX that can avoid the counter overflow is 0 ×
7 ffc. SEGMAX is set to this value at reset. If the SEGMAX field is greater than the current segment instruction offset, the SEGMAX limit will have no effect until the beginning of the next segment.

【0372】RTT_DIS_CTL レジスタ RTT_DIS_CTLレジスタはパケットストリップ内で記録
されてはならないし、RTTの使用不可の時にだけセット
できる実行時間RTTオプションを制御する。このレジス
タはRTTのイネーブル時に記録されてはならない。 MM(最小モード)ビットはキャプチャ装置が“以後”トリ
ガーに対してセットアップされた時に使われる。もしMM
が1でRTTがトリガーされなければ、FT(RTT_EN_DIS_
RTTレジスタ内の)、EXT、APT及びRTT_PKT_CTLレジス
タ内の静的なイネーブルの値は無視され、ITT及びETTを
除いては0に処理される。もしITT及び/またはETTが1
であれば、タイムスタンプはイネーブルであり、タイム
スタンプオーバーフローは記録されない。もしITTが1
であれば、ストールパケットは生成されない。EXT及びA
PTのオーバーランは記録されない。TSOVパケット以外
に、最小モード時に他の何らのパケットも生成されない
ので、バッファのオーバーフローは実質的に除去され
る。RTTがトリガーされると、FT、EXT、APT及びRTT_PK
T_CTLレジスタ内の静的なイネーブルの値はこれ以上無
視されない。MMビットはリセット時にゼロにセットされ
る。INT(Interrupt)ビットはINTパケットの生成に対し
て静的にイネーブルである。命令トレースが静的及びダ
イナミックエネイブルであれば(RTT_PKT_CTLのITビッ
トは1であり、モニターからの動的なイネーブルは1で
ある)、INTビットは無視される。これはリセット時にゼ
ロにセットされる。MD(Manual Disable)ビットが0で
あれば、RTTはコアの使用不可の後に(すなわち、状態レ
ジスタ内のホールトビットが0から1に変換)RTTは1周
期使用不可となる。これはリセット時にゼロにセットさ
れる。EXT(外部信号)ビットはEXTSIGパケットの生成に
対して静的にイネーブルである。これはリセット時にゼ
ロにセットされる。APT(Actionpoint Event)ビットはA
PEパケットの生成に対して静的にイネーブルである。こ
れはリセット時にゼロにセットされる。
RTT_DIS_CTL Register The RTT_DIS_CTL register must not be recorded in the packet strip and controls the run time RTT option which can only be set when RTT is disabled. This register must not be recorded when RTT is enabled. The MM (Minimum Mode) bit is used when the capture device is set up for a "after" trigger. If MM
Is 1 and RTT is not triggered, FT (RTT_EN_DIS_
Static enable values in the EXT, APT and RTT_PKT_CTL registers (in the RTT register) are ignored and are treated as 0 except for ITT and ETT. If ITT and / or ETT is 1
If, then the timestamp is enabled and no timestamp overflow is recorded. If ITT is 1
If so, no stall packet is generated. EXT and A
No PT overruns are recorded. No buffers other than TSOV packets are generated during minimal mode, so the buffer overflow is substantially eliminated. When RTT is triggered, FT, EXT, APT and RTT_PK
The static enable value in the T_CTL register is no longer ignored. The MM bit is set to zero on reset. The INT (Interrupt) bit is statically enabled for INT packet generation. If the instruction trace is static and dynamic enabled (IT bit in RTT_PKT_CTL is 1 and dynamic enable from monitor is 1), INT bit is ignored. It is set to zero on reset. If the MD (Manual Disable) bit is 0, the RTT is disabled for one cycle after the core is disabled (that is, the halt bit in the status register is converted from 0 to 1). It is set to zero on reset. The EXT (external signal) bit is statically enabled for the generation of EXTSIG packets. It is set to zero on reset. APT (Actionpoint Event) bit is A
Statically enabled for PE packet generation. It is set to zero on reset.

【0373】RTT_BUF_CTLレジスタ RTT_BUF_CTL(バッファ制御)レジスタは、バッファを
制御する。このレジスタは、RTTがイネーブルになった
時には記録されてはならない。 DFR(デセイブルFIFO RAM)ビットが1ならば、FIFO RAM
に対するアクセスは、読み取り/書き込み命令をRTT_FI
FO_CMDレジスタに記録することによって開始される。
このモードは、BISTのように他の構造を必要とする代わ
りに、ただFIFORAMがテストされることを許容するため
に提供される。ノーマル動作のあいだ、DFRビットは、
0にならなければならない。リセット時には、0にセッ
トされる。仮りにIO(インタラプトオーバーフロー)ビッ
トが1であり、かつバッファオーバーフローが発生すれ
ば、コアは、インタラプトされる。IOビットに0が記録
され、かつインタラプトが活性ならば、インタラプト
は、活性のまま維持される。インタラプトは、命令をRT
T_CMDレジスタに記録することによって消去される。IO
ビットは、リセット時に0にセットされる。MFFE(最大
フルFIFOエントリー)フィールドは、RTTがバッファオー
バーフローを消去する前に、完全にフルとなるように許
容されたFIFOエントリーの最大数を指定する。FIFOエン
トリーの全体数と同一の値は、FIFOが完全に分析され、
バッファオーバーフローが消去されるように許容する。
0値は、バッファオーバーフローが消去される前に、FI
FOが強制的に空きになるようにする。MFFE値は、リセッ
ト時に、0にセットされる。
RTT_BUF_CTL Register The RTT_BUF_CTL (buffer control) register controls the buffer. This register must not be recorded when RTT is enabled. If the DFR (Destable FIFO RAM) bit is 1, FIFO RAM
Access to read / write instructions RTT_FI
Started by recording in the FO_CMD register.
This mode is provided just to allow the FIFORAM to be tested, instead of requiring other structures like BIST. During normal operation, the DFR bit
Must be zero. At reset, it is set to 0. If the IO (interrupt overflow) bit is 1 and a buffer overflow occurs, the core is interrupted. If 0 is recorded in the IO bit and the interrupt is active, the interrupt remains active. Interrupt RT instruction
It is erased by recording in the T_CMD register. IO
The bit is set to 0 on reset. The MFFE (Maximum Full FIFO Entries) field specifies the maximum number of FIFO entries allowed to be completely full before the RTT clears the buffer overflow. A value equal to the total number of FIFO entries means that the FIFO has been completely analyzed,
Allow buffer overflows to be cleared.
A value of 0 means FI before the buffer overflow is cleared.
FO is forced to be free. The MFFE value is set to 0 at reset.

【0374】RTT_MON_CTLレジスタ RTT_MON_CTLレジスタは、一つ以上のモニターに影響
を及ぼす動作を制御する。このレジスタは、RTTがイネ
ーブルになる時、記録されてはならない。RTT_MON_CT
Lレジスタの内容は、次の通りである。 DYEN(ダイナミックイネーブル)フィールドは、各ダイナ
ミックイネーブルの現在値を含む。これらは、リセット
時、0にセットされる。DYENフィールド内の各ビットの
意味は、次の通りである。 仮りにタイミングトレースが設計上になければ、ビット
1は0になる。仮りにデータトレースが設計上になけれ
ば、ビット2は0になる。STARTEN(開始イネーブル)フ
ィールドは、許容または防止フィルターが活性でない時
に使われる各ダイナミックイネーブルの値を含む。これ
らは、リセット時、0にセットされる。PAIRSフィール
ドは、4ビットのアレイ(array)である。仮りにビットn
が1ならば、モニター(2nと2n+1)に対する条件の結
果が共にAND演算され、二つのモニターに対する条件と
なる。PAIRSフィールドは、リセット時、0にセットさ
れる。QUADSフィールドは、2ビットのアレイ(array)で
ある。仮りにビットnが1ならば、モニター(4n、4n+
1、4n+2及び4n+3)に対する条件の結果が共にAND演
算され、これら4つの全てのモニターに対する条件とな
る。QUADSフィールドは、リセット時、0にセットされ
る。
RTT_MON_CTL Register The RTT_MON_CTL register controls operations affecting one or more monitors. This register should not be recorded when RTT is enabled. RTT_MON_CT
The contents of the L register are as follows. The DYEN (Dynamic Enable) field contains the current value of each dynamic enable. These are set to 0 at reset. The meaning of each bit in the DYEN field is as follows. Bit 1 will be 0 if the timing trace is not in the design. If the data trace is not in the design, bit 2 will be 0. The STARTEN field contains the value of each dynamic enable used when the allow or prevent filter is inactive. These are set to 0 at reset. The PAIRS field is a 4-bit array. Bit n
If is 1, the results of the conditions for the monitors (2n and 2n + 1) are ANDed together, resulting in the conditions for the two monitors. The PAIRS field is set to 0 at reset. The QUADS field is a 2-bit array. If bit n is 1, monitor (4n, 4n +
The results of the conditions for 1, 4n + 2 and 4n + 3) are ANDed together to become the conditions for all four of these monitors. The QUADS field is set to 0 at reset.

【0375】RTT_TRIG_SRCレジスタ RTT_TRIG_SRCレジスタは、可能なソース中のどれがト
リガーを引き起こしたかを指定する。このレジスタは、
RTTが以前にトリガーされない場合にだけ、セットされ
る。RTT_TRIG_SRCレジスタの内容は、次の通りであ
る。 MONフィールドは、設計上に存在する各モニターに対す
るビットを含む。モニターがRTTをトリガーすれば、対
応するMONビットは、1にセットされる。MONフィールド
は、リセット時、0にセットされる。CMDビットは、RTT
_CMDレジスタに対する記録がRTTをトリガーすれば、1
にセットされる。CMDフィールドは、リセット時、0に
セットされる。SIGビットは、仮りに入力信号(rtt_tri
g_on)がRTTをトリガーすれば、1にセットされる。SIG
フィールドは、リセット時、0にセットされる。
RTT_TRIG_SRC Register The RTT_TRIG_SRC register specifies which of the possible sources caused the trigger. This register is
Set only if RTT was not previously triggered. The contents of the RTT_TRIG_SRC register are as follows. The MON field contains a bit for each monitor present in the design. If the monitor triggers RTT, the corresponding MON bit is set. The MON field is set to 0 at reset. CMD bit is RTT
1 if recording to the _CMD register triggers RTT
Is set to. The CMD field is set to 0 at reset. The SIG bit is assumed to be the input signal (rtt_tri
Set to 1 if g_on) triggers RTT. SIG
The field is set to 0 upon reset.

【0376】RTT_USERレジスタ RTT_USERレジスタに記録される時、トレース内の値を
記録するために、SRSPECパケットが生成される。これ
は、トレースされるプログラムが“cookies”(クッキ
ー)をトレース内に挿入するように許容する。 RTT_FIFO_STATレジスタ RTT_FIFO_STATレジスタは、FIFOの状態を表す。 FMTビットは、FIFOが空きになると、1であり、そうで
ない場合、0である。このビットは、リセット時、0に
セットされる。FHD及びFTLフィールドは、FIFOヘッドと
FIFOテール(tail)ポインタを各々含む。ポインタは、FI
FOメモリに対するアドレスである。FIFOは、ポインタが
同一であり、FMTビットが0ならば、フルとなる。この
ポインタは、リセット時、0にセットされる。
RTT_USER Register When recorded in the RTT_USER register, an SRSPEC packet is generated to record the value in the trace. This allows the traced program to insert "cookies" in the trace. RTT_FIFO_STAT Register The RTT_FIFO_STAT register represents the state of the FIFO. The FMT bit is 1 when the FIFO is empty and 0 otherwise. This bit is set to 0 at reset. FHD and FTL fields are
Each contains a FIFO tail pointer. Pointer is FI
This is the address for the FO memory. The FIFO is full if the pointers are the same and the FMT bit is 0. This pointer is set to 0 at reset.

【0377】RTT_FIFO_CMDレジスタ RTT_FIFO_CMDレジスタは、FIFO RAMと、RTT_FIFO_D
ATA0、RTT_FIFO_DATA1及びRTT_FIFO_DATASレジス
タ間のデータ伝達をトリガーする。このレジスタは、RT
T_BUF_CTL.DFRビットが1である時にだけ、記録され
る。RTT_FIFO_CMDレジスタは、ただテストのために提
供され、ノーマル動作時に、RTT_FIFO_CMDレジスタは
記録されてはならない。このレジスタは、RTTがアネー
ブルされる時、記録されてはならない。 WRビットは、FIFO RAMが記録されるか(WR=1)、または
読み取られるか(WR=1)を制御する。FIFO RAMが記録さ
れる時、RTT_FIFO_ADDRレジスタにより指定されたア
ドレスのRAM内容がRTT_FIFO_DATA0、RTT_FIFO_DAT
A1及びRTT_FIFO_DATASレジスタの内容で記録され
る。FIFO RAMが読み取られる時、RTT_FIFO_DATA0、R
TT_FIFO_DATA1及びRTT_FIFO_DATASレジスタは、RT
T_FIFO_ADDRレジスタにより指定されたアドレスのRAM
内容でロードされる。 RTT_FIFO_ADDRレジスタ RTT_FIFO_ADDRレジスタは、読み取りまたは書き込み
命令がRTT_FIFO_CMDレジスタに記録される時、記録さ
れたり読み取られるアドレスを提供する。このレジスタ
は、RTTがイネーブルされる時、記録されてはならな
い。
RTT_FIFO_CMD Register The RTT_FIFO_CMD register is used for FIFO RAM and RTT_FIFO_D register.
Trigger data transfer between ATA0, RTT_FIFO_DATA1 and RTT_FIFO_DATAS registers. This register is RT
Only recorded when the T_BUF_CTL.DFR bit is 1. The RTT_FIFO_CMD register is provided for testing only and during normal operation the RTT_FIFO_CMD register should not be recorded. This register must not be recorded when RTT is enabled. The WR bit controls whether the FIFO RAM is recorded (WR = 1) or read (WR = 1). When the FIFO RAM is recorded, the RAM contents of the address specified by the RTT_FIFO_ADDR register are stored in RTT_FIFO_DATA0 and RTT_FIFO_DAT.
Recorded with the contents of A1 and the RTT_FIFO_DATAS register. When the FIFO RAM is read, RTT_FIFO_DATA0, R
TT_FIFO_DATA1 and RTT_FIFO_DATAS registers are RT
RAM at the address specified by the T_FIFO_ADDR register
Loaded with content. RTT_FIFO_ADDR Register The RTT_FIFO_ADDR register provides an address to be recorded or read when a read or write instruction is recorded in the RTT_FIFO_CMD register. This register must not be recorded when RTT is enabled.

【0378】RTT_FIFO_DATA0レジスタ RTT_FIFO_DATA0レジスタは、パケット部分0を維持
する。最下位ニブルは、ビットオフセット0で始まる。
仮りに読み取り命令がRTT_FIFO_CMDレジスタに記録さ
れれば、このレジスタは、次の週期でRAMからロードさ
れる。仮りに書き込み命令がRTT_FIFO_CMDレジスタに
記録されれば、このレジスタは、次の週期にRAMに記録
される。コアまたはホストがこのレジスタに記録しよう
と試みると同時に、このレジスタがRAMからロードされ
るならば、コアまたはホストは無視される。このレジス
タは、RTTがイネーブルになる時、記録されてはならな
い。 RTT_FIFO_DATA1レジスタ RTT_FIFO_DATA1レジスタは、RTT_FIFO_DATA1レジ
スタがパケット部分1を含むことを除いて、RTT_FIFO
_DATA0レジスタと同一に作用する。このレジスタは、
RTTがイネーブルになる時、記録されてはならない。
RTT_FIFO_DATA0 Register The RTT_FIFO_DATA0 register maintains packet portion 0. The least significant nibble starts at bit offset 0.
If a read instruction is recorded in the RTT_FIFO_CMD register, this register will be loaded from RAM in the next week. If a write command is recorded in the RTT_FIFO_CMD register, this register will be recorded in RAM in the next week. If this register is loaded from RAM at the same time the core or host tries to record to this register, the core or host is ignored. This register should not be recorded when RTT is enabled. RTT_FIFO_DATA1 Register The RTT_FIFO_DATA1 register is the RTT_FIFO_DATA1 register, except that the RTT_FIFO_DATA1 register contains a packet portion 1.
Works the same as the _DATA0 register. This register is
It should not be recorded when RTT is enabled.

【0379】RTT_FIFO_DATASレジスタ RTT_FIFO_DATASレジスタは、RTT_FIFO_DATASレジス
タが状態ビットを含むことを除いて、RTT_FIFO_DATA
0レジスタと同一に作用する。このレジスタは、RTTが
イネーブルになる時、記録されてはならない。 SIZE0及びSIZE1フィールドは、パケット部分0及び1
サイズに各々対応する。これらは、各々次の通りエンコ
ーディングされる。
RTT_FIFO_DATAS Register The RTT_FIFO_DATAS register is the RTT_FIFO_DATAS register, except that the RTT_FIFO_DATAS register contains status bits.
Works the same as the 0 register. This register should not be recorded when RTT is enabled. The SIZE0 and SIZE1 fields are for packet parts 0 and 1.
Corresponds to each size. These are each encoded as follows.

【0380】RTT_MON_COND0ないしRTT_MON_COND7
レジスタ 各RTT_MON_CONDレジスタは、単一モニターの条件をセ
ットアップするために使われる。仮りに関連モニターが
RTT内に存在しないならば、読み取りは、0をリターン
し、記録は無視される。これらのレジスタは、RTTがイ
ネーブルされる時、記録されてはならない。各RTT_MON
_CONDレジスタの内容は、次の通りである。 DYEN(ダイナミックイネーブル)フィールドは、フィルタ
ーとして構成される時、モニターによりどのダイナミッ
クイネーブルが影響を受けるかを指定する。仮りにビッ
トが1ならば、対応するダイナミックイネーブル(RTT_
NON_CTLレジスタ内のDYENフィールドを参照)がフィル
ターにより影響を受ける。影響は、モニターと関連した
アクション(ACTフィールド)により決定される。DYENフ
ィールドは、リセットされる時、0にセットされる。SR
C(条件ソース)フィールドは、モニター条件評価のため
に使われたパイプラインからソース値を指定する。この
フィールドは、リセットされる時、0にセットされる。
データトレースが設計上に存在しない時、SRCフィール
ドは、0である。フィールドの意味は、次の通りであ
る。
RTT_MON_COND0 to RTT_MON_COND7
Registers Each RTT_MON_COND register is used to set up the conditions for a single monitor. If the related monitor
If not in the RTT, the read returns 0 and the record is ignored. These registers must not be recorded when RTT is enabled. Each RTT_MON
The contents of the _COND register are as follows. The DYEN (Dynamic Enable) field specifies which dynamic enable is affected by the monitor when configured as a filter. If the bit is 1, the corresponding dynamic enable (RTT_
The DYEN field in the NON_CTL register) is affected by the filter. Impact is determined by the action associated with the monitor (ACT field). The DYEN field is set to 0 when reset. SR
The C (condition source) field specifies the source value from the pipeline used for monitor condition evaluation. This field is set to 0 when reset.
The SRC field is 0 when the data trace is not present by design. The meanings of the fields are as follows.

【0381】LD、ST、LR及びSRビットは、パスするため
の条件に対してどの方向及びどのメモリ空間が観測され
るかを指定する。仮りにソースが命令アドレスならば、
これらのビットは、無視される。仮りにソースがデータ
アドレスまたはデータ値ならば、これらの4ビットのう
ち少なくともひとつは、セットされなければならない。
ビットの意味は、次の通りである。 REL(条件関係)フィールドは、モニター条件評価のため
に使われた関係を指定する。このフィールドは、リセッ
トされる時、0にセットされる。このフィールドの意味
は、次の通りである。
The LD, ST, LR and SR bits specify which direction and which memory space is observed for the condition to pass. If the source is the instruction address,
These bits are ignored. If the source is a data address or data value, at least one of these 4 bits must be set.
The meanings of the bits are as follows. The REL (Condition Relation) field specifies the relation used for the monitor condition evaluation. This field is set to 0 when reset. The meaning of this field is as follows.

【0382】ACT(アクション)は、モニター条件が真に
なる時、モニターの動作を指定する。このフィールド
は、リセットされる時、0にセットされる。このフィー
ルドの意味は、次の通りである。 モニター条件が発生する時、仮りにTRIGフィールドが
(に)1ならば、RTTはトリガーなることだ(既にトリガ
ーなったとすれば無視される)。 RTT_MON_REF0ないしRTT_MON_REF7レジスタ RTT_MON_REFレジスタは、一つのモニターに対して3
2ビット基準値を含む。仮りに関連モニターがRTT内に
存在しないならば、読み取りは、0をリターンし、記録
は無視される。これらのレジスタは、RTTがイネーブル
される時、記録されてはならない。各RTT_MON_REFレ
ジスタの内容は、次の通りである。 VALUE(値)フィールドは、正確にモニターに対する32
ビット基準値を含む。このフィールドは、長い(long)-
ワードで整列された命令アドレス、1バイトで整列され
たデータアドレスまたはデータ値を含むことができる。
このフィールドは、リセットされる時、0にセットされ
る。仮りにデータトレースが設計上に存在しないなら
ば、値フィールドの最上位8ビットが0であり、その理
由は、唯一の基準値は、ただ24ビットの命令アドレス
であるからである。
ACT (action) specifies the monitor operation when the monitor condition becomes true. This field is set to 0 when reset. The meaning of this field is as follows. If the TRIG field is 1 when the monitor condition occurs, the RTT will be a trigger (ignored if already triggered). RTT_MON_REF0 to RTT_MON_REF7 registers RTT_MON_REF register has 3 registers for one monitor.
Contains a 2-bit reference value. If the associated monitor is not in the RTT, the read will return 0 and the record will be ignored. These registers must not be recorded when RTT is enabled. The contents of each RTT_MON_REF register are as follows. The VALUE field is exactly 32 for the monitor.
Contains the bit reference value. This field is long-
It may include a word aligned instruction address, a 1 byte aligned data address or a data value.
This field is set to 0 when reset. If no data trace was present in the design, the most significant 8 bits of the value field would be 0, because the only reference value is the 24-bit instruction address.

【0383】付録IV レジスタ定義(バッファ/パケットパイプライン) RTT_STATレジスタ 唯1ビット状態レジスタがパケットパイプラインに該当
する。これは、オーバーフロービットOVである。RTT_S
TATレジスタは、RTTの状態を表す。仮りにRTT_STATレ
ジスタがコアまたはホストにより記録されるならば、IR
Qビットが0にセットされ、他のすべてのビットは変化
しない。 ENビットは、RTTがイネーブルになると、1である。こ
のビットは、リセットされる時、0にセットされる。TR
ビットは、RTTがトリガーされると、1である。このビ
ットは、リセットされる時、0にセットされる。IRQビ
ットは、RTTがインタラプト信号をARCに断定(assert)す
れば、1である。このビットは、リセットされる時、0
にセットされる。OVビットは、RTTバッファがオーバー
フロー状態である時、1である。このビットは、リセッ
トされる時、0にセットされる。このフィールドは、テ
スト用途として提供される。TSO(タイムスタンプオーバ
ーラン)、APO(アクションポイントオーバーラン)及びES
O(外部信号オーバーラン)ビットは、これらの対応メカ
ニズムがオーバーランされる時、1にセットされる。こ
れらは、リセットされる時、0にセットされる。一つの
オーバーランは、イベントが損失される時に引き起こさ
れるが、なぜなら以前のイベントがパケットに記録され
る前に、さらに発生するからである。PMTビットは、RTT
バッファ内のパケットパイプラインが空きになったら、
1であり、そうでない場合は、0である。このビット
は、リセットされる時、0にセットされる。このフィー
ルドは、テスト用途として提供される。TMTビットは、
パケットポートがアンロックされると、1であり、そう
でない場合は、0である。このビットは、リセットされ
る時、0にセットされる。このフィールドは、テスト用
途として提供される。ULビットは、RTTがアンロックさ
れると、1である。RTTは、RTT_LOCKレジスタが特定値
で書き込まれる時、アンロックされ、次のSR命令後に、
さらにロックされる。BCBPCは、後方向条件付き分岐パ
スカウンタの値を含む。このフィールドは、リセットさ
れる時、0にセットされる。このフィールドは、テスト
用途として提供される。LPPCは、ゼロ-オーバーヘッド
ループパスカウンタの値を含む。このフィールドは、テ
スト用途として提供される。
Appendix IV Register Definition (Buffer / Packet Pipeline) The RTT_STAT register only the 1-bit status register corresponds to the packet pipeline. This is the overflow bit OV. RTT_S
The TAT register represents the status of RTT. If the RTT_STAT register is recorded by the core or host, then IR
The Q bit is set to 0 and all other bits are unchanged. The EN bit is 1 when RTT is enabled. This bit is set to 0 when reset. TR
Bit is 1 when RTT is triggered. This bit is set to 0 when reset. The IRQ bit is 1 if the RTT asserts the interrupt signal to ARC. This bit is 0 when reset
Is set to. The OV bit is 1 when the RTT buffer is in an overflow condition. This bit is set to 0 when reset. This field is provided for testing purposes. TSO (Time Stamp Overrun), APO (Action Point Overrun) and ES
The O (External Signal Overrun) bit is set to 1 when these corresponding mechanisms are overrun. These are set to 0 when reset. One overrun is triggered when an event is lost because it occurs further before the previous event is recorded in the packet. PMT bit is RTT
When the packet pipeline in the buffer becomes empty,
1 and 0 otherwise. This bit is set to 0 when reset. This field is provided for testing purposes. The TMT bit is
1 if the packet port is unlocked, 0 otherwise. This bit is set to 0 when reset. This field is provided for testing purposes. The UL bit is 1 when the RTT is unlocked. RTT is unlocked when the RTT_LOCK register is written with a specific value, and after the next SR instruction,
Further locked. BCBPC contains the value of the backward conditional branch path counter. This field is set to 0 when reset. This field is provided for testing purposes. LPPC contains the value of the zero-overhead loop pass counter. This field is provided for testing purposes.

【0384】RTT_CMDレジスタ RTT_CMDレジスタに対する消去バッファ命令は、パケッ
トパイプライン上で同期リセットを效果的に行う。RTT
_CMDレジスタは、次の命令中のひとつをRTTに伝達する
のに使われる。 RTT_CMDレジスタのフォーマットは、次の通りである。 CMD_NS命令は、次の非−遅延スロット命令またはイン
タラプト後、新しいセグメントを開始する。仮りにSR命
令により書き込まれると、新しいセグメントは、SR命令
以後に始まる。CMD_CB命令は、バッファの内容を消去
する。このフィールドは、テスト用途として提供され
る。
RTT_CMD Register The erase buffer instruction for the RTT_CMD register effectively performs a synchronous reset on the packet pipeline. RTT
The _CMD register is used to convey one of the following instructions to the RTT. The format of the RTT_CMD register is as follows. The CMD_NS instruction starts a new segment after the next non-delay slot instruction or interrupt. If written by the SR instruction, the new segment begins after the SR instruction. The CMD_CB instruction erases the contents of the buffer. This field is provided for testing purposes.

【0385】付録V 例示的な平滑ユニットテストコードシナリオ DF1 ストールを発生させたり回避するために命令及び
データキャッシュを使用。 DF2 パイプラインストールが生成せず、命令が毎周期
に実行されるようにするために、単一の周期命令を連続
的に実行。 DF3 一つのステージが次のステージからの結果に依存
するパイプラインのステージ間依存性。例えば、非演算
子ベチは、以前命令の再書き込みステージに依存する。 DF4 二つの命令が隣接し、第2の命令は、第1の命令
から生成された結果を使用し、第2の命令は、第1の命
令が結果を発生させる時まで待機する、一対の命令に対
する検査。これは、連続的なループで行われなければな
らない。メモリ及びコアレジスタアクセスの両方のため
に、これを使用。第1の結果をリターンさせるにあたっ
て遅延を保障するために、第1の命令は、ld.diでなけ
ればならない。演算を含む命令の範囲が使われなければ
ならず、分岐及び特別なこと(flag,swi, blk, sleep)
が第2の命令として使われることができる。また、ld及
びld. di命令の異なる組合を試みる。
Appendix V Example Smooth Unit Test Code Scenario DF1 Uses instruction and data cache to generate and avoid stalls. DF2 Pipeline install is not generated and a single periodic instruction is executed continuously so that the instruction is executed every cycle. DF3 Pipeline inter-stage dependency, where one stage depends on the results from the next stage. For example, non-operator Betis relies on the rewriting stage of previous instructions. DF4 A pair of instructions in which two instructions are adjacent, the second instruction uses the result produced by the first instruction, and the second instruction waits until the first instruction produces a result. Inspection against. This must be done in a continuous loop. Use this for both memory and core register access. To guarantee the delay in returning the first result, the first instruction must be ld.di. A range of instructions including operations must be used, branches and special things (flag, swi, blk, sleep)
Can be used as the second instruction. Also try different combinations of ld and ld.di orders.

【0386】DF5 連続ループでロードのシーケンス。 DF6 第3の命令は、第1命令からの再書き込み結果に
依存する。 DF7 パイプラインのステージ1、2及び3でストール
を発生させる。 DF8 ステージ1でのlimm値ストールを発生させる。 DF9 近接データによる命令の実行と同様に、2-周期
命令の連続的な実行。 DF10 単一及びマルチ周期命令の組合。 DF11 再書き込み及びALU短縮が条件フェイルによっ
てデセイブルされ、その次の命令の非演算子ベチステー
ジが再書き込みに依存するループ。 DF12 無効遅延スロットを有するか有しない分岐/ジ
ャンプループ内からサブルーチンを呼出。 DF13 一方のレジスタが以前ロードから更新されるた
めに待機し、前記レジスタは、ステージ2で命令の被演
算子中のひとつである、ロード動作。この状況で、パイ
プラインは停止する。 DF14 いろいろな最悪の場合のシナリオに対する完全
な命令セットをカバーするためのものである。テストコ
ードを参照。 DF15 平滑ブロックのアクションポイントと外部信号
の使用。 DF16 ジャンプがインタラプトからの知られた位置に
なる自己−変更コード。 DF17 ゼロオーバーヘッドループに適用される全ての
ストールテスト。 DF18 このようなストールテストコードは、タイミン
グトレースに使われる時、生成ブロックから適切なスト
ール理由を提供しなければならない。 DF19 コアパイプラインをフラッシュし、その後、RT
Tを非イネーブルとする。
DF5 Load sequence in continuous loop. DF6 The third instruction depends on the rewrite result from the first instruction. DF7 Stalls occur in stages 1, 2 and 3 of the pipeline. DF8 Stage 1 limm value stall is generated. DF9 Continuous execution of 2-cycle instructions, similar to instruction execution with proximity data. DF10 A combination of single and multi-cycle instructions. DF11 A loop in which rewriting and ALU shortening are disabled by a conditional fail, and the non-operator vector stage of the next instruction depends on rewriting. DF12 Call a subroutine from within a branch / jump loop with or without invalid delay slots. DF13 Wait for one register to be updated from the previous load, said register being one of the operands of the instruction in stage 2, a load operation. In this situation, the pipeline will stop. DF14 To cover the complete instruction set for various worst case scenarios. See test code. DF15 Use of smooth block action points and external signals. DF16 A self-modifying code that jumps to a known position from an interrupt. DF17 All stall tests applied to the zero overhead loop. DF18 Such stall test code must provide an appropriate stall reason from the generation block when used for timing trace. Flush DF19 core pipeline, then RT
Disable T.

【0387】DF20 パイプラインのステージ4で命令
が存在する時、RTTを非イネーブルとする。他の全ての
パイプラインステージに対しても同一に繰り返し。 DF21 パイプラインのステージ4では何らの命令がな
いが、他のステージが命令を有する時、RTTを非イネー
ブルとする。他の全てのパイプラインステージに対して
も同一に繰り返し。 DF22ISR内からのループをネストさせるテストコード
を実行させる。 DF23RTTからプロセッサストールを発生させる。 DF24 ISR内の第1の命令が直接ジャンプ/分岐/条件
付き分岐などのテストコードを書き込む。 DF25 命令1がステージ4パイプラインで存在し、同
時に命令2がステージ3で止める場合を書き込み、平滑
機の最も古くなった命令アドレス信号を検査する。 DF26 命令がステージ4で存在し、次の命令2がステ
ージ1(i-ベチ)で存在する場合、すなわちそれらの間に
2周期のストールが存在する場合、この場合、平滑機の
最も古くなった命令アドレス信号が正確な値を有するか
を確認。 DF27 インタラプトシーケンスを実行し、且つ高い優
先順位インタラプトを発生させるコード。 DF28 所定の同一時間に次の状況、すなわちinst1が
ステージ4に存在し、inst2は、ステージ3で止め、in
st3は、ステージ1に存在する状況を発生させ、この場
合、平滑機の最も古くなった命令アドレス信号が正確な
値を有するかを確認。
DF20 RTT is disabled when an instruction is present in stage 4 of the pipeline. Repeat for all other pipeline stages. DF21 RTT is disabled when there are no instructions in stage 4 of the pipeline but other stages have instructions. Repeat for all other pipeline stages. Run the test code that nests the loop from within the DF22ISR. Generate a processor stall from DF23RTT. The first instruction in the DF24 ISR writes a test code such as a direct jump / branch / conditional branch. DF25 Instruction 1 exists in stage 4 pipeline, and instruction 2 stops at stage 3 at the same time, and examines the oldest instruction address signal of the smoother. If the DF26 instruction exists in stage 4 and the next instruction 2 exists in stage 1 (i-veti), that is, if there is a two-cycle stall between them, then the oldest smoother Check if the instruction address signal has the correct value. DF27 Code that executes an interrupt sequence and generates a high priority interrupt. DF28 At the same predetermined time, the following situation exists: inst1 is in stage 4, inst2 is stopped in stage 3, in
st3 causes the situation present in stage 1 to see if the oldest instruction address signal of the smoother has the correct value.

【0388】DF29 全ての命令がステージ3で止め、
いずれも完了しない状況。 DF30 inst1がステージ4で止め、第2の命令がベチ
ステージにある場合。(inst1ベチ以後の2周期ストー
ル)、この場合、平滑機の最も古くなった命令アドレス
信号が正確な値を有するかを確認。 DF31 データトレースが実行される状態で、LD+LDB+L
DW+LD.DI、ST+STW+STB+LR+SRを連続的なシーケンス及び
他の組合に使用する。生成されたデータアドレス及び値
が正確であるかを検査する。RTT特定レジスタに書き込
むために、それをまた使用する。生成された状態レジス
タ値をまた検査する。インタラプト及びストールをまた
発生させる。 DF32 ループでの最終命令がlimmデータを有し、最終
命令がlimmであるが、前記limmデータがループ外に位置
するゼロオーバーヘッドループを記録する。 DF33 pc_plus_oneがLP_ENDと同一になる時のゼロ
オーバーヘッドループ;最終ループ終了命令が次の周期/
周期でベチされないように、ストールを発生させる。ま
た、ゼロオーバーヘッドループでlimmデータを有するか
有しない最終命令が実行されている時、3種類のパイプ
ラインストールすべてを発生させる。 DF34 1にセットされたループカウントレジスタを有
するゼロオーバーヘッドループを実行させる。 DF35 次の事項を有するゼロオーバーヘッドループを
具現させる。すなわち DF35-1 ループをセットアップさせ、ループ内でた
だ一つの命令を持つために、LP命令を使用すること。 DF35-2 lp_countレジスタのセッティングとループ
の最終命令との間にあるただ2つの命令。 DF36 最終命令は、無条件ジャンプ命令であり、ルー
プをトリガーし、ループにさらにリターンしない、ゼロ
オーバーヘッドループ。また、ループ内の最終及び第2
の最終命令としての全ての形態のジャンプに対するコー
ド。 DF37 タイミング及びデータトレースが実行される状
態で、非常に厳格なゼロオーバーヘッドループ内でスト
ールを発生させる。また、ゼロオーバーヘッドループ内
で他の全てのパケットタイプを発生させる。 DF38 ゼロオーバーヘッドループにおいて、ループト
リガー、セグスタート(Segstart)、タイムスタンプオー
バーフロー及び全ての可能なパケットを同一の周期内に
発生させようとする。 DF39 同一の形態のジャンプ及び他の形態のジャンプ
をシーケンスに伴って、他の形態のジャンプ及びリンク
命令で終了する、条件付き及び無条件のゼロオーバーヘ
ッドループ。
DF29 All instructions stop at stage 3,
The situation where neither is completed. When DF30 inst1 stops at stage 4 and the second instruction is at the next stage. (2 cycles stall after 1st inst), In this case, check if the oldest instruction address signal of smoother has correct value. LD + LDB + L with DF31 data trace being executed
Use DW + LD.DI, ST + STW + STB + LR + SR for continuous sequences and other combinations. Check that the generated data address and value are correct. Also use it to write to the RTT specific register. Also check the generated status register value. It also causes interrupts and stalls. The final instruction in the DF32 loop has limm data, and the final instruction is limm, but the limm data is recorded outside the loop in a zero overhead loop. DF33 pc_plus_one is the same as LP_END when zero overhead loop; final loop end instruction is next cycle /
Stalls are generated so that they do not get stuck in cycles. It also causes all three types of pipeline stalls when the final instruction with or without limm data is executed in a zero overhead loop. Run a zero overhead loop with the loop count register set to DF341. DF35 Implements a zero overhead loop with the following: That is, use the LP instruction to set up the DF35-1 loop and have only one instruction in the loop. DF35-2 Only two instructions between the setting of lp_count register and the last instruction of the loop. The DF36 final instruction is an unconditional jump instruction that triggers the loop and does not return to the loop, a zero overhead loop. Also, the final and second in the loop
Code for all forms of jump as the final instruction of. DF37 Stalls occur in a very tight zero overhead loop with timing and data traces performed. It also spawns all other packet types within the zero overhead loop. DF38 In a zero overhead loop, it tries to generate loop trigger, segstart, timestamp overflow and all possible packets in the same cycle. DF39 Conditional and unconditional zero-overhead loops that end with other forms of jump and link instructions, with sequences of same forms of jumps and other forms of jumps.

【0389】DF40 limmデータを有する最終命令を備
える非常に厳格なゼロオーバーヘッドループ、ループが
LPよりはSR命令を使用して生成される時、このようなル
ープを使用。最終命令がlimmデータである時、同一の周
期で他のすべての可能なパケットを生成する。 DF41 ゼロオーバーヘッドループ内で、ただLP_END
レジスタのみをセッティングし、LP_STARTレジスタを
セッティングしないために、SR命令を使用する。ゼロオ
ーバーヘッドループを実行させる。 DF42 ロード/格納命令、遅延されたロードによって
引き起こされたストール、及び以前ロード命令からの結
果を待機するその次の命令を使用する。ゼロオーバーヘ
ッドループでロード格納命令を使用する。遅延スロット
内でロード/格納命令を使用する。ゼロオーバーヘッド
ループで第2の最終命令、ロード命令及び最終命令を構
成するが、最終命令は、以前ロードの結果に依存する。 DF43 ゼロオーバーヘッドループ内のブレーキ及び休
止(sleep)命令を使用する。
DF40 Very strict zero overhead loop with final instruction with limm data, loop is
Use such a loop when generated using the SR instruction rather than LP. When the last command is limm data, it will generate all other possible packets in the same cycle. DF41 In the zero overhead loop, just LP_END
Use the SR instruction to set the register only and not the LP_START register. Run a zero overhead loop. Use the DF42 load / store instruction, the stall caused by the delayed load, and the next instruction waiting for the result from the previous load instruction. Use a load store instruction in a zero overhead loop. Use load / store instructions in delay slots. A zero overhead loop constructs a second final instruction, a load instruction and a final instruction, the final instruction depending on the result of the previous load. DF43 Use brake and sleep instructions in zero overhead loop.

【0390】付録VI 定義:モニター構成:本テストでどんなモニターが構成
され使用されるかを決定;対と4対は、“&”で表され
る。ソース:ソース比較バスは、アドレス(IA)、デー
タアドレス(DA)又はデータ値(DV)になり得る。 関係:各モニターに対して行われる比較動作を選択す
る。 データ命令:仮にソースがDA又はDVならば、モニター比
較が行われる命令を選択。 トリガー:モニター条件レジスタ内のトリガービットを
セット、RTTは、モニター条件が真である時、トリガー
するはずである。 アクション:モニターがダイナミックイネーブル等にど
のくらい影響を及ぼすかを決定。
Appendix VI Definitions: Monitor Configuration: Determines what monitors are configured and used in this test; pairs and 4 pairs are represented by "&". Source: The source comparison bus can be an address (IA), data address (DA) or data value (DV). Relationship: Select the comparison operation to be performed on each monitor. Data command: If the source is DA or DV, select the command for monitor comparison. Trigger: Set the trigger bit in the monitor condition register, the RTT should trigger when the monitor condition is true. Action: Determine how the monitor will affect the dynamic enable etc.

【0391】付録VII 例示的な生成ユニットテストコードシナリオ DG1 命令トレース、データトレース、タイミングトレ
ース、アクショントレース、アクションポイント及び外
部信号のためのパケットの生成。このような形態のトレ
ースは、個別的に且つ他の組合で生成されなければなら
ない。 DG2 RTT生成ブロックは、所定の時間に制御、命令実
行、ループトリガー、及び遅延されたロードデータパケ
ットを生成できる。テストコードは、そのようなもの等
を同時に生成しようとする。生成されたデータパケット
がホール(hole)を全く持たないかをまた検査する。 DG3 各クロック周期で、任意のカテゴリーの新しい形
態のパケットと、且つ各周期で一つ以上の形態のパケッ
トを生成しなければならないテストコード。 DG4 全てのトレース形態に対するld及びld.di命令の
組合を使用して、メモリコントローラーの他のチャンネ
ルをアクセスする。 DG5 データトレースセグメントオフセットアドレスに
対する検査、3ビット及び15ビットアドレスの両方が
データパケットに記録される。 DG6 生成ブロックから出力されるパケットが制御、命
令実行、ループトリガー及び遅延されたロードのシーケ
ンスを維持させなければならないため、連続ループで定
められた時間にコードがそのようなもの等を生成するよ
うに実行させ、シーケンスを検査する。また、それと共
にオーバーフロー条件を生成しようとする。
Appendix VII Example Generation Unit Test Code Scenario DG1 Packet generation for instruction trace, data trace, timing trace, action trace, action point and external signal. These forms of trace must be generated individually and in other combinations. The DG2 RTT generation block can generate control data, instruction execution, loop trigger, and delayed load data packet at a predetermined time. The test code tries to generate such things at the same time. Also check that the generated data packet has no holes. DG3 Test code that has to generate new category packets of any category in each clock cycle and one or more packets in each cycle. DG4 Access other channels of the memory controller using a combination of ld and ld.di instructions for all trace configurations. Check for DG5 Data Trace Segment Offset Address Both 3-bit and 15-bit addresses are recorded in the data packet. Since the packets output from the DG6 generation block must maintain a sequence of control, instruction execution, loop triggers and delayed loads, so that the code will generate them etc. in a defined time in a continuous loop. Run and inspect the sequence. It also tries to generate an overflow condition with it.

【0392】DG7 生成された低/高圧縮パケットの両
方に対して、またトレースがそれらから再生成できるか
を検査する。実行時間に低/高圧縮モードの間をスイッ
チングする。 DG8 デルタエンコーディングは、部分的な命令及びデ
ータアドレスを格納させる。互い異なる部分にマッピン
グされた命令/データを有するテストコードを連続的に
実行させると、これらの部分へのジャンプは、命令/デ
ータで全部6/8ニブルの変化を引き起こす。生成され
た全てのパケットは、完全な24/32ビットアドレス
を持たなければならない。これをまたインタラプト生成
と組合して使用する。 DG9 完全な24及び32ビット間接ジャンプ及びロー
ドに対して、IAパケットと共に同一の周期でSEGSTARTを
生成する。同一の周期でSEGSTART及びインタラプトを発
生させると、ISR内の第1の命令は、完全な24/32ビ
ットアドレス変化を有する間接ジャンプ/ロード/格納で
ある。 DG10 セグメント毎に指定された命令制限値をもって
コードを実行させようとする。それぞれの命令制限値上
で、トレースの新しいセグメントが始まらなければなら
ない。その間にまたRTTを非イネーブルとし、これも新
しいセグメントを開始するようにする。それぞれの命令
実行は、新しいセグメントが開始するようにするため
に、命令制限値を1まで減少させることができる。 DG11 指定されたバッファサイズに対して、バッファ
オーバーフローを引き起こすテストコードを連続的に実
行させる。それぞれのオーバーフローに対して新しいセ
グメントの消去が始まらなければならない。バッファサ
イズを最小値まで減少させれば、各オーバーフローが消
去される時、新しいトレースセグメントを生成する。 DG12 コードが実行中の時、トレースの新しいセグメ
ントを生成するために、外部信号を使用する。
DG7 Check for both low / high compression packets generated and if traces can be regenerated from them. Switch between low / high compression modes at run time. DG8 Delta encoding allows partial instruction and data addresses to be stored. When running test code with instructions / data mapped to different parts continuously, jumps to these parts cause a total of 6/8 nibbles change in the instructions / data. All packets generated must have the full 24/32 bit address. It is also used in combination with interrupt generation. DG9 Generates a SEGSTART in the same cycle with an IA packet for full 24 and 32 bit indirect jumps and loads. When SEGSTART and interrupt are generated in the same cycle, the first instruction in the ISR is an indirect jump / load / store with a complete 24/32 bit address change. DG10 Attempt to execute code with the instruction limit value specified for each segment. On each instruction limit, a new segment of trace must start. In the meantime, it also disables RTT, which also starts a new segment. Each instruction execution can reduce the instruction limit value to 1 to start a new segment. DG11 The test code that causes a buffer overflow is continuously executed for the specified buffer size. Erasure of a new segment must start for each overflow. Decreasing the buffer size to a minimum value will create a new trace segment when each overflow is cleared. When the DG12 code is running, it uses an external signal to generate a new segment of the trace.

【0393】DG13 コードが実行中の時、新しいトレ
ースセグメントを生成するために、命令レジスタを使用
する。また、RTTをイネーブル及び非イネーブルとする
ことで、セグメントを生成する。 DG14 RTTをトリガーさせ、命令トレースをイネーブ
ルにすることで、新しいセグメントを生成し、また、こ
れを遂行するためにフィルターを使用する。このような
方法を使用する時には、バッファサイズを減少させ、命
令制限値を最小値まで減少させる。新しいセグメントを
開始するために、外部信号を使用しようと試みる。これ
は、非イネーブルになった後、イネーブルにし、その次
にトリガーさせるか、又は同時にイネーブル及びトリガ
ーさせることにより達成することができる。 DG15 遅延スロットで命令が実行される時、前述した
全ての方法を使用して新しいセグメントを生成する。ま
た、遅延スロット命令が実行される時、RTTを非イネー
ブルとする。 DG16 他のトレース形態をダイナミックにイネーブル
/非イネーブルとするように、書き込む。 DG17 データトレースに対しても、上記の全ての新し
いセグメント生成方法を生成する。 DG18 ループの終端で分岐を有し、BCBPCオーバーフ
ローとLPPCカウンタオーバーフローを発生させるコード
を書き込む。 DG19 他の周期でもまた生成される新しいセグメント
とインタラプト、または命令アドレスを同一の周期で生
成するコードを連続的に実行させる。新しいセグメント
が同一の周期で生成されないならば、命令アドレスは、
SEGSTARTに記録された命令アドレスを使用しなければな
らない。データトレースに対しても同一に繰り返す。[D
G9]
When the DG13 code is executing, it uses the instruction register to generate a new trace segment. A segment is generated by enabling and disabling RTT. Trigger the DG14 RTT and enable instruction trace to create a new segment and also use a filter to accomplish this. When using such a method, the buffer size is reduced and the instruction limit value is reduced to the minimum value. Attempts to use an external signal to start a new segment. This can be accomplished by disabling and then enabling and then triggering, or simultaneously enabling and triggering. When an instruction is executed in the DG15 delay slot, it creates a new segment using all the methods described above. It also disables RTT when a delay slot instruction is executed. DG16 Dynamically enable other trace configurations
/ Write to disable. For the DG17 data trace, generate all the above new segment generation methods. It has a branch at the end of DG18 loop and writes the code that causes BCBPC overflow and LPPC counter overflow. DG19 Interrupts a new segment that is also generated in another cycle, or continuously executes a code that generates an instruction address in the same cycle. If new segments are not generated in the same cycle, the instruction address is
The instruction address recorded in SEGSTART must be used. Repeat for the data trace. [D
G9]

【0394】DG20 条件付き/無条件、順次分、ジャ
ンプ、ループ、短い/遠いジャンプ、直接/間接ジャンプ
及びこれらの命令の他の最悪-場合の組合を遂行するテ
ストコードを使用して命令トレースを生成する。 DG21 後方向条件付き分岐命令(BCBPC)のためのPF及
びカウンタ値のパケットの両方を、コードを使用して生
成する。 DG22 BCBPCのためのカウンタ方法と、その間のルー
プを使用し、IA、PF、DATASRSPEC、LPTRIG、他の全ての
パケット形態を生成し、BCBPCループにさらにリターン
させる。 DG23 BCBPC命令で、カウンタが決して更新されない
条件を検査する。すなわち前記条件は、第1の瞬間にフ
ェイルすることになる。DG22で具現。 DG24 他の制御パケット生成と結合されたこのような
BCBPCカウンタに対する最大オーバーフローと、タイマ
ーなどのような他のカウンタオーバーフローを発生させ
る。 DG25 ネストされたループの多数レベルを生成し、こ
れら内の分岐及びゼロオーバーヘッドループを使用。 DG26 各命令実行に対して、バッファサイズまたは命
令制限値/セグメントを減少させることによって、新し
いセグメントを生成し、BCBIを使用してカウンタオーバ
ーフローと、第1の実行上でのフェイルを生成し、且つ
これらの間にIA、PF、DATA SRSPEC、LPTRIGパケットを
生成する。 DG27 BCBIループ及びカウンタ/PF方法で、インタラ
プトを発生させる。 DG28 BCBIループ内で、一つのセグメントと、同一の
周期内でBCBPC、LPPCパケット中のひとつを生成する。 DG29 ゼロオーバーヘッドループに対する全てのBCBI
カバレッジ場合を繰り返す。 DG30 SEGSTARTSと共に、全てのオーバーフロー、SIC
OV、BCBPCOV、LPPCOV、TSOVを生成する。
DG20 Instruction trace using conditional / unconditional, sequential minutes, jumps, loops, short / far jumps, direct / indirect jumps and other worst-case combination of these instructions. To generate. DG21 Generate both PF and counter value packets for backward conditional branch instruction (BCBPC) using code. Use the counter method for DG22 BCBPC and the loop in between to generate IA, PF, DATASRSPEC, LPTRIG, and all other packet forms and return further to the BCBPC loop. DG23 BCBPC instruction checks the condition that the counter is never updated. That is, the condition fails at the first moment. Implemented with DG22. DG24 Such as combined with other control packet generation
Causes maximum overflow for BCBPC counters and other counter overflows such as timers. DG25 Generate multiple levels of nested loops and use branches and zero overhead loops within them. DG26 For each instruction execution, create a new segment by decreasing the buffer size or instruction limit / segment, use BCBI to generate a counter overflow and fail on the first execution, and Between these, IA, PF, DATA SRSPEC and LPTRIG packets are generated. DG27 BCBI Loop and counter / PF method to generate interrupt. In the DG28 BCBI loop, one segment and one of BCBPC and LPPC packets are generated in the same cycle. DG29 All BCBI for zero overhead loop
Repeat coverage case. With DG30 SEGSTARTS, all overflows, SICs
Generate OV, BCBPCOV, LPPCOV, TSOV.

【0395】DG31 BCBPC/LPPCカウント値を生成し、
かつこれら間のDLDDを生成するが、カウンタは、DLDDパ
ケットが入力される時、リセットされなければならな
い。LPPCと共にBCBPCOVパケットを生成し、その逆にも
生成する。また、BCBPC及びLPCCカウンタ値を両方とも
消去させようとする。 DG32 アドレス空間(メモリ及び補助レジスタ)にまた
依存し、データアドレス及びデータ値に対するトレース
を発生させる。(メモリ/補助及び特定レジスタからまた
はここにLD/ST)。(DATA/DLDD/SRSPECパケット)。静的な
/ダイナミックなイネーブルを使用するか使用せず、USE
R/PKT_CTLレジスタに書き込むことによってSRSPECを生
成する。命令イネーブルを使用するか使用せず、LPSTAR
T/LPENDに書き込む。 DG33 データトレースと一緒データフィルターを使用
し、データパケット内のセグメント命令で、生成された
全てのパケット(DATA/DLDD/SRSPECパケット)に対してト
レースが生成されることができるかを検査する。 DG34 データパケットに対するセグメント命令オフセ
ットがイネーブルされる時、同一の周期でSEGSTART及び
DATAまたはSRSPECまたはINTを生成しようとする。 DG35 タイムスタンプを有するか有しないイベントト
レースを生成するために、外部信号及びアクションポイ
ントを使用する。命令とデータトレースと共にイベント
トレースを結合。 DG36 命令及び遅延ロードデータのためのタイムスタ
ンプ、イベント(ap、ext信号、インタラプト及びSEGSTA
RTS)を生成するために、命令及びイベントタイミング
トレースを使用する。より頻繁なSEGSTARTSがこのよう
なトレースと共に生成されるように、バッファサイズを
減少させる(またはSR命令を使用)。タイムスタンプオー
バーフローを発生させるために、これを連続的に実行さ
せる。同一の周期でオーバーフロー及びイベントを生成
しようとする。 DG37 タイミングトレースがイネーブルされた状態
で、いかなるストールパケットも生成されないテストコ
ードを実行する。 DG38 ステージR1がタイムスタンプオーバーフロー
を記録し、同時にバッファオーバーフローが発生してタ
イムスタンプオーバーフローが記録されない状況を生成
する。 DG39 イベントタイミングトレースと共に命令-タイ
ミングトレースをイネーブルにすることで、ストールパ
ケットを生成する。ストールオーバーフローを生成しよ
うとし、同時にデセイブル/イネーブル命令トレースを
ダイナミックに生成しようとする。ストールオーバーフ
ロー/ストールパケットと共にINT及び多数のSEGSTARTS
を生成する。また、ストールパケットが生成される時、
外部イベントをトリガーしようとする。ストール/オー
バーフローパケットが生成される時、BCBPCOV、LPPCO
V、TSOVを生成する。また、ストール生成と共に他の全
ての形態のパケットを生成する。
Generate a DG31 BCBPC / LPPC count value,
And while generating a DLDD between them, the counter must be reset when a DLDD packet is input. It creates a BCBPCOV packet with LPPC and vice versa. It also attempts to erase both the BCBPC and LPCC counter values. It also relies on the DG32 address space (memory and auxiliary registers) to generate traces for data addresses and data values. (LD / ST from memory / auxiliary and special registers or here). (DATA / DLDD / SRSPEC packet). Static
/ USE with or without dynamic enable
Generate SRSPEC by writing to the R / PKT_CTL register. LPSTAR with or without instruction enable
Write to T / LPEND. Use a data filter with the DG33 data trace to check if a segment instruction in a data packet can generate a trace for every packet generated (DATA / DLDD / SRSPEC packets). When segment command offset for DG34 data packet is enabled, SEGSTART and
Try to generate DATA or SRSPEC or INT. Use external signals and action points to generate event traces with or without DG35 time stamps. Combine event traces with instruction and data traces. DG36 Timestamps for instructions and lazy load data, events (ap, ext signals, interrupts and SEGSTA
RTS) to generate instruction and event timing traces. Reduce the buffer size (or use the SR instruction) so that more frequent SEGSTARTS are generated with such traces. This is done continuously to generate a timestamp overflow. Attempts to generate overflows and events in the same cycle. DG37 Run test code with no stall packets generated with timing trace enabled. DG38 Stage R1 records a timestamp overflow, and at the same time creates a situation where a buffer overflow occurs and no timestamp overflow is recorded. DG39 Generate stall packets by enabling instruction-timing traces with event timing traces. Attempts to generate a stall overflow and at the same time dynamically generates a disable / enable instruction trace. INT and multiple SEGSTARTS with stall overflow / stall packets
To generate. Also, when a stall packet is generated,
Try to trigger an external event. BCBPCOV, LPPCO when stall / overflow packets are generated
Generate V, TSOV. In addition to the stall generation, all other types of packets are generated.

【0396】DG40 SICOVパケットと共に、同一周期
及びその以前周期でPC値を提供する他の全てのパケット
を生成する。また、PC値を生成しないパケットを生成す
る。 DG41 次の理由によってストール及びオーバーフロー
を生成する。ベチ遅延(例えば、I-キャッシュ損失)、ロ
ード-使用、ロード-リターン(ただ3ポートレジスタフ
ァイル/4ポートレジスタファイルと共に)、ロード/格
納待ち行列 フル、マルチ-周期命令、依存度(例えば、
非−短縮レジスタ、条件付きジャンプ/分岐を伴うフラ
ッグセッティング等)、インタラプト、長い-近接デー
タ、中止された遅延-スロット命令、拡張命令、ブレー
キ命令またはアクションポイントトリガー、単一-段階
や命令-段階モードにあるプロセッサ。他の全ての制御
パケットによりストールオーバーフローをまた生成す
る。 DG42 単一/多数のタイムスタンプオーバーフローが
生成された後にだけ、同一周期でのバッファオーバーフ
ローを通じてタイムスタンプオーバーフローを生成した
り、バッファオーバーフローを消去させる。これは、タ
イムスタンプオーバーラン(overrun)を生成しなければ
ならない。また、タイムスタンプオーバーフローと共に
全ての制御パケットを生成する。 DG43 同一周期でSEGSTART、命令トレースダイナミッ
クイネーブル、外部信号イベント、アクションポイント
及びタイムスタンプオーバーフローを生成する。パケッ
トの順序は、生成ブロックにより維持される。連続的な
ループで実行。 DG44 RTTをイネーブルにし、一つの命令をも実行さ
れずに、RTTを使用不可にする。いかなるセグメント開
始も生成されてはならない。 DG45 RTTイネーブルが1である状態で、トリガーを
1とする。SEGSTARTは、REASON_TRIGGEREDのような理
由を持たなければならない。トリガーが1であり、イネ
ーブルが1になった時には同様である。 DG46 トリガーが'0'であり、RTTイネーブルが'0'
から'1'に変わった時、REASON_ENABLEDが生成されな
ければならない。 DG47 REASON_BUF_OV_CLR_AND_TRIGGERED、REAS
ON_BUF_OV_CLRをSEGSTARTに対する理由として生成す
る。 DG48 同一の周期で8個の可能なSEGSTART理由の全部
又はその一部を生成し、優先順位が維持されることを観
測する。
With the DG40 SICOV packet, generate all other packets that provide the PC value in the same cycle and the previous cycle. It also creates a packet that does not create a PC value. DG41 Stalls and overflows are generated for the following reasons. Solid delay (eg I-cache loss), load-use, load-return (only with 3 port register file / 4 port register file), load / store queue full, multi-cycle instruction, dependency (eg,
Non-shortened registers, flag settings with conditional jumps / branches, etc.), interrupts, long-proximity data, aborted delays-slot instructions, extension instructions, brake instructions or action point triggers, single-stage or instruction-stage Processor in mode. It also creates a stall overflow with all other control packets. DG42 Only after a single / multiple timestamp overflow is generated, a timestamp overflow is generated or a buffer overflow is erased through a buffer overflow in the same cycle. This should generate a timestamp overrun. Also, all control packets are generated with time stamp overflow. DG43 SEGSTART, instruction trace dynamic enable, external signal event, action point and timestamp overflow are generated in the same cycle. The order of the packets is maintained by the production block. Run in a continuous loop. DG44 Enable RTT, disable RTT without executing any instruction. No start of segment should be generated. Set the trigger to 1 while the DG45 RTT enable is 1. SEGSTART must have a reason such as REASON_TRIGGERED. The same applies when the trigger is 1 and the enable is 1. DG46 Trigger is "0" and RTT enable is "0".
When changing from '1' to '1', REASON_ENABLED must be generated. DG47 REASON_BUF_OV_CLR_AND_TRIGGERED, REAS
Generate ON_BUF_OV_CLR as the reason for SEGSTART. DG48 Generate all or part of the eight possible SEGSTART reasons in the same cycle and observe that priority is maintained.

【0397】DG49 他のパケットを連続的に生成する
ためにテストコードを使用し、パケットが相変らず生成
ブロック内で係留中の時、RTTを非イネーブルにする。
生成ブロックに係留中の全てのパケットは、フラッシュ
されなければならないし、その後、SEGSTARTパケットが
生成されなければならない。いかなる場合にも、SEGSTA
RTは、損失されてはならない。また、DATAトレース及び
タイミングトレースに対しても同一に繰り返す。 DG50 SEGSTARTパケットがRTTを非イネーブルにする
ことは別の全ての可能な理由で生成されるべきテストコ
ードを連続的なループで実行する。このようなテストコ
ードは、次のような場合を有すること: DG50-1 全てのSEGSTART理由後、いかなる遅延スロ
ット命令も無い。 DG50-2 全てのSEGSTART理由後の遅延スロット命
令。 DG50-3 SEGSTART後の多数の遅延スロット命令。 DG50-4 SEGSTART理由後のインタラプト。 DG50-5 SEGSTART理由後の遅延スロットで可能なイ
ンタラプト。 DG50-6 遅延スロットにない命令やインタラプトを
伴う遅延スロット内の多数の命令。 DG50-7 SEGSTART後の遅延スロット内のlimm。 DG51 全ての外部信号パケットが生成されないよう
に、多数の外部信号トリガーを連続的に生成する。 DG52 同一周期での他の制御パケット生成を使用する
か使用せずに多数のアクションポイントパケットを生成
する。また、APEパケットが連続的に生成されることよ
り早くアクションポイントイベントを生成する。 DG53 同一周期での他の制御パケットを使用するか使
用せずに多数のタイムスタンプオーバーフローを生成す
る。
DG49 Use test code to continuously generate other packets, disabling RTT when packets are still moored in the generate block.
All packets moored to the production block must be flushed and then a SEGSTART packet must be produced. In any case, SEGSTA
RT must not be lost. The same is repeated for the DATA trace and the timing trace. DG50 SEGSTART packet disabling RTT runs test code in a continuous loop to be generated for all other possible reasons. Such a test code shall have the following cases: DG50-1 There is no delay slot instruction after every SEGSTART reason. DG50-2 Delay slot instruction after all SEGSTART reasons. DG50-3 Many delay slot instructions after SEGSTART. DG50-4 Interrupt after SEGSTART reason. DG50-5 Interrupt possible in delay slot after SEGSTART reason. DG50-6 A large number of instructions that are not in the delay slot or are in a delay slot with interrupts. DG50-7 Limm in delay slot after SEG START. DG51 A large number of external signal triggers are continuously generated so that all external signal packets are not generated. DG52 Generates a large number of action point packets with or without other control packet generation in the same cycle. Also, the action point event is generated earlier than the APE packets are continuously generated. DG53 Generates multiple timestamp overflows with or without other control packets in the same cycle.

【0398】DG54 第1のセグメントでLPSTART及びL
PEND信号が記録されるように、ゼロオーバーヘッドルー
プコードを連続的に実行し、同一のセグメント内で数回
ループを形成するようにそのコードを実行する。他の新
しいセグメントで続いてループを連続させるが、これが
LPTRIGパケットを生成しなければならない。また、ルー
プトリガー及びSEGSTARTが同一周期で発生するさらに他
のゼロオーバーヘッドループメカニズムを実行する。LP
ENDが第1のセグメントに記録され、LPSTARTが次にセグ
メントに記録されたり、またその逆に記録される時、同
一に繰り返す。 DG55 状態レジスタ機能テスト。 DG56 RTT_PKT_CTLレジスタ機能テスト。 DG57 FTモードでRTTをテスト。 DG58 全ての形態のパケットに対して他のパケットサ
イズを生成及びカバーするテストコードを書き込む。 DG59 ステージr3、r2及びr1にパケットが存在す
る時、バッファオーバーフローを引き起こし、生成ブロ
ックで検出された一部のパケットを有するコードを書き
込む。このような全てのものは、廃棄されなければなら
ない。また、バッファオーバーフローが生成された後、
パケット生成を継続し、これらのパケットも廃棄されな
ければならない。 DG60 同一の周期でバッファオーバーフロー消去及び
他の全てのパケットを生成する。そして、同一の周期で
多数のパケットをまた生成する。また、パケットのカテ
ゴリーによってオーバーフロー瞬間に他のパケットを生
成する。 DG61 またパケットパイプラインが空いている時、オ
ーバーフローが消去されるように、バッファ臨界値を変
え、同一の周期で全体及び多数のパケットを生成する。
DG54 LPSTART and L in the 1st segment
The zero overhead loop code is executed serially so that the PEND signal is recorded and then executed several times to form a loop within the same segment. Continue the loop with another new segment, but this is
Must generate LPTRIG packet. It also implements another zero overhead loop mechanism in which the loop trigger and SEGSTART occur in the same cycle. LP
The same repeats when END is recorded in the first segment and LPSTART is recorded in the next segment and vice versa. DG55 Status register functional test. DG56 RTT_PKT_CTL register functional test. Test RTT in DG57 FT mode. DG58 Write test code to generate and cover other packet sizes for all packet types. DG59 When there are packets in stages r3, r2 and r1, it causes a buffer overflow and writes code with some packets detected in the generated block. All such things must be discarded. Also, after the buffer overflow is generated,
Packet generation must continue and these packets must also be dropped. DG60 Eliminate buffer overflow and generate all other packets in the same cycle. Then, a large number of packets are generated again in the same cycle. Also, depending on the packet category, another packet is generated at the instant of overflow. DG61 In addition, the buffer critical value is changed so that the overflow is erased when the packet pipeline is empty, and the whole and many packets are generated in the same cycle.

【0399】付録VIII 例示的なバッファ/パケットポートテストコードシナリ
DB1 最大/最小値から勧告される値にバッファのサイ
ズを変え、他のユーザーが構成可能なバッファオーバー
フローシナリオ(オーバーフロー状態で、バッファ放出
のためにキャプチャーを直ちに消去したり非イネーブル
とする)と共に生成ブロックからの最大出力のための処
理量を獲得する。パケットを生成するために低/高圧縮
を両方とも使用する。バッファオーバーフローインタラ
プトを処理すべきテストコードを実行し、また頻繁なイ
ンタラプト生成をテストし、それと同一に処理する。 DB2 レジスタアレイの幅/深さを変更させるために、
パケットパイプラインを構成し、開発されたテストコー
ドを実行する。 DB3 頻繁なオーバーフローが発生するように、バッフ
ァサイズを減少させる。 DB4 パケットを7またはこれより小さいニブル幅で、
毎周期にひとつ及び毎周期に4個を連続的に生成する。 DB5 パケットを8ニブル幅で、毎周期にひとつ及び毎
周期に4個を連続的に生成する。 DB6 パケットを9ニブル以上の幅で、毎周期にひとつ
及び毎周期に4個を連続的に生成する。 DB7 全てのカテゴリーの最大サイズのパケットを各周
期にひとつ、そして同一の周期にこれらのうち4個を連
続的に生成する。 DB8 パイプラインに進入する時、全てのパケット部分
を占有しないように、パケットを生成する。パイプライ
ンは、その部分をありのままにパスさせなければならな
いが、ポートは、その部分から不必要なビットを除去し
なければならない。 DB9 続いて何らのデータをも印加しない。すなわち全
部ゼロを印加する。
Appendix VIII Example Buffer / Packet Port Test Code Scenario DB1 Resize buffer from maximum / minimum to recommended value and generate with other user configurable buffer overflow scenarios (captures are immediately erased or de-enabled to overflow buffer in overflow conditions) Get the throughput for the maximum output from the block. Uses both low / high compression to generate packets. Run test code that should handle buffer overflow interrupts, and test frequent interrupt generations and treat them the same. To change the width / depth of the DB2 register array,
Configure the packet pipeline and execute the developed test code. DB3 Reduce the buffer size so that frequent overflows occur. DB4 packets with a nibble width of 7 or less,
One is generated every cycle and four pieces are continuously generated every cycle. The DB5 packet has a width of 8 nibbles, one for each cycle and four for each cycle. DB6 packets with a width of 9 nibbles or more are continuously generated, one per cycle and four per cycle. DB7 One maximum size packet for all categories is generated in each cycle, and four of these are continuously generated in the same cycle. When entering the DB8 pipeline, create a packet so that it does not occupy all packet parts. The pipeline must pass the part as it is, but the port must remove unnecessary bits from the part. DB9 Then, no data is applied. That is, all zeros are applied.

【0400】DB10 7個の周期に対して1周期毎にSE
GSTARTSを生成する。 DB11 全てのパケットがカバーされる時まで、2、3
の他のカテゴリーパケットを有するSEGSTARTが同一の方
式で他の制御カテゴリーパケットをまた結合する。 DB12 3個の連続的なゼロニブルと3個以上の連続的
なゼロニブルを有するパケットを生成し、パケットを詰
める大部分の可能なニブルをまた生成しようとする。 DB13 出力されるパケットシーケンスが維持されなけ
ればならないし、同一の周期での他のパケットカテゴリ
ーを変更する。 DB14 FIFOをフルとした後、データを損失することな
く放出するか、正確な臨界値でデータを受け入れるかを
検査する。 DB15 間に任意の他の制御カテゴリーパケット無し
に、32個以上連続的に生成されたIE及びDLDDパケット
によるパケットパイプラインのカウンタがオーバーフロ
ーする場合を書き込む。
DB10 SE for every 7 cycles
Generate GSTARTS. DB11 2,3 until all packets are covered
SEGSTART with other category packets of the same also combines other control category packets in the same manner. DB12 Generates a packet with 3 consecutive zero nibbles and 3 or more consecutive zero nibbles, and also tries to generate most possible nibbles that pack the packet. DB13 The output packet sequence must be maintained, changing other packet categories in the same cycle. After the DB14 FIFO is full, test whether to release the data without loss or accept the data with the correct critical value. Write the case where the counter of the packet pipeline overflows with 32 or more IE and DLDD packets continuously generated without any other control category packet between DB15.

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

【図1】本発明によってプロセッサコアとRTTユニット
を具備する集積回路デバイスの一つの例示的な構造を示
す機能ブロック図である。
FIG. 1 is a functional block diagram illustrating one exemplary structure of an integrated circuit device including a processor core and an RTT unit according to the present invention.

【図2】本発明によってデータトレース情報を格納する
ためのもので、内部ホスト格納装置が提供された装置の
例示的な一実施形態を示す機能ブロック図である。
FIG. 2 is a functional block diagram illustrating an exemplary embodiment of an apparatus provided with an internal host storage device for storing data trace information according to the present invention.

【図3】本発明によってデータトレース情報を格納する
ためのもので、外部格納装置が仲介デバイス内に提供さ
れた装置の第2の例示的な実施形態を示す機能ブロック
図である。
FIG. 3 is a functional block diagram illustrating a second exemplary embodiment of an apparatus for storing data trace information according to the present invention, in which an external storage device is provided in an intermediary device.

【図4】本発明によってデルタエンコードを使用するト
レース圧縮の一般的な方法論を示す論理フローチャート
である。
FIG. 4 is a logical flow chart illustrating a general methodology for trace compression using delta encoding in accordance with the present invention.

【図5】aは、本発明に係るパケット形態のエンコード
(第1のニブル)の一実施形態をグラフィックで表現し
た図であり、bは、本発明に係るパケット形態のエンコ
ード(第2のニブル)の一実施形態をグラフィックで表現
した図である。
FIG. 5a is a packet form encoding according to the present invention.
FIG. 3 is a graphic representation of an embodiment of a (first nibble), and b is a graphic representation of an embodiment of a packet form encoding (second nibble) according to the present invention.

【図6】aは、条件付き/無条件の分岐、ジャンプ及び
他の動作に関する本発明の最大圧縮同期命令トレースの
動作を示す図であり、bは、条件付き/無条件の分岐、ジ
ャンプ及び他の動作に関する本発明の外部モニター同期
命令トレースの動作を示す図である。
FIG. 6a is a diagram showing the operation of the maximum compression synchronous instruction trace of the present invention with respect to conditional / unconditional branch, jump and other operations, and b is conditional / unconditional branch, jump and FIG. 8 is a diagram showing the operation of the external monitor synchronization instruction trace of the present invention regarding other operations.

【図7】本発明によってプロセッサコアとRTTユニット
を具備する集積回路デバイスの第2の例示的な構造を示
す機能ブロック図である。
FIG. 7 is a functional block diagram showing a second exemplary structure of an integrated circuit device including a processor core and an RTT unit according to the present invention.

【図8】aは、本発明のRTT構造のパケットパイプライ
ンの第1の実施形態を示す機能ブロック図であり、b
は、本発明のRTT構造のパケットパイプラインの第2の
実施形態を示す機能ブロック図である。
FIG. 8A is a functional block diagram showing a first embodiment of a packet pipeline having an RTT structure according to the present invention;
FIG. 6 is a functional block diagram showing a second embodiment of the RTT structure packet pipeline of the present invention.

【図9】本発明に係る一つの例示的なパケットパイプラ
インFIFO装置を示す機能ブロック図である。
FIG. 9 is a functional block diagram illustrating one exemplary packet pipeline FIFO device according to the present invention.

【図10】本発明に係る一つの例示的なパケット部の配
列をグラフィックで表現した図である。
FIG. 10 is a graphic representation of an exemplary arrangement of packet parts according to the present invention.

【図11a】本発明に係る例示的なソフトウェアドライ
バーインターフェースと構成を示す機能ブロック図であ
る。
FIG. 11a is a functional block diagram illustrating an exemplary software driver interface and configuration according to the present invention.

【図11b】本発明のRTTドライバーに用いられるトレ
ースセットを構成するためのダイアローグGUIの例示的
な一実施形態を示す図である。
FIG. 11b is a diagram illustrating an exemplary embodiment of a dialog GUI for configuring a trace set used in the RTT driver of the present invention.

【図11c】フィルタエディターダイアローグGUIの例
示的な一実施形態を示す図である。
FIG. 11c illustrates an exemplary embodiment of a filter editor dialog GUI.

【図11d】本発明のソフトウェアドライバーに用いら
れるコード及び可変ブラウジング(browsing)の例を示
す図である。
FIG. 11d is a diagram showing an example of code and variable browsing used in the software driver of the present invention.

【図11e】本発明のソフトウェアドライバーに用いら
れるコード及び可変ブラウジング(browsing)の例を示
す図である。
FIG. 11e is a diagram showing an example of code and variable browsing used in the software driver of the present invention.

【図11f】トレース結果を分析するための一つの例示
的なGUIを示す図である。
FIG. 11f is a diagram showing one exemplary GUI for analyzing trace results.

【図12】本発明に係る一つの例示的なソフトウェアド
ライバー構造を示す機能ブロック図である。
FIG. 12 is a functional block diagram illustrating one exemplary software driver structure according to the present invention.

【図13】本発明に係る一つの例示的なモニターバス構
造を示す機能ブロック図である。
FIG. 13 is a functional block diagram illustrating one exemplary monitor bus structure according to the present invention.

【図14】本発明に係る一つの例示的なRTTモニターユ
ニット構造を示す機能ブロック図である。
FIG. 14 is a functional block diagram illustrating one exemplary RTT monitor unit structure according to the present invention.

【図15】本発明に係る例示的なモニター結合(たとえ
ば、1対、4対)を示す機能ブロック図である。
FIG. 15 is a functional block diagram illustrating an exemplary monitor combination (eg, 1 pair, 4 pairs) according to the present invention.

【図16】結合されたモニターとダイナミックイネーブ
ルの相互作用を示す機能ブロック図である。
FIG. 16 is a functional block diagram illustrating the interaction of a combined monitor and dynamic enable.

【図17】本発明に係る一つの例示的なパケットポート
構造を示す機能ブロック図である。
FIG. 17 is a functional block diagram illustrating one exemplary packet port structure according to the present invention.

【図18】本発明に係る一つの例示的な“ニブルスタッ
フィング”方法をグラフィックで表現した図面である。
FIG. 18 is a graphical representation of an exemplary “nibble stuffing” method in accordance with the present invention.

【図19】パケットポートクロックの例示的な一実施形
態の動作を示すタイミング図である。
FIG. 19 is a timing diagram illustrating operation of an exemplary embodiment of a packet port clock.

【図20】本発明に係る一つの例示的なテストベンチ装
置の機能ブロック図である。
FIG. 20 is a functional block diagram of one exemplary test bench apparatus according to the present invention.

【図21】本発明のRTTユニットのテストと関連して用
いられる一つの例示的なディレクトリ構造をグラフィッ
クで表現した図である。
FIG. 21 is a graphical representation of one exemplary directory structure used in connection with testing RTT units of the present invention.

【図22】多重プロセッサコアとRTTユニットを具備し
た集積回路デバイスの第2の例示的な構造を示す機能ブ
ロック図である。
FIG. 22 is a functional block diagram illustrating a second exemplary structure of an integrated circuit device including a multiprocessor core and an RTT unit.

【図23】ダイの一般的な配置を示す、図1の集積回路
デバイスの平面図である。
FIG. 23 is a plan view of the integrated circuit device of FIG. 1 showing the general layout of the die.

【図24a】本発明に係るプロセッサからトレースデー
タを獲得する一般的な方法論を示す論理フローチャート
である。
FIG. 24a is a logical flow chart illustrating a general methodology for obtaining trace data from a processor according to the present invention.

【図24b】内部格納モードを使用する図24aの方法
を示す論理フローチャートである。
24b is a logical flow chart illustrating the method of FIG. 24a using internal storage mode.

【図24c】外部格納モードを使用する図24aの方法
を示す論理フローチャートである。
24c is a logical flow chart illustrating the method of FIG. 24a using external storage mode.

【符号の説明】[Explanation of symbols]

100 装置 101 集積回路ディバイス 102 RTTユニット 105 プロセッサコアユニット 107 デバッグポート/インターフェース 109 パケットポート 112 共有バッファ 131 プロセッサコアユニットコア 140 トレースキャプチャユニット 142 モニターユニット 144 生成ユニット 146 制御ユニット 148 アクションポイントトリガー生成器 152 トレース信号 160 外部入力インターフェース 702 RTTユニット 709 パケットポート 712 パケットバッファ 742 モニターユニット 744 生成ユニット 100 devices 101 integrated circuit device 102 RTT unit 105 processor core unit 107 Debug Port / Interface 109 packet port 112 shared buffer 131 processor core unit core 140 Trace capture unit 142 monitor unit 144 generation unit 146 control unit 148 Action Point Trigger Generator 152 Trace signal 160 external input interface 702 RTT unit 709 packet port 712 packet buffer 742 monitor unit 744 generation unit

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/177 678 G06F 15/177 678H 15/78 510 15/78 510K Fターム(参考) 5B042 GA11 GA33 GC08 HH30 MA15 MA19 MC40 5B045 JJ02 JJ08 JJ49 5B048 AA12 BB02 DD08 FF03 5B062 CC01 JJ08 5B083 CC10 ─────────────────────────────────────────────────── ─── Continuation of front page (51) Int.Cl. 7 Identification code FI theme code (reference) G06F 15/177 678 G06F 15/177 678H 15/78 510 15/78 510K F term (reference) 5B042 GA11 GA33 GC08 HH30 MA15 MA19 MC40 5B045 JJ02 JJ08 JJ49 5B048 AA12 BB02 DD08 FF03 5B062 CC01 JJ08 5B083 CC10

Claims (60)

【特許請求の範囲】[Claims] 【請求項1】 複数の命令を実行するように適用され
る、少なくとも一つのデジタルプロセッサコアと、 前記命令のうち、少なくとも一部の実行に関連して前記
少なくとも一つのプロセッサから複数のデータを受信
し、それに関連する複数のデータパケットを生成するよ
うに適用される、少なくとも一つのトレースユニット
と、 前記少なくとも一つのトレースユニットとのデータ通信
を行い、前記複数のパケットのうち少なくとも一部を格
納するように適用された、少なくとも一つの格納ディバ
イスと、 前記少なくとも一つの格納ディバイスとのデータ通信を
行い、前記データパケットのうち少なくとも一部を一つ
の処理ディバイスに伝送するように構成される少なくと
も一つのポートとを含む装置。
1. At least one digital processor core adapted to execute a plurality of instructions, and receiving a plurality of data from the at least one processor in connection with execution of at least some of the instructions. And at least one trace unit adapted to generate a plurality of data packets associated therewith, perform data communication with the at least one trace unit, and store at least a portion of the plurality of packets. And at least one storage device adapted to perform data communication with the at least one storage device and transmit at least a portion of the data packet to one processing device. A device that includes a port and.
【請求項2】 前記プロセッサコアは、少なくとも一つ
の拡張命令を有するパイプライン型縮小命令セット・コ
ンピュータ(RISC)を含み、前記命令のうち少なくとも一
部は、前記少なくとも一つの拡張命令を含む請求項1に
記載の装置。
2. The processor core includes a pipelined reduced instruction set computer (RISC) having at least one extension instruction, and at least some of the instructions include the at least one extension instruction. 1. The device according to 1.
【請求項3】 前記コアプロセッサコア、トレースユニ
ット、及び格納ディバイスは、単一集積回路ダイを含む
請求項1に記載の装置。
3. The apparatus of claim 1, wherein the core processor core, trace unit, and storage device include a single integrated circuit die.
【請求項4】 前記複数のデータパケットは、データ圧
縮技術を使用して少なくとも一部が圧縮される請求項1
に記載の装置。
4. The data packets are at least partially compressed using a data compression technique.
The device according to.
【請求項5】 前記圧縮技術は、前記データのデルタ・
エンコーディング(delta-encoding)を含む請求項4に記
載の装置。
5. The compression technique comprises:
The apparatus according to claim 4, including an encoding (delta-encoding).
【請求項6】 前記圧縮技術は、前記データの可変サイ
ズエンコーディングを含む請求項4に記載の装置。
6. The apparatus of claim 4, wherein the compression technique comprises variable size encoding of the data.
【請求項7】 ランダムアクセスメモリー(RAM)と、 前記RAMと前記少なくとも一つのプロセッサコアとに作
動的に接続されるメモリーコントローラとをさらに含
み、 前記RAMは前記複数の命令の中から少なくとも一部を格
納する請求項1に記載の装置。
7. A random access memory (RAM), and a memory controller operatively connected to the RAM and the at least one processor core, the RAM being at least a portion of the plurality of instructions. The apparatus of claim 1, wherein the apparatus stores:
【請求項8】 前記少なくとも一つのトレースユニット
は、 前記少なくとも一つのプロセッサコアとのデータ通信を
行い、プロセッサコアのトレースデータを観測してキャ
プチャーするように適用された、少なくとも一つのキャ
プチャーユニットと、 前記少なくとも一つのキャプチャーユニットから前記ト
レースデータを受信し、これをフィルターリングするよ
うに適用された、少なくとも一つのモニターユニット
と、 前記少なくとも一つのモニターユニットからデータを受
信し、前記少なくとも一つのトレースユニットからの伝
送のための前記データパケットを生成するように適用さ
れた、少なくとも一つの生成ユニットとを含む請求項1
に記載の装置。
8. The at least one trace unit is adapted to perform data communication with the at least one processor core, and to observe and capture trace data of the processor core. At least one monitor unit adapted to receive the trace data from the at least one capture unit and filter the trace data; and receive the data from the at least one monitor unit, the at least one trace unit At least one generating unit adapted to generate the data packet for transmission from
The device according to.
【請求項9】 複数のデジタルプロセッサコアとして、
これらのうち少なくとも二つのコアはこれらの間に関連
したトレースユニットを有する複数のデジタルプロセッ
サと、 第1ポートと、 前記少なくとも二つのトレースユニットと前記第1ポー
トとのデータ通信を行う仲裁ユニットを含む第1インタ
ーフェースユニットとして、前記仲裁ユニットは前記ト
レースユニットの間で前記第1ポートに対するアクセス
を仲裁するように適用された、第1インターフェースユ
ニットを含むデータ処理装置。
9. The plurality of digital processor cores,
At least two of these cores include a plurality of digital processors having trace units associated between them, a first port, and an arbitration unit for performing data communication with the at least two trace units and the first port. As the first interface unit, the data processing device including the first interface unit, wherein the arbitration unit is adapted to arbitrate access to the first port between the trace units.
【請求項10】 前記第1インターフェースユニットは
共有バッファをさらに含み、前記共有バッファは前記第
1ポートと前記仲裁ユニットとのデータ通信を行い、前
記共有バッファは前記トレースユニットにより生成され
た複数のデータパケットを格納するように適用された、
請求項9に記載のデータ処理装置。
10. The first interface unit further includes a shared buffer, the shared buffer is in data communication between the first port and the arbitration unit, and the shared buffer is a plurality of data generated by the trace unit. Applied to store packets,
The data processing device according to claim 9.
【請求項11】 前記プロセッサコアとのデータ通信を
行う第2インターフェースユニットと、 前記第2インターフェースユニットとのデータ通信を行
う第2ポートとをさらに含み、 前記第2ポートとインターフェースユニットは、前記プ
ロセッサコアと外部ホストコンピューターとの間でデー
タを伝達するように動作する請求項9に記載のデータ処
理装置。
11. The system further includes a second interface unit for performing data communication with the processor core, and a second port for performing data communication with the second interface unit, wherein the second port and the interface unit are the processor. The data processing device of claim 9, which is operative to transfer data between the core and an external host computer.
【請求項12】 前記プロセッサコアとのデータ通信を
行う第2インターフェースユニットと、 前記第2インターフェースユニットとのデータ通信を行
う第2ポートをさらに含み、 前記第2ポートとインターフェースユニットは、前記プ
ロセッサコアと外部ホストコンピューターとの間でデー
タの伝達を行うように動作する請求項10に記載のデー
タ処理装置。
12. The system further comprises a second interface unit for performing data communication with the processor core, and a second port for performing data communication with the second interface unit, wherein the second port and the interface unit are the processor cores. 11. The data processing device according to claim 10, which operates to transfer data between the computer and an external host computer.
【請求項13】 前記共有バッファは、前記第1ポート
を介して外部キャプチャーディバイスにリアルタイムに
パケットを放出する請求項10に記載のデータ処理装
置。
13. The data processing apparatus according to claim 10, wherein the shared buffer emits packets in real time to an external capture device via the first port.
【請求項14】 前記それぞれのトレースユニットは、 関連プロセッサコアとのデータ通信を行い、プロセッサ
コアのトレースデータを観測してキャプチャーするよう
に適用された、少なくとも一つのキャプチャーユニット
と、 前記少なくとも一つのキャプチャーユニットから前記ト
レースデータを受信し、これをフィルターリングするよ
うに適用された、少なくとも一つのモニターユニット
と、 前記少なくとも一つのモニターユニットからデータを受
信し、前記トレースユニットからの伝送のために複数の
パケットを生成するように適用された、少なくとも一つ
の生成ユニットをさらに含む請求項9に記載のデータ処
理装置。
14. The at least one capture unit adapted to perform data communication with an associated processor core to observe and capture trace data of the processor core, and the at least one capture unit. At least one monitor unit adapted to receive the trace data from the capture unit and filter the trace data; and a plurality of data for receiving the trace data from the at least one monitor unit for transmission from the trace unit. 10. The data processing apparatus of claim 9, further comprising at least one generating unit adapted to generate the packets of.
【請求項15】 前記それぞれのトレースユニットは、 関連プロセッサコアとのデータ通信を行い、プロセッサ
コアのトレースデータを観測してキャプチャーするよう
に適用された、少なくとも一つのキャプチャーユニット
と、 前記少なくとも一つのキャプチャーユニットから前記ト
レースデータを受信し、これをフィルターリングするよ
うに適用された、少なくとも一つのモニターユニット
と、 前記少なくとも一つのモニターユニットからデータを受
信し、前記共有バッファへの伝送のために前記仲裁ユニ
ットの少なくとも部分的な制御下で前記データパケット
を生成するように適用された、少なくとも一つの生成ユ
ニットをさらに含む請求項10に記載のデータ処理装
置。
15. Each of the trace units is adapted to perform data communication with an associated processor core and to observe and capture trace data of the processor core, and the at least one capture unit. At least one monitor unit adapted to receive the trace data from a capture unit and filter the trace data; receive data from the at least one monitor unit and transmit the trace data to the shared buffer. The data processing apparatus of claim 10, further comprising at least one generating unit adapted to generate the data packet under at least partial control of an arbitration unit.
【請求項16】 前記第2インターフェースユニットと
通信し、前記プロセッサコアを、前記第2インターフェ
ースユニットを介して前記第2ポートに選択的に接続さ
せるように動作する制御ユニットをさらに含む請求項1
1に記載のデータ処理装置。
16. The control unit further comprising a control unit that communicates with the second interface unit and operates to selectively connect the processor core to the second port via the second interface unit.
1. The data processing device according to 1.
【請求項17】 前記制御ユニットは、少なくとも一つ
の前記プロセッサコアのレジスタを読み取り、かつ書き
込む請求項16に記載のデータ処理装置。
17. The data processing device according to claim 16, wherein the control unit reads and writes at least one register of the processor core.
【請求項18】 前記第2インターフェースユニットと
の通信を行い、前記プロセッサコアを、前記第2インタ
ーフェースユニットを介して前記第2ポートに選択的に
接続させるように動作する制御ユニットをさらに含む請
求項12に記載のデータ処理装置。
18. The control unit further includes a control unit that communicates with the second interface unit and operates to selectively connect the processor core to the second port via the second interface unit. 12. The data processing device according to item 12.
【請求項19】 デジタルプロセッサトレースの少なく
とも一部を表すデータパケットを形成するために、複数
のデータバイトを圧縮する方法であって、 前記複数のデータバイト内で発生する値の第1頻度を表
す第1コーディングを提供するステップと、 前記複数のデータバイト内で発生する値の第2頻度を表
す第2コーディングを提供するステップと、 前記第1及び第2コーディングを使用して前記データパ
ケットを生成して、前記データパケットを圧縮するステ
ップを含み、前記第1及び第2コードは、複数のデータ
ニブルを含む圧縮方法。
19. A method of compressing a plurality of data bytes to form a data packet representing at least a portion of a digital processor trace, the method representing a first frequency of values occurring within the plurality of data bytes. Providing a first coding, providing a second coding that represents a second frequency of values occurring in the plurality of data bytes, and generating the data packet using the first and second codings And compressing the data packet, wherein the first and second codes include a plurality of data nibbles.
【請求項20】 第1及び第2コーディングを提供する
前記ステップは、前記値の予想確率分布を決定するステ
ップを含む請求項19に記載の圧縮方法。
20. The compression method according to claim 19, wherein the step of providing first and second coding comprises determining an expected probability distribution of the values.
【請求項21】 複数のデータバイトを有するトレース
データを処理する方法であって、 複数のデータニブルを有する前記複数のデータバイトを
圧縮するステップとして、(i) 第1値の少なくとも一部
を格納するステップと、 (ii)前記第1値の前記少なくとも一部を以前にエンコー
ドされた第2値に対して参照するステップを含み、 前記少なくとも第1部分は、前記第2値と他のデータニ
ブルだけを含む圧縮ステップと、 前記圧縮データバイトを使用して複数のデータパケット
を形成するステップと、 前記複数のデータパケットを格納ディバイスに格納する
ステップとを含むデータ処理方法。
21. A method of processing trace data having a plurality of data bytes, the method comprising compressing the plurality of data bytes having a plurality of data nibbles, (i) storing at least a portion of a first value. And (ii) referencing the at least a portion of the first value with respect to a previously encoded second value, the at least first portion including the second value and another data nibble. A data processing method comprising: a compressing step including only the above, forming a plurality of data packets using the compressed data bytes, and storing the plurality of data packets in a storage device.
【請求項22】 前記第1及び第2値は、識別可能な命
令アドレスを含む請求項21に記載のデータ処理方法。
22. The data processing method according to claim 21, wherein the first and second values include identifiable instruction addresses.
【請求項23】 前記第1及び第2値は、識別可能なデ
ータアドレスを含む請求項21に記載のデータ処理方
法。
23. The data processing method according to claim 21, wherein the first and second values include identifiable data addresses.
【請求項24】 デジタルプロセッサトレースユニット
内でデータパケットを処理する方法であって、 所定の第1サイズを有する少なくとも一つの第1アドレ
スを提供するステップと、 可変的な第2サイズを有する少なくとも一つの第2アド
レスを提供するステップと、 少なくとも一つの第1パケット内で前記少なくとも一つ
の第1アドレスをエンコーディングするステップとし
て、第1サイズのフィールド値を含む第1アドレスのエ
ンコーディングステップと、 少なくとも一つの第2パケット内で前記少なくとも一つ
の第2アドレスをエンコーディングするステップとし
て、前記第1サイズのフィールド値に等しくないような
第2サイズのフィールド値を含む第2アドレスのエンコ
ーディングステップとを含み、 前記少なくとも一つの第1パケットは、前記第1サイズ
フィールドに基づいてプールパケットとして処理し、 前記少なくとも一つの第2パケットは、前記第2サイズ
フィールドに基づいて部分サイズパケットとして処理す
るデータパケットの処理方法。
24. A method of processing a data packet within a digital processor trace unit, comprising: providing at least one first address having a predetermined first size; and at least one having a variable second size. Providing two second addresses, encoding the at least one first address in at least one first packet, encoding a first address including a field value of a first size, and at least one Encoding the at least one second address in a second packet, the encoding of a second address including a field value of a second size that is not equal to the field value of the first size. One first Packet, the first based on the size field is processed as a pool packet, said at least one second packet, the processing method of the data packet to be processed as a partial size packet based on the second size field.
【請求項25】 少なくとも一つの第1アドレスを提供
する前記ステップは、少なくとも一つの24ビット命令
アドレスを提供するステップを含み、前記第2サイズフ
ィールド値は、前記第1サイズフィールド値より小さい
請求項24に記載のデータパケットの処理方法。
25. The step of providing at least one first address comprises the step of providing at least one 24-bit instruction address, the second size field value being less than the first size field value. 24. A data packet processing method as described in 24.
【請求項26】 前記少なくとも一つの第1アドレスを
対応のレジスタに格納するステップと、 前記少なくとも一つの第1及び第2パケットを格納ディ
バイスに格納するステップと、 前記レジスタに格納した前記第1アドレスの少なくとも
一部に基づいて前記格納ディバイス内の前記少なくとも
一つの第2パケットに関連したプールアドレスを決定す
るステップとを含む、請求項24に記載のデータパケッ
トの処理方法。
26. The step of storing the at least one first address in a corresponding register; the step of storing the at least one first and second packet in a storage device; and the first address stored in the register. 25. determining a pool address associated with the at least one second packet in the storage device based on at least a portion of the method of claim 24.
【請求項27】 前記プールアドレスを決定する前記ス
テップは、プールアドレスを有する同一な形態の最も古
くなったパケットよりもっと古い、少なくとも一つの第
2パケットのアドレスだけに関連したプールアドレスを
決定するステップを含む請求項26に記載のデータパケ
ットの処理方法。
27. The step of determining the pool address determines the pool address associated only with the address of at least one second packet that is older than the oldest packet of the same form having the pool address. 27. The method of processing a data packet of claim 26, including:
【請求項28】 デジタルプロセッサトレースに関連し
たデータを圧縮する方法であって、 少なくとも第1及び第2形態のデータの複数の発生を識
別するために前記データを分析するステップとして、前
記第1形態のデータはソースコードの表現から誘導で
き、前記第2形態のデータは前記表現から誘導できな
い、データ分析ステップと、 前記第2形態のデータの前記発生だけを格納ディバイス
に格納するステップとを含み、 圧縮解除中の、前記第1形態のデータの前記発生は前記
ソースコードの表現から誘導され、前記第2形態のデー
タの前記発生は前記格納ディバイスから検索されるデー
タ圧縮方法。
28. A method of compressing data associated with a digital processor trace, the first aspect as a step of analyzing the data to identify multiple occurrences of the at least first and second aspects of the data. Data is derivable from a source code representation and the second form of data is not derivable from the representation, including a data analysis step and storing only the occurrences of the second form data in a storage device, A method of compressing data, wherein said generation of said first form of data during decompression is derived from a representation of said source code and said generation of said second form of data is retrieved from said storage device.
【請求項29】 動作中の少なくとも一つのデジタルプ
ロセッサからトレースデータを獲得する方法であって、 前記少なくとも一つのプロセッサからデータを受信する
ように適用された、トレースユニットを提供するステッ
プと、 受信したデータに基づいて前記プロセッサの動作に関連
する複数のパケットを生成するステップと、 前記複数のパケットのうち少なくとも一部を格納ディバ
イスに格納するステップと、 前記格納ディバイスから、それらとのデータ通信を行う
一つのポートを介して、前記パケットを除去するステッ
プとを含むデータ獲得方法。
29. A method of obtaining trace data from at least one operating digital processor, the method comprising: providing a trace unit adapted to receive data from the at least one processor; Generating a plurality of packets related to the operation of the processor based on data, storing at least a part of the plurality of packets in a storage device, and performing data communication with the storage device from the storage device Removing the packet through one port.
【請求項30】 前記パケットを生成する前記ステップ
の中で前記データを圧縮するステップをさらに含む請求
項29に記載のデータ獲得方法。
30. The method of claim 29, further comprising compressing the data in the step of generating the packet.
【請求項31】 前記データは複数のニブルを有する複
数のデータバイトを含み、前記データ圧縮ステップは、 (i) 第1値の少なくとも一部を格納するステップと、 (ii)前記第1値の少なくとも一部を以前にエンコードさ
れた第2値に参照するステップを含み、 前記少なくとも第1部分は、前記第2値と他のデータニ
ブルだけを含む請求項30に記載のデータ獲得方法。
31. The data comprises a plurality of data bytes having a plurality of nibbles, the data compressing step comprising: (i) storing at least a portion of the first value; and (ii) storing the first value. 31. The method of data acquisition according to claim 30, comprising the step of referencing at least a portion to a previously encoded second value, the at least first portion containing only the second value and other data nibbles.
【請求項32】 前記圧縮ステップは、 少なくとも第1及び第2形態のデータの複数の発生を識
別するために前記データを分析するステップとして、前
記第1形態のデータはソースコードの表現から誘導で
き、前記第2形態のデータは前記表現から誘導できな
い、データ分析ステップと、 前記第2形態のデータの前記発生だけを格納ディバイス
に格納するステップを含み、圧縮解除中の前記第1形態
のデータの前記発生は前記ソースコードの表現から誘導
され、前記第2形態のデータの前記発生は前記格納ディ
バイスから検索される請求項30に記載のデータ獲得方
法。
32. The compressing step comprises: analyzing the data to identify multiple occurrences of at least first and second forms of data, the first form of data being derivable from a source code representation. The data of the second form cannot be derived from the representation, the data analysis step and the step of storing only the occurrence of the data of the second form in a storage device, the data of the first form being decompressed. The method of claim 30, wherein the occurrence is derived from the source code representation and the occurrence of the second form of data is retrieved from the storage device.
【請求項33】 前記パケットの中で、対応のパケット
を生成する以前に前記少なくとも一つのプロセッサから
受信した前記データをフィルターリングするステップを
さらに含む請求項30に記載のデータ獲得方法。
33. The method of claim 30, further comprising filtering the data received from the at least one processor in the packet before generating a corresponding packet.
【請求項34】 前記少なくとも一つのプロセッサは、
それぞれのトレースユニットを有する複数のプロセッサ
を含み、前記方法は、 前記それぞれのトレースユニット内で複数のパケットを
生成するステップと、 前記プロセッサの前記各トレースユニット間で前記格納
ディバイスに対するアクセスを仲裁するステップをさら
に含む請求項30に記載のデータ獲得方法。
34. The at least one processor is
Including a plurality of processors having respective trace units, the method comprising: generating a plurality of packets within the respective trace units; and arbitrating access to the storage device between the respective trace units of the processors. 31. The data acquisition method according to claim 30, further comprising:
【請求項35】 前記生成ステップは、前記少なくとも
一つのプロセッサの動作に関連する複数の識別可能なト
レースを生成するステップを含み、前記トレースは、命
令トレース、データトレース、及びタイミングトレース
を含むグループから選択される請求項29に記載のデー
タ獲得方法。
35. The step of generating includes the step of generating a plurality of identifiable traces associated with the operation of the at least one processor, the traces from a group including instruction traces, data traces, and timing traces. 30. The data acquisition method according to claim 29, which is selected.
【請求項36】 トレースユニットとキャプチャーディ
バイスとの間で、データの伝送を行うのに有用なパケッ
トポートの構造であって、 少なくとも一時的に複数のパケットデータを格納するよ
うに適用された、格納ディバイスと、 複数の入力と少なくとも一つの出力とを有する複数ノー
マルチプレクサとして、前記それぞれの入力は前記格納
ディバイスから前記パケットデータの少なくとも一部を
受信するように適用される、複数ノーマルチプレクサ
と、 前記キャプチャーディバイスと前記複数ノーマルチプレ
クサの少なくとも一つの各出力とのデータ通信を行う複
数のターミナルと、 前記マルチプレクサの動作を制御する信号を生成するよ
うに構成された、少なくとも一つの制御回路とを含むパ
ケットポートの構造。
36. A structure of a packet port useful for transmitting data between a trace unit and a capture device, the structure adapted to store a plurality of packet data at least temporarily. A plurality of no-multiplexers having a device, a plurality of inputs and at least one output, each input being adapted to receive at least a portion of the packet data from the storage device; A packet including a plurality of terminals for data communication between a capture device and at least one output of each of the plurality of multiplexers, and at least one control circuit configured to generate a signal for controlling the operation of the multiplexer. Port structure.
【請求項37】 デジタルプロセッサに関連したトレー
スユニットと共に使用するように適用されたモニターユ
ニットであって、 複数の入力に論理的に関連した信号を出力するように適
用された論理ユニットと、 一つの入力と、前記論理ユニットへの前記入力のうち一
つを含む出力と、を有する命令デコーダと、 複数の入力と、前記論理ユニットへの前記入力のうち一
つを含む一つの出力と、を有する第1マルチプレクサ
と、 それぞれ複数の入力と、前記第1マルチプレクサの前記
複数の入力のうち少なくとも二つを含む一つの出力と、
を有する第1及び第2演算ユニットと、 複数のデータを格納するように適用され、前記第1及び
第2演算ユニットの前記入力の中で、少なくとも一つと
のデータ通信を行う一つの出力を有するレジスタと、 複数の入力と、前記第1及び第2演算ユニットのそれぞ
れの前記複数の入力のうち少なくとも一つとの通信を行
う一つの出力と、を有する第2マルチプレクサとを含む
モニターユニット。
37. A monitor unit adapted for use with a trace unit associated with a digital processor, the logic unit adapted to output a signal logically related to a plurality of inputs; An instruction decoder having an input and an output including one of the inputs to the logic unit; a plurality of inputs; and an output including one of the inputs to the logic unit A first multiplexer, a plurality of inputs each, and an output including at least two of the plurality of inputs of the first multiplexer,
A first and a second arithmetic unit having a plurality of data, and an output adapted to store a plurality of data and having a data communication with at least one of the inputs of the first and the second arithmetic unit. A monitor unit including a register, a second multiplexer having a plurality of inputs, and one output in communication with at least one of the plurality of inputs of each of the first and second arithmetic units.
【請求項38】 前記命令デコーダと前記第2マルチプ
ルレとの前記入力は、平滑ユニットにより生成される信
号に、少なくとも部分的に関連する請求項37に記載の
モニターユニット。
38. The monitor unit of claim 37, wherein the inputs of the instruction decoder and the second multiplex are at least partially related to a signal generated by a smoothing unit.
【請求項39】 前記平滑ユニットは、 (i) プロセッサパイプラインから複数の信号を受信し、 (ii)前記パイプライン内の特定命令に関連する全ての信
号を処理して、これらが同一なクロック周期で有効にな
るように適用される、請求項38に記載のモニターユニ
ット。
39. The smoothing unit receives (i) a plurality of signals from a processor pipeline, (ii) processes all signals associated with a particular instruction in the pipeline, and outputs the same clock. 39. A monitor unit according to claim 38, adapted to be effective on a cycle.
【請求項40】 デジタルプロセッサ用トレースユニッ
トで使われる多重モニターユニットの構造であって、 複数の第1入力に論理的に関連した出力を生成するよう
に適用された第1論理ユニットと、 複数の入力と、前記第1論理ユニットの前記複数の第1
入力のうち一つを含む一つの出力と、を有する第1モニ
ターユニットと、複数の入力と、前記第1論理ユニット
の前記複数の第1入力のうち一つを含む一つの出力と、
を有する第2モニターユニットと、 少なくとも(i)前記論理ユニットの前記出力、及び(ii)
前記第1モニターユニットの前記出力を含む複数の入力
を、少なくとも一つノーマルチプレクサ出力に多重化す
るように適用された、マルチプレクサとを含む多重モニ
ターユニット構造。
40. A structure of a multiple monitor unit for use in a trace unit for a digital processor, the first logic unit being adapted to produce an output logically associated with a plurality of first inputs; An input and the plurality of first of the first logic units
A first monitor unit having one output including one of the inputs, a plurality of inputs, and an output including one of the first inputs of the first logic unit;
A second monitor unit having at least (i) the output of the logic unit, and (ii)
A multiplex monitor unit structure including a multiplexer adapted to multiplex a plurality of inputs including the output of the first monitor unit to at least one no-multiplexer output.
【請求項41】 複数の第2入力に論理的に関連する出
力を生成するように適用された第2論理ユニットとし
て、前記第2入力のうち少なくとも一つは前記第1論理
ユニットの前記出力を含む第2論理ユニットと、 複数の入力と一つの出力とを有する第3モニターユニッ
トとして、前記第3モニターの前記出力は、前記第2論
理ユニットの前記複数の第2入力のうち一つを含む第3
モニターユニットとを含む請求項40に記載の多重モニ
ター構造。
41. As a second logic unit adapted to produce an output logically related to a plurality of second inputs, at least one of said second inputs is said output of said first logic unit. As a third monitor unit having a second logic unit including a plurality of inputs and an output, the output of the third monitor includes one of the plurality of second inputs of the second logic unit. Third
The multiple monitor structure of claim 40, including a monitor unit.
【請求項42】 前記第3モニターユニットは、一双の
モニターユニットを含む請求項41に記載の多重モニタ
ー構造。
42. The multiple monitor structure according to claim 41, wherein the third monitor unit includes a single monitor unit.
【請求項43】 前記第1または第2モニターユニット
は、 複数の入力に論理的に関連した信号を出力するように適
用された、モニター論理ユニットと、 一つの入力と、前記論理ユニットの前記入力のうち一つ
を含む一つの出力とを有する、命令デコーダと、 複数の入力と、前記論理ユニットの入力のうち一つを含
む一つの出力とを有する、第1モニターマルチプレクサ
と、 複数の入力と、前記第1モニターマルチプレクサの前記
複数の入力のうち少なくとも二つを含む一つの出力とを
有する、第1及び第2演算ユニットと、 複数のデータを格納するように適用され、前記第1及び
第2演算ユニットと前記入力の中で少なくとも一つとの
データ通信を行う出力を有するレジスタと、 複数の入力と、前記それぞれの第1及び第2演算ユニッ
トの前記複数の入力のうち少なくとも一つと通信を行う
一つの出力とを有する、第2モニターマルチプレクサと
を含む請求項40に記載の多重モニター構造。
43. The first or second monitor unit is adapted to output a signal logically related to a plurality of inputs, a monitor logic unit, one input, and the inputs of the logic unit. An instruction decoder having one output including one of the plurality of inputs, a first monitor multiplexer having a plurality of inputs and one output including one of the inputs of the logic unit, and a plurality of inputs; A first and a second arithmetic unit having one output including at least two of the plurality of inputs of the first monitor multiplexer, the first and second arithmetic units being adapted to store a plurality of data; A register having two arithmetic units and an output for performing data communication with at least one of the inputs; a plurality of inputs; and the respective first and second arithmetic units 41. The multiple monitor structure of claim 40, comprising a second monitor multiplexer having at least one output in communication with at least one of said plurality of inputs.
【請求項44】 デジタルプロセッサに関連したトレー
スユニットで使用するためのもので、複数の入力と少な
くとも一つの出力を有する回路であって、 複数の前記入力と複数の出力を有する優先順位論理回路
と、 第1出力信号を生成するように適用された、第1フリッ
プ・フロップと、 第2出力信号を生成するように適用された、第2フリッ
プ・フロップと、 複数の入力と一つの出力を有する第1信号セレクタとし
て、前記第1信号セレクタの前記出力は前記第1フリッ
プ・フロップの一つの入力を含み、前記優先順位論理回
路の前記出力のうち少なくとも一つは、前記第1セレク
タの一つの入力を含む第1信号セレクタと、 複数の入力と一つの出力とを有する第2信号セレクタと
して、前記第2信号セレクタの前記出力は前記第2フリ
ップ・フロップの一つの入力を含み、前記優先順位論理
回路の前記出力のうち少なくとも一つは、前記第2セレ
クタの少なくとも一つの入力を含む、第2信号セレクタ
とを含む回路。
44. A circuit having a plurality of inputs and at least one output for use in a trace unit associated with a digital processor, the priority logic circuit having a plurality of said inputs and a plurality of outputs. A first flip-flop adapted to produce a first output signal, a second flip-flop adapted to produce a second output signal, a plurality of inputs and one output As a first signal selector, the output of the first signal selector includes one input of the first flip-flop, and at least one of the outputs of the priority logic circuit is one of the first selectors. As a second signal selector having a first signal selector including an input and a plurality of inputs and one output, the output of the second signal selector is the second free selector. Wherein one input of flop-flop, at least one of said output of said priority logic comprises at least one input of said second selector circuit and a second signal selector.
【請求項45】 前記第1及び第2フリップ・フロップ
の前記出力は、それぞれ前記第1及び第2信号セレクタ
の入力を含む請求項44に記載の回路。
45. The circuit of claim 44, wherein the outputs of the first and second flip-flops include the inputs of the first and second signal selectors, respectively.
【請求項46】 前記第1フリップ・フロップの前記出
力は、前記第2信号セレクタの入力も含む請求項45に
記載の回路。
46. The circuit of claim 45, wherein the output of the first flip-flop also includes the input of the second signal selector.
【請求項47】 前記セレクタは、マルチプレクサを含
む請求項46に記載の回路。
47. The circuit of claim 46, wherein the selector comprises a multiplexer.
【請求項48】 前記優先順位論理回路の前記複数の入
力は、各モニターユニットの出力を含む請求項44に記
載の回路。
48. The circuit of claim 44, wherein the plurality of inputs of the priority logic circuit include an output of each monitor unit.
【請求項49】 プロセッサトレースユニットと共に使
用するもので、第1データ幅及び第1クロック領域を有
する少なくとも一つのパイプラインと第1クロック領域
を有するパケットポートとの間で複数のデータパケット
をバッファリングするように適用された、格納ディバイ
スであって、 前記第1データ幅より小さな第2データ幅を有するデュ
アルポートRAMを有し、(i)前記データパケットの前記RA
Mへの書き込みは前記第1クロック領域に実質的に同調
され、 (ii)前記RAMから前記データパケットの読み取りは前記
第2クロック領域に実質的に同調される格納ディバイ
ス。
49. For use with a processor trace unit, buffering a plurality of data packets between at least one pipeline having a first data width and a first clock domain and a packet port having a first clock domain. A dual port RAM having a second data width smaller than the first data width, the storage device being adapted to: (i) the RA of the data packet;
A storage device in which writing to M is substantially tuned to the first clock domain, and (ii) reading of the data packet from the RAM is substantially tuned to the second clock domain.
【請求項50】 前記第1クロック領域は、前記トレー
スユニットのクロックを含む請求項49に記載の格納デ
ィバイス。
50. The storage device of claim 49, wherein the first clock domain comprises a clock of the trace unit.
【請求項51】 前記RAMは深さをさらに含み、前記第
2データ幅は固定されるが、前記深さは前記プロセッサ
とトレースユニットの構築時にユーザーが構成可能な請
求項50に記載の格納ディバイス。
51. The storage device of claim 50, wherein the RAM further comprises a depth and the second data width is fixed, but the depth is user configurable when building the processor and trace unit. .
【請求項52】 プロセッサコアと、 前記コアとのデータ通信を行うトレースユニットと、 ホストユニットと、 前記コアと前記ホストユニットとの間でデータ通信を提
供するホストインターフェースと、 前記トレースユニットにより生成された複数のデータパ
ケットをキャプチャーし、前記パケットのうち少なくと
も一部を前記ホストユニットに伝達するように適用され
た、キャプチャーディバイスを含むプロセッサ観測シス
テム。
52. A processor core, a trace unit for performing data communication with the core, a host unit, a host interface for providing data communication between the core and the host unit, and a trace unit generated by the trace unit. A processor observation system including a capture device adapted to capture a plurality of data packets and deliver at least some of the packets to the host unit.
【請求項53】 前記トレースユニット、プロセッサコ
ア、及びホストインターフェースは、単一の集積回路ダ
イの上に配置される請求項52に記載のプロセッサ観測
システム。
53. The processor observation system of claim 52, wherein the trace unit, processor core, and host interface are located on a single integrated circuit die.
【請求項54】 前記トレースユニットは、前記コアか
ら受信したパイプラインデータを平滑させるように適用
された、平滑ユニットと、 前記平滑ユニットに作動的に接続され、前記平滑ユニッ
トからデータを選択的にパスさせるように適用された、
モニターと、 前記モニターからの前記パスデータに基づいて複数のデ
ータパケットを生成するように適用された、生成ユニッ
トと、 前記生成ユニットとのデータ通信を行なうものとして、
前記キャプチャーディバイスに対する後続の伝送のため
に、前記複数のデータパケットの少なくとも一部をバッ
ファリングするように適用される、バッファを含む請求
項52に記載のプロセッサ観測システム。
54. The trace unit is adapted to smooth pipeline data received from the core; a smoothing unit; operatively connected to the smoothing unit to selectively collect data from the smoothing unit. Applied to pass,
A monitor, a generation unit adapted to generate a plurality of data packets based on the path data from the monitor, and performing data communication with the generation unit,
53. The processor observation system of claim 52, including a buffer adapted to buffer at least a portion of the plurality of data packets for subsequent transmission to the capture device.
【請求項55】 前記バッファと前記キャプチャーディ
バイスとの間におけるデータ通信を行うパケットポート
をさらに含む請求項54に記載のプロセッサ観測システ
ム。
55. The processor observation system according to claim 54, further comprising a packet port for performing data communication between the buffer and the capture device.
【請求項56】 前記ホストユニットは、 ユーザーインターフェースと、 前記ユーザーインターフェースと作動的に通信するデバ
ッガプログラムと、 前記デバッガプログラムと作動的に通信するホストドラ
イバーと、 前記ホストドライバーと前記キャプチャーディバイスと
作動的に通信する第1通信ドライバーモジュールとを含
み、 少なくとも前記ユーザーインターフェース、デバッガプ
ログラム、ホストドライバー及び第1通信ドライバーモ
ジュールは、ユーザーが前記コアに関連して前記トレー
スユニットにより生成されたデータの観測ができるよう
に動作する請求項52に記載のプロセッサ観測システ
ム。
56. The host unit includes a user interface, a debugger program operatively communicating with the user interface, a host driver operatively communicating with the debugger program, the host driver, the capture device, and an operative device. And a first communication driver module for communicating with the core, at least the user interface, the debugger program, the host driver, and the first communication driver module allow a user to observe data generated by the trace unit in association with the core. 53. The processor observation system of claim 52, which operates as follows.
【請求項57】 前記デバッガプログラムと前記ホスト
インターフェースと作動的に通信する第2通信ドライバ
ーをさらに含む請求項56に記載のプロセッサ観測シス
テム。
57. The processor observation system of claim 56, further comprising a second communication driver in operative communication with the debugger program and the host interface.
【請求項58】 デジタルプロセッサの動作に関連し
て、関連プロセッサ観測ユニットにより少なくとも部分
的に生成されるデータを観測するように適用されたホス
トユニットであって、 ユーザーインターフェースと、 前記ユーザーインターフェースと作動的に通信するデバ
ッガプログラムと、 前記デバッガプログラムと作動的に通信するホストドラ
イバーと、 前記ホストドライバーと前記プロセッサ観測ユニットと
作動的に通信する第1通信ドライバーモジュールとを含
み、 少なくとも前記ユーザーインターフェース、デバッガプ
ログラム、ホストドライバー及び第1通信ドライバー
は、ユーザーが前記観測ユニットにより生成される前記
プロセッサとの関連データを観測できるように動作す
る、ホストユニット。
58. A host unit adapted for observing data at least partially generated by an associated processor observing unit in relation to operation of a digital processor, the user interface comprising: a user interface; A debugger program that communicates dynamically, a host driver that operatively communicates with the debugger program, and a first communication driver module that operatively communicates with the host driver and the processor observation unit. The host unit, the program, the host driver, and the first communication driver operate to enable a user to observe data associated with the processor generated by the observation unit.
【請求項59】 前記ホストドライバーと前記デジタル
プロセッサとの間でデータ通信を行うように動作する第
2通信ドライバーをさらに含む請求項58に記載のホス
トユニット。
59. The host unit of claim 58, further comprising a second communication driver operative to perform data communication between the host driver and the digital processor.
【請求項60】 パイプラインプロセッサコアと、 前記コアから受信したパイプラインデータを平滑させる
ように適用された、平滑ユニットと、 前記平滑ユニットに作動的に接続されて、前記平滑ユニ
ットからデータを選択的にパスさせるように適用された
モニターと、 前記モニターからの前記パスデータに基づいて複数のデ
ータパケットを生成するように適用された生成ユニット
と、 前記生成ユニットとのデータ通信を行い、外部ディバイ
スに対する後続の伝送のために、前記複数のデータパケ
ットのうち少なくとも一部をバッファリングするように
適用されたバッファとを含む集積回路。
60. A pipeline processor core, a smoothing unit adapted to smooth pipeline data received from the core, and operatively connected to the smoothing unit to select data from the smoothing unit. And a generation unit adapted to generate a plurality of data packets based on the path data from the monitor, and a data communication between the generation unit and an external device. A buffer adapted to buffer at least a portion of the plurality of data packets for subsequent transmission to the integrated circuit.
JP2002132057A 2001-11-06 2002-05-07 Observation method for data processor and device thereof Pending JP2003150403A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US338869 1994-11-14
US33886901A 2001-11-06 2001-11-06

Publications (1)

Publication Number Publication Date
JP2003150403A true JP2003150403A (en) 2003-05-23

Family

ID=23326490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002132057A Pending JP2003150403A (en) 2001-11-06 2002-05-07 Observation method for data processor and device thereof

Country Status (1)

Country Link
JP (1) JP2003150403A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009110284A (en) 2007-10-30 2009-05-21 Fujitsu Ltd Signal processor, card type device, and fault reproduction method
WO2011024330A1 (en) * 2009-08-24 2011-03-03 パナソニック株式会社 Idle-state detecting circuit, semiconductor integrated circuit, signal processing device, and idle-state detecting method
KR20140006861A (en) * 2011-01-13 2014-01-16 에이알엠 리미티드 Processing apparatus, trace unit and diagnostic apparatus
US8902694B2 (en) 2012-09-12 2014-12-02 International Business Machines Corporation Integrity check of measured signal trace data
US10089212B2 (en) 2015-07-20 2018-10-02 Toshiba Memory Corporation Memory system, information processing system, and host device outputting debugging information through a host interface
CN110825312A (en) * 2018-08-10 2020-02-21 北京百度网讯科技有限公司 Data processing device, artificial intelligence chip and electronic equipment
JP2021531530A (en) * 2018-04-03 2021-11-18 ザイリンクス インコーポレイテッドXilinx Incorporated Debug controller circuit
CN115510788A (en) * 2022-11-10 2022-12-23 山东云海国创云计算装备产业创新中心有限公司 Coding method, system, equipment and storage medium

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009110284A (en) 2007-10-30 2009-05-21 Fujitsu Ltd Signal processor, card type device, and fault reproduction method
WO2011024330A1 (en) * 2009-08-24 2011-03-03 パナソニック株式会社 Idle-state detecting circuit, semiconductor integrated circuit, signal processing device, and idle-state detecting method
KR102025556B1 (en) * 2011-01-13 2019-09-26 에이알엠 리미티드 Processing apparatus, trace unit and diagnostic apparatus
KR20140006861A (en) * 2011-01-13 2014-01-16 에이알엠 리미티드 Processing apparatus, trace unit and diagnostic apparatus
JP2014507710A (en) * 2011-01-13 2014-03-27 アーム・リミテッド Processing device, trace unit, and diagnostic device
US10379989B2 (en) 2011-01-13 2019-08-13 Arm Limited Processing apparatus, trace unit and diagnostic apparatus
US8902694B2 (en) 2012-09-12 2014-12-02 International Business Machines Corporation Integrity check of measured signal trace data
US8913458B2 (en) 2012-09-12 2014-12-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Integrity check of measured signal trace data
US10089212B2 (en) 2015-07-20 2018-10-02 Toshiba Memory Corporation Memory system, information processing system, and host device outputting debugging information through a host interface
JP2021531530A (en) * 2018-04-03 2021-11-18 ザイリンクス インコーポレイテッドXilinx Incorporated Debug controller circuit
JP7247213B2 (en) 2018-04-03 2023-03-28 ザイリンクス インコーポレイテッド debug controller circuit
CN110825312A (en) * 2018-08-10 2020-02-21 北京百度网讯科技有限公司 Data processing device, artificial intelligence chip and electronic equipment
CN110825312B (en) * 2018-08-10 2023-06-23 昆仑芯(北京)科技有限公司 Data processing device, artificial intelligent chip and electronic equipment
CN115510788A (en) * 2022-11-10 2022-12-23 山东云海国创云计算装备产业创新中心有限公司 Coding method, system, equipment and storage medium
CN115510788B (en) * 2022-11-10 2023-02-28 山东云海国创云计算装备产业创新中心有限公司 Coding method, system, equipment and storage medium

Similar Documents

Publication Publication Date Title
US9798645B2 (en) Embedding stall and event trace profiling data in the timing stream
JP4233893B2 (en) Instruction tracing in data processing systems.
US6009270A (en) Trace synchronization in a processor
US7080283B1 (en) Simultaneous real-time trace and debug for multiple processing core systems on a chip
US6167536A (en) Trace cache for a microprocessor-based device
US6154857A (en) Microprocessor-based device incorporating a cache for capturing software performance profiling data
US5978902A (en) Debug interface including operating system access of a serial/parallel debug port
KR100517679B1 (en) Debug interface including a compact trace record storage
US6041406A (en) Parallel and serial debug port on a processor
US7437619B2 (en) Trace reporting method and system
US6189140B1 (en) Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic
US6145100A (en) Debug interface including timing synchronization logic
US6154856A (en) Debug interface including state machines for timing synchronization and communication
KR20190121378A (en) Debugging system and method
US20040064685A1 (en) System and method for real-time tracing and profiling of a superscalar processor implementing conditional execution
US7607047B2 (en) Method and system of identifying overlays
US7278073B2 (en) Diagnostic data capture within an integrated circuit
JP2003150403A (en) Observation method for data processor and device thereof
US7334114B2 (en) Real-time monitoring, alignment, and translation of CPU stalls or events
EP1184790B1 (en) Trace cache for a microprocessor-based device
JP2003345472A (en) Electric power profiling method and system for electric power profiling
US20060259664A1 (en) Real-time prioritization of stall or event information
Weingarten Hardware Accelerated Trace Analysis for Compiler Optimizations
Melear Emulation techniques for microcontrollers with internal caches and multiple execution units
JPH1011112A (en) Monitor device for developing and monitoring firmware for system, developing method, and in-generic-circuit emulator device