JP3502592B2 - 分岐予測装置 - Google Patents
分岐予測装置Info
- Publication number
- JP3502592B2 JP3502592B2 JP2000056959A JP2000056959A JP3502592B2 JP 3502592 B2 JP3502592 B2 JP 3502592B2 JP 2000056959 A JP2000056959 A JP 2000056959A JP 2000056959 A JP2000056959 A JP 2000056959A JP 3502592 B2 JP3502592 B2 JP 3502592B2
- Authority
- JP
- Japan
- Prior art keywords
- branch prediction
- branch
- instruction
- prediction state
- state
- 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.)
- Expired - Fee Related
Links
- 230000007704 transition Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
作を行うプロセッサの分岐予測装置に関する。
サにおいては、分岐予測に基づいた分岐先アドレスから
の命令先読みによって分岐動作に伴うパイプライン動作
の隙間を埋め、スループットの向上が実現されてきた。
岐予測装置を含むマイクロプロセッサの構成を示す図で
あり、図3に示すプロセッサは6段のパイプライン方式
を採用して命令を実行処理し、図3では装置の構成がそ
れぞれのパイプラインステージ(Iステージ、Qステー
ジ、U/Rステージ、Aステージ、Dステージ、Wステ
ージ)に対応して表されており、図4は図3に示す分岐
予測装置における分岐予測アルゴリズムの状態遷移を示
す図であり、図4では4つの分岐予測状態(強い分岐不
成立(SNT)、弱い分岐不成立(WNT)、弱い分岐
成立(WT)、強い分岐成立(ST))を2ビットで表
し、それぞれの予測状態が分岐成立あるいは分岐不成立
によって遷移し又はその状態を保ち、強い分岐不成立と
弱い分岐不成立の予測状態では分岐不成立を予測し、弱
い分岐成立と強い分岐成立の予測状態では分岐成立を予
測し、この予測アルゴリズムは過去2回の分岐の成立/
不成立によって次の分岐の成立/不成立を予測する。
ロプロセッサは、フェッチアドレスを選択するフェッチ
アドレス選択器1と、プログラムカウンタ2と、実行さ
れる命令が格納された命令キャッシュ3と、命令キャッ
シュ3に格納されているすべての条件分岐命令にそれぞ
れ対応して分岐予測状態を記憶して命令キャッシュ3と
連動して読み出しを行う分岐予測状態記憶装置4と、与
えられた分岐命令に基づいて分岐先アドレスを算出する
分岐先アドレス計算装置5と、命令キャッシュ3から読
み出された命令をデコード及びレジスタフェッチする命
令デコーダ及びレジスタフェッチ部6と、分岐予測状態
に基づいて分岐予測を実行する分岐予測実行装置7と、
分岐先アドレス計算装置5で計算された分岐先アドレス
を記憶する分岐先アドレス記憶装置8と、分岐命令の分
岐条件を判定する比較器9と、分岐予測結果と分岐条件
の判定結果とに基づいて分岐予測を判定する分岐予測判
定装置10と、分岐予測状態と分岐予測結果を保持する
分岐予測状態/結果保持装置11と、プログラムカウン
タ2の値を保持するプログラムカウンタ保持装置12
と、分岐予測状態記憶装置4の記憶内容を更新する分岐
予測状態更新装置13を備えて構成され、Iステージ、
Qステージ、U/Rステージ、Aステージ、Dステー
ジ、Wステージの6ステージのパイプラインにより命令
の実行処理を行っている。
テージにおいて、次の命令フェッチを行うべきアドレス
であるプログラムカウンタ2の値を選択する。次のQス
テージにおいて、Iステージで選択されたアドレスに従
って命令キャッシュ3から命令フェッチを行うと同時
に、そのアドレスに対応した分岐予測状態記憶装置4の
記憶要素を読み出す。命令キャッシュ3から読み出され
た命令は命令デコーダがあいている場合には、次のサイ
クルのRステージにて命令のデコードとレジスタフェッ
チが行われる。一方、命令デコーダが空いていない場合
には、命令待機バッファ14に格納され、命令デコーダ
に空きが生じるまで一時待機となる。ここではこの状態
をUステージとする。Aステージにおいて、Rステージ
でレジスタから読み出されたソースデータと先行命令の
演算結果のバイパスデータとの選択を行い、Rステージ
におけるデコード結果に従って、命令を適切な演算装置
へ送出し、演算を実行する。
る。条件分岐命令はQステージにおいて命令キャッシュ
3から読み出された命令から切り出された分岐先アドレ
スオフセットを、次のサイクルで命令待機バッファ14
から分岐先アドレス計算装置5に送り、条件分岐命令自
身のアドレスと計算することによって分岐先アドレスを
計算する。それと同時に、分岐予測実行装置7において
分岐予測状態記憶装置4から読み出された分岐予測状態
に従って、分岐条件の成立/不成立を予測し、条件成立
が予測された場合には、計算された分岐先アドレスをI
ステージにおいて次の命令フェッチアドレスとして選択
するようにフェッチアドレス選択器1に指示する。
態が分岐予測状態記憶装置4に格納されていない場合、
もしくは条件不成立と予測された場合は、分岐予測実行
装置7からはアドレス選択に関してフェッチアドレス選
択器1への指示は行われない。いずれの場合であって
も、U、R、Aステージに有効な条件分岐命令が存在す
る間は、分岐予測ミスからの実効命令列の復活、分岐予
測状態の更新のために、プログラムカウンタ保持装置1
2、分岐先アドレス記憶装置8、分岐予測状態/結果保
持装置11において、それぞれプログラムカウンタ2の
値、分岐先アドレス、予測に使用した分岐予測状態をパ
イプライン上の命令と対応付けて保持する。
条件の判定が行われる。判定結果と分岐予測結果を分岐
予測判定装置10において比較し、両者が一致した場合
は分岐予測ヒットとなり、現在のパイプライン進行を妨
げることなく進めることができる。一方、両者が不一致
の場合には分岐予測ミスとなり、その時点でパイプライ
ン中の後続命令列をキャンセルし、正しい分岐条件に従
って命令フェッチをやり直す必要がある。条件成立と予
測されてこの予測がミスした場合には、プログラムカウ
ンタ保持装置12に格納されている分岐命令の次の命令
のアドレスを選択するように、一方条件不成立と予測さ
れてこの予測がミスした場合には、分岐先アドレス記憶
装置8に格納されている分岐アドレスを選択するように
Iステージのフェッチアドレス選択器1に指示する。
テージにおいて分岐予測状態記憶装置4に書き戻すべき
新たな分岐予測状態を、分岐条件判定結果と分岐予測状
態/結果保持装置11に保持された分岐予測状態とか
ら、分岐予測状態更新装置13において生成する。最後
のWステージにおいて、プログラムカウンタ保持装置1
2に保持された分岐命令のアドレスに対応する分岐予測
状態記憶装置4の記憶要素に更新された分岐予測状態を
書き戻す。
を参照して、条件分岐命令の動作を説明する。図5
(A)には分岐不成立予測ミス、もしくは分岐予測機能
がないプロセッサの動作を示し、同図(B)には分岐成
立予測ヒットの動作を示し、同図(C)には分岐命令の
分岐先命令が分岐命令自身であるプログラムループの動
作の一例を示す。
ステージにおいて分岐命令のアドレスがフェッチアドレ
スとして選択される。サイクル1では、Qステージにお
いて分岐命令の分岐予測状態が分岐予測状態記憶装置4
から読み出される。同時にIステージにおいて(分岐命
令+1)のアドレスがフェッチアドレスとして選択され
る。サイクル2では、Rステージで分岐予測が行われる
が、分岐不成立予測のため、Iステージでは(分岐命令
+2)のアドレスがフェッチアドレスとして選択され
る。サイクル3では、Aステージにおいて分岐命令条件
判定により分岐成立となり、分岐予測ミスであると判定
される。このときIステージにおいて分岐命令の分岐先
アドレスがフェッチアドレスとして選択され、Qステー
ジとRステージの命令はキャンセルされる。この場合に
は、分岐命令動作に伴いパイプラインに2サイクル分の
バブルが生じ、分岐先命令の実行が完了まで9サイクル
かかる。
1での動作は図5(A)と同様である。サイクル2で
は、Rステージにおいて分岐成立の予測がなされ、Iス
テージにおいてRステージで計算される分岐先アドレス
を次のフェッチアドレスとして選択する。Qステージの
(分岐命令+1)の命令はキャンセルする。サイクル3
では、Aステージにおいて分岐条件判定により分岐成立
となり、分岐予測ヒットと判定される。分岐先命令以降
の後続命令に対しては何の指示も必要としない。この場
合には、分岐先命令の実行が完了するまで8サイクルか
かり、図5(A)の場合と比較して1サイクル早く命令
の実行が完了する。これが分岐予測の効果である。
る前の分岐命令の分岐予測状態を「強い分岐不成立」
(SNT)とする。最初の分岐命令(1)は分岐不成立
と予測され、Aステージで分岐成立となるため、2回目
の分岐命令(2)までのパイプライン動作は図5(A)
と同様になる。サイクル5で更新された分岐予測状態で
ある「弱い分岐不成立」(WNT)が分岐予測状態記憶
装置4に書き戻される。一方、2回目の分岐命令(2)
はサイクル4で分岐予測状態を読み出すため、1回目の
分岐命令(1)の、分岐予測状態の更新前の状態を分岐
予測に用いることになる。したがって、2回目の分岐命
令(2)から3回目の分岐命令(3)までのパイプライ
ン動作も図5(A)と同様になる。さらに、サイクル8
における2回目の分岐命令(2)による分岐予測状態の
更新が1回目の分岐命令(1)と同じ「弱い分岐不成
立」(WNT)となるため、分岐予測状態遷移が滞るこ
とになる。
分岐予測状態を読み出すが、そのとき1回目の分岐命令
(1)による分岐予測状態の更新が完了しているため
「弱い分岐不成立」(WNT)が出力され、サイクル8
では分岐不成立と予測される。4回目の分岐命令(4)
も同様である。従って、分岐命令(1)から分岐命令
(4)までは図5(A)と同様のパイプライン動作とな
る。5回目の分岐命令(5)は、サイクル13で分岐予
測状態記憶装置4を読み出すが、分岐命令(3)による
予測状態更新により「弱い分岐成立」(WT)が出力さ
れる。ここで初めて分岐成立予測に転じる。これ以降
は、図5(B)のパイプライン動作の繰り返しとなる。
(5)による分岐予測状態の更新値が「強い分岐成立」
(ST)となり、7回目の分岐命令(7)で初めて「強
い分岐成立」(ST)の予測状態をQステージで読み出
すことができるようになる。すなわち、「強い分岐不成
立」(SNT)予測から「強い分岐成立」(ST)予測
に転じるまで、5つの分岐命令の実行が必要となり、7
命令目の分岐命令完了まで22サイクルを要する。
分岐予測状態遷移が実際の分岐動作と同期せず遅れて遷
移するため、分岐動作に伴うパイプラインバブルが増加
し、プログラムの実効時間の増大を招いていた。上記一
例では、実際のプログラムではまれな1命令ループ動作
について説明したが、プロセッサの構成を変えて、複数
命令同時フェッチおよび実行するスーパスカラプロセッ
サのような場合には、このようなループの出現確率が上
がり、プログラム全体での性能低下は無視できないもの
になっていた。
過去の分岐結果の履歴(分岐予測状態)に基づいて分岐
予測を行う従来の分岐予測装置において、分岐予測に用
いられる分岐予測状態の更新は、分岐予測状態を格納し
ている記憶装置に対してのみ行われていた。そのため、
記憶装置からすでに分岐予測状態が読み出されているパ
イプライン上の同一の分岐命令に対応した分岐予測状態
は更新されず古いままになっていた。すなわち、分岐予
測状態の遷移が実際の分岐動作と同期せず遅れて遷移し
ていた。このような状態は、同一の分岐命令が時間的に
近接して実行されるような短いプログラムループで生じ
る可能性が高く、このような状態になると、分岐動作に
伴うパイプラインバブルが増加し、プログラムの実行時
間が増大するといった不具合を招いていた。
れたものであり、その目的とするところは、常に最新状
態の分岐予測状態を用いて分岐予測を行い、分岐予測効
率を高め、命令の実効時間を短縮し得る分岐予測装置を
提供することにある。
に、課題を解決する第1の手段は、条件分岐命令の分岐
予測状態を記憶し、記憶した分岐予測状態が命令フェッ
チアドレスに従って読み出される分岐予測状態記憶装置
と、前記分岐予測状態記憶装置に記憶された分岐予測状
態に基づいて条件分岐命令の分岐条件成立/不成立を予
測し、分岐条件が成立すると予測された場合には分岐先
アドレスの選択を指示する分岐予測実行装置と、条件分
岐命令の実行時に分岐条件の判定結果に従って前記分岐
予測実行装置で行われた分岐予測の正否を判定し、分岐
予測が誤っていたと判定された場合には、次に実行され
る命令の正しいアドレスの選択を指示する分岐予測判定
装置と、分岐条件の判定結果に基づいて、前記分岐予測
状態記憶装置に記憶された分岐予測状態を更新する分岐
予測状態更新装置とを有する分岐予測装置において、前
記分岐予測実行装置で分岐予測に使用された前記分岐予
測状態ならびに前記分岐予測実行装置で予測された分岐
予測結果を受けて保持し、所定のパイプラインステージ
において分岐条件が判定される条件分岐命令に対応した
分岐予測結果を前記分岐予測判定装置に与える第1の分
岐予測状態/結果保持装置と、前記分岐予測実行装置で
分岐予測に使用された前記分岐予測状態ならびに前記分
岐予測実行装置で予測された分岐予測結果を受けて保持
し、所定のパイプラインステージにおいて分岐成立/不
成立が確定した条件分岐命令に対応した前記分岐予測状
態を前記分岐予測状態更新装置に与え、保持した分岐予
測状態と前記分岐予測状態更新装置によって更新された
分岐予測状態とを入れ替えて更新する第2の分岐予測状
態/結果保持装置と、前記分岐予測状態更新装置によっ
て更新された分岐予測状態を前記分岐予測状態記憶装置
に書き戻す書き戻しアドレスをパイプライン上の条件分
岐命令と対応して保持する保持装置と、前記分岐予測状
態更新装置によって更新された分岐予測状態を選択し
て、前記分岐予測実行装置にバイパス供給する選択器
と、所定のパイプラインステージにおいて、前記保持装
置に保持されたすべての書き戻しアドレスと、複数の所
定のパイプラインステージにそれぞれ対応した複数の命
令アドレスとを比較し、一致が検出された書き戻しアド
レスに対応した分岐命令の前記第2の分岐予測状態/結
果保持装置に保持された分岐予測状態を、前記分岐予測
状態更新装置により更新された分岐予測状態に入れ替え
るよう前記第2の分岐予測状態/結果保持装置に指示
し、あるいは前記分岐予測状態更新装置により更新され
た分岐予測状態を前記分岐予測実行装置に与えるよう前
記選択器に指示する分岐予測状態バイパス制御装置とを
備え、前記分岐予測状態バイパス制御装置によって一致
が検出された条件分岐命令が、分岐予測実行ステージ以
前のパイプラインステージに存在する場合には、前記分
岐予測状態更新装置によって更新された分岐予測状態に
従って分岐予測を実行することを特徴とする。
前記分岐予測状態記憶装置はセットアソシアティブ方式
の記憶装置であって、前記書き戻しアドレスは前記分岐
予測状態記憶装置の読み出しアドレスと、読み出しで選
択されたセット番号と、命令フェッチが命令キャッシュ
メモリから行われたか否かを示すフラグとからなること
を特徴とする。
実施形態を説明する。
測装置を含むマイクロプロセッサの構成を示す図であ
り、図2は図1に示す装置におけるパイプライン動作の
流れを示す図であり、同図(A)には分岐不成立予測ミ
ス、もしくは分岐予測機能がないプロセッサの動作を示
し、同図(B)には分岐成立予測ヒットの動作を示し、
同図(C)には分岐命令の分岐先命令が分岐命令自身で
あるプログラムループの動作の一例を示す。なお、図2
(A)、(B)、(C)は図5(A)、(B)、(C)
にそれぞれ対応するものである。
施形態の構成において、分岐予測に直接関係しない部分
の構成、作用は同一であり、図1の構成において図3と
同符号のものは同一でありその説明は省略し、また、図
1に示す分岐予測装置では従来と同様に図4に示す状態
遷移の分岐予測アルゴリズムを使用しており、ここでは
相違点とそれによる動作の違いについて説明する。
パス制御装置21を有することである。分岐予測状態バ
イパス制御装置21は、Aステージにおける分岐命令に
対応する命令アドレスをプログラムカウンタ保持装置1
2に格納されているアドレスから選択しDステージに送
ったDステージの分岐命令アドレス(A1)と、Qステ
ージの命令アドレス(A2)、又はQステージの次のサ
イクルすなわち分岐予測ステージの分岐命令アドレス
(A3)、又はプログラムカウンタ保持装置12に格納
されているU、R、Aステージのすべての命令アドレス
(A4)とをそれぞれ比較し、一致するか否かを判別す
る。
ージ以前のステージの命令、すなわちQステージの命令
アドレス(A2)との一致が検出された場合には、分岐
予測状態更新装置13で生成された新しい分岐予測状態
を分岐予測実行装置7に供給するように指示する選択信
号S2、S3が分岐予測状態バイパス制御装置21から
選択器22、選択器23に出力され、分岐予測状態更新
装置13で更新された最新の分岐予測状態が選択器22
ならびに選択器23により選択され分岐予測実行装置7
に与えられ、分岐予測ステージにおいて新しい分岐予測
状態が分岐予測に使用される。また、分岐命令アドレス
(A1)とQステージの次のサイクルすなわち分岐予測
ステージの分岐命令アドレス(A3)との一致が検出さ
れた場合には、分岐予測状態更新装置13で生成された
新しい分岐予測状態を分岐予測実行装置7に供給するよ
うに指示する選択信号S3が分岐予測状態バイパス制御
装置21から選択器23に出力され、分岐予測状態更新
装置13で更新された最新の分岐予測状態が選択器23
により選択され分岐予測実行装置7に与えられ、分岐予
測ステージにおいて新しい分岐予測状態が分岐予測に使
用される。
一致が検出された場合、すなわち分岐命令アドレス(A
1)とプログラムカウンタ保持装置12に格納されてい
るU、R、Aステージのいずれかの命令アドレス(A
4)との一致が検出された場合には、一致が検出された
アドレスと同期して分岐予測状態/結果保持装置11b
に格納されている分岐予測状態を、分岐予測状態更新装
置13で生成された新しい分岐予測状態と入れ替える。
て、2つの分岐予測状態/結果保持装置11a、11b
を備えている。分岐予測状態保持/結果装置11aの出
力は分岐予測判定装置10に供給され、分岐予測ヒット
/ミスの判定に使用される。したがって、分岐予測ステ
ージ以降に先行する同一分岐命令が分岐予測状態を更新
しても、分岐予測状態/結果保持装置11aに保持され
る分岐予測状態に対する更新は行わない。それに対し
て、分岐予測状態/結果保持装置11bの出力は分岐予
測状態更新装置13に供給され、分岐予測状態遷移の元
データとして使用される。したがって、分岐予測ステー
ジ以降、U、R、AステージにおいてDステージの分岐
命令と同一分岐命令が検出された場合には、分岐予測状
態バイパス制御装置21からの指示信号(S4)に従っ
て、分岐予測状態の更新が行われる。
ライン動作を図2を参照して説明する。
するために、同一の命令シーケンスでの動作を説明す
る。図2(A)、(B)は単一の分岐命令の分岐予測ヒ
ット/ミスに関する動作で、図5(A)、(B)に示す
従来の動作との差異はない。
の動作例では図5(C)に示す従来の動作例との違いが
現れている。前述したとおり、分岐予測状態更新装置1
3によって更新された分岐予測状態の更新値は分岐命令
のDステージから分岐予測状態記憶装置4をバイパスさ
れる。分岐不成立が予測されている間は、図2の分岐命
令(1)、(2)に示すようにDステージからQステー
ジに対して分岐予測状態がバイパスされ、分岐成立が予
測されている間は、図2の分岐命令(3)〜(7)に示
すようにDステージからRステージに対して分岐予測状
態がバイパスされる。したがって、分岐予測状態遷移が
分岐命令実行と同期して行われ、3回目の分岐命令
(3)において分岐成立予測に転じ、サイクル10で
は、4回目の分岐命令(4)の分岐予測で初めて「強い
分岐成立」予測となる。このように、図5に示す従来の
動作と比較して7サイクル早く「強い分岐成立」予測が
行われるようになる。7回目の分岐命令(7)の実行完
了まで20サイクルを要する。これも、図5に示す従来
の動作と比較して2サイクル早く完了することになる。
による分岐予測状態遷移をパイプライン上の同一分岐命
令の分岐予測状態にバイパスし、分岐予測及び分岐予測
状態遷移に用いられる分岐予測状態を常に最新状態に更
新するようにしているので、分岐予測効率を向上させ、
プログラムの実効時間を短縮することが可能となる。
数命令を同時実行可能なスーパスカラプロセッサでは複
数命令で構成されるプログラムループでも同様のパイプ
ライン動作となり、効果は大きくなる。さらに、命令フ
ェッチから分岐条件判定までのステージ数が長い、いわ
ゆるスーパパイプライン構成を採用したプロセッサの場
合においても著しい効果を得ることができる。
シュ3の構成によっては、分岐予測状態バイパス制御装
置21における一致検出には、Qステージにおける命令
キャッシュ3及び分岐予測状態記憶装置4のアクセス履
歴、フェッチアドレス属性等の付加的情報を用いるよう
にしてもよい。例えばセットアソシアティブ方式の命令
キャッシュを備える場合には、命令フェッチでヒットし
たセット番号、キャッシュ読み出しインデックス、命令
キャッシュを用いた命令フェッチであったか否かを示す
フラグを分岐予測状態/結果保持装置に格納されている
分岐予測状態と同期して保持し、これらを分岐予測状態
バイパス制御装置21における一致検出に使用する構成
も考えられる。このような構成では、一致検出に必要な
ビット数が削減できるためハードウェアの削減と一致検
出に要する時間を削減することができる。
ば、分岐命令による分岐予測状態遷移をパイプライン上
の同一分岐命令の分岐予測状態にバイパスして、分岐予
測及び分岐予測状態遷移に用いられる分岐予測状態を常
に最新状態に更新するようにしたので、分岐予測効率を
向上させ、プログラムの実行時間を短縮することができ
る。
えたマイクロプロセッサの構成を示す図である。
動作を示す図である。
サの構成を示す図である。
リズムの状態遷移を示す図である。
サのパイプライン動作を示す図である。
Claims (2)
- 【請求項1】 条件分岐命令の分岐予測状態を記憶し、
記憶した分岐予測状態が命令フェッチアドレスに従って
読み出される分岐予測状態記憶装置と、 前記分岐予測状態記憶装置に記憶された分岐予測状態に
基づいて条件分岐命令の分岐条件成立/不成立を予測
し、分岐条件が成立すると予測された場合には分岐先ア
ドレスの選択を指示する分岐予測実行装置と、 条件分岐命令の実行時に分岐条件の判定結果に従って前
記分岐予測実行装置で行われた分岐予測の正否を判定
し、分岐予測が誤っていたと判定された場合には、次に
実行される命令の正しいアドレスの選択を指示する分岐
予測判定装置と、 分岐条件の判定結果に基づいて、前記分岐予測状態記憶
装置に記憶された分岐予測状態を更新する分岐予測状態
更新装置とを有する分岐予測装置において、 前記分岐予測実行装置で分岐予測に使用された前記分岐
予測状態ならびに前記分岐予測実行装置で予測された分
岐予測結果を受けて保持し、所定のパイプラインステー
ジにおいて分岐条件が判定される条件分岐命令に対応し
た分岐予測結果を前記分岐予測判定装置に与える第1の
分岐予測状態/結果保持装置と、 前記分岐予測実行装置で分岐予測に使用された前記分岐
予測状態ならびに前記分岐予測実行装置で予測された分
岐予測結果を受けて保持し、所定のパイプラインステー
ジにおいて分岐成立/不成立が確定した条件分岐命令に
対応した前記分岐予測状態を前記分岐予測状態更新装置
に与え、保持した分岐予測状態と前記分岐予測状態更新
装置によって更新された分岐予測状態とを入れ替えて更
新する第2の分岐予測状態/結果保持装置と、 前記分岐予測状態更新装置によって更新された分岐予測
状態を前記分岐予測状態記憶装置に書き戻す書き戻しア
ドレスをパイプライン上の条件分岐命令と対応して保持
する保持装置と、 前記分岐予測状態更新装置によって更新された分岐予測
状態を選択して、前記分岐予測実行装置にバイパス供給
する選択器と、 所定のパイプラインステージにおいて、前記保持装置に
保持されたすべての書き戻しアドレスと、複数の所定の
パイプラインステージにそれぞれ対応した複数の命令ア
ドレスとを比較し、一致が検出された書き戻しアドレス
に対応した分岐命令の前記第2の分岐予測状態/結果保
持装置に保持された分岐予測状態を、前記分岐予測状態
更新装置により更新された分岐予測状態に入れ替えるよ
う前記第2の分岐予測状態/結果保持装置に指示し、あ
るいは前記分岐予測状態更新装置により更新された分岐
予測状態を前記分岐予測実行装置に与えるよう前記選択
器に指示する分岐予測状態バイパス制御装置とを備え、 前記分岐予測状態バイパス制御装置によって一致が検出
された条件分岐命令が、分岐予測実行ステージ以前のパ
イプラインステージに存在する場合には、前記分岐予測
状態更新装置によって更新された分岐予測状態に従って
分岐予測を実行することを特徴とする分岐予測装置。 - 【請求項2】 前記分岐予測状態記憶装置はセットアソ
シアティブ方式の記憶装置であって、前記書き戻しアド
レスは前記分岐予測状態記憶装置の読み出しアドレス
と、読み出しで選択されたセット番号と、命令フェッチ
が命令キャッシュメモリから行われたか否かを示すフラ
グとからなることを特徴とする請求項1記載の分岐予測
装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000056959A JP3502592B2 (ja) | 2000-03-02 | 2000-03-02 | 分岐予測装置 |
US09/796,538 US20010020267A1 (en) | 2000-03-02 | 2001-03-02 | Pipeline processing apparatus with improved efficiency of branch prediction, and method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000056959A JP3502592B2 (ja) | 2000-03-02 | 2000-03-02 | 分岐予測装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001243069A JP2001243069A (ja) | 2001-09-07 |
JP3502592B2 true JP3502592B2 (ja) | 2004-03-02 |
Family
ID=18577828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000056959A Expired - Fee Related JP3502592B2 (ja) | 2000-03-02 | 2000-03-02 | 分岐予測装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20010020267A1 (ja) |
JP (1) | JP3502592B2 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020166042A1 (en) * | 2001-05-01 | 2002-11-07 | Yoav Almog | Speculative branch target allocation |
US7133995B1 (en) * | 2002-12-16 | 2006-11-07 | Advanced Micro Devices, Inc. | Dynamic page conflict prediction for DRAM |
JP3802038B2 (ja) * | 2003-01-30 | 2006-07-26 | 富士通株式会社 | 情報処理装置 |
US8516300B2 (en) * | 2005-08-29 | 2013-08-20 | The Invention Science Fund I, Llc | Multi-votage synchronous systems |
US7877584B2 (en) * | 2005-08-29 | 2011-01-25 | The Invention Science Fund I, Llc | Predictive processor resource management |
US8423824B2 (en) | 2005-08-29 | 2013-04-16 | The Invention Science Fund I, Llc | Power sparing synchronous apparatus |
US7774558B2 (en) | 2005-08-29 | 2010-08-10 | The Invention Science Fund I, Inc | Multiprocessor resource optimization |
US20070050605A1 (en) * | 2005-08-29 | 2007-03-01 | Bran Ferren | Freeze-dried ghost pages |
US7627739B2 (en) * | 2005-08-29 | 2009-12-01 | Searete, Llc | Optimization of a hardware resource shared by a multiprocessor |
US7607042B2 (en) | 2005-08-29 | 2009-10-20 | Searete, Llc | Adjusting a processor operating parameter based on a performance criterion |
US8181004B2 (en) * | 2005-08-29 | 2012-05-15 | The Invention Science Fund I, Llc | Selecting a resource management policy for a resource available to a processor |
US8209524B2 (en) | 2005-08-29 | 2012-06-26 | The Invention Science Fund I, Llc | Cross-architecture optimization |
US7739524B2 (en) * | 2005-08-29 | 2010-06-15 | The Invention Science Fund I, Inc | Power consumption management |
US7653834B2 (en) * | 2005-08-29 | 2010-01-26 | Searete, Llc | Power sparing synchronous apparatus |
US7725693B2 (en) * | 2005-08-29 | 2010-05-25 | Searete, Llc | Execution optimization using a processor resource management policy saved in an association with an instruction group |
US20070050606A1 (en) * | 2005-08-29 | 2007-03-01 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Runtime-based optimization profile |
US8255745B2 (en) * | 2005-08-29 | 2012-08-28 | The Invention Science Fund I, Llc | Hardware-error tolerant computing |
US7779213B2 (en) * | 2005-08-29 | 2010-08-17 | The Invention Science Fund I, Inc | Optimization of instruction group execution through hardware resource management policies |
US7647487B2 (en) * | 2005-08-29 | 2010-01-12 | Searete, Llc | Instruction-associated processor resource optimization |
US8214191B2 (en) * | 2005-08-29 | 2012-07-03 | The Invention Science Fund I, Llc | Cross-architecture execution optimization |
US20070061554A1 (en) * | 2005-09-09 | 2007-03-15 | Lsi Logic Corporation | Branch predictor for a processor and method of predicting a conditional branch |
US7461243B2 (en) * | 2005-12-22 | 2008-12-02 | Sun Microsystems, Inc. | Deferred branch history update scheme |
TW200816282A (en) * | 2006-09-27 | 2008-04-01 | Promos Technologies Inc | Method for reducing stress between a conductive layer and a mask layer and use of the same |
WO2010023804A1 (ja) * | 2008-08-25 | 2010-03-04 | 日本電気株式会社 | データ処理装置、データ処理方法並びにデータ処理プログラムが格納された記録媒体 |
JP5552042B2 (ja) | 2010-12-27 | 2014-07-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム解析の方法、システムおよびプログラム |
CN106775593B (zh) * | 2016-12-30 | 2019-12-31 | 智车优行科技(北京)有限公司 | 去除循环处理流程中条件判断语句的方法和装置、应用单元 |
JP7077862B2 (ja) | 2018-08-16 | 2022-05-31 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US10565093B1 (en) * | 2018-10-09 | 2020-02-18 | International Business Machines Corporation | Providing cognitive intelligence across continuous delivery pipeline data |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394530A (en) * | 1991-03-15 | 1995-02-28 | Nec Corporation | Arrangement for predicting a branch target address in the second iteration of a short loop |
US5442756A (en) * | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
US5875324A (en) * | 1995-06-07 | 1999-02-23 | Advanced Micro Devices, Inc. | Superscalar microprocessor which delays update of branch prediction information in response to branch misprediction until a subsequent idle clock |
US5687110A (en) * | 1996-02-20 | 1997-11-11 | Advanced Micro Devices, Inc. | Array having an update circuit for updating a storage location with a value stored in another storage location |
US20020069375A1 (en) * | 2000-10-12 | 2002-06-06 | Matt Bowen | System, method, and article of manufacture for data transfer across clock domains |
-
2000
- 2000-03-02 JP JP2000056959A patent/JP3502592B2/ja not_active Expired - Fee Related
-
2001
- 2001-03-02 US US09/796,538 patent/US20010020267A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2001243069A (ja) | 2001-09-07 |
US20010020267A1 (en) | 2001-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3502592B2 (ja) | 分岐予測装置 | |
JP3494736B2 (ja) | 分岐先バッファを用いた分岐予測システム | |
JP5889986B2 (ja) | 実行された命令の結果を選択的にコミットするためのシステムおよび方法 | |
US6898699B2 (en) | Return address stack including speculative return address buffer with back pointers | |
US6457120B1 (en) | Processor and method including a cache having confirmation bits for improving address predictable branch instruction target predictions | |
US7222227B2 (en) | Control device for speculative instruction execution with a branch instruction insertion, and method for same | |
US9201654B2 (en) | Processor and data processing method incorporating an instruction pipeline with conditional branch direction prediction for fast access to branch target instructions | |
US7478228B2 (en) | Apparatus for generating return address predictions for implicit and explicit subroutine calls | |
JP5734945B2 (ja) | スライドウィンドウブロックベースの分岐ターゲットアドレスキャッシュ | |
JP5209633B2 (ja) | ワーキング・グローバル・ヒストリ・レジスタを備えるシステム及び方法 | |
US7155574B2 (en) | Look ahead LRU array update scheme to minimize clobber in sequentially accessed memory | |
JPWO2008029450A1 (ja) | 分岐予測ミスリカバリ機構を有する情報処理装置 | |
JP2003005956A (ja) | 分岐予測装置、プロセッサ、及び分岐予測方法 | |
JP2009536770A (ja) | ブロックに基づく分岐先アドレスキャッシュ | |
US6912650B2 (en) | Pre-prefetching target of following branch instruction based on past history | |
US11099849B2 (en) | Method for reducing fetch cycles for return-type instructions | |
JP2000322257A (ja) | 条件分岐命令の投機的実行制御方法 | |
US9507600B2 (en) | Processor loop buffer | |
JPWO2004068337A1 (ja) | 情報処理装置 | |
JP3741945B2 (ja) | 命令フェッチ制御装置 | |
JP2011209774A (ja) | 分岐予測方法及びその方法を実行する分岐予測回路 | |
JP2001022577A (ja) | 情報処理装置 | |
JP3558481B2 (ja) | データ処理装置 | |
JP4049490B2 (ja) | 情報処理装置 | |
JPH09311787A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20031125 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20031205 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071212 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081212 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091212 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091212 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101212 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111212 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |