CN103038748B - 用于精确预测存储器存取的基于区域的技术 - Google Patents

用于精确预测存储器存取的基于区域的技术 Download PDF

Info

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
Application number
CN201180041024.6A
Other languages
English (en)
Other versions
CN103038748A (zh
Inventor
L.索亚列斯
N.切鲁库里
A.库马
M.阿兹米
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
Priority to CN201610800912.6A priority Critical patent/CN106294212B/zh
Publication of CN103038748A publication Critical patent/CN103038748A/zh
Application granted granted Critical
Publication of CN103038748B publication Critical patent/CN103038748B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/44Arrangements for executing specific programs
    • 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/10Address translation
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching

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所述的方法,还包括当逐出所述存取签名和所述重用签名时将所述存取签名和所述重用签名存储到所述页跟踪器存储器表。
CN201180041024.6A 2010-06-23 2011-06-22 用于精确预测存储器存取的基于区域的技术 Expired - Fee Related CN103038748B (zh)

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 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
CN201610800912.6A Expired - Fee Related CN106294212B (zh) 2010-06-23 2011-06-22 用于精确预测存储器存取的基于区域的技术
CN201180041024.6A Expired - Fee Related CN103038748B (zh) 2010-06-23 2011-06-22 用于精确预测存储器存取的基于区域的技术

Family Applications Before (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) CN106294212B (zh)
TW (2) TWI590156B (zh)
WO (1) WO2011163407A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
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
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
DE60041444D1 (de) * 2000-08-21 2009-03-12 Texas Instruments Inc Mikroprozessor
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
US7526614B2 (en) * 2005-11-30 2009-04-28 Red Hat, Inc. Method for tuning a cache
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
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
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
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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
TW201224923A (en) 2012-06-16
JP2013529815A (ja) 2013-07-22
EP2585916A4 (en) 2014-03-19
KR101485651B1 (ko) 2015-01-22
TWI590156B (zh) 2017-07-01
CN106294212B (zh) 2020-02-21
TW201528136A (zh) 2015-07-16
JP5697279B2 (ja) 2015-04-08
EP2585916B1 (en) 2019-09-11
US20110320762A1 (en) 2011-12-29
EP2585916A2 (en) 2013-05-01
CN106294212A (zh) 2017-01-04
US9418011B2 (en) 2016-08-16
WO2011163407A3 (en) 2012-04-12
TWI603264B (zh) 2017-10-21
WO2011163407A2 (en) 2011-12-29
CN103038748A (zh) 2013-04-10
KR20130040952A (ko) 2013-04-24

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
US7657729B2 (en) Efficient multiple-table reference prediction mechanism
US7991963B2 (en) In-memory, in-page directory cache coherency scheme
US6782453B2 (en) Storing data in memory
JP3938370B2 (ja) ハードウェア管理仮想−物理アドレス変換機構
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
US20070061549A1 (en) Method and an apparatus to track address translation in I/O virtualization
US8180965B2 (en) System and method for cache access prediction
CN101782872A (zh) 使用固态盘的缓存系统和方法
US20040117588A1 (en) Access request for a data processing system having no system memory
US20210089468A1 (en) Memory management unit, address translation method, and processor
CN107818052A (zh) 内存访问方法及装置
US20120317361A1 (en) Storage efficient sectored cache
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
US20040078544A1 (en) Memory address remapping method
US10922230B2 (en) System and method for identifying pendency of a memory access request at a cache entry
WO2002027498A2 (en) System and method for identifying and managing streaming-data
CN114063934A (zh) 数据更新装置、方法及电子设备
EP4328755A1 (en) Systems, methods, and apparatus for accessing data in versions of memory pages
CN117609105A (zh) 用于访问存储器页的版本中的数据的方法和设备

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