JP4551019B2 - 複数データ処理コアのデバッグ機能を同時サポートする動的に構成可能なデバッグ装置 - Google Patents
複数データ処理コアのデバッグ機能を同時サポートする動的に構成可能なデバッグ装置 Download PDFInfo
- Publication number
- JP4551019B2 JP4551019B2 JP2001109232A JP2001109232A JP4551019B2 JP 4551019 B2 JP4551019 B2 JP 4551019B2 JP 2001109232 A JP2001109232 A JP 2001109232A JP 2001109232 A JP2001109232 A JP 2001109232A JP 4551019 B2 JP4551019 B2 JP 4551019B2
- Authority
- JP
- Japan
- Prior art keywords
- debug
- trace
- core
- data processing
- pin
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
【発明の属する技術分野】
本発明は一般的に電子式データ処理に関するものであって、更に詳細には電子式データ処理を行なうデバイスおよびシステムのエミュレーション、シミュレーション、およびテスト機能に関する。
【0002】
【従来の技術】
ウエハ・リソグラフィおよび表面搭載パッケージング技術の進歩に伴って、電子的設計において益々多くの複雑な機能がシリコンおよびプリント基板の両方に集積されるようになってきた。設計の高密度化および相互接続ピッチの縮小の結果として、残念ながら物理的アクセスは減少する。設計時に組み込まれるテスト機能が必要とされるようになり、それによって、完成品はテストおよびデバッグ間にも制御および観察することが可能となる。製造時に生ずる欠陥は、製品出荷前の最終的なテストで検出できることが望ましい。設計が複雑なため、自動試験機器がその製品をテストできるように論理設計段階でのテスタビリティを考慮することなくしては、このような基本的な要請を実現することは困難である。
【0003】
性能および製造時欠陥のテストに加えて、アプリケーション・ソフトウエアの開発においても、そのシステムあるいはサブシステムの設計段階で同様なレベルのシミュレーション、透明性、および制御可能性が必要とされる。設計のエミュレーション段階では、IC(集積回路)あるいはIC群が、ソフトウエア・プログラムとリンクした時に、最終製品の機器またはアプリケーションの中で正しく機能することを確かめることが必要である。
【0004】
自動車産業、電気通信、防衛システム、および生命維持システムで益々多くのICが使用されるようになり、完璧なテストおよび拡張的な実時間デバッグが絶対的に必要とされるようになった。
【0005】
仕様に適合していることを保証するためのテスト・ベクタを設計者が生成する性能試験方式は、今でも広く採用されているが、非常に大規模のシステムに対してこの方法は広範囲の欠陥を検出できないことから不適切なことが分かっている。完全なテストができるためには自動的なテスト・パターンの生成が望ましく、テストの全階層(システム・レベルからトランジスタ・レベルまで)をカバーする制御可能性および透明性が重要な鍵である。
【0006】
大規模設計の別の問題点は、長時間と過大なコストを要することである。再利用を考慮した設計概念に適したテスト用の回路、システム、および方法が望ましい。このように、以下のデバイスおよびシステムは、初期デバイスに組み込まれたテスタビリティ、シミュレーション、およびエミュレーションの回路、システム、および方法を再利用することによって、低い設計コストでテスタビリティ、シミュレーション、およびエミュレーションを実現する。先行するテスタビリティ、シミュレーション、およびエミュレーションの方式がなければ、テスト・パターンの生成および更新のために大きな設計時間が費やされることになる。
【0007】
再利用すべきモジュールを設計し、それの完全なテスト・パターンを生成および更新するために膨大な投資を行ったとしても、そのモジュールを再び利用する場合にそれを特定用途論理回路に埋め込んで、それへのアクセスを困難または不可能なものとするかもしれない。従って、このような落とし穴は避けることが望ましい。
【0008】
IC設計の進歩には、例えば、内部透明性および制御の低下、欠陥網羅の縮小、および状態切換能力の低下、テスト開発および検証問題の増加、設計シミュレーションの複雑化、および連続的に増大するCAD(コンピュータ支援設計)ツールのコストが伴う。ボード設計での副産物には、レジスタ透明性および制御の低下、設計検証でのデバッグおよびシミュレーションの複雑化、1つのパッケージに多くの回路を実装することによって物理的アクセスが失われることによる従来エミュレーションのロス、基板上でのルーティングの複雑化、設計ツールのコスト増、混在モードでの実装、および生産容易な設計が含まれる。アプリケーション開発での副産物には、状態の透明性低下、高速エミュレーション困難、スケーリングされた時間シミュレーション、デバッグ複雑化、およびエミュレータのコスト増が含まれる。製品の副産物には、透明性および制御の低下、テスト・ベクタおよびモデルの複雑化、テストの複雑化、混在モードでの実装、7桁(100万ドルのオーダー)領域にまで連続的に増大する自動試験機器のコスト増、および厳しさを増す許容度が含まれる。
【0009】
スキャン方式のエミュレーションおよび複数処理デバッグを採用したエミュレーション技術は10年以上昔に導入された。1988年に、設計サイクル時間からの要求およびエミュレーションに利用できるオンチップ空間の制約が動機となって従来の回路エミュレーションからスキャン方式のエミュレーションへ変化が起こった。設計サイクル時間の要求は3つの因子によって発生した。すなわち、オンチップ・メモリなどのより高度な集積レベル;増大するクロック・レート−エミュレーションをサポートする論理によって引き起こされる電気的介入;およびより複雑なパッケージングによって生ずるエミュレータ接続性の問題である。
【0010】
今日、これらの同じ因子が新しい展開を伴って問題化しており、今日の複雑でより高いクロック・レートで高密度に集積された設計において必要とされるシステム・デバッグ機能を供給するスキャン方式のエミュレータ機能に対して課題となっている。その結果、システムはより小型で高速な低コストのものとなる。それらは益々高密度化する床面積で高い性能を示すものである。これらの建設的な各システム・トレンドは、逆に高速なシステム開発にとって重要な要因であるシステム活動の透明性に悪影響を及ぼす。この効果は“透明性消滅”と呼ばれる。
【0011】
アプリケーション開発者は、関連するすべてのシステム活動のうちで透明性および制御を優先する。集積レベルの着実な進歩とクロック・レートの増大は、利用できる透明性および制御を時間とともに着実に減少させている。これらの因子は透明性および制御のギャップ、すなわち望ましい透明性および制御と実際に利用できるレベルとの差を生ずる。時間とともにこのギャップは拡大している。アプリケーション開発ツールの提供業者はこのギャップの拡大率を最小に留めようとする。開発ツールのソフトウエアおよび関連するハードウエア・コンポネントは、より少ないもので、また異なるやり方でより多くのことを成し遂げなければならない。利用の利便さへの挑戦はこれらの力によって増幅される。
【0012】
【発明の解決しようとする課題】
今日の高密度集積されたシステム・オンチップ(SOC)技術は、透明性および制御のギャップを劇的に拡大した。ロジック・アナライザや区分化されたプロトタイプ・システムなどの伝統的なデバッグ・オプションは、今日のシステムの集積レベルや益々増大するクロック・レートに追随できない。
【0013】
集積レベルの増大とともに、数多くのサブシステム・コンポネントをつなぐシステム・バスがチップ上を移動し、伝統的なロジック・アナライザがこれらのバスへアクセスできなくなっている。バスの透明性が限定されるかほとんどない状況で、ロジック・アナライザなどのツールはシステム活動を観察したり、開発中のシステムを制御するために必要なトリガー機構を提供したりすることができない。アクセスできないものを制御するのが困難であるように、この透明性の消失には制御の消失が伴う。
【0014】
この傾向に挑むために、システム設計者はそれらのバスを露出させ、露出したバスでプロトタイプ・システムを構築できるようにシステム・コンポネントを構築しようとしている。この方式もまた、システム・クロック・レートの更なる増大傾向によって包囲されてしまった。CPUクロック・レートが増大するほどには、チップとチップとの間のインタフェース速度は増大できない。開発者は、区分化されたシステムの性能はチップとチップ間の通信速度の遅延を保証するために加えられるインタフェース待ち状態のために、集積化された場合よりも劣ることを見出した。この性能劣化は或る時点で許容できないレベルに達し、区分化プロトタイプ・システムはもはや実行可能なデバッグ・オプションではなくなった。我々は製品デバイスがアプリケーション開発のためのプラットフォームとして用いられるべき時代に突入している。
【0015】
増大するCPUクロック・レートはまた、他の簡便な透明性機構の終了を加速する。CPUクロック・レートは最大のI/O状態速度を超えることができるため、元々の形で情報を出力している透明性ポートはもはやCPUに追随できない。オンチップのサブシステムもCPUクロック・レートより遅いクロック・レートで動作する。この方式はシステム設計を簡略化し電力消費を減らすために用いられよう。これらの開発はCPU活動を明瞭に観察するために、簡便な透明性ポートはもはや、あてにできないことを意味する。
【0016】
透明性および制御が失われるとともに、アプリケーションを開発するために使用される開発ツールはより非生産的なものとなる。ツールはまた透明性および制御を維持するために要求されるツールの複雑化のせいで使い難いものとなっている。システム・オンチップによって発生した透明性、制御、および使い易さの問題は、製品開発サイクルを長期化する問題を孕んでいる。
【0017】
集積化の傾向が開発者に困難なデバッグ環境を提供するとは言っても、一方で、デバッグ問題に対する新たな方式が出現する期待もある。開発サイクル時間の問題をもたらす密度およびクロック・レートの増大はまた、その問題を解決する機会を生むことにもなった。
【0018】
オンチップのデバッグ機能は、従来に増して入手し易いものとなっている。高速、高性能のチップが益々大規模メモリ構造によって支配されるようになると、CPUおよびメモリ・サブシステムに付随するランダム・ロジックのシステム・コストは全システム・コストのパーセントで下降する。数千ゲートのコストはこれまでで最も低く、或る場合には今日のチップ設計の中では無視されよう。今日の高密度パッケージにおけるピン当りコストもまた下降しており、デバッグ用に多くのピンを割り当てることがより容易になっている。ゲートおよびピンの入手が容易になることで、システム・オンチップによって発生した課題に対処するために必要な新しいオンチップのエミュレーション機能の展開が可能となる。
【0019】
製品デバイスがアプリケーションをデバッグするためのプラットフォームとしても使用されるときには、それらは製品を市場に出す時間をサポートするのに十分なデバッグ能力を提供する必要がある。デバッグへの要求はアプリケーション毎に変化するので、市場化までの時間と必要なコストとの間でバランスを取るようにオンチップ・デバッグ機能を調節できることが非常に望ましい。
【0020】
これらのオンチップ機能はチップの循環コストに影響するので、どの方法でもスケーリングできることが最も重要である。オンチップ・ツールの展開における指導原理は“必要なものだけに金を使え”である。この新しいパラダイムで、システム設計者はオンチップ・デバッグ機能について、残りの機能と一緒に、チップ・コスト制約と製品開発チームのデバッグ要請とのバランスを取りながら仕様を定めよう。
【0021】
【課題を解決するための手段】
本発明のエミュレーション技術は、上に述べたデバッグの前向きの機会を利用して、開発者に対して制御および透明性のギャップを狭めることを狙ったデバッグ能力の蓄積を提供する。
【0022】
本エミュレーション技術は、今日の高度に集積された埋め込み式の実時間システムの複雑なデバッグ問題に対して解答を提供する。この技術は、前節で述べた透明性、制御および使い易さの喪失の問題に取り組み、同時に現状のエミュレータの特徴を拡張する。
【0023】
本発明のオンチップ・デバッグ・コンポネントは、コストおよびデバッグ能力を最適化するための手段を提供する。その構造はシステム・コストおよび市場化の時間という制約に合致するように調整されたエミュレーション・コンポネントまたは周辺機器の柔軟な組合せを許容する。スケーリング可能という特徴によって、それらを可能なコストおよび限られた性能オーバーヘッドで製品デバイスに含めることが可能となる。
【0024】
【発明の実施の形態】
ここで本発明のエミュレーション、デバッグ、およびシミュレーション・ツールについて説明する。ここに述べるエミュレーションおよびデバッグ解決手段は次のような前提に基づいている。すなわち、従来、オフチップで実行されているデバッグ機能のすべてでなくてもいくつかのものは、もしそれらが開発者のデバッグ倉庫に残すべきものであれば、いつの日にか製品デバイスに集積されるようになるであろうということである。デバッグ機能をチップ上へ移動する手助けのために、本発明はオンチップ展開のための強力でスケーリング可能なデバッグ機能の一覧表を提供する。この技術は、透明性消滅傾向によって生じた透明性、制御、および使い易さの問題に直接的に対処する能力を付加するとともに、初期のJTAG技術の利益すべてを継承している。
【0025】
最初に述べた制御および透明性のギャップへの取り組みへの先鋒となる4つの重要な構造的インフラストラクチャ・コンポネントは次のものである。
1.実時間エミュレーション(RTE)
2.実時間データ交換(RTDX)
3.トレース
4.高度解析
【0026】
これらのコンポネントは表1に示すように透明性および制御の要請に対処する。
【0027】
【表1】
【0028】
実時間エミュレーション(RTE)は、実時間実行制御(ラン、ステップ、ホールト等)およびレジスタ/メモリ透明性に関する基本的な固定機能セットを提供する。このコンポネントはユーザがアプリケーション・コードをデバッグすることを許容すると同時に、実時間の割込みもサポートする。レジスタおよびメモリは、割込み処理に影響せずに実時間でアクセスされよう。ユーザは実時間と非実時間の割込みを区別し、実時間でのメモリへのデバッグ・アクセスによって乱されるべきでないコードにマークを付ける。この基本エミュレーション機能には、2個のシングルポイント・ハードウエア・ブレークポイント、シングル・データ・ウォッチポイント、イベント・カウンタ、あるいはデータ・ログ機構として構成可能なハードウエアが含まれる。EMUピン機能には、マルチプロセッサ・イベント処理および一方向性(目標からホストへ)のデータ・ログ機構用のトリガーI/Oが含まれる。
【0029】
RTDX(商標)は、エミュレータ・ホストと目標アプリケーションとの間で実時間データ転送を提供する。このコンポネントは、エミュレータによって促進される双方向性および一方向性の両方のDSP目標/ホストデータ転送を提供する。DSP(または目標)アプリケーションはホストへ転送すべき目標データを収集するか、あるいはホストからデータを受信し、他方でエミュレーション・ハードウエア(DSPおよびエミュレータの内部にある)が実際の転送を管理する。いくつかのRTDX転送機構がサポートされており、その各々は異なるレベルの帯域幅およびピン利用を提供することによってゲートおよびピン利用性と帯域幅との間で要求のバランスを図っている。
【0030】
トレースは、アプリケーション活動の透明性を提供する非命令的機構である。トレースは、プログラム・フローおよびメモリ・アクセスのようなCPUに関連する活動、およびASIC状態機械、データの流れ、およびCPU収集データのようなシステム活動を監視するために使用される。歴史的なトレース技術はまた、製品デバイスよりも多くのピンを有するロジック・アナライザ的な収集および特殊エミュレーション(SE)デバイスを使用していた。ロジック・アナライザあるいは同様なデバイスは、状態機械的なプログラミング・インタフェース(フィルタ機構)を使用して元々の表現でデータを処理していた。このトレース・モデルは、記憶し、観察し、解析する必要のあるデータを選択する外部トリガーでエクスポートされるすべての活動に依存していた。
【0031】
しかし、既存のロジック・アナライザ的な技術は、より高レベルの集積化、増大するクロック・レート、およびより複雑化するパッケージングによる透明性低下に対する解答を提供しない。このモデルでは、製品デバイスは限られた数のピンを通して透明性を提供しなければならない。エクスポートされるデータは必要なエクスポート帯域幅を小さくするようにエンコードまたは圧縮される。記録機構は純粋な記録デバイスになり、エクスポートされたデータを深いトレース・メモリに詰め込む。記録されたデータをシステム活動の記録へ変換するためにトレース・ソフトウエアが使用される。
【0032】
高速シリアル・データ・エクスポートを備えたオンチップ・トレースは、高度解析と組み合わせてSOC設計に対する解答を提供する。トレースは、プログラム・フローおよびメモリ・アクセスのようなCPUに関連する活動、およびASIC状態機械、データの流れ等、およびCPU収集データのようなシステム活動を監視するために使用される。これは4つの異なる種別のトレース・データを生成する。
・DSPコアによって提供されるプログラム・フローおよびタイミング(PCトレース)
・DSPコアまたはチップ・レベルの周辺機器によって行なわれるメモリ・データ参照(データの読み書き)
・用途特定信号およびデータ(ASIC活動)
・CPU収集データ
【0033】
4種類のトレース・データに関する収集機構は、機能性と、望ましい帯域幅要求に合致するために必要なゲートおよびピンとのトレードオフを許容するモジュール構成になっている。
【0034】
RTDXおよびトレース関数は同様であるが異なる形の透明性を提供する。それらはデータ収集方法およびそれらの最も効率的な環境が異なる。理解を助けるために以下に簡単な説明を行なう。
【0035】
RTDX(実時間データ交換)は、CPUの支援を受けて情報交換を行なう方法である。ここで、交換すべきデータはプログラム・フローに対して正しく定義された振る舞いをする。例えば、RTDXはDSPアルゴリズムから入力および出力バッファを記録するために使用できる。RTDXはデータ収集にCPUの支援を要求し、従ってそれを実行するために明確だが少しのCPU帯域幅を必要とする。このように、RTDXは、少ない循環オーバーヘッド・コストで以って透明性を提供するアプリケーション介入機構である。
【0036】
トレースは非介入的なハードウエア支援収集機構(バス監視器のような)であり、非常に高い帯域幅(BW)のデータ・エクスポートを備えている。トレースは非常に高いデータ・レートでデータをエクスポートしなければならないとき、あるいはトレースすべき情報の振る舞いが分からないか、あるいは本質的にランダムであるか、アドレスに付随する場合に使用される。プログラム・フローは振る舞いを予め知ることができない場合の典型例である。この種の情報をエクスポートするために要する帯域幅は高い。指定されたアドレスのデータ・トレースは別の例である。データ・トレースをエクスポートするために要する帯域幅は非常に高い。
【0037】
トレース・データは一方向性で、目標からホストへ向かう。一方向性のRTDXもサポートされているが(データ・ログ)、RTDXはどちらの方向へもデータ交換を行なうことができる。トレース・データ経路もまた、非常に高速の一方向性RTDXを提供するために使用できる(CPU収集されたトレース・データ)。
【0038】
トレースおよびRTDXの高レベルな機能について概略を表2に示す。
【0039】
【表2】
【0040】
高度解析は、非介入的なオンチップ・イベント検出およびトリガー発生機構を提供する。高度解析によって生成されるトリガー出力は、トレースおよびRTDXなどの他のインフラストラクチャ・コンポネントを制御する。歴史的なトレース技術は、ロジック・アナライザへエクスポートされたバス活動を使用してロジック・アナライザ中でトレースを制御するトリガーを発生したり、あるいは実行を停止させるためのトリガーを発生させてデバイスへ供給したりした。通常、これには製品デバイスよりも多くのピンを有するチップが含まれていた(SEまたは特殊エミュレーション・デバイス)。この解析モデルはシステム・オンチップ(SOC)時代にはうまく動作しない。その理由は、今日のデバイスの集積レベルおよびクロック・レートが完全な透明性を有するバス・エクスポートを排除するためである。
【0041】
高度解析は入手可能なオンチップ命令およびデータバス比較器、シーケンサおよび状態機械、およびイベント・カウンタを提供して、オフチップで用いられた歴史的なトリガー機能の最も重要な部分を再現する。高度解析は、トレース、RTDX、および実時間エミュレーションに対してデバッグ・トリガー機構の制御部分を提供する。この構成コンポネントはイベントを識別し、イベント・シーケンスを追跡し、それらの発生に基づいてアクションを割り当てる(ブレイク実行、トレース・イネーブル/ディスエーブル、カウント、RTDXイネーブル/ディスエーブル等)。この機能に関するモジュール構築ブロックには、バス比較器、外部イベント発生器、状態機械あるいは状態シーケンサ、およびトリガー発生器が含まれる。高度解析システムのモジュール構成によって、機能性とゲートとのトレードオフが可能となる。
【0042】
エミュレータ機能は4つのエミュレータ・コンポネントの相互作用によって生まれる。
1.デバッガ・アプリケーション・プログラム
2.ホスト・コンピュータ
3.エミュレーション・コントローラ
4.オンチップ・デバッグ機能
【0043】
これらのコンポネントは図1に示すようにつながれる。ホスト・コンピュータ10はエミュレーション・コントローラ12(ホストに対して外部にある)へつながれ、エミュレーション・コントローラ(ここではエミュレータまたはコントローラとも呼ばれる)はまた目標システム16へつながれる。ユーザは、望ましくは、例えばテキサス・インスツルメンツ社のプログラム“Code Composer Studio”のような、ホスト・コンピュータ上で走っているデバッガ・アプリケーション・プログラムを介して、目標アプリケーションを制御する。
【0044】
典型的なデバッグ・システムが図1に示されている。このシステムはエミュレータ12を介してデバッグ機能へアクセスするために、ホスト・コンピュータ10(一般にはPC)を使用する。デバッガ・アプリケーション・プログラムは、ホスト・コンピュータを介して、使用者に使い易いかたちでデバッグ機能を提供する。デバッグ資源は必要に応じてデバッグ・ソフトによって割り振られ、この作業をユーザが行わなくてもよくなっている。ソース・レベルでのデバッグではデバッグ資源を利用するが、それの複雑な部分はユーザから見えないようになっている。デバッガは、オンチップのトレースおよびトリガー機能と一緒に、興味の対象であるチップ活動を選択、記録、および表示するための手段を提供する。
トレースのディスプレイは、そのトレース・ログを発生したソース・コードに対して自動的に関連づけられる。エミュレータはデバッグ制御とトレース記録機能の両方を提供する。
【0045】
デバッグ機能は、目標チップのJTAGまたは同様なシリアル・デバッグ・インタフェースを介する標準的なエミュレータ・デバッグ・アクセスを用いてプログラムされる。ピンは貴重なので、この技術ではトレース、トリガー、およびその他のデバッグ機能でデバッグ用ピンのプールを共有するようにしてシリコン・コストの上昇を少なくしている。固定ピン・フォーマットもサポートされている。ピンを共有するオプションを採用するときには、デバッグ・ピンの利用は各デバッグ・セッションの最初に(チップがアプリケーション・プログラムを走らせるように命令される前に)トレース・エクスポート帯域幅を最大化するように決められる。トレース帯域幅は、最大数のピンをトレースに割り当てることによって最大化される。
【0046】
システム内でのデバッグ能力および構築ブロックは変動しよう。従って、エミュレータ・ソフトウエアは実行時に構成を決める。この方式は、コンフィギュレーションおよびレジスタ組織化と取引する制約群に合致するハードウエア・ブロックを必要とする。他のコンポネン群は、ブロックおよび他の周辺機器をシステムのメモリ・マップ上で位置決めするように設計されたハードウエア検索能力を提供する。エミュレータ・ソフトウエアは資源を位置決めするために検索機能を使用する。モジュールの見つかったアドレスおよびタイプIDが、見出された各ブロックを一義的に同定する。一旦IDが見出されると、設計データベースを用いて正確なコンフィギュレーションおよびすべてのシステム入出力が確認される。
【0047】
ホスト・コンピュータは、一般に少なくとも64メガバイトのメモリを持ち、少なくともWindows95、SR−2、WindowsNT、あるいはWindowsの後継バージョンを走らせることのできるPCである。PCはエミュレータが要求する通信インタフェースの1つをサポートしなければならない。例えば、
・イーサネット10Tおよび100T、TCP/IPプロトコル
・ユニバーサル・シリアル・バス(USB)、rev1.x
・ファイヤワイヤ、IEEE1394
・パラレル・ポート(SPP、EPP、およびECP)
【0048】
エミュレーション・コントローラ12は、ホスト・コンピュータ10と目標システム16との橋渡しをし、ホスト・コンピュータ上で走るデバッガ・アプリケーションとDSP(あるいはその他の目標プロセッサ)14上で実行される目標アプリケーションとの間で渡されるすべてのデバッグ情報を取り扱う。
【0049】
エミュレータ構成例の1つは以下の能力すべてをサポートする。
・実時間エミュレーション
・RTDX
・トレース
・高度解析
【0050】
これに加えて、エミュレータから目標へのインタフェースは次をサポートする。
・入力および出力トリガー
・ビットI/O
・特殊な拡張動作モードの管理
【0051】
エミュレーション・コントローラ12は、3、4、または5ビットのスキャンをベースとするインタフェースを介して実時間エミュレーション機能(実行制御、メモリ、およびレジスタ・アクセス)にアクセスする。RTDX機能は、スキャンによって、あるいはスキャン以外の目標からエミュレータへの直接的な接続を使用するより高帯域幅の3つのRTDXフォーマットを使用することによってアクセスできる。入出力トリガーは、他のシステム・コンポネントがそのチップに対してあるいはその逆に、デバッグ・イベント時に信号供給することを許容する。
【0052】
エミュレータ12は、通信セクションとエミュレーション・セクションとに区分される。通信セクションはホスト通信リンク上でホスト10との通信をサポートし、他方エミュレーション・セクションは目標へのインタフェースとなって、目標デバッグ機能およびデバイス・デバッグ・ポートを管理する。エミュレータ12は、15で示す、例えば、上述の工業標準の通信リンクの1つを用いてホスト・コンピュータ10と交信する。ホストからエミュレータへの接続は、規格のケーブル技術を用いて確立できる。ホストとエミュレータとの間の分離は、使用するインタフェースに適用される標準規格によって支配される。
【0053】
エミュレーション・コントローラ12は、17で示す1本または複数の目標ケーブルを通して目標システム16と交信する。デバッグ、トレース、トリガー、およびRTDX機能は目標ケーブルを共有し、或る場合には、同じデバイス・ピンを共有する。目標システムが1本のケーブルに収納しきれないトレース幅で展開するときには、2本以上の目標ケーブルが必要とされよう。すべてのトレース、RTDX、およびデバッグ通信はこのリンク上で発生する。
【0054】
多くのSOCデバイスでは、マイクロプロセッサ・コアおよび/またはDSPコアのような複数のデータ処理コアをメモリおよびその他の周辺論理と一緒に埋め込まれている。本発明の実施の形態例は、目標チップ内に埋め込まれた複数データ処理コアに付随するデバッグ/エミュレーション関数への同時アクセスをシステム開発者に提供する。これは本発明に従って、例えば、各コアから目標チップのデバッグ・ポートの2本以上のピンへの選ばれたデバッグ/エミュレーション信号を多重化することによって実行される。この概念は例示的な図2に示されている。
【0055】
図2は、図1に示すような目標デバイス中に埋め込まれた、与えられたデータ処理コアに付随する、選ばれたデバッグ信号のピン割り当て例を示す表である。ピンEMU1〜EMU9にはエントリーが抜けているが、これは未使用のマルチプレクサ選択または他のコアからの信号に対応する。図2に示すように、例えば、トレース信号T4は6本のピンに多重化され、トレース信号T5は5本のピンに多重化され、そしてトレース信号T6は4本のピンに多重化される。従って、トレース信号T4、T5、およびT6はそれぞれ、次のようなデバッグ・ポートのピン組で有効である。EMU5、EMU4、およびEMU3;EMU4、EMU3、およびEMU2;EMU3、EMU2、およびEMU1;そしてEMU2、EMU1、およびEMU0である。一例として、このシステム開発者が、或る時点、例えば、目標チップ中に埋め込まれた別のコアからそれらのピンへ多重化されたトレース信号活動によってデバック・ポート・ピンEMU5、EMU4およびEMU3が既に占有されている時点でトレース信号T4、T5、およびT6へのアクセスを行うときには、信号T4、T5、およびT6はそのような場合であっても、デバッグ・ポートのピンEMU2、EMU1、およびEMU0を介してそのシステム開発者に利用できるようになっている。例えばピンEMU3について考えると、このピンは目標チップの各種内部信号をピンEMU3へ多重化するためのピン・マルチプレクサをそれに付随して所有している。マルチプレクサ選択0はEMU3ピンを3状態(図2のz)化することを許容し、マルチプレクサ選択1は論理0がピンEMU3に駆動されることを許容し、マルチプレクサ選択2は信号T4がピンEMU3を駆動することを許容し、マルチプレクサ選択3は信号T5がピンEMU3を駆動することを許容し、以下同様となっている。図示された各ピンは、それに対して図示された信号を選択的に供給する同様なピン・マルチプレクサをそれに付随して有している。
【0056】
図3は、図1の目標チップの実施の形態例の関連部分を示す回路図である。目標チップのデバッグ・ポートの例示的ピンが2本、図3に30および35として示されている。ピン30および35はそれぞれ、ピン・マルチプレクサ31および33によって駆動される。これらのピン・マルチプレクサ31および33は、それらの対応するピンに対して、コア1、コア2、およびコア3として示す目標チップ中に埋め込まれた3個のデータ処理コアから受信した信号を多重化する。コア2からの複数のデバッグ信号はピン30および35へ多重化され、更に、このデバッグ・ポートの他のピンに付随する他のピン・マルチプレクサへも供給される。コア1からの一対の信号もまたピン30および35へ多重化され、更にデバッグ・ポートの他のピンへも多重化される。コア3からのデバッグ信号はピン30および35へ多重化され、更にこのデバイスの少なくとも1本の他のピンへも多重化される。これも図3に示すように、ピン30および35へ多重化されないコア1、コア2、およびコア3からのデバッグ信号は、デバッグ・ポートの他のピンへ多重化される。
(1)埋め込まれた複数コアからの複数のデバッグ信号を1本のピンへ多重化すること、
(2)1個のコアからの複数の信号を1本のピンへ多重化すること、
(3)1個のコアからの1または複数の信号の各々を2本以上のピンへ多重化すること、
の組み合わせ例は、所望のデバッグ信号へアクセスするための柔軟性を有利に提供することができる。この柔軟性は、例えば、コア2からのトレース信号活動を、既にデバッグ・ポートの別のピン組へ供給されているであろうコア1のトレース活動を乱すことなしに、デバッグ・ポートのピン組へ供給できる可能性を増大させる。この信号供給の例が図4および図5に示されている。
【0057】
図4の例では、コア1からのトレース信号は、コア2のトレース信号と同じデバッグ・ポートのピン組へ多重化されている。しかし、コア1のトレース信号はまた別の離れたデバッグ・ポートのピン組へも多重化されているので、コア1の望みのトレース活動は、27で示すデバッグ・ポートのピン上でコア2のトレース活動が既に活性化している時点でも、28で示すピンを介してアクセスすることができる。
【0058】
図5は図3の構成によって提供される柔軟性を示す別の例である。図5に示すように、2本のコア1トレース信号は、コア2からの2本のトレース信号と同じようにデバッグ・ポートのピン39および40へ供給される。これに加えて、ピン39および40へ多重化されたコア1の同じトレース信号は、それぞれピン41および42へも多重化されており、他方、ピン39および40へ多重化されたコア2の同じトレース信号は、ピン43および44へも多重化される。更に、X1として示すコア3のトリガーは、ピン41および49へ多重化される。図5のピン割り当て構成に関する1つのシナリオ例では、コア2のトレース活動が既に46として示すピン上で進行中であることを仮定する。この時点で、コア1のトレース活動は、コア2のトレース活動を中断することなしには47で示すピンにおいてアクセスすることはできない。この理由は、46で示すコア2トレース活動のピン39および40が、47で示すコア1のトレース活動と重なるためである。しかし、ピン39および40へ多重化されたコア1のトレース信号はまた、それぞれピン41および42にも多重化されているので、所望のコア1のトレース活動を45で示すピンを介してアクセスできる。このあとで、コア1のトレース活動が45で示すピン上で進行中に、コア3のトリガーX1へのアクセスを所望する場合は、45のピン上でのコア1のトレース活動を中断することなく、そのようなアクセスをピン41で行うことはできない。しかし、コア3のトリガーX1はまたピン49にも多重化されているので、このトリガーはピン45のコア1のトレース活動を中断することなく、ピン49においてアクセス可能である。
【0059】
図1のエミュレータ12中のソフトウエアは、各コアからの各種の信号をデバッグ・ポートの各種ピンへオンチップ・ルーティングおよび多重化するデータベース・モデルにアクセスできる。図5の例では、エミュレータ・ソフトウエアがピン47でコア1のトレース活動にアクセスしようとする場合には、コア2のトレース活動が既にピン46上で進行中であれば、ソフトウエアは信号供給データベースの検索を続行して、最終的にはピン39および40へ供給されているコア1のトレース信号がピン41および42にも供給されていることを発見するであろう。従って、エミュレータ・ソフトウエアは、図3のレジスタ50中への適切な制御コードのローディングを行うことができて、それにより目標デバイスのピン・マルチプレクサを制御して、既にピン46で進行中のコア2のトレース活動を妨害せずに、コア1のトレース活動を図5に45で示すピンへ供給することができる。同様に、コア3のトリガーX1を加えたい場合には、エミュレータ・ソフトウエアは、コア1トレース活動のためにピン41が既に使用されていることを発見し、その次にはデータベース検索の結果として、コア3のトリガーX1がピン49上でも利用できることを発見するであろう。この時点で、エミュレータ・ソフトウエアは図3のレジスタ50へ適切なデータをロードして、ピン45で既に進行中のコア1トレース活動を妨害することなく、コア3トリガーX1を図5のピン49へ供給する。
【0060】
以上の説明から、本発明がデバッグ・ポートのピン割り当てにおいて、埋め込まれた複数データ処理コアから発する同時信号活動に対して、実時間で、別のコアの活動にアクセスするための与えられたコア活動アクセスを妨害することなしに、同時アクセスできるような有利な柔軟性を提供することが当業者には明らかであろう。
【0061】
本発明の実施の形態例について以上のように詳細に説明してきたが、これは本発明の範囲を限定するものではない。本発明は多様な実施の形態として実現することができる。
(関連出願へのクロスリファレンス)
本出願は35U.S.C.119(e)(1)のもとで、下記の暫定的同時係属米国出願、すなわち2000年3月2日付けの第60/186,326(事件番号TI−30526)および、元々非暫定米国出願第09/515,093号として2000年3月2日付けで出願され、その後2000年8月18日に申請が認可されて暫定出願形式に変更された第60/219,340号(事件番号TI−30498)の優先権を請求する。
【図面の簡単な説明】
【図1】本発明に従うエミュレーション・システムの実施の形態例。
【図2】図1の目標デバイス中に埋め込まれたデータ処理コアに付随する信号をデバッグするための、本発明に従うピン割り当て例を示す表。
【図3】図1の目標デバイスの関連部分を示す回路図。
【図4】図3の構成が目標デバイスの埋め込まれた複数コアに関連するデバッグ機能を同時にサポートする様子を示す例示方法。
【図5】図3の構成が目標デバイスの埋め込まれた複数コアに関連するデバッグ機能を同時にサポートする様子を示す例示方法。
【符号の説明】
10 ホスト・コンピュータ
12 エミュレーション・コントローラ
14 DSP
16 目標システム
31−49 ピン
50 レジスタ
Claims (1)
- データ処理集積回路であって、
データ処理演算を実行するための複数の埋め込まれたデータ処理コアであって、各埋め込まれたデータ処理コアが、その上にデバッグ信号を有する、少なくとも1つのデバッグ出力信号経路を有する、前記複数の埋め込まれたデータ処理コアと、
複数のデバッグ出力ピンと、
複数のマルチプレクサであって、各マルチプレクサが、対応するデバッグ出力信号経路に接続された複数の入力と、制御入力と、出力とを有し、各マルチプレクサが、前記制御入力に応じて前記複数の入力の1つを前記出力に選択的に結合する、前記複数のマルチプレクサと、
前記データ処理集積回路の外部からロード可能であり、前記複数のマルチプレクサの前記制御入力に接続されたレジスタであって、前記複数のマルチプレクサの前記選択的な結合を制御するデータを格納する、前記レジスタと、
複数の3状態バッファであって、各3状態バッファが、前記複数のマルチプレクサの対応する1つの前記出力に接続された入力と、前記複数のデバッグ出力ピンの対応する1つに接続された出力と、前記レジスタに接続された制御入力とを有する、前記複数の3状態バッファと、
を含み、
前記レジスタが、更に、前記複数の3状態バッファの各々が3状態高Z出力を生成するかどうかを制御するデータを格納する、
前記データ処理集積回路。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US21934000P | 2000-03-02 | 2000-03-02 | |
US51509300A | 2000-03-02 | 2000-03-02 | |
US515093 | 2000-03-02 | ||
US219340 | 2000-03-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002049503A JP2002049503A (ja) | 2002-02-15 |
JP4551019B2 true JP4551019B2 (ja) | 2010-09-22 |
Family
ID=26913794
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001109233A Expired - Lifetime JP5328000B2 (ja) | 2000-03-02 | 2001-03-02 | オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力 |
JP2001109232A Expired - Lifetime JP4551019B2 (ja) | 2000-03-02 | 2001-03-02 | 複数データ処理コアのデバッグ機能を同時サポートする動的に構成可能なデバッグ装置 |
JP2001109235A Abandoned JP2002014837A (ja) | 2000-03-02 | 2001-03-02 | 信号オーバーレイを許容する時分割多重化機能を備えたスキャン・インタフェース |
JP2001109234A Abandoned JP2001356930A (ja) | 2000-03-02 | 2001-03-02 | エミュレータ・目標デバイス間接続の自動検出方法および装置 |
JP2013115235A Expired - Lifetime JP5519060B2 (ja) | 2000-03-02 | 2013-05-31 | オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001109233A Expired - Lifetime JP5328000B2 (ja) | 2000-03-02 | 2001-03-02 | オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001109235A Abandoned JP2002014837A (ja) | 2000-03-02 | 2001-03-02 | 信号オーバーレイを許容する時分割多重化機能を備えたスキャン・インタフェース |
JP2001109234A Abandoned JP2001356930A (ja) | 2000-03-02 | 2001-03-02 | エミュレータ・目標デバイス間接続の自動検出方法および装置 |
JP2013115235A Expired - Lifetime JP5519060B2 (ja) | 2000-03-02 | 2013-05-31 | オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力 |
Country Status (1)
Country | Link |
---|---|
JP (5) | JP5328000B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7421633B2 (en) * | 2005-03-21 | 2008-09-02 | Texas Instruments Incorporated | Controller receiving combined TMS/TDI and suppyling separate TMS and TDI |
US7171497B2 (en) * | 2002-11-22 | 2007-01-30 | Texas Instruments Incorporated | Progressive extended compression mask for dynamic trace |
JP4813389B2 (ja) * | 2007-02-02 | 2011-11-09 | アンリツ株式会社 | 擬似基地局装置 |
JP2009009325A (ja) * | 2007-06-27 | 2009-01-15 | Tokushu Denshi Kairo Kk | Icエミュレーション装置およびicエミュレーション方法 |
US20100090718A1 (en) * | 2007-09-03 | 2010-04-15 | Atsushi Ubukata | Semiconductor device, and development supporting device |
CN117827563A (zh) * | 2023-12-29 | 2024-04-05 | 深圳博瑞晶芯科技有限公司 | 处理器功能验证方法、装置及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003519358A (ja) * | 1998-06-16 | 2003-06-17 | インフィネオン テクノロジース アクチエンゲゼルシャフト | 集積回路コンポーネントにおける電気信号の測定および分析装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05120071A (ja) * | 1991-10-25 | 1993-05-18 | Hitachi Ltd | データ処理装置 |
JP3175757B2 (ja) * | 1996-08-13 | 2001-06-11 | 日本電気株式会社 | デバッグシステム |
JPH10275092A (ja) * | 1997-03-31 | 1998-10-13 | Hewlett Packard Japan Ltd | マイクロプロセッサのトレース情報出力方法 |
US6321331B1 (en) * | 1998-04-22 | 2001-11-20 | Transwitch Corporation | Real time debugger interface for embedded systems |
-
2001
- 2001-03-02 JP JP2001109233A patent/JP5328000B2/ja not_active Expired - Lifetime
- 2001-03-02 JP JP2001109232A patent/JP4551019B2/ja not_active Expired - Lifetime
- 2001-03-02 JP JP2001109235A patent/JP2002014837A/ja not_active Abandoned
- 2001-03-02 JP JP2001109234A patent/JP2001356930A/ja not_active Abandoned
-
2013
- 2013-05-31 JP JP2013115235A patent/JP5519060B2/ja not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003519358A (ja) * | 1998-06-16 | 2003-06-17 | インフィネオン テクノロジース アクチエンゲゼルシャフト | 集積回路コンポーネントにおける電気信号の測定および分析装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2002014837A (ja) | 2002-01-18 |
JP2001356935A (ja) | 2001-12-26 |
JP5328000B2 (ja) | 2013-10-30 |
JP5519060B2 (ja) | 2014-06-11 |
JP2001356930A (ja) | 2001-12-26 |
JP2013211046A (ja) | 2013-10-10 |
JP2002049503A (ja) | 2002-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6738929B2 (en) | Dynamically configurable debug port for concurrent support of debug functions from multiple data processing cores | |
US9563533B2 (en) | Maintaining coherent synchronization between data streams on detection of overflow | |
US7100151B2 (en) | Recovery from corruption using event offset format in data trace | |
US7457739B2 (en) | Read FIFO scheduling for multiple streams while maintaining coherency | |
US20070011662A1 (en) | Tracing Program Counter Addresses Using Native Program Counter Format and Instruction Count Format | |
EP1130501B1 (en) | Dynamically configurable debug port for concurrent support of debug functions from multiple data processing cores | |
JP5519060B2 (ja) | オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力 | |
US7884641B2 (en) | Setting operating mode of an interface using multiple protocols | |
US7117398B2 (en) | Program counter range comparator with equality, greater than, less than and non-equal detection modes | |
US20040102953A1 (en) | Trigger ordering for trace streams when multiple triggers accumulate | |
US8374841B2 (en) | Precise detection of triggers and trigger ordering for asynchronous events | |
US7924050B2 (en) | Key based pin sharing selection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20010327 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080228 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100129 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100427 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100506 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100531 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100603 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100607 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100702 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100709 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4551019 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130716 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |