TW200619937A - System, apparatus and method for predicating various types of accesses to a memory and for managing predictions associated with a cache memory - Google Patents
System, apparatus and method for predicating various types of accesses to a memory and for managing predictions associated with a cache memoryInfo
- Publication number
- TW200619937A TW200619937A TW094128055A TW94128055A TW200619937A TW 200619937 A TW200619937 A TW 200619937A TW 094128055 A TW094128055 A TW 094128055A TW 94128055 A TW94128055 A TW 94128055A TW 200619937 A TW200619937 A TW 200619937A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- accesses
- speculator
- predicating
- various types
- Prior art date
Links
- 230000007774 longterm Effects 0.000 abstract 1
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/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- 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
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- 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/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
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)
- Debugging And Monitoring (AREA)
Abstract
A system, apparatus, and method are disclosed for predicting accesses to memory. In one embodiment, an exemplary apparatus comprises a processor configured to execute program instructions and process program data, a memory including the program instructions and the program data, and a memory processor. The memory processor can include a speculator configured to receive an address containing the program instructions or the program data. Such a speculator can comprise a sequential predictor and a nonsequential predictor for generating a configurable number of sequential and nonsequential addresses respectively. In one embodiment, a prefetcher implements the apparatus. In various embodiments, the speculator can also include any of the following: an expediter, a suppressor, an inventory, an inventory filter, a post-inventory filter and a data return cache memory, which can include a short term and a long term cache, among other things.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/920,610 US7441087B2 (en) | 2004-08-17 | 2004-08-17 | System, apparatus and method for issuing predictions from an inventory to access a memory |
US10/920,682 US7461211B2 (en) | 2004-08-17 | 2004-08-17 | System, apparatus and method for generating nonsequential predictions to access a memory |
US10/920,995 US7260686B2 (en) | 2004-08-17 | 2004-08-17 | System, apparatus and method for performing look-ahead lookup on predictive information in a cache memory |
US10/921,026 US7206902B2 (en) | 2004-08-17 | 2004-08-17 | System, apparatus and method for predicting accesses to a memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200619937A true TW200619937A (en) | 2006-06-16 |
TWI348097B TWI348097B (en) | 2011-09-01 |
Family
ID=36142947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW094128055A TWI348097B (en) | 2004-08-17 | 2005-08-17 | System, apparatus and method for predicating various types of accesses to a memory and for managing predications associated with a cache memory |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP5059609B2 (en) |
KR (1) | KR100987832B1 (en) |
TW (1) | TWI348097B (en) |
WO (1) | WO2006038991A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI757539B (en) * | 2017-08-30 | 2022-03-11 | 美商甲骨文國際公司 | System, method, and apparatus for data prefetching |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636813B2 (en) * | 2006-05-22 | 2009-12-22 | International Business Machines Corporation | Systems and methods for providing remote pre-fetch buffers |
JP6252348B2 (en) * | 2014-05-14 | 2017-12-27 | 富士通株式会社 | Arithmetic processing device and control method of arithmetic processing device |
WO2016097794A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Prefetching with level of aggressiveness based on effectiveness by memory access type |
US9817764B2 (en) | 2014-12-14 | 2017-11-14 | Via Alliance Semiconductor Co., Ltd | Multiple data prefetchers that defer to one another based on prefetch effectiveness by memory access type |
JP2017072929A (en) | 2015-10-06 | 2017-04-13 | 富士通株式会社 | Data management program, data management device, and data management method |
US10509726B2 (en) | 2015-12-20 | 2019-12-17 | Intel Corporation | Instructions and logic for load-indices-and-prefetch-scatters operations |
US20170177349A1 (en) * | 2015-12-21 | 2017-06-22 | Intel Corporation | Instructions and Logic for Load-Indices-and-Prefetch-Gathers Operations |
US11281589B2 (en) | 2018-08-30 | 2022-03-22 | Micron Technology, Inc. | Asynchronous forward caching memory systems and methods |
KR102142498B1 (en) * | 2018-10-05 | 2020-08-10 | 성균관대학교산학협력단 | GPU memory controller for GPU prefetching through static analysis and method of control |
KR102238383B1 (en) * | 2019-10-30 | 2021-04-09 | 주식회사 엠투아이코퍼레이션 | HMI having optimization function of communication |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06103169A (en) * | 1992-09-18 | 1994-04-15 | Nec Corp | Read data prefetching mechanism for central arithmetic processor |
US5426764A (en) * | 1993-08-24 | 1995-06-20 | Ryan; Charles P. | Cache miss prediction apparatus with priority encoder for multiple prediction matches and method therefor |
US5561782A (en) * | 1994-06-30 | 1996-10-01 | Intel Corporation | Pipelined cache system having low effective latency for nonsequential accesses |
US5623608A (en) * | 1994-11-14 | 1997-04-22 | International Business Machines Corporation | Method and apparatus for adaptive circular predictive buffer management |
JP3741945B2 (en) * | 1999-09-30 | 2006-02-01 | 富士通株式会社 | Instruction fetch control device |
US6789171B2 (en) * | 2002-05-31 | 2004-09-07 | Veritas Operating Corporation | Computer system implementing a multi-threaded stride prediction read ahead algorithm |
-
2005
- 2005-08-16 KR KR1020077003839A patent/KR100987832B1/en active IP Right Grant
- 2005-08-16 JP JP2007527950A patent/JP5059609B2/en active Active
- 2005-08-16 WO PCT/US2005/029135 patent/WO2006038991A2/en active Application Filing
- 2005-08-17 TW TW094128055A patent/TWI348097B/en active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI757539B (en) * | 2017-08-30 | 2022-03-11 | 美商甲骨文國際公司 | System, method, and apparatus for data prefetching |
Also Published As
Publication number | Publication date |
---|---|
WO2006038991A2 (en) | 2006-04-13 |
WO2006038991A3 (en) | 2006-08-03 |
JP2008510258A (en) | 2008-04-03 |
KR100987832B1 (en) | 2010-10-13 |
TWI348097B (en) | 2011-09-01 |
KR20070050443A (en) | 2007-05-15 |
JP5059609B2 (en) | 2012-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW200619937A (en) | System, apparatus and method for predicating various types of accesses to a memory and for managing predictions associated with a cache memory | |
GB2435780A (en) | System,method and apparatus of securing an operating system | |
CN105608159B (en) | The method and apparatus of data buffer storage | |
TW200604808A (en) | Cache memory and method of control | |
CN105335309B (en) | A kind of data transmission method and computer | |
WO2005121966A3 (en) | Cache coherency maintenance for dma, task termination and synchronisation operations | |
GB2426900B (en) | Method System And Programme For Managing Data Read Operations | |
WO2007086542A3 (en) | Methods and apparatus for virtualizing an address space | |
KR970012167A (en) | Data prefetch method, cache line prefetch method and system | |
WO2006055955A3 (en) | Software caching with bounded-error delayed update | |
CN104980446A (en) | Detection method and system for malicious behavior | |
WO2011006096A3 (en) | Block-based non-transparent cache | |
WO2010004242A3 (en) | Data processing apparatus, for example using vector pointers | |
WO2008005825A3 (en) | Methods, systems, and computer program products for providing access to addressable entities using a non-sequential virtual address space | |
TW200642347A (en) | Bitmap manager, method of allocating a bitmap memory, method of generating an acknowledgement between network entities, and network entity implementing the same | |
TW200611171A (en) | Directory structure in distributed data driven architecture environment | |
WO2003025757A3 (en) | Method and apparatus for decoupling tag and data accesses in a cache memory | |
GB2553996A (en) | Object memory management unit | |
DK1927913T3 (en) | Realtime process history server | |
DE60041747D1 (en) | Method and apparatus for interfacing with a secondary storage system | |
CN103678568A (en) | Method, server and system for providing problem solutions | |
TW200506610A (en) | System and method for simultaneous access of the same line in cache storage | |
CN105681380A (en) | Client offline method and system thereof | |
US8429348B2 (en) | Method and mechanism for delaying writing updates to a data cache | |
TW200617669A (en) | Purging without write-back of cache lines containing spent data |