(57)【要約】【課題】トレースストリーム中で送信されるために比較的小さいパケットにデータを組み込むための装置と方法を提供する。【解決手段】試験してデバッグするシステムにおいて、情報が対象プロセッサからホストプロセッサに対して、１つ以上のパケットを含み得るパケットのグループ中で送信される。このパケットは、エクステンション部分とペイロード部分とを含む。このパケットは比較的少数の論理信号を有するため、このエクステンション部分を用いて、ヘッダ情報に基づいて、パケットサブグループの数と各パケットサブグループ中のパケットの数とを判定することが可能である。【選択図】図９
2004199690.tif 000002
【特許請求の範囲】
【請求項１】
トレースストリーム中で用いられるパケットグループであり、前記パケットグループが：
少なくとも１つのヘッダパケットと；
少なくとも１つのパケットサブグループであり、各パケットがエクステンション部分とペイロード部分とを有し、パケットサブグループの数が、前記ヘッダパケット中のフィールドによって決定され、各パケットサブグループ中の第１のパケットが、第１のエクステンション部分を含み、前記パケットが、第２のエクステンションを有する第１のサブグループパケットの連続であるサブグループ中の第１のパケットの後に続く、前記パケットサブグループと；
を含む前記パケットグループ。
【請求項２】
情報を対象プロセッサからホスト処理ユニットに対してトレースストリーム中で伝送する方法であり、前記方法が：
前記情報をパケットグループに分割するステップと；
各パケットグループを、少なくとも１つのヘッダパケットを含むようにフォーマッティングするステップと；
前記パケットグループを、少なくとも１つのパケットサブグループを含むようにフォーマッティングするステップであり、各パケットサブグループが、エクステンション部分とペイロード部分とを含み、パケットサブグループの数が前記ヘッダパケット中のフィールドによって決定され、各パケットサブグループ中の第１のパケットが第１のエクステンション部分を含み、前記パケットが、第２のエクステンションを有する第１のサブグループパケットの連続であるサブグループ中の前記第１のパケットの後に続く、前記フォーマッティングするステップと；
を含む前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にはディジタル信号処理ユニットの試験に関し、より詳しくは、対象プロセッサの動作の分析を可能とするために対象プロセッサからホスト処理ユニットに送信される信号に関する。対象プロセッサにおけるある事象は、文脈情報と共にホスト処理ユニットに通信されなければならない。このようにして、試験データとデバッグデータを分析することが可能となり、対象プロセッサのプログラムと動作における問題が特定される。
【背景技術】
【０００２】
マイクロプロセッサとディジタル信号プロセッサがますます複雑になるに連れて、これらのデバイスを試験するために進歩した技法が開発されてきた。この進歩した技法を実施するために、専用装置が利用可能である。図１Ａを参照すると、対象プロセッサ１２の試験とデバッグのための一般的な構成が図示されている。試験とデバッグの手順は、ホスト処理ユニット１０の制御下で動作する。ホスト処理ユニット１０は、ケーブルコネクタ１４によって、制御信号をエミュレーションユニット１１に入力して、（試験）データ信号をエミュレーションユニット１１から受信する。エミュレーションユニット１１は、コネクタケーブル１５によって、制御信号を対象処理ユニット１２に入力して、これから（試験）信号を受信する。エミュレーションユニット１１は、ホスト処理ユニット１０と対象プロセッサ１２との間のインタフェースユニットと考えることが可能である。エミュレーションユニット１１は、ホストプロセッサユニット１０からの制御信号を処理して、これらの信号を対象プロセッサに入力し、これで、対象プロセッサ１２が、適切な試験信号に反応するようにする。対象プロセッサ１２からの試験信号は、さまざまなタイプを採り得る。もっとも流行している試験信号の２つのタイプとして、ＪＴＡＧ（Joint Test Action Group）信号とトレース信号とがある。ＪＴＡＧプロトコルは、選択されたコンポーネントのステータスがホスト処理ユニットからの制御信号に反応して決定される広く用いられている標準化された試験手順となる。トレース信号とは、定義された動作期間中での対象プロセッサ１２中の複数の選択されたロケーションからの信号である。ホスト処理ユニット１０にインタフェースしているバス１５の幅は標準化されたディメンジョンであるが、エミュレーションユニット１１と対象プロセッサ１２との間のバスは、対象処理ユニット１２の動作を検証するために必要なデータ量が増してもこれに対応するように増加させることが可能である。ホスト処理ユニット１０と対象プロセッサ１２との間のインタフェース機能の一部は、試験信号を、これをホスト処理ユニット１０に送信することが可能となるまでストアしておくことである。
【０００３】
図１Ｂを参照すると、トリガー発生ユニット１９の動作が示されている。トリガー発生ユニット１９は主要コンポーネントであり、これによって、対象プロセッサの動作／状態を変更することが可能である。少なくとも１つの事象信号が、トリガー発生ユニット１９に入力される。トリガー発生ユニット１９に入力された１つ又は複数の事象信号のアイデンティティに基づいて、結果として得られるトリガー信号が選択される。ある事象と事象フロントと呼ばれる事象の組み合わせとが、選択されたトリガー信号を発生し、この結果、あるアクティビティが対象プロセッサ中で発生する、すなわち、デバッグの停止である。トリガー信号を発生するさまざまな事象の組み合わせはジョブと呼ばれる。複数のジョブが、同じトリガー信号又はトリガー信号の組み合わせを有することがあり得る。対象プロセッサの試験とデバッグに際して、トリガー信号は、対象プロセッサ中の状態を変化させるための、又は、指定されたアクティビティを実行するための刺激となり得る。事象フロントは、トリガー信号の発生の理由を定義するものである。この情報は、対象プロセッサの動作を理解する際には重要であるが、それは、すでに指摘したように、事象から成るいくつかの組み合わせの結果、トリガー信号が発生し得るからである。対象処理ユニットの動作を分析するためには、結果としてトリガー信号となるコードの部分を識別しなければならない。しかしながら、事象信号の発生につながるホストプロセッサ中の事象は、複雑なものとなりかねない。具体的には、プログラムカウンタアドレスにおける命令の特徴によって、トリガー信号を発生すべきであるかどうかが決定され得る。トリガー信号は、アドレスがいつアドレス範囲にあるか、アドレス範囲外にあるか、アドレス特徴のなんらかの特徴であるか及び／又はアドレスが基準アドレスと整合しているかの表示となり得る。この例では、アドレスは、命令のプログラムアドレスか、プログラム命令のよって直接的もしくは間接的に参照されるメモリアドレスかであり得る。
【０００４】
先行技術においては、トレースストリームは、対象プロセッサから実行中のホスト処理ユニットに試験データとデバッグデータとを、パケットを用いて搬送する。トレースパケットは、一緒に送信されるデータのグループである。このパケットは比較的小さく、たとえば、好ましい実施例では１０ビット幅である。このパケットは、パケットグループとして又は個別に送信することが可能である。パケットのサイズがこのように小さいことによって、非標準のインタフェースを介しての送信と、ホスト処理ユニットによる対象プロセッサの動作の再構成に先立ってのパケットのストレージとに大きなフレキシビリティが許容される。加えて、パケットのサイズが小さいため結果として、情報のほとんどが、パケットの成すシリーズ上に展開することになる。パケットのサイズがこのように比較的小さいため、制御情報、たとえばＯＰコードの量は、厳しく制限される。対象プロセッサの動作の再構成をさらに複雑にする要因として、パケットグループは、トレースストリーム中で分離されずに送信され、このため、利用可能帯域幅が最大限に使用されることである。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
トレースストリーム中で送信するために比較的小さいパケットにデータを組み込むという特徴を有する装置とその方法とが求められている。本装置とその関連方法とのさらに別の特徴は、パケットのグループ中でデータを送信する際にフレキシビリティを与えることである。本装置と関連方法とのさらに別の特徴は、エクステンション部分とペイロード部分とを含む論理信号から成るパケットを供給することである。本装置と関連方法とのさらに別の特徴は、パケットのグループ中に、ヘッダを提供することであり、このヘッダは、後続のパケットのエクステンション部分の意味を定義するフィールドを含む。本装置と関連方法とのさらに別の特徴は、１つのデータフィールドを送信するために用いられるパケットの数にフレキシビリティを与えることである。本装置と関連方法とのさらに別の特徴は、パケットのエクステンション部分をパケット中の論理信号を定義するためのＯＰコードとして用いることである。
【課題を解決するための手段】
【０００６】
上記の特徴及び他の特徴は、本発明にしたがって、対象プロセッサに少なくとも２つのトレースストリームを供給することによって達成される。これらトレースストリームの内の一方は、タイミングトレースストリームである。第２のトレースストリームは、プログラムカウンタトレースストリームである。対象プロセッサの動作を再構成するために必要とされる情報を指定するさまざまなパケットグループが送信される。好ましい実施形態では、各パケットは、（２ビットの）エクステンション部分と（８ビットの）ペイロード部分とを含む。最初の２ビットのエクステンションは、１つ（又は複数）のヘッダパケットを定義する。（２ビットの）エクステンション部分は、パケットグループ連続を指定するが、一方の部分がパケットグループ用の新しいフィールドパケットを定義し、第２の部分がフィールド連続パケットを定義している。新しいフィールドパケットの数は、パケットグループヘッダ中で定義することが可能である。パケットグループをこのように定義すると、パケットグループの最後を定義することが可能となり、後続のパケットグループはパケットヘッダを有する必要はない。
【０００７】
本発明の他の特徴及び長所は、次の説明、添付図面及びクレームを読めばより明瞭に理解されるであろう。
【発明を実施するための最良の形態】
【０００８】
図１Ａと図１Ｂについては、関連技術として説明している。
【０００９】
図２を参照すると、本発明による、対象プロセッサ２０の選択されたコンポーネントのブロック図が示されている。この対象プロセッサは、少なくとも１つの中央処理ユニット２００とメモリユニット２０８とを含んでいる。中央処理ユニット２００とメモリユニット２０８とは、試験されるコンポーネントである。中央処理ユニット２００とメモリユニット２０２とを試験するためのトレースシステムは、３つのパケット発生ユニットと、データパケット発生ユニット２０１と、プログラムカウンタパケット発生ユニット２０２と、タイミングパケット発生ユニット２０３とを含んでいる。データパケット発生ユニット２０１は、ＶＡＬＩＤ信号と、ＲＥＡＤ／ＷＲＩＴＥ信号と、ＤＡＴＡ信号とを中央処理ユニット２００から受信する。信号をパケット中に入れると、これらのパケットは、スケジューラ／マルチプレクサユニット２０４に入力されて、試験・デバッグポート２０５に転送されて、エミュレーションユニット１１に伝送される。プログラムカウンタパケット発生ユニット２０２は、ＰＲＯＧＲＡＭ  ＣＯＵＮＴＥＲ信号と、ＶＡＬＩＤ信号と、ＢＲＡＮＣＨ信号と、ＢＲＡＮＣＨ  ＴＹＰＥ信号とを中央処理ユニット２００から受信して、これらの信号をパケットに形成したら、結果として得られるプログラムカウンタパケットをスケジューラ／マルチプレクサ２０４に入力して、試験／デバッグポート２０５に伝送される。タイミングパケット発生ユニット２０３は、ＡＤＶＡＮＣＥ信号と、ＶＡＬＩＤ信号とＣＬＯＣＫ信号とを中央処理ユニット２００から受信して、これらの信号をパケットに形成したら、結果として得られるパケットをスケジューラ／マルチプレクサユニット２０４に入力し、スケジューラ／マルチプレクサ２０４はこのパケットを試験・デバッグポート２０５に入力する。トリガーユニット２０９は、中央処理ユニット２００からのＥＶＥＮＴ信号と、データトレース発生ユニット２０１と、プログラムカウンタトレース発生ユニット２０２と、タイミングトレース発生ユニット２０３とに入力される信号とを受信する。トリガーユニット２０９は、ＴＲＩＧＧＥＲ信号とＣＯＮＴＲＯＬ信号とを中央処理ユニット２００に入力し、また、ＣＯＮＴＲＯＬ（すなわち、ＳＴＯＰとＳＴＡＲＴ）信号をデータトレース発生ユニット２０１と、プログラムカウンタ発生ユニット２０２と、タイミングトレース発生ユニット２０３とに入力する。同期ＩＤ発生ユニット２０７は、信号をデータトレース発生ユニット２０１と、プログラムカウンタとレース発生ユニット２０２とタイミングトレース発生ユニット２０３とに入力する。試験・デバッグ用の装置コンポーネントは、中央処理ユニット２００とは分離したものとして図示されているが、これらのコンポーネントを中央処理ユニット２００のコンポーネントと統合することが可能であることは明らかである。
【００１０】
図３を参照すると、対象プロセッサ２０中の選択されたコンポーネント同士間の関係が図示されている。データトレース発生ユニット２０１はパケット組み立てユニット２０１１とＦＩＦＯ（先入れ／先出し）ストレージユニット２０１２とを含み、プログラムカウンタトレース発生ユニット２０２はパケット組み立てユニット２０２１とＦＩＦＯストレージユニット２０２２とを含み、タイミングトレース発生ユニット２０３はパケット発生ユニット２０３１とＦＩＦＯストレージユニット２０３２とを含む。信号は、パケットジェネレータ２０１、２０２及び２０３に入力されるに連れて、情報から成るパケットに組み立てられる。好ましい実施形態におけるパケットは、幅が１０ビットである。パケットは、入力信号に反応してパケットアセンブリに組み立てられて、関連するＦＩＦＯユニットに伝送される。スケジューラ／マルチプレクサ２０４は、選択されたトレース発生ユニットへの信号を発生し、関連するＦＩＦＯストレージユニットのコンテンツがスケジューラ／マルチプレクサ２０４に伝送されて、エミュレーションユニットに伝送される。図３には、同期ＩＤ発生ユニット２０７も示されている。同期ＩＤ発生ユニット２０７は、ＳＹＮＣ  ＩＤ信号を各トレース発生ユニットのパケット組み立てユニットに入力する。周期的信号、すなわち、好ましい実施形態ではカウンタ信号は、現行のパケット中に含まれて関連するＦＩＦＯユニットに伝送される。各トレース中のＳＹＮＣ  ＩＤ信号に起因するパケットが、エミュレーションユニットに伝送され、次に、ホスト処理ユニットに伝送される。ホスト処理ユニットでは、各トレースストリーム中の同じカウントが、トレースストリームが同期しているポイントを指し示す。加えて、タイミングトレース発生ユニット２０３のパケット組み立てユニット２０３１は、ＩＮＤＥＸ信号を、プログラムカウンタトレース発生ユニット２０２のパケット組み立てユニット２０２１に入力する。ＩＮＤＥＸ信号の機能を以下に説明する。
【００１１】
図４Ａを参照すると、タイミングパケットのアセンブリが図示されている。タイミングとレース発生ユニット２０３に入力される信号は、ＣＬＯＣＫ信号とＡＤＶＡＮＣＥ信号である。ＣＬＯＣＫ信号は、中央処理ユニット２００の動作が同期化される相手のシステムクロック信号である。ＡＤＶＡＮＣＥ信号は、パイプラインアドバンスや、プログラムカウンタアドバンス（（））やパイプライン非アドバンスやプログラムカウンタ非アドバンス（１）などのアクティビティを示す。ＡＤＶＡＮＣＥ又はＮＯＮ−ＡＤＶＡＮＣＥ信号は、クロックサイクル毎に発生する。タイミングパケットは、ＡＤＶＡＮＣＥやＮＯＮ−ＡＤＶＡＮＣＥを示す信号が同時発生ＣＬＯＣＫ信号の位置で送信されるように組み立てられる。これらの合成されたＣＬＯＣＫ／ＡＤＶＡＮＣＥ信号は、８個の信号のグループに分割され、パケット組み立てユニット２０３１中の制御用又は拡張用の２ビットと一緒に組み立てられて、ＦＩＦＯストレージユニット２０３２に伝送される。
【００１２】
図４Ｂを参照すると、タイミングとレース発生ユニット２０３によって発生されたトレースストリームが図示されている。（時間的に）最初のトレースパケットが、以前と同じように発生される。第２のトレースパケットの組み立て中、ＳＹＮＣ  ＩＤ信号が、パケットの第２のクロックサイクル間で発生される。それに反応して、対ミグパケット組み立てユニット２０３１が、同期ＩＤ番号を含んでいるＳＹＮＣ  ＩＤ信号に反応してパケットを組み立てる。次のタイミングパケットは、ＳＹＮＣ  ＩＤ信号の時に単に部分的に組み立てられるだけである。事実、ＳＹＮＣ  ＩＤ信号は、このタイミングパケットの形成の第３のクロックサイクル中に発生する。タイミングパケット組み立てユニット２０３１は、ＴＩＭＩＮＧ  ＩＮＤＥＸ３信号を（ＳＹＮＣ  ＩＤ信号が発生する第３のパケットクロックサイクルの間に）発生して、このＴＩＭＩＮＧ  ＩＮＤＥＸ３信号をプログラムカウンタパケット組み立てユニット２０３１に送信する。
【００１３】
図５を参照すると、本発明による、プログラムカウンタとレースストリーム中の同期マーカーのパラメータが図示されている。プログラムカウンタストリーム同期マーカーはその各々が、自身と関連する複数のパケットを有している。各同期マーカーのこれらのパケットは、複数のパラメータを送信することが可能である。ＳＹＮＣ  ＰＯＩＮＴ  ＴＹＰＥパラメータは、付随するパケットのコンテンツによって記述される事象を定義する。プログラムカウンタＴＹＰＥ  ＦＡＭＩＬＹパラメータは、ＳＹＮＣ  ＰＯＩＮＴ  ＴＹＰＥパラメータの文脈を提供し、また、第２のヘッダパケットの最上位の最初の２ビットで記述される。最終のＳＹＮＣ  ＰＯＩＮＴ以外のすべての中にあるＢＲＡＮＣＨ  ＩＮＤＥＸパラメータは、ＳＹＮＣ  ＰＯＩＮＴに続く次の相対的な分岐パケット内のあるビットを指し示す。プログラムカウンタトレースストリームがディスエーブルされると、このインデックスは、ＢＲＡＮＣＨ  ＩＮＤＥＸパラメータがロジック”０”でないときには前の相対的分岐パケット中のあるビットを指し示す。この状況では、分岐レジスタは完了したものではなく、フラッシュされたものと見なされる。ＢＲＡＮＣＨ  ＩＮＤＥＸがロジック”０”であるとき、この値は、分岐レジスタの最下位値を指し示し、パケット中での最も古い分岐である。ＳＹＮＣ  ＩＤパラメータは、ＳＹＮＣ  ＰＯＩＮＴを、同じＳＹＮＣ  ＩＤパラメータをタグとして付けられている対応するＴＩＭＩＮＧ及び／またはＤＡＴＡ  ＳＹＮＣ  ＰＯＩＮＴに適合させる。ＴＩＭＩＮＧ  ＩＮＤＥＸパラメータは、対応するＴＩＭＩＮＧ  ＳＵＮＣ  ＰＯＩＮＴに関連して入力される。ＬＡＳＴ  ＰＯＩＮＴ  ＳＹＮＣ事象以外のあらゆる事象の場合、ＴＩＭＩＮＧ  ＰＡＣＫＥＴの後の最初のタイミングパケットは、ＳＹＮＣ  ＰＯＩＮＴが発生したタイミングビットを包含している。タイミングストリームがディスエーブルされると、ＴＩＭＩＮＧ  ＩＮＤＥＸは、ＴＩＭＩＮＧ  ＩＮＤＥＸ値がゼロでないときのＴＩＭＩＮＧ  ＳＹＮＣ  ＰＯＩＮＴパケットの直前のタイミングパケット中のあるビットを指し示す。この状況では、このタイミングパケットはフラッシュされたものと見なされる。ＴＹＰＥ  ＤＡＴＡパラメータは、各ＳＹＮＣ  ＴＹＰＥによって定義される。ＡＢＳＯＬＵＴＥ  ＰＣ  ＶＡＬＵＥは、プログラムカウンタトレースストリームとタイミング情報とが整合されるプログラムカウンタアドレスである。ＯＦＦＳＥＴ  ＣＯＵＮＴパラメータは、プログラムカウンタとタイミング情報が整合されるプログラムカウンタオフセットカウンタである。
【００１４】
図６Ａを参照すると、仮定のプログラム実行のためのプログラムカウンタトレースストリームが図示されている。このプログラム例では、この実行は、外部の事象による割り込みなしで進行する。プログラムカウンタトレースストリームは、最初の同期ポイントマーカー６０１と、複数の周期的同期ポイントＩＤマーカー６０２と、試験手順の最後を指定する最後の同期ポイントマーカー６０３とから成っている。各パケットの主要パラメータは、周期的同期ポイントタイプと、同期ポイントＩＤと、タイミングインデックスと、絶対ＰＣ値とである。最初の同期ポイントと最後の同期ポイントとが、トレースストリームの最初と最後を識別する。同期ＩＤパラメータは、最新同期ポイントＩＤジェネレータユニットからの値である。好ましい実施形態では、この値は３ビットの論理シーケンスである。タイミングインデックスは、パケット中のクロック信号のステータス、すなわち、同期信号を生成する事象が発生する際の８位置タイミングパケット中の位置を識別する。また、同期パケットをもたらす事象が与えられたときのプログラムカウンタの絶対アドレスが提供される。この情報に基づいて、対象プロセッサ中の事象を、ホストプロセッサによって再構成することが可能である。
【００１５】
図６Ｂを参照すると、タイミングトレースストリームとプログラムカウンタトレースストリームとからプログラム実行を再構成する様子が図示されている。このタイミングトレースストリームは、８個のロジック”０”とロジック”１”のパケットから成っている。ロジック”０”は、プログラムカウンタ又はパイプラインが進んでいることを示し、ロジック”１”はプログラムカウンタ又はパイプラインがそのクロックサイクル中で立ち往生していることを示す。プログラムカウンタトレースパケットは各々がパケット識別パラメータに加えて絶対アドレスパラメータと、同期ＩＤと、タイミングインデックスとを有しているため、プログラムカウンタアドレスを、特定のクロックサイクルと同一視することが可能である。同様に、周期的同期ポイントは、具体的に、タイミングトレースストリーム中のクロックサイクルと同一視することが可能である。この図では、タイミングトレースストリームと同期ＩＤ発生ユニットとは、プログラムカウンタトレースストリームが始動されると、動作中となる。周期的同期ポイントは、一般的に第１のトレースポイントと最後のトレースポイント間で利用可能な複数の周期的同期ポイントを例証するものであり、周期的同期ポイントによって、処理ユニット用の３つのトレースストリームの同期化が可能となる。
【００１６】
図７を参照すると、トレースストリームの再構成のための一般的な技法が図示されている。トレースストリームは、対象プロセッサ１２がプログラム１２０１を実行するに連れて、対象プロセッサ１２中で生じる。トレース信号がホスト処理ユニット１０に入力される。ホスト処理ユニット１０もまた、同じプログラム１２０１を含んでいる。したがって、プログラムの実行が割り込みや変更なしで進む図６の例証的な例では、プログラムカウンタの最初と最後の絶対アドレスだけが必要とされる。タイミングトレースストリームのアドバンス／非アドバンス信号を用いて、ホスト処理ユニットは、プログラムをクロックサイクルの機能として再構成することが可能である。したがって、同期ＩＤパケットなしでは、最初と最後の同期マーカーだけが、トレースストリームにとって必要である。この技法を用いるとその結果、情報の伝送量が減少する。図６には、周期的同期ＩＤサイクルが存在しているが、その内の１つだけが図示されている。周期的同期ＩＤパケットが重要とされるのは、複数のトレースストリームを同期化させる場合と、プログラムの特定の部分を選択して分析する場合と、トレースデータストリーム中のデータの少なくともある部分が失われた状況に対してプログラム実行分析を再び開始する場合とである。ホストプロセッサは、２つの同期ＩＤパケット同士間の（不完全の）トレースデータ情報を廃棄して、失われたデータを定義する同期タイミングパケットの外部でのプログラムの分析を進める。
【００１７】
図８を参照すると、プログラムカウンタパケット発生ユニット２０２の主要なコンポーネントが示されている。プログラムカウンタパケット発生ユニット２０２は、デコーダユニット２０２３と、ストレージユニット２０２１と、ＦＩＦＯユニット２０２２と、ゲートユニット２０２４とを含んでいる。ＰＥＲＩＯＤ  ＳＹＮＣ  ＩＤ信号と、ＴＩＭＩＮＧ  ＩＮＤＥＸ信号と、ＡＢＳＯＬＵＴＥ  ＡＤＤＲＥＳＳ信号とが、ゲートユニット２０２４に入力される。ＰＥＲＩＯＤ  ＳＹＮＣ  ＩＤ信号がインクレメントされると、デコーダユニット２０２３は、ＰＥＲＩＯＤ  ＳＹＮＣ  ＩＤ信号に反応して、周期的同期ＩＤヘッダ信号グループを、ストレージユニット２０２１のヘッダ部分の所定のロケーション２０２１Ａにストアする。ＰＥＲＩＯＤ  ＳＹＮＣ信号によって、ゲート２０２４は、ＰＥＲＩＯＤ  ＳＹＮＣ  ＩＤ信号と、ＴＩＭＩＮＧ  ＩＮＤＥＸ信号と、ＡＢＳＯＬＵＴＥ  ＡＤＤＲＥＳＳ信号とを送信する。これらの送信された信号は、ストレージユニット中での、これらのパラメータに割り当てられた情報パケットロケーションにストアされる。周期的同期マーカーの部分のすべてがストレージユニット２０２１中で組み立てられると、周期的同期マーカーのコンポーネントパケットがＦＩＦＯユニット２０２２に伝送されて、ついには、スケジューラ／マルチプレクサユニットに送信される。同様に、ＥＶＥＮＴ信号が発生されてデコーダユニット２０２３に入力されると、信号グループを識別する事象ヘッダが、ストレージユニット２０２１のヘッダ部分の位置２０２１Ａにストアされる。デコーダユニット２０２３にＤＥＢＵＧ  ＨＡＬＴ信号が入力された結果、制御信号がゲート２０２４に入力される。この制御信号の結果、ＳＹＮＣ  ＩＤ信号と、ＴＩＭＩＮＧ  ＩＮＤＥＸ信号と、ＡＢＳＯＬＵＴＥ  ＡＤＤＲＥＳＳ信号とが、ストレージユニット２０２１中の適切なロケーションにストアされる。事象信号同期マーカーが組み立てられる、すなわちパケットになると、事象同期マーカーがＦＩＦＯユニット２０２２に伝送される。プログラムカウンタトレースストリームは、周期的同期マーカーと一緒になって、複数のトレースストリームの同期化を可能とする。この同期化は、１つ又は複数のトレースストリーム中に割り込みがある場合には特に重要である。トレースストリームは、プロセスを再び開始することなく再同期化させることが可能である。
【００１８】
前述の議論は、同期マーカーなどのサブグループが試験とデバッグの手順で用いられる例を提供する場合を対象としたものであった。トレースストリームで送信される信号は、図９Ａに示すようにパケットとして編成される。好ましい実施形態では、トレースパケットは、２ビットのエクステンション部分と８ビットのペイロード部分とを含む１０ビットの位置を有している。好ましい実施形態では、エクステンション部分における（０  ０）はヘッダを示している。信号容量の量が比較的限られているため、８ビットでは、ヘッダ情報を収納するには十分ではないかもしれない。したがって、好ましい実施形態では、２つのシーケンシャルなパケットを用いて、ヘッダ情報を送信するようにしている。このプロトコルが厳密に実行されるため、第２のエクステンションは、ロジック信号の残余の組み合わせ、すなわち、（０  １）、（１  ０）及び（１  １）の内のどれかを有し得る。これらの３つの組み合わせを用いて、パケットグループのヘッダに関連する追加の情報を指定することが可能である。このプロトコルを図９Ｂに示す。図９Ｃでは、本発明によるフルパケットグループが示されている。ここで、（２パケットの）ヘッダでは、１つのフィールドが、３という表示であるロジックグループを有する。本発明のプロトコルでは、この３は、パケットグループ中のパケットサブグループの数を指定する。パケットサブグループの第１のパケットは、（１  ０）をその中にストアしているエクステンションによって指定される。エクステンション（０  １）を含む後続のパケットは、サブパケットの連続パケットである。次のエクステンション（１  ０）が存在することで、パケットの次のサブパケットの第１のパケットが指定される。再度、このサブパケットの後に、（０  １）エクステンションを有する次のパケットが連続する。エクステンション中の次の（１  ０）は、第３のそして最終のサブグループへの開始を示す。再び、サブグループの後に、（０  １）エクステンションを有する各パケットが連続する。（０  １）連続エクステンションとは異なるエクステンションによって識別される第３のサブグループの後に続くエクステンションのときは、パケットグループは終了して、新しいパケットグループが始められる。
【００１９】
再度図９Ｃを参照すると、このプロトコルが厳密に実行されると、事前選択された事象に関連するパケットグループからなるグループが新しいパケットグループになり得るが、ヘッダは付いていない。この実施例では、ヘッダは余分である。好ましい実施形態では、分岐手順に関連するサブグループは、ヘッダは暗示されているため、ヘッダなしで出力される。
２．好ましい実施形態の動作
【００２０】
本発明は、パケットグループのフォーマッティングにフレキシビリティを持たせながらも、対象プロセッサからホスト処理ユニットに伝送されるデータの量を最小化することを目的とするものである。状況次第で拡張したり縮小したりするこのフレキシビリティは特に重要である。好ましい実施形態では、トレースデータストリームは、１０ビット幅のパケットから成る。この１０ビットの内、２ビットがエクステンションと呼ばれ、残りの8ビットがペイロードと呼ばれる。厳密なプロトコルによれば、このエクステンションのビットは、ＯＰコードと呼ばれるが、さまざまなタイプの情報を搬送するために用いることが可能であり、また、パケットのグループの最後を指定するために用いることが可能である。このプロトコルに厳密に従えば、ヘッダが送信されるのではなく暗示されるパケットグループから成るグループを発生することが可能である。
【００２１】
上述した同期マーカートレースストリームは、本発明の特徴を強調するために理想化された対象プロセッサの動作に関連する。他の多くのプロセッサ事象（たとえば、分岐事象）は、一般的には、ストレージユニットに入力され、プログラムカウンタトレースストリーム中に含まれる。
【００２２】
前述の論議では、同期マーカーは、トレースストリームを発生して解釈する装置の実現しだいでは、その内部に追加の情報を埋め込むことが可能である。この情報は、図５に示すパラメータに関連している。また、データトレースストリームは、図２に示すように、一般的には存在することが明らかである。周期的同期ＩＤ及びタイミングインデックスもまた、データトレースストリームに含まれる。加えて、プログラムカウンタ絶対アドレスパラメータの代わりに、ある種の状況では、プログラムカウンタオフセットレジスタを用いることが可能である。
【００２３】
対象プロセッサ中の１つ以上の事象を用いて、事象信号の発生を指定することが可能である。これらの事象を表す信号は、トリガーユニットに入力される。トリガーユニットは、ホスト処理ユニットに通信されるべきＥＶＥＮＴ信号をいつ発生すべきかを判定する判断機能を含んでいる。ＥＶＥＮＴ信号とそれに関連する制御信号とは、単に事象同期マーカーが発生されるという結果となるだけではなく、対象プロセッサに、適切な状態に遷移させるものである。
【００２４】
本発明を上記の実施形態を参照して説明したが、本発明は、これらの実施形態に必ずしも制限されるものではない。したがって、本書に記載されない他の実施形態、変更例及び改善は、必ずしも本発明の範囲から除外されるものではなく、本発明の範囲は、次のクレームによって定義されるものである。
【００２５】
以上の説明に関して更に次の項を開示する。
（１）トレースストリーム中で用いられるパケットグループであり、前記パケットグループが：
少なくとも１つのヘッダパケットと；
少なくとも１つのパケットサブグループであり、各パケットがエクステンション部分とペイロード部分とを有し、パケットサブグループの数が、前記ヘッダパケット中のフィールドによって決定され、各パケットサブグループ中の第１のパケットが、第１のエクステンション部分を含み、前記パケットが、第２のエクステンションを有する第１のサブグループパケットの連続であるサブグループ中の第１のパケットの後に続く、前記パケットサブグループと；
を含む前記パケットグループ。
（２）パケットの最後のサブグループのパケットのシーケンス中で、次のシーケンシャルパケットが第２のエクステンションを有しない場合、前記パケットグループは終了している、第１項記載のパケットグループ。
（３）前記次のシーケンシャルパケットが、新しいパケットグループを開始する、第２項記載のパケットグループ。
（４）選択されたパケットグループにとって、新しいパケットグループのヘッダが暗示される、第３項記載のパケットグループ。
（５）ヘッダが、２つ以上のパケットを有するものと定義され、第１のパケットに続くパケットのエクステンション部分を、情報を搬送するために用いることが可能である、第１項記載のパケットグループ。
（６）プロセッサを試験してデバッグするシステムであり、前記システムが：
ホスト処理ユニットと；
対象プロセッサであり、前記対象プロセッサが、トレースストリームを前記ホスト処理ユニットに送信し、前記トレースストリームによって、前記ホスト処理ユニットは、対象処理ユニットの動作を再構成することが可能となり、少なくとも１つのトレースストリームが、パケットグループのシーケンスから成る該対象プロセッサとを有し、各パケットグループが：
少なくとも１つのヘッダパケットと；
少なくとも１つのパケットサブグループであり、各パケットがエクステンション部分とペイロード部分とを有し、パケットサブグループの数が、前記ヘッダパケット中のフィールドによって決定され、各パケットサブグループ中の第１のパケットが、第１のエクステンション部分を含み、前記パケットが、第２のエクステンションを有する第１のサブグループパケットの連続であるサブグループ中の第１のパケットの後に続く、前記パケットサブグループと；
を含む前記システム。
（７）パテントの最後のサブグループのパケットのシーケンス中で、次のシーケンシャルパケットが第２のエクステンションを有しない場合、前記パケットグループは終了している、第６項記載のパケットグループ。
（８）前記次のシーケンシャルパケットが、新しいパケットグループを開始する、第７項記載のパケットグループ。
（９）情報を対象プロセッサからホスト処理ユニットに対してトレースストリーム中で伝送する方法であり、前記方法が：
前記情報をパケットグループに分割するステップと；
各パケットグループを、少なくとも１つのヘッダパケットを含むようにフォーマッティングするステップと；
前記パケットグループを、少なくとも１つのパケットサブグループを含むようにフォーマッティングするステップであり、各パケットサブグループが、エクステンション部分とペイロード部分とを含み、パケットサブグループの数が前記ヘッダパケット中のフィールドによって決定され、各パケットサブグループ中の第１のパケットが第１のエクステンション部分を含み、前記パケットが、第２のエクステンションを有する第１のサブグループパケットの連続であるサブグループ中の前記第１のパケットの後に続く、前記フォーマッティングするステップと；
を含む前記方法。
（１０）パテントの最後のサブグループのパケットのシーケンス中で、次のシーケンシャルパケットが第２のエクステンションを有しない場合、前記パケットグループは終了している、第９項記載のパケットグループ。
（１１）試験してデバッグするシステムにおいて、情報が対象プロセッサからホストプロセッサに対して、１つ以上のパケットを含み得るパケットのグループ中で送信される。このパケットは、エクステンション部分とペイロード部分とを含む。このパケットは比較的少数の論理信号を有するため、このエクステンション部分を用いて、ヘッダ情報に基づいて、パケットサブグループの数と各パケットサブグループ中のパケットの数とを判定することが可能である。
【００２６】
本出願は、２００２年１２月１７日に提出された暫定出願第６０／４３４，１２５号（ＴＩ−３４７６２Ｐ）の３５  ＵＳＣ  §１１９（ｅ）（１）による優先権を請求するものである。
関連出願
【００２７】
本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）によって発明された「複数の処理ユニットからのトレースストリームを同期化する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６５４号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）によって発明された「トリガー事象を分離検出してアサーションする装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６５５号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）によって発明された「状態選択可能トレースストリームを発生する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６５６号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）によって発明された「コードの実行中に非割り込みポイントにおいて非保護パイプライン中でのプログラム停止を選択する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６５７号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）によって発明された「コードの実行中に非割り込みポイントにおいて非保護パイプライン中でのプログラム停止を報告する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６５８号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）によって発明された「割り込まれたトレースストリーム中でのフラッシュ手順のための装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６５９号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）によって発明された「事象又は事象の組み合わせを捕獲して、その結果、対象プロセッサ中でのトリガー信号とする装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６６０号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）によって発明された「対象プロセッサ中のトリガー信号と関連するプログラムカウンタアドレスを捕獲する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６６１号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）とペック（Jason L. Peck）によって発明された「対象プロセッサ中のトリガー発生ユニットで用いられる場合のアドレス特徴を検出する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６６２号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）とトーメ（Bryan Thome）によって発明された「リセットされたプロセッサのトレースストリームを識別する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６６３号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）とトーメ（Bryan Thome）によって発明された「プロセッサデバッグ停止信号のトレースストリームを識別する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６６４号）；本書と同一日���に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）とトーメ（Bryan Thome）によって発明された「割り込みサービスルーチンが始動に続くパイプラインフラットナの一次コードのフラッシングのトレースストリームを識別する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６６５号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）とトーメ（Bryan Thome）によって発明された「一次コードの実行への復帰に続くパイプラインフラットナの二次コードのフラッシングのトレースストリームを識別する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６６６号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）によって発明された「一次コードの実行への復帰に続く一次コード開始同期ポイントを識別する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６６７号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）によって発明された「二次コードの実行からの復帰に続く新しい二次コード開始ポイントを識別する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６６８号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）によって発明された「コード実行シーケンス中の一時停止ポイントのトレースストリームを識別する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６６９号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）とトーメ（Bryan Thome）によって発明された「タイミングトレースストリームを圧縮する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６７０号）；本書と同一日付に提出され、本出願の譲受人に譲渡された、スボボダ（Gary L. Swoboda）とトーメ（Bryan Thome）によって発明された「複数の対象プロセッサ事象のトレースストリームを識別する装置と方法」という題名の米国特許出願（弁理士事件整理番号第ＴＩ−３４６７１号）。
【図面の簡単な説明】
【００２８】
【図１Ａ】対象プロセッサの試験とデバッグのためのシステム構成の一般的なブロック図である。
【図１Ｂ】複数の対象プロセッサを有するチップを示す図である。
【図２】本発明にしたがって対象プロセッサの中央処理ユニットの試験のために用いられる対象プロセッサ中の選択されたコンポーネントのブロック図である。
【図３】対象プロセッサ中のトレースストリームを送信するコンポーネント同士間の関係を図示する、選択されたコンポーネントのブロック図である。
【図４Ａ】タイミングパケットを本発明にしたがって組み立てるフォーマットを示す図である。
【図４Ｂ】タイミングトレースストリーム中に周期的な同期ＩＤパケットが包含される様子を示す図である。
【図５】本発明によるプログラムカウンタストリームパケット中の同期マーカーのパラメータの図である。
【図６Ａ】周期的同期ポイントＩＤが発生されたときのプログラムカウンタトレースストリーム中の同期マーカーの図である。
【図６Ｂ】本発明にしたがってトレースストリームから対象プロセッサの動作を再構成する様子を示す図である。
【図７】本発明にしたがってトレースストリームからプロセッサ動作を再構成する際に用いられる装置を示すブロック図である。
【図８】本発明によるプログラムカウンタ同期マーカー発生装置を示すブロック図である。
【図９】Ａはパケットグループ中のヘッダとして用いられるパケットの部分を示す図、Ｂはヘッダが２つのパケットを含むパケットグループのヘッダを示す図、Ｃはパケットのエクステンション部分の機能を図示するパケットグループの例の図である。
【符号の説明】
【００２９】
１０  ホスト処理ユニット
１１  エミュレーションユニット
１２  対象プロセッサ
【図１Ａ】
2004199690.tif 000003
【図１Ｂ】
2004199690.tif 000004
【図２】
2004199690.tif 000005
【図３】
2004199690.tif 000006
【図４Ａ】
2004199690.tif 000007
【図４Ｂ】
2004199690.tif 000008
【図５】
2004199690.tif 000009
【図６Ａ】
2004199690.tif 000010
【図６Ｂ】
2004199690.tif 000011
【図７】
2004199690.tif 000012
【図８】
2004199690.tif 000013
【図９】
2004199690.tif 000014