(57)【要約】【課題】異なるトレースデータ・ソースにより出力されたトレースデータ・ストリームは時間的に相関していない。システムを適切にデバッグするため診断ツールは異なるトレースデータ・ストリームのトレース事象を時間的に相関可能である必要がある。【解決手段】トレースデータ・ストリームを発生する各々のソースと関係する複数データ処理部品を有する集積回路で、基準時間刻印発生器が設けられて、トレースデータ・ストリームが基準時間刻印データと共にオフチップに出力されるようトレースデータ・ストリームに注釈が与えられる。基準時間刻印データと共にトレースデータ・ストリームを出力すると、トレース解析ツールにより異なるトレースデータ・ストリームのポイント間の時間相関が可能となる。【選択図】図３
2005056380.tif 000002
【特許請求の範囲】
【請求項１】
データを処理する装置において、
少なくとも２つのトレースデータ・ソースであって、各々のトレースデータ・ストリームを発生するよう動作可能な前記少なくとも２つのトレースデータ・ソースと、
規準時間刻印を発生するよう動作可能な規準時間刻印発生器と、
前記トレースデータ・ストリームと共に、前記各々のトレースデータ・ストリーム内のポイントと関係する前記規準時間刻印データを出力して、前記少なくとも２つのトレースデータ・ソース間の時間相関を与えるよう動作可能なトレースデータ・アノテータ（ａｎｎｏｔａｔｏｒ）と、
を含むデータを処理する装置。
【請求項２】
請求項１記載の装置において、前記トレースデータ・ソースの内の１つが前記基準時間刻印発生器としての役割も果たす装置。
【請求項３】
請求項１記載の装置において、前記トレースデータ・アノテータは、前記トレースデータ・ストリームと、前記基準時間刻印データを含む異なるデータ・ストリームとを出力するよう動作可能である装置。
【請求項４】
請求項１記載の装置において、前記トレースデータ・アノテータは前記基準時間刻印データを前記トレースデータ・ストリームの内の少なくとも１つに挿入して各々個別の注釈されたトレースデータ・ストリームを発生する装置。
【請求項５】
請求項１記載の装置において、前記少なくとも２つのトレースデータ・ソースからの前記トレースデータ・ストリームはローカルにサイクルが正確なトレースデータ・ストリームである装置。
【請求項６】
請求項１記載の装置において、前記少なくとも２つのトレースデータ・ソースの各々と関連する少なくとも２つのローカル・クロック・ソースを含み、前記少なくとも２つのローカル・クロック・ソースの各々は前記トレースデータ・ストリーム中の前記ポイントと関連するローカル時間刻印を発生するよう動作可能である装置。
【請求項７】
請求項６記載の装置において、前記トレースデータ・アノテータは前記ローカル時間刻印データと共に前記基準時間刻印データと前記トレースデータ・ストリームを出力するよう動作可能である装置。
【請求項８】
請求項１記載の装置において、前記少なくとも２つのトレースデータ・ソースの内の少なくとも１つは、対応するトレースデータ・ストリーム中のマーカー点でマーカー・パケットを出力し、前記マーカー点と関係する基準時間刻印データを出力するよう前記基準時間刻印発生器に要求を発行するよう動作可能なマーカー・パケット発生器を含む装置。
【請求項９】
請求項８記載の装置において、前記マーカー・パケット発生器は、関係するトレースデータ・ソースを識別するトレース・ソース識別信号を前記マーカー・パケット中に含ませるよう動作可能である装置。
【請求項１０】
請求項８記載の装置において、前記マーカー・パケット発生器は、各トレースデータ・ソースからの前記マーカー点に対応するローカル時間刻印データを前記マーカー・パケット中に含ませるよう動作可能である装置。
【請求項１１】
請求項１記載の装置において、前記トレースデータ・ストリームと前記基準時間刻印データとをトレースデータ・ストリーム・プロセッサへの出力用に組合わせるよう動作する組合わせ器を含む装置。
【請求項１２】
請求項１記載の装置において、前記少なくとも２つのトレースデータ・ソースの少なくとも１つは、１つ以上の所定のメモリ位置へのソフトウェア制御書込みが前記ソフトウェア・トリガのトレースデータ発生器によるトレースデータ・ストリームの発生をトリガするよう、ソフトウェア・トリガのトレース・データ発生器を含む装置。
【請求項１３】
請求項１記載の装置において、前記少なくとも２つのトレースデータ・ソースの内の少なくとも１つは、
プロセッサ・コアと、
ディジタル信号プロセッサと、
メモリバス・モニタと、
を含む装置。
【請求項１４】
請求項１記載の装置において、前記装置は集積回路を含む装置。
【請求項１５】
データを処理する方法において、
各トレースデータ・ソースから少なくとも２つのトレースデータ・ストリームを発生する段階と、
前記少なくとも２つのトレースデータ・ストリーム中のポイントと関係する基準時間刻印データを発生する段階と、
前記少なくとも２つのトレースデータ・ストリームと共に、前記少なくとも２つのトレースデータ・ストリーム中の前記ポイントと関係する前記基準時間刻印データを出力して、前記少なくとも２つのトレースデータ・ソース間の時間相関を与えることにより前記少なくとも２つのトレースデータ・ストリームに注釈（ａｎｎｏｔａｔｅ）を与える段階と、
を含むデータを処理する方法。
【請求項１６】
請求項１５記載の方法において、前記注釈は、前記少なくとも２つのトレースデータ・ストリームの各々と前記基準時間刻印データを含む異なるデータ・ストリームとを出力する段階を含む方法。
【請求項１７】
請求項１５記載の方法において、前記注釈は、前記少なくとも２つのトレースデータ・ストリームの内の少なくとも１つに前記基準時間刻印データを挿入し、各々個別の注釈されたトレースデータ・ストリームを発生する段階を含む方法。
【請求項１８】
請求項１５記載の方法において、前記少なくとも２つのトレースデータ・ソースからの前記トレースデータ・ストリームはサイクルが正確なトレースデータ・ストリームである方法。
【請求項１９】
請求項１５記載の方法において、前記トレースデータ・ソースの各々を介して、前記トレースデータ・ストリーム中の前記ポイントと関係するローカル時間刻印データを発生する段階を含む方法。
【請求項２０】
請求項１９記載の方法において、前記注釈は、前記基準時間刻印データと前記トレースデータ・ストリームと共に前記ローカル時間刻印データを出力する段階を含む方法。
【請求項２１】
請求項１５記載の方法において、前記トレースデータ・ソースの内の少なくとも１つを介して、対応するトレースデータ・ストリーム中のマーカー点でマーカー・パケットを発生し、前記マーカー点と関係する基準時間刻印データを発生するよう基準時間刻印発生器に要求を送信する段階を含む方法。
【請求項２２】
請求項２１記載の方法において、前記マーカー・パケットは、関係するトレースデータ・ソースを識別するトレース・ソース識別信号を含む方法。
【請求項２３】
請求項２１記載の方法において、前記マーカー・パケットは、各トレースデータ・ソースからの前記マーカー点に対応するローカル時間刻印データを含む方法。
【請求項２４】
請求項１５記載の方法において、前記トレースデータ・ストリームと前記基準時間刻印データとをトレースデータ・ストリーム・プロセッサへの出力用に組合わせる段階と、を含む方法。
【請求項２５】
請求項１５記載の方法において、前記少なくとも２つのトレースデータ・ストリームを発生する前記段階は、ソフトウェア・トリガのトレース・データ発生器を使用し、１つ以上の所定のメモリ位置へのソフトウェア制御の書込みを用いてトレースデータ・ストリームの発生をトリガする段階を含む方法。
【請求項２６】
請求項１５記載の方法において、前記トレースデータ・ソースの少なくとも１つは、
プロセッサ・コアと、
ディジタル信号プロセッサと、
メモリバス・モニタと、
を含む方法。
【請求項２７】
請求項１５記載の方法において、前記方法は集積回路上で実行される方法。
【請求項２８】
トレースデータを含む少なくとも２つの注釈されたトレースデータ・ストリームと共に前記少なくとも２つのトレースデータ・ストリーム内のポイントと関係する基準時間刻印データを解析するデータ処理装置を制御するコンピュータ・プログラムを担持するコンピュータ・プログラム製品において、
前記基準時間刻印データを使用して前記少なくとも２つのトレースデータ・ストリーム中の前記ポイント間の時間相関を実行するよう動作可能なトレースデータ処理コードと、
を含むコンピュータ・プログラム製品
【請求項２９】
請求項２８記載のコンピュータ・プログラム製品において、前記トレースデータ処理コードは、異なるトレースデータ・ストリームからの２つのトレース事象間の時間相関を実行するよう動作可能である、コンピュータ・プログラム製品。
【請求項３０】
請求項２８記載のコンピュータ・プログラム製品において、前記トレースデータ処理コードは、前記少なくとも２つのトレースデータ・ストリームの内の任意の１つにおいて前記ポイントの２つの間で内挿を実行するよう動作可能であるコンピュータ・プログラム製品。
【発明の詳細な説明】
【背景技術】
【０００１】
本発明はデータ処理システムに関係する。特に、本発明はトレースデータ・ソース（ｔｒａｃｅ  ｄａｔａ  ｓｏｕｒｃｅｓ）間の時間相関を与えるデータ処理システムに関係する。
【従来技術】
【０００２】
新たなデータ処理システムの開発時間を減少するための動きは、データ処理システムの開発時に使用されるデバッグ及びトレース・ツールを改良する必要性があることを意味している。データ処理システムの動作をトレースし、これによりシステムのステップ毎の動作を表すデータを含むトレース・ストリームを発生することは、システム開発において非常に有用なツールである。例えば、データ処理システムの動作をトレースすることには、レジスタの内容の追跡、キャッシュ及び／または外部メモリの特定位置に記憶された値の追跡、またはプロセッサ・コアと関係する状態バスライン、パスまたはモジュールの監視、が含まれる。
【０００３】
相当大きな応用特定集積回路（ＡＳＩＣ）設計に深く組み込まれているプロセッサ・コアでは、ＡＳＩＣが通常相当な量のオンチップ・メモリを含んでいるため、ＡＳＩＣのピンを単に観察することによってはプロセッサ・コアが如何に動作しているかを決定することは一般的には不可能である。さらに、データ処理システムの発展による処理速度が一般的に増加し、システムの実時間動作をトレースするためにトレース・データをキャプチャしなければならない速度も対応して増加している。これらの理由から、トレース機能の増加した量はオフチップではなくオンチップに配置されている。このようなオンチップ・トレース機構の例は、その各種のＡＲＭプロセッサと関連して、英国ケンブリッジのＡＲＭ社により提供される組み込みトレース・マクロセルである。
【０００４】
データ処理システムが複雑度を増すにつれて、各々の部品がそれ自身のデータ処理操作を実行し、他の処理部品と通信する、複数の処理部品を含むシステム・オンチップ設計を使用するのが普通となってきている。例えば、単一の集積回路がいくつかのプロセッサ・コア及び／またはディジタル信号プロセッサを含んでもよい。このような複数部品システムでは、各処理部品を別々にトレースし、従ってそれ自身のトレースデータ・ストリームを発生可能である。適当な診断ツールを使用してオフチップで解析する前に、各トレースデータ・ストリームをルートし（ｒｏｕｔｅｄ）、処理し、出力または記憶しなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
異なる処理部品により発生されたトレースデータ・ストリームの解析の問題点は、各処理部品が関連するローカル・クロック信号に依存してトレースデータを発生する点である。このことは、異なるトレースデータ・ソースにより出力されたトレースデータ・ストリームは時間的に相関していないことを意味する。しかしながら、集積回路の異なる処理部品により実行される処理演算間には通常何らかの相互依存性があるため、システムを適切にデバッグするため診断ツールは異なるトレースデータ・ストリームのトレース事象を時間的に相関可能である必要がある。
【課題を解決するための手段】
【０００６】
ある観点から見ると、本発明はデータを処理する装置において、
少なくとも２つのトレースデータ・ソースであって、各々のトレースデータ・ストリームを発生するよう動作可能な前記少なくとも２つのトレースデータ・ソースと、
規準時間刻印（基準タイム・スタンプ：ｒｅｆｅｒｅｎｃｅ  ｔｉｍｅｓｔａｍｐ）を発生するよう動作可能な規準時間刻印発生器と、
前記トレースデータ・ストリームと共に、前記各々のトレースデータ・ストリーム内のポイント（ｐｏｉｎｔｓ）と関係する前記規準時間刻印データを出力して、前記少なくとも２つのトレースデータ・ソース間の時間相関を与えるよう動作可能なトレースデータ・アノテータ（ａｎｎｏｔａｔｏｒ、注釈器）と、
を含むデータを処理する装置を提供する。
【０００７】
本技術は、異なるトレースデータ・ソースから派生するトレースデータ・ストリーム内の事象の時間相関の情報を提供する必要性を認識している。特に、本技術は、規準時間刻印を発生し、出力前にトレースデータ・ストリームに規準時間刻印データで注釈を付す（ａｎｎｏｔａｔｅ）ことが、トレースデータ解析ツールによりダウンライン（ｄｏｗｎ−ｌｉｎｅ）で実行されるトレースデータ・ストリーム中のポイント（ｐｏｉｎｔｓ）間の時間相関を可能とする有効な方法を提供することを認識している。従って、トレースデータ・ストリームと共に規準時間刻印データを出力することは、システム中の異なるトレースデータ・ソースからのトレースデータ・ストリームの関係解析を可能とする。
【０００８】
規準時間刻印発生器は別に設けても良いが、またはトレースデータ・ソースの１つが複数ソースの規準時間として使用されるそのローカル時間により規準時間刻印発生器としての役割を果たしても良い。
【０００９】
本発明の１つの望ましい実施例によると、トレースデータ・ソースの各々に対応するデータ・ストリームと共に規準時間刻印データが個別のデータ・ストリームとして出力される。これにより、以後のデータ処理段階で基準時間刻印データをトレースデータ・ストリーム中のポイント（ｐｏｉｎｔｓ）と関連付けられる。個別のデータ・ストリームとして基準時間刻印データを出力することは、より複雑なソース・プロトコルを導入する必要性を排除する（トレースデータ・ストリームへの基準時間刻印データの挿入に必要とされるような）。
【００１０】
本発明の別の実施例によると、基準時間刻印データが出力前にトレースデータ・ストリーム自体に挿入される。これはトレースデータ・アノテータの下流で複数個の異なるトレースデータ・ストリームの内のポイント（ｐｏｉｎｔｓ）に基準時間刻印データを相関させる必要性を除去する。
【００１１】
少なくとも２つのトレースデータ・ソースが各種の異なるトレースデータ出力形式に従ってトレースデータ・ストリーム（ｔｒａｃｅ  ｄａｔａ  ｓｔｒｅａｍｓ）を発生することは察するところであろう。しかしながら、トレースデータ・ストリームはサイクルが正確な（ｃｙｃｌｅ−ａｃｃｕｒａｔｅ）トレースデータ・ストリームであることが望ましく、何故なら、これは既知の時間点（ｐｏｉｎｔｏｓ  ｏｆ  ｋｎｏｗｎ  ｔｉｍｅ）の間に正確な時間の内挿（ｉｎｔｅｒｐｏｌａｔｉｏｎ  ｏｆ  ｔｉｍｅｓ）を可能とするからである。
【００１２】
有利なことに、各トレースデータ・ソースと関係するローカルなクロックを使用してサイクルが正確なトレースを与えるトレースデータ・ストリーム中のポイントと関係するローカル時間刻印データを発生可能である。ローカル時間刻印データを基準時間刻印データと共に出力してもよい。これはローカル及び基準時間刻印データとの相互相関を可能とし、基準時間刻印データが利用可能であるトレースデータ・ストリーム中のポイント間の内挿を助ける。
【００１３】
本発明の望ましい実施例では、少なくとも１つのトレースデータ・ソースがトレースデータ・ストリーム中のマーカー点（ｍａｒｋｅｒ  ｐｏｉｎｔｓ）でマーカー・パケット（ｍａｒｋｅｒ  ｐａｃｋｅｔｓ）を出力するよう動作する。これらのマーカー・パケットは、基準時間刻印発生器により発生された基準時間刻印データをインデックス（ｉｎｄｅｘ）するために使用可能であるため、トレースデータ・ストリーム中のポイント間の時間的相関を容易にする。マーカー・パケットはまた内挿の目的にも使用可能である。
【００１４】
さらに、ローカルな時間刻印及び／またはソース識別子がマーカー・パケットと共に出力される場合、この情報を対応する基準時間刻印と関連付けて、異なるソースからの出力の時間相関用のトレースデータ解析ツールに与えることも可能である。
【００１５】
本発明の望ましい実施例では、トレースデータ・ソースと基準時間刻印データはトレースデータ・アノテータにより別々のデータ・ストリームとして出力されるが、出力前にトレースデータ・ストリームと基準時間刻印データを組合わせてもよい。これはトレースデータ・ソースへまたそこから与えなければならない入出力数を減少し、従ってピン数も減少する。
【００１６】
トレースデータ・ソースは非常に様々な異なる形式を取り得ると共にプロセッサ・コア、ディジタル信号プロセッサ及びメモリバス・モニタのような監視中の処理要素を含むとみなされ得るということは理解されるであろう。別の望ましいトレースデータ・ソースは、１つ以上の所定のメモリ位置へのソフトウェア制御の書込みに応答してトレースデータを発生するもののような、ソフトウェア制御であるようなものである。
【００１７】
本発明は別々に形成された回路素子から構成される装置で使用可能であるが、システム・オンチップ設計のような集積回路の形式の実施例に特に適している。
【００１８】
他の観点から見ると、本発明はデータを処理する方法において、
各トレースデータ・ソースから少なくとも２つのトレースデータ・ストリームを発生する段階と、
前記少なくとも２つのトレースデータ・ストリーム中のポイントと関係する基準時間刻印データを発生する段階と、
前記少なくとも２つのトレースデータ・ストリームを、前記少なくとも２つのトレースデータ・ストリーム中の前記ポイントと関係する前記基準時間刻印データと共に出力して、前記少なくとも２つのトレースデータ・ソース間の時間相関を与えるよう前記少なくとも２つのトレースデータ・ストリームに注釈（ａｎｎｏｔａｔｅ）を与える段階と、
を含むデータを処理する方法を提供する。
【００１９】
さらに他の観点から見ると、本発明は、トレースデータを含む少なくとも２つの注釈されたトレースデータ・ストリームと共に前記少なくとも２つのトレースデータ・ストリーム内のポイントと関係する基準時間刻印データを解析するデータ処理装置を制御するコンピュータ・プログラムを担持するコンピュータ・プログラム製品において、
前記基準時間刻印データを使用して前記少なくとも２つのトレースデータ・ストリーム中の前記ポイント間の時間相関を実行するよう動作可能なトレースデータ処理コードと、
を含むコンピュータ・プログラム製品を提供する。
【００２０】
本発明の上記の、及びその他の目的、機能及び利点は添付図面と関連して読むべきである図示実施例の以下の詳細な説明から明らかとなる。
【実施例】
【００２１】
図１は、オンチップ・トレース機構を設けて時間相関データを出力する本技術による第１の複数コア・データ処理システム１００を図式的に図示している。データ処理システムは、集積回路１１０、第１のプロセッサ・コア１２０及び関連する第１キャッシュ・メモリ１２２と第１トレース・ソース１２４、第２プロセッサ・コア１３０及び関連する第２キャッシュ・メモリ１３２と第２トレース・ソース１３４、外部メモリ１４０、時間刻印発生器１５０、データ組合わせ器（ｃｏｍｂｉｎｅｒ）１６０、トレース・バッファ１７０、及び汎用コンピュータ１８０を含む。
【００２２】
第１キャッシュ１２２と第２キャッシュ１３２は、データ・ロード演算に続いてキャッシュ・ミスが発生したときにアクセスされる外部メモリ１４０に各々接続される。汎用コンピュータ１８０はトレース・バッファ１７０の出力に接続されて、解析ソフトウェアを使用して第１及び第２トレース・ソース１２４、１３４により発生されたトレースデータ・ストリームを復元し解析する役割を果たす。第１及び第２プロセッサ・コア１２０、１３０は各トレース・ソース１２４、１３４により監視される。この場合、トレース・ソース１２４、１３４はＡＲＭ  ＥＴＭで、これは２つの主要な機能部品（図示せず）−トレース・ブロックとトリガ・ブロックを有する。トリガ・ブロックは、トレースデータの出力を生じさせるフィルタ条件とトレース・キャプチャを停止させるトリガ条件とをユーザーに指定させることを可能とするプログラム可能なリソースを含む。システムの全動作のトレースは不便な大量のデータを発生し、データ処理システムの特定部分または挙動の特定型式を診断するのには不適切である。例えば、システムのバグが例外挙動（ｅｘｃｅｐｔｉｏｎ  ｂｅｈａｖｉｏｕｒ）と関係していることが知られている場合、システムが適当な例外処理ベクトルにアクセスした時にトレースデータを出力するようフィルタ条件を設定可能である。トレース・ブロックは圧縮されたトレースデータ・ストリームを発生し出力するよう動作可能である。汎用コンピュータ１８０上で実行するデバッガ・ソフトウェアは圧縮されたトレースデータ・ストリームを解凍するよう動作可能である。デバッガ・ソフトウェアはトレース・ソース１２４、１３４の出力を実時間で処理可能であることはありえないため、トレースデータは最初トレース・バッファに記憶される。トレース・バッファがいっぱいになると、バッファの内容が凍結されるトリガ条件が発生するまで新たなトレースが以前のトレースを重ね書きする。トリガ条件は、トレース機構により診断されている所定のエラー条件の検出を通常表している。汎用コンピュータ上で実行するトレース及びデバッグ解析ソフトウェアは、トリガ条件が発生すると、トレース・バッファからトレースデータを抽出する。
【００２３】
この配置では、第１及び第２トレース・ソース１２４、１３４はサイクルが正確なトレースデータ・ストリームを発生する。サイクルが正確なトレースデータ・ストリームとは、命令実行事象及び／またはデータ転送事象のような、データ・ストリーム中のクリティカルな事象間の時点を何らかの形式でトレースするものと考えられる。時間は最も一般的にはトレース・ソースにより観察される介在するクロック・サイクル数により計測されるが、代わりに、これが異なっている場合、またはこれが秒で測定可能である場合にはプロセッサ・コアにより観察されるクロック・サイクルにより計測することも可能である。さらに、最後の時間刻印からの時間を指示する相対時間刻印は最も一般的に与えられるが、代わりにある共通点からの時間を指示する絶対時間刻印を使用することも可能である。相対時間刻印が与えられている時、時間刻印の絶対値は、デバッグ／トレース解析ソフトウェアがトレース・ストリームの解凍を開始する時点に依存する。サイクルが正確なトレースを与える例示の装置はＡＲＭリミテッド社によるＥＴＭアーキテクチャ仕様ＡＲＭ  ＩＨＩ  ００１４に与えられている。基準時間刻印発生器１５０は基準時間刻印データを発生し時間刻印データを信号線路１５１と１５３とを介してトレースデータ・ソース１２４、１３４に直接与える。この配置では、基準時間刻印データがトレースデータ・ストリームに直接挿入される。この例示実施例ではこれがトレースデータ・アノテータ機構を与える。別の実施例（図示せず）ではトレース・ソース１２４、１３４の内の１つが基準時間刻印発生器としての役割を果たし、そのローカルな時間刻印が基準時間刻印として取り扱われる。
【００２４】
ローカル及び基準時間刻印データの両方の時間刻印情報は以前の時間刻印出力に対して絶対または相対でよい。これの１つの望ましい実施例は絶対基準時間刻印データと相対ローカル時間刻印データを使用することである。
【００２５】
図２は、図１の２つのトレースデータ・ソースにより出力された２つのトレースデータ・ストリームの内容を図式的に図示する。この例では、トレースデータ・ストリームはデータトレース・ストリームではなく命令トレース・ストリームに対応する。特に、第１トレースデータ・ソース１２４により出力されるトレースデータ・ストリームは移動（ＭＯＶ）命令２１０、ＬＯＡＤ（ＬＤＲ）命令２２０、及びストア（ＳＴＲ）命令２３０と乗算（ＭＵＬ）命令２３１から構成される列を含む。基準時間刻印２４０はストア命令２３０の前にトレースデータ・ストリームに挿入されストア命令と関係する。第２トレースデータ・ソース１３４により出力されるトレースデータ・ストリームはロード命令２５０、加算命令２６０及びストア命令から構成される列を含む。基準時間刻印２８０がロード命令２５０の前にトレースデータ・ストリームに挿入される。この例では、第２コア１３０のロード命令が第１コアのストア命令２３０から起因していることが既知である。従って、ロード命令の基準時間刻印は４４に等しく、一方ストア命令の基準時間刻印は３０に等しい。基準時間刻印を使用して第１コア１２０と第２コア１３０で発生する個別のトレース事象の時間相関を相互検査可能である。第１トレースデータ・ソース１２４と第２トレースデータ・ソース１３４は、各プロセッサ・コアのクロック信号に関してサイクルが正確なトレースデータ・ストリームを出力する。これらのサイクルが正確なトレースデータ・ストリームはストリーム自体内の事象順序と相対タイミングの指示を与える。しかしながら、異なるトレースデータ・ストリームから得られた事象の時間相関用に基準時間刻印情報が必要である。本技術によると、トレースデータ・ストリームは、トレース事象の発生時間のより正確な指示を与えるオンチップの基準時間刻印情報により注釈（ａｎｎｏｔａｔｅ）される。
【００２６】
ここで図１に戻ると、第１トレースデータ・ソース１２４と第２トレースデータ・ソース１３４により出力されるトレースデータ・ストリームは、各々信号線路１６１と１６３を介してデータ組合わせ器１６０に送られる。組合わせ器１６０は２つの注釈されたトレースデータ・ストリームを組合わせてこれをトレース・バッファ１７０に出力する。組合わせ器１６０は２つのトレースデータ・ソース１２４、１３４に結合されたトレース・バス（図示せず）を含む。トレース・バスはトレースデータ信号線とトレース・ソース識別子（ソースＩＤ）を担持するよう動作するトレース・ソース識別信号線を含む。ソースＩＤは、トレース／デバッグ解析ソフトウェアが第１及び第２トレースデータ・ソース１２４、１３４からのトレースデータ間を弁別することを可能とする。汎用コンピュータ１８０はバス１８１を介してトレース・バッファに接続される。汎用コンピュータ１８０上で実行するデバッグ及びトレース解析ソフトウェアは、トリガ条件の発生時にトレース・バッファから基準時間刻印データを含むトレースデータを復元し、基準時間刻印データを使用して２つの異なるトレース・ソース１２４、１３４からのトレース事象の時間相関を実行する。トレース／デバッグ解析ソフトウェアは、復元されたトレースデータから再構成されるトレース事象の列を解析する時に、参照される２つのプロセッサ・コア１２０、１３０の各々により実行されている命令の列を前もって与えられる。
【００２７】
図１の配置では、トレースデータ・ソース１２４、１３４はプロセッサ・コア１２０、１３０と関係する。しかしながら、別の配置では、例えば１つ以上のプロセッサ・コアをディジタル信号プロセッサまたはメモリ・バス・モニタに交換することも可能である。さらに別案はソフトウェア制御のトレースデータ発生器を設けて、例えば、所定のアドレス範囲内のある位置に書込まれたデータ値をトレースデータとして出力して、これによりソフトウェアがトレース情報の形式で診断データを出力するよう実行可能とする。さらに、集積回路は任意の数のトレースデータ・ソースを含んでもよい。
【００２８】
図３は、オンチップ・トレース機構を設けて時間相関データを出力する、本技術による第２の複数コア・データ処理システム２００を図式的に図示する。第２のシステムは図１のシステムと同様の構成部品を多数含む。しかしながら、図３のシステムは、基準時間刻印発生器２５０が、トレースデータ・ソース１２４、１３４ではなくデータ組合わせ器１６０に直接個々の時間刻印ストリームを出力する点で異なっている。図３は第１コア１２０と第２コア１３０とに各々関連している第１及び第２のローカル・クロック２２６、２３６を図示している。この配置では、ローカル・クロック２２６、２３６により発生されたローカル時間刻印データは各々のトレースデータ・ソース１２４、１３４により利用されて対応するトレースデータ・ストリームを時間刻印する（ローカル時間刻印も図１のトレースデータ・ソースによりそれ自身のトレースデータ・ストリームに追加可能である）。トレースデータ・ストリームへのローカル時間刻印の包含は、トレースデータ・ソース１２４、１３４がサイクルに正確なデータを生成しない時に特に望ましいものである。第１及び第２トレースデータ・ソースにより出力され、信号線１６１と１６２に沿って組合わせ器１６０に供給されるトレースデータ・ストリームは、ソースＩＤデータとローカルに時間刻印されたトレースデータとを含む。基準時間刻印発生器２５０は第１トレースデータ・ソース１２４及び／または第２トレースデータ・ソース１３４からの基準時間刻印要求（ＲＴＳＲＥＱ）に応答して基準時間刻印データを発生する。ＲＴＳＲＥＱ信号は信号線２５１と２５３とを介して送信される。ＲＴＳＲＥＱ信号は、マーカー・パケットのトレースデータ・ソースによる出力と実質的に同時にトレースデータ・ソースの一方により基準時間刻印発生器２５０に送信される。このことは図４と図５に関連して以下により詳細に説明する。組合わせ器１６０は基準時間刻印発生器２５０からの基準時間刻印データを第１及び第２トレースデータ・ソース１２４、１３４からの２つのローカルに時間刻印されたトレースデータ・ストリームと組合わせる。組合わせ器は、ソースＩＤと対応するローカル時間刻印情報と、トレースデータ・ソースによりマーカー・パケットが出力されたトレースデータ・ストリーム中のポイントの基準時間刻印情報とを含むトレース・ストリームを形成する。組合わせたデータはトレース・バッファ１７０に出力される。汎用コンピュータ上のトレース／デバッグ解析ソフトウェアは時間刻印相関パケットを使用して２つのトレースデータ・ソース１２４、１３４からのトレース事象の時間相関を実行する。
【００２９】
図４は図３の配置がどのように時間刻印相関パケットを発生するかを図式的に図示する。第１トレースデータ・ソース１２４により発生された時間刻印相関パケットを考える。第１トレースデータ・ソースはトレースデータ・ストリーム中の相関点を指示するマーカー・パケット２７２を出力する。マーカー・パケットは、トレースデータ・ストリーム中で特定の命令またはデータ値に出会った時に出力されるかまたは単に周期的に出力される。「マーカー」はトレース中に挿入された特別なパケットでよいことが認められる。または、マーカーは時間刻印要求を発生させそれ自身マーカーとして取り扱われる定期的に発生するパケットでもよい。１例はＩ−同期（Ｉ−ｓｙｎｃ）パケットの使用である。マーカー・パケット２７２に加えて、第１トレースデータ・ソースはマーカー・パケットに対応するローカル時間刻印情報２７４とソース識別子２７６とを出力する。マーカー・パケットの出力と実質的に同時に、第１トレースデータ・ソースは基準時間刻印発生器に基準時間刻印発生要求（ＲＴＳＲＥＱ）を発行する。ローカル時間刻印２７４、マーカー・パケット２７２、ソースＩＤ及び関連する基準時間刻印２７８が、受信データを組合わせて単一のトレース・ストリームを２８０に作成する組み合わせ器に送られる。従って、トレース・ストリーム２８０はパケット２７３と２７８を基準時間刻印として含む。２８０への２７３と２７８出力の順序は任意である。時間刻印相関パケットは２つのトレースデータ・ソース１２４、１３４の各々とは独立に生成可能であり、汎用コンピュータ１８０上のトレース／デバッグ解析ソフトウェアにより使用されて時間相関を実行する。図４のシステムは本例示実施例でトレースデータ・アノート（注釈）機構を提供する。
【００３０】
図５Ａから図５Ｃは図３の集積回路のシステム部品により出力された３つのデータ・ストリームを図式的に図示する。
【００３１】
図５Ａは第１トレースデータ・ソース１２４により出力されたトレースデータ・ストリームを図式的に図示する。この第１データ・ストリームは、連続的に出力される、移動命令、ロード命令及びストア命令と乗算に続いて、しばらく後に出力される第２のロード命令を含む。この列は零から７６までのローカル時間刻印に対応する。マーカー・パケット（矢印により指示）は８、２０、７６のローカル時間刻印時に第１トレースデータ・ソースにより出力される。
【００３２】
図５Ｂは第２トレースデータ・ソースにより出力されるトレースデータ・ストリームを図式的に図示する。この第２データ・ストリームは、連続的に出力される、ロード命令と加算命令とストア命令とを含む。第２データ・ストリームと関連するローカル時間刻印は第１データ・ストリーム（図５Ａの）と関連するものとは一致していないことが分かる。各プロセッサ・コアに関係する２つのクロック源２２６、２３６が互いに独立であるためこれは予想通りである。マーカー・パケットは４０、７０及び２６０のローカル時間刻印時に第２トレースデータ・ソースにより出力される。
【００３３】
図５Ｃは組合わせ器２６０により出力されるものを含む時間刻印相関ストリームを図式的に図示する。時間刻印相関ストリームはソースによりマーカー・パケットが出力された２つのトレースデータ・ストリームの各ポイントの時間刻印相関パケットを含む。従って、図５Ｃから、３０の基準時間刻印時にソース１はローカル時間刻印ソース・マーカーを有し、４４の基準時間刻印時にソース２はローカル時間刻印ソース・マーカーを有し、５２の基準時間刻印時にソース１はローカル時間刻印ソース・マーカーを有し、６０の基準時間刻印時にソース２はローカル時間刻印ソース・マーカーを有し、２００の基準時間刻印時にソース１はローカル時間刻印ソース・マーカーを有し、２２０の基準時間刻印時にソース２はローカル時間刻印ソース・マーカーを有する、ことが分かる。マーカー点と関連するグローバル及びローカル時間刻印データを共に使用して、２つの異なるトレースデータ・ストリーム間の与えられたトレース事象を時間的に相関させ、与えられたトレースデータ・ストリーム内のマーカー点間で内挿することが可能である。例えば、第１トレースデータ・ストリーム（図５Ａ）のストア事象２３０を第２トレースデータ・ストリーム（図５Ｂ）のロード事象２５０と時間相関してもよいし、またはＣＬＫ２＝４０に対応するマーカー・パケットとＣＬＫ２＝７０に対応するマーカー・パケットとの間で内挿して加算命令の基準時間刻印値を設定してもよい。
【００３４】
図６は汎用コンピュータ１８０により実行されるデバッグ／トレース解析ソフトウェアにより実行される一連の操作を図式的に図示する流れ図である。段階３１２で、ソフトウェアは第１トレースデータ・ソース１２４からのトレースデータ・ストリームを処理して段階３１４に進み、ここで第１データ・ストリーム中のＬＤＲ命令２３３中に発生するローカル・クロック時間（ＬＴＳ＝８）を設定する。データ・ストリームはトレース・バスに沿って送信されるソースＩＤ信号を介して識別される。
【００３５】
段階３１３で、第１データ・ソース１２４からのＬＴＳは、時間相関パケットからの基準時間刻印データを解析することにより時間的に相関される。
【００３６】
段階３１５で時間相関パケットからの基準時間刻印データを使用して第１トレースデータ・ソース１２４からの全ての命令にＬＴＳを内挿する。
【００３７】
次に、段階３１６で、解析ソフトウェアは第２トレースデータ・ソース１３４からのトレースデータ・ストリームを処理し、段階３１８に進んで、ここでロード命令２５０のローカル・クロック時間（ＬＴＳ＝４０）を設定する。
【００３８】
段階３１７で、第２データ・ソース１３４からのＬＴＳは、時間相関パケットからの基準時間刻印データを解析することにより時間的に相関される。
【００３９】
段階３１９で、時間相関パケットからの基準時間刻印データを使用して第２トレースデータ・ソース１３４からの全ての命令にＬＴＳを内挿する。
【００４０】
以後、段階３２０で、段階３１５により第１ソースに与えられたデータと段階３１９で第２ソースに与えられたデータとを使用して時間相関パケットからの基準時間刻印データを解析することにより、第１ソースからのストア命令２３０と第２ソースからのロード命令が時間的に相関され、ここでストア命令２３０は基準時間刻印３０に対応し、一方ロード命令２５０は基準時間刻印４０に対応することが決定される。デバッグ・ソフトウェアにより、ロード命令２５０はストア命令２３０から得られなければならないことが既知であるため、基準時間刻印データを介して設定された事象の順序は、この場合システムがこの点に関して正しく動作していることを確認する。最後に、段階３２２で、診断データがソフトウェア解析ツールにより出力される。
【００４１】
本発明の例示実施例を添付図面を参照して本明細書で詳細に記述してきたが、本発明はこれらの正確な実施例に限定されることなく、添付請求の範囲に記載の本発明の範囲と要旨から逸脱することなく当業者により各種の変更と修正が実施可能であることを理解すべきである。
【図面の簡単な説明】
【００４２】
【図１】オンチップ・トレース機構を提供し、時間相関データを出力する、第１の複数コア・データ処理システムを図式的に図示する。
【図２】図１の２つのトレースデータ・ソースにより出力された２つのトレースデータ・ストリームの内容を図式的に図示する。
【図３】オンチップ・トレース機構を提供し、時間相関データを出力する、第２の複数コア・データ処理システムを図式的に図示する。
【図４】図３の配置がいかに時間刻印相関パケットを発生するかを図式的に図示する。
【図５】図３の集積回路のシステム部品により出力された３つのデータ・ストリームを図式的に図示する。
【図６】汎用コンピュータ上で実行するデバッグ／トレース解析ソフトウェアにより実行される一連の操作を図式的に図示する流れ図。
【符号の説明】
【００４３】
１１０  集積回路
１２０  第１のプロセッサ・コア１２０
１２４  第１トレース・ソース
１３０  第２プロセッサ・コア１３０
１３４  第２トレース・ソース
１４０  外部メモリ
１５０  時間刻印発生器
１６０  データ組合わせ器
１７０  トレース・バッファ
１８０  汎用コンピュータ
【図１】
2005056380.tif 000003
【図２】
2005056380.tif 000004
【図３】
2005056380.tif 000005
【図４】
2005056380.tif 000006
【図５】
2005056380.tif 000007
【図６】
2005056380.tif 000008