JP2004178591A - ダイナミック・トレース用プログレッシブ拡張圧縮マスク - Google Patents

ダイナミック・トレース用プログレッシブ拡張圧縮マスク Download PDF

Info

Publication number
JP2004178591A
JP2004178591A JP2003392669A JP2003392669A JP2004178591A JP 2004178591 A JP2004178591 A JP 2004178591A JP 2003392669 A JP2003392669 A JP 2003392669A JP 2003392669 A JP2003392669 A JP 2003392669A JP 2004178591 A JP2004178591 A JP 2004178591A
Authority
JP
Japan
Prior art keywords
address
trace
comparison
register
section
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.)
Granted
Application number
JP2003392669A
Other languages
English (en)
Other versions
JP4648622B2 (ja
Inventor
Lewis Nardini
ルイス、ナルディーニ
Manisha Agarwala
アガルワラ マニーシャ
John M Johnsen
エム、ジョンセン ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2004178591A publication Critical patent/JP2004178591A/ja
Application granted granted Critical
Publication of JP4648622B2 publication Critical patent/JP4648622B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

【課題】アドレス比較により送信するデータ量を削減するトレース・アドレス圧縮方法および装置を提供する。
【解決手段】トレース・アドレス圧縮方法および装置は、現トレース・アドレス(501)のそれぞれの区間を、格納されている比較アドレス(516、526)と比較する。それぞれの区間に対する比較結果は、トレース・ストリーム・コントローラ(503)に供給される。トレース・ストリーム・コントローラは、比較アドレスと一致しない現トレース・アドレスの下位区間、または比較アドレスと一致しない現トレース・アドレスの区間よりも下位にある区間のみを送信する。これによって、送信するデータ量を削減する。比較アドレス(526)は、メモリ・マップ・レジスタ書き込み動作から得ることができる。比較アドレス(516)は、完全な不一致があった場合には、現トレース・アドレスで更新することができる。
【選択図】図5

Description

本発明は、特に高度集積ディジタル信号処理システムのためのエミュレーション・ハードウエアに関し、特にトレース・アドレスの比較方法およびトレース圧縮装置に関する。
高度なウエハ・リソグラフィおよび表面実装パッケージング技術は、電子的設計のシリコン・レベルおよびプリント回路基板レベル双方において、増々複雑な機能を統合しつつある。しかしながら、設計密度が高まり、相互接続ピッチが狭くなったことの結果、検査やエミュレーションのために回路に物理的にアクセスし難くなった。完成した製品を制御および観察しつつ検査およびデバッグすることができるようにするためには、設計中にも検査可能である(designed-in testability)必要がある。あらゆる製造上の欠陥は、製品を出荷する前の最終検査の間に検出できることが好ましい。この基本的な要望に応ずることは、論理設計フェーズにおいて検査を可能にし、自動検査機器が製品を検査できるように考慮しなければ、複雑な設計では達成が困難である。
機能性および製造上の欠陥についての検査に加えて、アプリケーション・ソフトウエアの開発では、システムまたはサブシステムの設計フェーズにおいても同様のレベルのシミュレーション、観察可能性および制御可能性が必要となる。設計のエミュレーション・フェーズは、最終機器またはアプリケーションがシステム・ソフトウエアとリンクされたときに、1つ以上のIC(集積回路)のシステムがこれらの中で正しく機能することを保証しなければならない。自動車産業、電気通信、防衛システム、生活支援システムにおいてICの使用が増大するに連れて、総合的な検査や広範なリアル・タイム・デバッグは、欠くことができない必要事項となっている。
機能的検査では、設計者が検査ベクトルを発生して仕様に一致することを確認するが、この検査方法は今でも広く用いられ続けている。超大型システムでは、この方法は、高いレベルでの障害検出に用いるには不適当であることがわかっている。完全な検査可能性、制御可能性および観察可能性を得るには、自動的に発生する検査パターンが望ましい。これらは、システム・レベルからトランジスタ・レベルまでの検査階層全体に及ぶ主要な目標である。
大規模な設計における別の問題は、検査のために長時間およびかなりの出費が設計にかかることである。再利用可能設計(design-for-reusability)の概念と調和する検査性回路、システムおよび方法を有することができれば望ましいであろう。このようにすれば、初期デバイスに実装される検査性、シミュレーションおよびエミュレーション回路、システムならびに方法を再利用することによって、その後のデバイスおよびシステムの検査性、シミュレーションおよびエミュレーションのための限界設計コストを低く抑えることができる。検査性、シミュレーションおよびエミュレーションに先取的な計画性がなければ、後に検査パターンの作成およびアップグレードを行う際に、設計時間の著しい延長を招くことになる。
再利用可能なモジュールを設計し、その検査パターンを完全に作成し評価するために多大な投資を行っても、後にモジュールを使用する際に、これを特定用途ロジック内に埋め込んでしまうことがある。こうなると、モジュールにアクセスするのは困難または不可能となる。したがって、この落とし穴を回避することが望ましい。
IC設計の進展に伴って、内部可視性および制御性の低下、障害対応可能範囲(fault coverage)の減少、状態を変化させる機能の減少、検査の展開および検証に関する問題の増大、設計シミュレーションの複雑化、CAD(コンピュータ支援設計)ツールの絶え間ないコスト上昇を招いている。基板の設計では、レジスタの可視性および制御性が低下し、設計検証におけるデバッグおよびシミュレーションが複雑化し、多くの回路を1つのパッケージに封入したために物理的なアクセスが不可能になったことによって従来のエミュレーションができなくなり、基板上の配線の複雑さが高まり、設計ツール、異種素子同士の封入(mixed-mode packaging)、および生産性のための設計コストが上昇するという副作用がある。アプリケーションの設計では、状態の可視性が低下し、高速エミュレーションが難しくなり、時間シミュレーションの調整(scaled time simulation)が必要となり、デバッグ処理の複雑さが高まり、エミュレータのコストが上昇するといった副作用があげられる。生産における副作用には、可視性および制御性の低下、検査ベクトルおよびモデルの複雑化、検査の複雑化、異種素子同士の封入増加、自動検査機器のコスト上昇し、許容度の厳格化等があげられる。
走査に基づくエミュレーションおよびマルチプロセッシング・デバッグを利用したエミュレーション技術が導入されたのは、10年以上も前のことである。1988年、設計サイクル時間に対する圧力、およびオンチップ・エミュレーションに新たに利用可能な空間が動機となって、従来の回路内エミュレーションから走査に基づくエミュレーションに推移した。設計サイクル時間に対する圧力は、3つの要因によって生じた。オンチップ・メモリの使用増大等による集積度の上昇によって、より多くの設計時間が必要となった。クロック・レートの上昇とは、エミュレーション支援ロジックのために電気的な進入が増大したことを意味する。封入処理の一層の精巧化のために、エミュレータの接続性の問題が生じた。今日、これらと同じ要因が、新たな展開を伴って、今日の複雑で、クロック・レートが一層高く、集積度が高い設計に必要なシステム・デバッグ機構を、走査に基づくエミュレータが達成できるための課題となっている。結果的に、システムは、小型化、高速化、および低コスト化する。これらの性能は向上し、フットプリントは増々高密度化している。これら実践的なシステムの傾向の各々が、システム・アクティビティ(system activity)の観察、即ち、迅速なシステム開発を可能にするための秘訣に悪影響を及ぼす。この影響を「可視性の消失(vanishing visibility)」と呼ぶ。
図1は、経時的な可視性および制御、ならびにシステムの高集積化の傾向を示す。アプリケーション開発者は、図1に示す最適可視性レベルを好む。この最適可視性レベルでは、関係するシステム・アクティビティ全ての可視性および制御が得られる。集積度の着実な進歩およびクロック・レートの上昇のために、時の経過と共に実際の可視性および制御の可用性が徐々に低下しつつある。これらの威力によって、可視性および制御のギャップ、最適な可視性および制御レベルと実際に使用可能なレベルとの間の差が生じる。時が経つに連れて、このギャップは広がっていく。アプリケーション開発メーカはギャップ生長レートを最小にすべく努力している。開発ツール・ソフトウエアおよび共に用いるハードウエア構成要素は、より少ないリソースで、しかも多種多様な方法で、より多くのことを行わなければならない。この使いやすさという課題に対する取り組みは、これらの影響力によって一層強化されている。
今日の高集積度システム・オン・チップ(SOC:System-On-a-Chip)技術では、可視性および制御のギャップは、時間の経過と共に劇的に拡大しつつある。ロジック・アナライザや組み込み若しくは区分(partitioned)プロトタイプ・システムのような従来からのデバッグ選択肢は、今日のシステムの集積レベルや、増々高まりつつあるクロック・レートに歩調を合わせることはできない。集積度の上昇に伴って、多数のサブシステム構成要素を接続するシステム・バスがチップ上に移動するため、従来のロジック・アナライザはこれらのバスにアクセスできなくなる。バスの可視性の制約または事実上の喪失により、ロジック・アナライザのようなツールを用いても、開発中のシステムを制御するために必要なシステムのアクティビティを視認したり、トリガ機構を設けることができなくなった。この可視性の喪失に伴って、制御が不能となる。何故なら、アクセスできないものを制御することは困難であるからである。
この傾向に対処するために、システム設計者はこれらのバスを表出させるように努めた。このため、システム構成要素は、表出したバスを用いて試作システムの構成が可能となるように組み立てられた。この手法も、システム・クロック・レートの絶え間ない上昇歩調によって阻害される。中央演算装置(CPU)のクロック・レートが上昇すると、チップ間のインターフェースの速度はそれについて行けなくなる。チップ間通信レートの遅れを補償するためにインターフェース待機状態が追加されることにより、区分システムの性能は、その集積されている相手と歩調を合わすことができないことを、開発者は突き止めた。ある時点では、この性能低下は許容できないレベルにまで達し、区分プロトタイプ・システムはもはや実用的なデバッグ選択肢ではなくなった。現在では、生産機器は、アプリケーションの開発のためのプラットフォームとして機能しなければならない。
また、CPUクロック・レートの上昇により、他の単純な可視性機構の可用性も制限される。CPUクロック・レートは最大I/O状態レートを上回ることができるので、ネーティブな形式で(native form)で情報をエクスポートする可視性ポートはもはやCPUについて行くことはできない。また、オンチップ・サブシステムも、CPUクロック・レートよりは遅いクロック・レートで動作する。この手法は、システムの設計を簡略化し、電力消費を削減するためには用いることができる。これらの開発は、単純な可視性ポートは、もはや、CPUアクティビティの正しい状態若しくは明確な表示(clear view)を送り出すためには、あてにできないことを意味する。可視性および制御性が低下するに連れて、アプリケーションを開発するために用いられる開発ツールの生産性が低下する。また、これらのツールは、可視性および制御性を維持するために必要なツールの複雑化のために、増々使用が困難になると思われる。システム・オン・チップによって生じた可視性、制御、および使いやすさの問題のために、製品開発サイクルが長引くことが多くなっている。
集積化の傾向が開発者には厳しいデバッグ環境を強いるとしても、これらは、問題をデバッグする新たな手法が出現するという希望も与える。高密度化やクロック・レートの上昇は、開発サイクル時間に対する重圧となるが、これらを解決する機会も生み出す。オンチップ・デバッグ機能は、これまで以上に手頃な価格となった。超大型メモリ構造が増々高速高性能チップ上で拡大するに連れて、CPUおよびメモリ・サブシステムに伴うランダム・ロジックに関係するシステム・コストは、システム・コスト全体の割合としては低下しつつある。数千個のゲートによるコスト上昇分は、これまでになく低くなっている。このサイズの回路は、場合によっては、今日のチップ設計の曲がり角に追いやられる場合もある。今日の高密度パッケージにおけるピン当たりのコスト上昇分も低下している。このため、より多くのピンをデバッグのために割り当てることが容易となった。手頃な価格のゲートおよびピンを共に用いることによって、システム・オン・チップによってもたらされた課題に取り組むために必要な、新たなオンチップ・エミュレーション機構(ファシリティ)の配備が可能となる。
また、生産機器がアプリケーション・デバッグ・プラットフォームとしても機能する場合、これらは市場の目標に合わせて時間を捻出するのに十分なデバッグ機能(ケイパビリティ)を備えていなければならない。デバッグの必要性は個々のアプリケーションで異なるので、オンチップ・デバッグ機構を調節し、市場およびコストの要望に対して時間のバランスが取れるようにすることが望ましい。これらオンチップ機能はチップの循環コストに影響を及ぼすので、いずれの解決策にとっても規模変更可能性若しくはスケーラビリティ(scalability)が最も重要である。「必要なものにだけ支払う」ことは、オンチップ・ツールの配備にとっても処理原則であるはずである。この新たな枠組みにおいて、システム構築者は、チップ・コストの制約や製品開発チームのデバッグについての要望のバランスを取りながら、オンチップ・デバッグ機構を、それ以外の機能性と共に指定することができる。
図2は、4つのエミュレータ構成要素を含むエミュレータ・システム100を示す。これら4つの構成要素は、デバッガ・アプリケーション・プログラム110、ホスト・コンピュータ120、エミュレーション・コントローラ130、およびオンチップ・デバッグ機構(ファシリティ)140である。図2は、これらの構成要素の接続を示す。ホスト・コンピュータ120は、ホスト120外部のエミュレーション・コントローラ130に接続されている。また、エミュレーション・コントローラ130はターゲット・システム140にも接続されている。ユーザは、デバッガ・アプリケーション・プログラム110を通じて、ターゲット・システム140上でターゲット・アプリケーションを制御することが好ましい。
ホスト・コンピュータ120は通常パーソナル・コンピュータである。ホスト・コンピュータ120は、エミュレータ・コントローラ130を通じてデバッグ機能にアクセスする。デバッガ・アプリケーション・プログラム110は、ホスト・コンピュータ120を通じて、ユーザに易しい形態でデバッグ機能を提供する。デバッグ・リソースは、必要に応じて、デバッグ・アプリケーション・プログラム110によって割り当てられ、このためのユーザの負担を軽減する。ソース・レベルのデバッグは、デバッグ・リソースを利用し、それらの複雑性をユーザには隠している。デバッガ・アプリケーション・プログラム110は、オンチップ・トレースおよびトリガ機構と共に、対象のチップ・アクティビティを選択し、記録し、表示する手段を設ける。トレース表示は、トレース・ログを生成したソース・コードと自動的に相関付けられる。エミュレータは、デバッグ制御およびトレース記録機能双方を備えている。
デバッグ機構は、JTAGまたは同様のシリアル・デバッグ・インターフェースを介した標準的なエミュレータ・デバッグ・アクセスを用いてプログラムすることが好ましい。ピンは貴重なので、本発明の好適な実施形態では、デバッグ・ピンの集合を、トレース、トリガ、およびその他のデバッグ機能で共有し、シリコン・コストにおける増加分を少なく済ませるようにした。固定したピン・フォーマットにも対応可能である。ピン共有選択肢を採用する(deploy)場合、デバッグ・ピンの利用は、各デバッグ・セッションの開始時に決定され、その後にターゲット・システム140にアプリケーション・プログラムを実行するように指令する。これによって、トレース・エクスポート帯域幅(trace export bandwidth)を最大化する。トレース帯域幅を最大化するには、最大数のピンをトレースに割り当てる。
システム内部のデバッグ機能および構築(ビルディング)ブロックは、可変とすることもできる。したがって、デバッガ・アプリケーション・プログラム100は、実行時(ランタイム)にコンフィギュレーションを確定する。この手法では、ハードウエア・ブロックが、コンフィギュレーションおよびレジスタ編成に関する一連の制約を満たす必要がある。他の構成要素は、システム・メモリ・マップにおいてブロックやその他のペリフェラル(peripheral)を突き止め位置づけるように設計されたハードウエア検索機能を設ける。デバッガ・アプリケーション・プログラム110は、検索機構を用いてリソースを突き止める。モジュールが位置するアドレスおよびタイプIDが、発見された各ブロックを一意に特定する。一旦IDが発見されたなら、設計データベースを用いれば、正確なコンフィギュレーションならびに全てのシステム入力および出力を確認することができる。
ホスト・コンピュータ120は、一般に、少なくとも64Mバイトのメモリを含み、Windows(登録商標)95、SR−2、Windows(登録商標) NT、またはそれ以降のバージョンのWindows(登録商標)を走らせることができる。ホスト・コンピュータ120は、エミュレータが必要とする通信インターフェースの1つに対応していなければならない。これらは、イーサネット(登録商標)10Tおよび100T、TCP/IPプロトコル、ユニバーサル・シリアル・バス(USB)、ファイアワイヤIEEE1394、ならびにSPP、EPPおよびECPのようなパラレル・ポートを含むことができる。
ホスト・コンピュータ120は、リアル・タイムのデータ交換帯域幅を決定するにあたって主要な役割を果たす。まず、ホスト−エミュレータ間通信は、最大維持リアル・タイム・データ交換帯域幅を規定する際に主要な役割を果たす。何故なら、エミュレータ・コントローラ130はその受信リアル・タイム・データ交換バッファが満杯になったら直ちにこれらを空にしなければならないからである。第2に、リアル・タイム・データの発信または受信を行うホスト・コンピュータ120は、受信したリアル・タイム・データ交換データの準備および送信または処理および格納を維持するための十分な処理能力またはディスク帯域幅を有していなければならない。技術的現状では、ファイアワイヤ(Fire wire)通信チャネル(IEEE1394)を備えたパーソナル・コンピュータが、最大のリアル・タイム・データ交換帯域幅を得るには好ましい。この帯域幅は、他の通信選択肢よりも性能を10倍高めることができる。
エミュレーション・コントローラ130は、ホスト・コンピュータ120とターゲット・システム140との間にブリッジを設ける。エミュレーション・コントローラ130は、ホスト・コンピュータ120上で実行するデバッガ・アプリケーション・プログラム110とターゲット・システム140上で実行するターゲット・アプリケーションとの間で受け渡されるあらゆるデバッグ情報を処理する。現時点において好適な最小のエミュレータ・コンフィギュレーションは、リアル・タイム・エミュレーション、リアル・タイム・データ交換、トレース、および高度分析といった機能の全てに対応する。
エミュレーション・コントローラ130は、好ましくは、実行制御、メモリ、レジスタ・アクセスのようなリアル・タイム・エミュレーション機能に、3、4、または5ビットの走査型インターフェース(scan based interface)を通じてアクセスする。リアル・タイム・データ交換機能は、走査によって、または走査以外の直接的なターゲット−エミュレータ間接続を用いる3つの上位帯域幅リアル・タイム・データ交換フォーマットを用いることによってアクセスすることができる。入力および出力トリガによって、他のシステム構成要素がチップにデバッグ・イベントを知らせることや、その逆が可能となる。ビットI/Oによって、エミュレータはシステム入力および出力を刺激すること、または監視することが可能となる。ビットI/Oは、工場検査およびその他の時間的に厳しくない(non-time-critical)低帯域幅のエミュレータ/ターゲット動作に対応するために用いることができる。拡張動作モードは、デバイス検査およびエミュレーション動作モードを指定するために用いられる。エミュレータ・コントローラ130は、通信部およびエミュレーション部に区分される。通信部は、ホスト通信リンクを支援し、一方エミュレーション部はターゲットにインターフェースして、ターゲット・デバッグ機能およびデバイス・デバッグ・ポートを管理する。エミュレーション・コントローラ130は、先にこの中で概説した業界標準の通信リンクの1つを用いて、ホスト・コンピュータ120と交信する。ホスト−エミュレータ間接続は、汎用の配線技術を用いて行われる。ホスト−エミュレータ間の分離は、用いるインターフェースに適用される規格によって管理される。
エミュレーション・コントローラ130は、1本または複数のターゲット・ケーブルを通じてターゲット・システム140と交信する。デバッグ、トレース、トリガ、およびリアル・タイム・データ交換機能は、ターゲット・ケーブルを共有し、場合によっては、同じデバイス・ピンを共有する。ターゲット・システム140が、1本のケーブルには収容しきれないトレース幅を配備する場合、1本よりも多いターゲット・ケーブルが必要となる場合もある。トレース、リアル・タイム・データ交換、およびデバッグ通信は全て、このリンクを通じて行われる。エミュレータ・コントローラ130は、少なくとも2フィート(約60cm)のターゲット−エミュレータ間分離を設けることが好ましい。このエミュレーション技術は、50MHZまでの検査クロック・レート、および200から300MHZまたはこれ以上のトレース・クロック・レートが可能である。エミュレータの設計がターゲット・システム140の制約を緩和する技法を用いても、これらのレートでエミュレータ・コントローラ130およびターゲット・システム140間で通知を行うには、設計に努力が必要である。このエミュレーション技術は、チップのデバッグ・ピンの配置、基板のレイアウトに制約を賦課する場合があり、正確なピンのタイミングを必要とする。タイミングの制約を満たすのを補助するために、オンチップ・ピン・マクロを設ける。
オンチップ・デバッグ機能は、開発者に、豊富な開発機能を2段階の拡張可能な手法で提供する。第1段階では、CPUのメガ・モジュールに組み込んだリアル・タイム・エミュレーション機能を利用した機能性を備える。このリアル・タイム・エミュレーション機能は、一定の機能性を有し、永続的にCPUの一部であるが、殆どの場合、コアの外側に、高性能リアル・タイム・データ交換、高度分析およびトレース機能が追加される。これらの機能を個々に選択し、チップに加入する。エミュレーション・ペリフェラルをシステム設計に加入することにより、第2段階の機能性を形成する。コスト効率的なエミュレーション・ペリフェラルのライブラリは、システムを作成するための構築ブロックを含み、高度分析、高性能リアル・タイム・データ交換、およびトレース機能の構造化を可能にする。好適な実施形態では、5つの標準デバッグ・コンフィギュレーションが提供されるが、カスタム・コンフィギュレーションにも対応する。具体的なコンフィギュレーションについては、この中で後に扱う。
本発明が解決する問題は、アドレス基準のトレースに関する。マイクロプロセッサおよびディジタル信号プロセッサが有するアーキテクチャは、通例では、高いクロック・レートで実行し、大量のトレース情報を生成する。かかるトレース情報を、分析精度に悪影響を及ぼすことなく、トレース取得およびエンコード・ハードウエアによって処理することは難しい。チップ境界における外部専用トレース・エクスポート・ピンに対する帯域幅の要求が大きいために、トレース・ハードウエアは、中央演算装置を減速(stall)させて、トレース情報全ての収集を確保せざるを得ない場合もある。このため、同じトレース・ハードウエアを用いた中央演算処理の性能分析(プロファイリング)が侵入性となり、したがって非常に精度が低下する。
これら基準アドレスの収集に対処するには、柔軟性のある圧縮方式が必要となる。本発明は、アプリケーションが用いる基底アドレスに漸進(プログレッシブ)圧縮方式を設けると共に、このアドレスからオフセットのみをエクスポートする方法を設ける。この方式は、基準アドレスの時間的および空間的所在(locality)を利用して、アドレスの範囲が共通基底(ベース)アドレスに該当する状況において、ピンを通じてエクスポートするデータ量を削減する。
トレース・ストリームは、ネーティブ・プログラム・カウンタまたはデータ基準アドレスを、同期マーカの一部として、あるいはレジスタ分岐または例外不連続をエンコードするときに収集する。個々のシステム・コンフィギュレーションは、異なる物理位置毎にコードをマップすることができるが、所与のシステム/アプリケーション・コンフィギュレーション内部におけるコードまたはデータの所在はかなり固定的であることが多い。
ダイナミック・トレース・ストリームの帯域幅は、ピンの割当によって制限され、レジスタ分岐、例外、同期マーカ(これらは全てネーティブ・プログラム・カウンタ・タグを用いる)の存在によって大きく制限される。データ記録(data logging)またはアドレス所在分析(address locality profiling)の一部としてデータ・アドレスを収集するダイナミック・トレース・ストリームは、システム性能に不利になるような侵入を犯すことなく、これらのアドレスを頻繁にエクスポートしなければならない。本発明は、以前のアドレスまたは中央演算装置が指定した比較アドレスとのバイト毎の比較により、エクスポートされるプログラム・カウンタまたはデータ基準アドレスのデータ圧縮を可能にする。異なるバイトのみをトレース・ストリームに含ませる。
本発明のこれらおよびその他の態様を図面に示す。
本発明は、ダイナミック・トレースのための漸増圧縮マーク(progressive extended compression mask)である。本発明は、レジスタ分岐のエンコード、データ・アドレス基準、例外、または同期マーカのエクスポートに対処する際の帯域幅要件を減少させる。32ビットのプログラム・カウンタまたはデータ・アドレスに対処するための、かかるマークの実施態様の一例では、最後の有効プログラム・カウンタ・アドレスを保持する24ビット・レジスタを含む。24ビット・マスクを用いて、トレース取得ハードウエア内部のパイプライン・フラットナ(pipeline flattener)の出力から出現する際のネーティブ・プログラム・カウンタまたはデータ・アドレスの上位範囲を比較する。マスクは、バイト毎に比較され、トレース・ストリームにエクスポートする必要がある基準アドレスの量を判断する。
図3は、ターゲット・システム140を用いたオンチップ・デバッグ・アーキテクチャの一例を示す。このアーキテクチャは、数個のモジュール・クラスを用いてデバッグ機能を構成する。これらのクラスの1つに、バス・イベント検出器210、補助イベント検出器211、およびカウンタ/ステートマシン213を含むイベント検出器がある。第2のクラスのモジュールは、トリガ・ビルダ(trigger builder)220を含むトリガ発生器である。第3のクラスのモジュールは、トレース収集230およびフォーマット化を含むデータ取得である。第4のクラスのモジュールは、トレース・エクスポート240、リアル・タイム・データ交換エクスポート241を含むデータ・エクスポートである。トレース・エクスポート240は、局部発振器245からのクロック信号によって制御される。局部発振器245については、後に詳しく説明する。最後のクラスのモジュールは、走査入力/出力をCPUコア201にインターフェースする走査アダプタ250である。最終的なデータのフォーマット化およびビンの選択は、ピン・マネージャおよびピン・マクロ260において行われる。
システム・オン・チップ(system-on-chip)の個々の実施形態のいずれに対しても、デバッグ機能のサイズおよびそれに付随する処理能力は、完全な機能を削除するか、または配備するイベント検出器およびトリガ・ビルダの数を制限することによって調節することができる。加えて、トレース機能は、プログラム・カウンタ・トレースのみからプログラム・カウンタおよびデータならびにASICおよびCPU発生データのトレースまで徐々に増大させることができる。また、リアル・タイム・データ交換機能を任意に配備することもできる。オンチップ・ツールをカスタム化できるので、アプリケーション開発の枠組みを変化させることができる。過去においては、所与のCPUコアを用いたチップ設計は全て、固定した1組のデバッグ機能に限定されていた。現在では、チップの設計毎に最適化したデバッグ機能が得られる。この枠組みの変化によって、システム・アーキテクトには、製品開発リスクを管理するために必要なツールが手頃なコストで与えられることになった。尚、同じCPUコアであっても、異なるピン出力を有する異なるペリフェラルと共に用いることによって、異なるシステム・オン・チップ製品を具体化できることを注記しておく。これらの異なる実施形態は、異なるデバッグおよびエミュレーション・リソースを必要とする場合もあり得る。本発明のモジュール性により、かかる実施形態の各々は、個々のシステム・オン・チップに応用するために必要なデバッグおよびエミュレーション・リソースのみを含むだけで済む。
リアル・タイム・エミュレーション・デバッグの基礎的な構成要素は、アプリケーションの開発に関係する基本的なデバッグおよび計測管理(instrumentation)に取り組むために用いられる。これは、あらゆる実行制御およびレジスタ可視性機能、ならびにブレークポイントやウオッチポイント機能のような最小のリアル・タイム・データ交換および分析機能を内蔵している。これらのデバッグ動作は、オンチップ・ハードウエア機構を用いて、アプリケーションの実行を制御し、レジスタやメモリへのアクセスを得る。リアル・タイム・エミュレーションが対応可能なデバッグ動作の一部は、ソフトウエア・ブレークポイントの設定、そのポイントにおける機械状態の観察、命令毎に正確な決定を観察するための1ステップ・コード前進、既知のメモリ位置への疑似書き込みの検出、およびメモリおよび周辺レジスタの視認および変更である。
リアル・タイム・エミュレーション機構は、CPUメガ・モジュール(CPU mega-module)内に組み込まれ、COUコア201のファブリック(fabric)に編入される(weave)。これによって、CPUコア201を用いた設計が、デバッガ・アプリケーション・プログラム110のベースライン・デバッグ、測定管理、およびデータ転送機能に対応するだけの十分なデバッグ機構を有することに確証を与える。各CPUコア201は、基礎的な1組のエミュレーション機能を組み込んでいる。これらの機能には、実行(run)、1命令ステップ、休止および自由実行(halt and free run)のような実行制御、レジスタやメモリの表示および修正、ソフトウエアおよび最小限のハードウエア・プログラム・ブレークポイントを含むブレークポイント、ならびに最小限のハードウエア・データ・ブレークポイントを含むウオッチポイントを含むが、これらに限定されるのではない。
本発明は、データおよびプログラム・カウンタ・アドレスのためのデータ圧縮に関する。好適な実施形態では、本発明は、トレース収集230に組み込まれる。本発明は、現アドレスを以前のアドレスと比較し、異なるアドレス・バイトだけを送信する。
図4は、このプロセスをフロー・チャートの形態で示す。プロセス400は、開始ブロック401にて開始する。まず、プロセス400は、プログラム・カウンタまたはデータ・アドレスのバイト3を24ビット・マスクと比較する(処理ブロック402)。これらのバイトが等しくない場合(判断ブロック403においてNo)、プロセス400はアドレスの4バイト全て(バイト3から0までの32ビット)をエクスポートする(処理ブロック404)。これらのバイトが等しい場合(判断ブロック403においてYes)、プロセス400はアドレスのバイト2をマスクと比較する(処理ブロック405)。これらのバイトが等しくない場合(判断ブロック406においてNo)、プロセス400はアドレスの下位3バイト(バイト2から0までの24ビット)をエクスポートする(処理ブロック407)。これらのバイトが等しい場合(判断ブロック406においてYes)、プロセス400はアドレスのバイト1をマスクと比較する(処理ブロック408)。これらのバイトが等しくない場合(判断ブロック409においてNo)、プロセス400はアドレスの下位2バイト全て(バイト1および0の16ビット)をエクスポートする(処理ブロック410)。これらのバイトが等しい場合(判断ブロック409においてYes)、プロセスはアドレスの最下位バイト(バイト0の8ビット)のみをエクスポートする(処理ブロック411)。
このマスクの漸進的性質は、アドレスが特定の位置範囲内で発生される場合に、各基準と共に送る必要があるバイト数を削減するために利用できる。初期の基準アドレスまたはプログラム・カウンタ値は、送られるときに、4バイト全てを含んでいた。後続のレジスタ分岐またはデータ基準が図4のいずれかのテキスト条件を満たす場合、この方式で送出するバイト数は常に最大バイト数よりも少なくなる。データ・アドレスまたはプログラム・カウンタ・アドレスのタイミングによる分析(profiling)を行う場合、データ・アドレスおよびプログラム・コードの局在性(locality)があると、この方式は帯域幅の保存に関して一層効率的となる。新たな基準アドレスを、バイト毎に、ストレージ・レジスタに収容されている、以前の有効な基準アドレスと比較する。
同様の技法は、プログラマブル拡大圧縮マスク(programmable extended compression mask)にも用いることができる。現データまたはプログラム・カウンタ・アドレスを以前のアドレスと比較する代わりに、中央演算装置が供給する所定のアドレスとの比較を行う。この比較アドレスは、メモリ・マップされたデータ・レジスタによって指定することが好ましい。このマスクのプログラマブルな性質のため、コードおよびデータの位置に関して既知の情報を用いて、これらのアドレスの圧縮に役立てることができる。この方式では、トレース収集セッションに先だって、その内部のコードのアプリケーションまたはセグメントの実行において、どのデータおよびコード位置が参照される可能性が高いかについてのインテリジェントな判定を可能にする。複数のメモリ・マップ比較レジスタを用いれば、データおよびコードについて一層多くの区間記述(section description)を処理することができる。これは、より広い範囲のデータ・アドレスおよびコードを処理することができる。比較レジスタが複数個ある場合、トレース・データ・パケットをエクスポートする際、比較によってヒットした比較レジスタに付随するインデックスを、オフセット・アドレスと共に供給する。
図5は、アドレスをダイナミック・トレース・ストリームの一部としてトレースするための、漸進およびプログラマブル圧縮方式の併合を示す。トレース・アドレスは、アドレス入力501を介して受け取られる。トレース・ストリーム制御回路503は、出力502を介して8ビット・エンコード・トレース・パケットを供給する。トレース・ストリーム制御回路503は、トレース・アドレスと、NORゲート504からのByte1-valid信号と、NORゲート505からのByte2_valid信号と、NORゲート505からのByte#_valid信号とを受け取る。NORゲート504〜506は、比較部510および520によって駆動される。
図5は、漸進(プログレッシブ)トレース比較部510を示す。入力501におけるトレース・アドレスのバイト1は、バイト1比較器511の一方の入力に供給される。入力501におけるトレース・アドレスのバイト2は、バイト2比較器512の一方の入力に供給される。入力501におけるトレース・アドレスのバイト3は、比較器513の一方の入力に供給される。比較器511、512および513は、対応するバイトを比較レジスタ516から受け取る。各比較器511、512および513は、入力501から受け取ったトレース・アドレスの対応するバイトの8ビットと比較レジスタ516に格納されている比較アドレスとを比較する。比較器511、512および513のそれぞれの比較出力は、NORゲート504、505および506の1つの入力に供給される。
初期状態では、比較アドレス・レジスタ516は空、即ち、全て0である。初期化時に、最初のトレース・アドレスが、マルチプレクサ515を介して、比較アドレス・レジスタ516に格納される。2番目のトレース・アドレスは、現在比較アドレス・レジスタ516に格納されている最初のトレース・アドレスと比較される。比較器513において一致が得られた場合、トレース・ストリーム制御503はバイト3を出力しない。比較器513および512において一致が得られた場合、トレース・ストリーム制御503は、バイト3および2を出力しない。比較器513、512および511において一致が得られた場合、トレース・ストリーム制御503はバイト0のみを出力する。表1は、トレース・ストリーム制御回路503の出力機能を示す。
Figure 2004178591
尚、「−」はドント・ケア・エントリである。例えば、比較器512または511は一致を検出したが、比較器513が検出しない場合、4バイト全てが出力される。
比較アドレス・レジスタ516に格納されているアドレスは、変更されるまで、マルチプレクサ515の「0」入力を通って再循環する。これが発生するのは、通例では、3つの比較器511、512および513全てが一致を検出できなかったときである。バイト比較が全て不一致である場合、恐らくトレース・アドレスが異なるアドレス領域に移動していると考えられる。比較アドレスをこの新たなアドレス領域にリセットし、リセットした比較アドレスを用いて今後の比較を行うのが最良である。valid_address信号が「1」になると、マルチプレクサ515はトレース・アドレス入力501上において受け取ったトレース・アドレスを選択する。比較レジスタ516は、マルチプレクサ515が選択したこのアドレスを格納する。varid_address信号は、通常では、1回のサイクルの間「1」になっている。その後、新たに格納したトレース・アドレスを用いて比較を行う。
図5は、漸進トレース比較部510と同様の、プログラマブル・トレース比較部520を示す。入力501におけるトレース・アドレスのバイト1は、バイト1比較器521の一方の入力に供給される。入力501におけるトレース・アドレスのバイト2は、バイト2比較器522の一方の入力に供給される。入力501におけるトレース・アドレスのバイト3は、比較器523の一方の入力に供給される。比較器521、522および523は、比較レジスタ526から、対応するバイトを受け取る。各比較器521、522および523は、入力501から受け取ったトレース・アドレスの対応するバイトの8ビットと、レジスタ526に格納されている比較アドレスとを比較する。比較器521、522および523のそれぞれの比較結果は、NORゲート504、505、506の1つの入力に供給される。
比較アドレス・レジスタ526に格納されている比較アドレスは、通常では、マルチプレクサ525の「0」入力を介して再循環する。中央演算装置は、メモリ・マップ・レジスタに書き込むことによって、この比較アドレスを変更することができる。比較アドレス・レジスタ526に対応するメモリ・マップ・レジスタへの書き込み時に、ライト・バス527上にアドレスが現れ、Reg_write信号は「1」となる。マルチプレクサ525は、ライト・バス527上のアドレスを選択し、比較アドレス・レジスタ526に格納する。Reg_write信号は、通常では、1回のサイクルのみ、即ち、書き込みを完了するための最短時間だけ「1」になっている。その後、中央演算装置が供給し、現時点では比較アドレス・レジスタ526に格納されているアドレスを用いて比較が行われる。
図5に示す比較ユニット510および520のように、比較ユニットが1つよりも多い場合、トレース・ストリーム制御回路503は、何らかの方法(図示せず)で、動作状態にある比較ユニットを識別する必要がある。トレース・ストリーム比較回路503は、比較ユニット識別マーカを出力トレース・ストリーム502内に置く。更に、受信ユニットは、圧縮トレース・ストリームを追跡する(follow)手段を有する。新たな比較アドレスは、アドレス全体を受信ユニットに送信した直後に、比較アドレス・レジスタ516に格納される。中央演算装置のプログラムの制御によって、受信ユニットは、比較アドレス・レジスタ526に格納されている、中央演算装置が指定したアドレスを先験的に知ることができる。どの比較ユニットを用いるかがわかっていると、トレース・アドレスの再組立が可能になる。
漸進比較ユニット510またはプログラマブル比較ユニット520が1つよりも多い場合、更に複雑となる。プログラマブル比較ユニット520が複数個あると、問題は最小となる。恐らく、ユーザは、中央演算装置が指定したトレース・アドレスの制御を行うか、あるいは少なくともその知識を有する。その知識を比較ユニット識別マーカと照合することは、実施可能である。
漸進比較ユニット510が複数個ある場合、一層問題になる。各比較アドレス・レジスタ516内に格納されているデータを追跡するために、何らかの技法が必要となる。これは、トレース・ストリーム制御回路503が、いつ比較アドレス・レジスタ516にロードされたか、およびそのレジスタの識別を、トレース・ストリーム内で明示的に指示することによって、行うことができる。あるいは、32ビット・トレース・アドレス全てが送信されたときにはいつでも、最も古い比較アドレス・レジスタが置換されることを想定することができる。複数の比較アドレス・レジスタの内容を追跡することによって、2つ以上のアドレス領域の比較が可能となり、トレース・ストリームの密度を高めることも可能となる。
本願では、対応するアドレス・バイトによって比較を行う技法について記載した。これは、単に便利な設計選択事項を表すに過ぎないことは当業者には認められよう。比較は、ニブル(4ビット)、ワード(16ビット)、または個々のビットを含むその他の便利なデータ長であればいずれででも行うことができる。選択する比較長は、比較されるアドレスの長さの整数分の1とし、アドレス全体を通じて等しい長さであることが好ましい。用いる比較長が短い程、制御プロセスを追加するという負担があるが、データ圧縮を行える可能性が高くなる。比較長が長い程、必要な制御プロセスは少なくて済むが、潜在的に可能なデータ圧縮は減少する。
以上の説明に関して更に以下の項を開示する。
(1)トレース・アドレスの比較方法であって、
比較アドレスを格納するステップと、
現トレース・アドレスのそれぞれの等しい長さの区間(セクション)を、格納した比較アドレスと比較するステップと、
前記格納した比較アドレスのそれぞれの区間と一致しない前記現トレース・アドレスの最下位区間、または前記格納した比較アドレスと一致しない前記現トレース・アドレスの区間よりも下位にある前記トレース・アドレスの下位区間のみを送信することによって、前記現トレース・アドレスの指示を送信するステップと、
から成る、トレース・アドレスの比較方法。
(2)前記比較するステップは、前記現トレース・アドレスの区間を、前記格納した比較アドレスの対応する区間と、最上位区間から最下位区間まで順次比較する、第1項記載のトレース・アドレスの比較方法。
(3) 更に、中央演算装置のメモリ・マップ・レジスタへの書き込み動作によって、前記比較アドレスを指定するステップを含む、第1項記載のトレース・アドレスの比較方法。
(4)更に、前記現トレース・アドレスに、前記格納した比較アドレスのそれぞれの区間と一致する区間がない場合、前記現トレース・アドレスを前記比較アドレスとして格納するステップを含む、第1項記載のトレース・アドレスの比較方法。
(5)前記区間は、前記格納した以前のトレース・アドレスおよび前記現トレース・アドレスの長さの整数分の1である、第1項記載のトレース・アドレスの比較方法。
(6)トレース圧縮装置であって、
現トレース・アドレスを受け取る入力と、
比較アドレスを格納する比較アドレス・レジスタと、
複数の区間比較器であって、各区間比較器が前記比較アドレス・レジスタに接続されて前記比較アドレスの1区間を受け取り、更に前記入力に接続されて前記現トレース・アドレスの対応する区間を受け取り、各々、前記対応する区間の一致または不一致を示す、複数の区間比較器と、
前記入力と前記区間比較器の各々とに接続されたトレース・ストリーム制御部であって、前記格納した比較アドレスのそれぞれの区間と一致しない前記現トレース・アドレスの最下位区間、または前記格納した比較アドレスと一致しない前記現トレース・アドレスの区間よりも下位にある、前記現トレース・アドレスの下位区間のみを送信する、トレース・ストリーム制御部と、
を備えているトレース圧縮装置。
(7)更に、
前記比較アドレス・レジスタの出力を受け取る第1入力と、メモリ・マップ書き込みデータを受け取る第2入力と、前記比較レジスタの入力に接続された出力と、制御入力とを有するマルチプレクサであって、前記制御入力における信号に応じて、前記第1入力または前記第2入力の一方を前記出力に結合する、マルチプレクサを備えており、
前記マルチプレクサの前記制御入力が、メモリ・マップ書き込み指示を受け取り、該マルチプレクサが前記第2入力を選択することによって、前記比較アドレス・レジスタに対応するアドレスへのメモリ・マップ・レジスタ書き込み時に、前記メモリ・マップ書き込みデータを前記比較レジスタに格納する、第6項記載のトレース圧縮装置。
(8)更に、
前記比較アドレス・レジスタの出力を受け取る第1入力と、前記現トレース・アドレスを受け取る第2入力と、前記比較アドレス・レジスタの入力に接続された出力と、制御入力とを有するマルチプレクサであって、前記制御入力における信号に応じて前記第1入力または前記第2入力の一方を前記出力に結合する、マルチプレクサを備えており、
前記トレース・ストリーム制御部が、前記マルチプレクサの前記制御入力に接続されており、前記現トレース・アドレスに前記比較アドレス・レジスタの対応する区間と一致する区間がない場合、前記トレース・ストリーム制御部が前記マルチプレクサの前記制御入力に信号を供給し、前記マルチプレクサに前記第2入力を選択させることによって、前記現トレース・アドレスを前記比較アドレス・レジスタに格納する、第6項記載のトレース圧縮装置。
(9)前記区間は、格納されている以前のアドレスおよび現トレース・アドレスの長さの整数分の1である、第6項記載のトレース・アドレス圧縮装置。
(10)前記以前のトレース・アドレスおよび前記現アドレスは、32ビットの長さを有し、
前記複数の区間比較器は、それぞれ、前記以前のトレース・アドレスおよび前記現トレース・アドレスのそれぞれ上位3バイトを比較する3つのバイト比較器から成り、
前記トレース・ストリーム制御部は、
最上位ビット比較器が一致を検出しない場合、前記現トレース・アドレスの4バイトを送信し、
最上位バイト比較器が一致を検出し、第2位バイト比較器が一致を検出しない場合、前記現トレース・アドレスの上位3バイトを送信し、
最上位バイト比較器および第2位バイト比較器が一致を検出し、第3位バイト比較器が一致を検出しない場合、前記現トレース・アドレスの上位2バイトを送信し、
最上位バイト比較器、第2位バイト比較器、および第3位バイト比較器が各々一致を検出した場合、前記現トレース・アドレスの最下位バイトを送信する、
ように動作する、第6項記載のトレース・アドレス圧縮装置。
(11)トレース・アドレス圧縮方法および装置は、現トレース・アドレス(501)のそれぞれの区間を、格納されている比較アドレス(516、526)と比較する。それぞれの区間(511、521;512、522;513、523)に対する比較結果は、トレース・ストリーム・コントローラ(503)に供給される。トレース・ストリーム・コントローラ(503)は、比較アドレスと一致しない現トレース・アドレスの下位区間、または比較アドレスと一致しない現トレース・アドレスのいずれの区間よりも下位にある下位区間のみを送信する。これによって、送信するデータ量を削減する。比較アドレス(526)は、メモリ・マップ・レジスタ書き込み動作から得られる。比較アドレス(516)は、完全な不一致があった場合には、現トレース・アドレス(501)で更新する(515)ことができる。
典型的な集積回路の可視性および制御を、システム集積度の増大による時間の関数として示す図。 本発明を適用可能なエミュレーション・システムを示す図。 構成変更可能なエミュレーション機能を用いた典型的な集積回路を示すブロック図。 本発明の漸増(プログレッシブ)圧縮マスクの比較動作を示すフロー・チャート。 漸進およびプログラマブル圧縮マスク双方を含む回路を示すブロック図。
符号の説明
100 エミュレータ・システム
110 デバッガ・アプリケーション・プログラム
120 ホスト・コンピュータ
130 エミュレーション・コントローラ
140 オンチップ・デバッグ機構
201 CPUコア
210 バス・イベント検出器
211 補助イベント検出器
213 カウンタ/ステートマシン
220 トリガ・ビルダ
230 トレース収集
240 トレース・エクスポート
241 リアル・タイム・データ交換エクスポート
245 局部発振器
250 走査アダプタ
260 ピン・マネージャおよびピン・マクロ
501 アドレス入力
502 出力
503 トレース・ストリーム制御回路
504、505、506 NORゲート
510 漸進トレース比較部
511 バイト1比較器
512 バイト2比較器
513 バイト3比較器
515 マルチプレクサ
516 比較アドレス・レジスタ
520 プログラマブル比較ユニット
521、522、523 比較器
525 マルチプレクサ
526 比較アドレス・レジスタ
527 ライト・バス

Claims (2)

  1. トレース・アドレスの比較方法であって、
    比較アドレスを格納するステップと、
    現トレース・アドレスのそれぞれの等しい長さの区間を、格納した比較アドレスと比較するステップと、
    前記格納した比較アドレスのそれぞれの区間と一致しない前記現トレース・アドレスの下位区間、または前記格納した比較アドレスと一致しない前記現トレース・アドレスの区間よりも下位にある前記トレース・アドレスの下位区間のみを送信することによって、前記現トレース・アドレスの指示を送信するステップと、
    から成ることを特徴とするトレース・アドレスの比較方法。
  2. トレース圧縮装置であって、
    現トレース・アドレスを受け取る入力と、
    比較アドレスを格納する比較アドレス・レジスタと、
    複数の区間比較器であって、各区間比較器が前記比較アドレス・レジスタに接続されて前記比較アドレスの1区間を受け取り、更に前記入力に接続されて前記現トレース・アドレスの対応する区間を受け取り、各々、前記対応する区間の一致または不一致を示す、区間比較器と、
    前記入力と前記区間比較器の各々とに接続されたトレース・ストリーム制御部であって、前記格納した比較アドレスのそれぞれの区間と一致しない前記現トレース・アドレスの下位区間、または前記格納した比較アドレスと一致しない前記現トレース・アドレスの区間よりも下位にある、前記現トレース・アドレスの下位区間のみを送信する、トレース・ストリーム制御部と、
    を備えていることを特徴とするトレース圧縮装置。
JP2003392669A 2002-11-22 2003-11-21 ダイナミック・トレース用プログレッシブ拡張圧縮マスク Expired - Lifetime JP4648622B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/302,189 US7162552B2 (en) 2002-11-22 2002-11-22 Programmable extended compression mask for dynamic trace
US10/301,969 US7171497B2 (en) 2002-11-22 2002-11-22 Progressive extended compression mask for dynamic trace

Publications (2)

Publication Number Publication Date
JP2004178591A true JP2004178591A (ja) 2004-06-24
JP4648622B2 JP4648622B2 (ja) 2011-03-09

Family

ID=32658823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003392669A Expired - Lifetime JP4648622B2 (ja) 2002-11-22 2003-11-21 ダイナミック・トレース用プログレッシブ拡張圧縮マスク

Country Status (3)

Country Link
US (6) US7162552B2 (ja)
EP (1) EP1443401B1 (ja)
JP (1) JP4648622B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010204934A (ja) * 2009-03-03 2010-09-16 Heartland Data Co ソースコードトレーサ
US7873875B2 (en) 2006-09-05 2011-01-18 Fujitsu Semiconductor Limited Debugging system, debugging circuit and information processing apparatus
CN102402476A (zh) * 2010-09-13 2012-04-04 Arm有限公司 数据处理装置、追踪单元和诊断装置

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985848B2 (en) * 2000-03-02 2006-01-10 Texas Instruments Incorporated Obtaining and exporting on-chip data processor trace and timing information
US7162552B2 (en) * 2002-11-22 2007-01-09 Texas Instruments Incorporated Programmable extended compression mask for dynamic trace
DE102004052417B4 (de) * 2004-10-28 2010-09-02 Infineon Technologies Ag Schaltung und Verfahren zur Weiterleitung von Datenpaketen in einem Netzwerk
US7590912B2 (en) * 2005-05-16 2009-09-15 Texas Instruments Incorporated Using a chip as a simulation engine
EP1922555B1 (en) 2005-08-09 2014-10-08 Texas Instruments Incorporated Selectable jtag or trace access with data store and output
US7698542B2 (en) * 2006-08-25 2010-04-13 Infineon Technologies Ag Circuit and method for comparing program counter values
WO2008145121A1 (en) 2007-05-31 2008-12-04 Vestas Wind Systems A/S Method of controlling a wind turbine in a wind power plant
JP2009042815A (ja) * 2007-08-06 2009-02-26 Renesas Technology Corp 半導体集積回路及びデバッグシステム
US8869109B2 (en) * 2008-03-17 2014-10-21 Microsoft Corporation Disassembling an executable binary
US8407528B2 (en) * 2009-06-30 2013-03-26 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems
US8943369B2 (en) 2011-02-21 2015-01-27 Texas Instruments Incorporated Prioritizing stall/reason data into priority information stream over PC/data trace
US9495169B2 (en) 2012-04-18 2016-11-15 Freescale Semiconductor, Inc. Predicate trace compression
US9542298B2 (en) * 2014-07-08 2017-01-10 International Business Machines Corporation Reducing resource overhead in verbose trace using recursive object pruning prior to string serialization
US9372947B1 (en) 2014-09-29 2016-06-21 Cadence Design Systems, Inc. Compacting trace data generated by emulation processors during emulation of a circuit design
US10506079B2 (en) * 2017-09-14 2019-12-10 Arm Limited Packet compression
CN109614332B (zh) * 2018-12-07 2021-11-02 中国航空工业集团公司洛阳电光设备研究所 一种硬件虚拟化分层建模方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322299A (ja) * 1999-05-10 2000-11-24 Hitachi Ltd データ記録方法
JP2001356935A (ja) * 2000-03-02 2001-12-26 Texas Instr Inc <Ti> オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力
JP2002149442A (ja) * 2000-11-10 2002-05-24 Hitachi Ltd データプロセッサ

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4087794A (en) * 1973-01-02 1978-05-02 International Business Machines Corporation Multi-level storage hierarchy emulation monitor
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
JPS5886648A (ja) * 1981-11-18 1983-05-24 Mitsubishi Electric Corp トレ−ス装置
US4511960A (en) * 1982-01-15 1985-04-16 Honeywell Information Systems Inc. Data processing system auto address development logic for multiword fetch
US4453093A (en) * 1982-04-02 1984-06-05 Honeywell Information Systems Inc. Multiple comparison circuitry for providing a software error trace signal
US5140687A (en) * 1985-10-22 1992-08-18 Texas Instruments Incorporated Data processing apparatus with self-emulation capability
US4935881A (en) * 1987-04-14 1990-06-19 Jeffrey Lowenson Method and apparatus for testing missile systems
US5848264A (en) * 1996-10-25 1998-12-08 S3 Incorporated Debug and video queue for multi-processor chip
JP3684831B2 (ja) * 1998-03-31 2005-08-17 セイコーエプソン株式会社 マイクロコンピュータ、電子機器及びデバッグシステム
US6457144B1 (en) * 1998-12-08 2002-09-24 International Business Machines Corporation System and method for collecting trace data in main storage
US6615370B1 (en) * 1999-10-01 2003-09-02 Hitachi, Ltd. Circuit for storing trace information
JP2001175500A (ja) * 1999-12-17 2001-06-29 Nec Ic Microcomput Syst Ltd インサーキットエミュレータのトレース方法、トレース手順を記録した記録媒体およびトレース回路
GB2362968B (en) * 1999-12-23 2003-12-10 St Microelectronics Sa Computer system with debug facility
US6985848B2 (en) * 2000-03-02 2006-01-10 Texas Instruments Incorporated Obtaining and exporting on-chip data processor trace and timing information
JP2002163127A (ja) * 2000-11-27 2002-06-07 Mitsubishi Electric Corp トレース制御回路
US7093236B2 (en) * 2001-02-01 2006-08-15 Arm Limited Tracing out-of-order data
US7162552B2 (en) * 2002-11-22 2007-01-09 Texas Instruments Incorporated Programmable extended compression mask for dynamic trace
US8099273B2 (en) * 2003-06-05 2012-01-17 Mentor Graphics Corporation Compression of emulation trace data
US7278063B2 (en) * 2003-07-10 2007-10-02 International Business Machines Corporation Method and system for performing a hardware trace
US20060294343A1 (en) * 2005-06-27 2006-12-28 Broadcom Corporation Realtime compression of microprocessor execution history

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322299A (ja) * 1999-05-10 2000-11-24 Hitachi Ltd データ記録方法
JP2001356935A (ja) * 2000-03-02 2001-12-26 Texas Instr Inc <Ti> オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力
JP2002149442A (ja) * 2000-11-10 2002-05-24 Hitachi Ltd データプロセッサ

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873875B2 (en) 2006-09-05 2011-01-18 Fujitsu Semiconductor Limited Debugging system, debugging circuit and information processing apparatus
JP2010204934A (ja) * 2009-03-03 2010-09-16 Heartland Data Co ソースコードトレーサ
CN102402476A (zh) * 2010-09-13 2012-04-04 Arm有限公司 数据处理装置、追踪单元和诊断装置
JP2012113691A (ja) * 2010-09-13 2012-06-14 Arm Ltd データ処理装置、トレースユニット、および診断装置
US8788887B2 (en) 2010-09-13 2014-07-22 Arm Limited Data processing apparatus, trace unit and diagnostic apparatus
CN102402476B (zh) * 2010-09-13 2016-02-10 Arm有限公司 数据处理装置、追踪单元和诊断装置

Also Published As

Publication number Publication date
US20070094645A1 (en) 2007-04-26
US20040103349A1 (en) 2004-05-27
US7171497B2 (en) 2007-01-30
US7562170B2 (en) 2009-07-14
US20040153836A1 (en) 2004-08-05
EP1443401A2 (en) 2004-08-04
US20070094546A1 (en) 2007-04-26
US20070094545A1 (en) 2007-04-26
US7475172B2 (en) 2009-01-06
EP1443401B1 (en) 2011-12-21
US7606696B2 (en) 2009-10-20
US7162552B2 (en) 2007-01-09
JP4648622B2 (ja) 2011-03-09
US7383367B2 (en) 2008-06-03
US20070094644A1 (en) 2007-04-26
EP1443401A3 (en) 2008-03-12

Similar Documents

Publication Publication Date Title
JP4648622B2 (ja) ダイナミック・トレース用プログレッシブ拡張圧縮マスク
US9563533B2 (en) Maintaining coherent synchronization between data streams on detection of overflow
US6859897B2 (en) Range based detection of memory access
US7457739B2 (en) Read FIFO scheduling for multiple streams while maintaining coherency
US7610518B2 (en) Program counter range comparator with equality, greater than, less than and non-equal detection modes
EP1130501B1 (en) Dynamically configurable debug port for concurrent support of debug functions from multiple data processing cores
US20040103336A1 (en) Apparatus for alignment of data collected from multiple pipe stages with heterogeneous retention policies in an unprotected pipeline
JP5519060B2 (ja) オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力
US20060200805A1 (en) Reporting a Saturated Counter Value
JP2004178590A (ja) データ一致認定および完全または部分的重複によって、多数のサイズのメモリ・アクセスを検出するアドレス範囲比較器
US20040103399A1 (en) Data trace compression map
US8374841B2 (en) Precise detection of triggers and trigger ordering for asynchronous events
US20040153895A1 (en) Imprecise detection of triggers and trigger ordering for asynchronous events

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100108

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100402

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100407

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100507

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100512

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: 20101207

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: 20101210

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4648622

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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