JPS61175733A - 分岐予測制御方式 - Google Patents

分岐予測制御方式

Info

Publication number
JPS61175733A
JPS61175733A JP1588585A JP1588585A JPS61175733A JP S61175733 A JPS61175733 A JP S61175733A JP 1588585 A JP1588585 A JP 1588585A JP 1588585 A JP1588585 A JP 1588585A JP S61175733 A JPS61175733 A JP S61175733A
Authority
JP
Japan
Prior art keywords
branch
instruction
address
register
buffer
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
JP1588585A
Other languages
English (en)
Inventor
Tadao Kondo
近藤 忠男
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP1588585A priority Critical patent/JPS61175733A/ja
Publication of JPS61175733A publication Critical patent/JPS61175733A/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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は分岐命令の高速化を図る分岐予測制御方式に関
する。
〔従来の技術〕
分岐命令の高速化技術として、分岐命令の履歴を記憶し
、過去の結果を基に分岐成功/不成功及び分岐先を予測
する方法がある。(例えばI BEECOMPUTE&
 1984 1月号 P6〜P22)〔発明が解決しよ
うとする問題点〕 上述した分岐予測は分岐命令を含む命令語アドレスと、
該分岐命令の分岐先アドレスとを保持する分岐ヒストリ
バッファを設け、命令取出時に取出し命令中に分岐命令
を含む場合、分岐先アドレスを得るものである。この分
岐予測バッファでは分岐命令実行時、予測が失敗する度
にその結果に基づき内容が修正されている。
ところが7オートランプログラムのDOループなどで使
用されるループ制御用分岐命令では、そのループが再度
使用される場合、やはシ分岐成功の確率が高い。従って
、ループを抜は出るとき、分岐予測が失敗(成功を予測
したが実際は分岐失敗)シ、分岐予測バッファを更新し
てしまうと、再度このループを実行する場合、予測は再
度失敗するという欠点がある。
〔問題点を解決するための手段〕
すなわち本発明の分岐予測制御方式では、ループ制御用
の分岐命令においては、分岐不成功時。
分岐予測バッファの対応するエントリの内容を無効化し
ないことに特徴がある。
〔実施例〕
次に本発明について図面を参照して詳細に説明する。
第1図を参照すると、本発明の一実施例は外部から与え
られる仮想アドレスを格納する仮想アドレスレジスタ1
、このレジスタ1からのアドレスおよび取出命令アドレ
スKrtJを加算したアドレスとのどちらか一方を選択
して出力する切替回路2、この切換回路2からの出力の
うち下位ビットによシ指定された位置に分岐命令のアド
レスを格納する分岐ヒストリバッファ(K) 3 、前
記下位ビットによシ指定された位置に分岐先アドレスを
保持する分岐ヒストリバッフ、(”14.分岐ヒストリ
バッファ(K)3の内容と前記レジスタ1からのアドレ
スとを比較する比較回路5および6、この比較回路5お
よび6のどちらか一方の一致検出に応答して分岐ヒスト
リバッファ(D)4の出力を選択出力する切替回路7、
アトア命令によるメモリへの書込アドレスを保持するス
トアアドレスレジスタ8、取出した命令のアドレス範囲
のうち上限のアドレスを保時する取出命令アドレスレジ
スタ9、このアドレス範囲のうち少なくとも1組の下限
のアドレスを保持する取出命令アドレスレジスタ10、
このレジスタ10の内容にrllを加算するカウンタ1
1、前記レジスタ8からのアドレスおよび前記レジスタ
9からのアドレスを比較する比較回路l 2.前記レジ
スタ8からのアドレスおよび前記レジスタlOからのア
ドレスを比較する比較回路13、およびこれら比較回路
12および13の出力の論理積をとるアンドゲート14
から構成されている。前記レジスタlO紘レジスタフィ
ルタで構成されてもよい。
次に本発明の一実施例の動作を詳細に説明する。
命令取出のために生成された仮想アドレスはキャッシュ
メモリ(ここでは図示されていない)K送出されると同
時に仮想アドレスレジスタIKセットされる。仮想アド
レスレジスタ1の出力は切替回路2を通し、分岐命令の
アドレスを保持する分岐ヒストリバッファ([Q3およ
び分岐先アドレスを保持する分岐ヒストリバッファβ4
に供給される。
アドレスレジスタlの内容によシ取出そうとする命令が
以前の取出して分岐命令を含みかつその分岐命令が条件
分岐成功または無条件分岐の場合、分岐先アドレスが分
岐予測バッファ4よシ得られる。分岐予測バッファ3お
よび4は2レベルで構成される。比較回路5もしくは6
のどちらで取出アドレスの一致が検出されたかによシ、
分岐ヒストリバ、77◎の出力が切替回路7によシ選択
され、分岐予測ビット信号とともに送出される。この分
岐予測アドレス出力を用い命令取出することによ)分岐
先命令語の取出しが高速化され、分岐命令の実行が高速
処理されることになる。
仮想アドレスレジスタIKセットされた命令取出アドレ
スはさらに取出した命令のアドレス範囲を保持する取出
命令アドレスレジスタ9および10に送出される。分岐
先の先頭命令の取出し時には両方のレジスタに取出アド
レスがセットされるが、2回目以降の取出しでは、取出
命令アドレスレジスタ([J)9にのみセットされる。
一方、取出した命令が一命令実行される度に取出命令ア
ドレスレジスタ(L)10の内容はカウンタ11を通し
て1が加算される。これによ〕取出した命令のアドレス
の上限と下限が保持される。ストアアドレスレジスタ8
はストア命令によるメモリへの書込アドレスを保持する
。このストアアドレスと取出した命令の範囲とは比較回
路12および13によシチェ。
りされ、先取シした命令語の先行するストア命令による
書替があったかどうかが検出される。もし書替が検出さ
れた場合、命令の取出し直しから処理を再開する。取出
した命令を保持する命令バ。
7アおよび取出命令アドレスレジスタ9および10は、
分岐命令高速化のために3組用意されておシ、分岐命令
によシ命令ストリームが変更される度に他の組を使用す
るよう制御される。
分mヒストリバッファにセットキれていない分岐命令の
セットは次のように行なわれる。条件分岐成功または無
条件分岐命令の対応エントリが分岐予測バッファ9およ
びIOKない場合、分岐命令実行時に1分岐命令自身の
アドレスが取出命令アドレスレジスタ(L)10から仮
想アドレスレジスタ1にセットされる。次に該分岐命令
のアドレス計算によシ取出命令アドレスレジスター10
のレジスタファイル中の別のレジスタにセットされた分
岐先アドレスが取出され、仮想アドレスレジスタlで指
定された分岐予測バッファ(D)4にセットされるとと
もに1分岐予測バッファ(K)3に仮想アドレスレジス
タ1の内容がセットされる。2レベルの予測バッファの
どちらのレベルにセットするかは公知のリプレースメン
トアルゴリズムが使用される。
一方分岐予側バッ7ア9.IOK既にセットされた内容
が:命令の書替によ多分岐命令で無くなった、分岐先ア
ドレスが変更された、分岐成功が失敗に変ったなどの理
由で不正とな、った場合、分岐予測バッファ(K)3中
の有効性表示ピッ)(Vビット)のリセットが行なわれ
対応エントリの無効化が図られる。しかしFOR,T 
R,ANプログラムなどで用いられるDOループの制御
用分岐命令は、同一ループの多数回使用があるので、た
とえ分岐不成功であっても、対応エントリをリセットし
ない。
すなわち、DOループを抜は出すときに必ず分岐予測は
失敗するが、この時毎回分岐ヒストリバッファの対応エ
ントリを無効化すると、再度このループを使用する時に
も分岐予測失敗となってしまい、性能が低下するからで
ある。
第2図を参照すると、分岐予測時の性能が従来方式と比
較される。分岐予測成功時には、分岐命令実行時間が大
幅に改善されている。従来方式では条件分岐命令の演算
サイクルで、分岐成功/不成功が判断される。分岐成功
の場合状のサイクルから分岐先命令のアドレス計算サイ
クルが開始されるため、分岐命令の実行完了(Eサイク
ル終了)から分岐先命令のEサイクル終了まで4マシン
サイクル必要である。一方分岐予測を行った場合、分岐
命令の取出PIプサイルで分岐予測バッファを索引する
ことによシ、取出した命令に分岐成功予予測の分岐命令
を含む場合には分岐先アドレスを得ることができる。こ
のアドレスを用いて分岐先命令の取出およびデコードが
行われ、分岐命令のEサイクルの次のサイクルで、分岐
先命令が実行されることによ〕、本例のパイプライン構
造の場合、従来方式に比し分岐命令の実行時間が4倍高
速化される。
〔発明の効果〕
本発明には、ループ制御用の分岐命令では分岐不成功時
分舷予測バッファの対応するエン) I)を無効化しな
いことkよ多分岐命令の性能を改善できるという効果が
ある。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、および第2図は分
岐予測の効果を示す図である。 第1図および第2図において、1・・・・・・仮想アド
レスレジスタ、2,7・・・・・・切替回路、3・・・
・・・分岐予測バッファ(転)、4・・・・・・分岐予
測バッファ(至)、5゜6.12.13・・・・・・比
較回路、8・・・・・・ストアアドレスレジスタ、9・
・・・・・取出命令アドレスレジスタ(ロ)、lO・・
・・・・散出命令アドレスレジスター、11・・・・・
・カウンタ。 A : アトし又it璋“ソ”イフル I ニ アトしス+□i+1イクル C: キ4ツシェア7七又ブイ1ノし E : 殉」賽′す′イクル 4イ9  2   膠d

Claims (1)

  1. 【特許請求の範囲】 分岐命令のアドレスと、該分岐命令の分岐先アドレスを
    保持する分岐ヒストリバッファを備えた情報処理装置で
    あって、 ループ制御用の分岐命令においては、分岐不成功時前記
    分岐ヒストリバッファの対応するエントリの内容を無効
    化しないことを特徴とする分岐予測制御方式。
JP1588585A 1985-01-30 1985-01-30 分岐予測制御方式 Pending JPS61175733A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1588585A JPS61175733A (ja) 1985-01-30 1985-01-30 分岐予測制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1588585A JPS61175733A (ja) 1985-01-30 1985-01-30 分岐予測制御方式

Publications (1)

Publication Number Publication Date
JPS61175733A true JPS61175733A (ja) 1986-08-07

Family

ID=11901245

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1588585A Pending JPS61175733A (ja) 1985-01-30 1985-01-30 分岐予測制御方式

Country Status (1)

Country Link
JP (1) JPS61175733A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63303432A (ja) * 1987-01-22 1988-12-12 Nec Corp 分岐ヒストリテーブル書込制御方式
JPH01296341A (ja) * 1988-05-25 1989-11-29 Nec Corp データ処理装置
US6754813B1 (en) 1999-08-24 2004-06-22 Fujitsu Limited Apparatus and method of processing information for suppression of branch prediction

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63303432A (ja) * 1987-01-22 1988-12-12 Nec Corp 分岐ヒストリテーブル書込制御方式
JPH01296341A (ja) * 1988-05-25 1989-11-29 Nec Corp データ処理装置
US6754813B1 (en) 1999-08-24 2004-06-22 Fujitsu Limited Apparatus and method of processing information for suppression of branch prediction

Similar Documents

Publication Publication Date Title
US4477872A (en) Decode history table for conditional branch instructions
US4725947A (en) Data processor with a branch target instruction storage
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
JPH0283735A (ja) 命令先取り装置
JPS6234242A (ja) デ−タ処理システム
JPS6125169B2 (ja)
JPH08320788A (ja) パイプライン方式プロセッサ
US3553655A (en) Short forward conditional skip hardware
JPS61175733A (ja) 分岐予測制御方式
JP3723019B2 (ja) サブルーチンリターン相当の命令の分岐予測を行う装置および方法
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JP2534662B2 (ja) 命令キヤツシユ制御方法
JP2581565B2 (ja) ガード付命令を実行するデータ処理装置
JPH046983B2 (ja)
JP2542565B2 (ja) 分岐予測制御方式
JPH04245334A (ja) 情報処理装置の命令先読み制御方式
JPS59183434A (ja) 命令先取り制御方式
JPS62159230A (ja) 命令先取り装置
JPH06301537A (ja) 命令フェッチ回路
JPS623341A (ja) 条件付制御方法
JPH0612256A (ja) 命令キャッシュ制御方式
JPS62159231A (ja) 命令先取り装置
JPH01296343A (ja) データ処理装置
JPH03177926A (ja) 情報処理装置
JPS62159232A (ja) 命令先取り装置