(57)【要約】【課題】境界情報でデータパケットを生成する追跡情報符号化装置、その符号化方法、および読み取り可能なコンピュータ媒体を提供する。【解決手段】追跡情報符号化方法は、少なくとも１つのプロセッサからイベントを受信するステップと；イベントに基づいてデータパケットのストリームを生成し、各データパケットがＮ個のデータブロックで構成され、Ｎが正の整数であるステップと；Ｎ個のデータブロックのそれぞれに境界値を書き込むステップを含む。【選択図】図１Ａ
2018028888.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサからイベントを受信するステップと、
前記イベントに基づいてデータパケットのストリームを生成し、各前記データパケットがＮ個のデータブロックで構成され、Ｎが正の整数であるステップと、
前記Ｎ個のデータブロックのそれぞれに境界値を書き込むステップと、
を含む追跡情報符号化方法。
【請求項２】
前記Ｎ個のデータブロックのそれぞれに前記境界値を書き込む前記ステップが、
境界データブロックに論理値を書き込むステップと、
他のデータブロックに反転論理値を書き込むステップと、
を含む請求項１に記載の追跡情報符号化方法。
【請求項３】
前記境界データブロックに前記論理値を書き込む前記ステップが、
データパケットの最後のデータブロックに前記論理値を書き込むステップを含む請求項２に記載の追跡情報符号化方法。
【請求項４】
前記境界データブロックに前記論理値を書き込む前記ステップが、
データパケットの第１データブロックに前記論理値を書き込むステップを含む請求項２〜３のいずれか１項に記載の追跡情報符号化方法。
【請求項５】
各前記イベントが同期情報に対応する場合、前記イベントに基づいて前記データパケットのストリームを生成する前記ステップが、
前記同期情報のプログラムカウンタの第１アドレスをＮ−１個の第１フィールドに分割し、それぞれ前記Ｎ−１個の第１フィールドに基づいて第２データブロックを第Ｎデータブロックに設定するステップを含む請求項１〜４のいずれか１項に記載の追跡情報符号化方法。
【請求項６】
各前記イベントが間接分岐命令実行情報に対応する場合、前記イベントに基づいて前記データパケットのストリームを生成する前記ステップが、
前記第１アドレスと前記間接分岐命令実行情報の分岐対象の第２アドレスを比較して、更新アドレスを取得するステップと、
前記更新アドレスをＭ個の第２フィールドに分割し、それぞれ前記Ｍ個の第２フィールドに基づいて前記第２データブロックを前記第Ｎデータブロックに設定するステップと、
を含む請求項５に記載の追跡情報符号化方法。
【請求項７】
各前記イベントが分岐命令実行情報に対応する場合、前記イベントに基づいて前記データパケットのストリームを生成する前記ステップが、
単に１個の直接データブロックを有する前記データパケットを設定し、前記直接データブロックにフラグを書き込むステップ
を含み、前記フラグが、分岐操作が行われたかどうかを示すために使用される請求項１〜６のいずれか１項に記載の追跡情報符号化方法。
【請求項８】
前記Ｎ個のデータブロックのそれぞれのデータ幅が、１バイトまたは１ワードである請求項１〜７のいずれか１項に記載の追跡情報符号化方法。
【請求項９】
前記Ｎ個のデータブロックのそれぞれの前記データ幅が１ワードである場合、前記パケットの識別データを前記Ｎ個のデータブロックの１つに書き込むステップをさらに含む請求項８に記載の追跡情報符号化方法。
【請求項１０】
少なくとも１つのプロセッサに結合され、前記少なくとも１つのプロセッサからイベントを受信して保存するイベントバッファと、
前記イベントバッファに結合され、
前記イベントバッファから前記イベントを受信し、
前記イベントに基づいてデータパケットのストリームを生成し、各前記データパケットがＮ個のデータブロックで構成され、Ｎが正の整数であり、
前記Ｎ個のデータブロックのそれぞれに境界値を書き込む
よう構成されたエンコーダと、
を含み、各前記境界値が、前記対応するデータブロックが最後のデータブロックであるかどうかを示す追跡情報符号化装置。
【請求項１１】
前記エンコーダに結合され、前記エンコーダにより生成された前記データパケットを保存するパケットバッファをさらに含む請求項１０に記載の追跡情報符号化装置。
【請求項１２】
各前記データブロックが前記最後のデータブロックでない場合、前記エンコーダが、前記対応する境界値を第１論理値に設定し、各前記データブロックが前記最後のデータブロックである場合、前記エンコーダが、前記対応する境界値を第２論理値に設定し、
前記第１論理値が、前記第２論理値の反転である請求項１０〜１１のいずれか１項に記載の追跡情報符号化装置。
【請求項１３】
前記エンコーダが、前記Ｎ個の境界値のそれぞれを前記対応するデータブロックの特定ビットに書き込む請求項１０〜１２のいずれか１項に記載の追跡情報符号化装置。
【請求項１４】
前記Ｎ個のデータブロックのそれぞれの前記特定ビットが、前記Ｎ個のデータブロックのそれぞれの最大有効ビット（ＭＳＢ）または最小有効ビット（ＬＳＢ）である請求項１３に記載の追跡情報符号化装置。
【請求項１５】
各前記イベントが同期情報に対応する場合、前記エンコーダが、前記同期情報のプログラムカウンタの第１アドレスをＮ−１個の第１フィールドに分割し、それぞれ前記Ｎ−１個の第１フィールドに基づいて第２データブロックを第Ｎデータブロックに設定する請求項１０〜１４のいずれか１項に記載の追跡情報符号化装置。
【請求項１６】
各前記イベントが間接分岐命令実行情報に対応する場合、前記エンコーダが、前記第１アドレスと前記間接分岐命令実行情報の分岐対象の第２アドレスを比較して、更新アドレスを取得するとともに、前記更新アドレスをＭ個の第２フィールドに分割し、それぞれ前記Ｍ個の第２フィールドに基づいて前記第２データブロックを前記第Ｎデータブロックに設定する請求項１５に記載の追跡情報符号化装置。
【請求項１７】
各前記イベントが分岐命令実行情報に対応する場合、前記エンコーダが、単に１個の直接データブロックを有する前記データパケットを設定して、前記直接データブロックにフラグを書き込み、
前記フラグが、分岐操作が行われたかどうかを示すために使用される請求項１０〜１６のいずれか１項に記載の追跡情報符号化装置。
【請求項１８】
前記Ｎ個のデータブロックのそれぞれのデータ幅が、１バイトまたは１ワードである請求項１０〜１７のいずれか１項に記載の追跡情報符号化装置。
【請求項１９】
前記Ｎ個のデータブロックのそれぞれの前記データ幅が１ワードである場合、前記エンコーダが、前記パケットの識別データを前記Ｎ個のデータブロックの１つに書き込む請求項１８に記載の追跡情報符号化装置。
【請求項２０】
電子装置にロードされた複数のプログラムコードセグメントを含み、
少なくとも１つのプロセッサからイベントを受信するステップと、
前記イベントに基づいてデータパケットのストリームを生成し、各前記データパケットがＮ個のデータブロックで構成され、Ｎが正の整数であるステップと、
前記Ｎ個のデータブロックのそれぞれに境界値を書き込むステップと、
を実行し、各前記境界値が、前記対応するデータブロックが最後のデータブロックであるかどうかを示す読み取り可能なコンピュータ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、追跡情報符号化装置およびその符号化方法に関するものであり、特に、データパケットの境界情報を記録するための追跡情報符号化装置およびその符号化方法に関するものである。
【背景技術】
【０００２】
プロセッサのイベントを診断するためには、追跡情報エンコーダにより１つまたはそれ以上の追跡パケットを生成することができる。従来の技術において、追跡パケットは、循環バッファに保存される。追跡帯域幅を減らすため、各追跡パケットのデータ幅は可変的である。つまり、最も古いデータパケットが最も新しいデータパケットで上書きされた場合、循環バッファ内の各データパケットの境界情報を決定することができない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、追跡情報符号化装置、その符号化方法、および境界情報を有するデータパケットを生成する読み取り可能なコンピュータ媒体を提供する。
【課題を解決するための手段】
【０００４】
本発明は、少なくとも１つのプロセッサからイベントを受信するステップと；イベントに基づいてデータパケットのストリームを生成し、各データパケットがＮ個のデータブロックで構成され、Ｎが正の整数であるステップと；Ｎ個のデータブロックのそれぞれに境界値を書き込むステップを含む追跡情報符号化方法を提供する。
【０００５】
本発明は、イベントバッファおよびエンコーダを含む追跡情報符号化装置を提供する。イベントバッファは、少なくとも１つのプロセッサに結合され、少なくとも１つのプロセッサからイベントを受信し、保存する。エンコーダは、イベントバッファに結合される。エンコーダは、イベントバッファからイベントを受信し；イベントに基づいてデータパケットのストリームを生成し、各データパケットがＮ個のデータブロックで構成され、Ｎが正の整数であり；Ｎ個のデータブロックのそれぞれに境界値を書き込むよう構成される。境界値は、対応するデータブロックが境界データブロックであるかどうかを示す。
【０００６】
本発明は、複数のプログラムコードセグメントを含む読み取り可能なコンピュータ媒体を提供する。プログラムコードセグメントは、電子装置にロードされ、少なくとも１つのプロセッサからイベントを受信するステップ；イベントに基づいてデータパケットのストリームを生成し、各データパケットがＮ個のデータブロックで構成され、Ｎが正の整数であるステップ；およびＮ個のデータブロックのそれぞれに境界値を書き込むステップを実行する。境界値は、対応するデータブロックが境界データブロックであるかどうかを示す。
【発明の効果】
【０００７】
以上のように、本発明は、データブロックにそれぞれ境界値を書き込み、対応するデータブロックが境界データブロックであるかどうかに基づいて境界値を決定する追跡情報符号化装置を提供する。つまり、対応する境界値によりデータパケットの境界データブロックを識別することができ、データパケットのデータ損失を防ぐことができる。
【０００８】
本発明の上記および他の目的、特徴、および利点をより分かり易くするため、図面と併せた幾つかの実施形態を以下に説明する。
【０００９】
添付図面は、本発明の原理がさらに理解されるために含まれており、本明細書に組み込まれかつその一部を構成するものである。図面は、本発明の実施形態を例示しており、説明とともに、本発明の原理を説明する役割を果たしている。
【図面の簡単な説明】
【００１０】
【図１Ａ】図１Ａは、本発明の１つの実施形態に係る追跡情報符号化方法のフローチャートを示したものである。
【図１Ｂ】図１Ｂは、本発明の１つの実施形態に係る追跡情報符号化方法を実行するシステムのブロック図を示したものである。
【図１Ｃ】図１Ｃは、本発明の１つの実施形態に係る追跡情報符号化方法を実行するシステムのブロック図を示したものである。
【図１Ｄ】図１Ｄは、本発明の１つの実施形態に係る追跡情報符号化方法を実行するシステムのブロック図を示したものである。
【図２】本発明の１つの実施形態に係るデータパケットの概略図を示したものである。
【図３】本発明の１つの実施形態に係る循環バッファの概略図を示したものである。
【図４】本発明の１つの実施形態に係る同期情報に対応するデータパケットの概略図を示したものである。
【図５】本発明の１つの実施形態に係る分岐命令実行情報に対応するデータパケットの概略図を示したものである。
【図６】本発明の１つの実施形態に係る間接分岐命令実行情報に対応するデータパケットの概略図を示したものである。
【図７】本発明の別の実施形態に係るデータパケットのデータブロックの概略図を示したものである。
【図８Ａ】図８Ａは、本発明の１つの実施形態に係るデータパケットのストリームを保存する循環バッファの概略図を示したものである。
【図８Ｂ】図８Ｂは、本発明の１つの実施形態に係るデータパケットのストリームを保存する循環バッファの概略図を示したものである。
【図９】本発明の１つの実施形態に係る追跡情報符号化装置のブロック図を示したものである。
【図１０】本発明の１つの実施形態に係るエンコーダのブロック図を示したものである。
【発明を実施するための形態】
【００１１】
図１Ａを参照すると、図１Ａは、本発明の１つの実施形態に係る追跡情報符号化方法のフローチャートを示したものである。ステップＳ１１０において、１つまたはそれ以上のプロセッサからのイベントを受信する。イベントは、現プログラムカウンタ、分岐命令を実行する、ロード／保存命令を実行する、例外発生、内容識別を更新する、プログラムがシステムコールを発行する、追跡をイネーブルにする、およびタイムスタンプであってもよい（ただし、本発明はこれに限定されない）。データパケットのストリームは、ステップＳ１２０のイベントに基づいて生成することができ、各データパケットは、Ｎ個のデータブロックで構成され、Ｎは、正の整数である。データブロックは、１個のビットのみを有し、データパケットの第１のデータブロックとデータパケットの最後のデータブロックを決定する。さらに、ステップＳ１３０において、Ｎ個のデータブロックのそれぞれに境界値を書き込む。境界値は、対応するデータブロックが境界データブロックであるかどうかを示し、各データブロックは、１個の境界値を含む。１つの実施形態において、境界データブロックは、パケットの最後のデータブロックである。別の実施形態において、境界データブロックは、パケットの第１のデータブロックである。詳しく説明すると、ステップＳ１３０において、各Ｎ個のデータブロックがデータパケットにおける境界データブロックであるかどうかを決定する。データブロックが境界データブロックでない場合、対応する境界値を第１論理値に設定し、データブロックが境界データブロックである場合、対応する境界値を第２論理値に設定することができる。第１論理値は、第２論理値の反転である。
【００１２】
図１Ｂ〜図１Ｄを参照されたい。図１Ｂ〜図１Ｄは、本発明の１つの実施形態に係る追跡情報符号化方法を実行するシステムのブロック図を示したものである。図１Ｂにおいて、システム１００は、チップ１１０Ａおよび診断ホスト１２０Ａを含む。チップ１１０Ａは、プロセッサコア１１１Ａ、追跡情報符号化装置１１２Ａ、記憶装置１１３Ａ、周辺装置１１４Ａ、および追跡バッファ１１５Ａを含む。プロセッサコア１１１Ａは、システムバスＳＢＵＳを介して記憶装置１１３Ａおよび周辺装置１１４Ａに結合される。プロセッサコア１１１Ａは、さらに、追跡情報符号化装置１１２Ａに結合され、追跡情報符号化装置１１２Ａは、追跡バッファ１１５Ａに結合され、追跡バッファ１１５Ａは、診断ホスト１２０Ａに結合される。
【００１３】
追跡情報符号化装置１１２Ａは、図１Ａのステップを実行するために使用され、追跡情報符号化装置１１２Ａは、追跡バッファ１１５Ａにデータパケットを保存する。追跡バッファ１１５Ａは、循環バッファ（circular buffer）であってもよい。
【００１４】
診断ホスト１２０Ａは、追跡バッファ１１５Ａからデータパケットにアクセスして診断操作を行うことができ、それに従って、プロセッサコア１１１Ａの動作を追跡することができる。
【００１５】
図１Ｃにおいて、システム１０１は、チップ１１０Ｂ、追跡バッファ１１５Ｂ、および診断ホスト１２０Ｂを含む。チップ１１０Ｂは、プロセッサコア１１１Ｂ、追跡情報符号化装置１１２Ｂ、記憶装置１１３Ｂ、周辺装置１１４Ｂ、および追跡ポート１１６Ｂを含む。図１Ｂとは異なり、追跡バッファ１１５Ｂは、チップ１１０Ｂに埋め込まれず、チップ１１０Ｂの外部にある。追跡バッファ１１５Ｂは、追跡ポート１１６Ｂを介して追跡情報符号化装置１１２Ｂに結合される。プロセッサコア１１１Ｂは、システムバスＳＢＵＳを介して記憶装置１１３Ｂおよび周辺装置１１４Ｂに結合される。
【００１６】
図１Ｄにおいて、システム１０２は、チップ１１０Ｃを含む。チップ１１０Ｃは、プロセッサコア１１１Ｃ、記憶装置１１３Ｃ、および周辺装置１１４Ｃを含む。プロセッサコア１１１Ｃは、システムバスＳＢＵＳを介して記憶装置１１３Ｃおよび周辺装置１１４Ｃに結合される。記憶装置１１３Ｃは、追跡バッファ１１３２および追跡エンコーダ１１３１のアプリケーションコードを保存する。プロセッサコア１１１Ｃは、記憶装置１１３Ｃから追跡エンコーダ１１３１のアプリケーションコードをロードし、追跡エンコーダ１１３１のアプリケーションコードを実行して追跡情報符号化装置の機能を行う。
【００１７】
図１Ａおよび図２を同時に参照すると、図２は、本発明の１つの実施形態に係るデータパケットの概略図を示したものである。図２において、データパケット２００は、プロセッサのイベントに基づいて生成され、データパケット２００は、Ｎ個のデータブロック２１１〜２１Ｎを有する。Ｎ個のデータブロック２１１〜２１Ｎは、それぞれイベントのデータＡ１〜データＡＮを記録し、Ｎ個のデータブロック２１１〜２１Ｎは、それぞれ対応するブロックが最後のブロックであることを示す、あるいは境界値を記録するための特定ビットＳＢ１〜ＳＢＮを有する。図２において、データブロック２１１〜２１２は最後のデータブロックではないため、データブロック２１１および２１２の特定ビットＳＢ１およびＳＢ２の境界値は、それぞれ第１論理値（すなわち論理「１」）である。反対に、データブロック２１Ｎは最後のデータブロックであるため、データブロック２１Ｎの特定ビットＳＢＮの境界値は、それぞれ第２論理値（すなわち論理「０」）である。
【００１８】
注意すべきこととして、Ｎの数は１より大きい数に限定されず、いくつかの実施形態において、データパケットは、単に１個のデータブロックを含む。この場合、たった１つのデータブロックは、第１および最後のデータブロックであり、このたった１つのデータブロックの境界値は、論理「０」である。
【００１９】
Ｎ個のデータブロック２１１〜２１Ｎのそれぞれのデータ幅は、１バイト（byte）であってもよく、境界値を保存するための特定ビットは、Ｎ個のデータブロック２１１〜２１Ｎのそれぞれの最大有効ビット（most significant bit, MSB）であってもよい。別の実施形態において、Ｎ個のデータブロック２１１〜２１Ｎのそれぞれのデータ幅は、１ワード（word）であってもよく、境界値を保存するための特定ビットは、Ｎ個のデータブロック２１１〜２１Ｎのそれぞれの最小有効ビット（least significant bit, LSB）であってもよい。
【００２０】
図３を参照すると、図３は、本発明の１つの実施形態に係る循環バッファの概略図を示したものである。循環バッファ３００は、データパケットを保存するために使用される。図３において、循環パケット３００にデータパケットＤＰ１〜ＤＰ３が順番に保存される。データパケットＤＰ１は、データブロック３１１〜３１３を含み、データＡ１〜データＡ３は、それぞれデータブロック３１１〜３１３に保存される。さらに、データブロック３１１〜３１３の特定ビットＳＢ１〜ＳＢ３は、それぞれ境界値「１」、「１」、および「０」を記録する。このことからわかるように、データブロック３１３は、データパケットＤＰ１の最後のデータブロックであり、データブロック３１３の隣のデータブロック３２１は、他のデータパケットＤＰ２に属する。
【００２１】
データパケットＤＰ２は、たった１つのデータブロック３２１を含み、データＢ１を保存するためにデータブロック３２１を使用する。データブロック３２１は、データパケットＤＰ２の最後のデータブロックである。したがって、データパケットＤＰ２の境界値は、論理「０」である。さらに、データパケットＤＰ３は、データブロック３３１および３３２を含む。データブロック３３１および３３２は、それぞれデータＣ１およびデータＣ２を保存する。データブロック３３１は、データパケットＤＰ３の最後のデータブロックではなく、特定ビットＳＢ５に保存された境界値は、論理「１」である。反対に、データブロック３３２は、データパケットＤＰ３の最後のデータブロックであり、特定ビットＳＢ６に保存された境界値は、論理「０」である。
【００２２】
図３に示すように、診断操作を行う時、審査ホストによって循環バッファ３００にアクセスすることができる。診断ホストは、各データパケットＤＰ１〜ＤＰ３の各境界を識別することができ、データパケットＤＰ１〜ＤＰ３内のデータを正確に取得することができる。
【００２３】
図４を参照すると、図４は、本発明の１つの実施形態に係る同期情報に対応するデータパケットの概略図を示したものである。データパケット４００は、プロセッサの同期情報に対応し、データブロック４１１〜４１６を含む。同期情報は、プログラムカウンタのアドレスを含む。プログラムカウンタのアドレスは、複数のサブアドレスＡＤＤ１〜ＡＤＤ５に分割され、それぞれ複数のフィールド４１２ａ〜４１６ａに保存される。フィールド４１２ａ〜４１６ａは、それぞれデータブロック４１２〜４１６の中に含まれる。さらに、データパケット４００において、データブロック４１１〜４１５は、最後のデータブロックではなく、境界値ＢＶ１〜ＢＶ５は、論理「１」であり、データブロック４１６は、最後のデータブロックであり、境界値ＢＶ６は、論理「０」である。
【００２４】
図５を参照すると、図５は、本発明の１つの実施形態に係る分岐命令実行情報に対応するデータパケットの概略図を示したものである。データパケット５００は、プロセッサの分岐命令実行情報に対応し、たった１個のデータブロック５１１（直接データブロック）がデータパケット５００の中に含まれるように設定される。データブロック５１１内のビットは、フラグＤＩＲを保存して、ビット内の分岐命令実行情報の直接情報を示すために使用される。例えば、フラグＤＩＲが論理「１」である場合、プロセッサは直接分岐操作を行い、フラグＤＩＲが論理「０」である場合、プロセッサは直接または間接分岐操作を行わない。
【００２５】
データブロック５１１は最後のデータブロックであるため、そのように論理「０」の境界値ＢＶ５１は、データブロック５１１の特定ビットＳＢに書き込まれる。
【００２６】
図６を参照すると、図６は、本発明の１つの実施形態に係る間接分岐命令実行情報に対応するデータパケットの概略図を示したものである。間接分岐命令実行情報に対応するデータパケット６００を取得するため、間接分岐命令実行情報の分岐対象アドレスと最初のアドレスを比較して、更新アドレスを取得することができる。更新アドレスは、複数のサブアドレスＵＡＤＤ１〜ＵＡＤＤ４に分割され、サブアドレスＵＡＤＤ１〜ＵＡＤＤ４は、それぞれ複数のフィールド６１２ａ〜６１５ａに保存される。フィールド６１２ａ〜６１５ａは、それぞれデータブロック６１２〜６１５の中に含まれる。
【００２７】
注意すべきこととして、データブロック６１２〜６１５の数は固定されず、データブロック６１２〜６１５の数は、分岐対象アドレスと最初のアドレスを比較するアドレス比較操作の比較結果により決定することができる。例えば、分岐対象アドレスＢＡＤＤ［２８：１］と元のアドレスＯＡＤＤ［２８：１］をビット単位で比較して、一部の分岐対象アドレスＢＡＤＤ［１０：１］が一部の元のアドレスＯＡＤＤ［１０：１］と異なり、別の部分の分岐対象アドレスＢＡＤＤ［２８：１１］および別の部分の元のアドレスＯＡＤＤ［２８：１１］が同じである場合、ＢＡＤＤ［１０：１］により更新アドレスを生成することができる。つまり、更新アドレスの必須のデータ幅は、１３ビットであり、各データブロック６１２〜６１５のデータ幅が１バイトである場合、２つのフィールドを更新アドレスに保存する必要がある。
【００２８】
図７を参照すると、図７は、本発明の別の実施形態に係るデータパケットのデータブロックの概略図を示したものである。データブロック７００のデータ幅は、１ワードである。特定ビットＳＢは、データブロック７００の最小有効ビット（ＬＳＢ）になるよう設定され、境界値ＢＶは、データブロック７００のＬＳＢに保存される。さらに、データパケットの識別データＩＤをデータブロック７００に書き込むことができる。識別データＩＤは、イベントソースのプロセッサ識別である。
【００２９】
別の実施形態において、データパケットのデータブロックの数が１よりも大きい場合、データブロックの１つ、例えば、第１データブロックに識別データＩＤを書き込むことができる。
【００３０】
図８Ａおよび図８Ｂを参照すると、図８Ａおよび図８Ｂは、本発明の１つの実施形態に係るデータパケットのストリームを保存する循環バッファの概略図を示したものである。図８Ａにおいて、３２バイトを含む循環バッファ８００を提供する。循環バッファ８００は、３２個のデータブロック８１１〜８３２を保存する。例えば、各データブロック８１１〜８３２の境界値は、各データブロック８１１〜８３２のＭＳＢに保存される。データブロック８１１〜８３２を復号化することによって、データブロック８１１〜８１６を含む第１データパケットＤＰ１、データブロック８１７〜８１９を含む第２データパケットＤＰ２、およびデータブロック８２０、８３０、および８３１をそれぞれ含む第３〜第５データパケットＤＰ３〜ＣＰ５を取得することができる。データパケットＤＰ１は、同期情報に対応し、プログラムカウンタのアドレスは、０×００００に設定される。データパケットＤＰ２は、間接分岐命令実行情報に対応し、間接分岐命令を行い、分岐対象のアドレスは、０×４０００である。さらに、データパケットＤＰ３〜ＤＰ５は、プロセッサにより実行される複数の分岐操作を示す。
【００３１】
注意すべきこととして、図８Ａにおいて、データブロック８３２は空であるため、循環バッファ８００の書き込みポイントは、データブロック８３２に設定され、ラップフラグはイネーブルにされない（論理「０」に設定される）。
【００３２】
図８Ｂにおいて、新しいイベントが生成された時、新しい間接分岐操作を行って、データ０×８５をデータパケット８３２に書き込み、データ０×４０をデータパケット８１１に書き込むことにより、元のデータを上書きする。したがって、ラップフラグは、論理「１」に設定され（イネーブルにされ）、循環バッファ８００の書き込みポイントは、データブロック８１１に設定される。
【００３３】
注意すべきこととして、データパケットＤＰ１のデータが破壊されても、データブロック８１６内の境界値を識別することによって、破壊されたデータパケットＤＰ１の境界を決定することができる。つまり、データパケットＤＰ２〜ＤＰ５内のデータを正確に取得することができる。
【００３４】
図９を参照すると、図９は、本発明の１つの実施形態に係る追跡情報符号化装置のブロック図を示したものである。追跡情報符号化装置９００は、イベントバッファ９１０、エンコーダ９２０、およびパケットバッファ９３０を含む。イベントバッファ９１０は、１つのプロセッサＣＰ１または多数のプロセッサＣＰ１およびＣＰ２に結合される。イベントバッファ９１０は、プロセッサＣＰ１および／またはＣＰ２からイベントを受信して、保存する。また、イベントバッファ９１０は、エンコーダ９２０にも結合される。エンコーダ９２０は、イベントバッファ９１０からイベントを受信し；イベントに基づいてデータパケットのストリームを生成し、各データパケットが、Ｎ個のデータブロックで構成され、Ｎが、正の整数であり；Ｎ個のデータブロックのそれぞれに境界値を書き込んで、イベントバッファ９１０のイベントに対応する１つまたはそれ以上のデータパケットを生成するよう構成される。各境界値は、対応するデータブロックが境界データブロックであるかどうかを示す。
【００３５】
イベントバッファ９１０は、循環バッファであってもよく、エンコーダ９２０に結合されて、エンコーダ９２０により生成されたデータパケットを受信して保存する。
【００３６】
本実施形態において、イベントバッファ９１０、エンコーダ９２０、およびパケットバッファ９３０は、ハードウェア回路により実施され、イベントバッファ９１０、エンコーダ９２０、およびパケットバッファ９３０は、同じチップ内で実施されてもよい。別の実施形態において、パケットバッファ９３０は、イベントバッファ９１０およびエンコーダ９２０を含むチップの外部にあってもよい。
【００３７】
本実施形態において、エンコーダ９２０は、論理回路であってもよく、ハードウェア記述言語または他のデジタル回路設計スキームで設計されてもよい。上述した実施形態においてエンコーダ９２０の詳細な操作を示してあるため、ここでは繰り返し説明しない。
【００３８】
図１０を参照すると、図１０は、本発明の１つの実施形態に係るエンコーダのブロック図を示したものである。図１０において、追跡情報を符号化するためのエンコーダ１０００は、電子装置１０１０により実施することができる。電子装置１０１０は、記憶装置１０２０に結合され、読み取り可能なコンピュータ媒体は、記憶装置１０２０に保存される。電子装置１０１０は、記憶装置１０２０内の読み取り可能なコンピュータ媒体を実行することのできるプロセッサを含む。電子装置１０１０がエンコーダ１０００になるよう構成される時、電子装置１０１０は、記憶装置１０２０から読み取り可能なコンピュータ媒体にアクセスして実行し、電子装置１０１０によりエンコーダ１０００の機能を行うことができる。エンコーダ１０００の機能は、上述したエンコーダ９２０の機能と同じである。
【００３９】
本実施形態において、記憶装置１０２０はデータを保存することができ、本分野の技術者に周知の任意のハードウェア装置であってもよい。
【００４０】
以上のように、本発明は、データパケットのデータブロックに境界値を書き込む方法を提供する。つまり、循環バッファ内の各データパケットの境界情報を識別することができ、データパケットが破壊された時でも、破壊されたデータパケットの境界を決定することができ、破壊されていないデータパケットのデータを正確に取得することができる。
【００４１】
以上のごとく、この発明を実施形態により開示したが、もとより、この発明を限定するためのものではなく、当業者であれば容易に理解できるように、この発明の技術思想の範囲内において、適当な変更ならびに修正が当然なされうるものであるから、その特許権保護の範囲は、特許請求の範囲および、それと均等な領域を基準として定めなければならない。
【産業上の利用可能性】
【００４２】
本発明は、データパケットのデータブロックに境界値を書き込む。つまり、循環バッファ内の各データパケットの境界情報を識別することができ、データパケットが破壊された時でも、破壊されたデータパケットの境界を決定することができ、破壊されていないデータパケットのデータを正確に取得することができる。
【符号の説明】
【００４３】
１００、１０１、１０２  システム
１１０Ａ、１１０Ｂ、１１０Ｃ  チップ
１２０Ａ、１２０Ｂ  診断ホスト
１１１Ａ、１１１Ｂ、１１１Ｃ  プロセッサコア
１１２Ａ、１１２Ｂ、９００  追跡情報符号化装置
１１３Ａ、１１３Ｂ、１１３Ｃ、１０２０  記憶装置
１１４Ａ，１１４Ｂ，１１４Ｃ  周辺装置
１１５Ａ、１１５Ｂ  追跡バッファ
１１６Ｂ  追跡ポート
１０１０  電子装置
１１３１  追跡エンコーダ
２００、４００、５００、６００、ＤＰ１、ＤＰ２、ＤＰ３〜ＤＰ５  データパケット
２１１〜２１Ｎ、３１１〜３１３、３２１、３３１〜３３２、４１１〜４１６、５１１、６１２〜６１５、７００、８１１〜８３２  データブロック
３００、８００  循環バッファ
４１２ａ〜４１６ａ、６１２ａ〜６１５ａ  フィールド
９１０  イベントバッファ
９２０、１０００  エンコーダ
９３０  パケットバッファ
Ａ１〜ＡＮ、Ｂ１、Ｃ１、Ｃ２  データ
ＡＤＤ１〜ＡＤＤ５、ＵＡＤＤ１〜ＵＡＤＤ４  サブアドレス
ＢＡＤＤ［２８：１］  分岐対象アドレス
ＢＶ１〜ＢＶ６、ＢＶ５１  境界値
ＣＰ１、ＣＰ２  プロセッサ
ＤＩＲ  フラグ
ＩＤ  識別データ
ＯＡＤＤ［２８：１］  元のアドレス
Ｓ１１０〜Ｓ１３０  追跡情報符号化方法のステップ
ＳＢ、ＳＢ１〜ＳＢＮ  特定ビット
ＳＢＵＳ  システムバス
【図１Ａ】
2018028888.tif 000003
【図１Ｂ】
2018028888.tif 000004
【図１Ｃ】
2018028888.tif 000005
【図１Ｄ】
2018028888.tif 000006
【図２】
2018028888.tif 000007
【図３】
2018028888.tif 000008
【図４】
2018028888.tif 000009
【図５】
2018028888.tif 000010
【図６】
2018028888.tif 000011
【図７】
2018028888.tif 000012
【図８Ａ】
2018028888.tif 000013
【図８Ｂ】
2018028888.tif 000014
【図９】
2018028888.tif 000015
【図１０】
2018028888.tif 000016
【外国語明細書】
2018028888000001.pdf