(57)【要約】【課題】集積回路をデバッグするための技術を提供する。【解決手段】集積回路２は、相互接続回路２０を介してデータトランザクションを発行するための、１つ以上のトランザクションマスター８、１０、１２、４を含む。デバッグアクセスポート回路は、デバッグコントローラ６から受信されるデバッグコマンドに応答して、相互接続回路に発行されるバリアトランザクションを発生させるように構成される。相互接続回路は、データトランザクションの少なくともいくつかの相対的順序付けを、それらが相互接続回路を通過する時に抑制することによって、受信したバリアトランザクションに応答する。【選択図】図１
2013037686.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータトランザクションを発生させるように構成される、１つ以上のトランザクションマスターと、
前記集積回路の外部のデバッグコントローラにデバッグインターフェースを介して連結されるように構成される、デバッグアクセスポート回路と、
前記１つ以上のトランザクションマスターおよび前記デバッグアクセスポート回路に連結され、かつ前記１つ以上のトランザクションマスターおよび前記デバッグアクセスポート回路から複数のデータトランザクションを受信するように構成される、相互接続回路と、
を備え、
前記デバッグアクセスポート回路は、前記デバッグインターフェースを介して前記デバッグコントローラから受信される１つ以上のデバッグコマンドに応答して、バリアトランザクションを発生させるように構成され、
前記相互接続回路は、前記バリアトランザクションを受信し、少なくとも前記相互接続回路を通しての前記複数のデータトランザクションの第１のサブセットと第２のサブセットとの間の相対的順序付けを抑制することによって、前記バリアトランザクションに応答するように構成される、
集積回路。
【請求項２】
前記バリアトランザクションは、メモリバリアトランザクションであり、前記相互接続回路は、前記第１のサブセットの全ての前記トランザクションの少なくともいくつかのアクションが、前記１つ以上のトランザクションマスターおよび前記デバッグアクセスポート回路のうちの１つである、各オブザーバに観察可能となった後に、前記第２のサブセットの前記トランザクションのうちのいずれかのアクションが前記オブザーバに観察可能となることを提供するように構成される、請求項１に記載の集積回路。
【請求項３】
前記バリアトランザクションは、メモリバリアトランザクションであり、前記相互接続回路は、前記メモリバリアトランザクション全体にわたって、前記複数の前記データトランザクションのうちの少なくともいくつかの再順序付けを許可しないことによって、前記相対的順序付けを維持するように構成される、請求項１に記載の集積回路。
【請求項４】
前記バリアトランザクションは、同期バリアトランザクションであり、前記相互接続回路は、前記第１のサブセットの全ての前記トランザクションのうちの少なくともいくつかのアクションが、前記１つ以上のトランザクションマスターおよび前記デバッグアクセスポート回路である、全てのオブザーバに対して観察可能となった後に、前記第２のサブセットの前記トランザクションのうちのいずれかのアクションが、前記オブザーバのうちのいずれかに観察可能となることを提供するように構成される、請求項１に記載の集積回路。
【請求項５】
前記バリアトランザクションは、同期バリアトランザクションであり、前記相互接続回路は、前記第１のサブセットがそれらの宛先スレーブに到達するまで、前記同期バリアトランザクションに続く前記第２のサブセットを遅延させることによって、前記相対的順序付けを維持するように構成される、請求項４に記載の集積回路。
【請求項６】
前記デバッグアクセスポート回路は、バリア制御レジスタを備え、前記デバッグアクセスポート回路は、前記デバッグコントローラから受信されるバリアデバッグコマンドに応答して、バリア制御値を前記バリア制御レジスタに書き込むように構成される、請求項１に記載の集積回路。
【請求項７】
前記デバッグアクセスポート回路は、前記バリアトランザクションを発生させることによって、前記バリア制御レジスタへの前記バリア制御値の書き込みに応答するように構成される、請求項６に記載の集積回路。
【請求項８】
前記バリア制御値は、どのタイプの前記バリアトランザクションを発生させるのかを指定する、請求項６に記載の集積回路。
【請求項９】
前記バリアトランザクションと関連付けられるバリア動作のパラメータを指定する、トランザクション制御レジスタをさらに備える、請求項１に記載の集積回路。
【請求項１０】
前記パラメータは、前記バリアトランザクションのための動作のドメインを含む、請求項９に記載の集積回路。
【請求項１１】
複数のデータトランザクションを発生させるための、１つ以上のトランザクションマスター手段と、
前記集積回路の外部のデバッグコントローラにデバッグインターフェースを介して連結するための、デバッグアクセスポート手段と、
前記１つ以上のトランザクションマスター手段および前記デバッグアクセスポート手段から複数のデータトランザクションを受信するための、相互接続手段と、
を備え、
前記デバッグアクセスポート手段は、前記デバッグインターフェースを介して前記デバッグコントローラから受信される１つ以上のデバッグコマンドに応答して、バリアトランザクションを発生させ、
前記相互接続手段は、前記バリアトランザクションを受信し、少なくとも前記相互接続回路を通しての前記複数のデータトランザクションの第１のサブセットと第２のサブセットとの間の相対的順序付けを抑制することによって、前記バリアトランザクションに応答する、
集積回路。
【請求項１２】
一つ以上のトランザクションマスターを持つ複数のデータトランザクションを発生させるステップと、
デバッグアクセスポート回路を、前記集積回路の外部のデバッグコントローラにデバッグインターフェースを介して連結するステップと、
前記１つ以上のトランザクションマスターおよび前記デバッグアクセスポート回路から複数のデータトランザクションを相互接続回路で受信するステップと、
前記デバッグインターフェースを介して前記デバッグコントローラから受信される１つ以上のデバッグコマンドに応答して、前記デバッグアクセスポート回路から前記相互接続回路に発行されるバリアトランザクションを発生させるステップと、
前記相互接続回路によって受信される前記バリアトランザクションに応答して、少なくとも前記相互接続回路を通しての前記複数のデータトランザクションの第１のサブセットと第２のサブセットとの間の相対的順序付けを抑制するステップと、
を含む、集積回路を動作させる方法。
【請求項１３】
前記バリアトランザクションは、メモリバリアトランザクションであり、前記相対的順序付けは、前記第１のサブセットの全ての前記トランザクションの少なくともいくつのアクションが、前記１つ以上のトランザクションマスターおよび前記デバッグアクセスポート回路のうちの１つである、各オブザーバに観察可能となった後に、前記第２のサブセットの前記トランザクションのうちのいずれかのアクションが前記オブザーバに観察可能となることを提供することによって制限される、請求項１２に記載の方法。
【請求項１４】
前記バリアトランザクションは、メモリバリアトランザクションであり、前記相対的順序付けは、前記メモリバリアトランザクション全体にわたって、前記複数の前記データトランザクションのうちの少なくともいくつかの再順序付けを許可しないことによって、前記相対的順序付けを維持するように抑制される、請求項１３に記載の方法。
【請求項１５】
前記バリアトランザクションは、同期バリアトランザクションであり、前記相対的順序付けは、前記第１のサブセットの全ての前記トランザクションのうちの少なくともいくつかのアクションが、前記１つ以上のトランザクションマスターおよび前記デバッグアクセスポート回路である、全てのオブザーバに対して観察可能となった後に、前記第２のサブセットの前記トランザクションのうちのいずれかのアクションが、前記オブザーバのうちのいずれかに観察可能となることを提供することによって抑制される、請求項１２に記載の方法。
【請求項１６】
前記バリアトランザクションは、同期バリアトランザクションであり、前記相対的順序付けは、前記第１のサブセットがそれらの宛先スレーブに到達するまで、前記同期バリアトランザクションに続く前記第２のサブセットを遅延させることによって、前記相対的順序付けを維持するように抑制される、請求項１５に記載の方法。
【請求項１７】
前記デバッグコントローラから受信されるバリアデバッグコマンドに応答して、バリア制御値を前記デバッグアクセスポート回路内のバリア制御レジスタに書き込むことを含む、請求項１２に記載の方法。
【請求項１８】
前記バリア制御レジスタへの前記バリア制御値の書き込みに応答して、前記バリアトランザクションを発生させることを含む、請求項１７に記載の方法。
【請求項１９】
前記バリア制御値は、どのタイプの前記バリアトランザクションを発生させるのかを指定する、請求項１７に記載の方法。
【請求項２０】
前記バリアトランザクションと関連付けられるバリア動作のパラメータをトランザクション制御レジスタに記憶することを含む、請求項１２に記載の方法。
【請求項２１】
前記パラメータは、前記バリアトランザクションのための動作のドメインを含む、請求項２０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路の分野に関する。より具体的には、本発明は、集積回路をデバッグするための技術に関する。
【背景技術】
【０００２】
デバッグ機構を伴う集積回路を提供することが知られている。いくつかの既知のデバッグ機構は、集積回路のメモリアドレス空間内の記憶場所を読み取るまたは書き込むために、メモリトランザクションを発生させる能力を提供する。故に、これらのデバッグ機構は、トランザクションマスターとしての機能を果たすことができ、また、集積回路の状態を判定するためにデータを読み取り、所望の刺激を集積回路に提供するためにデータを書き込む際に有用であり得る。
【０００３】
これは、典型的に、デバック動作を支援するために集積回路に提供される接続ピンの数が少ない場合である。集積回路パッケージ上のピンの増加速度は、それらの回路の複雑さの増加速度に追随できていない（いわゆるムーアの法則）。他の機能のために接続ピンを集積回路に使用する様に、かなりの圧力がある。デバッグ動作は、開発中だけにしか使用され得ず、故に、多数の接続ピンをデバッグ機能専用にするよう調整することは困難である。これは、集積回路がメモリの読み取りおよびメモリの書き込み等のトランザクションを実行するように指示した時に、デバッグコントローラがデバッグ回路と通信してもよい帯域幅を制限するという結果をもたらす。典型的な集積回路は、ほぼギガヘルツ程度の周波数で動作し得るのに対して、デバッグインターフェースは、数メガヘルツの周波数でしか通信することが可能になり得ない。こうした速度の不整合は、デバッグが開始したトランザクションを、集積回路内で最高速度で起こっている他のトランザクションと組み合わせ得る方法を限定する。
【０００４】
集積回路に提供されるデバッグ機構の有用性を高めるために、デバッグ専用のピンの数を増加させずに、好ましくは減少させながら、デバッグ動作を実行できる速度を増加させることが好ましい。これを達成するための１つの方法は、デバッグコントローラがデバッグインターフェースを介して集積回路と通信してもよい帯域幅を増加させることである。ＵＳＢ型通信の進歩等の、シリアルデータ通信技術の進歩は、デバッグ用ピンの数を増加させずに、集積回路がそのデータ処理を内部で実行するタイムスケールと同程度以上のタイムスケールで、集積回路でデバッグ機構と通信することが可能になりつつあるという結果をもたらす。
【０００５】
さらなる選択肢は、集積回路内のデバッグ回路を強化することである。集積レベルの増加によって可能となるより複雑なデバッグ回路は、デバッグインターフェース上でデバッグコントローラによって送信される比較的に単純なコマンドを、例えばブロックメモリフィル等の反復的なアクションといった、複雑なトランザクションに変換できることを意味する。動作はまた、デバッグ回路によってバッファリングすることができ、よって、デバッガは、デバッグインターフェースをポーリングして、さらなる動作を送信する前に１つの動作が完了するまで待つ必要はない。両方の選択肢は、組み合わせることができる。
【発明の概要】
【課題を解決するための手段】
【０００６】
一態様から概観すると、本発明は、
複数のデータトランザクションを発生させるように構成される、１つ以上のトランザクションマスターと、
該集積回路の外部のデバッグコントローラにデバッグインターフェースを介して連結されるように構成される、デバッグアクセスポート回路と、
該１つ以上のトランザクションマスターおよび該デバッグアクセスポート回路に連結され、かつ該１つ以上のトランザクションマスターおよび該デバッグアクセスポート回路から複数のデータトランザクションを受信するように構成される、相互接続回路と、を備え、
該デバッグアクセスポート回路は、該デバッグインターフェースを介して該デバッグコントローラから受信される１つ以上のデバッグコマンドに応答して、バリアトランザクションを発生させるように構成され、
該相互接続回路は、該バリアトランザクションを受信し、少なくとも該相互接続回路を通しての該複数のデータトランザクションの第１のサブセットと該第２のサブセットとの間の相対的順序付けを抑制することによって、該バリアトランザクションに応答するように構成される、集積回路を提供する。
【０００７】
本技術は、高速デバッグアクセスおよびデバッグ回路の増加した複雑さが集積回路に提供された時に、デバッグ中にその集積回路とのより高度な種類の相互作用が可能になることを認める。さらに、集積回路上の１つ以上のトランザクションマスターによって開始されるデータトランザクションに対するデバッグ活動の順序付けおよび同期は、特に、デバッグ回路が多数の複雑なデバッグ動作をバッファリングして、それらをシステム速度で実行することができる時に、さらに重要になる。本技術は、集積回路の外部から受信されるデバッグコマンドに応答してバリアトランザクションを発生させる能力を伴う、集積回路上のデバッグアクセスポート回路を提供する。これらのバリアトランザクションは、より高度で正確なデバッグ動作が実行されることを可能にする様式で、集積回路の相互接続回路を通過するデータトランザクションのうちの少なくともいくつかの相対的順序付けを抑制するために使用される。バリアトランザクションのアクションを検討する別の方法は、それらを２つの群、すなわちＡおよびＢ（ならびにバリアによって順序付けされないトランザクションである、第３群のトランザクション）に分けて、それらの群の間で順序付けを形成することである。これらの群（サブセット）は、非重複である。
【０００８】
本技術を使用して導入（投入）することが可能である、異なる種類のバリアトランザクションがある。いくつかの実施形態では、バリアトランザクションは、メモリバリアトランザクションであり、相互接続回路は、該第１のサブセットの全ての該トランザクションの少なくともいくつかのアクションが、該１つ以上のトランザクションマスターおよび該デバッグアクセスポート回路のうちの１つである、各オブザーバに観察可能となった後に、該第２のサブセットの該トランザクションのうちのいずれかのアクションが該オブザーバに観察可能となることを提供するように構成される。観察可能であることは、オブザーバが観察（例えば、読み取り）を行い、次いで、そのアクションに注目（見る）するが、オブザーバが実際にその観察を行うことを必要としないという効果をもたらす。例示的実装は、メモリバリアトランザクション全体にわたって、データトランザクションのうちの少なくともいくつかの再順序付けを許可しないことによって、相対的順序付けを維持してもよい。したがって、バリアトランザクションのそれぞれの側にあるデータトランザクションは、それらがバリアトランザクションの同じ側に留まっているのであれば、再順序付けされ得るが、いかなるデータトランザクションも、一方のバリアトランザクションの側から他方のバリアトランザクションの側に変えるようには再順序付けされ得ない。
【０００９】
他の実施形態では、別々に、またはメモリバリアトランザクションと組み合わせて、同期バリアトランザクションが提供されてもよい。この場合、相互接続回路は、該第１のサブセットの全ての該トランザクションの少なくともいくつかのアクションが、該１つ以上のトランザクションマスターおよび該デバッグアクセスポート回路である、全てのオブザーバに対して観察可能となった後に、該第２のサブセットの該トランザクションのうちのいずれかのアクションが、該オブザーバのうちのいずれかに観察可能となることを提供するように構成される。例示的実装は、同期バリアトランザクションの直前のトランザクションの第１のサブセットがそれらの宛先スレーブに到達するまで、同期バリアトランザクションに続くトランザクションの第２のサブセットを遅延させることによって、相対的順序付けを維持してもよい。
【００１０】
複数のトランザクションマスターを伴うシステムでは、この相対的順序付けは、全てのマスターがトランザクションを発行しているマスターではない場合であっても、それらが同じ順序付けを見るように維持されなければならない。例えば、一方のマスターが、介入バリアトランザクションを伴う１対の書き込みトランザクションを発行した場合、それらの場所を読み取るもう一方のマスターは、バリアによって保証される順序で、書き込まれた値を観察することだけが可能でなければならない。
【００１１】
デバッグアクセスポート回路がデバッグコントローラによって制御されてもよい、種々の方法がある。いくつかの実施形態では、デバッグアクセスポート回路は、バリア制御レジスタを備え、デバッグアクセスポート回路は、デバッグコントローラから受信されるバリアデバッグコマンドに応答して、バリア制御値をバリア制御レジスタに書き込むように構成される。このようにして、データおよびコマンドは、バリア制御レジスタを介してデバッグアクセスポート回路に転送されてもよい。
【００１２】
いくつかの実施形態では、デバッグアクセスポート回路は、バリアトランザクションを発生させることによって、バリア制御値の書き込みに応答するように制御されてもよい。バリア制御値は、どのタイプのバリアトランザクションを発生させるのかを指定してもよい。バリアトランザクションと関連付けられる他のパラメータのようなさらなる情報もまた、デバッグアクセスポート内のバリア制御レジスタまたは他のレジスタに書き込まれてもよい。他のパラメータは、種々の形態を取ってもよい。
【００１３】
他のパラメータは、ドメイン指定子を含んでもよい。ドメインは、バリアが前述のように観察可能性順序付けを保証する、１組のマスターを備える。
【００１４】
システムは、複数のドメインを含んでもよく、それらのドメインは、階層的であってもよい。例えば、一方のマスター群が内部ドメインを形成するのに対して、他方のマスターが同じく内部ドメインを含む外部ドメインの一部であってもよい。
【００１５】
内部ドメインパラメータを伴うバリアは、同じ内部ドメインの中のマスターの観察可能性順序付けだけしか保証しないのに対して、外部ドメインの順序付けを伴うバリアは、内部および外部ドメイン双方の中の全てのマスターの観察可能性を保証する。
【００１６】
いくつかの実施形態では、ドメインは、バリア制御値で指定され、他では、バリア制御レジスタ等で指定される。
【００１７】
バリア信号伝達は、例えば、以下を使用してもよい。
００  共有不可能。このマスターだけの順序付け。
０１  内部ドメイン。
１０  外部ドメイン。
１１  システム。システムの中の全てのマスター。
【００１８】
別の態様から概観すると、本発明は、
複数のデータトランザクションを発生させるための、１つ以上のトランザクションマスター手段と、
該集積回路の外部のデバッグコントローラにデバッグインターフェースを介して連結するための、デバッグアクセスポート手段と、
該１つ以上のトランザクションマスター手段および該デバッグアクセスポート手段から複数のデータトランザクションを受信するための、相互接続手段と、を備え、
該デバッグアクセスポート手段は、該デバッグインターフェースを介して該デバッグコントローラから受信される１つ以上のデバッグコマンドに応答して、バリアトランザクションを発生させ、
該相互接続手段は、該バリアトランザクションを受信し、少なくとも該相互接続回路を通しての該複数のデータトランザクションの第１のサブセットと第２のサブセットとの間の相対的順序付けを抑制することによって、該バリアトランザクションに応答する、集積回路を提供する。
【００１９】
さらなる態様から概観すると、本発明は、
より多くのトランザクションマスターのうちの１つを伴う複数のデータトランザクションを発生させるステップと、
デバッグアクセスポート回路を、該集積回路の外部のデバッグコントローラにデバッグインターフェースを介して連結するステップと、
該１つ以上のトランザクションマスターおよび該デバッグアクセスポート回路から複数のデータトランザクションを相互接続回路で受信するステップと、
該デバッグインターフェースを介して該デバッグコントローラから受信される１つ以上のデバッグコマンドに応答して、該デバッグアクセスポート回路から該相互接続回路に発行されるバリアトランザクションを発生させるステップと、
該相互接続回路によって受信される該バリアトランザクションに応答して、少なくとも該相互接続回路を通しての該複数のデータトランザクションの第１のサブセットと第２のサブセットとの間の相対的順序付けを抑制するステップと、を含む、集積回路を動作させる方法を提供する。
【００２０】
本発明の前述の、および他の目的、特徴、および利点は、添付図面に関連して読まれるべき、例示的な実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００２１】
【図１】デバッグコントローラにデバッグインターフェースを介して接続される集積回路を概略的に示す図である。
【図２】デバッグアクセスポート回路を概略的に示す図である。
【図３】デバッグアクセスポート回路内の制御レジスタを概略的に示す図である。
【図４】バリア制御レジスタを概略的に示す図である。
【図５】デバッグアクセスポート回路による、バリアトランザクションの発行のトリガリングを概略的に示す図である。
【図６】メモリバリアトランザクションのアクションを概略的に示す図である。
【図７】同期バリアトランザクションのアクションを概略的に示す図である。
【発明を実施するための形態】
【００２２】
図１は、デバッグインターフェースを介してデバッグコントローラ６に接続されるデバッグアクセスポート回路４を含む、集積回路２を概略的に例証する。集積回路２は、中央処理ユニット８、第１のトランザクションマスター１０、および第２のトランザクションマスター１２を含む、複数のトランザクションマスターを含む。メモリコントローラ１４は、トランザクションスレーブであり、オフチップメモリ１６へのアクセスを提供する。また、トランザクションスレーブとしての役割を果たす、オンチップメモリ１８も提供される。ＰＣＩｅ等のインターフェース用の組み込み型周辺機器またはコントローラ等の、他のオンチップスレーブがあってもよい（図示せず）。中央処理ユニット８、第１のトランザクションマスター１０、第２のトランザクションマスター１２、デバッグアクセスポート回路４、メモリコントローラ１４、およびオンチップメモリ１８は、全て、マスターとスレーブとの間のデータトランザクションの経路を定める役目をする、相互接続回路２０に接続される。相互接続回路２０は、例えば、ＡＲＭ  Ｌｉｍｉｔｅｄ（Ｃａｍｂｒｉｄｇｅ、Ｅｎｇｌａｎｄ）によって設計された、ＡＭＢＡ  ＡＸＩ通信機構および技術に対応してもよい。
【００２３】
動作に際して、通常の機能モード処理を実行するトランザクションマスター８、１０、１２は、相互接続回路２０を介してトランザクションスレーブ１４、１８へ送られる、データトランザクションを発生させる。これらのデータトランザクションは、読み取りトランザクションまたは書き込みトランザクションであってもよい。
【００２４】
デバッグアクセスポート回路４は、デバッグインターフェースを介してデバッグコントローラ６と通信する。デバッグコントローラ６は、次に、汎用コンピュータによって制御されてもよい。デバッグコントローラ６は、デバッグインターフェースを介してデバッグアクセスポート回路４にデバッグコマンドを発行する役目をする。これらのコマンドは、相互接続回路２０に発行されるバリアトランザクションを発生させるために、デバッグアクセスポート回路４をトリガーするコマンドを含んでもよい。デバッグコマンドはまた、デバッグアクセスポート回路４によって発行される読み取りトランザクションまたは書き込みトランザクションをトリガーしてもよい。読み取りトランザクションは、図１で例証されるシステム内からのデータ値を復元するために、デバッグアクセスポート回路４によって発行されてもよい。書き込みトランザクションは、例えば集積回路内の制御レジスタを異なる値に設定して集積回路２の構成を変えるといった特定の方法で、図１に例証されるシステムを刺激するために発行されてもよい。
【００２５】
図２は、デバッグアクセスポート回路４をさらに詳細に概略的に例証する。デバッグアクセスポート回路４は、デバッグインターフェースとしての役割を果たすシリアルインターフェース（他の形態のインターフェースも可能である）を介してデバッグコントローラ６からデバッグコマンドを受信する、インターフェース制御回路２２を含む。これらのデバッグコマンドは、インターフェース制御回路２２内の制御レジスタ２４に対する読み取りおよび書き込みを実行する役目をする。これらの制御レジスタ２４に書き込まれる値は、デバッグアクセスポート回路４内の複数のアクセスポートノード２６、２８、３０が種々のデバッグ関連の動作を実行するように構成するために使用されてもよい。これらのアクセスポートノード２６、２８、３０は、それぞれ、インターフェース制御回路２２および制御レジスタ２４を介してその動作を構成するようにプログラムされる、アクセスポート制御レジスタ２２６、２２８、２３０を含む。アクセスポートノード２６、２８、３０は、相互接続回路２０に接続し、インターフェース制御回路２２、制御レジスタ２４、およびアクセスポート制御レジスタ２２６によって構成された時に相互接続回路２０に発行される書き込みトランザクション、読み取りトランザクション、およびバリアトランザクションを発生させる役目をする、ノード２６を含む。ノード２８は、それを介してデバッグ動作が実行されてもよいプライベートデバッグバスへのインターフェースを提供し、ノード３０は、集積回路２内に提供されるＪＴＡＧシリアルスキャンチェーン回路へのインターフェースを提供する。
【００２６】
図３は、制御レジスタ２２６をさらに詳細に概略的に例証する。これらの制御レジスタは、バリア制御レジスタ３２と、データ読み取り／書き込みレジスタ３４と、目標アドレスレジスタ３６と、動作制御レジスタ３８とを含む。動作制御レジスタ３８には、トランザクションと関連付けられる特権レベルまたはドメイン等のパラメータを含む、所望の動作を実行するようにアクセスポートノード２６を制御する値が書き込まれてもよい。目標アドレスレジスタ３６は、相互接続回路２０を介して実行される読み取りトランザクションまたは書き込みトランザクションのための目標アドレスである、アドレス値を保持するために使用される。読み取り／書き込みレジスタ３４は、読み取りトランザクションに応答して、集積回路２内の記憶場所から読み取られる、または書き込みトランザクションに応答して、集積回路２内の記憶場所に書き込まれる、データ値を保持するために使用される。バリア制御レジスタ３２は、バリアトランザクションの発生をトリガーするために使用される。
【００２７】
図４は、バリア制御レジスタ３２をさらに詳細に概略的に例証する。バリア制御レジスタ３２は、第１のフィールド４０を含み、「１」の値が書き込まれた場合は、ノード２６を介してバリアトランザクションが相互接続回路２０に発行される。バリアトランザクションが発行された時に、フィールド４０は、ノード２６およびインターフェース回路２２によって「０」の値に再設定される。フィールド４０内で保持されている値が既に「１」であるのに「１」の値がフィールド４０に書き込まれた場合は、既にバリアトランザクションが発行過程にあるので、第２の書き込みは無視される。
【００２８】
バリア制御レジスタ３２内の第２のフィールド４２は、発行されるバリアトランザクションの種類を指定する値に、デバッグコマンドによって書き込まれる。第２のフィールドに値「１１」が書き込まれた場合は、同期バリアトランザクションが発行される。第２のフィールド４２に値「０１」が書き込まれた場合は、メモリバリアトランザクションが発行される。バリア制御レジスタ３２に書き込まれるバリア制御値は、典型的に、第１のフィールド４０と、第２のフィールド４２とを含むことを理解するであろう。バリア制御値で最も重要なビットは、それらの意味において現在予約されている。
【００２９】
図５は、バリアトランザクションを発生させる際のデバッグアクセスポート回路４の挙動を概略的に例証する。ステップ４４で、トランザクションコマンドがデバッグアクセスポート回路４で受信されるまで、処理を待機する。そのようなコマンドを受信した時に、ステップ４６は、デバッグコマンドが指示されたレジスタアドレスを復号化する役目をする。このレジスタアドレスは、図３で例証されるアクセスポート制御レジスタ２２６のうちの１つを指定する。ステップ４８は、ステップ４４で受信したデバッグコマンドが、バリア制御レジスタ３２への書き込みであるかどうかを判定する。この実施例では、バリア制御レジスタ３２への書き込みがあった場合、これは、第１のフィールド４０を検査することを必要とせずに、バリアトランザクションの発行をトリガーしているとみなされてもよい。しかしながら、他の実施例では、図４に関連して前述したように、「１」の値に送信されたかどうかを判定するために、第１のフィールド４０の読み取りが行われ得る可能性がある。
【００３０】
ステップ４８で、バリア制御レジスタ３２への書き込みが行われたという判定であった場合、ステップ５０は、バリア制御値内の第２のフィールド４２からバリアの種類を判定する役目をする。次いで、ステップ５２は、ステップ５２で、選択された種類のバリアトランザクション（メモリバリアトランザクションか、または同期バリアトランザクション）を相互接続回路２０に発行する。
【００３１】
ステップ４８で、バリア制御レジスタへの書き込みがないという判定であった場合、いくつかの他の種類のデバッグ動作が指示されているので処理は終了し、これは、他の論理および制御機構によって処理される。
【００３２】
図６は、メモリバリアトランザクションを概略的に例証する。トランザクションは、メモリバリアトランザクションのそれぞれの側で最順序付けされてもよいことが分かる。しかしながら、メモリトランザクションは、メモリバリアトランザクションの側を変えるようには最順序付けされなくてもよい。
【００３３】
図７は、同期バリアトランザクションを概略的に例証する。相互接続回路２０は、そのような同期バリアトランザクションに応答して、同期バリアトランザクションの他方の側の最も最近に先行するトランザクションＺが、その宛先トランザクションスレーブに到達するまで、相互接続回路２０を通してのトランザクションＹの進行を遅延させる。
【００３４】
制御レジスタ３８を伴うドメイン制御フィールドは、以下のような値を有してもよい。
００  共有不可能。このマスターだけのための順序付け。
０１  内部ドメイン。
１０  外部ドメイン。
１１  システム。システムの中の全てのマスター。
【００３５】
バリアトランザクションのさらなる詳細は、特許出願公開第ＧＢ−Ａ−２，４７４，５３２号および第ＧＢ−Ａ−２，４７４，５３３号に見出すことができる。これらの公開出願の内容は、その全体を、具体的にはバリアトランザクションの動作および挙動に関連して参照することにより本明細書に組み込まれる。
【００３６】
本発明の例示的実施形態を、添付図面を参照しながら本明細書に詳細に説明したが、本発明は、それらの厳密な実施形態に限定されるものではなく、また、種々の変更および修正は、添付の特許請求の範囲に記載の本発明の範囲および趣旨から逸脱することなく、当業者によってその中で行うことができることを理解されたい。
【符号の説明】
【００３７】
２  集積回路
４  デバッグアクセスポート回路
６  デバッグコントローラ
８  中央処理ユニット
１０  第１のトランザクションマスター
１２  第２のトランザクションマスター
１４  メモリコントローラ
１６  オフチップメモリ
１８  オンチップメモリ
２０  相互接続回路
【図１】
2013037686.tif 000003
【図２】
2013037686.tif 000004
【図３】
2013037686.tif 000005
【図４】
2013037686.tif 000006
【図５】
2013037686.tif 000007
【図６】
2013037686.tif 000008
【図７】
2013037686.tif 000009
【外国語明細書】
2013037686000001.pdf