JP2002304291A - 命令セットの情報を格納するための装置及び方法 - Google Patents
命令セットの情報を格納するための装置及び方法Info
- Publication number
- JP2002304291A JP2002304291A JP2002100620A JP2002100620A JP2002304291A JP 2002304291 A JP2002304291 A JP 2002304291A JP 2002100620 A JP2002100620 A JP 2002100620A JP 2002100620 A JP2002100620 A JP 2002100620A JP 2002304291 A JP2002304291 A JP 2002304291A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- bit
- instruction address
- address
- bits
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012545 processing Methods 0.000 claims abstract description 71
- 238000004364 calculation method Methods 0.000 claims abstract description 18
- 238000007906 compression Methods 0.000 claims description 74
- 230000006835 compression Effects 0.000 claims description 73
- 230000000694 effects Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 16
- 238000005070 sampling Methods 0.000 abstract 1
- 239000000872 buffer Substances 0.000 description 28
- 210000003813 thumb Anatomy 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 13
- 238000012546 transfer Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000006837 decompression Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 229920006345 thermoplastic polyamide Polymers 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 238000007792 addition Methods 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 208000027386 essential tremor 1 Diseases 0.000 description 4
- 238000013127 simulated treatment comparison Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- IHPYMWDTONKSCO-UHFFFAOYSA-N 2,2'-piperazine-1,4-diylbisethanesulfonic acid Chemical compound OS(=O)(=O)CCN1CCN(CCS(O)(=O)=O)CC1 IHPYMWDTONKSCO-UHFFFAOYSA-N 0.000 description 3
- 101710085003 Alpha-tubulin N-acetyltransferase Proteins 0.000 description 3
- 101710085461 Alpha-tubulin N-acetyltransferase 1 Proteins 0.000 description 3
- 239000007990 PIPES buffer Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000033772 system development Effects 0.000 description 3
- 238000013144 data compression Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- XYDVHKCVOMGRSY-UHFFFAOYSA-N 4-(4-benzylphenyl)-1,3-thiazol-2-amine Chemical compound S1C(N)=NC(C=2C=CC(CC=3C=CC=CC=3)=CC=2)=C1 XYDVHKCVOMGRSY-UHFFFAOYSA-N 0.000 description 1
- 102100028285 DNA repair protein REV1 Human genes 0.000 description 1
- 101000928034 Homo sapiens Proteasomal ubiquitin receptor ADRM1 Proteins 0.000 description 1
- 102100036915 Proteasomal ubiquitin receptor ADRM1 Human genes 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 101001094026 Synechocystis sp. (strain PCC 6803 / Kazusa) Phasin PhaP Proteins 0.000 description 1
- SRVFFFJZQVENJC-IHRRRGAJSA-N aloxistatin Chemical compound CCOC(=O)[C@H]1O[C@@H]1C(=O)N[C@@H](CC(C)C)C(=O)NCCC(C)C SRVFFFJZQVENJC-IHRRRGAJSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
Abstract
得る。 【解決手段】 処理命令の複数の命令セットのいずれか
からの処理命令を実行する処理回路を含み、各処理命令
はメモリ内のその場所を識別する命令アドレスにより指
定される。異なる命令セット内の命令を処理するために
異なる数の命令アドレスビットを命令アドレス内に指定
する必要がある。さらに、その命令に対応する命令セッ
トの表示を有する命令アドレスを符号化してn−ビット
符号化命令アドレスを発生する符号化論理を含む。符号
化論理はビットパターンを指定された命令アドレスビッ
トへプリペンドすることにより、それをn−ビットへ拡
張するのと等価の計算を実施して符号化を実施するする
ようにされており、プリペンドされるビットパターンは
その命令に対応する命令セットによって決まる。符号化
命令アドレスは次に圧縮される。命令セット情報に命令
アドレスを取り込むための効率的技術が提供される。
Description
する。特に、本発明は命令セットの情報を格納するデー
タ処理装置および方法に関する。
令セットからの処理命令を実行することができる処理回
路を設けることができる。処理回路により実施される処
理を追跡し続けることが望ましいいくつかの状況があ
り、このような状況では任意の時点においてどの命令セ
ットが使用されているを識別できることが望ましいこと
がある。例えば、このような情報は、処理回路のアクテ
ィビティ(活動)を追跡することがしばしば望ましい、
データ処理システムの開発中に有用である。このような
プロセスをアシストするのに使用することができるツー
ルの例はトレーシングツールである。
跡するとシステム内のステップ毎のアクティビティを表
わすデータを含むトレースストリームが発生されてシス
テム開発における非常に有用なツールとなる。しかしな
がら、より深いく埋め込まれたプロセッサコアへ向かう
一般的な動きにより、外部アクセス可能ピンを介してプ
ロセッサの状態を追跡することが一層困難となる。した
がって、トレースデータを捕捉して解析するオフチップ
トレーシング機構だけでなく、増量されたトレーシング
機能がオンチップ配置されている。このようなオンチッ
プトレーシング機構の例はARM7およびARM9プロ
セッサと関連した英国、キャンブリッジ、ARM社から
提供される埋込トレースマクロセルである。
たいデータ処理システムのアクティビティを表わすデー
タのトレースストリームをリアルタイムで作り出す。次
に、このトレースストリームを使用してデータ処理シス
テムにより実行される処理命令系列のデバッギングを容
易にすることができる。
にアクセスしたらトレーシングの開始または停止等のト
レーシングおよびデバッギング操作を制御するように働
くトリガポイントを取り入れるトレーシングおよびデバ
ッギング機構を提供することが知られている。このよう
な機構はシステムの特定部分または動作のタイプを診断
するのに非常に有用である。例として、特定のシステム
バグが例外動作に関連しておれば、本当に必要なものが
適切な例外処理ベクトルへアクセスした時にトリガーさ
れる例外動作のトレーシングである時に、システムの全
操作のトレーシングにより不便なほど大量のデータが作
り出される。
も望ましいがデータ処理システムは複雑さが増すため、
データ処理システムの開発中に使用することができるデ
バッグおよびトレーシングツールおよび機構を改善する
必要性がある。
いずれかからの処理命令を実行することができる状況で
は、トレーシング機構はその命令セット情報も追跡し続
けることが望ましい。しかしながら、可能であれば常に
トレースする必要があるデータ量を低減することも望ま
しい。
な命令セット情報を格納するための効率的な技術を提供
することが本発明の目的である。
発明はデータ処理装置を提供し、前記装置は各処理命令
がメモリ内のその処理命令の場所を識別する命令アドレ
スにより指定される処理命令の複数のセットのいずれか
からの処理命令を実行する処理回路であって、異なる命
令セット内の処理命令に対する命令アドレス内に異なる
命令アドレスビット数を指定する必要がある処理回路
と、その命令に対応する命令セットの表示を有する命令
アドレスを符号化してn−ビット符号化命令アドレスを
発生する符号化論理とを含み、符号化論理は指定された
命令アドレスビットへビットパターンをプリペンディン
グ(prepending)することにより指定された
命令アドレスビットをn−ビットへ拡張するのと等価の
計算を実施することにより符号化を実施するようにされ
ており、プリペンドされるビットパターンはその命令に
対応する命令セットによって決まる。
回路により使用できる状況では、しばしば異なる命令セ
ット内の命令に対して命令アドレス内で異なる命令アド
レスビット数を指定する必要があることが知られてい
る。本発明はこれを利用して命令アドレスを有する命令
セット情報の効率的な符号化を可能にするものである。
ットパターンをプリペンドすることにより指定された命
令アドレスビットをn−ビットへ拡張するのと等価の計
算を実施することによりn−ビット符号化命令アドレス
を発生する符号化論理が提供され、プリペンドされるビ
ットパターンはその命令に対応する命令セットによって
決まる。
り指定される状況を考える。第1の命令セットに対し
て、命令はメモリ内の任意のビット位置で開始すること
ができ、したがって、この命令セットに関連する命令ア
ドレスに対しては32ビットを全て指定する必要があ
る。しかしながら、第2の命令セットに対しては、命令
はメモリ内の利用できる全ての場所のサブセット、例え
ば、一つおきのビット位置で開始するよう制約されるこ
とがある。同様に、第3の命令セットは命令をメモリ内
のどこに、例えば、3ビット位置おきに配置できるかに
ついて異なる制約を受けることがある。このような状況
では、第2および第3の命令セット内の命令に対する命
令アドレスの最下位1ビット以上が常に同じ値を有し、
したがって指定する必要がないことは明らかである。例
えば、第2の命令セット内の命令がメモリ内の一つおき
のビット位置で開始することができ、第3の命令セット
内の命令がメモリ内の3つおきのビット位置で開始する
ことができる場合には、第2の命令セットの命令アドレ
スに対する最下位ビットは無視することができ、第3の
命令セットの命令アドレスに対する最下位2ビットは無
視することができることは明らかである。したがって、
このような状況では、たとえ標準的に全てが32ビット
アドレスとして表わされる場合であっても、異なる命令
セット内の命令アドレスに対して異なる命令アドレスビ
ット数を指定する必要があることは明らかである。
いくつかの異なる方法があることがお判りであろう。例
えば、符号化される各命令アドレスはその命令が関連す
る命令セットに応じて適切なビット数だけ右シフトし
て、指定する必要がある命令アドレスビットだけを分離
することができ、異なるビットパターンは適切にシフト
された命令アドレスへプリペンドされてn−ビット符号
化命令アドレスを形成する。
により指定される前の例を考えると、第1の命令セット
内の命令は32ビット全てを指定する必要があり、第2
の命令セット内の命令は31ビットを指定する必要があ
り、第3の命令セット内の命令は30ビットを指定する
必要があり、第1の命令セットに関連する命令アドレス
は右シフトされず、第2の命令セットに関連する命令ア
ドレスは1ビット右シフトされ、第3の命令セットに関
連する命令アドレスは2ビット右シフトされることが判
る。次に、符号化された命令アドレスが同じ長さとなる
ように異なるビットパターンをシフトされた命令アドレ
スへプリペンドすることができる。符号化命令アドレス
の最上位ビット位置内の異なるビットパターンはこれら
の命令アドレスが関連する命令セットに関する情報を暗
黙的に提供する。
るビットパターン間の対応性は必要ないことが判る。し
かしながら、好ましい実施例では、各命令セットに対し
てその命令セットからの命令アドレスの指定された命令
アドレスビットへプリペンドされたビットパターンは、
シフトされたパターンにより異なる命令セットの命令ア
ドレスの指定された命令アドレスビットへプリペンドさ
れたビットパターンと関連づけられる。例えば、3つの
命令セットの前例を考えると、ビットパターン“1”を
第1の命令セットの命令アドレスへ加えることができ、
ビットパターン“01”を第2の命令セットの命令アド
レスへ加えることができ、ビットパターン“001”を
第3の命令セットの命令アドレスへ加えることができ
る。
と等価の任意の計算を使用できることは明らかである。
例えば、予め定められたビットパターンを指定された命
令アドレスビットへプリペンドして中間値を形成するこ
とができ、次にnビットが中間値から符号化命令アドレ
スとして選択される。符号化命令アドレスを形成するn
ビットを選択することができるいくつかの異なる方法が
あることは明らかである。例えば、関連する命令セット
(すなわち、指定する必要があるビットだけでなく、全
アドレスビットが含まれる)に無関係に、全命令アドレ
スが中間値内で同じビット数で表わされる場合、命令ア
ドレスが関連する命令セットに応じてnビットの異なる
選択が行われる。例えば、前の例を考えると、命令アド
レスが第3の命令セットに関連し最下位2ビットは無関
係である場合には、符号化命令アドレスとして選択され
るn−ビットの最下位ビットはビット位置2である。ま
た、中間値を発生する時に指定する必要がある命令アド
レスビットしか使用されない場合には、命令アドレスが
どの命令に関連するかに無関係に、符号化された命令ア
ドレスは常に中間値の最下位nビットを選択することに
より形成されることは明らかである。
は命令アドレスを有する命令セット情報を符号化するた
めの必要な効率的な技術、したがって、命令アドレスを
有する命令セット情報を追跡することが望ましい任意の
インプリメンテーションにおいて有益な技術を提供す
る。可能であれば常に追跡されるデータの量を低減する
一般的な要望があれば、本発明により発生される符号化
命令アドレスをより効率的に表わす技術を提供するのが
有益である。
はさらにその符号化命令アドレスを複数のx−ビットセ
クションへ分割し、各x−ビットセクションを先行する
符号化命令アドレスの対応するx−ビットセクションと
比較し、先行する符号化命令アドレスの対応するx−ビ
ットセクションとは異なる最上位x−ビットセクション
を圧縮符号化命令アドレスとして、任意のより下位のx
−ビットセクションと共に、出力するのと等価の計算を
実施することにより前記符号化命令アドレスを圧縮する
圧縮論理を含んでいる。好ましい実施例では、最下位x
−ビットセクションは常に出力される。
命令アドレスと僅かしか違わず、したがって、命令アド
レスの最上位数ビットはしばしば同一であるため、典型
的にそれにより符号化命令アドレスの著しい圧縮が行わ
れる。本発明に従って、符号化命令アドレスの最上位ビ
ットは使用される命令セットを暗黙的に識別するが、そ
れはかなり不規則的に変化するため、前記した圧縮技術
により多くの符号化命令アドレスを著しく圧縮できるこ
とが判る。
方法により、任意の無関係なアドレスビットが廃棄され
ていることがあり、したがって、これは指定する必要が
ある命令アドレスビットが命令アドレス内に与えられた
総命令アドレスビット数よりも少ない命令セットに関連
する任意の命令アドレスに対する圧縮効率を改善するの
を助けることが判る。前の例に戻って、命令セット3か
らの命令アドレスが30ビットしか指定する必要がなけ
れば、命令アドレスの最下位2ビットは圧縮が適用され
る前に省かれ、したがって、これは圧縮技術の効率を高
めるのを助けることが判る。
は各圧縮符号化命令アドレスがいつ開始および終了する
かを決定することであり、それは各圧縮された符号化命
令アドレスを形成するx−ビットセクション数は、圧縮
される特定の符号化命令アドレスの先行する符号化命令
アドレスと類似する程度に応じて変動するためである。
い実施例では、圧縮論理はそこから出力される各x−ビ
ットセクションにそれが圧縮符号化命令アドレスとして
出力される最後のx−ビットセクションであるかを示す
フラグを関連付けるようにされている。好ましい実施例
では、圧縮論理から複数のx−ビットセクションが出力
される場合には、複数のx−ビットセクションは最下位
x−ビットセクションで開始して逐次出力される。
関連するかを決定できるかぎり、フラグは各x−ビット
セクションへ別々の信号として出力できることが判る。
しかしながら、好ましい実施例では、圧縮論理はさらに
そこから出力される各x−ビットセクションをyビット
へ拡張するようにされており、最上位y−xビットはフ
ラグを含んでいる。したがって、このような好ましい実
施例では、圧縮論理からの出力は最上位y−xビットが
フラグを含むy−ビットセクション系列であるように、
フラグは実際上各出力セクション内に含まれる。
きることがお判りであろう。しかしながら、好ましい実
施例では、フラグは単一ビットである。特に、好ましい
実施例では、圧縮符号化命令アドレスはそのセクション
が圧縮符号化命令アドレスの最後のセクションであるか
どうかを最上位ビットが識別する8−ビットセクション
系列を含むようにyは8でありxは7である。
できることが判る。例えば、前記したように、それは命
令セットの表示に応答して適切な右シフトを確認し、も
しあれば、それを各入力命令アドレスへ適用するシフト
論理を含むことができる。次に、予め定められたビット
パターンを適切にシフトされた命令アドレスへプリペン
ドすることができ、その後最下位n−ビットが符号化命
令アドレスとして出力される。命令セットに応じて適用
される異なる右シフトが与えられると、命令アドレスが
関連する命令セットに応じて、符号化命令アドレスの最
上位ビット位置に異なるビットパターンが存在すること
が判る。
化論理は中間値および中間値内に含まれる命令アドレス
に関連する命令セットを識別する識別子信号を受信する
n−ビットセクター論理を含み、n−ビットセクターは
識別子信号に応じて中間値の予め定められたn−ビット
を出力するようにされている。このような実施例では、
中間値は命令アドレスに対していかなる右シフトも実施
することなく発生され、中間値からのn−ビットの適切
な選択は識別子信号に応じてなされることが考えられ
る。このようなプロセスにより、個別命令アドレスの適
切な右シフトを実施し続いて最下位n−ビットを出力し
て発生されるのと同じ符号化命令アドレスが発生される
ことが判る。
較器を含み、各比較器が符号化命令アドレスの対応する
x−ビットセクションを受信するようにされており、さ
らに先行する符号化命令アドレスの対応するx−ビット
セクションを格納するための一時記憶装置を含み、比較
器は2つのx−ビットセクションを比較してそれらが異
なる場合にセットされる差信号を発生するようにされて
いる。好ましい実施例では、一時記憶装置はレジスタの
形状をとり、レジスタは現在x−ビットセクションを格
納するのにも使用される。次に、2つのレジスタからの
出力は適切な差信号を発生するために比較される。
圧縮論理から出力される各x−ビットセクションに対し
て複数の比較器により発生される差信号の予め定められ
た組合せに基づくフラグを発生するようにされたフラグ
発生器論理を含み、より上位のx−ビットセクションも
出力される場合には特定のx−ビットセクションに対す
るフラグがセットされるようにされる。したがって、こ
のような実施例では、フラグはもう一つのx−ビットセ
クションがそのx−ビットセクションに続くことを示す
ようにセットされ、対応するx−ビットセクションが圧
縮符号化命令アドレスとして出力される最後のセクショ
ンであればフラグはセットされないままとされる。フラ
グ発生器論理は論理ゲートの任意適切な配線により形成
できることをお判り願いたい。しかしながら、好ましい
実施例では、対応する差信号またはより上位のx−ビッ
トセクションの差信号がセットされる場合に特定のx−
ビットセクションに対するフラグがセットされるのを保
証するのにORゲート列が使用される。
る各x−ビットセクションにその対応するフラグをプリ
ペンドすることにより圧縮符号化命令アドレスを発生
し、出力圧縮符号化命令アドレスとしてy−ビットセク
ション系列を発生する出力発生器を含んでいる。出力発
生器はさまざまな方法で構成できることがお判りであろ
う。しかしながら、好ましい実施例では、出力発生器の
機能はフラグ発生器論理および対応するx−ビットセク
ションにより発生されるフラグの適切なハードワイヤリ
ングにより直接実施される。
理は命令アドレスを有する命令セット情報を追跡したい
任意のインプリメンテーションにおいて有益に利用でき
ることがお判りであろう。しかしながら、好ましい実施
例では、符号化論理および圧縮論理は処理回路のアクテ
ィビティを追跡するのに使用されるトレースモジュール
内に設けられる。
て、データ処理装置用トレーシングツールが提供され、
データ処理装置は処理命令の複数の命令セットのいずれ
かからの処理命令を実行する処理回路を有し、各処理命
令はメモリ内のその処理命令の場所を識別する命令アド
レスにより指定され、異なる命令セット内の処理命令に
対して命令アドレス内に異なる命令アドレスビット数を
指定する必要があり、トレーシングツールはその命令に
対応する命令セットの表示を有する命令アドレスを符号
化してx−ビット符号化命令アドレスを発生する符号化
論理を含み、符号化論理はビットパターンを指定された
命令アドレスビットへプリペンドすることにより指定さ
れた命令アドレスビットをx−ビットへ拡張するのと等
価の計算を実施することにより符号化を実施するように
されており、プリペンドされるビットパターンはその命
令に対応する命令セットによって決まる。
は、さらに、符号化命令アドレスを複数のx−ビットセ
クションへ分割し、各x−ビットセクションを先行する
符号化命令アドレスの対応するx−ビットセクションと
比較し、圧縮符号化命令アドレスとして先行する符号化
命令アドレスの対応するx−ビットセクションとは異な
る最上位x−ビットセクションを、任意のより下位のx
−ビットセクションと共に、出力するのと等価の計算を
実施することにより符号化命令アドレスを圧縮する圧縮
論理を含んでいる。
情報を格納する方法を提供し、処理回路が処理命令の複
数の命令セットのいずれかからの処理命令を実行するよ
うにされており、各処理命令はメモリ内のその処理命令
の場所を識別する命令アドレスにより指定され、異なる
命令セット内の処理命令に対して命令アドレス内に異な
る命令アドレスビット数を指定する必要があり、前記方
法はビットパターンを指定された命令アドレスビットへ
プリペンドすることにより指定された命令アドレスビッ
トをn−ビットへ拡張するのと等価の計算を実施するこ
とにより、その命令に対応する命令セットの表示を有す
る命令アドレスを符号化してn−ビット符号化命令アド
レスを発生するステップを含み、プリペンドされるビッ
トパターンはその命令に対応する命令セットによって決
まる。
は、さらに、(a)符号化命令アドレスを複数のx−ビ
ットセクションへ分割し、(b)各x−ビットセクショ
ンを先行する符号化命令アドレスの対応するx−ビット
セクションと比較し、(c)圧縮符号化命令アドレスと
して先行する符号化命令アドレスの対応するx−ビット
セクションとは異なる最上位x−ビットセクションを、
任意のより下位のx−ビットセクションと共に、出力す
るのと等価の計算を実施することにより前記符号化命令
アドレスを圧縮するステップを含んでいる。
形成するx−ビットセクション数を決定し、(ii)先
行する符号化命令アドレスの対応するx−ビットセクシ
ョンから得られる追加x−ビットセクションを取り入れ
ることにより、必要に応じて、圧縮符号化命令アドレス
をn−ビットへ拡張して符号化命令アドレスを作り出す
のと等価の計算を実施することにより、本発明の第3の
側面の方法に従って発生される圧縮符号化命令アドレス
を伸張する方法にも関連している。
に、予め定められたビットパターンから命令アドレスが
関連する命令セットを決定し、予め定められたビットパ
ターンを除去して指定された命令アドレスビットを得る
のと等価の計算を実施することにより符号化命令アドレ
スを復号するステップを含んでいる。
側面の方法に従って装置を制御するコンピュータプログ
ラムを備えたコンピュータプログラムプロダクトを提供
する。
る目的で、オンチップトレーシング技術、およびトレー
スされる命令アドレスを有する命令セット情報のトレー
シングについて説明する。
するデータ処理システム2を略示している。集積回路4
はマイクロプロセッサコア6、キャッシュメモリ8、オ
ンチップトレースモジュールコントローラ10およびオ
ンチップトレースバァッファ12を含んでいる。集積回
路4はキャッシュメモリ8内でキャッシュミスが生じる
時にアクセスされる外部メモリ14に接続されている。
汎用コンピュータ16がオンチップトレースモジュール
コントローラ10およびオンチップトレースバァッファ
12に接続され、汎用コンピュータ16で実行するソフ
トウェアを使用してこれらの要素からのトレーシングデ
ータのストリームを回復および解析するように働く。
部メモリ14内に実際に存在するスペースよりも多くの
データ処理命令およびデータにアクセスすることが必要
となることがある。例えば、外部メモリ14は1MBの
サイズを有することができるが、プロセッサコア6は典
型的に32−ビットアドレスを指定することができ、そ
のため4GBの命令およびデータを指定することができ
る。したがって、プロセッサコア6により必要とされる
全命令およびデータが外部記憶装置18、例えばハード
ディスク、内に格納され、プロセッサコア6が特定の動
作状態で動作する時にその動作状態に対する関連する命
令およびデータが外部メモリ14内へロードされる。
ル内に設けられるコンポーネントをより詳細に示すブロ
ック図である。オンチップトレースモジュール10はプ
ロセッサコア6により実施される処理を示すオーバーパ
ス105データを受信するようにされている。図1に関
して、これはコアから直接受信される追加コントロール
タイプデータ(例えば、命令アドレスがインデクスされ
ている表示、ある命令がある理由によりその条件コード
に失敗した表示、等)と共に、コア6、キャッシュ8、
およびオンチップトレースモジュール10を接続するバ
スから受信することができる。
レースモジュール内で使用するのにより適切な信号の内
部バージョンへ変換するようにされている。次に、これ
らの内部バージョンはトリガー110および制御論理1
20へ送られるが、トリガー110および制御論理12
0は必ずしも同じ信号を受信する必要はないことがお判
りであろう。基本的に、トリガー110はトリガー可能
なイベント、例えば、命令アドレス、データ値、レジス
タアクセス、等に関連するデータを受信する必要があ
る。制御論理120はトリガー110により発せられる
イネーブル信号に応じてトレースする必要がある任意の
データを受信する必要がある。制御論理120は、さら
に、汎用コンピュータ16からパス125を介して構成
情報を受信するようにされており、次に、トリガー論理
構成をセットアップするために、パス115を介してト
リガー110へ信号を発するようにされている。
ばならないイベントを検出する時は常に、トリガー11
0はパス135を介して制御論理120へイネーブル信
号を送ってトレースをターンオンオフさせる。制御論理
はパス145を介して必要なトレースデータをトレース
バァッファへ出力することにより反応する。パス135
を介して多様なイネーブル信号を提供してトレースすべ
き信号のタイプ、例えば、トレースオンリー命令、トレ
ース命令およびデータ等を識別できることが判る。
モジュール10の制御論理120には命令アドレスを有
する命令セット情報を符号化し、次にこのような符号化
命令アドレスをパス145を介してトレースバァッファ
へ出力する前に圧縮できるようにする追加論理が提供さ
れる。
3に略示されており、プロセッサコア6により使用され
る3つの異なる命令セットは“ARM”,“Thum
b”および“Java(登録商標)”の名称で識別され
ている。本発明の好ましい実施例では、命令アドレスは
32ビット長である。Java命令はメモリ内の任意の
アドレス位置で開始することができ、したがって、32
ビット全てをJava命令アドレス220内で指定する
必要がある。しかしながら、Thumb命令はメモリ内
の偶アドレス位置、例えば、位置0,位置2,位置4,
位置6,等でしか開始することができない。したがっ
て、32ビットThumb命令アドレス210内のビッ
ト位置0は常にゼロである。
のアドレス位置、例えば、位置0,位置4,位置8,位
置C,等でしか開始することができない。したがって、
32ビットARM命令アドレス200の最下位2ビット
は常にゼロである。
ドレスの第33ビットとしてプリペンド(pre−pe
nded)される(すなわち、ビット位置32に配置さ
れる)。次に、命令アドレスの任意の無関係な最下位ビ
ットを除去するための適切な右シフトを適用することに
より符号化命令アドレスが作り出される。Java命令
に対しては、32ビット全てを指定する必要があるた
め、右シフトは実施されず、符号化命令アドレス250
は論理1値をオリジナル32ビットJava命令アドレ
ス220へプリペンドして与えられる単なる33ビット
値である。Thumb命令に対しては、最下位ビットを
除去するために1の右シフトが適用され、それにより最
上位2ビットが“01”である33ビット符号化命令ア
ドレス240が作り出される。最後に、ARM命令に対
しては、最下位2ビットを除去するために2ビット位置
の右シフトが適用され、それにより最上位3ビットが
“001”である33ビット符号化命令アドレス230
が作り出される。
セットの表示が33ビット符号化命令アドレスの最上位
3ビットにより与えられることがお判りであろう。特
に、最上位3ビットの“001”は命令をARM命令と
して識別し、“01x”は命令をThumb命令として
識別し(xは任意値を示す)、最上位3ビットとしての
“1xx”は命令をJava命令として識別する。
命令アドレスはパス145を介してトレースバァッファ
へ出力される前に、図4に略示された技術を使用して、
圧縮される。
令アドレス300(図3に示す符号化命令アドレス23
0,240,250のいずれかとすることができる)は
7−ビットセクションへ分割され、最上位5ビットは2
つの論理ゼロ値を5ビットへプリペンドすることにより
7−ビットセクションへ拡張されている。圧縮符号化命
令アドレスとして出力される各7−ビットセクションは
対応する7−ビットセクションが圧縮符号化命令アドレ
スとして出力される最後の7−ビットセクションである
かどうかを示すフラグをプリペンドすることによりバイ
ト(すなわち、8ビット)へ拡張される。好ましい実施
例では、フラグは連続ビットの形状をとり、それは論理
1値にセットされてもう一つのセクションが出力される
ことを示し、論理0値にセットされて対応するセクショ
ンが圧縮符号化命令アドレスの最後のセクションである
ことを示す。
号化命令アドレスの一部として出力しなければならない
かを判断するために、その7−ビットセクションは先行
する符号化命令アドレス、典型的にはすぐ前を先行する
符号化命令アドレス、の対応する7−ビットセクション
と比較されて先行する7−ビットセクションと異なるか
どうかが確認される。異なる場合には、それは圧縮符号
化命令アドレスの一部として出力され、対応する連続ビ
ットは1にセットされ、先行する7−ビットセクション
と同一であれば、先行する符号化命令アドレスの対応す
るセクションとは異なるより上位の7−ビットセクショ
ンがある場合しか出力されない。その唯一の例外は最下
位ビットに関連する最初の7−ビットセクションであ
り、それは常に出力される。
場合に生じるように、符号化命令アドレスが先行するそ
れと完全に異なる場合には、圧縮符号化命令アドレスは
実際上オリジナル符号化命令アドレスよりも多くのビッ
トを使う。特に、図4について、5つのセクション31
0,320,330,340,350を出力する必要が
ある場合には、圧縮符号化命令アドレスに対して40ビ
ットが必要であることが判る。それにもかかわらず、命
令セット間のスイッチは典型的には比較的まれに生じ、
命令アドレスはしばしばすぐ前を先行する命令アドレス
に極めて類似しており、したがって大概の符号化命令ア
ドレスは図4に示す圧縮技術を使用する結果著しく圧縮
することができる。
そのセクション内のビット列は命令セットを暗黙的に識
別することが判る。特に、列360はARM命令セット
を識別し、列370はThumb命令セットを識別し、
列380はJava命令セットを識別する。
の代表的な系列であり、本発明の好ましい実施例に従っ
て作り出される圧縮符号化命令アドレスを示す。命令ア
ドレス400はARM命令に関連しており、16進記法
で書かれる。図3に関して、符号化の結果最下位の2つ
の“0”ビットが除去され、パターン“001”が最上
位の3ビットとして加えられることが判る。このような
符号化命令アドレスに圧縮技術が適用されると、圧縮符
号化命令アドレス430が生じる。図5の例では、次の
命令410はThumb命令であり、したがって最下位
の“0”ビットが除去され、パターン“01”が圧縮の
前に最上位の2ビットとして加えられる。次に、圧縮技
術を適用する結果として圧縮符号化命令アドレス440
が発生される。この段階において、命令セットに関する
情報は命令アドレスにより効率的に符号化されている
が、1つのARM命令に1つのThumb命令が続くた
め、圧縮プロセスはなんら節減されていない。
420であれば、圧縮符号化命令アドレス450が作り
出される。したがって、その32−ビット命令アドレス
はその命令セットに関する情報と共に2バイト、すなわ
ち16ビット、により表現され、これはトレースバァッ
ファ内に格納する命令アドレスおよび命令セットの両方
を発生するための非常に効率的な方法を表わしている。
命令アドレス420に続く任意のThumb命令アドレ
スに対しても著しく圧縮される見込みがあることが判
る。
明の好ましい実施例に従ったオンチップトレースモジュ
ール10の制御論理120内に設けることができる論理
のブロック図である。レジスタ610が設けられその最
上位3ビット607は予め定められたビットパターン、
好ましい実施例では“001”、を格納する。レジスタ
610の最下位32ビットはパス602を介して32−
ビット命令アドレス605を受信する。さらに、パス6
03を介して通されレジスタ610内に格納された32
−ビット命令アドレスが関連する命令を識別する命令セ
ット識別子を格納するラッチ630が設けられる。
タ610の内容およびラッチ630の出力を受信し、命
令セット識別子に応じてレジスタ610内の35−ビッ
トから予め定められた33−ビット列を選択するように
される。33−ビットセクター論理620の一例を図7
に示す。
ー620は好ましくは3つの別々の入力701,70
2,703を受信するマルチプレクサ700を含んでい
る。入力701はレジスタ610から最上位の33ビッ
トを受信し、入力702は1−33ビットを受信し、入
力703は最下位の33ビットを受信する。マルチプレ
クサ700は命令セット識別子の値に応じてその33−
ビット入力の一つをパス710上に出力する。特に、命
令セット識別子が命令はARM命令であると識別する場
合には、マルチプレクサ700はパス701を介して受
信した入力を出力し、命令セット識別子が命令はThu
mb命令であると識別する場合には、マルチプレクサ7
00はパス702を介して受信した入力を出力し、命令
セット識別子が命令はJava命令であると識別する場
合には、マルチプレクサ700はパス703を介して受
信した入力をパス710を介して出力する。
れた33−ビット値は5つの異なるセクションへ分割さ
れることが判る。好ましい実施例では、これは33−ビ
ット幅バス710を単に4つの7−ビット幅バス62
2,623,624および625と1つの5−ビット幅
バス626へ分割して行われる。マルチプレクサ700
からの出力の最下位7ビットは、最下位7ビットは常に
出力されるため、直接圧縮符号化命令アドレス発生器へ
通される。次の最下位7ビットはパス623を介して比
較器670へ通され、その次の最下位7ビットはパス6
24を介して比較器660へ通され、さらにその次の最
下位7ビットはパス625を介して比較器650へ通さ
れ、最上位5ビットパス626を介して比較器640へ
通される。
示す比較器は7−ビット数を処理するようにされてお
り、したがって比較器650,660および670用に
使用される。比較器640は構造的に図8の比較器に類
似しているが、7ビット数ではなく5ビット数を処理す
る。
り受信されると、レジスタ800内に一時的に格納され
る。次に、それは比較器論理830へ出力される。この
時、比較器論理830もすぐ前を先行するトレースされ
た命令アドレスの対応する7−ビットセクションをレジ
スタ820から受信するようにされる。比較器830は
2つの7−ビット値が同一であるかどうか比較し、同一
であれば比較器論理830は差信号として論理0値を発
生する。そうでなければ、比較器論理830は差信号と
して現在の7−ビットセクションが前の7−ビットセク
ションとは異なることを示す論理1値を発生する。次の
7−ビットセクションが受信されると、それはレジスタ
800内に格納され、レジスタ800の前の内容は次の
プロセスで使用するためにレジスタ820へ通される。
0,660および670により作り出される異なる信号
の各々が、圧縮符号化命令アドレスの一部として出力さ
れる各セクションに関連づけられる連続ビットを発生す
るのに使用される連続ビット発生器680へ通される。
連続ビット発生器680を形成するのに使用することが
できる論理の例が図9に示されている。
33−ビット符号化命令アドレスのより上位セクション
に関連する差信号を処理している任意他のORゲートか
らの出力と共に対応する差信号を受信するようにされた
一連のORゲート910,920および930を含んで
いる。したがって、比較器640からパス686を介し
て発せられる差信号はパス950を介して直接出力さ
れ、パス625を介した33−ビットセクター620か
らの7−ビットセクション出力に対する連続ビットを形
成する。パス626を介して33−ビットセクター62
0から出力される最上位セクション出力に対する連続ビ
ットは常に論理0値であり、それはそのセクションが常
に圧縮符号化命令アドレスが出力される場合の最後のセ
クションであるためである。したがって、パス940は
論理0へハードワイヤされてそのセクションに対する連
続ビットを提供する。
6を介して差信号を受信するようにされており、パス6
85または686上の差信号が論理1値であればパス9
60を介して論理1値を有する連続ビットを発生する。
パス960を介したこの連続ビットはパス624を介し
て33−ビットセクター620により出力される7−ビ
ットセクションを修飾する(qualify)のに使用
される。
をし、その対応する差信号がセットされるかまたは符号
化命令アドレスの任意のより上位のセクションで実施さ
れる比較に関連する差信号がセットされる場合に、対応
する連続ビットが論理1値にセットされることを保証す
る。パス970を介して出力される連続ビットはパス6
23を介して出力される7−ビットセクションと一緒に
使用され、パス980を介して出力される連続ビットは
パス622を介して出力される7−ビットセクションと
一緒に使用される。
を最下位7−ビットセクションで始まる33−ビットセ
クターにより出力されるその関連するセクションと結合
することにより圧縮符号化命令アドレスを形成し、次に
圧縮符号化命令アドレスのどれだけをトレースバァッフ
ァ12へ出力するかを決定することである。論理0連続
ビットに遭遇するとすぐに、トレースバァッファへさら
にセクションを出力する必要がなくなる。この機能は図
6に示す圧縮符号化命令アドレス発生器690により実
施される。このプロセスは図10に略示されている。図
10に示すように、最下位7−ビットセクションで開始
して、7−ビットセクション1000は8−ビットセク
ションへ変換され適切な連続ビットへ1010を加える
ことにより最上位ビットとして出力される。このプロセ
スは各7−ビットセクションに対して次々に繰り返され
る。
1020は連続ビット1060と共に2つの論理値10
40および1050をプリペンドすることにより8−ビ
ット出力へ拡張される。前記したように、このセクショ
ンは必ず圧縮符号化命令アドレスの最後のセクションで
あるため、この場合連続ビットは常に論理0値である。
ト値が圧縮符号化命令アドレス発生器から出力され、前
に連続ビット発生器680により発生されたイネーブル
ビットが長さ値を作り出すのに使用され、それは40−
ビット値内のどれだけ多くの8−ビットセクションをト
レースバァッファ12へ出力するかを決定するのに使用
される。例えば、パス682上のイネーブルビットおよ
びORゲート910からの出力がセットされると、2つ
の最上位8−ビットセクションが圧縮符号化命令アドレ
スとしてトレースバァッファ12へ出力される。
ト情報に命令アドレスを取り入れ、その符号化命令アド
レスを圧縮して格納のための効率的な表現を提供する効
率的な技術が記述されたきたことがお判りであろう。好
ましい実施例では、この技術はトレーシング機構に応用
され、圧縮データはトレースバァッファ12内に格納さ
れる。次に、圧縮符号化命令アドレスを伸張するための
伸張論理を汎用コンピュータ16内に設けることができ
る。圧縮技術に関する詳細な検討が既になされているた
め、当業者ならば伸張がどのように働くかが容易にお判
りであろう。簡単に言えば、伸張器が圧縮符号化命令ア
ドレスを表わす8−ビットセクション系列を読出し、各
8−ビットセクションの最上位ビット位置内の連続ビッ
トの値により示される、1つの8−ビットセクションか
ら5つの8−ビットセクションまで系列は変動する。
符号化命令アドレスに対して、符号化命令アドレスは各
8−ビットセクションから連続ビットを剥ぎ取り、次に
最下位7−ビットセクションで開始して7−ビットセク
ションを連結することにより再構成することができる。
最下位33−ビットは符号化命令アドレスを表わすよう
になり、その33−ビット値の最上位3−ビットパター
ンが命令セットを識別する。命令がJava命令であれ
ば、符号化命令アドレスの最下位32−ビットを出力す
るだけで32−ビット命令アドレスを再生することがで
きる。命令がThumb命令であれば、符号化命令アド
レスを1位置だけ左へシフトさせ最下位32−ビットを
出力することによりオリジナル命令アドレスが与えら
れ、最下位ビットは論理0値となる。同様に、命令がA
RM命令であれば、符号化命令アドレスを2位置だけ左
へシフトさせ最下位32ビットを出力することによりオ
リジナルARM命令を出力することができ、この場合最
下位2ビットが論理0値となる。
命令アドレスに対しては、圧縮符号化命令アドレス内に
含まれる各セクションから連続ビットを除去することが
でき、命令アドレスの最下位ビットは最下位セクション
で開始される任意のこのようなセクションを結合するこ
とにより再構成される。圧縮符号化命令アドレス内のセ
クション数に応じて、これにより命令アドレスの第1の
7,14,21または28ビットが生じる。残りのビッ
トは先行する伸張命令アドレスと同一であるため、その
前の伸張命令アドレスから決定することができる。
シング技術の詳細な説明は、英国、キャンブリッジ、A
RM社から公然と入手できるEmbedded Tra
ceMacrocell(REV1)記述と一緒に読む
べき下記のアクチュエータ記述に与えられている。 1.1 このドキュメントは下記の用語および略語を使用する。 用語 意味 現在プロトコル ETM7およびETM9に使用されたETMプロトコル 新プロトコル ETM10用プロトコル ETMパケット 1サイクル内にETM FIFO内に置かれた間連デー タの数バイト。1サイクル内にETM10 FIFO内 に3パケットまで置くことができる。 パケットヘッダー パケットタイプおよびパケット内の後続バイトをどのよ うに解釈するかを指定するETMパケットの第1バイト コンテキストID 異なるコードストリームを識別して区別するのに使用さ れるCP15レジスタ13を介してアクセスされる32 ビット。この値はETM7およびETM9ドキュメント 内で予めプロセスIDとして参照された。やはりCP1 5レジスタ13内に配置されやはりプロセスIDと呼ば れる7ビットFCSE PIDとの混乱を避けるため、 名称が変更されている。 トレース捕捉装置 ETM,TPA,論理解析器、またはオンチップトレー スバァッファにより作り出されるトレースを捕捉するこ とができる任意の装置 LSM ロードまたはストア倍数命令、LDM,STM,LDC またはSTC命令 例外 IRQ,FIQ,PABORTまたはリセット表明によ り割り込まれた命令
ある。ETM10は命令およびデータトレーシングが可
能なリアルタイムトレースモジュールである。機能はA
RM7およびARM9に対する従来のETMインプリメ
ンテーションのそれと同様である。読者はEmbedd
ed Trace MacrocellSpecifi
cation(ARM IHI 0014D)に概説さ
れているオリジナルETM仕様に精通しているものとす
る。この仕様はETM10と従来のETMバージョン間
の共通のアクチュエータ特徴を再び述べようとするもの
ではなく、ETM仕様のETM10に対して変更される
部分を検討するものである。これらの変更の大部分はA
RM1020Eを適切にトレーシングすることができる
新ETMプロトコルの生成に関係している。このプロト
コルは将来のARMコアもトレーシングするために拡張
可能とされる。
ETM,トレースポート解析器、およびソフトウェアデ
バッガー(ADW等)を含むARMのRealTime
Debugソリューションの一体部である。
ocellは2つの部分、トレースブロックおよびトリ
ガーブロックからなる。トレースブロックは圧縮トレー
スを生成し狭いトレースポートを横切ってそれを出力す
る。トリガーブロックはユーザがトリガー状態を指定で
きるようにするプログラマブルリソースを含んでいる。
トリガーブロックリソースはどの命令およびどのデータ
転送がトレースされるかを制御するフィルタとしても使
用される。全てのETM構成レジスタ(トリガーブロッ
クリソースを含む)がJTAGインターフェイスを介し
てプログラムされる。ユーザはソフトウェアデバッガー
を使用してこれらのレジスタにアクセスする。トレース
が捕捉されると、デバッガーにはトレースを伸張してユ
ーザに実行されたコードの全分解を提供する責任もあ
る。デバッガーソフトウェアはETMトレースポート出
力をリアルタイムで処理することができないため、トレ
ースは最初に外部Trace Port Analys
er(TPA)内へ捕捉される。TPAは完全に機能的
な論理解析器、またはAgilent nTraceb
ox等の特定ETMデバイスとすることができる。トリ
ガー状態が生じてデバッグランが完了すると、デバッガ
ーはTPAからトレース情報を抽出する。説明のこのハ
イレベルにおいて、ETM10はETM7およびETM
9と機能的に同一である。
いはあるがETM7およびETM9により提供されるの
と等価の命令およびデータトレーシング能力を提供す
る。この章はETM10に対するETMアーキテクチュ
アに対してなされる変更およびなぜ変更されるかを説明
する。多くの変更は伸張ソフトウェアにしか影響を及ぼ
さず、エンドユーザだけでなく残りのトレースツールキ
ットソフトウェアには不可視である。しかしながら、あ
る変更はプログラマーのモデルに影響を及ぼすかあるい
はETM7およびETM9からのトレーシング動作に小
さな差を生じる。このような変更がこの章で指示され
る。新プロトコルの徹底的な説明を必要とするETM1
0に対する任意の変更は5章のプロトコル説明において
より徹底的に扱われる。
ng)”を実現し、それは分岐を予測し、正規の命令ス
トリームから引出し、プログラム内の次の命令と並列に
有効に実行できることを意味する。これらの畳み込まれ
た分岐は分岐ファントムと呼ばれる。旧プロトコル内の
PIPESTAT符号化はサイクル当たり実行される1
命令しか考慮しない。分岐ファントムがトレースされる
ようにするために、命令と並列に畳み込まれた分岐を表
わすPIPESTATフィールドに新符号化が追加され
る。5章のETM10プロトコル仕様内に新PIPES
TATが与えられている。
変更も必要とする。分岐が畳み込まれると、有効に2つ
の命令が並列に実行される。これら2つの命令に対する
PC値は任意の識別可能な関係を有することが保証され
ないため、2つのアドレス比較を各サイクルで行わなけ
ればならない。これは各アドレスレジスタが2つの比較
器を必要とすることを意味する。トレーシングがイネー
ブルされるかどうかを決定する時に、両方の比較器出力
が考慮される。(これら2つの命令のいずれかがトレー
スされる場合には、トレーシングはそのサイクルでイネ
ーブルされる)。分岐畳込みによりせいぜい1つの追加
命令しかトレースされないことを保証するために特別な
注意がなされる。一般的に、ユーザはTraceEna
bleまたはViewDataを適切にプログラムする
ためにいつ分岐が畳み込まれ次の命令と一緒に並列に実
行されるかを知っている必要がない。
M10対ETM7/9からの僅かに異なる動作を有する
ことを可能とする。ここでは、イベントが典型的に使用
される方法による機能の多くの損失があるとは感じられ
ない。カウンタはサイクル当たり1回しかカウントダウ
ンできないが、単一アドレス比較器が使用される場合に
はカウンティングはアクセスの正確なカウントを与えて
いる。さらに、Trigger,TraceEnabl
e,ViewDataまたはExtOutイベントへの
機能の損失はなく、イベントは命令またはデータ転送が
個別にそれをアクティブとしている、所望の動作時にア
クティブである。シーケンサーが同じサイクル内に多数
の遷移要求を受信する場合には、遷移はなされずシーケ
ンサーはオリジナル状態にとどまる。この動作はETM
7およびETM9のそれと同一である。しかしながら、
ARM10がより多くの並列実行をサポートするため、
ETM10はサイクル内で多数の遷移要求のより多くの
発生を有することがある。ユーザはシーケンサーをプロ
グラミングする時にこの動作を知る必要があるが、単純
なイベントに対するワークアラウンドがある。所望の動
作がイベントAに基づいた状態1−〉2およびイベント
Bに基づいた状態2−〉3からの遷移であれば、プログ
ラム1−〉2がイベント(A&IB)上に生じ、2−〉
3がイベントB上に生じ、1−〉3がイベント(A&
B)上に生じる。このようにシーケンスをプログラミン
グすることによりイベントAおよびイベントBの同時発
生の適切な処理が保証される。
グ ARM10は他のメモリ命令を含む他の命令を単一の顕
著なミスの下で実行できるようにする非ブロッキングデ
ータキャッシュを有し、データキャッシュは狂った順で
データをコアへ戻すことができる。現在プロトコルはロ
ードデータが正しい順でFIFOに配置されることを期
待するため、この特徴はロードデータ追跡問題である。
データパケットは一部ヘッダーバイトによりプレフィク
スされて狂った順のロードミスデータを収容する。ヘッ
ダーバイトは5章に詳細に説明されている。
ータ比較器への変更も必要とする。ETM7およびET
M9と同様に、ETM10は一対のアドレス比較器と一
緒に使用されるデータ比較器を有する。使用時に、比較
器はデータもマッチする場合のマッチしかトリガーしな
い。他のメモリアクセスはミスの下で生じることがある
ため、ミスとなるロード要求に対するアドレスがマッチ
したかどうかを記憶にとどめるために各比較器にビット
が追加される。ロードミスデータが戻されると、データ
値比較がなされ、比較結果を限定するために保存された
アドレスマッチビットが使用される。次に、このマッチ
ビットはクリアされる。場合によっては、ユーザは比較
器をイネーブルするためにミスデータが戻されるのを待
機したくないことがある。替わりに、ロードミスが常に
データアセンブリだけに基づいてトレースされるように
したいことがある。両方のユーザモデルをサポートする
ために、各比較器に対してどのモデルがイネーブルされ
るかをユーザが指定できるようにするビットがアドレス
アクセスタイプレジスタへ加えられている。比較におけ
るロードミスデータに対する待機が望まれる場合には、
ユーザはアドレスアクセス型レジスタのビット8、Ex
atx Matchビット、をセットしなければならな
い。(アクセスタイプレジスタの詳しい情報については
参照1を参照されたい)。トリガーその他のイベントを
生成するためにデータ値が使用される場合には、データ
比較が生じるのを待機することは有用である。比較器が
トレースフィルタリングに使用されある無関係なトレー
シングが問題とされない場合には、アドレスのみに基づ
いたトレーシングロードミスが有用である。ロードデー
タは狂った順で戻されることがあるため、ユーザはデー
タ値を使用して、シーケンサ遷移等の、イベントを生成
することにより狂った順のイベントが生じることがある
ことを知らなければならない。ARM10の非ブロッキ
ングキャッシュがプログラムされたイベントに影響を及
ぼすことがあることにユーザが関係する場合には、この
特徴はcp15構成レジスタ(r1)へのライトを介し
てコア内でディセーブルすることができる。詳細な情報
についてはART1010E TRM(参照3)を参照
されたい。
断、割込み、またはソフトリセットが生じる時の比較器
動作を指定するのに使用される。これらの状態は一般的
に例外と呼ばれる。データアクセスが中断されビット7
が表明されると、データマッチが要求されるかどうかに
無関係に、比較器はマッチ出力とはならない。比較器が
命令アドレスと結ばれる場合には、例外とマークされる
命令でのマッチを防止するのに正確なマッチビットが使
用される。例外となる命令およびデータ要求は通常中断
または割込み状態が解決されると再試行されるため、比
較器が1回しか点火しない場合にこの動作が望ましい場
合が多い。データアクセスケースでは、ビット7が表明
されない場合には、データ値は無効と推定されるため中
断されたアクセスにより純粋にアドレスに基づくマッチ
となる。
して同じであるため、同じExact Matchビッ
トがロードミスおよびデータ中断の適切な処理を決定す
るのに使用される。Exact Matchビットのデ
フォルト値は0である。
トを戻すことができる64ビットデータバスを有する。
この64ビットデータバスをサポートするために、ET
M10は単一サイクル内に2つの隣接データ値をトレー
シングできなければならない。一方または他方の値だけ
のトレーシングをサポートするために、2つのView
Data出力が発生される。しかしながら、まだイベン
ト用の1つの出力とTraceEnable用の1つの
出力しかない。同じサイクル内にアクセスされる2つの
隣接32ビット要求によりカウンタの1減分またはシー
ケンサによる1つだけの状態変化しか生じないため、1
つのイベント出力を有することはカウンタおよびシーケ
ンサ論理に影響を及ぼすことがある。イベント論理をプ
ログラミングする時にユーザはこれを考慮しなければな
らないが、それは重要な問題とは思われない。
有し、それによりロード/ストアユニットがデータアク
セスを反復する間に、以後LSMと呼ぶ、多数の命令の
ロードまたはストアの下で他の命令を実行することがで
きる。(すなわち、LSMの実行はコアを停止させな
い)。これをサポートするために、アドレス比較器出力
およびTraceEnableの表明へのある変更が必
要である。・LSM命令を反復しながらそれをアクティ
ブにトレーシングする時は常に、TraceEnabl
eが表明されたままであるかどうかにかかわらず、LS
Mが完了するまでそれはアクティブのままである。(こ
のルールの唯一の例外はオーバフローケースである)。
このルールにはLSMの下で実行された他の命令が、本
来トレースされるものかどうかにかかわらず、トレース
されてしまうという副作用がある。しかしながら、定義
によりLSMの下で実行する命令はデータ命令であるは
ずがないため、それにより余分なデータパケットが生じ
ることはない。・比較器がLSMの命令アドレス上で活
性化される時は常に、その比較器のViewData出
力は全命令が完了するまで表明されたままである。それ
はユーザの意図がこの命令に関連する全てのデータパケ
ットをトレースすることであるためである。同様に、V
iewDataおよびEvent範囲出力はLSM命令
の完了まで表明されたままである。イベント単一アドレ
ス比較器出力は定義により単一サイクルしか表明しない
ため、表明されたままではない。・LSMに関連するデ
ータ転送がトレースされていると、通常トレースされな
いその命令に関連する後続転送はプレースホルダーパケ
ット出力を有する(トレースされない値−5章参照)。
これらのプレースホルダーパケットはどの語がトレース
されたかを確認する必要がある。
ード/ストアデータアドレス(およびデータ値)に基づ
いて命令トレーシングがイネーブルされることを考慮す
る。ARM10上で、LSM命令はトレーシングイネー
ブリングイベントが生じる時にもはやコアの実行段階に
はないことがあるため、この命令アドレスは周りに維持
して特殊な方法で同報してこの特徴をサポートする必要
がある。これはProgress TFOパケット内の
LSMを使用して遂行される。Trace Packe
t Offsetは5.2.4に記載されている。
プのトレーシングも考慮する(すなわち、ロード、スト
ア、およびCPRT命令以外のデータ値のトレーシン
グ)。この補助データタイプトレーシングはETMトレ
ーシングの拡張を考慮することを意味し、それはETM
の将来バージョンにおける外部ASICデータのトレー
シングを含むことができる。補助データトレーシングの
より多くの情報が5章のデータヘッダー検討に与えられ
ている。
期化のためにTFOパケットが必要である時は常に同報
される。ETM10に対して、CONTEXTID値は
それらがCONTEXT ID変化となるCPRT命令
に対するデータトレーシングを単純にイネーブルして更
新される時に出力される。このデータパケットに対する
一意的データヘッダーにより伸張器はデータが新しいC
ONTEXT ID値であることを認識することができ
る(データヘッダーは5章で検討される)。ETMはま
たトレースがイネーブルされる時は常に、また5.2.
4章で説明されるトレース同期サイクル中に現在CON
TEXT ID値を同報する。CONTEXT ID更
新命令はMCR c15,0,rd,c13,c0,1
である。
イス上のもう一つの32ビットポートを必要とする替わ
りに、ETM10はCONTEXT ID更新を認識し
て現在CONTEXT ID値を内部シャドーレジスタ
内に維持する。コヒーレンシを適切に維持するために、
ETMがPOWERDOWNモードである時でも(ET
Mレジスタ0×4、ビット0が表明される)このレジス
タは常に更新される。
T ID値を使用することがETM10に対する追加特
徴として加えられる。これは予期CONTEXT ID
値を指定することができるETM内の新しいプログラマ
ブルレジスタセットを介して実現される。
用され、データ比較器マスクと同様に働く。
ビット9:8はCONTEXT ID比較器が使用され
るかどうかを示す。00の値によりCONTEXT I
D比較器は無視される。01,10または11の値によ
りアドレス比較器は、CONTEXT IDマスクを考
慮した後で、現在CONTEXT IDがそれぞれCO
NTEXT ID比較器1,2または3内のそれとマッ
チする時だけマッチするようにされる。
ロック内から直接アクセスできるように新しいイベント
リソースが割り当てられる(ARM IHI 0014
Dの3.3.4参照)。これらの新しいリソースは0×
58−0×5Aへマッピングされる。
れて存在するCONTEXT ID比較器数を示す(A
RM IHI 0014Dの4.2.2参照)。
を越えるコア周波数で動作することができる。従来のE
TMインプリメンテーションは周波数が200MHzを
越えることがない。ETMトレース出力に対して得られ
る最大出力周波数はトレース解析器の最大サンプル周波
数およびパッドで得られる最大出力周波数によって決ま
る。AgilenおよびTektronix解析器は、
それぞれ、333MHzおよび400MHzの最大周波
数で捕捉することができる。しかしながら、ARMパー
トナーから得られる任意のCMOSパッドはこの周波数
においてクリーンで、トレース可能な信号を供給できる
可能性が非常に高い。したがって、パッドは速度制限要
因と考えられる。より大きなパッドおよび/またはボー
ドレベルバァッファリングを使用してある速度改善を得
ることができる。これらの技術により我々は200MH
zにおいて信頼できるトレースを行うことができる。よ
り高速のトレーシングに対しては、2つのオプションが
ある。ピンカウントを2倍にし周波数を半分にすること
ができる(デマルチプレクストレースポート)、あるい
はオンチップトレースバァッファを利用することができ
る。両方の技術に利点および欠点がある。
ジ制限および追加ピンの高いコストによりあるパートナ
ーにとって魅力的なオプションではない。また、この技
術はTPAの変更および、恐らくは、第2のマイクロコ
ネクタの追加が必要であり、それはより広い面積をとり
さらにコストが加算される。さらに、この技術にはやは
り400MHzの速度制限がある。熱工程で作られたA
RM10プロセッサは恐らくこれらの速度を越える。
度で信頼できるトレーシングおよび追加ピンをなんら必
要としない利点がある。事実、全てのトレース捕捉がオ
ンチップバァッファを利用して行われる場合には、オン
チップバァッファがJTAGポートを介したMulti
−ICEを経てダウンロードされるため外部可視ETM
ポートは解消することができる。このソリューションの
欠点はオンチップバァッファのサイズが典型的に極めて
小さく、8−16KB程度であることである。したがっ
て、トレーシング深さが制限される。大きなオンチップ
トレースバァッファが可能であるが、ASICのサイズ
に直接インパクトを与え、小さなトレースバァッファで
あっても同じ設計で与えられるよりも多くのシリコンス
ペースを使用することがある。
前記した両オプションがサポートされるように計画され
る。高速トレーシング用デマルチプレクスドトレースポ
ートによりARM10200 rev 1テストチップ
が造られる。オンチップトレースバァッファはARM1
0200 rev 1テストチップの一部ではない。
の仕様が作成されており、インプリメンテーションが進
行中である。5.2章に記載されている新4ビットPI
PESTAT符号化をサポートする重要ではない変更に
より、この設計からETM10コンパチブルオンチップ
トレースバァッファを生成することができる。ETM1
0をサポートするのにどんなTrace Captur
e Device変更が必要であるかの詳細な情報につ
いては参照4を参照されたい。タイムスケールに応じ
て、ETM10コンパチブルオンチップトレースバァッ
ファは、ダイナミックトレース圧縮等の、追加特徴を提
供することができ、事実FIFO置換として直接ETM
10設計内に一体化することができる。
24サイクル毎に5−バイト命令を介して、また102
4サイクル毎に5−バイトデータアドレスを介して生じ
る。ETM10に対しては、これらの同期点は新しい1
2ビットプログラマブルレジスタを介して構成すること
ができる。構成可能な同期によりトレースバァッファサ
イズの全範囲を利用するのが容易になる。オンチップト
レースバァッファ等の小型トレースバァッファはトレー
スの大きな部分を投げ出すのを回避するために頻繁に同
期することができ、大型トレースバァッファは不要同期
の無駄なトレーススループットを回避するためにたまに
同期することができる。デフォルトカウンタ値は102
4サイクルである。データアドレスおよび命令アドレス
同期が同時に生じるのを防止するために、データアドレ
ス同期はカウンタがその中点値に達する時に生じ命令ア
ドレス同期はカウンタが0に達する時に生じる。新しい
同期レジスタに対するアドレスは0×78である。
メモリマップリソース入力はETM10に対してサポー
トされない。ARM10アーキテクチュア内に存在する
余分な複雑さにより外部デコーダに対するサポートの実
現はより困難となる。外部イベントはEXTINを利用
することによりまだトレーシングを制御することがで
き、それはcycle accurateとなる(4.
15で検討されている)。
d ICE論理内のデータ値比較レジスタを余分な外部
レジスタリソースとして使用することができる。この機
能はEmbedded−ICEから来るRANGEOU
T出力を使用して遂行される。ARM10デバッグユニ
ットにはデータ値比較機能がないためこれらのRANG
EOUT出力はない。したがって、このリソース再使用
はETM10に対しては不可能である。これらのリソー
スはもはやプログラムされないためプログラマーのモデ
ルへのそのインパクトは少ない。
ーへの直接分岐は間接分岐としてトレースしなければな
らないと指定している。ファントム分岐は提案されたプ
ロトコル内で間接分岐へ変換することができないため、
もはやこれは常に可能ではない。したがって、直接分岐
が分岐ファントムであったかどうかに無関係に、一貫性
および単純性のために割込みベクトルへの直接分岐はも
はや間接分岐としてトレースされない。5.3.1章に
記載されているアドレスバイト5の特殊な符号化により
PABORT,FIQ,IRQ,DABORT,および
RESETベクトルへの分岐を検出することができる。
スタ0×01)内に存在する4−ビットETMプロトコ
ルバージョンフィールドはETM用の将来のプロトコル
バージョンをサポートするのに不十分であることが確認
されている。したがって、マイナーおよびメジャー訂正
番号だけでなく意図するARMコアを指定するフィール
ドを含む新しいETM IDレジスタが定義されてい
る。このレジスタはレジスタアドレス0×79へマッピ
ングされ、構成レジスタ内のビット31がセットされる
時は常に有効と見なされる。それによりETM7および
ETM9はIDレジスタを必要とせずにプロトコルバリ
アント0−7を使用することができる。ETM IDレ
ジスタは下記のフィールド内へ分散される32ビット値
を含む。
る。
える新しいイベントリソースが含まれる。これにはリソ
ース番号101 1111が与えられ(ARMIHI
0014Dの3.3.4章参照)、Trace Sta
rt/Stopがアクティブである時は常に表明しなけ
ればならない。開始/停止リソースをサポートするET
MバージョンはETM制御レジスタ内のビット23も表
明する。
レースディセーブル状態値をサポートするためのマイナ
ー変更が必要である。すなわち、それらはTRおよびT
D PIPESTATsを検出するためにPIPEST
AT[3]/TRACESYNCがローであることを保
証しなければならない。AgilentnTraceは
マイナーハードウェア変更も必要である。デマルチプレ
クド、ハーフスピードETMポートを介した高速トレー
シングをサポートするために、TPAは各サイクル内で
トレースデータの2コアサイクル分を捕捉できなければ
ならない。このデータはMictorコネクタを横切っ
て同報される。したがって、多数のコネクタに対するサ
ポートも必要である。これらの変更に関するより詳細な
情報については参照4を参照されたい。
を介して発生されるイベントは精密ではなく、それはユ
ーザはデータアクセスまたはEventを発生した命令
をトレースすることを保証されなかったことを意味す
る。ETM10に対してはもはやそうではない。Vie
wDataおよびTraceEnableの表明はそれ
がどのように発生されるかにかかわらず常に精密であ
る。
タ ETM7およびETM9レジスタに対して、FIFOF
ULLが表明される前にFIFOが達しなければならな
いレベルをセットするのに0×0Bが使用された。ET
M10、FIFOFULLに対してこのレジスタは使用
されず替わりに、イネーブルされると、FIFOFUL
Lはその中に新しいパケットが置かれる時は常に表明さ
れる。ETM10はETM7/9よりも深くパイプライ
ンされ、FIFOFULLはこのように使用される場合
に有用となるのに十分早くしか表明できない。ETM1
0において、FIFOFULLレジスタはFIFOサイ
ズを指定するリードオンリーレジスタとして再使用され
る。FIFOサイズはETM7/9内でソフトウェアに
より決定することができないサイズである。
RQは無視される。したがって、トリガーが生じている
ことを認識することができる他の機構を有することが有
用である。このために、単一ビットTRIGGER出力
がETM10用ETMインターフェイスに追加されてい
る。TRIGGER出力は4−ビットTRIGGER状
態がPIPESTATバス上で駆動される時は常に表明
される。次に、この信号を割込みコントローラが使用し
て割込みの表明を介してトリガーのコアを知らせること
ができる。TRIGGER出力は不要であれば追加しな
いままとすることができる。
続的にカウントするのに使用することができる余分なビ
ット17を有する。このビットはその動作が冗長性で検
証することが困難であるため除去されている。連続的カ
ウンタが欲しい場合には、ユーザは常にアクティブとか
べきハードワイヤである外部リソース15に等しいイベ
ントを単純にプログラムする。
ATおよびTRACEPKT、からなり共にTRACE
CLK(GCLKと同じ周波数を有する)の立上り縁に
おいて有効である。PIPESTATは分岐ファントム
用符号化スペースを追加するためにETM10に対して
3ビットから4ビット信号へ拡張されている。TRAC
EPKTは従来のETMバージョンから変更されておら
ず、構成に応じて4,8,または16ビットとすること
ができる。同期はもう一つの機構を介して達成されるた
め、TRACESYNCピンはプロトコルから除去され
ている。全般的結果は従来のETMインプリメンテーシ
ョンと同じピンカウントを有するトレースポートとな
る。
TATs 下記の命令と並列に実行される分岐ファントムを考慮す
るために8つの新しい分岐ファントムが付加される。こ
れらの符号化は常に実行ストリームの最初である分岐命
令として解釈しなければならない。直接分岐だけが予測
され、分岐ファントムはFIFO内にデータパケットを
置くことはない。並列に実行されるいかなる命令も不正
命令ストリームからのものでありしたがってキャンセル
されるため、誤予測される畳込み分岐により正規のIE
/IN PIPESTATが生じる。
Ts ‘D’で始まる全てのにニューモニックはある種のデー
タパケットがサイクルするFIFO内に置かれいずれT
RACEPKTピン上に出力されることを意味する。新
プロトコルに対する‘パケット’という語はFIFO内
の単一バイトではなくFIFOに置かれる多バイト量の
ことであることをお判り願いたい。データパケットは分
岐アドレス、ロード/ストア転送、CPRT転送、また
は補助データパケットとすることができる。ETM10
は1サイクル内に最大3つのデータパケットをFIFO
内に置く(2つのLDST/CPRT転送と1つの分岐
アドレスパケット)。1サイクル内3パケットはプロト
コルではなくハードウェアの制約である。別々のデータ
および分岐PIPESTATsの必要性はプロトコルに
パケットヘッダーバイトを追加することにより除去され
ている。DWおよびDN状態値を追加することによりに
任意のサイクルにデータパケットを付加することができ
る。この追加はLDSs/STCsの長さを決定するコ
プロセッサマップがもはや不要であり、可変長LDC/
STC命令のトレーシングがサポートされることを意味
する。パケットヘッダーバイトについては5.3章によ
り詳しく説明されている。
ことを示すもの、は常に命令が実行されている第1サイ
クル上に与えられる。この区別は数サイクルに対してデ
ータを実行して戻すLSM命令にとって重要である。こ
の動作は、LSMが実行されたLASTサイクルに実行
したPIPESTAT値を与える、従来のプロトコルバ
ージョンとは異なっている。
N/DN)は2つの理由により生じる。命令がその条件
コードに失敗したか、または例外により実行されなかっ
た。前記したように、可能な例外は割込み、プリフェッ
チ中断、およびリセット表明を含んでいる。データ中断
となるロード/ストア命令は実行されていると考えられ
るためIN/DN状態を与えられない。伸張器は例外に
より命令の実行が防止される時を知る必要がある。この
情報は前のLSM命令からの遅いデータパケットが例外
命令に付加されるのを防止するのに使用される。(“実
行されない”PIPESTATを有する命令が考慮され
る唯一のデータパケットは分岐アドレスである)。
ースFIFOデータが存在しないことを意味する。なぜ
それが起こるかについて2つの理由がある。 ・FIFO内にトレースされるデータがない(FIFO
が空でなければ、状態はWTである)。特に、トレース
がディセーブルされるすぐ後で次にイネーブルされるま
で生じる。 ・ETM同期のためにTFOが同報される。
ると、伸張ソフトウェアはTRECEPKTを見てTF
Oが同報されているかどうかを確認する必要がある。従
来のETMインプリメンテーションで行われるように、
cycle−accurateおよびnon−cycl
e accurateトレース間を区別するのにTRE
CEPKT[0]が使用される。前と同様に、Trac
e CaptureDevicesはTRECEPKT
[0]=0であればTDサイクルを廃棄することができ
る。TRECEPKT[0]が表明されると、TFOが
同報されるかどうかを指定するのにTRECEPKT
[3:1]が使用される。TFOが同報される場合に
は、TRECEPKT[7:4]がTFO値の下位4ビ
ットを指定する。TRECEPKT[3:1]はTFO
値の残りを下記の表に与えられるように指定する。TF
Oはこのように符号化されて有効なTFO値の範囲を最
大とする。
(PIPESTAT)とFIFO出力(TRACEPK
T)間を同期させる時にTFOまたはTrace FI
FOOffsetが使用される。トレースが最初にイネ
ーブルされる時および命令同期カウンタが0に達する時
は常にTFOが発生される。Trace FIFOof
fsetは従来のETMインプリメンテーションにおい
て使用されたアドレスパケットオフセット(APO)情
報を置換する。分岐をカウントするのではなく、TFO
は現在FIFO内にあるバイト数をカウントする。この
ような同期によりプロトコル内のTRACESYNCピ
ンに対する必要性がなくなる。また、BE PIPES
TATでトレーシングを開始してAPO値に対する2つ
のデッドサイクルが続く必要性もなくなる。
TFOが同期のために同報される時は常に、IEのPI
PESTAT値が含まれる。TFOが同報されてトレー
シングを開始する時は、PIPESTATは含まれず最
初にトレースされた命令に対するPIPESTATが下
記のサイクル内で与えられる。
期TFOが発生される。 ・典型的に1024に初期化されたサイクルカウンタが
0に達する ・現在命令が‘IE’のPIPESTAT値を有する
カウンタは命令同期レジスタ内へプログラムされている
値へリセットされ(デフォルト値は1024)カウンテ
ィングを再開する。第1の同期要求がサービスされる前
に第2の同期要求がなされるケースでは、強制的に同期
を起こさせる方法としてETMは強制的にオーバフロー
される。このシナリォではあるトレースが失われるが、
それが起こってもプロセッサは無限ループに張り付いて
いる可能性が高いため問題になるとは思われない。した
がって、有意トレースは失われない。そうならない唯一
のケースは同期カウンタがある途方もない低い数にセッ
トされる場合である。したがって、同期値をあまり低く
(50サイクルよりも低い)セットすることは勧められ
ない。
FIFO上にデータの数バイトが置かれる。このデータ
はTFOパケットと呼ばれ、典型的には特殊なヘッダー
バイト、現在CONTEXT ID、および全命令アド
レスからなっている。TFOパケットに対する適切なフ
ォーマットが5.4章に与えられている。
て、バイトの第2のニブルが予期される時にTFOが生
じると、TFO値にすぐ続いてTRACEPKT[3:
0]上に値‘0×6’の余分なニブルが出力される。T
FO値はニブルではなくバイトで同期を指定するためこ
のニブルが必要である。この余分なニブルを出力するこ
とにより、ETM10はTFO値により指示されたFI
FOの現在のトップが常にバイト一致されることを保証
する。同期が不要であるケースに対してこの余分なニブ
ルはTRACEPKT[3:0]上に現れることを伸張
器が知っていることが重要である。TFOが同期による
ものかあるいはイネーブルされるTraceによるもの
かにかかわらず、TFOが奇ニブル上に発生される時は
常に伸張器はこの余分なニブルを予期しなければならな
い。完全なTFO値(および、所望により、余分なニブ
ル)がTRACEPKT[3:0]上に出力されるまで
FIFO出力は遅延される。
−ビット状態がTRACEPKT[3:0]上に置かれ
FIFO出力が1サイクルだけ遅延されることを暗示す
る。動作はETM7およびETM9と同一である。トリ
ガーおよびTFOを同時に生じさせたい場合には、TR
ACEPKT[3:0]上のPIPESTAT値はTD
である。WT pipestatはトリガーが生じる時
にTDpipestatへ変換されることがないため、
これは真のTFOとして一意的に識別することができ
る。4−ビットポートのケースでは、TFO同報(また
はギャップサイクル)の第2サイクル内でトリガーを生
じさせたい場合、トリガーが生じてFIFO出力は余分
なサイクルだけ遅延され残りのTFOニブルを出力す
る。したがって、トリガーは遅延されることはなく発生
するとすぐに出力されることが保証される。
はFIFO内に置かれる。単一サイクル内に3パケット
(2データパケットおよび1分岐パケット)までをFI
FO内に置くことができる。パケットヘッダー値に対す
る符号化は次のようである。
ル内にどれだけ多くのパケットがFIFO内に挿入され
るかを伸張器に知らせるのに使用される。最後のパケッ
トを含まない挿入された各パケットに対してCビットが
表明される。これはどのパケットがどのサイクル、した
がって、どの命令と結ばれるべきかを伸張器が知るのに
必要である。このCビットは小文字‘c’で示されるア
ドレス連続ビットと混同してはならない。
同様な方法で符号化される。分岐パケットはやはり1−
5バイト長であり、Cビットがイネーブルされる時は常
に伸張ツールはより多くのバイトを予期しなければなら
ない。しかしながら、ThumおよびARM状態間を区
別するのにもはや分岐アドレスのビット0は使用されな
い。替わりに、全ての分岐アドレスが第33ビット位置
の1により接頭され、予圧縮される。圧縮されると、全
ての分岐アドレスが第0ビット位置の1により接尾され
る。ビット0の1はパケットを分岐アドレスとして識別
し、ビット33の1はARMおよびThumbアドレス
を区別するのを助けるために使用される。ARMアドレ
スは語整列(word aligned)しなければな
らないため、ARMアドレスのビット[31:2]だけ
が同報される。Thumbアドレスは半語制限されるた
めビット[31:1]だけ同報すればよい。組み合わさ
れたARMおよびThumbアドレスに対して異なるビ
ット数を同報し第33ビットが常に表明された予圧縮を
有することにより、ARMおよびThumb状態間の遷
移で完全な5バイトアドレスが同報されることを保証す
る。さらに、下記の表に示すように、ARMおよびTh
umbアドレスは第5アドレスバイトの高次ビットによ
り常に一意的に識別することができる。
のサイクルでFIFO内へ置かれる最後のアイテムであ
る。したがって、パケット連続ビット(Cビット)は不
要である。理由コードはTFOパケットヘッダーの一部
として与えられるため、もはや第5バイト内のアドレス
ビット6:4で同報されず、それは5.4章で検討され
ている。第5バイトのビット6は例外分岐アドレス(上
表に‘E’で示される)を示すのに使用される。このビ
ットは中断、割込み、またはソフトリセットにより任意
の分岐上にセットされる。これはこれらの割り込まれた
命令が実際には実行されなかったことを伸張器が認識し
てユーザに示すことができるようにするのに有用であ
る。第5アドレスバイトのビット7およびビット5は将
来使用するために保存されたままである。
ドおよびストアデータパケットに対して使用される。C
PRTデータトレーシングがイネーブルされれば、それ
はCPRTデータパケットにも使用される。データアド
レストレーシングがイネーブルされれば、データアドレ
スはヘッダーパケットの後で、存在する場合の、データ
値の前に同報される。データアドレスは命令分岐アドレ
スと同じ圧縮技術を使用して同報され、したがって1−
5バイトからなっている。従来のETMインプリメンテ
ーションに対してそうであるように、データアドレスが
トレースされるかどうかはトレーシングを開始する前に
静的に決定しなければならない。単一サイクル内で2つ
の正規のデータパケットが与えられる(64ビットデー
タ転送により)場合には、第1のパケットだけがデータ
アドレスを含んでいる。LSM命令に対するデータが同
報される場合には、後続データパケットは異なるサイク
ルで転送されても、データアドレスは第1のデータパケ
ットだけで同報される。正規データヘッダー内の‘A’
ビットはそれが特定の命令に対する第1のデータパケッ
トであることを指定するのに使用され、したがって、デ
ータアドレスを予期しなければならない(アドレストレ
ーシングがイネーブルされる場合)。この情報をヘッダ
ーバイト内で利用できることにより、コードの伸張でき
ないセクション(すなわち、2進が利用できない任意の
領域)をトレーシングする時に伸張器は同期を維持する
ことができる。‘A’ビットはCPRTパケット上に表
明されない。
ットはデータ値圧縮に使用される。Mビットがローであ
れば、SSビットは転送されるデータ値のサイズを指定
する。データ圧縮の単純な形式として先導するゼロが除
去される。予備実験はこの圧縮技術によりおよそ20−
30%の圧縮が得られことを示しており、それはヘッダ
ーバイトの追加帯域幅コストをオフセットするのに十分
である。Mビットセットによる符号化は将来の圧縮技術
のために保存される。MSSビットに対する正確な符号
化は下記の表に与えられる。
Miss Dataヘッダータイプはデータキャッシ
ュ内でミスするロード要求を処理する。ロードミスが生
じると、データ値が予期されるFIFO内にLoad
Miss Occurredパケットが置かれる。デー
タアドレストレーシングがイネーブルされると、パケッ
トはデータアドレスを含む。そうでなければ、パケット
はLoad Miss Occurredヘッダーバイ
トだけからなる。Load Miss Occurre
dパケットが読み出されると、伸張ソフトウェアはデー
タ値が顕著なミスであることを知り、それは後で戻され
る。データが戻されると、そのサイクルに対するPIP
ESTAT値は‘+DATA’バージョンへ修正され、
Load Miss Dataヘッダーバイトおよび実
際のデータ値からなるLoad Miss Dataパ
ケットがFIFO内に置かれる。LoadMiss D
ataパケットはデータアドレスを含むことはない。ロ
ード/ストアユニットはLoad Missデータへ戻
るフリーサイクルを持たなければならないため、このデ
ータはもう一つのロードまたはストア要求に対するデー
タと同じサイクル内に戻されることはない。
‘TT’ビットは各ロードミスを識別するためのタグと
して使用される。Load Miss Occurre
dパケットは常にその対応するLoad Miss D
ataパケットと同じタグ値を有する。ARM1020
Eは一時に一つの顕著なLoad Missしかサポー
トしないが、第1のミスに対するデータが戻さされる前
に第2のロードミスパケットを同報することができる。
したがって、全てのロードミスを一意的に識別するため
に、タグ値2’b00および2’b01がETM10
rev0上でサポートされる。より多くの顕著なミスを
許すことができる将来のプロセッサをサポートするため
にタグフィールドに2ビットが割り当てられている。さ
らに、ARM1020Eは常にミスデータを順に戻すが
(他のロードミスに対して)、このタギング機構は狂っ
た順でミスデータを戻すことができる将来のプロセッサ
をサポートする。
には、同じサイクル内でFIFO内に2つのLoad
Missパケットが置かれる。両パケットが同じタグ値
を有しかつ同じサイクル内でFIFO内に置かれるた
め、伸張器はこれら2つのミスは単一64ビット値に対
するものであることを知る。正規のデータパケットと同
様に、データアドレスは第1のLoad Missパケ
ットだけで存在し、既にデータパケットを同報している
LSMの中間でミスが生じる場合には存在しない。64
ビットのケースに対してLoad Missデータが戻
される場合には、それは常に同じサイクル内に与えられ
る2つの別々のLoad Miss Dataパケット
として戻される。両方のパケットが同じミスタグを有す
る。
対するMSSビットおよび正規のデータに対して行われ
るデータ圧縮を使用する。伸張器が予期せぬLoad
Missデータパケットを受信する場合(すなわち、同
じタグを有するペンディングミス発生パケット無しでミ
スデータパケットが与えられる)、それはサイズ内に与
えられた指定されたバイト数にわたってスキップしなけ
ればならない。顕著なミスデータが戻される前にトレー
スがディセーブルされる場合には、このデータアイテム
は利用できるようになり次第‘DW’PIPESTAT
を有するFIFO内に置かれる。オーバフローまたはエ
グジットしたデバッグの理由コードによりトレースがイ
ネーブルされる場合、伸張器は任意のペンディングLo
ad Missパケットをキャンセルしなければならな
い。
タトレーシング 補助および完全可視性データヘッダー符号化はプロトコ
ル内の拡張性のために取っておく保存されたスロットで
ある。これらのパケットタイプはプロセッサ内部および
外部の補助データをトレーシングするのに使用すること
ができる(完全可視性は全レジスタファイル更新をトレ
ーシングすることである)。他のデータパケットと同様
に、補助データパケットはサイズ情報に対するSSビッ
トを利用する。完全可視性データトレーシングはさらな
る圧縮のためのMビットもサポートする。これらのパケ
ットタイプはETM10rev0上で使用されない。
IDがContext ID更新命令、MCR c1
5,0,rd,c13,c0,1を介して修正される時
だけ使用される。データ値のサイズはETM10コント
ロールレジスタ(レジスタ0×0,ビット[15:1
4])内に指定されたContext IDサイズによ
り静的に決定される。新しい値が指定されたバイト数よ
りも大きい場合でも、指定されたバイト数だけがトレー
スされる。サイズがゼロとして指定される場合には、C
ontext ID更新はトレースされない。たとえC
ontext ID更新命令がMCRであっても,Co
ntext ID値トレーシングは他のCPRT命令か
らのトレーシングデータ値から完全に独立している。そ
れはETM10コントロールレジスタ(レジスタ0×
0,ビット[1])内のMonitor CPRTビッ
トにより影響されない。Context ID更新に対
する一意的ヘッダー値を使用することにより伸張器は伸
張不能なコード領域(すなわち、2進が利用できない任
意の領域)をトレーシングする場合であってもCont
ext ID変更を認識することができる。
してデータ値を全てトレースできるかどれもトレースで
きないかだけであり、この判断は最初の転送時になされ
ている。今日のコンパイラーは隣接するLDR/STR
操作を結合してユーザに最も気付かれないLSMとする
ため、この動作は望ましくない。Value Not
Tracedパケットの追加により、我々はLSMを部
分的にトレースしてトリガー基準に厳密にマッチするデ
ータ値しか出力しない能力を追加した。
スされる時は常に、データアドレス(アドレストレーシ
ングがイネーブルされる場合)およびデータ値(データ
値トレーシングがイネーブルされる場合)を含むFIF
O内に正規のデータパケットが置かれる。このLSMに
対する全ての後続データ転送によりFIFO内にパケッ
トが置かれる。後続する値がトレースされる場合には、
データ値だけを与える正規のデータパケットがトレース
される。後続データ転送をトレースしてはならない場合
には、これらの転送に対してFIFO上にValue
Not Tracedパケットが置かれる。Value
Not TracedパケットはValue Not
Tracedヘッダーバイトだけからなっている。次
に、伸張ソフトウェアは正規のデータパケットと組み合
わせてValue Not Tracedパケットを使
用して、最終データ転送から後ろ向きに進むことにより
どのLSM値がトレースされどれがトレースされていな
いかを確認する。前記したように、LSM命令上でトレ
ーシングが開始すると、命令が完了する前にTrace
Enableが表明停止されても、それはLSMが完了
するまで続くことをお判り願いたい。
れたスロットがある。これらのスロットは全て必要に応
じてプロトコルを強化するためおよび/または将来のE
TMインプリメンテーションに使用するために利用する
ことができる。将来のETMインプリメンテーションに
よりさらに多くのヘッダータイプが必要とされる場合で
も、Normal DataおよびFull−Visi
bility Trace符号化内のMビットは圧縮の
替わりに新しいデータヘッダー符号化のために使用する
こともできる。
かれる(5.2.4章に記載されている)。伸張器はT
FOによりいつパケットがFIFO内に置かれるを知る
ため、TFOパケットはそれ自体のヘッダーバイト符号
化を有し、それらはPIPESTATデータパケットに
より使用される符号化スペースから完全に独立してい
る。TFOパケットヘッダー符号化を下記に示す。
[1:0]!=2’b10であれば、このTFOパケッ
トは命令アドレスだけからなっている。完全なアドレス
が常に必要とされるため、圧縮は試みられずアドレスは
常に4−バイト値として出力される。アドレスのビット
0はそれがThumbまたはARM命令アドレスである
かどうかを指定する。TFOパケットが命令アドレスだ
けからなる場合、それは、 ・CONTEXT ID値がトレースされない(Con
textIDSize,ETM Controlレジス
タビット[15:14]により決定される) ・TFO理由コードは2’b00,正規同期である ことを意味する。理由コードが非ゼロであるかあるいは
CONTEXT ID値がトレースされる場合には、下
記のTFOパケットの中の1つが必要である。アドレス
だけからなるTFOパケットはプロトコルコンライアン
スを厳密には要求されずETM10rev0上でインプ
リメントされない。
イトが続き、4−バイト命令アドレスが続くヘッダーバ
イトからなる。トレースされるCONTEXTIDバイ
ト数はETM Controlレジスタビット[15:
14]により静的に決定される。命令アドレスは常に4
バイトであり圧縮はされない。ビット0はThumbビ
ットを指定する。TFOヘッダーバイトは2−ビット理
由コードを含んでいる(前記表においてRRとラベルが
付されている)。これらの理由コードはプロトコルバー
ジョン0および1においてETM7およびETM9によ
り使用されるものと一致している。理由コードは下記の
表に与えられる。
パケット内のLSM Progressパケット内のLSMはマルチメモリア
クセス命令(LDM,STM,LDC,またはSTC)
の中間でトレースがイネーブルされ、もう一つの命令が
現在実行している時だけ生じる。これらのパケットはC
ONTEXTIDの0−4バイトが続き、LSMに対す
る4−バイト命令アドレスが続き、現在実行している命
令に対する圧縮されたアドレスの1−5バイトが続くヘ
ッダーバイトからなる。LSM命令はビット0がThu
mbビットを指定する固定4−ビットアドレスである。
現在命令アドレスが分岐アドレスと同じ技術を使用して
圧縮される(5.3.1章に指定されているように)。
最後の命令アドレスはLSM命令からの完全なアドレス
に関して圧縮される。次の命令PIPESTATは第2
のアドレスにより指示された命令に対するものであり、
トレースはこの点から順方向に正規の方法で開始する。
このパケットタイプは特定のデータアドレスまたはデー
タ値に接触する全ての命令を適切にトレーシングするた
めに必要である。それがないと、LSM命令はデータア
ドレスに基づいて適切にトレースすることができない。
たとえトレーシングがLSM自体の間しかターンオンさ
れないようにプログラムされていても、LSMの下で生
じる命令はトレースされることをお判り願いたい。同様
に、たまたまLSMの下で実行するばかりの命令の命令
アドレスによりトレースがターンオンされる場合には、
Progress TFOパケット内のLSMはまだ出
力される。Normal TFOパケットとLSM i
n Progress TFOパケットとの間の違いを
さらに明瞭にするために、下記の表は各ケースに対して
予期すべきバイトを示している。
ーフェイスについて説明する。大部分のインターフェイ
スはARM1020EによりETM10内へ駆動され
る。信号記述はカスタムデータパス入力、合成制御入
力、およびETM出力へ分割される。合成制御信号は後
で変更することができるが、データパス信号変更にはカ
スタム論理リワークが必要であるため、これらは設計の
遅い時期に変更することができない。全入力がETM1
0のすぐ内側に記憶され、全出力がレジスタの出力から
直接駆動される。インターフェイスは合計220の信号
からなり、それは213の入力およびETM10配景か
らの4出力を含んでいる。
ータバス、ロードデータ、ストアデータ、MCRデー
タ、およびMRCデータがある。これら4つのバスの全
てが64ビット幅である。任意所与のサイクルにおいて
これらのバスの1つしか有効データを含まないことがあ
るため、4つのバス全てがARM1020E内で台なし
にされて64ビットデータバスETMDATAとなって
しまう。ETMDATAはARM1020E内に記憶さ
れた後でETMへ駆動される。ETMDATAはARM
1020Eパイプラインのライト(WR)段階で有効で
ある。ARM1020EからETM10へ駆動される4
つのアドレスバスがある。これらのバスの中の3つは命
令アドレス用であり1つはデータアドレス用である。I
AおよびDAアドレスバスがメモリ(ME)段階で有効
である間にR15バスはARM1020Eパイプライン
の実行(EX)段階でETMへ駆動される。ETMへ駆
動される全データバスが下記の表に与えられている。
多様な制御信号を含んでいる。これらの信号は全てコア
内に記憶され、この共通バス上に結合されてからETM
10へ駆動される。このバス上に存在する制御信号とそ
れらの意味は下記の表に与えられている。特記なき限
り、これらの全てがARM1020Eパイプラインのラ
イト段階(WR)において有効である。
[1:0] この信号はバスETMDATA[63:0]上で駆動さ
れるデータを限定する。データバスの半分毎に1ビット
がある。
れる出力について説明する。
ある時は常にETM出力FIFOFULLが表明され、
FIFOが空になるまで表明されたままである。この動
作は、FIFOFULLを表明する前にFIFOがある
特定レベルに達するまで待機した、ETM7/9とは幾
分異なる(4.16章参照)。FIFOFULLはAR
Mパイプラインを停止するために、ここではARM10
20Eである、コアにより使用される。これはETMオ
ーバフローを防止し、イベントのタイミングを幾分変え
る副作用がコア内で生じるが完全なトレースを保証す
る。タイミングを考慮するため、FIFOFULLの表
明によりARM1020Eが即座に停止することがな
い。したがって、まれではあるが、FIFOFULLが
表明される時でもオーバフローを有することがありう
る。これが生じると、FIFOが徐々に空になる間プロ
セッサは停止したままであるため(FIFOFULL表
明により)、ミスした命令数は少ない。
らずCLK入力は停止できることを示す。これはトレー
スが使用されない時に消費電力を低減するのに使用され
る。リセットされると、ETM10がプログラムされて
しまうまでPWRDOWNが表明される。ARM102
00テストチップはETM10 CLK入力をゲートす
るのに直接PWRDOWN出力を使用しなければならな
い。前記したように、PWRDOWNはCONTEXT
ID更新上で一時的にディセーブルされてETM10
の内部CONTEXT IDシャドーレジスタ上の更新
を考慮する。CONTEXT ID更新ケースを除け
ば、PWRDOWNはTCLKに同期して変更されデバ
ッグセッションの始めにARMデバッグツールによりク
リアされる。PWRDOWN変更はトレースがイネーブ
ルされる前に巡回するため、ETM10 CLKをゲー
トするのにTCLKベース信号を使用してもメタ安定性
問題は生じない。
じる時は常にDBGRQを表明するようにプログラムす
ることができる。DBGRQはDGBACKが観察され
るまで表明されたままとされる。DBGRQははARM
1020E外部デバッグ要求ピンEDBGRQに接続し
なければならない。このETM出力にはARM1020
Eからの余分なサポートは不要である。ASIC内の他
の機能ブロックによりEDBGRQ入力が既に使用され
ている場合には、多数のDBGRQ信号を一緒にORす
ることができる。デバッグをこのようにイネーブルして
も任意特定の命令境界に遭遇することは保証されないこ
とをお判り願いたい。さらに、ARM10が現在ハード
ウェアデバッグモードであればコアはEDBGRQを認
識するだけである。
ターフェイス配線を使用する。TDOピンがARM10
20E走査拡張入力SDOUTBSに接続されている。
ETM10レジスタは走査チェーン6を介してアクセス
され従来のETMインプリメンテーションと同じ方法で
プログラムされる。このETM出力にはARM1020
Eからの余分なサポートは不要である。
とができる。中型および大型構成は追加エリアのコスト
でより多くのトリガーハードウェアリソースおよび増大
されたFIFO深さを提供する。新しい構成のソフトマ
クロを単純に再合成するだけでさまざまなASICアプ
リケーションに対するさまざまな構成を選択することが
できる。ETM10は同様な構成範囲を提供する。下記
の表はETM10に対して現在提示されている構成を示
す。大概のトリガーリソースはETM7およびETM9
と同じであるが、64ビット比較器の大きなサイズによ
り8から4へ減少された大型構成のデータ比較器は例外
である。各構成における増大したFIFOサイズはAR
M1020Eのより高い命令スループット(すなわち、
性能)をサポートする必要性を反映している。各構成に
対するFIFOサイズはエリアインパクトおよび性能モ
デリングからの帰還に基づいて増加することができる。
ETM10構成に対して与えられるゲートカウントはE
TM10 rt1モデルの初期合成に基づいた推定値で
ある。これらの推定されたゲートカウントは最終インプ
リメンテーションにより達成されるものとは異なること
がある。大きなサイズのETM10はARM10200
テストチップ上に置かれるものである。各カテゴリ内の
ETM9に対する対応するリソース数が比較のために括
弧内に与えられている。
発明はそれに限定されるものではなく、発明の範囲内で
多くの修正および追加を行えることは明らかである。例
えば、本発明の範囲を逸脱することなく従属項の特徴を
独立項の特徴とさまざまに組み合わせることができる。
処理システムを示す略図である。
られる素子の詳細を示すブロック図である。
めに本発明の好ましい実施例において使用される符号化
を示す略図である。
が本発明の好ましい実施例に従ってどのように圧縮され
るかを示す略図である。
略図である。
号化および圧縮論理を略示するブロック図である。
である。
る。
好ましい実施例で使用される論理を示す図である。
生器により実施されるプロセスを示す略図である。
Claims (21)
- 【請求項1】 データ処理装置であって、前記装置は、 処理命令の複数の命令セットのいずれかからの処理命令
を実行する処理回路であって、各処理命令はメモリ内で
のその処理命令の場所を識別する命令アドレスにより指
定され、異なる命令セット内の処理命令に対して命令ア
ドレス内に異なる数の命令アドレスビットを指定する必
要がある処理回路と、 その命令に対応する命令セットの表示を有する命令アド
レスを符号化してn−ビット符号化命令アドレスを発生
する符号化論理であって、前記符号化論理は指定された
命令アドレスビットへビットパターンをプリペンドする
ことにより指定された命令アドレスビットをn−ビット
へ拡張するのと等価の計算を実施することにより符号化
を実施するようにされており、プリペンドされるビット
パターンはその命令に対応する命令セットによって決ま
る符号化論理と、 を含む装置。 - 【請求項2】 請求項1記載の装置であって、各命令セ
ットに対してその命令セットからの命令アドレスの指定
された命令アドレスビットへプリペンドされたビットパ
ターンはシフトされたパターンにより異なる命令セット
の命令アドレスの指定された命令アドレスビットへプリ
ペンドされたビットパターンと関連づけられる装置。 - 【請求項3】 請求項1記載の装置であって、符号化論
理は命令アドレスの指定された命令アドレスビットへ予
め定められたビットパターンをプリペンドし次に符号化
命令アドレスとして中間値からnビットを選択すること
により中間値を発生するのと等価の計算を実施すること
により符号化を実施するようにされている装置。 - 【請求項4】 請求項1記載の装置であって、さらに、
その符号化命令アドレスを複数のx−ビットセクション
へ分割し、各x−ビットセクションを先行する符号化命
令アドレスの対応する各x−ビットセクションと比較
し、圧縮符号化命令アドレスとして先行する符号化命令
アドレスの対応するx−ビットセクションとは異なる最
上位x−ビットセクションを任意のより下位のx−ビッ
トセクションと共に出力するのと等価の計算を実施する
ことにより前記符号化命令アドレスを圧縮する圧縮論理
を含む装置。 - 【請求項5】 請求項4記載の装置であって、圧縮論理
はそこから出力される各x−ビットセクションにx−ビ
ットセクションが圧縮符号化命令アドレスとして出力さ
れる最後のx−ビットセクションであるかどうかをを示
すフラグを関連づけるようにされている装置。 - 【請求項6】 請求項5記載の装置であって、複数のx
−ビットセクションが圧縮論理から出力される場合に
は、複数のx−ビットセクションは最下位x−ビットセ
クションで開始して逐次出力される装置。 - 【請求項7】 請求項5記載の装置であって、圧縮論理
は、さらに、圧縮論理から出力される各x−ビットセク
ションをyビットへ拡張するようにされており、最上位
y−xビットはフラグを含む装置。 - 【請求項8】 請求項7記載の装置であって、フラグは
単一ビットである装置。 - 【請求項9】 請求項8記載の装置であって、yは8で
ありxは7である装置。 - 【請求項10】 請求項1記載の装置であって、符号化
論理は中間値を受信するn−ビットセクター論理ユニッ
トおよび中間値内に含まれる命令アドレスに関連づけら
れた命令セットを識別する識別子信号を含み、n−ビッ
トセクターは識別子信号に応じて中間値の予め定められ
たn−ビットを出力するようにされている装置。 - 【請求項11】 請求項4記載の装置であって、圧縮論
理は複数の比較器を含み、各比較器が符号化命令アドレ
スの対応するx−ビットセクションを受信するようにさ
れており、かつ先行する符号化命令アドレスの対応する
x−ビットセクションを格納する一時記憶装置を含み、
比較器は2つのx−ビットセクションを比較して2つの
x−ビットセクションが異なる場合にセットされる差信
号を発生するようにされている装置。 - 【請求項12】 請求項11記載の装置であって、圧縮
論理は、さらに、より高位のx−ビットセクションも出
力される場合に特定のx−ビットセクションに対するフ
ラグがセットされるように、複数の比較器により発生さ
れる差信号の予め定められた組合せに基づくフラグを圧
縮論理から出力される各x−ビットセクションに対して
発生するようにされている装置。 - 【請求項13】 請求項12記載の装置であって、圧縮
論理は、さらに、出力される各x−ビットセクションに
その対応するフラグをプリペンドすることにより圧縮符
号化命令アドレスを発生し、出力圧縮符号化命令アドレ
スとして一列のy−ビットセクションを発生する出力発
生器を含む装置。 - 【請求項14】 請求項4記載の装置であって、符号化
論理および圧縮論理は処理回路のアクティビティをトレ
ースするのに使用されるトレースモジュール内に設けら
れる装置。 - 【請求項15】 データ処理装置用トレーシングツール
であって、データ処理装置は処理命令の複数の命令セッ
トのいずれかからの処理命令を実行する処理回路を有
し、各処理命令はメモリ内のその処理命令の場所を識別
する命令アドレスにより指定され、異なる命令セット内
の処理命令に対して命令アドレス内に異なる命令アドレ
スビット数を指定する必要があり、前記トレーシングツ
ールは、その命令に対応する命令セットの表示を有する
命令アドレスを符号化してn−ビット符号化命令アドレ
スを発生する符号化論理を含み、前記符号化論理は指定
された命令アドレスビットにビットパターンをプリペン
ドすることにより指定された命令アドレスビットをn−
ビットへ拡張するのと等価の計算を実施することにより
符号化を実施するようにされており、プリペンドされる
ビットパターンはその命令に対応する命令セットによっ
て決まるトレーシングツール。 - 【請求項16】 請求項15記載の装置であって、さら
に、符号化命令アドレスを複数のx−ビットセクション
へ分割し、各x−ビットセクションを先行する符号化命
令アドレスの対応するx−ビットセクションと比較し、
圧縮符号化命令アドレスとして先行する符号化命令アド
レスの対応するx−ビットセクションとは異なる最上位
x−ビットセクションを任意のより下位のx−ビットセ
クションと共に出力することと等価の計算を実施するこ
とにより符号化命令アドレスを圧縮する圧縮論理を含む
トレーシングツール。 - 【請求項17】 命令セット情報の格納方法であって、
処理回路が処理命令の複数の命令セットのいずれかから
の処理命令を実行するようにされており、各処理命令は
メモリ内のその処理命令の場所を識別する命令アドレス
により指定され、異なる命令セット内の処理命令に対し
て命令アドレス内に異なる命令アドレスビット数を指定
する必要があり、前記方法は、 その命令に対応する命令セットによって決まるビットパ
ターンを指定された命令アドレスビットにプリペンドす
ることにより指定された命令アドレスビットをn−ビッ
トへ拡張する、 のと等価の計算を実施することにより、その命令に対応
する命令セットの表示を有する命令アドレスを符号化し
てn−ビット符号化命令アドレスを発生するステップを
含む方法。 - 【請求項18】 請求項17記載の方法であって、さら
に、 (a)符号化命令アドレスを複数のx−ビットセクショ
ンへ分割し、 (b)各x−ビットセクションを先行する符号化命令ア
ドレスの対応するx−ビットセクションと比較し、 (c)圧縮符号化命令アドレスとして先行する符号化命
令アドレスの対応するx−ビットセクションとは異なる
最上位x−ビットセクションを任意のより下位のx−ビ
ットセクションと共に出力する、 ことと等価の計算を実施することにより前記符号化命令
アドレスを圧縮するステップを含む方法。 - 【請求項19】 (i)圧縮符号化命令アドレスを形成
するx−ビットセクション数を決定し、 (ii)先行する符号化命令アドレスの対応するx−ビ
ットセクションから得られる追加x−ビットセクション
を取り入れることにより、必要に応じて圧縮符号化命令
アドレスをn−ビットへ拡張して符号化命令アドレスを
作り出す、 のと等価の計算を実施することにより請求項18記載の
方法に従って発生される圧縮符号化命令アドレスを伸張
する方法。 - 【請求項20】 請求項19記載の方法であって、さら
に、予め定められたビットパターンから命令アドレスが
関連する命令セットを決定し、予め定められたビットパ
ターンを除去して指定された命令アドレスビットを得る
のと等価の計算を実施することにより符号化命令アドレ
スを復号するステップを含む方法。 - 【請求項21】 請求項17記載の方法に従って装置を
制御するコンピュータプログラムを備えているコンピュ
ータプログラムプロダクト。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/792,643 US7020768B2 (en) | 2001-02-01 | 2001-02-26 | Apparatus and method for facilitating debugging of sequences of processing instructions using context identifier comparison |
US792643 | 2001-06-08 | ||
US876220 | 2001-06-08 | ||
US09/876,220 US7093108B2 (en) | 2001-02-01 | 2001-06-08 | Apparatus and method for efficiently incorporating instruction set information with instruction addresses |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002304291A true JP2002304291A (ja) | 2002-10-18 |
JP3766035B2 JP3766035B2 (ja) | 2006-04-12 |
Family
ID=27121314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002100620A Expired - Lifetime JP3766035B2 (ja) | 2001-02-26 | 2002-02-26 | 命令セットの情報を格納するための装置及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7093108B2 (ja) |
JP (1) | JP3766035B2 (ja) |
GB (1) | GB2374694B (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007066336A (ja) * | 2003-04-17 | 2007-03-15 | Arm Ltd | 集積回路内の診断データ取り込み |
JP2009526300A (ja) * | 2006-02-10 | 2009-07-16 | イマジネイション テクノロジーズ リミテッド | マイクロプロセッサ用の命令セット |
JP2010500661A (ja) * | 2006-08-09 | 2010-01-07 | クゥアルコム・インコーポレイテッド | プロセッサ命令セット動作モードを比較するデバッグ回路 |
JP2013254508A (ja) * | 2006-11-15 | 2013-12-19 | Qualcomm Inc | エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928403B2 (en) * | 2000-03-02 | 2005-08-09 | Texas Instruments Incorporated | Automatic detection of connectivity between an emulator and a target device |
US7254115B1 (en) * | 2002-08-28 | 2007-08-07 | Advanced Micro Devices, Inc. | Split-transaction bus intelligent logic analysis tool |
US7359994B1 (en) | 2002-08-28 | 2008-04-15 | Advanced Micro Devices, Inc. | Split-transaction bus decoder |
GB2402763B (en) * | 2003-06-13 | 2006-03-01 | Advanced Risc Mach Ltd | Data access program instruction encoding |
US7143270B1 (en) * | 2004-01-30 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | System and method for adding an instruction to an instruction set architecture |
US7236107B2 (en) * | 2004-09-20 | 2007-06-26 | Fujitsu Limited | System and method for identifying optimal encoding for a given trace |
DE102004052417B4 (de) | 2004-10-28 | 2010-09-02 | Infineon Technologies Ag | Schaltung und Verfahren zur Weiterleitung von Datenpaketen in einem Netzwerk |
US7454666B1 (en) * | 2005-04-07 | 2008-11-18 | Sun Microsystems, Inc. | Real-time address trace generation |
US7769983B2 (en) | 2005-05-18 | 2010-08-03 | Qualcomm Incorporated | Caching instructions for a multiple-state processor |
JP4832125B2 (ja) * | 2006-03-15 | 2011-12-07 | 富士通セミコンダクター株式会社 | 性能解析装置、性能解析方法、性能解析プログラム、および記録媒体 |
US7685467B2 (en) * | 2006-04-27 | 2010-03-23 | Texas Instruments Incorporated | Data system simulated event and matrix debug of pipelined processor |
US7711927B2 (en) * | 2007-03-14 | 2010-05-04 | Qualcomm Incorporated | System, method and software to preload instructions from an instruction set other than one currently executing |
US8055950B2 (en) * | 2008-01-11 | 2011-11-08 | Arm Limited | Method and apparatus for improved timing for trace synchronization |
JP5326708B2 (ja) * | 2009-03-18 | 2013-10-30 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US8176366B2 (en) | 2009-04-03 | 2012-05-08 | Arm Limited | Trace synchronization |
US10055227B2 (en) * | 2012-02-07 | 2018-08-21 | Qualcomm Incorporated | Using the least significant bits of a called function's address to switch processor modes |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4439827A (en) * | 1981-12-28 | 1984-03-27 | Raytheon Company | Dual fetch microsequencer |
US4590550A (en) * | 1983-06-29 | 1986-05-20 | International Business Machines Corporation | Internally distributed monitoring system |
JPS6240538A (ja) | 1985-08-15 | 1987-02-21 | Mitsubishi Electric Corp | デ−タ処理装置 |
US4821178A (en) * | 1986-08-15 | 1989-04-11 | International Business Machines Corporation | Internal performance monitoring by event sampling |
US5115500A (en) | 1988-01-11 | 1992-05-19 | International Business Machines Corporation | Plural incompatible instruction format decode method and apparatus |
US5151981A (en) | 1990-07-13 | 1992-09-29 | International Business Machines Corporation | Instruction sampling instrumentation |
GB9023633D0 (en) * | 1990-10-31 | 1990-12-12 | Int Computers Ltd | Predicting the performance of a computer system |
DE69231451T2 (de) | 1991-03-11 | 2001-05-10 | Mips Tech Inc | Rückwärts kompatible Rechnerarchitektur mit erweiterten Wortbreiten und Adressraum |
JPH0619742A (ja) | 1992-07-01 | 1994-01-28 | Kofu Nippon Denki Kk | トレーサ回路 |
US5555392A (en) * | 1993-10-01 | 1996-09-10 | Intel Corporation | Method and apparatus for a line based non-blocking data cache |
US5781750A (en) * | 1994-01-11 | 1998-07-14 | Exponential Technology, Inc. | Dual-instruction-set architecture CPU with hidden software emulation mode |
US5550974A (en) * | 1994-04-15 | 1996-08-27 | Motorola, Inc. | Testable memory array which is immune to multiple wordline assertions during scan testing |
GB2290395B (en) | 1994-06-10 | 1997-05-28 | Advanced Risc Mach Ltd | Interoperability with multiple instruction sets |
EP0689141A3 (en) | 1994-06-20 | 1997-10-15 | At & T Corp | Disruption-based hardware support for system performance profiling |
US6139198A (en) * | 1994-10-04 | 2000-10-31 | International Business Machines Corporation | System and method for enabling tracing of program execution in an object-oriented system |
EP0762280B1 (en) * | 1995-08-30 | 2001-11-14 | Motorola, Inc. | Data processor with built-in emulation circuit |
US5802273A (en) * | 1996-12-17 | 1998-09-01 | International Business Machines Corporation | Trailing edge analysis |
GB9626401D0 (en) * | 1996-12-19 | 1997-02-05 | Sgs Thomson Microelectronics | Diagnostic procedures in an integrated circuit device |
US5978742A (en) * | 1997-04-04 | 1999-11-02 | Tektronix, Inc. | Method and apparatus for digital sampling of electrical waveforms |
US6009270A (en) * | 1997-04-08 | 1999-12-28 | Advanced Micro Devices, Inc. | Trace synchronization in a processor |
US5987598A (en) * | 1997-07-07 | 1999-11-16 | International Business Machines Corporation | Method and system for tracking instruction progress within a data processing system |
US6175913B1 (en) * | 1997-09-12 | 2001-01-16 | Siemens Ag | Data processing unit with debug capabilities using a memory protection unit |
US5923872A (en) * | 1997-11-26 | 1999-07-13 | Digital Equipment Corporation | Apparatus for sampling instruction operand or result values in a processor pipeline |
US6374367B1 (en) | 1997-11-26 | 2002-04-16 | Compaq Computer Corporation | Apparatus and method for monitoring a computer system to guide optimization |
US6000044A (en) * | 1997-11-26 | 1999-12-07 | Digital Equipment Corporation | Apparatus for randomly sampling instructions in a processor pipeline |
US6052802A (en) * | 1997-12-31 | 2000-04-18 | Intel Corporation | Apparatus and method for cycle accounting in microprocessors |
JP2878264B1 (ja) | 1998-03-11 | 1999-04-05 | 甲府日本電気株式会社 | トレーサ装置、トレースデータ圧縮方法および圧縮トレースデータ読み出し方法 |
US6067644A (en) * | 1998-04-15 | 2000-05-23 | International Business Machines Corporation | System and method monitoring instruction progress within a processor |
US6415378B1 (en) * | 1999-06-30 | 2002-07-02 | International Business Machines Corporation | Method and system for tracking the progress of an instruction in an out-of-order processor |
US6574727B1 (en) * | 1999-11-04 | 2003-06-03 | International Business Machines Corporation | Method and apparatus for instruction sampling for performance monitoring and debug |
US6539502B1 (en) * | 1999-11-08 | 2003-03-25 | International Business Machines Corporation | Method and apparatus for identifying instructions for performance monitoring in a microprocessor |
-
2001
- 2001-06-08 US US09/876,220 patent/US7093108B2/en not_active Expired - Lifetime
-
2002
- 2002-02-14 GB GB0203568A patent/GB2374694B/en not_active Expired - Lifetime
- 2002-02-26 JP JP2002100620A patent/JP3766035B2/ja not_active Expired - Lifetime
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007066336A (ja) * | 2003-04-17 | 2007-03-15 | Arm Ltd | 集積回路内の診断データ取り込み |
JP2009526300A (ja) * | 2006-02-10 | 2009-07-16 | イマジネイション テクノロジーズ リミテッド | マイクロプロセッサ用の命令セット |
JP2010500661A (ja) * | 2006-08-09 | 2010-01-07 | クゥアルコム・インコーポレイテッド | プロセッサ命令セット動作モードを比較するデバッグ回路 |
US8352713B2 (en) | 2006-08-09 | 2013-01-08 | Qualcomm Incorporated | Debug circuit comparing processor instruction set operating mode |
JP2013254508A (ja) * | 2006-11-15 | 2013-12-19 | Qualcomm Inc | エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル |
Also Published As
Publication number | Publication date |
---|---|
GB2374694B (en) | 2005-04-27 |
GB2374694A (en) | 2002-10-23 |
US20020161989A1 (en) | 2002-10-31 |
US7093108B2 (en) | 2006-08-15 |
JP3766035B2 (ja) | 2006-04-12 |
GB0203568D0 (en) | 2002-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3766035B2 (ja) | 命令セットの情報を格納するための装置及び方法 | |
JP4038372B2 (ja) | 順序外データのトレーシング | |
JP4225851B2 (ja) | データ処理装置用トレース要素生成システム | |
US7197671B2 (en) | Generation of trace elements within a data processing apparatus | |
JP3556556B2 (ja) | 命令コード変換装置及び情報処理システム | |
US7673187B2 (en) | Data processing apparatus and method for reducing trace bandwidth | |
US20060117229A1 (en) | Tracing multiple data access instructions | |
US7581082B2 (en) | Software source transfer selects instruction word sizes | |
JP2003085000A (ja) | トレース情報生成装置およびその方法 | |
JP2002163127A (ja) | トレース制御回路 | |
JP2513417B2 (ja) | 情報処理装置 | |
JP2001034471A (ja) | Vliw方式プロセッサ | |
WO2008042584A2 (en) | Apparatus and method for tracing instructions with simplified instruction state descriptors | |
US7707389B2 (en) | Multi-ISA instruction fetch unit for a processor, and applications thereof | |
GB2389931A (en) | Selective generation of trace elements | |
JP2004510248A (ja) | ソフトウェアおよびハードウェアのループ圧縮を有するfifo書込み/lifo読取り追跡バッファ | |
US6564316B1 (en) | Method and apparatus for reducing code size by executing no operation instructions that are not explicitly included in code using programmable delay slots | |
US6877082B1 (en) | Central processing unit including address generation system and instruction fetch apparatus | |
JPH11312084A (ja) | プロセッサおよびプログラム生成装置 | |
JP3814548B2 (ja) | 情報処理制御装置 | |
JP2000231494A (ja) | ソフトウェア実行システム及びソフトウェア実行方法 | |
JP2004355477A (ja) | マイクロプロセッサ | |
JP3037295B1 (ja) | イベント検出回路 | |
JPH10240570A (ja) | マイクロプロセッサ及びその開発支援装置 | |
JP2004062427A (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040511 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050624 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050701 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20051003 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20051006 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051209 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060113 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060125 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3766035 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090203 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100203 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100203 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110203 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110203 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120203 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120203 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130203 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130203 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140203 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |