JP2002512396A - 組込みシステムのためのリアルタイムデバッガインターフェース - Google Patents

組込みシステムのためのリアルタイムデバッガインターフェース

Info

Publication number
JP2002512396A
JP2002512396A JP2000545092A JP2000545092A JP2002512396A JP 2002512396 A JP2002512396 A JP 2002512396A JP 2000545092 A JP2000545092 A JP 2000545092A JP 2000545092 A JP2000545092 A JP 2000545092A JP 2002512396 A JP2002512396 A JP 2002512396A
Authority
JP
Japan
Prior art keywords
processor
instruction
information
output
decoder
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
JP2000545092A
Other languages
English (en)
Inventor
ロイ,サブハッシュ・シー
ヘムブルック,ポール
パーレラ,ユージン・エル
マリアノ,リチャード
Original Assignee
トランスウィッチ・コーポレーション
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22056243&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2002512396(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by トランスウィッチ・コーポレーション filed Critical トランスウィッチ・コーポレーション
Publication of JP2002512396A publication Critical patent/JP2002512396A/ja
Pending legal-status Critical Current

Links

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/3636Software debugging by tracing the execution of the program
    • 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

Landscapes

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

Abstract

(57)【要約】 デバッギングインターフェース(10)は、1対のデコーダ(28a、28b)およびプロセッサのシーケンサに接続された事象履歴バッファ(14)を有する。第1のデコーダは、プロセッサの命令RAMに接続されている。第2のデコーダ(32a)は、シーケンサの原因レジスタ(22a)に接続され、事象履歴バッファ(14)もまた原因レジスタ(22a)に接続されている。第1のデコーダ(28a)は、プロセッサのアクティビティをサイクル毎に示す3ビットリアルタイム出力(30a)を提供する。3ビット出力(30a)は、7つの異なる条件、即ち、プロセッサによって実行される最後の命令がプログラムカウンタインクリメント(INC)、例外、事象履歴バッファエントリのない例外、または選択されたブランチであったどうか、最後のクロックサイクルから実行された命令がなかったかどうか、およびジャンプが即時ジャンプまたはレジスタへのジャンプであったかどうかを示す。事象履歴バッファ(14)は、第1のデコーダ(28a)が、最終命令が例外またはレジスタへのジャンプであったことを示すとき、および、割込みラインの状態の変化または内部プロセッサ例外があるとき、最後に実行された命令に関するさらに詳細な情報でロードされる。

Description

【発明の詳細な説明】
【0001】発明の背景 1.技術分野 本発明は、リアルタイムでソフトウェアをデバッグするためのシステムおよび
方法に関する。特に、本発明は、組込み(埋込み)システム(例えば、少なくと
も1つのプロセッサを単一チップ上に有するASICチップ)においてファーム
ウェアをリアルタイムでデバッグするためのシステムおよび方法に関する。
【0002】 2.背景技術 ソフトウェアデバッギングは、多数の方法で行われ得るが、その中にはリアル
タイムで行われないものもある。従来のデバッギング技術とは、プログラムがリ
アルタイムで実行するように設計されるときのレートよりもはるかに遅いレート
でプログラム命令のステップを進めることであった。プログラムの命令を1ステ
ップずつ進めることによって、エラーが発生したときにそのエラーを確認するこ
とができ、エラー直前に実行されたプログラムコードラインを分析してエラーの
原因を見出すことができる。しかし、プログラム実行時のエラーがタイミングエ
ラーまたはプログラムをリアルタイムの速度で実行しているときにのみ発生する
他のタイプのエラーである場合には、この技術は有用ではない。本明細書で用い
る用語「リアルタイム」とは、入来データレート(非常に高い場合がある)を処
理するためにプログラムが実行されなければならないレートを意味する。
【0003】 リアルタイムで実行されているプログラムをデバッグするために、「トレーシ
ング(tracing)」と呼ばれる技術が広範囲に用いられている。トレーシングに
は、コンピュータがプログラムコードを実行する際に行うトランザクションを記
録することが含まれる。障害(failure)発生時にコンピュータによって行われ
るアクティビティの追跡は、障害の原因となり得るものを隔離するという点で有
用な指針となり得る。
【0004】 他の有用なデバッギングツールは、プログラム内の選択された場所にブレーク
ポイントを設定することである。ブレークポイントは、ソフトウェアのフローを
トラップし、ソフトウェアの特定部分がエンターされ終了されたか否か、また、
いつ、どのようにしてエンターされ終了されたかを洞察する。ソフトウェアのフ
ローを分析することによって、バグを隔離するのに有用な情報が提供され得る。
【0005】 現状水準のトレーシングおよびトラッピング方法の多くは、システムバス(即
ち、CPUをメモリに接続するバス)に接続されたデバッグサポート回路によっ
て成し遂げられる。例えば、「Debug Support in a Pro
cessor Chip」という名称のSomasundaramらの米国特許
第5,491,793号を参照のこと。デバッグ回路をシステムバスに接続する
と都合がよい。なぜなら、アドレス、命令、およびデータにシステムバスを通し
てアクセスすることができるからである。しかし、デバッグサポート回路をシス
テムバスに接続すると、バスへの電気的負荷がインクリメントし、バスの動作を
妨害する。さらに、システムバスの動作は、デバッグサポート回路の動作を妨害
する可能性がある。さらに、システムバスは、内部キャッシュを用いるCPU上
で実行されるプログラムをデバッグするために必要な情報を必ずしもすべて提供
しないこともある。これらのCPUは、必要とする情報がキャッシュ内で得られ
るならば、システムバスにはアクセスしない。CPUが内部キャッシュにアクセ
スしている間にエラーが発生すると、デバッグサポート回路は、必要とする情報
にアクセスすることができない。
【0006】 他のトレーシングおよびトラッピング方法は、「On−Chip In−Ci
rcuit−Emulator Memory Mapping and Br
eakpoint Register Modules」という名称のWhis
telらの米国特許第5,833,310号に開示されている。この方法による
と、内部バスコントローラは、メモリアドレスバスおよび整合レジスタに接続さ
れている。アドレスバスに書き込まれたメモリアドレスが整合レジスタ内のアド
レスと一致すると、メモリマッピングモジュールは、メモリサイクルを外部デバ
ッグメモリにマップする。ユーザは、1セットのブレークポイントレジスタに書
き込むことによって、メモリがマップされる特定のバス事象条件を設定すること
ができる。この方法の欠点は、外部デバッグメモリをチップに接続することがで
きるようにチップにさらなるI/Oピンのセットが必要となることである。これ
には、かなりの数のピンが必要とされ得る。なぜなら、マップされるアドレスは
32または64ビット幅であり得るからである。
【0007】 さらに他のトレーシングおよびトラッピング方法は、「Error Cond
ition Detector for Handling Interrup
t in Integrated Circuits Having Mult
iple Processors」という名称のSatagopanらの米国特
許第5,513,346号に開示されている。この方法によると、割込みプロセ
ッサコントローラは、すべての割込みをインターセプトし、これらをマルチプロ
セッサチップ内の適切なプロセッサに転送する。割込みプロセッサコントローラ
は、割込みがいつエラーを引き起こすかを決定する論理を含んでいる。なぜなら
、前に引き起こされた割込みはクリアされていないからである。このようなエラ
ーが検出されると、ビットは、エラー検出レジスタ内に設定される。このビット
は、プロセッサ間割込みチャネルに対応する。レジスタ内のビットは論理和がと
られ、単一のビット出力はエラーの発生を示す。次に、レジスタが調べられ、実
行中のコード内の割込みエラーのロケーションを決定する。この方法は、システ
ムバスを妨害せず、チップ上にそれほど多くのさらなるピンを必要とはしない。
しかし、この方法によって提供されるデバッギング情報は限定されたものである
【0008】 Motorola MPC−860 PowerQuicc(商標)は、プロ
グラム開発システムインターフェースポートを有する。このポートは、プログラ
ムが実行されている間のプログラム実行状態を示す3ビット出力を提供する。M
PC−860は、40mHzの通信コントローラであるが、開発システムインタ
ーフェースポートは4mHzのレートでのみ動作可能である。従って、ポートは
、リアルタイムデバッギングには用いることはできない。MPC−860用の規
格は、「MPC−860 POWERQUICC USER‘S MANUAL
」,Copyright 1996 Motorola,Inc.,Schau
mberg,ILで見出される。本明細書において、その開示全体を参考のため
に援用する。
【0009】 少なくとも1つの組込みプロセッサを用いるASIC設計は、さらなるデバッ
ギング問題を提示する。所定の時間ポイントで命令をトラップする従来の方法は
、ファームウェアのデバッギングを可能にするためにシステムが停止されなけれ
ばならないことを暗示している。しかし、システムが一旦停止されると、リアル
タイム事象およびそれらのタイミング関係は失われる。(リアルタイム動作中に
)活性トラヒックが存在しているときのみ識別できるファームウェアバグがある
場合、ファームウェアを変更する前にエラーに関する文脈情報を得る必要がある
【0010】発明の概要 従って、本発明の目的は、リアルタイム文脈およびイベント(事象)相互作用
の損失なく命令を追跡するためのデバッギングインターフェースを提供すること
である。
【0011】 本発明の目的はまた、プロセッサまたはシステムバスの動作を妨害しないデバ
ッギングインターフェースを提供することである。
【0012】 本発明の他の目的は、プロセッサチップ上でさらに多くのピンを必要としない
デバッギングインターフェースを提供することである。
【0013】 本発明の他の目的は、実行された命令に関するかなりの量の情報へのアクセス
を提供するデバッギングインターフェースを提供することである。
【0014】 以下に詳細に説明するこれらの目的を果たすために、本発明のデバッギングイ
ンターフェースは、プロセッサのシーケンサおよびプロセッサの命令RAM(I
RAM)に接続された第1のデコーダを有する。本発明によれば、第1のデコー
ダは、最後のクロックサイクル中のプロセッサのアクティビティを示すリアルタ
イム3ビット出力をサイクル毎に提供する。本発明の好ましい実施形態によると
、3ビット出力は、プロセッサのアクティビティに関する7つの異なる条件を示
す。特に、3ビット出力は、最後のクロックサイクル以降に新しい命令が実行さ
れたかどうか、新しい命令が実行された場合には、プロセッサによって実行され
た最後の命令が、即時ジャンプ、レジスタへのジャンプ、または選択されたブラ
ンチであったかどうかを示す。さらに、3ビット出力は、命令を実行した結果、
例外となったかどうかを示す。この3ビット出力を経時的に記録し、それをプロ
グラムコード内に挙げられている実際の命令と比較することによって、リアルタ
イムで実行されていたプログラムに関する重要なデバッギング情報が得られる。
【0015】 本発明の好ましい実施形態によると、第2のデコーダおよび事象履歴バッファ
は、プロセッサのシーケンサの原因レジスタ(cause register)に接続されてい
る。特に、第2のデコーダは、履歴バッファのイネーブル入力に接続され、原因
レジスタは、履歴バッファのデータ入力に接続されている。第2のデコーダは、
原因レジスタのコンテンツをデコードし、原因レジスタのコンテンツが例外、ジ
ャンプレジスタ命令、または割込みラインの状態の変化を示すときにはいつでも
履歴バッファをイネーブルにする。履歴バッファがイネーブルにされるときはい
つでも、原因レジスタおよびプログラムカウンタからの情報は、バッファにロー
ドされる。履歴バッファのコンテンツを経時的に記録し、その情報を実際のプロ
グラムコードと比較することによって、リアルタイムで実行されていたプログラ
ムに関するさらなる重要なデバッギング情報が得られる。この本発明の好ましい
実施形態によると、第1のデコーダの3ビット出力によって示される7番目の条
件は、履歴バッファに書き込むことなく例外が生じたかどうかである。
【0016】 本発明の好ましい実施形態によると、事象履歴バッファ内の各エントリは、4
4ビットである。履歴バッファ内の各44ビットエントリは、現在の16ビット
タイムスタンプ、原因レジスタまたはプログラムカウンタの特定フィールドから
の23ビット、エントリがジャンプまたは例外に関連するかどうかを示す1ビッ
ト、(マルチプロセッサシステムにおける)プロセッサ番号を識別する2ビット
、履歴バッファがオーバフローしたかどうかを識別する1ビット、およびタイム
スタンプロールオーバービットを含む。履歴バッファは、好ましくは、少なくと
も16エントリの深さを有する。
【0017】 デバッギングインターフェースの例示的なインプリメンテーションは、3つの
プロセッサを有するASICチップ上で実現される。各プロセッサには、上記の
ように2つのデコーダが設けられ、単一の事象履歴バッファはチップ上に設けら
れる。チップ上の9個のピンは、各第1のデコーダの3ビット出力へのアクセス
を提供するために用いられる。チップ上の3個のピンは、事象履歴バッファのコ
ンテンツへのシリアルアクセス(データ、クロック、およびイネーブル)を提供
する。チップ上のこれらの12個のピンによって、診断デバイスはチップの動作
を妨害することなくリアルタイム動作中にチップに接続される。第1のデコーダ
の出力および事象履歴バッファのコンテンツは、診断デバイスによって経時的に
記録され、チップ内でリアルタイムで発生している処理事象をリアルタイムで記
録することができる。このリアルタイム記録と、実行されているプログラムコー
ドの情報とによって、プロセッサの実行シーケンスの真の状況がリアルタイムで
提供され、それによってコードのデバッギングが促進される。
【0018】 本発明のさらなる目的および利点は、添付の図面と共に詳細な説明を参照する
ことによって当業者に明白になるであろう。
【0019】好ましい実施形態の詳細な説明 ここで、図1を参照する。本発明によるデバッガインターフェースを組み込ん
だ例示的なASICチップ10は、3つのプロセッサ12a、12b、12cを
有し、これらのプロセッサはクロックバス17を介して共通クロック16を共有
する。各プロセッサは、命令RAM(IRAM)18a、18b、18c、演算
論理装置(ALU)20a、20b、20c、および「シーケンサ」22a、2
2b、22cを有する。各シーケンサは、プログラムカウンタ24a、24b、
24c、および原因レジスタ26a、26b、26cを有する。各プログラムカ
ウンタは、関連するIRAMにおける命令指標および命令がプロセッサによって
実行される際の指標へのポインタを含む。原因レジスタは、割込み、例外、およ
び他のプロセッサ機能に関する現在の情報を記憶する。
【0020】 本発明の1つの態様によると、第1のデコーダ28a、28b、28cは、各
IRAM18a、18b、18c、および各シーケンサ22a、22b、22c
(即ち、各プログラムカウンタおよび各原因レジスタ)に接続されている。各第
1のデコーダは、3個のピン(0、1、2)を介してチップ10からリアルタイ
ムで得られる3ビット出力30a、30b、30cを有する。
【0021】 上記のように、各第1のデコーダ28の3ビット出力は、最後のクロックサイ
クル中のプロセッサのアクティビティを示す。従って、デコーダ28は、プログ
ラムカウンタがそのポインタを新しい命令の方へ移動させたかどうかを示すよう
に配置されている。デコーダはまた、IRAM内の命令をデコードし、命令に関
する情報を提供し、原因レジスタのコンテンツをデコードし、命令実行中に生じ
る例外を示す。本発明の好ましい実施形態によると、第1のデコーダ28は、以
下の表1に示すように解釈される3ビット出力を生成する。
【表1】
【0022】 出力000は、最後のクロックサイクルからプロセッサ内に変化がなかったこ
と(即ち、プロセッサは、新しい命令を処理せず、プログラムカウンタポインタ
には変化がなかったこと)を示す。出力001は、プロセッサがプログラム内の
次の命令を処理したこと(即ち、プログラムカウンタポインタが指標内で次の命
令までインクリメントしたこと)を示す。出力010は、プロセッサによって処
理された最後の命令が命令への「ハードコード化」ジャンプであったこと(即ち
、プログラムカウンタによって指し示されたIRAM内の命令が、プログラム内
の絶対アドレスへのジャンプ命令であることを示すコードを有すること)を示す
。出力011は、プロセッサによって処理された最後の命令がレジスタのコンテ
ンツに基づいた命令へのジャンプであったこと(即ち、プログラムカウンタによ
って指し示されたIRAM内の命令が、変数値によって決定されるプログラム内
のロケーションへのジャンプ命令であることを示すコードを有すること)を示す
。出力100は、最後のクロックサイクル以降に、プロセッサに割込みまたは例
外が生じたこと(即ち、原因レジスタのコンテンツが、割込みまたは例外を示す
コードを有すること)を示す。出力101は、プロセッサによって処理された最
後の命令が、選択されたpcブランチ(分岐)であったこと(即ち、プログラム
カウンタによって指し示されたIRAM内の命令が、他の命令へのブランチバッ
クであることを示すコードを有すること)を示す。出力110は、現在のところ
用いられないが、将来用いるために保管される。出力111は、最後のクロック
サイクルから、プロセッサに割込みまたは例外が生じ、履歴バッファにおいて入
力がなされなかったことを示す。
【0023】 第1のデコーダ28の動作およびその出力を、以下に表2で示す簡単なコード
リストを参照しながら説明する。
【表2】
【0024】 表2のリストは、ライン80に1つの「即時」または「ハードコード化」ジャ
ンプ命令、およびライン50に条件付きブランチを有する。リストはまた、レジ
スタのコンテンツ(即ち、ライン10で入力されるA値)に基づいた、1つのジ
ャンプ命令をライン60に有する。表2に示す命令を実行している間の第1のデ
コーダからの3ビット出力を以下の表3に示す。表3では、変数A、B、C、お
よびDもまた示される。
【表3】
【0025】 第1の命令(ライン10に示す)が実行されるとき、第1のデコーダは、プロ
グラム実行中にプログラムカウンタインクリメント(INC)が発生したことを
示し、「001」の出力を示す。プログラムがライン10の命令からライン40
の命令まで進行するにつれて、第1のデコーダは、プログラム実行中にプログラ
ムカウンタインクリメント(INC)が発生したことを示し続け、「001」の
出力を示し続ける。ライン50の命令が実行されると、第1のデコーダは、選択
されたプログラムカウンタブランチ(PBT)が発生したことを示し、「101
」の出力を示す。表2および表3に示すように、プログラムはライン70に分岐
する。なぜなら、ライン50の条件表現が変数D=7に基づいて真であるからで
ある。ライン70を実行すると、第1のデコーダは、プログラムを実行中にプロ
グラムカウンタインクリメント(INC)が発生したことを示し、「001」の
出力を示す。ライン80で命令が実行されると、第1のデコーダは、即時ジャン
プ(JI)が発生したことを示し、「010」の出力を示す。表2および表3に
示すように、プログラムはライン30にジャンプする。ライン30および40で
命令が実行されると、第1のデコーダは、プログラム実行中にプログラムカウン
タインクリメント(INC)が発生したことを示し、「001」の出力を示す。
ライン50が実行されると(この時点では2回目)、第1のデコーダは、プログ
ラム実行中にプログラムカウンタインクリメント(INC)が発生したことを示
し、「001」の出力を示す。なぜなら、ライン50におけるジャンプのための
条件(D=7)はもはや有効ではないからである。ここで、ライン60は実行さ
れ、レジスタに記憶されているロケーションへのジャンプが発生する。従って、
第1のデコーダは、「011」の出力を示すことによってレジスタへのジャンプ
(JR)を示す。
【0026】 再び図1を参照する。本発明の他の態様によると、各原因レジスタ26a、2
6b、26cは、事象履歴バッファ14のデータ入力Dに接続され、第2のデコ
ーダ32a、32b、32cは、各原因レジスタおよび履歴バッファ14のイネ
ーブル入力Eに接続されている。クロック16は、共通のクロック信号を履歴バ
ッファ14のクロック入力Cにクロックバス17を介して提供し、タイムスタン
プレジスタ19はまた、クロックバス17に接続されている。履歴バッファ14
のコンテンツは、履歴バッファ14のデータ、クロック、およびイネーブル(D
、C、E)の3個のピンによってチップから得られるようにされる。本発明のこ
の態様によると、特定の条件が第2のデコーダ32の1つによって検出されると
、履歴バッファは、適切なデコーダを介してイネーブルにされ、原因レジスタ、
タイムスタンプレジスタ、およびプログラムカウンタからの情報は、履歴バッフ
ァに記憶される。特に、第2のデコーダ32は、第1のデコーダが、レジスタに
記憶されているロケーションへジャンプするための命令をプロセッサが処理して
いることを示すコードを含むときはいつでも、第1のデコーダが例外発生を示す
コードを含むときはいつでも、および第1のデコーダが割込みラインの状態の変
化を示すコードを含むときはいつでも、履歴バッファをイネーブルにする。
【0027】 本発明の好ましい実施形態によると、履歴バッファはイネーブルにされると、
原因レジスタまたはプログラムカウンタ、およびタイムスタンプレジスタから4
4ビットの情報を取り込む。44ビットの情報は、好ましくは、以下の表4に示
すように組織化される。
【表4】
【0028】 第1のビット、ビットロケーション43は、記憶されているエントリがプログ
ラムカウンタ情報または原因レジスタ情報を有するかを示すモード識別子である
。2ビットプロセッサ識別番号は、ビットロケーション42、41において2進
形式で記憶される。この番号は、(マルチプロセッサシステムの場合に)どのプ
ロセッサの情報が記憶されているかを示すために用いられる。ビットロケーショ
ン40から18までの次の23ビットは、原因レジスタ情報またはプログラムカ
ウンタ情報を上記で説明したモードに応じて記憶するために用いられる。プログ
ラムカウンタ情報が記憶されている場合、プログラムカウンタのコンテンツは、
ビットロケーション40から18に記憶される。原因レジスタ情報が記憶されて
いる場合、ビットロケーション40は、プロセッサがブランチ遅延スロットにお
ける命令を実行している間に例外が発生したかどうかを示すために用いられる(
これは、RISCプロセッサなどのパイプラインプロセッサに適用される)。ビ
ットロケーション39から35は、プロセッサに関連する例外条件を記憶するた
めに用いられる。ビットロケーション34から18は、すべての待ち状態の割込
み(外部、ソフトウェア、コプロセッサ)の指示を記憶するために用いられる。
ビットロケーション17におけるHOVRFフィールドは、内部事象履歴バッフ
ァがオーバーフローしたかどうかを示すために用いられる。TRビット16は、
タイムスタンプロールオーバを示すために用いられ、ビット15から0は、16
ビットタイムスタンプを記憶するために用いられる。本発明の好ましい実施形態
によると、履歴バッファ14で取り込まれる44ビットは、44クロックサイク
ル(ビットシリアル出力)にわたってデータピンDで連続して出力される。
【0029】 上記のように、事象履歴バッファは、事象(マスクされていない例外またはP
Cジャンプレジスタ命令のいずれか)が発生したときに情報を記録する。本発明
の好ましい実施形態によると、これには、原因レジスタ毎にさらなるマスクレジ
スタおよび自走タイムスタンプカウンタが必要である。事象マスクは、スタティ
ックデバッグインターフェースにおけるJTAGテストレジスタ負荷命令によっ
て提供される。例外に対応する原因レジスタビットがマスクされていないか、ま
たはPCジャンプレジスタ命令が生じた際、履歴バッファにおいて入力がなされ
る。
【0030】 当業者には言うまでもなく、第1のデコーダ28の出力および履歴バッファ1
4のコンテンツは、特に、実行されている実際のプログラムコードに照らした場
合、リアルタイムで各プロセッサの実行シーケンスを比較的完全に示す。従って
、本発明によると、デバッギングシステムは、図2に示すように、第1のデコー
ダおよび履歴バッファに接続され得る。
【0031】 ここで、図2を参照する。第1のデコーダの出力30a、30b、30cおよ
び履歴バッファのD、C、E端子は、デバッギングコンピュータ44に接続され
ている。デバッギングコンピュータ44は、好ましくは、そこに記憶されている
プログラムコードのコピーを有する。第1のデコーダの3ビット出力30a、3
0b、30cおよび履歴バッファのD、C、E端子は、好ましくは、インターフ
ェースバッファ40に接続されている。インターフェースバッファ40は、シリ
アル、パラレル、またはネットワーク接続42によってデバッギングコンピュー
タ44に接続されている。インターフェースバッファ40は、レートデカップリ
ングバッファである。本発明の好ましい実施形態では、デバッガインターフェー
スは、100MHzの3プロセッサシステム上に設けられる。このシステムでは
、事象履歴バッファを読み出すためのデータレートは、約1ギガビット/秒であ
る。現在のPCは、このデータレートにはついていけない。従って、事象履歴デ
ータの損失を防止するためにバッファ40が設けられる。
【0032】 プログラムがASIC10上で実行されているとき、デバッギングコンピュー
タ44は第1のデコーダおよび履歴バッファから情報を収集する。コンピュータ
44によって収集される情報は、コンピュータ44に記憶されているコードのコ
ピーを1ステップずつ進めることによってASICによって実行されるコードの
各ラインと関連づけられる。バグが発見された場合、障害につながる命令実行の
完全な履歴は、コンピュータ44で調べることができる。デバッギングシステム
は、非侵襲性で、リアルタイムで動作するプログラムのデバッギングを可能にす
る。
【0033】 本明細書では、組込みシステムのためのリアルタイムデバッガインターフェー
スの実施形態を説明および例示した。本発明の特定の実施形態を記載したが、本
発明はこれに限定されるものではなく、本発明は技術が許容する限り広い範囲に
わたり、明細書もこれと同様に解釈されることを意図する。従って、特定のエン
コーディング技術について第1のデコーダ出力および履歴バッファコンテンツを
参照しながら開示したが、他のエンコーディング技術も本明細書で記載したのと
実質的に同様の結果を成し遂げる限り用いることができるのは言うまでもない。
また、本発明を3プロセッサASICチップを参照しながら例示したが、本発明
は、より多くのまたはより少ないプロセッサを有する他のタイプのチップにも適
用され得ることは言うまでもない。さらに、特定の構造を第1のデコーダによっ
て提供される指示を参照しながら開示したが、他の構造も本明細書に記載したの
と実質的に同じ結果を成し遂げる限り同様に用いることができることは言うまで
もない。従って、当業者には言うまでもなく、さらに他の改変がクレームされて
いる精神および範囲を逸脱しないで本発明においてなされ得る。
【図面の簡単な説明】
【図1】 本発明によるリアルタイムデバッガインターフェースの例示的な
インプリメンテーションの概略ブロック図。
【図2】 本発明によるリアルタイムデバッガインターフェースを実現する
チップに接続されたデバッギングシステムの概略ブロック図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 パーレラ,ユージン・エル アメリカ合衆国コネチカット州06468,モ ンロー,セトラーズ・ファーム・ロード 48 (72)発明者 マリアノ,リチャード アメリカ合衆国コネチカット州06801,ベ セル,コドフィッシュ・ヒル・ロード 140 Fターム(参考) 5B042 GA11 GA13 GC02 GC08 HH48 JJ10 MA08 MB01 MC13 【要約の続き】 込みラインの状態の変化または内部プロセッサ例外があ るとき、最後に実行された命令に関するさらに詳細な情 報でロードされる。

Claims (25)

    【特許請求の範囲】
  1. 【請求項1】 リアルタイムデバッギングインターフェースを有するプロセ
    ッサであって、 a)前記プロセッサによって実行される命令を記憶するための命令メモリ手段
    と、 b)前記命令メモリ手段に結合された、前記命令を指標付けするためのプログ
    ラムカウンタ手段と、 c)割込みおよび例外に関する情報を示すための原因レジスタ手段と、 d)クロックサイクル中に前記プロセッサによって実行される命令に関する情
    報を示すための第1のデコーダ手段であって、前記命令メモリ手段、前記プログ
    ラムカウンタ手段、および前記原因レジスタ手段に結合され、第1の出力を有す
    る第1のデコーダ手段とを備え、 前記第1の出力は前記プロセッサのアクティビティに関する情報をリアルタイ
    ムで提供する、プロセッサ。
  2. 【請求項2】 前記プロセッサのアクティビティに関する情報は、ジャンプ
    命令が実行されたこと、レジスタのコンテンツに基づいたジャンプ命令が実行さ
    れたこと、ブランチが選択されたこと、および例外が生じたこと、のうちの少な
    くとも1つに関する情報を含む、請求項1に記載のプロセッサ。
  3. 【請求項3】 前記クロックサイクルはプロセッサクロックサイクルであり
    、前記第1のデコーダ手段は、前記各プロセッサクロックサイクル毎に、前記プ
    ロセッサによって実行される各命令に関する前記情報を更新する、請求項1に記
    載のプロセッサ。
  4. 【請求項4】 前記プロセッサによって実行される各命令に関する前記情報
    は、前のプロセッササイクル以降に命令が実行されたかどうかを示すことを含む
    、請求項3に記載のプロセッサ。
  5. 【請求項5】 前記第1の出力は3ビットパラレル出力である、請求項1に
    記載のプロセッサ。
  6. 【請求項6】 e)前記原因レジスタ手段に結合され、第2の出力を有する
    、前記原因レジスタ手段のコンテンツに関する情報を示すための第2のデコーダ
    手段と、 f)プロセッサ事象に関する情報を記憶するための事象履歴バッファ手段であ
    って、データ入力、データ出力、およびイネーブル入力を有し、前記データ入力
    が前記原因レジスタ手段に結合され、前記イネーブル入力が前記第2の出力に結
    合されている事象履歴バッファ手段と、をさらに備え、 前記第2のデコーダ手段は、前記原因レジスタ手段のコンテンツをデコードし
    、前記原因レジスタ手段のコンテンツが特定の事象を示すときには、前記事象履
    歴バッファ手段をイネーブルにして前記原因レジスタ手段のコンテンツを取り込
    む、請求項1に記載のプロセッサ。
  7. 【請求項7】 前記第2のデコーダ手段は、前記原因レジスタ手段のコンテ
    ンツが割込みラインの状態の変化、内部プロセッサ例外、およびレジスタのコン
    テンツに基づいたジャンプ命令の少なくとも1つを含む事象を示すとき、前記事
    象履歴バッファ手段をイネーブルにする、請求項6に記載のプロセッサ。
  8. 【請求項8】 前記事象履歴バッファ手段の前記データ出力はビットシリア
    ル出力である、請求項6に記載のプロセッサ。
  9. 【請求項9】 前記プロセッサは複数のピンを有するチップ上で実現され、
    前記第1の出力および前記データ出力は前記複数のピンのいくつかを介して提供
    される、請求項6に記載のプロセッサ。
  10. 【請求項10】 前記第1の出力はnビットパラレル出力であり、前記デー
    タ出力はシリアル出力である、請求項9に記載のプロセッサ。
  11. 【請求項11】 複数のプロセッサおよびリアルタイムデバッギングインタ
    ーフェースを有する組込みシステムであって、 a)前記複数のプロセッサのそれぞれによって実行される命令を記憶するため
    の複数の命令メモリ手段と、 b)各々が前記複数の命令メモリ手段のそれぞれに結合された、前記命令メモ
    リ手段のコンテンツを指標付けするための複数のプログラムカウンタ手段と、 c)各々が前記プロセッサのそれぞれに接続された、前記複数のプロセッサの
    対応するものについての割込みおよび例外に関する情報を示すための複数の原因
    レジスタ手段と、 d)各々が前記命令メモリ手段のそれぞれ、前記プログラムカウンタ手段のそ
    れぞれ、および前記原因レジスタ手段のそれぞれに結合され、第1の出力を有す
    る、前記プロセッサのそれぞれによってクロックサイクル中に実行される命令に
    関する情報を示すための複数の第1のデコーダ手段と、を備え、 前記第1の出力の各々は前記プロセッサのアクティビティに関する情報をリア
    ルタイムで提供する、組込みシステム。
  12. 【請求項12】 前記プロセッサのアクティビティに関する情報は、ジャン
    プ命令が実行されたこと、レジスタのコンテンツに基づいたジャンプ命令が実行
    されたこと、ブランチが選択されたこと、および例外が生じたこと、のうちの少
    なくとも1つに関する情報を含む、請求項11に記載の組込みシステム。
  13. 【請求項13】 前記クロックサイクルはプロセッサクロックサイクルであ
    り、前記第1のデコーダ手段の各々は、前記それぞれのプロセッサの前記各プロ
    セッサクロックサイクル毎に、それぞれのプロセッサによって実行される各命令
    に関する前記情報を更新する、請求項11に記載の組込みシステム。
  14. 【請求項14】 それぞれのプロセッサによって実行される各命令に関する
    前記各情報は、前記それぞれのプロセッサの前のプロセッササイクル以降に命令
    が実行されたかどうかを示すことを含む、請求項13に記載の組込みシステム。
  15. 【請求項15】 前記各第1の出力は3ビットパラレル出力である請求項1
    1に記載の組込みシステム。
  16. 【請求項16】 e)各々が前記複数の原因レジスタ手段のそれぞれに結合
    された、それぞれの原因レジスタ手段のコンテンツに関する情報を示すための複
    数の第2のデコーダ手段と、 f)プロセッサ事象に関する情報を記憶するための事象履歴バッファ手段であ
    って、データ入力、データ出力、およびイネーブル入力を有し、前記データ入力
    が前記複数の原因レジスタ手段のそれぞれに結合され、前記イネーブル入力が前
    記第2の出力のそれぞれに結合されている事象履歴バッファ手段と、を備え、 前記第2のデコーダ手段の各々が、それぞれの原因レジスタ手段のコンテンツ
    をデコードし、前記それぞれの原因レジスタ手段のコンテンツが特定の事象を示
    すときには、前記事象履歴バッファをイネーブルにし、前記それぞれの原因レジ
    スタ手段のコンテンツを取り込む、請求項11に記載の組込みシステム。
  17. 【請求項17】 それぞれの原因レジスタ手段のコンテンツが、割込みライ
    ンの状態の変化、内部プロセッサの例外、およびレジスタのコンテンツに基づい
    たジャンプ命令の少なくとも1つを含む事象を示すときには、前記第2のデコー
    ダ手段の各々は前記事象履歴バッファ手段をイネーブルにする、請求項16に記
    載の組込みシステム。
  18. 【請求項18】 前記事象履歴バッファ手段の前記データ出力はビットシリ
    アル出力である請求項16に記載の組込みシステム。
  19. 【請求項19】 前記システムは複数のピンを有するチップ上で実現され、
    前記第1および第2の出力は前記複数のピンのいくらかを介して提供される、請
    求項11に記載の組込みシステム。
  20. 【請求項20】 前記第1の出力の各々はnビットパラレル出力であり、前
    記第2の出力はシリアル出力である、請求項19に記載の組込みシステム。
  21. 【請求項21】 プロセッサをデバッグする方法であって、 a)プロセッサのアクティビティに関する情報をリアルタイムで提供するステ
    ップと、 b)前記プロセッサによって実行される命令を前記プロセッサのアクティビテ
    ィに関する情報に関連づけるステップと、 を含む方法。
  22. 【請求項22】 前記プロセッサのアクティビティに関する情報を提供する
    ステップは、前記プロセッサによって実行されるすべての命令に関する情報を提
    供することを含む、請求項21に記載の方法。
  23. 【請求項23】 前記プロセッサのアクティビティに関する情報を提供する
    ステップは、最後のプロセッサセイクル中に前記プロセッサが命令を実行しなか
    ったという情報を提供することを含む、請求項22に記載の方法。
  24. 【請求項24】 前記プロセッサのアクティビティに関する情報は、最後に
    実行された命令がジャンプ、レジスタのコンテンツに基づいたジャンプ、選択さ
    れたブランチ、または例外を生じる命令であったかどうかの少なくとも1つを示
    すことを含む、請求項21に記載の方法。
  25. 【請求項25】 c)特定のプロセッサ事象が発生するときに前記プロセッ
    サの状態に関する情報を提供するステップをさらに含み、前記特定のプロセッサ
    事象は、割込みラインの状態の変化、内部プロセッサ例外、およびレジスタのコ
    ンテンツに基づいたジャンプ命令の実行、の少なくとも1つを含む、請求項21
    に記載の方法。
JP2000545092A 1998-04-22 1999-04-14 組込みシステムのためのリアルタイムデバッガインターフェース Pending JP2002512396A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/064,474 US6321331B1 (en) 1998-04-22 1998-04-22 Real time debugger interface for embedded systems
US09/064,474 1998-04-22
PCT/US1999/008274 WO1999054809A1 (en) 1998-04-22 1999-04-14 Real time debugger interface for embedded systems

Publications (1)

Publication Number Publication Date
JP2002512396A true JP2002512396A (ja) 2002-04-23

Family

ID=22056243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000545092A Pending JP2002512396A (ja) 1998-04-22 1999-04-14 組込みシステムのためのリアルタイムデバッガインターフェース

Country Status (7)

Country Link
US (2) US6321331B1 (ja)
EP (1) EP1080404A1 (ja)
JP (1) JP2002512396A (ja)
CN (1) CN100449477C (ja)
CA (1) CA2329423A1 (ja)
IL (1) IL139098A0 (ja)
WO (1) WO1999054809A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009524159A (ja) * 2006-01-17 2009-06-25 クゥアルコム・インコーポレイテッド マルチコアシステムをデバッグするための方法及び装置

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2263465T3 (es) * 1999-03-30 2006-12-16 SIEMENS ENERGY & AUTOMATION, INC. Metodo, sistema y aparato, para un controlador logico programable.
JP2001195281A (ja) * 2000-01-07 2001-07-19 Sony Corp システム監視装置
JP4551019B2 (ja) * 2000-03-02 2010-09-22 テキサス インスツルメンツ インコーポレイテツド 複数データ処理コアのデバッグ機能を同時サポートする動的に構成可能なデバッグ装置
JP2002358232A (ja) * 2001-05-31 2002-12-13 Mitsubishi Electric Corp メモリアクセス装置
US20030074650A1 (en) * 2001-10-17 2003-04-17 Tankut Akgul Debugger operating system for embedded systems
US7031869B2 (en) * 2001-12-28 2006-04-18 Hewlett-Packard Development Company, L.P. Method and apparatus for managing timestamps when storing data
US20030135718A1 (en) * 2002-01-14 2003-07-17 International Business Machines Corporation Method and system using hardware assistance for instruction tracing by revealing executed opcode or instruction
US20060155971A1 (en) * 2002-11-14 2006-07-13 Stmicroelectronics S.A. Transmission of a digital message between a microprocessor monitoring circuit and an analysis tool
DE60222187D1 (de) * 2002-11-14 2007-10-11 St Microelectronics Sa Überwachungschaltung eines mikroprozessors und analysewerkzeug und seine ein- und ausgänge
DE60228766D1 (de) * 2002-11-21 2008-10-16 St Microelectronics Sa Überwachungsvorrichtung mit einem optimierten pufferspeicher
US20080077780A1 (en) * 2003-07-25 2008-03-27 Zingher Arthur R System and Method for Software Debugging
CN100416512C (zh) * 2004-10-29 2008-09-03 上海环达计算机科技有限公司 嵌入式设备调试方法及其调试工具
US20060248391A1 (en) * 2005-05-02 2006-11-02 Glover Jeffrey C State machine-based command line debugger
US7921429B2 (en) * 2005-06-09 2011-04-05 Whirlpool Corporation Data acquisition method with event notification for an appliance
US20070162158A1 (en) * 2005-06-09 2007-07-12 Whirlpool Corporation Software architecture system and method for operating an appliance utilizing configurable notification messages
WO2006135726A2 (en) * 2005-06-09 2006-12-21 Whirlpool Corporation Software architecture system and method for communication with, and management of, at least one component within a household appliance
US20080137670A1 (en) * 2005-06-09 2008-06-12 Whirlpool Corporation Network System with Message Binding for Appliances
US7917914B2 (en) * 2005-06-09 2011-03-29 Whirlpool Corporation Event notification system for an appliance
EP1783649A1 (fr) * 2005-10-10 2007-05-09 Nagracard S.A. Microprocesseur sécurisé avec vérification des sauts
US20070198816A1 (en) * 2005-11-10 2007-08-23 Chuan-Po Ling Emulation system for a single-chip multiple-microcontroller and emulation method thereof
US7555605B2 (en) * 2006-09-28 2009-06-30 Freescale Semiconductor, Inc. Data processing system having cache memory debugging support and method therefor
US7707459B2 (en) 2007-03-08 2010-04-27 Whirlpool Corporation Embedded systems debugging
US8533678B2 (en) * 2007-07-13 2013-09-10 Digi International Inc. Embedded device program debug control
US8407457B2 (en) * 2007-09-28 2013-03-26 Freescale Semiconductor, Inc. System and method for monitoring debug events
US8042002B2 (en) * 2008-01-18 2011-10-18 Freescale Semiconductor, Inc. Method and apparatus for handling shared hardware and software debug resource events in a data processing system
US7870434B2 (en) * 2008-02-29 2011-01-11 Freescale Semiconductor, Inc. Method and apparatus for masking debug resources
US7870430B2 (en) * 2008-02-29 2011-01-11 Freescale Semiconductor, Inc. Method and apparatus for sharing debug resources
GB2459652B (en) * 2008-04-28 2010-09-22 Imagination Tech Ltd Controlling instruction scheduling based on the space in a trace buffer
US20110314223A1 (en) * 2010-06-17 2011-12-22 Yair Orbach System for protecting against cache restriction violations in a memory
TWI446163B (zh) * 2010-09-27 2014-07-21 Etron Technology Inc 同時分析效能與錯誤的電路及其方法
US9053233B2 (en) 2011-08-15 2015-06-09 Freescale Semiconductor, Inc. Method and device for controlling debug event resources
US10318308B2 (en) * 2012-10-31 2019-06-11 Mobileye Vision Technologies Ltd. Arithmetic logic unit
US9996354B2 (en) * 2015-01-09 2018-06-12 International Business Machines Corporation Instruction stream tracing of multi-threaded processors
KR102391385B1 (ko) 2015-08-13 2022-04-27 삼성전자주식회사 내장형 로직 분석기 및 이를 포함하는 집적 회로

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3088129B2 (ja) * 1991-05-29 2000-09-18 日本電気株式会社 マイクロプロセッサ
JPH0774984B2 (ja) * 1991-06-10 1995-08-09 インターナショナル・ビジネス・マシーンズ・コーポレイション システム資源利用率測定方法とデータ処理システム
US5491793A (en) 1992-07-31 1996-02-13 Fujitsu Limited Debug support in a processor chip
JPH06222952A (ja) * 1993-01-27 1994-08-12 Toshiba Corp デバッグ支援装置
US5737538A (en) * 1993-07-27 1998-04-07 Compuserve Incorporated System for remote microcomputer access and modification of information in host computer
DE59402939D1 (de) * 1993-09-28 1997-07-03 Siemens Ag Tracer-system zur fehleranalyse in laufenden realzeitsystemen
US5513346A (en) 1993-10-21 1996-04-30 Intel Corporation Error condition detector for handling interrupt in integrated circuits having multiple processors
US5640542A (en) 1993-10-29 1997-06-17 Intel Corporation On-chip in-circuit-emulator memory mapping and breakpoint register modules
US5473754A (en) * 1993-11-23 1995-12-05 Rockwell International Corporation Branch decision encoding scheme
US5799142A (en) * 1994-09-12 1998-08-25 Nec Corporation Debugging method and debugging system for multi-task programs
US5544311A (en) * 1995-09-11 1996-08-06 Rockwell International Corporation On-chip debug port
US5838897A (en) * 1996-02-27 1998-11-17 Cyrix Corporation Debugging a processor using data output during idle bus cycles
US6205560B1 (en) * 1996-02-27 2001-03-20 Via-Cyrix, Inc. Debug system allowing programmable selection of alternate debug mechanisms such as debug handler, SMI, or JTAG
US5724505A (en) * 1996-05-15 1998-03-03 Lucent Technologies Inc. Apparatus and method for real-time program monitoring via a serial interface
US5838692A (en) * 1996-11-14 1998-11-17 Hewlett-Packard Company System and method for extracting realtime debug signals from an integrated circuit
US6081885A (en) * 1996-12-20 2000-06-27 Texas Instruments Incorporated Method and apparatus for halting a processor and providing state visibility on a pipeline phase basis
GB2329049B (en) * 1997-09-09 2002-09-11 Advanced Risc Mach Ltd Apparatus and method for identifying exceptions when debugging software
US6016555A (en) * 1997-11-19 2000-01-18 Texas Instruments Incorporated Non-intrusive software breakpoints in a processor instruction execution pipeline

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009524159A (ja) * 2006-01-17 2009-06-25 クゥアルコム・インコーポレイテッド マルチコアシステムをデバッグするための方法及び装置

Also Published As

Publication number Publication date
WO1999054809A1 (en) 1999-10-28
WO1999054809A9 (en) 2000-02-10
CN1306639A (zh) 2001-08-01
US20020013893A1 (en) 2002-01-31
IL139098A0 (en) 2001-11-25
EP1080404A1 (en) 2001-03-07
CN100449477C (zh) 2009-01-07
US6321331B1 (en) 2001-11-20
CA2329423A1 (en) 1999-10-28

Similar Documents

Publication Publication Date Title
JP2002512396A (ja) 組込みシステムのためのリアルタイムデバッガインターフェース
US6145123A (en) Trace on/off with breakpoint register
US7689867B2 (en) Multiprocessor breakpoint
US6175914B1 (en) Processor including a combined parallel debug and trace port and a serial port
US6041406A (en) Parallel and serial debug port on a processor
EP0391173B1 (en) Debug peripheral for microcomputers, microprocessors and core processor integrated circuits and system using the same
US5802272A (en) Method and apparatus for tracing unpredictable execution flows in a trace buffer of a high-speed computer system
US6185732B1 (en) Software debug port for a microprocessor
RU2429525C2 (ru) Схема отладки, сравнивающая режим обработки набора команд процессора
US5764885A (en) Apparatus and method for tracing data flows in high-speed computer systems
US7043416B1 (en) System and method for state restoration in a diagnostic module for a high-speed microprocessor
KR100439781B1 (ko) 데이터프로세서와그동작방법,그디버깅동작실행방법및그중단점값수정방법
US8527812B2 (en) Information processing device
EP0645705A1 (en) Testing and monitoring of programmed devices
EP2686772B1 (en) Diagnosing code using single step execution
US7793160B1 (en) Systems and methods for tracing errors
US20120079459A1 (en) Tracing multiple threads via breakpoints
US8042001B2 (en) Protecting code from breakpoints
US20210004236A1 (en) Pipeline flattener with conditional triggers
US9639451B2 (en) Debugger system, method and computer program product for utilizing hardware breakpoints for debugging instructions
CN111367742A (zh) 调试mvp处理器的方法、装置、终端和计算机可读存储介质
EP0530816A2 (en) Microprocessor with cache memory and trace analyzer therefor
US7249285B2 (en) Address watch breakpoints in a hardware synchronization range
EP1531395A1 (en) Method of determining information about the processes which run in a program-controlled unit during the execution of a program
GB2380831A (en) Debug exception handler and registers