JPH038023A - ブランチ予測アルゴリズム - Google Patents

ブランチ予測アルゴリズム

Info

Publication number
JPH038023A
JPH038023A JP14328189A JP14328189A JPH038023A JP H038023 A JPH038023 A JP H038023A JP 14328189 A JP14328189 A JP 14328189A JP 14328189 A JP14328189 A JP 14328189A JP H038023 A JPH038023 A JP H038023A
Authority
JP
Japan
Prior art keywords
branch
plant
predicted
case
instruction
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
JP14328189A
Other languages
English (en)
Inventor
Takashi Kodama
児玉 隆
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP14328189A priority Critical patent/JPH038023A/ja
Publication of JPH038023A publication Critical patent/JPH038023A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、電子計算機におけるプランチ命令のプラン
チするかいなかを予測するプランチターゲットバッファ
(BTB)のプランチ予測アルゴリズムに関するもので
ある。
〔従来の技術〕
第3図、第4図は、従来のプランチ命令における過去2
回のプランチ状況データを基にプランチ命令のプランチ
予測を実施するプランチ予測アルゴリズムを説明する図
である。
次に動作について説明する。
まずは、このアルゴリズムを説明する前に、第5図を用
いてプランチターゲットバッファ(以下。
BTBという)について説明する。
このBTBはパイプライン制御下におけるプランチ命令
のプランチ先アドレスを格納するキャッシュメモリであ
る。
通常のキャッシュメモリは、基本的にアドレスプレイ、
アドレス比較回路、データアレイにて構成されるが、E
TEもほぼ同様にアドレスアレイ。
アドレス比較回路、プランチ予測回路、データアレイと
いう構成になる。唯一プランチ予測回路が追加された点
が異なる。BTBのアドレスアレイには、プランチ命令
アドレスが格納されており。
データアレイにはプランチ先アドレスと過去のプランチ
履歴を示すプランチステータスが格納される、プランチ
ステータスは、第3図、第4図の2重マル内に示される
データ(“NT’  ”TN″ ”NN”。
“TT″)である。
プランチ予測回路では、下記条件時、起動される。
アドレスアレイ内アドレスとメモリリクエストされたア
ドレスが一致した場合(BTEbtt時)。
データアレイよりプランチステータスを読み出し。
プランチ命令がプランチするかいなかを予測し。
プランチするとなればデータアレイのプランチ先アドレ
スによりキャッシュメモリにアクセスさせ。
プランチしなければ、プランチ命令アドレスをそのまま
キャッシュメモリに送出する、プランチ命令が命令実行
された場合、このプランチ予測が正しかったかいなかが
判明する。この時点でBTBのデータアレイのプランチ
ステータス部が更新される。
本発明は、プランチ予測回路におけるプランチ命令がプ
ランチするかいなかを予測するプランチ予測アルゴリズ
ムに関するものである。
第3図、第1図、第5図において、プランチステータス
は2bitである。つまシプランチ予測のプランチ履歴
は最新2回に関してのデータである。
次に、第3図を用いて従来のプランチ予測アルゴリズム
について説明する。
プランチステータスは、2bitであることから。
4個の状態が存在する。“TT“TN″ ”NT″”N
N’である。“TT″ ”NN’ に関しては、過去2
回のプランチ状況が一致していることから9次回も同様
と予測できる。したがって、プランチステータスが”T
T″の場合はT″と予測され、つま先 プランチすると
予測される。また、プランチステータスが”NN−の場
合@N”と予測され、つまシ、プランチしないと予測さ
れる。
プランチステータスが@TN“ ”NT−の場合。
次の予測が難かしい。“N″とも“T″とも予測できる
が、第3図の場合は、プランチステータスが1個の時と
同じようになる。つ′1シ、前回の状態と同様な状況に
次回もなると予測している。また。
第4図が第3図と異なる点は@TN”の場合1T#と予
測することである。このように、プランチステータスを
2個使用し、プランチ命令のプランチ予測を実施してい
る。
〔発明が解決しようとする課題〕
従来の2個のプランチステータスを使用してプランチ予
測アルゴリズムは、プランチステータスが2個しかない
ため、プランチ履歴の前回と前々回の状況が異なる場合
(“NT″、“TN’ )、  プランチ予測の成功率
が低いという9問題点があった。
この発明は上記のような問題点を解消するため罠なされ
たもので、よシプランチ予測の成功率を高めるプランチ
予測アルゴリズムを得ること金目的とする。
〔課題を解決するだめの手段〕
この発明に係るプランチ予測アルゴリズムは。
プランチステータスを3個以上とし、プランチ履歴を増
やすことにより、プランチを予測する条件を珈したもの
である。
〔作用〕 この発明におけるプランチ予測アルゴリズムは。
3個以上の過去のプランチ履歴を基にプランチ命令のプ
ランチ予測をするため、よりプランチ予測の成功率が高
まる。
〔実施例〕
本発明のプランチ予測アルゴリズムを第1図で示してい
る。
16個のマルで囲まれたものは、4個の過去のプランチ
履歴を示す。左サイドが最も古い。例えば、”NTTN
=fは@N’!>Ul−も古(’、−T”7>E2番目
に古い、“T″は3番目に古く、“N″が前回のプラン
チ履歴である。
矢印は、状態の遷移を表わし、プランチ命令が実行され
た後、プランチした場合“↓”に示す状態に遷移し、プ
ランチしなかった場合“N″に示す状態に遷移する。ま
た、各16個のマルで囲まれたプランチ履歴に関して、
どのようにプランチを予測するかを示している。例えば
“TTTT″の場合、(次回は)“T″と予測(つまシ
、プランチすると予測)している。
プランチ命令は、大きく分割すると、2種類に分割され
る。
(1)無条件プランチ命令(必ずプランチする)(2)
条件付プランチ命令(条件が合致した場合プランチする
) プランチ予測アルゴリズムは、(2)の条件付プランチ
命令のプランチをいかく正確に予測できるかが最も重要
である。このため、過去のプランチ履歴を見て、履歴パ
ターンよりプランチが発生しそうか、または、しそうも
ないかを判定してプランチを予測している。この判定で
は、最新履歴から逆昇って2個以上同じ履歴であった場
合1次回も同じ履歴になるだろうというのが基本である
。例えば”NTTT”は@T−と予測され、”NTIJ
N”は“N″と予測される。
なお1判定において最も難しいものは、最新履歴から逆
昇った2個の履歴が異なる場合のプランチ予測である。
本発明は、この場合の予測精度を上げるために考えられ
たものである。例えば。
−NTNT″の場合、プランチ及びプランチしない状態
の繰り返しである。これは、今後も繰り返すことが予想
される。しだがって、“N”と予測できる。”TNIJ
“も同様に“T″と予測できる。第3図のアルゴリズム
を用いれば、  ”NT″の場合”T″と予測し、”T
N″の場合”N″と予測するため100チプランチ予測
が不成功になることが予想できる。
第4図では、“NT″の場合”T″と予測し、”TN″
の場合“T″と予測することから、プランチ予測は50
%の確率になることが予想される。
次に“NNNT”の場合、算術通算後にかかわるプラン
チ命令などに関する1例えばOve r FI Ow:
BOR(桁あぶれのときプランチ)9桁あぶれがおこっ
た時のみプランチするというようなプランチ命令と予測
される。しfCがって、“N″と予測されるが、第3図
、第4図においては、“NT″は“T″と予測する。
また、同様K”TTTN″の場合、  Branch 
C!0unt(BOT)命令のように、カウンタが°O
”でない場合はプランチするというようなプランチ命令
と予測できる。したがって9次回は°T″と予測される
。第3図、第4図に関しては、“TN″の場合、第3図
では“N″と予測され、第4図では“T″と予測される
NNTN”の場合は、上記で説明した“NNNT’と同
様なプランチ命令による履歴と考えられる。
このためN″と予測される。
−TTNT“の場合は、”TTTN”と同様なプランチ
命令と考えられ、“T″と予測できる。
”NTTN″ “TNNT″の場合、規則性のあるプラ
ンチ命令と予測できる。例えばBranch 0oun
t命令(BOT)のようなカウンタ使用命令のように予
測できる。したがって、”NTTN″の場合は°T″と
予測され、”TNNT″の場合は°N”と予測される。
この“NTTN″ ’TNNT″ の予測が最も難しい
が、予測が失敗した場合、“NTTN″は“τTNN″
に遷移しているので9次には′N“と予測され9次回以
降の予測精度は上がる。同様に。
@TNNT”は@NNTT”に遷移するので1次回は“
T″と予測され、やはり1次回以降のプランチ予測精度
は上がる。
このように、4個のプランチステータスを用いると、5
0%以上の確率で予測が失敗するということはありえな
くなる。
次に第2図を用いて、3個の過去のプランチ履歴の場合
を説明する。
過去2個のプランチステータスが@NN”または“TT
″の場合は、同様にそれぞれ次のステータスを“N″ま
たは°T″と予測する。
その他の’NTN”  ’NNT’  ”TTN’、”
TNT’は、それぞれ多数決によシ決定する。しだがっ
てNTN″ −NNT’は−N−と予測し、 ”TTN
’″、”TNT−は“T″と予測する。
なお、上記実施例においては、プランチステ−タスを4
または3個と限定しているが、基本的に3個以上なら何
個でも良い。
また、上記実施例では、“Y″と“N″でプランチステ
ータスを表わしたが、“1″とO″や“Y″とN″など
他の方法で表わしてもよい。さらに。
これらが、ビットやバイトなどのサイズを問わず。
かつフォーマットも問わず、メモリ内でどのような形で
保持されていてもかまわない。
〔発明の効果〕
以上のように、この発明によれば、プランチステータス
などのプランチ履歴情報を3個以上にしてプランチ予測
を実施しているので、予測の不確定要素が少なく、高い
精度のプランチ予測ができる。
【図面の簡単な説明】
第1図、第2図はそれぞれ本発明の一実施例である3個
以上のプランチステータスを用いたプランチ予測アルゴ
リズムを説明する図、第3図、第4図は従来の2個のプ
ランチステータスのプランチ予測アルゴリズムを示す図
、第5図は従来のプランチ予測アルゴリズムを示す図で
ある。

Claims (1)

  1. 【特許請求の範囲】 計算機の動作時におけるプランチ命令がプランチするか
    をプランチ履歴情報をもちいて予測するプランチ予測ア
    ルゴリズムにおいて、 プランチを“T”で表わし、否プランチを“N”で表わ
    すとき、以下の手段を備えたことを特徴とするプランチ
    予測アルゴリズム (a)あるプランチ命令の2個の最新のプランチ履歴情
    報が“TT”のとき、次の動作を“T”と予測する手段
    、 (b)あるプランチ命令の2個の最新のプランチ履歴情
    報が“NN”のとき、次の動作を“N”と予測する手段
    、 (c)あるプランチ命令の2個の最新のプランチ履歴情
    報が“TT”と“NN”のいずれでもないとき、それ以
    前のプランチ履歴情報を用いて次の動作を予測する手段
JP14328189A 1989-06-06 1989-06-06 ブランチ予測アルゴリズム Pending JPH038023A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14328189A JPH038023A (ja) 1989-06-06 1989-06-06 ブランチ予測アルゴリズム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14328189A JPH038023A (ja) 1989-06-06 1989-06-06 ブランチ予測アルゴリズム

Publications (1)

Publication Number Publication Date
JPH038023A true JPH038023A (ja) 1991-01-16

Family

ID=15335091

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14328189A Pending JPH038023A (ja) 1989-06-06 1989-06-06 ブランチ予測アルゴリズム

Country Status (1)

Country Link
JP (1) JPH038023A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06236270A (ja) * 1993-01-08 1994-08-23 Internatl Business Mach Corp <Ibm> スーパースカラ・プロセッサ・システムにおいてブランチ・ヒストリ予測精度を向上させる方法およびシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06236270A (ja) * 1993-01-08 1994-08-23 Internatl Business Mach Corp <Ibm> スーパースカラ・プロセッサ・システムにおいてブランチ・ヒストリ予測精度を向上させる方法およびシステム

Similar Documents

Publication Publication Date Title
US6115808A (en) Method and apparatus for performing predicate hazard detection
JP2640454B2 (ja) ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法
US5987595A (en) Method and apparatus for predicting when load instructions can be executed out-of order
EP0847004B1 (en) Information processing apparatus with branch prediction
KR970002637A (ko) 멀티프로세서 시스템
US10228864B1 (en) Pre-fetching data based on memory usage patterns
US6715064B1 (en) Method and apparatus for performing sequential executions of elements in cooperation with a transform
JP2021527248A (ja) 予測ミス回復の待ち時間を短縮するための偶発的な分岐予測の格納
US7051191B2 (en) Resource management using multiply pendent registers
KR20200090103A (ko) 분기 예측기
JPH02216545A (ja) 実行履歴記憶装置
US20050283593A1 (en) Loop end prediction
US6484256B1 (en) Apparatus and method of branch prediction utilizing a comparison of a branch history table to an aliasing table
JPH038023A (ja) ブランチ予測アルゴリズム
US4559596A (en) History memory control system
JP5379712B2 (ja) 車載制御装置
US4124892A (en) Data processing systems
US5974535A (en) Method and system in data processing system of permitting concurrent processing of instructions of a particular type
CN100354820C (zh) 外部微代码
US6978361B2 (en) Effectively infinite branch prediction table mechanism
JP5154763B2 (ja) 複数の命令セットデータ処理システム内の条件付分岐命令エンコーディング
US7353343B2 (en) Memory management system for preventing program execution when CPU fetches execution code from unoccupied region of memory
JPS6236575B2 (ja)
JP4872883B2 (ja) 計算機及び障害再現方法並びにプログラム
CN119025164B (zh) Risc-v矢量指令配置确定方法及装置