JPH04287241A - History information storage device - Google Patents

History information storage device

Info

Publication number
JPH04287241A
JPH04287241A JP3051989A JP5198991A JPH04287241A JP H04287241 A JPH04287241 A JP H04287241A JP 3051989 A JP3051989 A JP 3051989A JP 5198991 A JP5198991 A JP 5198991A JP H04287241 A JPH04287241 A JP H04287241A
Authority
JP
Japan
Prior art keywords
address
branch
instruction
data
holding
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
JP3051989A
Other languages
Japanese (ja)
Inventor
Atsushi Yamashiroya
山代屋 篤
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 JP3051989A priority Critical patent/JPH04287241A/en
Publication of JPH04287241A publication Critical patent/JPH04287241A/en
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PURPOSE:To perform effective address tracing by recognizing the existence of a branch instruction by using the difference in address between the current instruction and its preceding instruction. CONSTITUTION:A data latch circuit 1 fetches the address of an instruction from an address bus 100. The circuit 1 can hold the addresses of two instructions and a data comparator circuit 2 detects the difference in address between the current instruction and its preceding instruction held by the circuit 1. It is indicated that no branch instruction exists when the address of the currently processed instruction coincides with that of the preceding instruction and a branch instruction exists in the address increasing direction when the current address is larger. When the current address is smaller, it is indicated that the branch instruction exists in the address decreasing direction. By detecting the branch instruction in such way and deleting a loop section by discriminating the existence of the loop, effective address tracing is performed with a less amount of hardware and address analysis is also easily performed.

Description

【発明の詳細な説明】[Detailed description of the invention]

【0001】0001

【産業上の利用分野】本発明は、情報処理装置の履歴情
報記憶装置に関し、特に、命令の実行アドレストレース
方式を改良した履歴情報記憶装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a history information storage device for an information processing device, and more particularly to a history information storage device with an improved instruction execution address tracing system.

【0002】0002

【従来の技術】従来のアドレストレース方式では全ての
命令語アドレスをトレースメモリに記録している。
2. Description of the Related Art In the conventional address tracing method, all instruction word addresses are recorded in a trace memory.

【0003】0003

【発明が解決しようとする課題】上述した従来の方式で
は、アドレスすべてを見るために、全てのアドレスをト
レースメモリ上に記録する。この方法ではアドレスの順
番が詳しく分かるが、データ量が大きく、あまりメモリ
内に入らない。一般にアドレストレースを用いる場合、
プログラムリスト等を参照しながら並行してトレース内
容見ているのでトレース内容としてはすべてのアドレス
を記録する必要はなく、メモリを多く必要とするループ
などは削除したほうがよい。極端に言うと、分岐部分の
みを記録しておけば、あとはリスト等を参照することに
よって命令語の処理順序を解析することは容易である。
In the conventional method described above, all addresses are recorded on a trace memory in order to view all addresses. This method allows you to know the order of addresses in detail, but the amount of data is large and does not fit into memory. Generally when using address trace,
Since the trace contents are viewed in parallel while referring to the program list, there is no need to record all addresses as trace contents, and it is better to delete loops that require a large amount of memory. To put it in an extreme, if only the branch part is recorded, then it is easy to analyze the processing order of the instruction words by referring to a list or the like.

【0004】0004

【課題を解決するための手段】本発明は、制御記憶装置
に格納された命令を実行することにより動作を制御して
いる情報処理装置の命令実行履歴を記憶する履歴情報記
憶装置において、現在処理中の命令語のアドレスを第1
アドレスとして保持する第1アドレス保持手段と、現在
処理中の命令語の1命令前の命令語のアドレスを第2ア
ドレスとして保持する第2アドレス保持手段と、前記第
1アドレスと前記第2アドレスとを比較し、両アドレス
の差分を検出するアドレス比較手段と、前記アドレス比
較手段により検出されたアドレスの差分と、予め設定さ
れたアドレス差分とが一致しない場合、第2アドレスに
分岐命令があると判断する分岐命令検出手段と、前記第
1アドレスを第1分岐先のアドレスとして保持する第1
分岐先アドレス保持手段と、前記第2アドレスを第1分
岐元のアドレスとして、保持する第1分岐元アドレス保
持手段と、前記分岐命令検出手段の指示により、前回の
分岐命令検出時の分岐先のアドレスを保持する第2分岐
先アドレス保持手段と、前記分岐命令検出手段の指示に
より、前回の分岐命令検出時の分岐元のアドレスを保持
する第2分岐元アドレス保持手段と、前記第1分岐先ア
ドレスと前記第2分岐先アドレスとを比較する分岐先ア
ドレス比較手段と、前記第1分岐元アドレスと前記第2
分岐元アドレスとを比較する分岐元アドレス比較手段と
、前記分岐先アドレス比較手段と前記分岐元アドレス比
較手段とにより、前記第1分岐先アドレスと前記第2分
岐先アドレスとが一致し、かつ前記第1分岐元アドレス
と前記第2分岐元アドレスとが一致した場合、この間で
命令実行がル−プしていると判断する命令ル−プ検出手
段(4)と、前記第2アドレス保持手段より第2アドレ
スを取り込み、現在までの第2アドレスの履歴を保存す
る命令アドレス履歴保存手段と、前記アドレス履歴保存
手段において、前記命令ループ検出手段の指示により、
命令ループに属する第2アドレスの保存を抑止するアド
レス書き込み抑止手段(43)とを具備することを特徴
とするものである。
[Means for Solving the Problems] The present invention provides a history information storage device that stores an instruction execution history of an information processing device whose operation is controlled by executing instructions stored in a control storage device. The address of the instruction word in
a first address holding means for holding an address as an address; a second address holding means for holding an address of an instruction word one instruction before the instruction word currently being processed as a second address; and an address comparison means for detecting the difference between both addresses, and if the difference between the addresses detected by the address comparison means and the preset address difference do not match, it is determined that there is a branch instruction at the second address. a branch instruction detecting means for determining the branch instruction; and a first branch instruction detecting means for holding the first address as a first branch destination address.
A branch destination address holding means, a first branch source address holding means that holds the second address as a first branch source address, and an instruction from the branch instruction detection means to determine the branch destination at the time of the previous branch instruction detection. a second branch destination address holding means for holding an address; a second branch source address holding means for holding a branch source address at the time of the previous branch instruction detection according to an instruction from the branch instruction detection means; branch destination address comparison means for comparing the address and the second branch destination address;
A branch source address comparing means for comparing the branch source address with the branch source address, and the branch destination address comparing means and the branch source address comparing means determine that the first branch destination address and the second branch destination address match, and If the first branch source address and the second branch source address match, an instruction loop detecting means (4) determines that instruction execution is looped during this period; instruction address history storage means that takes in a second address and stores the history of the second address up to the present; and in the address history storage means, according to an instruction from the instruction loop detection means,
The present invention is characterized by comprising address write inhibiting means (43) for inhibiting storage of the second address belonging to the instruction loop.

【0005】[0005]

【実施例】次に本発明について図面を参照して説明する
。図1は本発明の一実施例の構成図である。図1を参照
してこの履歴情報記憶装置の動作を簡単に説明する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Next, the present invention will be explained with reference to the drawings. FIG. 1 is a configuration diagram of an embodiment of the present invention. The operation of this history information storage device will be briefly explained with reference to FIG.

【0006】アドレスバス100には、この実施例が所
属している処理装置において処理される命令のアドレス
が存在する。このアドレスバス100より、命令のアド
レスをデータラッチ回路1へ取り込む。データラッチ回
路1では2命令分のアドレスを保持することが可能であ
る。この回路の中心となるレジスタの内容は処理装置の
命令データ取り込み用クロックにより更新される。デー
タ比較回路2では、データラッチ回路1で保持されてい
る現在処理されている命令と1命令前の命令のアドレス
を比較し、両アドレスの差分を検出する。分岐命令が無
い場合の命令処理におけるアドレスの差分をXとして、
現在処理中の命令アドレスを第1アドレス、1命令前の
命令アドレスを第2アドレスとすると、(第1アドレス
)−(第2アドレス)=Xであると、ここでは分岐命令
による分岐は存在しないこととなる。また (第1アドレス)−(第2アドレス)>Xの場合には、
先のアドレス(アドレスが増加する方向)への分岐命令
が存在することを示している。つまり、第2アドレスが
分岐元アドレスであり、第1アドレスが分岐先アドレス
となる。また (第1アドレス)−(第2アドレス)<Xの場合には、
この部分において前へのアドレス(アドレスが減少する
方向)への分岐命令が存在することを示している。つま
り、第2アドレスが分岐元アドレスであり、第1アドレ
スが分岐先アドレスとなる。
Address bus 100 contains addresses of instructions to be processed by the processing device to which this embodiment belongs. The address of the instruction is taken into the data latch circuit 1 from the address bus 100. The data latch circuit 1 can hold addresses for two instructions. The contents of the register, which is the central part of this circuit, are updated by the instruction data acquisition clock of the processing device. The data comparison circuit 2 compares the address of the currently processed instruction held in the data latch circuit 1 with the address of the instruction one instruction before, and detects the difference between the two addresses. Let X be the address difference in instruction processing when there is no branch instruction,
If the instruction address currently being processed is the first address and the instruction address one instruction before is the second address, then (first address) - (second address) = X, there is no branch due to a branch instruction here. It happens. Also, if (first address) - (second address)>X,
This indicates that there is a branch instruction to the next address (in the direction in which the address increases). In other words, the second address is the branch source address, and the first address is the branch destination address. Also, if (first address) - (second address) <X,
This indicates that there is a branch instruction to the previous address (in the direction in which the address decreases). In other words, the second address is the branch source address, and the first address is the branch destination address.

【0007】これらの分岐元アドレスと分岐先アドレス
を第1分岐元アドレス、第1分岐先アドレスとして、こ
の前回の分岐命令検出時の分岐元アドレスと分岐先アド
レスを第2分岐元アドレス、第2分岐先アドレスとして
、分岐アドレス保持回路5によって保持する。分岐デー
タ比較回路6では、分岐アドレス保持回路5によって保
持されている第1分岐元アドレスと第2分岐元アドレス
を比較し、かつ第1分岐先アドレスと第2分岐先アドレ
スを比較を行う。もし両方とも一致したなら、第1分岐
元アドレスと第2分岐元アドレスの間がループになって
いると判断して、その間に存在するアドレストレースデ
ータを消去する。
[0007] These branch source address and branch destination address are defined as the first branch source address and the first branch destination address, and the branch source address and branch destination address at the time of this previous branch instruction detection are defined as the second branch source address and the second branch destination address. It is held by the branch address holding circuit 5 as a branch destination address. The branch data comparison circuit 6 compares the first branch source address and the second branch source address held by the branch address holding circuit 5, and also compares the first branch destination address and the second branch destination address. If both match, it is determined that there is a loop between the first branch source address and the second branch source address, and the address trace data existing between them is erased.

【0008】データ比較回路2により比較されたデータ
のうち、分岐命令または分岐先アドレス以外であれば、
アドレスデータはデータラッチ回路1よりそのままデー
タ一時ストア回路3に送られる。もしデータ比較回路2
により分岐命令を発見したなら、前記の動作に加え、そ
の時点の第一アドレスと第二アドレスを第1分岐先アド
レス、第1分岐元アドレスとして分岐アドレス保持回路
5により保持する。一方、データ一時ストア回路3では
、データ比較回路2により分岐命令を発見した時点で、
データ一時ストア回路3内に入ってきたデータ数のカウ
ントを打切り、カウントデータを、内蔵するレジスタに
記録する。そして再びカウントを始め、次の分岐命令が
入ってくるまでカウントを続ける。従ってカウントデー
タの値は、分岐命令から次の分岐命令までのアドレスト
レースデータの数となる。分岐データ比較回路6では、
前後する2つの分岐命令元アドレスと分岐先アドレスを
比較して、等しければ、2つの分岐命令間のアドレスト
レースデータはループのデータとみなし、消去信号をデ
ータ一時ストア回路3に対して出力する。
If the data compared by the data comparison circuit 2 is other than a branch instruction or a branch destination address,
The address data is directly sent from the data latch circuit 1 to the data temporary store circuit 3. If data comparison circuit 2
When a branch instruction is found, in addition to the above operations, the branch address holding circuit 5 holds the first address and second address at that time as the first branch destination address and the first branch source address. On the other hand, in the data temporary store circuit 3, when a branch instruction is discovered by the data comparison circuit 2,
Counting of the number of data that has entered the data temporary store circuit 3 is stopped, and the count data is recorded in a built-in register. It then starts counting again and continues counting until the next branch instruction is received. Therefore, the value of the count data is the number of address trace data from one branch instruction to the next branch instruction. In the branch data comparison circuit 6,
Two consecutive branch instruction source addresses and branch destination addresses are compared, and if they are equal, the address trace data between the two branch instructions is regarded as loop data, and an erase signal is output to the data temporary store circuit 3.

【0009】データ一時ストア回路3のカウンタ用のレ
ジスタにはカウントが有効か無効か、のビットがあり、
有効であれば、カウンタ数に応じたデータクロックを、
内蔵するFIFO及びトレーサメモリ4に送出し、その
FIFO中のデータをトレーサメモリへ送る。ストア回
路3のカウンタ用のレジスタのカウントが無効である場
合、すなわち分岐データ比較回路6よりデータ消去命令
が入った場合、FIFOにはカウント数に応じたデータ
クロックを送るが、トレーサメインメモリ4にはデータ
クロックを送出しない。従ってこのカウント数分のデー
タ(ループ分のデータ)は消去されることとなる。
The counter register of the data temporary store circuit 3 has a bit indicating whether counting is valid or invalid.
If enabled, the data clock according to the number of counters,
The data is sent to the built-in FIFO and tracer memory 4, and the data in the FIFO is sent to the tracer memory. When the count in the counter register of the store circuit 3 is invalid, that is, when a data erase command is input from the branch data comparison circuit 6, a data clock corresponding to the count number is sent to the FIFO, but the data clock is sent to the tracer main memory 4. does not send out a data clock. Therefore, the data for this count (data for the loop) will be erased.

【0010】次に各回路の動作を詳細に説明する。デー
タラッチ回路1を図2に示す。アドレスバス100上の
命令アドレスは命令ラッチ用クロック信号によりデータ
レジスタ11に取り込まれる。そして次の命令ラッチ用
クロック信号がくると、データレジスタ11にあった命
令アドレスはデータレジスタ12にシフトされる。そし
てデータレジスタ11には、新たにアドレスバス100
より命令アドレスを取り込む。このような動作により、
データレジスタ11には現在処理されている命令語のア
ドレス、データレジスタ12には1命令前のアドレスを
保持している。
Next, the operation of each circuit will be explained in detail. The data latch circuit 1 is shown in FIG. The instruction address on the address bus 100 is taken into the data register 11 by the instruction latch clock signal. When the next instruction latch clock signal arrives, the instruction address in the data register 11 is shifted to the data register 12. Then, a new address bus 100 is added to the data register 11.
Read the instruction address. This behavior causes
The data register 11 holds the address of the instruction word currently being processed, and the data register 12 holds the address of one instruction before.

【0011】データレジスタ11からの出力はデータレ
ジスタ12、データ比較回路2、分岐アドレス保持回路
5へ送られる。
The output from data register 11 is sent to data register 12, data comparison circuit 2, and branch address holding circuit 5.

【0012】データ比較回路2を図3に示す。データラ
ッチ回路1からの第一アドレスと第二アドレスをコンパ
レータ21,23により比較し、比較結果により1ショ
ットマルチバイブレータ24,25に送出する。マルチ
バイブレータ24,25からの信号はそれぞれ前方分岐
信号、後方分岐信号として分岐アドレス保持回路5やデ
ータ一時ストア回路3に送られる。図3の回路22は、
固定値Xを出力しており、Xの値は通常の命令実行(分
岐命令を除く)におけるアドレスの増加分である。よっ
てコンパレータ23においてZの値が0であれば第1ア
ドレスと第2アドレスとの差は通常の増加分すなわち分
岐命令ではないことを示している。
The data comparison circuit 2 is shown in FIG. The first address and second address from the data latch circuit 1 are compared by comparators 21 and 23, and the comparison result is sent to one-shot multivibrators 24 and 25. Signals from the multivibrators 24 and 25 are sent to the branch address holding circuit 5 and data temporary storage circuit 3 as forward branch signals and backward branch signals, respectively. The circuit 22 of FIG.
A fixed value X is output, and the value of X is the address increment during normal instruction execution (excluding branch instructions). Therefore, if the value of Z in the comparator 23 is 0, this indicates that the difference between the first address and the second address is a normal increase, that is, it is not a branch instruction.

【0013】データ一時ストア回路3を図4に示す。デ
ータラッチ回路1から入ってきたアドレストレースデー
タは、FIFO31に入力される。入力用のクロックと
して処理装置から命令ラッチ用クロックを使用する。ま
たカウンタ32では、分岐命令が存在するアドレスから
次の分岐命令が存在するアドレスが入ってくるまでにF
IFO31に入力されたアドレストレースデータの数を
カウントする。このカウントはカウンタ値レジスタ33
によって保持される。またカウンタ値レジスタ33には
カウント値が有効/無効かを示すビットが付加されてお
り、このデータにより、データ出力用クロック発生回路
34より、カウント値が有効の場合は、カウント値分の
クロックをFIFO31とトレーサメインメモリ5へ出
力する。無効の場合は、カウント値分のクロックをFI
FO31のみに出力する。この動作により、FIFO3
1に入っていた無効データ分を消去するのと同じ効果と
なる。
FIG. 4 shows the data temporary store circuit 3. Address trace data input from the data latch circuit 1 is input to the FIFO 31. The instruction latch clock from the processing device is used as the input clock. In addition, in the counter 32, F
The number of address trace data input to the IFO 31 is counted. This count is the counter value register 33
held by. Further, a bit indicating whether the count value is valid or invalid is added to the counter value register 33, and this data causes the data output clock generation circuit 34 to generate a clock for the count value when the count value is valid. Output to FIFO 31 and tracer main memory 5. If disabled, the clock for the count value is
Output to FO31 only. This operation causes FIFO3
This has the same effect as erasing the invalid data contained in 1.

【0014】カウント値の有効/無効を決定するデータ
消去信号は、分岐データ比較回路6より出力される。
A data erase signal for determining validity/invalidity of the count value is output from the branch data comparison circuit 6.

【0015】分岐アドレス保持回路5を図5に示す。こ
の回路では、データラッチ回路1からのデータをデータ
比較回路2からの前方分岐信号、後方分岐信号によりレ
ジスタに取り込む。分岐レジスタ31、32には第1分
岐元アドレスと第2分岐元アドレスを保持し、ジャンプ
先レジスタ33、34では第1分岐先アドレスと第2分
岐先アドレスを保持する。レジスタ31及び33に入っ
ている内容は、次の前方、後方分岐信号が入ってくると
、それぞれレジスタ32、34へシフトされる。
The branch address holding circuit 5 is shown in FIG. In this circuit, data from a data latch circuit 1 is taken into a register by a forward branch signal and a backward branch signal from a data comparison circuit 2. Branch registers 31 and 32 hold a first branch source address and a second branch source address, and jump destination registers 33 and 34 hold a first branch destination address and a second branch destination address. The contents of registers 31 and 33 are shifted to registers 32 and 34, respectively, when the next forward and backward branch signals arrive.

【0016】分岐アドレス保持回路5によって保持され
ているアドレスデータは図6に示す分岐データ比較回路
6に送られ、比較される。第1分岐元アドレスと第2分
岐元アドレスを比較し、かつ第1分岐先アドレスと第2
分岐先アドレスをそれぞれ比較し、一致しているかをコ
ンパレータ41及び42により判定する。仮に両方共に
一致すれば、ゲート回路43からデータ消去信号を発生
する。一致するということは、同じ場所において分岐命
令があり、分岐先のアドレスも同じであることから、こ
の部分でループを形成していることを示す。
The address data held by the branch address holding circuit 5 is sent to the branch data comparison circuit 6 shown in FIG. 6 and compared. Compare the first branch source address and the second branch source address, and compare the first branch destination address and the second branch source address.
The branch destination addresses are compared, and comparators 41 and 42 determine whether they match. If both match, the gate circuit 43 generates a data erase signal. A match indicates that there is a branch instruction at the same location and the branch destination address is also the same, so a loop is formed in this part.

【0017】例として、図7に命令アドレスが図7(a
) のようにアドレスバスにのった場合、各レジスタの
値は図7(b) ,(c) のようになる。
As an example, the instruction address is shown in FIG.
), the values of each register will be as shown in FIGS. 7(b) and (c).

【0018】最初にFIFOには図7の左端上部のよう
に103までの命令アドレスが入る。この時点で分岐ア
ドレスレジスタでは左端中部のような値が入り103が
分岐命令であることが認識される。これにより、それま
でFIFOにたまっていたデータ100〜103は、ト
レーサメインメモリ部へ出力される。そしてFIFOに
は分岐先の命令アドレス105以降のデータがストアさ
れる。そしてFIFOにデータ106が入った時点で分
岐アドレスレジスタでは106と110が入っているこ
とにより、106が分岐命令であることが認識される。 ここで先程の分岐命令アドレスと分岐先命令アドレスと
比較して一致しなければ有効/無効ビットを有効とする
。図7における左右側部分はループ命令(110〜11
2)が入力された場合を示している。1回目の分岐命令
(ループ命令)では前の分岐命令106,112と比較
するため一致せず、有効/無効ビットは有効となり、F
IFO中のデータ(110〜112)はトレーサメイン
メモリ部へ送られる。2回目に分岐命令がきたときルー
プ命令であるため前回の分岐命令と一致するため有効/
無効ビットが無効となりFIFOのデータはトレーサメ
インメモリには送られない。次に同じループ命令が来た
ときも同様である。すなわちループの場合は1回分のル
ープのアドレスを保持するだけで残りのループ分は排除
してしまう。図9において実際の処理においてどの部分
が消去(削除)されるかを示している。上述のような方
法でループを発見するためにループに入る前からループ
における分岐元アドレスがある部分まではトレースデー
タは記憶され、それ以降最終回の分岐先アドレスがある
地点まては消去(削除)される。
Initially, instruction addresses up to 103 are entered into the FIFO as shown in the upper left corner of FIG. At this point, the branch address register contains a value like the one in the middle of the left end, and it is recognized that 103 is a branch instruction. As a result, data 100 to 103 that had been accumulated in the FIFO until then are output to the tracer main memory section. Data starting from the branch destination instruction address 105 is stored in the FIFO. When data 106 is entered into the FIFO, 106 and 110 are entered in the branch address register, so that it is recognized that 106 is a branch instruction. Here, the previous branch instruction address and the branch destination instruction address are compared, and if they do not match, the valid/invalid bit is made valid. The left and right parts in FIG. 7 are loop commands (110 to 11
2) is input. Since the first branch instruction (loop instruction) is compared with the previous branch instructions 106 and 112, they do not match, the valid/invalid bit becomes valid, and F
The data (110-112) in the IFO is sent to the tracer main memory section. When a branch instruction comes for the second time, it is valid because it is a loop instruction and it matches the previous branch instruction.
The invalid bit becomes invalid and the data in the FIFO is not sent to the tracer main memory. The same thing happens the next time the same loop instruction comes. In other words, in the case of a loop, only the address of one loop is held, and the remaining loops are eliminated. FIG. 9 shows which parts are erased (deleted) in actual processing. In order to discover loops using the method described above, trace data is stored from before entering the loop to the part of the loop where the branch source address is located, and is then erased (deleted) at the point where the final branch destination address is located. ) to be done.

【0019】[0019]

【発明の効果】以上説明したように、本発明では分岐命
令を検出し、ループがあることを判断して、ループ部分
を削除することにより、少ないハードウエア量によって
効果的なアドレストレースを行うことを可能とする。同
じメモリ量で従来のトレースより長時間のアドレストレ
ースが可能となり、しかもトレースメモリ内にムダがな
くなり、解析等も行い易くなる。
[Effects of the Invention] As explained above, in the present invention, by detecting a branch instruction, determining the existence of a loop, and deleting the loop portion, effective address tracing can be performed with a small amount of hardware. is possible. Address tracing can be performed for a longer time than conventional tracing with the same amount of memory, and there is no waste in the trace memory, making analysis easier.

【図面の簡単な説明】[Brief explanation of the drawing]

【図1】本発明の一実施例の全体構成図である。FIG. 1 is an overall configuration diagram of an embodiment of the present invention.

【図2】図1中のデータラッチ回路の構成図である。FIG. 2 is a configuration diagram of a data latch circuit in FIG. 1;

【図3】図1中のデータ比較回路の構成図である。FIG. 3 is a configuration diagram of a data comparison circuit in FIG. 1;

【図4】図1中のデータ一時ストア回路の構成図である
FIG. 4 is a configuration diagram of a data temporary store circuit in FIG. 1;

【図5】図1中の分岐アドレス保持回路の構成図である
FIG. 5 is a configuration diagram of a branch address holding circuit in FIG. 1;

【図6】図1中の分岐データ比較回路の構成図である。FIG. 6 is a configuration diagram of a branch data comparison circuit in FIG. 1;

【図7】図1中のアドレスバス、データラッチ回路のレ
ジスタの内容を示す図である。
7 is a diagram showing contents of registers of the address bus and data latch circuit in FIG. 1; FIG.

【図8】図1中のデータ一時ストア回路を中心とした動
作を示す流れ図である。
FIG. 8 is a flowchart showing operations centered on the data temporary store circuit in FIG. 1;

【図9】図1の実施例で消去されるループ部分の表示を
示す図である。
FIG. 9 is a diagram showing a display of loop portions that are deleted in the embodiment of FIG. 1;

【符号の説明】[Explanation of symbols]

1    データラッチ回路 2    データ比較回路 3    データ一時ストア回路 4    トレーサメインメモリ 5    分岐アドレス保持回路 6    分岐データ比較回路 11    データレジスタ 12    データレジスタ 43    ゲート回路 1 Data latch circuit 2 Data comparison circuit 3. Temporary data store circuit 4 Tracer main memory 5 Branch address holding circuit 6 Branch data comparison circuit 11 Data register 12 Data register 43 Gate circuit

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】  制御記憶装置に格納された命令を実行
することにより動作を制御している情報処理装置の命令
実行履歴を記憶する履歴情報記憶装置において、現在処
理中の命令語のアドレスを第1アドレスとして保持する
第1アドレス保持手段と、現在処理中の命令語の1命令
前の命令語のアドレスを第2アドレスとして保持する第
2アドレス保持手段と、前記第1アドレスと前記第2ア
ドレスとを比較し、両アドレスの差分を検出するアドレ
ス比較手段と、前記アドレス比較手段により検出された
アドレスの差分と、予め設定されたアドレス差分とが一
致しない場合、第2アドレスに分岐命令があると判断す
る分岐命令検出手段と、前記第1アドレスを第1分岐先
のアドレスとして保持する第1分岐先アドレス保持手段
と、前記第2アドレスを第1分岐元のアドレスとして、
保持する第1分岐元アドレス保持手段と、前記分岐命令
検出手段の指示により、前回の分岐命令検出時の分岐先
のアドレスを保持する第2分岐先アドレス保持手段と、
前記分岐命令検出手段の指示により、前回の分岐命令検
出時の分岐元のアドレスを保持する第2分岐元アドレス
保持手段と、前記第1分岐先アドレスと前記第2分岐先
アドレスとを比較する分岐先アドレス比較手段と、前記
第1分岐元アドレスと前記第2分岐元アドレスとを比較
する分岐元アドレス比較手段と、前記分岐先アドレス比
較手段と前記分岐元アドレス比較手段とにより、前記第
1分岐先アドレスと前記第2分岐先アドレスとが一致し
、かつ前記第1分岐元アドレスと前記第2分岐元アドレ
スとが一致した場合、この間で命令実行がル−プしてい
ると判断する命令ル−プ検出手段と、前記第2アドレス
保持手段より第2アドレスを取り込み、現在までの第2
アドレスの履歴を保存する命令アドレス履歴保存手段と
、前記アドレス履歴保存手段において、前記命令ループ
検出手段の指示により、命令ループに属する第2アドレ
スの保存を抑止するアドレス書き込み抑止手段とを具備
することを特徴とする履歴情報記憶装置。
Claim 1: In a history information storage device that stores an instruction execution history of an information processing device whose operation is controlled by executing instructions stored in a control storage device, the address of the instruction word currently being processed is stored as the a first address holding means for holding the address of an instruction word one instruction before the instruction word currently being processed as a second address; and the first address and the second address. and an address comparing means for detecting a difference between both addresses, and if the address difference detected by the address comparing means does not match a preset address difference, there is a branch instruction at the second address. a branch instruction detection means for determining that the first address is a first branch destination address; a first branch destination address holding means for holding the first address as a first branch destination address;
a first branch source address holding means for holding, and a second branch destination address holding means for holding the address of the branch destination at the time of the previous branch instruction detection according to an instruction from the branch instruction detection means;
A second branch source address holding unit that holds the branch source address at the time of the previous branch instruction detection, and a branch that compares the first branch destination address and the second branch destination address according to an instruction from the branch instruction detection unit. The first branch address comparison means, the branch source address comparison means that compares the first branch source address and the second branch source address, and the branch destination address comparison means and the branch source address comparison means, If the destination address and the second branch destination address match, and the first branch source address and the second branch source address match, the instruction loop determines that instruction execution is looped between them. - captures a second address from the second address holding means and the second address holding means;
An instruction address history storage means for storing a history of addresses; and an address write inhibiting means for inhibiting storage of a second address belonging to an instruction loop in the address history storage means according to an instruction from the instruction loop detection means. A history information storage device characterized by:
JP3051989A 1991-03-18 1991-03-18 History information storage device Pending JPH04287241A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3051989A JPH04287241A (en) 1991-03-18 1991-03-18 History information storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3051989A JPH04287241A (en) 1991-03-18 1991-03-18 History information storage device

Publications (1)

Publication Number Publication Date
JPH04287241A true JPH04287241A (en) 1992-10-12

Family

ID=12902268

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3051989A Pending JPH04287241A (en) 1991-03-18 1991-03-18 History information storage device

Country Status (1)

Country Link
JP (1) JPH04287241A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0725342A1 (en) * 1995-02-01 1996-08-07 Siemens Aktiengesellschaft Tracer system
US6594782B1 (en) 1998-12-28 2003-07-15 Fujitsu Limited Information processing apparatus
JP2012098979A (en) * 2010-11-04 2012-05-24 Fujitsu Semiconductor Ltd Trace compression device and trace compression program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0725342A1 (en) * 1995-02-01 1996-08-07 Siemens Aktiengesellschaft Tracer system
US6594782B1 (en) 1998-12-28 2003-07-15 Fujitsu Limited Information processing apparatus
JP2012098979A (en) * 2010-11-04 2012-05-24 Fujitsu Semiconductor Ltd Trace compression device and trace compression program

Similar Documents

Publication Publication Date Title
EP0468454B1 (en) Interrupt controller
US6473841B1 (en) Signal processing apparatus with memory access history storage
JPH04287241A (en) History information storage device
JP2789900B2 (en) State history storage device
JPH0748647B2 (en) Duty ratio discrimination circuit
JPH04287242A (en) History information storage device
JP3343734B2 (en) Trace data compression method and trace data compression method
KR20020054519A (en) Applied Program Bungle Detection Apparatus and Method by Interrupt
JPH0748183B2 (en) Trace circuit
JPS6125168B2 (en)
JPH0442330A (en) Debugging system using branching history table
SU1257704A1 (en) Buffer storage
JPS64731B2 (en)
JP2862647B2 (en) FIFO buffer control method
JP2775830B2 (en) Instruction frequency measurement method
JPH05313948A (en) Program performance evaluating system
JPS6242237A (en) Loading system to instruction buffer
JPS60105058A (en) Information processor
JPH01288932A (en) Program running route collecting system
JPS6267650A (en) Store processing system for cache memory controller
JPH0465712A (en) Information processor
JPS61131132A (en) Tracer circuit
JP2000076096A (en) Software evaluation system
JPH03240839A (en) Firmware executing address tracer
JPH0573311A (en) Instruction rewriting system for instruction buffer in processor