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 VerzweigungsbefehlInfo
- 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
Links
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/30094—Condition code generation, e.g. Carry, Zero flag
-
- 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/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
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect 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 or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- 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 or 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 or look ahead
- G06F9/3861—Recovery, 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)
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)
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)
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 |
-
2004
- 2004-02-04 US US10/771,682 patent/US7107438B2/en active Active
- 2004-09-14 EP EP04255565A patent/EP1562107B1/de not_active Expired - Lifetime
- 2004-09-14 DE DE602004011889T patent/DE602004011889T2/de not_active Expired - Lifetime
-
2005
- 2005-01-28 TW TW094102816A patent/TWI288351B/zh active
- 2005-01-31 CN CNB2005100062719A patent/CN100377078C/zh active Active
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 |