JPH0628184A - ブランチ予測方法及びブランチプロセッサ - Google Patents
ブランチ予測方法及びブランチプロセッサInfo
- Publication number
- JPH0628184A JPH0628184A JP4182497A JP18249792A JPH0628184A JP H0628184 A JPH0628184 A JP H0628184A JP 4182497 A JP4182497 A JP 4182497A JP 18249792 A JP18249792 A JP 18249792A JP H0628184 A JPH0628184 A JP H0628184A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- prediction
- data
- instruction
- processor
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000015654 memory Effects 0.000 claims description 12
- 239000011159 matrix material Substances 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000006872 improvement Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3848—Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
Abstract
令の方向を予測する方法及び装置の提供。 【構成】 ブランチ命令の結果を予測するための方法及
び装置は、複数のプロセッサディジタルコンピュータで
実行される。パイプライニングは、現代のコンピュータ
及び特にワークステーションのRISCアーキテクチャ
クラスのデータ処理速度を加速するための一般的な技術
である。ブランチ命令の正確な予測はパイプラインの有
効な使用のために重要であり、誤った予測は影響を受け
たプロセッサパイプラインのすべての追い出し及び再負
荷の双方を必要とする。本発明によれば、ブランチ予測
は、連続する前のブランチのヒストリと特定のブランチ
命令との間の相関関係に基づいている。好ましい実施例
において、ブランチ予測テーブルが作成される。テーブ
ルのフィールドが導かれ、その後、前のブランチからの
結果と考慮中のブランチアドレスとの関連する組み合わ
せに基づいて更新される。
Description
システムの分野に関する。特に、本発明は、このような
コンピュータシステムによって実行されるブランチ命令
用の方向の予測を行うブランチ予測方法御呼びブランチ
プロセッサに関する。
ーキテクチャ及びVLSI技術の最近の進歩によって、
コンピュータの設計者は、高速のプロセッサのスカラー
性能を増加するために深いパイプライン制御を設計する
ことによって、さらに機能ユニットを付加することによ
って命令レベルの並行処理を開発することができる。使
用可能な命令指示レベル並行処理を開発するために、さ
らに複雑なハードウエアが作られるにつれて、ブランチ
によって生じるパイプラインの中断に注意をはらわなけ
ればならない。ブランチは実行されるすべての命令の1
5%から30%程度を構成するから、ブランチの処理能
率は重要である。プロセッサの性能における著しい改良
が、ブランチングの結果として生じるコストを減少する
ために特に設計した方法及びハードウエアを使用するこ
とによって達成される。
ウエア・インプリメンテーションは従来技術で報告され
ている。それらの間で、ブランチ・ターゲットキャッシ
ュ(BTC)が最も一般的に使用される。BTCは、ブ
ランチに関する情報を保持するために使用されるキャッ
シュメモリである。BTC内に保持される典型的な情報
は、前に実行したブランチ命令のアドレス、そのブラン
チのターゲットアドレス、ブランチ予測ビット、及び時
にターゲットアドレスの命令を含む。BTCは、直接マ
ップ、理想的なセット、または完全に理想的なキャッシ
ュとしてオーガナイズされる。BTC及びそれに保持さ
れた情報のオーガナイゼーションは、従属したインプリ
メンテーションであるが、BTCの一般的な操作は同じ
である。命令取り出しステージの間、命令アドレスがB
TCのブランチアドレスと比較される。突き合わせがあ
れば、ブランチが見つけだされ、そのブランチに関連す
る記憶された予測情報に基づいて予測が行われる。予測
がそのブランチを行うことであれば、ターゲット命令
(分岐先命令)は、BTC内のいずれかにあれば、急送
され、次の命令取り出しのために使用される。ブランチ
が実際に解決された時に、BTC内のそのブランチに関
連するブランチ情報はそのブランチの結果に基づいて更
新される。
法はブランチ・ターゲット事前取り出しとして知られて
いる。この方法において、事前に取り出されたターゲッ
ト命令を一時的に保持するために、短い命令バッファの
みが使用される。しかしながら、近づく命令の流れのブ
ランチを予測する機構は、あらかじめターゲット取り出
しを開始するために使用される。ブランチ命令が早く検
出され、ターゲットアドレスをあらかじめ計算すること
ができるならば、ターゲット命令を遅延ゼロで事前取り
出しできる。この種の設計において、ブランチの予測
は、専用のテーブルか、または命令キャッシュディレク
トリにおいて実行される。
のブランチコストの全体の節減は、予測の正確性に依存
する。ブランチを誤って予測すると、急送された正しく
ない命令をパイプラインから取り除かなければならず、
パイプライン内に特別な遅延を生じる。パイプラインの
フラッシングのコストが高いならば、予測の正確性につ
いての小さな向上はパイプラインの性能に大きな影響を
与える。
れるブランチ予測装置は、ブランチ予測技術に基づいた
Nビットカウンタである。ブランチ予測に基づいたNビ
ットカウンタの基本的な考えは、予測のためにNビット
のアップダウンカウンタを使用することである。理想的
な場合において、Nビットカウンタが独特のブランチ
(異なるアドレスを有するブランチ)の各々に振り分け
られる。ブランチを実行しようとするとき、そのブラン
チに関連するカウンタ値Cが予測のために使用される。
カウンタ値Cが所定のスレッショルド値Lより大きいか
または等しいならば、ブランチが行われることが予測さ
れ、そうでない場合には、ブランチが行われないことが
予測される。スレッショルド値Lに関する典型的候補
は、2N −1である。ブランチに対するカウンタ値C
は、ブランチが解決されるときはいつでも更新される。
ブランチが行われるならば、カウンタ値Cは1つずつ増
加し、そうでなければ、1つずつ減算される。もし、C
=2N −1であれば、ブランチが行われる限りその値の
ままである。C=0ならば、ブランチが行われない限り
ゼロのままである。実際の実行において、Nビットカウ
ンタ値を記憶するためのテーブルとして小さいキャッシ
ュメモリが使用される。通常、ブランチアドレスの低い
オーダーのビットは、テーブルにアクセスするために使
用され、Nビットカウンタ値Cを発生する。これらのN
ビットはアドレスが同じメモリエントリにマップされる
すべてのブランチ用の予測ビットとして使用される。追
加のバックグラウンド情報については米国特許第4,3
70,711号参照。
づいたブランチ予測はヒストリに基づいた方法であり、
単にそのブランチの過去のヒストリに基づいたブランチ
の接近を決定する。各ブランチ毎にカウンタ値によって
表される予測情報は、独立している。このような予測法
は典型的には、プログラミングの構造が内側のループに
よって支配される科学的な作業のために比較的よく働
く。これらの適用において、ブランチの結果は、それ自
身の過去のヒストリにさらに関連しようとし、他のブラ
ンチの接近には、関連しようとしない。このような自己
関連ヒストリは予測可能性を提供する。
いて、ブランチ間の関連は科学的な負荷における程簡単
ではない。このような適用におけるブランチの結果は、
それ自身の過去のヒストリによって影響を受けるだけで
はなく、先行している他のブランチの結果によって影響
を受ける。要するに、ブランチは通常、お互いに関連
し、相互に依存し合う。この関連または相互依存的な関
係によって、各個々のブランチのヒストリは無秩序にな
り、単にそのブランチのヒストリ上に基づいた予測法の
正確性を低下させる。したがって、ブランチが関連する
負荷のブランチ予測に基づいてカウンタの正確性を増大
させる予測装置及び方法の必要性が存在する。
い実施例によれば、ブランチの結果を予測するためにM
ビットシフトレジスタ及びブランチ予測テーブルを使用
する。ブランチ予測テーブルを予測情報を記憶するよう
に使用する間、Mビットシフトレジスタは、実行された
条件付き及び条件付でないブランチ命令の最後のM個の
結果を記憶する(実施については「1」及び実施しない
場合は「0」)。本発明によれば、複数のNビットカウ
ンタはテーブルの各エントリに関連する。予測のための
各時間毎に1つのカウンタのみが使用され、カウンタの
選択は、Mビットシフトレジスタの内容によって部分的
に決定される。予測及びカウンタの更新はNビットカウ
ンタ予測アルゴリズムに基づいて実行される。例えば、
カウンタは簡単なリニアアキュムレータであるか、また
は複雑な数学的な作用に基づいている。好ましい形態に
おいて、各テーブルのエントリ(行)に2M 組のNビッ
トフィールドがあり、Nビットの各組は、Nビットカウ
ンタの内容を表している。テーブルエントリは条件付の
ブランチのアドレスのいくつかの低いオーダーのビット
を使用することによってアドレスされ、モジューロ演算
またはハッシュアルゴリズムから得られる。
は、関連するブランチ情報を追跡し選択的に関連づける
ためにMビットシフトレジスタを使用することにある。
それによって、ブランチの過去のヒストリは、Mビット
シフトレジスタ内に記憶されたビットパターンに従って
サブヒストリに分割される。この予測は、Mビットシフ
トレジスタによって選択されたサブヒストリに関連する
情報に基づいている。
測方法及び装置は、IBM社によって製造され及び供給
されたRISIシステム/6000TMタイプのスーパー
スカラの減少した命令セット計算(RISI)ワークス
テーションにおいて使用されることが好ましい。RIS
I命令を処理するためのパイプラインアーキュテクチャ
は、タイムリーな正しいブランチ予測の重要性を引立た
せる。したがって、本発明は、前述したRISIワーク
ステーションにおいて説明する。
は、図1に示すように、全体として、1で示すキャビネ
ットを有し、このキャビネット1は、複数のプロセッ
サ、揮発性メモリ、不揮発性メモリ、通信回路、図形回
路及び入力/出力回路を収容している。この図形回路
は、ルーチンとして図1のアイテム2のようなカラーデ
ィスプレイを駆動する一方、入力/出力回路は、操作者
がキーボード3またはマウス4を使用してワークステー
ションに命令を入力することを可能にする。よく知られ
ているように、図1のワークステーションはスタンドア
ローンユニットであるか、または局所化または拡張され
たネットワークにおいて操作するようになっている。
を相互に接続するための代表的なアーキュテクチャは図
2のブロック図によって概略的に示されている。図示し
た構成要素は、主メモリ6、命令キヤッシュメモリ8、
I/Oレジスタ及びデバイス9、固定小数点プロセッサ
11及び浮動小数点プロセッサ12を有する。本発明
は、ブランチプロセッサ12のアーキュテクチャ内の改
良に関する。
サ12が並行操作を最大化するためにパイプラインのよ
うに操作されると仮定すると、ブランチプロセッサ13
はプロセッサ11及び12の機能的な使用を最大にする
ためにブランチを予期することが特に重要である。この
点において、誤った予測の結果としてプロセッサ11か
または12のいずれかのパイプラインのデータを一掃す
ることを必要とするブランチに遭遇することは特に好ま
しくない。本発明による相関関係に基づいたブランチの
予測によってブランチプロセッサ13がプロセッサ11
または12のデータの取り扱いによって起こるブランチ
コンディションの結果を正しく予期する可能性が増大す
る。
ータアーキュテクチャ設計のコミュニティ内でよく評価
される。例えば、これまで説明したダイナミックカウン
タに基づいたブランチ予測技術は、IBM370メイン
フレームにおいて使用される。
のブランチの結果を予測する、プラクティスの現行のブ
ランチ予測アーキュテクチァ及び方法に対して、本発明
は、複数の連続したブランチ操作が相関し、または相互
に依存しているという知識から独自に導き出される改良
を認識してそれを実行する。このような相関情報の取得
及び使用はブランチ命令の予期した結果を改良しようと
するとき関連づけられる。したがって、本発明のアーキ
ュテクチャ及び方法は複数の連続したブランチングの前
後関係のヒストリ情報を使用してブランチの結果の予測
を改良するために情報を選択的に組み合わせる。
の実施例は前に説明したタイプのRISIコンピュータ
内に包含するのに適している。図3に示した機能的な構
成要素は図2に示すようにブランチプロセッサ13内に
統合することが好ましい。
は、多数の観点において明瞭な特徴を有する。第1に、
好ましくは、スタティックRAMの形態のブランチ予測
テーブル14がある。本実施例のテーブルは図4にさら
に明瞭に示すようにそれぞれが8つの2ビットフィール
ドからなる8つのエントリ(行)で構成されている。
トレジスタ16であり、その内容は、前の3つのブラン
チ命令の実行においてブランチが行われたかどうかを表
す。条件付及び条件付でないブランチの双方の結果が、
シフトレジスタ16に入ることに留意すべきである。
レジスタによって提供された3ビット、即ちビットS
0,S1及びS2と、ブランチ命令から選択された3ビ
ット、即ちA27,A28及びA29とを含む組み合わせから
引き出される。後の3つのビットは、ブランチアドレス
におけるビットストリングによって通常示すようにブラ
ンチ命令アドレス変化予測評価から直接に取られるか、
またはモジューロ操作またはハッシュアルゴリズムから
導かれる。フィールドビットは、テーブル14から読み
出されるときにP0 及びP1 として、更新中またはテー
ブル14への再エントリ中にC0 及びC1 として同定さ
れる。
トアップ/ダウンカウンタ18であり、このカウンタは
テーブル14の各フィールドに関連する2ビットの値を
個々に増加するか減少させるために使用する。この値
は、考慮中のブランチの結果に基づいて変化する。
トP0 ,P1 を提供するためにシフトレジスタ及びセレ
クトブランチ・アドレスビットによって定義される合成
アドレスを使用してブランチ予測テーブル14のフィー
ルドのアクセスを概略的に示す。テーブル14の予測デ
ータの更新は、図5に示され、その場合、更新したカウ
ンタデータC0 、C1 が対応するように定義されたフィ
ールドでブランチ予測テーブル14に入れられる。
大きさによる1つの観点で描かれている。シフトレジス
タが連続するM個のブランチ命令の結果に関連するよう
に選択されるならば、各エントリは2M フィールドを有
する。一般的に、テーブルは2Q のエントリ(行)を有
する。M及びQの双方は設計パラメータである。M及び
Qのための適当な値は、テーブルに利用可能なメモリの
大きさ、カウンタの大きさ及び装置上の典型的な負荷に
よって決定される。各フィールドのビットの数は、予測
カウンタの大きさによって定義され、Nビットのフィー
ルドは2N −1までの値を累算するカウンタを適応す
る。
ビットのアップダウンカウンタを図6に詳細に示す。前
のブランチの結果に対応する入力ラインA0は、カウン
タを増加させるか減少させるかを定義することに留意す
べきである。カウンタ18の制御線CE及びPLを駆動
する信号はテーブルの出力信号P0 ,P1 のビット内容
に基づいて図7及び図8にそれぞれ示すようなロジック
OR及びXORブロックで発生する。図8のXORゲー
トのロジックは、それがその最小値0(2進数00)に
到達したときまたはその最大値3(2進数11)に達し
たとき、カウンタ機能を無効にし、クロックの0−1変
換に続いて直ぐに出力端子C0 ,C1 に平行に入力信号
P0 、P1 を転送するようになっており、図7のロジッ
クは、アップダウン選択信号A0に基づいて入力信号P
0 ,P1 を増加するかまたは減少することができるよう
にカウンタ機能をイネーブルとする。図6に明らかな制
御信号は、カウンタが値「0」にリセットされることを
防止するために、強制的に「1」にされる。
示されている。本発明において実施するように、実際の
ブランチ(条件付きまたは条件のついていないブラン
チ)の結果が入力端子A0に供給され、続いて次のクロ
ックサイクルの直ぐ後で次の隣接位置に右側に連続的に
シフトされる。その結果のデータは、新しいブランチの
結果が入力端子A0に現れる度に最も右の位置S2 から
シフトされるときに放棄されるまで右側に移動される。
各位置の2進値はS0 ,S1 ,S2 の状態を表す。
は、操作的に前のブランチング操作の結果によって多数
のブランチを相関させ、テーブルから引き出された予測
データはそれらのヒストリカルな関係で重みづけられた
情報を計算に入れる。
データは00,01,10または11ビットの組み合わ
せによって表される値を有することができる。ブランチ
アドレス及びシフトレジスタビットの組み合わせによっ
て選択されるテーブルの値は、ラインA0の「0」また
は「1」によって表されるように考慮中のブランチの結
果に基づいた2ビットアップ/ダウンカウンタ18を使
用して2進値1だけ増加または減少される。例えば、ブ
ランチが起こらなければ、最小値0を有するカウンタ1
8内の値は1だけ減少され、ブランチが起これば、最大
値3を有するそのカウンタの値を1だけ増加させる。ビ
ットC0及びC1によって表される新しい数は、テーブ
ル14の対応するフィールドに書き込まれる。
あるとすれば、多数の制御変換を表すプログラムを走行
することを期待するコンピュータの開発者は、改良され
たブランチ予測の重要性を認識するであろう。同様に、
成功的なブランチ予測は命令の実行から外れたスーパー
スカラコンピュータに対して全く重要である。一般的
に、処理の並列性が長くさらに向上するにつれて、ブラ
ンチ予測がさらに重要になる。
するにしたがって、ここに実施された相関関係に基づい
たブランチ予測は正確な戻りが減少することを示す。一
般的に、相関関係に基づいたブランチ予測は、アドレス
・コンフリクトの強さに影響され、このアドレス・コン
フリクトは、通常独自のブランチの数、独自のブランチ
の走行時間配分、コンフリクトブランチアドレスの数、
テーブルのサイズに依存する。
令水準シミュレーションは全体の正確性及び誤った予測
の相対的な減少の双方に関して測定された予測の量が非
常に重要であることを確証した。興味あることには、そ
の結果は、図3に実際描かれた形の比較的小さい3ビッ
トシフトレジスタと2ビットパーフィールド予測テーブ
ルを使用して導き出される。
示したが、本発明に包含される装置及び方法は、ここに
説明した特許請求の範囲の幅に一致すると判断すべきで
ある。
該ブランチ命令をその前に連続するブランチのヒストリ
と関連させてその結果の予測を行うようになっているの
で、予測の正確さの向上を図ることかでき、パイプライ
ンの性能を向上に大きく寄与することができる。
ーキテクチャのブロックダイヤグラム。
サに加えられる機構のブロック図。
ラム。
ム。
ック図。
ロック図。
Claims (4)
- 【請求項1】プログラムされたコンピュータのブランチ
命令の方向を予測する方法であって、 ブランチ予測テーブルを作成するステップと、 前記テーブルをブランチデータで周期的に更新するステ
ップと、 前記テーブルによってブランチ命令を前のブランチデー
タと関連づけ、 前記テーブルのデータに基づいたブランチ命令のために
予測を引出すステップとを有するブランチ予測方法。 - 【請求項2】関連づけるステップは、そのブランチ命令
を連続する前のブランチのヒストリに選択的に関連させ
る請求項1に記載のブランチ予測方法。 - 【請求項3】メモリと複数のプロセッサとを有するプロ
グラマブルワークステーションにおいて、 ブランチ予測データを記憶するための手段と、 前記ブランチ予測データを更新するための手段と、 連続する前のブランチ操作に関連するデータを記憶する
ための手段と、 ブランチ命令データと連続する前のブランチ操作データ
との組み合わせを使用してブランチ予測データを選択す
る手段とを有するブランチプロセッサ。 - 【請求項4】ブランチ予測データを記憶するための手段
は複数のフィールドマトリックス・メモリである請求項
3に記載のブランチプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US74977191A | 1991-08-26 | 1991-08-26 | |
US749771 | 1991-08-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0628184A true JPH0628184A (ja) | 1994-02-04 |
Family
ID=25015119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4182497A Pending JPH0628184A (ja) | 1991-08-26 | 1992-07-09 | ブランチ予測方法及びブランチプロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US5553253A (ja) |
JP (1) | JPH0628184A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005103886A1 (ja) * | 2004-04-21 | 2005-11-03 | Fujitsu Limited | 分岐予測装置、その方法、及びプロセサ |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5564118A (en) * | 1992-11-12 | 1996-10-08 | Digital Equipment Corporation | Past-history filtered branch prediction |
US5454117A (en) * | 1993-08-25 | 1995-09-26 | Nexgen, Inc. | Configurable branch prediction for a processor performing speculative execution |
GB9504743D0 (en) * | 1995-03-09 | 1995-04-26 | Int Computers Ltd | Jump prediction |
US5687360A (en) * | 1995-04-28 | 1997-11-11 | Intel Corporation | Branch predictor using multiple prediction heuristics and a heuristic identifier in the branch instruction |
US5878255A (en) * | 1995-06-07 | 1999-03-02 | Advanced Micro Devices, Inc. | Update unit for providing a delayed update to a branch prediction array |
US5742805A (en) * | 1996-02-15 | 1998-04-21 | Fujitsu Ltd. | Method and apparatus for a single history register based branch predictor in a superscalar microprocessor |
US6170053B1 (en) * | 1996-06-27 | 2001-01-02 | Texas Instruments Incorporated | Microprocessor with circuits, systems and methods for responding to branch instructions based on history of prediction accuracy |
WO1998008160A1 (en) * | 1996-08-20 | 1998-02-26 | Idea Corporation | A method for identifying hard-to-predict branches to enhance processor performance |
US5758143A (en) * | 1996-10-07 | 1998-05-26 | International Business Machines Corporation | Method for updating a branch history table in a processor which resolves multiple branches in a single cycle |
US5794028A (en) * | 1996-10-17 | 1998-08-11 | Advanced Micro Devices, Inc. | Shared branch prediction structure |
US6253316B1 (en) | 1996-11-19 | 2001-06-26 | Advanced Micro Devices, Inc. | Three state branch history using one bit in a branch prediction mechanism |
US6327636B1 (en) | 1997-09-16 | 2001-12-04 | International Business Machines Corporation | Ordering for pipelined read transfers |
US5954814A (en) * | 1997-12-19 | 1999-09-21 | Intel Corporation | System for using a branch prediction unit to achieve serialization by forcing a branch misprediction to flush a pipeline |
KR100498425B1 (ko) * | 1998-02-04 | 2005-09-08 | 삼성전자주식회사 | 분기 예측 장치 |
US6272623B1 (en) | 1999-01-25 | 2001-08-07 | Sun Microsystems, Inc. | Methods and apparatus for branch prediction using hybrid history with index sharing |
US6427206B1 (en) * | 1999-05-03 | 2002-07-30 | Intel Corporation | Optimized branch predictions for strongly predicted compiler branches |
US6457120B1 (en) * | 1999-11-01 | 2002-09-24 | International Business Machines Corporation | Processor and method including a cache having confirmation bits for improving address predictable branch instruction target predictions |
US6976157B1 (en) | 1999-11-04 | 2005-12-13 | International Business Machines Corporation | Circuits, systems and methods for performing branch predictions by selectively accessing bimodal and fetch-based history tables |
US6502188B1 (en) | 1999-11-16 | 2002-12-31 | Advanced Micro Devices, Inc. | Dynamic classification of conditional branches in global history branch prediction |
US6715064B1 (en) * | 2000-01-21 | 2004-03-30 | Intel Corporation | Method and apparatus for performing sequential executions of elements in cooperation with a transform |
US7085920B2 (en) * | 2000-02-02 | 2006-08-01 | Fujitsu Limited | Branch prediction method, arithmetic and logic unit, and information processing apparatus for performing brach prediction at the time of occurrence of a branch instruction |
US6823446B1 (en) | 2000-04-13 | 2004-11-23 | International Business Machines Corporation | Apparatus and method for performing branch predictions using dual branch history tables and for updating such branch history tables |
US6745323B1 (en) | 2000-08-03 | 2004-06-01 | International Business Machines Corporation | Global history vector recovery circuits and methods and systems using the same |
US7000096B1 (en) * | 2000-08-03 | 2006-02-14 | International Business Machines Corporation | Branch prediction circuits and methods and systems using the same |
US8285976B2 (en) | 2000-12-28 | 2012-10-09 | Micron Technology, Inc. | Method and apparatus for predicting branches using a meta predictor |
US7343481B2 (en) * | 2003-03-19 | 2008-03-11 | Arm Limited | Branch prediction in a data processing system utilizing a cache of previous static predictions |
US20050216714A1 (en) * | 2004-03-25 | 2005-09-29 | Intel Corporation | Method and apparatus for predicting confidence and value |
US20050283593A1 (en) * | 2004-06-18 | 2005-12-22 | Vladimir Vasekin | Loop end prediction |
US10853076B2 (en) * | 2018-02-21 | 2020-12-01 | Arm Limited | Performing at least two branch predictions for non-contiguous instruction blocks at the same time using a prediction mapping |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS50118637A (ja) * | 1974-03-01 | 1975-09-17 | ||
JPS5776638A (en) * | 1980-10-21 | 1982-05-13 | Control Data Corp | Branch predicting device |
JPS61208130A (ja) * | 1985-03-11 | 1986-09-16 | Nec Corp | 分岐命令制御方式 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4430706A (en) * | 1980-10-27 | 1984-02-07 | Burroughs Corporation | Branch prediction apparatus and method for a data processing system |
US4435756A (en) * | 1981-12-03 | 1984-03-06 | Burroughs Corporation | Branch predicting computer |
US4477872A (en) * | 1982-01-15 | 1984-10-16 | International Business Machines Corporation | Decode history table for conditional branch instructions |
EP0109655B1 (en) * | 1982-11-17 | 1991-07-24 | Nec Corporation | Instruction prefetching device with prediction of a branch destination address |
US4470711A (en) * | 1983-03-30 | 1984-09-11 | General Electric Company | Electrical device termination high temperature indicator |
US4764861A (en) * | 1984-02-08 | 1988-08-16 | Nec Corporation | Instruction fpefetching device with prediction of a branch destination for each branch count instruction |
US4679141A (en) * | 1985-04-29 | 1987-07-07 | International Business Machines Corporation | Pageable branch history table |
US4763245A (en) * | 1985-10-30 | 1988-08-09 | International Business Machines Corporation | Branch prediction mechanism in which a branch history table is updated using an operand sensitive branch table |
US4853840A (en) * | 1986-01-07 | 1989-08-01 | Nec Corporation | Instruction prefetching device including a circuit for checking prediction of a branch instruction before the instruction is executed |
US4991080A (en) * | 1986-03-13 | 1991-02-05 | International Business Machines Corporation | Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions |
US4833599A (en) * | 1987-04-20 | 1989-05-23 | Multiflow Computer, Inc. | Hierarchical priority branch handling for parallel execution in a parallel processor |
US4943908A (en) * | 1987-12-02 | 1990-07-24 | International Business Machines Corporation | Multiple branch analyzer for prefetching cache lines |
-
1992
- 1992-07-09 JP JP4182497A patent/JPH0628184A/ja active Pending
-
1994
- 1994-03-30 US US08/221,283 patent/US5553253A/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS50118637A (ja) * | 1974-03-01 | 1975-09-17 | ||
JPS5776638A (en) * | 1980-10-21 | 1982-05-13 | Control Data Corp | Branch predicting device |
JPS61208130A (ja) * | 1985-03-11 | 1986-09-16 | Nec Corp | 分岐命令制御方式 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005103886A1 (ja) * | 2004-04-21 | 2005-11-03 | Fujitsu Limited | 分岐予測装置、その方法、及びプロセサ |
KR100785723B1 (ko) * | 2004-04-21 | 2007-12-18 | 후지쯔 가부시끼가이샤 | 분기 예측 장치, 그 방법 및 프로세서 |
US7827393B2 (en) | 2004-04-21 | 2010-11-02 | Fujitsu Limited | Branch prediction apparatus, its method and processor |
Also Published As
Publication number | Publication date |
---|---|
US5553253A (en) | 1996-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0628184A (ja) | ブランチ予測方法及びブランチプロセッサ | |
US6671798B1 (en) | Configurable branch prediction for a processor performing speculative execution | |
US6988190B1 (en) | Method of an address trace cache storing loop control information to conserve trace cache area | |
US5136697A (en) | System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache | |
KR100411529B1 (ko) | 제2 레벨 분기 예측 테이블을 이용한 분기 예측 방법 및장치 | |
US5592634A (en) | Zero-cycle multi-state branch cache prediction data processing system and method thereof | |
US6263427B1 (en) | Branch prediction mechanism | |
KR100395763B1 (ko) | 멀티프로세싱 마이크로프로세서에 적합한 분기 예측기 | |
US5623614A (en) | Branch prediction cache with multiple entries for returns having multiple callers | |
US6418525B1 (en) | Method and apparatus for reducing latency in set-associative caches using set prediction | |
US6253316B1 (en) | Three state branch history using one bit in a branch prediction mechanism | |
JP2744890B2 (ja) | ブランチ予測式データ処理装置および動作方法 | |
EP2864868B1 (en) | Methods and apparatus to extend software branch target hints | |
US6564313B1 (en) | System and method for efficient instruction prefetching based on loop periods | |
JP2001166935A (ja) | プロセッサにおける分岐予測方法及びプロセッサ | |
KR20010075258A (ko) | 간접 분기 목적지 산출 방법 | |
US6397326B1 (en) | Method and circuit for preloading prediction circuits in microprocessors | |
US20140052972A1 (en) | Meta predictor restoration upon detecting misprediction | |
US6304962B1 (en) | Method and apparatus for prefetching superblocks in a computer processing system | |
KR101026978B1 (ko) | 리턴 스택을 운용하는 방법 및 장치 | |
EP3166015A1 (en) | Fetch ahead branch target buffer | |
US6910104B2 (en) | Icache-based value prediction mechanism | |
US6918033B1 (en) | Multi-level pattern history branch predictor using branch prediction accuracy history to mediate the predicted outcome | |
US7130991B1 (en) | Method and apparatus for loop detection utilizing multiple loop counters and a branch promotion scheme | |
KR100305487B1 (ko) | 특정유형의인스트럭션을동시에처리할수있는방법및데이터프로세싱시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081101 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 6 Free format text: PAYMENT UNTIL: 20081101 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091101 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 8 Free format text: PAYMENT UNTIL: 20101101 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111101 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 10 Free format text: PAYMENT UNTIL: 20121101 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131101 Year of fee payment: 11 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313115 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |