JPS5991550A - 命令先取り装置 - Google Patents

命令先取り装置

Info

Publication number
JPS5991550A
JPS5991550A JP57201555A JP20155582A JPS5991550A JP S5991550 A JPS5991550 A JP S5991550A JP 57201555 A JP57201555 A JP 57201555A JP 20155582 A JP20155582 A JP 20155582A JP S5991550 A JPS5991550 A JP S5991550A
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.)
Pending
Application number
JP57201555A
Other languages
English (en)
Inventor
Shuichi Hanatani
花谷 修一
Masanobu Akagi
赤木 正信
Koemon Nigo
仁後 公衛門
Ritsuo Sugaya
菅谷 律雄
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 JP57201555A priority Critical patent/JPS5991550A/ja
Priority to EP83111451A priority patent/EP0109655B1/en
Priority to DE8383111451T priority patent/DE3382350D1/de
Publication of JPS5991550A publication Critical patent/JPS5991550A/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丙する。
従来技術 少なくとも1個の分岐命令を含む命令群が記憶装動゛に
命令シーケンスの形で格納されているデータ処理システ
ムにおいては、このような命令シーケンスの実行は1次
のように行なわれる。
まず、前記記憶装f6の分岐元アドレスに分岐命令が格
納される。次に、この分岐命令に引き続いて実行される
命令が先取りされる。このあと、分岐命令が実行され、
この実行結果により次に実何される命令が明らかになる
。このようなシステムは米国特許4,200,927号
に提案されている。しかし、このシステムでは1分岐命
令先取り制御において実行結果の判別時まで命令先取9
制御全停止させると、処理の迅速化が妨げられる。
この欠点の除去のため、分岐命令の実行結果を予め予測
しこの予測に従って命令先取りを行なう方式が提案され
ている。この予測が正しく行なわれたときには、データ
処理システムは処理1時間の少ない遅れで稼働する。例
えば、そのような従来の予測方式としては次の3つの方
式がある。第1の予測方式では、全ての分岐命令の分岐
先方向が成功側または不成功側のいずれか一万のみに予
測されている。
他の1つの予測方式では、過去の事実に基づいて分岐先
方向を予trillする。すなわち、同じ分岐命令の過
去の実行結果において分岐先がすでに明らかにされてい
るという事実を用いてこの結果に基づいて予測を行なう
ことにより予測的中率を商めている。このような予測方
式の代表セリが9寸開昭57−76638 号公報に示
されている。
さらにもう1つの予測方式では1分岐命令に対応して分
岐の方向を予測する分岐指示フラグを多数用意し分岐命
令の発生に応答してこれら分岐指示フラグを参照するこ
とにより分岐先を予測している。この例の詳細は特開昭
53−74857 月公報を参照できる。しかし、上述
の3つのいずれの予測方式においても分岐命令の抗出し
、解読が必吠不可欠であ凱予測的中にもかかわらずこれ
らの読出しおよび解続動作分だけ処理が遅れるという欠
点がある。
この欠点を除去する予測方式が特開++857−592
53号公報に示されている。この方式では、主記憶装飯
の命令部の写しである命令キャッシュメモリのブロック
に対応して該ブロック中に含ま九る分岐命令の分岐先ア
ドレスを、該ブロックの次にフェッチされるべきブロッ
クのアドレスとして記憶手段に保持しでいる。命令先取
り動作において、命令キャッシュメモリへのアクセスと
同時に前記記憶手段をアクセスして前記分岐先アドレス
を1f丸出し、読み出された分岐先アドレスにより光取
りすべき命令のアドレスを決定している点において、こ
の方式は上述の従来の3つの予測方式と)(なり処理の
迅速化に有効である。しかし、この方式では、命令キャ
ッシュメモリのブロック対応で予測するため、該ブロッ
クに分岐命令が複IHj存在するときにはそのそれぞれ
の分岐命令に対応して予測を行なうことができない。こ
の結果、精度の粗い予測的中率しか得られないという欠
点がある。
発明の目的 本発明の目的は上述の欠点を除去するようにした命令先
取り装置、を提供することにある。
発明の構成 本発明の装置ねは、分岐命令のアドレスを指定する情報
と該分岐命令の分岐先アドレス金倉む分岐情報とを対に
して複数対記憶する分岐ヒストリテーブル手段と。
命令先取りl・1・作を行う際に該命令先取り動作にお
いて先取ジされる分岐命令のそのアドレスを指、j図 定するfW A4が前1シ1分岐ヒストリチーフルに登
録さトリテープ母ら対応する分岐情報を読出し該分岐情
報に匠って命令先取F) tJI+作を継続せしめるよ
うに制御する命令先取り制御手段とを備えている。
発明の原理と作用 本発明の特徴は分岐命令の実行における分岐方向に加え
て分岐先アドレスがその同じ分岐命令の過去の結果の把
握により比較的商い的中率で予狽11可能であるという
事実に基づいて装置トカ;動イ′「することにある。
実施例 次に本発明の一実施例を図面を参照して詳細に説明する
。第1図を参照すると本発明の一火り′01例は、命令
アドレス生成回路401.命令アドレス変換回路402
.命令解読回路403.オペランドアドレス生成回路4
04.オペランドアドレス変換回路405.オペランド
記憶回路を有するメペランド続出し回路406.命令実
行回h”A 407 。
命令記憶回路408.命令ノ<ツファ409.分岐ヒス
トリテーブル(BHT)410 、m令アドレスレジス
タ411.命令アドレス加算回路4】21分岐情報バッ
ファ413.命令整列回路4t4.:z)岐情報9」換
回1L84159分岐情報レジスタ416゜417.4
18、および419、予測’E+□認回路420.7ド
レス生成回路421、選択回路422、レジスタ423
、命令先取り制御回路424および7 +7ツプ70ツ
ブ425から構成されている。
命令記憶回路408およびオペランド請出し回路406
内のオペランド記憶回路はともに主記憶装置そのもので
4)ってもよく、さらに命令記憶回路回路408が主配
憶装置の命令部の一部の写しである命令キャツシュメモ
1ハ前記オペランド記憶回路が主記憶装置のオペランド
部の一部の写しであるオペランドキャッシュメモリとし
て(1(v成されつる。前記命令キャッシュメモリおよ
びオペランドキャッシュメモリの詳細は、特開昭56−
87282月公報を参照できる。
本発明は前述の命令の処理単位に対応した装機構成を必
ずしも有する必要はなく例えは命令アドレス生成回路4
01とオペランドアドレス生成回路404、命令アドレ
ス変換回路402とオペランドアドレス変換回路4o5
、命令記憶回路408とオペランドんC出し回路406
内の記憶回路が共用されたコンピュータシステムにおい
ても適用され得る。
前記分岐ヒストリテーブル(I3H,T) 410 f
l−j:分岐命令のアドレスを指定する情報と該分岐命
令の実行の予測としての分岐成否フラグと分岐先アドレ
、5 スを第3図に示すように対にして記1.ハしている。
前記命令語1届回路408に対する前記命令アドレスレ
ジスタ(IAIす411は、命令片)1出しのリクエス
トアドレスを保持して命令の*;m出し長作を実行する
さらに前記命令アドレスレジスタ411 (IAR)は
分岐ヒス) リテーブル410(BHT)および命令ア
ドレス加算回路412に信号線101を介して接続され
ている。前記レジスタ411の内在は該分岐ヒストリテ
ーブル410(IJA’l’)を索引し読出されるべき
命令のアドレスがそれに登録されているか否かを示す信
号を信号線106に出力する。
登録されていれば対応する分岐先アドレスが信号線10
5に読出される。登録されていなければ前記命令アドレ
ス加算回路412により 後U6の命令語の命令先取り
のためのアドレスが生成される。
前記命令アドレス加算回路412は1回のリクエストで
読出される命令語を813y t eと仮定したとき単
に” IAIL−1−8”を出力107に生成する回路
である。前記命令バッファ409は、命令記す、a回路
408からん′1)出された8Byteの先取り命令語
を蓄稙し命令処理部への命令の供給における待行列(Q
 u eし己)を形成する。前舵命令整列回路414は
、命令バッファ409が空のとき信号線102を介して
命令記憶回路408から読出される8Byteの命令語
に応答して前記命令バッファ409が空でないとき信号
線103を介して前記命令バッファに貯えられる8By
teの命令語に応答して命令を抽出して信号線104を
介して命令解読回路403に命令を供給する回路である
。前記分岐情報バッファ413は、前記命令バッファ4
09に格納される命令語に対して用意されておりその命
令語中に分岐成功と予測された分岐命令が存在すれは、
絹7図に示す該分岐命令の分岐情報を格納する回路であ
り、分岐命令のアドレスは信号組101を介して1だ分
岐情報としての分岐先アドレスおよびvビットは分岐ヒ
ストリテーブル410(BHT)から信号線105を介
してそれぞれセットされる。前記分岐情報切替回路41
5け、命令バッファ409が空のとき信号線101およ
び105を介して与えられる前記分岐情報をそうでない
ときは前記分岐情報バッファ403を介して与えられる
前記分岐ffr報をそれぞれ出力する。前記レジスタ4
16,417、および418はそれぞれ分岐命令の命令
解読、命令アドレス生成、アドレス変換の各処理ステー
ジに対応しその分岐(ij ’+f+を保持する。前記
分岐情報レジスタ419 &J:その分岐先アドレス部
を該分岐命令の実行によって生成される実際の分岐先ア
ドレスに良き換えて保持するレジスタである。前記予f
f1ll 6iD u回路420は分岐命令の実行によ
って生成される実際の分岐命令の/、i゛成結果と前記
分岐情報レジスタ418に保持される該分岐命令の予測
情報との一致をとる回路である。
前記アドレス生成回路421は前記分岐h+ 91>レ
ジスタ419に保持される分岐命令のアドレスと該分岐
命令自身の命令語長とを加丁)し分1111 N0GO
側の命令の命令アドレスを生成する。前記選択回路42
2は分岐命令の成否信号線111の状態に応答して該信
号件の状態が分岐GOを示すとき線■5を介して与えら
れる前記分岐情報レジスタ419に保持される分岐先ア
ドレス部の出力を選択し、前記線の状態か分岐N0GO
を示すとき線116を介して力えられる前記アドレス生
成回路421の出力を選択し、信号線113を介して該
選択回路422の出力をレジスタ423に供給する。前
記レジスタ423は分岐命令の予測が失敗したとき分岐
ヒストリテーブル410 (BIIT)を更新するため
のものであり、さらに信号+V9L17を介して命令ア
ドレスレジスタ411(IAI切に命令光11yりのた
めの新たなアドレスを供給する。前記命令先取9制御回
路424は%ii 106を介して分岐ヒストリテーブ
ル410 (13IJT)から与えられる分岐予測信号
および予0i11 イiR+ lfi回路から細112
を介して与えられる一’T−1111,1成否信号に基
づV・て命令アドレスレジスタ411(IAIりの入力
を制御する回路である。
次に前記分岐ヒストリテーブル410 (B)1.T 
)、前記予測確認回路420i−よび前記命令先取り制
御回路424の詳細なブロック図とタイムチャートを参
照しながら本実施例の動作を詳細にイ9.明する。
第2図を参1↓(シすると、前記分岐ヒス) IJテー
ブル410(BHT)は、デ4し/lトリ記1、テコ部
501、データ記憶部502、テスト回路503,50
4.。
505、および506、プライオリティ回路507、レ
ベル選択回路508、およびオア回路509を備えてい
る。n11記記憶部501およ0・502は、1回のリ
クエストに対して命令記憶回路408から読出される命
令語の単位をブロックの単信とし、セットi!m、レベ
ル蕎又nのH己憶音ISである。
第3図を参照すると、記憶部501には分岐命令の命令
アドレスの一部とその内容が有効か否かを示す■ヒツト
が格納されd]シ憶郡部502は分岐先アドレスの実ア
ドレスが格納されている。n11記Vビツトは対応する
分岐ヒストリテーブル(B11T)410のワードの有
効性を示すと同時に8y分岐命令の実’(−jの予fl
li+ 、!: しての分岐成否7ラグの枦能をイ〕す
る。
この分Ill!/ヒストIJデープル(川(T)410
への累引り以下のようなセットアソンアティブ法によっ
て行われる。
N’−51y!IiC示Jilル前M己7ストLl’l
路503,504゜505、および506はテーブル4
10の名レベルに対応して命令アドレスレジスタ411
(IAIりに保持されるリクエストアドレスが各レベル
のl311T−AAi (i tjニレベルに対応する
ザフィクスを示す)にイヂぐ1ζ沁flているか否かを
承り信号を信号線130.131,132,133に出
力する。第4図を径照すると、11)(記テスト回路5
03,504.旧)5および506のそJ+、ぞれt、
」1、一致回路701および大小比較回1:’h 70
2から構成されている。
riiL fit、比Jlつ回路701では、命令アド
レスレジスタ(IAIL) 411に作ti iれるリ
クエストアドレスの一11i1AIも(:18−287
をセットアドレスとしてIfll、出芒iしたf!14
 j、((j;l〜501の各レベルの白首と春醜和4
 tiil記レジスタ411の内容IAI(、(: 4
−17)とが比較され、等しいアドレスが存在するか否
かを検出する。該一致回路701の出力によシ命令アド
レスレジスタ(IAII、) 411に保持されるリク
エストアドレスで読出されるべき命令W1+の8Lly
teブロツク中にすでに分岐ヒストリテーブル(13H
T)410に登録された分岐命令が存在するか否かが、
判明する。しかしリクエストアドレスとそれli” M
出すべき分岐命令との対応をとるには上記一致検出のみ
では不十分である。第5図を参照すると、1回のリクエ
ストで読出される8Byteの命令語のブロック中に2
1+yte命令BCO,A、13C1、JsC2の4個
の命令が存在する。命令BC□ 、 13Ct 、 I
JC2がともに分岐成功と予測された分岐命令でβ′2
るときには、各々の分岐命令はともにその一ノ゛ドレ2
の一部が記憶部(BHT −AA ) 501に登軽さ
!しる。
このとき他の分岐命令から命令A K 51岐して匍令
Aのアドレス<A>が前記命令語のブロックを読出すた
めのリクエストアドレスとして命令アドレスレジスタ(
IAIす411に保持されるときには、分岐ヒストリテ
ーブル(B3)−IT) 410から読出されるべき分
岐命令の情報は命令の実行の経路から分岐命令BC1の
1丁】報でなければならない。
従って前1j1:レジスタ(IA几)411に保持され
るリクエストアドレスと前記記憶部(13HT −AA
 i )501に保持される分岐命令のアドレスとの関
係が上記の一致条件とともに次の関係が成立するとき対
応するレベルのDH’J’ −HI T i信号が生成
される。この信号は線130−133を介してオア回路
509に力えられ、核用11’ −1且’I’i信号の
オア信号が線106を介して出力され分岐予測信号(U
)(T−月1’l’信号)となる。
1311’l’ −HI ’J’ 1=(IAfも(:
4−17)=用1T−Mi(:4−17)) θ口AIも(: 29.30 )≦1311’l’ −
AA i(: 29,30) ) θJJiJ’l’−AA 1(VJ p)ひ第4図を参照すると、前記大小比軟回路は、この
条件を実3JJする回路である。
さらに前n12伯号川JT −)l 1 ’1’ iの
条件が2ヶ以上のレベルにおいて成立したとき記憶部5
010対応するレベル(BIT−AAi)に保持される
分岐命令のアドレスの8 B y t eブロック内ア
ドレス用IT−AAi(:29.30)の和1の最ヲ女
も小さいレベルが選択される必璧がある。再び第5図を
変照すると、命令BC1およびB C2(7)分111
&命令+4;I係(77v′I3が格納される分岐ヒス
トリテーブル410のレベルで前記信号BHT−HIT
i粂件が共に成立する。
このとき命令の実行の経路から命’3 B (/ lに
対するレベルが選択される必要がある。
前記プライオリティ回路507(l″i、前記イー号B
HT−HITiの2ヶ以上の成立に対するものであり、
この出力により記憶部IJIIT −J)A 502の
セットアドレスIAII、(:18−28 )で示され
るアンドりの分岐先アドレスがレベル選択回路508を
介して韻1出される。
第6図を参照すると、前記プライオリティ回路507は
アンド回路群601−604およびオア回路群605−
608からイe41シされている。O+1 +:己アン
ド回路′8f601−6041r、J−n +1個並列
に配jf−1されている。前記第2図におけるレベル】
x択回り’i’4508のnケのレベルの3ツク択信号
0.第6図における信号vo、v、 、 v、、 v、
によシ以下のように力えられる。
Voのとき         ’% Lo、Vo L、
 、 ・= 、 VoL nVo−V、 (7)とき 
      vI LoM ”I + ”・+ vI 
” nvOovloVl        V、 LO,
V、 Ll 、 −= 、 V、 L n\’0 ’ 
v、 ” v、 ’ v3のとき  V、 Lo、V、
 Ll、−、VsL n以上のようにして第2図におり
るレベル選択回路508からMar、出された分岐情報
は第1図の命令記憶回路408から読出される命令と対
応づけることがb」能である。
第9図には、1b令NIJ2 ’j:は回路408にお
ける命令と分岐ヒストリテーブル(IJHT)4i0に
おりる分岐1+’+ 豹2の上記対応用1係が示されて
いる。命令の実行順序が命令A。1分岐命令IC,,1
1,、Bc、 、 Ll、 、 J3. 。
IJC,、C,、et・・・と予jijliされた場合
である。なお、<A>は人命令のアドレスを、BCj 
 rよ分岐命令をそれぞれ示す。
吊10(ネ1勤用1((すると、前記第9図に示した分
111クヒストリテーブル川11’410 による命令
先取り動作t」、次のようVCチれる。リクエストアド
レスの命令アドレスレジスタ4110セツトに応答して
命令記憶回路408から命令語が読出され、これと同時
にテーブル13HT410が索引される。信号lN10
6を介して川(T−HIT信号が出力されると記憶部B
11.T−DA502の分岐先アドレス〈B1〉がアド
レスレジスタ411にセットされ、次の命令先取りが行
われる。前記信号線106を介してドレス<A>が与え
られ、「8」加Jもされたアドレスが出力され、次の命
令先取シが逐次性われる。
以上の命令の先取りに従えば命令記憶回路408から読
出される命令語は、テーブルL111T410の内接に
よる予測に従って11111次読出され、命令バッファ
409には予測された命令の実行順に4・、’、 n:
1することが可能である。
このときたとえ信号DI(T −It I ’1’が出
力されても分岐予測手向と反対側の命令光Jlk !0
動作を−jL、15行わせしめた後に分岐予測方向の命
令光Jay: り lJ+作を行ってもよい。
以上のようにして命令先取りされた命令が分岐命令で第
11ンjの命令整列回路414にょシ命令解読回路40
3に層かれたとき同時に該分岐命令に対応する分岐’+
m113 i”最初の分岐情報レジスタ416(Q几0
)にセットされる。
以降前記分岐命令の進行に伴い前記命令解読。
アドレス変換に対応して前記分岐情報が第2および第3
の分岐情報レジスタ417(Q几1)および418(Q
几2)に転送される。そして前記分岐命令の実行によっ
て生成される実際の分岐命令の生成れ′f果と611記
分岐11J訓ワレジスタ418 (Q几2)に保持され
る該分岐命令の予測情報との一致が予測確認回路420
によりチェックされる。第8図を参照すると、前記予測
Et+。認回路420は比較回路801゜フリップフロ
ップ802および8o3、アンド回路804−806、
真偽回路807および808、およびオア回路809か
ら構成されている。前記比較回路801には分岐命令の
実行にょ勺生成された分岐先アドレスの実アドレスが命
令アドレス変換回路402から信号線109を介して力
先られるとともに、分岐情報レジスタ418 (QR2
)から予測された分岐先が純108を介して与えられる
前記比較回路801では両者の一致、不一致が判定され
る。判定結果と前記レジスタ418から線108を介し
て与えられるVビットがアンド回路806に与えられる
。隔理稍結果により分岐GOと予測されたときこの事実
を示す信号が7リノプフロツプ802にセットされる。
このフリップフロップ802の出力がIl′で実際の分
岐命令を実行した結果が分岐N0GOであれはアンド回
路805から予測GO失敗信号123が生成される。前
記フリップフロップ801の出力が111で分岐命令の
実行結果がGOであればアンド回路804から予測N0
GO失敗信号124が生成される。さらに該信号124
と前記予測GO失敗信号123との論理和がオア回路8
09から予測失敗信号112として生成される。
第1図および紀11図を参照すると、分岐情報レジスタ
419(Q几3)の分岐先アドレス部には前記命令アド
レス変換回路402から新たに生成される分111a先
アドレスがセッートされる。また前記分岐(ff If
?レジスタ419(C)几3)の分岐命令13clのア
ドレス部の内容と該分岐命令HC1自身の命令語長部の
内¥〒′とがアドレス生成回路421によシ加豹され分
岐N0(JU 9U11の命令の命令アドレスが生成さ
れる。
ぞして分岐命令13C1の実際の実行によシ分岐GOナ
ラば前NC分岐’I’h’4レジスタ419 (QIL
3) カら脚115を介して力先られる分岐先アドレス
部の出力〈1月〉姑か分岐N0GOならは脚116を介
して力えられる前記アドレス生成回路421の出力〈B
2〉がガV担′回路422により選択される。前記分岐
命令BC1の予測失敗信号112が予測確認回路421
から発生したとき該選択回路422の出力(J) 1 
)が1t13を介してレジスタ423(〜Vlりにセッ
トされる。
一方、分岐1111報レジスタ419(Q几3)の分岐
命令のアドレス<HCI>は信号線114を介して命令
アドレスレジスタ411 (IAR)にセットされる。
このアドレス←1、該分岐命令に対応する分岐ヒストリ
テーブル410(BHT)の更新のため線101を介し
て該テーブル410にライトアドレスとして供給される
。前記予測失敗信号112の出力が7リツプフロツプ4
25に支えられ、この出力が指示パルスとして線119
を介してテーブル401に与えられる。この出力に応答
して分岐命令の次の命令先取9時のための分岐予測IF
i 郭の更新が行なわれる。この更新は本実施例では予
fiill N(JCiO失敗のとき前記レジスタ42
3(WR)に保持される新たな分岐先アドレスで行なわ
れ、予l1l1100失敗のときはVビットをリセット
するように行われるが分岐予測情報の更新におけるアル
ゴリズムを用いて他の方法によシ行なっても差しつかえ
ない。
予測失敗したとき予測側に後わ1.する命令の動作はす
べてキャンセルされ、前t4[’hレジスタ423(W
R)に保持される新たなリクエストアドレスが分岐ヒス
トリテーブル410 (131−IT)の更新後に命令
アドレスレジスタ41l(IAR)に供給され改めて命
令の取出しが開始される。
第12図を参照すると、前記命令先取9制御回路424
はフリップフロップ1201、真偽回路1202−12
(14およびアンド回路1205から4’f/?成され
ている。lJ’l %2フリップフロップ1201は前
記予測失敗信号1.12を1マシンザイクル保持するた
めのフリップフロップである。この回路424の出力は
アドレスレジスタ411の前段にあるセレクタの7〉。
じ択指示信号となる。この選択指示信号は、前記命令ア
ドレス加n回路412の出力、前記レジスタ423の出
ツバ前記テーブル410の出ブハおよび分岐(’f’j
報レジスタ419の出力のうちのどれを選択するかを指
示するための信号である。
なお、この命令先取シ1仙御回路424の制御により分
岐予測が的中したときには後述する第16図の命令処理
が行なわれ、分岐予測が失敗したときには後述する第1
7図の命令処V11が行なわれる。
前記命令アドレス加算回路11は線106を介してL3
1]T−、Ill’l’情号が出力されないとき分岐N
(JOO側の命令の先取りを行うためのアドレス生成7
を行う。このときアドレスは実アドレスで加算が行われ
るために、例えば、ページングを行うコンピュータシス
テムにおいて前記アドレス加ηがページ境界を越えた場
合アドレス変換を改めてやり直す必要が生じる。
このために前記命令アドレス加算回路11にページ境界
越え検出回路を設は該検出回路によりべ乞 一ジ境界越ちが生じた場合信号#I!L11によシ命令
アドレス生成回路1を起動し命令先取り動作を改めて命
令アドレス生成回路(LA)401及び命令アドレス変
換回路(IT)402から行うiし制御すればよい。
ここで問題となるのはあらたに分岐ヒストリテーブルB
H1’41Qに前記命令アドレス(I’l報をIX録す
るとき既存のどの部分に格納された命令アドレス情報を
追い出すかである。
この方法としては使われた順序、すなわち最も古く使わ
れたものから雁1に追い出ず法LRU(Le−ast 
Recently Used) 、情報が入ったl1l
rj序、すなわち最も古く入ったものから順に追い出す
方法FIFO(First Ih First 0ut
) 等があるがどちらを用いてもよい。
発明の効用 次に本発明の効−!4.1−を第13図から第17図を
参照しながら訂却1に説明する。
第13図を参照すると、命令の処理は一般的に次の8つ
の処1jl単イ)ンに分けられる。
(+)IAスデージ:実行すべき命令の命令アドレス(
論理アドレス)か生成される。
(2)ITステージ:生成された命令アドレスのアドレ
ス変4f・1が行われる。
(3)ICステージ二汲換された命令の実アドレスで記
憶装部から命令が読出される。
(4) I Dステージ:訊、出された命令が触読さノ
上る。
(!’il U Aステージ二角2f抗された命名のオ
ペランドアドレス(論理アドレス)が生成される。
(Q) OTステージ:生成されたオペランドアドレス
のアドレス変換が行なわれる。
(力OCステージ:変換されたオペランドの実アドレス
でNIJ ’19、装置f2QからオペランドがH元高
される。
(8)EXステージ:命令が実行される。
上述のITステージおよびOTステージのアドレス変捜
においてアドレス変換バッファFGけ必要な変換テーブ
ルが該アドレス変換バッファに存在すれば上記アドレス
変換処理1a:高速に実行し得る。また、上述のICス
テージおよびOCステージの命令およびオペランドの訪
、出し動作において主記憶装置のデータの一部の写しを
保持するキャッシュメモリを設は必要な命令およびオペ
ランドが該キャッシュメモリに存在ずればICステージ
およびQCステージの処理は高速に行いうる。情報処理
/ステムは上述の各処理単位に対応したリソースを必ず
しも有する必要はない。しかし、説明の簡単のためにこ
こでは各処理単位にその機能を果す回路があるものとす
る。上;21Sのl’l’、O’l’およびIC,QC
の各ステージの面速処坤が■」能なとき複数の命令の処
理の流れを無駄なく実イ■する8段のパイプライン制御
が可能である。
このときの分岐命令を含む命令の処理の流れを第14図
および第15を参照しなから説明する。
第14図は分岐命令の命令先取りにおいて前述のすべて
のf)(l141(rJ: ” (JO’であると予測
した場合の命令の処理の流1れを示す。すなわち、命令
AQは分11成命令13 Cの分111i’2条f′1
を決定する命令で該分岐条件す」:命令AOの実イj結
果すなわち、時刻t7において決定さカフる。分岐命令
BCは時刻t4におい色♀ て午1fjlされると命令アドレスの生成回路を用いて
分岐先6令B1のアドレスを生ルy、シ以?=B1命令
を先11yすするようにす・11作する。時刻t2.t
3、およびt4には分岐NO(,1(J側の後転命令A
I、A2.およびA3の命令先取りのためのアドレス牛
kが開始される。時刻t6およびt7にけ手助1動作と
しての分岐()0佃のにl %jL命令B2およびB3
の命令先j4シり動作かv11始される。時刻t7にお
いて分岐条件の判定結果により、時刻t8以トイは」I
−シい命令の処ν(1のji+1れに従って処理が絹;
続される。
この用台、分岐命令の出現によるパイプラインのロスサ
イクル−、 予1ftll的中(分岐0(J)のとき   3ザイク
ル予測失敗(分岐N0OO)のとき   3サイクルで
ある。
分岐GO率γ、予測的中率αとしたときとの場合γ=α
であり予測的中率は5分5分である。従ってγ=α=0
5であり1分岐命令光り平均的なロスサイクルは 3×γ+3×(1−γ)=3サイクル である。
一方第15図は分岐命令の命令先取りにおいて前述の同
じ分岐命令の過去の結果に基ついて予測を行った場合の
命令の処理の流れを示す。すなわち、分岐命令BCは、
時刻t4において角゛日ノ1されるとともに分岐命令の
アドレステーブルを探索しその有無によるかもしくは分
岐指示フラグの指示の予測により、分岐GO側の命令B
1を先取りするか分岐N0GO側の命令AIを先織りす
るかを決定する。′前回と同様に時刻t2.t3および
t4には分岐N、OGO側の後続命令A1.A2、およ
びA3の命令先取りのだめのアドレス生成が開始される
時刻t6およびt7には予測による命令先取りの後続命
令B1およびB2もしくはA4およびA5の命令のアド
レス生成が開始される。時刻t7において分岐条件の判
定結果により時刻t8以降は正しい命令の処理の流れに
従って処理が継続される0 この場合分岐命令の出現によるバイグラインのロスサイ
クルは 分岐GOと予jilj l、て的中したとき3ザイクル 分岐N(J(JOと予fl+!I して的中したとき0
ザイクル 分岐GOと予d用して失敗したとき 3ザイクル 分岐N(JG(Jと予…りして失敗したとき6サイクル である。任って、分岐GO率γ=0.5予側的中率α=
08と仮定したとき1分岐命令光りの平均的なロスサイ
クルt」、 3・γ・α十〇・(l−γ)α+3γ(l−α)+6 
(1−γ)(l−α)=21サイクル を得る。
彷ってこの従来の発明は同じ分岐命令の過去の結果に基
ついて予測を行った。t!:4合高い予測的中率を得る
という原理を用いることにより常に分岐00と予測する
第14図に示す処理に比べ紙分の改良がみられる。しか
しこの改良された発明においてもだとえ予測的中時分岐
GOの場合に、依然として3サイクルのロスサイクルを
少することになりこれ以上短縮できない。従って分岐命
令が牛した場合だとえ予1tll i:的中してもロス
サイクルを生じることになる。
鎮、16図および第17し1は本発明による命令の処理
の流れを示している。
本発明における命令の処理単位ICステージ番」、命令
を記憶装置から読出す機能の他VC1分I11・□・ヒ
ストリテーブルを索引し読出される命令のアドレスが該
分岐ヒストリテーブルに灯録されているか否かを検出【
7、登録されていれVよ対応する分岐1i’を報を抗出
し、登録されていなりれd−後わt二命令り命令先取り
のだめのアドレスを生成するわ・を能を有する。
d”h 16図およびP’l’N7図を参照すると、分
岐命令13 Cの時刻t1における動作は次のようにし
て行なわれる。オす、該分岐命令J3Cが命令キャッシ
ュメモリからδ’;r、出されると同時に分岐ヒストリ
テーブルが索引さiする。該分岐命令BCの命令アドレ
スが登録されていれば対応する分岐情報力棉五出される
。該分岐1’A報を分析した結果、分岐GO111jの
予iH1として該分岐1^報中に含首れる分岐先アドレ
スにより分i時先命令B1の命令光J’fllりを開始
するかもしくQ、1、分岐N0GO佃の予測1として分
岐No(JO(fillの命令A−]の命令アドレスを
生成して命令A1の先11V、 、jJ全開始するかが
決定される。以降時刻t5JでQ」、前記分岐命令HC
の−1・側期間であり予1111+仙の後糸左イ11令
か先取りされ時刻t5において分岐条件が決2[シされ
る。予測的中時には第16図に示すようにパイプライン
の流れd、乱れを生ず17図に示すように4−÷眸鉢で
前記分岐ヒストリテーブルの更新を行ったしに正しい命
令の流れから命令の取出しを行うように制御される。こ
の場合分岐命令の出現によるパイプラインのロスザイク
ルは 予測が的中したとき  0サイクル 予測が失敗したとき  5サイクル である。手助l的中率αはこの場合分(口・シ方向だけ
でなく分岐先アドレスをも予測することから分岐方向だ
けの予測に比べ若干低くなるがその割合は微々たるもの
である。従って、予d1j1的中率α=08として1分
岐命令当りの平均的なロスザイクルは0・α+5・(l
−α)=1ヤイクル となり従来技術に比べて格段に改良される。
この発明では、分岐命令のアドレスと直外1(1シ命令
の分岐先アドレスを含む分岐情報とを夕・1にして記憶
する分岐ヒストリテーブルを命令光11ゾり時に索引す
る。このあとで前記分岐先アドレスで次の命令先取りを
行わせしめることにより命令の力(VV“1゜を行うこ
となく前記分岐ヒストリテーブルの記述に従って命令語
を先散りすることができる。このことによp本発明は該
分岐ヒストリテーブルの紀プ1Σが正しい場合に限シ命
令バッファには命令の実行の経路に1/r:った命令の
待行列を形Jルアせしめ、悌η]・)処理システムのパ
イプライン制御における分岐命令の実行をロスザイクル
をともなうことなく行なうことができるという効果があ
る。
【図面の簡単な説明】
第1図−木ヅ1′、明の一丈hfli例を示す図、第2
図は分111=’<ヒストリテーブルのil”細な41
q成を示す図、第:3図は!82図のsl、: ljj
川5用Qlおよび601の記憶形式を示す図、第4図は
第2図のテスト回路503−506の詳細な構成を示す
図、第5図は命令語の構成を示す図、第61*l r、
!、第2図のブライオリティ回路507のH1細な構成
を示す図、第7図(l−1,第1図のレジスタ417−
419の格納形式を示す図、第8図は第1図の予a+1
罰IC認回路420の詳細な構成を示す図、第9121
は第1図の命令語1,11回路408における命令と分
岐ヒストリテーブル410における分岐1内報との対応
関係をd兄明するための図、第1O図は第9図のテーブ
ル410による命令先取り動作を説明するための図、第
11図は予γ1111失敗時における命令光Jl/り動
作開始までの動作を訃明するための図、!¥12図附、
第1図の命令光11ソ9制御回路の詳細な構成を示す図
、第13図は命令の処理のbll−れの概νを示す図、
第14図および第15図は従来の予測方式を用いた命令
の処すの流れを示す図、第16図は本発明において、分
111長命令の予測1が的中したときの命令の処理の流
れを示す図、および第17図は本発明において分岐命令
の予測が失敗したときの命令の処理の流れを示す図であ
る。 第1図から第17図において、401・・・・・・命令
アドレス生成回路、402・・・・・・命令アドレス変
換回路、403・・・・・・命令解読回路、4o4・・
・・・オペランドアドレス生成回路、405・・・・・
・オペランドアドレス変換回路、406・・・・・・オ
ペランド面4出し回路、407・・・・・・命令実行回
路、408・・・・・・命令記憶回路、409・・・・
・・命令バッファ、410・・・・・・分岐ヒストリテ
ーブル(川JT)、41 ]・・・・・・命令アドレス
レジスタ(IAR)、412・・・・・・命令アドレス
加q回路、413・・・・・・分岐情報バッファ、41
4・・・・・・命令整列回路、415・・・・・・分岐
情報切換回路、416・・・・・・分山ν情幸1をレジ
スタ(QILO)、 417・・・・・・分岐l111
報レジスタ(Qll、1 )%  41 s・・・・・
・分岐情報レジスタ(Q几2)、419・・・・・・分
岐情報レジスタ(咄3)、420・・・・・・予?1l
lI確認回路、421・・・・・・アドレス生成回路、
422・・・・・・選択回路、423・・・・・・レジ
スタ(Wlす、424・・・・・・命令先取りtli制
御回路、425・・・・・・ノリツブ70ツノ、501
,502・・・・・・記1、cf部、503,504,
505,506・・・・・・テスト回路、507・・・
・・・プライオリティ回路、508・・・・・・選択回
路、509・・・・・オア回路。 イいI)1人 弁理士  内 原   晋第 1 区 珈T、AAo (?Q−3θジ= BHT−AAo(: 2q−30) −BHr−AA 
 t (二2tI−30)B/−IT l−11T / 第 5 区 BH’r−AA rl(: 2q−30ジBHT’HI
Tn 第1)図 q口//7 鳩 /I  区 第 72区 387− ’tol trl  ?:’21 t31 t41ts
lta1ttI tB1第 /4図

Claims (1)

  1. 【特許請求の範囲】 情報処理システムにおける命令先取り装動において、 分岐命令のアドレスを指定する1^件と該分岐命令の分
    岐先アドレスを含む分岐情報とを対にして複数対記憶す
    る分岐ヒストリテーブル手段と、命令先取り侃j作を行
    う際に該命令先取り動作にいるか否かを41・iべる点
    検手段と、該点検手段による登録の判明に応答して前記
    分岐ヒストリテーブン竪ら対応する分岐情報を胱出し該
    分岐11(件に従って命令先取り動作を細2続せしめる
    よう制御する命令先取9制御手段とを俯えたことを特徴
    とする命令先取り装置。
JP57201555A 1982-11-17 1982-11-17 命令先取り装置 Pending JPS5991550A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP57201555A JPS5991550A (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
JP57201555A JPS5991550A (ja) 1982-11-17 1982-11-17 命令先取り装置

Publications (1)

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

Family

ID=16442982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57201555A Pending JPS5991550A (ja) 1982-11-17 1982-11-17 命令先取り装置

Country Status (1)

Country Link
JP (1) JPS5991550A (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002042223A (ja) * 2000-07-21 2002-02-08 Taro Mori 自動販売機の表示方法および自動販売機の表示システム
JP2008040749A (ja) * 2006-08-04 2008-02-21 Sanden Corp 自動販売機
US20090313125A1 (en) * 2008-06-16 2009-12-17 Samsung Electronics Co., Ltd. Product providing apparatus, display apparatus, and method for providing gui using the same
US20100268792A1 (en) * 2009-04-13 2010-10-21 Crane Merchandising Systems, Inc. Vending machine with interactive display
WO2012159114A1 (en) * 2011-05-19 2012-11-22 Crane Merchandising Systems, Inc. Customer usage statistics gathering within vending machines

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002042223A (ja) * 2000-07-21 2002-02-08 Taro Mori 自動販売機の表示方法および自動販売機の表示システム
JP2008040749A (ja) * 2006-08-04 2008-02-21 Sanden Corp 自動販売機
US20090313125A1 (en) * 2008-06-16 2009-12-17 Samsung Electronics Co., Ltd. Product providing apparatus, display apparatus, and method for providing gui using the same
US20100268792A1 (en) * 2009-04-13 2010-10-21 Crane Merchandising Systems, Inc. Vending machine with interactive display
WO2012159114A1 (en) * 2011-05-19 2012-11-22 Crane Merchandising Systems, Inc. Customer usage statistics gathering within vending machines

Similar Documents

Publication Publication Date Title
US4477872A (en) Decode history table for conditional branch instructions
US4725947A (en) Data processor with a branch target instruction storage
US4086629A (en) Hierarchical data store with look-ahead action
US4881170A (en) Instruction prefetch control apparatus
US4295193A (en) Machine for multiple instruction execution
US4112489A (en) Data processing systems
TW299421B (ja)
US3654621A (en) Information processing system having means for dynamic memory address preparation
CN104364770A (zh) 来自较小特权状态的运行时间仪表设施的控制操作
JP3494489B2 (ja) 命令処理装置
US8347066B2 (en) Replay instruction morphing
EP0139080B1 (en) An information-processing system
JP3762816B2 (ja) マイクロプロセッサにおける早期例外を追跡するシステム及び方法
US5615375A (en) Interrupt control circuit
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
CA2060137C (en) Circuit for executing conditional branch instructions in pipeline process
JP3146077B2 (ja) プロセッサ
JPS5991550A (ja) 命令先取り装置
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JP3490005B2 (ja) 命令制御装置及びその方法
JPS59132047A (ja) デ−タ処理ユニツト
JPS60164842A (ja) 命令先取り装置
JPS58178464A (ja) 並列演算処理装置
JPS5991549A (ja) 命令バツフアへの命令語格納方式
JPS60175148A (ja) 命令先取り装置