JPH10105401A - プロセッサの分岐命令予測装置 - Google Patents

プロセッサの分岐命令予測装置

Info

Publication number
JPH10105401A
JPH10105401A JP25825996A JP25825996A JPH10105401A JP H10105401 A JPH10105401 A JP H10105401A JP 25825996 A JP25825996 A JP 25825996A JP 25825996 A JP25825996 A JP 25825996A JP H10105401 A JPH10105401 A JP H10105401A
Authority
JP
Japan
Prior art keywords
branch
instruction
prediction
branch instruction
result
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
JP25825996A
Other languages
English (en)
Inventor
Haruko Nishimoto
晴子 西本
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 JP25825996A priority Critical patent/JPH10105401A/ja
Publication of JPH10105401A publication Critical patent/JPH10105401A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 パイプライン接続されたプロセッサにおい
て、分岐命令の先行実行を行うため、分岐予測するプロ
セッサの分岐命令予測装置に関し、より正確な分岐予測
を行う。 【解決手段】 命令メモリ1の命令をフェッチするフェ
ッチ回路2と、フェッチ回路2の命令をデコードするデ
コード回路3と、デコードされた命令を実行する実行回
路4とが、パイプライン接続されてなり、命令の先行実
行を行うプロセッサのための分岐命令予測装置5におい
て、分岐命令の過去の実行結果に基づいて、第1の予測
方式により、次の命令を予測するための第1の予測機構
と、分岐命令の過去の実行結果に基づいて、第2の予測
方式により、次の命令を予測するための第2の予測機構
と、予測結果と分岐命令の実行結果との比較結果に応じ
て、第1の予測機構又は第2の予測機構とを選択する選
択機構とを有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パイプライン接続
されたプロセッサにおいて、分岐命令の先行実行を行う
ため、分岐予測するプロセッサの分岐命令予測装置に関
する。
【0002】マイクロプロセッサ等のプロセッサにおい
て、命令を先行実行するパイプライン構成を採用してい
る。この命令の中に、分岐命令がある。分岐命令の次の
命令を予測する分岐予測装置を有しないプロセッサにお
いては、分岐命令による制御ハザードが、プロセッサの
性能に大きな影響を与える。
【0003】分岐予測装置を有しないプロセッサでは、
分岐命令の次の命令は、分岐不成立と見積もった時と同
じ命令(連続するアドレスの命令)をフェッチする。分
岐命令が成立だった場合には、パイプラインに乱れが生
じて、全体性能に悪影響を及ぼしていた。
【0004】このように、命令を先取りして、命令を先
行実行するプロセッサにおいては、分岐命令によるオー
バーヘッドは、非常に致命的である。このため、分岐命
令の次の命令を予測する分岐予測装置が、プロセッサに
設けられている。この分岐予測装置では、分岐命令の分
岐先の予測を行い、分岐先の命令をフェッチする。
【0005】しかし、分岐予測装置を設けても、分岐予
測が外れてしまった場合には、分岐命令後に、先行実行
していた全ての命令をキャンセルして、新たに命令をフ
ェッチしなおす必要がある。このため、全体性能に悪影
響を与えないように、分岐予測をなるべく外すことな
く、命令を先行実行していくことが必要となる。
【0006】
【従来の技術】図6は、従来技術の構成図、図7は従来
の予測回路の構成図、図8は分岐命令の説明図、図9は
従来の分岐予測手法の説明図である。
【0007】図6に示すように、プロセッサは、命令を
格納する命令メモリ1と、命令メモリ1の命令をフェッ
チするフェッチ回路2と、フェッチされた命令をデコー
ドするデコード回路3と、デコードされた命令を実行す
る実行回路4とを有する。
【0008】フェッチ回路2と、デコード回路3と、実
行回路4とは、パイプライン接続され、命令を先行実行
する。フェッチ回路2は、命令を先取りするため、命令
メモリ1に命令アドレスを送出する命令カウンタ(プロ
グラムカウンタ)7を有している。
【0009】命令予測回路5は、命令カウンタ7の命令
アドレスが、分岐命令か否かを判定する。そして、分岐
命令で、且つ分岐すると予測した場合には、分岐先の予
測アドレスを、命令カウンタ7に送出する。分岐命令で
も、分岐しないと予測した場合には、命令アドレスを1
インクリメントする。
【0010】比較回路6は、命令予測回路5の分岐予測
結果(分岐するかしないか)と、実行回路4の実行結果
とを比較して、命令予測回路5を制御する(特開平3−
262040号公報参照の事)。
【0011】このような構成のプロセッサにおいて、命
令カウンタ7は、命令アドレスを命令メモリ1に送出す
る。これとともに、その命令アドレスが、命令予測回路
5で、分岐命令か否かが判断される。分岐命令でなけれ
ば、命令カウンタ7の命令アドレスは、1インクリメン
トされる。
【0012】命令カウンタ7の命令アドレスが、分岐命
令であり、分岐すると予測した場合には、命令予測回路
5は、その命令アドレスに対する分岐先予測アドレスを
出力する。そして、命令カウンタ7にこの分岐先予測ア
ドレスをロードして、命令メモリ1をアクセスさせる。
【0013】一方、命令予測回路5が、分岐しないと予
測した場合には、命令カウンタ7は、アドレスを1イン
クリメントする。
【0014】比較回路6は、命令予測回路5からの分岐
予測結果と、実行回路4からの分岐命令の実行結果を比
較する。そして、分岐予測結果と実行結果が、一致して
いれば、なにも制御しない。
【0015】一方、比較回路6は、分岐予測結果と実行
結果が不一致の場合には、命令カウンタ7を制御して、
実行回路4の実行結果に伴う新たな命令アドレスをセッ
トしなおす。そして、先行実行していた命令の実行をキ
ャンセルする。
【0016】図7に示すように、従来の命令予測回路5
は、分岐命令の命令アドレスに対する分岐先予測アドレ
スと、分岐状態(分岐する又はしない)とを格納した分
岐先ターゲットバッファ50を有している。この分岐先
ターゲットバッファ50には、分岐命令の命令アドレス
が登録されている。
【0017】フェッチされた命令アドレスは、比較回路
51により、分岐先ターゲットバッファ50に登録され
た命令アドレスと比較され、分岐命令か否かが判定され
る。その結果は、命令カウンタ7に通知され、命令カウ
ンタ7は、これにより制御される。
【0018】比較回路51により、分岐命令と判定され
ると、参照回路52が、分岐先ターゲットバッファ50
の分岐予測状態を読みだす。分岐予測状態が、分岐する
と予測している時は、その命令アドレスに対する分岐先
予測アドレスを読みだす。一方、分岐予測状態が分岐し
ないと予測している場合には、分岐しないとの分岐予測
状態を、命令カウンタ7に出力する。
【0019】従来の分岐予測方法としては、分岐状態を
1ビット持つ1ビット分岐予測法が知られている。この
1ビット分岐予測法では、分岐先ターゲットバッファ5
0に登録されている各々の分岐命令の命令アドレスに対
し、この分岐命令は、分岐するかしないかという状態を
1ビット分(2状態)持つものである。
【0020】例えば、図8のプログラムの例では、命令
アドレス「0010」の命令が、分岐命令であり、分岐
する場合には、アドレス「0030」に分岐し、分岐し
ない場合には、アドレス「0011」に進む。このよう
な場合に、分岐すると予測すると、図7に示すように、
命令アドレス「0010」に対し、分岐先予測アドレス
として「0030」が、分岐状態として「1」(分岐す
る)が格納される。
【0021】そして、図9(A)に示すように、実行結
果との照合による予測の当たり外れにより、分岐予測状
態を更新するものである。例えば、分岐状態が、「1」
(分岐する)を予測していた場合に、実行結果が、分岐
しなかった場合には、分岐状態は、「0」(分岐しな
い)に変更される。
【0022】逆に、分岐状態が、「0」(分岐しない)
を予測していた場合に、実行結果が、分岐した場合に、
分岐状態は、「1」(分岐する)に変更される。このた
め、図7に示すように、分岐先ターゲットバッファ50
の分岐状態を、比較結果に応じて変更する状態更新回路
53が設けられている。
【0023】他の従来の分岐予測方法として、分岐する
かしないかの状態を2ビット分(4状態)持つ2ビット
分岐予測法が知られている。図9(B)に示すように、
「00」(分岐しない)、「01」(分岐しない)、
「10」(分岐する)、「11」(分岐する)という4
状態で分岐予測を行う。
【0024】そして、図9(B)に示すように、実行結
果との照合による予測の当たり外れにより、分岐予測状
態を更新するものである。例えば、分岐状態が、「1
1」(分岐する)を予測していた場合に、実行結果が、
分岐しなかった場合には、分岐状態は、「10」(分岐
する)に変更される。分岐状態が、「10」(分岐す
る)を予測していた場合に、実行結果が、分岐しなかっ
た場合には、分岐状態は、「01」(分岐しない)に変
更される。
【0025】逆に、分岐状態が、「00」(分岐しな
い)を予測していた場合に、実行結果が、分岐した場合
に、分岐状態は、「01」(分岐しない)に変更され
る。分岐状態が、「01」(分岐しない)を予測してい
た場合に、実行結果が、分岐した場合に、分岐状態は、
「10」(分岐する)に変更される。
【0026】このような、従来の分岐予測回路は、分岐
予測結果が正解か不正解により、次の分岐を予測する1
種類の分岐予測手法をもちいて、分岐予測するものであ
った。
【0027】
【発明が解決しようとする課題】しかしながら、従来技
術では、次の問題が生じていた。
【0028】第1に、従来の分岐予測装置は、1種類の
分岐予測手法しか搭載していないため、分岐予測の正解
確率に限りがあった。
【0029】第2に、プログラムによっては、分岐予測
の正解率が低下して、パイプラインの乱れが生じてい
た。このため、プロセッサの実行速度を低下させてい
た。
【0030】本発明の目的は、より正確な分岐予測を行
うためのプロセッサの分岐命令予測装置を提供すること
にある。
【0031】本発明の他の目的は、簡易な方法で、正確
な分岐予測を行うためのプロセッサの分岐命令予測装置
を提供することにある。
【0032】
【課題を解決するための手段】図1は、本発明の原理図
である。
【0033】図1に示すように、プロセッサは、命令メ
モリ1の命令をフェッチするフェッチ回路2と、前記フ
ェッチ回路2の命令をデコードするデコード回路3と、
前記デコードされた命令を実行する実行回路4とが、パ
イプライン接続されてなり、命令の先行実行を行う。
【0034】分岐命令予測装置5は、分岐命令の過去の
実行結果に基づいて、第1の予測方式により、次の命令
を予測するための第1の予測機構と、分岐命令の過去の
実行結果に基づいて、第1の予測方式と異なる第2の予
測方式により、次の命令を予測するための第2の予測機
構と、予測結果と分岐命令の実行結果との比較結果に応
じて、前記第1の予測機構又は第2の予測機構とを選択
する選択機構とを有するものである。
【0035】本発明では、異なる分岐予測方式により分
岐予測する複数の予測機構を設け、予測結果と実行結果
の比較により、予測機構を選択するため、分岐予測を正
確に行うことができる。例えば、一方の予測機構による
分岐予測の正解率が低い場合に、他方の予測機構による
分岐予測に切り換える等、正解率の高い最適の予測方式
に動的に変更できる。
【0036】このため、分岐予測の正解率が向上して、
パイプラインの乱れを最小限とすることができ、プロセ
ッサの全体性能を向上することができる。
【0037】
【発明の実施の形態】図2は本発明の一実施の形態の構
成図、図3は本発明の一実施形態の分岐予測手法の説明
図、図4は本発明の一実施形態の分岐予測手法選択の説
明図、図5は本発明の一実施形態のグローバルヒストリ
ーテーブルの説明図である。
【0038】図2は、図1に示す分岐命令予測回路5の
みを示している。分岐先ターゲットバッファ10は、各
分岐命令の命令アドレスに対応して、その分岐命令の現
在行っている分岐予測方式を示す3ビットの分岐予測方
式データと、その分岐命令の過去4回分の分岐予測の結
果(比較結果)を示す4ビットの分岐予測結果データ
と、過去8回分の実際に分岐した分岐結果を示す8ビッ
トのローカルヒストリーと、従来の2ビット予測におけ
る分岐先予測アドレスと、従来の2ビット予測における
2ビットの予測状態を保持する。
【0039】即ち、図7の従来の分岐先ターゲットバッ
ファ50に対し、この実施の形態の分岐先ターゲットバ
ッファ10は、分岐命令の現在行っている分岐予測方式
を示す3ビットの分岐予測方式データと、その分岐命令
の過去4回分の分岐予測の結果(比較結果)を示す4ビ
ットの分岐予測結果データと、過去8回分の実際に分岐
した分岐結果を示す8ビットのローカルヒストリーと
が、付加されている。
【0040】この内、分岐予測方式は、図3に示すよう
に、従来の2ビット予測方式(「000」)の他に、後
述するローカルヒストリーを用いた分岐予測方式(「0
01」)、グローバルヒストリーを用いた分岐予測方式
(「010」)、ローカルヒストリーとグローバルヒス
トリーとを組み合わせた分岐予測方式(「011」)、
グローバルヒストリーとローカルヒストリーとを組み合
わせた分岐予測方式(「100」があり、合計5種類の
分岐予測方式が存在する。
【0041】比較回路11は、フェッチされた命令アド
レスと、分岐先ターゲットバッファ10の命令アドレス
とを比較して、分岐命令を探すものである。参照回路1
2は、比較回路11により、分岐命令と判定された命令
アドレスの現在の分岐予測方式を参照するものである。
【0042】アドレス生成回路13は、現在の分岐予測
方式により、テーブルの参照アドレスを生成するもので
ある。参照アドレスの生成については、後述する。グロ
ーバルヒストリーカウンタ14は、分岐命令がそこに到
るまでのパス情報を格納する。例えば、図5に示すよう
に、プログラム上の一連の分岐命令が、分岐した(ta
ken:1)か、分岐しないか(not taken:
0)かという情報を8ビット分保持し、分岐命令の実行
結果毎に更新して、シフトして、保持する。
【0043】ローカルヒストリテーブル15は、現在の
分岐予測方式がローカルヒストリ−を用いた分岐予測を
示している時(「001)である時)に、使用される。
図4に示すように、ローカルヒストリーテーブル15
は、参照アドレスに対する分岐先アドレスと2ビットの
分岐予測状態(分岐するかしないか)の参照テーブルで
ある。
【0044】このローカルヒストリーテーブル15は、
各命令アドレス毎に、8ビットのローカルヒストリーデ
ータに応じて256通り作成される。従って、その命令
アドレスのローカルヒストリーテーブル15は、その命
令アドレスのローカルヒストリデータを参照アドレスと
して、分岐予測状態と分岐先アドレスが参照される。
【0045】グローバルヒストリテーブル16は、現在
の分岐予測方式がグローバルヒストリ−を用いた分岐予
測を示している時に、使用される。図4に示すように、
グローバルヒストリーテーブル16は、参照アドレスに
対する分岐先アドレスと2ビットの分岐予測状態(分岐
するかしないか)の参照テーブルである。
【0046】このグローバルヒストリーテーブル16
は、各命令アドレス毎に、8ビットのグローバルヒスト
リーデータに応じて256通り作成される。従って、そ
の命令アドレスのグローバルヒストリーテーブル16
は、その命令アドレスのグローバルヒストリデータを参
照アドレスとして、分岐予測状態と分岐先アドレスが参
照される。
【0047】ローカル+グローバルヒストリテーブル1
7は、現在の分岐予測方式がローカル+グローバルヒス
トリ−を用いた分岐予測を示している時に、使用され
る。図4に示すように、ローカル+グローバルヒストリ
ーテーブル17は、参照アドレスに対する分岐先アドレ
スと2ビットの分岐予測状態(分岐するかしないか)の
参照テーブルである。
【0048】このローカル+グローバルヒストリーテー
ブル17は、各命令アドレス毎に、8ビットのローカル
ヒストリーデータと8ビットのグローバルヒストリデー
タに応じて2562 通り作成される。従って、その命令
アドレスのローカル+グローバルヒストリーテーブル1
7は、その命令アドレスのローカルヒストリデータとグ
ローバルヒストリーデータを参照アドレスとして、分岐
予測状態と分岐先アドレスが参照される。
【0049】グローバル+ローカルヒストリテーブル1
8は、現在の分岐予測方式がグローバル+ローカルヒス
トリ−を用いた分岐予測を示している時に、使用され
る。図4に示すように、グローバル+ローカルヒストリ
ーテーブル18は、参照アドレスに対する分岐先アドレ
スと2ビットの分岐予測状態(分岐するかしないか)の
参照テーブルである。
【0050】このグローバル+ローカルヒストリーテー
ブル18は、各命令アドレス毎に、8ビットのグローバ
ルヒストリーデータと8ビットのローカルヒストリーデ
ータに応じて2562 通り作成される。従って、その命
令アドレスのグローバル+ローカルヒストリーテーブル
18は、その命令アドレスのグローバルヒストリデータ
とローカルヒストリデータとを参照アドレスとして、分
岐予測状態と分岐先アドレスが参照される。
【0051】状態更新回路19は、前述した比較回路6
(図1参照)からの比較結果により、4ビットの比較結
果データをシフトして、更新する。状態更新回路20
は、比較回路6の比較結果に応じて、2ビット予測の分
岐予測状態を更新する。
【0052】変更回路21は、4ビットの比較結果と、
「0000」とを比較して、分岐予測方式データを変更
する。比較結果は、分岐予測が成立した時は、「1」、
分岐予測が不成立の時は、「0」が格納される。従っ
て、過去4回連続して、分岐予測が不成立であった時
に、分岐予測方式データが、「1」インクリメントさ
れ、変更される。
【0053】例えば、図3に示すように、現在の分岐予
測方式が、2ビット予測方式(「000」であり、過去
4回連続して、分岐予測が不成立であった時には、分岐
予測方式データが「1」インクリメントされ、「00
1」(ローカルヒストリを用いた予測)に変更される。
【0054】以下、同様にして、現在の分岐予測方式
が、ローカルヒストリーを用いた予測方式(「00
1」)であり、過去4回して、分岐予測が不成立であっ
た時は、グローバルヒストリーを用いた予測方式(「0
10」)に変更される。
【0055】次に、図2の動作を、図3乃至図5を用い
て、説明する。
【0056】比較回路11は、フェッチされた命令アド
レスと、分岐先ターゲットバッファ10の命令アドレス
とを比較して、分岐命令を探す。参照回路12は、比較
回路11により、分岐命令と判定された命令アドレスの
現在の分岐予測方式を参照する。アドレス生成回路13
は、現在の分岐予測方式により、テーブルの参照アドレ
スを生成するものである。
【0057】即ち、アドレス生成回路13は、現在の分
岐予測方式が、2ビット予測方式(「000」)を示し
ている時は、フェッチした命令アドレスから分岐先ター
ゲットバッファ10の2ビット予測状態を参照し、その
予測アドレスを参照する。従って、過去の比較結果に応
じた分岐予測が行われる。
【0058】アドレス生成回路13は、現在の分岐予測
方式が、ローカルヒストリーテーブルを用いた分岐予測
方式(「001」)を示している時は、フェッチした命
令アドレスに対応するローカルヒストリテーブル15を
指示し、且つ分岐先ターゲットバッファ10の8ビット
のローカルヒストリーデータを参照アドレスとして、ロ
ーカルヒストリテーブル15の2ビット予測状態を参照
し、その予測アドレスを参照する。従って、その分岐命
令の分岐した結果に応じた分岐予測が行われる。
【0059】アドレス生成回路13は、現在の分岐予測
方式が、グローバルヒストリーテーブルを用いた分岐予
測方式(「010」)を示している時は、フェッチした
命令アドレスに対応するグローバルヒストリテーブル1
6を指示し、且つグローバルヒストリーカウンタ14の
8ビットのグローバルヒストリーデータを参照アドレス
として、グローバルヒストリテーブル16の2ビット予
測状態を参照し、その予測アドレスを参照する。従っ
て、その分岐命令に到る履歴に応じた分岐予測が行われ
る。
【0060】アドレス生成回路13は、現在の分岐予測
方式が、ローカル+グローバルヒストリーテーブルを用
いた分岐予測方式(「011」)を示している時は、フ
ェッチした命令アドレスに対応するローカル+グローバ
ルヒストリテーブル17を指示し、且つ8ビットのロー
カルヒストリデータを前に、グローバルヒストリーカウ
ンタ14の8ビットのグローバルヒストリーデータを後
にした16ビットの参照アドレスにより、ローカル+グ
ローバルヒストリテーブル17の2ビット予測状態を参
照し、その予測アドレスを参照する。従って、その分岐
結果とその分岐命令に到る履歴とを組み合わせた分岐予
測が行われる。
【0061】アドレス生成回路13は、現在の分岐予測
方式が、グローバル+ローカルヒストリーテーブルを用
いた分岐予測方式(「100」)を示している時は、フ
ェッチした命令アドレスに対応するグローバル+ローカ
ルヒストリテーブル18を指示し、且つ8ビットのグロ
ーバルヒストリデータを前に、8ビットのローカルヒス
トリーデータを後にした16ビットの参照アドレスによ
り、グローバル+ローカルヒストリテーブル18の2ビ
ット予測状態を参照し、その予測アドレスを参照する。
従って、その分岐結果とその分岐命令に到る履歴とを組
み合わせた分岐予測が行われる。
【0062】そして、分岐命令の予測結果と、実行され
た分岐命令の実行結果の比較結果は、過去4回分順次分
岐先ターゲットバッファ10の比較結果データとして、
保持される。この比較結果データは、更新毎に、変更回
路21により、4回連続して、予測が不成立か否かが判
定される。そして、分岐命令の比較結果が、4回連続し
て、不成立なら、分岐先ターゲットバッファ10の分岐
予測方式データが、図3に示すように、順次変更され
る。
【0063】このようにして、過去の分岐命令の比較結
果に応じて、過去の比較結果を元にした2ビット予測方
式、過去の分岐結果を元にしたローカルヒストリー予測
方式、その分岐命令に到るパス情報を元にしたグローバ
ルヒストリー予測方式、過去の分岐結果とその分岐命令
に到るパス情報を元にしたローカル+グローバル及びグ
ローバル+ローカルヒストリー予測方式が選択される。
【0064】即ち、過去の分岐命令の比較結果に応じ
て、異なる分岐予測方式が選択されることになる。この
ため、プログラムに適した分岐予測方式が選択されるた
め、分岐予測の正解確率が高くなる。分岐命令の正確確
率が高くなるため、命令の先行実行を積極的に行って
も、パイプラインの乱れを最小限にでき、プロセッサの
実行能力を高めることができる。
【0065】又、過去の比較結果を元にした2ビット予
測方式、過去の分岐結果を元にしたローカルヒストリー
予測方式、その分岐命令に到るパス情報を元にしたグロ
ーバルヒストリー予測方式、過去の分岐結果とその分岐
命令に到るパス情報を元にしたローカル+グローバル及
びグローバル+ローカルヒストリー予測方式という異な
る種類の予測方式を適用できるため、プログラムに対す
る分岐命令の分岐予測の正確確率の高い予測方式を自動
的に適用できる。
【0066】更に、過去の分岐命令の比較結果を複数回
保持して、複数回の結果を元に分岐予測方式を選択して
いるため、正解率の高い分岐予測方式を選択することが
できる。
【0067】しかも、各分岐命令に応じた分岐予測方式
を適用しているため、各分岐命令の振る舞いに応じた、
分岐予測が可能となり、各分岐命令に対し、正確な分岐
予測が可能となる。
【0068】上述の実施の態様の他に、本発明は、次の
ような変形が可能である。
【0069】前述の実施の態様では、5種類の分岐予
測方式を選択できるようにした例で説明したが、最低2
種類の分岐予測方式を選択できるようなものであれば良
く、実施の態様のものに限られない。
【0070】プロセッサを、フェッチ、デコード、実
行の3ステージのもので説明したが、それ以上のステー
ジを有するものにも適用できる。
【0071】以上、本発明を実施の形態により説明した
が、本発明の主旨の範囲内で種々の変形が可能であり、
これらを本発明の範囲から排除するものではない。
【0072】
【発明の効果】以上説明したように、本発明によれば、
次の効果を奏する。
【0073】分岐予測方式の異なる複数の分岐予測機
構を設け、且つ分岐命令の予測結果と実行結果との比較
に基づいて、分岐予測機構を選択するため、各種のプロ
グラムに対し、正確な分岐予測を行うことができる。
【0074】このため、命令の先行実行を積極的に行
っても、パイプラインの乱れを最小限にでき、プロセッ
サの性能向上に寄与する。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】本発明の一実施の形態の構成図である。
【図3】本発明の一実施の形態の分岐予測手法の説明図
である。
【図4】本発明の一実施の形態の分岐予測手法選択の説
明図である。
【図5】本発明の一実施の形態のグローバルヒストリー
テーブルの説明図である。
【図6】従来技術の構成図である。
【図7】従来の予測回路の構成図である。
【図8】分岐命令の説明図である。
【図9】従来の分岐予測手法の説明図である。
【符号の説明】
1 命令メモリ 2 フェッチ回路 3 デコード回路 4 実行回路 5 命令予測回路(装置) 6 比較回路 7 命令カウンタ

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 命令メモリの命令をフェッチするフェッ
    チ回路と、前記フェッチ回路の命令をデコードするデコ
    ード回路と、前記デコードされた命令を実行する実行回
    路とが、パイプライン接続されてなり、命令の先行実行
    を行うプロセッサのための分岐命令の次の命令を予測す
    る分岐命令予測装置において、 前記分岐命令の過去の実行結果に基づいて、第1の予測
    方式により、前記次の命令を予測するための第1の予測
    機構と、 前記分岐命令の過去の実行結果に基づいて、前記第1の
    予測方式と異なる第2の予測方式により、前記次の命令
    を予測するための第2の予測機構と、 前記予測結果と前記分岐命令の実行結果との比較結果に
    応じて、前記第1の予測機構又は第2の予測機構とを選
    択する選択機構とを有することを特徴とするプロセッサ
    の分岐命令予測装置。
  2. 【請求項2】 請求項1のプロセッサの分岐命令予測装
    置において、 前記第1の予測機構が、前記分岐命令の前回の分岐結果
    に応じて、次の命令を予測する機構であることを特徴と
    するプロセッサの分岐命令予測装置。
  3. 【請求項3】 請求項1又は2のプロセッサの分岐命令
    予測装置において、 前記第2の予測機構が、前記分岐命令の実行履歴から、
    次の命令を予測する機構であることを特徴とするプロセ
    ッサの分岐命令予測装置。
  4. 【請求項4】 請求項1又は2のプロセッサの分岐命令
    予測装置において、 前記第2の予測機構が、前記分岐命令に到る実行パス上
    の分岐命令の実行状態により、次の命令を予測する機構
    であることを特徴とするプロセッサの分岐命令予測装
    置。
  5. 【請求項5】 請求項1又は2又は3又は4のプロセッ
    サの分岐命令予測装置において、 前記選択機構は、前記予測結果と前記分岐命令の実行結
    果との過去の比較結果を複数回保持する機構を有し、前
    記複数回の比較結果により、前記第1の予測機構又は第
    2の予測機構を選択することを特徴とするプロセッサの
    分岐命令予測装置。
JP25825996A 1996-09-30 1996-09-30 プロセッサの分岐命令予測装置 Withdrawn JPH10105401A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25825996A JPH10105401A (ja) 1996-09-30 1996-09-30 プロセッサの分岐命令予測装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25825996A JPH10105401A (ja) 1996-09-30 1996-09-30 プロセッサの分岐命令予測装置

Publications (1)

Publication Number Publication Date
JPH10105401A true JPH10105401A (ja) 1998-04-24

Family

ID=17317754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25825996A Withdrawn JPH10105401A (ja) 1996-09-30 1996-09-30 プロセッサの分岐命令予測装置

Country Status (1)

Country Link
JP (1) JPH10105401A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015144001A (ja) * 2006-06-29 2015-08-06 クゥアルコム・インコーポレイテッドQualcomm Incorporated プロアクティブ分岐ターゲットアドレスキャッシュ管理のための方法及び装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015144001A (ja) * 2006-06-29 2015-08-06 クゥアルコム・インコーポレイテッドQualcomm Incorporated プロアクティブ分岐ターゲットアドレスキャッシュ管理のための方法及び装置

Similar Documents

Publication Publication Date Title
KR100395763B1 (ko) 멀티프로세싱 마이크로프로세서에 적합한 분기 예측기
US5687360A (en) Branch predictor using multiple prediction heuristics and a heuristic identifier in the branch instruction
CN1302376C (zh) 利用第二级分支预测表的分支预测的方法和设备
US5530825A (en) Data processor with branch target address cache and method of operation
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
JP3594506B2 (ja) マイクロプロセッサの分岐命令予測方法
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
JP2001166935A (ja) プロセッサにおける分岐予測方法及びプロセッサ
US7516312B2 (en) Presbyopic branch target prefetch method and apparatus
US7454602B2 (en) Pipeline having bifurcated global branch history buffer for indexing branch history table per instruction fetch group
EP0297943B1 (en) Microcode reading control system
US5822577A (en) Context oriented branch history table
JP3486690B2 (ja) パイプライン方式プロセッサ
US6760836B2 (en) Apparatus for issuing an instruction to a suitable issue destination
KR100317240B1 (ko) 분기 예측 정확도 히스토리를 이용한 분기 예측기
US5644759A (en) Apparatus and method for processing a jump instruction preceded by a skip instruction
US5926634A (en) Limited run branch prediction
US20040003218A1 (en) Branch prediction apparatus and branch prediction method
US7647488B2 (en) Information processing device with branch history restoration
JP2006053830A (ja) 分岐予測装置および分岐予測方法
US7793078B2 (en) Multiple instruction set data processing system with conditional branch instructions of a first instruction set and a second instruction set sharing a same instruction encoding
JP3532835B2 (ja) データ処理装置およびプログラム変換装置
JPH04287125A (ja) 情報処理装置
WO2002039272A9 (en) Method and apparatus for reducing branch latency
JP2883035B2 (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: 20031202