JP6370918B2 - オーバーライド分岐予測器における投機的履歴転送、関連する回路、方法およびコンピュータ可読媒体 - Google Patents
オーバーライド分岐予測器における投機的履歴転送、関連する回路、方法およびコンピュータ可読媒体 Download PDFInfo
- Publication number
- JP6370918B2 JP6370918B2 JP2016557109A JP2016557109A JP6370918B2 JP 6370918 B2 JP6370918 B2 JP 6370918B2 JP 2016557109 A JP2016557109 A JP 2016557109A JP 2016557109 A JP2016557109 A JP 2016557109A JP 6370918 B2 JP6370918 B2 JP 6370918B2
- Authority
- JP
- Japan
- Prior art keywords
- branch
- branch prediction
- prediction
- history
- 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.)
- Active
Links
- 238000012546 transfer Methods 0.000 title claims description 41
- 238000000034 method Methods 0.000 title claims description 36
- 238000004891 communication Methods 0.000 claims description 3
- 230000001413 cellular effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 101001009517 Homo sapiens Probable G-protein coupled receptor 32 Proteins 0.000 description 1
- 102100030321 Probable G-protein coupled receptor 32 Human genes 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3848—Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative 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)
Description
12 分岐予測回路
14 入力/出力回路
16 命令キャッシュ
18 データキャッシュ
20 実行パイプライン
22 フロントエンド回路
24 実行ユニット
26 完了ユニット
28 リンクスタック
30 レジスタ
32 汎用レジスタ(GPR)
34 プログラムカウンタ
36 リンクレジスタ
38 フェッチ/デコードパイプラインステージ
40 命令キュー
42 第1の分岐予測器
44 第2の分岐予測器
45 転送回路
46 第1の分岐予測履歴レジスタ
48 第2の分岐予測履歴レジスタ
50 第1の分岐予測履歴
52 第2の分岐予測履歴
54(0) 条件付き分岐命令
54(1) 条件付き分岐命令
54(2) 条件付き分岐命令
54(3) 条件付き分岐命令
56 プロセッサクロックサイクル
58 複数サイクル待ち時間
60(0) 分岐予測
60(1) 分岐予測
60(2) 分岐予測
62 分岐予測
64 第1の分岐予測履歴
66 第2の分岐予測履歴
68(0) 条件付き分岐命令
68(1) 条件付き分岐命令
68(2) 条件付き分岐命令
68(3) 条件付き分岐命令
70 プロセッサクロックサイクルの待ち時間
72 複数サイクル待ち時間
74(0) 分岐予測
74(1) 分岐予測
74(2) 分岐予測
76(0) 投機的予測
76(1) 投機的予測
76(2) 投機的予測
78 分岐予測
96 単一の履歴レジスタ
98 ポインタ
100 ポインタ
102 プロセッサベースシステム
104 中央処理ユニット(CPU)
106 プロセッサ
108 キャッシュメモリ
110 システムバス
112 メモリシステム
114(0) メモリユニット
114(N) メモリユニット
116 コントローラ
118 入力デバイス
120 出力デバイス
122 ネットワークインターフェースデバイス
124 ディスプレイコントローラ
126 ネットワーク
128 ディスプレイ
130 ビデオプロセッサ
Claims (20)
- プロセッサにおいてフェッチされた命令の分岐予測を実行するための分岐予測回路であって、
命令キュー内の条件付き分岐命令の第1の分岐予測を予測し、
前記条件付き分岐命令のための前記第1の分岐予測に基づいて第1の分岐予測履歴レジスタを更新するように構成される、第1の分岐予測器と、
前記条件付き分岐命令のための前記第1の分岐予測を投機的予測として第2の分岐予測履歴レジスタに転送するように構成される転送回路と、
前記投機的予測を含む、前記第2の分岐予測履歴レジスタに基づいて、前記命令キュー内の前記条件付き分岐命令の第2の分岐予測を予測するように構成される第2の分岐予測器とを備える、分岐予測回路。 - 前記第2の分岐予測を前記投機的予測と比較し、
前記第2の分岐予測が前記投機的予測と異なるのに応答して、前記第2の分岐予測に基づいて、前記第1の分岐予測履歴レジスタ内の前記第1の分岐予測および前記第2の分岐予測履歴レジスタ内の前記投機的予測を更新することによって、前記投機的予測をオーバーライドするようにさらに構成される、請求項1に記載の分岐予測回路。 - 前記第1の分岐予測器は第1の待ち時間および第1の精度で動作するように構成され、前記第2の分岐予測器は、前記第1の待ち時間より長い第2の待ち時間、および前記第1の精度より高い第2の精度で動作するように構成される、請求項1に記載の分岐予測回路。
- 前記第1の分岐予測履歴レジスタは第1のグローバル履歴、第1のローカル履歴もしくは第1のパス履歴、またはその組合せを含み、
前記第2の分岐予測履歴レジスタは第2のグローバル履歴、第2のローカル履歴もしくは第2のパス履歴、またはその組合せを含む、請求項1に記載の分岐予測回路。 - 前記第1の分岐予測履歴レジスタおよび前記第2の分岐予測履歴レジスタを含む単一の履歴レジスタをさらに備える、請求項1に記載の分岐予測回路。
- 前記単一の履歴レジスタは、
前記第1の分岐予測履歴レジスタ内の最新の分岐予測を指示する第1のポインタと、
前記第2の分岐予測履歴レジスタ内の最新の分岐予測を指示する第2のポインタとを備える、請求項5に記載の分岐予測回路。 - 集積回路に組み込まれる、請求項1に記載の分岐予測回路。
- セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されるデバイスに組み込まれる、請求項1に記載の分岐予測回路。
- プロセッサにおいてフェッチされた命令の分岐予測を実行するための分岐予測回路であって、
命令キュー内の条件付き分岐命令の第1の分岐予測を予測し、
前記条件付き分岐命令のための前記第1の分岐予測に基づいて第1の分岐予測履歴レジスタを更新する
ための第1の分岐予測器手段と、
前記条件付き分岐命令のための前記第1の分岐予測を投機的予測として第2の分岐予測履歴レジスタに転送するための転送手段と、
前記投機的予測を含む、前記第2の分岐予測履歴レジスタに基づいて、前記命令キュー内の前記条件付き分岐命令の第2の分岐予測を予測するための第2の分岐予測器手段と、
を備える、分岐予測回路。 - プロセッサにおいてフェッチされた命令の分岐予測を実行するための方法であって、
第1の分岐予測履歴に基づいて、第1の分岐予測器によって命令キュー内の条件付き分岐命令の第1の分岐予測を予測するステップと、
前記条件付き分岐命令のための前記第1の分岐予測に基づいて第1の分岐予測履歴レジスタを更新するステップと、
前記条件付き分岐命令のための前記第1の分岐予測を投機的予測として第2の分岐予測履歴に転送するステップと、
前記投機的予測を含む、前記第2の分岐予測履歴に基づいて、第2の分岐予測器によって、前記命令キュー内の前記条件付き分岐命令の第2の分岐予測を予測するステップと、
を含む、方法。 - 前記第2の分岐予測を前記投機的予測と比較するステップと、
前記第2の分岐予測が前記投機的予測と異なるのに応答して、前記第2の分岐予測に基づいて、前記第1の分岐予測履歴内の前記第1の分岐予測および前記第2の分岐予測履歴内の前記投機的予測を更新することによって、前記投機的予測をオーバーライドするステップと、
をさらに含む、請求項10に記載の方法。 - 前記第1の分岐予測器は第1の待ち時間および第1の精度で動作し、前記第2の分岐予測器は、前記第1の待ち時間より長い第2の待ち時間、および前記第1の精度より高い第2の精度で動作する、請求項10に記載の方法。
- 前記第1の分岐予測履歴は第1のグローバル履歴、第1のローカル履歴もしくは第1のパス履歴、またはその組合せを含み、
前記第2の分岐予測履歴は第2のグローバル履歴、第2のローカル履歴もしくは第2のパス履歴、またはその組合せを含む、請求項10に記載の方法。 - 単一の履歴レジスタ内に前記第1の分岐予測履歴および前記第2の分岐予測履歴を記憶するステップをさらに含む、請求項10に記載の方法。
- 前記単一の履歴レジスタ内の前記第1の分岐予測履歴内の最新の分岐予測を第1のポインタによって指示するステップと、
前記単一の履歴レジスタ内の前記第2の分岐予測履歴内の最新の分岐予測を第2のポインタによって指示するステップとをさらに含む、請求項14に記載の方法。 - プロセッサにおいてフェッチされた命令の分岐予測を実行するための方法を前記プロセッサに実施させるコンピュータ実行可能命令を記憶したコンピュータ可読記憶媒体であって、前記方法は、
第1の分岐予測履歴に基づいて、第1の分岐予測器によって命令キュー内の条件付き分岐命令の第1の分岐予測を予測するステップと、
前記条件付き分岐命令のための前記第1の分岐予測に基づいて第1の分岐予測履歴レジスタを更新するステップと、
前記条件付き分岐命令のための前記第1の分岐予測を投機的予測として第2の分岐予測履歴に転送するステップと、
前記投機的予測を含む、前記第2の分岐予測履歴に基づいて、第2の分岐予測器によって、前記命令キュー内の前記条件付き分岐命令の第2の分岐予測を予測するステップと、
を含む、コンピュータ可読記憶媒体。 - 前記方法は、
前記第2の分岐予測を前記投機的予測と比較するステップと、
前記第2の分岐予測が前記投機的予測と異なるのに応答して、前記第2の分岐予測に基づいて、前記第1の分岐予測履歴内の前記第1の分岐予測および前記第2の分岐予測履歴内の前記投機的予測を更新することによって、前記投機的予測をオーバーライドするステップと、
をさらに含む、請求項16に記載のコンピュータ可読記憶媒体。 - 前記第1の分岐予測器は第1の待ち時間および第1の精度で動作し、前記第2の分岐予測器は、前記第1の待ち時間より長い第2の待ち時間、および前記第1の精度より高い第2の精度で動作する方法をプロセッサに実施させるコンピュータ実行可能命令を記憶した、請求項16に記載のコンピュータ可読記憶媒体。
- 単一の履歴レジスタ内に前記第1の分岐予測履歴および前記第2の分岐予測履歴を記憶するステップをさらに含む方法をプロセッサに実施させるコンピュータ実行可能命令を記憶した、請求項16に記載のコンピュータ可読記憶媒体。
- 前記単一の履歴レジスタ内の前記第1の分岐予測履歴内の最新の分岐予測を第1のポインタによって指示するステップと、
前記単一の履歴レジスタ内の前記第2の分岐予測履歴内の最新の分岐予測を第2のポインタによって指示するステップとをさらに含む方法をプロセッサに実施させるコンピュータ実行可能命令を記憶した、請求項19に記載のコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/223,091 US9582285B2 (en) | 2014-03-24 | 2014-03-24 | Speculative history forwarding in overriding branch predictors, and related circuits, methods, and computer-readable media |
US14/223,091 | 2014-03-24 | ||
PCT/US2015/021997 WO2015148372A1 (en) | 2014-03-24 | 2015-03-23 | Speculative history forwarding in overriding branch predictors, and related circuits, methods, and computer-readable media |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017509995A JP2017509995A (ja) | 2017-04-06 |
JP2017509995A5 JP2017509995A5 (ja) | 2017-07-06 |
JP6370918B2 true JP6370918B2 (ja) | 2018-08-08 |
Family
ID=52829348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016557109A Active JP6370918B2 (ja) | 2014-03-24 | 2015-03-23 | オーバーライド分岐予測器における投機的履歴転送、関連する回路、方法およびコンピュータ可読媒体 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9582285B2 (ja) |
EP (1) | EP3123305A1 (ja) |
JP (1) | JP6370918B2 (ja) |
KR (1) | KR101829369B1 (ja) |
CN (1) | CN106104466B (ja) |
CA (1) | CA2939834C (ja) |
TW (1) | TWI588739B (ja) |
WO (1) | WO2015148372A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11995447B2 (en) * | 2020-10-15 | 2024-05-28 | Centaur Technology, Inc. | Quick predictor override and update by a BTAC |
JP2022094507A (ja) | 2020-12-15 | 2022-06-27 | 富士通株式会社 | 演算処理回路及び演算処理方法 |
US11868773B2 (en) | 2022-01-06 | 2024-01-09 | International Business Machines Corporation | Inferring future value for speculative branch resolution in a microprocessor |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6374349B2 (en) | 1998-03-19 | 2002-04-16 | Mcfarling Scott | Branch predictor with serially connected predictor stages for improving branch prediction accuracy |
US6134654A (en) | 1998-09-16 | 2000-10-17 | Sun Microsystems, Inc. | Bi-level branch target prediction scheme with fetch address prediction |
KR100317240B1 (ko) * | 1999-10-21 | 2001-12-22 | 윤종용 | 분기 예측 정확도 히스토리를 이용한 분기 예측기 |
US6886093B2 (en) * | 2001-05-04 | 2005-04-26 | Ip-First, Llc | Speculative hybrid branch direction predictor |
US6895498B2 (en) * | 2001-05-04 | 2005-05-17 | Ip-First, Llc | Apparatus and method for target address replacement in speculative branch target address cache |
US20060036837A1 (en) * | 2004-08-13 | 2006-02-16 | Stark Jared W | Prophet/critic hybrid predictor |
US7836288B2 (en) | 2004-09-14 | 2010-11-16 | Arm Limited | Branch prediction mechanism including a branch prediction memory and a branch prediction cache |
US7877584B2 (en) * | 2005-08-29 | 2011-01-25 | The Invention Science Fund I, Llc | Predictive processor resource management |
US7673122B1 (en) | 2005-09-29 | 2010-03-02 | Sun Microsystems, Inc. | Software hint to specify the preferred branch prediction to use for a branch instruction |
US7707398B2 (en) | 2007-11-13 | 2010-04-27 | Applied Micro Circuits Corporation | System and method for speculative global history prediction updating |
US8832418B2 (en) * | 2009-08-28 | 2014-09-09 | Via Technologies, Inc. | Efficient branch target address cache entry replacement |
US8788797B2 (en) | 2010-12-22 | 2014-07-22 | Advanced Micro Devices, Inc. | Combined level 1 and level 2 branch predictor |
JPWO2012127666A1 (ja) * | 2011-03-23 | 2014-07-24 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理方法 |
US9201654B2 (en) | 2011-06-28 | 2015-12-01 | International Business Machines Corporation | Processor and data processing method incorporating an instruction pipeline with conditional branch direction prediction for fast access to branch target instructions |
US8959320B2 (en) | 2011-12-07 | 2015-02-17 | Apple Inc. | Preventing update training of first predictor with mismatching second predictor for branch instructions with alternating pattern hysteresis |
-
2014
- 2014-03-24 US US14/223,091 patent/US9582285B2/en active Active
-
2015
- 2015-03-23 WO PCT/US2015/021997 patent/WO2015148372A1/en active Application Filing
- 2015-03-23 KR KR1020167025917A patent/KR101829369B1/ko active IP Right Grant
- 2015-03-23 CA CA2939834A patent/CA2939834C/en active Active
- 2015-03-23 CN CN201580014711.7A patent/CN106104466B/zh active Active
- 2015-03-23 TW TW104109240A patent/TWI588739B/zh active
- 2015-03-23 EP EP15716237.1A patent/EP3123305A1/en not_active Withdrawn
- 2015-03-23 JP JP2016557109A patent/JP6370918B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
WO2015148372A1 (en) | 2015-10-01 |
CA2939834A1 (en) | 2015-10-01 |
CN106104466A (zh) | 2016-11-09 |
KR20160135726A (ko) | 2016-11-28 |
CA2939834C (en) | 2019-09-17 |
TWI588739B (zh) | 2017-06-21 |
KR101829369B1 (ko) | 2018-02-19 |
JP2017509995A (ja) | 2017-04-06 |
EP3123305A1 (en) | 2017-02-01 |
CN106104466B (zh) | 2019-05-28 |
US9582285B2 (en) | 2017-02-28 |
TW201602907A (zh) | 2016-01-16 |
US20150268958A1 (en) | 2015-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3436930B1 (en) | Providing load address predictions using address prediction tables based on load path history in processor-based systems | |
US10255074B2 (en) | Selective flushing of instructions in an instruction pipeline in a processor back to an execution-resolved target address, in response to a precise interrupt | |
US9830152B2 (en) | Selective storing of previously decoded instructions of frequently-called instruction sequences in an instruction sequence buffer to be executed by a processor | |
KR101705211B1 (ko) | 분기 예측 테이블 스왑 명령(들)에 응답하여 분기 방향 히스토리(들)를 스왑하는 것, 및 관련 시스템들 및 방법들 | |
US20180081690A1 (en) | Performing distributed branch prediction using fused processor cores in processor-based systems | |
EP3221784B1 (en) | Providing loop-invariant value prediction using a predicted values table, and related apparatuses, methods, and computer-readable media | |
JP6370918B2 (ja) | オーバーライド分岐予測器における投機的履歴転送、関連する回路、方法およびコンピュータ可読媒体 | |
JP6271572B2 (ja) | 実行パイプラインバブルを低減するためにサブルーチンリターンのための分岐ターゲット命令キャッシュ(btic)エントリを確立すること、ならびに関連するシステム、方法、およびコンピュータ可読媒体 | |
WO2016014239A1 (en) | ENFORCING LOOP-CARRIED DEPENDENCY (LCD) DURING DATAFLOW EXECUTION OF LOOP INSTRUCTIONS BY OUT-OF-ORDER PROCESSORS (OOPs), AND RELATED CIRCUITS, METHODS, AND COMPUTER-READABLE MEDIA | |
EP3335111B1 (en) | Predicting memory instruction punts in a computer processor using a punt avoidance table (pat) | |
US10635446B2 (en) | Reconfiguring execution pipelines of out-of-order (OOO) computer processors based on phase training and prediction | |
US20160077836A1 (en) | Predicting literal load values using a literal load prediction table, and related circuits, methods, and computer-readable media | |
US20190065060A1 (en) | Caching instruction block header data in block architecture processor-based systems | |
US20190294443A1 (en) | Providing early pipeline optimization of conditional instructions in processor-based systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160927 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170525 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170525 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20170525 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20170619 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170626 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171225 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180618 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180711 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6370918 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |