EP2798470A4 - Managed instruction cache prefetching - Google Patents
Managed instruction cache prefetchingInfo
- 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
Links
Classifications
-
- 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/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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/3802—Instruction prefetching
-
- 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/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction 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)
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)
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)
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)
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)
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 |
-
2011
- 2011-12-29 WO PCT/US2011/067964 patent/WO2013101121A1/en active Application Filing
- 2011-12-29 US US13/995,649 patent/US9811341B2/en active Active
- 2011-12-29 CN CN201180076122.3A patent/CN104220980B/en active Active
- 2011-12-29 EP EP11878987.4A patent/EP2798470A4/en not_active Withdrawn
-
2012
- 2012-12-20 TW TW101148746A patent/TWI620123B/en active
Patent Citations (3)
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)
Title |
---|
See also references of WO2013101121A1 * |
Cited By (1)
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 |