DE69719235D1 - Prozessor und Verfahren zur spekulativen Ausführung von bedingten Verzweigungsbefehlen unter Verwendung einer von mehreren Verzweigungsvorhersageverfahren - Google Patents
Prozessor und Verfahren zur spekulativen Ausführung von bedingten Verzweigungsbefehlen unter Verwendung einer von mehreren VerzweigungsvorhersageverfahrenInfo
- Publication number
- DE69719235D1 DE69719235D1 DE69719235T DE69719235T DE69719235D1 DE 69719235 D1 DE69719235 D1 DE 69719235D1 DE 69719235 T DE69719235 T DE 69719235T DE 69719235 T DE69719235 T DE 69719235T DE 69719235 D1 DE69719235 D1 DE 69719235D1
- Authority
- DE
- Germany
- Prior art keywords
- branch
- prediction
- branch prediction
- processor
- instructions
- 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
- 238000000034 method Methods 0.000 title abstract 8
- 230000003068 static effect 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
-
- 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/3846—Speculative instruction execution using static prediction, e.g. branch taken strategy
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Eye Examination Apparatus (AREA)
- Image Processing (AREA)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/639,577 US5752014A (en) | 1996-04-29 | 1996-04-29 | Automatic selection of branch prediction methodology for subsequent branch instruction based on outcome of previous branch prediction |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69719235D1 true DE69719235D1 (de) | 2003-04-03 |
DE69719235T2 DE69719235T2 (de) | 2003-10-30 |
Family
ID=24564688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69719235T Expired - Lifetime DE69719235T2 (de) | 1996-04-29 | 1997-04-25 | Prozessor und Verfahren zur spekulativen Ausführung von bedingten Verzweigungsbefehlen unter Verwendung einer von mehreren Verzweigungsvorhersageverfahren |
Country Status (7)
Country | Link |
---|---|
US (1) | US5752014A (de) |
EP (1) | EP0805390B1 (de) |
JP (1) | JP3397081B2 (de) |
KR (1) | KR100270003B1 (de) |
AT (1) | ATE233414T1 (de) |
DE (1) | DE69719235T2 (de) |
TW (1) | TW344060B (de) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6151672A (en) * | 1998-02-23 | 2000-11-21 | Hewlett-Packard Company | Methods and apparatus for reducing interference in a branch history table of a microprocessor |
US6374349B2 (en) * | 1998-03-19 | 2002-04-16 | Mcfarling Scott | Branch predictor with serially connected predictor stages for improving branch prediction accuracy |
US6115809A (en) * | 1998-04-30 | 2000-09-05 | Hewlett-Packard Company | Compiling strong and weak branching behavior instruction blocks to separate caches for dynamic and static prediction |
US6081887A (en) * | 1998-05-13 | 2000-06-27 | Compaq Computer Corporation | System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction |
US6247146B1 (en) * | 1998-08-17 | 2001-06-12 | Advanced Micro Devices, Inc. | Method for verifying branch trace history buffer information |
US6189091B1 (en) | 1998-12-02 | 2001-02-13 | Ip First, L.L.C. | Apparatus and method for speculatively updating global history and restoring same on branch misprediction detection |
JP3565314B2 (ja) | 1998-12-17 | 2004-09-15 | 富士通株式会社 | 分岐命令実行制御装置 |
US6338133B1 (en) | 1999-03-12 | 2002-01-08 | International Business Machines Corporation | Measured, allocation of speculative branch instructions to processor execution units |
US6499101B1 (en) * | 1999-03-18 | 2002-12-24 | I.P. First L.L.C. | Static branch prediction mechanism for conditional branch instructions |
US6546481B1 (en) | 1999-11-05 | 2003-04-08 | Ip - First Llc | Split history tables for branch prediction |
JP2001243070A (ja) * | 2000-02-29 | 2001-09-07 | Toshiba Corp | プロセッサ及び分岐予測方法並びにコンパイル方法 |
US6678820B1 (en) | 2000-03-30 | 2004-01-13 | International Business Machines Corporation | Processor and method for separately predicting conditional branches dependent on lock acquisition |
US6766442B1 (en) | 2000-03-30 | 2004-07-20 | International Business Machines Corporation | Processor and method that predict condition register-dependent conditional branch instructions utilizing a potentially stale condition register value |
US6658558B1 (en) * | 2000-03-30 | 2003-12-02 | International Business Machines Corporation | Branch prediction circuit selector with instruction context related condition type determining |
US6859875B1 (en) * | 2000-06-12 | 2005-02-22 | Freescale Semiconductor, Inc. | Processor having selective branch prediction |
US7404070B1 (en) * | 2000-11-28 | 2008-07-22 | Hewlett-Packard Development Company, L.P. | Branch prediction combining static and dynamic prediction techniques |
US8719837B2 (en) * | 2004-05-19 | 2014-05-06 | Synopsys, Inc. | Microprocessor architecture having extendible logic |
US7587580B2 (en) * | 2005-02-03 | 2009-09-08 | Qualcomm Corporated | Power efficient instruction prefetch mechanism |
US20060190710A1 (en) * | 2005-02-24 | 2006-08-24 | Bohuslav Rychlik | Suppressing update of a branch history register by loop-ending branches |
US8218635B2 (en) * | 2005-09-28 | 2012-07-10 | Synopsys, Inc. | Systolic-array based systems and methods for performing block matching in motion compensation |
TW200739419A (en) * | 2006-04-07 | 2007-10-16 | Univ Feng Chia | Prediction mechanism of a program backward jump instruction |
US7533252B2 (en) * | 2006-08-31 | 2009-05-12 | Intel Corporation | Overriding a static prediction with a level-two predictor |
US7617387B2 (en) * | 2006-09-27 | 2009-11-10 | Qualcomm Incorporated | Methods and system for resolving simultaneous predicted branch instructions |
US7707396B2 (en) * | 2006-11-17 | 2010-04-27 | International Business Machines Corporation | Data processing system, processor and method of data processing having improved branch target address cache |
US20100050132A1 (en) * | 2007-09-11 | 2010-02-25 | Daniel Shia | System and GUI for specifying composite predicates and dynamic systems |
US8136103B2 (en) * | 2008-03-28 | 2012-03-13 | International Business Machines Corporation | Combining static and dynamic compilation to remove delinquent loads |
US8127106B2 (en) | 2008-04-18 | 2012-02-28 | International Business Machines Corporation | Access speculation predictor with predictions based on a domain indicator of a cache line |
US8122222B2 (en) | 2008-04-18 | 2012-02-21 | International Business Machines Corporation | Access speculation predictor with predictions based on a scope predictor |
US8131974B2 (en) | 2008-04-18 | 2012-03-06 | International Business Machines Corporation | Access speculation predictor implemented via idle command processing resources |
US8122223B2 (en) | 2008-04-18 | 2012-02-21 | International Business Machines Corporation | Access speculation predictor with predictions based on memory region prior requestor tag information |
US9146742B2 (en) | 2011-04-07 | 2015-09-29 | Via Technologies, Inc. | Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA |
US9274795B2 (en) * | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
US9176733B2 (en) | 2011-04-07 | 2015-11-03 | Via Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
US9317288B2 (en) | 2011-04-07 | 2016-04-19 | Via Technologies, Inc. | Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US9244686B2 (en) | 2011-04-07 | 2016-01-26 | Via Technologies, Inc. | Microprocessor that translates conditional load/store instructions into variable number of microinstructions |
US8880851B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9043580B2 (en) | 2011-04-07 | 2015-05-26 | Via Technologies, Inc. | Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA) |
US9336180B2 (en) | 2011-04-07 | 2016-05-10 | Via Technologies, Inc. | Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
US9292470B2 (en) | 2011-04-07 | 2016-03-22 | Via Technologies, Inc. | Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program |
JP2013058135A (ja) * | 2011-09-09 | 2013-03-28 | Ritsumeikan | 分岐予測器及びプロセッサ |
US9032191B2 (en) * | 2012-01-23 | 2015-05-12 | International Business Machines Corporation | Virtualization support for branch prediction logic enable / disable at hypervisor and guest operating system levels |
US9384002B2 (en) | 2012-11-16 | 2016-07-05 | International Business Machines Corporation | Speculative finish of instruction execution in a processor core |
US9542290B1 (en) | 2016-01-29 | 2017-01-10 | International Business Machines Corporation | Replicating test case data into a cache with non-naturally aligned data boundaries |
US10169180B2 (en) | 2016-05-11 | 2019-01-01 | International Business Machines Corporation | Replicating test code and test data into a cache with non-naturally aligned data boundaries |
US10055320B2 (en) | 2016-07-12 | 2018-08-21 | International Business Machines Corporation | Replicating test case data into a cache and cache inhibited memory |
US10223225B2 (en) | 2016-11-07 | 2019-03-05 | International Business Machines Corporation | Testing speculative instruction execution with test cases placed in memory segments with non-naturally aligned data boundaries |
US10261878B2 (en) | 2017-03-14 | 2019-04-16 | International Business Machines Corporation | Stress testing a processor memory with a link stack |
US11086629B2 (en) * | 2018-11-09 | 2021-08-10 | Arm Limited | Misprediction of predicted taken branches in a data processing apparatus |
US11163577B2 (en) | 2018-11-26 | 2021-11-02 | International Business Machines Corporation | Selectively supporting static branch prediction settings only in association with processor-designated types of instructions |
CN113868899B (zh) * | 2021-12-03 | 2022-03-04 | 苏州浪潮智能科技有限公司 | 一种分支指令处理方法、系统、设备及计算机存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5507028A (en) * | 1992-03-30 | 1996-04-09 | International Business Machines Corporation | History based branch prediction accessed via a history based earlier instruction address |
KR100310581B1 (ko) * | 1993-05-14 | 2001-12-17 | 피터 엔. 데트킨 | 분기목표버퍼의추측기록메카니즘 |
US5454117A (en) * | 1993-08-25 | 1995-09-26 | Nexgen, Inc. | Configurable branch prediction for a processor performing speculative execution |
TW261676B (de) * | 1993-11-02 | 1995-11-01 | Motorola Inc | |
IE940855A1 (en) * | 1993-12-20 | 1995-06-28 | Motorola Inc | Data processor with speculative instruction fetching and¹method of operation |
JPH08241198A (ja) * | 1995-03-06 | 1996-09-17 | Fujitsu Ltd | 分岐命令処理方法 |
US5634103A (en) * | 1995-11-09 | 1997-05-27 | International Business Machines Corporation | Method and system for minimizing branch misprediction penalties within a processor |
-
1996
- 1996-04-29 US US08/639,577 patent/US5752014A/en not_active Expired - Fee Related
-
1997
- 1997-02-12 KR KR1019970004030A patent/KR100270003B1/ko not_active IP Right Cessation
- 1997-04-23 JP JP10612897A patent/JP3397081B2/ja not_active Expired - Fee Related
- 1997-04-25 AT AT97302877T patent/ATE233414T1/de not_active IP Right Cessation
- 1997-04-25 DE DE69719235T patent/DE69719235T2/de not_active Expired - Lifetime
- 1997-04-25 EP EP97302877A patent/EP0805390B1/de not_active Expired - Lifetime
- 1997-07-15 TW TW086109945A patent/TW344060B/zh active
Also Published As
Publication number | Publication date |
---|---|
DE69719235T2 (de) | 2003-10-30 |
KR970071251A (ko) | 1997-11-07 |
JPH10133873A (ja) | 1998-05-22 |
US5752014A (en) | 1998-05-12 |
KR100270003B1 (ko) | 2000-10-16 |
TW344060B (en) | 1998-11-01 |
JP3397081B2 (ja) | 2003-04-14 |
EP0805390A1 (de) | 1997-11-05 |
EP0805390B1 (de) | 2003-02-26 |
ATE233414T1 (de) | 2003-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69719235D1 (de) | Prozessor und Verfahren zur spekulativen Ausführung von bedingten Verzweigungsbefehlen unter Verwendung einer von mehreren Verzweigungsvorhersageverfahren | |
ATE173345T1 (de) | Verfahren und system zur zuteilung mehrerer befehle in einem superskalaren prozessorsystem in einem einzigen zyklus | |
DE69624158D1 (de) | Superskalarer Prozessor mit mehreren Registerblöcken und Erzeugung von spekulativen Antwortadressen | |
ATE222005T1 (de) | System und verfahren zum generieren von anwendungsprogrammen und deren dokumentation | |
DE69725278D1 (de) | Programmierbares system und verfahren zum vorhersagen von verzweigungen für computersysteme | |
DE69031991D1 (de) | Verfahren und Gerät zur Beschleunigung von Verzweigungsbefehlen | |
DE69325086D1 (de) | Verfahren und System für spekulative Befehlsausführung | |
DE69841089D1 (de) | System und Verfahren zum Gebrauch einer einzigen Steuerungsschaltung für eine Vielzahl von Bildverarbeitungskomponenten | |
DE69325566D1 (de) | Verfahren und System zur Befehlszuteilung in einem superskalaren Prozessorsystem mit unabhängig zugänglichem Zwischenspeicher | |
DE69618259D1 (de) | System und Verfahren für eine elektronische Programmzeitschrift | |
ATE478390T1 (de) | Vorrichtung und verfahren zur durchführung von spielprogrammen mit werbeanzeigen | |
DE69534558D1 (de) | Effizientes Verfahren, Gerät und Rechnerprogramm zur Auswertung graphischer Programmiersprache | |
ATE223081T1 (de) | Verfahren und vorrichtung zum koordinieren der benutzung von physikalischen registern in einem mikroprozessor | |
DE69614645D1 (de) | System und Verfahren zum Profilieren von Code für eine symmetrische Multiprozessorarchitektur | |
DE69724516D1 (de) | Rechnersystem und Verfahren zur Ausführung von architekturspezifischem Programmcode mit geringen Laufzeitspeicherbereichsanforderungen | |
ATE248402T1 (de) | Verfahren zur koordination von parallelen zugriffen mehrerer prozessoren auf resourcenkonfigurationen | |
FR2714746B1 (fr) | Procédé de simulation d'une architecture "serveur" à partir d'une architecture "client". | |
DE69419036D1 (de) | Datenverarbeitungssystem und betriebsverfahren | |
DE69323196D1 (de) | Rechnersystem und Verfahren zur Ausführung von mehreren Aufgaben | |
ATE188557T1 (de) | Verfahren und anordung zur erzeugung von summeinformation-/rundungskontrolle-signal | |
DE69018538D1 (de) | Verfahren und Gerät zur Steuerprogrammentwicklung. | |
DE69607928D1 (de) | Verfahren und vorrichtung zur bereitstellung und verwendung von diphonen für mehrsprachige text-nach-sprache systeme | |
JP2878792B2 (ja) | 電子計算機 | |
ATE184713T1 (de) | Rechnersystem mit architektur und verfahren zur programmierung | |
ATE252749T1 (de) | System und verfahren zum lenken von miteinander verwandten aktionen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8320 | Willingness to grant licences declared (paragraph 23) | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7 |