JP2982506B2 - 分岐ヒストリテーブル制御回路 - Google Patents

分岐ヒストリテーブル制御回路

Info

Publication number
JP2982506B2
JP2982506B2 JP4218848A JP21884892A JP2982506B2 JP 2982506 B2 JP2982506 B2 JP 2982506B2 JP 4218848 A JP4218848 A JP 4218848A JP 21884892 A JP21884892 A JP 21884892A JP 2982506 B2 JP2982506 B2 JP 2982506B2
Authority
JP
Japan
Prior art keywords
hit
branch
address
hits
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP4218848A
Other languages
English (en)
Other versions
JPH0667880A (ja
Inventor
剛 森定
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
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP4218848A priority Critical patent/JP2982506B2/ja
Publication of JPH0667880A publication Critical patent/JPH0667880A/ja
Application granted granted Critical
Publication of JP2982506B2 publication Critical patent/JP2982506B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は分岐ヒストリテーブル制
御回路に関し、特に分岐ヒストリテーブルの制御回路に
おける分岐ヒストリテーブルの書込み制御に関する。
【0002】
【従来の技術】分岐ヒストリテーブルは、USP709
426(特公昭50−22384号公報)の明細書に記
載されており、命令の処理の高速化(特に分岐命令の処
理の高速化)に効果があり、現在、各種のデータ処理装
置で使用されている。また、記憶できる分岐命令の数は
限られるため新しい分岐命令を記憶するためには古い分
岐命令をすてる必要がありLRU,FIFOなどの手段
が用いられる。
【0003】
【発明が解決しようとする課題】上述した従来の分岐ヒ
ストリテーブルの制御回路は、過去数回分の履歴によっ
て書替えを制御するが、LRUやFIFOの場合、最後
の動作に影響されてしまい、実際には、ほとんど使われ
ない分岐命令が残り、頻繁に使用する分岐命令が新しい
分岐命令に書替えられることが考えられる。
【0004】
【課題を解決するための手段】本発明の分岐ヒストリテ
ーブル制御回路は、分岐命令のアドレスと該分岐命令の
分岐先アドレスを対にして記憶する分岐ヒストリテーブ
ルを少なくとも2組有するデータ処理装置において、命
令取出しアドレスと前記分岐ヒストリテーブルのそれぞ
れの組の分岐命令アドレスを比較し、一致(ヒット),
不一致(ミス)を検出する第1の比較手段群と、第1の
比較手段群の検出結果に従って、そのヒット回数を前記
分岐ヒストリテーブルのそれぞれの組の分岐命令アドレ
スに対応して記憶する第1の記憶手段と、第1の比較手
段群の検出結果に従ってヒットした組の履歴を記憶する
第2の記憶手段と、分岐ヒストリテーブルの内容を書替
える際に、前記第1の記憶手段に記憶した各組対応の
ット回数の内どの組のヒット回数がある回数以上である
を検出する検出手段と、前記第1の記憶手段に記憶し
た各組対応のヒット回数を比較し、ヒット回数の一番少
ない組を検出する第2の比較手段と、前記検出手段によ
りある回数以上ヒットしていることが検出された場合、
第2の比較手段の検出結果に従って一番ヒット回数の少
ない分岐ヒストリテーブルの組に、そうでない場合は前
記第2の記憶手段の内容によって決定される組に新しい
分岐命令の命令アドレスと該新しい分岐命令の分岐先ア
ドレスを対にして記録する手段とから構成される。
【0005】更に本発明の分岐ヒストリテーブル制御回
路は、分岐命令のアドレスと該分岐命令の分岐先アドレ
を対にして記憶する分岐ヒストリテーブルを少なくと
も2組有するデータ処理装置において、命令取出しアド
レスと前記分岐ヒストリテーブルのそれぞれの組の分岐
命令アドレスを比較し、一致(ヒット),不一致(ミ
ス)を検出する第1の比較手段群と、第1の比較手段群
の検出結果に従って、そのヒット回数を前記分岐ヒスト
リテーブルのそれぞれの組の分岐命令アドレスに対応し
て記憶する第1の記憶手段と、第1の比較手段群の検出
結果に従って、ヒットした組の履歴を記憶する第2の記
憶手段2と、分岐ヒストリテーブルの内容を書替える際
に前記第1の記憶手段に記憶された各組対応のヒット回
数の最大値と最小値の差がある回数以上かどうかを検出
する検出手段と、前記第1の記憶手段に記憶した各組対
応のヒット回数を比較し、ヒット回数の一番少ない組を
検出する第2の比較手段と、前記検出手段によりある回
数以上であった場合、第2の比較手段の検出結果に従っ
て一番ヒット回数の少ない分岐ヒストリテーブルの組
に、そうでない場合は前記第2の記憶手段の内容で決定
される組に新しい分岐命令の分岐命令アドレスと分岐先
アドレスを対にして記録する手段とから構成される。
【0006】
【0007】
【実施例】次に、本発明について図面を参照して説明す
る。
【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′)に命令
アドレスとして送出する。
【0009】分岐先アドレスレジスタ(DAR)2は、
分岐ヒストリテーブルへの分岐命令登録時に命令アドレ
スレジスタ1と対応して分岐命令の分岐先アドレスを保
持するレジスタであり、ADA(図示せず)より送出さ
れた分岐先アドレスを信号線104を介して分岐先アド
レスアレイ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′)のアドレ
スとして送出する。
【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′)に以前の分岐命令アドレスとして送出する。
【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に送出する。
【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に送出する。
【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に送出する。
【0015】予測HITフラグ10は、予測分岐先が検
出されたことを示すF/Fであり、信号線116を介
し、OR回路9より命令アドレス比較回路0及び1の比
較結果を受け、それを信号線117を介し、HIT回数
アドレスセレクタ4(この線は示していない),AND
回路23,23a及びIFC(図示せず)に送出する。
【0016】予測HIT組フラグ11は、どちらの組で
HITしたかを示すF/Fであり、信号線115を介し
命令アドレス比較回路(8′)の出力を受け、AND/
NAND回路22に信号線118を介し出力する。
【0017】予測分岐先セレクタ12は、予測分岐先ア
ドレスを選択する選択器であり、信号線109及び11
0を介して分岐先アドレスアレイ0(6),分岐先アド
レスアレイ1(6′)より出力される以前の分岐先アド
レスを信号線115を介して命令アドレス比較回路1
(8′)よりの出力に従って選択し、信号線119を介
し予測分岐先アドレスレジスタ(PDAR)13に送出
する。
【0018】予測分岐先レジスタ13は、予測分岐先ア
ドレスを保持するレジスタであり、信号線119を介し
て予測分岐先セレクタ12より送出された予測分岐先ア
ドレスを受け、信号線120を介してその予測分岐先ア
ドレスをADA(図示せず)に送出する。
【0019】書込みフラグ(WF0)14は、分岐命令
の登録動作の第一ステージを示すF/Fであり、IFC
(図示せず)より送出される分岐命令登録信号を信号線
121を介し受け、信号線122を介し書込みフラグ1
(WF1)15及びHIT回数加算セレクタ(HCA
X)20に送出する。
【0020】書込みフラグ1(15)は、分岐命令の登
録動作の第二ステージを示すF/Fであり信号線122
を介し書込みフラグ0(14)より出力される信号を受
け、信号線123を介し、AND回路23b及び23c
に送出する。
【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′に送出する。
【0022】HIT回数セレクタ18は、どちらの組の
HIT回数を使用するかを選択する選択器であり、HI
T回数メモリ0(7)より信号線111を介して送出さ
れるHIT回数と、HIT回数メモリ1(7′)より信
号線112を介して送出されるHIT回数を命令アドレ
ス比較回路1(8′)より信号線115を介して送出さ
れる信号により選択し、HIT回数加算器(HCA)1
9に信号線113を介し送出する。
【0023】HIT回数加算器19は、HIT回数の加
算器であり、HIT回数セレクタ18より信号線113
を介し送出されるHIT回数を+1し、HIT回数加算
セレクタ20に信号線124を介して送出する。
【0024】HIT回数加算セレクタ20は、HIT回
数メモリ0及び1に書込むHIT回数を選択する選択回
路であり信号線122を介して書込みフラグ0(14)
により、“0”であれば信号線124により示されるH
IT回数加算器19の出力を“1”の場合は0を信号線
125を介しHIT回数更新レジスタ211に送出す
る。
【0025】HIT回数更新レジスタ22は、HIT回
数メモリ0(7)又はHIT回数メモリ1(7′)に書
込むHIT回数を保持するレジスタであり信号線125
を介しHIT回数加算セレクタ20より送出された更新
後のHIT回数を受け、信号線126を介しHIT回数
メモリ0(7)及びHIT回数メモリ1(7′)に送出
する。
【0026】次に第1の実施例の動作について簡単に説
明する。
【0027】まず、命令アドレスアレイ0(5)に
“A”という分岐命令のアドレスが記憶されており、そ
の分岐先アドレス“B”が対応する分岐先アドレスアレ
イ0(6)に記憶されているものとする。
【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)に書込まれる。
【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が書込まれる。
【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に送出する。
【0031】HIT回数比較フラグ17は、登録動作時
にどちらの組に登録するかを決定するF/Fであり、信
号線136を介しHIT回数比較器16より送出される
HIT回数比較結果を受け、それをAND/NAND回
路22′に送出する。
【0032】HIT回数セレクタ18は、どちらの組の
HIT回数を使用するかを選択する選択器であり、HI
T回数メモリ0(7)より信号線111を介して送出さ
れるHIT回数と、HIT回数メモリ1(7′)より信
号線112を介して送出されるHIT回数を命令アドレ
ス比較回路1より信号線115を介して送出される信号
により選択し、HIT回数加算器(HCA)19に信号
線113を介し送出する。
【0033】HIT回数加算器19は、HIT回数の加
算器であり、HIT回数セレクタ18より信号線113
を介し送出されるHIT回数を+1し、HIT回数加算
セレクタ20に信号線124を介して送出する。
【0034】HIT回数加算セレクタ20は、HIT回
数メモリ0及び1に書込むHIT回数を選択する選択回
路であり信号線122を介して書込みフラグ0(14)
により、“0”であれば信号線124により示されるH
IT回数加算器19の出力を“1”の場合は0を信号線
125を介しHIT回数更新レジスタ211に送出す
る。
【0035】HIT回数更新レジスタ22は、HIT回
数メモリ0(7)又はHIT回数メモリ1(7′)に書
込むHIT回数を保持するレジスタであり信号線125
を介しHIT回数加算セレクタ20より送出された更新
後のHIT回数を受け、信号線126を介しHIT回数
メモリ0(7)及びHIT回数メモリ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に送出する。
【0037】HIT回数メモリコンパレータ0/1(2
5,25′)は、HIT回数メモリ0/1(7,7′)
の内容がある一定値以下であることを検出する回路であ
り、信号線111(112)を介しHIT回数メモリ0
/1(7,7′)の内容を受けその比較結果を信号線1
54(156)を介しAND回路26に出力する。
【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に送出する。
【0039】次に第2の実施例の動作について簡単に説
明する。
【0040】まず、命令アドレスアレイ0(5)に
“A”という分岐命令のアドレスが記憶されており、そ
の分岐先アドレス“B”が対応する分岐先アドレスアレ
イ0(6)に記憶されているものとする。
【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)に書込まれ
る。
【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”が書込まれる。
【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′に送出する。
【0044】HIT回数セレクタ18は、どちらの組の
HIT回数を使用するかを選択する選択器であり、HI
T回数メモリ0(7)より信号線111を介して送出さ
せるHIT回数と、HIT回数メモリ1(7′)より信
号線112を介して送出されるHIT回数を命令アドレ
ス比較回路1より信号線115を介して送出される信号
により選択し、HIT回数加算器(HCA)19に信号
線113を介して送出する。
【0045】HIT回数加算器19は、HIT回数の加
算器であり、HIT回数セレクタ18より信号線113
を介して送出されるHIT回数を+1し、HIT回数加
算セレクタ20に信号線12を介して送出する。
【0046】HIT回数加算セレクタ20は、HIT回
数メモリ0及び1に書込むHIT回数を選択する選択回
路であり信号線122を介して書込みフラグ0(14)
により、“0”であれば信号線124により示されるH
IT回数加算器19の出力を“1”の場合は0を信号線
125を介しHIT回数更新レジスタ211に送出す
る。
【0047】HIT回数更新レジスタ22は、HIT回
数メモリ0(7)又はHIT回数メモリ1(7′)に書
込むHIT回数を保持するレジスタであり信号線125
を介しHIT回数加算セレクタ20より送出された更新
後のHIT回数を受け、信号線126を介しHIT回数
メモリ0(7)及びHIT回数メモリ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に送出する。
【0049】HIT回数比較選択器27は書替え時の組
を切換えるセレクタであり、信号線115を介しHIT
回数差分比較器(HCSC)30より送出された情報に
より、回数の差分が一定地を越えてない場合、NOT回
路28の出力線152をそうでない場合は、HIT回数
比較器16の出力線136を選択し信号線153を介し
HIT回数比較フラグ17に送出する。
【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”を送出する。
【0051】次に第3の実施例の動作について簡単に説
明する。
【0052】まず、命令アドレスアレイ0(5)に
“A”という分岐命令のアドレスが記憶されており、そ
の分岐先アドレス“B”が対応する分岐先アドレスアレ
イ0(6)に記憶されているものとする。
【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)に書込まれ
る。
【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”が書込まれる。
【0055】
【発明の効果】以上説明したように本発明は、過去のH
IT回数によりReplaceを決定することにより、
より成功回数の多い分岐命令を記憶することができると
いう効果がある。
【図面の簡単な説明】
【図1】本発明の実施例を示す図である。
【図2】本発明の第1の実施例を示す図である。
【図3】本発明の第2の実施例を示す図である。
【図4】本発明の第3の実施例を示す図である。
【符号の説明】
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回路
フロントページの続き (56)参考文献 特開 平4−42330(JP,A) 特開 平3−175545(JP,A) 特開 平2−71328(JP,A) 特開 平2−36446(JP,A) 特開 平4−51342(JP,A) 特開 平3−42722(JP,A) 特開 平3−294948(JP,A) 特開 昭53−64431(JP,A) 特開 平3−257526(JP,A) 特開 昭60−214060(JP,A) 実開 昭63−199344(JP,U) (58)調査した分野(Int.Cl.6,DB名) G06F 9/38 G06F 12/00 G06F 12/08

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 分岐命令のアドレスと該分岐命令の分岐
    先アドレスを対にして記憶する分岐ヒストリテーブルを
    少なくとも2組有するデータ処理装置において、命令取
    出しアドレスと前記分岐ヒストリテーブルのそれぞれの
    組の分岐命令アドレスを比較し、一致(ヒット),不一
    致(ミス)を検出する第1の比較手段群と、第1の比較
    手段群の検出結果に従って、そのヒット回数を前記分岐
    ヒストリテーブルのそれぞれの組の分岐命令アドレスに
    対応して記憶する第1の記憶手段と、第1の比較手段群
    の検出結果に従ってヒットした組の履歴を記憶する第2
    の記憶手段と、分岐ヒストリテーブルの内容を書替える
    際に、前記第1の記憶手段に記憶した各組対応のヒット
    回数の内どの組のヒット回数がある回数以上であるか
    検出する検出手段と、前記第1の記憶手段に記憶した各
    組対応のヒット回数を比較し、ヒット回数の一番少ない
    組を検出する第2の比較手段と、前記検出手段によりあ
    る回数以上ヒットしていることが検出された場合、第2
    の比較手段の検出結果に従って一番ヒット回数の少ない
    分岐ヒストリテーブルの組に、そうでない場合は前記第
    2の記憶手段の内容によって決定される組に新しい分岐
    命令の命令アドレスと該新しい分岐命令の分岐先アドレ
    を対にして記録する手段とから構成されることを特徴
    とする分岐ヒストリテーブル制御回路。
  2. 【請求項2】 分岐命令のアドレスと該分岐命令の分岐
    先アドレスを対にして記憶する分岐ヒストリテーブルを
    少なくとも2組有するデータ処理装置において、命令取
    出しアドレスと前記分岐ヒストリテーブルのそれぞれの
    組の分岐命令アドレスを比較し、一致(ヒット),不一
    致(ミス)を検出する第1の比較手段群と、第1の比較
    手段群の検出結果に従って、そのヒット回数を前記分岐
    ヒストリテーブルのそれぞれの組の分岐命令アドレスに
    対応して記憶する第1の記憶手段と、第1の比較手段群
    の検出結果に従って、ヒットした組の履歴を記憶する第
    2の記憶手段2と、分岐ヒストリテーブルの内容を書替
    える際に前記第1の記憶手段に記憶された各組対応のヒ
    ット回数の最大値と最小値の差がある回数以上かどうか
    を検出する検出手段と、前記第1の記憶手段に記憶した
    各組対応のヒット回数を比較し、ヒット回数の一番少な
    い組を検出する第2の比較手段と、前記検出手段により
    ある回数以上であった場合、第2の比較手段の検出結果
    に従って一番ヒット回数の少ない分岐ヒストリテーブル
    の組に、そうでない場合は前記第2の記憶手段の内容で
    決定される組に新しい分岐命令の分岐命令アドレスと分
    岐先アドレスを対にして記録する手段とから構成される
    ことを特徴とする分岐ヒストリテーブル制御回路。
JP4218848A 1992-08-18 1992-08-18 分岐ヒストリテーブル制御回路 Expired - Fee Related JP2982506B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4218848A JP2982506B2 (ja) 1992-08-18 1992-08-18 分岐ヒストリテーブル制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4218848A JP2982506B2 (ja) 1992-08-18 1992-08-18 分岐ヒストリテーブル制御回路

Publications (2)

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

Family

ID=16726290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4218848A Expired - Fee Related JP2982506B2 (ja) 1992-08-18 1992-08-18 分岐ヒストリテーブル制御回路

Country Status (1)

Country Link
JP (1) JP2982506B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007109116A (ja) * 2005-10-17 2007-04-26 Fukuoka Pref Gov Sangyo Kagaku Gijutsu Shinko Zaidan 推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、及び、そのプログラムを記録する記憶媒体

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998011484A1 (fr) * 1996-09-13 1998-03-19 Hitachi, Ltd. Processeur de commande a memoire d'historique
JP3522135B2 (ja) 1998-12-10 2004-04-26 富士通株式会社 複数のウェイを持つブランチヒストリを備える情報処理装置
JP4362096B2 (ja) 2004-09-30 2009-11-11 富士通株式会社 情報処理装置,リプレース方法,リプレースプログラム及びリプレースプログラムを記録したコンピュータ読取可能な記録媒体
JP2011209774A (ja) * 2010-03-26 2011-10-20 Fujitsu Ltd 分岐予測方法及びその方法を実行する分岐予測回路

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007109116A (ja) * 2005-10-17 2007-04-26 Fukuoka Pref Gov Sangyo Kagaku Gijutsu Shinko Zaidan 推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、及び、そのプログラムを記録する記憶媒体
WO2007046324A1 (ja) * 2005-10-17 2007-04-26 Fukuoka Industry, Science & Technology Foundation 推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、及び、そのプログラムを記録する記録媒体

Also Published As

Publication number Publication date
JPH0667880A (ja) 1994-03-11

Similar Documents

Publication Publication Date Title
US4980823A (en) Sequential prefetching with deconfirmation
US5210831A (en) Methods and apparatus for insulating a branch prediction mechanism from data dependent branch table updates that result from variable test operand locations
US4583165A (en) Apparatus and method for controlling storage access in a multilevel storage system
US4764861A (en) Instruction fpefetching device with prediction of a branch destination for each branch count instruction
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
US20090037663A1 (en) Processor equipped with a pre-fetch function and pre-fetch control method
US5926484A (en) Fault correction apparatus for an address array of a store-in cache memory and method therefor
US6510506B2 (en) Error detection in cache tag array using valid vector
JP2982506B2 (ja) 分岐ヒストリテーブル制御回路
US5283890A (en) Cache memory arrangement with write buffer pipeline providing for concurrent cache determinations
US5649231A (en) Storage control method and apparatus having a buffer storage for transferring variable amounts of data to a main storage based on current system load
EP0173909A2 (en) Look-aside buffer least recently used marker controller
US7346735B2 (en) Virtualized load buffers
CN111639042B (zh) 一种预取buffer数据一致性的处理方法及装置
KR960015231A (ko) 향상된 어드레스 지정 방법 및 시스템
EP0628912B1 (en) Cache memory apparatus
JP3284508B2 (ja) データ先読み制御装置
JPS60701B2 (ja) デ−タ処理装置
JPH02204834A (ja) オペランド差換え方式
JP2864548B2 (ja) 命令キャッシュ装置
JP2972451B2 (ja) ハードウェア制御ソフトウェアによるキャッシュメモリ制御方式
JP2001154845A (ja) キャッシュミスした後のメモリバスアクセス制御方式
JPH05250258A (ja) キャッシュ制御方式
JPH04239324A (ja) 分岐先予測方式
EP0502206A1 (en) System equipped with processor and cache memory, and method of controlling said cache memory

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