CN110720093A - 用于dram的选择性刷新机制 - Google Patents

用于dram的选择性刷新机制 Download PDF

Info

Publication number
CN110720093A
CN110720093A CN201880038244.5A CN201880038244A CN110720093A CN 110720093 A CN110720093 A CN 110720093A CN 201880038244 A CN201880038244 A CN 201880038244A CN 110720093 A CN110720093 A CN 110720093A
Authority
CN
China
Prior art keywords
cache
location
recently used
way
bit
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.)
Pending
Application number
CN201880038244.5A
Other languages
English (en)
Inventor
F·I·阿塔拉
G·M·赖特
S·普立亚达尔西
G·M·德拉帕拉
H·W·凯恩三世
E·赫德伯格
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN110720093A publication Critical patent/CN110720093A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40607Refresh operations in memory devices with an internal cache or data buffer
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • 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/604Details relating to cache allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及用于高速缓存,例如被实施为嵌入式DRAM eDRAM的末级高速缓存,的选择性刷新的系统及方法。刷新位及重用位与所述高速缓存的至少一组的每个路相关。最近最少使用LRU堆栈跟踪所述路的位置,其中朝向阈值的最近最多使用位置的位置包括最近较多使用位置,及朝向所述阈值的最近最少使用位置的位置包括最近较少使用位置。如果满足以下条件,那么选择性地刷新路中的线:所述路的所述位置是所述最近较多使用位置中的一个,且与所述路相关的所述刷新位被设定,或所述路的所述位置是所述最近较少使用位置中的一个,且与所述路相关的所述刷新位及所述重用位两者均被设定。

Description

用于DRAM的选择性刷新机制
技术领域
所公开的方面是针对存储器系统的电力管理及效率改进。更具体来说,例示性方面是针对用于动态随机存取存储器(dynamic random access memory;DRAM)的选择性刷新机制,以减小所述DRAM的功率消耗并增加其可用性。
背景技术
DRAM系统由于构造简单而提供低成本数据存储解决方案。基本上,DRAM单元由耦合到电容器的开关或晶体管构成。DRAM系统被组织为DRAM阵列,其包括安置于行(或线)及列中的DRAM单元。可了解到,鉴于DRAM单元的简单性,DRAM系统的构造成本较低,且DRAM阵列的高密度集成是可能的。然而,由于电容器易漏电,因此存储于DRAM单元中的电荷需要被定期刷新,以正确地保留存储在其中的信息。
出于保留存储在其中的信息的意图,常规的刷新操作涉及读出DRAM阵列中的每个DRAM单元(例如,逐行)及立即不经修改地写回读出的数据到相应的DRAM单元。因此,刷新操作消耗电力。依据DRAM系统的特定实施方案(例如,所属领域中已知的双数据速率(doubledata rate;DDR)、低功率DDR(low power DDR;LPDDR)、嵌入式DRAM(embedded DRAM;eDRAM)等),定义最小刷新频率,其中如果DRAM单元未以至少为最小刷新频率的频率刷新,那么存储在其中的信息被损毁的概率增加。如果为例如读取或写入操作的存储器存取操作存取DRAM单元,那么作为执行存储器存取操作的部分,所存取的DRAM单元被刷新。为确保即使当DRAM单元未因存储器存取操作被存取时DRAM单元仍至少以满足最小刷新频率的速率被刷新,可为DRAM系统提供各种专用刷新机制。
然而,已认识到,例如在例如3级(level 3;L3)数据高速缓存eDRAM的较大末级高速缓存的实施方案中,DRAM的每个线的定期刷新就时间及电力而言可能过于昂贵而在常规实施方案中不可实行。在努力缓解时间耗费的过程中,一些方法是针对刷新平行的两个或更多个线的群组,但此些方法也可能有缺点。举例来说,如果同时刷新的线的数目相对较小,那么刷新DRAM消耗的时间仍然可能过高,这可能降低DRAM对于其它存取请求(例如,读取/写入)的可用性。这是因为进行中的刷新操作可延迟或阻止DRAM服务于存取请求。另一方面,如果同时刷新的线数目较大,那么相应的功率消耗会增大,其继而可能提高对用于供应电力到DRAM的电力传递网络(power delivery network;PDN)的稳定性的需求。更复杂PDN也可减小可供用于与DRAM电路相关的其它线的布线轨道,及增加DRAM裸片的大小。
因此,已认识到所属领域中需要改进DRAM的刷新机制,以避免常规实施方案的上述缺陷。
发明内容
本发明的例示性方面是针对用于高速缓存,例如被实施为嵌入式DRAM(eDRAM)的处理系统的末级高速缓存,的选择性刷新的系统及方法。高速缓存可经配置为组联高速缓存,其具有至少一个组及所述至少一个组中的两个或更多个路,且可提供高速缓存控制器,其经配置用于所述至少一个组的线的选择性刷新。高速缓存控制器可包含两个或更多个刷新位寄存器,其包括两个或更多个刷新位,每个刷新位与所述两个或更多个路中的一相对应者相关,及两个或更多个重用位寄存器,其包括两个或更多个重用位,每个重用位与所述两个或更多个路中的一相对应者相关。刷新及重用位被用于确定是否通过以下方式刷新相关联的线。高速缓存控制器可进一步包含最近最少使用(least recently used;LRU)堆栈,其包括两个或更多个位置,每个位置与所述两个或更多个路中的一相对应者相关,所述两个或更多个位置范围为最近最多使用位置到最近最少使用位置,其中朝向经指派用于所述LRU堆栈的阈值的所述最近最多使用位置的位置包括最近较多使用位置,及朝向所述阈值的所述最近最少使用位置的位置包括最近较少使用位置。如果所述路的所述位置是所述最近较多使用位置中的一个,且与所述路相关的所述刷新位被设定,或所述路的所述位置是所述最近较少使用位置中的一个,且与所述路相关的所述刷新位及所述重用位两者均被设定,那么所述高速缓存控制器经配置以选择性地刷新所述两个或更多个路的路中的线。
举例来说,一例示性方面是针对一种刷新高速缓存的线的方法。所述方法包括:关联刷新位及重用位与一组所述高速缓存的两个或更多个路中的每一个,关联最近最少使用(LRU)堆栈与所述组,其中所述LRU堆栈包括与所述两个或更多个路中的每一个相关的位置,所述位置范围为最近最多使用位置到最近最少使用位置,及对所述LRU堆栈指定阈值,其中朝向所述阈值的所述最近最多使用位置的位置包括最近较多使用位置,及朝向所述阈值的所述最近最少使用位置的位置包括最近较少使用位置。如果所述路的所述位置是所述最近较多使用位置中的一个,且与所述路相关的所述刷新位被设定,或所述路的所述位置是所述最近较少使用位置中的一个,且与所述路相关的所述刷新位及所述重用位两者均被设定,那么高速缓存的路中的线被选择性地刷新。
另一例示性方面是针对一种设备,其包括高速缓存,其经配置为组联高速缓存,其具有至少一个组及所述至少一个组中的两个或更多个路,及高速缓存控制器,其经配置用于所述至少一个组的线的选择性刷新。高速缓存控制器包括两个或更多个刷新位寄存器,其包括两个或更多个刷新位,每个刷新位与所述两个或更多个路中的一相对应者相关,两个或更多个重用位寄存器,其包括两个或更多个重用位,每个重用位与所述两个或更多个路中的一相对应者相关,及最近最少使用(LRU)堆栈,其包括两个或更多个位置,每个位置与所述两个或更多个路中的一相对应者相关,所述两个或更多个位置范围为最近最多使用位置到最近最少使用位置,其中朝向经指派用于所述LRU堆栈的阈值的所述最近最多使用位置的位置包括最近较多使用位置,及朝向所述阈值的所述最近最少使用位置的位置包括最近较少使用位置。如果所述路的所述位置是所述最近较多使用位置中的一个,且与所述路相关的所述刷新位被设定,或所述路的所述位置是所述最近较少使用位置中的一个,且与所述路相关的所述刷新位及所述重用位两者均被设定,那么所述高速缓存控制器经配置以选择性地刷新所述两个或更多个路的路中的线。
又另一个例示性方面是针对一种设备,其包括高速缓存,其经配置为组联高速缓存,其具有至少一个组及所述至少一个组中的两个或更多个路,用于跟踪与所述至少一个组的所述两个或更多个路中的每一个相关的位置的装置,所述位置范围为最近最多使用位置到最近最少使用位置,且其中朝向所述阈值的所述最近最多使用位置的位置包括最近较多使用位置,及朝向所述阈值的所述最近最少使用位置的位置包括最近较少使用位置。所述设备进一步包括如果满足以下条件,那么选择性地刷新所述高速缓存的路中的线的装置:所述路的所述位置是所述最近较多使用位置中的一个,且指示与所述路相关的刷新的第一装置被设定,或所述路的所述位置是所述最近较少使用位置中的一个,且指示刷新的所述第一装置及指示与所述路相关的重用的第二装置两者均被设定。
另一例示性方面是针对一种包括代码的非暂时性计算机可读存储媒体,其在由计算机执行时,使得所述计算机执行操作以刷新高速缓存的线。所述非暂时性计算机可读存储媒体包括:用于关联刷新位及重用位与一组所述高速缓存的两个或更多个路中的每一个的代码、用于关联最近最少使用(LRU)堆栈与所述组的代码,其中所述LRU堆栈包括与所述两个或更多个路中的每一个相关的位置,所述位置范围为最近最多使用位置到最近最少使用位置、用于对所述LRU堆栈指定阈值的代码,其中朝向所述阈值的所述最近最多使用位置的位置包括最近较多使用位置,及朝向所述阈值的所述最近最少使用位置的位置包括最近较少使用位置,且如果满足以下条件,那么选择性地刷新所述高速缓存的路中的线的代码:所述路的所述位置是所述最近较多使用位置中的一个,且与所述路相关的所述刷新位被设定;或所述路的所述位置是所述最近较少使用位置中的一个,且与所述路相关的所述刷新位及所述重用位两者均被设定。
附图说明
呈现附图以辅助描述本发明的方面,且提供所述图式仅用于说明所述方面而非对其加以限制。
图1根据本发明的方面描绘包括经配置有选择性刷新机制的高速缓存的例示性处理系统。
图2A到B根据本发明的方面说明例示性高速缓存的动态阈值计算的方面。
图3根据本发明的方面描绘刷新高速缓存的例示性方法。
图4描绘可在其中有利地使用本发明的一方面的例示性计算装置。
具体实施方式
本发明的方面公开于以下描述及针对本发明的特定方面的相关图式中。可在不脱离本发明的范围的情况下设计出替代性方面。此外,将不详细描述或将省略本发明的熟知元件以免混淆本发明的相关细节。
词“例示性”在本文中用以意谓“充当实例、例子或说明”。本文中被描述为“例示性”的任何方面未必被认作比其它方面更佳或更有利。同样地,术语“本发明的方面”并不要求本发明的所有方面皆包含所论述的特征、优点或操作模式。
本文中所使用的术语仅出于描述特定方面的目的,且并不意欲限制本发明的方面。如本文中所使用,单数形式“一(a/an)”及“所述”同样包含复数形式,除非上下文另有清晰指示。应进一步理解,术语“包括(comprises/comprising)”及/或“包含(includes/including)”在本文中使用时指定所陈述的特征、整体、步骤、操作、元件及/或组件的存在,但不排除一或多个其它特征、整体、步骤、操作、元件、组件及/或其群组的存在或添加。
此外,就待由例如计算装置的元件执行的动作的序列而言,描述许多方面。应认识到此处描述的各种动作可通过特定电路(例如,专用集成电路(application specificintegrated circuit;ASIC)执行,通过由一或多个处理器执行的程序指令执行,或通过其两者的组合执行。另外,可认为本文所描述的此些动作序列完全体现于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体存储有在执行时将使相关联的处理器执行本文所描述的功能性的计算机指令的对应集合。因此,本发明的各种方面可以许多不同形式体现,已预期所述形式皆在所要求保护的主题的范围内。另外,对于本文所描述的方面中每一个,任何此些方面的对应形式可在本文中被描述为,例如,“经配置以执行所描述动作的逻辑”。
在本发明的例示性方面中,对于DRAM,例如实施于例如L3高速缓存的末级高速缓存中的eDRAM,提供选择性刷新机制。eDRAM可被集成在与存取末级高速缓存的处理器相同的片上系统(system on chip;SoC)上(尽管此并非要求)。对于此种末级高速缓存,应认识到,其显著比例的高速缓存线在被变为高速缓存之后可能不接收任何命中,这是因为此些高速缓存线的位置可被更接近对高速缓存作出存取请求的处理器的例如1级(level 1;L1)、2级(level 2;L2)高速缓存的内部级高速缓存过滤。进一步,在末级高速缓存的组联高速缓存实施方案中,随着高速缓存线被组织在每个组的两个或更多个路中,同样应认识到在末级高速缓存中命中的高速缓存线当中,相应的命中可被限制到一子组路,其包含一组最近较多使用路(例如,与一组包括8路的末级高速缓存相关的最近最少使用(LRU)堆栈中的4处最近较多使用位置)。因此,此处描述的选择性刷新机制是针对仅选择性地刷新可能被重复使用的线,尤其在使用DRAM技术配置的高速缓存的最近较少使用路中的线。
在一个方面中,2个位,其被称作刷新位及重用位,与每个路相关(例如,通过(例如)以两个额外的位,加强与路相关的标签)。进一步,对高速缓存的LRU堆栈指派阈值,其中所述阈值指示最近较多使用线与最近较少使用线之间的间距。在一个方面中,阈值可为固定的,而在另一方面中,阈值可动态地改变,使用计数器以分析接收命中的路的数目。
大体来说,对于路被设定成“1”(或仅仅被“设定”)的刷新位被采用以指示存储于相关联的路中的高速缓存线应被刷新。对于路被设定成“1”(或仅仅被“设定”)的重用位被采用以指示路中的所述高速缓存线至少经历了一次重用。在例示性方面中,在高速缓存线处于其位置最近较多使用的路中时,高速缓存线以及其刷新位组将被刷新;但如果所述路的位置跨越阈值到最近较少使用位置,那么如果其刷新位被设定且其重用位同样被设定,那么高速缓存线被刷新。这是因为最近较少使用路中的高速缓存线通常被公认为不太可能经历重用,且因此不被刷新,除非其重用位经设定以指示此些高速缓存线经历了重用。
通过以此方式选择性地刷新线,涉及刷新操作的功率消耗被降低。此外,通过不刷新可能已常规地被刷新的特定线,高速缓存在例如读取/写入操作的其它存取操作中的可用性增加。
首先参考图1,说明例示性处理系统100,其中代表性地展示处理器102、高速缓存104及存储器106,应记住,可存在为清楚起见而未说明的各种其它组件。处理器102可为经配置以对可能为主存储器的存储器106作出存储器存取请求的任何处理元件。高速缓存104可为存在于处理器102与处理系统100的存储器层级中的存储器106之间的几个高速缓存中的一个。在一实例中,高速缓存104可为末级高速缓存(例如,3级或L3高速缓存),其中处理器102与高速缓存104之间存在一或多个较高级高速缓存,例如1级(L1)高速缓存及一或多个2级(L2)高速缓存,尽管未展示此些高速缓存。在一方面中,高速缓存104可经配置为eDRAM高速缓存,且可集成到与处理器102相同的芯片上(尽管此并非要求)。高速缓存控制器103已通过虚线说明,以表示经配置以执行关于高速缓存104的例示性控制操作的逻辑,包含管理及实施此处描述的选择性刷新操作。尽管高速缓存控制器103已在图1中被说明为高速缓存104周围的包装器,但应理解在不脱离本发明的范围的情况下,高速缓存控制器103的逻辑及/或功能性可以任何其它适合的方式集成于处理系统100中。
如所展示,出于说明起见,在一实例中,高速缓存104可为具有四个组104a到104d的组联高速缓存。每个组104a到104d可具有多个高速缓存线(也被称作高速缓存块)。在图1的实例中已代表性地示出高速缓存线的用于组104c的八个路w0到w7。可通过在堆栈105c(其也被称作LRU堆栈)中,从最近最多存取或最近最多使用(most recently used;MRU)到最近最少存取或最近最少使用(least recently used;LRU)的顺序在路w0到w7中记录高速缓存线的顺序,估计高速缓存存取的时间位置。举例来说,LRU堆栈105c可为缓冲器或寄存器的有序集合,其中LRU堆栈105c的每一项可包含路的指示,范围为MRU到LRU(例如,在说明性实例中,LRU堆栈105c的每一项可包含3位以指向八个路w0到w7中的一个,使得MRU项可指向第一路,例如,w5,而LRU项可指向第二路,例如,w3)。在所说明的实例实施方案中,LRU堆栈105c可被提供在高速缓存控制器103中或为其一部分。
在例示性方面中,阈值可用于划分LRU堆栈105c的项,其中朝向阈值的最近最多使用(MRU)位置的位置被称作最近较多使用位置,及朝向阈值的最近较少使用(LRU)位置的位置被称作最近较少使用位置。通过此种阈值指派,与最近较多使用位置相关的路中的LRU堆栈105c的线可以大体上被刷新,而与最近较少使用位置相关的路中的线可能不被刷新,除非它们经历了重用。以此方式,通过使用两个位以跟踪线是否要被刷新,执行选择性刷新。
上述两个位被代表性地展示为与组104c的每个路w0到w7相关的刷新位110c及重用位112c。刷新位110c及重用位112c可经配置为标签阵列的额外位(未单独地展示)。更一般地说,在替代性实例中,刷新位110c可存储于任何存储器结构中,例如用于组104c的每个路w0到w7的刷新位寄存器(图1中未标识为单独参考编号),及类似地,重用位112c可存储于任何存储器结构中,例如用于组104c的每个路w0到w7的重用位寄存器(图1中未标识为单独参考编号)。因此,对于每个组中的两个或更多个路w0到27,高速缓存控制器103可包括相应数量的两个或更多个包括刷新位110c的刷新位寄存器,及两个或更多个包括重用位112c的重用位寄存器。如先前所提及,如果对于组104c的路,刷新位110c被设定(例如,设定到值“1”),那么此意谓相应的路中的高速缓存线待被刷新。如果重用位112c被设定(例如,设定到值“1”),那么此意谓相应的线至少经历了一次重用。
在例示性方面中,高速缓存控制器103(或任一其它适合的逻辑)可经配置以基于用于每个路的刷新位110c及重用位112c的状态或值在高速缓存104上执行例示性刷新操作,其允许选择性地仅刷新可能重复使用的组104c的路中的线。描述提供可以实施于高速缓存控制器103中,以在高速缓存104上执行选择性刷新操作,且更具体来说,执行在高速缓存104的组104c的路w0到w7中的线的选择性刷新的实例功能。在例示性方面中,仅当路的相关联的刷新位110c被设定时,路中的线被刷新,且在路的相关联的刷新位110c未被设定(或被设定成值“0”)时,不被刷新。以下策略可用于设定/复位组104c的每个线的刷新位110c及重用位112c。
当新高速缓存线被插入高速缓存104中,例如,组104c中时,相应的刷新位110c被设定(例如,设定到值“1”)。重新插入的高速缓存线的路将处于LRU堆栈105c中的最近较多使用位置中。当线插入到其它路中时,路的位置从最近较多使用位置开始下降到最近较少使用位置。刷新位110c将保留设定,直到与其中线插入于LRU堆栈105c中的路相关的位置跨越上述阈值,从最近较多使用线指派变动到最近较少使用线指派。
一旦路的位置改变到最近较少使用指派,那么用于所述路的刷新位110c基于重用位112c的值被刷新。如果重用位112c在例如线已经历高速缓存命中时被设定(例如,设定到值“1”),那么刷新位110c同样被设定,且线将被刷新,直到线变为失效(即其重用位112c被复位或设定成值“0”)。另一方面,如果重用位112c在例如线尚未经历高速缓存命中时未被设定(例如,设定成值“0”),那么刷新位110c被设定成“0”,且线不再被刷新。
在组104c中的线的高速缓存未命中时,可在组104c的路中安设所述线,且其刷新位110c可被设定成“1”,且重用位112c被复位或设定成“0”。线的相对使用情况是通过其路在LRU堆栈105c中的位置跟踪。如先前,一旦路跨越阈值到LRU堆栈105c中指派为最近较少使用的位置中,且如果线尚未重复使用(即,重用位112c是“0”),那么相应的刷新位110c被复位或设定成“0”,以避免刷新最近未使用且可能不具有高重用概率的失效线。
对于组104c的路中的线上的高速缓存命中,如果其刷新位110c被设定,那么其重用位112c同样被设定,且线被返回或传递到请求方,例如,处理器102。在一些方面中,如果对于所述路,刷新位110c未设定(或设定成“0”),那么高速缓存命中可被视为路中的线的高速缓存未命中。更详细地,路中的刷新位110c未设定(或设定成“0”)的线被假定为已超出刷新限制,且相应地被处理为失效,且因此不返回到处理器102。对于被处理为未命中的高速缓存线的请求随后被发送到备份存储器的下一级,例如,主存储器106,如此新制且正确的副本可再次被提取到高速缓存104中。
在一方面中,如果线在已穿过朝向MRU位置的阈值进入LRU堆栈105c中的最近较多使用位置的组104c的路中(例如,线在四个最近较多使用位置中),且如果重用位112c被设定,那么刷新位110c同样被设定,这是因为线经历了重用,且因此所述线始终被刷新。另一方面,如果线跨越阈值进入最近较多使用位置,且其重用位112c未被设定,那么刷新位110c被复位或设定成“0”,这是因为线未经历重用;且如此可具有低未来重用概率;相应地,所述线的刷新被中止或不被执行。
在一些方面中,代替如上文所述的固定阈值,对于高速缓存104的实例组104c,可与LRU堆栈105c的位置结合使用动态可变阈值。举例来说,阈值可基于程序阶段或一些其它指标动态地改变。
图2A示出动态阈值的一实施方案。图1的LRU堆栈105c被展示为实例,其具有一组代表性计数器205c、与LRU堆栈105c的每个路相关的一计数器。计数器205c可根据实施方案需求选择,但通常可各具有M个位大小,且设定成每当组104c的相应的线接收命中时增加。因此,计数器205c可用于分析组104c的线接收的命中的数目。基于在此些计数器中的值,其例如在指定的间隔时间取样,用于LRU堆栈105c的阈值(如先前论述,基于所述阈值,朝向所述MRU位置跨越最近较多使用位置的线可被刷新,而在朝向LRU位置的最近较少使用位置中的线可能不被刷新)可经调节以用于下一采样间隔。在实例中,计数器205c的最高值与MRU位置相关联,且计数器205c的最低值与LRU位置相关联,计数器205c在最高与最低值之间的值与MRU位置与LRU位置之间的位置相关联,从最近较多使用指派到最近较少使用指派。因此,如果特定计数器(例如,与路w5相关)具有最高值,那么相关联的路中的线被刷新,直到计数器值落到低于与LRU堆栈105c的w5位置相关的值。
在一些设计中,可能需要减小图2A的计数器205c的硬件及/或相关联的资源。图2B示出另一方面,其中可降低用于确定LRU堆栈105c的阈值的计数器消耗的资源。图2B中展示的计数器210c说明在此些计数器中的分组。举例来说,两个计数器210c中的一个可用于跟踪路w4到w7当中的重用,而两个计数器210c中的另一个可用于跟踪路w0到w3当中的重用。以此方式,无需对于每个路消耗单独计数器。然而,所述分析与图2A的实施方案可提供的粒度相比更粗糙,附带有资源减少的好处。基于两个计数器210c,可例如通过分析组104c的路的上半部分或下半部分发现更多重用,作出关于阈值的决策。
在又一实施方案中,尽管未明确展示,但可仅对高速缓存104的总数量组的子组提供计数器。举例来说,如果提供计数器N1到N4以跟踪高速缓存104的实施方案中的16组内的四组的路的上半部分(不对应于图1中展示的说明),且提供计数器M1到M4以跟踪16组内的四组的路的下半部分,那么可依据maximum(avg(N1…N4),avg(M1…M4))计算LRU阈值。
因此,应了解,例示性方面包含用于执行本文所公开的处理程序、功能及/或算法的各种方法。举例来说,如下文进一步论述,方法300是针对一种刷新高速缓存(例如,高速缓存104)的线的方法。
在框302中,方法300包括关联刷新位及重用位与一组高速缓存的两个或更多个路中的每一个(例如,通过高速缓存控制器103关联刷新位110c及重用位112c与组104c的路w0到w7)。
块304包括关联最近最少使用(LRU)堆栈与所述组,其中所述LRU堆栈包括与两个或更多个路中的每一个相关的位置,所述位置范围为最近最多使用位置到最近最少使用位置(例如,与组104c相关的高速缓存控制器103的LRU堆栈105c,位置范围为MRU到LRU)。
块306包括对于LRU堆栈指派阈值,其中朝向阈值的最近最多使用位置的位置包括最近较多使用位置,及朝向阈值的最近最少使用位置的位置包括最近较少使用位置(例如,固定阈值或动态阈值,在图1中,举例来说,LRU堆栈105c中的朝向阈值的MRU位置的位置展示为最近较多使用位置,且朝向阈值的LRU位置的位置展示为最近较少使用位置)。
在框308中,如果满足以下条件,那么高速缓存的路中的线可被选择性地刷新:路的位置是最近较多使用位置中的一个,且与路相关的刷新位被设定;或路的位置是最近较少使用位置中的一个,且与路相关的刷新位及重用位两者均被设定(例如,如果满足以下条件,那么高速缓存控制器103可经配置以选择性地导引在高速缓存104的组104c的两个或更多个路w0到w7中的路中的线上执行刷新操作:路的位置是最近较多使用位置中的一个,且与路相关的刷新位110c被设定;或路的位置是最近较少使用位置中的一个,且与路相关的刷新位110c及重用位112c两者均被设定)。
应了解,本发明的方面同样包含经配置以执行此处描述的功能性,或包括用于执行此处描述的功能性的装置的任何设备。举例来说,根据一方面,例示性设备包括高速缓存(例如,高速缓存104),其经配置为具有至少一个组(例如,组104c)及至少一个组中的两个或更多个路(例如,路w0到w7)的组联高速缓存。如此,所述设备可包括用于跟踪与所述至少一个组(例如,LRU堆栈105c)的两个或更多个路中的每一个相关的位置的装置,所述位置范围为最近最多使用位置到最近最少使用位置,且其中朝向阈值的所述最近最多使用位置的位置包括最近较多使用位置,及朝向阈值的所述最近最少使用位置的位置包括最近较少使用位置。设备也可包括如果满足以下条件,那么选择性地刷新所述高速缓存的路中的线的装置(例如,高速缓存控制器103):所述路的所述位置是所述最近较多使用位置中的一个,且指示与所述路相关的刷新(例如,刷新位110c)的第一装置被设定;或所述路的所述位置是所述最近较少使用位置中的一个,且指示刷新的所述第一装置及指示与所述路相关的重用(例如,重用位112c)的第二装置两者均被设定。
现将就图4论述可以利用本发明的例示性方面的实例设备。图4展示出计算装置400的框图。计算装置400可对应于经配置以执行图3的方法300的处理系统的例示性实施方案。在图4的描述中,计算装置400被展示为包含处理器102及高速缓存104,连同图1中展示的高速缓存控制器103。高速缓存控制器103经配置以在高速缓存104上执行如本文所论述的选择性刷新机制(但为清楚起见,图1中已展示的高速缓存104的另外细节,例如组104a到104d、路w0到w7以及高速缓存控制器103的另外细节,例如刷新位110c、重用位112c、LRU堆栈105c等已从此视图中省略)。在图4中,处理器102被例示性地展示为如参看图1所描述,耦合到存储器106,且高速缓存104在处理器102与存储器106之间,但应理解,计算装置400也可支持所属领域中已知的其它存储器配置。
图4也展示耦合到处理器102及显示器428的显示控制器426。在一些情况下,计算装置400可用于无线通信,且图4同样以虚线展示出可选框,例如编码器/解码器(coder/decoder;CODEC)434(例如,音频及/或语音编解码器),其耦合到处理器102,且扬声器436及麦克风438可耦合到编解码器434;及无线天线442,其耦合到无线控制器440,其耦合到处理器102。在特定方面中,在此些可选块中的一或多者存在时,处理器102、显示控制器426、存储器106及无线控制器440被包含于系统封装或片上系统装置422中。
因此,在特定方面中,输入装置430及电力供应器444耦合到片上系统装置422。此外,在特定方面中,如图4中所说明,当存在一或多个可选块时,显示器428、输入装置430、扬声器436、麦克风438、无线天线442及电力供应器444在片上系统装置422外部。然而,显示器428、输入装置430、扬声器436、麦克风438、无线天线442及电力供应器444中的每一个可耦合到片上系统装置422的组件,例如接口或控制器。
应注意,尽管图4大体上描绘计算装置,但处理器102及存储器106也可集成到机顶盒、服务器、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(personaldigital assistant;PDA)、固定位置数据单元、计算机、便携式计算机、平板计算机、通信装置、移动电话或其它类似装置中。
所属领域的技术人员应理解,可使用多种不同技术及技艺中任一个来表示信息与信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合表示可贯穿以上描述所参考的数据、指令、命令、信息、信号、位、符号及码片。
此外,所属领域的技术人员将了解,结合本文中所公开的方面而描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的此可互换性,各种说明性组件、块、模块、电路及步骤已在上文大体按其功能性加以描述。此功能性实施为硬件还是软件取决于特定应用及强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同的方式实施所描述功能性,但不应将此些实施决策解释为导致脱离本发明的范围。
结合本文中所公开的方面而描述的方法、序列及/或算法可直接在硬件中、在由处理器执行的软件模块中或在两者的组合中实施。软件模块可驻存于RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM,或所属领域中已知的任何其它形式的存储媒体中。例示性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并将信息写入到存储媒体。在替代方案中,存储媒体可集成到处理器。
因此,本发明的一方面可包含体现用于DRAM的选择性刷新的方法的计算机可读媒体。因此,本发明不限于所说明的实例,且用于执行本文中所描述的功能性的任何装置皆包含于本发明的方面中。
虽然前述公开内容展示本发明的说明性方面,但应注意,在不脱离如由所附权利要求书所界定的本发明的范围的情况下,可在本文中作出各种改变及修改。无需按任何特定次序来执行根据本文中所描述的本发明的方面的方法请求项的功能、步骤及/或动作。此外,尽管可以单数形式描述或要求本发明的元件,但除非明确陈述限于单数形式,否则也涵盖复数形式。

Claims (30)

1.一种刷新高速缓存的线的方法,所述方法包括:
关联刷新位及重用位与一组所述高速缓存的两个或更多个路中的每一个;
关联最近最少使用LRU堆栈与所述组,其中所述LRU堆栈包括与所述两个或更多个路中的每一个相关的位置,所述位置范围为最近最多使用位置到最近最少使用位置;
对所述LRU堆栈指定阈值,其中朝向所述阈值的所述最近最多使用位置的位置包括最近较多使用位置,及朝向所述阈值的所述最近最少使用位置的位置包括最近较少使用位置;及
如果满足以下条件,那么选择性地刷新所述高速缓存的路中的线:
所述路的所述位置是所述最近较多使用位置中的一个,且与所述路相关的所述刷新位被设定;或
所述路的所述位置是所述最近较少使用位置中的一个,且与所述路相关的所述刷新位及所述重用位两者均被设定。
2.根据权利要求1所述的方法,其中当所述线的所述高速缓存中出现未命中之后,所述线被重新插入到所述路中时:
关联所述路的所述位置与所述最近较多使用位置中的一个;
设定所述刷新位;及
复位所述重用位。
3.根据权利要求2所述的方法,其进一步包括,当所述路的所述位置跨越所述阈值,及所述路的所述位置是所述最近较少使用位置中的一个时,
如果设定所述重用位,那么保持所述刷新位为经设定;或
如果所述重用位未被设定,那么复位所述刷新位。
4.根据权利要求2所述的方法,其进一步包括,在用于所述线的所述高速缓存中的命中后,设定所述重用位。
5.根据权利要求1所述的方法,其进一步包括,在所述线的高速缓存命中后,如果所述刷新位被设定且所述重用位同样被设定,那么将所述线从所述高速缓存返回到所述线的请求方。
6.根据权利要求1所述的方法,其进一步包括,在所述线的高速缓存命中后,如果所述刷新位未被设定,那么处理所述高速缓存命中为高速缓存未命中,及将对所述线的请求递送到所述高速缓存的备份存储器。
7.根据权利要求1所述的方法,其中如果所述路的所述位置从所述最近较少使用位置中的一个跨越所述阈值到所述最近较多使用位置中的一个,且所述重用位被设定,那么设定所述刷新位。
8.根据权利要求1所述的方法,其中如果所述路的所述位置从所述最近较少使用位置中的一个跨越所述阈值到所述最近较多使用位置中的一个,且所述重用位未被设定,那么复位所述刷新位。
9.根据权利要求1所述的方法,其中所述阈值相对于所述LRU堆栈的所述位置固定。
10.根据权利要求1所述的方法,其中所述阈值基于与所述LRU堆栈相关的计数器的值动态地可变,其中与具有高速缓存命中的路相关的所述计数器递增。
11.根据权利要求10所述的方法,其中计数器对两个或更多个路通用。
12.根据权利要求1所述的方法,其中所述高速缓存被实施为嵌入式DRAM eDRAM。
13.根据权利要求1所述的方法,其中所述高速缓存经配置为处理系统的末级高速缓存。
14.一种设备,其包括:
高速缓存,其经配置为一组联高速缓存,其具有至少一个组及所述至少一个组中的两个或更多个路;
高速缓存控制器,其经配置用于所述至少一个组的线的选择性刷新,所述高速缓存控制器包括:
两个或更多个刷新位寄存器,其包括两个或更多个刷新位,每个刷新位与所述两个或更多个路中的一相对应者相关;
两个或更多个重用位寄存器,其包括两个或更多个重用位,每个重用位与所述两个或更多个路中的一相对应者相关;及
最近最少使用LRU堆栈,其包括两个或更多个位置,每个位置与所述两个或更多个路中的一相对应者相关,所述两个或更多个位置范围为最近最多使用位置到最近最少使用位置,
其中朝向经指派用于所述LRU堆栈的阈值的所述最近最多使用位置的位置包括最近较多使用位置,及朝向所述阈值的所述最近最少使用位置的位置包括最近较少使用位置;及
其中如果满足以下条件,那么所述高速缓存控制器经配置以选择性地刷新所述两个或更多个路的路中的线:
所述路的所述位置是所述最近较多使用位置中的一个,且与所述路相关的所述刷新位被设定;或
所述路的所述位置是所述最近较少使用位置中的一个,且与所述路相关的所述刷新位及所述重用位两者均被设定。
15.根据权利要求14所述的设备,其中所述高速缓存控制器进一步经配置以,当所述线的所述高速缓存中出现未命中之后,所述线被重新插入到所述路中时:
关联所述路的所述位置与所述最近较多使用位置中的一个;
设定所述刷新位;及
复位所述重用位。
16.根据权利要求15所述的设备,其中所述高速缓存控制器进一步经配置以,当所述路的所述位置跨越所述阈值,及所述路的所述位置是所述最近较少使用位置中的一个时:
如果设定所述重用位,那么保持所述刷新位为经设定;或
如果所述重用位未被设定,那么复位所述刷新位。
17.根据权利要求15所述的设备,其中所述高速缓存控制器进一步经配置以,在用于所述线的所述高速缓存中的命中后,设定所述重用位。
18.根据权利要求14所述的设备,其中所述高速缓存控制器进一步经配置以,在所述线的高速缓存命中后,如果所述刷新位被设定且所述重用位同样被设定,那么将所述线从所述高速缓存返回到所述线的请求方。
19.根据权利要求14所述的设备,其中所述高速缓存控制器进一步经配置以,在所述线的高速缓存命中后,如果所述刷新位未被设定,那么处理所述高速缓存命中为高速缓存未命中,及将对所述线的请求递送到所述高速缓存的备份存储器。
20.根据权利要求14所述的设备,其中所述高速缓存控制器进一步经配置以,如果所述路的所述位置从所述最近较少使用位置中的一个跨越所述阈值到所述最近较多使用位置中的一个,且所述重用位被设定,那么设定所述刷新位。
21.根据权利要求14所述的设备,其中所述高速缓存控制器进一步经配置以,如果所述路的所述位置从所述最近较少使用位置中的一个跨越所述阈值到所述最近较多使用位置中的一个,且所述重用位未被设定,那么复位所述刷新位。
22.根据权利要求14所述的设备,其中所述阈值相对于所述LRU堆栈的所述位置固定。
23.根据权利要求14所述的设备,其中所述高速缓存控制器进一步包括计数器,其与所述LRU堆栈相关,且其中所述阈值基于所述计数器的值动态地可变,且其中与具有高速缓存命中的路相关的所述计数器递增。
24.根据权利要求23所述的设备,其中计数器对两个或更多个路通用。
25.根据权利要求14所述的设备,其中所述高速缓存被实施为嵌入式DRAM eDRAM。
26.根据权利要求14所述的设备,其包括处理系统,其中所述高速缓存经配置为所述处理系统的末级高速缓存。
27.根据权利要求14所述的设备,其集成到装置中,所述装置选自由以下每一个组成的群组:机顶盒、服务器、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理PDA、固定位置数据单元、计算机、便携式计算机、平板计算机、通信装置,及移动电话。
28.一种设备,其包括:
高速缓存,其经配置为组联高速缓存,其具有至少一个组及所述至少一个组中的两个或更多个路;
用于跟踪与所述至少一个组的所述两个或更多个路中的每一个相关的位置的装置,所述位置范围为最近最多使用位置到最近最少使用位置,且其中朝向阈值的所述最近最多使用位置的位置包括最近较多使用位置,及朝向所述阈值的所述最近最少使用位置的位置包括最近较少使用位置;及
如果满足以下条件,那么选择性地刷新所述高速缓存的路中的线的装置:
所述路的所述位置是所述最近较多使用位置中的一个,且指示与所述路相关的刷新的第一装置被设定;或
所述路的所述位置是所述最近较少使用位置中的一个,且指示刷新的所述第一装置及指示与所述路相关的重用的第二装置两者均被设定。
29.一种包括代码的非暂时性计算机可读存储媒体,其在由计算机执行时,使得所述计算机执行操作以刷新高速缓存的线,所述非暂时性计算机可读存储媒体包括:
用于关联刷新位及重用位与一组所述高速缓存的两个或更多个路中的每一个的代码;
用于关联最近最少使用LRU堆栈与所述组的代码,其中所述LRU堆栈包括与所述两个或更多个路中的每一个相关的位置,所述位置范围为最近最多使用位置到最近最少使用位置;
用于对所述LRU堆栈指定阈值的代码,其中朝向所述阈值的所述最近最多使用位置的位置包括最近较多使用位置,及朝向所述阈值的所述最近最少使用位置的位置包括最近较少使用位置;及
如果满足以下条件,那么选择性地刷新所述高速缓存的路中的线的代码:
所述路的所述位置是所述最近较多使用位置中的一个,且与所述路相关的所述刷新位被设定;或
所述路的所述位置是所述最近较少使用位置中的一个,且与所述路相关的所述刷新位及所述重用位两者均被设定。
30.根据权利要求29所述的非暂时性计算机可读存储媒体,其进一步包括,当所述线的所述高速缓存中出现未命中之后,所述线被重新插入到所述路中时:
用于关联所述路的所述位置与所述最近较多使用位置中的一个的代码;
用于设定所述刷新位的代码;及
用于复位所述重用位的代码。
CN201880038244.5A 2017-07-07 2018-06-18 用于dram的选择性刷新机制 Pending CN110720093A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/644,737 US20190013062A1 (en) 2017-07-07 2017-07-07 Selective refresh mechanism for dram
US15/644,737 2017-07-07
PCT/US2018/038066 WO2019009994A1 (en) 2017-07-07 2018-06-18 SELECTIVE REFRESHING MECHANISM FOR DRAMS

Publications (1)

Publication Number Publication Date
CN110720093A true CN110720093A (zh) 2020-01-21

Family

ID=62842317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880038244.5A Pending CN110720093A (zh) 2017-07-07 2018-06-18 用于dram的选择性刷新机制

Country Status (5)

Country Link
US (1) US20190013062A1 (zh)
EP (1) EP3649554A1 (zh)
CN (1) CN110720093A (zh)
TW (1) TW201917585A (zh)
WO (1) WO2019009994A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11182106B2 (en) * 2018-03-21 2021-11-23 Arm Limited Refresh circuit for use with integrated circuits
US10691596B2 (en) * 2018-04-27 2020-06-23 International Business Machines Corporation Integration of the frequency of usage of tracks in a tiered storage system into a cache management system of a storage controller

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090144492A1 (en) * 2007-12-04 2009-06-04 International Business Machines Corporation Structure for implementing dynamic refresh protocols for dram based cache
US20090144507A1 (en) * 2007-12-04 2009-06-04 International Business Machines Corporation APPARATUS AND METHOD FOR IMPLEMENTING REFRESHLESS SINGLE TRANSISTOR CELL eDRAM FOR HIGH PERFORMANCE MEMORY APPLICATIONS
US7882302B2 (en) * 2007-12-04 2011-02-01 International Business Machines Corporation Method and system for implementing prioritized refresh of DRAM based cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090144492A1 (en) * 2007-12-04 2009-06-04 International Business Machines Corporation Structure for implementing dynamic refresh protocols for dram based cache
US20090144507A1 (en) * 2007-12-04 2009-06-04 International Business Machines Corporation APPARATUS AND METHOD FOR IMPLEMENTING REFRESHLESS SINGLE TRANSISTOR CELL eDRAM FOR HIGH PERFORMANCE MEMORY APPLICATIONS
US7882302B2 (en) * 2007-12-04 2011-02-01 International Business Machines Corporation Method and system for implementing prioritized refresh of DRAM based cache

Also Published As

Publication number Publication date
EP3649554A1 (en) 2020-05-13
WO2019009994A1 (en) 2019-01-10
TW201917585A (zh) 2019-05-01
US20190013062A1 (en) 2019-01-10

Similar Documents

Publication Publication Date Title
US10169240B2 (en) Reducing memory access bandwidth based on prediction of memory request size
US10223278B2 (en) Selective bypassing of allocation in a cache
US10185668B2 (en) Cost-aware cache replacement
US9524771B2 (en) DRAM sub-array level autonomic refresh memory controller optimization
CN100511184C (zh) 用于对芯片多处理器的共享高速缓存器分区的设备和方法
US8024513B2 (en) Method and system for implementing dynamic refresh protocols for DRAM based cache
US11461011B2 (en) Extended line width memory-side cache systems and methods
US10120806B2 (en) Multi-level system memory with near memory scrubbing based on predicted far memory idle time
US20180081811A1 (en) Dynamic cache partitioning through hill-climbing
US9292451B2 (en) Methods and apparatus for intra-set wear-leveling for memories with limited write endurance
US9836396B2 (en) Method for managing a last level cache and apparatus utilizing the same
US11934317B2 (en) Memory-aware pre-fetching and cache bypassing systems and methods
WO2019022837A1 (en) MINIMAL REDUCTION IN PERFORMANCE DEGRADATION DUE TO REFRESH OPERATIONS IN MEMORY SUBSYSTEMS
CN110720093A (zh) 用于dram的选择性刷新机制
US20180081815A1 (en) Way storage of next cache line
US20190034342A1 (en) Cache design technique based on access distance
US20190332166A1 (en) Progressive power-up scheme for caches based on occupancy state
CN114691541A (zh) 一种基于动态访问的dram-nvm混合内存预测器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200121

WD01 Invention patent application deemed withdrawn after publication