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
Application number
JP4182497A
Other languages
English (en)
Inventor
Shien-Tai Pan
シエン‐タイ、パン
Kimming So
キミン、ソー
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0628184A publication Critical patent/JPH0628184A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3848Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques

Abstract

(57)【要約】 【目的】 プログラムされたコンピュータのブランチ命
令の方向を予測する方法及び装置の提供。 【構成】 ブランチ命令の結果を予測するための方法及
び装置は、複数のプロセッサディジタルコンピュータで
実行される。パイプライニングは、現代のコンピュータ
及び特にワークステーションのRISCアーキテクチャ
クラスのデータ処理速度を加速するための一般的な技術
である。ブランチ命令の正確な予測はパイプラインの有
効な使用のために重要であり、誤った予測は影響を受け
たプロセッサパイプラインのすべての追い出し及び再負
荷の双方を必要とする。本発明によれば、ブランチ予測
は、連続する前のブランチのヒストリと特定のブランチ
命令との間の相関関係に基づいている。好ましい実施例
において、ブランチ予測テーブルが作成される。テーブ
ルのフィールドが導かれ、その後、前のブランチからの
結果と考慮中のブランチアドレスとの関連する組み合わ
せに基づいて更新される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はディジタルコンピュータ
システムの分野に関する。特に、本発明は、このような
コンピュータシステムによって実行されるブランチ命令
用の方向の予測を行うブランチ予測方法御呼びブランチ
プロセッサに関する。
【0002】
【従来の技術】減少した命令セット計算(RISC)ア
ーキテクチャ及びVLSI技術の最近の進歩によって、
コンピュータの設計者は、高速のプロセッサのスカラー
性能を増加するために深いパイプライン制御を設計する
ことによって、さらに機能ユニットを付加することによ
って命令レベルの並行処理を開発することができる。使
用可能な命令指示レベル並行処理を開発するために、さ
らに複雑なハードウエアが作られるにつれて、ブランチ
によって生じるパイプラインの中断に注意をはらわなけ
ればならない。ブランチは実行されるすべての命令の1
5%から30%程度を構成するから、ブランチの処理能
率は重要である。プロセッサの性能における著しい改良
が、ブランチングの結果として生じるコストを減少する
ために特に設計した方法及びハードウエアを使用するこ
とによって達成される。
【0003】ブランチのコストを減少する多くのハード
ウエア・インプリメンテーションは従来技術で報告され
ている。それらの間で、ブランチ・ターゲットキャッシ
ュ(BTC)が最も一般的に使用される。BTCは、ブ
ランチに関する情報を保持するために使用されるキャッ
シュメモリである。BTC内に保持される典型的な情報
は、前に実行したブランチ命令のアドレス、そのブラン
チのターゲットアドレス、ブランチ予測ビット、及び時
にターゲットアドレスの命令を含む。BTCは、直接マ
ップ、理想的なセット、または完全に理想的なキャッシ
ュとしてオーガナイズされる。BTC及びそれに保持さ
れた情報のオーガナイゼーションは、従属したインプリ
メンテーションであるが、BTCの一般的な操作は同じ
である。命令取り出しステージの間、命令アドレスがB
TCのブランチアドレスと比較される。突き合わせがあ
れば、ブランチが見つけだされ、そのブランチに関連す
る記憶された予測情報に基づいて予測が行われる。予測
がそのブランチを行うことであれば、ターゲット命令
(分岐先命令)は、BTC内のいずれかにあれば、急送
され、次の命令取り出しのために使用される。ブランチ
が実際に解決された時に、BTC内のそのブランチに関
連するブランチ情報はそのブランチの結果に基づいて更
新される。
【0004】実際の装置で実行された他のハードウエア
法はブランチ・ターゲット事前取り出しとして知られて
いる。この方法において、事前に取り出されたターゲッ
ト命令を一時的に保持するために、短い命令バッファの
みが使用される。しかしながら、近づく命令の流れのブ
ランチを予測する機構は、あらかじめターゲット取り出
しを開始するために使用される。ブランチ命令が早く検
出され、ターゲットアドレスをあらかじめ計算すること
ができるならば、ターゲット命令を遅延ゼロで事前取り
出しできる。この種の設計において、ブランチの予測
は、専用のテーブルか、または命令キャッシュディレク
トリにおいて実行される。
【0005】双方の実行において、パイプライン処理用
のブランチコストの全体の節減は、予測の正確性に依存
する。ブランチを誤って予測すると、急送された正しく
ない命令をパイプラインから取り除かなければならず、
パイプライン内に特別な遅延を生じる。パイプラインの
フラッシングのコストが高いならば、予測の正確性につ
いての小さな向上はパイプラインの性能に大きな影響を
与える。
【0006】過度に複雑でないが、能率的な通常使用さ
れるブランチ予測装置は、ブランチ予測技術に基づいた
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号参照。
【0007】
【発明が解決しようとする課題】概して、カウンタに基
づいたブランチ予測はヒストリに基づいた方法であり、
単にそのブランチの過去のヒストリに基づいたブランチ
の接近を決定する。各ブランチ毎にカウンタ値によって
表される予測情報は、独立している。このような予測法
は典型的には、プログラミングの構造が内側のループに
よって支配される科学的な作業のために比較的よく働
く。これらの適用において、ブランチの結果は、それ自
身の過去のヒストリにさらに関連しようとし、他のブラ
ンチの接近には、関連しようとしない。このような自己
関連ヒストリは予測可能性を提供する。
【0008】制御権移動が集中する多数の整数負荷にお
いて、ブランチ間の関連は科学的な負荷における程簡単
ではない。このような適用におけるブランチの結果は、
それ自身の過去のヒストリによって影響を受けるだけで
はなく、先行している他のブランチの結果によって影響
を受ける。要するに、ブランチは通常、お互いに関連
し、相互に依存し合う。この関連または相互依存的な関
係によって、各個々のブランチのヒストリは無秩序にな
り、単にそのブランチのヒストリ上に基づいた予測法の
正確性を低下させる。したがって、ブランチが関連する
負荷のブランチ予測に基づいてカウンタの正確性を増大
させる予測装置及び方法の必要性が存在する。
【0009】
【課題を解決するための手段及び作用】本発明の好まし
い実施例によれば、ブランチの結果を予測するためにM
ビットシフトレジスタ及びブランチ予測テーブルを使用
する。ブランチ予測テーブルを予測情報を記憶するよう
に使用する間、Mビットシフトレジスタは、実行された
条件付き及び条件付でないブランチ命令の最後のM個の
結果を記憶する(実施については「1」及び実施しない
場合は「0」)。本発明によれば、複数のNビットカウ
ンタはテーブルの各エントリに関連する。予測のための
各時間毎に1つのカウンタのみが使用され、カウンタの
選択は、Mビットシフトレジスタの内容によって部分的
に決定される。予測及びカウンタの更新はNビットカウ
ンタ予測アルゴリズムに基づいて実行される。例えば、
カウンタは簡単なリニアアキュムレータであるか、また
は複雑な数学的な作用に基づいている。好ましい形態に
おいて、各テーブルのエントリ(行)に2M 組のNビッ
トフィールドがあり、Nビットの各組は、Nビットカウ
ンタの内容を表している。テーブルエントリは条件付の
ブランチのアドレスのいくつかの低いオーダーのビット
を使用することによってアドレスされ、モジューロ演算
またはハッシュアルゴリズムから得られる。
【0010】現在実施されているような本発明の重要性
は、関連するブランチ情報を追跡し選択的に関連づける
ためにMビットシフトレジスタを使用することにある。
それによって、ブランチの過去のヒストリは、Mビット
シフトレジスタ内に記憶されたビットパターンに従って
サブヒストリに分割される。この予測は、Mビットシフ
トレジスタによって選択されたサブヒストリに関連する
情報に基づいている。
【0011】
【実施例】本発明に係る相関関係に基づいたブランチ予
測方法及び装置は、IBM社によって製造され及び供給
されたRISIシステム/6000TMタイプのスーパー
スカラの減少した命令セット計算(RISI)ワークス
テーションにおいて使用されることが好ましい。RIS
I命令を処理するためのパイプラインアーキュテクチャ
は、タイムリーな正しいブランチ予測の重要性を引立た
せる。したがって、本発明は、前述したRISIワーク
ステーションにおいて説明する。
【0012】この代表的なRISIワークステーション
は、図1に示すように、全体として、1で示すキャビネ
ットを有し、このキャビネット1は、複数のプロセッ
サ、揮発性メモリ、不揮発性メモリ、通信回路、図形回
路及び入力/出力回路を収容している。この図形回路
は、ルーチンとして図1のアイテム2のようなカラーデ
ィスプレイを駆動する一方、入力/出力回路は、操作者
がキーボード3またはマウス4を使用してワークステー
ションに命令を入力することを可能にする。よく知られ
ているように、図1のワークステーションはスタンドア
ローンユニットであるか、または局所化または拡張され
たネットワークにおいて操作するようになっている。
【0013】図1のワークステーション内のプロセッサ
を相互に接続するための代表的なアーキュテクチャは図
2のブロック図によって概略的に示されている。図示し
た構成要素は、主メモリ6、命令キヤッシュメモリ8、
I/Oレジスタ及びデバイス9、固定小数点プロセッサ
11及び浮動小数点プロセッサ12を有する。本発明
は、ブランチプロセッサ12のアーキュテクチャ内の改
良に関する。
【0014】固定点プロセッサ11及び浮動点プロセッ
サ12が並行操作を最大化するためにパイプラインのよ
うに操作されると仮定すると、ブランチプロセッサ13
はプロセッサ11及び12の機能的な使用を最大にする
ためにブランチを予期することが特に重要である。この
点において、誤った予測の結果としてプロセッサ11か
または12のいずれかのパイプラインのデータを一掃す
ることを必要とするブランチに遭遇することは特に好ま
しくない。本発明による相関関係に基づいたブランチの
予測によってブランチプロセッサ13がプロセッサ11
または12のデータの取り扱いによって起こるブランチ
コンディションの結果を正しく予期する可能性が増大す
る。
【0015】一般的に、ブランチ予測の利点はコンピュ
ータアーキュテクチャ設計のコミュニティ内でよく評価
される。例えば、これまで説明したダイナミックカウン
タに基づいたブランチ予測技術は、IBM370メイン
フレームにおいて使用される。
【0016】それら自身のヒストリーに基づいて条件付
のブランチの結果を予測する、プラクティスの現行のブ
ランチ予測アーキュテクチァ及び方法に対して、本発明
は、複数の連続したブランチ操作が相関し、または相互
に依存しているという知識から独自に導き出される改良
を認識してそれを実行する。このような相関情報の取得
及び使用はブランチ命令の予期した結果を改良しようと
するとき関連づけられる。したがって、本発明のアーキ
ュテクチャ及び方法は複数の連続したブランチングの前
後関係のヒストリ情報を使用してブランチの結果の予測
を改良するために情報を選択的に組み合わせる。
【0017】本発明の好ましい実施例を図3に示す。こ
の実施例は前に説明したタイプのRISIコンピュータ
内に包含するのに適している。図3に示した機能的な構
成要素は図2に示すようにブランチプロセッサ13内に
統合することが好ましい。
【0018】このアーキュテクチャ内で実施する本発明
は、多数の観点において明瞭な特徴を有する。第1に、
好ましくは、スタティックRAMの形態のブランチ予測
テーブル14がある。本実施例のテーブルは図4にさら
に明瞭に示すようにそれぞれが8つの2ビットフィール
ドからなる8つのエントリ(行)で構成されている。
【0019】次に、本発明にとって独特なことは、シフ
トレジスタ16であり、その内容は、前の3つのブラン
チ命令の実行においてブランチが行われたかどうかを表
す。条件付及び条件付でないブランチの双方の結果が、
シフトレジスタ16に入ることに留意すべきである。
【0020】第3に、テーブル用のアドレスは、シフト
レジスタによって提供された3ビット、即ちビットS
0,S1及びS2と、ブランチ命令から選択された3ビ
ット、即ちA27,A28及びA29とを含む組み合わせから
引き出される。後の3つのビットは、ブランチアドレス
におけるビットストリングによって通常示すようにブラ
ンチ命令アドレス変化予測評価から直接に取られるか、
またはモジューロ操作またはハッシュアルゴリズムから
導かれる。フィールドビットは、テーブル14から読み
出されるときにP0 及びP1 として、更新中またはテー
ブル14への再エントリ中にC0 及びC1 として同定さ
れる。
【0021】図3に示す機能構成要素の最後は、2ビッ
トアップ/ダウンカウンタ18であり、このカウンタは
テーブル14の各フィールドに関連する2ビットの値を
個々に増加するか減少させるために使用する。この値
は、考慮中のブランチの結果に基づいて変化する。
【0022】図4は、出力として記憶されたデータビッ
トP0 ,P1 を提供するためにシフトレジスタ及びセレ
クトブランチ・アドレスビットによって定義される合成
アドレスを使用してブランチ予測テーブル14のフィー
ルドのアクセスを概略的に示す。テーブル14の予測デ
ータの更新は、図5に示され、その場合、更新したカウ
ンタデータC0 、C1 が対応するように定義されたフィ
ールドでブランチ予測テーブル14に入れられる。
【0023】テーブル14の大きさはシフトレジスタの
大きさによる1つの観点で描かれている。シフトレジス
タが連続するM個のブランチ命令の結果に関連するよう
に選択されるならば、各エントリは2M フィールドを有
する。一般的に、テーブルは2Q のエントリ(行)を有
する。M及びQの双方は設計パラメータである。M及び
Qのための適当な値は、テーブルに利用可能なメモリの
大きさ、カウンタの大きさ及び装置上の典型的な負荷に
よって決定される。各フィールドのビットの数は、予測
カウンタの大きさによって定義され、Nビットのフィー
ルドは2N −1までの値を累算するカウンタを適応す
る。
【0024】図3に参照数字18によって同定される2
ビットのアップダウンカウンタを図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」にされる。
【0025】図3のシフトレジスタ16が図9に詳細に
示されている。本発明において実施するように、実際の
ブランチ(条件付きまたは条件のついていないブラン
チ)の結果が入力端子A0に供給され、続いて次のクロ
ックサイクルの直ぐ後で次の隣接位置に右側に連続的に
シフトされる。その結果のデータは、新しいブランチの
結果が入力端子A0に現れる度に最も右の位置S2 から
シフトされるときに放棄されるまで右側に移動される。
各位置の2進値はS0 ,S1 ,S2 の状態を表す。
【0026】図3に示すブランチ予測アーキテクチャ
は、操作的に前のブランチング操作の結果によって多数
のブランチを相関させ、テーブルから引き出された予測
データはそれらのヒストリカルな関係で重みづけられた
情報を計算に入れる。
【0027】テーブル14の各フィールドに記憶された
データは00,01,10または11ビットの組み合わ
せによって表される値を有することができる。ブランチ
アドレス及びシフトレジスタビットの組み合わせによっ
て選択されるテーブルの値は、ラインA0の「0」また
は「1」によって表されるように考慮中のブランチの結
果に基づいた2ビットアップ/ダウンカウンタ18を使
用して2進値1だけ増加または減少される。例えば、ブ
ランチが起こらなければ、最小値0を有するカウンタ1
8内の値は1だけ減少され、ブランチが起これば、最大
値3を有するそのカウンタの値を1だけ増加させる。ビ
ットC0及びC1によって表される新しい数は、テーブ
ル14の対応するフィールドに書き込まれる。
【0028】さらに大きなパイプラインに向かう傾向が
あるとすれば、多数の制御変換を表すプログラムを走行
することを期待するコンピュータの開発者は、改良され
たブランチ予測の重要性を認識するであろう。同様に、
成功的なブランチ予測は命令の実行から外れたスーパー
スカラコンピュータに対して全く重要である。一般的
に、処理の並列性が長くさらに向上するにつれて、ブラ
ンチ予測がさらに重要になる。
【0029】予備的な経験は、テーブルの大きさを増加
するにしたがって、ここに実施された相関関係に基づい
たブランチ予測は正確な戻りが減少することを示す。一
般的に、相関関係に基づいたブランチ予測は、アドレス
・コンフリクトの強さに影響され、このアドレス・コン
フリクトは、通常独自のブランチの数、独自のブランチ
の走行時間配分、コンフリクトブランチアドレスの数、
テーブルのサイズに依存する。
【0030】図3に描いたアーキテクチャを使用した命
令水準シミュレーションは全体の正確性及び誤った予測
の相対的な減少の双方に関して測定された予測の量が非
常に重要であることを確証した。興味あることには、そ
の結果は、図3に実際描かれた形の比較的小さい3ビッ
トシフトレジスタと2ビットパーフィールド予測テーブ
ルを使用して導き出される。
【0031】本発明を特定の実施例によって説明し、図
示したが、本発明に包含される装置及び方法は、ここに
説明した特許請求の範囲の幅に一致すると判断すべきで
ある。
【0032】
【発明の効果】以上説明したように本発明によれば、当
該ブランチ命令をその前に連続するブランチのヒストリ
と関連させてその結果の予測を行うようになっているの
で、予測の正確さの向上を図ることかでき、パイプライ
ンの性能を向上に大きく寄与することができる。
【図面の簡単な説明】
【図1】RISCコンピュータの概略図。
【図2】スーパースカラーRISCコンピュータ内のア
ーキテクチャのブロックダイヤグラム。
【図3】本発明に係るコンピュータのブランチプロセッ
サに加えられる機構のブロック図。
【図4】ブランチ予測テーブル読み出しの概略ダイヤグ
ラム。
【図5】ブランチ予測テーブル更新の概略ダイヤグラ
ム。
【図6】カウンタの概略図。
【図7】本発明とともに使用されるOR論理機能のブロ
ック図。
【図8】本発明とともに使用されるXOR論理機能のブ
ロック図。
【図9】図3に示すシフトレジスタの概略図。
【符号の説明】
1 ワークステーション 3 キーボード 4 マウス 6 メモリ 8 データキャシュメモリ 9 I/Oレジスタ 11 固定点プロセッサ 12 浮動点プロセッサ 13 ブランチプロセッサ 14 ブランチ予測テーブル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 キミン、ソー アメリカ合衆国テキサス州、オースチン、 ロックレブン、ループ、9021

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】プログラムされたコンピュータのブランチ
    命令の方向を予測する方法であって、 ブランチ予測テーブルを作成するステップと、 前記テーブルをブランチデータで周期的に更新するステ
    ップと、 前記テーブルによってブランチ命令を前のブランチデー
    タと関連づけ、 前記テーブルのデータに基づいたブランチ命令のために
    予測を引出すステップとを有するブランチ予測方法。
  2. 【請求項2】関連づけるステップは、そのブランチ命令
    を連続する前のブランチのヒストリに選択的に関連させ
    る請求項1に記載のブランチ予測方法。
  3. 【請求項3】メモリと複数のプロセッサとを有するプロ
    グラマブルワークステーションにおいて、 ブランチ予測データを記憶するための手段と、 前記ブランチ予測データを更新するための手段と、 連続する前のブランチ操作に関連するデータを記憶する
    ための手段と、 ブランチ命令データと連続する前のブランチ操作データ
    との組み合わせを使用してブランチ予測データを選択す
    る手段とを有するブランチプロセッサ。
  4. 【請求項4】ブランチ予測データを記憶するための手段
    は複数のフィールドマトリックス・メモリである請求項
    3に記載のブランチプロセッサ。
JP4182497A 1991-08-26 1992-07-09 ブランチ予測方法及びブランチプロセッサ Pending JPH0628184A (ja)

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)

* 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 分岐予測装置、その方法、及びプロセサ

Families Citing this family (29)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* 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 分岐予測装置、その方法、及びプロセサ
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