JPS5991552A - セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置 - Google Patents

セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置

Info

Publication number
JPS5991552A
JPS5991552A JP57201557A JP20155782A JPS5991552A JP S5991552 A JPS5991552 A JP S5991552A JP 57201557 A JP57201557 A JP 57201557A JP 20155782 A JP20155782 A JP 20155782A JP S5991552 A JPS5991552 A JP S5991552A
Authority
JP
Japan
Prior art keywords
instruction
branch
address
circuit
prediction
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
JP57201557A
Other languages
English (en)
Other versions
JPS6310451B2 (ja
Inventor
Toshiteru Shibuya
渋谷 俊輝
Shuichi Hanatani
花谷 修一
Masanobu Akagi
赤木 正信
Koemon Nigo
仁後 公衛門
Ritsuo Sugaya
菅谷 律雄
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 JP57201557A priority Critical patent/JPS5991552A/ja
Priority to EP83111451A priority patent/EP0109655B1/en
Priority to DE8383111451T priority patent/DE3382350D1/de
Publication of JPS5991552A publication Critical patent/JPS5991552A/ja
Publication of JPS6310451B2 publication Critical patent/JPS6310451B2/ja
Priority to US07/286,021 priority patent/US4984154A/en
Granted 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 or 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 or 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個の分岐命令を含む命令群が記憶装置に命
令シーケンスの形で格納されているデータ処理システム
においては、このような命令シーケンスの実行は1次の
ように行なわれる。
まず、前記記憶装置の分岐元アドレスに分岐命令が格納
される。次に、この分岐命令に引き続いて実行される命
令が先取りされる。このあと、分岐命令が実行され、こ
の実行結果によシ次に実行される命令が明らかになる。
このようなシステムは米国特許4,2CQ927号に提
案されている。しかし、このシステムでは、分岐命令先
取シ制御において実行結果の判別時まで命令先取り制御
を停止させると、処理の迅速化が妨げられる。
この欠点の除去のため、分岐命令の実行結果を予め予測
しこの予測に従って命令先取シな行なう方式が提案され
ている。この予測が正しく行なわれたときには、データ
処理システムは処理時間の少ない遅れで稼動する。例え
ば、そのような従来の予測方式としては次の3つの方式
がある。第1の予測方式では、全ての分岐命令の分岐先
方向が成功側または不成功側のいずれか一方のみに予測
されている。
他の1つの予測方式では、過去の事実に基づいて分岐先
方向を予測する。すなわち、同じ分岐命令の過去の実行
結果において分岐先がすでに明らかにされているという
事実を用いてこの結果に基づいて予測を行なうことによ
り予測的中率を高めている。このような予測方式の代表
例が特開昭57−76638号公報に示されている。
さらにもう1つの予測方式では、分岐命令に対応して分
岐の方向を予測する分岐指示フラグを多数用意し分岐命
令の発生に応答してこれら分岐指示フラグを参照するこ
とにより分岐先を予測している。この例の詳細は特開昭
53−74857号公報を参照できる。しかし、上述の
3つのいずれの予測方式においても分岐命令の読出し、
解読が必要不可欠であシ、予測連中にもかかわらずこれ
らの読出しおよび解読動作分だけ処理が遅れるという欠
点がある。
この欠点を除去する予測方式が特開昭57−59253
号公報に示されている。この方式では主記憶装置の命令
部の写しである命令キャッシュメモリのブロックに対応
して該ブロック中に含まれる分岐命令の分岐先アドレス
を、該ブロックの次にフェッチされるべきブロックのア
ドレスとして記憶手段に保持している。命令先取り動作
において、命令キャッジ−メモリへのアクセスと同時に
前記記憶手段をアクセスして前記分岐先アドレスを読出
し、読み出された分岐先アドレスにより先取シすべき命
令のアドレスを決定している点において、この方式は上
述の従来の3つの予測方式と異なシ処理の迅速化に有効
である。しかし、この方式では、命令キャッジ−メモリ
のブロック対応で予測するため、該ブロックに分岐命令
が複数個存在するときには、そのそれぞれの分岐命令に
対応して予測を行なうことができない。この結果、精度
の粗い予測的中率しか得られないという欠点がある。
発明の目的 本発明の目的は上述の欠点を除去するようにしたセット
アンシアティプ型分岐ヒストリテーブルを有する命令先
取シ装置を提供することにある。
発明の構成 本発明のセットアンシアティブ型分岐ヒストリテーブル
を有する命令先取装置は、分岐命令のアドレスの一部を
保持するディレクトリ記憶部と、前記保持されたアドレ
スに対応して、前記保持されたアドレスの分岐命令の分
岐先アドレスを指定する情報を含む分岐情報が格納され
るように構成されたデータ記憶部とを含む、セットアソ
シアティブ型メモリで構成された分岐ヒストリテーブル
手段と、 命令先取p動作の際に、該命令先取動作において、先取
シされるべき分岐命令のアドレスを指定する情報が前記
分岐ヒストリテーブル手段に登録きれているか否かを調
べる点検手段と、該点検手段によシ前記分岐ヒストリテ
ーブル手段に、前記先取シされるべき分岐命令のアドレ
スを指定する情報が登録されていると判明したときに、
該分岐ヒストリテーブル手段から前記先取シされるべき
分岐命令に対応する分岐情報を読出し、該分岐情報に従
い次の命令先取り動作を開始するように制御する命令先
取り制御手段とを備えている。
発明の原理と作用 本発明の特徴は分岐命令の実行における分岐方向に加え
て分岐先アドレスがその同じ分岐命令の過去の結果の把
握により比較的高い的中率で予測可能であるという事実
に基づいて装置が動作することにある。
発明の実施例 次に、本発明の一実施例を図面を参照して詳細に説明す
る。第1図を参照すると、本発明の一実施例は、命令ア
ドレス生成回路401、命令アドレス変換回路402、
命令解読回路4o3、オペランドアドレス生成回路40
4 オペランドアドレス変換回路405、オペランド記
憶回路を有するオペランド読出し回路4o6、命令実行
回路407、命令記憶回路408、命令バッファ409
、分岐ヒストリテーブル(BHT)410.命令アドレ
スレジスタ411、命令アドレス加算回路412分岐情
報バッファ413、命令整列回路414、分岐情報切換
回路415、分岐情報レジスタ416゜417.418
.および419、予測確認回路42o1アドレス生成回
路421、選択回路422、レジスタ423、命令先取
シ制御回路424、およびフリップ70ツブ425から
構成されている。
命令記憶回路408およびオペランド読出し回路406
内のオペランド記憶回路はともに主記憶装置そのもので
あってもよく、さらに命令記憶回路408が主記憶装置
の命令部の一部の写しである命令キャッジ−メモ1ハ 
前記オペランド記憶回路が主記憶装置のオペランド部の
一部の写しであるオペランドキャッジ−メモリとして構
成されうる。
本発明は、前述の命令の処理単位に対応した装置構成を
必ずしも有する必要はなく、例えば命令アドレス生成回
路401とオペランドアドレス生成回路404、命令ア
ドレス変換回路402とヤオペランドアドレス変換回路
405、命令記憶回路408とヨオベランド読出し回路
406内の記憶回路が共用されたコンビーータシステム
においても適用され得る。前記分岐ヒストリチー プル
(BHT) 410は分岐命令のアドレスを指定する情
報と該分岐命令の実行の予測としての分岐否フラグと分
岐先アドレスを第3図に示すように対にして記憶してい
る。前記命令記憶回路408に対する前記命令アドレス
レジスタ(IAR)411は、命令読出しのリクエスト
アドレスヲ保持して命令の読出し動作を実行する。さら
に前記命令アドレスレジスタ411(IAR)は、分岐
ヒストリテーブル410(B)(T)および命令アドレ
ス加算回路412に、信号線101を介して接続されて
いる。前記レジスタ411の内容は該分岐ヒストリテー
ブル410 (BAT )を索引し、読出されるべき命
令のアドレスがそれに登録されているか否かを示す信号
を信号線106に出力する。登録されていれば、対応す
る分岐先アドレレスが信号線105に読出される。登録
されていなければ、前記命令アドレス加算回路412に
よシ、後続の命令語の命令先取シのだめのアドレスが生
成される。前記命令アドレス加算回路412は 1回の
リクエストで読出される命令語を8Byteと仮定した
とき単に“IAR+8”を出力107融成する回路であ
る。前記命令バッファ409は、命令記憶回路408か
ら読出された3Byteの先取シ命令語を蓄積し、命令
処理部への命令の供給における待行列(QLlef)を
形成する。前記命令整列回路414は、命令バッファ4
09が空のとき信号線102を介して、命令記憶回路4
08から読出される8Byteの命令語に応答して前記
命令バッファ409が空でないとき、信号線103を介
して前記命令バッファに貯えられる8Byteの命令語
に応答して命令を抽出して信号線104を介して命令解
読回路403に命令を供給する回路である。前記分岐情
報バッファ413は、前記命令バッファ409に格納さ
れる命令語に対応して用意されており、その命令語中に
分岐成功と予測された分岐命令が存在すれば、第7図に
示す該分岐命令の分岐情報を格納する回路であり、分岐
命令のアドレスは信号線101を介して、また、分岐情
報としての分岐先アドレスおよびVビットは、分岐ヒス
トリテーブル410(BHT)から信号線105を介し
てそれぞれセットされる。前記分岐情報切替回路415
は、れる前記分岐情報をそれぞれ出力する。前記レジス
タ416,417、および418はそれぞれ分岐命令の
命令解読、命令アドレス生成、アドレス変換の各処理ス
テージに対応し、その分岐情報を保持する。前記分岐情
報レジスタ419はその分岐先アドレス部を該分岐命令
の実行によって生成される実際の分岐先アドレスに置き
換えて保持するレジスタである。前記予測確認回路42
0は分岐命令の実行によって生成される実際の分岐命令
の生成結果と、前記分岐情報レジスタ418に保持され
る該分岐命令の予測情報との一致をとる回路である。前
記アドレス生成回路421は前記分岐情報レジスタ41
9に保持される分岐命令のアドレスと該分岐命令1牙の
命令語長とを加算し分岐N0GO側の命令の命令アドレ
スを生成する。前記選択回路422は分岐命令の成否信
号線111の状態に応答して該信号線の状態が分岐GO
を示すとき線115を介して与えられる前記分岐情報レ
ジスタ419に保持される分岐先アドレス部の出力を選
択し、前記線の状態が分岐N0GOを示すとき線116
を介して与えられる前記アドレス生成回路421の出力
を選択し、信号線113を介して該選択回路422の出
力をレジスタ423に供給する。前記レジスタ423は
分岐命令の予測が失敗したとき、分岐ヒストリラープル
410 (BHT)を更新するだめのものであシ、さら
に信号線117を介して命令アドレスレジスタ411 
(IAR)に命令先取シのだめの新たなアドレスを供給
する。前記命令先取り制御回路424は線106を介し
て分岐ヒストリテーブル410(BHT)から与えられ
る分岐予測信号および予測確認回路から線112を介し
て与えられる予測成否信号に基づいて命令アドレスレジ
スタ411 (IAR)の入力を制御する回路である。
次に前記分岐ヒストリテーブル410(BUT)前記予
測確認回路420および前記命令先取多制御回路424
の詳細なブロック図とタイムチャートを参照しながら、
本実施例の動作を詳細に説明する。
第2図を参照すると、前記分岐ヒストリテーブル410
(EiHT)は、ディレクトリ記憶部501データ記憶
部502、テスト回路503,504,505゜および
506、プライオリティ回路507、レベル選択回路5
08、およびオア回路509を備えている。前記記憶部
501および502は、 1回のリクエストに対して命
令記憶回路408から読出される命令語の単位をブロッ
クの単位とし、セット数m1  レベル数nの記憶部で
ある。
第3図を参照すると、記憶部501には分岐命令の命令
アドレスの一部とその内容が有効か否かを示すVビット
が格納され記憶部502には、分岐先アドレスの実アド
レスが格納されている。
前記Vビットは対応する分岐ヒストリテーブル(BHT
)410のワードの有効性を示すと同時に該分岐命令の
実行の予測としての分岐成否フラグの機能を有する。
この分岐ヒストリテーブル(BHT)410への索引は
以下のようなセットアソシアティブ法によって行われる
第5図に示される前記テスト回路503,504505
、および506はテーブル410の各レベルに対応して
命令アドレスレジスタ411(IAR)に保持されるリ
クエストアドレスが各レベルのBHT AA4 (tは
レベルに対応するサフィクスを示す)に登録されている
か否かを示す信号を信号線130,131,132,1
33に出力する。
第4図を参照すると前記テスト回路503 、504 
505および506のそれぞれは、一致回路701およ
び大小比較回路702から構成される装置前記比較回路
701では、命令アドレスレジスタ(I1%)411に
保持されるリクエストアドレスの一部IAR(:18−
28)をセットアドレスとして読出された記憶部501
の各レベルの内容とを与開H五前記レジスタ411の内
容IAR(:4−17)とが比較され1等しいアドレス
が存在するが否かを検出する。該一致回路701の出力
にょシ命令アドレスレジスタ(IAR)411に保持さ
れるリクエストアドレスで読出されるべき命令語の8B
yteブロツク中に、すでに分岐ヒストリテーブル(B
HT)410に登録された分岐命令が存在するか否かが
判明する。しかし、リクエストアドレスとそれが読出す
べき分岐命令との対応をとるには上記一致検出のみでは
不十分である。
第5図を参照すると、1回のリクエストで読出される8
Byteの命令語のブロック中に2Byte命令BOO
,A、BOl、BO2の4個の命令が存在する。命令B
C!0.BOI、BO2がともに分岐成功と予測された
分岐命令であるときには各々の分岐命令はともにそのア
ドレスの一部が記憶部(BHT−AA)501に登録さ
れる。このとき他の分岐命令から命令Aに分岐して命令
Aのアドレス<A>が前記命令語のブロックを読出すた
めのリクエストアドレスとして命令アドレスレジスタ(
IAR)411に保持されるときには、分岐ヒストリテ
ーブル(BHT)410から読出されるべき分岐命令の
情報は命令の実行の経路から、分岐命令BC1の情報で
なければならない。
従って、前記レジスタ(IAR)411に保持されるリ
クエストアドレスと前記記憶部(BH’I”−AAi)
501に保持される分岐命令のアドレスとの関係が、上
記の一致条件とともに次の関係が成立するとき対応する
レベルのBHT−HITi信号が生成される。この信号
は線130−133を介して第3回路509に与えられ
、該BHT−HITi信号のオア信号が線106を介し
て出力され分岐予測信号(BHT−HIT信号)となる
BHT−HIT i =  (I皿(: 4−17)=
BHT−AAi (:4−17 ) )凸(1鉦(:2
9,30 )窃府−益i(:29,30))凸BHT−
AAi (V) 再び第4図を参照すると、前記大小比較回路は、この条
件を実現する回路である。さらに、前記信号BHT−H
ITiの条件が2ヶ以上のレベルにおいて成立したとき
記憶部501の対応するレベル(BHT−AAi )に
保持される分岐命令のアドレスの8Byteブロツク内
アドレスBHT−AAi(:29,30)の値の最きも
小さいレベルが選択される必要がある。
再び第5図を参照すると、命令BOI  およびBO2
の分岐命令関係情報が格納される分岐ヒストリテーブル
410のレベルで、前記信号BHT−HIT i条件が
共に成立する。このとき命令の実行の経路から命令BO
Iに対するレベルが選択される必要がある。前記プライ
オリティ回路507は、前記信号BHT−HITiの2
ヶ以上の成立に対するものであり、この出力によシ記憶
部BHT−DA502のセットアドレスIAR(:18
−28)で示されるエントリの分岐先アドレスがレベル
選択回路508を介して読出される。
第6図を参照すると、前記プライオリティ回路507は
アンド回路群601−604およびオア回路群605−
608から構成されている。前記アンド回路群601−
604はn+1個並列に配置されている。前記第2図に
おけるレベル選択回路508の選択信号は第6図におけ
る信号■o、■1゜V2.V3により以下のように与え
られる。
VOのとき    VOLO+■0”1 + ””””
”” + voL、。
Vo・VtノトキVII’02VIL1+””・・””
”+VIIaVo・V?v2(7)トキV2LO,V2
L1.−・−・・−・−−−−・、V2I41VO°■
1・v2°VaノトキV3IJOIV3L1+ −−+
 VaLn以上のようにして、第2図におけるレベル選
択回路508から読出された分岐情報は第1図の命令記
憶回路408から読出される命令と、対応づけることが
可能である。
第9図には、命令記憶回路408における命令と分岐ヒ
ストリテーブル(BHT)410における分岐情報の上
記対応関係が示されている。命令の実行順序が命令Ao
分岐命令BCo、B□、BCl、B2゜B3、BO2、
B3、BO2、C11C2・・・・・・・・・と予測さ
れた場合である。なお、〈A〉は人命令のアドレスを、
BOjは分岐命令をそれぞれ示す。
第10図を参照すると、前記第9図に示した分岐ヒスト
リテーブルBHT410による命令先取り動作は次のよ
うにされる。リクエストアドレスの命令アドレスレジス
タ411のセットに応答して命令記憶回路408から命
令語が読出され、これと同時にテーブルBHT410が
索引される。
信号線106を介してBHT−1−IIT信号が出力さ
れると記憶部BHT−DA502の分岐先アドレス〈B
1〉がアドレスレジスタ411にセットされ、命令先取
りが行われる。前記信号線106を介してBHT−HI
 T信号が出力されないときには、命だアドレスが出力
され、次の命令先取シが逐次性われる。
以上の命令の先取シに従えば、命令記憶回路408から
読出される命令語は、テーブルBHT410の内容によ
る予測に従って順次読出され、命令バッファ409には
予測された命令の実行順に格納することが可能である。
このとき、たとえ信号BHT−HITが出力されても、
分岐予測方向と反対側の命令先取シ動作を一部行わせし
めた後に分岐予測方向の命令先取シ動作を行ってもよい
以上のようにして命令先取シされた命令が分岐命令で第
1図の命令整列回路414によバ命令解読回路403に
導かれたとき同時に該分岐命令に対応する分岐情報が最
初の分岐情報レジスタ416(QR・0)にセットされ
る。
以降前記分岐命令の進行に伴い、前記命令解読、アドレ
ス変換に対応して前記分岐情報が第2および第3の分岐
情報レジスタ417(QRl)および418(CaB6
)に転送される。そして、前記分岐命令の実行によって
生成される実際の分岐命令の生成結果と前記分岐情報レ
ジスタ418(QR2)に保持される該分岐命令の予測
情報との一致が予測確認回路420によりチェックされ
る。
第8図を参照すると、前記予測確認回路・12゜は比較
回路801、フリップ70ツブ802および803、ア
ンド回路804−806、真偽回路807および808
、およびオア回路809から構成されている。前記比較
回路801には、分岐命令の実行によυ生成された分岐
先アドレスの実アドレスが命令アドレス変換回路402
から信号線109を介して与えられるとともに、分岐情
報レジスタ418(QR2)から予測された分岐先が線
108を介して与えられる。前記比較回路801では両
者の一致、不一致が判定される。判定結果と前記レジス
タ418から線108を介して与えられるVピットがア
ンド回路806に与えられる。 論理結果により分岐G
Oと予測されたときこの事実を示す信号がフリ、プフロ
ップ802にセットされる。このフリップフロップ80
2の出力がfl”で実際の分岐命令を実行した結果が分
岐N0GOであればアンド回路805から予測GO失敗
信号123が生成される。前記フリップフロップ801
の出力が°1”で、分岐命令の実行結果がGOであれば
アンド回路808から予測N0GO失敗信号125が生
成される。さらに該信号124と前記予測Go失敗信号
123との論理和がオア回路809から予測失敗信号1
12として生成される。
第1図および第11図を参照すると、分岐情報レジスタ
419(QR3)の分岐先アドレス部には、前記命令ア
ドレス変換回路402から新たに生成される分岐先アド
レスがセットされる。また、前記分岐情報レジスタ41
9(Qft3)の分岐命令BC1のアドレス部の内容と
該分岐命令BC1自身の命令語長部の内容とがアドレス
生成回路421により加算され分岐N0GO9tlの命
令の命令アドレスが生成される。
そして分岐命令BC1の実際の実行によシ、分岐GOな
らば前記分岐情報レジスタ419(Ql−B3)から線
115を介して与えられる分岐先アドレス部の出力〈D
l〉が分岐N0GOならば線116を介して与えられる
前記アドレス生成回路421の出力〈B2〉が選択回路
422によシ選択される。前記分岐命令BOIの予測失
敗信号112が予測確認回路421から該選択回路42
2の出力〈Dl〉が線113を介してレジスタ423(
WR)にセットされる。
一方、分岐情報レジスタ419(QIR3)の分岐命令
のアドレス<BOI>は信号線114を介して命令アド
レスレジスタ411(IAR)にセットされる。このア
ドレスは該分岐命令に対応する分岐ヒストリテーブル4
10(LIHT)の更新のため線101を介して該テー
ブル410にライトアドレスとして供給きれる。前記予
測失敗信号112の出力かフリップフロップ425に与
えられ、この出力が指示パルスとして線119を介して
テーブル401に与えられる。この出力に応答して分岐
命令の次の命令先取シ時のための分岐予測情報の更新が
行なわれる。この更新は、本芙施例では予測N0GOの
失敗のとき、前記レジスタ423(WR)に保持される
新たな分岐先アドレスで行なわれ、予測Go失敗のとき
はvビットをリセットするように行われるが分岐予測情
報の更新に寂けるアルゴリズムを用いて他の方法により
行なって追上つかえない。予測失敗しだとき予測側に後
続する命令の動作はすべてキャンセルされ、前記レジス
タ423(WR)に保持される新たなリクエストアドレ
スが分岐ヒストリテーブル410(BHT)の更新後に
命令アドレスレジスタ411 (IAR)に供給され改
めて命令の取出しが開始される。
思 第1υ目を参照すると、前記命令先取り制御回路424
はフリップフロップ1201、真偽回路1202−12
04およびアンド回路1205から構成されている。前
記フリップフロップ1201は前記予測失敗信号112
を1マシンサイクル保持するだめの7リツプフロツプで
ある。この回路424の出力はアドレスレジスタ411
の前段にあるセレクタの選択指示信号となる。この選択
指示信号は、前記命令アドレス加算回路412の出力、
前記レジスタ423の出力、前記テーブル410の出力
、および分岐情報レジスタ419の出力のうちのどれを
選択するかを指示するだめの信号でめる。なお、この命
令先取り制御回路424の制御により分岐予測が的中し
たときには後述する第16図の命令処理が行なわれ、分
岐予測が失敗したときには後述する第17図の命令処理
が行なわれる。前記命令アドレス加算回路11は線10
6を介してBHT−1−LIT信号が出力されないとき
分岐N0GO側の命令の先取りを行うだめのアドレス生
成を行う。このときアドレスは実アドレスで加算が行わ
れるために、例えば、ページングを行うコンピュータシ
ステムにおいて前記アドレス加算がページ境界を越えた
場合アドレス変換を改めてやり厘す必要が生じる。この
ために、前記命令アドレス加算回路11にページ境界越
え検出回路を設は該検出回路によυページ境界越えが生
じた場合、信号線Lllによシ命令アドレス生成回路1
を起動し、命令先取シ動作を改めて命令アドレス生成回
路(IA)401および命令アドレス変換回路(IT)
402から行うように制御すればよい。
ここで、問題となるのはあらたに分岐ヒストリテーブル
BH’f”410に前記命令アドレス情報を登録すると
き既存のどの部分に格納された命令アドレス情報を追い
出すかである。
この方法としては使われた順序、すなわち最も古く使わ
れたものから順に追い出す法LRU(Least &c
ontly Used )情報が入った順序すなわち、
最も古く入ったものから順に追い出す方法FIFO(F
irst In First Out )等があるがど
ちらを用いてもよい。
発明の効果 次に本発明の効果を第13図から第17図を参照しなが
ら詳細に説明する。
第13図を参照すると、命令の処理は一般的に次の8つ
の処理単位に分けられる。
(1)IAステージ:実行すべき命令の命令アドレス(
論理アドレス)が生成される。
(2)ITステージ:生成された命令アドレスのアドレ
ス変換が行われる。
(3)l(jステージ:変換された命令の芙アドレスで
記憶装置から命令が読出される。
(4)If)ステージ:読出された命令が解読される。
(5)  OAステージ:解読された命令のオペランド
アドレス(論理アドレス)が生成される。
(6)OTステージ:生成されたオペランドアドレスの
アドレス変換が行なわれる。
(7)00ステージ:変換されたオペランドの実アドレ
スで記憶装置からオペランドが読出される。
(8)EXステージ:命伶が実行される。
上述のITステージおよびOTステージのアドレス変換
において、アドレス変換バッファを設は必要な変換テー
ブルが該アドレス変換バッファに存在すれば上記アドレ
ス変換処理は高速に実行し得る。また、上述のICステ
ージおよびOCステージの命令およびオペランドの読出
し動作において主記憶装置のデータの一部の写しを保持
するキャッジ−メモリを設は必要な命令およびオペラン
ドが該キャッジ−メモリに存在すれはICステージおよ
びOCステージの処理は高速に行いうる。情報処理シス
テムは上述の各処理単位に対応したリリースを必ずしも
有する必要はない。しかし、説明の簡単のためにここで
は各処理単位にその機能を果す回路かめうものとする。
上述のIT 、 OTおよび10.00の各ステージの
高速処理が可能なとキ複数の命令の処理の流れを無駄な
く実行する8段のパイプライン制御が可能である。
このときの分岐命令を含む命令の処理の流nを第14図
および第15図を参照しながら説明する。
第14図は分岐命令の命令先取りにお(八で、前述のす
べての分岐’oo’であると予測した場合の命令の処理
の流れを示す。すなわち、命令A−Qは分岐命令BOの
分岐条件を決定する命令で該分岐条件は命令AQの実行
給茶、すなわち、時刻t7において決定される。分岐命
令BOは時刻t4において解読されると命令アドレスの
生成回路を用いて、分岐先命令B1のアドレスを生成し
、以後B1命令を先取りするように動作する。
時刻t2.t3.およびt4には分岐N0GO側の後 
  −続命令AI、A2.およびA3の命令先取シのた
めのアドレス生成が開始される。時刻t6およびt7に
は予測動作としての分岐GO側の後続命令B2およびB
3の命令先取シ動作が開始される。時刻t7において分
岐条件の判定結果により、時刻t8以降は正しい命令の
処理の流れに従って処理が継続される。
この場合、分岐命令の出現によるパイプラインのロスサ
イクルは 予測的中(分岐GO) のとき 3サイクル予測失敗(
分岐N0GO)のとき 3サイクルである。
分岐GO率γ 予測的中率αとしたとき、この場合γ=
αでめり、予測的中率は5分5分である。従ってr−α
=05であシ1分岐命令当シ平均的なロスサイクルは 3×γ+3×(1−γ)=3サイクル である。
一方第15図は分岐命令の命令先取シにおいて、前述の
同じ分岐命令の過去の結果に基づいて予測を行った場合
の命令の処理の流れで示す。
すなわち、分岐命令BCは、時刻t4において解読され
るとともに分岐命令のアドレステーブルを探索しその有
無によるか、もしくは分岐指示フラグの指示の予測によ
ハ分岐Go側の命令B1を先取りするか分岐N0GO側
の命令A1を先取りするかを決定する。前回と同様に時
刻t2.t3およびt4には分岐N0GO側の後続命令
へ1.A2.およびA3の命令先取シのだめのアドレス
生成が開始される。時刻t6およびt7には予測による
命令先取りの後続命令B1およびB2もしくはA4およ
びA5の命令のアドレス生成が開始される。時刻t7に
おいて分岐条件の判定結果により時刻t8以降は正しい
命令の処理の流れに従って処理が継続される。この場合
、分岐命令の出現によるパイプラインのロスサイクルは 分岐GOと予測して失敗したとき  3サイクル分岐N
0(K)と予測して失敗したとき  6サイクルである
。従って、分岐Go率γ=0.5  予測的中率α=0
8と仮定したとき1分岐命令当シの平均的なロスサイク
ルは 3・γ・α十〇・(1−γ)・α+3γ(1−α)+6
(1−γ)(1−α)=21サイクル を得る。
従って、この従来の発明は同じ分岐命令の過去の結果に
基づいて予測を行った場合、高い予測的中率を得るとい
う原理を用いることにより、常に分岐GOと予測する第
14図に示す処理に比べ幾分の改良がみられる。しかし
、この改良された発明においても、たとえ予測的中時分
岐GOの場合は依然として3サイクルのロスサイクルを
要することになplこれ以上短縮できない。
従って、分岐命令が生じた場合たとえ予測が的中しても
ロスサイクルを生じることになる。
第16図および第17図は本発明による命令の処理の流
れを示している。
本発明における命令の処理単位ICステージは命令を記
憶装置から読出す機能の他に、分岐ヒストリテーブルを
索引し読出される命令のアドレスが該分岐ヒストリテー
ブルに登録されているる否かを検出し、登録されていれ
ば対応する分岐情報を読出し、登録されていなければ後
続命令の命令先取シのだめのアドレスを生成する機能を
有する。
第16図および第17図を参照すると、分岐命令BOの
時刻t1における動作は次のようにして行なわれる。ま
ず、該分岐命令Beが命令キャッジ−メモリから読出さ
れると同時に分岐ヒストリテーブルが索引される。該分
岐命令BOの命令アドレスが登録されていれば対応する
分岐情報が読出される。該分岐情報と分析した結果、分
岐GO側の予測として該分岐情報中に含まれる分岐先ア
ドレスにより分岐先命令B1の命令先取りを開始するか
、もしくは分岐N 0()(J側の予測として分岐N0
GO側の命令A1の命令アドレスを生成して命令A1の
先取シを開始するかが決定される。以降時刻t5jでは
前記分岐命令BCの予測期間であシ予測側の後続命令が
先取シされ時刻t5において分岐条件が決定される。予
測的中時には第16図に示すようにパイプラインの流れ
は乱れを生することなく処理が継続される。予測失敗時
には第17図に示すようにt6時刻で前記分岐ヒストリ
テーブルの更新を行った後に正しい命令の流れから命令
の取出しを行うように制御される。この場合、分岐命令
の出現によるパイプラインのロスサイクルは 予測が的中したとき   Oサイクル 予測が失敗したとき   5サイクル である。予測的中率αはこの場合分岐方向だけでなく分
岐先アドレスをも予測することから分岐方向だけの予測
に比べ若干低くなるが、その割合は微々たるものでるる
。従って、予測的中率α=08として1分岐命令当りの
平均的なロスサイクルは 0・α+5・(1−α)=1サイクル となり従来技術に比べて格段に改良される。
この発明では、分岐命令のアドレスと該分岐命令のアド
レスと該分岐命令の分岐先アドレスを含む分岐情報とを
対にして記憶する分岐ヒストリテーブルを命令先取り時
に索引する。このあとで前記分岐先アドレスで次の命令
先取を行わせしめることによシ、命令の解読を行うこと
なく前記分岐ヒストリテーブルの記述に従って命令語を
先取シすることができる。このことによシ該分岐ヒスト
リテーブルの記述が正しい場合に限シ命令バッファには
、命令の実行の経路に従った命令の待行列を形成せしめ
、情報処理システムのパイプライン制御における分岐命
令の実行ioスサイクルをともなうことなく行なうこと
ができるという効果がある。
さらに本発明では、分岐命令のアドレスと該分岐命令の
分岐先アドレスを指定する情報を含む分岐情報を対にし
て複数対記憶する分岐ヒストリテーブルをセットアソミ
アティプ型メモリで構成することによシ犬容量のメモリ
からなる分岐ビストリテーブルを実現することができる
という効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、第2図は分岐ヒス
トリテーブルの詳細な構成を示す図、第3図は第2図の
記憶部501および601の記憶形式を示す図、第4図
は第2図のテスト回路503−506の詳細な構成を示
す図、第5図は命令語の構成を示す図、第6図は第2図
のプライオリティ回路507の詳細な構成を示す図、第
7図は第」図のレジスタ417−419の格納形式を示
す図、第8図は第1図の予測確認回路420の詳細な構
成を示す図、第9図は第1図の命令記憶回路408にお
ける命令と分岐ヒストリテーブル410における分岐情
報との対応関係を説明するだめの図、第10図は第9図
のテーブル410による命令先取シ動作を説明するだめ
の図、第11図は予測失敗時における命令先取り動作開
始までの動作を説明するための図、第12図は第1図の
命令先取り制御回路の詳細な構成を示す図、第13図は
命令の処理の流れの概要を示す図、第14図および第1
5図は従来の予測方式を用いた命令の処理の流れを示す
図、第16図は本発明において、分岐命令の予測が的中
したときの命令の処理の流れを示す図、および第17図
は本発明に2いて分岐命令の予測が失敗したときの命令
の処理の流れを示す図である。 第1図から第17図において、401・・・命令アドレ
ス生成回路、402・・・命令アドレス変換回路、40
3・・・命令解読回路、404・・・オペランドアドレ
ス生成回路、405・・・オペランドアドレス変換回路
、406・・・オペランド読出し回路、407・・・命
令実行回路、408・・・命令記憶回路、409・・・
命令バッファ、410・・・分岐ヒストリテーブル’(
BHT)、411・・・命令アドレスレジスタ(IAR
)、412・・・命令アドレス加算回路、413・・・
分岐情報バッファ、414・・・命令整列回路、415
・・・分岐情報切換回路、416・・・分岐情報レジス
タ(Qao)、417・・・分岐情報レジスタ(QRt
)、418・・・分岐情報レジスタ(QR2)、419
・・・分岐情報レジスタ(QR3)、420・・・予測
確認回路、421・・・アドレス生成回路、422・・
・選択回路、423・・・レジスタ(VvR)、424
・・・命令先取り制御回路、425・・・フリップフロ
ップ、501.502・・・記憶部、503,504,
505,506・・・テスト回路、507・・・プライ
オリティ回路、508・・・選択回路、509・・・オ
ア回路。 代理人 弁理士  内 原   晋 41 402     口 第1f 図 第12図 第13 l2I) l fol it l l2I ta1tφ1む1t1
呑71t−a+第14図 1folix 乙21t31 t41び1h177It
a1to  tt  t2  /:、3  t4ts 
 tbX″−\ 8/   Af 1i21t311−411−51  を乙’j7’ L
8’「[ ローS 第17 図

Claims (1)

  1. 【特許請求の範囲】 分岐命令のアドレスを指定する情報と、該分岐先アドレ
    スを指定する情報を含む分岐情報とを対にして複数対記
    憶する分岐ヒストリテーブル手段と、 命令先取多動作の際に該命令先取多動作において先取シ
    されるべき分岐命令のアドレスを指定する情報が前記分
    岐ヒストリテーブル手段に登録されているか否かを調べ
    る点検手段と、この点検手段による前記登録の判明に応
    答して該分岐ヒストリテーブル手段から前記先取シされ
    るべき分岐命令に対応する分岐情報を読み出し該分岐情
    報に従い、次の命令先取り動作を開始するように制御す
    る制御手段と、 アドレス空間上のブロックを単位とし、あらかじめ定め
    たセット数およびあらかじめ定めたレベル数を有し、分
    岐命令の命令アドレスの一部を保持するディレクトリ記
    憶手段と、前記ディレクトリ記憶手段の記憶内容に対応
    する分岐情報を格納するデータ記憶手段とを備えたこと
    を特徴とするセットアソシアティブ型分岐ヒストリテー
    ブルを有する命令先取シ装置。
JP57201557A 1982-11-17 1982-11-17 セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置 Granted JPS5991552A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP57201557A JPS5991552A (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
JP57201557A JPS5991552A (ja) 1982-11-17 1982-11-17 セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置

Publications (2)

Publication Number Publication Date
JPS5991552A true JPS5991552A (ja) 1984-05-26
JPS6310451B2 JPS6310451B2 (ja) 1988-03-07

Family

ID=16443018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57201557A Granted JPS5991552A (ja) 1982-11-17 1982-11-17 セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置

Country Status (1)

Country Link
JP (1) JPS5991552A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6324421A (ja) * 1986-07-17 1988-02-01 Nec Corp 情報処理装置
DE4034009A1 (de) * 1989-10-26 1991-05-02 Hitachi Ltd Verfahren zur befehlsabrufsteuerung

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
JPS6324421A (ja) * 1986-07-17 1988-02-01 Nec Corp 情報処理装置
DE4034009A1 (de) * 1989-10-26 1991-05-02 Hitachi Ltd Verfahren zur befehlsabrufsteuerung

Also Published As

Publication number Publication date
JPS6310451B2 (ja) 1988-03-07

Similar Documents

Publication Publication Date Title
US4764861A (en) Instruction fpefetching device with prediction of a branch destination for each branch count instruction
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
EP0109655B1 (en) Instruction prefetching device with prediction of a branch destination address
JP2746549B2 (ja) コンピュータシステム及びその動作方法
US4881170A (en) Instruction prefetch control apparatus
US4477872A (en) Decode history table for conditional branch instructions
JPH0283735A (ja) 命令先取り装置
US5297281A (en) Multiple sequence processor system
KR19990087940A (ko) 단일클럭사이클내에불연속명령을페치하기위한방법및시스템
JPS6125169B2 (ja)
JP3794918B2 (ja) 復帰選択ビットを用いて分岐予測のタイプを分類する分岐予測
KR930003124B1 (ko) 파이프라인방식의 분기명령제어장치
US6920549B1 (en) Branch history information writing delay using counter to avoid conflict with instruction fetching
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
US6532534B1 (en) Information processing apparatus provided with branch history with plurality of designation ways
JPS5991552A (ja) セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置
JPH046983B2 (ja)
JPS6236258B2 (ja)
JPS5991554A (ja) 分岐方向予測を行なう命令先取り装置
JPH0695306B2 (ja) 命令先取り装置
JPH07200406A (ja) キャッシュシステム
JPS60175148A (ja) 命令先取り装置
JP2542565B2 (ja) 分岐予測制御方式
JPS5991553A (ja) 実アドレス分岐ヒストリテ−ブルを有する命令先取り装置