(57)【要約】ある実施例において、集積回路は、プロセッサ・コア中のスキャン・チェイン・レジスタと通信するテスト・アクセス・ポートを提供する。集積回路は、テスト・クロック（ＴＣＫ）の管理の下で動作するデバッグ制御装置と、プロセッサ・クロック（ＣＬＫ）の管理の下で動作するプロセッサ・コアとの間で転送されるデータを同期させる。
2004515787.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロック領域に第１フラグを設定し、データの有効性を表示する段階と、
第２のクロック領域に第２フラグを設定し、前記データの安定性を表示する段階と、
前記第２フラグの設定に応答して、前記第１の領域でクロックされるデバッグ制御装置回路と前記第２の領域でクロックされるプロセッサ回路との間で前記データを転送する段階と、
から構成されることを特徴とする方法。
【請求項２】
前記データの転送の完了を示すために、前記第１および第２フラグをクリアする段階をさらに含むことを特徴とする請求項１記載の方法。
【請求項３】
前記第１フラグは第１のクロック領域中でクロックされる第１フリップ・フロップに格納され、および、前記第２フラグは第２のクロック領域中でクロックされる第２フリップ・フロップに格納され、前記方法は前記第２フラグのクリアに応答して前記第１フラグをクリアする段階をさらに含むことを特徴とする請求項２記載の方法。
【請求項４】
前記データを転送する段階は、スキャン・チェイン・データを転送する段階を含むことを特徴とする請求項１記載の方法。
【請求項５】
前記データを転送する段階は、ＪＴＡＧ互換性を有するテスト・アクセス・ポート（ＴＡＰ）の形式のデバッグ制御装置回路と前記プロセッサ回路との間で前記データを転送する段階を含むことを特徴とする請求項４記載の方法。
【請求項６】
前記第１の領域中でクロックされる前記デバッグ制御装置回路と第２の領域中でクロックされる前記プロセッサ回路との間で、追加データを転送する試みに先立って前記第１のフラグがクリアされない場合に、オーバーフロー・フラグを設定する段階をさらに含むことを特徴とする請求項１記載の方法。
【請求項７】
前記プロセッサ回路の動作を停止させずに、前記デバッグ制御装置回路と前記プロセッサ回路との間で前記データを実時間で転送する段階をさらに含むことを特徴とする請求項１記載の方法。
【請求項８】
前記デバッグ制御装置回路は、ＪＴＡＧ互換性を有するテスト・アクセス・ポート（ＴＡＰ）を含み、前記方法は、ＪＴＡＧキャプチャ、シフトおよび更新データ・レジスタの状態を通じて単一の経路を備えて、デバッグ制御装置回路とプロセッサ回路との間で前記データを転送する段階をさらに含むことを特徴とする請求項１記載の方法。
【請求項９】
前記データが安定した状態に達したことを保証するのに十分な回数のクロック・サイクルの間、前記第１および第２フラグの少なくとも１つの設定を遅延させる段階をさらに含むことを特徴とする請求項１記載の方法。
【請求項１０】
第１のクロック領域に第１フラグを設定し、データの有効性を表示する第１レジスタと、
第２のクロック領域に第２フラグを設定し、前記データの安定性を表示する第２レジスタと、
前記第２フラグの設定に応答して、前記第１の領域でクロックされるデバッグ制御装置回路と前記第２の領域でクロックされるプロセッサ回路との間で前記データを転送する第３レジスタと、
から構成されることを特徴とする装置。
【請求項１１】
前記データの転送の完了を示すために、前記第１および第２フラグをクリアする論理回路をさらに含むことを特徴とする請求項１０記載の装置。
【請求項１２】
前記第１フラグは第１のクロック領域中でクロックされる第１フリップ・フロップ中に格納され、および、前記第２フラグは第２のクロック領域中でクロックされる第２フリップ・フロップ中に格納され、前記装置は前記第２フラグのクリアに応答して前記第１フラグをクリアする回路をさらに含むことを特徴とする請求項１１記載の装置。
【請求項１３】
前記データは、スキャン・チェイン・データを含むことを特徴とする請求項１０記載の装置。
【請求項１４】
デバッグ制御装置回路は、ＪＴＡＧ互換性を有するテスト・アクセス・ポート（ＴＡＰ）を含むことを特徴とする請求項１３記載の装置。
【請求項１５】
前記第１の領域中でクロックされる前記デバッグ制御装置回路と前記第２の領域中でクロックされる前記プロセッサ回路との間で、追加データを転送する試みに先立って前記第１のフラグがクリアされない場合に、オーバーフロー・フラグを設定する論理回路をさらに含むことを特徴とする請求項１０記載の装置。
【請求項１６】
前記第３レジスタは、前記プロセッサ回路の動作を停止させずに、前記デバッグ制御装置回路と前記プロセッサ回路との間で前記データを実時間で転送するように適合されることを特徴とする請求項１０記載の装置。
【請求項１７】
前記デバッグ制御装置回路は、ＪＴＡＧ互換性を有するテスト・アクセス・ポート（ＴＡＰ）を含み、前記第１、第２、および第３レジスタは、ＪＴＡＧキャプチャ、シフトおよび更新データ・レジスタの状態を通じて単一の経路を備えて、前記デバッグ制御装置回路と前記プロセッサ回路との間で前記データを転送するように適合されることを特徴とする請求項１０記載の装置。
【請求項１８】
前記データが安定した状態に達したことを保証するのに十分な回数のクロック・サイクルの間、前記第１および第２フラグの少なくとも１つの設定を遅延させる遅延回路をさらに含むことを特徴とする請求項１０記載の装置。
【請求項１９】
フラッシュ・メモリ装置と、
前記フラッシュ・メモリ装置に結合されたプロセッサと、
第１のクロック領域に第１フラグを設定し、データの有効性を表示する第１レジスタと、
前記第１フラグに設定に応答して、第２のクロック領域に第２フラグを設定し、前記データの安定性を表示する第２レジスタと、
前記第２フラグの設定に応答して、前記第１の領域中のデバッグ制御装置回路と前記第２の領域中の前記プロセッサ回路との間で前記データを転送する第３レジスタと、
から構成されることを特徴とするシステム。
【請求項２０】
前記データの転送の完了を示すために、前記第１および第２フラグをクリアする論理回路をさらに含むことを特徴とする請求項１９記載のシステム。
【請求項２１】
前記第１フラグは第１のクロック領域中でクロックされる第１フリップ・フロップに格納され、および、前記第２フラグは第２のクロック領域中でクロックされる第２フリップ・フロップに格納され、前記システムは前記第２フラグのクリアに応答して前記第１フラグをクリアする回路をさらに含むことを特徴とする請求項２０記載のシステム。
【請求項２２】
前記第１の領域中でクロックされる前記デバッグ制御装置回路と前記第２の領域中でクロックされる前記プロセッサ回路との間で、追加データを転送する試みに先立って前記第１のフラグがクリアされない場合に、オーバーフロー・フラグを設定する論理回路をさらに含むことを特徴とする請求項１９記載のシステム。
【請求項２３】
前記第３レジスタは、前記プロセッサ回路の動作を停止させずに、前記デバッグ制御装置回路と前記プロセッサ回路との間で前記データを実時間で転送するように適合されることを特徴とする請求項１９記載のシステム。
【請求項２４】
前記デバッグ制御装置回路は、ＪＴＡＧ互換性を有するテスト・アクセス・ポート（ＴＡＰ）を含み、前記第１、第２、および第３レジスタは、ＪＴＡＧキャプチャ、シフトおよび更新データ・レジスタの状態を通じて単一の経路を備えて、前記デバッグ制御装置回路と前記プロセッサ回路との間で前記データを転送するように適合されることを特徴とする請求項１９記載のシステム。
【請求項２５】
前記データが安定した状態に達したことを保証するのに十分な回数のクロック・サイクルの間、前記第１および第２フラグの少なくとも１つの設定を遅延させる遅延回路をさらに含むことを特徴とする請求項１９記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、テスト目的のための集積回路装置とテスト・アクセス・ポートとの間のデータ転送に関する。
【０００２】
【従来の技術】
複雑な集積回路装置は、その装置をテストおよびデバッグを支援するための境界スキャン・アーキテクチャ（ｂｏｕｎｄａｒｙ ｓｃａｎ ａｒｃｈｉｔｅｃｔｕｒｅ）をしばしば含む。境界スキャン・アーキテクチャは、装置上の入力（Ｉ／Ｏ）ピンに結合された一連のレジスタを組み込む。ジョイント・テスト・アクション・グループ（ＪＴＡＧ）のインタフェースとして知られている標準インタフェースは、スキャン・アーキテクチャと接続するために特別のテスト・アクセス・ポートを指定する。ＪＴＡＧのテスト・アクセス・ポートは、時々「ＴＡＰ」と称されるが、集積回路装置への外部アクセスを促進する。ＪＴＡＧインタフェースは、ＩＥＥＥの標準規格１１４９．１（ＩＥＥＥの規格１１４９．１−１９９０、１９９０を公表され、「Ｔｅｓｔ Ａｃｃｅｓｓ Ｐｏｒｔ ａｎｄ Ｂｏｕｎｄａｒｙ−Ｓｃａｎ Ａｒｃｈｉｔｅｃｔｕｒｅ」と題される）によって定義される。
【０００３】
ＪＴＡＧインタフェースでは、デバッグ制御装置は、スキャン・チェイン（ｓｃａｎ ｃｈａｉｎ）を集積回路へシフトさせるために境界スキャン命令をテスト・アクセス・ポートへ送出するために使用され、それによって、集積回路を既知の状態へ初期化する。加えて、デバッグ制御装置はスキャン・チェインからのデータをシフトして、そのデータをテスト・アクセス・ポートに提供することができる。このように、アプリケーション開発者は、集積回路装置のために開発されたコードの適切な動作を確認することができる。
【０００４】
【実施例の詳細な説明】
図１は、本発明の実施例に従って、テスト・コミュニケーション・ポートを有する集積回路装置１０を図示するブロック図である。図１に示されるように、集積回路装置１０は、プログラム可能なプロセッサ・コア１２およびデバッグ制御装置１４を含む。プロセッサ・コア１２は、フラッシュ・メモリ装置のようなランダム・アクセス・メモリ（ＲＡＭ）装置に格納された命令を実行する。プロセッサ・コア１２は、ライン１６によるプロセッサ・クロック信号（ＣＬＫ）に従って、プロセッサ・クロック領域中で動作する一方、デバッグ制御装置１４はライン１８によるテスト・クロック信号（ＴＣＫ）に従って、テスト・クロック領域中で動作する。
【０００５】
デバッグ制御装置１４は、テスト・アクセス・ポート１１を装備してもよい。テスト・アクセス・ポート１１は、特にテスト・クロック（ＴＣＫ）ライン１８、テスト・データ入力（ＴＤＩ）ライン２０、テスト・データ出力（ＴＤＯ）ライン２２およびテスト・モード・セレクト（ＴＭＳ）ライン２４からなるＪＴＡＧテスト・アクセス・ポート（ＴＡＰ）の形式をとる。ライン１８，２０，２２，２４は、テスト・アクセス・ポート・インタフェースを形成し、集積回路装置１０によってアクセス可能な外部ピンの形式をとってもよい。
【０００６】
動作では、デバッグ制御装置１４は、ＴＤＩライン２０からスキャン・チェイン・データの形式のデバッグ命令を受信する。ＴＤＩライン２０は、集積回路装置１０上のテスト・ルーチンを実行するＰＣまたはワークステーションのような外部ホスト・コンピュータ（図示せず）によって駆動される。これを受けて、デバッグ制御装置１４は、デバッグ命令をプロセッサ・コア１２に与える。加えて、デバッグ制御装置１４は、プロセッサ・コア１２から状態データを抽出してプロセッサの動作を確認し、プロセッサ・コアのために設計されたアプリケーション・コードをデバッグするのを支援する。デバッグ制御装置は、ＴＤＯライン２２上に抽出されたデータを置くことにより、リモート・ホスト・コンピュータに状態データを伝える。
【０００７】
上述されるように、プロセッサ・コア１２およびデバッグ制御装置１４は、２つの異なるクロック領域、すなわちテスト・クロック領域（ＴＣＫ）およびプロセッサ・クロック領域（ＣＬＫ）中で動作する。ライン２６は、プロセッサ・コア１２とデバッグ制御装置１４との間のＴＣＫ−ＣＬＫクロック領域の境界２６を示す。ＴＤＩライン２０のように、ＴＣＫクロック信号ライン１８は外部ホスト・コンピュータによって駆動され、比較的低い周波数で動作してもよい。しかしながら、ＣＬＫクロック信号１６は、外部または内蔵のクロック回路によって生成され、はるかに高い周波数で動作する。
【０００８】
たとえクロック領域が著しく異なる周波数で動作していることがあっても、集積回路装置１０は、２つのクロック領域ＴＣＫおよびＣＬＫを介してデータのリアルタイム交換を許容するデータ同期の特徴を具体化する。このように、テスト・データのようなデータは、プロセッサ・コア１２またはバッファ・データの動作を停止させる必要なしに、後の分析のために実時間において適用され抽出される。加えて、データ転送は、ＪＴＡＧ  ＴＡＰデータ・レジスタ状態、すなわち、キャプチャ（Ｃａｐｔｕｒｅ）、シフト（Ｓｈｉｆｔ）、更新（Ｕｐｄａｔｅ）を通して単一の経路（パス）だけで遂行されることがある。
【０００９】
データ同期の特徴は、ＴＣＫとＣＬＫの領域間で交換されたデータが、データの提供または抽出に先立って安定状態にあることを可能にする。特に、プロセッサ・コア１２およびデバッグ制御装置１４は、それぞれのクロック領域におけるデータの有効性に応じてセット及びクリアされるフラグ・レジスタ３０，３２中の対応するフラグ・セットをモニターするのに特に適合している。同期装置３３は、集積回路装置１０内のロジックおよび遅延回路の形式をとることがあるが、レジスタ３０，３２中のフラグをセットしクリアすることをコントロールする。
【００１０】
レジスタ３０，３２中のフラグは、クロック領域内の異なる準備時間を提供し、かつ異種のクロック領域間における交換が起こる前にデータが安定状態に達したという保証をするために使用される。特に、フラグは、キャプチャ、シフトおよび更新の状態を通じてそれぞれプロセッサ・コア１２およびデバッグ制御装置１４の進行を追跡するために更新される。このように、ＴＣＫおよびＣＬＫクロック領域間のデータ転送は、同期させることができる。各クロック領域のフラグは、他のものと本質的に同一である。例えば、レジスタ３０，３２中のフラグのセットは、それぞれ次のものを含む。すなわち（１）データ・イン（Ｄａｔａ Ｉｎ）、（２）データ・アウト（Ｄａｔａ Ｏｕｔ）、（３）データ・イン・オーバーフロー（Ｄａｔａ Ｉｎ Ｏｖｅｒｆｌｏｗ）、（４）データ・アウト・オーバーフロー（Ｄａｔａ Ｏｕｔ Ｏｖｅｒｆｌｏｗ）である。
【００１１】
２つのクロック領域ＣＬＫおよびＴＣＫを介してデータのフローを制御するために、１セットのデータ・レジスタが、フラグ・レジスタ３０，３２と協調して使用される。特に、共通のデータ・スキャン・レジスタ２８は、交替することを基本として、ＪＴＡＧキャプチャ、シフトおよび更新モードのために使用され、シフト・レジスタの形式をとる。データ・イン・レジスタ３４は、更新モード中にデータ・スキャン・レジスタ２８から入力データを受け取り、メモリ・マップド・レジスタ（ＭＭＲ）読取り上のプロセッサ・コア１２にデータが書き込まれることを可能にする。データ・アウト・レジスタ３６は、ＭＭＲ書込み上のプロセッサ・コア１２から出力データを受け取り、シフト・モードを後続させるキャプチャ・モードにおいて、データ・スキャン・レジスタ２８によってデータが読み取られることを可能にする。
【００１２】
データは、シフト・モードにおける外部ホスト・コンピュータから受け取られる。更新モードでは、データはデータ・スキャン・レジスタ２８からデータ・イン・レジスタ３４に転送される。デバッグ制御装置１４は、データが外部ホスト・コンピュータから受け取られたことを示すためにフラグ・レジスタ３０中のデータ・イン・フラグをセットする。同期装置３３によって生成された予め定める遅延後に、フラグ・レジスタ３２中のデータ・イン・フラグは、データがＣＬＫ領域で安定状態に達しておりプロセッサ・コア１２によってデータ・イン・レジスタ３４から取り込めることを示すためにセットされる。その後、ＭＭＲ読取り上で、データ・イン・レジスタ３４からのデータは、プロセッサ・コア１２に書き込まれる。フラグ・レジスタ３２に収容されたデータ・イン・フラグはＭＭＲに読込み動作でクリアされ、同期装置３３によってセットされた遅延後にレジスタ３０中のデータ・イン・フラグのクリアが後続する。
【００１３】
フラグ・レジスタ３２中のデータ・アウト・フラグは、プロセッサ・コア１２によってセットされ、データがデバッグ制御装置１４によるキャプチャの準備ができ、かつ安定状態に達したことを示す。データは、ＭＭＲ書込み上のプロセッサ・コア１２から読み込まれ、データ・アウト・レジスタ３６に配置される。キャプチャ・モードにおいて、プロセッサ・コア１２からのデータはデータ・スキャン・レジスタ２８に蓄えられる。フラグ・レジスタ３２中のデータ・アウト・フラグの設定に応答して、フラグ・レジスタ３０中のデータ・アウト・フラグが遅延に続いてセットされる。デバッグ制御装置１４は、データをデータ・スキャン・レジスタ２８へ蓄えることによりフラグ・レジスタ３０中のデータ・アウト・フラグをクリアする。遅延期間の後、プロセッサ・コア１２は、レジスタ３２中のデータ・アウト・フラグをクリアする。シフト・モードにおいて、そのデータは、外部ホスト・コンピュータへ移される。
【００１４】
プロセッサ・クロック領域ＣＬＫにオーバーフローの指示があるとき、データ・イン・オーバーフロー・フラグがフラグ・レジスタ３０中にセットされる。データ・イン・オーバーフロー・フラグは、例えば次の更新サイクルに先立つＴＣＫクロック領域の指定されたサイクル回数でレジスタ３２中のデータ・イン・フラグがクリアされない場合に、セットされる。この場合、フラグ・レジスタ３０中のデータ・イン・フラグは、同様に、起こりうるオーバーフロー・イベントを示して、クリアされないであろう。
【００１５】
同様に、デバッグ制御装置のクロック領域ＴＣＫにオーバーフロー指示があるとき、データ・アウト・オーバーフロー・フラグがレジスタ３２中にセットされる。データ・アウト・オーバーフロー・フラグは、例えばＣＬＫクロック領域の指定されたサイクル回数でレジスタ３０中のデータ・アウト・フラグがクリアされないか、あるいは次のキャプチャ・サイクルに先立ってクリアされない場合に、セットされる。この場合、レジスタ３２中のデータ・アウト・フラグは、同様にクリアされないであろう。
【００１６】
動作に関して、プロセッサ・コア１２およびデバッグ制御装置１４は、キャプチャ、シフトおよび更新の状態を通じて循環する。更新状態で、デバッグ制御装置１４は、プロセッサ・コア１２のためのデータを生成する。キャプチャ状態で、プロセッサ・コア１２は、デバッグ制御装置１４によって抽出のためのデータを生成する。実際、更新状態で、デバッグ制御装置１４は、データをプロセッサ・コア１２に書き込み、キャプチャ状態で、結果としての状態データをプロセッサ・コアから抽出する。シフト状態は、データ・スキャン・レジスタ２８へおよびからのデータの転送を管理する。
【００１７】
シフト状態で、関連のあるデータは、シフト・レジスタ２８へ、およびそのシフト・レジスタから同時にシフトされる。特に、キャプチャ状態に続いて、シフト・レジスタ２８は、アプリケーションのためのデバッグ制御装置１４からプロセッサ・コア１２へデータをシフト入力する。シフト状態中に、シフト・レジスタ２８は、プロセッサ・コア１２からキャプチャされたデータをデバッグ制御装置１４によって抽出のためにシフト出力される。
【００１８】
図２は、プロセッサ・コア１２、デバッグ制御装置１４および外部ホスト・コンピュータの間でデータ転送を行なうための回路を図示するブロック図である。図２は、特に、図１のデータ・スキャン・レジスタ２８、データ・イン・レジスタ３４およびデータ・アウト・レジスタ３６の動作をより詳細に図示する。
【００１９】
データ・スキャン・レジスタ２８は、複合したデータ交換レジスタの一部を形成することがあり、データ・イン・レジスタ３４およびデータ・アウト・レジスタ３６で集積されてもよい。データ・イン・レジスタ３４およびデータ・アウト・レジスタ３６は、同じメモリ・アドレスに位置してもよく、また同じＪＴＡＧデータ・スキャン・レジスタ２８を共有してもよく、全二重データ転送を許容する。
【００２０】
デバッグ・モードでは、プロセッサ・コア１２からメモリ・マップド・レジスタへのロードがデータ・イン・レジスタ３４から読み込まれる一方、プロセッサ・コア１２からメモリ・マップド・レジスタへの格納はデータ・アウト・レジスタ３６に書き込まれる。全二重データ転送は、キャプチャ、シフトおよび更新状態を通じて循環することにより達成される。
【００２１】
データ・アウトフロー・ビット４０およびデータ・インフロー・ビット４２は、データ・アウト・レジスタ３６およびデータ・イン・レジスタ３４がそれぞれ、有効かどうか示す。メモリ・マップド・レジスタへの格納が生じるとき、データ・アウトフロー・ビット４０はセットされ、キャプチャがデータ・スキャン・レジスタ２８上に生じるときクリアされる。
【００２２】
更新が、データ・スキャン・レジスタ２８中にセットされた対応するデータ・ビットと同時に生じるとき、データ・インフロー・ビット４２がセットされる。メモリ・マップド・レジスタからロードが生じるとき、データ・インフロー・ビット４２がクリアされる。データ・スキャン・レジスタ２８は、データ・アウトフロー、データ・インフロー・フラグ・ビット４０，４２を含む。データ・アウトフロー、データ・インフロー・フラグ・ビット４０，４２は、個別のステータス・レジスタの一部になるか、またはデータ・ローディングの速度を増加させるためにデータ・スキャン・レジスタ２８中にコピーされる。
【００２３】
さらに図２を参照して、データ・イン・レジスタ３４は、入力として、プロセッサ・コア１２へ更新制御ライン、ロード制御ラインおよびＭＭＲ読取データ経路を具備する。データ・アウト・レジスタ３６は、入力として、プロセッサ・コアからデータ・アウト・レジスタ３６およびデータ・スキャン・レジスタ２８への格納制御ライン、キャプチャ制御ラインおよびＭＭＲ書込みデータ経路を具備する。
【００２４】
データ・スキャン・レジスタ２８は、入力として、データ・イン（ＴＤＩ）制御ラインおよびシフト制御ラインを、出力として、データ・アウト（ＴＤＯ）線を具備する。動作では、キャプチャ、シフト、更新およびロードの命令は、データ・イン・レジスタ３４、データ・アウト・レジスタ３６およびデータ・スキャン・レジスタ２８を経由するリアルタイムのデータ転送を可能にするために同期させられる。
【００２５】
図３は、本発明の特定の実施例に従って、テスト・アクセス・ポート１１を経由して、プロセッサ・コア１２へリアルタイムでデータ転送を行なう同期プロセスを示すタイミング・ダイヤグラムである。図３は、データがデバッグ制御装置１４からプロセッサ・コア１２に転送される更新状態によるテスト・アクセス・ポート１１の進行を示し、図１および図２に関して上述したさまざまな信号およびフラグの相互作用を示す。
【００２６】
図３で示されるように、スキャン・データは、テスト・アクセス・ポート（ＴＡＰ）におけるシフト（Ｓｈｉｆｔ）命令の表明（ａｓｓｅｒｔｉｏｎ）に続くＴＣＫクロック信号の第１のポジティブ（立ち上がり）エッジでＴＤＩ入力信号２０によってデータ・スキャン・レジスタ２８へシフトされる。更新状態でのＴＣＫ信号のポジティブ・エッジで、装置１０を備える論理回路は有効なデータがシフト・レジスタ２８にロードされたことを示して、データ・イン・バリッド（Ｄａｔａ Ｉｎ Ｖａｌｉｄ）信号を表明（ａｓｓｅｒｔ）する。
【００２７】
ＴＣＫクロック領域内のデータ・イン・バリッド信号の表明によって、更新（Ｖａｌｉｄ）信号がプロセッサ・クロックＣＬＫ領域中で表明される。更新信号は、プロセッサ・コア１２がデータ・スキャン・レジスタ２８からレジスタ３４中にデータをロードするのを命じる。プロセッサ・コア１２が先のデータをロードし終えていない場合、フラグ・レジスタ３２中のデータ・イン・オーバーフロー（Ｄａｔｅ Ｉｎ Ｏｖｅｒｆｌｏｗ）の表明によって示されるように、オーバーフローの条件が発生する。
【００２８】
オーバーフロー条件が発生しないと仮定して、フラグ・レジスタ３０内にデータ・インのフラグ設定が検出され、フラグ・レジスタ３２内に対応するデータ・インのフラグの遅延した設定が行われる。より詳しくは、フラグ・レジスタ３０内におけるデータ・インのフラグの状態変化を示すために、データ・イン・ポジエッジ（Ｄａｔｅ Ｉｎ Ｐｏｓｅｄｇｅ）信号がＣＬＫ領域中で表明される。データ・イン・ポジエッジ信号は、ＣＬＫ領域の１つのクロック・サイクル間表明されたままとなり、次のＣＬＫポジティブ・エッジで低へ移行する。
【００２９】
データ・イン・ポジエッジ信号の表明に応答して、フラグ・レジスタ３２のデータ・インのフラグは、ＣＬＫクロック領域中でセットされる。以下議論されるように、プロセッサ・コア１２がデータ・イン・レジスタ３４からデータを読むまで、フラグ・レジスタ３２のデータ・インのフラグは表明され続ける。この例では、更新信号の表明後の４ＣＬＫサイクル、メモリ・マップド・レジスタ（ＭＭＲ）読取り信号は、プロセッサ・コア１２がレジスタ３４からデータを読んだことを示して１ＣＬＫサイクルの間高に移行し、それにより次のＣＬＫサイクルでフラグ・レジスタのデータ・インのフラグをクリアする。そのフラグのクリアが検出されると、データ・イン・ネガエッジ（Ｄａｔａ Ｉｎ Ｎｅｇｄｇｇｅ）信号が予め定められた遅延に続くＴＣＫ領域中、例えばＣＬＫ領域におけるフラグ・レジスタ３２のデータ・インのフラグをクリアすることに続く３番目のＴＣＫサイクルで表明される。データ・イン・ネガエッジ信号の表明により、フラグ３０のデータ・インのフラグがクリアされ、テスト・アクセス・ポート１１で更新／ロード・サイクルを完了する。
【００３０】
更新サイクルの間ずっと、レジスタ３０，３２中のデータ・イン・ＴＣＫ（Ｄａｔａ Ｉｎ ＴＣＫ）およびデータ・イン・ＣＬＫ（Ｄａｔａ Ｉｎ ＣＬＫ）のフラグそれぞれ、およびデータ・イン・オーバーフロー（Ｄａｔａ Ｉｎ Ｏｖｅｒｆｌｏｗ）のフラグを使用して、データはリアルタイム転送のために同期させられ、プロセッサ・コア１２がその動作を継続することを可能にすることを可能にする。その間、更新信号は、テスト・アクセス・ポート１１での更新命令の表明に応答して、再び高に移行し、１ＣＬＫクロック・サイクルの間高を維持する。データ・イン・ＣＬＫ（Ｄａｔａ Ｉｎ ＣＬＫ）のフラグおよび更新信号の表明に応答して、データ・イン・オーバーフローは、ＣＬＫ信号の次のポジティブ・エッジで高に遷移する。データ・イン・オーバーフロー信号は、別の更新が開始されたが、フラグ・レジスタ３２中のデータ・インＣＬＫ（Ｄａｔａ Ｉｎ ＣＬＫ）フラグがクリアされなかったことを示す。
【００３１】
図４は、プロセッサ・コア１２からテスト・アクセス・ポート１１を経由してリアルタイムのデータ転送を同期化させるプロセスを示すタイミング・ダイヤグラムである。図３のように、図４は、さらにデータ転送を行なうためにさまざまな信号およびフラグの相互作用を図示する。図４は、特に、キャプチャ状態によるテスト・アクセス・ポート（ＴＡＰ）１１の進行を図示し、その状態で、データはプロセッサ・コア１２からデバッグ制御装置１４へ転送される。
【００３２】
図４で示されるように、ＭＭＲ書込み信号は、１ＣＬＫクロック・サイクル間高に移行する。新しいデータが、データ・アウト・レジスタ３６へ戻される。さらに、フラグ・レジスタ３２中のデータ・アウト（Ｄａｔａ Ｏｕｔ）ＣＬＫフラグは、ＭＭＲ書込み信号のポジティブ・エッジに続く１つのＣＬＫサイクルでセットされる。フラグ・レジスタ３２中のデータ・アウトＣＬＫ（Ｄａｔａ Ｏｕｔ ＣＬＫ）フラグは、データがＣＬＫ領域において安定していることを示す。フラグ・レジスタ３２中のデータ・アウトＣＬＫのポジティブ・エッジに続く３番目のＴＣＫクロック・サイクルで、データ・アウト・ポジエッジ（Ｄａｔａ Ｏｕｔ Ｐｏｓｅｄｇｅ）信号が表明される。データ・アウト・ポジエッジ信号に応答して、フラグ・レジスタ３０中のデータ・アウト（Ｄａｔａ Ｏｕｔ）ＴＣＫフラグは次のＴＣＫクロック・サイクルでセットされる。
【００３３】
フラグ・レジスタ３０中のデータ・アウトＴＣＫ（Ｄａｔａ Ｏｕｔ ＴＣＫ）が次のＭＭＲ書込みの前にクリアされない場合、データ・アウト・オーバーフロー（Ｄａｔａ Ｏｕｔ Ｏｖｅｒｆｌｏｗ）信号は、ＭＭＲ書込み信号のネガティブ・エッジ（立ち下がり）上で高くなる。キャプチャ信号がＴＣＫ領域の中で表明されるとき、データはデータ・スキャン・レジスタ２８へ蓄えられ、シフト状態のテスト・アクセス・ポート１１経由で外にシフトされる。
【００３４】
キャプチャ信号に応答して、フラグ・レジスタ３０中のデータ・アウトＴＣＫフラグは１ＴＣＫサイクル後にクリアされる。その後、データ・アウト・ネガエッジ（Ｄａｔａ Ｏｕｔ Ｎｅｇｅｄｇｅ）信号は、データ・アウトＴＣＫフラグのクリアに続く３番目のＣＬＫサイクルでＣＬＫ領域の中で高に遷移し、データ・アウトＣＬＫフラグをクリアする。特に、フラグ・レジスタ３２中のデータ・アウトＣＬＫフラグは、データ・アウト・ネガエッジ信号の表明に続く次のＣＬＫサイクルでクリアされる。データ・アウト・ピンはデータ・アウトＴＣＫが高い期間中に高くなる。
【００３５】
図５は、プロセッサ・コア１２とテスト・アクセスが１１との間のデータ・フローを制御するための回路を示す概要図である。図６−図９の回路と結合する実施例については、図５の回路は、データ・イン・レジスタ３４およびデータ・アウト・レジスタ３６の動作を同期させ、かつ、図３および図４に関して記述された相互作用をサポートする役割を果たす。
【００３６】
図５に示されるように、この回路は、入力として、プロセッサ・コア１２から受け取られる３２ビットのデータであってもよいＭＭＲ書込みデータおよびＭＭＲ書込みイネーブル線を具備するレジスタ４４を含む。レジスタ４４の出力は、キャプチャ・モードにおけるデータ・アウトをデータ・スキャン・シフト・レジスタ２８に提供する。レジスタ４４は、プロセッサ・クロック領域ＣＬＫの中で計測（クロック）され、データ・アウト・レジスタ３６の一部を形成してもよい。
【００３７】
データ・スキャン・レジスタ２８の一連のマルチプレクサ４７は、入力として、レジスタ４４からのデータ・アウト、デバッグ制御装置１４からのＴＤＩおよび対応するマルチプレクサに関連する一連の出力フリップ・フロップ４６からフィードバック・ラインを受ける。各フリップ・フロップ４６は、テスト・クロック領域ＴＣＫ中でクロックされる。データ・スキャン・シフト・レジスタ２８は、各マルチプレクサ４７に結合された制御ラインへ応答する。
【００３８】
制御ラインは、ある信号のステータスに基づき、各マルチプレクサ４７の入力のうちの１つを選択する。ホールド信号が表明されるとき、例えば、フィードバック・ラインは、各マルチプレクサ４７によって選択され、関連するフリップ・フロップ４６へ出力する。このように、データ・スキャン・シフト・レジスタ２８はその内容を保持する。シフト信号が表明されると、制御ラインは各マルチプレクサ４７がＴＤＩデータをシフトさせるとともに、蓄えられたデータの最後のビットをシフトさせてＴＤＯライン５１上に出力する。データ・スキャン・シフト・レジスタ２８中の各フリップ・フロップ４６の出力は、レジスタ５０にロードされる。シフト・レジスタ２８の出力はマルチ・ビット・バスであり、その１ビットはＴＤＯ（参照数字５１で示される）として抽出される。レジスタ５０は、フリップ・フロップ４６から受信したデータをデータ・インとして出力し、プロセッサ・クロック領域ＣＬＫ中でクロックされる。レジスタ５０は、イネーブル入力で、参照数字５２によって示された同期回路から更新命令を受け取る。更新命令に応答して、レジスタ５０は、ＭＭＲリード・データとしてレジスタ２８の出力を通じて計時（クロック）する。
【００３９】
同期回路５２は、入力として、データ・スキャン・シフト・レジスタ２８に有効な入力データが更新動作のため存在することを示すデータ・イン・バリッド（Ｄａｔａ Ｉｎ Ｖａｌｉｄ）信号を受け取る。同期回路５２は、図１中の同期装置３３の一部を形成してもよい。参照数字５４として示されるように、データ・イン・バリッド信号は、一連のフリップ・フロップ１−ｎを通して伝播する。フリップ・フロップ５４の数ｎは、所要の伝播遅延に従ってセットすることができる。データ・イン・フリップ・フロップ５０へクロックされる時までに、レジスタ２８中のデータが安定状態に達したことを保証するため、その伝播遅延が選択され、それによって、ＴＣＫおよびＣＬＫクロック領域を介するデータ転送を同期させる。
【００４０】
フリップ・フロップ５４およびフリップ・フロップ５６の出力は、ＡＮＤゲート５８の入力および反転入力をそれぞれ駆動する。ＣＬＫ領域のデータ・イン・バリッド信号がデータ・スキャン・シフト・レジスタ２８中に有効なデータを示すとき、フリップ・フロップ５４、５６は更新命令の伝播を遅らせ、その結果データ・イン・フリップ・フロップ５０はその後一定期間までイネーブルにされない。
【００４１】
このように、同期回路５２は、データ・スキャン・シフト・レジスタ２８の内容の安定性を保証し、その結果、そのデータはデータが実質的に破壊する危険性なしにＣＬＫ−ＴＣＫ領域のインタフェースを介して転送することができる。プロセッサ・コア１２の動作を停止させる必要なくリアルタイム転送を許容するために、このプロセスは、ＴＣＫとＣＬＫの領域を介してデータ・スキャン・シフト・レジスタ２８中のデータを有効に同期させる。これはコードをデバッグする動作を促進させる重要な利点である。
【００４２】
図６は、プロセッサ・コア１２とデバッグ制御装置１４との間のデータ・フローを制御するたの回路を示す別の概要図である。図６の回路は、データの同期およびＴＣＫとＣＬＫ領域の同期フラグのクリアおよびセットのためのデータ・インフロー・ポジエッジ（Ｄａｔａ Ｉｎｆｌｏｗ Ｐｏｓｅｄｇｅ）信号を生成する。特に、図６の回路は、フラグ・レジスタ３０中のデータ・インＴＣＫ（Ｄａｔａ Ｉｎ ＴＣＫ）フラグとデータ・イン・ポジエッジ信号との関係を図示する。
【００４３】
図６で示されるように、この回路は入力０，１として受け取るマルチプレクサ６０およびフリップ・フロップ６２からのフィードバック・ラインを含んでもよい。フリップ・フロップ６２は、ＴＣＫ領域中でクロックされる。マルチプレクサ６０は、入力のうちの１つを選択する制御ラインを受け取る。ホールド信号の表明に際して、制御ラインは、フリップ・フロップ６２からのフィードバック・ラインを選ぶためにマルチプレクサ６０を制御する。
【００４４】
データ・イン・ネガエッジ信号が表明されると、制御ラインによってマルチプレクサ６０は０のラインを選択する。更新信号が表明されると、制御ラインによってマルチプレクサ６０は１のラインを選択する。フリップ・フロップ６２の出力は、データ・インＴＣＫであり、それはＴＣＫ領域、つまりフラグ・レジスタ３０の中で、データ・イン・フラグとして取り扱われる。一連の１−ｎのフリップ・フロップ６４は、データ・イン・ＴＣＫフラグを受け取る。フリップ・フロップ６６は、フリップ・フロップ６４の出力を受け取る。フリップ・フロップ６４，６６はＣＬＫ領域中でクロックされる。フリップ・フロップ６４およびフリップ・フロップ６６の出力は、それぞれ、ＡＮＤゲート６８の入力および反転入力を駆動する。ＡＮＤゲートの出力は、データ・イン・ポジエッジ信号である。フリップ・フロップ６４の数は、データ・スキャン・レジスタ２８中の流入データの安定性を保証する伝播遅延を提供するために選択される。
【００４５】
図７は、プロセッサ・コア１２とデバッグ制御装置１４との間のデータ・フローを制御するための回路を図示する別の概要図である。図７の回路は、ＴＣＫおよびＣＬＫ領域においてデータを同期させるためのデータ・イン・ネガエッジ信号を生成する。図７は、特にフラグ・レジスタ３２中のデータ・インＣＬＫフラグとデータ・イン・ネガエッジ信号との関係を図示する。図７中で示されるように、回路は入力０，１として受け取るマルチプレクサ７０およびフリップ・フロップ７２からのフィードバック・ラインを含む。フリップ・フロップ７２はＣＬＫ領域中でクロックされる。
【００４６】
マルチプレクサ７０は、マルチプレクサ入力の１つの選択を駆動する制御ラインを受ける。フィードバック・ラインは、ホールド信号の表明で、マルチプレクサ７０によって選択される。ＭＭＲ読取り信号およびデータ・インＣＬＫフラグ双方が表明されるとき、つまり、２つの信号の論理積を満たすとき、制御ラインによってマルチプレクサ７０は０のラインを選択する。データ・イン・ポジエッジ信号が表明されると、制御ラインはマルチプレクサ７０に１のラインを選択させる。フリップ・フロップ６２の出力はデータ・インＣＬＫフラグである。
【００４７】
一連の１−ｎのフリップ・フロップ７４は、データ・インＣＬＫフラグを受け取る。フリップ・フロップ７６はＴＣＫ領域中で計測（クロック）され、フリップ・フロップ７４の出力を受け取る。フリップ・フロップ７４，７６は、ＴＣＫとＣＬＫの領域を介して、データ・インＣＬＫフラグのための同期装置として機能する。フリップ・フロップ７４およびフリップ・フリップ７６の出力は、それぞれ、ＡＮＤゲート７８の入力および反転入力を駆動する。ＡＮＤゲートの出力はデータ・イン・ネガエッジ信号である。
【００４８】
図８は、プロセッサ・コア１２とテスト・アクセス・ポート１１との間のデータ・フローを制御するための回路を示す別の概要図である。図８の回路は、図６の回路にほぼ一致するが、スキャン・モードに関するものである。図８の回路は、ＴＣＫおよびＣＬＫ領域におけるデータ同期のためのデータ・アウト・ポジエッジ（Ｄａｔａ Ｏｕｔ Ｐｏｓｅｄｇｅ）信号を生成する。
【００４９】
図８中で示されるように、この回路は入力０，１として受け取るマルチプレクサ８０およびフリップ・フロップ８２からのフィードバック・ラインを含む。フリップ・フロップ８２はＣＬＫ領域の中でクロックされる。マルチプレクサ８０は、入力のうちの１つを選択する制御ラインを受け取る。ホールド信号が表明されると、制御ラインは、フィードバック・ライン、すなわちデータ・アウトＣＬＫを選択するためにマルチプレクサ８０を駆動する。データ・アウト・ネガエッジ信号が表明されるとき、制御ラインによってマルチプレクサ８０は０のラインを選択する。ＭＭＲ書込み信号が表明されると、制御ラインによってマルチプレクサ８０は１のラインを選択する。フリップ・フロップ８２の出力はデータ・アウトＣＬＫであり、それはＣＬＫ領域のデータ・アウト・フラグとしての役割を果たす。
【００５０】
一連の１−ｎのフリップ・フロップ８４は、データ・アウトＣＬＫ信号を受け取る。フリップ・フロップ８６は、フリップ・フロップ８４の出力を受け取る。フリップ・フロップ８４，８６はＴＣＫ領域の中でクロックされる。フリップ・フロップ８４およびフリップ・フロップ８６の出力は、それぞれ、ＡＮＤゲート８８の入力および反転入力を駆動する。ＡＮＤゲートの出力はデータ・アウト・ポジエッジ信号である。
【００５１】
図９は、プロセッサ・コア１２とテスト・アクセス・ポート１１との間のデータ・フローを制御するための回路を示す別の概要図である。図９の回路は、ＴＣＫおよびＣＬＫ領域におけるデータ同期のためのデータ・アウト・ネガエッジ信号を生成する。図９中で示されるように、この回路は入力０，１として受け取るマルチプレクサ９０およびフリップ・フロップ９２からのフィードバック・ラインを含む。フリップ・フロップ６２はＴＣＫ領域中でクロックされる。
【００５２】
マルチプレクサ９０は、入力のうちの１つを選択する制御ラインを受け取る。ホールド信号が表明されるとき、制御ラインによってマルチプレクサ９０はフィードバック・ラインを選択する。キャプチャおよびデータ・アウトＴＣＫ信号、つまり、論理積中で表明されるとき、制御ラインによってマルチプレクサ９０は０のラインを選択する。データ・アウト・ポジエッジ信号が表明されると、制御ラインによってマルチプレクサ９０は１のラインを選択する。フリップ・フロップ９２の出力はデータ・アウトＣＬＫであり、それはＣＬＫ領域のデータ・アウト・フラグとしての役割を果たす。
【００５３】
一連の１−ｎフリップ・フロップ９４はデータ・インＣＬＫ信号を受け取る。フリップ・フロップ９６は、フリップ・フロップ９４の出力を受け取る。フリップ・フロップ９４，９６はＣＬＫ領域中でクロックされる。フリップ・フロップ９４およびフリップ・フロップ６の出力は、それぞれ、ＡＮＤゲート９８の入力および反転入力を駆動する。ＡＮＤゲートの出力はデータ・アウト・ネガエッジ信号である。フリップ・フロップ９４の数は、所要の伝播遅延を生成するために選択され、それによってデータ・スキャン・レジスタ２８中のアウトフロー・データの安定性を保証する。
【００５４】
本発明のさまざまな実施例が説明された。これらおよび他の実施例が次の請求項の範囲内である。
【図面の簡単な説明】
【図１】テスト・アクセス・ポートを有する集積回路装置を図示するブロック図である。
【図２】集積回路装置中のプロセッサ・コアとテスト・アクセス・ポートとの間のデータ・フローを制御するための回路を図示するブロック図である。
【図３】テスト・アクセス・ポートからプロセッサ・コアへのリアルタイムのデータ転送を同期化するためのプロセスを図示するタイミング・ダイヤグラムである。
【図４】プロセッサ・コアからテスト・アクセス・ポートへのリアルタイムのデータ転送を同期化するためのプロセスを図示するタイミング・ダイヤグラムである。
【図５】プロセッサ・コアとテスト・アクセス・ポートとの間のデータ・フローを制御するための回路を図示する概要図である。
【図６】プロセッサ・コアとテスト・アクセス・ポートとの間のデータ・フローを制御するための回路を図示する別の概要図である。
【図７】プロセッサ・コアとテスト・アクセス・ポートとの間のデータ・フローを制御するための回路を図示する別の概要図である。
【図８】プロセッサ・コアとテスト・アクセス・ポートとの間のデータ・フローを制御するための回路を図示する別の概要図である。
【図９】プロセッサ・コアとテスト・アクセス・ポートとの間のデータ・フローを制御するための回路を図示する別の概要図である。
【図１】
2004515787.tif 000003
【図２】
2004515787.tif 000004
【図３】
2004515787.tif 000005
【図４】
2004515787.tif 000006
【図５】
2004515787.tif 000007
【図６】
2004515787.tif 000008
【図７】
2004515787.tif 000009
【図８】
2004515787.tif 000010
【図９】
2004515787.tif 000011
【国際公開パンフレット】
2004515787.tif 000012
2004515787.tif 000013
2004515787.tif 000014
2004515787.tif 000015
2004515787.tif 000016
2004515787.tif 000017
2004515787.tif 000018
2004515787.tif 000019
2004515787.tif 000020
2004515787.tif 000021
2004515787.tif 000022
2004515787.tif 000023
2004515787.tif 000024
2004515787.tif 000025
2004515787.tif 000026
2004515787.tif 000027
2004515787.tif 000028
2004515787.tif 000029
2004515787.tif 000030
2004515787.tif 000031
2004515787.tif 000032
2004515787.tif 000033
2004515787.tif 000034
2004515787.tif 000035
2004515787.tif 000036
2004515787.tif 000037
2004515787.tif 000038
2004515787.tif 000039
2004515787.tif 000040
2004515787.tif 000041
2004515787.tif 000042
2004515787.tif 000043
2004515787.tif 000044
2004515787.tif 000045
2004515787.tif 000046
2004515787.tif 000047
2004515787.tif 000048
2004515787.tif 000049
2004515787.tif 000050
【国際公開パンフレット（コレクトバージョン）】
2004515787.tif 000051
【国際調査報告】
2004515787.tif 000052
2004515787.tif 000053
2004515787.tif 000054