JP2010510585A - 非侵入型デジタル信号プロセッサデバッギング中における命令スタッフィング動作に関する方法及びシステム - Google Patents
非侵入型デジタル信号プロセッサデバッギング中における命令スタッフィング動作に関する方法及びシステム Download PDFInfo
- Publication number
- JP2010510585A JP2010510585A JP2009537322A JP2009537322A JP2010510585A JP 2010510585 A JP2010510585 A JP 2010510585A JP 2009537322 A JP2009537322 A JP 2009537322A JP 2009537322 A JP2009537322 A JP 2009537322A JP 2010510585 A JP2010510585 A JP 2010510585A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- stuff
- debugging process
- digital signal
- debugging
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
通信(例えば、CDMA)システムにおける送信を処理するためであることを含む(ただし、前記処理することに限定されない)デジタル信号プロセッサの設計及び使用に関する技法。マルチスレッド化デジタル信号プロセッサの処理パイプラインにおいて命令をスタッフィングすることは、デバッギング機構内においてコアプロセッサプロセス及びデバッギングプロセスを動作させることを提供する。スタッフ命令をデバッギングプロセスレジストリ内に書き込み、スタッフコマンドをデバッギングプロセスコマンドレジスタ内に書き込むことは、前記スタッフ命令を実行すべき前記マルチスレッド化デジタル信号プロセッサの予め決められたスレッドを識別することを提供する。前記命令スタッフィングプロセスは、前記予め決められたスレッド上における予め決められた実行ステージ中にデバッギングプロセス制御再開コマンドを発行し、前記デバッギングプロセス中に前記スタッフ命令を実行するように前記コアプロセッサに指示する。これで、前記コアプロセッサは、前記スタッフィングされた命令を前記コアプロセッサプロセス及び前記デバッギングプロセスと関連して実行することができる。
【選択図】図9
【選択図】図9
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アプリケーション、例えば高度な電気通信アプリケーション、を開発及び運用する際には、精巧であるがその一方で非侵入型のデバッギングソフトウェアが必要である。すなわち、デバッギングソフトウェアアプリケーションは、ソフトウェアの欠陥及び運用上の問題の訂正をモニタリング、試験、及びサポートする上で十分に強固でなければならないだけでなく、デバッギング動作中にコアプロセッサソフトウェアと干渉しないように動作できなければならない。さもないと、コア処理ソフトウェア内のいずれの問題も、該デバッギングソフトウェアを使用中に検出することができず又は適切に検出することができない。
さらに、非侵入型デバッギングプロセス中に又は非侵入型デバッギングプロセスと関連して、コアプロセッサ動作の様々な側面を決定するための様々な診断プロセス、解析プロセス、及びその他のプロセスを動作させる必要性がしばしば存在する。該診断プログラム、解析プログラム、及び同様のプログラムは、ユーザーが希望することができる又は関連づけられたデバッギングプロセスが必要になることがある特定のタイプ及び量の情報に従って異なることができる。従って、デバッギングプロセス内に動的に命令を挿入するか又はスタッフィングできることは、有意な利点を有することが可能である。
しかしながら、現時点においては、ここにおいて説明されるマルチスレッド化デジタル信号プロセッサと関連してコアプロセスをデバッギングするために命令スタッフィング動作を実施する既知の方法は存在しない。さらに、スタッフィングされた命令をマルチスレッド化デジタル信号プロセッサの1つ、2つ、又はそれよりも多いスレッド上において動作させる機能を実行することによってスレッド選択式であることができる命令スタッフィングプロセスは存在しない。さらに、デバッギングプロセスがコア処理機能及び非侵入型デバッギングプロセスの両方と連係又は関連してコアプロセッサにおいて命令を実行するのを可能にする命令スタッフィングプロセス又は機構は知られていない。
命令スタッフィング動作が有利である理由は、コアレジスタ及びメモリを読み取る及び/又は書き込むのが目的であることを含む。さらに、デバッギングプロセス動作は、様々な解析的アプリケーションプログラムの使用を含む要約をユーザー解析用に作成することができる。さらに、命令動作は、ユーザーが特定のタイプのデバッギングに適用可能な様々な命令をデバッギングプロセス内に入れるのを可能にすることができる。
従って、DSPとともに動作するためのデバッギングプロセス及びシステムであって、非侵入型デジタル信号プロセッサデバッギング動作中における命令スタッフィング動作能力を提供するデバッギングプロセス及びシステムの必要性が存在する。
マルチスレッド化デジタル信号プロセッサデバッギング動作に適用可能な命令スタッフィングプロセス及び機構の必要性が存在する。
スタッフィングされた命令をマルチスレッド化デジタル信号プロセッサの1つ、2つ、又はそれよりも多いスレッド上において動作させる能力を提供することによってスレッド選択式であることができる命令スタッフィングプロセス及び機構の必要性が存在する。
デバッギングプロセスがコア処理機能及び非侵入型デバッギングプロセスの両方と連係又は関連してコアプロセッサにおいて命令を実行するのを可能にする命令スタッフィングプロセス又は機構の必要性が存在する。
さらに、非侵入型デジタル信号プロセッサデバッギング動作中にコアプロセスにおいて命令及びデータを処理するための非侵入型ソフトウェアデバッギングプロセス命令スタッフィング動作の必要性も存在する。
マルチスレッド化デジタル信号プロセッサを含むデジタル信号プロセッサに関する非侵入型のスレッド選択式デバッギング方法及びシステムを提供するための技法が開示され、前記技法は、非侵入型デバッギング動作中に命令スタッフィング動作を提供する。ここにおいて開示される前記方法及びシステムは、デジタル信号プロセッサの動作と、パソコン、パーソナルデジタルアシスタント、ワイヤレスハンドセット、及び同様の電子デバイスにおいて動作するアプリケーションを含むますます強力になるソフトウェアアプリケーションに関するデジタル信号プロセッサ命令の効率的な使用と、の両方を向上させ、さらに関連するデジタルプロセッサの速度及びサービス品質を向上させる。
開示される主題の一側面により、マルチスレッド化デジタル信号プロセッサの処理パイプラインにおいて命令をスタッフィングするための方法及びシステムは、向上されたソフトウェア命令デバッギング動作を提供する。前記方法及びシステムは、前記デジタル信号プロセッサと関連づけられたコアプロセッサ内におけるコアプロセッサプロセス及び前記デジタル信号プロセッサのデバッギング機構内におけるデバッギングプロセスを動作させることを提供する。前記デバッギング機構は、前記コアプロセッサと関連づけられる。前記開示される主題は、前記デバッギングプロセスと関連づけられたデバッギングプロセスレジストリ内にスタッフ命令を書き込むことと、前記スタッフ命令に応じて前記デバッギングプロセスレジストリと関連づけられたデバッギングプロセスコマンドレジストリ内にスタッフコマンドを書き込むこと、とを含む。前記スタッフコマンドは、前記スタッフ命令を実行すべき前記マルチスレッド化デジタル信号プロセッサの予め決められたスレッドの識別を提供する。本開示は、前記予め決められたスレッドにおける予め決められた実行ステージ中に前記コアプロセッサからデバッギングプロセス制御再開コマンドを発行し、前記コアプロセッサが前記デバッギングプロセス中に前記スタッフィングされた命令を実行するように指示する。本開示は、前記スタッフィングされた命令を前記コアプロセッサプロセス及び前記デバッギングプロセスと関連して実行するために前記スタッフィングされた命令を前記コアプロセッサに提供する。
開示される主題のこれらの利点とその他の利点、及び追加の斬新な特長は、ここにおいて提供される説明から明確になるであろう。この発明の概要の意図は、請求される主題に関する包括的な説明を提供することではなく、主題の機能の一部について簡単に概説することである。ここにおいて提供されるその他のシステム、方法、特長及び利点は、以下の図及び発明を実施するための形態を検討し次第当業者に明確になるであろう。これらのすべての追加のシステム、方法、特長及び利点は、この説明の中に含められ、さらに添付される請求項の適用範囲内に含められることが意図される。
開示される主題の特長、性質、及び利点は、以下の発明を実施するための形態を図面と併読することでより明確になるであろう。なお、図面全体において同様の参照文字は同様の要素を識別する。
本実施形態を実装することができる通信システムの単純化されたブロック図である。
本実施形態の教示を実行するためのDSPアーキテクチャを示す。
マルチスレッド化デジタル信号プロセッサの一実施形態のアーキテクチャブロック図を提供する。
デジタル信号プロセッサの制御ユニット、命令ユニット、及びその他の機能上の構成要素に関するプロセスの流れのアーキテクチャ図をさらに示した図である。
本開示のISDB/JTAGインタフェース上の特長を適用するデジタル信号プロセッサコアの一定の側面を開示した図である。
ここにおいて開示されるデバッギング手順の一定の側面を実行するためのISDB JTAGSync回路の一側面を示した図である。
本開示が関係するデバッギング動作モードを含むデジタル信号プロセッサの動作モードに適用可能なプロセス流れ図である。
本開示の実施形態に適用可能なブレークポイント処理方式を描いた図である。
開示される主題の一実施形態に関するISDBコマンドレジスタ内容を示した図であり、開示されるプロセスを開示するための命令スタッフィングレジスタを含む。
非侵入型デバッギングプロセスと関連する命令スタッフィングに関する開示されるプロセスを描くための処理タイミングサイクル図である。
マルチスレッド化デジタル信号プロセッサに関する非侵入型スレッド選択式デバッギング方法及びシステムに関する開示される主題は、ここにおいて提示される利益が有利であることができるあらゆる型のマルチスレッド化処理に関して用途を有する。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デバッギングソフトウェアと通信するためにデバッギングプロセスインタフェースカードとインタフェースすることができ、すべてJTAGインタフェース84を通じて行うことができる。ホストデバッギングプロセスソフトウェアは、ISDB制御レジスタを読み取る及び書き込むことによってISDB82と対話することができる。通信は、例えば、読み取り/書き込みの対象となるISDBレジスタを識別する40ビットパケット、及び32ビットデータペイロードを通じて行うことができる。この動作をサポートするパケットフォーマットは、各々の幅が32ビットであることができる最大で64の制御レジスタであることができる。
図4は、プロセッサパイプライン46に関する制御機能のうちの多くの制御機能を実行する制御ユニット(CU)112を含むDSP40に関するミクロアーキテクチャ110の概略図である。CU112は、命令をスケジューリングし、3つの実行ユニットであるシフト型ユニット(SU)116、乗算型ユニット(MU)118、及びロード/ストアユニット(DU)120に命令を発行する。CU112は、スーパースカラー従属性検査も行う。バスインタフェースユニット(BIU114)122は、IU114及びDU120をシステムバス(示されていない)にインタフェースする。SLOT0及びSLOT1パイプラインは、DU120内にあり、SLOT2は、MU118内にあり、SLOT3はSU116内にある。CU112は、ソースオペランド及び制御バスをパイプラインSLOT0:SLOT3に提供し、GRF及びCRFファイルアップデートを処理する。CU112は、割り込み及びリセット等の外部入力を受け入れ、ISDB/ETM122をサポートする。CU112は、アドレス翻訳中に発生した保護違反に起因する例外も処理する。
ISDB82は、3つのドメイン、すなわち、JTAG84を通じてのホストデバッギングソフトウェア、IU114及びCU112を通じてのDSP40コア、及びマルチコアデバッグ(MCD)信号インタフェースを通じてのシステム内に存在するその他のコアとインタフェースする。ホストデバッギングソフトウェアとDSP40コアとの間の主インタフェースは、ISDB82レジスタと呼ばれる一組のJTAGアクセス可能レジスタである。ホストデバッギングソフトウェアは、一連のISDB82レジスタ読み取り及び書き込みを実行することによって様々なデバッギングプロセスタスクを実行する。
ISDB82は、JTAGインタフェース84を通じて試験環境(この場合は、PC上に常駐するデバッギングプロセスソフトウェアと通信するPOD又はデバッギングプロセスインタフェースカード)と通信する。ホストデバッギングプロセスソフトウェアは、ISDB制御レジスタを読み取る及び書き込むことによってISDBと対話する。通信は読み取る及び/又は書き込むべきISDBレジスタ及びこの命令スタッフィングプロセスを含む様々なISDBコマンドに関する32ビットデータペイロードを識別する40ビットパケットを通じて発生する。
図5は、開示される主題のデバッギング機構とコアプロセッサとの間における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、IU114及びCU112と通信する。特に、ISDB JTAGSync回路136は、CU112のIU114、ISDB論理回路144、及びCU ISDBコントローラ146をインタフェースする。CU ISDBコントローラ146は、CU ISDB論理回路148、及びISDBコントローラ138と通信する。ISDBコントローラ138からの制御出力は、ISDBデータ出力154と、ISDBリセット信号150と、ISDB割り込み152と、を含む。ISDBコントローラ138へのさらなるインタフェースは、MCDインタフェース156と、ETMブレークトリガ158と、を含む。
ISDB82は、MCDインタフェース156を通じてMSMレベルでマルチコアデバッグに関するフックアップを提供する。MCDインタフェース156は、コアプロセッサ70のブレーク又は再開をトリガする一対の入力信号及びコアプロセッサ70がデバッギングプロセス又は再開プログラムの実行に入ることを示す一対の出力信号から成る。MCDブレークトリガは、エッジに基づくプロトコルに従うことができ、従って、外部ブレークポイントトリガにおいて立ち上がりエッジが検出されたときには、外部ブレークポイントスレッド番号マスクにおいて示されたスレッドが実行を中断してデバッグモードに入る。同様に、MCD外部再開トリガにおいて立ち上がりエッジが検出されたときには、外部再開スレッド番号マスクにおいて示されたスレッドが、デバッグモードにある場合に、通常のプログラムの実行を再開する。
ISDB82制御論理は、2つのブロック、すなわち、ISDB82のISDBコントローラ138及びCU112のCU ISDBコントローラ146にわたって拡散される。ISDBコントローラ138は、ISDBイネーブル、ISDBバージョン、及びISDB汎用レジスタレジスタを実装するタスクを処理する。MCD外部ブレーク及び再開トリガ156及びETMブレークトリガ158は、さらなる処理のためにCU 112に転送される前にコアプロセッサ70クロックと同期化される。ISDBコントローラ138は、コアプロセッサ70のデバッグモード状態に基づいてMCDブレークトリガ及びMCD再開トリガも生成する。ISDBコントローラ138は、DSP40に送出された信号、例えば、ISDB割り込み信号、ブレークイベント信号、及びその他の信号、に関するパイプラインステージを追加する。制御論理のうちでブレークポイント処理、ミクロコマンド生成器、メールボックス及び状態論理を含む残りの部分は、CU ISDBコントローラ146によって処理される。
CU112は、(a)ブレークポイントを処理する及び各スレッドへのブレークトリガを生成する、(b)ミクロブレークコマンド及びミクロ再開コマンドを生成する、(c)ISDB82状態及びメールボックスレジスタを維持する、及び(d)一定のISDB82レジスタを実装するというタスクを処理することができる回路及び命令を含む。CU112は、すべてのブレークポイントを処理してCU ISDBコントローラ126のミクロコマンド生成器へのマクロブレーク要求を生成するための図8に示されるようなブレークポイント処理論理(BPL)ブロックを含む。ミクロコマンド生成器は、マクロブレーク要求を命令スタッフコマンド、命令ステップ及び再開コマンドとともに処理し、ミクロブレーク及び再開コマンドをパイプライン制御のためにCU112に発行する。
CU ISDBコントローラ128は、ブレーク信号及び戻された再開肯定応答信号に基づいてISDB82の状態を維持する。CU ISDBコントローラ146のメールボックス機能は、ホストデバッグソフトウェアとDSP40コアプロセッサとの間の通信に関して用いられるメールボックスレジスタを維持する。これらのメールボックス機能は、ISDB82状態レジスタも含む。
ここにおいて開示される命令スタッフィング動作を非侵入型デバッギング動作と関連して実行するための例示的回路を実証するために、図6は、ISDB JTAGSync回路160を含む。ISDB JTAGSync回路160は、DSP40がISDB制御レジスタを読み取る及び書き込むために用いることができるISDB試験データレジスタ162を含む。ISDB JTAGSync回路160は、DB_tckにおいて動作するISDB試験データレジスタ162とDSP40クロック領域において動作するISDB制御レジスタ164との間における同期化論理を提供する。ISDB制御レジスタを読み取る及び書き込むことによって、DSP40は、ここにおいて開示される命令スタッフィング動作を含む、ISDB82によってサポートできるような様々なデバッギングプロセスタスクを実行する。
図6の実装においては、ISDB JTAGSync回路160は、JTAG_isdb_chain_out信号166を生成するためにJTAG_isdb_chain_in信号164を受信してISDB試験データレジスタ204に入れる。ISDB試験データレジスタ162は、読み取り/書き込み(R/W)ビット167と、アドレスビット[6:0]168と、データビット[31:0]170と、を含む。R/Wビット167内の値は、Sync回路出力174及びCU112_trustedDebug入力176と同様に、ANDゲート172に行く。JTAG_isdb_chain_uptake_tkl信号178及びISDB_CLK信号180は、Sync回路174の動作を制御する。アドレスビット168からのアドレス情報は、アドレスデコード回路176によって受け取ることができ、アドレスデコード回路176は、ISDBレジスタ184をフィード(feed)する。IDSBレジスタ184は、ANDゲート172からの書き込みイネーブル信号186に応じてデータビット[31:0]を有するデータを転送する。
ISDB JTAGSync回路130は、DB_JTAGブロックのJTAG TCKにおいて実行中のTAPコントローラとISDBコントローラ138、CU112_ISDBCtrl146及びIU114において分散されたDSP40コアクロックにおいて実行中のISDBレジスタ184との間における同期化ブリッジとして働く。ISDBコントローラ138及びCU ISDBコントローラ146は、ミクロコマンド生成器、ブレークポイント処理論理及び様々なISDBレジスタ184(構成、メールボックス、コマンド、等)から成るISDB82の制御論理を含む。これらのブロックは、DSP40コアにおいてホストデバッギングソフトウェアによって開始される異なるデバッギングデバッギングプロセスタスクを実行する。ISDB割り込み信号は、DSP
サブシステムに送出され、DSPサブシステムにおいてその他の割り込みソースと結合されてDSPコア70に戻される。同様に、ISDB82リセットが、その他のリセットソース(電源オンリセット、ソフトウェアリセット、等)と結合されてコアへのリセットがトリガされる。ISDB82は、MCD信号インタフェースを通じて外部システム(例えば、DSP40の外部のMSMシステム)とインタフェースする。DSP40及び外部システム内のその他のコアの同時デバッギングをサポートするために2対のブレーク及び再開トリガが提供される。
サブシステムに送出され、DSPサブシステムにおいてその他の割り込みソースと結合されてDSPコア70に戻される。同様に、ISDB82リセットが、その他のリセットソース(電源オンリセット、ソフトウェアリセット、等)と結合されてコアへのリセットがトリガされる。ISDB82は、MCD信号インタフェースを通じて外部システム(例えば、DSP40の外部のMSMシステム)とインタフェースする。DSP40及び外部システム内のその他のコアの同時デバッギングをサポートするために2対のブレーク及び再開トリガが提供される。
図7は、DSP40の様々なモード制御に関する側面に関する処理モード図190を示し、デバッギングプロセス中におけるISDB82の動作を含む。図7においては、DSP40は、全スレッドに対してグローバルであり個々のスレッドに対してローカルである処理モードをサポートする。各DSP40ハードウェアスレッドは、すべて図7において示されるように、2つの実行モード、ユーザー(USER)モード192とスーパバイザモード194、及び3つの非処理モードすなわち待機(WAIT)モード196、OFFモード198、及びデバッグモード200、を個々にサポートする。スレッドのモードは、その他のスレッドと独立しており、例えば、1つのスレッドは待機モード196であることができ、他のスレッドは、ユーザーモード192であり、以下同様である。
図7の1つのスレッドごとのモード状態図は、様々な命令又はイベントによってサポートされる。これらは、“例外”すなわち内部例外イベントと、“Int”すなわち外部割り込みイベントと、“RTE”すなわち例外モードからのソフトウェアリターン命令と、“SSR”すなわちSSRレジスタ命令の更新と、あらゆるモードから入力することができる“停止”すなわちソフトウェア停止命令と、同じくあらゆるモードから入力することができる“開始”すなわちソフトウェア開始命令と、“トラップ”すなわちソフトウェアトラップ命令と、“待機”すなわちソフトウェア待機命令と、“再開”すなわちソフトウェア再開命令と、“DE”すなわちデバッグイベントと、“DR”すなわちデバッグ命令と、を含む。請求される主題の異なる実装における機能は、ここにおいて提示される機能とわずかに異なることができる一方で、“開始”、“待機”、“再開”、“DE”、及び/又は“DR”の意味は、請求される主題の適用範囲と一致する最も広義の解釈を行うことができる。
レジスタは、DSP40においてユーザーモード192及びスーパバイザモード194の両方において利用可能である。ユーザーモードレジスタは、一組の汎用レジスタ及び一組の制御レジスタに分割される。汎用レジスタは、アドレス生成、スカラー及びベクトル算術を含むすべての汎用演算に関して用いられる。制御レジスタは、ハードウェアループ、プレディケート、等の特殊目的の機能をサポートする。汎用レジスタは、幅が32ビットであり、単一レジスタとして又は2つのレジスタの整列された対としてアクセスすることができる。汎用レジスタファイルは、命令に関する全オペランドを提供し、ロード/ストアに関するアドレスと、数値命令に関するデータオペランドと、ベクトル命令に関するベクトルオペランドと、を含む。
デバッグモード200は、スレッドがISDB82からのコマンドを待っている特別な状態を提供する。例えばソフトウェアブレークポイント命令の実行、ISDB82からのブレークコマンド、又はハードウェアブレークポイントの発生によって、ISDBデバッグイベントが生じるごとに、示されたスレッドは、デバッグモード200に入ることができる。デバッグモード200においては、コアは、JTAGインタフェース84からのコマンドを介してISDB82によって制御される。ISDB82が再開コマンドの実行に起因してスレッドをリリースすると、スレッドは、現在のモード設定に従って動作を再開することができる。スレッドがデバッグモード200にあるときには、ISDB82によって制御され、その他のスレッドによって制御することはできない。該制御は、ここにおいて開示される命令スタッフィング動作を通じて提供することができる様々な命令の実行を含むことができる。デバッグモード200におけるスレッドをターゲットにした、実行中のスレッドからの待機命令、再開命令、開始命令、又は停止命令は、無視することができる。同様に、マスク不可割り込み(NMI)は、デバッグモード200にあるスレッドは無視することができる。
ハードウェアリセット(HARDWARE RESET)モード(図7に示されていない)及びデバッグモード200は、全スレッドに対してグローバルである。ハードウェアリセットピンがアサートされるごとに、あらゆるスレッドがどのような処理状態であるかにかかわらず、DSP40は、ハードウェアリセットモードになることができる。ハードウェアリセットモードにおいては、全レジスタが各々のリセット値に設定される。どのような処理も、ハードウェアリセットピンがデアサートされるまで行うことができない。リセットピンがアサートされた時点で、プロセッサは、リセットモードに移行することができ、全レジスタをハードウェアリセット値にリセットすることができる。リセットピンがデアサートされた後は、スレッドT0にソフトリセット割り込みを与えることができる。このことは、スレッドT0にスーパバイザモード194に入らせてリセットされたベクトル位置での実行を開始させることができる。その他の全スレッドは、オフ状態であることができる。この時点においては、ソフトウェアは、各スレッドに関するモード移行を個々に自由に制御することができる。
図8において、CU ISDBコントローラ146のBPL回路210は、ハードウェアブレークポイント0/1(HWBKPT0 212及びHWBKPT1 214)と、ソフトウェアブレークポイント(SWBKPT 216)と、JTAGインタフェース84ブレークポイント(JTAGBKPT 218)と、ETM(埋め込み型トレースマクロ)ブレークポイント(ETMBKPT220)と、外部ブレークポイント(EXTBKPT222)と、を含む6つの異なるソースからのブレークトリガを含む。ブレークトリガ212乃至222及びデバッグモード状態入力214は、エンコードブレーク符号器216に行き、DSP40にデバッグモード200において動作させる。符号器226からの出力は、3つのブレークポイント情報ビット228と、ブレークポイント有効ビット230と、を含む。ブレークポイント情報データ228は、ブレークポイント情報回路232に入ってブレークポイント情報JTAGインタフェースコマンド234を生じさせる。ブレークポイントビット230は、さらに、ORゲート入力236及びリセット回路238入力も生成する。リセット回路238は、UCG再開スレッド番号又はリセット入力242のいずれかを受け取り、ORゲート246内へのリセット制御出力244を生成する。有効ビット236又はリセット出力244のいずれも、ORゲート246にBPLブレークポイント出力248を生成させることができる。
BPL回路210内のブレークトリガは、対応するスレッド番号マスクとともに処理され、各々のスレッドに対するマクロブレークトリガが生成される。対応するスレッドが再開されるまでマクロブレークトリガ248bpl_breakTnum_ANY[0]が維持される。BPL回路210において用いることができるパイプラインステージ数は、正確なブレークポイントであるハードウェアブレークポイントによってドライブされる。すなわち、ハードウェアブレークポイントマッチをトリガする命令は実行してはならない。スレッドは、その命令までプログラムを実行後にデバッグモードに切り換わる。開示される実施形態は、ブレークトリガが到着してから1サイクル後にマクロブレークトリガを提供する。そのため、ブレーク有効入力226がラッチされたバージョン入力242と論理的にORされてbpl_breakTnum_ANY[0]出力248が生成される。
ブレークポイントを用いることで、DSP40の6つのスレッドは、個々にデバッグモード200に入ること及びデバッグモード200から出ることができる。ブレークポイントトリガは、ISDB82においてサポートされる5つの異なる種類のブレークポイントに対応する5つのソースから来ることができる。スレッドは、ブレークポイントをヒットした時点で、現行モード(例えば、待機/実行(RUN))からデバッグモード200に移行する。デバッグモード200において、スレッドは、ISDB82からのコマンドを待つ。OFFモード198にあるスレッドはパワーダウンされ、ISDB82からのコマンドを受け入れることができない。デバッグモード200に入るレーテンシーは、実装によって定義され、例えば、本開示においては、イベント電力崩壊に関連するとして定義される。例えば、一実装は、デバッグモード200に入る前に、所定の動作を完了させる、例えば未解決のロード要求を終了させる、ことを選択することができる。一実施形態においては、スレッド識別子レジスタは、8ビットの読み取り/書き込みフィールドを含み、ソフトウェアスレッド識別子を保持するために用いられる。このフィールドは、ブレークポイントとマッチさせるためにハードウェアデバッギングプロセスによって用いられる。
従って、ISDB82は、4つの動作、すなわち、ブレーク、再開、スタッフ命令、単一ステップ、を有する。ミクロアーキテクチャの観点からは、2つの基本動作、ブレーク及び再開、が存在する。ミクロブレークコマンド及びミクロ再開コマンドは、ブレーク、スタッフ命令及び単一ステップの動作を指す。例えば、スタッフ命令動作は、スタッフ命令動作後にミクロ再開コマンドによって後続されるミクロブレークコマンドであるとみることができる。ブレークポイント動作は、ここにおいて説明されるように、5つのソースからトリガすることができる。各ブレークソースは、対応するトレッド番号マスク値において指定される複数のスレッドをブレークすることができる。
図9は、開示される主題の一実施形態に関するISDBレジスタの内容を示す。これらのISDB制御レジスタは、異なるデバッギングプロセスタスクを実行するように及びプロセッサと通信するようにISDB82を構成するためにホストシステムによって用いることができる。これらのレジスタは、JTAGインタフェースを通じてアクセス可能である。ISDB状態レジスタ(ISDBST)は、ISDBの現在の状態を示し、“0”値はスタッフ命令が成功であることを示し、“1” 値はスタッフ命令が例外を発生させたことを示すスタッフコマンド状態ビットを含む。ホストシステムは、ISDB82の様々な特長をイネーブル又はディスエーブルにするためにISDB構成レジスタ0及び1(ISDBCFG0、ISDBCFG1)を用いることができる。ブレークポイント情報レジスタ(BRKPTINFO)は、デバッグモードにあるスレッドに関して、いずれのトリガがブレークポイントを発生させたかを示す。ブレークポイントPCレジスタ0及び1(BRKPTPC0、BRKPTPDC1)は、BRKPTPC0、制御ハードウェアブレークポイント0及び1とそれぞれ同一である。ブレークポイント構成レジスタ(BRKPTCFG0及びBRKPTCFG1)は、ブレークポイント0及び1を構成するためにそれぞれ用いられる。スタッフ命令レジスタ(STFINST)は、32ビットスタッフ命令を考慮する。ISDBメールボックスレジスタ(ISDBMBXIN及びISDBMBXOUT)を用いてISDBとコアプロセッサ70との間でデータを交換する。ISDBコマンドレジスタ(ISDBCMD)は、様々なコマンドをISDB82に発行するためにDSP40によって用いられる。このISDBイネーブルレジスタ(ISDBEN)は、ISDBの動作をイネーブルにし、“セキュリティ”ISDBイネーブルビット及びISDBクロックの状態を検査することを可能にする。ISDBバージョンレジスタ(ISDBVER)は、チップ内に存在するISDB設計 のバージョンを読み取る。ISDB汎用レジスタ(ISDBGPR)は、ISDB82と関連づけられた一般的機能に関する記憶領域を提供する。
ISDBコマンドレジスタは、開示される実施形態においては、DSP40内に値が出力される32ビットレジスタを提供する。ISDBコマンドレジスタは、外部ハードウェアを制御するために、及びMSM特有の方法で用いることができる。ISDB制御レジスタは、JTAGインタフェース84を通じてデバッギングプロセスホストソフトウェアによってアクセスされ、3つのユニット、ISDB82、IU 114及びCU 112全体に分散される。すべてのレジスタをISDB82内に入れる代わりに、これらのレジスタは、レジスタ値が主に用いられるユニット内にローカルで配置される。
図9のISDBレジスタは、ISDB82、IU 114及びCU 112の間で次の形で分散される。すなわち、ISDB82は、ISDBイネーブルレジスタと、ISDBバージョンレジスタと、ISDB汎用レジスタと、を含む。CU112は、ISDB制御メールボックス、ブレークポイント論理、及びミクロコマンド生成器ブロックが存在し、ISDB構成レジスタ(ISDBCFG0及びISDBCFG1)と、コマンドレジスタ(ISDBCMD)と、ブレークポイント構成レジスタ(BRKPTCFG0及びBRKPTCFG1)と、ブレークポイント情報レジスタ(BRKPTINFO)と、ブレークポイント状態レジスタ(ISDBST)と、ブレークポイントメールボックスinレジスタ(ISDBMBXIN、ISDBMBXOUT)と、を含む。IU114 112レジスタブロックは、ブレークポイントコマンドレジスタ(BRKPTPC0、BRKPTPC1)と、ブレークポイント構成レジスタ(BRKPTCFG0、BRKPTCFG1)と、本開示に該当するスタッフ命令レジスタ(STFINST)と、を含む。
ここにおいて開示される命令スタッフィングは、ISDB82がコアにおいて命令を実行するための方法及びシステムを提供する。命令は、様々な理由でスタッフィングされる。これらの理由は、コアレジスタ及びメモリを読み取る及び/又は書き込むことと、ユーザーのために要約が作成された(abstracted)プロセス動作及びユーザーによって入力された命令をデバッギングすること、とを含むことができる。命令をスタッフィングするために、ユーザーは、最初に、ISDBコマンドレジスタのSTFINSTレジスタを実行すべき32ビット命令によってプログラミングする。次に、ISDBコマンドレジスタが書き込まれ、最初にコマンドフィールドがSTUFFコードに設定される。次に、プロセスは、命令を受け取るためにスレッド番号フィールドをスレッドに設定する。好ましいことに、スレッド番号フィールド内の1つのビットを設定することができる。命令をスタッフィングできるためにはその前に、選択されたスレッドがデバッグモード200になければならない。スレッド番号内の2つ以上のビットが設定される場合又は選択されたスレッドがデバッグモードにない場合は、結果は未定義である。次に、命令スタッフィングプロセスは、(ユーザーモード192又はスーパバイザモード194において用いるために)スタッフィングされた命令の特権レベルを設定することを含む。STUFFコマンドを発行後は、選択された特権レベルを有する選択されたスレッドにおいて命令を実行することができる。命令スタッフィング中には、プログラムカウンタ(PC)は進まない。PCを分岐のために用いるスタッフィングされた命令、又は例外が生じさせる命令は、スタッフィングされた命令が実行するスレッドに関して現在のPC値を用いることができる。
スタッフィングされた命令が例外を生じさせる場合は、ISDB状態レジスタ、ISDBST、は、例外が発生したことを示すことができる。スレッドは、デバッグモードにとどまることができる。特定のことに関してアーキテクチャ化されたレジスタは、例外状態を反映させることができる。例えば、TLBミス例外を発生させるLOAD命令がスタッフィングされる場合は、例外レジスタ(ELR)を現在のPCに設定することができ、PCを例外ベクトルに変更することができ、状態レジスタ(SSR)は正確な原因符号及び状態情報を保持することができる。デバッギングプロセスソフトウェアは、例外が発生したかどうかを確認するために例外を発生させた命令をスタッフィング後にISDBSTに問い合わせることができる。例外が発生した場合は、制御レジスタ転送命令をスタッフィングすることを介してSSRレジスタを読み取って例外原因を決定することができる。
例外が認識された時点で、デバッギングプロセスは、状況の処理の仕方に関して幾つかの選択肢を有する。例えば、デバッギングプロセスは、例外リターンポイントにおいてソフトウェア又はハードウェアブレークポイントをプログラミングし、ハンドラを実行するためにスレッドを再開させるのを選択することができる。さらに、デバッギングプロセスは、オペレーティングシステム“ヘルパー関数”にスレッドをリダイレクションすること、及び単一ステップ関数を用いてハンドラ内を進むことが可能である。さらに、デバッギングプロセスは、手作業で問題を解決することができる(例えば、TLBをリロードする)。正確な戦略は、オペレーティングシステム及び/又はデバッギングプロセスの実装に委ねられる。
レジスタ、キャッシュ、及びメモリは、該当する命令シーケンスをスタッフィングすることによってアクセスすることができる。デバッギングプロセスソフトウェアは、該当する制御レジスタ転送命令をスタッフィングしてコアレジスタとISDBメールボックスとの間でデータを移動させることによってスレッドレジスタを読み取る/書き込むことができる。この命令は、実行が行われないようにスーパバイザ特権レベルを用いることによってスタッフィングすることができる。キャッシュ内容(データ及びキャッシュタグ値)は、該当するキャッシュ維持及びロード命令をスタッフィングすることによって読み取る及び/又は書き込むことができる。
メモリは、該当するLOAD/STORE命令をスタッフィングすることによって読み取る/書き込むことができる。MMUがイネーブルにされたときには、ロード及びストアは、常に仮想アドレスを用いて実行する。MMUは、キャッシュメモリ内に格納できる情報、例えばキャッシャ可能、キャッシュ不能、等のシグナリング、を提供する。例えばキャッシュされないメモリ内のデバイスから読み取るために特定のソースからメモリにアクセスするのが希望される場合は、デバッギングプロセスソフトウェアは、MMUがこのアクセスに関して適切に構成されることを確認する。一定のデバッグシナリオに関して、デバッギングプロセスソフトウェアは、オペレーティングシステムの助けを借りて特定のシナリオを構成することができる。
キャッシュ内容は、あたかもスタッフィングされた命令が通常のプログラムの流れから来たものであるかのように影響を受ける。例えば、データキャッシュ内においてミス(miss)するキャッシュ可能ロードは、ラインの交換を生じさせることがある。1つのスレッドがデバッグモードにあり、その他のスレッドが実行中である場合は、キャッシュ内容は適宜変わることができる。キャッシュ又はキャッシュされないロードにおいてミスするロードの場合は、スタッフコマンドは、ロードデータが戻って動作が正常に完了するまではISDB状態レジスタ内において完了したと報告することができない。
命令メモリを読むためには、データメモリを読むのと同様の手順に従うことができる。命令メモリを書き込む、例えばソフトウェアブレークポイントを設定するためには、デバッギングプロセスソフトウェアは、最初に、命令メモリを書き込むためにSTOREメモリをスタッフィングすることができる。プロセスは、データを強制的に外部メモリ内に入れるためのデータキャッシュクリーンアドレス命令をスタッフィングすることと、変更が外部メモリ内において観察できるようにするためのバリヤ命令をスタッフィングすることと、命令キャッシュから旧エントリを取り除くための命令キャッシュ無効化アドレス命令と、を含む。
ここにおいて開示される命令スタッフィングは、DSP40をリセットすることと関連して用いることもできる。ISDB RESETコマンドは、ハードウェアリセットを強制し、DSP40全体、すなわち全スレッド、をリセットさせることに注目すること。このことは、全レジスタを初期値に設定し、スレッドT0:T5の電源をオフにし、リセット割り込みをスレッドT0に送ることができる。他方、一定のスレッドをリセットするのが希望される場合は、命令スタッフィングを用いて行うことができる。ステップは、該当するマスク設定を用いて“START”命令をスタッフィングすることを含む。このことは、リセット割り込みを示されたスレッドに対して保留状態にすることができる。シーケンスは、希望されるスレッドに関してISDB RESUME命令を実行することを含む。従って、該シーケンスを実行することは、DSP40全体をリセットせずに、スレッド選択式リセットという有利なプロセスを可能にする。
図10は、開示される非侵入型デバッギングプロセスにおける開示される命令スタッフィングプロセスを描くための処理タイミングサイクル図である。図10において描かれるように、特定のスレッドにおけるスタッフ動作中の信号挙動は、DSP40の単一スレッドにおけるイベントのシーケンスを示す。対応するパイプラインステージにおいても各スレッドによって同様の挙動を観察することができる。スタッフィングされた命令は、ISDBコマンドレジスタのSTFINSTレジスタに書き込むことによって提供される。スタッフィングされた命令を実行するために、デバッグソフトウェアは、スタッフコマンドを用いてISDBコマンドレジスタに書き込む。このコマンドは、スタッフィングされた命令が実行するための特定のスレッドも提供する。ISDB制御レジスタ138は、スタッフ命令が実行されるスレッドに関するスレッドパイプライン処理のEX3ステージにおいてミクロ再開コマンドを発行する。この時点において、CU ISDBミクロ再開型EX3レジスタは、“0x2”に設定される。このことは、発行されたミクロ再開コマンドがスタッフ動作を実行すべきであることを示す。CU112は、後続サイクルのWBステージにおいてCUデバッギング例外命令をアサートする。CUデバッギング例外命令を受け取った時点で、IU114は、旧命令バッファ状態をクリアし、正規の例外に類似する新しい記憶場所からフェッチする準備をする。
CU112は、後続するRFステージにおいてスタッフ命令要求をIU114に発行し、WBステージにおいてCU次発行ポインタ命令をアサートする。CU次発行ポインタ命令を受け取った時点で、IU114は、UC命令と同様の形でスタッフィングされた命令をCU112に提供する。スタッフィングされた命令は、1つのスレッドごとに多重化する代わりに、IU114内部におけるBUリターンデータと多重化することができる。この特長は、多重化コストを節約し、命令キャッシュにおける経路混雑を緩和する。ミクロ再開コマンドは、スタッフィングされた命令の特権レベルを示すために側波帯信号と関連づけられる。このことは、ユーザーモード192又はスーパバイザモード194のいずれかにおける実行を可能にする。
スタッフィングされた命令が実行中に、CU112は、正規のプログラム命令を用いて命令バッファをリストアするために他の命令要求をIU114に送る。スタッフィングされた命令がコミットされたときには、CU112は、再開状態が成功であるかどうかにかかわらず、WB処理ステージにあるミクロ再開状態を肯定応答とともに戻す必要がある。ISDBコントローラ138は、CU112が次の命令を実行するのを防止するために次のRFステージにおいてミクロブレークコマンドを発行する。再開状態が成功でない場合は、CU112は、例外を通常の方法で処理するようにIU114に命令することができる。しかしながら、唯一の理由は、スタッフィングされた命令が例外を発生させることである点に注目すること。現在のプログラムカウンタは、ELRにして例外ハンドラエントリポイントに合わせて更新することができる。スレッドは、ミクロブレークコマンドに起因して停止させることができる。ミクロブレークコマンド肯定応答を受け取り後は、スタッフ命令を完了させることができる。従って、ミクロブレークコマンド状態は、この場合においては常に成功であることができる。
要約すると、開示される主題は、向上されたソフトウェア命令デバッギング動作に関してマルチスレッド化デジタル信号プロセッサの処理パイプライン内に命令をスタッフィングするための方法及びシステムを提供する。この方法及びシステムは、デバッギングプロセスレジスリ内にスタッフ命令を書き込むことを提供する。本開示は、スタッフィングされた命令を実行するためにデバッギングプロセスコマンドレジスタにスタッフコマンドを書き込むことを含む。スタッフ命令の実行が実行されるべきマルチスレッド化デジタル信号プロセッサの予め決められたスレッドがスタッフ命令によって識別される。プロセス及びシステムは、マルチスレッド化デジタル信号プロセッサ上においてスレッドを実行する予め決められたステージ、すなわちEX3ステージ、中にCU112デバッギングプロセス制御再開コマンドを発行し、発行された再開コマンドがスタッフ動作を実行すべきであることを示すためにCU112デバッギングプロセス再開型を予め決められたスレッド実行ステージに設定する。本開示は、後続するサイクルのWBステージにおいてCU112例外コマンドもアサートし、CU112例外コマンドのアサート時に旧命令バッファ状態をクリアする。次に、この方法及びシステムは、デバッギングプロセス例外にもかかわらずELRを維持しながら正規の例外と類似する新たな記憶場所からフェッチする準備をする。
さらに、本実施形態は、引き続く処理ステージにおいてCU112からIU114にスタッフ要求を送り、次のサイクルにおいてCU112次発行ポインタをアサートする。スタッフィングされた命令は、CU112次発行ポインタを受け取り時点でCU112に提供され、IU114は、UC命令と同様の形でCU112にスタッフィングされた命令を提供する。スタッフィングされた命令は、1つのスレッドごとではなく、IU114内部のBUリターンデータと1回だけ多重化される。ミクロ再開コマンドは、スタッフィングされた命令(ユーザー/スーパバイザモードにおいて実行)の特権レベルを示すために側波帯信号と関連づけられる。スタッフィングされた命令が実行中である間に、CU112は、正規のプログラム命令を用いて命令バッファをリストアするために他の命令要求をIU114に送る。次に、スタッフィングされた命令がコミットされたときには、CU112は、再開状態が成功であるかどうかにかかわらず、WBにおけるミクロ再開状態を肯定応答とともに戻す必要がある。CU ISDBコントローラは、CU112が次の命令を実行するのを防止するために次のRFステージにおいてミクロブレークコマンドを発行する。再開状態が成功でない場合(すなわち、スタッフィングされた命令が例外を発生させるとき)は、CU112は、例外を通常の方法で処理するようにIU114を制御することができる。次に、現在のPCは、DSP40のELRレジスタ内に格納することができ、PCは、例外ハンドラエントリポイントに合わせて更新することができる。スレッドは、ミクロブレークコマンドに起因して停止させることができる。ミクロブレークコマンド肯定応答を受け取り後は、スタッフ命令が完了である。
マルチスレッド化デジタル信号プロセッサにおいて非侵入型スレッド選択式デバッギングと関連して命令スタッフィング動作に関してここにおいて説明される処理上の特長及び機能は、様々な方法で実装することができる。例えば、DSP40が上述される動作を実行できるだけでなく、本明細書の実施形態は、ここにおいて説明される機能を果たすように設計された特定用途向け集積回路(ASIC)、マイクロコントローラ、デジタル信号プロセッサ、又はその他の電子回路において実装することができる。さらに、ここにおいて説明されるプロセス及び特長は、該様々な信号及び命令処理システムによる読み取り及び実行のために磁気媒体、光学媒体、又はその他の記録媒体に格納することができる。従って、好まれる実施形態に関する上記の説明は、当業者が請求される主題を製造または使用するのを可能にすることを目的とするものである。これらの実施形態に対する様々な修正が当業者にとって容易に明確になるであろう。さらに、ここにおいて定義される一般原理は、革新的な能力を用いずにその他の実施形態にも適用可能である。以上のように、請求される主題は、ここにおいて示される実施形態に限定されることが意図されるものではなく、ここにおいて開示される原理及び斬新な特長に一致する限りにおいて最も広範な適用範囲が認められるべきである。
Claims (35)
- 向上されたソフトウェア命令デバッギング動作に関してマルチスレッド化デジタル信号プロセッサの処理パイプラインにおいて命令をスタッフィングするための方法であって、
デバッギングプロセスと関連づけられたデバッギングプロセスレジストリ内にスタッフ命令を書き込むことと、
予め決められたスレッドにおける予め決められた実行ステージ中にデバッギングプロセス制御再開コマンドをコアプロセッサから発行することと、
前記スタッフ命令を前記コアプロセッサに提供することと、
前記デバッギングプロセス中に前記スタッフ命令を実行するように前記コアプロセッサに指示することと、
前記スタッフ命令を前記コアプロセッサプロセス及び前記デバッギングプロセスと関連して実行すること、とを備える、方法。 - 前記スタッフ命令に応じて前記デバッギングプロセスレジストリと関連づけられたデバッギングプロセスコマンドレジスタ内にスタッフコマンドを書き込むことであって、前記スタッフコマンドは、前記スタッフ命令を実行すべき前記マルチスレッド化デジタル信号プロセッサの予め決められたスレッドの識別を備えることをさらに備える請求項1に記載の方法。
- 前記スタッフ命令をユーザー動作モードにおいて実行することをさらに備える請求項1に記載の方法。
- 前記スタッフ命令をスーパバイザ動作モードにおいて実行することをさらに備える請求項1に記載の方法。
- 前記スタッフ命令に応じて前記デバッギングプロセスレジストリと関連づけられたデバッギングプロセスコマンドレジスタ内にスタッフコマンドを書き込むことであって、前記スタッフコマンドは、前記スタッフ命令を実行すべき前記マルチスレッド化デジタル信号プロセッサの複数の予め決められたスレッドの識別を備えることをさらに備える請求項1に記載の方法。
- 前記スタッフ命令を分岐命令として書き込むことと、前記予め決められたスレッドに関して現在のプログラムカウンタ値を用いること、とをさらに備える請求項1に記載の方法。
- 前記スタッフ命令を前記予め決められたスレッドを選択的にリセットための開始/再開命令として書き込むことをさらに備える請求項1に記載の方法。
- 前記スタッフ命令を前記デバッギングプロセスと関連づけられた前記デバッギングプロセスレジストリ内にロード命令として書き込むことをさらに備える請求項1に記載の方法。
- 前記スタッフ命令を前記デバッギングプロセスと関連づけられた前記デバッギングプロセスレジストリ内にレジスタ読み取り命令として書き込むことをさらに備える請求項1に記載の方法。
- 前記スタッフ命令を前記デバッギングプロセスと関連づけられた前記デバッギングプロセスレジストリ内にキャッシュ読み取り/書き込み命令として書き込むことをさらに備える請求項1に記載の方法。
- 前記スタッフ命令を前記デバッギングプロセスと関連づけられた前記デバッギングプロセスレジストリ内にメモリ読み取り/書き込み命令として書き込むことをさらに備える請求項1に記載の方法。
- マルチスレッド化デジタル信号プロセッサの処理パイプラインにおいて命令をスタッフィングするための回路と命令とを備えるデジタル信号プロセッサデバッギングシステムであって、
スタッフ命令を受け取るためにデバッギングプロセスと関連づけられたデバッギングプロセスレジストリと、
予め決められたスレッドにおける予め決められた実行ステージ中にコアプロセッサから発行するためのデバッギングプロセス制御再開コマンドと、
前記スタッフ命令を前記コアプロセッサに提供するための手段と、
前記デバッギングプロセス中に前記スタッフ命令を実行するように前記コアプロセッサに指示するための指示手段と、
前記スタッフ命令を前記コアプロセッサプロセス及び前記デバッギングプロセスと関連して実行するための手段と、を備える、デジタル信号プロセッサデバッギングシステム。 - 前記スタッフ命令に応じてスタッフコマンドを受け取るための前記デバッギングプロセスレジストリと関連づけられたデバッギングプロセスコマンドレジスタであって、前記スタッフコマンドは、前記スタッフ命令を実行すべき前記マルチスレッド化デジタル信号プロセッサの予め決められたスレッドの識別を備えるデバッギングプロセスコマンドレジスタ、をさらに備える請求項12に記載のデジタル信号プロセッサデバッギングシステム。
- 前記命令スタッフィング方法をユーザー動作モードにおいて実行するための回路と命令とをさらに備える請求項12に記載のデジタル信号プロセッサデバッギングシステム。
- 前記スタッフィングされた命令をスーパバイザ動作モードにおいて実行するための手段をさらに備える請求項12に記載のデジタル信号プロセッサデバッギングシステム。
- 前記スタッフ命令を分岐命令として書き込み、前記予め決められたスレッドに関して現在のプログラムカウンタ値を用いるための手段をさらに備える請求項12に記載のデジタル信号プロセッサデバッギングシステム。
- 前記スタッフ命令を前記予め決められたスレッドを選択的にリセットするための開始/再開命令として書き込むための手段をさらに備える請求項12に記載のデジタル信号プロセッサデバッギングシステム。
- 前記デバッギングプロセスと関連づけられた前記デバッギングプロセスレジストリ内にスタッフ命令をロード命令として書き込むための手段をさらに備える請求項12に記載のデジタル信号プロセッサデバッギングシステム。
- 前記デバッギングプロセスと関連づけられた前記デバッギングプロセスレジストリ内にスタッフ命令をレジスタ読み取り命令として書き込むための手段をさらに備える請求項12に記載のデジタル信号プロセッサデバッギングシステム。
- 前記デバッギングプロセスと関連づけられた前記デバッギングプロセスレジストリ内にスタッフ命令をキャッシュ読み取り/書き込み命令として書き込むための手段をさらに備える請求項12に記載のデジタル信号プロセッサデバッギングシステム。
- 前記デバッギングプロセスと関連づけられた前記デバッギングプロセスレジストリ内にスタッフ命令をメモリ読み取り/書き込み命令として書き込むための手段をさらに備える請求項12に記載のデジタル信号プロセッサデバッギングシステム。
- パーソナル電子デバイスをサポートする動作に関するデジタル信号プロセッサであって、
前記デジタル信号プロセッサの非侵入型デジタル信号プロセッサデバッギング動作中における命令スタッフィング動作のための手段と、
前記デバッギングプロセスと関連づけられたデバッギングプロセスレジストリ内にスタッフ命令を書き込むための手段と、
予め決められたスレッドにおける予め決められた実行ステージ中にデバッギングプロセス制御再開コマンドをコアプロセッサから発行するための手段と、
前記デバッギングプロセス中に前記スタッフ命令を実行するように前記コアプロセッサに指示するための手段と、
前記スタッフ命令を前記コアプロセッサプロセスに提供するための手段と、
前記スタッフ命令を前記コアプロセッサプロセス及び前記デバッギングプロセスと関連して実行するための手段と、を備える、デジタル信号プロセッサ。 - 前記スタッフ命令に応じて前記デバッギングプロセスレジストリと関連づけられたデバッギングプロセスコマンドレジスタ内にスタッフコマンドを書き込むための手段であって、前記スタッフコマンドは、前記スタッフ命令を実行すべき前記マルチスレッド化デジタル信号プロセッサの予め決められたスレッドの識別を備える手段、をさらに備える請求項22に記載のデジタル信号プロセッサ。
- 前記スタッフ命令をユーザー動作モードにおいて実行するための手段をさらに備える請求項22に記載のデジタル信号プロセッサ。
- 前記スタッフ命令をスーパバイザ動作モードにおいて実行するための手段をさらに備える請求項22に記載のデジタル信号プロセッサ。
- 前記スタッフ命令に応じて前記デバッギングプロセスレジストリと関連づけられた前記デバッギングプロセスコマンドレジスタ内にスタッフコマンドを書き込むための手段であって、前記スタッフコマンドは、前記スタッフ命令を実行すべき前記マルチスレッド化デジタル信号プロセッサの複数の予め決められたスレッドの識別を備える手段、をさらに備える請求項22に記載のデジタル信号プロセッサ。
- 前記スタッフ命令を分岐命令として書き込み、前記予め決められたスレッドに関して現在のプログラムカウンタ値を用いるための手段をさらに備える請求項22に記載のデジタル信号プロセッサ。
- 前記スタッフ命令を前記予め決められたスレッドを選択的にリセットするための開始/再開命令として書き込むための手段をさらに備える請求項22に記載のデジタル信号プロセッサ。
- 前記デバッギングプロセスと関連づけられた前記デバッギングプロセスレジストリ内にスタッフ命令をロード命令として書き込むための手段をさらに備える請求項22に記載のデジタル信号プロセッサ。
- 前記デバッギングプロセスと関連づけられた前記デバッギングプロセスレジストリ内にスタッフ命令をレジスタ読み取り命令として書き込むための手段をさらに備える請求項22に記載のデジタル信号プロセッサ。
- 前記デバッギングプロセスと関連づけられた前記デバッギングプロセスレジストリ内にスタッフ命令をキャッシュ読み取り/書き込み命令として書き込むための手段をさらに備える請求項22に記載のデジタル信号プロセッサ。
- 前記デバッギングプロセスと関連づけられた前記デバッギングプロセスレジストリ内にスタッフ命令をメモリ読み取り/書き込み命令として書き込むための手段をさらに備える請求項22に記載のデジタル信号プロセッサ。
- デジタル信号プロセッサの非侵入型デジタル信号プロセッサデバッギング動作中に命令スタッフィング動作に関するコンピュータによって読み取り可能なプログラムコード手段に関して前記デジタル信号プロセッサにおいて命令を処理するために具体化されたコンピュータによって読み取り可能なプログラムコード手段を有するコンピュータによって使用可能な媒体であって、
デバッギングプロセスと関連づけられたデバッギングプロセスレジストリ内にスタッフ命令を書き込むためのコンピュータによって読み取り可能なプログラムコード手段と、
予め決められたスレッドにおける予め決められた実行ステージ中にデバッギングプロセス制御再開コマンドをコアプロセッサから発行するためのコンピュータによって読み取り可能なプログラムコード手段と、
前記スタッフ命令を前記コアプロセッサに提供するためのコンピュータによって読み取り可能なプログラムコード手段と、
前記デバッギングプロセス中に前記スタッフ命令を実行するように前記コアプロセッサに指示するためのコンピュータによって読み取り可能なプログラムコード手段と、
前記スタッフ命令を前記コアプロセッサプロセス及び前記デバッギングプロセスと関連して実行するためのコンピュータによって読み取り可能なプログラムコード手段と、を備える、コンピュータによって使用可能な媒体。 - 前記スタッフ命令に応じて前記デバッギングプロセスレジストリと関連づけられたデバッギングプロセスコマンドレジスタ内にスタッフコマンドを書き込むためのコンピュータによって読み取り可能なプログラムコード手段であって、前記スタッフコマンドは、前記スタッフ命令を実行すべき前記マルチスレッド化デジタル信号プロセッサの予め決められたスレッドの識別を備えるコンピュータによって読み取り可能なプログラムコード手段、をさらに備える請求項33に記載のコンピュータによって使用可能な媒体。
- 前記スタッフ命令を前記予め決められたスレッドを選択的にリセットするための開始/再開命令として書き込むためのコンピュータによって読み取り可能なプログラムコード手段をさらに備える請求項33に記載のコンピュータによって使用可能な媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/560,344 US8380966B2 (en) | 2006-11-15 | 2006-11-15 | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging |
PCT/US2007/084587 WO2008061105A2 (en) | 2006-11-15 | 2007-11-13 | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012089195A Division JP2012178165A (ja) | 2006-11-15 | 2012-04-10 | 非侵入型デジタル信号プロセッサデバッギング中における命令スタッフィング動作に関する方法及びシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010510585A true JP2010510585A (ja) | 2010-04-02 |
Family
ID=39327388
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009537322A Withdrawn JP2010510585A (ja) | 2006-11-15 | 2007-11-13 | 非侵入型デジタル信号プロセッサデバッギング中における命令スタッフィング動作に関する方法及びシステム |
JP2012089195A Pending JP2012178165A (ja) | 2006-11-15 | 2012-04-10 | 非侵入型デジタル信号プロセッサデバッギング中における命令スタッフィング動作に関する方法及びシステム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012089195A Pending JP2012178165A (ja) | 2006-11-15 | 2012-04-10 | 非侵入型デジタル信号プロセッサデバッギング中における命令スタッフィング動作に関する方法及びシステム |
Country Status (7)
Country | Link |
---|---|
US (1) | US8380966B2 (ja) |
EP (1) | EP2095239A2 (ja) |
JP (2) | JP2010510585A (ja) |
KR (1) | KR101083182B1 (ja) |
CN (1) | CN101529392B (ja) |
TW (1) | TW200837559A (ja) |
WO (1) | WO2008061105A2 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
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 |
US8255673B2 (en) * | 2008-04-25 | 2012-08-28 | Arm Limited | Monitoring transactions in a data processing apparatus |
US8635603B2 (en) * | 2008-10-21 | 2014-01-21 | International Business Machines Corporation | Handling debugger breakpoints in a shared instruction system |
US20100115239A1 (en) * | 2008-10-29 | 2010-05-06 | Adapteva Incorporated | Variable instruction width digital signal processor |
WO2010096348A1 (en) * | 2009-02-17 | 2010-08-26 | Zipwhip, Inc. | Short code provisioning and threading techniques for bidirectional text messaging |
GB2483906C (en) * | 2010-09-24 | 2019-10-09 | Advanced Risc Mach Ltd | Selection of debug instruction set for debugging of a data processing apparatus |
US8661413B2 (en) * | 2011-04-13 | 2014-02-25 | International Business Machines Corporation | Impact indication of thread-specific events in a non-stop debugging environment |
US9665375B2 (en) * | 2012-04-26 | 2017-05-30 | Oracle International Corporation | Mitigation of thread hogs on a threaded processor and prevention of allocation of resources to one or more instructions following a load miss |
US9367472B2 (en) | 2013-06-10 | 2016-06-14 | Oracle International Corporation | Observation of data in persistent memory |
GB2527088B (en) * | 2014-06-11 | 2021-07-14 | Advanced Risc Mach Ltd | Executing debug program instructions on a target apparatus processing pipeline |
US9720756B2 (en) | 2014-11-12 | 2017-08-01 | Samsung Electronics Co., Ltd. | Computing system with debug assert mechanism and method of operation thereof |
US20160179530A1 (en) * | 2014-12-23 | 2016-06-23 | Elmoustapha Ould-Ahmed-Vall | Instruction and logic to perform a vector saturated doubleword/quadword add |
CN109522049B (zh) * | 2017-09-18 | 2023-04-25 | 展讯通信(上海)有限公司 | 一种同步多线程系统中共享寄存器的验证方法及装置 |
CN111367742A (zh) * | 2020-03-02 | 2020-07-03 | 深圳中微电科技有限公司 | 调试mvp处理器的方法、装置、终端和计算机可读存储介质 |
CN113672555B (zh) * | 2021-07-13 | 2024-04-19 | 杭州中天微系统有限公司 | 处理器核、处理器、片上系统和调试系统 |
US11907088B2 (en) * | 2021-12-15 | 2024-02-20 | Synopsys, Inc. | Testing of hardware queue systems using on device test generation |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04145544A (ja) * | 1990-10-05 | 1992-05-19 | Nec Corp | デバッグ装置 |
JPH09167105A (ja) * | 1995-09-11 | 1997-06-24 | Rockwell Internatl Corp | オンチップデバッグシステム |
US20020065646A1 (en) * | 2000-09-11 | 2002-05-30 | Waldie Arthur H. | Embedded debug system using an auxiliary instruction queue |
JP2004171564A (ja) * | 2002-11-18 | 2004-06-17 | Arm Ltd | マルチドメインプロセッサのためのモニタ制御 |
US20050034039A1 (en) * | 2003-08-05 | 2005-02-10 | Newisys, Inc. | Methods and devices for injecting commands in systems having multiple multi-processor clusters |
US20050034024A1 (en) * | 1998-11-13 | 2005-02-10 | Alverson Gail A. | Debugging techniques in a multithreaded environment |
Family Cites Families (151)
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 |
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 |
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 |
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 |
US6785850B2 (en) | 2000-03-02 | 2004-08-31 | Texas Instruments Incorporated | System and method for automatically configuring a debug system |
US6928403B2 (en) | 2000-03-02 | 2005-08-09 | Texas Instruments Incorporated | Automatic detection of connectivity between an emulator and a target device |
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 | コードチェックによるモード切替方式および方法 |
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) |
US7360117B1 (en) | 2002-10-24 | 2008-04-15 | Verisilicon Holdings (Cayman Islands) Co. Ltd. | In-circuit emulation debugger and method of operation thereof |
GB2396930B (en) | 2002-11-18 | 2005-09-07 | Advanced Risc Mach Ltd | Apparatus and method for managing access to a memory |
US7370210B2 (en) | 2002-11-18 | 2008-05-06 | Arm Limited | Apparatus and method for managing processor configuration data |
GB2396034B (en) | 2002-11-18 | 2006-03-08 | Advanced Risc Mach Ltd | Technique for accessing memory in a data processing apparatus |
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 |
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 |
EP1711897A4 (en) | 2004-02-05 | 2007-03-21 | Research In Motion Ltd | DEBUGGING PORT SECURITY INTERFACE |
US7263599B2 (en) | 2004-02-06 | 2007-08-28 | Infineon Technologies | Thread ID in a multithreaded processor |
US7360203B2 (en) | 2004-02-06 | 2008-04-15 | Infineon Technologies North America Corp. | Program tracing 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 |
GB0420442D0 (en) | 2004-09-14 | 2004-10-20 | Ignios Ltd | 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 |
US8196109B2 (en) | 2005-09-09 | 2012-06-05 | International Business Machines Corporation | Common debug adaptor in a multiple computer programming language environment |
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 |
US8341604B2 (en) | 2006-11-15 | 2012-12-25 | Qualcomm Incorporated | Embedded trace macrocell for enhanced digital signal processor debugging operations |
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 |
US7657791B2 (en) | 2006-11-15 | 2010-02-02 | Qualcomm Incorporated | Method and system for a digital signal processor debugging during power transitions |
US8533530B2 (en) | 2006-11-15 | 2013-09-10 | Qualcomm Incorporated | Method and system for trusted/untrusted digital signal processor debugging operations |
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 |
US8001428B2 (en) | 2007-10-29 | 2011-08-16 | Arm Limited | Packing trace protocols within trace streams |
-
2006
- 2006-11-15 US US11/560,344 patent/US8380966B2/en not_active Expired - Fee Related
-
2007
- 2007-11-13 EP EP07864349A patent/EP2095239A2/en not_active Withdrawn
- 2007-11-13 CN CN2007800402760A patent/CN101529392B/zh not_active Expired - Fee Related
- 2007-11-13 KR KR1020097012389A patent/KR101083182B1/ko not_active IP Right Cessation
- 2007-11-13 WO PCT/US2007/084587 patent/WO2008061105A2/en active Application Filing
- 2007-11-13 JP JP2009537322A patent/JP2010510585A/ja not_active Withdrawn
- 2007-11-15 TW TW096143234A patent/TW200837559A/zh unknown
-
2012
- 2012-04-10 JP JP2012089195A patent/JP2012178165A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04145544A (ja) * | 1990-10-05 | 1992-05-19 | Nec Corp | デバッグ装置 |
JPH09167105A (ja) * | 1995-09-11 | 1997-06-24 | Rockwell Internatl Corp | オンチップデバッグシステム |
US20050034024A1 (en) * | 1998-11-13 | 2005-02-10 | Alverson Gail A. | Debugging techniques in a multithreaded environment |
US20020065646A1 (en) * | 2000-09-11 | 2002-05-30 | Waldie Arthur H. | Embedded debug system using an auxiliary instruction queue |
JP2004171564A (ja) * | 2002-11-18 | 2004-06-17 | Arm Ltd | マルチドメインプロセッサのためのモニタ制御 |
US20050034039A1 (en) * | 2003-08-05 | 2005-02-10 | Newisys, Inc. | Methods and devices for injecting commands in systems having multiple multi-processor clusters |
Also Published As
Publication number | Publication date |
---|---|
CN101529392B (zh) | 2013-10-30 |
WO2008061105A3 (en) | 2008-11-06 |
WO2008061105A2 (en) | 2008-05-22 |
EP2095239A2 (en) | 2009-09-02 |
CN101529392A (zh) | 2009-09-09 |
JP2012178165A (ja) | 2012-09-13 |
KR101083182B1 (ko) | 2011-11-11 |
US20080114972A1 (en) | 2008-05-15 |
KR20090089426A (ko) | 2009-08-21 |
US8380966B2 (en) | 2013-02-19 |
TW200837559A (en) | 2008-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8380966B2 (en) | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging | |
JP5059869B2 (ja) | 信頼される/信頼されないデジタル信号プロセッサデバッギング動作に関する方法及びシステム | |
US8370806B2 (en) | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor | |
KR101078934B1 (ko) | 개선된 디지털 신호 프로세서 디버깅 동작들을 위한 임베디드 트레이스 매크로셀 | |
US7657791B2 (en) | Method and system for a digital signal processor debugging during power transitions | |
US8484516B2 (en) | Inter-thread trace alignment method and system for a multi-threaded processor | |
US20070088938A1 (en) | Shared interrupt control method and system for a digital signal processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110906 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111206 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120110 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20120413 |