ES2138051T3 - Metodo y aparato para la realizacion de un sistema de resolucion de bifurcaciones en cuatro etapas en un procesador informatico. - Google Patents

Metodo y aparato para la realizacion de un sistema de resolucion de bifurcaciones en cuatro etapas en un procesador informatico.

Info

Publication number
ES2138051T3
ES2138051T3 ES94307771T ES94307771T ES2138051T3 ES 2138051 T3 ES2138051 T3 ES 2138051T3 ES 94307771 T ES94307771 T ES 94307771T ES 94307771 T ES94307771 T ES 94307771T ES 2138051 T3 ES2138051 T3 ES 2138051T3
Authority
ES
Spain
Prior art keywords
branch
stage
instructions
instruction
final
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.)
Expired - Lifetime
Application number
ES94307771T
Other languages
English (en)
Inventor
Bradley D Hoyt
Glenn J Hinton
David B Papworth
Ashwani Kumar Gupta
Michael Alan Fetterman
Subramanian Natarajan
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.)
Intel Corp
Original Assignee
Intel Corp
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
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of ES2138051T3 publication Critical patent/ES2138051T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3848Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, 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

Abstract

EN ESTE INVENTO SE DESCRIBE UN SISTEMA DE RESOLUCION DE INSTRUCCIONES DE BIFURCACION DE CUATRO ETAPAS PARA UN PROCESADOR EN CASCADA. UNA PRIMERA ETAPA DEL SISTEMA DE RESOLUCION DE INSTRUCCIONES DE BIFURCACION, TAL COMO UNA UNIDAD DE RASTREO DE INSTRUCCIONES QUE PUEDE RASTREAR CONTINUAMENTE INSTRUCCIONES, PREDICE LA EXISTENCIA Y EL RESULTADO DE LAS INSTRUCCIONES DE BIFURCACION DENTRO DE UNA CORRIENTE DE INSTRUCCIONES. UNA SEGUNDA ETAPA DECODIFICA TODAS LAS INSTRUCCIONES RASTREADAS. SI LA ETAPA DE DECODIFICACION DETERMINA QUE UNA INSTRUCCION DE BIFURCACION PREDICHA POR LA PRIMERA ETAPA NO ES UNA INSTRUCCION DE BIFURCACION, LA ETAPA DE DECODIFICACION DESCARGA EL CANAL Y REINICIA EL PROCESADOR EN UNA DIRECCION CORRECTA. LA ETAPA DE DECODIFICACION VERIFICA TODAS LAS PREDICCIONES DE BIFURCACION HECHAS POR LA ETAPA DE PREDICCION DE BIFURCACION. FINALMENTE, LA ETAPA DE DECODIFICACION HACE PREDICCIONES DE BIFURCACION PARA LAS BIFURCACIONES NO PREDICHAS POR LA ETAPA DE PREDICCION DE BIFURCACION. UNATERCERA ETAPA EJECUTA TODAS LAS INSTRUCCIONES DE BIFURCACION PARA DETERMINAR UN RESULTADO DE BIFURCACION FINAL Y UNA DIRECCION OBJETO DE BIFURCACION FINAL. LA ETAPA DE EJECUCION DE BIFURCACION COMPARA EL RESULTADO DE BIFURCACION FINAL Y LA DIRECCION OBJETO DE BIFURCACION FINAL CON EL RESULTADO DE BIFURCACION PREDICHO Y LA DIRECCION OBJETO DE BIFURCACION PREDICHA PARA DETERMINAR SI EL PROCESADOR DEBE DE DESCARGAR EL EXTREMO DELANTERO DEL CANAL DEL MICROPROCESADOR Y REINICIAR EN UNA DIRECCION CORRECTA. UNA ETAPA FINAL DE RESOLUCION DE BIFURCACION RETIRA TODAS LAS INSTRUCCIONES DE BIFURCACION. LA ETAPA DE ELIMINACION ASEGURA QUE NO SE COMETEN PERMANENTEMENTE EN CUALQUIER INSTRUCCION RASTREADA DESPUES DE UN BIFURCACION MAL PREDICHA.
ES94307771T 1994-01-03 1994-10-21 Metodo y aparato para la realizacion de un sistema de resolucion de bifurcaciones en cuatro etapas en un procesador informatico. Expired - Lifetime ES2138051T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US17678594A 1994-01-03 1994-01-03

Publications (1)

Publication Number Publication Date
ES2138051T3 true ES2138051T3 (es) 2000-01-01

Family

ID=22645810

Family Applications (1)

Application Number Title Priority Date Filing Date
ES94307771T Expired - Lifetime ES2138051T3 (es) 1994-01-03 1994-10-21 Metodo y aparato para la realizacion de un sistema de resolucion de bifurcaciones en cuatro etapas en un procesador informatico.

Country Status (8)

Country Link
US (1) US5812839A (es)
EP (1) EP0661625B1 (es)
AT (1) ATE184407T1 (es)
DE (1) DE69420540T2 (es)
DK (1) DK0661625T3 (es)
ES (1) ES2138051T3 (es)
GR (1) GR3036841T3 (es)
SG (1) SG52391A1 (es)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822574A (en) * 1995-04-12 1998-10-13 Advanced Micro Devices, Inc. Functional unit with a pointer for mispredicted resolution, and a superscalar microprocessor employing the same
US5933651A (en) * 1995-09-29 1999-08-03 Matsushita Electric Works, Ltd. Programmable controller
WO1998002801A1 (en) * 1996-07-16 1998-01-22 Advanced Micro Devices, Inc. A functional unit with a pointer for mispredicted branch resolution, and a superscalar microprocessor employing the same
US6088793A (en) * 1996-12-30 2000-07-11 Intel Corporation Method and apparatus for branch execution on a multiple-instruction-set-architecture microprocessor
US6026477A (en) * 1997-12-31 2000-02-15 Intel Corporation Branch recovery mechanism to reduce processor front end stall time by providing path information for both correct and incorrect instructions mixed in the instruction pool
SE9901146D0 (sv) * 1998-11-16 1999-03-29 Ericsson Telefon Ab L M A processing system and method
SE9902373D0 (sv) * 1998-11-16 1999-06-22 Ericsson Telefon Ab L M A processing system and method
SE9901145D0 (sv) * 1998-11-16 1999-03-29 Ericsson Telefon Ab L M A processing system and method
SE9803901D0 (sv) * 1998-11-16 1998-11-16 Ericsson Telefon Ab L M a device for a service network
BR9915363B1 (pt) * 1998-11-16 2012-12-25 sistema de processamento hierÁrquico distribuÍdo com base em eventos, mÉtodo de processamento num sistema de processamento hierÁrquico distribuÍdo com base em eventos, e, sistema de comunicaÇço.
AU7099000A (en) * 1999-09-01 2001-03-26 Intel Corporation Branch instruction for processor
US7191309B1 (en) 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
US7546444B1 (en) 1999-09-01 2009-06-09 Intel Corporation Register set used in multithreaded parallel processor architecture
US6622241B1 (en) * 2000-02-18 2003-09-16 Hewlett-Packard Development Company, L.P. Method and apparatus for reducing branch prediction table pollution
DE10009677A1 (de) * 2000-02-29 2001-09-06 Infineon Technologies Ag Programmgesteuerte Einheit
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
SE0003446L (sv) * 2000-09-27 2002-03-28 Ericsson Telefon Ab L M En pipelinemikroprocessor och ett förfarnade relaterande därtill
US7020871B2 (en) 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US6895498B2 (en) * 2001-05-04 2005-05-17 Ip-First, Llc Apparatus and method for target address replacement in speculative branch target address cache
US6886093B2 (en) * 2001-05-04 2005-04-26 Ip-First, Llc Speculative hybrid branch direction predictor
US7200740B2 (en) * 2001-05-04 2007-04-03 Ip-First, Llc Apparatus and method for speculatively performing a return instruction in a microprocessor
US20020194462A1 (en) * 2001-05-04 2002-12-19 Ip First Llc Apparatus and method for selecting one of multiple target addresses stored in a speculative branch target address cache per instruction cache line
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
US7165168B2 (en) * 2003-01-14 2007-01-16 Ip-First, Llc Microprocessor with branch target address cache update queue
US20020194461A1 (en) * 2001-05-04 2002-12-19 Ip First Llc Speculative branch target address cache
US7707397B2 (en) * 2001-05-04 2010-04-27 Via Technologies, Inc. Variable group associativity branch target address cache delivering multiple target addresses per cache line
US7134005B2 (en) * 2001-05-04 2006-11-07 Ip-First, Llc Microprocessor that detects erroneous speculative prediction of branch instruction opcode byte
US7162619B2 (en) * 2001-07-03 2007-01-09 Ip-First, Llc Apparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer
US6823444B1 (en) * 2001-07-03 2004-11-23 Ip-First, Llc Apparatus and method for selectively accessing disparate instruction buffer stages based on branch target address cache hit and instruction stage wrap
US7234045B2 (en) * 2001-07-03 2007-06-19 Ip-First, Llc Apparatus and method for handling BTAC branches that wrap across instruction cache lines
US7203824B2 (en) * 2001-07-03 2007-04-10 Ip-First, Llc Apparatus and method for handling BTAC branches that wrap across instruction cache lines
DE10232488B4 (de) * 2001-08-08 2006-09-21 International Business Machines Corporation Verfahren und Prozessor zur Verzweigungsvorhersage mit zwei parallel durchsuchten Verzweigungsziel-Speichern
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7159097B2 (en) * 2002-04-26 2007-01-02 Ip-First, Llc Apparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
US20040111593A1 (en) * 2002-12-05 2004-06-10 International Business Machines Corporation Interrupt handler prediction method and system
US7143269B2 (en) * 2003-01-14 2006-11-28 Ip-First, Llc Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US7152154B2 (en) * 2003-01-16 2006-12-19 Ip-First, Llc. Apparatus and method for invalidation of redundant branch target address cache entries
US7185186B2 (en) 2003-01-14 2007-02-27 Ip-First, Llc Apparatus and method for resolving deadlock fetch conditions involving branch target address cache
US7178010B2 (en) * 2003-01-16 2007-02-13 Ip-First, Llc Method and apparatus for correcting an internal call/return stack in a microprocessor that detects from multiple pipeline stages incorrect speculative update of the call/return stack
US7237098B2 (en) * 2003-09-08 2007-06-26 Ip-First, Llc Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
GB0415851D0 (en) * 2004-07-15 2004-08-18 Imagination Tech Ltd Microprocessor output ports and control of instructions provided therefrom
DE102005001679B4 (de) * 2005-01-13 2008-11-13 Infineon Technologies Ag Mikroprozessor-Einrichtung, und Verfahren zur Branch-Prediktion für conditional Branch-Befehle in einer Mikroprozessor-Einrichtung
US7152155B2 (en) * 2005-02-18 2006-12-19 Qualcomm Incorporated System and method of correcting a branch misprediction
US20080072019A1 (en) * 2006-09-19 2008-03-20 Avinash Sodani Technique to clear bogus instructions from a processor pipeline
US7617387B2 (en) * 2006-09-27 2009-11-10 Qualcomm Incorporated Methods and system for resolving simultaneous predicted branch instructions
US7624254B2 (en) * 2007-01-24 2009-11-24 Qualcomm Incorporated Segmented pipeline flushing for mispredicted branches
US7870371B2 (en) * 2007-12-17 2011-01-11 Microsoft Corporation Target-frequency based indirect jump prediction for high-performance processors
US7890739B2 (en) * 2008-02-19 2011-02-15 Oracle America, Inc. Method and apparatus for recovering from branch misprediction
US8099586B2 (en) * 2008-12-30 2012-01-17 Oracle America, Inc. Branch misprediction recovery mechanism for microprocessors
US8909908B2 (en) * 2009-05-29 2014-12-09 Via Technologies, Inc. Microprocessor that refrains from executing a mispredicted branch in the presence of an older unretired cache-missing load instruction
US9268569B2 (en) * 2012-02-24 2016-02-23 Apple Inc. Branch misprediction behavior suppression on zero predicate branch mispredict
US20130318332A1 (en) * 2012-05-22 2013-11-28 Jeffry E. Gonion Branch misprediction behavior suppression using a branch optional instruction
US9563427B2 (en) * 2014-05-30 2017-02-07 International Business Machines Corporation Relative offset branching in a fixed-width reduced instruction set computing architecture
US9547494B2 (en) * 2014-05-30 2017-01-17 International Business Machines Corporation Absolute address branching in a fixed-width reduced instruction set computing architecture
US20160350116A1 (en) * 2015-05-29 2016-12-01 Qualcomm Incorporated Mitigating wrong-path effects in branch prediction
US11106466B2 (en) 2018-06-18 2021-08-31 International Business Machines Corporation Decoupling of conditional branches
DE102022125248B4 (de) 2022-09-30 2024-05-02 Oliver Bartels Prozessor und Computer mit mindestens einem Prozessor mit vorzeitiger Programmvariantenauswahl bei noch unbekannten Vergleichsergebnissen

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0150177A1 (en) * 1983-07-11 1985-08-07 Prime Computer, Inc. Data processing system
DE3752100T2 (de) * 1986-01-07 1997-12-11 Nec Corp Befehlsvorabrufgerät mit einer Schaltung zum Prüfen der Vorhersage eines Verzweigungsbefehls vor seiner Ausführung
US4991080A (en) * 1986-03-13 1991-02-05 International Business Machines Corporation Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5072364A (en) * 1989-05-24 1991-12-10 Tandem Computers Incorporated Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel
US5487156A (en) * 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
DE69130138T2 (de) * 1990-06-29 1999-05-06 Digital Equipment Corp Sprungvorhersageeinheit für hochleistungsfähigen Prozessor
JPH0820950B2 (ja) * 1990-10-09 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチ予測型分岐予測機構
US5265213A (en) * 1990-12-10 1993-11-23 Intel Corporation Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction
DE4211222B4 (de) * 1991-04-05 2009-05-28 Kabushiki Kaisha Toshiba, Kawasaki Abzweigungs-Vorhersage-Vorrichtung und Abzweigungs-Vorhersage-Verfahren für einen Super-Skalar-Prozessor
EP0547240B1 (en) * 1991-07-08 2000-01-12 Seiko Epson Corporation Risc microprocessor architecture implementing fast trap and exception state
US5442756A (en) * 1992-07-31 1995-08-15 Intel Corporation Branch prediction and resolution apparatus for a superscalar computer processor
US5367703A (en) * 1993-01-08 1994-11-22 International Business Machines Corporation Method and system for enhanced branch history prediction accuracy in a superscalar processor system
US5463745A (en) * 1993-12-22 1995-10-31 Intel Corporation Methods and apparatus for determining the next instruction pointer in an out-of-order execution computer system
US5465336A (en) * 1994-06-30 1995-11-07 International Business Machines Corporation Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system
US5542109A (en) * 1994-08-31 1996-07-30 Exponential Technology, Inc. Address tracking and branch resolution in a processor with multiple execution pipelines and instruction stream discontinuities
US5606672A (en) * 1995-01-27 1997-02-25 Intel Corporation Method and apparatus for multiplexing signals from a bus bridge to an ISA bus interface and an ATA bus interface

Also Published As

Publication number Publication date
DE69420540T2 (de) 2000-02-10
ATE184407T1 (de) 1999-09-15
US5812839A (en) 1998-09-22
GR3036841T3 (en) 2002-01-31
EP0661625A2 (en) 1995-07-05
EP0661625A3 (es) 1995-08-16
DE69420540D1 (de) 1999-10-14
EP0661625B1 (en) 1999-09-08
SG52391A1 (en) 1998-09-28
DK0661625T3 (da) 2000-04-03

Similar Documents

Publication Publication Date Title
ES2138051T3 (es) Metodo y aparato para la realizacion de un sistema de resolucion de bifurcaciones en cuatro etapas en un procesador informatico.
US5768576A (en) Method and apparatus for predicting and handling resolving return from subroutine instructions in a computer processor
US8521996B2 (en) Pipelined microprocessor with fast non-selective correct conditional branch instruction resolution
US5850543A (en) Microprocessor with speculative instruction pipelining storing a speculative register value within branch target buffer for use in speculatively executing instructions after a return
US5964868A (en) Method and apparatus for implementing a speculative return stack buffer
US6055630A (en) System and method for processing a plurality of branch instructions by a plurality of storage devices and pipeline units
US6314514B1 (en) Method and apparatus for correcting an internal call/return stack in a microprocessor that speculatively executes call and return instructions
GB2329735A (en) A processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction
US5542109A (en) Address tracking and branch resolution in a processor with multiple execution pipelines and instruction stream discontinuities
US6430674B1 (en) Processor executing plural instruction sets (ISA's) with ability to have plural ISA's in different pipeline stages at same time
US6728872B1 (en) Method and apparatus for verifying that instructions are pipelined in correct architectural sequence
EP0840208A2 (en) Improvements in or relating to microprocessors
JP2008530713A (ja) 分岐予測ミスを訂正するシステムおよび方法
JPH09185506A (ja) プロセッサ内で命令を実行する方法およびシステム
KR20090094335A (ko) 서브루틴 호를 인지하기 위한 방법들 및 장치
US7010675B2 (en) Fetch branch architecture for reducing branch penalty without branch prediction
US6662360B1 (en) Method and system for software control of hardware branch prediction mechanism in a data processor
US5226127A (en) Method and apparatus providing for conditional execution speed-up in a computer system through substitution of a null instruction for a synchronization instruction under predetermined conditions
US20050033941A1 (en) Early resolving instructions
US6170053B1 (en) Microprocessor with circuits, systems and methods for responding to branch instructions based on history of prediction accuracy
JP2004038255A (ja) 命令制御方法及びプロセッサ
US6871275B1 (en) Microprocessor having a branch predictor using speculative branch registers
US20050144427A1 (en) Processor including branch prediction mechanism for far jump and far call instructions
KR100331199B1 (ko) 병행 생성된 복수의 페치 어드레스 중 하나를 선택하여 메모리요구를 형성하는 명령 페치 방법 및 프로세서
US20020166042A1 (en) Speculative branch target allocation

Legal Events

Date Code Title Description
FG2A Definitive protection

Ref document number: 661625

Country of ref document: ES