[go: up one dir, main page]

WO2007084202A3 - Processor core and method for managing branch misprediction in an out-of-order processor pipeline - Google Patents

Processor core and method for managing branch misprediction in an out-of-order processor pipeline Download PDF

Info

Publication number
WO2007084202A3
WO2007084202A3 PCT/US2006/041614 US2006041614W WO2007084202A3 WO 2007084202 A3 WO2007084202 A3 WO 2007084202A3 US 2006041614 W US2006041614 W US 2006041614W WO 2007084202 A3 WO2007084202 A3 WO 2007084202A3
Authority
WO
WIPO (PCT)
Prior art keywords
instruction
pipeline
processor
misprediction
processor core
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.)
Ceased
Application number
PCT/US2006/041614
Other languages
French (fr)
Other versions
WO2007084202A2 (en
Inventor
Karagada Ramarao Kishore
Kjeld Svendsen
Vidya Rajagopalan
Maria Ukanwa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MIPS Tech LLC
Original Assignee
MIPS Technologies Inc
MIPS Tech LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US11/261,655 external-priority patent/US7734901B2/en
Priority claimed from US11/261,654 external-priority patent/US7711934B2/en
Application filed by MIPS Technologies Inc, MIPS Tech LLC filed Critical MIPS Technologies Inc
Publication of WO2007084202A2 publication Critical patent/WO2007084202A2/en
Publication of WO2007084202A3 publication Critical patent/WO2007084202A3/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers

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

A processor core and method for managing branch misprediction in an out-of-order processor pipeline. In one embodiment, the pipeline of the processor core includes a front-end instruction fetch portion, a back-end instruction execution portion, and pipeline control logic. Operation of the instruction fetch portion is decoupled from operation of the instruction execution portion. Following detection of a control transfer misprediction, operation of the instruction fetch portion is halted and instructions residing in the instruction fetch portion are invalidated. When the instruction associated with the misprediction reaches a selected pipeline stage, instructions residing in the instruction execution portion of the pipeline are invalidated and the flow of instructions from the instruction fetch portion to the instruction execution portion of the processor pipeline is restarted. A mispredict instruction identification checker and instruction identification tags are used to determine if a control transfer instruction is permitted to redirect instruction fetching.
PCT/US2006/041614 2005-10-31 2006-10-26 Processor core and method for managing branch misprediction in an out-of-order processor pipeline Ceased WO2007084202A2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/261,655 US7734901B2 (en) 2005-10-31 2005-10-31 Processor core and method for managing program counter redirection in an out-of-order processor pipeline
US11/261,654 US7711934B2 (en) 2005-10-31 2005-10-31 Processor core and method for managing branch misprediction in an out-of-order processor pipeline
US11/261,654 2005-10-31
US11/261,655 2005-10-31

Publications (2)

Publication Number Publication Date
WO2007084202A2 WO2007084202A2 (en) 2007-07-26
WO2007084202A3 true WO2007084202A3 (en) 2007-10-04

Family

ID=38267515

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2006/041614 Ceased WO2007084202A2 (en) 2005-10-31 2006-10-26 Processor core and method for managing branch misprediction in an out-of-order processor pipeline

Country Status (2)

Country Link
TW (1) TW200745945A (en)
WO (1) WO2007084202A2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8145890B2 (en) * 2009-02-12 2012-03-27 Via Technologies, Inc. Pipelined microprocessor with fast conditional branch instructions based on static microcode-implemented instruction state
US20140156977A1 (en) * 2011-12-28 2014-06-05 Mark J. Dechene Enabling and disabling a second jump execution unit for branch misprediction
CN115617402B (en) * 2022-11-18 2023-04-07 北京数渡信息科技有限公司 Decoupling branch prediction method and device suitable for general processor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586278A (en) * 1994-03-01 1996-12-17 Intel Corporation Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor
US6079014A (en) * 1993-12-02 2000-06-20 Intel Corporation Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state
US6249862B1 (en) * 1996-05-17 2001-06-19 Advanced Micro Devices, Inc. Dependency table for reducing dependency checking hardware
US6760835B1 (en) * 2000-11-22 2004-07-06 Lsi Logic Corporation Instruction branch mispredict streaming

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6079014A (en) * 1993-12-02 2000-06-20 Intel Corporation Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state
US5586278A (en) * 1994-03-01 1996-12-17 Intel Corporation Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor
US6249862B1 (en) * 1996-05-17 2001-06-19 Advanced Micro Devices, Inc. Dependency table for reducing dependency checking hardware
US6760835B1 (en) * 2000-11-22 2004-07-06 Lsi Logic Corporation Instruction branch mispredict streaming

Also Published As

Publication number Publication date
TW200745945A (en) 2007-12-16
WO2007084202A2 (en) 2007-07-26

Similar Documents

Publication Publication Date Title
US10503511B2 (en) Circuit, system, and method for determining whether a branch instruction is predicted based on a capture range of a second instruction
EP1849063B1 (en) System and method of handling a branch misprediction
KR101099203B1 (en) Methods and apparatus for emulating the branch prediction behavior of an explicit subroutine call
US20040111594A1 (en) Multithreading recycle and dispatch mechanism
EP2087420B1 (en) Methods and apparatus for recognizing a subroutine call
CN102934075A (en) Methods and apparatus for changing a sequential flow of a program using advance notice techniques
JP2003523573A (en) System and method for reducing write traffic in a processor
IL183283A0 (en) Pre-decode error handling via branch correction
US7949861B2 (en) Method and apparatus for managing instruction flushing in a microprocessor's instruction pipeline
US20100146247A1 (en) Method and System for Managing Out of Order Dispatched Instruction Queue with Partially De-Coded Instruction Stream
WO2007085010A3 (en) Early conditional selection of an operand
WO2006094196A3 (en) Method and apparatus for power reduction in an heterogeneously- multi-pipelined processor
US7711934B2 (en) Processor core and method for managing branch misprediction in an out-of-order processor pipeline
CN107209662B (en) Instruction Dependency Prediction
WO2007084202A3 (en) Processor core and method for managing branch misprediction in an out-of-order processor pipeline
WO2006007075A3 (en) Selectively performing fetches for store operations during speculative execution
US20100306513A1 (en) Processor Core and Method for Managing Program Counter Redirection in an Out-of-Order Processor Pipeline
CN117170741A (en) A system to prevent pipeline flushing based on RISC-V
WO2004006090A3 (en) Method and apparatus for speculative instruction execution
CN1410884A (en) Guess execution command cancel device combined with exception treatment
Zero Basic Idea
HK1112087A (en) Conditional instruction execution via emissary instruction for condition evaluation

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06849307

Country of ref document: EP

Kind code of ref document: A2