JPS5991553A - 実アドレス分岐ヒストリテ−ブルを有する命令先取り装置 - Google Patents

実アドレス分岐ヒストリテ−ブルを有する命令先取り装置

Info

Publication number
JPS5991553A
JPS5991553A JP20155882A JP20155882A JPS5991553A JP S5991553 A JPS5991553 A JP S5991553A JP 20155882 A JP20155882 A JP 20155882A JP 20155882 A JP20155882 A JP 20155882A JP S5991553 A JPS5991553 A JP S5991553A
Authority
JP
Japan
Prior art keywords
instruction
branch
address
circuit
information
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
JP20155882A
Other languages
English (en)
Inventor
Ritsuo Sugaya
菅谷 律雄
Shuichi Hanatani
花谷 修一
Masanobu Akagi
赤木 正信
Koemon Nigo
仁後 公衛門
Toshiteru Shibuya
渋谷 俊輝
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
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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Priority to JP20155882A priority Critical patent/JPS5991553A/ja
Priority to EP83111451A priority patent/EP0109655B1/en
Priority to DE8383111451T priority patent/DE3382350D1/de
Publication of JPS5991553A publication Critical patent/JPS5991553A/ja
Priority to US07/286,021 priority patent/US4984154A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 発明の属する技術分野 本発明はデータ処理システムの命令シーケンスのステッ
プに含まれる分岐条件判定ステップ実行処理に先立って
判定結果を予測しつつ次の命令の先取りを行なう実アド
レス分岐ヒストリテーブルを有する命令先取り装置に関
する。
従来技術 少なくとも1個の分岐命令を含む命令群か記憶装置に命
令シーケンスの形で格納されているデータ処理システム
においては、このような命令シーケンスの実行は、次の
ように行なわれる。
ます、前記記憶装置の分岐茫アドレスに分岐命令が格納
される。次に、この分岐命令に引き続いて実行される命
令が先取りされる。このあと、分岐命令が実行され、こ
の実行結果により次に実行される命令が明らかになる。
このようなシステムは米国特許4.20Q927号に提
案されている。しかし、このシステムでは、分岐命令先
取り制御において実行結果の判別時まで命令先取り制御
を停止させると、処理の迅速化が妨げられる。
この欠点の除去のため、分岐命令の実行結果を予め予測
しこの予測に従って命令先取りを行なう方式が提案され
ている。この予測が正しく行なわれたときには、データ
処理システムは処理時間の少ない遅れで稼働する。例え
は、そのような従来の予測方式としては次の3つの方式
かある。第1の予測方式では、全ての分岐命令の分岐先
方向か成功側または不成功側のいずれが一方のみに予測
されている。
他の1つの予測方式では、過去の事実に基づいて分岐先
方向を予測する。すなわち、同じ分岐命令の過去の実行
結果において分岐先がすでに明らかにされているという
事実を用いてこの結果に基づいて予測を行なうことによ
り予測的中率を高めている。このような予測方式の代表
例が特開昭57−76638号公報に示されている。
さらにもう1つの予測方式では、分岐命令に対応して分
岐の方向を予測する分岐指示フラグを多数用意し、分岐
命令の発生に応答してこれら分岐指示フラグを参照する
ことにより分岐先を予測している。この例の詳細は特開
昭53−74857号公報を参照できる。しかし、上述
の3つのいずれの予測方式においても分岐命令の読出し
、解読か必要不可欠であり、予測連中にもかかわらずこ
れらの抗出しおよび解読動作分だけ処理が遅れるという
欠点がある。
この欠点を除去する予測方式か特開昭57−59253
号公報に示されている。この方式では、主記憶装置の命
令部の写しである命令キャッジ−メモリのブロックに対
比、シて該ブロック中に含まれる分岐命令の分岐先アド
レスを、該ブロックの次にフェッチされるべきブロック
のアドレスとして記憶手段に保持している。命令先取り
動作において、命令キャッシュメモリへのアクセスと同
時に前記記憶手段をアクセスして前記分岐先アドレスを
読出し、読み出された分岐先アドレスにより先取りすべ
き命令のアドレスを決定している点において、この方式
は上述の従来の3つの予測方式と異なり処理の迅速化に
有効である。しかし、この方式では、命令キヤノンュメ
モリのブロック対応で予測するため、該ブロックに分岐
命令が複数個存在するときには、そのそれぞれの分岐命
令に対応して予測を行ガうことかできない。この結果、
精度の粗い予測的中率しか得られないという欠点かある
発明の目的 本発明の目的は上述の欠点を除去するようにした芙アド
レス分岐ヒストリテーブルを有する命令先取り装置を提
供することにある。
発明の構成 本発明の装置は、分岐命令の失アドレスを指定する情報
と該分岐命令に対応する分岐先実アドレスを含む分岐情
報とを対にして複数対記憶する分岐ヒストリテーブル手
段と、命令先取り動作の際に先取りされるべき分岐命令
の実アドレスを指定する情報が前記分岐ヒストリテーブ
ルに登録されているか否かを調べ、該分岐命令の登録の
判明に応答して対応する分岐情報を前記分岐ヒストリテ
ーブル手段から読み出す手段と、該分岐情報に従い分岐
命令の解読を行なうことなく、命令先取り動作を実施す
るように制御する命令先取り制御手段とを備えている。
発明の原理と作用 本発明の特徴は、分岐命令の実行における分岐方向に加
えて分岐先アドレスがその同じ分岐命令の過去の結果の
把握により、比較的高い的中率で予測可能であるという
事実に基づいて装置か動作することにある。
発明の実施例 次に本発明の一実施例を図面を参照して詳細に説明する
。第1図を参照すると、本発明の一実施例は、命令アド
レス生成回路401、命令アドレス変換回路402、命
令解読回路403、オペランドアドレス生成回路404
、オペランドアドレス変換回路405、オペランド記憶
回路を有するオペランド読出し回路406、命令実行回
路407、命令記憶回路408、命令バッファ409、
分岐ヒストリテープ)v (BHT )410.命令ア
ドレスレジスタ411、命令アドレス加算回路412、
分岐情報バッファ413、命令整列回路414、分岐情
報切換回路415、分岐情報レジスタ416.417.
418、および419、予測確認回路420、アドレス
生成回路421、選択回路422、レジスタ423、命
令先取り制御回路424およびフリップフロップ425
から構成されている。
命令記憶回路408およびオペランド読出童路406内
のオペランド記憶回路はともに主記憶装置の命令部の一
部の写しである命令キャッジ−メモリ、前記オペランド
記憶回路が主記憶装置のオペランド部の一部の写しであ
るオペランドキャッシュメモリとして構成されうる。
本発明は、前述の命令の処理単位に対応した装置構成を
必すしも有する必要はなく、例えば、命令アドレス生成
回路401とオペランドアドレス生成回路404、匍令
アドレス変換回路402とオペランドアドレス変換回路
405、命令記憶回路408とオペランド読出し回路4
06内の記憶回路が共用されたコンピュータシステムに
おいても適用され得る。前記分岐ヒストリテーブル(B
I−JT )410 は分岐命令のアドレスを指定する
情報と該分岐命令の実行の予測としての分岐成否フラグ
と分岐先アドレスを第3図に示すように対にして記憶し
ている。前記命令記憶回路408に対する前記命令アド
レスレジスタ(IAR)411は、命令読出しのリクエ
ストアドレスを保持して読出し動作を実行する。。
さらに前記命令アドレスレジスタ411(IAR)は、
分岐ヒストリチーフル410(BHT)  および命令
アドレス加算回路412に信号線101を介して接続さ
れている。前記レジスタ411の内容は該いるか否かを
示す信号を信号m106に出力する。
登録されていれば、対応する分岐先アドレスが信号線1
05に読出される。登録されていなけれは、前記命令ア
ドレス加算回路412により、後続の命令語の命令先取
りのためのアドレスが生成される。
前記命令アドレス加算回路412は、1回のリクエスト
で読出される命令語を8Byteと仮定したとき、単に
“IAR十g“を出力107に生成する回路である。前
記命令バッファ409は、命令記憶回路408から読出
された8Byteの先取り命令語を蓄は、命令バッファ
409か空のとき、信号線102を介して、命令記憶回
路408から読出される8By t eの命令語に応答
して前記命令バッファ409か空で信号線103を介し
て、前記命令バッファに貯えられる8Byteの命令語
に応答して命令を抽出して、信号線104を介して命令
解読回路403に命令を供給する回路である。前記分岐
情報バッファ413は、i’+1]記砧令バッファ40
9に格納される命令語に対応して用意されており、その
命令語中に分岐成功と予測された分岐命令が存在すれは
、第7図に示す該分岐命令の分岐情報を格納する回路で
あり、た分岐情報としての分岐先アドレスおよび−Vビ
ットは、分岐ヒストリテーブル410 (BH’J” 
)から信号線105を介してそれぞれセントされる。前
記分岐情報切替回路415は、命令バッファ409力―
それ出力する。前記レジスタ416.417.および4
18はそれぞれ分岐命令の命令解重11、命令アドレス
生成、アドレス変換の各処理クテージに対応し、その分
岐情報を保持する。前記分岐情報レジスタ419は、そ
の分岐先アドレス部を該分岐命令の実行によって生成さ
れる実際の分岐元アドレスにtMキ換工て保持するレジ
スタでめる。削d己予測確認回路420は、分岐命令の
実行によって生成される笑際の分岐命令の生成結果と、
前記分岐’I*報レジスタ418に保持される該分岐命
令の予測′1に報との一致をとる回路である。前記アド
レス生成回路421は、前記分岐情報レジスタ419に
保持される分岐命令のアドレスと該分岐命令1牙の命令
語長とを加算前記選択回路422は、分岐命令の成否信
号線111の状態に応答して該信号線の状態が分岐GO
を示すとき線115を介して与えられる前記分岐情報レ
ジスタ419に保持される分岐先アドレス部の出力を選
択し、前記緋の状態か分岐N0GOを示すとき、線11
6を介して与えられる前記アドレス生成回路421の出
力を選択し、信号線113を介して該選択回路422の
出力をレジスタ423に供給する。前記し/メタ423
は、分岐命令の予測か失敗したとぎ、分岐ヒストリテー
ブル410(1:IHT)を更新するだめのものであり
、さしに、信号線117を介して、命令アドレスレジス
タ411(IAPu)に命令先取りのための耕たなアド
レスをgl−胎づ−る。前記命令先取り制御回路424
は、嫁106を介して分岐ヒストリテーブル410(E
HT)から与えられる分岐予測信号および予測確認回路
から#112を介して与えられる予測成否信号に基づい
て命令アドレスレジスタ411(IAR)の入力を制御
する回路である。
次に前記分岐ヒストリテーブル410(BHT)、前記
予測確認回路420および削記命令元取り制御回路42
4の詳細なブロック図とタイムチャートを参照しながら
本実施例の動作を詳細に説明する。
第2図を参照すると、前記分岐ヒス) IJテーブル4
10(BHT)は、ディレクトリ記憶部501、データ
記憶部502、テスト回路503.504.505、お
よび506、プライオリティ回路507、レベル選択回
路508、およびオア回路509を侃えて℃・る。
前記記憶部501および502は、1回のリクエストに
対して、命令記憶回路408から読出される命令語の単
位をブロックの単位とし、セット数m、レベル数nの記
憶部である。
第3図を参照すると、記憶部501に(ま、分岐命令の
命令アドレスの一部とその内在か旬効力・合力・を示す
■ビットか格納され記憶部502に(ま、分岐先アドレ
スの夾アドレスが格納されて℃ゝる。自IJ記Vビット
は対応する分岐ヒストリテーブル(B1−1T )41
0のワードの有効性を示すと同時に該分岐命令の実行の
予測としての、分岐成否フラグの機能を有する。
この分岐ヒストリゾ−プル(BHT)410へ0)索引
は以下のようなセソトアソシアテイプ法によって行われ
る。
第5図に示される前記テスト回路503.504.50
5、および506はテーブル410の各レベルに対応し
て命令アドレスレジスタ411 t、 IAR)に保持
されるリクエストアドレスか各レベルのBHT−AA(
iはレベルに対応するサフイクスを示す)に登録されて
いるか否かを示す信号を1言号轟130.131.13
2.133に出力する。
第4図を参照づ−ると、前記テスト回路503.504
.505および506のそれぞれは、一致回路701お
よび大小比較回路702かも構成されて℃・る。QJi
己比戟回路701では、命令アドレスレジスタ(iAR
)411に保十寺されるリクエストアドレスの−Hy 
l=(:18−28)をセントアドレスとして読出され
た記4意部501の各レベルの内在とを読出し、自訂昔
己レジスタ411の内在1AR(:4−17) とか比
軟され、等しいアドレスか存在するか否かを検出1゛Q
0該4d回路701の出力により命令アドレスレジスタ
(LAI(、) 411に保持されるリクエストアー・
ルスで読出されるべき命令語の3 By t eブロッ
ク中にすでに分岐ヒストリテーブル(BHT) 410
に登録された分岐命令か存在するか否かが、判明する。
しかし、リクエストアドレスとそれが靜コ出すべき分岐
命令との対応をとるには、上記−微検出のみでは不十分
である。
第5図を参照すると、1回のリクエストで読出される8
Byteの命令語のブロック中に2Byte命令BCO
,A、 BCI、BC2の4個の命令力′−存在する。
命令BCO1BCI、BC2がともに分岐成功と予測さ
れた分岐命令であるとぎ向ま、谷々の分岐命令はともに
、そのアドレスの一部が記憶部(BHT−AA)501
に登録される。こθつとき、他の分岐命令から命令Aに
分岐して、命令Aのアドレス〈Aンが前記命令語のブロ
ックを飢出するためのリクエストアドレスとして命令ア
ドレスレジスタ(iAR)411に保持されるとぎに(
ま、分岐ヒストリテーブル(Lit(T)410から読
出されるべぎ分岐命令の情報を1命令の実行の経路から
、分岐層6令BCIの情辛しでなけれはならない。
従って前記レジスタ(IAR)411に保持されるリク
エストアドレスと前記記憶部(HHT  AA、)5H
に保持される分1(填命令のアドレスとの関係が、上6
ピの一致乗件とともに次の関係が成立するとぎ対応する
レベルのB)JT−)II’I’  信号が生成される
この46号は勝130 133を介してオア回路509
に与えられ、該BH’[’−H■T、信号のオア信号か
勝106を介して出力され分岐予測信号(BHT−BI
T)信号)となる。
B1−1’l’−1−tIT 、 = (IAR(: 
4−17 )=BHT−AA 。
(:4.−x7)i n(IAR(:29.30)≦Hail”−AA(:2
9.30月 nBHT−AA、(V) 再び第4図を参照すると、前記大小比較回路は、この条
件を実現する回路である。さらに、mj配信号Bl(T
−Hl ’1’ 、の条件か2ヶ以上のレベルにおいて
成立したとき記1怠部5010対応するレベル(BnT
−AA、)に保持される分岐命令のアドレス(’)8B
yteブ07り内アドレスBMT−AA1(:29.3
0)の値の最坦専もt」−さいレベルが選択される必是
怒カーある。
再び第5図を参照すると、命令BCIおよびBC2の分
岐命令関係′1ρ報か格州される。分岐ヒストリテーブ
ル4100レベルで杓1」記憶ご号U11T−)11 
T 、条件か共に成立する。このとき、命令の実行の経
路から命令HCIに幻するレベルか選択される心動ゝあ
る。HhCフライオリティ回路5 U 71iIJ記侶
号Bi−IT−i(IT  の2ヶ以上の成立に対する
ものであり)この出力により記1.いm HhT−LI
A 502のセットアドレス1AR(:l8−28)で
ださノしるエントリの分岐先アドレスか、レベル迅択回
始508 ケ介してWl、出される。
第6凶を参照1−ゐと、前記プノイメリテイ回路507
はアンド回路畔601−604およびオア回路件605
−608から構成されている。前記アンド回路8+6(
Jl−604はn+1個並並列配置されている。
HII記第2図におけるレベル選択回路508の選択4
f。
号は586図に2ける信号Vo、’%f1、v2、■3
(0より以下のように与えられる。
VL  V L  、、、、VoLn ■oのとぎ         00  01■o・V□
のとき      □ 。、 1 □、  、 □ 。
VL   VL   、、、、、、  VLV 、V 
、Vのとき   V2Lo1■2L1、 ・、V2Ln
12 v  、v  、v  、’v  のとき v3Lo1
■3L□、  、■3Ln0  1  2  3 以上のようにして、第2図におけるレベル選択回路50
8から読出された分岐情報は、W−1図の命令記憶回路
408ρ・ら読出される命令と対応つけることか司能で
ある。
第9図には、命令記憶回路408における命令と、分岐
ヒストリテーブル(Bl−11”) 410に名ける分
岐情報の上記対応関係か示されている。命令の夫行順序
か節今へい分岐命令BCo、B1、Be、、B2、B 
 BCCCと予測された場合であ 3%     2%    1%    2る。なお、
〈A〉は人命仝のアドレスf7. BC,は分岐命令を
それぞれ示す。
第10図を参照すると、前記褐9図のに不しだ分岐ヒス
トl)テーブルBl−LT410KJ:る命令先取り動
作は次のようにされる。リクエストアドレスの命令アド
レスレジスタ411の化ノドに応答して命令記°1煮回
路408から怜令山が読出され、これと同時にテーブル
BHT410が索引される。信号線106を介してBH
,T〜HI ’l’信号が出力されると記憶部BH’l
”−DA502の分岐先アドレスくB1〉かアドレスレ
ジスタ411にセットされ、次の命令先取りか行われる
。前記信号線106を介してBH’l’−111’I’
信号か出力されないときには、命令アドレス加算回路4
12に命令への8バイト違テアドレス(Δ)か与えられ
、[81加昇されたアドレスか出力さね、次の命令先取
りが逐次性われる。
以上の命令の先取りに従えは、命令6己憶回路408か
ら読出される館令胎ば、テーブルBHT410の内容に
よる予測に便ってJIA人玩出され、命令バッファ40
9には予測された命令の大行順に格納することか用北で
ある。
このとぎ、たとえ信号IJ)iT−HI ’I’か出力
されても分岐予測手向と反対側の命令光取り動作を一部
行わせしめた後に、分岐予測方r01の命令先取り動作
を行ってもよい。
以上のようにして、命令先ルリされた命令か分岐命令で
第1図の命令記憶回路414により、鮪令解♂′L回路
403にη子かれたとき同時に該分岐命令に対応1−る
分岐情報が最初の分岐情報レジスタ416(QRO)に
セットされる。
以降前記分岐命令の進行に伴い前記命令M、説、アドレ
ス変換して前記分岐情報か第2および第3の分岐’IW
報レジスタ417 (QRI )および418(($2
)に転送される。そして前6σ分岐命令の実行によって
生成される実際の分岐命令の生成結果と@記分岐情報レ
ジスタ418.QR2)に保持されろ該分岐命令の予測
′IH独との一致か、予測確認回路420によりチェッ
クされる。
第8図を参照1−ると、前記予測確認回路420は比較
回路801、フリップフロップ802および803、ア
ンド回路804−806、真偽回路807およびsos
、:t=よびオア回路809かり構成されている。前記
比較回路801には、分岐命令の実行により生成された
分+11.i先アドレスの実アドレスか命令アドレス変
換回路402から信号法109を介して与えられるとと
もに、分岐・情報レジスタ418 (Qi(2)から予
測された分岐元か#J!108を介して与えられる。前
記比較回路801では両者の一1力、不一致が判定され
る。判定結果と前記レジスタ418から線108を介し
て与えられるVビットかアンド回路806に与えられる
。論理積結果により分岐00と予測されたとぎこの$芙
を示す信号がフリソゲフロップ802にセットされる。
このフリップ70ソゾ802の出力か1“で実際の分岐
命令を実行した結果か分岐N0GOであればアンド回路
805から予測GO失敗化号123か生成される。前記
フリップフロノア801の出力か〃1″で分岐命令の芙
行粘果かGOであれはアンド回路804かも予測NCI
GO失敗伯号124か生成される。さらに該信号124
と前記予測GO失敗123との論理和かオア回路809
力・ら予測失敗信号112として生成される。
第1図および第11図を参照すると、分岐情報レジスタ
419(QR3)の分岐先アドレス部には、前記命令ア
ドレス変換回路402から妨たに生成される分岐ノ亡ア
ドレスがセットされる。また、目IJ We分岐″1〜
報レジスタ419(QR3)の分岐命令bC1のアドレ
ス部の内容と該分岐命令BCI自身の命令語長部の内容
とがアドレス生成回路421により加算され分岐NoG
o側の命令の命令アドレスが生成される。
そして、分岐命令BCIの実際の実行により分岐GOな
しはAil記分岐情報レジスタ419″QR3)から祿
115を介して与えられる分岐先アドレス部の出力〈D
l〉が分HIQOGoならば線116を介して与えられ
る前記アドレス生成回路421の出力〈B2〉か選択回
路422により選択される 前記分岐命令BCIの予6
11+失敗化゛号112が予測確認回路421から発生
したとぎ、組選択回路422の出力〈Dl〉か1111
13を介してレジスタ423(Jl(、)にセソ)・さ
れる。
一万1分岐″1白報し/メタ419(児R3)の分岐命
令のアドレス<Eel>は信号/i#J 114を介し
て、命令アドレスレジスタ411(LAR)にてツトサ
れる。このアドレスは、該分岐命令に対応する分岐ヒス
トリアープル410(B)IT)の更新のため勝101
を介して該テーブル410にライトアドレスとして供給
される。前2予測失敗信号112の出力かフリップフロ
ップ425に与えられ、この出力か指示パルスとして線
119を介してテーブル401に与えられる。この出力
に応答して該分岐命令の次の命令光取り時のための分岐
予測悄卒トシの更妨か行なわれる。この更新は、本実施
例でば予i1 Nα幻失敗のとぎ前記レジスタ423(
WR)に保持されろ新たな分岐元アドレスで行なわれ、
予測GO失敗のとぎは■ビットをリセットするように行
われるか分岐予測・1に報の更新におけるアルコリズム
を用いて他の方法により行なって差しつかえない。予測
失敗したとき予測側に後続する命令の動作は、すべてキ
ャンセルさし、mlN己レジスタ423(WR)に保持
される新たなリクエストアドレスか分岐ヒストリテーブ
ル4 i o (Bl−IT)の更新後に、命令アドレ
スレジスタ411(■AR)に供給され改めて命令の取
出しが開始される。
第12図を参照すると、前記命令先取り制御回路424
はフリソゲフロップ1201、真偽回41202−12
04およびアンド回路1205から栴成されている。前
記フリップフロップ1201は前記予測失敗信号112
を1マシンザイクル保持するためのフリップフロップで
ある。この回路424の出力はアドレスレジスタ411
の前段にあるセレクタの選択指示信号となる。この選択
指示信号は、前記命令アドレス加算回路412の出プバ
前記し/メタ423の出力、前記デープル410の出力
、および分岐情報レジスタ419の出力のうちのどれを
選択するかを指示するためのイg号である。なお、この
命令先取り制御回路424の制御により分岐予測が的中
したとぎに01、後述する第16区の命令処理が行なわ
れ、分岐予測が失敗したとぎには後述する第17図の命
令処理が行なわれる。前記命令アドレス加讃−回路11
は勝106を介してBHT−HIT信号が出力されない
とぎ、分岐N0GO側の都令の先取りを行うためのアド
レス生成を行う。このとき、アドレスは爽アドレスで加
昇が何ゎれるために、例えは、ページングな行うコンビ
ーータシステムにおいて前記アドレス加算がページ境界
を越えた場合アドレス変換を改めてやり直す必要か生じ
る。このために、前記命令アドレス加算回路11にペー
ジ境界越え検出回路を設け、該検出回路によりベジ境界
越えか生じた場合、信号線Lllにより、命令アドレス
生成回路1を起動し、命令先取り動作を改めて命令アド
レス生成回路(IA、)40!及び命令アドレス変換回
路(IT)4o2から行なうように制御すればよい。
ここで、問題となるのは、あらたに分岐ヒストリテーブ
ルBH’[’410に前記命令アドレス情報を登録する
とき既存のどの部分に格納された命令アドレスレジスタ
を追い出すかである。3この方法としては、使われた順
序、すなわち、最も古く使われたものから)聰に追い出
j法LRL、1(Least Recently Us
ea)情報か入った順序、すなわち、厳も古く入ったも
のから胴に追い出ず方法f’lf”0(First i
n First 0ut)等かあるかと)らを用いても
よい。
発明の効果 次に不発明の効果を第13図から第17凶を参照しなが
ら詳細に説明する。
第13図を参照すると、都令の処理は一般的に次の8つ
の処理単位に分けられる。
(1)  LAステージ 実行すべき命令の命令アドレ
ス(論理アドレス)が生 成される。
(2)  11”ステージ:生成された命令アドレスの
アドレス変換か行われる。
(3)  ■eステージ:変換された命令の芙アドレス
で記憶装置ρ・ら命令か読 出されろ。
(4)IDスナーゾ:読出された命令か解読される。
(s)OAステージ、解説された命令のメーヘランドア
ドレス(論理アドレス) か生成される。
(6)  O’l”スデージ:生既すれたズベランドア
ドレスのアドレス変換か行な われる。
7)QCステージ、変換されたオペランドの実アドレス
で記憶装置からオ ペランドが読出きれる。
+8)EXステージ:命令が実行される。
上述のITステージおよびOTステージアドレス変換に
おいてアドレス変換バッファを設け、必要な変換テーブ
ルが、該アドレス変換バッファに存在ずれは、上記アド
レスレジスタは高速に実行し得る。また、上述のICス
テージおよびocステージの命令およびオペランドの胱
出し動作において生りピ憶装置のテークの一部の写しを
保付するキャッジ−メモリを設け、必要な命令およびオ
ペランドか該キャッシュメモリに存在すれはICステー
ジおよびOCステージの処理は高速にイ]いう。。
リチースを必ずしも有する必要はない。しがし、説明の
簡単のためにここでは谷処理単位にその機能を来す回路
かあるものとする。上述のIT、Q10よびIc、QC
の各ステージの高速処理か可能なと1複数の命令の処理
の冗れを無駄な(実行する8段のパイプライン制御が可
能である。
このときの分岐命令を含む命令の処理の匹れを第14図
および第15図を参照しながら説明する。
第14図は、分岐命令の命令先取りにおいて前述のすべ
ての分岐はII GO#であると予測した場合の命令の
処理の流れを示す。すなわち、命令AOは分岐命令BC
の分岐条件を決定する命令で該分岐条件は命令AOの災
行結果、すなわち、時刻t7において決定される。分岐
命令BCは時刻t4において解読されると命令アドレス
の生成回路を用いて、分岐先命令B1のアドレスを生成
し以後B1命令を先取りするように動作する。時刻t2
、t3、およびt4には分岐N0GOIllIの後続命
令A1、−髪2、および八3の命令先取りのためのアド
レス生成が開始される。時刻tもおよびt7には予測動
作としての分岐()01薊の後続命令B2およびB3の
命令先取り動作が開始される。時刻t7において分岐条
件の判定結果により、時刻t8以降は正しい命令の処理
の流れに従って処理が継続される。
この場合、分岐命令の出現によるパイプラインのロスサ
イクルは、 予測的中(分岐Go)のとさ   3ザイクル予測失敗
(分岐No()0)のとき  3サイクルである。
分岐GO率γ、予測的中率α、としたとき、この場合γ
−αであり、予測的中率&″f−5分5分である。従っ
てγ=α=05であり1分岐命令中り平均的なロスサイ
クルは、 3×γ+3×(1−γ)=3サイクル である。
一方第15図は、分岐命令の命令先取りt(Cおいて、
前述の同じ分岐命令の過去の結果に基づいて予測を行っ
た場合の命令の処理の流れを示す。
すなわち、分岐命令BCは、時刻t4にお℃・て、解読
されるとともに分岐命令のアドレステーブルを探累し、
その有無によるか、もしくは、分岐指示の予測により、
分岐GO側の命令B1を先取りするか、分岐N0GO4
Ulの命令A1を先取りするかを決定する。前回と同様
に時刻t2、t3およびt4には分岐N0GO(Jll
lの後続命令A1、A2、およびA3の置台先取りのた
めのアドレス生成か開始される。
時刻t6およびt7には予測による命令先取りの後続命
令BlおよびB2.4−シ<はA4およびA5の命令の
アドレス生成か開始さ扛る。時刻t7において分岐条件
の判定結果により時刻t8以降は正しい命令の処理の流
れに従って処理が継続される。
この場合、分岐命令の出現によるパイプラインのロスサ
イクルは、 分ogGOと予測して、 89中したとさ  3サイク
ル分岐N0GOと予測して的中したとtoブイクル分岐
GOと予測して失敗したとぎ   3サイクル分岐N0
GOと予測して失敗したとざ 6サイクルである。従っ
て、分岐00軍γ−0,5、予測的中率α−08と仮定
したとぎ1分岐命令当りの平均的なロスサイクルは、 3・γ・α十〇(1−γう・α+3 (1−α)+6(
1−γ)(1−α9=21サイクル を得る。
従って、この従来の発明は、同じ分岐命令の過去の結果
に基づいて予測を行った場合、尚い予測的中率を得ると
いう原理を用いることにより、常に分岐G(Jと予迎]
する第14図に示す処理に比べ幾分の改良がみられる。
しかし、この改良された発明においても、たとえ予測的
中時分岐Goの場合は依然として3サイクルのロスサイ
クルを要することになり、これ以上短縮できない。
従って分岐命令が生じた場合たとえ予測が的中してもロ
スサイクルを生じることになる。
第16図およびホ17図は仝発り]による命令の処理の
流れを示している。
本発明における命令の処理単位■Cステージは、命令を
記憶装置から胱出す機能の他に、分岐ヒストリテーブル
を索引し読出される命令のアドレスか該分岐ヒストリテ
ーブルにm8されているか否かを慣出し、登録されてい
rしは対応する分岐・II報を貌出し、登録されていな
げれば後続命令の命令先取りのためのアドレスを生成す
る機能な有する。
第16図および第17図を蚕照¥ると、分岐命令BCの
時刻t1における動作は次のようにして行なわれる。ま
す、葭分岐命%−BCか命令キャッシュメモリから読出
されろと同時に分岐ヒストリテーブルか索引される。該
分岐命令BC缶令アドレスが登録されていれは、対応す
る分岐情報か読出されろ。該分l!1幻は七4ケ分4j
「シたイも来、分岐GQ1i+11の予d1(]として
、該直外前独中に含まれる分岐先アドレスにより分岐元
命令B1の命令先取りを開始するか、もしくは、分出ヅ
N0UO1則の予測として分岐N U () (J 1
1il+の命令A1の命令アドレス乞生り、2して命令
A1の光取りを開M5す勺がか決〉J−さ2シる。以1
1年時亥14t3  まで0ま月り配分−文′鮪令Bし
の1倒:」期−」でめり)予測側の恢り光訪令が元枢つ
さ扛時刻toにおいて分岐条f−4−p・決足さ扛る。
予測的中町には第161z+にボすようにハイプライン
のυILれは乱れを庄ず句ことン、I:(、処坤力)厖
HcされΦ。予測失敗時には化17凶に75丁ように1
6時徂]で゛削bL分岐ヒストl)チーフルの史〃「ン
何った挨に正しい命令の7ノit、TIJJ)ら′O?
J情の取出しぞ1〕うように1lrlJ仙jされる。
コ0) JJ3台、分μ反節省の出尻によるパイプライ
ンのロスサイクルは、 1伸」かlシ中したとt     oサイクル予測か失
敗したとぎ    5アイクルである。予測的中率がほ
この等j合分教カー」だけでなく分岐先アドレスをも予
測することから、分岐方向だけの予測に比べ若干低くな
るかその割合は、微々たるものである。従って、予測的
中率α=08として1分岐命令当りの平均的なロスサイ
クルは、0・α+5 (1−α) =1ウーイクルとな
り、従来技術に比べて格段に改良される。
この発明では、分岐命令のアドレスと該分岐命令の分岐
元アドレスを含む分岐情報とを対にして記憶する分岐ヒ
ス) IJチービルを命令先取り時に累引する。このあ
とで前記分岐元アドレスで次の命令先取りを行わせしめ
ることにより命令の解読を何うことす<前記分岐ヒスト
リテーブルの記述に従って命令語を先取りすることかで
きる。このことにより本発明は該分岐ヒストリテーブル
の記述か正しい場合に限り命令バッファには命令の芙行
の経路に従った命令の待行列を形成せしめ、清報処理シ
ステムのパイプライン制御における分岐命令の実行をロ
スサイクルをともなうことな(行なうことかできるとい
う効果がある。
本発明には、また分岐予測失敗時も少ないロスサイクル
で正しい命令の流れに回復できるという分岐予測失敗時
の立上り性能の向上に多大な効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、第2図は分岐ヒス
トリゾ−プルの詳細な構成を示す図、第   ′3図は
第2凶の記憶部501および601の記詭形式を示す図
、第4図は第2図のテスト回路5o3−506の詳細な
構成を示す図、第5図は命令語の構成を示す図、第6図
は第2図のブライオリティ   1回路507の詳細な
構成を示す図、第7凶は第1図ルシスタ417−lH9
の格納形式を示ず図 第8図は第1図の予測確認回路4
20の詳I1.111な絢戟馨示   1す図、第9図
は第1図の命令記憶回路408における命令と分岐ヒス
トリテーブル410における分岐′酸層との対応関係を
説明するた6)の図、第10図は第9図のテーブル41
0による命令先取り動作を説明するための図、第11図
は予測失敗1時における命令先取り創作開始までの動作
を説明するため   」の図、第12図は第1図の命令
先取り制御回路の詳細な構成を示す図、第13図は命令
の処理の流れの概要を示す図、第14図および第15図
は従来の予測方式を用いた命令の処理の流れを示す図、
躬16図は本発明において、分岐命令の予測が的中した
とどの命令の処理の流れを示す図、および琳17図は本
発明において分岐命令の予測か失敗したときの命令の処
理の匠れを示す図である。 第1図から第17図において、401  命令アドレス
生成回路、402    命令アドレス変換回路、40
3  命令解読回路、404   オベラントアルス生
瓜回路、405 −オペランドアドレス没侠回路、40
6− オペランド読出し包絡、407   命令芙行回
路、408   命令化憶回路、409   @令バッ
ファ、410  ・汁岐ヒストリテーブル(BH’J”
)、411   #令アドレスレジスタ(IAR) 、
412    命令アドレス加算回路、413  ・分
岐情報バッファ、414   命令整列回路、415 
・・分岐情報バッファ、416   分岐情報レジスタ
(QltO)、417   分岐情報レジスタ(Q、R
1)、4]8分岐情報レジスタ(QR2)、419  
  分岐情報レジスタ((1)、R,3)、420  
 予測確認回路、421   アドレス生成回路、42
2   選択回路、423   レジスタ(Wl−1,
)、424  命令先取り制御回路、425   フリ
ップ70ツブ、501.502  記憶部、503.5
04.505.506・・・テスト回路、507−・・
プライオリティ回路、508・ 選択回路、509−・
オア回路。 402     F〕 4/q       4 第11図 第12図 牟!3図 1 iol trl t21f:31 t41 tsl
 T61 tql f:Bl第14図 1 f:o ’ tf l−!、2’ t3 ’ t4
 l ′t5 ” 1.6 ’ t7 l tB l第
7.5図 −Lo  tlt2t3  t41−.5  tt第1
6凱

Claims (1)

  1. 【特許請求の範囲】 プログラム上の論理空間から実空間へのアドレス変換機
    能を有する情報処理装置における命令先取り装置であっ
    て、 分岐命令の笑アドレスを指定する情報と該分岐命令に対
    応する分岐先実アドレスを含む分岐情報とを対にして複
    数対記憶する分岐ヒストリテーブル手段と、 命令先取りにおいて先取りされるべき分岐命令の実アド
    レスを指定する情報が前記ヒストリテーブル手段に登録
    されているか否かを調べ、該分岐命令の登録の判明に応
    答して前記分岐ヒストリテーブル手段から対応する2分
    岐情報を読み出す手段と、 該分岐情報に従って命令の先取り動作を実施する命令先
    取り 両手段とを備えたことを特徴とする。実アドレス
    分岐ヒストリテーブルを有する命令先取り装置t。
JP20155882A 1982-11-17 1982-11-17 実アドレス分岐ヒストリテ−ブルを有する命令先取り装置 Pending JPS5991553A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP20155882A JPS5991553A (ja) 1982-11-17 1982-11-17 実アドレス分岐ヒストリテ−ブルを有する命令先取り装置
EP83111451A EP0109655B1 (en) 1982-11-17 1983-11-15 Instruction prefetching device with prediction of a branch destination address
DE8383111451T DE3382350D1 (de) 1982-11-17 1983-11-15 Anordnung zum vorabholen von befehlen mit vorhersage einer verzweigungszieladresse.
US07/286,021 US4984154A (en) 1982-11-17 1988-12-19 Instruction prefetching device with prediction of a branch destination address

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20155882A JPS5991553A (ja) 1982-11-17 1982-11-17 実アドレス分岐ヒストリテ−ブルを有する命令先取り装置

Publications (1)

Publication Number Publication Date
JPS5991553A true JPS5991553A (ja) 1984-05-26

Family

ID=16443038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20155882A Pending JPS5991553A (ja) 1982-11-17 1982-11-17 実アドレス分岐ヒストリテ−ブルを有する命令先取り装置

Country Status (1)

Country Link
JP (1) JPS5991553A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6254341A (ja) * 1985-09-03 1987-03-10 Nec Corp 命令先取り装置
JPH0384630A (ja) * 1989-08-28 1991-04-10 Nec Corp マイクロプロセッサ

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5022384A (ja) * 1973-06-29 1975-03-10
JPS5599655A (en) * 1979-01-26 1980-07-29 Tetsunori Nishimoto Branch control unit
JPS5759253A (en) * 1980-09-29 1982-04-09 Nec Corp Branch instruction prefetch system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5022384A (ja) * 1973-06-29 1975-03-10
JPS5599655A (en) * 1979-01-26 1980-07-29 Tetsunori Nishimoto Branch control unit
JPS5759253A (en) * 1980-09-29 1982-04-09 Nec Corp Branch instruction prefetch system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6254341A (ja) * 1985-09-03 1987-03-10 Nec Corp 命令先取り装置
JPH0384630A (ja) * 1989-08-28 1991-04-10 Nec Corp マイクロプロセッサ

Similar Documents

Publication Publication Date Title
FI80532B (fi) Centralenhet foer databehandlingssystem.
EP0157125B1 (en) Instruction prefetching device with prediction of a branch destination for each branch count instruction
US5276882A (en) Subroutine return through branch history table
US4594659A (en) Method and apparatus for prefetching instructions for a central execution pipeline unit
US5513330A (en) Apparatus for superscalar instruction predecoding using cached instruction lengths
KR100333470B1 (ko) 세트 예측을 사용하여 세트 연상 캐시에서 대기 시간을감소시키기 위한 방법 및 장치
US5809294A (en) Parallel processing unit which processes branch instructions without decreased performance when a branch is taken
US4477872A (en) Decode history table for conditional branch instructions
JP3182740B2 (ja) 単一クロック・サイクルに非連続命令を取り出すための方法およびシステム。
JPS62106545A (ja) 分岐命令の結果予測装置
WO1995016954A1 (fr) Circuit de traitement d'instructions dans un systeme informatique
JP2017027149A (ja) 半導体装置
JPH1040104A (ja) 分岐命令の結果予測装置及び方法
KR930003124B1 (ko) 파이프라인방식의 분기명령제어장치
US6920549B1 (en) Branch history information writing delay using counter to avoid conflict with instruction fetching
JP3725547B2 (ja) 限定ラン分岐予測
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
US7603545B2 (en) Instruction control method and processor to process instructions by out-of-order processing using delay instructions for branching
JPS5991553A (ja) 実アドレス分岐ヒストリテ−ブルを有する命令先取り装置
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JPS5991552A (ja) セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置
JPH046983B2 (ja)
JPH07200406A (ja) キャッシュシステム
JP2542565B2 (ja) 分岐予測制御方式
JPS60175148A (ja) 命令先取り装置