JPS5991554A - 分岐方向予測を行なう命令先取り装置 - Google Patents

分岐方向予測を行なう命令先取り装置

Info

Publication number
JPS5991554A
JPS5991554A JP20155982A JP20155982A JPS5991554A JP S5991554 A JPS5991554 A JP S5991554A JP 20155982 A JP20155982 A JP 20155982A JP 20155982 A JP20155982 A JP 20155982A JP S5991554 A JPS5991554 A JP S5991554A
Authority
JP
Japan
Prior art keywords
branch
instruction
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
JP20155982A
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 JP20155982A priority Critical patent/JPS5991554A/ja
Priority to EP83111451A priority patent/EP0109655B1/en
Priority to DE8383111451T priority patent/DE3382350D1/de
Publication of JPS5991554A publication Critical patent/JPS5991554A/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 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個の分岐命令を含む命令群が記憶装置に命
令シーケンスの形で格納されているデータ処理システム
においては、このような命令シ−ケンスの実行は、次の
ように行なわれる。
まず、前記記憶装置の分岐元アドレスに分岐命令が格納
される。次に、この分岐命令に引き続いて実行される命
令が先取りされる。このあと、分岐命令が実行され、こ
の実行結果によシ次に実行される命令が明らかになる。
このようなシステムは米国特許4.200.927号に
提案されている。しかし、このシステムでは、分岐命令
先取シ制御において実行結果の判別時まで命令先取り制
御を停止させると、処理の迅速化が妨げられる。この点
をの除去のだめ、分岐命令の実行結果を予め予測しこの
予測に従って命令先取りを行なう方式が提案されている
。この予測が正しく行なわれたときには、テータ処理シ
ステムは処理時間の少ない遅れで稼働する。例えば、そ
のような従来の予測方式としては次の3つの方式がある
。第1の予測方式では、全ての分岐命令の分岐先方向が
成功側または不成功側のいずれか一方のみに予測されて
いる。
他の1つの予測方式では、過去の事実に基づいて分岐先
方向を予測する。すなわち、同じ分岐命令の過去の実行
結果において分岐先がすでに明らかにされているという
事実を用いてこの結果に基づいて予測を行なうことによ
シ予測的中率を高めている。このような予測方式の代表
例が特開昭57−76638号公報に示されている。
さらにもう1つの予測方式では、分岐命令に対応して分
岐の方向を予測する分岐指示フラグを多数用意し分岐命
令の発生に応答してこれら分岐指示フラグを参照するこ
とによυ分岐先を予測している、この例の詳細は特開昭
53−74857号公報を参照できる。しかし、上述の
3つのいずれの予読出しおよび解読動作分だけ処理が遅
れるという欠点がある。
この欠点を除去する予測方式が特開昭57−’5925
3号公報に示されている。この方式では、主記憶装置の
命令部の写しである命令キャッジ−メモリのブロックに
対応して該ブロック中に含まれる分岐命令の分岐先アド
レスを、該ブロックの次にエッチされるべきブロックの
アドレスとして記憶手段に保持している。命令先取り動
作において、命令キャッジ−メモリへのアクセスと同時
に前記記憶手段をアクセスして前記分岐先アドレスを読
出し、読み出された分岐先アドレスにより先取りすべき
命令のアドレスを決定している点において、この方式は
上述の従来の3つの予測方式と異なり処理の迅速化に有
効である。しかし、この方式では、命令キャッジ−メモ
リのブロック対応で予測するため、該ブロックに分岐命
令が複数個存在するときにはそのそれぞれの分岐命令に
対応して予測を行なうことができない。この結果、精度
の粗い予測的中率しか得られないという欠点がある。
発明の目的 本発明の目的は上述の欠点を除去するようにした分岐方
向予測を行なう命令先取シ装置を提供することにある。
発明の構成 本発明の装置゛は、分岐命令のアドレスを指定する情報
と、該分岐命令に対応する分岐方向及び分岐先アドレス
を含む分岐情報とを対にして複数対記憶する分岐ヒスト
リテーブル手段を設け、命令先取り動作を行なう際に先
取りされるべき分岐命令命令の登録の判明に応答して対
応する分岐情報を前記分岐ヒストリテーブルから読み出
し、該分岐情報に従い、分岐命令の解読を行なうことな
く命令先取り動作を開始するように制御することにより
予測的中時にはロスサイクルを生じることなく命令供給
を可能とする。はらに、命令実行装置で実行された分岐
命令の分岐方向の結果と、該分岐命令の分岐ヒストリテ
ーブルの分岐方向情報とを比較する該分岐命令の分岐方
向が正しく予測されたことを確認する手段によシ分岐命
令の分岐予測が間違っていると判定された場合は該分岐
命令の正しい後続命令を取り出し実行する手段および分
岐烏合の実行結果で前記分岐ヒストリテーブル中の分岐
情報を更新する手段を備えている。
発明の原理と作用 本発明の特徴は分岐命令の実行における分岐方向に加え
て分岐先アドレスがその同じ分岐命令の過去の結果の把
握によシ比較的高い的中率で予測可能であるという事実
に基づいて装置が動作することにある。
発明の実施例 次に本発明の一実施例を図面を参照して詳細に説明する
。第1図を参照すると、本発明の一実施例は、命令アド
レス生成回路4o1、命令アドレス変換回路402、命
令解読回路4o3、オペランドアドレス生成回路4o4
、オペランドアドレス変換回路405、オペランド記憶
回路を有するオペランド読出し回路4o6、命令実行回
路407、命令記憶回路408、命令バッファ4o9、
分岐ヒストリテーブル(BHT ) 410.命令アド
レスレジスタ411、命令アドレス加算回路412、分
岐情報バッファ413、命令整列回路414、分岐情報
切換回路415、分岐情報レジスタ416.417.4
18、および419、 予測確認回路42o1アドレス
生成回路421、選択回路422、レジスタ423、命
令先取シ制御回路424およびフリップフロップ425
から構成されている。
命令記憶回路408およびオペランド読出し回路406
内のオペランド記憶回路はともに主記憶装置そのもので
あってもよく、さらに命令記憶回路408が主記憶装置
の命令部の一部の写しである命令キャッシュメモリ、前
記オペランド記憶回路が主記憶装置のオペランド部の写
しであるオペランドキャッシュメモリとし、て構成され
うる。
本発明は前述の命令の処理単位に対応した装置構成を必
ずしも有する必要はなく、例えば命令アドレス生成回路
401とオペランドアドレス生成回路404、命令アド
レス変換回路402とオペランドアドレス変換回路40
5、命令記憶回路408とオペランド読出し回路406
内の記憶回粋が共用されたコンビーータシステムにおい
ても適用され得る。前記分岐ヒストリテーブル(BHT
)410は分岐命令のアドレスを指定する情報と該分岐
命令の実行の予測としての分岐成否フラグと分岐先アド
レスを第3図に示すように対にして記憶している。前記
命令記憶回路408に対する前記命令アドレスレジスタ
(IAR)411は、命令読出しのリクエストアドレス
を保持して命令の読出し動作を実行する。さらに前記命
令アドレスレジスタ411(IAR’)は分岐ヒストリ
テーブル41゜(13HT)および命令アドレス加算回
路412に信号線101を介して接続されている。前記
レジスタ411の内容は該分岐ヒストリテーブル410
(DAT’)を索引し、読出されるべき命令のアドレス
がそれに登録されているか否かを示す信号を信号線10
6に出力する。登録されていれば対応する分岐先アドレ
スが信号線105に読出される。
登録されていなければ前記命令アドレス加算回路412
により後続の命令語の命令先取シのだめのアドレスが生
成される。前記命令アドレス加算回路412は1回のリ
クエストで読出される命令語を8Byteと仮定したと
き単に” IAI(、+8 ’″を出力107に生成す
る回路である。前記命令バッファ409は、命令記憶回
路408から読出された8Byteの先取り命令語を蓄
積し命令処理部へのど9 命令の供給における待行列(Que−v=)を形成する
。前記命令整列回路414は、命令バッファ409が空
のとき信号線102を介して命令記憶回路408から読
出される8Byteの命令語に応答して前記命令バッフ
ァ409が空でないとき信号線103を介して前記命令
バッファに貯えられる8Byteの命令語に応答して命
令を抽出して信号線104を介して命令解読回路403
に命令を供給する回路である。前記分岐情報バッフγ4
13は、前記命令バッファ409に格納される命令語に
対応して用意をれており、その命令語中に分岐成功と予
測された分岐命令が存在すれは、第7図に示す該分岐命
令の分岐情報を格納する回路であり、分岐命令のアドレ
スは信号線101を介してまた分岐情報としての分岐先
アドレスおよびVビットハ分岐ヒストリテーブル410
(Bl−IT)から信号線105を介してそれぞれセッ
トされる。前記分岐情報切替回路415は、命令バッフ
ァ409が空のとき16号線]01および105を介し
て与えられる前記分岐情報を、そうでないときは前記分
岐情報バッファ403を介して力えられる前記分岐情報
をそれぞれ出力する。前記レジスタ416.417、お
よび418はそれぞれ分岐命令の命令解読、命令アドレ
ス生成、アドレス変換の各処理ステージに対応し、その
分岐情報を保持する。前記分岐情報レジスタ419はそ
の分岐先アドレス部を該分岐命令の実行によって生成さ
れる実際の分岐先アドレスに置き換えて保持するレジス
タである。前記予測確認回路420は分岐命令の実行に
よって生成される実際の分岐命令の生成結果と前記分岐
情報レジスタ418に保持される該分岐命令の予測情報
との一致をとる回路である。前記アドレス生成回路42
1は前記分岐情報レジスタ4】9に保持される分岐命令
のアドレスと該分岐命令自身の命令語長とを加算し分岐
N0GO側の命令の命令アドレスを生成する。前記選択
回路422は分岐命令の成否信号線111の状態に応答
して該信号線の状態が分岐GOを示すとき線115を介
して与えられる前記分岐情報レジスタ419に保持され
る分岐先アドレス部の出力を選択し、前記線の状態が分
岐N0GOを示すとき&1116を介して与えられる前
記アドレス生成回路421の出力を選択し、信号線11
3を介して該選択回路422の出力をレジスタ423に
供給する。前記レジスタ423は分岐命令の予測が失敗
したとき分岐ヒス) IJテーブル410(Bl(T)
を更新するだめのものであり、はらに信号i!N117
を介して命令アドレスレジスタ411(IAR,)に命
令先取りのだめの新たなアドレスを供給する。前記命令
先取り制御回路424は線106を介して分岐ヒストリ
テーブル410(BIT)から与えられる分岐予測信号
および予測確認回路から線112を介して与えられる予
測成否信号に基づいて命令アドレスレジスタ411(I
AR)の入力を制御する回路である。
次に前記分岐ヒストリテーブル410 (BHT)、前
記予測確認回路420および前記命令先取多制御回路4
24の詳細なブロック図とタイムチャートを参照しなが
ら本実施例の動作を詳細に説明する。
第2図を参照すると、前記分岐ヒストリテーブル410
(BHT)は、ディレクトリ記憶部501、データ記憶
部502、テスト回路503、5041えている。前記
記憶部501および502は、1回のリクエストに対し
て命令記憶回路408から読出される命令語の単位をブ
ロックの単位とし、セント数m、レベル数nの記憶部で
ある。
第3図を参照すると、記憶部501には分岐命令の命令
アドレスの一部とその内容が有効か否かを示す■ビット
が格納され記憶部502には、分岐先アドレスの実アド
レスが格納されている。前記Vビットは対応する分岐ヒ
ストリテーブル(BHT)410のワードの有効性を示
すと同時に該分岐命令の実行の予測としての分岐成否フ
ラグの槻能を有する。この分岐ヒストリテーブル(BH
T)410への索引は以下のようなセットアソシアティ
ブ法によって行われる。
第5図に示される前記テスト回路503.504.50
5、および506はテーブル410の各レベルに対応し
て命令アドレスレジスタ411(IAR)K保持される
リクエストアドレスが各レベルのBHT−AA i (
iはレベルに対応するサフィクスを示す)に登録されて
いるか否かを示す信号を信号線130.131.132
.133に出力する。
第4図を参照すると前記テスト回路503.504.5
05および506のそれぞれは、一致回路701および
大小比較回路702から構成されている。前記比較回路
701では、命令アドレスレジスタ(IAR)411に
保持されるリクエストアドレスの一部IAI((: ]
 8−28 )をセットアドレスとして読出された記憶
部501の各レベルの内容と44fAM七前記レジスタ
411の内容IAR(:4−17)とが比較され、等し
いアドレスが存在するか否かを検出する。該一致回路7
01の出力により命令アドレスレジスタ(IAR)41
1に保持されるリクエストアドレスで読出されるべき命
令語の8Byteプロノク中にすでに分岐ヒストリテー
ブル(Bl(T)410に登録された分岐命令が存在す
るか否かが、判明する。しかしリクエストアドレスとそ
れが読出すべき分岐命令との対応をどるには上記一致検
出のみでは不十分である。
第5図を参照すると、1回のリクエストで読出される8
Byteの命令語のブロック中に2By t e命令B
CO1A、BCI、BC2の4個の命令が存在する。命
令BCO1BCI、BC2がともに分岐成功と予測され
た分岐命令であるときに(は、各々の分岐命令はともに
そのアドレスの一部が記憶部(BHT−AA ) 50
1に登録されるう このとき他の分岐命令から命令Aに
分岐して命令へのアドレス<A>が前記命令語のブロッ
クを読出すためのリクエストアドレスとして蒲令アドレ
スレジスタ(IAR)411に保持されるときりこは、
分岐ヒストリテーブル(BHT)410から読出される
べき分岐命令の情報は島台の実行の経路から分岐命令B
CIの情報でなけれはならない。
従って前記レジスタ(IAR)411に保持されるリク
エストアドレスと前記記憶部(BHT −AA i )
501に保持される分岐命令のアドレスとの関係が上記
の一致条件とともに次の関係が成立すると509に与え
られ、該BHT HITi  信号のオア信号が線10
6を介して出力され分岐予測信号(BHT−HI T信
号)となる。
Bl−IT((ITi−(I皿C417)=BHT−A
Ai C4−17))凸(1皿(:29,30)臼)i
T力蹟i(:29,30))ABHT AAi (V) 再び第4図を参照すると、前記大小比較回路は、この条
件を実現する回路である。さらに前記信号J3HT−H
I T iの条件が2ヶ以上のレベルにおいて成立した
とき記憶部501の対応するレベル(BHT−AA i
 )に保持される分岐命令のアドレス8 By t e
ブロック内アドレスBHT −AA i (: 29.
30 )の値の最#ふも小さいレベルが選択される必要
がある。
再び第5図を参照すると、命令BCIおよび13C2の
分岐命令関係情報が格納される分岐ヒストリテーブル4
10のレベルで前記信号BHT−HITi条件が共に成
立する。このとき命令の実行の経路から命令BC1に対
するレベルが選択きれる必要がある。前記プライオリテ
ィ回路507は、前記信号BH’II” −B I T
 iの2ケ以上の成立に対するものであシ、この出力に
より記憶部BIT−DA502 (7) セントアドレ
スIAR(:18−28)で示されるエントリの分岐先
アドレスがレベル選択回路508を介して読出される。
群605−608から構成されている。前記アンド回路
2!P601−604はn+1個並列に配置されている
前記第2図におけるレベル選択回路508のnケのレベ
ルの選択信号は第6図における信号VO,Vl、V2、
V3により以下のように与えられる。
■0のと@         vow VOL 1−・
−1VQLn■0・■1のとき     VILQVI
LI  −−1VILnVO−Vl、−V2のとき  
 VaLQ V3L1、・・・・・、V2LnVO−V
l −V2 ・V3のとき V3IJI V3LL −
、V3Ln以上のようにして第2図におけるレベル選択
回路508から読出された分岐情報は第1図の命令記憶
回路408から読出される命令と対応づけることが可能
である。
第9図には、命令記憶回路408における命令と分岐ヒ
ストリテーブル(BHT)410における分岐情報の上
記対応関係が示されている。命令の実行順序が命令AO
1分岐命令BCO1B1、Be□゛、B2、B3、BC
2、C5、C2・・・・・・・ と予測された場合であ
る。なお、〈A〉は人命令のアドレスを、BCiは分岐
命令をそれぞれ示す。
第10図を参照すると、前記第9図のに示した分岐ヒス
) IJテーブルBHT410 による命令先取り動作
は次のようにされる。リクエストアドレスの命令アドレ
スレジスタ411のセットに応答して命令記憶回路40
8から命令語が読出され、これと同時にテーブルBHT
410が索引される。□信号線106を介してBHT−
HIT信号が出力される。と記憶部BIT−DA502
の分岐先アドレス<I31>がアドレスレジスタ411
にセットされ、 次の命令先取りが行われる。前記信号
線106を介してBHT(A)が与えられ、「8」加算
されたアドレスが出力され、次の命令先取りが遂次性わ
れる。
以上の命令の先取りに従えば命令記憶回路408から読
出される命令語は、テーブルBH’i”410 の内容
による予測に従って順次読出され、命令バッファ409
には予測された命令の実行順に格納することが可能であ
る。
このときたとえ信号BHT−HIT  が出力されても
分岐予測方向と反対側の命令先取シ動作を一部行わせし
めた後に分岐予測方向の命令先取り動作を行ってもよい
以上のようにして命令先取りされた命令が分岐命令で第
1図の命令整列回路414にょシ、命令解読回路403
に導かれたとき同時に該分岐命令に対応する分岐情報が
最初の分岐情報レジスタ416 (QRo )にセット
される。
以降前記分岐命令の進行に伴い前記命令解読、アドレス
変換に対応して前記分岐情報が第2および第3の分岐情
報レジスタ417(QR,1)  および418(QR
2)に転送される。そして前記分岐命令の実行によって
生成きれる実際の分岐命令の生成結果と前記分岐情報レ
ジスタ418(QR2)に保持される該分岐命令の予測
情報との一致が予測確認回路420によりチェックされ
る。
第8図を参照すると、前記予測確認回路420は比較回
路801、フリップフロップ802および前記比較回路
801には、分岐命令の実行により生成された分岐先ア
ドレスの実アドレスが命令アドレス変換回路402から
信号線109を介して与えられるとともに、分岐情報レ
ジスタ418CQT?、2)から予測された分岐先が線
108を介して与えられる。前記比較回路801では両
者の一致、不一致が判定される。判定結果と前記レジス
タ418 を介l−て与えられるVビットがアンド回路
806  に与えられる。論理積結果により分岐GOと
予測きれたときこの事実を示す信号がフリップフロップ
802にセットされる。このフリップ70ツブ802の
出力が1”で実際の分岐命令を実行した結果が分岐N0
GOであればアンド回路805から予測00失敗信号1
23が生成される。前記フリップフロップ801の出力
がr+ 、 nで分岐命令の実行結果がGOであればア
ンド回路804から予測N0GO路809から予測失敗
信号112として生成される。
第1図および第11図を参照すると、分岐情報レジスタ
419 (QR3)の分岐先アドレス部に(寸前記命令
アドレス変換回路402から新たに生成される分岐先ア
ドレスがセットされる。また前記分岐情報レジスタ41
9 (QR3)の分岐命令BC,のアドレス部の内容と
該分岐命令BC1自身の命令語長部の内容とがアドレス
生成回路421により加算され分岐N0GO側の命令の
命令アドレスが生成される。
そして分岐命令BC1の実際の実行により分岐GOなら
ば前記分岐情報レジスタ419 (QR3)から線11
5を介して与えられる分岐先アドレス部の出力〈D□〉
が分岐N0GOならば線116を介して与えられる前記
アドレス生成回路4210出力〈B2〉が選択回路42
2により選択される。前記分岐命令BC,の予測失敗信
号112が予測確認回路421から発生したとき、該選
択回路422の出力〈Dl〉が線113を介してレジス
タ423(WEL)にセットされる。
一方分岐情報レジスタ419(QR3)の分岐命令のア
ドレス<BC□〉は信号線114を介して命令アドレス
レジスタ411(IAR)にセットされる。このアドレ
スは該分岐命令に対応する分岐ヒス) IJテーブル4
]0(BHT) の更新(7)ためff9101を介し
て該テーブル410にライトアドレスとして供給される
1、前記予測失敗信号112の出力がフリップフラップ
425に与えられ、この出力が指示パルスとして線11
9を介してテーブル401に与えられる。
この出力に応答して分岐命令の次の命令先取り時のだめ
の分岐予測情報の更新が行なわれる。この更新は本実施
例では予測N0CIO失敗のとき前記レジスタ423(
WR)に保持される新だな分岐先アドレスで行なわれ、
予測GO失敗のときは■ピントをリセットするように行
われるが分岐予測情報の更新におけるアルゴリズムを用
いて他の方法によシ行なって差しつかえない。予測失敗
したとき予測側に後続する命令の動作はすべてキャンセ
ルされ、前記レジスタ423(WR)に保持される新だ
なリクエストアドレスが分岐ヒストリテーブル410(
BHT)の更新後に命令アドレスレジスタ411(IA
几)に供給され改めて命令の取出しが開始される。
第12図を参照すると、前記命令先取多制御回路424
はフリップフロップ1201.真偽回路12o2−12
04およびアンド回路12o5がら構成されている。前
記フリップフロップ12o1は前記予測失敗信号112
を1マシンブイクル保持するためのフリップフロップで
ある。この回路424の出力はアドレスレジスタ411
の前段にあるセレクタの選択指示信号となる。この選択
指示信号は、前記命令アドレス加算回路412の出力、
前記レジスタ423の出力、前記テーブル410の出力
、および分岐情報レジスタ419の出力のうちのどれを
選択するかを指示するだめの信号である。なお、この命
令先取り制御回路42,1の制御により分岐予測が的中
したときには後述する第16図の命令処理が行なわれ、
分岐予測が失敗したときには後述する第17図の命令処
理が行なわれる。前記アドレス加算回路11は線106
を介してBHT−HIT信号が出力されないとき分岐N
0GO側の命令の先取りを行うだめのアドレス生成を行
う。このときアドレスは実アドレスで加算が行われるだ
めに、例えば、ページングを行うコンピュータシステ1
1において前記アドレス加算がぺ〜ジ境界を越えた場合
アドレス変換を改めてやり直す必要が生じる。このため
に前記命令アドレス加算回路11にページ境界越え検出
回路を設け、該検出回路によりページ境界越えが生じた
場合、信号線Lllにより、命令アドレス生成回路1を
起動し、命令先取り動作を改めて命令アドレス生成回路
(IA)401及び命令アドレス変換回路(IT)40
2から行うように制御すればよい。
ここで問題となるのは、あらたに分岐ヒストリテーブル
BI(T41Qに前記命令アドレス情報を登録するとき
既存のどの部分に格納された命令アドレス情報を追い出
すかである。
この方法としては使われた順序、すなわち最も古く使わ
れたものから順に追い出す法LRU(Least Re
ccntly Used)情報が入った順序、すなわち
最も古く入ったものから順に追い出す方法FIFO(F
irst In First 0ui)等があるが、ど
ちらを用いてもよい。
発明の効果 次に本発明の効果を第13図から第17図を参照しなが
ら詳細に説明する。
第13図を参照すると、命令の処理は一般的に次の8つ
の処理単位に分けられる。
(1)  IAステージ:実行すべき命令の命令アドレ
ス(論理アドレス)が生 成される。
(2)  ITステージ:生成された命令アドレスのア
ドレス変換が行われる。
(3)  ICステージ:変換された命令の実アドレス
で記憶装置から命令が読 出される。
(4)  IDステージ:読出された命令が解読される
(5)OAステージ:解読された命令のオペランドアト
lメス(論理アドレス) が生成される。
(6)  OAステージ:生成されたオペランドアドレ
スのアドレス変換が行な われる。
(7)QCステージ;変換きれたオペランドの実アドレ
スで記憶装置からオ ペランドが読出される。
(8)  EXステージ:命令が実行される。
上述のITステージおよびOTステージのアドレス変換
においてアドレス変換バッファを設け、必要な変換テー
ブルが該アドレス変換ノ々ソファに存在すれば上記アド
レス変換処理は高速に実行し得る。また、上述のICス
テージおよびQCスデージの命令およびオペランドの読
出し動作において主記憶装置のデータの一部の写しを保
持するキャッジ−メモリを設け、必要な命令およびオペ
ランドが該キャッシュメモリに存在すればICステージ
およびOCステージの処理は高速に行いうる。
説明の簡単のためにここでは各処理単位にその機能を果
す回路があるものとする。上述のI T、OTおよびI
C,QCの各ステージの高速処理が可能なとき複数の命
令の処理の流れを無駄なく実行する8段のパイプライン
制御が可能である。
このときの分岐命令を含む命令の処理の流れを第14図
および第11図を参照したから説明する。
第14図は分岐命令の命令先取りにおいて前述のすべて
の分岐はn GOITであると予測した場合の命令の処
理の流れを示す。すなわち、命令AOは分岐命令BCの
分岐条件を決定する。命令で該分岐条件は命令AOの実
行結果、すなわち、時刻t7において決定きれる。分岐
命令BCは時刻t4において解読されると命令アドレス
の生成回路を用いて分岐先命令B1のアドレスを生成し
以後B1命令を先取シするように動作する。時刻t2、
t3、およびt4には分岐N0GO側の後続命令A0、
A2、およびA3の命令先取シのだめのアドレス生成が
開始される。時刻t6およびt7には予測動作としての
分岐GO側の後続命令B2およびB3の命令先取多動作
が開始される。時刻t7において分岐条件の判定結果に
よシ、時刻t8以降は正しい命令の処理の流れに従って
処理が継続される。
この場合、分岐命令の出現によるパイプラインのロスサ
イクルは 予測的中(分岐GO)のとき 3ザイクル予測失敗(分
岐N0GO)のとき3サイクルである。
分岐GO率γ予測的中率αとしだときこの場合α−α−
〇5であシ1分岐命令尚シ平均的なロスサイクルは 3×γ+3×(1−γ)==3サイクルである。
一方第15図は分岐命令の命令先取りにおいて、前述の
同じ分岐命令の過去の結果に基づいて予Illを行った
場合の命令の処理の流れを示す。すなわち、分岐命令B
Cは、時刻t4において解読されるとともに分岐命令の
アドレステーブルを探索しその有無によるかもしくは分
岐指示フラグの指示の予測により、分岐Go側の命令B
1を先取りするか分岐N0GOπIllの命令人□を先
取りする力\を決定する。前回と同様に時刻t2、t3
、およびt4匹分岐N0GO側の後続命令A0、A2、
およびA3の命令先取りのだめのアドレス生成75: 
[ei4始される。
時刻t6、卦よびt7には予測Vこよるぞδ令先取りの
後続命令B1およびB2もしくはA4およびA5の命令
のアドレス生成が開始される、時亥11t7において分
岐条件の特定結果により時亥]1t8以降は正しい命令
の処理の流れに従って処理75玉継続される。
この場合分岐命令の出現によるノくイブラインのロスサ
イクルは 分岐GOと予測して的中したとき 3サイクル分岐N0
GOと予測して的中したときOサイクル分岐GOと予測
して失敗したとき  3サイクル分岐N0GOと予測し
て失敗したとき6サイクルである。従って、分岐GO率
γ−05予拐目的中率α−08と仮定したとき1分岐命
令当υの平均的なロスサイクルは 3・γ α+0・(1ゴ)α+3γ(1−α)+6 (
1−γ)(1−α)=2.1サイクル を得る。
従ってこの従来の発明は同じ分岐命令のj尚去の結果に
基づいて予測を行った場合高い予担目的中率を得るとい
う原理を用いることにより常に分11支(1)と予測す
る第14図に示す処理に比べ幾分の改良がみられる。し
かし、この改良された発り」においても、たとえ予測的
中時分岐GOの場合はイ伎然として3サイクルのロスサ
イクルを要することに−なり、これ以上短縮できかい。
従って分岐令令力く生じた場合たとえ予測が的中しても
ロスサイクルを生じることになる。
第16図および第17図は本発明による命令の処理の流
れを示している。本発明における命令の処理単位ICス
テージは命令を記憶装置から読出す機能の他に、分岐ヒ
ストIJテーブルを索引し読出でれる命令のアドレスが
該分岐ヒストリテーブルに登録きれているか否かを検出
し、登録されていれば対応する分岐情報を読出し、登録
されていなければ後続命令の命令先取)のだめのアドレ
スを生成する機能を有する。
第16図および第17図を参照すると、分岐命令BCの
時刻t1における動作は次のようにして行なわれる□。
まず、該分岐命令BCが命令キャッジ−メモリから読出
妬れると同時に分岐ヒストリテーブルが索引される。該
分岐命令BCの命令アドレスが登録されていれば対応す
る分岐情報が読出される。該分岐情報を分析した結果、
分岐G。
側の予測として該分岐情報中に含まれる分岐先アドレス
により分岐先命令B1の命令先取υを開始するか、もし
くは分岐N0GO側の予測として分岐Hooo側の命令
A□の命令アドレスを生成して命令A1の先取りを開始
するかが決定される。以降時刻t5tでは前記分岐命令
BCの予測期間であシ、予測側の後続命令が先取りされ
時刻t5に2いて分岐条件が決定される。予測的中時に
は第16図に示すようにパイプラインの流れは乱れを生
ずることなく処理が継続される。予測失敗時には第17
図に示すように16時刻で前記分岐ヒストリテーブルの
更新を行った後に正しい命令の流れから命令の取出しを
行うように制御される。この場合、分岐命令の出現によ
るパイプラインのロスサイクルは 予測が的中したとき    Oサイクル予測が失敗した
とき    5サイクルである。予測的中率αは、この
場合分岐方向たけでなく分岐先アドレスをも予測するこ
とから分岐方向だけの予測に比べ若干低くなるが、その
割合は微々たるものである。従って、予測的中率α−0
8として1分岐命令当りの平均的なロスサイクルは 0・α+5・(1−α)=1ザイクル 、 となり、従来技術に比べて格段に改良される。
本発明には分岐ヒス) IJテーブルに分岐命令の分岐
方向及び分岐先アドレスを含む分岐情報を登録し、分岐
命令実行時は実行結果の分岐方向と該分岐命令に対応す
る分岐ヒス) IJテーブルの分岐方向を比較して分岐
命令の予測が的中したか否かを調べ、分岐予測失敗時に
は正しい後続命令を取り出し実行を再開し、分岐情報を
更新する手段をもつことにより条件分岐命令を含む分岐
命令の分岐予測を可能とし分岐予測的中時は、パイプラ
イン:li制御における分岐命令の実行をロスサイクル
々して処理できるという多大な効果がちる。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、第2図は分岐ヒス
) IJテーブルの詳細な構成を示す図、第3図は第2
図の記憶部501および601の記憶形式を示す図、第
4図は第2図のテスト回路503−506の詳細な構成
を示す図、第5図は命令語の構成を示す図、第6図は第
2図のプライオリティ回路507の詳細な構成を示す図
、第7図は第1図のレジスタ417−419の格納形式
を示す図、第8図は第1図の予測確認回路420の詳細
な構成を示す図、第9図は第1図の命令記憶回路408
における命令と分岐ヒストリテーブル410における分
岐情報との対応関係を説明するだめの図、第10図は第
9図のテーブル410による命令先取り動作を説明する
だめの図、第11図は予測失敗時における命令先取多動
作開始までの動作を説明するだめの図、第12図は第1
図の命令先取り制御回路の詳細な構成を示す図、第13
図は、命令の処理の流れの概要を示す図、第14図およ
び第15図は従来の予測方式を用いた命令の処理の流れ
を示す図、第16図は本発明において、分岐命令の予測
が的中しだときの命令の処理の流れを示す図、および第
17図は本発明において分岐命令の予測が失敗したとき
の命令の処理の流れを示す図である。 第1図から第17図において、401・・・・命令アド
レス生成回路 402 命令アドレス変換回路403 
命令解読回路 404 ・オペランドアドレス生成回路
 405 ・オペランドアドレス変換回路 406・・
・オペランド読出し回路 407・・・命令実行回路 
408・ 命令記憶回路 409・・・命令バッファ 
410・・・・分岐ヒストリテーブル(BET)411
   命令アドレスレジスタ(1卸)412・・・・命
令アドレス加算回路 413・・・分岐情報バッファ 
414 ・命令整列回路 415・・・・・・分岐情報
切換回路 416・ 分岐情報レジスタ(QBfl)4
17 分岐情報レジスタ(QRI)  418・・・ 
分岐情報レジスタ(QR2)  419・・・・・分岐
情報レジスタ(QR3)  420  ・予測確認回路
 421アドレス生成回路 422 ・・選択回路 4
23 ・・レジスタ(WR)  424  命令先取り
制御回路425・・フリップフロノア’  501,5
02・・・・・記憶部 503.504.505.50
6・・・テスト回路507・・・・プライオリティ回路
 508・・・・・選択回路509・・オア回路。 代理人 弁理士  内 原   晋 芋130

Claims (1)

  1. 【特許請求の範囲】 分岐命令のアドレスを指定する情報と該分岐命令に対応
    する分岐方向及び分岐光アドレスを含んだ分岐情報とを
    対にして複数対記憶する分岐ヒストリテーブル手段と、 命令先取りにおいて先取シされるべき分岐命令のアドレ
    スを指定する情報が前記ヒス) l)テーブル手段に登
    録されているか否かを調べ該分岐命令の登録の判明に応
    答して前記分岐ヒスl−’Jテーブルから対応する分岐
    情報を読み出す手段と、該分岐情報に従い命令の先取シ
    動作を実施する命令先取逆制御手段と、 命令実行装置で実行された分岐命令の分岐方向の結果と
    該分岐命令の分岐ヒス) IJテーブルの分岐方向情報
    とを比較し、該分岐命令の分岐方向が(ン 正しく予測されため否かを確認する手段と、前記確認手
    段によシ分岐命令の分岐方向予測が間違っていると判定
    された場合は、該分岐命令の正しい後続命令を取り出し
    て実行する手段と、前記分岐命令の実行結果で前記分岐
    ヒストリテーブル手段中の分岐情報を更新する手段とを
    備えたことを特徴とする分岐方向予測を行なう命令先取
    シ装置。
JP20155982A 1982-11-17 1982-11-17 分岐方向予測を行なう命令先取り装置 Pending JPS5991554A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP20155982A JPS5991554A (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
JP20155982A JPS5991554A (ja) 1982-11-17 1982-11-17 分岐方向予測を行なう命令先取り装置

Publications (1)

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

Family

ID=16443054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20155982A Pending JPS5991554A (ja) 1982-11-17 1982-11-17 分岐方向予測を行なう命令先取り装置

Country Status (1)

Country Link
JP (1) JPS5991554A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62293434A (ja) * 1986-06-12 1987-12-21 Nec Corp 分岐先予測制御方式
US6920549B1 (en) 1999-09-30 2005-07-19 Fujitsu Limited Branch history information writing delay using counter to avoid conflict with instruction fetching

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4925832A (ja) * 1972-07-05 1974-03-07
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4925832A (ja) * 1972-07-05 1974-03-07
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
JPS62293434A (ja) * 1986-06-12 1987-12-21 Nec Corp 分岐先予測制御方式
US6920549B1 (en) 1999-09-30 2005-07-19 Fujitsu Limited Branch history information writing delay using counter to avoid conflict with instruction fetching

Similar Documents

Publication Publication Date Title
US4881170A (en) Instruction prefetch control apparatus
US4985825A (en) System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer
US4725947A (en) Data processor with a branch target instruction storage
JP3231571B2 (ja) 順序付きマルチスレッド実行方法とその実行装置
US8117395B1 (en) Multi-stage pipeline for cache access
JPS59165144A (ja) 命令取出し装置
JPH0283735A (ja) 命令先取り装置
KR950703325A (ko) 수퍼스칼라 마이크로 프로세서에서의 적재 및 저장 연산처리 방법 및 시스템
KR100335744B1 (ko) 로드/로드 검출 및 재정렬 방법
CN110291507B (zh) 用于提供对存储器***的加速访问的方法和装置
US20020099922A1 (en) Data processing apparatus including a plurality of pipeline processing mechanisms in which memory access instructions are carried out in a memory access pipeline
US6938148B2 (en) Managing load and store operations using a storage management unit with data flow architecture
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
EP0442690A2 (en) Data cache store buffer for high performance computer
JPS5991554A (ja) 分岐方向予測を行なう命令先取り装置
JPS59132047A (ja) デ−タ処理ユニツト
JPS6051947A (ja) 仮想記憶計算機における命令先取方式
JPH046983B2 (ja)
JPS6310451B2 (ja)
JP2783285B2 (ja) 情報処理装置
JPS60175148A (ja) 命令先取り装置
JPS581247A (ja) 命令先取り制御方法
JPH07200406A (ja) キャッシュシステム
JP2542565B2 (ja) 分岐予測制御方式
JPH0695306B2 (ja) 命令先取り装置