JP2010510583A - 信頼される/信頼されないデジタル信号プロセッサデバッギング動作に関する方法及びシステム - Google Patents

信頼される/信頼されないデジタル信号プロセッサデバッギング動作に関する方法及びシステム Download PDF

Info

Publication number
JP2010510583A
JP2010510583A JP2009537314A JP2009537314A JP2010510583A JP 2010510583 A JP2010510583 A JP 2010510583A JP 2009537314 A JP2009537314 A JP 2009537314A JP 2009537314 A JP2009537314 A JP 2009537314A JP 2010510583 A JP2010510583 A JP 2010510583A
Authority
JP
Japan
Prior art keywords
debugging
control
debugging control
trusted
untrusted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009537314A
Other languages
English (en)
Other versions
JP5059869B2 (ja
Inventor
コドレスキュ、ルシアン
アンダーソン、ウィリアム・シー.
ベンクマハンティ、スレッシュ
ジアンニニ、ルイス・アチレ
パイラ、マノジクマー
チェン、スーフェン
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 JP2010510583A publication Critical patent/JP2010510583A/ja
Application granted granted Critical
Publication of JP5059869B2 publication Critical patent/JP5059869B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/46Multiprogramming arrangements

Landscapes

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

Abstract

通信(例えば、CDMA)システムにおける送信を処理するためであることを含む(たただし、前記処理することに限定されない)デジタル信号プロセッサの設計及び使用に関する技法。信頼される及び信頼されないデバッギング動作制御は、前記デジタル信号プロセッサと関連づけられるコアプロセッサを動作させる際に生じる。デバッギング機構内のデバッギングプロセスは、前記コアプロセッサと関連する。前記コアプロセッサプロセスは、前記デバッギング制御元を信頼されるデバッギング制御又は信頼されないデバッギング制御であると決定する。信頼されるデバッギング制御の場合は、前記コアプロセッサプロセスは、第1の組の特長及び特権を前記信頼されるデバッギング制御に提供する。代替として、デバッギング制御が信頼されないデバッギング制御である場合は、前記コアプロセッサプロセスは、すべてが前記コアプロセッサプロセスのセキュリティ及び適切な動作を維持することを目的として、第2の制限された組の特長及び特権を前記信頼されないデバッギング制御に提供する。
【選択図】図7

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アプリケーション、例えば高度な電気通信アプリケーション、を開発及び運用する際には、精巧であるがその一方で非侵入型のデバッギングソフトウェアが必要である。すなわち、デバッギングソフトウェアアプリケーションは、ソフトウェアの欠陥及び運用上の問題の訂正をモニタリング、試験、及びサポートする上で十分に強固でなければならないだけでなく、デバッギング動作中にコアプロセッサソフトウェアと干渉しないように動作できなければならない。さもないと、コア処理ソフトウェア内のいずれの問題も、該デバッギングソフトウェアを使用中に検出することができず又は適切に検出することができない。
該非侵入型デバッギング動作は、信頼される及び信頼されないデバッギング動作を行うことと、命令スタッフィング動作を行うことができること、とを含むことができる。信頼されるユーザーは、カーネル及びアプリケーションレベルにおけるソフトウェア開発者を含み、信頼されないユーザーは、OEMと、第三者開発者と、エンドユーザーと、DSPオペレーティングシステム及びその他の必要不可欠なプログラムの必要不可欠な動作に対して意図的に又は無意識に(ただし不適切な形で)影響を及ぼすその他の者と、を含むことができる。プログラマブルなコア内においては、オペレーティングシステムは、セキュリティ上の懸念事項の管理者であり、いずれの資源、レジスタ、メモリ記憶場所、デバイス、及びサービスが様々なユーザーに関して許容されているかを理解している。従って、ユーザーが信頼されるユーザー又は信頼されないユーザーのいずれであるかを決定するためのプロセスは、オペレーティングシステムが異なるセキュリティ上のニーズに対処する際に行うことができる決定と密接に調整することができる。
従って、DSPとともに動作するためのデバッギングプロセス及びシステムであって、ユーザーが信頼されるユーザー又は信頼されないユーザーであると決定する能力を提供するデバッギングプロセス及びシステム、が必要である。
様々な型のコンフィギュレーション及びブレークポイントの決定と許可を可能にするために信頼モード又は非信頼モードのいずれかにおいて選択的に動作可能な非侵入型ソフトウェアデバッギングプロセスが必要である。
さらに、信頼される又は信頼されないユーザーとともに動作する能力を備えたデバッギングシステムであって、DSPコアプロセッサオペレーティングシステムのセキュリティ管理機能を利用するシステム、がさらに必要である。
マルチスレッド化デジタル信号プロセッサを含むデジタル信号プロセッサに関する非侵入型スレッド選択式デバッギング方法及びシステムに関する技法が開示され、該技法は、信頼される又は信頼されないデバッギングモードにおいて選択的に動作することを可能にする。ここにおいて開示される方法及びシステムは、デジタル信号プロセッサの動作と、パソコン、パーソナルデジタルアシスタント、ワイヤレスハンドセット、及び同様の電子デバイスにおいて動作するアプリケーションを含むますます強力になるソフトウェアアプリケーションに関するデジタル信号プロセッサ命令の効率的な使用と、の両方を向上させ、さらに関連するデジタルプロセッサの速度及びサービス品質を向上させる。
開示される主題の一側面により、信頼されるデバッギング動作モードと信頼されないデバッギング動作モードとの間を制御するための方法及びシステムは、デジタル信号プロセッサと関連づけられたコアプロセッサ内においてコアプロセッサプロセスを動作させるためのプロセスと、回路と、命令と、を含む。前記方法及びシステムは、前記デジタル信号プロセッサのデバッギング機構内におけるデバッギングプロセスを動作させ、前記デバッギング機構は、前記コアプロセッサと関連する。前記コアプロセッサプロセスは、デバッギング制御元が信頼されるデバッギング制御又は信頼されないデバッギング制御であると決定する。デバッギング制御が信頼されるデバッギング制御である場合は、前記コアプロセッサプロセスは、第1の組の特徴及び特権を前記信頼できるデバッギング制御に提供する。代替として、デバッギング制御が信頼されないデバッギング制御である場合は、前記コアプロセッサプロセスは、第2の制限された組の特徴及び特権を前記信頼されないデバッギング制御に提供する。従って、前記開示されるソフトウェアデバッギング方法及びシステムは、前記デバッギング制御を信頼されないデバッギング制御又は信頼されないデバッギング制御であると前記決定することに従って前記コアプロセッサプロセスの動作においてセキュリティを維持する。
開示される主題のこれらの利点とその他の利点、及び追加の斬新な特徴は、ここにおいて提供される説明から明確になるであろう。この発明の概要の意図は、請求される主題に関する包括的な説明を提供することではなく、主題の機能の一部について簡単に概説することである。ここにおいて提供されるその他のシステム、方法、特徴及び利点は、以下の図及び発明を実施するための形態を検討し次第当業者に明確になるであろう。これらのすべての追加のシステム、方法、特徴及び利点は、この説明の中に含められ、さらに添付される請求項の適用範囲内に含められることが意図される。
開示される主題の特徴、性質、及び利点は、以下の発明を実施するための形態を図面と併読することでより明確になるであろう。なお、図面全体において同様の参照文字は同様の要素を識別する。
ここにおいて開示される様々な実施形態のうちの1つを実装することができる通信システムの単純化されたブロック図である。 本開示の教示を実行するためのDSPアーキテクチャを示す。 ここにおいて開示される主題の技術的利点を組み入れたマルチスレッド化デジタル信号プロセッサの一実施形態のアーキテクチャブロック図を提供する。 本開示のISDB/JTAGインタフェース上の特徴を適用するデジタル信号プロセッサコアの一定の側面を開示する。 本開示が関連するデバッギング動作モードを含むデジタル信号プロセッサの動作モードに適用可能なプロセス流れ図である。 本開示の一実施形態に適用可能なブレークポイント処理方式を示した図である。 ここにおいて開示される信頼される/信頼されないデバッギング手順を実行するためのISDB JTAGSync回路の一側面を示した図である。 ここにおいて説明される信頼される/信頼されないデバッギング動作を提供するためのデジタル信号プロセッサシステムコンフィギュレーションレジスタを形成する一方法を示した図である。 ここにおいて説明される様々なISDB機能に関する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は、プログラムカウンタ上に常駐するISDB82デバッギングソフトウェアと通信するためにデバッガインタフェースカードとインタフェースすることができ、すべてJTAGインタフェース84を通じて行うことができる。ホストデバッガソフトウェアは、ISDB制御レジスタを読み取る及び書き込むことによってISDB82と対話することができる。通信は、例えば、読み取り/書き込みの対象となるISDBレジスタを識別する40ビットパケット、及び32ビットデータペイロードを通じて行うことができる。この動作をサポートするパケットフォーマットは、各々の幅が32ビットであることができる最大で64の制御レジスタであることができる。
ISDB82は、デバッギング動作中にセキュリティを制御するための信頼されるレジスタを含む。ISDB82trustedがセットされた場合は、すべてのISDB82レジスタがデバッガソフトウェアにとって可視であり、すべてのISDBコマンドを使用可能である。ISDB82trustedがクリアされた場合は、ISDB82は、制限された一組の動作のみを許可する。本開示のこれらの側面が以下においてより詳細に説明される。
一定のISDB82レジスタがコアソフトウェアにとって可視であるようにすることができる。これらのレジスタは、スーパバイザ(SUPERVISOR)モード制御レジスタ転送命令を介してアクセス可能である。コア命令は、ブレークポイント命令を含む。ISDBtrustedがセットされたときには、この命令は、実行中のスレッドにデバッギング動作モードに入らせる。この移行は、スレッド制御をISDB82に移行させる。ブレークポイントを実行したスレッドに加えて、その他のスレッドは、ISDB82プログラミングに従って選択的にデバッグ(DEBUG)モード150に入ることができる。ISDB82が信頼されないか又はイネーブルにされない場合は、この命令はNOPとして処理される。好ましいことに、ブレークポイント命令は、パケット内における唯一の命令である。
図4は、開示される主題のデバッギング機構とコアプロセッサとの間におけるISDB/JTAGインタフェース110の重要な側面を示す。DSP40コアアーキテクチャ70と関連して、ISDB82は、ISDB JTAG回路114からの経路JTAGインタフェース経路112を介してJTAG84と通信する。ISDB JTAG回路114は、JTAG84とISDB82との間におけるデータフローを処理する。ISDB JTAG回路114は、ISDB JTAGSync回路116をさらにインタフェースする。ISDB JTAGSync回路116は、ISDBコントローラ118、命令ユニット(IU)150及び制御ユニット(CU)122とさらに通信する。特に、ISDB JTAGSync回路116は、IU150のIU ISDB論理回路及びCU122のCU ISDBコントローラ126をインタフェースする。CU ISDBコントローラ126は、CU ISDB論理回路128、及びISDBコントローラ118と通信する。ISDBコントローラ118からの制御出力は、ISDBデータ出力130と、ISDBリセット信号132と、ISDB割り込み134と、を含む。ISDBコントローラ118へのさらなるインタフェースは、MCDインタフェース136と、ETMブレークトリガー138と、を含む。
ISDB82の様々な構成要素を挙げた後は、以下では、動作について簡単に説明し、さらに、DSP40の非侵入型の信頼される及び信頼されないデバッギング動作を実施するための制御又は論理回路の構成部分を紹介する。ISDBコントローラ118は、(a)様々なISDBレジスタを実装することと、(b)MCD外部ブレークレジスタと再開レジスタ及びETMブレークトリガーをさらなる処理のためにCU122に転送する前にDSP40に合わせて同期化することと、(c)コアのデバッグモード状態に基づいてMCDブレーク及び再開トリガーを生成することと、(d)DSP40サブシステムに送出される信号、例えばISDB割り込み、ブレークイベント、等に関するパイプラインステージを追加すること、とを含む様々なタスクを処理する。
CU122は、(a)ブレークポイントを処理する及び各スレッドへのブレークトリガーを生成する、(b)ミクロブレークコマンド及びミクロ再開コマンドを生成する、(c)ISDB82状態及びメールボックスレジスタを維持する、及び(d)一定のISDB82レジスタを実装するというタスクを処理することができる回路及び命令を含む。CU122は、すべてのブレークポイントを処理し、CU ISDBコントローラ126のミクロコマンド生成器へのマクロブレーク要求を生成するための図6に示されるようなブレークポイント処理論理(BPL)ブロックを含む。ミクロコマンド生成器は、マクロブレーク要求を命令スタッフコマンド、命令ステップ及び再開コマンドとともに処理し、ミクロブレーク及び再開コマンドをパイプライン制御のためにCU122に発行する。
CU ISDBコントローラ128は、戻されたブレーク及び再開肯定応答信号に基づいてISDB82の状態を維持する。CU ISDBコントローラ126のメールボックス機能は、ホストデバッグソフトウェアとDSP40コアプロセッサとの間の通信に関して用いられるメールボックスレジスタを維持する。これらのメールボックス機能は、ISDB82状態レジスタも含む。
図5は、DSP40の様々なモード制御に関する側面に関する処理モード図140を示し、デバッギングプロセス中におけるISDB82の動作を含む。図5においては、DSP40は、全スレッドに対してグローバルであり個々のスレッドに対してローカルである処理モードをサポートする。各DSP40ハードウェアスレッドは、すべて図5において示されるように、2つの実行モード、ユーザー(USER)モード142とスーパバイザモード144、及び3つの非処理モードすなわち待機(WAIT)モード146、OFFモード148、及びデバッグモード150、を個々にサポートする。スレッドのモードは、その他のスレッドと独立しており、例えば、1つのスレッドは待機モード146であることができ、他のスレッドは、ユーザーモード142であり、以下同様である。
図5の1つのスレッドごとのモード状態図は、様々な命令又はイベントによってサポートされる。これらは、“例外”すなわち内部例外イベントと、“Int”すなわち外部割り込みイベントと、“RTE”すなわち例外モードからのソフトウェアリターン命令と、“SSR”すなわちSSRレジスタ命令の更新と、あらゆるモードから入力することができる“停止”すなわちソフトウェア停止命令と、同じくあらゆるモードから入力することができる“開始”すなわちソフトウェア開始命令と、“トラップ”すなわちソフトウェアトラップ命令と、“待機”すなわちソフトウェア待機命令と、“再開”すなわちソフトウェア再開命令と、“DE”すなわちデバッグイベントと、“DR”すなわちデバッグ命令と、を含む。請求される主題の異なる実装における機能は、ここにおいて提示される機能とわずかに異なることができる一方で、“開始”、“待機”、“再開”、“DE”、及び/又は“DR”の意味は、請求される主題の適用範囲と一致する最も広義の解釈を行うことができる。
レジスタは、DSP40においてユーザーモード142及びスーパバイザモード144の両方において利用可能である。ユーザーモードレジスタは、一組の汎用レジスタ及び一組の制御レジスタに分割される。汎用レジスタは、アドレス生成、スカラー及びベクトル算術を含むすべての汎用演算に関して用いられる。制御レジスタは、ハードウェアループ、プレディケート、等の特殊目的の機能をサポートする。汎用レジスタは、幅が32ビットであり、単一レジスタとして又は2つのレジスタの整列された対としてアクセスすることができる。汎用レジスタファイルは、命令に関する全オペランドを提供し、ロード/ストアに関するアドレスと、数値命令に関するデータオペランドと、ベクトル命令に関するベクトルオペランドと、を含む。
デバッグモード150は、スレッドがISDB82からのコマンドを待っている特別な状態を提供する。例えばソフトウェアブレークポイント命令の実行、ISDB82からのブレークコマンド、又はハードウェアブレークポイントの発生によって、ISDBデバッグイベントが生じるごとに、示されたスレッドは、デバッグモード150に入ることができる。デバッグモード150においては、コアは、JTAGインタフェース84からのコマンドを介してISDB82によって制御される。ISDB82が再開コマンドの実行に起因してスレッドをリリースすると、スレッドは、現在のモード設定に従って動作を再開することができる。スレッドがデバッグモード150にあるときには、ISDB82によって制御され、その他のスレッドによって制御することはできない。デバッグモード150におけるスレッドをターゲットにした、実行中のスレッドからの待機命令、再開命令、開始命令、又は停止命令は、無視することができる。同様に、マスク不可割り込み(NMI)は、デバッグモード150にあるスレッドは無視することができる。
ハードウェアリセット(HARDWARE RESET)モード(図5に示されていない)及びデバッグモード150は、全スレッドに対してグローバルである。ハードウェアリセットピンがアサートされるごとに、あらゆるスレッドがどのような処理状態であるかにかかわらず、DSP40は、ハードウェアリセットモードになることができる。ハードウェアリセットモードにおいては、全レジスタが各々のリセット値に設定される。どのような処理も、ハードウェアリセットピンがデアサートされるまで行うことができない。リセットピンがアサートされた時点で、プロセッサは、リセットモードに移行することができ、全レジスタをハードウェアリセットモード値にリセットすることができる。リセットピンがデアサートされた後は、スレッドT0にソフトリセット割り込みを与えることができる。このことは、スレッドT0にスーパバイザモード144に入らせてリセットされたベクトル位置での実行を開始させることができる。その他の全スレッドは、オフ状態であることができる。この時点においては、ソフトウェアは、各スレッドに関するモード移行を個々に自由に制御することができる。
図6において、CU ISDBコントローラ126のBPL回路160(図4)は、ハードウェアブレークポイント0/1(HWBKPT0 162及びHWBKPT1 164)と、ソフトウェアブレークポイント(SWBKPT 166)と、JTAG84ブレークポイント(JTAGBKPT 168)と、ETM(埋め込み型トレースマクロ)ブレークポイント(ETMBKPT170)と、外部ブレークポイント(EXTBKPT172)と、を含む、6つの異なるソースからのブレークトリガーを含む。ブレークトリガー162乃至172及びデバッグモード状態入力174は、エンコードブレーク符号器176に行き、DSP40にデバッグモード150において動作させる。符号器176からの出力は、3つのブレークポイント情報ビット178と、ブレークポイント有効ビット180と、を含む。ブレークポイント情報データ178は、ブレークポイント情報回路182に入ってブレークポイント情報JTAGインタフェースコマンド184を生じさせる。ブレークポイントビット180は、さらに、ORゲート入力186及びリセット回路188入力を生成する。リセット回路188は、UCG開始スレッド番号又はリセット入力192のいずれかを受け取り、ORゲート196内へのリセット制御出力194を生成する。有効ビット186又はリセット出力194のいずれも、ORゲート196にBPL 160ブレークポイント出力198を生成させることができる。
BPL回路160内のブレークトリガーは、対応するTNUMマスクとともに処理され、各々のスレッドに対するマクロブレークトリガーが生成される。対応するスレッドが再開されるまでマクロブレークトリガー198bpl_breakTnum_ANY[0]が維持される。BPL160において用いることができるパイプラインステージ数は、正確なブレークポイントであるハードウェアブレークポイントによってドライブされる。すなわち、ハードウェアブレークポイントマッチをトリガーする命令は実行してはならない。スレッドは、その命令までプログラムを実行後にデバッグモードに切り換わる。開示される実施形態は、ブレークトリガーが到着してから1サイクル後にマクロブレークトリガーを提供する。そのため、ブレーク有効入力176がラッチされたバージョン入力192と論理的にORされてbpl_breakTnum_ANY[0]出力198が生成される。
ブレークポイントを用いることで、DSP40の6つのスレッドは、個々にデバッグモード150に入ること及びデバッグモード150から出ることができる。ブレークポイントトリガーは、ISDB82においてサポートされる5つの異なる種類のブレークポイントに対応する5つのソースから来ることができる。スレッドは、ブレークポイントをヒットした時点で、現行モード(例えば、待機/実行(RUN))からデバッグモード150に移行する。デバッグモード150において、スレッドは、ISDB82からのコマンドを待つ。OFFモード148にあるスレッドはパワーダウンされ、ISDB82からのコマンドを受け入れることができない。デバッグモード150に入るレーテンシーは、実装によって定義され、例えば、本開示においては、イベント電力崩壊に関連するとして定義される。例えば、一実装は、デバッグモード150に入る前に、所定の動作を完了させる、例えば未解決のロード要求を終了させる、ことを選択することができる。一実施形態においては、スレッド識別子レジスタは、8ビットの読み取り/書き込みフィールドを含み、ソフトウェアスレッド識別子を保持するために用いられる。このフィールドは、ブレークポイントとマッチさせるためにハードウェアデバッガによって用いられる。
ブレークポイントプロセスに入る方法は、幾つかの異なる方法が存在する。例えばHWBKPT1 162及びHWBKPT2 164ブレークポイントに関しては、レジスタが予め決められた値と等しい場合は、プログラムカウンタ(PC)が予め決められた値にマッチするときに、プロセスがデバッグモード150になる。ASID(アドレス空間識別子)は、プロセスにおけるプロセスID又はマルチスレッド化プロセスにおける特定のスレッドと類似のタグである。このため、物理アドレス、仮想アドレス、ASID、PC、又はその他の修飾子を用いて、ブレークポイントが生じることができるポイントにおける空間内のプログラムの位置のフィックスを随意に入手することができる。ここで参照されるブレークポイントの使用は、L.コドレスキュ、等による、“NON-INTRUSIVE, THREAD-SELECTIVE, DEBUGGING METHOD AND SYSTEM FOR A MULTI-THREADED DIGITAL SIGNAL PROCESSOR”(マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム)という題名を有する、共通譲渡米国特許出願においてより具体的に開示されている。開示される主題は、図6のようなブレークポイントの場合にデバッグモード150内に移動するための経路を提供する。開示される主題は、DSP40内のいずれのスレッド又はスレッドの組がデバッグモード150になるかを制御する。
ここにおいて開示される、信頼される及び信頼されないデバッギング動作を行うための方法及びシステムは、内部制御された及び外部制御された両方のデバッギング動作中に適用することができる様々なセキュリティレベルを提供する。デバッギング動作は、極めて重要なDSP40ソフトウェアをデバッギング動作源にさらす可能性があるため、誰がデバッギング動作を行うことができるかを知っていて制御する必要がある。信頼されるデバッギング動作に関しては、ソフトウェアへの完璧なアクセス及びその動作が可能である。例えば完全には信頼されない第三者からの信頼されない動作であるが、必要な動作である場合は、ソフトウェア、そしておそらくメモリ及びレジスタ、への限定されたアクセスのみが可能である。
一般的には、ISDB82ユーザーは、信頼されるユーザー及び信頼されないユーザーとして分類することができる。信頼されるユーザーは、既知のソフトウェア開発者、例えば、カーネル及びアプリケーションレベルのプログラムの創作者、を含むことができ、信頼されないユーザーは、OEM、第三者としての開発者、エンドユーザー、等を含むことができる。DSP40においては、コアプロセッサ70に関するオペレーティングシステムは、セキュリティ上の懸念事項のマネージャであり、様々なユーザーに関していずれの資源、レジスタ、メモリ記憶場所、デバイス、及びサービスが許容されるか理解している。DSP40オペレーティングシステムは、信頼されないユーザーが、オペレーティングシステムのみが設定できるスーパバイザ専用のコア制御(ISDB_TRUSTED)ビットの値に従って自己のアプリケーションをデバッグするのを許容する。ISDBの使用が信頼される場合は、すべての特徴及び特権が許容される。ISDBは、スーパバイザモードにおいていずれの命令も実行することができる。
ここにおいて開示される信頼される及び信頼されないデバッギング動作を行うための例示的回路を実証するために、図7は、ISDB JTAGSync回路200を含む。ISDB JTAGSync回路200は、DSP40がISDB制御レジスタを読み取る及び書き込むために用いることができるISDB試験データレジスタ202を含む。ISDB JTAGSync回路200は、DB_tckにおいて動作するISDB試験データレジスタ202とDSP40クロックドメインにおいて動作するISDB制御レジスタ204との間における同期化論理を提供する。ISDB制御レジスタを読み取る及び書き込むことによって、DSP40は、ISDB82によってサポートされる様々なデバッグタスクを実行する。
図7の実装においては、ISDB JTAGSync回路200は、JTAG_isdb_chain_in信号206を受け取ってISDB試験データレジスタ204内に入れ、JTAG_isdb_chain_out信号208を生成する。ISDB試験データレジスタ202は、読み取り/書き込み(R/W)ビット210と、アドレスビット[6:0]212と、データビット[31:0]214と、を含む。R/Wビット210内の値は、同期回路216出力及びCU_trustedDebug入力220と同じように、ANDゲート216に行く。JTAG_isdb_chain_update_tkl信号222及びISDB_CLK信号224は、同期回路218の動作を制御する。アドレスビット212からのアドレス情報は、アドレス復号回路220によって受け取ることができ、アドレス復号回路220は、ISDBレジスタ204を提供する。ISDBレジスタ204は、ANDゲート216からのwrite_enable信号228に応答してデータビット[31:0]を有するデータを転送する。
図8は、ここにおいて説明される信頼される/信頼されないデバッギング動作を提供するためのデジタル信号プロセッサシステムコンフィギュレーションレジスタを形成する1つの方法を示す。具体的には、システムコンフィギュレーション又はSYSCFGレジスタ230は、ISDBコアレディビット234、割り込みビット236、ISDBtrustedビット238、Dcacheビット240、Icacheビット242、及びMMUビット244と関連する予約ビット232を含む。SYSCFGレジスタ230は数多くの形態が存在可能であるが、本開示に関してはISDBtrustedビット238が適する。動作上は、ISDB82は、試験環境、例えば、JTAGインタフェース84を通じてデバッギングソフトウェアと通信中のデバッガインタフェースカード、と通信する。ホストデバッガソフトウェアは、ISDB制御レジスタ234乃至238を読み取る及び書き込むことによってISDB82と対話する。
40ビットパケットとしてのSYSCFGレジスタ230を通じての通信は、読み取る/書き込むためのISDBレジスタ及び32ビットデータペイロードを識別する。このパケットフォーマットは、各々の幅が32ビットであることができる最大で64の制御レジスタをサポートする。特定のレジスタの有効ビットは、データ部分が有効であるか有効でないかを示す。制御レジスタの読み取り又は書き込み時には、JTAGインタフェース84は、コアの電源がオフにされている場合、パワーアップ/ダウンプロセス中、指定されたレジスタに対して現在アクセスが許可されていない場合、又は指定されたレジスタが予約されている場合、は無効値を戻す。
SYSCFGレジスタ230は、スーパバイザ専用レジスタである。ISDBコアレディビット234は、ISDB82と対話し、DSP40のコアプロセッサ70がホストデバッガと対話する準備が整っているかどうかを示す。すべてのJTAGレジスタ読み取り及び書き込みは、ISDBコアレディビット234がセットされる(すなわち、1の値を有する)まで無効値を戻すことができる。
ISDBtrustedビット238は、ISDBtrustedビット238がセットされた(すなわち、値1を有する)場合は、すべてのISDBレジスタがデバッガソフトウェアにとって可視であり、すべてのISDBコマンドを使用可能であるような形でセキュリティを制御する。ISDB_TRUSTEDがクリアされた(すなわち、値0を有する)場合は、ISDBは、制限された一組の動作のみを許可する。コアプロセッサ70オペレーティングシステムのみがISDBtrustedビット238をセットすることができる。
図9は、表250を提供し、表250は、本実装がJTAGインタフェース84を介してデバッガホストソフトウェアによってアクセスすることができるISDB制御レジスタを記載する。ISDB82は、セキュリティ上の課題について完全に理解している一方でアプリケーションをデバッグするためのデバッグコマンドがコアプロセッサ70オペレーティングシステムととともに働くデバッグモニタープログラムに送られるような形で動作する。例えば、信頼されないモードにおいては、ISDB82は、デバッガホストソフトウェアが(a)ISDBST内のISDBメールボックス状態ビットの値を読み取ること、(b)メールボックス(ISDBMBXIN及びISDBMBXOUT)レジスタを読み取る/書き込むこと、(c)ISDBCMDコマンドレジスタ、ただし割り込みコマンドのみ、を書き込むこと、及び(d)ISDB Enable及びISDB Versionレジスタにアクセスすることを許容する。その他のすべてのISDB82レジスタ、ビット、及びコマンドはアクセス不能である。
本実装がどのように機能できるかを示す一例として、ブレークポイントをどのようにして設定できるかについて考察する。ホストデバッガソフトウェアが、メールボックスにコマンドを入れる“set breakpoint”。次に、ホストデバッガソフトウェアは、デバッガ割り込みを呼び出す。これで、コアプロセッサ70オペレーティングシステムがその割り込みを受け取り、コマンドを確認し、出メールボックス内に応答を入れて肯定応答する。これで、ホストデバッガソフトウェアが動作を進めてより多くの情報、例えばPC、及びスレッド名、を提供することができる。これらの情報ビットは、メールボックス/割り込み機構を介して受け取られて肯定応答される。コアプロセッサ70オペレーティングシステムは、ユーザーがこのブレークポイントを設定することが許容されていることを検証した時点で、希望されるポイントにおいてソフトウェアTRAPを設定することができる。ブレークポイントがヒットされた時点で、コアプロセッサ70オペレーティングシステムにトラップすることができ、それにより、コアプロセッサ70オペレーティングシステムは、ブレークポイントがヒットされたことを示すメールボックスメッセージをISDBに送ることができる。
要約すると、開示される主題は、信頼されるユーザー及び信頼されないユーザーに関するデバッギング動作を制御するための方法及びシステムを提供し、コアプロセッサ70内におけるコアプロセッサプロセス及びデジタル信号プロセッサのデバッギング機構内におけるデバッギングプロセス150、コアプロセッサと関連づけられたデバッギング機構を動作させるためのステップと、回路と、命令と、を含む。コアプロセッサ70は、デバッギング制御元を、信頼されるデバッギング制御又は信頼されないデバッギング制御であると決定する。デバッギング制御が信頼されるデバッギング制御である場合は、信頼されるデバッギング制御は、第1の組の特徴及び特権が提供される。代替として、デバッギング制御が信頼されないデバッギング制御である場合は、信頼されないデバッギング制御は、第2の組の制限された組の特徴及び特権が提供される。従って、本開示は、デバッギング制御が信頼されないデバッギング制御又は信頼されないデバッギング制御であると決定することに従ってコアプロセッサプロセスの動作においてセキュリティを維持する。
マルチスレッド化デジタル信号プロセッサにおける信頼される及び信頼されない非侵入型スレッド選択式デバッギングに関してここにおいて説明される処理上の特徴及び機能は、様々な方法で実装することができる。例えば、DSP40は、上述される動作を実行できるだけでなく、ここでの実施形態は、ここにおいて説明される機能を果たすように設計された特定用途向け集積回路(ASIC)、マイクロコントローラ、デジタル信号プロセッサ、又はその他の電子回路において実装することができる。さらに、ここにおいて説明されるプロセス及び特徴は、該様々な信号及び命令処理システムによる読み取り及び実行のために磁気媒体、光学媒体、又はその他の記録媒体に格納することができる。従って、好まれる実施形態に関する上記の説明は、当業者が請求される主題を製造または使用するのを可能にすることを目的とするものである。これらの実施形態に対する様々な修正が当業者にとって容易に明確になるであろう。さらに、ここにおいて定義される一般原理は、革新的な能力を用いずにその他の実施形態にも適用可能である。以上のように、請求される主題は、ここにおいて示される実施形態に限定されることが意図されるものではなく、ここにおいて開示される原理及び斬新な特徴に一致する限りにおいて最も広範な適用範囲が認められるべきである。

Claims (35)

  1. デジタル信号プロセッサ内において生じるデジタル信号プロセッサプロセスの信頼される及び信頼されないデバッギング制御を決定及び制御するための方法であって、
    コアプロセッサプロセスを用いてデバッギング制御元を信頼されるデバッギング制御又は信頼されないデバッギング制御であると決定することと、
    第1の組の特徴及び特権を前記信頼されるデバッギング制御に提供することと、
    前記デバッギング制御を信頼されないデバッギング制御又は信頼されるデバッギング制御であると決定することに従って前記コアプロセッサプロセスの動作においてセキュリティを維持すること、とを備える、方法。
  2. 前記デバッギング制御が信頼されないデバッギング制御であるときに第2の制限された組の特徴及び特権を前記信頼されないデバッギング制御に提供することをさらに備える請求項1に記載の方法。
  3. 前記デバッギング制御が信頼されるデバッギング制御であるときに非侵入型デバッギングコンフィギュレーションレジスタに関する読み取り/書き込み制御を提供することをさらに備える請求項1に記載の方法。
  4. 前記デバッギング制御が信頼されるデバッギング制御であるときにデバッギングブレークポイントコンフィギュレーションレジスタに関する書き込み制御を提供することをさらに備える請求項1に記載の方法。
  5. 前記デバッギング制御が信頼されるデバッギング制御であるときにデバッギングブレークポイントアドレスレジスタに関する書き込み制御を提供することをさらに備える請求項1に記載の方法。
  6. 前記デバッギング制御が信頼されるデバッギング制御であるときに命令スタッフィングレジスタに関する書き込み制御を提供することをさらに備える請求項1に記載の方法。
  7. 前記デバッギング制御が信頼されるデバッギング制御又は信頼されないデバッギング制御であるときにデバッギング機構レジスタに関するメールボックスに関する読み取り/書き込み制御を提供することをさらに備える請求項1に記載の方法。
  8. 前記デバッギング制御が信頼されないデバッギング制御であるときにデバッギングコマンドレジスタに関する制限された書き込み制御を提供することをさらに備える請求項1に記載の方法。
  9. 前記デバッギング制御が信頼されるデバッギング制御であるときにデバッギング機構汎用レジスタに関する読み取り/書き込み制御を提供することをさらに備える請求項1に記載の方法。
  10. 前記デバッギング制御が信頼されるデバッギング制御又は信頼されないデバッギング制御であるときにデバッギング機構イネーブルレジスタに関する読み取り制御を提供することをさらに備える請求項1に記載の方法。
  11. デバッギング制御が信頼されるデバッギング制御であるか又は信頼されないデバッギング制御であるかをコアプロセッサシステムコンフィギュレーションレジスタと関連づけられた予め決められた一組のビットの値に従って決定することをさらに備える請求項1に記載の方法。
  12. デジタル信号プロセッサ内において生じるデジタル信号プロセッサプロセスの信頼される及び信頼されないデバッギング制御を決定及び制御するためにデジタル信号プロセッサと関連して動作するためのデジタル信号プロセッサデバッギングシステムであって、
    コアプロセッサプロセスを用いてデバッギング制御元を信頼されるデバッギング制御又は信頼されないデバッギング制御であると決定するための
    コンフィギュレーションレジスタと関連づけられたコアプロセッサ制御ビットと、
    前記コアプロセッサプロセスと関連づけられた命令及び前記デバッギング制御が前記信頼されるデバッギング制御であるときに第1の組の特徴及び特権を前記信頼されるデバッギング制御に提供するためのデバッギング機構と、
    前記デバッギング制御を前記信頼されないデバッギング制御又は前記信頼されないデバッギング制御であると決定することに従って前記コアプロセッサプロセスにおいてセキュリティを維持するための手段と、を備える、システム。
  13. 前記コアプロセッサプロセスと関連づけられた命令及び前記デバッギング制御が信頼されないデバッギング制御であるときに第2の制限された組の特徴及び特権を前記信頼されないデバッギング制御に提供するための前記デバッギング機構をさらに備える請求項12に記載のデジタル信号プロセッサデバッギングシステム。
  14. 前記デバッギング制御が前記信頼されるデバッギング制御であるときに非侵入型デバッギングコンフィギュレーションレジスタに関する読み取り/書き込み制御を提供するための回路と命令とをさらに備える請求項12に記載のデジタル信号プロセッサデバッギングシステム。
  15. 前記デバッギング制御が前記信頼されるデバッギング制御であるときにデバッギングブレークポイントコンフィギュレーションレジスタに関する書き込み制御を提供するための回路と命令とをさらに備える請求項12に記載のデジタル信号プロセッサデバッギングシステム。
  16. 前記デバッギング制御が信頼されるデバッギング制御であるときにデバッギングブレークポイントアドレスレジスタに関する書き込み制御を提供するための回路と命令とをさらに備える請求項13に記載のデジタル信号プロセッサデバッギングシステム。
  17. 前記デバッギング制御が信頼されるデバッギング制御であるときに命令スタッフィングレジスタに関する書き込み制御を提供するための回路と命令とをさらに備える請求項13に記載のデジタル信号プロセッサデバッギングシステム。
  18. 前記デバッギング制御が前記信頼されるデバッギング制御又は前記信頼されないデバッギング制御であるときにメールボックスに関する読み取り/書き込み制御をデバッギング機構レジスタに提供するための回路と命令とをさらに備える請求項13に記載のデジタル信号プロセッサデバッギングシステム。
  19. 前記デバッギング制御が前記信頼されないデバッギング制御であるときにデバッギングコマンドレジスタに関する制限された書き込み制御を提供するための回路と命令とをさらに備える請求項13に記載のデジタル信号プロセッサデバッギングシステム。
  20. デバッギング制御が前記信頼されるデバッギング制御であるときにデバッギング機構汎用レジスタに関する読み取り/書き込みを提供するための回路と命令とをさらに備える請求項13に記載のデジタル信号プロセッサデバッギングシステム。
  21. 前記デバッギング制御が前記信頼されるデバッギング制御又は前記信頼されないデバッギング制御であるときにデバッギング機構イネーブルレジスタに関する読み取り制御を提供するための回路と命令とをさらに備える請求項13に記載のデジタル信号プロセッサデバッギングシステム。
  22. コアプロセッサシステムコンフィギュレーションレジスタと関連づけられた予め決められた一組のビットの前記値に従ってデバッギング制御が前記信頼されるデバッギング制御であるか又は前記信頼されないデバッギング制御であるかを決定するための回路と命令とをさらに備える請求項13に記載のデジタル信号プロセッサデバッギングシステム。
  23. パーソナル電子デバイスをサポートする動作に関するデジタル信号プロセッサであって、
    前記デジタル信号プロセッサのデバッギング動作中にデジタル信号プロセッサプロセスのセキュリティを維持するための手段と、
    コアプロセッサプロセスを用いてデバッギング制御元を信頼されるデバッギング制御又は信頼されないデバッギング制御であると決定するための手段と、
    前記デバッギング制御が前記信頼されるデバッギング制御であるときに第1の組の特徴及び特権を前記信頼されるデバッギング制御に提供するための手段と、
    前記デバッギング制御が前記信頼されないデバッギング制御又は前記信頼されるデデバッギング制御であると決定することに従って前記コアプロセッサプロセスの動作中にセキュリティを維持するための手段と、を備える、デジタル信号プロセッサ。
  24. 前記デバッギング制御が前記信頼されないデバッギング制御であるときに第2の制限された一組の特徴及び特権を前記信頼されないデバッギング制御に提供するための手段をさらに備える請求項23に記載のデジタル信号プロセッサ。
  25. 前記デバッギング制御が前記信頼されるデバッギング制御であるときに非侵入型デバッギングコンフィギュレーションレジスタに関する読み取り/書き込み制御を提供するための手段をさらに備える請求項23に記載のデジタル信号プロセッサ。
  26. 前記デバッギング制御が前記信頼されるデバッギング制御であるときにデバッギングブレークポイントコンフィギュレーションレジスタに関する書き込み制御を提供するための手段をさらに備える請求項23に記載のデジタル信号プロセッサ。
  27. 前記デバッギング制御が前記信頼されるデバッギング制御であるときにデバッギングブレークポイントアドレスレジスタに関する書き込み制御を提供するための手段をさらに備える請求項23に記載のデジタル信号プロセッサ。
  28. 前記デバッギング制御が前記信頼されるデバッギング制御であるときに命令スタッフィングレジスタに関する書き込み制御を提供するための手段をさらに備える請求項23に記載のデジタル信号プロセッサ。
  29. 前記デバッギング制御が前記信頼されるデバッギング制御又は前記信頼されないデバッギング制御であるときにデバッギング機構レジスタに関して読み取り/書き込み制御をメールボックスに提供するための手段をさらに備える請求項23に記載のデジタル信号プロセッサ。
  30. 前記デバッギング制御が前記信頼されないデバッギング制御であるときにデバッギングコマンドレジスタに関する制限された書き込み制御を提供するための手段をさらに備える請求項23に記載のデジタル信号プロセッサ。
  31. 前記デバッギング制御が前記信頼されるデバッギング制御であるときにデバッギング機構汎用レジスタに関する読み取り/書き込み制御を提供するための手段をさらに備える請求項23に記載のデジタル信号プロセッサ。
  32. 前記デバッギング制御が前記信頼されるデバッギング制御又は前記信頼されないデバッギング制御であるときにデバッギング機構イネーブルレジスタに関する読み取り制御を提供するための手段をさらに備える請求項23に記載のデジタル信号プロセッサシステム。
  33. コアプロセッサシステムコンフィギュレーションレジスタと関連づけられた予め決められた一組のビットの値に従ってデバッギング制御が前記信頼されるデバッギング制御であるか又は前記信頼されないデバッギング制御であるかを決定するための手段をさらに備える請求項23に記載のデジタル信号プロセッサシステム。
  34. マルチスレッド化デジタル信号プロセッサをデバッギングするために前記デジタル信号プロセッサにおいて命令を処理するためにその中に具現化されたコンピュータによって読み取り可能なプログラムコード手段を有するコンピュータによって使用可能な媒体であって、
    コアプロセッサプロセスを用いてデバッギング制御元を信頼されるデバッギング制御又は信頼されないデバッギング制御であると決定するためのコンピュータによって読み取り可能なプログラムコード手段と、
    前記デバッギング制御が前記信頼されるデバッギング制御であるときに第1の組の特徴及び特権を前記信頼されるデバッギング制御に提供するためのコンピュータによって読み取り可能なプログラムコード手段と、
    前記デバッギング制御が前記信頼されないデバッギング制御であるときに第2の制限された組の特徴及び特権を前記信頼されないデバッギング制御に提供するためのコンピュータによって読み取り可能なプログラムコード手段と、
    前記デバッギング制御を前記信頼されないデバッギング制御又は前記信頼されるデバッギング制御であると決定することに従って前記コアプロセッサプロセスの前記動作においてセキュリティを維持するためのコンピュータによって読み取り可能なプログラムコード手段と、を備える、コンピュータによって使用可能な媒体。
  35. コアプロセッサシステムコンフィギュレーションレジスタと関連づけられた予め決められた一組のビットの値に従ってデバッギング制御が前記信頼されるデバッギング制御であるか又は前記信頼されないデバッギング制御であるかを決定するためのコンピュータによって読み取り可能なプログラムコード手段をさらに備える請求項34に記載のコンピュータによって使用可能な媒体。
JP2009537314A 2006-11-15 2007-11-13 信頼される/信頼されないデジタル信号プロセッサデバッギング動作に関する方法及びシステム Expired - Fee Related JP5059869B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/560,332 2006-11-15
US11/560,332 US8533530B2 (en) 2006-11-15 2006-11-15 Method and system for trusted/untrusted digital signal processor debugging operations
PCT/US2007/084530 WO2008061089A2 (en) 2006-11-15 2007-11-13 Method and system for trusted/untrusted digital signal processor debugging operations

Publications (2)

Publication Number Publication Date
JP2010510583A true JP2010510583A (ja) 2010-04-02
JP5059869B2 JP5059869B2 (ja) 2012-10-31

Family

ID=39327387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009537314A Expired - Fee Related JP5059869B2 (ja) 2006-11-15 2007-11-13 信頼される/信頼されないデジタル信号プロセッサデバッギング動作に関する方法及びシステム

Country Status (6)

Country Link
US (1) US8533530B2 (ja)
EP (1) EP2095240A2 (ja)
JP (1) JP5059869B2 (ja)
KR (1) KR101155673B1 (ja)
CN (1) CN101535962B (ja)
WO (1) WO2008061089A2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8341604B2 (en) * 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced 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
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
US8417924B2 (en) * 2008-02-22 2013-04-09 Freescale Semiconductor, Inc. Data processing device and method of halting exception processing
US10073797B2 (en) * 2008-02-22 2018-09-11 Nxp Usa, Inc. Data processor device supporting selectable exceptions and method thereof
EP2433238B1 (en) * 2009-05-18 2015-10-07 Hewlett-Packard Development Company, L.P. Systems and methods of determining a trust level from system management mode
GB2483907A (en) * 2010-09-24 2012-03-28 Advanced Risc Mach Ltd Privilege level switching for data processing circuitry when in a debug mode
US9609020B2 (en) 2012-01-06 2017-03-28 Optio Labs, Inc. Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines
US9712530B2 (en) 2012-01-06 2017-07-18 Optio Labs, Inc. Systems and methods for enforcing security in mobile computing
US9787681B2 (en) 2012-01-06 2017-10-10 Optio Labs, Inc. Systems and methods for enforcing access control policies on privileged accesses for mobile devices
US20140157355A1 (en) * 2012-01-06 2014-06-05 Optio Labs, LLC Systems and methods for enhancing mobile device security with a processor trusted zone
US9363670B2 (en) 2012-08-27 2016-06-07 Optio Labs, Inc. Systems and methods for restricting access to network resources via in-location access point protocol
KR101438979B1 (ko) * 2012-12-31 2014-09-11 현대자동차주식회사 소프트웨어 검사 방법 및 시스템
US9773107B2 (en) 2013-01-07 2017-09-26 Optio Labs, Inc. Systems and methods for enforcing security in mobile computing
US9578445B2 (en) 2013-03-13 2017-02-21 Optio Labs, Inc. Systems and methods to synchronize data to a mobile device based on a device usage context
US9092562B2 (en) * 2013-05-16 2015-07-28 International Business Machines Corporation Controlling access to variables protected by an alias during a debugging session
WO2017072664A1 (en) * 2015-10-27 2017-05-04 Marvell World Trade Ltd. System and method for establishing a trusted diagnosis/debugging agent over a closed commodity device
JP6744806B2 (ja) * 2016-11-28 2020-08-19 ルネサスエレクトロニクス株式会社 マルチプロセッサ
CN107656513A (zh) * 2017-08-25 2018-02-02 歌尔丹拿音响有限公司 嵌入式设备的模式切换方法和嵌入式设备
CN111984521B (zh) * 2019-05-23 2022-11-29 核工业理化工程研究院 一种无需jtag介入的板级调试方法
CA3136322A1 (en) * 2020-12-02 2022-06-02 The Boeing Company Debug trace streams for core synchronization

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02183362A (ja) * 1988-11-23 1990-07-17 Flavors Technol Inc コンピュータシステム
JPH0855023A (ja) * 1994-07-25 1996-02-27 Motorola Inc データ処理システムおよびその方法
JP2001331340A (ja) * 2000-05-19 2001-11-30 Nec Corp コードチェックによるモード切替方式および方法
JP2003177938A (ja) * 2001-12-07 2003-06-27 Fujitsu Ltd 電子装置及びそのデバッグ認証方法
JP2004171563A (ja) * 2002-11-18 2004-06-17 Arm Ltd データ処理装置内のメモリへアクセスするための技術

Family Cites Families (154)

* 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
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5103459B1 (en) * 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
US5551043A (en) * 1994-09-07 1996-08-27 International Business Machines Corporation Standby checkpoint to prevent data loss
US6467054B1 (en) 1995-03-13 2002-10-15 Compaq Computer Corporation Self test for storage device
US6226749B1 (en) * 1995-07-31 2001-05-01 Hewlett-Packard Company Method and apparatus for operating resources under control of a security module or other secure processor
US5544311A (en) * 1995-09-11 1996-08-06 Rockwell International Corporation On-chip debug port
US5951696A (en) * 1996-11-14 1999-09-14 Hewlett-Packard Company Debug system with hardware breakpoint trap
JPH10207790A (ja) * 1997-01-20 1998-08-07 Fuji Xerox Co Ltd 入出力制御装置
US5915083A (en) * 1997-02-28 1999-06-22 Vlsi Technology, Inc. Smart debug interface circuit for efficiently for debugging a software application for a programmable digital processor device
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US6275868B1 (en) * 1997-03-12 2001-08-14 Microsoft Corporation Script Engine interface for multiple languages
US6094729A (en) 1997-04-08 2000-07-25 Advanced Micro Devices, Inc. Debug interface including a compact trace record storage
US6314530B1 (en) 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
US5944841A (en) * 1997-04-15 1999-08-31 Advanced Micro Devices, Inc. Microprocessor with built-in instruction tracing capability
US6321337B1 (en) * 1997-09-09 2001-11-20 Sanctum Ltd. Method and system for protecting operations of trusted internal networks
US6697935B1 (en) 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
US6212544B1 (en) * 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6567839B1 (en) * 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6029248A (en) * 1997-12-15 2000-02-22 Lucent Technologies Inc. Corporation Locking system to protect a powered component interface from erroneous access by an attached, powered-off component
US6018759A (en) * 1997-12-22 2000-01-25 International Business Machines Corporation Thread switch tuning tool for optimal performance in a computer processor
US6106571A (en) * 1998-01-29 2000-08-22 Applied Microsystems Corporation Relocatable instrumentation tags for testing and debugging a computer program
US6249907B1 (en) 1998-03-24 2001-06-19 International Business Machines Corporation Method system and article of manufacture for debugging a computer program by encoding user specified breakpoint types at multiple locations in the computer program
US6757829B1 (en) * 1998-05-29 2004-06-29 Texas Instruments Incorporated Program debugging system for secure computing device having secure and non-secure modes
DE19835610A1 (de) * 1998-08-06 2000-02-10 Siemens Ag Programmgesteuerte Einheit und Verfahren zum Debuggen derselben
US6480818B1 (en) 1998-11-13 2002-11-12 Cray Inc. Debugging techniques in a multithreaded environment
US6532553B1 (en) * 1998-12-08 2003-03-11 Arm Limited Debugging data processing systems
US6343371B1 (en) * 1999-01-14 2002-01-29 Compaq Computer Corporation System and method for statically detecting potential race conditions in multi-threaded computer programs
US6535905B1 (en) 1999-04-29 2003-03-18 Intel Corporation Method and apparatus for thread switching within a multithreaded processor
US6341347B1 (en) * 1999-05-11 2002-01-22 Sun Microsystems, Inc. Thread switch logic in a multiple-thread processor
US6714958B1 (en) * 1999-07-28 2004-03-30 International Business Machines Corporation Detecting and causing latent deadlocks in multi-threaded programs
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
US6985848B2 (en) * 2000-03-02 2006-01-10 Texas Instruments Incorporated Obtaining and exporting on-chip data processor trace and timing information
JP2001356934A (ja) * 2000-03-02 2001-12-26 Texas Instr Inc <Ti> ハードウェアシステムとインタラクトするソフトウェアシステムの構成方法およびデジタルシステム
US6388533B2 (en) * 2000-03-02 2002-05-14 Texas Instruments Incorporated Programmable ring oscillator
US6934937B1 (en) * 2000-03-30 2005-08-23 Broadcom Corporation Multi-channel, multi-service debug on a pipelined CPU architecture
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
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
AU2003213754A1 (en) * 2002-03-07 2003-09-22 Lance G. Taylor Intelligent selectively-targeted communications systems and methods
US6615371B2 (en) 2002-03-11 2003-09-02 American Arium Trace reporting method and system
US7055139B2 (en) * 2002-03-28 2006-05-30 Hewlett-Packard Development Company, L.P. Multiprocess debugging using multiple conventional debuggers
GB2389432B (en) * 2002-06-07 2005-09-07 Advanced Risc Mach Ltd Instruction tracing in data processing systems
US7003703B2 (en) * 2002-06-21 2006-02-21 Sandbridge Technologies, Inc. Method of interleaving/deinterleaving in a communication system
US7516446B2 (en) 2002-06-25 2009-04-07 International Business Machines Corporation Method and apparatus for efficient and precise datarace detection for multithreaded object-oriented programs
US7185319B2 (en) * 2002-07-09 2007-02-27 Microsoft Corporation Debugging distributed applications
US7512954B2 (en) * 2002-07-29 2009-03-31 Oracle International Corporation Method and mechanism for debugging a series of related events within a computer system
US7346895B2 (en) * 2002-07-31 2008-03-18 International Business Machines Corporation Method of tracing data collection
US7529258B2 (en) 2002-08-09 2009-05-05 Lecroy Corporation Method and system for cascading analyzer trace memories
DE10244922B4 (de) * 2002-09-25 2009-08-13 Infineon Technologies Ag Programmgesteuerte Einheit und Verfahren zum Debuggen von einer programmgesteuerten Einheit ausgeführten Programmen
US7519862B2 (en) 2002-10-11 2009-04-14 Broadcom Corporation Software programmable verification tool having a single built-in self-test (BIST) module for testing and debugging multiple memory modules in a device under test (DUT)
US7360117B1 (en) * 2002-10-24 2008-04-15 Verisilicon Holdings (Cayman Islands) Co. Ltd. In-circuit emulation debugger and method of operation thereof
GB2396930B (en) * 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
GB2411254B (en) 2002-11-18 2006-06-28 Advanced Risc Mach Ltd Monitoring control for multi-domain processors
US7370210B2 (en) * 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
US6948155B2 (en) * 2002-11-22 2005-09-20 Texas Instruments Incorporated Little offset in multicycle event maintaining cycle accurate tracing of stop events
US7219333B2 (en) * 2002-11-22 2007-05-15 Texas Instruments Incorporated Maintaining coherent synchronization between data streams on detection of overflow
US7047451B2 (en) * 2002-11-22 2006-05-16 Texas Instruments Incorporated Tracing program counter addresses using native program counter format and instruction count format
US7131113B2 (en) * 2002-12-12 2006-10-31 International Business Machines Corporation System and method on generating multi-dimensional trace files and visualizing them using multiple Gantt charts
US7325169B2 (en) * 2002-12-17 2008-01-29 Texas Instruments Incorporated Apparatus and method for trace stream identification of multiple target processor events
JP4436036B2 (ja) * 2002-12-18 2010-03-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、トレース処理方法、プログラム及び記録媒体
US6798713B1 (en) * 2003-01-31 2004-09-28 Zilog, Inc. Implementing software breakpoints
JP3974063B2 (ja) * 2003-03-24 2007-09-12 松下電器産業株式会社 プロセッサおよびコンパイラ
US7142246B2 (en) 2003-03-31 2006-11-28 Macronix International Co., Ltd. Apparatus and method for de-interlacing video, including 3:2 pulldown video
US7013400B2 (en) * 2003-04-24 2006-03-14 International Business Machines Corporation Method for managing power in a simultaneous multithread processor by loading instructions into pipeline circuit during select times based on clock signal frequency and selected power mode
US7159101B1 (en) * 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
US7222262B2 (en) * 2003-08-05 2007-05-22 Newisys, Inc. Methods and devices for injecting commands in systems having multiple multi-processor clusters
US7383537B2 (en) * 2003-08-20 2008-06-03 Microsoft Corporation Debugging an application that employs rights-managed content
US7600221B1 (en) 2003-10-06 2009-10-06 Sun Microsystems, Inc. Methods and apparatus of an architecture supporting execution of instructions in parallel
US7321957B2 (en) * 2003-10-24 2008-01-22 Intel Corporation Debugging a trusted component in a system
TWI226757B (en) 2003-11-11 2005-01-11 Benq Corp Address generator for block interleaving
US7328429B2 (en) * 2003-11-13 2008-02-05 Intel Corporation Instruction operand tracing for software debug
US7383540B2 (en) * 2003-12-12 2008-06-03 International Business Machines Corporation Altering execution flow of a computer program
US7475303B1 (en) * 2003-12-29 2009-01-06 Mips Technologies, Inc. HyperJTAG system including debug probe, on-chip instrumentation, and protocol
US7461407B2 (en) * 2004-02-05 2008-12-02 Research In Motion Limited Debugging port security interface
US7360203B2 (en) * 2004-02-06 2008-04-15 Infineon Technologies North America Corp. Program tracing in a multithreaded processor
US7263599B2 (en) * 2004-02-06 2007-08-28 Infineon Technologies Thread ID in a multithreaded processor
JP4347082B2 (ja) 2004-02-23 2009-10-21 日本電気株式会社 イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム
JP4409349B2 (ja) 2004-04-27 2010-02-03 Okiセミコンダクタ株式会社 デバッグ回路およびデバッグ制御方法
US7945900B2 (en) 2004-04-29 2011-05-17 Marvell International Ltd. Debugging tool for debugging multi-threaded programs
US20060253894A1 (en) * 2004-04-30 2006-11-09 Peter Bookman Mobility device platform
US7380276B2 (en) * 2004-05-20 2008-05-27 Intel Corporation Processor extensions and software verification to support type-safe language environments running with untrusted code
US7558920B2 (en) 2004-06-30 2009-07-07 Intel Corporation Apparatus and method for partitioning a shared cache of a chip multi-processor
US7363523B2 (en) 2004-08-31 2008-04-22 Intel Corporation Method and apparatus for controlling power management state transitions
JP4520788B2 (ja) * 2004-07-29 2010-08-11 富士通株式会社 マルチスレッドプロセッサ
US7278058B1 (en) 2004-08-25 2007-10-02 Unisys Corporation Methods and apparatus to diagnose software
US7814308B2 (en) * 2004-08-27 2010-10-12 Microsoft Corporation Debugging applications under different permissions
US9038070B2 (en) * 2004-09-14 2015-05-19 Synopsys, Inc. Debug in a multicore architecture
US20060129999A1 (en) * 2004-11-16 2006-06-15 Sony Computer Entertainment Inc. Methods and apparatus for using bookmarks in a trace buffer
US7783925B2 (en) 2004-12-02 2010-08-24 Texas Instruments Incorporated Receiving control, data, and control segments of communication scan packets
US7681014B2 (en) * 2005-02-04 2010-03-16 Mips Technologies, Inc. Multithreading instruction scheduler employing thread group priorities
US7418629B2 (en) * 2005-02-11 2008-08-26 International Business Machines Corporation Synchronizing triggering of multiple hardware trace facilities using an existing system bus
US7472378B2 (en) 2005-02-23 2008-12-30 International Business Machines Corporation Breakpoint management and reconciliation for embedded scripts in a business integration language specified program process
US20060206902A1 (en) 2005-03-14 2006-09-14 Sujat Jamil Variable interleaved multithreaded processor method and system
US7369954B2 (en) * 2005-03-17 2008-05-06 International Business Machines Corporation Event tracing with time stamp compression and history buffer based compression
US7747985B2 (en) 2005-03-18 2010-06-29 Microsoft Corporation Conformance testing of multi-threaded and distributed software systems
US7917907B2 (en) * 2005-03-23 2011-03-29 Qualcomm Incorporated Method and system for variable thread allocation and switching in a multithreaded processor
JP2006285430A (ja) 2005-03-31 2006-10-19 Matsushita Electric Ind Co Ltd Cpuメモリアクセス解析装置
US7657875B2 (en) * 2005-04-12 2010-02-02 International Business Machines Corporation System and method for collecting a plurality of metrics in a single profiling run of computer code
US7698686B2 (en) 2005-04-15 2010-04-13 Microsoft Corporation Method and apparatus for performance analysis on a software program
US7558984B2 (en) 2005-04-27 2009-07-07 Texas Instruments Incorporated Apparatus and method for test and debug of a processor/core having advanced power management
US7536597B2 (en) 2005-04-27 2009-05-19 Texas Instruments Incorporated Apparatus and method for controlling power, clock, and reset during test and debug procedures for a plurality of processor/cores
US8881114B2 (en) 2005-05-16 2014-11-04 Texas Instruments Incorporated Stored program writing stall information when a processor stalls waiting for another processor
US7730545B2 (en) * 2005-05-23 2010-06-01 Arm Limited Test access control for secure integrated circuits
US7548911B2 (en) 2005-05-28 2009-06-16 Microsoft Corporation Diagnosing problems in distributed systems
JP2007026051A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 情報処理装置および情報処理システム
US8694621B2 (en) * 2005-08-19 2014-04-08 Riverbed Technology, Inc. Capture, analysis, and visualization of concurrent system and network behavior of an application
WO2007028227A1 (en) * 2005-09-09 2007-03-15 Ibm Canada Limited - Ibm Canada Limitee Integrating different programming language debug tools for observing thread execution
US9146832B2 (en) 2005-10-14 2015-09-29 Oracle International Corporation Debugging functionality embedded in an application
JP4388518B2 (ja) * 2005-11-01 2009-12-24 株式会社ソニー・コンピュータエンタテインメント スレッドデバッグ装置、スレッドデバッグ方法及びプログラム
US7770155B2 (en) 2005-11-03 2010-08-03 International Business Machines Corporation Debugger apparatus and method for indicating time-correlated position of threads in a multi-threaded computer program
US7802233B2 (en) 2006-01-30 2010-09-21 Microsoft Corporation Automated display of trace historical data
US20070234306A1 (en) 2006-03-31 2007-10-04 Klinger Uwe D Tracing performance of machine-readable instructions
US20080034350A1 (en) * 2006-04-05 2008-02-07 Conti Gregory R System and Method for Checking the Integrity of Computer Program Code
KR20070109432A (ko) 2006-05-11 2007-11-15 삼성전자주식회사 커널 인지 디버깅 장치 및 방법
US20070288906A1 (en) 2006-05-16 2007-12-13 Texas Instruments Incorporated Efficient transfer of timing information
US7849315B2 (en) * 2006-05-22 2010-12-07 General Dynamics C4 Systems, Inc. Method for managing operability of on-chip debug capability
GB0613289D0 (en) * 2006-07-04 2006-08-16 Imagination Tech Ltd Synchronisation of execution threads on a multi-threaded processor
US8301870B2 (en) * 2006-07-27 2012-10-30 International Business Machines Corporation Method and apparatus for fast synchronization and out-of-order execution of instructions in a meta-program based computing system
US8051162B2 (en) * 2006-07-28 2011-11-01 Hewlett-Packard Development Company, L.P. Data assurance in server consolidation
US7702055B2 (en) * 2006-09-29 2010-04-20 Mips Technologies, Inc. Apparatus and method for tracing processor state from multiple clock domains
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US8380966B2 (en) * 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8341604B2 (en) * 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
US7657791B2 (en) * 2006-11-15 2010-02-02 Qualcomm Incorporated Method and system for a digital signal processor debugging during power transitions
US8370806B2 (en) * 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
DE102007009909B4 (de) 2007-02-28 2016-09-08 Globalfoundries Inc. Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung
US9195462B2 (en) 2007-04-11 2015-11-24 Freescale Semiconductor, Inc. Techniques for tracing processes in a multi-threaded processor
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02183362A (ja) * 1988-11-23 1990-07-17 Flavors Technol Inc コンピュータシステム
JPH0855023A (ja) * 1994-07-25 1996-02-27 Motorola Inc データ処理システムおよびその方法
JP2001331340A (ja) * 2000-05-19 2001-11-30 Nec Corp コードチェックによるモード切替方式および方法
JP2003177938A (ja) * 2001-12-07 2003-06-27 Fujitsu Ltd 電子装置及びそのデバッグ認証方法
JP2004171563A (ja) * 2002-11-18 2004-06-17 Arm Ltd データ処理装置内のメモリへアクセスするための技術

Also Published As

Publication number Publication date
KR101155673B1 (ko) 2012-06-14
EP2095240A2 (en) 2009-09-02
KR20090084939A (ko) 2009-08-05
CN101535962B (zh) 2013-04-10
US8533530B2 (en) 2013-09-10
WO2008061089A3 (en) 2008-11-06
WO2008061089A2 (en) 2008-05-22
CN101535962A (zh) 2009-09-16
JP5059869B2 (ja) 2012-10-31
US20080115011A1 (en) 2008-05-15

Similar Documents

Publication Publication Date Title
JP5059869B2 (ja) 信頼される/信頼されないデジタル信号プロセッサデバッギング動作に関する方法及びシステム
US8380966B2 (en) Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8370806B2 (en) Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
KR101078934B1 (ko) 개선된 디지털 신호 프로세서 디버깅 동작들을 위한 임베디드 트레이스 매크로셀
JP2010510582A (ja) 電力遷移中におけるデジタル信号プロセッサデバッギングに関する方法
US20080256396A1 (en) Inter-thread trace alignment method and system for a multi-threaded processor
EP1941366A2 (en) Background thread processing in a multithread digital signal processor
EP1941352B1 (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: 20111018

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120116

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120123

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120220

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120227

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120319

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120327

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120418

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120703

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120802

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees