EP2798470A4 - Managed instruction cache prefetching - Google Patents

Managed instruction cache prefetching

Info

Publication number
EP2798470A4
EP2798470A4 EP11878987.4A EP11878987A EP2798470A4 EP 2798470 A4 EP2798470 A4 EP 2798470A4 EP 11878987 A EP11878987 A EP 11878987A EP 2798470 A4 EP2798470 A4 EP 2798470A4
Authority
EP
European Patent Office
Prior art keywords
instruction cache
managed instruction
cache prefetching
prefetching
managed
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.)
Withdrawn
Application number
EP11878987.4A
Other languages
German (de)
French (fr)
Other versions
EP2798470A1 (en
Inventor
Kyriakos A Stavrou
Codina Enric Gibert
Josep M Codina
Requena Crispin Gomez
Antonio Gonzalez
Mirem Hyuseinova
Christos E Kotselidis
Fernando Latorre
Pedro Lopez
Marc Lupon
Carlos Madriles
Grigorios Magklis
Pedro Marcuello
Vicente Alejandro Martinez
Raul Martinez
Daniel Ortega
Demos Pavlou
Georgios Tournavitis
Polychronis Xekalakis
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of EP2798470A1 publication Critical patent/EP2798470A1/en
Publication of EP2798470A4 publication Critical patent/EP2798470A4/en
Withdrawn legal-status Critical Current

Links

Classifications

    • 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 or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • 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/3017Runtime instruction translation, e.g. macros
    • 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 or look ahead
    • G06F9/3802Instruction prefetching
    • 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 or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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 or 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
EP11878987.4A 2011-12-29 2011-12-29 Managed instruction cache prefetching Withdrawn EP2798470A4 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/067964 WO2013101121A1 (en) 2011-12-29 2011-12-29 Managed instruction cache prefetching

Publications (2)

Publication Number Publication Date
EP2798470A1 EP2798470A1 (en) 2014-11-05
EP2798470A4 true EP2798470A4 (en) 2015-07-15

Family

ID=48698355

Family Applications (1)

Application Number Title Priority Date Filing Date
EP11878987.4A Withdrawn EP2798470A4 (en) 2011-12-29 2011-12-29 Managed instruction cache prefetching

Country Status (5)

Country Link
US (1) US9811341B2 (en)
EP (1) EP2798470A4 (en)
CN (1) CN104220980B (en)
TW (1) TWI620123B (en)
WO (1) WO2013101121A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383926A (en) * 2016-08-29 2017-02-08 北京中电华大电子设计有限责任公司 Instruction prefetching method based on Cortex-M series processor and circuit

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10558437B1 (en) * 2013-01-22 2020-02-11 Altera Corporation Method and apparatus for performing profile guided optimization for high-level synthesis
US10154072B2 (en) * 2014-09-17 2018-12-11 Microsoft Technology Licensing, Llc Intelligent streaming of media content
US9891916B2 (en) * 2014-10-20 2018-02-13 Via Technologies, Inc. Dynamically updating hardware prefetch trait to exclusive or shared in multi-memory access agent system
JP6457836B2 (en) * 2015-02-26 2019-01-23 ルネサスエレクトロニクス株式会社 Processor and instruction code generation device
US10719321B2 (en) 2015-09-19 2020-07-21 Microsoft Technology Licensing, Llc Prefetching instruction blocks
US20170083338A1 (en) * 2015-09-19 2017-03-23 Microsoft Technology Licensing, Llc Prefetching associated with predicated load instructions
US10915446B2 (en) 2015-11-23 2021-02-09 International Business Machines Corporation Prefetch confidence and phase prediction for improving prefetch performance in bandwidth constrained scenarios
US10296463B2 (en) * 2016-01-07 2019-05-21 Samsung Electronics Co., Ltd. Instruction prefetcher dynamically controlled by readily available prefetcher accuracy
US10191845B2 (en) 2017-05-26 2019-01-29 International Business Machines Corporation Prefetch performance
CN111209043B (en) * 2018-11-21 2022-07-12 华夏芯(北京)通用处理器技术有限公司 Method for realizing instruction prefetching in front-end pipeline by using look-ahead pointer method
CN110825442B (en) * 2019-04-30 2021-08-06 成都海光微电子技术有限公司 Instruction prefetching method and processor
US20210342134A1 (en) * 2020-04-29 2021-11-04 Intel Corporation Code prefetch instruction
US11561796B2 (en) * 2020-07-15 2023-01-24 International Business Machines Corporation Linked miss-to-miss instruction prefetcher
CN112579175B (en) * 2020-12-14 2023-03-31 成都海光微电子技术有限公司 Branch prediction method, branch prediction device and processor core
US11960893B2 (en) * 2021-12-29 2024-04-16 International Business Machines Corporation Multi-table instruction prefetch unit for microprocessor
US11822922B2 (en) 2021-12-31 2023-11-21 International Business Machines Corporation Miss-driven instruction prefetching

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998003908A1 (en) * 1996-07-24 1998-01-29 Idea Corporation Instruction prefetch mechanism utilizing a branch predict instruction
US20060174090A1 (en) * 2005-02-03 2006-08-03 Sartorius Thomas A Power efficient instruction prefetch mechanism
US7441110B1 (en) * 1999-12-10 2008-10-21 International Business Machines Corporation Prefetching using future branch path information derived from branch prediction

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5704053A (en) * 1995-05-18 1997-12-30 Hewlett-Packard Company Efficient explicit data prefetching analysis and code generation in a low-level optimizer for inserting prefetch instructions into loops of applications
US6055621A (en) * 1996-02-12 2000-04-25 International Business Machines Corporation Touch history table
US6029228A (en) * 1996-12-31 2000-02-22 Texas Instruments Incorporated Data prefetching of a load target buffer for post-branch instructions based on past prediction accuracy's of branch predictions
US5822790A (en) * 1997-02-07 1998-10-13 Sun Microsystems, Inc. Voting data prefetch engine
US6167506A (en) * 1997-11-17 2000-12-26 Advanced Micro Devices, Inc. Replacing displacement in control transfer instruction with encoding indicative of target address, including offset and target cache line location
US6401192B1 (en) * 1998-10-05 2002-06-04 International Business Machines Corporation Apparatus for software initiated prefetch and method therefor
US6611910B2 (en) * 1998-10-12 2003-08-26 Idea Corporation Method for processing branch operations
US6308322B1 (en) * 1999-04-06 2001-10-23 Hewlett-Packard Company Method and apparatus for reduction of indirect branch instruction overhead through use of target address hints
US6799263B1 (en) * 1999-10-28 2004-09-28 Hewlett-Packard Development Company, L.P. Prefetch instruction for an unpredicted path including a flush field for indicating whether earlier prefetches are to be discarded and whether in-progress prefetches are to be aborted
US6560693B1 (en) * 1999-12-10 2003-05-06 International Business Machines Corporation Branch history guided instruction/data prefetching
JP2001249846A (en) * 2000-03-03 2001-09-14 Hitachi Ltd Cache memory device and data processing system
US6751708B2 (en) * 2002-01-09 2004-06-15 International Business Machines Corporation Method for ensuring that a line is present in an instruction cache
US20030145314A1 (en) * 2002-01-31 2003-07-31 Khoa Nguyen Method of efficient dynamic data cache prefetch insertion
US6951015B2 (en) * 2002-05-30 2005-09-27 Hewlett-Packard Development Company, L.P. Prefetch insertion by correlation of cache misses and previously executed instructions
US7032097B2 (en) * 2003-04-24 2006-04-18 International Business Machines Corporation Zero cycle penalty in selecting instructions in prefetch buffer in the event of a miss in the instruction cache
US7177985B1 (en) * 2003-05-30 2007-02-13 Mips Technologies, Inc. Microprocessor with improved data stream prefetching
US20050154859A1 (en) * 2004-01-14 2005-07-14 Arm Limited Branch prediction in a data processing apparatus
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
US8443171B2 (en) * 2004-07-30 2013-05-14 Hewlett-Packard Development Company, L.P. Run-time updating of prediction hint instructions
US7669194B2 (en) * 2004-08-26 2010-02-23 International Business Machines Corporation Fine-grained software-directed data prefetching using integrated high-level and low-level code analysis optimizations
JP4134179B2 (en) * 2005-02-04 2008-08-13 株式会社ソニー・コンピュータエンタテインメント Software dynamic prediction method and apparatus
JP2007041837A (en) * 2005-08-03 2007-02-15 Nec Electronics Corp Instruction prefetch apparatus and method
US7457923B1 (en) * 2005-05-11 2008-11-25 Sun Microsystems, Inc. Method and structure for correlation-based prefetching
US20070150660A1 (en) * 2005-12-28 2007-06-28 Marathe Jaydeep P Inserting prefetch instructions based on hardware monitoring
US20070186049A1 (en) 2006-02-03 2007-08-09 International Business Machines Corporation Self prefetching L2 cache mechanism for instruction lines
US8099724B2 (en) * 2006-02-28 2012-01-17 Oracle America, Inc. Fast patch-based method calls
US20070239940A1 (en) * 2006-03-31 2007-10-11 Doshi Kshitij A Adaptive prefetching
US8935517B2 (en) 2006-06-29 2015-01-13 Qualcomm Incorporated System and method for selectively managing a branch target address cache of a multiple-stage predictor
US7640422B2 (en) * 2006-08-16 2009-12-29 Qualcomm Incorporated System for reducing number of lookups in a branch target address cache by storing retrieved BTAC addresses into instruction cache
US7478228B2 (en) * 2006-08-31 2009-01-13 Qualcomm Incorporated Apparatus for generating return address predictions for implicit and explicit subroutine calls
US8060701B2 (en) 2006-12-08 2011-11-15 Qualcomm Incorporated Apparatus and methods for low-complexity instruction prefetch system
JP2009230374A (en) * 2008-03-21 2009-10-08 Fujitsu Ltd Information processor, program, and instruction sequence generation method
US8146064B2 (en) * 2008-04-04 2012-03-27 International Business Machines Corporation Dynamically controlling a prefetching range of a software controlled cache
US7984265B2 (en) * 2008-05-16 2011-07-19 Oracle America, Inc. Event address register history buffers for supporting profile-guided and dynamic optimizations
US8078852B2 (en) * 2009-05-28 2011-12-13 International Business Machines Corporation Predictors with adaptive prediction threshold
US8583894B2 (en) * 2010-09-09 2013-11-12 Advanced Micro Devices Hybrid prefetch method and apparatus
US8533422B2 (en) * 2010-09-30 2013-09-10 Intel Corporation Instruction prefetching using cache line history
US20130013867A1 (en) * 2011-07-06 2013-01-10 Advanced Micro Devices, Inc. Data prefetcher mechanism with intelligent disabling and enabling of a prefetching function

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998003908A1 (en) * 1996-07-24 1998-01-29 Idea Corporation Instruction prefetch mechanism utilizing a branch predict instruction
US7441110B1 (en) * 1999-12-10 2008-10-21 International Business Machines Corporation Prefetching using future branch path information derived from branch prediction
US20060174090A1 (en) * 2005-02-03 2006-08-03 Sartorius Thomas A Power efficient instruction prefetch mechanism

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of WO2013101121A1 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383926A (en) * 2016-08-29 2017-02-08 北京中电华大电子设计有限责任公司 Instruction prefetching method based on Cortex-M series processor and circuit

Also Published As

Publication number Publication date
US20140019721A1 (en) 2014-01-16
US9811341B2 (en) 2017-11-07
CN104220980A (en) 2014-12-17
EP2798470A1 (en) 2014-11-05
CN104220980B (en) 2018-01-19
WO2013101121A1 (en) 2013-07-04
TW201346757A (en) 2013-11-16
TWI620123B (en) 2018-04-01

Similar Documents

Publication Publication Date Title
EP2798470A4 (en) Managed instruction cache prefetching
GB2493592B (en) Shared cache memory control
HK1196868A1 (en) Bracket
EP2659386A4 (en) Distributed cache for graph data
EP2646921A4 (en) Efficient cache management
PT2760315T (en) Bracket
GB201110973D0 (en) Bracket
BR112013033974A2 (en) combination therapy
GB201112973D0 (en) Cache memory controller
BR112014012536A2 (en) motion compensator
GB2509678B (en) Pipeline unit
EP2668603A4 (en) Caching resources
EP2771795A4 (en) Segmented caches
GB201218305D0 (en) Processor instruction based data prefetching
HK1173789A1 (en) Instruction optimization
GB201112976D0 (en) A cache arrangement
BR112013025012A2 (en) arm mount
EP2831786A4 (en) Authorization cache
GB2491617B (en) System information cache
AU337816S (en) Bracket
FI20115187A0 (en) Control means
DE112011100920A5 (en) galette
DK2593734T3 (en) Fridge-free fridge
GB2509477B (en) Pipeline unit
GB2496130B (en) Bracket

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20140613

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAX Request for extension of the european patent (deleted)
RA4 Supplementary search report drawn up and despatched (corrected)

Effective date: 20150617

RIC1 Information provided on ipc code assigned before grant

Ipc: G06F 9/06 20060101AFI20150611BHEP

Ipc: G06F 9/30 20060101ALI20150611BHEP

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20170701