JPH01296342A - Data processor - Google Patents

Data processor

Info

Publication number
JPH01296342A
JPH01296342A JP12790788A JP12790788A JPH01296342A JP H01296342 A JPH01296342 A JP H01296342A JP 12790788 A JP12790788 A JP 12790788A JP 12790788 A JP12790788 A JP 12790788A JP H01296342 A JPH01296342 A JP H01296342A
Authority
JP
Japan
Prior art keywords
branch
address
instruction
register
bit
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
JP12790788A
Other languages
Japanese (ja)
Inventor
Yoshiharu Ono
大野 義治
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 JP12790788A priority Critical patent/JPH01296342A/en
Publication of JPH01296342A publication Critical patent/JPH01296342A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To directly verify the propriety of the function of a branching history memory mechanism by previously setting the bit of a mode register. CONSTITUTION:An AND circuit 103 produces a signal which cancels the fetching of a branched address from an address discordant output sent from an address comparator through a terminal 122 when the bit '2' of the mode register 65 is '1'. The bit '2' of the register 65 indicates the mode which inhibits the invalidation of fetching of a wrong branched address when the branched address is discordant. Accordingly, invalidation of previous fetching of improper branched address can be inhibited by the bit '2' of the register 65 when the address is discordant. Therefore, when already known branched addresses are previously registered in the branching history memory and the bit '2' of the register 65 is controlled thereafter, the operation of the branching history memory can be evaluated.

Description

【発明の詳細な説明】 玖血圀1 本発明はデータ処理装置に関し、特に分岐ヒストリメモ
リを有するデータ処理装置に関するものである。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a data processing device, and more particularly to a data processing device having a branch history memory.

従m術 近年、電子計算機の高速化が進み、特に大型電子計算機
の領域においては命令取出し、命令解読。
In recent years, electronic computers have become faster and faster, especially in the area of large electronic computers, where instructions can be fetched and decoded.

オペランド取出し、演算、演算結果の格納を複数のパイ
プラインステージに分割し、各ステージの処理を並列的
に実行することによって処理速度を向上させるパイプラ
イン技法が広く採用されている。このパイプライン技法
によれば、各パイプラインステージにおいて連続処理を
継続する場合に最高性能を達成できる。
Pipeline techniques are widely used to improve processing speed by dividing operand retrieval, computation, and storage of computation results into multiple pipeline stages and executing the processing in each stage in parallel. This pipeline technique achieves maximum performance when continuous processing continues at each pipeline stage.

しかしながら、分岐命令の実行においては、分岐先の取
出に多大な時間を要するため、パイプラインの処理に空
き時間を生じて、著しく性能が低下することになる。そ
こで、過去に実行した分岐命令の格納アドレスと分岐命
令の分岐先アドレスとを対にして履歴情報としてメモリ
に貯え、このメモリを命令取出時に参照して、命令取出
アドレスにおいて過去に分岐した履歴があれば、この履
歴から得られる分岐先アドレスを分岐先予測アドレスと
して以後の命令取出を行う分岐ヒストリメモリ技術が出
現している。
However, in executing a branch instruction, it takes a great deal of time to retrieve the branch destination, which creates idle time in pipeline processing, resulting in a significant drop in performance. Therefore, the storage address of a branch instruction executed in the past and the branch destination address of the branch instruction are stored in memory as history information as a pair, and this memory is referred to when fetching an instruction to check the history of past branches at the instruction fetching address. If so, a branch history memory technology has emerged that uses the branch destination address obtained from this history as the predicted branch destination address to fetch subsequent instructions.

この分岐しストリメモリ方式の分岐予測技術の有効性は
、多数のプログラムにおいて無条件分岐命令では勿論、
条件分岐命令においてもループを形成するコーディング
においては、前回と同じ方向に分岐する確率が極めて高
いという事実により裏付けられている。この特性を小容
量の分岐しストリメモリにて実現するためには、あらた
な分岐命令の実行結果により古い情報を置き変えること
が有効であり、LRU  (Least Recent
ly Used ) 。
The effectiveness of this branch prediction technology based on the branch memory method is that it can be used not only for unconditional branch instructions in many programs.
This is supported by the fact that when coding a conditional branch instruction to form a loop, the probability of branching in the same direction as the previous one is extremely high. In order to realize this characteristic in a small-capacity branch memory, it is effective to replace old information with the execution result of a new branch instruction.
lyUsed).

HFO(First In First 0ut)等の
リプレースアルゴリズムが採用されている。
A replacement algorithm such as HFO (First In First Out) is employed.

一方、プログラム内の条件分岐命令の参照する状態変化
(例:演算結果)により分岐先が変化することがある。
On the other hand, the branch destination may change due to a change in the state referenced by a conditional branch instruction in the program (eg, an operation result).

この場合には、分岐ヒストリメモリに記憶された分岐履
歴の示す分岐先アドレスと実際の分岐命令の分岐先アド
レスとが不一致となる。これに備えて、分岐命令の実行
時に両アドレスを比較し、不一致であれば予測取出され
た分岐先先取動作を無効化し、再度分岐命令の実行結果
に基いて正しい分岐先を取出す分岐予測検証技術がある
In this case, the branch destination address indicated by the branch history stored in the branch history memory and the branch destination address of the actual branch instruction do not match. In preparation for this, branch prediction verification technology compares both addresses when a branch instruction is executed, and if they do not match, invalidates the predicted branch destination prefetching operation, and then extracts the correct branch destination again based on the execution result of the branch instruction. There is.

上述した従来の分岐しストリメモリでは、新たな分岐命
令の出現の度に分岐ヒストリメモリ内の古い分岐履歴を
更新している。このために特定の分岐命令における分岐
履歴を分岐ヒストリメモリに設定して、分岐予測機構の
診断を実行するといった診断方式を実現できないという
欠点がある。
In the conventional branch history memory described above, the old branch history in the branch history memory is updated every time a new branch instruction appears. For this reason, there is a drawback that it is not possible to implement a diagnostic method in which a branch history for a specific branch instruction is set in a branch history memory and a diagnosis of a branch prediction mechanism is executed.

予測が外れて再度分岐先を取出すべきか否かを判定する
には、実行時間の測定によっており、よって極めて診断
精度が粗いという欠点がある。換言すれば、分岐予測機
構の正当性検証を時間という間接パラメータに置換して
おり、直接的に機能確認ができないという欠点がある。
In order to determine whether or not the branch destination should be retrieved again when the prediction is wrong, execution time is measured, which has the disadvantage that the diagnostic accuracy is extremely low. In other words, the validity verification of the branch prediction mechanism is replaced with an indirect parameter called time, and there is a drawback that the function cannot be directly verified.

九匪ム旦煎 そこで、本発明はこの様な従来のものの欠点を解決すべ
くなされたものであって、その目的とするところは、分
岐しストリメモリ機梢の機能の正当性を正しく直接的に
検証可能なデータ処理装置を提供することにある。
Therefore, the present invention was made to solve the drawbacks of the conventional ones, and its purpose is to correctly and directly check the correctness of the function of the branch memory machine. The objective is to provide a data processing device that can be verified.

九肌五亘羞 本発明によるデータ処理装置は、命令語を記憶する記憶
手段と、この記憶手段から読出された命令語が分岐命令
の場合に分岐先アドレスを生成するアドレス生成手段と
、前記分岐命令の命令語取出アドレスと、前記分岐先ア
ドレスとからなるアドレス対を分岐履歴情報として、前
記命令語取出アドレスに対応する格納アドレスに保持す
る分岐ヒストリ記憶手段と、前記分岐命令の命令語取出
゛アドレスにより前記分岐しストリ記憶手段内の分岐履
歴情報を読出して前記分岐命令に対応する分岐履歴情報
の登録の有無を判定する索引手段と、前記分岐命令の実
行結果として決定された分岐先アドレスと前記索引手段
からの出力として得られた分岐取出アドレスとを比較し
、両者が不一致のとき前記分岐取出アドレスによる命令
取出を無効化する無効化手段と、この無効化手段の動作
を抑止制御する制御手段とを含むことを特徴としている
A data processing device according to the present invention includes a storage means for storing an instruction word, an address generation means for generating a branch destination address when the instruction word read from the storage means is a branch instruction, and a data processing device for storing an instruction word. branch history storage means for storing an address pair consisting of an instruction word fetching address of an instruction and the branch destination address as branch history information at a storage address corresponding to the instruction word fetching address; indexing means for reading branch history information in the branch history storage means based on the address and determining whether branch history information corresponding to the branch instruction is registered; and a branch destination address determined as a result of execution of the branch instruction; Disabling means for comparing the branch fetching address obtained as an output from the indexing means and disabling instruction fetching by the branch fetching address when the two do not match; and control for inhibiting the operation of the disabling means. It is characterized by including means.

曳り男 次に、本発明の実施例について図面を参照して説明する
Next, embodiments of the present invention will be described with reference to the drawings.

第1図は本発明を適用したデータ処理装置のブロック図
である。第1図において、命令制御ユニット1は命令用
キャッシュメモリ(命令キャッシュ)30を内蔵してお
り、命令語の先行取出し、解読、オペランド取出し、仮
想アドレスの作成を実行する。記憶制御ユニット2は命
令制御ユニット1の作成した仮想アドレスを実アドレス
に変換し、このアドレスをもとにオペランド用キャッシ
ュメモリ(オペランドキャッシュ>53.54を参照し
てオペランドを読出し、これを演算制御ユニット3へ供
給する。
FIG. 1 is a block diagram of a data processing device to which the present invention is applied. In FIG. 1, an instruction control unit 1 has a built-in instruction cache memory (instruction cache) 30, and executes advance fetching of instruction words, decoding, fetching of operands, and creation of virtual addresses. The storage control unit 2 converts the virtual address created by the instruction control unit 1 into a real address, reads the operand by referring to the operand cache memory (operand cache > 53, 54) based on this address, and performs arithmetic control. Supply to unit 3.

演算制御ユニット3は記憶制御ユニット2から供給され
たオペランドに対して命令制御ユニット1から送られた
制御指示に基いて演算を実行し、その結果を汎用レジス
タおよびオペランドキャッシュへ格納する。なお、記憶
制御ユニット2は主記憶とのインタフェースをもち、オ
ペランドキャッシュおよび命令キャッシュに不在のデー
タが要求された場合、主記憶から読出す機能も有するが
、第1図においてはこれらのインタフェース部を省略し
ている。
The arithmetic control unit 3 executes arithmetic operations on the operands supplied from the storage control unit 2 based on control instructions sent from the instruction control unit 1, and stores the results in a general-purpose register and an operand cache. Note that the storage control unit 2 has an interface with the main memory, and also has a function to read data from the main memory when data not present in the operand cache or instruction cache is requested, but these interface sections are not shown in FIG. It is omitted.

命令制御ユニット1は以下のように構成される。The command control unit 1 is configured as follows.

命令語先取用命令カウンタ(FIC)13と、この命令
カウンタ13の出力により参照される命令キャッシュ3
0と、命令カウンタ13の出力を分岐予測結果が判明す
るまで保持する待避レジスタ(BICF) 14とを命
令先取用に備えている。
An instruction word prefetching instruction counter (FIC) 13 and an instruction cache 3 referenced by the output of this instruction counter 13
0, and a save register (BICF) 14 for holding the output of the instruction counter 13 until the branch prediction result becomes clear.

分岐予測用の命令カウンタ(NIC)12の出力は分岐
ヒストリメモリのアドレス部(NA^)10とデータ部
(NAB ) 11とにアドレスとして供給され、比較
回路17によりアドレス部10の出力と読出アドレスと
の一致が検出されると、対応するデータ部11の出力が
選択回路1つにて選択され待避レジスタ(旧C)18に
セットされる。待避レジスタ18は予測済アドレスバッ
ファ(NA8F )20へ格納されるとともに、分岐予
測に後続する命令取出のために選択回路15および16
へ送られる。
The output of the instruction counter (NIC) 12 for branch prediction is supplied as an address to the address section (NA^) 10 and data section (NAB) 11 of the branch history memory, and the comparison circuit 17 compares the output of the address section 10 with the read address. When a match is detected, the output of the corresponding data section 11 is selected by one selection circuit and set in the save register (old C) 18. The save register 18 is stored in the predicted address buffer (NA8F) 20, and is also used in the selection circuits 15 and 16 for fetching instructions following branch prediction.
sent to.

選択図FI@15は予測済アドレスバッファ20゜待避
レジスタ14.命令カウンタ12の+1加算値および分
岐命令の分岐先実アドレスの4者の出力を択一的に命令
カウンタ12へ供給する6選択回路16は予測済アドレ
スバッファ20.待避レジスタ14.命令カウンタ13
の+1加算値および分岐命令の分岐先実行アドレスの4
者の出力を択一的に命令カウンタ13へ供給する。
The selection diagram FI@15 shows the predicted address buffer 20° and the save register 14. A six selection circuit 16 that selectively supplies four outputs of the +1 addition value of the instruction counter 12 and the branch destination real address of the branch instruction to the instruction counter 12 is a predicted address buffer 20. Save register 14. Instruction counter 13
+1 addition value and 4 of the branch destination execution address of the branch instruction
The output of the operator is alternatively supplied to the command counter 13.

命令キャッシュ30から読出された命令語は命令レジス
タ33に供給されるとともに、先行デコーダ34にて命
令コードが分岐命令であることが検出され、この検出結
果が制御回路21へ供給される。命令レジスタ33の一
部はペースレジスタ(Gl?335の読出アドレスとし
て使用され、他の一部は汎用レジスタ(BR)35の読
出アドレスとして使用される。アドレス加算器(八〇R
>37は命令レジスタ33のアドレスシラブル部とペー
スレジスタの出力と汎用レジスタの出力との3者を加算
して仮想アドレスを作成し、記憶制御ユニット2へ供給
する。
The instruction word read from the instruction cache 30 is supplied to the instruction register 33, and the preceding decoder 34 detects that the instruction code is a branch instruction, and the result of this detection is supplied to the control circuit 21. A part of the instruction register 33 is used as a read address for the pace register (Gl?335), and the other part is used as a read address for the general purpose register (BR) 35.
>37 adds the address syllable part of the instruction register 33, the output of the pace register, and the output of the general-purpose register to create a virtual address and supplies it to the storage control unit 2.

一方、命令レジスタ33の出力はデコーダ38において
命令制御ユニット内の制御信号を生成するとともに演算
制御ユニット用制御情報を作成し、待避バッファ(IS
S)40に供給する。待避バッファ40は記憶制御ユニ
ット2が演算制御ユニット3ヘオペランドを供給する時
点において、格納していた制御情報を演算制御ユニット
3へ出力する。またアドレス待避バッファ(ABF )
 41は記憶制御ユニット2から送られる実アドレスを
格納する。
On the other hand, the output of the instruction register 33 is used in a decoder 38 to generate a control signal within the instruction control unit, create control information for the arithmetic control unit, and create a save buffer (IS).
S) Supply to 40. The save buffer 40 outputs the stored control information to the arithmetic control unit 3 at the time when the storage control unit 2 supplies the operand to the arithmetic control unit 3. Also, the address save buffer (ABF)
41 stores the real address sent from the storage control unit 2.

記憶制御ユニット2はアドレス加算器37から送られる
仮想アドレスを保持する仮想アドレスレジスタ(ν^R
)50.この仮想アドレスを実アドレスに変換するアド
レス変換バッファ(TLB ”) 51、このバッファ
51から出力される実アドレスを保持する実アドレスレ
ジスタ(PAR)52およびオペランドキャッシュ53
.54から構成され、オペランドキャッシュの出力はオ
ペランドとして演算制御ユニット3へ供給される。また
実アドレスレジスタ52の出力は先述した如く分岐命令
の分岐先アドレスとして選択回路15及び16へ供給さ
れる。
The storage control unit 2 has a virtual address register (ν^R) that holds the virtual address sent from the address adder 37.
)50. An address translation buffer (TLB") 51 that converts this virtual address into a real address, a real address register (PAR) 52 that holds the real address output from this buffer 51, and an operand cache 53.
.. 54, and the output of the operand cache is supplied to the arithmetic and control unit 3 as an operand. Further, the output of the real address register 52 is supplied to the selection circuits 15 and 16 as the branch destination address of the branch instruction, as described above.

演算制御ユニット3は汎用レジスタ63の出力を保持す
る作業レジスタ60と、オペランドキャッシュ54から
の出力を保持する作業レジスタ61と、両作業レジスタ
60.61の出力を演算してその結果を汎用レジスタ6
3およびオペランドキャッシュ54へ供給するAlB1
2とを含み、八[062のキャリイ出力およびゼロ検出
出力は分岐判定回路66に送られる0分岐判定回路66
は待避バッファ40から供給された命令解読情報が条件
分岐命令のコンデイションコードを通知する場合にAl
B62の出力を参照して、分岐Go/N。
The arithmetic control unit 3 operates a working register 60 that holds the output of the general-purpose register 63, a working register 61 that holds the output from the operand cache 54, and the outputs of both working registers 60 and 61, and stores the results in the general-purpose register 6.
3 and AlB1 supplied to the operand cache 54
2, and the carry output and zero detection output of 8[062] are sent to the branch judgment circuit 66.
is Al when the instruction decoding information supplied from the save buffer 40 notifies the condition code of a conditional branch instruction.
Referring to the output of B62, branch Go/N.

GOを判定し、その結果を命令制御ユニット1の制御回
路21へ通知する。
GO is determined and the result is notified to the control circuit 21 of the instruction control unit 1.

モードレジスタ65は分岐予測機構の動作モードを指示
するレジスタであり、デコーダ64は待避バッファ40
の出力として供給される命令の制御情報を解読して演算
ユニット3内の制御信号を分配する。このデコーダ64
の制御信号の一部はモードレジスタ65へ接続されてお
り、このモードレジスタ65が保持する値をこの制御信
号に応じて変更できるようになっている。
The mode register 65 is a register that instructs the operation mode of the branch prediction mechanism, and the decoder 64 is a register that indicates the operation mode of the branch prediction mechanism.
The control information of the instruction supplied as the output of is decoded and the control signal within the arithmetic unit 3 is distributed. This decoder 64
A part of the control signal is connected to the mode register 65, so that the value held by the mode register 65 can be changed in accordance with this control signal.

第2図は前述のモードレジスタ65.制御回路21およ
びその周辺の具体的回路例を示している。
FIG. 2 shows the mode register 65. A specific example of the control circuit 21 and its peripheral circuits is shown.

同図において、アンドゲート101はモードレジスタ6
5のビットOの値に従い、端子130のタイミングで端
子121から送られる分岐ヒストリメモリの有効性を示
すVビットを参照し、その出力はオアゲート105を介
して分岐しストリメモリの更新回路へ端子131を介し
て送られる。
In the figure, AND gate 101 is mode register 6
5, the V bit indicating the validity of the branch history memory sent from the terminal 121 at the timing of the terminal 130 is referred to, and its output is branched via the OR gate 105 and sent to the branch history memory update circuit at the terminal 131. sent via.

同様に、アンドゲート1G2は端子130から入力され
るタイミングでアドレス比較器から端子122貴介して
送られるアドレス不一致信号をモードレジスタ65のビ
ット1が“1°°の場合のみオアゲート105へ送出し
、ビット1が“0”の場合送出を抑止する。
Similarly, the AND gate 1G2 sends the address mismatch signal sent from the address comparator via the terminal 122 to the OR gate 105 only when bit 1 of the mode register 65 is "1°°" at the timing input from the terminal 130. If bit 1 is "0", transmission is inhibited.

アンドゲート104はモードレジスタ65のビット3が
“1″の場合、端子122から入力されるアドレス比較
器のアドレス不一致出力を端子124から送られる制御
タイミングで参照し、図示せぬインジケータにセットす
る。アンドゲート103はモードレジスタ65のとット
2が“1”の場合、端子122から入力されるアドレス
比較器のアドレス不一致出力を端子123から入力され
るタイミングで参照し、分岐先の取出をキャンセルする
信号を生成する。
When bit 3 of the mode register 65 is "1", the AND gate 104 refers to the address mismatch output of the address comparator input from the terminal 122 using the control timing sent from the terminal 124, and sets it in an indicator (not shown). When bit 2 of the mode register 65 is "1", the AND gate 103 refers to the address mismatch output of the address comparator input from the terminal 122 at the timing of input from the terminal 123, and cancels the extraction of the branch destination. generate a signal to

同図において、モードレジスタ65は先述のビット0〜
3の合計4ビツトから構成される。モードレジスタ65
のビット0は分岐しストリメモリから出力されたデータ
の有効表示ビットであるVビットが無効であるときの新
規データの登録を抑止するモードを示す、モードレジス
タ65のビット1は分岐ヒストリメモリから出力された
データの分岐先アドレスと実際の分岐命令の解読および
実行結果として得られる分岐先アドレスとが不一致であ
った場合に、旧データを新規アドレス対とする分岐ヒス
トリメモリの更新を抑止するモードを示す、また、モー
ドレジスタ65のビット2はビット1と同様に分岐先ア
ドレスが不一致であった場合、誤った分岐先取出を無効
化する動作を抑止するモードを示す、さらにレジスタ6
5のビット3はビット1と同様に分岐先アドレスが不一
致であった場合、特定のインジケータをセットするモー
ドを示す。
In the same figure, the mode register 65 has bits 0 to
3, a total of 4 bits. mode register 65
Bit 0 of the mode register 65 indicates a mode in which registration of new data is suppressed when the V bit, which is a valid indication bit of data output from the branch history memory, is invalid. Bit 1 of the mode register 65 is output from the branch history memory. If there is a mismatch between the branch destination address of the received data and the branch destination address obtained as a result of decoding and execution of the actual branch instruction, a mode is set that suppresses updating of the branch history memory using old data as a new address pair. Similarly to bit 1, bit 2 of mode register 65 indicates a mode for suppressing the operation of invalidating an incorrect branch destination when the branch destination addresses do not match.
Similarly to bit 1, bit 3 of 5 indicates a mode in which a specific indicator is set when the branch destination addresses do not match.

これらの各モードの抑止している機能はとット3を除き
、本来分岐しストリメモリを利用した分岐予測機構にお
いては必須の機能であって、特に分岐ヒストリメモリの
更新および分岐予測誤り時の補正に係わる機能である。
The functions suppressed in each of these modes, except for ``Tot 3'', are essential functions in a branch prediction mechanism that uses a branch history memory, and are particularly important in updating the branch history memory and in the event of a branch prediction error. This is a function related to correction.

従って、モードレジスタ65が抑止を指示する場合には
、ビット0によって分岐しストリメモリの新規登録抑止
、ビット1によって不一致時の更新抑止、ビット2によ
って不一致時の不正な先取無効化の抑止、さらにビット
3によって不一致時のインジケータへのセットが夫々に
されることになる。従って、分岐ヒストリメモリに予め
既知の分岐先を登録しておきしかる後にモードレジスタ
65の各ビットを制御することによって、様々な分岐ヒ
ストリメモリ動作の評価が可能となる。
Therefore, when the mode register 65 instructs inhibition, bit 0 branches and inhibits new registration of the storage memory, bit 1 inhibits updating in the event of a mismatch, bit 2 inhibits illegal pre-emption invalidation in the event of a mismatch, and furthermore. Bit 3 sets the indicator when there is a mismatch. Therefore, by registering a known branch destination in the branch history memory in advance and then controlling each bit of the mode register 65, it becomes possible to evaluate various branch history memory operations.

例えば、ビット1をセットすることにより、分岐ヒスト
リメモリの更新を抑止し、分岐予測失敗状態を持続させ
、分岐予測失敗に基づく分岐先命令の先取りのキャンセ
ルを多発させることにより、先行制御回路の正当性の評
価を実施できる。
For example, by setting bit 1, updating of the branch history memory is suppressed, the branch prediction failure state is maintained, and prefetching of branch destination instructions based on branch prediction failures is frequently canceled, thereby preventing the advance control circuit from validating. Able to conduct gender evaluation.

他の例としては、分岐ヒストリメモリの情報が全て正し
い分岐結果を有する場合を設定した後に、モードレジス
タ65のビット2もしくはビット3を設定し、分岐先不
一致状態発生というエラーをインジケータに設定したり
、または先取りキャンセル抑止することにより正常なプ
ログラム論理の継続を不可能とすることにより、分岐予
測機構の正当性を直接的に評価検証可能となるのである
Another example is to set bit 2 or bit 3 of the mode register 65 after setting the case where all the information in the branch history memory has a correct branch result, and setting an error indicating that a branch destination mismatch state has occurred as an indicator. Alternatively, by making it impossible to continue normal program logic by suppressing prefetch cancellation, it becomes possible to directly evaluate and verify the correctness of the branch prediction mechanism.

魚1ビL宛果 軟土の如く、本発明によれば、モードレジスタのビット
を予め設定することにより分岐しストリメモリi構の機
能の正当性を正しく直接的に検証できるという効果があ
る。
According to the present invention, by setting the bits of the mode register in advance, it is possible to directly verify the correctness of the function of the branch memory i structure.

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

第1図は本発明の実施例のブロック図、第2図は第1図
における制御回路とその周辺回路との一部ブロック図で
ある。 主要部分の符号の説明 1・・・・・・命令制御ユニッ1〜 2・・・・・・記憶制御ユニット 3・・・・・・演算制御ユニッ1〜 10.11・・・・・・分岐ヒストリメモリ12・・・
・・・分岐予測用命令カウンタ13・・・・・・命令語
先取用命令カウンタ21・・・・・・制御回路 30・・・・・・命令キャッシュ 65・・・・・・モードレジスタ 第2図
FIG. 1 is a block diagram of an embodiment of the present invention, and FIG. 2 is a partial block diagram of a control circuit and its peripheral circuits in FIG. 1. Explanation of symbols of main parts 1...Instruction control unit 1-2...Storage control unit 3...Arithmetic control unit 1-10.11...Branch History memory 12...
...Instruction counter for branch prediction 13 ...Instruction word preemption instruction counter 21 ...Control circuit 30 ...Instruction cache 65 ...Mode register 2nd figure

Claims (1)

【特許請求の範囲】[Claims] (1)命令語を記憶する記憶手段と、この記憶手段から
読出された命令語が分岐命令の場合に分岐先アドレスを
生成するアドレス生成手段と、前記分岐命令の命令語取
出アドレスと、前記分岐先アドレスとからなるアドレス
対を分岐履歴情報として、前記命令語取出アドレスに対
応する格納アドレスに保持する分岐ヒストリ記憶手段と
、前記分岐命令の命令語取出アドレスにより前記分岐ヒ
ストリ記憶手段内の分岐履歴情報を読出して前記分岐命
令に対応する分岐履歴情報の登録の有無を判定する索引
手段と、前記分岐命令の実行結果として決定された分岐
先アドレスと前記索引手段からの出力として得られた分
岐取出アドレスとを比較し、両者が不一致のとき前記分
岐取出アドレスによる命令取出を無効化する無効化手段
と、この無効化手段の動作を抑止制御する制御手段とを
含むことを特徴とするデータ処理装置。
(1) storage means for storing an instruction word; address generation means for generating a branch destination address when the instruction word read from the storage means is a branch instruction; an instruction word fetch address of the branch instruction; A branch history storage means that stores an address pair consisting of a destination address as branch history information in a storage address corresponding to the instruction word fetch address, and a branch history in the branch history storage means based on the instruction word fetch address of the branch instruction. indexing means for reading information and determining whether or not branch history information corresponding to the branch instruction is registered; and a branch destination address determined as a result of execution of the branch instruction and a branch extraction obtained as an output from the indexing means. A data processing device characterized in that it includes a disabling means for disabling instruction fetching using the branch fetching address when the two address do not match, and a control means for inhibiting and controlling the operation of the disabling means. .
JP12790788A 1988-05-25 1988-05-25 Data processor Pending JPH01296342A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12790788A JPH01296342A (en) 1988-05-25 1988-05-25 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12790788A JPH01296342A (en) 1988-05-25 1988-05-25 Data processor

Publications (1)

Publication Number Publication Date
JPH01296342A true JPH01296342A (en) 1989-11-29

Family

ID=14971608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12790788A Pending JPH01296342A (en) 1988-05-25 1988-05-25 Data processor

Country Status (1)

Country Link
JP (1) JPH01296342A (en)

Similar Documents

Publication Publication Date Title
EP0118828B1 (en) Instruction fetch apparatus and method of operating same
EP0381444B1 (en) Branch prediction
KR100909163B1 (en) Pre-decode error control through branch compensation
US7730283B2 (en) Simple load and store disambiguation and scheduling at predecode
EP1851620B1 (en) Suppressing update of a branch history register by loop-ending branches
JP3182740B2 (en) A method and system for fetching non-consecutive instructions in a single clock cycle.
US7676659B2 (en) System, method and software to preload instructions from a variable-length instruction set with proper pre-decoding
JPH07504520A (en) A CPU that retains virtual address capability and has a pipeline instruction unit and an effective address calculation unit.
US5862371A (en) Method and system for instruction trace reconstruction utilizing performance monitor outputs and bus monitoring
WO2006060198A9 (en) Translation lookaside buffer (tlb) access supression for intra-page program counter relative or absolute address branch instructions
US6742112B1 (en) Lookahead register value tracking
JP3486690B2 (en) Pipeline processor
US7290179B2 (en) System and method for soft error handling
US6993638B2 (en) Memory access device and method using address translation history table
US20030204705A1 (en) Prediction of branch instructions in a data processing apparatus
JP2002278752A (en) Device for predicting execution result of instruction
US6978361B2 (en) Effectively infinite branch prediction table mechanism
JPH01296342A (en) Data processor
JPH01296343A (en) Data processor
JPH01296344A (en) Data processor
JPH01296341A (en) Data processor
JP2542565B2 (en) Branch predictive control method
JPS61175733A (en) Control system of branch estimation
JPH02239330A (en) Information processor
JPS63191230A (en) Information processor for prefetching of instruction