JP2004013896A - データ処理システムにおける命令のトレーシング - Google Patents

データ処理システムにおける命令のトレーシング Download PDF

Info

Publication number
JP2004013896A
JP2004013896A JP2003059371A JP2003059371A JP2004013896A JP 2004013896 A JP2004013896 A JP 2004013896A JP 2003059371 A JP2003059371 A JP 2003059371A JP 2003059371 A JP2003059371 A JP 2003059371A JP 2004013896 A JP2004013896 A JP 2004013896A
Authority
JP
Japan
Prior art keywords
trace
instruction
data
data processing
processing circuit
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
JP2003059371A
Other languages
English (en)
Other versions
JP4233893B2 (ja
JP2004013896A5 (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
Application filed by ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2004013896A publication Critical patent/JP2004013896A/ja
Publication of JP2004013896A5 publication Critical patent/JP2004013896A5/ja
Application granted granted Critical
Publication of JP4233893B2 publication Critical patent/JP4233893B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F11/348Circuit details, i.e. tracer hardware
    • 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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • 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
    • G06F11/3476Data logging
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】連続する処理サイクルにわたって実行され、命令の実行に対応する1つ以上のトレース事象とプログラム命令の実行以外のトレース事象に対応する1つ以上のトレース事象とを含む一連のトレース事象を表す命令トレースワードを提供する。
【解決手段】データ処理装置2内のトレーシング回路8がプログラム命令の実行を表すトレース事象W,E,Nを符号化した命令トレースワードを含むトレースデータを生成する。命令トレースワードは所定の長さを有し、それぞれが1つあるいはそれ以上のプログラム命令の実行とプログラム命令ワードの実行以外の1つあるいはそれ以上のトレース事象との組み合わせに対応する一連のトレース事象を表す。特に例を挙げると、条件コードを満たさないプログラム命令によって終了する一連の実行されるプログラム命令あるいは実行されるプログラム命令によって終了する一連の待ち処理サイクルがある。
【選択図】   図2

Description

【0001】
【発明の属する技術分野】
本発明はデータ処理システムに関する。より詳細には、本発明はデータ処理回路によって実行中のプログラム命令のトレーシングに関する。
【0002】
【従来の技術】
データ処理システムの複雑化に伴って、たとえばシステムデバッギング等の一部としてかかるシステムの挙動を分析する包括的で有効なメカニズムを設けることが重要となってきている。さらに、データ処理システムの高速化の結果、通常それに含まれる集積素子の数も増大し、それに伴い、生成されるトレースデータの量およびその生成速度も増大している。
【0003】
データ処理システム用にオンチップトレース装置を設けることが知られており、これは集積回路にその回路の動作をトレースし、トレースデータを転送する、あるいはこのトレースデータをバッファし後に転送するための専用回路を設けるものである。ここで、生成可能なトレースデータの量が大きく、そのトレースデータのバッファリングに要するオンチップメモリの増大および/またはトレース機能に専用のピンの数の増大といった、チップからのトレースデータの送出に要する装置の増大が発生するという制約がある。そこで、生成されるトレースデータの量を低減する対策がきわめて有益となる。
【0004】
ある特定の命令が実行されているかどうかを示す命令トレースデータが命令トレースワードで符号化されるシステムを設けることが知られている。これは、分岐命令で終わる順次の命令の実行を符号化することによって行われる。したがって、4つの命令の順次実行の後に分岐命令が続くことの検出がある特定の命令トレースワードを符号化する。
【0005】
【発明が解決しようとする課題】
本発明はデータ処理装置を提供するものであり、前記装置は、
(i)一連の処理サイクルにわたってプログラム命令に応じたデータ処理動作を実行するデータ処理回路と、
(ii)前記プログラム命令に応じた前記データ処理動作を示す命令トレースデータを生成するトレース回路とからなり、
(iii)前記命令トレースデータは、前記データ処理回路によって連続する処理サイクルにわたって実行される処理から発生する一連のトレース事象を符号化した所定の長さの命令トレースワードを少なくとも1つ含み、前記一連のトレース事象は、
(iv)前記データ処理回路によるプログラム命令の実行に対応する少なくとも1つのトレース事象と、
(v)前記データ処理回路によるプログラム命令の実行以外に対応する少なくとも1つのトレース事象とを含む。
【0006】
【課題を解決するための手段】
本発明は、命令トレースワードとしての分岐によって終了する一連の実行を符号化する従来技術には、手書きあるいはコンパイルされたコードに短いループがよく用いられまた、かかるループの最後の分岐間の実行は比較的短いため、命令トレースワードによってこれらのループを圧縮された形態で表現することは非効率的であるという問題があるとの認識に立つものである。この問題に鑑み、本発明は、連続する処理サイクルにわたって実行され、命令の実行に対応する1つ以上のトレース事象とプログラム命令の実行以外のトレース事象に対応する1つ以上のトレース事象とを含む一連のトレース事象を表す命令トレースワードを提供することでこれを解決する。
【0007】
一方、他に多くの方法が可能であり、好適な方法の1つとして、プログラム命令の実行に対応する1つ以上のトレース事象と実行されない条件付プログラム命令に対応するトレース事象との組み合わせからなるトレース事象のシーケンスを符号化するという方法がある。これは多くの実在のシステムにおける命令トレース動作を符号化する効率的かつ有効な方法であることがわかっている。
【0008】
実行されない条件付プログラム命令は実行される1つ以上のプログラム命令の前後いずれでもよいことは明らかであるが、本発明の実施例においては、実行されない条件付プログラム命令は実行される1つ以上のプログラム命令の後に続くものとする。これによって、実施が容易となる。
【0009】
プログラム命令へのデータ処理回路の応答を現す他の好適な方法として、待ち処理サイクルに対応する1つ以上の命令トレースワードと実行されるプログラム命令に対応するトレース事象との組み合わせからなるトレース事象シーケンスを符号化する命令トレースワードを使用する方法がある。
【0010】
データ処理システムの複雑化、特に多数の異なる機能素子を用いたシステムオンチップ設計が多く用いられるようになった結果、サイクルアキュレート(cycle−accurate)な命令トレーシングを実現しうることが強く求められており、本発明の方法は、かかるサイクルアキュレートなトレーシングを命令トレースワードで効率的に表すことを可能にする。
【0011】
かかる符号化は、実行されるプログラム命令に対応するトレース事象が、トレースされる1つ以上の待ちサイクルの後に続くようにすることによって間単に実施することができる。
【0012】
パイプライン処理システムにおいては、命令パイプライン内の異なる地点で複数のプログラム命令が有効に並列処理される。本発明の実施例では、プログラム命令が処理パイプライン内の所定の位置に到達したとき、そのプログラム命令に対応するトレース事象を処理することによってこれに対処する。
【0013】
これはその命令の取り出し、復号、実行、あるいはパイプラインの他の地点でありうることは明らかである。プログラム命令はパイプライン内の所定の位置に到達した後打ち切られる場合があり、これは命令の実行が実際には完了しなかったことを示すデータを挿入する必要のある実行に対応するものと解釈される。
【0014】
特に、パイプライン内でプログラム命令の実行に対応するとみなしうる簡便な位置としては、パイプラインの実行段内におけるそのプログラム命令の実行が開始される位置である。パイプライン内でプログラム命令の実行に対応するとみなしうる簡便な他の位置としては、パイプラインの実行段内におけるそのプログラム命令の実行が終了する位置がある。
【0015】
命令トレースデータは他のトレースデータとは別のストリームとして設けることができることは明らかであるが、本発明の実施例ではデータ処理回路によって(たとえば、入力あるいは出力として)処理されるデータ値を示すデータトレースデータを生成し、このデータトレースデータと命令トレースデータとを共通のデータストリーム中でインターリーブする。これには、システムからのトレースデータの転送に要するリソースが低減され、また命令トレースデータをデータトレースデータと相関させることによって、データ処理回路の動作をより詳細に分析しうるという利点がある。
【0016】
データ処理回路は様々な形態をとりうることは明らかであるが、本発明の技術は比較的複雑なプログラム命令と、プロセッサコアに関係付けられたかかる命令への応答とに関するトレースデータの生成に特に適している。
【0017】
トレース回路は命令トレースデータを生成後ただちにシステムから直接転送するようにすることができるが、本発明の実施例ではトレース回路は命令トレースデータをバッファするトレースデータメモリを含む。これによってトレースデータを実動速度で迅速に収集することができ、また本発明の技術による命令トレースデータの符号化によれば、かかるトレースデータメモリを効率的に利用することができる。
【0018】
また、本発明はデータ処理方法を提供するものであり、その方法は、
(i)プログラム命令に応じてデータ処理回路の一連の処理サイクルにわたってデータ処理動作を実行し、
(ii)前記プログラム命令に応じた前記データ処理回路の動作を示す命令トレースデータを生成し、
(iii)前記命令トレースデータは、前記データ処理回路によって連続する処理サイクルにわたって実行される処理から発生する一連のトレース事象を符号化した所定の長さの命令トレースワードを少なくとも1つ含み、前記一連のトレース事象は、
(iv)前記データ処理回路によるプログラム命令の実行に対応する少なくとも1つのトレース事象と、
(v)前記データ処理回路によるプログラム命令の実行以外に対応する少なくとも1つのトレース事象とを含む。
また、上述した命令トレースデータ生成技術を補足する観点から、本発明は生成されたかかるデータを分析するメカニズムおよび技術を提供する。
【0019】
したがって、本発明はまたトレースデータ分析装置を提供し、前記装置は、
(i)データ処理回路によって連続する処理サイクルにわたって実行される処理から発生する一連のトレース事象を符号化した所定の長さの命令トレースワードを少なくとも1つ含む命令トレースデータに応答するアナライザロジックからなり、前記アナライザロジックは、
(ii)前記データ処理回路によるプログラム命令の実行に対応する少なくとも1つのトレース事象と、
(iii)前記データ処理回路によるプログラム命令の実行以外に対応する少なくとも1つのトレース事象とを含む一連のトレース事象を表す命令トレースワードを識別する。
【0020】
生成されたトレースデータの分析はまた分析の方法とみなすことができ、適当なコンピュータプログラムの制御のもとに動作する汎用コンピュータを用いて簡便に実行することができる。
【0021】
本発明の上記の目的、特徴および効果、またその他の目的、特徴および効果は以下の実施例の詳細な説明および添付図面から明らかとなろう。
【0022】
【発明の実施の形態】
図1はメモリ6に記憶されたプログラム命令を実行するプロセッサコア4を内蔵するシステムオンチップ集積回路2を示す。メモリ6には実行すべきプログラム命令とプロセッサコア4への入力として用いられ、プロセッサコア4からの出力として生成されるデータ値の両方が記憶される。トレーシング回路8はプロセッサコア4および集積回路2の他の部分に関係付けられており、各回路の動作を示すとレースデータを生成する。かかるトレーシング回路8の一般的機能については、英国ケンブリッジのARM社のETM製品の機能に準じるものとする。かかるETM回路はトレーシングを開始するためのトリガポイント等のオプションや、命令とデータの両方をトレースする機能を有する。本技術は命令トレースデータをかかるシステム内で表現する方法の改良に関する。
【0023】
トレーシング回路8によって生成されるトレースデータは、バッファメモリ10に記憶される。このメモリはトレースデータメモリとして機能し、生成されるトレースデータが適当なインターフェース回路を介して集積回路2から分析コンピュータ12に送出される前に、通常は最高速度でこれを一時記憶する。バッファメモリ10の一般的な動作については、英国ケンブリッジのARM社の埋め込み型トレースバッファ(ETB)製品の提供する機能に準じるものとする。
【0024】
簡略化のため図1には示さないが、集積回路2はシステムオンチップ設計の一部としてその他多くの機能素子を有することは明らかであり、かかる異なる要素の動作を詳細かつ効率的にトレースすることはシステムオンチップ設計全体の開発およびデバッギングにとって非常に有益である。
【0025】
図2はプロセッサコア4によって実行される一連のプログラム命令(この場合ARM命令)を示す。トレーシングはユーザーの条件に応じて、サイクルノンアキュレートモードあるいはサイクルアキュレートモードで実行される。サイクルアキュレートモードは、より多くの情報を生成し、待ち状態が符号化されるように、この情報を表すためにより大きなスペースを要する。
【0026】
命令トレースワードで表される命令処理動作のトレース事象をアトム(atom)と呼び、アトムはさまざまな形態をとりうる。ノンサイクルアキュレートモードでトレースされるアトムは、ある特定の命令が実行されたこと、あるいはある特定の条件付命令がその条件を満たさないために実行されなかったことを示すものである。したがって、図2の例ではMOV命令およびSUBS命令の両方が実行されてE個のアトムが得られ、ADDNE命令は不等条件コードを満たさないため実行されない。2つの命令の実行とそれに続く条件不満足によるADDNE命令の不実行とに対応するトレース事象シーケンスは符号化すべきシーケンスとして取り扱われ、所定の長さの命令トレースワードとして表される。
【0027】
その後分岐命令Bが実行され、処理はLDR命令に移行する。LDR命令が実行され、データワード<data1>が転送される。B命令とLDR命令の実行は、これらを複合したデータストリームに埋め込まれたあるデータ事象の発生によって終了する連続する2つの実行として取り扱われる。
【0028】
最後の2つの命令は、実行されるCMP命令と実行されないBEQ命令であり、BEQ命令は等条件を満たさず、したがってこの命令が実行されないため分岐が発生する。これらE個およびN個のアトムはシーケンスとして取り扱われ、命令トレースワードENとして符号化される。
【0029】
サイクルアキュレートモードでも同じ命令シーケンスが実行される。このモードのアトムには、ある命令が実行され処理サイクルを消費することを示すWEアトム、ある命令が条件を満足せず実行されないが処理サイクルを消費することを示すWNアトム、およびたとえば多処理サイクル命令のWEアトムに待ちサイクルが設けられることを示すWアトムがある。
【0030】
最初の3つの命令はWEWEWNを表す命令トレースワードとして符号化される。分岐命令Bは3つの処理サイクルを消費する。最初のサイクルはWEサイクルであり、それ自体の命令トレースワードとして符号化される。次の2つのサイクルは待ちサイクルであり、次のLDR命令のWEサイクルと組み合わせられ、WWWEを表す命令トレースワードとして符号化される。最後の2つの命令はWEWNを表す命令トレースワードとして符号化される。
【0031】
命令トレースワードの詳細な符号化はさまざまな形態をとりうることは明らかであるが、使用できる符号化の一例を次に説明する。
【0032】
1 P−ヘッダ
1.1 初めに
ここでは、(上述した命令トレースワードを用いた)ETMv3におけるプロトコル変更のすべてを説明する。ETMv3は(英国ケンブリッジのARM社の提供する)ETMv2に対する互換性を有しない。
【0033】
p−ヘッダはETMv2パイプスタットによって現在与えられる情報からなり、他のデータと同じパケットストリームに現れる。その意味を正確に記述するには新たな技術を導入しなければならない。ETMv2中の16のパイプスタットは以下の情報を表す。
−命令がいつ実行されるか
−実行されるそれぞれの命令が条件コードをパスしたか否か
−データがいつFIFOに入れられたか
−上述の事象がそれぞれどのサイクルで発生したか
−トリガの発生
−トレース捕捉をいつ不能にすべきか
【0034】
分岐ファントムパイプスタットはあるサイクルで2つの命令が実行されたことを示すものとみなすことができる。
【0035】
ETMv3は不能化されたトリガとトレースを示す代替的なメカニズムを提供する。それらは、ここでの目的上それぞれパイプスタットとWTに代わるものとみなすべきものである。トレースストリームに現れたデータは常に直近のサイクルまたは命令に対応する。その結果、それに続くデータがあるかどうかを示す必要はなく、したがって残る14のパイプスタットをさらに7つの可能性に絞り込むことができる。それらは以下の3つのアトムの組み合わせを表すものと見ることができる。
−W:サイクルの境界(すべてのパイプスタットはこれを表す)
−E:条件コードをパスした命令
−N:条件コードを満たさなかった命令
【0036】
これらをマッピングすると次のようになる。
Figure 2004013896
【0037】
1.2 エンコード
1.2.1 P−ヘッダの意味
次に、かかるパイプスタットのシーケンスをこれら3つのアトムのシーケンスとして表すことができる。サイクルアキュレートなトレーシングが要求されない場合、Wアトムを除くことによってよりわかりやすいストリームを生成することができる。この場合、ほとんどの命令が条件コードを満たすため、データトレーシングが不能化される場合、Eのストリングが発生する可能性が高い。データトレーシングがイネーブルされると、トレースストリームへのデータの挿入を可能にするためにこのシーケンスを終了しなければならない。しかし、この場合、データトレースのために生成されるトレース量がいずれにしてもパイプスタットのトレースを上回る。サイクルアキュレートなトレーシングが要求される場合、連続するサイクルで実行される命令の場合のWEのストリングと同様にWのストリングが発生する可能性が高い。
【0038】
1.2.2 配置
分岐アドレス以外のETMv2のあらゆるヘッダには、同じサイクルに後続のパケットがあったか否かを示すCビットが含まれていた。トレースストリームにパイプスタット情報を埋め込むことによって、このビットは不要になる。これによって新たなヘッダを設けるスペースが得られる。新たなヘッダの符号化は次の通りである。
【0039】
Figure 2004013896
:ビット1は最初の命令を表し、ビット2は2番目の命令を表す。
連続するサイクルにおけるEのランレングスはサイクル境界を無視する場合のランレングスより小さいことが多いため、7つ以上の命令の実行に対応するヘッダスペースが再使用される。Wの平均ランレングスはこれより小さい。
【0040】
1.2.3 p−ヘッダの不在
サイクルアキュレートモードではNで終わる多数のWを有するフォーマットはない。条件コードを満たさない命令はインターロックされそれらと前の命令との間で待ち状態が発生することはない。一般的に条件付命には、一般的に同じ条件コードを有する他の条件付命令か、条件コードを設定する命令のいずれかが先行する。これらは通常1サイクルで実行されるデータ処理命令である。
その結果、現在のところ、このフォーマットを使用する場合にヘッダスペースが正当化されることは少ないものと見られ、フォーマット1で十分である。
【0041】
1.3 サイクルカウント
サイクルカウントp−ヘッダが設けられ、それに1〜5バイトのデータが続く。各バイトのビット7の1は、分岐アドレスと同様に他のバイトが続くことを示す。このようにして最大で32ビットが出力され、不明の高位ビットはいずれも0である。この値はWの数である。非周期的なi−syncの後にこのパケットは発生した場合、これはそのi−syncの前のトレースストリームにさらに挿入すべきWの数を示す。その後このパケットが発生した場合、他のp−ヘッダと同様にWはその出力ポイントで挿入しなければならない。
【0042】
前者は必ず使用しなければならず、トレース領域間のサイクルの数を効率的に出力することができる。後者の使用は任意であり、あるトレース領域内の長いギャプをより効率的にトレースすることが可能となり、またトレース出力を不能化しながら、トレースを再度イネーブルする前に(ロードミスデータ等の)他のパケットを出力することができる。
【0043】
サイクルカウントが0である場合、これはカウンタのオーバーフローを示す。この場合、ギャップの長さは不明となる。
【0044】
1.4 p−ヘッダの生成
以下にp−ヘッダの生成規則を示す。これらの規則はアーキテクチャではなく具体化の過程で定義される。p−ヘッダは正しいアトム群にアンパックされるものであればよいが、十分ではない。これは、極端な場合、装置によって1サイクル当たり1つのp−ヘッダが生成されることを意味するが、それが好適な実施態様とはいえないことに注意しなければならない。下記の規則はETM10Jで実施されるものである。将来の実施においては改良されるものと考えられる。
【0045】
分岐ファントムとは他の実行される命令と並列する正しく予測された分岐を指し、それによってETMv2においてはPパイプスタットが作成される。これは他の命令と並列に実行されない折り返し分岐を指すものではない。
【0046】
各サイクルで、ETMは出力されるp−ヘッダを計算する。これはただちに出力されるか、あるいは次のサイクルまで保管される。保管される場合、次のサイクルで生成されるp−ヘッダはそれに基づくものでなければならず、したがってアトムが失われることはない。
【0047】
1.4.1 ノンサイクルアキュレートモード
あるサイクルで2つの命令が実行される(すなわち、分岐ファントム(phantom)が発生し)、第1の命令が条件コードを満たさない場合、フォーマット2が用いられる。これはPNパイプスタットに対応する。これ以外のすべての場合にフォーマット1が用いられる。
【0048】
フォーマット2のp−ヘッダは常にただちに出力される。保管されたフォーマット1のp−ヘッダは以下の事象が発生したときに出力される。
−条件コードを満たさなかった命令が実行される(Nビットがセットされる)
−他のデータパケットが生成される
−Eのカウント値が15に達する
−Eのカウント値が14に達し、かつ次のサイクルに分岐ファントムが含まれる
−次のサイクルに条件コードを満たさない分岐ファントムが含まれる(PNパイプスタット)
−トレーシングが不能になる
−トリガが発生する
Eのカウント値が14に達したとき常にフォーマット1のP−ヘッダを出力することが簡便である。
【0049】
次のサイクルに(条件コードを満たさない)分岐ファントムが含まれるか否かを見るための別途のパイプライン段は、かかる分岐ファントムをトレースするか否かは問題ではないため不要である。これをトレースしない場合、トレーシングは不能となり、いずれにせよp−ヘッダを出力しなければならない。
【0050】
1.4.2 サイクルアキュレートモード
条件コードを満たさない分岐ファントムが発生した場合、前述したようにフォーマット2が用いられる。1つの命令が実行された場合、フォーマット1が用いられる。命令が実行されない場合、フォーマット3が用いられる。
【0051】
フォーマット2のp−ヘッダは常にただちに出力される。保管されたフォーマット1のp−ヘッダは以下の事象が発生したときに出力される。
−条件コードを満たさなかった命令が実行される(Nビットがセットされる)
−他のデータパケットが生成される
−Eのカウント値が7に達する
−次のサイクルに分岐ファントムが含まれる(Pパイプスタット)
−トレーシングが不能になる。
−次のサイクルで命令が実行されない
−トリガが発生する
【0052】
保管されたフォーマット3のp−ヘッダは以下の事象が発生したときに出力される。
−命令が実行される
−他のデータパケットが生成される
−Eのカウント値が8に達する
−次のサイクルに分岐ファントム(Pパイプスタット)すなわち条件コードを満たさない命令が含まれる。
−トレーシングが不能になる。
−トリガが発生する
【0053】
次のサイクルで実行される命令があるか否かを見るための別途のパイプライン段は、分岐ファントムを見る場合と同じ理由で不要である。
【0054】
サイクルカウント値は非周期的なi−syncの後にのみ出力される。これは、i−syncの後の最初のサイクルで出力され、かかるサイクルでは他のトレースは出力されない。理論的には他のp−ヘッダと平行して、あるいは分岐アドレス付きで出力されうるが、実施し易いものではない。カウンタ自体はあるトレース領域の最後のp−ヘッダに続くサイクルに1(0ではない)にリセットされる。これによって、カウンタを出力に先立ってリセットすることが不要になる。
【0055】
1.5 同期
同期には、a−sync(アラインメント)、i−sync(命令フロー)、およびd−sync(データアドレス)の3つの形態がある。適正な同期を行うにはこの3つが周期的に発生しなければならない。
【0056】
1.5.1 度数
各同期形態は一般にはトレースが出力されるnサイクルにつき(すなわちTDサイクルはカウントされない)少なくとも一度は発生しなければならない。nは同期度数レジスタの値である(0×78)。この実施態様では特殊なケースでは、通常はオーバーフローを防止するために、さらに最大でnサイクル同期が遅れる可能性がある。そのアルゴリズムは実際には実施態様によって定義される。ETM10Jは(トレースが実際に出力されるサイクルだけでなく)トレーシングがイネーブルされている間のすべてのサイクルをカウントするものと考えられ、したがって必要最小限より高い頻度でトレースを出力されるときこの定義に適合する。
【0057】
これは、ツールがETMv2の場合と同様にポート幅に基づいて同期度数カウンタの値を変化させようとすることを意味することに注意しなければならない。これは、ツールはバッファ内にある設定された数の同期ポイントを設けようとすると考えられ、また幅の狭いポートを用いるより広いポートを用いるときより少ないトレースサイクル数でバッファを満たすことができるためである。
【0058】
1.5.2 A−sync(配列同期)
5つ以上のa−sync p−ヘッダ(00000000)のシーケンスが周期的に出力され、それに1つの空白p−ヘッダ(10000000)が続く。これは、47以上の0ビットに1が続くストリングと等価である。A−sync(ヌル)バイトは圧縮解除プログラムには通常無視される。
【0059】
同期をとるには、圧縮解除プログラムはこのシーケンスを探さなければならず、これ以外の方法では発生し得ない。トレース捕捉装置は通常バイトに位置合わせされるが、サブバイトポートは必ずしもそうではない。したがって、圧縮解除プログラムは必要に応じてa−syncシーケンスに続くすべてのデータを位置合わせし直す必要がある。
【0060】
次のバイトはヘッダであるが、このヘッダは任意のタイプである。すなわち、i−syncヘッダである必要はなく、他のp−ヘッダであってもよい。
【0061】
たとえば、バイトに合わせたシステムにおいては、a−syncシーケンスとそれに続く単一のEp−ヘッダは00 00 00 00 00 80 84と表すことができる。しかし、捕捉の結果として、この同じシーケンスが1ビットポートから1ビットずれると、01 00 00 00 00 40 42と表される。これはポートサイズが1、2あるいは4ビットである場合には発生せず、トレース捕捉装置はトレースの全実行過程にわたって完全に正確である。しかし、1サイクルでもあやまって捕捉すると、すなわちTRACECTLピンの不安定性のために余分なサイクルを捕捉するか1サイクルを捕捉しそこなうと、それ以降の捕捉にはすべてずれが生じる。各バイト内で新たに位置合わせを行うことによって、このエラーを局所に限定することができる。また、これによって3あるいは6ビットといったより一般的でないポートサイズで実施することが可能になる。
【0062】
1.5.2.1 桁そろえ
47の0ビットのストリングには少なくとも5つの連続するゼロバイトがなければならない。連続するゼロバイトが4つしかない場合、構成しうるゼロビットの最大長はそれらのゼロバイトについては46:32、その周囲の各バイト(それ自体はゼロではない)については7である。したがって。5以上の連続するゼロバイトが生成されないことを証明しなければならない。
【0063】
a−sync以外のゼロバイトが発生しうる場所は次の通りである(そのパケットタイプとともに示す)。
−命令アドレスの最後のバイト(分岐アドレス、i−sync)
−データアドレスの最後のバイト(通常のデータ、ロードミス発生)
−サイクルカウントの最後のバイト(サイクルカウント)
−データ(通常のデータ、ロードミスデータ)
−コンテキストID(コンテキストID、i−sync)
−LSMアドレス(LSiP i−sync)
【0064】
すべてのパケットがヘッダによって分離されていなければならないため、単一のパケット内のバイトのシーケンスのみを考慮すればよい。上記のケースには可能な最大長である5バイト以上からなるものはない。上記のリスト中二度以上発生するパケットタイプは2つだけである。そのうち、i−sync中のコンテキストIDは一方の側にi−syncヘッダを、また他の側にi−sync情報バイトを有し、そのどちらのゼロではありえないため放棄することができる。残るのは次の2つのケースである。
−通常のデータ:データアドレスの最後のバイトはゼロであり、それにゼロデータが続く。データはゼロである場合圧縮される。圧縮を行うため、ゼロでありうるのはデータの最初のバイトだけであり、したがってこのケースは起こりえない。
−LSiP i−sync:LSMアドレスがゼロであり、それにゼロ分岐アドレスが続く。これは分岐を生じなかったリセットベクトルのデータ命令を示し、それに他の例外ベクトルからこのリセットベクトルへの直接分岐が続く。これが発生する可能性はきわめて低い。さらに、LSMアドレスの前にはそれがLSiPであることを示すようにセットされたビット7を有するi−syncバイトがある。最悪の場合、つまり次のアドレスが空白p−ヘッダ(0x80)である場合、ゼロビットの最大ランが47に減少する(5つのゼロバイトが40、p−ヘッダが7)。これはいずれにせよ有効なa−syncとして機能する。理由はp−ヘッダは無視することができ、トレースはこのシーケンスに位置合わせされていることである。次のヘッダが0x80である場合、ゼロの最大ランは46に減少し、これはa−syncに対しては無効である。したがって、このケースでは偽のa−syncが発生する可能性はない。
位置合わせ同期が達成された後は、a−syncバイトは圧縮解除プログラムに無視されるが、6以上の取り消しバイトが必要である場合(8バイトのポートサイズが実施される場合)これらを取り消しバイトとして用いることはできないことに注意しなければならない。したがって、別途の取り消しコードが必要である。空白p−ヘッダをこの目的に用いることができるが、それにかわって圧縮解除エラーの検出を容易にするために0x66が選ばれている。
【0065】
1.5.3 i−sync(命令同期)
圧縮解除プログラムはa−syncシーケンスを発見すると、i−syncヘッダを探さなければならない。これをまとめると次の通りである。
Figure 2004013896
【0066】
これは以下の点を除いてETMv2におけるTFOパケットと同様である。
−i−sync p−ヘッダの後に来ること
−コンテキストIDは情報バイトの前に来ること(これは、a−sync値が5回連続して発生することを防止するためである)
−情報バイトがゼロになり、a−syncと競合することを防止するために情報バイトのビット0は常にセットされること
【0067】
ETMv2の場合と異なり、周期的なi−syncパケットが存在することは命令の実行を意味しない。むしろ、i−syncはいつでも発生しうる。命令アドレスは周期的な同期を行う場合にも常に実行すべき次の命令のアドレスを示す(従来は周期的同期は実行中の命令のアドレスを与えるものであった)。
【0068】
前述した同期頻度の2倍以内で周期的同期が発生しない場合、オーバーフローが起こる。
【0069】
1.5.4 d−sync(データアドレス同期)
これはETMv2の場合と同様に5バイトのデータアドレスを検索することによって行われる。
【0070】
1.6 他の新しいヘッダ
1.6.1 トリガ
トリガが発生すると、必要な他のヘッダとともにトリガヘッダが出力される。TPAは機構を介してトリガを検出する。
【0071】
1.6.2 無効
無効ヘッダには効果はない。これは、ポート全体を満たすだけのトレースがないときにトレースを出力しなければならない場合にトレースポートの未使用バイトに使用される。
【0072】
1.7 トレース捕捉装置(TCD)への信号
上述したように、捕捉されたトレースは純粋なビットストリームである。しかし、TCDはこの情報からどのサイクルでデータを捕捉すべきか、またいつトリガが発生するかを判断することはできない。Error! Reference source not foundおよびError! Reference source not found..の項で説明したように、この情報をTRACEDATA[0]と関連づけて有する信号TRACECTLが出力される。
【0073】
1.8 プログラマのモデルチェンジ
以下の場所にトレースポートサイズを記述するために3ビットのフィールドが設けられる。
−制御レジスタのビット6:4−使用するポートサイズの選択
−PORTSIZE出力−使用されるポートサイズを示す
【0074】
より幅の広いトレースポートを可能とするために新たな符号化が定義される。
Figure 2004013896
48ビットおよび64ビットのポートはETM10Jによってサポートされない。ある特定の装置のFIFOの幅より大きなポートサイズ(たとえば、ETM7の場合の64ビット)はそのポートサイズがFIFOの幅に等しいことを示す。かかる装置はFIFOを有しない場合もある。
【0075】
図3はノンサイクルアキュレートモードにおけるトレーシング回路8の動作の概略を示すフローチャートである。
【0076】
最初にこのモードに入った時、すなわち命令トレースワードを生成したとき、処理はステップ14に進む。このとき考察対象である命令が、同じサイクルにおいて(たとえば分岐予測の結果)他の命令として発生する条件コードを満たさない分岐ファントムであると考えられる場合、処理がステップ14に戻る前に、ステップ16においてフォーマット2の命令トレースワードの出力がトリガされる。同じサイクルにおける他の命令としての条件コードを満たさない分岐ファントムが検出されない場合、処理はステップ18に進み、現在考察中の命令が条件コードを満たすか否かのテストが実行される。条件コードを満たさない場合、処理はステップ20に進み、フォーマット1の命令トレースワードが出力され、それに続いてステップ22で実行された命令のカウント値が0にリセットされ、処理はステップ14に進む。ステップ18においてフォーマット1の命令トレースワードの出力がトリガされない場合、処理はステップ24に進み、トレースデータストリームにおけるインターリーブを必要とする処理動作によって生成されたデータパケットがあるかどうかが判定される。かかるインターリーブが発生すると、これはステップ20において命令トレースワードを出力するためのトリガとして機能する。
【0077】
データパケットが生成されていない場合、処理はステップ26に進み、カウント値がインクリメントされる。ステップ28においてカウント値が15に達したか否かが判定される。これはフォーマット1の命令トレースワード中で符号化することのできる最大の値であり、したがって15に達していた場合、ステップ20において命令トレースワードを出力しなければならない。ステップ28においてこの条件が満たされない場合、処理はステップ30に進み、カウント値は現在14であり、次のサイクルが分岐ファントムであるか否かが判定される。この条件が満たされると、処理はステップ20に進む。次に、ステップ32、34および36が実行され、各ステップは、それに対応する次のサイクルの条件が条件コードを満たさない分岐ファントムであること、トレーシング動作の不能化、あるいはトレーシングトリガ事象の発生であることを検出すると、フォーマット1の命令トレースワードのトリガとして機能する。ステップ32あるいは34でテストされる事象の1つが発生すると、フォーマット1の命令トレースワードがトリガされるため、後続のテストは実行されないことが理解されよう。
【0078】
全体として見ると、図3の処理は終了事象が発生する前に、すなわちステップ18で条件コードを満たさない命令が見つかる前に(カウント値15で示される)最大で16までの隣接して実行される命令を有効にカウントする機能を有する。
【0079】
図4はサイクルアキュレートモードでトレース回路8によって実行される処理の概略を示す。ステップ38で条件コードを満たさない分岐ファントムの初期テストが実行された後、ステップ40でテストが実行され、考察中のサイクルが待ち処理サイクルであるか否かが判定される。待ち処理サイクルである場合、処理は、命令の実行、データパケットの生成、カウント値が8に到達すること、次のサイクルでの分岐ファントムの発見、トレーシングの不能化、あるいはトリガ事象の発生といった終了事象が発生するまで待ちサイクルWをカウントするループに進み、終了事象が発生すると、フォーマット3の命令トレースワードの出力がトリガされ、待ちサイクルのカウント値は0にリセットされる。
【0080】
ステップ40のテストで待ちサイクルが検出されない場合、終了事象が発生するまで実行される命令をカウントするループに入り、終了事象が発生すると、フォーマット1の命令トレースワードが生成され、実行カウント値が0にリセットされる。終了事象は、データパケットの生成、カウント値が7に達すること、次の分岐ファントムが検出されること、トレーシングの不能化、次のサイクルで命令が実行されないこと、あるいはトリガ事象の発生である。このループはおおむね図3のループと同様であるが、符号化が多少異なり、特に最大実行命令カウント値は、ランを短い長さに制限する3つのビットによってのみ表される。
【0081】
図5は、上述した技術にしたがって(コンピュータ12等で)命令トレースワードを含むトレースデータを解析する際に実行される処理の概略を示すフローチャートである。ステップ42において、システムはトレースデータワードが受信されるまで待機する。ステップ44において、受信されたトレースワードに一連のマスクがかけられ、比較動作が実行されて、そのトレースワードが上述した符号化にしたがった命令トレースワードであるかどうかが識別される。この種の動作は命令の復号と同様であるとみなすことができる。
【0082】
ステップ44で命令トレースワードが同定されると、処理はステップ46に進み、その命令トレースワード中のフィールド値が読み出され、ステップ48において、その命令トレースワードによって表され、したがって分析者に利用可能となるべき命令トレース事象動作アトムを再生するのに用いられる。ステップ44でのテストで命令トレースワードが同定されない場合、処理はステップ50に進み、そのトレースワードはデータトレースワードとして取り扱われる。
【0083】
図5の処理はこの方法にしたがって動作する特殊なハードウエアあるいはコンピュータプログラムの制御下で動作する汎用コンピュータによって実行しうることは明らかである。図5に示す処理の実行に使用可能なかかる汎用コンピュータの一例のアーキテクチャを以下に説明する。
【0084】
図6は上述した技術の実施に使用しうるタイプの汎用コンピュータ200の概略を示す。汎用コンピュータ200は中央演算処理装置202、ランダムアクセスメモリ204、リードオンリーメモリ206、ネットワークインターフェースカード208、ハードディスクドライブ210、表示ドライバ212およびモニタ214、およびキーボード218とマウス220を有するユーザー入出力回路216を含み、これらはすべて共通バス222を介して接続されている。動作時において、中央演算処理装置202はコンピュータプログラム命令を実行し、それらの命令はランダムアクセスメモリ204、リードオンリーメモリ206、ハードディスクドライブ210のうち1つ以上に記憶されるか、あるいはネットワークインターフェースカード208を介して動的にダウンロードされる。この処理の実行結果は表示ドライバ212およびモニタ214を介してユーザーに表示することができる。汎用コンピュータ200の動作を制御するためのユーザー入力は、キーボード218あるいはマウス220からユーザー出力回路216を介して受信することができる。コンピュータプログラムはさまざまなコンピュータ言語で記述しうることは明らかである。コンピュータプログラムは記録媒体で記憶および分配するか、汎用コンピュータ200に動的にダウンロードすることができる。適当なコンピュータプログラムの制御下で動作しているとき、汎用コンピュータ200は上述した技術を実行することができ、上述した技術を実行する装置を形成するとみなすことができる。この汎用コンピュータ200のアーキテクチャにはかなりの変更が可能であり、図6は一例に過ぎない。
【0085】
本発明の実施例を添付図面を参照して詳細に説明したが、本発明はこれら詳細な実施例には限定されないことは明らかであり、特許請求の範囲に述べる本発明の範囲および要旨から逸脱することなくさまざまな変更が可能である。
【図面の簡単な説明】
【図1】生成されるトレースデータを解析する汎用コンピュータに接続された、プログラム命令に応答するデータ処理回路およびオンチップトレーシング回路を含むデータ処理装置の概略図である。
【図2】一連のプログラム命令と、かかる命令をノンサイクルアキュレートモードおよびサイクルアキュレートモードの両方で命令トレースワードに符号化する方法を示す。
【図3】ノンサイクルアキュレートモードにおけるトレーシング回路の符号化動作の概略を示すフローチャートである。
【図4】サイクルアキュレートモードにおけるトレーシング回路の符号化動作の概略を示すフローチャートである。
【図5】命令トレースワードを含むトレースデータの解析の概略を示すフローチャートである。
【図6】図5の解析技術の実施に用いることのできる汎用コンピュータのアーキテクチャの概略図である。
【符号の説明】
2 集積回路
4 プロセッサコア
6 ランダムアクセスメモリ
8 トレース回路
10 バッファ
12 分析コンピュータ
202 中央演算処理装置
204 ランダムアクセスメモリ
206 リードオンリーメモリ
208 ネットワークインターフェースカード
210 ハードディスクドライブ
212 表示ドライバ
214 モニタ
216 ユーザー入出力回路
218 キーボード
220 マウス

Claims (18)

  1. データ処理装置であって、
    (i)一連の処理サイクルにわたって動作し、プログラム命令に応じてデータ処理動作を実行するデータ処理回路と、
    (ii)前記プログラム命令に応じた前記データ処理回路の動作を示す命令トレースデータを生成するトレーシング回路とからなり、
    (iii)前記命令トレースデータは、前記データ処理回路によって連続する処理サイクルにわたって実行される処理から発生する一連のトレース事象を符号化した所定の長さの命令トレースワードを少なくとも1つ含み、前記一連のトレース事象は、
    (iv)前記データ処理回路によるプログラム命令の実行に対応する少なくとも1つのトレース事象と、
    (v)前記データ処理回路によるプログラム命令の実行以外に対応する少なくとも1つのトレース事象とを含む。
  2. 請求項1に記載の装置であって、前記一連のトレース事象は前記データトレーシング回路によるプログラム命令の実行にそれぞれ対応する1つあるいはそれ以上のトレース事象と、実行されない条件付プログラム命令に対応するトレース事象との組み合わせからなる。
  3. 請求項2に記載の装置であって、前記データ処理回路によって実行されるプログラム命令の実行にそれぞれ対応する前記1つあるいはそれ以上のトレース事象は、実行されない条件付プログラム命令に対応する前記トレース事象の前に発生する。
  4. 請求項1に記載の装置であって、前記一連のトレース事象は前記データ処理回路が待ち状態である前記データ処理回路の待ち処理サイクルにそれぞれ対応する1つあるいはそれ以上のトレース事象と、実行されるプログラム命令に対応するトレース事象の組み合わせからなる。
  5. 請求項4に記載の装置であって、前記データ処理回路が待ち状態である前記データ処理回路の待ち処理サイクルにそれぞれ対応する前記1つあるいはそれ以上のトレース事象は実行されるプログラム命令に対応する前記トレース事象の前に発生する。
  6. 請求項1に記載の装置であって、前記データ処理回路は処理パイプラインを含み、前記データ処理回路によって実行されるプログラム命令に対応する前記少なくとも1つのトレース事象は前記プログラム命令が前記処理パイプライン内の所定の位置に達したことを表す。
  7. 請求項6に記載の装置であって、前記所定の位置は、
    (i)前記プログラム命令の実行開始、および
    (ii)前記プログラム命令の実行の完了のいずれかである。
  8. 請求項1に記載の装置であって、前記トレーシング回路は前記データ処理回路によって処理されるデータ値を示すデータトレースデータを生成する。
  9. 請求項8に記載の装置であって、前記データ値は前記データ処理回路に入力されるデータ値を含む。
  10. 請求項8に記載の装置であって、前記データ値は前記データ処理回路から出力されるデータ値を含む。
  11. 請求項8に記載の装置であって、前記命令トレースデータおよび前記データトレースデータは共通のトレースデータストリーム中でインターリーブされる。
  12. 請求項1に記載の装置であって、前記トレーシング回路は、前記命令トレースデータに各処理サイクルにおける前記データ処理回路の処理動作を示す情報が含まれるサイクルアキュレートモードで動作する。
  13. 請求項1に記載の装置であって、前記データ処理回路はプロセッサコアである。
  14. 請求項1に記載の装置であって、前記トレーシング回路は前記装置からの出力に先立って命令トレースデータをバッファするためのトレースデータメモリを含む。
  15. データ処理方法であって、
    (i)データ処理回路の一連の処理サイクルにわたって、プログラム命令に応じたデータ処理動作を実行し、
    (ii)前記プログラム命令に応じた前記データ処理回路の動作を示す命令トレースデータを生成し、
    (iii)前記命令トレースデータは、前記データ処理回路によって連続する処理サイクルにわたって実行される処理から発生する一連のトレース事象を符号化した所定の長さの命令トレースワードを少なくとも1つ含み、前記一連のトレース事象は、
    (iv)前記データ処理回路によるプログラム命令の実行に対応する少なくとも1つのトレース事象と、
    (v)前記データ処理回路によるプログラム命令の実行以外に対応する少なくとも1つのトレース事象とを含む。
  16. トレースデータ解析装置であって、
    (i)データ処理回路によって連続する処理サイクルにわたって実行される処理から発生する一連のトレース事象を符号化した所定の長さの命令トレースワードを少なくとも1つ含む命令トレースデータに応答するアナライザロジックからなり、前記アナライザロジックは、
    (ii)前記データ処理回路によるプログラム命令の実行に対応する少なくとも1つのトレース事象と、
    (iii)前記データ処理回路によるプログラム命令の実行以外に対応する少なくとも1つのトレース事象とを含む一連のトレース事象を表す命令トレースデータを同定する。
  17. トレースデータ解析方法であって、
    (i)データ処理回路によって連続する処理サイクルにわたって実行される処理から発生する一連のトレース事象を符号化した所定の長さの命令トレースワードを少なくとも1つ含む命令トレースデータに応じて、
    (ii)前記データ処理回路によるプログラム命令の実行に対応する少なくとも1つのトレース事象と、
    (iii)前記データ処理回路によるプログラム命令の実行以外に対応する少なくとも1つのトレース事象とを含む一連のトレース事象を表命令トレースデータとを含む一連のトレース事象を表す命令トレースワードを同定する。
  18. トレースデータを解析するコンピュータを制御するためのコンピュータプログラム製品であって、
    (i)データ処理回路によって連続する処理サイクルにわたって実行される処理から発生する一連のトレース事象を符号化した所定の長さの命令トレースワードを少なくとも1つ含む命令トレースデータに応じて、
    (ii)前記データ処理回路によるプログラム命令の実行に対応する少なくとも1つのトレース事象と、
    (iii)前記データ処理回路によるプログラム命令の実行以外に対応する少なくとも1つのトレース事象とを含む一連のトレース事象を表命令トレースデータとを含む一連のトレース事象を表す命令トレースワードを同定する識別コードからなる。
JP2003059371A 2002-06-07 2003-03-06 データ処理システムにおける命令のトレーシング Expired - Lifetime JP4233893B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0213149A GB2389432B (en) 2002-06-07 2002-06-07 Instruction tracing in data processing systems

Publications (3)

Publication Number Publication Date
JP2004013896A true JP2004013896A (ja) 2004-01-15
JP2004013896A5 JP2004013896A5 (ja) 2005-09-15
JP4233893B2 JP4233893B2 (ja) 2009-03-04

Family

ID=9938186

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003059371A Expired - Lifetime JP4233893B2 (ja) 2002-06-07 2003-03-06 データ処理システムにおける命令のトレーシング
JP2003195368A Expired - Lifetime JP4225851B2 (ja) 2002-06-07 2003-06-06 データ処理装置用トレース要素生成システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2003195368A Expired - Lifetime JP4225851B2 (ja) 2002-06-07 2003-06-06 データ処理装置用トレース要素生成システム

Country Status (3)

Country Link
US (2) US7003699B2 (ja)
JP (2) JP4233893B2 (ja)
GB (2) GB2389432B (ja)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030121027A1 (en) * 2000-06-23 2003-06-26 Hines Kenneth J. Behavioral abstractions for debugging coordination-centric software designs
GB2366879B (en) * 2000-09-16 2005-02-16 Ibm Tracing the execution path of a computer program
GB2389432B (en) * 2002-06-07 2005-09-07 Advanced Risc Mach Ltd Instruction tracing in data processing systems
US7219333B2 (en) * 2002-11-22 2007-05-15 Texas Instruments Incorporated Maintaining coherent synchronization between data streams on detection of overflow
US7100151B2 (en) * 2002-11-22 2006-08-29 Texas Instruments Incorporated Recovery from corruption using event offset format in data trace
US7133821B2 (en) * 2002-11-22 2006-11-07 Texas Instruments Incorporated Read FIFO scheduling for multiple streams while maintaining coherency
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
US7463653B2 (en) * 2002-12-17 2008-12-09 Texas Instruments Incorporated Apparatus and method for compression of the timing trace stream
US7210127B1 (en) * 2003-04-03 2007-04-24 Sun Microsystems Methods and apparatus for executing instructions in parallel
US7149933B2 (en) * 2003-08-07 2006-12-12 Arm Limited Data processing system trace bus
US20050066311A1 (en) * 2003-09-22 2005-03-24 International Business Machines Corporation Autonomic execution tracking and correction of functions
US7703101B2 (en) * 2004-02-13 2010-04-20 International Business Machines Corporation Autonomic workload classification using predictive assertion for wait queue and thread pool selection
DE102004007614A1 (de) * 2004-02-17 2005-09-01 Giesecke & Devrient Gmbh Datenträger mit Ablaufdiagnosespeicher
US7707554B1 (en) * 2004-04-21 2010-04-27 Oracle America, Inc. Associating data source information with runtime events
US7434108B2 (en) * 2004-04-30 2008-10-07 Freescale Semiconductor, Inc. Masking within a data processing system having applicability for a development interface
US7904488B2 (en) 2004-07-21 2011-03-08 Rockwell Automation Technologies, Inc. Time stamp methods for unified plant model
US8756521B1 (en) 2004-09-30 2014-06-17 Rockwell Automation Technologies, Inc. Systems and methods for automatic visualization configuration
US20060129999A1 (en) * 2004-11-16 2006-06-15 Sony Computer Entertainment Inc. Methods and apparatus for using bookmarks in a trace buffer
JP2006259869A (ja) * 2005-03-15 2006-09-28 Fujitsu Ltd マルチプロセッサシステム
US7475291B2 (en) * 2005-03-31 2009-01-06 International Business Machines Corporation Apparatus and method to generate and save run time data
US7672737B2 (en) 2005-05-13 2010-03-02 Rockwell Automation Technologies, Inc. Hierarchically structured data model for utilization in industrial automation environments
US7650405B2 (en) * 2005-05-13 2010-01-19 Rockwell Automation Technologies, Inc. Tracking and tracing across process boundaries in an industrial automation environment
US7676281B2 (en) 2005-05-13 2010-03-09 Rockwell Automation Technologies, Inc. Distributed database in an industrial automation environment
US8799800B2 (en) 2005-05-13 2014-08-05 Rockwell Automation Technologies, Inc. Automatic user interface generation
US7809683B2 (en) * 2005-05-13 2010-10-05 Rockwell Automation Technologies, Inc. Library that includes modifiable industrial automation objects
US8627049B2 (en) * 2005-05-16 2014-01-07 Texas Instruments Incorporated Real-time prioritization of stall or event information
US20070011492A1 (en) * 2005-07-05 2007-01-11 Arm Limited Generation of trace data
US7496899B2 (en) * 2005-08-17 2009-02-24 Arm Limited Preventing loss of traced information in a data processing apparatus
US20070067458A1 (en) * 2005-09-20 2007-03-22 Rockwell Software, Inc. Proxy server for integration of industrial automation data over multiple networks
US7881812B2 (en) * 2005-09-29 2011-02-01 Rockwell Automation Technologies, Inc. Editing and configuring device
US7548789B2 (en) * 2005-09-29 2009-06-16 Rockwell Automation Technologies, Inc. Editing lifecycle and deployment of objects in an industrial automation environment
US7526794B2 (en) * 2005-09-30 2009-04-28 Rockwell Automation Technologies, Inc. Data perspectives in controller system and production management systems
US7801628B2 (en) 2005-09-30 2010-09-21 Rockwell Automation Technologies, Inc. Industrial operator interfaces interacting with higher-level business workflow
US7734590B2 (en) 2005-09-30 2010-06-08 Rockwell Automation Technologies, Inc. Incremental association of metadata to production data
US7660638B2 (en) * 2005-09-30 2010-02-09 Rockwell Automation Technologies, Inc. Business process execution engine
US8275680B2 (en) * 2005-09-30 2012-09-25 Rockwell Automation Technologies, Inc. Enabling transactional mechanisms in an automated controller system
US8484250B2 (en) * 2005-09-30 2013-07-09 Rockwell Automation Technologies, Inc. Data federation with industrial control systems
US20070288906A1 (en) * 2006-05-16 2007-12-13 Texas Instruments Incorporated Efficient transfer of timing information
US7707394B2 (en) * 2006-05-30 2010-04-27 Arm Limited Reducing the size of a data stream produced during instruction tracing
US8116179B2 (en) * 2006-07-28 2012-02-14 Apple Inc. Simultaneous viewing of multiple tool execution results
US8086904B2 (en) * 2006-07-28 2011-12-27 Apple Inc. Event-based setting of process tracing scope
JP4846493B2 (ja) 2006-09-05 2011-12-28 富士通セミコンダクター株式会社 デバッグシステム及びデバッグ回路
US8291417B2 (en) * 2006-09-08 2012-10-16 Freescale Semiconductor, Inc. Trace buffer with a processor
US20080082801A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Apparatus and method for tracing instructions with simplified instruction state descriptors
US8533530B2 (en) * 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8341604B2 (en) * 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced 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
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
US7840781B1 (en) * 2007-04-04 2010-11-23 Xilinx, Inc. Circuit arrangement for profiling a programmable processor connected via a uni-directional bus
US8484516B2 (en) * 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
US7844954B2 (en) * 2007-11-06 2010-11-30 Vmware, Inc. Using branch instruction counts to facilitate replay of virtual machine instruction execution
US8055950B2 (en) * 2008-01-11 2011-11-08 Arm Limited Method and apparatus for improved timing for trace synchronization
US20090187747A1 (en) * 2008-01-18 2009-07-23 Infineon Technologies Ag System and method for tracing instruction pointers and data access
JP5505781B2 (ja) 2008-02-04 2014-05-28 日本電気株式会社 トレース・障害観測システム、トレース・障害観測方法及びトレース・障害観測プログラム
US20090222797A1 (en) * 2008-02-29 2009-09-03 Infineon Technologies Ag Apparatus and method for providing a trigger
US8117602B2 (en) * 2008-04-01 2012-02-14 Kaspersky Lab, Zao Method and system for monitoring execution performance of software program product
GB2459652B (en) * 2008-04-28 2010-09-22 Imagination Tech Ltd Controlling instruction scheduling based on the space in a trace buffer
US9223677B2 (en) * 2008-06-11 2015-12-29 Arm Limited Generation of trace data in a multi-processor system
JP5167984B2 (ja) * 2008-06-26 2013-03-21 富士通株式会社 命令トレース生成プログラム、命令トレース生成装置および命令トレース生成方法
US20100083237A1 (en) * 2008-09-26 2010-04-01 Arm Limited Reducing trace overheads by modifying trace operations
JP5304239B2 (ja) * 2008-12-26 2013-10-02 富士通株式会社 プロセッサ試験装置、プロセッサ試験方法、プロセッサ試験プログラム
US8176366B2 (en) 2009-04-03 2012-05-08 Arm Limited Trace synchronization
HUE038328T2 (hu) 2009-07-29 2018-10-29 Reversinglabs Corp Hordozható futtatható fájlok javítása
US8234524B1 (en) * 2009-09-28 2012-07-31 Dale Trenton Smith Protocol analysis with event present flags
GB2477936B (en) * 2010-02-17 2016-02-10 Advanced Risc Mach Ltd Trace data priority selection
US8484401B2 (en) 2010-04-15 2013-07-09 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US8984533B2 (en) 2010-04-15 2015-03-17 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US9392072B2 (en) 2010-04-15 2016-07-12 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US20120042212A1 (en) * 2010-08-10 2012-02-16 Gilbert Laurenti Mixed Mode Processor Tracing
US8719641B2 (en) * 2011-08-25 2014-05-06 International Business Machines Corporation Priority buffering for trace data in trace queue
GB2498571A (en) 2012-01-20 2013-07-24 Intellectual Ventures Holding 81 Llc Base station able to communicate with a second device type on a narrow subset frequency band contained within a first main band
US8612650B1 (en) 2012-03-13 2013-12-17 Western Digital Technologies, Inc. Virtual extension of buffer to reduce buffer overflow during tracing
CN103885845A (zh) * 2012-12-21 2014-06-25 祥硕科技股份有限公司 集成电路的除错***及其除错方法
US9442729B2 (en) * 2013-05-09 2016-09-13 Intel Corporation Minimizing bandwidth to track return targets by an instruction tracing system
RU2635044C2 (ru) * 2013-06-27 2017-11-08 Интел Корпорейшн Режим слежения в устройстве обработки в системах трассировки команд
JP6127883B2 (ja) * 2013-10-02 2017-05-17 株式会社ソシオネクスト 半導体装置および半導体装置の動作制御方法
US20150278064A1 (en) * 2014-03-27 2015-10-01 Cigol Digital Systems Ltd. Signal export from on-chip circuit
GB2549509B (en) * 2016-04-20 2018-07-04 Advanced Risc Mach Ltd An apparatus and method for combining trace data from a plurality of trace sources
GB2551747B (en) * 2016-06-29 2019-04-10 Advanced Risc Mach Ltd Diagnostic data capture
DE102017200161A1 (de) * 2017-01-09 2018-07-12 Robert Bosch Gmbh Verfahren zum Erfassen von Signalen
US10331446B2 (en) * 2017-05-23 2019-06-25 International Business Machines Corporation Generating and verifying hardware instruction traces including memory data contents
CN109284223B (zh) * 2017-07-21 2023-10-20 超威半导体(上海)有限公司 可配置的调试方法和***
US10747543B2 (en) 2018-12-28 2020-08-18 Marvell Asia Pte, Ltd. Managing trace information storage using pipeline instruction insertion and filtering
US10901871B2 (en) * 2019-03-05 2021-01-26 Intel Corporation System, apparatus and method for dynamic multi-source tracing in a system
US11914499B2 (en) * 2021-10-29 2024-02-27 Stmicroelectronics Application Gmbh Systems and methods for preparing trace data

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62224841A (ja) * 1986-03-26 1987-10-02 Nec Corp 動作履歴記憶方式
US5678028A (en) * 1994-10-25 1997-10-14 Mitsubishi Electric Information Technology Center America, Inc. Hardware-software debugger using simulation speed enhancing techniques including skipping unnecessary bus cycles, avoiding instruction fetch simulation, eliminating the need for explicit clock pulse generation and caching results of instruction decoding
US5764885A (en) 1994-12-19 1998-06-09 Digital Equipment Corporation Apparatus and method for tracing data flows in high-speed computer systems
US5802272A (en) * 1994-12-19 1998-09-01 Digital Equipment Corporation Method and apparatus for tracing unpredictable execution flows in a trace buffer of a high-speed computer system
JP2752592B2 (ja) * 1994-12-28 1998-05-18 日本ヒューレット・パッカード株式会社 マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US5724505A (en) * 1996-05-15 1998-03-03 Lucent Technologies Inc. Apparatus and method for real-time program monitoring via a serial interface
US5996092A (en) * 1996-12-05 1999-11-30 International Business Machines Corporation System and method for tracing program execution within a processor before and after a triggering event
GB9626367D0 (en) * 1996-12-19 1997-02-05 Sgs Thomson Microelectronics Providing an instruction trace
US6167536A (en) * 1997-04-08 2000-12-26 Advanced Micro Devices, Inc. Trace cache for a microprocessor-based device
US6148381A (en) * 1997-04-08 2000-11-14 Advanced Micro Devices, Inc. Single-port trace buffer architecture with overflow reduction
EP1184790B1 (en) * 1997-04-08 2009-11-25 Advanced Micro Devices, Inc. Trace cache for a microprocessor-based device
US6256775B1 (en) * 1997-12-11 2001-07-03 International Business Machines Corporation Facilities for detailed software performance analysis in a multithreaded processor
US6145123A (en) * 1998-07-01 2000-11-07 Advanced Micro Devices, Inc. Trace on/off with breakpoint register
US7013456B1 (en) * 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US7275246B1 (en) * 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US6954923B1 (en) * 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US6513134B1 (en) * 1999-09-15 2003-01-28 International Business Machines Corporation System and method for tracing program execution within a superscalar processor
US6615370B1 (en) 1999-10-01 2003-09-02 Hitachi, Ltd. Circuit for storing trace information
US7100152B1 (en) * 2000-01-31 2006-08-29 Freescale Semiconductor, Inc. Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use thereof
US7000225B2 (en) * 2000-12-07 2006-02-14 International Business Machines Corporation Method for inserting global breakpoints
US6694507B2 (en) * 2000-12-15 2004-02-17 International Business Machines Corporation Method and apparatus for analyzing performance of object oriented programming code
US7448025B2 (en) * 2000-12-29 2008-11-04 Intel Corporation Qualification of event detection by thread ID and thread privilege level
US6813731B2 (en) * 2001-02-26 2004-11-02 Emc Corporation Methods and apparatus for accessing trace data
US6802031B2 (en) * 2001-05-24 2004-10-05 International Business Machines Corporation Method and apparatus for increasing the effectiveness of system debug and analysis
GB2389432B (en) * 2002-06-07 2005-09-07 Advanced Risc Mach Ltd Instruction tracing in data processing systems
US6948155B2 (en) * 2002-11-22 2005-09-20 Texas Instruments Incorporated Little offset in multicycle event maintaining cycle accurate tracing of stop events

Also Published As

Publication number Publication date
JP4233893B2 (ja) 2009-03-04
GB2389432A (en) 2003-12-10
GB0514709D0 (en) 2005-08-24
GB2389432B (en) 2005-09-07
US20040024995A1 (en) 2004-02-05
US20030229823A1 (en) 2003-12-11
JP4225851B2 (ja) 2009-02-18
US7134117B2 (en) 2006-11-07
GB2413418B (en) 2006-03-01
GB2413418A (en) 2005-10-26
JP2004038981A (ja) 2004-02-05
US7003699B2 (en) 2006-02-21
GB0213149D0 (en) 2002-07-17

Similar Documents

Publication Publication Date Title
JP4233893B2 (ja) データ処理システムにおける命令のトレーシング
EP2891052B1 (en) Instruction insertion in state machine engines
US10929154B2 (en) Overflow detection and correction in state machine engines
US8527812B2 (en) Information processing device
US7710969B2 (en) Rapid I/O traffic system
US7673187B2 (en) Data processing apparatus and method for reducing trace bandwidth
US5845064A (en) Method for testing and verification of a CPU using a reference model
JP2014220003A (ja) 命令の追跡中に作られるデータ・ストリームの大きさの削減
US20060255985A1 (en) Reissue an ID to a Data Log Even if the Same ID May Be Repeated
US20060282719A1 (en) Unique Addressable Memory Data Path
US20060256877A1 (en) Rapid I/O Compliant Message Mapper
KR101958540B1 (ko) 온 칩 dram을 사용한 멀티코어 환경에서의 포스트 실리콘 디버그 장치 및 방법
JP2003150403A (ja) データプロセッサの観測方法及び装置
GB2389931A (en) Selective generation of trace elements
US20060256878A1 (en) Out of Order Message Completion Management
US20060268714A1 (en) Rapid I/O Compliant Congestion Control
JPH10275092A (ja) マイクロプロセッサのトレース情報出力方法
US6795879B2 (en) Apparatus and method for wait state analysis in a digital signal processing system
JPH11353205A (ja) トレースメモリ内蔵のプロセッサ
CN117724664A (zh) 数据写入方法、装置、设备及存储介质
US20060256876A1 (en) Fast Decode of Pending Interrupts
JP2010123050A (ja) 半導体装置
JP2008276683A (ja) 試験装置
JP2005122329A (ja) ソフトウェアのリアルタイム解析方法
JPH0365736A (ja) システム開発装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050328

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080611

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081210

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

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4233893

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121219

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 5

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term