JPH0557616B2 - - Google Patents
Info
- Publication number
- JPH0557616B2 JPH0557616B2 JP58159903A JP15990383A JPH0557616B2 JP H0557616 B2 JPH0557616 B2 JP H0557616B2 JP 58159903 A JP58159903 A JP 58159903A JP 15990383 A JP15990383 A JP 15990383A JP H0557616 B2 JPH0557616 B2 JP H0557616B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- associative
- associative key
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、複数のターゲツト命令の1つに分岐
する場合でも、分岐先バツフア記憶装置から正し
くターゲツト命令列を出力できる情報処理装置に
関するものである。[Detailed Description of the Invention] [Industrial Application Field] The present invention relates to an information processing device that can correctly output a target instruction sequence from a branch destination buffer storage device even when branching to one of a plurality of target instructions. be.
〔発明の背景〕
パイプライン計算機では、命令の処理を部分処
理に分解し、個々の部分処理を実行する専用の独
立なユニツトを用意し、連続した複数の命令を工
場の組立てラインのようにオーバーラツプして処
理することにより高速処理を行つている。しか
し、分岐命令が出現すると、パイプラインの流れ
に乱れが生じるため、処理性能が低下する。した
がつて、高速処理を行う計算機の処理性能の向上
のためには、分岐命令の高速処理が必要不可欠で
ある。[Background of the Invention] Pipeline computers break down instruction processing into partial processes, prepare independent units dedicated to executing each partial process, and overlap multiple consecutive instructions like a factory assembly line. By doing so, high-speed processing is achieved. However, when a branch instruction appears, the flow of the pipeline is disturbed, resulting in a decrease in processing performance. Therefore, in order to improve the processing performance of a computer that performs high-speed processing, high-speed processing of branch instructions is essential.
分岐命令の出現によつてパイプラインの流れが
乱れる原因は、分岐が立成した場合、ターゲツト
命令語(分岐先命令語)が得られるまでに時間が
かかり、これが得られるまではターゲツト命令語
のデコードを開始できないことである。したがつ
て、分岐命令を高速処理するためには、ターゲツ
ト・フエツチの高速化が必要である。 The reason why the flow of the pipeline is disrupted by the appearance of a branch instruction is that when a branch is taken, it takes time to obtain the target instruction (branch destination instruction), and until this is obtained, the decoding of the target instruction is difficult. is unable to start. Therefore, in order to process branch instructions at high speed, it is necessary to speed up the target fetch.
従来、ターゲツト・フエツチの高速化を実現す
るものとして、ルート・メモリが提案されている
(特公昭54−9456号公報『情報処理装置』参照)。
第1図に示すように、ルート・メモリ1は、命令
デコード時に命令アドレス(IA)をキーとして、
次の2つを出力する連想記憶メモリである。 Conventionally, a route memory has been proposed as a device for realizing high-speed target fetch (see Japanese Patent Publication No. 54-9456, ``Information Processing Apparatus'').
As shown in FIG. 1, the root memory 1 uses the instruction address (IA) as a key when decoding an instruction.
It is an associative memory that outputs the following two things.
すなわち、(i)命令アドレスの指す命令が成立す
る分岐命令であるか否かの予測(BA?)、およ
び(ii)成立する分岐命令である場合には、そのター
ゲツト命令語(TI)である。しかし、上記ルー
ト・メモリ1には、次のような問題がある。 That is, (i) predicting whether the instruction pointed to by the instruction address is a branch instruction that will take effect (BA?), and (ii) if it is a branch instruction that will take effect, the target instruction word (TI). . However, the route memory 1 has the following problems.
すなわち、命令アドレス(IA)のみをキーと
してルート・メモリ1を参照しているため、1つ
の分岐命令が複数のターゲツト命令のうち、どれ
か1つに分岐する場合を扱うことができないこと
である。つまり第2図に示すように、メイン・ル
ーチン3のA点からサブルーチン(SUBRT)の
先願アドレスに分岐し、これを終了してからター
ゲツト・アドレス4に戻り、その後B点で再び同
一サブルーチン(SUBRT)に分岐して、これを
終了してから戻る場合、ルート・メモリ1にはタ
ーゲツト・アドレス4の命令語が格納されている
ため、正しいターゲツト・アドレス5の命令語に
戻ることができない。 In other words, since root memory 1 is referenced using only the instruction address (IA) as a key, it is not possible to handle cases where one branch instruction branches to any one of multiple target instructions. . In other words, as shown in FIG. 2, the program branches from point A of main routine 3 to the earlier application address of the subroutine (SUBRT), returns to target address 4 after completing this, and then returns to the same subroutine (SUBRT) at point B. SUBRT) and return after completing this, the instruction word at target address 4 is stored in root memory 1, so it is not possible to return to the correct instruction word at target address 5.
本発明の第1の目的は、同じ分岐命令が指定す
る分岐先命令のアドレスがその分岐命令の実行ご
とに変化し得る場合においても、分岐先命令を連
想記憶手段に登録可能にし、かつ再利用可能にし
た情報処理装置を提供することにある。
A first object of the present invention is to make it possible to register a branch destination instruction in an associative memory means and to reuse it even when the address of the branch destination instruction specified by the same branch instruction may change each time the branch instruction is executed. The purpose of this invention is to provide an information processing device that makes it possible.
また、本発明の第2の目的は、分岐命令の分岐
先命令を連想記憶手段に登録した後、その分岐命
令の再実行時に、その分岐命令の分岐先命令を高
速に読み出すことが可能な情報処理装置を提供す
ることにある。 A second object of the present invention is to provide information that allows the branch destination instruction of a branch instruction to be read out at high speed when the branch instruction is re-executed after the branch destination instruction of the branch instruction is registered in an associative storage means. The purpose of this invention is to provide a processing device.
本願第1の発明の特徴は、分岐命令のある実行
時に分岐が成功したとき(例えば、第2図のA点
での分岐、あるいはサブルーチンの終り(RTN)
での分岐)、分岐命令のアドレス情報(例えば、
第2図のA点アドレス、あるいはサブルーチンの
終り(RTN)のアドレス)からなる第1の連想
キーと、その分岐先命令のアドレス(例えば、第
2図のサブルーチンの先頭アドレス、あるいA点
のアドレス4ないしB点のアドレス5)を生成す
るための情報からなる第2の連想キーとの組を連
想キーとして、その分岐先命令とともに連想記憶
手段102に記憶させる手段(IC、IR等および
14)と、ある分岐先命令が実行さたときに、そ
の分岐命令のアドレス情報からなる第1の連想キ
ーとその命令が指定する分岐先命令のアドレスを
生成するための情報からなる第2の連想キーとの
組を連想キーとして上記連想記憶手段102に供
給する手段(IC、IR等および14)と、供給さ
れた連想キーと一致する連想キーを有する分岐先
命令が連想記憶手段102から読み出されたと
き、その分岐命令の分岐が成功と予測して、その
分岐命令を実行する手段22とを有することであ
る。
The feature of the first invention of the present application is that when a branch is successfully executed when a branch instruction is executed (for example, a branch at point A in FIG. 2, or at the end of a subroutine (RTN)
), branch instruction address information (e.g.,
The first associative key consists of the point A address in Figure 2, or the end (RTN) address of the subroutine), and the address of the branch destination instruction (for example, the start address of the subroutine in Figure 2, or the address of point A). Means for storing a pair with a second associative key consisting of information for generating address 4 to address 5) of point B as an associative key in the associative storage means 102 together with the branch destination instruction (IC, IR, etc.) ), and when a certain branch destination instruction is executed, a first association key consisting of the address information of the branch instruction and a second association consisting of information for generating the address of the branch destination instruction specified by that instruction. A means (IC, IR, etc. and 14) for supplying a pair with a key to the associative memory means 102 as an associative key, and a branch destination instruction having an associative key that matches the supplied associative key is read from the associative memory means 102. and means 22 for predicting that the branch of the branch instruction will be successful when the branch instruction is executed, and for executing the branch instruction.
また、上記第1の発明のより望ましい実施態様
は、上記第1の連想キーを第1のタイミングで連
想記憶手段102に供給する手段(14、IC等)
と、第2の連想キーをその第1のタイミングより
後の第2のタイミングで連想記憶手段102に供
給する手段(GRB、GRX等)とを有し、上記連
想記憶手段102は、分岐命令のアドレス情報か
らなる第1の連想キーが供給されたときに、これ
に一致する第1の連想キーを有する分岐先命令を
検出する手段(第5図の248,250)と、読
み出すべき分岐命令のアドレスを生成するための
情報からなる第2の連想キーがその後に供給され
たときに、その検出された複数の分岐先命令のう
ち、この供給された第2の連想キー一致する第2
の連想キーを有する一つの分岐先命令を選択して
供給する手段(第4図の32,34)からなる。 A more desirable embodiment of the first invention is a means (14, IC, etc.) for supplying the first associative key to the associative memory means 102 at a first timing.
and means (GRB, GRX, etc.) for supplying the second associative key to the associative memory means 102 at a second timing subsequent to the first timing, and the associative memory means 102 is configured to supply the second associative key to the associative memory means 102 at a second timing after the first timing. When a first associative key consisting of address information is supplied, means (248, 250 in FIG. 5) for detecting a branch destination instruction having a first associative key that matches the first associative key; When a second associative key consisting of information for generating an address is subsequently supplied, the second associative key that matches the supplied second associative key is selected among the detected plurality of branch destination instructions.
It consists of means (32, 34 in FIG. 4) for selecting and supplying one branch destination instruction having an associative key.
ここで、第1のタイミングは、例えば分岐命令
の実行開始前であり、第2のタイミングを、例え
ば分岐命令の実行開始後である。あるいは、第1
のタイミングは、分岐命令の解読前であり、第2
のタイミングは、分岐命令の解読後と言つてもよ
い。あるいは第1のタイミングは、遅くとも分岐
命令の読み出しのときであり、第2のタイミング
は、分岐命令の読み出し後と言つてもよい。 Here, the first timing is, for example, before the start of execution of the branch instruction, and the second timing is, for example, after the start of execution of the branch instruction. Or the first
The timing is before the branch instruction is decoded, and the second
The timing can be said to be after the branch instruction is decoded. Alternatively, the first timing may be at the latest when the branch instruction is read, and the second timing may be after the branch instruction is read.
本願の第2の発明の特徴は、分岐先命令を記憶
する連想記憶手段102に対して、連想キーとし
て、分岐先命令のアドレスを算出するのに使用す
る、分岐先命令が指定するアドレス情報を使用
し、この分岐命令が再実行されたときには、分岐
先命令を連想記憶手段102から読み出すための
連想キーとして、分岐先命令のアドレスを算出す
るのに使用する、分岐命令が指定するアドレス情
報を使用することである。 A feature of the second invention of the present application is that the address information specified by the branch destination instruction is stored as an associative key in the associative storage means 102 that stores the branch destination instruction. When this branch instruction is re-executed, the address information specified by the branch instruction, which is used to calculate the address of the branch destination instruction, is used as an associative key for reading the branch destination instruction from the content addressable memory means 102. is to use.
なお、この第2の発明では、分岐命令のアドレ
ス情報を連想キーとして使用するか否かには言及
していない。その意味で、第1の発明とは独立し
た発明である。しかし、いずれの発明も、分岐先
命令のアドレスに関連する情報を連想キーとして
使用し、かつ分岐先命令が連想記憶手段102に
登録されているときには、分岐命令の分岐が成功
したものとして実行するところに共通の特徴があ
る。 Note that this second invention does not mention whether address information of a branch instruction is used as an associative key. In that sense, this invention is independent from the first invention. However, in both inventions, when information related to the address of a branch destination instruction is used as an associative key, and the branch destination instruction is registered in the associative storage means 102, the branch instruction is executed assuming that the branch is successful. There are common characteristics.
第3図は、本発明による分岐先バツフア記憶装
置と命令処理装置とのインターフエースを示す図
である。
FIG. 3 is a diagram showing an interface between a branch destination buffer storage device and an instruction processing device according to the present invention.
命令処理装置100と分岐先バツフア記憶装置
102とは、IC信号線104、DISP信号線10
6、BRN信号線108、GRB信号線110、
GRX信号線112、TKNP信号線114、PTI
信号線118、TI信号線120、およびTKN信
号線122の合計9本の信号線で結合されてい
る。 The instruction processing device 100 and the branch destination buffer storage device 102 are connected to an IC signal line 104 and a DISP signal line 10.
6, BRN signal line 108, GRB signal line 110,
GRX signal line 112, TKNP signal line 114, PTI
They are coupled by a total of nine signal lines: a signal line 118, a TI signal line 120, and a TKN signal line 122.
本発明の分岐先バツフア記憶装置102は、分
岐命令の命令アドレス、変位情報、分岐命令語の
ターゲツト・アドレスを決定するパラメータ、す
なわち分岐命令中のレジスタ指定情報の指示する
レジスタ値を連想キー(例えば、第2図のサブル
ーチンの終りのアドレスRTNの情報を第1の連
想キー、A点のアドレス4を生成する情報または
B点のアドレス5を生成する情報を第2の連想キ
ーとする)として、その分岐命令のターゲツト命
令語を含む命令語を出力するものである。 The branch destination buffer storage device 102 of the present invention stores parameters that determine the instruction address of a branch instruction, displacement information, and target address of a branch instruction word, that is, a register value indicated by register specification information in a branch instruction using an associative key (e.g. , the information on the address RTN at the end of the subroutine in FIG. It outputs an instruction word including the target instruction word of the branch instruction.
なお、特定のコンピユータ(例えば、IBM
System/370)では、分岐命令の指示するベー
ス・レジスタ値とインデツクス・レジスタ値と変
位情報により、ターゲツト・アドレスが決定され
るが、本実施例ではこの場合に対応しており、上
記パラメータとしてベース・レジスタ値とインデ
ツクス・レジスタ値を用いている。 Note that certain computers (for example, IBM
System/370), the target address is determined by the base register value, index register value, and displacement information specified by the branch instruction.This example supports this case, and the base register value is used as the above parameter. -Uses register value and index register value.
また、ベース・レジスタ値とインデツクス・レ
ジスタ値と分岐命令語中の変位情報との和ではな
く、分岐命令の指示する汎用レジスタの値をター
ゲツト命令のアドレスとする分岐命令に対して、
本実施例を適用する場合には、連想キー(第2の
連想キー)となるベース・レジスタまたはインデ
ツクス・レジスタの値の片方の値をゼロとし、他
方の値を汎用レジスタの値として分岐先バツフア
記憶装置102をアクセスする。 Also, for a branch instruction whose target instruction address is the value of a general-purpose register specified by the branch instruction, rather than the sum of the base register value, index register value, and displacement information in the branch instruction word,
When this embodiment is applied, one value of the base register or index register which becomes the associative key (second associative key) is set to zero, and the other value is set as the value of the general-purpose register and the branch destination buffer is set to zero. Access the storage device 102.
分岐先バツフア記憶装置102では、分岐命令
の指すベース・レジスタとインデツクス・レジス
タの値(汎用レジスタの値をターゲツト・アドレ
スとする分岐命令に対しては、汎用レジスタの
値)を連想キー(すなわち、第1の連想キー)と
して用いているので、サブルーチン・リターンの
ように、1つの分岐命令が複数のターゲツト命令
の中のいずれか1つに分岐する場合にも、上記連
想キーが異なるため、これを扱うことができる。 The branch destination buffer storage device 102 uses the values of the base register and index register pointed to by the branch instruction (the value of the general register for a branch instruction whose target address is the value of a general register) as an associative key (i.e., the value of the general register). This is used as the first associative key (first associative key), so even when one branch instruction branches to one of multiple target instructions, such as a subroutine return, this associative key is different. can be handled.
分岐先バツフア記憶装置102を用いると、タ
ーゲツト・フエツチの高速化が達成されるので、
分岐命令が高速に処理できる。そして、分岐命令
の分岐が成功したものとして、つまり分岐命令の
分岐判定の結果を待たないで、分岐先命令を実行
することができる。 By using the branch destination buffer storage device 102, the target fetch speed can be increased.
Branch instructions can be processed quickly. Then, the branch destination instruction can be executed assuming that the branch of the branch instruction is successful, that is, without waiting for the result of the branch determination of the branch instruction.
分岐先バツフア記録装置102には、ある分岐
命令の実行時に分岐が成功したときに記憶する。
例えば、第2図の場合には、RTNでA点の4、
またはB点の5へ分岐が成功したときに、分岐命
令アドレスであるサブルーチンSUBRTの終りの
アドレス(RTN)の情報からなる第1の連想キ
ーを記憶し、次に分岐先命令のアドレス4を生成
するための情報からなる第2の連想キー、あるい
は分岐先命令のアドレス5を生成するための情報
からなる第2の連想キーを記憶することになる。 The branch destination buffer recording device 102 stores information when a branch is successful when a certain branch instruction is executed.
For example, in the case of Figure 2, 4 at point A in RTN,
Or, when the branch to point B, 5, is successful, the first associative key consisting of the information of the end address (RTN) of the subroutine SUBRT, which is the branch instruction address, is stored, and then the address 4 of the branch destination instruction is generated. A second associative key consisting of information for executing the branch instruction or a second associative key consisting of information for generating the address 5 of the branch destination instruction is stored.
そして、その分岐命令が再度実行されたとき
に、その第1の連想キーと第2の連想キーの組を
連想キーとして分岐先バツフア記憶装置102に
供給し、供給した連想キーと一致する連想キーを
有する分岐先命令が読み出されたとき、その分岐
命令は成功と予測し、読み出した分岐命令を実行
する。第4図は、第3図における命令処理装置の
詳細ブロツク図である。 Then, when the branch instruction is executed again, the pair of the first associative key and the second associative key is supplied to the branch destination buffer storage device 102 as an associative key, and an associative key that matches the supplied associative key is supplied. When a branch destination instruction having . is read, the branch instruction is predicted to be successful and the read branch instruction is executed. FIG. 4 is a detailed block diagram of the instruction processing device in FIG. 3.
第4図には、分岐先バツフア102を含む命令
処理装置が記載されている。命令処理装置は、分
岐先バツフア記憶装置102、命令プリフエツチ
回路10、メモリ12、プリフエツチした命令群
をバツフアリングする命令バツフア14、命令レ
ジスタ15、セレクタ11,13、命令レジスタ
15中の命令が分岐命令であるか否かを調べる分
岐命令検出回路30、セレクタ切換回路32、デ
コード切換回路34、汎用レジスタ17、セレク
タ18,19、アドレス加算器20、メモリ2
1、実行ユニツト(演算器)22等から構成され
る。 FIG. 4 shows an instruction processing device including a branch destination buffer 102. The instruction processing device includes a branch destination buffer storage device 102, an instruction prefetch circuit 10, a memory 12, an instruction buffer 14 for buffering a group of prefetched instructions, an instruction register 15, selectors 11 and 13, and instructions in the instruction register 15 that are branch instructions. Branch instruction detection circuit 30 to check whether there is a branch instruction, selector switching circuit 32, decode switching circuit 34, general-purpose register 17, selectors 18, 19, address adder 20, memory 2
1, an execution unit (operating unit) 22, etc.
次に、全体の動作を説明する。 Next, the overall operation will be explained.
命令群を読み出す際の命令プリフエツチ・アド
レスを、あらかじめ命令フエツチ・アドレス・ユ
ニツト10に格納しておき、セレクタ11でアド
レス加算器20の出力または命令フエツチ・アド
レス・ユニツト10の上記命令でプリフエツチ・
アドレス出力の一方を選択してメモリ12にアク
セスし、1命令群を命令バツフア14に読み出し
て格納する。命令バツフア14から1命令ずつ命
令レジスタ15に読み出し、命令内の変位情報を
アドレス加算器20の一方の入力として用いるた
め転送する。命令バツフア14から命令レジスタ
15に読み出された命令のアドレスは、IC信号
線104を介して分岐先バツフア記憶装置102
に送出される。同時に、分岐命令語中の変位情報
をDISP信号線106を介して分岐先バツフア記
憶装置102に送出する。なお、TI、IR、
BRN、GRN、GRX、GRB、TKNは、第3図に
示すように、命令処理装置から分岐先バツフア記
憶装置102に情報を転送する回路である。分岐
命令検出回路30は、命令をデコードし、分岐命
令のときにはBRN信号線108に、‘1'を出力
して分岐先バツフア記憶装置102を起動する。
また、汎用レジスタ17のベース・レジスタとイ
ンデツクス・レジスタの各値が、命令レジスタ1
5の中のベース・フイールドとインデツクス・フ
イールドによりセレクタ18,19で選択され、
さらにアドレス加算器20で上記変位情報ととも
に加算されて、その結果が命令フエツチ・アドレ
ス・ユニツト10およびセレクタ11に転送さ
れ、次のターゲツト命令のアドレスとなる。セレ
クタ11に転送されたこのターゲツト命令のアド
レスは、ターゲツト命令語を含む命令群をフエツ
チするために、命令ストレージ・ユニツト12に
入力される。 The instruction prefetch address for reading out a group of instructions is stored in advance in the instruction fetch address unit 10, and the selector 11 uses the output of the address adder 20 or the above instruction of the instruction fetch address unit 10 to perform the prefetch address.
One of the address outputs is selected to access the memory 12, and one instruction group is read out and stored in the instruction buffer 14. One instruction at a time is read out from the instruction buffer 14 to the instruction register 15, and displacement information within the instruction is transferred for use as one input of the address adder 20. The address of the instruction read from the instruction buffer 14 to the instruction register 15 is transferred to the branch destination buffer storage device 102 via the IC signal line 104.
will be sent to. At the same time, the displacement information in the branch instruction word is sent to the branch destination buffer storage device 102 via the DISP signal line 106. In addition, TI, IR,
BRN, GRN, GRX, GRB, and TKN are circuits that transfer information from the instruction processing device to the branch destination buffer storage device 102, as shown in FIG. The branch instruction detection circuit 30 decodes the instruction, and when it is a branch instruction, outputs '1' to the BRN signal line 108 to activate the branch destination buffer storage device 102.
In addition, the values of the base register and index register of the general-purpose register 17 are stored in the instruction register 1.
Selected by selectors 18 and 19 by the base field and index field in 5,
Further, it is added together with the displacement information in the address adder 20, and the result is transferred to the instruction fetch address unit 10 and selector 11, and becomes the address of the next target instruction. The address of this target instruction transferred to selector 11 is input to instruction storage unit 12 for fetching the instruction group containing the target instruction word.
ベース・レジスタとインデツクス・レジスタの
値は、GRB信号線110とGRX信号線112に
それぞれ出力され、分岐先バツフア記憶装置10
2に送出される。分岐でない普通の命令のときに
は、アドレス加算器20の出力でオペランド・ス
トレージ21をアクセスし、オペランドを読み出
して実行ユニツト22にこれを与えることにより
実行させる。 The values of the base register and index register are output to the GRB signal line 110 and GRX signal line 112, respectively, and are sent to the branch destination buffer storage device 10.
2 is sent out. In the case of a normal instruction that is not a branch, the operand storage 21 is accessed by the output of the address adder 20, the operand is read out, and it is given to the execution unit 22 for execution.
分岐先バツフア記憶装置102は、信号線10
4,106,110,112を介して転送された
データを連想キーとして、対応するターゲツト命
令語を含む命令群が分岐先バツフア記憶装置10
2内に登録されているか否かを調べる。登録され
ているときには、分岐先バツフア記憶装置102
はTKNP信号線114に‘1'を出力し、さらに
ターゲツト命令語を含む命令群をRTI信号線11
8に出力する。セレクタ切換回路32は、信号線
114から‘1'を受け取つたとき、点線で示す制
御線を介してセレクタ13に右側入力を選択さ
せ、命令バツフア14にターゲツト命令語を含む
命令群を格納する。 The branch destination buffer storage device 102 is connected to the signal line 10
4, 106, 110, 112 as an associative key, a group of instructions including the corresponding target instruction word is transferred to the branch destination buffer storage device 10.
Check whether it is registered in 2. When registered, the branch destination buffer storage device 102
outputs '1' to the TKNP signal line 114, and also outputs a group of instructions including the target instruction word to the RTI signal line 11.
Output to 8. When the selector switching circuit 32 receives '1' from the signal line 114, it causes the selector 13 to select the right input via the control line indicated by a dotted line, and stores a group of instructions including the target instruction word in the instruction buffer 14.
なお、分岐先バツフア記憶装置102にターゲ
ツト命令語を含む命令群が登録されていないとき
には、分岐先バツフア記憶装置102は、
TKNPS信号線114に‘0'を出力する。 Note that when the instruction group including the target instruction word is not registered in the branch destination buffer storage device 102, the branch destination buffer storage device 102
Output '0' to the TKNPS signal line 114.
デコード切換回路34は、信号線114を介し
て‘0'が転送されてきたときには、分岐命令が分
岐不成立と予測して信号線40を‘0'にして、命
令バツフア14内の分岐命令の次の命令を命令レ
ジスタ15に切り出し、そのデコードを開始す
る。 When '0' is transferred via the signal line 114, the decode switching circuit 34 predicts that the branch instruction will not be taken and sets the signal line 40 to '0', so that the branch instruction next to the branch instruction in the instruction buffer 14 is The instruction is extracted to the instruction register 15 and its decoding is started.
これに対して、信号線114を介して‘1'が転
送されてきたときには、信号線40を‘1'にして
分岐命令が分岐成立と予測し、信号線118を介
して命令バツフア14に格納されたターゲツト命
令を含む命令群の中のターゲツト命令語を命令レ
ジスタ15に切り出し、そのデコードを開始す
る。 On the other hand, when a '1' is transferred via the signal line 114, the signal line 40 is set to '1', the branch instruction is predicted to be taken, and the branch instruction is stored in the instruction buffer 14 via the signal line 118. The target instruction word in the instruction group containing the specified target instruction is extracted into the instruction register 15 and its decoding is started.
実行ユニツト22は、上記デコードと並行して
分岐命令を実行する。分岐命令のデコード開始か
ら一定時間後に分岐命令の実行が完了し、分岐命
令の判定結果が得られる。また、それと同時に、
アドレス加算器20からセレクタ11を介して命
令ストレージ・ユニツト12に入力されたターゲ
ツト・アドレスに基づいて、ターゲツト命令語を
含む命令群のフエツチを行う。 The execution unit 22 executes the branch instruction in parallel with the above decoding. Execution of the branch instruction is completed after a certain period of time from the start of decoding of the branch instruction, and a determination result of the branch instruction is obtained. Also, at the same time,
Based on the target address input from the address adder 20 to the instruction storage unit 12 via the selector 11, a group of instructions including the target instruction word is fetched.
実行ユニツト22は、分岐不成立のときには
TKN信号線122に‘0'を出力する。また、分
岐成立のときには、TKN信号線122に‘1'を
出力して、分岐先バツフア記憶装置102に転送
する。 When the branch is not taken, the execution unit 22
Output '0' to the TKN signal line 122. Furthermore, when a branch is established, '1' is output to the TKN signal line 122 and transferred to the branch destination buffer storage device 102.
そして、命令ストレージ・ユニツト12から読
み出されたターゲツト命令語を含む命令群を信号
線120を介して分岐先バツフア記憶装置102
に送出する。 Then, the instruction group including the target instruction word read from the instruction storage unit 12 is transferred to the branch destination buffer storage device 102 via the signal line 120.
Send to.
分岐先バツフア記憶装置102は、信号線12
0,122を介して転送されたデータに基づい
て、書き込みサイクル動作を行う。 The branch destination buffer storage device 102 is connected to the signal line 12
A write cycle operation is performed based on the data transferred via 0 and 122.
本発明における第1番目の重要な機能は、同じ
分岐命令の分岐先命令のアドレスが、その分岐命
令の実行毎に変化する場合でも、分岐先命令を連
想記憶手段に登録可能にしたことである。そし
て、これを再利用可能にすることである。すなわ
ち、分岐先命令のアドレスを生成するための情報
からなる第2の連想キーを連想キーの一部に使用
して、分岐先命令を連想記憶手段に登録すること
により、同じ分岐命令の分岐先命令が複数あり得
る場合でも、現在必要な分岐先命令を正しく連想
記憶装置から読み出せるようにしている。さら
に、分岐命令の分岐が成功した場合に、その分岐
先命令を登録し、分岐命令の再度の実行時に、連
想記憶手段に分岐先命令が登録されている場合
に、その分岐命令の分岐が今回も成功と予測し
て、つまりこの分岐命令の実行により、分岐が成
功したか否かの判定結果が出るのを待たないで、
分岐先命令の実行開始を行う。これにより、分岐
先命令の実行を高速に開始することができる。こ
のように、分岐が成功と予測して分岐先命令を実
行するからには、分岐先命令がいずれの分岐命令
の分岐が成功したものであるかを区別する必要が
ある。このために、実行例では、連想記憶手段に
分岐命令のアドレス情報からなる第1の連想キー
をも登録するようにしている。単に、分岐命令の
アドレスを生成するための情報からなる第2の連
想キーを使用しただけでは、どの分岐命令が成功
したときに実行すべき分岐先命令であるかが判断
できない。 The first important feature of the present invention is that even if the address of the branch destination instruction of the same branch instruction changes each time the branch instruction is executed, the branch destination instruction can be registered in the content addressable memory means. . And to make it reusable. That is, by using a second associative key consisting of information for generating the address of the branch destination instruction as part of the associative key and registering the branch destination instruction in the associative storage means, the branch destination of the same branch instruction Even if there may be multiple instructions, the currently required branch destination instruction can be read correctly from the associative memory device. Furthermore, if the branch of a branch instruction is successful, the branch destination instruction is registered, and when the branch instruction is executed again, if the branch destination instruction is registered in the associative memory means, the branch of that branch instruction is In other words, by executing this branch instruction, without waiting for the result of determining whether the branch was successful or not,
Starts execution of the branch destination instruction. Thereby, execution of the branch destination instruction can be started at high speed. In this way, in order to predict that the branch will be successful and execute the branch destination instruction, it is necessary to distinguish which branch instruction the branch destination instruction was for which the branch was successful. For this reason, in the implementation example, the first associative key consisting of the address information of the branch instruction is also registered in the associative memory means. By simply using the second associative key consisting of information for generating the address of a branch instruction, it is not possible to determine which branch instruction is the branch destination instruction to be executed if successful.
本発明では、このように2つの連想キーを使用
して、以上の問題がないようにしている。 The present invention uses two associative keys in this way to avoid the above problems.
さらに、本実施例では、第1のタイミングで予
め複数の分岐先命令を読み出すことができるの
で、それだけ連想記憶手段を早くアクセスするこ
とができ、その結果、最終的に分岐先命令を読み
出すタイミングが早くなり、分岐先命令の実行開
始を早めることが可能である。 Furthermore, in this embodiment, since a plurality of branch destination instructions can be read out in advance at the first timing, the associative memory means can be accessed earlier, and as a result, the timing at which the branch destination instruction is finally read out can be adjusted. This makes it possible to start execution of the branch destination instruction earlier.
次に、本発明における第2番目に重要な機能を
説明する。 Next, the second most important function in the present invention will be explained.
ある分岐命令の分岐先命令を連想記憶手段に登
録する場合に、分岐先命令のアドレスを連想キー
として登録すると、その分岐命令が再実行された
ときには、その分岐命令が指定する情報に基づい
て、分岐先命令を算出した後で、算出後の分岐命
令アドレスを連想キーとして連想記憶手段に供給
する必要がある。 When registering the branch destination instruction of a certain branch instruction in an associative memory means, if the address of the branch destination instruction is registered as an associative key, when the branch instruction is re-executed, the information specified by the branch instruction will be executed based on the information specified by the branch instruction. After calculating the branch destination instruction, it is necessary to supply the calculated branch instruction address to the associative storage means as an associative key.
本発明の場合には、アドレス算出の基となる情
報を連想キーとして供給すればよいため、それだ
け早く連想記憶手段をアクセスすることができ
る。 In the case of the present invention, since the information on which address calculation is based need only be supplied as an associative key, the associative memory means can be accessed more quickly.
さらに、本発明では、連想記憶手段に再実行さ
れた分岐命令の分岐先命令が登録されているとき
には、その分岐命令の分岐が成功と予測して分岐
先命令を実行するので、分岐先命令が早く読み出
された分だけ、より早期にその分岐先命令を実行
することができる。 Furthermore, in the present invention, when the branch destination instruction of the re-executed branch instruction is registered in the associative memory means, the branch destination instruction is executed with the prediction that the branch of the branch instruction is successful. The earlier the branch destination instruction is read, the earlier the branch destination instruction can be executed.
第5図は、本発明の実施例を示す分岐先バツフ
ア記憶装置の構成図である。 FIG. 5 is a configuration diagram of a branch destination buffer storage device showing an embodiment of the present invention.
分岐先バツフア記憶装置102は、過去に分岐
成立となつた分岐先命令の命令語群を、連想キー
である分岐命令語のアドレス、分岐命令語中の変
位情報、ベース・レジスタとインデツクス・レジ
スタの値とともに記憶している。分岐先バツフア
記憶装置102では、各分岐命令は、その分岐命
令が前回実行されたときと同じ成立/不成立判定
をすると予測し、かつ前回の実行が成立判定のと
きには、そのときのターゲツト命令語と同じもの
が実行されると予測する。従つて、ある分岐命令
の連想キーに対応するターゲツト命令語を含む命
令群が分岐先バツフア記憶装置に記憶されている
ときには、その連想キーの基になつた分岐命令は
成立すると予測され、そうでないときには不成立
と予測される。 The branch destination buffer storage device 102 stores a group of instruction words of branch destination instructions that have taken a branch in the past, including the address of the branch instruction word that is an associative key, displacement information in the branch instruction word, and information on the base register and index register. It is memorized along with the value. The branch destination buffer storage device 102 predicts that each branch instruction will make the same determination as the previous execution of the branch instruction, and if the previous execution resulted in a determination of establishment, the branch destination buffer storage device 102 predicts that each branch instruction will make the same determination as the previous execution. Expect the same to run. Therefore, when a group of instructions including a target instruction word corresponding to an associative key of a certain branch instruction is stored in the branch destination buffer storage device, the branch instruction on which that associative key is based is predicted to be taken, and it is predicted that the associative key is not. Sometimes it is predicted that it will fail.
ある分岐命令に対し、分岐先バツフア記憶装置
が不成立と予測して、実際にその分岐命令が分岐
不成立となつた場合には、分岐先バツフア記憶装
置の内容は変化しない。また、あるい分岐命令に
対し、分岐先バツフア記憶装置が不成立と予測し
たにもかかわらず、実際にはその分岐命令が分岐
成立となつた場合には、その分岐命令のターゲツ
ト命令語を含む命令群と連想キーは、対応した分
岐先バツフア記憶装置に新しく記憶される。ある
分岐命令に対し、分岐先バツフア記憶装置が成立
と予測したにもかかわらず、実際にはその分岐命
令が分岐不成立となつた場合には、その分岐命令
のターゲツト命令語を含む命令群および対応する
連想キーは、分岐先バツフア記憶装置から削除さ
れる。さらに、ある分岐命令に対し、分岐先バツ
フア記憶装置が成立と予測して、実際にその分岐
命令が分岐成立となつた場合には、その分岐命令
のターゲツト命令語を含む命令群は、予測時に用
いたターゲツト命令語を含む命令群の上に重ね書
きされる。 When a branch destination buffer storage device predicts that a certain branch instruction will not be taken, and the branch instruction actually becomes a branch failure, the contents of the branch destination buffer storage device do not change. In addition, if the branch destination buffer storage device predicts that the branch instruction will not be taken, but the branch instruction actually takes place, the instruction containing the target instruction word of the branch instruction The group and associative key are newly stored in the corresponding branch destination buffer storage device. If the branch destination buffer storage device predicts that a branch instruction will be taken, but the branch instruction actually becomes not taken, the instruction group including the target instruction word of the branch instruction and the corresponding The associated key is deleted from the branch destination buffer storage device. Furthermore, if the branch destination buffer storage device predicts that a branch instruction will be taken, and the branch instruction actually takes place, the instruction group containing the target instruction word of that branch instruction will be It is overwritten on the instruction group containing the used target instruction word.
第5図に示すように、分岐先バツフア記憶装置
は、RAM412,236、セレクタ208,2
54,400,442,438、レジスタ20
2,216,218,220,222,238,
262,264、制御回路414およびその他の
組合わせ論理回路から構成される。 As shown in FIG. 5, the branch destination buffer storage device includes RAMs 412, 236, selectors 208, 2
54,400,442,438, register 20
2,216,218,220,222,238,
262, 264, a control circuit 414, and other combinational logic circuits.
RAM412には、過去に分岐成立となつた分
岐命令の命令アドレスの上位16ビツト、分岐命令
語の変位情報、ベース・レジスタとインデツク
ス・レジスタの値、およびターゲツト命令語を含
む命令群が記憶されている。RAM412は、TI
フイールド、GRBフイールド、GRXフイール
ド、IRフイールド、ICUフイールド、Validフイ
ールドから構成されている。TIフイールドには
上記ターゲツト命令語を含む命令群が、GRBフ
イールドには上記ベース・レジスタの値が、
GRXフイールドには上記インデツクス・レジス
タの値が、IRフイールドには上記分岐命令語中
の変位情報が、ICUフイールドには上記命令アド
レスの上位16ビツトが、それぞれ記憶されてい
る。 The RAM 412 stores a group of instructions including the upper 16 bits of the instruction address of a branch instruction that took a branch in the past, displacement information of the branch instruction word, values of the base register and index register, and the target instruction word. There is. RAM412 is TI
field, GRB field, GRX field, IR field, ICU field, and Valid field. The TI field contains the instruction group containing the above target instruction word, and the GRB field contains the value of the above base register.
The value of the index register is stored in the GRX field, the displacement information in the branch instruction word is stored in the IR field, and the upper 16 bits of the instruction address are stored in the ICU field.
RAM412の各フイールドは、2ロー・
65536(2の16乗)カラム構成となつている。 Each field of RAM412 has 2 rows.
It has a column configuration of 65536 (2 to the 16th power).
RAM412は、読み出し時には、信号線21
0で指定されたカラム全ローが同時に読み出さ
れ、書き込み起動時には、信号線210で指定さ
れたカラムの中で、信号線212で指定されたロ
ーに対して書き込みが行われる。 When reading the RAM 412, the signal line 21
All rows in the column designated by 0 are read out at the same time, and when writing is started, writing is performed on the row designated by the signal line 212 in the column designated by the signal line 210.
なお、本実施例では、2ロー、65536カラム構
成であるが、任意のロー数、任意のカラム数で構
成できることは勿論である。また、本実施例で
は、分岐命令アドレスの下位16ビツトをカラム・
アドレの決定に用いているが、分岐命令アドレ
ス、分岐命令語中の変位情報、ベース・レジスタ
の値の中のビツトの任意のビツトの組合わせを、
カラム・アドレスの決定に使用することができる
のは明らかである。 In this embodiment, the configuration is 2 rows and 65536 columns, but it goes without saying that the configuration can be configured with any number of rows and any number of columns. In addition, in this embodiment, the lower 16 bits of the branch instruction address are
Any combination of the branch instruction address, displacement information in the branch instruction word, and bits in the base register value is used to determine the address.
It is clear that it can be used to determine column addresses.
次に、分岐先バツフア記憶装置の動作の詳細を
説明する。 Next, details of the operation of the branch destination buffer storage device will be explained.
分岐先バツフア記憶装置の動作は、読み出しサ
イクルと書き込みサイクルからなる。 The operation of the branch destination buffer storage device consists of read cycles and write cycles.
(a) 読み出しサイクル
分岐先バツフア記憶装置の読み出しサイクル
の動作は、BRN信号線108を介して‘1'が
制御回路414に転送された時点から開始され
る。制御回路414は、RAM412,236
の読み出しを起動し、セレクタ208に左選択
信号を出す。また、レジスタ202,216,
218,220,222の書き込みを起動す
る。(a) Read Cycle The read cycle operation of the branch destination buffer storage device starts from the time when '1' is transferred to the control circuit 414 via the BRN signal line 108. The control circuit 414 includes RAMs 412, 236
, and outputs a left selection signal to the selector 208. In addition, registers 202, 216,
218, 220, and 222 are activated.
書き込みが起動されたICLIレジスタ202
には、信号線200を介してIC信号線104
の下位16ビツトが書き込まれ、ICUIレジスタ
222には、IC信号線104上の分岐命令ア
ドレスの上位16ビツトが書き込まれる。また、
レジスタ216、レジスタ218、レジスタ2
20には、それぞれGRB信号線110上のベ
ース・レジスタの値、GRX信号線112の上
のインデツクス・レジスタの値、IR信号線1
06上の命令語が書き込まれる。 ICLI register 202 with write initiated
The IC signal line 104 is connected to the IC signal line 104 via the signal line 200.
The lower 16 bits of the branch instruction address on the IC signal line 104 are written to the ICUI register 222. Also,
Register 216, Register 218, Register 2
20, the value of the base register on the GRB signal line 110, the value of the index register on the GRX signal line 112, and the IR signal line 1, respectively.
The instruction word above 06 is written.
また、RAM412から信号線204、セレ
クタ208、信号線210を介して伝達された
IC信号線104上の命令アドレスの下位16ビ
ツトで指定されたカラムのデータを、信号線2
40,268,270,272,274,27
6,278,280,282,284,28
6,292,294に出力する。 Also, data transmitted from the RAM 412 via the signal line 204, the selector 208, and the signal line 210
The data in the column specified by the lower 16 bits of the instruction address on IC signal line 104 is transferred to signal line 2.
40,268,270,272,274,27
6,278,280,282,284,28
6,292,294.
比較器248,250の左側には、信号線1
10,112,106,426,434のデー
タガ入力される。また、比較器248を右側に
は、信号線284,280,276,272,
268のデータが入力される。比較器520右
側には、信号線286,282,278,27
4,270のデータが入力される。比較器24
8,250は、右側入力データと左側データと
が等しいときにロー0一致信号線306、ロー
1一致信号308にそれぞれ‘1'を出力し、等
しくないときには‘0'を出力する。すなわち、
解読された分岐命令アドレスの上位16ビツトベ
ース・レジスタとインデツクス・レジスタの
値、および分岐命令語と、ロー0/ロー1から
読み出したICUフイールド、GRBフイールド、
GRXフイールド、IRフイールドのデータがそ
れぞれが等しく、かつValidフイールドの値が
‘1'に等しければ、比較器248/250は‘
1'を出力し、それ以外では‘0'を出力する。 On the left side of the comparators 248 and 250, the signal line 1
Data numbers 10, 112, 106, 426, and 434 are input. Also, on the right side of the comparator 248, signal lines 284, 280, 276, 272,
268 data is input. On the right side of the comparator 520, signal lines 286, 282, 278, 27
4,270 data are input. Comparator 24
8,250 outputs '1' to the row 0 match signal line 306 and the row 1 match signal 308 when the right side input data and the left side data are equal, and outputs '0' when they are not equal. That is,
The upper 16-bit base register and index register values of the decoded branch instruction address, the branch instruction word, and the ICU field and GRB field read from row 0/row 1.
If the data in the GRX field and the IR field are equal, and the value in the Valid field is equal to '1', the comparator 248/250
Outputs 1', otherwise outputs '0'.
ロー0かロー1のいずれかのデータが上記の
ように等しい場合、つまり分岐先バツフア記憶
装置に連想キーに対応するターゲツト命令語を
含む命令群が登録されている場合には、ロー0
一致信号線306またはロー1一致信号線30
8が‘1'になり、OR回路256はTKNP信号
線114に‘1'を出力し、汎用コピユータ10
0に転送する。 If the data in either row 0 or row 1 are equal as described above, that is, if a group of instructions including the target instruction word corresponding to the associative key is registered in the branch destination buffer storage device, row 0
Match signal line 306 or row 1 match signal line 30
8 becomes '1', the OR circuit 256 outputs '1' to the TKNP signal line 114, and the general-purpose copier 10
Transfer to 0.
また、エンコーダ258は、連想キーに対応
するターゲツト命令語を含む命令群が登録され
ているロー番号の2進数をロー番号信号線35
8に出力する。例えば、ロー1に連想キーに対
応するターゲツト命令語が登録されているなら
ば、比較器248,250によりロー1一致信
号308にだけ‘1'が出力され、エンコーダ2
58はロー番号信号線358に‘1'を出力す
る。ロー番号信号線のデータはセレクタ254
に入力され、信号線292,294の中で、登
録されていたローから出ている信号線のデータ
を、PTI信号線118に出力する。例えば、信
号線358に‘1'が出力されているならば、信
号線294のデータがRTI信号線118に出力
される。 Further, the encoder 258 sends the binary number of the row number in which the instruction group including the target instruction word corresponding to the associative key is registered to the row number signal line 35.
Output to 8. For example, if the target instruction word corresponding to the associative key is registered in row 1, the comparators 248 and 250 output '1' only to the row 1 match signal 308, and the encoder 2
58 outputs '1' to the row number signal line 358. The data of the row number signal line is the selector 254
The data on the signal line coming out from the registered row among the signal lines 292 and 294 is output to the PTI signal line 118. For example, if '1' is output on the signal line 358, data on the signal line 294 is output on the RTI signal line 118.
ロー0およびロー1のいずれにも、連想キー
に対応するターゲツト命令語を含む命令群が登
録されていない場合には、信号線306,30
8は両方とも‘0'となり、OR回路256は‘
0'をTKNP信号線114に出力し、汎用コン
ピユータ100に転送する。 If no instruction group including the target instruction word corresponding to the associative key is registered in either row 0 or row 1, the signal lines 306 and 30
8 are both '0', and the OR circuit 256 is '0'.
0' is output to the TKNP signal line 114 and transferred to the general-purpose computer 100.
BRN信号線108を介して‘1'が制御回路
414に入力してから、このようにして読み出
しサイクルの動作が行われ、信号線240,4
22,424,114、ロー番号信号線358
にデータが出力される時刻に、制御回路414
はRPLOレジスタ262、ROW#SVレジスタ
264の書き込みを起動する。書き込み起動さ
れたRPLOレジスタ238、レジスタ418,
420、HITSVレジスタ262、ROW#SV
レジスタ264には、信号線114、およびロ
ー0番号信号線358上のデータがそれぞれ書
き込まれる。上記各レジスタに書き込まれたデ
ータは、次に説明する書き込みサイクルで使用
される。 After '1' is input to the control circuit 414 via the BRN signal line 108, the read cycle operation is performed in this manner, and the signal lines 240, 4
22,424,114, row number signal line 358
control circuit 414 at the time when data is output to
starts writing to the RPLO register 262 and ROW#SV register 264. Write activated RPLO register 238, register 418,
420, HITSV register 262, ROW#SV
The data on the signal line 114 and the row 0 number signal line 358 are written into the register 264, respectively. The data written to each of the above registers is used in the write cycle described below.
(b) 書き込みサイクル
RPLOレジスタ238に記憶された再配置制
御データは、信号線242を介して書き込みロ
ー選択回路224に入力される。書み込みロー
選択回路224は、FIFO方式、LRU方式等の
周知の再配置方式を用いて構成されるものであ
り、書き込まれるローを選択し、そのロー番号
を信号線402を介してセレクタ400に入力
する。(b) Write Cycle The relocation control data stored in the RPLO register 238 is input to the write row selection circuit 224 via the signal line 242. The write row selection circuit 224 is configured using a well-known relocation method such as a FIFO method or an LRU method, and selects a row to be written and sends the row number to the selector 400 via a signal line 402. Enter.
レジスタ418に記憶されていたデータは、
信号線408を介してセレクタ400に入力さ
れる。 The data stored in register 418 is
It is input to the selector 400 via a signal line 408.
レジスタ420のデータは、信号線410を
介してセレクタ400に入力される。信号線4
10を介して‘1'が入力されるときには、セレ
クタ400は信号線402のデータを信号線4
36に出力する。信号線410を介して‘0'が
入力されるときには、セレクタ400は信号線
408のデータを信号線436に出力する。 Data in register 420 is input to selector 400 via signal line 410. signal line 4
When '1' is input through signal line 10, selector 400 transfers the data on signal line 402 to signal line 4.
Output to 36. When '0' is input through the signal line 410, the selector 400 outputs the data on the signal line 408 to the signal line 436.
信号線436のデータは、分岐先バツフア記
憶装置にターゲツト命令語を含む命令群と連想
キー(第1の連想キーおよび第2の連想キー)
を新しく記憶するローの番号であり、セレクタ
438に入力される。 The data on the signal line 436 includes a group of instructions including the target instruction word in the branch destination buffer storage device and associative keys (first associative key and second associative key).
is the number of the row to be newly stored, and is input to the selector 438.
ROW#SVレジスタ264のデータは、信号
線356を介してセレクタ438に入力され
る。 Data in the ROW#SV register 264 is input to the selector 438 via the signal line 356.
HITSVレジスタ262のデータは、信号線
354を介してセレクタ348に入力される。 Data in the HITSV register 262 is input to the selector 348 via a signal line 354.
信号線354を介して‘1'が入力されるとき
には、セレクタ438は信号線356のデータ
を信号線212に出力する。信号線354を介
して‘0'が入力されるときには、セレクタ43
8は、信号線436のデータを信号線212に
出力する。信号線212のデータは、再配置制
御データ更新論理回路246とRAM412に
入力される。信号線212のデータは、書き込
みのサイクルでRAM412に書き込まれるロ
ーの番号である。再配置制御データ更新論理回
路246には、さらにRPLOレジスタ238の
データが信号線242を介して入力される。再
配置制御データ更新論理回路246は、FIFO
方式、LRU方式等の周知の再配置方式を用い
て構成されるものであり、信号線212上の書
き込みロー番号に基づいて信号線242上の再
配置制御データを更新する。更新された再配置
制御データは、信号線234を介してRAM2
36に入力される。 When '1' is input via the signal line 354, the selector 438 outputs the data on the signal line 356 to the signal line 212. When '0' is input via the signal line 354, the selector 43
8 outputs the data on the signal line 436 to the signal line 212. Data on signal line 212 is input to relocation control data update logic circuit 246 and RAM 412. The data on signal line 212 is the row number written to RAM 412 in a write cycle. Data from the RPLO register 238 is further input to the relocation control data update logic circuit 246 via a signal line 242. The relocation control data update logic circuit 246 is a FIFO
The relocation control data on the signal line 242 is updated based on the write row number on the signal line 212. The updated relocation control data is sent to the RAM 2 via the signal line 234.
36.
さらにGRBI信号線224上のベース・レジ
スタの値、GRXI信号線226上のインデツク
ス・レジスタの値、IRI信号線228上の命令
語、ICUI信号線230上の分岐命令アドレス
の上位16ビツトは、それぞれRAM412の
GRBフイールド、GRXフイールド、IRIフイ
ールド、ICUIフイールドに入力される。 Furthermore, the value of the base register on the GRBI signal line 224, the value of the index register on the GRXI signal line 226, the instruction word on the IRI signal line 228, and the upper 16 bits of the branch instruction address on the ICUI signal line 230 are respectively RAM412
Input to GRB field, GRX field, IRI field, ICUI field.
演算器22では、最終サイクルで分岐命令の
判定を行い、TKN信号線122を介して判定
結果が分岐先バツフア記憶装置に転送され、分
岐成立のときにはさらにTI信号線120を介
してターゲツト命令語が転送される。 In the arithmetic unit 22, a branch instruction is determined in the final cycle, the determination result is transferred to the branch destination buffer storage device via the TKN signal line 122, and when the branch is taken, the target instruction word is further transferred via the TI signal line 120. be transferred.
上記事象に同期して、HITSVレジスタ26
6が‘1'、またはTKN信号線122が‘1'の
ときのみ、セレクタ208に右選択信号が出さ
れ、RAM412の書き込みが起動される。さ
らに、信号線122が‘1'のときにセレクタ4
42に右選択信号が出され、TKN信号線12
2が‘0'のときに左選択信号が出される。 In synchronization with the above event, HITSV register 26
6 is '1' or the TKN signal line 122 is '1', a right selection signal is output to the selector 208, and writing to the RAM 412 is activated. Furthermore, when the signal line 122 is '1', the selector 4
A right selection signal is output to 42, and the TKN signal line 12
When 2 is '0', a left selection signal is issued.
ICLI信号線206上の命令アドレスの下位
16ビツトは、セレクタ208、信号線210を
介してRAM412に入力される。 Lower order of the instruction address on ICLI signal line 206
The 16 bits are input to RAM 412 via selector 208 and signal line 210.
書き込みが起動されたRAM412のGRBフ
イールド、GRXフイールド、IRフイールド、
ICUフイールドには、それぞれGRBI信号線上
のベース・レジスタ値、IR信号線上の命令語、
およびICU信号線上の分岐命令アドレスの上位
16ビツトが、レジスタ262が‘1'のときに、
レジスタ264が示すロー番号のローに書き込
まれる。レジスタ262が‘0'のときには、
LRU方式またはFIFO方式等の公知の再配置方
法の1つを用いて選択されたローに書き込まれ
る。この再配置方法は、本発明には直接の関係
がないため、これ以上の説明は省略する。 GRB field, GRX field, IR field of RAM412 where writing was started,
The ICU field contains the base register value on the GRBI signal line, the instruction word on the IR signal line, and
and upper branch instruction address on the ICU signal line
When 16 bits are '1' in register 262,
It is written to the row of the row number indicated by register 264. When register 262 is '0',
The selected rows are written to using one of the known relocation methods such as LRU or FIFO. Since this relocation method has no direct relation to the present invention, further explanation will be omitted.
HITSVレジスタ262が‘1'であり、かつ
TKN信号線122‘1'のときには、さらに
RAM412のTIフイールドにTI信号線120
のデータが書き込まれる。これにより、読み出
しサイクルで読み出されたターゲツト命令語を
含む命令群の上に、TI信号線120を介して
転送されたターゲツト命令語を含む命令群が重
ね書きされる。 HITSV register 262 is '1', and
When TKN signal line 122'1', further
TI signal line 120 to TI field of RAM412
data is written. As a result, the instruction group including the target instruction word transferred via the TI signal line 120 is overwritten on the instruction group including the target instruction word read in the read cycle.
また、HITSVレジスタ262が‘1'であり、
かつTKN信号線122が‘0'のときには、さ
らにValidフイールドに‘0'が書き込まれる。
これにより、読み出しサイクルで読み出された
ターゲツト命令語を含む命令群と、それに対応
する連想キー(第1の連想キーおよび第2の連
想キー)が分岐先バツフア記憶装置から削除さ
れる。 In addition, the HITSV register 262 is '1',
And when the TKN signal line 122 is '0', '0' is further written in the Valid field.
As a result, the instruction group including the target instruction word read in the read cycle and the corresponding associative keys (first associative key and second associative key) are deleted from the branch destination buffer storage device.
また、HITSVレジスタ262が‘0'であり、
かつTKN信号線122が‘1'のときには、さ
らにTIフイールドにTI信号線120のデータ
が書き込まれ、Validフイールドには‘1'が書
き込まれる。これにより、ターゲツト命令語
と、それに対応する連想キー(第1の連想キー
およびこの後の第2の連想キー)が分岐先バツ
フア記憶装置に新しく記憶される。 In addition, the HITSV register 262 is '0',
When the TKN signal line 122 is '1', the data of the TI signal line 120 is further written into the TI field, and '1' is written into the Valid field. As a result, the target instruction word and the corresponding associative key (the first associative key and the subsequent second associative key) are newly stored in the branch destination buffer storage device.
HITSVレジスタ262とTKN信号線12
2が、ともに‘0'のときには何も行われない。 HITSV register 262 and TKN signal line 12
2 are both '0', nothing is done.
以上のように、本願の第1の発明では、分岐
命令のある実行時に分岐が成功したとき、その
分岐命令のアドレス情報からなる第1の連想キ
ーと、その分岐先命令のアドレスを生成するた
めの情報からなる第2の連想キーとの組を連想
キーとして、その分岐先命令とともに連想記憶
手段に登録し、次にある分岐先命令が実行され
たとき、その分岐命令のアドレス情報からなる
第1の連想キーとその命令が指定する分岐先命
令のアドレスを生成するための情報からなる第
2の連想キーとの組を連想キーとして、連想記
憶手段に供給する。そして、供給された連想キ
ーと一致する連想キーを有する分岐先命令が連
想記憶手段から読み出されたとき、その分岐命
令の分岐が成功と予測し、その分岐先命令を実
行する。 As described above, in the first invention of the present application, when a branch is successfully executed when a branch instruction is executed, a first associative key consisting of address information of the branch instruction and the address of the branch destination instruction are generated. A pair with a second associative key consisting of the information of A set of one associative key and a second associative key consisting of information for generating the address of the branch destination instruction specified by the instruction is supplied to the associative storage means as an associative key. Then, when a branch destination instruction having an associative key that matches the supplied associative key is read from the associative storage means, the branching of that branch instruction is predicted to be successful, and the branch destination instruction is executed.
また、第1の発明の実施態様では、第1のタ
イミングで、第1の連想キーを連想記憶手段に
供給し、第1のタイミングより後の第2のタイ
ミングで、第2の連想キーを連想記憶手段に供
給する。連想記憶手段は、分岐命令のアドレス
情報からなる第1の連想キーが供給されたと
き、これに一致する第1の連想キーを有する分
岐先命令が複数存在するときには、それらの複
数の分岐先命令を検出する。また、読み出すべ
き分岐先命令のアドレスを生成するため情報か
らなる第2の連想キーがその後に供給されたと
きに、検出された複数の分岐先命令のうち、こ
の供給された第2の連想キーに一致する第2の
連想キーを有する1つの分岐先命令を選択して
供給する。なお、第1の連想キーを連想記憶手
段に供給する第1のタイミングとしては、分岐
命令の実行開始前、あるいは分岐命令の解読
前、あるいは分岐命令の読み出し時であり、一
方、第2の連想キーを連想記憶手段に供給する
第2のタイミングとしては、分岐命令の実行開
始後、あるいは分岐命令の解読後、あるいは分
岐命令の読み出し後である。 Further, in the embodiment of the first invention, the first associative key is supplied to the associative memory means at the first timing, and the second associative key is supplied to the associative memory means at the second timing after the first timing. supply to storage means; When a first associative key consisting of address information of a branch instruction is supplied, the associative memory means stores a plurality of branch destination instructions having a first associative key that matches the first associative key. Detect. Further, when a second associative key consisting of information is subsequently supplied to generate the address of a branch destination instruction to be read, the supplied second associative key among the plurality of branch destination instructions detected One branch destination instruction having a second associative key matching is selected and supplied. Note that the first timing for supplying the first associative key to the associative memory means is before starting execution of a branch instruction, before decoding a branch instruction, or when reading a branch instruction; The second timing for supplying the key to the associative memory means is after starting execution of the branch instruction, after decoding the branch instruction, or after reading the branch instruction.
また、本願の第2の発明では、分岐先命令を
記憶する連想記憶手段に対して、連想キーとし
て分岐先命令のアドレスを算出するのに使用す
る情報、つまり分岐命令が指定するアドレス情
報を使用して、この分岐命令が再実行されたと
きには、分岐先命令を連想記憶手段から読み出
すための連想キーとして、分岐先命令のアドレ
スを算出するために使用する情報、つまり分岐
命令が指定するアドレス情報を使用する。 Further, in the second invention of the present application, information used to calculate the address of the branch destination instruction, that is, address information specified by the branch instruction, is used as an associative key for the associative memory means for storing the branch destination instruction. Then, when this branch instruction is re-executed, the information used to calculate the address of the branch destination instruction, that is, the address information specified by the branch instruction, is used as an associative key to read the branch destination instruction from the content addressable memory means. use.
第1および第2の発明のいずれも、分岐先命
令のアドレスを生成するための情報からなる連
想キーを用いており、かつ分岐先命令が連想記
憶手段に登録されているときには、分岐命令の
分岐が成功と予測して実行する点で共通してい
る。 Both the first and second inventions use an associative key consisting of information for generating the address of the branch destination instruction, and when the branch destination instruction is registered in the associative storage means, the branch instruction is branched. What they have in common is that they predict success and execute it.
以上説明したように、本発明によれば、同じ分
岐命令が指定する分岐先命令のアドレスがその分
岐命令の実行毎に変化する場合でも、分岐先命令
を連想記憶手段に登録することができ、かつ再利
用が可能である。また、分岐命令の分岐先命令を
連想記憶手段に登録した後、その分岐命令の再実
行時に、その分岐命令の分岐先命令を高速に読み
出し、実行することができる。
As explained above, according to the present invention, even if the address of the branch destination instruction specified by the same branch instruction changes every time the branch instruction is executed, the branch destination instruction can be registered in the associative storage means. and can be reused. Furthermore, after registering the branch destination instruction of a branch instruction in the associative storage means, when the branch instruction is re-executed, the branch destination instruction of the branch instruction can be read out and executed at high speed.
第1図および第2図は従来のルート・メモリの
機能を説明する図、第3図は本発明の一実施例を
示す分岐先バツフア記憶装置と命令処理装置との
インターフエースの図、第4図は第3図の詳細ブ
ロツク図、第5図は本発明の一実施例を示す分岐
先バツフア記憶装置のブロツク図である。
10:命令フエツチ・アドレス・ユニツト、1
1,13:セレクタ、12:命令ストレージ、1
4:命令バツフア、15:命令レジスタ、17:
汎用レジスタ、18,19:セレクタ、20:ア
ドレス加算器、21:オペランド・ストレージ、
22:実行ユニツト、30:分岐命令検出回路、
32:セレクタ切換回路、34:デコード切換回
路、100:命令処理装置、102:分岐先バツ
フア記憶装置、104:IC信号線、106:
DISP信号線、108:BRN信号線、110:
GRB信号線、112:GRX信号線、114:
TKNP信号線、116:PTI信号線、120:
TI信号線:122:TKN信号線、412,23
6:RAM、414:制御回路、248,25
0:比較器、208,254,400,442,
438:セレクタ。
1 and 2 are diagrams explaining the functions of a conventional root memory, FIG. 3 is a diagram of an interface between a branch destination buffer storage device and an instruction processing device showing an embodiment of the present invention, and FIG. This figure is a detailed block diagram of FIG. 3, and FIG. 5 is a block diagram of a branch destination buffer storage device showing one embodiment of the present invention. 10: Instruction fetch address unit, 1
1, 13: Selector, 12: Instruction storage, 1
4: Instruction buffer, 15: Instruction register, 17:
General-purpose register, 18, 19: Selector, 20: Address adder, 21: Operand storage,
22: Execution unit, 30: Branch instruction detection circuit,
32: Selector switching circuit, 34: Decode switching circuit, 100: Instruction processing device, 102: Branch destination buffer storage device, 104: IC signal line, 106:
DISP signal line, 108: BRN signal line, 110:
GRB signal line, 112: GRX signal line, 114:
TKNP signal line, 116: PTI signal line, 120:
TI signal line: 122: TKN signal line, 412, 23
6: RAM, 414: Control circuit, 248, 25
0: Comparator, 208, 254, 400, 442,
438: Selector.
Claims (1)
岐が成功したとき、該分岐命令のアドレス情報か
らなる第1の連想キーと、その分岐先命令のアド
レスを生成するための情報からなる第2の連想キ
ーとの組を連想キーとして、該分岐先命令ととも
に該連想記憶手段に記憶させる手段と、該分岐命
令が再度実行されたときに、該分岐命令のアドレ
ス情報からなる第1の連想キーと該分岐命令が指
定する分岐先命令のアドレスを生成するための情
報からなる第2の連想キーとの組を連想キーとし
て該連想記憶手段に供給する手段と、供給された
連想キーと一致する連想キーを有する分岐先命令
が連想記憶手段から読み出されたとき、該分岐命
令の分岐が成功と予測して、読み出された分岐先
命令を実行する手段とを有することを特徴とする
情報処理装置。 2 前記供給手段は、命令が記憶されているメモ
リから前記再実行された分岐命令を読み出すため
の命令アドレスの一部を該分岐命令の第1の連想
キーとして供給する第1の供給手段と、該分岐命
令が指定する分岐先命令のアドレス情報に基づい
て、オペランド記憶装置から読み出された複数の
オペランドを該分岐命令の第2の連想キーとして
供給する第2の供給手段を有することを特徴とす
る特許請求の範囲第1項記載の情報処理装置。 3 前記分岐命令が指定する分岐先命令のアドレ
ス情報は、ベースレジスタの番号とインデツクス
レジスタの番号と変位からなり、複数の上記アド
レス情報は、オペランド記憶装置として情報処理
装置に設けられた複数のレジスタのうち、該ベー
スレジスタの番号を有する第1のレジスタの内容
と、該インデツクスレジスタの番号を有する第2
のレジスタの内容とからなり、前記第2の供給手
段は、該第1、第2のレジスタの内容を第2の連
想キーとして供給する手段からなることを特徴と
する特許請求の範囲第2項記載の情報処理装置。 4 前記一組の連想キーを供給する手段は、前記
第1の連想キーを第1のタイミングで連想記憶手
段に供給する手段と、前記第2の連想キーを前記
第1のタイミングより後の第2のタイミングで該
連想記憶手段に供給する手段とを有し、該連想記
憶手段は、該第1の連想キーが供給されたとき
に、該第1の連想キーに一致する第1の連想キー
を有する分岐先命令が複数記憶されているときに
は、該複数の分岐先命令を検出する手段と、該第
2の連想キーがその後に供給されたときに、該検
出された複数の分岐先命令のうち、該第2の連想
キーに一致する第2の連想キーを有する一つの分
岐先命令を選択して供給する手段からなることを
特徴とする特許請求の範囲第1項記載の情報処理
装置。 5 前記第1のタイミングは、再実行された分岐
命令の実行開始前であり、前記第2のタイミング
は、該分岐命令の実行開始後であることを特徴と
する特許請求の範囲第4項記載の情報処理装置。 6 前記第1のタイミングは、再実行された分岐
命令の解読前であり、前記第2のタイミングは、
該分岐命令の解読後であることを特徴とする特許
請求の範囲第4項記載の情報処理装置。 7 前記第1のタイミングは、遅くとも再実行さ
れた分岐命令を命令記憶装置から読み出すときで
あり、前記第2のタイミングは、その読み出しの
後であることを特徴とする特許請求の範囲第4項
記載の情報処理装置。 8 前記第2の供給手段は、オペランド記憶装置
として情報処理装置に設けられた複数のレジスタ
のうち、分岐命令が指定するベースレジスタの番
号を有する第1のレジスタの内容と、同じくイン
デツクスレジスタの番号を有する第2のレジスタ
の内容と、該分岐命令に含まれる変位とを供給す
る手段とからなり、前記供給されたオペランドに
基づいて、分岐先命令のアドレスを算出する手段
は、該第1、第2のレジスタの内容と変位とを加
算する手段からなり、前記連想記憶手段に記憶さ
せる手段は、前記第2の供給手段により供給され
た該第1、第2のレジスタの内容の少なくとも一
方を連想キーとして記憶する手段を有し、また再
実行された分岐命令に関して、連想キーを供給す
る手段は、その再実行された分岐命令に対して該
第2の供給手段から供給された、該第1、第2の
レジスタの内容の少なくとも一方を該連想記憶手
段に供給する手段からなることを特徴とする特許
請求の範囲第2項または第3項に記載の情報処理
装置。[Scope of Claims] 1. an associative memory means, a first associative key consisting of address information of a certain branch instruction, and an address for generating the address of the branch destination instruction when a branch is successful during the execution of a certain branch instruction. means for storing a pair with a second associative key consisting of information as an associative key together with the branch destination instruction in the associative storage means; and address information of the branch instruction when the branch instruction is executed again. means for supplying a set of a first associative key and a second associative key consisting of information for generating an address of a branch destination instruction specified by the branch instruction to the associative memory means as an associative key; When a branch destination instruction having an associative key that matches the associative key is read from the associative storage means, means for predicting that the branch of the branch instruction will be successful and executing the read branch destination instruction. An information processing device characterized by: 2. A first supply means, wherein the supply means supplies a part of an instruction address for reading the re-executed branch instruction from a memory in which the instruction is stored as a first associative key of the branch instruction; It is characterized by having a second supply means for supplying a plurality of operands read from the operand storage device as a second associative key of the branch instruction based on address information of a branch destination instruction specified by the branch instruction. An information processing device according to claim 1. 3. The address information of the branch destination instruction specified by the branch instruction includes the base register number, index register number, and displacement, and the plurality of pieces of address information are stored in the plurality of address information provided in the information processing device as an operand storage device. Among the registers, the contents of the first register having the number of the base register, and the contents of the second register having the number of the index register.
and the second supplying means comprises means for supplying the contents of the first and second registers as a second associative key. The information processing device described. 4. The means for supplying the set of associative keys includes means for supplying the first associative key to the associative memory means at a first timing, and means for supplying the second associative key to the associative memory means at a first timing after the first timing. and means for supplying the first associative key to the associative memory means at a timing of 2, and the associative memory means supplies a first associative key that matches the first associative key when the first associative key is supplied. When a plurality of branch destination instructions having a plurality of branch destination instructions are stored, a means for detecting the plurality of branch destination instructions, and a means for detecting the plurality of branch destination instructions when the second associative key is subsequently supplied. 2. The information processing apparatus according to claim 1, further comprising means for selecting and supplying one branch destination instruction having a second associative key that matches the second associative key. 5. Claim 4, wherein the first timing is before the start of execution of the re-executed branch instruction, and the second timing is after the start of execution of the branch instruction. information processing equipment. 6. The first timing is before the re-executed branch instruction is decoded, and the second timing is before the decoding of the re-executed branch instruction.
5. The information processing device according to claim 4, wherein the information processing device is processed after the branch instruction is decoded. 7. Claim 4, wherein the first timing is at the latest when the re-executed branch instruction is read from the instruction storage device, and the second timing is after the reading. The information processing device described. 8 The second supplying means stores the contents of the first register having the number of the base register specified by the branch instruction among the plurality of registers provided in the information processing device as operand storage devices, and also the contents of the index register. means for supplying the contents of a second register having a number and a displacement included in the branch instruction; the means for calculating the address of the branch destination instruction based on the supplied operand; , the means for adding the contents of the second register and the displacement, and the means for storing in the associative memory means at least one of the contents of the first and second registers supplied by the second supply means. as an associative key, and the means for supplying an associative key with respect to a re-executed branch instruction stores the associative key supplied from the second supply means for the re-executed branch instruction. 4. The information processing apparatus according to claim 2, further comprising means for supplying at least one of the contents of the first and second registers to the associative memory means.
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58159903A JPS6051948A (en) | 1983-08-31 | 1983-08-31 | Branch destination buffer storage device |
| US06/645,672 US4725947A (en) | 1983-08-31 | 1984-08-30 | Data processor with a branch target instruction storage |
| DE8484110391T DE3479251D1 (en) | 1983-08-31 | 1984-08-31 | A data processor with a branch target instruction storage |
| EP84110391A EP0135844B1 (en) | 1983-08-31 | 1984-08-31 | A data processor with a branch target instruction storage |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58159903A JPS6051948A (en) | 1983-08-31 | 1983-08-31 | Branch destination buffer storage device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6051948A JPS6051948A (en) | 1985-03-23 |
| JPH0557616B2 true JPH0557616B2 (en) | 1993-08-24 |
Family
ID=15703687
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58159903A Granted JPS6051948A (en) | 1983-08-31 | 1983-08-31 | Branch destination buffer storage device |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4725947A (en) |
| EP (1) | EP0135844B1 (en) |
| JP (1) | JPS6051948A (en) |
| DE (1) | DE3479251D1 (en) |
Families Citing this family (47)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA1250667A (en) * | 1985-04-15 | 1989-02-28 | Larry D. Larsen | Branch control in a three phase pipelined signal processor |
| US4991080A (en) * | 1986-03-13 | 1991-02-05 | International Business Machines Corporation | Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions |
| JP2534662B2 (en) * | 1986-03-25 | 1996-09-18 | 日本電気株式会社 | Instruction cache control method |
| JPS62293434A (en) * | 1986-06-12 | 1987-12-21 | Nec Corp | Branch destination forecasting controlling system |
| JP2534674B2 (en) * | 1986-07-17 | 1996-09-18 | 日本電気株式会社 | Information processing device |
| JPS6336336A (en) * | 1986-07-30 | 1988-02-17 | Nec Corp | Information processor |
| JPS6421628A (en) * | 1987-07-17 | 1989-01-25 | Mitsubishi Electric Corp | Arithmetic processing unit |
| US4901233A (en) * | 1987-07-20 | 1990-02-13 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
| US5134561A (en) * | 1987-07-20 | 1992-07-28 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
| US4943908A (en) * | 1987-12-02 | 1990-07-24 | International Business Machines Corporation | Multiple branch analyzer for prefetching cache lines |
| US4914579A (en) * | 1988-02-17 | 1990-04-03 | International Business Machines Corporation | Apparatus for branch prediction for computer instructions |
| US5155818A (en) * | 1988-09-28 | 1992-10-13 | Data General Corporation | Unconditional wide branch instruction acceleration |
| US5113515A (en) * | 1989-02-03 | 1992-05-12 | Digital Equipment Corporation | Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer |
| EP0471888B1 (en) * | 1989-08-28 | 1999-01-13 | Nec Corporation | Microprocessor for enhancing initiation of instruction execution after the execution of conditional branch instruction |
| US5230068A (en) * | 1990-02-26 | 1993-07-20 | Nexgen Microsystems | Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence |
| JP2560889B2 (en) * | 1990-05-22 | 1996-12-04 | 日本電気株式会社 | Microprocessor |
| US5197132A (en) * | 1990-06-29 | 1993-03-23 | Digital Equipment Corporation | Register mapping system having a log containing sequential listing of registers that were changed in preceding cycles for precise post-branch recovery |
| US5454090A (en) * | 1990-10-12 | 1995-09-26 | Siemens Aktiengesellschaft | Apparatus for furnishing instructions in a microprocessor with a multi-stage pipeline processing unit for processing instruction phase and having a memory and at least three additional memory units |
| EP0480095B1 (en) * | 1990-10-12 | 1998-12-23 | Siemens Aktiengesellschaft | Instruction fetch apparatus in a microprocessor |
| US5265213A (en) * | 1990-12-10 | 1993-11-23 | Intel Corporation | Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction |
| US5276825A (en) * | 1991-03-12 | 1994-01-04 | Chips & Technologies, Inc. | Apparatus for quickly determining actual jump addresses by assuming each instruction of a plurality of fetched instructions is a jump instruction |
| JP2984463B2 (en) * | 1991-06-24 | 1999-11-29 | 株式会社日立製作所 | Microcomputer |
| JP2773471B2 (en) * | 1991-07-24 | 1998-07-09 | 日本電気株式会社 | Information processing device |
| US5434986A (en) * | 1992-01-09 | 1995-07-18 | Unisys Corporation | Interdependency control of pipelined instruction processor using comparing result of two index registers of skip instruction and next sequential instruction |
| JP2761688B2 (en) * | 1992-02-07 | 1998-06-04 | 三菱電機株式会社 | Data processing device |
| US5442756A (en) * | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
| US5692167A (en) * | 1992-07-31 | 1997-11-25 | Intel Corporation | Method for verifying the correct processing of pipelined instructions including branch instructions and self-modifying code in a microprocessor |
| US5694564A (en) * | 1993-01-04 | 1997-12-02 | Motorola, Inc. | Data processing system a method for performing register renaming having back-up capability |
| DE4345028A1 (en) * | 1993-05-06 | 1994-11-10 | Hewlett Packard Co | Device for reducing delays due to branching |
| US5623614A (en) * | 1993-09-17 | 1997-04-22 | Advanced Micro Devices, Inc. | Branch prediction cache with multiple entries for returns having multiple callers |
| US5664135A (en) * | 1994-09-28 | 1997-09-02 | Hewlett-Packard Company | Apparatus and method for reducing delays due to branches |
| US6052801A (en) * | 1995-05-10 | 2000-04-18 | Intel Corporation | Method and apparatus for providing breakpoints on a selectable address range |
| JP2987311B2 (en) * | 1995-05-12 | 1999-12-06 | 松下電器産業株式会社 | Processor and translation device |
| US5659679A (en) * | 1995-05-30 | 1997-08-19 | Intel Corporation | Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system |
| US6112019A (en) * | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
| US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
| US5740413A (en) * | 1995-06-19 | 1998-04-14 | Intel Corporation | Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping |
| US5905881A (en) * | 1995-11-30 | 1999-05-18 | Unisys Corporation | Delayed state writes for an instruction processor |
| US5867699A (en) * | 1996-07-25 | 1999-02-02 | Unisys Corporation | Instruction flow control for an instruction processor |
| US5903750A (en) * | 1996-11-20 | 1999-05-11 | Institute For The Development Of Emerging Architectures, L.L.P. | Dynamic branch prediction for branch instructions with multiple targets |
| US6189092B1 (en) | 1997-06-30 | 2001-02-13 | Matsushita Electric Industrial Co., Ltd. | Pipeline processor capable of reducing branch hazards with small-scale circuit |
| US5974543A (en) * | 1998-01-23 | 1999-10-26 | International Business Machines Corporation | Apparatus and method for performing subroutine call and return operations |
| US6446197B1 (en) | 1999-10-01 | 2002-09-03 | Hitachi, Ltd. | Two modes for executing branch instructions of different lengths and use of branch control instruction and register set loaded with target instructions |
| US6772325B1 (en) * | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
| US9952869B2 (en) | 2009-11-04 | 2018-04-24 | Ceva D.S.P. Ltd. | System and method for using a branch mis-prediction buffer |
| US10713048B2 (en) * | 2017-01-19 | 2020-07-14 | International Business Machines Corporation | Conditional branch to an indirectly specified location |
| US20250138825A1 (en) * | 2023-10-31 | 2025-05-01 | Texas Instruments Incorporated | Prefetching program code from flash memory based on branch logic |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3551895A (en) * | 1968-01-15 | 1970-12-29 | Ibm | Look-ahead branch detection system |
| JPS529342B2 (en) * | 1971-10-09 | 1977-03-15 | ||
| JPS549456B2 (en) * | 1972-07-05 | 1979-04-24 | ||
| JPS52116131A (en) * | 1976-03-26 | 1977-09-29 | Toshiba Corp | Microprogram instruction control unit |
| US4315314A (en) * | 1977-12-30 | 1982-02-09 | Rca Corporation | Priority vectored interrupt having means to supply branch address directly |
| US4430711A (en) * | 1980-05-30 | 1984-02-07 | Signetics Corporation | Central processing unit |
| US4399507A (en) * | 1981-06-30 | 1983-08-16 | Ibm Corporation | Instruction address stack in the data memory of an instruction-pipelined processor |
-
1983
- 1983-08-31 JP JP58159903A patent/JPS6051948A/en active Granted
-
1984
- 1984-08-30 US US06/645,672 patent/US4725947A/en not_active Expired - Fee Related
- 1984-08-31 DE DE8484110391T patent/DE3479251D1/en not_active Expired
- 1984-08-31 EP EP84110391A patent/EP0135844B1/en not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6051948A (en) | 1985-03-23 |
| EP0135844B1 (en) | 1989-08-02 |
| EP0135844A3 (en) | 1987-08-26 |
| DE3479251D1 (en) | 1989-09-07 |
| EP0135844A2 (en) | 1985-04-03 |
| US4725947A (en) | 1988-02-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0557616B2 (en) | ||
| US5125083A (en) | Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system | |
| US4476525A (en) | Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously | |
| JP3423310B2 (en) | CPU having virtual address capability and having a pipeline instruction unit and an effective address calculation unit | |
| US5394530A (en) | Arrangement for predicting a branch target address in the second iteration of a short loop | |
| US4827402A (en) | Branch advanced control apparatus for advanced control of a branch instruction in a data processing system | |
| US5530825A (en) | Data processor with branch target address cache and method of operation | |
| EP0689131B1 (en) | A computer system for executing branch instructions | |
| JP2744890B2 (en) | Branch prediction data processing apparatus and operation method | |
| EP0180725B1 (en) | Instruction prefetch operation for branch instructions | |
| US6081887A (en) | System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction | |
| JPH07281895A (en) | Branch cache | |
| JPH0769818B2 (en) | Data processing device | |
| KR100259306B1 (en) | Data processor having a branch command buffer | |
| JP2010509680A (en) | System and method with working global history register | |
| KR19990072272A (en) | Load/load detection and reorder method | |
| JPH0743648B2 (en) | Information processing equipment | |
| JP3683439B2 (en) | Information processing apparatus and method for suppressing branch prediction | |
| JPH09330221A (en) | System and method for tracking early exception of microprocessor | |
| US7346737B2 (en) | Cache system having branch target address cache | |
| KR920006770B1 (en) | Control system for fetching commands | |
| JPH06295243A (en) | Data processing device | |
| JP2001100994A (en) | Instruction processing apparatus and method for controlling branch instruction for changing mode | |
| JPH03175548A (en) | Microprocessor and address control system | |
| JP3082944B2 (en) | Pipeline processing equipment |