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