JPS63316131A - Data processor - Google Patents

Data processor

Info

Publication number
JPS63316131A
JPS63316131A JP15111487A JP15111487A JPS63316131A JP S63316131 A JPS63316131 A JP S63316131A JP 15111487 A JP15111487 A JP 15111487A JP 15111487 A JP15111487 A JP 15111487A JP S63316131 A JPS63316131 A JP S63316131A
Authority
JP
Japan
Prior art keywords
instruction
branch
branch destination
associative memory
instructions
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.)
Granted
Application number
JP15111487A
Other languages
Japanese (ja)
Other versions
JP2511978B2 (en
Inventor
Toru Shonai
亨 庄内
Yoichi Shintani
洋一 新谷
Kazunori Kuriyama
和則 栗山
Eiki Kamata
釜田 栄樹
Kiyoshi Inoue
潔 井上
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP15111487A priority Critical patent/JP2511978B2/en
Publication of JPS63316131A publication Critical patent/JPS63316131A/en
Application granted granted Critical
Publication of JP2511978B2 publication Critical patent/JP2511978B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

PURPOSE:To prevent a dead clock state from being generated, by holding a branch destination address in a saving register transiently when no vacant instruction buffer which stores plural instructions based on the branching destination addresses exists. CONSTITUTION:In a data processor which pre-reads an instruction sequence and associates and outputs the branching destination address of a branching instruction in the instruction sequence, busy flags 1010-1030 go to 1 when no vacant instruction buffers 1002-1006 which store the plural instructions based on the branching destination addresses exist. Simultaneously, when a signal BrInst goes to an L at the time of decoding the branching instruction in which no hit of branching destination associative storage is performed, a holding instruction is outputted from instruction buffer control combination logic 1056, and the address of a following branching instruction is held at the saving register transiently, and the dead lock state where decoding is impossible due to the lack of the instruction buffer can be prevented from being generated. Also, similarly, the cancel of transient holding can be performed via the logic 1056.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データ処理装置に係り、特に分岐命令を含む
命令を処理するデータ処理装置に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a data processing device, and particularly to a data processing device that processes instructions including branch instructions.

〔従来の技術〕[Conventional technology]

分岐命令の処理を高速化するものの1つに分岐先連想記
憶がある。これは、命令列を先読みする際に、先読みア
ドレスを入力として、先読みされる命令列の中に含まれ
る分岐命令(もしもあれば)の分岐先のアドレスを連想
出力するものである。
One of the things that speeds up the processing of branch instructions is branch destination associative memory. This is to input a prefetch address when prefetching an instruction string, and associatively output the branch destination address of a branch instruction (if any) included in the prefetched instruction string.

分岐先連想記憶が分岐先のアドレスを連想出力した(b
it)場合は、先読みされる命令列の中に分岐命令があ
り、随の分岐命令が1分岐先連想記憶が出力した分岐先
のアドレスに分岐すると予測される。この時、次の命令
の先読みとしては、今先読みされた命令列の直後の命令
列ではなく、この分岐先のアドレスが指す分岐先命令列
を先読みさせることにより1分岐命令の処理が高速化さ
れる。
The branch destination associative memory associatively outputs the branch destination address (b
In the case (it), there is a branch instruction in the instruction string to be prefetched, and the next branch instruction is predicted to branch to the branch destination address output by the one-branch destination content addressable memory. At this time, when prefetching the next instruction, the processing of one branch instruction is sped up by prefetching the branch destination instruction string pointed to by this branch destination address instead of the instruction string immediately after the instruction string that has just been prefetched. Ru.

分岐先連想記憶が分岐先のアドレスを連想出力しなかっ
た(nobit)場合は、先読みされる命令列の中に分
岐命令がないか、又は、あったとしてもその分岐命令は
分岐しないと予想される。この時には、命令の先読みは
、今先読みされた命令列の直後の命令に対して行われる
If the branch destination associative memory does not associatively output the branch destination address (nobit), there is no branch instruction in the prefetched instruction sequence, or even if there is, the branch instruction is expected not to branch. Ru. At this time, instruction prefetching is performed for the instruction immediately following the currently prefetched instruction sequence.

この技術は、たとえばコンピュータ・ジャーナル15 
(1972)42頁−50頁(R,N、Ibbett。
This technique is used, for example, in Computer Journal 15
(1972) pp. 42-50 (R,N, Ibbett.

The  MU5 1nstruction  pip
eline、  The  ComputerJout
nal 15) Feb、 1972)、 42 50
)に記載されている。
The MU5 1nstruction pip
eline, The Computer Jout
nal 15) Feb, 1972), 42 50
)It is described in.

〔発明が解決しようとする問題点3 分岐先連想記憶を用いると問題が発生する場合がある。[Problem 3 that the invention seeks to solve Problems may occur when using branch destination associative memory.

命令バッファが3面ある場合を考える。Consider a case where there are three instruction buffers.

命令バッファは、通常1面を使って命令の先読みを行う
。先読みされた命令は命令バッファより順次読み出され
、デコードされていく。ある定められたバイト数以上の
命令がデコードされると、空き部分(デコードが終った
命令のあった部分)に後続の命令が先読みされ、常に命
令が先読みできるようにする。
The instruction buffer normally uses one side to prefetch instructions. The prefetched instructions are sequentially read out from the instruction buffer and decoded. When an instruction of more than a certain number of bytes is decoded, a subsequent instruction is prefetched into an empty area (the area where the decoded instruction was located), so that instructions can always be prefetched.

命令のデコード中に、分岐命令が出現すると、分岐先の
命令は分岐命令が格納されていた命令バッファとは異な
る(異なる面の)命令バッファに、格納される。
When a branch instruction appears during instruction decoding, the branch destination instruction is stored in an instruction buffer different (in a different plane) from the instruction buffer in which the branch instruction was stored.

分岐先連想記憶が分岐先アドレスを出力した時にも1分
岐先の命令は分岐命令が格納されていた命令バッファと
異なる命令バッファに格納される。
Even when the branch destination associative memory outputs a branch destination address, the instruction at one branch destination is stored in an instruction buffer different from the instruction buffer in which the branch instruction was stored.

分岐命令が出現すると1時的に複数面の命令バッファが
使用されていることになる。しかし1分岐命令の判定が
下ると不必要な命令バッファは解放される。分岐が不成
立の時は、分岐先の命令が格納されていた命令バッファ
が解放され、分岐が成立の時には、分岐命令が格納され
ていた命令バッファが解放される。解放された命令バッ
ファはその後、分岐命令が出現した時に分岐先の命令を
格納するために使われる。
When a branch instruction appears, multiple instruction buffers are temporarily used. However, when a decision is made regarding a 1-branch instruction, unnecessary instruction buffers are released. When the branch is not taken, the instruction buffer in which the branch destination instruction was stored is released, and when the branch is taken, the instruction buffer in which the branch instruction was stored is released. The freed instruction buffer is then used to store the branch target instruction when the branch instruction occurs.

第4図のような命令列で問題が発生する6第4図では、
104番地、10C番地、204i地に分岐命令(B 
r)がある、今、3つある命令バッファの1つを使って
命令が先読みされているとする。100番地から107
番地の命令列が先読みされてその命令バッファに格納さ
れたとする。
A problem occurs with the instruction sequence shown in Figure 4.6 In Figure 4,
Branch instructions (B
Suppose that there is a command r), and one of the three instruction buffers is used to read ahead an instruction. 100 to 107
Assume that an instruction sequence at an address is prefetched and stored in the instruction buffer.

この時、分岐先連想記憶はno  bitとする。すな
わち、この命令列の中には分岐する分岐命令はないと予
想されている0分岐先連想記憶はno bitなので、
次に、108番地10F番地の命令列が先読みされ、上
と同じ命令バッファの空き部分に格納される。
At this time, the branch destination associative memory is set to no bit. In other words, the 0 branch destination associative memory, which is expected to have no branch instruction in this instruction string, has no bit.
Next, the instruction string at address 108 and address 10F is prefetched and stored in the same empty part of the instruction buffer as above.

この時、命令列の先読みに際して分岐先連想記憶はbi
tになるとする。すなわち、この命令列の中には分岐す
る分岐命令があると予測されている訳である0分岐先連
想記憶は200を出力したとする0分岐先連想記憶はb
itなので、次には、110番地から117番地の命令
列に替って、200番地から207番地の命令列が先読
みされ、100番地から10F番地の命令列が格納され
ている命令バッファとは異なる命令バッファに200番
地から207番地の命令列が格納される。
At this time, when prefetching the instruction sequence, the branch destination associative memory is bi
Suppose it becomes t. In other words, it is predicted that there is a branch instruction to branch in this instruction sequence.If the 0 branch destination associative memory outputs 200, the 0 branch destination associative memory is b.
Therefore, next, instead of the instruction sequence from addresses 110 to 117, the instruction sequence from addresses 200 to 207 is prefetched, which is different from the instruction buffer in which the instruction sequence from addresses 100 to 10F is stored. The instruction sequence from addresses 200 to 207 is stored in the instruction buffer.

この時、すなわち、200番地から207番地の命令列
が先読みされる時、分岐先連想記憶はbitとし、52
0を出力したとする。分岐先連想記憶はbitなので1
次に520番地から527番地の命令列が先読みされ、
上述の2面の命令バッファとは異なる命令バッファに格
納される。
At this time, that is, when the instruction sequence from address 200 to address 207 is prefetched, the branch destination associative memory is set to bits, and 52
Suppose that 0 is output. Since the branch destination associative memory is bit, it is 1
Next, the instruction sequence from address 520 to address 527 is prefetched,
It is stored in an instruction buffer different from the two-sided instruction buffer described above.

さて、このように3面の命令バッファがすべて使用中の
状態で、100番地からの命令デコードが進んでいくと
する。そして、104番地の分岐命令がデコードされる
が、この分岐命令のデコードを完了するためには、この
分岐命令の分岐先の命令列を先読みとして格納する命令
バッファが必要である。しかし、3面の命令バッファは
すべて使用中である。よって、この分岐命令のデコード
が開始できず、そうなると、その後続にある204番地
、520番地の分岐命令のデコードも開始できない、デ
コードが開始されないので204番地。
Now, assume that the instruction decoding from address 100 is progressing with all three instruction buffers in use. Then, the branch instruction at address 104 is decoded, but in order to complete the decoding of this branch instruction, an instruction buffer is required to store the instruction string of the branch destination of this branch instruction as a look-ahead. However, all three planes of instruction buffers are in use. Therefore, decoding of this branch instruction cannot be started, and in that case, decoding of the subsequent branch instructions at addresses 204 and 520 cannot be started either.

520番地の分岐命令の判定も完了せず、3面の命令バ
ッファのいずれも解放されることはない。
The determination of the branch instruction at address 520 is also not completed, and none of the three instruction buffers are released.

故に、104番地の分岐命令のデコードは永久に完了せ
ず、デッドロック状態となる。これは問題である。
Therefore, decoding of the branch instruction at address 104 will not be completed forever, resulting in a deadlock state. This is a problem.

本発明の目的は、このデッドロック状態を回避すること
である。
The purpose of the invention is to avoid this deadlock situation.

〔問題点を解決するための手段〕[Means for solving problems]

上記目的は次のようにすれば達成される。 The above objective can be achieved as follows.

すなわち、命令の解読、実行に先立って1つ以上の命令
を先読みし格納しておく1つ以上の命令バッファを有し
、分岐命令の分岐先アドレスを記憶し、分岐命令の解読
に先立って1分岐する分岐命令があると予測される時に
は、上記分岐先アドレスを出力する分岐先連想記憶と、
上記分岐先連想記憶が出力した分岐先アドレスに基づい
て分岐先の1つ以上の命令を読出して命令バッファに格
納する手段を有するデータ処理装置において、一時退避
レジスタを設け、分岐命令の先読み時には。
That is, it has one or more instruction buffers that prefetch and store one or more instructions before decoding and executing the instruction, stores the branch destination address of the branch instruction, and stores the branch destination address of the branch instruction before decoding and executing the branch instruction. a branch destination associative memory that outputs the branch destination address when it is predicted that there is a branch instruction to branch;
In a data processing device having a means for reading out one or more instructions at a branch destination based on a branch destination address outputted by the branch destination associative memory and storing it in an instruction buffer, a temporary save register is provided, when a branch instruction is read ahead.

上記分岐先連想記憶が、分岐先アドレスを出力しなかっ
たが、命令の解読時に分岐命令であることが判明した時
に、すべての命令バッファが使用中である場合には、上
記分岐命令の分岐先アドレスを上記一時退避レジスタに
保持させ、上記分岐命令の後続の命令を解読さする手段
と、使用中であった命令バッファが未使用になった時、
上記一時退避レジスタに保持される分岐先のアドレスに
基づいて分岐先の命令列を読み出して、上記未使用とな
った命令バッファに格納させる手段を設ければ良い。
If the above branch destination associative memory does not output the branch destination address, but all instruction buffers are in use when the instruction is found to be a branch instruction when decoding, the branch destination of the above branch instruction means for holding the address in the temporary save register and decoding the instruction subsequent to the branch instruction, and when the instruction buffer that was in use becomes unused;
It is sufficient to provide means for reading out a branch destination instruction sequence based on the branch destination address held in the temporary save register and storing it in the unused instruction buffer.

〔作用〕[Effect]

上記手段を新たに設けることにより、〔発明が解決しよ
うとする問題点〕で述べた104番地の分岐命令がデコ
ードされる時、この分岐命令の分岐先のアドレスを一時
退避レジスタに保持させて、この分岐命令のデコードは
完了し、後続の命令を解読させるので、デッドロック状
態になることはない。
By newly providing the above means, when the branch instruction at address 104 mentioned in [Problems to be Solved by the Invention] is decoded, the branch destination address of this branch instruction is held in the temporary save register, Since the decoding of this branch instruction is completed and the subsequent instructions are decoded, there is no deadlock condition.

〔実施例〕〔Example〕

以下、本発明の実施例を第1図〜第6図を用いて説明す
る。
Embodiments of the present invention will be described below with reference to FIGS. 1 to 6.

第1図は先行制御装置の構成図、第2図は全体構成図、
第3図は分岐先連想記憶の構成図、第4図は命令列の例
、第5図は命令バッファ制御回路組合せ論理の構成図、
第6図はタイムチャートである。
Figure 1 is a block diagram of the advance control device, Figure 2 is a diagram of the overall configuration,
FIG. 3 is a block diagram of a branch target associative memory, FIG. 4 is an example of an instruction sequence, and FIG. 5 is a block diagram of an instruction buffer control circuit combinational logic.
FIG. 6 is a time chart.

まず、第2図を用いて全体構成を説明する。First, the overall configuration will be explained using FIG. 2.

全体は次の4つから構成される。The whole consists of the following four parts.

(1)先行制御袋[(2002):命令の先行読み出し
く先読み)、命令語の解読、命令が参照するメモリのア
ドレス計算、主記憶へのメモリ参照の起動、演算装置の
起動2分岐先連想記憶の起動を行う6詳細は第1図を用
いて後述する。
(1) Advance control bag [(2002): Advance reading of instructions), decoding of instruction word, calculation of address of memory referred to by instruction, activation of memory reference to main memory, activation of arithmetic unit 2 branch destination association Details of 6 for activating storage will be described later using FIG.

(2)演算装置(2006):先行制御装置から起動さ
れて演算を行う。先行制御装置からの起動は信号線20
22を介して行われる。起動される命令が分岐命令の時
はIBR#、DC#信号を介して付加情報が送られる。
(2) Arithmetic device (2006): Started by the preceding control device to perform arithmetic operations. The signal line 20 is used for activation from the preceding control device.
22. When the activated instruction is a branch instruction, additional information is sent via the IBR# and DC# signals.

分岐命令が起動されるとその判定結果によりTKN信号
線(判定成立時)又はNIKN信号線(判定不成立時)
が立つ、またその時、IBR#、DC#信号線を介して
送られた付加情報はそのままIBR#’。
When a branch instruction is activated, the TKN signal line (when the judgment is true) or the NIKN signal line (when the judgment is not true) depends on the judgment result.
is set, and at that time, the additional information sent via the IBR# and DC# signal lines remains as IBR#'.

DC#’信号線で返送される。IBR#、DC#の詳細
は後述する。必要なメモリデータは主記憶(2004)
から送られる。主記憶からのデータ転送に関するインタ
ーフェイスは本発明の実施例には直接関連がないので、
信号JQ2030と記すにとどめる。
It is sent back on the DC#' signal line. Details of IBR# and DC# will be described later. Necessary memory data is main memory (2004)
Sent from. Since the interface related to data transfer from main memory is not directly related to the embodiments of the present invention,
It is only written as signal JQ2030.

(3)主記憶(2004):命令、データを記憶するメ
モリである。IFA信号線2010.TA信%線201
2 、 P T A’C’?号線2016からアドレス
(番地)が送られるとその番地からその番地+7までの
命令列(8バイト)をIDATA信号線2018に送出
する。命令語はすべて4バイトとする。故に2命令を送
出する。送出時。
(3) Main memory (2004): A memory that stores instructions and data. IFA signal line 2010. TA Shin% line 201
2. PTA'C'? When an address is sent from line 2016, a command string (8 bytes) from that address to address +7 is sent to IDATA signal line 2018. All command words are 4 bytes. Therefore, two commands are sent. At the time of sending.

アドレスが送られた時のTBR#、IBRQ信号B20
14の値とHT倍信号2032の値とをそのままTBR
#’ 、IBRIl’ 、HT’信号線2020に送出
する。実施例の説明には、データの参照は関係ないので
、演算装置との間のデータに関するインターフェイスは
信号線2030を記すにとどめる。
TBR# when address is sent, IBRQ signal B20
TBR the value of 14 and the value of HT multiplied signal 2032 as is.
#', IBRIl', and HT' signal lines 2020. Since reference to data is not relevant to the description of the embodiment, only the signal line 2030 will be described as the data-related interface with the arithmetic unit.

(4)分岐先連想記憶(2000):分岐命令のアドレ
スと分岐先のアドレスとの組を記憶する連想記憶である
。詳細は第3図を用いて後述する。
(4) Branch destination associative memory (2000): This is an associative memory that stores a set of a branch instruction address and a branch destination address. Details will be described later using FIG. 3.

次に、第1図を用いて先行制御装置の内部構成を説明す
る。
Next, the internal configuration of the advance control device will be explained using FIG.

1002.1004,1006は3面の命令バッファ(
3面X16バイト)である。各面の命令バッファは低位
部(12)と高位部(h)(各8バイト)からなる。I
DATA信号線から送られてくる命令列(8バイト)は
この3面の中の低位部又は高位部の1カ所に格納される
。どこに格納されるかはIBR#’ 、EBRQ’信号
線2020から送られてくる。命令バッファ選択回路は
それを調べて格納させるべき1カ所に格納する。なお、
その際、HT”信号線が「1」の時は、命令バッファに
対応する分岐先連想記憶用命令バッファフラグ1018
,1028.1038 (後述)が[1」の場合のみ格
納を行い、rOJの場合はどこにも格納しない。
1002, 1004, 1006 are three-sided instruction buffers (
3 sides x 16 bytes). The instruction buffer of each plane consists of a low order part (12) and a high order part (h) (8 bytes each). I
The command string (8 bytes) sent from the DATA signal line is stored in one of the lower or higher parts of these three planes. The location where the data is stored is sent from the IBR#' and EBRQ' signal lines 2020. The instruction buffer selection circuit examines it and stores it in one location where it should be stored. In addition,
At that time, when the HT" signal line is "1", the branch destination associative memory instruction buffer flag 1018 corresponding to the instruction buffer
, 1028.1038 (described later) is stored only when it is [1], and is not stored anywhere in the case of rOJ.

1042は現在解読中の命令を保持する命令レジスタl
R11044及び1046は現在IRにある命令でどの
面の命令バッファから切り出されたかを示すレジスタD
C#及び命令バッファのどの位置(バイト位置)から切
り出されたかを示すレジスタDCΔである。
1042 is an instruction register l that holds the instruction currently being decoded.
R11044 and 1046 are registers D indicating from which side of the instruction buffer the instructions currently in the IR were extracted.
This is a register DCΔ indicating from which position (byte position) of the C# and instruction buffer is extracted.

アライナ1008は命令バッファより命令を切り出して
命令レジスタに格納する。どの命令バッファから切り出
すかはDC#信号1072によって与えられ、どの位置
から切り出すかはDCΔ信号をNot L/た値によっ
て与えられる。 Gatsl 176は、前の命令のデ
コードが完了した時(すなわち、Br End+0th
er Endの時)のみ、その値をアライナに与える。
The aligner 1008 extracts an instruction from the instruction buffer and stores it in an instruction register. The DC# signal 1072 determines from which instruction buffer the instruction is extracted, and the position from which the instruction is extracted is determined by the value obtained by multiplying the DCΔ signal by Not L. Gatsl 176 determines when the decoding of the previous instruction is complete (i.e. Br End+0th
er End), the value is given to the aligner.

前の命令のデコードが完了しないと次の命令のIRへの
格納は行われない。
The next instruction will not be stored in the IR until the decoding of the previous instruction is completed.

1050は分岐命令判定回路、1052は命令が参照す
るメモリのアドレスを計算するアドレス計算機、105
4は命令を解読する解読器である。
1050 is a branch instruction determination circuit; 1052 is an address calculator that calculates the memory address referenced by the instruction; 105
4 is a decoder that decodes instructions.

解読器はデコードが分岐命令以外のデコードが完了する
と、0ther End信号を「1」にする。
When the decoding of instructions other than branch instructions is completed, the decoder sets the 0ther End signal to "1".

1060は先読みする命令列の先頭アドレスを保持する
IFAレジスタ、1058はそのアドレスのインクリメ
ンタである。インクリメンタは2単位時間後にインクリ
メント値を出力する。
1060 is an IFA register that holds the start address of the instruction string to be prefetched, and 1058 is an incrementer for that address. The incrementer outputs an increment value after two unit times.

IBRn信号線2014は、IFA信号線2010のア
ドレスで読み出される命令列が命令バッファの低位部に
格納すべきとき「1」となる。この信号はIFAレジス
タの第3ビツトを反転してつくられる。
The IBRn signal line 2014 becomes "1" when the instruction string read at the address of the IFA signal line 2010 is to be stored in the lower part of the instruction buffer. This signal is created by inverting the third bit of the IFA register.

また、分岐先連想記憶がhit L/た時にもこの信号
は「1」となる。
This signal also becomes "1" when the branch destination associative memory hits L/.

IBR#信号線については後述する。1010〜103
8は命令バッファ制御用の状態フラグ群であり、105
6は命令バッファ制御用の組合せ論理である。後者につ
いては、詳細は第5図を用いて後述する。前者について
は以下で説明する。
The IBR# signal line will be described later. 1010-103
8 is a group of status flags for controlling the instruction buffer; 105
6 is a combinational logic for controlling the instruction buffer. The latter will be described in detail later using FIG. 5. The former will be explained below.

命令バッファ制御用の状態フラグ群は次の3種類から構
成される。
The status flag group for instruction buffer control consists of the following three types.

(1)ビジー・フラグBSO,BS1.B52(101
0,1020,1030,):3面ある命令バッファに
対応して3つある。「1」である時はその命令バッファ
が使用中であることを示し、fO」である時は未使用で
あること示す。
(1) Busy flag BSO, BS1. B52 (101
0, 1020, 1030,): There are three corresponding to the three-sided instruction buffer. When it is "1", it indicates that the instruction buffer is in use, and when it is "fO", it indicates that it is unused.

(2)分岐先連想記憶HitフラグHog、HOh。(2) Branch destination associative memory Hit flag Hog, HOh.

Hlfl、Hlh、H2Q、H2h  (1012゜1
014. 1022. 1024. 1032゜103
4):3面、低位部・高位部からなる命令バッファに対
応して6つある。「1」である時は、命令バッファのそ
の部分の命令列の先読み時に分岐先連想記憶がり、it
 したことを示し、「0」である時は−(no bit
)であったことを示す。「1」であるのは、命令バッフ
ァのその部分に読み出された命令列の中に分岐する分岐
命令があると予81’lされている時である。
Hlfl, Hlh, H2Q, H2h (1012°1
014. 1022. 1024. 1032°103
4): There are six corresponding to the instruction buffer consisting of three planes, a low-order part and a high-order part. When it is "1", the branch destination associative memory is stored when the instruction string in that part of the instruction buffer is read ahead, and it
When it is "0", -(no bit
). It is "1" when it is predicted that there is a branch instruction in the instruction string read into that part of the instruction buffer.

(3)分岐先連想記憶用命令バッファフラグTO9T1
.T2 (1018,1028,1038)=3面ある
命令バッファに対応して3つある。
(3) Branch destination associative memory instruction buffer flag TO9T1
.. T2 (1018, 1028, 1038)=There are three corresponding to the three-sided instruction buffer.

「1」である時は、その命令バッファが、分岐先連想記
憶が出力した分岐先のアドレスに基づいた命令列を格納
するための命令バッファであることを示す。「0」であ
る時は、そうではなく、分岐命令を先読みする時には分
岐先連想記憶はhit Ltておらず、解読中に分岐命
令であることが判明して、その分岐命令の分岐先の命令
列を格納するために使う命令バッファであることを示す
When it is "1", it indicates that the instruction buffer is an instruction buffer for storing an instruction sequence based on the branch destination address output by the branch destination associative memory. When it is "0", this is not the case; when a branch instruction is prefetched, the branch destination associative memory is not hit Lt, and during decoding it is found to be a branch instruction, and the branch destination instruction of the branch instruction is not hit. Indicates an instruction buffer used to store columns.

更に、先行制御装置内には、一時退避レジスタT A 
qave9178 +セレクタ9180.Sフラグ91
86 、 Set TA 5ave信号線9182 、
 Re5etS信号tfA9184.Sイご傍線9[8
8がある。Sフラグは、一時退避レジスタに分岐先アド
レスを保持中ならば「1」となるフラグである。
Furthermore, in the preceding control device, there is a temporary save register T A
qave9178 + selector 9180. S flag 91
86, Set TA 5ave signal line 9182,
Re5etS signal tfA9184. S Igo side line 9 [8
There are 8. The S flag is a flag that becomes "1" if the branch destination address is held in the temporary save register.

次に、第3図を用いて分岐先連想記憶の内部構成を説明
する。
Next, the internal structure of the branch destination associative memory will be explained using FIG.

分岐先連想記憶は上述したように、分岐命令のアドレス
と分岐先のアドレスの組を記憶している。
As described above, the branch destination associative memory stores a set of a branch instruction address and a branch destination address.

分岐命令アドレスはP I Cpart :3002に
、分岐先アドレスはPIA part 3004にそれ
ぞれ記憶される。IFl、4傍線2010がら先読みア
ドレスが送られて来ると1分岐先連想記憶のHitDe
tecter3000は、そのアドレスで先読みされる
範囲(幅8バイト)内に、PICpartの分岐命令ア
ドレスがあるか否かを検索し、あればHIT信号線11
72にrlJを出力し、P T A信号線2016にそ
の分岐命令アドレスに対応する分岐先のアドレスを出力
する。なければHIT信号線に「0」を出力する。
The branch instruction address is stored in P I C part 3002, and the branch destination address is stored in PIA part 3004. IFl, when the look-ahead address is sent from the 4th side line 2010, HitDe of the 1st branch destination associative memory is sent.
Tecter 3000 searches whether there is a branch instruction address of PICpart within the prefetched range (width 8 bytes) at that address, and if so, sends the HIT signal line 11.
72, and outputs the branch destination address corresponding to the branch instruction address to the PTA signal line 2016. If not, "0" is output to the HIT signal line.

PTA信号線は主記憶に転送される一方で1分岐先連想
記憶のHit Detsctarにも入力されるのでP
TA信号線に分岐先アドレスが出力された時には、IF
A信号線2010から先読みアドレスが送られた時と同
一の動作をする。
While the PTA signal line is transferred to the main memory, it is also input to the Hit Detstar of the associative memory at one branch destination, so P
When the branch destination address is output to the TA signal line, the IF
The same operation as when a prefetch address is sent from the A signal line 2010 is performed.

分岐先連想記憶がHit Detectorで行う検索
は従来の技術で構成可能であり、 Hit Detec
terを含めた分岐先連想記憶のこれ以上の詳細な説明
は実施例の説明には関連ないので割愛する。
The search that the branch destination associative memory performs with the Hit Detector can be configured using conventional technology, and the Hit Detector
Further detailed explanation of the branch destination associative memory including ter is omitted since it is not relevant to the explanation of the embodiment.

次に、命令バッファ制御組合せ論理1056を、第5図
を用いて説明する。
Next, the instruction buffer control combinational logic 1056 will be explained using FIG.

この組合せ論理の入力としては、上述した命令バッファ
制御用の状態フラグ群3種と、HIT信号線Br In
5t信号線、DC#信号線、DCΔ信号線、IBR12
信号線、S信号線、TKN、NTKN、DC3′、IB
R#’の各信号線がある。
As inputs to this combinational logic, the three types of status flag groups for controlling the instruction buffer described above and the HIT signal line Br In
5t signal line, DC# signal line, DCΔ signal line, IBR12
Signal line, S signal line, TKN, NTKN, DC3', IB
There are R#' signal lines.

この組合せ論理の中には、真理値表(「1」は真、「0
」は偽、「−」はdon’t careを表わす)でそ
の機能を記述した論理5000〜5006と、論理式で
その機能を記述した論理10008゜5010〜502
2,10024.5026〜5038.10040,5
402〜5054゜10056〜10060がある。以
下、順に説明する。
In this combinatorial logic, there is a truth table (“1” is true, “0” is true,
” means false, “-” means don't care) Logics 5000 to 5006 that describe their functions, and Logics 10008゜5010 to 502 that describe their functions using logical expressions.
2,10024.5026-5038.10040,5
There are 402 to 5054 degrees and 10056 to 10060 degrees. Below, they will be explained in order.

(1) 01. All BS生成論理(5000):
01は、ビジー−7ラグBSO,BSI、B52(7)
うち「0」である最初の番号を示す。AllB5はビジ
ー・フラグが3つ共「1」であることを示す。
(1) 01. All BS generation logic (5000):
01 is Busy-7 Lug BSO, BSI, B52 (7)
The first number is "0". AllB5 indicates that all three busy flags are "1".

(2) 02 、 All Not T生成論理(50
00):02は、分岐先連想記憶用命令バッファフラグ
To、Tl、T2のうち「1」である最後の番号を示す
。All Not Tはこのフラグが3つ共rOJであ
ることを示す。
(2) 02, All Not T generation logic (50
00):02 indicates the last number which is "1" among the branch destination associative memory instruction buffer flags To, Tl, and T2. All Not T indicates that all three flags are rOJ.

(3)IBR#信号生成論理(5004): tBR#
は、新規にビジーフラグを「1」にした時、すなわち、
後述するSet BSO,Set BS 1゜5etB
S2のいずれかが「1」の時、その番号を示す、そうで
ない時は、DC#信号線1072の値を示す。
(3) IBR# signal generation logic (5004): tBR#
is when the busy flag is newly set to "1", that is,
Set BSO, Set BS 1°5etB described later
When either S2 is "1", it indicates that number; otherwise, it indicates the value of the DC# signal line 1072.

(4)DCQ信号生成論理(5006):DCIIは。(4) DCQ signal generation logic (5006): DCII.

現在命令レジスタIRに格納されている命令が命令バッ
ファの低位部から切り出されたか、高位部から切り出さ
れたかを示す。「1」ならば低位部、「0」ならば高位
部を示す。
Indicates whether the instruction currently stored in the instruction register IR is extracted from the lower part or the higher part of the instruction buffer. "1" indicates a low-order part, and "0" indicates a high-order part.

この信号は、現在IRにある命令が命令バッファのどの
位置から切り出されたかを示すDCΔ信号線の値からつ
くられる。
This signal is generated from the value of the DCΔ signal line indicating from which position in the instruction buffer the instruction currently in the IR is extracted.

(5) Set T A 5ave生成論理(1005
8):5etTAsave信号はTA 5ave レジ
スタのセットパルスであり、TAsaveレジスタのデ
コード中の分岐命令の分岐先アドレスを保持させ、同時
にSフラグを「1」にする、 56tT A 5ave
信号が「1」になるのは、分岐先連想記憶がbitして
いない分岐命令のデコード時(Br In5t−■)か
つ、この分岐命令の分岐先命令列を格納するための命令
バッファが無い時(AIIBS)である。
(5) Set T A 5ave generation logic (1005
8): The 5etTAsave signal is a set pulse for the TA5ave register, which causes the TAsave register to hold the branch destination address of the branch instruction being decoded, and at the same time sets the S flag to "1".56tTA5ave
The signal becomes "1" when decoding a branch instruction for which the branch destination associative memory has no bits (Br In5t-■) and when there is no instruction buffer to store the branch destination instruction string of this branch instruction. (AIIBS).

(6) Set BSO,Set BSI、 Set 
BS2生成論理(1008,10024,10040)
 :Set BSO,Set BSI、 Set BS
2信号線1082.1102.1122はビジーフラグ
BSO,BSI、BS2のセット信号である。
(6) Set BSO, Set BSI, Set
BS2 generation logic (1008, 10024, 10040)
:Set BSO, Set BSI, Set BS
2 signal lines 1082.1102.1122 are set signals for busy flags BSO, BSI, and BS2.

この信号は10008,10024.10040の論理
で生成される。この論理の意味は分岐先連想記憶がhi
t した時、又は、分岐命令がデコード中であり、かつ
その分岐命令が先読みされた際には分岐先連想記憶がh
it していなかった時、又は、Sフラグが「1」の時
(すなわち、HiT+Br In5t−H+ Sの時)
、使用中でない命令バッファがある(AIIBS)なら
ば、01によって定められる命令バッファ(01= O
なら1BRo、01=1なら1BR1,01=2なら1
BR2)を割当てることができる。
This signal is generated with logic 10008, 10024.10040. The meaning of this logic is that the branch destination associative memory is hi
t, or when a branch instruction is being decoded and the branch instruction is prefetched, the branch destination associative memory is
When it is not set or when the S flag is "1" (i.e., when HiT+Br In5t-H+S)
, if there is an instruction buffer not in use (AIIBS), then the instruction buffer defined by 01 (01=O
then 1BRo, 01=1 then 1BR1, 01=2 then 1
BR2) can be assigned.

この論理により命令バッファのいずれかが使用中でなく
なった(AIIBS)時、一時退避レジスタが分岐先ア
ドレスを保持中(S)ならば、使用中でなくなった命令
バッファに対応する5etBSO又は5etBS1又は
5etBS2が「1」となり、命令バッファが割り当て
られる。
According to this logic, when one of the instruction buffers is no longer in use (AIIBS), if the temporary save register is holding the branch destination address (S), 5etBSO, 5etBS1, or 5etBS2 corresponding to the instruction buffer that is no longer in use becomes "1" and an instruction buffer is allocated.

なお、ここでHは、H生成論理によりつくられる。D(
4は現在デコード中の命令があった命令バッファの番号
を示し、DCQはその命令が命令バッファの低位部にあ
れば「1」、高位部にあれば「0」となる。したがって
、現在デコード中の命令が命令バッファX (=0,1
゜2)にあったとすれば、H=HXD、−DCQ+HX
Q−DCQとなる。更に命令バッファの低位部ニアッた
とすればI(=HXQ(X=0.1゜2)となり、Hは
、その命令が読み出された時に分岐先連想記憶がhit
 L/たか否かを表わすことになる。また、命令バッフ
ァの高位部にあったとしてもH=HXh (X=0.1
+ 2)となり、Hは同様の意味を表わすことになる。
Note that H here is created by H generation logic. D(
4 indicates the number of the instruction buffer in which the instruction currently being decoded is located, and DCQ is "1" if the instruction is in the lower part of the instruction buffer, and "0" if it is in the higher part. Therefore, the instruction currently being decoded is in the instruction buffer
゜2), H=HXD, -DCQ+HX
It becomes Q-DCQ. Furthermore, if the lower part of the instruction buffer is near, then I (= H
It represents whether L/takashi or not. Also, even if it is in the high-order part of the instruction buffer, H=HXh (X=0.1
+2), and H represents the same meaning.

(7) Re5et S生成論理(1,OO60)  
: Re5et S信号9184はSフラグを「0」に
する信号である。この信号は、一時退避レジスタが分岐
先アドレスを保持中(S)に、命令バッファが割りあて
られた(Set BSO,Set BS 1又は5et
BS2が「1」)時に「1」となる。この信号は、セレ
クタ9180にも達しており、セレクタ9180はこの
信号が「1」の時のみTA 5aveレジスタの値をT
A信号線に送出する。この時、IBR#、IBRρ信号
線には「割り当てられた命令バッファ番号」と「1」が
送出され1分岐先命令列はこの命令バッファに格納され
ることになる。
(7) Re5et S generation logic (1, OO60)
: Re5et S signal 9184 is a signal that sets the S flag to "0". This signal indicates that the instruction buffer is allocated (Set BSO, Set BS 1 or 5et) while the temporary save register is holding the branch destination address (S).
It becomes "1" when BS2 is "1"). This signal also reaches the selector 9180, and the selector 9180 changes the value of the TA5ave register only when this signal is "1".
Send to A signal line. At this time, the "allocated instruction buffer number" and "1" are sent to the IBR# and IBRρ signal lines, and the one branch destination instruction string is stored in this instruction buffer.

(8)  Re5et  B  S  O、Re+qe
t  B  S  1  、  !1eset  HS
  2生成論理(5010,5026,5042):R
,eset B S O、Re5et B S 1. 
Re5et B S 2はビジー・フラグBSO,BS
L、BS2のIJシャット号である。この信号は501
0,5026゜5042の論理で生成される。各論理式
は、分岐判定が演算器で下って、分岐成立であり、その
分岐命令の格納されていた命令バッファが第0、第1.
第2番目であった(T K N・(DC#“=O)、T
KN・CDC1t’ =1)、TKN・(DC#’ =
2))か、又は1分岐不成立であり、その分岐命令の分
岐先の命令が格納されている命令バッファが第0.第1
.第2番目であった(NTKN・(IBR#’ =O)
、NTKN。
(8) Re5et BSO, Re+qe
t B S 1, ! 1eset HS
2 generation logic (5010, 5026, 5042): R
, eset B S O, Re5et B S 1.
Re5et B S 2 is busy flag BSO, BS
L, BS2 IJ Shut. This signal is 501
It is generated with the logic of 0,5026°5042. For each logical expression, the branch judgment is made by the arithmetic unit, the branch is taken, and the instruction buffers in which the branch instruction was stored are the 0th, 1st, .
It was the second (T K N・(DC#“=O), T
KN・CDC1t' = 1), TKN・(DC#' =
2)) Or one branch is not taken, and the instruction buffer in which the branch destination instruction of that branch instruction is stored is 0. 1st
.. It was the second (NTKN・(IBR#'=O)
, N.T.K.N.

(IBR#’ =1)、NTKN・(I B R#’ 
= 2))時にrlJとなる。
(IBR#' = 1), NTKN・(IBR#'
= 2)) then rlJ.

(9) Set HOQ、 Set )IOh、 Se
t HI Q、 5etH1h、Set H2O,Se
t H2h生成論理(5012,501G、5028,
5032゜5044.5048):Set HOQ、S
et HOh。
(9) Set HOQ, Set )IOh, Se
t HI Q, 5etH1h, Set H2O, Se
t H2h generation logic (5012, 501G, 5028,
5032゜5044.5048):Set HOQ,S
et HOh.

Set HI Q、 Set Hl h、 Set I
42Q、 5etH2h信号線は1分岐先連想記憶1(
itフラグHOA、HOh、HIQ、Hlh、H2O,
H2hのセット信号である。この信号は、分岐先連想記
憶がbitであり、その式、読み出そうとしていた命令
が格納される命令バッファが、セットしようとしている
分岐連想記憶Bitフラグに対応する命令バッファの、
対応する低位部又は高位部であることを示す。
Set HI Q, Set Hl h, Set I
42Q, 5etH2h signal line is 1 branch destination associative memory 1 (
it flag HOA, HOh, HIQ, Hlh, H2O,
This is the H2h set signal. This signal indicates that the branch destination associative memory is a bit, and the instruction buffer in which the instruction to be read is stored corresponds to the branch associative memory Bit flag to be set.
Indicates the corresponding lower part or higher part.

(10)Reset HQ Q 、 Re5et HO
h 、 Re5et HI Q 。
(10) Reset HQ Q, Re5et HO
h, Re5et HI Q.

Re5ot  H1h  、  Re5et  H2f
l  T  Re5et  H2h  生成論理(50
14,5018,5030゜5034.50’46.5
050):Re5et HOQ。
Re5ot H1h, Re5et H2f
l T Re5et H2h Generation logic (50
14,5018,5030°5034.50'46.5
050): Re5et HOQ.

Re5et  HOh 、Re5et  HI  Q 
、Re5et  )−I 1 h 。
Re5et HOh, Re5et HI Q
, Re5et)-I1h.

Re5et H2Q 、 Re5et H2h信号線は
、分岐先連想記憶Hitフラグのリセット信号である。
The Re5et H2Q and Re5et H2h signal lines are reset signals for the branch destination associative memory Hit flag.

この信号は分岐先連想記憶が宿τであり、その時、読み
出そうとしていた命令が格納される命令バッファが、リ
セットしようとしている分岐先連想記憶旧tフラグに対
応する命令バッファの。
This signal indicates that the branch target associative memory is at τ, and the instruction buffer storing the instruction to be read at that time is the instruction buffer corresponding to the branch target associative memory old t flag to be reset.

対応する低位部又は高位部であることを示す。Indicates the corresponding lower part or higher part.

(11)Set T O、Set T 1 、 Set
 T 2生成論理(5020,5036,5052):
Set T(J。
(11) Set T O, Set T 1, Set
T2 generation logic (5020, 5036, 5052):
Set T(J.

Set T 1 、 Set T 2は分岐先連想記憶
用命令バッファフラグTo、Tl、I2のセット信号で
ある。この信号は、分岐先連想記憶がhit L/て、
その時、対応するビジー・フラグをセラ1−シているこ
とを示す。
Set T 1 and Set T 2 are signals for setting branch destination associative memory instruction buffer flags To, Tl, and I2. This signal indicates that the branch destination associative memory is hit L/.
At that time, it indicates that the corresponding busy flag is being erased.

(12)Reset T O、Re5st T 1 、
 Re5et T 2生成論理(5022、5038、
5054) : Re5etT O、Re5et T 
1 、 Re5et T 2はTo、Tl。
(12) Reset T O, Re5st T 1 ,
Re5et T 2 generation logic (5022, 5038,
5054): Re5etT O, Re5etT
1, Re5et T2 is To, Tl.

I2のリセット信号である。この信号は、対応するビジ
ー・フラグがrlJにされる時で、その時IRに格納さ
れているのが分岐命令であるがその分岐命令を読み出す
時、分岐先連想記憶がhit L/ていない場合(Br
InS−H−8etBSO9Br Ins?H−5et
 B S 1 、 Br In5t−H−5etBS2
)、又は対応するビジー・フラグが「0」にされる場合
(Reset B S O、Re5et B S 1 
This is a reset signal for I2. This signal is generated when the corresponding busy flag is set to rlJ, and the branch instruction stored in the IR at that time is read, but if the branch destination associative memory is not hit L/( Br
InS-H-8etBSO9Br Ins? H-5et
B S 1 , Br In5t-H-5etBS2
), or if the corresponding busy flag is set to ``0'' (Reset B SO, Re5et B S 1
.

Re5et B S 2 )に「1ノとなる。Re5et B S 2) “It becomes 1 no.

(13)Br End生成論理(10056):BrE
nd信号は分岐命令のデコードが完了したことを示す。
(13) Br End generation logic (10056): BrE
The nd signal indicates that decoding of the branch instruction is complete.

この信号は分岐命令がデコードされる(Br In5t
)と「1」となる。
This signal is used to decode the branch instruction (Br In5t
) becomes “1”.

次に、実施例の動作を、第4図の命令列を処理した時を
例に、第6A−D図のタイムチャートを用いて説明する
Next, the operation of the embodiment will be explained using the time chart of FIGS. 6A to 6D, taking as an example the case where the instruction sequence of FIG. 4 is processed.

まず、4006の命令列は命令バッファIBROQ。First, the instruction string 4006 is in the instruction buffer IBROQ.

IBROhに読み出されて処理されているとする6また
1分岐先連想記憶は(分岐命令アドレス、分岐先アドレ
ス)の組が(IOC,200)。
Assuming that the six or one branch destination associative memory is read out and processed by IBROh, the set (branch instruction address, branch destination address) is (IOC, 200).

(204,520)の2組を記憶しているとする。Assume that two sets (204, 520) are stored.

ビジー・フラグBSOは「1]であり、DC#は「0」
である。時刻ToでIFAレジスタに100が格納され
たとする。
Busy flag BSO is “1” and DC# is “0”
It is. Assume that 100 is stored in the IFA register at time To.

IFA信号を介して、主記憶と分岐先連想記憶に100
が送られ、主記憶には同時にI BH3゜IBRQ信号
線を介してrOJ、rlJが送られる。主記憶は3単位
時間後のI3に、IDATA信号を介して100〜10
7番地の命令列を返送し、同時にIBR#’ 、IBR
Q’信号線を介してrOJ、rlJの返送する。命令バ
ッファ選択回路1000はこのrOJ、rlJを見て、
時刻T4において命令バッファI BROQにこの命令
列を格納する。一方、分岐先連想記憶は、IFAイd号
線で100が送られてくるが、100〜107の範囲を
分岐命令のアドレスとして持つ絹は記憶していないので
、 )lit信号a1172を介して時刻T1に「O」
を返送する。
100 in main memory and branch destination associative memory via IFA signal.
is sent to the main memory, and simultaneously rOJ and rlJ are sent to the main memory via the IBH3°IBRQ signal line. The main memory is sent to I3 after 3 units of time from 100 to 10 through the IDATA signal.
Returns the instruction string at address 7, and at the same time IBR#', IBR
rOJ and rlJ are returned via the Q' signal line. The instruction buffer selection circuit 1000 looks at these rOJ and rlJ,
At time T4, this instruction sequence is stored in the instruction buffer I BROQ. On the other hand, the branch destination associative memory receives 100 on the IFA ID line, but since it does not store silk that has a range of 100 to 107 as a branch instruction address, ``O''
to be sent back.

この時、先行制御装置では、論理5014は「1」とな
るので、HOQは時刻T2より「0」となる。
At this time, in the preceding control device, the logic 5014 becomes "1", so HOQ becomes "0" from time T2.

IFAレジスタ中の100はインクリメンタ1058で
+8され、108は時刻1゛2でIFAレジスタに格納
される。
100 in the IFA register is incremented by 8 by the incrementer 1058, and 108 is stored in the IFA register at time 12.

IFA信号を介して、主記憶と分岐先連想記憶に108
が送られ、主記憶には同時にIBR#。
108 to main memory and branch destination associative memory via IFA signal.
is sent, and IBR# is simultaneously stored in main memory.

IBRcL信号線を介してrOJ、rOJが送られる。rOJ and rOJ are sent via the IBRcL signal line.

主記憶は3単位時間後のT5に、IDATA信号線を介
して108〜IOF番地の命令列を返送し、同時に丁B
R#’ 、IBRQ’信号線を介してrOJ、rOJを
返送する。命令バッファ選択回路1000はこのrOJ
、rOJを見て、時刻T6に命令バッファIBROhに
この命令列を格納する。一方、分岐先連想記憶は、IF
A信号線で108が送られてくるが、108〜IOFの
範囲の分岐命令のアドレスの組(IOC,200)を持
つのでHiT信号線、PTA信号線を介してrlJ 、
200を返送する。
The main memory returns the instruction sequence from address 108 to IOF via the IDATA signal line at T5 after 3 unit time, and at the same time
rOJ and rOJ are returned via the R#' and IBRQ' signal lines. The instruction buffer selection circuit 1000
, rOJ and stores this instruction sequence in the instruction buffer IBROh at time T6. On the other hand, branch destination associative memory is IF
108 is sent on the A signal line, but since it has a set of branch instruction addresses (IOC, 200) in the range of 108 to IOF, rlJ is sent via the HiT signal line and PTA signal line.
200 will be returned.

この時、先行制御装置では、5etBS1信号線。At this time, the preceding control device uses the 5etBS1 signal line.

5etT1信号線、5etI(Oh信号線が「1」とな
るので、BSI、Tl、HOhが時刻T4で「]」にな
る。
Since the 5etT1 signal line and the 5etI(Oh signal line become "1", BSI, Tl, and HOh become "]" at time T4.

PTA信号線−ヒの200は、時刻T3より主記憶と分
岐先連想記憶に送られ、主記憶には同時にIBR#、I
BRQ、HT信号線を介して「1」。
The PTA signal line 200 is sent to the main memory and the branch target associative memory from time T3, and the main memory simultaneously receives IBR# and IBR#.
“1” via the BRQ and HT signal lines.

「1」、「1」が送られる。主記憶は3単位時間後のT
6に、IDATA信号線を介して200〜207番地の
命令列を返送し、同時にIBR#’ 。
“1” and “1” are sent. Main memory is T after 3 units of time
6, the instruction string at addresses 200 to 207 is returned via the IDATA signal line, and at the same time IBR#'.

TBRQ’ 、HT’信号線を介してrlJ 、rlJ
rlJ, rlJ via TBRQ', HT' signal lines
.

「1」を返送する。命令バッファ選択回路1000はこ
のrl」、rl」、rl」及びT1の値「1」を見て、
時刻T7において、命令バッファIBRLQにこの命令
列を格納する。一方、分岐先連想記憶ではp”rAm号
線を介して200が送られてくる。
Return "1". The instruction buffer selection circuit 1000 sees the value "1" of these "rl", "rl", "rl" and T1,
At time T7, this instruction sequence is stored in the instruction buffer IBRLQ. On the other hand, 200 is sent to the branch destination associative memory via the p''rAm line.

分岐先連想記憶は200〜207の範囲の分岐命令のア
ドレスの組(204,520)を持つので、HiT信号
線、PTA信号線を介してrlJ、520を返送する。
Since the branch destination associative memory has a set of addresses (204, 520) for branch instructions in the range 200 to 207, rlJ, 520 is returned via the HiT signal line and PTA signal line.

PTA信号線上の520は時刻T4より主記憶と分岐先
連想記憶に送られ、主記憶には同時にIBR#、IBR
Q、HT信号線を介して「2」。
520 on the PTA signal line is sent to the main memory and branch destination associative memory from time T4, and the main memory simultaneously receives IBR#, IBR
Q, "2" via the HT signal line.

rl」、rlB が送られる。rl'' and rlB are sent.

この時、先行制御装置では、5etBS2信号線。At this time, the preceding control device uses the 5etBS2 signal line.

5etT2信号線、SetHIM信号線がrlJとなる
ので、BS2.T2.HIQが時刻T5で「1」になる
Since the 5etT2 signal line and the SetHIM signal line are rlJ, BS2. T2. HIQ becomes "1" at time T5.

BSO,BSI、BS2とも時刻T5では「1」となる
ので−AIIBS 信号も「1」となる。一方To、T
l、T2は、それぞれrOJ 、rlJ 。
Since BSO, BSI, and BS2 all become "1" at time T5, the -AIIBS signal also becomes "1". On the other hand, To, T
l and T2 are rOJ and rlJ, respectively.

「1」なのでAll Not T信号はrOJ 、02
信号は2となる。
Since it is "1", the All Not T signal is rOJ, 02
The signal will be 2.

さて、命令レジスタIRには、命令列4006の命令で
100番地より前の命令が時刻T5以前に格納されてデ
コードされているとする。そして、時刻T5においては
100番地の命令がIHに格納され、デコードされ、時
刻T6において104番地の分岐命令がIRに格納され
るとする。この時、CDI信号はO,DCΔ信号は4で
ある。
Now, it is assumed that the instructions in the instruction sequence 4006 before address 100 are stored and decoded in the instruction register IR before time T5. Then, at time T5, the instruction at address 100 is stored in IH and decoded, and at time T6, the branch instruction at address 104 is stored in IR. At this time, the CDI signal is O and the DCΔ signal is 4.

分岐命令なので、Br In5t信号は「1」となる・
この分岐命令に対しては分岐先連想記憶がbit シて
いないのでHは「0」であり、命令バッファが空いてい
ない(AIIBS)なので、Set T A 5ave
信号が「1」となる。これにより、TA 5av6 レ
ジスタにはアドレス計算器の出力する800が格納され
、Sフラグは「1」になる、また、Br End信号は
rlJであり、DCEnd信号も「1」となる。
Since it is a branch instruction, the Br In5t signal will be "1".
For this branch instruction, the branch destination associative memory has no bits, so H is 0, and the instruction buffer is not empty (AIIBS), so Set T A 5ave
The signal becomes "1". As a result, 800 output from the address calculator is stored in the TA 5av6 register, the S flag becomes "1", the Br End signal is rlJ, and the DCEnd signal also becomes "1".

これにより、分岐命令の次の命令がIRへ格納されてデ
コードが開始される。
As a result, the next instruction after the branch instruction is stored in the IR and decoding is started.

また、DC8は「0」となり、DCQは「4」となる。Further, DC8 becomes "0" and DCQ becomes "4".

このように、104番地の分岐命令はデコードが完了し
、デッドロック状態とはならない。
In this way, the branch instruction at address 104 is completely decoded and no deadlock condition occurs.

時刻T8でこの分岐命令の判定が行われ、TKN信号が
「1」になるとする。この時、DC#“は「0」となる
It is assumed that this branch instruction is determined at time T8 and the TKN signal becomes "1". At this time, DC#" becomes "0".

これにより、 Re5et B S O信号が「1」と
なり、時刻T9よりBSOは「0」となる。
As a result, the Re5et B SO signal becomes "1", and the BSO becomes "0" from time T9.

S’75グが「1」であり、BSOがrOJであるので
T9より5etBSOが「1」となりResetSも「
1」となる。36tBSOが「1」なのでIBR#は「
0」である。
Since S'75g is "1" and BSO is rOJ, 5etBSO is "1" from T9 and ResetS is also "
1”. Since 36tBSO is “1”, IBR# is “
0".

Re5et Sにより時刻TIOよりSフラグはrOJ
となり、時刻T9よりTAsave レジスタの値80
0はTA信号線に送出される。IBR#はrOJなので
TA信号線に基づいて読み出された命令列はIBROに
格納されることになるにのように、使用中であった命令
バッファが未使用になった時、一時退避レジスタに保持
されていた分岐先アドレスに基づいて命令列の読みが行
われ、命令列はその未使用になった命令レジスタに格納
される。
Due to Re5et S, the S flag is set to rOJ from time TIO.
Therefore, from time T9, the value of the TAsave register is 80.
0 is sent on the TA signal line. Since IBR# is rOJ, the instruction string read based on the TA signal line will be stored in IBRO.When the instruction buffer that was in use becomes unused, it will be stored in the temporary save register. The instruction string is read based on the held branch destination address, and the instruction string is stored in the unused instruction register.

この一時退避レジスタを用いる方法は、分岐先連想記憶
を用いていないデータ処理装置にも適用できる。
This method of using temporary save registers can also be applied to data processing devices that do not use branch destination associative memory.

すべての命令バッファが先行する分岐命令の分岐先の命
令列を格納するために使用中であり、その分岐命令の判
定が下っていない間に、別の分岐命令のデコードが開始
されたとする。この分岐命令のデコードは保留していお
いてもデッドロック状1へではない(先行する分岐命令
の判定は必ず下るから)が、保留中はデコード処理が止
まるという問題がある。この時、上述したように、この
分岐命令の分岐先のアドレスを一時退避レジスタに保持
させて1分岐命令のデコードは完了させて、後続命令の
デコードを行う。いずれかの分岐命令の判定が下り、命
令バッファのいずれかが使用中でなくなった時点で、一
時退避レジスタ中の分岐先アドレスで分岐先命令列を読
み出し、その命令バッファに格納すれば良い。
Assume that all instruction buffers are being used to store the instruction sequence of the branch destination of the preceding branch instruction, and decoding of another branch instruction is started while the decision on that branch instruction has not been made. Even if the decoding of this branch instruction is suspended, it will not result in a deadlock condition 1 (because the judgment of the preceding branch instruction will always be negative), but there is a problem that the decoding process will stop while it is suspended. At this time, as described above, the address of the branch destination of this branch instruction is held in the temporary save register, the decoding of the one branch instruction is completed, and the subsequent instruction is decoded. When one of the branch instructions is determined and one of the instruction buffers is no longer in use, the branch destination instruction sequence can be read out using the branch destination address in the temporary save register and stored in the instruction buffer.

この一時退避レジスタを設ける方法は、分岐先連想記憶
がhit して分岐先アドレスを出力した時で、これに
基づく分岐先命令列を柁舶するための命令バッファが無
い時にも、用いることができる。
This method of providing a temporary save register can be used even when the branch target associative memory hits and outputs the branch target address, and there is no instruction buffer to store the branch target instruction sequence based on this. .

この時、分岐先アドレスを一1待退避レジスタに保持さ
せておき、命令バッファのいずれかが使用中でなくなっ
た時点で、一時退避レジスタ中の分岐先アドレスで分岐
先命令列を読み出せば良い。
At this time, the branch destination address can be held in the 11 save registers, and when one of the instruction buffers is no longer in use, the branch destination instruction string can be read out using the branch destination address in the temporary save register. .

以下で第7〜1014を用いて説明する。The explanation will be given below using Nos. 7 to 1014.

第7図は第1図を変形したものであり、Sフラグ111
86. Set PTA信号線11182゜Re5et
 S信号線11184.S信号線11188が新規に加
わっている。Sフラグは一時退避レジスタに分岐先アド
レスが保持中の時「1」となるフラグである。
FIG. 7 is a modification of FIG. 1, and shows the S flag 111.
86. Set PTA signal line 11182°Re5et
S signal line 11184. An S signal line 11188 is newly added. The S flag is a flag that becomes "1" when the branch destination address is held in the temporary save register.

第8図は第2図を変形したものであり、5etp ’l
” A 、 Re5et S信号線1.1182,11
184が新規に加わっている。
Figure 8 is a modification of Figure 2.
”A, Re5et S signal line 1.1182,11
184 new members have been added.

第9図は第3図を変形したものであり、一時退避レジス
タPTAsaveレジスタ3006とセレクタ3008
を新規に加えたものである。
FIG. 9 is a modification of FIG. 3, in which the temporary save register PTAsave register 3006 and selector 3008
This is a new addition.

第10図は第5図を変形したものであり、論理式140
08,14024,14040,14056%式% 5056に変更を加えてあり、論理式14058゜14
060は新規である。
FIG. 10 is a modification of FIG. 5, and the logical formula 140
08,14024,14040,14056%Formula% 5056 has been modified, and logical formula 14058°14
060 is new.

論理14058により、分岐先連想記憶がbitして分
岐先アドレスを出力した時で、これに基づく分岐先命令
列を格納するための命令バッファが無い時(Hit A
ll B Sの時) 、 Set PTA信号が「1」
になる。この時5etPTA信号はPTAレジスタ13
006のセットパルスとなって、PTAレジスタは分岐
先連想記憶の出力した分岐先アドレスを保持する。同時
にSフラグを「1」にする。
According to logic 14058, when the branch destination associative memory bit and outputs the branch destination address, there is no instruction buffer to store the branch destination instruction string based on this bit (Hit A
ll B S), Set PTA signal is “1”
become. At this time, the 5etPTA signal is the PTA register 13.
The set pulse becomes 006, and the PTA register holds the branch destination address output from the branch destination associative memory. At the same time, set the S flag to "1".

論理14008,14024,14040により、命令
バッファのいずれかが使用中でなくなった(AIIBS
)時、一時退避レジスタが分岐先アドレスを保持中なら
ば(S)、使用中でなくなった命令バッファに対応する
5etBSO又は5etBSI又は5etBS2が「1
」となり、命令バッファが割り立てられる。その時、論
理14060はRe5et S 信号11184を「1
」にし、Sフラグを「0」にする。同時に、Re5et
 S 信号はセレクタ13008に達しており、セレク
タ13008はこの信号が「1」の時のみPTAsav
e レジスタの値をPTA信号に送出するので、分岐先
アドレスは主記憶に送出される。
Logic 14008, 14024, 14040 indicates that one of the instruction buffers is no longer in use (AIIBS
), if the temporary save register is holding the branch destination address (S), 5etBSO, 5etBSI, or 5etBS2 corresponding to the instruction buffer that is no longer in use becomes "1".
” and an instruction buffer is allocated. At that time, logic 14060 sets Re5et S signal 11184 to "1".
” and set the S flag to “0”. At the same time, Re5et
The S signal has reached the selector 13008, and the selector 13008 selects PTAsav only when this signal is "1".
Since the value of the e register is sent to the PTA signal, the branch destination address is sent to the main memory.

故に、命令バッファのいずれかが使用中でなくなった時
点で、一時退避レジスタ中の分岐先アドレスで分岐先命
令列を読み出せる。
Therefore, when any of the instruction buffers is no longer in use, the branch destination instruction string can be read out using the branch destination address in the temporary save register.

上記の実施例では一時退避レジスタを用いていたが、そ
れを用いない方法もある。すなわち、命令バッファがす
べて使用中に、命令の先読み時に分岐先連想記憶がhi
t L/なかった分岐命令がデコードされようとした場
合には1分岐先連想記憶の出力した分岐先アドレスに基
づいて読み出した分岐先命令列を格納するために既に確
保しである命令バッファを横取りするのである。この横
取りした命令バッファを、デコード中の分岐命令の分岐
先命令列の格納用に使うのである6 以下、第11図、第12図を用いて説明する。
Although the above embodiment uses a temporary save register, there is also a method that does not use it. In other words, when all the instruction buffers are in use, the branch destination associative memory becomes high when an instruction is prefetched.
tL/When a branch instruction that was missing is attempted to be decoded, the instruction buffer that has already been reserved to store the branch destination instruction string read out based on the branch destination address output from the one-branch destination associative memory is preempted. That's what I do. This stolen instruction buffer is used to store the branch destination instruction sequence of the branch instruction being decoded.6 This will be explained below with reference to FIGS. 11 and 12.

第11図は、第1図から不要な部分を削除したものであ
り、第12図は、第5図に変更を加えたものである。
11 is a diagram obtained by removing unnecessary parts from FIG. 1, and FIG. 12 is a diagram obtained by adding changes to FIG. 5.

第11図では、第1図にはあったTA 5aveレジス
タ9178.セレクタ9180.Sフラグ9186 、
 Set TA 5ave信号線9182゜Re5et
 S信号線9184はなくなっている。
In FIG. 11, the TA 5ave register 9178. which was in FIG. Selector 9180. S flag 9186,
Set TA 5ave signal line 9182°Re5et
S signal line 9184 is gone.

第12図では、第5図の論理10008゜10024.
10040.10056が論理500B、5024.5
04−0.5056で置き換えられ、Set TA 5
ave  生成論理1. OO58。
In FIG. 12, the logic in FIG. 5 is 10008°10024.
10040.10056 is logical 500B, 5024.5
04-0.5056, Set TA 5
ave generative logic 1. OO58.

Re8et、 S生成論理1.0 O60は削除される
Re8et, S generation logic 1.0 O60 is deleted.

変更が加えられた論理のうち、5008゜5024.5
040はそれぞれSet B S O、5etBSI、
5etBS2の生成論理である。各論理式とも2つの項
からなる論理和である。第1項では、分岐先連想記憶が
bit(HiT)時に命令バッファが全部は使用中では
ない(AIIBS)ならば、01によって選ばれる使用
中でない命令バッファ(0=0ならjBRo、01=1
なら1BR1,0L=2なら1BR2)を割当てる。第
2項では、分岐命令でデコード中であり、かつ、その分
岐命令を先読みする時に分岐先連想記憶がhit L/
ていなかった。(Br In5t−H)時には、命令バ
ッファが全部は使用中ではない(AIIBS)ならば、
01によって選ばれる使用中でない命令バッファを割り
当て、命令バッファが全部使用中である(Al1138
)ならば、その使用中の命令バッファの中に、分岐先連
想記憶の出力した分岐先アドレスに基づいて読み出した
分岐先命令列を格納するために確保した命令バッファが
あれば(All Not T) 。
Of the logic that has been changed, 5008゜5024.5
040 are Set BSO, 5etBSI, respectively.
This is the generation logic of 5etBS2. Each logical expression is a logical sum consisting of two terms. In the first term, if the instruction buffer is not all in use (AIIBS) when the branch target associative memory is bit (HiT), the instruction buffer that is not in use is selected by 01 (jBRo if 0=0, 01=1
If 0L=2, then 1BR1, then 1BR2) is assigned. In the second term, a branch instruction is being decoded, and when the branch instruction is prefetched, the branch destination associative memory is hit L/
It wasn't. (Br In5t-H) Sometimes, if the instruction buffer is not all in use (AIIBS),
Allocates an unused instruction buffer selected by 01, and all instruction buffers are in use (Al1138
), if there is an instruction buffer reserved for storing the branch destination instruction string read based on the branch destination address output from the branch destination associative memory (All Not T). .

02によって定められる命令バッファを割り当てている
Allocating an instruction buffer defined by 02.

この変更により、命令バッファがすべて使用中(AII
BS)に、命令先読み時に分岐先連想記憶がhit L
/なかった分岐命令がデコードされようとした場合(t
ar In5t−π)には1分岐先連想記憶の出力した
分岐先アドレスに基づいて読み出した分岐先命令列を格
納するために確保した命令バッファがあれば(All 
 Not T)、その命令バッファ(命令バッファOが
それなら02=0となり、命令バッファ1がそれなら0
2=1となり、命令バッファ1がそれなら02=2とな
る)に対応する5etBSO又は5etBS1又は5e
tBS2の生成論理が「1」となるので、その命令バッ
ファが割り当てられる。
With this change, all instruction buffers are in use (AII
BS), the branch destination associative memory is hit L when the instruction is prefetched.
/If a branch instruction that was not present is attempted to be decoded (t
If there is an instruction buffer reserved for storing the branch destination instruction string read out based on the branch destination address output from the one-branch destination associative memory (Ar In5t-π), then
Not T), its instruction buffer (if instruction buffer O is then 02 = 0, if instruction buffer 1 is then 0
2=1 and instruction buffer 1 then 02=2) corresponding to 5etBSO or 5etBS1 or 5e
Since the generation logic of tBS2 becomes "1", that instruction buffer is allocated.

また、変更が加えられた論理のうちの残る1つ5056
では、分岐命令がデコードされた時に、その分岐命令の
先読み時に分岐先連想記憶がhjtしていた時(H)又
はその分岐命令の先読み時に分岐先連想記憶はhit 
していなかった(H)が、デコード時に命令バッファの
いずれかが割り当てることができた時(Set B S
 O+Set B’S 1 +5etBS2)にBr 
End信号が「1」となる。この変更により、この分岐
命令のデコードが完了して次の命令のデコードが開始さ
れることになるので、デッドロックは起らない。
Also, the remaining one of the changed logics 5056
Then, when a branch instruction is decoded, if the branch target associative memory is hjt when the branch instruction is read ahead (H), or when the branch target associative memory is hit when the branch instruction is read ahead.
(H), but when any of the instruction buffers can be allocated during decoding (Set B S
O+Set B'S 1 +5etBS2) to Br
The End signal becomes "1". With this change, the decoding of this branch instruction is completed and the decoding of the next instruction is started, so that deadlock does not occur.

上記の実施例では、分岐先アドレスを出力する分岐先連
想記憶を用いているデータ処理装置を示していたが1分
岐先命令列を直接出力する分岐先連想記憶を用いていて
も、分岐命令のデコードに先立って命令バッファをあら
かじめ使用又は確保するので、デッドロック状態となる
可能性があり、この発明は効果がある。
In the above embodiment, a data processing device using a branch target associative memory that outputs a branch target address was shown, but even if a branch target associative memory that directly outputs one branch target instruction sequence is used, Since the instruction buffer is used or reserved in advance before decoding, there is a possibility of a deadlock situation, so this invention is effective.

上記の実施例では、分岐先連想記憶が出力した分岐先の
アドレスに基づいて読み出した分岐先の命令列を格納す
るために使う命令バッファを、命令の先読み時に分岐先
連想記憶がhit L/なかった分岐命令の分岐先の命
令列の格納用に使っていた。
In the above embodiment, when the branch target associative memory is hit L/not present, the instruction buffer used to store the branch target instruction sequence read based on the branch target address output by the branch target associative memory is read-ahead. It was used to store the instruction sequence of the branch destination of the branch instruction.

常に1つの命令バッファは、分岐先連想記憶がhj、t
 Lなかった分岐命令の分岐先の命令列格納用に確保し
ておく方法もある。すなわち、分岐先連想記憶がhj、
t して分岐先アドレスを出力した時でも、後に現れう
る分岐先連想記憶のhit していない分岐命令の分岐
先命令列の格納用の命令バッファが残っていない時には
、分岐先連想記憶の出力した分岐先アドレスの命令列の
格納用には、命令バッファを使わせない。こうすれば、
分岐先連想記憶がhjt シなかった分岐命令の分岐先
の命令列格納用に少なくとも1つの命令バッファがある
ので、デッドロック状態は起らない。
There is always one instruction buffer whose branch destination associative memory is hj, t
There is also a method of reserving it for storing the instruction sequence of the branch destination of the branch instruction that did not reach L. In other words, the branch destination associative memory is hj,
t and outputs the branch destination address, if there is no instruction buffer remaining for storing the branch destination instruction string of a branch instruction that has not hit the branch destination associative memory that may appear later, the output of the branch destination associative memory The instruction buffer is not used to store the instruction sequence of the branch destination address. If you do this,
Since the branch destination associative memory has at least one instruction buffer for storing the instruction sequence of the branch destination of the branch instruction that is not available, a deadlock condition does not occur.

第13図は第】2図を変形したものであり、論理式70
08.7024,7040.7000だけが第12図の
ものと異なる。
Figure 13 is a modification of Figure 2, and is based on the logical formula 70.
Only 08.7024 and 7040.7000 differ from those in FIG.

論理7000により、 0nly One Not B
 S 信号はrOJのビジー・フラグが2つ以上ある時
に限り「0」であり、それ以外では「1」である。
By logic 7000, 0nly One Not B
The S signal is "0" only when there are two or more rOJ busy flags, and is "1" otherwise.

01信号はビジー・フラグがrOJである最初の番号を
示している。
The 01 signal indicates the first number whose busy flag is rOJ.

l理7008.7024.7040により、分岐先連想
記憶がhit した(IIj、T = r L Jの)
時には、「Ojのビジー・フラグが2つ以上ある(On
ly One Not B S = r I Jの)時
のみ、ビジー・フラグのセット信号Set BSO,S
et BS 1゜5etBS2が「IJとなる。
Due to logic 7008.7024.7040, the branch destination associative memory was hit (IIj, T = r L J)
Sometimes "Oj has more than one busy flag"
ly One Not BS = r I J), the busy flag set signal Set BSO,S
et BS 1゜5et BS2 becomes “IJ.

こうすれば、分岐先連想記憶がhj、t して分域先ア
ドレスを出力した時でも、命令バッファが2つ以上残っ
ていない時には、その命令バッファは使われない。放に
デッドロック状態とはならない。
In this way, even when the branch destination associative memory outputs the branch destination address by hj,t, if two or more instruction buffers remain, that instruction buffer will not be used. A deadlock situation will not occur if the system is left unchecked.

また、第14図は第13図を変形したものであり、論理
式8008,8024.8040だけか第13図のもの
と異なる。
Moreover, FIG. 14 is a modification of FIG. 13, and only the logical formulas 8008, 8024, and 8040 are different from those in FIG.

論理8008,8024.8040により、分岐先連想
がhit L、た(HiT = rlJの)場合で、ビ
ジー・フラグがすべて(3つとも)rl」の時及び、r
l」のビジー・フラグが2つある(Onl、yOne 
Not BS −All BSの)時で、かつ「1」で
あるビジーフラグの命令バッファの1つを除いたすべて
(すなわち1つ)が、分岐先連想記憶か出力した分岐先
のアドレスの命令列を格納するために「1」にしたもの
である(B S O−B S 1・(T。
According to logics 8008, 8024, and 8040, if the branch destination association is hit L, (HiT = rlJ), and all the busy flags are (all three) rl, and r
There are two busy flags (Onl, yOne).
(Not BS - All BS), and all but one (that is, one) of the instruction buffers with the busy flag that is "1" store the instruction string of the address of the output branch destination from the branch destination associative memory. It is set to "1" in order to

+T1)+BS1・BS2・(T1+T2)+B52−
B S 0−(T 2 +T O)の)時には、5et
BS○。
+T1)+BS1・BS2・(T1+T2)+B52-
When B S 0-(T 2 +T O)), 5et
BS○.

Set B S 1 、 Set B S 2信号は「
1」にはならなLl。
The Set B S 1 and Set B S 2 signals are “
1" is a Ll.

したがって、分岐先連想記憶がhit L/て分岐先ア
ドレスを出力した場合でも、命令バッファが2つ以ト残
っている時及び命令バッファが1つしか残っていないが
、使用中の中に分岐先連想記憶が出力した分岐先のアに
レスの命令列゛ではなく、分岐先連想記憶がhit し
ていない分岐命令の分岐先の命令列を格納するための命
令バッファがある時には、その命令バッファは使われる
。こうしても、分岐先連想記憶がり、tt していない
分岐命令はすべてにデコードされており、その判定が下
れば、その分岐命令の分岐先命令列を格納している命令
バッファ又はその分岐命令の格納されている命令バッフ
ァは使用中ではなくなる。よってプツトロックは起らな
い。
Therefore, even if the branch destination associative memory outputs the branch destination address with a hit L/, if there are two or more instruction buffers remaining, or if there is only one instruction buffer remaining, the branch destination address is When there is an instruction buffer for storing the instruction sequence of the branch destination of a branch instruction that has not been hit by the associative memory of the branch destination, rather than the instruction sequence of the address corresponding to the branch destination output by the associative memory, the instruction buffer is used. Even in this case, the branch destination associative memory is stored, and all branch instructions that are not tt are decoded, and if the judgment is made, the instruction buffer storing the branch destination instruction sequence of that branch instruction or the branch instruction The stored instruction buffer is no longer in use. Therefore, putlock does not occur.

〔発明の効果〕 本発明によれば、分岐先連想記憶がhit Lなかった
分岐命令のデコードが、その分岐命令の分岐先命令列を
格納するための命令バッファが無いためにデコードが完
了せずにプツトロック状態となるということはない。
[Effects of the Invention] According to the present invention, decoding of a branch instruction for which the branch destination associative memory does not hit L is not completed because there is no instruction buffer to store the branch destination instruction sequence of the branch instruction. There is no such thing as a put-lock condition.

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

第1図は先行制御装置の構成図、第2図は全体構成図、
第3図は分岐先連想記憶の構成図、第4図は命令列の例
、第5図は命令バッファ制御回路組合せ論理の構成図、
第6図はタイムチャート、第10図、第12図、第13
図、第14図は変形例の命令バッファ制御回路組合せ論
理の構成図、第7図、第11図は変形例の先行制御装置
の構成図、第8図は変形例の全体構成図、第9図は変形
例の分岐先連想記憶の構成図である。 1002〜1006・・・命令バッファ、1042・・
・命令レジスタ、1052・・・命令バッファ制御回路
組合せ論理、1010,1020.1030・・・ビジ
ー・フラグ、2000・・分岐先連想記憶、2002・
・・先行制御装置、2004・・・主記憶、2006・
・・演算装置。
Figure 1 is a block diagram of the advance control device, Figure 2 is a diagram of the overall configuration,
FIG. 3 is a block diagram of a branch target associative memory, FIG. 4 is an example of an instruction sequence, and FIG. 5 is a block diagram of an instruction buffer control circuit combinational logic.
Figure 6 is a time chart, Figures 10, 12, and 13.
14 are block diagrams of the instruction buffer control circuit combinational logic of the modified example, FIGS. 7 and 11 are block diagrams of the advanced control device of the modified example, FIG. 8 is an overall block diagram of the modified example, and FIG. The figure is a configuration diagram of a branch destination associative memory of a modified example. 1002-1006...Instruction buffer, 1042...
・Instruction register, 1052...Instruction buffer control circuit combinational logic, 1010, 1020.1030...Busy flag, 2000...Branch destination associative memory, 2002...
・Advance control device, 2004 ・Main memory, 2006・
...Arithmetic device.

Claims (1)

【特許請求の範囲】 1、命令の解読、実行に先立つて1つ以上の命令を先読
みし格納しておく1つ以上の命令バッファを有し、 分岐命令の分岐先アドレスを記憶し、分岐命令の解読に
先立つて、分岐する分岐命令があると予測される時には
、上記分岐先アドレスを出力する分岐先連想記憶と、 上記分岐先連想記憶が出力した分岐先アドレスに基づい
て分岐先の1つ以上の命令を読出して命令バッファに格
納する手段を有するデータ処理装置において、 一時退避レジスタを設け、 分岐命令の先読み時には、上記分岐先連想記憶が、分岐
先アドレスを出力しなかつたが、命令の解読時に分岐命
令であることが判明した時に、すべての命令バッファが
使用中である場合には、 上記分岐命令の分岐先アドレスを上記一時退避レジスタ
に保持させ、上記分岐命令の後続の命令を解読させる手
段と、 使用中であつた命令バッファが未使用になつた時、上記
一時退避レジスタに保持される分岐先のアドレスに基づ
いて分岐先の命令列を読み出して、上記未使用となつた
命令バッファに格納させる手段を有することを特徴とす
るデータ処理装置。 2、命令の解読、実行に先立つて1つ以上の命令を先読
みして格納しておく1つ以上の命令バッファを有するデ
ータ処理装置において、 一時退避レジスタと、 命令の解読時にそれが分岐命令であることが判明した時
に、命令バッファがすべて使用中である場合には、上記
分岐命令の分岐先アドレスを上記一時退避レジスタに保
持させ、上記分岐命令の後続の命令を解読させる手段と
、 使用中であつた命令バッファが未使用になつた時、上記
一時退避レジスタに保持される分岐先のアドレスに基づ
いて分岐先の命令列を読み出して、上記未使用となつた
命令バッファに格納させる手段を有することを特徴とす
るデータ処理装置。 3、命令の解読、実行に先立つて1つ以上の命令を先読
みし格納しておく1つ以上の命令バッファを有し、 分岐命令の分岐先アドレスを記憶し、分岐命令の解読に
先立つて、分岐する分岐命令があると予測される時には
、上記分岐先アドレスを出力する分岐先連想記憶と、 上記分岐先連想記憶が出力した分岐先アドレスに基づい
て分岐先の1つ以上の命令を読出して命令バッファに格
納する手段を有するか、または、分岐命令の分岐先の1
つ以上の命令を記憶し、分岐命令の解読に先立つて、分
岐する分岐命令があると予測される時には、上記分岐先
の1つ以上の命令を出力し、命令バッファに格納させる
分岐先連想記憶を有するデータ処理装置において、 上記各命令バッファに対応し、それが、上記分岐先連想
記憶の出力した分岐先アドレスに基づいた分岐先の命令
を格納するために使用中または、上記分岐先連想記憶の
出力した分岐先の命令を格納するために使用中である状
態を示す状態表示手段を有し、 分岐命令の先読み時には、上記分岐先連想記憶が、分岐
先アドレスまたは分岐先の1つ以上の命令を出力しなか
つたが、命令の解読時に分岐命令であることが判明した
時に、すべての命令バッファが使用中である場合には、 上記状態である命令バッファの中から1つを選択し、そ
の命令バッファを解除して、上記解読中の分岐命令の分
岐先の命令を上記命令バッファに格納させる手段と、 一時退避レジスタと、 上記分岐先連想記憶が分岐先のアドレスを出力した時に
、命令バッファがすべて使用中である場合には、上記分
岐先のアドレスを上記一時退避レジスタに保持させる手
段と、 使用中であつた命令バッファが未使用になつた時、上記
一時退避レジスタに保持される分岐先のアドレスに基づ
いて分岐先の命令列を読み出して、上記未使用となつた
命令バッファに格納させる手段を有することを特徴とす
るデータ装置。 4、命令の解読、実行に先立つて1つ以上の命令を先読
みし格納しておく1つ以上の命令バッファを有し、 分岐命令の分岐先アドレスを記憶し、分岐命令の解読に
先立つて、分岐する分岐命令があると予測される時には
、上記分岐先アドレスを出力する分岐先連想記憶と、 上記分岐先連想記憶が出力した分岐先アドレスに基づい
て分岐先の1つ以上の命令を読出して命令バッファに格
納する手段を有するか、または、分岐命令の分岐先の1
つ以上の命令を記憶し、分岐命令の解読に先立つて、分
岐する分岐命令があると予測される時には、上記分岐先
の1つ以上の命令を出力し、命令バッファに格納させる
分岐先連想記憶を有するデータ処理装置において、 上記各命令バッファに対応し、それが、上記分岐先連想
記憶の出力した分岐先アドレスに基づいた分岐先の命令
を格納するために使用中または、上記分岐先連想記憶の
出力した分岐先の命令を格納するために使用中である状
態を示す状態表示手段を有し、 分岐命令の先読み時には、上記分岐先連想記憶が、分岐
先アドレスまたは分岐先の1つ以上の命令を出力しなか
つたが、命令の解読時に分岐命令であることが判明した
時に、すべての命令バッファが使用中である場合には、 上記状態である命令バッファの中から1つを選択し、そ
の命令バッファを解除して、上記解読中の分岐命令の分
岐先の命令を上記命令バッファに格納させる手段とを有
するデータ処理装置。 5、命令の解読、実行に先立つて1つ以上の命令を先読
みし格納しておく1つ以上の命令バッファを有し、 分岐命令の分岐先アドレスを記憶し、分岐命令の解読に
先立つて、分岐する分岐命令があると予測される時には
、上記分岐先アドレスを出力する分岐先連想記憶と、 上記分岐先連想記憶が出力した分岐先アドレスに基づい
て分岐先の1つ以上の命令を読出して命令バッファに格
納する手段を有するか、または、分岐命令の分岐先の1
つ以上の命令を記憶し、分岐命令の解読に先立つて、分
岐する分岐命令があると予測される時には、上記分岐先
の1つ以上の命令を出力し、命令バッファに格納させる
分岐先連想記憶を有するデータ処理装置において、 上記各命令バッファに対応し、それが、上記分岐先連想
記憶の出力した分岐先アドレスに基づいた分岐先の命令
を格納するために使用中または、上記分岐先連想記憶の
出力した分岐先の命令を格納するために使用中である状
態を示す状態表示手段を有し、 分岐命令の先読み時には、上記分岐先連想記憶が、分岐
先アドレスまたは分岐先の1つ以上の命令を出力しなか
つたが、命令の解読時に分岐命令であることが判明した
時に、すべての命令バッファが使用中である場合には、 上記状態である命令バッファの中から1つを選択し、そ
の命令バッファを解除して、上記解読中の分岐命令の分
岐先の命令を上記命令バッファに格納させる手段と、 上記分岐先連想記憶が分岐先のアドレスまたは分岐先の
命令を出力した場合に、未使用中の命令バッファが1つ
しかない時には、その命令バッファには上記分岐先連想
記憶の出力した分岐先のアドレスに基づく分岐先の命令
又は上記分岐先連想記憶の出力した分岐先の命令の格納
は行わせない手段を有することを特徴とするデータ処理
装置。 6、命令の解読、実行に先立つて1つ以上の命令を先読
みし格納しておく1つ以上の命令バッファを有し、 分岐命令の分岐先アドレスを記憶し、分岐命令の解読に
先立つて、分岐する分岐命令があると予測される時には
、上記分岐先アドレスを出力する分岐先連想記憶と、 上記分岐先連想記憶が出力した分岐先アドレスに基づい
て分岐先の1つ以上の命令を読出して命令バッファに格
納する手段を有するか、または、分岐命令の分岐先の1
つ以上の命令を記憶し、分岐命令の解読に先立つて、分
岐する分岐命令があると予測される時には、上記分岐先
の1つ以上の命令を出力し、命令バッファに格納させる
分岐先連想記憶を有するデータ処理装置において、 上記各命令バッファに対応し、それが、上記分岐先連想
記憶の出力した分岐先アドレスに基づいた分岐先の命令
を格納するために使用中または、上記分岐先連想記憶の
出力した分岐先の命令を格納するために使用中である状
態を示す状態表示手段を有し、 分岐命令の先読み時には、上記分岐先連想記憶が、分岐
先アドレスまたは分岐先の1つ以上の命令を出力しなか
つたが、命令の解読時に分岐命令であることが判明した
時に、すべての命令バッファが使用中である場合には、 上記状態である命令バッファの中から1つを選択し、そ
の命令バッファを解除して、上記解読中の分岐命令の分
岐先の命令を上記命令バッファに格納させる手段と、 上記分岐先連想記憶が分岐先のアドレスまたは分岐先の
命令を出力した場合に、未使用中の命令バッファが1つ
しかなく、かつ、使用中である命令バッファの1つを除
いた残りすべての状態表示手段が上記状態を示している
時には、上記未使用の命令バッファには、上記分岐先連
想記憶の出力した分岐先のアドレスに基づく分岐先の命
令又は上記分岐先連想記憶の出力した分岐先の命令の格
納は行わせない手段を有することを特徴とするデータ処
理装置。
[Claims] 1. It has one or more instruction buffers that prefetch and store one or more instructions before decoding and executing the instructions, and stores branch destination addresses of branch instructions, and stores branch destination addresses of branch instructions. When it is predicted that there is a branch instruction to branch before decoding, a branch destination associative memory outputs the branch destination address, and one of the branch destinations is selected based on the branch destination address outputted by the branch destination associative memory. In a data processing device having means for reading the above instructions and storing them in an instruction buffer, a temporary save register is provided, and when a branch instruction is read ahead, the branch destination associative memory does not output the branch destination address, but the branch destination address is not output. If all instruction buffers are in use when it is found to be a branch instruction during decoding, the branch destination address of the branch instruction is held in the temporary save register, and the instructions following the branch instruction are decoded. When the instruction buffer that was in use becomes unused, the instruction sequence of the branch destination is read based on the address of the branch destination held in the temporary save register, and the instruction that has become unused is read out. A data processing device comprising means for storing data in a buffer. 2. In a data processing device that has one or more instruction buffers that prefetch and store one or more instructions before decoding and executing the instruction, there is a temporary save register and a buffer that stores the instruction when it is a branch instruction. means for holding the branch destination address of the branch instruction in the temporary save register and decoding an instruction subsequent to the branch instruction if all instruction buffers are in use; When the previously used instruction buffer becomes unused, means for reading out a branch destination instruction string based on the branch destination address held in the temporary save register and storing it in the unused instruction buffer. A data processing device comprising: 3. It has one or more instruction buffers that prefetch and store one or more instructions before decoding and executing the instructions, stores the branch destination address of the branch instruction, and stores the branch destination address of the branch instruction before decoding and executing the branch instruction. When it is predicted that there is a branch instruction to be branched, the branch destination associative memory outputs the branch destination address, and one or more branch destination instructions are read out based on the branch destination address outputted by the branch destination associative memory. It has means for storing in an instruction buffer, or one of the branch destinations of a branch instruction.
A branch destination associative memory that stores one or more instructions and outputs one or more instructions at the branch destination and stores it in an instruction buffer when it is predicted that there is a branch instruction to branch before decoding the branch instruction. In the data processing device, the instruction buffer corresponds to each of the instruction buffers, and is in use for storing a branch destination instruction based on a branch destination address output from the branch destination associative memory, or The branch destination associative memory stores the branch destination address or one or more of the branch destinations when prefetching the branch instruction. If no instruction is output, but when the instruction is found to be a branch instruction when decoded and all instruction buffers are in use, one of the instruction buffers in the above state is selected, means for releasing the instruction buffer and storing the branch destination instruction of the branch instruction being decoded in the instruction buffer; a temporary save register; When all the buffers are in use, the branch destination address is held in the temporary save register, and when the instruction buffer that was in use becomes unused, the address is held in the temporary save register. A data device comprising means for reading out a branch destination instruction string based on a branch destination address and storing it in the unused instruction buffer. 4. It has one or more instruction buffers that prefetch and store one or more instructions before decoding and executing the instructions, stores the branch destination address of the branch instruction, and stores the branch destination address of the branch instruction. When it is predicted that there is a branch instruction to be branched, the branch destination associative memory outputs the branch destination address, and one or more branch destination instructions are read out based on the branch destination address outputted by the branch destination associative memory. It has means for storing in an instruction buffer, or one of the branch destinations of a branch instruction.
A branch destination associative memory that stores one or more instructions and outputs one or more instructions at the branch destination and stores it in an instruction buffer when it is predicted that there is a branch instruction to branch before decoding the branch instruction. In the data processing device, the instruction buffer corresponds to each of the instruction buffers, and is in use for storing a branch destination instruction based on a branch destination address output from the branch destination associative memory, or The branch destination associative memory stores the branch destination address or one or more of the branch destinations when prefetching the branch instruction. If no instruction is output, but when the instruction is found to be a branch instruction when decoded and all instruction buffers are in use, one of the instruction buffers in the above state is selected, A data processing device comprising means for releasing the instruction buffer and storing a branch destination instruction of the branch instruction being decoded in the instruction buffer. 5. Has one or more instruction buffers for prefetching and storing one or more instructions prior to decoding and executing instructions, storing branch destination addresses of branch instructions, and prior to decoding and executing branch instructions. When it is predicted that there is a branch instruction to be branched, the branch destination associative memory outputs the branch destination address, and one or more branch destination instructions are read out based on the branch destination address outputted by the branch destination associative memory. It has means for storing in an instruction buffer, or one of the branch destinations of a branch instruction.
A branch destination associative memory that stores one or more instructions and outputs one or more instructions at the branch destination and stores it in an instruction buffer when it is predicted that there is a branch instruction to branch before decoding the branch instruction. In the data processing device, the instruction buffer corresponds to each of the instruction buffers, and is in use for storing a branch destination instruction based on a branch destination address output from the branch destination associative memory, or The branch destination associative memory stores the branch destination address or one or more of the branch destinations when prefetching the branch instruction. If no instruction is output, but when the instruction is found to be a branch instruction when decoded and all instruction buffers are in use, one of the instruction buffers in the above state is selected, means for releasing the instruction buffer and storing a branch destination instruction of the branch instruction being decoded in the instruction buffer; when the branch destination associative memory outputs a branch destination address or a branch destination instruction; When there is only one unused instruction buffer, that instruction buffer contains the branch destination instruction based on the branch destination address output from the branch destination associative memory or the branch destination instruction output from the branch destination associative memory. A data processing device comprising means for preventing storage. 6. Has one or more instruction buffers for prefetching and storing one or more instructions prior to decoding and executing instructions, storing branch destination addresses of branch instructions, and prior to decoding and executing branch instructions. When it is predicted that there is a branch instruction to be branched, the branch destination associative memory outputs the branch destination address, and one or more branch destination instructions are read out based on the branch destination address outputted by the branch destination associative memory. It has means for storing in an instruction buffer, or one of the branch destinations of a branch instruction.
A branch destination associative memory that stores one or more instructions and outputs one or more instructions at the branch destination and stores it in an instruction buffer when it is predicted that there is a branch instruction to branch before decoding the branch instruction. In the data processing device, the instruction buffer corresponds to each of the instruction buffers, and is in use for storing a branch destination instruction based on a branch destination address output from the branch destination associative memory, or The branch destination associative memory stores the branch destination address or one or more of the branch destinations when prefetching the branch instruction. If no instruction is output, but when the instruction is found to be a branch instruction when decoded and all instruction buffers are in use, one of the instruction buffers in the above state is selected, means for releasing the instruction buffer and storing a branch destination instruction of the branch instruction being decoded in the instruction buffer; when the branch destination associative memory outputs a branch destination address or a branch destination instruction; When there is only one unused instruction buffer and all the status display means except for one in use indicate the above status, the unused instruction buffer has the following information: A data processing device comprising means for preventing storage of a branch destination instruction based on a branch destination address outputted by the branch destination associative memory or a branch destination instruction outputted by the branch destination associative memory.
JP15111487A 1987-06-19 1987-06-19 Data processing device Expired - Lifetime JP2511978B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15111487A JP2511978B2 (en) 1987-06-19 1987-06-19 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15111487A JP2511978B2 (en) 1987-06-19 1987-06-19 Data processing device

Publications (2)

Publication Number Publication Date
JPS63316131A true JPS63316131A (en) 1988-12-23
JP2511978B2 JP2511978B2 (en) 1996-07-03

Family

ID=15511663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15111487A Expired - Lifetime JP2511978B2 (en) 1987-06-19 1987-06-19 Data processing device

Country Status (1)

Country Link
JP (1) JP2511978B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962540A (en) * 1995-08-29 1997-03-07 Kofu Nippon Denki Kk Debugging circuit for information processor
US5790845A (en) * 1995-02-24 1998-08-04 Hitachi, Ltd. System with reservation instruction execution to store branch target address for use upon reaching the branch point

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790845A (en) * 1995-02-24 1998-08-04 Hitachi, Ltd. System with reservation instruction execution to store branch target address for use upon reaching the branch point
US5878254A (en) * 1995-02-24 1999-03-02 Hitachi, Ltd. Instruction branching method and a processor
JPH0962540A (en) * 1995-08-29 1997-03-07 Kofu Nippon Denki Kk Debugging circuit for information processor

Also Published As

Publication number Publication date
JP2511978B2 (en) 1996-07-03

Similar Documents

Publication Publication Date Title
US4583165A (en) Apparatus and method for controlling storage access in a multilevel storage system
US8171235B2 (en) Atomic compare and swap using dedicated processor
KR100278328B1 (en) Cache miss buffer
US5664148A (en) Cache arrangement including coalescing buffer queue for non-cacheable data
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US7900024B2 (en) Handling data cache misses out-of-order for asynchronous pipelines
US5555392A (en) Method and apparatus for a line based non-blocking data cache
US8832415B2 (en) Mapping virtual addresses to different physical addresses for value disambiguation for thread memory access requests
JP4437001B2 (en) Translation index buffer flush filter
CN109196485B (en) Method and apparatus for maintaining data consistency in non-uniform computing devices
EP0514024A2 (en) Method and apparatus for an improved memory architecture
JP2003514274A (en) Fast multithreading for closely coupled multiprocessors
WO1996017299A1 (en) Scalar data cache for a vector processor
JP3045952B2 (en) Full associative address translator
US6915395B1 (en) Active address content addressable memory
US6449698B1 (en) Method and system for bypass prefetch data path
US20050206648A1 (en) Pipeline and cache for processing data progressively
US6012135A (en) Computer having multiple address ports, each having logical address translation with base and limit memory management
US7398368B2 (en) Atomic operation involving processors with different memory transfer operation sizes
JPH02239331A (en) Data processing system and method with heightened operand usability
US6892280B2 (en) Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system
US6938148B2 (en) Managing load and store operations using a storage management unit with data flow architecture
TW200304619A (en) Method and apparatus for detecting pipeline address conflict using compare of byte addresses
JPS62102344A (en) Buffer memory control system
JPS63316131A (en) Data processor

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080416

Year of fee payment: 12