JPH0210441A - トレース回路 - Google Patents

トレース回路

Info

Publication number
JPH0210441A
JPH0210441A JP63162088A JP16208888A JPH0210441A JP H0210441 A JPH0210441 A JP H0210441A JP 63162088 A JP63162088 A JP 63162088A JP 16208888 A JP16208888 A JP 16208888A JP H0210441 A JPH0210441 A JP H0210441A
Authority
JP
Japan
Prior art keywords
trace
instruction
circuit
address
program
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
JP63162088A
Other languages
English (en)
Inventor
Tatsuo Owada
達男 大和田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP63162088A priority Critical patent/JPH0210441A/ja
Publication of JPH0210441A publication Critical patent/JPH0210441A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はトレース回路に関し、特に実行した命令の存在
する命令アドレスを記憶するトレース回路に関する。
〔従来の技術〕
従来、この種のトレース回路は、命令アドレスを示すプ
ログラムカウンタが更新される毎にプログラムカウンタ
から命令アドレスを取り出してトレースメモリに記憶す
る機能を有していた。
第3図は、従来のトレース回路の一例の構成を示すブロ
ック図である。
このトレース回路は、メモリlと、プログラムカウンタ
2と、メモリ1から命令を読み出す命令読出し回路3と
、命令実行回路4と、命令アドレスを順次記憶するトレ
ースメモリ11(容量は命令アドレスの8個分である)
と、プログラムカウンタ2が更新されると更新された命
令アドレスを取り出しトレースメモ1月1に書き込むト
レースライト回路29と、データ信号線12.13.1
4.16.17゜26、27.30および31とを含ん
で構成されている(第1図に示す本発明のトレース回路
の一実施例と同一の構成要素については第1図と同一の
符号により示している)。
次に、このように構成された従来のトレース回路の一例
の動作について説明する。なお、ここでは第2図に示す
プログラムのトレース(実行の流れの追跡)が行われる
場合の動作について説明する。
説明に先立って、第2図に示すプログラムについて述べ
る。
このプログラムは、ステップ40〜50の命令を含んで
構成されている。
ステップ40.42.44.46.48.49および5
0は、任意の命令を示している。
ステップ41.43および47は、それぞれジャンプ命
令JA、JBおよびJ(B+1)を示している。
ステップ45は、条件ジャンプ命令JC(3回目の実行
で条件が成立して命令アドレス(以下、ステップ40〜
50の命令の命令アドレスについては単にアドレスとい
う)Cにジャンプする命令であるものとする)を示して
いる。
ステップ40〜50の各命令の左側の文字X、  <X
+1)、A、  (A+1)、B、  (B+1)、 
 (B+2)、(B+3)、C,(C+1)および(C
+2)はメモリ1上で各命令の存在するアドレスを示し
ている。
このプログラムの実行において、プログラムカウンタ2
がアドレスXを示したとすると、命令読出し回路3はス
テップ40の命令をメモリ1から読み出して命令実行回
路4に送出する。
命令実行回路4は、ステップ40の命令を実行した後に
プログラムカウンタ2に更新指示を送出すこの更新指示
に基づいてプログラムカウンタ2が次のアドレスX+1
を示すことにより、トレースライト回路29はプログラ
ムカウンタ2がらアドレス(X+1)を取り出してこれ
をトレースメモ!J11に書き込む。
プログラムカウンタ2がアドレス(X+1)に更新され
たことにより、命令読出し回路3はアドレス(X+1)
に存在するステップ41の命令(JA)を読み出す。
命令実行回路4は、この命令(JA)に基づいてプログ
ラムカウンタ2をアドレスAに更新する。
トレースライト回路29は、このアドレスAをプログラ
ムカウンタ2から取り出してこれをトレースメモリ11
に書き込む。
以下同様に、ステップ42〜50の命令が実行され、ト
レースメモリ11にアドレス(A+1)、B、  (B
+1>、  (B+2)、  (B+3)、  (B+
1.)。
(B+2)、  (B+3)、  (B+1)、C,(
C+1)および(C+2)が書き込まれる。
この時点において命令読出し回路3にデータ信号線14
から実行停止指示が出され、それによりステップ50の
命令の実行が中止される。
その後にトレースメモ1月1をデータ信号線26から読
み出すと、(B+3)、  (B+1)   (B+2
)、  (B+3)、  (B+1)、C,(C+1)
および(C+2)の8個のアドレスを読み出すことがで
きる(アドレス(B+1)および(B+3)が重複して
記憶されているのに反し、それ以前ムこ実行された命令
のアドレスは消失しておりトレースの対象とすることが
できない)。
〔発明が解決しようとする課題〕
上述した従来のトレース回路は、プログラムカウンタ(
第3図におけるプログラムカウンタ2等)が更新される
毎にプログラムカウンタから命令アドレスを取り出して
その全てをトレースメモリ(第3図におけるトレースメ
モ1月1等)に記憶する機能を有しているので、同じ命
令を何度も繰り返すような構成(繰返し部分)がプログ
ラム中に存在するとその繰返し部分の命令アドレスを重
複して記憶することでトレースメモリの容量が使われて
しまいトレース回路の目的であるプログラムの流れの追
跡に支障をきたすという欠点がある(プログラムの流れ
を変える命令以外の命令の命令アドレスの記憶(記憶し
なくてもトレース回路の目的を達成することができる)
によってもトレースメモリの容量を無駄に使用すること
になる)。
本発明の目的は、上述の点に鑑み、プログラムの流れを
変える命令の命令アドレスのみを重複しないようにトレ
ースメモリに書き込むことができ、特に繰返し部分が存
在するプログラムのトレースを少ない容量のトレースメ
モリの使用によって可能にすることができるトレース回
路を提供することにある。
〔課題を解決するための手段〕
本発明のトレース回路は、プログラムカウンタ中の命令
アドレスをトレースメモリに記憶するトレース回路にお
いて、命令アドレスを保持しその命令アドレスをトレー
スメモリに書き込むトレース保持出力部と、このトレー
ス保持出力部によるトレースメモリへの命令アドレスの
書込みに基づき保持している命令アドレスを前記トレー
ス保持出力部に格納してプログラムカウンタから命令ア
ドレスを取り込んで保持し命令アドレスの入力指示に基
づきプログラムカウンタから命令アドレスを取り込んで
保持するトレース入力回路と、このトレース入力回路に
保持されている命令アドレスと前記トレース保持出力部
に保持されている命令アドレスとを比較し一致する場合
には一致信号を発生する比較回路と、プログラムの流れ
を変える命令の実行の検出に基づきトレースメモリへの
命令アドレスの書込み指示を前記トレース保持出力部に
送出し前記比較回路により発生された一致信号の検出お
よびプログラムの流れを変える命令の実行の検出に基づ
き命令アドレスの入力指示を前記トレース入力回路に送
出するトレース制御回路とを有する。
〔作用〕
本発明のトレース回路では、トレース保持出力部が命令
アドレスを保持しその命令アドレスをトレースメモリに
書き込み、トレース入力回路がトレース保持出力部によ
るトレースメモリへの命令アドレスの書込みに基づき保
持している命令アドレスをトレース保持出力部に格納し
てプログラムカウンタから命令アドレスを取り込んで保
持し命令アドレスの人力指示に基づきプログラムカウン
タから命令アドレスを取り込んで保持し、比較回路がト
レース入力回路に保持されている命令アドレスとトレー
ス保持出力部に保持されている命令アドレスとを比較し
一致する場合には一致信号を発生し、1トレ一ス制御回
路がプログラムの流れを変える命令の実行の検出に基づ
きトレースメモリへの命令アドレスの書込み指示をトレ
ース保持出力部に送出し比較回路により発生された一致
信号の検出およびプログラムの流れを変える命令の実行
の検出に基づき命令アドレスの入力指示をトレース入力
回路に送出する。
〔実施例〕
次に、本発明について図面を参照して説明する。
第1図は、本発明のトレース回路の一実施例の構成を示
すブロック図である。本実施例のトレース回路は、メモ
リlと、プログラムカウンタ2と、命令読出し回路3と
、命令実行回路4と、トレース入力回路5と、トレース
制御回路6と、トレースバッファ7と、トレース出力回
路8と、比較回路9および10と、トレースメモ1月1
とを含んで構成されている(トレースバッファ7とトレ
ース出力回路8とによりトレース保持出力部が構成され
ている)。
メモリ1は、データ信号線12を介してプログラムカウ
ンタ2と接続され、データ信号綿13を介して命令読出
し回路3と接続されている。
プログラムカウンタ2は、既述の接続の他に、データ信
号線27を介して命令読出し回路3と接続され、データ
信号線16を介して命令実行回路4と接続され、データ
信号線15を介してトレース入力回路5と接続されてい
る。
命令読出し回路3は、既述の接続の他に、データ信号線
17を介して命令実行回路4と接続されている。
命令実行回路4は、既述の接続の他に、データ信号線1
9を介してトレース制御回路6と接続されている。
トレース入力回路5は、既述の接続の他に、データ信号
線20を介してトレース制御回路6と接続され、データ
信号線21を介してトレースバッファ7ならびに比較回
路9およびlOと接続されている。
トレース制御回路6は、既述の接続の他に、データ信号
線23を介してトレース出力回路8と接続され、データ
信号線18を介して比較回路9およびIOと接続されて
いる。
トレースバッファ7は、既述の接続の他に、データ信号
線24を介してトレース出力回路8と接続され、データ
信号線22を介して比較回路9と接続されている。
トレース出力回路8は、既述の接続の他に、データ信号
線25を介して比較回路10およびトレースメモリ11
と接続されている。
さらに、トレース信号線14が命令読出し回路3に接続
され、データ信号線26がトレースメモリ11に接続さ
れ、データ信号線28がトレース出力回路8に接続され
ている。
なお、以下の説明においては、特に必要な場合以外は1
2〜2Bの符号で示されるデータ信号線には言及しない
次に、このように構成された本実施例のトレース回路の
動作について説明する。なお、ここでは第2図に示すプ
ログラムのトレースが行われる場合の動作について説明
する。また、トレースメモ1月1は8個の命令アドレス
を記憶することができ(容量が命令アドレスの8個分で
ある)、トレースバッファ7に保持できる命令アドレス
の数は1であるものとする(トレースバッファ7に保持
できる命令アドレスの数は任意の正整数Nに設定するこ
とができる(この場合には、比較回路8および9のよう
な比較回路は(N+1>個存在することになる)。また
、トレースバッファ7が存在せずにトレース出力回路8
のみでもトレース保持出力部を構成するとか可能であり
本発明のトレース回路を実現することができる(この場
合には、比較回路は比較回路10の1個のみになる))
第2図に示すプログラムの実行において、プログラムカ
ウンタ2がアドレスXを示したとすると、命令続出し回
路3はステップ4oの命令をメモリ1から読み出して命
令実行回路4に送出する。
命令実行回路4はステップ40の命令を実行し、プログ
ラムカウンタ2はアドレス(X+1)に更新される。
次に、命令実行回路4がアドレス(X+1)に存在する
ステップ41の命令(JA)を実行し、プログラムカウ
ンタ2がアドレスAに更新され、命令実行回路4がトレ
ース制御回路6にプログラムの流れを変える命令を実行
したことを通知する。
トレース制御回路6は、この通知(プログラムの流れを
変える命令の実行の検出)に基づいてトレース出力回路
8に命令アドレスの書込みを指示する。
この書込み指示に基づいてトレース出力回路8からトレ
ースメモリ11に命令アドレスが書き込まれると、トレ
ースバッファ7は保持している命令アドレスをトレース
出力回路8に格納し、トレース入力回路5は保持してい
る命令アドレスをトレースバッファ7に格納した後にプ
ログラムカウンタ2中のアドレスAを入力する。
アドレスAに存在するステップ42の命令についても同
様に処理が行われ、続いてプログラムの流れを変える命
令であるステップ43の命令(JB)が実行される。
この実行の後にプログラムカウンタ2がアドレスBに更
新され、命令実行回路4がトレース制御回路6にプログ
ラムの流れを変える命令を実行したことを通知する。
この通知に基づいて、トレース制御回路6がトレース出
力回路8に命令アドレスの書込みを指示し、この書込み
指示に基づいてトレース出力回路8がトレースメモリ1
1に命令アドレスを書き込む。
この書込みに基づいて、トレースバッファ7にトレース
入力回路5に保持されていたアドレスAが格納され、ト
レース入力回路5にプログラムカウンタ2中のアドレス
Bが格納される。
さらに、ステップ44〜46の命令が実行された後にプ
ログラムの流れを変える命令であるステ・7プ47の命
令(J (B+1))が実行されると、トレース出力回
路8にトレースバッファ7に保持されていたアドレスA
が格納され、トレースバッファ7にトレース入力回路5
に保持されていたアドレスBが格納され、トレース入力
回路5にプログラムカウンタ2中のアドレス(B+1)
が格納される。
続いて、ステップ45および46の命令が実行された後
に、ステップ47の命令(J(B+1))が実行される
と、トレースメモリ11にトレース出力回路8に保持さ
れていたアドレスAが書き込まれ、トレース出力回路8
にトレースバッファ7に保持されていたアドレスBが格
納され、トレースバッファ7にトレース入力回路5に保
持されていたアドレス(B+1)が格納され、トレース
入力回路5にプログラムカウンタ2中のアドレス(B+
1)が格納される。
ここで、トレースバ・ノファ7とトレース入力回路5と
に同一のアドレス(B+1)が格納されたことになるの
で、比較回路9はその旨を示す一致信号を発生しトレー
ス制御回路6にその一致信号を送出する。
次に、ステップ45の命令(J C)が実行され、条件
(この命令(JC)の3回目の実行)が成立したために
プログラムカウンク2がアドレスCに更新される。
ステップ45の命令(J C)がプログラムの流れを変
える命令になったので、命令実行回路4はトレース制御
回路6にプログラムの流れを変える命令を実行したこと
を通知する。
ここで、トレース制御回路6は比較回路9から一致13
号を受けているために(一致信号の検出およびプログラ
ムの流れを変える命令の実行の検出に基づいて)、トレ
ース出力回路8に対する命令アドレスの書込み指示を与
えることなく、トレース入力回路5に命令アドレスの入
力指示を送出する。したがって、トレースメモリ11.
トレース出力回路8およびトレースバッファ7は不変で
あるが、トレース入力回路5にプログラムカウンタ2中
のアドレスCが格納される。
さらに、ステップ48および49の命令が実行された後
にステップ50の命令が読み出され実行された時点で、
データ信号線14から命令読出し回路3に実行停止指示
が出され、データ信号線2Bからトレース出力回路8に
命令アドレスの書込み指示が3回与えられる。
これにより、ステップ50の命令の実行が中止され、ト
レース出力回路8に格納されているアドレスB、  ト
レースバッファ7に格納されているアドレス(B+1)
、)レース入力回路5に格納されているアドレスCが順
次トレースメモリ11に書き込まれる。
上述の処理によりトレースされたトレースメモリ11の
内容をデータ信号線26を使用して読み出すと、アドレ
スA、B、  (B+1)およびCを参照することがで
きる。
〔発明の効果〕
以上説明したように本発明は、プログラムの流れを変え
る命令の実行があった場合にプログラムカウンタ中の命
令アドレスを取り出し−、この命令アドレスとすでにト
レース保持出力部に取り出されている命令アドレスとを
比較し同一であった場合には取り出した命令アドレスを
トレースメモリに書き込まないように制御することによ
り、同じ命令が何度も繰り返して実行されるような構成
のプログラムのトレースを少ない容量のトレースメモリ
の使用によって可能にすることができるという効果があ
る(上述のような構成以外のプログラムのトレースにつ
いても、プログラムの流れを変える命令の命令アドレス
のみをトレースメモリに書き込むことにより、トレース
メモリの容量を有効に使用することができるという効果
がある)。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、 第2図は第1図に示すトレース回路によりトレースが行
われるプログラムの一例を示す流れ図、第3図は従来の
トレース回路の一例の構成を示すブロック図である。 図において、 1・・・メモリ、 2・ ・・プログラムカウンタ、 3・・・命令読出し回路、 4・・・命令実行回路、 5・・・トレース入力回路、 6・・・トレース制御回路、 7・・・トレースバッファ、 8・・・トレース出力回路、 9.10・比較回路、 11・ ・・トレースメモリ、 12〜28・データ信号線である。

Claims (1)

  1. 【特許請求の範囲】 プログラムカウンタ中の命令アドレスをトレースメモリ
    に記憶するトレース回路において、命令アドレスを保持
    しその命令アドレスをトレースメモリに書き込むトレー
    ス保持出力部と、このトレース保持出力部によるトレー
    スメモリへの命令アドレスの書込みに基づき保持してい
    る命令アドレスを前記トレース保持出力部に格納してプ
    ログラムカウンタから命令アドレスを取り込んで保持し
    命令アドレスの入力指示に基づきプログラムカウンタか
    ら命令アドレスを取り込んで保持するトレース入力回路
    と、 このトレース入力回路に保持されている命令アドレスと
    前記トレース保持出力部に保持されている命令アドレス
    とを比較し一致する場合には一致信号を発生する比較回
    路と、 プログラムの流れを変える命令の実行の検出に基づきト
    レースメモリへの命令アドレスの書込み指示を前記トレ
    ース保持出力部に送出し前記比較回路により発生された
    一致信号の検出およびプログラムの流れを変える命令の
    実行の検出に基づき命令アドレスの入力指示を前記トレ
    ース入力回路に送出するトレース制御回路と を有することを特徴とするトレース回路。
JP63162088A 1988-06-28 1988-06-28 トレース回路 Pending JPH0210441A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63162088A JPH0210441A (ja) 1988-06-28 1988-06-28 トレース回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63162088A JPH0210441A (ja) 1988-06-28 1988-06-28 トレース回路

Publications (1)

Publication Number Publication Date
JPH0210441A true JPH0210441A (ja) 1990-01-16

Family

ID=15747855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63162088A Pending JPH0210441A (ja) 1988-06-28 1988-06-28 トレース回路

Country Status (1)

Country Link
JP (1) JPH0210441A (ja)

Similar Documents

Publication Publication Date Title
JP4505608B2 (ja) 工業用制御装置を冗長制御装置と同期化するための方法および装置
JPH03204737A (ja) 信号処理プロセッサのデバッグ回路
EP1125199B1 (en) Method of debugging a program thread
JPH0210441A (ja) トレース回路
JPS60124746A (ja) デ−タ処理装置
JPS62279438A (ja) トレ−ス回路
JP3305841B2 (ja) プログラム制御装置
JPH03290741A (ja) エラーロギング方法
JPH0362233A (ja) アドレスマッチタイミングトレース機構
JP2679603B2 (ja) マイクロコンピュータ
JP2604604B2 (ja) スタック制御装置
JPS63165931A (ja) 不連続命令フエツチアドレス情報記憶方式
JPS6142301B2 (ja)
JPH0387937A (ja) トレース制御方式
JPS635442A (ja) プログラムル−プ検出記憶装置
JPS6270947A (ja) デバグ割込み制御方式
JPH03282625A (ja) データ処理装置
JPH04328644A (ja) デバッグ支援装置
JPH01121950A (ja) トレース機能付マイクロプロセッサ
JPH05233288A (ja) 情報処理装置
JPH01185738A (ja) アドレストレース回路
JPH04182839A (ja) マイクロプログラムのデバッグ方式
JPS63124144A (ja) 情報処理装置
JPH02297225A (ja) マイクロプロセッサ
JPH04264625A (ja) レジスタ管理方式