JPH0748183B2 - トレース回路 - Google Patents

トレース回路

Info

Publication number
JPH0748183B2
JPH0748183B2 JP1252598A JP25259889A JPH0748183B2 JP H0748183 B2 JPH0748183 B2 JP H0748183B2 JP 1252598 A JP1252598 A JP 1252598A JP 25259889 A JP25259889 A JP 25259889A JP H0748183 B2 JPH0748183 B2 JP H0748183B2
Authority
JP
Japan
Prior art keywords
address
latch
loop
trace
comparator
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.)
Expired - Lifetime
Application number
JP1252598A
Other languages
English (en)
Other versions
JPH03113646A (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.)
Yokogawa Electric Corp
Original Assignee
Yokogawa 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 Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP1252598A priority Critical patent/JPH0748183B2/ja
Publication of JPH03113646A publication Critical patent/JPH03113646A/ja
Publication of JPH0748183B2 publication Critical patent/JPH0748183B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はトレース回路に関し、特に、マイクロプロセッ
サ用インサーキットエミュレータ等に具備されるプログ
ラム実行トレース回路に関する。
(従来の技術) 従来のインサーキットエミュレータのトレース回路は、
トレース開始から常にマイクロプロセッサのバスアクセ
スをトレースし、トレースメモリ(通常、数Kステップ
程度を記憶可能)にサイクリックに記憶していき、トレ
ース終了条件が成立した時にトレースメモリへの書込み
を停止するようになっている。
(発明が解決しようとする課題) 調べたい個所とトレース終了条件が成立する個所の間で
は、通常の場合、多くの命令が実行される。その間でル
ープが実行されると、従来の方法では、ループの実行結
果ばかりがトレースメモリに残ることになり、調べたい
個所をトレースできない場合があった。
例えば第5図(a)に示すように、トレース条件が成立
するまでにループ(G−H間)を何回も実行する必要が
あるとする。この場合、トレースメモリにプログラム実
行結果をすべて書込んでいき、容量オーバーとなると最
初のメモリーアドレスに戻ってオーバーライトしていく
とすると、最終的にはループの実行結果ばかりが記録さ
れ、調べたい個所Fの実行結果は消えてしまい、トレー
スできない。
また、このような問題を回避するためには大量のトレー
スメモリが必要となり、回路規模が大型化し、専有面積
の増大を招く等の問題があった。本発明は上述した問題
点に鑑みてなされたものであり、その目的は、ループの
実行による有効なトレースデータの実質的な減少を防止
し、トレースメモリを最大限に活用できるトレース回路
を提供することにある。
(課題を解決するための手段) 本発明は、 ターゲットシステムに命令を実行させ、該ターゲットシ
ステムのバスアクセスをモニターしながらデータバスお
よびアドレスバスの状態をトレースメモリに記録するト
レース回路において、 命令フェッチサイクル毎に1ずつ加算されていくアドレ
スを保持する第1のラッチと、 トレース開始から終了に至るまでに実行されるループの
先頭アドレスを記憶しているループアドレスレジスタ
と、 該ループアドレスレジスタの記憶しているループ先頭ア
ドレスと、ターゲットシステムのアドレスバスの現在の
命令アドレスとの一致を検出する第1の比較器と、 現在の命令アドレスの直前の命令アドレスに1を加算し
た命令アドレスを保持する第2のラッチと、 該第2のラッチに保持した命令アドレスと現在の命令ア
ドレスとを比較することにより、現在の命令アドレスが
直前の命令アドレスに連続するアドレスであるか、ある
いは不連続なアドレスであるかを検出する第2の比較器
と、 前記第1の比較器により一致が検出され、かつ前記第2
の比較器により現在の命令アドレスと直前の命令アドレ
スとが連続であることが検出された場合に、前記第1の
ラッチに保持されたアドレスを保持する第3のラッチ
と、 前記第1の比較器により一致が検出され、かつ前記第2
の比較器により現在の命令アドレスと直前の命令アドレ
スとが連続であることが検出された場合に、前記第1の
ラッチが保持しているアドレスを前記トレースメモリへ
の書込みアドレスとして選択し、前記第1の比較器によ
り一致が検出され、かつ前記第2の比較器により現在の
命令アドレスと直前の命令アドレスとが不連続であるこ
とが検出された場合に、前記第3のラッチが保持してい
るアドレスを前記トレースメモリへの書込みアドレスと
して選択するセレクタと、 を具備したことを特徴とするトレース回路である。
(作用) あらかじめループアドレスレジスタに登録されているル
ープ先頭アドレスに実際の実行アドレスが到達すると、
それがプログラムをシーケンシャルに実行した結果始め
て到達したものであるか、あるいはループを実行するた
めに分岐命令によってループ先頭に分岐してきた結果で
あるかを検出し、ループ先頭に分岐してきた場合には、
この実行結果をトレースメモリの新たな番地に書込ま
ず、一番最初にシーケンシャルに実行した時のデータが
記憶されている番地にオーバーライトすることにより、
ループの実行部分が重複してトレースメモリに記録され
ないようにし、メモリの有効利用を達成する。
(実施例) 次に、本発明の実施例について図面を参照して説明す
る。
第1図は本発明のトレース回路の一実施例のブロック図
である。
本実施例は、ターゲットマイクロプロセッサのデータバ
スおよびアドレスバスの状態を記録するトレースメモリ
1と、命令フェッチサイクルであることを検出するデコ
ーダ2と、現在実行中の命令アドレスに1を加算する加
算器3aと、そのアドレスを保持するラッチ4と、ループ
先頭アドレスを保持するループアドレスレジスタ5と、
現在の命令アドレスを、直前の命令アドレスに1を加算
したものおよびループ先頭アドレスと比較して一致を検
出するコンパレータ6b,6aと、トレースメモリへの書込
みアドレスを保持するラッチ7と、ループ先頭アドレス
をトレースメモリに書込んだときのトレースメモリアド
レスを保持するラッチ8と、トレースメモリアドレスを
通常の命令実行の場合と、ループ先頭への分岐が起きた
場合とで切り換えるセレクタ9と、次のトレースメモリ
アドレスを生成するための加算器3bと、ループの回数を
カウントするループカウンタ11とから構成されている。
以上の回路により、通常の命令実行では、トレースメモ
リアドレスを+1ずつインクリメントしながら、トレー
スを行い、ループ先頭命令をシーケンシャルに実行した
場合には、その時のトレースメモリアドレスを記憶し
(ラッチ8)、ループ先頭命令へ分岐して来て実行した
場合には、トレースメモリアドレスを、前にループ先頭
命令を格納したトレースメモリアドレス(ラッチ8の内
容)に設定することにより、ループ実行部分は最新の実
行結果のみトレースする機能を実現したものである。
各回路の機能は以下のとおりである。
トレースメモリ1は、データ、アドレスおよびループ先
頭に分岐してきたことを示すビットを記憶する。
デコーダ2は、命令フェッチサイクルであればFETCHをL
OWにする。
加算器3a,3bはアドレスに1を加算する。
ラッチ4は、直前の命令フェッチサイクルのアドレス+
1を保持する。
ループアドレスレジスタ5には、ループ先頭アドレスを
設定しておく。
コンパレータ6a,6bは、アドレスの一致を検出する。こ
れらのコンパレータ6a,6bは、FETCHにより制御され、命
令フェッチサイクルでのみ動作する。
ラッチ7は、トレースメモリの書込みアドレスを保持す
る。
ラッチ8は、ループ先頭が実行されたときのトレースメ
モリアドレスを保持する。
セレクタ9は、通常はラッチ7のアドレスをトレースメ
モリアドレスとして与える。ループ先頭へ分岐してきた
場合は、ラッチ8をセレクトする。
ループカウンタ11は、ループの実行回数をカウントす
る。
ここで、請求範囲でいう第1のラッチ、第2のラッチ、
第3のラッチ、第1の比較器、第2の比較器は、それぞ
れ、ラッチ7、ラッチ4、ラッチ8、コンパレータ6a、
コンパレータ6bに相当する。
次に、本実施例の動作を第2図および第3図を用いて具
体的に説明する。
(1) ループ先頭をシーケンシャルに実行した場合 ループアドレスレジスタ5に設定されているループ先頭
アドレスNと現在のアドレスとが一致すると比較器6aか
ら出力される信号HITが一時的にローレベルとなる(す
なわち負パルスが出力される)。また、現在のアドレス
とラッチ4の出力(直前のアドレス+1)とが共にNで
あり、一致しているため、CONTもローレベルとなって負
パルスが出力される。これにより、ナンドゲートT1の出
力がローレベルとなってサンプリングパルスがラッチ8
に供給され、ループ先頭データを格納したトレースメモ
リのアドレスTがこのラッチ8に保持される。
すなわち、ナンドゲートT2の出力はハイレベル(“1")
であるため、セレクタの出力YはA端子の入力(ラッチ
7の出力T)に等しくこのラッチ7の出力Tがトレース
メモリへの書込みアドレスとなり、一方で、このアドレ
スTが後のループ実行に備えてラッチ8に保持される。
(2) ループ先頭に分岐してきた場合 この場合、ループ先頭アドレス(現在のアドレス)Nと
ラッチ4の出力アドレスM+1とが一致しないためCONT
はハイレベルを維持する。これにより、ナンドゲートT2
の出力がローレベル(“0")となってセレクタ9はラッ
チ8の出力アドレスを選択する。すなわち、ラッチ8の
内容Tがトレースメモリの書込みアドレスとなり、ラッ
チ7にT+1をロードして、以下シーケンシャルに実行
した場合と同じアドレスにデータがオーバーライトされ
る。
第4図(a),(b)は本実施例のトレース動作の一例
を示す図である。
同図(a)のようなプロセッサ動作が行なわれる場合、
ループが実行される部分B,Dは、最新のループ実行結果
のみがトレースメモリに残り、それ以前のものはオーバ
ーライトられる(同図(b))。
この場合、ループカウンタ11は、トレース終了後、ルー
プDのループ実行回数を保持している。
また、ループB,Dの先頭では、ループ先頭への分岐があ
ったことを示すビットがオンになっている。
以上、本発明を実施例を用いて説明したが、本発明はこ
れに限定されるものでなく、種々、変形、応用が可能で
ある。例えば、ループアドレスレジスタを含む検出回路
を複数設け、多重ループおよび複数シーケンシャルルー
プにも対応可能とすることもできる。
また、本発明はインサーキットエミュレータのトレース
回路だけではなく、例えば、マイクロプログラムのトレ
ース回路等にも利用できる。
(発明の効果) 以上説明したように本発明は、トレース中に、あらかじ
め登録しておいたループがあると、これをリアルタイム
に検出して、ループの実行部分が重複してトレースメモ
リに記録されないようにすることにより、メモリを有効
に利用するトレース機能を実現できる効果がある。
これにより、従来のトレース機能ではとらえられなかっ
た現象も、トレースメモリの容量を増大させることなく
トレースすることが可能となる。
【図面の簡単な説明】 第1図は本発明のトレース回路の一実施例のブロック
図、 第2図はループ先頭をシーケンシャルに実行した場合の
動作を説明するためのタイミングチャート、 第3図はループ先頭に分岐してきた場合の動作を説明す
るためのタイミングチャート、 第4図(a),(b)は第1図の実施例のトレース動作
の一例を示す図であり、(a)はターゲットプロセッサ
の動作、(b)はトレースメモリの内容を示す図であ
り、 第5図(a),(b)は従来例のトレース動作の一例を
示す図である。 1……トレースメモリ、2……デコーダ 3a,3b……1加算器、4……ラッチ 5……ループアドレスレジスタ 6a,6b……比較器、7,8……ラッチ 9……セレクタ、11……ループカウンタ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】ターゲットシステムに命令を実行させ、該
    ターゲットシステムのバスアクセスをモニターしながら
    データバスおよびアドレスバスの状態をトレースメモリ
    に記録するトレース回路において、 命令フェッチサイクル毎に1ずつ加算されていくアドレ
    スを保持する第1のラッチと、 トレース開始から終了に至るまでに実行されるループの
    先頭アドレスを記憶しているループアドレスレジスタ
    と、 該ループアドレスレジスタの記憶しているループ先頭ア
    ドレスと、ターゲットシステムのアドレスバスの現在の
    命令アドレスとの一致を検出する第1の比較器と、 現在の命令アドレスの直前の命令アドレスに1を加算し
    た命令アドレスを保持する第2のラッチと、 該第2のラッチに保持した命令アドレスと現在の命令ア
    ドレスとを比較することにより、現在の命令アドレスが
    直前の命令アドレスに連続するアドレスであるか、ある
    いは不連続なアドレスであるかを検出する第2の比較器
    と、 前記第1の比較器により一致が検出され、かつ前記第2
    の比較器により現在の命令アドレスと直前の命令アドレ
    スとが連続であることが検出された場合に、前記第1の
    ラッチに保持されたアドレスを保持する第3のラッチ
    と、 前記第1の比較器により一致が検出され、かつ前記第2
    の比較器により現在の命令アドレスと直前の命令アドレ
    スとが連続であることが検出された場合に、前記第1の
    ラッチが保持しているアドレスを前記トレースメモリへ
    の書込みアドレスとして選択し、前記第1の比較器によ
    り一致が検出され、かつ前記第2の比較器により現在の
    命令アドレスと直前の命令アドレスとが不連続であるこ
    とが検出された場合に、前記第3のラッチが保持してい
    るアドレスを前記トレースメモリへの書込みアドレスと
    して選択するセレクタと、 を具備したことを特徴とするトレース回路。
JP1252598A 1989-09-28 1989-09-28 トレース回路 Expired - Lifetime JPH0748183B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1252598A JPH0748183B2 (ja) 1989-09-28 1989-09-28 トレース回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1252598A JPH0748183B2 (ja) 1989-09-28 1989-09-28 トレース回路

Publications (2)

Publication Number Publication Date
JPH03113646A JPH03113646A (ja) 1991-05-15
JPH0748183B2 true JPH0748183B2 (ja) 1995-05-24

Family

ID=17239598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1252598A Expired - Lifetime JPH0748183B2 (ja) 1989-09-28 1989-09-28 トレース回路

Country Status (1)

Country Link
JP (1) JPH0748183B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155570B1 (en) 2000-09-29 2006-12-26 Intel Corporation FIFO write/LIFO read trace buffer with software and hardware loop compression
JP2002163127A (ja) * 2000-11-27 2002-06-07 Mitsubishi Electric Corp トレース制御回路
JP5569343B2 (ja) * 2010-11-04 2014-08-13 富士通セミコンダクター株式会社 トレース圧縮装置、トレース圧縮プログラム
GB2548603B (en) * 2016-03-23 2018-09-26 Advanced Risc Mach Ltd Program loop control

Also Published As

Publication number Publication date
JPH03113646A (ja) 1991-05-15

Similar Documents

Publication Publication Date Title
US7886198B2 (en) Method and system of identifying overlays used by a program
WO2009045628A1 (en) System and method for monitoring debug events
US20080016415A1 (en) Evaluation system and method
JPH03204737A (ja) 信号処理プロセッサのデバッグ回路
US6212493B1 (en) Profile directed simulation used to target time-critical crossproducts during random vector testing
JPH0748183B2 (ja) トレース回路
US5386521A (en) Instruction prefetching circuit with a next physical address precalculating circuit
JPS6142186Y2 (ja)
JPH03184135A (ja) データ処理装置
JPH04287242A (ja) 履歴情報記憶装置
JPH11219293A (ja) アドレストレース方法及びトレーサメモリ制御装置
JPH04195552A (ja) アドレストレーサ
JP3168657B2 (ja) 分岐命令制御回路
US20020083309A1 (en) Hardware spill/fill engine for register windows
JPH0475147A (ja) 情報処理システムにおける時間監視装置
JP2001005689A (ja) トレース採取回路
JP2004348635A (ja) プログラム開発方法
JPS63643A (ja) プログラムデバツグ方式
JP2665173B2 (ja) プロセッサトラップ回路
JPS626341A (ja) 情報処理装置
JPS59180759A (ja) ヒストリメモリの制御方式
JPS6270947A (ja) デバグ割込み制御方式
JPS63123140A (ja) 履歴情報記憶装置
JPH02156351A (ja) キャッシュメモリ装置
JPH03163626A (ja) マイクロコンピュータ