DE69825350T2 - Verzweigungsvorhersage in Rechnersystem - Google Patents

Verzweigungsvorhersage in Rechnersystem Download PDF

Info

Publication number
DE69825350T2
DE69825350T2 DE69825350T DE69825350T DE69825350T2 DE 69825350 T2 DE69825350 T2 DE 69825350T2 DE 69825350 T DE69825350 T DE 69825350T DE 69825350 T DE69825350 T DE 69825350T DE 69825350 T2 DE69825350 T2 DE 69825350T2
Authority
DE
Germany
Prior art keywords
branch
instruction
prediction
execution
program code
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 - Fee Related
Application number
DE69825350T
Other languages
German (de)
English (en)
Other versions
DE69825350D1 (de
Inventor
Douglas V. Larson
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE69825350D1 publication Critical patent/DE69825350D1/de
Application granted granted Critical
Publication of DE69825350T2 publication Critical patent/DE69825350T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring

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)
  • Debugging And Monitoring (AREA)
DE69825350T 1997-04-09 1998-04-03 Verzweigungsvorhersage in Rechnersystem Expired - Fee Related DE69825350T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/840,080 US5838962A (en) 1997-04-09 1997-04-09 Interrupt driven dynamic adjustment of branch predictions
US840080 1997-04-09

Publications (2)

Publication Number Publication Date
DE69825350D1 DE69825350D1 (de) 2004-09-09
DE69825350T2 true DE69825350T2 (de) 2005-07-21

Family

ID=25281399

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69825350T Expired - Fee Related DE69825350T2 (de) 1997-04-09 1998-04-03 Verzweigungsvorhersage in Rechnersystem

Country Status (4)

Country Link
US (1) US5838962A (enExample)
EP (1) EP0871110B1 (enExample)
JP (1) JP3790039B2 (enExample)
DE (1) DE69825350T2 (enExample)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6105102A (en) * 1998-10-16 2000-08-15 Advanced Micro Devices, Inc. Mechanism for minimizing overhead usage of a host system by polling for subsequent interrupts after service of a prior interrupt
US6578143B1 (en) * 1998-12-18 2003-06-10 Qualcomm Incorporated Method for negotiating weakened keys in encryption systems
US8121828B2 (en) 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
US7275246B1 (en) 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US7013456B1 (en) 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US6826748B1 (en) 1999-01-28 2004-11-30 Ati International Srl Profiling program execution into registers of a computer
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US7065633B1 (en) 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US6978462B1 (en) 1999-01-28 2005-12-20 Ati International Srl Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6314510B1 (en) * 1999-04-14 2001-11-06 Sun Microsystems, Inc. Microprocessor with reduced context switching overhead and corresponding method
US6622300B1 (en) 1999-04-21 2003-09-16 Hewlett-Packard Development Company, L.P. Dynamic optimization of computer programs using code-rewriting kernal module
US6779107B1 (en) 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US7254806B1 (en) 1999-08-30 2007-08-07 Ati International Srl Detecting reordered side-effects
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US8214601B2 (en) * 2004-07-30 2012-07-03 Hewlett-Packard Development Company, L.P. Purging without write-back of cache lines containing spent data
US8301871B2 (en) * 2006-06-08 2012-10-30 International Business Machines Corporation Predicated issue for conditional branch instructions
US7487340B2 (en) * 2006-06-08 2009-02-03 International Business Machines Corporation Local and global branch prediction information storage
JP2008107913A (ja) * 2006-10-23 2008-05-08 Toshiba Corp プログラム、ソフトウェア変換装置及びコンピュータ
US7984279B2 (en) * 2006-11-03 2011-07-19 Qualcomm Incorporated System and method for using a working global history register
JP5082716B2 (ja) * 2007-09-20 2012-11-28 富士通セミコンダクター株式会社 プログラム変換装置、プログラム変換方法およびプログラム変換プログラム
US8099586B2 (en) * 2008-12-30 2012-01-17 Oracle America, Inc. Branch misprediction recovery mechanism for microprocessors
US8713562B2 (en) * 2012-01-06 2014-04-29 International Business Machines Corporation Intelligent and automated code deployment
US9448909B2 (en) * 2013-10-15 2016-09-20 Advanced Micro Devices, Inc. Randomly branching using performance counters
US9875106B2 (en) * 2014-11-12 2018-01-23 Mill Computing, Inc. Computer processor employing instruction block exit prediction
GB2574042B (en) * 2018-05-24 2020-09-09 Advanced Risc Mach Ltd Branch Prediction Cache
US11086629B2 (en) * 2018-11-09 2021-08-10 Arm Limited Misprediction of predicted taken branches in a data processing apparatus
US11275607B2 (en) * 2020-03-17 2022-03-15 Arm Limited Improving the responsiveness of an apparatus to certain interrupts

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4124893A (en) * 1976-10-18 1978-11-07 Honeywell Information Systems Inc. Microword address branching bit arrangement
US4176394A (en) * 1977-06-13 1979-11-27 Sperry Rand Corporation Apparatus for maintaining a history of the most recently executed instructions in a digital computer
US4370711A (en) * 1980-10-21 1983-01-25 Control Data Corporation Branch predictor using random access memory
US4435756A (en) * 1981-12-03 1984-03-06 Burroughs Corporation Branch predicting computer
US4679141A (en) * 1985-04-29 1987-07-07 International Business Machines Corporation Pageable branch history table
US4901233A (en) * 1987-07-20 1990-02-13 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
EP0404068A3 (en) * 1989-06-20 1991-12-27 Fujitsu Limited Branch instruction executing device
EP0550286A3 (en) * 1992-01-03 1993-11-03 Amdahl Corp 2-level multi-processor synchronization protocol
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
US5717909A (en) * 1995-05-26 1998-02-10 National Semiconductor Corporation Code breakpoint decoder
US5659752A (en) * 1995-06-30 1997-08-19 International Business Machines Corporation System and method for improving branch prediction in compiled program code
SE520343C2 (sv) * 1997-02-12 2003-07-01 Ericsson Telefon Ab L M Förfarande, system och dator för grenprediktion

Also Published As

Publication number Publication date
EP0871110B1 (en) 2004-08-04
JPH10283183A (ja) 1998-10-23
EP0871110A2 (en) 1998-10-14
EP0871110A3 (en) 1999-01-20
JP3790039B2 (ja) 2006-06-28
DE69825350D1 (de) 2004-09-09
US5838962A (en) 1998-11-17

Similar Documents

Publication Publication Date Title
DE69825350T2 (de) Verzweigungsvorhersage in Rechnersystem
DE60014005T2 (de) Verfahren und Vorrichtung zur Befehlsvorabholung
DE112011101364B4 (de) Fehlerbehebung in Multithread-Code
EP0645704B1 (de) Tracer-System zur Fehleranalyse in laufenden Realzeitsystemen
DE10085375B4 (de) Verfahren und Einrichtung für einen pipeline-verschachtelten Multi-Thread-Befehlsdecodierer
DE69737423T2 (de) Verfahren und gerät zum replizieren von datenspeicherung in einem fortgeschrittenen mikroprozessor
DE69734403T2 (de) Verfahren im bezug auf die behandlung von konditionellen sprüngen in einer multietagen-pipeline-struktur
DE112018004384B4 (de) Schützen von arbeitsspeicherinternen konfigurationsstatusregistern
DE69325086T2 (de) Verfahren und System für spekulative Befehlsausführung
DE69621694T2 (de) Verfahren und Anordnung zur transparenten Emulation einer Befehlssatzarchitektur
DE112010003330B4 (de) Einrichten von Prüfpunkten bei Cachespeichern für die spekulative Versionierung
DE69031991T2 (de) Verfahren und Gerät zur Beschleunigung von Verzweigungsbefehlen
DE69128741T2 (de) Mehrstufiger Befehlscachespeicher und Verwendungsverfahren dafür
DE69127992T2 (de) Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine Emulation
DE112012000303T5 (de) Dynamische binäre Optimierung
DE60115976T2 (de) Rechnersystem und Interruptvorgang
DE69618221T2 (de) Mechanismus zur wartung objektorientierter "methoden" der keine unterbrechung des computersystems erfordert
DE19855806A1 (de) Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen
DE69327927T2 (de) Schnelles Vorausholen und Zuteilung von Befehlen mittels vorausschauender Anmerkungen von früher vorausgeholten
DE112006001408T5 (de) Verbesserung für Leistungsüberwachungsarchitektur für die analyse kritischer Wege
DE112011104596T5 (de) Systeme, Vorrichtungen und Verfahren für ein Hardware- und Softwaresystem zum automatischen Zerlegen eines Programms in mehrere parallele Threads
DE10015675A1 (de) Spekulative Auswahl von heißen Spuren in einem dynamischen CACHE-Übersetzer mit geringem Aufwand
DE69033965T2 (de) Multiprozessorsystem mit mehrfachen Befehlsquellen
DE19527031A1 (de) Verbesserte Vorrichtung zum Reduzieren von Verzögerungen aufgrund von Verzweigungen
DE112010004322T5 (de) Vorhersagen und Vermeiden von Operand-Speichervorgang-Vergleich-Gefahren in Mikroprozessoren mit abweichender Reihenfolge

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee