(57)【特許請求の範囲】
【請求項１】
データ処理集積回路であって、
データ処理演算を実行するための複数の埋め込まれたデータ処理コアであって、各埋め込まれたデータ処理コアが、その上にデバッグ信号を有する、少なくとも１つのデバッグ出力信号経路を有する、前記複数の埋め込まれたデータ処理コアと、
複数のデバッグ出力ピンと、
複数のマルチプレクサであって、各マルチプレクサが、対応するデバッグ出力信号経路に接続された複数の入力と、制御入力と、出力とを有し、各マルチプレクサが、前記制御入力に応じて前記複数の入力の１つを前記出力に選択的に結合する、前記複数のマルチプレクサと、
前記データ処理集積回路の外部からロード可能であり、前記複数のマルチプレクサの前記制御入力に接続されたレジスタであって、前記複数のマルチプレクサの前記選択的な結合を制御するデータを格納する、前記レジスタと、
複数の３状態バッファであって、各３状態バッファが、前記複数のマルチプレクサの対応する１つの前記出力に接続された入力と、前記複数のデバッグ出力ピンの対応する１つに接続された出力と、前記レジスタに接続された制御入力とを有する、前記複数の３状態バッファと、
を含み、
前記レジスタが、更に、前記複数の３状態バッファの各々が３状態高Ｚ出力を生成するかどうかを制御するデータを格納する、
前記データ処理集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般的に電子式データ処理に関するものであって、更に詳細には電子式データ処理を行なうデバイスおよびシステムのエミュレーション、シミュレーション、およびテスト機能に関する。
【０００２】
【従来の技術】
ウエハ・リソグラフィおよび表面搭載パッケージング技術の進歩に伴って、電子的設計において益々多くの複雑な機能がシリコンおよびプリント基板の両方に集積されるようになってきた。設計の高密度化および相互接続ピッチの縮小の結果として、残念ながら物理的アクセスは減少する。設計時に組み込まれるテスト機能が必要とされるようになり、それによって、完成品はテストおよびデバッグ間にも制御および観察することが可能となる。製造時に生ずる欠陥は、製品出荷前の最終的なテストで検出できることが望ましい。設計が複雑なため、自動試験機器がその製品をテストできるように論理設計段階でのテスタビリティを考慮することなくしては、このような基本的な要請を実現することは困難である。
【０００３】
性能および製造時欠陥のテストに加えて、アプリケーション・ソフトウエアの開発においても、そのシステムあるいはサブシステムの設計段階で同様なレベルのシミュレーション、透明性、および制御可能性が必要とされる。設計のエミュレーション段階では、ＩＣ（集積回路）あるいはＩＣ群が、ソフトウエア・プログラムとリンクした時に、最終製品の機器またはアプリケーションの中で正しく機能することを確かめることが必要である。
【０００４】
自動車産業、電気通信、防衛システム、および生命維持システムで益々多くのＩＣが使用されるようになり、完璧なテストおよび拡張的な実時間デバッグが絶対的に必要とされるようになった。
【０００５】
仕様に適合していることを保証するためのテスト・ベクタを設計者が生成する性能試験方式は、今でも広く採用されているが、非常に大規模のシステムに対してこの方法は広範囲の欠陥を検出できないことから不適切なことが分かっている。完全なテストができるためには自動的なテスト・パターンの生成が望ましく、テストの全階層（システム・レベルからトランジスタ・レベルまで）をカバーする制御可能性および透明性が重要な鍵である。
【０００６】
大規模設計の別の問題点は、長時間と過大なコストを要することである。再利用を考慮した設計概念に適したテスト用の回路、システム、および方法が望ましい。このように、以下のデバイスおよびシステムは、初期デバイスに組み込まれたテスタビリティ、シミュレーション、およびエミュレーションの回路、システム、および方法を再利用することによって、低い設計コストでテスタビリティ、シミュレーション、およびエミュレーションを実現する。先行するテスタビリティ、シミュレーション、およびエミュレーションの方式がなければ、テスト・パターンの生成および更新のために大きな設計時間が費やされることになる。
【０００７】
再利用すべきモジュールを設計し、それの完全なテスト・パターンを生成および更新するために膨大な投資を行ったとしても、そのモジュールを再び利用する場合にそれを特定用途論理回路に埋め込んで、それへのアクセスを困難または不可能なものとするかもしれない。従って、このような落とし穴は避けることが望ましい。
【０００８】
ＩＣ設計の進歩には、例えば、内部透明性および制御の低下、欠陥網羅の縮小、および状態切換能力の低下、テスト開発および検証問題の増加、設計シミュレーションの複雑化、および連続的に増大するＣＡＤ（コンピュータ支援設計）ツールのコストが伴う。ボード設計での副産物には、レジスタ透明性および制御の低下、設計検証でのデバッグおよびシミュレーションの複雑化、１つのパッケージに多くの回路を実装することによって物理的アクセスが失われることによる従来エミュレーションのロス、基板上でのルーティングの複雑化、設計ツールのコスト増、混在モードでの実装、および生産容易な設計が含まれる。アプリケーション開発での副産物には、状態の透明性低下、高速エミュレーション困難、スケーリングされた時間シミュレーション、デバッグ複雑化、およびエミュレータのコスト増が含まれる。製品の副産物には、透明性および制御の低下、テスト・ベクタおよびモデルの複雑化、テストの複雑化、混在モードでの実装、７桁（１００万ドルのオーダー）領域にまで連続的に増大する自動試験機器のコスト増、および厳しさを増す許容度が含まれる。
【０００９】
スキャン方式のエミュレーションおよび複数処理デバッグを採用したエミュレーション技術は１０年以上昔に導入された。１９８８年に、設計サイクル時間からの要求およびエミュレーションに利用できるオンチップ空間の制約が動機となって従来の回路エミュレーションからスキャン方式のエミュレーションへ変化が起こった。設計サイクル時間の要求は３つの因子によって発生した。すなわち、オンチップ・メモリなどのより高度な集積レベル；増大するクロック・レート−エミュレーションをサポートする論理によって引き起こされる電気的介入；およびより複雑なパッケージングによって生ずるエミュレータ接続性の問題である。
【００１０】
今日、これらの同じ因子が新しい展開を伴って問題化しており、今日の複雑でより高いクロック・レートで高密度に集積された設計において必要とされるシステム・デバッグ機能を供給するスキャン方式のエミュレータ機能に対して課題となっている。その結果、システムはより小型で高速な低コストのものとなる。それらは益々高密度化する床面積で高い性能を示すものである。これらの建設的な各システム・トレンドは、逆に高速なシステム開発にとって重要な要因であるシステム活動の透明性に悪影響を及ぼす。この効果は“透明性消滅”と呼ばれる。
【００１１】
アプリケーション開発者は、関連するすべてのシステム活動のうちで透明性および制御を優先する。集積レベルの着実な進歩とクロック・レートの増大は、利用できる透明性および制御を時間とともに着実に減少させている。これらの因子は透明性および制御のギャップ、すなわち望ましい透明性および制御と実際に利用できるレベルとの差を生ずる。時間とともにこのギャップは拡大している。アプリケーション開発ツールの提供業者はこのギャップの拡大率を最小に留めようとする。開発ツールのソフトウエアおよび関連するハードウエア・コンポネントは、より少ないもので、また異なるやり方でより多くのことを成し遂げなければならない。利用の利便さへの挑戦はこれらの力によって増幅される。
【００１２】
【発明の解決しようとする課題】
今日の高密度集積されたシステム・オンチップ（ＳＯＣ）技術は、透明性および制御のギャップを劇的に拡大した。ロジック・アナライザや区分化されたプロトタイプ・システムなどの伝統的なデバッグ・オプションは、今日のシステムの集積レベルや益々増大するクロック・レートに追随できない。
【００１３】
集積レベルの増大とともに、数多くのサブシステム・コンポネントをつなぐシステム・バスがチップ上を移動し、伝統的なロジック・アナライザがこれらのバスへアクセスできなくなっている。バスの透明性が限定されるかほとんどない状況で、ロジック・アナライザなどのツールはシステム活動を観察したり、開発中のシステムを制御するために必要なトリガー機構を提供したりすることができない。アクセスできないものを制御するのが困難であるように、この透明性の消失には制御の消失が伴う。
【００１４】
この傾向に挑むために、システム設計者はそれらのバスを露出させ、露出したバスでプロトタイプ・システムを構築できるようにシステム・コンポネントを構築しようとしている。この方式もまた、システム・クロック・レートの更なる増大傾向によって包囲されてしまった。ＣＰＵクロック・レートが増大するほどには、チップとチップとの間のインタフェース速度は増大できない。開発者は、区分化されたシステムの性能はチップとチップ間の通信速度の遅延を保証するために加えられるインタフェース待ち状態のために、集積化された場合よりも劣ることを見出した。この性能劣化は或る時点で許容できないレベルに達し、区分化プロトタイプ・システムはもはや実行可能なデバッグ・オプションではなくなった。我々は製品デバイスがアプリケーション開発のためのプラットフォームとして用いられるべき時代に突入している。
【００１５】
増大するＣＰＵクロック・レートはまた、他の簡便な透明性機構の終了を加速する。ＣＰＵクロック・レートは最大のＩ／Ｏ状態速度を超えることができるため、元々の形で情報を出力している透明性ポートはもはやＣＰＵに追随できない。オンチップのサブシステムもＣＰＵクロック・レートより遅いクロック・レートで動作する。この方式はシステム設計を簡略化し電力消費を減らすために用いられよう。これらの開発はＣＰＵ活動を明瞭に観察するために、簡便な透明性ポートはもはや、あてにできないことを意味する。
【００１６】
透明性および制御が失われるとともに、アプリケーションを開発するために使用される開発ツールはより非生産的なものとなる。ツールはまた透明性および制御を維持するために要求されるツールの複雑化のせいで使い難いものとなっている。システム・オンチップによって発生した透明性、制御、および使い易さの問題は、製品開発サイクルを長期化する問題を孕んでいる。
【００１７】
集積化の傾向が開発者に困難なデバッグ環境を提供するとは言っても、一方で、デバッグ問題に対する新たな方式が出現する期待もある。開発サイクル時間の問題をもたらす密度およびクロック・レートの増大はまた、その問題を解決する機会を生むことにもなった。
【００１８】
オンチップのデバッグ機能は、従来に増して入手し易いものとなっている。高速、高性能のチップが益々大規模メモリ構造によって支配されるようになると、ＣＰＵおよびメモリ・サブシステムに付随するランダム・ロジックのシステム・コストは全システム・コストのパーセントで下降する。数千ゲートのコストはこれまでで最も低く、或る場合には今日のチップ設計の中では無視されよう。今日の高密度パッケージにおけるピン当りコストもまた下降しており、デバッグ用に多くのピンを割り当てることがより容易になっている。ゲートおよびピンの入手が容易になることで、システム・オンチップによって発生した課題に対処するために必要な新しいオンチップのエミュレーション機能の展開が可能となる。
【００１９】
製品デバイスがアプリケーションをデバッグするためのプラットフォームとしても使用されるときには、それらは製品を市場に出す時間をサポートするのに十分なデバッグ能力を提供する必要がある。デバッグへの要求はアプリケーション毎に変化するので、市場化までの時間と必要なコストとの間でバランスを取るようにオンチップ・デバッグ機能を調節できることが非常に望ましい。
【００２０】
これらのオンチップ機能はチップの循環コストに影響するので、どの方法でもスケーリングできることが最も重要である。オンチップ・ツールの展開における指導原理は“必要なものだけに金を使え”である。この新しいパラダイムで、システム設計者はオンチップ・デバッグ機能について、残りの機能と一緒に、チップ・コスト制約と製品開発チームのデバッグ要請とのバランスを取りながら仕様を定めよう。
【００２１】
【課題を解決するための手段】
本発明のエミュレーション技術は、上に述べたデバッグの前向きの機会を利用して、開発者に対して制御および透明性のギャップを狭めることを狙ったデバッグ能力の蓄積を提供する。
【００２２】
本エミュレーション技術は、今日の高度に集積された埋め込み式の実時間システムの複雑なデバッグ問題に対して解答を提供する。この技術は、前節で述べた透明性、制御および使い易さの喪失の問題に取り組み、同時に現状のエミュレータの特徴を拡張する。
【００２３】
本発明のオンチップ・デバッグ・コンポネントは、コストおよびデバッグ能力を最適化するための手段を提供する。その構造はシステム・コストおよび市場化の時間という制約に合致するように調整されたエミュレーション・コンポネントまたは周辺機器の柔軟な組合せを許容する。スケーリング可能という特徴によって、それらを可能なコストおよび限られた性能オーバーヘッドで製品デバイスに含めることが可能となる。
【００２４】
【発明の実施の形態】
ここで本発明のエミュレーション、デバッグ、およびシミュレーション・ツールについて説明する。ここに述べるエミュレーションおよびデバッグ解決手段は次のような前提に基づいている。すなわち、従来、オフチップで実行されているデバッグ機能のすべてでなくてもいくつかのものは、もしそれらが開発者のデバッグ倉庫に残すべきものであれば、いつの日にか製品デバイスに集積されるようになるであろうということである。デバッグ機能をチップ上へ移動する手助けのために、本発明はオンチップ展開のための強力でスケーリング可能なデバッグ機能の一覧表を提供する。この技術は、透明性消滅傾向によって生じた透明性、制御、および使い易さの問題に直接的に対処する能力を付加するとともに、初期のＪＴＡＧ技術の利益すべてを継承している。
【００２５】
最初に述べた制御および透明性のギャップへの取り組みへの先鋒となる４つの重要な構造的インフラストラクチャ・コンポネントは次のものである。
１．実時間エミュレーション（ＲＴＥ）
２．実時間データ交換（ＲＴＤＸ）
３．トレース
４．高度解析
【００２６】
これらのコンポネントは表１に示すように透明性および制御の要請に対処する。
【００２７】
【表１】
0004551019.tif 000002
【００２８】
実時間エミュレーション（ＲＴＥ）は、実時間実行制御（ラン、ステップ、ホールト等）およびレジスタ／メモリ透明性に関する基本的な固定機能セットを提供する。このコンポネントはユーザがアプリケーション・コードをデバッグすることを許容すると同時に、実時間の割込みもサポートする。レジスタおよびメモリは、割込み処理に影響せずに実時間でアクセスされよう。ユーザは実時間と非実時間の割込みを区別し、実時間でのメモリへのデバッグ・アクセスによって乱されるべきでないコードにマークを付ける。この基本エミュレーション機能には、２個のシングルポイント・ハードウエア・ブレークポイント、シングル・データ・ウォッチポイント、イベント・カウンタ、あるいはデータ・ログ機構として構成可能なハードウエアが含まれる。ＥＭＵピン機能には、マルチプロセッサ・イベント処理および一方向性（目標からホストへ）のデータ・ログ機構用のトリガーＩ／Ｏが含まれる。
【００２９】
ＲＴＤＸ（商標）は、エミュレータ・ホストと目標アプリケーションとの間で実時間データ転送を提供する。このコンポネントは、エミュレータによって促進される双方向性および一方向性の両方のＤＳＰ目標／ホストデータ転送を提供する。ＤＳＰ（または目標）アプリケーションはホストへ転送すべき目標データを収集するか、あるいはホストからデータを受信し、他方でエミュレーション・ハードウエア（ＤＳＰおよびエミュレータの内部にある）が実際の転送を管理する。いくつかのＲＴＤＸ転送機構がサポートされており、その各々は異なるレベルの帯域幅およびピン利用を提供することによってゲートおよびピン利用性と帯域幅との間で要求のバランスを図っている。
【００３０】
トレースは、アプリケーション活動の透明性を提供する非命令的機構である。トレースは、プログラム・フローおよびメモリ・アクセスのようなＣＰＵに関連する活動、およびＡＳＩＣ状態機械、データの流れ、およびＣＰＵ収集データのようなシステム活動を監視するために使用される。歴史的なトレース技術はまた、製品デバイスよりも多くのピンを有するロジック・アナライザ的な収集および特殊エミュレーション（ＳＥ）デバイスを使用していた。ロジック・アナライザあるいは同様なデバイスは、状態機械的なプログラミング・インタフェース（フィルタ機構）を使用して元々の表現でデータを処理していた。このトレース・モデルは、記憶し、観察し、解析する必要のあるデータを選択する外部トリガーでエクスポートされるすべての活動に依存していた。
【００３１】
しかし、既存のロジック・アナライザ的な技術は、より高レベルの集積化、増大するクロック・レート、およびより複雑化するパッケージングによる透明性低下に対する解答を提供しない。このモデルでは、製品デバイスは限られた数のピンを通して透明性を提供しなければならない。エクスポートされるデータは必要なエクスポート帯域幅を小さくするようにエンコードまたは圧縮される。記録機構は純粋な記録デバイスになり、エクスポートされたデータを深いトレース・メモリに詰め込む。記録されたデータをシステム活動の記録へ変換するためにトレース・ソフトウエアが使用される。
【００３２】
高速シリアル・データ・エクスポートを備えたオンチップ・トレースは、高度解析と組み合わせてＳＯＣ設計に対する解答を提供する。トレースは、プログラム・フローおよびメモリ・アクセスのようなＣＰＵに関連する活動、およびＡＳＩＣ状態機械、データの流れ等、およびＣＰＵ収集データのようなシステム活動を監視するために使用される。これは４つの異なる種別のトレース・データを生成する。
・ＤＳＰコアによって提供されるプログラム・フローおよびタイミング（ＰＣトレース）
・ＤＳＰコアまたはチップ・レベルの周辺機器によって行なわれるメモリ・データ参照（データの読み書き）
・用途特定信号およびデータ（ＡＳＩＣ活動）
・ＣＰＵ収集データ
【００３３】
４種類のトレース・データに関する収集機構は、機能性と、望ましい帯域幅要求に合致するために必要なゲートおよびピンとのトレードオフを許容するモジュール構成になっている。
【００３４】
ＲＴＤＸおよびトレース関数は同様であるが異なる形の透明性を提供する。それらはデータ収集方法およびそれらの最も効率的な環境が異なる。理解を助けるために以下に簡単な説明を行なう。
【００３５】
ＲＴＤＸ（実時間データ交換）は、ＣＰＵの支援を受けて情報交換を行なう方法である。ここで、交換すべきデータはプログラム・フローに対して正しく定義された振る舞いをする。例えば、ＲＴＤＸはＤＳＰアルゴリズムから入力および出力バッファを記録するために使用できる。ＲＴＤＸはデータ収集にＣＰＵの支援を要求し、従ってそれを実行するために明確だが少しのＣＰＵ帯域幅を必要とする。このように、ＲＴＤＸは、少ない循環オーバーヘッド・コストで以って透明性を提供するアプリケーション介入機構である。
【００３６】
トレースは非介入的なハードウエア支援収集機構（バス監視器のような）であり、非常に高い帯域幅（ＢＷ）のデータ・エクスポートを備えている。トレースは非常に高いデータ・レートでデータをエクスポートしなければならないとき、あるいはトレースすべき情報の振る舞いが分からないか、あるいは本質的にランダムであるか、アドレスに付随する場合に使用される。プログラム・フローは振る舞いを予め知ることができない場合の典型例である。この種の情報をエクスポートするために要する帯域幅は高い。指定されたアドレスのデータ・トレースは別の例である。データ・トレースをエクスポートするために要する帯域幅は非常に高い。
【００３７】
トレース・データは一方向性で、目標からホストへ向かう。一方向性のＲＴＤＸもサポートされているが（データ・ログ）、ＲＴＤＸはどちらの方向へもデータ交換を行なうことができる。トレース・データ経路もまた、非常に高速の一方向性ＲＴＤＸを提供するために使用できる（ＣＰＵ収集されたトレース・データ）。
【００３８】
トレースおよびＲＴＤＸの高レベルな機能について概略を表２に示す。
【００３９】
【表２】
0004551019.tif 000003
【００４０】
高度解析は、非介入的なオンチップ・イベント検出およびトリガー発生機構を提供する。高度解析によって生成されるトリガー出力は、トレースおよびＲＴＤＸなどの他のインフラストラクチャ・コンポネントを制御する。歴史的なトレース技術は、ロジック・アナライザへエクスポートされたバス活動を使用してロジック・アナライザ中でトレースを制御するトリガーを発生したり、あるいは実行を停止させるためのトリガーを発生させてデバイスへ供給したりした。通常、これには製品デバイスよりも多くのピンを有するチップが含まれていた（ＳＥまたは特殊エミュレーション・デバイス）。この解析モデルはシステム・オンチップ（ＳＯＣ）時代にはうまく動作しない。その理由は、今日のデバイスの集積レベルおよびクロック・レートが完全な透明性を有するバス・エクスポートを排除するためである。
【００４１】
高度解析は入手可能なオンチップ命令およびデータバス比較器、シーケンサおよび状態機械、およびイベント・カウンタを提供して、オフチップで用いられた歴史的なトリガー機能の最も重要な部分を再現する。高度解析は、トレース、ＲＴＤＸ、および実時間エミュレーションに対してデバッグ・トリガー機構の制御部分を提供する。この構成コンポネントはイベントを識別し、イベント・シーケンスを追跡し、それらの発生に基づいてアクションを割り当てる（ブレイク実行、トレース・イネーブル／ディスエーブル、カウント、ＲＴＤＸイネーブル／ディスエーブル等）。この機能に関するモジュール構築ブロックには、バス比較器、外部イベント発生器、状態機械あるいは状態シーケンサ、およびトリガー発生器が含まれる。高度解析システムのモジュール構成によって、機能性とゲートとのトレードオフが可能となる。
【００４２】
エミュレータ機能は４つのエミュレータ・コンポネントの相互作用によって生まれる。
１．デバッガ・アプリケーション・プログラム
２．ホスト・コンピュータ
３．エミュレーション・コントローラ
４．オンチップ・デバッグ機能
【００４３】
これらのコンポネントは図１に示すようにつながれる。ホスト・コンピュータ１０はエミュレーション・コントローラ１２（ホストに対して外部にある）へつながれ、エミュレーション・コントローラ（ここではエミュレータまたはコントローラとも呼ばれる）はまた目標システム１６へつながれる。ユーザは、望ましくは、例えばテキサス・インスツルメンツ社のプログラム“Ｃｏｄｅ  Ｃｏｍｐｏｓｅｒ  Ｓｔｕｄｉｏ”のような、ホスト・コンピュータ上で走っているデバッガ・アプリケーション・プログラムを介して、目標アプリケーションを制御する。
【００４４】
典型的なデバッグ・システムが図１に示されている。このシステムはエミュレータ１２を介してデバッグ機能へアクセスするために、ホスト・コンピュータ１０（一般にはＰＣ）を使用する。デバッガ・アプリケーション・プログラムは、ホスト・コンピュータを介して、使用者に使い易いかたちでデバッグ機能を提供する。デバッグ資源は必要に応じてデバッグ・ソフトによって割り振られ、この作業をユーザが行わなくてもよくなっている。ソース・レベルでのデバッグではデバッグ資源を利用するが、それの複雑な部分はユーザから見えないようになっている。デバッガは、オンチップのトレースおよびトリガー機能と一緒に、興味の対象であるチップ活動を選択、記録、および表示するための手段を提供する。
トレースのディスプレイは、そのトレース・ログを発生したソース・コードに対して自動的に関連づけられる。エミュレータはデバッグ制御とトレース記録機能の両方を提供する。
【００４５】
デバッグ機能は、目標チップのＪＴＡＧまたは同様なシリアル・デバッグ・インタフェースを介する標準的なエミュレータ・デバッグ・アクセスを用いてプログラムされる。ピンは貴重なので、この技術ではトレース、トリガー、およびその他のデバッグ機能でデバッグ用ピンのプールを共有するようにしてシリコン・コストの上昇を少なくしている。固定ピン・フォーマットもサポートされている。ピンを共有するオプションを採用するときには、デバッグ・ピンの利用は各デバッグ・セッションの最初に（チップがアプリケーション・プログラムを走らせるように命令される前に）トレース・エクスポート帯域幅を最大化するように決められる。トレース帯域幅は、最大数のピンをトレースに割り当てることによって最大化される。
【００４６】
システム内でのデバッグ能力および構築ブロックは変動しよう。従って、エミュレータ・ソフトウエアは実行時に構成を決める。この方式は、コンフィギュレーションおよびレジスタ組織化と取引する制約群に合致するハードウエア・ブロックを必要とする。他のコンポネン群は、ブロックおよび他の周辺機器をシステムのメモリ・マップ上で位置決めするように設計されたハードウエア検索能力を提供する。エミュレータ・ソフトウエアは資源を位置決めするために検索機能を使用する。モジュールの見つかったアドレスおよびタイプＩＤが、見出された各ブロックを一義的に同定する。一旦ＩＤが見出されると、設計データベースを用いて正確なコンフィギュレーションおよびすべてのシステム入出力が確認される。
【００４７】
ホスト・コンピュータは、一般に少なくとも６４メガバイトのメモリを持ち、少なくともＷｉｎｄｏｗｓ９５、ＳＲ−２、ＷｉｎｄｏｗｓＮＴ、あるいはＷｉｎｄｏｗｓの後継バージョンを走らせることのできるＰＣである。ＰＣはエミュレータが要求する通信インタフェースの１つをサポートしなければならない。例えば、
・イーサネット１０Ｔおよび１００Ｔ、ＴＣＰ／ＩＰプロトコル
・ユニバーサル・シリアル・バス（ＵＳＢ）、ｒｅｖ１．ｘ
・ファイヤワイヤ、ＩＥＥＥ１３９４
・パラレル・ポート（ＳＰＰ、ＥＰＰ、およびＥＣＰ）
【００４８】
エミュレーション・コントローラ１２は、ホスト・コンピュータ１０と目標システム１６との橋渡しをし、ホスト・コンピュータ上で走るデバッガ・アプリケーションとＤＳＰ（あるいはその他の目標プロセッサ）１４上で実行される目標アプリケーションとの間で渡されるすべてのデバッグ情報を取り扱う。
【００４９】
エミュレータ構成例の１つは以下の能力すべてをサポートする。
・実時間エミュレーション
・ＲＴＤＸ
・トレース
・高度解析
【００５０】
これに加えて、エミュレータから目標へのインタフェースは次をサポートする。
・入力および出力トリガー
・ビットＩ／Ｏ
・特殊な拡張動作モードの管理
【００５１】
エミュレーション・コントローラ１２は、３、４、または５ビットのスキャンをベースとするインタフェースを介して実時間エミュレーション機能（実行制御、メモリ、およびレジスタ・アクセス）にアクセスする。ＲＴＤＸ機能は、スキャンによって、あるいはスキャン以外の目標からエミュレータへの直接的な接続を使用するより高帯域幅の３つのＲＴＤＸフォーマットを使用することによってアクセスできる。入出力トリガーは、他のシステム・コンポネントがそのチップに対してあるいはその逆に、デバッグ・イベント時に信号供給することを許容する。
【００５２】
エミュレータ１２は、通信セクションとエミュレーション・セクションとに区分される。通信セクションはホスト通信リンク上でホスト１０との通信をサポートし、他方エミュレーション・セクションは目標へのインタフェースとなって、目標デバッグ機能およびデバイス・デバッグ・ポートを管理する。エミュレータ１２は、１５で示す、例えば、上述の工業標準の通信リンクの１つを用いてホスト・コンピュータ１０と交信する。ホストからエミュレータへの接続は、規格のケーブル技術を用いて確立できる。ホストとエミュレータとの間の分離は、使用するインタフェースに適用される標準規格によって支配される。
【００５３】
エミュレーション・コントローラ１２は、１７で示す１本または複数の目標ケーブルを通して目標システム１６と交信する。デバッグ、トレース、トリガー、およびＲＴＤＸ機能は目標ケーブルを共有し、或る場合には、同じデバイス・ピンを共有する。目標システムが１本のケーブルに収納しきれないトレース幅で展開するときには、２本以上の目標ケーブルが必要とされよう。すべてのトレース、ＲＴＤＸ、およびデバッグ通信はこのリンク上で発生する。
【００５４】
多くのＳＯＣデバイスでは、マイクロプロセッサ・コアおよび／またはＤＳＰコアのような複数のデータ処理コアをメモリおよびその他の周辺論理と一緒に埋め込まれている。本発明の実施の形態例は、目標チップ内に埋め込まれた複数データ処理コアに付随するデバッグ／エミュレーション関数への同時アクセスをシステム開発者に提供する。これは本発明に従って、例えば、各コアから目標チップのデバッグ・ポートの２本以上のピンへの選ばれたデバッグ／エミュレーション信号を多重化することによって実行される。この概念は例示的な図２に示されている。
【００５５】
図２は、図１に示すような目標デバイス中に埋め込まれた、与えられたデータ処理コアに付随する、選ばれたデバッグ信号のピン割り当て例を示す表である。ピンＥＭＵ１〜ＥＭＵ９にはエントリーが抜けているが、これは未使用のマルチプレクサ選択または他のコアからの信号に対応する。図２に示すように、例えば、トレース信号Ｔ４は６本のピンに多重化され、トレース信号Ｔ５は５本のピンに多重化され、そしてトレース信号Ｔ６は４本のピンに多重化される。従って、トレース信号Ｔ４、Ｔ５、およびＴ６はそれぞれ、次のようなデバッグ・ポートのピン組で有効である。ＥＭＵ５、ＥＭＵ４、およびＥＭＵ３；ＥＭＵ４、ＥＭＵ３、およびＥＭＵ２；ＥＭＵ３、ＥＭＵ２、およびＥＭＵ１；そしてＥＭＵ２、ＥＭＵ１、およびＥＭＵ０である。一例として、このシステム開発者が、或る時点、例えば、目標チップ中に埋め込まれた別のコアからそれらのピンへ多重化されたトレース信号活動によってデバック・ポート・ピンＥＭＵ５、ＥＭＵ４およびＥＭＵ３が既に占有されている時点でトレース信号Ｔ４、Ｔ５、およびＴ６へのアクセスを行うときには、信号Ｔ４、Ｔ５、およびＴ６はそのような場合であっても、デバッグ・ポートのピンＥＭＵ２、ＥＭＵ１、およびＥＭＵ０を介してそのシステム開発者に利用できるようになっている。例えばピンＥＭＵ３について考えると、このピンは目標チップの各種内部信号をピンＥＭＵ３へ多重化するためのピン・マルチプレクサをそれに付随して所有している。マルチプレクサ選択０はＥＭＵ３ピンを３状態（図２のｚ）化することを許容し、マルチプレクサ選択１は論理０がピンＥＭＵ３に駆動されることを許容し、マルチプレクサ選択２は信号Ｔ４がピンＥＭＵ３を駆動することを許容し、マルチプレクサ選択３は信号Ｔ５がピンＥＭＵ３を駆動することを許容し、以下同様となっている。図示された各ピンは、それに対して図示された信号を選択的に供給する同様なピン・マルチプレクサをそれに付随して有している。
【００５６】
図３は、図１の目標チップの実施の形態例の関連部分を示す回路図である。目標チップのデバッグ・ポートの例示的ピンが２本、図３に３０および３５として示されている。ピン３０および３５はそれぞれ、ピン・マルチプレクサ３１および３３によって駆動される。これらのピン・マルチプレクサ３１および３３は、それらの対応するピンに対して、コア１、コア２、およびコア３として示す目標チップ中に埋め込まれた３個のデータ処理コアから受信した信号を多重化する。コア２からの複数のデバッグ信号はピン３０および３５へ多重化され、更に、このデバッグ・ポートの他のピンに付随する他のピン・マルチプレクサへも供給される。コア１からの一対の信号もまたピン３０および３５へ多重化され、更にデバッグ・ポートの他のピンへも多重化される。コア３からのデバッグ信号はピン３０および３５へ多重化され、更にこのデバイスの少なくとも１本の他のピンへも多重化される。これも図３に示すように、ピン３０および３５へ多重化されないコア１、コア２、およびコア３からのデバッグ信号は、デバッグ・ポートの他のピンへ多重化される。
（１）埋め込まれた複数コアからの複数のデバッグ信号を１本のピンへ多重化すること、
（２）１個のコアからの複数の信号を１本のピンへ多重化すること、
（３）１個のコアからの１または複数の信号の各々を２本以上のピンへ多重化すること、
の組み合わせ例は、所望のデバッグ信号へアクセスするための柔軟性を有利に提供することができる。この柔軟性は、例えば、コア２からのトレース信号活動を、既にデバッグ・ポートの別のピン組へ供給されているであろうコア１のトレース活動を乱すことなしに、デバッグ・ポートのピン組へ供給できる可能性を増大させる。この信号供給の例が図４および図５に示されている。
【００５７】
図４の例では、コア１からのトレース信号は、コア２のトレース信号と同じデバッグ・ポートのピン組へ多重化されている。しかし、コア１のトレース信号はまた別の離れたデバッグ・ポートのピン組へも多重化されているので、コア１の望みのトレース活動は、２７で示すデバッグ・ポートのピン上でコア２のトレース活動が既に活性化している時点でも、２８で示すピンを介してアクセスすることができる。
【００５８】
図５は図３の構成によって提供される柔軟性を示す別の例である。図５に示すように、２本のコア１トレース信号は、コア２からの２本のトレース信号と同じようにデバッグ・ポートのピン３９および４０へ供給される。これに加えて、ピン３９および４０へ多重化されたコア１の同じトレース信号は、それぞれピン４１および４２へも多重化されており、他方、ピン３９および４０へ多重化されたコア２の同じトレース信号は、ピン４３および４４へも多重化される。更に、Ｘ１として示すコア３のトリガーは、ピン４１および４９へ多重化される。図５のピン割り当て構成に関する１つのシナリオ例では、コア２のトレース活動が既に４６として示すピン上で進行中であることを仮定する。この時点で、コア１のトレース活動は、コア２のトレース活動を中断することなしには４７で示すピンにおいてアクセスすることはできない。この理由は、４６で示すコア２トレース活動のピン３９および４０が、４７で示すコア１のトレース活動と重なるためである。しかし、ピン３９および４０へ多重化されたコア１のトレース信号はまた、それぞれピン４１および４２にも多重化されているので、所望のコア１のトレース活動を４５で示すピンを介してアクセスできる。このあとで、コア１のトレース活動が４５で示すピン上で進行中に、コア３のトリガーＸ１へのアクセスを所望する場合は、４５のピン上でのコア１のトレース活動を中断することなく、そのようなアクセスをピン４１で行うことはできない。しかし、コア３のトリガーＸ１はまたピン４９にも多重化されているので、このトリガーはピン４５のコア１のトレース活動を中断することなく、ピン４９においてアクセス可能である。
【００５９】
図１のエミュレータ１２中のソフトウエアは、各コアからの各種の信号をデバッグ・ポートの各種ピンへオンチップ・ルーティングおよび多重化するデータベース・モデルにアクセスできる。図５の例では、エミュレータ・ソフトウエアがピン４７でコア１のトレース活動にアクセスしようとする場合には、コア２のトレース活動が既にピン４６上で進行中であれば、ソフトウエアは信号供給データベースの検索を続行して、最終的にはピン３９および４０へ供給されているコア１のトレース信号がピン４１および４２にも供給されていることを発見するであろう。従って、エミュレータ・ソフトウエアは、図３のレジスタ５０中への適切な制御コードのローディングを行うことができて、それにより目標デバイスのピン・マルチプレクサを制御して、既にピン４６で進行中のコア２のトレース活動を妨害せずに、コア１のトレース活動を図５に４５で示すピンへ供給することができる。同様に、コア３のトリガーＸ１を加えたい場合には、エミュレータ・ソフトウエアは、コア１トレース活動のためにピン４１が既に使用されていることを発見し、その次にはデータベース検索の結果として、コア３のトリガーＸ１がピン４９上でも利用できることを発見するであろう。この時点で、エミュレータ・ソフトウエアは図３のレジスタ５０へ適切なデータをロードして、ピン４５で既に進行中のコア１トレース活動を妨害することなく、コア３トリガーＸ１を図５のピン４９へ供給する。
【００６０】
以上の説明から、本発明がデバッグ・ポートのピン割り当てにおいて、埋め込まれた複数データ処理コアから発する同時信号活動に対して、実時間で、別のコアの活動にアクセスするための与えられたコア活動アクセスを妨害することなしに、同時アクセスできるような有利な柔軟性を提供することが当業者には明らかであろう。
【００６１】
本発明の実施の形態例について以上のように詳細に説明してきたが、これは本発明の範囲を限定するものではない。本発明は多様な実施の形態として実現することができる。
（関連出願へのクロスリファレンス）
本出願は３５Ｕ．Ｓ．Ｃ．１１９（ｅ）（１）のもとで、下記の暫定的同時係属米国出願、すなわち２０００年３月２日付けの第６０／１８６，３２６（事件番号ＴＩ−３０５２６）および、元々非暫定米国出願第０９／５１５，０９３号として２０００年３月２日付けで出願され、その後２０００年８月１８日に申請が認可されて暫定出願形式に変更された第６０／２１９，３４０号（事件番号ＴＩ−３０４９８）の優先権を請求する。
【図面の簡単な説明】
【図１】本発明に従うエミュレーション・システムの実施の形態例。
【図２】図１の目標デバイス中に埋め込まれたデータ処理コアに付随する信号をデバッグするための、本発明に従うピン割り当て例を示す表。
【図３】図１の目標デバイスの関連部分を示す回路図。
【図４】図３の構成が目標デバイスの埋め込まれた複数コアに関連するデバッグ機能を同時にサポートする様子を示す例示方法。
【図５】図３の構成が目標デバイスの埋め込まれた複数コアに関連するデバッグ機能を同時にサポートする様子を示す例示方法。
【符号の説明】
１０  ホスト・コンピュータ
１２  エミュレーション・コントローラ
１４  ＤＳＰ
１６  目標システム
３１−４９  ピン
５０  レジスタ
【図１】
0004551019.tif 000004
【図２】
0004551019.tif 000005
【図３】
0004551019.tif 000006
【図４】
0004551019.tif 000007
【図５】
0004551019.tif 000008