JP2013254508A - エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル - Google Patents

エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル Download PDF

Info

Publication number
JP2013254508A
JP2013254508A JP2013151110A JP2013151110A JP2013254508A JP 2013254508 A JP2013254508 A JP 2013254508A JP 2013151110 A JP2013151110 A JP 2013151110A JP 2013151110 A JP2013151110 A JP 2013151110A JP 2013254508 A JP2013254508 A JP 2013254508A
Authority
JP
Japan
Prior art keywords
digital signal
signal processor
debugging
intrusive
generating
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.)
Pending
Application number
JP2013151110A
Other languages
English (en)
Inventor
Codrescu Lucian
ルシアン・コドレスキュ
c anderson William
ウィリアム・シー.・アンダーソン
Venkumahanti Suresh
スレッシュ・ベンクマハンティ
Achiele Giannini Louis
ルイス・アチレ・ジアンニニ
Pila Manogikmer
マノジクマー・パイラ
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 JP2013254508A publication Critical patent/JP2013254508A/ja
Pending 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
    • 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/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control

Landscapes

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

Abstract

【課題】DSPの実行の流れに関する詳細な情報をリアルタイムで非侵入方式でキャプチャする。
【解決手段】ETM232は、DSPパイプラインをモニタリングする。ETMは、この情報を用いて、フィルタリング/トリガリング及び圧縮/パケット化を実行する。フィルタリング及びトリガリング動作は、JTAGインタフェース84を通じてユーザーによってプログラミングされる。DSP実行情報をは、圧縮/パケット化ユニット236によって受け取られ、トレースポートを通じてETMから送出され、オフチップ又はオンチップのトレースレポジトリ240に入れられる。ISDB82において実行するソフトウェアコンポーネントであるデコンプレッサ構成要素246は、パケットストリームをトレースレポジトリから取り出し、プログラム画像とともに、DSPの実行の流れを再構築し、ユーザーがDSPパイプラインを詳細に見ることを可能にする。
【選択図】図8

Description

開示される主題は、例えばデータ通信及び同様の用途において用いることができるデータ処理システム及びプロセスに関するものである。本開示は、より具体的には、エンハンストデバッギング動作に関する埋め込み型トレースマクロセルを提供及び利用することを含むデジタル信号処理デバッギング動作に関する斬新な及び改良された方法及びシステムに関するものである。
電気通信及びその他の種類の電子装置とそれをサポートする映像、複雑な音声、テレビ会議及びその他のリッチソフトウェアアプリケーションでは、信号処理を含むことがますます多くなっている。信号処理は、複雑であるが反復的なアルゴリズムにおいて高速な数学計算及びデータ生成を行うことが要求される。多くのアプリケーションは、リアルタイムでの演算が要求され、すなわち、信号は時間の連続関数であり、数値処理のためにサンプリングしてデジタル信号に変換しなければならない。プロセッサは、到着したサンプルに関する個別の演算を行うアルゴリズムを実行しなければならない。
デジタル信号プロセッサ(DSP)のアーキテクチャは、該アルゴリズムを処理するように最適化される。優れた信号処理エンジンの特徴は、高速で柔軟な算術演算ユニットと、演算ユニットへの又は演算ユニットからの制限されないデータフローと、演算ユニット内における拡張された精密な動的範囲と、デュアルアドレス生成器と、効率的なプログラムシーケンシングと、プログラミングの容易さと、を含む。
DSP技術の1つの有望な用途は、通信システム、例えば、衛星又は地上リンクを通じてのユーザー間における音声とデータの通信、テキストメッセージ送信、及びその他の用途をサポートする符号分割多元接続(CDMA)システム、を含む。多元接続通信システムにおけるCDMA技術の使用は、“SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS”(衛星又は地上中継器を用いた拡散スペクトル多元接続通信システム)という題名を有する米国特許番号4,901,307及び“SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSET SYSTEM”(CDMAセルラーテレハンドセットシステムにおいて波形を生成するためのシステム及び方法)という題名を有する米国特許番号5,103,459において開示されており、両特許とも、請求される主題の譲受人に譲渡されている。
CDMAシステムは、典型的には、1つ以上の基準に準拠するように設計される。1つの該第1世代の基準は、“二重モード広帯域拡散スペクトルセルラーシステムに関するTIA/EIA/IS−95端末−基地局互換性基準”であり、以下ではIS−95基準と呼ばれる。IS−95CDMAシステムは、音声データ及びパケットデータを送信することができる。第1世代よりも効率的にパケットデータを送信することができるより新しい世代の基準が、“第3世代パートナーシッププロジェクト”(3GPP)と呼ばれるコンソーシアムによって提供され、一般人が簡単に入手可能である一組の文書、例えば、文書番号3G TS 25.211、3G TS 25.212、3G TS 25.213、及び3G TS 25.214、において具体化されている。3GPP基準は、以下ではW−CDMA基準と呼ばれる。
例えばW−DCMA基準を採用する複雑なDSP運用ソフトウェアは、強固な開発ツールが要求される。該開発ツールは、符号の生成、インテグレーション、試験、デバッギング、及びアプリケーション性能の評価のための開発ツールを含むことができる。ソフトウェア又は複雑なDSPアプリケーション、例えば高度な電気通信アプリケーション、を開発及び運用する際には、精巧であるがその一方で非侵入型のデバッギングソフトウェアが必要である。すなわち、デバッギングソフトウェアアプリケーションは、ソフトウェアの欠陥及び運用上の問題の訂正をモニタリング、試験、及びサポートする上で十分に強固でなければならないだけでなく、デバッギング動作中にコアプロセッサソフトウェアと干渉しないように動作できなければならない。さもないと、コア処理ソフトウェア内のいずれの問題も、該デバッギングソフトウェアを使用中に検出することができず又は適切に検出することができない。
デバッギング動作中に、関連づけられたプロセッサに関するトレーシング機能を実行する非侵入型ソフトウェアデバッギングプロセスソフトウェアを関連づける必要がある。該システムは、プロセッサの状態に関する情報を特定のイベントの前後にキャプチャするのを許可するために該情報を提供することができる。同時に、該特長は、DSPが全速で動作する間でさえもプロセッサの性能に対して有意な負担をかけることができない。該プロセスは、非侵入型デバッギング動作と組み合わせて、例えば特定の一連の条件後に、選択されたトレース情報をキャプチャするためのソフトウェアコンフィギュレーションを提供することができる。該モニタリング及び記録機構は、様々な型のコンフィギュレーション及びブレークポイントの決定と許可を可能にするためにマルチスレッド化プロセッサ内でのスレッド選択可能動作に関して非侵入型デバッギングプロセスと連係として動作することもできる。
DSPの実行の流れに関する詳細な情報をリアルタイムで非侵入方式でキャプチャする能力を有する侵入型デバッギングシステムがさらに必要である。
トレース情報の生成をDSPコア内の対象となる1つ以上の領域に限定して焦点を合わせる能力をそれ自体が有する非侵入型デバッギング機構と連係して動作するためのソフトウェア実行モニタリング及び記録システムがさらに必要である。
ソフトウェア実行及びモニタリングプロセス及びシステムの動作に応じることができる非侵入型デバッギングシステムがさらに必要である。ソフトウェア実行モニタリング及び記録システムの動作の開始及び移行時にデバッギングシステム自体を開始させるための方法が明らかに必要である。従って、該特長は、ソフトウェア実行モニタリング及び記録システムと密接に及び動作上の相乗効果を有する形で機能するために関連づけられた非侵入型デバッギングシステムによって提供することができる。
マルチスレッド化デジタル信号プロセッサを含むデジタル信号プロセッサに関する非侵入型のスレッド選択式デバッギング方法及びシステムを提供するための技法が開示され、前記技法は、コアプロセッサの動作において一定のモニタリングされたイベントに応じてデバッギング動作を開始するための埋め込み型トレースマクロセルと協力する。ここにおいて開示される前記方法及びシステムは、デジタル信号プロセッサの動作と、パソコン、パーソナルデジタルアシスタント、ワイヤレスハンドセット、及び同様の電子デバイスにおいて動作するアプリケーションを含むますます強力になるソフトウェアアプリケーションに関するデジタル信号プロセッサ命令の効率的な使用と、の両方を向上させ、さらに関連するデジタルプロセッサの速度及びサービス品質を向上させる。
開示される主題の一側面により、プロセッサにおけるソフトウェア実行の流れに関連するリアルタイム情報をキャプチャすることによってソフトウェア命令デバッギング動作を向上させるための方法及びシステムが提供される。前記方法及びシステムは、前記デジタル信号プロセッサと関連づけられたコアプロセッサ内においてコアプロセッサプロセスを動作させるための命令と回路とを含む。前記開示される主題は、前記デジタル信号プロセッサのデバイス機構内において非侵入型デバッギングプロセスを動作させる。前記コア処理プロセスと関連づけられたソフトウェア実行の予め決められた側面を、埋め込み型トレースマクロセルを用いてリアルタイムで非侵入方式でモニタリングし、前記モニタリングすることは前記プロセッサにおいてリアルタイムで発生する。前記埋め込み型トレースマクロセルは、前記非侵入方式でモニタリングされたソフトウェア実行の選択可能な側面を記録し、前記非侵入方式でモニタリングされたソフトウェア実行の前記選択可能な側面内において発生するイベントに応じて少なくとも1つのブレークポイントを生成する。本開示は、少なくとも1つのブレークポイントに応じて前記非侵入型デバッギングプロセスの側面を制御する。その結果、前記開示される主題は、マルチスレッド化デジタル信号プロセッサの全スレッドまでに関するマルチスレッドトレース命令シーケンシング及びタイミングに関して前記非侵入型デバッギングプロセスと協力する。
開示される主題のこれらの利点とその他の利点、及び追加の斬新な特長は、ここにおいて提供される説明から明確になるであろう。この発明の概要の意図は、請求される主題に関する包括的な説明を提供することではなく、主題の機能の一部について簡単に概説することである。ここにおいて提供されるその他のシステム、方法、特長及び利点は、以下の図及び発明を実施するための形態を検討し次第当業者に明確になるであろう。これらのすべての追加のシステム、方法、特長及び利点は、この説明の中に含められ、さらに添付される請求項の適用範囲内に含められることが意図される。
開示される主題の特長、性質、及び利点は、以下の発明を実施するための形態を図面と併読することでより明確になるであろう。なお、図面全体において同様の参照文字は同様の要素を識別する。
本実施形態を実装することができる通信システムの単純化されたブロック図である。 本実施形態の教示を実行するためのDSPアーキテクチャを示す。 開示される主題の技術的利点を提供するデジタル信号プロセッサの一実施形態のアーキテクチャブロック図を提供する。 開示される主題のデバッギング機構とコアプロセッサとの間のインタフェースを示す。 デバッギング動作モードを含むデジタル信号プロセッサの動作モードに適用可能なプロセス流れ図である。 本開示の一実施形態に適用可能なブレークポイント処理方式を示した図である。 ここにおいて開示されるデバッギング手順を実行するためのISDB JTAGSync回路の側面を示した図である。 本開示の埋め込み型トレースマクロセルの全体的機能図を描いたブロック図である。 開示される埋め込み型トレースマクロセルプロセス及びシステムのトリガブロック回路を示した図である。 開示される埋め込み型トレースマクロセルの動作において有用なスレッドマッチング回路の一実施形態を示した図である。 様々なトレーシング及びシーケンシング機能を実行するために本開示と関連して動作可能なシーケンサ及びトリガブロック回路を示した図である。 本開示のシーケンシング及びより複雑な動作に対して適用可能な条件及びレジスタの表を提供する図である。 本開示のシーケンシング及びより複雑な動作に対して適用可能な条件及びレジスタの表を提供する図である。
マルチスレッド化デジタル信号プロセッサに関する非侵入型スレッド選択式デバッギング方法及びシステムに関する開示される主題は、ここにおいて提示される利益が有利であることができるあらゆる型のマルチスレッド化処理に関して用途を有する。1つの該用途は、電気通信において現れ、特に、1つ以上のデジタル信号処理回路を採用するワイヤレスハンドセットにおいて現れる。該ワイヤレスハンドセットをどのようにして用いることができるかについて説明するために、図1は、開示される割り込み処理方法及びシステムの提示される実施形態を実装することができる通信システム10の単純化されたブロック図を提供する。送信機ユニット12において、データは、データ源14から、1つ以上のアナログ信号を生成するためにデータをフォーマット化、符号化、及び処理する送信(TX)データプロセッサ16に、典型的にはブロックで送信される。次に、アナログ信号が、ベースバンド信号を変調、フィルタリング、増幅、及びアップコンバージョンして変調された信号を生成する送信機(TMTR)18に提供される。変調された信号は、アンテナ20を介して1つ以上の受信機ユニットに送信される。
受信機ユニット22においては、送信された信号は、アンテナ24によって受信されて受信機(RCVR)26に提供される。受信機26内において、受信された信号が増幅、フィルタリング、ダウンコンバージョン、復調、及びデジタル化されて同相の(I)及び(Q)サンプルが生成される。これらのサンプルは、受信(RX)データプロセッサ28によって復号及び処理されて送信されたデータが復元される。受信機ユニット22における復号及び処理は、送信機ユニット12において実行される符号化及び処理を補完する形で実行される。復元されたデータは、データシンク30に提供される。
上述される信号処理は、音声、映像、パケットデータ、メッセージ送信、及びその他の種類の通信を一方向に送信することをサポートする。双方向通信システムは、2方向データ送信をサポートする。しかしながら、説明を単純化するため、図1には他方の方向に関する信号処理は示されていない。通信システム10は、地上リンクを通じてのユーザー間における音声及びデータ通信をサポートする符号分割多元接続(CDMA)システム、時分割多元接続(TDMA)通信システム(例えば、GSM(登録商標)システム)、周波数分割多元接続(FDMA)通信システム、又はその他の多元接続通信システムであることができる。1つの特定の実施形態においては、通信システム10は、W−CDMA基準に準拠するCDMAシステムである。
図2は、図1の送信データプロセッサ16及び受信データプロセッサ28として働くことができるDSP40アーキテクチャを示す。DSP40は、ここにおいて提示される教示及び概念を実効的に用いることができる非常に数多くの可能なデジタル信号プロセッサ実施形態のうちの1つの実施形態を表すにすぎないことを強調する。従って、DSP40においては、スレッドT0:T5(参照番号42乃至52)は、異なるスレッドからの命令の組を含む。回路54は、命令アクセス機構を表し、スレッドT0:T5に関する命令をフェッチするために用いられる。回路54に関する命令は、命令待ち行列56内に入れられる。命令待ち行列56内の命令は、プロセッサパイプライン66内に発行する準備が整った状態である(下記参照)。命令待ち行列56から、発行論理回路58によって単一のスレッド、例えばスレッドT0、を選択することができる。選択されたスレッドのレジスタファイル60が読まれ、読み取られたデータがSLOT0:SLOT3に関する実行データ経路62に送られる。SLOT0:SLOT3は、この例においては、本実施形態において採用されるパケットグループの結合に関するものである。
実行データ経路62からの出力は、DSP40の動作からの結果を戻すために、同じく個々のスレッドT0:T5を受け入れるように構成されたレジスタファイル書き込み回路64に向かう。従って、回路54及びそれよりも前からレジスタファイル書き込み回路64までのデータ経路は、処理パイプライン66を形成する。本実施形態は、最大で6つのスレッドT0:T5を有する単一のプロセッサを用いてヘテロジニアスエレメントプロセッサ(HEP)システムの混成を採用することができる。プロセッサパイプライン66は、6つのステージを有し、これは、回路54からレジスタ60及び64にデータ項目をフェッチするために必要な最低限のプロセッササイクル数と一致する。DSP40は、プロセッサパイプライン66内の異なるスレッドT0:T5の命令を同時並行して実行する。すなわち、DSP40は、6つの独立したプログラムカウンタ、プロセッサパイプライン66内のスレッドT0:T5の命令を区別するための内部タギング機構、及びスレッドスイッチをトリガする機構を提供する。スレッドスイッチオーバーヘッドは、ゼロからほんの数サイクルまで変動する。
従ってDSP40は、非常に様々な信号、画像、及び映像処理用途において高性能及び低電力であるように設計された汎用デジタル信号プロセッサを提供する。図3は、開示される主題の1つの表現に関する関連づけられた命令セットアーキテクチャの幾つかの側面を含むDSP40アーキテクチャの概要を示す。DSP40アーキテクチャの実装は、インターリービングされたマルチスレッド化(IMT)をサポートする。この実行モデルにおいては、ハードウェアは、パイプライン内の異なるスレッドからの命令をインターリービングすることによって複数のハードウェアスレッドT0:T5の同時並行実行をサポートする。この特長は、DSP40がコアとメモリの高い利用を依然として維持しながら積極的なクロック周波数を含むことを許容する。IMTは、アウトオブオーダー実行、広範な転送ネットワーク、等の高コストの補償機構を必要とせずに高スループットを提供する。さらに、DSP40は、IMTの変形、例えば、M.アーメド、等による、“Variable Interleaved Multithreaded Processor Method and System”(可変のインターリービングされたマルチスレッド化プロセッサに関する方法及びシステム)及び“Method and System for Variable Thread Allocation and Switching in a Multithreaded Processor”(マルチスレッド化されたプロセッサにおける可変スレッド割り当て及び切り換えに関する方法及びシステム)という題名を有する共通譲渡米国特許出願において開示される変形及び斬新な手法、を含むことができる。
図3は、特に、開示される主題の教示を採用することができる単一のスレッドに対して適用されるDSP40に関するコア処理アーキテクチャ70ブロック図を提供する。ブロック図70は、AXIバス74からバスインタフェース(I/F)73を介して命令を受け取る共有命令キャッシュ72を描き、これらの命令は、混合された16ビットと32ビットの命令を含む。これらの命令は、スレッドT0:T5のシーケンサ76、ユーザー制御レジスタ78、及びスーパバイザ制御レジスタ80に届く。開示される主題のコアレベルシステムアーキテクチャは、JTAGインタフェース84を介してコアプロセッサ70をインタフェースするインシリコンデバッギングシステム(ISDB)82も含み、以下ではこれらの両方がさらに詳細に説明される。
シーケンサ76は、ハイブリッド2方向スーパースカラー命令及び4方向VLIW命令をS−パイプユニット86、M−パイプユニット88、LD[Load]−パイプ90、及びLD/ST[Store]−パイプユニット92に提供し、これらの全ユニットは、汎用レジスタ94と通信する。AXIバス74は、バスI/F73を介して、スレッドT0:T5への共有データキャッシュ96LD/ST命令とも通信する。オプションのL2キャッシュ/TCM98信号は、共有データTCM100を有するLD/ST命令を含み、LD/ST命令は、さらにスレッド汎用レジスタ94に流れる。AHB周辺バス102から、MSM専用コントローラ104は、T0:T5と割り込みを通信し、割り込みコントローラ命令と、デバッギング命令と、タイミング命令と、を含む。グローバル制御レジスタ106は、スレッドT0:T5と制御レジスタ命令を通信する。
従って、DSP40は、6つの仮想DSPコアを含み、各仮想DSPコアは、グローバル制御レジスタ106と、プライベートスーパバイザ制御レジスタ80と、を含む。グローバル制御レジスタ106は、全スレッド間で共有される。各スレッドは、共通データキャッシュ及び共通命令キャッシュを共有する。ロード、ストア、及びフェッチの各動作は、共通のバスインタフェースによって対処される。高性能AXIバス74及びそれよりも低性能のAHBバス102は、データ及び命令トラフィックをオフコアメモリ及び周辺装置に接続するために用いられる。統合されたレベル2メモリ(キャッシュ及び/又はTCM)入力98はオプションである。周辺装置のアクセスは、メモリによってマッピングされるロード及びストアを通じて行うことができる。AHBとAXIとの間における物理アドレスパーティションは、MSMレベルで構成することができる。
明確なことであるが、DSP40に関する提示されるアーキテクチャは、経時で発展及び変化することができる。例えば、DSP40が用いることができる命令キャッシュ数は、6から1に、又はその他のキャッシュ数に変更することができる。TCM100におけるスーパースカラーディスパッチL1データ、及びその他のアーキテクチャ上の側面は、変更することができる。しかしながら、本主題は、非常に様々なコンフィギュレーションにおいて及びDSP40の修正の大規模な系統に関して継続的な関連性を有することができる。
ISDB82は、JTAGインタフェース84を介して、DSP40に関するハードウェアデバッガを提供する。ISDB82は、システム又はスーパバイザ専用レジスタを共有することによってJTAGインタフェース84を通じてソフトウェアデバッグ機能を提供し、これらのレジスタは、1つのスレッドベースのスーパバイザ制御レジスタ80、及び全スレッド間におけるグローバル制御レジスタ106に分割される。システム制御レジスタは、1つのスレッドごとの割り込みと例外制御及び1つのスレッドごとのメモリ管理活動に関して用いられる。グローバルレジスタは、デバッギング動作のためにISDB82と対話することを許容する。
ISDB82は、DSP40が動作する間にソフトウェア開発者が自己のソフトウェアをデバッグするのを可能にする。ISDB82ハードウェアは、ISDB82において動作中のソフトウェアデバッガプログラムと組み合わせることで、DSP40オペレーティングシステムソフトウェアをデバッグするために用いることができる。ISDB82は、デバッギングハードウェアスレッドを個々にサポートする。ユーザーは、スレッド実行を中断すること、スレッドレジスタを閲覧及び変更すること、命令とデータメモリ、単一ステップスレッド、を閲覧及び変更すること、スレッドに命令をスタッフィングすること、及びスレッド実行を再開することができる。信頼されるユーザーは、すべてのISDB82の特長にアクセス可能であり、信頼されないユーザーは、部分組の特長にアクセス可能である。
ISDB82は、プログラムカウンタ上に常駐するISDB82デバッギングソフトウェアと通信するためにデバッガインタフェースカードとインタフェースすることができ、すべてJTAGインタフェース84を通じて行うことができる。ホストデバッガソフトウェアは、ISDB制御レジスタを読み取る及び書き込むことによってISDB82と対話することができる。通信は、例えば、読み取り/書き込みの対象となるISDBレジスタを識別する40ビットパケット、及び32ビットデータペイロードを通じて行うことができる。この動作をサポートするパケットフォーマットは、各々の幅が32ビットであることができる最大で64の制御レジスタであることができる。
ISDB82は、デバッギング動作中にセキュリティを制御するための信頼されるレジスタを含む。ISDB82trustedがセットされた場合は、すべてのISDB82レジスタがデバッガソフトウェアにとって可視であり、すべてのISDBコマンドを使用可能である。ISDB82trustedがクリアされた場合は、ISDB82は、制限された一組の動作のみを許可する。本開示のこれらの側面が以下においてより詳細に説明される。
一定のISDB82レジスタがコアソフトウェアにとって可視であるようにすることができる。これらのレジスタは、スーパバイザ(SUPERVISOR)モード制御レジスタ転送命令を介してアクセス可能である。コア命令は、ブレークポイント命令を含む。ISDBtrustedがセットされたときには、この命令は、実行中のスレッドにデバッギング動作モードに入らせる。この移行は、スレッド制御をISDB82に移行させる。ブレークポイントを実行したスレッドに加えて、その他のスレッドは、ISDB82プログラミングに従って選択的にデバッグ(DEBUG)モード150に入ることができる。ISDB82が信頼されないか又はイネーブルにされない場合は、この命令はNOPとして処理される。好ましいことに、ブレークポイント命令は、パケット内における唯一の命令である。
図4は、開示される主題のデバッギング機構とコアプロセッサとの間におけるISDB/JTAGインタフェース110の重要な側面を示す。DSP40コアアーキテクチャ70と関連して、ISDB82は、ISDB JTAG回路114からの経路JTAGインタフェース経路112を介してJTAG84と通信する。ISDB JTAG回路114は、JTAG84とISDB82との間におけるデータフローを処理する。ISDB JTAG回路114は、ISDB JTAGSync回路116をさらにインタフェースする。ISDB JTAGSync回路116は、ISDBコントローラ118、命令ユニット(IU)150及び制御ユニット(CU)122とさらに通信する。特に、ISDB JTAGSync回路116は、IU150のIU ISDB論理回路及びCU122のCU ISDBコントローラ126をインタフェースする。CU ISDBコントローラ126は、CU ISDB論理回路128、及びISDBコントローラ118と通信する。ISDBコントローラ118からの制御出力は、ISDBデータ出力130と、ISDBリセット信号132と、ISDB割り込み134と、を含む。ISDBコントローラ118へのさらなるインタフェースは、MCDインタフェース136と、ETMブレークトリガー138と、を含む。
ISDB82の様々な構成要素を挙げた後は、以下では、動作について簡単に説明し、さらに、DSP40の非侵入型の信頼される及び信頼されないデバッギング動作を実施するための制御又は論理回路の構成部分を紹介する。ISDBコントローラ118は、(a)様々なISDBレジスタを実装することと、(b)MCD外部ブレークレジスタと再開レジスタ及びETMブレークポイントトリガをさらなる処理のためにCU122に転送する前にDSP40に合わせて同期化することと、(c)コアのデバッグモード状態に基づいてMCDブレークポイント及び再開トリガを生成することと、(d)DSP40サブシステムに送出される信号、例えばISDB割り込み、ブレークポイントイベント、等に関するパイプラインステージを追加すること、とを含む様々なタスクを処理する。
CU122は、(a)ブレークポイントを処理する及び各スレッドへのブレークポイントトリガを生成する、(b)ミクロブレークポイントコマンド及びミクロ再開コマンドを生成する、(c)ISDB82状態及びメールボックスレジスタを維持する、及び(d)一定のISDB82レジスタを実装するというタスクを処理することができる回路及び命令を含む。CU122は、すべてのブレークポイントを処理し、CU ISDBコントローラ126のミクロコマンド生成器へのマクロブレークポイント要求を生成するための図6に示されるようなブレークポイント処理論理(BPL)ブロックを含む。ミクロコマンド生成器は、マクロブレークポイント要求を命令スタッフコマンド、命令ステップ及び再開コマンドとともに処理し、ミクロブレークポイント及び再開コマンドをパイプライン制御のためにCU122に発行する。
CU ISDBコントローラ128は、ブレークポイント及び戻された再開肯定応答信号に基づいてISDB82の状態を維持する。CU ISDBコントローラ126のメールボックス機能は、ホストデバッグソフトウェアとDSP40コアプロセッサとの間の通信に関して用いられるメールボックスレジスタを維持する。これらのメールボックス機能は、ISDB82状態レジスタも含む。
図5は、DSP40の様々なモード制御に関する側面に関する処理モード図140を示し、デバッギングプロセス中におけるISDB82の動作を含む。図5においては、DSP40は、全スレッドに対してグローバルであり個々のスレッドに対してローカルである処理モードをサポートする。各DSP40ハードウェアスレッドは、すべて図5において示されるように、2つの実行モード、ユーザー(USER)モード142とスーパバイザモード144、及び3つの非処理モードすなわち待機(WAIT)モード146、OFFモード148、及びデバッグモード150、を個々にサポートする。スレッドのモードは、その他のスレッドと独立しており、例えば、1つのスレッドは待機モード146であることができ、他のスレッドは、ユーザーモード142であり、以下同様である。
図5の1つのスレッドごとのモード状態図は、様々な命令又はイベントによってサポートされる。これらは、“例外”すなわち内部例外イベントと、“Int”すなわち外部割り込みイベントと、“RTE”すなわち例外モードからのソフトウェアリターン命令と、“SSR”すなわちSSRレジスタ命令の更新と、あらゆるモードから入力することができる“停止”すなわちソフトウェア停止命令と、同じくあらゆるモードから入力することができる“開始”すなわちソフトウェア開始命令と、“トラップ”すなわちソフトウェアトラップ命令と、“待機”すなわちソフトウェア待機命令と、“再開”すなわちソフトウェア再開命令と、“DE”すなわちデバッグイベントと、“DR”すなわちデバッグ命令と、を含む。請求される主題の異なる実装における機能は、ここにおいて提示される機能とわずかに異なることができる一方で、“開始”、“待機”、“再開”、“DE”、及び/又は“DR”の意味は、請求される主題の適用範囲と一致する最も広義の解釈を行うことができる。
レジスタは、DSP40においてユーザーモード142及びスーパバイザモード144の両方において利用可能である。ユーザーモードレジスタは、一組の汎用レジスタ及び一組の制御レジスタに分割される。汎用レジスタは、アドレス生成、スカラー及びベクトル算術を含むすべての汎用演算に関して用いられる。制御レジスタは、ハードウェアループ、プレディケート、等の特殊目的の機能をサポートする。汎用レジスタは、幅が32ビットであり、単一レジスタとして又は2つのレジスタの整列された対としてアクセスすることができる。汎用レジスタファイルは、命令に関する全オペランドを提供し、ロード/ストアに関するアドレスと、数値命令に関するデータオペランドと、ベクトル命令に関するベクトルオペランドと、を含む。
デバッグモード150は、スレッドがISDB82からのコマンドを待っている特別な状態を提供する。例えばソフトウェアブレークポイント命令の実行、ISDB82からのブレークコマンド、又はハードウェアブレークポイントの発生によって、ISDBデバッグイベントが生じるごとに、示されたスレッドは、デバッグモード150に入ることができる。デバッグモード150においては、コアは、JTAGインタフェース84からのコマンドを介してISDB82によって制御される。ISDB82が再開コマンドの実行に起因してスレッドをリリースすると、スレッドは、現在のモード設定に従って動作を再開することができる。スレッドがデバッグモード150にあるときには、ISDB82によって制御され、その他のスレッドによって制御することはできない。デバッグモード150におけるスレッドをターゲットにした、実行中のスレッドからの待機命令、再開命令、開始命令、又は停止命令は、無視することができる。同様に、マスク不可割り込み(NMI)は、デバッグモード150にあるスレッドは無視することができる。
ハードウェアリセット(HARDWARE RESET)モード(図5に示されていない)及びデバッグモード150は、全スレッドに対してグローバルである。ハードウェアリセットピンがアサートされるごとに、あらゆるスレッドがどのような処理状態であるかにかかわらず、DSP40は、ハードウェアリセットモードになることができる。ハードウェアリセットモードにおいては、全レジスタが各々のリセット値に設定される。どのような処理も、ハードウェアリセットピンがデアサートされるまで行うことができない。リセットピンがアサートされた時点で、プロセッサは、リセットモードに移行することができ、全レジスタをハードウェアリセットモード値にリセットすることができる。リセットピンがデアサートされた後は、スレッドT0にソフトリセット割り込みを与えることができる。このことは、スレッドT0にスーパバイザモード144に入らせてリセットされたベクトル位置での実行を開始させることができる。その他の全スレッドは、オフ状態であることができる。この時点においては、ソフトウェアは、各スレッドに関するモード移行を個々に自由に制御することができる。
図6において、CU ISDBコントローラ126のブレークポイント論理又はBPL回路160(図4)は、ハードウェアブレークポイント0/1(HWBKPT0 162及びHWBKPT1 164)と、ソフトウェアブレークポイント(SWBKPT 166)と、JTAG84ブレークポイント(JTAGBKPT 168)と、ETM(埋め込み型トレースマクロ)ブレークポイント(ETMBKPT170)と、外部ブレークポイント(EXTBKPT172)と、を含む、6つの異なるソースからのブレークポイントトリガを含む。ブレークポイントトリガ162乃至172及びデバッグモード状態入力174は、エンコードブレークポイント符号器176に行き、DSP40にデバッグモード150において動作させる。符号器176からの出力は、3つのブレークポイント情報ビット178と、ブレークポイント有効ビット180と、を含む。ブレークポイント情報データ178は、ブレークポイント情報回路182に入ってブレークポイント情報JTAGインタフェースコマンド184を生じさせる。ブレークポイントビット180は、さらに、ORゲート入力186及びリセット回路188入力も生成する。リセット回路188は、UCG再開スレッド番号又はリセット入力192のいずれかを受け取り、ORゲート196内へのリセット制御出力194を生成する。有効ビット186又はリセット出力194のいずれも、ORゲート196にBPL 160ブレークポイント出力198を生成させることができる。
BPL回路160内のブレークポイントトリガは、対応するTNUMマスクとともに処理され、各々のスレッドに対するマクロブレークポイントトリガが生成される。対応するスレッドが再開されるまでマクロブレークポイントトリガ198bpl_breakTnum_ANY[0]が維持される。BPL160において用いることができるパイプラインステージ数は、正確なブレークポイントであるハードウェアブレークポイントによってドライブされる。すなわち、ハードウェアブレークポイントマッチをトリガする命令は実行してはならない。スレッドは、その命令までプログラムを実行後にデバッグモードに切り換わる。開示される実施形態は、ブレークポイントトリガが到着してから1サイクル後にマクロブレークポイントトリガを提供する。そのため、ブレーク有効入力176がラッチされたバージョン入力192と論理的にORされてbpl_breakTnum_ANY[0]出力198が生成される。
ブレークポイントを用いることで、DSP40の6つのスレッドは、個々にデバッグモード150に入ること及びデバッグモード150から出ることができる。ブレークポイントトリガは、ISDB82においてサポートされる5つの異なる種類のブレークポイントに対応する5つのソースから来ることができる。スレッドは、ブレークポイントをヒットした時点で、現行モード(例えば、待機/実行(RUN))からデバッグモード150に移行する。デバッグモード150において、スレッドは、ISDB82からのコマンドを待つ。OFFモード148にあるスレッドはパワーダウンされ、ISDB82からのコマンドを受け入れることができない。デバッグモード150に入るレーテンシーは、実装によって定義され、例えば、本開示においては、イベント電力崩壊に関連するとして定義される。例えば、一実装は、デバッグモード150に入る前に、所定の動作を完了させる、例えば未解決のロード要求を終了させる、ことを選択することができる。一実施形態においては、スレッド識別子レジスタは、8ビットの読み取り/書き込みフィールドを含み、ソフトウェアスレッド識別子を保持するために用いられる。このフィールドは、ブレークポイントとマッチさせるためにハードウェアデバッガによって用いられる。
ブレークポイントプロセスに入る方法は、幾つかの異なる方法が存在する。例えばHWBKPT1 162及びHWBKPT2 164ブレークポイントに関しては、レジスタが予め決められた値と等しい場合は、プログラムカウンタ(PC)が予め決められた値にマッチするときに、プロセスがデバッグモード150になる。ASID(アドレス空間識別子)は、プロセスにおけるプロセスID又はマルチスレッド化プロセスにおける特定のスレッドと類似のタグである。このため、物理アドレス、仮想アドレス、ASID、PC、又はその他の修飾子を用いて、ブレークポイントが生じることができるポイントにおける空間内のプログラムの位置のフィックスを随意に入手することができる。ここで参照されるブレークポイントの使用は、L.コドレスキュ、等による、“NON-INTRUSIVE, THREAD-SELECTIVE, DEBUGGING METHOD AND SYSTEM FOR A MULTI-THREADED DIGITAL SIGNAL PROCESSOR”(マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム)という題名を有する、共通譲渡米国特許出願においてより具体的に開示されている。開示される主題は、図6のようなブレークポイントの場合にデバッグモード150内に移動するための経路を提供する。開示される主題は、DSP40内のいずれのスレッド又はスレッドの組がデバッグモード150になるかを制御する。
本開示に関して重要なことは、DSP40の埋め込み型トレースマクロセル(ETM)ユニットであり、ソフトウェア実行の流れに関する詳細情報をリアルタイムでキャプチャすることによってユーザーによる符号デバッギングをエンハンスする。ETMは、選択されたDSP40の実行を非侵入方式でモニタリング及び記録し、実行情報をパケットにし、ETBと呼ばれるオフチップ又はオンチップメモリにパケットストリームを送出する。ETMは、トレース情報の生成を対象領域に限定するか又は焦点を合わせる幾つかの機構も含む。パケットストリームを用いることで、実行の再構築を行うことができ、ユーザーが符号の実行時間の挙動を直接見ることを可能にする。
図7は、様々な埋め込み型トレースマクロセル関数と関連させてここにおいて開示される開始デバッギング手順を実行するためのISDB JTAGSync回路の一側面を示す。ここにおいて開示される信頼される及び信頼されないデバッギング動作を実行するための例示的回路を実証するために、図7は、ISDB JTAGSync回路200を含む。ISDB JTAGSync回路200は、DSP40がISDB制御レジスタを読み取る及び書き込むために用いることができるISDB試験データレジスタ202を含む。ISDB JTAGSync回路200は、DB_tckにおいて動作するISDB試験データレジスタ202とDSP40クロック領域において動作するISDB制御レジスタ204との間における同期化論理を提供する。ISDB制御レジスタを読み取る及び書き込むことによって、DSP40は、ISDB82によってサポートされる様々なデバッグタスクを実行する。
図7の実装においては、ISDB JTAGSync回路200は、JTAG_isdb_chain_out信号208を生成するためにJTAG_isdb_chain_in信号206を受信してISDB試験データレジスタ204に入れる。ISDB試験データレジスタ202は、読み取り/書き込み(R/W)ビット210と、アドレスビット[6:0]212と、データビット[31:0]214と、を含む。R/Wビット210内の値は、Sync回路216出力及びCU_trustedDebug入力220と同様に、ANDゲート216に行く。JTAG_isdb_chain_uptake_tkl信号222及びISDB_CLK信号224は、Sync回路218の動作を制御する。アドレスビット212からのアドレス情報は、アドレスデコード回路220によって受け取ることができ、アドレスデコード回路220は、IDSBレジスタ204にフィード(feed)する。IDSBレジスタ204は、ANDゲート216からの書き込みイネーブル信号228に応じてデータビット[31:0]を有するデータを転送する。
ETMは、DSP40及びその他の同様のデジタル信号プロセッサに関する包括的なデバッグ及びトレース機能を提供する。DSP40が全速で稼働するときに、これらの機能は、プロセッサの性能にさらなる負担をかけずにプロセッサの状態に関する情報を特定のイベントの前後にキャプチャするのを可能にする。ETMは、選択されたトレース情報のみを特定の一連の条件後のみにおいてキャプチャするようにソフトウェア内において構成することができる。これで、専用の構成可能なトレースポート及びFIFOは、圧縮されたトレースデータを、プロセッサに割り込まずに、又は影響を与えずに外部トレースポート解析器によってチップから読み取るのを可能にする。
トレースポートは、1乃至32ビットデータバスから構成することができ、トレースクロックは、コアクロックから独立している。例えば、ETMからのデータレートは、コアクロックの1/2であることができ、データ帯域幅を維持するためにピン数を増やすことができる。同様に、ピン数を1/2にしてデータレートを上げることができる。ETMは、開発者が複数の非同期的なコアからの同時の相互に関連したトレースを見るのを可能にするためにスタンドアロン方式で及びマルチコア環境内の両方において用いることができる。
図8は、ここにおいて提供される全体的なETM232関数を描いたブロック図230である。DSP40コアプロセッサ70は、ETM232をインタフェースし、ETM232は、トリガリング及びフィルタリング回路234と、圧縮及びパケット化回路236と、を含む。トリガリング及びフィルタリング回路234及び圧縮及びパケット化回路236による処理に引き続き、ETM出力238は、トレースレポジトリ240に流れ、トレースレポジトリ240は、例えば、埋め込み型トレースバッファ(ETB)回路又はオフチップ回路であることができる。トレースレポジトリ240から、ソフトウェア実行レコードが、出力レコード242としてデバッグホスト又はISDB82に流れる。ISDB82は、トレースレポジトリ出力レコード242を受け取って再構築された実行の流れ246を生成するためのデコンプレッサ構成要素244を含む。ETM232は、入力JTAG84がISDB82からのデータ及び命令に応じて生成する制御入力248をJTAG84から受け取る。
図8において示されるように、ETM232は、DSP40パイプラインをモニタリングする。ETM32は、この情報を用いて、2つの主関数、すなわち、フィルタリング/トリガリング及び圧縮/パケット化を実行する。フィルタリング及びトリガリング動作は、JTAGインタフェース84を通じてユーザーによってプログラミングされ、いつトレーシングをオン及びオフにすべきかを定義するために用いられる。圧縮/パケット化ユニットは、DSP40実行情報を受け取り、同DSP40実行情報を、効率的に、トレースポートを通じてETM232から送出されるパケットの形にする。ETM232を出るトレースストリームは、トレースレポジトリ240に入れられる。トレースレポジトリ240は、トレースレコードを記録するための大きなメモリ容量を提供し、オフチップ又はオンチップであることができる。オンチップレポジトリは、埋め込み型トレースバッファ(ETB)と呼ばれる。デコンプレッサ構成要素244は、パケットストリームをトレースレポジトリ240から取り出すISDB82において実行するソフトウェアコンポーネントであり、プログラム画像とともに、DSP40の実行の流れを再構築し、ユーザーがDSPパイプライン66を詳細に見ることを可能にする。ETM232は、6つのすべてのスレッドに関するトレース命令シーケンシング及びタイミングを提供し、さらにプロファィリングカウント(キャッシュミス、バンク衝突、ミクロ−tlbミス)を記録及び送出する能力を提供する。ETM232は、PC及びLDSTアドレスにおいて、及びLDSTデータにおいてトリガすることができる。ETM232は、シリアル及び外部イベントの検出をサポートする。さらに、ETM232は、ISDBブレークポイントトリガイベント、外部トリガイベント、及びDSP40割り込みを生成する能力を有する。ETM232は、JTAG84を通じてプログラミング可能であり、一実施形態においては、512×32ビットの専用ETBトレースレポジト240をサポートすることができる。ETM232は、4トリガブロック(各々が2つのアドレスと1つのデータ比較器とを有する)を含むことができ、さらに3状態シーケンサを含むことができる。ETM232トレーシングは、セキュアなDSP40イネーブルレジスタの制御下で動作することができ、さらにDSP40電力崩壊中に動作するためにプログラミングすることができる。
ETM232は、所定の時間枠におけるスレッドに関するプログラムカウンタの全進行の記録として命令トレースを生成する。オプションとして、プログラムカウンタ進行のタイミング(例えば、ストールサイクルの識別)も、命令トレース内に含めることができる。これらの命令トレースをいつ生成すべきかを定義するためにイベント−リソース機構が用いられる。トリガ及びフィルタリング関数は、イベント−リソースのプログラミングを通じて制御される。より詳細には、イベント−リソースは、制御フィルタリング、トリガリング、及びISDB82ブレークポイント生成を制御する。フィルタリングは、命令トレースをいつイネーブル及びディスエーブルにすべきかを決定する関数を含む。トリガリングは、いつトリガマーカーをパケットストリーム内に挿入すべきかを決定することを含む。ISDB82ブレークポイント決定は、ISDB82がデバッギング動作に関するブレークポイントを生成して応答する条件を規定することを含む。
ETM232は、DSP40内の特定の条件がいつ発生するか(例えば、一定のPCが実行されるかどうか、又は一定のメモリ記憶場所が読み取られるかどうか)を検出するための幾つかの主イベントリソース(例えば、アドレス及びデータ比較器)を含む。さらに、イベントのより複雑な配備の検出を可能にする二次イベントリソース(トリガブロック及びシーケンサ)が存在する。
ETBトレースレポジトリ240は、トレース情報がデバイスのピンにおいてトレースポイントを通じて直ちにエクスポートされるのではなくキャプチャ中に格納されるオンチップメモリエリアを提供する。格納された情報は、キャプチャが完了された時点で引き下げられたクロックレートでETBトレースレポジトリ240から読み出すことができる。このことは、JTAGインタフェース84を通じて行われる。この2ステッププロセスは、数多くの高速デバイスピンを用いる幅広いトレースポートの必要性をなくす。実効的に、デバイスがピンにおいてJTAGポートを既に有する場合は“ゼロピン”トレースポートが生成される。ETBトレースレポジトリ240は、より高い周波数で及びトレースポート帯域幅制限を超える全32ビットデータポートを用いてデータを受け入れることができ、システムインテグレータによって供給されたRAMブロックと統合することができる。
一実施形態においては、ETBトレースレポジトリ240は、512のエントリとして配列された2KBのサイズを有し、各々のエントリの幅は32ビットである。ETBトレースレポジトリ240は、一組のJTAGアクセス可能レジスタを通じてユーザーとインタフェースする。各レジスタは、JTAGインタフェース84を通じて読み取る又は書き込むことができる。これらのレジスタは、トレース−キャプチャセッションに関するETBトレースレポジトリ240をセットアップするために及びトレースキャプチャが完了した時点でETBトレースレポジトリ240の内容を読み出すために用いられる。ETBトレースレポジトリ240は、ETBトレースレポジトリ240メモリアレイ内へのインデックスとしての読み取りポインタを提供する。JTAGインタフェース84を通じてETBトレースレポジトリ240の内容を読み出すときに、読み取りポインタは、読み取るべき記憶場所を示す。ETBトレースレポジトリ240は、ETBトレースレポジトリ240メモリアレイ内へのインデックスとしての書き込みポインタも提供する。トレースデータがETBトレースレポジトリ240内に書き込まれるときには、書き込みポインタによって示されたエントリに書き込まれる。書き込み動作の各々は、書き込み発生後に書き込みポインタを次の記憶場所に自動的に増分する。ETBトレースレポジトリ240は、ETMトレースストリームの小さいウィンドーしかキャプチャすることができない。ETBは、いつデータをキャプチャすべきかを決定するためにETMからのトリガパケットを探し、トリガカウンタは、ETBトレースレポジトリ240によってキャプチャされたトリガ前データとトリガ後データの分割を指定するために用いられる。
図9は、ETM232におけるトリガブロック回路250を示す。DSP40の開示される実施形態に関するETM232は、4つのトリガブロックを含み、各々のトリガブロックは、2つの単一アドレス比較器(SAC)回路252及び254と、1つのデータ比較器(DC)回路256と、16ビットカウンタ回路258と、を有する。トリガブロック回路250は、トリガリング部分260及びフィルタリング部分262の2つの主要セクションに分割することができる。トリガリング部分260は、(後述される)シーケンサ内にフィードし、シーケンサが状態を変更するときを制御する。トリガリング部分260においては、SAC回路252:254は、AND/OR回路264にフィードし、AND/OR回路264自体は、DC回路256とともにAND回路266にフィードする。AND回路266からの出力は、トリガマッチ信号268を生成するためにカウンタ回路258にフィードする。フィルタリング部分262は、いつ命令トレーシングをイネーブル又はディスエーブルにすべきかを決定する。フィルタリング部分262においては、SAC回路252:254は、AND回路270にフィードする。SAC回路は、状態イネーブル回路272にもフィードし、SAC回路は、状態イネーブル回路274にフィードする。さらに、AND回路270は、状態イネーブル回路276にフィードする。OR回路は、トレースイネーブル出力280を生成するために状態イネーブル回路272:276から信号を受け取る。各トリガブロック回路250は、スレッドマッチング回路282を提供し、スレッドマッチング回路282は、以下の図10においてさらに詳細に説明される。
各トリガブロック回路250は、SAC回路252及びDC回路256のマッチを特定のスレッド又はスレッドグループに選択的に制限するためのASID及びTIDマッチレジスタを含む。さらに、各トリガブロック回路250は、単一のハードウェアスレッドに制限することができる。SAC回路252は、メモリアクセス命令によって生成されたアドレスが予めプログラミングされた値にマッチするときを検出する。SAC回路252は、32ビットの比較をサポートする。比較のためのメモリソースは、プログラムカウンタとロード/ストアアドレスとの間においてプログラミング可能である。一実施形態に関しては、比較の種類は次の選択肢、すなわち、等号(=)、不等号(!=)、以上(≧)、又は未満(<)、を用いてプログラミング可能である。アクセスのタイプは、ロード又はストア、ロードのみ又はストアのみに制限することができる。該実施形態においては、SAC回路252:254は、各メモリソースに関する仮想アドレスマッチングのみをサポートすることができる。
DC回路256は、メモリアクセスデータ値が予めプログラミングされた値にマッチするときを検出し、32ビット比較を行うことができる。64ビットアクセスに関しては、上位ワードと下位ワードとの間においてソースをプログラミング可能である。等号(=)及び不等号(!=)の比較の種類をサポートする。32ビットマスクレジスタは、比較の一部分をフィルタリングアウトするために用いることができる。DC回路256は、あらゆるバイトのマッチングをサポートし、アクセスのタイプは、ロード又はストア、ロードのみ、又はストアのみとして設定することができる。さらに、DC回路256の出力は、選択可能な形でディスエーブルにすることができる。
SAC回路252:254及びDC回路256マッチは、いつカウンタ回路258が減分するかを決定する。図9に示されるように、SAC回路252:254マッチ結果は、いっしょにAND又はORすることができる。この結果は、DC回路256マッチ結果と結合される。この最終的な結果が、カウンタ回路258をイネーブルにするために用いられる。カウンタ回路258は、ユーザーによって定義された値を予めローディングし、マッチが発生したときに減分することができる。トリガカウンタが0になったときに、トリガブロックは、シーケンサにマッチをシグナリングする。
カウンタ回路258は、いつカウンタがリロードされるかを制御する3ビット状態イネーブルマスクを含む。新しい状態が入力されたときに、この状態が状態イネーブルマスク内のイネーブルされた状態のうちの1つとマッチする場合は、カウンタがリロードされる。カウンタは、ゼロになるごとに自動的にリロードされる。カウンタは、カウントを1に設定することによって迂回することができる。2つのSAC回路252:254からのマッチ結果は、命令流トレーシングをイネーブル又はディスエーブルにするためにも用いられる。
フィルタリング部分262は、トリガブロック回路250が個々のSAC回路252マッチに基づいてトレースするのを可能にする。従って、各SAC回路252:254に関して、関連づけられた状態−イネーブルマスクがマッチする場合で、SAC回路がマッチする場合は、トレーシングがイネーブルにされる。トレースは、アドレス範囲のマッチ時にも生じることができる。トレーシングは、SAC回路252:254マッチのANDに基づいてイネーブルにされる。次に、マッチは、状態−イネーブルマスクによってさらに修飾(qualify)される。3つのトレースソースの各々は、現在の状態によってマッチを修飾するための別個の3ビット状態イネーブルマスクを有する。上記の規則を用いることで、ユーザーは、例えば、異なるトレース領域を定義することができる。1つの領域は、プログラムカウンタ(PC)が100よりも大きく200よりも小さい場合で、回路が状態1にある場合のみにスレッドiに関するトレース命令の流れを含むことができる。
第2の領域は、PCが100未満の場合で、状態0にある場合、又はPCが200よりも大きい場合で状態2にある場合に、スレッドjに関するトレース命令の流れに関する領域であることができる。複数のトリガ−ブロックが存在するため、最終的なトレースイネーブルは、各トリガブロックのトレースイネーブルのORである。アドレス比較、状態イネーブル化、及びスレッドマッチングの結合された結果とマッチする全スレッドをトレースすることができる。複数のアクティブなスレッドがイネーブル化条件とマッチする場合は、これらのスレッドは同時並行してトレースすることができる。
図10は、TID入力284、ASID入力286、及びTNUM入力288に応じたスレッドマッチング回路282を示す。TID入力284は、AND回路290にフィードし、AND回路290は、TIDマスク回路292からの逆フィードも受け取る。TIDマスク回路292の反転回路(inverse)も、TIDマッチ回路296出力とともにAND回路294にフィードする。AND回路290及び294は、比較器回路298において比較され、比較器298の出力は、OR回路300にフィードする。OR回路300は、比較器回路298の出力をTIDマッチイネーブル回路302の反転回路と論理的にORしてAND回路304にフィードする。比較器回路306は、OR回路310へのフィードを生成するためにASID入力286をASIDマッチ回路308出力と比較する。OR回路310は、ASIDマッチイネーブル回路314反転信号の論理的ORからの出力312を生成する。最後に、TNUM入力288が比較器回路316において、TNUMマッチ回路318からの出力と比較され、入力信号320が生成される。OR回路322は、入力320を、TNUMマッチイネーブル回路324からの逆フィードと論理的にORさせる。スレッドマッチ信号326を生成する際には、AND回路304は、OR回路300、310、及び322からの出力を論理的にANDする。
各トリガブロック回路250、従ってスレッドマッチ回路282、は、トリガリング部分260及びフィルタリング部分262の両方の動作を特定のスレッド又はスレッドグループに制限するように機能する。各トリガブロックは、TIDマッチ回路296と、TIDマスク回路292と、ASIDマッチイネーブル回路314と、TNUMマッチイネーブル回路324と、を含む。この能力を用いるため、マッチレジスタは、現在のスレッドの識別子と照合して比較するために用いられる基準値を用いてプログラミングすることができる。TIDマッチ回路296に関しては、比較は、TIDマスク回路292を通じてTIDの一定部分に対して行うことに制限することができる。このことは、1つのグループのTIDをマッチングするのを可能にする。さらに、各マッチ型に関して、マッチングは、ユーザーによってプログラミング可能なイネーブルレジスタを通じてディスエーブルにすることができる。トリガブロック回路250は、すべての修飾条件を満たすスレッドのみに関して動作する。
ETM232の一側面は、イベント及びより複雑なイベント検出シナリオを連鎖させるためのシーケンサプロセスを含む。シーケンサプロセス及び関連づけられたトリガブロック回路250の動作を説明するために、図11は、シーケンサ流れ図330を示す。シーケンサプロセス330は、トリガブロック回路入力332:338に応じて、示される例においては3つの状態S0:S2において動作する。シーケンサプロセス310の動作に関して、プロセスの流れは、状態S0からS1又はS2に進むことができる。S1からは、シーケンシングは、S2に進むか又はS0に戻る。S2からは、シーケンシングは、S1又はS0に進む。
従って、シーケンサプロセス330は、3つの状態S0:S2を含み、状態間の移行は、プログラミングすることができ、トリガブロック回路332:338からのマッチに基づく。図12の表は、各移行に関するプログラミング可能な規則を示す。シーケンサプロセス330は、各トリガブロック回路332:338を状態イネーブルに基づいてコンディショニングするのを可能にするためにトレースフィルタリングの際に用いられる。このことは、トレーシングを一定の状態に制限するのを可能にする。新しい状態に入った時点で、各トリガブロック回路332:338内のカウンタは、初期値にリロードすることができる。所定の状態に入った時点で、ISDB82ブレークポイントをアサートすることができる。所定の状態に入った時点で、トリガマーカーをトレースストリーム内に挿入することができる。所定の状態に入った時点で、外部トリガ制御もアサートすることができる。外部トリガは、シーケンサが所定の状態にあるいずれの時点においてもアサートされた状態であることができる。所定の状態に入った時点で、DSP40への割り込みをアサートすることができる。リセット後は、カウンタは、状態0に初期設定される。複数の移行が同時に行われる場合は、シーケンサは現在の状態にとどまる。
ETMは、DSP40の性能に関連する様々なイベントを記録できる6つのカウンタを含む。基本動作では、各カウンタをプログラミング可能なソースとして利用する。ユーザーによってプログラミング可能な領域カウンタは、実行を、固定されたサイクル数から成るウィンドーに分割する。ウィンドー中においては、イベントはカウンタ内に累積される。ウィンドーの末端において、カウンタ値がパケットに入れられてトレースポートを通じて送出される。次に、カウンタがリセットされてプロセスが再開する。プロファイリングユニットがプログラムフロートレーシングと同時に動作されたときには、プログラムフロートレースが性能イベントに関する詳細情報によってオーバーレイされる。さらに、プロファイリングユニットは、ユニットがアクティブであるときを制限するための状態イネーブルマスクを含む。
領域カウンタは、実行を、固定されたサイクル数から成るウィンドーに分割するために用いられる。領域のサイズは、ユーザーによってプログラミング可能なレジスタによって決定される。領域カウンタは、ユーザーによって指定された値に初期設定され、すべてのプロファイリングイベントカウンタがリセットされる。これで、領域カウンタがカウントダウンを開始する。領域カウンタがゼロになると、各々のプロファイリングイベントカウントに関する値がトレースストリーム内に放出される。次に、プロセスが再開する。領域カウンタは、状態イネーブルがマッチするときだけカウントする。プロファイリングが非アクティブであるときには、領域カウンタは、値を維持し、イネーブルにされた状態が再入力されたときに再開する。
プロファイリングカウンタが情報を累積することができる対象となる異なるイベントは、(a)dキャッシュミスと、(b)dキャッシュストールサイクルと、(c)iキャッシュミスと、(d)iキャッシュストールサイクルと、(e)ITLB及びDTLBミスと、(f)総ストールミスと、を含む。さらに、各プロファィリングカウンタは、一定のハードウェアスレッドにおいて発生するイベントにカウンタを制限するための6スレッドマスクを含む。
領域カウンタと同じように、プロファィリングカウンタは、状態イネーブルマスクが現在の状態にマッチするときのみにアクティブである。その他のいずれのときにもカウントはその値を維持し、イネーブルにされた状態が再入力されたときにカウントが再開する。
ETM232の機能は、様々なユーザーによってプログラミング可能なレジスタを設定することによって決定される。各レジスタは、JTAGインタフェース84を通じてアクセスされる。図13は、この目的のためのETM232制御レジスタを記載したリストを提供する。
要約すると、開示される主題は、プロセッサにおけるソフトウェア実行の流れに関連するリアルタイムの情報をキャプチャすることによってソフトウェア命令デバッギング動作を向上させるための方法及びシステムを提供する。この方法及びシステムは、デジタル信号プロセッサと関連づけられたコアプロセッサ内においてコアプロセッサプロセスを動作させるための命令と回路とを含む。開示される主題は、デジタル信号プロセッサのデバッギング機構内において非侵入型デバッギングプロセスを動作させる。コア処理プロセスと関連づけられたソフトウェア実行の予め決められた側面を埋め込み型トレースマクロセルを用いてリアルタイムで非侵入方式でモニタリングし、前記モニタリングすることはプロセッサにおいてリアルタイムで発生する。埋め込み型トレースマクロセルは、非侵入方式でモニタリングされたソフトウェア実行の選択可能な側面を記録し、非侵入方式でモニタリングされたソフトウェア実行の選択可能な側面内において発生するイベントに応じて少なくとも1つのブレークポイントを生成する。本開示は、少なくとも1つのブレークポイントに応じて非侵入型デバッギングプロセスの側面を制御する。その結果、開示される主題は、マルチスレッド化デジタル信号プロセッサの全スレッドまでに関するマルチスレッドトレース命令シーケンシング及びタイミングに関して非侵入型デバッギングプロセスと協力する。
マルチスレッド化デジタル信号プロセッサにおける信頼される及び信頼されない非侵入型スレッド選択式デバッギングに関してここにおいて説明される処理上の特徴及び機能は、様々な方法で実装することができる。例えば、DSP40は、上述される動作を実行できるだけでなく、本明細書の実施形態は、ここにおいて説明される機能を果たすように設計された特定用途向け集積回路(ASIC)、マイクロコントローラ、デジタル信号プロセッサ、又はその他の電子回路において実装することができる。さらに、ここにおいて説明されるプロセス及び特長は、該様々な信号及び命令処理システムによる読み取り及び実行のために磁気媒体、光学媒体、又はその他の記録媒体に格納することができる。従って、好まれる実施形態に関する上記の説明は、当業者が請求される主題を製造または使用するのを可能にすることを目的とするものである。これらの実施形態に対する様々な修正が当業者にとって容易に明確になるであろう。さらに、ここにおいて定義される一般原理は、革新的な能力を用いずにその他の実施形態にも適用可能である。以上のように、請求される主題は、ここにおいて示される実施形態に限定されることが意図されるものではなく、ここにおいて開示される原理及び斬新な特長に一致する限りにおいて最も広範な適用範囲が認められるべきである。
マルチスレッド化デジタル信号プロセッサにおける信頼される及び信頼されない非侵入型スレッド選択式デバッギングに関してここにおいて説明される処理上の特徴及び機能は、様々な方法で実装することができる。例えば、DSP40は、上述される動作を実行できるだけでなく、本明細書の実施形態は、ここにおいて説明される機能を果たすように設計された特定用途向け集積回路(ASIC)、マイクロコントローラ、デジタル信号プロセッサ、又はその他の電子回路において実装することができる。さらに、ここにおいて説明されるプロセス及び特長は、該様々な信号及び命令処理システムによる読み取り及び実行のために磁気媒体、光学媒体、又はその他の記録媒体に格納することができる。従って、好まれる実施形態に関する上記の説明は、当業者が請求される主題を製造または使用するのを可能にすることを目的とするものである。これらの実施形態に対する様々な修正が当業者にとって容易に明確になるであろう。さらに、ここにおいて定義される一般原理は、革新的な能力を用いずにその他の実施形態にも適用可能である。以上のように、請求される主題は、ここにおいて示される実施形態に限定されることが意図されるものではなく、ここにおいて開示される原理及び斬新な特長に一致する限りにおいて最も広範な適用範囲が認められるべきである。
なお、以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]デジタル信号プロセッサにおけるソフトウェア実行の流れに関連するリアルタイム情報をキャプチャすることによってソフトウェア命令デバッギング動作を向上させるための方法であって、
前記デジタル信号プロセッサのデバッギング機構内において非侵入型デバッギングプロセスを動作させることであって、前記デバッギング機構は、前記デジタル信号プロセッサのコアプロセッサと関連づけられることと、
コア処理プロセスと関連づけられたソフトウェア実行の予め決められた側面に関してソフトウェア実行をリアルタイムで非侵入方式でモニタリングすることであって、前記モニタリングすることは前記デジタル信号プロセッサにおいてリアルタイムで発生することと、
前記非侵入方式でモニタリングされたソフトウェア実行の選択可能な側面を記録することと、
前記非侵入方式でモニタリングされたソフトウェア実行の前記選択可能な側面内において発生するイベントに応じて少なくとも1つのブレークポイントを生成することと、
前記少なくとも1つのブレークポイントに応じて前記非侵入型デバッギングプロセスの側面を制御すること、とを備える、方法。
[C2]予め決められた一組のプロファイリングカウントに応じて少なくとも1つのレコードを生成することをさらに備えるC1に記載の方法。
[C3]前記デジタル信号プロセッサの選択可能な数のスレッドの前記ソフトウェア実行を非侵入方式でモニタリングすることをさらに備えるC1に記載の方法。
[C4]前記非侵入型デバッギングプロセスを開始するためのトリガをプログラムカウンタ値に応じて生成することをさらに備えるC1に記載の方法。
[C5]前記ソフトウェア実行において用いられたロード/ストアアドレスに応じて前記非侵入型デバッギングプロセスを開始するためのトリガを生成することをさらに備えるC1に記載の方法。
[C6]前記ソフトウェア実行の際に発生する一連のイベントに応じて複数のレコードを生成することをさらに備えるC1に記載の方法。
[C7]前記ソフトウェア実行に関連して発生する外部イベントに応じて少なくとも1つのレコードを生成することをさらに備えるC1に記載の方法。
[C8]JTAGインタフェースを用いて前記非侵入型モニタリング及び前記記録の動作をプログラミングすることをさらに備えるC1に記載の方法。
[C9]記録媒体に送信するために前記記録から導き出されたレコードのパケットストリームを生成することをさらに備えるC1に記載の方法。
[C10]埋め込み型トレースバッファ記録媒体に送信するために前記記録から導き出されたレコードのパケットストリームを生成することをさらに備えるC1に記載の方法。
[C11]デジタル信号プロセッサと関連して動作するためのデジタル信号プロセッサデバッギングシステムであって、プロセッサにおけるソフトウェア実行の流れに関連するリアルタイム情報をキャプチャする能力を含み、
前記デジタル信号プロセッサのデバッギング機構であって、コアプロセッサと関連づけられて非侵入型デバッギングプロセスを動作させるデバッギング機構と、
前記コア処理プロセスと関連づけられたソフトウェア実行の予め決められた側面に関してソフトウェア実行をリアルタイムで非侵入方式でモニタリングするための埋め込み型トレースマクロセルと、
前記非侵入方式でモニタリングされたソフトウェア実行の選択可能な側面を記録するための前記埋め込み型トレースマクロセルに関する記録命令及び関連づけられた回路と、
前記非侵入方式でモニタリングされたソフトウェア実行の前記選択可能な側面内において発生するイベントに応じて少なくとも1つのブレークポイントを生成するための前記デバッギング機構と前記埋め込み型トレースマクロセルとの間で関連づけられたブレークポイント生成命令と、
前記少なくとも1つのブレークポイントに応じて非侵入型デバッギングプロセスを開始するための前記デバッギング機構と関連づけられた制御命令と、を備える、デジタル信号プロセッサデバッギングシステム。
[C12]予め決められた一組のプロファイリングカウントに応じて少なくとも1つのレコードを生成することをさらに備えるC11に記載のデジタル信号プロセッサデバッギングシステム。
[C13]前記デジタル信号プロセッサの選択可能な数のスレッドをさらに備えるC11に記載のデジタル信号プロセッサデバッギングシステム。
[C14]前記非侵入型デバッギングプロセスを開始するためのトリガをプログラムカウンタ値に応じて生成することをさらに備えるC11に記載のデジタル信号プロセッサデバッギングシステム。
[C15]前記ソフトウェア実行において用いられたロード/ストアアドレスに応じて前記非侵入型デバッギングプロセスを開始するためのトリガを生成することをさらに備えるC11に記載のデジタル信号プロセッサデバッギングシステム。
[C16]前記ソフトウェア実行の際に発生する一連のイベントに応じて複数のレコードを生成することをさらに備えるC11に記載のデジタル信号プロセッサデバッギングシステム。
[C17]前記ソフトウェア実行に関連して発生する外部イベントに応じて少なくとも1つのレコードを生成することをさらに備えるC11に記載のデジタル信号プロセッサデバッギングシステム。
[C18]前記非侵入型モニタリング及び前記記録命令及び前記関連づけられた回路の動作をプログラミングするためのJTAGインタフェースをさらに備えるC11に記載のデジタル信号プロセッサデバッギングシステム。
[C19]記録媒体に送信するために前記記録命令及び前記関連づけられた回路から導き出されたレコードのパケットストリームをさらに備えるC11に記載のデジタル信号プロセッサデバッギングシステム。
[C20]前記記録命令及び前記関連づけられた回路の使用から導き出されたレコードのパケットストリームを格納するための埋め込み型トレースバッファをさらに備えるC11に記載のデジタル信号プロセッサデバッギングシステム。
[C21]パーソナル電子デバイスをサポートする動作に関するデジタル信号プロセッサであって、前記デジタル信号プロセッサにおけるソフトウェア実行の流れに関連するリアルタイム情報をキャプチャし、それに応じて複数の非侵入型デバッギング動作を実行するためのデバッギング手段であって、
前記デジタル信号プロセッサのデバッギング機構内において非侵入型デバッギングプロセスを動作させるための手段であって、前記デバッギング機構は、前記デジタル信号プロセッサのコアプロセッサにおいて動作するコア処理プロセスと関連づけられる手段と、
前記コア処理プロセスと関連づけられたソフトウェア実行の予め決められた側面に関してソフトウェア実行をリアルタイムで非侵入方式でモニタリングするための手段であって、前記モニタリングすることは前記コアプロセッサにおいてリアルタイムで発生する手段と、
前記非侵入方式でモニタリングされたソフトウェア実行の選択可能な側面を記録するための手段と、
前記非侵入方式でモニタリングされたソフトウェア実行の選択可能な側面を記録するための前記手段内において発生するイベントに応じて少なくとも1つのブレークポイントを生成するための手段と、
前記少なくとも1つのブレークポイントに応じて前記非侵入型デバッギングプロセスの側面を制御するための手段と、を備えるデバッギング手段、を備える、デジタル信号プロセッサ。
[C22]予め決められた一組のプロファイリングカウントに応じて少なくとも1つのレコードを生成するための手段をさらに備えるC21に記載のデジタル信号プロセッサ。
[C23]前記デジタル信号プロセッサの幾つかのスレッドを選択するための手段をさらに備えるC21に記載のデジタル信号プロセッサ。
[C24]前記非侵入型デバッギングプロセスを開始するためのトリガをプログラムカウンタ値に応じて生成するための手段をさらに備えるC21に記載のデジタル信号プロセッサ。
[C25]前記ソフトウェア実行において用いられたロード/ストアアドレスに応じて前記非侵入型デバッギングプロセスを開始するためのトリガを生成するための手段をさらに備えるC21に記載のデジタル信号プロセッサ。
[C26]前記ソフトウェア実行の際に発生する一連のイベントに応じて複数のレコードを生成するための手段をさらに備えるC21に記載のデジタル信号プロセッサ。
[C27]前記ソフトウェア実行に関連して発生する外部イベントに応じて少なくとも1つのレコードを生成するための手段をさらに備えるC21に記載のデジタル信号プロセッサ。
[C28]前記非侵入型モニタリングの動作をプログラミングするための手段とJTAGインタフェースを用いて前記記録するための手段とをさらに備えるC21に記載のデジタル信号プロセッサ。
[C29]記録媒体に送信するために前記記録するための手段から導き出されたレコードのパケットストリームを生成するための手段をさらに備えるC21に記載のデジタル信号プロセッサ。
[C30]埋め込み型トレースバッファ記録媒体に送信するために前記記録するための手段から導き出されたレコードのパケットストリームを生成するための手段をさらに備えるC21に記載のデジタル信号プロセッサ。
[C31]マルチスレッド化デジタル信号プロセッサをデバッグするために具体化されたコンピュータによって読み取り可能なプログラムコード手段を有するコンピュータによって使用可能な媒体であって、プロセッサにおけるソフトウェア実行の流れに関連するリアルタイム情報をキャプチャすることを含み、
前記デジタル信号プロセッサのデバッギング機構内において非侵入型デバッギングプロセスを動作させるためのコンピュータによって読み取り可能なプログラムコード手段であって、前記デバッギング機構はコアプロセッサと関連づけられたコンピュータによって読み取り可能なプログラムコード手段と、
コア処理プロセスと関連づけられたソフトウェア実行の予め決められた側面に関してソフトウェア実行をリアルタイムで非侵入方式でモニタリングするためのコンピュータによって読み取り可能なプログラムコード手段であって、前記モニタリングすることは前記デジタル信号プロセッサにおいてリアルタイムで発生するコンピュータによって読み取り可能なプログラムコード手段と、
前記非侵入方式でモニタリングされたソフトウェア実行の選択可能な側面を記録するためのコンピュータによって読み取り可能なプログラムコード手段と、
前記非侵入方式でモニタリングされたソフトウェア実行の前記選択可能な側面内において発生するイベントに応じて少なくとも1つのブレークポイントを生成するためのコンピュータによって読み取り可能なプログラムコード手段と、
前記少なくとも1つのブレークポイントに応じて前記非侵入型デバッギングプロセスの側面を制御するためのコンピュータによって読み取り可能なプログラムコード手段と、を備える、コンピュータによって使用可能な媒体。
[C32]前記デジタル信号プロセッサの幾つかのスレッドを選択するためのコンピュータによって読み取り可能なプログラムコード手段をさらに備えるC31に記載のコンピュータによって使用可能な媒体。
[C33]埋め込み型トレースバッファ記録媒体に送信するために記録するための前記コンピュータによって読み取り可能なプログラムコード手段から導き出されたレコードのパケットストリームを生成するためのコンピュータによって読み取り可能なプログラムコード手段をさらに備えるC31に記載のコンピュータによって使用可能な媒体。

Claims (33)

  1. デジタル信号プロセッサにおけるソフトウェア実行の流れに関連するリアルタイム情報をキャプチャすることによってソフトウェア命令デバッギング動作を向上させるための方法であって、
    前記デジタル信号プロセッサのデバッギング機構内において非侵入型デバッギングプロセスを動作させることであって、前記デバッギング機構は、前記デジタル信号プロセッサのコアプロセッサと関連づけられることと、
    コア処理プロセスと関連づけられたソフトウェア実行の予め決められた側面に関してソフトウェア実行をリアルタイムで非侵入方式でモニタリングすることであって、前記モニタリングすることは前記デジタル信号プロセッサにおいてリアルタイムで発生することと、
    前記非侵入方式でモニタリングされたソフトウェア実行の選択可能な側面を記録することと、
    前記非侵入方式でモニタリングされたソフトウェア実行の前記選択可能な側面内において発生するイベントに応じて少なくとも1つのブレークポイントを生成することと、
    前記少なくとも1つのブレークポイントに応じて前記非侵入型デバッギングプロセスの側面を制御すること、とを備える、方法。
  2. 予め決められた一組のプロファイリングカウントに応じて少なくとも1つのレコードを生成することをさらに備える請求項1に記載の方法。
  3. 前記デジタル信号プロセッサの選択可能な数のスレッドの前記ソフトウェア実行を非侵入方式でモニタリングすることをさらに備える請求項1に記載の方法。
  4. 前記非侵入型デバッギングプロセスを開始するためのトリガをプログラムカウンタ値に応じて生成することをさらに備える請求項1に記載の方法。
  5. 前記ソフトウェア実行において用いられたロード/ストアアドレスに応じて前記非侵入型デバッギングプロセスを開始するためのトリガを生成することをさらに備える請求項1に記載の方法。
  6. 前記ソフトウェア実行の際に発生する一連のイベントに応じて複数のレコードを生成することをさらに備える請求項1に記載の方法。
  7. 前記ソフトウェア実行に関連して発生する外部イベントに応じて少なくとも1つのレコードを生成することをさらに備える請求項1に記載の方法。
  8. JTAGインタフェースを用いて前記非侵入型モニタリング及び前記記録の動作をプログラミングすることをさらに備える請求項1に記載の方法。
  9. 記録媒体に送信するために前記記録から導き出されたレコードのパケットストリームを生成することをさらに備える請求項1に記載の方法。
  10. 埋め込み型トレースバッファ記録媒体に送信するために前記記録から導き出されたレコードのパケットストリームを生成することをさらに備える請求項1に記載の方法。
  11. デジタル信号プロセッサと関連して動作するためのデジタル信号プロセッサデバッギングシステムであって、プロセッサにおけるソフトウェア実行の流れに関連するリアルタイム情報をキャプチャする能力を含み、
    前記デジタル信号プロセッサのデバッギング機構であって、コアプロセッサと関連づけられて非侵入型デバッギングプロセスを動作させるデバッギング機構と、
    前記コア処理プロセスと関連づけられたソフトウェア実行の予め決められた側面に関してソフトウェア実行をリアルタイムで非侵入方式でモニタリングするための埋め込み型トレースマクロセルと、
    前記非侵入方式でモニタリングされたソフトウェア実行の選択可能な側面を記録するための前記埋め込み型トレースマクロセルに関する記録命令及び関連づけられた回路と、
    前記非侵入方式でモニタリングされたソフトウェア実行の前記選択可能な側面内において発生するイベントに応じて少なくとも1つのブレークポイントを生成するための前記デバッギング機構と前記埋め込み型トレースマクロセルとの間で関連づけられたブレークポイント生成命令と、
    前記少なくとも1つのブレークポイントに応じて非侵入型デバッギングプロセスを開始するための前記デバッギング機構と関連づけられた制御命令と、を備える、デジタル信号プロセッサデバッギングシステム。
  12. 予め決められた一組のプロファイリングカウントに応じて少なくとも1つのレコードを生成することをさらに備える請求項11に記載のデジタル信号プロセッサデバッギングシステム。
  13. 前記デジタル信号プロセッサの選択可能な数のスレッドをさらに備える請求項11に記載のデジタル信号プロセッサデバッギングシステム。
  14. 前記非侵入型デバッギングプロセスを開始するためのトリガをプログラムカウンタ値に応じて生成することをさらに備える請求項11に記載のデジタル信号プロセッサデバッギングシステム。
  15. 前記ソフトウェア実行において用いられたロード/ストアアドレスに応じて前記非侵入型デバッギングプロセスを開始するためのトリガを生成することをさらに備える請求項11に記載のデジタル信号プロセッサデバッギングシステム。
  16. 前記ソフトウェア実行の際に発生する一連のイベントに応じて複数のレコードを生成することをさらに備える請求項11に記載のデジタル信号プロセッサデバッギングシステム。
  17. 前記ソフトウェア実行に関連して発生する外部イベントに応じて少なくとも1つのレコードを生成することをさらに備える請求項11に記載のデジタル信号プロセッサデバッギングシステム。
  18. 前記非侵入型モニタリング及び前記記録命令及び前記関連づけられた回路の動作をプログラミングするためのJTAGインタフェースをさらに備える請求項11に記載のデジタル信号プロセッサデバッギングシステム。
  19. 記録媒体に送信するために前記記録命令及び前記関連づけられた回路から導き出されたレコードのパケットストリームをさらに備える請求項11に記載のデジタル信号プロセッサデバッギングシステム。
  20. 前記記録命令及び前記関連づけられた回路の使用から導き出されたレコードのパケットストリームを格納するための埋め込み型トレースバッファをさらに備える請求項11に記載のデジタル信号プロセッサデバッギングシステム。
  21. パーソナル電子デバイスをサポートする動作に関するデジタル信号プロセッサであって、前記デジタル信号プロセッサにおけるソフトウェア実行の流れに関連するリアルタイム情報をキャプチャし、それに応じて複数の非侵入型デバッギング動作を実行するためのデバッギング手段であって、
    前記デジタル信号プロセッサのデバッギング機構内において非侵入型デバッギングプロセスを動作させるための手段であって、前記デバッギング機構は、前記デジタル信号プロセッサのコアプロセッサにおいて動作するコア処理プロセスと関連づけられる手段と、
    前記コア処理プロセスと関連づけられたソフトウェア実行の予め決められた側面に関してソフトウェア実行をリアルタイムで非侵入方式でモニタリングするための手段であって、前記モニタリングすることは前記コアプロセッサにおいてリアルタイムで発生する手段と、
    前記非侵入方式でモニタリングされたソフトウェア実行の選択可能な側面を記録するための手段と、
    前記非侵入方式でモニタリングされたソフトウェア実行の選択可能な側面を記録するための前記手段内において発生するイベントに応じて少なくとも1つのブレークポイントを生成するための手段と、
    前記少なくとも1つのブレークポイントに応じて前記非侵入型デバッギングプロセスの側面を制御するための手段と、を備えるデバッギング手段、を備える、デジタル信号プロセッサ。
  22. 予め決められた一組のプロファイリングカウントに応じて少なくとも1つのレコードを生成するための手段をさらに備える請求項21に記載のデジタル信号プロセッサ。
  23. 前記デジタル信号プロセッサの幾つかのスレッドを選択するための手段をさらに備える請求項21に記載のデジタル信号プロセッサ。
  24. 前記非侵入型デバッギングプロセスを開始するためのトリガをプログラムカウンタ値に応じて生成するための手段をさらに備える請求項21に記載のデジタル信号プロセッサ。
  25. 前記ソフトウェア実行において用いられたロード/ストアアドレスに応じて前記非侵入型デバッギングプロセスを開始するためのトリガを生成するための手段をさらに備える請求項21に記載のデジタル信号プロセッサ。
  26. 前記ソフトウェア実行の際に発生する一連のイベントに応じて複数のレコードを生成するための手段をさらに備える請求項21に記載のデジタル信号プロセッサ。
  27. 前記ソフトウェア実行に関連して発生する外部イベントに応じて少なくとも1つのレコードを生成するための手段をさらに備える請求項21に記載のデジタル信号プロセッサ。
  28. 前記非侵入型モニタリングの動作をプログラミングするための手段とJTAGインタフェースを用いて前記記録するための手段とをさらに備える請求項21に記載のデジタル信号プロセッサ。
  29. 記録媒体に送信するために前記記録するための手段から導き出されたレコードのパケットストリームを生成するための手段をさらに備える請求項21に記載のデジタル信号プロセッサ。
  30. 埋め込み型トレースバッファ記録媒体に送信するために前記記録するための手段から導き出されたレコードのパケットストリームを生成するための手段をさらに備える請求項21に記載のデジタル信号プロセッサ。
  31. マルチスレッド化デジタル信号プロセッサをデバッグするために具体化されたコンピュータによって読み取り可能なプログラムコード手段を有するコンピュータによって使用可能な媒体であって、プロセッサにおけるソフトウェア実行の流れに関連するリアルタイム情報をキャプチャすることを含み、
    前記デジタル信号プロセッサのデバッギング機構内において非侵入型デバッギングプロセスを動作させるためのコンピュータによって読み取り可能なプログラムコード手段であって、前記デバッギング機構はコアプロセッサと関連づけられたコンピュータによって読み取り可能なプログラムコード手段と、
    コア処理プロセスと関連づけられたソフトウェア実行の予め決められた側面に関してソフトウェア実行をリアルタイムで非侵入方式でモニタリングするためのコンピュータによって読み取り可能なプログラムコード手段であって、前記モニタリングすることは前記デジタル信号プロセッサにおいてリアルタイムで発生するコンピュータによって読み取り可能なプログラムコード手段と、
    前記非侵入方式でモニタリングされたソフトウェア実行の選択可能な側面を記録するためのコンピュータによって読み取り可能なプログラムコード手段と、
    前記非侵入方式でモニタリングされたソフトウェア実行の前記選択可能な側面内において発生するイベントに応じて少なくとも1つのブレークポイントを生成するためのコンピュータによって読み取り可能なプログラムコード手段と、
    前記少なくとも1つのブレークポイントに応じて前記非侵入型デバッギングプロセスの側面を制御するためのコンピュータによって読み取り可能なプログラムコード手段と、を備える、コンピュータによって使用可能な媒体。
  32. 前記デジタル信号プロセッサの幾つかのスレッドを選択するためのコンピュータによって読み取り可能なプログラムコード手段をさらに備える請求項31に記載のコンピュータによって使用可能な媒体。
  33. 埋め込み型トレースバッファ記録媒体に送信するために記録するための前記コンピュータによって読み取り可能なプログラムコード手段から導き出されたレコードのパケットストリームを生成するためのコンピュータによって読み取り可能なプログラムコード手段をさらに備える請求項31に記載のコンピュータによって使用可能な媒体。
JP2013151110A 2006-11-15 2013-07-19 エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル Pending JP2013254508A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/560,339 2006-11-15
US11/560,339 US8341604B2 (en) 2006-11-15 2006-11-15 Embedded trace macrocell for enhanced digital signal processor debugging operations

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009537321A Division JP2010510584A (ja) 2006-11-15 2007-11-13 エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル

Publications (1)

Publication Number Publication Date
JP2013254508A true JP2013254508A (ja) 2013-12-19

Family

ID=39327393

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009537321A Pending JP2010510584A (ja) 2006-11-15 2007-11-13 エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル
JP2013151110A Pending JP2013254508A (ja) 2006-11-15 2013-07-19 エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2009537321A Pending JP2010510584A (ja) 2006-11-15 2007-11-13 エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル

Country Status (6)

Country Link
US (1) US8341604B2 (ja)
EP (1) EP2092428A2 (ja)
JP (2) JP2010510584A (ja)
KR (1) KR101078934B1 (ja)
CN (2) CN103399819A (ja)
WO (1) WO2008061102A2 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2433750A1 (en) * 2003-06-27 2004-12-27 Ibm Canada Limited - Ibm Canada Limitee Automatic collection of trace detail and history data
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
US8380966B2 (en) * 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8504993B2 (en) * 2006-12-29 2013-08-06 Intel Corporation Virtualization of micro-code patches for probe less debug
US7681012B2 (en) * 2007-01-30 2010-03-16 Texas Instruments Incorporated Method, system and device for handling a memory management fault in a multiple processor device
US8484516B2 (en) * 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
US8381192B1 (en) * 2007-08-03 2013-02-19 Google Inc. Software testing using taint analysis and execution path alteration
US8561025B1 (en) * 2008-03-31 2013-10-15 Apigee Corporation Flow and module level detecting and debugging with inclusion of generated log statements
US20090254888A1 (en) * 2008-04-07 2009-10-08 International Business Machines Corporation Debug tours for software debugging
US8635603B2 (en) * 2008-10-21 2014-01-21 International Business Machines Corporation Handling debugger breakpoints in a shared instruction system
US8413120B2 (en) * 2008-10-27 2013-04-02 Advanced Micro Devices, Inc. Method and system for thread monitoring
JP2011100388A (ja) * 2009-11-09 2011-05-19 Fujitsu Ltd トレース情報収集装置,トレース情報処理装置,およびトレース情報収集方法
CN102687123B (zh) 2009-11-10 2015-04-01 飞思卡尔半导体公司 高级通信控制器单元和用于记录协议事件的方法
US8607202B2 (en) 2010-06-04 2013-12-10 Lsi Corporation Real-time profiling in a multi-core architecture
CN102279789B (zh) * 2010-06-13 2014-02-05 三星电子(中国)研发中心 生产阶段嵌入式系统的调试系统及其调试方法
US20120124428A1 (en) * 2010-11-17 2012-05-17 Zeng Thomas M Method and system for testing software on programmable devices
US8566645B2 (en) * 2010-12-02 2013-10-22 Advanced Micro Devices, Inc. Debug state machine and processor including the same
US8677186B2 (en) 2010-12-15 2014-03-18 Microsoft Corporation Debugging in data parallel computations
US8997066B2 (en) 2010-12-27 2015-03-31 Microsoft Technology Licensing, Llc Emulating pointers
US20120246622A1 (en) * 2011-03-23 2012-09-27 Neil Puthuff Storage of software execution data by behavioral identification
US8677322B2 (en) * 2011-06-29 2014-03-18 Microsoft Corporation Debugging in a multiple address space environment
CN102253890A (zh) * 2011-08-16 2011-11-23 北京汉邦高科数字技术有限公司 一种嵌入式调试方法
US8880958B2 (en) * 2011-09-20 2014-11-04 Qualcomm Incorporated Interleaved architecture tracing and microarchitecture tracing
US8938649B2 (en) * 2012-10-19 2015-01-20 Texas Instruments Incorporated Debug trace stream timestamping using upstream correlation
US9311209B2 (en) * 2012-11-27 2016-04-12 International Business Machines Corporation Associating energy consumption with a virtual machine
US8681166B1 (en) * 2012-11-30 2014-03-25 Analog Devices, Inc. System and method for efficient resource management of a signal flow programmed digital signal processor code
US9262163B2 (en) 2012-12-29 2016-02-16 Intel Corporation Real time instruction trace processors, methods, and systems
KR101438979B1 (ko) * 2012-12-31 2014-09-11 현대자동차주식회사 소프트웨어 검사 방법 및 시스템
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
US9594655B2 (en) 2013-07-25 2017-03-14 Altera Corporation Cache debug system for programmable circuits
US9965310B2 (en) 2013-08-28 2018-05-08 Empire Technology Development Llc Virtual machine exit analyzer
US20150106792A1 (en) * 2013-10-16 2015-04-16 Asset Intertech, Inc. Method of presenting trace data with improved efficiency by using hosted formatted output commands
US20150127927A1 (en) * 2013-11-01 2015-05-07 Qualcomm Incorporated Efficient hardware dispatching of concurrent functions in multicore processors, and related processor systems, methods, and computer-readable media
US9697005B2 (en) 2013-12-04 2017-07-04 Analog Devices, Inc. Thread offset counter
US9626313B2 (en) * 2014-12-18 2017-04-18 Qualcomm Incorporated Trace buffer based replay for context switching
US9996354B2 (en) * 2015-01-09 2018-06-12 International Business Machines Corporation Instruction stream tracing of multi-threaded processors
KR20180047196A (ko) 2016-10-31 2018-05-10 삼성전자주식회사 디버깅 정보를 기록하는 전자장치 및 제어방법
WO2021228766A1 (en) 2020-05-11 2021-11-18 Politecnico Di Milano A computing platform and method for synchronize the prototype execution and simulation of hardware device
CN115114117B (zh) * 2022-07-26 2022-12-27 南方科技大学 数据记录方法和数据记录装置
CN116502576B (zh) * 2023-06-26 2023-10-20 北京象帝先计算技术有限公司 指令流跟踪验证方法及调试系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154873A (ja) * 1999-10-01 2001-06-08 Hitachi Ltd 集積回路チップ
JP2002304291A (ja) * 2001-02-26 2002-10-18 Arm Ltd 命令セットの情報を格納するための装置及び方法
JP2004318658A (ja) * 2003-04-18 2004-11-11 Matsushita Electric Ind Co Ltd デバッグ制御装置及びその制御方法
WO2006030195A2 (en) * 2004-09-14 2006-03-23 Coware, Inc. Mehtod and system for debugging a multi- threaded program executing in a multicore architecture

Family Cites Families (159)

* 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
JPH0855023A (ja) 1994-07-25 1996-02-27 Motorola Inc データ処理システムおよびその方法
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
IL126149A (en) 1997-09-09 2003-07-31 Sanctum Ltd Method and system for protecting operations of trusted internal networks
US6567839B1 (en) 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
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
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
KR20010085997A (ko) * 1999-09-07 2001-09-07 롤페스 요하네스 게라투스 알베르투스 프로그램 스레드 디버깅 방법
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
US6725391B2 (en) * 2000-03-02 2004-04-20 Texas Instruments Incorporated Clock modes for a debug port with on the fly clock switching
US6985848B2 (en) 2000-03-02 2006-01-10 Texas Instruments Incorporated Obtaining and exporting on-chip data processor trace and timing information
JP2001356934A (ja) * 2000-03-02 2001-12-26 Texas Instr Inc <Ti> ハードウェアシステムとインタラクトするソフトウェアシステムの構成方法およびデジタルシステム
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
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
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)
CA2408457A1 (en) * 2002-10-17 2004-04-17 Ibm Canada Limited-Ibm Canada Limitee Collection and detection of differences of values of expressions/variables when debugging a computer process
US7360117B1 (en) 2002-10-24 2008-04-15 Verisilicon Holdings (Cayman Islands) Co. Ltd. In-circuit emulation debugger and method of operation thereof
US7225431B2 (en) * 2002-10-24 2007-05-29 International Business Machines Corporation Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture
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
US7370210B2 (en) 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
GB2396930B (en) 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
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
US6948155B2 (en) 2002-11-22 2005-09-20 Texas Instruments Incorporated Little offset in multicycle event maintaining cycle accurate tracing of stop events
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 松下電器産業株式会社 プロセッサおよびコンパイラ
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
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
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
WO2005076139A1 (en) 2004-02-05 2005-08-18 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
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
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
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
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
US7657791B2 (en) 2006-11-15 2010-02-02 Qualcomm Incorporated Method and system for a digital signal processor debugging during power transitions
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
DE102007009909B4 (de) 2007-02-28 2016-09-08 Globalfoundries Inc. Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung
US8484516B2 (en) 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
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
US7996823B2 (en) * 2007-05-31 2011-08-09 International Business Machines Corporation Mechanism to provide debugging and optimization in policy and knowledge controlled distributed computing systems, through the use of tagged policies and knowledge representation elements
US8001428B2 (en) 2007-10-29 2011-08-16 Arm Limited Packing trace protocols within trace streams
US8739133B2 (en) * 2007-12-21 2014-05-27 International Business Machines Corporation Multi-threaded debugger support

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154873A (ja) * 1999-10-01 2001-06-08 Hitachi Ltd 集積回路チップ
JP2002304291A (ja) * 2001-02-26 2002-10-18 Arm Ltd 命令セットの情報を格納するための装置及び方法
JP2004318658A (ja) * 2003-04-18 2004-11-11 Matsushita Electric Ind Co Ltd デバッグ制御装置及びその制御方法
WO2006030195A2 (en) * 2004-09-14 2006-03-23 Coware, Inc. Mehtod and system for debugging a multi- threaded program executing in a multicore architecture

Also Published As

Publication number Publication date
WO2008061102A3 (en) 2008-11-20
WO2008061102A2 (en) 2008-05-22
KR101078934B1 (ko) 2011-11-01
CN101529393B (zh) 2013-09-18
US8341604B2 (en) 2012-12-25
EP2092428A2 (en) 2009-08-26
JP2010510584A (ja) 2010-04-02
KR20090091170A (ko) 2009-08-26
US20080115115A1 (en) 2008-05-15
CN103399819A (zh) 2013-11-20
CN101529393A (zh) 2009-09-09

Similar Documents

Publication Publication Date Title
JP2013254508A (ja) エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル
JP6423037B2 (ja) マルチスレッドプロセッサのためのインタースレッドトレースアライメント方法およびシステム
JP5059869B2 (ja) 信頼される/信頼されないデジタル信号プロセッサデバッギング動作に関する方法及びシステム
US8370806B2 (en) Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
KR101083182B1 (ko) 비-간섭적 디지털 신호 프로세서 디버깅 동안 명령 스터핑 동작들을 위한 방법 및 시스템
KR101097620B1 (ko) 전력 트랜지션들 동안 디지털 신호 프로세서를 위한 방법 및 시스템

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20140617

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141111