JP2017152014A - マルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステム - Google Patents

マルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステム Download PDF

Info

Publication number
JP2017152014A
JP2017152014A JP2017076029A JP2017076029A JP2017152014A JP 2017152014 A JP2017152014 A JP 2017152014A JP 2017076029 A JP2017076029 A JP 2017076029A JP 2017076029 A JP2017076029 A JP 2017076029A JP 2017152014 A JP2017152014 A JP 2017152014A
Authority
JP
Japan
Prior art keywords
thread
threads
predetermined event
common predetermined
execution tracing
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
JP2017076029A
Other languages
English (en)
Other versions
JP6423037B2 (ja
JP2017152014A5 (ja
Inventor
ルイス・アチレ・ジアンニニ
Achiele Giannini Louis
ウィリアム・シー.・アンダーソン
c anderson William
スーフェン・チェン
Xufeng Chen
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2017152014A publication Critical patent/JP2017152014A/ja
Publication of JP2017152014A5 publication Critical patent/JP2017152014A5/ja
Application granted granted Critical
Publication of JP6423037B2 publication Critical patent/JP6423037B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3636Debugging of software by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】マルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステムを提供する。
【解決手段】DSP40のアーキテクチャにおいて、実行トレース処理により、インタースレッドトレースアライメントは、共通所定イベントに関するタイミングデータを記録する。スレッドが実行トレーシングを開始するサイクル数は、実行トレーシングのタイミングを維持するための共通所定イベントに参照される。その後、共通所定イベントに関するデータは、スレッドが実行トレーシングを開始した時に関連づけるために更新される。その結果は、すべてのスレッドに関連したタイミングデータを整列させることを可能にする。相互関係のある記録は、すべての動作するスレッドに関するタイミングデータを同期させると同様に、マルチスレッドプロセッサにおいて動作するスレッドに関する相互依存の実行トレーシング情報を再構成する。
【選択図】図2

Description

開示された主題は、データ通信および同じようなアプリケーションでの使用を見つけてもよいような、データ処理システムとプロセスに関する。より詳しくは、この開示は、マルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステムを提供することを含むデジタル信号処理デバッギング動作のための新しく改善された方法およびシステムに関する。
本出願は次の同時係属の米国特許出願番号と関係する。NON-INTRUSIVE, THREAD-SELECTIVE, DEBUGGING METHOD AND SYSTEM FOR A MULTI-THREAD DIGITAL SIGNAL PROCESSORと題され、2006年11月15日に出願された出願番号11/560,217と、METHOD AND SYSTEM FOR A DIGITAL SIGNAL PROCESSOR DEBUGGING DURING POWER TRANSITIONSと題され、2006年11月15日に出願された出願番号11/560,323と、METHOD AND SYSTEM FOR TRUSTED/UNTRUSTED DIGITAL SIGNAL PROCESSOR DEBUGGING OPERATIONSと題され、2006年11月15日に出願された出願番号11/560,332と、EMBEDDED TRACE MACROCELL FOR ENHANCED DIGITAL SIGNAL PROCESSOR DEBUGGING OPERATIONSと題され、2006年11月15日に出願された出願番号11/560,339と、METHOD AND SYSTEM FOR INSTRUCTION STUFFING OPERATIONS DURING NON-INTRUSIVE DIGITAL SIGNAL PROCESSOR DEBUGGINGと題され、2006年11月15日に出願された出願番号11/560,344。
テレコミュニケーション、他の型の電子機器およびサポートビデオ、合成音声、テレビ会議、および他の豊富なソフトウェアアプリケーションは、ますます信号処理を含んでいる。信号処理は、複雑だが反復のアルゴリズムにおいて、高速の数学的な計算およびデータ生成を必要とする。多くのアプリケーションがリアルタイムな計算(すなわち、信号が時間の連続関数であり、それはサンプリングされ、数値処理のためのデジタル信号に変換されなければならない)を必要とする。プロセッサは、計算が達するように、サンプルについて個別の計算を行うアルゴリズムを実行しなければならない。
デジタル信号プロセッサ(DSP)のアーキテクチャは上記のアルゴリズムを処理するために最適化される。よい信号処理エンジンの特性は、高速の融通性のある演算計算ユニット、計算ユニットへのまたは計算ユニットからの制約のないデータフロー、計算ユニットでの拡張精度およびダイナミックレンジ、デュアルアドレス生成器、効率的なプログラムシーケンス、およびプログラミングの容易さを含んでいる。
DSP技術の1つの有望なアプリケーションは、テキストメッセージングおよび他のアプリケーションと同様に、衛星または地球上のリンク上のユーザー間で、音声およびデータ通信をサポートする符号分割多元接続(CDMA)システムのような通信システムを含んでいる。多重アクセス通信システムにおけるCDMA技術の使用は、“SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITEあるいはTERRESTRIAL REPEATERS”と題された米国特許4,901,307番と、“SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSET SYSTEM”と題された米国特許5,103,459番と、に開示されていて、両方はクレームされた主題の譲受人に譲渡されている。
CDMAシステムは、1以上の標準規格に準拠することを典型的には設計されている。
1つの上記の第1世代標準規格は、“TIA/EIA/IS-95 Terminal-Base Station Compatibility Standard for Dual-Mode Wideband Spread Spectrum Cellular System”であり、以下IS−95標準規格と称する。IS−95CDMAシステムは音声データとパケットのデータを送信することができる。より効率的にパケットデータを送信する可能性があるより新規の世代標準規格は、“3rd Generation Partnership Project”(3GPP(登録商標))と名付けたコンソーシアムによって提示され、文献番号3G TS 25.211、3G TS 25.212、3G TS 25.213、および3G TS 25.214(これらは公に即座に入手可能である)を含む1セットの文献に具体化されている。3GPP標準規格は以下ではW−CDMA(登録商標)標準規格と称す。
W−DCMA標準規格を用いる複雑なDSPオペレーショナルソフトウェアは例えば、ロバストな開発ツールを必要とする。上記の開発ツールは、コード生成、統合、試験、デバッギング、およびアプリケーションのパフォーマンス評価することに関するツールを含んでもよい。高度なテレコミュニケーションアプリケーションのような、開発中かつ動作するソフトまたは複雑なDSPアプリケーションでは、精巧であるにもかかわらず、邪魔しないデバッギングソフトウェアの必要がある。すなわち、ソフトウェアアプリケーションをデバッグすることは、ソフトウェアの欠陥および運用上の問題の修正を監視し、試験し、かつサポートするためには単に十分にロバストではなくてはならない。同時に、ソフトウェアをデバッグすることは、同時デバッギング動作中にコアプロセッサソフトウエア動作に干渉しないように動作する必要がある可能性がある。そうでなければ、コア処理ソフトウェアにおける任意の問題は、デバッグ動作の間に検出されないか、適切に検出される可能性がある。
デバッグ動作中に、DSPの内の動作スレッドの処理の動作をトレースするための邪魔しないソフトウェア動作トレーシング機能に関連づける必要がある。上記のシステムは、特定のイベントが発生する前および後の両方に情報を捕獲するためのDSPの状態パラメーターについてのそのような情報を提供してもよい。同時に望ましいトレーシング機能は、DSPが全力で動作している間にさえ、プロセッサの性能に重大な負担を加えることができない。邪魔しないデバッグ動作と一緒に、上記のトレーシングプロセスは特定の型の情報を捕えてもよい。従ってトレーシング機能は、マルチスレッドプロセッサにおいて邪魔しないデバッグ動作と共に、モニタリングし記録することを提供する。
トレーシング機能が提供してもよい情報の特に有用な1つのセットは、インタースレッド実行動作を含んでいる。すなわち、マルチスレッドDSPの異なるスレッド間で相互に関係するトレーシングデータの能力がある1セットのトレースする機能について要求がある。既知のシステムは上記の情報を提供しない。ソフトウェア動作をデバッグする際に、ユーザーは、マルチスレッドプロセッサが特定の時点で実行している可能性がある命令がどれかを知るために任意の時点を選ぶことを望むかもしれない。この情報は、異なるスレッドが異なる時刻で異なるスレッドごとのデバッギング動作を起動するインスタンスにおいて特に価値がある可能性がある。
インタリーブされたマルチスレッドDSPにおいて、多重命令シーケンスの実行が同時に発生してもよい。そのようなものとして、プロセッサはいくつかの単一スレッドされたプロセッサが独立に動作するとして見なされてもよい。一旦、上記のプロセッサは、動作スレッドの各々のランタイム実行シーケンスを記録する実行トレーシングユニットを含んでいてもよい。これらのトレースは、プログラムフローをパケットのシーケンスに分解することにより、プログラムデバッグ動作を容易にする。このようなシステムでは、スレッド数フィールドは、どのパケットがどのスレッドに属するかを識別するために、あるパケットに加えられてもよい。このようなアプローチで、特定のスレッドに関するパケットシーケンスはそれぞれ、すべてのプログラムフロー変更およびすべての命令タイミングを含む全実行シーケンスを再作成してもよい。
どのパケットがどのスレッドに属することが有利であるかを識別する一方、トレーシング機能は、実行トレーシング中にインタースレッドタイミング関係を識別する能力を提供しない。例えば、トレース動作間の時間差は、あるスレッドから別のスレッドまで非常に大きいかもしれない。スレッドトレーシングが異なる時間にある異なるスレッドに関して開始する場合、トレースされる他のスレッドで1つのスレッドのタイミングを整列させることは可能ではないかもしれない。
従って、異なるDSPスレッド間でタイミング関係を確立し維持する邪魔しないデバッグプロセス内で動作することができる1セットのトレース機能のための要求がある。
しかし、マルチスレッドプロセッサの埋め込まれたトレースマクロセルプロセスでの使用に関してマルチスレッドプロセッサの異なるスレッドのアライメントを許す方法およびシステムについてさらなる要求がある。
またさらに、コアプロセッサソフトウエア動作中に発生する邪魔しないインシリコンデバッグプロセスの広いアレイと共同して動作することができるインタリーブされたマルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステムについての要求がある。
マルチスレッドプロセッサにおいてインタースレッドトレースアライメントを提供するための技術は開示される。その技術は、異なるスレッド間の種々のタイミング関係を確立し維持するために、インタースレッドタイミング関係を識別するための埋め込まれたトレースマクロセルに協力する。ここで開示された方法およびシステムは、関連したデジタルプロセッサ速度およびサービス品質を増大させるのと同様に、パーソナルコンピュータ、携帯情報端末、無線ハンドセットおよび同じような電子機器において動作するアプリケーションを含むますます強力なソフトウェアアプリケーションのために、デジタル信号プロセッサの動作とデジタル信号プロセッサ命令の効率的な使用との両方を改善する。開示された主題の一の態様によれば、方法とシステムは、共通所定イベントに関する記録タイミングデータを含んでいる実行トレース処理でインタースレッドトレースアライメントのために提供される。このような共通所定イベントは、最後のスレッドが実行トレーシングを開始してからのサイクル数であってもよく、または全てのスレッドが実行トレーシングを終了してからのサイクル数でもよい。スレッドが実行トレーシングを開始するサイクル数は、実行トレーシングのタイミングを維持するための共通所定イベントに参照される。その後、共通所定イベントに関するデータは、スレッドが実行トレーシングを開始した時と関連づけるために更新される。結果はすべてのスレッドに関連したタイミングデータを整列させることを可能にすることである。相互関係があったレコードは、すべての動作するスレッドについてタイミングデータを同期させると同様に、マルチスレッドプロセッサにおいて動作するスレッドに関する相互依存の実行トレーシング情報を再構成することも可能にする。
開示された主題のこれらおよび他の利点は、追加の新規な特徴と同様に、ここで提供される詳細な説明から明白になる。この要約の意図は、クレームされた主題の包括的な詳細な説明であるのではなく、むしろ主題の機能性のうちのいくらかの短い概要を提供することである。ここで提供される他のシステム、方法、特徴および利点は、以下の図および詳細な説明の試験上では当業者にとって明白になる。この詳細な説明内に含まれる特徴および利点、このような追加のシステム、および方法すべてが伴うクレームの範囲内であることが意図される。
開示された主題の特徴、性質および利点は、参照文字のようなものが全体にわたって対応して同一になる図面と共に得られたときに以下で述べられる詳細な説明からより明白になってもよい。
図1はここで開示された種々の実施形態のうちの1つを実装してもよい通信システムの単純化されたブロック図である。 図2は本開示の教えを先へ進めるためのDSPアーキテクチャを示す。 図3はこの開示された主題の技術的な利点を組込むマルチスレッドデジタル信号プロセッサの一実施形態のアーキテクチャブロック図を提供する。 図4は本開示のISDB/JTAGインターフェースの特徴を適用するデジタル信号プロセッサコアのある態様を開示する。 図5は本開示が関係する動作のデバッギングモードを含む、デジタル信号プロセッサのオペレーティングモードに適用可能なプロセスフロー図を与える。 図6は本開示の埋め込まれたトレースマクロセルの全体の機能概観を表すブロック図を提供する。 図7は、開示された埋め込まれたトレースマクロセルプロセスおよびシステムのトリガーブロック回路を示す。 図8はこの開示されたインタースレッドトレースアライメントプロセスの重要な概念を示す。 図9は開示された主題において適用可能なものとしてパケット生成ユニットの機能概要を示す。 図10は現在開示された主題の命令に適用可能な種々のアトムに関する定義の表を示す。 図11は本開示に役立つものとして32ビットのTIDフィールドをサポートする本開示に関するブランチアドレスパケットを提供する。 図12は現在開示されたプロセスで使用されるisync−restartパケットの典型的な内容を与える。 図13は現在開示された主題をサポートするためのisync−periodicパケットの実施形態を表す。 図14はこの開示されたプロセスで使用されるサイクルカウントパケットを与える。 図15は本開示に適切なものとしてpheaderフォーマット4パケットの一実施形態を示す。 図16は開示された主題の実施形態により使用のためのasyncパケットを表す。
マルチスレッドデジタル信号プロセッサの実行トレースプロセスに関連した使用のためのインタースレッドトレースアライメント方法およびシステムは、ここで与えられた利点が有利になる可能性があるあらゆる型のマルチスレッド処理に関するアプリケーションを持っている。上記の1つのアプリケーションが、テレコミュニケーション、および特に1以上のデジタル信号処理回路を用いる無線ハンドセットに現れる。上記の無線ハンドセットがどのように用いられてもよいかを説明することについて、図1は、開示された割込み処理方法およびシステムの本実施形態を実装してもよい通信システム10の単純化されたブロック図を提供する。送信機ユニット12では、データは、データソース14から、1以上のアナログ信号を生成するためにデータをフォーマットし、符号化し、処理する送信(TX)データプロセッサ16まで、典型的にはブロックで送られる。その後、アナログ信号は、変調された信号を生成するために、ベースバンド信号を変調し、フィルターし、増幅し、アップコンバートする送信機(TMTR)18に提供される。その後、変調された信号は、1以上の受信機ユニットにアンテナ20を介して送信される。
受信機ユニット22では、送信された信号は、アンテナ24によって受信され、受信機(RCVR)26に提供される。受信機26内では、受信信号は、フェーズ(I)および(Q)サンプルにおいて生成するために、増幅され、フィルターされ、ダウンコンバートされ、復調され、デジタル化される。その後サンプルは、送信データを回復するために、受信(RX)データプロセッサ28によってデコードされ処理される。受信機ユニット22で復号することおよび処理することは、送信機ユニット12で行われた処理およびコーディングと相互補完的に行われる。その後、回復されたデータは、データシンク30に提供される。
以上記述された信号処理は、音声、ビデオ、パケットデータ、メッセージング、および一方向での他の通信タイプの送信をサポートする。双方向通信システムは双方向データ伝送をサポートする。しかし、別の方向に関する信号処理は単純化のため図1に示されない。通信システム10は、符号分割多元接続(CDMA)システム、時分割多重アクセス(TDMA)通信システム(例えばGSM(登録商標)システム)、周波数分割多元接続(FDMA)通信システム、または地球上のリンク上でのユーザー間の音声およびデータ通信をサポートする他の多重アクセス通信システムかもしれない。特定の実施形態では、通信システム10はW−CDMA標準規格に準拠するCDMAシステムである。
図2は、図1の受信データプロセッサ28および送信データプロセッサ16として役立つ可能性があるDSP 40アーキテクチャを示す。我々は、DSP 40が、ここで与えられた教えと概念を有効に使用する非常に多数の可能なデジタル信号プロセッサの実施形態のなかで単に一実施形態を表しているに過ぎないことを強調する。従ってDSP 40では、スレッドT0からT5(参照数字42から52)は、異なるスレッドからの命令のセットを含んでいる。回路54は命令アクセス機構を表し、スレッドT0からT5について命令をフェッチすることに用いられる。回路54に関する命令は命令キュー56にキューされる。命令キュー56での命令は、プロセッサパイプライン66(以下を参照)へ発行される準備ができている。命令キュー56から、単一のスレッド(例えばスレッドT0)は問題論理回路58によって選択される可能性がある。選択されたスレッドのレジスタファイル60は読まれ読まれたデータはSLOT0からSLOT3について実行データパス62に送られる。この例においてSLOT0からSLOT3は、本実施形態において用いられた組合せをグループ化するパケットを提供する。
実行データパス62からの出力は、DSP 40の動作から結果を返すために、個別のスレッドT0からT5を適応するように構成されて、レジスタファイル書き込み回路64に行く。このように、回路54および前からレジスタファイル書き込み回路64までのデータ経路は、処理パイプライン66を形成する。本実施形態は、6つのスレッドT0からT5まで有するシングルプロセッサを用いて、異種機種環境にある要素プロセッサ(HEP)システムのハイブリッドを用いてもよい。プロセッサパイプライン66は、6つの段階を持っていて、回路54からレジスタ60および64までのデータ項目をフェッチするのに必要な、プロセッササイクルの最小数と一致する。DSP 40は、同時にプロセッサパイプライン66内の異なるスレッドT0からT5の命令を実行する。すなわち、DSP 40は、6つの独立したプログラムカウンタ、プロセッサパイプライン66内のスレッドT0からT5の命令を区別する内部タギング機構、およびスレッドスイッチをトリガーする機構を提供する。スレッドスイッチオーバーヘッドはゼロからほんの少しのサイクルまで変る。
DSP 40は、従って、種々様々の信号、画像およびビデオの処理アプリケーションに関して、高性能および低電力なように設計された汎用のデジタル信号プロセッサを提供する。図3は、開示された主題の1つの明示に関する関連した命令セットアーキテクチャのいくつかの態様を含むDSP40アーキテクチャの概要に提供する。DSP 40アーキテクチャサポートの実装はマルチスレッド(IMT)処理をインタリーブした。この実行モデルでは、パイプラインでの異なるスレッドからの命令をインタリーブすることによって、多重ハードウェアスレッドT0からT5の同時実行をサポートする。この特徴は、常に高いコアおよびメモリ使用を維持している一方、DSP 40が強引なクロック周波数を含むことを許容する。IMT処理は、障害実行、広範囲な転送ネットワークなどのような高価な補償機構に関する要求なしで高スループットを提供する。さらに、DSP 40は、M.Ahmedらによる「変数インタリーブされマルチスレッドされたプロセッサの方法およびシステム」、「マルチスレッドプロセッサにおける可変スレッド割り当ておよびスイッチングのための方法およびシステム」と題された、一般に譲渡された米国特許出願において開示された変形と新規のアプローチのようなIMT処理の変形を含んでも良い。
図3は、特に、開示された主題の教えを用いてもよい単一のスレッドに適用されるようなDSP 40についてコアプロセシングアーキテクチャブロック図70を提供する。ブロック図70は、AXIバス74からバスインタフェース(I/F)73を介して命令を受信する、共有される命令キャッシュ72を表す(命令は混合された16ビットおよび32ビットの命令を含んでいる)。これらの命令は、スレッドT0からT5の、監視制御レジスタ80、シーケンサー76、およびユーザー制御レジスタ78に達する。開示された主題のコアレベルシステムアーキテクチャーはまた、インシリコンデバッギングシステム(ISDB)82を含んでいる。それはJTAGインターフェース84を通じてコアプロセッサ70を接続し、それらの両方はより詳細に以下で説明される。
シーケンサー76は、Sパイプユニット86、M−パイプユニット88、LD[Load]−パイプ90、およびLD/ST[Store]−パイプユニット92、(これらのすべては汎用レジスタ94と通信する)に、ハイブリッドの双方向のスーパースカラー命令および4方向のVLIM命令を提供する。AXIバス74はまた、スレッドT0からT5へのLD/ST命令を、バスI/F 73を介して共用データキャッシュ96と通信する。オプションのL2キャッシュ/TCM 98信号は、共用データTCM 100を有するLD/ST命令を含んでいる。LD/ST命令はさらにスレッド汎用レジスタ94に流れる。AHB周辺バス102から、MSM特定コントローラ104はT0からT5で、割込みコントローラ命令、デバッギング命令、およびタイミング命令を含む割込みを通信する。グローバル制御レジスタ106はスレッドT0からT5で制御レジスタ命令を通信する。
DSP 40は従って、それぞれグローバル制御レジスタ106およびプライベート監視制御レジスタ80を含む6つの仮想DSPコアを含んでいる。グローバル制御レジスタ106はすべてのスレッド間で共有される。スレッドはそれぞれ共通データキャッシュおよび共通の命令キャッシュを共有する。ロード、蓄積およびフェッチ動作は共通バスインタフェースによって提供される。高性能AXIバス74およびより低い性能のAHBバス102は、オフコアメモリおよび周辺装置にデータおよび命令トラフィックを接続するために用いられる。統合レベル2のメモリ(キャッシュおよび(または)TCM)入力98はオプションである。周辺のアクセスはメモリマップされたロードおよびストアを介してもよい。AHBとAXIとの間の物理アドレスパーティションはMSMレベルでは構成されてもよい。
明確に、DSP 40に関する与えられたアーキテクチャは時間で発展し変ってもよい。例えば、DSP 40が用いてもよい命令キャッシュの数は、6から1に変化する、または他のキャッシュ数に変化する。スーパースカラーディスパッチ、TCM 98でのL1データ、および他のアーキテクチャの態様は変ってもよい。しかし、現在の主題は、種々様々の構成においてかつDSP 40の変更の大きなファミリーに関して、引き続き有効であってもよい。
ISDB 82は、JTAGインターフェース84を介して、DSP 40にハードウェアデバッガを提供する。ISDB 82は共有方式または監視のみのレジスタによってJTAGインターフェース84を介してソフトウェアデバッグ特徴を提供する。これらのレジスタは、すべてのスレッド間のグローバル制御レジスタ106と同様にスレッド基底ごとで監視制御レジスタ80に分割される。システム制御レジスタは、スレッドごとの割込み、および例外処理制御およびスレッドごとの記憶管理動作に使用される。グローバルレジスタは動作をデバッグするためのISDB 82と相互作用することを許容する。
ISDB 82によって、ソフトウェア開発者はDSP 40が動作している間にソフトウェアをデバッグすることができる。ISDB 82ハードウェアは、ISDB 82で動作するソフトウェアデバッガプログラムと結合して、システムソフトウェアを操作するDSP 40をデバッグするために用いられてもよい。ISDB 82はハードウェアスレッドを個々にデバッグすることをサポートする。ユーザーは、スレッド実行を延期してもよく、スレッドレジスタを観察し変更してもよく、命令およびデータメモリを観察し変更してもよく、複数のステップスレッドを選出してもよく、スレッドに命令を詰め込んでもよく、スレッド実行を再開してもよい。
信頼されているユーザーはISDB 82特徴のすべてへのアクセス権を有するが、信頼されていないユーザーは特徴の一部にアクセス権を有している。
ISDB 82は、プログラムカウンタ(PC)に存在するソフトウェアをデバッグするISDB 82と通信するために、JTAGインターフェース84を全く介してだが、デバッガインターフェースカードと接続してもよい。ホストデバッガソフトウェアは、ISDB制御レジスタを読み出しおよび書き込みすることにより、ISDB 82と相互に作用してもよい。通信は、例えば、32ビットのデータペイロードと同様に、読み出しまたは書き込みが発生するISDBレジスタを識別する40ビットのパケットを介してであってもよい。この動作をサポートするパケットフォーマットは、各々32ビット幅である64までの制御レジスタであってもよい。
図4は、デバッギング機構と開示された主題のコアプロセッサとの間のISDB/JTAGインターフェース110の重要な態様を示す。DSP 40コアアーキテクチャ70と共同して、ISDB 82は、ISDB JTAG回路114からJTAGインターフェース経路112を介してJTAG 84と通信する。ISDB JTAG回路114は、JTAG 84とISDB 82との間のデータの流れを処理する。ISDB JTAG回路114はさらにISDB JTAGSync回路116を接続する。ISDB JTAGSync回路116は、ISDBコントローラ118、命令ユニット(IU)120および制御ユニット(CU)122とさらに通信する。特に、ISDB JTAGSync回路116は、IU 120のIU ISDB論理回路とCU122のCU ISDBコントローラ126をインターフェースで接続する。CU ISDBコントローラ126は、ISDBコントローラ118と同様に、CU ISDB論理回路128と通信する。ISDBコントローラ118からの制御出力は、ISDBデータ出力130、ISDBリセット信号132およびISDB割込み134を含んでいる。さらにISDBコントローラ118へのインターフェースは、MCDインターフェース136およびETMブレークポイントトリガー138を含んでいる。
図5は、デバッグプロセスの間にISDB 82の動作を含むDSP 40の、種々のモード制御態様についての処理モード図140を示す。図5では、DSP 40はすべてのスレッドに対してグローバルで、個体スレッドに対してローカルな処理モードをサポートする。DSP 40ハードウェアスレッドはそれぞれ、すべて図5に現れているように、個々に2つの実行モード(ユーザモード142およびスーパーバイザーモード144)、3つの非処理モード(待機モード146、オフモード148およびデバッグモード150)をサポートする。スレッドのモードは他のスレッドに依存せず、例えば、1つのスレッドは待機モード146であって別のものがユーザモード142であってもよい。
図5のスレッドごとのモード状態図は種々の命令またはイベントによってサポートされる。これらは、「除外」あるいは内部例外イベント、「int」または外部割込みイベント、「RTE」または例外モードからのソフトウェアリターン命令、「SSR」またはSSRレジスタ命令へのアップデートを含み、任意のモードから入ってもよい「停止」またはソフトウェア停止命令、同様に任意のモードから入ってもよい「開始」またはソフトウェア開始命令、「trap」またはソフトウェアトラップ命令、「待機」またはソフトウェア待機命令、「レジューム」またはソフトウェアレジューム命令、「DE」またはデバッグイベント、および、「DR」またはデバッグ命令を含む。クレームされた主題の異なる実行における機能はここで与えられたものとわずかに異なっていてもよいが、「開始」「待機」、「再開」、「DE」および(または)「DR」の意味は、クレームされた主題の範囲と一致するそれらの最も広い解釈を与えられてもよい。
レジスタは、ユーザモード142およびスーパーバイザーモード144の両方におけるDSP 40において利用可能である。ユーザーモードレジスタは、1セットの汎用レジスタおよび1セットの制御レジスタに分割される。汎用レジスタは、アドレス発生、スカラーおよびベクトル算術を含むすべての多目的計算のために用いられる。制御レジスタは、ハードウェアループ、述語などのような専用機能性をサポートする。多目的レジスタは、32ビット幅で、単一のレジスタ、または整列したペアの2つのレジスタとしてアクセスされてもよい。汎用レジスタファイルは、ロード/蓄積のためのアドレス、数値命令のためのデータオペランド、およびベクトル命令のためのベクトルオペランドを含む命令に関するオペランドをすべて提供する。
デバッグモード150は、スレッドがISDB 82からのコマンドを待機している特別の状態を提供する。ISDBデバッグイベントが発生する場合は常に、ソフトウェアブレークポイント命令、ISDB 82からのブレークポイントコマンド、またはハードウェアブレークポイントの発生の実行によってのように、指示されたスレッドはデバッグモード150に入ってもよい。デバッグモード150の場合、コアはJTAGインターフェース84からのコマンドを介してISDB 82によって制御される。ISDB 82がレジュームコマンドの実行によりスレッドを解放する場合、スレッドはそれらの現在モード設定に従って動作を再開してもよい。スレッドがデバッグモード150にある場合、それはISDB 82によって制御され、他のスレッドによって制御され得ない。デバッグモード150においてスレッドをターゲットとする、実行中のスレッドからの待機、再開、開始、あるいは停止命令は無視されてもよい。同様に、マスク不可能割り込み(NMI)はデバッグモード150におけるスレッドによって無視されてもよい。
HARDWARE RESETモード(図5に図示せず)およびデバッグモード150は、すべてのスレッドに対してグローバルである。任意のスレッドの処理状態にかかわらず、ハードウェアリセットピンがアサートされる場合は常に、DSP 40はHARDWARE RESETモードに入ってもよい。HARDWARE RESETモードにおいて、レジスタはすべてそれらのリセット値に設定される。ハードウェアリセットピンがデアサートされるまで、処理は発生しなくてもよい。リセットピンがアサートされる場合、プロセッサはリセットモードへ移行し、レジスタはすべてそれらのHARDWARE RESET値にリセットされてもよい。リセットピンがデアサートされた後、スレッドT0はソフトリセット割込みを与えられてもよい。これはスレッドT0にスーパーバイザーモード144に入らせ、リセットベクトル位置で実行することを始めさせてもよい。他のすべてのスレッドはオフのままであってもよい。この点では、ソフトウェアは、各スレッドそれぞれに関する制御モード遷移に個々に自由である。
図6から17は、DSP 40の埋め込まれたトレースマクロセル(ETM)ユニットの現在開示された新規かつ有利な特徴に関する。それは、ソフトウェア実行フローに関する詳細情報をリアルタイムで捕獲することによって符号のユーザーデバッギングを向上させる。ETMは、選択されたDSP 40実行を非侵入に監視し記録し、実行情報をパケットへ形成し、パケットストリームをETBとして知られるオンチップメモリまたはオフチップへ送る。ETMはまた、関心領域への追跡情報の生成を制限するか集中させるために多くの機構を含んでいる。パケットストリームを用いると、実行の再構成は、ユーザーにコードのランタイム動作の直接の視界を与えて生成されうる。
ETMは従って、DSP 40および他の同じようなデジタル信号プロセッサに関する包括的なデバッグおよびトレース機能を提供する。これらの機能は、DSP 40がフルスピードで実行するにもかかわらず、プロセッサの性能に負担を加えていない間、特定のイベントの前後でプロセッサの状態についての情報が捕獲されることを許容する。ETMは、精選された追跡情報だけを条件の特殊シーケンスを経た後にだけ単に捕獲するソフトウェアで構成されてもよい。専用で設定可能なトレースポートおよびFIFOは、圧縮トレースデータが、プロセッサに割り込まず、影響を及ぼすことなく、外部のトレースポート解析器によってチップから読み込まれることを許容する。
トレースポートはコアクロックに独立したトレースクロックと共に1から32ビットデータバスで構成されうる。例えば、ETMからのデータレートは、コアクロックの半分でありえ、ピンの数はデータ帯域幅を維持するために増加されうる。同様に、ピンの数は半分にすることができ、データレートは増加されうる。ETMは、スタンドアロンおよびマルチコア環境内の両方において用いられてもよい。開発者が多重かつ非同期コアからの同時かつ相関したトレースを眺めることを許容する。
図6は、本開示をサポートする様々な全体のETM機能を表すブロック図160を提供する。DSPコアプロセッサ70は、ETM162をインターフェース接続する。トリガリングフィルタリング回路164および圧縮パケット化回路166を含んでいる。トリガリングフィルタリング回路164および圧縮パケット化回路166による処理に続いて、ETM出力168は、例えば埋め込まれたトレースバッファ(ETB)回路またはオフチップ回路であってもよいトレース保存部に流れる。トレース保存部170から、ソフトウェア実行記録はデバッグホスト173(図6にない)へ出力172(図6にない)として流れる。デバッグホスト173は、トレース保存部出力172を受信し再構成された実行フロー176からそこに生成するためのデコンプレッサ成分174を含んでいる。ETM162はJTAG 84から、入力したJTAG 84がデバッグホスト173からのデータおよび命令に応じて生成する制御量178を受信する。
図6に示すように、ETM162はDSP 40パイプラインを監視する。この情報を用いて、ETM162は2つの主要な機能(フィルタリング/トリガリング、および圧縮/パケット化)を行う。フィルタリングおよびトリガリングする動作は、JTAGインターフェース84を介してユーザーによってプログラムされ、トレースをオンオフする時を定義するために用いられる。圧縮/パケット化ユニットはDSP 40に実行情報を持ち込み、効率的にそれを、トレースポートを介してETM162から送り出されるパケットにする。ETM162を出るトレースストリームは、トレース保存部に供給される。トレース保存部は、トレース記録を記録するために大きなメモリキャパシティを提供し、オフチップまたはオンチップのいずれかであってもよい。オンチップ保存部は埋め込まれたトレースバッファ(ETB)として知られている。デコンプレッサコンポーネント174は、トレース保存部170からパケットストリームを取り、プログラムイメージに加えて、ユーザーにDSPパイプライン66への詳細な視界を与えて、DSP 40の実行フローを再構成するデバッグホスト173上で動作するソフトウエアコンポーネントである。
ETM162は、プロファイリングカウント(キャッシュミス、バンクコンフリクトおよびミクロtlbのミス)を記録し送り出す能力と同様に、6つのスレッドすべてに関するトレース命令順序付けおよびタイミングを提供する。
ETM162は、LDSTデータと同様に、PCとLDSTのアドレスについてもトリガーしてもよい。ETM162はシリアルかつ外部のイベント検出をサポートする。さらにETM162はまた、ISDBブレークポイントトリガーイベント、外部トリガーイベントおよびDSP 40割込みを生成してもよい。ETM162はJTAG 84を介してプログラム可能なであり、ある実施形態では512x32ビットの専用のETBトレース保存部をサポートしてもよい。ETM162は4つのトリガーブロック(各々2つのアドレスおよび1つのデータコンパレーターを有する)を含み、3状態のシーケンサーを含んでいてもよい。ETM162トレーシングは、安全なDSP 40の制御がレジスタを可能にする下で、動作してもよく、DSP 40パワーが下落している間の動作に関してプログラムされてもよい。崩壊に動力を供給する。
ETM162は、ある時のあるウィンドウ上のスレッドに関するプログラムカウンタの十分な進行の記録として命令トレースを生成する。オプションで、プログラムカウンタ進行のタイミング(つまりストールサイクルの識別)も、命令トレースに含まれうる。イベントリソース機構はいつこれらの命令トレースを生成するべきであるかを定義するために用いられる。トリガーとフィルタリング機能はイベントリソースのプログラミングを通じて制御される。より詳細には、イベントリソース制御フィルタリング、トリガリング、およびISDBブレークポイント生成においてである。フィルタリングは、いつ命令トレースを可能にし無効にするべきであるかを決定する機能を含んでいる。トリガリングはいつトリガーマーカーをパケットストリームに挿入するかを決定することを含んでいる。ISDBブレークポイント判定は、ISDB 82が動作をデバッグするためのブレークポイントを生成しブレークポイントに応答する条件を指定することを含んでいる。
ETM162は、DSP 40内の特定の条件がいつ発生するかを検知するために、多くのプライマリイベントリソース(例えばアドレスおよびデータコンパレーター)を含んでいる(例えば、あるPCが実行されるかどうか、またはある記憶位置が読み込まれるかどうか)。更に、イベントのより複雑な配置の検出を可能にする第2のイベントリソース(トリガーブロックおよびシーケンサー)がある。
ETBトレース保存部は、追跡情報がデバイスのピンでトレースポートを介して直ちにエキスポートされることではなくキャプチャーの間に記憶される、オンチップメモリエリアを提供する。その後保存された情報は、一旦キャプチャーが完了したならば、ETBトレース保存部から縮小されたクロックレートで読取ることができる。これはJTAGインターフェース84を介してなされる。この2ステップのプロセスは、多数の高速デバイスピンを用いるワイドのトレースポートに関する必要性を除去する。事実上、「ゼロピン」トレースポートは、デバイスがピンで既にJTAGポートを持つところで生成される。ETBトレース保存部170は、トレースポート帯域幅限定を超えて、より高い周波数かつ十分な32ビットのデータポートでデータを読み込み、システムインテグレーターによって供給されたRAMブロックで統合されてもよい。
一実施形態において、ETBトレース保存部170は、512のエントリとして2KBのサイズを有していて、それぞれ32ビット幅である。しかし、ETBトレース保存部に関する他のサイズは、明らかに開示された主題の範囲内である。ETBトレース保存部170は、1セットのJTAGアクセス可能なレジスタを介してユーザーをインターフェース接続する。レジスタはそれぞれ、JTAGインターフェース84を介して読み出されまたは書き込まれうる。これらのレジスタは、一旦トレースキャプチャが完了すると、トレースキャプチャーセッションに関するETBトレース保存部170をセットアップし、かつETBトレース保存部170の内容を読出すために用いられる。ETBトレース保存部170は、ETBトレース保存部170の記憶配列の中へインデックスとして読取りポインタを提供する。JTAGインターフェース84を介してETBトレース保存部170の内容を読出す場合、読取りポインタは読む位置を指示する。ETBトレース保存部170はまた、ETBトレース保存部170メモリアレイの中へインデックスとして書き込みポインタを提供する。トレースデータがETBトレース保存部170へ書き込まれる場合、それは書き込みポインタによって指示されたエントリに書かれている。書込み操作の各々は、書込みが発生する後に、次の位置への書き込みポインタを自動インクリメントする。
ETBトレース保存部170は、単にETMトレースストリームの小さなウィンドウを捕えてもよい。ETBは、データおよびトリガーカウンタを捕獲することがETBトレース保存部240によって捕獲されたトリガー前のデータとトリガー後のデータとの間での分割を特定するためにいつ使用されるかを判定するために、ETMからトリガーパケットを捜す。
ETM162は、従って、DSP 40に関する符号をデバッグする場合にプログラマを援助する。ETM162は、ある時のあるウィンドウ上のスレッドに関する実行フローの記録である命令トレースを生成する。記録された命令トレースを用いると、プログラマは、それらの符号のランタイム動作についての詳細な眺望を見ることができる。例えば、利用者のプログラムが例外を生成し説明できない場合、ETM162は例外までの命令のフローを決定する際に援助し、その結果ユーザーが厳密に起こったことにアクセスすることを許容する。ETM162は、効率的にプログラムフローを表し、トレースデータの生成を最小化するためにパケットに基いた特定のプロトコルを用いる。
ETM162の一態様は、イベントおよびより複雑なイベント検出シナリオをつなぐためのシーケンサープロセスを含んでいる。シーケンサープロセスおよび関連するトリガーブロック回路180の動作を例証するために、図7はシーケンサーフロー図190を与える。トリガーブロック回路入力182から188に応じて、シーケンサープロセス180は3状態(S0からS2)での示された例において作動する。シーケンサープロセス310の動作については、状態S0から、プロセスフローはS1またはS2に行ってもよい。
S1から、順序付けは、S2に先んじてまたはS0に戻るかのどちらかまで進む。S2から、順序付けは、S1またはS0のいずれかまで進む。
シーケンサープロセス180は従って、プログラム可能でありトリガーブロック回路(182から188)からの一致に基づく、状態間での遷移を有し3つの状態(S0からS2)を含んでいる。シーケンサープロセス180は、状態可能が条件として設けられることを各トリガーブロック回路(182から188)に可能にするためのトレースフィルタリングで使用する。これは、トレーシングがある状態に制限されることを許容する。新規の状態に入る際、各トリガーブロック回路(182から188)でのカウンタは初期値にリロードされてもよい。ある状態に入る際、ISDBブレークポイントはアサートされうる。ある状態に入る際、トリガーマーカーはトレースストリームに挿入されうる。ある状態に入る際、外部トリガー制御もアサートされてもよい。外部トリガーは、シーケンサーがある状態であるといつでもアサートされるままであってもよい。ある状態に入る際、DSP 40への割込みはアサートされてもよい。リセットの後、カウンタはS0に初期化される。多重の遷移が同時に発火する場合、シーケンサーは現在の状態のままである。
一実施形態において、ETM162は、DSP 40性能に関係する種々のイベントを記録することができる6つのカウンタを含んでいる。基本操作はプログラム可能なソースとして各カウンタを利用する。ユーザプログラム可能な領域カウンタは実行をサイクルの固定数のウィンドウに分割する。ウィンドウの期間に、イベントはカウンタへ蓄積される。ウィンドウの端では、カウンタ値はパケットに形成され、トレースポートを介して送られる。その後、カウンタはリセットされ、プロセスはまた始まる。プロファイリングユニットがプログラムフロートレーシングとして同時に動作される場合、これは結果として、性能イベントに関する詳細情報に覆われているプログラムフロートレースをもたらす。更に、プロファイリングユニットは、ユニットがアクティブな場合を制限するために状態可能にするマスクを含んでいる。
領域カウンタは実行をサイクルの固定数のウィンドウに分割するために用いられる。領域のサイズはユーザプログラム可能なレジスタによって決定される。領域カウンタはユーザーに指定された値に初期化され、全てのプロファイリングイベントカウンタがリセットされる。その後、領域カウンタはカウントダウンを始める。領域カウンタがゼロに達する時、プロファイリングイベントカウントの各々に関する値はトレースストリームにおいて放出される。その後、プロセスはまた始まる。領域カウンタは状態可能が一致するときを単に数える。プロファイリングが不活発な場合、領域カウンタは、その値を維持し、イネーブル状態が再び入れられる場合再び始まる。
プロファイリングカウンタが情報を蓄積してもよい異なるイベントは(a)dキャッシュミスと、
(b)dキャッシュストールサイクルと、
(c)iキャッシュミスと、
(d)iキャッシュストールサイクルと、
(e)ITLBとDTLBのミスと、
(f)合計のストールサイクルと、を含む。
更に、プロファイリングカウンタはそれぞれ、あるハードウェアスレッドに発生するイベントにカウンタを制限するために、6つのスレッドマスクを含んでいる。
領域カウンタでのように、状態可能なマスクが現状に一致する場合、プロファイリングカウンタは単にアクティブである。すべての他の回の間にカウントはそれらの値を維持し、イネーブル状態が再び入れられる場合カウントすることは再び始まる。
本開示は、インタースレッドトレースアライメントをサポートするために新しいパケットプロトコル機能セットを提供する。すなわち、ETM162を用いてトレースされているあらゆるスレッドについては、任意の時点では、本開示はトレースされている他のすべてのスレッドについて、その時点でのそれらのスレッドのプログラムカウンタ値および指示状態(例えば、ストール、実行など)を識別することを許容する。このように、ETM162がサイクルの正確なモードで動作する場合、トレースアライメントはインタースレッドトレースアライメントをサポートするトレースポートプロトコルを利用する。従って、本開示は、インタースレッドアライメントに関する完全に正確なサイクルカウントフィールドと同様に、isync−restartパケットスレッドに関するサイクルカウントフィールドが類似スレッドになるようにする。この開示配置は、すべてのスレッドに関する同じスレッドサイクルでisync−periodicパケットを生成する。スレッドアライメントが任意の理由で失われる場合、これはさらに再アライメントを可能にさせる。
本開示に一実施形態において、同時に発生する多重の命令シーケンスの実行を提供し、DSP 40は独立して動作する、いくつかの単一にスレッドされたプロセッサとして見られてもよい。ETM162では、プログラムフローはパケットのシーケンスに分割され、それはどのパケットがどのスレッドに属するかを識別するためにあるパケットに対してスレッド数(tnum)フィールドを含んでいる。インタースレッドタイミング関係を識別するために、本開示は、異なるスレッド間のタイミング関係を確立し維持する。スレッドがそれぞれ命令追跡を独立して可能にしたり無効にしてもよいので、スレッドが命令追跡をオンする場合、他のスレッドは暫くの間可能にしたそれらのトレーシングを可能にしてもよい。現在開示された方法およびシステムは、スレッドがトレーシングをオンする場合と、他のスレッドがトレーシングをオンし続いてオンする場合との間のオフセットをマーキングすることによって、スレッド実行順序の相対的なタイミングを確立する。
従って本開示は、最後のスレッドがトレーシングをオンしてからのサイクル数を指示するためのスレッドサイクルオフセットフィールドを含んでいる。また、他のスレッドがアクティブでない場合、サイクルオフセットフィールドは、最近のトレースがすべてのスレッド間でオフしてからのサイクル数を含んでいる。トレースセッションの後、パケットはスレッド実行を再構成することを可能にさせる。その後、オフセットフィールドを用いて、実行順序は適切にスレッド中に整列してもよい。更に、命令アライメント機構はデータ損失の場合には実行トレーシングを再確立することを許容する。
開示された主題はインタースレッドタイミング関係を再確立することを更に許容する。
同期パケットを周期的に生成することを許容するグローバルなカウンタを維持することによって、カウンタがゼロに達する場合、パケットは各スレッドについて生成されてもよい。上記のパケットは、そのスレッドに関する現在のプログラムカウンタ値を含んでいる。
さて、すべてのスレッドに関する同時のパケット生成に関するDSP 40に存在してもよい種々の限定のために、本開示は同期パケットへのサイクルオフセットフィールドを含んでいる。最後のスレッド(他のスレッド間の)が同期パケットを生成してから、サイクルオフセットフィールドはサイクル数を指示する。サイクルオフセットフィールドは制限のあるサイズであり、かつカウントが飽和すれば、同期は実現されることができず、カウンタを待ってもよい。以下により完全に記述されるこれらの機構を用いて、本開示は1つのスレッドに関する任意のある点でインタースレッド実行タイミング関係を維持することを許容する。結果は、デバッギングおよび他の重要な目的のためのすべてのスレッドの動作および状態を観測する能力である。
この理解では、図8は、現在開示されたインタースレッドトレースアライメントプロセスの重要な概念を示す。図8を参照すると、タイムライン202が示すように、インタースレッドアライメントプロセス200は時間t=0に基づいている。DSP40上で動作し得る種々のスレッド204、206、208、210および212については、スレッド開始が異なる時点で発生してもよい。このように、時間t=t0では、スレッド204は動作を開始してもよい。その後遅い時間t=t1で、スレッド206は動作を開始してもよい。時間t=t2で、スレッド208は始まり、t=t3でスレッド210は動作を始め、t=t4でスレッド212は動作を開始する。より完全に以下で説明されるように、継続期間214は、トレーシングがスレッド212に関してアクティブになるまで、サイクル数を表す。継続期間214は、isync−restartパケットからトレース開始プログラムカウンタ(PC)に関するサイクル数を表す。すべての相互関連するスレッド(204から212)については、isync−periodicパケットはすべてのスレッドについて同時に生成される。更に、継続期間220は、例えばスレッド212で、発生している長いストールの状況を扱っている。
より完全に本開示のインタースレッド動作を記述するために、図9は、パケット生成ユニット230の一実施形態の機能概要を示す。パケット生成ユニット230は、パケット生成制御回路232を含んでいる。それは、FIFO入力mux234へ、genIsyncP、genAsync、genBranch、genPheader、genIsyncR、genProfおよびgenCCountの出力を生成するためのアトムW、アトムNおよびアトムEの入力を受信した。Pheader生成回路236は、パケット生成制御回路232およびアトムE入力(FIFO入力mux234へのpheaderPK出力を生成するためのすべて)からwカウント、eカウントおよびnカウント入力を受信する。PC/tld/asid/tnum入力は、isync−restart/cycle−count生成機能238、isync−periodic生成機能240およびbranch−address生成機能242に流れる。Isync−restart/cycle−count生成機能238は、FIFO入力mux234への、isyncRPK、isyncRLen、CCPKおよびCCLen出力を提供する。Isync−periodic生成機能240は、FIFO入力mux234へisyncPPKとisyncPLenの入力を提供する。branch−address生成機能242(また、それらは分岐型入力を受信する)は、FIFO入力mux234へbranchPKとbranchLenの出力を提供する。更に、プロファイル生成機能244は、FIFO入力mux234へのprofPKとprofLenの出力を生成するためのプロファイル識別子入力を受信する。
FIFO入力mux234は、所与のサイクルで生成される必要のあるすべてのパケットをとり、連続的なチャンクをそれらから作る。FIFO入力mux234は、その連結を行うときに可変サイズであるパケットを説明しなければならない。FIFO入力mux234の出力はFIFOに送り出される前に登録される。
本開示パケット生成およびFIFO入力mux234に関しては、動作が3つの段階にわたって発生する。パケット生成の第1の段階では、パケット生成制御機能232および個別のパケット生成エンジン236から244は、アトムカウンタであるw−カウント、e−カウントおよびn−カウントインクリメントと同様に、作動する。FIFO入力mux234の動作は、この第1の段階における連続ブロックへのサイクルで生成されたパケットをすべて合併することを含んでいる。第2の段階では、FIFO書込みは、FIFO書き込みポインタに整列させるべきデータを循環させること、書込み可能性を計算して循環させること、および、データをFIFOmux234レジスタに書き込むことを含むために発生する。FIFO読取り段階である第3の段階では、データはFIFOレジスタから読まれてもよい。この第3の段階では、またトリガーパケットを挿入し、ETBにデータを送る特別な場合が発生する。
図9において見られるように、個別のパケット生成ユニットの各々はそのそれぞれのデータをパケットにし、次に、連結について結果として生じるパケットおよび長さをFIFO入力mux234へ送る。更に、パケット生成制御回路232はアトムカウンタを維持し、特定のサイクルでどのパケットを生成するかを決定する。パケット生成ユニット230は、今後のpheaderまたはサイクルカウントパケットで送り出されてもよい未決のアトムの数を記録するために3つのカウンタを保持している。E−アトムに遭遇する場合は常に、E−アトムカウンタはインクリメントする。N−アトムに遭遇し、カウントが現在のアトムを含んでいる場合は常に、N−アトムカウンタはインクリメントする。すなわち、現在のアトムがNならば、それはN−アトムカウントに含まれる。W−アトムに遭遇する場合は常に、W−アトムカウンタはインクリメントする。これらのカウンタはスレッドごとのカウンタであり、また、そういうものとして、本実施形態では各々の6つのコピーがある。カウンタがpheaderまたはサイクルカウントパケットを介して送り出される場合は常に、カウンタはリセットされる。
ターゲットが前のループバックとは異なる場合、branch−address生成機能242から、branch−addressパケットは間接のブランチループバックのターゲット用に生成されてもよい。全ループバックモードが設定される場合、パケットはすべてのループバックについて送り出される。また、isync−restartおよびisync−periodicパケットが生成された後、新規のループバックパケットは追い出される。その後PC相対ブランチIF直接のブランチモードのターゲットはセットされる。イベントのターゲット(割込み、例外、SWI、TRAPなど)はRTE命令を返す。トレース可能性がアサートされ、かつそれがトレーシングの第1のサイクルでない場合、branch−addressパケットは生成されてもよい。パケット生成制御ユニットは、各々スレッドがループバックbranch−addressパケットが必要とされるかどうかを判定するために、前のループバックのターゲットレジスタを維持する。
図10は、現在開示された主題の命令に適用可能な種々のアトムに関する定義のテーブル250を示す。パケットプロトコルの主な目的はインタースレッドトレースアライメントをサポートすることである。すなわち、トレースされているあらゆるスレッドについては、任意の時点では、ユーザーは、その時点でのこれらのスレッドのプログラムカウンタ値および指示状態(ストール、実行)を、トレースされている他のすべてのスレッドについて識別することができるべきである。ETM162がサイクルの正確なモードで動作する場合、トレースアライメントは役に立つ。トレースポートプロトコルはインタースレッドトレースアライメントをサポートするために拡張されている。「S」型命令アトムは、デュアルジャンプとして知られているブランチ機構を提供する。ここで、ETM162はS型を含んでいる。それはアトムを保持するためにpheader−format4パケット型を用いて定義される。
図11は、32ビットのTIDフィールドをサポートする本開示に関するブランチアドレスパケット280を提供する。現在開示されたbranch−addressパケットは、図11に現れる内容である32ビットのTIDフィールドをサポートする。branch−addressパケットは1と11バイトとの間を含む可変長である。バイト0から4のMSBでの連続ビットは、パケットがその点を越えて連続するかどうかを示す。別々に、T−ビットは、タイプフィールドがパケットの終わりに付加されるかどうかを示す。バイト4のMSBにおける1は、5バイトが続くということを示す(4バイトのTIDおよび1バイトのASID)。
branch−addressパケットはPC、TID/ASIDおよび型圧縮に可変である。TID/ASIDは、どちらか一つがtnumに関して最後のbranch−addressパケットまたはisync(restart or periodic)以来変っている場合、送り出されてもよい。型は、最後の型が送り出されてからそれが変っている場合、送り出されてもよい。それはisync−restartまたはisync−periodicの後に最初のbranch−addressパケットについて生成されてもよい。PCは、branch−address、isync−restart、またはisync−periodicによって送られた前のPCと比較して圧縮される。変化したPCのより低い部分が送り出されてもよい。各スレッドについては、前のPC、前のTID/ASID、および前の型レジスタは適切な圧縮を決定するために用いられる。
図12は、現在開示されたプロセスで使用されるためのisync−restartパケット260の典型的な内容を提示する。isync−restartパケットは、トレーシングが開始される場合、生成されてもよい(トレース可能性は以前には低かった)。
更に、オーバフロー条件から出てくるときで、トレース可能性がまだ高い場合には、isync−restartパケットはオーバフローがあったことを示す理由フィールドに生成される。本開示は、isync−restartパケットを用いて、アライメントを提供する。命令アライメントは、トレースされているすべてのスレッドのすべてのサイクルに、グローバルスレッドサイクルを割り当てることとしてみなせうる。デコンプレッサ手順は、isync−restartパケットがトレースストリームにおいて利用可能な場合についてこれを遂行する。デコンプレッサは、最後のisync−restartカウントのカウンタ値を維持する。
isync−restartパケットが遭遇するときはいつでも、本開示はサイクルカウントフィールドおよびサイクルカウントタイプフィールドを検査してもよい。タイプフィールドが「グローバルな」場合、プロセスはサイクルカウントフィールド値に最後のisync−restartカウントを割り当てて、最後のisync−restartカウントを有するそのパケットに注釈を付ける。タイプフィールドが「オフセット」である場合、プロセスはサイクルカウントフィールドでの値によって最後のisync−restartカウントをインクリメントし、さらに、最後のisync−restartカウントによりパケットに注釈を付けてもよい。その点で、isync−restartパケットはそれぞれグローバルスレッドサイクル値に注釈を付けられる。
次のステップはアトムを注釈することである。そのプロセスは、トレースストリームを、パケットストリームにおけるtnum値に基いて個別のスレッドローカルのパケットストリームへ分割する。個々のスレッドローカルのパケットストリームについては、プロセスは可変なグローバルスレッドサイクルを維持する。この値は、いつでもisync−restartパケットに遭遇され、グローバルスレッドサイクルは注釈を付けられた値に割当てられるように維持される。命令アトムに遭遇する(E、N、SまたはW)ごとに、そのプロセスは、1ずつグローバルスレッドサイクルおよびインクリメントグローバルスレッドサイクルを有するそのアトムに注釈を付けてもよい。通常のデコンプレッション手順を用いて、プロセスは、各アトムに関するプログラムカウンタ値を決定する。この手順が適用された後、トレースされているすべてのスレッドのすべてのサイクルはグローバルスレッドサイクルカウント値に注釈を付けられてもよい。結果として、例えばあるスレッドサイクルに関して、6つのスレッドすべてに関する現在のプログラムカウンタ値は、それらのスレッドに関するパイプラインの状態と同様に決定されてもよい(ストール、実行など)。
非サイクル正確なバージョンについては、TIDフィールドは32ビットまで拡大される。サイクル正確なバージョンについては、TIDは32ビットまで拡大され、新規のサイクルカウントフィールドはトレースアライメントをサポートするために定義される。グローバルなサイクルカウントは、最後のハードウェアリセットからスレッドサイクル数を指示する。最後のisync−restartパケットが生成されてから、オフセットサイクルカウントはサイクル数を指示する。
図13は、現在開示された主題をサポートするためのisync−periodicパケット290の実施形態を表す。Isync−periodicパケットは、(すべてのスレッドの中から)最後のisync−periodicパケットが生成されてから、スレッドサイクル数を指示する「オフセット」フィールドを含んでいる。開示されたプロセスはまたisync−periodicパケットを用いて、アライメントをサポートする。場合によっては、トレースデータの制限されたウィンドウだけが利用可能である。従って、isync−restartパケットは利用可能ではないかもしれない。これらの場合では、isync−periodicパケットはインタースレッドアライメントを決定するために用いられてもよい。パケット境界が未知の場合、プロセスはパケットアライメントを回復するためにasyncパケットを探索してもよい。デコンプレッサはカウンタlast−isync−periodic−countを維持してもよい。マルチスレッドパケットストリームを通り抜けると、プロセスはオフセットフィールドがない最も古いisync−periodicパケットを探索することを含んでもよい。その後、プロセスはlast−isync−periodic−countを0に割り当て、値によりそのパケットを注釈する。他方のtnumsからの次のisync−periodicパケットの各々については、プロセスは、オフセットフィールド値、およびisync−periodic−countをもつisync−periodicパケットの各々によってisync−periodic−countをインクリメントしてもよい。その後、プロセスはスレッドを個別のパケットストリームへ分割し、それらを別々にデコンプレスする。
ETMisync−periodicカウンタは、パケットバイトがFIFOに送られる場合は常に、ディクリメントされてもよい。カウンタがスレッドに関してゼロに達する場合、isync−periodicパケットが未決としてマークされてもよい。次の機会では、isync−periodicパケットは生成される。1つのisync−periodicは、次のパケットのうちのどれかが生成されている場合(isync−restart、トリガー、branch−address、async、プロファイル)、阻止されてもよい。スレッドはそれぞれそれ自身のisync−periodicカウンタを維持してもよい。isyncカウンタは、いずれかisync−restartパケットがそのスレッドについて生成される場合は常に、リセットされてもよい。
図14は、現在開示されたプロセスで使用される1セットのサイクルカウントパケットを与える。サイクルカウントパケットはW−アトムを蓄積するために用いられてもよい。
また、サイクルカウントパケットは単にサイクル正確なモードにおいて生成されてもよい。サイクルカウントパケットは次の場合に生成されてもよい。WからEまたはWからNへ切り替える場合、W−アトムカウントがフォーマット3pheaderキャパシティに入らない場合、未決のW−アトムをもつアトムブレークの場合、およびW−アトムが多すぎてフォーマット3pheaderに入らない場合。W−アトムはサイクルカウントパケットに入れられてもよく、また、およびEまたはNアトムはフォーマット1pheaderで出てきてもよいし、サイクルカウントパケットはその完全に正確な最大に達してもよい。サイクルカウントパケットが、それがその最大32ビット値に達するまでインクリメントすることを許容する代りに、ETMは十分な正確さと制限のある正確さとの間の限界で多重のより小さなサイクルカウント値を送り出す。この場合、現在のアトムはW−アトムでもよい。このアトムがパケットに含まれていないので、カウントは0の代りに1にリセットされる。
isync−restartパケットでのサイクルカウントは2つの可能な型として再定義されている。最後のハードウェアリセットから参照される64ビット「グローバル」カウント、および(すべてのスレッドの中から)最後のisync−restartパケットからのスレッドサイクル数を指示する16ビットオフセットカウント。
2バイト300および3バイト310のサイクルカウントパケットに加えて、本開示は、16ビットのペイロードに32ビットの値を入れるために3バイトパケット320を提供する。現在の主題では、1バイトのヘッダーおよび4バイトのペイロードを含む5バイトのパケットは、図14に示されるように定義される。各スレッドについては、開示されたプロセスはカウントグローバルスレッドサイクルを維持する。遭遇する最初のisync−periodicパケットについては、プロセスはグローバルスレッドサイクルをそのパケットの注釈を付けられた値に設定し、その値により前のアトムに注釈を付ける。その後、グローバルスレッドサイクルは1だけインクリメントされる。アトム(E、N、S、W)に遭遇するといつでも、プロセスはそのアトムにグローバルスレッドサイクルによって注釈を付け、グローバルスレッドカウントを1だけインクリメントする。プロセスは、各アトムにプログラムカウンタ値を割当てるために通常として、ストリームをデコンプレスしてもよい。この点では以前のように、トレースされているすべてのスレッドのすべてのサイクルはそれに関連したグローバルスレッドサイクルを有する。
図15は、本開示に適切なものとしてpheader format4パケット330の一実施形態を示す。pheaderパケットは異なる場合に生成されてもよい。例えば、パケットの中にこれ以上のアトムを保持することができない場合、およびbranch−address、プロファイルまたはisync−periodicパケットが生成される場合、pheaderはアトムストリーム内のそれぞれのパケットの位置をマークするために生成される。フォーマット1pheaderパケットは3つのアトムペイロードフィールドがあってもよい。0から1のEアトム(フィールド2)が後続する0から3のNアトム(フィールド1)が後続する0から31のEのアトム(フィールド0)。フォーマット1pheaderパケットを生成するための規則は以下であってもよい。最高でのアトムEカウントおよび現在のアトムがEである。カウントされたEは、フィールド0に入り、現在のEアトムはフィールド2に入れられてもよい。最高でのアトムNカウント(カウントは現在のNアトムを含んでいる)。カウントされたEは、フィールド0に入れられ、Nアトムカウントはフィールド1に入れられてもよい。現在のアトムはEであり、Nアトムカウントは0でない。カウントされたEおよびNアトムカウントは、フィールド0およびフィールド1に配置されてもよく、現在のEアトムはフィールド2に配置されてもよい。現在のアトムがWであり、EまたはNアトムが未決の場合、現在のEおよびNカウントはペイロードフィールド0およびフィールド1で送り出されてもよい。アトムブレークおよび未決のW−アトムがない場合、現在のEおよびNカウントはフィールド0およびフィールド1に配置されてもよく、また、現在のアトムがEである場合、それはフィールド2に配置されてもよい。
図16は、開示された主題の実施形態での使用のためのasyncパケット340を表す。asyncパケット長はより長いサイクルカウントフィールドを調整し、例えば10バイトを含んでいてもよい。async−periodicカウンタもasyncパケットがいつ生成されるかを定義するために用いられてもよい。asyncパケットは、ETMの周期的なカウンタが達する場合は常に、未決のものとしてマークされる。asyncパケットは単独で現れなければならないし、他のパケットが生成される場合は常に未決のままである。asyncカウンタはグローバルでかつ、パケットバイトがFIFOに送られる場合は常に、ディクリメントされてもよい。
要約すると、開示された主題は、実行トレース処理での使用についてマルチスレッドプロセッサを有するインタースレッドトレースアライメントのための方法およびシステムを提供する。従って開示された主題は、共通所定イベントに関するタイミングデータを記録することを含んでいる。上記のイベントは、実行トレーシングを開始された最後のスレッドからのサイクル数かもしれないし、実行トレーシングを終了された全てのスレッドからのサイクル数かもしれない。スレッドが実行トレーシングを開始するサイクル数は、実行トレーシングのタイミングを維持するための共通所定イベントに参照される。共通所定イベントに関するデータはその後、スレッドが実行トレーシングを開始した時と関連づけるために更新されてもよい。結果はすべてのスレッドに関連したタイミングデータを整列させることを可能にする。相互関係があった記録は、すべての動作するスレッドに関してタイミングデータを同期させると同様に、マルチスレッドプロセッサにおいて動作するスレッドに関する相互依存の実行トレーシング情報を再構成することを可能にする。
上記でわかるように、インタリーブされたマルチスレッドプロセッサを含むマルチスレッドデジタル信号プロセッサでマルチスレッドプロセッサによるインタースレッドトレースアライメントについて本明細書で記述された処理特徴および機能は、種々の手法で実装されてもよい。例えば、DSP 40は上記動作を行うだけでなく、本実施形態は特定用途向け集積回路(ASIC)、マイクロコントローラ、デジタル信号プロセッサまたはここに記述された機能を行うように設計された他の電子回路において実装されてもよい。さらに、ここで記述されたプロセスと特徴は、上記の種々の信号および命令処理システムによる読み出しおよび実行に関して、磁気記録媒体、光学の記録媒体、または他の記録媒体に記憶されてもよい。従って、好ましい実施形態の先の詳細な説明は、いずれか当業者がクレームされた主題を作るか用いることを可能にするために提供される。これらの実施形態への種々の変更は当業者に即座に明白になり、本明細書で定義された総括的な原理は、革新的な能力の使用のない他の実施形態に適用されてもよい。このように、クレームされた主題は、本明細書で示された実施形態に限定的のようには意図されず、本明細書で開示された原理と新規な特徴に一致する最も広い範囲を与えられるべきである。
開示された主題の特徴、性質および利点は、参照文字のようなものが全体にわたって対応して同一になる図面と共に得られたときに以下で述べられる詳細な説明からより明白になってもよい。
図1はここで開示された種々の実施形態のうちの1つを実装してもよい通信システムの単純化されたブロック図である。 図2は本開示の教えを先へ進めるためのDSPアーキテクチャを示す。 図3はこの開示された主題の技術的な利点を組込むマルチスレッドデジタル信号プロセッサの一実施形態のアーキテクチャブロック図を提供する。 図4は本開示のISDB/JTAGインターフェースの特徴を適用するデジタル信号プロセッサコアのある態様を開示する。 図5は本開示が関係する動作のデバッギングモードを含む、デジタル信号プロセッサのオペレーティングモードに適用可能なプロセスフロー図を与える。 図6は本開示の埋め込まれたトレースマクロセルの全体の機能概観を表すブロック図を提供する。 図7は、開示された埋め込まれたトレースマクロセルプロセスおよびシステムのトリガーブロック回路を示す。 図8はこの開示されたインタースレッドトレースアライメントプロセスの重要な概念を示す。 図9は開示された主題において適用可能なものとしてパケット生成ユニットの機能概要を示す。 図10は現在開示された主題の命令に適用可能な種々のアトムに関する定義の表を示す。 図11は本開示に役立つものとして32ビットのTIDフィールドをサポートする本開示に関するブランチアドレスパケットを提供する。 図12は現在開示されたプロセスで使用されるisync−restartパケットの典型的な内容を与える。 図13は現在開示された主題をサポートするためのisync−periodicパケットの実施形態を表す。 図14はこの開示されたプロセスで使用されるサイクルカウントパケットを与える。 図15は本開示に適切なものとしてpheaderフォーマット4パケットの一実施形態を示す。 図16は開示された主題の実施形態により使用のためのasyncパケットを表す。 図17は、本出願に関する参考図である。
上記でわかるように、インタリーブされたマルチスレッドプロセッサを含むマルチスレッドデジタル信号プロセッサでマルチスレッドプロセッサによるインタースレッドトレースアライメントについて本明細書で記述された処理特徴および機能は、種々の手法で実装されてもよい。例えば、DSP 40は上記動作を行うだけでなく、本実施形態は特定用途向け集積回路(ASIC)、マイクロコントローラ、デジタル信号プロセッサまたはここに記述された機能を行うように設計された他の電子回路において実装されてもよい。さらに、ここで記述されたプロセスと特徴は、上記の種々の信号および命令処理システムによる読み出しおよび実行に関して、磁気記録媒体、光学の記録媒体、または他の記録媒体に記憶されてもよい。従って、好ましい実施形態の先の詳細な説明は、いずれか当業者がクレームされた主題を作るか用いることを可能にするために提供される。これらの実施形態への種々の変更は当業者に即座に明白になり、本明細書で定義された総括的な原理は、革新的な能力の使用のない他の実施形態に適用されてもよい。このように、クレームされた主題は、本明細書で示された実施形態に限定的のようには意図されず、本明細書で開示された原理と新規な特徴に一致する最も広い範囲を与えられるべきである。
以下に出願当初の請求項を付記する。
(1)
実行トレーシングプロセスの間にマルチスレッドプロセッサのスレッド間のインタースレッドトレースタイミングアライメントのための方法であって、
共通所定イベントに関するタイミングデータを記録し、前記共通所定イベントはコアプロセッサ実行トレーシング中に前記マルチスレッドプロセッサの全ての動作スレッドによって参照可能であり、
前記共通所定イベントに関連するスレッドに関する実行トレーシングのタイミングを維持するための前記共通所定イベントへの実行トレーシングを前記スレッドが開始する時間を参照し、
前記スレッドが実行トレーシングを開始した前記時間に関連づけるために、前記共通所定イベントを更新し、その結果、実行トレーシングが発生している前記マルチスレッドプロセッサの全ての他のスレッドに関連したタイミングデータに実行トレーシングを前記スレッドが開始した前記時間を整合させる方法。
(2)
前記共通所定イベントを、最後のスレッドが実行トレーシングをオンした時間に関連づけることをさらに具備する(1)の方法。
(3)
前記共通所定イベントを、全てのスレッドが実行トレーシングをオフしてからのマルチスレッドプロセッササイクル数に関連づけることをさらに具備する(1)の方法。
(4)
複数のデータパケットに前記共通所定イベントを記録することをさらに具備する(1)の方法。
(5)
前記共通所定イベントに関連した複数のデータパケットを用いて、前記マルチスレッドプロセッサにおいて動作するスレッドに関して相互関係のある実行トレーシング情報を再構成することをさらに具備する(1)の方法。
(6)
前記共通所定イベントに関する前記タイミングデータを同期させることをさらに具備する(1)の方法。
(7)
前記共通所定イベントの発生からのサイクルのグローバルカウントを生成することをさらに具備する(1)の方法。
(8)
前記共通所定イベントからのサイクルのグローバルカウントを用いて、実行トレーシングを行うすべてのスレッド間でのインタースレッドタイミングデータを再確立することをさらに具備する(1)の方法。
(9)
データ損失の前記イベントにおいて、データ損失を決定し、前記データ損失に応じて前記共通所定イベントからのサイクルのグローバルカウントを用いて、実行トレーシングを行うすべてのスレッド間でインタースレッドタイミングデータを再確立することをさらに具備する(1)の方法。
(10)
ゼロ値を介して繰り返されるグローバルカウンタのイベントにおいてすべてのスレッドに関する同期パケットを生成することをさらに具備する(1)の方法。
(11)
デジタル信号プロセッサと関連する動作に関するデジタル信号プロセッサデバッギングシステムであって、マルチスレッドソフトウェア実行フローの間にマルチスレッドプロセッサのスレッドに関して相互に関係するタイミングデータへの能力を含むシステムであって、
共通所定イベントに関するタイミングデータを記録するための複数のオフセットフィールドと、
前記共通所定イベントはコアプロセッサ実行トレーシング中に前記マルチスレッドプロセッサの全ての動作スレッドによって参照可能であり、
前記共通所定イベントに関連するスレッドに関する実行トレーシングのタイミングを維持するための前記共通所定イベントへの実行トレーシングを前記スレッドが開始する時間を参照するための複数の時間参照命令パケットと、
前記スレッドが実行トレーシングを開始した前記時間に関連づけるために、前記共通所定イベントを更新し、その結果、実行トレーシングが発生している前記マルチスレッドプロセッサの全ての他のスレッドに関連したタイミングデータに実行トレーシングを前記スレッドが開始した前記時間を整合させるための複数の時間参照更新パケットと、を具備するデジタル信号プロセッサデバッギングシステム。
(12)
前記共通所定イベントを、最後のスレッドが実行トレーシングをオンした時間に関連づけるための複数の命令および回路網をさらに具備する(11)のデジタル信号プロセッサデバッギングシステム。
(13)
前記共通所定イベントを、全てのスレッドが実行トレーシングをオフしてからのマルチスレッドプロセッササイクル数に関連づけるための複数の命令および回路網をさらに具備する(11)のデジタル信号プロセッサデバッギングシステム。
(14)
複数のデータパケットに前記共通所定イベントを記録するための複数の命令および回路網をさらに具備する(11)のデジタル信号プロセッサデバッギングシステム。
(15)
前記共通所定イベントに関連した複数のデータパケットを用いて、前記マルチスレッドプロセッサにおいて動作するスレッドに関して相互関係のある実行トレーシング情報を再構成するための複数の命令および回路網をさらに具備する(11)のデジタル信号プロセッサデバッギングシステム。
(16)
前記共通所定イベントに関する前記タイミングデータを同期させるための複数の命令および回路網をさらに具備する(11)のデジタル信号プロセッサデバッギングシステム。
(17)
前記共通所定イベントの発生からのサイクルのグローバルカウントを生成するための複数の命令および回路網をさらに具備する(11)のデジタル信号プロセッサデバッギングシステム。
(18)
前記共通所定イベントからのサイクルのグローバルカウントを用いて、実行トレーシングを行うすべてのスレッド間でのインタースレッドタイミングデータを再確立するための複数の命令および回路網をさらに具備する(11)のデジタル信号プロセッサデバッギングシステム。
(19)
データ損失を決定し、前記データ損失に応じて前記共通所定イベントからのサイクルのグローバルカウントを用いて、実行トレーシングを行うすべてのスレッド間でインタースレッドタイミングデータを再確立するための実行トレーシング命令をさらに具備する(11)のデジタル信号プロセッサデバッギングシステム。
(20)
ゼロ値を介して繰り返されるグローバルカウンタのイベントにおいてすべてのスレッドに関する同期パケットを生成するための複数の同期命令をさらに具備する(11)のデジタル信号プロセッサデバッギングシステム。
(21)
パーソナル電子デバイスを支援する動作に関するマルチスレッドデジタル信号プロセッサであって、実行トレーシングプロセスを行い、これに関連して前記マルチスレッドプロセッサのスレッド中でインタースレッドトレースタイミングを整合させるデバッギング手段を具備しているプロセッサにおいて、
共通所定イベントに関するタイミングデータを記録する手段と、
前記共通所定イベントはコアプロセッサ実行トレーシング中に前記マルチスレッドプロセッサの全ての動作スレッドによって参照可能であり、
前記共通所定イベントに関連するスレッドに関する実行トレーシングのタイミングを維持するための前記共通所定イベントへの実行トレーシングを前記スレッドが開始する時間を参照する手段と、
前記スレッドが実行トレーシングを開始した前記時間に関連づけるために、前記共通所定イベントを更新し、その結果、実行トレーシングが発生している前記マルチスレッドプロセッサの全ての他のスレッドに関連したタイミングデータに実行トレーシングを前記スレッドが開始した前記時間を整合させる手段と、を具備するデジタル信号プロセッサシステム。
(22)
前記共通所定イベントを、最後のスレッドが実行トレーシングをオンした時間に関連づける手段をさらに具備する(21)のデジタル信号プロセッサシステム。
(23)
前記共通所定イベントを、全てのスレッドが実行トレーシングをオフしてからのマルチスレッドプロセッササイクル数に関連づける手段をさらに具備する(21)のデジタル信号プロセッサシステム。
(24)
複数のデータパケットに前記共通所定イベントを記録する手段をさらに具備する(21)のデジタル信号プロセッサシステム。
(25)
前記共通所定イベントに関連した複数のデータパケットを用いて、前記マルチスレッドプロセッサにおいて動作するスレッドに関して相互関係のある実行トレーシング情報を再構成する手段をさらに具備する(21)のデジタル信号プロセッサシステム。
(26)
前記共通所定イベントに関する前記タイミングデータを同期させるための複数の命令および回路網をさらに具備する(21)のデジタル信号プロセッサシステム。
(27)
前記共通所定イベントの発生からのサイクルのグローバルカウントを生成する手段をさらに具備する(21)のデジタル信号プロセッサシステム。
(28)
前記共通所定イベントからのサイクルのグローバルカウントを用いて、実行トレーシングを行うすべてのスレッド間でのインタースレッドタイミングデータを再確立する手段をさらに具備する(21)のデジタル信号プロセッサシステム。
(29)
データ損失を決定し、前記データ損失に応じて前記共通所定イベントからのサイクルのグローバルカウントを用いて、実行トレーシングを行うすべてのスレッド間でインタースレッドタイミングデータを再確立する手段をさらに具備する(21)のデジタル信号プロセッサシステム。
(30)
ゼロ値を介して繰り返されるグローバルカウンタのイベントにおいてすべてのスレッドに関する同期パケットを生成する手段をさらに具備する(21)のデジタル信号プロセッサシステム。
(31)
実行トレーシングプロセスを行うことと、これに関連してマルチスレッドプロセッサのスレッド中でインタースレッドトレースタイミングを整合させることを含むマルチスレッドデジタル信号プロセッサをデバッギングするコンピュータ読取可能な具現化されるプログラムコード手段を有するコンピュータ使用可能な媒体であって、
共通所定イベントに関するタイミングデータを記録するコンピュータ読取可能なプログラムコード手段と、
前記共通所定イベントはコアプロセッサ実行トレーシング中に前記マルチスレッドプロセッサの全ての動作スレッドによって参照可能であり、
前記共通所定イベントに関連するスレッドに関する実行トレーシングのタイミングを維持するための前記共通所定イベントへの実行トレーシングを前記スレッドが開始する時間を参照するコンピュータ読取可能なプログラムコード手段と、
前記スレッドが実行トレーシングを開始した前記時間に関連づけるために、前記共通所定イベントを更新し、その結果、実行トレーシングが発生している前記マルチスレッドプロセッサの全ての他のスレッドに関連したタイミングデータに実行トレーシングを前記スレッドが開始した前記時間を整合させるコンピュータ読取可能なプログラムコード手段と、を具備するコンピュータ使用可能な媒体。
(32)
前記共通所定イベントを、最後のスレッドが実行トレーシングをオンした時間に関連づけるコンピュータ読取可能なプログラムコード手段をさらに具備する(31)のコンピュータ使用可能な媒体。
(33)
前記共通所定イベントを、全てのスレッドが実行トレーシングをオフしてからのマルチスレッドプロセッササイクル数に関連づけるコンピュータ読取可能なプログラムコード手段をさらに具備する(31)のコンピュータ使用可能な媒体。
(34)
複数のデータパケットに前記共通所定イベントを記録するコンピュータ読取可能なプログラムコード手段をさらに具備する(31)のコンピュータ使用可能な媒体。
(35)
前記共通所定イベントに関連した複数のデータパケットを用いて、前記マルチスレッドプロセッサにおいて動作するスレッドに関して相互関係のある実行トレーシング情報を再構成するコンピュータ読取可能なプログラムコード手段をさらに具備する(31)のコンピュータ使用可能な媒体。

Claims (35)

  1. 実行トレーシングプロセスの間にマルチスレッドプロセッサのスレッド間のインタースレッドトレースタイミングアライメントのための方法であって、
    共通所定イベントに関するタイミングデータを記録し、
    前記共通所定イベントはコアプロセッサ実行トレーシング中に前記マルチスレッドプロセッサの全ての動作スレッドによって参照可能であり、
    前記共通所定イベントに関連するスレッドに関する実行トレーシングのタイミングを維持するための前記共通所定イベントへの実行トレーシングを前記スレッドが開始する時間を参照し、
    前記スレッドが実行トレーシングを開始した前記時間に関連づけるために、前記共通所定イベントを更新し、その結果、実行トレーシングが発生している前記マルチスレッドプロセッサの全ての他のスレッドに関連したタイミングデータに実行トレーシングを前記スレッドが開始した前記時間を整列させる方法。
  2. 前記共通所定イベントを、最後のスレッドが実行トレーシングをオンした時間に関連づけることをさらに具備する請求項1の方法。
  3. 前記共通所定イベントを、全てのスレッドが実行トレーシングをオフしてからのマルチスレッドプロセッササイクル数に関連づけることをさらに具備する請求項1の方法。
  4. 複数のデータパケットに前記共通所定イベントを記録することをさらに具備する請求項1の方法。
  5. 前記共通所定イベントに関連した複数のデータパケットを用いて、前記マルチスレッドプロセッサにおいて動作するスレッドに関して相互関係のある実行トレーシング情報を再構成することをさらに具備する請求項1の方法。
  6. 前記共通所定イベントに関する前記タイミングデータを同期させることをさらに具備する請求項1の方法。
  7. 前記共通所定イベントの発生からのサイクルのグローバルカウントを生成することをさらに具備する請求項1の方法。
  8. 前記共通所定イベントからのサイクルのグローバルカウントを用いて、実行トレーシングを行うすべてのスレッド間でのインタースレッドタイミングデータを再確立することをさらに具備する請求項1の方法。
  9. データ損失の前記イベントにおいて、データ損失を決定し、前記データ損失に応じて前記共通所定イベントからのサイクルのグローバルカウントを用いて、実行トレーシングを行うすべてのスレッド間でインタースレッドタイミングデータを再確立することをさらに具備する請求項1の方法。
  10. ゼロ値を介して繰り返されるグローバルカウンタのイベントにおいてすべてのスレッドに関する同期パケットを生成することをさらに具備する請求項1の方法。
  11. デジタル信号プロセッサと関連する動作に関するデジタル信号プロセッサデバッギングシステムであって、マルチスレッドソフトウェア実行フローの間にマルチスレッドプロセッサのスレッドに関して相互に関係するタイミングデータへの能力を含むシステムであって、
    共通所定イベントに関するタイミングデータを記録するための複数のオフセットフィールドと、
    前記共通所定イベントはコアプロセッサ実行トレーシング中に前記マルチスレッドプロセッサの全ての動作スレッドによって参照可能であり、
    前記共通所定イベントに関連するスレッドに関する実行トレーシングのタイミングを維持するための前記共通所定イベントへの実行トレーシングを前記スレッドが開始する時間を参照するための複数の時間参照命令パケットと、
    前記スレッドが実行トレーシングを開始した前記時間に関連づけるために、前記共通所定イベントを更新し、その結果、実行トレーシングが発生している前記マルチスレッドプロセッサの全ての他のスレッドに関連したタイミングデータに実行トレーシングを前記スレッドが開始した前記時間を整列させるための複数の時間参照更新パケットと、を具備するデジタル信号プロセッサデバッギングシステム。
  12. 前記共通所定イベントを、最後のスレッドが実行トレーシングをオンした時間に関連づけるための複数の命令および回路網をさらに具備する請求項11のデジタル信号プロセッサデバッギングシステム。
  13. 前記共通所定イベントを、全てのスレッドが実行トレーシングをオフしてからのマルチスレッドプロセッササイクル数に関連づけるための複数の命令および回路網をさらに具備する請求項11のデジタル信号プロセッサデバッギングシステム。
  14. 複数のデータパケットに前記共通所定イベントを記録するための複数の命令および回路網をさらに具備する請求項11のデジタル信号プロセッサデバッギングシステム。
  15. 前記共通所定イベントに関連した複数のデータパケットを用いて、前記マルチスレッドプロセッサにおいて動作するスレッドに関して相互関係のある実行トレーシング情報を再構成するための複数の命令および回路網をさらに具備する請求項11のデジタル信号プロセッサデバッギングシステム。
  16. 前記共通所定イベントに関する前記タイミングデータを同期させるための複数の命令および回路網をさらに具備する請求項11のデジタル信号プロセッサデバッギングシステム。
  17. 前記共通所定イベントの発生からのサイクルのグローバルカウントを生成するための複数の命令および回路網をさらに具備する請求項11のデジタル信号プロセッサデバッギングシステム。
  18. 前記共通所定イベントからのサイクルのグローバルカウントを用いて、実行トレーシングを行うすべてのスレッド間でのインタースレッドタイミングデータを再確立するための複数の命令および回路網をさらに具備する請求項11のデジタル信号プロセッサデバッギングシステム。
  19. データ損失を決定し、前記データ損失に応じて前記共通所定イベントからのサイクルのグローバルカウントを用いて、実行トレーシングを行うすべてのスレッド間でインタースレッドタイミングデータを再確立するための実行トレーシング命令をさらに具備する請求項11のデジタル信号プロセッサデバッギングシステム。
  20. ゼロ値を介して繰り返されるグローバルカウンタのイベントにおいてすべてのスレッドに関する同期パケットを生成するための複数の同期命令をさらに具備する請求項11のデジタル信号プロセッサデバッギングシステム。
  21. パーソナル電子デバイスを支援する動作に関するマルチスレッドデジタル信号プロセッサであって、実行トレーシングプロセスを行い、これに関連して前記マルチスレッドプロセッサのスレッド中でインタースレッドトレースタイミングを整列させるデバッギング手段を具備しているプロセッサにおいて、
    共通所定イベントに関するタイミングデータを記録する手段と、
    前記共通所定イベントはコアプロセッサ実行トレーシング中に前記マルチスレッドプロセッサの全ての動作スレッドによって参照可能であり、
    前記共通所定イベントに関連するスレッドに関する実行トレーシングのタイミングを維持するための前記共通所定イベントへの実行トレーシングを前記スレッドが開始する時間を参照する手段と、
    前記スレッドが実行トレーシングを開始した前記時間に関連づけるために、前記共通所定イベントを更新し、その結果、実行トレーシングが発生している前記マルチスレッドプロセッサの全ての他のスレッドに関連したタイミングデータに実行トレーシングを前記スレッドが開始した前記時間を整列させる手段と、を具備するデジタル信号プロセッサシステム。
  22. 前記共通所定イベントを、最後のスレッドが実行トレーシングをオンした時間に関連づける手段をさらに具備する請求項21のデジタル信号プロセッサシステム。
  23. 前記共通所定イベントを、全てのスレッドが実行トレーシングをオフしてからのマルチスレッドプロセッササイクル数に関連づける手段をさらに具備する請求項21のデジタル信号プロセッサシステム。
  24. 複数のデータパケットに前記共通所定イベントを記録する手段をさらに具備する請求項21のデジタル信号プロセッサシステム。
  25. 前記共通所定イベントに関連した複数のデータパケットを用いて、前記マルチスレッドプロセッサにおいて動作するスレッドに関して相互関係のある実行トレーシング情報を再構成する手段をさらに具備する請求項21のデジタル信号プロセッサシステム。
  26. 前記共通所定イベントに関する前記タイミングデータを同期させるための複数の命令および回路網をさらに具備する請求項21のデジタル信号プロセッサシステム。
  27. 前記共通所定イベントの発生からのサイクルのグローバルカウントを生成する手段をさらに具備する請求項21のデジタル信号プロセッサシステム。
  28. 前記共通所定イベントからのサイクルのグローバルカウントを用いて、実行トレーシングを行うすべてのスレッド間でのインタースレッドタイミングデータを再確立する手段をさらに具備する請求項21のデジタル信号プロセッサシステム。
  29. データ損失を決定し、前記データ損失に応じて前記共通所定イベントからのサイクルのグローバルカウントを用いて、実行トレーシングを行うすべてのスレッド間でインタースレッドタイミングデータを再確立する手段をさらに具備する請求項21のデジタル信号プロセッサシステム。
  30. ゼロ値を介して繰り返されるグローバルカウンタのイベントにおいてすべてのスレッドに関する同期パケットを生成する手段をさらに具備する請求項21のデジタル信号プロセッサシステム。
  31. 実行トレーシングプロセスを行うことと、これに関連してマルチスレッドプロセッサのスレッド中でインタースレッドトレースタイミングを整列させることを含むマルチスレッドデジタル信号プロセッサをデバッギングするコンピュータ読取可能な具現化されるプログラムコード手段を有するコンピュータ使用可能な媒体であって、
    共通所定イベントに関するタイミングデータを記録するコンピュータ読取可能なプログラムコード手段と、
    前記共通所定イベントはコアプロセッサ実行トレーシング中に前記マルチスレッドプロセッサの全ての動作スレッドによって参照可能であり、
    前記共通所定イベントに関連するスレッドに関する実行トレーシングのタイミングを維持するための前記共通所定イベントへの実行トレーシングを前記スレッドが開始する時間を参照するコンピュータ読取可能なプログラムコード手段と、
    前記スレッドが実行トレーシングを開始した前記時間に関連づけるために、前記共通所定イベントを更新し、その結果、実行トレーシングが発生している前記マルチスレッドプロセッサの全ての他のスレッドに関連したタイミングデータに実行トレーシングを前記スレッドが開始した前記時間を整列させるコンピュータ読取可能なプログラムコード手段と、を具備するコンピュータ使用可能な媒体。
  32. 前記共通所定イベントを、最後のスレッドが実行トレーシングをオンした時間に関連づけるコンピュータ読取可能なプログラムコード手段をさらに具備する請求項31のコンピュータ使用可能な媒体。
  33. 前記共通所定イベントを、全てのスレッドが実行トレーシングをオフしてからのマルチスレッドプロセッササイクル数に関連づけるコンピュータ読取可能なプログラムコード手段をさらに具備する請求項31のコンピュータ使用可能な媒体。
  34. 複数のデータパケットに前記共通所定イベントを記録するコンピュータ読取可能なプログラムコード手段をさらに具備する請求項31のコンピュータ使用可能な媒体。
  35. 前記共通所定イベントに関連した複数のデータパケットを用いて、前記マルチスレッドプロセッサにおいて動作するスレッドに関して相互関係のある実行トレーシング情報を再構成するコンピュータ読取可能なプログラムコード手段をさらに具備する請求項31のコンピュータ使用可能な媒体。
JP2017076029A 2007-04-11 2017-04-06 マルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステム Expired - Fee Related JP6423037B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/734,199 US8484516B2 (en) 2007-04-11 2007-04-11 Inter-thread trace alignment method and system for a multi-threaded processor
US11/734,199 2007-04-11

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014043027A Division JP2014142946A (ja) 2007-04-11 2014-03-05 マルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステム

Publications (3)

Publication Number Publication Date
JP2017152014A true JP2017152014A (ja) 2017-08-31
JP2017152014A5 JP2017152014A5 (ja) 2018-07-05
JP6423037B2 JP6423037B2 (ja) 2018-11-14

Family

ID=39854865

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2010503252A Withdrawn JP2010524140A (ja) 2007-04-11 2008-04-11 マルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステム
JP2014043027A Withdrawn JP2014142946A (ja) 2007-04-11 2014-03-05 マルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステム
JP2017076029A Expired - Fee Related JP6423037B2 (ja) 2007-04-11 2017-04-06 マルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステム

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2010503252A Withdrawn JP2010524140A (ja) 2007-04-11 2008-04-11 マルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステム
JP2014043027A Withdrawn JP2014142946A (ja) 2007-04-11 2014-03-05 マルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステム

Country Status (8)

Country Link
US (1) US8484516B2 (ja)
EP (1) EP2037367B1 (ja)
JP (3) JP2010524140A (ja)
KR (1) KR101072687B1 (ja)
CN (1) CN101874238B (ja)
ES (1) ES2678413T3 (ja)
HU (1) HUE038872T2 (ja)
WO (1) WO2008128107A2 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8380966B2 (en) 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8370806B2 (en) 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
US8533530B2 (en) 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8341604B2 (en) 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
GB2453174B (en) * 2007-09-28 2011-12-07 Advanced Risc Mach Ltd Techniques for generating a trace stream for a data processing apparatus
US8001428B2 (en) * 2007-10-29 2011-08-16 Arm Limited Packing trace protocols within trace streams
US9098625B2 (en) * 2008-02-29 2015-08-04 International Business Machines Corporation Viral trace
US8140903B2 (en) * 2009-04-16 2012-03-20 International Business Machines Corporation Hardware process trace facility
JP2011100388A (ja) * 2009-11-09 2011-05-19 Fujitsu Ltd トレース情報収集装置,トレース情報処理装置,およびトレース情報収集方法
US8484517B2 (en) * 2009-12-03 2013-07-09 Infineon Technologies Ag High compression program flow trace
US8893092B1 (en) * 2010-03-12 2014-11-18 F5 Networks, Inc. Using hints to direct the exploration of interleavings in a multithreaded program
US8972995B2 (en) * 2010-08-06 2015-03-03 Sonics, Inc. Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads
US20120042212A1 (en) * 2010-08-10 2012-02-16 Gilbert Laurenti Mixed Mode Processor Tracing
US8880958B2 (en) * 2011-09-20 2014-11-04 Qualcomm Incorporated Interleaved architecture tracing and microarchitecture tracing
WO2013147866A1 (en) * 2012-03-30 2013-10-03 Intel Corporation System and method for real time instruction tracing
US8910125B2 (en) * 2012-09-27 2014-12-09 International Business Machines Corporation Monitoring software performance
US8954546B2 (en) * 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US9928159B2 (en) 2013-02-26 2018-03-27 Qualcomm Incorporated System and method to select a packet format based on a number of executed threads
CN103226328B (zh) * 2013-04-21 2015-06-24 中国矿业大学(北京) 采集次数控制模式下的多线程数据采集系统同步控制方法
US9218223B2 (en) * 2013-08-13 2015-12-22 Qualcomm Incorporated Barrier synchronization with dynamic width calculation
US9996354B2 (en) * 2015-01-09 2018-06-12 International Business Machines Corporation Instruction stream tracing of multi-threaded processors
US10719420B2 (en) * 2015-02-10 2020-07-21 International Business Machines Corporation System level testing of multi-threading functionality including building independent instruction streams while honoring architecturally imposed common fields and constraints
US10509713B2 (en) 2015-08-18 2019-12-17 Telefonaktiebolaget Lm Ericsson (Publ) Observation by a debug host with memory model and timing offset calculation between instruction and data traces of software execution carried on in a debug target having a main memory and a cache arrangement
US10013240B2 (en) * 2016-06-21 2018-07-03 Advanced Micro Devices, Inc. Fingerprinting of redundant threads using compiler-inserted transformation code
US20180054374A1 (en) * 2016-08-19 2018-02-22 Andes Technology Corporation Trace information encoding apparatus, encoding method thereof, and readable computer medium
US10031834B2 (en) 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10042737B2 (en) 2016-08-31 2018-08-07 Microsoft Technology Licensing, Llc Program tracing for time travel debugging and analysis
US10031833B2 (en) * 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10489273B2 (en) 2016-10-20 2019-11-26 Microsoft Technology Licensing, Llc Reuse of a related thread's cache while recording a trace file of code execution
US10310963B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using index bits in a processor cache
US10310977B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using a processor cache
US10324851B2 (en) 2016-10-20 2019-06-18 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using way-locking in a set-associative processor cache
CN115408291A (zh) * 2016-11-11 2022-11-29 微软技术许可有限责任公司 用于时间旅行调试和分析的计算机系统、计算机系统处实施的方法和硬件存储设备
US10540250B2 (en) 2016-11-11 2020-01-21 Microsoft Technology Licensing, Llc Reducing storage requirements for storing memory addresses and values
US10169194B2 (en) * 2017-03-22 2019-01-01 International Business Machines Corporation Multi-thread sequencing
US10365987B2 (en) * 2017-03-29 2019-07-30 Google Llc Synchronous hardware event collection
US10318332B2 (en) 2017-04-01 2019-06-11 Microsoft Technology Licensing, Llc Virtual machine execution tracing
US10296442B2 (en) * 2017-06-29 2019-05-21 Microsoft Technology Licensing, Llc Distributed time-travel trace recording and replay
US10459824B2 (en) 2017-09-18 2019-10-29 Microsoft Technology Licensing, Llc Cache-based trace recording using cache coherence protocol data
US10558572B2 (en) 2018-01-16 2020-02-11 Microsoft Technology Licensing, Llc Decoupling trace data streams using cache coherence protocol data
US11907091B2 (en) 2018-02-16 2024-02-20 Microsoft Technology Licensing, Llc Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches
US10496537B2 (en) 2018-02-23 2019-12-03 Microsoft Technology Licensing, Llc Trace recording by logging influxes to a lower-layer cache based on entries in an upper-layer cache
US10642737B2 (en) 2018-02-23 2020-05-05 Microsoft Technology Licensing, Llc Logging cache influxes by request to a higher-level cache

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005056380A (ja) * 2003-08-07 2005-03-03 Arm Ltd データを処理する方法と装置およびコンピュータ・プログラム製品

Family Cites Families (161)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4080650A (en) 1976-07-28 1978-03-21 Bell Telephone Laboratories, Incorporated Facilitating return from an on-line debugging program to a target program breakpoint
US4669059A (en) 1983-11-07 1987-05-26 Motorola, Inc. Method and apparatus in a data processor for selectively disabling a power-down instruction
US4901307A (en) 1986-10-17 1990-02-13 Qualcomm, Inc. Spread spectrum multiple access communication system using satellite or terrestrial repeaters
US5136717A (en) 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
US5093914A (en) 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5103459B1 (en) 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
US5551043A (en) 1994-09-07 1996-08-27 International Business Machines Corporation Standby checkpoint to prevent data loss
US6467054B1 (en) 1995-03-13 2002-10-15 Compaq Computer Corporation Self test for storage device
CA2228014C (en) 1995-07-31 2008-07-22 Verifone, Inc. Method and apparatus for operating resources under control of a security module or other secure processor
US5544311A (en) 1995-09-11 1996-08-06 Rockwell International Corporation On-chip debug port
US5951696A (en) 1996-11-14 1999-09-14 Hewlett-Packard Company Debug system with hardware breakpoint trap
JPH10207790A (ja) * 1997-01-20 1998-08-07 Fuji Xerox Co Ltd 入出力制御装置
US5915083A (en) 1997-02-28 1999-06-22 Vlsi Technology, Inc. Smart debug interface circuit for efficiently for debugging a software application for a programmable digital processor device
US5835705A (en) 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US6275868B1 (en) 1997-03-12 2001-08-14 Microsoft Corporation Script Engine interface for multiple languages
US6094729A (en) 1997-04-08 2000-07-25 Advanced Micro Devices, Inc. Debug interface including a compact trace record storage
US6314530B1 (en) 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
US5944841A (en) * 1997-04-15 1999-08-31 Advanced Micro Devices, Inc. Microprocessor with built-in instruction tracing capability
US6199181B1 (en) 1997-09-09 2001-03-06 Perfecto Technologies Ltd. Method and system for maintaining restricted operating environments for application programs or operating systems
US6697935B1 (en) 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
US6212544B1 (en) 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6567839B1 (en) 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6029248A (en) 1997-12-15 2000-02-22 Lucent Technologies Inc. Corporation Locking system to protect a powered component interface from erroneous access by an attached, powered-off component
US6018759A (en) 1997-12-22 2000-01-25 International Business Machines Corporation Thread switch tuning tool for optimal performance in a computer processor
US6106571A (en) * 1998-01-29 2000-08-22 Applied Microsystems Corporation Relocatable instrumentation tags for testing and debugging a computer program
US6249907B1 (en) 1998-03-24 2001-06-19 International Business Machines Corporation Method system and article of manufacture for debugging a computer program by encoding user specified breakpoint types at multiple locations in the computer program
US6757829B1 (en) 1998-05-29 2004-06-29 Texas Instruments Incorporated Program debugging system for secure computing device having secure and non-secure modes
DE19835610A1 (de) 1998-08-06 2000-02-10 Siemens Ag Programmgesteuerte Einheit und Verfahren zum Debuggen derselben
US6480818B1 (en) 1998-11-13 2002-11-12 Cray Inc. Debugging techniques in a multithreaded environment
US6532553B1 (en) 1998-12-08 2003-03-11 Arm Limited Debugging data processing systems
US6343371B1 (en) * 1999-01-14 2002-01-29 Compaq Computer Corporation System and method for statically detecting potential race conditions in multi-threaded computer programs
US6535905B1 (en) 1999-04-29 2003-03-18 Intel Corporation Method and apparatus for thread switching within a multithreaded processor
US6341347B1 (en) 1999-05-11 2002-01-22 Sun Microsystems, Inc. Thread switch logic in a multiple-thread processor
US6714958B1 (en) 1999-07-28 2004-03-30 International Business Machines Corporation Detecting and causing latent deadlocks in multi-threaded programs
CN1148656C (zh) 1999-09-07 2004-05-05 皇家菲利浦电子有限公司 面向线程的调试
US6684348B1 (en) 1999-10-01 2004-01-27 Hitachi, Ltd. Circuit for processing trace information
WO2001033351A1 (fr) 1999-10-29 2001-05-10 Fujitsu Limited Architecture de processeur
GB2362730B (en) 1999-12-23 2004-02-11 St Microelectronics Sa Computer register watch
US6665802B1 (en) 2000-02-29 2003-12-16 Infineon Technologies North America Corp. Power management and control for a microcontroller
EP1130519A3 (en) 2000-03-02 2009-09-30 Texas Instruments Incorporated System and method for automatically configuring an emulation system
US6754852B2 (en) * 2000-03-02 2004-06-22 Texas Instruments Incorporated Debug trigger builder
US6725391B2 (en) 2000-03-02 2004-04-20 Texas Instruments Incorporated Clock modes for a debug port with on the fly clock switching
US6934937B1 (en) 2000-03-30 2005-08-23 Broadcom Corporation Multi-channel, multi-service debug on a pipelined CPU architecture
JP2001331340A (ja) 2000-05-19 2001-11-30 Nec Corp コードチェックによるモード切替方式および方法
US20020065646A1 (en) 2000-09-11 2002-05-30 Waldie Arthur H. Embedded debug system using an auxiliary instruction queue
US6691251B2 (en) 2000-11-30 2004-02-10 Palmsource, Inc. On-chip debugging system emulator
US7020871B2 (en) 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US6915416B2 (en) 2000-12-28 2005-07-05 Texas Instruments Incorporated Apparatus and method for microcontroller debugging
US7093236B2 (en) * 2001-02-01 2006-08-15 Arm Limited Tracing out-of-order data
US7134116B1 (en) * 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
US7069544B1 (en) 2001-04-30 2006-06-27 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data
US7076804B2 (en) 2001-05-11 2006-07-11 International Business Machines Corporation Automated program resource identification and association
US7073059B2 (en) 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
US7752423B2 (en) * 2001-06-28 2010-07-06 Intel Corporation Avoiding execution of instructions in a second processor by committing results obtained from speculative execution of the instructions in a first processor
US7823131B2 (en) 2001-06-29 2010-10-26 Mentor Graphics Corporation Debugger for a hardware-implemented operating system
JP2003177938A (ja) 2001-12-07 2003-06-27 Fujitsu Ltd 電子装置及びそのデバッグ認証方法
US7131114B2 (en) 2001-07-16 2006-10-31 Texas Instruments Incorporated Debugger breakpoint management in a multicore DSP device having shared program memory
US7134002B2 (en) 2001-08-29 2006-11-07 Intel Corporation Apparatus and method for switching threads in multi-threading processors
US7017084B2 (en) * 2001-09-07 2006-03-21 Network Appliance Inc. Tracing method and apparatus for distributed environments
US6901527B2 (en) * 2001-09-21 2005-05-31 International Business Machines Corporation Synchronizing multiple time stamps distributed within a computer system with main time of day register
DE10148109B4 (de) * 2001-09-28 2006-10-12 Infineon Technologies Ag Verfahren zum Speichern oder Weiterleiten von Daten
US7080289B2 (en) * 2001-10-10 2006-07-18 Arm Limited Tracing multiple data access instructions
US20030074650A1 (en) 2001-10-17 2003-04-17 Tankut Akgul Debugger operating system for embedded systems
US6834360B2 (en) 2001-11-16 2004-12-21 International Business Machines Corporation On-chip logic analyzer
US20030135720A1 (en) 2002-01-14 2003-07-17 International Business Machines Corporation Method and system using hardware assistance for instruction tracing with secondary set of interruption resources
US7254716B1 (en) 2002-02-13 2007-08-07 Lsi Corporation Security supervisor governing allowed transactions on a system bus
US7213134B2 (en) 2002-03-06 2007-05-01 Hewlett-Packard Development Company, L.P. Using thread urgency in determining switch events in a temporal multithreaded processor unit
US6615371B2 (en) 2002-03-11 2003-09-02 American Arium Trace reporting method and system
US7055139B2 (en) 2002-03-28 2006-05-30 Hewlett-Packard Development Company, L.P. Multiprocess debugging using multiple conventional debuggers
GB2389432B (en) * 2002-06-07 2005-09-07 Advanced Risc Mach Ltd Instruction tracing in data processing systems
US7003703B2 (en) 2002-06-21 2006-02-21 Sandbridge Technologies, Inc. Method of interleaving/deinterleaving in a communication system
US7516446B2 (en) * 2002-06-25 2009-04-07 International Business Machines Corporation Method and apparatus for efficient and precise datarace detection for multithreaded object-oriented programs
US7185319B2 (en) 2002-07-09 2007-02-27 Microsoft Corporation Debugging distributed applications
US7512954B2 (en) * 2002-07-29 2009-03-31 Oracle International Corporation Method and mechanism for debugging a series of related events within a computer system
US7346895B2 (en) * 2002-07-31 2008-03-18 International Business Machines Corporation Method of tracing data collection
US7529258B2 (en) * 2002-08-09 2009-05-05 Lecroy Corporation Method and system for cascading analyzer trace memories
DE10244922B4 (de) 2002-09-25 2009-08-13 Infineon Technologies Ag Programmgesteuerte Einheit und Verfahren zum Debuggen von einer programmgesteuerten Einheit ausgeführten Programmen
US7519862B2 (en) 2002-10-11 2009-04-14 Broadcom Corporation Software programmable verification tool having a single built-in self-test (BIST) module for testing and debugging multiple memory modules in a device under test (DUT)
US7360117B1 (en) 2002-10-24 2008-04-15 Verisilicon Holdings (Cayman Islands) Co. Ltd. In-circuit emulation debugger and method of operation thereof
US7370210B2 (en) 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
GB2411254B (en) 2002-11-18 2006-06-28 Advanced Risc Mach Ltd Monitoring control for multi-domain processors
GB2396034B (en) 2002-11-18 2006-03-08 Advanced Risc Mach Ltd Technique for accessing memory in a data processing apparatus
GB2396930B (en) 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
US6948155B2 (en) * 2002-11-22 2005-09-20 Texas Instruments Incorporated Little offset in multicycle event maintaining cycle accurate tracing of stop events
US7219333B2 (en) * 2002-11-22 2007-05-15 Texas Instruments Incorporated Maintaining coherent synchronization between data streams on detection of overflow
US7047451B2 (en) * 2002-11-22 2006-05-16 Texas Instruments Incorporated Tracing program counter addresses using native program counter format and instruction count format
US7131113B2 (en) * 2002-12-12 2006-10-31 International Business Machines Corporation System and method on generating multi-dimensional trace files and visualizing them using multiple Gantt charts
US7325169B2 (en) * 2002-12-17 2008-01-29 Texas Instruments Incorporated Apparatus and method for trace stream identification of multiple target processor events
JP4436036B2 (ja) * 2002-12-18 2010-03-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、トレース処理方法、プログラム及び記録媒体
US6798713B1 (en) 2003-01-31 2004-09-28 Zilog, Inc. Implementing software breakpoints
JP3974063B2 (ja) 2003-03-24 2007-09-12 松下電器産業株式会社 プロセッサおよびコンパイラ
US7142246B2 (en) 2003-03-31 2006-11-28 Macronix International Co., Ltd. Apparatus and method for de-interlacing video, including 3:2 pulldown video
US7013400B2 (en) 2003-04-24 2006-03-14 International Business Machines Corporation Method for managing power in a simultaneous multithread processor by loading instructions into pipeline circuit during select times based on clock signal frequency and selected power mode
US7047337B2 (en) * 2003-04-24 2006-05-16 International Business Machines Corporation Concurrent access of shared resources utilizing tracking of request reception and completion order
US7159101B1 (en) * 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
US7222262B2 (en) 2003-08-05 2007-05-22 Newisys, Inc. Methods and devices for injecting commands in systems having multiple multi-processor clusters
US7383537B2 (en) 2003-08-20 2008-06-03 Microsoft Corporation Debugging an application that employs rights-managed content
US7600221B1 (en) * 2003-10-06 2009-10-06 Sun Microsystems, Inc. Methods and apparatus of an architecture supporting execution of instructions in parallel
US7321957B2 (en) 2003-10-24 2008-01-22 Intel Corporation Debugging a trusted component in a system
TWI226757B (en) 2003-11-11 2005-01-11 Benq Corp Address generator for block interleaving
US7328429B2 (en) * 2003-11-13 2008-02-05 Intel Corporation Instruction operand tracing for software debug
US7383540B2 (en) 2003-12-12 2008-06-03 International Business Machines Corporation Altering execution flow of a computer program
US7475303B1 (en) 2003-12-29 2009-01-06 Mips Technologies, Inc. HyperJTAG system including debug probe, on-chip instrumentation, and protocol
US7461407B2 (en) 2004-02-05 2008-12-02 Research In Motion Limited Debugging port security interface
US7360203B2 (en) * 2004-02-06 2008-04-15 Infineon Technologies North America Corp. Program tracing in a multithreaded processor
US7263599B2 (en) * 2004-02-06 2007-08-28 Infineon Technologies Thread ID in a multithreaded processor
JP4347082B2 (ja) * 2004-02-23 2009-10-21 日本電気株式会社 イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム
JP4409349B2 (ja) 2004-04-27 2010-02-03 Okiセミコンダクタ株式会社 デバッグ回路およびデバッグ制御方法
US7945900B2 (en) * 2004-04-29 2011-05-17 Marvell International Ltd. Debugging tool for debugging multi-threaded programs
US20060253894A1 (en) 2004-04-30 2006-11-09 Peter Bookman Mobility device platform
US7380276B2 (en) 2004-05-20 2008-05-27 Intel Corporation Processor extensions and software verification to support type-safe language environments running with untrusted code
US7558920B2 (en) 2004-06-30 2009-07-07 Intel Corporation Apparatus and method for partitioning a shared cache of a chip multi-processor
US7363523B2 (en) 2004-08-31 2008-04-22 Intel Corporation Method and apparatus for controlling power management state transitions
JP4520788B2 (ja) 2004-07-29 2010-08-11 富士通株式会社 マルチスレッドプロセッサ
US7278058B1 (en) * 2004-08-25 2007-10-02 Unisys Corporation Methods and apparatus to diagnose software
US7814308B2 (en) 2004-08-27 2010-10-12 Microsoft Corporation Debugging applications under different permissions
GB0420442D0 (en) 2004-09-14 2004-10-20 Ignios Ltd Debug in a multicore architecture
US9038070B2 (en) 2004-09-14 2015-05-19 Synopsys, Inc. Debug in a multicore architecture
US20060129999A1 (en) * 2004-11-16 2006-06-15 Sony Computer Entertainment Inc. Methods and apparatus for using bookmarks in a trace buffer
US7783925B2 (en) 2004-12-02 2010-08-24 Texas Instruments Incorporated Receiving control, data, and control segments of communication scan packets
US7681014B2 (en) 2005-02-04 2010-03-16 Mips Technologies, Inc. Multithreading instruction scheduler employing thread group priorities
US7418629B2 (en) * 2005-02-11 2008-08-26 International Business Machines Corporation Synchronizing triggering of multiple hardware trace facilities using an existing system bus
US7472378B2 (en) 2005-02-23 2008-12-30 International Business Machines Corporation Breakpoint management and reconciliation for embedded scripts in a business integration language specified program process
US20060206902A1 (en) 2005-03-14 2006-09-14 Sujat Jamil Variable interleaved multithreaded processor method and system
US7369954B2 (en) * 2005-03-17 2008-05-06 International Business Machines Corporation Event tracing with time stamp compression and history buffer based compression
US7747985B2 (en) * 2005-03-18 2010-06-29 Microsoft Corporation Conformance testing of multi-threaded and distributed software systems
US7917907B2 (en) 2005-03-23 2011-03-29 Qualcomm Incorporated Method and system for variable thread allocation and switching in a multithreaded processor
JP2006285430A (ja) 2005-03-31 2006-10-19 Matsushita Electric Ind Co Ltd Cpuメモリアクセス解析装置
US7657875B2 (en) * 2005-04-12 2010-02-02 International Business Machines Corporation System and method for collecting a plurality of metrics in a single profiling run of computer code
US7698686B2 (en) * 2005-04-15 2010-04-13 Microsoft Corporation Method and apparatus for performance analysis on a software program
US7558984B2 (en) 2005-04-27 2009-07-07 Texas Instruments Incorporated Apparatus and method for test and debug of a processor/core having advanced power management
US7536597B2 (en) 2005-04-27 2009-05-19 Texas Instruments Incorporated Apparatus and method for controlling power, clock, and reset during test and debug procedures for a plurality of processor/cores
US8881114B2 (en) * 2005-05-16 2014-11-04 Texas Instruments Incorporated Stored program writing stall information when a processor stalls waiting for another processor
US7730545B2 (en) 2005-05-23 2010-06-01 Arm Limited Test access control for secure integrated circuits
US7548911B2 (en) * 2005-05-28 2009-06-16 Microsoft Corporation Diagnosing problems in distributed systems
JP2007026051A (ja) 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 情報処理装置および情報処理システム
US8694621B2 (en) * 2005-08-19 2014-04-08 Riverbed Technology, Inc. Capture, analysis, and visualization of concurrent system and network behavior of an application
WO2007028227A1 (en) 2005-09-09 2007-03-15 Ibm Canada Limited - Ibm Canada Limitee Integrating different programming language debug tools for observing thread execution
US9146832B2 (en) 2005-10-14 2015-09-29 Oracle International Corporation Debugging functionality embedded in an application
JP4388518B2 (ja) 2005-11-01 2009-12-24 株式会社ソニー・コンピュータエンタテインメント スレッドデバッグ装置、スレッドデバッグ方法及びプログラム
US7770155B2 (en) * 2005-11-03 2010-08-03 International Business Machines Corporation Debugger apparatus and method for indicating time-correlated position of threads in a multi-threaded computer program
US7802233B2 (en) * 2006-01-30 2010-09-21 Microsoft Corporation Automated display of trace historical data
US20070234306A1 (en) * 2006-03-31 2007-10-04 Klinger Uwe D Tracing performance of machine-readable instructions
US20080034350A1 (en) 2006-04-05 2008-02-07 Conti Gregory R System and Method for Checking the Integrity of Computer Program Code
KR20070109432A (ko) 2006-05-11 2007-11-15 삼성전자주식회사 커널 인지 디버깅 장치 및 방법
US20070288906A1 (en) * 2006-05-16 2007-12-13 Texas Instruments Incorporated Efficient transfer of timing information
US7849315B2 (en) 2006-05-22 2010-12-07 General Dynamics C4 Systems, Inc. Method for managing operability of on-chip debug capability
GB0613289D0 (en) * 2006-07-04 2006-08-16 Imagination Tech Ltd Synchronisation of execution threads on a multi-threaded processor
US8301870B2 (en) * 2006-07-27 2012-10-30 International Business Machines Corporation Method and apparatus for fast synchronization and out-of-order execution of instructions in a meta-program based computing system
US8051162B2 (en) * 2006-07-28 2011-11-01 Hewlett-Packard Development Company, L.P. Data assurance in server consolidation
US7702055B2 (en) * 2006-09-29 2010-04-20 Mips Technologies, Inc. Apparatus and method for tracing processor state from multiple clock domains
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US8533530B2 (en) 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8380966B2 (en) 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8341604B2 (en) 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
US7657791B2 (en) 2006-11-15 2010-02-02 Qualcomm Incorporated Method and system for a digital signal processor debugging during power transitions
US8370806B2 (en) 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
DE102007009909B4 (de) * 2007-02-28 2016-09-08 Globalfoundries Inc. Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung
US9195462B2 (en) * 2007-04-11 2015-11-24 Freescale Semiconductor, Inc. Techniques for tracing processes in a multi-threaded processor
US7681078B2 (en) 2007-05-18 2010-03-16 Freescale Semiconductor, Inc. Debugging a processor through a reset event
US8001428B2 (en) * 2007-10-29 2011-08-16 Arm Limited Packing trace protocols within trace streams

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005056380A (ja) * 2003-08-07 2005-03-03 Arm Ltd データを処理する方法と装置およびコンピュータ・プログラム製品

Also Published As

Publication number Publication date
WO2008128107A3 (en) 2010-03-18
KR101072687B1 (ko) 2011-10-11
EP2037367B1 (en) 2018-04-18
JP6423037B2 (ja) 2018-11-14
HUE038872T2 (hu) 2018-12-28
CN101874238B (zh) 2013-10-16
CN101874238A (zh) 2010-10-27
WO2008128107A2 (en) 2008-10-23
JP2010524140A (ja) 2010-07-15
KR20090130243A (ko) 2009-12-21
ES2678413T3 (es) 2018-08-10
US20080256396A1 (en) 2008-10-16
JP2014142946A (ja) 2014-08-07
US8484516B2 (en) 2013-07-09
EP2037367A2 (en) 2009-03-18
EP2037367A3 (en) 2010-03-17

Similar Documents

Publication Publication Date Title
JP6423037B2 (ja) マルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステム
KR101078934B1 (ko) 개선된 디지털 신호 프로세서 디버깅 동작들을 위한 임베디드 트레이스 매크로셀
CN101529392B (zh) 在非侵入性数字信号处理器调试期间用于指令填充操作的方法和系统
KR101155673B1 (ko) 신뢰받은/신뢰받지 못한 디지털 신호 프로세서 디버깅 동작들을 위한 방법 및 시스템
US8370806B2 (en) Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
CN101084488B (zh) 用于调试在多核架构中执行的多线程程序的方法和系统
KR101097620B1 (ko) 전력 트랜지션들 동안 디지털 신호 프로세서를 위한 방법 및 시스템

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180528

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180528

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180719

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181017

R150 Certificate of patent or registration of utility model

Ref document number: 6423037

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees