JP2009087343A - データ処理装置用のトレースストリームを発生するための技術 - Google Patents

データ処理装置用のトレースストリームを発生するための技術 Download PDF

Info

Publication number
JP2009087343A
JP2009087343A JP2008248146A JP2008248146A JP2009087343A JP 2009087343 A JP2009087343 A JP 2009087343A JP 2008248146 A JP2008248146 A JP 2008248146A JP 2008248146 A JP2008248146 A JP 2008248146A JP 2009087343 A JP2009087343 A JP 2009087343A
Authority
JP
Japan
Prior art keywords
trace
compression
circuit
scheme
stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008248146A
Other languages
English (en)
Inventor
Paul Robert Gotch
ロバート ゴッチ ポール
John Michael Horley
マイケル ホーレイ ジョン
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 JP2009087343A publication Critical patent/JP2009087343A/ja
Pending 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/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Abstract

【課題】データ処理装置において、圧縮効率を改善し、よって発生されるトレースデータのボリュームを低減すること
【解決手段】データ処理装置のうちの被モニタ回路のアクティビティを示すトレースストリームを発生するための、トレース回路およびかかるトレース回路を動作させる方法が提供されている。被モニタ回路は、アクティビティを示すデータ要素を発生し、トレース回路は、データ要素を示すトレース要素を発生するための被モニタ回路によって発生されるデータ要素のうちの少なくとも一部に応答自在なトレース要素発生回路を備える。
【選択図】図4

Description

本発明は、データ処理装置のモニタ中の回路のアクティビティを示すトレースストリームを発生するための技術に関する。
システム内のステップごとのアクティビティを示すデータを含むトレースストリームを発生するために、データ処理装置のアクティビティをトレースすることは、システム開発における極めて有効なツールとなっている。しかしながら、プロセッサコアがより深く埋め込まれるようになってきている一般的の動きにより、外部からアクセス可能なピンを介してプロセッサコアまたは他のオンチップデバイスのアクティビティをトラッキングすることは、より困難となっている。従って、トレースデータを捕捉し、分析するためのオフチップトレーシング機構と同じように、大量のトレーシング機能がオフチップに設けられようになっている。かかるオフチップトレーシング機構の一例として、種々のARMプロセッサに関連して、英国ケンブリッジのARMリミティッド社によって提供されている、埋め込みトレースマイクロセル(ETM)がある。
かかるトレーシング機構は、トレースしたいデータ処理装置のアクティビティを示すトレース要素を提供するトレースストリームをリアルタイムで発生する。次に、このトレースストリームは種々の目的のために、例えばデータ処理装置によって実行されている処理命令のシーケンスのデバッグを容易にし、データ処理装置などで実行中の特定のプログラムコードの性能を決定するように、プロファイリングオペレーションを実行するように分析できる。
一般に、トレース機構によって発生されるトレース要素のストリームは、バッファー化され、その後分析のために出力される。かかるトレースバッファは、有限量の情報を記憶することができ、バッファ化すべき要素を受信できる有限バンド幅を有する専用データベースを必要とする。このトレースバッファは一般にラップアラウンド状に情報を記憶するようになっている。すなわちトレースバッファが一旦フル状態となると、内部に記憶されている最も古いデータに新しいデータが一般にオーバーライトされるようになっている。専用データベースのバンド幅は、トレースバッファ内に情報を記憶できるレートを制限することが分かっている。
所望するとき、例えばトレースが一旦完了すると、トレースバッファからトレース要素のトレースストリームを受信するトレース分析ツールが一般に設けられている。このトレース分析ツールは、受信したトレース要素に基づき、トレース中のデバイスのアクティビティを再構成するのに使用できる。デバイス、例えばプロセッサコアが、そのパワーおよび複雑さを増すにつれ、かかるデバイスアクティビティをトラッキングするのに必要とされる情報量は増加し、従って潜在的にトレースしなければならない、極めて大ボリュームのトレース要素が生じることは明らかである。
しかしながら、トレースロジックによってトレース要素を出力できるバスのバンド幅は有限であり、かかるトレース要素をバッファ化するのに使用されるトレースバッファのサイズは限られているという問題がある。従って、発生できるトレース要素のボリュームは限られている。
トレースしたいことがあるデバイスのアクティビティとして、プロセッサコアによって実行中の命令(命令トレースと称す)およびこれら命令によって行われるメモリへのアクセス(データトレースと称す)を挙げることができるが、これらだけに限定されるものではない。データトレースを命令トレースに相関化できるよう、これらアクティビティは、別々にトレースしてもよいし、またはまとめてトレースしてもよい。データトレース自体は2つの部分、すなわちメモリアドレスとデータ値とから成り、これらはそれぞれデータアドレスおよびデータ値トレースと称されている。再び、現在のトレースETMプロトコルは、データアドレスおよびデータ値のトレースを別々に、または同時にイネーブルできるようにしている。
トレースストリーム内で出力しなければならないトレースデータのボリュームを低減するために、トレースストリーム内の出力を行う前に、トレース要素に対し圧縮を行うことは公知となっている。特にビットストリームがトレース要素のシーケンスを示しているパケットを発生するために、トレース要素のシーケンスに符号化演算を実行することができ、この場合、トレースストリーム内でパケットが出力される。トレース要素を符号化するのに使用できる多数の異なる符号化フォーマットを提供する圧縮方式が一般に定められている。一例として、各パケット出力は、一般にヘッダー部分と、オプションのペイロード部分とから成る。ヘッダーを検討すると、これらヘッダーは1バイトの情報の形態となっており、従ってヘッダーの可能な符号化は256種類存在する。これら符号化の一部を、ある符号化フォーマットと関連付けしてもよいし、他方、他の符号化を異なる符号化フォーマットと関連付けしてもよい。ペイロード部分に対して更に別の符号化フォーマットを提供してもよい。パケットとなるように符号化しなければならない異なるタイプのトレース要素を符号化するのに、これら異なる符号化フォーマットを使用できるが、トレースストリームを分析するのに使用されるトレース分析ツールにより、各パケットをユニークに識別できるように、これら異なる符号化フォーマットはビットパターン符号化スペース内ではオーバーラップされない状態となる。
例えば現在のETMプロトコルは、命令が実行されたこと、または実行されなかったことを示すアトムと称されるトレース要素を発生する。すなわち命令が実行されたことを示すEアトムと、命令が実行されなかったことを示すNアトムとを発生する。これらアトムのシーケンスは、pヘッダーとして知られるパケットとなるように圧縮でき、1つのpヘッダーは1バイトサイズのヘッダーを含み、ペイロードを含まない。EおよびNアトムの特定のシーケンスのためのpヘッダーを発生するのに、1つ以上の符号化フォーマットを提供できるが、かかる各符号化フォーマットは、pヘッダーに使用される他の符号化フォーマットに関し、オーバーラップしていないビットパターン符号化スペースを占有する。実際、異なるタイプのヘッダー、例えばブランチ命令に関する情報を与えるパケットを識別するのに使用されるブランチヘッダー、またはデータアドレス、またはデータアドレスもしくはデータ値情報などを含むパケットを識別するのに使用されるデータ値ヘッダー等の異なるタイプのヘッダーに対して使用される他の符号化フォーマットに関して、オーバーラップしていないビットパターン符号化スペースを占有する。
特定のトレース回路に関連して使用される圧縮方式は、一般に設計時間に固定される。この場合、その圧縮方式は、一般に圧縮する必要のないトレース要素の期待されるパターンに基づいて選択されている。従って、例えば冒頭に述べたpヘッダーを検討すると、EおよびNアトムのシーケンスからこれらpヘッダーを発生するのに使用される符号化フォーマットは、ランレングス符号化方式を一般に使用し、このランレングス符号化方式では、EアトムのほうがNアトムよりも一般的であるので、符号化はEアトムの長いシーケンスに向かってずれる(skew)。
命令トレース、データアドレストレースおよびデータ値トレースを選択的にイネーブルできるほかに、現在のトレース回路は、異なるトレース動作モードもサポートできる。例えば冒頭に述べたETM製品を検討すると、非周期的な正確なトレース動作モードおよび周期的な正確なトレース動作モードを提供できる。非周期的な正確なトレース動作モードから、周期的な正確なトレース動作モードへ切り換えるために、またはこの逆方向に切り換えるために、現在のトレースアクティビティを中止し、新しいトレース動作モードを定めるよう、トレース回路内の多数の制御レジスタを更新する。この更新プロセスの一部として、新しいトレース動作モードに対して、より最適にされた圧縮方式を提供するように圧縮方式を変更してもよい。例えば周期的な正確なトレース動作モードを検討すると、周期的な正確なタイミング情報を提供するのに各クロックサイクルでWアトムとして知られる別のアトムが発生され、従って、周期的な正確なトレース動作モードにおいて、pヘッダーに対して使用される符号化フォーマットは、EおよびNアトムの他にpヘッダー内でWアトムのシーケンスを符号化する必要性を示すために、非周期的な正確なトレース動作モードで使用される符号化フォーマットとは一般的に異なる。しかしながら、周期的な正確なトレース動作モードに対して開発された圧縮方式は、圧縮が必要なトレース要素の期待されるパターンを考慮する設計時間に一般に固定される。
しかしながら、特定のトレース動作モードでは、そのトレース動作モードに対して提供された所定の圧縮方式を実行すると、効率上の問題が生じることがある。例えばアクティビティをトレース中の、モニタされている回路の複雑さおよび能力が高まるにつれ、実行中の符号シーケンスがかなり変化し得る。再度pヘッダーの問題を検討すると、ARM Thumb−2命令セットは「if then」命令を提供し、この命令は発生されるNアトムの頻度を大きく変え、pヘッダーに対して提供される符号化フォーマットの効率に悪影響を与え得ることが分かっている。別の例として、トレース回路を単にすべての命令をトレースするようにできるだけでなく、特定タイプの命令、例えばブランチ命令もトレースするようにもできる。ブランチ命令をトレースするだけのときでも、より大きい分布のNアトムが生じることがあり、このことは再び圧縮効率に悪影響を与える。
前に述べたように、生じるトレースのボリュームは大きな問題であり、圧縮方式によって提供される符号化における非効率性は、トレースストリームのボリュームを増加し、よってオンチップバッファリングのために、より広い面積を必要とし、オフチップでの捕捉のためにより多くのハードウェアを必要とし、および/またはオフチップのリアルタイムのトレース捕捉のために、より多数のピンが必要となる。従って、トレースストリームを出力する前に、トレース要素を圧縮するための改良された技術を提供することが望ましい。
第1の様相から見れば、本発明は、データ処理装置の被モニタ回路のアクティビティを示すトレースストリームを発生するためのトレース回路であり、前記被モニタ回路は、前記アクティビティを示すデータ要素を発生するようになっており、前記トレース回路は、前記データ要素の少なくとも一部を示すトレース要素を発生するよう、前記被モニタ回路によって発生される前記データ要素のうちの少なくとも一部に応答自在なトレース要素発生回路を備え、前記発生されるトレース要素は前記トレース回路の選択されたトレース動作モードに依存し、ビットパターンがトレース要素のシーケンスを示すようになっているパケットを発生し、そのパケットを前記トレースストリーム内で出力させるよう、前記トレース要素のシーケンスに符号化演算を実行するための圧縮回路を備え、前記実行される符号化演算は、前記圧縮回路に関連する現在の圧縮方式に応じて決まり、前記選択されたトレース動作モード中に前記圧縮回路は圧縮変更刺激信号に応答でき、現在の圧縮方式を第1の圧縮方式からビットパターン符号化スペースが前記第1圧縮方式のビットパターン符号化スペースにオーバーラップする第2圧縮方式へ変更し、よって圧縮方式の変更後、前記選択されたトレース動作モードの間に発生される別のパケットが第2圧縮方式に従って発生される、トレース回路を提供するものである。
本発明によれば、トレース回路がまだ選択されたトレース動作モードにある間、圧縮回路は、現在の圧縮方式を変更するための圧縮変更刺激信号に応答するようになっている。特に圧縮変更刺激信号は現在の圧縮方式を、第1圧縮方式から、ビットパターン符号化スペースが第1圧縮方式のビットパターン符号化スペースにオーバーラップする第2圧縮方式に変更させる。このことは、トレース回路がまだ選択されたトレース動作モードにある間でも起こるので、実際にトレース回路によって発生中のトレース要素のタイプには変更がない。圧縮方式の変更後、選択されたトレース動作モードにある間に発生される別のパケットが、第2圧縮方式に従って発生される。
本発明を使用することにより、そのトレース動作モード中に使用される圧縮方式を変更できる能力に起因し、同じトレース動作モード中にある間、トレースストリーム内のパケットの特定のビットパターンに関連する意味を変えることができる。これによって例えば被モニタ回路によって出力されるトレース要素の特定パターンに関連付けすることにより、圧縮回路によって適用される圧縮方式を適合化できるようにすることにより圧縮効率を大幅に改善することが可能となる。
一部の実施例では、トレース回路のトレース動作を中止することなく、第1圧縮方式から第2圧縮方式への切り換えを行うことができ、一方、他の実施例では、圧縮方式の変更を行いながら、トレース回路のトレースアクティビティを一時的に中止する。
トレース回路によって受信されるデータ要素は、種々の形態をとり得るが、このことは、データ要素がこのデータ要素から発生するのに必要とされるトレースストリームに対し、十分な情報を与えることを条件とする。更に、被モニタ回路(本明細書では、トレースされているデバイスとも称す)からトレース回路へデータ要素を伝送してもよいし、これとは異なり、トレースされているデバイスからトレース回路によりデータ要素を検索してもよい。一例として、データ要素は命令アドレス値、データアドレス値またはデータ値を含むことができる。次に、トレース要素発生回路によって発生されるトレース要素は、一般にデータ要素またはこれらデータ要素によって示される被モニタ回路の少なくとも基礎となるアクティビティを、トレースストリームを分析するトレース分析ロジックによって後に決定できるようにする十分な情報を含むようになっている。
圧縮変更刺激信号を発生できる方法は多数ある。一実施例では、トレース回路は現在の圧縮方式をいつ変更するかを決定し、その決定時に圧縮変更刺激信号を発生させるための所定の基準を適用するための圧縮方式選択回路を更に備える。従って、かかる実施例では、圧縮方式選択回路によって実行される分析に基づき、トレース回路により内部で圧縮変更刺激信号が発生される。
圧縮方式選択回路が現在の圧縮方式をいつ変更するかを決定できる異なる方法は多数存在する。例えば圧縮方式選択回路は、被モニタ回路によって発生されたデータ要素からの異なる圧縮方式によって発生されるトレースデータのボリュームを比較し、その分析に基づき、最も効率的であると考えられる圧縮方式を選択するようにできる。これとは異なり、またはこれに追加して、圧縮方式選択回路は、被モニタ回路のアクティビティの1つ以上の属性、例えば被モニタ回路内の実行の現在のスレッドを示すスレッド識別レジスタ内に保持されている値、または被モニタ回路によってアクセスされるメモリアドレス領域の表示に応答し、スイッチ圧縮方式をいつ切り換えるかを決定してもよい。例えばかかる情報から、被モニタ回路がどのアプリケーションを動作中であるかを判断してもよく、圧縮方式選択回路は異なる圧縮方式と異なるアプリケーションとを関連付けできる。
圧縮方式選択回路が現在の圧縮方式をいつ変更するかをどのように決定できるかの別の例では、圧縮方式選択回路が圧縮方式をいつ変更するかを決定する際に考慮できる、被モニタ回路から受信されるヒント信号に応答することができる。従って、被モニタ回路は、その回路が実行中のアクティビティが大幅に変更されるときにヒント信号を出力でき、かかるヒント信号は、被モニタ回路が信頼する圧縮方式が実施するのに最も適切であることを明示的に識別するか、または使用中の圧縮方式を再評価するのに適当な時間であることを圧縮方式選択回路に少なくとも表示する。
圧縮方式選択回路が動作する態様は、トレース回路の圧縮回路の構造に応じて代わり得る。一実施例では、圧縮回路は、複数の圧縮要素を備え、各圧縮要素は、異なる圧縮方式を実施すると共に、符号化演算を実行し、圧縮方式選択回路は、圧縮方式が現在の圧縮方式となっている圧縮要素として圧縮要素のうちの1つを選択するための選択信号を発生するようになっており、よって前記選択された圧縮要素は、前記トレースストリーム内に含まれるためのパケットを発生し、圧縮方式選択回路は、選択信号を変えることにより、圧縮変更刺激信号を発生するようになっている。
上記実施例によれば、圧縮回路は、この圧縮回路内で提供される複数の圧縮要素によって決定される所定の数の異なる圧縮方式をサポートでき、圧縮方式選択回路は、時間内の特定の時点でトレースストリーム内に含ませるためのパケットを発生するのに、どの圧縮要素を使用すべきかを示す選択信号を発生する。
圧縮回路内の圧縮要素は、全体が別個の物理的回路でもよいし、またはこれとは異なり、圧縮要素が互いに一部のロジックを共用してもよく(一部の実施例では、圧縮要素を構成するロジックの重要な部分を共用してもよい)、一例として、異なる圧縮要素はpヘッダーを符号化するための異なる符号化フォーマットを提供でき、この場合、1つの圧縮要素によって提供される符号化フォーマットは、別の圧縮要素によって提供される符号化フォーマットに対するオーバーラップしたビットパターン符号化スペースを有する。しかしながら、圧縮要素はpヘッダー以外のヘッダーを符号化するとき、またはヘッダーに関連するペイロードデータを符号化する際に、同じ符号化フォーマットを使用し、よってかかる非pヘッダー符号化を実行するために同じロジックを共用してもよい。
一実施例では、少なくともテスト動作期間中、前記圧縮要素の各々は、符号化演算を実行するようになっており、この場合、発生されたパケットは前記圧縮方式選択回路によって受信され、前記圧縮方式選択回路は、発生されたパケットに対し、分析動作を実行し、前記選択信号により前記圧縮要素のうちのどれを選択するかを判断するようになっている。この圧縮要素は同じソースデータ、すなわちトレース要素発生回路によって発生されたトレース要素に対し、それぞれの符号化演算を実行するようにパラレルに実行してもよいし、またはこれとは異なり、所定の時間符号化演算を実行するのに、各圧縮要素を逐次選択してもよく、この場合、発生されたパケットは圧縮方式選択回路によって選択される。定期的に使用するために最良の圧縮方式を再評価するのに、テスト動作時間を周期的に実行してもよいし、またはこれとは異なり、圧縮方式選択回路により受信される所定の情報、例えば被モニタ回路によって実行中の所定のアクティビティの表示、ヒント信号などにより、テスト動作時間をトリガーしてもよい。別の実施例では、圧縮効率を改善するために、現在の圧縮方式を変更する必要があるかどうかを圧縮方式選択回路が判断する場合、時間内の所定の時点で圧縮方式の切り換えを行うことができるように、トレースストリームの発生中に圧縮方式選択回路が分析動作を連続的に実行できるようにできる。
複数の圧縮要素を有する圧縮回路を提供する別の方法として、圧縮回路は、再コンフィギュア可能な回路(reconfigurable circuit)となることができる。かかる実施例では、発生時の前記圧縮変更刺激信号は、前記再コンフィギュア可能な回路を再コンフィギュアし、前記第2圧縮方式を実施するのに使用される情報を含む。かかるアプローチにより、圧縮方式の選択に関して更にフレキシビリティが得られる。
特定の実施例では、前記圧縮回路は、再コンフィギュア可能なデュプリケート回路を備え、よって第1圧縮方式を実施するようになっている再コンフィギュア可能な回路のうちの一方は、圧縮変更刺激信号の受信の後で動作を続けるようになっており、前記再コンフィギュア可能な回路の他方は、前記圧縮変更刺激信号に従い、再コンフィギュアされるようになっており、かかる再コンフィギュアの後で、前記再コンフィギュア可能な回路のうちの他方は、前記第2圧縮方式に従って次のパケットを発生するのに使用される。かかるアプローチにより、圧縮方式の変更によりトレースデータの発生を中断しなくてもよく、他の再コンフィギュア可能な回路が再コンフィギュアされれば、圧縮方式の切り換えが生じる。
再コンフィギュア可能な回路は種々の形態をとり得るが、一実施例では、プログラム可能なロジックデバイスであり、このプログラム可能なロジックデバイスを再プログラムするのに使用されるメモリデバイス内に圧縮変更刺激信号が記憶される。一実施例では、プログラマブルロジックデバイスはフィールドプログラマブルゲートアレイ(FPGA)デバイスとすることができ、このFPGAデバイスを再プログラムするのに使用されるフラッシュメモリデバイス内に圧縮変更刺激信号を記憶できる。
種々の方法で圧縮回路に圧縮変更刺激信号を与えることができる。一実施例では、トレース回路は、前記圧縮変更刺激信号を記憶するための圧縮指定フィールドを有する制御レジスタを更に備え、前記圧縮回路は、前記制御レジスタの前記圧縮指定フィールドを参照し、現在の圧縮方式をいつ変更するかを決定する。従って、圧縮指定フィールドに記憶された特定の値(単数または複数)は、時間内の任意の時点でどの圧縮方式を圧縮回路によって実施するかを定める。
トレース分析ツールがトレースストリーム内の種々のパケットを正しく解釈できるようにするためには、トレース分析ツールは、いつ圧縮方式が変更されたかを知らなければならない。トレース分析ツールがかかる変更を評価できる方法は多数存在し、一部の実施例では、トレース分析ツールのユーザーは圧縮方式の変更を調査でき、よっていつ変更が行われたかを知ることができる。一実施例では、現在の圧縮方式を変えるときに、前記圧縮回路は変更を行った旨を示す変更信号をトレースストリーム内に出力するようになっており、よって前記トレースストリームを分析するのに使用されるトレース分析装置は、トレースストリーム内のパケットを正確に解読するために前記圧縮方式がいつ変更されたかを判断できる。この変更信号は、トレースストリーム内のその変更信号のあとでパケットに関連しどの圧縮方式が使用されたかをトレース分析ツールが判断できるようにする充分な情報を提供する。
第2の様相から見れば、本発明は、被モニタ回路のアクティビティを示すデータ要素を発生するための被モニタ回路と、前記被モニタ回路の前記アクティビティを示すトレースストリームを発生するためのトレース回路とを備えるデータ処理装置を提供する。
第3の様相から見れば、本発明は、前記各パケットによって示されるトレース要素のシーケンスを決定するよう、前記トレースストリーム内の前記パケットを復号化するためのパケット逆圧縮ロジックと、前記パケット逆圧縮ロジックによって決定された前記トレースストリームおよび前記トレース要素を受信し、所定の基準を適用し、現在の圧縮方式をいつ変更するかを決定し、前記決定時に前記圧縮変更刺激信号を発生するようになっている圧縮方式選択ロジックとを備える、本発明の第1の様相に係わる、トレース回路によって発生されるトレースストリームを分析するためのトレース分析装置を提供する。
トレース回路内の圧縮方式選択回路の代わりに、トレース分析装置内に圧縮方式選択ロジックを設け、この選択ロジックが圧縮方式をいつ変更するかを決定するように、圧縮方式選択回路で実行されるのと同じ分析を実行してもよい。別の実施例では、トレース分析装置は、圧縮方式選択ロジックを含むことができ、トレース回路は更に圧縮方式選択回路を含むことができ、かかる実施例では、これら要素によって示された競合する変更の間で仲裁するためのある種の仲裁機構を設ける必要がある。純粋な例として、トレース分析装置内の圧縮方式選択ロジックは、かかる状況において、トレース回路内の圧縮方式選択回路によってとられる処置に関する第2のレベルのレビューを提供できる。例えば圧縮方式選択ロジックは、所定の状況において圧縮方式選択回路によって行われた判断にだけ介入するように構成でき、圧縮方式選択ロジックが圧縮変更刺激信号を発生する状況では、仲裁機構が圧縮方式選択ロジックによって出力される圧縮変更刺激信号に対する優先権を与えることになる。
一実施例では、前記トレースロジックの前記圧縮回路は、所定の数の圧縮方式をサポートしており、前記圧縮方式選択ロジックは、どの圧縮方式が現在の圧縮方式であるかを識別するための選択信号を発生するようになっており、前記圧縮方式選択ロジックは、前記選択信号を変えることにより、前記圧縮方式変更刺激信号を発生するようになっている。
別の実施例では、前記圧縮変更刺激信号は現在の圧縮方式として使用すべき第2圧縮方式を定める情報を含む。かかる実施例は、例えば、トレース回路内の圧縮回路が再コンフィギュア可能である場合に使用できる。
一実施例では、前記圧縮方式選択ロジックは、現在の圧縮方式を変更するかどうかを判断するための前記所定の基準を適用する際に、プログラム画像を参照する。被モニタ回路によって実行された命令の実際のシーケンスを、トレースストリーム内で提供されたトレース要素から再構成できるように、プログラムイメージのコピーをトレース分析装置に提供することが多い。トレースストリームの一部の分析から、圧縮方式の変更に価値ある可能性が高いと識別されたとき、圧縮方式選択ロジックがプログラムイメージを検討し、符号の他の部分でトレース要素の同様なパターンチェックし、よってかかる変更にやりがある可能性が高いと確認するように、圧縮方式選択ロジックはプログラムイメージを参照するようにできる。
第4の様相から見れば、本発明は、データ処理装置の被モニタ回路のアクティビティを示すトレースストリームを発生するためのトレース回路により適用される圧縮方式を変更するための方法であって、前記被モニタ回路は、アクティビティを示すデータ要素を発生するようになっており、この方法は、前記被モニタ回路によって発生される前記データ要素のうちの少なくとも一部に応答自在に、前記データ要素の少なくとも一部を示すトレース要素を発生するステップを備え、前記発生されるトレース要素は前記トレース回路の選択されたトレース動作モードに依存し、ビットパターンがトレース要素のシーケンスを示すようになっているパケットを発生し、そのパケットを前記トレースストリーム内で出力させるステップを備え、前記実行される符号化演算は、前記圧縮回路に関連する現在の圧縮方式に応じて決まり、前記選択されたトレース動作モード中に圧縮変更刺激信号に応答し、現在の圧縮方式を第1の圧縮方式からビットパターン符号化スペースが前記第1圧縮方式のビットパターン符号化スペースにオーバーラップする第2圧縮方式へ変更するステップを備え、圧縮方式の変更後、前記選択されたトレース動作モードの間に発生される別のパケットが第2圧縮方式に従って発生される。
第5の様相から見れば、本発明は、前記各パケットによって示されるトレース要素のシーケンスを決定するよう、前記トレースストリーム内の前記パケットを復号化するステップと、トレースストリームおよび前記トレースストリームのパケットから復号化されたトレース要素を参照し、所定の基準を適用し、現在の圧縮方式をいつ変更するかを決定し、前記決定時に前記圧縮変更刺激信号を発生するステップとを備える本発明の第4の様相に従って発生されるトレースストリームのうちのストリームをコンピュータに分析させるためのコンピュータプログラムを備えるコンピュータプログラム製品を提供する。
以下、添付図面に示した本発明の実施例に基づき、単なる例として、本発明について更に説明する。
図1は、モニタされる回路10、トレースモジュール20、トレースバッファ30およびトレース分析器40を含むデータ処理システムを略図で示している。図1は、トレースバッファ30を含むデータ処理システムを示しているが、別の実施例では、トレースモジュール20はその出力をトレースバッファに通すことなく、直接トレース分析器40へ送ることができる。
トレースモジュール20によって受信されるデータ要素のストリームを発生する、被モニタ回路10は種々の形態をとることができ、例えばプロセッサコア、ダイレクトメモリアクセス(DMA)エンジン、データエンジン/アクセルレータなどでもよい。これとは異なり、被モニタ回路10は、1つのバスによって結合された複数のデバイスから構成でき、データ要素がバスを通過する際に、これらデータ要素をトレースモジュール20によってモニタできる。
一実施例では、適当なソフトウェアを動作させる汎用コンピュータによって形成できるトレース分析器40は、トレースモジュール20およびトレースバッファ30に結合されている。一般にオンチップで構成されるこのトレースモジュール20は、ロジック10からのデータ要素を受信し、このデータ要素に応じ、トレースバッファ30(このトレースバッファはオンチップまたはオフチップで設けることができる)に記憶されるトレース要素を提供するトレースストリームを発生する。一般にオフチップで構成されるトレース分析器40は、トレース中の被モニタ回路10のアクティビティを示す情報を引き出すように、このトレースストリームを分析するのに使用される。特にトレースストリームの分析により、被モニタ回路10の詳細なアクティビティを決定できる。
トレース分析器のユーザーがトレースモジュールの所定の機能を制御できるように、トレース分析器40はトレースモジュール20に接続されている。更に一部の実施例では、トレースバッファ30内でバッファ化するのではなく、トレースモジュール20が発生したトレースストリームを直接トレース分析器40に提供できる。
図2は、図1の被モニタ回路10の一例のブロック図である。この例では、被モニタ回路10はバス15によって接続された2つのデバイス(11、12)を備える。バスは、接続部105を介してトレースモジュール20にリンクされており、ロジックによって発生されたデータ要素が接続部105を通って送られる。
図3は、一実施例に係わるトレースモジュール20のブロック図である。このトレースモジュール20は、トレース中の被モニタ回路の状態または動作を示すデータ要素を、パス105を通して受信するようになっている。同期ロジック100は、トレースモジュール20内で使用するのにより適した信号の内部バージョンとなるように、着信信号を変換するようになっている。これら内部バージョンの信号は、制御ロジック110およびトレース発生ロジック120へ送られるが、制御ロジック110およびトレース発生ロジック120は、必ずしも同じ信号を受信しなくてもよいことが理解できよう。基本的には、制御ロジック110はトレースを起動すべきかどうか、更にどのタイプのデータ要素をトレースすべきかを判断できるよう、トリガー可能な事象に関係するデータ、例えば命令アドレス、データ値、レジスタアクセスなどを受信しなければならない。次に制御ロジック110は、トレース発生ロジック120へ適当な制御信号を発生し、必要とされるトレース要素をトレース発生ロジック120によって発生させる。トレース発生ロジック120は、制御ロジック110が発生する制御信号に応じ、トレースする必要があるデータを同期ロジック110を介して受信する。
本発明の実施例によれば、制御ロジック110の動作をコンフィギュアするのに使用される制御レジスタ140が設けられており、これら制御レジスタ140は、トレース分析器40から設定可能である。基本的には、トレース発生ロジックの動作の基本的には2つの要素を命令する多数の制御レジスタを設けることができる。例えば、いつトレース要素を発生するか、すなわちいつ特定レンジのアドレスにアクセスするか、および何が特定の転送のデータアドレスおよび/またはデータ値のためのトレース要素を発生するか、および一般に、読み出し動作か、書き込み動作か、ロックされているか、セキュリティ情報か等の転送に関する補足的情報を何が発生するのかを、命令するような、多数の制御レジスタを設けることができる。
いつ発生するかの条件(“when”condition)が満たされた制御ロジック110によって発生された制御信号によりトリガーされると、トレース発生ロジック120は、同期ロジック100から受信しているデータ要素を示す、必要なトレース要素を、制御ロジックからまた受信する、何を発生するかの信号(“what”signal)に従い、発生する。次にこれら発生されたトレース要素は一般に圧縮演算を受け、次にFIFO130へ出力される。これからトレースバッファ30へトレースストリームが出力されるか、または別の実施例では、直接トレース分析器40へ出力される。
以下、本発明の種々の異なる実施例に係わるトレース発生器120によって実行される圧縮動作のより細部について説明するが、一般的には、本発明の実施例のトレース発生器には、トレースストリーム内で出力するためのパケットを発生するよう、あるシーケンスのトレース要素に対して符号化演算を実施するための圧縮回路が設けられ、実施される符号化演算は、圧縮回路に関連する現在の圧縮方式に依存する。トレース発生器120は、現在の圧縮方式を第1圧縮方式から第2圧縮方式に変更するための圧縮変更刺激信号に応答自在であり、第2圧縮方式のビットパターン符号化スペースは、第1圧縮方式のビットパターン符号化スペースにオーバーラップするので、圧縮方式を変えた後に、同じトレース動作モードの間で発生される別のパケットは第2圧縮方式に従って発生される。ある圧縮分析回路により、トレースモジュール20の内部で圧縮変更刺激信号を発生してもよいし、またはこれとは異なり、内部で実行される圧縮分析に基づき、トレース分析ツール40のような外部ソースからこの変更刺激信号を発生してもよい。
本発明の一実施例では、トレースモジュール20内で2つの異なるトレース動作モード、すなわち非周期的な正確なトレース動作モードおよび周期的な正確なトレース動作モードが提供される。いずれの動作モードにおいても、命令トレースおよび/またはデータトレースを含むトレースストリームを出力することが可能であり、圧縮回路はトレースストリーム内で出力しなければならない種々のトレース要素を符号化するための符号化方式を提供する圧縮方式と、これらトレース動作モードとを関連付けている。特定の圧縮方式では、サポートされる種々の符号化フォーマットは、ビットパターン符号化スペース内でオーバーラップしないので、任意の特定のビットパターンからトレース分析ツールはそのビットパターンによってどのトレース要素が表わされているかをユニークに識別できる。現在まで、選択されたトレース動作モードに対し、トレースモジュール20の圧縮回路によって実施される圧縮方式が既に決定され、固定されている。多くの状況では、かかるアプローチは満足できるように動作できるが、圧縮の効率を妥協しなければならない一部の状況では、被モニタ回路のアクティビティがかなり大きく変動することは、次第に一般的なことになりつつある。オンチップトレーシングメカニズムを含む最近のシステムにおいて、トレースデータのボリュームが大きな問題になるにつれ、特定のトレース動作モードにある状態で、例えば同じ基本タイプのトレース要素を発生している間、圧縮方式を変更するためのメカニズムを提供する本発明の実施例は、圧縮効率における大幅な改善を生じさせることができるので、発生されるトレースデータの全ボリュームを低減できる。以下、本発明の特定の実施例についてより詳細に説明する。
図4は、トレース発生器内の圧縮回路が複数の圧縮回路210、220、230から成る本発明の特定の実施例に係わる、図3のトレース発生器120を示す。図4に示されるように、トレース発生器に関してトレース要素を発生させなければならない被モニタ回路によって発生されたデータ要素のいずれかを、同期回路100からトレース発生器120内のトレース要素発生回路200へ転送し、次にトレース要素発生器は公知の態様で、トレース要素のストリームを発生する。次に、このようなトレース要素のストリームは圧縮回路へ送られる。この圧縮回路は、図4に示される実施例では、圧縮回路210、220、230から成る。これら圧縮回路は、異なる圧縮方式を利用するようになっており、時間内の特定の時点にて、トレース発生器120からFIFO130に出力されるパケットのトレースストリームを発生するよう、マルチプレクサ240を介して圧縮回路のうちの1つからの出力が選択される。圧縮回路のいずれも、一実施例ではパラレルで動作させることができるが、一般的には正常な動作では、不要な電力消費を防止するように、圧縮回路のうちの1つしかアクティブとされない場合が生じる。
トレース発生器120内には圧縮分析回路250も設けられ、この圧縮分析回路250は、少なくともテスト動作中に種々の圧縮回路からの出力を受信し、これら信号を比較し、どの圧縮回路が最も効率的な圧縮を行っているかを判断できる。かかるテスト動作中、圧縮回路210、220、230は、トレース要素発生器200によって発生される同じ未処理のトレース要素ストリームにパラレルに動作するようになっており、これら回路からの出力は圧縮分析回路250へルートバックされる。この時間中、圧縮回路のうちの1つは、実際に出力がトレースストリームを形成するアクティブな圧縮回路として選択でき、この場合、マルチプレクサ240は圧縮回路の出力を選択する。代替例として、テスト期間中、圧縮回路210、220、230の各々は、次々に所定の時間の間、圧縮を実行するように選択され、それらの結果は圧縮分析回路250内で再び相関化される。ある時間の間、圧縮回路の各々が使用されると、圧縮分析回路250は種々の圧縮回路から得られた結果を比較し、その結果に基づき、トレース発生器120により発生される将来のパケットに対して使用すべき最も適した圧縮回路を選択する。
種々の圧縮回路によって発生される結果に基づき、圧縮分析回路内で実行される実際の比較は、種々の形態をとることができる。しかしながら、一実施例では、圧縮分析回路は各比較回路に対し、種々の圧縮回路から出力された圧縮されたトレースデータのバイト数を識別するトレースデータカウントを保持し、圧縮分析回路が、テスト動作中に出力トレースデータの最小数のバイトを発生した圧縮回路を選択できるようにする。
圧縮分析回路がその分析を一旦実行すると、この分析回路はトレース要素発生器200が出力したその後のトレース要素の圧縮を実行するよう、既に選択された圧縮回路を識別するための信号を出力する。この出力信号は、対応する圧縮回路および/またはマルチプレクサ240に直接転送してもよいし、またはこれとは異なり、図4に示されるように制御レジスタ140の符号化選択フィールド255(本例では圧縮指定フィールドとも称す)内に記憶される選択信号の形態となっていてもよい。制御レジスタ140内には、かかる符号化選択フィールド255を設けてもよいが、そのフィールドを物理的に制御レジスタ140のうちの1つにしなくてもよく、その代わりに、トレース発生器120に対してアクセス可能な適当な記憶ロケーション内に選択信号を記憶してもよい。
図5は、圧縮分析回路250が適当な圧縮回路の選択を可能にするのに使用される別の情報(additional information)を受信できるようになっている、本発明の別の実施例を示す。この実施例では、圧縮分析回路250を、圧縮方式選択回路250と称すが、その理由は、特定の圧縮回路が出力した結果を使用するのではなく、この情報によってその圧縮分析回路を直接駆動できるからである。しかしながら、圧縮回路の出力から圧縮方式選択回路250までの点線で表示されるように、一実施例では、この圧縮選択回路は選択する適当な圧縮回路を決定する際に、種々の圧縮回路によって得られる圧縮の結果も参照する。
しかしながら、図5に示されるように、圧縮方式選択回路250は、パス265を通して別の信号も受信し、特に時間内の特定の時点で適当な圧縮回路を選択する際に圧縮方式選択回路をアシストするのに使用される被モニタ回路により(またはデータ処理システム内の他の適当な回路により)発生される圧縮ヒント信号を受信する。一例として、圧縮方式の変更を適正にし得る、アクティビティの変化を識別するよう、被モニタ回路によって出力されるデータ要素内に被モニタ回路により圧縮ヒントを挿入できる。これら圧縮ヒントは、テスト動作期間の再実行をトリガーするよう、圧縮方式選択回路250によってこれら圧縮ヒントを使用でき、次に圧縮方式選択回路250は、どの圧縮回路を選択するかを決定するように、図4を参照してこれまで説明したように、種々の圧縮回路によって出力される結果を使用する。しかしながら、上記とは異なり、圧縮ヒントは、例えば行っているのはどんなアクティビティであるか、従ってトレースするのに必要なアクティビティの一般的なパターンの被モニタ回路の理解に基づき、将来のトレースパケットに対して適当であると見なされるのはどの圧縮回路であるかをアクティブに識別してもよい。
特定の圧縮ヒントの他に、圧縮方式選択回路250は、例えば被モニタ回路から出力されるデータ要素のうちの一部を参照することにより、被モニタ回路のアクティビティの特定の属性を分析したいこともある。例えば圧縮方式選択回路250は、時間内の特定の時点において動作中のアプリケーションを決定するよう、「スレッド」識別レジスタ(「コンテクスト」識別レジスタとしても知られる)をモニタし、この情報に基づき、圧縮方式の変更が適当であるかどうかの分析を実行することもできる。一例として、圧縮方式選択回路250には特定のアプリケーションが動作中のときに第1圧縮方式を適用できる旨を示す情報を提供し、異なるアプリケーションが動作中には、第2の圧縮方式が適当である旨を表示する情報を提供してもよく、この場合、圧縮方式選択回路250は、スレッド識別レジスタの分析から、どのアプリケーションが動作中であるかを判断でき、従って、どの圧縮方式を使用すべきかを決定できる。一部の実施例では、例えば埋め込み制御またはリアルタイムオペレーティングシステム(RTOS)を動作するように設計されたプロセッサをモニタする際に、どのアプリケーションが動作中であるかを判断するために、どのメモリアドレスにアクセス中であるかを分析することによって、同様な分析を実行できる。
図4の実施例と同じように、圧縮方式選択回路250の結果は対応する圧縮回路および/またはマルチプレクサ240へ直接出力してもよいし、その代わりに適当な制御レジスタ140内に設けられた符号化選択フィールド255に記憶してもよい。
図6は、圧縮分析回路250が省略されており、その代わりに、かかる圧縮分析をギア部でオフラインで実行するトレース発生器の別の実施例を示す。一例として、トレースモジュール20のトレース発生器120から時間をかけて受信したトレースストリームに基づき、トレース分析ツール内でかかる圧縮分析を実行してもよい。次に、選択信号を発生し、パス275を通して符号化選択フィールド255へルーティングし、圧縮回路210、220、230の将来の選択を制御することができる。
理解を容易にするために、図4〜6に示された種々の圧縮回路は、物理的に別個の回路として示されているが、一部の実施例では、これら回路は互いにロジックの重要な部分を共用してもよいと理解できよう。特に、各圧縮回路は使用できる異なる圧縮方式を代表しているが、特定の圧縮方式内に設けられた多数の符号化フォーマットを、他の圧縮方式と共に共用してもよい。例えば一実施例では、第1圧縮方式が、第2圧縮方式内のpヘッダーに対して設けられた異なる一部の符号化フォーマットに対し、オーバーラップしたビットパターン符号化スペースを占めるpヘッダーに対する1つ以上の符号化フォーマットを設けてもよい。しかしながら、ヘッダーに関連する他のヘッダーまたはペイロード部分を符号化するために使用される他の符号化フォーマットを2つの圧縮方式の間で変えなくてもよく、従ってこれら2つの異なる圧縮方式を具現化するのに使用される圧縮回路は、実際にロジックの重要な部分を互いに共用する。
図7は、所定の数の圧縮回路の代わりに、従って所定の数の可能な圧縮方式の代わりに、再コンフィギュア可能な圧縮回路300が設けられており、この回路は一実施例ではフィールドプログラマブルゲートアレイ(FPGA)デバイスの形態をとることができるトレース発生器120の別の実施例を示す。この再コンフィギュア可能な圧縮回路300は、メモリデバイス、例えばフラッシュメモリ310内に記憶される情報を定める圧縮方式からパス330を通して再プログラムできる。この情報は、ある時間にわたってトレース発生器120により発生されたトレースストリームを分析するのに使用される外部圧縮分析ツールによって発生され、この情報はトレースストリームに基づき、適当な圧縮方式を発生する。この適当な圧縮方式は、発生されるトレースストリームの将来のパケットのために、圧縮効率の改善を可能にするが、時間経過に対して同じパケットのトレース要素が発生すると仮定した場合、トレースモジュールは同じトレース動作モードのままである。従って、かかる実施例では、所定の数の所定の圧縮方式の間で単に選択するのではなく、かかるアプローチは、より適したな圧縮方式を発生できるようにし、再コンフィギュア可能な圧縮回路を、発生された圧縮方式に従って再プログラムすることができる。
かかる分析を実行し、特定の圧縮方式を発生するのに必要となり得る時間を仮定した場合、分析はオフチップ、例えばトレース分析器内で実行されると一般に予想される。しかしながら、所定の実施例では、かかる分析が依然としてトレース発生器120内でオンチップで実行されることもあり、この場合、再コンフィギュア可能な圧縮回路300は内部で発生された情報を定める圧縮に基づき、再プログラムされる。
図8は、本発明の一実施例に係わるトレース分析器40内に設けることができるロジックを示す。まず最初に、トレースストリームはパケット逆圧縮ロジック400によって受信される。この逆圧縮ロジック400は、トレースストリームパケットを発生するのに使用された圧縮方式の理解に基づき、パケットを成分トレース要素に逆圧縮する。次に、解読ロジック410がトレース要素を使用し、トレース要素が示すような被モニタ回路で実行されているアクティビティに関する実行情報を構成する。かかる分析を実行するために、解読ロジック410は、被モニタ回路によって実行されるプログラムコードのコピーを作成するプログラムイメージ420を一般に参照する。次に分析回路430は、更に必要な分析を実行し、例えば処理命令のシーケンスのデバッグを容易にし、プロファイル動作を実行し、特定プログラムコードなどの性能を決定する。コンポーネント400、410、420、430は、標準的なトレース分析ツール40内に設けることができる。
本発明の一実施例によれば、トレース分析ツール40は、トレースモジュール20内の圧縮回路によって実施される圧縮の有効性の分析を実行するための圧縮分析ロジック440を更に備えることができる。この分析を実行するために、圧縮分析ロジック440は、パケット逆圧縮ロジック400によって逆圧縮されるように、トレース要素のストリームと共に、トレース分析ツール40へ入力されたトレースストリームを受信する。一実施例では、圧縮分析ロジック440は次に符号化データベース450内で識別された多数の公知の圧縮方式で使用し、同じシーケンスのトレース要素に対して種々の異なる圧縮を実行することができ、この実行に基づき、圧縮方式のいずれかトレースモジュール20から受信されたトレースストリームで得られる圧縮よりも、より効率的な圧縮を行うかどうかを判断できる。そうである場合、これら圧縮方式のうちの1つを選択し、トレースモジュール20のトレース発生器120内で将来の圧縮を制御するための符号化選択信号がパス445を通して出力される。例えばこの情報はトレース要素の将来の圧縮のためにどの圧縮回路を選択するかを管理するよう、制御レジスタ140の符号化選択フィールド255へルーティングできる。
別の実施例において、トレース発生器120が再コンフィギュア可能な圧縮回路300を含む場合、圧縮分析ロジック440はパケット逆圧縮ロジック400が逆圧縮したトレース要素の所定のサブセットの分析に基づき、より適した圧縮を提供することを目的とする特定の圧縮方式を推定することを試みることができ、この場合、パス445を通して、決定された圧縮方式の定義が出力され、トレース発生器120の再コンフィギュア可能な圧縮回路を再プログラムするのに使用される。
圧縮分析を実行したとしても、圧縮分析ロジック440は、被モニタ回路がプログラムイメージとして設定された符号を実行中に期待される一般的なアクティビティを、分析されたトレース要素部分が表示するかどうかを判断できるように、プログラムイメージ420にアクセスすることもできる。これは、圧縮効率の長期の節約を生じる可能性が高いかどうかを判断するために、プログラムイメージを基準にチェックを行うことを保証することにより、別の圧縮方式のほうがより効率的となると圧縮分析ロジック440が判断した状況でのチェックポイントとしてこれを使用できる。
上記のように、トレースモジュール20内のトレース発生器120は、複数のパケットから成るトレースストリームを発生する。図9は、かかるトレースストリームの一部の例を示しており、これらパケットのサイズは異なることがあり、かかるパケットは異なる要素を含み得ることを示すのに役立っている。一実施例における各パケットは、ヘッダー500、510、515を含み、このヘッダーは特定の実施例では、1バイトの情報を含む。1つのパケットは、初期に述べたpヘッダーの例におけるように、1つのヘッダーのみから成ることができ、この場合、ヘッダーは被モニタ回路の実行アクティビティを示すように発生されたあるシーケンスのアトムを符号化しており、またはこれとは異なり、ヘッダーの後にオプションのペイロード部分505、520が続いてもよい。ペイロード部分のサイズは異なってもよい。一実施例では、ペイロードのサイズは関連するヘッダー部分のコンテントによって決定されるように、トレース中の情報のタイプに応じて決まることができる。これとは異なり、トレース情報の特定部分に対するペイロードサイズは可変でもよく、この場合、特定のペイロード部分の長さまたは終了部を識別するために、トレースストリーム内に、ある同期情報が設けられる。
ヘッダーおよび種々のオプションのペイロードを取り扱うための、特定の圧縮方式内で提供される圧縮フォーマットは種々の形態をとることができるが、特定の圧縮方式内で提供される種々の符号化フォーマットは、内部で示されるトレース要素を識別するために、トレース分析器によりデータの特定のブロックをユニークに復号化できるように非オーバーラップ状態とされる。従って、例として、1バイトのデータから成るヘッダーに対しては、256種類の符号化が可能であるが、pヘッダーを符号化するのに、これら符号化の一部しか利用できず、他のタイプのヘッダーを符号化するのに、その符号化スペースの他の部分が使用される。特定の圧縮方式で利用できる符号化フォーマットの数を増やすには、利用できるビットパターンの全体のサイズを大きくする必要があるが、このことは、トレースバンド幅全体も広くする。
この代わりに、本発明の実施例によれば、前に説明したように、特定のトレース動作モードで使用するように多数の圧縮方式を利用できるようにするため、特定のトレース動作モードに対して実施される圧縮方式を変更できるようにするメカニズムが提供される。この場合、かかる圧縮方式の各々は、圧縮方式の別の方式のビットパターン符号化スペースとオーバーラップするビットパターン符号化スペースを有する。時間内の特定のポイントにおいて、これら圧縮方式のうちの1つしか使用されず、現在の圧縮方式として識別されるが、圧縮変化の刺激信号に応答し、圧縮方式を異なる圧縮方式に切り換えることができ、その後、トレースストリーム内に生じる特定のビットパターンは、異なる圧縮方式に関連し、トレースストリーム内で早期に生じた対応するビットパターンに対する異なる意味を有することができる。
図10は、本発明の一実施例に従って、図4の圧縮回路210、220、230および圧縮分析回路250内で実行できるステップを示すフローチャートである。ステップ600において、圧縮分析回路のテストモードに入る。この時点で、各圧縮回路に対して維持されたトレースデータカウントがリセットされる。ステップ605では、プロセスはトレース要素発生器200からのトレース要素のシーケンスの受信を待ち、その後、ステップ610、620、630で圧縮回路210、220、230の各々が、関連する圧縮方式を使用してトレース要素のそのシーケンスを圧縮する。次に、各圧縮回路によって生じた結果が、圧縮分析回路250へ転送され、この分析回路はステップ612、622、632にて、各圧縮回路に対して維持された対応するトレースデータのカウントを、その圧縮回路が発生したトレースデータの量だけインクリメントする。図10の例では、圧縮回路の各々は、このテスト動作モード中にパラレルに動作できると仮定しているが、別の実施例では、次に上記のようにトレース要素を発生する特定の時間の間、圧縮回路の各々を利用できる。後者の実施例の場合、圧縮分析回路は種々の圧縮回路に対する別個のトレースデータカウントを依然として維持することができると理解できよう。
ステップ640では、テスト期間が終了したかどうかが判断され、終了していない場合、プロセスはステップ605に戻る。しかしながら、テスト期間が完了すると、次に圧縮分析回路250は、ステップ645にて、種々の圧縮回路からの出力に基づいて維持されたトレースデータカウント情報を基準に、最も適当な圧縮方式を選択する。
その後、ステップ650にて、そのときに選択されている圧縮方式、すなわちトレースストリーム内で実際に出力されたパケットを発生するのに使用されている圧縮方式が、ステップ645で最も適当な方式として選択された方式であるかどうかが判断される。そうである場合、別のアクションは不要であり、ステップ660でテストモードを出る。しかしながら、現在の方式が最良の方式でない場合、ステップ655にて、圧縮変更刺激信号が発せられ、図4の例では、この刺激信号はトレースストリーム内に含まれるその後のパケットを発生するのにどの圧縮回路を使用するかを管理するための、制御レジスタ140の符号化選択フィールド255に記憶される選択信号の形態をとる。
図11は、本発明の一実施例に従って、図8に示されるトレース分析器40のパケット逆圧縮ロジック400および圧縮分析ロジック440により実行できるステップのシーケンスを示すフローチャートである。ステップ700において、分析のためにトレースストリームの一部が選択され、その後、ステップ705にて対応するトレース要素にトレースストリームを逆圧縮するために、パケット逆圧縮ロジック400を使用する。その後、ステップ710で、符号化データベース450で識別されるような、利用可能な他の圧縮方式のすべてを使用して、トレース要素を再圧縮する。その後、ステップ715にて、提供されたトレース要素に対して最小量のトレースデータを発生する方式に基づき、最も効率的な方式を選択する。その後、ステップ720にて、パス445を通して圧縮変更刺激信号を発生する。この変更刺激信号は、例えば図6に前に示したように、制御レジスタ140の符号化選択フィールド255へルーティングされる選択信号の形態をとり得る。
図12は、本発明の別の実施例に従い、パケット逆圧縮ロジック400および圧縮分析ロジック440により実行できるステップの別のシーケンスを示す。ステップ750にて、トレースストリームの一部が分析のために選択され、その後、ステップ755にて、対応するトレース要素を識別するためにパケット逆圧縮ロジック400を使ってその部分が逆圧縮される。その後、ステップ760にて、圧縮可能な特徴を識別するよう、トレース要素が分析される。これを行うには、ランレングス符号化または圧縮に適した特徴を識別するための他の公知の技術により圧縮できる同じフォームのトレース要素のシーケンスを識別することを必要とすることがある。
その後、ステップ765にて、ステップ760で識別された圧縮可能な特徴に基づき、新しい圧縮方式を考えつく。その後、ステップ770にて、圧縮変更刺激信号を発生する。この状況では、圧縮変更刺激信号は新しい圧縮方式を定めることを必要とする。
トレースモジュール20内の圧縮回路を再コンフィギュアできる状況では、かかる実施例を使用できる。例えば圧縮回路がFPGAデバイスを含む場合、圧縮変更刺激信号に基づき、FPGAを再プログラムすることが可能である。従って、ステップ775にて、トレース発生回路が新しく識別された圧縮方式に従い、その後、圧縮を実行するように圧縮変更刺激信号に基づき、トレース発生回路が再コンフィギュアされる。
図13は、同じトレース動作モードにありながら、圧縮方式を変更できるようにするための本発明の実施例の機構を提供する際に得られる圧縮効率の向上を示す略図である。図13は、次の検討事項に基づくものである。
次のように2バイトの符号化されたプロトコルを検討する。
プロトコル1:
フォーマット1:10EEEEE0(シーケンス内の0〜31のEアトムを符号化する)
フォーマット2:11NNNNN0(シーケンス内の0〜31のNアトムを符号化する)
プロトコル2:
フォーマット1:11FFFFF0(5つのアトムを符号化する。各アトムはEまたはNアトムである)
フォーマット2:101FFFF0(4つのアトムを符号化する。各アトムはEまたはNアトムである)
フォーマット3:1001FFF0(3つのアトムを符号化する。各アトムはEまたはNアトムである)
フォーマット4:10001FF0(2つのアトムを符号化する。各アトムはEまたはNアトムである)
フォーマット5:100001F0(1つのアトムを符号化する。このアトムはEまたはNアトムとなり得る)
アトムENENENのストリームを符号化する必要がある場合、プロトコル1を使用するとき、この符号化を行うには6バイトのトレースが必要であるが、一方、圧縮方式をプロトコル2に切り換えた場合、変更メッセージ0PPPPPPP(ここでPは選択されたプロトコルの番号を符号化する)と共に、2バイトのトレースを必要とするだけである。
特に図13から分かるように、プロトコル1を使用する場合、各EまたはNアトムは別個のバイトにより符号化する必要がある。その理由は、プロトコル1は、EまたはNアトムの長いシーケンスに対する圧縮を最適にするように設計された2つの異なる符号化フォーマットを有するからである。その理由は、フォーマット1内のEで表示されたビット位置は、シーケンス内の別のアトムの1つ後に生じるEアトムの番号を特定するのに使用でき、同じように、フォーマット2を使用する場合、Nで表示されるビット位置は、特定シーケンス内で生じるNアトムの番号を識別するのに使用できる。従って、プロトコル1は、後に個々のNアトムが続くような個々のEアトムを圧縮するのには適していない。これと対照的に、プロトコル2は、いずれかのタイプの1つ、2つ、3つ、4つまたは5つのアトムのシーケンスを符号化できる。その理由は、(ビット位置を1にセットすることにより)Eアトムまたは(ビット位置を0にセットすることにより)Nアトムのいずれかを識別するよう、Fによって識別された各ビット位置を使用できるからである。
従って、0〜31のEアトムのシーケンスを、単一バイトにより符号化するのに、プロトコル1のフォーマット1を使用でき、同じように、0〜31のNアトムのシーケンスを、単一バイトにより符号化するのに、プロトコル1のフォーマット2を使用できる。このことは、EまたはNアトムの大きいシーケンスを符号化する際に、圧縮効率を高くすることができるが、各Eアトムの次に1つのNアトムが続くような、上記アトムの特定シーケンスに対しては極めて効率的であるとは言えないことは明らかであり、その代わりに、切り換えをやりがいのあるものにするために十分な時間の間、同様なシーケンスが発生することが予想されると仮定した場合、図13に示されるプロトコルスイッチバイト0×02により、圧縮プロトコル2を選択するほうが良好となる。
図14は、トレースストリーム内の異なる部分において、同じビットパターンが圧縮方式に応じた別のことをどのように意味するかを示す図であり、図14は次の検討事項に基づく。
次のような2バイトの符号化されたプロトコルを検討する。
プロトコル1:
フォーマット1:1EEEEEE0(シーケンス内の0〜63のEアトムを符号化する)
フォーマット2:1NNNNNN1(シーケンス内の0〜63のNアトムを符号化する)
プロトコル2:
フォーマット1:1EEEENN0(0〜15のEアトムを符号化し、その後、0〜3のNアトムが続く)
フォーマット2:1NNNNEE1(0〜15のNアトムを符号化し、その後、0〜3のEアトムが続く)および
変更メッセージ0PPPPPPP(ここでPは選択されたプロトコルの数を符号化する)
従って、トレースストリーム内で生じる変更メッセージ0×01によるプロトコル1の選択の後で、図14に示される情報の次の2つのバイトを使って、2つのEアトムとそれに続く8個のNアトムを符号化することができる。ある理由から、この時点で、圧縮方式の変更が適当であると判断された場合、特に変更メッセージ0×02により識別されるように、圧縮プロトコル2を選択すべきであると判断された場合、次の2つのバイトは、プロトコル1を使用したときに使用された2バイトと全く同じ2バイトパターンを実際に有し得ることが理解できようが、次に2つのNアトムおよびそれに続く別の2つのNバイトを符号化する。この場合、最初のバイトはフォーマット1を使用し、2番目のバイトはプロトコル2のフォーマット2を使用する。
本発明の実施例のこれまでの説明から理解できるように、かかる実施例は、特定のトレース動作モード中でも圧縮方式の変更を行うことができるようにする。かかる変更を行うことができる方法は種々存在する。一実施例では、トレース回路はダイナミックに圧縮方式を、選択された組のうちの1つに適合化できる。これを行うために、トレース回路は多数の技術をダイナミックに比較し、最良の圧縮を提供するものと認識される1つの技術を選択するか、または小さいテストセグメントを通し、多数の異なる技術を試み、次に最良の圧縮を行うものと認識される技術に落ち着くことができる。上記のように別の実施例では、トレース分析ツールを使用し、トレース出力を分析すると共に、最良の圧縮技術を決定し、次にトレース回路によって実施される圧縮方式を切り換えるのに使用される選択信号を発生する。これとは異なり、トレース分析ツールは、トレース出力を分析し、より最適な圧縮方式を決定し、次にトレース回路内のコンフィギュア可能な圧縮回路を再プログラムし、トレース回路が発生する将来のパケットのための、その圧縮方式を使用してもよい。
一実施例では、トレースストリームを逆圧縮する役割を果たすロジックが、新しい圧縮方式にダイナミックに適合できるよう、トレースストリーム内に変更圧縮バイトを含ませることにより、どの圧縮方式が使用中であるかを示すように、トレース回路を構成できる。かかるアプローチは、逆圧縮を実行するトレース分析ツールが圧縮方式の変更をいつ行うかが直接制御されていない状況で、特に有利である。
本発明の実施例によれば、同じビットパターンに多数の意味を載せ、1つの圧縮プロトコルでこれら意味のすべてをサポートした場合よりもビットパターンの全体のサイズを大幅に小さくすることができるので、このことは、異なる圧縮方式を使用することによって直接得られる低減よりも、全体のトレースバンド幅を大幅に小さくできる。より狭いバンド幅のトレース情報を得ることにより、このことは、オンチップ記憶容量が少なくて済み、オフチップ記憶容量も少なくて済み、トレースオフチップを送信するためのピンがより少なくて済む。
本発明のこれまでの実施例の説明では、例はpヘッダーの圧縮に集中していたが、本発明の実施例の概念は、データ値およびアドレスの圧縮のようなトレース圧縮の他の分野、および他のパケットフォーマットにも適用できる。
異なる圧縮方式の分析を実行する他に、本発明の実施例に従い、圧縮方式の選択を制御するのに、他の機構を使用することもできる。例えば前に説明したように、従うことが分かっている符号に基づき、どの圧縮方式を使用すべきかについてトレース回路にヒントを与えるように、プログラムコードを構成できる。かかるヒントは、例えばコンパイラーによりコード内に挿入できる。
更に一部の実施例では、一部の圧縮技術を粗くターンオフするのに、上記圧縮方式切り換え機構を使用できる。一部の圧縮技術に対し、逆圧縮アルゴリズムの時間およびスペースの複雑さは、ハードウェアに基づく逆圧縮を統合したり、またはシステムの性能条件を満たすよう、ソフトウェアでアルゴリズムを実行するために十分な数のオペレーションを動作できるプロセッサを統合することが、予測不能な大きさになり得る。この圧縮方式切り換え機構は、逆圧縮アルゴリズムの時間の複雑さおよびスペースの複雑さを低減するように、一部の圧縮技術を粗くディスエーブルするのに使用できる。従って、オンチップで捕捉されたトレースを復号化するのに使用されるトレースモジュールと共に、オンチップで設けられる一部の自己診断ソフトウェアが存在するが、オンチップのプロセッサが十分な時間で復号化を行うのに、十分強力でない場合、オンチップソフトウェアが必要な復号化を実行することを促進するように圧縮をディスエーブルすることもできる。かかる機構は、トレースを復号化するのに、例えばチェックサム目的またはリアルタイムのトレース分析のために使用できるオンチップハードウェアにも同じように適用される。
以上で、本明細書において特定の実施例について説明したが、本発明はこれら実施例についてだけに限定されるものではなく、本発明の範囲内でこれら実施例に対して多くの変更および追加を行うことができることが理解できよう。例えば本発明の範囲から逸脱することなく、独立項の特徴事項と従属項の特徴とを種々組み合わせることも可能である。
本発明の一実施例に係わるデータ処理システムのブロック図である。 一実施例に係わる図1の被モニタ回路の一例を示すブロック図である。 一実施例に係わる図1のオンチップトレースモジュールをより詳細に示すブロック図である。 本発明の一実施例に係わる図3のトレース発生器を示すブロック図である。 本発明の別の実施例に係わる図3のトレース発生器を示すブロック図である。 本発明の更に別の実施例に係わる図3のトレース発生器を示すブロック図である。 本発明の更に別の実施例に係わる図3のトレース発生器を示すブロック図である。 本発明の一実施例に係わる図1のトレース分析器を示す図である。 本発明の一実施例に係わる図1のトレースモジュール20によって発生されるトレースストリーム内のパケットの提供を示す略図である。 本発明の一実施例に係わる図4の圧縮回路および圧縮分析回路の動作を示すフローチャートである。 本発明の2つの別の実施例のうちの1つに係わる、図8のパケット逆圧縮ロジックおよび圧縮分析ロジックの動作を示すフローチャートである。 本発明の2つの別の実施例のうちの1つに係わる、図8のパケット逆圧縮ロジックおよび圧縮分析ロジックの動作を示すフローチャートである。 圧縮方式を切り換えるときに得られる圧縮効率を示す略図である。 本発明の一実施例に従って使用される、異なる圧縮方式に従い、特定のビットパターンがどのように異なって解釈されるかを示す。
符号の説明
10 被モニタ回路
20 トレースモジュール
30 トレースバッファ
40 トレース分析器

Claims (20)

  1. データ処理装置の被モニタ回路のアクティビティを示すトレースストリームを発生するためのトレース回路であり、前記被モニタ回路は、前記アクティビティを示すデータ要素を発生するようになっており、前記トレース回路は、前記データ要素の少なくとも一部を示すトレース要素を発生するよう、前記被モニタ回路によって発生される前記データ要素のうちの少なくとも一部に応答自在なトレース要素発生回路を備え、前記発生されるトレース要素は前記トレース回路の選択されたトレース動作モードに依存し、
    ビットパターンがトレース要素のシーケンスを示すようになっているパケットを発生し、そのパケットを前記トレースストリーム内で出力させるよう、前記トレース要素のシーケンスに符号化演算を実行するための圧縮回路を備え、前記実行される符号化演算は、前記圧縮回路に関連する現在の圧縮方式に応じて決まり、
    前記選択されたトレース動作モード中に前記圧縮回路は圧縮変更刺激信号に応答でき、現在の圧縮方式を第1の圧縮方式からビットパターン符号化スペースが前記第1圧縮方式のビットパターン符号化スペースにオーバーラップする第2圧縮方式へ変更し、よって圧縮方式の変更後、前記選択されたトレース動作モードの間に発生される別のパケットが第2圧縮方式に従って発生される、トレース回路。
  2. 現在の圧縮方式をいつ変更するかを判断するための所定の基準を適用し、前記判断時に圧縮変更刺激信号を発生させるための圧縮方式選択回路を更に備える、請求項1に記載のトレース回路。
  3. 前記圧縮回路は、複数の圧縮要素を備え、各圧縮要素は、異なる圧縮方式を実施すると共に、前記符号化演算を実行し、
    前記圧縮方式選択回路は、圧縮方式が現在の圧縮方式となっている圧縮要素として前記圧縮要素のうちの1つを選択するための選択信号を発生するようになっており、よって前記選択された圧縮要素は、前記トレースストリーム内に含まれるためのパケットを発生し、
    前記圧縮方式選択回路は、前記選択信号を変えることにより、前記圧縮変更刺激信号を発生するようになっている、請求項2に記載のトレース回路。
  4. 少なくともテスト動作期間中、前記圧縮要素の各々は、符号化演算を実行するようになっており、この場合、発生されたパケットは前記圧縮方式選択回路によって受信され、前記圧縮方式選択回路は、発生されたパケットに対し、分析動作を実行し、前記選択信号により前記圧縮要素のうちのどれを選択するかを判断するようになっている、請求項3に記載のトレース回路。
  5. 前記圧縮回路は再コンフィギュア可能な回路であり、発生時の前記圧縮変更刺激信号は、前記再コンフィギュア可能な回路を再コンフィギュアし、前記第2圧縮方式を実施するのに使用される情報を含む、請求項1に記載のトレース回路。
  6. 前記圧縮回路は、再コンフィギュア可能なデュプリケート回路を備え、よって第1圧縮方式を実施するようになっている再コンフィギュア可能な回路のうちの一方は、圧縮変更刺激信号の受信の後で動作を続けるようになっており、前記再コンフィギュア可能な回路の他方は、前記圧縮変更刺激信号に従い、再コンフィギュアされるようになっており、かかる再コンフィギュアの後で、前記再コンフィギュア可能な回路のうちの他方は、前記第2圧縮方式に従って次のパケットを発生するのに使用される、請求項5に記載のトレース回路。
  7. 前記再コンフィギュア可能な回路は、プログラマブルロジックデバイスであり、前記プログラマブルロジックデバイスを再プログラムするのに使用されるメモリデバイス内に前記圧縮変更刺激信号が記憶される、請求項5に記載のトレース回路。
  8. 前記被モニタ回路はヒント信号を出力し、前記ヒント信号は、現在の圧縮方式を変更するかどうかを判断するときに参考として前記圧縮方式選択回路へルーティングされる、請求項2に記載のトレース回路。
  9. 前記圧縮方式選択回路は、現在の圧縮方式を変更するかどうかを判断する際に、前記被モニタ回路のアクティビティの1つ以上の属性に応答自在である、請求項2に記載のトレース回路。
  10. 前記1つ以上の属性のうちの1つは、前記被モニタ回路内の現在の実行スレッドを示すスレッド識別レジスタ内に保持された値である、請求項9に記載のトレース回路。
  11. 前記1つ以上の属性のうちの1つは、前記被モニタ回路がアクセス中のメモリアドレス領域である、請求項9に記載のトレース回路。
  12. 前記圧縮変更刺激信号を記憶するための圧縮指定フィールドを有する制御レジスタを更に備え、前記圧縮回路は、前記制御レジスタの前記圧縮指定フィールドを参照し、現在の圧縮方式をいつ変更するかを決定する、請求項1に記載のトレース回路。
  13. 現在の圧縮方式を変えるときに、前記圧縮回路は変更を行った旨を示す変更信号をトレースストリーム内に出力するようになっており、よって前記トレースストリームを分析するのに使用されるトレース分析装置は、トレースストリーム内のパケットを正確に解読するために前記圧縮方式がいつ変更されたかを判断できる、請求項1に記載のトレース回路。
  14. 被モニタ回路のアクティビティを示すデータ要素を発生するための被モニタ回路と、
    前記被モニタ回路の前記アクティビティを示すトレースストリームを発生するための、請求項1に記載のトレース回路とを備えるデータ処理装置。
  15. 前記各パケットによって示されるトレース要素のシーケンスを決定するよう、前記トレースストリーム内の前記パケットを復号化するためのパケット逆圧縮ロジックと、
    前記パケット逆圧縮ロジックによって決定された前記トレースストリームおよび前記トレース要素を受信し、所定の基準を適用し、現在の圧縮方式をいつ変更するかを決定し、前記決定時に前記圧縮変更刺激信号を発生するようになっている圧縮方式選択ロジックとを備える、請求項1に記載のトレース回路によって発生されるトレースストリームを分析するためのトレース分析装置。
  16. 前記トレースロジックの前記圧縮回路は、所定の数の圧縮方式をサポートしており、
    前記圧縮方式選択ロジックは、どの圧縮方式が現在の圧縮方式であるかを識別するための選択信号を発生するようになっており、
    前記圧縮方式選択ロジックは、前記選択信号を変えることにより、前記圧縮方式変更刺激信号を発生するようになっている、請求項15に記載のトレース分析装置。
  17. 前記圧縮変更刺激信号は現在の圧縮方式として使用すべき第2圧縮方式を定める情報を含む、請求項15に記載のトレース分析装置。
  18. 前記圧縮方式選択ロジックは、現在の圧縮方式を変更するかどうかを判断するための前記所定の基準を適用する際に、プログラム画像を参照する、請求項15に記載のトレース分析装置。
  19. データ処理装置の被モニタ回路のアクティビティを示すトレースストリームを発生するためのトレース回路により適用される圧縮方式を変更するための方法であって、前記被モニタ回路は、アクティビティを示すデータ要素を発生するようになっており、この方法は、
    前記被モニタ回路によって発生される前記データ要素のうちの少なくとも一部に応答自在に、前記データ要素の少なくとも一部を示すトレース要素を発生するステップを備え、前記発生されるトレース要素は前記トレース回路の選択されたトレース動作モードに依存し、
    ビットパターンがトレース要素のシーケンスを示すようになっているパケットを発生し、そのパケットを前記トレースストリーム内で出力させるステップを備え、前記実行される符号化演算は、前記圧縮回路に関連する現在の圧縮方式に応じて決まり、
    前記選択されたトレース動作モード中に圧縮変更刺激信号に応答し、現在の圧縮方式を第1の圧縮方式からビットパターン符号化スペースが前記第1圧縮方式のビットパターン符号化スペースにオーバーラップする第2圧縮方式へ変更するステップを備え、圧縮方式の変更後、前記選択されたトレース動作モードの間に発生される別のパケットが第2圧縮方式に従って発生される方法。
  20. 前記各パケットによって示されるトレース要素のシーケンスを決定するよう、前記トレースストリーム内の前記パケットを復号化するステップと、
    トレースストリームおよび前記トレースストリームのパケットから復号化されたトレース要素を参照し、所定の基準を適用し、現在の圧縮方式をいつ変更するかを決定し、前記決定時に前記圧縮変更刺激信号を発生するステップとを備えた請求項19記載の方法によって発生されるトレースストリームのうちのストリームをコンピュータに分析させるためのコンピュータプログラムを備えるコンピュータプログラム製品。
JP2008248146A 2007-09-28 2008-09-26 データ処理装置用のトレースストリームを発生するための技術 Pending JP2009087343A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0719043A GB2453174B (en) 2007-09-28 2007-09-28 Techniques for generating a trace stream for a data processing apparatus

Publications (1)

Publication Number Publication Date
JP2009087343A true JP2009087343A (ja) 2009-04-23

Family

ID=38701896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008248146A Pending JP2009087343A (ja) 2007-09-28 2008-09-26 データ処理装置用のトレースストリームを発生するための技術

Country Status (4)

Country Link
US (1) US7962664B2 (ja)
JP (1) JP2009087343A (ja)
CN (1) CN101398782B (ja)
GB (1) GB2453174B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012088887A (ja) * 2010-10-19 2012-05-10 Mitsubishi Electric Corp トレースデータ取得装置、トレースデータ取得装置のトレースデータ取得方法およびデバッグシステム
KR20190074981A (ko) 2017-12-20 2019-06-28 르네사스 일렉트로닉스 가부시키가이샤 트레이스 데이터 압축 방식 선정 장치, 방법, 및 프로그램

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009099045A1 (ja) * 2008-02-04 2009-08-13 Nec Corporation トレース・障害観測システム、トレース・障害観測方法及びトレース・障害観測プログラム
US9098625B2 (en) * 2008-02-29 2015-08-04 International Business Machines Corporation Viral trace
GB2481380B (en) * 2010-06-21 2018-05-16 Advanced Risc Mach Ltd Correlating trace data streams
US9348688B2 (en) 2010-06-21 2016-05-24 Arm Limited Correlating trace data streams
US20120042212A1 (en) 2010-08-10 2012-02-16 Gilbert Laurenti Mixed Mode Processor Tracing
JP5636816B2 (ja) * 2010-08-25 2014-12-10 富士ゼロックス株式会社 再構成可能演算回路及びプログラム
US10642709B2 (en) * 2011-04-19 2020-05-05 Microsoft Technology Licensing, Llc Processor cache tracing
KR20130066402A (ko) * 2011-12-12 2013-06-20 삼성전자주식회사 트레이스 데이터 저장 장치 및 방법
US8612650B1 (en) 2012-03-13 2013-12-17 Western Digital Technologies, Inc. Virtual extension of buffer to reduce buffer overflow during tracing
US8724693B2 (en) * 2012-05-11 2014-05-13 Oracle International Corporation Mechanism for automatic network data compression on a network connection
US9575871B2 (en) * 2012-09-04 2017-02-21 Salesforce.Com, Inc. System and method for dynamically debugging data in a multi-tenant database environment
GB2507049A (en) * 2012-10-16 2014-04-23 Ibm Synchronizing Trace Data
JP2015103077A (ja) * 2013-11-26 2015-06-04 富士通株式会社 演算処理装置、情報処理装置、及び、情報処理装置の制御方法
JP6284643B2 (ja) 2013-12-02 2018-02-28 キューベース リミテッド ライアビリティ カンパニー 非構造化テキストにおける特徴の曖昧性除去方法
US9201744B2 (en) 2013-12-02 2015-12-01 Qbase, LLC Fault tolerant architecture for distributed computing systems
US9336280B2 (en) 2013-12-02 2016-05-10 Qbase, LLC Method for entity-driven alerts based on disambiguated features
CN106462575A (zh) 2013-12-02 2017-02-22 丘贝斯有限责任公司 群集内存数据库的设计及实现
US9542477B2 (en) 2013-12-02 2017-01-10 Qbase, LLC Method of automated discovery of topics relatedness
US9544361B2 (en) 2013-12-02 2017-01-10 Qbase, LLC Event detection through text analysis using dynamic self evolving/learning module
US9424294B2 (en) 2013-12-02 2016-08-23 Qbase, LLC Method for facet searching and search suggestions
US9348573B2 (en) 2013-12-02 2016-05-24 Qbase, LLC Installation and fault handling in a distributed system utilizing supervisor and dependency manager nodes
US9355152B2 (en) 2013-12-02 2016-05-31 Qbase, LLC Non-exclusionary search within in-memory databases
US9223833B2 (en) 2013-12-02 2015-12-29 Qbase, LLC Method for in-loop human validation of disambiguated features
US9922032B2 (en) 2013-12-02 2018-03-20 Qbase, LLC Featured co-occurrence knowledge base from a corpus of documents
US9317565B2 (en) 2013-12-02 2016-04-19 Qbase, LLC Alerting system based on newly disambiguated features
US9230041B2 (en) 2013-12-02 2016-01-05 Qbase, LLC Search suggestions of related entities based on co-occurrence and/or fuzzy-score matching
US9619571B2 (en) 2013-12-02 2017-04-11 Qbase, LLC Method for searching related entities through entity co-occurrence
US9547701B2 (en) 2013-12-02 2017-01-17 Qbase, LLC Method of discovering and exploring feature knowledge
US9223875B2 (en) 2013-12-02 2015-12-29 Qbase, LLC Real-time distributed in memory search architecture
US9025892B1 (en) * 2013-12-02 2015-05-05 Qbase, LLC Data record compression with progressive and/or selective decomposition
US9208204B2 (en) 2013-12-02 2015-12-08 Qbase, LLC Search suggestions using fuzzy-score matching and entity co-occurrence
US9659108B2 (en) 2013-12-02 2017-05-23 Qbase, LLC Pluggable architecture for embedding analytics in clustered in-memory databases
US9424524B2 (en) 2013-12-02 2016-08-23 Qbase, LLC Extracting facts from unstructured text
US9177262B2 (en) 2013-12-02 2015-11-03 Qbase, LLC Method of automated discovery of new topics
US9984427B2 (en) 2013-12-02 2018-05-29 Qbase, LLC Data ingestion module for event detection and increased situational awareness
WO2015084726A1 (en) 2013-12-02 2015-06-11 Qbase, LLC Event detection through text analysis template models
US9361317B2 (en) 2014-03-04 2016-06-07 Qbase, LLC Method for entity enrichment of digital content to enable advanced search functionality in content management systems
US9606870B1 (en) 2014-03-31 2017-03-28 EMC IP Holding Company LLC Data reduction techniques in a flash-based key/value cluster storage
GB201410028D0 (en) * 2014-06-05 2014-07-16 Soletanche Freyssinet Sas Spectral data compression
US9524227B2 (en) * 2014-07-09 2016-12-20 Intel Corporation Apparatuses and methods for generating a suppressed address trace
CN104700231A (zh) * 2015-03-27 2015-06-10 福州大学 基于用户行为的桌面屏幕审计方法
US20170249146A1 (en) * 2016-02-29 2017-08-31 Qualcomm Incorporated Bandwidth reduction for instruction tracing
GB2551574B (en) * 2016-06-24 2019-11-27 Advanced Risc Mach Ltd An apparatus and method for generating and processing a trace stream indicative of instruction execution by processing circuitry
US10013200B1 (en) * 2016-06-29 2018-07-03 EMC IP Holding Company LLC Early compression prediction in a storage system with granular block sizes
KR102538258B1 (ko) * 2016-07-25 2023-05-31 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 처리 시스템
GB2553582B (en) * 2016-09-13 2020-07-08 Advanced Risc Mach Ltd An apparatus and method for generating and processing a trace stream indicative of instruction execution by processing circuitry
GB2558955B (en) * 2017-01-24 2020-12-23 Advanced Risc Mach Ltd An apparatus and method for generating and processing a trace stream indicative of execution of predicated vector memory access instructions
GB2570512B (en) * 2018-01-30 2020-04-22 Advanced Risc Mach Ltd An apparatus and method for aligning corresponding elements in multiple streams of elements
CN110727603A (zh) * 2019-10-25 2020-01-24 重庆誉存大数据科技有限公司 一种基于ui自动化测试定位元素的改进方法
WO2022077388A1 (zh) * 2020-10-15 2022-04-21 华为技术有限公司 一种处理器的安全度量装置及方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06168096A (ja) * 1992-11-30 1994-06-14 Fujitsu Ltd データ符号化方式及びデータ復元方式
JPH0944423A (ja) * 1995-07-28 1997-02-14 Toshiba Corp 計算機システム
JPH09325903A (ja) * 1996-04-01 1997-12-16 Mitsubishi Electric Corp 障害記録方式
JPH10303971A (ja) * 1997-04-23 1998-11-13 Nippon Telegr & Teleph Corp <Ntt> メッセージ通信方式
JP2001005635A (ja) * 1999-06-23 2001-01-12 Sony Corp 情報処理装置及び方法、並びに媒体
US20020178405A1 (en) * 2002-03-11 2002-11-28 "American Arium" Trace reporting method and system
JP2006012066A (ja) * 2004-06-29 2006-01-12 Toshiba Corp トレース解析装置およびトレース解析方法
JP2007065828A (ja) * 2005-08-30 2007-03-15 Keiichi Aoki 通信データ圧縮方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01134541A (ja) * 1987-11-20 1989-05-26 Toshiba Corp 情報処理装置
JP2000207245A (ja) * 1999-01-12 2000-07-28 Matsushita Electric Ind Co Ltd インサ―キットエミュレ―タ
US6918065B1 (en) * 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
JP2002207245A (ja) 2001-01-11 2002-07-26 Konica Corp 撮影装置
US7386046B2 (en) * 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
AU2002327599A1 (en) * 2001-08-29 2003-03-18 Analog Devices, Inc. Generic serial port architecture and system
US7869803B2 (en) * 2002-10-15 2011-01-11 Qualcomm Incorporated Profile modification for roaming in a communications environment
US7720999B2 (en) * 2002-11-26 2010-05-18 Qualcomm Incorporated System and method for optimizing multimedia compression using plural encoders
US7188227B2 (en) * 2003-09-30 2007-03-06 International Business Machines Corporation Adaptive memory compression
US8484516B2 (en) * 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06168096A (ja) * 1992-11-30 1994-06-14 Fujitsu Ltd データ符号化方式及びデータ復元方式
JPH0944423A (ja) * 1995-07-28 1997-02-14 Toshiba Corp 計算機システム
JPH09325903A (ja) * 1996-04-01 1997-12-16 Mitsubishi Electric Corp 障害記録方式
JPH10303971A (ja) * 1997-04-23 1998-11-13 Nippon Telegr & Teleph Corp <Ntt> メッセージ通信方式
JP2001005635A (ja) * 1999-06-23 2001-01-12 Sony Corp 情報処理装置及び方法、並びに媒体
US20020178405A1 (en) * 2002-03-11 2002-11-28 "American Arium" Trace reporting method and system
JP2006012066A (ja) * 2004-06-29 2006-01-12 Toshiba Corp トレース解析装置およびトレース解析方法
JP2007065828A (ja) * 2005-08-30 2007-03-15 Keiichi Aoki 通信データ圧縮方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012088887A (ja) * 2010-10-19 2012-05-10 Mitsubishi Electric Corp トレースデータ取得装置、トレースデータ取得装置のトレースデータ取得方法およびデバッグシステム
KR20190074981A (ko) 2017-12-20 2019-06-28 르네사스 일렉트로닉스 가부시키가이샤 트레이스 데이터 압축 방식 선정 장치, 방법, 및 프로그램
EP3537303A1 (en) 2017-12-20 2019-09-11 Renesas Electronics Corporation Trace data compression method selection device. method, and program

Also Published As

Publication number Publication date
GB2453174B (en) 2011-12-07
US20090089626A1 (en) 2009-04-02
CN101398782A (zh) 2009-04-01
GB0719043D0 (en) 2007-11-07
GB2453174A (en) 2009-04-01
CN101398782B (zh) 2012-11-28
US7962664B2 (en) 2011-06-14

Similar Documents

Publication Publication Date Title
JP2009087343A (ja) データ処理装置用のトレースストリームを発生するための技術
US7673187B2 (en) Data processing apparatus and method for reducing trace bandwidth
US20240020134A1 (en) Overflow detection and correction in state machine engines
TWI416316B (zh) 用於產生資料處理設備之追蹤串流的技術
US6741961B2 (en) Low power audio processor that multiplexes component distribution signals
KR101365121B1 (ko) 멀티코어 아키텍쳐의 디버그
US10778815B2 (en) Methods and systems for parsing and executing instructions to retrieve data using autonomous memory
JP4846493B2 (ja) デバッグシステム及びデバッグ回路
KR20130127477A (ko) 디버그 상태 기계 및 이를 포함하는 프로세서
KR20020039684A (ko) 프로그램가능한 이벤트 카운터 시스템
US9703669B2 (en) Apparatus and method for distributed instruction trace in a processor system
US7552363B2 (en) Generation of trace elements within a data processing apparatus
JP2002304291A (ja) 命令セットの情報を格納するための装置及び方法
US7512773B1 (en) Context switching using halt sequencing protocol
JP2006500658A (ja) プログラムを動的に圧縮解除するための装置および方法
US10956303B2 (en) Trace data representation
CN108345534B (zh) 生成和处理跟踪流的装置和方法
US9928159B2 (en) System and method to select a packet format based on a number of executed threads
US9380260B2 (en) Multichannel video port interface using no external memory
CN113890540A (zh) 一种并行加速lz77解码方法及装置
JP2013015985A (ja) マルチコアプロセッサのすべてのプロセッサコアの実行トレースダンプが可能なsocデバイス
CN116915368B (zh) 符合期货交易数据交换协议的数据流的编解码方法和装置
JP2006120071A (ja) プロセッサおよび開発支援装置
JP2005196437A (ja) プロセッサおよび開発支援装置
CN112400280A (zh) 信息处理装置、信息处理系统、程序和信息处理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130618