DE69719235T2 - 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 Verzweigungsvorhersageverfahren

Info

Publication number
DE69719235T2
DE69719235T2 DE69719235T DE69719235T DE69719235T2 DE 69719235 T2 DE69719235 T2 DE 69719235T2 DE 69719235 T DE69719235 T DE 69719235T DE 69719235 T DE69719235 T DE 69719235T DE 69719235 T2 DE69719235 T2 DE 69719235T2
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
Application number
DE69719235T
Other languages
English (en)
Other versions
DE69719235D1 (de
Inventor
Soummya Mallick
Albert John Loper
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69719235D1 publication Critical patent/DE69719235D1/de
Application granted granted Critical
Publication of DE69719235T2 publication Critical patent/DE69719235T2/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
    • 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/3846Speculative instruction execution using static prediction, e.g. branch taken strategy
    • 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

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)
DE69719235T 1996-04-29 1997-04-25 Prozessor und Verfahren zur spekulativen Ausführung von bedingten Verzweigungsbefehlen unter Verwendung einer von mehreren Verzweigungsvorhersageverfahren Expired - Lifetime DE69719235T2 (de)

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 DE69719235D1 (de) 2003-04-03
DE69719235T2 true 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)

* Cited by examiner, † Cited by third party
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 プロセッサ及び分岐予測方法並びにコンパイル方法
US6658558B1 (en) * 2000-03-30 2003-12-02 International Business Machines Corporation Branch prediction circuit selector with instruction context related condition type determining
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
US6678820B1 (en) 2000-03-30 2004-01-13 International Business Machines Corporation Processor and method for separately predicting conditional branches dependent on lock acquisition
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
US20070073925A1 (en) * 2005-09-28 2007-03-29 Arc International (Uk) Limited Systems and methods for synchronizing multiple processing engines of a microprocessor
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
CN101589367A (zh) * 2007-09-11 2009-11-25 夏寿民 复合断言和动态系统的系统定义和gui
US8136103B2 (en) * 2008-03-28 2012-03-13 International Business Machines Corporation Combining static and dynamic compilation to remove delinquent loads
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
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
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
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
US9378019B2 (en) 2011-04-07 2016-06-28 Via Technologies, Inc. Conditional load instructions in an out-of-order execution microprocessor
US9898291B2 (en) 2011-04-07 2018-02-20 Via Technologies, Inc. Microprocessor with arm and X86 instruction length decoders
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
US9176733B2 (en) 2011-04-07 2015-11-03 Via Technologies, Inc. Load multiple and store multiple instructions in a microprocessor that emulates banked registers
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
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
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
US9244686B2 (en) 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US9032189B2 (en) 2011-04-07 2015-05-12 Via Technologies, Inc. Efficient conditional ALU instruction in read-port limited register file microprocessor
US9274795B2 (en) * 2011-04-07 2016-03-01 Via Technologies, Inc. Conditional non-branch instruction prediction
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)
US9645822B2 (en) 2011-04-07 2017-05-09 Via Technologies, Inc Conditional store 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
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
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)

* Cited by examiner, † Cited by third party
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
JPH09500989A (ja) * 1993-05-14 1997-01-28 インテル・コーポレーション 分岐ターゲット・バッファにおける推論履歴
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

Also Published As

Publication number Publication date
DE69719235D1 (de) 2003-04-03
JP3397081B2 (ja) 2003-04-14
ATE233414T1 (de) 2003-03-15
KR970071251A (ko) 1997-11-07
JPH10133873A (ja) 1998-05-22
TW344060B (en) 1998-11-01
US5752014A (en) 1998-05-12
KR100270003B1 (ko) 2000-10-16
EP0805390A1 (de) 1997-11-05
EP0805390B1 (de) 2003-02-26

Similar Documents

Publication Publication Date Title
DE69719235D1 (de) Prozessor und Verfahren zur spekulativen Ausführung von bedingten Verzweigungsbefehlen unter Verwendung einer von mehreren Verzweigungsvorhersageverfahren
DE69622875T2 (de) System und verfahren zum generieren von anwendungsprogrammen und deren dokumentation
DE69322064D1 (de) Verfahren und System zur Zuteilung mehrerer Befehle in einem superskalaren Prozessorsystem in einem einzigen Zyklus
DE69725278D1 (de) Programmierbares system und verfahren zum vorhersagen von verzweigungen für computersysteme
ATE162897T1 (de) Verfahren und gerät zur beschleunigung von verzweigungsbefehlen
EP0730221A3 (de) Verfahren und Vorrichtung zur Beschleunigung der Ausführung von Rücksprungbefehlen
DE69325086D1 (de) Verfahren und System für spekulative Befehlsausführung
DE69613071D1 (de) Prozessor und Kontrollverfahren zur Ausführung richtiger Saturationsoperation
DE69618259D1 (de) System und Verfahren für eine elektronische Programmzeitschrift
DE69325566T2 (de) Verfahren und System zur Befehlszuteilung in einem superskalaren Prozessorsystem mit unabhängig zugänglichem Zwischenspeicher
ATE478390T1 (de) Vorrichtung und verfahren zur durchführung von spielprogrammen mit werbeanzeigen
DE69534558D1 (de) Effizientes Verfahren, Gerät und Rechnerprogramm zur Auswertung graphischer Programmiersprache
DE69623146D1 (de) Verfahren und Vorrichtung zum Koordinieren der Benutzung von physikalischen Registern in einem Mikroprozessor
EP0938044A3 (de) Verfahren und Anordnung zur Reduzierung von Störungen in einer Verzweigungsgeschichtstabelle eines Mikroprozessors
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
DE69419036D1 (de) Datenverarbeitungssystem und betriebsverfahren
DE69230520T2 (de) Verfahren und Anordung zur Erzeugung von Summeinformation-/Rundungskontrolle-Signal
DE69607928D1 (de) Verfahren und vorrichtung zur bereitstellung und verwendung von diphonen für mehrsprachige text-nach-sprache systeme
DE69526158T2 (de) Verfahren und Gerät zur Bildinformationsverarbeitung unter Verwendung von Rasterung und Fehlerdiffusion
ATE252749T1 (de) System und verfahren zum lenken von miteinander verwandten aktionen
DE69015538T2 (de) Verfahren und Einrichtung zur Weissabgleichssteuerung für eine Bildaufnahmevorrichtung.
DE69300797T2 (de) Farbentwickler und Verarbeitungsverfahren unter Verwendung dieses Entwicklers.
DE58909399D1 (de) Verfahren und Anordnung zur Bearbeitung von Sprungbefehlen in nach dem Fliessbandprinzip arbeitenden Datenverarbeitungsanlagen.
DE69601757T2 (de) Verfahren und Vorrichtung zur Aufbewahrung benutzter Kontrollstäbe von Kernreaktoren

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