(57)【要約】      （修正有）【課題】製品開発段階時に異なるプロセッサ間で事象の診断交差トリガを容易にする、複数プロセッサ・システムのスケーラブルな相互接続システムを提供すること、特に、単一の集積回路中の複数コアの同期した停止／開始及びステップを達成する能力を提供する。【解決手段】データ処理装置は、複数のブロードキャスト・チャネルを有し、ブロードキャスト・チャネルの１つ以上にあるルーティング・モジュールは、複数の処理装置の１つ以上の診断事象の発生を指示するよう動作する。インタフェース・モジュールは、関連処理装置から複数のブロードキャスト・チャネルの１つ以上へ診断事象信号をアサートし、複数のブロードキャスト・チャネルの１つ以上から関連処理装置以外の処理装置からの診断事象信号を検索する。検索された診断事象データを使用して、前記検索診断事象データに依存した関連処理装置上の診断プロセスのトリガを容易にする。【選択図】図１
2005135379.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理装置上で診断プロセスの交差トリガを制御するデータ処理装置であって、
複数のブロードキャスト・チャネルを含み、１つ以上の前記ブロードキャスト・チャネルは１つ以上の前記複数の処理装置上の診断事象の発生を指示するように動作し、診断事象の発生を指示するチャネル・マップのデータを受信する少なくとも１つのルータ入力ポートと、診断事象の発生を指示するチャネル化情報をブロードキャストする少なくとも１つのルータ出力ポートを有するルーティング・モジュールと、
マッピング・モジュールであって、
関連処理装置上での診断事象の発生を指示する診断事象信号を受信するよう動作する事象マッピング入力ポートであって、前記関連処理装置は前記複数の処理装置のうちの１つである前記事象マッピング入力ポートと、
前記診断事象信号を前記ルーティング・モジュールの１つ以上の前記複数のブロードキャスト・チャネルにプログラム可能にアサートし、前記第１マップ診断事象信号を前記少なくとも１つのルータ入力ポートに供給するよう動作する第１マッピング装置と、
前記複数の処理装置の処理装置上の診断事象の発生を指示する前記複数のブロードキャスト・チャネルの１つ以上からのデータを含む前記チャネル化情報を前記ルータ出力ポートから受信するよう動作するチャネル・マッピング入力ポートと、
前記チャネル化情報を受信し、前記複数のブロードキャスト・チャネルの選択したものから診断事象データを、前記チャネル化情報からプログラム可能に検索し、前記検索診断事象データを前記関連処理装置に送って、前記検索診断事象データに依存して前記関連処理装置上の診断プロセスのトリガを容易にするよう動作する第２マッピング・モジュールと、
を有する前記マッピング・モジュールと
を含むデータ処理装置。
【請求項２】
請求項１記載のデータ処理装置において、前記ルーティング・モジュールは前記複数のブロードキャスト・チャネル用の前記１つ以上の組合わせ論理を含み、前記組合わせ論理は各々のブロードキャスト・チャネルにアサートされた前記複数の処理装置の異なるものからの複数の事象信号を組合わせるよう動作可能なデータ処理装置。
【請求項３】
請求項１記載のデータ処理装置において、前記組合わせ論理はＯＲ論理ゲートを含むデータ処理装置。
【請求項４】
請求項１記載のデータ処理装置において、前記ルータ・モジュールと前記マッピング・モジュールとの少なくとも一方は、局所クロック領域へ受信した信号を同期させるよう動作する同期論理を含むデータ処理装置。
【請求項５】
請求項４記載のデータ処理装置において、前記同期論理はバイパス・モードを有するデータ処理装置。
【請求項６】
請求項１または４記載のデータ処理装置において、前記ルータ・モジュールと前記マッピング・モジュールとの少なくとも一方は、送信装置と目的地装置の対に属し、前記送信装置により送信された信号のアサートを保持し、前記目的地装置により確認の受信を未処理にするよう動作するハンドシェーク論理を含むデータ処理装置。
【請求項７】
請求項６記載のデータ処理装置において、前記ハンドシェーク論理はバイパス・モードを有するデータ処理装置。
【請求項８】
請求項１記載のデータ処理装置において、前記複数の処理装置、及び前記データ処理装置は単一のマイクロチップの構成部品であるデータ処理装置。
【請求項９】
請求項１または６記載のデータ処理装置において、前記マッピング・モジュールと前記関連する処理装置とは前記ルーティング・モジュールとは異なるチップ上に配置されているデータ処理装置。
【請求項１０】
請求項１記載のデータ処理装置において、前記チャネル化情報の受信と確認を含む第１ハンドシェーク信号列と前記診断事象信号の受信と確認を含む第２ハンドシェーク信号との両方を監視するよう動作するルーティング・モジュール同期器インタフェースを含み、前記ルーティング・モジュール同期器インタフェースは前記第１ハンドシェーク信号列を表す単一のオフチップ信号と前記第２ハンドシェーク信号列を表す単一のオフチップ信号とを出力するようさらに動作するデータ処理装置。
【請求項１１】
請求項１記載のデータ処理装置において、前記マッピング・モジュールは、前記診断事象信号を前記第１マッピング・モジュールに与える前に前記診断事象信号の受信を登録するよう動作するグリッチ除去論理を含み、これにより前記ルーティング・モジュールが診断事象の発生を誤って信号化することを防止するデータ処理装置。
【請求項１２】
請求項１記載のデータ処理装置において、前記第１マッピング・モジュールと前記第２マッピング・モジュールとの少なくとも一方は、前記複数の前記ブロードキャスト・チャネルへの前記診断事象信号の前記プログラム可能なアサートを実行し、及び／または前記複数のブロードキャスト・チャネルの選択されたものからの前記診断事象データの前記プログラム可能な検索を実行するよう動作可能な複数の構成レジスタを含むデータ処理装置。
【請求項１３】
請求項１２記載のデータ処理装置において、前記構成レジスタはメモリ・マップ・アクセスを使用してプログラム可能であるデータ処理装置。
【請求項１４】
請求項１２記載のデータ処理装置において、前記構成レジスタはＪＴＡＧ走査アクセスを使用してプログラム可能であるデータ処理装置。
【請求項１５】
請求項１２記載のデータ処理装置において、前記構成レジスタの第１サブセットは、メモリ・マップ・アクセスと共にＪＴＡＧ走査アクセスを使用してプログラム可能であり、前記構成レジスタの第２サブセットはメモリ・マップ・アクセスを使用してプログラム可能であるデータ処理装置。
【請求項１６】
請求項１２記載のデータ処理装置において、前記ブロードキャスト・チャネルの少なくとも１つの上で診断事象の発生をシミュレートするアプリケーション・トリガ信号を発生するよう動作するアプリケーション・トリガ発生器を含むデータ処理装置。
【請求項１７】
請求項１６記載のデータ処理装置において、前記ブロードキャスト・チャネルの１つ以上へ前記アプリケーション・トリガ信号をプログラム可能にアサートするよう動作するアプリケーション・トリガ・レジスタを含むデータ処理装置。
【請求項１８】
請求項１６記載のデータ処理装置において、前記アプリケーション・トリガ信号はチャネル・マッピング情報を含むデータ処理装置。
【請求項１９】
請求項１記載のデータ処理装置において、前記複数の処理装置の少なくとも１つはプロセッサ・コアであるデータ処理装置。
【請求項２０】
請求項１記載のデータ処理装置において、前記複数の処理装置の少なくとも１つはコプロセッサであるデータ処理装置。
【請求項２１】
請求項１記載のデータ処理装置において、前記複数の処理装置の少なくとも１つはディジタル信号プロセッサであるデータ処理装置。
【請求項２２】
請求項１記載のデータ処理装置において、前記ルータ・モジュールの少なくとも１つのルータ出力ポートを前記別のルーティング・モジュールのルータ入力ポートへ接続し、前記ルーティング・モジュールの前記少なくとも１つのルータ入力ポートを前記別のルーティング・モジュールのルータ入力ポートへ接続することにより、前記ルーティング・モジュールを別のルーティング・モジュールへ接続可能にするデータ処理装置。
【請求項２３】
請求項１記載のデータ処理装置において、前記ルーティング・モジュールと前記マッピング・モジュールとは集積装置の構成部品であるデータ処理装置。
【請求項２４】
請求項１記載のデータ処理装置において、交差トリガ・ブロック装置を形成するよう前記ルーティング・モジュールに接続された別のマッピング・モジュールを含み、ルーティング・モジュールは前記交差トリガ・ブロック装置を別の各交差トリガ・ブロック装置へ接続するよう動作する少なくとも１つの拡張ポートを有するデータ処理装置。
【請求項２５】
複数の処理装置上の診断プロセスの交差トリガを制御するデータ処理方法において、
関連する処理装置上の診断事象の発生を指示する診断事象信号をマッピング・モジュールの事象マッピング入力ポートを介して受信する段階であって、前記関連処理装置は前記複数の処理装置のうちの１つである前記受信段階と、
前記ルータ入力ポートを使用して前記複数のブロードキャスト・チャネルの１つ以上へ前記診断事象信号をプログラム可能にアサートすることを含む第１マッピング操作を実行する段階と、
ルータ出力ポートを介して診断事象の発生を指示するデータをブロードキャストする段階と、
複数のブロードキャスト・チャネルの１つ以上で前記複数の処理装置の１つ以上の診断事象の発生を指示する段階と、
ルータ入力ポートを介して診断事象の発生を指示するチャネル・マップのデータを受信する段階と、
前記複数の処理装置の内の処理装置上の診断事象の発生を指示する前記複数のブロードキャスト・チャネルの１つ以上からのデータを含むチャネル化情報を前記ルータ出力ポートから受信する段階と、
前記複数のブロードキャスト・チャネルの選択したものから診断事象データを、前記チャネル化情報からプログラム可能に検索することにより第２マッピング操作を実行する段階と、
前記検索診断事象データを前記関連処理装置に供給して、前記検索診断事象データに依存する前記関連処理装置上の診断プロセスのトリガを容易にする段階と
を含む複数の処理装置上の診断プロセスの交差トリガを制御するデータ処理方法。
【請求項２６】
請求項２５記載の方法において、各ブロードキャスト・チャネルにアサートされた前記複数の処理装置の異なるものから複数の診断事象信号を組合わせる段階を含む方法。
【請求項２７】
請求項２５記載の方法において、前記組合わせ段階は論理ＯＲ演算を含む方法。
【請求項２８】
請求項２５記載の方法において、前記受信診断事象信号と前記受信チャネル化情報の少なくとも１つを局所クロック領域へ同期する段階を含む方法。
【請求項２９】
請求項２５記載の方法において、前記受信した診断事象信号のアサートを保持しその受信の確認を未処理にする方法。
【請求項３０】
請求項２５記載の方法において、前記関連処理装置へ前記診断事象信号の受信を確認する段階を含む方法。
【請求項３１】
請求項２５記載の方法において、前記チャネル化情報の受信の確認を登録する段階を含む方法。
【請求項３２】
請求項２５記載の方法において、前記チャネル化情報の受信と確認とを含む第１ハンドシェーク信号列と前記診断事象信号の受信と確認とを含む第２ハンドシェーク信号列との両方を監視し、前記第１ハンドシェーク信号列を表す単一のオフチップ信号と前記第２ハンドシェーク信号列を表す単一のオフチップ信号とを出力する段階を含む方法。
【請求項３３】
請求項２５記載の方法において、前記第１マッピング操作への入力として前記診断事象信号を供給する前に前記診断事象信号の受信を登録することによりグリッチ除去を実行し、これにより診断事象の発生の不正な信号化を防止する段階を含む方法。
【請求項３４】
請求項２５記載の方法において、前記検索した診断事象データを前記関連処理装置へ与える前に前記関連処理装置のクロック領域へ前記ルータ出力ポートから受信した信号を同期する段階を含む方法。
【請求項３５】
請求項２５記載の方法において、前記複数の前記ブロードキャスト・チャネルに前記診断事象信号の前記プログラム可能なアサートを実行し、及び／または前記複数のブロードバンド・チャネルの選択されたものから前記診断事象データの前記プログラム可能な検索を実行するよう動作する複数の構成レジスタを使用して、前記第１マッピング操作と前記第２マッピング操作とが実行される方法。
【請求項３６】
請求項３５記載の方法において、第１マッピング操作を実行する前記段階と第２マッピング操作を実行する前記段階とにおいて、前記構成レジスタはメモリ・マップ・アクセスを使用してプログラムされる方法。
【請求項３７】
請求項３５記載の方法において、第１マッピング操作を実行する前記段階と第２マッピング操作を実行する前記段階とにおいて、前記構成レジスタはＪＴＡＧ走査アクセスを使用してプログラムされる方法。
【請求項３８】
請求項２７記載の方法において、第１マッピング操作を実行する前記段階と第２マッピング操作を実行する前記段階とにおいて、前記構成レジスタの第１サブセットはメモリ・マップ・アクセスと共にＪＴＡＧ走査アクセスを使用してプログラムされ、前記構成レジスタの第２サブセットはメモリ・マップ・アクセスを使用してプログラムされる方法。
【請求項３９】
請求項３５記載の方法において、前記ブロードキャスト・チャネルの少なくとも１つの上で診断事象の発生をシミュレートするアプリケーション・トリガ信号を発生する段階を含む方法。
【請求項４０】
請求項３９記載の方法において、１つ以上の前記ブロードキャスト・チャネルに前記アプリケーション・トリガをプログラム可能にアサートする段階を含む方法。
【請求項４１】
請求項３９記載の方法において、前記発生されたアプリケーション・トリガ信号はチャネル・マッピング情報を含む方法。
【請求項４２】
請求項２５記載の方法において、前記複数の処理装置の少なくとも１つはプロセッサ・コアである方法。
【請求項４３】
請求項２５記載の方法において、前記複数の処理装置の少なくとも１つはコプロセッサである方法。
【請求項４４】
請求項２５記載の方法において、前記複数の処理装置の少なくとも１つはディジタル信号プロセッサである方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理に一般的に関する。特に、本発明は複数の処理装置上の診断プロセスの交差トリガの制御に関する。
【背景技術】
【０００２】
移動電気通信、データネットワーク、データ記憶及びイメージングのような分野で複数プロセッサ・システムがますます使用されている。例えば、移動電話ハンドセットは複数のプロセッサ・コア、ディジタル信号処理コア（ＤＳＰ）及び１つ以上の制御プロセッサを含んでもよい。従って、製品開発段階時に異なるプロセッサ間で事象の診断交差トリガを容易にする、このような複数プロセッサ・システムの相互接続システムを提供することが必要である。特に、単一の集積回路中の複数コアの同期した停止／開始及びステップを達成する能力は重要な要件である。例えば、３つの異なるコアＡ、Ｂ、Ｃを含むシステムにおいて、コアＡが特定の命令上のブレークポイントに到達した場合、コアＢとＣも出来る限り迅速に停止されるべきである。さらに、集積回路の他の部分の診断事象の発生に依存して、１つ以上のプロセッサ・コアがトリガまたは割込みを発生可能とすることも望ましい。処理装置の交差トリガ用の制御機構の要件は、プロセッサ・コアのみならず、コプロセッサ、現場プログラム可能なゲートアレイ（ＦＰＧＡ）、プログラム可能論理素子（ＰＬＤ）、ディジタル信号プロセッサ（ＤＳＰ）及びインテリジェントな周辺装置のような装置にも適用可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
同期デバック用の既知の１つの装置は、米国カリフォルニア州のアラン・ソフトウェアにより開発された「アスペックス（Ａｓｐｅｘ）」システムである。このシステムでは、開始／停止／ステップ操作はプロセッサ間で緊密に整合され、アスペックスが各プロセッサを独立に設定して所用動作を実行し、次いで最終実行結果が全てのプロセッサに送られる。ブレークポイントの交差トリガはハードウェア信号を使用して実行される。添付図面の図７１は、４つのプロセッサが如何に接続されてアラン・システムの交差トリガを実行するかを概略的に図示する。このシステムでは、交差トリガ・マトリクスは、メモリ・マップのイネーブル・スイッチを有する２つのグループのイネーブル・ラッチを含む複雑なプログラム可能な論理素子（ＣＰＬＤ）５１００を介して実装される。レジスタは、ユーザがどのプロセッサが他を割込み可能であるかを指定可能とする。添付図面の図７２はＣＰＬＤ５１００の構造を図示する。各プロセッサの出力は３つの他のプロセッサの各々にルートされ、各プロセッサの３つの可能入力はプロセッサと関係するＯＲゲートに与えられることが分かる。例えば、プロセッサ２の第１イネーブル・ゲート５２００の出力はプロセッサ１、３、４に対応するイネーブル・ゲート５３００に供給され、その出力はＯＲゲート５４００、５７００と５６００に各々供給される。アスペックス・システムは一連のラッチを介して直接のコア対コア・マッピングを提供する。このように、アスペックス・マトリクス・マッピングはコア数が増加するにつれて複雑度が増加し、容易にスケーラブルではないという欠点を有する。
【０００４】
その他の既知の交差トリガ・システムはテキサス・インストラメント社専用のエミュレーションバスである。このシステムによると、複数の可能な信号に対してバス線路が通信チャネルとして使用される。しかしながら、バス上の通信チャネルへのアクセスはシステムの現在の信号状態に依存する。
【課題を解決するための手段】
【０００５】
第１の面から見ると、本発明は複数の処理装置上の診断プロセスの交差トリガを制御するデータ処理装置であって、
複数のブロードキャスト・チャネルを含み、前記ブロードキャスト・チャネルの１つ以上は前記複数の処理装置上の１つ以上の診断事象の発生を指示するように動作し、診断事象の発生を指示するチャネル・マップのデータを受信する少なくとも１つのルータ入力ポートと、診断事象の発生を指示するチャネル化情報をブロードキャストする少なくとも１つのルータ出力ポートとを有する前記ルーティング・モジュールと、
マッピング・モジュールであって、
関連処理装置上での診断事象の発生を指示する診断事象信号を受信するよう動作する事象マッピング入力ポートであって、前記関連処理装置は前記複数の処理装置のうちの１つである前記事象マッピング入力ポートと、
前記診断事象信号を前記ルーティング・モジュールの１つ以上の前記複数のブロードキャスト・チャネルにプログラム可能にアサートし、前記第１マップ診断事象信号を前記少なくとも１つのルータ入力ポートに供給するよう動作する第１マッピング装置と、
前記複数の処理装置の処理装置上の診断事象の発生を指示する前記複数のブロードキャスト・チャネルの１つ以上からのデータを含む前記チャネル化情報を前記ルータ出力ポートから受信するよう動作するチャネル・マッピング入力ポートと、
前記チャネル化情報を受信し、前記複数のブロードキャスト・チャネルの選択したものから診断事象データを、前記チャネル化情報からプログラム可能に検索し、前記検索診断事象データを前記関連処理装置に送って、前記検索診断事象データに依存して前記関連処理装置上の診断プロセスのトリガを容易にするよう動作する第２マッピング・モジュールと、
を有する前記マッピング・モジュールと
を含むデータ処理装置を提供する。
【０００６】
その装置上の診断事象の発生を指示する、信号を任意の処理装置がプログラム可能にアサート可能であり、かつ複数装置システムのほかの処理装置上の診断事象の発生を指示する、情報を任意の処理装置がプログラム可能に検索可能である、複数のブロードキャスト・チャネルを提供する交差トリガ制御機構は、装置の対の間により堅牢な通信ルートが設けられている既知のシステムに対してより改善されたスケーラビリティを提供することを本発明は認識する。本発明はまた、バスへの診断事象に関するプログラム可能なアサートと情報の検索は、相互接続システムの部品装置間の関係とその特性に応じてチャネルを予め構成させることによって、ブロードキャスト・チャネル・リソースの改良された管理を提供することを認識する。これは、診断事象の通信用にバス線路を使用し、これにより１つ以上の装置が同じブロードキャスト・チャネルへのアクセスを競い、アクセスが現在の信号状態に依存する、既知のシステムで発生する不効率な通信の可能性を有効に減少する。
【０００７】
単一のチャネルが処理装置からの単一の診断事象入力と関係するように、ルーティング・モジュールのブロードキャスト・チャネルは管理されるが、望ましい実施例は、複数の入力診断事象信号を組合わせてシステムの処理装置へのブロードキャスト用の単一出力信号を発生するようにルーティング・モジュールでの組合わせ論理を含む。これは、各ブロードキャスト・チャネルを構成していくつかの処理装置の任意のものでの特定の診断事象の発生を信号することを可能とする利点を有する。組合わせ論理はＯＲゲートを含むことが望ましい、何故ならこれは、各ブロードキャスト・チャネルを、入力がＯＲゲートに供給される多数の処理装置の任意のものの上での特定の型式の診断事象（例えば、ブレークポイントまたは監視ポイントへの到着）の発生に関連付けることを可能とするからである。
【０００８】
診断プロセスの交差トリガを制御するデータ処理装置の部品と複数の処理装置は、単一の集積回路に所属する部品である、すなわち単一チップの部品であるか、または異なるチップ上に設けた部品でも可能であることが認められる。例えば、ルーティング・モジュールは、プロセッサ・コアや関連交差トリガ・インタフェースを製造するものとは異なるチップ上に製造可能である。
【０００９】
全ての処理装置、ルーティング・モジュール及びインタフェース・モジュールが同一チップ上に設けられる望ましい実施例では、ハンドシェーク・モジュールがルータ・モジュールに設けられて、各インタフェース・モジュールを介してルータ・モジュールと各処理装置との間で診断事象のハンドシェーク信号化を実行する。ハンドシェーク信号化は、ルータ・モジュールに接続された処理装置のクロック周波数の変更にこれが自動的に適合するため、非同期システムでの使用に特に堅牢である利点を有する。
【００１０】
他の望ましい実施例では、処理装置、ルーティング・モジュール及びインタフェース・モジュールは全てが同一チップ上に設けられてはいない。この実施例では、前記チャネル化情報の受信と確認を含む第１ハンドシェーク信号列と前記診断事象信号の受信と確認を含む第２ハンドシェーク信号との両方を監視するように動作する同期器インタフェースをルーティング・モジュールは備える。ルーティング・モジュールの同期器インタフェースは、前記第１ハンドシェーク信号列を表す単一のオフチップ信号と前記第２ハンドシェーク信号列を表す単一のオフチップ信号とを出力するようさらに動作可能である。これは、２線ハンドシェークを単線信号で置き換えることによりオフチップ信号化オーバヘッドを減少する利点を有する。オフチップ信号化はピン利用度とコストに関して高価である。従って、信号化オーバヘッドを減少することによりコスト的に有利な回路が作成されることを意味する。
【００１１】
プロセッサ装置から受信した診断事象信号はインタフェース・モジュールの第１マッピング・モジュールに直接供給可能であるが、望ましい実施例では、インタフェース・モジュールにグリッチを除去するように動作可能な同期論理を含む、汎用インタフェース回路を設ける。または、別のラッパ回路をグリッチ除去用に使用してもよい。汎用インタフェース回路は、ある場合には、簡単なラッパ回路を介して、異なるデータ処理装置がインタフェース・モジュールに接続することを可能とする。処理装置が、診断事象信号がフリップフロップにより出力されるプロセッサ・コアでない場合、同期論理が既に内部的に設けられているか、またはルーティング・モジュールに接続された全ての処理装置が同期している場合、処理装置から受信した診断事象信号がグリッチのないものであることを期待することは出来ない。従って、内部回路のグリッチ除去論理の設備は、ルーティング・モジュールにより誤った診断事象が登録される可能性を著しく減少する可能性を有する。誤った診断事象はシステムの他の処理装置上の診断プロセスを不利にトリガすることがある。
【００１２】
望ましい実施例では、インタフェース・モジュールは、関連処理装置に検索した診断事象データを供給する前に、ルータ出力ポートから受信した信号を関連処理装置のクロック領域に同期するよう動作する同期論理を含む。これは、それ自身の処理サイクルに適切な時間スケールで他の処理装置上の診断事象の発生に関する情報を処理装置が受信する利点を有する。これは、処理装置がルーティング・モジュールからとは異なるクロック信号に従ってたとえ動作しているとしても、複数の処理装置間での交差トリガの実行を容易にする。
【００１３】
診断事象データのプログラム可能なアサートとブロードキャスト・チャネルからの診断事象データの検索は、多数の異なる方法で実行可能である。例えば、診断事象への通信チャネルの接続性を指定するため、各トリガ信号に簡単な構成レジスタを設けることも可能である。しかしながら、望ましい実施例では、第１マッピング・モジュールと第２マッピング・モジュールとの少なくとも一方が、複数のブロードバンド・チャネルへの前記診断事象信号のプログラム可能なアサートを実行し、及び／または複数のブロードバンド・チャネルの選択されたものからの診断事象データのプログラム可能な検索を実行するよう動作可能な複数の構成レジスタを含む。これは、単一の構成レジスタが各チャネルに設けられて、処理装置間の通信チャネルの接続性を指定するため、実装するのが単純なシステムである利点を有する。
【００１４】
望ましい実施例によると、構成レジスタはメモリ・マップ・アクセスを使用してプログラム可能である。これは、構成レジスタが関係するプロセッサにより単純にプログラム可能なメモリ・マップ・スレーブ装置として構成レジスタを処理可能である、利点を有する。
【００１５】
別の望ましい実施例によると、ＪＴＡＧ走査アクセスを使用して構成レジスタはプログラム可能である。この実施例は、接続が走査インタフェースを介して実行されなければならないため、走査チャネルによるレジスタ構成が生産後の改竄に対して本質的に安全である利点を有する。さらに、走査アクセスは非侵入構成とルータ・モジュール設定の観察を可能とする。これは、ルータ・モジュールが組込みトレース・マクロセル（ＥＴＭ）を駆動するために使用されるとき、またはルーティング・モジュールの侵入構成が問題の診断事象に対して実行時にシステムの挙動を実際に変更してしまう場合に特に有用である。デバッグ・ツールは通常プロセッサ・コアへ走査アクセスを使用するため、ルータ・モジュールの構成に同様のアクセス機構を使用するのが有利である。走査アクセスを使用する利点の１つは、プロセッサがプログラム・コードを実行している（通常動作）間にもレジスタにアクセス可能な点である。
【００１６】
他の望ましい実施例によると、構成レジスタの第１サブセットはＪＴＡＧ走査アクセスと共にメモリ・マップ・アクセスを使用してプログラム可能であり、構成レジスタの第２サブセットはメモリ・マップ・アクセスを使用してプログラム可能である。
【００１７】
本技術による交差トリガ制御装置を使用した複数の処理装置は、プロセッサ、コプロセッサ、デバッグ・サブシステム、ディジタル信号プロセッサ（ＤＳＰ）及び知能周辺装置のような多数の異なる装置の内の任意のものでよい。しかしながら、望ましい実施例では、処理装置の内の少なくとも１つは、プロセッサ・コア、コプロセッサまたはディジタル信号プロセッサである。
【００１８】
インタフェース・モジュールを介してのみ他の処理装置へ接続可能となるようにルーティング・モジュールを構成可能である。望ましい実施例では、ルーティング・モジュールのルータ出力ポートを別のルーティング・モジュールのルータ入力ポートへ、またその逆に接続することにより、ルーティング・モジュールを別のルーティング・モジュールに接続して動作可能に出来る。これは、個別のルーティング・モジュールのポート数を変更する必要性なしにルーティング・モジュールを互いに接続して別の処理装置の接続を収容可能であるため、システムをよりスケーラブルとする利点を有する。さらに、この望ましい実施例の内部回路は、２つ以上のルーティング・モジュールの交差接続が組合わせループを発生することがないように設計される。
【００１９】
他の面から見ると、本発明は、複数の処理装置上の診断プロセスの交差トリガを制御するデータ処理方法において、
関連する処理装置上の診断事象の発生を指示する診断事象信号をマッピング・モジュールの事象マッピング入力ポートを介して受信する段階であって、前記関連処理装置は前記複数の処理装置のうちの１つである前記受信段階と、
前記ルータ入力ポートを使用して前記複数のブロードキャスト・チャネルの１つ以上へ前記診断事象信号をプログラム可能にアサートすることを含む第１マッピング操作を実行する段階と、
ルータ出力ポートを介して診断事象の発生を指示するデータをブロードキャストする段階と、
複数のブロードキャスト・チャネルの１つ以上で前記複数の処理装置の１つ以上の診断事象の発生を指示する段階と、
ルータ入力ポートを介して診断事象の発生を指示するチャネル・マップのデータを受信する段階と、
前記複数の処理装置の内の処理装置上の診断事象の発生を指示する前記複数のブロードキャスト・チャネルの１つ以上からのデータを含むチャネル化情報を前記ルータ出力ポートから受信する段階と、
前記複数のブロードキャスト・チャネルの選択したものから診断事象データを、前記チャネル化情報からプログラム可能に検索することにより第２マッピング操作を実行する段階と、
前記検索診断事象データを前記関連処理装置に供給して、前記検索診断事象データに依存する前記関連処理装置上の診断プロセスのトリガを容易にする段階と、
を含む複数の処理装置上の診断プロセスの交差トリガを制御するデータ処理方法を提供する。
【００２０】
本発明の上記の及びその他の目的、機能及び利点は、添付図面と関連して読まれる図示実施例の以下の詳細な説明から明らかとなろう。
【実施例】
【００２１】
図１は本技術による交差トリガ・システムを概略的に図示する。本システムは複数のプロセッサ・コア１１０−１から１１０−Ｘを含み、その各々は対応する交差トリガ・インタフェース（ＣＴＩ）１２０−１から１２０−Ｘを有する。各交差トリガ・インタフェースは構成レジスタ１３０−１から１３０−Ｘの組を有する。交差トリガ・インタフェースの各々は共通の交差トリガ・マトリクス１５０（またはルーティング・モジュール）と通信する。コア１１０−１と対応する交差トリガ・インタフェース１２０−１とは同一のクロック信号ＣＬＫ１により駆動される。
【００２２】
コア１１０−１は、交差トリガ・インタフェース１２０−１へ送られる、トリガ事象信号ＴＲＩＧＩＮを出力する。トリガ事象信号はコア上の診断事象の発生、例えばブレークポイント信号、ウオッチポイント信号、ハードウェア割込みまたはソフトウェア割込みを指示する。交差トリガ・インタフェース１２０−１はコア１１０−１から受信したＴＲＩＧＩＮ信号を認識し、これを使用して交差トリガ・マトリクス１５０によりサポートされる複数のデータチャネルのトリガ要求ＴＲＩＧＲＥＱ信号を発生する。交差トリガ・マトリクス１５０によりサポートされる各チャネルは、複数プロセッサ・システム内の診断プロセスと関係する特定の発生または条件を表す。チャネルは、システム中の専用の意味づけ、例えば「システムエラー」、プロセッサの開始／停止、トレースの開始／停止を有するか、またはチャネルにより表される処理事象をデバッガによりプログラム可能に構成可能であるか、のどちらかである。本実施例では、所与のチャネルは、そのチャネルへの全ての入力の論理ＯＲである、単一ビット出力を与える。各トリガ要求信号ＴＲＩＧＲＥＱの受信に応答して、交差トリガ・マトリクス１５０は適切なデータチャネル上にチャネル・トリガ信号ＣＨＮＬＴＲＩＧをブロードキャストする。チャネル・トリガ信号ＣＨＮＬＴＲＩＧは交差トリガ・マトリクスの出力ポートを介して交差トリガ・インタフェース１２０により受信され、トリガ出力ＴＲＩＧＯＵＴ信号を介して接続したコア１１０と通信する。コア１１０−１上のトリガ事象ＴＲＩＧＩＮに対応するトリガ要求信号ＴＲＩＧＲＥＱ１は、チャネル・トリガ信号ＣＨＮＬＴＲＩＧ２からＣＨＮＬＴＲＩＧ  Ｘを介して交差トリガ・マトリクス１５０によりコア１１０−２から１１０−Ｘの全てまたはサブセットと通信可能である。従って、あるコア上の診断事象の発生は、複数プロセッサ・システムの１つ以上の他のコアへ容易に通信可能である。これは複数装置システム上で診断プロセスの交差トリガを容易にする。構成レジスタ１３０−１から１３０−Ｘは、どのソース（すなわち、ＴＲＩＧＩＮ発生コア）が交差トリガ・マトリクス１５０のどのチャネルを駆動するか、及びどのシンク（すなわち、ＴＲＩＧＯＵＴ受信コア）が特定のチャネルを監視するか、を制御するよう動作可能である。
【００２３】
図２は本技術に従って２つの交差トリガ・システムが互いに接続されている配置を概略的に図示する。本配置は、２つの交差トリガ・インタフェース・モジュール２３２、２３４の組に接続された第１交差トリガ・マトリクス２５２を有する第１システム２１０と、２つの交差トリガ・インタフェース・モジュール２３６、２３８の別の組に接続された第２交差トリガ・マトリクス（ＣＴＭ）２５４を有する第２システム２２０とを含む。第１交差トリガ・マトリクス２５２は第２交差トリガ・マトリクス２５４に接続される。しかし、第１ＣＴＭ２５２と第２ＣＴＭ２５４との間のポート接続は、例えばＣＴＩ２３２とＣＴＭ２５２との間の接続に対して反転されている。従って、第１ＣＴＭ２５２はＣＨＮＬＴＲＩＧ信号を出力し、これはＣＴＩ２３２、２３４の第１組の一方に接続されたコアの１つの上の診断事象の発生を第２ＣＴＭ２５４のＴＲＩＧＲＥＱポートにブロードキャストし、一方第１ＣＴＭ２５２のＴＲＩＧＲＥＱポートは、これがＣＨＮＬＴＲＩＧ信号を受信するように接続される。ＣＨＮＬＴＲＩＧ信号は、第２ＣＴＭ２５４からのＣＴＩ２３６と２３８の第２組の一方に接続されたコアの１つ上の診断事象の発生を指示する。従って、例えば、トリガ事象ＴＲＩＧＲＥＱがＣＴＩ２３２により送信された場合、これは関連ＣＴＭ２５２に伝播され、またＣＴＭ２５２はトリガ事象をＣＨＮＬＴＲＩＧ信号を介して第１システム２１０の他のＣＴＩ２３４へ伝播する。さらに、ＣＴＩ２３２により送信されたＴＲＩＧＲＥＱ信号は、第２ＣＴＭ２５４のＴＲＩＧＲＥＱポートへ送られる、ＣＨＮＬＴＲＩＧ信号を介して第２ＣＴＭ２５４に伝播される。次いで第２ＣＴＭ２５４は第２システム２２０のＣＴＩ２３６と２３８と関連プロセッサ・コアへ、ＣＴＩ２５２と関連するコア上の診断事象の発生をブロードキャストする。この配置は、２個の交差トリガ・システム２１０、２２０を互いに接続し、これにより交差トリガ・マトリクスの寸法を変更することなく、すなわち、各個別のＣＴＭのポート数を変更することなく、複数装置システム上のノード数を拡張可能とする利点を有する。
【００２４】
図３は２個の交差トリガ・マトリクス２５２、２５４を互いに接続した時に発生する可能性のある望ましくない組合わせループを概略的に図示する。図３に図示した型式の組合わせループは、トリガ要求信号ＴＲＩＧＲＥＱが同じＣＴＭポートのＣＨＮＬＴＲＩＧ信号バス上に転送されないことを保証することにより、本技術による配置で避けられる。
【００２５】
図４は、各々が交差トリガ・マトリクスと２つの交差トリガ・インタフェース・モジュールを含む、４つの交差トリガ・システム４１０、４２０、４３０、４４０をいかに接続するか、を概略的に図示する。図４に示すように、４つのシステムの接続は、４つ全てのシステム間の論理接続を与え、従って統合化装置を形成するよう動作する別のＣＴＭ４５０へ４つの交差トリガ・システムの各々のＣＴＭを接続することにより実行される。
【００２６】
図５は本技術による交差トリガ・システムの特別な実装を概略的に図示する。本装置は、各々が組込みトレース・マクロ（ＥＴＭ）から構成される診断回路に接続された２個のＡＲＭ９４６縮小命令セット計算（ＲＩＳＣ）プロセッサ・コア５１０、５１２を含む。２個の組込みトレース・マネージャ５１４、５１６がプロセッサ・コード実行のトレース操作に使用される。各プロセッサ・コア５１０、５１２は各々の交差トリガ・インタフェース・モジュール５２０、５２２に接続される。２個の交差トリガ・インタフェース・モジュールは、第１通信チャネル５５３と第２通信チャネル５５５をサポートする単一の交差トリガ・マトリクス５５０に接続される。交差トリガ・インタフェース５２０、５２２の各々は交差トリガ・マトリクス５５０の２つのチャネル５５３、５５５に接続される。ＣＴＭ５５０のチャネルへの入力とそこからの出力はプログラム可能に構成可能である。構成に応じて、組込みトレース・マクロ事象信号ＥＸＴＯＵＴまたはデバッグ確認信号ＤＢＧＡＣＫのどちらかがコア、例えばコア５１０により出力され、対応する交差トリガ・インタフェース・モジュール５２０により受信され、ＴＲＩＧＲＥＱ信号の１つを通して交差トリガ・マトリクス５５０に伝播される。交差トリガ・マトリクス５５０は、１つ以上の交差トリガ・インタフェース・モジュール５２０、５２２により受信される、対応するＣＨＮＬＴＲＩＧ信号を出力することによりＴＲＩＧＲＥＱ信号に応答する。次いで事象は、デバッグ事象ＤＢＧＲＱ、組込みトレース・マネージャ事象ＥＸＴＩＮまたは割込み信号ＩＲＱの内の１つとして、第２プロセッサ・コア５１６に転送される。
【００２７】
図６は本技術によるオンチップ信号化方式を概略的に図示する。別のオフチップ信号化方式は第９図に概略的に図示されていて、以下で説明する。図６の装置は、３つのチャネルを有する交差トリガ・マトリクス６５０、２つのプロセッサ・コア６１０、６２０、及び各々の交差トリガ・インタフェース・モジュール６２０、６２２を含む。２つのコア６１０、６１２の各々は交差トリガ・マトリクス６５０の３つのチャネルに接続されているため、全部で６つのハンドシェーク・モジュール６５２−１から６５２−６が交差トリガ・マトリクス内に設けられる。２つのコア６１０、６１２の各々はそれ自身の独立なクロック信号ＣＬＫ１とＣＬＫ２により各々駆動される。６個のハンドシェーク・モジュール６５２−１から６５２−６は共通のクロック信号ＣＬＫ３により駆動される。
【００２８】
診断事象はパルスを使用して交差トリガ・マトリクスの３つのチャネル上で信号化される。チャネル出力のパルスの上昇縁を使用して診断事象を指示する。２つのコア６１０、６１２の各々はそれ自身のクロック信号を有しているため、システムのプロセッサ・コアは非同期でかつ異なる周波数である。このため、「ハンドシェーク」信号化方式をタイミング調整に使用する。これは交差トリガ・マトリクス６５０に接続された部品のクロック周波数の変更を自動的に適合させるため、ハンドシェーク信号は非同期システムには特に適している。ハンドシェーク信号化方式によると、コア６１０または６１２の一方からのＴＲＩＧＲＥＱ信号の受信に応答するＣＴＭ６５０によるＣＨＮＬＴＲＩＧ事象出力は、プロセッサ・コアから確認信号ＣＨＮＬＡＣＫを受信するまでＣＴＭ６５０のチャネルに一旦アサートして保持されなければならない。別の方式では、ＴＲＩＧＲＥＱ信号がアサートされたチャネルへ分配された装置の各々から確認ＣＨＮＬＡＣＫを受信するまでＣＨＮＬＴＲＩＧ事象を保持可能である。しかし、これは、プロセッサ・コアの一方が電源オフされたり、またはプロセッサのクロックがディスエーブルされた場合に、プロトコルのデッドロックを不当に導入する可能性がある。
【００２９】
図６の配置では、ハンドシェーク・モジュール６５２−１から６５２−６の各々は各ＣＴＩチャネルポートと交差トリガ・マトリクスとの間で信号を確認するよう動作する連続要素を有する。従って、ハンドシェークは２つのクロック領域、交差トリガ・モジュール６５０クロック領域ＣＬＫ３と適当な交差トリガ・インタフェースＣＬＫ１またはＣＬＫ２のクロック領域にのみ依存する。
【００３０】
チャネル出力のパルスの上昇縁を使用して診断事象を指示するため、交差トリガ・インタフェース６２０、６２２と交差トリガ・マトリクス６５０は縁検出を実行可能でなければならない。上昇縁を検出したときに事象が伝播される。以下のプロトコルが図６の装置により実行されるハンドシェーク信号化に適用される：
・  ＴＲＩＧＲＥＱ（ＣＴＩ６２０、６２２出力）とＣＨＮＬＴＲＩＧ（ＣＴＭ６５０出力）はトリガ信号の上昇縁でのみ事象として解釈される。
・  ハンドシェークのため、コアからの信号がアクティブでなくなったとしても、ＴＲＩＧＡＣＫ（ハンドシェーク信号に対応）をＣＴＭ６５０から受信するまで、ＴＲＩＧＲＥＱ（ＣＴＩ出力）はアクティブに留まらなければならない。
・  交差トリガ・マトリクス・モジュールでは、出来る限り短い時間の間チャネルはアクティブ（状態「１」）に保持され、ＴＲＩＧＲＥＱ（ＣＴＭ入力）が依然としてアクティブであったとしても、状態「０」に戻らなければならない。
・  ハンドシェークを尊敬するため、交差トリガ・マトリクス６５０は、プロセッサ・コアによりチャネル上で上昇縁を検出した時にＣＨＮＬＡＣＫを受信するまでＣＨＮＬＴＲＩＧをアクティブに保持する。
【００３１】
交差トリガ・マトリクス６５０上にブロードキャストされた診断事象は非同期クロック領域から発生した可能性があるため、２つの規則を遵守しなければならない。規則１は、交差トリガ・マトリクス６５０の入力である全ての信号は「グリッチなし」でなければならない点である。そうでないと、プロセッサ・コアの出力の任意のグリッチが交差トリガ・マトリクス６５０に伝播し、診断事象として誤って解釈される。この理由のため、必要に応じてグリッチ除去を実行するよう動作する回路が交差トリガ・インタフェース・モジュール６２０、６２２に設けられる。規則２は、交差トリガ・マトリクス６５０の出力（ＣＨＮＬＴＲＩＧとＴＲＩＧＡＣＫ）は、同期がコア中に既に存在していない場合には、プロセッサ・コアにより使用する前に、ローカル・クロック領域ＣＬＫ１またはＣＬＫ２に同期されなければならない点である。必要に応じて、同期はＣＴＩモジュール６２０、６２２でも実行される。
【００３２】
規則１に関しては、デバッグを実行するために使用される合成ツールは一般的に信号を制約する必要な機構を設けていないため、これは「グリッチなし」である。図６の配置では、プロセッサ・コア６１０、６１２はＡＲＭ９Ｅ−Ｓ（例えば、ＡＲＭ９４６Ｅ−Ｓ）ディジタル信号処理強化３２ビットＲＩＳＣプロセッサ・コアである。ＡＲＭ９Ｅ−Ｓはデバッグを実行可能な組込みインサーキット・エミュレータ実時間論理を含む。ＡＲＭ９Ｅ−Ｓコアは組合わせ回路の出力（すなわち、３入力ＯＲゲート）であるデバッグ確認信号ＤＢＧＡＣＫを発生する。この場合、全ての入力に対して、状態の単純な変化がＤＢＧＡＣＫ信号にグリッチを生じさせない保障はない。このようなグリッチは非同期回路により擬似事象として取上げられる。
【００３３】
図６の配置では、交差トリガ・インタフェース６２０、６２２の各々は、各プロセッサ・コア６１０、６１２からの事象を登録する事象レジスタ（図示せず）を有する。交差トリガ・マトリクス６５０にＴＲＩＧＲＥＱ信号として送信される前に、事象は登録されなければならない。しかしながら、ＴＲＩＧＲＥＱ信号がコア内部のレジスタの出力から得られる場合は事象レジスタをバイパスすることも可能である。
【００３４】
規則２に関しては、標準の２レジスタ同期を使用して、プロセッサ・コア６１０または６１２の局所クロック領域との交差トリガ・マトリクスの同期を実施する。図７はこの目的に適した同期回路を概略的に図示する。図７の回路は２個のエッジ・トリガのラッチ（レジスタ）７１０、７２０とマルチプレクサ７３０を含む。エッジ・トリガのラッチ７１０、７２０には共通のクロック信号ＣＬＫが送られる。入力信号は第１エッジ・トリガ・ラッチ７１０へ送られ、その出力は第２エッジ・トリガ・ラッチへの入力として送られる。入力信号はまたバイパス信号と共にマルチプレクサ７３０へ入力として送られる。同期信号ＳＩＧＮＡＬＳＹＮＣはマルチプレクサ７３０の出力から得られる。
【００３５】
図７の同期回路はプロセッサ・コア６１０、６１２上のターゲット・プロセスに応じて適合される必要が有ることが認められる。例えば、プロセッサ・コアのライブラリ規則は特殊設計の同期レジスタの使用を必要とするか、または同期チェーンを形成するそのレジスタを互いに非常に近接して配置しなければならない。
【００３６】
図８は、第１プロセッサ・コア上の診断事象の発生から開始して第１プロセッサ・コア上の診断事象の発生を通知されている第２プロセッサ・コアで終了する一連の通信を概略的に図示する流れ図である。この過程は図１の装置の文脈で考えられる。この過程は段階８１０で開始し、第１プロセッサ・コア１１０−１上の診断事象の発生である。診断事象は、第１プロセッサ・コア１１０−１から対応する交差トリガ・インタフェース１３０−１へ送信されるＴＲＧＩＮ信号を発生する。次いで、段階８３０で、交差トリガ・インタフェース１３０−１内の回路が受信したＴＲＩＧＩＮ信号のグリッチ除去を実行し、グリッチのないＴＲＩＧＲＥＱ信号を交差トリガ・マトリクス１５０に出力する。交差トリガ・マトリクス１５０は第１プロセッサ・コアからのＴＲＩＧＲＥＱ信号を第２プロセッサ・コア１１０−２へ（ＣＴＭチャネルの１つを介して）転送する。次いで、過程は８４０に進み、ここで交差トリガ・マトリクスは第２プロセッサ・コア１１０−２の交差トリガ・インタフェース１３０−２へＣＨＮＬＴＲＩＧ信号を送信する。段階８６０で、第２プロセッサ・コア１１０−２は、ＣＨＮＬＴＲＩＧ信号に応答して交差トリガ・インタフェース１３０−２によりこれに送信されたＴＲＩＧＯＵＴ信号を受信する。このように、第２プロセッサ・コア１１０−２は第１プロセッサ・コア１１０−１上の診断事象の発生を通知され、これは協調デバッグ操作の実行を可能とする。
【００３７】
図８の流れ図から、遅れの程度は本技術による複数コア・システムのあるコアから他のコアへの事象の通信と関係していることが明らかである。遅れは、ＴＲＩＧＩＮ信号が交差トリガ・インタフェースに入った時から他のプロセッサ・コアへＴＲＩＧＯＵＴ信号として伝播するまでの間経過するクロック数に対応する。
【００３８】
各交差トリガ・インタフェース６２０、６２２と交差トリガ・マトリクス６５０の信号路は組合わせであるため、遅れは同期回路にのみ帰せられる。これから、最悪ケースでは遅れは以下の寄与の合計となる：
ｉ．ＴＲＩＧＲＥＱ事象を交差トリガ・マトリクス６５０へ送信するＣＴＩ６２０または６２２のクロックサイクル（ＣＴＩにより実行されるグリッチの除去による）
ｉｉ．あるコアのＴＲＩＧＩＮ事象の他のコアへのＴＲＩＧＯＵＴ事象への伝播に起因する組合わせ遅延
ｉｉｉ．交差トリガ・マトリクス６５０からＣＨＮＬＴＲＩＧ事象を受信する、ＣＴＩ６２０または６２２、または両方のクロックサイクル（ＣＨＮＬＴＲＩＧ信号の出力前に、受信コアのクロックへＣＴＭ６５０を同期させることに起因）
【００３９】
ある場合には、この最悪ケース遅れを減少可能である。特に、プロセッサにより送信されたＴＲＩＧＩＮ信号がフリップフロップの出力である場合、コアからの受信時にグリッチがない状態なので、対応する交差トリガ・インタフェースで信号を登録する必要はない。交差トリガ・マトリクス６５０によりインタフェースされているコアが内部同期論理を有している場合、例えば、プロセッサが非同期信号を受信するように指定された場合は、最悪ケース遅れをこれも減少できる。さらに、複数コア・システム中の全てのプロセッサが同期している場合、ＳＹＮＣＢＹＰＡＳＳ信号を作動可能である。しかし、この路は配置及び合成タイミング制約を尊重しなければならない。
【００４０】
図６の交差トリガ・システムは、異なる特性を有する装置（例えば、プロセッサ・コア）への接続性に関してある程度の柔軟性を有するように設計されている。これは、プロセッサ特性に応じてある種のパラメータを変更可能なようにシステムを構成することにより達成される。従って、ユーザはどの信号がグリッチがなく、どの信号入力が非同期となるかを指定可能である。システムはまた、プロセッサが同期であり、配置とタイミング制約が同期回路をバイパスすることを可能とする時に、作動可能なＳＹＮＣＢＹＰＡＳＳ入力も含む。
【００４１】
プロセッサ・クロックがたとえ停止していても、例えば割込みを待機しているとき、対応する交差トリガ・インタフェース６２０、６２２は交差トリガ・マトリクスから事象を受信可能である。
【００４２】
交差トリガ・インタフェース・クロックＣＬＫ１、ＣＬＫ２がコア・クロックＣＬＫ３と同じである場合、交差トリガ・マトリクス６５０により出力されるＣＨＮＬＴＲＩＧ信号は、交差トリガ・インタフェース６２０、６２２からＣＨＮＬＡＣＫを受信するまでアクティブに保持される。交差トリガ・マトリクス６５０は、プロセッサ・クロックが一旦再開したときにのみＣＨＮＬＡＣＫを受信する。この場合、コア上で日付外れ事象が発生する。これは、他のプロセッサにより使用されているチャネルを避けない。
【００４３】
コア６１０、６１２の場合のように交差トリガ・インタフェース６２０、６２２のクロックが停止しない場合、交差トリガ・インタフェースはＴＲＩＧＯＵＴ信号を使用してコアへ事象を上げようとする。この振る舞いはプロセッサに依存する。ＴＲＩＧＯＵＴを使用してコア上へ事象を上げるのを避けるには、クロックを停止する前にプロセッサはその交差トリガ・インタフェースをディスエーブルするよう構成可能である。
【００４４】
図６のオンチップ・ハンドシェーク信号化方式はオフチップ・プロセッサでの使用は不適当である。これは、ハンドシェーク信号をオフチップに戻すためには、ピン利用度とコストに関して高価すぎるためである。図９は本技術によるオフチップ信号化方式を概略的に図示する。図９の回路は交差トリガ・マトリクス９３０を有する第１チップと、プロセッサ・コア９５０と関連交差トリガ・インタフェース９５０を有する第２チップ９２０とを含む。２つのチップの各々にはオンチップ信号化モジュール９６０または９７０が設けられる。第１信号化モジュール９６０は第１チップの交差トリガ・マトリクス９３０に接続され、一方第２信号化モジュール９７０は第２チップ上のプロセッサ・コア９４０の交差トリガ・インタフェース９５０に接続される。２つの信号化モジュール９６０、９７０は、２線ハンドシェークを単一信号に変換することにより交差トリガ・インタフェース９５０と交差トリガ・マトリクス９３０との間の通信を取り次ぐ。従って、ＣＴＭ９３０とＣＴＩ９５０オフチップとの間を直接に通過する４つの信号ＴＲＩＧＲＥＱ、ＴＲＩＧＡＣＫ、ＣＨＮＬＴＲＩＧ、ＣＨＮＬＡＣＫ信号ではなく、２つの信号ＣＴＲＩＧＩＮとＣＴＲＩＧＯＵＴのみがオフチップを通過する。２つの信号化モジュール間で実装されるプロトコルは周波数独立なパルス・トリガである。信号化モジュール９６０、９７０の各々は、交差トリガ・マトリクス９３０によりサポートされる各チャネルに対して１つの、２つの同期装置９６２、９６４、９７２、９７４を有する。
【００４５】
図１０は図９の同期装置９６２、９６４、９７２、９７４で使用される型式の縁捕獲回路を概略的に図示する。図１０の回路は、第２レジスタ（エッジ・トリガ・ラッチ）１０２０に直列接続の第１レジスタ（エッジ・トリガ・ラッチ）１０１０と交差トリガ信号Ｃｔｒｉｇから入力を受信するインバータ１０３０を含む。インバータ１０３０の出力はエッジ・トリガのラッチ１０１０、１０２０の各々へのリセット信号として送られる。第２レジスタ１０２０の出力は縁検出用のシーケンサ回路に送られる。
【００４６】
図１０の回路の動作原理を以下に説明する。２つのレジスタ１０１０、１０２０の出力は「１」に初期化される。ＣＴｒｉｇ信号の上昇縁は両方のレジスタをリセット（「０」）させる。２つのレジスタは同じクロックサイクルでＣｔｒｉｇのデアサートによりクロックされる。２つのレジスタ１０１０、１０２０の使用により出力「０」の最小１サイクルが保障される。それ故、シーケンス論理がこの回路からの出力上の低転移を検出し、ハンドシェーク信号化を尊重しつつ、これを交差トリガ・マトリクス９３０または交差トリガ・インタフェース９５０への事象に関連付ける。
【００４７】
図６の操作と関連して上記したようにハンドシェーク・プロトコルを尊重するためには、図１０の縁捕獲回路の出力は縁検出及びハンドシェーク部分に接続されなければならない。
【００４８】
図９の回路の全てのチップ部品は非同期事象と協働するよう設計される。それにも係らず、第１信号化モジュール９６０は、それが接続される交差トリガ・マトリクス９３０と同じクロックＣＬＫ１を使用する。同様に、第２信号化モジュール９７０は、それが接続される交差トリガ・インタフェースと同じクロックＣＬＫ２を使用する。これは、これらのモジュール間で同期が必要ないことを意味するため、さらに改良された遅れを与える。
【００４９】
図９のチップ９１０または９２０の一方がオフにされた場合、交差トリガ（Ｃｔｒｉｇ）出力は駆動を停止され、他のチップはこの入力を論理「１」（技術に依存する）として解釈する。これは交差トリガ・マトリクス９３０または交差トリガ・インタフェース９５０へ不正な事象を伝播する可能性を有する。しかし、縁検出でのみある事象が検出可能であるため、デッドロックの可能性はない。不正な事象の伝播は、図１０のＣＴｒｉｇ入力にプルダウン抵抗を追加することにより避けられる。
【００５０】
図１１Ａと１１Ｂとは図９の交差トリガ・マトリクス９３０の２つのチャネルが以下に動作するかを概略的に図示する。図１１Ａに図示するように、交差トリガ・マトリクス９３０は多数のチャネル（この場合２つ）から構成される単純なクロスバーである。各チャネルは図１１Ａで垂直の線として表現され、チャネルへの入出力は水平の矢印により表現される。この場合各チャネルは２つの入力ＣＴｒｉｇＩｎ［０］、ＣＴｒｉｇＩｎ［１］と２つの出力ＣＴｒｉｇＯｕｔ［０］、ＣＴｒｉｇＯｕｔ［１］を有する。図１１Ｂは、各チャネルへの入力信号に実行されて単一ビット出力信号ＣＴｒｉｇＯｕｔ［０］とＣＴｒｉｇＯｕｔ［１］を発生する論理処理を概略的に図示する。チャネル０では、ＣＴｒｉｇＩｎ［０］と記された２つの入力信号は、その単一ビット出力がＣＴｒｉｇＯｕｔ［０］であるＯＲゲート１１００へ送られる。同様に、チャネル１の出力ＣＴｒｉｇＯｕｔ［１］はそのチャネルへ入力の論理ＯＲである。ブレークポイントまたはウォッチポイントに到達したような何らかの診断発生または条件を表すためにチャネルを使用可能である。
【００５１】
交差トリガ・マトリクス９３０を定義する多数のシステム依存パラメータがある。特に、以下の比率は交差トリガ・マトリクス（すなわち、ルーティング・モジュール）特性を定義する：
・  チャネル数：ＯＲゲート数
・  チャネル・ソース数：これらのＯＲゲートの入力数
・  チャネル・シンク数：これらのＯＲゲートの出力へ接続された信号数
【００５２】
交差トリガ・マトリクス６５０はまた、図６に図示するように交差トリガ・インタフェースとのハンドシェーク信号化を完了するためのいくつかの連続的要素も含む。
【００５３】
図１２は図６の交差トリガ・マトリクスの連続的要素がいかに接続されるかを概略的に図示する。回路を簡単化するため、図１２は１つのプロセッサのみのインタフェースを示す。ＴＲＩＧＲＥＱ、ＴＲＩＧＡＣＫ、ＣＨＮＬＴＲＩＧ及びＣＨＮＬＡＣＫ信号はチャネル当たり１ビットを有するバスであり、各ビットに独立なハンドシェークが実装されていることに注意されたい。図１２の回路は、交差トリガ・マトリクス６５０と交差トリガ・インタフェース６２０との間のＴＲＩＧＲＥＱ及びＴＲＩＧＡＣＫ信号の通信を取り持ち、交差トリガ・マトリクス６５０内の３つのチャネルの各々へのＣＴＲＩＧＯＵＴ信号を出力するトリガ要求ハンドシェーク・モジュール６５４を示す。チャネル・トリガ・ハンドシェーク・モジュール６５６は、交差トリガ・マトリクス６５０と交差トリガ・インタフェース６２０との間のＣＨＮＬＴＲＩＧ及びＣＨＮＬＡＣＫ信号の通信を取り持ち、交差トリガ・マトリクス６５０内の３つのチャネルの各々からのＣＴＲＩＧＩＮ信号を取り出す。ＣＴＲＩＧＩＮ信号は複数コア・システムの他のプロセッサ・コアへ所与のプロセッサ上の事象の発生をブロードキャストし、一方ＣＴＲＩＧＯＵＴ信号は他のプロセッサ上の診断事象の発生を所与のプロセッサへ指示する。
【００５４】
交差トリガ・マトリクスのいくつかのまたは全てのポートは、図２と図３とに概略的に図示するように、複数交差トリガ・システムを互いに接続可能とするために、他の交差トリガ・マトリクス・ポートに接続可能でなければならない要件があることに注意されたい。
【００５５】
図１３は組合わせループを避けるために交差トリガ・マトリクスで使用される回路を概略的に図示する。組合わせループは、ある交差トリガ・マトリクス・ポートが図３のように他の交差トリガ・マトリクス・ポートに接続された時にＴＲＩＧＲＥＱ→ＣＨＮＬＴＲＩＧ→ＴＲＩＧＲＥＱの信号列の発生を含む。全てのポートが図１３の回路を含まなければならない、という厳格な要件はないことに注意されたい。
【００５６】
図１３の回路は、ＡＮＤゲート１３１０、第１ＯＲゲート１３２０と第２ＯＲゲート１３３０とを含む。第１ＯＲゲートはポート１からＴＲＩＧＲＥＱ信号とポート２からＴＲＩＧＲＥＱ信号を入力として受け取る。しかし、ポート０からのＴＲＩＧＲＥＱ信号は、ＡＮＤゲート１３１０を介して第１ＯＲゲートへの入力として送られる。ＡＮＤゲート１３１０はマスク信号ＣＴＩ＿ｎＣＴＭの形式で第２入力を受け取る。第２ＯＲゲート１３３０は３つのポートの各々からＴＲＩＧＲＥＱ信号に対応する３つの入力を受け取る。第２ＯＲゲート１３３０の出力はポート１のＣＨＮＬＴＲＩＧ信号とポート２のＣＨＮＬＴＲＩＧ信号として送られる。第１ＯＲゲート１３２０の出力はポート０のＣＨＮＬＴＲＩＧ信号に対応する。マスク信号ＣＴＩ＿ｎＣＴＭはポート０からのＴＲＩＧＲＥＱ信号のマスクをイネーブル／ディスエーブルするために使用される。特に、ＣＴＩ＿ｎＣＴＭが「０」の値を有する時、ＡＮＤゲートは低出力を有し、従ってポート０の対応するＣＨＮＬＴＲＩＧ信号が抑止されるようにポート０からのＴＲＩＧＲＥＱ信号をマスクする。しかしながら、ＣＴＩ＿ｎＣＴＭがたとえ「０」であっても、ポート０からのＴＲＩＧＲＥＱ信号は第２ＯＲゲート１３３０への入力として依然として伝播することに注意されたい。
【００５７】
図１４はＴＲＩＧＲＥＱハンドシェークに使用するステートマシンを示す。このステートマシンは信号ＣＬＫによりクロックされ、バス中の各ビットに実例される。図１４に示すように、アイドル状態の間、ＣｔｒｉｇＯｕｔ信号（チャネルＯＲゲートの入力）は組合わせＴＲＩＧＲＥＱ信号により駆動される。信号がアクティブ（「１」）になると直ちに、何らの同期なしに、チャネルもアクティブとなる。
【００５８】
図１４のステートマシンはＴｒｉｇＲｅｑＳｙｎｃ信号を使用し、これはＴＲＩＧＲＥＱ信号の同期した版である。同期は図７の回路により実行される。ＴｒｉｇＲｅｑＳｙｎｃ信号を使用して状態をアイドルからＡｃｋに変更する。Ａｃｋ状態の間、確認信号ＴＲＩＧＡＣＫが作動される。チャネル信号ＣｔｒｉｇＯｕｔを１つ以上のクロックサイクルの間作動状態に保持する。
【００５９】
ＴＲＩＧＲＥＱに対してのみ「０」から「１」への転移を検出するため、ステートマシンはＴｒｉｇＲｅｑＳｙｎｃが作動を停止するまで待機状態に留まる。これはまた交差トリガ・インタフェースにより交差トリガ・マトリクスから確認を受信したことを保証する。この時点で、交差トリガ・マトリクスの入力は作動を停止される。複数コア・システムの全てのプロセッサ・コアが同じクロックを使用している時、同期を使用しないようにＳＹＮＣＢＹＰＡＳＳ信号を「１」に結合することが可能である。
【００６０】
図１５はＣＨＮＬＴＲＩＧハンドシェークに使用するステートマシンを示す。このステートマシンはＣＬＫ信号によりクロックされ、ＣＨＮＬＴＲＩＧ信号の各ビットに対して１回実装される。ＣＴｒｉｇＩｎＳｙｎｃとＣｈｎｌＡｃｋＳｙｎｃ信号はＣＴｒｉｇＩｎとＣＨＮＬＡＣＫ信号の同期版で、ＴｒｉｇＲｅｑＳｙｎｃの場合と同じ回路、すなわち図７の同期回路を使用しなければならない。図１５から、アイドル状態の間、何らかのクロックサイクルにより遅れが増加しないように、チャネル出力ＣＨＮＬＴＲＩＧはＣＴｒｉｇＩｎ（チャネルＯＲゲートの入力）に接続される。Ａｃｋ状態の間、ＣＨＮＬＴＲＩＧは、確認信号（ＣＨＮＬＡＣＫ）を受信するまでアクティブに保たれる。この回路の同期版が使用される。
【００６１】
図１６は図１の交差トリガ・インタフェースの詳細な内部構造を概略的に図示する。図１６で表示される各信号はデータバスであり、各バスの幅は実装に依存することに注意されたい。この回路は、プロセッサ・コア１１０からのＴＲＩＧＩＮ信号を受信し、同期信号ＳＴＲＩＧＩＮを出力するＴｒｉｇＩｎ同期器１３２を含む。ＴｒｉｇＩｎ同期器１３２は、グリッチ問題を避けるためＴＲＩＧＩＮ信号を登録する単純なフリップフロップである。このブロック１３２は、プロセッサに依存して、同期が不要な時、バイパス可能である。ＳＴＲＩＧＩＮ信号は、交差トリガ・マトリクス１５０のチャネルへのソース信号の駆動を制御する、第１マッピング・モジュール１３６Ａへの入力として送られる。第１マッピング・モジュール１３６Ａからの出力はＴｒｉｇＲｅｑハンドシェーク・モジュール１３８Ａ（これは図１２に図示した対応するモジュールと同じ機能を実行する）への入力として送られる。ＴｒｉｇＲｅｑハンドシェーク・モジュール１３８Ａは交差トリガ・マトリクス１５０へのＴＲＩＧＲＥＱ信号を出力し、交差トリガ・マトリクス１５０からの確認信号ＴＲＩＧＡＣＫを受信するよう動作する。
【００６２】
交差トリガ・インタフェース１３０はまた交差トリガ・マトリクス１５０により発生された入力ＣＨＮＬＴＲＩＧ信号を処理する回路も含む。特に、交差トリガ・マトリクス１５０からＣＨＮＬＴＲＩＧ信号を受信し、ＣＴＭへ確認信号ＣＨＮＬＡＣＫを返すためにＣＨＮＬＡＣＫハンドシェーク・モジュール１３８Ｂが設けられる。ＣＨＮＬＡＣＫハンドシェーク・モジュール１３８Ｂは信号ＳＴＲＩＧＯＵＴを出力し、これを交差トリガ・マトリクス１５０のシンク信号の駆動を制御するよう動作する、第２マッピング・モジュール１３６Ｂへ送る。第２マッピング・モジュール１３６Ｂは信号ＭＴＲＩＧＯＵＴを整形モジュール１３４へ出力する。整形モジュール１３４はＭＴＲＩＧＯＵＴ信号に出力波形整形を実行し、その性質はコアにインタフェースされる信号に依存する。受信するプロセッサ・コアが入力信号が完全に同期されていることを期待しているとき、図７の２段同期ブロックを使用すべきである。この同期は、全てのプロセッサが同期である場合はバイパスされる。整形モジュールはＴＲＩＧＯＵＴ信号を出力し、これはプロセッサ・コア１１０へ送られる。第１及び第２マッピング・モジュール１３６Ａ、１３６Ｂの両方が構成レジスタ１２０に接続される。ＴＲＩＧＩＮ同期器１３２と整形モジュール１３４で実行される同期は適当な場合バイパスしてもよい。
【００６３】
図１６の交差トリガ・インタフェース回路は、コアが交差トリガ・マトリクス上の（イネーブルされた）診断事象をブロードキャストし応答することを可能とする。交差トリガ・インタフェースにより実行される標準的な機能は：コア事象の縁捕獲、コア及び交差トリガ・マトリクスへブロードキャストされた信号の整形、交差トリガ・マトリクスとのハンドシェークの実行、各チャネルへのアサート用のコアの特定出力の選択（構成レジスタ１２０を使用）、局所コアへ事象を発生するためアサートされた信号を取り外すチャネルの選択、を含む。
【００６４】
ＴＲＩＧＩＮバスはコアからの任意の事象の情報を担持してもよく、レジスタにより同期される。しかし、同期ブロックは必要ない場合バイパス可能である。構成レジスタ１２０に依存して、ＴＲＩＧＩＮ信号は１つ以上のブロードキャスト・チャネルにアサート可能である。交差トリガ・インタフェース１３０は縁を検出し、交差トリガ・マトリクス１５０とのハンドシェークを制御する。
【００６５】
ＣＨＮＬＴＲＩＧ事象を交差トリガ・マトリクス１５０から受信すると、交差トリガ・インタフェース１３０は交差トリガ・マトリクス１５０とのハンドシェークを管理する。構成レジスタ１２０により指定された構成に応じて、この事象はコア１１０へ転送可能である。「整形」ブロック１３４は、コア１１０がこのＣＨＮＬＴＲＩＧ事象を理解可能であることを保証する。確認信号がこのタスクに必要であってもよい（例えば、ＤＢＧＲＱのＤＢＧＡＣＫ）。
【００６６】
ＤＢＧＲＱを出力トリガとして使用するのと同時にＤＢＧＡＣＫを入力レジスタとして使用した場合、ロックアウト状況が発生するかもしれない（連鎖反応を促進する）。この発生を避けるため、プロセッサが既にデバッグ・モードであるとき（すなわち、ＤＢＧＡＣＫが既に作動されているとき）は、ＤＢＧＲＱ出力を作動させてはならない。
【００６７】
図１７はステートマシンを示し、これは図１６のＴＲＩＧＲＥＱ信号に実行されるハンドシェークを表す。このステートマシンはＴＲＩＧＲＥＱバスの各ビットに対して１回実証される。図１７に図示するように、ＭＴＲＩＧＩＮバスの１ビット上で事象が検出されると、これはＴＲＩＧＲＥＱの対応するビットに直接伝播され、状態は保持にセットされる。保持状態の間、確認信号ＴＲＩＧＡＣＫを受信するまでＴＲＩＧＲＥＱは作動されたままである。この信号の同期版（ＴＲＩＧＡＣＫＳＹＮＣ）が使用される。確認信号を既に受信している間に、ＭＴＲＩＧＩＮが「１」である時、待機状態に入る。
【００６８】
図１８は図１６のＣＨＮＬＴＲＩＧバスの各ビットに対して実行されるハンドシェークを表すステートマシンを示す。ステートマシンはＣＨＮＬＴＲＩＧＳＹＮＣ信号を使用し、これはＣＨＮＬＴＲＩＧ信号の同期版である。この同期は全てのプロセッサが同期である時にＳＹＮＣＢＹＰＡＳＳを「１」に固定することによりバイパス可能である。
【００６９】
ここで交差トリガ・インタフェース１３０の構成レジスタ１２０の回路を詳細に検討する。構成レジスタ１２０を使用して、交差トリガ・マトリクス１５０のチャネルへのソース信号の駆動とそこからのシンク信号の駆動を制御する。構成レジスタの正確な形式、分布及びアクセス機構は決まっていない。これは、本技術によるシステムは異なる製造業者からの多数の異なるプロセッサ・コアでの使用に容易に適合できることを意味する。しかし、ＡＲＭプロセッサ、及びその他のプロセッサ（可能な場合）の推奨レジスタ仕様を以下に指定する。
【００７０】
図１９はコア１１０により発生された事象を制御する構成レジスタを概略的に図示する。図１９に図示するように、ＳＴＲＩＧＩＮ（第１マッピング・モジュール１３６Ａへの入力）は３ビットバスであり、交差トリガ・インタフェース１３０は２チャネルに接続される。図１９の回路は、６ビット・イネーブル入力バスへの信号を駆動する３個の２ビット・レジスタ１２２Ａ、１２２Ｂ、１２２Ｃ（チャネル辺り１ビット）を含む。３つのＳＴＲＩＧＩＮ信号の各々は第１チャネルと関連するＡＮＤゲートと第２チャネルと関連するＡＮＤゲートとへ入力として送られる。従って、この回路は、その出力が第１ＯＲゲート１９４０へ送られる、第１チャネルと関連する３つのＡＮＤゲート１９１０、１９２０、１９３０と、その出力が第２ＯＲゲート１９８０へ送られる、第２チャネルと関連する３つのＡＮＤゲート１９５０、１９６０、１９７０を有する。各ＡＮＤゲートへの第２入力はイネーブル入力バスを介して各構成レジスタから送られる。レジスタの入力が「０」である場合、チャネルのＳＴＲＩＧＩＮ信号は対応するＡＮＤゲートによりマスクされる。第１ＯＲゲート１９４０の出力はＭＴＲＩＧＩＮ［１］に対応し、一方第２ＯＲゲート１９８０の出力はＭＴＲＩＧＩＮ［０］に対応する。
【００７１】
ユーザが、１つの入力信号のみがあるチャネルにマップされ、１つのチャネルのみが出力トリガを駆動することを保証したいこともあることに注意されたい。このような状況は交差トリガ・インタフェースにより完全にサポートされるが、しかし、１つ以上がイネーブルされた場合、どの信号が事象を上げたのかを識別する機構はない。
【００７２】
図２０は、他のコア上で発生している事象を、構成レジスタが所属する特定の交差トリガ・インタフェースへ通知することを制御する構成レジスタを概略的に図示する。この場合、ＭＴＲＩＧＯＵＴは３ビットバスであり、交差トリガ・インタフェースは２つのブロードキャスト・チャネルを実装する。この回路は図１９と同様に機能し、各々がＯＲゲートへ入力を送る２つのＡＮＤゲートを有する、３組の論理ゲートを含む。しかし、この場合、信号ＳＴＲＩＧＯＵＴ［０］とＳＴＲＩＧＯＵＴ［１］（これは第２マッピング・モジュール１３６Ｂへの入力である）が、構成レジスタからのイネーブル出力信号と共にＡＮＤゲートへの入力として送られる。３つのＯＲゲートからの出力ＭＴＲＩＧＯＵＴ［０］、ＭＴＲＩＧＯＵＴ［１］、ＭＴＲＩＧＯＵＴ［２］は以後整形モジュール１３４への入力として送られる。
【００７３】
図２１は、特定のプロセッサ・コアのアプリケーションまたはデバッガにより使用されて、複数コア・システムの他のプロセッサ・コアへブロードキャストするためのＴＲＩＧＩＮ事象を発生可能なアプリケーション駆動トリガを概略的に図示する。この回路は、交差トリガ・マトリクスによりサポートされる各チャネル当たり１ビット有するレジスタ（ＣＴＡＰＰＴＲＩＧＥＮ）２１１０と、関連レジスタ・ビット２１２０、ＡｐｐＴｒｉｇビットとを含む。ＣＴＡＰＰＴＲＩＧＥＮレジスタ２１１０（この場合４ビット）のビットの各々は各ＡＮＤゲート２１３０、２１４０、２１５０、２１６０へ入力として与えられる。ＡｐｐＴｒｉｇビット２１２０は４つのＡＮＤ論理ゲートの各々へ他方の入力を与える。ＣＴＡＰＰＴＲＩＧＥＮレジスタは、所要のチャネル上のアプリケーション駆動トリガをイネーブルする役割を果たす。ＡｐｐＴｒｉｇレジスタ・ビット２１２０上の「０」から「１」への転移はイネーブルされた全てのチャネル上で事象を上げる。従って、アプリケーションがＴＲＩＧＩＮ事象を上げたいとき、これはＣＴＡＰＰＴＲＩＧＥＮレジスタ２１１０の正しいビットをイネーブルし、次いでＡｐｐＴｒｉｇビット２１２０を書き込まなければならない。事象はこのように上げられるが、ＡｐｐＴｒｉｇビット２１２０は他の事象を上げる前にクリアされなければならない。
【００７４】
本技術によると、構成レジスタをプログラムする正確な機構は固定されていない。その代わり、構成レジスタをプログラムする機構は現在ターゲットとしている複数装置システムの特定のコア／デバッガ構成に最適化される。しかし、構成レジスタへのアクセス・チャネルは（ａ）メモリ・マップ・アクセスまたは（ｂ）走査アクセスのどちらかを介して提供可能である。走査アクセスは結合検査動作群（Joint Test Action Group ＪＴＡＧ）シリアル・インタフェースを使用して提供される。必要に応じてアクセス機構の組合わせを提供してもよい（例えば、メモリ・マップと走査の両方）。本技術によると、各プロセッサ・コアはそれに関する交差トリガ信号の構成に責任を負わされる。これは、そのコア上で実行するソフトウェアまたはそのコアに取り付けたデバッガがそれに関する交差トリガ事象を直接に制御可能であるという利点を有する。
【００７５】
メモリ・マップ・アクセスに関しては、簡単のため、そのレジスタが関係するプロセッサ・コアによりプログラム可能なメモリ・マップのスレーブ装置として与えられる。ＡＲＭプロセッサでは、構成レジスタは標準のアドバンスト・マイクロコントローラ・バス・アーキテクチャ（ＡＭＢＡ）スレーブとしてアクセスされる。ＡＭＢＡ仕様は、高性能システム・モジュールを接続するために使用されるアドバンスト・システム・バス（ＡＳＢ）、低性能周辺装置用の簡単なインタフェースを提供するアドバンスト・周辺・バス（ＡＰＢ）、及びアドバンストＨ．．バス（ＡＨＢ）を含む。しかし、交差トリガ・マトリクス１５０を構成するためのメモリ・マップ・レジスタの使用は、解決しなければならないシステム安全性／安定性問題を提起する。提起される安全性機構の数と複雑度はターゲット・システムに依存する。
【００７６】
構成レジスタへの走査アクセスに関しては、これはＡＲＭマルチ・インサーキット・エミュレータのような走査チャネルを通した構成を提供する。
【００７７】
走査アクセスの利点は、生産用に内部的に分離されていなければ装置プロービングを防止できないが、接続が走査インタフェースを介して行われなければならない点で本質的に「安全」である、コア・アクセス用のＡＲＭデバッグ・ツールにより使用されるものと同じアクセス機構である、交差トリガ・マトリクス設定の非侵入構成と観察とを可能とする点である。
【００７８】
交差トリガ・マトリクス１５０が組込みトレース・マクロセル（ＥＴＭ）を駆動するために使用されている時または交差トリガ・マトリクス１５０の侵入構成が問題の事象への実行時にシステムの挙動を変更してしまう状況で有用な機能である。
【００７９】
構成レジスタへの走査型式アクセスの欠点は、コア上で実行しているソフトウェアが交差トリガ構成またはトリガに参加できない点である。この欠点は、アクセス機構の組合わせ、例えば走査アクセスにより制御されるイネーブル信号だがメモリ・マップ・レジスタに配置されたアプリケーション駆動信号を使用することにより克服される。走査技術の別な欠点は、デバッグ環境が走査、例えばシリアル汎用非同期送受信器（ＵＡＲＴ）によるデバッグ・モニタ・システムを使用していないことである。
【００８０】
交差トリガ・マトリクスを使用して侵入デバッグ事象を発生可能であるため、製品開発時にのみ交差トリガ・マトリクス１５０を使用することを保証することと、生産システムでのその使用（意図しないものであれ、または悪意あるものであれ）を防止することが重要である。本技術によると、交差トリガ・マトリクス１５０を望ましくない構成から保護するために以下のアクセス構成が提案される。特定のシステムで１つ以上のこれらのアクセス機構を実装してもよい。
・  デバッグ・イネーブル：全てのデバッグ可能なＡＲＭプロセッサは、コアのデバッグ機能をディスエーブルするために使用可能な外部入力、ＤＢＧＥＮを機能として有する。開発システムでは、ＤＢＧＥＮは高状態に結合され、デバッグ機能が利用可能である。生産システムでは、ＤＢＧＥＮは低状態に結合される。ＤＢＧＥＮは交差トリガ・インタフェースをディスエーブルするために使用されることを推奨する。
・  アクセス・キー：この機構は、イネーブルされるまたは構成される前に適切なキーを交差トリガ・システムに提供することを必要とする。システム設計者は適切な保護レベルに対してキーをカスタム化するか、または制御レジスタをアクセスするのに一連のキーを必要とするように拡張可能である。
・  特権アクセス：この機構は、特権（スーパバイザ・モード）コードのみがアクセスできるように構成レジスタへのアクセスを制限する。これは、メモリ保護装置（ＭＰＵ）またはメモリ管理装置（ＭＭＵ）を使用して構成レジスタが配置されたメモリ領域を保護することによりソフトウェアにより、またはスレーブが非特権アクセスを拒否する、バス・レベルのどちらかで、実行可能である。
【００８１】
低性能周辺機器用の単純なインタフェースを提供する、ＡＭＢＡ仕様のアドバンスト・周辺・バス（ＡＰＢ）は特権信号（ＨＰＲＯＴ）を含んでいないことに注意されたい。結果として、ＡＰＢスレーブではバス・レベル保護は使用不能である。
【００８２】
さらに、あるレジスタへユーザ・モードのアクセス（例えば、アプリケーション駆動トリガ）を許可するが、他（交差トリガ・イネーブル）へは許可しないことが望ましい場合もある。これは、ＡＭＢＡ仕様のＡＨＢスレーブで望ましいものより微妙な粒状性を必要とするため、バス・レベルの保護はこの場合には適切ではない。
【００８３】
図２２は、交差トリガ・インタフェース１３０で使用し、全ての条件で実行される統合検査を可能とするよう動作する統合論理を概略的に図示する。この回路は６つのマルチプレクサと、特殊な挙動を有する、４つのレジスタ、ＣＴＩＴＩＰ１、ＣＴＩＴＩＰ２、ＣＴＩＴＯＰ１、ＣＴＩＴＯＰ２を含む。特に、対応するイネーブル・ビットがアクティブであるとき、レジスタへの書込みは対応する信号へその値が駆動されることを指示する。イネーブル・ビットがアクティブであるとき、レジスタに書き込まれた値を返す。これらのレジスタはＰｒｉｍｅＣｅｌｌ部品に定義した統合検査を実行するために使用可能である。何らかの統合検査を実行可能とする前に、グローバル・ビット・コールＩＴＥＮを作動させなければならないことに注意されたい。
【００８４】
図２３は本技術による交差トリガの概念を概略的に図示する。この装置は、第１データ処理モジュール２３１０、マッピング・モジュール２３２０、２３２２、２３４０、２３４２、デバッグ・チャネル・ルータ２３３０、及び第２データ処理装置２３５０を含む。第１及び第２データ処理装置の両方がトリガ事象、例えば、ブレークポイント、ウォッチポイント、及び割込みを発生するよう動作可能である。トリガ事象は、デバッグ・チャネル情報にマップされる、マッピング・モジュール２３２０、２３４０に送られる。図１のＣＴＩ１３０−１から１３０−Ｘがこのマッピング機能を実行する。デバッグ・チャネルは例えばプロセッサ開始／停止、トレース開始／停止またはシステム・エラーと関連する。デバッグ・チャネル・ルータ２３３０（これは図１のＣＴＭ１５０に対応する）は両方のデータ処理装置２３１０、２３５０からデバッグ・チャネル情報を受け取り、この情報をシステム中の全ての装置（この場合、２つの装置）へ分配する。デバッグ・チャネル・ルータ２３３０からの出力時に、デバッグ・チャネル情報は目的のプロセッサと関連するマッピング・モジュール２３２２、２３４２へ送られ、ここでデバッグ・チャネル情報からプロセッサ開始／停止制御、トレース開始／停止制御または割込みのような適切なトリガ事象制御信号に再マップされる。
【００８５】
図１の配置では、ＣＴＭ１５０は複数個ｘのＣＴＩモジュール１３０−１から１３０−Ｘをサポートするよう構成される。図２４は本技術による他の配置を概略的に図示し、ここではＣＴＭは固定数、この場合４のポートを有する。この配置は、第１及び第２プロセッサ・コア２４１２、２４１４と各々のラッパ装置２４２０、２４２２、関連の構成レジスタ２４３６、２４３８を有する２つのＣＴＩ２４３２、２４３４を含む交差トリガ・ブロック（ＣＴＢ）２４３０、ＣＴＭ２４４０、及び２つの拡張ポート２４５２、２４５４を含む。ＣＴＢ２４３０は、さらなるプロセッサ・コアをシステムに追加する場合、別のＣＴＢ（図示せず）を接続可能なように設計された統合装置である。オプションであるラッパ装置２４２０、２４２２はＣＴＩ２４３２、２４３４を各プロセッサ・コア２４１２、２４１４に接続し、信号のグリッチ除去と波形整形を実行するよう動作する。ＣＴＢ２４３０では、２つのＣＴＩ２４３２、２４３４がＣＴＭ２４４０の４つのポートの２つに接続される。これは２つの残りのＣＴＭポートを残し、これは別のＣＴＢへの接続用の拡張ポート２４５２、２４５４として使用される。
【００８６】
図２５はＣＴＢ２４３０の一部のより詳細図を概略的に図示する。ＣＴＩ２４３２は、プロセッサ・コア２４１２とＣＴＩ２４３２との間をインタフェースする第１ハンドシェーク回路２５１０、第１及び第２マッピング回路２５２０、２５２２、第１及び第２ＯＲ論理ゲート２５３０、２５３２、ＣＴＩ２４３２とＣＴＭ２４４０との間をインタフェースする第２ハンドシェーク回路２５１２を含む。第１マッピング回路２５２０は第１ハンドシェーク回路２５１０からトリガ事象の形式で入力を受け取り、これらのトリガ事象をデバッグ・チャネル情報へマップする。第１マッピング回路の出力は、構成レジスタ２４３６により発生されたアプリケーション・トリガ信号と共に第１ＯＲゲート２５３０への入力として送られる。アプリケーション・トリガはシミュレートされたトリガ事象であり、交差トリガ・システムのプロセッサ・コアのうちの１つにより発生されたトリガ事象（ＴＲＩＧＩＮ）には対応しないことに注意されたい。構成レジスタ２４３６にはシステム・バス・インタフェースとＪＴＡＧインタフェース（図示せず）とが設けられる。第１ＯＲゲート２５３０からの出力はＣＴＩ２４３２の第２ハンドシェーク回路２５１２と第２ＯＲゲート２５３２とへ送られる。第２ＯＲゲート２５３２は、第１ＯＲゲート２５３０の出力（これは、ＣＴＭ２４４０を介して信号を送信することなく同じプロセッサ・コアへのトリガ出力としてアサートされた所与のプロセッサ・コアからのトリガイン事象を許容する）と第２ハンドシェーク回路２５１２からの入力信号の両方から入力を受け取る。第２ＯＲゲート２５３２の出力は、受信プロセッサ・コア２４１２上の操作を制御するトリガ制御信号へデバッグ・チャネル・データをマップするマッピング回路２５２２へ入力として送られる。ＣＴＭ２４４０は４ポートの各々のハンドシェーク回路を含む。これらのＣＴＭハンドシェーク回路２５１４の１つはＣＴＩ２４３２の第２ハンドシェーク回路２５１２とインタフェースする。ＣＴＭはまた全てのデバッグ・チャネル情報を収集し、これをシステムの全ての処理コアへ分配するチャネル・ルーティング情報回路２５４０も有する。デバッグ・チャネル情報は図１１Ａと１１Ｂのような回路により組合わされる。
【００８７】
ハンドシェーク回路２５１０、２５１２、２５１４は要求／確認ハンドシェークを使用し、これは、クロック周波数とクロック・スキューの差のような異なるクロック条件のある範囲を補償する異なる型式のプロセッサ・コア間での堅牢な接続を実行可能とする。図２５の配置は図１６の配置といくつかの点で異なる。特に、図２５の配置では、アプリケーション・トリガはチャネル情報を直接発生可能である、すなわちチャネル・マッピング情報はアプリケーション・トリガ信号自体に含まれる。対照的に、図１６の配置はアプリケーション・トリガ事象をチャネル事象にマップするマッピング論理を使用する。図２１は図１６の配置のアプリケーション・トリガ・レジスタと関係するアプリケーション・トリガ・マッピング論理を示す。さらに、図２５の配置では、ＴＲＩＧＩＮからＴＲＩＧＯＵＴへの事象のループバックはＣＴＩ２４３２で発生するが、一方図１６の配置ではこのループバックはＣＴＭ１５０で発生した。ＣＴＩ２４３２での事象のループバックの実行は高速な応答時間を与える利点を有する。
【００８８】
図２６は図１のＣＴＭ１５０のポート接続を概略的に図示する。図３に示すように、このＣＴＭ配置は組合わせループの発生を生じる。図３に示すように、ＣＴＭ１５０は３つのポートを有し、その内の２つは各インタフェース・モジュールに接続され、１つはこれを介して別のＣＴＭが接続可能な拡張ポートとして使用される。図２６のポート接続回路は、３つの入力チャネルＣＨＩＮ０、ＣＨＩＮ１及びＣＨＩＮ３と３つの出力チャネルＣＨＯＵＴ０、ＣＨＯＵＴ１及びＣＨＯＵＴ２とを示す。チャネルの各々は関係する確認（ＡＣＫ）信号ルートを有する。３つの入力チャネルの各々はＯＲゲート２６３０へ送られ、ＯＲゲート２６３０出力は３つの出力チャネルＣＨＯＵＴ０、ＣＨＯＵＴ１及びＣＨＯＵＴ２へ送られる。ＯＲゲートの右側の入力チャネルＣＨＩＮ２と出力チャネルＣＨＯＵＴ２は拡張ポートに対応する。
【００８９】
図２７は、図２６の２つのＣＴＭ１５０を互いに接続した時に如何に組合わせループが発生するかを概略的に図示する。以下の説明では、ダッシュを使用して第１ＣＴＭ２７１０から第２ＣＴＭ２７２０（図面の右側）のチャネル・ラベルを区別する。第１ＣＴＭ２７１０の拡張スロットの出力チャネルＣＨＯＵＴ２は第２ＣＴＭ２７２０の入力チャネルＣＩＮ０’への入力として与えられることは明らかである。従って、ＣＨＯＵＴ２が高状態となると、第２ＣＴＭ２７２０のＯＲゲート２６３２の出力も高状態となる。ＯＲゲート２６３２の出力は出力チャネルＣＨＯＵＴ０’へ送られ、これは以後第１ＣＴＭ２７１０の入力チャネルＣＨＩＮ２で受信される。このように、信号路ＣＨＯＵＴ２、ＣＨＩＮ０、ＣＨＯＵＴ０’、ＣＨＩＮ２に組合わせループが形成される。
【００９０】
図２８は本技術による別のＣＴＭ構成を概略的に図示する。この場合、各ＣＴＭは４つのポートを有し、その各々は接続されたＣＴＭまたはＣＴＩとインタフェースするハンドシェーク回路を有する。本配置は４つのＯＲゲート２８１０、２８１２、２８１４及び２８１６を含む。第１ＯＲゲート２８１０は入力チャネルＣＨＩＮ０、ＣＨＩＮ３及びＣＨＩＮ２から信号を受信し、その出力を出力チャネルＣＨＯＵＴ１へ送る。第２ＯＲゲート２８１２は入力チャネルＣＨＩＮ０、ＣＨＩＮ１及びＣＨＩＮ３から信号を受信し、その出力を出力チャネルＣＨＯＵＴ２へ送る。第３ＯＲゲート２８１４は入力チャネルＣＨＩＮ０、ＣＨＩＮ１及びＣＨＩＮ２から信号を受信し、その出力を出力チャネルＣＨＯＵＴ３へ送る。第４ＯＲゲート２８１６は入力チャネルＣＨＩＮ１、ＣＨＩＮ２及びＣＨＩＮ３から信号を受信し、その出力を出力チャネルＣＨＯＵＴ０へ送る。図２７の組合わせループを避けるように事象論理はルートされる。図２９は、図２８の２つのＣＴＭ回路が互いに接続されたとき発生する信号路を概略的に図示する。ここで再び、ダッシュを使用して図２９の最右のＣＴＭのチャネルから最左のＣＴＭのチャネルを区別する。図２９の太字で指示した信号路から分かるように、ＣＨＩＮ０に与えられた論理「１」は４出力チャネルの内の３つのみ、特にＣＨＯＵＴ１、ＣＨＯＵＴ２及びＣＨＯＵＴ３にアサートされる。ＣＨＯＵＴ２の出力チャネルは入力チャネルＣＨＩＮ０’に接続される。チャネルＣＨＩＮ０’上の論理「１」は最右のＣＴＭの４つのＯＲゲートの内の３つにのみ入力として送られ、これによりチャネルＣＨＯＵＴ１’、ＣＨＯＵＴ２’、ＣＨＯＵＴ３’の各々でアサートされている論理「１」を生じる。ＣＨＩＮ０’からＯＲゲート２８１２へ戻る完全な路はないため、組合わせループは避けられる。
【００９１】
図３０は図２４に図示した型式の３つのＣＴＢ２４３０を含むシステムを概略的に図示する。このシステムは第１ＣＴＢブロック３０１０を含み、これはその２つの拡張ポートを介して第２ＣＴＢブロック３０２０へ接続され、第２ＣＴＢブロックはまた第３ＣＴＢブロック３０３０に接続される。ＣＴＢブロック３０１０、３０２０、３０３０の各々は各ＣＴＩモジュールとラッパ回路を介して２つのプロセッサ・コアに接続されているため、このシステムは全部で６つのプロセッサ・コア３０４０、３０４２、３０４４、３０４６、３０４８及び３０５０の交差トリガを可能とする。ＣＴＭ３０５２はＣＴＭ３０５４に接続され、ＣＴＭ３０５４は図３２に図示するように事象ルーティング論理によりＣＴＭ３０５４に接続される。
【００９２】
図３１は図３０のものとは別の６プロセッサ・コア接続配置を概略的に図示する。この場合、２つのＣＴＩ２４３２、２４３４の間に挟まれたＣＴＭ２４４０を含む図２４のＣＴＢ配置は使用されない。その代わり、２つのＣＴＭの各々の４つのポートの内の３つが各ＣＴＩと各プロセッサ・コアに接続され、１つの残りのポートが他のＣＴＭに接続される。再び、ＣＴＭの事象ルーティング論理は図２９に図示されている。
【００９３】
図３２は、第１及び第２ＣＴＩ３２１０と３２２０が互いに直接に接続され、ルーティング操作を実行するためその間のＣＴＭがない、２プロセッサ配置を概略的に図示する。第１プロセッサ・コアは第１ＣＴＩ３２１０に接続され、第２プロセッサ・コアは第２ＣＴＩ３２２０に接続される。２つのプロセッサ間のルーティングは比較的単純であるため、この配置はＣＴＭを必要としない。
【００９４】
図３３は、図２８と図３０の配置を参照して本技術による標準的な事象転送列を概略的に図示する流れ図である。段階３３１０で、ブレークポイントのようなトリガ事象が第１プロセッサ・コア３０４０で発生し、以後の段階３３１２で、トリガ事象信号がラッパ回路３０６２に与えられ、ここでグリッチ除去と波形整形が実行される。段階３３１４で、ラッパ回路３０６２からの出力信号がＣＴＩ３０７２と関係するハンドシェーク回路２５１０（図２５参照）に送られる。ハンドシェーク回路２５１０は、必要な場合、ラッパ回路から受信した信号をＣＴＩ３０７２と同期するよう動作可能である。段階３３１６で、ハンドシェーク操作が終了する前に、ＣＴＩ３０７２はデバッグ・チャネル情報へのトリガ事象信号のマッピングを実行する。段階３３１８で、アプリケーション・トリガ・レジスタ（図２１参照）へ書き込むことによりＪＴＡＧ走査インタフェースまたはソフトウェア・インタフェースがアプリケーション・トリガを発生し、このアプリケーション・トリガは段階３３２０でデバッグ・チャネル情報と組合される。アプリケーション・トリガと関連するチャネル情報は、これをチャネル事象にマップする必要性なしに直接に発生される（図２５の配置のように）ことに注意されたい。段階３３２２で、デバッグ・チャネル情報は第１ＣＴＩ３０７２の第２マッピング回路２８２２へ与えられ、ここでトリガ事象制御信号にマップされる。次いで、段階３３２４で、他の５つのプロセッサ・コア３０４２、３０４４、３０４６及び３０４８のトリガ制御情報が第１プロセッサ・コア３０４０と関連するラッパ回路２４２０に到着し、ここで信号波形が再整形され、第１プロセッサ・コア３０４０のクロック領域に同期される。次いで段階３６２６で、第１データ処理コア３０４０はトリガ制御信号の形式でデバッグ情報を受け取る。
【００９５】
段階３３２０に戻り、流れ図の同時分岐をたどると、組合わせたデバッグ・チャネル情報とアプリケーション・トリガはＣＴＩ３０７２の４つのチャネル出力インタフェースの１つに送られ、次いで段階３３３２で、ＣＴＩは、ＣＴＩ３０７２とＣＴＭ３０５２との間をインタフェースする、ハンドシェーク・モジュール２５１２と２５１４とを介してＣＴＭへデバッグ・チャネル情報を送る。段階３３３４で、ハンドシェーク回路がデバッグ・チャネル情報の転送を完了している間に、ＣＴＭ３０５２のルーティング回路２５４０は第１プロセッサ・コア３０４０から発生したトリガ事象をＣＴＭ３０５２の残りの３つのポートへルートする。次の段階３３３６で、システムの５つの他のＣＴＩは、その各々のハンドシェーク回路を介して、第１プロセッサ・コア上のトリガ事象の発生を指示するデバッグ・チャネル情報を受け取る。段階３３３８で、ハンドシェーク装置がハンドシェークを完了しようと動作している間に、デバッグ・チャネル情報が関連ＣＴＩの第２マッピング回路２３２２でトリガ制御信号に再マップされる。以後、段階３３４０で、トリガ制御情報は５つのプロセッサ・コア３０４２、３０４４、３０４６、３０４８及び３０５０の１つ以上のもののラッパ回路２４２０により受信され、ここで受信信号波形が再整形され、目的プロセッサ・コアの領域クロック領域に同期される。最後に、段階３３４２で、各目的プロセッサ・コアはデバッグ情報を受信する。
【００９６】
図３４はハンドシェーク回路２５１０、２５１２、２５１４の１つの内部構造を概略的に図示する。ハンドシェーク回路は、ＯＲ論理ゲート３４１０、ＡＮＤ論理ゲート３４１２、第１（Ｄ型）エッジ・トリガ・ラッチ３４１４、要求受信側の第１同期回路３４１６、第２エッジ・トリガ・ラッチ３４２０及び回路の確認（ＡＣＫ）受信側の第２同期回路３４１８を含む。第１同期回路３４１６は、２個のエッジ・トリガのラッチ３４２２、３４２４とマルチプレクサ（ｍｕｘ）３４２６を含む。同様に、第２同期回路３４１８は、２個のエッジ・トリガのラッチ３４２８、３４３０とｍｕｘ３４３２を含む。ＯＲゲート３４１０は事象入力に対応する第１入力を受け取る。ＡＮＤゲートはハンドシェーク・バイパス信号、ソフトウェア・クリア信号（ＴＲＩＧＯＵＴ信号にのみ適用）と第２同期回路３４１８からの出力に対応する３つの反転入力を受取る。ＡＮＤゲート３４１２は、ＯＲゲート３４１０の出力に対応する、非反転の、第４入力も受取る。ＡＮＤゲート３４１２出力信号はエッジ・トリガのラッチ３４１４へ与えられ、その出力は第２入力としてＯＲゲート３４１０へまた与えられる。受信したＡＣＫ信号が論理ゼロであるときにのみＡＮＤゲートの出力は論理「１」であるため、ＯＲゲートへの第２入力は、ＡＣＫを未だ受信していない場合に第１同期回路３４１６へＯＲゲート３４１０から渡された要求信号をアサートし続ける効果を有する。従って、ＯＲゲート３４１０への第２入力は、以下の４つの条件が満たされた場合に論理「１」となる：第２同期信号の出力が「０」（受信したＡＣＫ信号が論理「０」であることを指示）、ハンドシェーク回路がバイパスされていない（ハンドシェーク・バイパス＝０）、ソフトウェア・クリア信号が論理「０」、ＯＲゲートの出力が論理「１」。
【００９７】
要求信号に対応する、ＯＲゲート３４１０の出力は、第１同期回路３４１６への入力として与えられる。第１同期回路３４１６では、ｍｕｘ３４２６の出力は同期バイパス選択入力の値に依存する。特に、同期バイパス＝０である場合、要求信号は２つの直列接続のエッジ・トリガ・ラッチ３４２２、３４２４による遅延を受ける。しかし、同期バイパス＝１である場合、入って来る要求信号は、エッジ・トリガ・ラッチ３４２２、３４３４により遅延されることなく同期回路３４１６を通過する。第１同期回路３４１６の出力はエッジ・トリガ・ラッチ３４２０に送られ、その出力は第２同期回路３４１８へ送信されるＡＣＫ信号に対応する。第１同期回路３４１６の動作と同様に、第２同期回路３４１８は、同期バイパス＝１（ｍｕｘ３４２２を介して選択）である場合には受信したＡＣＫ信号を直接出力するが、反対に同期バイパス＝０である場合、ＡＣＫ信号は２個のエッジ・トリガ・ラッチ３４２８、３４３０を介して出力される。第２同期回路３４１８の出力はＡＮＤゲート３４１２へ反転入力として送られる。トリガ・インタフェース（ＣＴＩからコア・インタフェース）に対応するハンドシェーク回路２５１０は、チャネル・インタフェース（ＣＴＩからＣＴＩインタフェース）に対応するハンドシェーク回路２５１２と同じ機構に従って動作する。しかし、チャネル・インタフェース・ハンドシェーク回路２５１２は図３４に示したＡＮＤゲート３４１２へのソフトウェア・クリア入力を有しない。ソフトウェア・クリア入力はトリガ出力（ＴＲＩＧＯＵＴ）と割込み制御器との間の直接接続を容易にする目的を果たす。割込み制御器はＡＣＫ信号を発生しない。
【００９８】
図３５Ａは図３４の同期回路３４１６（同期バイパス＝０）を使用したときの例示信号列を概略的に図示する。図３５Ｂは同期回路を使用しないとき（同期バイパス＝１）の対応する例示信号列を図示する。これらの図面の各々は、図３４の回路に対応して、事象入力信号、要求信号、ＡＣＫ信号及び事象出力信号を示す。この場合、各信号は７クロック・サイクルの持続時間を有する。事象入力信号と事象出力信号は異なるクロック領域に対応する。図３５Ａと図３５Ｂとの比較により、同期回路を使用したとき、事象出力信号は事象入力及び要求信号の両方に対して２クロック・サイクルだけ遅延され、一方、図３５Ｂに示すように、同期をバイパスした時にはこれらの信号と同期している。ＡＣＫ信号は事象出力信号に対して単一クロック・サイクルだけ遅延される。この単一サイクル遅延はエッジ・トリガのラッチ３４２０により実行される。
【００９９】
図３５Ｃは、事象入力ソースが単一サイクル信号である場合の図３４のハンドシェーク回路の例示信号列を概略的に図示する。その他の３つの信号は６サイクル信号である。同期バイパス＝０（同期回路を使用）の図３５Ａの例では、事象出力信号は事象入力信号に対して２クロック・サイクルだけ遅延され（エッジ・トリガのラッチ３４２２、３４２４により）、ＡＣＫ信号は再び事象出力信号から単一クロック・サイクルだけ遅延する。この場合、事象入力信号が単一サイクル期間である事実にも係らず、要求信号は６サイクルの間高状態に留まる、すなわち要求信号はＡＣＫを受信した後３クロック・サイクルの間持続する。これはＡＮＤゲート３４１２とエッジ・トリガのラッチ３４１４、３４２２、３４２４による。図３５Ｄは、同期バイパス＝１（同期回路を使用しない）かつハンドシェーク・バイパス＝１の場合の例示信号列を概略的に図示する。ハンドシェーク・バイパス信号はＡＮＤゲート３４１２の反転入力であることを想起されたい。この場合、エッジ・トリガのラッチ３４２２、３４２４はバイパスされ、事象出力信号は事象入力及び要求信号と同期する。ＡＮＤゲート３４１２の出力が論理「０」である（ハンドシェーク・バイパス＝１であるため）ため、ＡＣＫ信号は無視される。
【０１００】
図３４のソフトウェア・クリア信号と関連する回路を図３６に詳細に図示する。ソフトウェア・クリア回路はレジスタクリア書込み３６１２、第１及び第２ＯＲゲート３６１４、３６２０、及びＡＮＤゲート３６１６とエッジ・トリガのラッチ３６１８を含む。第２ＯＲゲート３６２０の出力はＡＮＤゲート３４１２（図３４の回路を参照）のソフトウェア・クリア入力として与えられる。第１ＯＲゲート３６１４はＡＮＤゲート３６１６とエッジ・トリガのラッチ３６１８に直列に接続される。エッジ・トリガのラッチ３６１８の出力は入力として第１ＯＲゲートへ戻され、また第２ＯＲゲート３６２０への入力としても送られる。ＡＮＤゲート３６１６は第２入力として事象入力信号を受け取る。レジスタクリア書込み３６１２の出力は第１及び第２ＯＲゲート３６１４、３６２０の両方へ入力として与えられる。従って、ソフトウェア・クリア信号（第２ＯＲゲート３６２０の出力）は、レジスタクリア書込みの出力またはエッジ・トリガのラッチ３６１８の出力の少なくとも１つが論理「１」である場合に、論理「１」となる。
【０１０１】
図３４のハンドシェーク論理は、ｍｕｘ３４２６と３４２８を制御する同期バイパスとハンドシェーク・バイパスを使用して多数の異なる方法で構成可能であることが認められる。図３６から図４０は５つの異なるハンドシェーク・モードを概略的に図示する。
【０１０２】
図３６は同期バイパスとハンドシェーク・バイパスが両方ゼロに結合されてバイパス論理がディスエーブルされている非同期ハンドシェーク・モードを概略的に図示する。本回路はハンドシェーク出力回路３６５０とハンドシェーク入力回路３６６０を含む。非同期モードでは、ハンドシェーク出力回路３６５０による事象出力はハンドシェーク入力回路の同期レジスタを通過し、信号はまたＤ型エッジ・トリガのラッチ３４２０を介してハンドシェーク入力回路３６５０へ戻される。次いでＡＣＫ信号が同期され、ハンドシェーク出力回路３６５０の保持論理（ＯＲゲート３４１０、ＡＮＤゲート３４１２及びエッジ・トリガのラッチ３４１４）で事象をネゲートするために使用される。論理を非同期モードに設定すると、ハンドシェーク回路の入力と出力の両方の側を、異なるクロック領域で動作しているにも係らず情報を互いに渡すことを可能とする。ハンドシェーク回路は、以下の表１に列挙するように、交差トリガ・デバッグ・システム内の多数の場所で非同期モードで使用可能である。
表１
2005135379.tif 000003
【０１０３】
図３７はハンドシェーク回路の同期モードを概略的に図示する。このモードでは、同期回路はバイパスされる（同期バイパス＝１）が、ハンドシェーク回路はされない（ハンドシェーク・バイパス＝０）。従って、図３６の破線で示すように、信号は４つのエッジ・トリガのラッチ３４２２、３４２４、３４２８及び３４３０をバイパスする。
【０１０４】
図３８はハンドシェーク回路の高帯域モードを概略的に図示する。この場合、ハンドシェーク及び同期回路の両方がバイパスされる（同期バイパス＝１かつハンドシェーク・バイパス＝１）。従って、信号は同期回路の４つのエッジ・トリガのラッチ３４２２、３４２４、３４２８、３４３０をバイパスし、またＡＮＤゲートの出力が論理「０」である（何故ならハンドシェーク・バイパス＝０であるため）ため、エッジ・トリガのラッチ３４１４もバイパスされる。従って、保持回路（３４１２、３４１４、３４１０）は実質的にディスエーブルされ、事象出力（要求信号）は事象入力に追随し、従ってＡＣＫは何らの機能を有さない。入力ハンドシェーク回路３６５０と出力ハンドシェーク回路３６６０が同じクロックを有し、クロック・スキューがゼロである（すなわち、クロック信号は２つの回路に実質的に同時に到着する）場合に、高帯域モードを使用してもよい。これは、交差トリガ装置にクロック・サイクル当たり１事象の転送を可能とし、これは交差トリガ・ブロック２４３０に接続された回路が事象カウントまたはプロファイリングを実行する場合に有用である。
【０１０５】
図３９はハンドシェーク回路の割込みモードを概略的に図示する。この場合、図３６の非同期モードのように、ハンドシェーク・バイパス＝０で同期バイパス＝０である。出力ハンドシェーク回路３６６０のみを図示する。割込みモードでは、出力ハンドシェーク回路３６６０のＯＲゲート３４１０は割込み出力要求として割込み制御器に与えられる。回路が割込み制御器に出力を発生するとき（ＣＴＩからＴＲＩＧＯＵＴ）、ハードウェアを使用して事象をクリアするのではなく、ソフトウェア・クリア回路を使用して事象をクリアする。
【０１０６】
図４０はハンドシェーク回路のパルス出力モードを概略的に図示する。この場合、ハンドシェーク・バイパス＝０であるが、同期バイパス＝１である（図３７の同期モードの場合のように）。再び、出力ハンドシェーク回路３６６０のみを図示する。事象ソースがパルスである限り、図４０の回路はトリガ出力として単一サイクル・パルスを発生可能である。
【０１０７】
図４１と図４２は図２４と図２８の実施例の構成レジスタの回路を概略的に図示する。図４１はトリガ対チャネル・マッピング論理を示すが、一方図４２はチャネル対トリガ・マッピング論理を示す。この論理は図１９と図２０のものと各々機能的に同じであるが、信号名が異なる。
【０１０８】
望ましいレジスタ形式とレジスタ・アクセス
以下の文節は、本技術によるシステムで使用する望ましいレジスタ形式とレジスタ・アクセスを詳細に指定する。この仕様は主にＡＲＭコアに向けられているが、デバッグ・ツールが任意のプロセッサをより容易に駆動することを可能とするよう、他の製造業者のプロセッサ・コアも本仕様を尊重することが望ましい。
【０１０９】
レジスタを指定可能とするため、以下の制限を使用する：
チャネル
本仕様によりサポートされる最大チャネル数は８チャネルである。いくつのレジスタが実際に実装されているかを知るために１つのレジスタが読取り可能である（ＣＴＣＨＡＮＮＥＬＳＤＥＦ）。
サポートされるチャネル数がより多い場合、本仕様は最初の８チャネルに対して尊重されなければならない。
【０１１０】
トリガ入力
以下のトリガ入力が本仕様によりサポートされる。これらの入力のうちのどれが実装されているか知るために１つのレジスタが読取り可能である（ＣＴＩＮＰＵＴＳＤＥＦ）
・  ＤＢＧＡＣＫ：プロセッサがデバッグ・モードにいるとき、この入力は高状態に駆動される、
・  ＩＮＴＩＮ（４ビットまで）：割込み入力。
・  ＥＴＭＥＸＴＯＵＴ（４ビットまで）：これらの入力はＥＴＭのＥＴＭＥＸＴＯＵＴ出力に接続されなければならない。これらの出力の挙動はＥＴＭ内部でプログラムされるべきである。
・  ＡｐｐＴｒｉｇ：このトリガは実際には事象をトリガするために使用可能であるレジスタ・ビットである。
これらの全ての入力を実装する必要はない。ユーザが要件を定義するのを助けるため、いくつかのパラメータを設けるべきである。
【０１１１】
トリガ出力
以下のトリガ出力が本仕様によりサポートされる。これらの出力のうちのどれが実装されているか知るために１つのレジスタが読取り可能である（ＣＴＯＵＴＰＵＴＳＤＥＦ）
・  ＤＢＧＡＲＱ：この出力は、プロセッサがデバッグ・モードに入ることを要求するために使用される。
・  ＩＮＴＯＵＴ（４ビットまで）：これらの出力は割込み線路として使用されなければならない。
・  ＥＴＭＥＸＴＩＮ（４ビットまで）：これらの出力はＥＴＭのＥＴＭＥＸＴＩＮ入力に接続されなければならない。トリガを受信した時の挙動を定義するためＥＴＭをプログラムする必要がある。
これらの全ての出力を実装する必要はない。ユーザが要件を定義するのを助けるため、いくつかのパラメータを設けるべきである。
【０１１２】
アクセス機構に関しては、交差トリガ・インタフェースの構成レジスタを２つのモードによりアクセスするべきであることが推奨される：
・  メモリ・マップ構成
・  走査アクセス
【０１１３】
最初にメモリ・マップ構成を考える。システム要件に応じて、構成レジスタはメモリ・マップのＡＨＢまたはＡＰＢスレーブとしてアクセスされなければならない。
【０１１４】
レジスタ・アクセスを容易にするためＡＰＢ周辺装置を使用することを推奨する。構成レジスタは（相対的に）まれにアクセスされ、メイン・システム・バス（ＡＨＢ／ＡＳＢ）に配置した場合、増大するロードが最大システム・バス周波数を劣化する恐れがある。
【０１１５】
しかし、例えば、特権アクセスを選択するためにＨＰＲＯＴを使用する必要が有る場合、または特定のシステムで望ましい場合には、ある場合にＡＨＢスレーブを選択可能である。
【０１１６】
安全性に関しては、交差トリガ・システムを使用して侵入デバッグ事象を発生可能であるため、生産開発時にのみ交差トリガ・マトリクスを使用し、生産システムでのその使用（意図しないものであれまたは悪意であれ）を防止することが重要である。
【０１１７】
以下の２つの機構を実装して、構成レジスタへの望ましくないアクセスを防止すべきである：
・  デバッグ・イネーブル：ＤＢＧＥＮ信号を使用してプロセッサの交差トリガ・インタフェースをディスエーブルすべきである（事象を受信することまたは上げることが出来ない）、
・  アクセス・キー：構成レジスタへのアクセスをイネーブルするために一連のデータ書込みが必要である。この列の複雑度は必要に応じて変更可能である。
【０１１８】
全てのレジスタはワードとしてアクセスされなければならず、これによりリトル及びビッグ・エンディアン・メモリ・システムと適合させる。
【０１１９】
走査構成に関しては、埋め込みトレース・マクロセル（ＥＴＭ）に接続されたＡＲＭコアでは、走査モードを使用してレジスタをアクセス可能であることが要件である。これは非侵入構成設定を可能とする。
【０１２０】
交差トリガ・インタフェースは特定のコアに取付けられているため、新たなＴＡＰ制御器を実装する代わりに、他の走査チェーンを使用して、構成レジスタをコアに直接接続することは意味が有る。この場合、Ｍｕｌｔｉ−ＩＣＥは、１つ有る場合には、ＥＴＭにより、ＡＲＭコアと交差トリガ・インタフェース用の単一のＴＡＰ制御器を検出する。
【０１２１】
これは、コアと交差トリガ・インタフェースの数が増加すると非常に重要である、何故ならこれはＴＡＰ制御器の数、従って命令を走査するのに必要な時間を倍増するからである。
【０１２２】
図４３は、ＥＴＭに既に接続されている、ＡＲＭコアへの推薦接続を概略的に図示する。交差トリガ・インタフェースは走査チェーンＳＣ＿ＣＴＩに応答する（ＳＣ＿ＣＴＩは９に設定される）。
【０１２３】
交差トリガ・インタフェースＪＴＡＧインタフェースは、ＥＴＭが有り、またはなしでも、任意のＡＲＭコアへ接続可能である。命令を実行すべきことをＣＴＩが検出すると（その走査チェーンが選択されると）、Ｓｅｌはアクティブとなり、ＴＤＯ信号はＣＴＩから来る。その他の全ての場合で、ＴＤＯはコアから来る。
【０１２４】
この解決法は外部マルチプレクサを必要とするが、これはＡＲＭコアの全ての版で動作することを保証する。
【０１２５】
殆どのＡＲＭコアはＤＢＧＳＣＲＥＧと呼ばれる出力を有し、これはＵＰＤＡＴＥ＿ＤＲの間走査チェーンのＩＤ番号を含む。交差トリガ・インタフェースのＳＥＬ出力はＤＢＧＳＣＲＥＧの値がＳＣ＿ＣＴＩとなると同時に駆動される。
【０１２６】
非ＡＲＭコアとの接続に関しては、非ＡＲＭコアは特定の走査チェーンを選択不能であるため、以上の解決法は使用不能である。この場合、コアとＣＴＩは直列に接続され、ＣＴＩのＴＡＰ制御器は全ての命令に応答し、特定のＴＡＰ  ＩＤレジスタを有する。
【０１２７】
特定の走査チェーンは依然として選択されなければならず、従ってＴＡＰ制御器へ話し掛けるプロトコルはＡＲＭコアへ取り付ける時と正確に同じである。
【０１２８】
この場合にどのＣＴＩがどのコアに取付けられたかを知るため、これをコアの前に配置しなければならないことが決定された（ＣＴＩからのＴＤＯはコアのＴＲＩに接続される）。
【０１２９】
走査チェーン・フォーマットに関しては、交差トリガ・インタフェースのあるレジスタはＪＴＡＧインタフェースを通してアクセス可能である。インタフェースはＡＲＭ  ＴＡＰ制御器の延長であり、ＩＤ番号ＳＣ＿ＴＣＩ（９）を割当てられる。
【０１３０】
走査チェーンは、以下を含む４０ビット・シフトレジスタから構成される：
・  ３２ビット・データ・フィールド
・  ７ビット・アドレス・フィールド
・  読取り／書込みビット
【０１３１】
交差トリガ・インタフェースＪＴＡＧレジスタの一般的配置は図４４に図示される。
【０１３２】
書込まれるデータは３２ビット・データ・フィールドに走査され、レジスタのアドレスは７ビット・フィールドに、１が読取り／書込みビットに走査される。
【０１３３】
そのアドレスをアドレス・フィールドへ、かつ０を読取り／書込みビットへ走査することによりレジスタを読取る。３２ビット・フィールドは無視される。データ・フィールドの値は読取りデータの値により置き換えられる。このデータは、走査チェーン・レジスタの他の４０ビット・ワードを走査することによりアクセス可能である。
【０１３４】
ＴＡＰ制御器がＵＰＤＡＴＥ＿ＤＲ状態に入ると、読取りまたは書込みが発生する。
【０１３５】
ここでレジスタ形式を考える。交差トリガ・インタフェース・レジスタのメモリ・マップの汎用構造は、汎用のＰｒｉｍｅＸｓｙｓ構成に適合する：４ｋＢ（１０２４  ３２ビット・レジスタ）のグローバル・アレイがこの構成部品用に予約され、２つのアレイに分割される：
（ｉ）走査モードで、かつメモリ・インタフェースを介してアクセス可能な１２８の３２ビット・レジスタ、
（ｉｉ）メモリ・インタフェースのみを介してアクセス可能なその他全てのレジスタ。
【０１３６】
図４５Ａは構成レジスタの提案メモリ・マッピングを概略的に図示する。大部分のレジスタとレジスタ・ビットは使用されない。この場合、読取りアクセスは未実装ビットには０を返し、書込みアクセスは無視される。
【０１３７】
図４５Ｂは図４１と図４２の構成レジスタの別のメモリ・マップを概略的に図示する。このメモリ・マッピングは図２５に図示したマッピングに代わるものである。図４３のメモリ・マップでは、レジスタ０から１０２３はＪＴＡＧ走査アクセス可能である。
【０１３８】
以下の全てのアドレスはＣＴＩレジスタのアドレス・ベースに対して相対的である。
【０１３９】
いくつかのチャネルは多数のチャネルと入出力に依存する。この表の幅は最大幅である。以下の部分は各レジスタの内容を詳細にする。
【０１４０】
全体制御（０ｘ０００から０ｘ０ＦＣ）
これらのレジスタは互換性の理由から予約されている。使用されていない各レジスタまたはビットは「０」と読むべきであり、他の目的には使用されない。
【０１４１】
ＣＴＧＥＮＣＴＬ（０ｘ０００）Ｒ−Ｒ／Ｗレジスタの形式は図４６に示される。
・  ＧｂｌＥｎ：ＣＴＩの状態を制御し指示する。ディスエーブルされた場合、全ての交差トリガ機能はこのプロセッサでディスエーブルされる。電源オン・リセット時にディスエーブル
・  ＤｂｇＥｎ：（読取り専用）ＤＢＧＥＮ入力の値を読取る。
・  ＩｎｔＥｎ：割込み出力のグローバル・マスク信号。０の時、割込み出力は変更されず、ＣＴＩＮＴＲＡＷＳＴＡＴＵＳレジスタが割込みの状態を与える。ＣＴＩＮＴＯＵＴＥＮレジスタはどのチャネルが割込みを上げるかを制御する。
・  Ｌｏｃｋｅｄ：（読取り専用）レジスタへのアクセスがロックされた場合「１」が読取られ、それ以外は「０」。ＣＴＬＯＣＫレジスタを使用することによりアクセスをアンロック可能である。
・  ＳｙｎｃＢｙＰａｓｓ：ＳＹＮＣＢＹＰＡＳＳ入力の値を読取る。
【０１４２】
ＣＴＬＯＣＫ（０ｘ００４）レジスタの形式を図４７に示す。
アクセス・コード：その他のレジスタを変更可能とする前にアクセス・コード（またはコードの組合わせ）をこのレジスタに書込まなければならない。アクセスをディスエーブルするためには、それ以外の値をレジスタに書込まなければならない。ＣＴＧＥＮＣＴＬレジスタ中のロック・ビットはロックの状態を指示する。
【０１４３】
ＣＴＩＮＴＲＡＷＳＴＡＴＵＳ（０ｘ００８）Ｒは図４８に示される。
割込み：このレジスタは読取り専用レジスタであり、ＩｎｔＥｎビットによるマスクの前に、どの割込み信号がイネーブルされたかを報告する。実装ビット数は実装された割込み信号数に依存する。
【０１４４】
ＣＴＩＮＴＳＴＡＴＵＳ（０ｘ００Ｃ）Ｒの形式を図４９に示す。
割込み：このレジスタは読取り専用レジスタであり、ＩｎｔＥｎビット（ＣＴＧＥＮＣＴＬレジスタ）によるマスクの後に、どの割込み信号がイネーブルされたかを報告する。レジスタ・ビットの値は割込み出力の値に対応する。実装ビット数は実装された割込み信号数に依存する。
【０１４５】
ＣＴＩＮＴＣＬＥＡＲ（０ｘ０１０）Ｗレジスタの形式を図５０に示す。
割込み：このレジスタは書込み専用レジスタである。「１」として書込まれたどのビットも割込み出力信号をクリアさせる。実装ビット数は実装された割込み信号数に依存する。
【０１４６】
ＣＴＡＰＰＴＲＩＧ（０ｘ０８０）Ｒ／Ｗレジスタの形式を図５１に示す。
ＡｐｐＴｒｉｇ：このビットを０から１へ変更すると、イネーブルされたチャネルにアプリケーション・トリガ事象が発生される。
【０１４７】
ＣＴＰＥＲＩＰＨＩＤ（０ｘ０Ｅ０）Ｒレジスタの形式を図５２に示す。
構成：周辺装置の構成を定義する
改定：これは改訂番号である。改定番号は０から開始する。
設計者ＩＤ：これは設計者の識別名である。ＡＲＭ社は０ｘ４１（ＡＳＣＩＩ「Ａ」）である。
部品番号：これは周辺装置を識別するために使用される。
【０１４８】
ＣＴＣＨＡＮＮＥＬＳＤＥＦ（０ｘ０Ｅ４）Ｒレジスタの形式を図５３に示す。
ＣｈａｎｎｅｌｓＩｎ：各実装された入力チャネルは対応するビットを「１」に設定される。
ＣｈａｎｎｅｌｓＯｕｔ：各実装された出力チャネルは対応するビットを「１」に設定される。
【０１４９】
ＣＴＩＮＰＵＴＳＤＥＦ（０ｘＥ８）Ｒレジスタの形式を図５４に示す。
入力トリガとして対応する信号が実装された場合は「１」を、それ以外は「０」をレジスタの各ビットは読取る。
・ＤｂｇＡｃｋ：ＤＢＧＡＣＫ入力が実装されているかどうかを指示
・Ｉｎｔ：どの割込み入力信号が実装されているかを指示（４まで）
・ＥｔｍＥｘｔＯｕｔ：どのＥＴＭＥＸＴＯＵＴ［３：０］信号が実装されているかを指示
・ＡｐｐＴｒｉｇ：ＡｐｐＴｒｉｇレジスタ・ビットを実装するかどうかを指示
【０１５０】
ＣＴＯＵＴＰＵＴＳＤＥＦ（０ｘＥＣ）Ｒレジスタの形式を図５５に示す。
出力トリガとして対応する信号が実装された場合は「１」を、それ以外は「０」をレジスタの各ビットは読取る。
ＤｂｇＲｑ：ＣＴＩがプロセッサのＤＢＧＲＱ信号をトリガ可能な場合「１」
・Ｉｎｔ：どの割込み出力信号が出力トリガとして実装されているかを指示（４まで）
・ＥｔｍＥｘｔＩｎ：ＥＴＭＥＸＴＩＮのどのビットが実装されているかを指示
【０１５１】
ＣＴＰＣＥＬＬＩＤ（０ｘ０Ｆ０）Ｒレジスタの形式を図５６に示す。
ＣｅｌｌＩＤ：これは周辺装置を識別するために使用される。
【０１５２】
イネーブル・レジスタ形式
イネーブル・レジスタ（０ｘ１００から０ｘ１ＦＣ）の形式をここで定義する。
これらのレジスタはトリガをチャネルにまたは反対にマップするために使用される：
・イネーブル入力：これらのレジスタは、入力トリガ（コアから入来）を特定のチャネルに伝播させるために予約される。
・イネーブル出力：これらのレジスタは、チャネルから来た事象をコア信号へ転送するために予約される。
【０１５３】
この部分はＡＲＭコアの大部分に一般的に実装される信号用のレジスタを予約する。
【０１５４】
信号が必要ないためレジスタを実装しないとき、レジスタは常に０と読取られ、他の目的に使用してはならない。レジスタＣＴＣＨＡＮＮＥＬＳＤＥＦ、ＣＴＩＮＰＵＴＳＤＥＦ及びＣＴＯＵＴＰＵＴＳＤＥＦは正しく充填されなければならない。
【０１５５】
非ＡＲＭコアは、機能が同じである場合を除いて、これらのレジスタを実装すべきではないことに注意すべきである。例えば、割込みレジスタを使用して割込み線を制御することは受入れられる。ＡＲＭ  ＤＢＧＲＱ信号と同じ機能を有する信号を制御するためにＣＴＤＢＧＲＱレジスタを使用することも可能である。その他の全ての場合では、互換性の理由から異なるアドレスを使用すべきである。
【０１５６】
図５７に概略的に図示するように、使用すべきグローバル・レジスタ形式は以下の通りである：
・各信号は１つのレジスタを割当てられる。
・「１」にセットされたとき、各ビットは信号を１チャネルに駆動する。
【０１５７】
信号が最大４ビットのバスで、チャネル数が８を越えないとき、レジスタは４つの８ビット・レジスタに分割され、各々は前述したようになる。レジスタの最初の８ビット部分は信号のビット０に使用され、第２部分はビット１、等である。
【０１５８】
図５８はトリガとして使用される２つのＥＴＭＥＸＴＯＵＴ信号の例を概略的に図示し、ここで入力チャネル数は３である。ビット０から３を使用してＥＴＭＥＸＴＯＵＴ［０］をチャネルに駆動し、ビット８から１０を使用してＥＴＭＥＸＴＯＵＴ［１］をチャネルに駆動する。
【０１５９】
イネーブル入力レジスタ（０ｘ１００から０ｘ１７Ｃ）の形式をここで指定する。
以下のレジスタは互換性のため予約される。レジスタを実装しない場合、これは他の目的に使用してはならない。
【０１６０】
ＣＴＤＢＧＡＣＫＥＮ（０ｘ１００）Ｒ／Ｗレジスタの形式を図５９に示す。
チャネル：コアがデバッグ状態に入った時、交差トリガ事象を対応するチャネルに上げる。
【０１６１】
ＣＴＩＮＴＩＮＥＮ（０ｘ１０４）Ｒ／Ｗレジスタの形式を図６０に示す。
チャネル：割込み入力（ＩＲＱまたはＦＩＱ）が作動された時に、交差トリガ事象を対応するチャネルに上げる。１本以上の割込み線が接続されている場合、上記参照。
【０１６２】
ＣＴＥＴＭＥＸＴＯＵＴＥＮ（０ｘ１０８）Ｒ／Ｗレジスタの形式を図６１に示す。
チャネル：ＥＴＭＥＸＴＯＵＴを信号するとき、交差トリガ事象を対応するチャネルに上げる。１つ以上の信号を実装している場合は上記参照。
【０１６３】
ＣＴＡＰＰＴＲＩＧＥＮ（０ｘ１１０）Ｒ／Ｗレジスタを図６２に示す。
チャネル：アプリケーション・トリガＡｐｐＴｒｉｇを作動したとき、交差トリガ事象を対応するチャネルに上げる。
【０１６４】
イネーブル出力レジスタ（０ｘ１８０から０ｘ１ＦＣ）の形式をここで指定する。
これらのレジスタは、コアに接続されている、出力信号へあるチャネルから来たトリガを転送するために使用される。同様の推奨が適用される。
以下のレジスタは互換性のため予約される。実装されない場合、これらのレジスタは他の目的に使用してはならない：
【０１６５】
ＣＴＤＢＧＲＱＥＮ（０ｘ１８０）Ｒ／Ｗレジスタの形式を図６３に示す。
チャネル：対応するチャネル上に交差トリガ・チャネル事象があるときＤＢＧＲＱをイネーブルする。
【０１６６】
ＣＴＩＮＴＯＵＴＥＮ（０ｘ１８４）Ｒ／Ｗレジスタの形式を図６４に示す。
チャネル：対応するチャネル上に交差トリガ・チャネル事象があるとき割込み要求（ＩＲＱまたはＦＩＱ）をイネーブルする。グローバルＩｎｔＥｎ（ＣＴＤＢＧＥＮレジスタ）ビットを使用して出力をイネーブルする。割込み状態はＣＴＩＮＴＳＴＡＴＵＳレジスタを使用して読取り可能であり、ＣＴＩＮＴＣＬＥＡＲレジスタを使用してクリアされる。１本以上の割込み線を実装可能である（上記参照）。
【０１６７】
ＣＴＥＴＭＥＸＴＩＮＥＮ（０ｘ１８８）Ｒ／Ｗレジスタの形式を図６５に示す。チャネル：対応するチャネル上に交差トリガ・チャネル事象があるときＥＴＭＥＸＴＩＮ要求をイネーブルする。１つ以上の信号を実装可能である（上記参照）。
【０１６８】
統合レジスタ形式
統合レジスタ（０ｘ２００から０ｘ２８０）の形式をここで指定する。
これらの３２レジスタを使用してシステムの統合検査を実施し、正しいコア信号が正しいトリガ入出力に接続されていることを検証する。
これらのレジスタはＪＴＡＧ走査インタフェースを介してアクセス可能ではない。
以下のレジスタを実装すべきである：
ＣＴＩＴＣＲ（０ｘ２００）Ｒ／Ｗレジスタの形式を図６６に示す。
ＩＴＥＮ：統合及び検証検査レジスタ
ＣＴＩＴＩＰ１（０ｘ２０４）Ｒ／Ｗレジスタの形式を図６７に示す。
ＣＴＩＴＩＰ２（０ｘ２０８）Ｒ／Ｗレジスタの形式を図６８に示す。
ＣＴＩＴＯＰ１（０ｘ２０Ｃ）Ｒ／Ｗレジスタの形式を図６９に示す。
ＣＴＩＴＯＰ１（０ｘ２１０）Ｒ／Ｗレジスタの形式を図７０に示す。
書込みアクセス：ＣＴＩＴＣＲレジスタでイネーブル・ビットがアクティブである場合、各信号に書込まれるべき値を定義する。
読取りアクセス：検査マルチプレクサの出力の信号の値を読取る。イネーブル・ビットがアクティブである場合、レジスタに書込まれた値を返す。
【０１６９】
ＩＤレジスタ（０ｘＦＥ０から０ｘＦＦＣ）は８ビット・レジスタで、アドレス位置０ｘＦＥ０−０ｘＦＥＣと０ｘＦＦ０−０ｘＦＦＣに広がる。これらはアドレス０ｘ０Ｅ０と０ｘ０Ｆ０の３２ビット・レジスタのコピーである。これらのレジスタは周辺装置識別レジスタとＰｒｉｍｅＣｅｌｌ識別レジスタとして使用される。実装されない場合、これらのレジスタは０と読取られなければならない。
【０１７０】
本技術による配置の上記説明では、交差トリガ・マトリクス（ルーティング・モジュール）の機能を交差トリガ・インタフェース・モジュールの機能と区別してきた。しかし、これらのモジュールの一方に関連して指定した何らかの機能特徴は、他方のモジュールにより代わりに設けることも可能であるし、または実際には単一のモジュールを使用して上記機能の全てを設けることも可能であることが認められる。
【図面の簡単な説明】
【０１７１】
【図１】本技術による交差トリガシステムを概略的に図示する。
【図２】２つの交差トリガシステムが本技術により互いに接続された配置を概略的に図示する。
【図３】２つの交差トリガ・マトリクスを互いに接続した時に発生する可能性のある望ましくない組合わせループを概略的に図示する。
【図４】本技術により４つの交差トリガ・システムをいかに相互接続可能であるかを概略的に図示する。
【図５】本技術による交差トリガ・システムの特別な実装を概略的に図示する。
【図６】本技術によるオンチップ信号化方式を概略的に図示する。
【図７】図６の配置でプロセッサの局所クロックとの交差トリガ・マトリクスの同期化を実施するために使用される標準の２レジスタ同期を概略的に図示する。
【図８】第１プロセッサ・コア上の診断事象の発生から開始し、第１プロセッサ・コア上の診断事象の発生を通知されている第２プロセッサ・コアで終了する一連の通信を概略的に図示する流れ図。
【図９】本技術によるオフチップ信号化システムを概略的に図示する。
【図１０】図９の配置の同期モジュールで使用される型式の縁捕獲回路を概略的に図示する。
【図１１】図９の交差トリガ・マトリクスの２つのチャネルがいかに動作するか、を概略的に図示する。
【図１２】図６の交差トリガ・マトリクスの連続的要素がいかに接続されるかを概略的に図示する。
【図１３】組合わせループを避けるために交差トリガ・マトリクスに使用する回路を概略的に図示する。
【図１４】ＴＲＩＧＲＥＱハンドシェーク信号化に使用するステートマシンを図示する。
【図１５】ＣＨＮＬＴＲＩＧハンドシェーク信号化に使用するステートマシンを図示する。
【図１６】図１の交差トリガ・インタフェースの詳細な内部構造を概略的に図示する。
【図１７】図１６のＴＲＩＧＲＥＱ信号に実行されるハンドシェークを表す、ステートマシンを示す。
【図１８】図１６のＣＨＮＬＴＲＩＧバスの各ビットに実行されるハンドシェークを表すステートマシンを示す。
【図１９】図１の配置のコアにより発生される事象を制御する構成レジスタを概略的に図示する。
【図２０】コアに通知される事象（遠隔のコアで発生）を制御する構成レジスタを概略的に図示する。
【図２１】複数コア・システムの他のプロセッサ・コアへブロードキャストするＴＲＩＧＩＮ事象を発生するため特定のプロセッサ・コアのアプリケーションまたはデバッガにより使用可能なアプリケーション駆動のトリガを概略的に図示する。
【図２２】交差トリガ・インタフェースに使用し、全ての条件で実行される統合検査を可能とするよう動作する統合化論理を概略的に図示する。
【図２３】本技術による交差トリガの概念を概略的に図示する。
【図２４】交差トリガ・マトリクスが４つのポートを有し、交差トリガ・ブロックが形成されている、本技術による別の装置を概略的に図示する。
【図２５】交差トリガ・ブロックの回路の一部分の詳細図を概略的に図示する。
【図２６】図１の交差トリガ・マトリクスのポート接続を概略的に図示する。
【図２７】図２６の交差トリガ・マトリクスの２つを互いに接続する時にいかに組合わせループが発生するかを概略的に図示する。
【図２８】本技術による別の交差トリガ・マトリクス構成を概略的に図示する。
【図２９】図２８の交差トリガ・マトリクス回路の２つを互いに接続する時に発生する信号路を概略的に図示する。
【図３０】図２４の交差トリガ・ブロックの３つを含む配置を概略的に図示する。
【図３１】６個のプロセッサ・コアを接続する交差トリガ・システムの別の配置を概略的に図示する。
【図３２】２つのプロセッサ・コアを含み交差トリガ・マトリクスのない配置を概略的に図示する。
【図３３】図２５と図３０の配置を参照して本技術による標準的な事象転送列を概略的に図示する流れ図。
【図３４】ハンドシェーク回路の内部構造を概略的に図示する。
【図３５Ａ】図３４のハンドシェーク回路に対応する信号列を概略的に図示する。
【図３５Ｂ】図３４のハンドシェーク回路に対応する信号列を概略的に図示する。
【図３５Ｃ】図３４のハンドシェーク回路に対応する信号列を概略的に図示する。
【図３５Ｄ】図３４のハンドシェーク回路に対応する信号列を概略的に図示する。
【図３６】図３４の回路の５つの異なるハンドシェーク・モードを概略的に図示する。
【図３７】図３４の回路の５つの異なるハンドシェーク・モードを概略的に図示する。
【図３８】図３４の回路の５つの異なるハンドシェーク・モードを概略的に図示する。
【図３９】図３４の回路の５つの異なるハンドシェーク・モードを概略的に図示する。
【図４０】図３４の回路の５つの異なるハンドシェーク・モードを概略的に図示する。
【図４１】図２４と図２５の配置の構成レジスタの回路を概略的に図示する。
【図４２】図２４と図２５の配置の構成レジスタの回路を概略的に図示する。
【図４３】ＥＴＭに既に接続されている、ＡＲＭコアへの推奨接続を概略的に図示する。
【図４４】交差トリガ・インタフェースのＪＴＡＧレジスタの一般的配置を概略的に図示する。
【図４５】構成レジスタのメモリ・マッピングを概略的に図示する。
【図４６】多数の汎用制御レジスタの各々の望ましい形式を概略的に図示する。
【図４７】多数の汎用制御レジスタの各々の望ましい形式を概略的に図示する。
【図４８】多数の汎用制御レジスタの各々の望ましい形式を概略的に図示する。
【図４９】多数の汎用制御レジスタの各々の望ましい形式を概略的に図示する。
【図５０】多数の汎用制御レジスタの各々の望ましい形式を概略的に図示する。
【図５１】多数の汎用制御レジスタの各々の望ましい形式を概略的に図示する。
【図５２】多数の汎用制御レジスタの各々の望ましい形式を概略的に図示する。
【図５３】多数の汎用制御レジスタの各々の望ましい形式を概略的に図示する。
【図５４】多数の汎用制御レジスタの各々の望ましい形式を概略的に図示する。
【図５５】多数の汎用制御レジスタの各々の望ましい形式を概略的に図示する。
【図５６】多数の汎用制御レジスタの各々の望ましい形式を概略的に図示する。
【図５７】イネーブル・レジスタに使用すべきグローバル・レジスタ形式を概略的に図示する。
【図５８】入力チャネルの数が３である、トリガとして使用される２つのＥＴＭＥＸＴＯＵＴの例を概略的に図示する。
【図５９】多数のイネーブル・レジスタの各々の望ましい形式を概略的に図示する。
【図６０】多数のイネーブル・レジスタの各々の望ましい形式を概略的に図示する。
【図６１】多数のイネーブル・レジスタの各々の望ましい形式を概略的に図示する。
【図６２】多数のイネーブル・レジスタの各々の望ましい形式を概略的に図示する。
【図６３】多数のイネーブル・レジスタの各々の望ましい形式を概略的に図示する。
【図６４】多数のイネーブル・レジスタの各々の望ましい形式を概略的に図示する。
【図６５】多数のイネーブル・レジスタの各々の望ましい形式を概略的に図示する。
【図６６】多数の統合レジスタの各々の望ましい形式を概略的に図示する。
【図６７】多数の統合レジスタの各々の望ましい形式を概略的に図示する。
【図６８】多数の統合レジスタの各々の望ましい形式を概略的に図示する。
【図６９】多数の統合レジスタの各々の望ましい形式を概略的に図示する。
【図７０】多数の統合レジスタの各々の望ましい形式を概略的に図示する。
【図７１】既知の交差トリガ制御機構によりいかに４個のプロセッサ・コアが接続されるかを概略的に図示する。
【図７２】図７１の複雑なプログラム可能な論理装置の構造を概略的に図示する。
【符号の説明】
【０１７２】
１１０−１から１１０−Ｘ  プロセッサ・コア
１２０−１から１２０−Ｘ  交差トリガ・インタフェース
１３０−１から１３０−Ｘ  構成レジスタ
１５０  交差トリガ・マトリクス
【図１】
2005135379.tif 000004
【図２】
2005135379.tif 000005
【図３】
2005135379.tif 000006
【図４】
2005135379.tif 000007
【図５】
2005135379.tif 000008
【図６】
2005135379.tif 000009
【図７】
2005135379.tif 000010
【図８】
2005135379.tif 000011
【図９】
2005135379.tif 000012
【図１０】
2005135379.tif 000013
【図１１】
2005135379.tif 000014
【図１２】
2005135379.tif 000015
【図１３】
2005135379.tif 000016
【図１４】
2005135379.tif 000017
【図１５】
2005135379.tif 000018
【図１６】
2005135379.tif 000019
【図１７】
2005135379.tif 000020
【図１８】
2005135379.tif 000021
【図１９】
2005135379.tif 000022
【図２０】
2005135379.tif 000023
【図２１】
2005135379.tif 000024
【図２２】
2005135379.tif 000025
【図２３】
2005135379.tif 000026
【図２４】
2005135379.tif 000027
【図２５】
2005135379.tif 000028
【図２６】
2005135379.tif 000029
【図２７】
2005135379.tif 000030
【図２８】
2005135379.tif 000031
【図２９】
2005135379.tif 000032
【図３０】
2005135379.tif 000033
【図３１】
2005135379.tif 000034
【図３２】
2005135379.tif 000035
【図３３】
2005135379.tif 000036
【図３４】
2005135379.tif 000037
【図３５Ａ】
2005135379.tif 000038
【図３５Ｂ】
2005135379.tif 000039
【図３５Ｃ】
2005135379.tif 000040
【図３５Ｄ】
2005135379.tif 000041
【図３６】
2005135379.tif 000042
【図３７】
2005135379.tif 000043
【図３８】
2005135379.tif 000044
【図３９】
2005135379.tif 000045
【図４０】
2005135379.tif 000046
【図４１】
2005135379.tif 000047
【図４２】
2005135379.tif 000048
【図４３】
2005135379.tif 000049
【図４４】
2005135379.tif 000050
【図４５】
2005135379.tif 000051
【図４６】
2005135379.tif 000052
【図４７】
2005135379.tif 000053
【図４８】
2005135379.tif 000054
【図４９】
2005135379.tif 000055
【図５０】
2005135379.tif 000056
【図５１】
2005135379.tif 000057
【図５２】
2005135379.tif 000058
【図５３】
2005135379.tif 000059
【図５４】
2005135379.tif 000060
【図５５】
2005135379.tif 000061
【図５６】
2005135379.tif 000062
【図５７】
2005135379.tif 000063
【図５８】
2005135379.tif 000064
【図５９】
2005135379.tif 000065
【図６０】
2005135379.tif 000066
【図６１】
2005135379.tif 000067
【図６２】
2005135379.tif 000068
【図６３】
2005135379.tif 000069
【図６４】
2005135379.tif 000070
【図６５】
2005135379.tif 000071
【図６６】
2005135379.tif 000072
【図６７】
2005135379.tif 000073
【図６８】
2005135379.tif 000074
【図６９】
2005135379.tif 000075
【図７０】
2005135379.tif 000076
【図７１】
2005135379.tif 000077
【図７２】
2005135379.tif 000078
【外国語明細書】
2005135379000001.pdf