CN107102845B - 间接分支预测 - Google Patents
间接分支预测 Download PDFInfo
- Publication number
- CN107102845B CN107102845B CN201710213424.XA CN201710213424A CN107102845B CN 107102845 B CN107102845 B CN 107102845B CN 201710213424 A CN201710213424 A CN 201710213424A CN 107102845 B CN107102845 B CN 107102845B
- Authority
- CN
- China
- Prior art keywords
- indirect
- taken
- committed
- history
- branch 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
- 238000000034 method Methods 0.000 claims abstract description 51
- 238000004891 communication Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 4
- 230000015654 memory Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 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/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- 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/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30061—Multi-way branch instructions, e.g. CASE
-
- 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
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
Description
Claims (17)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1304504.2A GB2506462B (en) | 2013-03-13 | 2013-03-13 | Indirect branch prediction |
GB1304504.2 | 2013-03-13 | ||
CN201410092214.6A CN104049938B (zh) | 2013-03-13 | 2014-03-13 | 间接分支预测 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410092214.6A Division CN104049938B (zh) | 2013-03-13 | 2014-03-13 | 间接分支预测 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107102845A CN107102845A (zh) | 2017-08-29 |
CN107102845B true CN107102845B (zh) | 2021-08-10 |
Family
ID=48189829
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710213424.XA Active CN107102845B (zh) | 2013-03-13 | 2014-03-13 | 间接分支预测 |
CN201410092214.6A Active CN104049938B (zh) | 2013-03-13 | 2014-03-13 | 间接分支预测 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410092214.6A Active CN104049938B (zh) | 2013-03-13 | 2014-03-13 | 间接分支预测 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9792123B2 (zh) |
CN (2) | CN107102845B (zh) |
DE (1) | DE102014003434A1 (zh) |
GB (2) | GB2511949B (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10795683B2 (en) * | 2014-06-11 | 2020-10-06 | International Business Machines Corporation | Predicting indirect branches using problem branch filtering and pattern cache |
US20170083333A1 (en) * | 2015-09-21 | 2017-03-23 | Qualcomm Incorporated | Branch target instruction cache (btic) to store a conditional branch instruction |
US10664280B2 (en) | 2015-11-09 | 2020-05-26 | MIPS Tech, LLC | Fetch ahead branch target buffer |
US9507598B1 (en) * | 2015-12-15 | 2016-11-29 | International Business Machines Corporation | Auxiliary branch prediction with usefulness tracking |
US11709679B2 (en) | 2016-03-31 | 2023-07-25 | Qualcomm Incorporated | Providing load address predictions using address prediction tables based on load path history in processor-based systems |
US10353710B2 (en) | 2016-04-28 | 2019-07-16 | International Business Machines Corporation | Techniques for predicting a target address of an indirect branch instruction |
US20170371669A1 (en) * | 2016-06-24 | 2017-12-28 | Qualcomm Incorporated | Branch target predictor |
US10896130B2 (en) * | 2016-10-19 | 2021-01-19 | International Business Machines Corporation | Response times in asynchronous I/O-based software using thread pairing and co-execution |
CN106843812A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 一种实现间接转移关联软件预测的方法及装置 |
US10713048B2 (en) | 2017-01-19 | 2020-07-14 | International Business Machines Corporation | Conditional branch to an indirectly specified location |
US10261797B2 (en) * | 2017-04-27 | 2019-04-16 | International Business Machines Corporation | Indirect target tagged geometric branch prediction using a set of target address pattern data |
CN109308191B (zh) * | 2017-07-28 | 2021-09-14 | 华为技术有限公司 | 分支预测方法及装置 |
US10719328B2 (en) | 2017-08-18 | 2020-07-21 | International Business Machines Corporation | Determining and predicting derived values used in register-indirect branching |
US10884746B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Determining and predicting affiliated registers based on dynamic runtime control flow analysis |
US10884745B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Providing a predicted target address to multiple locations based on detecting an affiliated relationship |
US11150908B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Dynamic fusion of derived value creation and prediction of derived values in a subroutine branch sequence |
US10884747B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Prediction of an affiliated register |
US10908911B2 (en) * | 2017-08-18 | 2021-02-02 | International Business Machines Corporation | Predicting and storing a predicted target address in a plurality of selected locations |
US11150904B2 (en) * | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Concurrent prediction of branch addresses and update of register contents |
US10534609B2 (en) | 2017-08-18 | 2020-01-14 | International Business Machines Corporation | Code-specific affiliated register prediction |
US10437592B2 (en) * | 2017-08-24 | 2019-10-08 | Qualcomm Incorporated | Reduced logic level operation folding of context history in a history register in a prediction system for a processor-based system |
US20190065199A1 (en) | 2017-08-31 | 2019-02-28 | MIPS Tech, LLC | Saving and restoring non-contiguous blocks of preserved registers |
US10628167B2 (en) * | 2018-02-21 | 2020-04-21 | International Business Machines Corporation | Runtime detection of code modification |
US10732979B2 (en) * | 2018-06-18 | 2020-08-04 | Advanced Micro Devices, Inc. | Selectively performing ahead branch prediction based on types of branch instructions |
US10936318B2 (en) | 2018-11-14 | 2021-03-02 | International Business Machines Corporation | Tagged indirect branch predictor (TIP) |
US10846097B2 (en) * | 2018-12-20 | 2020-11-24 | Samsung Electronics Co., Ltd. | Mispredict recovery apparatus and method for branch and fetch pipelines |
US11080062B2 (en) | 2019-01-12 | 2021-08-03 | MIPS Tech, LLC | Address manipulation using indices and tags |
CN111221575A (zh) * | 2019-12-30 | 2020-06-02 | 核芯互联科技(青岛)有限公司 | 一种乱序高性能处理器的寄存器重命名方法及系统 |
US11379240B2 (en) | 2020-01-31 | 2022-07-05 | Apple Inc. | Indirect branch predictor based on register operands |
US11294684B2 (en) * | 2020-01-31 | 2022-04-05 | Apple Inc. | Indirect branch predictor for dynamic indirect branches |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1873611A (zh) * | 2005-05-31 | 2006-12-06 | Arm有限公司 | 分支预测控制 |
US20080256347A1 (en) * | 2007-04-12 | 2008-10-16 | International Business Machines Corporation | Method, system, and computer program product for path-correlated indirect address predictions |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4477872A (en) * | 1982-01-15 | 1984-10-16 | International Business Machines Corporation | Decode history table for conditional branch instructions |
US7165169B2 (en) | 2001-05-04 | 2007-01-16 | Ip-First, Llc | Speculative branch target address cache with selective override by secondary predictor based on branch instruction type |
US20100161950A1 (en) | 2008-12-24 | 2010-06-24 | Sun Microsystems, Inc. | Semi-absolute branch instructions for efficient computers |
US8555040B2 (en) * | 2010-05-24 | 2013-10-08 | Apple Inc. | Indirect branch target predictor that prevents speculation if mispredict is expected |
US20110320787A1 (en) | 2010-06-28 | 2011-12-29 | Qualcomm Incorporated | Indirect Branch Hint |
CN102156636B (zh) | 2011-04-28 | 2013-05-01 | 北京北大众志微系统科技有限责任公司 | 一种实现值关联间接跳转预测的装置 |
-
2013
- 2013-03-13 GB GB1407780.4A patent/GB2511949B/en not_active Expired - Fee Related
- 2013-03-13 GB GB1304504.2A patent/GB2506462B/en not_active Expired - Fee Related
-
2014
- 2014-01-31 US US14/169,771 patent/US9792123B2/en active Active
- 2014-03-11 DE DE102014003434.8A patent/DE102014003434A1/de active Granted
- 2014-03-13 CN CN201710213424.XA patent/CN107102845B/zh active Active
- 2014-03-13 CN CN201410092214.6A patent/CN104049938B/zh active Active
-
2017
- 2017-09-18 US US15/707,059 patent/US10261798B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1873611A (zh) * | 2005-05-31 | 2006-12-06 | Arm有限公司 | 分支预测控制 |
US20080256347A1 (en) * | 2007-04-12 | 2008-10-16 | International Business Machines Corporation | Method, system, and computer program product for path-correlated indirect address predictions |
Also Published As
Publication number | Publication date |
---|---|
GB2506462A (en) | 2014-04-02 |
US9792123B2 (en) | 2017-10-17 |
GB2511949A (en) | 2014-09-17 |
CN104049938B (zh) | 2017-05-03 |
DE102014003434A1 (de) | 2014-09-18 |
CN107102845A (zh) | 2017-08-29 |
GB2511949B (en) | 2015-10-14 |
GB201304504D0 (en) | 2013-04-24 |
CN104049938A (zh) | 2014-09-17 |
US20180004529A1 (en) | 2018-01-04 |
US10261798B2 (en) | 2019-04-16 |
GB2506462B (en) | 2014-08-13 |
GB201407780D0 (en) | 2014-06-18 |
US20140281441A1 (en) | 2014-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107102845B (zh) | 间接分支预测 | |
CN105320519B (zh) | 使用长历史记录的条件分支预测 | |
US9921846B2 (en) | Global branch prediction using branch and fetch group history | |
CN103250131B (zh) | 包括用于早期远分支预测的影子缓存的单周期多分支预测 | |
US7962733B2 (en) | Branch prediction mechanisms using multiple hash functions | |
US10664280B2 (en) | Fetch ahead branch target buffer | |
US9201654B2 (en) | Processor and data processing method incorporating an instruction pipeline with conditional branch direction prediction for fast access to branch target instructions | |
US20060218385A1 (en) | Branch target address cache storing two or more branch target addresses per index | |
JP5231403B2 (ja) | スライドウィンドウブロックベースの分岐ターゲットアドレスキャッシュ | |
US20150032997A1 (en) | Tracking long ghv in high performance out-of-order superscalar processors | |
KR20130064002A (ko) | 이력에 의한 다음 인출 예측기 트레이닝 | |
EP3079068A1 (en) | Cache operation in a multi-threaded processor | |
US7647488B2 (en) | Information processing device with branch history restoration | |
US11442727B2 (en) | Controlling prediction functional blocks used by a branch predictor in a processor | |
US10963260B2 (en) | Branch predictor | |
US7130991B1 (en) | Method and apparatus for loop detection utilizing multiple loop counters and a branch promotion scheme | |
US20070061554A1 (en) | Branch predictor for a processor and method of predicting a conditional branch | |
US20190004805A1 (en) | Multi-tagged branch prediction table | |
JP2023545134A (ja) | 制御独立技法を採用するプロセッサ内で処理される命令について投機的予測を行うために使用される投機的履歴の回復 | |
US11157284B1 (en) | Predicting an outcome of an instruction following a flush |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Hertfordshire Applicant after: Mex Technology Co.,Ltd. Address before: Hertfordshire Applicant before: Hai Luo Software Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180731 Address after: California, USA Applicant after: Imagination Technologies Ltd. Address before: Hertfordshire Applicant before: Mex Technology Co.,Ltd. Effective date of registration: 20180731 Address after: Hertfordshire Applicant after: Hai Luo Software Co.,Ltd. Address before: Hertfordshire Applicant before: Imagination Technologies Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |