JP2021531530A - デバッグコントローラ回路 - Google Patents

デバッグコントローラ回路 Download PDF

Info

Publication number
JP2021531530A
JP2021531530A JP2020554197A JP2020554197A JP2021531530A JP 2021531530 A JP2021531530 A JP 2021531530A JP 2020554197 A JP2020554197 A JP 2020554197A JP 2020554197 A JP2020554197 A JP 2020554197A JP 2021531530 A JP2021531530 A JP 2021531530A
Authority
JP
Japan
Prior art keywords
debug
circuit
packet
soc
operation code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020554197A
Other languages
English (en)
Other versions
JP7247213B2 (ja
Inventor
アンサリ,アーマド・アール
バートン,フェリックス
チェン,ミン−ドン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xilinx Inc filed Critical Xilinx Inc
Publication of JP2021531530A publication Critical patent/JP2021531530A/ja
Application granted granted Critical
Publication of JP7247213B2 publication Critical patent/JP7247213B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2733Test interface between tester and unit under test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

回路構成は、システム・オン・チップ(SoC)(102)上に配置され、ストリーミングデバッグパケットを受信して格納するように構成された1つ以上の入力バッファ(312,314,...,316)を含む。1つ以上の応答バッファ(328,330,...,332)も、SoC上に配置される。トランザクション制御回路(318)は、SoC上に配置され、1つ以上の入力バッファにおける各デバッグパケットを処理するように構成される。上記処理は、デバッグパケットにおけるオペレーションコードを復号することと、SoC上の複数のサブシステムのうちのあるサブシステムにおける記憶回路にアクセスするための複数のインターフェイス回路のうちのあるインターフェイス回路を、デバッグパケットにおけるアドレスから判断することとを含む。上記処理はさらに、オペレーションコードに従って記憶回路にアクセスするための要求をインターフェイス回路を介して発行することと、インターフェイス回路から受信した応答およびデータを1つ以上の応答バッファに格納することとを含む。

Description

技術分野
本開示は、一般に、システム・オン・チップ(SoC)のデバッギングおよびトレース回路に関する。
背景
多くの集積回路は、回路動作の検証およびテストを支援するためのスキャン回路を利用する。スキャン回路の一例は、ジョイント・テスト・アクション・グループ(JTAG)によって開発されてIEEE規格1149としてまとめ上げられたスタンダードテストアクセスポートおよびバウンダリスキャンアーキテクチャである。スキャンテスト回路は、システム・オン・チップデバイス(SoC)において利用することができる。
複合SoCは、複数のプロセッサコアを有するプロセッササブシステム、オンチップSRAMおよび/またはDRAMを提供するメモリサブシステム、ならびに、フィールドプログラマブルゲートアレイ(FPGA)などの回路を有するプログラマブルロジックサブシステムなどの複数のサブシステムを含み得る。また、SoCは、プロセッサまたはSoCのプログラマブルロジック内に実装された回路上で実行されるソフトウェアによって指示される通りに特定の数学関数を実行するのに使用することができるハードワイヤードロジックも含み得る。
SoC上で実現されるシステムをテストすることは、SoCとホストコンピュータシステム上で実行されるデバッガシステムなどのテストコントローラとの間で大量のデータを転送することを含み得る。デバッガシステムは、SoCのさまざまなサブシステム内の記憶回路との間でデータを読み書きすることができる。現行のシステムでは、デバッグステップは、ホストコンピュータ上のデバッガシステムから一つずつ順番に実行される。デバッグステップを順番に実行することに関わる高レイテンシは、JTAGインターフェイス回路が動作するクロックレートが比較的ゆっくりであること(たとえば、100MHz未満)とともに、テストに必要な時間を延ばすおそれがある。
概要
回路構成は、システム・オン・チップ(SoC)上に配置され、複数のストリーミングデバッグパケットを受信して格納するように構成された1つ以上の入力バッファを含む。1つ以上の応答バッファも、上記SoC上に配置される。トランザクション制御回路は、上記SoC上に配置され、上記1つ以上の入力バッファおよび上記1つ以上の応答バッファに結合される。上記トランザクション制御回路は、上記1つ以上の入力バッファにおける各デバッグパケットを処理するように構成される。上記処理は、上記デバッグパケットにおけるオペレーションコードを復号することと、上記SoC上の複数のサブシステムのうちのあるサブシステムにおける記憶回路にアクセスするための複数のインターフェイス回路のうちのあるインターフェイス回路を、上記デバッグパケットにおけるアドレスから判断することとを含む。上記処理はさらに、上記オペレーションコードに従って上記記憶回路にアクセスするための要求を上記インターフェイス回路を介して発行することと、上記複数のインターフェイス回路から受信した応答およびデータを上記1つ以上の応答バッファに格納することとを含む。
システム・オン・チップ(SoC)は、集積回路(IC)ダイと、上記ICダイ上に配置された複数の回路サブシステムと、上記複数の回路サブシステムにおける記憶回路にアクセスするように構成された複数のインターフェイス回路と、上記ICダイ上に配置され、上記複数のインターフェイス回路に結合されたデバッグ回路とを含む。上記デバッグ回路は、複数のストリーミングデバッグパケットを受信して格納するように構成された1つ以上の入力バッファと、1つ以上の応答バッファとを含む。トランザクション制御回路は、上記1つ以上の入力バッファおよび上記1つ以上の応答バッファに結合される。上記トランザクション制御回路は、上記1つ以上の入力バッファにおける各デバッグパケットを処理するように構成される。上記処理は、上記デバッグパケットにおけるオペレーションコードを復号することと、上記SoC上の複数のサブシステムのうちのあるサブシステムにおける記憶回路にアクセスするための複数のインターフェイス回路のうちのあるインターフェイス回路を、上記デバッグパケットにおけるアドレスから判断することとを含む。上記処理はさらに、上記オペレーションコードに従って上記記憶回路にアクセスするための要求を上記インターフェイス回路を介して発行することと、上記複数のインターフェイス回路から受信した応答およびデータを上記1つ以上の応答バッファに格納することとを含む。
方法は、複数のストリーミングデバッグパケットを受信して、システム・オン・チップ(SoC)上に配置された1つ以上の入力バッファに格納するステップを含む。上記1つ以上の入力バッファにおける各デバッグパケットは、上記SoC上に配置されたトランザクション制御回路によって処理される。上記処理するステップは、上記デバッグパケットにおけるオペレーションコードを復号するステップと、上記SoC上に配置された複数の回路サブシステムのうちの1つにおける1つ以上の記憶回路にアクセスするための、上記SoC上に配置された複数のインターフェイス回路のうちの1つのインターフェイス回路を、上記デバッグパケットにおけるアドレスから判断するステップとを含む。上記処理するステップはさらに、上記オペレーションコードに従って上記1つ以上の記憶回路にアクセスするための要求を上記1つのインターフェイス回路を介して発行するステップと、上記複数のインターフェイス回路から受信した応答およびデータを、上記SoC上に配置された1つ以上の応答バッファに格納するステップとを含む。
他の特徴は、以下の詳細な説明および特許請求の範囲を検討することにより認識されるであろう。
上記の回路および方法のさまざまな局面および特徴は、以下の詳細な説明を検討するとともに図面を参照すると明らかになるであろう。
デバッガシステムと、アプリケーションのデバッギングをサポートするためのデバッグ回路とともに、アプリケーションソフトウェアおよびアプリケーション回路を実現するためのサブシステムを有するシステム・オン・チップSoCとを示す図である。 SoC、および、SoCのサブシステムとデバッグポートの回路との間の例示的なインターフェイスを示す図である。 SoCのデバッグ回路の例示的な実現例を示す図である。 デバッグパケットコントローラによるデバッグパケットの処理を示すフローチャートである。 複数のSoCにおけるデイジーチェーニングデバッグ回路をサポートするポイント・ツー・ポイント(PTP)デバッグインターフェイスのアプリケーションを示す図である。 開示されている回路に従って構成可能な例示的なプログラマブルICを示す図である。
詳細な説明
以下の説明では、本明細書に記載されている具体例を説明するために多数の具体的な詳細が記載されている。しかし、1つ以上の他の例および/またはこれらの例の変形例は、以下の全ての具体的な詳細がなくても実施できる、ということが当業者に明らかであるべきである。他の例では、本明細書における例の説明を曖昧にしないように、周知の特徴については詳細に説明しなかった。図示を容易にするために、異なる図において同一の参照番号を使用して同一の要素または同一の要素のさらなる実例に言及する。
開示されている回路および方法は、複合SoCからトレースデータを収集して複合SoCをデバッグするための改良されたアプローチを提供する。本明細書における「SoC」は、たとえば積層型シリコンインターポーザ技術を使用して構築されたシステムを含む、パッケージ内のシステムを指すのに使用される。上記のアプローチは、SoCの全てのサブシステムとデバイスに接続されたデバッガシステムとの間の高速データ転送を提供する統一デバッギングインターフェイスを提供する。複数のSoCのデバッグインターフェイスは、デイジーチェーン状に接続できることにより、デバッグデータを構成してこのデバッグデータを複数のデバイスに提供したり複数のデバイスから読み取ったりするための単一の経路を提供する。
例示的な回路では、デバッグパケットコントローラは、SoC上に配置される。デバッグパケットコントローラは、デバッガシステムに接続するための複数の代替インターフェイスに結合可能である。1つの外部インターフェイスは、ザイリンクス社のAurora 64B/66Bインターフェイスなどの、高速シリアル通信のためのスケーラブルで軽量なリンクレイヤプロトコルである。代替的に、デバッグパケットコントローラは、JTAGインターフェイスに接続可能である。JTAGインターフェイスは、デバッグパケットコントローラのイングレスおよびエグレスストリーミングポートに対する直接的なインターフェイスを有するブリッジにおける特定のレジスタにアクセスするように選択的にイネーブルにされることができる。
デバッグパケットコントローラは、1つ以上の入力バッファを含み得る。入力バッファは、ストリーミングデバッグパケット(デバッガシステムから発行されたものなど)を受信して格納する。デバッグパケットコントローラは、デバッガシステムに返されるデバッグまたはトレースデータをバッファリングするための応答バッファをさらに含む。これらの入力バッファおよび応答バッファには、デバッグパケットコントローラのトランザクション制御回路が結合される。トランザクション制御回路は、デバッグパケットにおけるオペレーションコードを復号することによって入力バッファにおける各デバッグパケットを処理するように構成される。トランザクション制御回路は、SoCのサブシステムにおける記憶回路にアクセスするための複数のインターフェイス回路のうちのあるインターフェイス回路を、デバッグパケットにおけるアドレスから判断し、次いで、オペレーションコードに従って記憶回路にアクセスするための要求をインターフェイス回路を介して発行する。トランザクション制御回路は、インターフェイス回路から受信した応答およびデータの、応答バッファへの格納を制御する。
デバッグパケットは、複数のオペレーションコードを含み得る。本明細書における「オペレーションコード」は、デバッグパケットに含まれ得るメインコマンドおよび1つ以上の任意のサブコマンドを指す。各サブコマンドは、複数のフィールドを有し得る。
デバッグパケットにおけるアドレス指定は、SoCの特定の記憶回路を参照し、デイジーチェーン状に接続された特定のSoCも参照することができる。各パケットは、特定のSoCを参照するターゲット識別子を有し得る。特定のSoCを対象とするパケットでは、パケットがこのSoC内の記憶回路にアクセスしようとしている場合、パケットに含まれるサブコマンドの各々には、その記憶素子の場所を参照するアドレスがある。SoCのデイジーチェーニングは、複数のSoCを同時にデバッグすることができる能力をイネーブルにする。
SoCは、プロセッササブシステムと、プログラマブルロジックサブシステムと、ハードワイヤード論理回路とを含み得て、ハードワイヤード論理回路の例は、デジタル信号プロセッサとして実現可能な数値演算エンジン回路を含む。デバッグパケットによってサブシステムの記憶回路をアドレス指定する際、デバッグパケットコントローラは、ターゲットがプロセッササブシステムにおける専用のデバッグサブシステム/インターコネクトであるか、プロセッササブシステムにおける専用のトレースバッファであるか、SoCをブートする前にプログラマブルロジックサブシステムまたはプロセッササブシステムを構成するためのSoC構成インターフェイスであるか、システム内の全てのオペレーショナルレジスタ(プロセッササブシステムレジスタ、プログラマブルロジックサブシステム内に実装されたアプリケーション回路におけるレジスタ、および数値演算エンジン回路におけるレジスタを含む)にアクセスするためのデバイス上のメインSoCスイッチおよびネットワーク・オン・チップ(NoC)であるかを判断する。
図1は、デバッガシステムと、アプリケーションのデバッギングをサポートするためのデバッグ回路とともに、アプリケーションソフトウェアおよびアプリケーション回路を実現するためのサブシステムを有するシステム・オン・チップSoCとを示す図である。SoC102は、複数のサブシステムを有し、これらのサブシステムは、たとえば、1つ以上のプロセッサコアを含み得るプロセッササブシステム106と、プログラマブルロジックおよびプログラマブルインターコネクト回路を含むプログラマブルロジックサブシステム108と、数学関数を実行するハードワイヤード論理回路110とを含む。ハードワイヤード論理回路は、「数値演算エンジン」とも称され得る。ハードワイヤード論理回路は、数値演算エンジンと称されることもあるが、ハードワイヤード論理回路は、デジタル信号処理エンジン、暗号化エンジン、前方誤り訂正(FEC)エンジン、または1つ以上の特殊なタスクを実行するための他の特殊なハードワイヤード回路などの、任意の種類のデータ処理エンジン(DPE)を含み得る。例示的な実現例では、数値演算エンジンは、エンジン間でストリーミングデータを伝送するために複数のスイッチを使用して相互接続可能である。
プロセッササブシステム、プログラマブルロジックサブシステムおよびハードワイヤード論理回路の各々は、それぞれ記憶回路112,114および116を含む。記憶回路は、SRAMもしくはDRAMなどのメモリ、ならびに/または、構成および制御レジスタを含み得る。記憶回路112,114および116は、プロセッササブシステム106上で実行されるソフトウェアとして実現されるアプリケーションによって、プログラマブルロジックサブシステム108内に実装された回路によって、および/または、ハードワイヤード論理回路110によって、アクセス可能である。
プロセッササブシステム上でソフトウェアとして実行されるアプリケーション、および/または、プログラマブルロジックサブシステム上で回路として動作するアプリケーション、および/または、ハードワイヤードロジックにおいて回路として動作するアプリケーションは、アプリケーションポート118を介して、SoCの外側のシステムに対してデータを入出力する。アプリケーションポートは、たとえば、ギガビットトランシーバ、さまざまな規格ベースのまたは独占権下のバスインターフェイスを含み得る。
SoC102は、記憶回路112,114および116へのアクセスをデバッガシステム104に提供することに充てられるデバッグポート120をさらに含む。デバッガシステム104は、SoCがアプリケーションを実行している間にデバッギングおよびトレース機能を実行することができる。また、デバッグポートを介して、デバッガシステムは、プロセッササブシステム106上で実行されるソフトウェアでSoCを構成し、および/または、アプリケーション回路を実現するようにプログラマブルロジックサブシステム108を構成することができる。デバッガシステム上のデバッグインターフェイス122は、デバッグポート120に接続される。例示的な実現例では、デバッグポートとデバッグインターフェイスとは、双対シンプレックスモードで動作するギガビットトランシーバ上のAurora 64B/66Bインターフェイスを使用して通信して、複数のSoCのデイジーチェーニングおよび並列デバッギングをサポートする。
デバッグポート120は、デバッグパケットコントローラ(図2における202)を含む。デバッグパケットコントローラは、SoC102上のさまざまなサブシステムからデータを検索するためにプルモデルを実現する。SoC内のトランザクションのフローは、デバッグパケットコントローラから参照されるリソースまでである。デバッグパケットコントローラにトランザクションのフローを開始させることにより、デバッグ環境においてトレースデータを処理してフロー制御をホストに戻すための設計が簡略化される。トレースデータがデバッグポートによってSoCから押し出されるトレースモードをサポートするために、SoC上の出力バッファ(図示せず)はトレースデータを格納するが、これは、デバッグポートが連続バーストを使用してデータを引き出して、アウトバウンドトレースストリームをエミュレートすることを可能にすることを目的としている。トレースバッファは、プログラマブルロジックサブシステム108、DRAM、プロセッササブシステム106のオンチップメモリ内に実装されてもよく、または複数のトレースソースにわたる統一トレースストリームが望まれる場合にはCoreSightトレースバッファに入れられてもよい。
デバッグポート120は、2つのオペレーションモードをサポートするように構成可能である。「通常デバッグモード」と称され得る1つのモードでは、インバウンドポートもアウトバウンドポートもともに、デバッグおよびトレースインターフェイスとして使用される。各デバッグオペレーションは、デバッガシステム104によって開始され、デバッグポート120を介して実行可能である。「トレースモード」と称され得る第2のモードでは、デバッガシステムは、一組のデバッグパケットを発行し、その後、デバッグポートは、アウトバウンドトレースストリームを提供するために、この一組のデバッグパケットから読取要求を繰り返し生成する。トレースモードは、デバッグパケットにおける「Perpetual」オペレーションコードによって起動することができる。
デバッグポート120は、デバッガシステム104からデバッグパケットを受信する。
Auroraインターフェイスがリンクレイヤインターフェイスとして使用される場合、各デバッグパケットは、Auroraパケットのユーザプロトコルデータユニット(PDU)セクションに組み込まれることができ、デバッグパケットは、ヘッダと、任意のペイロードと、CRCフィールドとを含む。デバッグパケットのヘッダは、将来的な拡張のための予備フィールドと、Target_IDフィールドと、パケットシーケンス番号フィールドと、コマンドオペコードフィールドとを含む。デバッグパケットは、任意のペイロードフィールドおよび巡回冗長検査(CRC)コードも含み得る。
Target_IDフィールドは、デイジーチェーンSoCを含む構成においてターゲットSoCを識別するのに使用される。列挙(Enumeration)中、各SoCは、それ自体のTarget_IDをデイジーチェーン内の次のSoCに渡し、次のSoCは、Target_IDの値をインクリメントして、インクリメントされた値をそのTarget_IDとして使用する。ゼロに等しいTarget_IDは、ホストデバッガシステムのために取っておかれて、通常は、列挙中にホストデバッガシステムからチェーン内の第1のデバイスに渡されるTarget_IDである。さもなければ、ホストは、ターゲットSoCのTarget_IDをデイジーチェーン内の第1のSoCに渡す。ターゲットSoCに送信されるデバッグパケットごとに、同一のTarget_IDを有する応答がデバッガシステムに戻されることが予想される。
シーケンス番号フィールドは、ターゲットSoCに送信されるデバッグパケットを追跡するのに使用される整数を指定する。Target_IDと同様に、ターゲットSoCに送信されるパケットごとに、同一のパケットシーケンス番号を有する応答がデバッガシステムによって予想される。リセットおよびシーケンス取得オペレーションコードを有するデバッグパケットは、同一のシーケンス番号を有する応答を必要としない。誤った順番でパケットがSoCで受信され、このパケットがSoCのデバッグポート120にない場合、そのパケットは削除され、応答は生成されない。応答パケットがデバッガシステムによって受信されない場合、または、応答の送信にエラーがある場合、デバッガシステムは、同一のTarget_IDおよびパケットシーケンス番号を有する同一の要求パケットを再送信することができる。その場合、応答が依然としてデバッグポートにあれば、デバッグポートは応答パケットを再送信する。
CRCフィールドは、どのデバッグパケットでも最後のフィールドであり得る。イングレスパケットのCRCが無効である場合、このパケットはデバッグポートによって削除される。オペコードフィールドは、パケットタイプを指定するか、または、パケットによって実行される主要な動作を識別するのに使用される。オペコードフィールドにおける値は、「オペレーションコード」と称され得る。パケットがデバッグパケットコントローラによって成功裏に処理されると、デバッグコマンドパケットと同一のシーケンス番号を有する応答パケットにおけるオペコードフィールドは、待ち行列に入れられた全てのパケットについてOKステータスを表示し、待ち行列に入れられていないパケットについてはSpecial_OKステータスを表示する。待ち行列に入れられていないデバッグパケットの例は、リセットおよびシーケンス取得オペレーションコードを有するものである。一方、いかなるターゲットSoCによっても処理されないデバッグパケットは、オペコードフィールドを変更しない状態でデバッガシステムによって受信される。
メインオペコードフィールドにおける例示的なオペレーションコードは、列挙(Enumerate)、リセット(Reset)、シーケンス取得(Get-Sequence)およびメモリ(Memory)を含む。メモリオペレーションコードを有するデバッグパケットでは、以下でさらに説明するように1つ以上の特定のアクセスオペレーションを指定することができる。メモリコードのさらなる特定のアクセスオペレーションは、「サブコマンド」とも称され得る。一般に、メインオペコードフィールドにおけるオペレーションコードおよびメモリサブコマンドは全て、オペレーションコードと称され得る。
列挙オペレーションは、Target_IDによって参照されるターゲット識別子をチェーン内のSoCに割り当てるのに使用することができる。列挙オペレーションコードを有するデバッグパケットを受信すると、受信側のSoCは、イングレスパケットにおけるTarget_IDの値をインクリメントして、インクリメントされた値をそれ自体のTarget_IDとして割り当てる。デバッグパケットコントローラは、インクリメントされたTarget_ID値をローカルレジスタ(図示せず)に格納することができる。次に、デバッグパケットコントローラは、インクリメントされたTarget_IDを有するデバッグパケットを次のSoCに送信する。このプロセスは、最後のデバイスのTarget_IDを有するデバッグパケットがデバッガシステムによって受信されるまで繰り返される。Target_IDが255である場合、パケットはそのままで転送され、いかなる動作も取られない。各SoC上のデバッグパケットコントローラは、受信される次のデバッグパケットにおけるシーケンス番号が、列挙デバッグパケットのシーケンス番号+1であると予想する。列挙パケットが受信されたとき、デバッグポートは、リセット状態にあるべきであり、その他のデバッグパケットを処理していないべきである。そうでなければ、どのターゲットデバイスのデバッグポートも、列挙パケットがホストデバッガシステムによって送信される前にリセットされなければならない。列挙パケットが受信されたとき、デバッグポートが既にパケット処理の最中であることも可能である。したがって、列挙パケットコマンドは、システム内の全てのSoCについてデバッグポートをリセットする役割も果たし、列挙パケットを受信すると、出力されているパケットは終了され、パケットバッファポインタはリセットされる。
リセットオペレーションは、ターゲットSoCにおける全ての待ち状態のオペレーションをリセットするのに使用することができる。リセットパケットを受信すると、いずれかのパケットが出力されている場合にはこのパケットは終了され、終了された全ての待ち状態のパケットについて応答が生成されない。さらに、パケットバッファポインタがリセットされる。応答パケットは、Special_Okayコードを使用して、応答パケットを、応答が既に待ち行列に入れられてホストに戻されている同一のシーケンス番号を有する以前に待ち行列に入れられたパケットと取り違えないように、ホストデバッガシステムに信号を送る。
シーケンス取得オペレーションは、Target_ID値によって識別されたSoC上の次のデバッグパケットに対して予想シーケンス番号を提供するのに使用することができる。シーケンス取得パケットのシーケンス番号フィールドは、0であり、デバッグポートによって無視される。次のシーケンス番号は、応答パケットのシーケンス番号フィールドに渡される。シーケンス取得パケットのための応答パケットも、Special_Okayコードを使用して、このパケットを、既に待ち行列に入れられた別のパケットと取り違えないようにホストデバッガシステムに知らせる。
メモリオペレーションコードを有するデバッグパケットは、参照されたメモリアドレスにアクセスする複数のサブコマンドを有し得る。デバッグパケットコントローラは、サブコマンドを復号し、アクセス要求が発行されるべきであるインターフェイス回路を判断し、このアクセス要求を発行する。デバッグパケットにおけるアドレスは、プロセッササブシステム106の記憶回路112、プログラマブルロジックサブシステム108の記憶回路114、またはハードワイヤード論理回路110の記憶回路116を参照することができる。
メモリコマンドパケットは、パケットのペイロードセクションに指定されてデバッグパケットコントローラによって実行される1つ以上のデータ転送オペレーションを含み得る。全てのデバッグおよびトレースデータは、ホストデバッガシステムによって生成されるメモリデバッグパケットに応答して、ターゲットSoCからホストデバッガシステムに転送される。パケットのペイロードセクションに指定されるメモリオペレーションは、SoC102のアドレス空間内の任意のアドレスへの単一のトランザクション、バーストトランザクション、またはストリーム(FIFO)トランザクションであってもよい。メモリアクセスデバッグパケットに含まれる全てのメモリオペレーションは、集合的に、パケットのヘッダに指定される単一のシーケンス番号を担持する。デバッグパケットコントローラは、各メモリデバッグパケットについて、ホストデバッガシステムに戻される1つの応答を生成する。再試行(Retry)オペレーションは、メモリオペレーションの集合体に対応するパケットレベルで実行される。メモリパケットの再試行オペレーションは、メモリサブコマンドをSoC上で実行させることはない。再試行オペレーションは、応答パケットがアウトバウンドバッファ内に存在する場合に応答パケットをホストデバッガシステムに再送信することをデバッグパケットコントローラにさせる。パケットがインプリメンテーションと矛盾する場合、応答パケットにおけるオペコードは、OKまたは無効なステータスを表示する。
メモリデバッグパケットに含まれ得るさまざまなサブコマンドは、Read_Mem_Op、Write_Mem_Op、Stream_Mem_Op、Perpetual、TestMem_Mem_Op、TestCond_Mem_Op、GetCond_Mem_Op、Skiplf_Mem_Opを含む。Read_Mem_Opサブコマンドは、SoC102上で読取オペレーションを開始させるのに使用することができる。Read_Mem_Opサブコマンドを有するデバッグパケットは、サイズ(たとえば、ビートにおけるビットの数)、長さ(たとえば、ビートの数)およびアドレスを指定する。Read_Mem_Opサブコマンドに対してデバッグパケットコントローラによって発行される応答は、参照されたアドレスから読み取られるデータを含み得る。
Write_Mem_Opサブコマンドは、SoC102上で書込オペレーションを開始させるのに使用することができる。Write_Mem_Opサブコマンドを有するデバッグパケットは、サイズ、長さ、アドレス、およびこのアドレスに書き込まれるデータを指定する。デバッグパケットコントローラは、Write_Mem_Opサブコマンドに対する応答を発行しない。
Stream_Mem_Opサブコマンドは、固定されたアクセスアドレスを有するFIFOバッファから値を読み取る、たとえば固定されたアドレスから8つのワード(または、ビート)を読み取るのに使用することができる。FIFOバッファは一杯ではないので、3つの有効なワードおよび5つの無効なワードが返され得る。デバッグパケットコントローラは、応答時に3つの有効なワードを提供するであろう。応答におけるカウントフィールドは、返される有効なデータの量を示す。Stream_Mem_Opは、上記のようにトレースモードで無期限に実行されるデバッグパケットのうちの少なくとも1つに含まれ得る。
Perpetualオペレーションコードに応答して、デバッグパケットコントローラは、「リセット」、「列挙」または「シーケンス番号取得」がホストデバッガシステムによって発行されるまで、4つ全てのバッファにおいてコマンドを無期限に繰り返す。Perpetualオペレーションコードは、トレースモードを開始させるためのメモリマップされた場所を不要にする。Perpetualオペレーションコードを使用するために、ユーザは、いくつかのデバッグパケットを発行し、次いで、Perpetualオペコードを有するデバッグパケットを発行する。例示的なこの実現例では、4つのパケットバッファがあり、その結果、Perpetualオペレーションコードに応答してデバッグパケットコントローラが動作する、待ち行列に入れられたパケットの数は、Perpetualパケット自体を除いて4つである。次いで、デバッグパケットコントローラは、バッファリングされたパケットにおけるオペレーションを実行する。各応答は、インクリメントされたシーケンスIDを有する。
デバッグパケットコントローラは、システム内の他の記憶素子の状態に基づいてアクセスされる記憶回路のための機構(トレースバッファおよびデバッグ素子など)を提供する。この特徴により、これらのバッファのステータスを確認して状態が好都合である(たとえば、一杯または準備が整っている)場合にのみそれらにアクセスすることにホストデバッガシステムを関与させるのではなく、1つのパケットにおいて複数のトレースまたはデバッグ素子に同時に推測でアクセスすることが可能になる。ステータスを確認することにホストデバッガシステムを関与させることは、相当なターンアラウンド時間を生じさせるであろう。
TestMem_Mem_Opサブコマンドは、デバッグパケットにおけるアドレスによって参照され、デバッグパケットにおけるマスク値と論理積をとられるデータ値が、デバッグパケットにおける比較値に等しい場合に条件レジスタにおける1つ以上のビットを設定するのに使用することができる。論理積の結果が比較値に等しくない場合、条件レジスタにおけるビットはクリアされる。
TestCond_Mem_Opサブコマンドは、デバッグパケットにおけるフィールドによって参照され、デバッグパケットにおけるマスク値と論理積をとられる条件レジスタの1つ以上のビットが、デバッグパケットにおける比較値に等しい場合に条件レジスタにおける1つ以上のビットを設定するのに使用することができる。論理積の結果が比較値に等しくない場合、条件レジスタにおけるビットはクリアされる。
Skiplf_Mem_Opサブコマンドは、サブコマンドに指定された条件レジスタのビットがサブコマンドにおける真(True)フィールドに等しい場合に、デバッグパケットにおけるメモリサブコマンドの処理を、Skiplf_Mem_Opサブコマンドの宛先フィールドによって表されるコマンドペイロード内の場所にスキップするのに使用することができる。比較値が等しくない場合、デバッグパケットにおける次の連続するメモリサブコマンドが処理される。
GetCond_Mem_Opサブコマンドは、条件レジスタの状態を明示的に返すことにより、Skiplf_Mem_Opがサブコマンドのスキップを引き起こしたか否か、および、ホストデバッガシステムがSkiplf_Mem_Opに続く読取または書込オペレーションからの応答を予想すべきであるか否かをホストデバッガシステムが判断できるようにするために、ホストデバッガシステムによって使用可能である。
図2は、SoC102、および、SoCのサブシステムとデバッグポート120(図1)の回路との間の例示的なインターフェイスを示す図である。デバッグポートの回路は、一般に、デバッグパケットコントローラ202と、デバッグI/Oインターフェイス204とを含む。デバッグパケットコントローラ202は、デバッガシステム104(図1)から受信したデバッグパケットを処理することを担う。デバッグI/Oインターフェイスは、SoC上の高速インターフェイスであり、このインターフェイスを介して、デバッグパケットがデバッグパケットコントローラに渡され、デバッグパケットコントローラによって応答がデバッガシステムに返される。デバッグI/Oインターフェイスは、上記のAuroraインターフェイスおよびJTAGインターフェイスを含み得る。
デバッグパケットコントローラ202は、バッファ回路におけるデバッガシステム104から受信したデバッグパケットを受信して格納する。デバッグパケットにおけるオペレーションコードは、デバッグパケットコントローラによって復号され、オペレーションコードに基づいて、デバッグパケットコントローラは、宛先を判断して、高水準のフロー制御および管理タスクを実行する。デバッグパケットコントローラは、デバッグパケットにおけるアドレスに基づいて、要求がルーティングされるべきである適切なインターフェイス回路を判断する。要求は、適切なインターフェイス回路を介してデバッグパケットコントローラによって発行され、これらの要求に対する応答は、出力データバッファに格納され、出力データバッファは、デバッグI/Oインターフェイス204によってアクセス可能である。
デバッグパケットコントローラ202は、デバッグパケットにおけるアドレスが、SoC102上のプロセッササブシステム106の記憶回路を参照するか、SoC上のプログラマブルロジックサブシステムの記憶回路を参照するか、SoC上の数値演算エンジン回路の記憶回路を参照するかを判断する。より具体的には、アドレス指定されたターゲットは、プロセッササブシステムにおける専用のデバッグサブシステム/インターコネクトであってもよく、プロセッササブシステムにおける専用のトレースバッファであってもよく、ブート前にプロセッササブシステムまたはプログラマブルロジックサブシステム106のプロセッサコア206を構成するためのデバイス構成サブシステム216インターフェイスであってもよく、システム内の全てのオペレーショナルレジスタ(プロセッササブシステムのレジスタ、プログラマブルロジックサブシステム内に実装された回路のレジスタ、およびハードワイヤードロジック/数値演算エンジン110におけるレジスタを含む)にアクセスするためのSoCスイッチ210およびネットワーク・オン・チップ(NoC)212であってもよい。
プロセッササブシステムは、プロセッサデバッグ/トレース回路208を含み得て、プロセッサデバッグ/トレース回路208は、プロセッササブシステムの記憶回路へのデバッグアクセスを提供し、また、プロセッササブシステムからのトレースデータおよびSoC上のさまざまなサブシステムからのトレースデータもバッファリングしてアセンブルすることができる。プロセッサデバッグ/トレース回路208の一例は、ARM CoreSightデバッガである。
デバッグパケットコントローラ202は、信号線218によって示されるように、プロセッサデバッグ/トレース回路からトレースデータを選択的かつ直接的に受信することができる。代替的に、デバッグパケットコントローラは、プロセッサデバッグ/トレース回路208を介してプロセッササブシステムの記憶回路にアクセスするための読取および書込要求を、マルチプレクサ回路214を介して発行することができる。さらに、プロセッササブシステムの記憶回路へのアクセスは、デバッグI/Oインターフェイス204を介してオフSoC回路に提供され、SoCスイッチ210を介してオンSoCコンポーネントに提供されることができる。
デバッグパケットコントローラ202は、構成サブシステム216にも接続することができる。構成サブシステムは、プログラマブルロジック106の構成メモリ(図示せず)にアクセスする構成アクセスポートなどの回路を含み得る。デバッグパケットコントローラは、構成サブシステムに対して書込要求を発行することができ、デバッグパケットからのデータは、プログラマブルロジック106における回路を実現するために構成メモリに格納される。また、デバッグパケットコントローラは、構成メモリから構成データを読み直すための読取要求も発行することができる。
図3は、SoCのデバッグ回路300の例示的な実現例を示す図である。デバッグ回路300は、図2に示されるデバッグパケットコントローラ202およびデバッグI/Oインターフェイスのロジックを含む。デバッグパケットコントローラは、JTAGポート302またはデイジーチェーン接続もしくはポイント・ツー・ポイント(PTP)およびデイジーチェーン接続304のいずれかから選択するように構成可能である。別のポート(図示せず)は、デバッグパケットを受信して、プログラマブルロジックサブシステム上に実装可能であるようなローカルデバッガ回路に応答を送信するためのものであり得る。I/O経路選択制御装置306は、マルチプレクサ308によって所望の入力経路を選択するように、レジスタ(図示せず)などで構成可能であり得る。
JTAGポートは、JTAG to AXIストリームブリッジ(図示せず)を含み得る。このブリッジは、ユーザがJTAGチェーンにおけるタップを介してデバッグパケットをデバッグパケットコントローラに送信することを可能にするセキュリティゲートおよびデシリアライザに基づき得る。デバッグパケットコントローラへのブリッジは、合理化された低オーバーヘッド設計による高速データ転送レートを提供する。また、ブリッジは、Auroraベースの機能を必要とすることなくデバッグパケットコントローラの機能をテストすることも可能にする。
JTAGインターフェイスは、トレースモードで有用であろう。イングレス(インバウンド)デバッグパケットは、JTAGを介してアクセス可能であり、エグレス(アウトバウンド)応答データは、PTPインターフェイスを介して出力可能である。トレースモードでは、限られた数のパケット、たとえば例示的な実現例では4つのパケット、が入力されるが、非常に多くの数のアウトバウンドトレースパケットが生成される。
PTPおよびデイジーチェーンポート304は、ザイリンクス社のAuroraインターフェイスを使用して実現可能である。Auroraインターフェイスは、1つ以上の高速シリアルレーンを横断するようにポイント・ツー・ポイントでデータを移動させるのに使用することができる軽量のリンクレイヤプロトコルを実現する。Auroraインターフェイスは、単純であり、低オーバーヘットで実現可能であり、単一のケーブルによる複数のデバイスのデイジーチェーニングをサポートし、場合によってはローストリーミング(raw streaming)出力インターフェイスとして使用可能である。Auroraプロトコルブリッジは、デバッグインターフェイスの物理レイヤおよびリンクレイヤを担う。Auroraサブセクションは、電気的な信号伝達ならびにクロックおよびシンボル符号化を処理する。また、ダイナミックチャネルボンディングがIPにおいてサポートされる場合には、Auroraは、単一レーンおよび複数レーン構成のためにチャンネルを準備して、個々のレーンへのデータのマッピングまたはデータストライピングを制御する。Auroraは、デバッグパケット内のアイドルシーケンスを可能にするので、パケット全体のバッファリングを不要にする。例示的な実現例では、Auroraインターフェイスは、2つの別々のチャネルを使用した単信モードでの64b/66b符号化を実現するように構成される。Auroraインターフェイスは、デバッグパケットをカプセル化するためにフレーミングをサポートするように構成される。
デバッグパケットコントローラは、デバッグパケットにおけるTarget_IDおよびメインオペレーションコードに応じて、デバッグパケットを待ち行列に入れたり、デバッグパケットを待ち行列に入れることをバイパスしたりすることができる。待ち行列に入れられたパケットは、デバッグパケットコントローラ入力バッファ(例示的な実現例では、4つのデバッグパケットにストレージを提供する)において待ち行列に入れられ、順番にSoCに適用される。メモリオペレーションを有し、かつ、受信側のデバッグパケットコントローラのSoCのターゲット識別子に一致するTarget_IDを有し、かつ、再試行パケットとして解釈されない全てのデバッグパケットが待ち行列に入れられてバッファリングされる。
待ち行列に入れられていないデバッグパケットは、デバッグパケットコントローラによって識別されるとすぐに処理され、オペレーションコードおよびエグレスチャネルの利用可能性に応じて、ローカルに格納される場合もあれば、格納されない場合もある。列挙、リセットおよびシーケンス取得のオペレーションコードを有するデバッグパケットに加えて、別のSoCを参照するTarget_IDを有するデバッグパケットは、待ち行列に入れられない。アウトバウンドチャネルが、待ち行列に入れられたパケットの応答を転送するのに忙しくない限り、一致しないTarget_IDを有するデバッグパケットは、直接転送される。再試行デバッグパケットも待ち行列に入れられない。再試行デバッグパケットは、ホストデバッガシステムによって再び送信されるパケットであり、応答は、図らずもデバッグパケットコントローラの出力バッファ内に依然として存在する。再試行デバッグパケットに対する応答は、送信される次の応答であり、その後に、既に送信されることが予定されていたデバッグパケットに対する応答が転送される。
SoCへのデバッグパケットの制御およびフローは、ホストデバッガシステム104(図1)によって管理される。ホストデバッガシステムは、第1の待ち行列に入れられたデバッグパケットに対する応答が受信されるまでは、5つ以上の待ち行列に入れられたデバッグパケットをSoCに送信することはないと思われる。第1のデバッグパケットに対する応答がデバッグパケットコントローラによって送信される前にホストデバッガシステムが第5の待ち行列に入れられたデバッグパケットを送信しようとすると、このデバッグパケットは、デバッグパケットコントローラによって削除されて、このデバッグパケットについて応答は生成されない。ホストデバッガシステムは、この発生および正確な実行を検出できるが、ホストデバッガシステムは、送信されて応答されたパケットを追跡することが予想され、過剰な要求を発行することはないと思われる。デバッグパケットコントローラは、待ち行列に入れられていないデバッグパケットである第5のパケットを受け付けることができる。
デバッグパケットコントローラは、各々の入力されたデバッグパケットをパケット先入先出(FIFO)バッファ310に一時的に格納する。デコーダ回路338は、パケットが入力バッファ312,314,...,316のうちの1つにおいて待ち行列に入れられるか、直接デバッグパケットコントローラから出て行くかを判断するために、FIFOバッファの先頭のパケットのヘッダ(最初のワード)を復号する。エグレスポートが応答または別のデバッグパケットを転送するのに忙しい場合には、出力ポートが利用可能になるまで、インバウンドデバッグパケットがFIFOバッファ310に格納される。
デコーダ回路338は、パケットが入力バッファ312,314,...,316をバイパスすべきであるか否かに関してトランザクション制御回路318に信号を送る目的で、デバッグパケットのヘッダの第1レベルの復号を実行する。たとえば、デバッグパケットに指定されたターゲットIDがレジスタ348におけるSoC IDに一致しない場合、デコーダ回路338は、いずれの入力バッファもデバッグパケットの格納のためにイネーブルにされるべきではなく、バイパス経路上のデバッグパケットがマルチプレクサ336によって選択されるべきであることをトランザクション制御回路318に知らせる。
デバッグパケットにおけるターゲットIDがレジスタ348におけるSoC ID(デバイスのTarget_ID)に一致し、デバッグパケットが上記の待ち行列に入れられていないパケットタイプのうちの1つでない場合、デコーダ回路338は、デバッグパケットが入力バッファ312,314,...,316のうちの1つに格納できる状態であることをトランザクション制御回路318に知らせる。トランザクション制御回路は、入力バッファのうちの利用可能な1つの入力バッファを選択し、デマルチプレクサ320によって、デバッグパケットを、選択された入力バッファへの格納に仕向ける。全ての入力バッファが一杯になると、デバッグパケットは、いずれの入力バッファにも格納されず、廃棄される。
トランザクション制御回路318は、マルチプレクサ322によって、処理のためにデバッグパケットを選択する。記憶回路へのアクセスを指定するオペレーションコードを有するデバッグパケットのために、トランザクション制御回路は、デバッグパケットにおけるアドレスに基づいて、SoCのさまざまなサブシステムへのインターフェイス回路のうちの1つを選択する。信号線324は、サブシステムへのさまざまなインターフェイスに接続する。
サブシステムから検索されたデータまたはトランザクション制御回路318によって提供されたデータを有する応答パケットは、応答バッファ328,330,...,332に格納される。トランザクション制御回路は、デマルチプレクサ326を使用して、応答パケットを応答バッファのうちの利用可能な1つの応答バッファに仕向ける。
応答バッファにおいて応答パケットが利用可能になるので、トランザクション制御回路は、マルチプレクサ334によって、出力のために応答バッファのうちの1つからの応答パケットを選択する。選択された応答パケットは、デマルチプレクサ336に仕向けられる。マルチプレクサ336からの出力340および342は、JTAGポート302ならびにPTPおよびデイジーチェーンポート304の入力に接続される。
トランザクション制御回路は、TestMem_Mem_OpおよびTestCond_Mem_Opなどのテストオペレーションの結果の追跡に使用することができる条件レジスタ346を含む。条件レジスタにおける値は、デバッグパケットにおけるオペレーションの処理のフローの制御にも使用することができる。
図4は、デバッグパケットコントローラによるデバッグパケットの処理を示すフローチャートである。ブロック402において、デバッグパケットコントローラは、パケットFIFOバッファ310(図3)の先頭のデバッグパケットのヘッダを読み取る。パケットヘッダにおけるTarget_IDがSoCのデバイス識別子に等しくない場合、判断ブロック404は、プロセスをブロック406に進めて、ブロック406において、デバッグパケットコントローラは、入力バッファ312,314,...,316(図3)においてデバッグパケットを待ち行列に入れることをバイパスして、パケットをデイジーチェーンにおける次のSoCに出力する。次いで、デバッグパケットコントローラは、ブロック402に戻って、パケットFIFOバッファにおける次のパケットのヘッダを読み取る。
パケットヘッダにおけるTarget_IDがSoCの識別子に等しい場合、判断ブロック408において、デバッグパケットコントローラは、ヘッダにおけるオペレーションコードがPerpetualオペレーションであるか否かを判断する。Perpetualオペレーションコードを検出したことに応答して、ブロック410において、デバッグパケットコントローラは、入力バッファ312,314,...,316内に存在するデバッグパケットにおけるオペレーションコードをシーケンシャルに処理する。すなわち、判断ブロック412によってパケットFIFOバッファ310内でリセットデバッグパケットが検出されるまで、デバッグパケットコントローラは、入力バッファにおけるデバッグパケットについて、オペレーションコードを復号することと、インターフェイス回路を判断することと、要求を発行することとを繰り返す。デバッグパケットにおけるオペレーションコードの処理は、ブロック422〜452として示されている。ブロック414において、デバッグパケットコントローラは、リセットデバッグパケットに応答して、入力バッファ312,314,...,316におけるパケットのオペレーションコードの現在の復号を中止する。次のパケットがPerpetualオペレーションコードを有する場合、デバッグパケットコントローラは、入力バッファにおけるパケットにおけるコマンドの実行を繰り返す。デバッグパケットコントローラがPerpetualオペレーションモードである間、デバッグパケットコントローラは、他のSoCに仕向けられるデバッグパケットまたはPerpetualオペレーションモードを停止するデバッグパケットについてパケットFIFOバッファをモニタリングし続ける。
判断ブロック416において、デバッグパケットコントローラがPerpetualオペレーションモードで動作していない場合、デバッグパケットコントローラは、パケット入力バッファ312,314,...,316の先頭のパケットで利用可能なバッファストレージがあるか否かを判断する。入力バッファにおいて利用可能なスペースがない場合、ブロック418において、パケットは廃棄され、制御はブロック402に戻される。入力バッファにおいてストレージが利用可能である場合、ブロック420において、デバッグパケットコントローラは、入力バッファのうちの1つにデバッグパケットを格納して、ブロック402に戻って、このときにパケットFIFOバッファの先頭にある次のパケットのヘッダを取得する。それと並行して、デバッグパケットコントローラは、ブロック422に進む。なお、デバッグパケットコントローラは、ブロック416において利用可能なバッファスペースを確認し、待ち行列に入れられたパケットについてのみ、ブロック420においてパケットを入力バッファに格納する。
ブロック422において、デバッグパケットコントローラは、入力バッファ312,314,...,316のうちの1つからデバッグパケットを取得し、ブロック424において、デバッグパケットコントローラは、デバッグパケットからオペレーションコードを取得する。オペレーションコードは、上記のサブコマンドのうちの1つであってもよい。
デバッグパケットコントローラが読取オペレーションコードを検出すると、判断ブロック426は、プロセスをブロック428に進める。ブロック428において、デバッグパケットコントローラは、SoCのアドレス指定されたサブシステムへのインターフェイスを介して読取要求を発行する。次いで、デバッグパケットコントローラは、ブロック450に進んで、デバッグパケットの中にさらなるオペレーションコードがあるか否かを確認する。デバッグパケットの中にさらなるオペレーションコードがなければ、プロセスは、ブロック422に戻って、入力バッファから次のデバッグパケットを取得する。例示的な実現例では、デバッグパケットコントローラは、ラウンドロビンの順序で入力バッファ312,314,...,316におけるデバッグパケットを処理する。デバッグパケットの中にさらなる未処理のオペレーションコードがある場合には、ブロック452において、デバッグパケットコントローラは、パケットから次のオペレーションコードを取得して、判断ブロック426に戻る。パケットにおけるオペレーションコードは、スキップオペレーションがフローを変更するまで、シーケンシャルな順序で処理される。
デバッグパケットコントローラが書込オペレーションコードを検出すると、判断ブロック430は、プロセスをブロック432に進める。ブロック432において、デバッグパケットコントローラは、SoCのアドレス指定されたサブシステムへのインターフェイスを介して書込要求を発行する。次いで、デバッグパケットコントローラは、上記のブロック450に進む。
デバッグパケットコントローラがテスト(Test)オペレーションを検出すると、判断ブロック434は、プロセスをブロック436に進める。テストメモリ(Test Memory)オペレーションコードでは、ブロック436において、デバッグパケットコントローラは、SoCのアドレス指定されたサブシステムへのインターフェイスを介して読取要求を発行する。ブロック438において、デバッグパケットコントローラは、読取要求によるデータ値と、デバッグパケットにおけるテストオペレーションに関連付けられたマスク値との論理関数(たとえば、論理積)を実行する。ブロック440において、デバッグパケットコントローラは、論理関数の結果と、テストオペレーションに関連付けられた比較値とを比較する。ブロック442において、デバッグパケットコントローラは、比較結果に基づいて、値を条件レジスタ346(図3)に格納する。たとえば、比較値が論理関数の結果に等しいことを比較結果が示す場合、論理値1を条件レジスタに格納することができる。そうでなければ、論理値を条件レジスタに格納することができる。次いで、デバッグパケットコントローラは、プロセスを判断ブロック450に進める。
別のタイプのテストオペレーションは、テスト条件(Test Condition)である。上記のように、TestCond_Mem_Opは、条件レジスタ346または条件レジスタの一部における値をテストする。デバッグパケットコントローラによるテスト条件オペレーションコードの処理は、SoCサブシステムのうちの1つのアドレスから値を読み取る代わりに条件レジスタから値を読み取ること以外は、テストメモリオペレーションコードの処理と同様である。
判断ブロック444において、デバッグパケットコントローラは、スキップ(Skip)オペレーション(たとえば、Skiplf_Mem_Op)を確認する。スキップオペレーションでは、ブロック445において、デバッグパケットコントローラは、条件レジスタ346から値を取得する。スキップオペレーションは、デバッグパケットにおけるメモリオペレーションの処理をデバッグパケットのコマンドペイロード内の場所にスキップするのに使用することができる。この場所は、Skiplf_Mem_Opサブコマンドの宛先フィールドによって表される。サブコマンドに指定された条件レジスタのビットがサブコマンドにおける真フィールドに等しい場合、ブロック446において、デバッグパケットコントローラは、指定された場所にスキップして、ブロック448において、その場所でオペレーションコードを取得する。比較された値が等しくない場合、デバッグパケットコントローラは、ブロック450に進んで、さらなるオペレーションコードがあるか否かを確認する。
図5は、複数のSoCにおけるデイジーチェーニングデバッグ回路をサポートするポイント・ツー・ポイント(PTP)デバッグインターフェイスのアプリケーションを示す図である。この構成は、デバッガシステム104(図1)と、デバッグポート508,510,...,512によって接続された複数のSoC502,504,...,506とを含む。デバッグポートは、図1のデバッグポート120ならびに図2および図3に示され記載されているデバッグパケットコントローラおよびデバッグI/Oポートによって示されるように実現可能である。
デバッガシステム104によって発行されるデバッグパケットは、SoC502,504,...,506のうちの対象のSoCを参照するTarget_ID値を有する。デバッガシステムによって発行されたデバッグパケットは、まず、SoC502上のデバッグポート508にルーティングされる。Target_ID値がSoC502のデバイス識別子に一致する場合、デバッグパケットにおけるオペレーションは、デバッグポート508においてデバッグパケットコントローラによって処理される。Target_ID値がSoC502のデバイス識別子に一致しない場合、デバッグポート508は、デバッグパケットをデイジーチェーンにおける次のSoC504に転送する。デバッグパケットは、Target_ID値がSoCデバイス識別子に一致するまで、デイジーチェーンに沿って転送される。デバッグポートのデイジーチェーニングにより、SoCを並列にデバッグすることができる。デバッグポート508,510,...,512からの応答も、デイジーチェーンに沿ってデバッガシステム104に渡される。
図6は、開示されている回路に従って構成可能な例示的なプログラマブルIC602を示す図である。プログラマブルICは、SoCとも称されてもよく、プロセッササブシステム610と、プログラマブルロジックサブシステム630とを含む。プロセッササブシステム610は、ユーザプログラムの実行によってユーザ設計のソフトウェア部分を実現するようにプログラムされてもよい。プログラムは、構成データストリームの一部として指定されてもよく、またはオンチップもしくはオフチップデータ記憶装置から検索されてもよい。プロセッササブシステム610は、1つ以上のソフトウェアプログラムを実行するためのさまざまな回路612,614,616および618を含んでもよい。回路612,614,616および618は、たとえば、1つ以上のプロセッサコア、浮動小数点ユニット(FPU)、割込み処理ユニット、オンチップメモリ、メモリキャッシュおよび/またはキャッシュコヒーレントインターコネクトを含んでもよい。
プログラマブルIC602のプログラマブルロジックサブシステム630は、ユーザ設計のハードウェア部分を実現するようにプログラムされてもよい。たとえば、プログラマブルロジックサブシステムは、構成データストリームに指定された一組の回路を実現するようにプログラムされてもよいいくつかのプログラマブルリソース632を含んでもよい。プログラマブルリソース632は、たとえば、プログラマブルインターコネクト回路、プログラマブル論理回路および構成メモリセルを含む。プログラマブルロジックは、プログラマブル素子を使用してユーザ設計のロジックを実現し、これらのプログラマブル素子は、たとえば、ファンクションジェネレータ、レジスタ、演算論理装置などを含み得る。プログラマブルインターコネクト回路は、プログラマブルインターコネクトポイント(PIP)によって相互接続されたさまざまな長さの多数の相互接続線を含んでもよい。
プログラマブルリソース632は、プログラマブルインターコネクト回路およびプログラマブル論理回路をいかに構成するかを定義する構成メモリセルに構成データストリームをロードすることによってプログラムされてもよい。たとえば、構成可能なラッチのための構成メモリセルを第1の値に設定することにより、構成可能なラッチをシングルエッジ駆動ラッチとして動作させてもよい。構成メモリセルを第2の値に設定することにより、構成可能なラッチをダブルエッジ駆動ラッチとして動作させてもよい。次いで、個々のメモリセルの集合状態がプログラマブルリソース632の機能を決定する。構成データは、メモリから(たとえば、外部PROMから)読み取られたり、外部デバイスによってプログラマブルIC602に書き込まれたりすることができる。いくつかの実現例では、プログラマブルロジックサブシステム630に含まれる構成コントローラ634は、プログラマブルICに結合された不揮発性メモリから構成データを検索してこの構成データを構成メモリセルにロードすることによって、プログラマブルICの電源投入に応答して、プログラマブルリソースをプログラムしてもよい。いくつかの他の実現例では、構成データは、プロセッササブシステム610によって実行される起動プロセスによって構成メモリセルにロードされてもよい。
プログラマブルIC602は、プロセッササブシステム610とプログラマブルロジックサブシステム630内に実装された回路とを相互接続するためのさまざまな回路を含んでもよい。この例では、プログラマブルIC602は、プロセッササブシステム610およびプログラマブルロジックサブシステム630のさまざまなデータポート間でデータ信号をルーティングすることができるコアスイッチ626を含む。コアスイッチ626は、処理サブシステムまたはプログラマブルロジックサブシステム610および630のうちのいずれかと、内部データバスなどのプログラマブルICのさまざまな他の回路との間でデータ信号をルーティングしてもよい。代替的にまたはさらに、プロセッササブシステム610は、プログラマブルロジックサブシステムと直接接続するためのインターフェイスを含むことにより、コアスイッチ626をバイパスしてもよい。このようなインターフェイスは、たとえばARMによって公開されているAMBA AXIプロトコル仕様(AXI)を使用して実現されてもよい。
また、いくつかの実現例では、プロセッササブシステム610およびプログラマブルロジックサブシステム630は、メモリコントローラ621を介してオンチップメモリ622またはオフチップメモリ(図示せず)の記憶場所に対して読取または書込を行ってもよい。メモリコントローラ621は、1つ以上の異なるタイプのメモリ回路と通信するように実現可能であり、これらの1つ以上の異なるタイプのメモリ回路は、16ビットであろうと、32ビットであろうと、ECCを有する16ビットであろうと、ダブルデータレート(DDR)2タイプのメモリ、DDR3タイプのメモリ、低電力(LP)DDR2タイプのメモリを含むが、これらに限定されるものではない。メモリコントローラ621が通信することができるさまざまなメモリタイプのリストは、例示の目的で提供されているに過ぎず、限定的または網羅的であるように意図されるものではない。図6に示されるように、プログラマブルIC602は、メモリ管理ユニット620と、サブシステム610および630によって使用される仮想メモリアドレスを、メモリコントローラ621によって使用される物理メモリアドレスに変換して特定の記憶場所にアクセスするための変換ルックアサイドバッファ624とを含んでもよい。
プログラマブルICは、外部回路とのデータの通信のための入力/出力(I/O)サブシステム650を含んでもよい。I/Oサブシステム650は、さまざまなタイプのI/Oデバイスまたはインターフェイスを含んでもよく、これらのI/Oデバイスまたはインターフェイスは、たとえば、フラッシュメモリタイプI/Oデバイス、高性能I/Oデバイス、低性能インターフェイス、デバッギングI/Oデバイスおよび/またはRAM I/Oデバイスを含む。
I/Oサブシステム650は、660Aおよび660Bとして示される1つ以上のフラッシュメモリインターフェイス660を含んでもよい。たとえば、フラッシュメモリインターフェイス660のうちの1つ以上は、4ビット通信用に構成されたクワッド・シリアル・ペリフェラル・インターフェイス(QSPI)として実現可能である。フラッシュメモリインターフェイス660のうちの1つ以上は、パラレル8ビットNOR/SRAMタイプのインターフェイスとして実現可能である。フラッシュメモリインターフェイス660のうちの1つ以上は、8ビットおよび/または16ビット通信用に構成されたNANDインターフェイスとして実現可能である。記載されている特定のインターフェイスは、例示の目的で提供されており、限定の目的で提供されているわけではない、ということが理解されるべきである。さまざまなビット幅を有する他のインターフェイスも使用することができる。
I/Oサブシステム650は、フラッシュメモリインターフェイス660よりも高水準の性能を提供する1つ以上のインターフェイス662を含み得る。インターフェイス662A〜662Cの各々は、それぞれDMAコントローラ664A〜664Cに結合可能である。たとえば、インターフェイス662のうちの1つ以上は、ユニバーサルシリアルバス(USB)タイプのインターフェイスとして実現可能である。インターフェイス662のうちの1つ以上は、ギガビットイーサネット(登録商標)タイプのインターフェイスとして実現可能である。インターフェイス662のうちの1つ以上は、セキュアデジタル(SD)タイプのインターフェイスとして実現可能である。
I/Oサブシステム650は、インターフェイス662よりも低水準の性能を提供するインターフェイス666A〜666Dなどの1つ以上のインターフェイス666も含んでもよい。たとえば、インターフェイス666のうちの1つ以上は、汎用I/O(GPIO)タイプのインターフェイスとして実現可能である。インターフェイス666のうちの1つ以上は、汎用非同期式送受信機(UART)タイプのインターフェイスとして実現可能である。インターフェイス666のうちの1つ以上は、シリアルペリフェラルインターフェイス(SPI)バスタイプのインターフェイスの形式で実現可能である。インターフェイス666のうちの1つ以上は、コントローラエリアネットワーク(CAN)タイプのインターフェイスおよび/またはinter-integrated circuit(IC)タイプのインターフェイスの形式で実現可能である。また、インターフェイス666のうちの1つ以上は、タイマタイプのインターフェイスの形式で実現可能である。I/Oサブシステム650は、上記のデバッグポート120を含み得る。
示されるように、インターフェイス660,662,666の各々およびデバッグポート120は、マルチプレクサ670に結合可能である。マルチプレクサ670は、プログラマブルIC602の外部ピン、たとえばプログラマブルIC602が配置されるパッケージのボール、に直接ルーティングまたは結合され得る複数の出力を提供する。たとえば、プログラマブルIC602のI/Oピンは、インターフェイス660,662,666およびデバッグポート120の間で共有することができる。ユーザは、インターフェイス660〜666およびデバッグポート120のうちのどれが使用されるか、したがってマルチプレクサ670を介してプログラマブルIC602のI/Oピンに結合されるかを選択するように、構成データストリームを介してマルチプレクサ670を構成することができる。I/Oサブシステム650は、インターフェイス660〜666をプログラマブルロジックサブシステムのプログラマブル論理回路に接続するためのファブリックマルチプレクサI/O(FMIO)インターフェイス(図示せず)も含んでもよい。さらにまたは代替的に、プログラマブルロジックサブシステム630は、プログラマブルロジック内に1つ以上のI/O回路を実装するように構成可能である。いくつかの実現例では、プログラマブルIC602は、電力および/または安全性管理のためのさまざまな回路を有するサブシステム640も含んでもよい。たとえば、サブシステム640は、プログラマブルIC602のさまざまなサブシステムに電力を供給するために使用される1つ以上の電圧ドメインをモニタリングして維持するように構成された電力管理ユニット646を含んでもよい。いくつかの実現例では、電力管理ユニット646は、使用時にサブシステムへの電力を無効にすることなく電力消費量を減らすために、アイドル状態にあるときに個々のサブシステムの電力を無効にしてもよい。電力/プラットフォームマネージャのためのデバッグインターフェイスは、メモリオペレーションコードを介してデバッグパケットコントローラによって直接アクセスすることができる。これにより、ユーザは、プラットフォーム管理コントローラ上で実行されるファームウェア/コードをデバッグすることができる。
サブシステム640は、サブシステムのステータスをモニタリングして正確なオペレーションを保証するための安全回路も含んでもよい。たとえば、サブシステム640は、さまざまなサブシステムのステータス(たとえば、ステータスレジスタ644に表示される)をモニタリングするように構成された1つ以上のリアルタイムプロセッサ642を含んでもよい。リアルタイムプロセッサ642は、エラーの検出に応答していくつかのタスクを実行するように構成されてもよい。たとえば、いくつかのエラーについて、リアルタイムプロセッサ642は、エラーの検出に応答して警告を生成してもよい。別の例として、リアルタイムプロセッサ642は、サブシステムを正確なオペレーションに復元しようと試みるようにサブシステムをリセットしてもよい。サブシステム640は、さまざまなサブシステムを相互接続するのに使用され得るスイッチネットワーク648を含む。たとえば、スイッチネットワーク648は、さまざまなサブシステム610,630および640をI/Oサブシステム650のさまざまなインターフェイスに接続するように構成されてもよい。また、いくつかの適用例では、スイッチネットワーク648は、モニタリング対象のサブシステムからリアルタイムプロセッサ642を分離するのに使用されてもよい。このような分離は、他のサブシステムで発生するエラーによってリアルタイムプロセッサ642が影響を受けないことを確実にするために、特定のアプリケーション規格(たとえば、IEC−61508 SIL3またはISO−26262規格)によって要求され得る。
一例において、回路構成が提供される。このような回路構成は、システム・オン・チップ(SoC)上に配置され、複数のストリーミングデバッグパケットを受信して格納するように構成された1つ以上の入力バッファと、上記SoC上に配置された1つ以上の応答バッファと、上記SoC上に配置され、上記1つ以上の入力バッファおよび上記1つ以上の応答バッファに結合されたトランザクション制御回路とを含んでもよく、上記トランザクション制御回路は、上記1つ以上の入力バッファにおける各デバッグパケットを処理するように構成されてもよく、上記処理は、上記デバッグパケットにおけるオペレーションコードを復号し、上記SoC上の複数のサブシステムのうちのあるサブシステムにおける記憶回路にアクセスするための複数のインターフェイス回路のうちのあるインターフェイス回路を、上記デバッグパケットにおけるアドレスから判断し、上記オペレーションコードに従って上記記憶回路にアクセスするための要求を上記インターフェイス回路を介して発行し、上記複数のインターフェイス回路から受信した応答およびデータを上記1つ以上の応答バッファに格納する、ことによってなされる。
このような回路構成では、上記トランザクション制御回路はさらに、第1のモードにおいて、入力デバッグパケットに応答して、上記1つ以上の入力バッファにおいてスペースが上記入力デバッグパケットで利用可能であるか否かを判断し、スペースが利用可能であると判断したことに応答して、上記入力デバッグパケットを上記1つ以上の入力バッファのうちの1つに格納し、第2のモードにおいて、上記入力バッファにおけるデバッグパケットについて、上記デバッグパケットにおける上記オペレーションコードを復号することと、上記インターフェイス回路を判断することと、上記要求を発行することとを複数回繰り返すように構成されてもよい。
いくつかのこのような回路構成では、上記デバッグパケットは、複数のオペレーションコードを含んでもよく、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記複数のオペレーションコードのうちの各オペレーションコードについて、上記オペレーションコードを復号することと、上記インターフェイス回路を判断することと、上記要求を発行することとを繰り返すように構成されてもよい。
いくつかのこのような回路構成では、上記トランザクション制御回路は、条件レジスタを含んでもよく、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および上記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、上記記憶回路からデータ値を読み取るための読取要求を発行し、上記データ値および上記マスク値をオペランドとして使用して論理関数を実行するように構成されてもよく、上記論理関数は、結果値を生成し、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および上記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、上記結果値と上記比較値とを比較し、上記結果値が上記比較値に等しいことに応答して、上記条件レジスタを第1の値に設定し、上記結果値が上記比較値に等しくないことに応答して、上記条件レジスタを第2の値に設定するように構成されてもよい。
いくつかのこのような回路構成では、上記トランザクション制御回路は、条件レジスタを含んでもよく、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および上記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、上記条件レジスタからデータ値を読み取り、上記データ値および上記マスク値をオペランドとして使用して論理関数を実行するように構成されてもよく、上記論理関数は、結果値を生成し、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および上記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、上記結果値と上記比較値とを比較し、上記結果値が上記比較値に等しいことに応答して、上記条件レジスタを第1の値に設定し、上記結果値が上記比較値に等しくないことに応答して、上記条件レジスタを第2の値に設定するように構成されてもよい。
いくつかのこのような回路構成では、上記デバッグパケットは、複数のオペレーションコードを含んでもよく、上記オペレーションコードのうちの1つは、スキップオペレーションコードであり、上記トランザクション制御回路は、条件レジスタを含み、上記トランザクション制御回路はさらに、上記スキップオペレーションコードを復号したこと、および、上記条件レジスタにおける値が、上記デバッグパケットにおける上記スキップオペレーションコードに関連付けられた条件値に等しいことに応答して、上記デバッグパケットにおける上記スキップオペレーションコードに続く1つ以上のオペレーションコードの処理をバイパスするように構成されてもよい。
いくつかのこのような回路構成では、上記トランザクション制御回路はさらに、上記インターフェイス回路を判断する際に、上記デバッグパケットにおける上記アドレスが、上記SoC上のプロセッササブシステムの記憶回路を参照するか、上記SoC上のプログラマブルロジックサブシステムの記憶回路を参照するか、上記SoC上の数値演算エンジン回路の記憶回路を参照するかを判断するように構成されてもよい。
いくつかのこのような回路構成は、上記トランザクション制御回路に結合され、上記1つ以上の応答バッファに結合され、上記複数のストリーミングデバッグパケットを受信するように結合された出力選択回路と、上記SoC上に配置され、上記トランザクション制御回路に結合され、上記1つ以上の入力バッファへの格納の前に上記複数のストリーミングデバッグパケットを受信するように結合されたデコーダ回路とをさらに含んでもよく、上記デコーダ回路は、各デバッグパケットにおけるターゲット識別子と上記SoCのSoC識別子とを比較し、上記ターゲット識別子が上記デバッグパケットのうちの1つにおける上記SoC識別子に等しくないことに応答して、上記トランザクション制御回路に信号を送るように構成されてもよく、上記トランザクション制御回路はさらに、上記1つ以上の入力バッファへの上記デバッグパケットのうちの上記1つの格納をバイパスし、上記ターゲット識別子が上記SoC識別子に等しくないことを示す上記信号に応答して、出力のために上記デバッグパケットのうちの上記1つを選択するように出力選択回路を制御するように構成されてもよい。
別の例において、システム・オン・チップ(SoC)が提供されてもよい。このようなSoCは、集積回路(IC)ダイと、上記ICダイ上に配置された複数の回路サブシステムと、上記複数の回路サブシステムにおける記憶回路にアクセスするように構成された複数のインターフェイス回路と、上記ICダイ上に配置され、上記複数のインターフェイス回路に結合されたデバッグ回路とを含んでもよく、上記デバッグ回路は、複数のストリーミングデバッグパケットを受信して格納するように構成された1つ以上の入力バッファと、1つ以上の応答バッファと、上記1つ以上の入力バッファおよび上記1つ以上の応答バッファに結合されたトランザクション制御回路とを含み、上記トランザクション制御回路は、上記1つ以上の入力バッファにおける各デバッグパケットを処理するように構成されてもよく、上記処理は、上記デバッグパケットにおけるオペレーションコードを復号し、上記複数の回路サブシステムのうちの1つにおける1つ以上の記憶回路にアクセスするための上記複数のインターフェイス回路のうちの1つのインターフェイス回路を、上記デバッグパケットにおけるアドレスから判断し、上記オペレーションコードに従って上記1つ以上の記憶回路にアクセスするための要求を上記1つのインターフェイス回路を介して発行し、上記複数のインターフェイス回路から受信した応答およびデータを上記1つ以上の応答バッファに格納する、ことによってなされる。
いくつかのこのようなSoCでは、上記トランザクション制御回路はさらに、第1のモードにおいて、入力デバッグパケットに応答して、上記1つ以上の入力バッファにおいてスペースが上記入力デバッグパケットで利用可能であるか否かを判断し、スペースが利用可能であると判断したことに応答して、上記入力デバッグパケットを上記1つ以上の入力バッファのうちの1つに格納し、第2のモードにおいて、上記入力バッファにおけるデバッグパケットについて、上記デバッグパケットにおける上記オペレーションコードを復号することと、上記インターフェイス回路を判断することと、上記要求を発行することとを複数回繰り返すように構成されてもよい。
いくつかのこのようなSoCでは、上記デバッグパケットは、複数のオペレーションコードを含んでもよく、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記複数のオペレーションコードのうちの各オペレーションコードについて、上記オペレーションコードを復号することと、上記インターフェイス回路を判断することと、上記要求を発行することとを繰り返すように構成されてもよい。
いくつかのこのようなSoCでは、上記トランザクション制御回路は、条件レジスタを含んでもよく、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および上記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、上記記憶回路からデータ値を読み取るための読取要求を発行し、上記データ値および上記マスク値をオペランドとして使用して論理関数を実行するように構成されてもよく、上記論理関数は、結果値を生成し、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および上記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、上記結果値と上記比較値とを比較し、上記結果値が上記比較値に等しいことに応答して、上記条件レジスタを第1の値に設定し、上記結果値が上記比較値に等しくないことに応答して、上記条件レジスタを第2の値に設定するように構成されてもよい。
いくつかのこのようなSoCでは、上記トランザクション制御回路は、条件レジスタを含んでもよく、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および上記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、上記条件レジスタからデータ値を読み取り、上記データ値および上記マスク値をオペランドとして使用して論理関数を実行するように構成されてもよく、上記論理関数は、結果値を生成し、上記トランザクション制御回路はさらに、上記デバッグパケットにおける上記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および上記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、上記結果値と上記比較値とを比較し、上記結果値が上記比較値に等しいことに応答して、上記条件レジスタを第1の値に設定し、上記結果値が上記比較値に等しくないことに応答して、上記条件レジスタを第2の値に設定するように構成されてもよい。
いくつかのこのようなSoCでは、上記デバッグパケットは、複数のオペレーションコードを含んでもよく、上記オペレーションコードのうちの1つは、スキップオペレーションコードであり、上記トランザクション制御回路は、条件レジスタを含み、上記トランザクション制御回路はさらに、上記スキップオペレーションコードを復号したこと、および、上記条件レジスタにおける値が、上記デバッグパケットにおける上記スキップオペレーションコードに関連付けられた条件値に等しいことに応答して、上記デバッグパケットにおける上記スキップオペレーションコードに続く1つ以上のオペレーションコードの処理をバイパスするように構成されてもよい。
いくつかのこのようなSoCでは、上記トランザクション制御回路はさらに、上記インターフェイス回路を判断する際に、上記デバッグパケットにおける上記アドレスが、上記SoC上のプロセッササブシステムの記憶回路を参照するか、上記SoC上のプログラマブルロジックサブシステムの記憶回路を参照するか、上記SoC上の数値演算エンジン回路の記憶回路を参照するかを判断するように構成されてもよい。
いくつかのこのようなSoCは、上記トランザクション制御回路に結合され、上記1つ以上の応答バッファに結合され、上記複数のストリーミングデバッグパケットを受信するように結合された出力選択回路と、上記SoC上に配置され、上記トランザクション制御回路に結合され、上記1つ以上の入力バッファへの格納の前に上記複数のストリーミングデバッグパケットを受信するように結合されたデコーダ回路とをさらに含んでもよく、上記デコーダ回路は、各デバッグパケットにおけるターゲット識別子と上記SoCのSoC識別子とを比較し、上記ターゲット識別子が上記デバッグパケットのうちの1つにおける上記SoC識別子に等しくないことに応答して、上記トランザクション制御回路に信号を送るように構成されてもよく、上記トランザクション制御回路はさらに、上記1つ以上の入力バッファへの上記デバッグパケットのうちの上記1つの格納をバイパスし、上記ターゲット識別子が上記SoC識別子に等しくないことを示す上記信号に応答して、出力のために上記デバッグパケットのうちの上記1つを選択するように出力選択回路を制御するように構成されてもよい。
別の例において、方法が提供されてもよい。このような方法は、複数のストリーミングデバッグパケットを受信して、システム・オン・チップ(SoC)上に配置された1つ以上の入力バッファに格納するステップと、上記SoC上に配置されたトランザクション制御回路によって上記1つ以上の入力バッファにおける各デバッグパケットを処理するステップとを含んでもよく、上記処理するステップは、上記デバッグパケットにおけるオペレーションコードを復号するステップと、上記SoC上に配置された複数の回路サブシステムのうちの1つにおける1つ以上の記憶回路にアクセスするための、上記SoC上に配置された複数のインターフェイス回路のうちの1つのインターフェイス回路を、上記デバッグパケットにおけるアドレスから判断するステップと、上記オペレーションコードに従って上記1つ以上の記憶回路にアクセスするための要求を上記1つのインターフェイス回路を介して発行するステップと、上記複数のインターフェイス回路から受信した応答およびデータを、上記SoC上に配置された1つ以上の応答バッファに格納するステップとを含む。
いくつかのこのような方法は、第1のモードにおいて、入力デバッグパケットに応答して、上記1つ以上の入力バッファにおいてスペースが上記入力デバッグパケットで利用可能であるか否かを判断するステップと、スペースが利用可能であると判断したことに応答して、上記入力デバッグパケットを上記1つ以上の入力バッファのうちの1つに格納するステップと、第2のモードにおいて、上記入力バッファにおけるデバッグパケットについて、上記デバッグパケットにおける上記オペレーションコードを復号するステップと、上記インターフェイス回路を判断するステップと、上記要求を発行するステップとを複数回繰り返すステップとをさらに含んでもよい。
いくつかのこのような方法では、上記デバッグパケットは、複数のオペレーションコードを含んでもよく、上記方法はさらに、上記デバッグパケットにおける上記複数のオペレーションコードのうちの各オペレーションコードについて、上記オペレーションコードを復号するステップと、上記インターフェイス回路を判断するステップと、上記要求を発行するステップとを繰り返すステップを備える。
いくつかのこのような方法では、上記インターフェイス回路を判断するステップは、上記デバッグパケットにおける上記アドレスが、上記SoC上のプロセッササブシステムの記憶回路を参照するか、上記SoC上のプログラマブルロジックサブシステムの記憶回路を参照するか、上記SoC上の数値演算エンジン回路の記憶回路を参照するかを判断するステップを含んでもよい。
局面および特徴が個々の図面に記載されている場合もあるが、1つの図面の特徴は別の図面の特徴と組み合わせることができ、これは、たとえ明確に図示されていなくても、または組み合わせとして明確に説明されていなくても、可能である、ということが理解されるであろう。
開示されている回路および方法は、SoCをデバッグするためのさまざまなシステムに適用可能であると考えられる。他の局面および特徴は、明細書を検討すると当業者に明らかであろう。これらの回路および方法は、ソフトウェアを実行するように構成された1つ以上のプロセッサとして実現されてもよく、特定用途向け集積回路(ASIC)として実現されてもよく、またはプログラマブルロジックデバイス上のロジックとして実現されてもよい。明細書および図面は単なる例と見なされるよう意図されており、本発明の真の範囲は以下の特許請求の範囲によって示される。

Claims (12)

  1. 回路構成であって、
    システム・オン・チップ(SoC)上に配置され、複数のストリーミングデバッグパケットを受信して格納するように構成された1つ以上の入力バッファと、
    前記SoC上に配置された1つ以上の応答バッファと、
    前記SoC上に配置され、前記1つ以上の入力バッファおよび前記1つ以上の応答バッファに結合されたトランザクション制御回路とを備え、前記トランザクション制御回路は、前記1つ以上の入力バッファにおける各デバッグパケットを処理するように構成され、前記処理は、
    前記デバッグパケットにおけるオペレーションコードを復号し、
    前記SoC上の複数のサブシステムのうちのあるサブシステムにおける記憶回路にアクセスするための複数のインターフェイス回路のうちのあるインターフェイス回路を、前記デバッグパケットにおけるアドレスから判断し、
    前記オペレーションコードに従って前記記憶回路にアクセスするための要求を前記インターフェイス回路を介して発行し、
    前記複数のインターフェイス回路から受信した応答およびデータを前記1つ以上の応答バッファに格納する、ことによってなされる、回路構成。
  2. 前記トランザクション制御回路はさらに、
    第1のモードにおいて、
    入力デバッグパケットに応答して、前記1つ以上の入力バッファにおいてスペースが前記入力デバッグパケットで利用可能であるか否かを判断し、
    スペースが利用可能であると判断したことに応答して、前記入力デバッグパケットを前記1つ以上の入力バッファのうちの1つに格納し、
    第2のモードにおいて、
    前記入力バッファにおけるデバッグパケットについて、前記デバッグパケットにおける前記オペレーションコードを復号することと、前記インターフェイス回路を判断することと、前記要求を発行することとを複数回繰り返すように構成される、請求項1に記載の回路構成。
  3. 前記デバッグパケットは、複数のオペレーションコードを含み、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記複数のオペレーションコードのうちの各オペレーションコードについて、前記オペレーションコードを復号することと、前記インターフェイス回路を判断することと、前記要求を発行することとを繰り返すように構成される、請求項1または3に記載の回路構成。
  4. 前記トランザクション制御回路は、条件レジスタを含み、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および前記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、
    前記記憶回路からデータ値を読み取るための読取要求を発行し、
    前記データ値および前記マスク値をオペランドとして使用して論理関数を実行するように構成され、前記論理関数は、結果値を生成し、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記オペレーションコードが、テストメモリオペレーションコードを指定し、かつ、比較値および前記テストメモリオペレーションコードに関連付けられたマスク値を指定したことに応答して、
    前記結果値と前記比較値とを比較し、
    前記結果値が前記比較値に等しいことに応答して、前記条件レジスタを第1の値に設定し、
    前記結果値が前記比較値に等しくないことに応答して、前記条件レジスタを第2の値に設定するように構成される、請求項1〜3のいずれか1項に記載の回路構成。
  5. 前記トランザクション制御回路は、条件レジスタを含み、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および前記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、
    前記条件レジスタからデータ値を読み取り、
    前記データ値および前記マスク値をオペランドとして使用して論理関数を実行するように構成され、前記論理関数は、結果値を生成し、前記トランザクション制御回路はさらに、前記デバッグパケットにおける前記オペレーションコードが、テスト条件オペレーションコードを指定し、かつ、比較値および前記テスト条件オペレーションコードに関連付けられたマスク値を指定したことに応答して、
    前記結果値と前記比較値とを比較し、
    前記結果値が前記比較値に等しいことに応答して、前記条件レジスタを第1の値に設定し、
    前記結果値が前記比較値に等しくないことに応答して、前記条件レジスタを第2の値に設定するように構成される、請求項1〜3のいずれか1項に記載の回路構成。
  6. 前記デバッグパケットは、複数のオペレーションコードを含み、前記オペレーションコードのうちの1つは、スキップオペレーションコードであり、前記トランザクション制御回路は、条件レジスタを含み、前記トランザクション制御回路はさらに、
    前記スキップオペレーションコードを復号したこと、および、前記条件レジスタにおける値が、前記デバッグパケットにおける前記スキップオペレーションコードに関連付けられた条件値に等しいことに応答して、前記デバッグパケットにおける前記スキップオペレーションコードに続く1つ以上のオペレーションコードの処理をバイパスするように構成される、請求項1〜5のいずれか1項に記載の回路構成。
  7. 前記トランザクション制御回路はさらに、前記インターフェイス回路を判断する際に、前記デバッグパケットにおける前記アドレスが、前記SoC上のプロセッササブシステムの記憶回路を参照するか、前記SoC上のプログラマブルロジックサブシステムの記憶回路を参照するか、前記SoC上の数値演算エンジン回路の記憶回路を参照するかを判断するように構成される、請求項1〜7のいずれか1項に記載の回路構成。
  8. 前記トランザクション制御回路に結合され、前記1つ以上の応答バッファに結合され、前記複数のストリーミングデバッグパケットを受信するように結合された出力選択回路と、
    前記SoC上に配置され、前記トランザクション制御回路に結合され、前記1つ以上の入力バッファへの格納の前に前記複数のストリーミングデバッグパケットを受信するように結合されたデコーダ回路とをさらに備え、前記デコーダ回路は、
    各デバッグパケットにおけるターゲット識別子と前記SoCのSoC識別子とを比較し、
    前記ターゲット識別子が前記デバッグパケットのうちの1つにおける前記SoC識別子に等しくないことに応答して、前記トランザクション制御回路に信号を送るように構成され、
    前記トランザクション制御回路はさらに、前記1つ以上の入力バッファへの前記デバッグパケットのうちの前記1つの格納をバイパスし、前記ターゲット識別子が前記SoC識別子に等しくないことを示す前記信号に応答して、出力のために前記デバッグパケットのうちの前記1つを選択するように出力選択回路を制御するように構成される、請求項1〜7のいずれか1項に記載の回路構成。
  9. 方法であって、
    複数のストリーミングデバッグパケットを受信して、システム・オン・チップ(SoC)上に配置された1つ以上の入力バッファに格納するステップと、
    前記SoC上に配置されたトランザクション制御回路によって前記1つ以上の入力バッファにおける各デバッグパケットを処理するステップとを備え、前記処理するステップは、
    前記デバッグパケットにおけるオペレーションコードを復号するステップと、
    前記SoC上に配置された複数の回路サブシステムのうちの1つにおける1つ以上の記憶回路にアクセスするための、前記SoC上に配置された複数のインターフェイス回路のうちの1つのインターフェイス回路を、前記デバッグパケットにおけるアドレスから判断するステップと、
    前記オペレーションコードに従って前記1つ以上の記憶回路にアクセスするための要求を前記1つのインターフェイス回路を介して発行するステップと、
    前記複数のインターフェイス回路から受信した応答およびデータを、前記SoC上に配置された1つ以上の応答バッファに格納するステップとを含む、方法。
  10. 第1のモードにおいて、
    入力デバッグパケットに応答して、前記1つ以上の入力バッファにおいてスペースが前記入力デバッグパケットで利用可能であるか否かを判断するステップと、
    スペースが利用可能であると判断したことに応答して、前記入力デバッグパケットを前記1つ以上の入力バッファのうちの1つに格納するステップと、
    第2のモードにおいて、
    前記入力バッファにおけるデバッグパケットについて、前記デバッグパケットにおける前記オペレーションコードを復号するステップと、前記インターフェイス回路を判断するステップと、前記要求を発行するステップとを複数回繰り返すステップとをさらに備える、請求項9に記載の方法。
  11. 前記デバッグパケットは、複数のオペレーションコードを含み、前記方法はさらに、前記デバッグパケットにおける前記複数のオペレーションコードのうちの各オペレーションコードについて、前記オペレーションコードを復号するステップと、前記インターフェイス回路を判断するステップと、前記要求を発行するステップとを繰り返すステップを備える、請求項9または10に記載の方法。
  12. 前記インターフェイス回路を判断するステップは、前記デバッグパケットにおける前記アドレスが、前記SoC上のプロセッササブシステムの記憶回路を参照するか、前記SoC上のプログラマブルロジックサブシステムの記憶回路を参照するか、前記SoC上の数値演算エンジン回路の記憶回路を参照するかを判断するステップを含む、請求項9〜11のいずれか1項に記載の方法。
JP2020554197A 2018-04-03 2019-04-01 デバッグコントローラ回路 Active JP7247213B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/944,137 2018-04-03
US15/944,137 US10789153B2 (en) 2018-04-03 2018-04-03 Debug controller circuit
PCT/US2019/025146 WO2019195149A1 (en) 2018-04-03 2019-04-01 Debug controller circuit

Publications (2)

Publication Number Publication Date
JP2021531530A true JP2021531530A (ja) 2021-11-18
JP7247213B2 JP7247213B2 (ja) 2023-03-28

Family

ID=66175509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020554197A Active JP7247213B2 (ja) 2018-04-03 2019-04-01 デバッグコントローラ回路

Country Status (6)

Country Link
US (1) US10789153B2 (ja)
EP (1) EP3762830B1 (ja)
JP (1) JP7247213B2 (ja)
KR (1) KR20200139714A (ja)
CN (1) CN112292670B (ja)
WO (1) WO2019195149A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1922555B1 (en) * 2005-08-09 2014-10-08 Texas Instruments Incorporated Selectable jtag or trace access with data store and output
KR102376750B1 (ko) * 2018-09-13 2022-03-21 한국전자통신연구원 디버깅을 위한 네트워크를 포함하는 시스템 온 칩
US10656202B1 (en) * 2018-09-21 2020-05-19 Xilinx, Inc. Electronic device including integrated circuit with debug capabilities
US11442104B1 (en) 2019-02-25 2022-09-13 Marvell Asia Pte, Ltd. Configurable integrated logic analyzer
CN112131174A (zh) * 2019-06-25 2020-12-25 北京百度网讯科技有限公司 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质
US11250167B2 (en) * 2019-09-26 2022-02-15 Intel Corporation Secure external SoC debugging
CN110851393B (zh) * 2019-11-15 2020-12-11 浪潮集团有限公司 一种带有Aurora接口的USB转换控制板卡及方法
CN110703845A (zh) * 2019-11-15 2020-01-17 上海快仓智能科技有限公司 调试电路
US11443071B2 (en) * 2020-02-13 2022-09-13 SiFive, Inc. Secure debug architecture
US10949586B1 (en) * 2020-07-01 2021-03-16 Xilinx, Inc. Post-synthesis insertion of debug cores
US20220198110A1 (en) * 2020-12-23 2022-06-23 Intel Corporation Debugging architecture for system in package composed of multiple semiconductor chips
US20220293170A1 (en) * 2021-03-10 2022-09-15 Invention And Collaboration Laboratory Pte. Ltd. Integrated scaling and stretching platform for optimizing monolithic integration and/or heterogeneous integration in a single semiconductor die
CN115220769A (zh) * 2021-04-16 2022-10-21 瑞昱半导体股份有限公司 实时配置固件数据的方法与调试装置
US12093161B2 (en) * 2021-05-20 2024-09-17 Apple Inc. Debug trace fabric for integrated circuit
KR102563047B1 (ko) * 2021-09-14 2023-08-04 테크위드유 주식회사 효율적 채널 제어를 지원하는 프로브카드 용 pmic와 신호용 스위치 ic
WO2023182993A1 (en) * 2022-03-24 2023-09-28 Bae Systems Information And Electronic Systems Integration Inc. Secure semiconductor and system design

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10505700A (ja) * 1995-06-30 1998-06-02 キヤノン インフォメーション システムズ,インコーポレイテッド ネットワーク装置のローカルエリアネットワークを介した遠隔診断
JP2000020488A (ja) * 1998-03-13 2000-01-21 St Microelectron Ics Ltd コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
EP1089085A1 (en) * 1999-10-01 2001-04-04 STMicroelectronics, Inc. Data shift register
JP2003150403A (ja) * 2001-11-06 2003-05-23 Arc Internatl (Uk) Ltd データプロセッサの観測方法及び装置
US7107494B1 (en) * 2003-04-29 2006-09-12 Advanced Micro Devices, Inc. Bus architecture using debug packets to monitor transactions on an internal data processor bus
US20100115344A1 (en) * 2008-10-30 2010-05-06 Micron Technology, Inc. Macro and command execution from memory array
US20130124934A1 (en) * 2011-10-01 2013-05-16 Keith A. Jones Packetizing jtag across industry standard interfaces
US20130212425A1 (en) * 2012-02-15 2013-08-15 Russell A. Blaine Enhanced debugging for embedded devices
US20150226801A1 (en) * 2014-02-12 2015-08-13 Ultrasoc Technologies Ltd Functional Testing of an Integrated Circuit Chip

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212650B1 (en) 1997-11-24 2001-04-03 Xilinx, Inc. Interactive dubug tool for programmable circuits
US6584587B1 (en) * 1999-10-14 2003-06-24 Sony Corporation Watchdog method and apparatus
US6985980B1 (en) 2000-11-03 2006-01-10 Xilinx, Inc. Diagnostic scheme for programmable logic in a system on a chip
JP4494899B2 (ja) * 2004-07-29 2010-06-30 富士通株式会社 プロセッサデバッグ装置およびプロセッサデバッグ方法
US8843675B2 (en) * 2007-03-15 2014-09-23 Broadcom Corporation Pipelined buffer interconnect
US7870436B2 (en) * 2007-04-25 2011-01-11 Broadcom Corporation System and method for tracing acceleration in an embedded device
US8327200B1 (en) 2009-04-02 2012-12-04 Xilinx, Inc. Integrated circuit providing improved feed back of a signal
US8595561B1 (en) 2010-10-27 2013-11-26 Xilinx, Inc. Integrated debugging within an integrated circuit having an embedded processor
US8595555B1 (en) 2011-01-13 2013-11-26 Xilinx, Inc. Debugging an integrated circuit with an embedded processor
US9632895B2 (en) * 2012-06-18 2017-04-25 Intel Corporation Apparatus, system and method for a common unified debug architecture for integrated circuits and SoCs
US9959186B2 (en) * 2012-11-19 2018-05-01 Teradyne, Inc. Debugging in a semiconductor device test environment
US9483373B2 (en) * 2014-02-14 2016-11-01 Freescale Semiconductor, Inc. Debug configuration tool with layered graphical user interface
US9329946B2 (en) * 2014-02-27 2016-05-03 International Business Machines Corporation Salvaging hardware transactions
US9640270B2 (en) * 2014-08-12 2017-05-02 Sandisk Technologies Llc System and method of using multiple read operations
KR102229024B1 (ko) * 2014-12-03 2021-03-17 삼성전자주식회사 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템
US10275234B2 (en) * 2015-05-28 2019-04-30 Sap Se Selective bypass of code flows in software program
CN106326176A (zh) * 2015-06-17 2017-01-11 深圳市创成微电子有限公司 一种spi接口调试方法
GB2541216B (en) 2015-08-12 2021-03-17 Ultrasoc Technologies Ltd Reconfiguring debug circuitry
US10078568B1 (en) * 2015-11-30 2018-09-18 Amazon Technologies, Inc. Debugging a computing device
WO2017184265A1 (en) 2016-04-21 2017-10-26 Intel Corporation Apparatus and method for performing trace/debug data compression
CN107704346B (zh) * 2017-08-08 2021-07-27 湖南国科微电子股份有限公司 Soc芯片调试方法及调试系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10505700A (ja) * 1995-06-30 1998-06-02 キヤノン インフォメーション システムズ,インコーポレイテッド ネットワーク装置のローカルエリアネットワークを介した遠隔診断
JP2000020488A (ja) * 1998-03-13 2000-01-21 St Microelectron Ics Ltd コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
EP1089085A1 (en) * 1999-10-01 2001-04-04 STMicroelectronics, Inc. Data shift register
JP2003150403A (ja) * 2001-11-06 2003-05-23 Arc Internatl (Uk) Ltd データプロセッサの観測方法及び装置
US7107494B1 (en) * 2003-04-29 2006-09-12 Advanced Micro Devices, Inc. Bus architecture using debug packets to monitor transactions on an internal data processor bus
US20100115344A1 (en) * 2008-10-30 2010-05-06 Micron Technology, Inc. Macro and command execution from memory array
US20130124934A1 (en) * 2011-10-01 2013-05-16 Keith A. Jones Packetizing jtag across industry standard interfaces
US20130212425A1 (en) * 2012-02-15 2013-08-15 Russell A. Blaine Enhanced debugging for embedded devices
US20150226801A1 (en) * 2014-02-12 2015-08-13 Ultrasoc Technologies Ltd Functional Testing of an Integrated Circuit Chip

Also Published As

Publication number Publication date
US10789153B2 (en) 2020-09-29
CN112292670B (zh) 2024-03-08
EP3762830B1 (en) 2022-09-21
CN112292670A (zh) 2021-01-29
WO2019195149A1 (en) 2019-10-10
JP7247213B2 (ja) 2023-03-28
KR20200139714A (ko) 2020-12-14
US20190303268A1 (en) 2019-10-03
EP3762830A1 (en) 2021-01-13

Similar Documents

Publication Publication Date Title
JP7247213B2 (ja) デバッグコントローラ回路
US5978870A (en) On-chip parallel-serial data packet converter to interconnect parallel bus of integrated circuit chip with external device
EP0840219B1 (en) An integrated circuit device and method of communication therewith
US10896119B1 (en) Common input/output interface for application and debug circuitry
KR102413593B1 (ko) 교착상태 방지를 위한 방법들 및 회로들
US9015542B2 (en) Packetizing JTAG across industry standard interfaces
JPH04218861A (ja) 多重クラスタ信号プロセッサ
US11442844B1 (en) High speed debug hub for debugging designs in an integrated circuit
KR20220103931A (ko) 메모리와 분산된 계산 어레이 간의 데이터 전송
EP2435918B1 (en) Integrated circuit comprising trace logic and method for providing trace information
EP0840218B1 (en) An integrated circuit device and method of communication therewith
US6134481A (en) Message protocol
US10042692B1 (en) Circuit arrangement with transaction timeout detection
US10088523B2 (en) Debug adapter
JP2003085129A (ja) データ通信コントローラ及びデータ転送装置
JPH0399337A (ja) データ処理ユニットの診断方法、データ処理ユニット、データ処理システム

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20201126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220328

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230315

R150 Certificate of patent or registration of utility model

Ref document number: 7247213

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150