JPH03177926A - Information processor - Google Patents
Information processorInfo
- Publication number
- JPH03177926A JPH03177926A JP31715889A JP31715889A JPH03177926A JP H03177926 A JPH03177926 A JP H03177926A JP 31715889 A JP31715889 A JP 31715889A JP 31715889 A JP31715889 A JP 31715889A JP H03177926 A JPH03177926 A JP H03177926A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- address
- word
- contents
- 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
Links
- 230000010365 information processing Effects 0.000 claims description 6
- 230000006866 deterioration Effects 0.000 abstract 1
- 238000000034 method Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
Description
【発明の詳細な説明】
技術分野
本発明は情報処理装置に関し、特に分岐命令の実行を高
速に行うための分岐予測テーブルを有する情報処理装置
に関する。TECHNICAL FIELD The present invention relates to an information processing apparatus, and more particularly to an information processing apparatus having a branch prediction table for executing branch instructions at high speed.
従来技術
近年、命令の実行に先行して命令をメモリから先取りす
る一手法として、分岐予測テーブルによる命令先取方法
が採用されている。この手法は分岐命令の高速処理のた
めに用いられ、この手法の詳細については米国特許節3
,559,1.83号公報および特開昭59−9155
2号公報が参照され得る。BACKGROUND OF THE INVENTION In recent years, an instruction prefetching method using a branch prediction table has been adopted as a method for prefetching instructions from memory prior to instruction execution. This technique is used for high-speed processing of branch instructions, and details of this technique can be found in US Pat.
, 559, 1.83 and JP-A-59-9155.
Reference may be made to Publication No. 2.
一般に、分岐予測テーブルは、1つの分岐命令に対する
実行結果、すなわち分岐方向、分岐成立時の分岐先アド
レス、および分岐命令のアドレスを一組にして保持して
おくテーブルである。同一分岐命令を次に実行するとき
には、前回実行における方向およびアドレスと同一の方
向およびアドレスに分岐実行するであろうことを予測し
て、命令先取時にその分岐予測テーブルを索引すること
により、その情報を基に命令先取方向が決定される。Generally, a branch prediction table is a table that holds a set of execution results for one branch instruction, that is, a branch direction, a branch destination address when the branch is taken, and the address of the branch instruction. When the same branch instruction is executed next time, it is predicted that the branch will be executed in the same direction and address as in the previous execution, and that information is acquired by indexing the branch prediction table when the instruction is prefetched. The instruction preemption direction is determined based on .
このとき、分岐予測失敗の他に次の要因で実際の命令の
実行順と分岐予測テーブルの予δ−1とが不整合となる
ケースが存在する。At this time, in addition to branch prediction failure, there is a case where the actual instruction execution order and the prediction δ-1 of the branch prediction table become inconsistent due to the following factors.
命令語が書き変えられた、または
仮想メモリ空間においてアドレス空間が切換えられた
ような時、不整合とは
分岐命令でないにもかかわらず、分岐子fluテーブル
が予測した。または
分岐予測テーブルの内容の指示する分岐命令のアドレス
が命令語の先頭を指していない。When the instruction word is rewritten or the address space is switched in the virtual memory space, the branch flu table predicts a mismatch even though the instruction is not a branch instruction. Or, the address of the branch instruction indicated by the contents of the branch prediction table does not point to the beginning of the instruction word.
というケースである。This is the case.
このような問題に対し、従来、以下のように対処されて
きた。Conventionally, such problems have been dealt with as follows.
第1の対処広ては、分岐予測テーブルの写しを持ち、書
換の生ずる度に、その分岐予測テーブルの写しが索引さ
れ、分岐予測テーブル対応する命令語が書換えられたと
き、対応するエントリが分岐子71111テーブルから
消去される。The first solution is to have a copy of the branch prediction table, and every time a rewrite occurs, the copy of the branch prediction table is indexed, and when the instruction word corresponding to the branch prediction table is rewritten, the corresponding entry is It is deleted from the child 71111 table.
しかし、この方法は分岐予測テーブルの写しを持たなけ
ればならないため、ハードウェア量の増大を招くという
欠点がある。However, this method has the disadvantage of increasing the amount of hardware because it requires a copy of the branch prediction table.
第2の対処法は、分岐予測テーブルの内容により先取ら
れた命令シーケンスの変更が実際の分岐命令によるもの
か否かの判定を、実行順に実際の命令整列を行った上で
確認する方法である。The second method is to check whether the change in the instruction sequence preempted by the contents of the branch prediction table is due to an actual branch instruction, after arranging the actual instructions in the order of execution. .
この方法では、命令キャッシュから読出された命令語は
命令バッファに一端格納され、命令整列回路を介して命
令レジスタに与えられ、デコーダで分岐命令であるか否
かが解読される構成が採用されている。この解読により
命令シーケンスの変更が分岐命令により確かに行なわれ
たことが確認される。In this method, an instruction word read from an instruction cache is temporarily stored in an instruction buffer, and then given to an instruction register via an instruction alignment circuit, and then decoded by a decoder to determine whether it is a branch instruction. There is. This decoding confirms that the change in the instruction sequence was indeed made by a branch instruction.
しかし、命令レジスタへの格納状態で命令シーケンスの
不整合を検出する方法では、不整合の検出時、後続の先
取命令語は命令バッファ内にすてに格納されている。こ
のため、格納された後続の先取命令語はキャンセルされ
なければならず、余分な先取により性能低下が発生する
という欠点がある。However, in the method of detecting a mismatch in an instruction sequence based on the storage state in an instruction register, the subsequent prefetched instruction word has already been stored in the instruction buffer when a mismatch is detected. Therefore, the stored subsequent prefetching instruction word must be canceled, and there is a drawback that performance is degraded due to excessive prefetching.
発明の目的
本発明の目的は、余分な命令の先取りを行わないように
して上述の性能上の欠点を除去するようにした情報処理
装置を提供することである。OBJECTS OF THE INVENTION It is an object of the present invention to provide an information processing apparatus that eliminates the above-mentioned performance drawback by not prefetching unnecessary instructions.
発明の構成
本発明によれば、分岐命令のアドレスおよび予71[1
1された分岐先アドレスを対にして格納する分岐子71
P1テーブル手段と、主記憶に格納された命令語の写し
の少なくとも一部を格納する命令キャンシュメモリ手段
と、この命令キャッシュメモリ手段に格納された命令語
のオペコードを解読し前記分岐子δP1テーブル手段の
ワード内アドレスの示す命令語が分岐命令か否かを判定
する111定手段と、この′f11定手段により命令キ
ャッシュメモリ手段から読出された命令語が前記分岐予
測テーブル手段の分岐予測対象命令でないことが判定さ
れたとき該分岐予測テーブル手段を無視する手段と、前
記命令キャッシュメモリ手段から読出された命令語と前
記分岐予測テーブル手段からの予測ポインタを格納する
命令先取バッファ手段と、この命令先取バッファ手段か
らの命令語の区切と前記予測ポインタとの矛盾が生じた
とき前記命令先取バッファ手段の内容を無効化するとと
もに改めて命令語を取出す手段とを含むことを特徴とす
る情報処理装置が得られる
実施例
次に本発明の一実施例について図面を参照して詳細に説
明する。Structure of the Invention According to the present invention, the address and prefix 71[1
A branch 71 that stores the branch destination addresses that are set to 1 in pairs.
P1 table means, instruction cache memory means for storing at least a part of a copy of the instruction word stored in the main memory, and branch δP1 table means for decoding the operation code of the instruction word stored in the instruction cache memory means. 111 determination means for determining whether the instruction word indicated by the intra-word address of is a branch instruction; means for ignoring said branch prediction table means when it is determined that said branch prediction table means; An information processing apparatus characterized in that the information processing apparatus includes means for invalidating the contents of the instruction prefetching buffer means and retrieving the instruction word when a contradiction occurs between the delimitation of the instruction word from the buffer means and the prediction pointer. Embodiment Next, an embodiment of the present invention will be described in detail with reference to the drawings.
第1図を参照すると、本発明の実施例は、先取りした命
令のアドレスを保持する先取り命令アドレスレジスタ1
、このレジスタ1の内容を+8するアドレス加算回路2
、命令アドレスレジスタ1のアドレスにより指定された
位置から主記憶に格納された命令の写しを読出す命令キ
ャッシュ3、分岐命令のアドレス部41および該分岐命
令の分岐先アドレス部42を備えた分岐予測テーブル4
、命令キャッシュ3から与えられる命令を解読するデコ
ーダ5、このデコーダ5の出力を分岐命令のアドレス部
41のアドレスビット(2つおよび30)により選択す
るセレクタ6、命令キャッシュ3からの命令、分岐予測
テーブル4からの予11P1ポインタおよび有効性ビッ
トを格納する命令バッファ7、この命令バッファ7から
の命令のビットを整列する命令整列回路8、この命令整
列回路8で整列された命令、予測ポインタおよび有効性
ビットを格納する命令レジスタ9、この命令レジスタ9
からの命令コード、予測ビットに基づいて命令語の区切
りと前記予aplポインタとの矛盾を不整合として検出
し、命令バッファ7に先取りされた命令語に対応する有
効性ビットを無効表示する不整合検出回路10、命令レ
ジスタ9の内容および不整合検出回路10の内容に基づ
いてアドレスを生成するアドレス生成回路11、このア
ドレス生成LliJ路11で生成されたアドレスを保持
する実アドレスレジスタ12、この実アドレスレジスタ
12からのアドレスに指定された位置からオペランドを
読出すオペランドキャッシュ13、このオペランドキャ
ッシュ13からのオペランドを用いて演算実行する演算
回路14、およびセレクタ6および不整合検出回路10
の出力に基づいて命令アドレスレジスタ1の内容を制御
する制御回路15を含む。Referring to FIG. 1, an embodiment of the present invention includes a prefetched instruction address register 1 that holds the address of a prefetched instruction.
, an address adder circuit 2 that increases the contents of this register 1 by 8.
, an instruction cache 3 for reading out a copy of the instruction stored in the main memory from the position specified by the address of the instruction address register 1, a branch prediction address section 41 for a branch instruction, and a branch destination address section 42 for the branch instruction. table 4
, a decoder 5 that decodes the instruction given from the instruction cache 3, a selector 6 that selects the output of this decoder 5 by the address bits (2 and 30) of the address section 41 of the branch instruction, an instruction from the instruction cache 3, and a branch prediction. an instruction buffer 7 for storing a pre-11P1 pointer and a validity bit from table 4; an instruction alignment circuit 8 for aligning the bits of the instruction from this instruction buffer 7; an instruction aligned by this instruction alignment circuit 8, a prediction pointer and a validity bit; This instruction register 9 stores the gender bit.
Detects a discrepancy between the instruction word delimiter and the pre-APL pointer as an inconsistency based on the instruction code and prediction bit from the instruction buffer 7, and displays the validity bit corresponding to the instruction word prefetched in the instruction buffer 7 as invalid. A detection circuit 10, an address generation circuit 11 that generates an address based on the contents of the instruction register 9 and the contents of the mismatch detection circuit 10, a real address register 12 that holds the address generated by this address generation LliJ path 11, and this real An operand cache 13 that reads an operand from a position specified by an address from an address register 12, an arithmetic circuit 14 that executes an operation using the operand from this operand cache 13, a selector 6, and a mismatch detection circuit 10.
The control circuit 15 controls the contents of the instruction address register 1 based on the output of the instruction address register 1.
次に本発明の一実施例の動作を詳細に説明する。Next, the operation of one embodiment of the present invention will be explained in detail.
命令レジスタ1は線16から与えられる命令フェッチ用
開始アドレスを格納する。このあと、制御回路15は、
以後の命令フェッチに関し分岐予測テーブル4の指示に
よりアドレスシーケンシャルに行なうか、分岐先アドレ
ス部42の内容によって行なうかを決定する。すなわち
、レジスタ1からのアドレスが命令キャッシュ3および
分岐予測テーブル4を索引する。Instruction register 1 stores the start address for instruction fetch given from line 16. After this, the control circuit 15
Regarding subsequent instruction fetches, it is determined whether to perform address sequential fetching according to instructions from the branch prediction table 4 or according to the contents of the branch destination address field 42. That is, the address from register 1 indexes instruction cache 3 and branch prediction table 4.
この索引により、テーブル4の分岐命令アドレス部41
のアドレスと索引用アドレスとが一致したとき、レジス
タ1に格納された命令が分岐命令であることを線19か
らの信号で認識した制御回路15は、その分岐先アドレ
スを線2oを介してレジスタ1に格納する。もし、線1
9を介して一致が与えられないときには、制御回路15
はレジスタ1の内容をアドレス加算回路2で加算するよ
う制御する。With this index, the branch instruction address section 41 of table 4
When the address and the index address match, the control circuit 15 recognizes from the signal from the line 19 that the instruction stored in the register 1 is a branch instruction, and transfers the branch destination address to the register via the line 2o. Store in 1. If line 1
When no match is given via 9, the control circuit 15
controls the address addition circuit 2 to add the contents of the register 1.
本発明の特徴の1つである分岐予測テーブルの第1の不
整合検出は次のようにして行なわれる。The first mismatch detection of branch prediction tables, which is one of the features of the present invention, is performed as follows.
上述の索引により命令キャッシュ3および分岐予測テー
ブル4から内容が並行して読出される。命令キャッシュ
3からの複数の命令はデコーダ5でH読され分岐命令で
あるか否かが判定される。この判定結果のうち分岐命令
のアドレス部41のビット(29,30)で指示される
内容に従って1つをセレクタ6が選択する。この選択結
果を線21を介して与えられた制御回路15は、テーブ
ル4内のアドレス部41の内容が示す命令が分岐命令で
あるときのみ、分岐予測テーブル4からの分岐先アドレ
スによりフェッチを行うようにし、分岐命令でなければ
予測を無視する。Contents are read in parallel from the instruction cache 3 and branch prediction table 4 using the above-mentioned index. A plurality of instructions from the instruction cache 3 are H-readed by a decoder 5 to determine whether or not they are branch instructions. The selector 6 selects one of these determination results according to the content indicated by bits (29, 30) of the address section 41 of the branch instruction. The control circuit 15, which is given this selection result via the line 21, performs a fetch using the branch destination address from the branch prediction table 4 only when the instruction indicated by the contents of the address field 41 in the table 4 is a branch instruction. , and ignores the prediction unless it is a branch instruction.
本発明の特徴の他の1っである分岐予測テーブルの第2
の不整合検出は次のようにして行なわれる。次に命令キ
ャッシュ3から読出された命令は命令バッファ7に格納
される。この格納されたる命令ワードに分岐命令が含ま
れるとき、分岐予測テーブル4から出力された分岐命令
のアドレス(29,30)も分岐命令のワード内アドレ
スの予測ポインタとして人力される。この予測ポインタ
は命令バッファ7に格納される命令語のポインタ値の示
す命令が分岐命令であることを示している。The second branch prediction table, which is another feature of the present invention,
Inconsistency detection is performed as follows. Next, the instruction read from the instruction cache 3 is stored in the instruction buffer 7. When a branch instruction is included in the stored instruction word, the address (29, 30) of the branch instruction output from the branch prediction table 4 is also entered as a predicted pointer for the address within the word of the branch instruction. This prediction pointer indicates that the instruction indicated by the pointer value of the instruction word stored in the instruction buffer 7 is a branch instruction.
命令供給が可能な状態になると、命令バッファ7から命
令整列回路8を介して命令が、また予測ポインタと有効
性ビットが命令レジスタ9にそれぞれ格納される。この
とき、命令語の区切と予IIPJポインタの値とに矛盾
が生ずるケースが存在しうる。これを不整合検出回路1
0で検出し線22を介して、命令バッファ6にすでに先
取りされた命令語をキャンセルする。その後、アドレス
生成部11が線23を介した信号で再び起動されて、分
岐命令の後続命令がフェッチされる。When the instruction can be supplied, the instruction is stored from the instruction buffer 7 via the instruction alignment circuit 8, and the prediction pointer and validity bit are stored in the instruction register 9. At this time, there may be a case where a contradiction occurs between the instruction word delimiter and the value of the pre-IIPJ pointer. This mismatch detection circuit 1
Detected at 0 via line 22, the instruction word already prefetched into the instruction buffer 6 is canceled. Thereafter, the address generator 11 is activated again by a signal via line 23, and the instruction following the branch instruction is fetched.
すなわち、アドレス生成回路9にて前記分岐命令の後続
アドレスが生成され、実アドレスレジスタ12および線
16を介してアドレスレジスタ]に生成されたアドレス
が格納される。このアドレスレジスタlのアドレスによ
り後続命令が索引され読出されてフェッチされる。That is, the address generating circuit 9 generates the subsequent address of the branch instruction, and the generated address is stored in the address register via the real address register 12 and line 16. A subsequent instruction is indexed, read out, and fetched by the address of address register l.
発明の効果
本発明によれば、命令キャッシュ3からの命令続出時点
で分岐予測テーブル4からの情報に基づいて、まず簡易
的に不整合を調べ、その結果を直後の命令先取にフィー
ドバックすることにより、余分な先取を行なわずにすむ
という効果がある。Effects of the Invention According to the present invention, based on the information from the branch prediction table 4 when instructions are continuously issued from the instruction cache 3, inconsistencies are first checked simply and the results are fed back to the immediately following instruction prefetch. This has the effect of eliminating the need for unnecessary pre-emption.
そして、この検出でもれたケース、例えば分岐予測テー
ブル4の示すポインタかOPコードではなく、その部分
がたまたま分岐命令のOPコードであるようなケースに
おいては、世現に命令整列された命令レジスタ9で改め
てOPコードの確認を行なう。このようなケースの不整
合が検出されたならば、命令バッファ7内に先取された
後続の命令は、キャンセルされ命令先取を改めてやり直
す必要がある。しかし、このようなケースは極めて希な
ケースであると考えられる。In a case where this detection fails, for example, in a case where the part is not the pointer or OP code indicated by the branch prediction table 4, but happens to be the OP code of a branch instruction, the instruction register 9, which is actually aligned with the instructions, Check the OP code again. If such a case of inconsistency is detected, the subsequent instructions prefetched into the instruction buffer 7 will be canceled and the instruction prefetching will have to be repeated again. However, such cases are considered to be extremely rare.
以上のような構成により、本発明は分岐予aIIJ方式
における分岐予測テーブルと実際の命令先取との不整合
のケースを比較的少ないハードウェアで検出し、しかも
余分の先取を行なうことを極少にし分岐予測の結果を損
わないようにできるという効果がある。With the above-described configuration, the present invention can detect cases of mismatch between the branch prediction table and actual instruction prefetch in the branch prediction aIIJ method using relatively little hardware, and can minimize unnecessary prefetching to avoid branching. This has the effect of not damaging the prediction results.
第1図は本発明の一実施例を示す図である。
主要部分の符号の説明
1・・・・・・命令先取アドレスレジスタ2・・・・・
・アドレス加算回路
3・・・・・・分岐キャッシュ
4・・・・・・分岐予測テーブル
7・・・・・・命令バッファ
8・・・・・・命令整列回路
10・・・・・・不整合検出回路
11・・・・・・アドレス生成回路
3・・・・・・オブランドキャッシュ
4・・・・・・演算回路
5・・・・・・制御回路
1・・−・・・分岐命令アドレス部
2・・・・・・分岐先アドレス部FIG. 1 is a diagram showing an embodiment of the present invention. Explanation of symbols of main parts 1...Instruction prefetch address register 2...
・Address addition circuit 3...Branch cache 4...Branch prediction table 7...Instruction buffer 8...Instruction alignment circuit 10...None Matching detection circuit 11 Address generation circuit 3 Oblong cache 4 Arithmetic circuit 5 Control circuit 1 Branch instruction Address part 2...Branch destination address part
Claims (1)
レスを対にして格納する分岐予測テーブル手段と、主記
憶に格納された命令語の写しの少なくとも一部を格納す
る命令キャッシュメモリ手段と、この命令キャッシュメ
モリ手段に格納された命令語のオペコードを解読し前記
分岐予測テーブル手段のワード内アドレスの示す命令語
が分岐命令か否かを判定する判定手段と、この判定手段
により命令キャッシュメモリ手段から読出された命令語
が前記分岐予測テーブル手段の分岐予測対象命令でない
ことが判定されたとき該分岐予測テーブル手段を無視す
る手段と、前記命令キャッシュメモリ手段から読出され
た命令語と前記分岐予測テーブル手段からの予測ポイン
タを格納する命令先取バッファ手段と、この命令先取バ
ッファ手段からの命令語の区切と前記予測ポインタとの
矛盾が生じたとき前記命令先取バッファ手段の内容を無
効化するとともに改めて命令語を取出す手段とを含むこ
とを特徴とする情報処理装置。(1) branch prediction table means for storing a branch instruction address and a predicted branch destination address in pairs; instruction cache memory means for storing at least a portion of a copy of an instruction word stored in main memory; determining means for decoding the operation code of the instruction word stored in the instruction cache memory means and determining whether or not the instruction word indicated by the intra-word address of the branch prediction table means is a branch instruction; means for ignoring the branch prediction table means when it is determined that the read instruction word is not a branch prediction target instruction of the branch prediction table means; and the instruction word read from the instruction cache memory means and the branch prediction table. When a discrepancy occurs between an instruction prefetch buffer means for storing a prediction pointer from the instruction prefetch buffer means and the instruction word delimiter from the instruction prefetch buffer means and the prediction pointer, the contents of the instruction prefetch buffer means are invalidated and the instruction is read again. An information processing device comprising: means for extracting words.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31715889A JPH03177926A (en) | 1989-12-06 | 1989-12-06 | Information processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31715889A JPH03177926A (en) | 1989-12-06 | 1989-12-06 | Information processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03177926A true JPH03177926A (en) | 1991-08-01 |
Family
ID=18085099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31715889A Pending JPH03177926A (en) | 1989-12-06 | 1989-12-06 | Information processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH03177926A (en) |
-
1989
- 1989-12-06 JP JP31715889A patent/JPH03177926A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4827402A (en) | Branch advanced control apparatus for advanced control of a branch instruction in a data processing system | |
US4476525A (en) | Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously | |
US5276882A (en) | Subroutine return through branch history table | |
US5265213A (en) | Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction | |
JPH0283735A (en) | Instruction prefetching device | |
JPH03147022A (en) | Branch instruction processing apparatus and method | |
JPH02166520A (en) | Data processor | |
JP3486690B2 (en) | Pipeline processor | |
KR930003124B1 (en) | Apparatus for the control of branch instruction in pipeline system | |
KR100276138B1 (en) | Branch history table with branch pattern field | |
JPH0773104A (en) | Cache system | |
JP2001236224A (en) | Method for reducing contamination of branch prediction table | |
JP2570859B2 (en) | Data processing device | |
JPS5991551A (en) | Instruction prefetching device forecasting address to be branched | |
JPH01183737A (en) | Information processor | |
JPH03177926A (en) | Information processor | |
JPH0695306B2 (en) | Instruction prefetching device | |
JPH046983B2 (en) | ||
JP2559416B2 (en) | Information processing device | |
JPH0248733A (en) | Information processor | |
EP0912930B1 (en) | A functional unit with a pointer for mispredicted branch resolution, and a superscalar microprocessor employing the same | |
JPS6411973B2 (en) | ||
JPH06301537A (en) | Instruction fetching circuit | |
JP2856703B2 (en) | Processor | |
JPH06301538A (en) | Condition branch instruction processor |