DE602004011889D1 - Anordnung und Verfahren zur Durchführung einer frühen Korrektur von falschen Vorhersagen beim bedingten Verzweigungsbefehl - Google Patents

Anordnung und Verfahren zur Durchführung einer frühen Korrektur von falschen Vorhersagen beim bedingten Verzweigungsbefehl

Info

Publication number
DE602004011889D1
DE602004011889D1 DE602004011889T DE602004011889T DE602004011889D1 DE 602004011889 D1 DE602004011889 D1 DE 602004011889D1 DE 602004011889 T DE602004011889 T DE 602004011889T DE 602004011889 T DE602004011889 T DE 602004011889T DE 602004011889 D1 DE602004011889 D1 DE 602004011889D1
Authority
DE
Germany
Prior art keywords
arrangement
branch instruction
conditional branch
early correction
false predictions
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
DE602004011889T
Other languages
English (en)
Other versions
DE602004011889T2 (de
Inventor
Gerard M Col
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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of DE602004011889D1 publication Critical patent/DE602004011889D1/de
Application granted granted Critical
Publication of DE602004011889T2 publication Critical patent/DE602004011889T2/de
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/30094Condition code generation, e.g. Carry, Zero flag
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • 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
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • 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 or 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 or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

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)
  • Executing Machine-Instructions (AREA)
DE602004011889T 2004-02-04 2004-09-14 Anordnung und Verfahren zur Durchführung einer frühen Korrektur von falschen Vorhersagen beim bedingten Verzweigungsbefehl Expired - Lifetime DE602004011889T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US771682 2004-02-04
US10/771,682 US7107438B2 (en) 2003-02-04 2004-02-04 Pipelined microprocessor, apparatus, and method for performing early correction of conditional branch instruction mispredictions

Publications (2)

Publication Number Publication Date
DE602004011889D1 true DE602004011889D1 (de) 2008-04-03
DE602004011889T2 DE602004011889T2 (de) 2009-02-26

Family

ID=34679365

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004011889T Expired - Lifetime DE602004011889T2 (de) 2004-02-04 2004-09-14 Anordnung und Verfahren zur Durchführung einer frühen Korrektur von falschen Vorhersagen beim bedingten Verzweigungsbefehl

Country Status (5)

Country Link
US (1) US7107438B2 (de)
EP (1) EP1562107B1 (de)
CN (1) CN100377078C (de)
DE (1) DE602004011889T2 (de)
TW (1) TWI288351B (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617387B2 (en) * 2006-09-27 2009-11-10 Qualcomm Incorporated Methods and system for resolving simultaneous predicted branch instructions
US7984279B2 (en) * 2006-11-03 2011-07-19 Qualcomm Incorporated System and method for using a working global history register
US20080222392A1 (en) * 2007-03-09 2008-09-11 On Demand Microelectronics Method and arrangements for pipeline processing of instructions
US7711935B2 (en) * 2007-04-30 2010-05-04 Netlogic Microsystems, Inc. Universal branch identifier for invalidation of speculative instructions
US7802078B2 (en) * 2008-09-09 2010-09-21 Via Technologies, Inc. REP MOVE string instruction execution by selecting loop microinstruction sequence or unrolled sequence based on flag state indicative of low count repeat
US7979675B2 (en) * 2009-02-12 2011-07-12 Via Technologies, Inc. Pipelined microprocessor with fast non-selective correct conditional branch instruction resolution
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
EP2624126B1 (de) * 2011-04-07 2016-11-02 VIA Technologies, Inc. Effiziente konditionale Arithmetik- und Logikeinheit- (ALU) -Anweisung in leseanschlussbegrenztem Registerdatei-Mikroprozessor
US9128701B2 (en) * 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation
US20160170770A1 (en) * 2014-12-12 2016-06-16 Qualcomm Incorporated Providing early instruction execution in an out-of-order (ooo) processor, and related apparatuses, methods, and computer-readable media
US10545766B2 (en) 2017-04-18 2020-01-28 International Business Machines Corporation Register restoration using transactional memory register snapshots
US10963261B2 (en) 2017-04-18 2021-03-30 International Business Machines Corporation Sharing snapshots across save requests
US10838733B2 (en) 2017-04-18 2020-11-17 International Business Machines Corporation Register context restoration based on rename register recovery
US10782979B2 (en) 2017-04-18 2020-09-22 International Business Machines Corporation Restoring saved architected registers and suppressing verification of registers to be restored
US10572265B2 (en) 2017-04-18 2020-02-25 International Business Machines Corporation Selecting register restoration or register reloading
US11010192B2 (en) 2017-04-18 2021-05-18 International Business Machines Corporation Register restoration using recovery buffers
US10740108B2 (en) 2017-04-18 2020-08-11 International Business Machines Corporation Management of store queue based on restoration operation
GB2592661B (en) * 2020-03-05 2022-05-11 Advanced Risc Mach Ltd An apparatus and method for performing branch prediction
TWI785880B (zh) * 2021-07-06 2022-12-01 阿比特電子科技股份有限公司 錯誤偵測校正方法及其電路
CN117008977B (zh) * 2023-08-08 2024-03-19 上海合芯数字科技有限公司 一种可变执行周期的指令执行方法、系统和计算机设备

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU553416B2 (en) * 1984-02-24 1986-07-17 Fujitsu Limited Pipeline processing
JP2667849B2 (ja) 1988-01-06 1997-10-27 株式会社日立製作所 情報処理装置
US5093777A (en) 1989-06-12 1992-03-03 Bull Hn Information Systems Inc. Method and apparatus for predicting address of a subsequent cache request upon analyzing address patterns stored in separate miss stack
US5487153A (en) * 1991-08-30 1996-01-23 Adaptive Solutions, Inc. Neural network sequencer and interface apparatus
US5442767A (en) * 1992-10-23 1995-08-15 International Business Machines Corporation Address prediction to avoid address generation interlocks in computer systems
US5493669A (en) * 1993-03-03 1996-02-20 Motorola, Inc. Data processor for simultaneously searching two fields of the rename buffer having first and second most recently allogated bits
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
US6021471A (en) * 1994-11-15 2000-02-01 Advanced Micro Devices, Inc. Multiple level cache control system with address and data pipelines
CN1159648C (zh) * 1994-12-02 2004-07-28 现代电子美国公司 有限游程转移预测方法
US5701426A (en) * 1995-03-31 1997-12-23 Bull Information Systems Inc. Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio
US5606682A (en) * 1995-04-07 1997-02-25 Motorola Inc. Data processor with branch target address cache and subroutine return address cache and method of operation
US5768610A (en) * 1995-06-07 1998-06-16 Advanced Micro Devices, Inc. Lookahead register value generator and a superscalar microprocessor employing same
US5812813A (en) * 1996-07-29 1998-09-22 Integrated Device Technology, Inc. Apparatus and method for of register changes during execution of a micro instruction tracking sequence
US5867724A (en) * 1997-05-30 1999-02-02 National Semiconductor Corporation Integrated routing and shifting circuit and method of operation
US6085292A (en) * 1997-06-05 2000-07-04 Digital Equipment Corporation Apparatus and method for providing non-blocking pipelined cache
US6085305A (en) * 1997-06-25 2000-07-04 Sun Microsystems, Inc. Apparatus for precise architectural update in an out-of-order processor
US6112293A (en) * 1997-11-17 2000-08-29 Advanced Micro Devices, Inc. Processor configured to generate lookahead results from operand collapse unit and for inhibiting receipt/execution of the first instruction based on the lookahead result
US6209076B1 (en) * 1997-11-18 2001-03-27 Intrinsity, Inc. Method and apparatus for two-stage address generation
US6065103A (en) * 1997-12-16 2000-05-16 Advanced Micro Devices, Inc. Speculative store buffer
US6148391A (en) * 1998-03-26 2000-11-14 Sun Microsystems, Inc. System for simultaneously accessing one or more stack elements by multiple functional units using real stack addresses
JP3499135B2 (ja) * 1998-06-29 2004-02-23 富士通株式会社 情報処理装置
US6367004B1 (en) * 1998-12-31 2002-04-02 Intel Corporation Method and apparatus for predicting a predicate based on historical information and the least significant bits of operands to be compared
US6343359B1 (en) * 1999-05-18 2002-01-29 Ip-First, L.L.C. Result forwarding cache
US6393555B1 (en) * 1999-08-05 2002-05-21 Advanced Micro Devices, Inc. Rapid execution of FCMOV following FCOMI by storing comparison result in temporary register in floating point unit
US6412043B1 (en) * 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
GB2363480B (en) * 2000-06-13 2002-05-08 Siroyan Ltd Predicated execution of instructions in processors
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

Also Published As

Publication number Publication date
TWI288351B (en) 2007-10-11
US7107438B2 (en) 2006-09-12
EP1562107B1 (de) 2008-02-20
US20040158697A1 (en) 2004-08-12
EP1562107A1 (de) 2005-08-10
TW200527288A (en) 2005-08-16
CN1658154A (zh) 2005-08-24
DE602004011889T2 (de) 2009-02-26
CN100377078C (zh) 2008-03-26

Similar Documents

Publication Publication Date Title
DE602004011889D1 (de) Anordnung und Verfahren zur Durchführung einer frühen Korrektur von falschen Vorhersagen beim bedingten Verzweigungsbefehl
DE602005019034D1 (de) System und verfahren zur adaptiven wegplanung
DE602004002618D1 (de) Verfahren und System zur Kantenhervorhebung
DE602006013180D1 (de) Verfahren und system zur reduzierung von verbindungslatenzen
DE102006033605B8 (de) Vorrichtung und Verfahren zur Bestimmung von Vertikalpositionen
DE602005004280D1 (de) Verfahren zum ziehen von sic-einkristallen und sic-einkristall
DE602006004529D1 (de) Verfahren und Vorrichtung zur Kontrolle von Objekten
DE602005025907D1 (de) Verrohrungen und verfahren zur verwendung solcher verrohrungen in unterirdischen zementierungen
DE602006010154D1 (de) Biometrisches System und biometrisches Verfahren
AT502349A3 (de) Verfahren zur auswertung von touch-signalen und touch-einheit
DE602005006313D1 (de) Verfahren und vorrichtung zur inspektion von walzband
DE602005011656D1 (de) Verfahren zur behandlung von dickdarmkrebs mit botulinum neurotoxin
DE602006002434D1 (de) Verfahren und Anordnung zur generischen visuellen Kategorisierung
DE602006003973D1 (de) Verfahren und Vorrichtung zur Wasserbehandlung
DE602007008120D1 (de) System zur erkennung von augenöffnung und verfahren zur erkennung von augenöffnung
DE60306819D1 (de) Verfahren und System zur Bestimmung von Gaskomponenten
DE102007039939A8 (de) Verfahren und Vorrichtung zur Einsparung von Diafiltrat
DE602005015889D1 (de) System und verfahren zur bildtransformation
DE602006003938D1 (de) System und Verfahren zur Speichersteuerung
DE602006003274D1 (de) Vorrichtung und Verfahren zur Überprüfung von Gewinden
DE602005024986D1 (de) Verfahren und vorrichtung zur generatorsteuerung
DE602005001520D1 (de) Zeiteinstellungssystem und Zeiteinstellungsverfahren
DE602005021851D1 (de) Vorrichtung und Verfahren zur Kompressorregelung
DE502005004537D1 (de) Verfahren und vorrichtung zur leerhuberkennung von injektoren
DE602005003628D1 (de) Verfahren zur Regelung der Helligkeit und Bildbearbeitungsvorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition