GB2401456A - Processor with delayed branch resolution - Google Patents
Processor with delayed branch resolution Download PDFInfo
- Publication number
- GB2401456A GB2401456A GB0417085A GB0417085A GB2401456A GB 2401456 A GB2401456 A GB 2401456A GB 0417085 A GB0417085 A GB 0417085A GB 0417085 A GB0417085 A GB 0417085A GB 2401456 A GB2401456 A GB 2401456A
- Authority
- GB
- United Kingdom
- Prior art keywords
- branch
- instruction
- processor
- resteering
- resolution
- 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
- 230000003111 delayed effect Effects 0.000 title 1
- 230000003252 repetitive effect Effects 0.000 abstract 2
- 230000001934 delay Effects 0.000 abstract 1
- 238000011010 flushing procedure Methods 0.000 abstract 1
- 238000000034 method Methods 0.000 abstract 1
- 230000037361 pathway Effects 0.000 abstract 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/30058—Conditional 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, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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/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
Abstract
A processor (402) avoids or eliminates repetitive replay conditions and frequent instruction resteering through various techniques including resteering the fetch after the branch instruction retires, and delaying branch resolution. A processor (402) resolves conditional branches and avoids repetitive resteering by delaying branch resolution. The processor (402) has an instruction pipeline (916) with inserted delay in branch condition and replay control pathways. For example, an instruction sequence that includes a load instruction, followed by a subtract instruction then a conditional branch, delays branch resolution to allow time for analysis to determine whether the condition branch has resolved correctly. Eliminating incorrect branch resolutions prevents flushing of correctly predicted branches.
Description
GB 2401456 A continuation (74) Agent and/or Address for Service: W P
Thompson & Co Drury Lane, LONDON, WC2B 5SQ, United Kingdom
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US35546402P | 2002-02-05 | 2002-02-05 | |
US10/095,397 US7076640B2 (en) | 2002-02-05 | 2002-03-11 | Processor that eliminates mis-steering instruction fetch resulting from incorrect resolution of mis-speculated branch instructions |
PCT/US2003/003187 WO2003067424A2 (en) | 2002-02-05 | 2003-02-04 | Processor with delayed branch resolution |
Publications (3)
Publication Number | Publication Date |
---|---|
GB0417085D0 GB0417085D0 (en) | 2004-09-01 |
GB2401456A true GB2401456A (en) | 2004-11-10 |
GB2401456B GB2401456B (en) | 2006-07-26 |
Family
ID=27667890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB0417085A Expired - Fee Related GB2401456B (en) | 2002-02-05 | 2003-02-04 | Delaying a branch instruction allowing determination of correctness |
Country Status (4)
Country | Link |
---|---|
US (1) | US7076640B2 (en) |
AU (1) | AU2003219704A1 (en) |
GB (1) | GB2401456B (en) |
WO (1) | WO2003067424A2 (en) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7406587B1 (en) * | 2002-07-31 | 2008-07-29 | Silicon Graphics, Inc. | Method and system for renaming registers in a microprocessor |
US7653912B2 (en) * | 2003-05-30 | 2010-01-26 | Steven Frank | Virtual processor methods and apparatus with unified event notification and consumer-producer memory operations |
US7111153B2 (en) * | 2003-09-30 | 2006-09-19 | Intel Corporation | Early data return indication mechanism |
US7580914B2 (en) * | 2003-12-24 | 2009-08-25 | Intel Corporation | Method and apparatus to improve execution of a stored program |
US7254700B2 (en) * | 2005-02-11 | 2007-08-07 | International Business Machines Corporation | Fencing off instruction buffer until re-circulation of rejected preceding and branch instructions to avoid mispredict flush |
US7634644B2 (en) * | 2006-03-13 | 2009-12-15 | Sun Microsystems, Inc. | Effective elimination of delay slot handling from a front section of a processor pipeline |
US7647486B2 (en) | 2006-05-02 | 2010-01-12 | Atmel Corporation | Method and system having instructions with different execution times in different modes, including a selected execution time different from default execution times in a first mode and a random execution time in a second mode |
US7752350B2 (en) * | 2007-02-23 | 2010-07-06 | International Business Machines Corporation | System and method for efficient implementation of software-managed cache |
US7707398B2 (en) * | 2007-11-13 | 2010-04-27 | Applied Micro Circuits Corporation | System and method for speculative global history prediction updating |
US9342432B2 (en) | 2011-04-04 | 2016-05-17 | International Business Machines Corporation | Hardware performance-monitoring facility usage after context swaps |
US8868886B2 (en) | 2011-04-04 | 2014-10-21 | International Business Machines Corporation | Task switch immunized performance monitoring |
US20130055033A1 (en) | 2011-08-22 | 2013-02-28 | International Business Machines Corporation | Hardware-assisted program trace collection with selectable call-signature capture |
US9354886B2 (en) | 2011-11-28 | 2016-05-31 | Apple Inc. | Maintaining the integrity of an execution return address stack |
US9405545B2 (en) * | 2011-12-30 | 2016-08-02 | Intel Corporation | Method and apparatus for cutting senior store latency using store prefetching |
US9405544B2 (en) * | 2013-05-14 | 2016-08-02 | Apple Inc. | Next fetch predictor return address stack |
US9946549B2 (en) | 2015-03-04 | 2018-04-17 | Qualcomm Incorporated | Register renaming in block-based instruction set architecture |
US10296463B2 (en) | 2016-01-07 | 2019-05-21 | Samsung Electronics Co., Ltd. | Instruction prefetcher dynamically controlled by readily available prefetcher accuracy |
US10455045B2 (en) | 2016-09-06 | 2019-10-22 | Samsung Electronics Co., Ltd. | Automatic data replica manager in distributed caching and data processing systems |
US10467195B2 (en) | 2016-09-06 | 2019-11-05 | Samsung Electronics Co., Ltd. | Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system |
US10747539B1 (en) | 2016-11-14 | 2020-08-18 | Apple Inc. | Scan-on-fill next fetch target prediction |
US10496647B2 (en) * | 2017-04-18 | 2019-12-03 | Microsoft Technology Licensing, Llc | Delay detection in query processing |
CN109101276B (en) * | 2018-08-14 | 2020-05-05 | 阿里巴巴集团控股有限公司 | Method for executing instruction in CPU |
CN110007966A (en) * | 2019-04-10 | 2019-07-12 | 龚伟峰 | A method of it reducing memory and reads random ordering |
US20220091852A1 (en) * | 2020-09-22 | 2022-03-24 | Intel Corporation | Instruction Set Architecture and Microarchitecture for Early Pipeline Re-steering Using Load Address Prediction to Mitigate Branch Misprediction Penalties |
US11928472B2 (en) | 2020-09-26 | 2024-03-12 | Intel Corporation | Branch prefetch mechanisms for mitigating frontend branch resteers |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5765037A (en) * | 1985-10-31 | 1998-06-09 | Biax Corporation | System for executing instructions with delayed firing times |
US6052775A (en) * | 1997-06-25 | 2000-04-18 | Sun Microsystems, Inc. | Method for non-intrusive cache fills and handling of load misses |
WO2002003200A2 (en) * | 2000-06-30 | 2002-01-10 | Intel Corporation | Method and apparatus to replay transformed instructions |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04366429A (en) * | 1991-06-14 | 1992-12-18 | Toshiba Corp | Objective lens drive device |
US5564118A (en) * | 1992-11-12 | 1996-10-08 | Digital Equipment Corporation | Past-history filtered branch prediction |
US5519841A (en) * | 1992-11-12 | 1996-05-21 | Digital Equipment Corporation | Multi instruction register mapper |
US6269426B1 (en) | 1997-06-24 | 2001-07-31 | Sun Microsystems, Inc. | Method for operating a non-blocking hierarchical cache throttle |
US6240502B1 (en) | 1997-06-25 | 2001-05-29 | Sun Microsystems, Inc. | Apparatus for dynamically reconfiguring a processor |
US5987594A (en) * | 1997-06-25 | 1999-11-16 | Sun Microsystems, Inc. | Apparatus for executing coded dependent instructions having variable latencies |
US5898853A (en) | 1997-06-25 | 1999-04-27 | Sun Microsystems, Inc. | Apparatus for enforcing true dependencies in an out-of-order processor |
US5958047A (en) | 1997-06-25 | 1999-09-28 | Sun Microsystems, Inc. | Method for precise architectural update in an out-of-order processor |
US6058472A (en) | 1997-06-25 | 2000-05-02 | Sun Microsystems, Inc. | Apparatus for maintaining program correctness while allowing loads to be boosted past stores in an out-of-order machine |
US6085305A (en) | 1997-06-25 | 2000-07-04 | Sun Microsystems, Inc. | Apparatus for precise architectural update in an out-of-order processor |
US5850533A (en) | 1997-06-25 | 1998-12-15 | Sun Microsystems, Inc. | Method for enforcing true dependencies in an out-of-order processor |
US5838988A (en) | 1997-06-25 | 1998-11-17 | Sun Microsystems, Inc. | Computer product for precise architectural update in an out-of-order processor |
US6226713B1 (en) | 1998-01-21 | 2001-05-01 | Sun Microsystems, Inc. | Apparatus and method for queueing structures in a multi-level non-blocking cache subsystem |
US6272623B1 (en) | 1999-01-25 | 2001-08-07 | Sun Microsystems, Inc. | Methods and apparatus for branch prediction using hybrid history with index sharing |
US6952764B2 (en) * | 2001-12-31 | 2005-10-04 | Intel Corporation | Stopping replay tornadoes |
US6912648B2 (en) * | 2001-12-31 | 2005-06-28 | Intel Corporation | Stick and spoke replay with selectable delays |
-
2002
- 2002-03-11 US US10/095,397 patent/US7076640B2/en not_active Expired - Lifetime
-
2003
- 2003-02-04 WO PCT/US2003/003187 patent/WO2003067424A2/en not_active Application Discontinuation
- 2003-02-04 GB GB0417085A patent/GB2401456B/en not_active Expired - Fee Related
- 2003-02-04 AU AU2003219704A patent/AU2003219704A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5765037A (en) * | 1985-10-31 | 1998-06-09 | Biax Corporation | System for executing instructions with delayed firing times |
US6052775A (en) * | 1997-06-25 | 2000-04-18 | Sun Microsystems, Inc. | Method for non-intrusive cache fills and handling of load misses |
WO2002003200A2 (en) * | 2000-06-30 | 2002-01-10 | Intel Corporation | Method and apparatus to replay transformed instructions |
Also Published As
Publication number | Publication date |
---|---|
WO2003067424A3 (en) | 2004-02-26 |
US7076640B2 (en) | 2006-07-11 |
AU2003219704A1 (en) | 2003-09-02 |
US20030149865A1 (en) | 2003-08-07 |
AU2003219704A8 (en) | 2003-09-02 |
GB2401456B (en) | 2006-07-26 |
WO2003067424A2 (en) | 2003-08-14 |
GB0417085D0 (en) | 2004-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
GB2401456A (en) | Processor with delayed branch resolution | |
GB0106953D0 (en) | Neufofibrillary labels | |
WO2006096569A3 (en) | Forward looking branch target address caching | |
WO2001040941A3 (en) | Hardware debugging in a hardware description language | |
AU2003303598A8 (en) | Compositions, methods, and systems for inferring bovine breed | |
AUPP375498A0 (en) | A method for creating a network positioning system (NPS) | |
DK1067913T3 (en) | Compositions and Methods for Adjusting Steroid Hormone Metabolism by Facilitated Absorption of Hydrophobic Dietary Compounds | |
EP0355069A3 (en) | Variable delay branch system | |
GB2361564A (en) | A processor pipeline including instruction replay | |
BR0316716A (en) | Chemically Modified Human Growth Hormone Conjugates | |
EP1253600A3 (en) | Memory tester | |
WO2002062369A3 (en) | Uroguanylin and cyclooxygenase-2 inhibitor combinations for inhibition of intestinal cancer | |
WO2007145839A3 (en) | Digital pulsed phase locked loop | |
EP1280052A3 (en) | Branch fetch architecture for reducing branch penalty without branch prediction | |
AU2967799A (en) | Method for reducing false target echo indications | |
PL1820509T3 (en) | Therapeutic preparation of very high purity FVlla and method for obtaining same | |
WO2002027341A3 (en) | Race condition detection and expression | |
EP1136079A4 (en) | Agents for retarding change of hormone-dependent cancer into hormone-independent cancer | |
WO1999063979A3 (en) | Inhibition of δ-9-desaturase activity by saponins | |
AU2002212966A1 (en) | Calibration standards, methods, and kits for water determination by karl fischer titration | |
EP1113356A3 (en) | Method and apparatus for reducing the size of code in a processor with an exposed pipeline | |
FR2805367B1 (en) | EMULATION OF CONNECTION INSTRUCTION | |
라면 et al. | SS kkk kkk kkk kkkk kkkS kkkkS k | |
새해 et al. | cöyright (c) 2003 NuriMedia Co., Ltd. | |
AU2003271623A1 (en) | Method and computer system for event handling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PCNP | Patent ceased through non-payment of renewal fee |
Effective date: 20070204 |