JP2002244881A - 順序外データのトレーシング - Google Patents

順序外データのトレーシング

Info

Publication number
JP2002244881A
JP2002244881A JP2001384402A JP2001384402A JP2002244881A JP 2002244881 A JP2002244881 A JP 2002244881A JP 2001384402 A JP2001384402 A JP 2001384402A JP 2001384402 A JP2001384402 A JP 2001384402A JP 2002244881 A JP2002244881 A JP 2002244881A
Authority
JP
Japan
Prior art keywords
data
trace
value
instruction
miss
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
JP2001384402A
Other languages
English (en)
Other versions
JP4038372B2 (ja
Inventor
Andrew Brookfield Swaine
ブルックフィールド スウェイン アンドリュー
David James Williamson
ジェイムズ ウィリアムソン デイヴィッド
Paul Robert Gotch
ロバート ゴッチ ポール
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
Application filed by ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2002244881A publication Critical patent/JP2002244881A/ja
Application granted granted Critical
Publication of JP4038372B2 publication Critical patent/JP4038372B2/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, look ahead
    • G06F9/3824Operand accessing
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching

Abstract

(57)【要約】 【課題】 ロードミスが生じた場合に、ミスしたデータ
を正しくデータストリームに挿入すること。 【解決手段】 トレースデータのストリーム内にデータ
プレイスホルダー(32)を挿入するよう、データアク
セスミスに応答自在なトレーシング機構(10、12)
が集積回路(14)に設けられる。ミスしたデータが後
にリターンされる際に、このデータは後のデータ値(4
4)としてトレースされたデータのストリーム内に挿入
される。その後トレースデータのストリームの分析によ
ってデータミスを発生した命令と、その後リターンされ
た、後のデータとを後に相関化することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理システ
ムに関し、より詳細には、本発明はデータアクセスをト
レースできるようにするためのトレーシング機構を提供
するデータ処理システムに関する。
【0002】
【従来の技術】新システムのための開発時間を短縮した
いという要望がある一方で、データ処理システムの複雑
性が増すにつれ、データ処理システムの開発中に使用で
きるデバッグおよびトレーシングツールおよび機構を改
善したいという要望が生じている。システム内のステッ
プごとのアクティビティを示すデータを含むトレースス
トリームを発生するように、データ処理システムのアク
ティビティをトレースすることは、システム開発におい
て極めて有効なツールとなっている。しかしながら、コ
アをより深く埋め込むという一般的な動向と共に、外部
からアクセス可能なピンを通してコアのステートをトラ
ッキングすることはより困難となっている。従って、ト
レースデータを捕捉し、分析するためのオフチップトレ
ーシング機構と同じように、チップには多量のトレーシ
ング機能が組み込まれている。かかるオフチップトレー
シング機構の例として英国ケンブリッジのARMリミテ
ィッド社により、この会社のARM7およびARM9プ
ロセッサに関連して提供されている埋め込み型トレース
マクロセルがある。
【0003】データ処理オペレーションのトレーシング
に関連する別の問題は、速度および並列性を追求する際
にデータ処理システムの複雑性が高まったことにより、
オペレーションをシーケンス化する方法も複雑となった
ことである。初期のデータ処理システムでは、プロセッ
サは順に各プログラム命令を実行し、プログラム命令が
完了するまで待機し、プログラム命令の完了後、次のプ
ログラム命令の実行を開始していた。しかしながら、プ
ログラム命令の処理スループットを高めるために、次の
命令を開始する前に、常に命令を完了していなくてもよ
いように、またはパイプライン状に、異なる命令をパラ
レルに実行できるようにする種々の技術が採用されてい
る。このタイプのより複雑な動作の例としては、ロード
ミスに対するデータ処理システムの応答が挙げられる。
【0004】メモリロケーションからデータ値(このデ
ータ値は処理用データまたは命令ワードでよい)をデー
タ処理システムがロードしたい場合、ロードミスが起こ
り得る。そのデータ値がローカルキャッシュメモリ内に
存在している場合、ロード命令を高速で、可能な場合に
は1つのクロックサイクル内で完了できる。しかしなが
ら、キャッシュからデータ値のロードを満たすことがで
きず、例えばメインメモリへのより低速の非キャッシュ
アクセスが必要となるようなロードミスが生じた場合、
多数の処理サイクルの間でもデータ値がリターンされな
いことが起こり得る。後の命令がまだ検索されていない
データ値を必要とすることなく、すなわちまだ検索され
ていないデータ値に依存しないことを条件に、先のロー
ドミスからのデータを待機しながら、他のプログラム命
令の実行を続けることができるARM1020Tプロセ
ッサのようなシステムを提供することが、ホールトデー
タ処理以外にも知られている。
【0005】
【発明が解決しようとする課題】データアクセスミス後
にオペレーションの続行をサポートするかかるシステム
では、実行中の命令ストリームがメモリバス上で発見さ
れるようなメモリアクセスからリターンされるデータ値
に容易に相関化しないという点で、重要なトレーシング
を行う上で問題が生じる。
【0006】
【課題を解決するための手段】本発明の1つの特徴によ
れば、(i)処理命令の制御によりデータ値を処理する
ようになっている処理回路と、(ii)メモリ内に記憶
されたデータ値にアクセスするためのデータアクセス命
令に応答自在であり、処理すべきデータ値を記憶するよ
うになっているメモリと、(iii)前記処理回路によ
って実行される処理命令および前記処理回路がアクセス
するデータ値を識別するトレースデータストリームを発
生するようになっているトレーシング回路とを備え、
(iv)前記データアクセス命令に対応するデータ値
が、データミスが生じることなく前記データアクセスが
行われた時、そのサイクルの次の処理サイクル時にアク
セスされるようなデータミスがデータアクセス命令の結
果生じることがあり、(v)前記トレーシング回路は、
前記データミスに応答して、前記データミスが生じなか
った場合、前記トレースデータのストリーム内の前記デ
ータ値を識別するデータが位置づけられるであろう位置
に、データプレースホルダーを発生し、前記データ値に
対する前記アクセスが行われた時、前記データ値を識別
する後のデータ値をトレースデータの前記ストリーム内
の後のポイントに挿入する、データを処理するための装
置が提供される。
【0007】本発明はデータアクセスミスおよび後にリ
ターンされるデータ値による上記問題を認識し、ミスが
生じなかった場合にデータ値をリターンしたはずのポイ
ントを識別するデータプレイスホルダーをトレースデー
タのストリーム内に挿入し、次にミスから生じた後のデ
ータ値をその後挿入する解決案を提供するものである。
データプレイスホルダーと後のデータ値の組み合わせに
よってデータストリームのその後の分析を可能にし、ど
のデータ値がどのアクセス命令に対応しているかを正し
く識別し、よってデータ処理システムの動作を正しく理
解することが可能となる。データ値は命令ワードだけで
なく、操作のためのデータでもよく、データ値なる用語
は双方の可能性を含むものであることが理解できよう。
【0008】本発明は種々の異なる環境内で使用できる
が、システム内のアクセスミスが比較的一般的な場所で
生じるように、キャッシュメモリとメモリシステムが設
けられているシステムに特に適し、アクセスミスに関す
るシステムの正しい動作を理解することが、かかるシス
テムを正しくデバッギングする上で重要である。
【0009】データプレイスホルダーと後のデータとの
間の相関化は種々の異なる方法で行うことができる。1
つの好ましい実施例は、タグ値と各データプレイスホル
ダーとを関連付け、次に対応するタグ値と後の各データ
値とを関連付けることである(この機構はそれぞれのプ
レイスホルダーに異なる順序で後のデータアイテムをリ
ターンさせることをうまく処理することもできる)。従
って、トレースデータのストリームの分析時に、後のど
のデータ値がどのデータプレイスホルダーに対応してい
るかを判断するように、それぞれのタグ値を一致させる
ことができる。別の好ましい実施例はトレースされたデ
ータのストリーム内に各データプレイスホルダーを挿入
する際に、トレースされたデータのストリームを後に分
析する時に、トレースデータの完全なストリームを必要
とすることなく、適当な後のデータ値を適当なデータプ
レイスホルダーに一致させることができるように、その
ときにどれだけ多くのペンディング中の後のデータ値が
未解決となっているかの表示もなされる。別の好ましい
実施例は、トレースされたデータのストリームがその時
にどれだけ多くの未解決の後のデータ値を待っているか
を示す周期的同期化データを含む例である。従って、途
中でトレースされたデータのストリームをピックアップ
する際に、1つの同期化データ部分を一旦読み出せば、
次のデータプレイスホルダーとデータ値を一致させるこ
とができる。
【0010】データ処理システムのトレーシングオペレ
ーションのコンテキストにおいて、トレーシングウォッ
チポイントを設けることは公知である。トレーシングオ
ペレーション、例えば単一命令のトレーシング、所定の
組の基準が満たされるかどうかに基づくトレースストリ
ームのターンオン、トレースストリームまたはその他の
トレーシング動作のターンオフの制御をトリガーするの
に、かかるトレーシングウォッチポイントを使用でき
る。かかるウォッチポイントの基準の一例は、アクセス
データ値が特定の条件に一致しているかどうかというこ
とである。一例として、所定量よりも大きいデータ値に
対してアクセスがなされる時は常に、トレーシングデー
タのストリームをスイッチオンするようにトレーシング
ウォッチポイントを設定できる。これに関連し、アクセ
スミスは重要な複雑な問題を生じさせることが理解でき
よう。アクセスミスが生じると、そのアクセスミスに対
応するデータ値がトリガー条件に一致するのか一致しな
いのかは、後の時間まで判らない。この問題は完全に解
決することはできないが、本発明の好ましい実施例は後
のデータ値がリターンされた時にトリガーが一致すると
の仮定でアクセスが生じた時に、トリガー条件がトリガ
ーされることを選択するか、または後のデータ値が実際
にリターンされ、一致していると判るまでトリガー条件
をトリガーしないことを選択するかのいずれかの能力を
提供するものである。これらオプション案の双方を設け
ることによって、ユーザーが望むように、このような状
況に対し、システムの動作を構成できる能力がトレース
システムユーザーに与えられる。2つの動作が必要な場
合の状況の例として次の例がある。
【0011】(a)ウォッチポイントに基づきトレース
ストリームをターンオンし、オンの状態のままにする。
トレースストリームを早期にターンオンしないことが重
要であるが、元のアクセスを生じさせた命令をトレース
することは遅すぎることとなる。 (b)ウォッチポイントの基準が満たされた場合にしか
トレースストリームをターンオンせず、次に再びターン
オフとする。データストリーム内に記憶されるデータ量
を少なくするために、データ値の比較を実行するが、ロ
ードミスが生じた場合、データが利用できるようにな
り、よって一致していると見なされる前にロードミスを
トレースするかどうかの判断を行わなければならない。
【0012】上記2つの状況はデータが将来の事象をト
レースすべきかどうかを判断するか、または当該データ
がそのデータ自身であるかどうかのいずれかである。
【0013】本発明の別の特徴によれば、(i)処理命
令の制御によりデータ値を処理する工程と、(ii)処
理すべきデータ値を記憶する工程とを備え、データアク
セス命令が記憶されたデータ値にアクセスするようにな
っており、(iii)実行される処理命令およびアクセ
スされるデータ値を識別するトレースデータのストリー
ムを発生する工程とを備え、(iv)前記データアクセ
ス命令に対応するデータ値が、データミスが生じること
なく前記データアクセスが行われた時、そのサイクルの
次の処理サイクル時にアクセスされるようなデータミス
がデータアクセス命令の結果生じることがあり、(v)
前記トレーシング回路は、前記データミスに応答して、
前記データミスが生じなかった場合、前記トレースデー
タのストリーム内の前記データ値を識別するデータが位
置づけられるであろう位置に、データプレースホルダー
を発生し、前記データ値に対する前記アクセスが行われ
た時、前記データ値を識別する後のデータ値をトレース
データの前記ストリーム内の後のポイントに挿入する、
データを処理する方法が提供される。
【0014】上記トレースデータを発生するための装
置、例えばマイクロプロセッサを載せた集積回路および
方法を提供するだけでなく、本発明の相補的特徴は、か
かる装置およびかかる方法によって発生されるトレース
データのストリームを分析できるシステムを提供するこ
とである。かかるコンピュータプログラムは標準的な汎
用コンピュータで実行でき、コンピュータプログラム製
品として、例えばフロッピー(登録商標)ディスクまた
はCD記録媒体として提供できる。
【0015】添付図面を参照し、次の実施例の詳細な説
明を読めば、本発明の上記以外の目的、特徴および利点
が明らかとなろう。
【0016】
【発明の実施の形態】図1は、オンチップトレーシング
機構を提供するデータ処理システム2を略図で示す。集
積回路4は、マイクロプロセッサコア6と、キャッシュ
メモ8と、オンチップトレースモジュールコントローラ
10と、オンチップトレースバッファ12とを含む。キ
ャッシュメモリ8内でキャッシュミスが生じた際にアク
セスされる外部メモリ14には集積回路4が接続されて
いる。オンチップトレースモジュールコントローラ10
およびオンチップトレースバッファ12には汎用コンピ
ュータ16が結合されており、この汎用コンピュータ1
6上で実行されるソフトウェアを使って、これら要素か
らのトレーシングデータのストリームを回復し、分析す
るように働く。
【0017】オペレーション中に外部メモリ14にある
実際の空間よりも多いデータ処理命令およびデータにプ
ロセッサコア6がアクセスしなければならないようなケ
ースが多い。例えば外部メモリ14のサイズが1MBで
あり、一方、プロセッサコア6が一般に32ビットのア
ドレスを指定でき、よって4GBの命令およびデータを
指定できることがある。従って、プロセッサコア6が必
要とする命令およびデータのすべては外部記憶装置1
8、例えばハードディスクに記憶され、次にプロセッサ
コア6が特定のオペレーションステートで作動すべき場
合に、そのオペレーションステートのための対応する命
令およびデータを外部メモリ14内にロードする。
【0018】図2は図1のシステム内で生じ得るデータ
アクセス命令への応答時の種々の動作を示す。この場合
におけるプロセッサコア6はARMオブジェクトコード
命令を実行するARMプロセッサである。図2における
第1コードシーケンスは別のレジスタRmに与えられる
アドレスによって指定されるメモリロケーションから指
定レジスタ内にデータをロードするロード命令18を示
す。この場合、データアクセス命令の結果、キャッシュ
メモリ8内でヒットが生じ、レジスタRmによって指定
されたアドレスから対応するデータ値が同じサイクルで
プロセッサコア6へリターンされる。
【0019】第2の例では、同じ命令シーケンスが発生
されるが、この場合、命令20の結果、キャッシュメモ
リ8内でミスが生じる。集積回路4はこのような動作に
うまく対応し、その後の命令がミスの生じたデータを必
要としないことを条件に、ミスを発生したロード命令2
0の後の命令を実行し続けるようになっている。可変時
間後に、アクセスミスに対応するデータはシステムのデ
ータバスにリターンされる。この後のデータは正しいレ
ジスタにルーチングされ、レジスタのインターロッキン
グはクリアされる。後のデータがリターンされるまでの
遅延時間は特定の状況に応じて変わり得ることが理解で
きよう。集積回路4は更に記憶容量を増すために、より
大きく、低速のメインARMメモリの前に、比較的高速
のオフチップキャッシュメモリを含むようなマルチレベ
ルの外部メモリシステムに結合できる。集積回路自体が
このような後の可変遅れデータにうまく対応できるよう
にするための機構は当技術分野で知られており、本発明
の技術は少なくとも好ましい実施例において、データの
トレーシングがこのような後にリターンされるデータお
よび可変遅れデータにうまく対応できるようにする機構
を提供せんとするものである。
【0020】図2における第3コードシーケンスは2つ
のロード命令22、24を有し、これら双方の命令の結
果、データミスが生じ、これら命令はリターンされる対
応する後のデータを有する。この例では、データバスに
リターンされた後のデータは、このデータミスを発生さ
せたデータアクセス命令22、24のシーケンスの順序
からはずれている。従って、第1のミスされたデータア
クセス22は第2の後のデータアイテム26に対応し、
一方第2のミスされたデータアクセス24は第1の後の
データアイテム28に対応する。
【0021】図3は、データミスを発生するデータアク
セス命令に応答するオンチップトレースモジュールコン
トローラ10の動作を示す。このオンチップトレースモ
ジュール10はそのトレースデータを高速でオンチップ
トレースバッファ12内に書き込む。これによってプロ
セッサコア6による命令のフルスピードの実行に対して
リアルタイムでペースを合わせながら、トレーシングを
発生させることができる。後の時間に汎コンピュータ1
6がトレースバッファ12の内容を読み出し、トレース
データを分析することができる。
【0022】図3に示されるように、第1ロード命令3
0の結果、キャッシュ命令8内でデータミスが生じる。
従って、このミスを発生した命令トレースストリーム内
の命令30に対する対応するポイントにあるデータトレ
ースストリーム内にデータプレイスホルダー32が挿入
される。このデータプレイスホルダー32は、そのデー
タプレイスホルダーを識別する関連するタグ値(Tag
1)を有する。その後の時間に、別のデータアクセス命
令34の結果、同じ処理サイクル内でリターンされ、命
令34に直接一致するポイントにおいてデータトレース
ストリーム内に入れられたデータ値36とのヒットが生
じる。次の命令38の結果、別のデータミスが生じ、異
なる識別タグ値(Tag2)を有する別のデータプレイ
スホルダー40が挿入される。
【0023】可変時間の後に、データバス上に2つの後
のデータ値42、44がリターンされ、データトレース
ストリーム内に挿入される。これら後のデータ値の各々
はデータトレースストリーム内で先行する対応するデー
タプレイスホルダーに一致できるようにする関連したタ
グ値を有する。この特定の例では、後のデータ値はデー
タミスを発生したデータミスの順序と異なる順序でリタ
ーンされる。従って、リターンされた第1の後のデータ
値42はTag2のタグ値を有し、データプレイスホル
ダー40および命令38に対応する。第2の後のデータ
値44はTag1のタグ値を有し、データプレイスホル
ダー32および命令30に対応する。
【0024】データプレイスホルダーおよび後のデータ
値の分析は汎用コンピュータ16を使用して集積回路4
の外部で行われることが理解できよう。この汎用コンピ
ュータ16はプログラム制御に従って対応するタグ値を
有するデータプレイスホルダーのためにデータトレース
ストリームをサーチし、命令とリターンされる対応する
データとの間の適性な対応性を引き出すことができるよ
うに、これらデータプレイスホルダーを、一致するタグ
を有する、後に識別された後のデータ値に置換する。フ
ルトレース分析では、タグの一致を使ってこれら後のデ
ータ値を一致する命令に正しく関連付けするようなトレ
ーシング環境内で、リターンの遅延効果も正しく理解で
きるよう、データ値がリターンされた位置に後のデータ
値を残すことができる。
【0025】命令トレースストリームおよびデータトレ
ースストリームの動作について定義したので、標準技術
および標準集積回路設計ツールに従い、このような機能
を提供するオンチップトレースモジュールコントローラ
内の制御ロジックを誘導できる。
【0026】図4は別の実施例を示す。この実施例で
は、データプレイスホルダーはタグ値を含まず、代わり
に後のデータ値自身をデータトレースストリーム内に挿
入する際に未解決となっているペンディング中の後のデ
ータ値の個数を示す。従って、命令46から生じるデー
タミスの結果、データプレイスホルダー48はペンディ
ング中の後のデータ値の個数ゼロを示す。データプレイ
スホルダー48に対応する後のデータ値がリターンされ
る前に、ミスを発生させるような次の命令50が生じ、
従って、データプレイスホルダー52は既に未解決のペ
ンディング中の後のデータ値があることを表示する。次
に、ミスを発生させるような別の命令56が実行される
前に、命令46に対応する後のデータ値54がリターン
される。命令56を実行する際に、未解決の後のデータ
値の数はまだ1つであるので、データプレイスホルダー
58はこれを表示するようにマークされる。
【0027】図4に示されたデータトレースストリーム
フォーマットは、このデータストリームを分析すること
により可変位置からピックアップされ、トレースストリ
ームのスタートより前のポイントに対しリターンされた
後のデータ値による混同を防止することが可能となる
が、(図5の実施例で行っているように)ミスは順序通
りにリターンされなければならない。
【0028】図5は、別の例のトレースストリームフォ
ーマットを示す。この例では、トレースされたデータの
ストリーム内に同期化データ60を周期的に挿入する。
この同期化データはこの時間ポイントにおいて未解決の
後のデータアイテムの数を示す。従って、同期化データ
アイテム60はミスしたデータアクセス命令62に対応
する1つのペンディング中の後のデータアイテムを示
す。本例におけるデータプレイスホルダーはこれらが対
応する命令を指定する別の情報を含まない。
【0029】同期化データアイテム60の次のロード命
令64の結果によってもミスが生じ、データストリーム
内に対応するデータプレイスホルダー66が挿入され
る。リターンされた第1の後のデータアイテム68が、
ミスを発生しよって正しく分析できないトレースされて
いない先の命令62に対応していることを、同期化デー
タ要素60が示すので、リターンされた第1の後のデー
タアイテム68は無視される。次の後のデータアイテム
70がリターンされると、このデータアイテムはロード
命令64に対応していると判断される。
【0030】図6は、トレーシング制御オペレーション
をトリガーするのに使用できる回路要素72を示す。こ
の回路要素72は適当なトレースウォッチポイントをト
リガーするために、現在のバスの値とアドレスデータ値
とを比較するよう、所定の値、可能な場合には関連する
マスクをロードできる複数の比較器を含む。
【0031】後にリターンされたデータのコンテキスト
内にて、データウォッチポイントは完全一致ウォッチポ
イントまたは不完全一致ウォッチポイントのいずれかと
なるように構成される。後のデータがリターンされ、指
定されている基準に一致していることが判るまで、完全
一致ウォッチポイントがトリガーされることはない。逆
に、不完全一致ウォッチポイントは、後のデータがリタ
ーンされた時に、一致を引き起こすと仮定して、そのデ
ータ値に対するデータミスが発生した時にトリガーされ
る。これら2つの動作のいずれかに対するウォッチポイ
ントのコンフィギュレーションは、トレースシステムの
ユーザーによって所望するように制御できる。リターン
される後のデータ値とこれら値が関連する対応するアド
レスとの間のリンクをするように、ウォッチポイント比
較システム内には後のデータ値に対応するタグ値も保持
される。
【0032】図7および8は、図7のシステムから生じ
得る異なるタイプの動作を示す。命令74の結果、デー
タミスが生じ、データ76は後の時間にデータバス上に
後にリターンされる。
【0033】図8は命令74内で指定されたアドレスに
対応するアドレスにウォッチポイントが設定され、従っ
て、指示されたすべての可能性に対してアドレスの一致
が生じると仮定している。第1の2つの可能性におい
て、ウォッチポイントは完全一致ウォッチポイントに設
定されている。従って、最初の2つの例では、データ7
6がリターンされ、一致していることが判るまで、トレ
ーシング事象はトリガーしない。図8の第1の行は、デ
ータが一致し、トレーシング起動ポイントが図7内のポ
イントP1となることを示している。図8の第3および
第4の行では、ウォッチポイントは不完全ウォッチポイ
ントとして設定されている。従って、これらケースの双
方においてデータの一致がその後生じるか否かに関係な
く、ポイントP2でアドレスの一致が発生する際に、ト
レースの制御がトリガーされる。第4の行ではその後、
データの一致が生じていなくてもトレースポイントがト
リガーされていることが理解できよう。
【0034】種々の方法、例えば条件に応じて完全一致
信号を構成自在とし(この方法が好ましい)、比較を行
うべき、用途に応じたハードウェア内で完全一致信号を
選択し、比較ハードウェアが同時に双方の動作を提供で
きるようにし、トレーシング回路の異なる部分内で異な
る動作を適当に使用することによって完全一致信号を制
御し、使用することができる。
【0035】図9は、マイクロプロセッサの集積回路1
04と外部メモリの集積回路106とを含むデータ処理
システム102を示す。マイクロプロセッサの集積回路
104はその多くの異なる回路要素(そのすべてが図示
されているわけではない)のうちにレジスタバンク10
8と、キャッシュメモリ110と、乗算器112と、シ
フター114と、加算器116と、命令デコーダ118
と、トレースコントローラ120と、トレースデータバ
ッファ122とを含む。
【0036】オペレーション時に、命令デコーダ118
はプログラム命令ワードを受信し、制御信号を発生す
る。この制御信号はマイクロプロセッサの集積回路10
4内の他の要素によって使用され、これら要素のオペレ
ーションを制御するようになっている。特定の命令は乗
算器112、シフター114および加算器116のうち
の1つ以上を使用し、レジスタバンク108のレジスタ
内に保持されている値に対して代数論理演算の実行に関
与し得る。命令デコーダが応答できる別のタイプのデー
タ処理命令は、マルチワードデータ転送命令である。か
かるタイプの命令の一例としては、マイクロプロセッ
サ、例えばARM7およびARM9によって提供される
LSM命令が挙げられる。これら例のマルチワードデー
タ転送命令のオペレーションの詳細については、上記マ
イクロプロセッサのデータシートに記載されている。
【0037】マイクロプロセッサの集積回路104のチ
ップ上にはトレースコントローラ120およびトレース
データバッファ122が設けられている。このトレース
コントローラ120は多くの異なるタイプのオペレーシ
ョンを提供し、これらタイプのオペレーション内にはト
レーストリガー条件が検出された時のトレーシングオペ
レーションの開始が含まれる。トレースコントローラは
特定のアドレス値およびデータ値を検出するよう、シス
テム内のアドレスバスおよびデータバスを「スヌープ」
できるか、またはレジスタバンク108内の特定のアド
レスへのアクセスを検出するよう、レジスタバンク10
8を制御する信号に応答できる。これらケースのいずれ
においても、トレースコントローラ120は所定の条件
が検出された時にトレーシングオペレーションを開始
し、トレースデータストリームをトレースデータバッフ
ァ122内に記憶させるように働くことができる。その
後、トレースデータのこのストリームはトレースデータ
バッファから外部トレースデータバッファ分析システム
へダウンロードでき、この分析システム内で、システム
をデバッグしたり、またはその分離をより完全に理解す
ることを望む者が検査し、解読できる。
【0038】図10はマルチワードデータ転送命令、す
なわち上記LSM命令を示す。この命令のオペレーショ
ンを制御するフィールド内にはレジスタバンク108内
のレジスタRnに対するポインターがあり、このポイン
ターは命令のマルチワード転送をするためのスタートポ
イントを示すメモリアドレス記憶データ値を制御する。
この命令は、レジスタバンク108内の16個のレジス
タの各々に1ビットが対応する16ビットフィールドも
含む。特定のビット位置における「1」の値は、そのレ
ジスタに対してデータ転送が行われるべきであることを
示し、従って、単一のLSM命令によって1〜16まで
の任意の数のデータ転送を指定できる。図示されている
例では、レジスタリストはレジスタRn内に保持されて
いる値で開始するメモリアドレスと、レジスタR0、R
1、R3、R7およびR11内に保持されている値でス
タートするメモリアドレスとの間で5つのデータワード
を転送すべきであることを指定する。この転送は、最小
数のレジスタでスタートし、転送ごとに4ビットメモリ
をインクリメントしながら進む。
【0039】図10に示されるように、データ処理シス
テム102の高性能の実施例は、メモリシステム(キャ
ッシュメモリ110または外部メモリ106のいずれ
か)からそれらのそれぞれのレジスタへパラレルに2つ
のデータ値を転送するように働くことができる。これに
よってLSM命令をより短時間で完了し、全体の処理を
スピードアップすることが可能となる。かかる実施例で
は、LSM命令の実行の途中にインターラプトまたは例
外が生じた場合でも、データ転送を逐次行うようなプロ
グラマーのモデルが破られることがないように注意を払
わなければならない。
【0040】図11は、図10の例を発展したものであ
り、この図10を使ってマルチワードデータ転送命令L
SMの所定のトレース開始条件のトリガーを部分的に示
している。特に、レジスタR3とメモリロケーションA
dd+8との間のデータワードDW3の第3のデータ転
送はトリガーを生じさせている。このトリガーは「#」
と表示されているアクセス中の特定のレジスタから、
「*」と表示されている転送中のデータ値から、または
「!」と表示されているアクセス中のメモリロケーショ
ンから行うことができる。これら多数の条件を同時に満
たし、その結果、マルチサイクルのマルチワードデータ
転送命令内のそのポイントでトレーストリガーを行うこ
ともできる。
【0041】トレースコントローラ120はトレースト
リガー条件を検出し、トレースをトリガーした転送から
スタートし、トレースデータバッファ122にトレース
データのトレースデータストリームを書き込むことによ
ってトレーシングオペレーションを開始する。特に、ト
レースデータストリームにはマルチワードデータ転送自
体が書き込まれ、その後、トレーストリガーを生じさせ
たデータ値およびアドレス値が書き込まれる。マルチワ
ードデータ転送命令(この命令は書き込みまたは読み出
しでよい)の終了までの残りのデータ転送の結果、トレ
ースデータストリームにトレースデータが追加される。
トレースデータストリームのバンド幅を保留するため
に、より詳細な情報を含むのではなく、LSM命令の終
了までのこれら転送の各々に対し、プレースフォルダー
データコードを挿入できる。このプレースフォルダーコ
ードはトリガーを開始したレジスタまでカウントバック
し、よって当該レジスタを識別するように、後の分析シ
ステムによって使用できる。トレースコントローラ12
0はトリガー転送自体および同じ命令内のその後の転送
しかトレースせず、その後の命令の後のトレースは行わ
ないようにするか、または前方のポイントからリターン
されたままになっているトレーシングをターンオンする
ように構成できる。当業者にはこれらのいずれも、ま
た、他の可能な案も明らかであろう。
【0042】図12はトレースコントローラ120によ
って実行できる制御オペレーションを略図で示す。ステ
ップ124においてトレースコントローラ120はこの
コントローラがトレーシングをスタートするようにトリ
ガーされたかどうかを判断するために連続的にチェック
を行う。ステップ126において、マルチワードデータ
転送命令LSMの実行中にトレースがトリガーされたか
どうかのチェックを行う。トレーストリガーがマルチワ
ードデータ転送命令の結果でない場合、処理は他のルー
チン128に進む。このルーチンについては本技術の解
説ではこれ以上説明しない。
【0043】LSM命令によってトレースがトリガーさ
れたと仮定された場合、ステップ130を実行する。こ
のステップではトリガーオペレーションのためのトレー
スデータストリーム内に命令、データワードおよびメモ
リアドレスを書き込む。その後の各オペレーションがス
テップ132で検出されると、このオペレーションが同
じLSM命令の一部であるかどうかのチェックをステッ
プ134で行う。同じLSM命令が続いている場合、処
理はステップ136に進み、このステップでトレースデ
ータストリーム内にプレイスホルダーコードを挿入し、
別のデータ転送を表示し、ステップ132にリターンす
る。マルチワードデータ転送命令が終了したことをステ
ップ134の判断が示している場合、その命令のトレー
シングは終了する。一部の実施例では、トレーシングは
オン状態のままとし、その後の命令をトレーシングされ
たデータストリーム内にトレースするか、または特定の
トリガー命令だけをトレースすると設定されていた場合
には、トレーシングは終了してもよい。
【0044】図13は上記実施例に従って発生したトレ
ースデータストリームに応答自在なトレースデータ分析
システム内で実行し得る処理を略図で示している。ステ
ップ138において、トレースデータストリーム(また
はトレースデータストリームのうちの少なくとも命令部
分)内でLSMマルチワードデータ転送命令に遭遇す
る。ステップ140において、分析システムはトレース
データストリーム内でデータ転送のうちの最終データ転
送および総カウントが確立するまで、そのLSM命令に
対し、トレースデータストリーム内にマークされた転送
の終了までカウントを行う。
【0045】次のアーキテクチャの説明に本発明の少な
くとも好ましい実施例のトレーシング技術の更なる説明
が記載されており、次のアーキテクチャの説明は英国ケ
ンブリッジのARMリミティッド社から公に入手でき
る、埋め込み型トレースマクロセル(Revl)と関連
して読むべきである。
【0046】以上で、添付図面を参照し、本発明の図示
した実施例について詳細に説明したが、本発明は本書に
説明した実施例のみに限定すべきでなく、当業者であれ
ば特許請求の範囲記載の発明の要旨から逸脱することな
く、種々の変形および変更を行うことができよう。
【0047】1.1 本書では、次の用語および略語を使用する。 用語 意味 現在のプロトコル ETM7およびETM9に対して使用されるETMプロ トコル 新プロトコル ETM10のためのプロトコル ETMパケット 1回のサイクルでETM FIFO内に挿入される関連 データのいくつかのバイト。1回のサイクルでETM1 0内には3個までのパケットを挿入できる パケットヘッダー パケットタイプおよびパケット内のその後に続くバイト をどのように解読するかを指定するETMパケットのう ちの最初のバイト CONTEXT ID 異なるコードストリームを識別し、これらを区別するの に使用されるCP15レジスタ13を通してアクセスさ れる32ビットの値。この値は以前ETM7およびET M9のドキュメンテーションでプロセスIDと称されて いたものである。この名称は7ビットのFCSE PI Dレジスタとの混同を防止するために変更したものであ り、この7ビットFCSE PIDレジスタはCP15 レジスタ13内にもあり、プロセスIDとも称されてい たものである。 トレースキャプ ETMによって発生したトレースをキャプチャーできる チャーデバイス デバイス、すなわちTPA、ロジックアナライザまたは オンチップトレースバッファである。 LSM ロードまたはストアマルチ命令、すなわちLDM、ST M、LDCまたはSTC命令 例外 IRQ、FIQ、PABORTまたはリセットアサーシ ョンによってインターラプトされる命令
【0048】範囲 本書はETM10の機能を特定するためのものであり、
ETM10は命令およびデータのトレーシングを行うこ
とができるリアルタイムトレースモジュールである。機
能はARM7およびARM9の以前のETM実現例の機
能に類似している。読者は埋め込み型トレースマクロセ
ルの仕様(ARM IHI 0014D)に概略が記載
された元のETM仕様に精通しているものと見なす。本
仕様はETM10と以前のETMバージョンとの間の共
通するアーキテクチャ上の特徴を記述し直すものではな
く、むしろETM10に対して変わったETM仕様の部
分について記述するものである。これら変更のほとんど
はARM1020Eを正しくトレーシングできる新しい
ETMプロトコルの作成に関連したものであり、このプ
ロトコルは将来のARMコアも同じようにトレーシング
するように拡張可能となっている。
【0049】前書き 埋め込み型トレースマクロセルは、ETM、トレースポ
ートアナライザおよびソフトデバッガー(例えばAD
W)を含むARMのリアルタイムデバッグ解決案の不可
欠な部分である。埋め込み型トレースマクロセルは2つ
の部分、すなわちトレースブロックとトリガーブロック
とから成る。トレースブロックは圧縮されたトレースを
作成し、狭いトレースポートを通過するようにこれを出
力する役割を果たす。トリガーブロックはユーザーがト
リガー条件を指定できるようにするプログラマブルリソ
ースを含む。トリガーブロックリソースはどの命令およ
びどのデータ転送をトレースするかを制御するためのフ
ィルタとしても使用される。(トリガーブロックリソー
スを含む)すべてのETMコンフィギュレーションレジ
スタは、JTAGインターフェースを通してプログラム
される。ユーザーはソフトウェアデバッガーを使ってこ
れらレジスタにアクセスし、一旦トレースがキャプチャ
ーされると、デバッガーはトレースを逆圧縮し、実行し
たコードのフルディスアセンブリをユーザーに提供する
役割を果たす。デバッガー用ソフトウェアはリアルタイ
ムでETMトレースポート出力を処理できないので、最
初は外部トレースポートアナライザ(TPA)内にトレ
ースがキャプチャーされる。TPAは完全に機能的なロ
ジックアナライザまたはETM固有のデバイス、例えば
Agilent社の n Traceボックスでよい。一旦トリガー条
件が発生し、デバッグの実行が完了すると、デバッガー
はTPAからトレース情報を抽出する。このハイレベル
の記述では、ETM10はETM7およびETM9に機
能的に同一である。
【0050】ETM10に必要な変更 ユーザーから見れば、ETM10はETM7およびET
M9が提供する機能に対し、等価的な命令およびデータ
トレーシング機能を提供するが、違いはわずかである。
この章ではETM10のためのETMアーキテクチャに
対して行われた変更およびこれら変更を行った理由につ
いて述べる。多くの変更は、逆圧縮ソフトウェアにしか
影響せず、トレースツールキットソフトウェアの他の部
分と同じように、エンドユーザーには判らない。しかし
ながら、いくつかの変更点はプログラマーのモデルに影
響するか、またはその結果、ETM7およびETM9と
はトレーシングの動作に若干の変更がある。この章で
は、かかる変更について述べる。新プロトコルのより詳
細な説明を必要とするETM10に対する変更は、第5
章に示されたプロトコルの説明に、より完全にカバーさ
れている。
【0051】1.2 ブランチファントムトレーシン
グ ARM10は「ブランチフォールディング」を実現す
る。このことは、通常の命令ストリームからブランチを
予測し、引出し、プログラム内の次の命令とパラレルに
効果的に実行できることを意味する。これらのフォール
ディングされたブランチをブランチファントムと称す。
旧プロトコルにおけるPIPESTATコーディングは1回のサ
イクルについて実行される1つの命令しか考慮していな
い。ブランチファントムのトレースを可能にするために
命令とパラレルにフォールディングされたブランチを示
すPIPESTATに新しいコーディングが追加される。第5章
のETM10のプロトコル仕様には、新PIPESTAT値が記
載されている。フォールディングされたブランチはトリ
ガーブロックの変更も必要とする。ブランチがフォール
ディングされると、2つの命令がパラレルに効果的に実
行される。これら2つの命令に対するPC値は識別可能
な関係となるように保証されていないので、サイクルご
とに2つのアドレスの比較を行わなければならない。こ
のことは、各アドレスレジスタが2つのコンパレータを
必要とすることを意味する。トレーシングがイネーブル
かどうか判断する際には、コンパレータの双方の出力を
検討する。(これら2つの命令のいずれかをトレースし
なければならない場合、そのサイクルでトレーシングを
イネーブルする。)ブランチフォールディングにより多
くて1つのエキストラ命令をトレースすることを保証す
るには、特別な注意を払わなければならない。一般にユ
ーザーはブランチがフォールディングされ、TraceEnabl
eまたはVewDataを正しくプログラムするために次の命令
とパラレルに実行されていることをユーザーは知ってい
る必要はない。事象に対し、命令のパラレルな実行によ
ってETM10対ETM7/9と若干異なる動作とする
ことができる。事象を一般に使用する態様に起因し、機
能の損失が大きくなることは感じられない。カウンター
は1サイクルにつき1回しかカウントダウンできない
が、単一アドレスのコンパレータを使用する際には、カ
ウンティングはアクセスの完全カウントしか提供しな
い。更に、Trigger、TraceEnable、VewData、またはExt
Outに対する機能のロスはなく、命令転送またはデータ
転送のいずれかが、個々に事象をアクティブにした場合
(このことは望ましい動作である)、その事象はアクテ
ィブとなる。シーケンサが同じサイクル内で多数の過渡
リクエストを受けた場合、過渡現象は発生せず、シーケ
ンサは元の状態のままである。このような動作はETM
7およびETM9の動作と同じである。ARM10は、
よりパラレルな実行をサポートするので、ETM10は
1サイクル内で多数の過渡リクエストの発生をより多く
有し得る。ユーザーはシーケンサをプログラムする際に
はこのような動作を知っていなければならないが、単一
事象に対してはワークアラウンドがある。望ましい動作
が事象Aに基づくステート1≧2からの、および事象B
に基づくステート2≧3からの過渡である場合、事象
(A&!B)において1≧2が発生し、事象Bにおいて
2≧3が発生し、および事象(A&B)において1≧3
が発生するようにプログラムする。このようにシーケン
サをプログラムすることによって、事象Aと事象Bの同
時発生を正しく処理することが保証できる。
【0052】1.3 ロードミスおよび例外トレーシ
ング ARM10は非ブロッキングデータキャッシュを有し、
このデータキャッシュは他のメモリ命令を含む他の命令
を単一の未解決ミスの元で実行できるようにするので、
データキャッシュはデータをコアへ順不同でリターンす
ることができるようにする。この機能は、現在のプロト
コルはロードデータをFIFOに順に挿入することを予
測しているので、ロードデータをトラッキングする上で
の問題となっている。データパケットは一部が順序外ロ
ードミスデータに適合するためのヘッダーバイトのプリ
フィックスが付けられている。ヘッダーバイトについて
は第5章で詳細に説明する。非ブロッキングキャッシュ
をサポートするには、データコンパレータを変更するこ
とも必要である。ETM7およびETM9と同様に、E
TM10はデータコンパレータを有し、これらデータコ
ンパレータは一対のアドレスコンパレータと組み合わせ
て使用される。コンパレータを使用する際に、コンパレ
ータはデータが一致した時の一致しかトリガーしない。
ミスの基では他のメモリアクセスも起こり得るので、ミ
スを生じ、支えたロードリクエストに対するアドレスが
一致しているかどうかを思い出すことができるようにす
るために、各コンパレータに1つのビットを加える。ロ
ードミスデータがリターンされると、データ値の比較を
行い、セーブされたアドレス一致ビットを使用して比較
の結果の評価を行う。この一致ビットをクリアする。あ
る場合、ユーザーはコンパレータをイネーブルするため
にミスデータが戻されるのを待つのを望まないことがあ
る。その代わりにユーザーはデータアドレスだけに基づ
き、ロードミスを常にトレースすることを望むことがあ
る。双方の異様モデルをサポートするために、各コンパ
レータに対し、どのモードをイネーブルするかをユーザ
ーが指定できるようにするために、アドレスアクセスタ
イプのレジスタに1ビットが加えられている。ユーザー
が比較するロードミスデータを待つことを望む場合、ア
ドレスアクセスタイプレジスタのうちのビット8、すな
わち完全一致ビットをセットしなければならない。(ア
クセスタイプのレジスタに関して更に情報が欲しい場合
にはレファレンス1を参照されたい。)トリガーおよび
その他の事象を発生するために、データ値を使用する際
にはデータの比較が生じるのを待つことが有効である。
トレースフィルタリングに対し、コンパレータを使用
し、余分なトレーシングが問題であると見なされない場
合、アドレスだけに基づくロードミスのトレーシングが
有効である。ユーザーは事象、例えばシーケンサの変化
を生じさせるためにデータ値を使用する結果、ロードデ
ータが順序外データとしてリターンすることができるの
で、順序外の事象が発生し得ることについて知っていな
ければならない。ARM10の非ブロッキングキャッシ
ュがプログラムされた事象に影響し得ることをユーザー
が気にする場合、この機能はcp15のコンフィギュレ
ーションレジスタ(r1)への書き込みによりコアでデ
ィスエーブルできる。より詳細については、ARM10
20E TRM(レファレンス3)を参照されたい。
【0053】アボート、インターラプトまたはソフトリ
セットが行われる際の、コンパレータの動作を特定する
ために、アクセスタイプのレジスタのビット7も使用さ
れる。これら条件は包括的に例外と称される。データア
クセスがアボートされ、ビット7がアサートされる場
合、コンパレータはデータの一致がリクエストされるか
否かに拘わらず、NOT演算の結果、一致を出力する。
コンパレータが命令アドレスに結合されている場合、例
外としてマークされた命令に対するノッチを防止するた
めに、完全一致ビットが使用される。例外を生じさせる
ような命令およびデータリクエストは、一旦アボート条
件またはインターラプト条件が解決されると、通常再試
行されるので、コンパレータが1回だけファイアーを意
味している場合には、このような動作が望まれることが
多い。データアクセスのケースではビット7がアサート
されないと、データ値は有効でないと見なされるので、
アボートされたアクセスは純粋にアドレスに基づく一致
を生じさせる。
【0054】所望される動作は一般に双方のケースに対
して同じであるので、ロードミスおよびデータアボート
の適正な取り扱いを判断するのに、同じ完全一致ビット
が使用される。四角な一致ビットに対するデフォルト値
はゼロである。
【0055】1.4 ARM10のデータトレーシン
グ ARM1020Eは1サイクルで64ビットのデータを
リターンできる64ビットデータバスを有する。この6
4ビットデータバスをサポートするためには、ETM1
0は1サイクルで2つの隣接するデータ値をトレーシン
グできなければならない。1つの値またはその他の値の
トレーシングをサポートするために次に2つのViewData
出力を発生する。しかしながら、複数の事象に対して1
つの出力およびTraceEnableに対して1つの出力しかな
い。同じサイクルでアクセスされる2つの隣接する32
ビットのリクエストの結果、カウンターが1つデクリメ
ントされるか、またはシーケンサにより1つのステート
変化しか生じないので、1つの事象出力を設けると、カ
ウンターおよびシーケンサロジックに影響がおよぶ。事
象ロジックをプログラムする際にユーザーはこのことを
考慮しなければならないが、大きな問題となるとは予想
されない。
【0056】1.5 LSMトレーシング ARM1020Eは独立したロード/記憶ユニットを有
する。このロード/記憶ユニットがデータアクセスを繰
り返す間(すなわちLSMの実行はコアをストールさせ
ない)、ロードまたは記憶マルチ命令(以下、LSMと
称す)の元でこのユニットによりその他の命令を実行す
ることが可能となる。これをサポートするために、アド
レスコンパレータの出力およびTraceEnableのアサーシ
ョンに若干の変更が必要である。 ・LSM命令を繰り返しながら、この命令をアクティブ
にトレーシングする時はいつも、トレーシングはアクテ
ィブなままであるが、この状態はTraceEnableがアサー
トされた状態のままであるか否かにかかわらず、LSM
が完了するまでこのトレーシングのアクティブ状態は続
く。(この規則に対する唯一の例外はオーバーフローが
生じるケースである。)この規則は、他の命令が他の方
法で実行されるか否かにかかわらず、LSMの元で実行
される他の命令をトレーシングする副次的な効果を有す
る。しかしながら、定義によりLSMの元で実行される
命令はデータ命令となり得ないので、余分なデータパケ
ットは生じない。 ・LSMの命令アドレス上でコンパレータが被動される
時は常に、全命令が完了するまで、そのコンパレータの
ViewData出力はアサートされたままに留まる。ユーザー
の意図はこの命令に関連するすべてのデータパケットを
トレースすることにあるので、このことが行われる。同
様に、LSM命令が完了するまでViewDataおよび事象レ
ンジ出力はアサートされた状態に留まる。定義により、
1サイクルの間、これら出力はアサートされなければな
らないので、事象の単一アドレスコンパレータの出力は
アサートされた状態に留まらない。 ・LSMに関連するデータ転送を一旦トレースすると、
通常トレースされないその命令に関連するその後の転送
はプレイスホルダーパケット出力(トレースされない値
(第5章参照)を有する。どのワードをトレースしたか
を判断するには、これらプレイスホルダーパケットが必
要である。EMプロトコルはロード/記憶データアドレ
ス(およびデータ値)に基づき、命令トレーシングをイ
ネーブルできるようにする。ARM10ではトレーシン
グイネーブル事象が生じた時にLSM命令はコア実行ス
テージ内に存在できないので、この機能をサポートする
には特別な方法でこの命令アドレスを周辺に維持または
一斉送信する必要がある。このことは、プログレスTF
Oパケット内のLSMを使って行われる。トレースパケ
ットオフセットについては5.2.4章に記載されてい
る。
【0057】1.6 補助データトレーシング プロトコルにデータヘッダーを加えることによって、補
助データタイプのトレーシング(すなわちロード、記憶
およびCPRT命令に対するデータ以外のデータ値のト
レーシング)も可能になる。この補助データタイプのト
レーシングとは、ETMの将来のバージョンにおける外
部ASICデータのトレーシングを含み得るETMトレ
ーシングの拡張を可能にすることを意味する。より詳細
な情報については第5章におけるデータヘッダーの説明
における補助データトレーシングに述べられている。
【0058】1.7 CONTEXT IDのトレー
シング CONTEXT ID値を更新する時、および同期化の
ためにTFOパケットが必要とされる時は常に、CON
TEXT ID値を一斉送信する必要がある。ETM1
0の場合、CONTEXT ID変更を生じさせたCP
RT命令に対するデータトレーシングを単にイネーブル
することによって、CONTEXT IDを更新する際
にこれらCONTEXT ID値を出力する。このデー
タパケットに対するユニークなデータヘッダーによっ
て、データが新しいCONTEXTID値をデコンプレ
ッサが認識できるようになる(データヘッダーについて
は第5章に記載されている)。ETMはトレースがイネ
ーブルされる時は常に、更に5.2.4章に記載されて
いるトレース同期化サイクル中に、現在のCONTEX
T ID値も一斉送信する。このCONTEXT ID
更新命令はMCRc15、0、rd、c13、c0、1である。ET
M10は、ARM10とETM10とのインターフェー
ス上の別の32ビットポートを必要とする以外に、CO
NTEXT IDが内部シャドーレジスタ内の現在CO
NTEXT ID値を更新し、これを維持することを認
識する。コヒーレンシーを正しく維持するためにETM
がPOWERDOWNモードとなっていても、このレジ
スタは常に更新される。(ETMレジスタ0×4、ビッ
ト0はアサートされる)。トレースフィルタリングのた
めにCONTEXT ID値を使用することは、ETM
10のための別機能として追加される。このことは、予
想されるCONTEXT ED値を指定できるETM内
の新しい組のプログラマブルレジスタを介して実行され
る。
【0059】
【表1】
【0060】各CONTEXT IDコンパレータに対
して同じマスクを使用し、このマスクはデータコンパレ
ータマスクと同じように働く。アドレスコンパレータの
アクセスタイプのレジスタのビット9:8は、CONT
EXT IDコンパレータを使用していることを表示す
る。00の値はCONTEXT IDコンパレータを無
視する。CONTEXT IDマスクを考慮した後に、
現在のCONTEXT IDがCONTEXT IDコ
ンパレータ1、2または3内の値に一致している場合に
限り、01、10または11の値はアドレスコンパレー
タを一致させる。事象ブロック内から直接CONTEX
T IDコンパレータにアクセスできるように、新しい
事象リソースが割り当てられる(ARM IHI 00
14Dの3.3.4章参照)。これら新しいリソースは
0×58〜0×5Aにマッピングされる。
【0061】
【表2】
【0062】存在するCONTEXT IDコンパレー
タの数を示すように、ETMコンフィギュレーションコ
ードレジスタに新しいフィールドが追加される(ARM
IHI 0014Dの4.2.2章参照)。
【0063】
【表3】
【0064】1.8 トレース出力の周波数 ARM1020Eのマクロセルは、300MHzを越え
るコア周波数で作動できる。以前のETMの実現では2
00MHzを越える周波数では使用できなかった。ET
Mトレース出力で達成できる最大出力周波数はトレース
アナラアイザの最大サンプリング周波数およびパッドで
達成できる最大出力周波数によって決まる。アギレント
社およびテクトロニクス社のアナライザは、それぞれ3
33MHzおよび400MHzの最大周波数で捕捉でき
る。しかしながら、ARM社のパートナーから得られる
CMOSパッドは、この周波数で、クリーンでトレース
可能な信号を発生できる可能性は低い。従って、これら
パッドはスピードを制限する要素となると予想される。
より大きいパッドを使用し、および/またはボードレベ
ルのバッファリングを使用することによって、ある程度
の速度の改良を行うことができる。これら技術によって
200MHzで信頼できるトレーシングが可能となり得
る。これより高い速度でトレーシングするには2つのオ
プションがある。ピンのカウント数を2倍にし、周波数
(多重解除トレースポート)を半分にするか、またはオ
ンチップトレースバッファを使用することができる。い
ずれの技術も肯定的なポイントと否定的なポイントを有
する。
【0065】ピンカウントを2倍にすることはパッケー
ジの制限および追加ピンの高コストから一部のパートナ
ーには魅力的なオプション案ではない。この技術では、
TPAを変更することも必要となり、更に最も可能性の
高いことに、より広い面積を占め、更にコストを増すよ
うな第2のミクターコネクタを増設することも必要とな
る。更に、この技術では400MHzのスピード制限が
ある。ホットプロセスで製造されたARM10プロセッ
サはこれらスピードを越える可能性が最も高い。
【0066】オンチップバッファのオプションにはコア
クロック速度で信頼性高くトレーシングでき、かつ余分
なピンを必要としないという利点がある。実際、オンチ
ップバッファを使ってすべてのトレースの捕捉を行う場
合、オンチップバッファはJTAGポートを通してマル
チICEを介し、ダウンロードされるので、外部からビ
ジブルなETMポートを省略できる。この解決案の欠点
は、オンチップバッファのサイズが8〜16KBのオー
ダーで極めて小さいということである。従って、トレー
シング深度が制限される。より大きいオンチップトレー
スバッファを使用することも可能であるが、これはAS
ICのサイズに直接影響し、小さいトレースバッファで
も一部の設計で可能なスペースよりも大きいシリコンス
ペースを使用し得る。
【0067】各方法の利点と欠点が異なっているので、
これまで述べたオプションのいずれも、サポートするこ
とが計画されている。ARM10200rev 1テス
トチップは、高速トレーシング用の多重解除トレースポ
ートで製造され、オンチップトレースバッファはARM
10200rev 1テストチップの一部とはならな
い。
【0068】ETM9用のオンチップトレースバッファ
用の仕様については既に記載されており、その実現は進
行中である。5.2章に詳細に記載される新しい4ビッ
トのPIPESTATコーディングをサポートするため
に、若干の変更をしたこのデザインからETM10とコ
ンパーチブルなオンチップトレースバッファを作成する
ことが可能となる。ETM10をサポートするのにどの
トレースキャプチャーデバイスの変更が必要であるかの
情報を更に欲しい場合にはレファレンス4を参照された
い。ETM10とコンパーチブルなオンチップトレース
バッファはタイムスケールに応じ、別の機能、例えばダ
イナミックトレース圧縮機能を提供でき、実際にこのバ
ッファはFIFOの置換回路としてETM10デザイン
内に直接集積化できる。
【0069】1.9 同期化レジスタ 先のETM実現例では1024サイクルごとの5バイト
命令アドレスを介し、更に1024サイクルごとの5バ
イトデータアドレスを介し、同期化が生じていた。ET
M10では、これら同期化ポイントは新しい12ビット
プログラマブルレジスタによって構成できる。構成可能
な同期化によってフルレンジのトレースバッファサイズ
を使用することがより容易となる。より小さいトレース
バッファ、例えばオンチップトレースバッファは、トレ
ースの大きい部分を処分することを防止するように頻繁
に同期化できるが、より大きいトレースバッファは必要
とされない同期時におけるむだなトレーススループット
を防止するのに、あまり頻繁には同期化できない。デフ
ォルトカウンター値は1024サイクルとなる。データ
アドレスの同期化と命令アドレスの同期化とが同時に生
じるのを防止するために、カウンターが中間値に達した
ときにデータアドレス同期化が行われ、カウンターが0
に達したときに命令アドレスの同期化が行われる。新同
期化レジスタに対するアドレスは0×78となる。
【0070】1.10 メモリマップデコーダ 以前のETM実現例で存在していた外部メモリマップリ
ソース入力はETM10に対してサポートされていな
い。ARM10のアーキテクチャ内に存在する余分な複
雑性によって、外部デコーダの実現はより困難となって
いる。外部事象はサイクルが完全EXPIN入力を使用
することによってまだトレーシングを制御できる(これ
については4.15章に記載されている)。
【0071】1.11 レンジアウト 以前のETM実現例はエキストラトリガーリソースとし
て埋め込み型ICEロジック内のデータ値比較レジスタ
を使用することができた。この機能は埋め込み型ICE
からのRANGEOUT出力を使用することによって達
成されていた。ARM10デバッグユニットはデータ値
比較機能を全く有しないので、これらRANGEOUT
出力を有していない。従って、ETM10に対してはこ
のリソースの再使用は不可能である。これらリソースは
もはやプログラムできないので、このことはプログラマ
ーモデルに若干影響する。
【0072】1.12 インターラプトベクトルへの
ブランチ 現在のプロトコルはインターラプトベクトルテーブル内
のエントリーへの直接ブランチを間接ブランチとしてト
レースしなければならないと指定している。このこと
は、ファントムブランチを提案されたプロトコル内で間
接ブランチに変換できないので、このことは常に可能で
あるとは言えない。従って、間接ブランチがブランチフ
ァントムであるかどうかとは関係なく、一貫性および簡
潔性のためにインターラプトベクトルに対する直接ブラ
ンチは間接ブランチとしてトレースされない。5.3.
1章に記載されているアドレスバイト5の特別コード化
に起因し、PABORT、FIQ、IRQ、DABOR
TおよびRESETベクトルに対するブランチを検出す
ることが可能である。
【0073】1.13 プロトコルバージョン ETM7およびETM9におけるコンフィギュレーショ
ンコードレジスタ(レジスタ0×01)に存在する4ビ
ットのETMプロトコルバージョンフィールドは、ET
Mに対する将来のプロトコルバージョンをサポートする
には不十分であると判断されている。従って、マイナー
なプロトコルバージョンナンバーだけでなく、主要なプ
ロトコルバージョンナンバー用のARMコアを指定する
フィールドを含む新しいETM IDレジスタが定義さ
れている。このレジスタはレジスタアドレス0×79に
マッピングされ、コンフィギュレーションレジスタにお
けるビット31がセットされる時は常に有効であると見
なされる。これによってETM7およびETM9はID
レジスタを必要とすることなく、プロトコル変形例0〜
7をまだ使用することが可能となっている。ETM I
Dレジスタは次のフィールドに分配された32ビットの
値を含む。
【0074】
【表4】
【0075】1.14 トレーススタート/ストップ
リソース TraceEnableスタート/ストップロジックの現在ステー
トを与えるために、新しい事象リソースが含まれる。こ
のリソースにはリソース番号1011111が与えられ
(ARM IHI 0014Dの3.3.4章参照)、
トレーススタート/ストップブロックがアクティブな時
は常にアサートされる。このスタート/ストップリソー
スをサポートするETMバージョンもETM制御レジス
タ内のビット23をアサートする。
【0076】1.15 TPAの変更 ARM10のための新しいトリガーおよびトレースイネ
ーブルステータス値をサポートするために、すべてのT
PAはわずかな変更を必要とする。すなわちこれらTP
AはTRおよびTD PIPESTATを検出するため
にPIPESTAT[3]/TRACESYNCがLO
Wとなることを保証しなければならない。ロジックアナ
ライザにとってこのことはわずかなソフトウェア変更に
すぎない。アギラント社のnTraceは同じようにわずかな
ハードウェア変更を必要とする。多重解除された半速度
ETMポートを通した高速トーレシングをサポートする
には、TPAはサイクルごとにトレースデータのうちの
2つのコアサイクルの価値を捕捉できなければならな
い。このデータはミクター社の2つのコネクタを通して
一斉送信される。従って、マルチコネクタ用のサポート
も同じように必要とされる。これら変更に関して更に情
報が欲しい場合には、レファレンス4を参照されたい。
【0077】1.16 正確な事象 ETM7およびETM9では、イベントブロックを介し
て発生される事象は正確ではなかった。このことは、事
象を発生したデータアクセスまたは命令をトレースする
のに、ユーザーは保証されていなかったことを意味す
る。ETM10はもはやこのようなケースとはなってい
ない。ViewDataおよびTraceEnableのアサーションはそ
れらがどのように発生されたかにかかわらず、常に正確
である。
【0078】1.17 FIFOFULLレベルレジ
スタ ETM7およびETM9では、FIFOFULLがアサ
ートされる前にFIFOが到達しなければならないレベ
ルを設定するのに、レジスタ0×0Bが使用されてい
た。ETM10では、FIFOFULLのこのレジスタ
は使用されず、代わりに新しいパケットをFIFOFU
LLに挿入しなければならない時は常に、イネーブルさ
れたFIFOFULLがアサートされる。ETM10は
ETM7/9よりもより深いパイプライン状となってお
り、FIFOFULLはこのように使用される場合に十
分有効となるように早期にしかアサートできない。ET
M10ではFIFOFULLレジスタはFIFOサイズ
を指定するリードオンリーレジスタとして再使用され
る。FIFOサイズはETM7/9ではソフトウェアに
よって決定できないようなサイズとなっている。
【0079】1.18 TRIGGER出力 プロセッサがモニタデバッグモードの場合、DBGRQ
は無視される。従って、トリガーが生じたことをコアが
認識できるようにするための他の機構を設けることが有
効である。この目的のため、ETM10のためのETM
インターフェースには単一ビットのTRIGGER出力
が追加されている。PIPESTATバス上で4ビット
のTRIGGERステータスがドライブされる時は常
に、TRIGGER出力がアサートされる。この信号は
インターラプトのアサーションによりコアにトリガーを
通知するよう、インターラプトコントローラによって使
用できる。このTRIGGER出力が必要でない場合、
この出力は付属されない状態のままにすることができ
る。
【0080】1.19 カウンター事象 ETM7/9に対してはカウンター事象レジスタは連続
的にカウントするのに使用できるエキストラビット17
を有していた。このビットの動作は冗長であり、証明が
困難であるので、このビットは除かれている。ユーザー
が連続カウンターを望めば、常にアクティブにすべきハ
ードウェアである外部リソース15に等しくなるように
事象を単にプログラムする。
【0081】ETM10のトレースポート 1.20 ETM10のポート信号 ETM10のトレースポートは2つの信号、すなわちP
IPESTATおよびTRACEPKTとから成る。こ
れらはいずれも(GCLKと周波数が同じである)TR
ACECLKの立ち上がりエッジで有効である。ETM
10に対してPIPESTATは3ビット信号から4ビ
ット信号に拡張されており、ブランチファントム用のコ
ーディングスペースを増している。TRACEPKTは
先のETMバージョンからは変更されていない。すなわ
ちこれはコンフィギュレーションに応じて4、8または
16ビットでよい。別の機構を介して同期化が行われる
ので、プロトコルからTRACESYNCピンが除かれ
ている。全体の結果として、トレースポートは先のET
M実現例と同じピンカウントを有する。1.21 P
IPESTATエンコーディグ
【0082】
【表5】
【0083】1.21.1 ブランチファントムのP
IPESTAT 次の命令とパラレルに実行されるブランチファントムを
考慮して8つの新しいブランチファントムエンコーディ
ングが追加されている。このコーディングは実行ストリ
ーム内の最初に存在するブランチ命令として常に解読す
べきである。直接ブランチしか予想されないので、ブラ
ンチファントムはFIFO内にデータパケットを挿入し
ない。ミス予想されたフォールドブランチの結果、正常
なIE/IM PIPESTATが生じる。その理由
は、パラレルに実行された命令は正しくない命令ストリ
ームからのものであるので、キャンセルされるからであ
る。
【0084】1.21.2 データPIPESTAT 「D」で始まるすべてのニューモニックは、FIFOサ
イクル内で一部の種類のデータパケットが挿入され、最
終的にTRACEPKTピンに出力されることを意味す
る。新プロトコルに対する「パケット」なるワードはF
IFO内の単一バイトではなく、FIFO内に挿入され
るマルチバイトの量を意味することに留意されたい。デ
ータパケットはブランチアドレス、ロード/記憶転送、
CPRT転送または補助データパケットでよい。ETM
10は1サイクルでFIFO内に最大3つのデータパケ
ット(2つのLDST/CPRT転送および1つのブラ
ンチアドレスパケット)を挿入する。1サイクルにおい
て、3つのパケットがプロトコルではなくハードウェア
の限界であることに留意されたい。プロトコルにパケッ
トヘッダーバイトを加えたことにより、別個のデータお
よびブランチPIPESTATが不要となっている。D
WおよびDMステータス値を加えたことにより、任意の
サイクルにデータパケットを付属させることが可能とな
っている。この値を加えることは、LDC/STCの長
さを決定するための高プロセッサのマップはもはや不要
であり、可変長さのLDC/STC命令のトレーシング
がサポートされることを意味する。パケットヘッダーバ
イトについては5.3章により詳細に記載する。
【0085】1.21.3 命令PIPESTAT 非待機PIPESTAT値、すなわち命令が実行された
ことを示す値は、その命令が実行されている最初のサイ
クルで常に与えられる。数サイクルの間で実行し、デー
タをリターンするLSM命令にとってこの違いは重要で
ある。この動作はLSMを実行した最終サイクルで実行
されたPIPESTAT値を与える以前のプロトコルバ
ージョンと異なっていることに留意されたい。「実行さ
れない」PIPESTAT(IN/DN)は2つの理由
から起こり得る。命令がその条件コードを実行できなか
ったか、または例外により命令が実行されなかった場合
である。先に述べたように、起こり得る例外としてはイ
ンターラプト、プリフェッチアボート、リセットアサー
ションが挙げられる。データアボートを生じさせるよう
なロード/記憶命令は実行されたと見なされるので、I
N/DNステータスは与えられない。デコンプレッサは
例外が命令の実行を阻止していることを認識しなければ
ならない。この情報は先のLSM命令からの後のデータ
パケットが例外命令に付属されるのを防止するために使
用される。(「実行されない」PIPESTATを有す
る命令に対して認められる唯一のデータパケットはブラ
ンチアドレスである。)
【0086】1.21.4 TDステータスおよびT
FO TDのステータスはTRACEPKTのこのサイクルで
トレースFIFOデータが存在しないことを意味する。
このことが起こる理由は2つある。すなわち ・FIFO内にトレースすべきデータがない場合(FI
FOが空であれば、ステータスはWTとなる)。特に、
次にイネーブルされるまでトレースがディスエーブルさ
れた直後にこのことが起こる。 ・TFOがETMの同期化のために一斉送信されている
場合。
【0087】PIPESTAT上にTDステータスが示
される時には、圧縮解除ソフトウェアはTFOが一斉送
信されたかどうかを判断するためにTRACEPKT値
を見なければならなくなる。先のETM実現例で行われ
ているように、サイクルに正確なトレースと非サイクル
正確なトレースとを区別するために、TRACEPKT
[0]が使用される。以前と同じようにTRACEPK
T[0]=0の場合、トレースキャプチャーデバイスは
TDサイクルを廃棄できる。TRACEPKT[0]が
アサートされれば、TFOを送信するかどうかを指定す
るためにTRACEPKT[3:1]が使用される。T
FOが一斉送信されると、TRACEPKT[7:4]
はTFO値のうちの下位の4ビットを指定する。TRA
CEPKT[3:1]は下記の表に示されるように、他
のTFO値を指定する。有効なTFO値のレンジを最大
にするよう、TFOはこのようにコード化される。
【0088】
【表6】
【0089】パイプラインステータス(PIPESTA
T)とFIFO出力(TRACEPKT)とを同期化す
るために、トレース情報を逆圧縮する際にTFO、すな
わちTraceFIFOOffsetを使用する。トレースが最初に
イネーブルされる時、更に命令同期化カウンターが0に
達する時はいつもTFOを発生する。このTFOは以前
のETM実現例で使用されたアドレスパケットオフセッ
ト(APO)情報を置き換える。TFOはブランチをカ
ウントする代わりに、現在FIFOにあるバイト数をカ
ウントする。このように同期化することにより、プロト
コル内のTRACESYNCピンが不要となる。更に、
BE PIPESTATによるトレーシングのスタート
と、それに続くAPO値のための2つのデッドサイクル
も不要となる。
【0090】トレースが既にイネーブルされている間、
同期化のためにTFOが一斉送信される時は、IEのP
IPESTAT値が示される。トレーシングを開始する
ためにTFOが一斉送信される際には、PIPESTA
Tは示されず、次のサイクルで最初にトレースされた命
令に対するPIPESTATが与えられる。次の基準の
すべてが満たされる時に、同期化のためのTFOが発生
される。 ・一般に1024に初期化されるサイクルカウンターが
0に達すること。 ・現在の命令が「IE」のPIPESTAT値を有する
こと。
【0091】同期化リクエストが一旦表示されている場
合、命令同期化レジスタ(デフォルト値は1024であ
る)にどんな値がプログラムされていても、TFOサイ
クルカウンターはその間にリセットされ、再びカウント
を開始する。最初のリクエストの同期化サービスが完了
する前に第2の同期化リクエストがなされた場合、同期
化を強制的に生じさせるようにETMはオーバーフロー
させられる。このシナリオでは一部のトレースは失われ
るが、このことが起きた場合、プロセッサは無限ループ
内でスタックする可能性が最も高いので、このことは問
題であるとは考えられない。従って、重要なトレースは
失われない。同期化カウンターがばかげたほど小さい数
にリセットされた場合、このようなケースとはならな
い。従って、同期化値を小さすぎる値(50サイクルよ
りも低い値)にセットすることは軽率なことである。
【0092】TFOサイクルが発生すると、このサイク
ルでFIFOにデータのいくつかのバイトが挿入され
る。このデータはTFOパケットと称され、一般に特殊
なヘッダーバイトと、現在のCONTEXT IDと、
フル命令アドレスとから成る。TFKパケットに対する
正しいフォーマットは5.4章に示されている。
【0093】4ビットのTRACEPKTコンフィギュ
レーションにおいて、1バイトのうちの第2のニブルが
予想される時にTFOが生じた場合、TFO値の直後に
TRACEPKT[3:0]に値「0×6」のエクスト
ラニブルが出力される。TFO値はニブルではなく、バ
イトによって同期化を指定するので、このニブルが必要
とされる。このエクストラニブルを出力することによっ
て、ETM10はTFO値によりポイントされるFIF
Oの現在のトップのバイトが一致することを保証する。
同期化が必要でないケースでは、このエクストラニブル
がTRACEPKT[3:0]に生じることをデコンプ
レッサが認識していることが重要である。TFOが同期
化によるものか、またはトレースのイネーブルによるも
のかは関係なく、奇数のニブルでTFOが発生される時
に、デコンプレッサは常にこのイクストラニブルを予想
しなければならない。TRACEPKT[3:0]で完
全なTFO値(および必要な場合にはエクストラニブ
ル)が出力されるまで、FIFO出力は遅延される。
【0094】1.21.5 トリガーステータス トリガーステータス(TR)はこのサイクルに対する実
際の4ビットのステータスがTRACEPKT[3:
0]に載せられ、FIFO出力が1サイクルだけ遅延さ
れることを意味する。この動作はETM7およびETM
9と同一である。トリガーとTFOが同時に発生したい
場合、TRACEPKT[3:0]上のPIPESTA
T値はTDとなる。トリガーが生じる時にWT PIP
ESTATは決してTD PIPESTATに変換され
ないので、TDは真のTFOとして一義的に識別可能で
ある。4ビットポートのケースでは、TFO一斉送信の
第2サイクル(またはギャップサイクル)においてトリ
ガーが発生したい場合、トリガーが発生し、エクストラ
サイクルだけFIFO出力が遅延され、残りのTFOニ
ブルを出力する。従って、トリガーは遅延されず、発生
時に出力されることが保証される。
【0095】1.22 パケットヘッダーエンコーデ
ィング 「D」エンコーディングを有するPIPESTAT値に
より、FIFO内にはパケットが挿入される。単一サイ
クルにおいてFIFO内には3つまでのパケット(2つ
のデータパケットと1つのブランチアドレスパケット)
を挿入できる。下記の表にはパケットヘッダー値に対す
るエンコーディングが示されている。
【0096】
【表7】
【0097】データヘッダー上のCビットは、単一サイ
クルでどれだけ多くのパケットがFIFOに挿入されて
いるかを逆圧縮ツールに伝えるために使用される。この
Cビットは最終パケットまで挿入され、最終パケットを
含まない各パケットに対してアサートされる。このこと
は、どのパケットをどのサイクル、従ってどの命令に結
び付けなければならないかをデコンプレッサが認識する
のに必要である。このCビットは、より低いケース
「c」によって表示されるアドレス連続ビットと混同し
てはならない。
【0098】1.22.1 ブランチアドレス ブランチアドレスは以前のETM実現例と同じようにコ
ード化される。1つのブランチパケットは1〜5ビット
の長さでよく、cビットがイネーブルされる時は逆圧縮
ツールはより多数のバイトを予想しなければならない。
しかしながら、ThumbとARMステートとを区別するの
に、ブランチアドレスのビットゼロはもはや使用されな
い。代わりに、すべてのブランチアドレスにはプレ圧縮
により33番目のビット位置に1のプレフィックスが付
けられる。一旦圧縮されると、すべてのブランチアドレ
スには0番目のビット位置に1がサフィックスとして付
けられる。ビット0における1はブランチアドレスとし
てパケットを識別するものであり、ビット33における
1はARMアドレスとthumbアドレスとを区別するため
に使用される。ARMアドレスはワードが一致していな
ければならないので、ARMアドレスのうちのビット
[31:2]しか一斉送信されない。Thumbアドレスは
半ワード一致しているので、ビット[31:1」を一斉
送信するだけでよい。33番目のビットの、常にアサー
トされたプレ圧縮と組み合わせて、ARMアドレスとTh
umbアドレスに対し、異なる数のビットを一斉送信する
ことにより、ARMステートとThumbステートとの間の
変化時にフルの5バイトのアドレスが一斉送信されるこ
とが保証される。更に、ARMアドレスおよびThumbア
ドレスは次の表に示されるように、5番目のアドレスバ
イトの内の高位ビットによって常に一義的に識別でき
る。
【0099】
【表8】
【0100】ブランチターゲットアドレスが存在する場
合、このブランチターゲットアドレスは常に所定のサイ
クルでFIFO内に挿入すべき最終アイテムとなる。従
って、パケット連続ビット(Cビット)は不要である。
理由コードは5.4章で説明するTFOパケットヘッダ
ーの一部として与えられるので、このコードは5番目の
バイト内のアドレスビット6:4で一斉送信されること
はない。5番目のバイトのうちのビット6は(上記表に
おける「E」によって表示される)例外ブランチアドレ
スを表示するのに使用される。このビットはアボート、
インターラプトまたはソフトリセットに起因し、任意の
ブランチ上でセットされる。これらインターラプトされ
た命令が実際には実行されていないことをデコンプレッ
サが認識し、ユーザーに表示できるように、このビット
は有効となっている。5番目のアドレスバイトのうちの
ビット7およびビット5は将来使用するために留保され
たままになっている。
【0101】1.22.2 通常のデータ キャッシュ内でミスしないすべてのロードおよび記憶デ
ータパケットに対し、通常のデータヘッダーが使用され
る。このデータヘッダーはCPRTデータトレーシング
がイネーブルされた場合に、CPRTデータパケットに
対しても使用される。データアドレストレーシングがイ
ネーブルされた場合、ヘッダーパケットの後であって、
データ値(存在する場合)の前でデータアドレスが一斉
送信される。このデータアドレスは命令ブランチアドレ
スと同じ圧縮技術を使って一斉送信されるので、1つ〜
5つのバイトから成る。以前のETM実現例に当てはま
るように、トレーシングが開始される前にデータアドレ
スがトレースされたかどうかを統計的に判断しなければ
ならない。(64ビットのデータ転送に起因し)単一サ
イクルで通常の2つのデータパケットが与えられた場
合、最初のパケットしかデータアドレスを含まない。L
SM命令のためのデータが一斉送信されると、次のデー
タパケットが別のサイクルで転送されるが、データアド
レスは最初のデータパケットと共に一斉送信されるだけ
である。通常のデータヘッダーにおけるAビットは、こ
れが特定命令に対する最初のデータパケットであること
を指定するのに使用され、従って、(アドレストレーシ
ングがイネーブルされる場合)データアドレスを予想し
なければならない。ヘッダーバイト内でこの情報を利用
可能にすることにより、逆圧縮できないコード部分(す
なわち二進法を利用できない領域)を通るトレーシング
を行う際に、デコンプレッサは同期状態を維持できるよ
うになる。このAビットはCPRTパケット上ではアサ
ートされない。
【0102】通常のデータコーディングにおける「MS
S」ビットはデータ値の圧縮に使用される。Mビットが
低レベルであると、SSビットは転送されるデータ値の
サイズを指定する。先行するゼロを簡単な形態のデータ
圧縮として値から除く予備的な実験によれば、この圧縮
は約20〜30%の圧縮を可能にすることが判った。こ
の値はヘッダーバイトの追加的バンド幅コストを相殺す
るのに十分である。将来の圧縮技術のためにMビットの
組によるコーディングが保留されている。次の表にはM
SSビットのための正確なコーディングが示されてい
る。
【0103】
【表9】
【0104】1.22.3 ロードミス ロードミス発生ヘッダータイプおよびロードミスデータ
ヘッダータイプは、データキャッシュ内でミスするロー
ドリクエストを取り扱う。ロードミスが生じると、デー
タ値が予想されるFIFO内にロードミス発生パケット
が挿入される。データアドレストレーシングがイネーブ
ルされた場合、パケットはデータアドレスを含む。イネ
ーブルされない場合、パケットはロードミス発生ヘッダ
ーバイトから成る。ロードミス発生パケットが読み出さ
れると、逆圧縮ソフトウェアはデータ値が現在未解決の
ミスであることを認識し、このデータ値は後にリターン
される。データが一旦リターンされると、このタイプに
対するPIPESTAT値は「+DATA」バージョン
に変更され、FIFO内にロードミスデータヘッダーバ
イトと実際のデータ値とから成るロードミスデータパケ
ットが挿入される。ロードミスデータパケットはデータ
アドレスを決して含むことはない。ロード/記憶ユニッ
トはロードミスデータをリターンするための自由サイク
ルを有していなければならないので、このデータは別の
ロードリクエストまたは記憶リクエストに対するデータ
と同じサイクルでリターンされることはない。
【0105】ロードミスヘッダータイプにおける「T
T」ビットは、各ロードミスを識別するためのタグとし
て使用される。ロードミス発生パケットは常に対応する
ロードミスデータパケットと同じタグ値を常に有する。
ARM1020Eは位置度に1つの未解決のロードミス
しかサポートせず、第1ミスに対するデータがリターン
される前に第2のロードミスパケットを一斉送信でき
る。従って、すべてのロードミスを一義的に識別するた
めに、ETM10rev0ではタグ値2’Bb00およ
び2’B01がサポートされている。これら2つのビッ
トはより多数の未解決のミスを許容できる、将来のプロ
セッサをサポートするために、タグフィールド内に割り
当てられている。更に、ARM1020Eはミスデータ
を(他のロードミスに対して)順にリターンするが、こ
のタグ付け機構はミスデータを順序外でリターンできる
将来のプロセッサをサポートする。
【0106】16ビットのロード値でミスが生じると、
同じサイクルでFIFO内に2つのロードミスパケット
が挿入される。双方のパケットは同じタグ値を有し、同
じサイクル内でFIFO内に挿入されるので、デコンプ
レッサはこれら2つのミスが単一の64ビット値に対す
るものであることを認識する。通常のデータパケットに
関し、データアドレスは最初のロードミスパケットと共
に存在するだけであるので、既にデータパケットを一斉
送信したLSMの中間でミスが生じた場合、データアド
レスは全く存在しないことになる。64ビットのケース
に対し、ロードミスデータがリターンされると、このロ
ードミスは同じサイクルで与えられた2つの別個のロー
ドミスデータパケットとして常にリターンされる。双方
のパケットは同じミスタグを有することになる。
【0107】ロードミスデータパケットは通常のデータ
に対して行われているのと同じようなデータ圧縮および
サイズ情報に対し、MSSビットを使用する。デコンプ
レッサが予想しないロードミスデータパケット(例えば
同じタグを有するペンディング中のミス発生パケットを
有しないミスデータパケットが与えられる)を受信した
場合、デコンプレッサはサイズとして示された所定の数
のバイトだけスキップしなければならない。未解決のミ
スデータがリターンされる前にトレースがディスエーブ
ルされるた場合に、利用できるようになるとすぐに「D
W」PIPESTATと共にFIFO内にこのデータア
イテムが挿入される。オーバーフローまたは脱出したデ
バッグの理由コードによってトレースがイネーブルされ
た場合、デコンプレッサはペンディング中のロードミス
パケットをキャンセルしなければならない。
【0108】1.22.4 補助およびフル視覚性デ
ータトレーシング 補助およびフル視覚性データヘッダーコーディングは、
プロトコルを拡張するために保留されたスロットの組で
ある。プロセッサに対し、内部および外部にある補助デ
ータをトレーシングするために、これらパケットタイプ
を使用することが可能である(フル視覚性とは、すべて
のレジスタファイルの更新をトレースすることを意味す
る)。他のデータパケットと同じように補助データパケ
ットはサイズ情報のためにSSビットを使用している。
フル視覚性データトレーシングは同じように更に圧縮を
するためのMビットをサポートしている。ETM10r
ev0ではこれらパケットタイプは使用されない。
【0109】1.22.5 コンテキストID コンテキストIDヘッダーバイトはコンテキストID更
新命令、すなわちMRC c15、0、rd、c13、
c0、1によってコンテキストIDが変更される時にし
か使用されない。データ値のサイズはETM10の制御
レジスタ(レジスタ0×0、ビット[15:14])で
指定されたコンテキストIDサイズによって統計的に決
定される。指定されたバイト数よりも新しい値が大きく
ても、指定された数のバイトしかトレースされない。サ
イズが0として指定されている場合、コンテキストID
更新はトレースされない。コンテキストID更新命令が
MRCであっても、コンテキストID値のトレーシング
は他のCPRT命令からのトレーシングデータ値から完
全に独立している。このコンテキストID値のトレーシ
ングはETM10の制御レジスタ(レジスタ0×0、ビ
ット[1])内のモニタCPRTビットによって影響さ
れることはない。コンテキストID更新に対し、ユニー
クなヘッダー値を使用することによって、逆圧縮できな
いコード領域(すなわち二進法を利用できない領域)を
通るトレーシングを行う時でも、デコンプレッサはコン
テキストIDの変更を認識できる。
【0110】1.22.6 トレースされない値 先のETM実現例はLSMオペレーションのためにデー
タ値のすべてをトレースできるか、または全くトレース
できないかのいずれかであった。この判断は、第1転送
時に行われていた。今日のコンパイラーは隣接するLD
R/STRオペレーションをユーザーに知られていない
LSMへ組み合わせることが多いので、このような動作
は望ましくない。値がトレースされていないパケットを
加えることによって、LSMを部分的にトレースし、ト
リガー基準に正しく一致するデータ値を出力する能力を
増していた。LSMに関連する第1データ値をトレース
する時は常に、(アドレストレーシングがイネーブルさ
れている場合の)データアドレスと、(データ値のトレ
ーシングがイネーブルされている場合の)データ値とを
含むFIFO内に通常のデータパケットが挿入される。
このLSMのためのその後のすべてのデータ転送の結
果、FIFO内にパケットが挿入される。その後の値を
トレースする場合、データ値だけを与える通常のデータ
パケットがトレースされる。その後のデータ転送をトレ
ースすべきでない場合、値をトレースしないパケットが
これら転送用のFIFO内に挿入される。値がトレース
されていないパケットは値がトレースされていないヘッ
ダーバイトのみから成る。逆圧縮ソフトウェアは最終デ
ータ転送から後方向に作用することにより、どのLSM
値がトレースされ、どの値がトレースされなかったかを
判断するために、通常のデータパケットと組み合わせて
値をトレースしなかったパケットを使用することができ
る。ここで、先に述べたように、LSM命令でトレーシ
ングが一旦開始すると、このトレーシングは命令の完了
前にTraceEnableがデアサートされていても、LSMが
完了するまで続く。
【0111】1.22.7 保留 データヘッダーコーディング内には保留されたスロット
が総計10個残っている。これらスロットのすべては、
必要とされる場合、および/または将来のETM実現例
が使用するために、プロトコルを補強するのに利用可能
とされる。通常のデータおよびフル視覚性トレースコー
ディング内のMビットも、将来のETM実現例がより多
数のヘッダータイプを必要とする場合でも圧縮の代わり
に新しいデータヘッダーコーディングのために使用する
こともできる。
【0112】1.23 TFOパケットヘッダーコー
ディング (5.2.4章に記載されている)TFOサイクルによ
りFIFO内にTFOパケットが挿入される。デコンプ
レッサはTFOによりFIFO内にパケットが挿入され
たことを知るので、TFOパケットは自己のヘッダーバ
イトコーディングを有する。このコーディングはPIP
ESTATデータパケットにより使用されるコーディン
グスペースから完全に独立している。次の表にはTFO
パケットヘッダーコーディングが示されている。
【0113】
【表10】
【0114】1.23.1 命令アドレス TFOパケットの第1バイトに対し、TRACEPKT
[1:0]!=2’b10である場合、このTFOパケ
ットは1つの命令アドレスから成る。常にフルアドレス
が必要とされるので、圧縮は行われず、4バイト値とし
てアドレスが常に出力される。アドレスのうちのビット
0はこのアドレスがThumbまたはARM命令アドレスか
どうかを指定する。TFOパケットが命令アドレスから
成る時、このことは次のことを意味する。 ・(ContextIDSize、ETMレジスタビット[15:1
4]によって決定されるように)CONTEXT ID
値はトレースされない。 ・TFOの理由コードは2’b00、すなわち通常の同
期化である。理由コードがゼロでないか、またはCON
TEXT ID値がトレース中である場合、次のTFO
パケットのうちの1つが必要とされる。1つのアドレス
から成るTFOパケットはプロトコルに合わせるために
は厳密に必要ではなく、ETM10rev0では実現さ
れない。
【0115】1.23.2 通常のTFOパケット 通常のTFOパケットはヘッダーバイトと、それに続く
CONTEXT IDのうちの0〜4バイトおよびそれ
に続く4バイトの命令アドレスから成る。トレースされ
るCONTEXT IDバイトの数はETM制御レジス
タビット[15:14]によって統計的に決定される。
命令アドレスは常に4バイトであり、圧縮されない。ビ
ット0はThumbビットを指定する。TFOヘッダーバイ
トは(上記表においてRRと表示された)2ビットの理
由コードを含む。これら理由コードはプロトコルバージ
ョン0および1におけるETM7およびETM9によっ
て使用されるコードと一貫している。これら理由コード
は次の表に示されている。
【0116】
【表11】
【0117】1.23.3 進行TFOパケット内の
LSM マルチメモリアクセス命令(LDM、STM、LDCま
たはSTC)の中間でトレースがイネーブルされ、別の
命令が現在実行中の時に限り進行パケット内のLSMが
生じる。これらパケットはヘッダーバイトと、それに続
くCONTEXT IDのうちの0〜4バイト、それに
続くLSMのための4バイトの命令アドレス、それに続
く現在実行中の命令のための圧縮されたアドレスの1〜
5バイトから成る。LSM命令はThumbビットを指定す
るビット0を有する固定された4バイトアドレスであ
る。現在の命令アドレスは(5.3.1章に指定されて
いるように)ブランチアドレスと同じ技術を使用して圧
縮される。最終命令アドレスはLSM命令からのフルア
ドレスに対して圧縮される。次の命令PIPESTAT
は第2アドレスによりポイントされる命令のためのもの
であり、このポイントから前方に通常の方法でトレーシ
ングが開始する。このパケットタイプは特定のデータア
ドレスまたはデータ値にタッチするすべての命令を正し
くトレーシングするのに必要である。これがない場合、
LSM命令はデータアドレスに基づき正しくトレースす
ることはできない。LSM自体の間でのみトレーシング
がターンオンするようにプログラムされていても、LS
M下で発生する命令はトレースされることに留意された
い。同様に、LSMの元でたまたま実行される命令の命
令アドレスによってトレーシングがターンオンされた場
合、進行TFOパケット内のLSMは出力されたままと
なる。通常のTFOパケットと進行TFOパケット内の
LSMとの間の差を更に明瞭にするために、次の表は各
ケースに対して予想されるはずのバイトを示している。
【0118】
【表12】
【0119】ARM10のTRACEインターフェース この章では、ARM1020EとETM10との間の信
号インターフェースが記載されている。このインターフ
ェースの大部分はARM1020EによってETM10
にドライブされる。信号の記述はカスタムデータパス入
力と、合成された制御入力と、ETM出力とに分割され
ている。合成制御信号は後に変更できるが、データパス
信号の変更はカスタムロジックのリワークを必要とする
ので、これらは設計において後に変更することはできな
い。すべての入力信号はETM10内に即座に登録さ
れ、すべての出力はレジスタの出力端から直接ドライブ
される。インターフェースは合計220の信号から成
り、これら信号は213の入力信号と、ETM10パー
スペクティブからの4つの出力信号とを含む。
【0120】1.24 ETMデータパス入力 ETMデータトレーシング用に関係するデータバスは4
つある。すなわちロードデータバスと、記憶データバス
と、MCRデータバスと、MRCデータバスとがある。
これら4つのすべてのバスは幅が64ビットである。所
定サイクルにおいては、これらバスのうちの1つしか有
効データを含むことができないので、4つのすべてのバ
スはARM1020E内では1つの64ビットデータバ
ス、すなわちETMDATAに多重化されている。ET
MDATAはETMにドライブされる前にARM102
0E内に登録される。このETMデータはARM102
0Eのパイプラインの書き込み(WR)ステージにおい
て有効である。ARM1020EからETM10へドラ
イブされるアドレスバスは4つある。これらバスのうち
の3つは命令アドレス用であり、残りの1つはデータア
ドレス用である。R15バスはARM1020Eパイプ
ラインの実行(EX)ステージ内でETMにドライブさ
れるが、一方、IAおよびDAアドレスバスはメモリ
(ME)内で有効である。ETMにドライブされるすべ
てのデータパスバスは次の表に示されている。
【0121】
【表13】
【0122】1.25 ETM制御入力 1.25.1 ETMCORECTL[23:0] ETMCORECTLはすべてARM10のコアから来
る種々の制御信号を含む。これら信号はすべてコア内に
登録され、ETM10にドライブされる前にこの共通バ
ス上で組み合わされる。これらバス上に存在する制御信
号およびそれらの意味は次の表に示されている。特に指
定されない限り、ARM1020Eのパイプラインの書
き込みステージ(WR)において、これらのいずれもが
有効である。
【0123】
【表14】
【0124】1.25.2 ETMDATAVALI
D[1:1] この信号はバスETMDATA[63:0]でドライブ
されるデータを評価する。データバスのうちの各半分に
対し1つのビットがある。
【0125】1.26 ETM出力 この章では、ARM1020Eにフィードバックされる
出力およびARM1020Eから必要とされるものにつ
いて記載する。
【0126】1.26.1 FIFOFULL イネーブル時にFIFO内に挿入されたバイトがある時
は、ETM出力のFIFOFULLがアサートされ、F
IFOが空になるまでアサートされた状態のままとな
る。この動作はFIFOFULLをアサートする前にF
IFOが所定の指定されたレベルに達するまで待機する
ETM7/9と若干異なっている(4.16章を参
照)。FIFOFULLはコア、本例ではARM102
0Eによって使用され、ARMパイプラインを停止させ
る。これによってETMのオーバーフローが防止される
ので、コア内で生じる事象のタイミングを若干変更する
福次的効果により完全なトレースを保証できる。ここ
で、タイミング要因によりFIFOFULLのアサーシ
ョンの結果、ARM1020Eの中間ストールは生じな
い。従って、稀なことであるが、FIFOFULLがア
サートされていても、オーバーフローが生じる可能性が
時々ある。このオーバーフローが生じた時に、ミスした
命令の数は少ない。その理由は、FIFOが排出中であ
る間、(FIFOFULLのアサーションに起因し)プ
ロセッサは停止された状態のままとなるからである。
【0127】1.26.2 PWRDOWN HIGHの時、このことはETMが現在イネーブルされ
ていないことを示すので、CLK入力をストップでき
る。これはトレースを使用していない時の電力消費量を
低減するのに使用される。リセット時にPWRDOWN
はETM10がプログラムされるまでアサートされる。
ARM10200のテストチップはETM10のCLK
入力を直接ゲート制御するのにPWRDOWN出力を使
用しなければならない。以前指摘したように、PWRD
OWNはCONTEXT IDの更新時に一時的にディ
スエーブルされ、ETM10の内部CONTEXT I
Dシャドーレジスタでの更新を可能にする。CONTE
XT ID更新のケースを除き、PWRDOWNはTC
LKに同期して変更され、デバッグセッションの開始時
にARMデバッグツールによってクリアされる。PWR
DOWNはトレースがイネーブルされる前に多くのサイ
クルを変えるので、ETM10のCLKをゲート制御す
るのにTCLKに基づく信号を使用しても準安定性問題
を生じさせない。
【0128】1.26.3 DBGRQ 先のETMの実現例と同じように、トリガー条件が生じ
た時は常にDBGRQをアサートするよう、ETM10
をプログラムすることができる。DBGRQはDGBA
CKが発見されるまでアサートされたままである。DB
GRQはARM1020Eの外部デバッグリクエストピ
ン、すなわちEDBGRQに接続しなければならない。
このETM出力に対してはARM1020Eからのエキ
ストラサポートは不要である。EDBGRQ入力がAS
IC内の他の、ある機能ブロックによって既に使用され
ている場合には、多数のDBGRQ信号を共にOR演算
することができる。このようにデバッグをイネーブリン
グすることは、任意の特定の命令境界に入るように保証
されていないことに留意すべきである。更に、ARM1
0がそのときにハードウェアデバッグモードとなってい
いる場合、コアはEDGBRQを認識するにすぎない。
【0129】1.26.4 TDO ETM10は先のETMバージョンと同じTAPインタ
ーフェース配線を使用する。TDOピンはARM102
0Eのスキャン拡張入力SDOUTBSに接続されてお
り、ETM10のレジスタは先のETM実現例と同じよ
うに、スキャンチェイン6によってアクセスされ、プロ
グラムされる。このETM出力に対してはARM102
0Eからのエキストラサポートは不要である。
【0130】コンフィギュレーション ETM7/9は小、中および大コンフィギュレーション
で利用できていた。中および大コンフィギュレーション
は、別のエリアを代償にして、より多数のトリガーハー
ドウェアリソースおよび大きいFIFO深さを提供す
る。新コンフィギュレーションと共にソフトマクロを単
に再合成するだけで、異なるASICアプリケーション
に対し、異なるコンフィギュレーションを選択できる。
ETM10は同様な範囲のコンフィギュレーションを提
供する。次の表は現在ETM10に対して提案されてい
るコンフィギュレーションを示す。ほとんどのトリガー
リソースはETM7およびETM9と同一であるが、例
外は、64ビットコンパレータのサイズが大きくなって
いることにより、大コンフィギュレーションにおけるデ
ータコンパレータが8つから4つまで減少していること
である。各コンフィギュレーションにおける大きいFI
FOサイズはARM1020Eの、より高い命令スルー
プット(すなわち性能)をサポートする必要があること
を示している。各コンフィギュレーションに対するFI
FOサイズは面積の影響および性能のモデル化からのフ
ィードバックに基づき増加できる。ETM10のコンフ
ィギュレーションに対して与えられるゲートカウントは
ETM10のrtlモデルの初期の合成に基づく推定値
である。これら推定されたゲートカウントは最終実現例
で得られるカウントと異なる可能性が高い。大きいサイ
ズのETM10はARM10200テストチップに挿入
されるものである。各カテゴリーにおけるETM9用の
リソースの対応する数は比較のために括弧内に示されて
いる。
【0131】
【表15】
【図面の簡単な説明】
【図1】オンチップトレーシング機構を提供するデータ
処理システムを略図で示す。
【図2】データをトレーシングする際のデータアクセス
ミスの問題を略図で示す。
【図3】データアクセスミスを取り扱うための3つの異
なるシステムのうちの1つを略図で示す。
【図4】データアクセスミスを取り扱うための3つの異
なるシステムのうちの1つを略図で示す。
【図5】データアクセスミスを取り扱うための3つの異
なるシステムのうちの1つを略図で示す。
【図6】トレーストリガー機構を示す。
【図7】データアクセスミスに対応するように構成でき
るトレーストリガー機構の動作量を示す。
【図8】データアクセスミスに対応するように構成でき
るトレーストリガー機構の動作量を示す。
【図9】トレーシング機構およびマルチワードデータ転
送命令をサポートするデータ処理システムを略図で示
す。
【図10】マルチワードデータ転送命令を略図で示す。
【図11】マルチワードデータ転送命令およびその結果
生じるトレースデータストリームにより途中で生じるト
レーストリガーポイントを略図で示す。
【図12】オンチップトレーシングハードウェア内の制
御フローを示すフローチャートである。
【図13】図9〜12のシステムに従って発生されるト
レースデータを分析するためのシステム内で実行できる
処理オペレーションを略図で示す。
【符号の説明】
2 データ処理システム 4 集積回路 6 マイクロプロセッサコア 8 キャッシュメモリ 10 オンチップトレースモジュールコントローラ 12 オンチップトレースバッファ 14 外部メモリ 16 プロセッサコア 18 外部記憶装置
フロントページの続き (72)発明者 デイヴィッド ジェイムズ ウィリアムソ ン アメリカ合衆国 テキサス、オースティ ン、ガントクレスト ドライヴ 8113 (72)発明者 ポール ロバート ゴッチ イギリス国 ケンブリッジ、グワイダー ストリート 15エイ Fターム(参考) 5B042 GA15 GA33 HH30 MC07

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 (i)処理命令の制御によりデータ値を
    処理するようになっている処理回路と、 (ii)処理すべきデータ値を記憶するようになってい
    るメモリであり、前記処理回路は前記メモリ内に記憶さ
    れたデータ値にアクセスするためのデータアクセス命令
    に応答するものであるメモリと、 (iii)前記処理回路によって実行される処理命令お
    よび前記処理回路がアクセスするデータ値を識別するト
    レースデータストリームを発生するようになっているト
    レーシング回路とを備え、 (iv)前記データアクセス命令に対応するデータ値
    が、データミスが生じることなく前記データアクセスが
    行われた時、そのサイクルの次の処理サイクル時にアク
    セスされるようなデータミスがデータアクセス命令の結
    果生じることがあり、 (v)前記トレーシング回路は、前記データミスに応答
    して、前記データミスが生じなかった場合、前記トレー
    スデータのストリーム内の前記データ値を識別するデー
    タが位置づけられるであろう位置に、データプレースホ
    ルダーを発生し、前記データ値に対する前記アクセスが
    行われた時、前記データ値を識別する後のデータ値をト
    レースデータの前記ストリーム内の後のポイントに挿入
    する、データを処理するための装置。
  2. 【請求項2】 前記メモリが、キャッシュメモリとメイ
    ンメモリとを含み、アクセス中のデータ値が前記キャッ
    シュメモリ内に記憶されていない時にデータミスが生じ
    る、請求項1記載の装置。
  3. 【請求項3】 前記データプレイスホルダーがタグ値を
    含み、前記後のデータ値が一致タグ値を含む、請求項1
    記載の装置。
  4. 【請求項4】 複数のデータミスの結果、複数のデータ
    プレイスホルダーが発生され、対応するデータミスと異
    なる順序で後のデータ値を発生できる、請求項3記載の
    装置。
  5. 【請求項5】 前記データプレイスホルダーがその時間
    にどれだけ多くの未解決の後のデータ値を待つかを識別
    するデータを含む、請求項1記載の装置。
  6. 【請求項6】 トレースデータの前記ストリームが周期
    的同期化データを含み、前記同期化データがその時間に
    どれだけ多くの未解決の後のデータ値を待つかを識別す
    るデータを含む、請求項1記載の装置。
  7. 【請求項7】 前記トレーシング回路が、1つ以上の前
    記データ値および該データ値に関連するメモリアドレス
    に関連するトリガー状態に応答してトレーシングオペレ
    ーションを制御するようになっている、請求項1記載の
    装置。
  8. 【請求項8】 データミスが発生するデータ値に関連す
    るトリガー条件が、 (i)前記データ値とアクセスし、前記トリガー条件に
    合致することが判るまでトリガーされないか、または (ii)アクセス時に前記データ値が前記トリガー条件
    を満たすと仮定し、前記データミス時にトリガーされる
    かのいずれかとなるように、前記トレーシング回路が完
    全一致信号に応答自在である、請求項7記載の装置。
  9. 【請求項9】 前記完全一致信号がユーザーによって構
    成自在である、請求項8記載の装置。
  10. 【請求項10】 前記トリガー条件の使用に応じてハー
    ドウェア制御によって前記完全一致信号をセットする、
    請求項8記載の装置。
  11. 【請求項11】 前記完全一致信号が前記トレーシング
    回路の別の部分内に異なる値を有し、同時に双方の動作
    を生じさせるようになっている、請求項8記載の装置。
  12. 【請求項12】 (i)処理命令の制御によりデータ値
    を処理する工程と、 (ii)処理すべきデータ値を記憶する工程とを備え、
    データアクセス命令が記憶されたデータ値にアクセスす
    るようになっており、 (iii)実行された処理命令およびアクセスされたデ
    ータ値を識別するトレースデータのストリームを発生す
    る工程とを備え、 (iv)前記データアクセス命令に対応するデータ値
    が、データミスが生じることなく前記データアクセスが
    行われた時、そのサイクルの次の処理サイクル時にアク
    セスされるようなデータミスがデータアクセス命令の結
    果生じることがあり、 (v)前記トレーシング回路は、前記データミスに応答
    して、前記データミスが生じなかった場合、前記トレー
    スデータのストリーム内の前記データ値を識別するデー
    タが位置づけられるであろう位置に、データプレースホ
    ルダーを発生し、前記データ値に対する前記アクセスが
    行われた時、前記データ値を識別する後のデータ値をト
    レースデータの前記ストリーム内の後のポイントに挿入
    する、データを処理する方法。
  13. 【請求項13】 請求項12の方法に従って発生したト
    レースデータのストリームを分析するように、データ処
    理装置を制御するためのコンピュータプログラムを支持
    するコンピュータプログラム製品。
JP2001384402A 2001-02-01 2001-12-18 順序外データのトレーシング Expired - Lifetime JP4038372B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US773387 1991-10-08
US09/773,387 US7093236B2 (en) 2001-02-01 2001-02-01 Tracing out-of-order data

Publications (2)

Publication Number Publication Date
JP2002244881A true JP2002244881A (ja) 2002-08-30
JP4038372B2 JP4038372B2 (ja) 2008-01-23

Family

ID=25098097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001384402A Expired - Lifetime JP4038372B2 (ja) 2001-02-01 2001-12-18 順序外データのトレーシング

Country Status (3)

Country Link
US (2) US7093236B2 (ja)
JP (1) JP4038372B2 (ja)
GB (1) GB2371897B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107004A (ja) * 2004-10-04 2006-04-20 Nec Electronics Corp トレース制御回路、マイクロプロセッサ及びトレース制御方法
KR20130123355A (ko) * 2010-06-21 2013-11-12 에이알엠 리미티드 추론적 명령 실행 및 비순차 데이터 전달을 지원하는 데이터 처리 유닛의 활동도를 트레이스하는 시스템 및 방법

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754852B2 (en) * 2000-03-02 2004-06-22 Texas Instruments Incorporated Debug trigger builder
US7287147B1 (en) * 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
US7124072B1 (en) 2001-04-30 2006-10-17 Mips Technologies, Inc. Program counter and data tracing from a multi-issue processor
US7185234B1 (en) * 2001-04-30 2007-02-27 Mips Technologies, Inc. Trace control from hardware and software
US7181728B1 (en) 2001-04-30 2007-02-20 Mips Technologies, Inc. User controlled trace records
US7178133B1 (en) 2001-04-30 2007-02-13 Mips Technologies, Inc. Trace control based on a characteristic of a processor's operating state
US7168066B1 (en) * 2001-04-30 2007-01-23 Mips Technologies, Inc. Tracing out-of order load data
US7069544B1 (en) 2001-04-30 2006-06-27 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data
US7134116B1 (en) 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
US7065675B1 (en) 2001-05-08 2006-06-20 Mips Technologies, Inc. System and method for speeding up EJTAG block data transfers
CA2347647A1 (en) * 2001-05-15 2002-11-15 Ibm Canada Limited-Ibm Canada Limitee Storing and restoring snapshots of a computer process
US7231551B1 (en) 2001-06-29 2007-06-12 Mips Technologies, Inc. Distributed tap controller
US7043668B1 (en) 2001-06-29 2006-05-09 Mips Technologies, Inc. Optimized external trace formats
US6834365B2 (en) * 2001-07-17 2004-12-21 International Business Machines Corporation Integrated real-time data tracing with low pin count output
US7080289B2 (en) * 2001-10-10 2006-07-18 Arm Limited Tracing multiple data access instructions
US6990569B2 (en) * 2001-10-25 2006-01-24 Arm Limited Handling problematic events in a data processing apparatus
US6615371B2 (en) * 2002-03-11 2003-09-02 American Arium Trace reporting method and system
US7055139B2 (en) * 2002-03-28 2006-05-30 Hewlett-Packard Development Company, L.P. Multiprocess debugging using multiple conventional debuggers
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
US7162552B2 (en) * 2002-11-22 2007-01-09 Texas Instruments Incorporated Programmable extended compression mask for dynamic trace
US20040103399A1 (en) * 2002-11-22 2004-05-27 Manisha Agarwala Data trace compression map
US7099817B2 (en) * 2002-11-22 2006-08-29 Texas Instruments Incorporated Stalling CPU pipeline to prevent corruption in trace while maintaining coherency with asynchronous events
US20040128597A1 (en) * 2002-12-17 2004-07-01 Swoboda Gary L. Apparatus and method for selecting program halts in an unprotected pipeline at non-interruptible points in code execution
US7299386B2 (en) * 2002-12-17 2007-11-20 Texas Instruments Incorporated Apparatus and method for detecting address characteristics for use with a trigger generation unit in a target processor
CA2424006A1 (en) * 2003-03-28 2004-09-28 Ibm Canada Limited - Ibm Canada Limitee A technique to generically manage extensible correlation data
US7331003B2 (en) * 2003-05-09 2008-02-12 Hewlett-Packard Development Company, L.P. Match circuit for performance counter
US7159101B1 (en) 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
ES2231042B2 (es) * 2003-08-06 2006-08-16 Hewlett-Packard Development Company, L.P. Circuito de adaptacion para contador de comportamiento.
US20050071608A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for selectively counting instructions and data accesses
US7395527B2 (en) * 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US7937691B2 (en) 2003-09-30 2011-05-03 International Business Machines Corporation Method and apparatus for counting execution of specific instructions and accesses to specific data locations
US7373637B2 (en) 2003-09-30 2008-05-13 International Business Machines Corporation Method and apparatus for counting instruction and memory location ranges
US20050071816A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically count instruction execution for applications
US7225309B2 (en) * 2003-10-09 2007-05-29 International Business Machines Corporation Method and system for autonomic performance improvements in an application via memory relocation
US7421681B2 (en) 2003-10-09 2008-09-02 International Business Machines Corporation Method and system for autonomic monitoring of semaphore operation in an application
US8381037B2 (en) 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US20050086455A1 (en) * 2003-10-16 2005-04-21 International Business Machines Corporation Method and apparatus for generating interrupts for specific types of instructions
US7257657B2 (en) * 2003-11-06 2007-08-14 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses for specific types of instructions
US7458078B2 (en) * 2003-11-06 2008-11-25 International Business Machines Corporation Apparatus and method for autonomic hardware assisted thread stack tracking
US7328429B2 (en) * 2003-11-13 2008-02-05 Intel Corporation Instruction operand tracing for software debug
US7197586B2 (en) * 2004-01-14 2007-03-27 International Business Machines Corporation Method and system for recording events of an interrupt using pre-interrupt handler and post-interrupt handler
US7496908B2 (en) * 2004-01-14 2009-02-24 International Business Machines Corporation Method and apparatus for optimizing code execution using annotated trace information having performance indicator and counter information
US7293164B2 (en) * 2004-01-14 2007-11-06 International Business Machines Corporation Autonomic method and apparatus for counting branch instructions to generate branch statistics meant to improve branch predictions
US7114036B2 (en) * 2004-01-14 2006-09-26 International Business Machines Corporation Method and apparatus for autonomically moving cache entries to dedicated storage when false cache line sharing is detected
US7290255B2 (en) * 2004-01-14 2007-10-30 International Business Machines Corporation Autonomic method and apparatus for local program code reorganization using branch count per instruction hardware
US7895382B2 (en) 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
US7082486B2 (en) * 2004-01-14 2006-07-25 International Business Machines Corporation Method and apparatus for counting interrupts by type
US7093081B2 (en) 2004-01-14 2006-08-15 International Business Machines Corporation Method and apparatus for identifying false cache line sharing
US7526757B2 (en) * 2004-01-14 2009-04-28 International Business Machines Corporation Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program
US7392370B2 (en) * 2004-01-14 2008-06-24 International Business Machines Corporation Method and apparatus for autonomically initiating measurement of secondary metrics based on hardware counter values for primary metrics
US7415705B2 (en) 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
US7181599B2 (en) 2004-01-14 2007-02-20 International Business Machines Corporation Method and apparatus for autonomic detection of cache “chase tail” conditions and storage of instructions/data in “chase tail” data structure
US7987453B2 (en) * 2004-03-18 2011-07-26 International Business Machines Corporation Method and apparatus for determining computer program flows autonomically using hardware assisted thread stack tracking and cataloged symbolic data
US8135915B2 (en) 2004-03-22 2012-03-13 International Business Machines Corporation Method and apparatus for hardware assistance for prefetching a pointer to a data structure identified by a prefetch indicator
US7299319B2 (en) 2004-03-22 2007-11-20 International Business Machines Corporation Method and apparatus for providing hardware assistance for code coverage
US7480899B2 (en) 2004-03-22 2009-01-20 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for code coverage
US7526616B2 (en) 2004-03-22 2009-04-28 International Business Machines Corporation Method and apparatus for prefetching data from a data structure
US7421684B2 (en) * 2004-03-22 2008-09-02 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for data coverage
US7296130B2 (en) 2004-03-22 2007-11-13 International Business Machines Corporation Method and apparatus for providing hardware assistance for data access coverage on dynamically allocated data
US20050240727A1 (en) * 2004-04-23 2005-10-27 Shishir Shah Method and system for managing storage area networks
US7669190B2 (en) * 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
US20060064531A1 (en) * 2004-09-23 2006-03-23 Alston Jerald K Method and system for optimizing data transfer in networks
JP2006120071A (ja) * 2004-10-25 2006-05-11 Matsushita Electric Ind Co Ltd プロセッサおよび開発支援装置
US7886198B2 (en) * 2005-05-16 2011-02-08 Texas Instruments Incorporated Method and system of identifying overlays used by a program
US7774763B1 (en) 2005-06-22 2010-08-10 Emc Corporation Techniques for forming a multi-tasking executable program and using the same
JP4832125B2 (ja) * 2006-03-15 2011-12-07 富士通セミコンダクター株式会社 性能解析装置、性能解析方法、性能解析プログラム、および記録媒体
US8087002B2 (en) * 2006-04-04 2011-12-27 Tibco Software Inc. Method and system for providing a visual debugger for an interpreted statistical language
US20080155235A1 (en) * 2006-10-02 2008-06-26 Dewey Douglas W Instructions Capable of Preventing Incorrect Usage of UContext Functions in a Multi-Process Environment
US8533530B2 (en) 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8380966B2 (en) * 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8341604B2 (en) * 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
US8370806B2 (en) * 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
US7743296B1 (en) * 2007-03-26 2010-06-22 Lattice Semiconductor Corporation Logic analyzer systems and methods for programmable logic devices
US7536615B1 (en) * 2007-03-26 2009-05-19 Lattice Semiconductor Corporation Logic analyzer systems and methods for programmable logic devices
US20080244327A1 (en) * 2007-03-28 2008-10-02 Seagate Technology Llc Trace device for monitoring electronic device
US8484516B2 (en) * 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
US7783865B2 (en) * 2007-08-01 2010-08-24 International Business Machines Corporation Conditional data watchpoint management
JP2009059005A (ja) * 2007-08-29 2009-03-19 Panasonic Corp デバッグシステム、デバッグ装置および方法
GB2456813B (en) * 2008-01-24 2012-03-07 Advanced Risc Mach Ltd Diagnostic context construction and comparison
US20090222797A1 (en) * 2008-02-29 2009-09-03 Infineon Technologies Ag Apparatus and method for providing a trigger
US8122437B2 (en) * 2008-03-31 2012-02-21 Freescale Semiconductor, Inc. Method and apparatus to trace and correlate data trace and instruction trace for out-of-order processors
US20100083237A1 (en) * 2008-09-26 2010-04-01 Arm Limited Reducing trace overheads by modifying trace operations
US8438547B2 (en) * 2009-05-05 2013-05-07 Freescale Semiconductor, Inc. Address translation trace message generation for debug
US8589738B2 (en) * 2009-05-05 2013-11-19 Freescale Semiconductor, Inc. Program trace message generation for page crossing events for debug
US8490061B2 (en) * 2009-05-07 2013-07-16 International Business Machines Corporation Profiling application performance according to data structure
US9135144B2 (en) * 2009-10-22 2015-09-15 Freescale Semiconductor, Inc. Integrated circuits and methods for debugging
US9582396B2 (en) * 2009-10-23 2017-02-28 Novell, Inc. Techniques for generating an executable debugger script
US9348688B2 (en) 2010-06-21 2016-05-24 Arm Limited Correlating trace data streams
GB2481380B (en) 2010-06-21 2018-05-16 Advanced Risc Mach Ltd Correlating trace data streams
GB2497736A (en) * 2011-12-16 2013-06-26 St Microelectronics Ltd Hardware monitor with context selector for selecting from multiple contexts
US8924796B2 (en) * 2012-03-22 2014-12-30 Intel Mobile Communications GmbH System and method for processing trace information
US8954809B2 (en) * 2012-07-25 2015-02-10 Texas Instruments Incorporated Method for generating descriptive trace gaps
US10339229B1 (en) 2013-05-31 2019-07-02 Cadence Design Systems, Inc. Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
US9195457B1 (en) * 2014-06-11 2015-11-24 Amazon Technologies, Inc. Interactive application programming interface documentation
GB2530050B (en) * 2014-09-10 2021-07-21 Advanced Risc Mach Ltd Debugging in a data processing apparatus
US9632907B2 (en) * 2014-12-10 2017-04-25 Intel Corporation Tracking deferred data packets in a debug trace architecture
US11487561B1 (en) 2014-12-24 2022-11-01 Cadence Design Systems, Inc. Post simulation debug and analysis using a system memory model
US10802852B1 (en) * 2015-07-07 2020-10-13 Cadence Design Systems, Inc. Method for interactive embedded software debugging through the control of simulation tracing components
US10509713B2 (en) 2015-08-18 2019-12-17 Telefonaktiebolaget Lm Ericsson (Publ) Observation by a debug host with memory model and timing offset calculation between instruction and data traces of software execution carried on in a debug target having a main memory and a cache arrangement
US10095603B2 (en) 2017-01-09 2018-10-09 International Business Machines Corporation Pre-fetching disassembly code for remote software debugging
US10599555B2 (en) * 2017-09-20 2020-03-24 Texas Instruments Incorporated Context-sensitive debug requests for memory access
US20190354369A1 (en) * 2018-05-15 2019-11-21 Sandisk Technologies, Llc Computing architecture to provide simplified post-silicon debugging capabilities
US10747543B2 (en) 2018-12-28 2020-08-18 Marvell Asia Pte, Ltd. Managing trace information storage using pipeline instruction insertion and filtering
US11928045B1 (en) * 2021-04-21 2024-03-12 Cadence Design Systems, Inc. System and method for non-intrusive debugging at an embedded software breakpoint
US20230185651A1 (en) * 2021-12-10 2023-06-15 Arm Limited Post-manufacturing adaptation of a data processing apparatus

Family Cites Families (42)

* 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
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
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
JP2777496B2 (ja) * 1991-02-28 1998-07-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムにおいてマルチプロセスをプロファイリングする際の使用方法
EP0503514B1 (en) 1991-03-11 1998-11-18 Silicon Graphics, Inc. Backward-compatible computer architecture with extended word size and address space
US5347652A (en) * 1991-06-26 1994-09-13 International Business Machines Corporation Method and apparatus for saving and retrieving functional results
US5265254A (en) * 1991-08-14 1993-11-23 Hewlett-Packard Company System of debugging software through use of code markers inserted into spaces in the source code during and after compilation
US5379432A (en) * 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system
US5555392A (en) * 1993-10-01 1996-09-10 Intel Corporation Method and apparatus for a line based non-blocking data cache
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
US5659785A (en) * 1995-02-10 1997-08-19 International Business Machines Corporation Array processor communication architecture with broadcast processor instructions
US5745729A (en) * 1995-02-16 1998-04-28 Sun Microsystems, Inc. Methods and apparatuses for servicing load instructions
US5541920A (en) * 1995-06-15 1996-07-30 Bay Networks, Inc. Method and apparatus for a delayed replace mechanism for a streaming packet modification engine
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
US5978886A (en) * 1997-01-17 1999-11-02 Hewlett-Packard Company Method and apparatus for duplicating tag systems to maintain addresses of CPU data stored in write buffers external to a cache
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
US6077311A (en) * 1997-07-09 2000-06-20 Silicon Graphics, Inc. Method and apparatus for extraction of program region
US6175913B1 (en) 1997-09-12 2001-01-16 Siemens Ag Data processing unit with debug capabilities using a memory protection unit
US6125400A (en) * 1997-11-10 2000-09-26 International Business Machines Corporation Method and system of running object oriented programs across a network through compression and distillation of remote method invocation
US6000044A (en) * 1997-11-26 1999-12-07 Digital Equipment Corporation Apparatus for randomly sampling instructions 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
US5923872A (en) * 1997-11-26 1999-07-13 Digital Equipment Corporation Apparatus for sampling instruction operand or result values in a processor pipeline
US6052802A (en) * 1997-12-31 2000-04-18 Intel Corporation Apparatus and method for cycle accounting in microprocessors
US6067644A (en) * 1998-04-15 2000-05-23 International Business Machines Corporation System and method monitoring instruction progress within a processor
JP3258284B2 (ja) 1998-11-10 2002-02-18 セイコーインスツルメンツ株式会社 半導体回路
US6247097B1 (en) * 1999-01-22 2001-06-12 International Business Machines Corporation Aligned instruction cache handling of instruction fetches across multiple predicted branch instructions
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
US6681321B1 (en) * 2000-04-20 2004-01-20 International Business Machines Corporation Method system and apparatus for instruction execution tracing with out of order processors

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107004A (ja) * 2004-10-04 2006-04-20 Nec Electronics Corp トレース制御回路、マイクロプロセッサ及びトレース制御方法
JP4608276B2 (ja) * 2004-10-04 2011-01-12 ルネサスエレクトロニクス株式会社 トレース制御回路、マイクロプロセッサ及びトレース制御方法
KR20130123355A (ko) * 2010-06-21 2013-11-12 에이알엠 리미티드 추론적 명령 실행 및 비순차 데이터 전달을 지원하는 데이터 처리 유닛의 활동도를 트레이스하는 시스템 및 방법
KR101708170B1 (ko) 2010-06-21 2017-02-20 에이알엠 리미티드 추론적 명령 실행 및 비순차 데이터 전달을 지원하는 데이터 처리 유닛의 활동도를 트레이스하는 시스템 및 방법

Also Published As

Publication number Publication date
US20020147965A1 (en) 2002-10-10
JP4038372B2 (ja) 2008-01-23
US7093236B2 (en) 2006-08-15
US20020184477A1 (en) 2002-12-05
GB2371897A (en) 2002-08-07
GB2371897B (en) 2004-10-06
US7020768B2 (en) 2006-03-28
GB0125095D0 (en) 2001-12-12

Similar Documents

Publication Publication Date Title
JP4038372B2 (ja) 順序外データのトレーシング
US7080289B2 (en) Tracing multiple data access instructions
JP4225851B2 (ja) データ処理装置用トレース要素生成システム
US7197671B2 (en) Generation of trace elements within a data processing apparatus
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
JP3846939B2 (ja) データプロセッサ
KR100350568B1 (ko) 디버그기능을수행하기위한데이타처리시스템및방법
KR100394897B1 (ko) 데이터처리장치및데이터처리장치제공방법
US7093108B2 (en) Apparatus and method for efficiently incorporating instruction set information with instruction addresses
JP2003085000A (ja) トレース情報生成装置およびその方法
JPH09218803A (ja) データプロセッサ
JPH05204709A (ja) プロセッサ
JP2002163127A (ja) トレース制御回路
JP2000207247A (ja) コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
WO2008042584A2 (en) Apparatus and method for tracing instructions with simplified instruction state descriptors
JP2001051874A (ja) マイクロコンピュータ
JPS62179033A (ja) 集積回路マイクロプロセツサ
GB2389931A (en) Selective generation of trace elements
JP2004192021A (ja) マイクロプロセッサ
JP2000020488A (ja) コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
JPH08255476A (ja) データ処理システムにおけるメモリ拡張スタック装置および方法
KR100304849B1 (ko) 데이터 트랜잭션을 파이프라인 방식으로 합체하는 방법 및 메카니즘
JP2002535749A (ja) 複数の命令ソースからの命令を実行するプロセッサおよび方法
JP3349911B2 (ja) マイクロプロセッサ及びその開発支援装置
JP2002541582A (ja) エミュレータシステム内のユーザメモリを更新する方法およびシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060725

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061025

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070509

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070828

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071003

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: 20071023

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071105

R150 Certificate of patent or registration of utility model

Ref document number: 4038372

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101109

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111109

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: 20111109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121109

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: 20121109

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131109

Year of fee payment: 6

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