JP2013058207A - マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム - Google Patents

マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム Download PDF

Info

Publication number
JP2013058207A
JP2013058207A JP2012209762A JP2012209762A JP2013058207A JP 2013058207 A JP2013058207 A JP 2013058207A JP 2012209762 A JP2012209762 A JP 2012209762A JP 2012209762 A JP2012209762 A JP 2012209762A JP 2013058207 A JP2013058207 A JP 2013058207A
Authority
JP
Japan
Prior art keywords
debugging
digital signal
instructions
signal processor
thread
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
JP2012209762A
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 JP2013058207A publication Critical patent/JP2013058207A/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
    • G06F11/362Software debugging
    • 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
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Abstract

【課題】マルチスレッド化DSPにおけるリアルタイムの挙動に対して非侵入的にデバッグを行う。
【解決手段】ISDBがDSP動作に関してイネーブルにされ(132)、ハードウェアブレークポイント134、ソフトウェアブレークポイント136、ETMブレークポイント140、JTAGブレークポイント142、または、外部ブレークポイント144が存在すると、デバッギング動作138に進む。ISTEPデバッギングが有効である場合は、ISTEPデバッギング150を行う。命令スタッフィング動作が有効である場合は、命令スタッフィング動作154を行う。コアDSPリセット命令がデバッギング動作によって生成されている場合は、コアDSPデジタル信号プロセッサをリセットする(156)。
【選択図】図6

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においては、1つ以上のスレッド間における対話もコアプロセッサの誤動作を引き起こすことがある。このことは、個々のスレッドがプログラミングされたとおりに及び希望されるとおりに個々に動作できるにもかかわらず当てはまることがある。さらに、動作中のスレッドの異なる組合せも、デバッギングソフトウェアによる解析を行うのが有益である異なる種類のプログラミング上の問題を引き起こす可能性がある。
さらに、マルチスレッド化DSPにおいては、デバッギング動作を行うことが望まれる数多くのポイント、すなわちブレークポイントが存在することができる。該ブレークポイントは、コアプロセッサのアプリケーションに影響を及ぼすハードウェアの状態、ソフトウェアの状態、外部の状態、及びその他の状態に起因して生じることができる。好ましいことに、柔軟な型のマルチスレッド化DSPデバッギングソフトウェアアプリケーションは、コアプロセッサアプリケーションのデバッギングを要求する非常に様々な状態に対処する。実際、柔軟であるためには、デバッギングソフトウェアがデバッギングソフトウェアの動作を必要とする状態に従って動的に変化することが要求される。
これらの考慮事項を念頭に置き、個々のスレッドのデバッギングをサポートするマルチスレッド化DSPデバッギングプロセスが必要であることは明確である。
コア処理アプリケーションのニーズに従って1つ、2つ、又はそれよりも多いスレッドのスレッド選択式デバッギング動作を許可するマルチスレッド化DSPデバッギングプロセスの必要性も存在する。
マルチスレッド化DSPがDSPの動作に影響を及ぼす非常に様々な状態、例えば、デバッギングブレークポイントを確立することができるハードウェア状態、ソフトウェア状態、外部状態、及びその他の状態、を有するデバッギングプロセスに従事することを許可する方法及びシステムの必要性も存在する。
マルチスレッド化デジタル信号プロセッサに関する非侵入型スレッド選択式デバッギング方法及びシステムを提供するための技法が開示され、該技法は、デジタル信号プロセッサの動作と、パソコン、パーソナルデジタルアシスタント、ワイヤレスハンドセット、及び同様の電子デバイスにおいて動作するアプリケーションを含むますます強力になるソフトウェアアプリケーションに関するデジタル信号プロセッサ命令の効率的な使用と、の両方を向上させ、さらに関連するデジタルプロセッサの速度及びサービス品質を向上させる。
開示される主題の一側面により、マルチスレッド化デジタル信号プロセッサの非侵入型デバッギングに関する方法及びシステムが提供される。前記方法及びシステムは、デバッギング命令を第1の組のレジスタ内に格納し、処理命令を第2の組のレジスタ内に格納することを許容する。前記第2の組のレジスタは、前記第1の組のレジスタと異なる。前記方法及びシステムは、前記マルチスレッド化デジタル信号プロセッサの少なくとも1つ以上のスレッドを用いてマルチスレッド化プロセスにおいて処理命令をさらに実行する。前記処理命令の部分組は、少なくとも1つのデバッギングイベントを生成するためのブレークポイント命令である。前記プロセスは、前記ブレークポイント命令のうちの少なくとも1つの前記実行に応じて少なくとも1つのデバッギングイベントを生成し、前記デバッギングイベントに応じてデバッギング命令を実行し、前記デバッギング命令は、前記マルチスレッド化デジタル信号プロセッサの少なくとも1つ以上のスレッドをデバッギング動作モードに移行させることによって前記マルチスレッド化デジタル信号プロセッサ内における処理命令の前記実行を非侵入方式でデバッグすることを許容する。本開示は、前記マルチスレッド化デジタル信号プロセッサのスレッドの前記部分組におけるデバッギング命令の前記実行を報告するために前記複数のデバッギング命令の前記実行からのデバッギングリターンを生成する。
開示される主題のこれらの利点とその他の利点、及び追加の斬新な特長は、ここにおいて提供される説明から明確になるであろう。この発明の概要の意図は、請求される主題に関する包括的な説明を提供することではなく、主題の機能の一部について簡単に概説することである。ここにおいて提供されるその他のシステム、方法、特長及び利点は、以下の図及び発明を実施するための形態を検討し次第当業者に明確になるであろう。これらのすべての追加のシステム、方法、特長及び利点は、この説明の中に含められ、さらに添付される請求項の適用範囲内に含められることが意図される。
開示される主題の特長、性質、及び利点は、以下の発明を実施するための形態を図面と併読することでより明確になるであろう。なお、図面全体において同様の参照文字は同様の要素を識別する。
本実施形態を実装することができる通信システムの単純化されたブロック図である。 本実施形態の教示を実行するためのDSPアーキテクチャを示す。 開示される主題の技術的利点を提供するデジタル信号プロセッサの一実施形態のアーキテクチャブロック図を提供する。 非侵入型デバッギング動作モードにおける動作を含む本開示のモード制御に関する側面の機能ブロック図である。 本開示のデバッギング動作を達成するためのモード制御レジスタを示した図である。 本開示の非侵入型デバッギングアルゴリズムの様々な側面に関する流れ図である。
マルチスレッド化デジタル信号プロセッサに関する非侵入型スレッド選択式デバッギング方法及びシステムに関する開示される主題は、ここにおいて提示される利益が有利であることができるあらゆる型のマルチスレッド化処理に関して用途を有する。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を有する単一のプロセッサを採用することができる。プロセッサパイプライン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の特長にアクセス可能であり、信頼されないユーザーは、1つ以上の特長にアクセス可能である。
ISDB82は、プログラムカウンタ上に常駐するISDB82デバッギングソフトウェアと通信するためにデバッガインタフェースカードと通信することができ、すべてJTAGインタフェース84を通じて行うことができる。ホストデバッガソフトウェアは、ISDB制御レジスタを読み取る及び書き込むことによってISDB82と対話することができる。通信は、例えば、読み取り/書き込みの対象となるISDBレジスタを識別する40ビットパケット、及び32ビットデータペイロードを通じて行うことができる。この動作をサポートするパケットフォーマットは、各々の幅が32ビットであることができる最大で64の制御レジスタであることができる。
ISDB82は、デバッギング動作中にセキュリティを制御するための信頼されるレジスタを含む。ISDB82trustedがセットされた場合は、すべてのISDB82レジスタがデバッガソフトウェアにとって可視であり、すべてのISDBコマンドを使用可能である。ISDB82trustedがクリアされた場合は、ISDB82は、制限された一組の動作のみを許可する。
一定のISDB82レジスタがコアソフトウェアにとって可視であるようにすることができる。これらのレジスタは、スーパバイザ(SUPERVISOR)モード制御レジスタ転送命令を介してアクセス可能である。コア命令は、ブレークポイント命令を含む。ISDBtrustedがセットされたときには、この命令は、実行中のスレッドにデバッグ動作モード120に入らせる。この移行は、スレッド制御をISDB82に移行させる。ブレークポイントを実行したスレッドに加えて、その他のスレッドは、ISDB82プログラミングに従って選択的にデバッグ(DEBUG)モード120に入ることができる。ISDB82が信頼されないか又はイネーブルにされない場合は、この命令はNOPとして処理される。好ましいことに、ブレークポイント命令は、パケット内における唯一の命令である。
図4は、デバッギングプロセス中におけるISDB82の動作を含むDSP40の様々なモード制御側面に関する処理モード図110を示す。図5は、本開示のデバッギング動作を達成させるためのモード制御レジスタ122を示す。一実施形態においては、モード制御レジスタ122は、開示される動作モードへの/からの移行を援助し、ビット31乃至22を占有する予約セクションと、待機ビット21乃至16と、予約ビット16乃至6と、エラービット5乃至0と、を含む。モード制御レジスタ122は、数多くの異なる方法で実装できるが、図5の例示される実施形態は、ISDB82が所有する様々な性質及びISDB82が可能にする動作を含むISDB82に関する以下の説明を理解するのに役立つことができる。
次に、図4に関して、DSP40は、全スレッドに対してグローバルであり個々のスレッドに対してローカルである処理モードをサポートする。各DSP40ハードウェアスレッドは、すべて図4において示されるように、2つの実行モード、ユーザー(USER)モード112とスーパバイザモード114、及び3つの非処理モードすなわち待機(WAIT)モード116、OFFモード118、及びデバッグモード120、を個々にサポートする。スレッドのモードは、その他のスレッドと独立しており、例えば、1つのスレッドは待機モード116であることができ、他のスレッドは、ユーザーモード112であり、以下同様である。図4の1つのスレッドごとのモード状態図は、様々な命令又はイベントによってサポートされる。これらは、“例外”すなわち内部例外イベントと、“Int”すなわち外部割り込みイベントと、“RTE”すなわち例外モードからのソフトウェアリターン命令と、“SSR”すなわちSSRレジスタ命令の更新と、あらゆるモードから入力することができる“停止”すなわちソフトウェア停止命令と、同じくあらゆるモードから入力することができる“開始”すなわちソフトウェア開始命令と、“トラップ”すなわちソフトウェアトラップ命令と、“待機”すなわちソフトウェア待機命令と、“再開”すなわちソフトウェア再開命令と、“DE”すなわちデバッグイベントと、“DR”すなわちデバッグ命令と、を含む。請求される主題の異なる実装における機能は、ここにおいて提示される機能とわずかに異なることができる一方で、“開始”、“待機”、“再開”、“DE”、及び/又は“DR”の意味は、請求される主題の適用範囲と一致する最も広義の解釈を行うことができる。
レジスタは、DSP40においてユーザーモード112及びスーパバイザモード114の両方において利用可能である。ユーザーモードレジスタは、一組の汎用レジスタ及び一組の制御レジスタに分割される。汎用レジスタは、アドレス生成、スカラー及びベクトル算術を含むすべての汎用演算に関して用いられる。制御レジスタは、ハードウェアループ、プレディケート、等の特殊目的の機能をサポートする。
汎用レジスタは、幅が32ビットであり、単一レジスタとして又は2つのレジスタの整列された対としてアクセスすることができる。汎用レジスタファイルは、命令に関する全オペランドを提供し、ロード/ストアに関するアドレスと、数値命令に関するデータオペランドと、ベクトル命令に関するベクトルオペランドと、を含む。
DSP40レジスタ及び命令は、標準的なC言語規約を採用するソフトウェアスタックの効率的な使用をサポートする。スタックは、高アドレスから低アドレスに向かって増大する。スタックポインタレジスタは、スタック最上部における最後の有効要素を指す。プッシュ動作は、最初にスタックポインタの数を減らし次にスタックにデータを書き込み、ポップ動作は、スタックから読み取ってスタックポインタの数を増やす。
スタック上の手順フレームは、関数呼び出しに関するリターンアドレス及び手順によって必要とされるすべてのローカル変数とデータを含む。さらに、フレームポインタがリターンアドレスの後に格納される。このフレームポインタは、スタック上における前手順フレームのアドレスを含む。この目的は、デバッガがメモリ内のスタックを検討して呼び出しシーケンス、関数パラメータ、等を簡単に決定するのを可能にすることによってデバッグを容易にすることである。
デバッグモード120は、スレッドがISDB82からのコマンドを待っている特別な状態である。例えばソフトウェアブレークポイント命令の実行、ISDB82からのブレークコマンド、又はハードウェアブレークポイントの発生によって、ISDBデバッグイベントが生じるごとに、示されたスレッドがデバッグモード120に入ることができる。デバッグモード120においては、コアは、JTAGインタフェース84からのコマンドを介してISDB82によって制御される。ISDB82が再開コマンドの実行に起因してスレッドをリリースすると、スレッドは、現在のモード設定に従って動作を再開することができる。スレッドがデバッグモード120にあるときには、ISDB82によって制御され、その他のスレッドによって制御することはできない。デバッグモード120におけるスレッドをターゲットにした、実行中のスレッドからの待機命令、再開命令、開始命令、又は停止命令は、無視することができる。同様に、マスク不可割り込み(NMI)は、デバッグモード120にあるスレッドは無視することができる。
ハードウェアリセット(HARDWARE RESET)モード(示されていない)及びデバッグモード120は、全スレッドに対してグローバルである。ハードウェアリセットピンがアサートされるごとに、あらゆるスレッドがどのような処理状態であるかにかかわらず、DSP40は、ハードウェアリセットモードになることができる。リセットモードにおいては、全レジスタが各々のリセット値に設定される。どのような処理も、ハードウェアリセットピンがデアサートされるまで行うことができない。リセットピンがアサートされた時点で、プロセッサは、リセットモードに移行することができ、全レジスタをリセット値にリセットすることができる。リセットピンがデアサートされた後は、スレッドT0にソフトリセット割り込みを与えることができる。このことは、スレッドT0にスーパバイザモード114に入らせてリセットされたベクトル位置での実行を開始させることができる。その他の全スレッドは、オフ状態であることができる。この時点においては、ソフトウェアは、各スレッドに関するモード移行を個々に自由に制御することができる。
各スレッドは、そのスレッドに関してOFFモード118への及びOFFモード118からの移行を制御する1つの移行ビットをモード制御レジスタ122において有することができる。停止命令を介して移行ビットに書き込むことは、関連づけられたスレッドをOFFにする。開始命令を介して移行ビットに書き込むことは、スレッドをオンにし、ソフトリセット割り込みをトリガーする。各スレッドは、待機モード116への及び待機モード116からの移行を制御するための1つの待機ビットをモード制御レジスタ122に含むことができる。待機命令を介して待機ビットに書き込むことは、関連づけられたスレッドをアイドル状態にすることができ、他方、再開命令を介しての書き込みは、待機モード116が設定される前に行っていたあらゆることをスレッドに再開させることができる。
ブレークポイントを用いることで、DSP40の6つのスレッドは、個々にデバッグモード120に入ること及びデバッグモード120から出ることができる。ブレークポイントトリガーは、ISDB82においてサポートされる5つの異なる種類のブレークポイントに対応する5つのソースから来ることができる。これらのブレークポイントは、ハードウェアブレークポイントと、ソフトウェアブレークポイントと、ETMブレークポイントと、JTAGインタフェースブレークポイントと、外部ブレークポイントと、を含む。スレッドは、ブレークポイントをヒットした時点で、現行モード(例えば、待機/実行(RUN))からデバッグモード120に移行する。デバッグモード120において、スレッドは、ISDB82からのコマンドを待つ。OFFモード118にあるスレッドはパワーダウンされ、ISDB82からのコマンドを受け入れることができない。デバッグモード120に入るレーテンシーは、実装によって定義される。例えば、本開示においては、イベント電力崩壊に関連するとして定義される。例えば、一実装は、デバッグモード120に入る前に、所定の動作を完了させる、例えば未解決のロード要求を終了させる、ことを選択することができる。一実施形態においては、スレッド識別子レジスタは、8ビットの読み取り/書き込みフィールドを含み、ソフトウェアスレッド識別子を保持するために用いられる。このフィールドは、ブレークポイントとマッチさせるためにハードウェアデバッガによって用いられる。
ブレークポイントプロセスに入る方法は、幾つかの異なる方法が存在する。例えば、2つのハードウェアブレークポイントが存在する。レジスタが予め決められた値と等しい場合は、プログラムカウンタ(PC)が予め決められた値にマッチするときに、プロセスがデバッグモード120になる。PCに加えて、その他の修飾子、例えば、アドレス翻訳(物理アドレス又は仮想アドレス)等のスレッドID、が存在することができる。ASIDは、プロセスにおけるプロセスID又はマルチスレッド化プロセスにおける特定のスレッドと類似のタグである。このため、物理アドレス、仮想アドレス、ASID、PC、又はその他の修飾子を用いて、プロセス空間内のプログラムの位置のフィックスを随意に入手することができる。
ISDB82は、2つの出力割り込みピンも定義する。これらの信号は、ISDB82を出てMSM104内に入り、MSMレベルでストラップされる。これらの2つの信号は、ブレークイベント及びJTAGインタフェース84コマンドである。ブレークイベントコマンド時においては、ISDB82は、示されたスレッド番号においてブレークポイントが生じるごとにこの割り込みを呼び出すようにプログラミングすることができる。JTAGインタフェース84コマンド時においては、JTAGインタフェース84は、この割り込みを呼び出すためのコマンドを送る。
ハードウェアブレークポイントは、スレッドプログラムカウンタ、ASID(アドレス空間識別子)、及びスレッド識別子レジスタのうちの1以上をISDBによってプログラミングされた値とマッチさせる。マッチ条件が満たされているときには、スレッドは、デバッグモード120に入る。ブレークポイントをヒットしたスレッドに加えて、その他のスレッドもデバッグモード120に入るように構成することができる。このことは、例えばブレークポイントコンフィギュレーションレジスタプログラミングを通じて達成させることができる。
ハードウェアブレークポイントは、様々な特長、例えば、物理的又は仮想であることができる32ビットプログラムカウンタ値をマッチさせる、6ビットASID値をマッチさせる、8ビットスレッド識別子値をマッチさせる、及び/又はブレークポイントをヒットした時点で強制的にその他のスレッドをデバッグモード120に入らせる、等、をサポートすることができる。ハードウェアブレークポイントを設定するために、ブレークポイントプログラムカウンタ及びブレークポイントコンフィギュレーションレジスタは、JTAGインタフェース84を通じて、そして次にISDB82コンフィギュレーションレジスタを介してイネーブル及び構成されたブレークポイントを用いて設定することができる。
開示される主題は、一定のソフトウェアブレークポイントも提供する。例えば、ユーザーレベルブレークポイント命令を用いてハードウェアデバッグモード120に入ることができる。この命令が実行されると、コアは、システムコンフィギュレーションISDBtrustedビットを検討する。ISDBtrustedビットがセットされた場合は、スレッドはデバッグモード120に入ることができる。ISDBtrustedがクリアされるか又はISDBがディスエーブルにされたときには、ブレークポイント命令の実行はNOPとして処理することができる。ブレークポイント命令のプログラムカウンタアドレスに対する制限は存在しない。しかしながら、ブレークポイント命令は、その他の命令とパケット化することができない。
開示される主題は、DSP40コアプロセッサの動作をモニタリングするETMプロセスを開始するための埋め込まれたトレースマクロ又はETMブレークポイントにも対処する。ETMは、非常に様々なトリガー条件をサポートする。従って、ブレークポイントコンフィギュレーションが該移行に関して設定されたときにハードウェアブレークポイントをETMブレークポイントにリンクすることが生じることができる。ISDB82は、ETM(埋め込まれたトレースマップ)の使用を通じて、プロセッサの動作をモニタリングすることを目的としてプロセッサに隣接するプロセッサハードウェアのセクションを用いる能力を提供する。さらに、開示される主題は、1つ以上のスレッドにおけるデバッギング動作を、1つ以上のその他のスレッドにおける動作にリンクする能力を提供する。例えば、1つのハードウェアスレッドがブレークポイントをヒットした場合は、本開示は、他のスレッドにおける処理を開始又は停止することを許可する。従って、本開示は、いずれかの1つのスレッド又は一組のスレッドを独立してデバッグすること、又は1つのスレッド又は一組のスレッドにおいて生じているイベントが1つのスレッド又は一組のスレッドにおける動作に対してどのような影響を与えるかを制御する能力に対処する。
従って、開示される主題は、デバッグモード120に入らせるブレークポイントの場合にデバッグモード120に移行するための経路を提供する。開示される主題は、マルチスレッド化デジタル信号プロセッサ内のいずれのスレッド又はスレッドの組がデバッグ120に入るかを制御する。ETMブレークポイントデバッギングは、プロセッサデバッギングに関して用いることができる性能プロファイリング等の動作行う。そのブロックは、デバッギングプロセスに入るためのブレークポイントを提供することができる。
この状況においては、ハードウェアブレークポイント及びETMブレークポイントスレッド番号MASKの両方が、マッチしているスレッドに関してイネーブルにされる。この例においては、DSP40は、ハードウェアブレークポイントがETMブレークポイントに引き続いてトリガーされるときのみにデバッグモード120に切り換わることができる。ETMブレークポイントが生じる前に生じるハードウェアブレークポイントトリガーは、無視することができる。ブレークポイントコンフィギュレーションが“0”に設定されるか又は設定されないときには、ハードウェアブレークポイント及びETMブレークポイントスレッド番号MASは通常どおりに挙動する。すなわち、イネーブルにされたときに、対応するブレークポイントトリガーは、スレッドを直ちにデバッグモード120に切り換えさせることができる。
JTAGインタフェース84ブレークポイントは、ISDBブレークコマンドにおいてトリガーされ、従ってコマンドマスクにおいて示されるスレッドがデバッグモード120に入ることができる。ISDB82は、外部ブレークポイントを通じてマルチコアデバッグもサポートする。該ブレークポイントは、外部デバッグ要求信号において立ち上がりエッジが検出されたときにトリガーされる。このイベント時において、外部ブレークポイントスレッド番号マスクにおいて示される全スレッドがデバッグモード120に入ることができる。
開示される主題の他の特長は、“命令スタッフィング”と呼ばれる。命令スタッフィングは、ホストデバッギングプロセスがコアの状態を検査しようとするときに生じる。従って、ブレークポイントが生じたときには、プロセスは、コアを検討してコアにおいて動作が発生しているかどうかを決定することを試みる。この決定を行う仕組みは、デバッグ動作モード120に入りつつあるスレッドにおいてプロセッサ命令を実行することを目的としてそのプロセッサ命令を送ることである。
命令スタッフィング動作においては、命令は、デバッグモード120時にすべての影響を受けているレジスタ全部又は一部分を読み取るようにプロセッサに指示することができる。さらに、デバッグモード120は、予め決められた組の又は型の命令をロードするようにプロセッサに指示することができる。状態を読み取る又は書き込むことに加えて、基本的にはいずれの命令も、このプロセスにおいて読み取ること又はコアに書き込むことができる。例えば、何らかのアルゴリズム又はプロセスをプロセスコアにおいて実行するのが望ましい場合は、開示される主題は、一組のオプションを許容する。命令スタッフィングプロセスにおいては、記憶場所に分岐し、プロセスは、動作のために符号をリリースすることができる。該符号は、例えば、規定された一組の理由で一定の関数を実行するための符号を含むことが可能である。1つの該理由は、複雑なデータ構造を処理するためであることができる。命令が、所定のデータ構造の全要素を読み出すことである場合は、プロセスは、そのデータ構造を再構築することであることができる。該プロセスは、極端に難しい可能性がある。データ構造を読み出すための一組の命令を備えることで、プロセスは、その命令の組を呼び出して特定の命令を入手することであることができ、特定の命令は、希望される要素(例えば、要素12)に従って実行することが可能である。このことは、多くの型のデータ取り出し及び同様の動作を有意に単純化する。
命令スタッフィングは、ISDB82がコアにおいて命令を実行する方法である。命令は、様々な理由で、例えば、コアレジスタ及びメモリを読み取る及び書き込むために、ユーザーに関して要約されたデバッガ動作のために、及びユーザーによって入力された命令に関して、スタッフィングされる。命令をスタッフィングするためには、ユーザーは、最初に、実行対象となる32ビット命令を用いてスタッフ命令レジスタをプログラミングしなければならない。命令スタッフィングに関して、ISDBコマンドレジスタは、最初にコマンドフィールドをスタッフ符号に設定し、次にスレッド番号フィールドを命令を受け取るスレッドに設定することによって書き込むことができる。選択されたスレッドは、命令をスタッフィングできるようになる前にデバッグモード120であることができる。スレッド番号内の2つ以上のビットが設定されるか又は選択されたスレッドがデバッグモード120にない場合は、結果は未定義である。次に、スタッフィングされた命令(ユーザー又はスーパバイザ)の特権レベルの設定を含む段階が生じる。
スタッフコマンドを発行後は、選択された特権レベルを有する選択されたスレッドにおいて命令を実行することができる。命令スタッフィング中には、プログラムカウンタは数字が増えない。プログラムカウンタを用いるスタッフィングされた命令(分岐、又は例外を生じさせる命令)は、スレッドの現在のプログラムカウンタ値を用いることができる。スタッフィングされた命令が例外を生じさせる場合は、ISDB状態レジスタは、例外が発生したことを示すことができる。スレッドは、デバッグモード120にとどまることができる。スレッドの設計されたレジスタは、例外状態を反映させることができる。好ましいことに、ISDB82デバッギングソフトウェアは、例外を発生させることができた命令をスタッフィング後にISDB状態レジスタに問い合わせて例外が発生したかどうかを確認する。
例外が認識された時点においては、ここにおいて開示されるプロセスは、状況をどのように取り扱うかに関する幾つかの選択肢を含む。例えば、デバッガソフトウェアは、例外リターンポイントにおいてソフトウェア又はハードウェアブレークポイントをプログラミングすることを選択し、ハンドラーを実行するためにスレッドを再開することができる。次に、デバッガは、OS“helper”関数にスレッドをリダイレクションすることができる。次に、単一ステップを用いてハンドラーを実行することおよび手作業で問題を解決する(例えば、TLBを再ロードする)ことを行うことができる。しかしながら、具体的な戦略は、OS及び/又はソフトウェアデバッガの実装により異なることができる。
レジスタ、キャッシュ、及びメモリは、適切な命令シーケンスをスタッフィングすることによってアクセスすることができる。命令に関するステップのシーケンスは、ISDBデバッギングアルゴリズムを用いてレジスタ及びキャッシュを読み取る/書き込むことを含むことができる。デバッガソフトウェアは、コアレジスタとISDBメールボックスとの間でデータを移動させるための適切な制御レジスタ転送命令をスタッフィングすることによってスレッドレジスタを読み取る/書き込むことができる。この命令は、例外が発生しないようにするためにスーパバイザ特権レベルを用いてスタッフィングすることができる。
再開コマンドは、デバッグからコアモード制御レジスタにおいてプログラミングされたモードにスレッドを移行させるために用いられる。再開方法は、JTAGインタフェース84コマンド又は外部信号のいずれかから再開させる2つの方法がある。JTAGインタフェース84コマンドからの再開である場合は、コマンドマスクにおいて示された、デバッグモード120にあるスレッドが終了し、モード制御レジスタにおいて示されるモードになる。外部信号からの再開である場合は、外部再開スレッド番号MASKにおいて示され、デバッグモード120にあるスレッドが、モード制御レジスタにおいて示されるモードに移行する。
ISDBリセットコマンドを実行することは、ハードウェアリセットを強制し、DSP全体(全スレッド)にリセットさせる。このことは、全レジスタを初期値、例えば電力オフスレッド1乃至5に設定し、リセット割り込みをスレッドT0に送る。一定のスレッドのみをリセットすることが希望される場合は、適切なマスク設定を用いて最初に開始命令をスタッフィングする手順で行うことができる。このことは、示されたスレッドに対してリセット割り込みを保留状態にすることができる。次に、プロセスは、希望されるスレッドにおいてISDB再開命令を実行することを含む。
他の型のブレークポイントは、ホストがプロセッサにコマンドを送ってブレークを指示するJTAGインタフェース84ブレークポイントである。基本的に入り外部ピンが存在する。この実施形態においては、ISDB82制御レジスタは、JTAGインタフェース84を介してデバッガホストソフトウェアによってアクセスすることができる。ISDB82は、異なるデバッグタスクを実行し、DSP40コアプロセッサと通信するようにISDB82を構成するためにホストシステムによって用いることができる様々な制御レジスタを提供する。例えば、ISDB82状態レジスタは、ISDB82の現在の状態を示す。ISDB82状態レジスタのビットは、いずれのスレッドが“待機”対実行モードにあるかを示し、その他は、いずれのスレッドが“OFF”モードであるかを示す。これらは、コアモード制御レジスタのEビットフィールドを反映したものである。例えばOFFであるスレッドは、一般的にはデバッグできない。従って、ISDBコマンドがオフであるスレッドに送られる場合は、結果は未定義である。その他のデバッグモード120状態ビットは、いずれのスレッドがデバッグモード120であるかを示す。スレッドがデバッグモード120にあることをこれらのビットが示す場合は、待機/実行モードビットは、デバッグモード120に入る前にモードを示す。
さらにその他のビットは、スタッフコマンド状態、すなわちスタッフ命令プロセスが成功しているかどうか又はスタッフ命令が例外を発生させたかどうか、を示す。ISDBコマンド状態ビットは、ISDBコマンドが成功又は失敗であったかを表す。他の組のビットは、いずれかのスレッドがデバッグ120モードにあるときにグローバル割り込みディスエーブルを提供し、従って、デバッグモード120にあるスレッドに関しては割り込みがディスエーブルにされ、その他のスレッドに関してはイネーブルにされる。いずれかのスレッドがデバッグモード120にあるときには全スレッドに関して割り込みがディスエーブルにされる。
その他のビットは、外部再開信号に基づいていずれのスレッドが再開すべきかを示すフィールドを形成することができる。外部再開信号に基づき、マスクビットが設定されているスレッドに関して、そのスレッドがデバッグモード120にある場合は、前モードを再開することができ、その他の場合は影響がない。他のフィールドは、外部ブレークポイント要求時にいずれのスレッドがブレークすべきかを示す。マスクビットが設定されているスレッドに関して、ISDB82において外部ブレークポイント信号を受信した時点で、そのスレッドがデバッグモード120ない場合は、デバッグモードに入ることができ、その他の場合は影響がない。
さらに、ISDBコンフィギュレーション命令は、ISDB82の様々な特長をイネーブル又はディスエーブルにすることができる。いずれかのスレッドがデバッグモード120にあるときにグローバル割り込みディスエーブルが発生し、それによりデバッグモード120にあるスレッドに関する割り込みをディスエーブルにする。ISDBコンフィギュレーションレジスタ内の他のフィールドは、外部再開信号に基づいていずれのスレッドが再開すべきかを示すことができる。外部再開信号に基づき、マスクビットが設定されているスレッドに関して、該スレッドがデバッグモード120にある場合は、該スレッドは前モードを再開する。その他の場合は影響がない。
ISDBレジスタ内のさらに他のフィールドは、ISDB82が外部ブレークポイント要求を受け取った時点でいずれのスレッドがブレークすべきかを示すことができる。外部ブレークポイント信号を受け取った時点で、マスクビットが設定されているスレッドに関して、スレッドがデバッグモード120にない場合は、デバッグモード120に入ることができる。その他の場合は影響がない。
ブレークポイント情報レジスタは、デバッグモード120にあるスレッドに関して、いずれのトリガーがブレークポイントを発生させたかを示す。これは、ブレークポイント命令実行時にいずれの追加のスレッドがブレークすべきかを示す6ビットフィールドであることができる。最下位ビットは、スレッド番号0に関するビットであることができ、次のビットはスレッド番号1に関するビットであり、以下同様である。ブレークポイント命令実行時において、ブレークポイントを実行したスレッドは、デバッグモード120に入ることができる。さらに、このマスクにおいてビットが設定されているスレッドは、デバッグモード120に入ることができる。
ISDB82からMSMに進む割り込み信号ブレークイベントが存在する。このマスクにおいて示されるスレッド番号がデバッグモード120に入るごとに、ブレークイベント割り込みが呼び出される。一実施形態においては、ビット0は、スレッド番号0に関するビットであり、ビット1はスレッド番号1に関するビットであり、以下同様である。デバッグモード120にあるスレッドに関して、これらのビットは、何がデバッグモード120への移行を生じさせたかを示す。デバッグモード120にないスレッドに関しては、これらのビットは未定義である。従って、ビットは、ハードウェアブレークポイント、ブレークポイント命令実行、ETMブレークポイント、JTAGインタフェース84ブレークポイント、外部ブレークポイントの存在を示す。さらに、その他のビットは、ブレークポイントソースを示すことができる。ブレークポイントプログラムカウンタは、ブレークポイントプログラムカウンタと同一のレジスタを含み、これらは、ハードウェアブレークポイントを制御することを除く。ブレークポイントコンフィギュレーションレジスタは、スレッドのプログラムカウンタレジスタと比較するために用いられる。
ISDB82コマンドレジスタは、いずれのスレッドがデバッグモード120に移行できるかを示すためのブレークコマンドを含むことができる。再開コマンドに関して、いずれのスレッドが再開すべきかを示す。ISTEPコマンドは、いずれのスレッドがステップ・バイ・ステッププロセスにおいてステップすべきかを示す。スタッフ命令コマンドは、いずれのスレッドが命令スタッフィング動作を行うためのスタッフ命令を受け取ることができるかを示す。スタッフ命令特権は、幾つかのスタッフィングされた命令がユーザーモードにおいて実行するのを許容し、その他は、スーパバイザモードにおいて実行することができる。
ブレークコマンドに基づき、DSP40は、スレッド番号マスクにおいて示される全スレッドをデバッグモード120に移行させることができる。再開コマンドは、スレッド番号マスクにおいて示される全スレッドを実行モードに移行させることをプロセッサに行わせる。ステップコマンドは、デジタル信号プロセッサが1つのパケットに関するスレッド番号マスク内において示される全スレッドをステップさせることを許容する。示されたスレッドがデバッグモード120にない場合は影響がない。
スタッフコマンドは、スレッド番号マスクにおいて示されるスレッドにおけるスタッフ命令レジスタ内に含まれる32ビット命令を実行することをデジタル信号プロセッサに行わせる。マスク内の1つのビットのみをセットすることができる。示されるスレッドがデバッグモード120にない場合は、挙動は未定義である。リセットコマンドは、DSPへのハードウェアリセットを開始する。レジスタは、初期値に設定され、スレッド1乃至5がオフにされ、スレッドT0は、リセット割り込みが与えられる。割り込みコマンドに基づき、ISDB82は、JTAGインタフェース84コマンド割り込みを呼び出す。この信号は、ISDB8を出てMSM104内に入り、MSMレベルでストラップされる。ISDB82イネーブルレジスタは、ISDB82の動作をイネーブルにし、さらに、“セキュリティ”ISDB82イネーブルビット及びISDB82クロックの状態を検査する。
ISDB82の動作をサポートする様々なコマンドについて説明したが、ISDB82デバッギング動作の典型的プロセスは、さらに有益であることができる。従って、図6は、本開示の様々な非侵入型デバッギングアルゴリズムの側面に関するISDB82流れ図を示す。図6のISDB82プロセスの流れは、様々な手法を用いて実行することができるが、提示される開示主題の基本的な流れは、希望される非侵入型デバッギング動作を達成する。従って、図6に関して、JTAGインタフェース84から、ISDB入口ステップ130において、プロセスの流れが開始することができる。
ISDB入口ステップ130から、非侵入型デバッギングプロセスの流れは、ISDBがDSP40動作に関してイネーブルにされているかどうかを試験する、ISDBによってイネーブルにされるクエリ132に進む。ISDBがDSP40動作に関してイネーブルにされている場合は、プロセスの流れは、ハードウェアブレークポイントクエリ134に進む。ハードウェアブレークポイントクエリ134は、ハードウェアブレークポイントに遭遇しているかどうかを試験する。遭遇していない場合は、プロセスの流れは、ソフトウェアブレークポイントクエリ136まで続くことができる。その他の場合は、プロセスの流れは、デバッギング動作が開始するデバッギング動作ステップ138に進む。ソフトウェアブレークポイント136は、ソフトウェアブレークポイントの存在の有無を試験し、ソフトウェアブレークポイントが存在する場合はISDB82プロセスをデバッギング動作ステップ138に向ける。ソフトウェアブレークポイントが存在しない場合は、プロセスの流れは、ETMブレークポイントクエリ140まで続く。ETMブレークポイントクエリ140は、ETMブレークポイントの存在の有無を試験し、ETMブレークポイントが存在する場合はISDB82プロセスをデバッギング動作ステップ138に向ける。ETMブレークポイントが存在しない場合は、プロセスの流れは、JTAGインタフェース84ブレークポイントクエリ142まで続く。JTAGインタフェース84ブレークポイント142は、JTAG84ブレークポイントの存在の有無を試験し、JTABブレークポイントが存在する場合は、ISDB82プロセスをデバッギング動作ステップ138に向かわせる。JTABブレークポイントが存在しない場合は、プロセスの流れは、外部ブレークポイントクエリ144まで続く。外部ブレークポイント144は、外部ブレークポイントの存在の有無を試験し、外部ブレークポイントの存在する場合は、ISDB82プロセスをデバッギング動作ステップ138に向かわせる。外部ブレークポイントが存在しない場合は、プロセスの流れは、ISDBによってイネーブルにされるクエリ132に戻る。このタイプのサイクルは、DSP40の動作中に繰り返すことができる。
ISDB82プロセスの流れがデバッギング動作ステップ138に進んだ時点で、“デバッグ待機”クエリ146は、待機モード116が有効かどうか試験する。有効である場合は、待機116モードが終了するまでデバッギング動作は行われない。待機モード116が有効でない場合は、プロセスの流れは、ISTEPデバッギングクエリ148に進む。ISTEPデバッギングクエリ148は、個々のステップデバッギングがISDB82動作に関して有効であるかどうかを試験する。有効である場合は、プロセスの流れは、ISTEPデバッギングステップ150に進み、このタイプのデバッギング動作を実行する。ISTEPデバッギングが有効でない場合は、プロセスの流れは、スタッフ命令クエリ152に進む。スタッフ命令クエリ152は、命令スタッフィング動作がISDB82動作に関して有効であるかどうかを試験する。有効である場合は、プロセスの流れは、ここにおいて説明される命令スタッフィング動作を表すスタッフ命令ステップ154に進むことができる。命令スタッフィングが有効でない場合は、プロセスの流れは、クエリ156に進む。
クエリ156において、コアDSP40リセット命令がデバッギング動作によって生成されているかどうかに関する試験が実施される。コアDSP40リセット命令が生成されている場合は、プロセスの流れは、コアDSP40デジタル信号プロセッサリセットコマンドを引き渡すためにJTAGインタフェース84に進む。該リセットコマンドが生成されていない場合は、プロセスの流れは、割り込み存在クエリ158に進む。割り込み存在クエリ158は、デバッギング動作への割り込みが存在するかどうかを試験する。デバッギング動作への割り込みが存在する場合は、ISDB82動作に割り込まれ、プロセスの流れは、デバッギング動作に割り込まれていることを示す信号をDSP40に引き渡すためにJTAG40インタフェース84に進む。割り込み信号が存在しない場合は、プロセスの流れは、通常のスレッド動作が開始できるかどうか及びデバッギング動作が停止できるかどうかを試験するために通常スレッド再開クエリ160に進む。通常のスレッド動作が開始することができ、デバッギング動作が停止することができる場合は、プロセスの流れは、JTAGインタフェース84に進み、DSP40は、対象スレッドをデバッグ動作モード120から通常動作モードに移行させる。デバッギングが継続する場合は、プロセスの流れは、デバッギング動作ステップ138に戻る。
明確なことであるが、ISDB82プロセスの流れの動作は、非常に広範であることが可能であるが、これらの動作は開示される主題の適用範囲内であることができる。従って、図6のISDB82プロセスの流れは、本開示の1つの可能な実施形態として例示することを目的とするものである。
開示される主題の他の側面は、DSP40内における電力崩壊を通じてのデバッギングを含む。ISDBコンフィギュレーションレジスタは、デバッガソフトウェア(JTAGインタフェース84を介する)及びスーパバイザコアソフトウェア(CR転送命令を介する)の両方によって読み取り可能及び書き込み可能である。カーネルソフトウェアは、この特長を用いて電力崩壊時におけるISDBコンフィギュレーションをセーブ及びリストアすることができる。これらの共有レジスタを書き込むマスターが多数存在するため、これらのレジスタは首尾一貫した、相互に排他的な形でのみ書き込むことが重要である。
本明細書の方針は、コアがパワーダウン又はパワーアップ中のときには、JTAGインタフェース84はこれらのレジスタを読み取る/書き込むことを許容されないということである。同様に、JTAG84がこれらのレジスタを修正中であるときには、コアは、パワーダウンすることが許容されない。この方針は、ハードウェアとソフトウェアの組合せに関しても強制される。システムコンフィギュレーションにおける1つのビット、ISDBコアレディレジスタビットは、コアスーパバイザソフトウェアのみによって書き込むことができる。このビットは、DSP40のハードウェアリセット時にクリアされる。このビットがクリアされているときには、すべてのJTAGインタフェース84読み取り及び書き込みパケットは、無効状態を戻すことができる。コアは、このビットを用いて、いつパワーアップシーケンスを完了していてISDBと対話する準備が整っているかをホストソフトウェアに示すことができる。このことは、セーブされたISDB82コンフィギュレーションをウォームブートパワーアップ(リストア)シーケンスにおいてリストアさせる機会をコアに与える。
電力崩壊時におけるデバッギングの一例は、電力を意識する必要がある携帯電話において見つけることができる。DSP40は、依然としてデバッギングを行う必要がある間にオフになるか又はアイドル状態になることができる。従って、開示される主題は、電力崩壊インスタンスのみにおいて現れることができるブレークポイントを設定する能力を提供する。このことは、コアが動作中でない又は“オン”状態でないときでさえもデバッグする能力を提供する。
開示される実施形態における、電力崩壊時のデバッギングは、DSPが電力を降下させることに関連づけられたコンフィギュレーションに関する一組のブレークポイントを設定することを含む。DSPが電力を降下させる前に、DSPは、コンフィギュレーションを特定のレジスタ内にセーブする。これらの特定のレジスタ及びコンフィギュレーションは、RAMプロセスの中断を可能にする。従って、DSPが戻ったときに、コンフィギュレーションは、次のデバッグ動作を実行できる状態にある。
ここにおいて、マルチスレッド化デジタル信号デジタル信号プロセッサにおける非侵入型、スレッド選択式デバッギングに関して説明される処理上の特長及び機能は、様々な方法で実装することができる。例えば、DSP40が上述される動作を実行できるだけでなく、本明細書の実施形態は、ここにおいて説明される機能を果たすように設計された特定用途向け集積回路(ASIC)、マイクロコントローラ、デジタル信号プロセッサ、又はその他の電子回路において実装することもできる。さらに、ここにおいて説明されるプロセス及び特長は、該様々な信号及び命令処理システムによる読み取り及び実行のために磁気媒体、光学媒体、又はその他の記録媒体に格納することができる。従って、好まれる実施形態に関する上記の説明は、当業者が請求される主題を製造または使用するのを可能にすることを目的とするものである。これらの実施形態に対する様々な修正が当業者にとって容易に明確になるであろう。さらに、ここにおいて定義される一般原理は、革新的な能力を用いずにその他の実施形態にも適用可能である。以上のように、請求される主題は、ここにおいて示される実施形態に限定されることが意図されるものではなく、ここにおいて開示される原理及び斬新な特長に一致する限りにおいて最も広範な適用範囲が認められるべきである。

Claims (21)

  1. マルチスレッド化デジタル信号プロセッサをデバッグするための非侵入型方法であって、
    前記マルチスレッド化デジタル信号プロセッサの少なくとも1つ以上のスレッドを用いて複数の処理命令をマルチスレッド化プロセスにおいて実行することと、
    少なくとも1つのデバッギングイベントを生成するための1つ以上のブレークポイント命令を識別することと、
    前記ブレークポイント命令のうちの少なくとも1つを実行することに応じて前記少なくとも1つのデバッギングイベントを生成することと、
    前記少なくとも1つのデバッギングイベントに応じて複数のデバッギング命令を実行することであって、前記デバッギング命令は、前記マルチスレッド化デジタル信号プロセッサの少なくとも1つ以上のスレッドをデバッギングモードに移行させることによって前記マルチスレッド化デジタル信号プロセッサにおいて前記複数の処理命令を前記実行することを非侵入方式でデバッグするためのデバッギング命令であることと、
    前記複数のデバッギング命令を前記実行することを報告するために前記複数のデバッギング命令を前記実行することからの少なくとも1つのデバッギングリターンを生成すること、とを備える、非侵入型方法。
  2. 前記少なくとも1つのデバッギングイベントは、前記マルチスレッド化デジタル信号プロセッサ内において内部生成されたインスタンスに応じて発生する請求項1に記載の方法。
  3. 前記少なくとも1つのデバッギングイベントは、前記マルチスレッド化デジタル信号プロセッサ内において外部生成されたインスタンスに応じて発生する請求項1に記載の方法。
  4. 前記少なくとも1つのデバッギングイベントは、前記マルチスレッド化デジタル信号プロセッサ内においてプログラムカウンタが予め決められたカウントに達することに応じて発生する請求項1に記載の方法。
  5. 前記マルチスレッド化デジタル信号プロセッサの前記少なくとも1つ以上のスレッドは、前記デバッギングモードから出る請求項1に記載の方法。
  6. 少なくとも1つ以上の命令スタッフィング命令は、前記マルチスレッド化デジタル信号プロセッサの動作に関連する予め決められたデバッギングアルゴリズムを実行する請求項1に記載の方法。
  7. 前記マルチスレッド化デジタル信号プロセッサ内の前記少なくとも1つ以上のデバッギング命令は、前記複数のデバッギング命令を前記実行することと前記複数の処理命令を前記実行することとの間においてJTAGインタフェースインタフェースを用いる請求項1に記載の方法。
  8. マルチスレッド化デジタル信号プロセッサを非侵入方式でデバッグするための動作に関するシステムであって、
    デジタル信号マルチスレッド化プロセスにおいて複数の処理命令を実行するための前記マルチスレッド化デジタル信号プロセッサの1つ以上のスレッドと、
    少なくとも1つのデバッギングイベントを生成するための一組のブレークポイント命令と、
    前記ブレークポイント命令のうちの少なくとも1つを実行することに応じて少なくとも1つのデバッギングイベントを生成するためのデバッギングイベント生成命令と、
    前記少なくとも1つのデバッギングイベントに応じて前記複数のデバッギング命令を実行するための前記スレッドのうちの1つ以上であって、前記複数のデバッギング命令は、前記マルチスレッド化デジタル信号プロセッサの少なくとも1つ以上のスレッドをデバッギングモードに移行させることによって前記マルチスレッド化デジタル信号プロセッサにおいて前記複数の処理命令を前記実行することを非侵入方式でデバッギングするためのデバッギング命令である前記スレッドのうちの1つ以上と、
    前記マルチスレッド化デジタル信号プロセッサの前記少なくとも1つ以上のスレッドにおいて前記複数のデバッギング命令を前記実行することを報告するために前記複数のデバッギング命令を前記実行することからの少なくとも1つのデバッギングリターンを生成するためのデバッギングリターン命令と、を備える、システム。
  9. 前記マルチスレッド化デジタル信号プロセッサ内においてプログラムカウンタが予め決められたカウントに達することに応じて前記デバッギングイベントが発生するための回路と命令とをさらに備える請求項8に記載のシステム。
  10. 前記マルチスレッド化デジタル信号プロセッサの前記少なくとも1つ以上のスレッドを前記デバッギングモードから出すための回路と命令とをさらに備える請求項8に記載のシステム。
  11. 前記マルチスレッド化デジタル信号プロセッサの動作に関連する予め決められたデバッギングアルゴリズムを実行するための一組の命令スタッフィング命令をさらに備える請求項8に記載のシステム。
  12. JTAGインタフェースを用いて前記マルチスレッド化デジタル信号プロセッサを非侵入方式でデバッグするための回路と命令とをさらに備える請求項8に記載のシステム。
  13. パーソナル電子デバイスをサポートするための動作に関するマルチスレッド化デジタル信号プロセッサであって、マルチスレッド化処理中にデバッグするための非侵入型手段を備え、
    前記マルチスレッド化デジタル信号プロセッサの少なくとも1つ以上のスレッドを用いてマルチスレッド化プロセスにおいて複数の処理命令を実行するための手段と、
    少なくとも1つのデバッギングイベントを生成するための1つ以上のブレークポイント命令を識別するための手段と、
    前記ブレークポイント命令のうちの少なくとも1つを実行することに応じて少なくとも1つのデバッギングイベントを生成するための手段と、
    前記少なくとも1つのデバッギングイベントに応じて前記複数のデバッギング命令を実行するための手段であって、前記デバッギング命令は、前記マルチスレッド化デジタル信号プロセッサの少なくとも1つ以上のスレッドをデバッギングモードに移行させることによって前記マルチスレッド化デジタル信号プロセッサにおいて前記複数の処理命令を前記実行することを非侵入方式でデバッグするためのデバッギング命令である手段と、
    前記マルチスレッド化デジタル信号プロセッサの前記少なくとも1つ以上のスレッドにおいて前記複数のデバッギング命令を前記実行することを報告するために前記複数のデバッギング命令を前記実行することからの少なくとも1つのデバッギングリターンを生成するための手段と、を備える、マルチスレッド化デジタル信号プロセッサ。
  14. 前記マルチスレッド化デジタル信号プロセッサ内において内部生成されたインスタンスに応じて前記デバッギングイベントが発生するための手段をさらに備える請求項13に記載のデジタル信号プロセッサシステム。
  15. 前記マルチスレッド化デジタル信号プロセッサ内において外部生成されたインスタンスに応じて前記デバッギングイベントが発生するための手段をさらに備える請求項13に記載のマルチスレッド化デジタル信号プロセッサ。
  16. 前記マルチスレッド化デジタル信号プロセッサ内においてプログラムカウンタが予め決められたカウントに達することに応じて前記デバッギングイベントが発生するための手段をさらに備える請求項13に記載のマルチスレッド化デジタル信号プロセッサ。
  17. 前記マルチスレッド化デジタル信号プロセッサの前記少なくとも1つ以上のスレッドを前記デバッギングモードから出すための手段をさらに備える請求項13に記載のマルチスレッド化デジタル信号プロセッサ。
  18. 前記マルチスレッド化デジタル信号プロセッサの動作に関連する予め決められたデバッギングアルゴリズムを実行するための命令をスタッフィングするための手段をさらに備える請求項13に記載のマルチスレッド化デジタル信号プロセッサ。
  19. 前記複数のデバッギング命令を前記実行することと前記複数の処理命令を前記実行することとの間においてJTAGインタフェースを用いるための手段をさらに備える請求項13に記載のマルチスレッド化デジタル信号プロセッサ。
  20. マルチスレッド化デジタル信号プロセッサを非侵入方式でデバッグするための前記マルチスレッド化デジタル信号プロセッサにおける処理命令に関してここにおいて具現化されたコンピュータによって読み取り可能なプログラムコード手段を有するコンピュータによって使用可能な媒体であって、
    前記マルチスレッド化デジタル信号プロセッサの少なくとも1つ以上のスレッドを用いてマルチスレッド化プロセスにおいて複数の処理命令を実行するためのコンピュータによって読み取り可能なプログラムコード手段と、
    少なくとも1つのデバッギングイベントを生成するために1つ以上のブレークポイント命令を識別するためのコンピュータによって読み取り可能なプログラムコード手段と、
    前記ブレークポイント命令のうちの少なくとも1つを実行することに応じて少なくとも1つのデバッギングイベントを生成するためのコンピュータによって読み取り可能なプログラムコード手段と、
    前記少なくとも1つのデバッギングイベントに応じて前記複数のデバッギング命令を実行するためのコンピュータによって読み取り可能なプログラムコード手段であって、前記デバッギング命令は、前記マルチスレッド化デジタル信号プロセッサの少なくとも1つ以上のスレッドをデバッギングモードに移行させることによって前記マルチスレッド化デジタル信号プロセッサにおいて前記複数の処理命令を前記実行することを非侵入方式でデバッグするためのデバッギング命令であるコンピュータによって読み取り可能なプログラムコード手段と、
    前記マルチスレッド化デジタル信号プロセッサの前記少なくとも1つ以上のスレッドにおいて前記複数のデバッギング命令を前記実行することを報告するために前記複数のデバッギング命令を前記実行することからの少なくとも1つのデバッギングリターンを生成するためのコンピュータによって読み取り可能なプログラムコード手段と、を備える、コンピュータによって使用可能な媒体。
  21. 前記少なくとも1つのデバッギングイベントであって、前記マルチスレッド化デジタル信号プロセッサ内において内部生成されたインスタンスに応じて発生するデバッギングイベント、に応じて前記複数のデバッギング命令を実行するためのコンピュータによって読み取り可能なプログラムコード手段をさらに備える請求項20に記載のコンピュータによって使用可能な媒体。
JP2012209762A 2006-11-15 2012-09-24 マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム Pending JP2013058207A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/560,217 US8370806B2 (en) 2006-11-15 2006-11-15 Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
US11/560,217 2006-11-15

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009537298A Division JP2010510581A (ja) 2006-11-15 2007-11-12 マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム

Publications (1)

Publication Number Publication Date
JP2013058207A true JP2013058207A (ja) 2013-03-28

Family

ID=39361425

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009537298A Ceased JP2010510581A (ja) 2006-11-15 2007-11-12 マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム
JP2012209762A Pending JP2013058207A (ja) 2006-11-15 2012-09-24 マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2009537298A Ceased JP2010510581A (ja) 2006-11-15 2007-11-12 マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム

Country Status (6)

Country Link
US (1) US8370806B2 (ja)
EP (1) EP2095237A2 (ja)
JP (2) JP2010510581A (ja)
KR (1) KR101046137B1 (ja)
CN (2) CN102360330A (ja)
WO (1) WO2008061067A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203106A (ja) * 2013-04-01 2014-10-27 日本電気株式会社 中央演算装置、情報処理装置、および仮想コア内レジスタ値取得方法

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006050715A1 (de) * 2006-10-10 2008-04-17 Robert Bosch Gmbh Verfahren und System zum Erzeugen eines gültigen Signals
US8341604B2 (en) * 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
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
US8356356B2 (en) * 2007-01-30 2013-01-15 Microsoft Corporation Anti-debugger comprising spatially and temporally separate detection and response portions
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
US8898438B2 (en) * 2007-03-14 2014-11-25 XMOS Ltd. Processor architecture for use in scheduling threads in response to communication activity
US9367321B2 (en) * 2007-03-14 2016-06-14 Xmos Limited Processor instruction set for controlling an event source to generate events used to schedule threads
US8185722B2 (en) * 2007-03-14 2012-05-22 XMOS Ltd. Processor instruction set for controlling threads to respond to events
US8484516B2 (en) * 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
US9710384B2 (en) 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8561025B1 (en) * 2008-03-31 2013-10-15 Apigee Corporation Flow and module level detecting and debugging with inclusion of generated log statements
US8156317B2 (en) * 2008-05-16 2012-04-10 Ati Technologies Ulc Integrated circuit with secure boot from a debug access port and method therefor
US9395983B2 (en) * 2008-08-20 2016-07-19 Freescale Semiconductor, Inc. Debug instruction for execution by a first thread to generate a debug event in a second thread to cause a halting operation
US20100049956A1 (en) * 2008-08-20 2010-02-25 Moyer William C Debug instruction for use in a multi-threaded data processing system
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
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US9444757B2 (en) 2009-04-27 2016-09-13 Intel Corporation Dynamic configuration of processing modules in a network communications processor architecture
US8868889B2 (en) * 2010-03-12 2014-10-21 Lsi Corporation Instruction breakpoints in a multi-core, multi-thread network communications processor architecture
KR20110095050A (ko) * 2010-02-18 2011-08-24 삼성전자주식회사 공유 라이브러리 디버깅 장치
US8112677B2 (en) 2010-02-26 2012-02-07 UltraSoC Technologies Limited Method of debugging multiple processes
US8607202B2 (en) 2010-06-04 2013-12-10 Lsi Corporation Real-time profiling in a multi-core architecture
US20110321017A1 (en) * 2010-06-29 2011-12-29 International Business Machines Corporation Computer code debugging method and apparatus providing exception breakpoints
US10393778B2 (en) * 2010-10-20 2019-08-27 Signify Holding B.V. Disaggregation apparatus
US8694832B2 (en) 2011-03-03 2014-04-08 International Business Machines Corporation Assist thread analysis and debug mechanism
CN102725735B (zh) * 2011-11-02 2014-04-02 华为技术有限公司 多线程协同仿真方法及系统
US8924784B2 (en) * 2012-04-12 2014-12-30 Freescale Semiconductor, Inc. Controller for managing a reset of a subset of threads in a multi-thread system
US10430190B2 (en) * 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
US8843900B2 (en) * 2012-06-12 2014-09-23 Microsoft Corporation Serial debugging experience for parallel programs
US8832505B2 (en) 2012-06-29 2014-09-09 Intel Corporation Methods and apparatus to provide failure detection
CN102955737B (zh) * 2012-11-06 2015-08-12 无锡江南计算技术研究所 异构处理器体系的程序调试方法和系统
EP4235444A3 (en) * 2012-11-09 2024-01-03 Coherent Logix Incorporated Real time analysis and control for a multiprocessor system
EP2962205B1 (de) 2013-04-09 2018-06-20 Siemens Aktiengesellschaft Mehrkern-prozessorsystem mit fehleranalysefunktion
US9594655B2 (en) 2013-07-25 2017-03-14 Altera Corporation Cache debug system for programmable circuits
US9665466B2 (en) * 2014-09-02 2017-05-30 Nxp Usa, Inc. Debug architecture for multithreaded processors
US9996354B2 (en) * 2015-01-09 2018-06-12 International Business Machines Corporation Instruction stream tracing of multi-threaded processors
US9626220B2 (en) 2015-01-13 2017-04-18 International Business Machines Corporation Computer system using partially functional processor core
US10719420B2 (en) * 2015-02-10 2020-07-21 International Business Machines Corporation System level testing of multi-threading functionality including building independent instruction streams while honoring architecturally imposed common fields and constraints
EP3125108A1 (en) * 2015-07-31 2017-02-01 ARM Limited Vector processing using loops of dynamic vector length
CN105354136B (zh) * 2015-09-25 2018-06-15 华为技术有限公司 一种调试方法、多核处理器和调试设备
US9996448B2 (en) * 2016-02-25 2018-06-12 Red Hat Israel Ltd Breakpoint insertion into kernel pages
US10031834B2 (en) * 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10042737B2 (en) 2016-08-31 2018-08-07 Microsoft Technology Licensing, Llc Program tracing for time travel debugging and analysis
US10031833B2 (en) 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10310977B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using a processor cache
US10324851B2 (en) 2016-10-20 2019-06-18 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using way-locking in a set-associative processor cache
US10310963B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using index bits in a processor cache
US10489273B2 (en) 2016-10-20 2019-11-26 Microsoft Technology Licensing, Llc Reuse of a related thread's cache while recording a trace file of code execution
US10540250B2 (en) 2016-11-11 2020-01-21 Microsoft Technology Licensing, Llc Reducing storage requirements for storing memory addresses and values
US10318332B2 (en) 2017-04-01 2019-06-11 Microsoft Technology Licensing, Llc Virtual machine execution tracing
US20180329877A1 (en) * 2017-05-09 2018-11-15 International Business Machines Corporation Multilingual content management
US10296442B2 (en) 2017-06-29 2019-05-21 Microsoft Technology Licensing, Llc Distributed time-travel trace recording and replay
US10459824B2 (en) 2017-09-18 2019-10-29 Microsoft Technology Licensing, Llc Cache-based trace recording using cache coherence protocol data
US10558572B2 (en) 2018-01-16 2020-02-11 Microsoft Technology Licensing, Llc Decoupling trace data streams using cache coherence protocol data
US11907091B2 (en) 2018-02-16 2024-02-20 Microsoft Technology Licensing, Llc Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches
US10496537B2 (en) 2018-02-23 2019-12-03 Microsoft Technology Licensing, Llc Trace recording by logging influxes to a lower-layer cache based on entries in an upper-layer cache
US10642737B2 (en) 2018-02-23 2020-05-05 Microsoft Technology Licensing, Llc Logging cache influxes by request to a higher-level cache
GB2580428B (en) * 2019-01-11 2021-08-25 Graphcore Ltd Handling exceptions in a machine learning processor
CN111367742A (zh) * 2020-03-02 2020-07-03 深圳中微电科技有限公司 调试mvp处理器的方法、装置、终端和计算机可读存储介质
KR102305845B1 (ko) 2020-12-21 2021-09-29 쿠팡 주식회사 코드의 검증을 위한 전자 장치 및 그 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171564A (ja) * 2002-11-18 2004-06-17 Arm Ltd マルチドメインプロセッサのためのモニタ制御

Family Cites Families (157)

* 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
US6314530B1 (en) 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
US6094729A (en) 1997-04-08 2000-07-25 Advanced Micro Devices, Inc. Debug interface including a compact trace record storage
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
US6212544B1 (en) 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6697935B1 (en) 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
US6567839B1 (en) 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6029248A (en) 1997-12-15 2000-02-22 Lucent Technologies Inc. Corporation Locking system to protect a powered component interface from erroneous access by an attached, powered-off component
US6018759A (en) 1997-12-22 2000-01-25 International Business Machines Corporation Thread switch tuning tool for optimal performance in a computer processor
US6106571A (en) 1998-01-29 2000-08-22 Applied Microsystems Corporation Relocatable instrumentation tags for testing and debugging a computer program
US6249907B1 (en) * 1998-03-24 2001-06-19 International Business Machines Corporation Method system and article of manufacture for debugging a computer program by encoding user specified breakpoint types at multiple locations in the computer program
US6757829B1 (en) 1998-05-29 2004-06-29 Texas Instruments Incorporated Program debugging system for secure computing device having secure and non-secure modes
DE19835610A1 (de) 1998-08-06 2000-02-10 Siemens Ag Programmgesteuerte Einheit und Verfahren zum Debuggen derselben
US6480818B1 (en) * 1998-11-13 2002-11-12 Cray Inc. Debugging techniques in a multithreaded environment
US6532553B1 (en) 1998-12-08 2003-03-11 Arm Limited Debugging data processing systems
US6343371B1 (en) 1999-01-14 2002-01-29 Compaq Computer Corporation System and method for statically detecting potential race conditions in multi-threaded computer programs
US6535905B1 (en) 1999-04-29 2003-03-18 Intel Corporation Method and apparatus for thread switching within a multithreaded processor
US6341347B1 (en) 1999-05-11 2002-01-22 Sun Microsystems, Inc. Thread switch logic in a multiple-thread processor
US6714958B1 (en) 1999-07-28 2004-03-30 International Business Machines Corporation Detecting and causing latent deadlocks in multi-threaded programs
EP1125199B1 (en) * 1999-09-07 2004-05-19 Koninklijke Philips Electronics N.V. Method of debugging a program thread
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
US6545549B2 (en) 2000-03-02 2003-04-08 Texas Instruments Incorporated Remotely controllable phase locked loop clock circuit
US7055136B2 (en) 2000-03-02 2006-05-30 Texas Instruments Incorporated Configurable debug system with dynamic menus
US6985848B2 (en) 2000-03-02 2006-01-10 Texas Instruments Incorporated Obtaining and exporting on-chip data processor trace and timing information
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)
US7360117B1 (en) * 2002-10-24 2008-04-15 Verisilicon Holdings (Cayman Islands) Co. Ltd. In-circuit emulation debugger and method of operation thereof
US7370210B2 (en) 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
GB2396034B (en) 2002-11-18 2006-03-08 Advanced Risc Mach Ltd Technique for accessing memory in a data processing apparatus
GB0226874D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
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
US6948155B2 (en) 2002-11-22 2005-09-20 Texas Instruments Incorporated Little offset in multicycle event maintaining cycle accurate tracing of stop events
US7047451B2 (en) 2002-11-22 2006-05-16 Texas Instruments Incorporated Tracing program counter addresses using native program counter format and instruction count format
US7131113B2 (en) 2002-12-12 2006-10-31 International Business Machines Corporation System and method on generating multi-dimensional trace files and visualizing them using multiple Gantt charts
US7325169B2 (en) 2002-12-17 2008-01-29 Texas Instruments Incorporated Apparatus and method for trace stream identification of multiple target processor events
JP4436036B2 (ja) 2002-12-18 2010-03-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、トレース処理方法、プログラム及び記録媒体
US6798713B1 (en) 2003-01-31 2004-09-28 Zilog, Inc. Implementing software breakpoints
JP3974063B2 (ja) 2003-03-24 2007-09-12 松下電器産業株式会社 プロセッサおよびコンパイラ
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
US7036897B2 (en) * 2003-10-31 2006-05-02 Hewlett-Packard Company, L.P. Method and apparatus for operating a printer
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
CA2536610C (en) 2004-02-05 2013-04-30 Research In Motion Limited 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
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
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
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
DE102007009909B4 (de) 2007-02-28 2016-09-08 Globalfoundries Inc. Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung
US9195462B2 (en) 2007-04-11 2015-11-24 Freescale Semiconductor, Inc. Techniques for tracing processes in a multi-threaded processor
US8484516B2 (en) 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
US7681078B2 (en) 2007-05-18 2010-03-16 Freescale Semiconductor, Inc. Debugging a processor through a reset event
US8001428B2 (en) 2007-10-29 2011-08-16 Arm Limited Packing trace protocols within trace streams

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171564A (ja) * 2002-11-18 2004-06-17 Arm Ltd マルチドメインプロセッサのためのモニタ制御

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6013049245; 小菅圭介 外2名: 'PythonおよびRuby用low-intrusion型デバッガによるピアスレッドの自動認識とその追' 情報処理学会論文誌 ,プログラミング 第47巻,No.SIG11(PRO30), 20060715, p.13-27, 社団法人情報処理学会 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203106A (ja) * 2013-04-01 2014-10-27 日本電気株式会社 中央演算装置、情報処理装置、および仮想コア内レジスタ値取得方法
US9690603B2 (en) 2013-04-01 2017-06-27 Nec Corporation Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method

Also Published As

Publication number Publication date
CN102360330A (zh) 2012-02-22
CN101529390B (zh) 2011-12-14
WO2008061067A2 (en) 2008-05-22
JP2010510581A (ja) 2010-04-02
CN101529390A (zh) 2009-09-09
US8370806B2 (en) 2013-02-05
KR20090084938A (ko) 2009-08-05
EP2095237A2 (en) 2009-09-02
WO2008061067A3 (en) 2008-07-24
US20080115113A1 (en) 2008-05-15
KR101046137B1 (ko) 2011-07-01

Similar Documents

Publication Publication Date Title
JP2013058207A (ja) マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム
JP5059869B2 (ja) 信頼される/信頼されないデジタル信号プロセッサデバッギング動作に関する方法及びシステム
KR101078934B1 (ko) 개선된 디지털 신호 프로세서 디버깅 동작들을 위한 임베디드 트레이스 매크로셀
KR101097620B1 (ko) 전력 트랜지션들 동안 디지털 신호 프로세서를 위한 방법 및 시스템
US8380966B2 (en) Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8484516B2 (en) Inter-thread trace alignment method and system for a multi-threaded processor
WO2007048132A2 (en) Background thread processing in a multithread digital signal processor
US7702889B2 (en) Shared interrupt control method and system for a digital signal processor
Peng et al. Towards A Unified Hardware Abstraction Layer Architecture for Embedded Systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140304