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
Application number
JP2002100620A
Other languages
English (en)
Other versions
JP3766035B2 (ja
Inventor
Andrew Brookfield Swaine
ブルックフィールド スウェイン アンドリュー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/792,643 external-priority patent/US7020768B2/en
Application filed by ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2002304291A publication Critical patent/JP2002304291A/ja
Application granted granted Critical
Publication of JP3766035B2 publication Critical patent/JP3766035B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30185Instruction 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

(57)【要約】 【課題】 命令セット情報を格納する装置および方法を
得る。 【解決手段】 処理命令の複数の命令セットのいずれか
からの処理命令を実行する処理回路を含み、各処理命令
はメモリ内のその場所を識別する命令アドレスにより指
定される。異なる命令セット内の命令を処理するために
異なる数の命令アドレスビットを命令アドレス内に指定
する必要がある。さらに、その命令に対応する命令セッ
トの表示を有する命令アドレスを符号化してn−ビット
符号化命令アドレスを発生する符号化論理を含む。符号
化論理はビットパターンを指定された命令アドレスビッ
トへプリペンドすることにより、それをn−ビットへ拡
張するのと等価の計算を実施して符号化を実施するする
ようにされており、プリペンドされるビットパターンは
その命令に対応する命令セットによって決まる。符号化
命令アドレスは次に圧縮される。命令セット情報に命令
アドレスを取り込むための効率的技術が提供される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータ処理装置に関
する。特に、本発明は命令セットの情報を格納するデー
タ処理装置および方法に関する。
【0002】
【従来の技術】データ処理装置にはいくつかの異なる命
令セットからの処理命令を実行することができる処理回
路を設けることができる。処理回路により実施される処
理を追跡し続けることが望ましいいくつかの状況があ
り、このような状況では任意の時点においてどの命令セ
ットが使用されているを識別できることが望ましいこと
がある。例えば、このような情報は、処理回路のアクテ
ィビティ(活動)を追跡することがしばしば望ましい、
データ処理システムの開発中に有用である。このような
プロセスをアシストするのに使用することができるツー
ルの例はトレーシングツールである。
【0003】データ処理システムのアクティビティを追
跡するとシステム内のステップ毎のアクティビティを表
わすデータを含むトレースストリームが発生されてシス
テム開発における非常に有用なツールとなる。しかしな
がら、より深いく埋め込まれたプロセッサコアへ向かう
一般的な動きにより、外部アクセス可能ピンを介してプ
ロセッサの状態を追跡することが一層困難となる。した
がって、トレースデータを捕捉して解析するオフチップ
トレーシング機構だけでなく、増量されたトレーシング
機能がオンチップ配置されている。このようなオンチッ
プトレーシング機構の例はARM7およびARM9プロ
セッサと関連した英国、キャンブリッジ、ARM社から
提供される埋込トレースマクロセルである。
【0004】このようなトレーシング機構はトレースし
たいデータ処理システムのアクティビティを表わすデー
タのトレースストリームをリアルタイムで作り出す。次
に、このトレースストリームを使用してデータ処理シス
テムにより実行される処理命令系列のデバッギングを容
易にすることができる。
【0005】特定のレジスタ、アドレスまたはデータ値
にアクセスしたらトレーシングの開始または停止等のト
レーシングおよびデバッギング操作を制御するように働
くトリガポイントを取り入れるトレーシングおよびデバ
ッギング機構を提供することが知られている。このよう
な機構はシステムの特定部分または動作のタイプを診断
するのに非常に有用である。例として、特定のシステム
バグが例外動作に関連しておれば、本当に必要なものが
適切な例外処理ベクトルへアクセスした時にトリガーさ
れる例外動作のトレーシングである時に、システムの全
操作のトレーシングにより不便なほど大量のデータが作
り出される。
【0006】新しいシステムの開発時間を短縮すること
も望ましいがデータ処理システムは複雑さが増すため、
データ処理システムの開発中に使用することができるデ
バッグおよびトレーシングツールおよび機構を改善する
必要性がある。
【0007】処理回路がいくつかの異なる命令セットの
いずれかからの処理命令を実行することができる状況で
は、トレーシング機構はその命令セット情報も追跡し続
けることが望ましい。しかしながら、可能であれば常に
トレースする必要があるデータ量を低減することも望ま
しい。
【0008】
【発明が解決しようとする課題】したがって、このよう
な命令セット情報を格納するための効率的な技術を提供
することが本発明の目的である。
【0009】
【課題を解決するための手段】第1の側面から見て、本
発明はデータ処理装置を提供し、前記装置は各処理命令
がメモリ内のその処理命令の場所を識別する命令アドレ
スにより指定される処理命令の複数のセットのいずれか
からの処理命令を実行する処理回路であって、異なる命
令セット内の処理命令に対する命令アドレス内に異なる
命令アドレスビット数を指定する必要がある処理回路
と、その命令に対応する命令セットの表示を有する命令
アドレスを符号化してn−ビット符号化命令アドレスを
発生する符号化論理とを含み、符号化論理は指定された
命令アドレスビットへビットパターンをプリペンディン
グ(prepending)することにより指定された
命令アドレスビットをn−ビットへ拡張するのと等価の
計算を実施することにより符号化を実施するようにされ
ており、プリペンドされるビットパターンはその命令に
対応する命令セットによって決まる。
【0010】本発明に従って、複数の命令セットを処理
回路により使用できる状況では、しばしば異なる命令セ
ット内の命令に対して命令アドレス内で異なる命令アド
レスビット数を指定する必要があることが知られてい
る。本発明はこれを利用して命令アドレスを有する命令
セット情報の効率的な符号化を可能にするものである。
【0011】特に、指定された命令アドレスビットへビ
ットパターンをプリペンドすることにより指定された命
令アドレスビットをn−ビットへ拡張するのと等価の計
算を実施することによりn−ビット符号化命令アドレス
を発生する符号化論理が提供され、プリペンドされるビ
ットパターンはその命令に対応する命令セットによって
決まる。
【0012】例として、命令アドレスが32ビットによ
り指定される状況を考える。第1の命令セットに対し
て、命令はメモリ内の任意のビット位置で開始すること
ができ、したがって、この命令セットに関連する命令ア
ドレスに対しては32ビットを全て指定する必要があ
る。しかしながら、第2の命令セットに対しては、命令
はメモリ内の利用できる全ての場所のサブセット、例え
ば、一つおきのビット位置で開始するよう制約されるこ
とがある。同様に、第3の命令セットは命令をメモリ内
のどこに、例えば、3ビット位置おきに配置できるかに
ついて異なる制約を受けることがある。このような状況
では、第2および第3の命令セット内の命令に対する命
令アドレスの最下位1ビット以上が常に同じ値を有し、
したがって指定する必要がないことは明らかである。例
えば、第2の命令セット内の命令がメモリ内の一つおき
のビット位置で開始することができ、第3の命令セット
内の命令がメモリ内の3つおきのビット位置で開始する
ことができる場合には、第2の命令セットの命令アドレ
スに対する最下位ビットは無視することができ、第3の
命令セットの命令アドレスに対する最下位2ビットは無
視することができることは明らかである。したがって、
このような状況では、たとえ標準的に全てが32ビット
アドレスとして表わされる場合であっても、異なる命令
セット内の命令アドレスに対して異なる命令アドレスビ
ット数を指定する必要があることは明らかである。
【0013】符号化論理の機能を実施することができる
いくつかの異なる方法があることがお判りであろう。例
えば、符号化される各命令アドレスはその命令が関連す
る命令セットに応じて適切なビット数だけ右シフトし
て、指定する必要がある命令アドレスビットだけを分離
することができ、異なるビットパターンは適切にシフト
された命令アドレスへプリペンドされてn−ビット符号
化命令アドレスを形成する。
【0014】したがって、命令アドレスが32−ビット
により指定される前の例を考えると、第1の命令セット
内の命令は32ビット全てを指定する必要があり、第2
の命令セット内の命令は31ビットを指定する必要があ
り、第3の命令セット内の命令は30ビットを指定する
必要があり、第1の命令セットに関連する命令アドレス
は右シフトされず、第2の命令セットに関連する命令ア
ドレスは1ビット右シフトされ、第3の命令セットに関
連する命令アドレスは2ビット右シフトされることが判
る。次に、符号化された命令アドレスが同じ長さとなる
ように異なるビットパターンをシフトされた命令アドレ
スへプリペンドすることができる。符号化命令アドレス
の最上位ビット位置内の異なるビットパターンはこれら
の命令アドレスが関連する命令セットに関する情報を暗
黙的に提供する。
【0015】命令セットに応じてプリペンドされる異な
るビットパターン間の対応性は必要ないことが判る。し
かしながら、好ましい実施例では、各命令セットに対し
てその命令セットからの命令アドレスの指定された命令
アドレスビットへプリペンドされたビットパターンは、
シフトされたパターンにより異なる命令セットの命令ア
ドレスの指定された命令アドレスビットへプリペンドさ
れたビットパターンと関連づけられる。例えば、3つの
命令セットの前例を考えると、ビットパターン“1”を
第1の命令セットの命令アドレスへ加えることができ、
ビットパターン“01”を第2の命令セットの命令アド
レスへ加えることができ、ビットパターン“001”を
第3の命令セットの命令アドレスへ加えることができ
る。
【0016】前記した符号化命令アドレスを発生するの
と等価の任意の計算を使用できることは明らかである。
例えば、予め定められたビットパターンを指定された命
令アドレスビットへプリペンドして中間値を形成するこ
とができ、次にnビットが中間値から符号化命令アドレ
スとして選択される。符号化命令アドレスを形成するn
ビットを選択することができるいくつかの異なる方法が
あることは明らかである。例えば、関連する命令セット
(すなわち、指定する必要があるビットだけでなく、全
アドレスビットが含まれる)に無関係に、全命令アドレ
スが中間値内で同じビット数で表わされる場合、命令ア
ドレスが関連する命令セットに応じてnビットの異なる
選択が行われる。例えば、前の例を考えると、命令アド
レスが第3の命令セットに関連し最下位2ビットは無関
係である場合には、符号化命令アドレスとして選択され
るn−ビットの最下位ビットはビット位置2である。ま
た、中間値を発生する時に指定する必要がある命令アド
レスビットしか使用されない場合には、命令アドレスが
どの命令に関連するかに無関係に、符号化された命令ア
ドレスは常に中間値の最下位nビットを選択することに
より形成されることは明らかである。
【0017】前記したように、本発明の好ましい実施例
は命令アドレスを有する命令セット情報を符号化するた
めの必要な効率的な技術、したがって、命令アドレスを
有する命令セット情報を追跡することが望ましい任意の
インプリメンテーションにおいて有益な技術を提供す
る。可能であれば常に追跡されるデータの量を低減する
一般的な要望があれば、本発明により発生される符号化
命令アドレスをより効率的に表わす技術を提供するのが
有益である。
【0018】したがって、好ましい実施例では、本装置
はさらにその符号化命令アドレスを複数のx−ビットセ
クションへ分割し、各x−ビットセクションを先行する
符号化命令アドレスの対応するx−ビットセクションと
比較し、先行する符号化命令アドレスの対応するx−ビ
ットセクションとは異なる最上位x−ビットセクション
を圧縮符号化命令アドレスとして、任意のより下位のx
−ビットセクションと共に、出力するのと等価の計算を
実施することにより前記符号化命令アドレスを圧縮する
圧縮論理を含んでいる。好ましい実施例では、最下位x
−ビットセクションは常に出力される。
【0019】しばしば任意の特定の命令アドレスは前の
命令アドレスと僅かしか違わず、したがって、命令アド
レスの最上位数ビットはしばしば同一であるため、典型
的にそれにより符号化命令アドレスの著しい圧縮が行わ
れる。本発明に従って、符号化命令アドレスの最上位ビ
ットは使用される命令セットを暗黙的に識別するが、そ
れはかなり不規則的に変化するため、前記した圧縮技術
により多くの符号化命令アドレスを著しく圧縮できるこ
とが判る。
【0020】さらに、符号化命令アドレスが発生される
方法により、任意の無関係なアドレスビットが廃棄され
ていることがあり、したがって、これは指定する必要が
ある命令アドレスビットが命令アドレス内に与えられた
総命令アドレスビット数よりも少ない命令セットに関連
する任意の命令アドレスに対する圧縮効率を改善するの
を助けることが判る。前の例に戻って、命令セット3か
らの命令アドレスが30ビットしか指定する必要がなけ
れば、命令アドレスの最下位2ビットは圧縮が適用され
る前に省かれ、したがって、これは圧縮技術の効率を高
めるのを助けることが判る。
【0021】前記した圧縮技術の潜在的な一つの問題点
は各圧縮符号化命令アドレスがいつ開始および終了する
かを決定することであり、それは各圧縮された符号化命
令アドレスを形成するx−ビットセクション数は、圧縮
される特定の符号化命令アドレスの先行する符号化命令
アドレスと類似する程度に応じて変動するためである。
【0022】この潜在的問題を解決するために、好まし
い実施例では、圧縮論理はそこから出力される各x−ビ
ットセクションにそれが圧縮符号化命令アドレスとして
出力される最後のx−ビットセクションであるかを示す
フラグを関連付けるようにされている。好ましい実施例
では、圧縮論理から複数のx−ビットセクションが出力
される場合には、複数のx−ビットセクションは最下位
x−ビットセクションで開始して逐次出力される。
【0023】どのフラグがどのx−ビットセクションに
関連するかを決定できるかぎり、フラグは各x−ビット
セクションへ別々の信号として出力できることが判る。
しかしながら、好ましい実施例では、圧縮論理はさらに
そこから出力される各x−ビットセクションをyビット
へ拡張するようにされており、最上位y−xビットはフ
ラグを含んでいる。したがって、このような好ましい実
施例では、圧縮論理からの出力は最上位y−xビットが
フラグを含むy−ビットセクション系列であるように、
フラグは実際上各出力セクション内に含まれる。
【0024】任意数のビットを使用してフラグを指定で
きることがお判りであろう。しかしながら、好ましい実
施例では、フラグは単一ビットである。特に、好ましい
実施例では、圧縮符号化命令アドレスはそのセクション
が圧縮符号化命令アドレスの最後のセクションであるか
どうかを最上位ビットが識別する8−ビットセクション
系列を含むようにyは8でありxは7である。
【0025】符号化論理はさまざまな形式をとることが
できることが判る。例えば、前記したように、それは命
令セットの表示に応答して適切な右シフトを確認し、も
しあれば、それを各入力命令アドレスへ適用するシフト
論理を含むことができる。次に、予め定められたビット
パターンを適切にシフトされた命令アドレスへプリペン
ドすることができ、その後最下位n−ビットが符号化命
令アドレスとして出力される。命令セットに応じて適用
される異なる右シフトが与えられると、命令アドレスが
関連する命令セットに応じて、符号化命令アドレスの最
上位ビット位置に異なるビットパターンが存在すること
が判る。
【0026】しかしながら、好ましい実施例では、符号
化論理は中間値および中間値内に含まれる命令アドレス
に関連する命令セットを識別する識別子信号を受信する
n−ビットセクター論理を含み、n−ビットセクターは
識別子信号に応じて中間値の予め定められたn−ビット
を出力するようにされている。このような実施例では、
中間値は命令アドレスに対していかなる右シフトも実施
することなく発生され、中間値からのn−ビットの適切
な選択は識別子信号に応じてなされることが考えられ
る。このようなプロセスにより、個別命令アドレスの適
切な右シフトを実施し続いて最下位n−ビットを出力し
て発生されるのと同じ符号化命令アドレスが発生される
ことが判る。
【0027】好ましい実施例では、圧縮論理は複数の比
較器を含み、各比較器が符号化命令アドレスの対応する
x−ビットセクションを受信するようにされており、さ
らに先行する符号化命令アドレスの対応するx−ビット
セクションを格納するための一時記憶装置を含み、比較
器は2つのx−ビットセクションを比較してそれらが異
なる場合にセットされる差信号を発生するようにされて
いる。好ましい実施例では、一時記憶装置はレジスタの
形状をとり、レジスタは現在x−ビットセクションを格
納するのにも使用される。次に、2つのレジスタからの
出力は適切な差信号を発生するために比較される。
【0028】さらに、好ましい実施例では、比較論理は
圧縮論理から出力される各x−ビットセクションに対し
て複数の比較器により発生される差信号の予め定められ
た組合せに基づくフラグを発生するようにされたフラグ
発生器論理を含み、より上位のx−ビットセクションも
出力される場合には特定のx−ビットセクションに対す
るフラグがセットされるようにされる。したがって、こ
のような実施例では、フラグはもう一つのx−ビットセ
クションがそのx−ビットセクションに続くことを示す
ようにセットされ、対応するx−ビットセクションが圧
縮符号化命令アドレスとして出力される最後のセクショ
ンであればフラグはセットされないままとされる。フラ
グ発生器論理は論理ゲートの任意適切な配線により形成
できることをお判り願いたい。しかしながら、好ましい
実施例では、対応する差信号またはより上位のx−ビッ
トセクションの差信号がセットされる場合に特定のx−
ビットセクションに対するフラグがセットされるのを保
証するのにORゲート列が使用される。
【0029】好ましくは、さらに、比較論理は出力され
る各x−ビットセクションにその対応するフラグをプリ
ペンドすることにより圧縮符号化命令アドレスを発生
し、出力圧縮符号化命令アドレスとしてy−ビットセク
ション系列を発生する出力発生器を含んでいる。出力発
生器はさまざまな方法で構成できることがお判りであろ
う。しかしながら、好ましい実施例では、出力発生器の
機能はフラグ発生器論理および対応するx−ビットセク
ションにより発生されるフラグの適切なハードワイヤリ
ングにより直接実施される。
【0030】本発明の前記した符号化論理および圧縮論
理は命令アドレスを有する命令セット情報を追跡したい
任意のインプリメンテーションにおいて有益に利用でき
ることがお判りであろう。しかしながら、好ましい実施
例では、符号化論理および圧縮論理は処理回路のアクテ
ィビティを追跡するのに使用されるトレースモジュール
内に設けられる。
【0031】したがって、本発明の第2の側面に従っ
て、データ処理装置用トレーシングツールが提供され、
データ処理装置は処理命令の複数の命令セットのいずれ
かからの処理命令を実行する処理回路を有し、各処理命
令はメモリ内のその処理命令の場所を識別する命令アド
レスにより指定され、異なる命令セット内の処理命令に
対して命令アドレス内に異なる命令アドレスビット数を
指定する必要があり、トレーシングツールはその命令に
対応する命令セットの表示を有する命令アドレスを符号
化してx−ビット符号化命令アドレスを発生する符号化
論理を含み、符号化論理はビットパターンを指定された
命令アドレスビットへプリペンドすることにより指定さ
れた命令アドレスビットをx−ビットへ拡張するのと等
価の計算を実施することにより符号化を実施するように
されており、プリペンドされるビットパターンはその命
令に対応する命令セットによって決まる。
【0032】好ましい実施例では、トレーシングツール
は、さらに、符号化命令アドレスを複数のx−ビットセ
クションへ分割し、各x−ビットセクションを先行する
符号化命令アドレスの対応するx−ビットセクションと
比較し、圧縮符号化命令アドレスとして先行する符号化
命令アドレスの対応するx−ビットセクションとは異な
る最上位x−ビットセクションを、任意のより下位のx
−ビットセクションと共に、出力するのと等価の計算を
実施することにより符号化命令アドレスを圧縮する圧縮
論理を含んでいる。
【0033】第3の側面から見て、本発明は命令セット
情報を格納する方法を提供し、処理回路が処理命令の複
数の命令セットのいずれかからの処理命令を実行するよ
うにされており、各処理命令はメモリ内のその処理命令
の場所を識別する命令アドレスにより指定され、異なる
命令セット内の処理命令に対して命令アドレス内に異な
る命令アドレスビット数を指定する必要があり、前記方
法はビットパターンを指定された命令アドレスビットへ
プリペンドすることにより指定された命令アドレスビッ
トをn−ビットへ拡張するのと等価の計算を実施するこ
とにより、その命令に対応する命令セットの表示を有す
る命令アドレスを符号化してn−ビット符号化命令アド
レスを発生するステップを含み、プリペンドされるビッ
トパターンはその命令に対応する命令セットによって決
まる。
【0034】本発明の好ましい実施例では、前記方法
は、さらに、(a)符号化命令アドレスを複数のx−ビ
ットセクションへ分割し、(b)各x−ビットセクショ
ンを先行する符号化命令アドレスの対応するx−ビット
セクションと比較し、(c)圧縮符号化命令アドレスと
して先行する符号化命令アドレスの対応するx−ビット
セクションとは異なる最上位x−ビットセクションを、
任意のより下位のx−ビットセクションと共に、出力す
るのと等価の計算を実施することにより前記符号化命令
アドレスを圧縮するステップを含んでいる。
【0035】本発明は(i)圧縮符号化命令アドレスを
形成するx−ビットセクション数を決定し、(ii)先
行する符号化命令アドレスの対応するx−ビットセクシ
ョンから得られる追加x−ビットセクションを取り入れ
ることにより、必要に応じて、圧縮符号化命令アドレス
をn−ビットへ拡張して符号化命令アドレスを作り出す
のと等価の計算を実施することにより、本発明の第3の
側面の方法に従って発生される圧縮符号化命令アドレス
を伸張する方法にも関連している。
【0036】好ましい実施例では、前記方法は、さら
に、予め定められたビットパターンから命令アドレスが
関連する命令セットを決定し、予め定められたビットパ
ターンを除去して指定された命令アドレスビットを得る
のと等価の計算を実施することにより符号化命令アドレ
スを復号するステップを含んでいる。
【0037】第4の側面から見て、本発明はその第3の
側面の方法に従って装置を制御するコンピュータプログ
ラムを備えたコンピュータプログラムプロダクトを提供
する。
【0038】
【発明の実施の形態】本発明の好ましい実施例を記述す
る目的で、オンチップトレーシング技術、およびトレー
スされる命令アドレスを有する命令セット情報のトレー
シングについて説明する。
【0039】図1はオンチップトレーシング機構を提供
するデータ処理システム2を略示している。集積回路4
はマイクロプロセッサコア6、キャッシュメモリ8、オ
ンチップトレースモジュールコントローラ10およびオ
ンチップトレースバァッファ12を含んでいる。集積回
路4はキャッシュメモリ8内でキャッシュミスが生じる
時にアクセスされる外部メモリ14に接続されている。
汎用コンピュータ16がオンチップトレースモジュール
コントローラ10およびオンチップトレースバァッファ
12に接続され、汎用コンピュータ16で実行するソフ
トウェアを使用してこれらの要素からのトレーシングデ
ータのストリームを回復および解析するように働く。
【0040】しばしば、プロセッサコア6は動作中に外
部メモリ14内に実際に存在するスペースよりも多くの
データ処理命令およびデータにアクセスすることが必要
となることがある。例えば、外部メモリ14は1MBの
サイズを有することができるが、プロセッサコア6は典
型的に32−ビットアドレスを指定することができ、そ
のため4GBの命令およびデータを指定することができ
る。したがって、プロセッサコア6により必要とされる
全命令およびデータが外部記憶装置18、例えばハード
ディスク、内に格納され、プロセッサコア6が特定の動
作状態で動作する時にその動作状態に対する関連する命
令およびデータが外部メモリ14内へロードされる。
【0041】図2は図1のオンチップトレースモジュー
ル内に設けられるコンポーネントをより詳細に示すブロ
ック図である。オンチップトレースモジュール10はプ
ロセッサコア6により実施される処理を示すオーバーパ
ス105データを受信するようにされている。図1に関
して、これはコアから直接受信される追加コントロール
タイプデータ(例えば、命令アドレスがインデクスされ
ている表示、ある命令がある理由によりその条件コード
に失敗した表示、等)と共に、コア6、キャッシュ8、
およびオンチップトレースモジュール10を接続するバ
スから受信することができる。
【0042】同期論理100が着信信号をオンチップト
レースモジュール内で使用するのにより適切な信号の内
部バージョンへ変換するようにされている。次に、これ
らの内部バージョンはトリガー110および制御論理1
20へ送られるが、トリガー110および制御論理12
0は必ずしも同じ信号を受信する必要はないことがお判
りであろう。基本的に、トリガー110はトリガー可能
なイベント、例えば、命令アドレス、データ値、レジス
タアクセス、等に関連するデータを受信する必要があ
る。制御論理120はトリガー110により発せられる
イネーブル信号に応じてトレースする必要がある任意の
データを受信する必要がある。制御論理120は、さら
に、汎用コンピュータ16からパス125を介して構成
情報を受信するようにされており、次に、トリガー論理
構成をセットアップするために、パス115を介してト
リガー110へ信号を発するようにされている。
【0043】トレースストリームの発生を来たさなけれ
ばならないイベントを検出する時は常に、トリガー11
0はパス135を介して制御論理120へイネーブル信
号を送ってトレースをターンオンオフさせる。制御論理
はパス145を介して必要なトレースデータをトレース
バァッファへ出力することにより反応する。パス135
を介して多様なイネーブル信号を提供してトレースすべ
き信号のタイプ、例えば、トレースオンリー命令、トレ
ース命令およびデータ等を識別できることが判る。
【0044】好ましい実施例では、オンチップトレース
モジュール10の制御論理120には命令アドレスを有
する命令セット情報を符号化し、次にこのような符号化
命令アドレスをパス145を介してトレースバァッファ
へ出力する前に圧縮できるようにする追加論理が提供さ
れる。
【0045】制御論理120内で実施される符号化が図
3に略示されており、プロセッサコア6により使用され
る3つの異なる命令セットは“ARM”,“Thum
b”および“Java(登録商標)”の名称で識別され
ている。本発明の好ましい実施例では、命令アドレスは
32ビット長である。Java命令はメモリ内の任意の
アドレス位置で開始することができ、したがって、32
ビット全てをJava命令アドレス220内で指定する
必要がある。しかしながら、Thumb命令はメモリ内
の偶アドレス位置、例えば、位置0,位置2,位置4,
位置6,等でしか開始することができない。したがっ
て、32ビットThumb命令アドレス210内のビッ
ト位置0は常にゼロである。
【0046】同様に、ARM命令はメモリ内の3つおき
のアドレス位置、例えば、位置0,位置4,位置8,位
置C,等でしか開始することができない。したがって、
32ビットARM命令アドレス200の最下位2ビット
は常にゼロである。
【0047】本発明の実施例では、論理1値は各命令ア
ドレスの第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
が作り出される。
【0048】したがって、命令アドレスが関連する命令
セットの表示が33ビット符号化命令アドレスの最上位
3ビットにより与えられることがお判りであろう。特
に、最上位3ビットの“001”は命令をARM命令と
して識別し、“01x”は命令をThumb命令として
識別し(xは任意値を示す)、最上位3ビットとしての
“1xx”は命令をJava命令として識別する。
【0049】好ましい実施例では、33−ビット符号化
命令アドレスはパス145を介してトレースバァッファ
へ出力される前に、図4に略示された技術を使用して、
圧縮される。
【0050】図4に示すように、33−ビット符号化命
令アドレス300(図3に示す符号化命令アドレス23
0,240,250のいずれかとすることができる)は
7−ビットセクションへ分割され、最上位5ビットは2
つの論理ゼロ値を5ビットへプリペンドすることにより
7−ビットセクションへ拡張されている。圧縮符号化命
令アドレスとして出力される各7−ビットセクションは
対応する7−ビットセクションが圧縮符号化命令アドレ
スとして出力される最後の7−ビットセクションである
かどうかを示すフラグをプリペンドすることによりバイ
ト(すなわち、8ビット)へ拡張される。好ましい実施
例では、フラグは連続ビットの形状をとり、それは論理
1値にセットされてもう一つのセクションが出力される
ことを示し、論理0値にセットされて対応するセクショ
ンが圧縮符号化命令アドレスの最後のセクションである
ことを示す。
【0051】任意特定の7−ビットセクションを圧縮符
号化命令アドレスの一部として出力しなければならない
かを判断するために、その7−ビットセクションは先行
する符号化命令アドレス、典型的にはすぐ前を先行する
符号化命令アドレス、の対応する7−ビットセクション
と比較されて先行する7−ビットセクションと異なるか
どうかが確認される。異なる場合には、それは圧縮符号
化命令アドレスの一部として出力され、対応する連続ビ
ットは1にセットされ、先行する7−ビットセクション
と同一であれば、先行する符号化命令アドレスの対応す
るセクションとは異なるより上位の7−ビットセクショ
ンがある場合しか出力されない。その唯一の例外は最下
位ビットに関連する最初の7−ビットセクションであ
り、それは常に出力される。
【0052】図4から、命令セット間にスイッチがある
場合に生じるように、符号化命令アドレスが先行するそ
れと完全に異なる場合には、圧縮符号化命令アドレスは
実際上オリジナル符号化命令アドレスよりも多くのビッ
トを使う。特に、図4について、5つのセクション31
0,320,330,340,350を出力する必要が
ある場合には、圧縮符号化命令アドレスに対して40ビ
ットが必要であることが判る。それにもかかわらず、命
令セット間のスイッチは典型的には比較的まれに生じ、
命令アドレスはしばしばすぐ前を先行する命令アドレス
に極めて類似しており、したがって大概の符号化命令ア
ドレスは図4に示す圧縮技術を使用する結果著しく圧縮
することができる。
【0053】次に、図4のセクション350を見ると、
そのセクション内のビット列は命令セットを暗黙的に識
別することが判る。特に、列360はARM命令セット
を識別し、列370はThumb命令セットを識別し、
列380はJava命令セットを識別する。
【0054】図5は3つの命令400,410,420
の代表的な系列であり、本発明の好ましい実施例に従っ
て作り出される圧縮符号化命令アドレスを示す。命令ア
ドレス400はARM命令に関連しており、16進記法
で書かれる。図3に関して、符号化の結果最下位の2つ
の“0”ビットが除去され、パターン“001”が最上
位の3ビットとして加えられることが判る。このような
符号化命令アドレスに圧縮技術が適用されると、圧縮符
号化命令アドレス430が生じる。図5の例では、次の
命令410はThumb命令であり、したがって最下位
の“0”ビットが除去され、パターン“01”が圧縮の
前に最上位の2ビットとして加えられる。次に、圧縮技
術を適用する結果として圧縮符号化命令アドレス440
が発生される。この段階において、命令セットに関する
情報は命令アドレスにより効率的に符号化されている
が、1つのARM命令に1つのThumb命令が続くた
め、圧縮プロセスはなんら節減されていない。
【0055】しかしながら、次の命令がThumb命令
420であれば、圧縮符号化命令アドレス450が作り
出される。したがって、その32−ビット命令アドレス
はその命令セットに関する情報と共に2バイト、すなわ
ち16ビット、により表現され、これはトレースバァッ
ファ内に格納する命令アドレスおよび命令セットの両方
を発生するための非常に効率的な方法を表わしている。
命令アドレス420に続く任意のThumb命令アドレ
スに対しても著しく圧縮される見込みがあることが判
る。
【0056】図6は所要の符号化および圧縮を行う本発
明の好ましい実施例に従ったオンチップトレースモジュ
ール10の制御論理120内に設けることができる論理
のブロック図である。レジスタ610が設けられその最
上位3ビット607は予め定められたビットパターン、
好ましい実施例では“001”、を格納する。レジスタ
610の最下位32ビットはパス602を介して32−
ビット命令アドレス605を受信する。さらに、パス6
03を介して通されレジスタ610内に格納された32
−ビット命令アドレスが関連する命令を識別する命令セ
ット識別子を格納するラッチ630が設けられる。
【0057】33−ビットセクター論理620がレジス
タ610の内容およびラッチ630の出力を受信し、命
令セット識別子に応じてレジスタ610内の35−ビッ
トから予め定められた33−ビット列を選択するように
される。33−ビットセクター論理620の一例を図7
に示す。
【0058】図7から判るように、33−ビットセクタ
ー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を介して出力する。
【0059】図6に戻って、パス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へ
通される。
【0060】各比較器の構造を図8に略示する。図8に
示す比較器は7−ビット数を処理するようにされてお
り、したがって比較器650,660および670用に
使用される。比較器640は構造的に図8の比較器に類
似しているが、7ビット数ではなく5ビット数を処理す
る。
【0061】新しい7−ビットセクションは比較器によ
り受信されると、レジスタ800内に一時的に格納され
る。次に、それは比較器論理830へ出力される。この
時、比較器論理830もすぐ前を先行するトレースされ
た命令アドレスの対応する7−ビットセクションをレジ
スタ820から受信するようにされる。比較器830は
2つの7−ビット値が同一であるかどうか比較し、同一
であれば比較器論理830は差信号として論理0値を発
生する。そうでなければ、比較器論理830は差信号と
して現在の7−ビットセクションが前の7−ビットセク
ションとは異なることを示す論理1値を発生する。次の
7−ビットセクションが受信されると、それはレジスタ
800内に格納され、レジスタ800の前の内容は次の
プロセスで使用するためにレジスタ820へ通される。
【0062】図6に戻って、4つの比較器640,65
0,660および670により作り出される異なる信号
の各々が、圧縮符号化命令アドレスの一部として出力さ
れる各セクションに関連づけられる連続ビットを発生す
るのに使用される連続ビット発生器680へ通される。
連続ビット発生器680を形成するのに使用することが
できる論理の例が図9に示されている。
【0063】図9から判るように、この論理は基本的に
33−ビット符号化命令アドレスのより上位セクション
に関連する差信号を処理している任意他のORゲートか
らの出力と共に対応する差信号を受信するようにされた
一連のORゲート910,920および930を含んで
いる。したがって、比較器640からパス686を介し
て発せられる差信号はパス950を介して直接出力さ
れ、パス625を介した33−ビットセクター620か
らの7−ビットセクション出力に対する連続ビットを形
成する。パス626を介して33−ビットセクター62
0から出力される最上位セクション出力に対する連続ビ
ットは常に論理0値であり、それはそのセクションが常
に圧縮符号化命令アドレスが出力される場合の最後のセ
クションであるためである。したがって、パス940は
論理0へハードワイヤされてそのセクションに対する連
続ビットを提供する。
【0064】ORゲート930はパス685および68
6を介して差信号を受信するようにされており、パス6
85または686上の差信号が論理1値であればパス9
60を介して論理1値を有する連続ビットを発生する。
パス960を介したこの連続ビットはパス624を介し
て33−ビットセクター620により出力される7−ビ
ットセクションを修飾する(qualify)のに使用
される。
【0065】ORゲート920および910は似た働き
をし、その対応する差信号がセットされるかまたは符号
化命令アドレスの任意のより上位のセクションで実施さ
れる比較に関連する差信号がセットされる場合に、対応
する連続ビットが論理1値にセットされることを保証す
る。パス970を介して出力される連続ビットはパス6
23を介して出力される7−ビットセクションと一緒に
使用され、パス980を介して出力される連続ビットは
パス622を介して出力される7−ビットセクションと
一緒に使用される。
【0066】図6に戻って、現在必要なのは連続ビット
を最下位7−ビットセクションで始まる33−ビットセ
クターにより出力されるその関連するセクションと結合
することにより圧縮符号化命令アドレスを形成し、次に
圧縮符号化命令アドレスのどれだけをトレースバァッフ
ァ12へ出力するかを決定することである。論理0連続
ビットに遭遇するとすぐに、トレースバァッファへさら
にセクションを出力する必要がなくなる。この機能は図
6に示す圧縮符号化命令アドレス発生器690により実
施される。このプロセスは図10に略示されている。図
10に示すように、最下位7−ビットセクションで開始
して、7−ビットセクション1000は8−ビットセク
ションへ変換され適切な連続ビットへ1010を加える
ことにより最上位ビットとして出力される。このプロセ
スは各7−ビットセクションに対して次々に繰り返され
る。
【0067】最上位5−ビットに対応する5−ビット値
1020は連続ビット1060と共に2つの論理値10
40および1050をプリペンドすることにより8−ビ
ット出力へ拡張される。前記したように、このセクショ
ンは必ず圧縮符号化命令アドレスの最後のセクションで
あるため、この場合連続ビットは常に論理0値である。
【0068】次に、前記プロセスから生じる40−ビッ
ト値が圧縮符号化命令アドレス発生器から出力され、前
に連続ビット発生器680により発生されたイネーブル
ビットが長さ値を作り出すのに使用され、それは40−
ビット値内のどれだけ多くの8−ビットセクションをト
レースバァッファ12へ出力するかを決定するのに使用
される。例えば、パス682上のイネーブルビットおよ
びORゲート910からの出力がセットされると、2つ
の最上位8−ビットセクションが圧縮符号化命令アドレ
スとしてトレースバァッファ12へ出力される。
【0069】好ましい実施例の前記説明から、命令セッ
ト情報に命令アドレスを取り入れ、その符号化命令アド
レスを圧縮して格納のための効率的な表現を提供する効
率的な技術が記述されたきたことがお判りであろう。好
ましい実施例では、この技術はトレーシング機構に応用
され、圧縮データはトレースバァッファ12内に格納さ
れる。次に、圧縮符号化命令アドレスを伸張するための
伸張論理を汎用コンピュータ16内に設けることができ
る。圧縮技術に関する詳細な検討が既になされているた
め、当業者ならば伸張がどのように働くかが容易にお判
りであろう。簡単に言えば、伸張器が圧縮符号化命令ア
ドレスを表わす8−ビットセクション系列を読出し、各
8−ビットセクションの最上位ビット位置内の連続ビッ
トの値により示される、1つの8−ビットセクションか
ら5つの8−ビットセクションまで系列は変動する。
【0070】5つの8−ビットセクションからなる圧縮
符号化命令アドレスに対して、符号化命令アドレスは各
8−ビットセクションから連続ビットを剥ぎ取り、次に
最下位7−ビットセクションで開始して7−ビットセク
ションを連結することにより再構成することができる。
最下位33−ビットは符号化命令アドレスを表わすよう
になり、その33−ビット値の最上位3−ビットパター
ンが命令セットを識別する。命令がJava命令であれ
ば、符号化命令アドレスの最下位32−ビットを出力す
るだけで32−ビット命令アドレスを再生することがで
きる。命令がThumb命令であれば、符号化命令アド
レスを1位置だけ左へシフトさせ最下位32−ビットを
出力することによりオリジナル命令アドレスが与えら
れ、最下位ビットは論理0値となる。同様に、命令がA
RM命令であれば、符号化命令アドレスを2位置だけ左
へシフトさせ最下位32ビットを出力することによりオ
リジナルARM命令を出力することができ、この場合最
下位2ビットが論理0値となる。
【0071】4セクション以下からなる後続圧縮符号化
命令アドレスに対しては、圧縮符号化命令アドレス内に
含まれる各セクションから連続ビットを除去することが
でき、命令アドレスの最下位ビットは最下位セクション
で開始される任意のこのようなセクションを結合するこ
とにより再構成される。圧縮符号化命令アドレス内のセ
クション数に応じて、これにより命令アドレスの第1の
7,14,21または28ビットが生じる。残りのビッ
トは先行する伸張命令アドレスと同一であるため、その
前の伸張命令アドレスから決定することができる。
【0072】本発明の最も好ましくない実施例のトレー
シング技術の詳細な説明は、英国、キャンブリッジ、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またはリセット表明によ り割り込まれた命令
【0073】範囲 このドキュメントはETM10の機能を指定するもので
ある。ETM10は命令およびデータトレーシングが可
能なリアルタイムトレースモジュールである。機能はA
RM7およびARM9に対する従来のETMインプリメ
ンテーションのそれと同様である。読者はEmbedd
ed Trace MacrocellSpecifi
cation(ARM IHI 0014D)に概説さ
れているオリジナルETM仕様に精通しているものとす
る。この仕様はETM10と従来のETMバージョン間
の共通のアクチュエータ特徴を再び述べようとするもの
ではなく、ETM仕様のETM10に対して変更される
部分を検討するものである。これらの変更の大部分はA
RM1020Eを適切にトレーシングすることができる
新ETMプロトコルの生成に関係している。このプロト
コルは将来のARMコアもトレーシングするために拡張
可能とされる。
【0074】序説 Embedded Trace Macrocellは
ETM,トレースポート解析器、およびソフトウェアデ
バッガー(ADW等)を含むARMのRealTime
Debugソリューションの一体部である。
【0075】Embedded Trace Macr
ocellは2つの部分、トレースブロックおよびトリ
ガーブロックからなる。トレースブロックは圧縮トレー
スを生成し狭いトレースポートを横切ってそれを出力す
る。トリガーブロックはユーザがトリガー状態を指定で
きるようにするプログラマブルリソースを含んでいる。
トリガーブロックリソースはどの命令およびどのデータ
転送がトレースされるかを制御するフィルタとしても使
用される。全てのETM構成レジスタ(トリガーブロッ
クリソースを含む)がJTAGインターフェイスを介し
てプログラムされる。ユーザはソフトウェアデバッガー
を使用してこれらのレジスタにアクセスする。トレース
が捕捉されると、デバッガーにはトレースを伸張してユ
ーザに実行されたコードの全分解を提供する責任もあ
る。デバッガーソフトウェアはETMトレースポート出
力をリアルタイムで処理することができないため、トレ
ースは最初に外部Trace Port Analys
er(TPA)内へ捕捉される。TPAは完全に機能的
な論理解析器、またはAgilent nTraceb
ox等の特定ETMデバイスとすることができる。トリ
ガー状態が生じてデバッグランが完了すると、デバッガ
ーはTPAからトレース情報を抽出する。説明のこのハ
イレベルにおいて、ETM10はETM7およびETM
9と機能的に同一である。
【0076】Etm10に必要な変更 ユーザの観点から、ETM10は重要ではない僅かな違
いはあるがETM7およびETM9により提供されるの
と等価の命令およびデータトレーシング能力を提供す
る。この章はETM10に対するETMアーキテクチュ
アに対してなされる変更およびなぜ変更されるかを説明
する。多くの変更は伸張ソフトウェアにしか影響を及ぼ
さず、エンドユーザだけでなく残りのトレースツールキ
ットソフトウェアには不可視である。しかしながら、あ
る変更はプログラマーのモデルに影響を及ぼすかあるい
はETM7およびETM9からのトレーシング動作に小
さな差を生じる。このような変更がこの章で指示され
る。新プロトコルの徹底的な説明を必要とするETM1
0に対する任意の変更は5章のプロトコル説明において
より徹底的に扱われる。
【0077】1.2 分岐ファントムトレーシング ARM10は“分岐畳込み(branch foldi
ng)”を実現し、それは分岐を予測し、正規の命令ス
トリームから引出し、プログラム内の次の命令と並列に
有効に実行できることを意味する。これらの畳み込まれ
た分岐は分岐ファントムと呼ばれる。旧プロトコル内の
PIPESTAT符号化はサイクル当たり実行される1
命令しか考慮しない。分岐ファントムがトレースされる
ようにするために、命令と並列に畳み込まれた分岐を表
わすPIPESTATフィールドに新符号化が追加され
る。5章のETM10プロトコル仕様内に新PIPES
TATが与えられている。
【0078】畳み込まれた分岐はトリガーブロックへの
変更も必要とする。分岐が畳み込まれると、有効に2つ
の命令が並列に実行される。これら2つの命令に対する
PC値は任意の識別可能な関係を有することが保証され
ないため、2つのアドレス比較を各サイクルで行わなけ
ればならない。これは各アドレスレジスタが2つの比較
器を必要とすることを意味する。トレーシングがイネー
ブルされるかどうかを決定する時に、両方の比較器出力
が考慮される。(これら2つの命令のいずれかがトレー
スされる場合には、トレーシングはそのサイクルでイネ
ーブルされる)。分岐畳込みによりせいぜい1つの追加
命令しかトレースされないことを保証するために特別な
注意がなされる。一般的に、ユーザはTraceEna
bleまたはViewDataを適切にプログラムする
ためにいつ分岐が畳み込まれ次の命令と一緒に並列に実
行されるかを知っている必要がない。
【0079】イベントに対して、命令の並列実行はET
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の同時発
生の適切な処理が保証される。
【0080】1.3 ロードミスおよび例外トレーシン
グ ARM10は他のメモリ命令を含む他の命令を単一の顕
著なミスの下で実行できるようにする非ブロッキングデ
ータキャッシュを有し、データキャッシュは狂った順で
データをコアへ戻すことができる。現在プロトコルはロ
ードデータが正しい順でFIFOに配置されることを期
待するため、この特徴はロードデータ追跡問題である。
データパケットは一部ヘッダーバイトによりプレフィク
スされて狂った順のロードミスデータを収容する。ヘッ
ダーバイトは5章に詳細に説明されている。
【0081】非ブロッキングキャッシュのサポートはデ
ータ比較器への変更も必要とする。ETM7およびET
M9と同様に、ETM10は一対のアドレス比較器と一
緒に使用されるデータ比較器を有する。使用時に、比較
器はデータもマッチする場合のマッチしかトリガーしな
い。他のメモリアクセスはミスの下で生じることがある
ため、ミスとなるロード要求に対するアドレスがマッチ
したかどうかを記憶にとどめるために各比較器にビット
が追加される。ロードミスデータが戻されると、データ
値比較がなされ、比較結果を限定するために保存された
アドレスマッチビットが使用される。次に、このマッチ
ビットはクリアされる。場合によっては、ユーザは比較
器をイネーブルするためにミスデータが戻されるのを待
機したくないことがある。替わりに、ロードミスが常に
データアセンブリだけに基づいてトレースされるように
したいことがある。両方のユーザモデルをサポートする
ために、各比較器に対してどのモデルがイネーブルされ
るかをユーザが指定できるようにするビットがアドレス
アクセスタイプレジスタへ加えられている。比較におけ
るロードミスデータに対する待機が望まれる場合には、
ユーザはアドレスアクセス型レジスタのビット8、Ex
atx Matchビット、をセットしなければならな
い。(アクセスタイプレジスタの詳しい情報については
参照1を参照されたい)。トリガーその他のイベントを
生成するためにデータ値が使用される場合には、データ
比較が生じるのを待機することは有用である。比較器が
トレースフィルタリングに使用されある無関係なトレー
シングが問題とされない場合には、アドレスのみに基づ
いたトレーシングロードミスが有用である。ロードデー
タは狂った順で戻されることがあるため、ユーザはデー
タ値を使用して、シーケンサ遷移等の、イベントを生成
することにより狂った順のイベントが生じることがある
ことを知らなければならない。ARM10の非ブロッキ
ングキャッシュがプログラムされたイベントに影響を及
ぼすことがあることにユーザが関係する場合には、この
特徴はcp15構成レジスタ(r1)へのライトを介し
てコア内でディセーブルすることができる。詳細な情報
についてはART1010E TRM(参照3)を参照
されたい。
【0082】アクセスタイプレジスタのビット7は中
断、割込み、またはソフトリセットが生じる時の比較器
動作を指定するのに使用される。これらの状態は一般的
に例外と呼ばれる。データアクセスが中断されビット7
が表明されると、データマッチが要求されるかどうかに
無関係に、比較器はマッチ出力とはならない。比較器が
命令アドレスと結ばれる場合には、例外とマークされる
命令でのマッチを防止するのに正確なマッチビットが使
用される。例外となる命令およびデータ要求は通常中断
または割込み状態が解決されると再試行されるため、比
較器が1回しか点火しない場合にこの動作が望ましい場
合が多い。データアクセスケースでは、ビット7が表明
されない場合には、データ値は無効と推定されるため中
断されたアクセスにより純粋にアドレスに基づくマッチ
となる。
【0083】所望の動作は典型的には両方のケースに対
して同じであるため、同じExact Matchビッ
トがロードミスおよびデータ中断の適切な処理を決定す
るのに使用される。Exact Matchビットのデ
フォルト値は0である。
【0084】1.4 ARM10データトレーシング ARM1020Eは単一サイクル内でデータの64ビッ
トを戻すことができる64ビットデータバスを有する。
この64ビットデータバスをサポートするために、ET
M10は単一サイクル内に2つの隣接データ値をトレー
シングできなければならない。一方または他方の値だけ
のトレーシングをサポートするために、2つのView
Data出力が発生される。しかしながら、まだイベン
ト用の1つの出力とTraceEnable用の1つの
出力しかない。同じサイクル内にアクセスされる2つの
隣接32ビット要求によりカウンタの1減分またはシー
ケンサによる1つだけの状態変化しか生じないため、1
つのイベント出力を有することはカウンタおよびシーケ
ンサ論理に影響を及ぼすことがある。イベント論理をプ
ログラミングする時にユーザはこれを考慮しなければな
らないが、それは重要な問題とは思われない。
【0085】1.5 LSMトレーシング ARM1020Eは独立したロード/ストアユニットを
有し、それによりロード/ストアユニットがデータアク
セスを反復する間に、以後LSMと呼ぶ、多数の命令の
ロードまたはストアの下で他の命令を実行することがで
きる。(すなわち、LSMの実行はコアを停止させな
い)。これをサポートするために、アドレス比較器出力
およびTraceEnableの表明へのある変更が必
要である。・LSM命令を反復しながらそれをアクティ
ブにトレーシングする時は常に、TraceEnabl
eが表明されたままであるかどうかにかかわらず、LS
Mが完了するまでそれはアクティブのままである。(こ
のルールの唯一の例外はオーバフローケースである)。
このルールにはLSMの下で実行された他の命令が、本
来トレースされるものかどうかにかかわらず、トレース
されてしまうという副作用がある。しかしながら、定義
によりLSMの下で実行する命令はデータ命令であるは
ずがないため、それにより余分なデータパケットが生じ
ることはない。・比較器がLSMの命令アドレス上で活
性化される時は常に、その比較器のViewData出
力は全命令が完了するまで表明されたままである。それ
はユーザの意図がこの命令に関連する全てのデータパケ
ットをトレースすることであるためである。同様に、V
iewDataおよびEvent範囲出力はLSM命令
の完了まで表明されたままである。イベント単一アドレ
ス比較器出力は定義により単一サイクルしか表明しない
ため、表明されたままではない。・LSMに関連するデ
ータ転送がトレースされていると、通常トレースされな
いその命令に関連する後続転送はプレースホルダーパケ
ット出力を有する(トレースされない値−5章参照)。
これらのプレースホルダーパケットはどの語がトレース
されたかを確認する必要がある。
【0086】ETMプロトコルは命令トレーシングがロ
ード/ストアデータアドレス(およびデータ値)に基づ
いて命令トレーシングがイネーブルされることを考慮す
る。ARM10上で、LSM命令はトレーシングイネー
ブリングイベントが生じる時にもはやコアの実行段階に
はないことがあるため、この命令アドレスは周りに維持
して特殊な方法で同報してこの特徴をサポートする必要
がある。これはProgress TFOパケット内の
LSMを使用して遂行される。Trace Packe
t Offsetは5.2.4に記載されている。
【0087】1.6 補助データトレーシング プロトコルへのデータヘッダーの追加は補助データタイ
プのトレーシングも考慮する(すなわち、ロード、スト
ア、およびCPRT命令以外のデータ値のトレーシン
グ)。この補助データタイプトレーシングはETMトレ
ーシングの拡張を考慮することを意味し、それはETM
の将来バージョンにおける外部ASICデータのトレー
シングを含むことができる。補助データトレーシングの
より多くの情報が5章のデータヘッダー検討に与えられ
ている。
【0088】1.7 CONTEXTIDトレーシング CONTEXT IDはそれらが更新される時および同
期化のために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
である。
【0089】ARM10〈−〉ETM10インターフェ
イス上のもう一つの32ビットポートを必要とする替わ
りに、ETM10はCONTEXT ID更新を認識し
て現在CONTEXT ID値を内部シャドーレジスタ
内に維持する。コヒーレンシを適切に維持するために、
ETMがPOWERDOWNモードである時でも(ET
Mレジスタ0×4、ビット0が表明される)このレジス
タは常に更新される。
【0090】トレースフィルタリング用のCONTEX
T ID値を使用することがETM10に対する追加特
徴として加えられる。これは予期CONTEXT ID
値を指定することができるETM内の新しいプログラマ
ブルレジスタセットを介して実現される。
【表1】 各CONTEXT ID比較器に対して同じマスクが使
用され、データ比較器マスクと同様に働く。
【0091】アドレス比較器アクセスタイプレジスタの
ビット9:8はCONTEXT ID比較器が使用され
るかどうかを示す。00の値によりCONTEXT I
D比較器は無視される。01,10または11の値によ
りアドレス比較器は、CONTEXT IDマスクを考
慮した後で、現在CONTEXT IDがそれぞれCO
NTEXT ID比較器1,2または3内のそれとマッ
チする時だけマッチするようにされる。
【0092】CONTEXT ID比較器がイベントブ
ロック内から直接アクセスできるように新しいイベント
リソースが割り当てられる(ARM IHI 0014
Dの3.3.4参照)。これらの新しいリソースは0×
58−0×5Aへマッピングされる。
【表2】 新しいフィールドがETM構成コードレジスタに加えら
れて存在するCONTEXT ID比較器数を示す(A
RM IHI 0014Dの4.2.2参照)。
【表3】
【0093】1.8 トレース出力周波数 ARM1020E Macrocellは300MHz
を越えるコア周波数で動作することができる。従来のE
TMインプリメンテーションは周波数が200MHzを
越えることがない。ETMトレース出力に対して得られ
る最大出力周波数はトレース解析器の最大サンプル周波
数およびパッドで得られる最大出力周波数によって決ま
る。AgilenおよびTektronix解析器は、
それぞれ、333MHzおよび400MHzの最大周波
数で捕捉することができる。しかしながら、ARMパー
トナーから得られる任意のCMOSパッドはこの周波数
においてクリーンで、トレース可能な信号を供給できる
可能性が非常に高い。したがって、パッドは速度制限要
因と考えられる。より大きなパッドおよび/またはボー
ドレベルバァッファリングを使用してある速度改善を得
ることができる。これらの技術により我々は200MH
zにおいて信頼できるトレースを行うことができる。よ
り高速のトレーシングに対しては、2つのオプションが
ある。ピンカウントを2倍にし周波数を半分にすること
ができる(デマルチプレクストレースポート)、あるい
はオンチップトレースバァッファを利用することができ
る。両方の技術に利点および欠点がある。
【0094】ピンカウントを2倍にすることはパッケー
ジ制限および追加ピンの高いコストによりあるパートナ
ーにとって魅力的なオプションではない。また、この技
術はTPAの変更および、恐らくは、第2のマイクロコ
ネクタの追加が必要であり、それはより広い面積をとり
さらにコストが加算される。さらに、この技術にはやは
り400MHzの速度制限がある。熱工程で作られたA
RM10プロセッサは恐らくこれらの速度を越える。
【0095】オンチップバァッファにはコアクロック速
度で信頼できるトレーシングおよび追加ピンをなんら必
要としない利点がある。事実、全てのトレース捕捉がオ
ンチップバァッファを利用して行われる場合には、オン
チップバァッファがJTAGポートを介したMulti
−ICEを経てダウンロードされるため外部可視ETM
ポートは解消することができる。このソリューションの
欠点はオンチップバァッファのサイズが典型的に極めて
小さく、8−16KB程度であることである。したがっ
て、トレーシング深さが制限される。大きなオンチップ
トレースバァッファが可能であるが、ASICのサイズ
に直接インパクトを与え、小さなトレースバァッファで
あっても同じ設計で与えられるよりも多くのシリコンス
ペースを使用することがある。
【0096】各方法の利点および欠点が変動するため、
前記した両オプションがサポートされるように計画され
る。高速トレーシング用デマルチプレクスドトレースポ
ートによりARM10200 rev 1テストチップ
が造られる。オンチップトレースバァッファはARM1
0200 rev 1テストチップの一部ではない。
【0097】ETM9用オンチップトレースバァッファ
の仕様が作成されており、インプリメンテーションが進
行中である。5.2章に記載されている新4ビットPI
PESTAT符号化をサポートする重要ではない変更に
より、この設計からETM10コンパチブルオンチップ
トレースバァッファを生成することができる。ETM1
0をサポートするのにどんなTrace Captur
e Device変更が必要であるかの詳細な情報につ
いては参照4を参照されたい。タイムスケールに応じ
て、ETM10コンパチブルオンチップトレースバァッ
ファは、ダイナミックトレース圧縮等の、追加特徴を提
供することができ、事実FIFO置換として直接ETM
10設計内に一体化することができる。
【0098】1.9 同期レジスタ 従来のETMインプリメンテーションでは、同期は10
24サイクル毎に5−バイト命令を介して、また102
4サイクル毎に5−バイトデータアドレスを介して生じ
る。ETM10に対しては、これらの同期点は新しい1
2ビットプログラマブルレジスタを介して構成すること
ができる。構成可能な同期によりトレースバァッファサ
イズの全範囲を利用するのが容易になる。オンチップト
レースバァッファ等の小型トレースバァッファはトレー
スの大きな部分を投げ出すのを回避するために頻繁に同
期することができ、大型トレースバァッファは不要同期
の無駄なトレーススループットを回避するためにたまに
同期することができる。デフォルトカウンタ値は102
4サイクルである。データアドレスおよび命令アドレス
同期が同時に生じるのを防止するために、データアドレ
ス同期はカウンタがその中点値に達する時に生じ命令ア
ドレス同期はカウンタが0に達する時に生じる。新しい
同期レジスタに対するアドレスは0×78である。
【0099】1.10 メモリマップデコーダ 従来のETMインプリメンテーション内に存在した外部
メモリマップリソース入力はETM10に対してサポー
トされない。ARM10アーキテクチュア内に存在する
余分な複雑さにより外部デコーダに対するサポートの実
現はより困難となる。外部イベントはEXTINを利用
することによりまだトレーシングを制御することがで
き、それはcycle accurateとなる(4.
15で検討されている)。
【0100】1.11 レンジアウト 従来のETMインプリメンテーションはEmbedde
d ICE論理内のデータ値比較レジスタを余分な外部
レジスタリソースとして使用することができる。この機
能はEmbedded−ICEから来るRANGEOU
T出力を使用して遂行される。ARM10デバッグユニ
ットにはデータ値比較機能がないためこれらのRANG
EOUT出力はない。したがって、このリソース再使用
はETM10に対しては不可能である。これらのリソー
スはもはやプログラムされないためプログラマーのモデ
ルへのそのインパクトは少ない。
【0101】1.12 割込みベクトルへの分岐 現在プロトコルは割込みベクトルテーブル内のエントリ
ーへの直接分岐は間接分岐としてトレースしなければな
らないと指定している。ファントム分岐は提案されたプ
ロトコル内で間接分岐へ変換することができないため、
もはやこれは常に可能ではない。したがって、直接分岐
が分岐ファントムであったかどうかに無関係に、一貫性
および単純性のために割込みベクトルへの直接分岐はも
はや間接分岐としてトレースされない。5.3.1章に
記載されているアドレスバイト5の特殊な符号化により
PABORT,FIQ,IRQ,DABORT,および
RESETベクトルへの分岐を検出することができる。
【0102】1.13 プロトコルバージョン ETM7およびETM9上の構成コードレジスタ(レジ
スタ0×01)内に存在する4−ビットETMプロトコ
ルバージョンフィールドはETM用の将来のプロトコル
バージョンをサポートするのに不十分であることが確認
されている。したがって、マイナーおよびメジャー訂正
番号だけでなく意図するARMコアを指定するフィール
ドを含む新しいETM IDレジスタが定義されてい
る。このレジスタはレジスタアドレス0×79へマッピ
ングされ、構成レジスタ内のビット31がセットされる
時は常に有効と見なされる。それによりETM7および
ETM9はIDレジスタを必要とせずにプロトコルバリ
アント0−7を使用することができる。ETM IDレ
ジスタは下記のフィールド内へ分散される32ビット値
を含む。
【表4】 ETM rev0はID値0×41012100を有す
る。
【0103】1.14 トレース開始/停止リソース TraceEnable開始/停止論理の現在状態を与
える新しいイベントリソースが含まれる。これにはリソ
ース番号101 1111が与えられ(ARMIHI
0014Dの3.3.4章参照)、Trace Sta
rt/Stopがアクティブである時は常に表明しなけ
ればならない。開始/停止リソースをサポートするET
MバージョンはETM制御レジスタ内のビット23も表
明する。
【0104】1.15 TPA変更 全てのTPAはARM10用の新しいトリガーおよびト
レースディセーブル状態値をサポートするためのマイナ
ー変更が必要である。すなわち、それらはTRおよびT
D PIPESTATsを検出するためにPIPEST
AT[3]/TRACESYNCがローであることを保
証しなければならない。AgilentnTraceは
マイナーハードウェア変更も必要である。デマルチプレ
クド、ハーフスピードETMポートを介した高速トレー
シングをサポートするために、TPAは各サイクル内で
トレースデータの2コアサイクル分を捕捉できなければ
ならない。このデータはMictorコネクタを横切っ
て同報される。したがって、多数のコネクタに対するサ
ポートも必要である。これらの変更に関するより詳細な
情報については参照4を参照されたい。
【0105】1.16 精密イベント ETM7およびETM9において、Eventブロック
を介して発生されるイベントは精密ではなく、それはユ
ーザはデータアクセスまたはEventを発生した命令
をトレースすることを保証されなかったことを意味す
る。ETM10に対してはもはやそうではない。Vie
wDataおよびTraceEnableの表明はそれ
がどのように発生されるかにかかわらず常に精密であ
る。
【0106】1.17 FIFOFULLレベルレジス
タ ETM7およびETM9レジスタに対して、FIFOF
ULLが表明される前にFIFOが達しなければならな
いレベルをセットするのに0×0Bが使用された。ET
M10、FIFOFULLに対してこのレジスタは使用
されず替わりに、イネーブルされると、FIFOFUL
Lはその中に新しいパケットが置かれる時は常に表明さ
れる。ETM10はETM7/9よりも深くパイプライ
ンされ、FIFOFULLはこのように使用される場合
に有用となるのに十分早くしか表明できない。ETM1
0において、FIFOFULLレジスタはFIFOサイ
ズを指定するリードオンリーレジスタとして再使用され
る。FIFOサイズはETM7/9内でソフトウェアに
より決定することができないサイズである。
【0107】1.18 トリガー出力 プロセッサがモニターデバッグモードであれば、DBG
RQは無視される。したがって、トリガーが生じている
ことを認識することができる他の機構を有することが有
用である。このために、単一ビットTRIGGER出力
がETM10用ETMインターフェイスに追加されてい
る。TRIGGER出力は4−ビットTRIGGER状
態がPIPESTATバス上で駆動される時は常に表明
される。次に、この信号を割込みコントローラが使用し
て割込みの表明を介してトリガーのコアを知らせること
ができる。TRIGGER出力は不要であれば追加しな
いままとすることができる。
【0108】1.19 カウンタイベント ETM7/9に対して、カウンタイベントレジスタは連
続的にカウントするのに使用することができる余分なビ
ット17を有する。このビットはその動作が冗長性で検
証することが困難であるため除去されている。連続的カ
ウンタが欲しい場合には、ユーザは常にアクティブとか
べきハードワイヤである外部リソース15に等しいイベ
ントを単純にプログラムする。
【0109】ETM10トレースポート 1.20 ETM10ポート信号 ETM10トレースポートは2つの信号、PIPEST
ATおよびTRACEPKT、からなり共にTRACE
CLK(GCLKと同じ周波数を有する)の立上り縁に
おいて有効である。PIPESTATは分岐ファントム
用符号化スペースを追加するためにETM10に対して
3ビットから4ビット信号へ拡張されている。TRAC
EPKTは従来のETMバージョンから変更されておら
ず、構成に応じて4,8,または16ビットとすること
ができる。同期はもう一つの機構を介して達成されるた
め、TRACESYNCピンはプロトコルから除去され
ている。全般的結果は従来のETMインプリメンテーシ
ョンと同じピンカウントを有するトレースポートとな
る。
【0110】1.21 PIPESTAT符号化
【表5】
【0111】1.21.1 分岐ファントムPIPES
TATs 下記の命令と並列に実行される分岐ファントムを考慮す
るために8つの新しい分岐ファントムが付加される。こ
れらの符号化は常に実行ストリームの最初である分岐命
令として解釈しなければならない。直接分岐だけが予測
され、分岐ファントムはFIFO内にデータパケットを
置くことはない。並列に実行されるいかなる命令も不正
命令ストリームからのものでありしたがってキャンセル
されるため、誤予測される畳込み分岐により正規のIE
/IN PIPESTATが生じる。
【0112】1.21.2 Data PIPESTA
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章によ
り詳しく説明されている。
【0113】1.21.3 命令PIPESTAT 非待機PIPESTAT値、すなわち命令が実行された
ことを示すもの、は常に命令が実行されている第1サイ
クル上に与えられる。この区別は数サイクルに対してデ
ータを実行して戻すLSM命令にとって重要である。こ
の動作は、LSMが実行されたLASTサイクルに実行
したPIPESTAT値を与える、従来のプロトコルバ
ージョンとは異なっている。
【0114】“実行されない”PIPESTATs(I
N/DN)は2つの理由により生じる。命令がその条件
コードに失敗したか、または例外により実行されなかっ
た。前記したように、可能な例外は割込み、プリフェッ
チ中断、およびリセット表明を含んでいる。データ中断
となるロード/ストア命令は実行されていると考えられ
るためIN/DN状態を与えられない。伸張器は例外に
より命令の実行が防止される時を知る必要がある。この
情報は前のLSM命令からの遅いデータパケットが例外
命令に付加されるのを防止するのに使用される。(“実
行されない”PIPESTATを有する命令が考慮され
る唯一のデータパケットは分岐アドレスである)。
【0115】1.21.4 TD状態およびTFOs TDの状態はこのサイクルのTRACEPKT上にトレ
ースFIFOデータが存在しないことを意味する。なぜ
それが起こるかについて2つの理由がある。 ・FIFO内にトレースされるデータがない(FIFO
が空でなければ、状態はWTである)。特に、トレース
がディセーブルされるすぐ後で次にイネーブルされるま
で生じる。 ・ETM同期のためにTFOが同報される。
【0116】PIPESTAT上にTD状態が与えられ
ると、伸張ソフトウェアは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値の範囲を最
大とする。
【表6】
【0117】トレース情報を伸張してパイプライン状態
(PIPESTAT)とFIFO出力(TRACEPK
T)間を同期させる時にTFOまたはTrace FI
FOOffsetが使用される。トレースが最初にイネ
ーブルされる時および命令同期カウンタが0に達する時
は常にTFOが発生される。Trace FIFOof
fsetは従来のETMインプリメンテーションにおい
て使用されたアドレスパケットオフセット(APO)情
報を置換する。分岐をカウントするのではなく、TFO
は現在FIFO内にあるバイト数をカウントする。この
ような同期によりプロトコル内のTRACESYNCピ
ンに対する必要性がなくなる。また、BE PIPES
TATでトレーシングを開始してAPO値に対する2つ
のデッドサイクルが続く必要性もなくなる。
【0118】トレースが既にイネーブルされている間に
TFOが同期のために同報される時は常に、IEのPI
PESTAT値が含まれる。TFOが同報されてトレー
シングを開始する時は、PIPESTATは含まれず最
初にトレースされた命令に対するPIPESTATが下
記のサイクル内で与えられる。
【0119】下記の全ての規準が満たされる時は常に同
期TFOが発生される。 ・典型的に1024に初期化されたサイクルカウンタが
0に達する ・現在命令が‘IE’のPIPESTAT値を有する
【0120】同期要求が表示されると、TFOサイクル
カウンタは命令同期レジスタ内へプログラムされている
値へリセットされ(デフォルト値は1024)カウンテ
ィングを再開する。第1の同期要求がサービスされる前
に第2の同期要求がなされるケースでは、強制的に同期
を起こさせる方法としてETMは強制的にオーバフロー
される。このシナリォではあるトレースが失われるが、
それが起こってもプロセッサは無限ループに張り付いて
いる可能性が高いため問題になるとは思われない。した
がって、有意トレースは失われない。そうならない唯一
のケースは同期カウンタがある途方もない低い数にセッ
トされる場合である。したがって、同期値をあまり低く
(50サイクルよりも低い)セットすることは勧められ
ない。
【0121】TFOサイクルが生じると、サイクルする
FIFO上にデータの数バイトが置かれる。このデータ
はTFOパケットと呼ばれ、典型的には特殊なヘッダー
バイト、現在CONTEXT ID、および全命令アド
レスからなっている。TFOパケットに対する適切なフ
ォーマットが5.4章に与えられている。
【0122】4−ビットTRACEPKT構成におい
て、バイトの第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出力は遅延される。
【0123】1.21.5 トリガー状態 トリガー状態(TR)はこのサイクルに対する実際の4
−ビット状態がTRACEPKT[3:0]上に置かれ
FIFO出力が1サイクルだけ遅延されることを暗示す
る。動作はETM7およびETM9と同一である。トリ
ガーおよびTFOを同時に生じさせたい場合には、TR
ACEPKT[3:0]上のPIPESTAT値はTD
である。WT pipestatはトリガーが生じる時
にTDpipestatへ変換されることがないため、
これは真のTFOとして一意的に識別することができ
る。4−ビットポートのケースでは、TFO同報(また
はギャップサイクル)の第2サイクル内でトリガーを生
じさせたい場合、トリガーが生じてFIFO出力は余分
なサイクルだけ遅延され残りのTFOニブルを出力す
る。したがって、トリガーは遅延されることはなく発生
するとすぐに出力されることが保証される。
【0124】1.22 パケットヘッダー符号化 ‘D’符号化を有するPIPESTATによりパケット
はFIFO内に置かれる。単一サイクル内に3パケット
(2データパケットおよび1分岐パケット)までをFI
FO内に置くことができる。パケットヘッダー値に対す
る符号化は次のようである。
【表7】
【0125】データヘッダー上のCビットは単一サイク
ル内にどれだけ多くのパケットがFIFO内に挿入され
るかを伸張器に知らせるのに使用される。最後のパケッ
トを含まない挿入された各パケットに対してCビットが
表明される。これはどのパケットがどのサイクル、した
がって、どの命令と結ばれるべきかを伸張器が知るのに
必要である。このCビットは小文字‘c’で示されるア
ドレス連続ビットと混同してはならない。
【0126】1.22.1 分岐アドレス 分岐アドレスは従来のETMインプリメンテーションと
同様な方法で符号化される。分岐パケットはやはり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アドレスバイトの高次ビットによ
り常に一意的に識別することができる。
【表8】
【0127】存在すれば、分岐目的アドレスは常に所与
のサイクルでFIFO内へ置かれる最後のアイテムであ
る。したがって、パケット連続ビット(Cビット)は不
要である。理由コードはTFOパケットヘッダーの一部
として与えられるため、もはや第5バイト内のアドレス
ビット6:4で同報されず、それは5.4章で検討され
ている。第5バイトのビット6は例外分岐アドレス(上
表に‘E’で示される)を示すのに使用される。このビ
ットは中断、割込み、またはソフトリセットにより任意
の分岐上にセットされる。これはこれらの割り込まれた
命令が実際には実行されなかったことを伸張器が認識し
てユーザに示すことができるようにするのに有用であ
る。第5アドレスバイトのビット7およびビット5は将
来使用するために保存されたままである。
【0128】1.22.2 正規データ 正規データヘッダーはキャッシュ内でミスしない全ロー
ドおよびストアデータパケットに対して使用される。C
PRTデータトレーシングがイネーブルされれば、それ
はCPRTデータパケットにも使用される。データアド
レストレーシングがイネーブルされれば、データアドレ
スはヘッダーパケットの後で、存在する場合の、データ
値の前に同報される。データアドレスは命令分岐アドレ
スと同じ圧縮技術を使用して同報され、したがって1−
5バイトからなっている。従来のETMインプリメンテ
ーションに対してそうであるように、データアドレスが
トレースされるかどうかはトレーシングを開始する前に
静的に決定しなければならない。単一サイクル内で2つ
の正規のデータパケットが与えられる(64ビットデー
タ転送により)場合には、第1のパケットだけがデータ
アドレスを含んでいる。LSM命令に対するデータが同
報される場合には、後続データパケットは異なるサイク
ルで転送されても、データアドレスは第1のデータパケ
ットだけで同報される。正規データヘッダー内の‘A’
ビットはそれが特定の命令に対する第1のデータパケッ
トであることを指定するのに使用され、したがって、デ
ータアドレスを予期しなければならない(アドレストレ
ーシングがイネーブルされる場合)。この情報をヘッダ
ーバイト内で利用できることにより、コードの伸張でき
ないセクション(すなわち、2進が利用できない任意の
領域)をトレーシングする時に伸張器は同期を維持する
ことができる。‘A’ビットはCPRTパケット上に表
明されない。
【0129】正規のデータ符号化における‘MSS’ビ
ットはデータ値圧縮に使用される。Mビットがローであ
れば、SSビットは転送されるデータ値のサイズを指定
する。データ圧縮の単純な形式として先導するゼロが除
去される。予備実験はこの圧縮技術によりおよそ20−
30%の圧縮が得られことを示しており、それはヘッダ
ーバイトの追加帯域幅コストをオフセットするのに十分
である。Mビットセットによる符号化は将来の圧縮技術
のために保存される。MSSビットに対する正確な符号
化は下記の表に与えられる。
【表9】
【0130】1.22.3 ロードミス Load Miss OccurredおよびLoad
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データへ戻
るフリーサイクルを持たなければならないため、このデ
ータはもう一つのロードまたはストア要求に対するデー
タと同じサイクル内に戻されることはない。
【0131】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は常にミスデータを順に戻すが
(他のロードミスに対して)、このタギング機構は狂っ
た順でミスデータを戻すことができる将来のプロセッサ
をサポートする。
【0132】64ビットロード値上でミスが生じる場合
には、同じサイクル内でFIFO内に2つのLoad
Missパケットが置かれる。両パケットが同じタグ値
を有しかつ同じサイクル内でFIFO内に置かれるた
め、伸張器はこれら2つのミスは単一64ビット値に対
するものであることを知る。正規のデータパケットと同
様に、データアドレスは第1のLoad Missパケ
ットだけで存在し、既にデータパケットを同報している
LSMの中間でミスが生じる場合には存在しない。64
ビットのケースに対してLoad Missデータが戻
される場合には、それは常に同じサイクル内に与えられ
る2つの別々のLoad Miss Dataパケット
として戻される。両方のパケットが同じミスタグを有す
る。
【0133】ロードミスデータパケットはサイズ情報に
対するMSSビットおよび正規のデータに対して行われ
るデータ圧縮を使用する。伸張器が予期せぬLoad
Missデータパケットを受信する場合(すなわち、同
じタグを有するペンディングミス発生パケット無しでミ
スデータパケットが与えられる)、それはサイズ内に与
えられた指定されたバイト数にわたってスキップしなけ
ればならない。顕著なミスデータが戻される前にトレー
スがディセーブルされる場合には、このデータアイテム
は利用できるようになり次第‘DW’PIPESTAT
を有するFIFO内に置かれる。オーバフローまたはエ
グジットしたデバッグの理由コードによりトレースがイ
ネーブルされる場合、伸張器は任意のペンディングLo
ad Missパケットをキャンセルしなければならな
い。
【0134】1.22.4 補助および完全可視性デー
タトレーシング 補助および完全可視性データヘッダー符号化はプロトコ
ル内の拡張性のために取っておく保存されたスロットで
ある。これらのパケットタイプはプロセッサ内部および
外部の補助データをトレーシングするのに使用すること
ができる(完全可視性は全レジスタファイル更新をトレ
ーシングすることである)。他のデータパケットと同様
に、補助データパケットはサイズ情報に対するSSビッ
トを利用する。完全可視性データトレーシングはさらな
る圧縮のためのMビットもサポートする。これらのパケ
ットタイプはETM10rev0上で使用されない。
【0135】1.22.5 ContextID Context IDヘッダーバイトはContext
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変更を認識することができる。
【0136】1.22.6 トレースされない値 従来のETMインプリメンテーションはLSM操作に対
してデータ値を全てトレースできるかどれもトレースで
きないかだけであり、この判断は最初の転送時になされ
ている。今日のコンパイラーは隣接するLDR/STR
操作を結合してユーザに最も気付かれないLSMとする
ため、この動作は望ましくない。Value Not
Tracedパケットの追加により、我々はLSMを部
分的にトレースしてトリガー基準に厳密にマッチするデ
ータ値しか出力しない能力を追加した。
【0137】LSMに関連する第1のデータ値がトレー
スされる時は常に、データアドレス(アドレストレーシ
ングがイネーブルされる場合)およびデータ値(データ
値トレーシングがイネーブルされる場合)を含むFIF
O内に正規のデータパケットが置かれる。このLSMに
対する全ての後続データ転送によりFIFO内にパケッ
トが置かれる。後続する値がトレースされる場合には、
データ値だけを与える正規のデータパケットがトレース
される。後続データ転送をトレースしてはならない場合
には、これらの転送に対してFIFO上にValue
Not Tracedパケットが置かれる。Value
Not TracedパケットはValue Not
Tracedヘッダーバイトだけからなっている。次
に、伸張ソフトウェアは正規のデータパケットと組み合
わせてValue Not Tracedパケットを使
用して、最終データ転送から後ろ向きに進むことにより
どのLSM値がトレースされどれがトレースされていな
いかを確認する。前記したように、LSM命令上でトレ
ーシングが開始すると、命令が完了する前にTrace
Enableが表明停止されても、それはLSMが完了
するまで続くことをお判り願いたい。
【0138】1.22.7 保存 データヘッダー符号化内に残っている合計10の保存さ
れたスロットがある。これらのスロットは全て必要に応
じてプロトコルを強化するためおよび/または将来のE
TMインプリメンテーションに使用するために利用する
ことができる。将来のETMインプリメンテーションに
よりさらに多くのヘッダータイプが必要とされる場合で
も、Normal DataおよびFull−Visi
bility Trace符号化内のMビットは圧縮の
替わりに新しいデータヘッダー符号化のために使用する
こともできる。
【0139】1.23 TFOパケットヘッダー符号化 TFOパケットはTFOサイクルによりFIFO内に置
かれる(5.2.4章に記載されている)。伸張器はT
FOによりいつパケットがFIFO内に置かれるを知る
ため、TFOパケットはそれ自体のヘッダーバイト符号
化を有し、それらはPIPESTATデータパケットに
より使用される符号化スペースから完全に独立してい
る。TFOパケットヘッダー符号化を下記に示す。
【表10】
【0140】1.23.1 命令アドレス TFOパケットの第1バイトに対してTRACEPKT
[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上でインプ
リメントされない。
【0141】1.23.2 正規TFOパケット 正規TFOパケットはCONTEXT IDの0−4バ
イトが続き、4−バイト命令アドレスが続くヘッダーバ
イトからなる。トレースされるCONTEXTIDバイ
ト数はETM Controlレジスタビット[15:
14]により静的に決定される。命令アドレスは常に4
バイトであり圧縮はされない。ビット0はThumbビ
ットを指定する。TFOヘッダーバイトは2−ビット理
由コードを含んでいる(前記表においてRRとラベルが
付されている)。これらの理由コードはプロトコルバー
ジョン0および1においてETM7およびETM9によ
り使用されるものと一致している。理由コードは下記の
表に与えられる。
【表11】
【0142】1.23.3 Progress TFO
パケット内の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パケットとの間の違いを
さらに明瞭にするために、下記の表は各ケースに対して
予期すべきバイトを示している。
【表12】
【0143】ARM10 TRACEインターフェイス この章はARM1020EとETM10間の信号インタ
ーフェイスについて説明する。大部分のインターフェイ
スはARM1020EによりETM10内へ駆動され
る。信号記述はカスタムデータパス入力、合成制御入
力、およびETM出力へ分割される。合成制御信号は後
で変更することができるが、データパス信号変更にはカ
スタム論理リワークが必要であるため、これらは設計の
遅い時期に変更することができない。全入力がETM1
0のすぐ内側に記憶され、全出力がレジスタの出力から
直接駆動される。インターフェイスは合計220の信号
からなり、それは213の入力およびETM10配景か
らの4出力を含んでいる。
【0144】1.24 ETM Datapth入力 ETMデータトレーシングに対して関心のある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へ駆
動される全データバスが下記の表に与えられている。
【表13】
【0145】1.25 ETM制御入力 1.25.1 ETMCORECTL[23:0] ETMCORECTLは全てがARM10コアから来る
多様な制御信号を含んでいる。これらの信号は全てコア
内に記憶され、この共通バス上に結合されてからETM
10へ駆動される。このバス上に存在する制御信号とそ
れらの意味は下記の表に与えられている。特記なき限
り、これらの全てがARM1020Eパイプラインのラ
イト段階(WR)において有効である。
【表14】
【0146】1.25.2 ETMDATAVALID
[1:0] この信号はバスETMDATA[63:0]上で駆動さ
れるデータを限定する。データバスの半分毎に1ビット
がある。
【0147】1.26 ETM出力 この章はARM1020E内へ帰還されそこから要求さ
れる出力について説明する。
【0148】1.26.1 FIFOFULL イネーブルである時に、FIFO内に置かれたバイトが
ある時は常にETM出力FIFOFULLが表明され、
FIFOが空になるまで表明されたままである。この動
作は、FIFOFULLを表明する前にFIFOがある
特定レベルに達するまで待機した、ETM7/9とは幾
分異なる(4.16章参照)。FIFOFULLはAR
Mパイプラインを停止するために、ここではARM10
20Eである、コアにより使用される。これはETMオ
ーバフローを防止し、イベントのタイミングを幾分変え
る副作用がコア内で生じるが完全なトレースを保証す
る。タイミングを考慮するため、FIFOFULLの表
明によりARM1020Eが即座に停止することがな
い。したがって、まれではあるが、FIFOFULLが
表明される時でもオーバフローを有することがありう
る。これが生じると、FIFOが徐々に空になる間プロ
セッサは停止したままであるため(FIFOFULL表
明により)、ミスした命令数は少ない。
【0149】1.26.2 PWRDOWN ハイであれば、これはETMが現在イネーブルされてお
らずCLK入力は停止できることを示す。これはトレー
スが使用されない時に消費電力を低減するのに使用され
る。リセットされると、ETM10がプログラムされて
しまうまでPWRDOWNが表明される。ARM102
00テストチップはETM10 CLK入力をゲートす
るのに直接PWRDOWN出力を使用しなければならな
い。前記したように、PWRDOWNはCONTEXT
ID更新上で一時的にディセーブルされてETM10
の内部CONTEXT IDシャドーレジスタ上の更新
を考慮する。CONTEXT ID更新ケースを除け
ば、PWRDOWNはTCLKに同期して変更されデバ
ッグセッションの始めにARMデバッグツールによりク
リアされる。PWRDOWN変更はトレースがイネーブ
ルされる前に巡回するため、ETM10 CLKをゲー
トするのにTCLKベース信号を使用してもメタ安定性
問題は生じない。
【0150】1.26.3 DBGRQ 従来のETMと同様に、ETM10はトリガー状態が生
じる時は常にDBGRQを表明するようにプログラムす
ることができる。DBGRQはDGBACKが観察され
るまで表明されたままとされる。DBGRQははARM
1020E外部デバッグ要求ピンEDBGRQに接続し
なければならない。このETM出力にはARM1020
Eからの余分なサポートは不要である。ASIC内の他
の機能ブロックによりEDBGRQ入力が既に使用され
ている場合には、多数のDBGRQ信号を一緒にORす
ることができる。デバッグをこのようにイネーブルして
も任意特定の命令境界に遭遇することは保証されないこ
とをお判り願いたい。さらに、ARM10が現在ハード
ウェアデバッグモードであればコアはEDBGRQを認
識するだけである。
【0151】1.26.4 TDO ETM10は従来のETMバージョンと同じTAPイン
ターフェイス配線を使用する。TDOピンがARM10
20E走査拡張入力SDOUTBSに接続されている。
ETM10レジスタは走査チェーン6を介してアクセス
され従来のETMインプリメンテーションと同じ方法で
プログラムされる。このETM出力にはARM1020
Eからの余分なサポートは不要である。
【0152】構成 ETM7/9は小型、中型および大型構成で入手するこ
とができる。中型および大型構成は追加エリアのコスト
でより多くのトリガーハードウェアリソースおよび増大
されたFIFO深さを提供する。新しい構成のソフトマ
クロを単純に再合成するだけでさまざまなASICアプ
リケーションに対するさまざまな構成を選択することが
できる。ETM10は同様な構成範囲を提供する。下記
の表はETM10に対して現在提示されている構成を示
す。大概のトリガーリソースはETM7およびETM9
と同じであるが、64ビット比較器の大きなサイズによ
り8から4へ減少された大型構成のデータ比較器は例外
である。各構成における増大したFIFOサイズはAR
M1020Eのより高い命令スループット(すなわち、
性能)をサポートする必要性を反映している。各構成に
対するFIFOサイズはエリアインパクトおよび性能モ
デリングからの帰還に基づいて増加することができる。
ETM10構成に対して与えられるゲートカウントはE
TM10 rt1モデルの初期合成に基づいた推定値で
ある。これらの推定されたゲートカウントは最終インプ
リメンテーションにより達成されるものとは異なること
がある。大きなサイズのETM10はARM10200
テストチップ上に置かれるものである。各カテゴリ内の
ETM9に対する対応するリソース数が比較のために括
弧内に与えられている。
【表15】
【0153】特定の実施例について説明してきたが、本
発明はそれに限定されるものではなく、発明の範囲内で
多くの修正および追加を行えることは明らかである。例
えば、本発明の範囲を逸脱することなく従属項の特徴を
独立項の特徴とさまざまに組み合わせることができる。
【図面の簡単な説明】
【図1】オンチップトレーシング機構を提供するデータ
処理システムを示す略図である。
【図2】図1のオンチップトレースモジュール内に設け
られる素子の詳細を示すブロック図である。
【図3】命令セット情報に命令アドレスを取り入れるた
めに本発明の好ましい実施例において使用される符号化
を示す略図である。
【図4】図3に示す方法に従って符号化されたアドレス
が本発明の好ましい実施例に従ってどのように圧縮され
るかを示す略図である。
【図5】3命令系列の例に対する圧縮論理の出力を示す
略図である。
【図6】本発明の好ましい実施例に従って使用される符
号化および圧縮論理を略示するブロック図である。
【図7】図6の33−ビットセクターの動作を示す略図
である。
【図8】図6に示す比較器の1つの構造を示す略図であ
る。
【図9】図6に示す連続ビット発生器を実現するために
好ましい実施例で使用される論理を示す図である。
【図10】好ましい実施例の圧縮符号化命令アドレス発
生器により実施されるプロセスを示す略図である。
【符号の説明】
2 データ処理システム 4 集積回路 6 マイクロプロセッサコア 8 キャッシュメモリ 10 オンチップトレースモジュールコントローラ 12 オンチップトレースバァッファ 14 外部メモリ 16 汎用コンピュータ 18 外部記憶装置 100 同期論理 110 トリガー 120 制御論理 610,800,820 レジスタ 620 33−ビットセクター論理 630 ラッチ 622,623,624,625 7−ビット幅バス 640,650,660,670 比較器 680 連続ビット発生器 690 圧縮符号化命令アドレス発生器 700 マルチプレクサ 830 比較器論理 910,920,930 ORゲート
フロントページの続き Fターム(参考) 5B033 BA05 CA00 CA02 DA14 FA24 5B042 GA13 HH30 MA19

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 データ処理装置であって、前記装置は、 処理命令の複数の命令セットのいずれかからの処理命令
    を実行する処理回路であって、各処理命令はメモリ内で
    のその処理命令の場所を識別する命令アドレスにより指
    定され、異なる命令セット内の処理命令に対して命令ア
    ドレス内に異なる数の命令アドレスビットを指定する必
    要がある処理回路と、 その命令に対応する命令セットの表示を有する命令アド
    レスを符号化してn−ビット符号化命令アドレスを発生
    する符号化論理であって、前記符号化論理は指定された
    命令アドレスビットへビットパターンをプリペンドする
    ことにより指定された命令アドレスビットをn−ビット
    へ拡張するのと等価の計算を実施することにより符号化
    を実施するようにされており、プリペンドされるビット
    パターンはその命令に対応する命令セットによって決ま
    る符号化論理と、 を含む装置。
  2. 【請求項2】 請求項1記載の装置であって、各命令セ
    ットに対してその命令セットからの命令アドレスの指定
    された命令アドレスビットへプリペンドされたビットパ
    ターンはシフトされたパターンにより異なる命令セット
    の命令アドレスの指定された命令アドレスビットへプリ
    ペンドされたビットパターンと関連づけられる装置。
  3. 【請求項3】 請求項1記載の装置であって、符号化論
    理は命令アドレスの指定された命令アドレスビットへ予
    め定められたビットパターンをプリペンドし次に符号化
    命令アドレスとして中間値からnビットを選択すること
    により中間値を発生するのと等価の計算を実施すること
    により符号化を実施するようにされている装置。
  4. 【請求項4】 請求項1記載の装置であって、さらに、
    その符号化命令アドレスを複数のx−ビットセクション
    へ分割し、各x−ビットセクションを先行する符号化命
    令アドレスの対応する各x−ビットセクションと比較
    し、圧縮符号化命令アドレスとして先行する符号化命令
    アドレスの対応するx−ビットセクションとは異なる最
    上位x−ビットセクションを任意のより下位のx−ビッ
    トセクションと共に出力するのと等価の計算を実施する
    ことにより前記符号化命令アドレスを圧縮する圧縮論理
    を含む装置。
  5. 【請求項5】 請求項4記載の装置であって、圧縮論理
    はそこから出力される各x−ビットセクションにx−ビ
    ットセクションが圧縮符号化命令アドレスとして出力さ
    れる最後のx−ビットセクションであるかどうかをを示
    すフラグを関連づけるようにされている装置。
  6. 【請求項6】 請求項5記載の装置であって、複数のx
    −ビットセクションが圧縮論理から出力される場合に
    は、複数のx−ビットセクションは最下位x−ビットセ
    クションで開始して逐次出力される装置。
  7. 【請求項7】 請求項5記載の装置であって、圧縮論理
    は、さらに、圧縮論理から出力される各x−ビットセク
    ションをyビットへ拡張するようにされており、最上位
    y−xビットはフラグを含む装置。
  8. 【請求項8】 請求項7記載の装置であって、フラグは
    単一ビットである装置。
  9. 【請求項9】 請求項8記載の装置であって、yは8で
    ありxは7である装置。
  10. 【請求項10】 請求項1記載の装置であって、符号化
    論理は中間値を受信するn−ビットセクター論理ユニッ
    トおよび中間値内に含まれる命令アドレスに関連づけら
    れた命令セットを識別する識別子信号を含み、n−ビッ
    トセクターは識別子信号に応じて中間値の予め定められ
    たn−ビットを出力するようにされている装置。
  11. 【請求項11】 請求項4記載の装置であって、圧縮論
    理は複数の比較器を含み、各比較器が符号化命令アドレ
    スの対応するx−ビットセクションを受信するようにさ
    れており、かつ先行する符号化命令アドレスの対応する
    x−ビットセクションを格納する一時記憶装置を含み、
    比較器は2つのx−ビットセクションを比較して2つの
    x−ビットセクションが異なる場合にセットされる差信
    号を発生するようにされている装置。
  12. 【請求項12】 請求項11記載の装置であって、圧縮
    論理は、さらに、より高位のx−ビットセクションも出
    力される場合に特定のx−ビットセクションに対するフ
    ラグがセットされるように、複数の比較器により発生さ
    れる差信号の予め定められた組合せに基づくフラグを圧
    縮論理から出力される各x−ビットセクションに対して
    発生するようにされている装置。
  13. 【請求項13】 請求項12記載の装置であって、圧縮
    論理は、さらに、出力される各x−ビットセクションに
    その対応するフラグをプリペンドすることにより圧縮符
    号化命令アドレスを発生し、出力圧縮符号化命令アドレ
    スとして一列のy−ビットセクションを発生する出力発
    生器を含む装置。
  14. 【請求項14】 請求項4記載の装置であって、符号化
    論理および圧縮論理は処理回路のアクティビティをトレ
    ースするのに使用されるトレースモジュール内に設けら
    れる装置。
  15. 【請求項15】 データ処理装置用トレーシングツール
    であって、データ処理装置は処理命令の複数の命令セッ
    トのいずれかからの処理命令を実行する処理回路を有
    し、各処理命令はメモリ内のその処理命令の場所を識別
    する命令アドレスにより指定され、異なる命令セット内
    の処理命令に対して命令アドレス内に異なる命令アドレ
    スビット数を指定する必要があり、前記トレーシングツ
    ールは、その命令に対応する命令セットの表示を有する
    命令アドレスを符号化してn−ビット符号化命令アドレ
    スを発生する符号化論理を含み、前記符号化論理は指定
    された命令アドレスビットにビットパターンをプリペン
    ドすることにより指定された命令アドレスビットをn−
    ビットへ拡張するのと等価の計算を実施することにより
    符号化を実施するようにされており、プリペンドされる
    ビットパターンはその命令に対応する命令セットによっ
    て決まるトレーシングツール。
  16. 【請求項16】 請求項15記載の装置であって、さら
    に、符号化命令アドレスを複数のx−ビットセクション
    へ分割し、各x−ビットセクションを先行する符号化命
    令アドレスの対応するx−ビットセクションと比較し、
    圧縮符号化命令アドレスとして先行する符号化命令アド
    レスの対応するx−ビットセクションとは異なる最上位
    x−ビットセクションを任意のより下位のx−ビットセ
    クションと共に出力することと等価の計算を実施するこ
    とにより符号化命令アドレスを圧縮する圧縮論理を含む
    トレーシングツール。
  17. 【請求項17】 命令セット情報の格納方法であって、
    処理回路が処理命令の複数の命令セットのいずれかから
    の処理命令を実行するようにされており、各処理命令は
    メモリ内のその処理命令の場所を識別する命令アドレス
    により指定され、異なる命令セット内の処理命令に対し
    て命令アドレス内に異なる命令アドレスビット数を指定
    する必要があり、前記方法は、 その命令に対応する命令セットによって決まるビットパ
    ターンを指定された命令アドレスビットにプリペンドす
    ることにより指定された命令アドレスビットをn−ビッ
    トへ拡張する、 のと等価の計算を実施することにより、その命令に対応
    する命令セットの表示を有する命令アドレスを符号化し
    てn−ビット符号化命令アドレスを発生するステップを
    含む方法。
  18. 【請求項18】 請求項17記載の方法であって、さら
    に、 (a)符号化命令アドレスを複数のx−ビットセクショ
    ンへ分割し、 (b)各x−ビットセクションを先行する符号化命令ア
    ドレスの対応するx−ビットセクションと比較し、 (c)圧縮符号化命令アドレスとして先行する符号化命
    令アドレスの対応するx−ビットセクションとは異なる
    最上位x−ビットセクションを任意のより下位のx−ビ
    ットセクションと共に出力する、 ことと等価の計算を実施することにより前記符号化命令
    アドレスを圧縮するステップを含む方法。
  19. 【請求項19】 (i)圧縮符号化命令アドレスを形成
    するx−ビットセクション数を決定し、 (ii)先行する符号化命令アドレスの対応するx−ビ
    ットセクションから得られる追加x−ビットセクション
    を取り入れることにより、必要に応じて圧縮符号化命令
    アドレスをn−ビットへ拡張して符号化命令アドレスを
    作り出す、 のと等価の計算を実施することにより請求項18記載の
    方法に従って発生される圧縮符号化命令アドレスを伸張
    する方法。
  20. 【請求項20】 請求項19記載の方法であって、さら
    に、予め定められたビットパターンから命令アドレスが
    関連する命令セットを決定し、予め定められたビットパ
    ターンを除去して指定された命令アドレスビットを得る
    のと等価の計算を実施することにより符号化命令アドレ
    スを復号するステップを含む方法。
  21. 【請求項21】 請求項17記載の方法に従って装置を
    制御するコンピュータプログラムを備えているコンピュ
    ータプログラムプロダクト。
JP2002100620A 2001-02-26 2002-02-26 命令セットの情報を格納するための装置及び方法 Expired - Lifetime JP3766035B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (5)

* Cited by examiner, † Cited by third party
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