JPS59177653A - 命令先取り制御方式 - Google Patents

命令先取り制御方式

Info

Publication number
JPS59177653A
JPS59177653A JP5294683A JP5294683A JPS59177653A JP S59177653 A JPS59177653 A JP S59177653A JP 5294683 A JP5294683 A JP 5294683A JP 5294683 A JP5294683 A JP 5294683A JP S59177653 A JPS59177653 A JP S59177653A
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
JP5294683A
Other languages
English (en)
Inventor
Shuichi Hanatani
花谷 修一
Koemon Nigo
仁後 公衛門
Masanobu Akagi
赤木 正信
Toshiteru Shibuya
渋谷 俊輝
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 JP5294683A priority Critical patent/JPS59177653A/ja
Priority to EP83111451A priority patent/EP0109655B1/en
Priority to DE8383111451T priority patent/DE3382350D1/de
Publication of JPS59177653A publication Critical patent/JPS59177653A/ja
Priority to US07/286,021 priority patent/US4984154A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 (1)発明の属する技術分野 見 本発明は分岐資ストリテーブルを有するデータ処理装置
の命令先取り制御方式に関する。
(2)従来技術 命令先取り制御にお(・で、分岐ヒス) IJテーブル
により命令の実行願序を予測せしめつつ命令語の先取り
を行うことはデータ処理袋筒のパイプライン制御を有効
に稼動せしめると(・う効果がある。
しかしながら、上記データ処理装拠゛において命令語が
自系もしくは他系のストア動作により書換えられた場合
にQづ1、主記憶装置上のデータおよび命令語の写しで
あるキャッジ−メモリの内容とともに上記分岐ヒストリ
テーブル中に保持される分岐情報をも正しく書換える必
要が生じる。このためにキャッシュメモリではデータブ
ロック対応のアドレス登録用アドレスアレイと本来のキ
ャッシュメモリ索引用アドレスアレイを別個に設は前記
アトア動作を検出する万式が採られて(・る。
上記キャッシュメモリの場合と同様、前記分岐ヒストリ
テーブルにお(・でも分岐命令のアドレスを保持する分
岐ヒストリテーブル゛アドレスアレイを二重化し一方は
本来の分岐ヒストリーテーブルの系別用に他方は前記ス
トア動作の検出用に使用すればよ(・。し/〕化木本方
式は上記分岐ヒストリテーブルアドレスアレイ(BHT
−AA)を二重化することによるノ・−ドウエア量の増
大をまねくという欠点がある。
さらに、アドレス変換テーブルが更新された場合には7
前記分岐ヒストリテーブルにおける分岐命令のアドレス
と分岐先アドレスとの対応は無効となる。このために前
記分岐ヒストリテーブルの対応する分岐・1−報を保持
するエントリの有効表示ビットをリセットする必要が、
bる。
このよう外処理におけるオーバヘッドはデータ処理袋T
の性能低下の要因となる。
(3)発明の目的 分岐ヒストリテーブルを使用する分岐予測にお(・て予
測は必ずしも正確に行われる必要はない。すなわち、分
岐ヒストリテーブルを有するデータ処理装置において命
令語の書換えにより分岐命令の分岐方向や分岐先アドレ
スが変更されたとしても単に予測が間違えたものとして
処理される。ここで、問題は分岐ヒストリテーブルに登
録された分岐命令が前記ストア動作により他の分岐命令
以外の命令に置換えられるがもしくはアドレス変換テー
ブルの更新により分岐ヒストリテーブルに分岐命令とし
て登録されたアドレス上に他の分岐命令以外の命令が割
当てられた場合のみに生ずる。
従って、本発明の目的は前記欠点を除去し、分岐ヒスト
リテーブルを使用する分岐予測の上記性質を利用して分
岐ヒストリテーブルを有するデータ処理装置における命
令先取り動作を少な(・ハードウェア量で制御せしめる
ようにした命令先取り制御方式を提供することにある。
(4)発明の構成 本発明の方式は、命令先取り動作を行うデーり処理装置
の命令先取り方式において、分岐命令アドレスを指定す
る情報と該分岐命命の分岐先アドレスを含む分岐情報と
を対にして記憶する分岐ヒス)IJテーブル手段と、先
取りされた命令語が分岐命令であるか否かを検出する分
岐命令検出手段と、 該分岐命令検出手段により先取りされた命令語が分岐命
令でながったとき後続の命令語の先取りにおいて前記分
岐ヒストリテーブルからの指示を無視せしめるように制
御する命令先取り制御手段とを含む。
(5)発明の実施例 次に本発明の一実施例を図面を参照して詳細に説明する
第1図を参照すると、本発明の一実施例は、命令アドレ
ス生成回路401.命令アドレス変換回路402.命令
解読回路403.オペランドアドレス生成回路404.
オペランドアドレス変換回路405.オペランド記憶回
路を有するオペランド読出し回路406.命令実行回路
407、命令記憶回路408.命令バッファ409、分
岐ヒストリテーブル(BHT ) 410゜命令アドレ
スレジスタ411y命令アドレス加算回路4129分岐
情報バッファ413.命令整列回路4149分岐情報切
換回路4151分岐情報レジスタ4 l 6 y 41
7 t 418 sおよび419゜予測確認回路420
.アドレス生成回路421゜選択回路422.レジスタ
423.命令先取り制御回路424およびフリップフロ
ップ425から構成されている 命令記憶回路408およびオペランド読出し回路406
内のオペランド記憶回路はともに主記憶装置そのもので
あってもよく、さらに命令記憶回路408が主記憶装置
の命令部の一部の写しである命令キャッシュメモリ、前
記オペランド記憶回路が主記憶装置のオペランド部の一
部の写しであるオペランドキャッジ−、メモリとして構
成されうる。前記命令キャッジ−メモリおよびオペラン
ドキャッシュメモリの詳細は、特開昭56−87282
号公報を参照できる。
本発明は前述の命令の処理単位に対応した装置構成を必
ずしも有する必要はなく例えは命令アドレス生成回路4
01とオペランドアドレス生成回路404.命令アドレ
ス変換回路402とオペランドアドレス変換回路405
.命令記憶回路408とオペランド読出し回w!J40
6内の記憶回路か共用されたコンビーータシステムにお
いても適用され得る。
前記分岐ヒストリテーブル(BHT)4.10は分岐命
令のアドレスを指定する情報と該分岐命令の実行の予測
としての分岐成否フラグと分岐先アドレスを第3図に示
すように対にして記憶している。前記命令記憶回路40
8に対する前記命令アドレスレジスタ(IAR)411
id、命令読出しのリクエストアドレスを保持して命令
の読出し動作を実行する。さらに前記命令アドレスレジ
スタ411(IAR)は分岐ヒストリテーブル410(
BHT)および命令アドレス加算回路412に信号線1
01を介して接続されている。前記レジスタ411の内
容は該分岐ヒストリテーブル410 (BAT)を索引
し読出されるべき命令のアドレスがそれに登録されて(
・るか否かを示す信号を信号線106に出力する。登録
されていれば対応する分岐先アドレスが信号1105に
読出される登録されていなげれば前記命令アドレス加算
回路412により後続の命令語の命令先取りのためのア
ドレスが生成される。
前記命令アドレス加算回路412141回のリクエスト
で読出される命令語を8Byteと仮定したとき単に”
IAR+8″を出力107に生成する回路である。前記
命令バッファ409は、命令記憶回路408から読出さ
れた8Byteの先取り命令語を蓄積し命令処理部への
命令の供給における待行列(Quew )を形成する。
前記命令整列回路414は、命令バッファ409が空の
とき信号線102を介して命令記憶回路408から読出
される8Byteの命令語に応答して前記命令バッファ
409が空でないとき信号線103を介して前記命令バ
ッファに貯えられる8Byteの命令語に応答して命令
を抽出して信号線104を介して命令解読回路403に
命令を供給する回路である。前記分岐情報バッファ41
3は、前記命令バッファ409に格納される命令語に対
応して用意されておりその命令語中に分岐成功と予沖j
された分岐命令が存在すれば、第7図に示す該分岐命令
の分岐情報を格納する回路であり、分岐命令のアドレス
は信号線101を介してまた分岐情報としての分岐先ア
ドレスおよびVビットは分岐ヒストリテーブル410(
BIT)から信号線105を介してそれぞれセットされ
る。前記分岐情報切替回路415は、命令バッファ40
9が空のとき信号線101および105を介して与えら
れる前記分岐情報をそうでな(・ときは前記分岐情報バ
ッファ403を介して与えられる前記分岐情報をそれぞ
れ出力する。前記レジスタ416,417.および41
8はそれぞれ分岐命令の命令解読、命令アドレス生成、
アドレス変換の各処理ステージに対応しその分岐情報を
保持する。前記分岐情報レジスタ419はその分岐先ア
ドレス部を該分岐命令の実行によって生成される実際の
分岐先アドレスに置き換えて保持するレジスタである。
前記予測確認回路420は分岐命令の実行によって生成
される実際の分岐命令の生成結果と前記分岐情報レジス
タ418に保持される該分岐命令の予測情報との一致を
とる回路である。前記アドレス生成回路421は前記分
岐情報レジスタ419に保持される分岐命令のアドレス
と該分岐命令自身の命令語長とを加算し分岐N0GO側
の命令の命令アドレスを生成する。前記選択回路422
は分岐命令の成否信号線111の状態に応答して該信号
線の状態が分岐GOを示すとき線115を介して与えら
れる前記分岐情報レジスタ419に保持される分岐先ア
ドレス部の出力選択し、前記線の状態が分岐N0GOを
示ずとき線116を介して与えられる前記アドレス生成
回路421の出力を選択し、信号線113を介して該選
択回路422の出力をレジスタ423に供給する。前記
レジスタ423は分岐命令の予測が失敗したとき分岐ヒ
ス)IJテーブル410(BHT)を更新するためのも
のであり、さらに信号線117を介して命令アドレスレ
ジスタ411 (IAR)に命令先取りのための新た々
アドレスを供給する。前記命令先取り制御回路424は
線106を介して分岐ヒストリテーブル410(BHT
)がら与えられる分岐予測信号および予測確認回路から
線112を介して与えられる予測成否信号に基づいて命
令アドレスレジスタ411(IAR)の入力を制御する
回路である。
次に前記分岐ヒストリテーブル41O(BHT)、前記
予測確認回路420および前記命令先取り制御回路42
4の詳細なブロック図とタイムチャートを参照し表から
本実施例の動作を詳細に説明する。
第2図を参照すると、前記分岐ヒストリテーブル410
(B)]T)は、ディレクトリ記憶部50j、データ記
憶部5o2.テスト回路503゜504.505.およ
び506.ブライオリティ回路507、レベル選択回路
5o8.およびオア回路509を備えて(・る。前記記
憶部501および502は、1回のリクエストに対して
命令記憶回路408から読出される命令語の単位をブロ
ックの単位とし、セット数m、レベル数nの記憶部であ
る。
第3図を参照すると、記憶部501には分岐命令の命令
アドレスの一部とその内容が有効が否かを示すVビット
が格納され記憶部502には、分岐先アドレスの実アド
レスが格納されている。前記Vビットは対応する分岐ヒ
ストリテーブル(BI(T)4−10のワードの有効性
を示すと同時に該分岐命令の実行の予測としての分岐成
否ンラグの機能を有する。
この分岐ヒストリテーブル(BI(T)410への索引
は以下のようなセットアソシアティブ法によって行われ
る。
第5図に示される前記テスト回路503,504゜50
5および506はテーブル410の各レベルに対応して
命令アドレスレジスタ411 (IAR)に保持される
リクエストアドレスが各レベルのB HT  A A 
i(+はレベルに対応するサフィクスを示す)に登録さ
れて(・るか否かを示す信号を信号線130,131,
132,133に出力する。
第4図を参照すると、前記テスト回路503゜504.
505および506のそれぞれは、−数回路701およ
び大小比較回路702かも構成されている。前記比較回
路701では、命令アドレスレジスタ(IAR)411
に保持されるリクエストアドレスの一部IAR(:18
−28)をセットアドレスとして読出された記憶部50
1の各レベルの内容とを読出し前記レジスタ411の内
容IAR(:4−17)とが比較され、等しいアドレス
が存在するか否かを検出する。該−数回路701の出力
により命令アドレスレジスタ(IAR)411に保持さ
れるリクエストアドレスで読出されるべき命令語の8B
yteブロツク中にすでに分岐ヒストリテーブル(BH
T)410に登録された分岐命令が存在するかが、判明
する。しかしリクエストアドレスとそれが読出すべき分
岐命令との対応をとるには上記一致検出のみでは不十分
である。
第5図を参照すると、1回のリクエストで読出される8
Byteの命令語のブロック中に2By t e命令B
CO,A、BCl、BC2の4個の命令が存在する。命
令BCO,BC’l、BC2がともに分岐成功と予測さ
れた分岐命令であるときには各々の分岐命令はともにそ
のアドレスの一部が記憶部(BHT−AA)501に登
録される。このとき他の分岐命令から命令Aに分岐して
命令Aのアドレス<A>が前記命令語のブロックを読出
すためのリクエストアドレスとして命令アドレスレジス
タ(IAR)411に保持されるときには、分岐ヒス)
 IJテーブル(BHT)410がら読出されるべき分
岐命令の情報は命令の実行の経路から分岐命令BCIの
情報でなければならない。
従って前記レジスタ(IAR)411に保持されるリク
エストアドレスと前記記憶部(BHT−AAi) 50
1に保持される分岐命令のアドレスとの関係が上記の一
致条件とともに次の関係が成立するとき対応するレベル
のBHT−HITi信号が生成される。この信号は線1
30−133を介してオア回路509に与えられ、該B
HT−HITi信号のオア信号が線106を介して出力
され分岐予測信号(BHT−H工T信号)とガる。
BHT−HIT 1−(IAR(:4−17)=BHT
−、静’i(:’i 17))(IAJt(:29,3
0)≦BHT−AAi(:29,30BHT−AA 1
(V) 再び第4図を参照すると、前記大小比較回路は、この条
件を実現する回路である。
さらに前記信号BHT−HITiの条件か2ヶ以上のレ
ベルにお(・て成立したとき記憶部501の対応するレ
ベル(BHT−AAi )に保持される分岐命令のアド
レスの8By t eブロック内アトvスBHT−AA
4 (: 29 、30 ) c7)値の最っとも小さ
いレベルが選択される必要がある。再び第5図を参照す
ると、命令BC1およびBC2の分岐命令関係情報が格
納される分岐ヒストリテーブル4100レベルで前記信
号BHT−HITi 条件が共に成立する。このとき命
令の実行の経路から命令BC1に対するレベルが選択さ
れる必要がある。
前記プライオリティ回路507は、前記信号BHT−H
ITiの2ヶ以上の成立に対するものであり、この出力
により記憶部BHT−DA 502の508を介して読
出される。
第6図を参照すると、前記プライオリティ回路507は
アンド回路群601−604およびオア回路群605−
608から構成されて(・る。前記アンド回路群601
−604はn+1個並列に配置されている。前記第2図
におけるレベル選択回路508のnケのレベルの選択信
号は第6図における信号V。、Vl、V、 、V、によ
り以下のように与えられる。
Voのとき  V。Lo、Vo、L、、−・−、、、V
oLnVoV、のとき  VILo、VIL、 、・、
−、V、 Lnvo−Vl・■2のとき   v2Lo
、■2LI、・・・・・・・・・、v2LnVo ” 
V+ ” V2− V、のとぎ V3Lo、 V3L1
. 町、、 、 V、 Ln以上のようにして第2図に
おけるレベル選択回路508がら読出された分岐情報は
第1図の命令記憶回路4.08から脱出される命令と対
応づけることが可能である。
第9図には、命令記憶回路408における命令と分岐ヒ
ストリテーブル(BHT)410における分岐情報の上
記対応関係が示されて(・る。命令の実行IL柔が命令
A。1分岐命令BCo、 B1. BC,。
B2 p B3 y B C2g CIs C2・・・
・・・・・・と予測された場合である。なお、〈A〉は
人命令のアドレスを、BCjは分岐命令をそれぞれ示す
第10図を参照すると、鯖記第9図に示した分岐ビスト
リテーブルBl(T410による命令先取り動作は次の
ようにされる。リクエストアドレスの命令アドレスレジ
スタ411のセットに応答して命令記憶回路408がら
命令語が読出され、これと同時にテーブルBHT410
が索引される。信号線106を介してBHT−BIT信
号が出力されると記憶部BH’I’−DA502の分岐
先アドレス〈B1〉がアドレスレジスタ411にセット
され、次の命令先取りが行われる。前記信号線106を
介してBI−IT −HI T信号が出力されないとき
には命令アドレス加算回路412に命令Aの8バイト:
i直置アドレス<A>が与えられ、「8」加算されたア
ドレスが出力され、次の命令先取りが遂次性われる。
以上の命令の先取りに従えば命令記憶回路408から読
出される命令語は、テーブルB)lT410の内容によ
る予測に従って順次読出され、命令バッファ409には
予測された命令の実行順に格納することが可能である。
このとき、たとえ信号BHT−BIT が出力されても
分岐予測手向と反対側の命令先取り力作を一部行わせし
めた後に分岐予測方向の命令先取り動作を行ってもよ(
・0 以上のようにして命令先取りされた命令が分岐命令で第
1図の命令整列口v1414により命令解読回路403
に導かれたとき同時に該分岐命令に対応する分岐情報が
爪切の分岐情報レジスタ416 (Q馬)に主ツトされ
る。
以降前記分岐命令の進行に伴(・前記命令解読アドレス
変換に対応して前記分岐情報が第2および第3の分岐情
報レジスタ417(QRJおよび418(QR2)に転
送される。そして前記分岐命令の実行によって生成され
る実際の分岐命令の生成結果と前記分岐情報レジスタ4
18(QI(2)に保持される該分岐命令の予測情報と
の一致か予測確認回路420によりチェックされる。第
8図を参照すると、前記予測確認回路420は比較回路
801、フリップフロップ802および803、アンド
回路804−806.真偽回路807および808、お
よびオア回路809から構成されて(・る。
前記比較回路801には分岐命令の実行により生成され
た分岐先アドレスの実アドレスが命令アドレス変換回路
402から信号線109を介して与えられるとともに、
分岐情報レジスタ418(Ql(2)から予測された分
岐先が線108を介して与えられる。前記比較回路80
1では両者の一致、不一致が判定される。判定結果と前
記レジスタ418から線108を介して与えられるVビ
ットがアンド回路806に与えられる。論理積結果によ
り分岐GOと予測されたときこの事実を示す信号が7リ
ツプフロツプ802にセットされる。このフリップフロ
ップ802の出力がIf I Ifで実際の分岐命令を
実行した結果が分岐N0GOであればアンド回路805
から予測GO失敗信号123が生成される。前記フリッ
プフロップ801の出力がIW で分岐命令の実行結果
がGoであればアンド回路804から予測N0GO失敗
信号124が生成される。
さらに該信号124と前記予測GO失敗信号123との
論理和がオア回路809から予測失敗信号112として
生成される。第1図および第11図を参照すると、分岐
情報レジスタ419(QR,)の分岐先アドレス部には
前記命令アドレス変換回路402から新たに生成される
分岐先アドレスがセットされる。また、前記分岐情報レ
ジスタ419 <QRs )の分岐命令BC1のアドレ
ス部の内容と該分岐命令BC1自身の命令語長部の内容
とがアドレス生成回路421により加算され分岐NC)
Go側の命令の命令アドレスが生成される。
そして分岐命令BCIの実際の実行により分岐GOなら
ば前記分岐情報レジスタ419(QRa)から線115
を介して与えられる分岐先アドレス部の出力〈Dl〉が
分岐N0GOならは線116を介して与えられる前記ア
ドレス生成回路421の出力〈B2〉が選択回路422
により選択される。前記分岐命令BCIの予測失敗信号
112が予測確認回路421から発生したとき該選択回
路422の出力〈Dl〉が線113を介してレジスタ4
23(WR)にセットされる。
一方分岐情報レジスタ4x9(QRa)の分岐命令のア
ドレス<BCI>は信号線114を介して命令アドレス
レジスタ411(IAR)にセットされる。このアドレ
スは該分岐命令に対応する分岐ヒストリテーブル410
(BHT)の更新のため線101を介して該テーブル4
10にライトアドレスとして供給される。前記予測失敗
信号112の出力がフリップフロップ425に支えられ
、この出力が指示パルスとして線119を介してテーブ
ル401に与えられる。この出力に応答して分岐命令の
次の命令先取り時のための分岐予測情報の更新が行なわ
れる。
この更新は本実施例では予測N0GO失敗のとき前記レ
ジスタ423(WR)に保持される新たな分岐先アドレ
スで行なわれ、予測GO失敗のときはVビットをリセッ
トするように行われるが分岐予測情報の更新におけるア
ルゴリズムを用いて他の方法により行なっても差しつか
えな(・。
予測失敗したとき予測側に後続する命令の動作はすべて
キャ′ンセルされ前記レジスタ423(W’R)に保持
される新たなリクエストアドレスが分岐ヒストリテーブ
ル410(BHT)の更新後に命令アドレスレジスタ4
11(IAR)に供給され改めて命令の取出しが開始さ
れる。
ここで問題に々るのは、命令語が自系もしくは他系のス
トア動作によって書換えられた場合前記分岐ヒス) I
)テーブル410(BIT)に保持される分岐情報をも
正しく書換えるかもしくは該情報を無効果にする必要が
ある。さらに、分岐ヒストリテーブル410(B)IT
)は分岐命令のアドレスと分岐先アドレスを対にして保
持されるた鴎にアドレス変換テーブルが更新された場合
上記実アドレスで保持される分岐情報はすべて無効果に
する必要がある。
しかしながら、すでに説明したように、分岐ヒス) I
Jテーブルを使用する分岐予測において予測は必ずしも
正確に行われる必要はな(・0すなわち、命令語の書換
えによって分岐方向や分岐先アドレスが変更されたとし
ても単に予測が間違えたものとして処理される。
問題は分岐ヒストリテーブルに登録された分岐命令がス
トア動作によって他の分岐命令以外の命令に置換えられ
るかもしくはアドレス変換テーブルの更新によって分岐
ヒス) IJテーフ゛ルに分岐命令として登録されたア
ドレス上に他の分岐命令以外の命令が割当てられた場合
のみである。このことから本発明では第1図に示すよう
に、分岐命令検出回路425を命令記憶回路408の出
力に付加することによりBHTHI工した命令語が確か
に分岐命令であることを確認する手段を設は分岐ヒスト
リテープ/I/410(BHT)(7)出力106によ
りBHTHI ’I” −カ?、=とえ検出されても対
応する命令語が分岐命令でなければ該BHT−BITは
無効と見做して制御すればよ(・。
第12図を参照すると、前記分岐命令検出回路425は
8バイト巾を有する命令記憶回路408の2バイト境界
毎の前半1)(イトの部分に分岐命令を検出する分岐命
令デコーダ1201,1202゜1203.および12
04.およびこれらデコータ゛1201−1204から
の出力を選択回路508力1らの選択指示信号102に
応答して選択する選択回路1206から構成されている
なお、前記命令記憶回路408の8バイトワード内のど
の位置においてBHT−)(ITが発生したかはBHT
瘤H,ITLだBIT−AA(:29.30)の値を見
れはよ−・。
従って、すでに第2図で説明したプライオリティ回路5
07の出力を選択信号として選択回路508から各レベ
ルのビットBH’ri(:29,3o:からのBHT、
AA、(:29,30)信号が選択される。
該BIT −A、A(:29 、30 )の値を選択信
号として選択回路12’06により前記デコーダ120
1,120S1203.1204の出力から分岐命令検
出信号119を選択し出力する。
第13図を参照すると、前記命令先取り制御回路424
はフリップフロッグt30t、真偽回路1302−13
04およびアンド回路1305かも構成されて(・る。
前記フリップフロップ1301は前記予測失敗信号11
2を1マシンサイクル保持するための7リツプフロツプ
である。この回路424の出力はアドレスレジスタ41
1の前段にあるセレクタの選択指示信号ととiる。この
選択指示信号は、前記命令アドレス加算回路412の出
力、前記レジスタ423の出力、前記テーブル410の
出力、および分岐情報レジスタ419の出力のうどもの
と牙1を通訳するかを指示するための信号である。
なお、この命令先取り制御回路424のf廿1 #: 
により分岐予測が的中したときには後述する第17図の
命令処理が行なわれ、分岐予測力(失敗したときには後
述する第18図の命令処理力′−1斤、 方われる。
前記命令アドレス加算回路11は線106を介してBH
,T−HIT信号が出力されな(・とき分岐N0GO側
の命令の先取りを行うためのアドレス生成を行う。この
ときアドレスは実アドレスで加算が行われるために、例
え(1、ページングヲ行つコンピュータシステムにお(
・て前記アドレス加算がページ境界を越えた場合アドレ
ス変換を孕めてやり直す必要が生じる。
このために前記命令アドレス加話回路11+こページ境
界越え検出回路を設は該検出回路によリページ境界越し
が生じた場合信号線Lllにより命令アドレス生成回路
1を起動し・命令先取り動作を改めて命令アドレス生成
回路(IA)401及び命令アドレス変換回路(IA、
)402から行うように制御すればよい。
ここで問題となるのはあらたに分岐ヒストリテーブルB
HT410に前記命令アドレス情報を登録するとき既存
のどの部分に格納された命令アドレス情報を追い出すか
である。この方法としては使われた順序、すガわち最も
古く使われたものから順に追(・出す方法L RU (
LeastRecently Used )情報が入っ
た順序、すなわち最も古く入ったものから1偵に追い出
す方法FIFO(First In First 0u
t)等があるがどちらを用いてもよい。
発明の効果 次に本発明の効果を第14図から第18図を参照しなが
ら詳細に説明する。
第14図を参照すると、命令の処理は一般的に次の8つ
の処理単位に分りられる。
(])  IAスICステージ:実き命令の命令アドレ
ス(論理アドレス)が生成 される。
(2)ITステージ:生成された命令アドレスのアドレ
ス変換か行われる。
(3)ICステージ:変換された命令の実アドレスで記
憶装置から命令か読出 される。
(411Dステージ:読出された命令がか読される。
(5+  OAステージ:解読された命令のオペランド
アドレス(論理アドレス) が生成される。
(6)OTステージ:生成されたオペランドアドレスの
アドレス変換が行なわ れる。
(7)QCステージ:変換されたオペランドの実アドレ
スで記憶装置からオペ ランドが読出される。
(8)EXステージ:命令が実行される。
上述のITステージおよびOTステージのアドレス変換
にお(・てアドレス変換)くソファを設は必要な変換テ
ーブルが該アドレス変換/<ソファに存在1゛れは上記
アドレス変換処理は高速に実行し有る。また、上述のI
CステージおよびOCステージの命令およびオペランド
の読出し動作にお(・て主記憶裂傷のテークの一部の写
しを保持てるキャッシーメそりを設は必要な命令および
オペランドが該キャッジ−メモリに存在すればICステ
ージおよびOCステージの処理は高速に行(・うる。情
報処理システムは上述の各処理単位に対応したIJ I
J−スを必ずしも有する必要はな(・、しかし、説明の
動部のためにここでは各処理単位にその機能を果す回路
があるものとする。上述のIT、O’rおよび4c、Q
Cの各ステージの高速処理が可能なとき複数の命令の処
理の流れを無駄なく実行する8段の]くイブライン制御
が可能である。
このときの分岐命令を含む命令の処理の涼れを第15図
および第16図を参照し々から説明する。
第15図は分岐命令の命令先取りにおいて前述のすべて
の分岐は1IGo″であると予測した場合の命令の処理
の流れを示す。す寿わち、命令AOは分岐命令BCの分
岐条件を決定する命令で該分岐条件は命令AOの実行結
果すなわち、時刻t7において決定される。分岐命令B
Cは時刻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分である。従っ
てγ=α=0.5であり1分岐命令当り平均的なロスサ
イクルは 3×γ+3×(l−γ)=3サイクヤ である。
一方第16図は分岐命令の命令先取りにお(・て、前述
の同じ分岐命令の過去の結果に基づ(・て予測を行った
場合の命令の処理の流れを示す。
すなわち、分岐命令BCは、時刻t4にお(・て解読さ
れるとともに分岐命令のアドレステーブルを探索しその
有無によるかもしくは分岐指示フラグの指示の予測によ
り、分岐GO側の命令B1を先取りするか分岐N0GO
側の命令A1を先取りするかを決定する。前回と同様に
時刻t2.t3およびt4には分岐N0GO側の後続命
令AI、A2およびA3の命令先取りのためのアドレス
生成が開始される。時刻t6およびt7には予測による
命令先取りの後続命令B1およびB2もしくはA4およ
びA5の命令のアドレス生成が開始される。時刻t7に
おいて分岐条件の判定結果により時刻t8以降は正しい
命令の処理の流れに従って処理が継続される。この場合
、分岐命令の出現によるパイプラインのロスサイクルは 分岐Goと予測して的中したとき    3サイクル分
岐N0GOと予測して的中したとき  Oサイクル分岐
GOと予測して失敗したとき    3サイクル分岐N
0GOと予測して失敗したとき  6サイクルである。
従って、分岐GO率γ=0.5  予測的中率α;0,
8と仮定したとき1分岐命令当りの平均的なロスサイク
ルは 3・γ・α+0・(1−γ)α十3γ(1−α)+6(
1−γ)(1−α) = 21サイクル を得る。
従ってこの従来の発明は同じ分岐命令の過去の結果に基
づいて予測を行った場合高い予測的中率を得るという原
理を用いることにより常に分岐GOと予測する第15図
に示す処理に比べ幾分の改良がみられる。しかし、この
改良された発明においてもたとえ予測的中時、分岐GO
の場合は依然として3サイクルのロスサイクルを要する
ことになり、これ以上短縮できな(・。従って分岐命令
が生じた場合たとえ予測が的中してもロスサイクルを生
じることになる。
第17図および第18図は本発明に−よる命令の処理の
流れを示して(・る。
本発明における命令の処理単位ICステージは命令を記
憶装置から読出す機能の他に、分岐ヒストリテーブルを
索引し読出される命令のアドレスが該分岐ヒストリテー
ブルに登録されているか否かを検出し、登録されていれ
ば対応する分岐情報を読出し、登録されていなければ後
続命令の命令先取りのためのアドレスを生成する機能を
有する。
第17図および第18図を参照すると、分岐命令BCの
時刻t1における動作は次のようにして行なわれる。ま
ず、該分岐命令BCが命令キャッシュメモリから読出さ
れると同時に分岐ヒストリテーブルが索引される。該分
岐命令BCの命令アドレスが登録されていれば対応する
分岐情報が読出される。該分岐情報を分析した結果、分
岐GO側の予測として該分岐情報中に含まれる分岐先ア
ドレスにより分岐先命令B1の命令先取りを開始するか
もしくは分岐N0GO側の予測として分岐N0GO側の
命令A1の命命アドレスを生成して命令A1の先取りを
開始するかが決定される。以降時刻t5までは前記分岐
命令BCの予測期間であり予測側の後続命命が先取りさ
れ時刻t5において分岐条件が決定される。予測的中時
には第17図に示すようにパイプラインの流れは乱れを
生ずることなく処理が継続される。予測失敗時には第1
8図に示すようにt6時刻で前記分岐ヒス) IJテー
ブルの更新を行った後に正しい命令の流れから命令の取
出しを行うように制御される。この場合、分岐命令の出
現によるパイプラインのロスサイクルは 予測が的中したとき   0サイクル 予測が失敗したとき   5ザイクル である。予測的中率αはこの場合分岐方向だけでなく分
岐先アドレスをも予測することから分岐方向だけの予測
に比べ若干低くなるがその割合は微々たるものである。
従って、予測的中率α−0,8として1分岐命令当りの
平均的なロスサイクルは 0、2 + 5・(1−α) = 1サイクルと々り従
来技術に比べて格段に改良される。
この発明では、分岐命令のアドレスと該分岐命令の分岐
先アドレスを含む分岐情報とを対にして記憶する分岐ヒ
ストリテーブルを命令先取り時に索引する。このあとで
前記分岐先アドレスで次の命令先取りを行わせしめるこ
とにより命令の解読を行うことなく前記分岐ヒストリテ
ーブルの記述に従って命令語を先取りすることができる
。このことにより本発明は該分岐ヒストリテーブルの記
述が正しい場合に限り命令バッファには命令の実行の経
路に従った命令の待行列を形成せしめ、情報処理システ
ムのパイプライン制御における分岐命令の実行をロスサ
イクルをとも々うことなく行なうことができると(・う
効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、第2図は分岐ヒス
トリテーブルの詳細な構成を示す図、第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図は第1
図1の命令先取り制御回路の詳細な構成を示す図、第1
4図は命令の処理の流れの概要を示す図、第15図およ
び第16図は従来の予浸I]方式を用(・た命令の処理
の流れを示す図、第17図は本発明において、分岐命令
の予測が的中したときの命令の処理の流れを示す図、お
よび第18図は本発明にお(・て分岐命令の予測が失敗
したときの命令の処理の流れを示す図である。 第1図から第18において、401・・曲・命令アドレ
ス生成回路、402・・・・・・命令アドレス変換回路
、403・・・・・・命令解読回路、4’04・・・・
・・オペランドアドレス生成回路、405・・・・・・
オペランドアドレス変換回路、406・・・・・・オペ
ランド読出し回路、407・・・・・・命令実行回路。 408・・・・・・命令記憶回路、409・・・・・・
命令バッファ、410・・・・・・分岐ヒストリテーブ
ル(BHT)、411・・・・・・命令アドレスレジス
タ(IAR)、412・・・・・・命令アドレス加算回
路、413・・・・・・分岐情報バッファ、414・・
・・・・命令整列回路、415・・・・・・分岐情報切
換回路、416・・・・・・分岐情報レジスタ(QRO
)、417・・・・・・分岐情報レジスタ(QRI )
、4.18・・・・−・分岐情報レジスタ(QR2)、
419・・・・・・分岐情報レジスタ(QR3)、42
0・・・・・・予測確認、回路、421・・・・・・ア
ドレス生成回路、422・・・・・・選択回路、423
・・・・・・レジスタ(W B、 )、424・・・・
・・命令先取り制御回路、425・・・・・・分岐命令
検出回路、501.502・・・・・・記憶部、!50
3 、504 。 505.506・・・・・・テスト回路、507・・・
・・プライオリティ回路、508・・・・・・選択回路
、509・・・・・・オア回路。 さ ″                 褒( 寸 焚 ・      口 !。 乃fj  囚 方14図 + t□+ f1+ tzl t3+ t41 t51
t6It7+t8’粥15圀 烙→’Q−> ”−> ” /4て て く く

Claims (1)

  1. 【特許請求の範囲】 命令先取り動作を行なうデータ処理装置の命令先取り制
    御方式において、 分岐命令のアドレスを指定する情報と該分岐命令の分岐
    先アドレスを含む分岐情報とを対にして記憶する分岐ヒ
    ストリテーブル手段と、先取りされた命令語が分岐命令
    であるか否かを検出する分岐命令検出手段と、 該分岐命令検出手段による先取りされた命令語が分岐命
    令でないとの検出に応答して命令語の先取りにおいて前
    記分岐ヒストリテーブル手段からの指示を無視せしめる
    ように制御する命令先取り制御手段とを含むことを特徴
    とする命令先取り制御方式。
JP5294683A 1982-11-17 1983-03-29 命令先取り制御方式 Pending JPS59177653A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP5294683A JPS59177653A (ja) 1983-03-29 1983-03-29 命令先取り制御方式
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
JP5294683A JPS59177653A (ja) 1983-03-29 1983-03-29 命令先取り制御方式

Publications (1)

Publication Number Publication Date
JPS59177653A true JPS59177653A (ja) 1984-10-08

Family

ID=12929034

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5294683A Pending JPS59177653A (ja) 1982-11-17 1983-03-29 命令先取り制御方式

Country Status (1)

Country Link
JP (1) JPS59177653A (ja)

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
JPS52100947A (en) * 1976-02-20 1977-08-24 Toshiba Corp Advanced control system
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
JPS52100947A (en) * 1976-02-20 1977-08-24 Toshiba Corp Advanced control system
JPS5759253A (en) * 1980-09-29 1982-04-09 Nec Corp Branch instruction prefetch system

Similar Documents

Publication Publication Date Title
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
CA1325283C (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
US5961637A (en) Split branch system utilizing separate set branch, condition and branch instructions and including dual instruction fetchers
JP2539199B2 (ja) デジタルプロセッサ制御装置
CA1325288C (en) Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
JPH0283735A (ja) 命令先取り装置
JPH0334024A (ja) 分岐予測の方法とそのための装置
JPH0689174A (ja) コンピュータメモリシステム
US6725365B1 (en) Branching in a computer system
US5848288A (en) Method and apparatus for accommodating different issue width implementations of VLIW architectures
KR930003124B1 (ko) 파이프라인방식의 분기명령제어장치
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JPS59177653A (ja) 命令先取り制御方式
JPH046983B2 (ja)
JPS5991554A (ja) 分岐方向予測を行なう命令先取り装置
JPS6310451B2 (ja)
JPS62159230A (ja) 命令先取り装置
JPS61175733A (ja) 分岐予測制御方式
JPH04245334A (ja) 情報処理装置の命令先読み制御方式
JPH0248733A (ja) 情報処理装置
JPS63311438A (ja) ストア命令不一致制御回路
JP3015565B2 (ja) 複数命令の並列実行機能を持つ情報処理装置
JPS62159231A (ja) 命令先取り装置
JPS62159232A (ja) 命令先取り装置
JP2002189592A (ja) 分岐予測装置およびマイクロプロセッサ