JP2003296136A - トレース装置 - Google Patents

トレース装置

Info

Publication number
JP2003296136A
JP2003296136A JP2002102526A JP2002102526A JP2003296136A JP 2003296136 A JP2003296136 A JP 2003296136A JP 2002102526 A JP2002102526 A JP 2002102526A JP 2002102526 A JP2002102526 A JP 2002102526A JP 2003296136 A JP2003296136 A JP 2003296136A
Authority
JP
Japan
Prior art keywords
trace
address
event
mode
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2002102526A
Other languages
English (en)
Inventor
Kiyoshi Hayase
清 早瀬
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2002102526A priority Critical patent/JP2003296136A/ja
Priority to US10/309,171 priority patent/US20030192034A1/en
Publication of JP2003296136A publication Critical patent/JP2003296136A/ja
Withdrawn 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

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)【要約】 【課題】 ソフトウェアのデバッグにおいて重要となる
トレース情報が失われるのを防止したトレース装置を提
供すること。 【解決手段】 比較器22aは、CPU1のPC11の
値がターゲットアドレスレジスタ21aに設定されたタ
ーゲットアドレスと一致するときに、イベントAを発生
する。初期状態において、リアルタイムトレースモード
でトレースが行なわれているとすると、イベントAの発
生によってRS−FF37がセットされてフルトレース
モードでトレースが行なわれるようになる。したがっ
て、ターゲットアドレスレジスタ21aにデバッグを行
ないたいサブルーチンの開始アドレスを設定しておけ
ば、CPU1がそのサブルーチンを実行するときに、ト
レースモードがフルトレースモードに変更されて、ソフ
トウェアのデバッグにおいて重要となるトレース情報が
失われるのを防止することが可能となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、CPU(Central
Processing Unit)が搭載されたハードウェアのデバッ
グやソフトウェアのデバッグに使用されるCPUのトレ
ース情報を生成する技術に関し、特に、デバッグ時にお
いて重要となるトレース情報が失われるのを防止したト
レース装置に関する。
【0002】
【従来の技術】近年、パーソナルコンピュータ等の情報
機器や、家電機器等においてCPUが広く使用されてい
る。CPU自体の開発や、そのCPUを搭載した情報機
器、家電機器等の開発において、CPUが実行したプロ
グラムの流れを解析することは重要である。このような
解析を可能にする1つの手法として、CPUの動作をC
PUが搭載された半導体チップの外部に伝えるトレース
機能を半導体チップ内に持たせることを挙げることがで
きる。
【0003】一方、CPUの処理速度の高速化に対する
要望も高まっており、これに対応すべくCPUの動作周
波数がますます高くなる傾向にあり、CPU外部の回路
の動作周波数に比べて格段に高くなってきている。その
ため、CPU外部の回路の動作速度がトレース出力の速
度に追いつかなくなり、トレース機能に様々な工夫が施
されるようになってきている。
【0004】従来のトレース装置においては、トレース
開始用ブレークポインタと、トレース終了用ブレークポ
インタとを有し、CPUのプログラムカウンタの値(以
下、PC値と呼ぶ。)がトレース開始用ブレークポイン
タの値と一致するとトレースが開始され、CPUのPC
値がトレース終了用ブレークポインタの値と一致すると
トレースが終了されるものがある。
【0005】また、従来のトレース装置が行なうトレー
スには、フルトレースとリアルタイムトレースとがあ
る。フルトレースはCPUのトレース情報を全て出力す
るものであるため、CPUをストールしながらトレース
出力が行われる。一方、リアルタイムトレースはCPU
のトレース情報の一部が失われることを許容し、CPU
をストールさせずにトレース出力が行なわれる。
【0006】
【発明が解決しようとする課題】上述した従来のトレー
ス装置においては、CPUのPC値がトレース開始用ブ
レークポインタの値と一致するとトレースが開始され、
CPUのPC値がトレース終了用ブレークポインタの値
と一致するとトレースが終了されるので、CPUがプロ
グラムの実行を開始してからCPUのPC値がトレース
開始用ブレークポインタの値と一致するまでの間のトレ
ース情報、およびCPUのPC値がトレース終了用ブレ
ークポインタの値と一致した後のトレース情報が出力さ
れない。そのため、ソフトウェアのバグによってトレー
ス出力がない箇所でCPUが予想外の動作をした場合に
は、その箇所の発見が遅れてしまい、ソフトウェアのデ
バッグが困難になるといった問題点があった。
【0007】また、フルトレースは、CPUをストール
させながらCPUを動作させるため、CPUの通常の動
作と異なる動作となってしまいバグが再現せず、デバッ
グに支障をきたすといった問題点もあった。また、リア
ルタイムトレースは、CPUに通常の動作と同じ動作を
行わせるが、トレースバッファのオーバフローによって
トレース情報のほとんどが失われてしまうため、ソフト
ウェアのバグの解析が困難であるといった問題点があっ
た。
【0008】また、トレースには、CPUが分岐命令を
実行するたびに分岐先アドレスを出力する分岐トレース
と、CPUがアクセスしたデータを出力するデータトレ
ースと、分岐先アドレスおよびデータの両方を出力する
混在トレースとがある。しかし、混在トレースはトレー
ス情報が多いため、フルトレースを選択した場合にはさ
らにCPUの動作が遅くなり、リアルタイムトレースを
選択した場合にはさらに多くのトレース情報が失われて
しまうといった問題点があった。
【0009】本発明は、上記問題点を解決するためにな
されたものであり、第1の目的は、ソフトウェアのデバ
ッグにおいて重要となるトレース情報が失われるのを防
止したトレース装置を提供することである。
【0010】第2の目的は、トレース情報が失われるの
を最小限にしつつ、ソフトウェアのデバッグが行なえる
トレース装置を提供することである。
【0011】第3の目的は、フルトレースモードでトレ
ースを行なう場合でも、通常のCPUの動作に近い状態
でCPUにプログラムを実行させることが可能なトレー
ス装置を提供することである。
【0012】
【課題を解決するための手段】請求項1に記載のトレー
ス装置は、プロセッサをストールさせながらトレース情
報を生成するフルトレースモードと、プロセッサをスト
ールさせずにトレース情報を生成するリアルタイムトレ
ースモードとを切替えてトレース情報を生成するトレー
ス装置であって、所定の条件を満たす場合にイベントを
発生させるイベントユニットと、イベントの発生を検出
して、フルトレースモードとリアルタイムトレースモー
ドとの切替えを行なってトレース情報を生成するトレー
スユニットとを含む。
【0013】トレースユニットは、イベントの発生を検
出して、フルトレースモードとリアルタイムトレースモ
ードとの切替えを行なってトレース情報を生成するの
で、プロセッサの動作を詳細に解析したい箇所において
はフルトレースモードでトレース装置を動作させ、詳細
に解析する必要がない箇所においてはリアルタイムトレ
ースモードでトレース装置を動作させることができる。
したがって、ソフトウェアのデバッグにおいて重要とな
るトレース情報が失われるのを防止することが可能とな
る。また、プロセッサの動作を詳細に解析する必要がな
い箇所においてはリアルタイムトレースモードでトレー
スが行なわれるので、通常のCPUの動作に近い状態で
CPUを動作させることが可能となる。
【0014】請求項2に記載のトレース装置は、請求項
1記載のトレース装置であって、トレースユニットは、
イベントが発生したときにトレースモードをフルトレー
スモードからリアルタイムトレースモードへ切替えるの
か、リアルタイムトレースモードからフルトレースモー
ドへ切替えるのかを示す情報が格納されるレジスタを含
む。
【0015】したがって、イベントが発生したときにト
レースモードをフルトレースモードおよびリアルタイム
トレースモードのいずれに切替えるのかを設定すること
ができ、プロセッサの動作を詳細に解析したい箇所を容
易に設定することが可能となる。
【0016】請求項3に記載のトレース装置は、請求項
1または2記載のトレース装置であって、トレースユニ
ットは、トレースモードがフルトレースモードおよびリ
アルタイムトレースモードのいずれであるかを示す情報
を保持して外部へ出力するレジスタを含む。
【0017】したがって、外部においてトレース装置が
フルトレースモードおよびリアルタイムトレースモード
のいずれで動作しているのかを認識することが可能とな
る。
【0018】請求項4に記載のトレース装置は、分岐ト
レースモード、データトレースモードおよび混在トレー
スモードのいずれかにトレースモードを切替えてプロセ
ッサのトレース情報を生成するトレース装置であって、
所定の条件を満たす場合にイベントを発生させるイベン
トユニットと、イベントの発生を検出して、分岐トレー
スモード、データトレースモードおよび混在トレースモ
ードの切替えを行なってトレース情報を生成するトレー
スユニットとを含む。
【0019】トレースユニットは、イベントの発生を検
出して、分岐トレースモード、データトレースモードお
よび混在トレースモードの切替えを行なってトレース情
報を生成するので、プロセッサの動作を詳細に解析した
い箇所と、詳細に解析する必要がない箇所とでトレース
情報の種類を変更することができる。したがって、分岐
トレースモードまたはデータトレースモードの場合に
は、トレース情報の情報量を削減することができるの
で、プロセッサがストールされる時間を最小限にでき、
通常のプロセッサの動作に近い状態でソフトウェアのデ
バッグを行なうことが可能となる。
【0020】請求項5に記載のトレース装置は、請求項
4記載のトレース装置であって、トレースユニットは、
イベントが発生したときにトレースモードを分岐トレー
スモード、データトレースモードおよび混在トレースモ
ードのいずれに切替えるのかを示す情報が格納されるレ
ジスタを含む。
【0021】したがって、イベントが発生したときにト
レースモードを分岐トレースモード、データトレースモ
ードおよび混在トレースモードのいずれに切替えるのか
を設定することができ、プロセッサの動作を詳細に解析
したい箇所を容易に設定することが可能となる。
【0022】請求項6に記載のトレース装置は、プロセ
ッサのトレース情報を生成して出力するトレース装置で
あって、所定の条件を満たす場合にイベントを発生させ
るイベントユニットと、イベントの発生を検出して、絶
対アドレスでトレース情報を生成するか、相対アドレス
でトレース情報を生成するかを判定してトレース情報を
生成するトレースユニットとを含む。
【0023】トレースユニットは、イベントの発生を検
出して、絶対アドレスでトレース情報を生成するか、相
対アドレスでトレース情報を生成するかを判定してトレ
ース情報を生成するので、相対アドレスでトレース情報
を生成する箇所においてはトレース情報の情報量を削減
することができる。したがって、フルトレースモードで
トレースが行なわれているときに、プロセッサがストー
ルされる時間を最小限にでき、通常のプロセッサの動作
に近い状態でソフトウェアのデバッグを行なうことが可
能となる。また、リアルタイムトレースモードでトレー
スが行なわれているときに、トレース情報が失われるの
を最小限に抑えることが可能となる。
【0024】請求項7に記載のトレース装置は、請求項
6記載のトレース装置であって、トレースユニットは、
イベントが発生したときに絶対アドレスでトレース情報
を生成するモードから相対アドレスでトレース情報を生
成するモードへ切替えるのか、相対アドレスでトレース
情報を生成するモードから絶対アドレスでトレース情報
を生成するモードへ切替えるのかを示す情報が格納され
るレジスタを含む。
【0025】したがって、相対アドレスでトレース情報
を生成するモードへ切替えるのか、絶対アドレスでトレ
ース情報を生成するモードへ切替えるのかをを設定する
ことができ、プロセッサの動作を詳細に解析したい箇所
を容易に設定することが可能となる。
【0026】請求項8に記載のトレース装置は、請求項
6または7記載のトレース装置であって、トレースユニ
ットは、今回のアドレスを保持する第1のアドレスレジ
スタと、前回のアドレスを保持する第2のアドレスレジ
スタと、第1のアドレスレジスタに保持される今回のア
ドレスから、第2のアドレスレジスタに保持される前回
のアドレスを減算する減算器と、イベントの発生を検出
して、第1のアドレスレジスタに保持されるアドレス
と、減算器によって減算されたアドレスとのいずれかを
選択してトレース情報として出力するセレクタと、セレ
クタから出力されたトレース情報を含んだパケットを生
成して出力するトレースバッファとを含む。
【0027】したがって、減算器によって減算されたア
ドレスが選択された場合には、トレース情報の情報量を
削減できる。これによって、フルトレースモードでトレ
ースが行なわれているときに、プロセッサがストールさ
れる時間を最小限にでき、通常のプロセッサの動作に近
い状態でソフトウェアのデバッグを行なうことが可能と
なる。また、リアルタイムトレースモードでトレースが
行なわれているときに、トレース情報が失われるのを最
小限に抑えることが可能となる。
【0028】請求項9に記載のトレース装置は、請求項
6または7記載のトレース装置であって、トレースユニ
ットは、アドレスを保持するアドレスレジスタと、イベ
ントの発生を検出して、アドレスレジスタに保持される
アドレスと、アドレスレジスタに保持されるアドレスの
所定の下位ビットとのいずれかを選択してトレース情報
として出力するセレクタと、セレクタから出力されたト
レース情報を含んだパケットを生成して出力するトレー
スバッファとを含む。
【0029】したがって、アドレスレジスタに保持され
るアドレスの所定の下位ビットが選択された場合には、
トレース情報の情報量を削減できる。これによって、フ
ルトレースモードでトレースが行なわれているときに、
プロセッサがストールされる時間を最小限にでき、通常
のプロセッサの動作に近い状態でソフトウェアのデバッ
グを行なうことが可能となる。また、リアルタイムトレ
ースモードでトレースが行なわれているときに、トレー
ス情報が失われるのを最小限に抑えることが可能とな
る。
【0030】請求項10に記載のトレース装置は、請求
項1〜9のいずれかに記載のトレース装置であって、イ
ベントユニットは、ターゲットアドレスが設定されるタ
ーゲットアドレスレジスタと、プロセッサのプログラム
カウンタの値がターゲットアドレスレジスタに設定され
たターゲットアドレスと一致するときに、イベントを発
生させる比較器とを含む。
【0031】したがって、トレースユニットは、プロセ
ッサがプログラムの所定箇所の処理を実行するときにト
レースモードを変更することが可能となる。
【0032】請求項11に記載のトレース装置は、請求
項1〜9のいずれかに記載のトレース装置であって、イ
ベントユニットは、ターゲットアドレスが設定されるタ
ーゲットアドレスレジスタと、プロセッサのオペランド
アクセス時におけるアドレスがターゲットアドレスレジ
スタに設定されたターゲットアドレスと一致するとき
に、イベントを発生させる比較器とを含む。
【0033】したがって、トレースユニットは、プロセ
ッサが所定領域に対してオペランドアクセスを行なった
ときにトレースモードを変更することが可能となる。
【0034】請求項12に記載のトレース装置は、請求
項1〜9のいずれかに記載のトレース装置であって、イ
ベントユニットは、ターゲットデータが設定されるター
ゲットデータレジスタと、プロセッサのオペランドアク
セスデータがターゲットデータレジスタに設定されたタ
ーゲットデータと一致するときに、イベントを発生させ
る比較器とを含む。
【0035】したがって、トレースユニットは、プロセ
ッサのオペランドアクセス時におけるデータが所定値で
あればトレースモードを変更することが可能となる。
【0036】請求項13に記載のトレース装置は、請求
項1〜9のいずれかに記載のトレース装置であって、イ
ベントユニットは、ターゲットアドレスが設定されるタ
ーゲットアドレスレジスタと、ターゲットデータが設定
されるターゲットデータレジスタと、アドレスバスに出
力されたアドレス値とターゲットアドレスレジスタに設
定されたターゲットアドレスとの一致を検出する第1の
比較器と、データバスに出力されたデータとターゲット
データレジスタに設定されたターゲットデータとの一致
を検出する第2の比較器と、第1の比較器が一致を検出
し、かつ第2の比較器が一致を検出するときにイベント
を発生させる論理回路とを含む。
【0037】したがって、トレースユニットは、プロセ
ッサが所定領域に対して行なったオペランドアクセス時
におけるデータが所定値である場合にトレースモードを
変更することが可能となる。
【0038】請求項14に記載のトレース装置は、請求
項1〜9のいずれかに記載のトレース装置であって、イ
ベントユニットは、割込み要因を検出してプロセッサに
割込み要求を出力するとともに、イベントを発生させる
割込みコントロールユニットを含む。
【0039】したがって、トレースユニットは、所定の
割込み要因が発生したときにトレースモードを変更する
ことが可能となる。
【0040】請求項15に記載のトレース装置は、請求
項1〜9のいずれかに記載のトレース装置であって、イ
ベントユニットは、割込み要因を検出してプロセッサに
割込み要求を出力する割込みコントロールユニットと、
割込みコントロールユニットによる割込み要求が予め定
められた回数となったときにイベントを発生させるカウ
ンタとを含む。
【0041】したがって、トレースユニットは、所定の
割込み要因が所定回だけ発生した場合にのみトレースモ
ードを変更することが可能となる。
【0042】請求項16に記載のトレース装置は、請求
項1〜3のいずれかに記載のトレース装置であって、イ
ベントユニットは、予め定められた時間が経過したとき
にイベントを発生させるタイマを含む。
【0043】したがって、トレースユニットは、予め定
められた時間が経過したときにトレースモードを変更す
ることが可能となる。
【0044】請求項17に記載のトレース装置は、請求
項1〜9のいずれかに記載のトレース装置であって、イ
ベントユニットは、第1のターゲットアドレスが設定さ
れる第1のターゲットアドレスレジスタと、第2のター
ゲットアドレスが設定される第2のターゲットアドレス
レジスタと、プロセッサのプログラムカウンタの値と第
1のターゲットアドレスレジスタに設定された第1のタ
ーゲットアドレスとの一致を検出する第1の比較器と、
プロセッサのプログラムカウンタの値と第2のターゲッ
トアドレスレジスタに設定された第2のターゲットアド
レスとの一致を検出する第2の比較器と、第1の比較器
が一致を検出した後、第2の比較器が一致を検出したと
きにイベントを発生させる論理回路とを含む。
【0045】したがって、トレースユニットは、プロセ
ッサがプログラムの第1の所定箇所の処理を実行した
後、第2の所定箇所の処理を実行した場合にのみトレー
スモードを変更することが可能となる。
【0046】
【発明の実施の形態】(第1の実施の形態)図1は、本
発明の第1の実施の形態におけるトレース装置が搭載さ
れた半導体装置の概略構成を示すブロック図である。こ
の半導体装置は、CPU1と、イベントユニット2a
と、トレースユニット3aとを含む。なお、イベントユ
ニット2aとトレースユニット3aとを合わせてトレー
ス装置と呼ぶことにする。
【0047】イベントユニット2aは、ターゲットアド
レスが設定されるターゲットアドレスレジスタ21aお
よび21bと、CPU1のPC11の値とターゲットア
ドレスレジスタ21aに保持されるターゲットアドレス
とを比較する比較器22aと、CPU1のPC11の値
とターゲットアドレスレジスタ21bに保持されるター
ゲットアドレスとを比較する比較器22bとを含む。な
お、ターゲットアドレスレジスタ21aおよび21b
は、CPU1がアクセス可能なレジスタである。
【0048】比較器22aは、CPU1のPC値とター
ゲットアドレスレジスタ21aに設定されたターゲット
アドレスとを比較し、不一致の場合にはロウレベル(以
下、Lレベルと略す。)を出力し、一致の場合にはハイ
レベル(以下、Hレベルと略す。)を出力して、イベン
トAが発生したことをトレースユニット3aに通知す
る。同様に、比較器22bは、CPU1のPC値とター
ゲットアドレスレジスタ21bに設定されたターゲット
アドレスとを比較し、不一致の場合にはLレベルを出力
し、一致の場合にはHレベルを出力して、イベントBが
発生したことをトレースユニット3aに通知する。
【0049】トレースユニット3aは、スイッチ31a
および31bと、スイッチ31aを切替えるための値が
設定されるレジスタ32aと、スイッチ31bを切替え
るための値が設定されるレジスタ32bと、ORゲート
35aおよび35bと、ANDゲート36と、RS−フ
リップフロップ(以下、RS−FFと略す。)37と、
トレースバッファ39とを含む。なお、レジスタ32a
および32bは、CPU1がアクセス可能なレジスタで
ある。
【0050】トレースバッファ39は、分岐トレースモ
ードの場合にはアドレスバス41に出力された分岐アド
レスを順次取込み、この分岐アドレスを含んだパケット
を生成してトレース出力端子から出力する。また、トレ
ースバッファ39は、データトレースモードの場合には
データバス42に出力されたオペランドアクセスデータ
を順次取込み、このオペランドアクセスデータを含んだ
パケットを生成してトレース出力端子から出力する。さ
らには、トレースバッファ39は、混在トレースモード
の場合にはアドレスバス41に出力された分岐アドレス
およびデータバス42に出力されたオペランドアクセス
データを順次取込み、この分岐アドレスまたはオペラン
ドアクセスデータを含んだパケットを生成してトレース
出力端子から出力する。
【0051】トレースバッファ39は、トレース出力端
子から8ビットのパケットを複数回出力することによっ
て、トレース情報を外部へ出力する。分岐トレースモー
ドの場合には、トレースバッファ39は識別情報(4ビ
ット)と、分岐アドレス(4バイト)と、前回の分岐命
令から今回の分岐命令までの間に実行された命令数(1
2ビット)との合計6バイト(6パケット)の分岐トレ
ース情報をトレース出力端子から出力する。
【0052】また、データトレースモードの場合には、
トレースバッファ39は識別情報(1バイト)と、オペ
ランドアクセスデータ(4バイト)と、アドレス(4バ
イト)との合計9バイト(9パケット)のデータトレー
ス情報をトレース出力端子から出力する。
【0053】さらには、混在トレースモードの場合に
は、トレースバッファ39は上述した6バイトの分岐ト
レース情報および9バイトのデータトレース情報を選択
的にトレース出力端子から出力する。なお、トレースバ
ッファ39がトレース情報を生成して8ビット単位でト
レース出力端子から出力する速度よりも、CPU1が命
令を実行する速度の方が格段に速いため、トレースバッ
ファ39がバッファフル状態になる。このとき、トレー
スバッファ39は、buffer full信号にHレベルを出力
する。
【0054】レジスタ32aには、イベントAが発生し
たときにトレース装置がフルトレースモードで動作する
のか、リアルタイムトレースモードで動作するのかを示
す値が設定される。同様に、レジスタ32bには、イベ
ントBが発生したときにトレース装置がフルトレースモ
ードで動作するのか、リアルタイムトレースモードで動
作するのかを示す値が設定される。
【0055】たとえば、レジスタ32aおよび32bに
設定された値によって、スイッチ31aおよび31bが
図1に示すように接続されている場合には、イベントA
が発生するとORゲート35bがHレベルを出力し、R
S−FF37がセットされてフルトレースモード信号に
Hレベルが出力される。その結果、トレースバッファ3
9がバッファフル(buffer full信号がHレベル)とな
ったときに、ANDゲート36がCPUストール信号に
Hレベルを出力してCPU1をストールする。すなわ
ち、フルトレースモードでトレースが行なわれる。この
場合には、トレースバッファ39に空きができたときに
buffer full信号がLレベルとなって、CPU1による
命令実行が再開される。
【0056】また、イベントBが発生するとORゲート
35aがHレベルを出力し、RS−FF37がリセット
されてフルトレースモード信号にLレベルが出力され
る。その結果、ANDゲート36はCPUストール信号
にLレベルを出力してCPU1に対してストールを行な
わない。すなわち、リアルタイムトレースモードでトレ
ースが行なわれる。この場合には、トレースバッファ3
9がバッファフルとなってbuffer full信号がHレベル
となっても、ANDゲート36の出力信号がLレベルの
ままでありCPU1がストールされないので、トレース
情報が上書きされて古いトレース情報が失われることに
なる。
【0057】なお、レジスタ32aおよび32bに設定
された値によって、スイッチ31aおよび31bがそれ
ぞれ逆の端子に接続された場合には、イベントAの発生
によってリアルタイムトレースモードでトレースが行な
われ、イベントBの発生によってフルトレースモードで
トレースが行なわれるようになる。
【0058】たとえば、ソフトウェア上でバグがありそ
うなサブルーチンを予想できる場合には、ターゲットア
ドレスレジスタ21aにそのサブルーチンの先頭アドレ
スを設定し、ターゲットアドレスレジスタ21bにその
サブルーチンの最後のアドレスを設定する。そして、レ
ジスタ32aおよび32bの値によって図1に示すよう
にスイッチ31aおよび31bを設定することによっ
て、CPU1がサブルーチンを実行している間はフルト
レースモードでトレースが行なわれて、トレース情報が
失われないようにする。それ以外のときはリアルタイム
トレースモードでトレースが行なわれて、トレース情報
が失われることを許容するようにすることができる。
【0059】以上説明したように、本発明の第1の実施
の形態におけるトレース装置によれば、CPU1のPC
値がターゲットアドレスレジスタ21aおよび21bに
設定されたターゲットアドレスと一致したときにトレー
スモードが切替わるようにしたので、トレース情報を詳
細に解析する必要がある箇所と、それ以外の箇所とで別
のトレースモードでトレースが行なわれるようになり、
サブルーチンなどのデバッグを容易に行なうことが可能
となった。
【0060】(第2の実施の形態)図2は、本発明の第
2の実施の形態におけるトレース装置が搭載された半導
体装置の概略構成を示すブロック図である。この半導体
装置は、CPU1と、イベントユニット2bと、トレー
スユニット3bとを含む。なお、図1に示す第1の実施
の形態における半導体装置と同じ構成および機能を有す
る部分については、同じ参照番号を付すものとする。
【0061】イベントユニット2bは、ターゲットアド
レスが設定されるターゲットアドレスレジスタ23と、
ターゲットデータが設定されるターゲットデータレジス
タ24と、アドレスバス41に出力されたアドレス値と
ターゲットアドレスレジスタ23に保持されるターゲッ
トアドレスとを比較する比較器22aと、データバス4
2に出力されたデータとターゲットデータレジスタ24
に保持されるターゲットデータとを比較する比較器22
bと、ANDゲート25とを含む。なお、ターゲットア
ドレスレジスタ23およびターゲットデータレジスタ2
4は、CPU1がアクセス可能なレジスタである。
【0062】比較器22aは、アドレスバス41に出力
されたアドレス値とターゲットアドレスレジスタ23に
設定されたターゲットアドレスとを比較し、不一致の場
合にはLレベルを出力し、一致の場合にはHレベルを出
力する。また、比較器22bは、データバス42に出力
されたデータとターゲットデータレジスタ24に設定さ
れたターゲットデータとを比較し、不一致の場合にはL
レベルを出力し、一致の場合にはHレベルを出力する。
【0063】ANDゲート25は、比較器22aおよび
22bの両方の出力信号がHレベルの場合に、Hレベル
を出力してイベントが発生したことをトレースユニット
3bに通知する。
【0064】トレースユニット3bは、スイッチ31
と、スイッチ31を切替えるための値が設定されるレジ
スタ32と、ANDゲート36と、RS−FF37と、
トレースバッファ39とを含む。なお、レジスタ32
は、CPU1がアクセス可能なレジスタである。
【0065】レジスタ32には、イベントが発生したと
きにトレース装置がフルトレースモードで動作するの
か、リアルタイムトレースモードで動作するのかを示す
値が設定される。たとえば、レジスタ32に設定された
値によって、スイッチ31が図2に示すように接続され
ている場合には、イベントが発生するとRS−FF37
がセットされてフルトレースモード信号にHレベルが出
力される。その結果、トレースバッファ39がバッファ
フル(buffer full信号がHレベル)となったときに、
ANDゲート36がCPUストール信号にHレベルを出
力してCPU1をストールする。すなわち、フルトレー
スモードでトレースが行なわれる。初期状態において
は、RS−FF37はLレベルを出力しており、CPU
1がリアルタイムトレースモードで動作しているものと
する。
【0066】なお、レジスタ32に設定された値によっ
て、スイッチ31が逆の端子に接続された場合には、イ
ベントの発生によってフルトレースモードからリアルタ
イムトレースモードに変更されるようになる。
【0067】たとえば、DMAC(Direct Memory Acce
ss Controller)のデータ転送が行なわれるときの動作
にバグがあるような場合には、ターゲットアドレスレジ
スタ23およびターゲットデータレジスタ24に、DM
ACのデータ転送において発生する所定アドレスの所定
データを設定する。そして、レジスタ32の値によって
図2に示すようにスイッチ31を設定することによっ
て、DMACによって所定アドレスの所定データにアク
セスが行なわれたときにフルレースモードでトレースが
行なわれて、トレース情報が失われないようにすること
ができる。それ以外のときはリアルタイムトレースモー
ドでトレースが行なわれて、トレース情報が失われるこ
とを許容する。
【0068】以上説明したように、本発明の第2の実施
の形態におけるトレース装置によれば、アドレスバス4
1に出力されたアドレス値がターゲットアドレスレジス
タ23に設定されたターゲットアドレスと一致し、かつ
データバス42に出力されたデータがターゲットデータ
レジスタ24に設定されたデータと一致したときにトレ
ースモードが切替わるようにしたので、トレース情報を
詳細に解析する必要がある箇所と、それ以外の箇所とで
別のトレースモードでトレースが行なわれるようにな
り、たとえばDMA転送が発生する特定の箇所などのデ
バッグを容易に行なうことが可能となった。
【0069】(第3の実施の形態)図3は、本発明の第
3の実施の形態におけるトレース装置が搭載された半導
体装置の概略構成を示すブロック図である。この半導体
装置は、CPU1と、トレースユニット3cと、割込み
コントロールユニット(以下、ICUと略す。)5とを
含む。なお、図1および図2に示す第1および第2の実
施の形態における半導体装置と同じ構成および機能を有
する部分については、同じ参照番号を付すものとする。
【0070】ICU5は、所定の割込み要因が発生した
ときにCPU1に対して割込み要求を出力するととも
に、イベントA出力信号にHレベルを出力して、トレー
スユニット3cにイベントAが発生したことを通知す
る。また、CPU1は、イベントAに対応する割込みル
ーチンから割込みを受付ける前の状態に復帰するとき
に、割込みからの復帰信号にHレベルを出力して、トレ
ースユニット3cに割込みルーチンの処理終了(イベン
トB)を通知する。
【0071】トレースユニット3cは、カウンタ33
と、ANDゲート36と、RS−FF37と、トレース
バッファ39とを含む。なお、カウンタ33は、CPU
1によってカウント値が変更されるものとする。
【0072】カウンタ33は、ICU5から出力される
イベントAの回数をカウントし、オーバフローが発生し
たときHレベルを出力する。このとき、RS−FF37
がセットされてフルトレースモード信号にHレベルが出
力される。その結果、トレースバッファ39がバッファ
フル(buffer full信号がHレベル)となったときに、
ANDゲート36がCPUストール信号にHレベルを出
力してCPU1をストールする。すなわち、フルトレー
スモードでトレースが行なわれる。
【0073】また、CPU1はイベントAに対応する割
込みルーチンの処理を終了するときに、割込みからの復
帰信号にHレベルを出力してRS−FF37をリセット
する。その結果、RS−FF37はLレベルを出力し、
CPU1がリアルタイムトレースモードで動作する。
【0074】たとえば、2回目の割込み処理でバグが発
見されたような場合には、割込み処理以外の通常処理と
1回目の割込み処理とのトレース情報は失われてもよい
のでCPU1をストールさせずに動作させ、2回目の割
込み処理のときにトレースモードをフルトレースモード
に変更して、トレース情報が失われないようにすること
ができる。また、2回目の割込み処理が発生する直前の
CPU1の動作もある程度解析することができるため、
割込み処理の前後におけるソフトウェアのバグの発見も
可能となる。
【0075】以上説明したように、本発明の第3の実施
の形態におけるトレース装置によれば、ICU5から出
力される所定の割込み要因に対応したイベントの回数を
カウントしてトレースモードをフルトレースモードに変
更するようにしたので、イベントに対応した割込みが所
定回だけ発生したときの割込み処理におけるソフトウェ
アのバグを発見することが可能となった。
【0076】(第4の実施の形態)図4は、本発明の第
4の実施の形態におけるトレース装置が搭載された半導
体装置の概略構成を示すブロック図である。この半導体
装置は、CPU1と、イベントユニット2dと、トレー
スユニット3dとを含む。なお、図1〜図3に示す第1
〜第3の実施の形態における半導体装置と同じ構成およ
び機能を有する部分については、同じ参照番号を付すも
のとする。
【0077】イベントユニット2dは、タイマ26を含
む。タイマ26は、CPU1によってカウント値が設定
される。タイマ26は、設定された値となったときにイ
ベント出力信号にHレベルを出力するとともに、タイマ
26自身のカウント値をクリアする。
【0078】トレースユニット3dは、レジスタ34
と、ANDゲート36a〜36cと、RS−FF37
と、トレースバッファ39とを含む。なお、レジスタ3
4の出力信号は、PAD45を介してチップ外部へ出力
される。
【0079】レジスタ34は、RS−FF37の出力信
号の値、すなわちトレース装置が現在フルトレースモー
ドで動作しているのか、リアルタイムトレースモードで
動作しているのかを示す値を保持する。たとえば、レジ
スタ34がLレベル(リアルタイムトレースモード)を
保持している場合において、タイマ26が設定された値
となってイベントが発生するとANDゲート36bの出
力信号がHレベルとなり、RS−FF37がセットされ
てフルトレースモード信号にHレベルが出力される。そ
の結果、トレースモードがフルトレースモードに変更さ
れるとともに、レジスタ34の出力信号がHレベルとな
り、PAD45を介して外部にトレース装置がフルトレ
ースモードで動作していることを通知する。
【0080】その後、タイマ26が再度設定された値と
なってイベント出力信号にHレベルを出力すると、AN
Dゲート36aの出力信号がHレベルとなり、RS−F
F37がリセットされてフルトレースモード信号にLレ
ベルが出力される。その結果、トレースモードがリアル
タイムトレースモードに変更されるとともに、レジスタ
34の出力信号がLレベルとなり、PAD45を介して
外部にトレース装置がリアルタイムトレースモードで動
作していることを通知する。
【0081】たとえば、プログラムを一定時間以上動作
させたときにCPU1がハングアップするといったバグ
がある場合に、タイマ26にその時間を設定することに
よって一定時間までリアルタイムトレースモードでトレ
ースが行なわれ、一定時間経過後にフルトレースモード
でトレースが行なわれて、トレース情報が失われないよ
うにすることができる。したがって、CPU1がハング
アップする直前からCPU1の動作を詳細に解析するこ
とができるようになる。
【0082】以上説明したように、本発明の第4の実施
の形態におけるトレース装置によれば、タイマ26に設
定された時間が経過したときにトレースモードを変更す
るようにしたので、たとえばプログラムを所定時間以上
動作させたときにCPU1が誤動作する場合に、その誤
動作が発生する直前からのCPU1の動作を詳細に解析
することができ、そのデバッグを容易に行なうことが可
能となった。
【0083】(第5の実施の形態)図5は、本発明の第
5の実施の形態におけるトレース装置が搭載された半導
体装置の概略構成を示すブロック図である。この半導体
装置は、CPU1と、イベントユニット2eと、トレー
スユニット3eとを含む。なお、図1〜図4に示す第1
〜第4の実施の形態における半導体装置と同じ構成およ
び機能を有する部分については、同じ参照番号を付すも
のとする。
【0084】イベントユニット2eは、ターゲットアド
レスが設定されるターゲットアドレスレジスタ21aお
よび21bと、CPU1のPC11の値とターゲットア
ドレスレジスタ21aに保持されるターゲットアドレス
とを比較する比較器22aと、CPU1のPC11の値
とターゲットアドレスレジスタ21bに保持されるター
ゲットアドレスとを比較する比較器22bとを含む。な
お、ターゲットアドレスレジスタ21aおよび21b
は、CPU1がアクセス可能なレジスタである。
【0085】比較器22aは、CPU1のPC値とター
ゲットアドレスレジスタ21aに設定されたターゲット
アドレスとを比較し、不一致の場合にはLレベルを出力
し、一致の場合にはHレベルを出力して、イベントAが
発生したことをトレースユニット3eに通知する。同様
に、比較器22bは、CPU1のPC値とターゲットア
ドレスレジスタ21bに設定されたターゲットアドレス
とを比較し、不一致の場合にはLレベルを出力し、一致
の場合にはHレベルを出力して、イベントBが発生した
ことをトレースユニット3eに通知する。
【0086】トレースユニット3eは、ANDゲート3
6aおよび36bと、RS−FF37および38と、ト
レースバッファ39とを含む。なお、初期状態において
RS−FF37および38は、出力信号にLレベルを出
力しており、トレース装置がリアルタイムトレースモー
ドで動作しているものとする。
【0087】イベントAが発生すると、RS−FF38
がセットされてその出力信号にHレベルが出力される。
その後、イベントBが発生するとANDゲート36aが
出力信号にHレベルを出力し、RS−FF37がセット
されてフルトレースモード信号にHレベルが出力される
とともに、RS−FF38がリセットされる。その結
果、トレースバッファ39がバッファフル(buffer ful
l信号がHレベル)となったときに、ANDゲート36
bがCPUストール信号にHレベルを出力してCPU1
をストールする。すなわち、フルトレースモードでトレ
ースが行なわれる。トレースバッファ39に空きができ
たときにbuffer full信号がLレベルとなって、CPU
1による命令実行が再開される。
【0088】たとえば、CPU1がサブルーチンAを実
行した後にサブルーチンBを実行するときのみCPU1
が誤動作し、サブルーチンAを実行する前にサブルーチ
ンBを実行するときにはCPU1が誤動作しない場合、
ターゲットアドレスレジスタ21aにサブルーチンAの
先頭アドレスを設定し、ターゲットアドレスレジスタ2
1bにサブルーチンBの先頭アドレスを設定することに
よって、CPU1が誤動作する直前まではなるべくCP
U1が通常動作となるようにし、ソフトウェアのバグが
ありそうな箇所でトレースモードをフルトレースモード
にすることによって、CPU1の誤動作が発生する前後
におけるCPU1の動作を詳細に解析することが可能と
なる。
【0089】以上説明したように、本発明の第5の実施
の形態におけるトレース装置によれば、CPU1のPC
値がターゲットアドレスレジスタ21aに設定されたタ
ーゲットアドレスと一致した後、さらにCPU1のPC
値がターゲットアドレスレジスタ21bに設定されたタ
ーゲットアドレスと一致するときにのみトレースモード
が切替わるようにしたので、たとえばCPU1が2つの
サブルーチンを所定の順番で処理した場合にのみCPU
1が誤動作するようなソフトウェアを容易にデバッグす
ることが可能となった。
【0090】(第6の実施の形態)図6は、本発明の第
6の実施の形態におけるトレース装置が搭載された半導
体装置の概略構成を示すブロック図である。この半導体
装置は、CPU1と、イベントユニット2fと、トレー
スユニット3fとを含む。なお、図1〜図5に示す第1
〜第5の実施の形態における半導体装置と同じ構成およ
び機能を有する部分については、同じ参照番号を付すも
のとする。
【0091】CPU1は、オペランドアクセス命令を実
行するときに(パイプライン処理における命令実行ステ
ージで)、OAEND信号にHレベルを出力する。ま
た、CPU1は、分岐命令を実行するときに(パイプラ
イン処理における命令実行ステージで)、JMP信号に
Hレベルを出力する。
【0092】イベントユニット2fは、ターゲットアド
レスが設定されるターゲットアドレスレジスタ21a〜
21cと、CPU1のPC11の値とターゲットアドレ
スレジスタ21aに保持されるターゲットアドレスとを
比較する比較器22aと、CPU1のPC11の値とタ
ーゲットアドレスレジスタ21bに保持されるターゲッ
トアドレスとを比較する比較器22bと、CPU1のP
C11の値とターゲットアドレスレジスタ21cに保持
されるターゲットアドレスとを比較する比較器22cと
を含む。なお、ターゲットアドレスレジスタ21a〜2
1cは、CPU1がアクセス可能なレジスタである。
【0093】比較器22aは、CPU1のPC値とター
ゲットアドレスレジスタ21aに設定されたターゲット
アドレスとを比較し、不一致の場合にはLレベルを出力
し、一致の場合にはHレベルを出力して、イベントAが
発生したことをトレースユニット3fに通知する。同様
に、比較器22bは、CPU1のPC値とターゲットア
ドレスレジスタ21bに設定されたターゲットアドレス
とを比較し、不一致の場合にはLレベルを出力し、一致
の場合にはHレベルを出力して、イベントBが発生した
ことをトレースユニット3fに通知する。同様に、比較
器22cは、CPU1のPC値とターゲットアドレスレ
ジスタ21cに設定されたターゲットアドレスとを比較
し、不一致の場合にはLレベルを出力し、一致の場合に
はHレベルを出力して、イベントCが発生したことをト
レースユニット3fに通知する。
【0094】トレースユニット3fは、ORゲート35
a〜35cと、ANDゲート36a〜36dと、RS−
FF37a,37bおよび38と、トレースバッファ3
9’とを含む。なお、初期状態においてRS−FF37
aは出力信号にHレベルを出力し、RS−FF37bお
よび38は出力信号にLレベルを出力しており、分岐ト
レースイネーブル信号がHレベル(イネーブル)、デー
タトレースイネーブル信号がLレベル(ディスエーブ
ル)になっているものとする。
【0095】トレースバッファ39’は、ANDゲート
36dが分岐トレーススタート信号にHレベルを出力し
たときに、アドレスバス41に出力された分岐アドレス
を取込み、この分岐アドレスを含んだパケットを生成し
てトレース出力端子から出力する。また、トレースバッ
ファ39’は、ANDゲート36cがデータトレースス
タート信号にHレベルを出力したときに、データバス4
2に出力されたオペランドアクセスデータを取込み、こ
のオペランドアクセスデータを含んだパケットを生成し
てトレース出力端子から出力する。
【0096】初期状態においては、RS−FF37aが
出力信号にHレベルを出力しているので、CPU1が分
岐命令を実行してJMP信号にHレベルが出力されるた
びに、トレースバッファ39’から分岐トレース情報を
含んだパケットが出力される。一方、初期状態において
は、RS−FF37bが出力信号にLレベルを出力して
いるので、CPU1がオペランドアクセス命令を実行し
てOAEND信号にHレベルが出力されても、トレース
バッファ39’によってデータトレース情報を含んだパ
ケットは生成されない。
【0097】この状態において、イベントBまたはイベ
ントCが発生したとしても、RS−FF38の出力信号
はLレベルであるので、ANDゲート36aおよび36
bの出力信号はLレベルのままであり、RS−FF37
aおよび37bの出力信号は変化しない。
【0098】CPU1のPC値とターゲットアドレスレ
ジスタ21aに保持されるターゲットアドレスとが一致
してイベントAが発生すると、RS−FF38がセット
されてその出力信号にHレベルが出力される。それと同
時に、ORゲート35bおよび35cの出力信号がHレ
ベルとなるので、RS−FF37aおよび37bの出力
信号がHレベルとなる。その結果、分岐トレースイネー
ブル信号およびデータトレースイネーブル信号がともに
Hレベルとなって、CPU1が分岐命令またはオペラン
ドアクセス命令を実行するたびに、トレースバッファ3
9’から分岐トレース情報またはデータトレース情報を
含んだパケットが出力される。すなわち、トレースモー
ドが混在トレースモードに変更される。
【0099】その後、CPU1のPC値とターゲットア
ドレスレジスタ21cに保持されるターゲットアドレス
とが一致してイベントCが発生すると、RS−FF37
bの出力信号がHレベルを維持するととも、RS−FF
37aがリセットされてその出力信号がLレベルとな
る。その結果、データトレースイネーブル信号がHレベ
ルとなって、CPU1がオペランドアクセス命令を実行
してOAEND信号にHレベルが出力されるたびに、ト
レースバッファ39’からデータトレース情報を含んだ
パケットが出力される。一方、分岐トレースイネーブル
信号がLレベルとなるので、CPU1が分岐命令を実行
してJMP信号にHレベルが出力されても、トレースバ
ッファ39’によって分岐トレース情報を含んだパケッ
トは生成されない。すなわち、トレースモードがデータ
トレースモードに変更される。
【0100】以上説明したように、本発明の第6の実施
の形態におけるトレース装置によれば、CPU1のPC
値がターゲットアドレスレジスタ21a〜21cに設定
されたターゲットアドレスのいずれかと一致したとき
に、トレースモードを分岐トレースモード、データトレ
ースモードおよび混在トレースモードのいずれかに変更
するようにしたので、プログラムのデバッグに必要なト
レース情報の種類をサブルーチン毎に切替えることがで
きるとともに、CPU1がストールされる時間を最小限
にすることができ、通常のCPU1の動作に近い状態で
デバッグを行なうことが可能となった。
【0101】(第7の実施の形態)図7は、本発明の第
7の実施の形態におけるトレース装置が搭載された半導
体装置の概略構成を示すブロック図である。この半導体
装置は、CPU1と、イベントユニット2gと、トレー
スユニット3gとを含む。なお、図1〜図6に示す第1
〜第6の実施の形態における半導体装置と同じ構成およ
び機能を有する部分については、同じ参照番号を付すも
のとする。
【0102】イベントユニット2gは、ターゲットアド
レスが設定されるターゲットアドレスレジスタ23と、
ターゲットデータが設定されるターゲットデータレジス
タ24と、アドレスバス41に出力されたアドレス値と
ターゲットアドレスレジスタ23に保持されるターゲッ
トアドレスとを比較する比較器22aと、データバス4
2に出力されたデータとターゲットデータレジスタ24
に保持されるターゲットデータとを比較する比較器22
bと、ANDゲート25とを含む。なお、ターゲットア
ドレスレジスタ23およびターゲットデータレジスタ2
4は、CPU1がアクセス可能なレジスタである。
【0103】比較器22aは、アドレスバス41に出力
されたアドレス値とターゲットアドレスレジスタ23に
設定されたターゲットアドレスとを比較し、不一致の場
合にはLレベルを出力し、一致の場合にはHレベルを出
力する。また、比較器22bは、データバス42に出力
されたデータとターゲットデータレジスタ24に設定さ
れたターゲットデータとを比較し、不一致の場合にはL
レベルを出力し、一致の場合にはHレベルを出力する。
【0104】ANDゲート25は、比較器22aおよび
22bの両方の出力信号がHレベルの場合に、Hレベル
を出力してイベントが発生したことをトレースユニット
3gに通知する。
【0105】トレースユニット3gは、スイッチ31
と、スイッチ31を切替えるための値が設定されるレジ
スタ32と、ORゲート35aおよび35bと、AND
ゲート36aおよび36bと、RS−FF37aおよび
37bと、トレースバッファ39’とを含む。なお、レ
ジスタ32は、CPU1がアクセス可能なレジスタであ
る。
【0106】レジスタ32には、イベントが発生したと
きにトレース装置が分岐トレースモードで動作するの
か、データトレースモードで動作するのか、混在トレー
スモードで動作するのかを示す2ビットの値が設定され
る。たとえば、レジスタ32に設定された値によって、
スイッチ31が図7に示すように接続されている場合に
は、イベントが発生するとRS−FF37aがセットさ
れ、RS−FF37bがリセットされて、分岐トレース
イネーブル信号にHレベルが出力され、データトレース
イネーブル信号にLレベルが出力される。
【0107】その結果、CPU1が分岐命令を実行して
JMP信号にHレベルが出力されるたびに、トレースバ
ッファ39’から分岐トレース情報を含んだパケットが
出力される。また、CPU1がオペランドアクセス命令
を実行してOAEND信号にHレベルが出力されても、
ANDゲート36aの出力信号がLレベルのままである
ので、トレースバッファ39’によってデータトレース
情報を含んだパケットは生成されない。すなわち、トレ
ース装置が分岐トレースモードで動作する。
【0108】なお、レジスタ32に設定された値によっ
て、スイッチ31が左の端子に接続された場合には、イ
ベントの発生によってトレースモードがデータトレース
モードに変更されるようになる。また、レジスタ32に
設定された値によって、スイッチ31が右の端子に接続
された場合には、イベントの発生によってトレースモー
ドが混在トレースモードに変更されるようになる。
【0109】たとえば、所定アドレスに所定データを書
込んだ後にCPU1がハングアップすることが判明して
いる場合に、ターゲットアドレスレジスタ23およびタ
ーゲットデータレジスタ24にそのアドレスおよびデー
タを設定することによって、CPU1がハングアップす
る直前にどのアドレスに分岐しているか、どのオペラン
ドアクセスを行なっているか等を解析することができ、
ソフトウェアのデバッグが容易に行なえるようになる。
【0110】なお、図5に示す第5の実施の形態におけ
るトレース装置のように、ANDゲート36aの出力信
号をイベント出力信号とし、イベントAが発生した後に
イベントBが発生すれば分岐トレースイネーブル信号ま
たはデータトレースイネーブル信号を切替えるようにし
てもよい。
【0111】以上説明したように、本発明の第7の実施
の形態におけるトレース装置によれば、アドレスバス4
1に出力されたアドレス値がターゲットアドレスレジス
タ23に設定されたターゲットアドレスと一致し、かつ
データバス42に出力されたデータがターゲットデータ
レジスタ24に設定されたデータと一致したときにトレ
ースモードが切替わるようにしたので、バグの状況に応
じてトレースバッファ39’から出力されるトレース情
報の種類を切替えることができ、ソフトウェアのデバッ
グを容易に行なうことが可能となった。
【0112】(第8の実施の形態)図8は、本発明の第
8の実施の形態におけるトレース装置が搭載された半導
体装置の概略構成を示すブロック図である。この半導体
装置は、CPU1と、トレースユニット3hと、ICU
5とを含む。なお、図1〜図7に示す第1〜第7の実施
の形態における半導体装置と同じ構成および機能を有す
る部分については、同じ参照番号を付すものとする。
【0113】トレースユニット3hは、ANDゲート3
6と、RS−FF37と、トレースバッファ39’とを
含む。なお、初期状態において、RS−FF37の出力
信号にHレベルが出力されているものとする。
【0114】初期状態において、分岐トレースイネーブ
ル信号にHレベルが出力されているので、CPU1が分
岐命令を実行してJMP信号にHレベルが出力される
と、ANDゲート36が分岐トレーススタート信号にH
レベルを出力する。その結果、トレースバッファ39’
から分岐トレース情報を含んだパケットが出力される。
また、CPU1がオペランドアクセス命令を実行してO
AEND信号がHレベルになると、RS−FF37の出
力信号に関係なく、トレースバッファ39’からデータ
トレース情報を含んだパケットが出力される。すなわ
ち、トレース装置は混在トレースモードで動作する。
【0115】また、ICU5がイベントA出力信号にH
レベルを出力すると、RS−FF37の出力信号にLレ
ベルが出力される。その結果、CPU1が分岐命令を実
行してJMP信号にHレベルが出力されても分岐トレー
ススタート信号がLレベルのままであるので、トレース
バッファ39’によって分岐トレース情報を含んだパケ
ットは生成されない。すなわち、トレース装置はデータ
トレースモードで動作する。
【0116】さらに、CPU1はイベントAに対応する
割込みルーチンの処理を終了するときに、割込みからの
復帰信号(イベントB出力信号)にHレベルを出力して
RS−FF37をセットする。その結果、RS−FF3
7はHレベルを出力し、CPU1が混在トレースモード
で動作する。
【0117】割込み処理以外の通常の処理においては、
プログラムの処理の流れを解析する必要があるので分岐
トレース情報も必要であるが、割込み処理ルーチンにお
いては比較的簡単な動作しか行なわれない場合が多いの
で、メモリのアクセス状態のみを解析したい場合があ
る。このような場合に、CPU1がストールされるのを
必要最小限に抑えつつ、必要なデータトレース情報だけ
を取得することが可能となる。
【0118】なお、図3に示す第3の実施の形態におけ
るトレース装置のように、カウンタ33の出力信号をイ
ベントA出力信号とし、ICU5からの割込み要求が所
定回あったときに分岐トレースイネーブル信号を切替え
るようにしてもよい。
【0119】以上説明したように、本発明の第8の実施
の形態におけるトレース装置によれば、所定の割込み要
因に対応したイベントが発生したときに、混在トレース
モードからデータトレースモードに変更されるようにし
たので、割込み処理におけるオペランドアクセスを詳細
に解析することができるようになり、容易にソフトウェ
アのバグを発見することが可能となった。
【0120】(第9の実施の形態)図9は、本発明の第
9の実施の形態におけるトレース装置が搭載された半導
体装置の概略構成を示すブロック図である。この半導体
装置は、CPU1と、イベントユニット2iと、トレー
スユニット3iとを含む。なお、図1〜図8に示す第1
〜第8の実施の形態における半導体装置と同じ構成およ
び機能を有する部分については、同じ参照番号を付すも
のとする。
【0121】イベントユニット2iは、ターゲットアド
レスが設定されるターゲットアドレスレジスタ21a〜
21cと、CPU1のPC11の値とターゲットアドレ
スレジスタ21aに保持されるターゲットアドレスとを
比較する比較器22aと、CPU1のPC11の値とタ
ーゲットアドレスレジスタ21bに保持されるターゲッ
トアドレスとを比較する比較器22bと、CPU1のP
C11の値とターゲットアドレスレジスタ21cに保持
されるターゲットアドレスとを比較する比較器22cと
を含む。なお、ターゲットアドレスレジスタ21a〜2
1cは、CPU1がアクセス可能なレジスタである。
【0122】比較器22aは、CPU1のPC値とター
ゲットアドレスレジスタ21aに設定されたターゲット
アドレスとを比較し、不一致の場合にはLレベルを出力
し、一致の場合にはHレベルを出力して、イベントAが
発生したことをトレースユニット3iに通知する。同様
に、比較器22bは、CPU1のPC値とターゲットア
ドレスレジスタ21bに設定されたターゲットアドレス
とを比較し、不一致の場合にはLレベルを出力し、一致
の場合にはHレベルを出力して、イベントBが発生した
ことをトレースユニット3iに通知する。同様に、比較
器22cは、CPU1のPC値とターゲットアドレスレ
ジスタ21cに設定されたターゲットアドレスとを比較
し、不一致の場合にはLレベルを出力し、一致の場合に
はHレベルを出力して、イベントCが発生したことをト
レースユニット3iに通知する。
【0123】トレースユニット3iは、ANDゲート3
6と、RS−FF37および38と、トレースバッファ
39と、32ビットのアドレスを保持するアドレスバッ
ファ301および302と、セレクタ303と、減算器
304と、32ビット幅のアドレスを8ビット幅のアド
レスに変換するバッファ305と、トレース出力コント
ローラ306とを含む。なお、初期状態においてRS−
FF37は出力信号にHレベルを出力し、RS−FF3
8は出力信号にLレベルを出力しており、アドレス情報
出力信号がHレベルになっているものとする。
【0124】アドレスバッファ301は、現在アドレス
バス41に出力されている32ビットのアドレスを保持
している。また、アドレスバッファ302は、前回アド
レスバスに出力されていた32ビットのアドレスを保持
している。減算器304は、アドレスバッファ301に
保持される現在のアドレスから、アドレスバッファ30
2に保持される前回のアドレスを減算し、減算結果を8
ビットの差分アドレスとしてセレクタ303へ出力す
る。
【0125】バス幅変換用のバッファ305は、アドレ
スバッファ301に保持される現在の32ビットのアド
レスを、4つの8ビットのアドレスに変換して順次セレ
クタ303へ出力する。
【0126】セレクタ303は、RS−FF37から出
力されるアドレス情報出力信号がHレベルであれば、バ
ッファ305の出力信号を選択して出力する。また、セ
レクタ303は、RS−FF37から出力されるアドレ
ス情報出力信号がLレベルであれば、減算器304の出
力信号を選択して出力する。
【0127】トレース出力コントローラ306は、RS
−FF37から出力されるアドレス情報出力信号を参照
して、セレクタ303から出力されるアドレスがバス幅
が変換されたアドレスであるのか、減算されたアドレス
であるのかを判断し、トレースバッファ39からのパケ
ット出力を制御する。アドレス情報出力信号がHレベル
であれば、トレース出力コントローラ306は、4つの
8ビットのアドレスを含んだパケットを生成するように
トレースバッファ39を制御する。この場合、上述した
ように6パケットのトレース情報が生成されて出力され
る。
【0128】また、アドレス情報出力信号がLレベルで
あれば、トレース出力コントローラ306は、8ビット
の差分アドレスを含んだパケットを生成するようにトレ
ースバッファ39を制御する。この場合、3パケットの
トレース情報が生成されて出力されるため、3バイト分
のトレース情報を削減することができる。
【0129】なお、セレクタ303は、アドレス情報出
力信号がLレベルのときに減算器304から出力される
差分アドレスを選択するのではなく、アドレスバッファ
301に保持される現在の32ビットのアドレスのうち
下位8ビットだけを出力するようにしてもよい。
【0130】初期状態においては、RS−FF37がア
ドレス情報出力信号にHレベルを出力しているので、セ
レクタ303はバッファ305から出力されるバス幅が
変換されたアドレスを選択して出力する。その結果、ト
レースバッファ39から32ビット分のアドレス情報を
含んだトレース情報が出力される。
【0131】CPU1のPC値とターゲットアドレスレ
ジスタ21aに保持されるターゲットアドレスとが一致
してイベントAが発生すると、RS−FF38がセット
されてその出力信号にHレベルが出力される。この状態
においては、RS−FF37の出力信号が変化しないの
で、バス幅が変換された4つの8ビットのアドレスがト
レースバッファ39へ出力される。
【0132】次に、CPU1のPC値とターゲットアド
レスレジスタ21bに保持されるターゲットアドレスと
が一致してイベントBが発生すると、RS−FF37が
リセットされてアドレス情報出力信号がLレベルに変化
するので、8ビットの差分アドレスがトレースバッファ
39へ出力される。このとき、RS−FF38がリセッ
トされてその出力信号にLレベルが出力されるので、再
度イベントBが発生したとしても、RS−FF37がリ
セットされることはない。
【0133】続いて、CPU1のPC値とターゲットア
ドレスレジスタ21cに保持されるターゲットアドレス
とが一致してイベントCが発生すると、RS−FF37
がセットされてアドレス情報出力信号が再びHレベルに
なるので、バス幅が変換された4つの8ビットのアドレ
スがトレースバッファ39へ出力される。
【0134】以上説明したように、本発明の第9の実施
の形態におけるトレース装置によれば、CPU1のPC
値がターゲットアドレスレジスタ21a〜21cに設定
されたターゲットアドレスのいずれかと一致したとき
に、バス幅が変換されたアドレスと差分アドレスとを切
替えてトレース情報を生成するようにしたので、ソフト
ウェアを詳細に解析したい箇所においても、トレース情
報の量が少なくなってトレースバッファ39のオーバフ
ローを少なくすることができる。したがって、トレース
装置がフルトレースモードで動作している場合でも、通
常のCPU1の動作に近い状態でソフトウェアのデバッ
グを行なうことが可能となった。
【0135】また、アドレス情報出力信号がLレベルの
ときに、セレクタ303がアドレスバッファ301に保
持される現在の32ビットのアドレスのうち下位8ビッ
トだけを出力するようにすれば、ソフトウェアのうち上
位24ビットが同じである領域内のデバッグにおけるト
レース情報の量を削減することができる。
【0136】たとえば、あるサブルーチン内で発生する
アドレスの上位24ビットが常に同じであることが判明
している場合、そのサブルーチンのデバッグを行なうと
きに、ターゲットアドレスレジスタ21bにそのサブル
ーチンの先頭アドレスを設定し、ターゲットアドレスレ
ジスタ21cにそのサブルーチンの最後のアドレスを設
定する。これによって、CPU1がそのサブルーチンの
処理を実行している場合には、アドレスを8ビットにし
てトレース情報を生成することができるようになる。し
たがって、トレース装置がフルトレースモードで動作し
ている場合でも、通常のCPU1の動作に近い状態でソ
フトウェアのデバッグを行なうことが可能となる。
【0137】(第10の実施の形態)図10は、本発明
の第10の実施の形態におけるトレース装置が搭載され
た半導体装置の概略構成を示すブロック図である。この
半導体装置は、CPU1と、イベントユニット2jと、
トレースユニット3jとを含む。なお、図1〜図9に示
す第1〜第9の実施の形態における半導体装置と同じ構
成および機能を有する部分については、同じ参照番号を
付すものとする。
【0138】イベントユニット2jは、ターゲットアド
レスが設定されるターゲットアドレスレジスタ23と、
ターゲットデータが設定されるターゲットデータレジス
タ24と、アドレスバス41に出力されたアドレス値と
ターゲットアドレスレジスタ23に保持されるターゲッ
トアドレスとを比較する比較器22aと、データバス4
2に出力されたデータとターゲットデータレジスタ24
に保持されるターゲットデータとを比較する比較器22
bと、ANDゲート25とを含む。なお、ターゲットア
ドレスレジスタ23およびターゲットデータレジスタ2
4は、CPU1がアクセス可能なレジスタである。
【0139】比較器22aは、アドレスバス41に出力
されたアドレス値とターゲットアドレスレジスタ23に
設定されたターゲットアドレスとを比較し、不一致の場
合にはLレベルを出力し、一致の場合にはHレベルを出
力する。また、比較器22bは、データバス42に出力
されたデータ値とターゲットデータレジスタ24に設定
されたターゲットデータとを比較し、不一致の場合には
Lレベルを出力し、一致の場合にはHレベルを出力す
る。
【0140】ANDゲート25は、比較器22aおよび
22bの両方の出力信号がHレベルの場合に、Hレベル
を出力してイベントが発生したことをトレースユニット
3jに通知する。
【0141】トレースユニット3jは、スイッチ31
と、スイッチ31を切替えるための値が設定されるレジ
スタ32と、RS−FF37と、トレースバッファ39
と、32ビットのアドレスを保持するアドレスバッファ
301および302と、セレクタ303と、減算器30
4と、32ビット幅のアドレスを8ビット幅のアドレス
に変換するバッファ305と、トレース出力コントロー
ラ306とを含む。なお、初期状態においてRS−FF
37は出力信号にLレベルを出力しているものとする。
【0142】アドレス情報出力信号がLレベルであれ
ば、トレース出力コントローラ306は、4つの8ビッ
トのアドレスを含んだパケットを生成するようにトレー
スバッファ39を制御する。この場合、上述したように
6パケットのトレース情報が生成されて出力される。
【0143】アドレス情報出力信号がHレベルであれ
ば、トレース出力コントローラ306は、8ビットの差
分アドレスを含んだパケットを生成するようにトレース
バッファ39を制御する。この場合、3パケットのトレ
ース情報が生成されて出力されるため、3バイト分のト
レース情報を削減することができる。なお、セレクタ3
03は、アドレス情報出力信号がHレベルのときに減算
器304から出力される差分アドレスを選択するのでは
なく、アドレスバッファ301に保持される現在の32
ビットのアドレスのうち下位8ビットだけを出力するよ
うにしてもよい。
【0144】初期状態においては、RS−FF37がア
ドレス情報出力信号にLレベルを出力しているので、セ
レクタ303はバッファ305から出力されるバス幅が
変換されたアドレスを選択して出力する。その結果、ト
レースバッファ39から32ビット分のアドレス情報を
含んだトレース情報が出力される。
【0145】アドレスバス41に出力されたアドレス値
とターゲットアドレスレジスタ23に保持されるターゲ
ットアドレスとが一致し、かつデータバス42に出力さ
れたデータとターゲットデータレジスタ24に保持され
るターゲットデータとが一致してイベントが発生する
と、RS−FF37がセットされてアドレス情報出力信
号にHレベルが出力される。この状態においては、8ビ
ットの差分アドレスがトレースバッファ39へ出力され
る。
【0146】以上説明したように、本発明の第10の実
施の形態におけるトレース装置によれば、アドレスバス
41に出力されたアドレス値がターゲットアドレスレジ
スタ23に設定されたターゲットアドレスと一致し、か
つデータバス42に出力されたデータがターゲットデー
タレジスタ24に設定されたターゲットデータと一致し
たときに、バス幅が変換されたアドレスと差分アドレス
とを切替えてトレース情報を生成するようにしたので、
ソフトウェアの詳細に解析したい箇所においても、トレ
ース情報の量が少なくなってトレースバッファ39のオ
ーバフローを少なくすることができる。したがって、ト
レース装置がフルトレースモードで動作している場合で
も、通常のCPU1の動作に近い状態でソフトウェアの
デバッグを行なうことが可能となった。
【0147】また、アドレス情報出力信号がHレベルの
ときに、セレクタ303がアドレスバッファ301に保
持される現在の32ビットのアドレスのうち下位8ビッ
トだけを出力するようにすれば、ソフトウェアのうち上
位24ビットが同じである領域内のデバッグにおけるト
レース情報の量を削減することができる。
【0148】たとえば、CPU1が所定アドレスの所定
データをアクセスし、それ以降のオペランドアクセスの
アドレスの上位24ビットが同じであることが判明して
いる場合に、ターゲットアドレス23にその所定アドレ
スを設定し、ターゲットデータレジスタ24にその所定
データを設定することによって、オペランドアクセス時
におけるアドレスを8ビットにしてトレース情報を生成
することができるようになる。したがって、トレース装
置がフルトレースモードで動作している場合でも、通常
のCPU1の動作に近い状態でソフトウェアのデバッグ
を行なうことが可能となった。
【0149】なお、図3に示す第3の実施の形態におけ
るトレース装置のように、カウンタ33の出力信号をイ
ベント出力信号とし、ICU5からの割込み要求が所定
回あったときにアドレス情報出力信号を切替えるように
してもよい。また、図5に示す第5の実施の形態におけ
るトレース装置のように、ANDゲート36aの出力信
号をイベント出力信号とし、イベントAが発生した後に
イベントBが発生すればアドレス情報出力信号を切替え
るようにしてもよい。さらには、図8に示す第8の実施
の形態におけるトレース装置のように、ICU5から出
力される割込み要求信号をイベント出力信号とし、IC
U5からの割込み要求があったときにアドレス情報出力
信号を切替えるようにしてもよい。
【0150】今回開示された実施の形態は、すべての点
で例示であって制限的なものではないと考えられるべき
である。本発明の範囲は上記した説明ではなくて特許請
求の範囲によって示され、特許請求の範囲と均等の意味
および範囲内でのすべての変更が含まれることが意図さ
れる。
【0151】
【発明の効果】請求項1に記載のトレース装置によれ
ば、トレースユニットが、イベントの発生を検出して、
フルトレースモードとリアルタイムトレースモードとの
切替えを行なってトレース情報を生成するので、プロセ
ッサの動作を詳細に解析したい箇所においてはフルトレ
ースモードでトレース装置を動作させ、詳細に解析する
必要がない箇所においてはリアルタイムトレースモード
でトレース装置を動作させることができる。したがっ
て、ソフトウェアのデバッグにおいて重要となるトレー
ス情報が失われるのを防止することが可能となった。ま
た、プロセッサの動作を詳細に解析する必要がない箇所
においてはリアルタイムトレースモードでトレースが行
なわれるので、通常のCPUの動作に近い状態でCPU
を動作させることが可能となった。
【0152】請求項2に記載のトレース装置によれば、
イベントが発生したときにトレースモードをフルトレー
スモードおよびリアルタイムトレースモードのいずれに
切替えるのかを設定することができ、プロセッサの動作
を詳細に解析したい箇所を容易に設定することが可能と
なった。
【0153】請求項3に記載のトレース装置によれば、
外部においてトレース装置がフルトレースモードおよび
リアルタイムトレースモードのいずれで動作しているの
かを認識することが可能となった。
【0154】請求項4に記載のトレース装置によれば、
トレースユニットが、イベントの発生を検出して、分岐
トレースモード、データトレースモードおよび混在トレ
ースモードの切替えを行なってトレース情報を生成する
ので、プロセッサの動作を詳細に解析したい箇所と、詳
細に解析する必要がない箇所とでトレース情報の種類を
変更することができる。したがって、分岐トレースモー
ドまたはデータトレースモードの場合には、トレース情
報の情報量を削減することができるので、プロセッサが
ストールされる時間を最小限にでき、通常のプロセッサ
の動作に近い状態でソフトウェアのデバッグを行なうこ
とが可能となった。
【0155】請求項5に記載のトレース装置によれば、
イベントが発生したときにトレースモードを分岐トレー
スモード、データトレースモードおよび混在トレースモ
ードのいずれに切替えるのかを設定することができ、プ
ロセッサの動作を詳細に解析したい箇所を容易に設定す
ることが可能となった。
【0156】請求項6に記載のトレース装置によれば、
トレースユニットが、イベントの発生を検出して、絶対
アドレスでトレース情報を生成するか、相対アドレスで
トレース情報を生成するかを判定してトレース情報を生
成するので、相対アドレスでトレース情報を生成する箇
所においてはトレース情報の情報量を削減することがで
きる。したがって、フルトレースモードでトレースが行
なわれているときに、プロセッサがストールされる時間
を最小限にでき、通常のプロセッサの動作に近い状態で
ソフトウェアのデバッグを行なうことが可能となった。
また、リアルタイムトレースモードでトレースが行なわ
れているときに、トレース情報が失われるのを最小限に
抑えることが可能となった。
【0157】請求項7に記載のトレース装置によれば、
相対アドレスでトレース情報を生成するモードへ切替え
るのか、絶対アドレスでトレース情報を生成するモード
へ切替えるのかをを設定することができ、プロセッサの
動作を詳細に解析したい箇所を容易に設定することが可
能となった。
【0158】請求項8に記載のトレース装置によれば、
減算器によって減算されたアドレスが選択された場合に
は、トレース情報の情報量を削減できる。これによっ
て、フルトレースモードでトレースが行なわれていると
きに、プロセッサがストールされる時間を最小限にで
き、通常のプロセッサの動作に近い状態でソフトウェア
のデバッグを行なうことが可能となった。また、リアル
タイムトレースモードでトレースが行なわれているとき
に、トレース情報が失われるのを最小限に抑えることが
可能となった。
【0159】請求項9に記載のトレース装置によれば、
アドレスレジスタに保持されるアドレスの所定の下位ビ
ットが選択された場合には、トレース情報の情報量を削
減できる。これによって、フルトレースモードでトレー
スが行なわれているときに、プロセッサがストールされ
る時間を最小限にでき、通常のプロセッサの動作に近い
状態でソフトウェアのデバッグを行なうことが可能とな
った。また、リアルタイムトレースモードでトレースが
行なわれているときに、トレース情報が失われるのを最
小限に抑えることが可能となった。
【0160】請求項10に記載のトレース装置によれ
ば、トレースユニットは、プロセッサがプログラムの所
定箇所の処理を実行するときにトレースモードを変更す
ることが可能となった。
【0161】請求項11に記載のトレース装置によれ
ば、トレースユニットは、プロセッサが所定領域に対し
てオペランドアクセスを行なったときにトレースモード
を変更することが可能となった。
【0162】請求項12に記載のトレース装置によれ
ば、トレースユニットは、プロセッサのオペランドアク
セス時におけるデータが所定値であればトレースモード
を変更することが可能となった。
【0163】請求項13に記載のトレース装置によれ
ば、トレースユニットは、プロセッサが所定領域に対し
て行なったオペランドアクセス時におけるデータが所定
値である場合にトレースモードを変更することが可能と
なった。
【0164】請求項14に記載のトレース装置によれ
ば、トレースユニットは、所定の割込み要因が発生した
ときにトレースモードを変更することが可能となった。
【0165】請求項15に記載のトレース装置によれ
ば、トレースユニットは、所定の割込み要因が所定回だ
け発生した場合にのみトレースモードを変更することが
可能となった。
【0166】請求項16に記載のトレース装置によれ
ば、トレースユニットは、予め定められた時間が経過し
たときにトレースモードを変更することが可能となっ
た。
【0167】請求項17に記載のトレース装置によれ
ば、トレースユニットは、プロセッサがプログラムの第
1の所定箇所の処理を実行した後、第2の所定箇所の処
理を実行した場合にのみトレースモードを変更すること
が可能となった。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態におけるトレース
装置が搭載された半導体装置の概略構成を示すブロック
図である。
【図2】 本発明の第2の実施の形態におけるトレース
装置が搭載された半導体装置の概略構成を示すブロック
図である。
【図3】 本発明の第3の実施の形態におけるトレース
装置が搭載された半導体装置の概略構成を示すブロック
図である。
【図4】 本発明の第4の実施の形態におけるトレース
装置が搭載された半導体装置の概略構成を示すブロック
図である。
【図5】 本発明の第5の実施の形態におけるトレース
装置が搭載された半導体装置の概略構成を示すブロック
図である。
【図6】 本発明の第6の実施の形態におけるトレース
装置が搭載された半導体装置の概略構成を示すブロック
図である。
【図7】 本発明の第7の実施の形態におけるトレース
装置が搭載された半導体装置の概略構成を示すブロック
図である。
【図8】 本発明の第8の実施の形態におけるトレース
装置が搭載された半導体装置の概略構成を示すブロック
図である。
【図9】 本発明の第9の実施の形態におけるトレース
装置が搭載された半導体装置の概略構成を示すブロック
図である。
【図10】 本発明の第10の実施の形態におけるトレ
ース装置が搭載された半導体装置の概略構成を示すブロ
ック図である。
【符号の説明】
1 CPU、2a〜2j イベントユニット、3a〜3
j トレースユニット、5 ICU、11 PC、21
a,21b,21c,23 ターゲットアドレスレジス
タ、22a,22b,22c 比較器、24 ターゲッ
トデータレジスタ、26 タイマ、31a,31b ス
イッチ、32,32a,32b,34レジスタ、33
カウンタ、35a,35b,35c ORゲート、2
5,36,36a,36b,36c,36d ANDゲ
ート、37,37a,37b,38 RS−FF、3
9,39’ トレースバッファ、41 アドレスバス、
42データバス、45 PAD、301,302 アド
レスバッファ、303 セレクタ、304 減算器、3
05 バッファ、306 トレース出力コントローラ。

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサをストールさせながらトレー
    ス情報を生成するフルトレースモードと、前記プロセッ
    サをストールさせずにトレース情報を生成するリアルタ
    イムトレースモードとを切替えてトレース情報を生成す
    るトレース装置であって、 所定の条件を満たす場合にイベントを発生させるイベン
    トユニットと、 前記イベントの発生を検出して、前記フルトレースモー
    ドと前記リアルタイムトレースモードとの切替えを行な
    ってトレース情報を生成するトレースユニットとを含
    む、トレース装置。
  2. 【請求項2】 前記トレースユニットは、イベントが発
    生したときにトレースモードをフルトレースモードから
    リアルタイムトレースモードへ切替えるのか、リアルタ
    イムトレースモードからフルトレースモードへ切替える
    のかを示す情報が格納されるレジスタを含む、請求項1
    記載のトレース装置。
  3. 【請求項3】 前記トレースユニットは、トレースモー
    ドが前記フルトレースモードおよびリアルタイムトレー
    スモードのいずれであるかを示す情報を保持して外部へ
    出力するレジスタを含む、請求項1または2記載のトレ
    ース装置。
  4. 【請求項4】 分岐トレースモード、データトレースモ
    ードおよび混在トレースモードのいずれかにトレースモ
    ードを切替えてプロセッサのトレース情報を生成するト
    レース装置であって、 所定の条件を満たす場合にイベントを発生させるイベン
    トユニットと、 前記イベントの発生を検出して、前記分岐トレースモー
    ド、前記データトレースモードおよび前記混在トレース
    モードの切替えを行なってトレース情報を生成するトレ
    ースユニットとを含む、トレース装置。
  5. 【請求項5】 前記トレースユニットは、イベントが発
    生したときにトレースモードを分岐トレースモード、デ
    ータトレースモードおよび混在トレースモードのいずれ
    に切替えるのかを示す情報が格納されるレジスタを含
    む、請求項4記載のトレース装置。
  6. 【請求項6】 プロセッサのトレース情報を生成して出
    力するトレース装置であって、 所定の条件を満たす場合にイベントを発生させるイベン
    トユニットと、 前記イベントの発生を検出して、絶対アドレスでトレー
    ス情報を生成するか、相対アドレスでトレース情報を生
    成するかを判定してトレース情報を生成するトレースユ
    ニットとを含む、トレース装置。
  7. 【請求項7】 前記トレースユニットは、イベントが発
    生したときに絶対アドレスでトレース情報を生成するモ
    ードから相対アドレスでトレース情報を生成するモード
    へ切替えるのか、相対アドレスでトレース情報を生成す
    るモードから絶対アドレスでトレース情報を生成するモ
    ードへ切替えるのかを示す情報が格納されるレジスタを
    含む、請求項6記載のトレース装置。
  8. 【請求項8】 前記トレースユニットは、今回のアドレ
    スを保持する第1のアドレスレジスタと、 前回のアドレスを保持する第2のアドレスレジスタと、 前記第1のアドレスレジスタに保持される今回のアドレ
    スから、前記第2のアドレスレジスタに保持される前回
    のアドレスを減算する減算器と、 前記イベントの発生を検出して、前記第1のアドレスレ
    ジスタに保持されるアドレスと、前記減算器によって減
    算されたアドレスとのいずれかを選択してトレース情報
    として出力するセレクタと、 前記セレクタから出力されたトレース情報を含んだパケ
    ットを生成して出力するトレースバッファとを含む、請
    求項6または7記載のトレース装置。
  9. 【請求項9】 前記トレースユニットは、アドレスを保
    持するアドレスレジスタと、 前記イベントの発生を検出して、前記アドレスレジスタ
    に保持されるアドレスと、前記アドレスレジスタに保持
    されるアドレスの所定の下位ビットとのいずれかを選択
    してトレース情報として出力するセレクタと、 前記セレクタから出力されたトレース情報を含んだパケ
    ットを生成して出力するトレースバッファとを含む、請
    求項6または7記載のトレース装置。
  10. 【請求項10】 前記イベントユニットは、ターゲット
    アドレスが設定されるターゲットアドレスレジスタと、 前記プロセッサのプログラムカウンタの値が前記ターゲ
    ットアドレスレジスタに設定されたターゲットアドレス
    と一致するときに、イベントを発生させる比較器とを含
    む、請求項1〜9のいずれかに記載のトレース装置。
  11. 【請求項11】 前記イベントユニットは、ターゲット
    アドレスが設定されるターゲットアドレスレジスタと、 前記プロセッサのオペランドアクセス時におけるアドレ
    スが前記ターゲットアドレスレジスタに設定されたター
    ゲットアドレスと一致するときに、イベントを発生させ
    る比較器とを含む、請求項1〜9のいずれかに記載のト
    レース装置。
  12. 【請求項12】 前記イベントユニットは、ターゲット
    データが設定されるターゲットデータレジスタと、 前記プロセッサのオペランドアクセスデータが前記ター
    ゲットデータレジスタに設定されたターゲットデータと
    一致するときに、イベントを発生させる比較器とを含
    む、請求項1〜9のいずれかに記載のトレース装置。
  13. 【請求項13】 前記イベントユニットは、ターゲット
    アドレスが設定されるターゲットアドレスレジスタと、 ターゲットデータが設定されるターゲットデータレジス
    タと、 アドレスバスに出力されたアドレス値と前記ターゲット
    アドレスレジスタに設定されたターゲットアドレスとの
    一致を検出する第1の比較器と、 データバスに出力されたデータと前記ターゲットデータ
    レジスタに設定されたターゲットデータとの一致を検出
    する第2の比較器と、 前記第1の比較器が一致を検出し、かつ前記第2の比較
    器が一致を検出するときにイベントを発生させる論理回
    路とを含む、請求項1〜9のいずれかに記載のトレース
    装置。
  14. 【請求項14】 前記イベントユニットは、割込み要因
    を検出して前記プロセッサに割込み要求を出力するとと
    もに、イベントを発生させる割込みコントロールユニッ
    トを含む、請求項1〜9のいずれかに記載のトレース装
    置。
  15. 【請求項15】 前記イベントユニットは、割込み要因
    を検出して前記プロセッサに割込み要求を出力する割込
    みコントロールユニットと、 前記割込みコントロールユニットによる割込み要求が予
    め定められた回数となったときにイベントを発生させる
    カウンタとを含む、請求項1〜9のいずれかに記載のト
    レース装置。
  16. 【請求項16】 前記イベントユニットは、予め定めら
    れた時間が経過したときにイベントを発生させるタイマ
    を含む、請求項1〜3のいずれかに記載のトレース装
    置。
  17. 【請求項17】 前記イベントユニットは、第1のター
    ゲットアドレスが設定される第1のターゲットアドレス
    レジスタと、 第2のターゲットアドレスが設定される第2のターゲッ
    トアドレスレジスタと、 前記プロセッサのプログラムカウンタの値と前記第1の
    ターゲットアドレスレジスタに設定された第1のターゲ
    ットアドレスとの一致を検出する第1の比較器と、 前記プロセッサのプログラムカウンタの値と前記第2の
    ターゲットアドレスレジスタに設定された第2のターゲ
    ットアドレスとの一致を検出する第2の比較器と、 前記第1の比較器が一致を検出した後、前記第2の比較
    器が一致を検出したときにイベントを発生させる論理回
    路とを含む、請求項1〜9のいずれかに記載のトレース
    装置。
JP2002102526A 2002-04-04 2002-04-04 トレース装置 Withdrawn JP2003296136A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002102526A JP2003296136A (ja) 2002-04-04 2002-04-04 トレース装置
US10/309,171 US20030192034A1 (en) 2002-04-04 2002-12-04 Trace device preventing loss of trace information which will be important in debugging

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002102526A JP2003296136A (ja) 2002-04-04 2002-04-04 トレース装置

Publications (1)

Publication Number Publication Date
JP2003296136A true JP2003296136A (ja) 2003-10-17

Family

ID=28672194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002102526A Withdrawn JP2003296136A (ja) 2002-04-04 2002-04-04 トレース装置

Country Status (2)

Country Link
US (1) US20030192034A1 (ja)
JP (1) JP2003296136A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014049131A (ja) * 2012-08-29 2014-03-17 Freescale Semiconductor Inc ウォッチポイントを取り扱うためのデータ・プロセッサ・デバイスおよびその方法
JP2020173543A (ja) * 2019-04-09 2020-10-22 ルネサスエレクトロニクス株式会社 半導体装置

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064685A1 (en) * 2002-09-27 2004-04-01 Hung Nguyen System and method for real-time tracing and profiling of a superscalar processor implementing conditional execution
US7463653B2 (en) * 2002-12-17 2008-12-09 Texas Instruments Incorporated Apparatus and method for compression of the timing trace stream
US7278063B2 (en) * 2003-07-10 2007-10-02 International Business Machines Corporation Method and system for performing a hardware trace
US7328429B2 (en) * 2003-11-13 2008-02-05 Intel Corporation Instruction operand tracing for software debug
US8266595B2 (en) * 2004-02-12 2012-09-11 International Business Machines Corporation Removal of asynchronous events in complex application performance analysis
US7496900B2 (en) * 2004-02-12 2009-02-24 International Business Machines Corporation Method for automatic detection of build regressions
US7519961B2 (en) * 2004-02-12 2009-04-14 International Business Machines Corporation Method and apparatus for averaging out variations in run-to-run path data of a computer program
GB0412943D0 (en) * 2004-06-10 2004-07-14 Ibm A system for logging diagnostic information
US20060129999A1 (en) * 2004-11-16 2006-06-15 Sony Computer Entertainment Inc. Methods and apparatus for using bookmarks in a trace buffer
JP2006164185A (ja) * 2004-12-10 2006-06-22 Matsushita Electric Ind Co Ltd デバッグ装置
US20060255978A1 (en) * 2005-05-16 2006-11-16 Manisha Agarwala Enabling Trace and Event Selection Procedures Independent of the Processor and Memory Variations
US7788645B2 (en) * 2005-05-16 2010-08-31 Texas Instruments Incorporated Method for guaranteeing timing precision for randomly arriving asynchronous events
US7813288B2 (en) * 2005-11-21 2010-10-12 Intel Corporation Transaction detection in link based computing system
US7523353B2 (en) * 2005-11-21 2009-04-21 Intel Corporation Method for detecting hang or dead lock conditions
US7606999B2 (en) * 2006-05-16 2009-10-20 Texas Instruments Incorporated Merging branch information with sync points
JP5376509B2 (ja) 2009-03-16 2013-12-25 スパンション エルエルシー 実行履歴トレース方法
US8561033B2 (en) * 2010-07-30 2013-10-15 International Business Machines Corporation Selective branch-triggered trace generation apparatus and method
US20120042212A1 (en) 2010-08-10 2012-02-16 Gilbert Laurenti Mixed Mode Processor Tracing
US9495169B2 (en) * 2012-04-18 2016-11-15 Freescale Semiconductor, Inc. Predicate trace compression
US11016773B2 (en) * 2019-09-27 2021-05-25 Intel Corporation Processor trace extensions to facilitate real-time security monitoring

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448717A (en) * 1993-07-06 1995-09-05 Intel Corporation Transparently inserting wait states into memory accesses when microprocessor in performing in-circuit emulation
US5889981A (en) * 1996-05-07 1999-03-30 Lucent Technologies Inc. Apparatus and method for decoding instructions marked with breakpoint codes to select breakpoint action from plurality of breakpoint actions
US5724505A (en) * 1996-05-15 1998-03-03 Lucent Technologies Inc. Apparatus and method for real-time program monitoring via a serial interface
US5751735A (en) * 1996-11-14 1998-05-12 Hewlett-Packard Company Integrated debug trigger method and apparatus for an integrated circuit
US6618775B1 (en) * 1997-08-15 2003-09-09 Micron Technology, Inc. DSP bus monitoring apparatus and method
US6145123A (en) * 1998-07-01 2000-11-07 Advanced Micro Devices, Inc. Trace on/off with breakpoint register
JP3583937B2 (ja) * 1998-12-28 2004-11-04 富士通株式会社 情報処理装置
US6609247B1 (en) * 2000-02-18 2003-08-19 Hewlett-Packard Development Company Method and apparatus for re-creating the trace of an emulated instruction set when executed on hardware native to a different instruction set field
JP2003263337A (ja) * 2002-03-08 2003-09-19 Seiko Epson Corp デバック機能内蔵型マイクロコンピュータ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014049131A (ja) * 2012-08-29 2014-03-17 Freescale Semiconductor Inc ウォッチポイントを取り扱うためのデータ・プロセッサ・デバイスおよびその方法
JP2020173543A (ja) * 2019-04-09 2020-10-22 ルネサスエレクトロニクス株式会社 半導体装置
JP7120957B2 (ja) 2019-04-09 2022-08-17 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
US20030192034A1 (en) 2003-10-09

Similar Documents

Publication Publication Date Title
JP2003296136A (ja) トレース装置
KR100439781B1 (ko) 데이터프로세서와그동작방법,그디버깅동작실행방법및그중단점값수정방법
KR100350568B1 (ko) 디버그기능을수행하기위한데이타처리시스템및방법
US6839654B2 (en) Debug interface for an event timer apparatus
JP2752592B2 (ja) マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
JP5419103B2 (ja) デバッグイベントを監視するためのシステム及び方法
US5717851A (en) Breakpoint detection circuit in a data processor and method therefor
US6760864B2 (en) Data processing system with on-chip FIFO for storing debug information and method therefor
JPH10333939A (ja) マイクロプロセッサ
US20050223292A1 (en) Single instruction type based hardware patch controller
CN114003365A (zh) 用于risc-v架构的快速中断系统
US6349388B1 (en) Timer processing engine for supporting multiple virtual minimum time timers
JP2011134162A (ja) タスクの切り換えを制御するシステムおよび方法
JPS62179033A (ja) 集積回路マイクロプロセツサ
JP3590282B2 (ja) スーパースカラーマイクロプロセッサーの停止点インターラプト発生装置
US6510507B1 (en) Page address look-up range ram
JP2011028308A (ja) 半導体装置及びソフトウェア開発支援装置
JPH08171504A (ja) エミュレ−ション装置
JP2001084161A (ja) データ処理装置
JP4044455B2 (ja) デバッグサポート装置
JP2664644B2 (ja) マイクロプロセッサのリセット方法
JP2701799B2 (ja) マイクロコンピュータ
JP2000010816A (ja) デバッグ用トレース装置
JP2734382B2 (ja) インサーキットエミュレータおよびそのデバッグ方法
JPH036758A (ja) マイクロプロセッサ

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050607