JPH01239638A - Information processor performing branch prediction - Google Patents

Information processor performing branch prediction

Info

Publication number
JPH01239638A
JPH01239638A JP6649188A JP6649188A JPH01239638A JP H01239638 A JPH01239638 A JP H01239638A JP 6649188 A JP6649188 A JP 6649188A JP 6649188 A JP6649188 A JP 6649188A JP H01239638 A JPH01239638 A JP H01239638A
Authority
JP
Japan
Prior art keywords
instruction
branch
address
register
address table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6649188A
Other languages
Japanese (ja)
Inventor
Takashi Horikawa
隆 堀川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP6649188A priority Critical patent/JPH01239638A/en
Publication of JPH01239638A publication Critical patent/JPH01239638A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To remarkably shorten the execution time of a branch instruction by providing an unconditional branch instruction recognition part and an unconditional branch effective table other than an instruction register, a pre-fetch address register, an instruction address table, and a branch destination address table. CONSTITUTION:The unconditional branch instruction recognition part 15 sets the contents of the instruction address table 13 and the branch destination address stable 14 when recognizing that an instruction held at the instruction register 12 is the branch instruction branched unconditionally and in which no branch destination changes dynamically, and also, writes an effective value on the unconditional branch effective table 16. Furthermore, when an address held at the pre-fetch address register 11 exists in the instruction address table 13 and also, a content held at a position in the unconditional branch effective table 16 corresponding to the position of the address in the instruction address table 13 is shown as valid, the instruction following the branch instruction is executed without waiting the determination of branch.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は分岐予測を行う情報処理装置に関し、特に効果
的に命令の先取りを実行するため、無条件に分岐が行わ
れ、かつ、分岐先が動的に変]ヒしない命令については
後続する命令の実行を、当該分岐命令の実行が終了する
より以前に開始することにより、このような分岐命令の
処理を高速に行う分岐予測を行う情報処理装置に関する
、〔従来の技術〕 一般に、情報処理装置では、命令コードの取り込み(以
下、命令フエ・ソチ)、命令コードの解読(以下、命令
デコード)、命令実行という操作を各命令について行う
ことにより、プログラムを実行している。命令によって
は、この池に、オペランド・アドレスの計算、主記憶か
らのオペランドのアクセス(以下、オペランド・リード
)や白金実行結果の主記憶I\の書き戻しく以下、オペ
ランド・ライト)という操作を・ピ・要とするものもあ
る。
[Detailed Description of the Invention] [Field of Industrial Application] The present invention relates to an information processing device that performs branch prediction, and in particular, in order to effectively prefetch instructions, a branch is executed unconditionally, and the branch destination is information that performs branch prediction that speeds up the processing of branch instructions by starting the execution of subsequent instructions before the execution of the branch instruction is completed. [Background Art Regarding Processing Devices] In general, information processing devices perform the following operations for each instruction: importing an instruction code (hereinafter referred to as instruction code), decoding the instruction code (hereinafter referred to as instruction decoding), and executing the instruction. is running the program. Depending on the instruction, operations such as calculating the operand address, accessing the operand from the main memory (hereinafter referred to as "operand read"), or writing back the execution results from the main memory I\ (hereinafter referred to as "operand write") are performed in this pond.・There are also things that require pi.

一般に情報処理装置では、命令フエ・・lチ、命令のデ
コード、オペランド・アドレスの計算、オペランド・リ
ード、演算の実行、オペランド・ライトを行う必要があ
る、これらの操作は、情報処理装置内の各部分で分担し
て処理されるため、連続する数命令についてこれらの各
操作をオーバーラツプさせて並列に行うことが可能であ
る。この点に着目し、命令を高速に実行するなめに、数
命令分の操作を並列に処理するように制御することが広
く行われている。これをパイプライン制御といい、この
ような制御をとっている情報処理装置をパイプライン型
情報処理装置と呼ぶ。
Generally, in an information processing device, it is necessary to perform instruction processing, instruction decoding, operand address calculation, operand read, operation execution, and operand write.These operations are performed within the information processing device. Since the processing is divided among each part, it is possible to overlap and perform these operations in parallel for several consecutive instructions. Focusing on this point, in order to execute instructions at high speed, it is widely practiced to control operations such that several instructions are processed in parallel. This is called pipeline control, and an information processing device that performs this kind of control is called a pipeline type information processing device.

パイプライン型情報処理装置で処理を高速に行うために
は、装置内の各部分が並列に動作する必要がある。分岐
命令においては、分岐先アドレスの計算が終了するまで
命令フエ・・lチを行うことがてきないため、パイプラ
インが有効に働かず、性能向上の妨げになっていた。こ
の問題を解決するため、過去に実行した分岐命令につい
て、情% 5理装置内に分岐命令の存在するアドレスと
分岐先アドレスの対を命令アドレス表および分岐先アド
レス表に記録しておくことにより、この分岐命令を再び
実行する際の命令フエ・ソチを分岐先アドレスの計算終
了以前に開始する、すなわち、分岐予測を行う方法が用
いられている。
In order to perform high-speed processing in a pipelined information processing device, each part within the device needs to operate in parallel. In the case of a branch instruction, the instruction cannot be executed until the calculation of the branch destination address is completed, so the pipeline does not work effectively and is an impediment to performance improvement. In order to solve this problem, for branch instructions executed in the past, pairs of the address where the branch instruction exists and the branch destination address are recorded in the instruction address table and the branch destination address table in the information system. , a method is used in which the execution of the instruction when the branch instruction is executed again is started before the calculation of the branch destination address is completed, that is, the branch prediction is performed.

分岐予測を行う場合、従来の方法では、条件分岐命令や
分岐先が動的に変化する分岐命令については、誤ったア
ドレスから命令を先取りする可能性があるため、分岐命
令に後続する命令は実行を保留しておき、分岐が確定し
てから後続する命令の128哩を再開している。すなわ
ち、分岐予測が正しかった場合には処理を継続し、正し
くなかった場合には先取りして実行を保留しておいた命
令を破棄し、分岐命令の結果・実行すべき命令から実行
を行っていた。
When performing branch prediction, with conventional methods, the instruction following the branch instruction is not executed because the instruction may be prefetched from the wrong address for conditional branch instructions or branch instructions whose branch destination changes dynamically. is put on hold, and the following 128 instructions are resumed after the branch is finalized. In other words, if the branch prediction is correct, processing continues; if it is incorrect, the instruction that has been preempted and suspended is discarded, and execution starts from the result of the branch instruction or the instruction that should be executed. Ta.

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

分岐命令の存在するアドレスと分岐先アドレスを対にし
て記録しておく方法において従来の方法では、無条件に
分岐し、かつ、分岐先が動的に変化しない分岐命令と、
条件分岐や分岐先が動的に変(ヒする命令とを区別する
ことなく命令アドレス表及び分岐先アドレス表に記録し
ていたため、無条件に分岐し、かつ、分岐先が動的に変
化しない分岐命令についても、当該分岐命令の実行が終
了して分岐が確定するまで後続命令の処理を1−留する
必要があった、また、先行させた処理を取り消すためハ
ードウェアも投入する必要があった。このため、無条件
に分岐し、かつ、分岐先が動的に変化しない分岐命令に
ついては、分岐予測の効果を充分に発揮できず、性能向
上の大きな妨げになっているという問題点があった6 〔課題を解決するための手段〕 本発明による情報処理装置では前記の問題点を解決する
ため、実行しようとする命令が無条件に分岐し、かつ、
分岐先が動的に変化し、ない分岐命令であることを認識
する無条件分岐命令認識部と、命令アドレス表および分
岐先アドレス表に対応させて無条件分岐有効表とを有し
ている5〔作用〕 本発明の情報処理装置では実行した分岐命令が無条件に
分岐し、かつ、分岐先が動的に変化しない分岐命令のと
きには、命令アドレス表および分岐先アドレス表に各々
のアドレスを設定するとともに、無条件分岐有効表の内
容に有効を設定する5命令フエ・ソチのアドレスが命令
アドレス表に存在するときには、対応する分岐先アドレ
ス表に記録されたアドレスから命令フエ・・Iチを開始
することにより、分岐予測を行うが、このとき、命令ア
ドレス表に対応する無条件分岐有効表の内容が有効であ
れば、分岐命令に後続する命令の処理を保留することな
く命令実行を継続する7 〔実施例〕 次に本発明の実施例について図面を参照して詳糸田に説
明する 第1図は本発明の一実施例を示す。第1図において、本
発明の一実方麺例は先取りする命令のアドレスを保持す
る先取リアドレス・レジスタ11と、命令コートを保持
する命令レジスタ12と、分岐命令の存在する位置に関
係するアドレスを保持する命令アドレス表13と、命令
アドレス表13に対応して分岐先アドレスを保持する分
岐先アドレツ表14とを持ち、先取リアドレス・レジス
タ11に保持されたアドレスが命令アドレス表13に存
在するときには、前記アドレスが命令アドレス表内で存
在する位置に対応する分岐先アドレス表14内の位置に
保持された分岐先アドレスから命令の先取りを行う情報
処理装置で、命令レジスタ12に保持された命令が無条
件に分岐し、かつ、分岐先が動的に変化しない分岐命令
であることを認識する無条件分岐命令認識部15と、命
令アドレス表13および分岐先アドレス表14に対応さ
せて無条件分岐有効表16とが設けられている。
In the conventional method of recording the address where the branch instruction exists and the branch destination address as a pair, the branch instruction that branches unconditionally and whose branch destination does not change dynamically,
Conditional branches and branch destinations dynamically change (because they were recorded in the instruction address table and branch destination address table without distinguishing between the instruction and the instruction to be hit), the branch was unconditionally branched and the branch destination did not change dynamically. Regarding branch instructions, it was necessary to suspend the processing of subsequent instructions until the execution of the branch instruction was completed and the branch was finalized, and it was also necessary to invest in hardware to cancel the preceding processing. Therefore, for branch instructions that branch unconditionally and the branch destination does not change dynamically, the effect of branch prediction cannot be fully demonstrated, which is a major hindrance to improving performance. [Means for Solving the Problems] In order to solve the above problems in the information processing device according to the present invention, an instruction to be executed branches unconditionally, and
It has an unconditional branch instruction recognition unit that recognizes a branch instruction whose branch destination dynamically changes and does not exist, and an unconditional branch valid table that corresponds to the instruction address table and the branch destination address table5. [Operation] In the information processing device of the present invention, when the executed branch instruction branches unconditionally and the branch destination does not change dynamically, the respective addresses are set in the instruction address table and the branch destination address table. At the same time, when the instruction address table contains the address of the 5-instruction FUE-SOCH which sets the contents of the unconditional branch valid table to be valid, the instruction FUE-ICH is executed from the address recorded in the corresponding branch destination address table. Branch prediction is performed by starting the branch instruction. At this time, if the contents of the unconditional branch valid table corresponding to the instruction address table are valid, instruction execution continues without suspending the processing of the instruction following the branch instruction. 7 [Embodiment] Next, an embodiment of the present invention will be explained in detail with reference to the drawings. Fig. 1 shows an embodiment of the present invention. In FIG. 1, one practical example of the present invention includes a prefetch readdress register 11 that holds the address of the instruction to be prefetched, an instruction register 12 that holds the instruction code, and an address related to the position where the branch instruction exists. It has an instruction address table 13 that holds the instruction address table 13 and a branch destination address table 14 that holds the branch destination address corresponding to the instruction address table 13, and the address held in the prefetch read address register 11 exists in the instruction address table 13. When the address is stored in the instruction register 12, the information processing device prefetches the instruction from the branch destination address held in the position in the branch destination address table 14 corresponding to the position where the address exists in the instruction address table. An unconditional branch instruction recognition unit 15 that recognizes that the instruction branches unconditionally and the branch destination does not change dynamically, and an unconditional branch instruction recognition unit 15 that recognizes that the instruction branches unconditionally and the branch destination does not change dynamically A conditional branch validity table 16 is provided.

無条件分岐命令認識部15は、命令レジスタに保持され
ている命令が無条件に分岐し、かつ、分岐先が動的に変
化しない分岐命令であると認識したときには、命令アド
レス表13および分岐先アドレス表14の内容な設定す
るとともに無条件分岐有効表16に有効の値を書き込み
、さらに、先取リアドレス・レジスタ11に保持された
アドレスが命令アドレス表13に存在し、かつ、このア
ドレスが命令アドレス表13内で存在する位置に対応す
る無条件分岐有効表16内の位置に保持された内容が有
効を示しているときには1分岐の確定を待つことなく分
岐命令に後続する命令を実行するようにしたものである
When the unconditional branch instruction recognition unit 15 recognizes that the instruction held in the instruction register branches unconditionally and the branch destination does not change dynamically, the unconditional branch instruction recognition unit 15 reads the instruction address table 13 and the branch destination. In addition to setting the contents of the address table 14, a valid value is written to the unconditional branch valid table 16, and furthermore, if the address held in the prefetch read address register 11 exists in the instruction address table 13, and this address is When the content held in the position in the unconditional branch valid table 16 corresponding to the position in the address table 13 indicates that the branch is valid, the instruction following the branch instruction is executed without waiting for the confirmation of one branch. This is what I did.

第2図は本実施例における情報処理装置の内部を示す、
第2図において、先取リアドレス・レジスタ11は先取
りしている命令コードの存在するアドレスを示すレジス
タである。主記憶制御部20は主記憶21のアクセスを
行う部分である。主記憶制御部20の内部にメモリ管理
機構やキャッシュ・メモリを持つ情報処理装置も考えら
れる。
FIG. 2 shows the inside of the information processing device in this embodiment.
In FIG. 2, a prefetch readdress register 11 is a register that indicates an address where an instruction code that is being prefetched exists. The main memory control unit 20 is a part that accesses the main memory 21. An information processing device having a memory management mechanism or a cache memory inside the main memory control unit 20 is also conceivable.

命令デコード部22は命令のデコードとアドレス計算を
行う部分であり、命令レジスタ12、アドレス計算部2
3、命令アドレス・レジスタ24、無条件分岐命令認識
部155分岐命令確定認識部25を内部に持つ、アドレ
ス計算部23は、命令レジスタ12に格納された命令コ
ードや命令アドレス・レジスタ24に格納されたアドレ
スや情報処理装置内のレジスタを用いてオペランド・ア
ドレスを計算する部分である、命令アドレス表13は連
想メモリで構成され、これに格納された総てのアドレス
と先取リアドレス・レジスタ11の内容との比較を行う
 この比較の結果、一致するアドレスがあれば、このア
ドレスに対応する分岐先アドレスが有効な値として分岐
先アドレス表14から出力される。一致するアドレスが
ない場合は、この表からの出力は無効となる。分岐先ア
ドレス表14は、通常のメモリより構成される。なお、
26はアドレス選択部、27はアドレス加算部、28は
命令実行部である。
The instruction decoding section 22 is a section that decodes instructions and calculates addresses, and includes the instruction register 12 and the address calculation section 2.
3. The address calculation unit 23, which has an instruction address register 24, an unconditional branch instruction recognition unit 155, and a branch instruction confirmation recognition unit 25, is configured to recognize the instruction code stored in the instruction register 12 and the instruction code stored in the instruction address register 24. The instruction address table 13, which is the part that calculates the operand address using the registered address and registers in the information processing device, is composed of an associative memory, and all addresses stored therein and the prefetch readdress register 11 are stored in the instruction address table 13. Comparison with the contents is performed. As a result of this comparison, if there is a matching address, the branch destination address corresponding to this address is output from the branch destination address table 14 as a valid value. If there are no matching addresses, the output from this table is invalid. The branch destination address table 14 is composed of a normal memory. In addition,
26 is an address selection section, 27 is an address addition section, and 28 is an instruction execution section.

つぎに本実施例における情報処理装置で命令を先取りす
る手順を示す。
Next, a procedure for prefetching a command in the information processing apparatus in this embodiment will be described.

先取リアドレス・レジスタ11に格納されたアドレスに
よりその位置を指定される主記憶21上の命令コードは
、主記憶制御部20によって命令レジスタに格納される
。この操作が終了すると、アドレス加算部27は後続す
る命令のアドレスを計算し、アドレス選択部26に入力
する。アドレス選択部26では、通常命令の実行時には
アドレス加算部27からの出力を選択し、先取リアドレ
ス・レジスタ11に送る。先取リアドレス・レジスタ1
1では、アドレス選択部26から送られるアドレスを格
納する。この結果、先取リアドレス・レジスタ11に格
納されたアドレスは、命令フエッチを行っているアドレ
スを示すことになる。
The instruction code on the main memory 21 whose location is specified by the address stored in the prefetch readdress register 11 is stored in the instruction register by the main memory control unit 20. When this operation is completed, the address adder 27 calculates the address of the subsequent instruction and inputs it to the address selector 26. The address selector 26 selects the output from the address adder 27 during execution of a normal instruction and sends it to the prefetch readdress register 11. Preemption readdress register 1
1 stores the address sent from the address selection unit 26. As a result, the address stored in the prefetch readdress register 11 indicates the address at which the instruction is being fetched.

このときには、命令アドレス表13からの出力は無効で
あるため、予測中フラグの内容は常に無効が設定される
。命令デコード部22では、命令レジスタ12に格納さ
れた命令コードをデコードし。
At this time, since the output from the instruction address table 13 is invalid, the contents of the prediction flag are always set to invalid. The instruction decoding unit 22 decodes the instruction code stored in the instruction register 12.

予測中フラグが無効のときにはこれを保留することなく
デコード結果を命令実行部28に送る。命令実行部28
では、命令デコード部22におけるデコード結果に従い
、命令を実行する。
When the prediction flag is invalid, the decoded result is sent to the instruction execution unit 28 without being suspended. Instruction execution unit 28
Then, the instruction is executed according to the decoding result in the instruction decoding section 22.

命令デコード部22により実行すべき命令が分岐命令で
あると認識されたときには、命令レジスタ12に格納さ
れた命令コードの指定に従ってアドレス計算部23にお
いて分岐先アドレスが計算される3このアドレスは命令
アドレス・レジスタ24およびアドレス選択部26に送
られる。アドレス選択部26では、アドレス計算部23
から送られたアドレスを先取リアドレス・レジスタ11
に送ることで分岐が行なわれる。また、このときに、命
令アドレス・レジスタの値が命令アドレス表13、アド
レス計算部23の出力が分岐先アドレス表14、無条件
分岐命令認識部15の出力が無条件分岐有効表16に記
録される。
When the instruction to be executed is recognized by the instruction decoding unit 22 as a branch instruction, a branch destination address is calculated in the address calculation unit 23 according to the instruction code stored in the instruction register 12.3 This address is the instruction address. - Sent to register 24 and address selection section 26. In the address selection section 26, the address calculation section 23
Readdress register 11 that preempts the address sent from
Branching is performed by sending the Also, at this time, the value of the instruction address register is recorded in the instruction address table 13, the output of the address calculation unit 23 is recorded in the branch destination address table 14, and the output of the unconditional branch instruction recognition unit 15 is recorded in the unconditional branch valid table 16. Ru.

−度実行されて、上に示した手順で命令アドレス表13
と分岐先アドレス表14に格納されている命令を再び実
行する手順は以下のとおりである。
- Once executed, the instruction address table 13 is executed according to the procedure shown above.
The procedure for re-executing the instructions stored in the branch destination address table 14 is as follows.

このような分岐命令をここでは、再実行無条件分岐命令
と呼ぶ、先取リアドレス・レジスタ11に格納されたア
ドレスは、命令フェッチを行っているアドレスを示して
いるが、このアドレスは常に命令アドレス表13に記録
された総てのアドレスと比較されている。これを検索操
作と呼び、先取リアドレス・レジスタ11に格納された
アドレスと一致するアドレスが命令アドレス表13に存
在するときには検索操作が成功したものとする、再実行
無条件分岐命令の先取りを行うと、先取リアドレス・レ
ジスタ11に格納されたアドレスによる検索操作が成功
するため、一致したアドレスに対応する分岐先アドレス
が分岐先アドレス表14から有効な値として出力され、
アドレス選択部26に送られる。アドレス選択部26で
は、有効な値として出力された分岐先アドレスを受は取
ると、これを先取リアドレス・レジスタ11に送る。主
記憶制御部20では、先取リアドレス・レジスタ11に
設定されたアドレスから命令フェッチを行うため、命令
フェッチは分岐先から行われ、これ以降は、上記、命令
を先取りする手順により命令コードの先取りが行われる
。また、検索操作が成功した場合、予測中フラグ2つの
値は無条件分岐有効表16に記録された値に従って設定
される。
Such a branch instruction is herein referred to as a re-execute unconditional branch instruction.The address stored in the prefetch readdress register 11 indicates the address from which the instruction is fetched, but this address is always the instruction address. It is compared with all the addresses recorded in Table 13. This is called a search operation, and if an address that matches the address stored in the prefetch readdress register 11 exists in the instruction address table 13, the search operation is considered to have been successful.A re-execution unconditional branch instruction is prefetched. Then, since the search operation using the address stored in the prefetch read address register 11 is successful, the branch destination address corresponding to the matching address is output as a valid value from the branch destination address table 14,
It is sent to the address selection section 26. The address selection unit 26 receives the branch destination address output as a valid value and sends it to the prefetch read address register 11. In the main memory control unit 20, the instruction is fetched from the address set in the pre-fetch rear address register 11, so the instruction fetch is performed from the branch destination, and from this point on, the instruction code is pre-fetched by the above-mentioned instruction pre-fetch procedure. will be held. Furthermore, if the search operation is successful, the values of the two prediction flags are set according to the values recorded in the unconditional branch validity table 16.

すなわち、無条件分岐有効表16に記録された値が無効
のときには予測中フラグ2つの値は分岐未確定を示す値
となり、無条件分岐有効表16に記録された値が有効の
ときには予測中フラグ2つの値が分岐確定を示す値とな
る。検索操1乍が成功し予測中フラグ2つの値が分岐未
確定に設定される場合は1条件分岐命令や分岐先が動的
に変1ヒする分岐命令について分岐予測を行ったことを
示している。この場合、命令デコード部では分岐命令確
定認識部において当該分岐命令が確定したことを認識す
るまで、命令実行部28に対して命令デコデコード結果
の受渡しを保留する。すなわち、命令の実行を保留する
That is, when the values recorded in the unconditional branch validity table 16 are invalid, the values of the two prediction flags become values indicating that the branch is undetermined, and when the values recorded in the unconditional branch validity table 16 are valid, the values of the prediction flags are The two values are values that indicate branch determination. If one search operation is successful and the two prediction flags are set to branch undetermined, this indicates that branch prediction has been performed for a one-conditional branch instruction or a branch instruction whose branch destination dynamically changes. There is. In this case, the instruction decoding section suspends delivery of the instruction decoding result to the instruction execution section 28 until the branch instruction confirmation recognition section recognizes that the branch instruction has been finalized. In other words, execution of the instruction is suspended.

これに対し、検索操作が成功した予測中フラグ2つの値
が分岐確定に設定される場合は、無条件に分岐し、かつ
、分岐先が動的に変化しない分岐命令について分岐予測
を行ったことを示している。命令デコード部22におい
ては、予測中フラグ29の値が分岐確定のときには、命
令実行部に対して命令デコード結果を保留することなく
受渡して、分岐命令に後続する命令を実行する。
On the other hand, if the values of the two prediction flags for which the search operation was successful are set to branch confirmed, it means that branch prediction was performed for a branch instruction that branches unconditionally and whose branch destination does not change dynamically. It shows. In the instruction decoding section 22, when the value of the predicting flag 29 is a branch confirmed, the instruction decoding result is passed to the instruction execution section without being suspended, and the instruction following the branch instruction is executed.

〔発明の効果〕〔Effect of the invention〕

以上説明したように本発明は無条件に分岐し、かつ、分
岐先が動的に変化しない分岐命令について分岐予測を行
った場合、分岐命令に後続する命令の処理を保留するこ
となく実行するため、このような分岐命令の実行時間を
大幅に短縮された情報処理装置を構成することが可能と
なる。
As explained above, the present invention enables execution of instructions following the branch instruction without suspending processing when branch prediction is performed for a branch instruction that branches unconditionally and the branch destination does not change dynamically. , it becomes possible to configure an information processing device in which the execution time of such a branch instruction is significantly shortened.

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

第1図は、本発明の一実施例における構成要毒を示す図
である。第2図は、本発明の一実施例を示すプロ・ツク
図である9 11・・・先取リアドレス・レジスタ、12・・・命令
レジスタ、13・・・命令アドレス表、14・・・分岐
先アドレス表、15・・・無条件分岐認識部、16・・
・無条件分岐有効表、20・・・主記憶制御部、21・
・・主記憶、22・・・命令デコード部、28・・・命
令実行部−
FIG. 1 is a diagram illustrating the configuration requirements in an embodiment of the present invention. FIG. 2 is a program diagram showing one embodiment of the present invention. Destination address table, 15...Unconditional branch recognition unit, 16...
・Unconditional branch valid table, 20...main memory control unit, 21・
...Main memory, 22...Instruction decoding section, 28...Instruction execution section-

Claims (1)

【特許請求の範囲】[Claims] 先取りする命令のアドレスを保持する先取リアドレス・
レジスタ、命令コードを保持する命令レジスタ、分岐命
令の存在する位置に関係するアドレスを保持する命令ア
ドレス表、命令アドレス表に対応して分岐先アドレスを
保持する分岐先アドレス表を持ち、先取リアドレス・レ
ジスタに保持されたアドレスが命令アドレス表に存在す
るときには、前記アドレスが命令アドレス表内で存在す
る位置に対応する分岐先アドレス表内の位置に保持され
た分岐先アドレスから命令の先取りを行う情報処理装置
において、命令レジスタに保持された命令が無条件に分
岐し、かつ、分岐先が動的に変化しない分岐命令である
ことを認識する無条件分岐命令認識部と、命令アドレス
表および分岐先アドレス表に対応されて無条件分岐有効
表とを設け、無条件分岐命令認識部により命令レジスタ
に保持されている命令が無条件に分岐し、かつ、分岐先
が動的に変化しない分岐命令であると認識されたときに
は、命令アドレス表および分岐先アドレス表の内容を設
定するとともに無条件有効表に有効の値を書き込み、さ
らに、先取リアドレス・レジスタに保持されたアドレス
が命令アドレス表に存在し、かつ、前記アドレスが命令
アドレス表内で存在する位置に対応する無条件分岐有効
表内の位置に保持された内容が有効を示しているときに
は、分岐の確定を待つことなく分岐命令に後続する命令
を実行することを特徴とする分岐予測を行う情報処理装
置。
Pre-preempt read address which holds the address of the instruction to pre-fetch.
It has a register, an instruction register that holds the instruction code, an instruction address table that holds the address related to the location of the branch instruction, a branch destination address table that holds the branch destination address corresponding to the instruction address table, and a preemptive read address. - When the address held in the register exists in the instruction address table, the instruction is prefetched from the branch destination address held at the position in the branch destination address table corresponding to the position where the address exists in the instruction address table. In an information processing device, an unconditional branch instruction recognition unit that recognizes that an instruction held in an instruction register is a branch instruction that branches unconditionally and whose branch destination does not change dynamically, and an instruction address table and branch An unconditional branch valid table is provided corresponding to the destination address table, and the instruction held in the instruction register is branched unconditionally by the unconditional branch instruction recognition unit, and the branch destination does not change dynamically. When it is recognized that this is the case, the contents of the instruction address table and branch destination address table are set, a valid value is written to the unconditionally valid table, and the address held in the prefetch read address register is written to the instruction address table. If the address exists and the content held in the position in the unconditional branch valid table corresponding to the position in the instruction address table indicates that the address is valid, the branch instruction is executed without waiting for the branch to be confirmed. An information processing device that performs branch prediction characterized by executing subsequent instructions.
JP6649188A 1988-03-18 1988-03-18 Information processor performing branch prediction Pending JPH01239638A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6649188A JPH01239638A (en) 1988-03-18 1988-03-18 Information processor performing branch prediction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6649188A JPH01239638A (en) 1988-03-18 1988-03-18 Information processor performing branch prediction

Publications (1)

Publication Number Publication Date
JPH01239638A true JPH01239638A (en) 1989-09-25

Family

ID=13317324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6649188A Pending JPH01239638A (en) 1988-03-18 1988-03-18 Information processor performing branch prediction

Country Status (1)

Country Link
JP (1) JPH01239638A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662295B2 (en) 1997-09-10 2003-12-09 Ricoh Company, Ltd. Method and system dynamically presenting the branch target address in conditional branch instruction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662295B2 (en) 1997-09-10 2003-12-09 Ricoh Company, Ltd. Method and system dynamically presenting the branch target address in conditional branch instruction

Similar Documents

Publication Publication Date Title
JP2603626B2 (en) Data processing device
JPH0283735A (en) Instruction prefetching device
US20060242394A1 (en) Processor and processor instruction buffer operating method
JPH056894B2 (en)
JPH02287626A (en) Pipeline system branch instruction controller
JPH06266556A (en) Data processor
US6044455A (en) Central processing unit adapted for pipeline process
JPH01239638A (en) Information processor performing branch prediction
JP2508021B2 (en) Data processing device
JP2555664B2 (en) Branch history table writing control method
JP3471691B2 (en) Branch instruction control method in micro instruction
JP2503223B2 (en) Prior control method
JPH01126732A (en) Information processor
JP2591325B2 (en) Branch control device
JPS6336336A (en) Information processor
JPS61273637A (en) Information processor
JPH027128A (en) Information processor
JP2944335B2 (en) Information processing device
JPH03113535A (en) Pipeline control mechanism
JPH0247725A (en) Data processor
JPH01263830A (en) Information processor
JPH01126733A (en) Information processor
JPH06168120A (en) Intruction prefetch device
JPS6047618B2 (en) information processing equipment
JPS63221427A (en) Information processor for branch estimation