(57)【特許請求の範囲】
【請求項１】
集積回路であって、
データ処理動作を行うように動作可能な複数の機能回路と、
前記複数の機能回路の少なくとも１つによって生成されるデータ語と、前記データ語に関連する前記複数の機能回路の少なくとも１つの文脈を表す文脈語と、を含む診断データフィールドの値をバスから取り込むようにバススレーブとして動作する診断データ取り込み回路と、
前記診断データフィールドの値をシリアル化して前記集積回路から外部診断装置に前記診断データフィールドの値を出力するように動作可能な診断データ直列出力回路と、が含まれ、
前記診断データ取り込み回路及び前記診断データ直列出力回路は、プログラム命令によって制御されることなく動作し、
前記機能回路の内の少なくとも１つ上で動作するプログラム命令が、前記機能回路の前記少なくとも１つに、前記診断データフィールドの前記値を生成させると共に、前記データ語及び前記文脈語が取り込まれる前記バス上でバススレーブとして動作する前記診断データ取り込み回路へのバストランザクションを生成させるようにし、
前記バスは、前記複数の機能回路を相互接続する機能バスであり、
前記機能バスは、データ部とアドレス部とを含み、前記データ語は、前記データ部から取り込まれ、前記文脈語は、前記アドレス部から取り込まれる集積回路。
【請求項２】
請求項１に記載した集積回路であって、
前記文脈語は、前記バスの前記アドレス部上のアドレスの一部である集積回路。
【請求項３】
請求項１に記載した集積回路であって、
前記集積回路は、前記データ語及び前記文脈語用の信号を少なくとも１つの機能回路から前記診断データ取り込み回路に伝える専用の診断バスを含む集積回路。
【請求項４】
請求項１、２、及び３のいずれか１つに記載した集積回路であって、
前記データ語及び前記文脈語用の信号を少なくとも１つの機能回路から前記診断データ取り込み回路に伝える専用の診断バスである少なくとも１つのバスを含む複数のバスが含まれる集積回路。
【請求項５】
請求項１乃至４のいずれか１つに記載した集積回路であって、
前記診断データ取り込み回路には、シリアル化され前記診断データ直列出力回路によって出力される前に前記診断データフィールドの値が記憶される先入れ先出しバッファが含まれる集積回路。
【請求項６】
請求項１乃至５のいずれか１つに記載した集積回路であって、
前記診断データ取り込み回路は、前記診断データフィールドの前記値に、更に、前記診断データフィールドの前記値に関連する時間値を示すタイミング語を付加するものである集積回路。
【請求項７】
請求項６に記載した集積回路であって、
前記時間値は、前記診断データ直列出力回路によって依然出力されている前記診断データフィールドの以前取り込んだ値の取り込み後の時間期間を示すカウント値である集積回路。
【請求項８】
請求項６に記載した集積回路であって、
取り込みタイマーがオーバーフローしたときに取り込みタイマーのオーバーフローを示す値を有する第２のタイミング語が出力される集積回路。
【請求項９】
請求項１乃至８のいずれか１つに記載した集積回路であって、
前記診断データ直列出力回路は、単一の診断データ直列出力信号線上で前記診断データフィールドの前記値を出力する集積回路。
【請求項１０】
請求項１乃至８のいずれか１つに記載した集積回路であって、
前記診断データ直列出力回路は、クロック信号線上のクロック信号と共に、単一の診断データ直列出力信号線上で前記診断データフィールドの前記値を出力する集積回路。
【請求項１１】
請求項１乃至１０のいずれか１つに記載した集積回路であって、
前記診断データ取り込み回路は、所定のアドレス特性に整合するアドレスに関連する前記バス上のバストランザクションを取り込むように動作可能である集積回路。
【請求項１２】
請求項１１に記載した集積回路であって、
前記所定のアドレス特性は、前記アドレスが所定アドレス範囲内に入ることである集積回路。
【請求項１３】
請求項１２に記載した集積回路であって、
前記文脈語は、前記所定アドレス範囲内の前記アドレスの位置を示す指標値である集積回路。
【請求項１４】
請求項１乃至１３のいずれか１つに記載した集積回路であって、
前記診断データ取り込み回路には、プログラム可能なマスク値を用いて、取り込み対象の診断データフィールドの値を選択するように動作するマスク回路が含まれる集積回路。
【請求項１５】
集積回路であって、
データ処理動作を行うように動作可能な複数の機能回路と、
前記複数の機能回路の少なくとも１つによって生成されるデータ語と、前記データ語に関連する前記複数の機能回路の少なくとも１つの文脈を表す文脈語と、を含む診断データフィールドの値をバスから取り込むようにバススレーブとして動作する診断データ取り込み回路と、
前記診断データフィールドの値をシリアル化して前記集積回路から外部診断装置に前記診断データフィールドの値を出力するように動作可能な診断データ直列出力回路と、が含まれ、
前記診断データ取り込み回路及び前記診断データ直列出力回路は、プログラム命令によって制御されることなく動作し、
前記機能回路の内の少なくとも１つ上で動作するプログラム命令が、前記機能回路の前記少なくとも１つに、前記診断データフィールドの前記値を生成させると共に、前記データ語及び前記文脈語が取り込まれる前記バス上でバススレーブとして動作する前記診断データ取り込み回路へのバストランザクションを生成させるようにし、
前記バスは、前記複数の機能回路を相互接続する機能バスであり、
前記機能バスは、データ部とアドレス部とを含み、前記データ語は、前記データ部から取り込まれ、前記文脈語は、前記アドレス部から取り込まれ、
前記診断データ取り込み回路は、前記診断データフィールドの前記値に、更に、前記診断データフィールドの前記値に関連する時間値を示すタイミング語を付加するものであり、
前記時間値は、前記集積回路によって依然出力されている前記診断データフィールドの以前取り込んだ値の取り込み後の時間期間を示すカウント値である、集積回路から診断データフィールドの値を受信するための診断装置であって、
前記集積回路内のバスから取り込まれる診断データフィールドの値を表すシリアルデータを受信するように動作可能な診断データシリアルデータ受信器と、
前記診断データフィールドの値を復号化して、そこで、前記複数の機能回路の少なくとも１つによって生成されるデータ語を識別し、また、前記データ語に関連する前記複数の機能回路の少なくとも１つの文脈を表す文脈語を識別するように動作可能な診断データ復号器と、が含まれ、
前記診断データ復号器によって復号される前記診断データフィールドの前記値には、前記診断データフィールドの前記値に関連する時間値を示すタイミング語が含まれる、診断装置。
【請求項１６】
請求項１５に記載した診断装置であって、
前記診断データシリアルデータ受信器は、単一の診断データ直列入力信号線上で前記診断データフィールドの前記値を受信する診断装置。
【請求項１７】
請求項１５に記載した診断装置であって、
前記診断データシリアルデータ受信器は、クロック信号線上のクロック信号と共に、単一の診断データ直列出力信号線上で前記診断データフィールドの前記値を受信する診断装置。
【請求項１８】
集積回路の複数の機能回路の少なくとも１つによって行われる１つ又は複数のデータ処理動作を表す診断データを前記集積回路が生成するための方法であって、
前記複数の機能回路の少なくとも１つによって生成されるデータ語と、前記データ語に関連する前記複数の機能回路の少なくとも１つの文脈を表す文脈語と、を含む診断データフィールドの値をバススレーブとして動作する診断データ取り込み回路がバスから取り込む段階と、
診断データ直列出力回路が前記診断データフィールドの前記値をシリアル化する段階と、
前記診断データ直列出力回路が前記集積回路から外部診断装置に前記診断データフィールドの前記値を出力する段階と、が含まれ、
前記診断データ取り込み回路及び前記診断データ直列出力回路は、プログラム命令によって制御されることなく動作し、
前記機能回路の内の少なくとも１つ上で動作するプログラム命令が、前記機能回路の前記少なくとも１つに、前記診断データフィールドの前記値を生成させると共に、前記データ語及び前記文脈語が取り込まれる前記バス上でバススレーブとして動作する前記診断データ取り込み回路へのバストランザクションを生成させるようにし、
前記バスは、前記複数の機能回路を相互接続する機能バスであり、
前記機能バスは、データ部とアドレス部とを含み、前記データ語は、前記データ部から取り込まれ、前記文脈語は、前記アドレス部から取り込まれる方法。
【請求項１９】
請求項１８に記載した方法であって、
前記文脈語は、前記バスの前記アドレス部上のアドレスの一部である方法。
【請求項２０】
請求項１８に記載した方法であって、
前記集積回路は、前記データ語及び前記文脈語用の信号を少なくとも１つの機能回路から前記診断データ取り込み回路に伝える専用の診断バスを含む方法。
【請求項２１】
請求項１８に記載した方法であって、
前記集積回路には、前記データ語及び前記文脈語用の信号を少なくとも１つの機能回路から前記診断データ取り込み回路に伝える専用の診断バスである少なくとも１つのバスを含む複数のバスが含まれる方法。
【請求項２２】
請求項１８乃至２１のいずれか１つに記載した方法であって、
前記診断データ直列出力回路が診断データフィールドの前記値をシリアル化する前に、先入れ先出しバッファが前記診断データフィールドの前記値をバッファ処理する段階が含まれる方法。
【請求項２３】
請求項１８乃至２２のいずれか１つに記載した方法であって、
前記診断データ取り込み回路が、前記診断データフィールドの前記値に、更に、前記診断データフィールドの前記値に関連する時間値を示すタイミング語を付加する段階を含む方法。
【請求項２４】
請求項２３に記載した方法であって、
前記時間値は、依然出力されている診断データフィールドの以前取り込んだ値の取り込み後の時間期間を示すカウント値である方法。
【請求項２５】
請求項２３に記載した方法であって、
取り込みタイマーがオーバーフローしたときに取り込みタイマーのオーバーフローを示す値を有する第２のタイミング語が出力される方法。
【請求項２６】
請求項１８乃至２５のいずれか１つに記載した方法であって、
前記診断データフィールドの前記値は、単一の診断データ直列出力信号線上で出力される方法。
【請求項２７】
請求項１８乃至２５のいずれか１つに記載した方法であって、
前記診断データフィールドの前記値は、クロック信号線上のクロック信号と共に、単一の診断データ直列出力信号線上で出力される方法。
【請求項２８】
請求項１８乃至２７のいずれか１つに記載した方法であって、
所定のアドレス特性に整合するアドレスに関連する前記バス上のバストランザクションが取り込まれる方法。
【請求項２９】
請求項２８に記載した方法であって、前記所定のアドレス特性は、前記アドレスが所定アドレス範囲内に入ることである方法。
【請求項３０】
請求項２９に記載した方法であって、
前記文脈語は、前記所定アドレス範囲内の前記アドレスの位置を示す指標値である方法。
【請求項３１】
請求項１８乃至３０のいずれか１つに記載した方法であって、
マスク回路がプログラム可能なマスク値を用いて、取り込み対象の診断データフィールドの値を選択する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路の分野に関する。特に、本発明は、例えば、デバッギング、性能モニタリング、設計、及び他の処理等に用いる診断データの集積回路内での取り込みに関する。
【背景技術】
【０００２】
診断データを取り込み出力する内臓システムを集積回路に設けることが知られている。このような集積回路の一例は、エンベデッド・トレース・マクロセル（ＥＴＭ）を含む英国ケンブリッジのＡＲＭ社が生産する集積回路である。ＥＴＭシステムは、実行プログラム命令を識別するデータや処理データ値等の追跡データをオンチップ追跡バッファに取り込み、後で外部診断装置に出力するように動作する。ＥＴＭ型システムは、比較的大量の回路資源を消費することが問題である。この診断用途に充てられる回路領域は、ＥＴＭ回路を利用する設計や開発作業が完了すると、既製の集積回路では実質的な用途がない。
【０００３】
また、ＵＡＲＴ又は他の通信資源を用いて、集積回路から診断データを出力するためのプログラム命令を開発システムのプログラム符号内に挿入することが知られている。このプログラム駆動による手法の不利な点は、当該プログラムにかなりの負荷がかかり、その動作をゆがめて診断データの有用性を損ない得ることである。このことは、装置インターフェイスが直接アクセス用に設計されていないことから、特に問題である。更に悪いことに、通信装置が満杯である（更にデータを受け取れない）場合、アプリケーションがストールしたり、記録せずにデータが欠落したりすることがある。逆に、プログラム符号の要素が、性能に影響を与えないほど充分に優先順位が低く、また充分まれにしか起動しない場合、復旧し得る情報量が制限され、また、その情報のタイミングが遅れ不利になることもある。
【発明の開示】
【課題を解決するための手段】
【０００４】
一側面では、本発明は、集積回路を提供し、前記集積回路には、
データ処理動作を行うように動作可能な１つ又は複数の機能回路と、
前記１つ又は複数の機能回路によって生成されるデータ語と、前記データ語に関連する前記１つ又は複数の機能回路の文脈を表す文脈語と、を含む値の診断データフィールドをバスから取り込むように動作可能な診断データ取り込み回路と、
前記診断データフィールドをシリアル化して前記集積回路から外部診断装置に前記診断データフィールドを出力するように動作可能な診断データ直列出力回路と、
が含まれる。
【０００５】
本手法は、バスから診断データを取り込む診断データ取り込み回路を提供する。これは、ハードウェア取り込み機構であり、従って、それ自体いずれの実行プログラム符号にも処理負荷をかけない。バスから取り込まれる診断データフィールドは、データ語及び文脈語を含む。文脈語も取り込むように診断データ取り込み回路を構成すると、取り込まれるデータ語の解釈が簡単になり、また、プログラム符号や他の機構が文脈通知情報を提供して診断データを解釈する必要がなくなる。一旦、診断データ取り込み回路によって取り込まれると、診断データフィールドは、再度他の場所に負荷を課さないように集積回路からそれ自体の診断データ直列出力回路によって出力し得る。本手法は、集積回路の他の要素への侵入が有利な低レベルであり、一方、それ自体が必要な回路オーバヘッドも有利な低レベルである診断データ出力能力を提供する。
【０００６】
診断データ取り込み回路が診断フィールドを取り込むバスは、様々な異なる形態を取り得ることを認識されたい。しかし、好適な実施形態では、診断データ取り込み回路が、２つ以上の機能回路をリンクする集積回路の機能バスから診断データを取り込むことは都合が良い。
【０００７】
機能バスについて、データ語は、その機能バスのデータ部から取り込むことができ、文脈語は、機能バスのアドレス部から取り込むことができる。これは、機能バス上のアドレス全体を文脈語として用い得るということであるが、好適な実施形態では、アドレスの一部のみを用いて、集積回路からの出力が必要なデータ量を低減しつつ、充分な程度の文脈情報を提供する必要がある。
【０００８】
機能バスからの診断データ取り込みに対する他の選択肢又は追加として、１つ又は複数の機能回路から診断データ取り込み回路へデータを直接伝える専用診断バスを用いることも可能である。これに関連して、取り込み得るデータ語及び文脈語は、機能バスプロトコルによって拘束されないため、それらの性質の自由度が改善される。
【０００９】
診断データの直列出力は、直接行いバッファ処理しなくてもよいが、本発明の好適な実施形態では、先入れ先出しバッファが提供され、これに、シリアル化され出力される前に診断データフィールドが記憶される。このような先入れ先出しバッファは、診断データ出力能力のオーバーフローに対する多少の耐性を与える。対象の診断事象が、短い時間間隔で生じ、ある程度のバッファ処理がないと、これらを同時に調査できないという場合もある。
【００１０】
本発明の好適な実施形態では、診断データフィールドは、データ語に関連する時間値を示すタイミング語を含む。時間値は、様々な異なる形態を取ることができ、例えば、何らかの形態の周期カウント又は実時間値であってよいが、好適な実施形態では、カウント値が、診断データ直列出力回路によって依然出力されている任意の以前取り込んだ診断データフィールドの取り込み後の時間期間を示すように構成することによって、充分な程度の時間分解能を更に可能にしつつ、集積回路からの出力を要するデータ量を低減し得る。
【００１１】
好適な実施形態では、時間値を用いて、１つ又は複数の診断データフィールドの取り込みが、例えば、診断データフィールドのオーバーフロー又は他の何らかの種類の取り込みエラーの結果として、失敗したかどうか示すことも可能である。
【００１２】
診断データの直列出力は、様々な異なる方法で様々な異なる符号化を用いて達成し得る。一例として、診断データフィールドを、より小さいマルチバイトセグメントに分けてから順次出力し得る。しかしながら、好適な実施形態では、診断システムに関連する外部ピンカウントの形態のオーバヘッドは、単一のシリアルデータ出力線を用いることによって、又は集積回路自体によって、もしくは他の回路によって生成され集積回路で用い得るクロック信号に関連する単一のシリアルデータ出力線を用いることによって、減少する。一般的に、クロック信号と組み合わせて出力すると、余分な信号線の代価を払って、あるいは、関係するクロック信号線が外部出力として既に存在する場合、少なくとも複雑さの程度が増すという代価を払って、データ転送速度を速くできる。
【００１３】
現在の手法の特に好適な特徴は、機能回路の内の１つ上で動作するプログラム命令が、診断データフィールドを生成し得ることである。従って、プログラムは、適切な実行ポイントで診断データを生成するプログラム命令を導入／組み込み得る。これによって、診断データが生成されるように多大な自由度とパワーが可能になり、また、それが表現し得るものが可能になる。更に、ハードウェア診断データ取り込み回路及び直列出力回路は、プログラム符号が、診断データの取り込み又は出力に寄与する必要がなく、単にその生成にのみ寄与するという効果を有する。このことは、プログラム符号のオーバヘッドを減少させ有利である。更に、データは、このデータの生成後にプログラムが“クラッシュ”する場合でも取り込まれる。
【００１４】
診断データを生成するプログラム命令は、好適には、バスへのバストランザクションを生成し、そして、そこからデータ語及び文脈語を取り込むことによって、このことを行う。バストランザクションを生成するプログラム命令は、通常、バス構造を用いる集積回路内に存在し、従って、この診断機能に容易に利用し得る。
【００１５】
本手法の非常に好適な特徴は、診断データ取り込み回路が、所定のアドレス特性に整合するアドレスに関連するバストランザクションを取り込むように動作可能なことである。このように、診断データ取り込み回路は、診断データを生成し取り込んで出力したい場合、それ自体の関連するアドレス範囲と、そのアドレス範囲内のアドレスを利用してバストランザクションを生成するように構成された機能回路と、を有するバススレーブで作製し得る。
【００１６】
診断データ取り込み回路に関連するアドレス範囲を用いると、バストランザクションが向けられるアドレス範囲内の特定のアドレスから、データ語に関連付けられる文脈語を導き得るという非常に有利な特徴が提供される。従って、機能回路は、特定のアドレス位置に向けるようにバストランザクションを構成することによって、データフィールドに関連付けられるその文脈情報を提供できるが、このことは、診断データがプログラム命令によって生成される場合、特に容易に実現し得る。
【００１７】
文脈語は、所定アドレス範囲内で用いられるアドレスの位置を示す指標値を用いることによって、バストランザクションのアドレスの表示を効果的に行い得る。
【００１８】
本発明の好適な実施形態は、診断事象に対してプログラム可能な感度を提供し、これは、診断データフィールドに適用されるプログラム可能なマスク値の使用により、ユーザによって他の方法では容易に調整できないように、システムの動作に組み込み得る。このプログラム可能なマスク値は、診断データ取り込み回路によって用いられ、ユーザがその時に対象でないと判断した診断データをマスクして外したり、対象のデータをマスクして取り込んだりする。
【００１９】
他の側面において、本発明は、集積回路から診断データを受信するための診断装置を提供し、前記診断装置には、
前記集積回路内のバスから取り込まれる値の診断フィールドを表すシリアルデータを受信するように動作可能な診断データシリアルデータ受信器と、
前記診断フィールドを復号化して、そこで前記集積回路内の１つ又は複数の機能回路によって生成されるデータ語を識別し、また、前記データ語に関連する前記１つ又は複数の機能回路の文脈を表す文脈語を識別するように動作可能な診断データ復号器と、
が含まれる。
【００２０】
更なる側面において、本発明は、集積回路の１つ又は複数の機能回路によって行われる１つ又は複数のデータ処理動作を表す診断データを生成する方法を提供し、前記方法には、
前記１つ又は複数の機能回路によって生成されるデータ語と、前記データ語に関連する前記１つ又は複数の機能回路の文脈を表す文脈語と、を含む値の診断データフィールドをバスから取り込む段階と、
前記診断データフィールドをシリアル化する段階と、
前記集積回路から外部診断装置に前記診断データフィールドを出力する段階と、
が含まれる。
【発明を実施するための最良の形態】
【００２１】
次に、本発明の実施形態について、添付図面を参照して、単なる一例として説明する。
【００２２】
図１に示す集積回路１０は、２つの機能回路２０を接続するシステムバス２５上を進む診断データを取り込むように動作可能な診断データ取り込み回路１５を含む。診断データ取り込み回路１５は、データ処理システムによって処理されるデータと単線出力との間のインターフェイスを提供し、単線出力（ＳＷＯ）装置と称する場合がある。
【００２３】
図１の装置では、診断データ取り込み回路は、機能回路間をバスに沿って進むデータにアクセスするように構成される。これは、本質的に、データにアクセスすることとは別に、他の点でシステムに影響を与えたり、データに決して影響を与えたりしない受動装置である。
【００２４】
診断データ取り込み装置は、アドレス復号器、ＦＩＦＯ、及びシリアライザを含む。診断データ取り込み装置は、バスのデータ部に沿って進むデータ語にアクセスし、また、バスのアドレス部に沿って進むデータが書き込まれるアドレスにアクセスするように動作可能である。傍受されるデータ語は、診断目的の対象として書き込まれたデータである。データ語にアクセスすると、アドレス復号器は、次に、データ語に“文脈データ”の選択されたビットを加えることによってそれを処理する。この文脈データは、アドレスデータから導かれ、事実上、文脈中にデータ語を置く役割を果たす。次に、拡張した長さのデータ語がＦＩＦＯに伝えられる。
【００２５】
ほとんどの実施形態では、アクセスされるデータ語は、３２ビット語であり、好適な実施形態では、これに５ビットの文脈データを付加するように選択される。文脈データは、通常、アドレスバス上のアドレスデータから取られるアドレスの一部である。
【００２６】
データ取り込みは、様々な方法で、例えば、データが特定のアドレスに書き込まれるのに応じてトリガをかけることができる。一般的に、データ処理システムでは、診断データは、プロセッサのアドレス空間の特定領域に書き込まれ、従って、この特定領域へのあらゆるデータ書き込みが、診断取り込み装置の対象となる。従って、システムは、この領域のアドレスへのデータ書き込み命令がデータ取り込み装置にトリガをかけるように構成し得る。これを行う１つの方法は、プログラム可能なマスク値を用いるように動作可能なマスク回路を診断データ取り込み回路に備え、取り込まれる診断データフィールドを選択することである。
【００２７】
一旦、データ取り込み回路にトリガがかかると、アドレス復号器が、文脈データをデータ語に付加するように機能する。多くの実施形態において、データ領域内の個々のアドレスは、特定の機能に特有であり、従って、個々のアドレスの詳細は、５ビットの文脈データとしてデータ語に付加でき、傍受されるデータ語の特定の機能に関する情報を提供する。従って、幾つかの実施形態では、文脈フィールドは、所定のアドレス範囲内のアドレスの位置を示すオフセット値となり得る。この点において、ＲＴＯＳの典型的なモデルでは、例えば、指標０は、スレッド開始部に用いられ、１はスレッド終了部に、２はミューテックスペンドに、３は待ち行列ペンドに用い得る。この意味することは、例えば、ＲＴＯＳが、指標０にスレッドＩＤ（ＴＣＢアドレス又は他の３２ビット情報）を単に書き込み、指定されたスレッドが送り込まれたことを示すことである。従って、１つの記憶命令では、ＲＴＯＳは、どんな動作／事象が生じたか、また、その動作／事象の文脈の双方を伝達し得る。
【００２８】
次に、アドレス復号器から出力される３７ビットデータが、ＦＩＦＯに出力される。ＦＩＦＯは、１段のＦＩＦＯだけでよいが、好適には、幾つかの段を含む。実際、ＦＩＦＯは、複数のデータ語を、その全体的割合が帯域幅未満である限り、互いに接近して送信させる。ＦＩＦＯの典型的な深さは、３であるが、機能回路の最大速度、データを受信するコアのクロック速度、及びＳＷＯの出力速度に依存して、異なる深さを選択し得る。
【００２９】
次に、シリアライザは、単線出力（ＳＷＯ）を介したシリアルデータとしてＦＩＦＯから出力されるデータを出力する役割を果たす。シリアライザによって出力されるデータ速度は、実施形態に依存する。低速及び高速の実施形態があり、これらについては、更に詳細に後述する。本質的に、高速の実施形態では、シリアライザ出力をクロック制御する必要があり（図２参照）、従って、単一の診断データ直列出力（ＳＷＯ）に加えて、クロック信号入力線がある。一般的に、高速の実施形態は、約４８ＭＨｚで動作するが、１００ＭＨｚをサポートし得る。
【００３０】
低速の実施形態は、クロック入力を必要とせず、単ピンインターフェイスにおいて１２ＭＨｚまでサポートし得る。
【００３１】
単線出力インターフェイス装置は、複数のこれらの３７ビットデータ語を直列に出力し、次に、いずれかの受信装置が、３２ビットデータ語に関連する５ビット文脈データを用いて、出力データを異なるストリーム中に多重分離し得る。
【００３２】
図２は、本発明の実施形態に基づく集積回路に用いるためのデータ取り込み装置を示す。データ取り込み装置は、図１に示したものと同様であるが、更に、“カウント”入力部、及び機能回路から診断データを送信するための関連した専用の診断バスを備えた追加のＦＩＦＯを含む。
【００３３】
カウント入力部は、３７ビット語に付加し得る文脈データに関連する時間値を示すタイミングフィールドを入力するように動作可能である。カウント値は、システムバスから取り込まれるデータ語間の時間長を示し、即ち、言い換えると、次の語が到達する前に、このような語がＦＩＦＯで費やす時間長を示す。
【００３４】
１つの実現形態は、カウンタの提供であるが、このカウンタは、１つのデータの取り込みによって始動し、次のデータの取り込みによって停止し、それから再始動する。取り込みタイマーがオーバーフローし、このために１つのデータをＳＷＯに送信すると、これらの余分なパケットは、実際、出力されるパケット列に中断がある時のみ必要とされるため、このことによって帯域幅は生じない。
【００３５】
カウンタからの情報は、パケットに関連する遅延マーカとしてデータのパケットを作成しているシリアライザの３７ビット語に付加される。好適な実施形態では、これは、３ビット幅である。カウントデータは、プロセッサによって実行される書き込み命令間の時間の表示を提供し、従って、有用な追加診断データである。また、特定のデータフィールドのデータ取り込みが失敗したかどうかの表示も提供し得る。
【００３６】
図２において、更に、機能回路から診断取り込み回路へ情報を提供し、データがシステムバスを通過することなく出力される専用の診断バス４０を示す。これは、ハードウェアの実現形態であり、実際、その特定の機能回路の動作を“追跡”し得る。ここでは、アドレス復号化は存在せず、ハードウェアは、ＦＩＦＯにデータビットを直接書き込むように構成される。これは、それ自体のＦＩＦＯを介してデータ取り込み回路に接続され、このことによって、データは、たとえデータがシステムバスから取り込まれつつあっても、出力線に付加し得る。
【００３７】
図３は、単線出力を有する診断取り込み装置によって出力されるシリアルデータを受信するための装置を示す。装置は、シリアルデータ受信器及びシリアルデータ復号器を含む。受信器は、シリアル信号を受信するように動作可能であり、復号器は、信号を復号化し、機能回路によって生成されるデータ語及びそれらの関連する文脈データを信号内から識別するように動作可能である。次に、文脈データを用いて、データ語を分類し、複数のストリームに単一のストリームを多重分離する。
【００３８】
幾つかの実施形態では、受信器は、ホスト上のデバッガであってよく、復号器は、データ語を、それらの文脈データに基づき分類する役割を果たし、そして、カスタムＤＬＬに他のデータを送信し、また、記憶する更に他のデータを送信しつつ、デバッガに適切なデータを転送する。
【００３９】
デバッギング又は追跡目的用途に加えて、他の診断データは、この単線出力装置を用いて取り込み得る。例えば、このシステムが、自動車の集積回路に存在する場合、このピンから診断データの抽出が可能であり、診断データは、自動車システムの様々な部品の状態に関する情報を提供する。
【００４０】
本発明の実施形態に関する追加情報を以下に述べる。これに関して、次の用語及び略語を用いる。
【００４１】
用語及び意味
ＳＷＪ：単線ＪＴＡＧ。これは、実行制御エミュレータが、チップに配置され、これとの通信に単ピン方式（これに対して、ＪＴＡＧの場合、４又は５ピン方式）を用いるモデルである。これによって、ピンが減少するだけでなく、一般的にＪＴＡＧよりも極めて速い。更に、追加のアクセス及び固有ＩＤも提供する。このＭｅｍＴＡＰモデルを用いると、このモードは、極めて高速に動作しダウンロードを行い得る。
ＤＢＴ／ＭｅｍＴＡＰ：これは、ＡＭＢＡ（ＡＨＢ又はＡＨＢ−Ｌｉｔｅ）マスタとして機能しシステムバスにアクセスするＴＡＰブロックである。
ＡＭＢＡ：チップ内のＡＲＭバス標準規格。
ＡＨＢ：通常のメモリアクセス用ＡＭＢＡ高速インターフェイス（これに対してＡＰＢ）
ＡＨＢ  スレーブ：ＡＭＢＡ装置であり、アドレス範囲でのアクセスに能動的に応答する。ＳＷＯは、ＡＨＢスレーブ装置である。
ＡＨＢ  Ｌｉｔｅ：ＡＭＢＡの余分な装備のないバージョンを指し、ＡＨＢは、マルチマスタがなく、また、フルバーストモード及びその関連する信号送信がない。
ＵＡＲＴ：非同期シリアル（ビットが１つずつ送信される）装置。ＳＷＯは、ＵＡＲＴの概念に基づく。また、ＳＷＯは、デバッグ追跡ツールとしてＵＡＲＴの代替用である。
ＥＴＭ：埋め込み式追跡マイクロセルは、トリガ事象に応答して命令及び／又はデータ追跡情報を記憶するオンチップ追跡ブロックを指す。
【００４２】
以下、本発明の実施形態に基づく超小型単線出力“追跡”構成要素について説明する。この構成要素は、ＥＴＭとは全く異なり、また、実際、（アプリケーション及びＨＷに依存して）ＥＴＭと相補的であり得る。ＳＷＯ用のモデルは、アプリケーション駆動式追跡であり、一方、ＥＴＭは、プロセッサ駆動式追跡である。ＥＴＭが、トリガ及び範囲を用いて追跡するものを制御する場合、ＳＷＯは、受動的であり、また、アプリケーション、ＲＴＯＳ、又はシステムＨＷによってそれに明確に送信されたものだけを出力する。
【００４３】
ＳＷＯは、アプリケーションによって４つの主な目的に用いるように設計されている。即ち、
・‘ｐｒｉｎｔｆ’デバッギングを行うこと。これは、それらが、ホスト上で後処理できるように、あるチャネルでアプリケーション送信データをアップさせたいことを意味する。従来は、直列チャネルが用いられるが、これは、（通常）アプリケーション自体の資源の１つを必要とする。またそれは、ＩＳＲを空にすること（即ち、ＨＷ自動バッファ処理）を意味する。また、従来の直列装置の速度が非常に遅いと、データ速度が制限される。
・ＲＴＯＳ事象追跡を行うこと。これは、ＲＴＯＳに僅かな修正を行う場合、それが特定の位置にＩＤを書き込み、これにより、どんな事象が起こったか示すことを意味する。書き込み動作が安価である限り、導入したバージョン（これに対して別のデバッグ画像を有するバージョン）に書き込みを残し得る。これによって、固定の低侵入が保証され、プローブ効果の生成が回避される。従来、これは、優先順位の低いスレッドに伝えられ、これにより、シリアルライン外にそれを押し出す。又は、リングバッファにダンプされ事後分析される。しかし、ほとんどのＲＴＯＳは、特別なバージョンでそれを含むだけであって、スレッド及びシリアルラインの遅延は、重要な情報が欠落したり歪んだりすることが多いことを意味する。更に、スレッドのオーバヘッド及び非常に高い情報伝達のオーバヘッドは、試験対象の挙動を変え得るプローブ効果を有する。
・アプリケーション又は‘バス’追跡を行うこと。これは、通常、特定の処理又は実データの監視を意味する。これは、その解釈が、データ自体（例えば、推測的情報）から切り離さなければならないという点で、ｐｒｉｎｔｆデバッギングと区別される。これは、更に、システムの他のコアが、（ＤＳＰ等の）同じサービスを用い得ることも意味する。
・システムレベルＨＷに収集情報を発信させること。これによって、システム設計者は、ホストの制御下で、小ブロック情報の送り動作を容易に付加し得る。これは、競合分析（バス使用均衡化）、ＤＭＡ分析、（キャッシュなしコアにおける又はコアサポートによる）ＰＣサンプリング、事象計数、（ＥＴＭから等の）時間トリガ事象、誤り状態等を含み得る。
【００４４】
混合型ＳＷＯ及びＥＴＭシステムでは、ＥＴＭは、命令ストリーム、特殊トリガ事象、及び帯域幅が支障をきたさない他の領域に焦点を当て得る。この均衡化は、ピン及びゲートに余裕がない設計者に、より良い解決策を提供する。
【００４５】
ＳＷＯモデルは、実際には、修正されたアプリケーション符号をそのまま残し、また単に、使用中でない時ＳＷＯ構成要素を遮断する。このことは、時間コストが、デバッギングと生産用途との間で変わらないことを意味する。従って、これは、固定侵入である（高速メモリに書き込むため、通常極めて小さい）。しかし、遮断し得るため、未使用時、電力を消費しない。
【００４６】
ＳＷＯ構造は、３つの指針原理に基づく。
１．（ＲＳ２３２等の）デバッグＵＡＲＴ形式のプログラミング解決策を代行する。
２．単一のピンで１２Ｍｂｉｔ／ｓまでの速度で、また、２つのピンで１００Ｍｂｉｔ／ｓまでの速度で、良好に動作し得る。
３．アプリケーション侵入を最小限にする。
【００４７】
ＳＷＯインターフェイスは、一組の３２メモリマップ化ワード“レジスタ”として公開されている。各ワードレジスタは、アプリケーションにとって意味のある３２ビット値で書き込み得る。レジスタの指標（０乃至３１）は、メッセージの一部である。即ち、実際は、３２個のレジスタはないが、３７ビット幅の１つのレジスタがある。この３７ビットレジスタは、アプリケーションによって書き込まれる３２ビットデータ、及びアドレス指定されるレジスタによって選択される５ビット指標（アドレスの下位５ビット）を含む。これは、アプリケーションが、選択される位置によって単にデータに意味を付加し得ることを意味する。
【００４８】
例えば、ＲＴＯＳの典型的なモデルでは、指標０は、スレッド開始部に、１はスレッド終了部に、２はミューテックスペンドに、３は待ち行列ペンドに用い得る。これが意味することは、例えば、ＲＴＯＳが、指標０にスレッドＩＤ（ＴＣＢアドレス又は他の３２ビット情報）を単に書き込み、指定されたスレッドが送り込まれたことを示すことである。従って、１つの記憶命令では、ＲＴＯＳは、どんな動作／事象が起こったか、及びその動作／事象の文脈の双方を伝達し得る。
【００４９】
指標は帯域に割り当て得る。従って、例えば、０乃至１７はＲＴＯＳ（１８個の指標）に、１８及び１９は“ｐｒｉｎｔｆ”ロギングに、２０及び２１は（コンパイラ又は手作業によって生成した）関数の開始／終了に、２２及び２３はＩＳＲ開始／終了に与え得る。またホストは、３７ビットを“アドレス”（５ビット）と“データ”（３２ビット）として理解するため、異なるストリームにこれを多重分離し得る。従って、ホスト上で、デバッガは、全てのアドレス０乃至１７をＲＴＯＳ事象として、１８及び１９をｐｒｉｎｔｆロギングに対して処理し得る。この多重分離処理は、単に、デバッガに提供される構成決定及び目標上で用いられる規則である。これによって、メッセージストリームは、カスタムＤＬＬに進んだり、ファイルに記憶されたり、デバッガで実際に処理されたりする。任意の組合せが可能である。
【００５０】
データ用の３２個のレジスタと共に、ＳＷＯ構成要素は、キーロック制御レジスタ、ステータスレジスタ、及びＩＤを提供する。また、特定のアドレス（０乃至３１）を選択的にディスエーブル状態にし得るマスクイネーブルレジスタもある。
【００５１】
ＳＷＯは、２つの基本形態、即ち、低速及び高速形態を有すると定義される。低速構成要素は、単ピンインターフェイス上で１２Ｍｂｉｔ／ｓまでの保持用である。高速構成要素は、２つの線（クロック及びデータ）上で１００Ｍｂｉｔ／ｓまでの保持用である。高速構成要素は、単一のデータピンを用いてそのようにできるため、“単線”とも呼ばれる。高速構成要素は、通常、約４８ＭＨｚ以下付近で動作すると予想され、ＵＳＢ２取り込み装置と共に良好に動作することに留意されたい。注意されたいことは、更に多くのピンを用い得るが、目的は、構成数を極めて少なくし、取り込み装置の利用可能性の問題を回避することである。
【００５２】
プロトコルに関して、ＳＷＯ構成要素は、問題全体を４層の通信に分ける。
１．ワイヤプロトコル。これは、標準単線モデル（低速）用の４２ビットプロトコルとして定義されるが、マンチェスタ符号化を用いて倍クロック制御される（従って、１０ＭＨｚのビット速度は、２０ＭＨｚのクロック速度を用いる）。これは、ピン資源を共有する場合、１包みのＥＴＭｖ３パケットであってよい。高速の場合、これは、別々のクロック源による４２ビットプロトコルである（ＳＷＯ用であろうとなかろうと、チップに出入りするクロックであってよい。）
２．目標プロトコル。これは、４０ビットプロトコルとして定義され、３ビットヘッダ、５ビットアドレス、及び３２ビットデータブロックを含む。３ビットヘッダは、遅延情報、オーバーラン・ステータス、及び拡張書式設定に用いられる。
３．データプロトコル。データプロトコルは、ホストと目標アプリケーションとの間の約束事である。即ち、３２ビットデータには定義された意味はない。意味は、送信者によって割り当てられ、また、それを理解するように構成されたホストＳＷによって復号化される。これによって、広範囲のアプリケーション及びシステム全体で自由形式の使用が可能になる。
４．取り込み装置プロトコル。これは、目標プロトコルの拡張であり、追加情報の提供を取り込み装置に行わせる。特に、取り込み装置は、（１マイクロ秒単位で）パケット開始に時間尺度を提供する。時間尺度によって、相対的及び絶対的時間測定を合理的な精度で行い得る。目標プロトコルの内部遅延は、（パケットが連続的に流出する場合）パケット“列”用であり、一方、取り込み装置時間は、固定尺度である（また、新しいパケット又はパケット列の開始時測定されるため訂正が可能である）。
【００５３】
単線低速ＨＷインターフェイスは、低コスト装置によって自動転送（auto-bauding）が可能なように設計されている。１２Ｍｂｉｔ／ｓ以下に留まることによって、また、マンチェスタ符号化（１＝ＨＩＧＨ−ＬＯＷ、０＝ＬＯＷ−ＨＩＧＨ）を用いることによって、低コスト装置は、自動転送が容易であり、ＵＳＢ１．１で良好に動作する。更に、２４ＭＨｚ以下では、信号を駆動するチップや配線をレイアウトする基板設計者にほとんど無理がかからない。これによって、このデバッグ構成要素は、確実にフィールド内で用いることができ、スペースをほとんど必要としないで済む。実際、好適な実施形態では、単線は、（リセット時に制御される）チップのテストピンで多重化されるが、これは、（例えば、ＬＥＤに接続されたＧＰＩＯと共有しようとする場合そうであるように）外部ＨＷインターフェイスがないためである。これは、テストピンコネクタが、ＳＷＯにも用い得ることを意味する。
【００５４】
高速使用の場合、別のクロックピン（従って、単一のデータ線及びクロック）が用いられる。このクロックは、速度に用いられ、従って、自動転送を必要としない（開始ビット及びパリティは、パケットを認識するためにやはり用いる。）クロックは、チップに出入りする任意のクロック信号でよいことに留意されたい。更に、留意されたいことは、より高速のＳＷＪが、同じクロックを用いて、超高速単線デバッグ制御を行い得ることである。これは、３ピンを、より大きい装置において、高速でＳＷＪ＋ＳＷＯに用い得ることを意味する。ＭｅｍＴＡＰを備えた高速ＳＷＪは、最近の４乃至６線ＪＴＡＧよりも速く動作し得る。
【００５５】
１２Ｍｂｉｔ／ｓ保持速度は、ほとんどのアプリケーションにとって充分であるが、より大きいバースト速度が必要なことがある。ＳＷＯ構成要素は、ＦＩＦＯを用いて、より大きいバースト速度を可能にする。システム設計者は、ＦＩＦＯの深さ（１以上）を選択し得る。ＦＩＦＯは、全体の割合が帯域幅未満である限り、アプリケーションに、複数のデータ語を互いに接近して送信させる。例えば、これによって、速度事象記録用の３文脈語をダンプし得る。ＦＩＦＯ深さ３は、ほぼ最適であると思われる。
【００５６】
それでもなお、アプリケーションは、特定のプロセッサに対して、どれが最大速度になるかという感覚を有する必要があることに留意されたい。これは、ＦＩＦＯ深さ、コアのクロック速度、及びＳＷＯ速度によって影響される。ＳＷＯは、オーバーランが生じた（データが欠落した）ことを記録するため、これによって、特定のアプリケーションとチップとの組合せに対して容易にそれを調整し得る。
【００５７】
ｐｒｉｎｔｆデバッギング用の従来モデルは、重要なポイントでｐｒｉｎｔ命令をアプリケーションに挿入することである。これによって、プロセッサを停止することなく、まさにアプリケーション中心の情報ダンプが可能である。この手法は、４つの理由で広く用いられる。即ち、
１．デバッガにおいて各ポイントで停止すると時間の浪費であり、探しているものが分からない場合、極めて時間の浪費である。ｐｒｉｎｔｆモデルによって、重要なデータを表示し、問題の兆候を探し得る。一旦問題の範囲が狭くなると、デバッガを用いて問題範囲を１ステップずつ進み得るため、ｐｒｉｎｔｆデバッギングは、実行停止デバッギングと共に用いられる。
２．符号フローの分析。ログを用いて実行の順序を監視し得る。これは、実行の順序は、ほとんどの場合、静的に決定されていないため、割り込みベースのＳＷに極めて有効なことがある。
３．データロギング。実行中に値をダンプする能力は、事実に関する分析を可能にする。これが、中断点を用いて行われた場合、時間の浪費であるだけでなく、挙動が変わる可能性があるが、これは、停止すると、外部システムに影響を与えるためである。典型的な使用法は、予想された（以前生成されたアプリケーションや仕様等）と実データを比較したり、調整することである。
４．稀な事象のモニタリング。ｐｒｉｎｔｆモデルは、（例えば、２週間実行しても）ほとんど故障が生じないシステムに用いられることが多い。これは、故障検出ポイントでの文脈に関するできるだけ多くの情報を取り込むために用い得る。
【００５８】
従来のｐｒｉｎｔｆデバッギングの問題は、それが、バイトストリームの送信を伴い、往々にしてデータがそれにフォーマット化されて、低速チャネルで送信されることである。更に、その際、結果の管理は、困難であることが多い。文字列を用いると次の問題がある。即ち、
・文字列が長いほど、送信時間が長い。このことは、文字列は簡潔でなければならず、これが、結果を読み込むための能力に影響を与えることを意味する。
・文字列は、目標メモリに記憶しなければならず、従って、スペースを必要とする。
・文字列は、往々にしてデータ（局所的情報）をそれらにフォーマット化する必要がある。これは、時間がかかるだけでなく、（フォーマット化後の文字列がなくなるまでの）バッファ管理も意味する。
【００５９】
従来に対する他の選択肢は、文字列を用いず生データを送信することである。すると、これによって、有用な情報への変換が困難になり、また、如何にデータを取り込むかについて問題が生じる。
【００６０】
本発明の実施形態に基づくＳＷＯは、効率的且つ簡単な使用方法で、強力な種類のｐｒｉｎｔｆデバッギングをサポートする。モデルは、２つの部分に基づく。
・文字列表モデル。これは、ユーザが、用いたい各文字列と、番号と、一覧表名との間のマッピングを備えたファイルを作成することを意味する。例えば、
０ｘ１０：ＤＢＧ＿ＣＨＡＮＧＥ＿ＶＡＬＵＥ：値の位置が、％ｄに変化した。
０ｘ１１：ＤＢＧ＿ＭＯＴＯＲ＿ＳＥＮＳＯＲ：モータセンサ読み取り値：％ｕ速度、％ｕ温度、％ｕ電流。
上記２行では、ファイルは、各ｐｒｉｎｔｆログを３２ビットで送信し得るのに充分な情報を提供している。３２ビット値は、８ビット指標に“分解され”表に入れられ（０ｘ１０及び０ｘ１１が、８ビット位置にある）、また２４ビットデータ値に“分解される”。第１文字列では、２４ビット値は、％ｄに用いられる。第２の例では、２４ビット値は、３つの８ビット量に分けられ、％ｕ制御に用いられる。また文字列は、％ｃ及び固定小数点の値を用い得る。ファイルは、Ｃ／Ｃ＋＋ヘッダファイルを作成するユーティリティによって用いられ、Ｃ／Ｃ＋＋ヘッダファイルは、幾つかのマクロと共に各一覧表を定義し、データをパックする。これによって、プログラムで極めて簡単な行になり、例えば、ＤＢＧ＿ＳＴＲ＿１（ＤＢＧ＿ＣＨＡＮＧＥ＿ＶＡＬＵＥ，値＿位置）となる。
【００６１】
マクロは、与えられた値と論理和演算された数え上げシフトの２４ビット（コンパイラによって計算された定数）を単に書き込む。これは、プロセッサオーバヘッドをほとんど用いない。
【００６２】
・デバッガは、文字列表で８ビット指標を調べることによって入ってくる値を解釈し、そして、ログウィンドウ及び／又はファイルにそれらを提示する。ログウィンドウは、一覧表によるフィルタ処理及び分類を可能にする。ログウィンドウ及びファイルの双方は、更に、（取り込み装置からの）タイムスタンプも記録する。これは、事象間の相対的な時間尺度を与える。
【００６３】
過去、これらの同じアプリケーションにＤＣＣを用いようとしてきた。しかしながら、これを行うと、主に３つの問題がある。即ち、
・性能の点で極めて非決定論的である。その流出速度は、単にＪＴＡＧエミュレータ及びＳＷが許された速度と同じである。ホストベースのエミュレータを実行する場合、これは、全く予測不可能である。これは、アプリケーションが、データを欠落させなければならないか（その場合、この記録はない）又は待機しなければならないか（アプリケーションを遮断する）の何れかを意味する。これは、スレッドに、この動作を実行させる（従って、スレッドだけが遮断される）ことによって、及び／又は、空の時、割り込みを用いさせることによって、ある程度克服し得る。双方の解決策は、やはりかなりの侵入を必要とする。
・ＣＰ１４インターフェイスを必要とするため、また、上述した単一語の問題のため、合理的なインライン書き込みができない。これは、アプリケーションが、ルーチンを呼び出して必要な動作を実行しなければならないことを意味し、これによって、かなりのオーバヘッドが付加される。
・言及すべきツールサポートがない（ＤＣＣチャネルビューアは、唯一の‘非遮断’サポート用の実オプションである）。
【００６４】
従って、ＤＣＣは、ＵＡＲＴを用いることとほぼ等価であるが、決定論的な性能が劣っている。また最大ＤＣＣ速度は、用いられるエミュレータによって、及びそれに用いられるＳＷによって甚大な影響を受ける。
【００６５】
取り込み装置は、時間測定を行う。新しいパケットの中から第１ビットの時間を決定することによって、測定を行い得る。取り込み装置は、直前に（ホストに）パケットを発信し、これは、（最後のパケットから）このパケットの前にどの程度の遅延があるかを示す。一旦、パケット列が到達すると（パケット列は、次のパケットの開始ビットが、前のパケットの停止ビットの直後にあることを意味し、これは、通常、ＦＩＦＯアンロード処理による）、パケットの遅延マーカが用いられる。遅延値は、新しい値が到達した時、前の値がおよそどれくらいの間ＦＩＦＯにあったか示す。遅延は、時間の２乗の指数関数であり（０＝０−７、１＝８−１５、２＝１６−３１等）、従って、合理的な測定を行うように調整し得る。
【００６６】
更に、マーカは、ＥＴＭからＳＷＯに伝えられて相関分析が可能である。これは、事象を追跡するように（時間相関を得るために追跡ブロックの開始で値を書き込み、そして、後続の全出力にスタンプを押すように）ユーザ設定と関係付けることができる。そして、これによって、周期対時間の関係を記憶し得る。ＥＴＭに接続される適度な分解能時間（１ｍｓ）をこのように用いると、アプリケーションの文脈の追跡をより良く理解し得る。これは、ＥＴＭがタイムスタンプ（周期以外、時間と関係付けられず、いつでもそれらの意味を変更し得るもの）を提供するその能力を失うにつれて、真実味が増す。
【００６７】
タイムスタンプによって、刺激／応答、アプリケーションにおける２点間、ＨＷ事象からＳＷ応答（ＩＳＲ等）、ＩＳＲタイミング、割り込み待ち時間、及び符号プロファイリングの測定が可能である。標準的な時間尺度は、取り込みタイマーがオーバーフローする際、取り込み装置にパケットをホストに戻して挿入させることによって機能する。これによって、ホストは、絶対時間を得る。これらの余分なパケットは、パケット列がない時にのみ用いられるため、（取り込みからホストへの通信リンク上で無駄時間がないため）帯域幅コストがかからない。
【００６８】
本発明の実施形態に基づく４種類の取り込み装置を以下に概略説明する。
１．低速ＳＷＯ用低コストＵＳＢ直結デシリアライザ。この装置は、メモリを一切持たないが、ＥＰＬＤ及びＵＳＢ装置を用いて、（タイムスタンプを除いて）パケットをそのまま返信する。この装置は、目標（ＳＷＯ及び接地）に接続される２つのコネクタのみを必要とする。特にマイクロコントローラに適している。
２．高速ＳＷＯ用の高速取り込み装置。これは、追加の別個のクロックピンを用いて１００ＭＨｚ（程度）まででデータを収集する。ＵＳＢ２又は１００Ｂａｓｅ１０等のホストへのより高速の通信チャネル、又は必要な場合、組み込みバッファ処理の何れかを用いる。
３．ＥＴＭ追跡収集ボックス。これは、高速ＳＷＯ信号をそのまま、又はＥＴＭｖ３にパケット化したデータストリームを収集する。
４．ＲＶＩ等の高機能エミュレータは、余分なピンを用いた低速ＳＷＯの収集に用い得る。これは、ローカルメモリへの収集を可能にし、そして、ＲＶ−ｍｓｇを介したホストへのオフロードを可能にする。ＲＶＩボックスが、（タイムスタンプ以外の）データを予め処理する必要がある可能性はない。
【００６９】
図４に示したように、論理設計は、コアが、内部“メモリ” の３２語を参照することである。これらは、０又は低待機状態であるべきである（書き込みバッファでは０が効果的）。これによって、アプリケーションは、３２ビットデータ語を有するマップ化領域内でオフセット０乃至３１に書き込み得る。装置は、“モジュロ”アドレス（（（ａｄｄｒ−ｂａｓｅ）≫２）＆０ｘ１Ｆとして）プラス３２ビット語を記録する。余分なマップ化レジスタは、制御及びステータス用である。
【００７０】
ＳＷＯ構成要素は、電力の浪費を回避するために、パワーアップに関してディスエーブル状態になる（しかしながら、それでも書き込み可能、影響は全くない）。受動的な用途（実行制御ボックスなし）の場合、アプリケーションは、起動符号で、又は（ストラップピン又は起動ＥＥＰＲＯＭ／フラッシュ設定等）何らかの検出機構に基づき、それをイネーブル状態にする。これは、ＳＷＯが（コア又はＭｅｍＴＡＰを介して）実行制御エミュレータによってイネーブル状態にされるか、又はアプリケーションがそれ自体をイネーブル状態にするかの何れかを意味する。
【００７１】
図５は、集積回路に接続し得る診断データ取り込み装置を概略的に示す。この外形は、円柱状であり、一端がＰＣＢコネクタに接続されるケーブルであり、他端が、ＵＳＢプラグ等のコンピュータ接続部である回路を含む。データ取り込み回路５０内では、デシリアライザが、集積回路からシリアル診断データストリームを受信する。パケット化器が、デシリアライザ５２からバイトストリームを取り入れ、それ自体のクロックを付加し、またある期間、データがない場合、ハートビートも送出する。またそれがオーバーフローしたか（通信がそれを空にできるよりも速くデータが到着する）どうかを示すためにパケットも発信する。好適な実現形態では、ハートビートは、如何なる場合でも固定期間毎に常に送信されることに留意されたい。このことは、長いデータ列が到着する場合、時間の経過と共に歪みがない（ハートビートのパケットに対して時間を再基線化する）ことを保証する。通信装置５６（ＵＳＢ）は、パケット化器５４から診断データを取り入れ、汎用コンピュータ（例えば、ＰＣ）にこれを送信して更に分析する。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施形態に基づく診断データ取り込み回路を含む集積回路を示す概略図。
【図２】本発明の実施形態に基づくカウントデータ入力部とハードウェア出力部とを含む診断データ取り込み回路が含まれる集積回路を示す概略図。
【図３】本発明の実施形態に基づく単線出力部を有する診断取り込み装置によって出力されるデータを受信するための装置を示す図。
【図４】本発明の実施形態による単線出力インターフェイスの論理モデルを示す図。
【図５】診断データ取り込み装置を示す概略図。
【符号の説明】
【００７３】
１０・・・集積回路、１５・・・診断データ取り込み回路、２０・・・機能回路、２５・・・システムバス。
【図１】
0004633474.tif 000002
【図２】
0004633474.tif 000003
【図３】
0004633474.tif 000004
【図４】
0004633474.tif 000005
【図５】
0004633474.tif 000006