JPH10240526A - 分岐予測装置 - Google Patents

分岐予測装置

Info

Publication number
JPH10240526A
JPH10240526A JP4400597A JP4400597A JPH10240526A JP H10240526 A JPH10240526 A JP H10240526A JP 4400597 A JP4400597 A JP 4400597A JP 4400597 A JP4400597 A JP 4400597A JP H10240526 A JPH10240526 A JP H10240526A
Authority
JP
Japan
Prior art keywords
branch
prediction
instruction
branch prediction
memory area
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.)
Withdrawn
Application number
JP4400597A
Other languages
English (en)
Inventor
Yasushi Iwata
靖 岩田
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 JP4400597A priority Critical patent/JPH10240526A/ja
Publication of JPH10240526A publication Critical patent/JPH10240526A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】パイプラインプロセッサにおける分岐命令の分
岐を予測する技術に関し、少ないハードウェア量で分岐
予測の正解確率を向上させることを目的とする。 【解決手段】予測対象分岐命令のプログラムカウンタ
(PC)値を格納する複数のメモリ領域(1ビット予測
方式のメモリ領域10、2ビット予測方式のメモリ領域
11、2レベル予測方式のメモリ領域12等)からなる
状態テーブル2が設けられる。分岐命令の分岐予測の正
解率が低くなるにつれて、(1)1ビット予測方式のメ
モリ領域10、(2)2ビット予測方式のメモリ領域1
1、(3)2レベル予測方式のメモリ領域12の方向に
PC値の格納位置が変更されていき、分岐命令の分岐予
測の正解率が高くなるにつれて、(1)2レベル予測方
式のメモリ領域12、(2)2ビット予測方式のメモリ
領域11、(3)1ビット予測方式のメモリ領域10の
方向にPC値の格納位置が変更されていく。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パイプラインプロ
セッサ等における分岐命令の分岐を予測する技術に関す
る。
【0002】
【従来の技術】パイプラインプロセッサは、複数の命令
を並列に実行することができる計算機として実用化され
ている。図4に、パイプラインプロセッサの構成例を示
す。パイプライン処理では、1つの命令によって実行さ
れる処理過程が複数の時間的に独立した処理ステージに
分割され、それぞれの命令のそれぞれの処理ステージは
それぞれに対応した処理ユニットによって実行される。
そして、それぞれの命令サイクルにおいて、複数の処理
ユニットによって、複数の命令に対応する複数の相互に
異なる処理ステージが並列に実行される。
【0003】図4において、命令フェッチユニット(I
Fユニット)51は、それぞれの命令の命令フェッチス
テージ(IF)ステージを実行するユニットである。こ
のユニットは、特には図示しないメモリから命令をフェ
ッチする。命令デコードステージ(IDユニット)52
は、それぞれの命令の命令デコードステージ(IDステ
ージ)を実行する。このユニットは、フェッチされた命
令をデコードし、また、その命令に対応するオペランド
をレジスタから読み出す。
【0004】実行ユニット(EXEユニット)53は、
それぞれの命令の演算実行ステージ(EXEステージ)
を実行する。このユニットは、各種算術論理演算命令等
を実行する。メモリアクセスユニット(MEMユニッ
ト)54は、それぞれの命令のメモリアクセスステージ
(MEMステージ)を実行する。このユニットは、EX
Eユニット53によりアドレスが計算されたデータを、
特には、図示しないメモリから読み出し又はそのメモリ
に書き込む。
【0005】ライトバックユニット(WBユニット)5
5は、それぞれの命令のライトバックステージ(WBス
テージ)を実行する。このユニットは、MEMユニット
54によって特には図示しないメモリから取得されたデ
ータ又はEXEユニット54によって演算されたデータ
を、特には図示しないレジスタに書き込む。上述のパイ
プラインプロセッサの構成において、1命令サイクルの
期間にフェッチされる命令は1個であり、各ステージの
実行は、1命令サイクルで終了する。各命令の実行時に
は、命令サイクルの進行に同期して、その命令に対応す
るIFステージ、IDステージ、EXEステージ、ME
Mステージ、およびWBステージが順に実行される。
【0006】このようなパイプラインプロセッサは、近
年、高速化され、複雑な演算処理を実行するためにその
段数も増加してきている。ここで一般に、プログラム中
に分岐命令が存在すると、その分岐命令の実行結果に応
じて、それに続いて実行される命令のフェッチアドレス
(プログラムカウンタ値)が変化し得る。
【0007】今、図4に示されるパイプラインプロセッ
サによって分岐命令が実行される場合、例えば図5(a)
に示されるように、まず、分岐命令について、命令サイ
クルt1 〜t5 において、その分岐命令の、IFステー
ジ、IDステージ、EXEステージ、MEMステージ、
およびWBステージが、それぞれ、図4に示されるIF
ユニット51、IDユニット52、EXEユニット5
3、MEMユニット54、およびWBユニット55にお
いて、順次実行される。そして、その分岐命令の実行と
並列に、その分岐命令のプログラムカウンタ値に続く各
プログラムカウンタ値に対応する各命令A、B、C、D
について、それぞれ1命令サイクルずつ遅れながら、そ
れぞれのIFステージ、IDステージ、EXEステー
ジ、MEMステージ、およびWBステージが、対応する
ユニットで順次実行される。
【0008】そして、上記分岐命令がEXEステージに
おいて実行された結果、分岐が発生しなかった場合(分
岐不成立の場合)には、図5(a) に示されるように、そ
の分岐命令に続いてフェッチされ並列に実行されている
各命令A、B、C、Dの実行が続行される。一方、上記
分岐命令がEXEステージにおいて実行された結果、分
岐が発生した場合(分岐不成立の場合)には、分岐命令
のプログラムカウンタ値に続く各プログラムカウンタ値
に対応する各命令A、B、C、Dは、本来実行されるべ
き命令群ではない。この場合には、図5(b) に示される
ように、命令サイクルt3 において分岐命令が判明した
後の数命令サイクルの期間において、既にパイプライン
に流入している命令A、Bがキャンセルされ、分岐先の
プログラムカウンタ値に対応する新たな命令a、b、・
・・が流入させられる。
【0009】この説明からわかるように、分岐成立の場
合は、既に流入している命令をキャンセルさせるために
パイプラインの動作が数〜数十命令サイクルにわたって
停止することになり、パイプラインプロセッサの動作効
率が低下する結果となる。そこで、各分岐命令につき、
それぞれの分岐結果が分岐不成立となるか分岐成立とな
るかをその分岐命令のIFステージの実行時に高い確率
で予測することができれば、その予測の結果に基づくプ
ログラムカウンタ値に対応する命令群を各分岐命令に続
いてパイプラインに流入させることによって、分岐命令
の実行の結果、パイプライン中の後続命令がキャンセル
される可能性を押さえることができ、パイプラインプロ
セッサの動作効率の低下を防止することが可能となる。
【0010】分岐予測方式の第1の従来技術として、各
分岐命令に対応するプログラムカウンタ値毎に、そのプ
ログラムカウンタ値に対応する分岐命令が分岐し易い傾
向にあるのか、又は分岐しにくい傾向にあるのかを示
す”状態”が記憶・参照されることによって、分岐予測
を行う方式が知られている。この”状態”が1ビットで
表される場合、1ビット予測方式と呼ばれ、2ビットで
表される場合、2ビット予測方式と呼ばれる。
【0011】1ビット予測方式は、”状態”が”1”で
あるときは次に実行される分岐命令は分岐すると予測さ
れ、”状態”が”0”であるときは次に実行される分岐
命令は分岐しないと予測される方式である。2ビット予
測方式では、図6(b)に示されるように、”状態”の
値が”11”であるときは次に実行される分岐命令は高
い確率で分岐が成立すると予測され、”状態”の値が”
10”であるときは次に実行される分岐命令は低い確率
で分岐が成立すると予測され、”状態”の値が”01”
であるときは次に実行される分岐命令は低い確率で分岐
が成立しないと予測され、”状態”の値が”00”であ
るときは次に実行される分岐命令は高い確率で分岐が成
立しないと予測される。そして、図6(a)に示される
ように、分岐命令の実行の結果分岐が成立した場合
(T:Taken )には、”状態”の値が1ずつインクリメ
ントされ、分岐が成立しなかった場合(NT:Not Take
n )には、”状態”の値が1ずつデクリメントされる。
但し、”状態”の最大値は”11”で、最小値は”0
0”である。
【0012】この第1の従来技術により、或る分岐命令
において分岐成立が連続する場合や分岐不成立が連続す
る場合の予測確率を高めることができる。しかし、例え
ば変数値が偶数のときに分岐が成立しその変数値が奇数
のときに分岐が成立しないという条件を有する分岐命令
がループ命令内で繰り返し実行される結果、分岐成立と
分岐不成立が交互に繰り返されるような場合には、第1
の従来技術では、予測確率が低下してしまうという問題
点を有している。
【0013】そこで、分岐方式の第2の従来技術とし
て、図7に示されるように、各分岐命令に対応するプロ
グラムカウンタ値毎に、過去数回例えば過去4回の分岐
結果の履歴H(ヒストリ)が記憶されたローカルヒスト
リレジスタ103と、ローカルヒストリレジスタ103
の各エントリと同じプログラムカウンタ値毎に、ヒスト
リHの出現し得る全パターン例えば”0000”〜”1
111”のそれぞれのエントリにつき、2ビットの”状
態”が記憶された状態テーブル102とを参照すること
により分岐予測を行う、2レベル予測方式と呼ばれる方
式が知られている。この方式は、まず、ローカルヒスト
リレジスタ103上で、PCレジスタ101に保持され
ている現在のプログラムカウンタ値PCに対応するエン
トリのヒストリHが読み出される。このヒストリHは、
例えば過去4回の分岐結果を、各ビットが”0”(分岐
不成立)または”1”(分岐成立)の値をとり得る4ビ
ットからなるデータにより表現される。次に、状態テー
ブル102上で、PCレジスタ101に保持されている
現在のプログラムカウンタ値PCに対応するエントリの
ローカルヒストリテーブルブロック105がアクセスさ
れ、そのブロック内で、ローカルヒストリレジスタ10
3から読み出されたヒストリHに対応するエントリに記
憶されている2ビットの”状態”の値が読み出される。
そして第1の従来技術の場合と同様に、図6(b)に示
されるように、”状態”の値が”11”又は”10”の
ときは次に実行される分岐命令は分岐が成立すると予測
され、”状態”の値が”01”または”00”のときは
次に実行される分岐命令は分岐が成立しないと予測され
る。そして、図6(b)に示されるように、分岐命令が
実行された結果、分岐が成立した場合(T:Taken )に
は、上述のエントリに記憶されている”状態”の値が1
ずつインクリメントされ、分岐が成立しなかった場合
(NT:Not Taken )には、上記”状態”が1ずつデク
リメントされる。
【0014】この第2の従来技術では、分岐命令毎(プ
ログラムカウンタ値毎)およびヒストリパターン毎(即
ち分岐パターン毎)に”状態”を記憶することができる
ため、前述した第1の従来技術に比較して、予測精度を
向上させることが可能となる。具体的には、或る分岐命
令について、分岐不成立と分岐成立が交互に繰り返され
る第1のヒストリ”0101”が発生した場合には、あ
る経験則に基づくアルゴリズムに従って、その分岐命令
およびその第1のヒストリに対応する”状態”の値を”
00”に設定しておくことができ、この結果、次に実行
される分岐命令は高い確率で分岐が成立しないと予測さ
れる。逆に、分岐成立と分岐不成立が交互に繰り返され
る第2のヒストリ”1010”が発生した場合には、そ
の分岐命令およびその第2のヒストリに対応する”状
態”の値を”11”に設定しておくことができ、この結
果、次に実行される分岐命令は高い確率で分岐が成立す
ると予測される。
【0015】
【発明が解決しようとする課題】上記第1の従来技術で
は、状態テーブルとして、分岐命令のプログラムカウン
タ値PCを格納するエントリ部分と各エントリに対応し
て1ビット(1ビット予測方式の場合)または2ビット
(2ビット予測方式の場合)の状態ビットを格納する部
分を備えるだけで済む。
【0016】一方、より分岐予測確率の高い上記第2の
従来技術を採用しようとすると、図7に示すローカルヒ
ストリレジスタ103とローカルヒストリテーブルブロ
ック105のハードウェア部分を追加する必要があり、
第1の従来技術よりもハードウェア量が増大するという
問題点がある。本願の発明者は、上記第2の従来技術よ
りも分岐予測確率の高い分岐予測装置を特願平8−46
513号で「3レベル予測方式」として提案している。
この特願平8−46513号で提案している3レベル予
測方式においては、現在の分岐命令に対応する”状態”
は、現在のプログラムカウンタ値に対応する過去数回の
分岐結果のヒストリからだけではなく、どのような分岐
パスの履歴を辿って現在の分岐命令がフェッチされたか
を示すヒストリをも加味して決定される。分岐パスの履
歴(ヒストリ)を保持するために、この特願平8−46
513号の方式は、上記第2の従来技術よりもさらにハ
ードウェア量が増大するという問題点が存在する。
【0017】本発明は、より少ないハードウェア量でも
って、予測正解確率の良好な分岐予測装置を実現するこ
とを目的とする。
【0018】
【課題を解決するための手段】本発明は、分岐方向を予
測すべき分岐命令である予測対象分岐命令の分岐予測を
行う分岐予測装置を前提とする。本発明の第1の態様
は、以下の構成を有する。それぞれ予測手法の異なる複
数の分岐予測手段を有する。そして、複数の分岐命令の
それぞれ毎に、いずれか1つの分岐予測手段を適応的に
使用して分岐予測を行う。
【0019】本発明の第2の態様は、以下の構成を有す
る。分岐命令毎に、分岐予測正解率が低くなるにしたが
って、より分岐予測正解確率の高い分岐予測手段を使用
するように切り換えられ、分岐予測正解率が高くなるに
したがって、より分岐予測正解確率の低い分岐予測手段
を使用するように切り換えられる。
【0020】本発明の第3の態様は、以下の構成を有す
る。複数の分岐予測手段はそれぞれ、分岐命令を登録す
るための複数のエントリを有する。ある分岐予測手段に
新たに登録される分岐命令は当該分岐予測手段の先頭エ
ントリに登録される。分岐予測が不正解であった場合は
その都度後段のエントリに移される。分岐予測が正解で
あった場合はその都度前段のエントリに移される。ある
分岐予測手段の最終エントリに登録されている分岐命令
において分岐予測が不正解であった場合には、その分岐
命令は、より分岐予測正解確率の高い他の分岐予測手段
の先頭エントリに移されて登録される。ある分岐予測手
段の先頭エントリに登録されている分岐命令において分
岐予測が正解であった場合には、その分岐命令は、より
分岐正解確率の低い他の分岐予測手段の最終エントリに
移されて登録される。
【0021】本発明の第4の態様は、以下の構成を有す
る。分岐方向が定常的に定まっている分岐命令のみを登
録し、固定的な分岐予測を行う分岐予測手段を設ける。
本発明の第5の態様は、以下の構成を有する。いずれの
分岐予測手法を使用しても予測が困難な分岐命令を登録
し、その分岐命令について固定的な分岐予測を行う分岐
予測手段を設ける。
【0022】図1は本発明の構成例を示す図である。図
1において、1は現在のプログラムカウンタ値を格納す
るPCレジスタ、2は状態テーブル、3は過去の履歴ビ
ットを保持し2レベル予測方式で使用されるローカルヒ
ストリレジスタ、4はPCエントリブロック、5はロー
カルヒストリエントリブロック、6はPCエントリ、7
はローカルヒストリエントリ、8は状態ビット、10は
1ビット予測方式のメモリ領域、11は2ビット予測方
式のメモリ領域、12は2レベル予測方式のメモリ領域
である。図1において、3つのそれぞれ異なる予測手段
が示されているが、本発明において予測手段の種類およ
びその数はこれに限定されるものではない。
【0023】本発明の第1の態様にしたがい、予測対象
の分岐命令は、1ビット予測方式のメモリ領域10、2
ビット予測方式のメモリ領域11、2レベル予測方式の
メモリ領域12のいずれかに格納される。本発明の第2
の態様にしたがい、分岐命令の分岐予測正解確率が低く
なるにしたがって、1ビット予測方式のメモリ領域1
0、2ビット予測方式のメモリ領域11、2レベル予測
方式のメモリ領域12の順に切り換えられて使用されて
いき、また分岐命令の分岐予測正解確率が高くなるにし
たがって、2レベル予測方式のメモリ領域12、2ビッ
ト予測方式のメモリ領域11、1ビット予測方式のメモ
リ領域10の順に切り換えられて使用されていく。
【0024】本発明の第3の態様にしたがい、例えば2
ビット予測方式のメモリ領域11の先頭エントリに格納
されている分岐命令に関して分岐予測が正解であった場
合はその分岐命令は1ビット予測方式のメモリ領域10
の最終エントリに移され、また2ビット予測方式のメモ
リ領域11の最終エントリに格納されている分岐命令に
関して分岐予測が不正解であった場合はその分岐命令は
2レベル予測方式のメモリ領域12の先頭エントリに移
される。
【0025】本発明の第4の態様にしたがい、分岐命令
が定常的に定まっている分岐命令は図示しないメモリ領
域に格納され,また本発明の第5の態様にしたがい、い
ずれの分岐予測手法を使用しても予測が困難な分岐命令
は図示しないメモリ領域に格納される。本発明では予測
が正解したか不正解に終わったかの情報を用いることに
より、いくつかの分岐予測機構を適応的(adapti
ve)に使い分けることを基本的な特徴としている。こ
れは、分岐命令によっては、非常に単純な予測方式でも
十分に正しい予測が可能であることに着目している。
【0026】一般に、予測成績を良好にしようとする
と、それにつれて多くのハードウェア量が必要となって
くる。一方、本発明のように、単純に正解に達する分岐
命令についてはハードウェアの単純な予測方式を用い、
複雑な予測機構を用いなければ正解に達しない分岐命令
についてはハードウェアの複雑な予測機構を用いるよう
にすれば、予測性能を向上するために全ての分岐命令に
対して一律に複雑な予測機構を設けている従来の多くの
方式に比較して、より少ないハードウェア量(メモリ量
等)の予測機構による予測を行ってもほぼ同等の予測正
解確率が得られるという効果が得られることになる。
【0027】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態を説明する。図2は本発明の一実施例構
成図である。図2において、1は現在のプログラムカウ
ンタ値を格納するPCレジスタ、2は状態テーブル、3
は過去の履歴ビットを保持し2レベル予測方式で使用さ
れるローカルヒストリレジスタ、4はPCエントリブロ
ック、5はローカルヒストリエントリブロック、6はP
Cエントリ、7はローカルヒストリエントリ、8は状態
ビット、21は容易に正解する分岐命令(固定的予測を
行う分岐命令)のメモリ領域、22は1ビット予測方式
のメモリ領域、23は2ビット予測方式のメモリ領域、
24は2レベル予測方式のメモリ領域、25は予測困難
な分岐命令のメモリ領域である。図中、ローカルヒスト
リレジスタ3、ローカルヒストリエントリブロック5は
図7のローカルヒストリレジスタ103、ローカルヒス
トリエントリブロック105と同一の構成、機能を有す
るものである。
【0028】予測は、状態ビット8の値にしたがって行
う。すなわち、1ビットで状態ビットが表されている1
ビット予測の場合、参照したPC(プログラムカウン
タ)の状態ビットが0ならば分岐せず、参照したPCの
状態ビットが1ならば分岐すると予測する。また、2ビ
ットで状態ビットが表されている2ビット予測と2レベ
ル予測では、当該分岐命令の状態ビットが「00」と
「01」のときは分岐しないと予測し、当該分岐命令の
状態ビットが「10」と「11」のときは分岐すると予
測する。そして、当該分岐命令の予測が正解した場合
は、状態ビットが1ビットのときも、2ビットのとき
も、1だけインクリメントする。
【0029】また、当該分岐命令の予測が不正解に終わ
った場合は、状態ビットが1ビットのときも、2ビット
のときも、1だけデクリメントする。ただし、1ビット
予測方式の場合、状態ビットが1であれば、これ以上は
インクリメントは行わない。また、2ビット予測の場
合、状態ビットが11であれば、これ以上のインクリメ
ントは行わない。
【0030】同様にして、1ビット予測方式の場合、状
態ビットが0の場合はそれ以上はデクリメントは行わ
ず、2ビット予測の場合、状態ビットが00のときはそ
れ以上のデクリメントは行わない。つまり、状態ビット
は1ビットもしくは2ビットの飽和型カウンタにより実
現される。全体のテーブルは、図2に示すように5つの
部分に分割し、1ビット予測方式のメモリ領域22、2
ビット予測方式のメモリ領域23、2レベル予測方式の
メモリ領域24は、連続アドレス領域にアドレスカウン
タ値が小さい順に配置される。この3つの領域の範囲内
において、当該分岐命令の予測が成功した場合はその格
納位置を1だけデクリメント(減少)させ、当該分岐命
令が予測に失敗した場合はその格納位置を1だけインク
リメント(増加)させる。
【0031】すなわち、分岐命令の予測が成功するにつ
れて、(1)2レベル予測方式のメモリ領域24、
(2)2ビット予測方式のメモリ領域23、(3)1ビ
ット予測方式のメモリ領域22の方向に順次PCのエン
トリのリプレースメント(置き換え)が行われる。反対
に、分岐命令の予測が失敗するにつれて、(1)1ビッ
ト予測方式のメモリ領域22、(2)2ビット予測方式
のメモリ領域23、(3)2レベル予測方式のメモリ領
域24の方向に順次PCのエントリのリプレースメント
(置き換え)が行われる。
【0032】予測分岐命令によっては、定常的に分岐す
る命令と、定常的に分岐しない命令が明確に分離できる
場合がある。そのような場合には、これらの命令をメモ
リ領域21に登録し、固定的な予測を行うようにする。
すなわち対応する状態ビットをその分岐命令に合わせて
0または1に固定しておく。また、予測分岐命令によっ
ては、最も高い予測正解率を達成できる予測方式を適用
しても、どうしも正解しない分岐命令が存在する。すな
わち、予測が困難な分岐命令が存在する。つまり、ラン
ダムに分岐する/しないを繰り返すような系列である。
このような分岐命令は現在開発されているどのような予
測機構を用いても成績の良い予測は得られないので、可
変予測状態値を有する予測テーブルから除外し、メモリ
領域25に登録し、常に「分岐する」もしくは「分岐し
ない」と固定的に分岐方向を決定する。
【0033】図3は、本発明の実施例の予測アルゴリズ
ムを示す図である。ステップ201で命令フェッチが行
われ、ステップ202で分岐命令か否かの判定が行わ
れ、分岐命令でなければステップ203でパイプライン
に投入される。分岐命令と判定された場合、ステップ2
04でその分岐命令のPC(プログラムカウンタ)が状
態テーブル2に登録されているかどうかが判定される。
状態テーブル2に登録されていなければ、予測動作は行
わず、ステップ205で状態テーブル2への登録動作が
行われる。最初は、例えば、1ビット予測方式のメモリ
領域22の先頭エントリに登録される。
【0034】状態テーブル2に登録されている場合であ
って、固定的予測を行う分岐命令のメモリ領域21に登
録されていると判定された場合(ステップ206)、ス
テップ207で状態ビットの参照が行われ、ステップ2
08で固定予測が行われる。状態テーブル2に登録され
ている場合であって、1ビット予測方式のメモリ領域2
2に登録されていると判定された場合(ステップ20
9)、ステップ210で状態ビットの参照が行われ、ス
テップ211で分岐方向の予測が行われる。そして、そ
の予測結果に基づき、ステップ212でアドレス更新が
行われ、ステップ213で状態ビット更新が行われる。
【0035】状態テーブル2に登録されている場合であ
って、2ビット予測方式のメモリ領域23に登録されて
いると判定された場合(ステップ214)、ステップ2
15で状態ビットの参照が行われ、ステップ216で分
岐方向の予測が行われる。そして、その予測結果に基づ
き、ステップ217でアドレス更新が行われ、ステップ
218で状態ビット更新が行われる。
【0036】状態テーブル2に登録されている場合であ
って、2レベル予測方式のメモリ領域24に登録されて
いると判定された場合(ステップ219)、ステップ2
20でローカルヒストリの参照動作が行われ、ステップ
221で状態ビットの参照が行われ、ステップ222で
分岐方向の予測が行われる。そして、その予測結果に基
づき、ステップ223でアドレス更新が行われ、ステッ
プ224で状態ビット更新が行われる。
【0037】状態テーブル2に登録されている場合であ
って、予測困難な分岐命令のメモリ領域25に登録され
ていると判定された場合(ステップ225)、ステップ
226で状態ビットの参照が行われ、ステップ227で
固定予測が行われる。図2および図3の実施例では、予
測方式として、1ビット予測方式、2ビット予測方式、
2レベル予測方式の公知の3種類を用いる例を示した
が、本願の発明者が提案した上記特願平8−46513
号の「3レベル予測方式」を含める実施形態を採用する
こともできる。
【0038】その場合、3レベル予測方式のためのメモ
リ領域は、図2に示す2レベル予測方式のメモリ領域2
4に隣接する後続アドレス領域に設けられることにな
る。そして、図2に示す予測困難な分岐命令のメモリ領
域25は、その3レベル予測方式のためのメモリ領域の
後続アドレス領域に設けられることになる。上記実施例
では、固定的予測を行う分岐命令のメモリ領域21およ
び予測困難な分岐命令のメモリ領域25への登録方法に
ついて述べていないが、各分岐命令について分岐予測の
正解/不正解の回数の統計をとり、その統計結果に基づ
いて固定的予測を行う分岐命令、予測困難な分岐命令と
判定して、それぞれ該当メモリ領域へ登録する方法等、
種々の方式を採用することが可能である。
【0039】
【発明の効果】以上説明したように、本発明によれば、
予測が困難な分岐命令はハードウェアが複雑で精度の高
い予測機構に自動的に適応していき、また、予測が容易
な分岐命令は簡単な予測機構により予測するように自動
的に適応していく。すなわち、全ての分岐予測を複雑な
(ハードウェアコストのかかる)予測機構により予測し
ている従来の予測機構と比べると、より少ないハードウ
ェアにより、同等の予測精度を上げることができる効率
のよい予測機構を実現するものである。
【0040】本発明によれば、良好な分岐予測正解確率
を維持したまま、より少ないハードウェア量(メモリ容
量等)で予測を行うことができるという効果を奏し、パ
イプラインプロセッサの効率的な設計および実現に寄与
するところが大きい。
【図面の簡単な説明】
【図1】本発明の構成例を示す図である。
【図2】本発明の一実施例構成図である。
【図3】本発明の実施例の予測アルゴリズムを示す図で
ある。
【図4】パイプラインプロセッサの構成例を示す図であ
る。
【図5】パイプラインプロセッサにおける分岐命令の実
行例を示す図である。
【図6】”状態”の説明図である。
【図7】2レベル予測方式の説明図である。
【符号の説明】
1 PCレジスタ 2 状態レジスタ 3 ローカルヒストリレジスタ 4 PCエントリブロック 5 ローカルヒストリエントリブロック 6 PCエントリ 7 ローカルヒストリエントリ 8 状態ビット 21〜25 メモリ領域

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 分岐方向を予測すべき分岐命令である予
    測対象分岐命令の分岐予測を行う分岐予測装置であっ
    て、 それぞれ予測手法の異なる複数の分岐予測手段を備え、 複数の分岐命令のそれぞれ毎に、いずれか1つの分岐予
    測手段を適応的に使用して分岐予測を行うことを特徴と
    する分岐予測装置。
  2. 【請求項2】 分岐命令毎に、分岐予測正解率が低くな
    るにしたがって、より分岐予測正解確率の高い分岐予測
    手段を使用するように切り換えられ、分岐予測正解率が
    高くなるにしたがって、より分岐予測正解確率の低い分
    岐予測手段を使用するように切り換えられる構成を有す
    ることを特徴とする請求項1に記載の分岐予測装置。
  3. 【請求項3】 前記複数の分岐予測手段はそれぞれ、分
    岐命令を登録するための複数のエントリを有し、 ある分岐予測手段に新たに登録される分岐命令は当該分
    岐予測手段の先頭エントリに登録され、 分岐予測が不正解であった場合はその都度後段のエント
    リに移され、 分岐予測が正解であった場合はその都度前段のエントリ
    に移され、 当該分岐予測手段の最終エントリに登録されている分岐
    命令において分岐予測が不正解であった場合には、当該
    分岐命令は、より分岐予測正解確率の高い他の分岐予測
    手段の先頭エントリに移されて登録され、 当該分岐予測手段の先頭エントリに登録されている分岐
    命令において分岐予測が正解であった場合には、当該分
    岐命令は、より分岐正解確率の低い他の分岐予測手段の
    最終エントリに移されて登録される構成を有することを
    特徴とする請求項2に記載の分岐予測装置。
  4. 【請求項4】 分岐方向が定常的に定まっている分岐命
    令のみを登録し、固定的な分岐予測を行う分岐予測手段
    を設けたことを特徴とする請求項1、2、3のいずれか
    に記載の分岐予測装置。
  5. 【請求項5】 いずれの分岐予測手法を使用しても予測
    が困難な分岐命令を登録し、当該分岐命令について固定
    的な分岐予測を行う分岐予測手段を設けたことを特徴と
    する請求項1、2、3、4のいずれかに記載の分岐予測
    装置。
JP4400597A 1997-02-27 1997-02-27 分岐予測装置 Withdrawn JPH10240526A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4400597A JPH10240526A (ja) 1997-02-27 1997-02-27 分岐予測装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4400597A JPH10240526A (ja) 1997-02-27 1997-02-27 分岐予測装置

Publications (1)

Publication Number Publication Date
JPH10240526A true JPH10240526A (ja) 1998-09-11

Family

ID=12679598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4400597A Withdrawn JPH10240526A (ja) 1997-02-27 1997-02-27 分岐予測装置

Country Status (1)

Country Link
JP (1) JPH10240526A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005103886A1 (ja) 2004-04-21 2005-11-03 Fujitsu Limited 分岐予測装置、その方法、及びプロセサ
JP2007527050A (ja) * 2003-07-09 2007-09-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 分岐予測の方法およびシステム
JP2008538251A (ja) * 2005-04-04 2008-10-16 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 投機的分岐予測最適化のためのシステム及びその方法
JP2009535750A (ja) * 2006-05-04 2009-10-01 インターナショナル・ビジネス・マシーンズ・コーポレーション 多形的分岐予測子を実装するための方法および装置
JP2013250593A (ja) * 2012-05-30 2013-12-12 Renesas Electronics Corp 半導体装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007527050A (ja) * 2003-07-09 2007-09-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 分岐予測の方法およびシステム
WO2005103886A1 (ja) 2004-04-21 2005-11-03 Fujitsu Limited 分岐予測装置、その方法、及びプロセサ
US7827393B2 (en) 2004-04-21 2010-11-02 Fujitsu Limited Branch prediction apparatus, its method and processor
JP2008538251A (ja) * 2005-04-04 2008-10-16 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 投機的分岐予測最適化のためのシステム及びその方法
JP2009535750A (ja) * 2006-05-04 2009-10-01 インターナショナル・ビジネス・マシーンズ・コーポレーション 多形的分岐予測子を実装するための方法および装置
JP2013250593A (ja) * 2012-05-30 2013-12-12 Renesas Electronics Corp 半導体装置

Similar Documents

Publication Publication Date Title
US5710902A (en) Instruction dependency chain indentifier
US5511172A (en) Speculative execution processor
KR100395763B1 (ko) 멀티프로세싱 마이크로프로세서에 적합한 분기 예측기
JP4042604B2 (ja) プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム
US7366874B2 (en) Apparatus and method for dispatching very long instruction word having variable length
US20050005085A1 (en) Microprocessor using genetic algorithm
JP3851228B2 (ja) プロセッサ、プログラム変換装置及びプログラム変換方法、並びにコンピュータプログラム
JPS623340A (ja) 分岐方法
JPH0628184A (ja) ブランチ予測方法及びブランチプロセッサ
US9519479B2 (en) Techniques for increasing vector processing utilization and efficiency through vector lane predication prediction
JPH06250823A (ja) ポピュレーション・カウントの計算装置
KR100371686B1 (ko) 제한실행분기예측방법
JPH10240526A (ja) 分岐予測装置
JP4213181B2 (ja) 分岐予測装置、その方法、及びプロセサ
JP4141112B2 (ja) プロセッサおよびプロセッサシステム
US20060149951A1 (en) Method and apparatus for updating global branch history information
US20230195526A1 (en) Graph computing apparatus, processing method, and related device
US20070061554A1 (en) Branch predictor for a processor and method of predicting a conditional branch
CN113032011B (zh) 一种数据流架构中循环程序执行的方法及系统
JP3802038B2 (ja) 情報処理装置
JP2006053830A (ja) 分岐予測装置および分岐予測方法
US7849299B2 (en) Microprocessor system for simultaneously accessing multiple branch history table entries using a single port
JP3899114B2 (ja) プロセッサ
JPH09244891A (ja) 分岐予測装置及び方法
JP3771682B2 (ja) ベクトル処理装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20040511