CN103927149A - 间接分支预测 - Google Patents
间接分支预测 Download PDFInfo
- Publication number
- CN103927149A CN103927149A CN201410058279.9A CN201410058279A CN103927149A CN 103927149 A CN103927149 A CN 103927149A CN 201410058279 A CN201410058279 A CN 201410058279A CN 103927149 A CN103927149 A CN 103927149A
- Authority
- CN
- China
- Prior art keywords
- register
- instruction
- switch statement
- jump list
- currency
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 64
- 238000003860 storage Methods 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 claims 1
- 238000012544 monitoring process Methods 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
-
- 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/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)
- Devices For Executing Special Programs (AREA)
Abstract
Description
Claims (15)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1300608.5A GB201300608D0 (en) | 2013-01-14 | 2013-01-14 | Indirect branch prediction |
GB1300608.5 | 2013-01-14 | ||
GB1322389.6A GB2510966B (en) | 2013-01-14 | 2013-12-18 | Indirect branch prediction |
GB1322389.6 | 2013-12-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103927149A true CN103927149A (zh) | 2014-07-16 |
CN103927149B CN103927149B (zh) | 2018-10-16 |
Family
ID=47757932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410058279.9A Active CN103927149B (zh) | 2013-01-14 | 2014-01-14 | 间接分支预测 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9298467B2 (zh) |
CN (1) | CN103927149B (zh) |
DE (1) | DE102014000382A1 (zh) |
GB (2) | GB201300608D0 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203403A (zh) * | 2017-04-28 | 2017-09-26 | 李朝波 | 一种处理c语言switch/case语句的方法 |
CN108062236A (zh) * | 2016-11-07 | 2018-05-22 | 杭州华为数字技术有限公司 | 一种软硬件协同分支指令预测方法及装置 |
CN109783143A (zh) * | 2019-01-25 | 2019-05-21 | 贵州华芯通半导体技术有限公司 | 用于流水线指令流的控制方法和控制设备 |
CN111176729A (zh) * | 2018-11-13 | 2020-05-19 | 深圳市中兴微电子技术有限公司 | 一种信息处理方法、装置及计算机可读存储介质 |
CN111258649A (zh) * | 2020-01-21 | 2020-06-09 | Oppo广东移动通信有限公司 | 处理器、芯片和电子设备 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150206596A1 (en) * | 2014-01-21 | 2015-07-23 | Nvidia Corporation | Managing a ring buffer shared by multiple processing engines |
US11061682B2 (en) * | 2014-12-15 | 2021-07-13 | Hyperion Core, Inc. | Advanced processor architecture |
US20170046159A1 (en) * | 2015-08-14 | 2017-02-16 | Qualcomm Incorporated | Power efficient fetch adaptation |
EP3244300B1 (fr) * | 2016-02-24 | 2022-02-09 | STMicroelectronics (Rousset) SAS | Procédé et outil de génération d'un code programme configuré pour effectuer une vérification du flot de contrôle d'un autre code programme contenant des instructions de branchements indirects |
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 |
US10534609B2 (en) | 2017-08-18 | 2020-01-14 | International Business Machines Corporation | Code-specific affiliated register prediction |
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 |
US10884746B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Determining and predicting affiliated registers based on dynamic runtime control flow analysis |
US10884747B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Prediction of an affiliated register |
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 |
US11150904B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Concurrent prediction of branch addresses and update of register contents |
US10719328B2 (en) | 2017-08-18 | 2020-07-21 | International Business Machines Corporation | Determining and predicting derived values used in register-indirect branching |
US10248394B2 (en) * | 2017-08-18 | 2019-04-02 | International Business Machines Corporation | Utilizing created character index for switch statements |
US10705973B2 (en) | 2017-09-19 | 2020-07-07 | International Business Machines Corporation | Initializing a data structure for use in predicting table of contents pointer values |
US11061575B2 (en) | 2017-09-19 | 2021-07-13 | International Business Machines Corporation | Read-only table of contents register |
US10713050B2 (en) | 2017-09-19 | 2020-07-14 | International Business Machines Corporation | Replacing Table of Contents (TOC)-setting instructions in code with TOC predicting instructions |
US10620955B2 (en) | 2017-09-19 | 2020-04-14 | International Business Machines Corporation | Predicting a table of contents pointer value responsive to branching to a subroutine |
US10725918B2 (en) | 2017-09-19 | 2020-07-28 | International Business Machines Corporation | Table of contents cache entry having a pointer for a range of addresses |
US10884929B2 (en) | 2017-09-19 | 2021-01-05 | International Business Machines Corporation | Set table of contents (TOC) register instruction |
US10896030B2 (en) | 2017-09-19 | 2021-01-19 | International Business Machines Corporation | Code generation relating to providing table of contents pointer values |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1520547A (zh) * | 2001-06-29 | 2004-08-11 | �ʼҷ����ֵ�������˾ | 预测间接分支目标地址的方法、装置和编译器 |
US20040225838A1 (en) * | 2003-05-09 | 2004-11-11 | Biles Stuart David | Accessing items of architectural state in a data processing apparatus |
CN102037443A (zh) * | 2008-05-21 | 2011-04-27 | 高通股份有限公司 | 用于分支预测的多模式寄存器堆 |
CN103218209A (zh) * | 2012-01-23 | 2013-07-24 | 国际商业机器公司 | 控制分支预测逻辑的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5608886A (en) * | 1994-08-31 | 1997-03-04 | Exponential Technology, Inc. | Block-based branch prediction using a target finder array storing target sub-addresses |
US20110078425A1 (en) * | 2009-09-25 | 2011-03-31 | Shah Manish K | Branch prediction mechanism for predicting indirect branch targets |
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 |
-
2013
- 2013-01-14 GB GBGB1300608.5A patent/GB201300608D0/en not_active Ceased
- 2013-12-18 GB GB1322389.6A patent/GB2510966B/en not_active Expired - Fee Related
-
2014
- 2014-01-13 US US14/153,188 patent/US9298467B2/en active Active
- 2014-01-14 CN CN201410058279.9A patent/CN103927149B/zh active Active
- 2014-01-14 DE DE102014000382.5A patent/DE102014000382A1/de not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1520547A (zh) * | 2001-06-29 | 2004-08-11 | �ʼҷ����ֵ�������˾ | 预测间接分支目标地址的方法、装置和编译器 |
US20040225838A1 (en) * | 2003-05-09 | 2004-11-11 | Biles Stuart David | Accessing items of architectural state in a data processing apparatus |
CN102037443A (zh) * | 2008-05-21 | 2011-04-27 | 高通股份有限公司 | 用于分支预测的多模式寄存器堆 |
CN103218209A (zh) * | 2012-01-23 | 2013-07-24 | 国际商业机器公司 | 控制分支预测逻辑的方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108062236A (zh) * | 2016-11-07 | 2018-05-22 | 杭州华为数字技术有限公司 | 一种软硬件协同分支指令预测方法及装置 |
CN107203403A (zh) * | 2017-04-28 | 2017-09-26 | 李朝波 | 一种处理c语言switch/case语句的方法 |
CN107203403B (zh) * | 2017-04-28 | 2020-08-07 | 李朝波 | 一种处理c语言switch/case语句的方法 |
CN111176729A (zh) * | 2018-11-13 | 2020-05-19 | 深圳市中兴微电子技术有限公司 | 一种信息处理方法、装置及计算机可读存储介质 |
CN109783143A (zh) * | 2019-01-25 | 2019-05-21 | 贵州华芯通半导体技术有限公司 | 用于流水线指令流的控制方法和控制设备 |
CN111258649A (zh) * | 2020-01-21 | 2020-06-09 | Oppo广东移动通信有限公司 | 处理器、芯片和电子设备 |
CN111258649B (zh) * | 2020-01-21 | 2022-03-01 | Oppo广东移动通信有限公司 | 处理器、芯片和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
GB201300608D0 (en) | 2013-02-27 |
US20140201509A1 (en) | 2014-07-17 |
DE102014000382A1 (de) | 2014-07-17 |
GB2510966B (en) | 2015-06-03 |
US9298467B2 (en) | 2016-03-29 |
GB201322389D0 (en) | 2014-02-05 |
GB2510966A (en) | 2014-08-20 |
CN103927149B (zh) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103927149A (zh) | 间接分支预测 | |
CN205176828U (zh) | 条件分支预测器逻辑单元 | |
CN102934075B (zh) | 用于使用预先通知技术改变程序的顺序流程的方法和设备 | |
CN101427213B (zh) | 用于实现多态分支预测器的方法和装置 | |
CN100478871C (zh) | 从队列处理指令刷新的生存期计数器设计的系统和方法 | |
US8078852B2 (en) | Predictors with adaptive prediction threshold | |
EP3066560B1 (en) | A data processing apparatus and method for scheduling sets of threads on parallel processing lanes | |
CN105074655A (zh) | 用于取消对循环的数据预取请求的方法和设备 | |
US10430191B2 (en) | Methods and apparatus to compile instructions for a vector of instruction pointers processor architecture to enable speculative execution and avoid data corruption | |
CN109308191B (zh) | 分支预测方法及装置 | |
CN103365628A (zh) | 用于执行预解码时优化的指令的方法和系统 | |
CN102112964A (zh) | 分支目标缓存器分配 | |
US20150052339A1 (en) | Processor and control method of processor | |
CN109643237A (zh) | 分支目标缓冲器压缩 | |
US10423420B2 (en) | Stream based branch prediction index accelerator for multiple stream exits | |
CN104205820A (zh) | 用于加载保留和存储条件序列的解码时间指令优化 | |
CN116302106A (zh) | 用于促进分支预测单元的改善的带宽的设备、方法和系统 | |
US7228528B2 (en) | Building inter-block streams from a dynamic execution trace for a program | |
KR20090101061A (ko) | 프로세서 및 정보 처리 장치 | |
CN101371223A (zh) | 运算数的提早有条件选择 | |
US11080063B2 (en) | Processing device and method of controlling processing device | |
US20140344795A1 (en) | Computer-readable recording medium, compiling method, and information processing apparatus | |
US10430195B2 (en) | Stream based branch prediction index accelerator with power prediction | |
CN113918225A (zh) | 指令预测方法、指令数据处理装置、处理器以及存储介质 | |
US11507377B2 (en) | Arithmetic processing circuit and arithmetic processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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 |
Effective date of registration: 20180717 Address after: California, USA Applicant after: Imagination Technologies Ltd. Address before: Hertfordshire Applicant before: Mex Technology Co.,Ltd. Effective date of registration: 20180717 Address after: Hertfordshire Applicant after: Hai Luo Software Co.,Ltd. Address before: Hertfordshire Applicant before: Imagination Technologies Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |