CN104020982A - 具有高效返回预测能力的分支目标缓冲器 - Google Patents
具有高效返回预测能力的分支目标缓冲器 Download PDFInfo
- Publication number
- CN104020982A CN104020982A CN201410069516.1A CN201410069516A CN104020982A CN 104020982 A CN104020982 A CN 104020982A CN 201410069516 A CN201410069516 A CN 201410069516A CN 104020982 A CN104020982 A CN 104020982A
- Authority
- CN
- China
- Prior art keywords
- irrevocable
- entry
- return
- instruction
- data
- 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
- 239000000872 buffer Substances 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000012545 processing Methods 0.000 abstract description 5
- 230000009471 action Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 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/38—Concurrent instruction execution, e.g. pipeline, 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, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
-
- 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, 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, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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, 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
Abstract
Description
Claims (20)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/782,600 US20140250289A1 (en) | 2013-03-01 | 2013-03-01 | Branch Target Buffer With Efficient Return Prediction Capability |
US13/782,600 | 2013-03-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104020982A true CN104020982A (zh) | 2014-09-03 |
CN104020982B CN104020982B (zh) | 2018-06-15 |
Family
ID=50482770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410069516.1A Expired - Fee Related CN104020982B (zh) | 2013-03-01 | 2014-02-28 | 具有高效返回预测能力的分支目标缓冲器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20140250289A1 (zh) |
CN (1) | CN104020982B (zh) |
DE (1) | DE102014002898A1 (zh) |
GB (1) | GB2512732A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111886580A (zh) * | 2018-03-29 | 2020-11-03 | Arm有限公司 | 用于控制分支预测的装置和方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11099849B2 (en) * | 2016-09-01 | 2021-08-24 | Oracle International Corporation | Method for reducing fetch cycles for return-type instructions |
US10846089B2 (en) | 2017-08-31 | 2020-11-24 | MIPS Tech, LLC | Unified logic for aliased processor instructions |
US11055098B2 (en) * | 2018-07-24 | 2021-07-06 | Advanced Micro Devices, Inc. | Branch target buffer with early return prediction |
US11080062B2 (en) | 2019-01-12 | 2021-08-03 | MIPS Tech, LLC | Address manipulation using indices and tags |
US20220197657A1 (en) * | 2020-12-22 | 2022-06-23 | Intel Corporation | Segmented branch target buffer based on branch instruction type |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5768576A (en) * | 1994-01-04 | 1998-06-16 | Intel Corporation | Method and apparatus for predicting and handling resolving return from subroutine instructions in a computer processor |
US5978909A (en) * | 1997-11-26 | 1999-11-02 | Intel Corporation | System for speculative branch target prediction having a dynamic prediction history buffer and a static prediction history buffer |
US6021489A (en) * | 1997-06-30 | 2000-02-01 | Intel Corporation | Apparatus and method for sharing a branch prediction unit in a microprocessor implementing a two instruction set architecture |
US6253315B1 (en) * | 1998-08-06 | 2001-06-26 | Intel Corporation | Return address predictor that uses branch instructions to track a last valid return address |
US6279106B1 (en) * | 1998-09-21 | 2001-08-21 | Advanced Micro Devices, Inc. | Method for reducing branch target storage by calculating direct branch targets on the fly |
CN1397880A (zh) * | 2001-05-04 | 2003-02-19 | 智慧第一公司 | 附有第二预测装置的假想分支目标地址高速缓存 |
CN102112964A (zh) * | 2008-07-29 | 2011-06-29 | 飞思卡尔半导体公司 | 分支目标缓存器分配 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5964868A (en) * | 1996-05-15 | 1999-10-12 | Intel Corporation | Method and apparatus for implementing a speculative return stack buffer |
US5850543A (en) * | 1996-10-30 | 1998-12-15 | Texas Instruments Incorporated | Microprocessor with speculative instruction pipelining storing a speculative register value within branch target buffer for use in speculatively executing instructions after a return |
US5935238A (en) * | 1997-06-19 | 1999-08-10 | Sun Microsystems, Inc. | Selection from multiple fetch addresses generated concurrently including predicted and actual target by control-flow instructions in current and previous instruction bundles |
US6609194B1 (en) * | 1999-11-12 | 2003-08-19 | Ip-First, Llc | Apparatus for performing branch target address calculation based on branch type |
US6721876B1 (en) * | 2000-05-25 | 2004-04-13 | Advanced Micro Devices, Inc. | Branch predictor index generation using varied bit positions or bit order reversal |
JP3805339B2 (ja) * | 2001-06-29 | 2006-08-02 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 分岐目標を予測する方法、プロセッサ、及びコンパイラ |
US7266676B2 (en) * | 2003-03-21 | 2007-09-04 | Analog Devices, Inc. | Method and apparatus for branch prediction based on branch targets utilizing tag and data arrays |
JP2006040173A (ja) * | 2004-07-29 | 2006-02-09 | Fujitsu Ltd | 分岐予測装置および分岐予測方法 |
US7409535B2 (en) * | 2005-04-20 | 2008-08-05 | International Business Machines Corporation | Branch target prediction for multi-target branches by identifying a repeated pattern |
US8127119B2 (en) * | 2008-12-05 | 2012-02-28 | The Board Of Regents Of The University Of Texas System | Control-flow prediction using multiple independent predictors |
US20110078425A1 (en) * | 2009-09-25 | 2011-03-31 | Shah Manish K | Branch prediction mechanism for predicting indirect branch targets |
-
2013
- 2013-03-01 US US13/782,600 patent/US20140250289A1/en not_active Abandoned
-
2014
- 2014-02-25 GB GB1403301.3A patent/GB2512732A/en not_active Withdrawn
- 2014-02-27 DE DE102014002898.4A patent/DE102014002898A1/de not_active Withdrawn
- 2014-02-28 CN CN201410069516.1A patent/CN104020982B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5768576A (en) * | 1994-01-04 | 1998-06-16 | Intel Corporation | Method and apparatus for predicting and handling resolving return from subroutine instructions in a computer processor |
US6021489A (en) * | 1997-06-30 | 2000-02-01 | Intel Corporation | Apparatus and method for sharing a branch prediction unit in a microprocessor implementing a two instruction set architecture |
US5978909A (en) * | 1997-11-26 | 1999-11-02 | Intel Corporation | System for speculative branch target prediction having a dynamic prediction history buffer and a static prediction history buffer |
US6253315B1 (en) * | 1998-08-06 | 2001-06-26 | Intel Corporation | Return address predictor that uses branch instructions to track a last valid return address |
US6279106B1 (en) * | 1998-09-21 | 2001-08-21 | Advanced Micro Devices, Inc. | Method for reducing branch target storage by calculating direct branch targets on the fly |
CN1397880A (zh) * | 2001-05-04 | 2003-02-19 | 智慧第一公司 | 附有第二预测装置的假想分支目标地址高速缓存 |
CN102112964A (zh) * | 2008-07-29 | 2011-06-29 | 飞思卡尔半导体公司 | 分支目标缓存器分配 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111886580A (zh) * | 2018-03-29 | 2020-11-03 | Arm有限公司 | 用于控制分支预测的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140250289A1 (en) | 2014-09-04 |
CN104020982B (zh) | 2018-06-15 |
GB201403301D0 (en) | 2014-04-09 |
GB2512732A (en) | 2014-10-08 |
DE102014002898A1 (de) | 2014-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104020982A (zh) | 具有高效返回预测能力的分支目标缓冲器 | |
US9715389B2 (en) | Dependent instruction suppression | |
US9817667B2 (en) | Techniques for scheduling operations at an instruction pipeline | |
TW201128534A (en) | Method and system for generating software transaction-level modeling (TLM) model | |
CN101329638A (zh) | 程序代码的并行性的分析方法和系统 | |
CN116126333A (zh) | 自动化编译的系统和方法 | |
WO2016140756A1 (en) | Register renaming in multi-core block-based instruction set architecture | |
CN105408859A (zh) | 用于指令调度的方法和系统 | |
US11636122B2 (en) | Method and apparatus for data mining from core traces | |
US9342334B2 (en) | Simulating vector execution | |
US20140297996A1 (en) | Multiple hash table indexing | |
EP3335109A1 (en) | Determining prefetch instructions based on instruction encoding | |
US9529654B2 (en) | Recoverable and fault-tolerant CPU core and control method thereof | |
JP5514211B2 (ja) | 分岐オーバーライドを用いたプロセッサ実行のシミュレーション | |
CN103098058A (zh) | 根据算法和规格的自动最佳集成电路生成器 | |
KR20140068863A (ko) | 스케일링가능한 병렬 프로세서를 위한 시스템, 방법 및 장치 | |
CN101561833B (zh) | 专用指令集处理器的设计方法 | |
US7110934B2 (en) | Analysis of the performance of a portion of a data processing system | |
US11782897B2 (en) | System and method for multiplexer tree indexing | |
US7308548B2 (en) | Processor organizing apparatus and method for organize a pipeline processor | |
US20170115973A1 (en) | Operating method of semiconductor device and semiconductor system | |
US9330216B2 (en) | Integrated circuit design synthesis using slack diagrams | |
US9652305B2 (en) | Tracking source availability for instructions in a scheduler instruction queue | |
US11048843B1 (en) | Dynamic netlist modification of compacted data arrays in an emulation system | |
Kawashima et al. | Register port prediction for a banked register file |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: American California Patentee after: Imagination Technologies Ltd. Address before: American California Patentee before: Imagination Technology Co.,Ltd. Address after: American California Patentee after: Imagination Technology Co.,Ltd. Address before: American California Patentee before: MIPS Technologies, Inc. |
|
CP01 | Change in the name or title of a patent holder | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180615 Termination date: 20200228 |
|
CF01 | Termination of patent right due to non-payment of annual fee |