(57)【要約】  回路構成は、システム・オン・チップ（ＳｏＣ）（１０２）上に配置され、ストリーミングデバッグパケットを受信して格納するように構成された１つ以上の入力バッファ（３１２，３１４，...，３１６）を含む。１つ以上の応答バッファ（３２８，３３０，...，３３２）も、ＳｏＣ上に配置される。トランザクション制御回路（３１８）は、ＳｏＣ上に配置され、１つ以上の入力バッファにおける各デバッグパケットを処理するように構成される。上記処理は、デバッグパケットにおけるオペレーションコードを復号することと、ＳｏＣ上の複数のサブシステムのうちのあるサブシステムにおける記憶回路にアクセスするための複数のインターフェイス回路のうちのあるインターフェイス回路を、デバッグパケットにおけるアドレスから判断することとを含む。上記処理はさらに、オペレーションコードに従って記憶回路にアクセスするための要求をインターフェイス回路を介して発行することと、インターフェイス回路から受信した応答およびデータを１つ以上の応答バッファに格納することとを含む。
2021531530.tif 000002
【特許請求の範囲】
【請求項１】
回路構成であって、
システム・オン・チップ（ＳｏＣ）上に配置され、複数のストリーミングデバッグパケットを受信して格納するように構成された１つ以上の入力バッファと、
前記ＳｏＣ上に配置された１つ以上の応答バッファと、
前記ＳｏＣ上に配置され、前記１つ以上の入力バッファおよび前記１つ以上の応答バッファに結合されたトランザクション制御回路とを備え、前記トランザクション制御回路は、前記１つ以上の入力バッファにおける各デバッグパケットを処理するように構成され、前記処理は、
前記デバッグパケットにおけるオペレーションコードを復号し、
前記ＳｏＣ上の複数のサブシステムのうちのあるサブシステムにおける記憶回路にアクセスするための複数のインターフェイス回路のうちのあるインターフェイス回路を、前記デバッグパケットにおけるアドレスから判断し、
前記オペレーションコードに従って前記記憶回路にアクセスするための要求を前記インターフェイス回路を介して発行し、
前記複数のインターフェイス回路から受信した応答およびデータを前記１つ以上の応答バッファに格納する、ことによってなされる、回路構成。
【請求項２】
前記トランザクション制御回路はさらに、
第１のモードにおいて、
入力デバッグパケットに応答して、前記１つ以上の入力バッファにおいてスペースが前記入力デバッグパケットで利用可能であるか否かを判断し、
スペースが利用可能であると判断したことに応答して、前記入力デバッグパケットを前記１つ以上の入力バッファのうちの１つに格納し、
第２のモードにおいて、
前記入力バッファにおけるデバッグパケットについて、前記デバッグパケットにおける前記オペレーションコードを復号することと、前記インターフェイス回路を判断することと、前記要求を発行することとを複数回繰り返すように構成される、請求項１に記載の回路構成。
【請求項３】
前記デバッグパケットは、複数のオペレーションコードを含み、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記複数のオペレーションコードのうちの各オペレーションコードについて、前記オペレーションコードを復号することと、前記インターフェイス回路を判断することと、前記要求を発行することとを繰り返すように構成される、請求項１または３に記載の回路構成。
【請求項４】
前記トランザクション制御回路は、条件レジスタを含み、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および前記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、
前記記憶回路からデータ値を読み取るための読取要求を発行し、
前記データ値および前記マスク値をオペランドとして使用して論理関数を実行するように構成され、前記論理関数は、結果値を生成し、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および前記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、
前記結果値と前記比較値とを比較し、
前記結果値が前記比較値に等しいことに応答して、前記条件レジスタを第１の値に設定し、
前記結果値が前記比較値に等しくないことに応答して、前記条件レジスタを第２の値に設定するように構成される、請求項１〜３のいずれか１項に記載の回路構成。
【請求項５】
前記トランザクション制御回路は、条件レジスタを含み、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および前記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、
前記条件レジスタからデータ値を読み取り、
前記データ値および前記マスク値をオペランドとして使用して論理関数を実行するように構成され、前記論理関数は、結果値を生成し、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および前記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、
前記結果値と前記比較値とを比較し、
前記結果値が前記比較値に等しいことに応答して、前記条件レジスタを第１の値に設定し、
前記結果値が前記比較値に等しくないことに応答して、前記条件レジスタを第２の値に設定するように構成される、請求項１〜３のいずれか１項に記載の回路構成。
【請求項６】
前記デバッグパケットは、複数のオペレーションコードを含み、前記オペレーションコードのうちの１つは、スキップオペレーションコードであり、前記トランザクション制御回路は、条件レジスタを含み、前記トランザクション制御回路はさらに、
前記スキップオペレーションコードを復号したこと、および、前記条件レジスタにおける値が、前記デバッグパケットにおける前記スキップオペレーションコードに関連付けられた条件値に等しいことに応答して、前記デバッグパケットにおける前記スキップオペレーションコードに続く１つ以上のオペレーションコードの処理をバイパスするように構成される、請求項１〜５のいずれか１項に記載の回路構成。
【請求項７】
前記トランザクション制御回路はさらに、前記インターフェイス回路を判断する際に、前記デバッグパケットにおける前記アドレスが、前記ＳｏＣ上のプロセッササブシステムの記憶回路を参照するか、前記ＳｏＣ上のプログラマブルロジックサブシステムの記憶回路を参照するか、前記ＳｏＣ上の数値演算エンジン回路の記憶回路を参照するかを判断するように構成される、請求項１〜７のいずれか１項に記載の回路構成。
【請求項８】
前記トランザクション制御回路に結合され、前記１つ以上の応答バッファに結合され、前記複数のストリーミングデバッグパケットを受信するように結合された出力選択回路と、
前記ＳｏＣ上に配置され、前記トランザクション制御回路に結合され、前記１つ以上の入力バッファへの格納の前に前記複数のストリーミングデバッグパケットを受信するように結合されたデコーダ回路とをさらに備え、前記デコーダ回路は、
各デバッグパケットにおけるターゲット識別子と前記ＳｏＣのＳｏＣ識別子とを比較し、
前記ターゲット識別子が前記デバッグパケットのうちの１つにおける前記ＳｏＣ識別子に等しくないことに応答して、前記トランザクション制御回路に信号を送るように構成され、
前記トランザクション制御回路はさらに、前記１つ以上の入力バッファへの前記デバッグパケットのうちの前記１つの格納をバイパスし、前記ターゲット識別子が前記ＳｏＣ識別子に等しくないことを示す前記信号に応答して、出力のために前記デバッグパケットのうちの前記１つを選択するように出力選択回路を制御するように構成される、請求項１〜７のいずれか１項に記載の回路構成。
【請求項９】
方法であって、
複数のストリーミングデバッグパケットを受信して、システム・オン・チップ（ＳｏＣ）上に配置された１つ以上の入力バッファに格納するステップと、
前記ＳｏＣ上に配置されたトランザクション制御回路によって前記１つ以上の入力バッファにおける各デバッグパケットを処理するステップとを備え、前記処理するステップは、
前記デバッグパケットにおけるオペレーションコードを復号するステップと、
前記ＳｏＣ上に配置された複数の回路サブシステムのうちの１つにおける１つ以上の記憶回路にアクセスするための、前記ＳｏＣ上に配置された複数のインターフェイス回路のうちの１つのインターフェイス回路を、前記デバッグパケットにおけるアドレスから判断するステップと、
前記オペレーションコードに従って前記１つ以上の記憶回路にアクセスするための要求を前記１つのインターフェイス回路を介して発行するステップと、
前記複数のインターフェイス回路から受信した応答およびデータを、前記ＳｏＣ上に配置された１つ以上の応答バッファに格納するステップとを含む、方法。
【請求項１０】
第１のモードにおいて、
入力デバッグパケットに応答して、前記１つ以上の入力バッファにおいてスペースが前記入力デバッグパケットで利用可能であるか否かを判断するステップと、
スペースが利用可能であると判断したことに応答して、前記入力デバッグパケットを前記１つ以上の入力バッファのうちの１つに格納するステップと、
第２のモードにおいて、
前記入力バッファにおけるデバッグパケットについて、前記デバッグパケットにおける前記オペレーションコードを復号するステップと、前記インターフェイス回路を判断するステップと、前記要求を発行するステップとを複数回繰り返すステップとをさらに備える、請求項９に記載の方法。
【請求項１１】
前記デバッグパケットは、複数のオペレーションコードを含み、前記方法はさらに、前記デバッグパケットにおける前記複数のオペレーションコードのうちの各オペレーションコードについて、前記オペレーションコードを復号するステップと、前記インターフェイス回路を判断するステップと、前記要求を発行するステップとを繰り返すステップを備える、請求項９または１０に記載の方法。
【請求項１２】
前記インターフェイス回路を判断するステップは、前記デバッグパケットにおける前記アドレスが、前記ＳｏＣ上のプロセッササブシステムの記憶回路を参照するか、前記ＳｏＣ上のプログラマブルロジックサブシステムの記憶回路を参照するか、前記ＳｏＣ上の数値演算エンジン回路の記憶回路を参照するかを判断するステップを含む、請求項９〜１１のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本開示は、一般に、システム・オン・チップ（ＳｏＣ）のデバッギングおよびトレース回路に関する。
【背景技術】
【０００２】
背景
多くの集積回路は、回路動作の検証およびテストを支援するためのスキャン回路を利用する。スキャン回路の一例は、ジョイント・テスト・アクション・グループ（ＪＴＡＧ）によって開発されてＩＥＥＥ規格１１４９としてまとめ上げられたスタンダードテストアクセスポートおよびバウンダリスキャンアーキテクチャである。スキャンテスト回路は、システム・オン・チップデバイス（ＳｏＣ）において利用することができる。
【０００３】
複合ＳｏＣは、複数のプロセッサコアを有するプロセッササブシステム、オンチップＳＲＡＭおよび／またはＤＲＡＭを提供するメモリサブシステム、ならびに、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの回路を有するプログラマブルロジックサブシステムなどの複数のサブシステムを含み得る。また、ＳｏＣは、プロセッサまたはＳｏＣのプログラマブルロジック内に実装された回路上で実行されるソフトウェアによって指示される通りに特定の数学関数を実行するのに使用することができるハードワイヤードロジックも含み得る。
【０００４】
ＳｏＣ上で実現されるシステムをテストすることは、ＳｏＣとホストコンピュータシステム上で実行されるデバッガシステムなどのテストコントローラとの間で大量のデータを転送することを含み得る。デバッガシステムは、ＳｏＣのさまざまなサブシステム内の記憶回路との間でデータを読み書きすることができる。現行のシステムでは、デバッグステップは、ホストコンピュータ上のデバッガシステムから一つずつ順番に実行される。デバッグステップを順番に実行することに関わる高レイテンシは、ＪＴＡＧインターフェイス回路が動作するクロックレートが比較的ゆっくりであること（たとえば、１００ＭＨｚ未満）とともに、テストに必要な時間を延ばすおそれがある。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
回路構成は、システム・オン・チップ（ＳｏＣ）上に配置され、複数のストリーミングデバッグパケットを受信して格納するように構成された１つ以上の入力バッファを含む。１つ以上の応答バッファも、上記ＳｏＣ上に配置される。トランザクション制御回路は、上記ＳｏＣ上に配置され、上記１つ以上の入力バッファおよび上記１つ以上の応答バッファに結合される。上記トランザクション制御回路は、上記１つ以上の入力バッファにおける各デバッグパケットを処理するように構成される。上記処理は、上記デバッグパケットにおけるオペレーションコードを復号することと、上記ＳｏＣ上の複数のサブシステムのうちのあるサブシステムにおける記憶回路にアクセスするための複数のインターフェイス回路のうちのあるインターフェイス回路を、上記デバッグパケットにおけるアドレスから判断することとを含む。上記処理はさらに、上記オペレーションコードに従って上記記憶回路にアクセスするための要求を上記インターフェイス回路を介して発行することと、上記複数のインターフェイス回路から受信した応答およびデータを上記１つ以上の応答バッファに格納することとを含む。
【０００６】
システム・オン・チップ（ＳｏＣ）は、集積回路（ＩＣ）ダイと、上記ＩＣダイ上に配置された複数の回路サブシステムと、上記複数の回路サブシステムにおける記憶回路にアクセスするように構成された複数のインターフェイス回路と、上記ＩＣダイ上に配置され、上記複数のインターフェイス回路に結合されたデバッグ回路とを含む。上記デバッグ回路は、複数のストリーミングデバッグパケットを受信して格納するように構成された１つ以上の入力バッファと、１つ以上の応答バッファとを含む。トランザクション制御回路は、上記１つ以上の入力バッファおよび上記１つ以上の応答バッファに結合される。上記トランザクション制御回路は、上記１つ以上の入力バッファにおける各デバッグパケットを処理するように構成される。上記処理は、上記デバッグパケットにおけるオペレーションコードを復号することと、上記ＳｏＣ上の複数のサブシステムのうちのあるサブシステムにおける記憶回路にアクセスするための複数のインターフェイス回路のうちのあるインターフェイス回路を、上記デバッグパケットにおけるアドレスから判断することとを含む。上記処理はさらに、上記オペレーションコードに従って上記記憶回路にアクセスするための要求を上記インターフェイス回路を介して発行することと、上記複数のインターフェイス回路から受信した応答およびデータを上記１つ以上の応答バッファに格納することとを含む。
【０００７】
方法は、複数のストリーミングデバッグパケットを受信して、システム・オン・チップ（ＳｏＣ）上に配置された１つ以上の入力バッファに格納するステップを含む。上記１つ以上の入力バッファにおける各デバッグパケットは、上記ＳｏＣ上に配置されたトランザクション制御回路によって処理される。上記処理するステップは、上記デバッグパケットにおけるオペレーションコードを復号するステップと、上記ＳｏＣ上に配置された複数の回路サブシステムのうちの１つにおける１つ以上の記憶回路にアクセスするための、上記ＳｏＣ上に配置された複数のインターフェイス回路のうちの１つのインターフェイス回路を、上記デバッグパケットにおけるアドレスから判断するステップとを含む。上記処理するステップはさらに、上記オペレーションコードに従って上記１つ以上の記憶回路にアクセスするための要求を上記１つのインターフェイス回路を介して発行するステップと、上記複数のインターフェイス回路から受信した応答およびデータを、上記ＳｏＣ上に配置された１つ以上の応答バッファに格納するステップとを含む。
【０００８】
他の特徴は、以下の詳細な説明および特許請求の範囲を検討することにより認識されるであろう。
【０００９】
上記の回路および方法のさまざまな局面および特徴は、以下の詳細な説明を検討するとともに図面を参照すると明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】デバッガシステムと、アプリケーションのデバッギングをサポートするためのデバッグ回路とともに、アプリケーションソフトウェアおよびアプリケーション回路を実現するためのサブシステムを有するシステム・オン・チップＳｏＣとを示す図である。
【図２】ＳｏＣ、および、ＳｏＣのサブシステムとデバッグポートの回路との間の例示的なインターフェイスを示す図である。
【図３】ＳｏＣのデバッグ回路の例示的な実現例を示す図である。
【図４】デバッグパケットコントローラによるデバッグパケットの処理を示すフローチャートである。
【図５】複数のＳｏＣにおけるデイジーチェーニングデバッグ回路をサポートするポイント・ツー・ポイント（ＰＴＰ）デバッグインターフェイスのアプリケーションを示す図である。
【図６】開示されている回路に従って構成可能な例示的なプログラマブルＩＣを示す図である。
【発明を実施するための形態】
【００１１】
詳細な説明
以下の説明では、本明細書に記載されている具体例を説明するために多数の具体的な詳細が記載されている。しかし、１つ以上の他の例および／またはこれらの例の変形例は、以下の全ての具体的な詳細がなくても実施できる、ということが当業者に明らかであるべきである。他の例では、本明細書における例の説明を曖昧にしないように、周知の特徴については詳細に説明しなかった。図示を容易にするために、異なる図において同一の参照番号を使用して同一の要素または同一の要素のさらなる実例に言及する。
【００１２】
開示されている回路および方法は、複合ＳｏＣからトレースデータを収集して複合ＳｏＣをデバッグするための改良されたアプローチを提供する。本明細書における「ＳｏＣ」は、たとえば積層型シリコンインターポーザ技術を使用して構築されたシステムを含む、パッケージ内のシステムを指すのに使用される。上記のアプローチは、ＳｏＣの全てのサブシステムとデバイスに接続されたデバッガシステムとの間の高速データ転送を提供する統一デバッギングインターフェイスを提供する。複数のＳｏＣのデバッグインターフェイスは、デイジーチェーン状に接続できることにより、デバッグデータを構成してこのデバッグデータを複数のデバイスに提供したり複数のデバイスから読み取ったりするための単一の経路を提供する。
【００１３】
例示的な回路では、デバッグパケットコントローラは、ＳｏＣ上に配置される。デバッグパケットコントローラは、デバッガシステムに接続するための複数の代替インターフェイスに結合可能である。１つの外部インターフェイスは、ザイリンクス社のＡｕｒｏｒａ  ６４Ｂ／６６Ｂインターフェイスなどの、高速シリアル通信のためのスケーラブルで軽量なリンクレイヤプロトコルである。代替的に、デバッグパケットコントローラは、ＪＴＡＧインターフェイスに接続可能である。ＪＴＡＧインターフェイスは、デバッグパケットコントローラのイングレスおよびエグレスストリーミングポートに対する直接的なインターフェイスを有するブリッジにおける特定のレジスタにアクセスするように選択的にイネーブルにされることができる。
【００１４】
デバッグパケットコントローラは、１つ以上の入力バッファを含み得る。入力バッファは、ストリーミングデバッグパケット（デバッガシステムから発行されたものなど）を受信して格納する。デバッグパケットコントローラは、デバッガシステムに返されるデバッグまたはトレースデータをバッファリングするための応答バッファをさらに含む。これらの入力バッファおよび応答バッファには、デバッグパケットコントローラのトランザクション制御回路が結合される。トランザクション制御回路は、デバッグパケットにおけるオペレーションコードを復号することによって入力バッファにおける各デバッグパケットを処理するように構成される。トランザクション制御回路は、ＳｏＣのサブシステムにおける記憶回路にアクセスするための複数のインターフェイス回路のうちのあるインターフェイス回路を、デバッグパケットにおけるアドレスから判断し、次いで、オペレーションコードに従って記憶回路にアクセスするための要求をインターフェイス回路を介して発行する。トランザクション制御回路は、インターフェイス回路から受信した応答およびデータの、応答バッファへの格納を制御する。
【００１５】
デバッグパケットは、複数のオペレーションコードを含み得る。本明細書における「オペレーションコード」は、デバッグパケットに含まれ得るメインコマンドおよび１つ以上の任意のサブコマンドを指す。各サブコマンドは、複数のフィールドを有し得る。
【００１６】
デバッグパケットにおけるアドレス指定は、ＳｏＣの特定の記憶回路を参照し、デイジーチェーン状に接続された特定のＳｏＣも参照することができる。各パケットは、特定のＳｏＣを参照するターゲット識別子を有し得る。特定のＳｏＣを対象とするパケットでは、パケットがこのＳｏＣ内の記憶回路にアクセスしようとしている場合、パケットに含まれるサブコマンドの各々には、その記憶素子の場所を参照するアドレスがある。ＳｏＣのデイジーチェーニングは、複数のＳｏＣを同時にデバッグすることができる能力をイネーブルにする。
【００１７】
ＳｏＣは、プロセッササブシステムと、プログラマブルロジックサブシステムと、ハードワイヤード論理回路とを含み得て、ハードワイヤード論理回路の例は、デジタル信号プロセッサとして実現可能な数値演算エンジン回路を含む。デバッグパケットによってサブシステムの記憶回路をアドレス指定する際、デバッグパケットコントローラは、ターゲットがプロセッササブシステムにおける専用のデバッグサブシステム／インターコネクトであるか、プロセッササブシステムにおける専用のトレースバッファであるか、ＳｏＣをブートする前にプログラマブルロジックサブシステムまたはプロセッササブシステムを構成するためのＳｏＣ構成インターフェイスであるか、システム内の全てのオペレーショナルレジスタ（プロセッササブシステムレジスタ、プログラマブルロジックサブシステム内に実装されたアプリケーション回路におけるレジスタ、および数値演算エンジン回路におけるレジスタを含む）にアクセスするためのデバイス上のメインＳｏＣスイッチおよびネットワーク・オン・チップ（ＮｏＣ）であるかを判断する。
【００１８】
図１は、デバッガシステムと、アプリケーションのデバッギングをサポートするためのデバッグ回路とともに、アプリケーションソフトウェアおよびアプリケーション回路を実現するためのサブシステムを有するシステム・オン・チップＳｏＣとを示す図である。ＳｏＣ１０２は、複数のサブシステムを有し、これらのサブシステムは、たとえば、１つ以上のプロセッサコアを含み得るプロセッササブシステム１０６と、プログラマブルロジックおよびプログラマブルインターコネクト回路を含むプログラマブルロジックサブシステム１０８と、数学関数を実行するハードワイヤード論理回路１１０とを含む。ハードワイヤード論理回路は、「数値演算エンジン」とも称され得る。ハードワイヤード論理回路は、数値演算エンジンと称されることもあるが、ハードワイヤード論理回路は、デジタル信号処理エンジン、暗号化エンジン、前方誤り訂正（ＦＥＣ）エンジン、または１つ以上の特殊なタスクを実行するための他の特殊なハードワイヤード回路などの、任意の種類のデータ処理エンジン（ＤＰＥ）を含み得る。例示的な実現例では、数値演算エンジンは、エンジン間でストリーミングデータを伝送するために複数のスイッチを使用して相互接続可能である。
【００１９】
プロセッササブシステム、プログラマブルロジックサブシステムおよびハードワイヤード論理回路の各々は、それぞれ記憶回路１１２，１１４および１１６を含む。記憶回路は、ＳＲＡＭもしくはＤＲＡＭなどのメモリ、ならびに／または、構成および制御レジスタを含み得る。記憶回路１１２，１１４および１１６は、プロセッササブシステム１０６上で実行されるソフトウェアとして実現されるアプリケーションによって、プログラマブルロジックサブシステム１０８内に実装された回路によって、および／または、ハードワイヤード論理回路１１０によって、アクセス可能である。
【００２０】
プロセッササブシステム上でソフトウェアとして実行されるアプリケーション、および／または、プログラマブルロジックサブシステム上で回路として動作するアプリケーション、および／または、ハードワイヤードロジックにおいて回路として動作するアプリケーションは、アプリケーションポート１１８を介して、ＳｏＣの外側のシステムに対してデータを入出力する。アプリケーションポートは、たとえば、ギガビットトランシーバ、さまざまな規格ベースのまたは独占権下のバスインターフェイスを含み得る。
【００２１】
ＳｏＣ１０２は、記憶回路１１２，１１４および１１６へのアクセスをデバッガシステム１０４に提供することに充てられるデバッグポート１２０をさらに含む。デバッガシステム１０４は、ＳｏＣがアプリケーションを実行している間にデバッギングおよびトレース機能を実行することができる。また、デバッグポートを介して、デバッガシステムは、プロセッササブシステム１０６上で実行されるソフトウェアでＳｏＣを構成し、および／または、アプリケーション回路を実現するようにプログラマブルロジックサブシステム１０８を構成することができる。デバッガシステム上のデバッグインターフェイス１２２は、デバッグポート１２０に接続される。例示的な実現例では、デバッグポートとデバッグインターフェイスとは、双対シンプレックスモードで動作するギガビットトランシーバ上のＡｕｒｏｒａ  ６４Ｂ／６６Ｂインターフェイスを使用して通信して、複数のＳｏＣのデイジーチェーニングおよび並列デバッギングをサポートする。
【００２２】
デバッグポート１２０は、デバッグパケットコントローラ（図２における２０２）を含む。デバッグパケットコントローラは、ＳｏＣ１０２上のさまざまなサブシステムからデータを検索するためにプルモデルを実現する。ＳｏＣ内のトランザクションのフローは、デバッグパケットコントローラから参照されるリソースまでである。デバッグパケットコントローラにトランザクションのフローを開始させることにより、デバッグ環境においてトレースデータを処理してフロー制御をホストに戻すための設計が簡略化される。トレースデータがデバッグポートによってＳｏＣから押し出されるトレースモードをサポートするために、ＳｏＣ上の出力バッファ（図示せず）はトレースデータを格納するが、これは、デバッグポートが連続バーストを使用してデータを引き出して、アウトバウンドトレースストリームをエミュレートすることを可能にすることを目的としている。トレースバッファは、プログラマブルロジックサブシステム１０８、ＤＲＡＭ、プロセッササブシステム１０６のオンチップメモリ内に実装されてもよく、または複数のトレースソースにわたる統一トレースストリームが望まれる場合にはＣｏｒｅＳｉｇｈｔトレースバッファに入れられてもよい。
【００２３】
デバッグポート１２０は、２つのオペレーションモードをサポートするように構成可能である。「通常デバッグモード」と称され得る１つのモードでは、インバウンドポートもアウトバウンドポートもともに、デバッグおよびトレースインターフェイスとして使用される。各デバッグオペレーションは、デバッガシステム１０４によって開始され、デバッグポート１２０を介して実行可能である。「トレースモード」と称され得る第２のモードでは、デバッガシステムは、一組のデバッグパケットを発行し、その後、デバッグポートは、アウトバウンドトレースストリームを提供するために、この一組のデバッグパケットから読取要求を繰り返し生成する。トレースモードは、デバッグパケットにおける「Ｐｅｒｐｅｔｕａｌ」オペレーションコードによって起動することができる。
【００２４】
デバッグポート１２０は、デバッガシステム１０４からデバッグパケットを受信する。
Ａｕｒｏｒａインターフェイスがリンクレイヤインターフェイスとして使用される場合、各デバッグパケットは、Ａｕｒｏｒａパケットのユーザプロトコルデータユニット（ＰＤＵ）セクションに組み込まれることができ、デバッグパケットは、ヘッダと、任意のペイロードと、ＣＲＣフィールドとを含む。デバッグパケットのヘッダは、将来的な拡張のための予備フィールドと、Ｔａｒｇｅｔ＿ＩＤフィールドと、パケットシーケンス番号フィールドと、コマンドオペコードフィールドとを含む。デバッグパケットは、任意のペイロードフィールドおよび巡回冗長検査（ＣＲＣ）コードも含み得る。
【００２５】
Ｔａｒｇｅｔ＿ＩＤフィールドは、デイジーチェーンＳｏＣを含む構成においてターゲットＳｏＣを識別するのに使用される。列挙（Enumeration）中、各ＳｏＣは、それ自体のＴａｒｇｅｔ＿ＩＤをデイジーチェーン内の次のＳｏＣに渡し、次のＳｏＣは、Ｔａｒｇｅｔ＿ＩＤの値をインクリメントして、インクリメントされた値をそのＴａｒｇｅｔ＿ＩＤとして使用する。ゼロに等しいＴａｒｇｅｔ＿ＩＤは、ホストデバッガシステムのために取っておかれて、通常は、列挙中にホストデバッガシステムからチェーン内の第１のデバイスに渡されるＴａｒｇｅｔ＿ＩＤである。さもなければ、ホストは、ターゲットＳｏＣのＴａｒｇｅｔ＿ＩＤをデイジーチェーン内の第１のＳｏＣに渡す。ターゲットＳｏＣに送信されるデバッグパケットごとに、同一のＴａｒｇｅｔ＿ＩＤを有する応答がデバッガシステムに戻されることが予想される。
【００２６】
シーケンス番号フィールドは、ターゲットＳｏＣに送信されるデバッグパケットを追跡するのに使用される整数を指定する。Ｔａｒｇｅｔ＿ＩＤと同様に、ターゲットＳｏＣに送信されるパケットごとに、同一のパケットシーケンス番号を有する応答がデバッガシステムによって予想される。リセットおよびシーケンス取得オペレーションコードを有するデバッグパケットは、同一のシーケンス番号を有する応答を必要としない。誤った順番でパケットがＳｏＣで受信され、このパケットがＳｏＣのデバッグポート１２０にない場合、そのパケットは削除され、応答は生成されない。応答パケットがデバッガシステムによって受信されない場合、または、応答の送信にエラーがある場合、デバッガシステムは、同一のＴａｒｇｅｔ＿ＩＤおよびパケットシーケンス番号を有する同一の要求パケットを再送信することができる。その場合、応答が依然としてデバッグポートにあれば、デバッグポートは応答パケットを再送信する。
【００２７】
ＣＲＣフィールドは、どのデバッグパケットでも最後のフィールドであり得る。イングレスパケットのＣＲＣが無効である場合、このパケットはデバッグポートによって削除される。オペコードフィールドは、パケットタイプを指定するか、または、パケットによって実行される主要な動作を識別するのに使用される。オペコードフィールドにおける値は、「オペレーションコード」と称され得る。パケットがデバッグパケットコントローラによって成功裏に処理されると、デバッグコマンドパケットと同一のシーケンス番号を有する応答パケットにおけるオペコードフィールドは、待ち行列に入れられた全てのパケットについてＯＫステータスを表示し、待ち行列に入れられていないパケットについてはＳｐｅｃｉａｌ＿ＯＫステータスを表示する。待ち行列に入れられていないデバッグパケットの例は、リセットおよびシーケンス取得オペレーションコードを有するものである。一方、いかなるターゲットＳｏＣによっても処理されないデバッグパケットは、オペコードフィールドを変更しない状態でデバッガシステムによって受信される。
【００２８】
メインオペコードフィールドにおける例示的なオペレーションコードは、列挙（Enumerate）、リセット（Reset）、シーケンス取得（Get-Sequence）およびメモリ（Memory）を含む。メモリオペレーションコードを有するデバッグパケットでは、以下でさらに説明するように１つ以上の特定のアクセスオペレーションを指定することができる。メモリコードのさらなる特定のアクセスオペレーションは、「サブコマンド」とも称され得る。一般に、メインオペコードフィールドにおけるオペレーションコードおよびメモリサブコマンドは全て、オペレーションコードと称され得る。
【００２９】
列挙オペレーションは、Ｔａｒｇｅｔ＿ＩＤによって参照されるターゲット識別子をチェーン内のＳｏＣに割り当てるのに使用することができる。列挙オペレーションコードを有するデバッグパケットを受信すると、受信側のＳｏＣは、イングレスパケットにおけるＴａｒｇｅｔ＿ＩＤの値をインクリメントして、インクリメントされた値をそれ自体のＴａｒｇｅｔ＿ＩＤとして割り当てる。デバッグパケットコントローラは、インクリメントされたＴａｒｇｅｔ＿ＩＤ値をローカルレジスタ（図示せず）に格納することができる。次に、デバッグパケットコントローラは、インクリメントされたＴａｒｇｅｔ＿ＩＤを有するデバッグパケットを次のＳｏＣに送信する。このプロセスは、最後のデバイスのＴａｒｇｅｔ＿ＩＤを有するデバッグパケットがデバッガシステムによって受信されるまで繰り返される。Ｔａｒｇｅｔ＿ＩＤが２５５である場合、パケットはそのままで転送され、いかなる動作も取られない。各ＳｏＣ上のデバッグパケットコントローラは、受信される次のデバッグパケットにおけるシーケンス番号が、列挙デバッグパケットのシーケンス番号＋１であると予想する。列挙パケットが受信されたとき、デバッグポートは、リセット状態にあるべきであり、その他のデバッグパケットを処理していないべきである。そうでなければ、どのターゲットデバイスのデバッグポートも、列挙パケットがホストデバッガシステムによって送信される前にリセットされなければならない。列挙パケットが受信されたとき、デバッグポートが既にパケット処理の最中であることも可能である。したがって、列挙パケットコマンドは、システム内の全てのＳｏＣについてデバッグポートをリセットする役割も果たし、列挙パケットを受信すると、出力されているパケットは終了され、パケットバッファポインタはリセットされる。
【００３０】
リセットオペレーションは、ターゲットＳｏＣにおける全ての待ち状態のオペレーションをリセットするのに使用することができる。リセットパケットを受信すると、いずれかのパケットが出力されている場合にはこのパケットは終了され、終了された全ての待ち状態のパケットについて応答が生成されない。さらに、パケットバッファポインタがリセットされる。応答パケットは、Ｓｐｅｃｉａｌ＿Ｏｋａｙコードを使用して、応答パケットを、応答が既に待ち行列に入れられてホストに戻されている同一のシーケンス番号を有する以前に待ち行列に入れられたパケットと取り違えないように、ホストデバッガシステムに信号を送る。
【００３１】
シーケンス取得オペレーションは、Ｔａｒｇｅｔ＿ＩＤ値によって識別されたＳｏＣ上の次のデバッグパケットに対して予想シーケンス番号を提供するのに使用することができる。シーケンス取得パケットのシーケンス番号フィールドは、０であり、デバッグポートによって無視される。次のシーケンス番号は、応答パケットのシーケンス番号フィールドに渡される。シーケンス取得パケットのための応答パケットも、Ｓｐｅｃｉａｌ＿Ｏｋａｙコードを使用して、このパケットを、既に待ち行列に入れられた別のパケットと取り違えないようにホストデバッガシステムに知らせる。
【００３２】
メモリオペレーションコードを有するデバッグパケットは、参照されたメモリアドレスにアクセスする複数のサブコマンドを有し得る。デバッグパケットコントローラは、サブコマンドを復号し、アクセス要求が発行されるべきであるインターフェイス回路を判断し、このアクセス要求を発行する。デバッグパケットにおけるアドレスは、プロセッササブシステム１０６の記憶回路１１２、プログラマブルロジックサブシステム１０８の記憶回路１１４、またはハードワイヤード論理回路１１０の記憶回路１１６を参照することができる。
【００３３】
メモリコマンドパケットは、パケットのペイロードセクションに指定されてデバッグパケットコントローラによって実行される１つ以上のデータ転送オペレーションを含み得る。全てのデバッグおよびトレースデータは、ホストデバッガシステムによって生成されるメモリデバッグパケットに応答して、ターゲットＳｏＣからホストデバッガシステムに転送される。パケットのペイロードセクションに指定されるメモリオペレーションは、ＳｏＣ１０２のアドレス空間内の任意のアドレスへの単一のトランザクション、バーストトランザクション、またはストリーム（ＦＩＦＯ）トランザクションであってもよい。メモリアクセスデバッグパケットに含まれる全てのメモリオペレーションは、集合的に、パケットのヘッダに指定される単一のシーケンス番号を担持する。デバッグパケットコントローラは、各メモリデバッグパケットについて、ホストデバッガシステムに戻される１つの応答を生成する。再試行（Retry）オペレーションは、メモリオペレーションの集合体に対応するパケットレベルで実行される。メモリパケットの再試行オペレーションは、メモリサブコマンドをＳｏＣ上で実行させることはない。再試行オペレーションは、応答パケットがアウトバウンドバッファ内に存在する場合に応答パケットをホストデバッガシステムに再送信することをデバッグパケットコントローラにさせる。パケットがインプリメンテーションと矛盾する場合、応答パケットにおけるオペコードは、ＯＫまたは無効なステータスを表示する。
【００３４】
メモリデバッグパケットに含まれ得るさまざまなサブコマンドは、Ｒｅａｄ＿Ｍｅｍ＿Ｏｐ、Ｗｒｉｔｅ＿Ｍｅｍ＿Ｏｐ、Ｓｔｒｅａｍ＿Ｍｅｍ＿Ｏｐ、Ｐｅｒｐｅｔｕａｌ、ＴｅｓｔＭｅｍ＿Ｍｅｍ＿Ｏｐ、ＴｅｓｔＣｏｎｄ＿Ｍｅｍ＿Ｏｐ、ＧｅｔＣｏｎｄ＿Ｍｅｍ＿Ｏｐ、Ｓｋｉｐｌｆ＿Ｍｅｍ＿Ｏｐを含む。Ｒｅａｄ＿Ｍｅｍ＿Ｏｐサブコマンドは、ＳｏＣ１０２上で読取オペレーションを開始させるのに使用することができる。Ｒｅａｄ＿Ｍｅｍ＿Ｏｐサブコマンドを有するデバッグパケットは、サイズ（たとえば、ビートにおけるビットの数）、長さ（たとえば、ビートの数）およびアドレスを指定する。Ｒｅａｄ＿Ｍｅｍ＿Ｏｐサブコマンドに対してデバッグパケットコントローラによって発行される応答は、参照されたアドレスから読み取られるデータを含み得る。
【００３５】
Ｗｒｉｔｅ＿Ｍｅｍ＿Ｏｐサブコマンドは、ＳｏＣ１０２上で書込オペレーションを開始させるのに使用することができる。Ｗｒｉｔｅ＿Ｍｅｍ＿Ｏｐサブコマンドを有するデバッグパケットは、サイズ、長さ、アドレス、およびこのアドレスに書き込まれるデータを指定する。デバッグパケットコントローラは、Ｗｒｉｔｅ＿Ｍｅｍ＿Ｏｐサブコマンドに対する応答を発行しない。
【００３６】
Ｓｔｒｅａｍ＿Ｍｅｍ＿Ｏｐサブコマンドは、固定されたアクセスアドレスを有するＦＩＦＯバッファから値を読み取る、たとえば固定されたアドレスから８つのワード（または、ビート）を読み取るのに使用することができる。ＦＩＦＯバッファは一杯ではないので、３つの有効なワードおよび５つの無効なワードが返され得る。デバッグパケットコントローラは、応答時に３つの有効なワードを提供するであろう。応答におけるカウントフィールドは、返される有効なデータの量を示す。Ｓｔｒｅａｍ＿Ｍｅｍ＿Ｏｐは、上記のようにトレースモードで無期限に実行されるデバッグパケットのうちの少なくとも１つに含まれ得る。
【００３７】
Ｐｅｒｐｅｔｕａｌオペレーションコードに応答して、デバッグパケットコントローラは、「リセット」、「列挙」または「シーケンス番号取得」がホストデバッガシステムによって発行されるまで、４つ全てのバッファにおいてコマンドを無期限に繰り返す。Ｐｅｒｐｅｔｕａｌオペレーションコードは、トレースモードを開始させるためのメモリマップされた場所を不要にする。Ｐｅｒｐｅｔｕａｌオペレーションコードを使用するために、ユーザは、いくつかのデバッグパケットを発行し、次いで、Ｐｅｒｐｅｔｕａｌオペコードを有するデバッグパケットを発行する。例示的なこの実現例では、４つのパケットバッファがあり、その結果、Ｐｅｒｐｅｔｕａｌオペレーションコードに応答してデバッグパケットコントローラが動作する、待ち行列に入れられたパケットの数は、Ｐｅｒｐｅｔｕａｌパケット自体を除いて４つである。次いで、デバッグパケットコントローラは、バッファリングされたパケットにおけるオペレーションを実行する。各応答は、インクリメントされたシーケンスＩＤを有する。
【００３８】
デバッグパケットコントローラは、システム内の他の記憶素子の状態に基づいてアクセスされる記憶回路のための機構（トレースバッファおよびデバッグ素子など）を提供する。この特徴により、これらのバッファのステータスを確認して状態が好都合である（たとえば、一杯または準備が整っている）場合にのみそれらにアクセスすることにホストデバッガシステムを関与させるのではなく、１つのパケットにおいて複数のトレースまたはデバッグ素子に同時に推測でアクセスすることが可能になる。ステータスを確認することにホストデバッガシステムを関与させることは、相当なターンアラウンド時間を生じさせるであろう。
【００３９】
ＴｅｓｔＭｅｍ＿Ｍｅｍ＿Ｏｐサブコマンドは、デバッグパケットにおけるアドレスによって参照され、デバッグパケットにおけるマスク値と論理積をとられるデータ値が、デバッグパケットにおける比較値に等しい場合に条件レジスタにおける１つ以上のビットを設定するのに使用することができる。論理積の結果が比較値に等しくない場合、条件レジスタにおけるビットはクリアされる。
【００４０】
ＴｅｓｔＣｏｎｄ＿Ｍｅｍ＿Ｏｐサブコマンドは、デバッグパケットにおけるフィールドによって参照され、デバッグパケットにおけるマスク値と論理積をとられる条件レジスタの１つ以上のビットが、デバッグパケットにおける比較値に等しい場合に条件レジスタにおける１つ以上のビットを設定するのに使用することができる。論理積の結果が比較値に等しくない場合、条件レジスタにおけるビットはクリアされる。
【００４１】
Ｓｋｉｐｌｆ＿Ｍｅｍ＿Ｏｐサブコマンドは、サブコマンドに指定された条件レジスタのビットがサブコマンドにおける真（True）フィールドに等しい場合に、デバッグパケットにおけるメモリサブコマンドの処理を、Ｓｋｉｐｌｆ＿Ｍｅｍ＿Ｏｐサブコマンドの宛先フィールドによって表されるコマンドペイロード内の場所にスキップするのに使用することができる。比較値が等しくない場合、デバッグパケットにおける次の連続するメモリサブコマンドが処理される。
【００４２】
ＧｅｔＣｏｎｄ＿Ｍｅｍ＿Ｏｐサブコマンドは、条件レジスタの状態を明示的に返すことにより、Ｓｋｉｐｌｆ＿Ｍｅｍ＿Ｏｐがサブコマンドのスキップを引き起こしたか否か、および、ホストデバッガシステムがＳｋｉｐｌｆ＿Ｍｅｍ＿Ｏｐに続く読取または書込オペレーションからの応答を予想すべきであるか否かをホストデバッガシステムが判断できるようにするために、ホストデバッガシステムによって使用可能である。
【００４３】
図２は、ＳｏＣ１０２、および、ＳｏＣのサブシステムとデバッグポート１２０（図１）の回路との間の例示的なインターフェイスを示す図である。デバッグポートの回路は、一般に、デバッグパケットコントローラ２０２と、デバッグＩ／Ｏインターフェイス２０４とを含む。デバッグパケットコントローラ２０２は、デバッガシステム１０４（図１）から受信したデバッグパケットを処理することを担う。デバッグＩ／Ｏインターフェイスは、ＳｏＣ上の高速インターフェイスであり、このインターフェイスを介して、デバッグパケットがデバッグパケットコントローラに渡され、デバッグパケットコントローラによって応答がデバッガシステムに返される。デバッグＩ／Ｏインターフェイスは、上記のＡｕｒｏｒａインターフェイスおよびＪＴＡＧインターフェイスを含み得る。
【００４４】
デバッグパケットコントローラ２０２は、バッファ回路におけるデバッガシステム１０４から受信したデバッグパケットを受信して格納する。デバッグパケットにおけるオペレーションコードは、デバッグパケットコントローラによって復号され、オペレーションコードに基づいて、デバッグパケットコントローラは、宛先を判断して、高水準のフロー制御および管理タスクを実行する。デバッグパケットコントローラは、デバッグパケットにおけるアドレスに基づいて、要求がルーティングされるべきである適切なインターフェイス回路を判断する。要求は、適切なインターフェイス回路を介してデバッグパケットコントローラによって発行され、これらの要求に対する応答は、出力データバッファに格納され、出力データバッファは、デバッグI／Ｏインターフェイス２０４によってアクセス可能である。
【００４５】
デバッグパケットコントローラ２０２は、デバッグパケットにおけるアドレスが、ＳｏＣ１０２上のプロセッササブシステム１０６の記憶回路を参照するか、ＳｏＣ上のプログラマブルロジックサブシステムの記憶回路を参照するか、ＳｏＣ上の数値演算エンジン回路の記憶回路を参照するかを判断する。より具体的には、アドレス指定されたターゲットは、プロセッササブシステムにおける専用のデバッグサブシステム／インターコネクトであってもよく、プロセッササブシステムにおける専用のトレースバッファであってもよく、ブート前にプロセッササブシステムまたはプログラマブルロジックサブシステム１０６のプロセッサコア２０６を構成するためのデバイス構成サブシステム２１６インターフェイスであってもよく、システム内の全てのオペレーショナルレジスタ（プロセッササブシステムのレジスタ、プログラマブルロジックサブシステム内に実装された回路のレジスタ、およびハードワイヤードロジック／数値演算エンジン１１０におけるレジスタを含む）にアクセスするためのＳｏＣスイッチ２１０およびネットワーク・オン・チップ（ＮｏＣ）２１２であってもよい。
【００４６】
プロセッササブシステムは、プロセッサデバッグ／トレース回路２０８を含み得て、プロセッサデバッグ／トレース回路２０８は、プロセッササブシステムの記憶回路へのデバッグアクセスを提供し、また、プロセッササブシステムからのトレースデータおよびＳｏＣ上のさまざまなサブシステムからのトレースデータもバッファリングしてアセンブルすることができる。プロセッサデバッグ／トレース回路２０８の一例は、ＡＲＭ  ＣｏｒｅＳｉｇｈｔデバッガである。
【００４７】
デバッグパケットコントローラ２０２は、信号線２１８によって示されるように、プロセッサデバッグ／トレース回路からトレースデータを選択的かつ直接的に受信することができる。代替的に、デバッグパケットコントローラは、プロセッサデバッグ／トレース回路２０８を介してプロセッササブシステムの記憶回路にアクセスするための読取および書込要求を、マルチプレクサ回路２１４を介して発行することができる。さらに、プロセッササブシステムの記憶回路へのアクセスは、デバッグＩ／Ｏインターフェイス２０４を介してオフＳｏＣ回路に提供され、ＳｏＣスイッチ２１０を介してオンＳｏＣコンポーネントに提供されることができる。
【００４８】
デバッグパケットコントローラ２０２は、構成サブシステム２１６にも接続することができる。構成サブシステムは、プログラマブルロジック１０６の構成メモリ（図示せず）にアクセスする構成アクセスポートなどの回路を含み得る。デバッグパケットコントローラは、構成サブシステムに対して書込要求を発行することができ、デバッグパケットからのデータは、プログラマブルロジック１０６における回路を実現するために構成メモリに格納される。また、デバッグパケットコントローラは、構成メモリから構成データを読み直すための読取要求も発行することができる。
【００４９】
図３は、ＳｏＣのデバッグ回路３００の例示的な実現例を示す図である。デバッグ回路３００は、図２に示されるデバッグパケットコントローラ２０２およびデバッグＩ／Ｏインターフェイスのロジックを含む。デバッグパケットコントローラは、ＪＴＡＧポート３０２またはデイジーチェーン接続もしくはポイント・ツー・ポイント（ＰＴＰ）およびデイジーチェーン接続３０４のいずれかから選択するように構成可能である。別のポート（図示せず）は、デバッグパケットを受信して、プログラマブルロジックサブシステム上に実装可能であるようなローカルデバッガ回路に応答を送信するためのものであり得る。Ｉ／Ｏ経路選択制御装置３０６は、マルチプレクサ３０８によって所望の入力経路を選択するように、レジスタ（図示せず）などで構成可能であり得る。
【００５０】
ＪＴＡＧポートは、ＪＴＡＧ  ｔｏ  ＡＸＩストリームブリッジ（図示せず）を含み得る。このブリッジは、ユーザがＪＴＡＧチェーンにおけるタップを介してデバッグパケットをデバッグパケットコントローラに送信することを可能にするセキュリティゲートおよびデシリアライザに基づき得る。デバッグパケットコントローラへのブリッジは、合理化された低オーバーヘッド設計による高速データ転送レートを提供する。また、ブリッジは、Ａｕｒｏｒａベースの機能を必要とすることなくデバッグパケットコントローラの機能をテストすることも可能にする。
【００５１】
ＪＴＡＧインターフェイスは、トレースモードで有用であろう。イングレス（インバウンド）デバッグパケットは、ＪＴＡＧを介してアクセス可能であり、エグレス（アウトバウンド）応答データは、ＰＴＰインターフェイスを介して出力可能である。トレースモードでは、限られた数のパケット、たとえば例示的な実現例では４つのパケット、が入力されるが、非常に多くの数のアウトバウンドトレースパケットが生成される。
【００５２】
ＰＴＰおよびデイジーチェーンポート３０４は、ザイリンクス社のＡｕｒｏｒａインターフェイスを使用して実現可能である。Ａｕｒｏｒａインターフェイスは、１つ以上の高速シリアルレーンを横断するようにポイント・ツー・ポイントでデータを移動させるのに使用することができる軽量のリンクレイヤプロトコルを実現する。Ａｕｒｏｒａインターフェイスは、単純であり、低オーバーヘットで実現可能であり、単一のケーブルによる複数のデバイスのデイジーチェーニングをサポートし、場合によってはローストリーミング（raw streaming）出力インターフェイスとして使用可能である。Ａｕｒｏｒａプロトコルブリッジは、デバッグインターフェイスの物理レイヤおよびリンクレイヤを担う。Ａｕｒｏｒａサブセクションは、電気的な信号伝達ならびにクロックおよびシンボル符号化を処理する。また、ダイナミックチャネルボンディングがＩＰにおいてサポートされる場合には、Ａｕｒｏｒａは、単一レーンおよび複数レーン構成のためにチャンネルを準備して、個々のレーンへのデータのマッピングまたはデータストライピングを制御する。Ａｕｒｏｒａは、デバッグパケット内のアイドルシーケンスを可能にするので、パケット全体のバッファリングを不要にする。例示的な実現例では、Ａｕｒｏｒａインターフェイスは、２つの別々のチャネルを使用した単信モードでの６４ｂ／６６ｂ符号化を実現するように構成される。Ａｕｒｏｒａインターフェイスは、デバッグパケットをカプセル化するためにフレーミングをサポートするように構成される。
【００５３】
デバッグパケットコントローラは、デバッグパケットにおけるＴａｒｇｅｔ＿ＩＤおよびメインオペレーションコードに応じて、デバッグパケットを待ち行列に入れたり、デバッグパケットを待ち行列に入れることをバイパスしたりすることができる。待ち行列に入れられたパケットは、デバッグパケットコントローラ入力バッファ（例示的な実現例では、４つのデバッグパケットにストレージを提供する）において待ち行列に入れられ、順番にＳｏＣに適用される。メモリオペレーションを有し、かつ、受信側のデバッグパケットコントローラのＳｏＣのターゲット識別子に一致するＴａｒｇｅｔ＿ＩＤを有し、かつ、再試行パケットとして解釈されない全てのデバッグパケットが待ち行列に入れられてバッファリングされる。
【００５４】
待ち行列に入れられていないデバッグパケットは、デバッグパケットコントローラによって識別されるとすぐに処理され、オペレーションコードおよびエグレスチャネルの利用可能性に応じて、ローカルに格納される場合もあれば、格納されない場合もある。列挙、リセットおよびシーケンス取得のオペレーションコードを有するデバッグパケットに加えて、別のＳｏＣを参照するＴａｒｇｅｔ＿ＩＤを有するデバッグパケットは、待ち行列に入れられない。アウトバウンドチャネルが、待ち行列に入れられたパケットの応答を転送するのに忙しくない限り、一致しないＴａｒｇｅｔ＿ＩＤを有するデバッグパケットは、直接転送される。再試行デバッグパケットも待ち行列に入れられない。再試行デバッグパケットは、ホストデバッガシステムによって再び送信されるパケットであり、応答は、図らずもデバッグパケットコントローラの出力バッファ内に依然として存在する。再試行デバッグパケットに対する応答は、送信される次の応答であり、その後に、既に送信されることが予定されていたデバッグパケットに対する応答が転送される。
【００５５】
ＳｏＣへのデバッグパケットの制御およびフローは、ホストデバッガシステム１０４（図１）によって管理される。ホストデバッガシステムは、第１の待ち行列に入れられたデバッグパケットに対する応答が受信されるまでは、５つ以上の待ち行列に入れられたデバッグパケットをＳｏＣに送信することはないと思われる。第１のデバッグパケットに対する応答がデバッグパケットコントローラによって送信される前にホストデバッガシステムが第５の待ち行列に入れられたデバッグパケットを送信しようとすると、このデバッグパケットは、デバッグパケットコントローラによって削除されて、このデバッグパケットについて応答は生成されない。ホストデバッガシステムは、この発生および正確な実行を検出できるが、ホストデバッガシステムは、送信されて応答されたパケットを追跡することが予想され、過剰な要求を発行することはないと思われる。デバッグパケットコントローラは、待ち行列に入れられていないデバッグパケットである第５のパケットを受け付けることができる。
【００５６】
デバッグパケットコントローラは、各々の入力されたデバッグパケットをパケット先入先出（ＦＩＦＯ）バッファ３１０に一時的に格納する。デコーダ回路３３８は、パケットが入力バッファ３１２，３１４，...，３１６のうちの１つにおいて待ち行列に入れられるか、直接デバッグパケットコントローラから出て行くかを判断するために、ＦＩＦＯバッファの先頭のパケットのヘッダ（最初のワード）を復号する。エグレスポートが応答または別のデバッグパケットを転送するのに忙しい場合には、出力ポートが利用可能になるまで、インバウンドデバッグパケットがＦＩＦＯバッファ３１０に格納される。
【００５７】
デコーダ回路３３８は、パケットが入力バッファ３１２，３１４，...，３１６をバイパスすべきであるか否かに関してトランザクション制御回路３１８に信号を送る目的で、デバッグパケットのヘッダの第１レベルの復号を実行する。たとえば、デバッグパケットに指定されたターゲットＩＤがレジスタ３４８におけるＳｏＣ  ＩＤに一致しない場合、デコーダ回路３３８は、いずれの入力バッファもデバッグパケットの格納のためにイネーブルにされるべきではなく、バイパス経路上のデバッグパケットがマルチプレクサ３３６によって選択されるべきであることをトランザクション制御回路３１８に知らせる。
【００５８】
デバッグパケットにおけるターゲットＩＤがレジスタ３４８におけるＳｏＣ  ＩＤ（デバイスのＴａｒｇｅｔ＿ＩＤ）に一致し、デバッグパケットが上記の待ち行列に入れられていないパケットタイプのうちの１つでない場合、デコーダ回路３３８は、デバッグパケットが入力バッファ３１２，３１４，...，３１６のうちの１つに格納できる状態であることをトランザクション制御回路３１８に知らせる。トランザクション制御回路は、入力バッファのうちの利用可能な１つの入力バッファを選択し、デマルチプレクサ３２０によって、デバッグパケットを、選択された入力バッファへの格納に仕向ける。全ての入力バッファが一杯になると、デバッグパケットは、いずれの入力バッファにも格納されず、廃棄される。
【００５９】
トランザクション制御回路３１８は、マルチプレクサ３２２によって、処理のためにデバッグパケットを選択する。記憶回路へのアクセスを指定するオペレーションコードを有するデバッグパケットのために、トランザクション制御回路は、デバッグパケットにおけるアドレスに基づいて、ＳｏＣのさまざまなサブシステムへのインターフェイス回路のうちの１つを選択する。信号線３２４は、サブシステムへのさまざまなインターフェイスに接続する。
【００６０】
サブシステムから検索されたデータまたはトランザクション制御回路３１８によって提供されたデータを有する応答パケットは、応答バッファ３２８，３３０，...，３３２に格納される。トランザクション制御回路は、デマルチプレクサ３２６を使用して、応答パケットを応答バッファのうちの利用可能な１つの応答バッファに仕向ける。
【００６１】
応答バッファにおいて応答パケットが利用可能になるので、トランザクション制御回路は、マルチプレクサ３３４によって、出力のために応答バッファのうちの１つからの応答パケットを選択する。選択された応答パケットは、デマルチプレクサ３３６に仕向けられる。マルチプレクサ３３６からの出力３４０および３４２は、ＪＴＡＧポート３０２ならびにＰＴＰおよびデイジーチェーンポート３０４の入力に接続される。
【００６２】
トランザクション制御回路は、ＴｅｓｔＭｅｍ＿Ｍｅｍ＿ＯｐおよびＴｅｓｔＣｏｎｄ＿Ｍｅｍ＿Ｏｐなどのテストオペレーションの結果の追跡に使用することができる条件レジスタ３４６を含む。条件レジスタにおける値は、デバッグパケットにおけるオペレーションの処理のフローの制御にも使用することができる。
【００６３】
図４は、デバッグパケットコントローラによるデバッグパケットの処理を示すフローチャートである。ブロック４０２において、デバッグパケットコントローラは、パケットＦＩＦＯバッファ３１０（図３）の先頭のデバッグパケットのヘッダを読み取る。パケットヘッダにおけるＴａｒｇｅｔ＿ＩＤがＳｏＣのデバイス識別子に等しくない場合、判断ブロック４０４は、プロセスをブロック４０６に進めて、ブロック４０６において、デバッグパケットコントローラは、入力バッファ３１２，３１４，...，３１６（図３）においてデバッグパケットを待ち行列に入れることをバイパスして、パケットをデイジーチェーンにおける次のＳｏＣに出力する。次いで、デバッグパケットコントローラは、ブロック４０２に戻って、パケットＦＩＦＯバッファにおける次のパケットのヘッダを読み取る。
【００６４】
パケットヘッダにおけるＴａｒｇｅｔ＿ＩＤがＳｏＣの識別子に等しい場合、判断ブロック４０８において、デバッグパケットコントローラは、ヘッダにおけるオペレーションコードがＰｅｒｐｅｔｕａｌオペレーションであるか否かを判断する。Ｐｅｒｐｅｔｕａｌオペレーションコードを検出したことに応答して、ブロック４１０において、デバッグパケットコントローラは、入力バッファ３１２，３１４，...，３１６内に存在するデバッグパケットにおけるオペレーションコードをシーケンシャルに処理する。すなわち、判断ブロック４１２によってパケットＦＩＦＯバッファ３１０内でリセットデバッグパケットが検出されるまで、デバッグパケットコントローラは、入力バッファにおけるデバッグパケットについて、オペレーションコードを復号することと、インターフェイス回路を判断することと、要求を発行することとを繰り返す。デバッグパケットにおけるオペレーションコードの処理は、ブロック４２２〜４５２として示されている。ブロック４１４において、デバッグパケットコントローラは、リセットデバッグパケットに応答して、入力バッファ３１２，３１４，...，３１６におけるパケットのオペレーションコードの現在の復号を中止する。次のパケットがＰｅｒｐｅｔｕａｌオペレーションコードを有する場合、デバッグパケットコントローラは、入力バッファにおけるパケットにおけるコマンドの実行を繰り返す。デバッグパケットコントローラがＰｅｒｐｅｔｕａｌオペレーションモードである間、デバッグパケットコントローラは、他のＳｏＣに仕向けられるデバッグパケットまたはＰｅｒｐｅｔｕａｌオペレーションモードを停止するデバッグパケットについてパケットＦＩＦＯバッファをモニタリングし続ける。
【００６５】
判断ブロック４１６において、デバッグパケットコントローラがＰｅｒｐｅｔｕａｌオペレーションモードで動作していない場合、デバッグパケットコントローラは、パケット入力バッファ３１２，３１４，...，３１６の先頭のパケットで利用可能なバッファストレージがあるか否かを判断する。入力バッファにおいて利用可能なスペースがない場合、ブロック４１８において、パケットは廃棄され、制御はブロック４０２に戻される。入力バッファにおいてストレージが利用可能である場合、ブロック４２０において、デバッグパケットコントローラは、入力バッファのうちの１つにデバッグパケットを格納して、ブロック４０２に戻って、このときにパケットＦＩＦＯバッファの先頭にある次のパケットのヘッダを取得する。それと並行して、デバッグパケットコントローラは、ブロック４２２に進む。なお、デバッグパケットコントローラは、ブロック４１６において利用可能なバッファスペースを確認し、待ち行列に入れられたパケットについてのみ、ブロック４２０においてパケットを入力バッファに格納する。
【００６６】
ブロック４２２において、デバッグパケットコントローラは、入力バッファ３１２，３１４，...，３１６のうちの１つからデバッグパケットを取得し、ブロック４２４において、デバッグパケットコントローラは、デバッグパケットからオペレーションコードを取得する。オペレーションコードは、上記のサブコマンドのうちの１つであってもよい。
【００６７】
デバッグパケットコントローラが読取オペレーションコードを検出すると、判断ブロック４２６は、プロセスをブロック４２８に進める。ブロック４２８において、デバッグパケットコントローラは、ＳｏＣのアドレス指定されたサブシステムへのインターフェイスを介して読取要求を発行する。次いで、デバッグパケットコントローラは、ブロック４５０に進んで、デバッグパケットの中にさらなるオペレーションコードがあるか否かを確認する。デバッグパケットの中にさらなるオペレーションコードがなければ、プロセスは、ブロック４２２に戻って、入力バッファから次のデバッグパケットを取得する。例示的な実現例では、デバッグパケットコントローラは、ラウンドロビンの順序で入力バッファ３１２，３１４，...，３１６におけるデバッグパケットを処理する。デバッグパケットの中にさらなる未処理のオペレーションコードがある場合には、ブロック４５２において、デバッグパケットコントローラは、パケットから次のオペレーションコードを取得して、判断ブロック４２６に戻る。パケットにおけるオペレーションコードは、スキップオペレーションがフローを変更するまで、シーケンシャルな順序で処理される。
【００６８】
デバッグパケットコントローラが書込オペレーションコードを検出すると、判断ブロック４３０は、プロセスをブロック４３２に進める。ブロック４３２において、デバッグパケットコントローラは、ＳｏＣのアドレス指定されたサブシステムへのインターフェイスを介して書込要求を発行する。次いで、デバッグパケットコントローラは、上記のブロック４５０に進む。
【００６９】
デバッグパケットコントローラがテスト（Test）オペレーションを検出すると、判断ブロック４３４は、プロセスをブロック４３６に進める。テストメモリ（Test Memory）オペレーションコードでは、ブロック４３６において、デバッグパケットコントローラは、ＳｏＣのアドレス指定されたサブシステムへのインターフェイスを介して読取要求を発行する。ブロック４３８において、デバッグパケットコントローラは、読取要求によるデータ値と、デバッグパケットにおけるテストオペレーションに関連付けられたマスク値との論理関数（たとえば、論理積）を実行する。ブロック４４０において、デバッグパケットコントローラは、論理関数の結果と、テストオペレーションに関連付けられた比較値とを比較する。ブロック４４２において、デバッグパケットコントローラは、比較結果に基づいて、値を条件レジスタ３４６（図３）に格納する。たとえば、比較値が論理関数の結果に等しいことを比較結果が示す場合、論理値１を条件レジスタに格納することができる。そうでなければ、論理値を条件レジスタに格納することができる。次いで、デバッグパケットコントローラは、プロセスを判断ブロック４５０に進める。
【００７０】
別のタイプのテストオペレーションは、テスト条件（Test Condition）である。上記のように、ＴｅｓｔＣｏｎｄ＿Ｍｅｍ＿Ｏｐは、条件レジスタ３４６または条件レジスタの一部における値をテストする。デバッグパケットコントローラによるテスト条件オペレーションコードの処理は、ＳｏＣサブシステムのうちの１つのアドレスから値を読み取る代わりに条件レジスタから値を読み取ること以外は、テストメモリオペレーションコードの処理と同様である。
【００７１】
判断ブロック４４４において、デバッグパケットコントローラは、スキップ（Skip）オペレーション（たとえば、Ｓｋｉｐｌｆ＿Ｍｅｍ＿Ｏｐ）を確認する。スキップオペレーションでは、ブロック４４５において、デバッグパケットコントローラは、条件レジスタ３４６から値を取得する。スキップオペレーションは、デバッグパケットにおけるメモリオペレーションの処理をデバッグパケットのコマンドペイロード内の場所にスキップするのに使用することができる。この場所は、Ｓｋｉｐｌｆ＿Ｍｅｍ＿Ｏｐサブコマンドの宛先フィールドによって表される。サブコマンドに指定された条件レジスタのビットがサブコマンドにおける真フィールドに等しい場合、ブロック４４６において、デバッグパケットコントローラは、指定された場所にスキップして、ブロック４４８において、その場所でオペレーションコードを取得する。比較された値が等しくない場合、デバッグパケットコントローラは、ブロック４５０に進んで、さらなるオペレーションコードがあるか否かを確認する。
【００７２】
図５は、複数のＳｏＣにおけるデイジーチェーニングデバッグ回路をサポートするポイント・ツー・ポイント（ＰＴＰ）デバッグインターフェイスのアプリケーションを示す図である。この構成は、デバッガシステム１０４（図１）と、デバッグポート５０８，５１０，...，５１２によって接続された複数のＳｏＣ５０２，５０４，...，５０６とを含む。デバッグポートは、図１のデバッグポート１２０ならびに図２および図３に示され記載されているデバッグパケットコントローラおよびデバッグＩ／Ｏポートによって示されるように実現可能である。
【００７３】
デバッガシステム１０４によって発行されるデバッグパケットは、ＳｏＣ５０２，５０４，...，５０６のうちの対象のＳｏＣを参照するＴａｒｇｅｔ＿ＩＤ値を有する。デバッガシステムによって発行されたデバッグパケットは、まず、ＳｏＣ５０２上のデバッグポート５０８にルーティングされる。Ｔａｒｇｅｔ＿ＩＤ値がＳｏＣ５０２のデバイス識別子に一致する場合、デバッグパケットにおけるオペレーションは、デバッグポート５０８においてデバッグパケットコントローラによって処理される。Ｔａｒｇｅｔ＿ＩＤ値がＳｏＣ５０２のデバイス識別子に一致しない場合、デバッグポート５０８は、デバッグパケットをデイジーチェーンにおける次のＳｏＣ５０４に転送する。デバッグパケットは、Ｔａｒｇｅｔ＿ＩＤ値がＳｏＣデバイス識別子に一致するまで、デイジーチェーンに沿って転送される。デバッグポートのデイジーチェーニングにより、ＳｏＣを並列にデバッグすることができる。デバッグポート５０８，５１０，...，５１２からの応答も、デイジーチェーンに沿ってデバッガシステム１０４に渡される。
【００７４】
図６は、開示されている回路に従って構成可能な例示的なプログラマブルＩＣ６０２を示す図である。プログラマブルＩＣは、ＳｏＣとも称されてもよく、プロセッササブシステム６１０と、プログラマブルロジックサブシステム６３０とを含む。プロセッササブシステム６１０は、ユーザプログラムの実行によってユーザ設計のソフトウェア部分を実現するようにプログラムされてもよい。プログラムは、構成データストリームの一部として指定されてもよく、またはオンチップもしくはオフチップデータ記憶装置から検索されてもよい。プロセッササブシステム６１０は、１つ以上のソフトウェアプログラムを実行するためのさまざまな回路６１２，６１４，６１６および６１８を含んでもよい。回路６１２，６１４，６１６および６１８は、たとえば、１つ以上のプロセッサコア、浮動小数点ユニット（ＦＰＵ）、割込み処理ユニット、オンチップメモリ、メモリキャッシュおよび／またはキャッシュコヒーレントインターコネクトを含んでもよい。
【００７５】
プログラマブルＩＣ６０２のプログラマブルロジックサブシステム６３０は、ユーザ設計のハードウェア部分を実現するようにプログラムされてもよい。たとえば、プログラマブルロジックサブシステムは、構成データストリームに指定された一組の回路を実現するようにプログラムされてもよいいくつかのプログラマブルリソース６３２を含んでもよい。プログラマブルリソース６３２は、たとえば、プログラマブルインターコネクト回路、プログラマブル論理回路および構成メモリセルを含む。プログラマブルロジックは、プログラマブル素子を使用してユーザ設計のロジックを実現し、これらのプログラマブル素子は、たとえば、ファンクションジェネレータ、レジスタ、演算論理装置などを含み得る。プログラマブルインターコネクト回路は、プログラマブルインターコネクトポイント（ＰＩＰ）によって相互接続されたさまざまな長さの多数の相互接続線を含んでもよい。
【００７６】
プログラマブルリソース６３２は、プログラマブルインターコネクト回路およびプログラマブル論理回路をいかに構成するかを定義する構成メモリセルに構成データストリームをロードすることによってプログラムされてもよい。たとえば、構成可能なラッチのための構成メモリセルを第１の値に設定することにより、構成可能なラッチをシングルエッジ駆動ラッチとして動作させてもよい。構成メモリセルを第２の値に設定することにより、構成可能なラッチをダブルエッジ駆動ラッチとして動作させてもよい。次いで、個々のメモリセルの集合状態がプログラマブルリソース６３２の機能を決定する。構成データは、メモリから（たとえば、外部ＰＲＯＭから）読み取られたり、外部デバイスによってプログラマブルＩＣ６０２に書き込まれたりすることができる。いくつかの実現例では、プログラマブルロジックサブシステム６３０に含まれる構成コントローラ６３４は、プログラマブルＩＣに結合された不揮発性メモリから構成データを検索してこの構成データを構成メモリセルにロードすることによって、プログラマブルＩＣの電源投入に応答して、プログラマブルリソースをプログラムしてもよい。いくつかの他の実現例では、構成データは、プロセッササブシステム６１０によって実行される起動プロセスによって構成メモリセルにロードされてもよい。
【００７７】
プログラマブルＩＣ６０２は、プロセッササブシステム６１０とプログラマブルロジックサブシステム６３０内に実装された回路とを相互接続するためのさまざまな回路を含んでもよい。この例では、プログラマブルＩＣ６０２は、プロセッササブシステム６１０およびプログラマブルロジックサブシステム６３０のさまざまなデータポート間でデータ信号をルーティングすることができるコアスイッチ６２６を含む。コアスイッチ６２６は、処理サブシステムまたはプログラマブルロジックサブシステム６１０および６３０のうちのいずれかと、内部データバスなどのプログラマブルＩＣのさまざまな他の回路との間でデータ信号をルーティングしてもよい。代替的にまたはさらに、プロセッササブシステム６１０は、プログラマブルロジックサブシステムと直接接続するためのインターフェイスを含むことにより、コアスイッチ６２６をバイパスしてもよい。このようなインターフェイスは、たとえばＡＲＭによって公開されているＡＭＢＡ  ＡＸＩプロトコル仕様（ＡＸＩ）を使用して実現されてもよい。
【００７８】
また、いくつかの実現例では、プロセッササブシステム６１０およびプログラマブルロジックサブシステム６３０は、メモリコントローラ６２１を介してオンチップメモリ６２２またはオフチップメモリ（図示せず）の記憶場所に対して読取または書込を行ってもよい。メモリコントローラ６２１は、１つ以上の異なるタイプのメモリ回路と通信するように実現可能であり、これらの１つ以上の異なるタイプのメモリ回路は、１６ビットであろうと、３２ビットであろうと、ＥＣＣを有する１６ビットであろうと、ダブルデータレート（ＤＤＲ）２タイプのメモリ、ＤＤＲ３タイプのメモリ、低電力（ＬＰ）ＤＤＲ２タイプのメモリを含むが、これらに限定されるものではない。メモリコントローラ６２１が通信することができるさまざまなメモリタイプのリストは、例示の目的で提供されているに過ぎず、限定的または網羅的であるように意図されるものではない。図６に示されるように、プログラマブルＩＣ６０２は、メモリ管理ユニット６２０と、サブシステム６１０および６３０によって使用される仮想メモリアドレスを、メモリコントローラ６２１によって使用される物理メモリアドレスに変換して特定の記憶場所にアクセスするための変換ルックアサイドバッファ６２４とを含んでもよい。
【００７９】
プログラマブルＩＣは、外部回路とのデータの通信のための入力／出力（Ｉ／Ｏ）サブシステム６５０を含んでもよい。Ｉ／Ｏサブシステム６５０は、さまざまなタイプのＩ／Ｏデバイスまたはインターフェイスを含んでもよく、これらのＩ／Ｏデバイスまたはインターフェイスは、たとえば、フラッシュメモリタイプＩ／Ｏデバイス、高性能Ｉ／Ｏデバイス、低性能インターフェイス、デバッギングＩ／Ｏデバイスおよび／またはＲＡＭ  Ｉ／Ｏデバイスを含む。
【００８０】
Ｉ／Ｏサブシステム６５０は、６６０Ａおよび６６０Ｂとして示される１つ以上のフラッシュメモリインターフェイス６６０を含んでもよい。たとえば、フラッシュメモリインターフェイス６６０のうちの１つ以上は、４ビット通信用に構成されたクワッド・シリアル・ペリフェラル・インターフェイス（ＱＳＰＩ）として実現可能である。フラッシュメモリインターフェイス６６０のうちの１つ以上は、パラレル８ビットＮＯＲ／ＳＲＡＭタイプのインターフェイスとして実現可能である。フラッシュメモリインターフェイス６６０のうちの１つ以上は、８ビットおよび／または１６ビット通信用に構成されたＮＡＮＤインターフェイスとして実現可能である。記載されている特定のインターフェイスは、例示の目的で提供されており、限定の目的で提供されているわけではない、ということが理解されるべきである。さまざまなビット幅を有する他のインターフェイスも使用することができる。
【００８１】
Ｉ／Ｏサブシステム６５０は、フラッシュメモリインターフェイス６６０よりも高水準の性能を提供する１つ以上のインターフェイス６６２を含み得る。インターフェイス６６２Ａ〜６６２Ｃの各々は、それぞれＤＭＡコントローラ６６４Ａ〜６６４Ｃに結合可能である。たとえば、インターフェイス６６２のうちの１つ以上は、ユニバーサルシリアルバス（ＵＳＢ）タイプのインターフェイスとして実現可能である。インターフェイス６６２のうちの１つ以上は、ギガビットイーサネット（登録商標）タイプのインターフェイスとして実現可能である。インターフェイス６６２のうちの１つ以上は、セキュアデジタル（ＳＤ）タイプのインターフェイスとして実現可能である。
【００８２】
Ｉ／Ｏサブシステム６５０は、インターフェイス６６２よりも低水準の性能を提供するインターフェイス６６６Ａ〜６６６Ｄなどの１つ以上のインターフェイス６６６も含んでもよい。たとえば、インターフェイス６６６のうちの１つ以上は、汎用Ｉ／Ｏ（ＧＰＩＯ）タイプのインターフェイスとして実現可能である。インターフェイス６６６のうちの１つ以上は、汎用非同期式送受信機（ＵＡＲＴ）タイプのインターフェイスとして実現可能である。インターフェイス６６６のうちの１つ以上は、シリアルペリフェラルインターフェイス（ＳＰＩ）バスタイプのインターフェイスの形式で実現可能である。インターフェイス６６６のうちの１つ以上は、コントローラエリアネットワーク（ＣＡＮ）タイプのインターフェイスおよび／またはinter-integrated circuit（Ｉ２Ｃ）タイプのインターフェイスの形式で実現可能である。また、インターフェイス６６６のうちの１つ以上は、タイマタイプのインターフェイスの形式で実現可能である。Ｉ／Ｏサブシステム６５０は、上記のデバッグポート１２０を含み得る。
【００８３】
示されるように、インターフェイス６６０，６６２，６６６の各々およびデバッグポート１２０は、マルチプレクサ６７０に結合可能である。マルチプレクサ６７０は、プログラマブルＩＣ６０２の外部ピン、たとえばプログラマブルＩＣ６０２が配置されるパッケージのボール、に直接ルーティングまたは結合され得る複数の出力を提供する。たとえば、プログラマブルＩＣ６０２のＩ／Ｏピンは、インターフェイス６６０，６６２，６６６およびデバッグポート１２０の間で共有することができる。ユーザは、インターフェイス６６０〜６６６およびデバッグポート１２０のうちのどれが使用されるか、したがってマルチプレクサ６７０を介してプログラマブルＩＣ６０２のＩ／Ｏピンに結合されるかを選択するように、構成データストリームを介してマルチプレクサ６７０を構成することができる。Ｉ／Ｏサブシステム６５０は、インターフェイス６６０〜６６６をプログラマブルロジックサブシステムのプログラマブル論理回路に接続するためのファブリックマルチプレクサＩ／Ｏ（ＦＭＩＯ）インターフェイス（図示せず）も含んでもよい。さらにまたは代替的に、プログラマブルロジックサブシステム６３０は、プログラマブルロジック内に１つ以上のＩ／Ｏ回路を実装するように構成可能である。いくつかの実現例では、プログラマブルＩＣ６０２は、電力および／または安全性管理のためのさまざまな回路を有するサブシステム６４０も含んでもよい。たとえば、サブシステム６４０は、プログラマブルＩＣ６０２のさまざまなサブシステムに電力を供給するために使用される１つ以上の電圧ドメインをモニタリングして維持するように構成された電力管理ユニット６４６を含んでもよい。いくつかの実現例では、電力管理ユニット６４６は、使用時にサブシステムへの電力を無効にすることなく電力消費量を減らすために、アイドル状態にあるときに個々のサブシステムの電力を無効にしてもよい。電力／プラットフォームマネージャのためのデバッグインターフェイスは、メモリオペレーションコードを介してデバッグパケットコントローラによって直接アクセスすることができる。これにより、ユーザは、プラットフォーム管理コントローラ上で実行されるファームウェア／コードをデバッグすることができる。
【００８４】
サブシステム６４０は、サブシステムのステータスをモニタリングして正確なオペレーションを保証するための安全回路も含んでもよい。たとえば、サブシステム６４０は、さまざまなサブシステムのステータス（たとえば、ステータスレジスタ６４４に表示される）をモニタリングするように構成された１つ以上のリアルタイムプロセッサ６４２を含んでもよい。リアルタイムプロセッサ６４２は、エラーの検出に応答していくつかのタスクを実行するように構成されてもよい。たとえば、いくつかのエラーについて、リアルタイムプロセッサ６４２は、エラーの検出に応答して警告を生成してもよい。別の例として、リアルタイムプロセッサ６４２は、サブシステムを正確なオペレーションに復元しようと試みるようにサブシステムをリセットしてもよい。サブシステム６４０は、さまざまなサブシステムを相互接続するのに使用され得るスイッチネットワーク６４８を含む。たとえば、スイッチネットワーク６４８は、さまざまなサブシステム６１０，６３０および６４０をＩ／Ｏサブシステム６５０のさまざまなインターフェイスに接続するように構成されてもよい。また、いくつかの適用例では、スイッチネットワーク６４８は、モニタリング対象のサブシステムからリアルタイムプロセッサ６４２を分離するのに使用されてもよい。このような分離は、他のサブシステムで発生するエラーによってリアルタイムプロセッサ６４２が影響を受けないことを確実にするために、特定のアプリケーション規格（たとえば、ＩＥＣ−６１５０８  ＳＩＬ３またはＩＳＯ−２６２６２規格）によって要求され得る。
【００８５】
一例において、回路構成が提供される。このような回路構成は、システム・オン・チップ（ＳｏＣ）上に配置され、複数のストリーミングデバッグパケットを受信して格納するように構成された１つ以上の入力バッファと、上記ＳｏＣ上に配置された１つ以上の応答バッファと、上記ＳｏＣ上に配置され、上記１つ以上の入力バッファおよび上記１つ以上の応答バッファに結合されたトランザクション制御回路とを含んでもよく、上記トランザクション制御回路は、上記１つ以上の入力バッファにおける各デバッグパケットを処理するように構成されてもよく、上記処理は、上記デバッグパケットにおけるオペレーションコードを復号し、上記ＳｏＣ上の複数のサブシステムのうちのあるサブシステムにおける記憶回路にアクセスするための複数のインターフェイス回路のうちのあるインターフェイス回路を、上記デバッグパケットにおけるアドレスから判断し、上記オペレーションコードに従って上記記憶回路にアクセスするための要求を上記インターフェイス回路を介して発行し、上記複数のインターフェイス回路から受信した応答およびデータを上記１つ以上の応答バッファに格納する、ことによってなされる。
【００８６】
このような回路構成では、上記トランザクション制御回路はさらに、第１のモードにおいて、入力デバッグパケットに応答して、上記１つ以上の入力バッファにおいてスペースが上記入力デバッグパケットで利用可能であるか否かを判断し、スペースが利用可能であると判断したことに応答して、上記入力デバッグパケットを上記１つ以上の入力バッファのうちの１つに格納し、第２のモードにおいて、上記入力バッファにおけるデバッグパケットについて、上記デバッグパケットにおける上記オペレーションコードを復号することと、上記インターフェイス回路を判断することと、上記要求を発行することとを複数回繰り返すように構成されてもよい。
【００８７】
いくつかのこのような回路構成では、上記デバッグパケットは、複数のオペレーションコードを含んでもよく、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記複数のオペレーションコードのうちの各オペレーションコードについて、上記オペレーションコードを復号することと、上記インターフェイス回路を判断することと、上記要求を発行することとを繰り返すように構成されてもよい。
【００８８】
いくつかのこのような回路構成では、上記トランザクション制御回路は、条件レジスタを含んでもよく、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および上記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、上記記憶回路からデータ値を読み取るための読取要求を発行し、上記データ値および上記マスク値をオペランドとして使用して論理関数を実行するように構成されてもよく、上記論理関数は、結果値を生成し、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および上記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、上記結果値と上記比較値とを比較し、上記結果値が上記比較値に等しいことに応答して、上記条件レジスタを第１の値に設定し、上記結果値が上記比較値に等しくないことに応答して、上記条件レジスタを第２の値に設定するように構成されてもよい。
【００８９】
いくつかのこのような回路構成では、上記トランザクション制御回路は、条件レジスタを含んでもよく、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および上記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、上記条件レジスタからデータ値を読み取り、上記データ値および上記マスク値をオペランドとして使用して論理関数を実行するように構成されてもよく、上記論理関数は、結果値を生成し、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および上記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、上記結果値と上記比較値とを比較し、上記結果値が上記比較値に等しいことに応答して、上記条件レジスタを第１の値に設定し、上記結果値が上記比較値に等しくないことに応答して、上記条件レジスタを第２の値に設定するように構成されてもよい。
【００９０】
いくつかのこのような回路構成では、上記デバッグパケットは、複数のオペレーションコードを含んでもよく、上記オペレーションコードのうちの１つは、スキップオペレーションコードであり、上記トランザクション制御回路は、条件レジスタを含み、上記トランザクション制御回路はさらに、上記スキップオペレーションコードを復号したこと、および、上記条件レジスタにおける値が、上記デバッグパケットにおける上記スキップオペレーションコードに関連付けられた条件値に等しいことに応答して、上記デバッグパケットにおける上記スキップオペレーションコードに続く１つ以上のオペレーションコードの処理をバイパスするように構成されてもよい。
【００９１】
いくつかのこのような回路構成では、上記トランザクション制御回路はさらに、上記インターフェイス回路を判断する際に、上記デバッグパケットにおける上記アドレスが、上記ＳｏＣ上のプロセッササブシステムの記憶回路を参照するか、上記ＳｏＣ上のプログラマブルロジックサブシステムの記憶回路を参照するか、上記ＳｏＣ上の数値演算エンジン回路の記憶回路を参照するかを判断するように構成されてもよい。
【００９２】
いくつかのこのような回路構成は、上記トランザクション制御回路に結合され、上記１つ以上の応答バッファに結合され、上記複数のストリーミングデバッグパケットを受信するように結合された出力選択回路と、上記ＳｏＣ上に配置され、上記トランザクション制御回路に結合され、上記１つ以上の入力バッファへの格納の前に上記複数のストリーミングデバッグパケットを受信するように結合されたデコーダ回路とをさらに含んでもよく、上記デコーダ回路は、各デバッグパケットにおけるターゲット識別子と上記ＳｏＣのＳｏＣ識別子とを比較し、上記ターゲット識別子が上記デバッグパケットのうちの１つにおける上記ＳｏＣ識別子に等しくないことに応答して、上記トランザクション制御回路に信号を送るように構成されてもよく、上記トランザクション制御回路はさらに、上記１つ以上の入力バッファへの上記デバッグパケットのうちの上記１つの格納をバイパスし、上記ターゲット識別子が上記ＳｏＣ識別子に等しくないことを示す上記信号に応答して、出力のために上記デバッグパケットのうちの上記１つを選択するように出力選択回路を制御するように構成されてもよい。
【００９３】
別の例において、システム・オン・チップ（ＳｏＣ）が提供されてもよい。このようなＳｏＣは、集積回路（ＩＣ）ダイと、上記ＩＣダイ上に配置された複数の回路サブシステムと、上記複数の回路サブシステムにおける記憶回路にアクセスするように構成された複数のインターフェイス回路と、上記ＩＣダイ上に配置され、上記複数のインターフェイス回路に結合されたデバッグ回路とを含んでもよく、上記デバッグ回路は、複数のストリーミングデバッグパケットを受信して格納するように構成された１つ以上の入力バッファと、１つ以上の応答バッファと、上記１つ以上の入力バッファおよび上記１つ以上の応答バッファに結合されたトランザクション制御回路とを含み、上記トランザクション制御回路は、上記１つ以上の入力バッファにおける各デバッグパケットを処理するように構成されてもよく、上記処理は、上記デバッグパケットにおけるオペレーションコードを復号し、上記複数の回路サブシステムのうちの１つにおける１つ以上の記憶回路にアクセスするための上記複数のインターフェイス回路のうちの１つのインターフェイス回路を、上記デバッグパケットにおけるアドレスから判断し、上記オペレーションコードに従って上記１つ以上の記憶回路にアクセスするための要求を上記１つのインターフェイス回路を介して発行し、上記複数のインターフェイス回路から受信した応答およびデータを上記１つ以上の応答バッファに格納する、ことによってなされる。
【００９４】
いくつかのこのようなＳｏＣでは、上記トランザクション制御回路はさらに、第１のモードにおいて、入力デバッグパケットに応答して、上記１つ以上の入力バッファにおいてスペースが上記入力デバッグパケットで利用可能であるか否かを判断し、スペースが利用可能であると判断したことに応答して、上記入力デバッグパケットを上記１つ以上の入力バッファのうちの１つに格納し、第２のモードにおいて、上記入力バッファにおけるデバッグパケットについて、上記デバッグパケットにおける上記オペレーションコードを復号することと、上記インターフェイス回路を判断することと、上記要求を発行することとを複数回繰り返すように構成されてもよい。
【００９５】
いくつかのこのようなＳｏＣでは、上記デバッグパケットは、複数のオペレーションコードを含んでもよく、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記複数のオペレーションコードのうちの各オペレーションコードについて、上記オペレーションコードを復号することと、上記インターフェイス回路を判断することと、上記要求を発行することとを繰り返すように構成されてもよい。
【００９６】
いくつかのこのようなＳｏＣでは、上記トランザクション制御回路は、条件レジスタを含んでもよく、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および上記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、上記記憶回路からデータ値を読み取るための読取要求を発行し、上記データ値および上記マスク値をオペランドとして使用して論理関数を実行するように構成されてもよく、上記論理関数は、結果値を生成し、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および上記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、上記結果値と上記比較値とを比較し、上記結果値が上記比較値に等しいことに応答して、上記条件レジスタを第１の値に設定し、上記結果値が上記比較値に等しくないことに応答して、上記条件レジスタを第２の値に設定するように構成されてもよい。
【００９７】
いくつかのこのようなＳｏＣでは、上記トランザクション制御回路は、条件レジスタを含んでもよく、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および上記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、上記条件レジスタからデータ値を読み取り、上記データ値および上記マスク値をオペランドとして使用して論理関数を実行するように構成されてもよく、上記論理関数は、結果値を生成し、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および上記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、上記結果値と上記比較値とを比較し、上記結果値が上記比較値に等しいことに応答して、上記条件レジスタを第１の値に設定し、上記結果値が上記比較値に等しくないことに応答して、上記条件レジスタを第２の値に設定するように構成されてもよい。
【００９８】
いくつかのこのようなＳｏＣでは、上記デバッグパケットは、複数のオペレーションコードを含んでもよく、上記オペレーションコードのうちの１つは、スキップオペレーションコードであり、上記トランザクション制御回路は、条件レジスタを含み、上記トランザクション制御回路はさらに、上記スキップオペレーションコードを復号したこと、および、上記条件レジスタにおける値が、上記デバッグパケットにおける上記スキップオペレーションコードに関連付けられた条件値に等しいことに応答して、上記デバッグパケットにおける上記スキップオペレーションコードに続く１つ以上のオペレーションコードの処理をバイパスするように構成されてもよい。
【００９９】
いくつかのこのようなＳｏＣでは、上記トランザクション制御回路はさらに、上記インターフェイス回路を判断する際に、上記デバッグパケットにおける上記アドレスが、上記ＳｏＣ上のプロセッササブシステムの記憶回路を参照するか、上記ＳｏＣ上のプログラマブルロジックサブシステムの記憶回路を参照するか、上記ＳｏＣ上の数値演算エンジン回路の記憶回路を参照するかを判断するように構成されてもよい。
【０１００】
いくつかのこのようなＳｏＣは、上記トランザクション制御回路に結合され、上記１つ以上の応答バッファに結合され、上記複数のストリーミングデバッグパケットを受信するように結合された出力選択回路と、上記ＳｏＣ上に配置され、上記トランザクション制御回路に結合され、上記１つ以上の入力バッファへの格納の前に上記複数のストリーミングデバッグパケットを受信するように結合されたデコーダ回路とをさらに含んでもよく、上記デコーダ回路は、各デバッグパケットにおけるターゲット識別子と上記ＳｏＣのＳｏＣ識別子とを比較し、上記ターゲット識別子が上記デバッグパケットのうちの１つにおける上記ＳｏＣ識別子に等しくないことに応答して、上記トランザクション制御回路に信号を送るように構成されてもよく、上記トランザクション制御回路はさらに、上記１つ以上の入力バッファへの上記デバッグパケットのうちの上記１つの格納をバイパスし、上記ターゲット識別子が上記ＳｏＣ識別子に等しくないことを示す上記信号に応答して、出力のために上記デバッグパケットのうちの上記１つを選択するように出力選択回路を制御するように構成されてもよい。
【０１０１】
別の例において、方法が提供されてもよい。このような方法は、複数のストリーミングデバッグパケットを受信して、システム・オン・チップ（ＳｏＣ）上に配置された１つ以上の入力バッファに格納するステップと、上記ＳｏＣ上に配置されたトランザクション制御回路によって上記１つ以上の入力バッファにおける各デバッグパケットを処理するステップとを含んでもよく、上記処理するステップは、上記デバッグパケットにおけるオペレーションコードを復号するステップと、上記ＳｏＣ上に配置された複数の回路サブシステムのうちの１つにおける１つ以上の記憶回路にアクセスするための、上記ＳｏＣ上に配置された複数のインターフェイス回路のうちの１つのインターフェイス回路を、上記デバッグパケットにおけるアドレスから判断するステップと、上記オペレーションコードに従って上記１つ以上の記憶回路にアクセスするための要求を上記１つのインターフェイス回路を介して発行するステップと、上記複数のインターフェイス回路から受信した応答およびデータを、上記ＳｏＣ上に配置された１つ以上の応答バッファに格納するステップとを含む。
【０１０２】
いくつかのこのような方法は、第１のモードにおいて、入力デバッグパケットに応答して、上記１つ以上の入力バッファにおいてスペースが上記入力デバッグパケットで利用可能であるか否かを判断するステップと、スペースが利用可能であると判断したことに応答して、上記入力デバッグパケットを上記１つ以上の入力バッファのうちの１つに格納するステップと、第２のモードにおいて、上記入力バッファにおけるデバッグパケットについて、上記デバッグパケットにおける上記オペレーションコードを復号するステップと、上記インターフェイス回路を判断するステップと、上記要求を発行するステップとを複数回繰り返すステップとをさらに含んでもよい。
【０１０３】
いくつかのこのような方法では、上記デバッグパケットは、複数のオペレーションコードを含んでもよく、上記方法はさらに、上記デバッグパケットにおける上記複数のオペレーションコードのうちの各オペレーションコードについて、上記オペレーションコードを復号するステップと、上記インターフェイス回路を判断するステップと、上記要求を発行するステップとを繰り返すステップを備える。
【０１０４】
いくつかのこのような方法では、上記インターフェイス回路を判断するステップは、上記デバッグパケットにおける上記アドレスが、上記ＳｏＣ上のプロセッササブシステムの記憶回路を参照するか、上記ＳｏＣ上のプログラマブルロジックサブシステムの記憶回路を参照するか、上記ＳｏＣ上の数値演算エンジン回路の記憶回路を参照するかを判断するステップを含んでもよい。
【０１０５】
局面および特徴が個々の図面に記載されている場合もあるが、１つの図面の特徴は別の図面の特徴と組み合わせることができ、これは、たとえ明確に図示されていなくても、または組み合わせとして明確に説明されていなくても、可能である、ということが理解されるであろう。
【０１０６】
開示されている回路および方法は、ＳｏＣをデバッグするためのさまざまなシステムに適用可能であると考えられる。他の局面および特徴は、明細書を検討すると当業者に明らかであろう。これらの回路および方法は、ソフトウェアを実行するように構成された１つ以上のプロセッサとして実現されてもよく、特定用途向け集積回路（ＡＳＩＣ）として実現されてもよく、またはプログラマブルロジックデバイス上のロジックとして実現されてもよい。明細書および図面は単なる例と見なされるよう意図されており、本発明の真の範囲は以下の特許請求の範囲によって示される。
【図１】
2021531530.tif 000003
【図２】
2021531530.tif 000004
【図３】
2021531530.tif 000005
【図４】
2021531530.tif 000006
【図５】
2021531530.tif 000007
【図６】
2021531530.tif 000008
【手続補正書】
【提出日】令和1年9月16日(2019.9.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
回路構成であって、
システム・オン・チップ（ＳｏＣ）上に配置され、複数のストリーミングデバッグパケットを受信して格納するように構成された１つ以上の入力バッファと、
前記ＳｏＣ上に配置された１つ以上の応答バッファと、
前記ＳｏＣ上に配置され、前記１つ以上の入力バッファおよび前記１つ以上の応答バッファに結合されたトランザクション制御回路とを備え、前記トランザクション制御回路は、前記１つ以上の入力バッファにおける各デバッグパケットを処理するように構成され、前記処理は、
第１のモードにおいて、
入力デバッグパケットに応答して、前記１つ以上の入力バッファにおいてスペースが前記入力デバッグパケットで利用可能であるか否かを判断し、
スペースが利用可能であると判断したことに応答して、前記入力デバッグパケットを前記１つ以上の入力バッファのうちの１つに格納し、
前記デバッグパケットにおけるオペレーションコードを復号し、
前記ＳｏＣ上の複数のサブシステムのうちのあるサブシステムにおける記憶回路にアクセスするための複数のインターフェイス回路のうちのあるインターフェイス回路を、前記デバッグパケットにおけるアドレスから判断し、
前記オペレーションコードに従って前記記憶回路にアクセスするための要求を前記インターフェイス回路を介して発行し、
第２のモードにおいて、
前記入力バッファにおけるデバッグパケットについて、前記デバッグパケットにおける前記オペレーションコードを復号することと、前記インターフェイス回路を判断することと、前記要求を発行することとを複数回繰り返し、
前記複数のインターフェイス回路から受信した応答およびデータを前記１つ以上の応答バッファに格納する、ことによってなされる、回路構成。
【請求項２】
前記デバッグパケットは、複数のオペレーションコードを含み、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記複数のオペレーションコードのうちの各オペレーションコードについて、前記オペレーションコードを復号することと、前記インターフェイス回路を判断することと、前記要求を発行することとを繰り返すように構成される、請求項１に記載の回路構成。
【請求項３】
前記トランザクション制御回路は、条件レジスタを含み、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および前記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、
前記記憶回路からデータ値を読み取るための読取要求を発行し、
前記データ値および前記マスク値をオペランドとして使用して論理関数を実行するように構成され、前記論理関数は、結果値を生成し、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および前記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、
前記結果値と前記比較値とを比較し、
前記結果値が前記比較値に等しいことに応答して、前記条件レジスタを第１の値に設定し、
前記結果値が前記比較値に等しくないことに応答して、前記条件レジスタを第２の値に設定するように構成される、請求項１〜２のいずれか１項に記載の回路構成。
【請求項４】
前記トランザクション制御回路は、条件レジスタを含み、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および前記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、
前記条件レジスタからデータ値を読み取り、
前記データ値および前記マスク値をオペランドとして使用して論理関数を実行するように構成され、前記論理関数は、結果値を生成し、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および前記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、
前記結果値と前記比較値とを比較し、
前記結果値が前記比較値に等しいことに応答して、前記条件レジスタを第１の値に設定し、
前記結果値が前記比較値に等しくないことに応答して、前記条件レジスタを第２の値に設定するように構成される、請求項１〜２のいずれか１項に記載の回路構成。
【請求項５】
前記デバッグパケットは、複数のオペレーションコードを含み、前記オペレーションコードのうちの１つは、スキップオペレーションコードであり、前記トランザクション制御回路は、条件レジスタを含み、前記トランザクション制御回路はさらに、
前記スキップオペレーションコードを復号したこと、および、前記条件レジスタにおける値が、前記デバッグパケットにおける前記スキップオペレーションコードに関連付けられた条件値に等しいことに応答して、前記デバッグパケットにおける前記スキップオペレーションコードに続く１つ以上のオペレーションコードの処理をバイパスするように構成される、請求項１〜４のいずれか１項に記載の回路構成。
【請求項６】
前記トランザクション制御回路はさらに、前記インターフェイス回路を判断する際に、前記デバッグパケットにおける前記アドレスが、前記ＳｏＣ上のプロセッササブシステムの記憶回路を参照するか、前記ＳｏＣ上のプログラマブルロジックサブシステムの記憶回路を参照するか、前記ＳｏＣ上の数値演算エンジン回路の記憶回路を参照するかを判断するように構成される、請求項１〜５のいずれか１項に記載の回路構成。
【請求項７】
前記トランザクション制御回路に結合され、前記１つ以上の応答バッファに結合され、前記複数のストリーミングデバッグパケットを受信するように結合された出力選択回路と、
前記ＳｏＣ上に配置され、前記トランザクション制御回路に結合され、前記１つ以上の入力バッファへの格納の前に前記複数のストリーミングデバッグパケットを受信するように結合されたデコーダ回路とをさらに備え、前記デコーダ回路は、
各デバッグパケットにおけるターゲット識別子と前記ＳｏＣのＳｏＣ識別子とを比較し、
前記ターゲット識別子が前記デバッグパケットのうちの１つにおける前記ＳｏＣ識別子に等しくないことに応答して、前記トランザクション制御回路に信号を送るように構成され、
前記トランザクション制御回路はさらに、前記１つ以上の入力バッファへの前記デバッグパケットのうちの前記１つの格納をバイパスし、前記ターゲット識別子が前記ＳｏＣ識別子に等しくないことを示す前記信号に応答して、出力のために前記デバッグパケットのうちの前記１つを選択するように出力選択回路を制御するように構成される、請求項１〜６のいずれか１項に記載の回路構成。
【請求項８】
方法であって、
複数のストリーミングデバッグパケットを受信して、システム・オン・チップ（ＳｏＣ）上に配置された１つ以上の入力バッファに格納するステップと、
前記ＳｏＣ上に配置されたトランザクション制御回路によって前記１つ以上の入力バッファにおける各デバッグパケットを処理するステップとを備え、前記処理するステップは、
前記デバッグパケットにおけるオペレーションコードを復号するステップと、
前記ＳｏＣ上に配置された複数の回路サブシステムのうちの１つにおける１つ以上の記憶回路にアクセスするための、前記ＳｏＣ上に配置された複数のインターフェイス回路のうちの１つのインターフェイス回路を、前記デバッグパケットにおけるアドレスから判断するステップと、
前記オペレーションコードに従って前記１つ以上の記憶回路にアクセスするための要求を前記１つのインターフェイス回路を介して発行するステップと、
前記複数のインターフェイス回路から受信した応答およびデータを、前記ＳｏＣ上に配置された１つ以上の応答バッファに格納するステップと、
第１のモードにおいて、
入力デバッグパケットに応答して、前記１つ以上の入力バッファにおいてスペースが前記入力デバッグパケットで利用可能であるか否かを判断するステップと、
スペースが利用可能であると判断したことに応答して、前記入力デバッグパケットを前記１つ以上の入力バッファのうちの１つに格納するステップと、
第２のモードにおいて、
前記入力バッファにおけるデバッグパケットについて、前記デバッグパケットにおける前記オペレーションコードを復号するステップと、前記インターフェイス回路を判断するステップと、前記要求を発行するステップとを複数回繰り返すステップとを含む、方法。
【請求項９】
前記デバッグパケットは、複数のオペレーションコードを含み、前記方法はさらに、前記デバッグパケットにおける前記複数のオペレーションコードのうちの各オペレーションコードについて、前記オペレーションコードを復号するステップと、前記インターフェイス回路を判断するステップと、前記要求を発行するステップとを繰り返すステップを備える、請求項８に記載の方法。
【請求項１０】
前記インターフェイス回路を判断するステップは、前記デバッグパケットにおける前記アドレスが、前記ＳｏＣ上のプロセッササブシステムの記憶回路を参照するか、前記ＳｏＣ上のプログラマブルロジックサブシステムの記憶回路を参照するか、前記ＳｏＣ上の数値演算エンジン回路の記憶回路を参照するかを判断するステップを含む、請求項８〜９のいずれか１項に記載の方法。
【国際調査報告】
2021531530.tif 000009
2021531530.tif 000010
2021531530.tif 000011