JPS62159228A - 命令先取り装置 - Google Patents
命令先取り装置Info
- Publication number
- JPS62159228A JPS62159228A JP32186A JP32186A JPS62159228A JP S62159228 A JPS62159228 A JP S62159228A JP 32186 A JP32186 A JP 32186A JP 32186 A JP32186 A JP 32186A JP S62159228 A JPS62159228 A JP S62159228A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- address
- circuit
- stage
- 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
Links
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、情報処理装置の命令シーケンスのステップに
含まれる分岐条件判定ステップ実行処理に先立って判定
結果を予測しつつ次の命令の先取りを行なう命令先取り
装置に関する。
含まれる分岐条件判定ステップ実行処理に先立って判定
結果を予測しつつ次の命令の先取りを行なう命令先取り
装置に関する。
従来、分岐ヒストリテーブルを用いて分岐予測を行なう
命令先取り装置としては、例えば特開昭59−9155
0号公報に見られる装置が存在する。この従来装置は分
岐命令のアドレスを指定する情報とその分岐命令の分岐
先アドレスを含む分岐情報とを対にして分岐ヒストリテ
ーブルに登録しておき、命令先取り動作としてキャッシ
ュメモリから命令を取出す時に、先取りする命令のアド
レスが分岐命令のアドレスとして分岐ヒストリテーブル
に登録されているか否かを調べ、登録されていれば対応
する分岐先アドレスを用いて次の命令先取り動作を行な
うよう制御するもので、分岐ヒストリテーブルに登録さ
れた情報が誤っていた場合には、その命令の分岐条件の
判定を行った後に分岐ヒストリテーブルの対応する情報
を更新し、その後に後続の命令の先取りをやり直すよう
構成されている。
命令先取り装置としては、例えば特開昭59−9155
0号公報に見られる装置が存在する。この従来装置は分
岐命令のアドレスを指定する情報とその分岐命令の分岐
先アドレスを含む分岐情報とを対にして分岐ヒストリテ
ーブルに登録しておき、命令先取り動作としてキャッシ
ュメモリから命令を取出す時に、先取りする命令のアド
レスが分岐命令のアドレスとして分岐ヒストリテーブル
に登録されているか否かを調べ、登録されていれば対応
する分岐先アドレスを用いて次の命令先取り動作を行な
うよう制御するもので、分岐ヒストリテーブルに登録さ
れた情報が誤っていた場合には、その命令の分岐条件の
判定を行った後に分岐ヒストリテーブルの対応する情報
を更新し、その後に後続の命令の先取りをやり直すよう
構成されている。
前記の従来技術では、ループ回数を管理するために同じ
計数分岐命令(以下BCT命令と呼ぶ)を多数回繰返す
ようなループを構成するプログラムにおいて、ループか
ら脱出する際のBCT命令の実行処理は、次のように行
なわれる。
計数分岐命令(以下BCT命令と呼ぶ)を多数回繰返す
ようなループを構成するプログラムにおいて、ループか
ら脱出する際のBCT命令の実行処理は、次のように行
なわれる。
ループを脱出する際のBCT命令は、分岐を行なわない
が、分岐ヒストリテーブルにはループ継続中の分岐情報
が保持されているため、BCT命令の後続の命令先取り
は分岐有り(以降分岐G。
が、分岐ヒストリテーブルにはループ継続中の分岐情報
が保持されているため、BCT命令の後続の命令先取り
は分岐有り(以降分岐G。
と呼ぶ)として処理されてしまう。このため、このルー
プ脱出時のBCT命令の計数動作が行なわれ、その結果
を参照して分岐条件判定ステップを実行した後、このB
CT命令に関する分岐情報が分岐無しく以降分岐NOC
,Oと呼ぶ)に更新され、続いて命令先取りのやり直し
が開始される。
プ脱出時のBCT命令の計数動作が行なわれ、その結果
を参照して分岐条件判定ステップを実行した後、このB
CT命令に関する分岐情報が分岐無しく以降分岐NOC
,Oと呼ぶ)に更新され、続いて命令先取りのやり直し
が開始される。
又、若しこのループが更に大きなループの中に組込まれ
ていて、この脱出したループに再び突入する際には、ル
ープを脱出する際に更新した分岐ヒストリテーブルの分
岐情報に従って分岐N0GO側の命令先取りが行なわれ
、BCT命令の分岐条件判定ステップ実行後に、分岐ヒ
ストリテーブルの対応する分岐情報が分岐Goに更新さ
れた後、命令のやり直しが開始される。
ていて、この脱出したループに再び突入する際には、ル
ープを脱出する際に更新した分岐ヒストリテーブルの分
岐情報に従って分岐N0GO側の命令先取りが行なわれ
、BCT命令の分岐条件判定ステップ実行後に、分岐ヒ
ストリテーブルの対応する分岐情報が分岐Goに更新さ
れた後、命令のやり直しが開始される。
以上述べたように、従来においては、ループを構成する
BCT命令の実行にあたっては、ループを脱出する際お
よび再びループに突入する際に多大なロスタイムを生じ
、性能低下を招くという欠点がある。
BCT命令の実行にあたっては、ループを脱出する際お
よび再びループに突入する際に多大なロスタイムを生じ
、性能低下を招くという欠点がある。
本発明はこのような従来の欠点を解消したもので、その
目的は、BCT命令に対する分岐情報が誤っていた場合
、速やかに正しい後続の命令先取り動作を行ない得るよ
うにすることにある。
目的は、BCT命令に対する分岐情報が誤っていた場合
、速やかに正しい後続の命令先取り動作を行ない得るよ
うにすることにある。
本発明は上記目的を達成するために、指定された汎用レ
ジスタの保持する計数値を計数する命令実行回路を有し
、該命令実行回路での計数結果により分岐の有無を決定
してBCT命令を実行する情報処理システムにおける命
令先取り装置において、 分岐命令のアドレスを指定する情報と該分岐命令の分岐
先アドレスを含む分岐情報とを対にして複数対記憶する
分岐ヒストリテーブル手段と、命令先取り動作を行なう
際に該命令先取り動作において先取りされる命令のアド
レスを指定する情報が前記分岐ヒストリテーブル手段に
登録されているか否かを調べる第1の点検手段と、前記
命令先取り動作によって先取りされた命令がBCT命令
である時には前記命令実行回路での計数動作に先立って
予め計数動作を行なう演算手段と、 前記演算手段による計数動作の結果に応答して分岐の有
無を調べる第2の点検手段と、前記第1の点検手段によ
る登録の判明に応答して前記分岐ヒストリテーブル手段
から対応する分岐情報を読出し、該分岐情報に従って命
令先取り動作を継続せしめるよう制御し、且つ、前記第
1および第2の点検手段の結果に応答して誤った命令先
取り動作が行なわれた時、即ちBCT命令がループ脱出
であるのに分岐Goの先取り動作が行なわれたか或いは
ループ継続であるのに分岐N0Goの先取りが行なわれ
た時には前記先取りされたBCT命令の実行を待たず社
、後続の誤った命令先取り動作を是正せしめるよう制御
する命令先取り制御手段とを備える。
ジスタの保持する計数値を計数する命令実行回路を有し
、該命令実行回路での計数結果により分岐の有無を決定
してBCT命令を実行する情報処理システムにおける命
令先取り装置において、 分岐命令のアドレスを指定する情報と該分岐命令の分岐
先アドレスを含む分岐情報とを対にして複数対記憶する
分岐ヒストリテーブル手段と、命令先取り動作を行なう
際に該命令先取り動作において先取りされる命令のアド
レスを指定する情報が前記分岐ヒストリテーブル手段に
登録されているか否かを調べる第1の点検手段と、前記
命令先取り動作によって先取りされた命令がBCT命令
である時には前記命令実行回路での計数動作に先立って
予め計数動作を行なう演算手段と、 前記演算手段による計数動作の結果に応答して分岐の有
無を調べる第2の点検手段と、前記第1の点検手段によ
る登録の判明に応答して前記分岐ヒストリテーブル手段
から対応する分岐情報を読出し、該分岐情報に従って命
令先取り動作を継続せしめるよう制御し、且つ、前記第
1および第2の点検手段の結果に応答して誤った命令先
取り動作が行なわれた時、即ちBCT命令がループ脱出
であるのに分岐Goの先取り動作が行なわれたか或いは
ループ継続であるのに分岐N0Goの先取りが行なわれ
た時には前記先取りされたBCT命令の実行を待たず社
、後続の誤った命令先取り動作を是正せしめるよう制御
する命令先取り制御手段とを備える。
実際には分岐GOであるBCT命令に対する分岐情報が
分岐ヒストリテーブル手段に登録されていないため分岐
N0GO側に後続の命令の先取りが行なわれ、或いは逆
に実際には分岐N0GOとなるBCT命令に対する分岐
情報が分岐ヒストリテーブル手段に登録されていてその
分岐情報に従って分岐GO側に後続の命令の先取りが行
なわれると、演算手段と第2の点検手段の結果に応答し
て、命令先取り制御手段により、前記先取りされたBC
T命令の分岐条件判定ステップの実行を待たずに後続の
誤った命令先取り動作が是正される。
分岐ヒストリテーブル手段に登録されていないため分岐
N0GO側に後続の命令の先取りが行なわれ、或いは逆
に実際には分岐N0GOとなるBCT命令に対する分岐
情報が分岐ヒストリテーブル手段に登録されていてその
分岐情報に従って分岐GO側に後続の命令の先取りが行
なわれると、演算手段と第2の点検手段の結果に応答し
て、命令先取り制御手段により、前記先取りされたBC
T命令の分岐条件判定ステップの実行を待たずに後続の
誤った命令先取り動作が是正される。
次に本発明について図面を参照して詳細に説明する。
第1図を参照すると本発明の一実施例は、命令アドレス
生成回路(IA)401、命令アドレス変換回路(IT
)402、命令解読回路(ID)403、オペランドア
ドレス生成回路(OA) 404 、オペランドアドレ
ス変換回路(OT) 405 、オペランド記憶回路を
有するオペランド読出し回路(QC)406、命令実行
回路(EX) 407 、命令記憶回路(IC)408
、命令バッファ409、分岐ヒストリテーブル(BHT
) 410 、命令アドレスレジスタ411、命令アド
レス加算回路412、分岐情報バッファ413、命令整
列回路414、分岐情報切換回路415、分岐情報レジ
スタ416.417,418,419,420 。
生成回路(IA)401、命令アドレス変換回路(IT
)402、命令解読回路(ID)403、オペランドア
ドレス生成回路(OA) 404 、オペランドアドレ
ス変換回路(OT) 405 、オペランド記憶回路を
有するオペランド読出し回路(QC)406、命令実行
回路(EX) 407 、命令記憶回路(IC)408
、命令バッファ409、分岐ヒストリテーブル(BHT
) 410 、命令アドレスレジスタ411、命令アド
レス加算回路412、分岐情報バッファ413、命令整
列回路414、分岐情報切換回路415、分岐情報レジ
スタ416.417,418,419,420 。
選択回路421,422 、命令先取り制御回路423
、○Aステージ予測確認回路424、OTXステージ予
測確認回路425OCステージ予測確認回路426、E
Xステージ予測確認回路427、命令アドレスリカバレ
ジスタ428、アドレス生成回路430,431,43
2゜演算回路433、レジスタ434,435 、フリ
フプフロソブ436,437,438,439,440
,441から構成されている。
、○Aステージ予測確認回路424、OTXステージ予
測確認回路425OCステージ予測確認回路426、E
Xステージ予測確認回路427、命令アドレスリカバレ
ジスタ428、アドレス生成回路430,431,43
2゜演算回路433、レジスタ434,435 、フリ
フプフロソブ436,437,438,439,440
,441から構成されている。
なお、命令先取り制御回路423が命令先取り制御手段
を構成し、演算回路433が演算手段*2を構成し、O
TXステージ予測確認回路425第2の点検手段*3を
構成し、分岐ヒストリ・テーブル410が分岐ヒストリ
テーブル手段および第1の点検手段*1を構成する。
を構成し、演算回路433が演算手段*2を構成し、O
TXステージ予測確認回路425第2の点検手段*3を
構成し、分岐ヒストリ・テーブル410が分岐ヒストリ
テーブル手段および第1の点検手段*1を構成する。
命令記憶回路408およびオペランド読出し回路406
内のオペランド記憶回路は共に主記憶装置そのものであ
ってもよく、さらに命令記憶回路408が主記憶装置の
命令部の一部の写しである命令キャッシュメモリ、前記
オペランド記憶回路が主記憶装置のオペランド部の一部
の写しであるオペランドキャッシュメモリとして構成し
ても良い。
内のオペランド記憶回路は共に主記憶装置そのものであ
ってもよく、さらに命令記憶回路408が主記憶装置の
命令部の一部の写しである命令キャッシュメモリ、前記
オペランド記憶回路が主記憶装置のオペランド部の一部
の写しであるオペランドキャッシュメモリとして構成し
ても良い。
本発明は前述の命令の処理華位に対応した装置構成を必
ずしも有する必要はなく、例えば命令アドレス生成回路
401 とオペランドアドレス生成回路404.命令ア
ドレス変換回路402とオペランドアドレス変換回路4
05.命令記憶回路408とオペランド続出し回路40
6内の記憶回路が共用されたコンピュータシステムにお
いても適用され得る。
ずしも有する必要はなく、例えば命令アドレス生成回路
401 とオペランドアドレス生成回路404.命令ア
ドレス変換回路402とオペランドアドレス変換回路4
05.命令記憶回路408とオペランド続出し回路40
6内の記憶回路が共用されたコンピュータシステムにお
いても適用され得る。
第1図において、分岐ヒストリテーブル(BHT) 4
10は分岐命令のアドレスを指定する情報と該分岐命令
の実行の予測としての分岐成否フラグ(Vl と分岐先
アドレスとを第3図に示すように対にして記憶している
。命令記憶回路40Bに対する命令アドレスレジスタ(
FAR)411は、命令続出しのリクエストアドレスを
保持して命令の読出し動作を実行する。
10は分岐命令のアドレスを指定する情報と該分岐命令
の実行の予測としての分岐成否フラグ(Vl と分岐先
アドレスとを第3図に示すように対にして記憶している
。命令記憶回路40Bに対する命令アドレスレジスタ(
FAR)411は、命令続出しのリクエストアドレスを
保持して命令の読出し動作を実行する。
さらに命令アドレスレジスタ(IAR)411は分岐ヒ
ストリテーブル(BIT)410および命令アドレス加
算回路412に信号線101を介して接続されている。
ストリテーブル(BIT)410および命令アドレス加
算回路412に信号線101を介して接続されている。
レジスタ411の内容は分岐ヒストリテーブル(BHT
)410を索引し、読出されるべき命令のアドレスがそ
れに登録されているか否がを示す信号を信号綿106に
出力する。登録されていれば対応する分岐先アドレスが
信号線105に読出される。登録されていなければ命令
アドレス加算回路412により後続の命令語の命令先取
りのためのアドレスが生成される。
)410を索引し、読出されるべき命令のアドレスがそ
れに登録されているか否がを示す信号を信号綿106に
出力する。登録されていれば対応する分岐先アドレスが
信号線105に読出される。登録されていなければ命令
アドレス加算回路412により後続の命令語の命令先取
りのためのアドレスが生成される。
命令アドレス加算回路412は1回のリクエストで続出
される命令語を8Byteと仮定したとき単に“IAR
+8”を出力107に生成する回路である。命令バッフ
ァ409は、命令記憶回路408から読出された8By
teの先取り命令語を蓄積し命令処理部への命令の供給
における待ち行列(Queue)を形成する。命令整列
回路414は、命令バッファ409が空のとき信号kQ
102を介して命令記憶回路408から読み出される。
される命令語を8Byteと仮定したとき単に“IAR
+8”を出力107に生成する回路である。命令バッフ
ァ409は、命令記憶回路408から読出された8By
teの先取り命令語を蓄積し命令処理部への命令の供給
における待ち行列(Queue)を形成する。命令整列
回路414は、命令バッファ409が空のとき信号kQ
102を介して命令記憶回路408から読み出される。
8Byteの命令語に対応して、また命令バッファ40
9が空でないとき信号線103を介して前記命令バッフ
ァに貯えられる8Byteの命令語に対応してそれぞれ
命令を抽出して信号線104を介して命令解読回路40
3に命令を供給する回路である。
9が空でないとき信号線103を介して前記命令バッフ
ァに貯えられる8Byteの命令語に対応してそれぞれ
命令を抽出して信号線104を介して命令解読回路40
3に命令を供給する回路である。
命令解読回路403は信号線104を介して命令語が与
えられると、その命令語長を信号線112を介して分岐
情報レジスタ417へ報告するとともに、その命令が分
岐命令(無条件分岐命令5条件分岐命令など分岐動作を
行ない得る命令)であるか否かを信号線113を介して
OAステージ予測確認回路424へ報告し、さらに、そ
の命令が無条件分岐命令であるか否かと、計数分岐命令
(Branch oncoun を命令:以降BCT命
令と呼ぶ)であるか否かを信号線114を介してレジス
フ435ヘセツトする機能を有する。
えられると、その命令語長を信号線112を介して分岐
情報レジスタ417へ報告するとともに、その命令が分
岐命令(無条件分岐命令5条件分岐命令など分岐動作を
行ない得る命令)であるか否かを信号線113を介して
OAステージ予測確認回路424へ報告し、さらに、そ
の命令が無条件分岐命令であるか否かと、計数分岐命令
(Branch oncoun を命令:以降BCT命
令と呼ぶ)であるか否かを信号線114を介してレジス
フ435ヘセツトする機能を有する。
分岐情報バッファ413は、命令バッファ409に格納
される命令語に対して用意されておりその命令語中に分
岐成功と予測された分岐命令が存在すれば、第7図に示
す該分岐命令の分岐情報を格納する回路であり、分岐命
令のアドレスは信号線101を介して、また分岐情報と
しての分岐先アドレスおよびvビットは分岐ヒストリテ
ーブル(BHT)410から信号線105を介してそれ
ぞれセントされ、分岐成功と予測さた分岐命令が存在し
なければ、■ビットはOに、命令アドレスは信号線10
1を介してそれぞれセントされる。
される命令語に対して用意されておりその命令語中に分
岐成功と予測された分岐命令が存在すれば、第7図に示
す該分岐命令の分岐情報を格納する回路であり、分岐命
令のアドレスは信号線101を介して、また分岐情報と
しての分岐先アドレスおよびvビットは分岐ヒストリテ
ーブル(BHT)410から信号線105を介してそれ
ぞれセントされ、分岐成功と予測さた分岐命令が存在し
なければ、■ビットはOに、命令アドレスは信号線10
1を介してそれぞれセントされる。
分岐情報切換回路415は、命令バッファ409が空の
とき信号線101および105を介して与えられる前記
分岐情報を、そうでないときは分岐情報バッファ413
を介して与えられる前記分岐情報をそれぞれ出力する。
とき信号線101および105を介して与えられる前記
分岐情報を、そうでないときは分岐情報バッファ413
を介して与えられる前記分岐情報をそれぞれ出力する。
レジスタ416 、417および418はそれぞれ分岐
命令の各処理ステージに対応し、第8図に示す分岐情報
を保持する。分岐情報レジスタ419 、420はその
分岐先アドレス部を該分岐命令の実行によって生成され
る実際の分岐先アドレスに1き換えて保持するレジスタ
である。
命令の各処理ステージに対応し、第8図に示す分岐情報
を保持する。分岐情報レジスタ419 、420はその
分岐先アドレス部を該分岐命令の実行によって生成され
る実際の分岐先アドレスに1き換えて保持するレジスタ
である。
アドレス生成回路430,431,432は、それぞれ
分岐情報レジスタ417,418,420に保持される
分岐命令のアドレスと、該分岐命令自身の命令語長とを
加算して分岐N0GO側の命令の命令アドレスを生成す
る。
分岐情報レジスタ417,418,420に保持される
分岐命令のアドレスと、該分岐命令自身の命令語長とを
加算して分岐N0GO側の命令の命令アドレスを生成す
る。
オペランドアドレス生成回路404は、命令の指定する
オペランドアドレスを生成するとともに、命令がBCT
命令である場合、そのBCT命令によって指定された汎
用レジスタの保持する計数動作を行なうための値を信号
線120を介して演算回路433へ出力する機能を有す
る。
オペランドアドレスを生成するとともに、命令がBCT
命令である場合、そのBCT命令によって指定された汎
用レジスタの保持する計数動作を行なうための値を信号
線120を介して演算回路433へ出力する機能を有す
る。
OAステージ予測確認回路424は、命令解読回路40
3で解読した命令が分岐命令でないのに、対応する分岐
情報が分岐ヒストリテーブルから続出されたか否かを検
出する回路であり、信号線113を介して命令の解読結
果を、信号線115を介して分岐情報レジスタ416の
保持するVビットをそれぞれ受取り、分岐命令でないの
にVビットがlである時にはOAステージ予測失敗信号
を信号線121を介して命令先取り制御回路423とフ
リップフロップ436へ出力する。
3で解読した命令が分岐命令でないのに、対応する分岐
情報が分岐ヒストリテーブルから続出されたか否かを検
出する回路であり、信号線113を介して命令の解読結
果を、信号線115を介して分岐情報レジスタ416の
保持するVビットをそれぞれ受取り、分岐命令でないの
にVビットがlである時にはOAステージ予測失敗信号
を信号線121を介して命令先取り制御回路423とフ
リップフロップ436へ出力する。
演算回路433は、信号線12−0を介して与えられる
計数値から値“1”を減算する計数動作を行ない、計数
結果が“O”であれば計数結果0信号を信号線123を
介してOTステージ予測確認回路425へ出力する。
計数値から値“1”を減算する計数動作を行ない、計数
結果が“O”であれば計数結果0信号を信号線123を
介してOTステージ予測確認回路425へ出力する。
OTステージ予測確認回i¥8425は、OAステージ
予測確認回路424の出力するOAステージ予測失敗信
号を保持するフリップフロップ436の出力。
予測確認回路424の出力するOAステージ予測失敗信
号を保持するフリップフロップ436の出力。
命令が無条件分岐命令であるかBCT命令であるかを保
持するレジスタ435の出力、fJ算回路433の出力
する計数結果0信号、および分岐情報レジスタ41Bの
保持するVビットより、無条件分岐命令なのに対応する
分岐情報のVビットが0である時、およびBCT命令で
且つ計数結果0信号が出力されない即ち分岐を行なう時
なのに対応する分岐情報のVビットが0である時には、
信号線129を介して命令先取り制御回路423へOT
ステージ予測失敗信号を、信号線130を介してフリッ
プフロップ437へOTステージBHT更新指示信号を
、信号線131を介してフリップフロップ438と選択
回路421へOTステージGo先取り指示信号をそれぞ
れ出力し、BCT命令で且つ計数結果O信号が出力され
た、即ち、分岐を行なわない時なのに対応する分岐情報
のVビットが1である時には、信号線129と信号&?
t130へそれぞれOTステージ予測失敗信号とOTス
テージBHT更新指示信号を出力する。
持するレジスタ435の出力、fJ算回路433の出力
する計数結果0信号、および分岐情報レジスタ41Bの
保持するVビットより、無条件分岐命令なのに対応する
分岐情報のVビットが0である時、およびBCT命令で
且つ計数結果0信号が出力されない即ち分岐を行なう時
なのに対応する分岐情報のVビットが0である時には、
信号線129を介して命令先取り制御回路423へOT
ステージ予測失敗信号を、信号線130を介してフリッ
プフロップ437へOTステージBHT更新指示信号を
、信号線131を介してフリップフロップ438と選択
回路421へOTステージGo先取り指示信号をそれぞ
れ出力し、BCT命令で且つ計数結果O信号が出力され
た、即ち、分岐を行なわない時なのに対応する分岐情報
のVビットが1である時には、信号線129と信号&?
t130へそれぞれOTステージ予測失敗信号とOTス
テージBHT更新指示信号を出力する。
選択回路421は、OTステージ予測確認回路425の
出力するOTステージGo先取り指示信号が1である時
は命令アドレス変換回路402の出力する分岐先アドレ
スを、0である時はアドレス生成回路431の出力する
分岐N0GO側のアドレスを選択する。
出力するOTステージGo先取り指示信号が1である時
は命令アドレス変換回路402の出力する分岐先アドレ
スを、0である時はアドレス生成回路431の出力する
分岐N0GO側のアドレスを選択する。
OCステージ予測確認回路426は、OTステージBH
T更新指示信号を保持するフリップフロップ437の出
力、OTステージGO先取り指示信号を保持するフリッ
プフロップ438の出力、命令アドレス変換回路402
の出力する分岐先アドレス。
T更新指示信号を保持するフリップフロップ437の出
力、OTステージGO先取り指示信号を保持するフリッ
プフロップ438の出力、命令アドレス変換回路402
の出力する分岐先アドレス。
及び分岐情報レジスタ418の保持する予測された分岐
先アドレスとVビットより、Vビットが1で分岐GOと
予測され、実際の分岐先アドレスと予測された分岐先ア
ドレスが異なっていて更にOTステージ以前で予測の失
敗が検出されていない時には、信号線140を介して○
Cステージ予測失敗信号を命令先取り制御回路423へ
、信号線156を介してフリップフロップ439へOC
ステージBHT更新指示信号を、信号線141を介して
フリップフロップ440へOCステージGo先取り指示
信号をそれぞれ出力する。
先アドレスとVビットより、Vビットが1で分岐GOと
予測され、実際の分岐先アドレスと予測された分岐先ア
ドレスが異なっていて更にOTステージ以前で予測の失
敗が検出されていない時には、信号線140を介して○
Cステージ予測失敗信号を命令先取り制御回路423へ
、信号線156を介してフリップフロップ439へOC
ステージBHT更新指示信号を、信号線141を介して
フリップフロップ440へOCステージGo先取り指示
信号をそれぞれ出力する。
EXステージ予測確認回路427は、ocステージBH
T更新指示信号を保持するフリップフロップ439の出
力、OCステージGO先取り指示信号を保持するフリッ
プフロップ440の出力1分岐情報レジスタ419の保
持するVビ・7ト、及び命令実行回路407の出力する
分岐成否信号より、実際の分岐成否とVビットが異なり
、且つ、oCステージ以前の予測失敗の検出にともなう
先取りのやり直しが行なわれていない時には、信号線1
47を介して命令先取り制御回路423へEXステージ
予測失敗信号を、また、信号線148を介して同じく命
令先取り制御回路423とフリップフロップ441へE
XステージBHT更新指示信号を出力する。
T更新指示信号を保持するフリップフロップ439の出
力、OCステージGO先取り指示信号を保持するフリッ
プフロップ440の出力1分岐情報レジスタ419の保
持するVビ・7ト、及び命令実行回路407の出力する
分岐成否信号より、実際の分岐成否とVビットが異なり
、且つ、oCステージ以前の予測失敗の検出にともなう
先取りのやり直しが行なわれていない時には、信号線1
47を介して命令先取り制御回路423へEXステージ
予測失敗信号を、また、信号線148を介して同じく命
令先取り制御回路423とフリップフロップ441へE
XステージBHT更新指示信号を出力する。
選択回路422は分岐成否信号線149の状態に応答し
て該信号線の状態が分岐Goを示すとき、信号線152
を介して与えられる分岐情報レジスタ420の保持する
分岐先アドレスを選択し、分岐N0GOを示す時には信
号線153を介して与えられるアドレス生成回路432
の出力を選択し、その出力を 5信号線155を介して
レジスタ434と命令アドレスリカバレジスタ428へ
供給する。
て該信号線の状態が分岐Goを示すとき、信号線152
を介して与えられる分岐情報レジスタ420の保持する
分岐先アドレスを選択し、分岐N0GOを示す時には信
号線153を介して与えられるアドレス生成回路432
の出力を選択し、その出力を 5信号線155を介して
レジスタ434と命令アドレスリカバレジスタ428へ
供給する。
レジスタ434は、分岐予測が失敗した時に、分岐ヒス
トリテーブル(BHT)410を更新するためのもので
あり、命令アドレスリカバレジスタ428は命令アドレ
スレジスタ (IAR)411に分岐ヒストリテーブル
410の内容を更新するためのライトアドレスがセット
され・・後に命令先取りのための新たなアドレスを供給
・るためのものである。
トリテーブル(BHT)410を更新するためのもので
あり、命令アドレスリカバレジスタ428は命令アドレ
スレジスタ (IAR)411に分岐ヒストリテーブル
410の内容を更新するためのライトアドレスがセット
され・・後に命令先取りのための新たなアドレスを供給
・るためのものである。
命令先取り制御回路423は、信号線121.129.
140゜147を介してそれぞれ与えられるOA、OT
、OC,EX各ステージの予測失敗信号、及び信号線1
48を介して与えられるEXステージBHT更新指示信
号に基づいて、命令アドレスレジスタ(IAR)411
の入力と、命令アドレスリカバレジスタ426の入力と
を制御する回路である。
140゜147を介してそれぞれ与えられるOA、OT
、OC,EX各ステージの予測失敗信号、及び信号線1
48を介して与えられるEXステージBHT更新指示信
号に基づいて、命令アドレスレジスタ(IAR)411
の入力と、命令アドレスリカバレジスタ426の入力と
を制御する回路である。
第16図を参照すると、第1図に示す本発明の実施例に
おける命令の処理は、次の8つの処理華位に分けられる
。
おける命令の処理は、次の8つの処理華位に分けられる
。
+IIIAステージ:実行すべき命令アドレス(論理ア
ドレス)が生成される。
ドレス)が生成される。
+2117ステージー生成された命令アドレスのアドレ
ス変換が行なわれる。
ス変換が行なわれる。
+311Cステージ:変換された命令の実アドレスで記
憶装置から命令が読出さ れる。
憶装置から命令が読出さ れる。
+411Dステージ:続出された命令が解読される。
+510Aステージ:解読された命令のオペランドアド
レス(論理アドレス)が 生成される。
レス(論理アドレス)が 生成される。
+6107ステージ:生成されたオペランドアドレスの
アドレス変換が行なわれ る。
アドレス変換が行なわれ る。
(7) OCステージ:変換されたオペランドの実アド
レスで記憶装置からオペラ ンドが続出される。
レスで記憶装置からオペラ ンドが続出される。
+818Xステージ:命令が実行される。
上述のITステージ及びOTステージのアドレス変換に
おいてアドレス変換バッファを設は必要な変換テーブル
が該アドレス変換バッファに存在すれば上記アドレス変
換処理は高速に実行し得る。
おいてアドレス変換バッファを設は必要な変換テーブル
が該アドレス変換バッファに存在すれば上記アドレス変
換処理は高速に実行し得る。
また、上述のICステージおよびOCステージの命令お
よびオペランドの読出し動作において主記憶装置のデー
タの一部の写しを保持するキャッシュメモリを設は必要
な命令およびオペランドが該キャッシュメモリに存在す
ればICステージおよびOCステージの処理は高速に行
ない得る。
よびオペランドの読出し動作において主記憶装置のデー
タの一部の写しを保持するキャッシュメモリを設は必要
な命令およびオペランドが該キャッシュメモリに存在す
ればICステージおよびOCステージの処理は高速に行
ない得る。
上述のIT、OTおよびIC,QCの各ステージの高速
処理が可能なとき、複数の命令の処理の流れを無駄なく
実行する8段のパイプライン制御が可能である。
処理が可能なとき、複数の命令の処理の流れを無駄なく
実行する8段のパイプライン制御が可能である。
次に分岐ヒストリテーブル(BHT) 410 、 O
A、OT、QC,EX各ステージの予測確認回路424
.425,426,427および命令先取り制御回路4
23のブロック図とタイムチャートを参照しながら本実
施例の動作を詳細に説明する。
A、OT、QC,EX各ステージの予測確認回路424
.425,426,427および命令先取り制御回路4
23のブロック図とタイムチャートを参照しながら本実
施例の動作を詳細に説明する。
第2図を参照すると分岐ヒストリテーブル(BHT)4
10は、ディレクトリ記憶部501、データ記憶部50
2、テスト回路503,504,505,506 、プ
ライオリティ回路507、レベル選択回路508、およ
びオア回路509を備えている。記憶部501および5
02は、1回のリクエストに対して命令記憶回路408
から読出される命令語の単位をブロックの単位とし、セ
ット数m、レベル数nの記憶部である。
10は、ディレクトリ記憶部501、データ記憶部50
2、テスト回路503,504,505,506 、プ
ライオリティ回路507、レベル選択回路508、およ
びオア回路509を備えている。記憶部501および5
02は、1回のリクエストに対して命令記憶回路408
から読出される命令語の単位をブロックの単位とし、セ
ット数m、レベル数nの記憶部である。
第3図を参照すると、記憶部501には分岐命令の命令
アドレスの一部とその内容が有効か否かを示すVビット
が格納され、記憶部502には分岐先アドレスの実アド
レスが格納されている。前記Vビットは対応する分岐ヒ
ストリテーブル(BHT)410のワードの有効性を示
すと同時に該分岐命令の実行の予測としての分岐成否フ
ラグの機能を有する。
アドレスの一部とその内容が有効か否かを示すVビット
が格納され、記憶部502には分岐先アドレスの実アド
レスが格納されている。前記Vビットは対応する分岐ヒ
ストリテーブル(BHT)410のワードの有効性を示
すと同時に該分岐命令の実行の予測としての分岐成否フ
ラグの機能を有する。
この分岐ヒストリテーブル(BHT)410への索引は
以下のようなセットアソシアティブ法によって行なわれ
る。
以下のようなセットアソシアティブ法によって行なわれ
る。
第2図に示されるテスト回路503,504.505及
び506はテーブル410の各レベルに対応して命令ア
ドレスレジスタ(IAR)411に保持されるリクエス
トアドレスが各レベルのBHT−AAi (iはレベ
ルに対応するサフィクスを示す)に登録されているか否
かを示す信号を信号線1130.1131゜1132、
1133に出力する。第4図を参照すると、テスト回路
503,504,505および506のそれぞれは、−
数回路701および大小比較回路702から構成されて
いる。
び506はテーブル410の各レベルに対応して命令ア
ドレスレジスタ(IAR)411に保持されるリクエス
トアドレスが各レベルのBHT−AAi (iはレベ
ルに対応するサフィクスを示す)に登録されているか否
かを示す信号を信号線1130.1131゜1132、
1133に出力する。第4図を参照すると、テスト回路
503,504,505および506のそれぞれは、−
数回路701および大小比較回路702から構成されて
いる。
前記−数回路701では、命令アドレスレジスタ([A
R)411に保持されるリクエストアドレスの一部JA
R(:4−17)をセントアドレスとして読出された記
憶部501の各レベルの内容と前記レジスタ411の内
容EAR(:4−17)とが比較され、等しいアドレス
が存在するか否かを検出する。−数回路701の出力に
より命令アドレスレジスタ(IAR)411に保持され
るリクエストアドレスで読出されるべき命令語の8By
teブロツク中にすでに分岐ヒストリテーブル(BHT
)410に登録された分岐命令が存在するか否かが判明
する。しかしリクエストアドレスとそれが読出すべき分
岐命令との対応をとるには上記一致検出のみでは不十分
である。第5図を参照すると、1回のリクエストで読出
される8Byteの命令語のブロック中に2Byte命
令BCO,A、BCI。
R)411に保持されるリクエストアドレスの一部JA
R(:4−17)をセントアドレスとして読出された記
憶部501の各レベルの内容と前記レジスタ411の内
容EAR(:4−17)とが比較され、等しいアドレス
が存在するか否かを検出する。−数回路701の出力に
より命令アドレスレジスタ(IAR)411に保持され
るリクエストアドレスで読出されるべき命令語の8By
teブロツク中にすでに分岐ヒストリテーブル(BHT
)410に登録された分岐命令が存在するか否かが判明
する。しかしリクエストアドレスとそれが読出すべき分
岐命令との対応をとるには上記一致検出のみでは不十分
である。第5図を参照すると、1回のリクエストで読出
される8Byteの命令語のブロック中に2Byte命
令BCO,A、BCI。
BO2の4個の命令が存在する。命令BCO,BC1,
BC2が共に分岐成功と予測された分岐命令であるとき
には、各々の分岐命令は共にそのアドレスの一部が記憶
部(BHT−AA)501に登録される。このとき他の
分岐命令から命令Aに分岐して命令Aのアドレス<A>
が前記命令語のブロックを読出すためのリクエストアド
レスとして命令アドレスレジスタ(JAR)411に保
持されるときには、分岐ヒストリテーブル(BIT)4
10から読出されるべき分岐命令の情報は命令の実行の
経路から分岐命令BCIの情報でなければならない。
BC2が共に分岐成功と予測された分岐命令であるとき
には、各々の分岐命令は共にそのアドレスの一部が記憶
部(BHT−AA)501に登録される。このとき他の
分岐命令から命令Aに分岐して命令Aのアドレス<A>
が前記命令語のブロックを読出すためのリクエストアド
レスとして命令アドレスレジスタ(JAR)411に保
持されるときには、分岐ヒストリテーブル(BIT)4
10から読出されるべき分岐命令の情報は命令の実行の
経路から分岐命令BCIの情報でなければならない。
従って前記レジスタ(IAR)411に保持されるリク
エストアドレスと前記記憶部(BHT−AA + )
501に保持される分岐命令のアドレスとの関係が上記
の一致条件とともに次式の関係が成立するとき、対応す
るレベルのBHT−HITi信号が生成される。なお、
この信号は!130〜133を介してオア回路509に
与えられ、該BHT−HITi信号のオア信号が線10
6を介して出力され分岐予測信号(BIT−HIT信号
)となる。
エストアドレスと前記記憶部(BHT−AA + )
501に保持される分岐命令のアドレスとの関係が上記
の一致条件とともに次式の関係が成立するとき、対応す
るレベルのBHT−HITi信号が生成される。なお、
この信号は!130〜133を介してオア回路509に
与えられ、該BHT−HITi信号のオア信号が線10
6を介して出力され分岐予測信号(BIT−HIT信号
)となる。
BIIT −111Ti = (IAR(:4
17) = BIT AAi(:4−17) ) n (IAR(:29.30) ≦BIT−AAi(:
29,30) 1 n BHT−AAi(V) 再び第4図を参照すると、前記大小比較回路702は、
この条件を実現する回路である。
17) = BIT AAi(:4−17) ) n (IAR(:29.30) ≦BIT−AAi(:
29,30) 1 n BHT−AAi(V) 再び第4図を参照すると、前記大小比較回路702は、
この条件を実現する回路である。
さらに前記信号BHT−HI T iの条件が2個以上
のレベルにおいて成立したとき記憶部501の対応する
レベル(BHT−AA i)に保持される分岐命令のア
ドレスの8Byteブロツク内アドレスBHT−AA
i (:29.30)の値の最も小さいレベルが選択
される必要がある。再び第5図を参照すると、命令BC
IおよびBC2の分岐命令関係情報が格納される分岐ヒ
ストリテーブル410のレベルで前記信号BHT−HI
Ti条件が共に成立する。このとき命令の実行の経路か
ら命令BC1に対するレベルが選択される必要がある。
のレベルにおいて成立したとき記憶部501の対応する
レベル(BHT−AA i)に保持される分岐命令のア
ドレスの8Byteブロツク内アドレスBHT−AA
i (:29.30)の値の最も小さいレベルが選択
される必要がある。再び第5図を参照すると、命令BC
IおよびBC2の分岐命令関係情報が格納される分岐ヒ
ストリテーブル410のレベルで前記信号BHT−HI
Ti条件が共に成立する。このとき命令の実行の経路か
ら命令BC1に対するレベルが選択される必要がある。
前記プライオリティ回路507は、前記信号BHT−H
ITiの2個以上の成立に対するものであり、この出力
により記憶部BHT−DA502のセットアドレスI
A R(: 1B−28)で示されるエントリの分岐先
アドレスがレベル選択回路50Bを介して読出される。
ITiの2個以上の成立に対するものであり、この出力
により記憶部BHT−DA502のセットアドレスI
A R(: 1B−28)で示されるエントリの分岐先
アドレスがレベル選択回路50Bを介して読出される。
第6図を参照すると、前記プライオリティ回路507は
アンド回路601〜604およびオア回路605〜60
8から構成されている。アンド回路601〜604はf
i+1個並列個並置されている。前記第2図におけるレ
ベル選択回路508のn個のレベルの選択信号は第6図
における信号’io 、 ■+−,Vz 、Vsによ
り以下のように与えられる。
アンド回路601〜604およびオア回路605〜60
8から構成されている。アンド回路601〜604はf
i+1個並列個並置されている。前記第2図におけるレ
ベル選択回路508のn個のレベルの選択信号は第6図
における信号’io 、 ■+−,Vz 、Vsによ
り以下のように与えられる。
V、のとき VeLo、 VoL+、
”’、 VoLlIVo ’ V+ノとき
VlLo、ν、L、、−,v、t、fiv、 ・v、
−V、ノとき 1hLo、 V*L+、 −、V
!L。
”’、 VoLlIVo ’ V+ノとき
VlLo、ν、L、、−,v、t、fiv、 ・v、
−V、ノとき 1hLo、 V*L+、 −、V
!L。
ν(1’ v、 ’ v、 ’ v、のとき V3Lo
、v3LI、 ・=、 VsL−以上のようにして第2
図におけるレベル選択回路508から読出された分岐情
報は第1図の命令記憶回路408から読出される命令と
対応づけること 。
、v3LI、 ・=、 VsL−以上のようにして第2
図におけるレベル選択回路508から読出された分岐情
報は第1図の命令記憶回路408から読出される命令と
対応づけること 。
が可能である。
第9図には、命令記憶回路408における命令と分岐ヒ
ストリテーブル(BHT)410における分岐情報の上
記対応関係が示されている。命令の実行順序が命令AO
,分岐命令BCO,Bl、BC1、B2.B3.BC2
,CI、C2・・・と予測された場合である。なお、<
A>はA命令のアドレスを、BCjは分岐命令をそれぞ
れ示す。
ストリテーブル(BHT)410における分岐情報の上
記対応関係が示されている。命令の実行順序が命令AO
,分岐命令BCO,Bl、BC1、B2.B3.BC2
,CI、C2・・・と予測された場合である。なお、<
A>はA命令のアドレスを、BCjは分岐命令をそれぞ
れ示す。
第1O図を参照すると、第9図に示した分岐ヒストリテ
ーブル(BHT)410による命令先取り動作は次のよ
うにされる。リクエストアドレスの命令アドレスレジス
タ411のセットに応答して命令記憶回路408から命
令語が読出され、これと同時にテーブル(BHT)41
0が索引される。信号線106を介してBHT−HIT
信号が出力されると記憶部BHT−DA502の分岐先
アドレス〈B1〉がアドレスレジスタ411にセントさ
れ、次の命令先取りが行なわれる。前記信号線106を
介してB 。
ーブル(BHT)410による命令先取り動作は次のよ
うにされる。リクエストアドレスの命令アドレスレジス
タ411のセットに応答して命令記憶回路408から命
令語が読出され、これと同時にテーブル(BHT)41
0が索引される。信号線106を介してBHT−HIT
信号が出力されると記憶部BHT−DA502の分岐先
アドレス〈B1〉がアドレスレジスタ411にセントさ
れ、次の命令先取りが行なわれる。前記信号線106を
介してB 。
HT−HIT信号が出力されないときには命令アドレス
加算回路412に命令Aの8バイト境界アドレス<A)
が与えられ、「8」加算されたアドレスが出力され、次
の命令先取りが逐次行なわれる。
加算回路412に命令Aの8バイト境界アドレス<A)
が与えられ、「8」加算されたアドレスが出力され、次
の命令先取りが逐次行なわれる。
以上の命令の先取りに従えば命令記憶回路408から続
出される命令語は、テーブル(BHT)410の内容に
よる予測に従って順次続出され、命令バッファ409に
は予測された命令の実行順に格納することが可能である
。
出される命令語は、テーブル(BHT)410の内容に
よる予測に従って順次続出され、命令バッファ409に
は予測された命令の実行順に格納することが可能である
。
このときたとえ信号BIT−HITが出力されても分岐
予測方向と反対側の命令先取り動作を−部付なわせしめ
た後に分岐予測方向の命令先取り動作を行なってもよい
。
予測方向と反対側の命令先取り動作を−部付なわせしめ
た後に分岐予測方向の命令先取り動作を行なってもよい
。
以上のようにして命令先取りされた命令が分岐命令で第
1図の命令整列回路414により命令解読回路403に
導かれたとき同時に該分岐命令に対応する分岐情報が最
初の分岐情報レジスタ416 (QRO)にセントさ
れる。
1図の命令整列回路414により命令解読回路403に
導かれたとき同時に該分岐命令に対応する分岐情報が最
初の分岐情報レジスタ416 (QRO)にセントさ
れる。
以降前記分岐命令の処理の進行に伴い、前記分岐情報が
順次第2.第3.第4.第5の分岐情報レジスタ (Q
R1) 417. (QR2) 418. (QR3
)419、 (QR4) 420へと転送される。そし
てOA。
順次第2.第3.第4.第5の分岐情報レジスタ (Q
R1) 417. (QR2) 418. (QR3
)419、 (QR4) 420へと転送される。そし
てOA。
OT、QC,EX各ステージの予測確認回路424゜4
25、426.427によって該分岐命令の実際の実行
処理結果と対応する前記分岐情報とが各ステージ毎にチ
ェックされる。
25、426.427によって該分岐命令の実際の実行
処理結果と対応する前記分岐情報とが各ステージ毎にチ
ェックされる。
第11図を参照すると、前記OAステージ予測確認回路
424は、フリップフロップ1101.1102.ノッ
ト回路1103.およびアンド回路1104から構成さ
れている。フリップフロップ1101.1102にはそ
れぞれ信号線113を介して命令解読回路403の出力
する分岐命令を示す信号と、信号線115を介して分岐
情報レジスタ (QRO)416の保持する■ビットと
がセットされる。ノット回路1103とアンド回路11
04とによって、フリップフロップ1101の出力が0
”で且つフリップフロップ1102の出力が“1”であ
る時、即ち命令を解読した結果、分岐命令ではない命令
なのに対応する分岐情報が存在し、その分岐情報に従っ
て命令先取りが行なわれた時には、信号線121にOA
ステージ予測失敗信号を出力する。
424は、フリップフロップ1101.1102.ノッ
ト回路1103.およびアンド回路1104から構成さ
れている。フリップフロップ1101.1102にはそ
れぞれ信号線113を介して命令解読回路403の出力
する分岐命令を示す信号と、信号線115を介して分岐
情報レジスタ (QRO)416の保持する■ビットと
がセットされる。ノット回路1103とアンド回路11
04とによって、フリップフロップ1101の出力が0
”で且つフリップフロップ1102の出力が“1”であ
る時、即ち命令を解読した結果、分岐命令ではない命令
なのに対応する分岐情報が存在し、その分岐情報に従っ
て命令先取りが行なわれた時には、信号線121にOA
ステージ予測失敗信号を出力する。
第12図を参照すると、前記OTステージ予測確認回路
425は、フリップフロップ1201.1202.12
03゜1204と真偽回路1206.1207と、アン
ド回路1208゜1209、1210.及びオア回路1
211.1212.1213とから構成されている。フ
リップフロップ1201.1202には、レジスタ43
5の保持する無条件ブランチ命令を示すビットと、BC
T命令を示すビットとが信号線122を介してそれぞれ
セントされ、フリップフロップ1203には信号線12
3を介して演算回路433の出力する計数結果0信号が
セットされ、フリップフロップ1204には分岐情報レ
ジスタ(QRI)の保持するVビットが信号線126を
介してセットされ、オア回路1213には信号線144
を介してOAステージ予測確認回路424が出力し且つ
フリップフロップ436に保持されたOAステージ予測
失敗信号の出力が与えられる。真偽回路1206.12
07.アンド回路1208.1209.1210によっ
てフリップフロップ1201.1204の出力がそれぞ
れ1”、“0″すなわち無条件ブランチ命令であるのに
対応する分岐情報が存在しなくて分岐GO側への命令先
取りが行なわれなかったときには、アンド回路1208
の出力が“1”になり、フリップフロップ1202.1
203゜1204の出力がそれぞれ°l”、“0″、“
O”であるとき即ちBCT命令であってそのBCT命令
で指定された汎用レジスタの保持する計数値を−1した
結果が“θ″ではなくて分岐を行なうBCT命令である
のに対応する分岐命令が存在しなくて分岐Go側への先
取り動作が行なわれなかった時にはアンド回路1209
の出力が“1”になり、フリップフロップ1202.1
203.1204の出力が全て@1″の時すなわちBC
T命令であってそのBCT命令で指定された汎用レジス
タの保持する計数値を−1した結果がO″であって、分
岐を行なわないBCT命令であるのに対応する分岐情報
が存在して分岐GO側へ命令先取り動作が行なわれた時
にはアンド回路1210の出力が“11になる。更に、
オア回路1211.1212.1213によって無条件
分岐命令あるいは分岐を行なうBCT命令なのに分岐G
。
425は、フリップフロップ1201.1202.12
03゜1204と真偽回路1206.1207と、アン
ド回路1208゜1209、1210.及びオア回路1
211.1212.1213とから構成されている。フ
リップフロップ1201.1202には、レジスタ43
5の保持する無条件ブランチ命令を示すビットと、BC
T命令を示すビットとが信号線122を介してそれぞれ
セントされ、フリップフロップ1203には信号線12
3を介して演算回路433の出力する計数結果0信号が
セットされ、フリップフロップ1204には分岐情報レ
ジスタ(QRI)の保持するVビットが信号線126を
介してセットされ、オア回路1213には信号線144
を介してOAステージ予測確認回路424が出力し且つ
フリップフロップ436に保持されたOAステージ予測
失敗信号の出力が与えられる。真偽回路1206.12
07.アンド回路1208.1209.1210によっ
てフリップフロップ1201.1204の出力がそれぞ
れ1”、“0″すなわち無条件ブランチ命令であるのに
対応する分岐情報が存在しなくて分岐GO側への命令先
取りが行なわれなかったときには、アンド回路1208
の出力が“1”になり、フリップフロップ1202.1
203゜1204の出力がそれぞれ°l”、“0″、“
O”であるとき即ちBCT命令であってそのBCT命令
で指定された汎用レジスタの保持する計数値を−1した
結果が“θ″ではなくて分岐を行なうBCT命令である
のに対応する分岐命令が存在しなくて分岐Go側への先
取り動作が行なわれなかった時にはアンド回路1209
の出力が“1”になり、フリップフロップ1202.1
203.1204の出力が全て@1″の時すなわちBC
T命令であってそのBCT命令で指定された汎用レジス
タの保持する計数値を−1した結果がO″であって、分
岐を行なわないBCT命令であるのに対応する分岐情報
が存在して分岐GO側へ命令先取り動作が行なわれた時
にはアンド回路1210の出力が“11になる。更に、
オア回路1211.1212.1213によって無条件
分岐命令あるいは分岐を行なうBCT命令なのに分岐G
。
側への命令先取りが行なわれなかった時には、OTステ
ージGO先取り指示信号が信号線131に、OTステー
ジ予測失敗信号が信号線129に、OTステージBHT
更新指示信号が信号線130にそれぞれ出力される。又
、分岐を行なわないBCT命令なのに分岐Go側への命
令先取りが行なわれた時には、OTステージ予測失敗信
号とOTステージBHT更新指示信号とが出力される。
ージGO先取り指示信号が信号線131に、OTステー
ジ予測失敗信号が信号線129に、OTステージBHT
更新指示信号が信号線130にそれぞれ出力される。又
、分岐を行なわないBCT命令なのに分岐Go側への命
令先取りが行なわれた時には、OTステージ予測失敗信
号とOTステージBHT更新指示信号とが出力される。
なお、OTステージBHT更新指示信号は、OAステー
ジで予測の失敗が検出され、OAステージ予測Tii認
、回路424より、OAステージ予測失敗信号がフリッ
プフロップ436にセットされ、その出力が信号線14
4を介して与えられた時にも出力される。
ジで予測の失敗が検出され、OAステージ予測Tii認
、回路424より、OAステージ予測失敗信号がフリッ
プフロップ436にセットされ、その出力が信号線14
4を介して与えられた時にも出力される。
第13図を参照すると前記OCステージ予測確認回路4
26は、レジスタ1301.1302.フリップフロッ
プ1303.不一致を検出する比較回路1306.真偽
回路1307.アンド回路1308およびオア回路13
09.1310より構成されている。レジスタ1301
には、命令アドレス変換回路402より信号線133を
介して与えられる分岐命令の命令語より実際に求められ
た分岐先アドレスがセットされ、同じくレジスタ130
2には、分岐情報レジスタ (QR2) 418より信
号線137を介して与えられる予測された分岐先アドレ
スがセットされる。フリップフロップ1303には同じ
く分岐情報レジスタ(QR2)418の保持するvビッ
トがセットされ、真偽回路1307とオア回路1310
には、OTステージ予測確認回路425が出力したOT
ステージBHT更新指示信号と、OTステージGO先取
り指示信号を受けたフリップフロップ437,438の
出力が、それぞれ信号線157と158を介して与えら
れる。比較回路1306と真偽回路1307およびアン
ド回路1308によって、比較回路1306、 フリッ
プフロップ1303の出力、信号線157がそれぞれ1
1”3 “1”、“0”、即ち、分岐ヒストリテーブル
に対応する分岐情報が存在し、その分岐情報に従って後
続の命令先取りが行なわれたその命令について、OA、
OTステージの予測確認回路で予測の失敗が検出されて
いなくて、なお且つ、予測された分岐先アドレスが実際
の分岐先アドレスと異なっていた時には、アンド回路1
308の出力が“1”になりOCステージ予測失敗信号
が信号線140に出力される。同時にオア回路1309
、1310によってOCステージBHT更新指示信号と
OCステージGo先取り指示信号がそれぞれ信号線15
6と141上に出力される。又、OCステージBHT更
新指示信号とOCステージGo更新指示信号は、それぞ
れOTステージ予測確認回路425より出力されるOT
ステージBHT更新指示信号とOTステージGO先取り
指示信号とを受けたフリップフロップ437,438の
出力が1”となった時にも出力される。
26は、レジスタ1301.1302.フリップフロッ
プ1303.不一致を検出する比較回路1306.真偽
回路1307.アンド回路1308およびオア回路13
09.1310より構成されている。レジスタ1301
には、命令アドレス変換回路402より信号線133を
介して与えられる分岐命令の命令語より実際に求められ
た分岐先アドレスがセットされ、同じくレジスタ130
2には、分岐情報レジスタ (QR2) 418より信
号線137を介して与えられる予測された分岐先アドレ
スがセットされる。フリップフロップ1303には同じ
く分岐情報レジスタ(QR2)418の保持するvビッ
トがセットされ、真偽回路1307とオア回路1310
には、OTステージ予測確認回路425が出力したOT
ステージBHT更新指示信号と、OTステージGO先取
り指示信号を受けたフリップフロップ437,438の
出力が、それぞれ信号線157と158を介して与えら
れる。比較回路1306と真偽回路1307およびアン
ド回路1308によって、比較回路1306、 フリッ
プフロップ1303の出力、信号線157がそれぞれ1
1”3 “1”、“0”、即ち、分岐ヒストリテーブル
に対応する分岐情報が存在し、その分岐情報に従って後
続の命令先取りが行なわれたその命令について、OA、
OTステージの予測確認回路で予測の失敗が検出されて
いなくて、なお且つ、予測された分岐先アドレスが実際
の分岐先アドレスと異なっていた時には、アンド回路1
308の出力が“1”になりOCステージ予測失敗信号
が信号線140に出力される。同時にオア回路1309
、1310によってOCステージBHT更新指示信号と
OCステージGo先取り指示信号がそれぞれ信号線15
6と141上に出力される。又、OCステージBHT更
新指示信号とOCステージGo更新指示信号は、それぞ
れOTステージ予測確認回路425より出力されるOT
ステージBHT更新指示信号とOTステージGO先取り
指示信号とを受けたフリップフロップ437,438の
出力が1”となった時にも出力される。
第14図を参照すると、前記EXステージ予測確認回路
427は、フリップフロップ1401.真偽回路140
2、1403.1404.論理積の否定を求めるナンド
回路1405.1406.アンド回路1407.140
8.及びオア回路1409から構成されている。真偽回
路1402には、信号線149を介して命令実行回路4
07の出力する分岐成否信号が与えられ、フリップフロ
ップ1401には、分岐情報レジスタ(QR3) 41
9の保持する゛Vビットがセットされ、ナンド回路14
05.1406およびオア回路1409につながる信号
線159には、OCステージBHT更新指示信号を受け
たフリップフロップ439の出力が与えられ、真偽回路
1404には、OCステージGo先取り指示信号を受け
たフリ7プフロツプ440の出力が信号線160を介し
て与えられる。前記の真偽回路1402.1403.1
404.ナンド回路1405.1406.アンド回路1
407.1408によって、信号線149の分岐成否信
号、フリップフロップ1401の出力1信号線159.
信号線160がそれぞれ“1”、“O”、“1”、“1
”、即ち、予測に従ってm’hlEの命令の先取りを分
岐N0GO側へ行なったその命令は、実際には分岐GO
であり、分岐成否信号が出力され、更にOCステージま
でにその命令についての予測の失敗が検出されておらず
或いは検出されていてもGo側への先取り指示が出力さ
れていないときのみ、アンド回路1407の出力が“1
“になり、同様に信号線149.フリップフロップ14
01の出力、信号&?!159,160がそれぞれ“O
ol “1”、′1”、“0°、すなわち、分岐Goと
予測され、分岐Go側へ後続の命令先取りを行なった命
令が実際には分岐N0GOであり、分岐成否信号が出力
されなくて且つOCステージまでにその命令についての
予測の失敗が検出されていないか或いは検出されていて
も同時にGO側への先取り指示が出ている場合のみ、ア
ンド回路1408の出力が“1”になる。更にオア回路
1409によって、oCステージまでに予測の失敗が検
出されているか或いは分岐GOと予測された命令が実際
には分岐N0GOであり且つOCステージまでに分岐N
0GO側への先取り指示が出力されていない時、および
分岐N0GOと予測された命令が実際には分岐GOであ
り且つ○Cステージまでに分岐GO側への先取り指示が
出力されていない時に、EXステージBHT更新指示信
号が信号線148に出力される。
427は、フリップフロップ1401.真偽回路140
2、1403.1404.論理積の否定を求めるナンド
回路1405.1406.アンド回路1407.140
8.及びオア回路1409から構成されている。真偽回
路1402には、信号線149を介して命令実行回路4
07の出力する分岐成否信号が与えられ、フリップフロ
ップ1401には、分岐情報レジスタ(QR3) 41
9の保持する゛Vビットがセットされ、ナンド回路14
05.1406およびオア回路1409につながる信号
線159には、OCステージBHT更新指示信号を受け
たフリップフロップ439の出力が与えられ、真偽回路
1404には、OCステージGo先取り指示信号を受け
たフリ7プフロツプ440の出力が信号線160を介し
て与えられる。前記の真偽回路1402.1403.1
404.ナンド回路1405.1406.アンド回路1
407.1408によって、信号線149の分岐成否信
号、フリップフロップ1401の出力1信号線159.
信号線160がそれぞれ“1”、“O”、“1”、“1
”、即ち、予測に従ってm’hlEの命令の先取りを分
岐N0GO側へ行なったその命令は、実際には分岐GO
であり、分岐成否信号が出力され、更にOCステージま
でにその命令についての予測の失敗が検出されておらず
或いは検出されていてもGo側への先取り指示が出力さ
れていないときのみ、アンド回路1407の出力が“1
“になり、同様に信号線149.フリップフロップ14
01の出力、信号&?!159,160がそれぞれ“O
ol “1”、′1”、“0°、すなわち、分岐Goと
予測され、分岐Go側へ後続の命令先取りを行なった命
令が実際には分岐N0GOであり、分岐成否信号が出力
されなくて且つOCステージまでにその命令についての
予測の失敗が検出されていないか或いは検出されていて
も同時にGO側への先取り指示が出ている場合のみ、ア
ンド回路1408の出力が“1”になる。更にオア回路
1409によって、oCステージまでに予測の失敗が検
出されているか或いは分岐GOと予測された命令が実際
には分岐N0GOであり且つOCステージまでに分岐N
0GO側への先取り指示が出力されていない時、および
分岐N0GOと予測された命令が実際には分岐GOであ
り且つ○Cステージまでに分岐GO側への先取り指示が
出力されていない時に、EXステージBHT更新指示信
号が信号線148に出力される。
第15図を参照すると、前記命令先取り制御回路423
は、フリップフロップ1501.真偽回路1502゜1
503、1504.1505.1506.1507.ア
ンド回路1508.1509゜1510、1511.1
512.1513.1514.1515.1516.1
517.1518とから構成されている。この命令先取
り制御回路423は、OA、OT、QC,EX(7)各
スf −’; (7)予測確認回路より出力される予測
失敗信号と、EXステージ予測確認回路427の出力す
るEXステージBIT更新指示信号、並びに分岐ヒスト
リテーブル410の出力するBHT−HIT信号に基づ
いて、命令アドレスレジスタ411の前段にあるセレク
タおよび命令アドレスリカバレジスタ428の前段にあ
るセレクタの選択指示信号を出力する。
は、フリップフロップ1501.真偽回路1502゜1
503、1504.1505.1506.1507.ア
ンド回路1508.1509゜1510、1511.1
512.1513.1514.1515.1516.1
517.1518とから構成されている。この命令先取
り制御回路423は、OA、OT、QC,EX(7)各
スf −’; (7)予測確認回路より出力される予測
失敗信号と、EXステージ予測確認回路427の出力す
るEXステージBIT更新指示信号、並びに分岐ヒスト
リテーブル410の出力するBHT−HIT信号に基づ
いて、命令アドレスレジスタ411の前段にあるセレク
タおよび命令アドレスリカバレジスタ428の前段にあ
るセレクタの選択指示信号を出力する。
命令先取り制御回路4230入力信号が全て“0”の時
には、命令アドレスレジスタ411の入力セレクタは信
号線107上の命令アドレス加算回路412の出力する
+8された命令アドレスを選択するよう制御され、次の
マシンサイクルには、命令アドレスレジスタ411には
選択された命令アドレス+8がセットされる。信号線1
48.147を介してEXステージ予測確認回路427
よりEXステージB)(T更新指示信号とEXステージ
予測失敗信号とが与えられると、命令アドレスリカバレ
ジスタ428には命令実行回路407の出力する分岐成
否信号によって制御される選択回路422の出力、即ち
実際の分岐判定を行なった結果分岐Goであれば分岐情
報レジスタ (QR4)の保持する実際に命令語の指示
により求められた分岐先アドレスが、又、命令実行回路
407の分岐判定の結果分岐N0GOであれば、アドレ
ス生成回路433の出力する分岐N0GO側のアドレス
が、いずれの場合も信号線155を介してセットされ、
同時に命令アドレスレジスタ411には分岐情報レジス
タ(QR4)の保持する分岐命令自身のアドレスが信号
線151を介してセットされる。更にその1マシンサイ
クル後には、命令先取り制御回路423は、入力信号が
全て“0”であれば、EXステージBHT更新指示信号
を1マシンサイクル保持するフリップフロップ1501
の出力によって、命令アドレスレジスタ411には、1
マシンサイクル前に命令アドレスリカバレジスフ428
にセットされた実際の分岐判定結果による次に実行すべ
き命令のアドレスが信号線162を介してセットされる
よう制御する。
には、命令アドレスレジスタ411の入力セレクタは信
号線107上の命令アドレス加算回路412の出力する
+8された命令アドレスを選択するよう制御され、次の
マシンサイクルには、命令アドレスレジスタ411には
選択された命令アドレス+8がセットされる。信号線1
48.147を介してEXステージ予測確認回路427
よりEXステージB)(T更新指示信号とEXステージ
予測失敗信号とが与えられると、命令アドレスリカバレ
ジスタ428には命令実行回路407の出力する分岐成
否信号によって制御される選択回路422の出力、即ち
実際の分岐判定を行なった結果分岐Goであれば分岐情
報レジスタ (QR4)の保持する実際に命令語の指示
により求められた分岐先アドレスが、又、命令実行回路
407の分岐判定の結果分岐N0GOであれば、アドレ
ス生成回路433の出力する分岐N0GO側のアドレス
が、いずれの場合も信号線155を介してセットされ、
同時に命令アドレスレジスタ411には分岐情報レジス
タ(QR4)の保持する分岐命令自身のアドレスが信号
線151を介してセットされる。更にその1マシンサイ
クル後には、命令先取り制御回路423は、入力信号が
全て“0”であれば、EXステージBHT更新指示信号
を1マシンサイクル保持するフリップフロップ1501
の出力によって、命令アドレスレジスタ411には、1
マシンサイクル前に命令アドレスリカバレジスフ428
にセットされた実際の分岐判定結果による次に実行すべ
き命令のアドレスが信号線162を介してセットされる
よう制御する。
信号vA14TのEXステージ予測失敗信号が“0@の
時、信号線140を介してOCステージ予測確認回路4
26よりOCステージ予測失敗信号が与えられると、命
令先取り制御回路423は、命令アドレスレジスタ41
1に、分岐情報レジスタ(QR3)419の保持するO
Cステージにある命令の命令語より求めた分岐Go側の
アドレスを信号線143を介してセットするよう制御す
る。この時、同時にEXステージBIT更新指示信号も
与えられれば、分岐情報レジスタ (QR3) 419
の保持するOCステージにある命令の分岐先アドレスは
命令アドレスリカバレジスタ428にセントされ、かわ
りに命令アドレスレジスフ411には分岐情報レジスタ
(QR4) 420の保持するEXステージにある命令
の命令アドレスがセットされ、その1マシンサイクル後
には、命令先取り制御回路423の全ての入力が“0”
であれば命令アドレスリカバレジスタ428に1マシン
サイクル前にセントされた、1マシンサイクル前にはo
Cステージにあった命令の実際の分岐GO側のアドレス
が命令アドレスレジスタ411にセントされるよう制御
する。
時、信号線140を介してOCステージ予測確認回路4
26よりOCステージ予測失敗信号が与えられると、命
令先取り制御回路423は、命令アドレスレジスタ41
1に、分岐情報レジスタ(QR3)419の保持するO
Cステージにある命令の命令語より求めた分岐Go側の
アドレスを信号線143を介してセットするよう制御す
る。この時、同時にEXステージBIT更新指示信号も
与えられれば、分岐情報レジスタ (QR3) 419
の保持するOCステージにある命令の分岐先アドレスは
命令アドレスリカバレジスタ428にセントされ、かわ
りに命令アドレスレジスフ411には分岐情報レジスタ
(QR4) 420の保持するEXステージにある命令
の命令アドレスがセットされ、その1マシンサイクル後
には、命令先取り制御回路423の全ての入力が“0”
であれば命令アドレスリカバレジスタ428に1マシン
サイクル前にセントされた、1マシンサイクル前にはo
Cステージにあった命令の実際の分岐GO側のアドレス
が命令アドレスレジスタ411にセントされるよう制御
する。
信号線147,140のEX、QC両ステージの予測失
敗信号がともに“0゛の時、信号線129を介してOT
ステージ予測確認回路425よりOTステージ予測失敗
信号が与えられると、命令先取り制御回路423は、選
択回路421の出力すなわちOTステージにある命令が
無条件分岐命令か、実際には分岐を行なうBCT命令で
あって対応する分岐情報が分岐ヒストリテーブルに存在
しなくて分岐N0GO側に先取りが行なわれた時には、
命令アドレス変換回路402の出力する分岐GO側のア
ドレスが、又実際には分岐を行なわないBCT命令であ
って対応する分岐情報が分岐ヒストリテーブルより読出
されて分岐Go側へ後続の命令先取りが行なわれた時に
はアドレス生成回路431の出力する分岐N0GO側の
アドレスが、いずれもOTステージ予測確認回路425
が信号vA131を介して出力するOTステージGo先
取り指示信号の制御によって選択回路421で選択され
たその結果を信号線139を介して命令アドレスレジス
タ411にセントするよう制御する。この時、同時にE
XステージBHT更新指示信号も与えられれば、選択回
路421の出力は、命令アドレスリカバレジスタ428
にセントされ、かわりに命令アドレスレジスタ411に
は分岐情報レジスタ(QR4)420の保持するEXス
テージにある命令の命令アドレスが信号線151を介し
てセットされ、その1マシンサイクル後には、命令先取
り制御回路423の全ての人力が“0”であれば、命令
アドレスリカバレジスタ428に1マシンサイクル前に
セットされた、1マシンサイクル前にはOTステージに
あった無条件分岐命令かBCT命令の後続の命令の先取
りやり直しのためのアドレスが信号線162を介して命
令アドレスレジスタ411にセットされるよう制御する
。
敗信号がともに“0゛の時、信号線129を介してOT
ステージ予測確認回路425よりOTステージ予測失敗
信号が与えられると、命令先取り制御回路423は、選
択回路421の出力すなわちOTステージにある命令が
無条件分岐命令か、実際には分岐を行なうBCT命令で
あって対応する分岐情報が分岐ヒストリテーブルに存在
しなくて分岐N0GO側に先取りが行なわれた時には、
命令アドレス変換回路402の出力する分岐GO側のア
ドレスが、又実際には分岐を行なわないBCT命令であ
って対応する分岐情報が分岐ヒストリテーブルより読出
されて分岐Go側へ後続の命令先取りが行なわれた時に
はアドレス生成回路431の出力する分岐N0GO側の
アドレスが、いずれもOTステージ予測確認回路425
が信号vA131を介して出力するOTステージGo先
取り指示信号の制御によって選択回路421で選択され
たその結果を信号線139を介して命令アドレスレジス
タ411にセントするよう制御する。この時、同時にE
XステージBHT更新指示信号も与えられれば、選択回
路421の出力は、命令アドレスリカバレジスタ428
にセントされ、かわりに命令アドレスレジスタ411に
は分岐情報レジスタ(QR4)420の保持するEXス
テージにある命令の命令アドレスが信号線151を介し
てセットされ、その1マシンサイクル後には、命令先取
り制御回路423の全ての人力が“0”であれば、命令
アドレスリカバレジスタ428に1マシンサイクル前に
セットされた、1マシンサイクル前にはOTステージに
あった無条件分岐命令かBCT命令の後続の命令の先取
りやり直しのためのアドレスが信号線162を介して命
令アドレスレジスタ411にセットされるよう制御する
。
信号線147,140,129 (7)EX、 QC,
0T(7)各ステージの予測失敗信号が“0”の時、信
号線121を介してOAステージ予測確認回路424よ
りOAステージ予測失敗信号が与えられると、命令先取
り制御回路423は、アドレス生成回路430が出力す
るOAステージにある命令の分岐N0GO側の命令アド
レスを信号線128を介して命令アドレスレジスタ41
1にセントするよう制御する。この時同時に、EXステ
ージBHT更新指示信号が与えられれば、アドレス生成
回路430の出力は命令アドレスリカバレジスタ428
にセットされ、命令アドレスレジスタ411には、かわ
りに分岐情報レジスタ(QR4)420の保持するEX
ステージにある命令の命令アドレスが信号線151を介
してセットされ、そのlマシンサイクル後には、命令先
取り制御回路423の全ての入力が“0”であれば、1
マシンサイクル前に命令アドレスリカバレジスタにセッ
トされたアドレスが信号線162を介して命令アドレス
レジスタ411にセットされるよう制御する。
0T(7)各ステージの予測失敗信号が“0”の時、信
号線121を介してOAステージ予測確認回路424よ
りOAステージ予測失敗信号が与えられると、命令先取
り制御回路423は、アドレス生成回路430が出力す
るOAステージにある命令の分岐N0GO側の命令アド
レスを信号線128を介して命令アドレスレジスタ41
1にセントするよう制御する。この時同時に、EXステ
ージBHT更新指示信号が与えられれば、アドレス生成
回路430の出力は命令アドレスリカバレジスタ428
にセットされ、命令アドレスレジスタ411には、かわ
りに分岐情報レジスタ(QR4)420の保持するEX
ステージにある命令の命令アドレスが信号線151を介
してセットされ、そのlマシンサイクル後には、命令先
取り制御回路423の全ての入力が“0”であれば、1
マシンサイクル前に命令アドレスリカバレジスタにセッ
トされたアドレスが信号線162を介して命令アドレス
レジスタ411にセットされるよう制御する。
信号線147.140.129.121のEX、QC,
OT。
OT。
OAの各ステージの予測失敗信号が全て“0”の時、信
号線106を介して分岐ヒストリテーブル410よりB
HT−HIT信号が与えられると、命令先取り制御回路
423は、分岐ヒストリテーブル410の出力するIC
ステージにある命令の予測された分岐アドレスを信号線
105を介して命令アドレスレジスタ411にセットす
るよう制御する。この時、同時にEXステージBHT更
新指示信号も与えられると、信号線105の分岐ヒスト
リテーブル410より読出された分岐先アドレスは、命
令アドレスリカバレジスタ428にセットされ、命令ア
ドレスレジスタ411には、かわりにEXステージにあ
る命令の命令アドレスが分岐情報レジスタ (QR4)
420より信号線151を介してセットされ、そのlマ
シンサイクル後には、命令先取り制御回路423の全て
の入力が“0”であれば1マシンサイクル前にセットさ
れた命令アドレスリ々バレジスタ428の内容が命令ア
ドレスレジスタ411にセットされるよう制御する。
号線106を介して分岐ヒストリテーブル410よりB
HT−HIT信号が与えられると、命令先取り制御回路
423は、分岐ヒストリテーブル410の出力するIC
ステージにある命令の予測された分岐アドレスを信号線
105を介して命令アドレスレジスタ411にセットす
るよう制御する。この時、同時にEXステージBHT更
新指示信号も与えられると、信号線105の分岐ヒスト
リテーブル410より読出された分岐先アドレスは、命
令アドレスリカバレジスタ428にセットされ、命令ア
ドレスレジスタ411には、かわりにEXステージにあ
る命令の命令アドレスが分岐情報レジスタ (QR4)
420より信号線151を介してセットされ、そのlマ
シンサイクル後には、命令先取り制御回路423の全て
の入力が“0”であれば1マシンサイクル前にセットさ
れた命令アドレスリ々バレジスタ428の内容が命令ア
ドレスレジスタ411にセットされるよう制御する。
信号線147.140.129.121のEX、 OC
,OT。
,OT。
OA各ステージの予測失敗信号および信号線106のB
HT−HIT信号が全てO”の時に信号線148を介し
てEXステージ予測確認回路427よりEXステージB
IT更新指示信号が与えられると、命令先取り制御回路
423は、命令アドレスリカバレジスタ428に信号線
107を介して命令アドレス加算回路412の出力をセ
ットし、命令アドレスレジスタ411にはEXステージ
にある命令の命令アドレスを分岐情報レジスタ(QR4
)420より信号線151を介してセットし、その1マ
シンサイクル後には、命令先取り制御回路423の全て
の人力が″O”であれば、1マシンサイクル前に命令ア
ドレスリカバレジスタ428にセットされたアドレスを
命令アドレスレジスタ411にセットするよう制御する
。
HT−HIT信号が全てO”の時に信号線148を介し
てEXステージ予測確認回路427よりEXステージB
IT更新指示信号が与えられると、命令先取り制御回路
423は、命令アドレスリカバレジスタ428に信号線
107を介して命令アドレス加算回路412の出力をセ
ットし、命令アドレスレジスタ411にはEXステージ
にある命令の命令アドレスを分岐情報レジスタ(QR4
)420より信号線151を介してセットし、その1マ
シンサイクル後には、命令先取り制御回路423の全て
の人力が″O”であれば、1マシンサイクル前に命令ア
ドレスリカバレジスタ428にセットされたアドレスを
命令アドレスレジスタ411にセットするよう制御する
。
次に第1図およびタイムチャートを参照しながら本実施
例の動作を詳細に説明する。
例の動作を詳細に説明する。
第17図は、分岐命令ではない命令A1のアドレスを分
岐命令のアドレスとして指定する誤った分枝情報が分岐
ヒストリテーブル410に存在し、命令先取り制御回路
423が誤った分岐情報に従って命令A1の後続の命令
として命令C1を取出して実行している動作を示すタイ
ムチャートである。
岐命令のアドレスとして指定する誤った分枝情報が分岐
ヒストリテーブル410に存在し、命令先取り制御回路
423が誤った分岐情報に従って命令A1の後続の命令
として命令C1を取出して実行している動作を示すタイ
ムチャートである。
第1図および第17図を参照すると、マシンサイクルO
の時刻において、分岐命令ではない命令Alのアドレス
<At>が命令アドレスレジスタ411にセットされ、
命令A1のICステージが実行される。アドレスくA1
〉は信号線101を介して命令記憶回路408へ与えら
れ命令語の取出しが行なわれるとともに、分岐ヒストリ
テーブル410にも与えられ、アドレス〈A1〉を分岐
命令のアドレスとして指定する分岐情報の取出しが行な
われる。
の時刻において、分岐命令ではない命令Alのアドレス
<At>が命令アドレスレジスタ411にセットされ、
命令A1のICステージが実行される。アドレスくA1
〉は信号線101を介して命令記憶回路408へ与えら
れ命令語の取出しが行なわれるとともに、分岐ヒストリ
テーブル410にも与えられ、アドレス〈A1〉を分岐
命令のアドレスとして指定する分岐情報の取出しが行な
われる。
その結果、誤った分岐情報が取出され、BHT−HIT
信号が信号線106上に出力される。このため、命令先
取り制御回路423は、命令アドレスレジスフ411の
入力セレクタに分岐情報より得られた分岐先アドレスく
C1〉が出力されている信号!19105を選択するよ
う指示する。
信号が信号線106上に出力される。このため、命令先
取り制御回路423は、命令アドレスレジスフ411の
入力セレクタに分岐情報より得られた分岐先アドレスく
C1〉が出力されている信号!19105を選択するよ
う指示する。
次のマシンサイクル1の時刻においては、誤った分岐情
報による分岐先アドレスくC1〉が命令アドレスレジス
タ411にセットされて、命令C1のICステージが実
行されるとともに、命令A1のIDステージが実行され
る。命令解読回路403は、命令A1が分岐命令ではな
いことから、命令解読結果が分岐命令であることを示す
信号113には“0”を出力して命令A1が分岐命令で
ないことをOAステージ予測確認回路424へ通知する
とともに、命令A1の命令語長を分岐情報レジスタ(Q
R1) 417への信号線112に出力する。同時に、
分岐情報レジスタ(QRO)416に保持された命令A
Iのアドレス〈A1〉とVビット、分岐先アドレスくC
1〉のうちvビットが信号&1LL5に出力される。
報による分岐先アドレスくC1〉が命令アドレスレジス
タ411にセットされて、命令C1のICステージが実
行されるとともに、命令A1のIDステージが実行され
る。命令解読回路403は、命令A1が分岐命令ではな
いことから、命令解読結果が分岐命令であることを示す
信号113には“0”を出力して命令A1が分岐命令で
ないことをOAステージ予測確認回路424へ通知する
とともに、命令A1の命令語長を分岐情報レジスタ(Q
R1) 417への信号線112に出力する。同時に、
分岐情報レジスタ(QRO)416に保持された命令A
Iのアドレス〈A1〉とVビット、分岐先アドレスくC
1〉のうちvビットが信号&1LL5に出力される。
マシンサイクル2の時刻においては、命令C1のIDス
テージと命令C1の後続の命令C2のICステージが実
行されると共に、命令A1のOAステージが実行される
。同時にOAステージ予測確認回路424は、前のマシ
ンサイクルで信号線113および115を介して与えら
れた情報より、今OAステージにある命令Alが分岐命
令でないにもかかわらず分岐情報が存在し、分岐Go側
へ後続の命令の先取りを行なったことを示すOAステー
ジ予測失敗信号を信号線121へ出力する。同時にアド
レス生成回路430は、分岐情報レジスタ(QR2)4
18の保持する命令AIのアドレス〈A1〉と命令AI
の命令語長を加算し、命令AtのN0Go側の後続の命
令のアドレスくA2〉を生成し、信号線128上に出力
する。命令先取り制御回路423は、OAステージ予測
確認回路424の出力する信号線121のOAステージ
予測失敗信号により、命令アドレスレノスフ411の入
力セレクタに、信号線128上のOAステージからの命
令A1の分岐N0GO側のアドレス〈A2〉を選択する
よう指示する。又、OAステージ予測失敗信号が出力さ
れたことにより、○Aステージより前のステージにある
予測側に後続する命令C1,C2の動作はすべてキャン
セルされる。
テージと命令C1の後続の命令C2のICステージが実
行されると共に、命令A1のOAステージが実行される
。同時にOAステージ予測確認回路424は、前のマシ
ンサイクルで信号線113および115を介して与えら
れた情報より、今OAステージにある命令Alが分岐命
令でないにもかかわらず分岐情報が存在し、分岐Go側
へ後続の命令の先取りを行なったことを示すOAステー
ジ予測失敗信号を信号線121へ出力する。同時にアド
レス生成回路430は、分岐情報レジスタ(QR2)4
18の保持する命令AIのアドレス〈A1〉と命令AI
の命令語長を加算し、命令AtのN0Go側の後続の命
令のアドレスくA2〉を生成し、信号線128上に出力
する。命令先取り制御回路423は、OAステージ予測
確認回路424の出力する信号線121のOAステージ
予測失敗信号により、命令アドレスレノスフ411の入
力セレクタに、信号線128上のOAステージからの命
令A1の分岐N0GO側のアドレス〈A2〉を選択する
よう指示する。又、OAステージ予測失敗信号が出力さ
れたことにより、○Aステージより前のステージにある
予測側に後続する命令C1,C2の動作はすべてキャン
セルされる。
マシンサイクル3においては、命令A1のOTステージ
が実行され、同時に命令アドレスレジスタ411には命
令AIの後続の命令のアドレス〈A2〉がセントされ、
命令A2のICステージも実行される。フリップフロッ
プ436は、前のマシンサイクルで出力されたOAステ
ージ予測失敗信号を受けて1″にセットされ、今OTス
テージにある命令A1の分岐情報が誤っており、正しく
更新しなければならないことを示す。
が実行され、同時に命令アドレスレジスタ411には命
令AIの後続の命令のアドレス〈A2〉がセントされ、
命令A2のICステージも実行される。フリップフロッ
プ436は、前のマシンサイクルで出力されたOAステ
ージ予測失敗信号を受けて1″にセットされ、今OTス
テージにある命令A1の分岐情報が誤っており、正しく
更新しなければならないことを示す。
次のマシンサイクル4において、命令A1は○Cステー
ジを実行し、命令A2のIDステージ。
ジを実行し、命令A2のIDステージ。
命令A2の後続の命令A3のICステージが実行される
。フリップフロップ437には、フリップフロップ43
6を受けて“1′がセントされ、フリップフロップ43
8はO″を保持し、合わせて現在oCステージにある命
令A1の分岐情報が誤っており、正しく更新する必要の
あることを並びに命令AIについての予測に従った後続
の命令先取りはキャンセルされて既にN0GO側への命
令先取り動作の実行が改めて行なわれたことを示す。
。フリップフロップ437には、フリップフロップ43
6を受けて“1′がセントされ、フリップフロップ43
8はO″を保持し、合わせて現在oCステージにある命
令A1の分岐情報が誤っており、正しく更新する必要の
あることを並びに命令AIについての予測に従った後続
の命令先取りはキャンセルされて既にN0GO側への命
令先取り動作の実行が改めて行なわれたことを示す。
マシンサイクル5においては、命令A1のEXステージ
が実行される。命令実行回路407は命令AIが分岐命
令ではないことから信号線149の分岐成否信号に分岐
N0GOを示す“0”を出力する。このため、選択回路
422は、分岐情報レジスタ(QR4)の保持する命令
AIのアドレス〈A1〉と命令AIの命令語長をアドレ
ス生成回路432で加算した結果得られるアドレス〈A
2〉を選択し信号線155上に出力する。また、信号線
151には、命令A1のアドレス〈A1〉が出力される
。
が実行される。命令実行回路407は命令AIが分岐命
令ではないことから信号線149の分岐成否信号に分岐
N0GOを示す“0”を出力する。このため、選択回路
422は、分岐情報レジスタ(QR4)の保持する命令
AIのアドレス〈A1〉と命令AIの命令語長をアドレ
ス生成回路432で加算した結果得られるアドレス〈A
2〉を選択し信号線155上に出力する。また、信号線
151には、命令A1のアドレス〈A1〉が出力される
。
一方フリップフロップ439.440は、フリップフロ
ップ437,438の内容をOCステージ予測確認回路
426を通して受け、それぞれ“1”、′0″にセット
される。EXステージ予測確認回路427は、信号線1
49の分岐成否信号と、前のマシンサイクルで信号線1
46を介して与えられた分岐情報レジスタ(QR3)4
19の保持していた命令AIの分岐情報のVビットおよ
びフリップフロップ439゜440とから、信号線14
8上のEXステージBHT更新指示信号として“1”を
出力し、信号線147のEXステージ予測失敗信号には
“0“を出力することによって、命令AIについての分
岐情報が存在し、その情報に従って分岐Go側へ後続の
命令先取りを行なったにもかかわらず、命令A1は実際
には分岐動作を行なわないこと、しかしながら後続の誤
った分岐先取り動作はキャンセルされて既に分岐N0G
O側への命令取出し動作が行なわれているため、EXス
テージでは命令先取りのやり直しを指示する必要のない
ことを示すとともに、命令A1についての分岐情報の更
新が必要なことを示す、これを受けて、命令先取り制御
回路423は、命令アドレスレジスタ4110入力セレ
クタに対し信号線151上の命令A1のアドレス〈A1
〉を選択するよう指示し、命令アドレスリカバレジスタ
428の入力セレクタに対しては、信号線107上のア
ドレス<A2>+24を選択するよう指示する。もしこ
の時、命令アドレスレジスタ411の保持するアドレス
<A2>+16に対応する分岐情報が分岐ヒストリテー
ブルに存在し、BHT−HIT信号が信号線106を介
して与えられれば、命令先取り制御回路423は、命令
アドレスリカバレジスタ428の入力セレクタに対して
は、信号線105上に出力される1分岐ヒストリテーブ
ル410より取出された分岐情報の示す分岐先アドレス
を、またOAXステージある命令A2についてOAXス
テージ予測確認回路424り信号線121を介してOA
ステージ予測失敗信号が与えられれば信号線128上の
アドレスを選択するよう指示する。
ップ437,438の内容をOCステージ予測確認回路
426を通して受け、それぞれ“1”、′0″にセット
される。EXステージ予測確認回路427は、信号線1
49の分岐成否信号と、前のマシンサイクルで信号線1
46を介して与えられた分岐情報レジスタ(QR3)4
19の保持していた命令AIの分岐情報のVビットおよ
びフリップフロップ439゜440とから、信号線14
8上のEXステージBHT更新指示信号として“1”を
出力し、信号線147のEXステージ予測失敗信号には
“0“を出力することによって、命令AIについての分
岐情報が存在し、その情報に従って分岐Go側へ後続の
命令先取りを行なったにもかかわらず、命令A1は実際
には分岐動作を行なわないこと、しかしながら後続の誤
った分岐先取り動作はキャンセルされて既に分岐N0G
O側への命令取出し動作が行なわれているため、EXス
テージでは命令先取りのやり直しを指示する必要のない
ことを示すとともに、命令A1についての分岐情報の更
新が必要なことを示す、これを受けて、命令先取り制御
回路423は、命令アドレスレジスタ4110入力セレ
クタに対し信号線151上の命令A1のアドレス〈A1
〉を選択するよう指示し、命令アドレスリカバレジスタ
428の入力セレクタに対しては、信号線107上のア
ドレス<A2>+24を選択するよう指示する。もしこ
の時、命令アドレスレジスタ411の保持するアドレス
<A2>+16に対応する分岐情報が分岐ヒストリテー
ブルに存在し、BHT−HIT信号が信号線106を介
して与えられれば、命令先取り制御回路423は、命令
アドレスリカバレジスタ428の入力セレクタに対して
は、信号線105上に出力される1分岐ヒストリテーブ
ル410より取出された分岐情報の示す分岐先アドレス
を、またOAXステージある命令A2についてOAXス
テージ予測確認回路424り信号線121を介してOA
ステージ予測失敗信号が与えられれば信号線128上の
アドレスを選択するよう指示する。
次のマシンサイクル6において、命令A1は、分岐ヒス
トリテーブル410内の命令AIについての分岐情報の
更新を行なうHUXステージ実行する。先ず、フリップ
フロップ441 は前のマシンサイクルで信号線148
上に出力されたEXステージBHT更新指示信号を受け
て“1”にセットされ、信号線154を介してその出力
は分岐ヒストリテーブル410へ送られる。又、レジス
タ434には、同しく前のマシンサイクルで信号線15
5上に出力されていた命令アドレスくA2〉がセットさ
れ、命令アドレスレジスタ411には、同じく前のマシ
ンサイクルで信号線151上に出力されていた命令アド
レス<Al>が、また命令アドレスリカバレジス942
Bには前のマシンサイクルで信号線107上に出力され
ていたアドレス<A2>+24がそれぞれセットされる
。これに応答して分岐ヒストリテーブル410内の命令
AIについての分岐情報の更新が行なわれ、A1につい
ての分岐情報のVビットがリセットされ、これ以降命令
A1は分岐命令としては扱われなくなる。一方この時、
命令先取り制御回路423は、命令アドレスレジスタ4
11の入力セレクタに対して、信号線162上に出力さ
れている命令アドレスリカバレジスタ428の保持する
アドレス<A2>+24を選択するよう指示する。
トリテーブル410内の命令AIについての分岐情報の
更新を行なうHUXステージ実行する。先ず、フリップ
フロップ441 は前のマシンサイクルで信号線148
上に出力されたEXステージBHT更新指示信号を受け
て“1”にセットされ、信号線154を介してその出力
は分岐ヒストリテーブル410へ送られる。又、レジス
タ434には、同しく前のマシンサイクルで信号線15
5上に出力されていた命令アドレスくA2〉がセットさ
れ、命令アドレスレジスタ411には、同じく前のマシ
ンサイクルで信号線151上に出力されていた命令アド
レス<Al>が、また命令アドレスリカバレジス942
Bには前のマシンサイクルで信号線107上に出力され
ていたアドレス<A2>+24がそれぞれセットされる
。これに応答して分岐ヒストリテーブル410内の命令
AIについての分岐情報の更新が行なわれ、A1につい
ての分岐情報のVビットがリセットされ、これ以降命令
A1は分岐命令としては扱われなくなる。一方この時、
命令先取り制御回路423は、命令アドレスレジスタ4
11の入力セレクタに対して、信号線162上に出力さ
れている命令アドレスリカバレジスタ428の保持する
アドレス<A2>+24を選択するよう指示する。
もしこの時、QTステージにある命令A2について、O
TXステージ予測確認回路425り信号線129を介し
てOTXステージ予測失敗信号与えられれば、命令先取
り制御回路423は、命令アドレスレジスタ411の入
力セレクタに対し信号線139上のアドレスを選択する
ように、又OAXステージある命令A3についてOAX
ステージ予測確認回路424り信号線121を介してO
Aステージ予測失敗信号が与えられれば、信号線128
上のアドレスを選択するように指示する。
TXステージ予測確認回路425り信号線129を介し
てOTXステージ予測失敗信号与えられれば、命令先取
り制御回路423は、命令アドレスレジスタ411の入
力セレクタに対し信号線139上のアドレスを選択する
ように、又OAXステージある命令A3についてOAX
ステージ予測確認回路424り信号線121を介してO
Aステージ予測失敗信号が与えられれば、信号線128
上のアドレスを選択するように指示する。
マシンサイクル7以降は、命令アドレスレジスタ411
にセントされたアドレス<A2>+24に従って命令先
取り動作が続けられる。
にセントされたアドレス<A2>+24に従って命令先
取り動作が続けられる。
第18図は、分岐ヒストリテーブル410にVビットが
“1”である対応する分岐情報が存在しなかったBCT
命令あるいは無条件分岐命令である命令B1の実行のよ
うすを示すタイムチャートであり、B1がBCT命令の
場合、命令B1で指定した計数値は“1”ではなくて、
−1する計数動作を行なっても計数結果は“0”とはな
らず、実際には分岐を行なうBCT命令の場合を示して
いる。
“1”である対応する分岐情報が存在しなかったBCT
命令あるいは無条件分岐命令である命令B1の実行のよ
うすを示すタイムチャートであり、B1がBCT命令の
場合、命令B1で指定した計数値は“1”ではなくて、
−1する計数動作を行なっても計数結果は“0”とはな
らず、実際には分岐を行なうBCT命令の場合を示して
いる。
第1図および第18図を参照するとマシンサイクル0の
時刻において、BCT命令あるいは無条件分岐命令であ
る命令Blのアドレス〈B1〉が命令アドレスレジスタ
411にセントされ、命令B1のICステージが実行さ
れる。アドレス〈B1〉は信号101を介して命令記憶
回路408へ与えられ命令語の取出しが行なわれるとと
もに、分岐ヒストリテーブル410に与えられ、命令B
lに対応する分岐情暢の取出しが行なわれ、同時に、命
令アドレス加算回路412へも与えられ、アドレスくB
1〉+8が生成される。分岐ヒストリテーブル410に
は命令B1に対応する分岐情報が存在しないため、信号
’6106 ノB HT −HI T(8号として”0
”を出力する。これに応答して命令先取り制御回路42
3は、命令アドレスレジスタ411の人力セレクタに対
し、信号線107に出力されるアドレスくB1〉+8を
選択するよう指示する。
時刻において、BCT命令あるいは無条件分岐命令であ
る命令Blのアドレス〈B1〉が命令アドレスレジスタ
411にセントされ、命令B1のICステージが実行さ
れる。アドレス〈B1〉は信号101を介して命令記憶
回路408へ与えられ命令語の取出しが行なわれるとと
もに、分岐ヒストリテーブル410に与えられ、命令B
lに対応する分岐情暢の取出しが行なわれ、同時に、命
令アドレス加算回路412へも与えられ、アドレスくB
1〉+8が生成される。分岐ヒストリテーブル410に
は命令B1に対応する分岐情報が存在しないため、信号
’6106 ノB HT −HI T(8号として”0
”を出力する。これに応答して命令先取り制御回路42
3は、命令アドレスレジスタ411の人力セレクタに対
し、信号線107に出力されるアドレスくB1〉+8を
選択するよう指示する。
次のマシンサイクルlの時刻においては、命令アドレス
レジスタ411にはアドレス< Bl 、> 4−8が
セットされ、命令B1の分岐N0GO側の後続の命令A
1のICステージが実行される。同時に、分岐情報レジ
スタ (QRO) 416には、命令81のアドレス〈
B1〉とVピットとして“0″がセットされ、命令B1
のIDステージが実行される。
レジスタ411にはアドレス< Bl 、> 4−8が
セットされ、命令B1の分岐N0GO側の後続の命令A
1のICステージが実行される。同時に、分岐情報レジ
スタ (QRO) 416には、命令81のアドレス〈
B1〉とVピットとして“0″がセットされ、命令B1
のIDステージが実行される。
命令解読回路403は命令B1がBCT命令であること
を、あるいは無条件分岐命令であることを信号線114
に出力する。
を、あるいは無条件分岐命令であることを信号線114
に出力する。
マシンサイクル2の時刻においては、命令B1のOAス
テージと、命令AIのIDステージ及び命令AIの後続
の命令A2のICステージが実行される。レジスタ43
5は、前のマシンサイクルの信号線114の出力を受け
て、命令B1がBCT命令であることを或いは無条件分
岐命令であることを信号&1122上に示す0分岐情報
レジスタ(QRl)417には分岐情報レジスタ(QR
O)が前のマシンサイクルで保持していたアドレスくB
1〉と“0″であるVビットがセットされ、Vビットは
さらに信号線126に出力される。命令アドレス生成回
路401は、命令B1の分岐先アドレスを生成し、命令
BlがBCT命令である時にはオペランドアドレス生成
回路404より命令B1で指定された計数値を保持する
汎用レジスタの値が信号線120を介して演算回路43
3へ与えられる。演算回路433は与えられた計数値か
ら“1°を減算した結果が“0”でないことを検出して
信号線123上の計数結果0信号として“0”を出力す
る。
テージと、命令AIのIDステージ及び命令AIの後続
の命令A2のICステージが実行される。レジスタ43
5は、前のマシンサイクルの信号線114の出力を受け
て、命令B1がBCT命令であることを或いは無条件分
岐命令であることを信号&1122上に示す0分岐情報
レジスタ(QRl)417には分岐情報レジスタ(QR
O)が前のマシンサイクルで保持していたアドレスくB
1〉と“0″であるVビットがセットされ、Vビットは
さらに信号線126に出力される。命令アドレス生成回
路401は、命令B1の分岐先アドレスを生成し、命令
BlがBCT命令である時にはオペランドアドレス生成
回路404より命令B1で指定された計数値を保持する
汎用レジスタの値が信号線120を介して演算回路43
3へ与えられる。演算回路433は与えられた計数値か
ら“1°を減算した結果が“0”でないことを検出して
信号線123上の計数結果0信号として“0”を出力す
る。
マシンサイクル3においては、命令B1の○Tステージ
が実行され、命令B1の分岐先アドレスが命令アドレス
変換回路402によって実アドレス〈C1〉に変換され
るとともに、命令B1の分岐N0GO側の後続の命令A
1.A2.A3のOA。
が実行され、命令B1の分岐先アドレスが命令アドレス
変換回路402によって実アドレス〈C1〉に変換され
るとともに、命令B1の分岐N0GO側の後続の命令A
1.A2.A3のOA。
ID、ICステージが実行される。OTステージ予測確
認回路425は、前のマシンサイクルで信号線122.
123.126を介して与えられた情報から、現在OT
ステージにある命令が、分岐GOであるBCT命令であ
ること或いは無条件分岐命令であることにもかかわらず
対応する分岐情報が分岐ヒストリテーブル410にヒツ
トせず、分岐N0GO側へ後続の命令の先取りが続けら
れたこと、このだめ、命令B1の分岐GO側へ命令の先
取りを改めて実行する必要のあること、並びに命令B1
についての分岐情報を正しく更新する必要のあることを
示すために、信号線129にOTステージ予測失敗信号
を、信号線130にOTステージBHT更新指示信号を
、また信号線131にOTステージG。
認回路425は、前のマシンサイクルで信号線122.
123.126を介して与えられた情報から、現在OT
ステージにある命令が、分岐GOであるBCT命令であ
ること或いは無条件分岐命令であることにもかかわらず
対応する分岐情報が分岐ヒストリテーブル410にヒツ
トせず、分岐N0GO側へ後続の命令の先取りが続けら
れたこと、このだめ、命令B1の分岐GO側へ命令の先
取りを改めて実行する必要のあること、並びに命令B1
についての分岐情報を正しく更新する必要のあることを
示すために、信号線129にOTステージ予測失敗信号
を、信号線130にOTステージBHT更新指示信号を
、また信号線131にOTステージG。
先取り指示信号をそれぞれ出力する。このOTステージ
GO先取り指示信号に応答して選択回路421は、信号
線133に出力される命令Blの分岐先アドレスを選択
し、信号線139上に出力する。命令先取り制御回路4
23は、OTXステージ予測確認回路425出力する信
号線129のOTXステージ予測失敗信号より、命令ア
ドレスレジスタ411の入力セレクタに対して信号線1
39上の命令Blの分岐先アドレス〈C1〉を選択する
よう指示する。
GO先取り指示信号に応答して選択回路421は、信号
線133に出力される命令Blの分岐先アドレスを選択
し、信号線139上に出力する。命令先取り制御回路4
23は、OTXステージ予測確認回路425出力する信
号線129のOTXステージ予測失敗信号より、命令ア
ドレスレジスタ411の入力セレクタに対して信号線1
39上の命令Blの分岐先アドレス〈C1〉を選択する
よう指示する。
またOTXステージ予測失敗信号出力されたことにより
、OTXステージり前のステージにある分岐N0GO側
に後続する命令Al、A2.A3の動作は全てキャンセ
ルされる。
、OTXステージり前のステージにある分岐N0GO側
に後続する命令Al、A2.A3の動作は全てキャンセ
ルされる。
マシンサイクル4においては、命令B1のOCサイクル
が実行され、同時に命令アドレスレジスタ411には命
令B1の分岐先アドレス〈C1〉がセット、アドレス〈
C1〉にある命令C1のICステージも実行される。フ
リップフロップ437.438は、前のマシンサイクル
で出力されたOTステージBHT更新指示信号と○Tス
テージGO先取り指示信号とを受けてどちらも“1′に
セットされる。
が実行され、同時に命令アドレスレジスタ411には命
令B1の分岐先アドレス〈C1〉がセット、アドレス〈
C1〉にある命令C1のICステージも実行される。フ
リップフロップ437.438は、前のマシンサイクル
で出力されたOTステージBHT更新指示信号と○Tス
テージGO先取り指示信号とを受けてどちらも“1′に
セットされる。
次のマシンサイクル5においては、命令B1のEXステ
ージが実行される。命令実行回路407は、命令B1が
BCT命令であれば指定された計数動作を行ない、その
結果が“0゛ではないことから信号線149の分岐成否
信号に分岐Goを示す“11を、命令B1が無条件分岐
命令であるときは信号線149の分岐成否信号としてや
はり“1″を出力する。これに応答して選択回路422
は、分岐情報レジスタ (QR4)420の保持する命
令B1の分岐先アドレス〈C1〉を選択し信号線155
上に出力する。同時に信号線151上には、同じく分岐
情報レジスタ (QR4) 420の保持する命令B1
のアドレスくB1〉が出力される。一方フリップフロッ
プ439.440は、フリップフロップ437.438
の内容をOCステージ予測確認回路426を通して受け
、どちらも“1”にセントされる。EXステージ予測確
認回路427は、信号線149の分岐成否信号と、前の
マシンサイクルで信号線146を介して与えられた分岐
情報レジスタ (QR3) 419の保持していた命令
B1の分岐情報の“θ″であるVビット、およびフリッ
プフロップ439,440とから信号線148上のEX
ステージBHT更新指示信号トシて“l”を出力し、信
号線147のEXステージ予測失敗信号には“0”を出
力することによって、命令Blについての分岐情報が存
在せず分岐N0GO側へ後続の命令の先取りを行なった
にもかかわらず、命令B1は分岐を行なうこと、しかし
ながら後続の分岐N0GO側の命令はキャンセルされて
既に分岐GO側の命令取出しが行なわれているためEX
ステージでは命令先取りのやり直しを指示する必要のな
いことを示すとともに、命令B 1についての分岐情報
の更新が必要なことを示す。これに応答して命令先取り
制御回路423は、命令アドレスレジスタ411の入力
セレクタに対して信号線151上の命令B1のアドレス
<81>を選択するよう指示し、命令アドレスリカバレ
ジスタ428の入力セレクタに対しては信号線107上
のアドレス<cl>+16を選択するよう指示する。
ージが実行される。命令実行回路407は、命令B1が
BCT命令であれば指定された計数動作を行ない、その
結果が“0゛ではないことから信号線149の分岐成否
信号に分岐Goを示す“11を、命令B1が無条件分岐
命令であるときは信号線149の分岐成否信号としてや
はり“1″を出力する。これに応答して選択回路422
は、分岐情報レジスタ (QR4)420の保持する命
令B1の分岐先アドレス〈C1〉を選択し信号線155
上に出力する。同時に信号線151上には、同じく分岐
情報レジスタ (QR4) 420の保持する命令B1
のアドレスくB1〉が出力される。一方フリップフロッ
プ439.440は、フリップフロップ437.438
の内容をOCステージ予測確認回路426を通して受け
、どちらも“1”にセントされる。EXステージ予測確
認回路427は、信号線149の分岐成否信号と、前の
マシンサイクルで信号線146を介して与えられた分岐
情報レジスタ (QR3) 419の保持していた命令
B1の分岐情報の“θ″であるVビット、およびフリッ
プフロップ439,440とから信号線148上のEX
ステージBHT更新指示信号トシて“l”を出力し、信
号線147のEXステージ予測失敗信号には“0”を出
力することによって、命令Blについての分岐情報が存
在せず分岐N0GO側へ後続の命令の先取りを行なった
にもかかわらず、命令B1は分岐を行なうこと、しかし
ながら後続の分岐N0GO側の命令はキャンセルされて
既に分岐GO側の命令取出しが行なわれているためEX
ステージでは命令先取りのやり直しを指示する必要のな
いことを示すとともに、命令B 1についての分岐情報
の更新が必要なことを示す。これに応答して命令先取り
制御回路423は、命令アドレスレジスタ411の入力
セレクタに対して信号線151上の命令B1のアドレス
<81>を選択するよう指示し、命令アドレスリカバレ
ジスタ428の入力セレクタに対しては信号線107上
のアドレス<cl>+16を選択するよう指示する。
もしこの時、命令アドレスレジスタ411の保持するア
ドレス<cl>+Hに対して分岐ヒストリテーブル41
0よりBHT−HIT信号が信号線106を介して与え
られれば、命令先取り制御回路423は、命令アドレス
リカバレジスタ42Bの入力セレクタに対しては信号線
105上の分岐ヒストリテーブル410より取出された
分岐アドレスを選択するよう指示する。
ドレス<cl>+Hに対して分岐ヒストリテーブル41
0よりBHT−HIT信号が信号線106を介して与え
られれば、命令先取り制御回路423は、命令アドレス
リカバレジスタ42Bの入力セレクタに対しては信号線
105上の分岐ヒストリテーブル410より取出された
分岐アドレスを選択するよう指示する。
次のマシンサイクル6において、命令B1は分岐ヒスト
リテーブル410の更新を行なうHUステージを実行す
る。レジスタ434には信号線155上の命令Blの分
岐先アドレス<C1>がセットされ、命令アドレスレジ
スタ411には信号線151上の命令B4のアドレスく
B1〉が、命令アドレスリカバレジスタ428には<C
I>+16がそれぞれセットされる。一方、フリップフ
ロップ441は前のマシンサイクルで信号線148上に
出力されたEXステージBHT更新指示信号を受けて1
”にセットされ、その出力は信号線154を介して分岐
ヒストリテーブル410に与えられる。これに応答して
分岐ヒストリテーブル410には、分岐先アト、レスと
しくCI>をもつアドレス<B1>の分岐情報が格納さ
れ、これ以後、命令B1は分岐先アドレスとして〈C1
〉が予測されるようになる。
リテーブル410の更新を行なうHUステージを実行す
る。レジスタ434には信号線155上の命令Blの分
岐先アドレス<C1>がセットされ、命令アドレスレジ
スタ411には信号線151上の命令B4のアドレスく
B1〉が、命令アドレスリカバレジスタ428には<C
I>+16がそれぞれセットされる。一方、フリップフ
ロップ441は前のマシンサイクルで信号線148上に
出力されたEXステージBHT更新指示信号を受けて1
”にセットされ、その出力は信号線154を介して分岐
ヒストリテーブル410に与えられる。これに応答して
分岐ヒストリテーブル410には、分岐先アト、レスと
しくCI>をもつアドレス<B1>の分岐情報が格納さ
れ、これ以後、命令B1は分岐先アドレスとして〈C1
〉が予測されるようになる。
一方この時命令先取り制御回路423は、命令アドレス
レジスタ411の入力セレクタに対して信号線162上
に出力されている命令アドレスリカバレジスタ428の
保持するアドレス<CI>+16を選択するよう指示す
る。もしこの時、OAステージにある命令C1について
OAステージ予測確認回路424より信号線121を介
してOAステージ予測失敗信号が与えられれば、命令先
取り制御回路423は命令アドレスレジスタ411の入
力セレクタに対し信号線128上のアドレスを選択する
よう指示する。
レジスタ411の入力セレクタに対して信号線162上
に出力されている命令アドレスリカバレジスタ428の
保持するアドレス<CI>+16を選択するよう指示す
る。もしこの時、OAステージにある命令C1について
OAステージ予測確認回路424より信号線121を介
してOAステージ予測失敗信号が与えられれば、命令先
取り制御回路423は命令アドレスレジスタ411の入
力セレクタに対し信号線128上のアドレスを選択する
よう指示する。
マシンサイクル7以降は命令アドレスレジスフ411に
セットされたアドレス<C1>+16に従って命令先取
り動作が続けられる。
セットされたアドレス<C1>+16に従って命令先取
り動作が続けられる。
第19図は、分岐ヒストリテーブルに対応する分岐情報
が存在するBCT命令BCTIの実行のようすを示すタ
イムチャートであり、命令BCTIで指定した計数値は
“l”であって、−1する計数動作の結果は“0”とな
って実際には分岐を行なわないBCT命令の場合を示し
ている。
が存在するBCT命令BCTIの実行のようすを示すタ
イムチャートであり、命令BCTIで指定した計数値は
“l”であって、−1する計数動作の結果は“0”とな
って実際には分岐を行なわないBCT命令の場合を示し
ている。
第1図および第19図を参照すると、マシンサイクルO
の時刻において、命令BCTIのアドレス<BCTI>
が命令アドレスレジスフ411にセットされ、命令13
cT1のICステージが実行される。アドレス<BCT
I>は信号vAIOLを介して命令記憶回路408へ与
えられ、命令語の取出しが行なわれるとともに分岐ヒス
トリテーブル410に与えられ、命令BCTIについて
の分岐情報の取出しが行なわれる。分岐ヒストリテーブ
ル410より取出された分岐情報は信号線105上に出
力される。同時にB)(T−HIT信号が信号線106
上に出力される。これに応答して命令先取り制御回路4
23は、命令アドレスレジスタ411の入力セレクタに
対し、信号線105に出力された命令BCTIの分岐先
アドレス〈C1〉を選択するよう指示する。
の時刻において、命令BCTIのアドレス<BCTI>
が命令アドレスレジスフ411にセットされ、命令13
cT1のICステージが実行される。アドレス<BCT
I>は信号vAIOLを介して命令記憶回路408へ与
えられ、命令語の取出しが行なわれるとともに分岐ヒス
トリテーブル410に与えられ、命令BCTIについて
の分岐情報の取出しが行なわれる。分岐ヒストリテーブ
ル410より取出された分岐情報は信号線105上に出
力される。同時にB)(T−HIT信号が信号線106
上に出力される。これに応答して命令先取り制御回路4
23は、命令アドレスレジスタ411の入力セレクタに
対し、信号線105に出力された命令BCTIの分岐先
アドレス〈C1〉を選択するよう指示する。
次のマシンサイクル1の時刻においては、命令BCTI
の分岐先アドレス〈C1〉が命令アドレスレジスタ41
1にセットされて、命令C1のICステージが実行され
るとともに、命令BCTIのIDステージが実行される
。命令解読回路403は命令BCTIがBCT命令であ
ることを信号vA114に出力すると同時に、信号線1
12上に命令BCT1の命令語長を出力する。
の分岐先アドレス〈C1〉が命令アドレスレジスタ41
1にセットされて、命令C1のICステージが実行され
るとともに、命令BCTIのIDステージが実行される
。命令解読回路403は命令BCTIがBCT命令であ
ることを信号vA114に出力すると同時に、信号線1
12上に命令BCT1の命令語長を出力する。
マシンサイクル2においては、命令BCTIのOAステ
ージと命令C1のIDステージおよび命令C1の1&続
の命令C2のICステージが実行される。レジスタ43
5は、前のマシンサイクルの信号線114の出力を受け
て、命令BCTIがBCT命令であることを信号線12
2上に示す。分岐情報レジスタ (QR1) 417に
は、前のマシンサイクルで分岐情報レジスタ(QRO)
が保持していた命令BCTIの分岐情報と命令BCTI
の命令語長がセントされ、信号線126にはvビットが
出力される。命令アドレス生成回路401は命令BCT
lの分岐先アドレスを生成し、オペランドアドレス生成
回路404は命令BCTIで指定された計数値を保持す
る汎用レジスタの値を信号m120を介して演算回路4
33に出力する。演算回路433は与えられた計数値か
ら“1”を減算した結果が“0”であることを検出して
信号線123に計数結果0信号を出力する。
ージと命令C1のIDステージおよび命令C1の1&続
の命令C2のICステージが実行される。レジスタ43
5は、前のマシンサイクルの信号線114の出力を受け
て、命令BCTIがBCT命令であることを信号線12
2上に示す。分岐情報レジスタ (QR1) 417に
は、前のマシンサイクルで分岐情報レジスタ(QRO)
が保持していた命令BCTIの分岐情報と命令BCTI
の命令語長がセントされ、信号線126にはvビットが
出力される。命令アドレス生成回路401は命令BCT
lの分岐先アドレスを生成し、オペランドアドレス生成
回路404は命令BCTIで指定された計数値を保持す
る汎用レジスタの値を信号m120を介して演算回路4
33に出力する。演算回路433は与えられた計数値か
ら“1”を減算した結果が“0”であることを検出して
信号線123に計数結果0信号を出力する。
マシンサイクル3においては、命令BCTIのOTステ
ージが実行され、命令BCTIの分岐先アドレスが命令
アドレス変換回路402で実アドレスに変換されるとと
もに、命令C1,C2およびC2の後b’tノ命令C1
)OA、ID、ICステージがそれぞれ実行される。O
Tステージ予測確認回fW425は、前のマシンサイク
ルで信号線122,123゜126を介して与えられた
情報から、OTステージにある命令BCTIが分岐N0
GOのBCT命令であることにもかかわらず命令BCT
Iの分岐情報が分岐ヒストリテーブル410にヒントし
て分岐GO側へ後続の先取りが行なわれたこと、このた
め命令BCTIの分岐N0GO側への後続の命令先取り
を改めて実行する必要のあること、並びに命令BCTI
についての分岐情報を正しく更新する必要のあることを
示すために、信号線129にOTステージ予測失敗信号
を出力し、信号線130にはOTステージBHT更新指
示信号を出力し、信傍線131の○TステージCO先取
り指示信号には“0”を出力する。これに応答して選択
回路421は、アドレス生成回路431が信号線138
に出力する命令BCTIの分岐N0GO側の次の命令の
アドレスくA1〉を選択して信号線139上に出力し、
命令先取り制御回路423は、命令アドレスレジスタ4
11の入力セレクタに対して信号線139上のアドレス
〈A】〉を選択するよう指示する。又、OTステージ予
測失敗信号が出力されたことにより、OTXステージり
前にある分岐GO側に後続する命令C1,C2,C3の
動作は全てキャンセルされる。
ージが実行され、命令BCTIの分岐先アドレスが命令
アドレス変換回路402で実アドレスに変換されるとと
もに、命令C1,C2およびC2の後b’tノ命令C1
)OA、ID、ICステージがそれぞれ実行される。O
Tステージ予測確認回fW425は、前のマシンサイク
ルで信号線122,123゜126を介して与えられた
情報から、OTステージにある命令BCTIが分岐N0
GOのBCT命令であることにもかかわらず命令BCT
Iの分岐情報が分岐ヒストリテーブル410にヒントし
て分岐GO側へ後続の先取りが行なわれたこと、このた
め命令BCTIの分岐N0GO側への後続の命令先取り
を改めて実行する必要のあること、並びに命令BCTI
についての分岐情報を正しく更新する必要のあることを
示すために、信号線129にOTステージ予測失敗信号
を出力し、信号線130にはOTステージBHT更新指
示信号を出力し、信傍線131の○TステージCO先取
り指示信号には“0”を出力する。これに応答して選択
回路421は、アドレス生成回路431が信号線138
に出力する命令BCTIの分岐N0GO側の次の命令の
アドレスくA1〉を選択して信号線139上に出力し、
命令先取り制御回路423は、命令アドレスレジスタ4
11の入力セレクタに対して信号線139上のアドレス
〈A】〉を選択するよう指示する。又、OTステージ予
測失敗信号が出力されたことにより、OTXステージり
前にある分岐GO側に後続する命令C1,C2,C3の
動作は全てキャンセルされる。
マシンサイクル4においては、命令BCTIのoCサイ
クルが実行され、同時に命令アドレスレジスフ411L
:は、命令BCTIの分岐N0GO側に後続する命令A
1のアドレス<AI>がセントされ、命令へlのICス
テージが実行される。フリップフロップ437,438
は、前のマシンサイクルで出力されたOTステージBH
T更新指示信号とOTステージGO先取り指示信号とを
受けてそれぞれ1”、10″にセットされる。OCステ
ージ予測確認回路426は、前のマシンサイクルで分岐
情報レジスタ(QR2)418が保持していた命令BC
TIの予測された分岐先アドレス〈C1〉と■ビットを
信号線137を介して、又命令BCT1の命令語の指定
により求められた実際の分岐先アドレスを信号線133
を介して命令アドレス変換回路402からそれぞれ受は
取り、予測された分岐先アドレス〈C1〉が正しいかど
うかの検出を行なう。しかしながらフリップフロップ4
37が“I”にセントされているため、たとえ分岐先ア
ドレス〈C1〉が正しくなくともOCステージ予測失敗
信号が信号線140に出力されることはなく、OTXス
テージ命令BCTIの分岐N0GO側へ先取りをやり直
した動作をキャンセルして分岐Go側への先取りが改め
て始まることはない。
クルが実行され、同時に命令アドレスレジスフ411L
:は、命令BCTIの分岐N0GO側に後続する命令A
1のアドレス<AI>がセントされ、命令へlのICス
テージが実行される。フリップフロップ437,438
は、前のマシンサイクルで出力されたOTステージBH
T更新指示信号とOTステージGO先取り指示信号とを
受けてそれぞれ1”、10″にセットされる。OCステ
ージ予測確認回路426は、前のマシンサイクルで分岐
情報レジスタ(QR2)418が保持していた命令BC
TIの予測された分岐先アドレス〈C1〉と■ビットを
信号線137を介して、又命令BCT1の命令語の指定
により求められた実際の分岐先アドレスを信号線133
を介して命令アドレス変換回路402からそれぞれ受は
取り、予測された分岐先アドレス〈C1〉が正しいかど
うかの検出を行なう。しかしながらフリップフロップ4
37が“I”にセントされているため、たとえ分岐先ア
ドレス〈C1〉が正しくなくともOCステージ予測失敗
信号が信号線140に出力されることはなく、OTXス
テージ命令BCTIの分岐N0GO側へ先取りをやり直
した動作をキャンセルして分岐Go側への先取りが改め
て始まることはない。
次のマシンサイクル5において、命令BCTIのEXス
テージが実行される。命令実行回路407は命令BCT
Iで指定された計数動作を行ない、その結果が“O”に
なることから、信号線149の分岐成否信号に分岐N0
GOを示す“O”を出力する。これに応答して選択回路
422は、アドレス生成回路432の出力する命令BC
TIの分岐N。
テージが実行される。命令実行回路407は命令BCT
Iで指定された計数動作を行ない、その結果が“O”に
なることから、信号線149の分岐成否信号に分岐N0
GOを示す“O”を出力する。これに応答して選択回路
422は、アドレス生成回路432の出力する命令BC
TIの分岐N。
Go側に後続する命令A1のアドレスくA1〉を選択し
て信号線155に出力する。同時に信号線151には分
岐情報レジスタ (QR4) 420の保持する命令B
CTIのアドレス<BCTI>が出力される。一方フリ
ップフロップ439.440は、フリップフロップ43
7.438の内容をoCステージ予測確認回路426を
通して受けそれぞれ11”、“0”にセットされる。E
Xステージ予測確認回路427は、信号線149の分岐
成否信号と、前のマシンサイクルで信号線146を介し
て与えられた分岐情報レジスタ(Q R3)、 419
の保持していた命令BCTIの分岐情報のVビット、お
よびフリップフロップ439.440とから、信号線1
48のEXステージBHT更新指示信号として“1”を
出力し、信号線147のEXステージ予測失敗信号とし
て“O″を出力することによって、命令BCTIの分岐
情報に従って分岐Goへ後続の命令先取りを行なったに
もかかわらず、命令BCTIは実際には分岐N0GOで
あること、しかしながら後続の誤った命令先取り動作は
キャンセルされて既に分岐N0GO側への命令取出し動
作が行なわれているためEXステージでは命令先取りの
やり直しを指示する必要のないことを示すと共に、命令
BCTIの分岐情報の更新が必要なことを示す。これを
受けて命令先取り制御回路423は、命令アドレスレジ
スタ411の入力セレクタに対し13号号線51上の命
令BCTlのアドレス<BCTI>を選択するよう指示
し、命令アドレスリカバレジスタ428の入力セレクタ
に対しては信号線107上のアドレス<AI>+16を
選択するよう指示する。もしこの時、命令アドレスレジ
スタ411の保持するアドレス<Al>+8に対応する
分岐情報が分岐ヒストリテーブル410に存在してBH
T−HIT信号が信号線106を介して与えられれば、
命令先取り制御回路423は、命令アドレスリカバレジ
スタ428の入力セレクタに対しては信号線105上の
分岐ヒストリテーブル410より取出された分岐情報の
示す分岐先アドレスを選択するよう指示する。
て信号線155に出力する。同時に信号線151には分
岐情報レジスタ (QR4) 420の保持する命令B
CTIのアドレス<BCTI>が出力される。一方フリ
ップフロップ439.440は、フリップフロップ43
7.438の内容をoCステージ予測確認回路426を
通して受けそれぞれ11”、“0”にセットされる。E
Xステージ予測確認回路427は、信号線149の分岐
成否信号と、前のマシンサイクルで信号線146を介し
て与えられた分岐情報レジスタ(Q R3)、 419
の保持していた命令BCTIの分岐情報のVビット、お
よびフリップフロップ439.440とから、信号線1
48のEXステージBHT更新指示信号として“1”を
出力し、信号線147のEXステージ予測失敗信号とし
て“O″を出力することによって、命令BCTIの分岐
情報に従って分岐Goへ後続の命令先取りを行なったに
もかかわらず、命令BCTIは実際には分岐N0GOで
あること、しかしながら後続の誤った命令先取り動作は
キャンセルされて既に分岐N0GO側への命令取出し動
作が行なわれているためEXステージでは命令先取りの
やり直しを指示する必要のないことを示すと共に、命令
BCTIの分岐情報の更新が必要なことを示す。これを
受けて命令先取り制御回路423は、命令アドレスレジ
スタ411の入力セレクタに対し13号号線51上の命
令BCTlのアドレス<BCTI>を選択するよう指示
し、命令アドレスリカバレジスタ428の入力セレクタ
に対しては信号線107上のアドレス<AI>+16を
選択するよう指示する。もしこの時、命令アドレスレジ
スタ411の保持するアドレス<Al>+8に対応する
分岐情報が分岐ヒストリテーブル410に存在してBH
T−HIT信号が信号線106を介して与えられれば、
命令先取り制御回路423は、命令アドレスリカバレジ
スタ428の入力セレクタに対しては信号線105上の
分岐ヒストリテーブル410より取出された分岐情報の
示す分岐先アドレスを選択するよう指示する。
次のマシンサイクル6において、命令BCTIは分岐ヒ
ストリテーブル410内の命令BCTIについての分岐
情報の更新を行なうHUステージを実行する。命令アド
レスレジスタ411には命令アドレス<BCTI>がセ
ットされ、フリップフロップ441は前のマシンサイク
ルで信号線14日に出力されたEXステージBIT更新
指示信号を受けて“l”にセフ)され、その出力は信号
線154を介して分岐ヒストリテーブル410に与えら
れる。
ストリテーブル410内の命令BCTIについての分岐
情報の更新を行なうHUステージを実行する。命令アド
レスレジスタ411には命令アドレス<BCTI>がセ
ットされ、フリップフロップ441は前のマシンサイク
ルで信号線14日に出力されたEXステージBIT更新
指示信号を受けて“l”にセフ)され、その出力は信号
線154を介して分岐ヒストリテーブル410に与えら
れる。
これに応答して分岐ヒストリテーブル410内の命令B
CTLの分岐情報のVビットかりセットされる。一方こ
の時、命令先取り制御回路423は命令アドレスレジス
タ411の人力セレクタに対して信号線162上に出力
されている命令アドレスリカバレジスタ428の保持す
るアドレス<At>+16を選択するよう指示し、もし
この時、OAステージにある命令A1について、OAス
テージ予m 確tv回路424より信号線121を介し
てOAステージ予測失敗信号が与えられれば、信号線1
28上のアドレスを選択するように指示する。
CTLの分岐情報のVビットかりセットされる。一方こ
の時、命令先取り制御回路423は命令アドレスレジス
タ411の人力セレクタに対して信号線162上に出力
されている命令アドレスリカバレジスタ428の保持す
るアドレス<At>+16を選択するよう指示し、もし
この時、OAステージにある命令A1について、OAス
テージ予m 確tv回路424より信号線121を介し
てOAステージ予測失敗信号が与えられれば、信号線1
28上のアドレスを選択するように指示する。
マシンサイクル7以降は、命令アドレスレジスタ411
にセットされたアドレスに従って命令先取り動作が続け
られる。
にセットされたアドレスに従って命令先取り動作が続け
られる。
第20図は、分岐ヒストリテーブルに対応する分岐情報
が存在し、分岐GO側へ後続の命令先取り動作が行なわ
れた無条件分岐命令、あるいは実際に分岐Goとなる条
件分岐命令B1の実行のようすを示すタイムチャートで
あり、命令B1に対する分岐情報の示す分岐先アドレス
が実際に命令B1の指定する分岐先アドレスとは異なっ
ていた場合を示している。
が存在し、分岐GO側へ後続の命令先取り動作が行なわ
れた無条件分岐命令、あるいは実際に分岐Goとなる条
件分岐命令B1の実行のようすを示すタイムチャートで
あり、命令B1に対する分岐情報の示す分岐先アドレス
が実際に命令B1の指定する分岐先アドレスとは異なっ
ていた場合を示している。
第1図及び第20図を参照するとマシンサイクル0の時
刻において、無条件分岐命令あるいは条件分岐命令であ
る命令BlのアドレスくB1〉が命令アドレスレジスタ
411にセットされて命令B1のICステージが実行さ
れる。アドレスくB1〉は信号線101を介して命令記
憶回路408に与えられ命令語の取出しが行なわれると
ともに、分岐ヒストリテーブル410にも与えられ、命
令B1に対する分岐情報の取出しが行なわれる。その結
果分岐ヒストリテーブル410は命令B1に対する分岐
情報を取出し、信号線105に分岐先アドレスくC1〉
を出力するとともに、信号線106にはBHT−HIT
信号を出力する。これに応答して命令先取り制御回路4
23は、命令アドレスレジスタ411の入力セレクタに
対して、予測された分岐先アドレスくC1〉が出力され
ている信号線105を選択するよう指示する。
刻において、無条件分岐命令あるいは条件分岐命令であ
る命令BlのアドレスくB1〉が命令アドレスレジスタ
411にセットされて命令B1のICステージが実行さ
れる。アドレスくB1〉は信号線101を介して命令記
憶回路408に与えられ命令語の取出しが行なわれると
ともに、分岐ヒストリテーブル410にも与えられ、命
令B1に対する分岐情報の取出しが行なわれる。その結
果分岐ヒストリテーブル410は命令B1に対する分岐
情報を取出し、信号線105に分岐先アドレスくC1〉
を出力するとともに、信号線106にはBHT−HIT
信号を出力する。これに応答して命令先取り制御回路4
23は、命令アドレスレジスタ411の入力セレクタに
対して、予測された分岐先アドレスくC1〉が出力され
ている信号線105を選択するよう指示する。
次のマシンサイクル1においては、予測された分岐先ア
ドレス<C1>が命令アドレスレジスタ411にセット
され、命令CIのICステージが実行されるとともに命
令Blの[Dステージが実行される。
ドレス<C1>が命令アドレスレジスタ411にセット
され、命令CIのICステージが実行されるとともに命
令Blの[Dステージが実行される。
マシンサイクル2において、命令CIの[Dステージと
命令C1の後続の命令C2のICステージが実行される
とともに、命令BlのOAステージが実行され、命令B
lの分岐先アドレスが命令アドレス生成回路401によ
って計算され信号線119上にその論理アドレスが出力
される。
命令C1の後続の命令C2のICステージが実行される
とともに、命令BlのOAステージが実行され、命令B
lの分岐先アドレスが命令アドレス生成回路401によ
って計算され信号線119上にその論理アドレスが出力
される。
マシンサイクル3においては命令B1のOTステージが
実行され、命令B1の分岐先アドレスが命令アドレス変
換回路402で実アドレスくDl〉に変換され、信号線
133上に出力されるとともに、命令CI、C2,C3
のOA、10.ICステージがそれぞれ実行される。分
岐情報レジスタ(QR2)418には、命令B1の分岐
情報がセントされ、予測された分岐アドレスくC1〉と
Vビットが信号線137上に出力される。
実行され、命令B1の分岐先アドレスが命令アドレス変
換回路402で実アドレスくDl〉に変換され、信号線
133上に出力されるとともに、命令CI、C2,C3
のOA、10.ICステージがそれぞれ実行される。分
岐情報レジスタ(QR2)418には、命令B1の分岐
情報がセントされ、予測された分岐アドレスくC1〉と
Vビットが信号線137上に出力される。
マシンサイクル4において、命令B1.C1゜C2,C
3,C4のQC,OT、 OA、 [D、 ICの
各ステージがそれぞれ実行される。oCステージ予測確
認回路426は、前のマシンサイクルで信号線137を
介して与えられた命令B1の予測された分岐先アドレス
<CI>と■ビットおよび信号線133を介して与えら
れた命令Blの命令語によって指定された実際の分岐先
アドレス〈Dl〉とを照合し、予測された分岐先アドレ
ス〈C1〉が誤っていることを検出し、信号線140に
OCステージ予測失敗信号を出力するとともに、信号線
156にOCステージBHT更新指示信号を、信号線1
41にはoCステージGo先取り指示信号をそれぞれ出
力する。分岐情報レジスタ(Q R3)419は前のマ
シンサイクルで信号線133上に出力された命令B1の
実際の分岐先アドレスくDl〉がセントされ、信号線1
43上にアドレス〈Dl〉を出力する。命令先取り制御
回路423は、信号線140のOCステージ予測失敗信
号に応答して、命令アドレスレジスタ411の入力セレ
クタに対して信号線143上のアドレス〈Dl〉を選択
するよう指示する。又、OCステージ予測失敗信号が出
力されたことにより、命令B1の分岐情報の示す誤った
分岐先アドレス<C1>に従って先取りされた命令CI
、C2,C3,C4の動作は全てキャンセルされる。
3,C4のQC,OT、 OA、 [D、 ICの
各ステージがそれぞれ実行される。oCステージ予測確
認回路426は、前のマシンサイクルで信号線137を
介して与えられた命令B1の予測された分岐先アドレス
<CI>と■ビットおよび信号線133を介して与えら
れた命令Blの命令語によって指定された実際の分岐先
アドレス〈Dl〉とを照合し、予測された分岐先アドレ
ス〈C1〉が誤っていることを検出し、信号線140に
OCステージ予測失敗信号を出力するとともに、信号線
156にOCステージBHT更新指示信号を、信号線1
41にはoCステージGo先取り指示信号をそれぞれ出
力する。分岐情報レジスタ(Q R3)419は前のマ
シンサイクルで信号線133上に出力された命令B1の
実際の分岐先アドレスくDl〉がセントされ、信号線1
43上にアドレス〈Dl〉を出力する。命令先取り制御
回路423は、信号線140のOCステージ予測失敗信
号に応答して、命令アドレスレジスタ411の入力セレ
クタに対して信号線143上のアドレス〈Dl〉を選択
するよう指示する。又、OCステージ予測失敗信号が出
力されたことにより、命令B1の分岐情報の示す誤った
分岐先アドレス<C1>に従って先取りされた命令CI
、C2,C3,C4の動作は全てキャンセルされる。
マシンサイクル5においては、命令アドレスレジスタ4
11には命令Blの実際の分岐先アドレスであるアドレ
ス〈Dl〉がセットされて命令DIのICステージが実
行されるとともに、命令B1のEXステージが実行され
る。命令実行回路407は命令81が条件分岐命令であ
れば、命令B1の命令語により指定された分岐条件を判
定して、その結果信号線149の分岐成否信号に分岐G
Oを示す“1”を出力し、命令B1が無条件分岐命令で
あればやはり信号線149の分岐成否信号に“1″を出
力する。これに応答して選択回路422は、分岐情報レ
ジスタ (QR4)420の保持する実際の分岐先アド
レスくDl〉を選択して信号線155上に出力する。又
、信号線151には命令B1のアドレス〈B1〉が出力
される。フリップフロップ439゜440は、前のマシ
ンサイクルで出力されたoCステージBHT更新指示信
号と、OCステージGO先取り指示信号を受けてどらち
も“1”にセットされる。EXステージ予測確認回路4
27は、命令−81に対する分岐情報に従って誤った後
続の命令の取出しが行なわれたが既にキャンセルされて
正しい分岐GO側のアドレスに従った命令先取りが行な
われており、EXステージから命令先取りのやり直しを
指示する必要のないこと、ただし分岐ヒストリテーブル
410の命令B1についての分岐情報は修正する必要の
あることを示すために、信号線147のEXステージ予
測失敗信号には“0”を、信号線148のEXステージ
BHT更新指示信号には“1″を出力する。これに応答
して命令先取り制御回路423は、命令アドレスレジス
タ411の入力セレクタに対し信号線151上の命令B
1のアドレスくB1〉を選択するように、また命令アド
レスリカバレジスタ42Bの入力セレクタに対し信号線
107上のアドレス<DI>+8を選択するようそれぞ
れ指示する。もしこの時、命令アドレスレジスタ411
の保持するアドレスくDl〉に対応する分岐情報が分岐
ヒストリテーブル410に存在してBHT−HIT信号
が信号線106に出力されれば、命令アドレスリカバレ
ジスタ428の人力セレクタに対しては、信号&?)1
05上の分岐ヒストリテーブル410より取出された分
岐情報の示す分岐先アドレスを選択するよう指示する。
11には命令Blの実際の分岐先アドレスであるアドレ
ス〈Dl〉がセットされて命令DIのICステージが実
行されるとともに、命令B1のEXステージが実行され
る。命令実行回路407は命令81が条件分岐命令であ
れば、命令B1の命令語により指定された分岐条件を判
定して、その結果信号線149の分岐成否信号に分岐G
Oを示す“1”を出力し、命令B1が無条件分岐命令で
あればやはり信号線149の分岐成否信号に“1″を出
力する。これに応答して選択回路422は、分岐情報レ
ジスタ (QR4)420の保持する実際の分岐先アド
レスくDl〉を選択して信号線155上に出力する。又
、信号線151には命令B1のアドレス〈B1〉が出力
される。フリップフロップ439゜440は、前のマシ
ンサイクルで出力されたoCステージBHT更新指示信
号と、OCステージGO先取り指示信号を受けてどらち
も“1”にセットされる。EXステージ予測確認回路4
27は、命令−81に対する分岐情報に従って誤った後
続の命令の取出しが行なわれたが既にキャンセルされて
正しい分岐GO側のアドレスに従った命令先取りが行な
われており、EXステージから命令先取りのやり直しを
指示する必要のないこと、ただし分岐ヒストリテーブル
410の命令B1についての分岐情報は修正する必要の
あることを示すために、信号線147のEXステージ予
測失敗信号には“0”を、信号線148のEXステージ
BHT更新指示信号には“1″を出力する。これに応答
して命令先取り制御回路423は、命令アドレスレジス
タ411の入力セレクタに対し信号線151上の命令B
1のアドレスくB1〉を選択するように、また命令アド
レスリカバレジスタ42Bの入力セレクタに対し信号線
107上のアドレス<DI>+8を選択するようそれぞ
れ指示する。もしこの時、命令アドレスレジスタ411
の保持するアドレスくDl〉に対応する分岐情報が分岐
ヒストリテーブル410に存在してBHT−HIT信号
が信号線106に出力されれば、命令アドレスリカバレ
ジスタ428の人力セレクタに対しては、信号&?)1
05上の分岐ヒストリテーブル410より取出された分
岐情報の示す分岐先アドレスを選択するよう指示する。
次のマシンサイクル6において、命令B1のHUステー
ジが実行され、命令Blに対する分岐情報の更新が行な
われる。命令アドレスレジスタ411には命令B1のア
ドレス〈B1〉がセットされ、レジスタ434には命令
B1の正しい分岐先アドレス〈Dl〉がセットされ、フ
リップフロップ441は前のマシンサイクルで出力され
たEXステージBHT更新指示信号を受け“l”がセッ
トされ、その出力が信号線154を介して分岐ヒストリ
テーブル410に与えられる。これに応答して分岐ヒス
トリテーブル410内の命令Blに対する分岐情報が分
岐先アドレスとして<Dl>を示ずように更新される。
ジが実行され、命令Blに対する分岐情報の更新が行な
われる。命令アドレスレジスタ411には命令B1のア
ドレス〈B1〉がセットされ、レジスタ434には命令
B1の正しい分岐先アドレス〈Dl〉がセットされ、フ
リップフロップ441は前のマシンサイクルで出力され
たEXステージBHT更新指示信号を受け“l”がセッ
トされ、その出力が信号線154を介して分岐ヒストリ
テーブル410に与えられる。これに応答して分岐ヒス
トリテーブル410内の命令Blに対する分岐情報が分
岐先アドレスとして<Dl>を示ずように更新される。
一方この時、命令先取り制御回路423は、命令アドレ
スレジスタ411の入力セレクタに対し、命令アドレス
リカバレジスタ428の出力を選択するよう指示する。
スレジスタ411の入力セレクタに対し、命令アドレス
リカバレジスタ428の出力を選択するよう指示する。
マシンサイクル7において、命令アドレスリカバレジス
タ428に退避していた命令アドレスが命令アドレスレ
ジスタ411にセットされて、以降そのアドレスに従っ
て命令先取り動作が続けられる。
タ428に退避していた命令アドレスが命令アドレスレ
ジスタ411にセットされて、以降そのアドレスに従っ
て命令先取り動作が続けられる。
第21図は、分岐ヒストリテーブル410に対応する分
岐情報が存在し分岐GO側へ後続の命令先取り動作が行
なわれた条件分岐命令BCIの実行のようすを示すタイ
ムチャートであり、命令BCIに対する分岐情報の示す
分岐先アドレスは、実際に命令BCIの指定する分岐先
アドレスとは異なっており、さらに条件分岐命令BCI
はその分岐。
岐情報が存在し分岐GO側へ後続の命令先取り動作が行
なわれた条件分岐命令BCIの実行のようすを示すタイ
ムチャートであり、命令BCIに対する分岐情報の示す
分岐先アドレスは、実際に命令BCIの指定する分岐先
アドレスとは異なっており、さらに条件分岐命令BCI
はその分岐。
条件を判定した結果分岐N0GOであった場合を示して
いる。
いる。
第1図および第21図を参照すると、マシンサイクル0
において、条件分岐命令BCIのアドレス<BCI>が
命令アドレスレジスタ411にセントされ、命令BCI
のICステージが実行される。
において、条件分岐命令BCIのアドレス<BCI>が
命令アドレスレジスタ411にセントされ、命令BCI
のICステージが実行される。
同時に命令BCIの分岐情報が分岐ヒストリテーブル4
10より取出され、予測された分岐先アドレスとして<
CI>が信号線105上に出力され、BHT−HIT信
号が信号線106上に出力される。
10より取出され、予測された分岐先アドレスとして<
CI>が信号線105上に出力され、BHT−HIT信
号が信号線106上に出力される。
これに応答して命令先取り制御回路423は、命令アド
レスレジスタ411の入力セレクタに対して、信号線1
05上のアドレス〈C1〉を選択するよう指示する。
レスレジスタ411の入力セレクタに対して、信号線1
05上のアドレス〈C1〉を選択するよう指示する。
次のマシンサイクル1において、命令BCIの予測され
た分岐先アドレス<CI>が命令アドレスレジスタ41
1にセットされ、命令C1のICステージが実行される
とともに、命令BCIのIDステージが実行される。
た分岐先アドレス<CI>が命令アドレスレジスタ41
1にセットされ、命令C1のICステージが実行される
とともに、命令BCIのIDステージが実行される。
マシンサイクル2において、命令CIのIDステージと
、命令C1の後続の命令C2のICステージが実行され
ると共に、命令BCIのOAステージが実行され、命令
BCLの分岐先アドレスが命令アドレス生成回路401
によって計算され、信号線119上にその論理アドレス
が出力される。
、命令C1の後続の命令C2のICステージが実行され
ると共に、命令BCIのOAステージが実行され、命令
BCLの分岐先アドレスが命令アドレス生成回路401
によって計算され、信号線119上にその論理アドレス
が出力される。
マシンサイクル3においては、命令BCIのOTステー
ジが実行され、命令BCIの分岐先アドレスが命令アド
レス変換回路402によって実アドレスくDl〉に変換
され信号線133上に出力される。同時に命令C1,C
2,C3のOA、ID。
ジが実行され、命令BCIの分岐先アドレスが命令アド
レス変換回路402によって実アドレスくDl〉に変換
され信号線133上に出力される。同時に命令C1,C
2,C3のOA、ID。
ICステージもそれぞれ実行される。分岐情報レジスタ
(QR2)418には命令BCIの分岐情報がセント
され予測された分岐先アドレス〈C1〉と■ビットが信
号線137上に出力される。
(QR2)418には命令BCIの分岐情報がセント
され予測された分岐先アドレス〈C1〉と■ビットが信
号線137上に出力される。
マシンサイクル4においては、命令BC1,CI、C2
,C3,C4のOC,○T、 OA、 ID。
,C3,C4のOC,○T、 OA、 ID。
ICの各ステージがそれぞれ実行される。oCステージ
予測確認回路426は、前のマシンサイクルで信号線1
37を介して与えられた命令BCIの予測された分岐先
アドレス<C1>と■ビット・および信号線133を介
して与えられた命令BCIの命令語によって指定された
実際の分岐先アドレス<DI>とを照合して、予測され
た分岐先アドレス〈C1〉が誤っていることを検出し、
信号線140にOCステージ予測失敗信号を出力すると
ともに、信号線156にOCステージBHT更新指示信
号を、信号線141にはOCステージGo先取り指示信
号をそれぞれ出力する。分岐情報レジスタ(QR3)4
19は、前のマシンサイクルで信号線133に出力され
ていた実際の分岐先アドレス〈Dl〉がセットされ、信
号線143上にそのアドレスくDl〉を出力する。命令
先取り制御回路423は信号線140のOCステージ予
測失敗信号に応答して、命令アドレスレジスフ411の
入力セレクタに対して、信号線143上のアドレス〈D
l〉を選択するよう指示する。又、OCステージ予測失
敗信号が出力されたことにより命令BC1の分岐情報の
示す誤った分岐先アドレス〈C1〉に従って先取りされ
た命令CI、C2,C3,C4の動作は全てキャンセル
される。
予測確認回路426は、前のマシンサイクルで信号線1
37を介して与えられた命令BCIの予測された分岐先
アドレス<C1>と■ビット・および信号線133を介
して与えられた命令BCIの命令語によって指定された
実際の分岐先アドレス<DI>とを照合して、予測され
た分岐先アドレス〈C1〉が誤っていることを検出し、
信号線140にOCステージ予測失敗信号を出力すると
ともに、信号線156にOCステージBHT更新指示信
号を、信号線141にはOCステージGo先取り指示信
号をそれぞれ出力する。分岐情報レジスタ(QR3)4
19は、前のマシンサイクルで信号線133に出力され
ていた実際の分岐先アドレス〈Dl〉がセットされ、信
号線143上にそのアドレスくDl〉を出力する。命令
先取り制御回路423は信号線140のOCステージ予
測失敗信号に応答して、命令アドレスレジスフ411の
入力セレクタに対して、信号線143上のアドレス〈D
l〉を選択するよう指示する。又、OCステージ予測失
敗信号が出力されたことにより命令BC1の分岐情報の
示す誤った分岐先アドレス〈C1〉に従って先取りされ
た命令CI、C2,C3,C4の動作は全てキャンセル
される。
マシンサイクル5においては、命令アドレスレジスタ4
11には、命令BCIの命令語より求められた分岐先ア
ドレス〈Dl〉がセットされ、命令DIのIcステージ
が実行されるとともに、命令BCLのP−Xステージが
実行される。命令実行回路407は、条件分岐命令BC
Iの命令語により指定された分岐条件を判定して、その
結果信号線149の分岐成否信号に分岐N0GOを示す
“0”を出力する。これに応答して選択回路422は、
アドレス生成回路432の出力する命令BCIの命令ア
ドレス<BCI>と命令BCIの命令語長とを加算した
アドレス〈A1〉を選択し、信号線155上に出力する
。また、信号線151上には、命令BCIのアドレス<
BCI>が出力される。フリップフロップ439,44
0は、前のマシンサイクルで出力されたOCステージB
HT更新指示信号と、oCステージGO先取り指示信号
とを受けて、どちらも“1″にセットされる。EXステ
ージ予測確認回路427は、前のマシンサイクルで信号
線146を介して分岐情報レジスタ (QR3) 41
9の保持する命令BCIのvビットと、信号線149の
分岐成否信号およびフリ、プフロノブ439,440の
出力を受けて、信号線147のEXステージ予測失敗信
号と信号線148のEXステージBHT更新指示信号と
に“1”を出力し、命令BCIの分岐情報は誤っており
、既に分岐GO側へ後続する命令の先取りのやり直しが
指示されたが、実際には命令BCIは分岐N0GOであ
り、分岐ヒストリテーブル410のBClに関する分岐
情報を正しく更新するとともに分岐N0GO側に後続す
る命令の先取りのやり直しを行なう必要のあることを示
す。これに応答して命令先取り制御回路423は、命令
アドレスレジスタ411の入力セレクタに対して信号n
151上のアドレス<BCI>を選択するように、ま
た命令アドレスリカバレジスタ428の入力セレクタに
対しては信号線155上のアドレス<AI>を選択する
ようにそれぞれ指示する。
11には、命令BCIの命令語より求められた分岐先ア
ドレス〈Dl〉がセットされ、命令DIのIcステージ
が実行されるとともに、命令BCLのP−Xステージが
実行される。命令実行回路407は、条件分岐命令BC
Iの命令語により指定された分岐条件を判定して、その
結果信号線149の分岐成否信号に分岐N0GOを示す
“0”を出力する。これに応答して選択回路422は、
アドレス生成回路432の出力する命令BCIの命令ア
ドレス<BCI>と命令BCIの命令語長とを加算した
アドレス〈A1〉を選択し、信号線155上に出力する
。また、信号線151上には、命令BCIのアドレス<
BCI>が出力される。フリップフロップ439,44
0は、前のマシンサイクルで出力されたOCステージB
HT更新指示信号と、oCステージGO先取り指示信号
とを受けて、どちらも“1″にセットされる。EXステ
ージ予測確認回路427は、前のマシンサイクルで信号
線146を介して分岐情報レジスタ (QR3) 41
9の保持する命令BCIのvビットと、信号線149の
分岐成否信号およびフリ、プフロノブ439,440の
出力を受けて、信号線147のEXステージ予測失敗信
号と信号線148のEXステージBHT更新指示信号と
に“1”を出力し、命令BCIの分岐情報は誤っており
、既に分岐GO側へ後続する命令の先取りのやり直しが
指示されたが、実際には命令BCIは分岐N0GOであ
り、分岐ヒストリテーブル410のBClに関する分岐
情報を正しく更新するとともに分岐N0GO側に後続す
る命令の先取りのやり直しを行なう必要のあることを示
す。これに応答して命令先取り制御回路423は、命令
アドレスレジスタ411の入力セレクタに対して信号n
151上のアドレス<BCI>を選択するように、ま
た命令アドレスリカバレジスタ428の入力セレクタに
対しては信号線155上のアドレス<AI>を選択する
ようにそれぞれ指示する。
次のマシンサイクル6において、命令BCIのHUステ
ージが実行され命令BCIに対する分岐情報の更新が行
なわれる。命令アドレスレジスタ411には命令BC1
のアドレス<BCI>がセットされ、命令アドレスリカ
バレジスタ428とレジスタ434には命令BCIの分
岐N0GO側のアドレス〈A1〉がセットされる。又、
フリップフロップ441には前のマシンサイクルで出力
されたEXステージBHT更新指示信号によって“l″
がセントされ、その出力が信号線154を介して分岐ヒ
ストリテーブル410に与えられる。これに応答して分
岐ヒストリテーブル410内の命令BCIに対する分岐
情報の■ビットがリセフトされる。一方この時、命令先
取り制御回路423は、命令アドレスレジスタ411の
入力セレクタに対して、命令BCIの分岐N0GO側の
アドレス〈A1〉を保持する命令アドレスリカバレジス
タ428の出力を選択するように指示する。
ージが実行され命令BCIに対する分岐情報の更新が行
なわれる。命令アドレスレジスタ411には命令BC1
のアドレス<BCI>がセットされ、命令アドレスリカ
バレジスタ428とレジスタ434には命令BCIの分
岐N0GO側のアドレス〈A1〉がセットされる。又、
フリップフロップ441には前のマシンサイクルで出力
されたEXステージBHT更新指示信号によって“l″
がセントされ、その出力が信号線154を介して分岐ヒ
ストリテーブル410に与えられる。これに応答して分
岐ヒストリテーブル410内の命令BCIに対する分岐
情報の■ビットがリセフトされる。一方この時、命令先
取り制御回路423は、命令アドレスレジスタ411の
入力セレクタに対して、命令BCIの分岐N0GO側の
アドレス〈A1〉を保持する命令アドレスリカバレジス
タ428の出力を選択するように指示する。
マシンサイクル7においては、命令アドレスレジスタ4
11にアドレスくA1〉がセットされ、命令BCIの後
続の命令A1の取出しが行なわれる。
11にアドレスくA1〉がセットされ、命令BCIの後
続の命令A1の取出しが行なわれる。
そして以降、命令アドレスレジスタ411にセントされ
たアドレスに従って命令先取り動作が続けられる。
たアドレスに従って命令先取り動作が続けられる。
次に本発明の効果を第18図および第19図を参照しな
がら説明する。
がら説明する。
第18図では実際には分岐GoであるBC,T命令Bl
に対する分岐情報が分岐ヒストリテーブルに登録されて
いないため、分岐N0GO側に後続の命令の先取りが行
なわれた場合を示し、第19図では逆に実際には分岐N
0GOとなるBCT命令BCTIに対する分岐情報が分
岐ヒストリテーブルに登録されていてその分岐情報に従
って分岐GO側に後続の命令の先取りが行なわれた場合
を示している。どちらの場合でも命令で指定された計数
動作を、実際の命令実行を行なうEXステージよりも前
に予め行なう演算回路と、その結果に照応して命令先取
り動作が正しいかどうかを検査する回路を設けたことに
より、マシンサイクル4の時点で後続の正しい命令のI
Cステージが実行されている。この場合、誤った命令先
取り動作のために失われたロスサイクルは、わずかに3
マシンサイクルである。一方、本発明を適用しない従来
技術では、後続の正しい命令のICステージが実行され
るのはBCT命令についての分岐ヒストリテーブル上の
誤った分岐情報を更新するHUステージの後のマシンサ
イクル7の時となり、6マシンサイクルものロスサイク
ルを費やしてしまう。
に対する分岐情報が分岐ヒストリテーブルに登録されて
いないため、分岐N0GO側に後続の命令の先取りが行
なわれた場合を示し、第19図では逆に実際には分岐N
0GOとなるBCT命令BCTIに対する分岐情報が分
岐ヒストリテーブルに登録されていてその分岐情報に従
って分岐GO側に後続の命令の先取りが行なわれた場合
を示している。どちらの場合でも命令で指定された計数
動作を、実際の命令実行を行なうEXステージよりも前
に予め行なう演算回路と、その結果に照応して命令先取
り動作が正しいかどうかを検査する回路を設けたことに
より、マシンサイクル4の時点で後続の正しい命令のI
Cステージが実行されている。この場合、誤った命令先
取り動作のために失われたロスサイクルは、わずかに3
マシンサイクルである。一方、本発明を適用しない従来
技術では、後続の正しい命令のICステージが実行され
るのはBCT命令についての分岐ヒストリテーブル上の
誤った分岐情報を更新するHUステージの後のマシンサ
イクル7の時となり、6マシンサイクルものロスサイク
ルを費やしてしまう。
以上説明したように、BCT命令に対する分岐情報が誤
っていた場合、本発明によって、従来技術に比べてはる
かに少ないロスサイクルを費やすだけで正しい後続の命
令先取り動作を行なうことができるという効果がある。
っていた場合、本発明によって、従来技術に比べてはる
かに少ないロスサイクルを費やすだけで正しい後続の命
令先取り動作を行なうことができるという効果がある。
第1図は本発明の一実施例のブロック図、第2図は第1
図の分岐ヒストリテーブル410の実施例のブロック図
、 第3図は第2図の記憶部501および502の記憶形式
を示す図、 第4図は第2図のテスト回路503〜506の実施例の
ブロック図、 第5図は第1図の命令記憶回路408における命令語の
配列の一例を示す図、 第6図は第2図のプライオリティ回路507の実施例の
ブロック図、 第7図は第1図における分岐情報バッファ413および
分岐1n報レジスタ416の格納形式を示す図、第8図
は第1図における分岐情報レジスタ417〜420の格
納形式を示す図、 第9図は第1図の命令記憶回路408における命令語と
分岐ヒストリテーブル410における分岐情報との対応
関係を説明するための図、 第10図は第9図の分岐ヒストリテーブル410による
命令先取り動作を説明するための図、第11図は第1図
のOAステージ予測確認回路424の実施例のブロック
図、 第12図は第1図のOTステージ予測確認回路425の
実施例のブロック図、 第13図は第1図のOCステージ予測確認回路426の
実施例のブロック図、 第14図は第1図のEXステージ予測確認回路427の
実施例のブロック図、 第15図は第1図の命令先取り制御回路423の実施例
のブロック図、 第16図は命令の処理の流れの概要を示す図、第17図
は分岐命令でない命令に対応する分岐情報が分岐ヒスト
リテーブルに登録されていてその誤った分岐情報に従っ
て命令先取りが行なわれた場合の動作を説明するための
タイムチャート、第18図は無条件分岐命令あるいは実
際には分岐を行なうBCT命令の実行において対応する
分岐情報が分岐ヒストリチープールに登録されていない
場合の動作を説明するためのタイムチャート、第19図
は実際には分岐を行なわないBCT命令に対応する分岐
情報が分岐ヒストリテーブルに登録されていて、その分
岐情報に従って命令先取りが行なわれた場合の動作を説
明するためのタイムチャート、 第20図は無条件分岐命令あるいは実際に分岐を行なう
条件分岐命令に対応する分岐情報が分岐ヒストリテーブ
ルに登録されていて、その分岐情報に従って命令先取り
を行なったところ、その分岐情報の示す分岐先アドレス
が誤っていた場合の動作を説明するためのタイムチャー
トおよび、第21図は実際には分岐を行なわない条件分
岐命令に対応する分岐情報が分岐ヒストリテーブルに登
録されていて、その分岐情報に従って命令先取りを行な
ったところ分岐情報の示す分岐情報の示す分岐先アドレ
スが誤っていた場合の動作を説明するためのタイムチャ
ートである。 第1図〜第21図において、 401・・・命令アドレス生成回路 402・・・命令アドレス変換回路 403・・・命令解読回路 404・・・オペランドアドレス生成回路405・・・
オペランドアドレス変換回路406・・・オペランド続
出し回路 407・・・命令実行回路、408・・・命令記憶回路
409・・・命令バッファ 410・・・分岐ヒストリテーブル(BHT)411・
・・命令アドレスレジスタ 412・・・命令アドレス加算回路 413・・・分岐情報バッファ、414・・・命令整列
回路415・・・分岐情報切換回路 416・・・分岐情報レジスタ (QRO)417・・
・分岐情報レジスタ (QRI)418・・・分岐情報
レジスタ(QR2)419・・・分岐情報レジスタ (
QR3)420・・・分岐情報レジスタ (QR4)4
21.422・・・選択回路、423・・・命令先取り
制御回路424・・・OAステージ予2II!I確認回
路425・・・OTステージ予測確認回路426・・・
OCステージ予測確認回路427・・・EXステージ予
測確認回路428・・・命令アドレスリカバレジスタ4
30.431,432・・・アドレス生成回路433・
・・演算回路、434 、435・・・レジスタ436
.437,438,439,440.441 ・・・フ
リップフロソプ501.502・・・記憶部 503,504,505,506・・・テスト回路50
7・・・プライオリティ回路、508・・・選択回路5
09・・・オア回路、601,602,603,604
・・・アンド回路605.606,607.608・・
・オア回路、701・・・−数回路702・・・大小比
較回路、703・・・アンド回路1101、1102・
・・フリップフロップ1103・・・ノット回路、11
04・・・アンド回路1201、1202.1203.
1204 ・・・フリップフロップ1206、1207
・・・真偽回路 1208、1209.1210・・・アンド回路121
1.1212.1213・・・オア回路1301.13
02・・・レジスタ、1303・・・フリップフロップ
1306・・・比較回路、1307・・・真偽回路13
08・・・アンド回路、1309.1310・・・オア
回路1401・・・フリップフロップ 1402、1403.1404・・・真偽回路1405
、1406・・・ナンド回路 1407、1408・・・アンド回路、1409・・・
オア回路1501・・・フリップフロップ 1502、1503.1504.1505.1506.
1507・・・真偽回路150B、1509,1510
. 1511,1512.1513,1514,151
5,1516゜1517.1518・・・アンド回路。
図の分岐ヒストリテーブル410の実施例のブロック図
、 第3図は第2図の記憶部501および502の記憶形式
を示す図、 第4図は第2図のテスト回路503〜506の実施例の
ブロック図、 第5図は第1図の命令記憶回路408における命令語の
配列の一例を示す図、 第6図は第2図のプライオリティ回路507の実施例の
ブロック図、 第7図は第1図における分岐情報バッファ413および
分岐1n報レジスタ416の格納形式を示す図、第8図
は第1図における分岐情報レジスタ417〜420の格
納形式を示す図、 第9図は第1図の命令記憶回路408における命令語と
分岐ヒストリテーブル410における分岐情報との対応
関係を説明するための図、 第10図は第9図の分岐ヒストリテーブル410による
命令先取り動作を説明するための図、第11図は第1図
のOAステージ予測確認回路424の実施例のブロック
図、 第12図は第1図のOTステージ予測確認回路425の
実施例のブロック図、 第13図は第1図のOCステージ予測確認回路426の
実施例のブロック図、 第14図は第1図のEXステージ予測確認回路427の
実施例のブロック図、 第15図は第1図の命令先取り制御回路423の実施例
のブロック図、 第16図は命令の処理の流れの概要を示す図、第17図
は分岐命令でない命令に対応する分岐情報が分岐ヒスト
リテーブルに登録されていてその誤った分岐情報に従っ
て命令先取りが行なわれた場合の動作を説明するための
タイムチャート、第18図は無条件分岐命令あるいは実
際には分岐を行なうBCT命令の実行において対応する
分岐情報が分岐ヒストリチープールに登録されていない
場合の動作を説明するためのタイムチャート、第19図
は実際には分岐を行なわないBCT命令に対応する分岐
情報が分岐ヒストリテーブルに登録されていて、その分
岐情報に従って命令先取りが行なわれた場合の動作を説
明するためのタイムチャート、 第20図は無条件分岐命令あるいは実際に分岐を行なう
条件分岐命令に対応する分岐情報が分岐ヒストリテーブ
ルに登録されていて、その分岐情報に従って命令先取り
を行なったところ、その分岐情報の示す分岐先アドレス
が誤っていた場合の動作を説明するためのタイムチャー
トおよび、第21図は実際には分岐を行なわない条件分
岐命令に対応する分岐情報が分岐ヒストリテーブルに登
録されていて、その分岐情報に従って命令先取りを行な
ったところ分岐情報の示す分岐情報の示す分岐先アドレ
スが誤っていた場合の動作を説明するためのタイムチャ
ートである。 第1図〜第21図において、 401・・・命令アドレス生成回路 402・・・命令アドレス変換回路 403・・・命令解読回路 404・・・オペランドアドレス生成回路405・・・
オペランドアドレス変換回路406・・・オペランド続
出し回路 407・・・命令実行回路、408・・・命令記憶回路
409・・・命令バッファ 410・・・分岐ヒストリテーブル(BHT)411・
・・命令アドレスレジスタ 412・・・命令アドレス加算回路 413・・・分岐情報バッファ、414・・・命令整列
回路415・・・分岐情報切換回路 416・・・分岐情報レジスタ (QRO)417・・
・分岐情報レジスタ (QRI)418・・・分岐情報
レジスタ(QR2)419・・・分岐情報レジスタ (
QR3)420・・・分岐情報レジスタ (QR4)4
21.422・・・選択回路、423・・・命令先取り
制御回路424・・・OAステージ予2II!I確認回
路425・・・OTステージ予測確認回路426・・・
OCステージ予測確認回路427・・・EXステージ予
測確認回路428・・・命令アドレスリカバレジスタ4
30.431,432・・・アドレス生成回路433・
・・演算回路、434 、435・・・レジスタ436
.437,438,439,440.441 ・・・フ
リップフロソプ501.502・・・記憶部 503,504,505,506・・・テスト回路50
7・・・プライオリティ回路、508・・・選択回路5
09・・・オア回路、601,602,603,604
・・・アンド回路605.606,607.608・・
・オア回路、701・・・−数回路702・・・大小比
較回路、703・・・アンド回路1101、1102・
・・フリップフロップ1103・・・ノット回路、11
04・・・アンド回路1201、1202.1203.
1204 ・・・フリップフロップ1206、1207
・・・真偽回路 1208、1209.1210・・・アンド回路121
1.1212.1213・・・オア回路1301.13
02・・・レジスタ、1303・・・フリップフロップ
1306・・・比較回路、1307・・・真偽回路13
08・・・アンド回路、1309.1310・・・オア
回路1401・・・フリップフロップ 1402、1403.1404・・・真偽回路1405
、1406・・・ナンド回路 1407、1408・・・アンド回路、1409・・・
オア回路1501・・・フリップフロップ 1502、1503.1504.1505.1506.
1507・・・真偽回路150B、1509,1510
. 1511,1512.1513,1514,151
5,1516゜1517.1518・・・アンド回路。
Claims (1)
- 【特許請求の範囲】 指定された汎用レジスタの保持する計数値を計数する命
令実行回路を有し、該命令実行回路での計数結果により
分岐の有無を決定して計数分岐命令を実行する情報処理
システムにおける命令先取り装置において、 分岐命令のアドレスを指定する情報と該分岐命令の分岐
先アドレスを含む分岐情報とを対にして複数対記憶する
分岐ヒストリテーブル手段と、命令先取り動作を行なう
際に該命令先取り動作において先取りされる命令のアド
レスを指定する情報が前記分岐ヒストリテーブル手段に
登録されているか否かを調べる第1の点検手段と、 前記命令先取り動作によって先取りされた命令が計数分
岐命令である時には前記命令実行回路での計数動作に先
立って予め計数動作を行なう演算手段と、 前記演算手段による計数動作の結果に応答して分岐の有
無を調べる第2の点検手段と、 前記第1の点検手段による登録の判明に応答して前記分
岐ヒストリテーブル手段から対応する分岐情報を読出し
、該分岐情報に従って命令先取り動作を継続せしめるよ
う制御し、且つ、前記第1および第2の点検手段の結果
に応答して誤った命令先取り動作が行なわれた時には前
記先取りされた計数分岐命令の実行を待たずに、後続の
誤った命令先取り動作を是正せしめるよう制御する命令
先取り制御手段とを具備したことを特徴とする命令先取
り装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61000321A JPH0754460B2 (ja) | 1986-01-07 | 1986-01-07 | 命令先取り装置 |
DE3752100T DE3752100T2 (de) | 1986-01-07 | 1987-01-05 | Befehlsvorabrufgerät mit einer Schaltung zum Prüfen der Vorhersage eines Verzweigungsbefehls vor seiner Ausführung |
US07/000,427 US4853840A (en) | 1986-01-07 | 1987-01-05 | Instruction prefetching device including a circuit for checking prediction of a branch instruction before the instruction is executed |
EP87100055A EP0229619B1 (en) | 1986-01-07 | 1987-01-05 | Instruction prefetching device comprising a circuit for checking prediction for a branch instruction before the instruction is executed |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61000321A JPH0754460B2 (ja) | 1986-01-07 | 1986-01-07 | 命令先取り装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62159228A true JPS62159228A (ja) | 1987-07-15 |
JPH0754460B2 JPH0754460B2 (ja) | 1995-06-07 |
Family
ID=11470642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61000321A Expired - Lifetime JPH0754460B2 (ja) | 1986-01-07 | 1986-01-07 | 命令先取り装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0754460B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06236271A (ja) * | 1993-01-08 | 1994-08-23 | Internatl Business Mach Corp <Ibm> | プロセッサおよび命令推測実行方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58123141A (ja) * | 1982-01-19 | 1983-07-22 | Nec Corp | 高速計数分岐実行方式 |
JPS58163046A (ja) * | 1982-03-23 | 1983-09-27 | Mitsubishi Electric Corp | 情報処理装置 |
JPS60175148A (ja) * | 1984-02-21 | 1985-09-09 | Nec Corp | 命令先取り装置 |
-
1986
- 1986-01-07 JP JP61000321A patent/JPH0754460B2/ja not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58123141A (ja) * | 1982-01-19 | 1983-07-22 | Nec Corp | 高速計数分岐実行方式 |
JPS58163046A (ja) * | 1982-03-23 | 1983-09-27 | Mitsubishi Electric Corp | 情報処理装置 |
JPS60175148A (ja) * | 1984-02-21 | 1985-09-09 | Nec Corp | 命令先取り装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06236271A (ja) * | 1993-01-08 | 1994-08-23 | Internatl Business Mach Corp <Ibm> | プロセッサおよび命令推測実行方法 |
Also Published As
Publication number | Publication date |
---|---|
JPH0754460B2 (ja) | 1995-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5546593A (en) | Multistream instruction processor able to reduce interlocks by having a wait state for an instruction stream | |
EP0205809B1 (en) | Vector processing | |
US4476525A (en) | Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously | |
CA1323940C (en) | Preprocessing implied specifiers in a pipelined processor | |
CA1324671C (en) | Decoding multiple specifiers in a variable length instruction architecture | |
EP0352935B1 (en) | Pipelined processor | |
JPH0283735A (ja) | 命令先取り装置 | |
CZ93491A3 (en) | Digital computer system | |
KR100493126B1 (ko) | 데이터정밀도모드표시기를구비한다중파이프라인형마이크로프로세서 | |
JPH0844562A (ja) | コンピュータシステム及びその動作方法 | |
AU620668B2 (en) | Data processing apparatus | |
JPH0562390B2 (ja) | ||
EP1050804A1 (en) | Execution of instruction loops | |
US5497496A (en) | Superscalar processor controlling fetching of instructions based upon number of empty instructions registers detected for each cycle | |
EP0094535B1 (en) | Pipe-line data processing system | |
JP2000330788A (ja) | コンピュータシステム | |
KR930003124B1 (ko) | 파이프라인방식의 분기명령제어장치 | |
KR100431975B1 (ko) | 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템 | |
JP2643087B2 (ja) | プログラム処理方法及びコンピュータ・システム | |
JPS62159228A (ja) | 命令先取り装置 | |
JPS62159230A (ja) | 命令先取り装置 | |
JPS5991551A (ja) | 分岐先アドレス予測を行なう命令先取り装置 | |
JPH046983B2 (ja) | ||
JPH01183737A (ja) | 情報処理装置 | |
JPS62159231A (ja) | 命令先取り装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |