JPS62106545A - 分岐命令の結果予測装置 - Google Patents

分岐命令の結果予測装置

Info

Publication number
JPS62106545A
JPS62106545A JP61230238A JP23023886A JPS62106545A JP S62106545 A JPS62106545 A JP S62106545A JP 61230238 A JP61230238 A JP 61230238A JP 23023886 A JP23023886 A JP 23023886A JP S62106545 A JPS62106545 A JP S62106545A
Authority
JP
Japan
Prior art keywords
branch
instruction
entries
address
entry
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.)
Granted
Application number
JP61230238A
Other languages
English (en)
Other versions
JPH0231419B2 (ja
Inventor
フイリツプ・ジヨージ・エンマ
ジエームズ・ハーバート・ポマレン
グルラジ・セシヤギリ・ラオ
ルドルフ・ナサン・レヒシヤフエン
ハワード・エドワード・サチヤー
フランク・ジヨン・スパラシオ
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 JPS62106545A publication Critical patent/JPS62106545A/ja
Publication of JPH0231419B2 publication Critical patent/JPH0231419B2/ja
Granted 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 or 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

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)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はデータ処理の分野におけるものであり、具体的
には計算機における分岐命令の処理に関するものである
B、従来技術 高性能プロセッサでは、命令を、種々のステップ処理装
置により実行される幾つかのステップに分解することが
常套手段である。そのような各装置は連続した命令の!
時定のステップをサイクルIU;て受入れる能力金有す
る、3次の命令全それぞれ1サイクルずらして、命令金
サイクル4びに実行する際に運、伏するステップをオー
バラップすることは常套手段である。理想的には、これ
により、たとえ所与の命令が完了するのに数サイクルを
要するとしても、各サイクルで1つの命令を処理するこ
とが可能になる。
この理想的なオーバラップは幾つかの理由で常(て可能
であるとは限らない。主な理由の1つは分岐命令が頻繁
に発生することである。これらは2つの重安な属性?有
する。すなわち、分岐は実行されることもあれば、また
は実行されないこともあり、このことは2つの命令のど
ちらが次に来るかについての一時的な不確実さをもたら
すことと、それが実行されたときは、次の命令は分岐に
おいて通常指定されるアドレスから得なければならない
ことである。
分岐予測機構に関する幾つかの特許があり、それぞれ長
所と短所とを有している。例えば米国特許第43707
11号uコンピュータ・システムにおいて条件付き分岐
命令の結果を前もって予測するだめの分岐予測機溝企開
示している。このシステムの根拠となる原理は分岐命令
が一番最近に実行された命令と同じ方法で決定されるこ
とが可能であるということである。
米国特許第4251864号は信号グループ記憶スペー
スの境界と一致しない境界を有する信号グループ全処理
するための分岐予測機構を開示している。オペランド境
界を含むワードが中央処理装置に転送されるときは、オ
ペランドでないデータもこのワードと共に転送される。
境界ワード内に存在するオペランドでないデータはオペ
ランド信号グループから除去され、中央処理装置に格納
される。中央処理装置によるオペランドの処理の鏝、オ
ペランドでないデータは境界ワード内の前に占めていた
信号位置に再挿入され、処理を含むワード・グループ、
すなわち結果として生じたオペランドは初めに除去され
たメモリ・ロケーションに格納される。
米国特許第3800291号は分岐命令が同じかまたは
別のページにおける情報のアドレスに分岐できる分岐予
測機構である。分岐命令は分岐アドレスが同じかまたは
別のページにおける物理的アドレスであるのか、または
別のページにおける仮、忠アドレスであるのかについて
の指針を含んでいる。
−米国特許第4181942号は計算システムで使われ
る特別な分岐命令が内部レジスタの状態により決定され
るように条件付き分岐として、または無条件分岐として
働くプログラム分岐方法及び装置を開示している。この
特別な分岐命令はプログラム・ループ内、またはその終
りにおいて条件付き分岐のために、またはそのようなル
ープの外側:ておいて無条件分岐のだめに用いられる。
米国特許第5325785号は制御記憶装置とそのアク
セス制師を効率的に用いる分岐予測機構テ示している。
分岐を扱う簡単な方法は分岐が完全に終了するまでオー
バラップを中止することであり、実行づれるか実行され
ないかが決定され、実行されるときは、目標の命令がメ
モリから取り出される。しかし、この方法では1度の分
岐毎に数サイクルが理想的なオーバラップから失われて
しまう。別の方法は分岐の種類と、分岐が実行されるか
どうかについての統計的経験とに基いて一定の選択全行
なうことである。選択が実行されないこと全示すと、オ
ーバラップは実際の結果企保留する条件付き基準で継続
される。選択が誤りであることが明らかになったときは
、条件付きで開始された命令は放棄され、目標の命令が
取り出される。条件付き命令に当てられたサイクルは目
標を取り出すだめのサイクルと同様に失なわれる。
しかし、後者は分岐がデコードされる時点において目標
を予め取り出すことによシ回避されることがしばしばで
ある。
米国特許第4455758号はSIMD(単一命令スト
リーム、複数データ・ストリーム: SingleIn
struction  streem、Multipl
e  Data−streem)に対するマツピング・
プログラムを目標としており、全てのプロセッサに渡る
プログラムの正しくかつ(できれば)効率的な動作を保
証する。SIMDプロセッサはそれぞれのデータ・スト
リーム上の同じ命令ンーゲンス全並行して実行する多く
の同じプロセッサから成る。SIMDプロセッサはそれ
ぞれの入力データ・ストリーム間に相互依存性がないア
プリケーションに高い性能をもたらす。
米国特許第4477872号は「デコード履歴テーブル
」に関する。これは条件付き分岐のアクション(目標で
はなく)全推定するだめの機構全提供する。この発明は
分岐アドレスと、分岐がその直前の実行時に実行された
か否かを出すためのビットとから成るエントリ全有する
テーブルを含む。条件付き分岐のデコード時に、デコー
ドされている分岐のアドバイスを用いて、テーブルが探
索される。エントリがこのアドレスのもとで見出される
ときは、分岐が実行されたか否かを推定するためエント
リ内の履歴ビットが用いられる。この推定は分岐がその
最後の実行の際に行なったのと同じアクションを有する
であろうということである。
[ページ繰り可能な分岐履歴テーブル(Pageabl
cBranch  f(istory ) Jと題する
1985年4月29日に出願された米国特許第7284
24号は分岐履歴テーブルを活性領域とバックアップ領
域の2つの部分に分割することにより相当改良された分
岐履歴テーブル(BIT)に関する。活性領域はプロセ
ッサが近い将来出会う可能性のある少数の分岐に対する
エントリヲ含み、バンクアップ領域はその他の全ての分
岐エントリを含む。プロセッサがエントリ全便うとき、
それに先立ってそれらのエンドりをバックアップ領域か
ら活性領域に運ぶだめの手段が備えられている。エンド
l)がもはや必要とされないときは、それらは活性領域
から除去され、既にバックアップ領域にないときはバッ
クアップ領域に入れられる。近い将来のための新しいエ
ントリがもたらされるので、活性領域は小さいとはいえ
、プロセッサに必要となる分岐命令をほとんど常時含む
ことになる。大きさが小さいことにより、活性領域は高
速になり、この領域をプロセッサ・レイアウNC最適に
置くことが可能になる。バックアップ領域はレイアウト
の重要な部分の外に置かれ、したがって、標準のBHT
にとって実施可能なものよシ犬きくできる。
別の方法が米国特許第5559185号で実施されてい
る。この発明は、分岐を個々に考察すると、大部分が首
尾一貫して実行されるか実行されないかのいずれかであ
り、実行されるときは首尾一貫した目標アドレスを有す
るであろうという考えに基く。この方法では、実行され
た分岐のテーブルが作られる。テーブル内の各エンl−
IJは分岐の目標アドレスを伴った実行された分岐のア
ドレスから成る。このテーブルはハードウェア構成であ
り、しだがって典型的には1024から4096のエン
トリの所定の大きさを有する。エントリは実行された分
岐に出会ったときに、これらの分岐のみに対して作成さ
れる。テーブルが一杯のときは、看丁しいエントリの作
成には古いエントリの置換が必要である。このことはキ
ャッシュにおけるようにLRU(最も以前における使用
に基いて達成できる。
原則としては、実行されている命令のストリームの各分
岐はそのアドレスによりテーブルで探され、発見された
ときは、その目標が取り出されてストリームでの次の命
令になる。分岐がテーブルにないときは、実行されなか
ったものと推定される。テーブルに基く全てのアクショ
ンは命令の実行が進むにつれて検査される。テーブルが
間違っていることが発見されたときは、訂正がなされる
実行されると推定された分岐が実行されなかったときは
、そのテーブル・エントリは削除される。
実行されないと推定された分岐が実行されたときは新し
いエン) IJがそれに対して作成される。推定された
目標アドレスが間違っているときは、訂正されたアドレ
スが登録される。
実際には、上述したことはわずかに修正される。
目標が必要となる前に、まだは少くとも目標が必要とさ
れるとすぐに取り出すことができるように、実行された
分岐を十分早期に見つけることが望ましく、そうすれば
、パイプラインに遅延は発生しない。分岐が探し出され
て確認された後でのみテーブルがアクセスされるときは
、この条件は通常溝/こされない。したがって、テーブ
ルは通常機械の命令取出しパケットに基いて編成され、
アドレスされる。一般にこのパケットは倍長語(DW)
である。実際の手順は次の通りである。機械が倍長語を
取り出してその命令バッファに入れるとき、DWアドレ
スもテーブルに供給される。エントリが存在するときは
、キャッシュの優先権が許す限り速く目標(DW)が取
り出される。次に、この目(2D Wがテーブルに供給
され、プロセスを継続する。
C発明が解決しようとする問題点 上述した従来技術は分岐履歴テーブル(BHT)と呼ば
れ、大部分の分岐全うまく処理するが、間違ったときは
数サイクル分のペナルティが与えられる。テーブルの実
際の大きさにとって(例えば、256エントリまたはほ
ぼ2にバイト)、このペナルティはその使用からの利益
をほとんど相殺する。もつと大きなテーブル(4にエン
トリまたはほぼ52にバイト)は間違った予測の割合を
、したがってペナルティを減少させるが、問題はテーブ
ル・ハードウェアが機械の速度臨界的な命令取出し及び
作成領域に実装されねばならないことである。この領域
では、テーブル・ハードウェアを増大させるよりも減少
させることが重要である。
何故ならば、この領域に置かれねばならないハードウェ
アが多くなればなるほど、配線距離は長くなり、さらに
サイクル時間を決定する最長経路で勘定に入れねばなら
ない論理遅延の数が太きくなる。これらはもちろんサイ
クル時間を長くし、長いサイクル時間は常に機械速度t
i少させるように働くっBHTが備えていた2、乙の編
成上の改良はそれらが引起すかも知れないサイクル時間
の増大のほとんど全相殺するのに全く十分である。
したがって、臨界的な領域てそれ以上のノ・−ドウエア
を置かない改良が求められる。
D 問題点を解決するための手段 本発明1(従って、分岐の結果を判定するためテストさ
れるオペランドに反応するデータ従属分岐テーブル(D
DBT)について説明する。DDBTは分岐履歴テーブ
ル(B HT )と共に動作し、さらに (1)つぎのtar〜((Jからなる関連バイトの各々
に対するエントリ金倉み、 (+、l  関連バイトのアドレス、 (bl  アクションがこのバイトにより決定される分
岐命令のアドレス、 (Cl  分岐が実行されるときは分岐の目標アドレス
、 (d)  特定の分岐に対して分岐アクションを決定す
るための適切なバイトをテストするための手段を指定す
るコード、 (e)  関連バイトの直前の事例に関連した分岐テス
トの結果全指定するアクンヨン・ピット、(2)各スト
ア・オペレー/ヨンにより探索されて(上記(aJに対
する一致を介して)、記憶がテーブル内のバイトの1つ
に対してなされているか否かk 、t4J定し、さらに
一致が見出されたときは、 (6)記憶されているバイトの新しい事例と共に上記(
dlを用いることにより次の分岐の結果を発生させるこ
とができ、さらにこの新しい結果と上記(e)と全比較
することにより、 (4)上記(blにより指定された分岐の次の実行が行
なわれるのであれば、前の実行と同じアクノコン全有す
るか否かを判定することができ、行なわれないときは、 (5)上記fbJ及び(c)を用いてBHTにエントリ
全削除するか、またはBHTからエントリ全削除するの
で(どちらでも適切な方を)、次の分岐の発生に際して
BHTは正しい予測をなすことになる。
E、実施例 本発明に従って、分岐アクションの結果を判定するため
テストされるオペランドに反応するデータ従属分岐テー
ブルについて説明する。データ従属分岐テーブルは分岐
履歴テーブルと共に動作して分岐履歴テーブルが誤った
予測を行なう場合を予想し、実際の予測がなされる時に
先立って分岐履歴テーブルを訂正する手段を備える。
以下実施例にそくして詳細に説明しよう。
分岐履歴テーブル(BHT)は任意の所与の分岐により
生じる結果がその分岐の現在の結果と同じになるものと
推定することにより分岐の結果を予測するだめ用いられ
る。基本BITは分岐命令のアドレスと実行された全て
の分岐に対する目標命令とから成るエントリ対を包含す
る。したがって、的中を生じたアドレスは実行さ九た分
岐のアドレスであるという確信がBITの的中に暗に含
まれている。
多くの分岐は以後の実行に関するアクションと変更する
ので、この場合には耕しい推定を反映するためB HT
を更新する必要がある。実行される   “ものと推定
されながら実行されなかった分岐に関しては関連のエン
ドIJ e B HTから除去しているべきてあり、さ
らに的中しないで実行された命令に関してはエントリ1
BHTに挿入していなければならない。更新はこのよう
な普請に応えるものである。
アクションを変更する分岐は全て条件付き分岐であり、
条件コード?設定するため用いられるデータが変るとア
クションが変更させられる。本発明に従って、関連する
データに対してなされる記憶を監視し、そのような記憶
が従属分岐にアクションを変更させる場合にBHTI更
新するデータ従属分岐テーブル(DDBT)について説
明する。
分岐の推定が間違った場合にBHTを更新するため用い
られる機構を介してBHTにゆるやか(/C結合された
特定の構成例について以下に説明する。
したがって、BHTの再構成を何ら行うことなく、さら
に縦存の制御回路がどのようなものであれ最小限度の変
更を加えるだけで、この特定の構成例を標準のBHTに
付加できる。
説明を明瞭にするため、可能なりIT更新体系について
最初に説明する。次に、DDBTを更新・・−ドウニア
全弁してBHTに結合する方法を含めてDDBTについ
て説明する。最後に、エンドIJ ’、I D D B
 Tに挿入したり、DDBTから削除する方法を示す。
第1図はB I T更新ハードウェアの1つの構成例を
示す。DHT 2が的中したときは、線6及び8を介し
て分岐アドレス(BA)と目標アドレス(TA)kそれ
ぞれメモリ・キャッシュ兼CPU4に送るので、分岐が
取出された後で命令の取出しを再度指示できる。BA、
TA対はまたそれぞれ線12及び14を介して分岐アク
ティブ待ち行列(BAQ)10に与えられる。BAQl
[1はエンド・オプ・オベレーショ/によって未だ確認
されていないB I Tの全ての的中に対するBA、T
A 対k 含む。なお、エンド・オブ・オペレーション
は命令が何ら問題をともなうことなく実行されたときに
行なわれるサイクルのことである。BAQIOは2つの
目的のため働く。すなわち、待ち行列内のエントリはメ
モリ・キャッシュ兼CPU4に備えられた命令バッファ
からの命令を整合しかつ選択するため用いられ、さらに
待ち行列内のエントリは、BHT2が更新される必要が
あるが否かを評価するためエンド・オブ・オペレーショ
、ン全行なう分岐と、比較される。
メモリ・キャッシュ兼CPU4で分岐のエンド・オプ・
オペレーションが行なわれる時点において、分岐に対す
る分岐アドレス(BA)及び目標アドレス(TA)は、
分岐が実行されたかどうがを指定するACTIONビッ
トと共に、それぞれ線18.20及び22を介して分岐
エンド・オブ・オペレーション・レジスタ(BER)1
6に4えられる。実行された分岐は全てレジスタ16を
通過し、さらに実行されると推定される命令のみBAQ
10’を通過するので、問題となっている分岐が実行さ
れると推定されたときは、BER16からのI3Aエン
トリはBAQloからのBAエントリと比較したとき等
しくなるだけである。この比較は比較器24により行な
われ、比較器24は線26上のトップ・オプ・スタック
(TO8)・エンド1Jt−線28上のBERエントリ
と比較する。
比較の結果等しいときは、「実行される」ことを推定す
るアクションを検証するためBER16がらの線60上
のACTIONビットが用いられる。
実行されるものと推定され、かつ実行された分岐につい
て、BAQloからの線34上のTAとBER16から
の線56上のTAとを比較することばよりBHT2が正
しめ目標音も推定したがどうか判定するため、目標アド
レスが比較器62によりテストされる。
デコーダ38は比較器24及び52による2つの比較の
結果と共にBER16からの線6o上のACT I O
NNピラトラ取り、重要な4つの条件を決定する。OR
回路40によシテストされる際にBAQloのBAがB
ERのBAに等しいときはいつでも、BAQのトップ・
オプ・スタックを廃棄することができる。すなわちエン
トリは、実行されるものと推定され、かつ、エンド・オ
プ・オペレーションの行なわれだ分岐に対応する。しか
し、対応する分岐が実行されなかったときは、B HT
エントリは森42上にも示すように削除されねばならず
、まだは対応する分岐が違う目標に対して実行されたと
きは、BHTは線44上に示すように正しい目標アドレ
スを反映するため修正されねばならない。BAQloの
BAがBF:、RI6のBAに等しくないときは、この
ことはBHTの不適中に該当する。分岐が実行されたと
きは、蕨46上に示すよう知新しいエントリをBITに
挿入しなければならない。
OR回路48はBHTへのエントリの挿入、BHTから
のエンドIJの削除、またはBHT内に存在するエント
リに対する修正を必要とするそれぞれの場合を示す。O
R回路はなされるべきネットワーク58内の適切な訂正
のコード化と共に、それぞれ線50及び52上のBER
16からのBA、TA対が線54上のORゲート48の
出力によりBHT訂正待ち行列(BCQ)5(Sへ送ら
れるようにする。B EQ 56内のエントリはBHT
2に対してなされなければならない未実行の更新に対応
する。訂正制御回路60がこれらの更新を行ない、それ
【よI)BCQ56内のエントリ?廃棄し、線62を介
してBHT2を更新する。
データ従属分岐テーブル(DDBT)64は各々6個の
フィールドから成るエントリのテーブルである。これら
のエントリはBHT2内のエントリのナプセットに関連
しており、分岐全決定するテスト・オペランドが変更さ
れる場合にBHT2を更新するため用いられる。各エン
トリ内のフィールドは次の通シである。
(1)  0ADDR:テストされるオペランドのアド
レス。
(27B A D D R: OA D D Rにより
指定されたオペランドに従属する分岐のアドレス。
(3JTADDR二BADDRにより指定された分岐命
令に対する目標のアドレス。
f4)  TEST:0ADDRにより指定されたオペ
ランドがテストされてBADDRにより指定された分岐
の結果?判定する方法を指定するコード。
(5)  ACTION:BADDRにより指定された
分岐がその直前の実行で実行されたか否かを指定するピ
ット。
(6)V:エントリが空白エントリでないことを示す妥
当性ビット。
テーブルは任意の適正な方法で編成できる。本書で指定
された方法は単に例示のため選ばれたにすぎず、いずれ
にしても本発明の範囲を限定するものではない。
説明のため、考慮するオペランド・テストの種類を条件
コードを設定する記憶及び即時(SI)書式の命令、す
なわち、TM、CLI、NI、OI及びXIに限定する
。この場合も、この限定は説明を簡単にするため選ばれ
たものであシ、本発明の応用の範囲を決して限定するも
のではないことと指通しておく。これらの命令は記憶さ
れた単一バイトのオペランドをテストし、DDBTfd
これらのバイトに対するエントリ金倉む。エントリが保
留中の記憶バッファから解放されるときはいつでも、D
DBTを探索して記憶されているオペランドがテスト・
バ・イトであるかどうか知るためこのエントリのアドレ
スが用いられる。それに該当する場合は、記憶されてい
るバイトは上記TESTにより指定された方法でテスト
され、BITがこのバイトに基いた結果的な分岐アクシ
ョンを予想して更新されるべきかどうかを決定する。
第2図はDDBT64と、テストのためオペランドを用
意する方法を示す。記憶要求が保留中の記憶バッファ(
図示せずンから解放されると、候補オペランド待ち行列
(COQ)66に置かれる。
C0Q66はDDBT64に特有なものであり、DDB
TKあるオペランドを保持するだめの一時的パツファと
して働く。DDBT(54は62×4個の項目を一組と
した連想テーブルとして編成された128個のエントリ
を有するものとして示す。
C0Q66からのオペランド・アドレスの下位5ビツト
は各組からのエントリを読取るため用いられる。特定の
オペランドがどのようであっても2つ以上の分岐に影響
を与えることができるので、所与のオペランドに対して
複数のエントリがあり得る。このことを考慮して、)・
−フワード・アドレスBADDR(ビット21及び22
)の下位2ビツトは第6図及び第6図にさらに詳細に示
すように組を決定するため用いられる。この特定の編成
はDDBTディレクトリを必要としないとはいえ、可能
な代替案はLRUの交換を可能にするこの体系上の1つ
の変形である。
DDBT7レイ64からの4つのエントリは一時的バツ
ファ68.70.72及び74にロードされる。これら
エントリの各々からの0ADDKフイールドは実際には
オペランド・アドレスのビット0乃至18から成る。何
故ならば、ビット19乃至23は合同クラスに暗に含ま
れるからである。したがって、C0Q66内のエントリ
のビット0乃至18は4つの候補設定エントリの各々に
おける0ADDRと比較され、これらの候補のどれかが
実際にCOQエントリにより指定されているかどうか全
判定する。比較は比較器76.78.80及び82によ
り実行される。AND回路84.86.88及び90に
よりさらに選別が行なわれて、一致する候補に有効ビッ
トが確実に設定されるようにする。
AND回路84.86.88及び90からの出力に応答
するNOR回路92により決定されるように、C0Q6
6からの0ADDRに一致する有効な候補がないときは
、この結果はOR回路94を介して線96によシC0Q
66に伝えられ、トップ・オプ・スタック(TO8)・
エントリは廃棄される。しかし、有効な候補が一致する
ことが見出されたときは、それらはセクレタ98f:介
してゲート制御される。ゲート制御は2ビツト・カウン
タ100により行なわれ、カウンタ100は粗筋に各エ
ントリを登録し、有効かつ一致するエントリのみをPU
S H信号に応答して保留テスト待ち行列(PTQ)1
02へ進める。どの組が現在登録されているかにより、
信号104はAND回路84.86.88及び90に対
応する。
4つの粗金てが登録され、カウンタ100がゼロ状態に
戻るとき、OR回路94はC0Q66上のTOSエンド
I)fJ、棄させ、上記プロセスは次の候補エントリに
対して繰返される。TPQ112はBHTが更新される
べきか否かを判定するため実行されねばならない全ての
テストの待ち行列である。エントリがPTQ102へ進
められるときは、それはオペランド・アドレスの下位5
ビツト(DDBTインデックス・フィールド)に加えて
、テストされるべきオペランド(COQ66からの)と
共に進められることを特に指摘しておく。
DDBTインデックスはテストの結果がACTrONビ
ットによシ指定されたのと異なるときに、DDBTを更
新するだめに用いられる。
第6図はBHTに対する更新が必要かどうか判定するた
め保留テスト待ち行列(PTQ)102内のエントリが
どのようにテストされるかを示す。
この特定の実施例はテストを命令TM、CLI、Nl、
0■及びxrに限定するので、PTQエントリ内のテス
ト・フィールドは拡大されたTEST・フィールド10
8に示す3つのサプフイールドから成る。はとんどのテ
スト命令が実施されるその他の可能な実施例では、TE
STフィールド108はわずかに変更された書式を有し
、本明細書記載の特定の書式は任意的なものである。こ
れらの5つの命令は記憶オペランド(PTQ102の0
PERANDフイールド110内の)と即値オペランド
(TM、CLI、NI、0工及びXIの命令書式の範囲
内の)に作用するので、PTQ102の’14:STフ
ィールドは即値フィールドが指定される線112上に示
すサブフィールドを含む。これには8ピツトが必要であ
る。5つの可能なテスト命令があるので、線114上に
示すTESTフィールドの3ビツト・サブフィールドを
使用して、実行されるべきテストのコード化金倉む。
問題となっているオペレーションは関連した分岐命令に
より指定されたマスク・フィールドに対してテストされ
る条件コードを設定するため用いられるので、線116
上に示す条件コード・マスク・フィールドもTES T
フィールドのサブフィールドとして含まれねばならない
テスト・サイクルの始めにおいて、PTQ 102の前
部におけるエントリのTESTフィールド108のオペ
レーション・サブフィールド114がデコーダ118に
よりデコードされる。デコーダ118は線120上の制
御入力を8ビツトの算術論理装置(ALU)122にも
たらす。ALUは入力110及び112について適切な
オペレーション全実行し、CPU内でこのオペレーショ
ンから生じる4ビツトの条件コード(CC)k線124
上に出力する。条件コード出力124は比較器126に
より条件コード・マスク・フィールド116と比較され
、線12B上の分岐結果が何になるかを決定する。テス
ト回路により計算された線128上のこの結果は次に2
ピツト・デコーダ161により線160上のACTIO
Nビットと比較される。ACT IONビット160は
分岐がその直前の実行において実行されたか否かを示し
、さらにテスト出力ビット128は分岐がその次の実行
において実行されるか否かを示すので、デコーダ161
はBHTに対する修正を必要とする2つの場合を決定す
ることができる。
ACTION130が分岐がその直前の実行において実
行されたことを示し、テスト出力128が分岐が次に実
行されないことを示すときは、この分岐に対するBHT
エントリも線132上で示すように削除しなければなら
ないことが分る。ACTIONピッ)150が分散がそ
の直前の実行において実行されなかったことを示し、テ
スト出力128が分岐が次に実行されること全示すとき
は、この分岐に対する新しいエントリを線164上で示
すように挿入しなければならないことが分る。OR回路
136はこれらの場合のいずれか一方を検出し、適切な
情報を線140を介してBHT更新更新性列(BUQ)
15Bに、さらに線144を介してDDBT訂正待訂正
列(DCQ)142に送シ出す。
BUQ138内のエントリはBHTに対してなされるべ
き更新を表わす。これらのエントリは更新が関連する分
岐のアドレス(BADDR)、この分岐の目標アドレス
(TADDR)、及び更新の種類(すなわち、挿入また
は削除)から成る。
DCQ142内のエントリはDDBTに対してなされる
べき更新、すなわち、関連のDDBT二ントリントリシ
ョン・ビットが変更されねばならないことを表わす。こ
れらのエントリは新しいアクション・ビット128、線
146上におけるPTQ102からのDD BTインデ
ックス(DDBTエントリの合同クラスを示す)、及び
PTQエントリのBADDRフィールドからのビット2
1及び22である線148上におけるPTQ102から
の組rDから成る。線148上の組IDは修正されるべ
きDDBTエントリがマツピングされる組を表わす。
第4図はBUQ13B内のエントリがどのようにしてB
HT更新更新−ドウエアにとって使用可能となるかを示
す。第4図はDDBT機構にBHTを支援させるため第
1図に必要とされる全修正を表わす。第1図を参照する
と、BCQ56への全ての入力線は途中で切られて、第
4図へ連結されねばならない。これはBER16からの
勝50及び52、デコーダ38からの線42.44及び
46、及びOR回路48からの線54全含む。次に第4
図を参照すると、これらの線の全ては54を除いてデー
タ・セレクタ回路150への入力となり、線54はBU
Q 158の代りにこれら入力を選択するため用いられ
る。BUQ152内のエントリは挿入または削除に関係
するだけなので、「0」入力154はMOD I FY
信号144に対応するものとしてセレクタ150の右側
において必要とされることに特に言及する。線54は左
側の入力に優先権を与えるので、BUQ152からのエ
ントリは第1図のBAQIOに未処理のエントリがない
ときゲート制御されるだけであることにも特に言及する
。この階先的取扱いは任意に与えられるが、BAQlo
に一動作させる回路が修正を必要としないという利点が
ある。
BUQ空白化ネットワーク158からの線156上のス
テータス制御信号はNOR回路160で線54上のPU
SH信号と結合されてBUQ138内の最上部のエンド
IJ e選択する。ゲート16Oからの出力信号162
はOR回路164で信号54と結合されて、選択された
入力エン) IJを線168を介してBHT訂正待ち行
列(BCQ)56に送9出す。選択された入力がBUQ
158からのものであるときは、線168を介するBC
Q56への送シ出しに続いて、線170上の信号がBU
Q’158i動作させるため用いられる。BCQ56内
のエン) IJは上述の方法でBHTi修正するため用
いられる。
第5図はDDBTから得られるBHT内のエントリがど
のように識別され得るか、さらに適切なりDBT二ント
ントリのように同化されかつDDBT更新待ち行列(D
UQ)172に置かれ得るかを示す。このことはプロセ
ッサ・エンドブ待ち行列176を介して達成される。こ
れはプロセッサに対して内部的に保持される待ち行列で
あり、そのエントリはデコードされてはいるがエンド・
オブ・オペレーションはされていない全ての命令のレコ
ードである。多くのプロセッサは既にそのような待ち行
列を備えているので、DDBTは付加的な制御がプロセ
ッサ内で実行されることを全く必要とせず、待ち行列内
のエンl−IJが通常は保持され得ないあるフィールド
を含むため拡張されることだけを必要とする。
DDBTにより必要とされるフィールドは命令アドレス
、命令イメージの最初のハーフワード、副台によりAG
EHされたオペランド・アドレス(適切なとき)、さら
に分岐の場合は、分岐が実行されたか否かである。命令
がエンド・オプ・オペレーションされるときは、命令コ
ード(命令イメージの最初のバイト)がデコーダ174
により検査され、命令が関連のテスト命令(TM、CL
■、Nr、OIまたはXI)であるのか、条件付き分岐
であるのか、または考慮しているテスト命令以外の条件
コード設定命令であるのか全判定する。
命令が線176上に示すテスト命令であるときは、テス
ト・エンドブ・レジスタ(TER)178は関連の情報
金ロードされる。この情報はテストに用いられる即値オ
ペランド(命令イメージの2番目のバイト)、テストさ
れるメモリ・オペランドのアドレス(0ADDK )、
及び実行されるテストの種類(オペレーション)から成
る。この事例では、オペレーションは命令コードに基い
てエンコーダ180により同化される3ビツトのフ・f
−ルドである。TER178がロードされるときは、T
ERによシ指定された命令はエンド・オプ・オペレーシ
ョンされた最も新しい条件コード設定命令であることを
示すためVALIDビットが設定されることに特に言及
する。デコーダ174からの出力1fJ182上に示す
ように、考慮中の命令の1つではない条件コード設定命
令がエンド・オプーオペレーションされるときはいつで
も、TERl 78内の命令が後続の条件付き分岐命令
に間違って関連付けられないようにVALIDビット1
84がリセットされる。
条件付き分岐がデコーダ174からの出力線186上に
示すようにエンド・オブ・オペレーションされるときは
、CCマスク・フィールド190(命令イメージの6番
目のニブル)もBER188にロードされる点を除いて
、分岐エンドブ・レジスタ(BER)188は丁度第1
図のBERI88と同様に設定される。BER188が
ロードされる時点においてVALIDビットがTERI
78で設定されるときは、TER178により指定され
たテスト命令はBER188によシ指定された条件付き
分岐に対する条件コード設定命令である。AND回路1
92はこの条件をテストする。
全く任意的に、第1図からの線42がこのAND回路へ
の入力として含まれた。これは単にDDBTにおける経
済性のためにすぎない。すなわち、DELETE信号4
2はBER188により指定された分岐がBHTで間違
って予報されたことのしるしである。(BHTにより決
して認識されなかった分岐が実行されたときこの状態を
生じるので、lN5ERTはそのようなしるしではない
ことを特に指摘しておく。) したがって、その条件コード設定命令が選択されたDD
BT実施内のテスト命令の1つである間違って予報され
た分岐が確認されたとき、AND回路192は1つのエ
ントリ’1DUQ 172へ送り出す。
第6図は新しいエントリがどのようにしてDDBT更新
待ち行列172からDDBT64に置かれるか、さらに
DDBTに存在するエン) IJがどのようにしてDD
BT訂正待ち行列142(第6図参照)により修正され
るかを示す。第6図に戻ると、DCQ空白レジスタ19
8とDLIQ空白レジスタ200内のステータス情報が
優先権エンコーダ202により検査されてDCQ142
また;はDUQ 172のどちら全サービスするか全決
定する。任意的であるが、線204上に示すように保留
中の記憶バッファから記憶が解放されるとき、エンコー
ダ202はこのどちらかの選択?無効にするので、DD
BTアレイは即時テストのため使用可能である(第2図
参照)。したがって、この特定の実施においては、DD
BTを探索することがDDBTを更新することよりも優
先権がある。
優先権エンコーダ202がDCQ 142をサービスす
ることを選択するときは、信号208によシセレクタ2
06を介してゲート制御されるのはACTIONビット
のみである。セレクタ210はDCQ142からのDD
BTインデックス・フィールドを用いて4組のDDBT
アレイの全てについて行の選択を行なう。DCQ142
内の組IDフィールドによシ適切な組が決定され、セレ
クタ212を介してゲート制御され、そこでデコーダ2
14によりデコードされて適切な組に対する書込み許可
を発する。信号208は許可された組におけるACTI
ONフィールドに対してのみ書込みパルスを発生する。
優先権エンコーダ202がDUQ172をサービスする
ことを選択するときは、全てのフィールドはDDBTア
レイにストアされる必普がある。
DUQ 172からのACTIONフィールドはセレク
タ206を介してゲート制御されるが、他の全ての関連
のフィールドはDDnTアレイ入力を直接駆動する。こ
れらのフィールドは目標アドレス(TA)及び分岐アド
レス(BA)、テスト・フィールド、及び0ADDRの
ピッ)O乃至18である。0ADDRのビット19乃至
26はセレクタ23を介してゲート制御されてDDBT
アレイの全ての組に対する行アドレス音生じ、線216
上の分岐アドレス(BA)のピット21及び22はセレ
クタ212を介してゲート制御され、そこでデコーダ2
14によりデコードされて適切な組に対する書込み許可
全発生する。攪先唯エンコーダ202は選択された組に
おける全てのフィールドに対して薔込みパルス218を
もたらす。
DDBTはBITとプロセッサから独立した受動的機構
であるが、BHTの側における誤った予報を予想し、分
岐についての多くの間違った推定を回避するようにBH
Ti更新する。上に概説した特定の実施は1つの例にす
ぎず、理解し易いので選ばれたものであるが、DDBT
を精密なものにすることは任意にできる。D、DBTの
クラス内においては、「間違った」設計選択は非常に少
ない。すなわち、扱われるテストの困難さ、オペレーシ
ョンの効率、及びBIT更新の時機のような事柄は設計
の実行可能性に影響を与えない。これらの選択はB H
T分岐の回避され得る間違った推定の数に影響を与える
にすぎない。
F1発明の詳細 な説明したように、本発明によれば分岐履歴テーブルと
ともにデータ従属分岐テーブルを用い、分岐履歴テーブ
ルが誤った予測をする場合を予測し、実際の予測がなさ
れる時点にさきだって分岐履歴テーブルを訂正するよう
にしているので、分岐命令の予測を改善することができ
る。
【図面の簡単な説明】
第1A図および第1B図は分岐履歴テーブル更新論理の
ブロック・ダイヤグラム、第2A図および第2B図はテ
ストのためどのようにオペランドが作成されるか全示す
データ従属分岐テーブル論理のブロック・ダイヤグラム
、第3図は分岐履歴テーブルの更新が必要とされるかど
うかを判定する論理のブロック・ダイヤグラム、第4図
は分岐履歴テーブル更新待ち行列がどのように(7て分
岐履歴テーブル論理に使用できるようにされるかを決定
する論理のブロック・ダイヤグラム、第5図はデータ従
属分岐テーブルのためのエンドIJ を作成するだめの
論理のブロック・ダイヤグラム、さらに第6A図および
第6B図はデータ従属分岐テーブル・アレイを更新する
ため用いられる論理のブロック・ダイヤグラムである。 2・・・・分岐履歴テーブル、4・・・・CPU、10
・・・・分岐アクティブ待ち行列(BAQ)、16.1
88・・・・分岐エンドブ・レジスタ(BER)、68
.174・・・・デコーダ、56・・・・BHT訂正訂
正性列、60・・・・訂正制御回路、64・・・・デー
タ従属分岐テーブル(DDBT)、66・・・・候補オ
ペランド待ち行列(COQ )、98.150・・・・
セレクタ、100・・・・カウンタ、102・・・・保
留テスト待ち行列(PTQ)、168・・・・BHT更
新更新性列(BUQ)、142・・・・DDRT訂正待
訂正列(DCQ)、172・・・・DDBT更新待更新
列(DUQ )、178・・・・テスト・エンドブ・レ
ジスタ、202・・・・優先権エンコーダ。 第3図 第4図

Claims (1)

  1. 【特許請求の範囲】 プロセッサと、 このプロセッサに処理される情報であつて命令およびオ
    ペランドを含むものを記憶するメモリと、 上記プロセッサに処理される分岐命令の先行アクション
    を記憶する分岐履歴テーブルと、 上記オペランドのうちの特別なものを、上記分岐命令の
    うちの特別なものと上記分岐命令の先行アクションとに
    関連付ける手段と、 上記分岐命令のうちの特別なものと、上記分岐命令の先
    行アクションとの間の特別の関連を判別する手段と、 この特別の関連を記憶する記憶手段と、 上記プロセッサが上記メモリへオペランドを記憶するの
    を監視して、この記憶されている所定のオペランドが上
    記記憶手段中に記憶されている特別のオペランドのうち
    の1つかどうかを判別する手段と、 上記特別の関連に基づいて、上記記憶手段中の所定の分
    岐命令の後続の分岐アクションが上記分岐履歴テーブル
    中の上記所定の分岐命令の分岐アクションと異なるかど
    うかを判別し、異なる場合には上記分岐履歴テーブル中
    の上記所定の分岐命令の分岐アクションを更新する手段
    とを有することを特徴とする分岐命令の結果予測装置。
JP61230238A 1985-10-30 1986-09-30 分岐命令の結果予測装置 Granted JPS62106545A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/793,057 US4763245A (en) 1985-10-30 1985-10-30 Branch prediction mechanism in which a branch history table is updated using an operand sensitive branch table
US793057 2001-02-26

Publications (2)

Publication Number Publication Date
JPS62106545A true JPS62106545A (ja) 1987-05-18
JPH0231419B2 JPH0231419B2 (ja) 1990-07-13

Family

ID=25158963

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61230238A Granted JPS62106545A (ja) 1985-10-30 1986-09-30 分岐命令の結果予測装置

Country Status (4)

Country Link
US (1) US4763245A (ja)
EP (1) EP0227892B1 (ja)
JP (1) JPS62106545A (ja)
DE (1) DE3687744T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01142941A (ja) * 1987-11-30 1989-06-05 Nec Corp 分岐予測テーブルの正当性判定装置

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0258453B1 (en) * 1986-02-28 1993-05-19 Nec Corporation Instruction prefetch control apparatus
JPH06100968B2 (ja) * 1986-03-25 1994-12-12 日本電気株式会社 情報処理装置
US5440704A (en) * 1986-08-26 1995-08-08 Mitsubishi Denki Kabushiki Kaisha Data processor having branch predicting function
JPS6393041A (ja) * 1986-10-07 1988-04-23 Mitsubishi Electric Corp 計算機
JPS6398737A (ja) * 1986-10-15 1988-04-30 Mitsubishi Electric Corp デ−タ処理装置
US5175827A (en) * 1987-01-22 1992-12-29 Nec Corporation Branch history table write control system to prevent looping branch instructions from writing more than once into a branch history table
JPH0743672B2 (ja) * 1987-02-18 1995-05-15 株式会社東芝 メモリ保護違反検出装置
US5247627A (en) * 1987-06-05 1993-09-21 Mitsubishi Denki Kabushiki Kaisha Digital signal processor with conditional branch decision unit and storage of conditional branch decision results
US5134561A (en) * 1987-07-20 1992-07-28 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US4894772A (en) * 1987-07-31 1990-01-16 Prime Computer, Inc. Method and apparatus for qualifying branch cache entries
US4942520A (en) * 1987-07-31 1990-07-17 Prime Computer, Inc. Method and apparatus for indexing, accessing and updating a memory
GB8728493D0 (en) * 1987-12-05 1988-01-13 Int Computers Ltd Jump prediction
US5228131A (en) * 1988-02-24 1993-07-13 Mitsubishi Denki Kabushiki Kaisha Data processor with selectively enabled and disabled branch prediction operation
JPH01271838A (ja) * 1988-04-22 1989-10-30 Fujitsu Ltd マイクロプログラム分岐方法
JP2570859B2 (ja) * 1989-05-25 1997-01-16 日本電気株式会社 データ処理装置
JP2508280B2 (ja) * 1989-07-28 1996-06-19 日本電気株式会社 分岐ヒストリテ―ブル制御方式
US5210831A (en) * 1989-10-30 1993-05-11 International Business Machines Corporation Methods and apparatus for insulating a branch prediction mechanism from data dependent branch table updates that result from variable test operand locations
US5230068A (en) * 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
US5283873A (en) * 1990-06-29 1994-02-01 Digital Equipment Corporation Next line prediction apparatus for a pipelined computed system
US5276882A (en) * 1990-07-27 1994-01-04 International Business Machines Corp. Subroutine return through branch history table
JPH0820950B2 (ja) * 1990-10-09 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチ予測型分岐予測機構
JPH0628184A (ja) * 1991-08-26 1994-02-04 Internatl Business Mach Corp <Ibm> ブランチ予測方法及びブランチプロセッサ
US5649097A (en) * 1991-10-25 1997-07-15 International Business Machines Corporation Synchronizing a prediction RAM
US5333283A (en) * 1991-10-29 1994-07-26 International Business Machines Corporation Case block table for predicting the outcome of blocks of conditional branches having a common operand
US5434986A (en) * 1992-01-09 1995-07-18 Unisys Corporation Interdependency control of pipelined instruction processor using comparing result of two index registers of skip instruction and next sequential instruction
DE69227465T2 (de) * 1992-02-27 1999-06-10 Samsung Electronics Co. Ltd., Suwon, Kyungki Cpu mit pipeline-einheit und effektiv-adressenrechnungseinheit mit möglichkeit zur beibehaltung von virtuellen operandenadressen.
US5507028A (en) * 1992-03-30 1996-04-09 International Business Machines Corporation History based branch prediction accessed via a history based earlier instruction address
US5313634A (en) * 1992-07-28 1994-05-17 International Business Machines Corporation Computer system branch prediction of subroutine returns
US5434985A (en) * 1992-08-11 1995-07-18 International Business Machines Corporation Simultaneous prediction of multiple branches for superscalar processing
US5577217A (en) * 1993-05-14 1996-11-19 Intel Corporation Method and apparatus for a branch target buffer with shared branch pattern tables for associated branch predictions
JP2596712B2 (ja) * 1993-07-01 1997-04-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 近接した分岐命令を含む命令の実行を管理するシステム及び方法
JP2801135B2 (ja) * 1993-11-26 1998-09-21 富士通株式会社 パイプラインプロセッサの命令読み出し方法及び命令読み出し装置
US5574871A (en) * 1994-01-04 1996-11-12 Intel Corporation Method and apparatus for implementing a set-associative branch target buffer
TW345637B (en) * 1994-02-04 1998-11-21 Motorola Inc Data processor with branch target address cache and method of operation a data processor has a BTAC storing a number of recently encountered fetch address-target address pairs.
US5634119A (en) * 1995-01-06 1997-05-27 International Business Machines Corporation Computer processing unit employing a separate millicode branch history table
US5905881A (en) * 1995-11-30 1999-05-18 Unisys Corporation Delayed state writes for an instruction processor
US5794024A (en) * 1996-03-25 1998-08-11 International Business Machines Corporation Method and system for dynamically recovering a register-address-table upon occurrence of an interrupt or branch misprediction
US5867699A (en) * 1996-07-25 1999-02-02 Unisys Corporation Instruction flow control for an instruction processor
US5949995A (en) * 1996-08-02 1999-09-07 Freeman; Jackie Andrew Programmable branch prediction system and method for inserting prediction operation which is independent of execution of program code
US5805877A (en) * 1996-09-23 1998-09-08 Motorola, Inc. Data processor with branch target address cache and method of operation
US6484256B1 (en) * 1999-08-09 2002-11-19 International Business Machines Corporation Apparatus and method of branch prediction utilizing a comparison of a branch history table to an aliasing table
US6772325B1 (en) * 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US6446197B1 (en) 1999-10-01 2002-09-03 Hitachi, Ltd. Two modes for executing branch instructions of different lengths and use of branch control instruction and register set loaded with target instructions
US6546481B1 (en) * 1999-11-05 2003-04-08 Ip - First Llc Split history tables for branch prediction
US20030131345A1 (en) * 2002-01-09 2003-07-10 Chris Wilkerson Employing value prediction with the compiler
US7024663B2 (en) * 2002-07-10 2006-04-04 Micron Technology, Inc. Method and system for generating object code to facilitate predictive memory retrieval
US6954836B2 (en) 2002-07-11 2005-10-11 Micron Technology, Inc. System and method for processor with predictive memory retrieval assist
US8694760B2 (en) * 2009-05-19 2014-04-08 Panasonic Corporation Branch prediction using a leading value of a call stack storing function arguments
GB2578573B (en) * 2018-10-30 2021-09-08 Advanced Risc Mach Ltd Technique for maintaining data values in a prediction register that are used to predict whether a branch represented by a branch instruction will be taken.

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3559183A (en) * 1968-02-29 1971-01-26 Ibm Instruction sequence control
US4155120A (en) * 1977-12-01 1979-05-15 Burroughs Corporation Apparatus and method for controlling microinstruction sequencing by selectively inhibiting microinstruction execution
US4430706A (en) * 1980-10-27 1984-02-07 Burroughs Corporation Branch prediction apparatus and method for a data processing system
JPS57185545A (en) * 1981-05-11 1982-11-15 Hitachi Ltd Information processor
US4594659A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Method and apparatus for prefetching instructions for a central execution pipeline unit
US4691277A (en) * 1984-10-24 1987-09-01 International Business Machines Corp. Small instruction cache using branch target table to effect instruction prefetch
US4679141A (en) * 1985-04-29 1987-07-07 International Business Machines Corporation Pageable branch history table

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01142941A (ja) * 1987-11-30 1989-06-05 Nec Corp 分岐予測テーブルの正当性判定装置

Also Published As

Publication number Publication date
EP0227892B1 (en) 1993-02-10
EP0227892A3 (en) 1989-07-19
JPH0231419B2 (ja) 1990-07-13
US4763245A (en) 1988-08-09
EP0227892A2 (en) 1987-07-08
DE3687744T2 (de) 1993-08-19
DE3687744D1 (de) 1993-03-25

Similar Documents

Publication Publication Date Title
JPS62106545A (ja) 分岐命令の結果予測装置
US4764861A (en) Instruction fpefetching device with prediction of a branch destination for each branch count instruction
KR880002660B1 (ko) 중앙 처리장치
US5276882A (en) Subroutine return through branch history table
JP3542020B2 (ja) 複数予測分岐命令にわたる命令フェッチの位置合わせ命令キャッシュ処理を実行するプロセッサ装置およびプロセッサ制御方法
US5148538A (en) Translation look ahead based cache access
US5530825A (en) Data processor with branch target address cache and method of operation
US4594659A (en) Method and apparatus for prefetching instructions for a central execution pipeline unit
US6247124B1 (en) Branch prediction entry with target line index calculated using relative position of second operation of two step branch operation in a line of instructions
EP0107449B1 (en) Computer with multiple operating systems
US5423011A (en) Apparatus for initializing branch prediction information
US5896529A (en) Branch prediction based on correlation between sets of bunches of branch instructions
US4942520A (en) Method and apparatus for indexing, accessing and updating a memory
US6081887A (en) System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction
EP0480193A2 (en) Multi-prediction branch prediction mechanism
EP0394624B1 (en) Multiple sequence processor system
EP0429790A2 (en) Methods and apparatus for insulating a branch prediction mechanism from data dependent branch table updates
KR20090061075A (ko) 가변 길이 명령 세트 실행 모드들을 가지는 프로세서 내의 bht의 효율적 사용방법
US11442727B2 (en) Controlling prediction functional blocks used by a branch predictor in a processor
CA1243124A (en) Look-ahead instruction fetch control for a cache memory
JP3486690B2 (ja) パイプライン方式プロセッサ
JPH1040104A (ja) 分岐命令の結果予測装置及び方法
JP3725547B2 (ja) 限定ラン分岐予測
EP0423726A2 (en) Branch control circuit
US6978361B2 (en) Effectively infinite branch prediction table mechanism