CN103038748B - 用于精确预测存储器存取的基于区域的技术 - Google Patents
用于精确预测存储器存取的基于区域的技术 Download PDFInfo
- Publication number
- CN103038748B CN103038748B CN201180041024.6A CN201180041024A CN103038748B CN 103038748 B CN103038748 B CN 103038748B CN 201180041024 A CN201180041024 A CN 201180041024A CN 103038748 B CN103038748 B CN 103038748B
- Authority
- CN
- China
- Prior art keywords
- ptb
- signature
- access
- project
- processor
- 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
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
-
- 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/44—Arrangements for executing specific 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/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
- 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 (15)
1.一种处理器,包括:
第一核心;
一级缓存;
转换后备缓冲器TLB;
二级缓存;
页***缓冲器PTB,所述PTB包括多个项目以存储到存储器页的地址并且存储存取签名以跟踪对所述存储器页的每个行的存取;以及
PTB处理机,所述PTB处理机用于将项目载入到所述PTB并且更新所述存取签名,
其中,每个PTB项目用于存储重用签名来跟踪对所述存储器页的每个行的重复存取,以及所述PTB处理机用于更新所述重用签名,并且所述PTB处理机用于优先化由所述重用签名指示为已多次被存取的二级缓存中的那些行的替换策略。
2.如权利要求1所述的处理器,其中所述存取签名和所述重用签名中的每一个包括64比特。
3.如权利要求1所述的处理器,其中所述PTB包含64个项目。
4.如权利要求1所述的处理器,其中所述PTB包含1024个项目。
5.如权利要求1所述的处理器,其中所述PTB处理机将项目载入到所述PTB包括所述PTB处理机将项目从存储器中的页***存储器表载入到所述PTB。
6.如权利要求5所述的处理器,还包括所述PTB处理机将从所述PTB逐出的项目存储到所述存储器中的页***存储器表。
7.如权利要求1所述的处理器,其中所述PTB处理机将项目载入到所述PTB包括所述PTB处理机在TLB失败之后将项目载入到所述PTB。
8.一种用于存储器存取的***,包括:
处理器,所述处理器包括执行指令的第一核心、缓存以及页***缓冲器PTB,所述PTB包括多个项目以存储指示存储器页的哪些行已经被存取的存取签名,并且存储指示所述存储器页的哪些行已经多次被存取的重用签名;
耦合到所述处理器的动态随机存取存储器DRAM,所述DRAM用于存储包含PTB项目的页***存储器表;以及
PTB处理机,所述PTB处理机用于将项目从所述页***存储器表载入到所述PTB中,所述PTB处理机用于将所述PTB项目指示先前被存取的行载入到缓存,并且所述PTB处理机用于优先化由所述重用签名指示为已多次被存取的所述缓存中的那些行的替换策略。
9.如权利要求8所述的***,还包括PTB处理机更新所述PTB项目以指示行已经被存取。
10.如权利要求8所述的***,还包括所述PTB处理机将所述PTB项目写回到所述页***存储器表。
11.如权利要求8所述的***,其中所述处理器还包括转换后备缓冲器TLB,并且其中当TLB失败时所述PTB处理机载入PTB项目。
12.一种用于存储器存取的方法,包括:
读取与存储器页关联的存取签名和重用签名,所述存取签名指示所述存储器页的哪些行已经被存取,并且所述重用签名指示所述存储器页的哪些行已经多次被存取;以及
将所述存取签名指示先前被存取的行载入到处理器的缓存;以及
优先化由所述重用签名指示为已多次被存取的所述缓存中的那些行的替换策略。
13.如权利要求12所述的方法,还包括从存储在存储器中的页***存储器表中取回所述存取签名和所述重用签名。
14.如权利要求13所述的方法,还包括当所述处理器存取所述存储器页的行时更新所述存取签名和所述重用签名。
15.如权利要求14所述的方法,还包括当逐出所述存取签名和所述重用签名时将所述存取签名和所述重用签名存储到所述页***存储器表。
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/821935 | 2010-06-23 | ||
US12/821,935 | 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 CN103038748A (zh) | 2013-04-10 |
CN103038748B true 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) |
Families Citing this family (14)
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 |
EP3129887B1 (en) * | 2014-12-14 | 2018-08-15 | VIA Alliance Semiconductor Co., Ltd. | Multiple data prefetchers that defer to one another based on prefetch effectiveness by memory access type |
US20160255169A1 (en) * | 2015-02-27 | 2016-09-01 | Futurewei Technologies, Inc. | Method and system for smart object eviction for proxy cache |
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 (2)
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 |
CN101719105A (zh) * | 2009-12-31 | 2010-06-02 | 中国科学院计算技术研究所 | 一种多核***中对内存访问的优化方法和*** |
Family Cites Families (40)
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 |
US6678795B1 (en) * | 2000-08-15 | 2004-01-13 | International Business Machines Corporation | Method and apparatus for memory prefetching based on intra-page usage history |
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 | 富士通株式会社 | 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法 |
US7526614B2 (en) * | 2005-11-30 | 2009-04-28 | Red Hat, Inc. | Method for tuning a cache |
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 |
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 |
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 |
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 TW TW104110229A patent/TWI603264B/zh not_active IP Right Cessation
- 2011-06-22 CN CN201180041024.6A patent/CN103038748B/zh not_active Expired - Fee Related
- 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 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 WO PCT/US2011/041511 patent/WO2011163407A2/en active Application Filing
- 2011-06-22 EP EP11798876.6A patent/EP2585916B1/en active Active
Patent Citations (2)
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 |
CN101719105A (zh) * | 2009-12-31 | 2010-06-02 | 中国科学院计算技术研究所 | 一种多核***中对内存访问的优化方法和*** |
Also Published As
Publication number | Publication date |
---|---|
WO2011163407A2 (en) | 2011-12-29 |
CN106294212B (zh) | 2020-02-21 |
US20110320762A1 (en) | 2011-12-29 |
JP5697279B2 (ja) | 2015-04-08 |
EP2585916B1 (en) | 2019-09-11 |
US9418011B2 (en) | 2016-08-16 |
EP2585916A4 (en) | 2014-03-19 |
CN106294212A (zh) | 2017-01-04 |
CN103038748A (zh) | 2013-04-10 |
TWI590156B (zh) | 2017-07-01 |
JP2013529815A (ja) | 2013-07-22 |
TW201528136A (zh) | 2015-07-16 |
TW201224923A (en) | 2012-06-16 |
WO2011163407A3 (en) | 2012-04-12 |
KR20130040952A (ko) | 2013-04-24 |
TWI603264B (zh) | 2017-10-21 |
EP2585916A2 (en) | 2013-05-01 |
KR101485651B1 (ko) | 2015-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103038748B (zh) | 用于精确预测存储器存取的基于区域的技术 | |
US9208084B2 (en) | Extended main memory hierarchy having flash memory for page fault handling | |
US8707011B1 (en) | Memory access techniques utilizing a set-associative translation lookaside buffer | |
US7991963B2 (en) | In-memory, in-page directory cache coherency scheme | |
US6782453B2 (en) | Storing data in memory | |
JP3938370B2 (ja) | ハードウェア管理仮想−物理アドレス変換機構 | |
CN112631961B (zh) | 一种内存管理单元、地址转译方法以及处理器 | |
US20070061549A1 (en) | Method and an apparatus to track address translation in I/O virtualization | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
US8180965B2 (en) | System and method for cache access prediction | |
CN101782872A (zh) | 使用固态盘的缓存***和方法 | |
US20040117588A1 (en) | Access request for a data processing system having no system memory | |
US20120317361A1 (en) | Storage efficient sectored cache | |
CN114063934B (zh) | 数据更新装置、方法及电子设备 | |
US20040117591A1 (en) | Data processing system having no system memory | |
US20040117590A1 (en) | Aliasing support for a data processing system having no system memory | |
US20050055528A1 (en) | Data processing system having a physically addressed cache of disk memory | |
US8661169B2 (en) | Copying data to a cache using direct memory access | |
US10922230B2 (en) | System and method for identifying pendency of a memory access request at a cache entry | |
US20040078544A1 (en) | Memory address remapping method | |
WO2002027498A2 (en) | System and method for identifying and managing streaming-data | |
EP4328755A1 (en) | Systems, methods, and apparatus for accessing data in versions of memory pages | |
US20040117583A1 (en) | Apparatus for influencing process scheduling in a data processing system capable of utilizing a virtual memory processing scheme |
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 |