[go: up one dir, main page]

DE69840930D1 - Verfahren und system zum vorhersagen von verzweigungen - Google Patents

Verfahren und system zum vorhersagen von verzweigungen

Info

Publication number
DE69840930D1
DE69840930D1 DE69840930T DE69840930T DE69840930D1 DE 69840930 D1 DE69840930 D1 DE 69840930D1 DE 69840930 T DE69840930 T DE 69840930T DE 69840930 T DE69840930 T DE 69840930T DE 69840930 D1 DE69840930 D1 DE 69840930D1
Authority
DE
Germany
Prior art keywords
predicting branches
predicting
branches
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
DE69840930T
Other languages
English (en)
Inventor
Per Holmberg
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of DE69840930D1 publication Critical patent/DE69840930D1/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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • 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
    • 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/3846Speculative instruction execution using static prediction, e.g. branch taken strategy

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)
DE69840930T 1997-02-12 1998-02-03 Verfahren und system zum vorhersagen von verzweigungen Expired - Fee Related DE69840930D1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE9700475A SE520343C2 (sv) 1997-02-12 1997-02-12 Förfarande, system och dator för grenprediktion
PCT/SE1998/000190 WO1998036350A1 (en) 1997-02-12 1998-02-03 Method and system for branch prediction

Publications (1)

Publication Number Publication Date
DE69840930D1 true DE69840930D1 (de) 2009-08-06

Family

ID=20405754

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69840930T Expired - Fee Related DE69840930D1 (de) 1997-02-12 1998-02-03 Verfahren und system zum vorhersagen von verzweigungen

Country Status (8)

Country Link
US (1) US6233679B1 (de)
EP (1) EP1008035B1 (de)
JP (1) JP2001512596A (de)
AU (1) AU6232898A (de)
CA (1) CA2280764A1 (de)
DE (1) DE69840930D1 (de)
SE (1) SE520343C2 (de)
WO (1) WO1998036350A1 (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838962A (en) * 1997-04-09 1998-11-17 Hewlett-Packard Company Interrupt driven dynamic adjustment of branch predictions
JPH1185515A (ja) * 1997-09-10 1999-03-30 Ricoh Co Ltd マイクロプロセッサ
US7100154B2 (en) * 2003-01-16 2006-08-29 International Business Machines Corporation Dynamic compiler apparatus and method that stores and uses persistent execution statistics
ATE491986T1 (de) * 2003-07-09 2011-01-15 Nxp Bv Verfahren und system zur zweigprädiktion
US20050071609A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically take an exception on specified instructions
US7937691B2 (en) * 2003-09-30 2011-05-03 International Business Machines Corporation Method and apparatus for counting execution of specific instructions and accesses to specific data locations
US7395527B2 (en) 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US7373637B2 (en) * 2003-09-30 2008-05-13 International Business Machines Corporation Method and apparatus for counting instruction and memory location ranges
US20050071612A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for generating interrupts upon execution of marked instructions and upon access to marked memory locations
US20050071611A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for counting data accesses and instruction executions that exceed a threshold
US20050071610A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for debug support for individual instructions and memory locations
US20050071816A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically count instruction execution for applications
US20050071821A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically select instructions for selective counting
US20050071516A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically profile applications
US7421681B2 (en) * 2003-10-09 2008-09-02 International Business Machines Corporation Method and system for autonomic monitoring of semaphore operation in an application
US8381037B2 (en) * 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US20050155022A1 (en) * 2004-01-14 2005-07-14 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses to identify hot spots
US7392370B2 (en) * 2004-01-14 2008-06-24 International Business Machines Corporation Method and apparatus for autonomically initiating measurement of secondary metrics based on hardware counter values for primary metrics
US7181599B2 (en) * 2004-01-14 2007-02-20 International Business Machines Corporation Method and apparatus for autonomic detection of cache “chase tail” conditions and storage of instructions/data in “chase tail” data structure
US7526757B2 (en) * 2004-01-14 2009-04-28 International Business Machines Corporation Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program
US7290255B2 (en) * 2004-01-14 2007-10-30 International Business Machines Corporation Autonomic method and apparatus for local program code reorganization using branch count per instruction hardware
US7895382B2 (en) * 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
US7496908B2 (en) * 2004-01-14 2009-02-24 International Business Machines Corporation Method and apparatus for optimizing code execution using annotated trace information having performance indicator and counter information
US20050155018A1 (en) * 2004-01-14 2005-07-14 International Business Machines Corporation Method and apparatus for generating interrupts based on arithmetic combinations of performance counter values
US7293164B2 (en) * 2004-01-14 2007-11-06 International Business Machines Corporation Autonomic method and apparatus for counting branch instructions to generate branch statistics meant to improve branch predictions
US7415705B2 (en) * 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
US8135915B2 (en) * 2004-03-22 2012-03-13 International Business Machines Corporation Method and apparatus for hardware assistance for prefetching a pointer to a data structure identified by a prefetch indicator
US7480899B2 (en) * 2004-03-22 2009-01-20 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for code coverage
US7296130B2 (en) * 2004-03-22 2007-11-13 International Business Machines Corporation Method and apparatus for providing hardware assistance for data access coverage on dynamically allocated data
US7421684B2 (en) * 2004-03-22 2008-09-02 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for data coverage
US7299319B2 (en) * 2004-03-22 2007-11-20 International Business Machines Corporation Method and apparatus for providing hardware assistance for code coverage
US7526616B2 (en) 2004-03-22 2009-04-28 International Business Machines Corporation Method and apparatus for prefetching data from a data structure
US8443171B2 (en) * 2004-07-30 2013-05-14 Hewlett-Packard Development Company, L.P. Run-time updating of prediction hint instructions
US7779241B1 (en) 2007-04-10 2010-08-17 Dunn David A History based pipelined branch prediction
US9342433B2 (en) * 2013-06-20 2016-05-17 Intel Corporation Elapsed cycle timer in last branch records
US10275248B2 (en) 2015-12-07 2019-04-30 International Business Machines Corporation Testing computer software using tracking bits
US12288072B2 (en) * 2021-03-27 2025-04-29 Intel Corporation Methods, systems, and apparatuses for precise last branch record event logging
CN113868899B (zh) * 2021-12-03 2022-03-04 苏州浪潮智能科技有限公司 一种分支指令处理方法、系统、设备及计算机存储介质
CN116243982A (zh) * 2022-12-20 2023-06-09 四川启睿克科技有限公司 一种提高嵌入式低功耗cpu一级预测器精度的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4334268A (en) * 1979-05-01 1982-06-08 Motorola, Inc. Microcomputer with branch on bit set/clear instructions
US5051944A (en) * 1986-04-17 1991-09-24 Ncr Corporation Computer address analyzer having a counter and memory locations each storing count value indicating occurrence of corresponding memory address
US5440704A (en) * 1986-08-26 1995-08-08 Mitsubishi Denki Kabushiki Kaisha Data processor having branch predicting function
DE69130138T2 (de) * 1990-06-29 1999-05-06 Digital Equipment Corp., Maynard, Mass. Sprungvorhersageeinheit für hochleistungsfähigen Prozessor
US5423011A (en) 1992-06-11 1995-06-06 International Business Machines Corporation Apparatus for initializing branch prediction information
US5835745A (en) * 1992-11-12 1998-11-10 Sager; David J. Hardware instruction scheduler for short execution unit latencies
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
TW261676B (de) * 1993-11-02 1995-11-01 Motorola Inc
US5742804A (en) * 1996-07-24 1998-04-21 Institute For The Development Of Emerging Architectures, L.L.C. Instruction prefetch mechanism utilizing a branch predict instruction
AU3666697A (en) * 1996-08-20 1998-03-06 Idea Corporation A method for identifying hard-to-predict branches to enhance processor performance
US5857104A (en) * 1996-11-26 1999-01-05 Hewlett-Packard Company Synthetic dynamic branch prediction
US5887159A (en) * 1996-12-11 1999-03-23 Digital Equipment Corporation Dynamically determining instruction hint fields
US5890008A (en) * 1997-06-25 1999-03-30 Sun Microsystems, Inc. Method for dynamically reconfiguring a processor

Also Published As

Publication number Publication date
SE9700475D0 (sv) 1997-02-12
SE9700475L (sv) 1998-08-13
US6233679B1 (en) 2001-05-15
WO1998036350A1 (en) 1998-08-20
JP2001512596A (ja) 2001-08-21
AU6232898A (en) 1998-09-08
CA2280764A1 (en) 1998-08-20
EP1008035B1 (de) 2009-06-24
EP1008035A1 (de) 2000-06-14
SE520343C2 (sv) 2003-07-01

Similar Documents

Publication Publication Date Title
DE69840930D1 (de) Verfahren und system zum vorhersagen von verzweigungen
DE69829255D1 (de) System und Verfahren zum Nieten
DE69731581D1 (de) Verfahren und System zum vorrangigen Herunterladen von eingebetteten Netzobjekten
DE69902251D1 (de) System und verfahren zum definieren von ortbestimmungsdiensten
DE69816400D1 (de) Verteiltes Objektsystem und Verfahren zum Anbieten von Dienstleistungen darin
DE69939495D1 (de) Verfahren und system zum testen von computercodes
DE69834129D1 (de) Verfahren und system zum vorausladen von information
DE69840929D1 (de) System und verfahren zum betrieb von mehreren anrufzentralen
DE69837693D1 (de) Verfahren und System zum Editieren von Bildern
DE69814380D1 (de) System und verfahren zum aussortieren von programmzeitschrifteninformationen
DE69738832D1 (de) Verfahren zum Planen von periodischen Prozessabläufen
DE69800609D1 (de) System und Verfahren zum Sammeln und Reinigen von SF6 Gas
DE69834401D1 (de) Businterfacesystem und verfahren
DE69735434D1 (de) System und verfahren zum abruf von lokalisierungsinformation
DE69733128D1 (de) Verfahren und system zum subtraktiven mehrträger-cdma-zugriff
DE69830759D1 (de) Verfahren und Vorrichtung zum Komplettierung von Mehrfach-Bohrungen
DE69839274D1 (de) System und verfahren zum absichern von sprachtransaktionen
DE69836296D1 (de) System und Verfahren zum Erfassen von Maschinendaten
DE69631694D1 (de) Verfahren und system zum genetischen programmieren
DE69624288D1 (de) Verfahren und System zum Unterstützen der Zusammenarbeit
DE69800982D1 (de) System und Verfahren zum Kühlen unter Verwendung geladenen Schnees
DE69907057D1 (de) System und Verfahren zum Färben von Linsen
DE69730942D1 (de) Verfahren und Einheit zum Gruppieren von Gegenständen
DE69841288D1 (de) Rechner und Verfahren zum Rechnerbetrieb
DE69737282D1 (de) Verfahren und System zum Verarbeiten von Telekommunikationsdatenverkehr

Legal Events

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