JPH0667880A - Branch history table control circuit - Google Patents

Branch history table control circuit

Info

Publication number
JPH0667880A
JPH0667880A JP21884892A JP21884892A JPH0667880A JP H0667880 A JPH0667880 A JP H0667880A JP 21884892 A JP21884892 A JP 21884892A JP 21884892 A JP21884892 A JP 21884892A JP H0667880 A JPH0667880 A JP H0667880A
Authority
JP
Japan
Prior art keywords
branch
hit
address
instruction
history 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.)
Granted
Application number
JP21884892A
Other languages
Japanese (ja)
Other versions
JP2982506B2 (en
Inventor
Takeshi Morisada
剛 森定
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 JP4218848A priority Critical patent/JP2982506B2/en
Publication of JPH0667880A publication Critical patent/JPH0667880A/en
Application granted granted Critical
Publication of JP2982506B2 publication Critical patent/JP2982506B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To store a branch instruction having many success frequency by determining replacement by the number of past hits. CONSTITUTION:At least two branch history tables each of which stores the address of a branch instruction and the branched address of the branch instruction as a pair are prepared and the 1st comparing means group 8, 8' compares an instruction fetching address with the branch instruction addresses in respective branch history tables and detects coincidence (hit) or discrepancy (miss). A storage means stores the number of hits correspondingly to the branch instruction address in each branch history table in accordance with the detected result. At the time of rewriting the contents of the branch history tables, the 2nd comparing means 50 compares the numbers of hits corresponding to respective groups which are stored in the storage means and detects the group having the smallest number of hits. The instruction address at a new branch instruction and a branched instruction are recorded as a pair in the 2nd comparing means 50 and the branch history table having the smallest number of hits specified by the means 50.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は分岐ヒストリテーブル制
御回路に関し、特に分岐ヒストリテーブルの制御回路に
おける分岐ヒストリテーブルの書込み制御に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a branch history table control circuit, and more particularly to write control of a branch history table in a branch history table control circuit.

【0002】[0002]

【従来の技術】分岐ヒストリテーブルは、USP709
426(特公昭50−22384号公報)の明細書に記
載されており、命令の処理の高速化(特に分岐命令の処
理の高速化)に効果があり、現在、各種のデータ処理装
置で使用されている。また、記憶できる分岐命令の数は
限られるため新しい分岐命令を記憶するためには古い分
岐命令をすてる必要がありLRU,FIFOなどの手段
が用いられる。
2. Description of the Related Art A branch history table is USP709.
No. 426 (Japanese Patent Publication No. 50-22384), it is effective in speeding up instruction processing (particularly speeding up branch instruction processing) and is currently used in various data processing devices. ing. Also, since the number of branch instructions that can be stored is limited, old branch instructions must be added to store new branch instructions, and means such as LRU and FIFO are used.

【0003】[0003]

【発明が解決しようとする課題】上述した従来の分岐ヒ
ストリテーブルの制御回路は、過去数回分の履歴によっ
て書替えを制御するが、LRUやFIFOの場合、最後
の動作に影響されてしまい、実際には、ほとんど使われ
ない分岐命令が残り、頻繁に使用する分岐命令が新しい
分岐命令に書替えられることが考えられる。
The control circuit of the conventional branch history table described above controls rewriting according to the history of the past several times, but in the case of LRU or FIFO, it is affected by the last operation, and in practice, It is conceivable that branch instructions that are rarely used will remain, and frequently used branch instructions will be rewritten to new branch instructions.

【0004】[0004]

【課題を解決するための手段】本発明の分岐ヒストリテ
ーブル制御回路は、分岐命令のアドレスと該分岐命令の
分岐先アドレスを対にして記憶する分岐ヒストリテーブ
ルを少なくとも2組有するデータ処理装置において、命
令取出しアドレスと前記分岐ヒストリテーブルのそれぞ
れの組の分岐命令アドレスを比較し、一致(ヒット),
不一致(ミス)を検出する第1の比較手段群と、第1の
比較手段群の検出結果に従って、そのヒット回数を前記
分岐ヒストリテーブルのそれぞれの組の分岐命令アドレ
スに対応して記憶する記憶手段と、分岐ヒストリテーブ
ルの内容を書替える際に前記記憶手段に記憶した各組対
応のヒット回数を比較し、ヒット回数の一番少ない組を
検出する第2の比較手段と、前記第2の比較手段によっ
て示される一番ヒット回数の少ない分岐ヒストリテーブ
ルの組に新しい分岐命令の命令アドレスと分岐先命令を
対にして記録する手段とから構成される。
The branch history table control circuit of the present invention is a data processing device having at least two sets of branch history tables for storing a branch instruction address and a branch destination address of the branch instruction as a pair. The instruction fetch address is compared with the branch instruction address of each set of the branch history table, and a match (hit),
A first comparison means group for detecting a mismatch (miss) and a storage means for storing the number of hits corresponding to the branch instruction address of each set of the branch history table according to the detection result of the first comparison means group. And second comparison means for comparing the hit counts corresponding to each set stored in the storage means when rewriting the contents of the branch history table and detecting the set with the smallest hit count, and the second comparison means. The branch history table group having the smallest number of hits indicated by the means comprises means for recording the instruction address of a new branch instruction and the branch destination instruction in a pair.

【0005】更に本発明の分岐ヒストリテーブル制御方
式は、分岐命令のアドレスと該分岐先アドレスを対にし
て記憶する分岐ヒストリテーブルを少なくとも2組有す
るデータ処理装置において、命令取出しアドレスと前記
分岐ヒストリテーブルのそれぞれの組の分岐命令アドレ
スを比較し、一致(ヒット),不一致(ミス)を検出す
る第1の比較手段群と、第1の比較手段群の検出結果に
従って、そのヒット回数を前記分岐ヒストリテーブルの
それぞれの組の分岐命令アドレスに対応して記憶する第
1の記憶手段と、第1の比較手段群の検出結果に従って
各組間のヒットの履歴を記憶する第2の記憶手段と、分
岐ヒストリテーブルの内容を書替える際に、前記第1の
記憶手段に記憶した各組対応のヒット回数のどれがある
回数を超えているかどうかを検出する検出手段と、前記
第1の記憶手段に記憶した各組対応のヒット回数を比較
し、ヒット回数の一番少ない組を検出する第2の比較手
段と、前記検出手段によりある回数以上ヒットしている
ことか検出された場合、第2の比較手段の検出結果に従
って一番ヒット回数の少ない分岐ヒストリテーブルの組
に、そうでない場合は前記第2の記憶手段の内容によっ
て決定される組に新しい分岐命令の命令アドレスと分岐
先アドレスを対にして記録する手段とから構成される。
Further, according to the branch history table control method of the present invention, in the data processor having at least two sets of branch history tables for storing the address of the branch instruction and the branch destination address as a pair, the instruction fetch address and the branch history table. Of the branch instruction addresses of the respective sets, and a first comparison means group for detecting a match (hit) and a non-match (miss), and the number of hits is determined according to the detection result of the first comparison means group. First storage means for storing the branch instruction address of each set of the table; second storage means for storing the history of hits between the sets according to the detection result of the first comparison means group; When rewriting the contents of the history table, any of the hit counts corresponding to each set stored in the first storage means exceeds a certain count. Detecting means for detecting whether or not the number of hits corresponding to each set stored in the first storage means is compared, and a second comparing means for detecting a set having the smallest number of hits; and a certain number of times by the detecting means. When it is detected that a hit has occurred, the branch history table set having the smallest hit count is determined according to the detection result of the second comparison means, and otherwise, the content of the second storage means is determined. The set is composed of a unit for recording the instruction address of the new branch instruction and the branch destination address as a pair.

【0006】更に又、本発明の分岐ヒストリテーブル制
御回路は、分岐命令のアドレスと該分岐先アドレスを対
にして記憶する分岐ヒストリテーブルを少なくとも2組
有するデータ処理装置において、命令取出しアドレスと
前記分岐ヒストリテーブルのそれぞれの組の分岐命令ア
ドレスを比較し、一致(ヒット),不一致(ミス)を検
出する第1の比較手段群と、第1の比較手段群の検出結
果に従って、そのヒット回数を前記分岐ヒストリテーブ
ルのそれぞれの組の分岐命令アドレスに対応して記憶す
る第1の記憶手段と第1の比較手段群の検出結果に従っ
て、各組間のヒットの履歴を記憶する第2の記憶手段2
と、分岐ヒストリテーブルの内容を書替える際に前記第
1の記憶手段に記憶された各組対応のヒット回数の最大
値と最小値の差がある回数を越えているかどうかを検出
する検出手段と、前記第1の記憶手段に記憶した各組対
応のヒット回数を比較し、ヒット回数の一番少ない組を
検出する第2の比較手段と、前記検出手段によりある回
数以上であった場合、第2の比較手段の検出結果に従っ
て一番ヒット回数の少ない分岐ヒストリテーブルの組
に、そうでない場合は前記第2の記憶手段の内容で決定
される組に新しい分岐命令の分岐命令アドレスと分岐先
アドレスを対にして記録する手段とから構成される。
Furthermore, the branch history table control circuit of the present invention is a data processing device having at least two sets of branch history tables for storing the address of a branch instruction and the branch destination address as a pair, and the instruction fetch address and the branch. According to the detection result of the first comparison means group that compares the branch instruction address of each set of the history table and detects a match (hit) or a mismatch (miss), the hit count is calculated as described above. A second storage unit 2 for storing a history of hits between the sets according to the detection results of the first storage unit and the first comparison unit group that store the branch instruction address of each set of the branch history table.
And a detection means for detecting whether or not the difference between the maximum value and the minimum value of the number of hits corresponding to each set stored in the first storage means exceeds a certain number when rewriting the contents of the branch history table. If the number of hits corresponding to each set stored in the first storage unit is compared and a set having the smallest number of hits is detected, and if the number of times is equal to or more than a certain number by the detection unit, The branch instruction address of the new branch instruction and the branch destination address are added to the set of the branch history table having the smallest hit count according to the detection result of the second comparison means, otherwise to the set determined by the contents of the second storage means. And a means for recording in pairs.

【0007】[0007]

【実施例】次に、本発明について図面を参照して説明す
る。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Next, the present invention will be described with reference to the drawings.

【0008】図1は本発明の実施例であり図2はその一
部の詳細図である。図1において、命令アドレスレジス
タ(IAR)1は、命令アドレスを保持するレジスタで
あり、命令の取出し時には命令取出しアドレスを、分岐
ヒストリテーブルへの登録時には登録される分岐命令の
アドレスを信号線100を介しADA(図示せず)より
受け、その下位部の複数bitを信号線101を介して
命令アドレスアレイ0(1)(IAA0(1))5
(5′),分岐先アドレスアレイ0(1)(DAA0
(1))6(6′),HIT回数アドレスセレクタ(H
CMAX)4及びHIT回数アドレスレジスタ(HCA
R)3にアドレスとして送出し、その上位部を信号線1
02を介し命令アドレスアレイ0/1及び命令アドレス
比較回路0(1)(IAC0(1))8(8′)に命令
アドレスとして送出する。
FIG. 1 is an embodiment of the present invention, and FIG. 2 is a detailed view of a part thereof. In FIG. 1, an instruction address register (IAR) 1 is a register that holds an instruction address. The instruction fetch address is used when fetching an instruction, and the address of a branch instruction that is registered when registering in the branch history table is set on a signal line 100. Via the ADA (not shown) via the signal line 101 and the instruction address array 0 (1) (IAA0 (1)) 5
(5 '), branch destination address array 0 (1) (DAA0
(1)) 6 (6 '), HIT count address selector (H
CMAX) 4 and HIT count address register (HCA
R) 3 as an address, the upper part of which is sent to signal line 1
It is sent as an instruction address to the instruction address array 0/1 and the instruction address comparison circuit 0 (1) (IAC0 (1)) 8 (8 ') via 02.

【0009】分岐先アドレスレジスタ(DAR)2は、
分岐ヒストリテーブルへの分岐命令登録時に命令アドレ
スレジスタ1と対応して分岐命令の分岐先アドレスを保
持するレジスタであり、ADA(図示せず)より送出さ
れた分岐先アドレスを信号線104を介して分岐先アド
レスアレイ0/1(6,6′)に送出する。
The branch destination address register (DAR) 2 is
This is a register that holds the branch destination address of the branch instruction corresponding to the instruction address register 1 when registering the branch instruction in the branch history table. The branch destination address sent from the ADA (not shown) is transmitted via the signal line 104. It is sent to the branch destination address array 0/1 (6, 6 ').

【0010】HIT回数アドレスレジスタ3はHIT回
数メモリ0(1)(HCM0(1))7,7′更新用の
アドレスを保持するレジスタであり、命令アドレスレジ
スタ1より信号線101を介し送出された命令取出しア
ドレスの下位部を受け、信号線105を介しHIT回数
メモリアドレスセレクタ(HCAX)4に更新時アドレ
スとして送出する。HIT回数アドレスセレクタ4は、
HIT回数メモリ0/1(7,7′)のアドレスを選択
する回路であり、予測HITフラグ(PHF)10によ
り、命令先取りで予測分岐先が検出されたことが示され
た場合は、信号線105を介しHIT回数アドレスレジ
スタ3より送出されるアドレスを、又、そうでない場合
には信号線101を介し命令アドレスレジスタ1より送
出される命令アドレスの下位部を選択し、信号線106
を介してHIT回数メモリ0/1(7,7′)のアドレ
スとして送出する。
The HIT count address register 3 is a register that holds an address for updating the HIT count memory 0 (1) (HCM0 (1)) 7, 7 ', and is sent from the instruction address register 1 via the signal line 101. The lower part of the instruction fetch address is received and sent as an update address to the HIT count memory address selector (HCAX) 4 via the signal line 105. The HIT count address selector 4
HIT count memory 0/1 (7, 7 ') is a circuit for selecting an address, and if the prediction HIT flag (PHF) 10 indicates that the instruction branch has detected the predicted branch destination, the signal line The address sent from the HIT count address register 3 via 105 or, if not, the lower part of the instruction address sent from the instruction address register 1 via the signal line 101, is selected.
Is sent out as an address of the memory 0/1 (7, 7 ') of the HIT number.

【0011】HIT回数アドレスセレクタ4は、HIT
回数メモリ0/1(7,7′)のアドレスを選択する回
路であり、予測HITフラグ(PHF)10により、命
令先取りで予測分岐先が検出されたことが示された場合
は、信号線105を介しHIT回数アドレスレジスタ3
より送出されるアドレスを、又、そうでない場合には、
信号線101を介し命令アドレスレジスタ1より送出さ
れる命令アドレスの下位部を選択し、信号線106を介
しHIT回数メモリ0/1(7,7′)にアドレスとし
て送出する、命令アドレスアレイ0/1(5,5′)
は、分岐命令のアドレスを記憶するメモリであり、信号
線101を介し命令アドレスレジスタ1から示される命
令アドレスの下位部をアドレスとして、AND回路23
(23′)それぞれによって信号線127(128)を
介して書込みが示された場合それぞれ命令アドレスアレ
イ(5,5′)に命令アドレスレジスタ1の上位部を信
号線102を介して記憶し、そうでない場合は、記憶し
ている分岐命令アドレスを信号線107(108)を介
し命令アドレス比較機0/1(IAC0(1))(8,
8′)に以前の分岐命令アドレスとして送出する。
The HIT count address selector 4 is
This is a circuit for selecting the address of the number of times memory 0/1 (7, 7 '), and when the prediction HIT flag (PHF) 10 indicates that the prediction branch destination is detected by the instruction prefetch, the signal line 105 Via the HIT count address register 3
The address sent by
The instruction address array 0 /, which selects the lower part of the instruction address sent from the instruction address register 1 via the signal line 101 and sends it as an address to the HIT count memory 0/1 (7, 7 ′) via the signal line 106 1 (5,5 ')
Is a memory that stores the address of the branch instruction, and the AND circuit 23 uses the lower part of the instruction address indicated by the instruction address register 1 via the signal line 101 as an address.
(23 ') indicates writing via signal line 127 (128) respectively, stores the upper part of instruction address register 1 in instruction address array (5, 5') via signal line 102, respectively. If not, the stored branch instruction address is passed through the signal line 107 (108) to the instruction address comparator 0/1 (IAC0 (1)) (8,
8 ') is sent as the previous branch instruction address.

【0012】分岐先アドレスアレイ0/1(6,6′)
は、命令アドレスアレイ0/1(5,5′)に対応して
分岐命令の分岐先アドレスを記憶するメモリであり、A
ND回路23(23′)により各々信号線127(12
8)で書込みを指示された場合は、分岐先アドレスレジ
スタ2より信号線104を介し送出される分岐先アドレ
スを信号線101を介し命令アドレスレジスタ1より示
されるアドレスに書込み、それ以外の場合は、信号線1
01を介し命令アドレスレジスタ1より示されるアドレ
スより以前の分岐先アドレスを読出し、各々信号線10
9(110)を介し予測分岐先アドレス選択器(PDA
X)12に送出する。
Branch destination address array 0/1 (6, 6 ')
Is a memory for storing the branch destination address of the branch instruction corresponding to the instruction address array 0/1 (5, 5 ').
The ND circuit 23 (23 ') allows signal lines 127 (12
If writing is instructed in 8), the branch destination address sent from the branch destination address register 2 via the signal line 104 is written to the address indicated by the instruction address register 1 via the signal line 101, and otherwise. , Signal line 1
The branch destination address before the address indicated by the instruction address register 1 is read via 01, and each signal line 10
9 (110) via predictive branch destination address selector (PDA
X) 12.

【0013】HIT回数メモリ0/1(7,7′)は命
令アドレスアレイ0/1(5,5′)に対応してHIT
した回数を記憶するメモリであり、AND回路23(2
3a)及びAND回路23b(23c)により信号線1
27(128),129(130)を介して書込みが指
示されるとHIT回数更新レジスタ(HCUR)21よ
り信号線126を介して指示される回数をHIT回数ア
ドレスセレクタ4によって信号線106を介して指示さ
れるアドレスに書込み、それ以外の時は信号線111
(112)を介しHIT回数比較器(HCC)16及び
HIT回数セレクタ(HCX)18に送出する。
The HIT count memory 0/1 (7, 7 ') corresponds to the instruction address array 0/1 (5, 5').
The AND circuit 23 (2
3a) and the AND circuit 23b (23c) for the signal line 1
When writing is instructed via 27 (128) and 129 (130), the number of times instructed from the HIT frequency update register (HCUR) 21 via the signal line 126 is determined by the HIT frequency address selector 4 via the signal line 106. Write to the designated address, otherwise, signal line 111
It is sent to the HIT frequency comparator (HCC) 16 and the HIT frequency selector (HCX) 18 via (112).

【0014】命令アドレス比較回路0/1(8,8′)
は、以前の分岐命令のアドレスと命令取出しアドレスを
比較する比較器であり、信号線107(108)を介し
命令アドレスアレイ0/1(5,5′)より送出される
分岐命令アドレスと、信号線102を介し命令アドレス
レジスタ1より送出される命令アドレスを比較し一致す
ると“1”、そうでない場合は“0”を信号線114
(115)を介し、OR回路9(及び予測HIT組フラ
グ(PHLF)11,予測分岐先セレクタ12,HIT
回数セレクタ18)に送出する。OR回路9は、0/1
のどちらかの組でHITしたことを示すためのものであ
り、信号線114を介し命令アドレス比較回路0(8)
より送出される命令アドレスアレイ0(5)の比較結果
と、信号線115を介し命令アドレス比較回路1
(8′)より送出される命令アドレスアレイ(5′)の
比較結果の論理和を信号線116を介し予測HITフラ
グ10に送出する。
Instruction address comparison circuit 0/1 (8, 8 ')
Is a comparator for comparing the address of the previous branch instruction with the instruction fetch address. The branch instruction address sent from the instruction address array 0/1 (5, 5 ') via the signal line 107 (108) and the signal The instruction addresses sent from the instruction address register 1 via the line 102 are compared, and if they match, "1" is returned; otherwise, "0" is returned to the signal line 114.
OR circuit 9 (and prediction HIT set flag (PHLF) 11, prediction branch destination selector 12, HIT
It is sent to the frequency selector 18). The OR circuit 9 is 0/1
The instruction address comparison circuit 0 (8) is shown via the signal line 114.
The comparison result of the instruction address array 0 (5) sent from the instruction address comparison circuit 1 via the signal line 115.
The logical sum of the comparison results of the instruction address array (5 ') sent from (8') is sent to the predicted HIT flag 10 via the signal line 116.

【0015】予測HITフラグ10は、予測分岐先が検
出されたことを示すF/Fであり、信号線116を介
し、OR回路9より命令アドレス比較回路0及び1の比
較結果を受け、それを信号線117を介し、HIT回数
アドレスセレクタ4(この線は示していない),AND
回路23,23a及びIFC(図示せず)に送出する。
The predictive HIT flag 10 is an F / F indicating that a predictive branch destination has been detected. The predictive HIT flag 10 receives the comparison result of the instruction address comparison circuits 0 and 1 from the OR circuit 9 via the signal line 116 and outputs it. HIT count address selector 4 (this line is not shown), AND
It is sent to the circuits 23 and 23a and IFC (not shown).

【0016】予測HIT組フラグ11は、どちらの組で
HITしたかを示すF/Fであり、信号線115を介し
命令アドレス比較回路(8′)の出力を受け、AND/
NAND回路22に信号線118を介し出力する。
The predicted HIT group flag 11 is an F / F indicating which group has been HIT, receives the output of the instruction address comparison circuit (8 ') via the signal line 115, and outputs AND /
The signal is output to the NAND circuit 22 via the signal line 118.

【0017】予測分岐先セレクタ12は、予測分岐先ア
ドレスを選択する選択器であり、信号線109及び11
0を介して分岐先アドレスアレイ0(6),分岐先アド
レスアレイ1(6′)より出力される以前の分岐先アド
レスを信号線115を介して命令アドレス比較回路1
(8′)よりの出力に従って選択し、信号線119を介
し予測分岐先アドレスレジスタ(PDAR)13に送出
する。
The predictive branch destination selector 12 is a selector for selecting the predictive branch destination address, and includes signal lines 109 and 11.
The branch destination address before output from the branch destination address array 0 (6) and the branch destination address array 1 (6 ') via 0 is transmitted via the signal line 115 to the instruction address comparison circuit 1
It is selected according to the output from (8 ') and sent to the predicted branch destination address register (PDAR) 13 via the signal line 119.

【0018】予測分岐先レジスタ13は、予測分岐先ア
ドレスを保持するレジスタであり、信号線119を介し
て予測分岐先セレクタ12より送出された予測分岐先ア
ドレスを受け、信号線120を介してその予測分岐先ア
ドレスをADA(図示せず)に送出する。
The predictive branch destination register 13 is a register for holding the predictive branch destination address, receives the predictive branch destination address sent from the predictive branch destination selector 12 via the signal line 119, and receives it via the signal line 120. The predicted branch destination address is sent to ADA (not shown).

【0019】書込みフラグ(WF0)14は、分岐命令
の登録動作の第一ステージを示すF/Fであり、IFC
(図示せず)より送出される分岐命令登録信号を信号線
121を介し受け、信号線122を介し書込みフラグ1
(WF1)15及びHIT回数加算セレクタ(HCA
X)20に送出する。
The write flag (WF0) 14 is an F / F indicating the first stage of the branch instruction registration operation.
A branch instruction registration signal sent from (not shown) is received via a signal line 121, and a write flag 1 is received via a signal line 122.
(WF1) 15 and HIT number addition selector (HCA
X) 20.

【0020】書込みフラグ1(15)は、分岐命令の登
録動作の第二ステージを示すF/Fであり信号線122
を介し書込みフラグ0(14)より出力される信号を受
け、信号線123を介し、AND回路23b及び23c
に送出する。
The write flag 1 (15) is an F / F indicating the second stage of the branch instruction registration operation and is a signal line 122.
Receives the signal output from the write flag 0 (14) via the AND circuit 23b and 23c via the signal line 123.
Send to.

【0021】図2は第1の実施例である比較手段50a
の詳細を示す。図2において、HIT回数比較器16
は、登録動作の第一ステージでどちらの組に登録するか
を決定する為に各組HIT回数を比較する回路であり、
信号線111を介しHIT回数メモリ0(7)より出力
されるHIT回数と、信号線112を介しHIT回数メ
モリ1(7′)より送出されたHIT回数を比較し、H
IT回数メモリ0の出力が大きい場合“1”をそれ以外
は“0”を信号線136を介しHIT回数比較フラグ
(HCCF)17に送出する。 HIT回数比較フラグ
17は、登録動作時にどちらの組に登録するかを決定す
るF/Fであり、信号線136を介しHIT回数比較器
16より送出されるHIT回数比較結果を受け、それを
AND/NAND回路22′に送出する。
FIG. 2 shows a comparison means 50a according to the first embodiment.
Shows the details of. In FIG. 2, the HIT frequency comparator 16
Is a circuit that compares the number of HITs in each group in order to determine which group to register in the first stage of the registration operation.
The HIT count output from the HIT count memory 0 (7) via the signal line 111 is compared with the HIT count sent from the HIT count memory 1 (7 ') via the signal line 112, and H
When the output of the IT count memory 0 is large, "1" is sent to the HIT count comparison flag (HCCF) 17 via the signal line 136 otherwise. The HIT count comparison flag 17 is an F / F that determines which group is to be registered during the registration operation, receives the HIT count comparison result sent from the HIT count comparator 16 via the signal line 136, and ANDs it. / NAND circuit 22 '.

【0022】HIT回数セレクタ18は、どちらの組の
HIT回数を使用するかを選択する選択器であり、HI
T回数メモリ0(7)より信号線111を介して送出さ
れるHIT回数と、HIT回数メモリ1(7′)より信
号線112を介して送出されるHIT回数を命令アドレ
ス比較回路1(8′)より信号線115を介して送出さ
れる信号により選択し、HIT回数加算器(HCA)1
9に信号線113を介し送出する。
The HIT frequency selector 18 is a selector for selecting which set of HIT frequency is to be used.
The number of HITs sent from the T count memory 0 (7) via the signal line 111 and the number of HITs sent from the HIT count memory 1 (7 ′) via the signal line 112 are compared with the instruction address comparison circuit 1 (8 ′). ), A HIT number adder (HCA) 1
9 through the signal line 113.

【0023】HIT回数加算器19は、HIT回数の加
算器であり、HIT回数セレクタ18より信号線113
を介し送出されるHIT回数を+1し、HIT回数加算
セレクタ20に信号線124を介して送出する。
The HIT frequency adder 19 is an HIT frequency adder, and the HIT frequency selector 18 outputs the signal line 113.
The number of HITs sent via the HIT number is incremented by 1 and sent to the HIT number addition selector 20 via the signal line 124.

【0024】HIT回数加算セレクタ20は、HIT回
数メモリ0及び1に書込むHIT回数を選択する選択回
路であり信号線122を介して書込みフラグ0(14)
により、“0”であれば信号線124により示されるH
IT回数加算器19の出力を“1”の場合は0を信号線
125を介しHIT回数更新レジスタ211に送出す
る。
The HIT count addition selector 20 is a selection circuit for selecting the HIT count to be written in the HIT count memories 0 and 1, and is a write flag 0 (14) via the signal line 122.
Therefore, if “0”, H indicated by the signal line 124
When the output of the IT count adder 19 is “1”, 0 is sent to the HIT count update register 211 via the signal line 125.

【0025】HIT回数更新レジスタ22は、HIT回
数メモリ0(7)又はHIT回数メモリ1(7′)に書
込むHIT回数を保持するレジスタであり信号線125
を介しHIT回数加算セレクタ20より送出された更新
後のHIT回数を受け、信号線126を介しHIT回数
メモリ0(7)及びHIT回数メモリ1(7′)に送出
する。
The HIT count update register 22 is a register for holding the HIT count to be written in the HIT count memory 0 (7) or the HIT count memory 1 (7 '), and is a signal line 125.
The updated HIT count sent from the HIT count addition selector 20 is received via the signal line 126 and sent to the HIT count memory 0 (7) and the HIT count memory 1 (7 ').

【0026】次に第1の実施例の動作について簡単に説
明する。
The operation of the first embodiment will be briefly described below.

【0027】まず、命令アドレスアレイ0(5)に
“A”という分岐命令のアドレスが記憶されており、そ
の分岐先アドレス“B”が対応する分岐先アドレスアレ
イ0(6)に記憶されているものとする。
First, the address of the branch instruction "A" is stored in the instruction address array 0 (5), and the branch destination address "B" is stored in the corresponding branch destination address array 0 (6). I shall.

【0028】命令アドレスレジスタ1に“A”が保持さ
れると、信号線102と107が一致するので、命令ア
ドレス比較回路0(8)の出力線114が“1”にな
る。この時命令アドレス比較回路1(8′)の出力線1
15は“0”であり、予測分岐先セレクタ12は分岐先
アドレスアレイ0の出力線109を選択し“B”が予測
分岐先レジスタ13にセットされる。又、HIT回数セ
レクタ18によりHIT回数メモリ0の出力が選択さ
れ、さらに+1加算されHIT回数更新レジスタ21に
セットされる。この時命令アドレスレジスタ1に保持さ
れている“A”の下位部が信号線101を介しHIT回
数アドレスレジスタ3にセットされ、予測HITフラグ
10が“1”,予測HIT組フラグ11が“0”にな
る。次のタイミングでは、予測HITフラグ10が
“1”であることによりHIT回数アドレスセレクタ4
は、HIT回数アドレスレジスタ3の出力線105を選
択し、さらに、予測HIT組フラグ11が“0”である
ことにより、AND回路23及び23aの出力線127
及び128のうち出力線127が“1”となり、HIT
回数更新レジスタ21の内容がHITメモリコンパレー
タ0(7)に書込まれる。
When "A" is held in the instruction address register 1, since the signal lines 102 and 107 coincide with each other, the output line 114 of the instruction address comparison circuit 0 (8) becomes "1". At this time, the output line 1 of the instruction address comparison circuit 1 (8 ')
Reference numeral 15 is “0”, the predictive branch destination selector 12 selects the output line 109 of the branch destination address array 0, and “B” is set in the predictive branch destination register 13. Further, the output of the HIT count memory 0 is selected by the HIT count selector 18, and +1 is further added and set in the HIT count update register 21. At this time, the lower part of "A" held in the instruction address register 1 is set in the HIT count address register 3 via the signal line 101, the predicted HIT flag 10 is "1", and the predicted HIT set flag 11 is "0". become. At the next timing, since the predicted HIT flag 10 is "1", the HIT count address selector 4
Selects the output line 105 of the HIT count address register 3 and the predicted HIT set flag 11 is "0", so that the output line 127 of the AND circuits 23 and 23a is output.
And 128, the output line 127 becomes "1", and HIT
The contents of the frequency update register 21 are written in the HIT memory comparator 0 (7).

【0029】次に登録動作の時は、信号線121を介し
て書込みフラグ0(14)がセットされると同時に命令
アドレスレジスタ1及び分岐先アドレスレジスタ2に各
々分岐命令のアドレスとその分岐先アドレスがセットさ
れる。次のタイミングでHITメモリコンパレータ0
(7)とHITメモリコンパレータ1(7′)の内容が
比較される。本例ではHITメモリコンパレータ0の内
容が大きく、HIT回数比較器16の出力が“1”であ
ったものとする。これによりHIT回数比較フラグ17
がセットされ同時に書込みフラグ1(15)がセットさ
れる。又、HIT回数加算セレクタ20は0を選択しH
IT回数更新レジスタ21にセットする。その次のタイ
ミングでは書込みフラグ1(15)が“1”,HIT回
数比較フラグが“1”であることにより信号線130が
“1”信号線129が“0”となり命令アドレスレジス
タ1に保持された分岐命令アドレスは命令アドレスアレ
イ1(5′),分岐先アドレスレジスタ2に保持された
分岐先アドレスは分岐先アドレスアレイ1(6′)に、
又、HIT回数メモリ1(7′)にはHIT回数更新レ
ジスタ21に保持された0が書込まれる。
Next, during the registering operation, the write flag 0 (14) is set via the signal line 121, and at the same time, the address of the branch instruction and its branch destination address are stored in the instruction address register 1 and the branch destination address register 2, respectively. Is set. HIT memory comparator 0 at the next timing
(7) and the contents of the HIT memory comparator 1 (7 ') are compared. In this example, it is assumed that the content of the HIT memory comparator 0 is large and the output of the HIT frequency comparator 16 is "1". As a result, the HIT count comparison flag 17
Is set and at the same time the write flag 1 (15) is set. Further, the HIT number addition selector 20 selects 0 to select H
It is set in the IT count update register 21. At the next timing, since the write flag 1 (15) is "1" and the HIT count comparison flag is "1", the signal line 130 becomes "1" and the signal line 129 becomes "0", which is held in the instruction address register 1. The branch instruction address is the instruction address array 1 (5 '), the branch destination address held in the branch destination address register 2 is the branch destination address array 1 (6'),
In addition, 0 stored in the HIT number update register 21 is written in the HIT number memory 1 (7 ').

【0030】図3は第2の実施例である比較手段50b
の詳細を示す。図3において、HIT回数比較器16
は、登録動作の第一ステージでどちらの組に登録するか
を決定する為に各個HIT回数を比較する回路であり、
信号線111を介しHIT回数メモリ0(7)より出力
されるHIT回数と、信号線112を介しHIT回数メ
モリ1(7′)より送出されたHIT回数を比較し、H
IT回数メモリ0の出力が大きい場合“1”をそれ以外
は“0”を信号線136を介しHIT回数比較フラグ
(HCCF)17に送出する。
FIG. 3 shows a comparison means 50b according to the second embodiment.
Shows the details of. In FIG. 3, the HIT frequency comparator 16
Is a circuit for comparing the number of individual HITs in order to determine which group to register in the first stage of the registration operation,
The HIT count output from the HIT count memory 0 (7) via the signal line 111 is compared with the HIT count sent from the HIT count memory 1 (7 ') via the signal line 112, and H
When the output of the IT count memory 0 is large, "1" is sent to the HIT count comparison flag (HCCF) 17 via the signal line 136 otherwise.

【0031】HIT回数比較フラグ17は、登録動作時
にどちらの組に登録するかを決定するF/Fであり、信
号線136を介しHIT回数比較器16より送出される
HIT回数比較結果を受け、それをAND/NAND回
路22′に送出する。
The HIT count comparison flag 17 is an F / F that determines to which group to register at the time of registration operation, and receives the HIT count comparison result sent from the HIT count comparator 16 via the signal line 136. It is sent to the AND / NAND circuit 22 '.

【0032】HIT回数セレクタ18は、どちらの組の
HIT回数を使用するかを選択する選択器であり、HI
T回数メモリ0(7)より信号線111を介して送出さ
れるHIT回数と、HIT回数メモリ1(7′)より信
号線112を介して送出されるHIT回数を命令アドレ
ス比較回路1より信号線115を介して送出される信号
により選択し、HIT回数加算器(HCA)19に信号
線113を介し送出する。
The HIT number selector 18 is a selector for selecting which set of HIT numbers to use.
The number of HITs sent from the T count memory 0 (7) via the signal line 111 and the number of HITs sent from the HIT count memory 1 (7 ') via the signal line 112 are calculated by the instruction address comparison circuit 1 through the signal line. It is selected by the signal sent via 115 and sent to the HIT number adder (HCA) 19 via the signal line 113.

【0033】HIT回数加算器19は、HIT回数の加
算器であり、HIT回数セレクタ18より信号線113
を介し送出されるHIT回数を+1し、HIT回数加算
セレクタ20に信号線124を介して送出する。
The HIT frequency adder 19 is an HIT frequency adder, and the HIT frequency selector 18 outputs the signal line 113.
The number of HITs sent via the HIT number is incremented by 1 and sent to the HIT number addition selector 20 via the signal line 124.

【0034】HIT回数加算セレクタ20は、HIT回
数メモリ0及び1に書込むHIT回数を選択する選択回
路であり信号線122を介して書込みフラグ0(14)
により、“0”であれば信号線124により示されるH
IT回数加算器19の出力を“1”の場合は0を信号線
125を介しHIT回数更新レジスタ211に送出す
る。
The HIT count addition selector 20 is a selection circuit for selecting the HIT count to be written in the HIT count memories 0 and 1, and is a write flag 0 (14) via the signal line 122.
Therefore, if “0”, H indicated by the signal line 124
When the output of the IT count adder 19 is “1”, 0 is sent to the HIT count update register 211 via the signal line 125.

【0035】HIT回数更新レジスタ22は、HIT回
数メモリ0(7)又はHIT回数メモリ1(7′)に書
込むHIT回数を保持するレジスタであり信号線125
を介しHIT回数加算セレクタ20より送出された更新
後のHIT回数を受け、信号線126を介しHIT回数
メモリ0(7)及びHIT回数メモリ1(7′)に送出
する。
The HIT count update register 22 is a register for holding the HIT count to be written in the HIT count memory 0 (7) or the HIT count memory 1 (7 '), and is a signal line 125.
The updated HIT count sent from the HIT count addition selector 20 is received via the signal line 126 and sent to the HIT count memory 0 (7) and the HIT count memory 1 (7 ').

【0036】HIT履歴メモリ(HHM)24は、HI
Tの履歴を記憶したものであり、最近どちらの組がHI
Tしたかを記憶する。信号線106を介してHIT回数
アドレスセレクタ4より送出されたアドレスに、予測H
ITフラグ10又は書込みフラグ1(15)が“1”の
時に信号線150を介しHIT履歴選択器(HHX)3
5で示されたデータを書込み、それ以外の時は、データ
を信号線151を介し、NOT回路28に送出する。H
IT履歴選択器35は、HIT履歴メモリ24への書込
みデータを選択するセレクタであり、信号線117を介
し予測HITフラグ10より送出された信号により
“1”の場合予測HIT組フラグ11の出力線118,
“0”の場合HIT回数比較フラグ17の出力線131
を選択し、信号線150に送出する。
The HIT history memory (HHM) 24 stores the HI
This is a record of the history of T.
Memorize whether T was done. The predicted H is added to the address sent from the HIT count address selector 4 via the signal line 106.
The HIT history selector (HHX) 3 via the signal line 150 when the IT flag 10 or the write flag 1 (15) is "1".
The data indicated by 5 is written, and at other times, the data is sent to the NOT circuit 28 via the signal line 151. H
The IT history selector 35 is a selector that selects data to be written to the HIT history memory 24. When the signal sent from the predicted HIT flag 10 via the signal line 117 is “1”, the output line of the predicted HIT group flag 11 is output. 118,
When “0”, the output line 131 of the HIT count comparison flag 17
Is selected and transmitted to the signal line 150.

【0037】HIT回数メモリコンパレータ0/1(2
5,25′)は、HIT回数メモリ0/1(7,7′)
の内容がある一定値以下であることを検出する回路であ
り、信号線111(112)を介しHIT回数メモリ0
/1(7,7′)の内容を受けその比較結果を信号線1
54(156)を介しAND回路26に出力する。
HIT count memory comparator 0/1 (2
5, 25 ') is the HIT number memory 0/1 (7, 7')
Is a circuit for detecting that the content of is less than or equal to a certain value, and the HIT count memory 0 via the signal line 111 (112).
/ 1 (7,7 ') is received and the comparison result is sent to the signal line 1
It outputs to the AND circuit 26 via 54 (156).

【0038】AND回路26は、HIT回数メモリ0と
1のどちらもある一定値を越えていないことを示す回路
であり、HIT回数メモリ0(25)及びHIT回数メ
モリ1(25′)の出力線54,156の論理積を信号
線155を介しHIT回数比較セレクタ(HCCX)2
7に出力する。HIT回数比較選択器27は、書替え時
の組を切換えるセレクタであり、信号線115を介しA
ND回路26より送出された情報により、どちらの組も
ある定地を越えてない場合、NOT回路28の出力線1
52をそうでない場合は、HIT回数比較器16の出力
線136を選択し信号線153を介しHIT回数比較フ
ラグ17に送出する。
The AND circuit 26 is a circuit showing that neither of the HIT count memories 0 and 1 exceeds a certain fixed value, and the output lines of the HIT count memory 0 (25) and the HIT count memory 1 (25 '). The logical product of 54 and 156 is sent through the signal line 155 to the HIT count comparison selector (HCCX) 2
Output to 7. The HIT number comparison / selector 27 is a selector for switching the set at the time of rewriting, and is connected to the A line via the signal line 115.
According to the information sent from the ND circuit 26, if neither set exceeds a certain ground, the output line 1 of the NOT circuit 28
If 52 is not the case, the output line 136 of the HIT count comparator 16 is selected and sent to the HIT count comparison flag 17 via the signal line 153.

【0039】次に第2の実施例の動作について簡単に説
明する。
Next, the operation of the second embodiment will be briefly described.

【0040】まず、命令アドレスアレイ0(5)に
“A”という分岐命令のアドレスが記憶されており、そ
の分岐先アドレス“B”が対応する分岐先アドレスアレ
イ0(6)に記憶されているものとする。
First, the address of the branch instruction "A" is stored in the instruction address array 0 (5), and the branch destination address "B" is stored in the corresponding branch destination address array 0 (6). I shall.

【0041】命令アドレスレジスタ1に“A”が保持さ
れると、信号線102と107が一致するので命令アド
レス比較回路0(8)の出力線114が“1”になる。
この時命令アドレス比較回路1(8′)の出力線115
は“0”であり、予測分岐先セレクタ12は分岐先アド
レスアレイ0の出力線109を選択し“B”が予測分岐
先レジスタ13にセットされる。又、HIT回数セレク
タ18によりHIT回数メモリ0の出力が選択され、さ
らに+1加算されHIT回数更新レジスタ21にセット
される。この時命令アドレスレジスタ1に保持されてい
る“A”の下位部が信号線101を介しHIT回数アド
レスレジスタ3にセットされ、予測HITフラグ10が
“1”,予測HIT組フラグ11が“0”になる。次の
タイミングでは、予測HITフラグ10が“1”である
ことによりHIT回数アドレスセレクタ4は、HIT回
数アドレスレジスタの出力線105を選択し、さらに、
予測HIT組フラグ11が“0”であることにより、A
ND回路23及び23aの出力線127及び128のう
ち出力線127が“1”となり、HIT回数更新レジス
タ21の内容がHIT回数メモリ0(7)に書込まれ
る。
When "A" is held in the instruction address register 1, the signal lines 102 and 107 coincide with each other, so that the output line 114 of the instruction address comparison circuit 0 (8) becomes "1".
At this time, the output line 115 of the instruction address comparison circuit 1 (8 ')
Is “0”, the predictive branch target selector 12 selects the output line 109 of the branch target address array 0, and “B” is set in the predictive branch target register 13. Further, the output of the HIT count memory 0 is selected by the HIT count selector 18, and +1 is further added and set in the HIT count update register 21. At this time, the lower part of "A" held in the instruction address register 1 is set in the HIT count address register 3 via the signal line 101, the predicted HIT flag 10 is "1", and the predicted HIT set flag 11 is "0". become. At the next timing, since the predicted HIT flag 10 is “1”, the HIT count address selector 4 selects the output line 105 of the HIT count address register, and further,
Since the predicted HIT group flag 11 is “0”, A
The output line 127 of the output lines 127 and 128 of the ND circuits 23 and 23a becomes "1", and the contents of the HIT count update register 21 are written in the HIT count memory 0 (7).

【0042】次に登録動作の時は、信号線121に介し
て書込みフラグ0(14)がセットされると同時に命令
アドレスレジスタ1及び分岐先アドレスレジスタ2に各
々分岐命令のアドレスとその分岐先アドレスがセットさ
れる。次のタイミングでHIT回数メモリ0(7)とH
IT回数メモリ1(7′)の内容が比較される。このと
き、HIT回数メモリコンパレータ0(25)及びHI
T回数メモリコンパレータ1(25′)により、どちら
のHIT回数もある一定値を越えていないことが検出さ
れると信号線155が“1”となりHIT履歴メモリ2
4の出力がHIT回数比較選択器27に選択されたHI
T回数比較フラグ17にセットされ、そうでない場合
は、HIT回数比較器16の出力がHIT回数比較フラ
グ17にセットされる。もし、この時HIT回数比較フ
ラグ17が“1”になったものとすると信号線130が
“1”,129が“0”となり命令アドレスレジスタ1
に保持された分岐命令アドレスは命令アドレスアレイ1
(5′),分岐先アドレスレジスタ2に保持された分岐
先アドレスは分岐先アドレスアレイ1(6′)に又、H
IT回数メモリ1(7′)にはHIT回数更新レジスタ
21に保持された“0”が、さらに、HIT履歴メモリ
24には“1”が書込まれる。
Next, during the registering operation, the write flag 0 (14) is set via the signal line 121, and at the same time, the address of the branch instruction and its branch destination address are stored in the instruction address register 1 and the branch destination address register 2, respectively. Is set. HIT count memory 0 (7) and H at the next timing
The contents of the IT count memory 1 (7 ') are compared. At this time, the HIT count memory comparator 0 (25) and HI
When the T count memory comparator 1 (25 ') detects that neither HIT count exceeds a certain value, the signal line 155 becomes "1" and the HIT history memory 2
The output of 4 is the HI selected by the HIT number comparison selector 27.
The T-number comparison flag 17 is set. Otherwise, the output of the HIT-number comparator 16 is set in the HIT-number comparison flag 17. If the HIT count comparison flag 17 is set to "1" at this time, the signal line 130 is set to "1" and 129 is set to "0".
The branch instruction address held in is the instruction address array 1
(5 '), the branch destination address held in the branch destination address register 2 is transferred to the branch destination address array 1 (6') and H
"0" held in the HIT number update register 21 is written in the IT number memory 1 (7 '), and "1" is written in the HIT history memory 24.

【0043】図4は第3の実施例である比較手段50c
を示す。図4においてHIT回数比較器16は、登録動
作の第一ステージでどちらの組に登録するかを決定する
為に各組HIT回数を比較する回路であり、信号線11
1を介しHIT回数メモリ0(7)より出力されるHI
T回数と信号線112を介しHIT回数メモリ1
(7′)より送出されたHIT回数を比較し、HIT回
数メモリ0の出力が大きい場合“1”をそれ以外は
“0”を信号線136を介しHIT回数比較フラグ(H
CCF)17に送出する。HIT回数比較フラグ17
は、登録動作時にどちらの組に登録するかを決定するF
/Fであり、信号線136を介しHIT回数比較器16
より送出されるHIT回数比較結果を受け、それをAN
D/NAND回路22′に送出する。
FIG. 4 shows a comparison means 50c according to the third embodiment.
Indicates. In FIG. 4, the HIT frequency comparator 16 is a circuit that compares the HIT frequency of each group in order to determine which group to register in the first stage of the registration operation.
HI output from HIT count memory 0 (7) via 1
T count and HIT count memory 1 via signal line 112
The HIT counts sent from (7 ') are compared. If the output of the HIT count memory 0 is large, "1" is set. Otherwise, "0" is set via the signal line 136.
CCF) 17. HIT count comparison flag 17
Determines which group to register during the registration operation F
/ F, and the HIT frequency comparator 16 via the signal line 136.
Received the HIT count comparison result sent from the
It is sent to the D / NAND circuit 22 '.

【0044】HIT回数セレクタ18は、どちらの組の
HIT回数を使用するかを選択する選択器であり、HI
T回数メモリ0(7)より信号線111を介して送出さ
せるHIT回数と、HIT回数メモリ1(7′)より信
号線112を介して送出されるHIT回数を命令アドレ
ス比較回路1より信号線115を介して送出される信号
により選択し、HIT回数加算器(HCA)19に信号
線113を介して送出する。
The HIT number selector 18 is a selector for selecting which set of HIT numbers is to be used.
The HIT count sent from the T count memory 0 (7) via the signal line 111 and the HIT count sent from the HIT count memory 1 (7 ') via the signal line 112 are sent from the instruction address comparison circuit 1 to the signal line 115. It is selected by the signal sent via the signal line and sent to the HIT number adder (HCA) 19 via the signal line 113.

【0045】HIT回数加算器19は、HIT回数の加
算器であり、HIT回数セレクタ18より信号線113
を介して送出されるHIT回数を+1し、HIT回数加
算セレクタ20に信号線12を介して送出する。
The HIT frequency adder 19 is an HIT frequency adder, and the HIT frequency selector 18 outputs the signal line 113.
Then, the number of HITs sent via the HIT number is incremented by 1 and sent to the HIT number addition selector 20 via the signal line 12.

【0046】HIT回数加算セレクタ20は、HIT回
数メモリ0及び1に書込むHIT回数を選択する選択回
路であり信号線122を介して書込みフラグ0(14)
により、“0”であれば信号線124により示されるH
IT回数加算器19の出力を“1”の場合は0を信号線
125を介しHIT回数更新レジスタ211に送出す
る。
The HIT count addition selector 20 is a selection circuit for selecting the HIT count to be written in the HIT count memories 0 and 1, and is a write flag 0 (14) via the signal line 122.
Therefore, if “0”, H indicated by the signal line 124
When the output of the IT count adder 19 is “1”, 0 is sent to the HIT count update register 211 via the signal line 125.

【0047】HIT回数更新レジスタ22は、HIT回
数メモリ0(7)又はHIT回数メモリ1(7′)に書
込むHIT回数を保持するレジスタであり信号線125
を介しHIT回数加算セレクタ20より送出された更新
後のHIT回数を受け、信号線126を介しHIT回数
メモリ0(7)及びHIT回数メモリ1(7′)に送出
する。
The HIT count update register 22 is a register for holding the HIT count to be written in the HIT count memory 0 (7) or the HIT count memory 1 (7 '), and is a signal line 125.
The updated HIT count sent from the HIT count addition selector 20 is received via the signal line 126 and sent to the HIT count memory 0 (7) and the HIT count memory 1 (7 ').

【0048】HIT履歴メモリ(HHM)24は、HI
Tの履歴を記憶したものであり、最近どちらの組がHI
Tしたかを記憶する。信号線106を介してHIT回数
アドレスセレクタ4より送出されたアドレスに、予測H
ITフラグ10又は書込みフラグ1(15)が“1”の
時に信号線150を介しHIT履歴選択器(HHX)3
5で示されたデータを書込み、それ以外の時は、データ
を信号線151を介し、NOT回路28に送出する。H
IT履歴選択器35は、HIT履歴メモリ24への書込
みデータを選択するセレクタであり、信号線117を介
し予測HITフラグ10より送出された信号により
“1”の場合予測HIT組フラグ11の出力線118,
“0”の場合HIT回数比較フラグ17の出力線131
を選択し、信号線150に送出する。
The HIT history memory (HHM) 24 stores the HI
This is a record of the history of T.
Memorize whether T was done. The predicted H is added to the address sent from the HIT count address selector 4 via the signal line 106.
The HIT history selector (HHX) 3 via the signal line 150 when the IT flag 10 or the write flag 1 (15) is "1".
The data indicated by 5 is written, and at other times, the data is sent to the NOT circuit 28 via the signal line 151. H
The IT history selector 35 is a selector that selects data to be written to the HIT history memory 24. When the signal sent from the predicted HIT flag 10 via the signal line 117 is “1”, the output line of the predicted HIT group flag 11 is output. 118,
When “0”, the output line 131 of the HIT count comparison flag 17
Is selected and transmitted to the signal line 150.

【0049】HIT回数比較選択器27は書替え時の組
を切換えるセレクタであり、信号線115を介しHIT
回数差分比較器(HCSC)30より送出された情報に
より、回数の差分が一定地を越えてない場合、NOT回
路28の出力線152をそうでない場合は、HIT回数
比較器16の出力線136を選択し信号線153を介し
HIT回数比較フラグ17に送出する。
The HIT number comparison selector 27 is a selector for switching the set at the time of rewriting, and is a HIT via the signal line 115.
According to the information sent from the number-of-times difference comparator (HCSC) 30, the output line 152 of the NOT circuit 28 is connected to the output line 136 of the HIT number comparator 16 when the difference of the number of times does not exceed a certain value. It is selected and sent to the HIT count comparison flag 17 via the signal line 153.

【0050】HIT回数減算器(HCSA)29は、H
IT回数メモリ0(7)とHIT回数メモリ1(7′)
に記憶されたHIT回数の差分を計算する減算器であり
信号線12を介しHIT回数メモリ0(7)より送出さ
れたHIT回数と信号線112を介しHIT回数メモリ
1(7′)より送出されたHIT回数の差分を信号線1
54を介しHIT回数差分比較器(HCSC)30に送
出する。HIT回数差分比較器30は、HIT回数の差
分がある値より小さいかどうかを検出する検出回路であ
り、信号線154を介しHIT回数減算器29より送出
されたHIT回数の差分がある値以下であれば“1”を
そうでない場合は“0”を送出する。
The HIT number subtractor (HCSA) 29 is
IT count memory 0 (7) and HIT count memory 1 (7 ')
Is a subtractor for calculating the difference between the HIT counts stored in the HIT count memory 0 (7) via the signal line 12 and the HIT count memory 1 (7 ') via the signal line 112. Signal line 1
It is sent to the HIT frequency difference comparator (HCSC) 30 via 54. The HIT number difference comparator 30 is a detection circuit that detects whether the HIT number difference is smaller than a certain value, and when the HIT number difference sent from the HIT number subtractor 29 via the signal line 154 is less than a certain value. If there is one, "1" is sent. If not, "0" is sent.

【0051】次に第3の実施例の動作について簡単に説
明する。
Next, the operation of the third embodiment will be briefly described.

【0052】まず、命令アドレスアレイ0(5)に
“A”という分岐命令のアドレスが記憶されており、そ
の分岐先アドレス“B”が対応する分岐先アドレスアレ
イ0(6)に記憶されているものとする。
First, the address of the branch instruction "A" is stored in the instruction address array 0 (5), and the branch destination address "B" is stored in the corresponding branch destination address array 0 (6). I shall.

【0053】命令アドレスレジスタ1に“A”が保持さ
れると、信号線102と107が一致するので命令アド
レス比較回路0(8)の出力線114が“1”になる。
この時命令アドレス比較回路1(8′)の出力線115
は“0”であり、予測分岐先セレクタ12は分岐先アド
レスアレイ0の出力線109を選択し“B”が予測分岐
先レジスタ13にセットされる。又、HIT回数セレク
タ18によりHIT回数メモリ0の出力が選択され、さ
らに+1加算されHIT回数更新レジスタ21にセット
される。この時命令アドレスレジスタ1に保持されてい
る“A”の下位部が信号線101を介しHIT回数アド
レスレジスタ3にセットされ、予測HITフラグ10が
“1”,予測HIT組フラグ11が“0”になる。次の
タイミングでは、予測HITフラグ10が“1”である
ことによりHIT回数アドレスセレクタ4は、HIT回
数アドレスレジスタの出力線105を選択し、さらに、
予測HIT組フラグ11が“0”であることにより、A
ND回路23及び23aの出力線127及び128のう
ち出力線127が“1”となり、HIT回数更新レジス
タ21の内容がHIT回数メモリ0(7)に書込まれ
る。
When "A" is held in the instruction address register 1, since the signal lines 102 and 107 coincide with each other, the output line 114 of the instruction address comparison circuit 0 (8) becomes "1".
At this time, the output line 115 of the instruction address comparison circuit 1 (8 ')
Is “0”, the predictive branch target selector 12 selects the output line 109 of the branch target address array 0, and “B” is set in the predictive branch target register 13. Further, the output of the HIT count memory 0 is selected by the HIT count selector 18, and +1 is further added and set in the HIT count update register 21. At this time, the lower part of "A" held in the instruction address register 1 is set in the HIT count address register 3 via the signal line 101, the predicted HIT flag 10 is "1", and the predicted HIT set flag 11 is "0". become. At the next timing, since the predicted HIT flag 10 is “1”, the HIT count address selector 4 selects the output line 105 of the HIT count address register, and further,
Since the predicted HIT group flag 11 is “0”, A
The output line 127 of the output lines 127 and 128 of the ND circuits 23 and 23a becomes "1", and the contents of the HIT count update register 21 are written in the HIT count memory 0 (7).

【0054】次に登録動作の時は、信号線121に介し
て書込みフラグ0(14)がセットされると同時に命令
アドレスレジスタ1及び分岐先アドレスレジスタ2に各
々分岐命令のアドレスとその分岐先アドレスがセットさ
れる。次のタイミングでHIT回数メモリ0(7)とH
IT回数メモリ1(7′)の内容が比較される。このと
き、HIT回数メモリコンパレータ0(25)及びHI
T回数メモリコンパレータ1(25′)により、どちら
のHIT回数もある一定値を越えていないことが検出さ
れると信号線155が“1”となりHIT履歴メモリ2
4の出力がHIT回数比較選択器27に選択されたHI
T回数比較フラグ17にセットされ、そうでない場合
は、HIT回数比較器16の出力がHIT回数比較フラ
グ17にセットされる。もし、この時HIT回数比較フ
ラグ17が“1”になったものとすると信号線130が
“1”,129が“0”となり命令アドレスレジスタ1
に保持された分岐命令アドレスは命令アドレスアレイ1
(5′),分岐先アドレスレジスタ2に保持された分岐
先アドレスは分岐先アドレスアレイ1(6′)に又、H
IT回数メモリ1(7′)にはHIT回数更新レジスタ
21に保持された“0”が、さらに、HIT履歴メモリ
24には“1”が書込まれる。
Next, in the registration operation, the write flag 0 (14) is set via the signal line 121, and at the same time, the address of the branch instruction and the branch destination address thereof are stored in the instruction address register 1 and the branch destination address register 2, respectively. Is set. HIT count memory 0 (7) and H at the next timing
The contents of the IT count memory 1 (7 ') are compared. At this time, the HIT count memory comparator 0 (25) and HI
When the T count memory comparator 1 (25 ') detects that neither HIT count exceeds a certain value, the signal line 155 becomes "1" and the HIT history memory 2
The output of 4 is the HI selected by the HIT number comparison selector 27.
The T-number comparison flag 17 is set. Otherwise, the output of the HIT-number comparator 16 is set in the HIT-number comparison flag 17. If the HIT count comparison flag 17 is set to "1" at this time, the signal line 130 is set to "1" and 129 is set to "0".
The branch instruction address held in is the instruction address array 1
(5 '), the branch destination address held in the branch destination address register 2 is transferred to the branch destination address array 1 (6') and H
"0" held in the HIT number update register 21 is written in the IT number memory 1 (7 '), and "1" is written in the HIT history memory 24.

【0055】[0055]

【発明の効果】以上説明したように本発明は、過去のH
IT回数によりReplaceを決定することにより、
より成功回数の多い分岐命令を記憶することができると
いう効果がある。
As described above, according to the present invention, the past H
By determining Replace according to the number of IT,
This has the effect of being able to store branch instructions with a higher number of successes.

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

【図1】本発明の実施例を示す図である。FIG. 1 is a diagram showing an embodiment of the present invention.

【図2】本発明の第1の実施例を示す図である。FIG. 2 is a diagram showing a first embodiment of the present invention.

【図3】本発明の第2の実施例を示す図である。FIG. 3 is a diagram showing a second embodiment of the present invention.

【図4】本発明の第3の実施例を示す図である。FIG. 4 is a diagram showing a third embodiment of the present invention.

【符号の説明】[Explanation of symbols]

1 命令アドレスレジスタ(IAR) 2 分岐先アドレスレジスタ(DAR) 3 HIT回数アドレスレジスタ(HCAR) 4 HIT回数アドレスセレクタ(HCAX) 5,5′ 命令アドレスアレイ0/1(IAA0/
1) 6,6′ 分岐先アドレスアレイ0/1(DAA0/
1) 7,7′ HIT回数メモリ0/1(HCM0/1) 8,8′ 命令アドレス比較回路0/1(IAC0/
1) 9 OR回路 10 予測HITフラグ(PHF) 11 予測HIT組フラグ(PHLF) 12 予測分岐先セレクタ(PDAX) 13 予測分岐先レジスタ(PDAR) 14 書込みフラグ0(WF0) 15 書込みフラグ1(WF1) 16 HIT回数比較器(HCC) 17 HIT回数比較フラグ(HCCF) 18 HIT回数セレクタ(HCX) 19 HIT回数加算器(HCA) 20 HIT回数加算セレクタ(HCAX) 21 HIT回数更新レジスタ(HCUR) 22 AND/NAND回路 23 AND回路 24 HIT履歴メモリ(HHM) 25,25′ HIT回数メモリコンパレータ0/1
(HCMC0/1)) 26 AND回路 27 HIT回数比較選択器(HCCX) 28 NOT回路
1 instruction address register (IAR) 2 branch destination address register (DAR) 3 HIT count address register (HCAR) 4 HIT count address selector (HCAX) 5, 5'instruction address array 0/1 (IAA0 /
1) 6,6 'Branch destination address array 0/1 (DAA0 /
1) 7,7 'HIT count memory 0/1 (HCM0 / 1) 8,8' instruction address comparison circuit 0/1 (IAC0 /
1) 9 OR circuit 10 Predicted HIT flag (PHF) 11 Predicted HIT set flag (PHLF) 12 Predicted branch destination selector (PDAX) 13 Predicted branch destination register (PDAR) 14 Write flag 0 (WF0) 15 Write flag 1 (WF1) 16 HIT number comparator (HCC) 17 HIT number comparison flag (HCCF) 18 HIT number selector (HCX) 19 HIT number adder (HCA) 20 HIT number addition selector (HCAX) 21 HIT number update register (HCUR) 22 AND / NAND circuit 23 AND circuit 24 HIT history memory (HHM) 25,25 'HIT count memory comparator 0/1
(HCMC0 / 1)) 26 AND circuit 27 HIT frequency comparison selector (HCCX) 28 NOT circuit

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 分岐命令のアドレスと該分岐命令の分岐
先アドレスを対にして記憶する分岐ヒストリテーブルを
少なくとも2組有するデータ処理装置において、命令取
出しアドレスと前記分岐ヒストリテーブルのそれぞれの
組の分岐命令アドレスを比較し、一致(ヒット),不一
致(ミス)を検出する第1の比較手段群と、第1の比較
手段群の検出結果に従って、そのヒット回数を前記分岐
ヒストリテーブルのそれぞれの組の分岐命令アドレスに
対応して記憶する記憶手段と、分岐ヒストリテーブルの
内容を書替える際に前記記憶手段に記憶した各組対応の
ヒット回数を比較し、ヒット回数の一番少ない組を検出
する第2の比較手段と、前記第2の比較手段によって示
される一番ヒット回数の少ない分岐ヒストリテーブルの
組に新しい分岐命令の命令アドレスと分岐先命令を対に
して記録する手段とから構成されることを特徴とする分
岐ヒストリテーブル制御回路。
1. A data processing device having at least two sets of branch history tables for storing a branch instruction address and a branch destination address of the branch instruction as a pair, and a branch of each set of the instruction fetch address and the branch history table. According to the detection result of the first comparison means group which compares the instruction addresses and detects a match (hit) and a non-match (miss), and the number of hits of each pair of the branch history table A storage means for storing the branch instruction address, and a hit count corresponding to each set stored in the storage means when the contents of the branch history table are rewritten are compared, and a set having the smallest hit count is detected. A new branch instruction is added to the pair of the second comparison means and the branch history table having the smallest number of hits indicated by the second comparison means. And a branch history table control circuit for recording the paired instruction address and the branch destination instruction.
【請求項2】 分岐命令のアドレスと該分岐先アドレス
を対にして記憶する分岐ヒストリテーブルを少なくとも
2組有するデータ処理装置において、命令取出しアドレ
スと前記分岐ヒストリテーブルのそれぞれの組の分岐命
令アドレスを比較し、一致(ヒット),不一致(ミス)
を検出する第1の比較手段群と、第1の比較手段群の検
出結果に従って、そのヒット回数を前記分岐ヒストリテ
ーブルのそれぞれの組の分岐命令アドレスに対応して記
憶する第1の記憶手段と、第1の比較手段群の検出結果
に従って各組間のヒットの履歴を記憶する第2の記憶手
段と、分岐ヒストリテーブルの内容を書替える際に、前
記第1の記憶手段に記憶した各組対応のヒット回数のど
れがある回数を超えているかどうかを検出する検出手段
と、前記第1の記憶手段に記憶した各組対応のヒット回
数を比較し、ヒット回数の一番少ない組を検出する第2
の比較手段と、前記検出手段によりある回数以上HIT
していることか検出された場合、第2の比較手段の検出
結果に従って一番ヒット回数の少ない分岐ヒストリテー
ブルの組に、そうでない場合は前記第2の記憶手段の内
容によって決定される組に新しい分岐命令の命令アドレ
スと分岐先アドレスを対にして記録する手段とから構成
されることを特徴とする分岐ヒストリテーブル制御回
路。
2. A data processing device having at least two sets of branch history tables for storing a branch instruction address and the branch destination address as a pair, wherein an instruction fetch address and a branch instruction address of each set of the branch history table are set. Compare and match (hit), mismatch (miss)
And a first storage means for storing the number of hits corresponding to the branch instruction address of each set of the branch history table according to the detection result of the first comparison means group. , A second storage means for storing the history of hits between the sets according to the detection result of the first comparison means group, and each set stored in the first storage means when rewriting the contents of the branch history table. The detection means for detecting which of the corresponding hit counts exceeds a certain number is compared with the hit count for each set stored in the first storage means, and the set with the smallest hit count is detected. Second
HIT for a certain number of times or more by the comparison means and the detection means.
If it is detected that the branch history table has the smallest number of hits in accordance with the detection result of the second comparing means, otherwise it is set to the group determined by the contents of the second storing means. A branch history table control circuit comprising a unit for recording an instruction address of a new branch instruction and a branch destination address as a pair.
【請求項3】 分岐命令のアドレスと該分岐先アドレス
を対にして記憶する分岐ヒストリテーブルを少なくとも
2組有するデータ処理装置において、命令取出しアドレ
スと前記分岐ヒストリテーブルのそれぞれの組の分岐命
令アドレスを比較し、一致(ヒット),不一致(ミス)
を検出する第1の比較手段群と、第1の比較手段群の検
出結果に従って、そのヒット回数を前記分岐ヒストリテ
ーブルのそれぞれの組の分岐命令アドレスに対応して記
憶する第1の記憶手段と、第1の比較手段群の検出結果
に従って、各組間のヒットの履歴を記憶する第2の記憶
手段2と、分岐ヒストリテーブルの内容を書替える際に
前記第1の記憶手段に記憶された各組対応のヒット回数
の最大値と最小値の差がある回数を越えているかどうか
を検出する検出手段と、前記第1の記憶手段に記憶した
各組対応のヒット回数を比較し、ヒット回数の一番少な
い組を検出する第2の比較手段と、前記検出手段により
ある回数以上であった場合、第2の比較手段の検出結果
に従って一番ヒット回数の少ない分岐ヒストリテーブル
の組に、そうでない場合は前記第2の記憶手段の内容で
決定される組に新しい分岐命令の分岐命令アドレスと分
岐先アドレスを対にして記録する手段とから構成される
ことを特徴とする分岐ヒストリテーブル制御回路。
3. A data processing device having at least two sets of branch history tables for storing a branch instruction address and a branch destination address as a pair, wherein an instruction fetch address and a branch instruction address of each set of the branch history table are set. Compare and match (hit), mismatch (miss)
And a first storage means for storing the number of hits corresponding to the branch instruction address of each set of the branch history table according to the detection result of the first comparison means group. , According to the detection result of the first comparison means group, the second storage means 2 for storing the history of hits between each pair, and the first storage means for rewriting the contents of the branch history table. The number of hits is compared by comparing the number of hits corresponding to each set stored in the first storage means with a detection unit that detects whether or not the difference between the maximum value and the minimum value of the number of hits corresponding to each set exceeds a certain number of times. Of the branch history table having the smallest number of hits in accordance with the detection result of the second comparing means, Deena Branch history table control circuit, characterized in that it consists of a means for recording in pairs the branch instruction address and branch destination address of the new branch instruction set in which is determined by the contents of said second storage means when.
JP4218848A 1992-08-18 1992-08-18 Branch history table control circuit Expired - Fee Related JP2982506B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4218848A JP2982506B2 (en) 1992-08-18 1992-08-18 Branch history table control circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4218848A JP2982506B2 (en) 1992-08-18 1992-08-18 Branch history table control circuit

Publications (2)

Publication Number Publication Date
JPH0667880A true JPH0667880A (en) 1994-03-11
JP2982506B2 JP2982506B2 (en) 1999-11-22

Family

ID=16726290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4218848A Expired - Fee Related JP2982506B2 (en) 1992-08-18 1992-08-18 Branch history table control circuit

Country Status (1)

Country Link
JP (1) JP2982506B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998011484A1 (en) * 1996-09-13 1998-03-19 Hitachi, Ltd. Command processor having history memory
US6532534B1 (en) 1998-12-10 2003-03-11 Fujitsu Limited Information processing apparatus provided with branch history with plurality of designation ways
US7613910B2 (en) 2004-09-30 2009-11-03 Fujitsu Limited Information processing apparatus, method, and computer-readable recording medium for replacing an entry in a memory device
KR100958299B1 (en) * 2005-10-17 2010-05-19 자이단호진 후쿠오카켄 산교·가가쿠기쥬츠신코자이단 Estimator, table managing device, selecting device, table managing method, program for allowing computer to execute the table managing method, and recording medium where the program is recorded
JP2011209774A (en) * 2010-03-26 2011-10-20 Fujitsu Ltd Branch prediction method and branch prediction circuit for executing the same

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998011484A1 (en) * 1996-09-13 1998-03-19 Hitachi, Ltd. Command processor having history memory
US6532534B1 (en) 1998-12-10 2003-03-11 Fujitsu Limited Information processing apparatus provided with branch history with plurality of designation ways
US7613910B2 (en) 2004-09-30 2009-11-03 Fujitsu Limited Information processing apparatus, method, and computer-readable recording medium for replacing an entry in a memory device
KR100958299B1 (en) * 2005-10-17 2010-05-19 자이단호진 후쿠오카켄 산교·가가쿠기쥬츠신코자이단 Estimator, table managing device, selecting device, table managing method, program for allowing computer to execute the table managing method, and recording medium where the program is recorded
JP2011209774A (en) * 2010-03-26 2011-10-20 Fujitsu Ltd Branch prediction method and branch prediction circuit for executing the same

Also Published As

Publication number Publication date
JP2982506B2 (en) 1999-11-22

Similar Documents

Publication Publication Date Title
US4764861A (en) Instruction fpefetching device with prediction of a branch destination for each branch count instruction
US5210831A (en) Methods and apparatus for insulating a branch prediction mechanism from data dependent branch table updates that result from variable test operand locations
US5261071A (en) Dual pipe cache memory with out-of-order issue capability
US5097414A (en) Buffer-storage control system for simultaneously accessible partitions of tag and data blocks of buffer storage
US6401180B1 (en) Bank history table for improved pre-charge scheduling of random access memory banks
US5226132A (en) Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
US5283890A (en) Cache memory arrangement with write buffer pipeline providing for concurrent cache determinations
EP0600165B1 (en) Vector processing device
JP2982506B2 (en) Branch history table control circuit
US20020087825A1 (en) Error detection in cache tag array using valid vector
KR960015231A (en) Enhanced Addressing Method and System
JPS629945B2 (en)
US4733367A (en) Swap control apparatus for hierarchical memory system
JP3284508B2 (en) Data prefetch control device
JPS60701B2 (en) data processing equipment
JP2794782B2 (en) Instruction fetch device
JPH0520350A (en) Vector processing device
JP2864548B2 (en) Instruction cache device
JP2859172B2 (en) Information processing equipment debug circuit
JP2716254B2 (en) List vector processing device
JP2972451B2 (en) Cache memory control method by hardware control software
JP2798492B2 (en) List vector processing device
JPH04239324A (en) Branch destination estimating system
JPH0612331A (en) Cache memory controller
JPH04225429A (en) Data processor

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990824

LAPS Cancellation because of no payment of annual fees