CN103038748A - 用于精确预测存储器存取的基于区域的技术 - Google Patents
用于精确预测存储器存取的基于区域的技术 Download PDFInfo
- Publication number
- CN103038748A CN103038748A CN2011800410246A CN201180041024A CN103038748A CN 103038748 A CN103038748 A CN 103038748A CN 2011800410246 A CN2011800410246 A CN 2011800410246A CN 201180041024 A CN201180041024 A CN 201180041024A CN 103038748 A CN103038748 A CN 103038748A
- Authority
- CN
- China
- Prior art keywords
- ptb
- processor
- signature
- project
- page
- 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.)
- Granted
Links
Images
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
-
- 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
- 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/10—Address translation
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/44—Arrangements for executing specific programs
-
- 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/60—Details of cache memory
- G06F2212/6024—History based prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
在一个实施例中,本发明包括处理器,所述处理器包括:页跟踪器缓冲器(PTB),该PTB包括多个项目以存储到缓存页的地址并且存储签名以跟踪对缓存页的每个缓存行的存取;以及PTB处理机,该PTB处理机将项目载入到PTB并且更新签名。还描述了并要求保护其他实施例。
Description
背景技术
为了改进计算系统(例如PC、服务器等等)的性能和效率,预取(prefetch)处理器稍后可能需要的数据和指令被认为是有利的。然而,常规预取不能够精确地预测哪些缓存行(cache line)应当预取或不应当预取。
附图说明
图1是根据本发明的一个实施例的示例处理器和存储器的框图;
图2是根据本发明的实施例的示例页跟踪器缓冲器的框图;
图3是根据本发明的实施例的用于利用存取签名的示例方法的流程图;
图4是根据本发明的实施例的用于利用重用签名的示例方法的流程图;
图5是根据本发明的实施例的示例系统的框图。
具体实施方式
在各种实施例中,提出了预测性预取的方法和装置。在下面的描述中,为了解释的目的,陈述了大量具体的细节以便于提供本发明的透彻的理解。然而,对于本领域技术人员来说将显而易见的是,本发明的实施例能够在没有这些具体的细节的情况下实施。在其他实例中,以框图的形式示出了结构和设备以避免使本发明不清楚。
贯穿本说明书对“一个实施例”或“实施例”的提及意味着在本发明的至少一个实施例中包括了连同实施例描述的特定的特征、结构或特性。因此,短语“在一个实施例中”或“在实施例中”在贯穿本说明书的各个地方的出现不一定全部都指相同的实施例。此外,可以在一个或多个实施例中以任何合适的方式结合特定特征、结构或特性。
现在参考图1,示出了根据本发明的一个实施例的示例处理器和存储器的框图。如在图1中所示出的,系统100可以包括处理器102和存储器104。处理器102可以包括核心(一个或多个)106、一级缓存108、转换后备(translation lookaside)缓冲器(TLB)110、页跟踪器缓冲器(PTB)112、二级缓存114以及PTB处理机116。尽管将处理器102示出为包括一级缓存108和二级缓存114,但处理器102可以包括任何数量的缓存级别。同样的,尽管将处理器102示出为包括能够存储从虚拟地址到物理地址的地址转换的TLB 110,但本发明可以在没有TLB的处理器中实施。
如参考图2更详细地示出的,PTB 112可以包含指示特定存储器区域的哪些部分(例如,特定缓存页或其他存储器区域的哪些缓存行)先前已经被核心(一个或多个)106存取的项目(entry)。在一个实施例中,PTB 112还包含指示特定缓存页的哪些缓存行已经多次被核心(一个或多个)106存取的项目,这潜在地指示可能最希望保持常驻在缓存中的那些缓存行。
如在下文中更详细地描述的,PTB处理机116可以尝试精确地预测核心(一个或多个)106将需要的指令和数据。在一个实施例中,PTB处理机116预取PTB 112指示在先前实例化期间被存取的、(例如在TLB失败之后)添加到TLB 110的缓存页的那些缓存行。PTB处理机116可以从页跟踪器存储器表118读取PTB 112项目,以及将PTB 112项目写回到页跟踪器存储器表118。例如当核心(一个或多个)106存取附加的缓存行时,PTB处理机116还可以更新PTB 112中的项目。可以以其他硬件(例如预取模块)或软件或硬件和软件的组合来实现PTB处理机116。可以将PTB处理机116独立地应用于数据和指令预取并且可以与其他预取器共存。
存储器104可以表示任何类型的存储器,例如静态或动态随机存取存储器(RAM)。在一个实施例中,存储器104表示双数据率同步动态RAM(DDR-SDRAM),然而本发明并不限于任何类型的存储器。存储器104可以在逻辑上划分为页(例如页120)用于缓存和寻址。每个页120可以包含固定数量的行122。在一个实施例中,页120包含64个行122。在另一个实施例中,页120表示可以通过固件或软件配置其大小的存储器区域。
现在参考图2,示出根据本发明的实施例的示例页跟踪器缓冲器的框图。如在图2中所示出的,页跟踪器缓冲器112可以包括可通过索引208存取的任何数量的项目,所述项目的每个可以包括地址202、存取签名(access signature)204以及重用签名(reuse signature)206。在一个实施例中,PTB 112可以包括与TLB 110相同数量的项目。在其他实施例中,PTB 112可以包括比TLB 110更多或者更少的项目。在一个实施例中,PTB 112可以包括64个项目。在另一个实施例中,PTB 112可以包括1024个项目。
尽管将地址202示出为包括28比特,但地址202可以包含更多或者更少的比特用于标识页120(或另一个存储器区域)。尽管将存取签名204和重用签名206示出为包括64比特,但存取签名204和重用签名206可以包含或者更多或者更少的比特用于标识页120的行122。在一个实施例中,存取签名204的置位(set bit)指示在TLB 110中的页120的先前寻址中被核心(一个或多个)106存取的页120的行122。在一个实施例中,重用签名206的置位指示在TLB 110中的页120的先前寻址中被核心(一个或多个)106多次存取的页120的行122。
现在参考图3,示出根据本发明的实施例的用于利用存取签名的示例方法的流程图。如在图3中所示出的,该方法开始于PTB处理机116在将任何被逐出(evicted)的项目写回到页跟踪器存储器表118之后将与缓存页120关联的存取签名204载入(302)到PTB 112中。在一个实施例中,在TLB 110失败(miss)之后PTB处理机116载入存取签名204并且写回正被替换的任何存取签名。接着,PTB处理机116可以将例如,由存取签名204指示为先前已经被核心(一个或多个)106存取的行122预取(304)到二级缓存114。最后,PTB处理机116可以更新(306)存取签名204。在一个实施例中,当请求并取出任何附加的行时,PTB处理机116对取回的存取签名204增加比特。在另一个实施例中,PTB处理机116可以将取回的存取签名204用于预取并且可以重新生成存取签名用于写回到存储器以供在随后的页存取中使用。
现在参考图4,示出根据本发明的实施例的用于利用重用签名的示例方法的流程图。如在图4中所示出的,该方法开始于PTB处理机116在将任何被逐出的项目写回到页跟踪器存储器表118之后将与缓存页120关联的重用签名206载入(402)到PTB 112中。在一个实施例中,PTB处理机116在TLB 110失败之后载入重用签名206。接着,PTB处理机116可以优先化(404)由重用签名206指示为先前已经多次被核心(一个或多个)106存取的二级缓存114中的那些缓存行的替换策略。在一个实施例中,PTB处理机116可以用重用签名206中的位组将那些缓存行设置为最近最多使用。在另一个实施例中,PTB处理机116可以将那些缓存行设置为最近最少使用,而无需重用签名206中的位组。最后,当多次请求任何附加的行时,PTB处理机116可以更新(406)重用签名206。
实施例可以以许多不同的系统类型来实现。现在参考图5,示出根据本发明的实施例的系统的框图。如在图5中所示出的,多处理器系统500是点到点互连系统,并且包括经由点到点互连550耦合的第一处理器570和第二处理器580。如在图5中所示出的,处理器570和580的每一个可以是包括第一和第二处理器核心(即,处理器核心574a和574b以及处理器核心584a和584b)的多核处理器。每个处理器可以包括根据本发明的实施例的PTB硬件、软件以及固件。
仍然参考图5,第一处理器570还包括存储控制器集线器(MCH,memory controller hub)572以及点到点(P-P)接口576和578。类似地,第二处理器580包括MCH 582和P-P接口586和588。如在图5中所示出的,MCH 572和582将处理器耦合到相应的存储器(即存储器532和存储器534),其可以是本地附连到相应处理器的主存储器(例如,动态随机存取存储器(DRAM))的一部分,根据本发明的一个实施例,所述相应处理器的每一个可以包括页跟踪器存储器表。第一处理器570和第二处理器580可以经由P-P互连552和554分别耦合到芯片组590。如在图5中所示出的,芯片组590包括P-P接口594和598。
此外,芯片组590包括用于将芯片组590与高性能图形引擎538耦合的接口592。而芯片组590可以经由接口596耦合到第一总线516。如在图5中所示出的,各种I/O设备514可以与将第一总线516耦合到第二总线520的总线桥518一起耦合到第一总线516。在一个实施例中各种设备可以耦合到第二总线520,包括例如,键盘/鼠标522、通信设备526以及可以包括代码530的数据存储单元528(例如磁盘驱动器或其他大容量存储设备)。此外,音频I/O 524可以耦合到第二总线520。
实施例可以以代码来实现并且可以存储在具有存储于其上的指令的存储介质上,存储介质能够用来对系统编程以执行这些指令。存储介质可以包括但不限于:任何类型的盘(包括软盘、光盘、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)以及磁光盘)、半导体设备(例如只读存储器(ROM)、随机存取存储器(RAM)(例如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦写可编程只读存储器(EPROM)、闪速存储器、电可擦写可编程只读存储器(EEPROM)、磁卡或光卡)或适合存储电子指令的任何其他类型的媒体。
尽管已经关于有限数量的实施例描述了本发明,但本领域技术人员将从中意识到大量的修改和改变。所附的权利要求书旨在覆盖落入本发明的实质精神和范围内的所有此类修改和改变。
Claims (20)
1. 一种处理器,包括:
第一核心;
一级缓存;
转换后备缓冲器(TLB);
二级缓存;
页跟踪器缓冲器(PTB),所述PTB包括多个项目以存储到缓存页的地址并且存储签名以跟踪对所述缓存页的每个缓存行的存取;以及
PTB处理机,所述PTB处理机用于将项目载入到所述PTB并且更新所述签名。
2. 如权利要求1所述的处理器,其中所述签名包括64比特。
3. 如权利要求1所述的处理器,还包括所述PTB项目存储重用签名来跟踪对所述缓存页的每个缓存行的重复存取,以及所述PTB处理机更新所述重用签名。
4. 如权利要求1所述的处理器,其中所述PTB包含大约64个项目。
5. 如权利要求1所述的处理器,其中所述PTB包含大约1024个项目。
6. 如权利要求1所述的处理器,其中所述PTB处理机将项目载入到所述PTB包括所述PTB处理机将项目从存储器中的页跟踪器存储器表载入到所述PTB。
7. 如权利要求6所述的处理器,还包括所述PTB处理机将从所述PTB逐出的项目存储到所述存储器中的页跟踪器存储器表。
8. 如权利要求1所述的处理器,其中所述PTB处理机将项目载入到所述PTB包括所述PTB处理机在TLB失败之后将项目载入到所述PTB。
9. 一种系统,包括:
处理器,其包括执行指令的第一核心、缓存以及页跟踪器缓冲器(PTB),所述PTB用于存储指示缓存页的哪些缓存行已经被存取的项目;
耦合到所述处理器的动态随机存取存储器(DRAM),所述DRAM用于存储包含PTB项目的页跟踪器存储器表;以及
PTB处理机,所述PTB处理机用于将项目从所述页跟踪器存储器表载入到所述PTB中并且所述PTB处理机用于将所述PTB项目指示先前被存取的缓存行载入到缓存。
10. 如权利要求9所述的系统,还包括PTB处理机更新所述PTB项目以指示缓存行已经被存取。
11. 如权利要求9所述的系统,还包括所述PTB处理机将所述PTB项目写回到所述页跟踪器存储器表。
12. 如权利要求9所述的系统,还包括所述PTB存储指示所述缓存页的哪些缓存行已经多次被存取的项目。
13. 如权利要求12所述的系统,还包括所述PTB处理机优先化所述PTB项目指示先前多次被存取的缓存行。
14. 如权利要求9所述的系统,其中所述处理器还包括转换后备缓冲器(TLB),并且其中当TLB失败时所述PTB处理机载入PTB项目。
15. 一种方法,包括:
读取与缓存页关联的签名,所述签名包含关于所述缓存页的缓存行先前是否被存取的指示;以及
将所述签名指示先前被存取的缓存行载入到处理器的缓存。
16. 如权利要求15所述的方法,还包括从存储在存储器中的签名表中取回所述签名。
17. 如权利要求16所述的方法,还包括当所述处理器存取所述缓存页的缓存行时更新所述签名。
18. 如权利要求17所述的方法,还包括当逐出签名时将所述签名存储到所述签名表。
19. 如权利要求15所述的方法,还包括取回与所述缓存页关联的重用签名,所述重用签名包含关于所述缓存页的缓存行先前是否多次被存取的指示。
20. 如权利要求19所述的方法,还包括优先化所述重用签名指示其先前多次被存取的缓存行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610800912.6A CN106294212B (zh) | 2010-06-23 | 2011-06-22 | 用于精确预测存储器存取的基于区域的技术 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/821,935 | 2010-06-23 | ||
US12/821935 | 2010-06-23 | ||
US12/821,935 US9418011B2 (en) | 2010-06-23 | 2010-06-23 | Region based technique for accurately predicting memory accesses |
PCT/US2011/041511 WO2011163407A2 (en) | 2010-06-23 | 2011-06-22 | Region based technique for accurately predicting memory accesses |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610800912.6A Division CN106294212B (zh) | 2010-06-23 | 2011-06-22 | 用于精确预测存储器存取的基于区域的技术 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103038748A true CN103038748A (zh) | 2013-04-10 |
CN103038748B CN103038748B (zh) | 2016-10-05 |
Family
ID=45353674
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180041024.6A Expired - Fee Related CN103038748B (zh) | 2010-06-23 | 2011-06-22 | 用于精确预测存储器存取的基于区域的技术 |
CN201610800912.6A Expired - Fee Related CN106294212B (zh) | 2010-06-23 | 2011-06-22 | 用于精确预测存储器存取的基于区域的技术 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610800912.6A Expired - Fee Related CN106294212B (zh) | 2010-06-23 | 2011-06-22 | 用于精确预测存储器存取的基于区域的技术 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9418011B2 (zh) |
EP (1) | EP2585916B1 (zh) |
JP (1) | JP5697279B2 (zh) |
KR (1) | KR101485651B1 (zh) |
CN (2) | CN103038748B (zh) |
TW (2) | TWI603264B (zh) |
WO (1) | WO2011163407A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106796547A (zh) * | 2015-02-27 | 2017-05-31 | 华为技术有限公司 | 用于代理缓存智能对象淘汰的方法和系统 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9418011B2 (en) | 2010-06-23 | 2016-08-16 | Intel Corporation | Region based technique for accurately predicting memory accesses |
US8683136B2 (en) * | 2010-12-22 | 2014-03-25 | Intel Corporation | Apparatus and method for improving data prefetching efficiency using history based prefetching |
US9092341B2 (en) | 2012-07-10 | 2015-07-28 | International Business Machines Corporation | Methods of cache preloading on a partition or a context switch |
US9424031B2 (en) * | 2013-03-13 | 2016-08-23 | Intel Corporation | Techniques for enabling bit-parallel wide string matching with a SIMD register |
JP6088951B2 (ja) * | 2013-09-20 | 2017-03-01 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
US9513805B2 (en) | 2014-04-15 | 2016-12-06 | International Business Machines Corporation | Page table including data fetch width indicator |
US9582282B2 (en) * | 2014-07-17 | 2017-02-28 | Arm Limited | Prefetching using a prefetch lookup table identifying previously accessed cache lines |
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 |
US9594678B1 (en) | 2015-05-27 | 2017-03-14 | Pure Storage, Inc. | Preventing duplicate entries of identical data in a storage device |
US10482010B2 (en) * | 2017-06-29 | 2019-11-19 | Intel Corporation | Persistent host memory buffer |
KR20200085522A (ko) | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템 및 그것의 데이터 관리 방법 |
CN110442382B (zh) * | 2019-07-31 | 2021-06-15 | 西安芯海微电子科技有限公司 | 预取缓存控制方法、装置、芯片以及计算机可读存储介质 |
KR20210108749A (ko) * | 2020-02-26 | 2021-09-03 | 삼성전자주식회사 | 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5752261A (en) * | 1996-11-07 | 1998-05-12 | Ncr Corporation | Method and apparatus for detecting thrashing in a cache memory |
US6678795B1 (en) * | 2000-08-15 | 2004-01-13 | International Business Machines Corporation | Method and apparatus for memory prefetching based on intra-page usage history |
US20070124540A1 (en) * | 2005-11-30 | 2007-05-31 | Red. Hat, Inc. | Method for tuning a cache |
CN101719105A (zh) * | 2009-12-31 | 2010-06-02 | 中国科学院计算技术研究所 | 一种多核系统中对内存访问的优化方法和系统 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04259048A (ja) | 1991-02-14 | 1992-09-14 | Fujitsu Ltd | 統計情報による先読みデータ制御方式 |
US5931945A (en) * | 1994-04-29 | 1999-08-03 | Sun Microsystems, Inc. | Graphic system for masking multiple non-contiguous bytes having decode logic to selectively activate each of the control lines based on the mask register bits |
US6055621A (en) * | 1996-02-12 | 2000-04-25 | International Business Machines Corporation | Touch history table |
US5960454A (en) * | 1996-12-19 | 1999-09-28 | International Business Machines Corporation | Avoiding cache collisions between frequently accessed, pinned routines or data structures |
US6317810B1 (en) * | 1997-06-25 | 2001-11-13 | Sun Microsystems, Inc. | Microprocessor having a prefetch cache |
US6047363A (en) * | 1997-10-14 | 2000-04-04 | Advanced Micro Devices, Inc. | Prefetching data using profile of cache misses from earlier code executions |
US5941981A (en) | 1997-11-03 | 1999-08-24 | Advanced Micro Devices, Inc. | System for using a data history table to select among multiple data prefetch algorithms |
US6490654B2 (en) * | 1998-07-31 | 2002-12-03 | Hewlett-Packard Company | Method and apparatus for replacing cache lines in a cache memory |
US6223309B1 (en) * | 1998-10-02 | 2001-04-24 | International Business Machines Corporation | Method and apparatus for ECC logic test |
JP3512678B2 (ja) * | 1999-05-27 | 2004-03-31 | 富士通株式会社 | キャッシュメモリ制御装置および計算機システム |
US6804769B1 (en) | 2000-02-18 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Unified buffer for tracking disparate long-latency operations in a microprocessor |
US6535966B1 (en) | 2000-05-17 | 2003-03-18 | Sun Microsystems, Inc. | System and method for using a page tracking buffer to reduce main memory latency in a computer system |
EP1182559B1 (en) * | 2000-08-21 | 2009-01-21 | Texas Instruments Incorporated | Improved microprocessor |
US6523093B1 (en) | 2000-09-29 | 2003-02-18 | Intel Corporation | Prefetch buffer allocation and filtering system |
US6640285B1 (en) * | 2000-10-26 | 2003-10-28 | Emc Corporation | Method and apparatus for improving the efficiency of cache memories using stored activity measures |
US6832296B2 (en) * | 2002-04-09 | 2004-12-14 | Ip-First, Llc | Microprocessor with repeat prefetch instruction |
US7020762B2 (en) * | 2002-12-24 | 2006-03-28 | Intel Corporation | Method and apparatus for determining a dynamic random access memory page management implementation |
US7194582B1 (en) * | 2003-05-30 | 2007-03-20 | Mips Technologies, Inc. | Microprocessor with improved data stream prefetching |
US7467131B1 (en) * | 2003-09-30 | 2008-12-16 | Google Inc. | Method and system for query data caching and optimization in a search engine system |
US7356651B2 (en) * | 2004-01-30 | 2008-04-08 | Piurata Technologies, Llc | Data-aware cache state machine |
US7975108B1 (en) * | 2004-03-25 | 2011-07-05 | Brian Holscher | Request tracking data prefetcher apparatus |
US7386679B2 (en) | 2004-04-15 | 2008-06-10 | International Business Machines Corporation | System, method and storage medium for memory management |
US7950012B2 (en) * | 2005-03-16 | 2011-05-24 | Oracle America, Inc. | Facilitating communication and synchronization between main and scout threads |
US7496730B2 (en) * | 2005-04-15 | 2009-02-24 | Microsoft Corporation | System and method for reducing the number of translation buffer invalidates an operating system needs to issue |
JP4160589B2 (ja) | 2005-10-31 | 2008-10-01 | 富士通株式会社 | 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法 |
US7386673B2 (en) | 2005-11-30 | 2008-06-10 | Red Hat, Inc. | Method for tracking of non-resident pages |
WO2007068122A1 (en) * | 2005-12-16 | 2007-06-21 | Univ Western Ontario | System and method for cache management |
GB0603552D0 (en) * | 2006-02-22 | 2006-04-05 | Advanced Risc Mach Ltd | Cache management within a data processing apparatus |
US7478197B2 (en) * | 2006-07-18 | 2009-01-13 | International Business Machines Corporation | Adaptive mechanisms for supplying volatile data copies in multiprocessor systems |
JP2008102745A (ja) | 2006-10-19 | 2008-05-01 | Toshiba Corp | 命令キャッシュメモリのプリフェッチ機構 |
US7797503B2 (en) * | 2007-06-26 | 2010-09-14 | International Business Machines Corporation | Configurable memory system and method for providing atomic counting operations in a memory device |
US8423715B2 (en) * | 2008-05-01 | 2013-04-16 | International Business Machines Corporation | Memory management among levels of cache in a memory hierarchy |
US8161246B2 (en) * | 2009-03-30 | 2012-04-17 | Via Technologies, Inc. | Prefetching of next physically sequential cache line after cache line that includes loaded page table entry |
US9569363B2 (en) * | 2009-03-30 | 2017-02-14 | Via Technologies, Inc. | Selective prefetching of physically sequential cache line to cache line that includes loaded page table entry |
US8677049B2 (en) * | 2009-04-13 | 2014-03-18 | Advanced Micro Devices, Inc. | Region prefetcher and methods thereof |
US8291169B2 (en) * | 2009-05-28 | 2012-10-16 | International Business Machines Corporation | Cache line use history based done bit modification to D-cache replacement scheme |
US8332587B2 (en) * | 2009-05-28 | 2012-12-11 | International Business Machines Corporation | Cache line use history based done bit modification to I-cache replacement scheme |
US9418011B2 (en) | 2010-06-23 | 2016-08-16 | Intel Corporation | Region based technique for accurately predicting memory accesses |
-
2010
- 2010-06-23 US US12/821,935 patent/US9418011B2/en not_active Expired - Fee Related
-
2011
- 2011-06-22 CN CN201180041024.6A patent/CN103038748B/zh not_active Expired - Fee Related
- 2011-06-22 TW TW104110229A patent/TWI603264B/zh not_active IP Right Cessation
- 2011-06-22 EP EP11798876.6A patent/EP2585916B1/en active Active
- 2011-06-22 CN CN201610800912.6A patent/CN106294212B/zh not_active Expired - Fee Related
- 2011-06-22 KR KR1020127034132A patent/KR101485651B1/ko active IP Right Grant
- 2011-06-22 TW TW100121833A patent/TWI590156B/zh not_active IP Right Cessation
- 2011-06-22 JP JP2013516745A patent/JP5697279B2/ja not_active Expired - Fee Related
- 2011-06-22 WO PCT/US2011/041511 patent/WO2011163407A2/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5752261A (en) * | 1996-11-07 | 1998-05-12 | Ncr Corporation | Method and apparatus for detecting thrashing in a cache memory |
US6678795B1 (en) * | 2000-08-15 | 2004-01-13 | International Business Machines Corporation | Method and apparatus for memory prefetching based on intra-page usage history |
US20070124540A1 (en) * | 2005-11-30 | 2007-05-31 | Red. Hat, Inc. | Method for tuning a cache |
CN101719105A (zh) * | 2009-12-31 | 2010-06-02 | 中国科学院计算技术研究所 | 一种多核系统中对内存访问的优化方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106796547A (zh) * | 2015-02-27 | 2017-05-31 | 华为技术有限公司 | 用于代理缓存智能对象淘汰的方法和系统 |
CN106796547B (zh) * | 2015-02-27 | 2021-01-05 | 华为技术有限公司 | 用于代理缓存智能对象淘汰的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
KR101485651B1 (ko) | 2015-01-22 |
JP2013529815A (ja) | 2013-07-22 |
TWI603264B (zh) | 2017-10-21 |
KR20130040952A (ko) | 2013-04-24 |
CN106294212A (zh) | 2017-01-04 |
CN106294212B (zh) | 2020-02-21 |
CN103038748B (zh) | 2016-10-05 |
JP5697279B2 (ja) | 2015-04-08 |
WO2011163407A3 (en) | 2012-04-12 |
EP2585916A2 (en) | 2013-05-01 |
US9418011B2 (en) | 2016-08-16 |
TWI590156B (zh) | 2017-07-01 |
WO2011163407A2 (en) | 2011-12-29 |
EP2585916A4 (en) | 2014-03-19 |
TW201528136A (zh) | 2015-07-16 |
TW201224923A (en) | 2012-06-16 |
US20110320762A1 (en) | 2011-12-29 |
EP2585916B1 (en) | 2019-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103038748B (zh) | 用于精确预测存储器存取的基于区域的技术 | |
US8250334B2 (en) | Providing metadata in a translation lookaside buffer (TLB) | |
US9384134B2 (en) | Persistent memory for processor main memory | |
KR100681974B1 (ko) | 계층적 캐쉬 라인 교체를 위한 방법, 시스템, 및 장치 | |
US7991963B2 (en) | In-memory, in-page directory cache coherency scheme | |
US8291175B2 (en) | Processor-bus attached flash main-memory module | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
US20040117587A1 (en) | Hardware managed virtual-to-physical address translation mechanism | |
US20060212654A1 (en) | Method and apparatus for intelligent instruction caching using application characteristics | |
US20040117588A1 (en) | Access request for a data processing system having no system memory | |
CN101782872A (zh) | 使用固态盘的缓存系统和方法 | |
US8924652B2 (en) | Simultaneous eviction and cleaning operations in a cache | |
US20040117591A1 (en) | Data processing system having no system memory | |
CN105786721A (zh) | 一种内存地址映射管理方法及处理器 | |
US20050055528A1 (en) | Data processing system having a physically addressed cache of disk memory | |
US20040078544A1 (en) | Memory address remapping method | |
CN114063934A (zh) | 数据更新装置、方法及电子设备 | |
US20040117589A1 (en) | Interrupt mechanism for a data processing system having hardware managed paging of disk data | |
CN104166632A (zh) | 页面内容共享的方法及装置 | |
CN116049031A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
KR20000076741A (ko) | 트랜슬레이션 룩어헤드 버퍼 예측 비트를 이용한 쓰기동작시의 캐쉬 얼리어싱 방지 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161005 Termination date: 20210622 |