(57)【要約】【課題】データ処理装置において、圧縮効率を改善し、よって発生されるトレースデータのボリュームを低減すること【解決手段】データ処理装置のうちの被モニタ回路のアクティビティを示すトレースストリームを発生するための、トレース回路およびかかるトレース回路を動作させる方法が提供されている。被モニタ回路は、アクティビティを示すデータ要素を発生し、トレース回路は、データ要素を示すトレース要素を発生するための被モニタ回路によって発生されるデータ要素のうちの少なくとも一部に応答自在なトレース要素発生回路を備える。【選択図】図４
2009087343.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置の被モニタ回路のアクティビティを示すトレースストリームを発生するためのトレース回路であり、前記被モニタ回路は、前記アクティビティを示すデータ要素を発生するようになっており、前記トレース回路は、前記データ要素の少なくとも一部を示すトレース要素を発生するよう、前記被モニタ回路によって発生される前記データ要素のうちの少なくとも一部に応答自在なトレース要素発生回路を備え、前記発生されるトレース要素は前記トレース回路の選択されたトレース動作モードに依存し、
ビットパターンがトレース要素のシーケンスを示すようになっているパケットを発生し、そのパケットを前記トレースストリーム内で出力させるよう、前記トレース要素のシーケンスに符号化演算を実行するための圧縮回路を備え、前記実行される符号化演算は、前記圧縮回路に関連する現在の圧縮方式に応じて決まり、
前記選択されたトレース動作モード中に前記圧縮回路は圧縮変更刺激信号に応答でき、現在の圧縮方式を第１の圧縮方式からビットパターン符号化スペースが前記第１圧縮方式のビットパターン符号化スペースにオーバーラップする第２圧縮方式へ変更し、よって圧縮方式の変更後、前記選択されたトレース動作モードの間に発生される別のパケットが第２圧縮方式に従って発生される、トレース回路。
【請求項２】
現在の圧縮方式をいつ変更するかを判断するための所定の基準を適用し、前記判断時に圧縮変更刺激信号を発生させるための圧縮方式選択回路を更に備える、請求項１に記載のトレース回路。
【請求項３】
前記圧縮回路は、複数の圧縮要素を備え、各圧縮要素は、異なる圧縮方式を実施すると共に、前記符号化演算を実行し、
前記圧縮方式選択回路は、圧縮方式が現在の圧縮方式となっている圧縮要素として前記圧縮要素のうちの１つを選択するための選択信号を発生するようになっており、よって前記選択された圧縮要素は、前記トレースストリーム内に含まれるためのパケットを発生し、
前記圧縮方式選択回路は、前記選択信号を変えることにより、前記圧縮変更刺激信号を発生するようになっている、請求項２に記載のトレース回路。
【請求項４】
少なくともテスト動作期間中、前記圧縮要素の各々は、符号化演算を実行するようになっており、この場合、発生されたパケットは前記圧縮方式選択回路によって受信され、前記圧縮方式選択回路は、発生されたパケットに対し、分析動作を実行し、前記選択信号により前記圧縮要素のうちのどれを選択するかを判断するようになっている、請求項３に記載のトレース回路。
【請求項５】
前記圧縮回路は再コンフィギュア可能な回路であり、発生時の前記圧縮変更刺激信号は、前記再コンフィギュア可能な回路を再コンフィギュアし、前記第２圧縮方式を実施するのに使用される情報を含む、請求項１に記載のトレース回路。
【請求項６】
前記圧縮回路は、再コンフィギュア可能なデュプリケート回路を備え、よって第１圧縮方式を実施するようになっている再コンフィギュア可能な回路のうちの一方は、圧縮変更刺激信号の受信の後で動作を続けるようになっており、前記再コンフィギュア可能な回路の他方は、前記圧縮変更刺激信号に従い、再コンフィギュアされるようになっており、かかる再コンフィギュアの後で、前記再コンフィギュア可能な回路のうちの他方は、前記第２圧縮方式に従って次のパケットを発生するのに使用される、請求項５に記載のトレース回路。
【請求項７】
前記再コンフィギュア可能な回路は、プログラマブルロジックデバイスであり、前記プログラマブルロジックデバイスを再プログラムするのに使用されるメモリデバイス内に前記圧縮変更刺激信号が記憶される、請求項５に記載のトレース回路。
【請求項８】
前記被モニタ回路はヒント信号を出力し、前記ヒント信号は、現在の圧縮方式を変更するかどうかを判断するときに参考として前記圧縮方式選択回路へルーティングされる、請求項２に記載のトレース回路。
【請求項９】
前記圧縮方式選択回路は、現在の圧縮方式を変更するかどうかを判断する際に、前記被モニタ回路のアクティビティの１つ以上の属性に応答自在である、請求項２に記載のトレース回路。
【請求項１０】
前記１つ以上の属性のうちの１つは、前記被モニタ回路内の現在の実行スレッドを示すスレッド識別レジスタ内に保持された値である、請求項９に記載のトレース回路。
【請求項１１】
前記１つ以上の属性のうちの１つは、前記被モニタ回路がアクセス中のメモリアドレス領域である、請求項９に記載のトレース回路。
【請求項１２】
前記圧縮変更刺激信号を記憶するための圧縮指定フィールドを有する制御レジスタを更に備え、前記圧縮回路は、前記制御レジスタの前記圧縮指定フィールドを参照し、現在の圧縮方式をいつ変更するかを決定する、請求項１に記載のトレース回路。
【請求項１３】
現在の圧縮方式を変えるときに、前記圧縮回路は変更を行った旨を示す変更信号をトレースストリーム内に出力するようになっており、よって前記トレースストリームを分析するのに使用されるトレース分析装置は、トレースストリーム内のパケットを正確に解読するために前記圧縮方式がいつ変更されたかを判断できる、請求項１に記載のトレース回路。
【請求項１４】
被モニタ回路のアクティビティを示すデータ要素を発生するための被モニタ回路と、
前記被モニタ回路の前記アクティビティを示すトレースストリームを発生するための、請求項１に記載のトレース回路とを備えるデータ処理装置。
【請求項１５】
前記各パケットによって示されるトレース要素のシーケンスを決定するよう、前記トレースストリーム内の前記パケットを復号化するためのパケット逆圧縮ロジックと、
前記パケット逆圧縮ロジックによって決定された前記トレースストリームおよび前記トレース要素を受信し、所定の基準を適用し、現在の圧縮方式をいつ変更するかを決定し、前記決定時に前記圧縮変更刺激信号を発生するようになっている圧縮方式選択ロジックとを備える、請求項１に記載のトレース回路によって発生されるトレースストリームを分析するためのトレース分析装置。
【請求項１６】
前記トレースロジックの前記圧縮回路は、所定の数の圧縮方式をサポートしており、
前記圧縮方式選択ロジックは、どの圧縮方式が現在の圧縮方式であるかを識別するための選択信号を発生するようになっており、
前記圧縮方式選択ロジックは、前記選択信号を変えることにより、前記圧縮方式変更刺激信号を発生するようになっている、請求項１５に記載のトレース分析装置。
【請求項１７】
前記圧縮変更刺激信号は現在の圧縮方式として使用すべき第２圧縮方式を定める情報を含む、請求項１５に記載のトレース分析装置。
【請求項１８】
前記圧縮方式選択ロジックは、現在の圧縮方式を変更するかどうかを判断するための前記所定の基準を適用する際に、プログラム画像を参照する、請求項１５に記載のトレース分析装置。
【請求項１９】
データ処理装置の被モニタ回路のアクティビティを示すトレースストリームを発生するためのトレース回路により適用される圧縮方式を変更するための方法であって、前記被モニタ回路は、アクティビティを示すデータ要素を発生するようになっており、この方法は、
前記被モニタ回路によって発生される前記データ要素のうちの少なくとも一部に応答自在に、前記データ要素の少なくとも一部を示すトレース要素を発生するステップを備え、前記発生されるトレース要素は前記トレース回路の選択されたトレース動作モードに依存し、
ビットパターンがトレース要素のシーケンスを示すようになっているパケットを発生し、そのパケットを前記トレースストリーム内で出力させるステップを備え、前記実行される符号化演算は、前記圧縮回路に関連する現在の圧縮方式に応じて決まり、
前記選択されたトレース動作モード中に圧縮変更刺激信号に応答し、現在の圧縮方式を第１の圧縮方式からビットパターン符号化スペースが前記第１圧縮方式のビットパターン符号化スペースにオーバーラップする第２圧縮方式へ変更するステップを備え、圧縮方式の変更後、前記選択されたトレース動作モードの間に発生される別のパケットが第２圧縮方式に従って発生される方法。
【請求項２０】
前記各パケットによって示されるトレース要素のシーケンスを決定するよう、前記トレースストリーム内の前記パケットを復号化するステップと、
トレースストリームおよび前記トレースストリームのパケットから復号化されたトレース要素を参照し、所定の基準を適用し、現在の圧縮方式をいつ変更するかを決定し、前記決定時に前記圧縮変更刺激信号を発生するステップとを備えた請求項１９記載の方法によって発生されるトレースストリームのうちのストリームをコンピュータに分析させるためのコンピュータプログラムを備えるコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置のモニタ中の回路のアクティビティを示すトレースストリームを発生するための技術に関する。
【背景技術】
【０００２】
システム内のステップごとのアクティビティを示すデータを含むトレースストリームを発生するために、データ処理装置のアクティビティをトレースすることは、システム開発における極めて有効なツールとなっている。しかしながら、プロセッサコアがより深く埋め込まれるようになってきている一般的の動きにより、外部からアクセス可能なピンを介してプロセッサコアまたは他のオンチップデバイスのアクティビティをトラッキングすることは、より困難となっている。従って、トレースデータを捕捉し、分析するためのオフチップトレーシング機構と同じように、大量のトレーシング機能がオフチップに設けられようになっている。かかるオフチップトレーシング機構の一例として、種々のＡＲＭプロセッサに関連して、英国ケンブリッジのＡＲＭリミティッド社によって提供されている、埋め込みトレースマイクロセル（ＥＴＭ）がある。
【０００３】
かかるトレーシング機構は、トレースしたいデータ処理装置のアクティビティを示すトレース要素を提供するトレースストリームをリアルタイムで発生する。次に、このトレースストリームは種々の目的のために、例えばデータ処理装置によって実行されている処理命令のシーケンスのデバッグを容易にし、データ処理装置などで実行中の特定のプログラムコードの性能を決定するように、プロファイリングオペレーションを実行するように分析できる。
【０００４】
一般に、トレース機構によって発生されるトレース要素のストリームは、バッファー化され、その後分析のために出力される。かかるトレースバッファは、有限量の情報を記憶することができ、バッファ化すべき要素を受信できる有限バンド幅を有する専用データベースを必要とする。このトレースバッファは一般にラップアラウンド状に情報を記憶するようになっている。すなわちトレースバッファが一旦フル状態となると、内部に記憶されている最も古いデータに新しいデータが一般にオーバーライトされるようになっている。専用データベースのバンド幅は、トレースバッファ内に情報を記憶できるレートを制限することが分かっている。
【０００５】
所望するとき、例えばトレースが一旦完了すると、トレースバッファからトレース要素のトレースストリームを受信するトレース分析ツールが一般に設けられている。このトレース分析ツールは、受信したトレース要素に基づき、トレース中のデバイスのアクティビティを再構成するのに使用できる。デバイス、例えばプロセッサコアが、そのパワーおよび複雑さを増すにつれ、かかるデバイスアクティビティをトラッキングするのに必要とされる情報量は増加し、従って潜在的にトレースしなければならない、極めて大ボリュームのトレース要素が生じることは明らかである。
【０００６】
しかしながら、トレースロジックによってトレース要素を出力できるバスのバンド幅は有限であり、かかるトレース要素をバッファ化するのに使用されるトレースバッファのサイズは限られているという問題がある。従って、発生できるトレース要素のボリュームは限られている。
【０００７】
トレースしたいことがあるデバイスのアクティビティとして、プロセッサコアによって実行中の命令（命令トレースと称す）およびこれら命令によって行われるメモリへのアクセス（データトレースと称す）を挙げることができるが、これらだけに限定されるものではない。データトレースを命令トレースに相関化できるよう、これらアクティビティは、別々にトレースしてもよいし、またはまとめてトレースしてもよい。データトレース自体は２つの部分、すなわちメモリアドレスとデータ値とから成り、これらはそれぞれデータアドレスおよびデータ値トレースと称されている。再び、現在のトレースＥＴＭプロトコルは、データアドレスおよびデータ値のトレースを別々に、または同時にイネーブルできるようにしている。
【０００８】
トレースストリーム内で出力しなければならないトレースデータのボリュームを低減するために、トレースストリーム内の出力を行う前に、トレース要素に対し圧縮を行うことは公知となっている。特にビットストリームがトレース要素のシーケンスを示しているパケットを発生するために、トレース要素のシーケンスに符号化演算を実行することができ、この場合、トレースストリーム内でパケットが出力される。トレース要素を符号化するのに使用できる多数の異なる符号化フォーマットを提供する圧縮方式が一般に定められている。一例として、各パケット出力は、一般にヘッダー部分と、オプションのペイロード部分とから成る。ヘッダーを検討すると、これらヘッダーは１バイトの情報の形態となっており、従ってヘッダーの可能な符号化は２５６種類存在する。これら符号化の一部を、ある符号化フォーマットと関連付けしてもよいし、他方、他の符号化を異なる符号化フォーマットと関連付けしてもよい。ペイロード部分に対して更に別の符号化フォーマットを提供してもよい。パケットとなるように符号化しなければならない異なるタイプのトレース要素を符号化するのに、これら異なる符号化フォーマットを使用できるが、トレースストリームを分析するのに使用されるトレース分析ツールにより、各パケットをユニークに識別できるように、これら異なる符号化フォーマットはビットパターン符号化スペース内ではオーバーラップされない状態となる。
【０００９】
例えば現在のＥＴＭプロトコルは、命令が実行されたこと、または実行されなかったことを示すアトムと称されるトレース要素を発生する。すなわち命令が実行されたことを示すＥアトムと、命令が実行されなかったことを示すＮアトムとを発生する。これらアトムのシーケンスは、ｐヘッダーとして知られるパケットとなるように圧縮でき、１つのｐヘッダーは１バイトサイズのヘッダーを含み、ペイロードを含まない。ＥおよびＮアトムの特定のシーケンスのためのｐヘッダーを発生するのに、１つ以上の符号化フォーマットを提供できるが、かかる各符号化フォーマットは、ｐヘッダーに使用される他の符号化フォーマットに関し、オーバーラップしていないビットパターン符号化スペースを占有する。実際、異なるタイプのヘッダー、例えばブランチ命令に関する情報を与えるパケットを識別するのに使用されるブランチヘッダー、またはデータアドレス、またはデータアドレスもしくはデータ値情報などを含むパケットを識別するのに使用されるデータ値ヘッダー等の異なるタイプのヘッダーに対して使用される他の符号化フォーマットに関して、オーバーラップしていないビットパターン符号化スペースを占有する。
【００１０】
特定のトレース回路に関連して使用される圧縮方式は、一般に設計時間に固定される。この場合、その圧縮方式は、一般に圧縮する必要のないトレース要素の期待されるパターンに基づいて選択されている。従って、例えば冒頭に述べたｐヘッダーを検討すると、ＥおよびＮアトムのシーケンスからこれらｐヘッダーを発生するのに使用される符号化フォーマットは、ランレングス符号化方式を一般に使用し、このランレングス符号化方式では、ＥアトムのほうがＮアトムよりも一般的であるので、符号化はＥアトムの長いシーケンスに向かってずれる（ｓｋｅｗ）。
【００１１】
命令トレース、データアドレストレースおよびデータ値トレースを選択的にイネーブルできるほかに、現在のトレース回路は、異なるトレース動作モードもサポートできる。例えば冒頭に述べたＥＴＭ製品を検討すると、非周期的な正確なトレース動作モードおよび周期的な正確なトレース動作モードを提供できる。非周期的な正確なトレース動作モードから、周期的な正確なトレース動作モードへ切り換えるために、またはこの逆方向に切り換えるために、現在のトレースアクティビティを中止し、新しいトレース動作モードを定めるよう、トレース回路内の多数の制御レジスタを更新する。この更新プロセスの一部として、新しいトレース動作モードに対して、より最適にされた圧縮方式を提供するように圧縮方式を変更してもよい。例えば周期的な正確なトレース動作モードを検討すると、周期的な正確なタイミング情報を提供するのに各クロックサイクルでＷアトムとして知られる別のアトムが発生され、従って、周期的な正確なトレース動作モードにおいて、ｐヘッダーに対して使用される符号化フォーマットは、ＥおよびＮアトムの他にｐヘッダー内でＷアトムのシーケンスを符号化する必要性を示すために、非周期的な正確なトレース動作モードで使用される符号化フォーマットとは一般的に異なる。しかしながら、周期的な正確なトレース動作モードに対して開発された圧縮方式は、圧縮が必要なトレース要素の期待されるパターンを考慮する設計時間に一般に固定される。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、特定のトレース動作モードでは、そのトレース動作モードに対して提供された所定の圧縮方式を実行すると、効率上の問題が生じることがある。例えばアクティビティをトレース中の、モニタされている回路の複雑さおよび能力が高まるにつれ、実行中の符号シーケンスがかなり変化し得る。再度ｐヘッダーの問題を検討すると、ＡＲＭ  Ｔｈｕｍｂ−２命令セットは「ｉｆ  ｔｈｅｎ」命令を提供し、この命令は発生されるＮアトムの頻度を大きく変え、ｐヘッダーに対して提供される符号化フォーマットの効率に悪影響を与え得ることが分かっている。別の例として、トレース回路を単にすべての命令をトレースするようにできるだけでなく、特定タイプの命令、例えばブランチ命令もトレースするようにもできる。ブランチ命令をトレースするだけのときでも、より大きい分布のＮアトムが生じることがあり、このことは再び圧縮効率に悪影響を与える。
【００１３】
前に述べたように、生じるトレースのボリュームは大きな問題であり、圧縮方式によって提供される符号化における非効率性は、トレースストリームのボリュームを増加し、よってオンチップバッファリングのために、より広い面積を必要とし、オフチップでの捕捉のためにより多くのハードウェアを必要とし、および／またはオフチップのリアルタイムのトレース捕捉のために、より多数のピンが必要となる。従って、トレースストリームを出力する前に、トレース要素を圧縮するための改良された技術を提供することが望ましい。
【課題を解決するための手段】
【００１４】
第１の様相から見れば、本発明は、データ処理装置の被モニタ回路のアクティビティを示すトレースストリームを発生するためのトレース回路であり、前記被モニタ回路は、前記アクティビティを示すデータ要素を発生するようになっており、前記トレース回路は、前記データ要素の少なくとも一部を示すトレース要素を発生するよう、前記被モニタ回路によって発生される前記データ要素のうちの少なくとも一部に応答自在なトレース要素発生回路を備え、前記発生されるトレース要素は前記トレース回路の選択されたトレース動作モードに依存し、ビットパターンがトレース要素のシーケンスを示すようになっているパケットを発生し、そのパケットを前記トレースストリーム内で出力させるよう、前記トレース要素のシーケンスに符号化演算を実行するための圧縮回路を備え、前記実行される符号化演算は、前記圧縮回路に関連する現在の圧縮方式に応じて決まり、前記選択されたトレース動作モード中に前記圧縮回路は圧縮変更刺激信号に応答でき、現在の圧縮方式を第１の圧縮方式からビットパターン符号化スペースが前記第１圧縮方式のビットパターン符号化スペースにオーバーラップする第２圧縮方式へ変更し、よって圧縮方式の変更後、前記選択されたトレース動作モードの間に発生される別のパケットが第２圧縮方式に従って発生される、トレース回路を提供するものである。
【００１５】
本発明によれば、トレース回路がまだ選択されたトレース動作モードにある間、圧縮回路は、現在の圧縮方式を変更するための圧縮変更刺激信号に応答するようになっている。特に圧縮変更刺激信号は現在の圧縮方式を、第１圧縮方式から、ビットパターン符号化スペースが第１圧縮方式のビットパターン符号化スペースにオーバーラップする第２圧縮方式に変更させる。このことは、トレース回路がまだ選択されたトレース動作モードにある間でも起こるので、実際にトレース回路によって発生中のトレース要素のタイプには変更がない。圧縮方式の変更後、選択されたトレース動作モードにある間に発生される別のパケットが、第２圧縮方式に従って発生される。
【００１６】
本発明を使用することにより、そのトレース動作モード中に使用される圧縮方式を変更できる能力に起因し、同じトレース動作モード中にある間、トレースストリーム内のパケットの特定のビットパターンに関連する意味を変えることができる。これによって例えば被モニタ回路によって出力されるトレース要素の特定パターンに関連付けすることにより、圧縮回路によって適用される圧縮方式を適合化できるようにすることにより圧縮効率を大幅に改善することが可能となる。
【００１７】
一部の実施例では、トレース回路のトレース動作を中止することなく、第１圧縮方式から第２圧縮方式への切り換えを行うことができ、一方、他の実施例では、圧縮方式の変更を行いながら、トレース回路のトレースアクティビティを一時的に中止する。
【００１８】
トレース回路によって受信されるデータ要素は、種々の形態をとり得るが、このことは、データ要素がこのデータ要素から発生するのに必要とされるトレースストリームに対し、十分な情報を与えることを条件とする。更に、被モニタ回路（本明細書では、トレースされているデバイスとも称す）からトレース回路へデータ要素を伝送してもよいし、これとは異なり、トレースされているデバイスからトレース回路によりデータ要素を検索してもよい。一例として、データ要素は命令アドレス値、データアドレス値またはデータ値を含むことができる。次に、トレース要素発生回路によって発生されるトレース要素は、一般にデータ要素またはこれらデータ要素によって示される被モニタ回路の少なくとも基礎となるアクティビティを、トレースストリームを分析するトレース分析ロジックによって後に決定できるようにする十分な情報を含むようになっている。
【００１９】
圧縮変更刺激信号を発生できる方法は多数ある。一実施例では、トレース回路は現在の圧縮方式をいつ変更するかを決定し、その決定時に圧縮変更刺激信号を発生させるための所定の基準を適用するための圧縮方式選択回路を更に備える。従って、かかる実施例では、圧縮方式選択回路によって実行される分析に基づき、トレース回路により内部で圧縮変更刺激信号が発生される。
【００２０】
圧縮方式選択回路が現在の圧縮方式をいつ変更するかを決定できる異なる方法は多数存在する。例えば圧縮方式選択回路は、被モニタ回路によって発生されたデータ要素からの異なる圧縮方式によって発生されるトレースデータのボリュームを比較し、その分析に基づき、最も効率的であると考えられる圧縮方式を選択するようにできる。これとは異なり、またはこれに追加して、圧縮方式選択回路は、被モニタ回路のアクティビティの１つ以上の属性、例えば被モニタ回路内の実行の現在のスレッドを示すスレッド識別レジスタ内に保持されている値、または被モニタ回路によってアクセスされるメモリアドレス領域の表示に応答し、スイッチ圧縮方式をいつ切り換えるかを決定してもよい。例えばかかる情報から、被モニタ回路がどのアプリケーションを動作中であるかを判断してもよく、圧縮方式選択回路は異なる圧縮方式と異なるアプリケーションとを関連付けできる。
【００２１】
圧縮方式選択回路が現在の圧縮方式をいつ変更するかをどのように決定できるかの別の例では、圧縮方式選択回路が圧縮方式をいつ変更するかを決定する際に考慮できる、被モニタ回路から受信されるヒント信号に応答することができる。従って、被モニタ回路は、その回路が実行中のアクティビティが大幅に変更されるときにヒント信号を出力でき、かかるヒント信号は、被モニタ回路が信頼する圧縮方式が実施するのに最も適切であることを明示的に識別するか、または使用中の圧縮方式を再評価するのに適当な時間であることを圧縮方式選択回路に少なくとも表示する。
【００２２】
圧縮方式選択回路が動作する態様は、トレース回路の圧縮回路の構造に応じて代わり得る。一実施例では、圧縮回路は、複数の圧縮要素を備え、各圧縮要素は、異なる圧縮方式を実施すると共に、符号化演算を実行し、圧縮方式選択回路は、圧縮方式が現在の圧縮方式となっている圧縮要素として圧縮要素のうちの１つを選択するための選択信号を発生するようになっており、よって前記選択された圧縮要素は、前記トレースストリーム内に含まれるためのパケットを発生し、圧縮方式選択回路は、選択信号を変えることにより、圧縮変更刺激信号を発生するようになっている。
【００２３】
上記実施例によれば、圧縮回路は、この圧縮回路内で提供される複数の圧縮要素によって決定される所定の数の異なる圧縮方式をサポートでき、圧縮方式選択回路は、時間内の特定の時点でトレースストリーム内に含ませるためのパケットを発生するのに、どの圧縮要素を使用すべきかを示す選択信号を発生する。
【００２４】
圧縮回路内の圧縮要素は、全体が別個の物理的回路でもよいし、またはこれとは異なり、圧縮要素が互いに一部のロジックを共用してもよく（一部の実施例では、圧縮要素を構成するロジックの重要な部分を共用してもよい）、一例として、異なる圧縮要素はｐヘッダーを符号化するための異なる符号化フォーマットを提供でき、この場合、１つの圧縮要素によって提供される符号化フォーマットは、別の圧縮要素によって提供される符号化フォーマットに対するオーバーラップしたビットパターン符号化スペースを有する。しかしながら、圧縮要素はｐヘッダー以外のヘッダーを符号化するとき、またはヘッダーに関連するペイロードデータを符号化する際に、同じ符号化フォーマットを使用し、よってかかる非ｐヘッダー符号化を実行するために同じロジックを共用してもよい。
【００２５】
一実施例では、少なくともテスト動作期間中、前記圧縮要素の各々は、符号化演算を実行するようになっており、この場合、発生されたパケットは前記圧縮方式選択回路によって受信され、前記圧縮方式選択回路は、発生されたパケットに対し、分析動作を実行し、前記選択信号により前記圧縮要素のうちのどれを選択するかを判断するようになっている。この圧縮要素は同じソースデータ、すなわちトレース要素発生回路によって発生されたトレース要素に対し、それぞれの符号化演算を実行するようにパラレルに実行してもよいし、またはこれとは異なり、所定の時間符号化演算を実行するのに、各圧縮要素を逐次選択してもよく、この場合、発生されたパケットは圧縮方式選択回路によって選択される。定期的に使用するために最良の圧縮方式を再評価するのに、テスト動作時間を周期的に実行してもよいし、またはこれとは異なり、圧縮方式選択回路により受信される所定の情報、例えば被モニタ回路によって実行中の所定のアクティビティの表示、ヒント信号などにより、テスト動作時間をトリガーしてもよい。別の実施例では、圧縮効率を改善するために、現在の圧縮方式を変更する必要があるかどうかを圧縮方式選択回路が判断する場合、時間内の所定の時点で圧縮方式の切り換えを行うことができるように、トレースストリームの発生中に圧縮方式選択回路が分析動作を連続的に実行できるようにできる。
【００２６】
複数の圧縮要素を有する圧縮回路を提供する別の方法として、圧縮回路は、再コンフィギュア可能な回路（ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  ｃｉｒｃｕｉｔ）となることができる。かかる実施例では、発生時の前記圧縮変更刺激信号は、前記再コンフィギュア可能な回路を再コンフィギュアし、前記第２圧縮方式を実施するのに使用される情報を含む。かかるアプローチにより、圧縮方式の選択に関して更にフレキシビリティが得られる。
【００２７】
特定の実施例では、前記圧縮回路は、再コンフィギュア可能なデュプリケート回路を備え、よって第１圧縮方式を実施するようになっている再コンフィギュア可能な回路のうちの一方は、圧縮変更刺激信号の受信の後で動作を続けるようになっており、前記再コンフィギュア可能な回路の他方は、前記圧縮変更刺激信号に従い、再コンフィギュアされるようになっており、かかる再コンフィギュアの後で、前記再コンフィギュア可能な回路のうちの他方は、前記第２圧縮方式に従って次のパケットを発生するのに使用される。かかるアプローチにより、圧縮方式の変更によりトレースデータの発生を中断しなくてもよく、他の再コンフィギュア可能な回路が再コンフィギュアされれば、圧縮方式の切り換えが生じる。
【００２８】
再コンフィギュア可能な回路は種々の形態をとり得るが、一実施例では、プログラム可能なロジックデバイスであり、このプログラム可能なロジックデバイスを再プログラムするのに使用されるメモリデバイス内に圧縮変更刺激信号が記憶される。一実施例では、プログラマブルロジックデバイスはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）デバイスとすることができ、このＦＰＧＡデバイスを再プログラムするのに使用されるフラッシュメモリデバイス内に圧縮変更刺激信号を記憶できる。
【００２９】
種々の方法で圧縮回路に圧縮変更刺激信号を与えることができる。一実施例では、トレース回路は、前記圧縮変更刺激信号を記憶するための圧縮指定フィールドを有する制御レジスタを更に備え、前記圧縮回路は、前記制御レジスタの前記圧縮指定フィールドを参照し、現在の圧縮方式をいつ変更するかを決定する。従って、圧縮指定フィールドに記憶された特定の値（単数または複数）は、時間内の任意の時点でどの圧縮方式を圧縮回路によって実施するかを定める。
【００３０】
トレース分析ツールがトレースストリーム内の種々のパケットを正しく解釈できるようにするためには、トレース分析ツールは、いつ圧縮方式が変更されたかを知らなければならない。トレース分析ツールがかかる変更を評価できる方法は多数存在し、一部の実施例では、トレース分析ツールのユーザーは圧縮方式の変更を調査でき、よっていつ変更が行われたかを知ることができる。一実施例では、現在の圧縮方式を変えるときに、前記圧縮回路は変更を行った旨を示す変更信号をトレースストリーム内に出力するようになっており、よって前記トレースストリームを分析するのに使用されるトレース分析装置は、トレースストリーム内のパケットを正確に解読するために前記圧縮方式がいつ変更されたかを判断できる。この変更信号は、トレースストリーム内のその変更信号のあとでパケットに関連しどの圧縮方式が使用されたかをトレース分析ツールが判断できるようにする充分な情報を提供する。
【００３１】
第２の様相から見れば、本発明は、被モニタ回路のアクティビティを示すデータ要素を発生するための被モニタ回路と、前記被モニタ回路の前記アクティビティを示すトレースストリームを発生するためのトレース回路とを備えるデータ処理装置を提供する。
【００３２】
第３の様相から見れば、本発明は、前記各パケットによって示されるトレース要素のシーケンスを決定するよう、前記トレースストリーム内の前記パケットを復号化するためのパケット逆圧縮ロジックと、前記パケット逆圧縮ロジックによって決定された前記トレースストリームおよび前記トレース要素を受信し、所定の基準を適用し、現在の圧縮方式をいつ変更するかを決定し、前記決定時に前記圧縮変更刺激信号を発生するようになっている圧縮方式選択ロジックとを備える、本発明の第１の様相に係わる、トレース回路によって発生されるトレースストリームを分析するためのトレース分析装置を提供する。
【００３３】
トレース回路内の圧縮方式選択回路の代わりに、トレース分析装置内に圧縮方式選択ロジックを設け、この選択ロジックが圧縮方式をいつ変更するかを決定するように、圧縮方式選択回路で実行されるのと同じ分析を実行してもよい。別の実施例では、トレース分析装置は、圧縮方式選択ロジックを含むことができ、トレース回路は更に圧縮方式選択回路を含むことができ、かかる実施例では、これら要素によって示された競合する変更の間で仲裁するためのある種の仲裁機構を設ける必要がある。純粋な例として、トレース分析装置内の圧縮方式選択ロジックは、かかる状況において、トレース回路内の圧縮方式選択回路によってとられる処置に関する第２のレベルのレビューを提供できる。例えば圧縮方式選択ロジックは、所定の状況において圧縮方式選択回路によって行われた判断にだけ介入するように構成でき、圧縮方式選択ロジックが圧縮変更刺激信号を発生する状況では、仲裁機構が圧縮方式選択ロジックによって出力される圧縮変更刺激信号に対する優先権を与えることになる。
【００３４】
一実施例では、前記トレースロジックの前記圧縮回路は、所定の数の圧縮方式をサポートしており、前記圧縮方式選択ロジックは、どの圧縮方式が現在の圧縮方式であるかを識別するための選択信号を発生するようになっており、前記圧縮方式選択ロジックは、前記選択信号を変えることにより、前記圧縮方式変更刺激信号を発生するようになっている。
【００３５】
別の実施例では、前記圧縮変更刺激信号は現在の圧縮方式として使用すべき第２圧縮方式を定める情報を含む。かかる実施例は、例えば、トレース回路内の圧縮回路が再コンフィギュア可能である場合に使用できる。
【００３６】
一実施例では、前記圧縮方式選択ロジックは、現在の圧縮方式を変更するかどうかを判断するための前記所定の基準を適用する際に、プログラム画像を参照する。被モニタ回路によって実行された命令の実際のシーケンスを、トレースストリーム内で提供されたトレース要素から再構成できるように、プログラムイメージのコピーをトレース分析装置に提供することが多い。トレースストリームの一部の分析から、圧縮方式の変更に価値ある可能性が高いと識別されたとき、圧縮方式選択ロジックがプログラムイメージを検討し、符号の他の部分でトレース要素の同様なパターンチェックし、よってかかる変更にやりがある可能性が高いと確認するように、圧縮方式選択ロジックはプログラムイメージを参照するようにできる。
【００３７】
第４の様相から見れば、本発明は、データ処理装置の被モニタ回路のアクティビティを示すトレースストリームを発生するためのトレース回路により適用される圧縮方式を変更するための方法であって、前記被モニタ回路は、アクティビティを示すデータ要素を発生するようになっており、この方法は、前記被モニタ回路によって発生される前記データ要素のうちの少なくとも一部に応答自在に、前記データ要素の少なくとも一部を示すトレース要素を発生するステップを備え、前記発生されるトレース要素は前記トレース回路の選択されたトレース動作モードに依存し、ビットパターンがトレース要素のシーケンスを示すようになっているパケットを発生し、そのパケットを前記トレースストリーム内で出力させるステップを備え、前記実行される符号化演算は、前記圧縮回路に関連する現在の圧縮方式に応じて決まり、前記選択されたトレース動作モード中に圧縮変更刺激信号に応答し、現在の圧縮方式を第１の圧縮方式からビットパターン符号化スペースが前記第１圧縮方式のビットパターン符号化スペースにオーバーラップする第２圧縮方式へ変更するステップを備え、圧縮方式の変更後、前記選択されたトレース動作モードの間に発生される別のパケットが第２圧縮方式に従って発生される。
【００３８】
第５の様相から見れば、本発明は、前記各パケットによって示されるトレース要素のシーケンスを決定するよう、前記トレースストリーム内の前記パケットを復号化するステップと、トレースストリームおよび前記トレースストリームのパケットから復号化されたトレース要素を参照し、所定の基準を適用し、現在の圧縮方式をいつ変更するかを決定し、前記決定時に前記圧縮変更刺激信号を発生するステップとを備える本発明の第４の様相に従って発生されるトレースストリームのうちのストリームをコンピュータに分析させるためのコンピュータプログラムを備えるコンピュータプログラム製品を提供する。
【００３９】
以下、添付図面に示した本発明の実施例に基づき、単なる例として、本発明について更に説明する。
【発明を実施するための最良の形態】
【００４０】
図１は、モニタされる回路１０、トレースモジュール２０、トレースバッファ３０およびトレース分析器４０を含むデータ処理システムを略図で示している。図１は、トレースバッファ３０を含むデータ処理システムを示しているが、別の実施例では、トレースモジュール２０はその出力をトレースバッファに通すことなく、直接トレース分析器４０へ送ることができる。
【００４１】
トレースモジュール２０によって受信されるデータ要素のストリームを発生する、被モニタ回路１０は種々の形態をとることができ、例えばプロセッサコア、ダイレクトメモリアクセス（ＤＭＡ）エンジン、データエンジン／アクセルレータなどでもよい。これとは異なり、被モニタ回路１０は、１つのバスによって結合された複数のデバイスから構成でき、データ要素がバスを通過する際に、これらデータ要素をトレースモジュール２０によってモニタできる。
【００４２】
一実施例では、適当なソフトウェアを動作させる汎用コンピュータによって形成できるトレース分析器４０は、トレースモジュール２０およびトレースバッファ３０に結合されている。一般にオンチップで構成されるこのトレースモジュール２０は、ロジック１０からのデータ要素を受信し、このデータ要素に応じ、トレースバッファ３０（このトレースバッファはオンチップまたはオフチップで設けることができる）に記憶されるトレース要素を提供するトレースストリームを発生する。一般にオフチップで構成されるトレース分析器４０は、トレース中の被モニタ回路１０のアクティビティを示す情報を引き出すように、このトレースストリームを分析するのに使用される。特にトレースストリームの分析により、被モニタ回路１０の詳細なアクティビティを決定できる。
【００４３】
トレース分析器のユーザーがトレースモジュールの所定の機能を制御できるように、トレース分析器４０はトレースモジュール２０に接続されている。更に一部の実施例では、トレースバッファ３０内でバッファ化するのではなく、トレースモジュール２０が発生したトレースストリームを直接トレース分析器４０に提供できる。
【００４４】
図２は、図１の被モニタ回路１０の一例のブロック図である。この例では、被モニタ回路１０はバス１５によって接続された２つのデバイス（１１、１２）を備える。バスは、接続部１０５を介してトレースモジュール２０にリンクされており、ロジックによって発生されたデータ要素が接続部１０５を通って送られる。
【００４５】
図３は、一実施例に係わるトレースモジュール２０のブロック図である。このトレースモジュール２０は、トレース中の被モニタ回路の状態または動作を示すデータ要素を、パス１０５を通して受信するようになっている。同期ロジック１００は、トレースモジュール２０内で使用するのにより適した信号の内部バージョンとなるように、着信信号を変換するようになっている。これら内部バージョンの信号は、制御ロジック１１０およびトレース発生ロジック１２０へ送られるが、制御ロジック１１０およびトレース発生ロジック１２０は、必ずしも同じ信号を受信しなくてもよいことが理解できよう。基本的には、制御ロジック１１０はトレースを起動すべきかどうか、更にどのタイプのデータ要素をトレースすべきかを判断できるよう、トリガー可能な事象に関係するデータ、例えば命令アドレス、データ値、レジスタアクセスなどを受信しなければならない。次に制御ロジック１１０は、トレース発生ロジック１２０へ適当な制御信号を発生し、必要とされるトレース要素をトレース発生ロジック１２０によって発生させる。トレース発生ロジック１２０は、制御ロジック１１０が発生する制御信号に応じ、トレースする必要があるデータを同期ロジック１１０を介して受信する。
【００４６】
本発明の実施例によれば、制御ロジック１１０の動作をコンフィギュアするのに使用される制御レジスタ１４０が設けられており、これら制御レジスタ１４０は、トレース分析器４０から設定可能である。基本的には、トレース発生ロジックの動作の基本的には２つの要素を命令する多数の制御レジスタを設けることができる。例えば、いつトレース要素を発生するか、すなわちいつ特定レンジのアドレスにアクセスするか、および何が特定の転送のデータアドレスおよび／またはデータ値のためのトレース要素を発生するか、および一般に、読み出し動作か、書き込み動作か、ロックされているか、セキュリティ情報か等の転送に関する補足的情報を何が発生するのかを、命令するような、多数の制御レジスタを設けることができる。
【００４７】
いつ発生するかの条件（“ｗｈｅｎ”ｃｏｎｄｉｔｉｏｎ）が満たされた制御ロジック１１０によって発生された制御信号によりトリガーされると、トレース発生ロジック１２０は、同期ロジック１００から受信しているデータ要素を示す、必要なトレース要素を、制御ロジックからまた受信する、何を発生するかの信号（“ｗｈａｔ”ｓｉｇｎａｌ）に従い、発生する。次にこれら発生されたトレース要素は一般に圧縮演算を受け、次にＦＩＦＯ１３０へ出力される。これからトレースバッファ３０へトレースストリームが出力されるか、または別の実施例では、直接トレース分析器４０へ出力される。
【００４８】
以下、本発明の種々の異なる実施例に係わるトレース発生器１２０によって実行される圧縮動作のより細部について説明するが、一般的には、本発明の実施例のトレース発生器には、トレースストリーム内で出力するためのパケットを発生するよう、あるシーケンスのトレース要素に対して符号化演算を実施するための圧縮回路が設けられ、実施される符号化演算は、圧縮回路に関連する現在の圧縮方式に依存する。トレース発生器１２０は、現在の圧縮方式を第１圧縮方式から第２圧縮方式に変更するための圧縮変更刺激信号に応答自在であり、第２圧縮方式のビットパターン符号化スペースは、第１圧縮方式のビットパターン符号化スペースにオーバーラップするので、圧縮方式を変えた後に、同じトレース動作モードの間で発生される別のパケットは第２圧縮方式に従って発生される。ある圧縮分析回路により、トレースモジュール２０の内部で圧縮変更刺激信号を発生してもよいし、またはこれとは異なり、内部で実行される圧縮分析に基づき、トレース分析ツール４０のような外部ソースからこの変更刺激信号を発生してもよい。
【００４９】
本発明の一実施例では、トレースモジュール２０内で２つの異なるトレース動作モード、すなわち非周期的な正確なトレース動作モードおよび周期的な正確なトレース動作モードが提供される。いずれの動作モードにおいても、命令トレースおよび／またはデータトレースを含むトレースストリームを出力することが可能であり、圧縮回路はトレースストリーム内で出力しなければならない種々のトレース要素を符号化するための符号化方式を提供する圧縮方式と、これらトレース動作モードとを関連付けている。特定の圧縮方式では、サポートされる種々の符号化フォーマットは、ビットパターン符号化スペース内でオーバーラップしないので、任意の特定のビットパターンからトレース分析ツールはそのビットパターンによってどのトレース要素が表わされているかをユニークに識別できる。現在まで、選択されたトレース動作モードに対し、トレースモジュール２０の圧縮回路によって実施される圧縮方式が既に決定され、固定されている。多くの状況では、かかるアプローチは満足できるように動作できるが、圧縮の効率を妥協しなければならない一部の状況では、被モニタ回路のアクティビティがかなり大きく変動することは、次第に一般的なことになりつつある。オンチップトレーシングメカニズムを含む最近のシステムにおいて、トレースデータのボリュームが大きな問題になるにつれ、特定のトレース動作モードにある状態で、例えば同じ基本タイプのトレース要素を発生している間、圧縮方式を変更するためのメカニズムを提供する本発明の実施例は、圧縮効率における大幅な改善を生じさせることができるので、発生されるトレースデータの全ボリュームを低減できる。以下、本発明の特定の実施例についてより詳細に説明する。
【００５０】
図４は、トレース発生器内の圧縮回路が複数の圧縮回路２１０、２２０、２３０から成る本発明の特定の実施例に係わる、図３のトレース発生器１２０を示す。図４に示されるように、トレース発生器に関してトレース要素を発生させなければならない被モニタ回路によって発生されたデータ要素のいずれかを、同期回路１００からトレース発生器１２０内のトレース要素発生回路２００へ転送し、次にトレース要素発生器は公知の態様で、トレース要素のストリームを発生する。次に、このようなトレース要素のストリームは圧縮回路へ送られる。この圧縮回路は、図４に示される実施例では、圧縮回路２１０、２２０、２３０から成る。これら圧縮回路は、異なる圧縮方式を利用するようになっており、時間内の特定の時点にて、トレース発生器１２０からＦＩＦＯ１３０に出力されるパケットのトレースストリームを発生するよう、マルチプレクサ２４０を介して圧縮回路のうちの１つからの出力が選択される。圧縮回路のいずれも、一実施例ではパラレルで動作させることができるが、一般的には正常な動作では、不要な電力消費を防止するように、圧縮回路のうちの１つしかアクティブとされない場合が生じる。
【００５１】
トレース発生器１２０内には圧縮分析回路２５０も設けられ、この圧縮分析回路２５０は、少なくともテスト動作中に種々の圧縮回路からの出力を受信し、これら信号を比較し、どの圧縮回路が最も効率的な圧縮を行っているかを判断できる。かかるテスト動作中、圧縮回路２１０、２２０、２３０は、トレース要素発生器２００によって発生される同じ未処理のトレース要素ストリームにパラレルに動作するようになっており、これら回路からの出力は圧縮分析回路２５０へルートバックされる。この時間中、圧縮回路のうちの１つは、実際に出力がトレースストリームを形成するアクティブな圧縮回路として選択でき、この場合、マルチプレクサ２４０は圧縮回路の出力を選択する。代替例として、テスト期間中、圧縮回路２１０、２２０、２３０の各々は、次々に所定の時間の間、圧縮を実行するように選択され、それらの結果は圧縮分析回路２５０内で再び相関化される。ある時間の間、圧縮回路の各々が使用されると、圧縮分析回路２５０は種々の圧縮回路から得られた結果を比較し、その結果に基づき、トレース発生器１２０により発生される将来のパケットに対して使用すべき最も適した圧縮回路を選択する。
【００５２】
種々の圧縮回路によって発生される結果に基づき、圧縮分析回路内で実行される実際の比較は、種々の形態をとることができる。しかしながら、一実施例では、圧縮分析回路は各比較回路に対し、種々の圧縮回路から出力された圧縮されたトレースデータのバイト数を識別するトレースデータカウントを保持し、圧縮分析回路が、テスト動作中に出力トレースデータの最小数のバイトを発生した圧縮回路を選択できるようにする。
【００５３】
圧縮分析回路がその分析を一旦実行すると、この分析回路はトレース要素発生器２００が出力したその後のトレース要素の圧縮を実行するよう、既に選択された圧縮回路を識別するための信号を出力する。この出力信号は、対応する圧縮回路および／またはマルチプレクサ２４０に直接転送してもよいし、またはこれとは異なり、図４に示されるように制御レジスタ１４０の符号化選択フィールド２５５（本例では圧縮指定フィールドとも称す）内に記憶される選択信号の形態となっていてもよい。制御レジスタ１４０内には、かかる符号化選択フィールド２５５を設けてもよいが、そのフィールドを物理的に制御レジスタ１４０のうちの１つにしなくてもよく、その代わりに、トレース発生器１２０に対してアクセス可能な適当な記憶ロケーション内に選択信号を記憶してもよい。
【００５４】
図５は、圧縮分析回路２５０が適当な圧縮回路の選択を可能にするのに使用される別の情報（ａｄｄｉｔｉｏｎａｌ  ｉｎｆｏｒｍａｔｉｏｎ）を受信できるようになっている、本発明の別の実施例を示す。この実施例では、圧縮分析回路２５０を、圧縮方式選択回路２５０と称すが、その理由は、特定の圧縮回路が出力した結果を使用するのではなく、この情報によってその圧縮分析回路を直接駆動できるからである。しかしながら、圧縮回路の出力から圧縮方式選択回路２５０までの点線で表示されるように、一実施例では、この圧縮選択回路は選択する適当な圧縮回路を決定する際に、種々の圧縮回路によって得られる圧縮の結果も参照する。
【００５５】
しかしながら、図５に示されるように、圧縮方式選択回路２５０は、パス２６５を通して別の信号も受信し、特に時間内の特定の時点で適当な圧縮回路を選択する際に圧縮方式選択回路をアシストするのに使用される被モニタ回路により（またはデータ処理システム内の他の適当な回路により）発生される圧縮ヒント信号を受信する。一例として、圧縮方式の変更を適正にし得る、アクティビティの変化を識別するよう、被モニタ回路によって出力されるデータ要素内に被モニタ回路により圧縮ヒントを挿入できる。これら圧縮ヒントは、テスト動作期間の再実行をトリガーするよう、圧縮方式選択回路２５０によってこれら圧縮ヒントを使用でき、次に圧縮方式選択回路２５０は、どの圧縮回路を選択するかを決定するように、図４を参照してこれまで説明したように、種々の圧縮回路によって出力される結果を使用する。しかしながら、上記とは異なり、圧縮ヒントは、例えば行っているのはどんなアクティビティであるか、従ってトレースするのに必要なアクティビティの一般的なパターンの被モニタ回路の理解に基づき、将来のトレースパケットに対して適当であると見なされるのはどの圧縮回路であるかをアクティブに識別してもよい。
【００５６】
特定の圧縮ヒントの他に、圧縮方式選択回路２５０は、例えば被モニタ回路から出力されるデータ要素のうちの一部を参照することにより、被モニタ回路のアクティビティの特定の属性を分析したいこともある。例えば圧縮方式選択回路２５０は、時間内の特定の時点において動作中のアプリケーションを決定するよう、「スレッド」識別レジスタ（「コンテクスト」識別レジスタとしても知られる）をモニタし、この情報に基づき、圧縮方式の変更が適当であるかどうかの分析を実行することもできる。一例として、圧縮方式選択回路２５０には特定のアプリケーションが動作中のときに第１圧縮方式を適用できる旨を示す情報を提供し、異なるアプリケーションが動作中には、第２の圧縮方式が適当である旨を表示する情報を提供してもよく、この場合、圧縮方式選択回路２５０は、スレッド識別レジスタの分析から、どのアプリケーションが動作中であるかを判断でき、従って、どの圧縮方式を使用すべきかを決定できる。一部の実施例では、例えば埋め込み制御またはリアルタイムオペレーティングシステム（ＲＴＯＳ）を動作するように設計されたプロセッサをモニタする際に、どのアプリケーションが動作中であるかを判断するために、どのメモリアドレスにアクセス中であるかを分析することによって、同様な分析を実行できる。
【００５７】
図４の実施例と同じように、圧縮方式選択回路２５０の結果は対応する圧縮回路および／またはマルチプレクサ２４０へ直接出力してもよいし、その代わりに適当な制御レジスタ１４０内に設けられた符号化選択フィールド２５５に記憶してもよい。
【００５８】
図６は、圧縮分析回路２５０が省略されており、その代わりに、かかる圧縮分析をギア部でオフラインで実行するトレース発生器の別の実施例を示す。一例として、トレースモジュール２０のトレース発生器１２０から時間をかけて受信したトレースストリームに基づき、トレース分析ツール内でかかる圧縮分析を実行してもよい。次に、選択信号を発生し、パス２７５を通して符号化選択フィールド２５５へルーティングし、圧縮回路２１０、２２０、２３０の将来の選択を制御することができる。
【００５９】
理解を容易にするために、図４〜６に示された種々の圧縮回路は、物理的に別個の回路として示されているが、一部の実施例では、これら回路は互いにロジックの重要な部分を共用してもよいと理解できよう。特に、各圧縮回路は使用できる異なる圧縮方式を代表しているが、特定の圧縮方式内に設けられた多数の符号化フォーマットを、他の圧縮方式と共に共用してもよい。例えば一実施例では、第１圧縮方式が、第２圧縮方式内のｐヘッダーに対して設けられた異なる一部の符号化フォーマットに対し、オーバーラップしたビットパターン符号化スペースを占めるｐヘッダーに対する１つ以上の符号化フォーマットを設けてもよい。しかしながら、ヘッダーに関連する他のヘッダーまたはペイロード部分を符号化するために使用される他の符号化フォーマットを２つの圧縮方式の間で変えなくてもよく、従ってこれら２つの異なる圧縮方式を具現化するのに使用される圧縮回路は、実際にロジックの重要な部分を互いに共用する。
【００６０】
図７は、所定の数の圧縮回路の代わりに、従って所定の数の可能な圧縮方式の代わりに、再コンフィギュア可能な圧縮回路３００が設けられており、この回路は一実施例ではフィールドプログラマブルゲートアレイ（ＦＰＧＡ）デバイスの形態をとることができるトレース発生器１２０の別の実施例を示す。この再コンフィギュア可能な圧縮回路３００は、メモリデバイス、例えばフラッシュメモリ３１０内に記憶される情報を定める圧縮方式からパス３３０を通して再プログラムできる。この情報は、ある時間にわたってトレース発生器１２０により発生されたトレースストリームを分析するのに使用される外部圧縮分析ツールによって発生され、この情報はトレースストリームに基づき、適当な圧縮方式を発生する。この適当な圧縮方式は、発生されるトレースストリームの将来のパケットのために、圧縮効率の改善を可能にするが、時間経過に対して同じパケットのトレース要素が発生すると仮定した場合、トレースモジュールは同じトレース動作モードのままである。従って、かかる実施例では、所定の数の所定の圧縮方式の間で単に選択するのではなく、かかるアプローチは、より適したな圧縮方式を発生できるようにし、再コンフィギュア可能な圧縮回路を、発生された圧縮方式に従って再プログラムすることができる。
【００６１】
かかる分析を実行し、特定の圧縮方式を発生するのに必要となり得る時間を仮定した場合、分析はオフチップ、例えばトレース分析器内で実行されると一般に予想される。しかしながら、所定の実施例では、かかる分析が依然としてトレース発生器１２０内でオンチップで実行されることもあり、この場合、再コンフィギュア可能な圧縮回路３００は内部で発生された情報を定める圧縮に基づき、再プログラムされる。
【００６２】
図８は、本発明の一実施例に係わるトレース分析器４０内に設けることができるロジックを示す。まず最初に、トレースストリームはパケット逆圧縮ロジック４００によって受信される。この逆圧縮ロジック４００は、トレースストリームパケットを発生するのに使用された圧縮方式の理解に基づき、パケットを成分トレース要素に逆圧縮する。次に、解読ロジック４１０がトレース要素を使用し、トレース要素が示すような被モニタ回路で実行されているアクティビティに関する実行情報を構成する。かかる分析を実行するために、解読ロジック４１０は、被モニタ回路によって実行されるプログラムコードのコピーを作成するプログラムイメージ４２０を一般に参照する。次に分析回路４３０は、更に必要な分析を実行し、例えば処理命令のシーケンスのデバッグを容易にし、プロファイル動作を実行し、特定プログラムコードなどの性能を決定する。コンポーネント４００、４１０、４２０、４３０は、標準的なトレース分析ツール４０内に設けることができる。
【００６３】
本発明の一実施例によれば、トレース分析ツール４０は、トレースモジュール２０内の圧縮回路によって実施される圧縮の有効性の分析を実行するための圧縮分析ロジック４４０を更に備えることができる。この分析を実行するために、圧縮分析ロジック４４０は、パケット逆圧縮ロジック４００によって逆圧縮されるように、トレース要素のストリームと共に、トレース分析ツール４０へ入力されたトレースストリームを受信する。一実施例では、圧縮分析ロジック４４０は次に符号化データベース４５０内で識別された多数の公知の圧縮方式で使用し、同じシーケンスのトレース要素に対して種々の異なる圧縮を実行することができ、この実行に基づき、圧縮方式のいずれかトレースモジュール２０から受信されたトレースストリームで得られる圧縮よりも、より効率的な圧縮を行うかどうかを判断できる。そうである場合、これら圧縮方式のうちの１つを選択し、トレースモジュール２０のトレース発生器１２０内で将来の圧縮を制御するための符号化選択信号がパス４４５を通して出力される。例えばこの情報はトレース要素の将来の圧縮のためにどの圧縮回路を選択するかを管理するよう、制御レジスタ１４０の符号化選択フィールド２５５へルーティングできる。
【００６４】
別の実施例において、トレース発生器１２０が再コンフィギュア可能な圧縮回路３００を含む場合、圧縮分析ロジック４４０はパケット逆圧縮ロジック４００が逆圧縮したトレース要素の所定のサブセットの分析に基づき、より適した圧縮を提供することを目的とする特定の圧縮方式を推定することを試みることができ、この場合、パス４４５を通して、決定された圧縮方式の定義が出力され、トレース発生器１２０の再コンフィギュア可能な圧縮回路を再プログラムするのに使用される。
【００６５】
圧縮分析を実行したとしても、圧縮分析ロジック４４０は、被モニタ回路がプログラムイメージとして設定された符号を実行中に期待される一般的なアクティビティを、分析されたトレース要素部分が表示するかどうかを判断できるように、プログラムイメージ４２０にアクセスすることもできる。これは、圧縮効率の長期の節約を生じる可能性が高いかどうかを判断するために、プログラムイメージを基準にチェックを行うことを保証することにより、別の圧縮方式のほうがより効率的となると圧縮分析ロジック４４０が判断した状況でのチェックポイントとしてこれを使用できる。
【００６６】
上記のように、トレースモジュール２０内のトレース発生器１２０は、複数のパケットから成るトレースストリームを発生する。図９は、かかるトレースストリームの一部の例を示しており、これらパケットのサイズは異なることがあり、かかるパケットは異なる要素を含み得ることを示すのに役立っている。一実施例における各パケットは、ヘッダー５００、５１０、５１５を含み、このヘッダーは特定の実施例では、１バイトの情報を含む。１つのパケットは、初期に述べたｐヘッダーの例におけるように、１つのヘッダーのみから成ることができ、この場合、ヘッダーは被モニタ回路の実行アクティビティを示すように発生されたあるシーケンスのアトムを符号化しており、またはこれとは異なり、ヘッダーの後にオプションのペイロード部分５０５、５２０が続いてもよい。ペイロード部分のサイズは異なってもよい。一実施例では、ペイロードのサイズは関連するヘッダー部分のコンテントによって決定されるように、トレース中の情報のタイプに応じて決まることができる。これとは異なり、トレース情報の特定部分に対するペイロードサイズは可変でもよく、この場合、特定のペイロード部分の長さまたは終了部を識別するために、トレースストリーム内に、ある同期情報が設けられる。
【００６７】
ヘッダーおよび種々のオプションのペイロードを取り扱うための、特定の圧縮方式内で提供される圧縮フォーマットは種々の形態をとることができるが、特定の圧縮方式内で提供される種々の符号化フォーマットは、内部で示されるトレース要素を識別するために、トレース分析器によりデータの特定のブロックをユニークに復号化できるように非オーバーラップ状態とされる。従って、例として、１バイトのデータから成るヘッダーに対しては、２５６種類の符号化が可能であるが、ｐヘッダーを符号化するのに、これら符号化の一部しか利用できず、他のタイプのヘッダーを符号化するのに、その符号化スペースの他の部分が使用される。特定の圧縮方式で利用できる符号化フォーマットの数を増やすには、利用できるビットパターンの全体のサイズを大きくする必要があるが、このことは、トレースバンド幅全体も広くする。
【００６８】
この代わりに、本発明の実施例によれば、前に説明したように、特定のトレース動作モードで使用するように多数の圧縮方式を利用できるようにするため、特定のトレース動作モードに対して実施される圧縮方式を変更できるようにするメカニズムが提供される。この場合、かかる圧縮方式の各々は、圧縮方式の別の方式のビットパターン符号化スペースとオーバーラップするビットパターン符号化スペースを有する。時間内の特定のポイントにおいて、これら圧縮方式のうちの１つしか使用されず、現在の圧縮方式として識別されるが、圧縮変化の刺激信号に応答し、圧縮方式を異なる圧縮方式に切り換えることができ、その後、トレースストリーム内に生じる特定のビットパターンは、異なる圧縮方式に関連し、トレースストリーム内で早期に生じた対応するビットパターンに対する異なる意味を有することができる。
【００６９】
図１０は、本発明の一実施例に従って、図４の圧縮回路２１０、２２０、２３０および圧縮分析回路２５０内で実行できるステップを示すフローチャートである。ステップ６００において、圧縮分析回路のテストモードに入る。この時点で、各圧縮回路に対して維持されたトレースデータカウントがリセットされる。ステップ６０５では、プロセスはトレース要素発生器２００からのトレース要素のシーケンスの受信を待ち、その後、ステップ６１０、６２０、６３０で圧縮回路２１０、２２０、２３０の各々が、関連する圧縮方式を使用してトレース要素のそのシーケンスを圧縮する。次に、各圧縮回路によって生じた結果が、圧縮分析回路２５０へ転送され、この分析回路はステップ６１２、６２２、６３２にて、各圧縮回路に対して維持された対応するトレースデータのカウントを、その圧縮回路が発生したトレースデータの量だけインクリメントする。図１０の例では、圧縮回路の各々は、このテスト動作モード中にパラレルに動作できると仮定しているが、別の実施例では、次に上記のようにトレース要素を発生する特定の時間の間、圧縮回路の各々を利用できる。後者の実施例の場合、圧縮分析回路は種々の圧縮回路に対する別個のトレースデータカウントを依然として維持することができると理解できよう。
【００７０】
ステップ６４０では、テスト期間が終了したかどうかが判断され、終了していない場合、プロセスはステップ６０５に戻る。しかしながら、テスト期間が完了すると、次に圧縮分析回路２５０は、ステップ６４５にて、種々の圧縮回路からの出力に基づいて維持されたトレースデータカウント情報を基準に、最も適当な圧縮方式を選択する。
【００７１】
その後、ステップ６５０にて、そのときに選択されている圧縮方式、すなわちトレースストリーム内で実際に出力されたパケットを発生するのに使用されている圧縮方式が、ステップ６４５で最も適当な方式として選択された方式であるかどうかが判断される。そうである場合、別のアクションは不要であり、ステップ６６０でテストモードを出る。しかしながら、現在の方式が最良の方式でない場合、ステップ６５５にて、圧縮変更刺激信号が発せられ、図４の例では、この刺激信号はトレースストリーム内に含まれるその後のパケットを発生するのにどの圧縮回路を使用するかを管理するための、制御レジスタ１４０の符号化選択フィールド２５５に記憶される選択信号の形態をとる。
【００７２】
図１１は、本発明の一実施例に従って、図８に示されるトレース分析器４０のパケット逆圧縮ロジック４００および圧縮分析ロジック４４０により実行できるステップのシーケンスを示すフローチャートである。ステップ７００において、分析のためにトレースストリームの一部が選択され、その後、ステップ７０５にて対応するトレース要素にトレースストリームを逆圧縮するために、パケット逆圧縮ロジック４００を使用する。その後、ステップ７１０で、符号化データベース４５０で識別されるような、利用可能な他の圧縮方式のすべてを使用して、トレース要素を再圧縮する。その後、ステップ７１５にて、提供されたトレース要素に対して最小量のトレースデータを発生する方式に基づき、最も効率的な方式を選択する。その後、ステップ７２０にて、パス４４５を通して圧縮変更刺激信号を発生する。この変更刺激信号は、例えば図６に前に示したように、制御レジスタ１４０の符号化選択フィールド２５５へルーティングされる選択信号の形態をとり得る。
【００７３】
図１２は、本発明の別の実施例に従い、パケット逆圧縮ロジック４００および圧縮分析ロジック４４０により実行できるステップの別のシーケンスを示す。ステップ７５０にて、トレースストリームの一部が分析のために選択され、その後、ステップ７５５にて、対応するトレース要素を識別するためにパケット逆圧縮ロジック４００を使ってその部分が逆圧縮される。その後、ステップ７６０にて、圧縮可能な特徴を識別するよう、トレース要素が分析される。これを行うには、ランレングス符号化または圧縮に適した特徴を識別するための他の公知の技術により圧縮できる同じフォームのトレース要素のシーケンスを識別することを必要とすることがある。
【００７４】
その後、ステップ７６５にて、ステップ７６０で識別された圧縮可能な特徴に基づき、新しい圧縮方式を考えつく。その後、ステップ７７０にて、圧縮変更刺激信号を発生する。この状況では、圧縮変更刺激信号は新しい圧縮方式を定めることを必要とする。
【００７５】
トレースモジュール２０内の圧縮回路を再コンフィギュアできる状況では、かかる実施例を使用できる。例えば圧縮回路がＦＰＧＡデバイスを含む場合、圧縮変更刺激信号に基づき、ＦＰＧＡを再プログラムすることが可能である。従って、ステップ７７５にて、トレース発生回路が新しく識別された圧縮方式に従い、その後、圧縮を実行するように圧縮変更刺激信号に基づき、トレース発生回路が再コンフィギュアされる。
【００７６】
図１３は、同じトレース動作モードにありながら、圧縮方式を変更できるようにするための本発明の実施例の機構を提供する際に得られる圧縮効率の向上を示す略図である。図１３は、次の検討事項に基づくものである。
次のように２バイトの符号化されたプロトコルを検討する。
プロトコル１：
フォーマット１：１０ＥＥＥＥＥ０（シーケンス内の０〜３１のＥアトムを符号化する）
フォーマット２：１１ＮＮＮＮＮ０（シーケンス内の０〜３１のＮアトムを符号化する）
プロトコル２：
フォーマット１：１１ＦＦＦＦＦ０（５つのアトムを符号化する。各アトムはＥまたはＮアトムである）
フォーマット２：１０１ＦＦＦＦ０（４つのアトムを符号化する。各アトムはＥまたはＮアトムである）
フォーマット３：１００１ＦＦＦ０（３つのアトムを符号化する。各アトムはＥまたはＮアトムである）
フォーマット４：１０００１ＦＦ０（２つのアトムを符号化する。各アトムはＥまたはＮアトムである）
フォーマット５：１００００１Ｆ０（１つのアトムを符号化する。このアトムはＥまたはＮアトムとなり得る）
【００７７】
アトムＥＮＥＮＥＮのストリームを符号化する必要がある場合、プロトコル１を使用するとき、この符号化を行うには６バイトのトレースが必要であるが、一方、圧縮方式をプロトコル２に切り換えた場合、変更メッセージ０ＰＰＰＰＰＰＰ（ここでＰは選択されたプロトコルの番号を符号化する）と共に、２バイトのトレースを必要とするだけである。
【００７８】
特に図１３から分かるように、プロトコル１を使用する場合、各ＥまたはＮアトムは別個のバイトにより符号化する必要がある。その理由は、プロトコル１は、ＥまたはＮアトムの長いシーケンスに対する圧縮を最適にするように設計された２つの異なる符号化フォーマットを有するからである。その理由は、フォーマット１内のＥで表示されたビット位置は、シーケンス内の別のアトムの１つ後に生じるＥアトムの番号を特定するのに使用でき、同じように、フォーマット２を使用する場合、Ｎで表示されるビット位置は、特定シーケンス内で生じるＮアトムの番号を識別するのに使用できる。従って、プロトコル１は、後に個々のＮアトムが続くような個々のＥアトムを圧縮するのには適していない。これと対照的に、プロトコル２は、いずれかのタイプの１つ、２つ、３つ、４つまたは５つのアトムのシーケンスを符号化できる。その理由は、（ビット位置を１にセットすることにより）Ｅアトムまたは（ビット位置を０にセットすることにより）Ｎアトムのいずれかを識別するよう、Ｆによって識別された各ビット位置を使用できるからである。
【００７９】
従って、０〜３１のＥアトムのシーケンスを、単一バイトにより符号化するのに、プロトコル１のフォーマット１を使用でき、同じように、０〜３１のＮアトムのシーケンスを、単一バイトにより符号化するのに、プロトコル１のフォーマット２を使用できる。このことは、ＥまたはＮアトムの大きいシーケンスを符号化する際に、圧縮効率を高くすることができるが、各Ｅアトムの次に１つのＮアトムが続くような、上記アトムの特定シーケンスに対しては極めて効率的であるとは言えないことは明らかであり、その代わりに、切り換えをやりがいのあるものにするために十分な時間の間、同様なシーケンスが発生することが予想されると仮定した場合、図１３に示されるプロトコルスイッチバイト０×０２により、圧縮プロトコル２を選択するほうが良好となる。
【００８０】
図１４は、トレースストリーム内の異なる部分において、同じビットパターンが圧縮方式に応じた別のことをどのように意味するかを示す図であり、図１４は次の検討事項に基づく。
次のような２バイトの符号化されたプロトコルを検討する。
プロトコル１：
フォーマット１：１ＥＥＥＥＥＥ０（シーケンス内の０〜６３のＥアトムを符号化する）
フォーマット２：１ＮＮＮＮＮＮ１（シーケンス内の０〜６３のＮアトムを符号化する）
プロトコル２：
フォーマット１：１ＥＥＥＥＮＮ０（０〜１５のＥアトムを符号化し、その後、０〜３のＮアトムが続く）
フォーマット２：１ＮＮＮＮＥＥ１（０〜１５のＮアトムを符号化し、その後、０〜３のＥアトムが続く）および
変更メッセージ０ＰＰＰＰＰＰＰ（ここでＰは選択されたプロトコルの数を符号化する）
【００８１】
従って、トレースストリーム内で生じる変更メッセージ０×０１によるプロトコル１の選択の後で、図１４に示される情報の次の２つのバイトを使って、２つのＥアトムとそれに続く８個のＮアトムを符号化することができる。ある理由から、この時点で、圧縮方式の変更が適当であると判断された場合、特に変更メッセージ０×０２により識別されるように、圧縮プロトコル２を選択すべきであると判断された場合、次の２つのバイトは、プロトコル１を使用したときに使用された２バイトと全く同じ２バイトパターンを実際に有し得ることが理解できようが、次に２つのＮアトムおよびそれに続く別の２つのＮバイトを符号化する。この場合、最初のバイトはフォーマット１を使用し、２番目のバイトはプロトコル２のフォーマット２を使用する。
【００８２】
本発明の実施例のこれまでの説明から理解できるように、かかる実施例は、特定のトレース動作モード中でも圧縮方式の変更を行うことができるようにする。かかる変更を行うことができる方法は種々存在する。一実施例では、トレース回路はダイナミックに圧縮方式を、選択された組のうちの１つに適合化できる。これを行うために、トレース回路は多数の技術をダイナミックに比較し、最良の圧縮を提供するものと認識される１つの技術を選択するか、または小さいテストセグメントを通し、多数の異なる技術を試み、次に最良の圧縮を行うものと認識される技術に落ち着くことができる。上記のように別の実施例では、トレース分析ツールを使用し、トレース出力を分析すると共に、最良の圧縮技術を決定し、次にトレース回路によって実施される圧縮方式を切り換えるのに使用される選択信号を発生する。これとは異なり、トレース分析ツールは、トレース出力を分析し、より最適な圧縮方式を決定し、次にトレース回路内のコンフィギュア可能な圧縮回路を再プログラムし、トレース回路が発生する将来のパケットのための、その圧縮方式を使用してもよい。
【００８３】
一実施例では、トレースストリームを逆圧縮する役割を果たすロジックが、新しい圧縮方式にダイナミックに適合できるよう、トレースストリーム内に変更圧縮バイトを含ませることにより、どの圧縮方式が使用中であるかを示すように、トレース回路を構成できる。かかるアプローチは、逆圧縮を実行するトレース分析ツールが圧縮方式の変更をいつ行うかが直接制御されていない状況で、特に有利である。
【００８４】
本発明の実施例によれば、同じビットパターンに多数の意味を載せ、１つの圧縮プロトコルでこれら意味のすべてをサポートした場合よりもビットパターンの全体のサイズを大幅に小さくすることができるので、このことは、異なる圧縮方式を使用することによって直接得られる低減よりも、全体のトレースバンド幅を大幅に小さくできる。より狭いバンド幅のトレース情報を得ることにより、このことは、オンチップ記憶容量が少なくて済み、オフチップ記憶容量も少なくて済み、トレースオフチップを送信するためのピンがより少なくて済む。
【００８５】
本発明のこれまでの実施例の説明では、例はｐヘッダーの圧縮に集中していたが、本発明の実施例の概念は、データ値およびアドレスの圧縮のようなトレース圧縮の他の分野、および他のパケットフォーマットにも適用できる。
【００８６】
異なる圧縮方式の分析を実行する他に、本発明の実施例に従い、圧縮方式の選択を制御するのに、他の機構を使用することもできる。例えば前に説明したように、従うことが分かっている符号に基づき、どの圧縮方式を使用すべきかについてトレース回路にヒントを与えるように、プログラムコードを構成できる。かかるヒントは、例えばコンパイラーによりコード内に挿入できる。
【００８７】
更に一部の実施例では、一部の圧縮技術を粗くターンオフするのに、上記圧縮方式切り換え機構を使用できる。一部の圧縮技術に対し、逆圧縮アルゴリズムの時間およびスペースの複雑さは、ハードウェアに基づく逆圧縮を統合したり、またはシステムの性能条件を満たすよう、ソフトウェアでアルゴリズムを実行するために十分な数のオペレーションを動作できるプロセッサを統合することが、予測不能な大きさになり得る。この圧縮方式切り換え機構は、逆圧縮アルゴリズムの時間の複雑さおよびスペースの複雑さを低減するように、一部の圧縮技術を粗くディスエーブルするのに使用できる。従って、オンチップで捕捉されたトレースを復号化するのに使用されるトレースモジュールと共に、オンチップで設けられる一部の自己診断ソフトウェアが存在するが、オンチップのプロセッサが十分な時間で復号化を行うのに、十分強力でない場合、オンチップソフトウェアが必要な復号化を実行することを促進するように圧縮をディスエーブルすることもできる。かかる機構は、トレースを復号化するのに、例えばチェックサム目的またはリアルタイムのトレース分析のために使用できるオンチップハードウェアにも同じように適用される。
【００８８】
以上で、本明細書において特定の実施例について説明したが、本発明はこれら実施例についてだけに限定されるものではなく、本発明の範囲内でこれら実施例に対して多くの変更および追加を行うことができることが理解できよう。例えば本発明の範囲から逸脱することなく、独立項の特徴事項と従属項の特徴とを種々組み合わせることも可能である。
【図面の簡単な説明】
【００８９】
【図１】本発明の一実施例に係わるデータ処理システムのブロック図である。
【図２】一実施例に係わる図１の被モニタ回路の一例を示すブロック図である。
【図３】一実施例に係わる図１のオンチップトレースモジュールをより詳細に示すブロック図である。
【図４】本発明の一実施例に係わる図３のトレース発生器を示すブロック図である。
【図５】本発明の別の実施例に係わる図３のトレース発生器を示すブロック図である。
【図６】本発明の更に別の実施例に係わる図３のトレース発生器を示すブロック図である。
【図７】本発明の更に別の実施例に係わる図３のトレース発生器を示すブロック図である。
【図８】本発明の一実施例に係わる図１のトレース分析器を示す図である。
【図９】本発明の一実施例に係わる図１のトレースモジュール２０によって発生されるトレースストリーム内のパケットの提供を示す略図である。
【図１０】本発明の一実施例に係わる図４の圧縮回路および圧縮分析回路の動作を示すフローチャートである。
【図１１】本発明の２つの別の実施例のうちの１つに係わる、図８のパケット逆圧縮ロジックおよび圧縮分析ロジックの動作を示すフローチャートである。
【図１２】本発明の２つの別の実施例のうちの１つに係わる、図８のパケット逆圧縮ロジックおよび圧縮分析ロジックの動作を示すフローチャートである。
【図１３】圧縮方式を切り換えるときに得られる圧縮効率を示す略図である。
【図１４】本発明の一実施例に従って使用される、異なる圧縮方式に従い、特定のビットパターンがどのように異なって解釈されるかを示す。
【符号の説明】
【００９０】
１０  被モニタ回路
２０  トレースモジュール
３０  トレースバッファ
４０  トレース分析器
【図１】
2009087343.tif 000003
【図２】
2009087343.tif 000004
【図３】
2009087343.tif 000005
【図４】
2009087343.tif 000006
【図５】
2009087343.tif 000007
【図６】
2009087343.tif 000008
【図７】
2009087343.tif 000009
【図８】
2009087343.tif 000010
【図９】
2009087343.tif 000011
【図１０】
2009087343.tif 000012
【図１１】
2009087343.tif 000013
【図１２】
2009087343.tif 000014
【図１３】
2009087343.tif 000015
【図１４】
2009087343.tif 000016