JPH04101219A - 命令分岐予測方式 - Google Patents

命令分岐予測方式

Info

Publication number
JPH04101219A
JPH04101219A JP21865590A JP21865590A JPH04101219A JP H04101219 A JPH04101219 A JP H04101219A JP 21865590 A JP21865590 A JP 21865590A JP 21865590 A JP21865590 A JP 21865590A JP H04101219 A JPH04101219 A JP H04101219A
Authority
JP
Japan
Prior art keywords
instruction
branch
btb
pipeline
executed
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
JP21865590A
Other languages
English (en)
Inventor
Itsumi Sugiyama
五美 杉山
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP21865590A priority Critical patent/JPH04101219A/ja
Publication of JPH04101219A publication Critical patent/JPH04101219A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔目 次〕 概要 産業上の利用分野 従来の技術と発明が解決しようとする課題課題を解決す
るための手段 作用 実施例 発明の効果 〔概要〕 パイプライン計算機における命令分岐予測方式に関し、 分岐命令、特に、プログラム中でループを形成している
分岐命令を高速に実行することを目的とし、 パイプライン計算機において、分岐命令が成功したとき
、ブランチターゲットバッファ(BTB)に、該分岐命
令と、複数個の分岐先命令とを記憶しておき、パイプラ
インの命令デコードサイクル(Dサイクル)にて、該分
岐命令の一部によりブランチターゲットバッファ(BT
B)を検索し、ブランチターゲットバッファ(BTB)
内の分岐命令と、命令デコードサイクルの分岐命令とを
比較し、一致したらブランチターゲットバッファ(BT
B)内の複数個の分岐先命令を次命令としてパイプライ
ンに投入して処理するように構成する。
〔産業上の利用分野〕
本発明は、パイプライン計算機における命令分岐予測方
式に関する。
計算機システムの処理能力を向上させる為によく使用さ
れるパイプライン計算機においては、プログラム分岐が
行われると、該パイプラインに無駄な空きサイクル(ス
テージともいう)を生じる。
又、プログラム処理には、複数回のループを形成してい
て、特定の条件が成立すると、該ループから抜は出すよ
うになっていることが多い。
該パイプライン計算機の処理能力を向上させる為には、
このようなループ処理を効率的に実行することができる
分岐制御方式が必要とされる。
〔従来の技術と発明が解決しようとする課題]第2図は
パイプライン計算機における従来の分岐方式を説明する
図であり、(a)は構成例を示し、(b)は動作タイム
チャートを示している。
先ず、(a)図によって、−船釣なパイプライン計算機
の構成例を説明する。
図中、I−CAC)IE 10は、図示されていない主
記憶装置内の命令を一時的に保持する記憶回路(所謂、
キャッシュメモリ)である。IBF 11は命令のブリ
フェッチデータを保持するレジスタである。
各命令に対するパイプライン制御は、仮に、次のように
分割された6段構成のパイプライン5で行われるものと
する。
ステート    機能 D = 命令デコード A : オペランドアドレス計算 T  :  TLB、TAG読み出し B : バッファ記憶読み出し E : 演算 W : オペランド格納 (a)図において、パイプライン5のステートバッファ
(以下、略)DIBF50はDステートでの命令コード
を保持するレジスタである。通常は、上記IBF 11
からのデータがセットされ、IBF 11にない時は、
I−CACHE 10から読み出されたデータがセット
される。
該DIBF50に設けられているDEC50aは命令デ
コード回路で、分岐命令かどうか等を検出する。
次のAlBF31 はAステートでの命令コードを保持
するレジスタであり、上記DIBF50の出力がセット
される。”IMBF52はTステートでの命令コードを
保持するレジスタであり、上記AlBF31の出力がセ
ットされる。BIBF53はBステートでの命令コード
を保持するレジスタであり、上記TlBF32の出力が
セットされる。EIBF54はEステートでの命令コー
ドを保持するレジスタであり、上記BIBF53の出力
がセットされる。WIBF55はWステートでの命令コ
ードを保持するレジスタであり、上記EIBF54の出
力がセットされる。
通常、Eステートにおける演算結果に基づいて、分岐条
件判定回路で該分岐命令の分岐条件の判定が行われる。
そして、従来方式においては、パイプライン計算機の分
岐予測は、分岐不成功を優先的に実行する方式が主流で
あった。
この方式では、例えば、該分岐命令の前に実行されてい
る演算命令(ADD)の、Eステートでの演算結果に基
づいて、分岐条件の成立/不成立が確定されるので、(
b)図のタイムチャートに示したように、分岐条件が成
立した場合、それまで、該パイプライン5で実行されて
いた先行命令(NEXT 。
NEXT+1.NEXT+2.−)はキャンセル(CA
NCEL)されるように制御される為、パイプライン5
に、空きサイクルの無駄が生じるという問題があった。
この問題は、パイプライン段数が多くなると、分岐先命
令(TAGET)の取り出しに時間がかかり、分岐成功
時には複数サイクルの空が生じるという問題を生じてい
た。従って、ループ処理の多いプログラムでの処理速度
を著しく低下させる要因ともなっていた。
本発明は上記従来の欠点に鑑み、パイプライン計算機に
おいて、分岐命令、特に、プログラム中でループを形成
している分岐命令を高速に実行することができる命令分
岐予測方式を提供することを目的とするものである。
〔課題を解決するための手段〕
上記の問題点は下記の如くに構成した命令分岐予測方式
によって解決される。
パイプライン計算機において、分岐が成功した分岐命令
の、例えば、一部、又は、該分岐命令のアドレスの一部
と、複数個の分岐先命令と、その分岐先命令の有効性を
示すフラグ(V)を保持する記憶回路(BTB)を設け
、 命令解読時に解読中の命令が前記記憶回路(BTB)に
登録されているかを解読中の命令の一部。
又は、命令のアドレスの一部と、前記記憶回路(BTB
)に登録されている分岐命令の一部、又は、該分岐命令
のアドレスの一部とを第1の比較回路(COMPI)で
比較し、一致したら前記記憶回路(BTB)の分岐先命
令を次命令としてパイプラインに投入し、一致しなかっ
たらメモリからの分岐先命令を次命令としてパイプライ
ンに投入し、 該メモリから読み出された分岐先命令と、前記記憶回路
(BTB)からパイプラインに投入され実行中の分岐先
命令とを第2の比較回路(COMP2)で比較し、一致
したら実行中の分岐先命令を継続実行し、一致しなかっ
たら実行中の分岐先命令をキャンセルして、該メモリか
ら読み出された分岐先命令を実行し、 更に、前記記憶回路(BTB)の分岐命令の一部。
又は、該分岐命令のアドレスの一部が不一致で、且つ、
分岐成功の時は、該分岐命令の一部、又は、該分岐命令
のアドレスの一部と、複数個の分岐先命令とを前記記憶
回路(BTB)に再登録を行う■ように構成する。
〔作用〕
一般に、繰り返し処理、即ち、ループ処理では、ある条
件が成立するまで、分岐命令によって命令カウンタが戻
され、以前実行した命令が再度実行される。
そこで、本発明においては、分岐が成功した分岐命令(
又は、分岐命令のアドレス二分岐が成功した分岐命令を
、該分岐命令が格納されている記憶装置のアドレスでも
識別できることに着目すると、分岐命令の内容でなくで
、該分岐命令の格納されているアドレスでもよい。以下
、略)と1分岐先命令を、ブランチターゲットバッファ
(BTB)に、該分岐が成功した分岐命令(又は、分岐
命令のアドレス)の一部をアドレスとして覚えておき、
命令解読時(即ち、パイプラインのDステージでの処理
時)に解読中の命令がブランチターゲットバッファ(B
TB)に登録されているかを、解読中の命令(又は、命
令のアドレス)の一部でアドレスしたブランチターゲッ
トバッファ(BTB)の分岐命令(又は、分岐命令のア
ドレス)の一部と比較(第1の比較器(COMPI)に
よる)し、一致したらブランチターゲットバッファ(B
TB)の分岐先命令を次命令としてパイプラインに投入
し、一致しなかったら、メモリから読み出した分岐先命
令を次命令としてパイプラインに投入する。
分岐命令はアドレス計算(Aステージ)1分岐先命令の
読み出しくT、Bステージ)を引き続き行う。
そして、メモリから読み出された分岐先命令とブランチ
ターゲットバッファ(BTB)からパイプラインに投入
され実行中の分岐先命令を比較(第2の比較器(CPM
P2)による)し、一致したら実行中の分岐先命令を継
続実行し、一致しなかったら実行中の分岐先命令をキャ
ンセルして、上記メモリから読みだされた分岐先命令を
実行する。
更に、ブランチターゲットバッファ(BTB)の分岐命
令(又は、分岐命令のアドレス)が不一致で、且つ、分
岐成功の時は、該分岐命令(又は、分岐命令のアドレス
)の一部と、複数個の分岐先命令とをブランチターゲッ
トバッファ(BTB)に再登録を行うようにする。
このように、本発明においては、ループ処理のように、
分岐条件成功で、繰り返し分岐されるような場合、該分
岐先命令を、ブランチターゲットバッファ(BTB)に
記憶してお(ことで、該分岐命令を検出したとき、即、
分岐先命令をパイプラインに投入することができ、従来
方式のように、分岐不成功を優先的に実行して、条件成
立でパイプラインをキャンセルすることがなく、該ルー
プ処理を効率良(実行することができ、分岐命令を高速
に実行することができる効果がある。
〔実施例〕
以下本発明の実施例を図面によって詳述する。
第1図は本発明の一実施例を示した図であり、(a)は
構成例を示し、(bl)〜(b4)は動作タイムチャー
トを示し、(cl)〜(c3)は分岐命令の動作サイク
ル数を示している。
本発明においては、パイプライン計算機において、分岐
命令を実行して、条件成立で分岐した場合の該分岐命令
と9分岐先命令とを、該分岐命令の一部、例えば、下位
4ビツトをアドレスとして、ブランチターゲットバッフ
ァ (以下、BTBという)2に登録しておき、パイプ
ライン5のDステートで命令解読中に、該命令が、上記
BTB 2に登録されている分岐命令(具体的には、該
分岐命令の一部)と一致することを、第1の比較器(C
OMPI) 3で検出したとき、該BTB 2の同じア
ドレスに登録されている分岐先命令をパイプライン5に
投入して実行させ、不一致の場合には、メモリ10.又
は、11からの分岐先命令(TARGET)を該パイプ
ライン5に投入する。更に、該パイプライン5に投入さ
れた分岐先命令と、上記分岐命令を実行して読み出した
分岐先命令とを第2の比較器(COMP2) 4で比較
し、一致した場合には、該実行中の分岐先命令を継続実
行し、不一致の場合には、上記BTB 2から投入され
た分岐先命令をキャンセルして、上記メモリから読み出
された分岐先命令をパイプライン5に投入して実行する
手段が本発明を実施するのに必要な手段である。尚、全
図を通して同じ符号は同じ対象物を示している。
以下、第1図によって、本発明の命令分岐予測方式を説
明する。
本発明を実施しても、パイプライン計算機でのパイプラ
イン5の基本的な動作は、従来方式と変わることはない
ので詳細は省略し、ここでは、BTB2の構成と、その
関連動作を中心にして、本発明の命令分岐予測方式を説
明する。
然して、該パイプライン5には、各命令毎に定められて
いるハイド巾(例えば、4ハイド命令。
8ハイド命令等)の命令が投入されるし、I−CACH
E 10.又は、rBF 11からはハス巾、例えば、
8ハイド長で読み出され、後述のTABF 60.TG
WBF61には、該ハス巾で、複数命令が設定されるも
のとする。
本発明においては、分岐命令を実行し、分岐が成功した
とき、該分岐命令の一部と、複数個の分岐先命令を、該
分岐命令の一部、例えば、下位4ビツトをアドレスとし
て87B 2に記憶しておく。
該BTB 2は、(a)図に示されている如くに、分岐
命令の一部を記憶するrBRIBF、部20と、複数個
(但し、最大、4サイクルで実行される分、即ち、l命
令が1サイクルで実行されるものであると、最大4命令
分、1命令が2サイクルで実行されるものであると、最
大2命令等)の分岐先命令を記憶するrTARGET 
IBFJ部21と、バリッド部(V) 22とからなる
このBTB 2において、分岐が成功した場合の分岐命
令の登録は、全ビットを登録しても良いが、第1図(a
) 「BRIBFJ部20に示されているように、その
一部、即ち、分岐命令の、例えば、操作部と、下位4ピ
ントを除いたものであってもよいことは、パイプライン
のDステートで使用されるDIBF50の操作部を、該
BTB 2で、該分岐命令を検索する論理(後述する論
理積回路3a参照)に使用していること、又、前述のよ
うに、BTB 2をアクセスするのに、該DIBF50
の下位4ビツトをアドレスとして使用していることから
明らかである。この結果、該BTB 2の容量を削減す
ることができる効果が得られる。
先ず、分岐命令が当該パイプライン5に投入され、一つ
前の演算命令のEステート等において、分岐条件が成立
すると、該パイプラインのWIBF 55に設定されて
いる分岐命令と、該分岐命令によって、I−CACHE
 10から読み出され、TGWBF 61に設定されて
いる分岐先命令とが、該W■BF35の下位4ピントを
アドレスして、本発明のBTB 2をアクセスし、該B
TB 2に登録され、対応するバリッドビット(v)が
°オン゛に設定され、以降での命令分岐予測の動作に使
用される。
ここで、前述のI−CACHE 10.又は、IBF 
11から命令がDIBF50に設定され(即ち、当該パ
イプラインに投入され)、その操作部がデコーダ(DE
C) 50aでデコードされると同時に、該DIBF5
0の下位4ビツトで、本発明のBTB 2がアクセスさ
れ、上記rBRIBFJ 20の内容と、当該DIBF
 50の一部(即ち、上記操作部と、下位4ビツトを除
いた部分)とが第1の比較回路(COMPI) 3で比
較される。
このとき、一致信号が出力され、且つ、該操作部が分岐
命令であることを指示すると共に、上記バリッド(V)
が有効(゛オン゛)ことが、論理積回路(AND) 3
aで認識されると、該BTB 2のrTARGET I
BFJ部21に登録されている分岐先命令が、本パイプ
ライン5に投入、即ち、上記DIBF50に設定され、
rTARGET IBFJ部21に登録されている分岐
先命令の次の命令がブランチターゲットバッファレジス
タ (以下、BTBRという)7に設定される。
若し、一致信号が出力されなかったときは、分岐命令で
あっても、本発明の命令分岐予測の対象でないと認識さ
れ、I−CACHE 10.又は、IBF 11からの
、該分岐命令の分岐先命令(TARGET)が、該パイ
プライン5に投入される。
該BTB 2から投入された上記分岐先命令が、当該パ
イプラインを順次通過して、BステートのBIBF54
に設定されたサイクルにおいて、先行している分岐命令
によって読み出され、TlBF32に設定されている分
岐先命令(前述のように、メモリバス巾の命令であるか
ら、該命令の長さによっては、例えば、2命令であるこ
とがある。)が、第2の比較回路(COMP2) 4で
比較される。
即ち、該TGBF60には、メモリバス巾(例えば、8
ハイド巾)の分岐先の命令が設定されているので、該第
2の比較回路(COMP2) 4で比較されるステート
バッファは、BIBF53に設定されている分岐先の命
令の長さによって変わることになる。例えば、該BIB
F53に設定されている分岐先の命令の長さが4ハイド
であると、後段のTlBF32も同時に比較する必要が
ある。
ここで、一致信号が得られると、予測した分岐先命令と
、実際の分岐先命令とうが同しであると認識して、該パ
イプライン5で実行中の分岐先の命令を継続実行するが
、若し、不一致を検出した場合には、予測した分岐先命
令と、実際の分岐先命令とが異なると認識し、該パイプ
ライン5で実行中の分岐先命令をキャンセルし、上記T
GBF60に読み出された実際の分岐先命令を、パイプ
ライン5に投入して実行する。
又、上記第1の比較回路(COMPI) 3において、
BTB 2の分岐命令が不一致であり、且つ、該分岐命
令が分岐成功したときには、そのとき、上記TGWBF
61に設定されている分岐先命令と共に、該分岐命令の
一部を前述のようにして、Wステートにおいて、BTB
 2に再登録を行い、以降での命令分岐予測処理に使用
する。
以上の動作が本発明による命令分岐予測の基本的な動作
である。
以下、(bl)〜(b3)の動作タイムチャートによっ
て、上記第1の比較回路(COMPI) 3.第2の比
較回路(COMP2) 4が一致/不一致を出力する各
ケースを例にして、より具体的に説明する。
[ケース11 BTB 2のエントリが有効で、分岐命令、及び、分岐
先命令が一致した場合: (bl)図参照分岐命令(8
RANCH)の次に分岐先命令(BTB)が実行され、
その次に分岐先命令の次の命令(BTBR:レジスタB
TBR7に設定されている命令)が実行される。
各命令が1サイクルで実行されると、BTB 2の上記
「TARGETIBF」部21からは、上記分岐先命令
(BTB)と、該分岐先命令の次の命令(BTBR) 
Lかパイプライン5には投入されていないので、ブリフ
ェッチにより、該分岐先の後続命令(TARGET+n
)が取り出されるまで2サイクルの空き(NOP)がで
きる。
その場合でも1サイクル分、本発明のほうが速く、まし
て分岐先命令が複数サイクル、例えば、前述の最大4サ
イクル必要な命令の場合では、該分岐命令の見かけ上の
サイクルはわずか1サイクルになる。
この様子を示したものが、(CI)〜(C3)図の分岐
命令の動作サイクルである。
[BTB 2に2命令入り、それぞれが1サイクlし命
令の場合] : (cl)図参照 ループ回数をnとすると、 従来方式の場合、分岐成功のとき、分岐先が読み出され
る迄に、4サイクル(即ち、D、A、T。
Bステートの4サイクル)かかり、ループ終了時には分
岐不成功に必要な1サイクルしか必要でないので、図示
されている如くに、従来方式での該分岐命令のサイクル
数は、 nXd+1X3+4 サイクル これに反し、本発明を適用した場合には、従来と異なり
、分岐先を予測して実行さるので、最初は4サイクル必
要であり、次のループでは、前述のように、2サイクル
の空きが生しるので、(bl)の動作タイムチャートか
ら明らかな如(、分岐時には、3サイクルを必要とし、
ループ終了時には、次命令の読み出し動作が必要となる
ことから、図示されている如くに、該分岐命令のサイク
ル数は、4+(n−1)X3+4サイクル となり、前述のように、従来方式と比較すると、ループ
回数が5サイクル以上のとき、1サイクル分、本発明を
実施した方が高速化される。
同様にして、分岐先命令が複数サイクル、例えば、4サ
イクル必要な場合には、ループ処理に必要なサイクル数
は1サイクルとなることから、(C3)図に示した如く
になり、結果として、前述のように、本発明を適用した
場合、分岐命令の見掛は上のサイクル数は、わずかに1
サイクルとなる。
[ケース21 BTB 2のエントリが無効、又は、分岐命令が不一致
の場合: (b2)図参照 分岐命令(BRANC)I)の後は、該分岐命令(BR
ANC)l)のBステートで分岐先フェフチによって、
該分岐先命令(TARGET)が読み出される迄、パイ
プライン5は空きとなる。
この動作は、本発明を適用しない従来のパイプライン計
算機の場合(第2図(b)参照)と同しとなり、本発明
を通用しても、従来より遅くなることはない。
[ケース31 BTB 2のエントリが有効で、分岐先命令が不一致の
場合: (b3)図参照 分岐命令(BRANCH)の次に、分岐先命令(BTB
)が実行され、その次に、該分岐先命令(BTB)の次
の命令(BTBR)が実行されるが、第2の比較回路(
COMP2)4で、該分岐先命令(BTB)と、該分岐
命令(BRANCH)によって読み出された分岐先命令
(TARGET)との不一致が検出されると、上記BT
B 2からパイプライン5に投入して実行されていた上
記分岐先命令(BTB) 、該分岐先命令(BTB)の
次の命令(BTBR)がキャンセルされ、その後、前述
のように、分岐命令によって読み出され、TGBF60
に設定されていた分岐先命令(TARGET)をパイプ
ライン5に投入することになる。
従って、(b3)図の動作タイムチャートに示されてい
る如くに、該分岐命令のサイクル数は、本来の4サイク
ルより実質lサイクル分遅い5サイクルとなってしまう
が、分岐命令が同じで1分岐先命令が異なるケースは、
極めて稀であるので、本発明を妨げる要因になることは
ない。
[ケース41 BTB 2のエントリが有効で、分岐先命令が一致で、
且つ、直前の演算命令によって条件分岐が不成立の場合
: (b4)図参照 分岐命令(BRANCH)の次に、分岐先命令(BTB
)が実行され、その次に、該分岐先命令(BTB)の次
の命令(BTBR)が実行されるが、第2の比較回路(
COMP2)4で、該分岐先命令(BTB)と、該分岐
命令(BRANC)I)によって読み出された分岐先命
令(TARGET)との一致が検出されても、直前の演
算命令(本例では、図示されている如くにrADD J
命令)のEステートによって、該分岐命令に対する不分
岐の条件が検出されると、該分岐命令(BRANCH)
以降がキャンセル(CANCEL)され、該分岐命令(
BRANCH)の後続命令(NEXT)が、図示のサイ
クルで、パイプライン5(具体的には、DIBF50に
)投入され、実行される。
従って、図示されている如(に、該分岐命令(BRAN
CH)は、実質4サイクルかかるが、これは、ループ処
理の最後のケースであるから、[ケース11の場合の、
該分岐命令のサイクル数の計算式、即ち、 従来方式: nX4+1サイクル 本発明: 4+ (n−1)X3+4サイクルから明ら
かな如く、ループが5回以上あるケースでは、本発明を
適用した方が有利となる。一般に、ループの回数は多い
ものであるので、この条件も本発明を妨げる要因とはな
らない。
このように、本発明は、パイプライン計算機において、
分岐命令を実行して、条件成立で分岐した場合の該分岐
命令(その一部であってもよい)と1分岐先命令とを、
該分岐命令の一部、例えば、下位4ピントをアドレスと
して、ブランチターゲットバッファ (BTB) 2に
登録しておき、パイプラインのDステートで命令解読中
に、該命令が、上記BTB 2に登録されている分岐命
令と一致することを、第1の比較器(COMPI) 3
で検出したとき、該BTB 2の同じアドレスに登録さ
れている分岐先命令をパイプライン5に投入して実行さ
せ、不一致の場合には、メモリ 10.又は、11から
の分岐先命令(TARGET)をパイプライン5に投入
する。更に、該パイプライン5に投入された分岐先命令
と、上記分岐命令を実行して読み出した分岐先命令とを
第2の比較器(COMP2) 4で比較し、一致した場
合には、該実行中の分岐先命令を継続実行し、不一致の
場合には、該投入された分岐先命令をキャンセルして、
上記メモリ(1−CACHE) 10から読み出された
分岐先命令をパイプラインに投入して実行するようにし
て、該分岐命令の高速化を図った所に特徴がある。
〔発明の効果] 以上、詳細に説明したように、本発明の命令分岐予測方
式は、パイプライン計算機において、分岐命令が成功し
たとき、ブランチターゲットバッファ(BTB)に、該
分岐命令と、複数個の分岐先命令とを記憶しておき、パ
イプラインの命令デコードサイクル(Dサイクル)にて
、分岐命令の一部(具体的には、下位4ビツト)により
ブランチターゲットバッファ(BTB)を検索し、ブラ
ンチターゲットバッファ(BTB)内の分岐命令と、命
令デコードサイクルの分岐命令とを比較し、一致したら
ブランチターゲットバッファ(BTB)内の分岐先命令
を次命令としてパイプラインに投入して処理するように
したものであるので、ループ処理のように、分岐条件成
功で、繰り返し分岐されるような場合、該分岐先命令を
、ブランチターゲットバッファ(BTB)に記憶してお
くことで、該分岐命令を検出したとき、即、分岐先命令
をパイプラインに投入することができ、従来方式のよう
に、分岐不成功を優先的に実行して、条件成立でパイプ
ラインをキャンセルすることがなく、該ループ処理を効
率良く実行することができ、分岐命令を高速に実行する
ことができる効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示した図。 第2図はパイプライン計算機における従来の分岐方式を
説明する図。 である。 60はターゲットバッファ (TGBF)61はターゲ
ットライトバッファ (TGWBF)。 7はブランチターゲットバッファレジスタ(BTBR) をそれぞれ示す。 図面において、 10はメモリ(1−CACHE)、  11はメモリ(
IBF) 。 2はブランチターゲットバッファ(BTB) 。 20はrBRIBFJ部、21はrTAGHT IBF
 、部。 22はバリッド(V)部。 3は第1の比較回路(COMPI) 。 4は第2の比較回路(COMP2) 。 5はパイプライン。 50〜55はステートバッファ (D I B F)、
〜(WIBF)。 COMPI DMP2 (bl) 本発明の一実施例を示した図 第 1 図 (その2) (a) 第 1 図 (その1) BTBR COMPI BTBR COMPI TB 第 図 (その3) B丁B (b4) 本発明の一実施例を示した図 第 図 (その5) COMPI 第 ■ 図 (その4) 従来方式 %式% 従来方式 nXJ+1 本発明 4+(n 1)X2+4 (c2) 従来方式 %式% (a) パイプライン計算機における従来の分岐方式を説明する
図第 2 図 (その1) 第 図 (その2)

Claims (1)

  1. 【特許請求の範囲】 パイプライン計算機において、分岐が成功した分岐命令
    、又は、該分岐命令のアドレスと、複数個の分岐先命令
    と、その分岐先命令の有効性を示すフラグ(V)を保持
    する記憶回路(BTB)(2)とを設け、 命令解読時に解読中の命令が前記記憶回路(BTB)(
    2)に登録されているかを解読中の命令、又は、該命令
    のアドレスと、前記記憶回路(BTB)(2)に登録さ
    れている分岐命令、又は、該分岐命令のアドレスとを第
    1の比較回路(COMP1)(3)で比較し、一致した
    ら前記記憶回路(BTB)(2)の分岐先命令を次命令
    としてパイプライン(5)に投入し、一致しなかったら
    メモリ(10、11)からの分岐先命令を次命令として
    パイプライン(5)に投入し、 該メモリ(10、11)から読み出された分岐先命令と
    、前記記憶回路(BTB)(2)からパイプライン(5
    )に投入され、実行中の複数個の分岐先命令とを第2の
    比較回路(COMP2)(4)で比較し、一致したら実
    行中の分岐先命令を継続実行し、一致しなかったら実行
    中の分岐先命令をキャンセルして、該メモリ(10、1
    1)から読み出された分岐先命令を実行し、 更に、前記記憶回路(BTB)(2)の分岐命令、又は
    、該分岐命令のアドレスが不一致で、且つ、分岐成功の
    時は、該分岐命令、又は、該分岐命令のアドレスと、複
    数個の分岐先命令とを、前記記憶回路(BTB)(2)
    に再登録を行う([1])ことを特徴とする命令分岐予
    測方式。
JP21865590A 1990-08-20 1990-08-20 命令分岐予測方式 Pending JPH04101219A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21865590A JPH04101219A (ja) 1990-08-20 1990-08-20 命令分岐予測方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21865590A JPH04101219A (ja) 1990-08-20 1990-08-20 命令分岐予測方式

Publications (1)

Publication Number Publication Date
JPH04101219A true JPH04101219A (ja) 1992-04-02

Family

ID=16723350

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21865590A Pending JPH04101219A (ja) 1990-08-20 1990-08-20 命令分岐予測方式

Country Status (1)

Country Link
JP (1) JPH04101219A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754813B1 (en) 1999-08-24 2004-06-22 Fujitsu Limited Apparatus and method of processing information for suppression of branch prediction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754813B1 (en) 1999-08-24 2004-06-22 Fujitsu Limited Apparatus and method of processing information for suppression of branch prediction

Similar Documents

Publication Publication Date Title
US5150470A (en) Data processing system with instruction queue having tags indicating outstanding data status
US3728692A (en) Instruction selection in a two-program counter instruction unit
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
EP0180725A2 (en) Instruction prefetch operation for branch instructions
JPH0557616B2 (ja)
JP2898105B2 (ja) コンパイル中にソフトウェア・スケジューリング技術を用いてハードウェアのパイプライン処理の中断を最小化する方法
US6101596A (en) Information processor for performing processing without register conflicts
US4992932A (en) Data processing device with data buffer control
US5761467A (en) System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
JPH02227730A (ja) データ処理システム
KR930003124B1 (ko) 파이프라인방식의 분기명령제어장치
US3553655A (en) Short forward conditional skip hardware
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
JPH04101219A (ja) 命令分岐予測方式
JP3490005B2 (ja) 命令制御装置及びその方法
JPS6116335A (ja) 情報処理装置
US6185674B1 (en) Method and apparatus for reconstructing the address of the next instruction to be completed in a pipelined processor
EP0336091A2 (en) Pipeline type microprocessor
JPH07200406A (ja) キャッシュシステム
JP2772100B2 (ja) 並列命令フェッチ機構
JPH0248733A (ja) 情報処理装置
JPH10116191A (ja) 圧縮命令用バッファを備えたプロセッサ
JP2877531B2 (ja) 並列演算処理装置
JP2591325B2 (ja) 分岐制御装置