CN105027211B - 自适应粒度行缓冲器高速缓存 - Google Patents

自适应粒度行缓冲器高速缓存 Download PDF

Info

Publication number
CN105027211B
CN105027211B CN201380072045.3A CN201380072045A CN105027211B CN 105027211 B CN105027211 B CN 105027211B CN 201380072045 A CN201380072045 A CN 201380072045A CN 105027211 B CN105027211 B CN 105027211B
Authority
CN
China
Prior art keywords
memory
dram
caches
row
cache
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.)
Active
Application number
CN201380072045.3A
Other languages
English (en)
Other versions
CN105027211A (zh
Inventor
S.李
N.P.朱皮
N.穆利马诺哈尔
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN105027211A publication Critical patent/CN105027211A/zh
Application granted granted Critical
Publication of CN105027211B publication Critical patent/CN105027211B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4087Address decoders, e.g. bit - or word line decoders; Multiple line decoders
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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
    • 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem
    • G06F2212/3042In main memory subsystem being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code
    • 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

Abstract

根据示例,用于进行自适应粒度行缓冲器(AG‑RB)高速缓存的方法可以包括:确定是否要将数据高速缓存到RB高速缓存,并且通过处理器或存储器侧逻辑来针对不同存储器访问(诸如动态随机存取存储器(DRAM)访问)而调整要高速缓存到RB高速缓存的数据的量。根据另一示例,AG‑RB高速缓存装置可以包括3D堆叠的DRAM,所述3D堆叠的DRAM包括:多个DRAM管芯,所述DRAM管芯包括一个或多个DRAM存储体;以及逻辑管芯,所述逻辑管芯包括RB高速缓存。一种AG‑RB高速缓存装置还可以包括处理器管芯,所述处理器管芯包括存储器控制器,所述存储器控制器包括预测器模块,以确定是否要将数据高速缓存到RB高速缓存,以及针对不同DRAM访问而调整要高速缓存到RB高速缓存的数据的量。

Description

自适应粒度行缓冲器高速缓存
背景技术
动态随机存取存储器(DRAM)是这样一种类型的随机存取存储器(RAM),其在集成电路(IC)内的分离的电容器中存储数据的每一位。每个电容器可以包括两个状态,诸如充电或放电的状态,其可以表示位的两个值(例如0和1)。由于电容器的操作特性,电容器电荷被周期性地刷新以避免与位值有关的信息的丢失。对于周期性刷新电容器电荷的需要是对于将该类型的存储器指定为动态的基础。可以以三维(3D)堆叠的结构来制造DRAM,所述三维堆叠的结构将多层的密集存储器管芯与基础逻辑层相组合以实现例如外围电路、接口逻辑和测试结构。
附图说明
本公开的特征通过示例而被说明并且不限于以下的(多幅)图中,在图中,同样的标号指示同样的元件,其中:
图1A图示了根据本公开的示例的三维(3D)堆叠的动态随机存取存储器(DRAM)的等距视图;
图1B图示了根据本公开的示例的图1A的3D堆叠的DRAM的前视图;
图2图示了根据本公开的示例的自适应粒度行缓冲器高速缓存(AG-RB高速缓存)装置的架构;
图3图示了根据本公开的示例的用于图2的AG-RB高速缓存装置的全局自由列表、行映射单元和数据阵列的放大视图,以及部分行进行高速缓存和随后的命中的示例流;
图4图示了根据本公开的示例的用于行映射单元中的标签部分的内容可寻址存储器(CAM)设计;
图5图示了根据本公开的示例的用于进行自适应粒度行缓冲器高速缓存的方法;以及
图6图示了根据本公开的示例的计算机系统。
具体实施方式
为了简单和说明性的目的,通过主要参考示例来描述本公开。在以下的描述中,阐述了众多具体细节以便提供对本公开的透彻理解。然而,将容易地显而易见的是,可以在不限制于这些具体细节的情况下实践本公开。在其它实例中,没有详细描述一些方法和结构以免不必要地模糊本公开。
遍及本公开,术语“一”和“一个”意图表明至少一个特定元件。如本文中所使用的,术语“包括”意指包括但不限于,术语“包括了”意指包括了但不限于。术语“基于”意指至少部分地基于。
三维(3D)堆叠的动态随机存取存储器(DRAM)中的存储器行可以通过使用行缓冲器高速缓存来进行高速缓存,以改进DRAM的总体性能。例如,参考图1A和1B,3D堆叠的DRAM100可以包括多层的密集存储器管芯101与基础逻辑层102和封装基底层103。3D堆叠的DRAM100还可以包括64位宽的硅通孔(TSV)通道104,以用于经由数据路径105从来自存储器管芯101的DRAM行向基础逻辑层102传递数据。行缓冲器高速缓存可以被添加到基础逻辑层102以通过减少缓慢的和功率密集的行缓冲器激活和关闭的数目而提供更快的存储器访问和经改进的功率效率。对DRAM行进行高速缓存的一个方法包括以高命中率(即,对相同行的频繁的未来存储器访问)来对DRAM行进行高速缓存。然而,对于具有不规则的存储器访问模式的应用而言,对整个DRAM行进行高速缓存可能是低效的。例如,对于其中存储器访问能够重复地访问部分的存储器行的、具有不规则存储器访问模式的应用而言,对整个DRAM行进行高速缓存可能是低效的。对于低效的一个原因是基于可以是8Kbit至16Kbit长的相对长的DRAM行。通过64位宽的TSV通道104而将整个DRAM行从存储器管芯101移动到基础逻辑层102使用64个周期。此外,对DRAM行进行高速缓存贡献于行缓冲器高速缓存和TSV的动态功率,并且增加总的系统功率。
根据示例,本文中公开了自适应粒度行缓冲器高速缓存(下文中“AG-RB高速缓存”)装置和用于进行自适应粒度行缓冲器高速缓存(下文中“进行AG-RB高速缓存”)的方法。本文中公开的装置和方法一般包括AG-RB高速缓存过程,其针对不同的DRAM访问而动态地调整被传递到RB高速缓存的数据的量。AG-RB高速缓存过程改进进行RB高速缓存的性能,而不显著增加TSV带宽使用,从而导致低的能量消耗。因而,本文公开的装置和方法使3D堆叠的DRAM的逻辑层上的RB高速缓存的性能和能量利益最大化。本文公开的装置和方法可以包括专用预测器模块,以在最小开销的情况下向例如众核处理器以及具有大量存储体(bank)的存储器系统提供可伸缩性(scalability)。预测器模块可以决定是否对相对应的DRAM行进行高速缓存以用于未解决的请求,以及如果是这样,应当对多少DRAM行进行高速缓存。预测器模块不仅在更准确的预测的情况下增加行缓冲器命中率,而且还基于3D堆叠的存储器中的存储体的增加的数量而随着存储器请求队列大小可伸缩。本文中公开的装置和方法还包括RB高速缓存,所述RB高速缓存能够存储不同大小的线(line)以支持AG高速缓存过程。本文中公开的装置和方法还包括DRAM状态感知的替换策略,以当替换RB高速缓存条目时选择最佳的高速缓存替换候选以最小化等待时间。
根据示例,AG-RB高速缓存装置可以包括3D堆叠的DRAM,所述3D堆叠的DRAM包括:包括一个或多个DRAM存储体的多个DRAM管芯,以及包括RB高速缓存的逻辑管芯。AG-RB高速缓存装置还可以包括处理器管芯,所述处理器管芯包括存储器控制器,所述存储器控制器包括预测器模块以确定是否将数据高速缓存到RB高速缓存,并且针对不同的DRAM访问而调整要高速缓存到RB高速缓存的数据的量。根据另一示例,用于进行AG-RB高速缓存的方法可以包括确定是否将数据高速缓存到RB高速缓存,并且通过处理器或存储器侧逻辑而针对不同的存储器访问来调整要高速缓存到RB高速缓存的数据的量。本文公开的AG-RB高速缓存装置和方法可以与其它类型的存储器(诸如非易失性存储器,包括相变存储器(PCM)、自旋传输矩RAM(STT-RAM)、以及电阻式随机存取存储器(ReRAM)等等)一起使用。
本文公开的AG-RB高速缓存装置和方法向3D堆叠的DRAM提供AG-RB高速缓存,并且因而为大规模数据中心提供改进的性能和能量高效的存储器子系统。本文公开的装置和方法为具有不同存储器行为的宽范围的应用提供性能和能量效率的益处。本文公开的装置和方法使存储器控制器队列和预测器队列去耦,并且提供关于存储器访问模式的准确预测,其导致RB高速缓存的改进的使用以及改进的性能和能量效率。本文公开的装置和方法的使用的示例可以包括具有附加的板载(on-board)缓冲器芯片的双列直插式存储器模块(DIMM)。
图2图示了根据示例的AG-RB高速缓存装置110的架构。参考图2,装置110被描绘为包括:图示了DRAM层的DRAM管芯111、图示了逻辑层的逻辑管芯112、以及图示了处理器层的处理器管芯113。处理器管芯113的处理器的各种其它组件,诸如高速缓存等,为了清楚而被省略。DRAM管芯111可以包括多个DRAM存储体114,所述DRAM存储体114经由TSV通道117而通信地连接到列控制器115和RB高速缓存116(也图示为RB$,并且被指明为AG RB高速缓存116)。RB高速缓存116可以包括数据阵列118。DRAM存储体114和RB高速缓存116可以经由数据总线120和命令总线121而通信地连接到存储器控制器119。存储器控制器119可以存储可变数目的即将到来的和先前服务的存储器请求的地址。每个存储器列(rank)可以拥有分离的RB高速缓存116,所述分离的RB高速缓存116被来自不同DRAM管芯111的多个DRAM存储体114共享。存储器控制器119可以包括存储器请求队列122、可伸缩的预测器模块123、以及RB高速缓存分配表124。预测器模块123可以包括预测器队列125,所述预测器队列125从存储器请求队列122和取出模块126去耦。取出模块126可以使用策略来确定是否要将DRAM行高速缓存到RB高速缓存116。尽管RB高速缓存分配表124以及数据阵列118在图2的示例中被示出为是分离的,但是RB高速缓存分配表124和数据阵列118可以二者都被提供在存储器侧,如果存储器具有逻辑管芯的话。可替换地,RB高速缓存分配表124和数据阵列118可以二者都被提供在处理器侧上。
装置110的执行装置110中的各种其它功能的模块和其它组件可以包括被存储在非暂时性计算机可读介质上的机器可读指令。另外,或可替换地,装置110的模块和其它组件可以包括硬件或者机器可读指令与硬件的组合。
关于经去耦的预测器队列125,对于是否要将数据高速缓存到AG RB高速缓存116以及要对行的什么部分进行高速缓存的预测可以基于被包含在存储器访问模式中的信息。例如,存储器控制器119的现有存储器请求队列122内部的待决的存储器请求队列可以被利用以用于分析存储器访问模式。虽然该方法可以用于每通道具有有限数目的存储体(例如16个存储体)的存储器,但是该方法一般不可伸缩以满足每通道可以包含成百个存储体的3D DRAM的需求。例如,大的存储体计数(例如,针对DRAM存储体114)可以导致高的存储体水平并行性,并且因此减少每存储体的排成队的待决存储器请求的数目。作为结果,由于待决存储器请求队列中的不足够的访问模式信息,可能降低对RB高速缓存数据进行高速缓存的准确性。此外,现有的待决存储器请求队列122可以典型地包括有限的容量。原因是:增加存储器请求大小可能是昂贵的,因为待决存储器请求队列是复杂的并且功率密集的内容可寻址存储器(CAM)结构,其持有存储器访问信息,诸如地址、数据和控制。
去耦的预测器队列125解决可伸缩性需求以及与减少的存储器访问模式信息和长待决存储器请求队列的大开销有关的问题。根据示例,去耦的预测器队列125可以被形成为存储器控制器119中的分离的硬件队列,以存储可变数目的即将到来的存储器请求以及先前服务的请求的地址。去耦的预测器队列125的队列大小可以是可伸缩的。去耦的预测器队列125的硬件开销还可以小于具有相同数目的条目的待决存储器请求队列122的硬件开销,因为去耦的预测器队列125存储队列的地址,而存储器请求队列122持有存储器访问信息,诸如地址、数据和控制。因此,去耦的预测器队列125包括改进的可伸缩性以满足关于存储大量存储器请求的需求以改进具有大量DRAM存储体114的存储器系统(例如3D堆叠的存储器)中的预测准确性。
由于去耦的预测器队列125可以比待决存储器请求队列122大得多,所以处理器可以向预测器队列125发送存储器请求信息,即使存储器请求队列122是满的。在该情况下,尽管存储器请求队列122可能不接受可以被发布到外部存储器的新存储器请求,但是预测器队列125可以仍能够接受关于未来存储器请求的信息以用于更前向的查找,以改进RB高速缓存管理上的预测准确性。预测器队列125还可以追踪历史存储器请求以关于选择性地利用RB高速缓存116条目而做出进一步改进的决定。例如,去耦的预测器队列125可以首先存储用于未来存储器请求的信息并且用先前服务的存储器请求来填充任何剩余的容量。
预测器队列125可以被实现在存储器控制器119中以用于改进的性能,或者被实现在3D DRAM堆叠侧(例如,逻辑管芯112)处以用于改进的成本效率。对于每存储器通道具有有限的存储器容量和存储器存储体计数的、不需要存储器访问模式的额外信息的系统,去耦的预测器队列125还可以与存储器请求队列122合并。
取出模块126可以基于被存储在预测器队列125和/或待决存储器请求队列122中的信息来做出具有自适应粒度的选择性进行高速缓存的决定。例如,取出模块126可以评估预测器队列125中或待决存储器请求队列122中的多个存储器请求,如果预测器队列125和待决存储器请求队列122被统一了的话。可替换地,如果预测器队列125和待决存储器请求队列122未被统一,则用以评估预测器队列125和待决存储器请求队列122二者的决定可以基于这些队列是排他(exclusive)的还是可兼(inclusive)的。如果队列是可兼的(即,预测器队列125大于存储器请求队列122并且具有存储器请求队列122的所有地址信息),则搜索预测器队列125。否则,如果队列是排他的,则可以搜索预测器队列125和待决存储器请求队列122二者以改进准确性。
是否要将DRAM行高速缓存到逻辑管芯112上的RB高速缓存116的第一决定可以通过使用策略来做出。例如,取出模块126可以根据存储器访问模式而做出关于是否要将DRAM行高速缓存到RB高速缓存116的决定。例如,如果许多即将到来的存储器请求示出高的局部性并且命中于相同的行地址上,则存储器行可以被高速缓存以便可以直接从RB高速缓存来服务随后的存储器访问。由于访问RB高速缓存可以比直接访问存储器行更加高效,所以可以减少随后的存储器访问的等待时间和能量消耗,其进而改进总体系统性能和能量效率。可替换地,当存储器取出模块126观察到没有或很少有对相同行的附加待决请求时,取出模块126可以跳过RB高速缓存的条目的分配并且直接向内部存储器行缓冲器发布读/写请求。当存在很少的对行的请求时,执行一些单独的64字节存储器访问(包括读和写二者)可以比将整个内部存储器行缓冲器(即8~16Kb)高速缓存到行缓冲器高速缓存更快。由存储器控制器119所追踪的存储器状态(例如,存储体争用等等)也可以被用于帮助确定应当对哪一行进行高速缓存。例如,具有频繁访问并且在繁忙存储体中的行与具有相同访问频率的空闲存储体中的行相比可能对于被高速缓存而言是更加优选的。
如果取出模块126将取出DRAM行并且将它高速缓存在RB高速缓存116中,则取出模块126于是做出关于应当对多少数据或者DRAM行的什么分数进行高速缓存的第二决定。可以通过将预测器队列125中的所有存储器请求与未解决的请求的目标行地址进行比较来执行第二决定。例如,假定末级高速缓存线的大小是64字节的,要被取出并且高速缓存的DRAM行的分数(即,多少64字节数据块)可以通过相同行中被请求的高速缓存线(包括待决的和过去的请求二者)之间的最长距离而被确定。
例如,由于64字节线一般被高速缓存在处理器中并且128字节数据也可以被高速缓存在处理器中,通过下一条线预取出,在RB高速缓存116中对小于256字节的数据块进行高速缓存可以提供最小的性能增益。因而,预测器模块123可以以从大小为256B的子页面到大小为整个DRAM行的全页面以子页面的增量的自适应粒度而选择性地对数据进行高速缓存。子页面可以被定义为当取出部分的DRAM行并且对其进行高速缓存时在DRAM管芯111和RB高速缓存116之间的数据事务的最小单元。子页面大小可以从CPU高速缓存线大小(例如64B)到整行的大小而变化。对于由处理器服务的每个存储器请求,个数(population)计数电路可以用于对预测器队列125或存储器请求队列122中的请求之中的行地址匹配的数目进行计数(即,如果去耦的预测器队列125与存储器请求队列122合并了的话),并且另外,具有与未解决的存储器请求相同的行地址的所有子页面可以被高速缓存。由取出模块126做出的最终决定可以经由命令总线121而被发送到3D DRAM堆叠中的列控制器115。
为了使AG RB高速缓存116支持不同的访问粒度,例如,从子页面到全页面,DRAM行的邻近的子页面可以邻近地被放置在RB高速缓存116中以提供在RB高速缓存116和存储器堆叠之间的突发块传递。否则,从RB高速缓存116逐出(evict)全页面或若干子页面可能导致相对缓慢和功率密集的多行缓冲器激活和预充电。部分的行也可以在RB高速缓存116中被放置得尽可能接近,例如,以消除存储残片(fragmentation)。RB高速缓存116也可以是全相联的以避免冲突。例如,对于128KB大小的RB高速缓存116,256B子页面的访问粒度的情况下的相联性是512,并且在2KB全页面的情况下是64。尽管可以由未经优化的内容可寻址存储器(CAM)来满足这些方面,但是性能和能量开销可能过分地高。为了降低来自支持最高自适应相联性的硬件成本,装置110可以使用如图4中所示的并且在下文被进一步详细描述的高效且可伸缩的方法。
RB高速缓存分配表124可以被实现在处理器侧的存储器控制器119中以加速RB高速缓存116命中/未命中检测,以促进对哪些(部分)行可以当前被存储在RB高速缓存116中的追踪。存储器控制器119还可以咨询RB高速缓存分配表124以用于命令调度。
RB高速缓存116的数据阵列118可以被放置在3D堆叠的DRAM(即DRAM管芯111)的附近的逻辑层(即,逻辑管芯112)上,这是由于用于在3D堆叠的DRAM和逻辑管芯112之间传递数据的TSV通道117的位置。该分离的高速缓存配置是有益的,因为DRAM访问与处理器芯片上的小的高速缓存相比是不太等待时间敏感的,并且未命中率典型更高。
参考图2和3,图3图示了根据本公开的示例的用于图2的AG-RB高速缓存装置110的全局自由列表130和行映射单元131的放大视图,以及进行部分行高速缓存和随后的命中的示例流。RB高速缓存分配表124可以包括全局自由列表130和行映射单元131。全局自由列表130可以持有数据阵列118中的高速缓存线的信息,并且还可以在高速缓存线安装或替换期间将行映射在行映射单元131中。行映射单元131可以起到自包含的全相联高速缓存的作用。标签部分132可以被实现在图4的CAM 150中。标签部分132可以存储有存储器块的行地址以供查找。数据部分133除了诸如脏位和有效位(未示出)之类的高速缓存信息之外可以持有高速缓存线信息,包括头地址、粒度以及对数据阵列118进行索引的地址指针。
根据示例,RB高速缓存116的数据阵列118可以被分布或集中在逻辑管芯112上。相比于集中式的RB高速缓存放置,分布式的RB高速缓存放置可以避免在DRAM列之间的冲突,并且避免在长的列间数据线上传递数据的能量开销。RB高速缓存116中的每一个可以包括由列内的堆叠的DRAM存储体共享的分离的数据阵列118。多个邻近的子页面可以被绑定以形成具有高达全页面的较大粒度的高速缓存线。在该过程中,子页面可以以访问粒度的对应地址边界而被对准。来自相同DRAM行的多个子页面可以被连续地存储,例如,以避免对相同行的多个逐出。
参考图4,行映射单元131的标签部分132可以包含CAM以支持快速地址查找。为了降低以小的粒度(例如子页面)而维持RB高速缓存116的高相联性的成本,装置110可以包括用于行映射单元131的标签部分132的CAM 150。对于CAM 150,为了分层次的搜索线,存储装置可以被划分成仓(bin)(例如,参见CAM仓(i),CAM仓(i+1)等等),其中先前的仓的151处的失配信号可以触发在下一个仓中的访问(即比较)。利用CAM 150的该部分访问配置,相比于对CAM的重复的全访问,可以显著减少等待时间和功率。
CAM 150提供要在标签中的行地址查找之后计算的偏移信息和行地址的存储。例如,由于不同的应用可以具有存储器访问粒度的某些优选,因此某些子页面的行地址标签可以比其它子页面的行地址标签具有高得多的命中率。例如,如果应用优选访问其子页面大小为256B的64条目RB高速缓存116中的2KB的全页面,则可以在数据阵列118中的总计512个当中的对应64个子页面(即,那些是全页面的头端(head))处执行所有的标签比较。如果所有这些条目被放置在行映射单元131中的标签CAM 150的第一仓中,则512路的相联的行映射单元131可以具有与64条目CAM可比的功率和定时,而同时仍覆盖最坏情况。存储器控制器119可以监控平均访问粒度,并且通过周期性地将具有优选访问粒度的条目移动到上部CAM仓而对标签部分132存储进行排序。硬件排序的表的时间复杂性可以如O(n)那样低。
关于用于RB高速缓存116的管理的替换策略,缓存线可以被逐出,如果在存储器请求队列122和/或预测器队列125中没有对它的另外的存储器请求,并且它没有被映射到繁忙的存储体。如果RB高速缓存116中没有任何线满足该准则,则替换策略可以被降级到最近最少使用(LRU)的替换策略。
为了支持自适应的粒度,高速缓存线可以被逐出,如果它足够大的话(即,等于或大于待决请求的大小),以使得单个逐出将为新请求腾出足够地方。另外,高速缓存线可以被逐出,以使得相对于脏的高速缓存线优选非脏的高速缓存线。
参考图2和3来描述RB高速缓存116中的操作流的示例。在135处(即步骤(1)),当预测器模块123检测到需要被高速缓存的新(部分)行时,预测器模块123向RB高速缓存116发出请求。在该示例中,假定全页面是具有4个子页面的1KB,并且RB高速缓存116将对具有为0b 1010的行地址以及开始于0b 101010的子行地址的半行(即两个子页面)进行高速缓存。在136处(即步骤(2)),全局自由列表130可以在数据阵列118中的512B边界处拾取可用的高速缓存线(例如高速缓存线137),并且将该高速缓存线插入到行映射单元131的空条目中。行地址和元信息可以分别被存储在行映射单元131的标签132和数据部分133中。元信息可以包括0b 10的头地址(即,DRAM行内的子页面地址的偏移)、0b 10的粒度(即两个子页面)、以及对数据阵列高速缓存线进行索引的指针。在138处(即步骤(3)),存储器控制器119可以发布DRAM访问命令和RB高速缓存116访问命令二者以从DRAM检索数据并且将半行(即,分别具有为0b101010和0b101011的地址的2个子页面)存储在数据阵列118中,其完成存储器访问和相关联的AG-RB高速缓存操作。
接下来,随后的存储器请求可以到达。例如,在139处(即步骤(4)),在新的存储器请求访问子页面0b 101011处的数据的情况下,存储器控制器119可以咨询RB高速缓存分配表124。在140处(即步骤(5)),行映射单元131中的命中指示(部分)行被高速缓存。因为在该时间处高速缓存行的粒度是未知的(即,因而在该阶段它是否是真实的命中是未知的),由待决存储器请求所请求的该子页面的地址偏移(0b 11)以及头地址(0b 10)的汉明(Hamming)距离可以与粒度进行比较以进一步证实这是否是实际的命中。在该示例中,由于汉明距离小于粒度,所以这是真实的命中,并且因此该半行的起始地址和汉明距离可以一起使用以对数据阵列118进行寻址以供数据检索。
图5图示了与其构造在上文被详细描述的AG-RB高速缓存装置110的示例相对应的用于进行AG-RB高速缓存的方法200的流程图。方法200可以作为示例而非限制的实现在参照图2的AG-RB高速缓存装置110上。方法200可以实践在其它装置中。
参考图5,对于方法200,在块201处,做出是否要将数据高速缓存到RB高速缓存的确定。一般而言,存储器访问模式可以用于确定是否要将数据高速缓存到RB高速缓存。例如,参考图2,取出模块126可以基于被存储在预测器队列125和待决存储器请求队列122中的信息而做出具有自适应粒度的选择性进行高速缓存的决定。是否要将DRAM行高速缓存到逻辑管芯112上的RB高速缓存116的第一决定可以通过使用策略来做出。预测器队列125可以用于存储信息,包括先前服务的存储器请求和即将到来的存储器请求的地址。预测器队列125可以与存储器请求队列122可组合。被存储在预测器队列125中的地址或被存储在存储器请求队列122中的信息可以用于确定是否要将DRAM行高速缓存到RB高速缓存116。预测器队列125可以被实现在处理器(例如处理器管芯113)的存储器控制器119中,或被实现在存储器侧。
在块202处,做出针对不同存储器访问(诸如DRAM访问)要被高速缓存到RB高速缓存的数据的量的确定。一般而言,存储器访问模式可以用于确定数据的什么部分要被高速缓存到RB高速缓存。例如,参考图2,如果取出模块126将取出DRAM行并且将其高速缓存在RB高速缓存116中,则取出模块126于是做出关于应当对多少数据或DRAM行的什么分数进行高速缓存的第二决定。预测器队列125中的存储器请求可以与未解决的存储器请求的目标行地址相比较以确定要被高速缓存到RB高速缓存116的DRAM行的分数。
在块203处,数据可以选择性地以子页面的增量从DRAM行的子页面大小到全页面大小而被高速缓存到RB高速缓存,其中子页面大小小于全页面大小。例如,参考图2,数据可以选择性地以子页面的增量从DRAM行的子页面大小到全页面大小而被高速缓存到RB高速缓存116。RB高速缓存分配表124可以用于追踪被存储在RB高速缓存116中的DRAM行,并且数据阵列118可以用于存储用于RB高速缓存116的DRAM行或DRAM行的分数。RB高速缓存分配表124可以被实现在用于3D堆叠的DRAM的处理器(例如处理器管芯113)的存储器控制器119中,并且数据阵列118可以被实现在3D堆叠的DRAM的逻辑层(例如逻辑管芯112)上。RB高速缓存分配表124的全局自由列表130可以用于持有与数据阵列118中的高速缓存线有关的信息,并且全局自由列表130可以用于在高速缓存线安装或替换期间将DRAM行映射在行映射单元131中。行映射单元131可以包括标签部分132以对存储器块的DRAM行地址进行存储以供查找,以及数据部分133以持有高速缓存线信息。标签部分132可以使用CAM 150,所述CAM150包括被划分成仓的存储装置,其中先前的仓的失配信号触发下一个仓中的访问。
图6示出可以与本文中描述的示例一起使用的计算机系统300。计算机系统表示一般的平台,所述平台包括可以处于服务器或另一计算机系统中的组件。计算机系统300可以用作用于装置110的平台。计算机系统300可以通过处理器或其它硬件处理电路而执行本文描述的方法、功能和其它过程。这些方法、功能和其它过程可以体现为被存储在计算机可读介质上的机器可读指令,所述计算机可读介质可以是非暂时性的,诸如硬件存储设备(例如RAM(随机存取存储器)、ROM(只读存储器)、EPROM(可擦除、可编程ROM)、EEPROM(电可擦除、可编程ROM)、硬驱动装置和闪速存储器)。
计算机系统300包括可以实现或执行机器可读指令的处理器302,所述机器可读指令执行本文描述的方法、功能和其它过程中的一些或全部。来自处理器302的命令和数据通过通信总线304而被传送。计算机系统还包括主存储器306,诸如随机存取存储器(RAM),其中用于处理器302的机器可读指令和数据可以在运行时期间驻留,以及辅助数据存储装置308,其可以是非易失性的并且存储机器可读指令和数据。存储器和数据存储装置是计算机可读介质的示例。存储器306可以包括AG-RB高速缓存模块320,所述AG-RB高速缓存模块320包括在运行时期间驻留在存储器306中并且由处理器302执行的机器可读指令。AG-RB高速缓存模块320可以包括图2中所示的装置的模块。
计算机系统300可以包括I/O设备310,诸如键盘、鼠标、显示器等等。计算机系统可以包括用于连接到网络的网络接口312。其它已知的电子组件可以被添加或置换在计算机系统中。
本文中已经描述和说明的内容是示例连同其变型中的一些。本文中使用的术语、描述和图仅仅作为说明而被阐述并且不意味着作为限制。在主题的精神和范围内,许多变型是可能的,主题的精神和范围意图由以下权利要求(及其等同物)来限定,其中所有术语意指以它们最宽的合理意义,除非另行指示。

Claims (13)

1.一种用于进行自适应粒度行缓冲器AG-RB高速缓存的方法,包括:
确定是否要将作为当前存储器请求的目标的数据高速缓存到行缓冲器RB高速缓存,其中数据存储在动态随机存取存储器DRAM行中;
使用预测器队列来存储先前服务的存储器请求和在当前存储器请求之后调度的其他待决的存储器请求的地址;
基于先前服务的存储器请求与和当前存储器请求具有相同的目标行地址的其他待决的存储器请求的请求的高速缓存线之间的距离确定要高速缓存到RB高速缓存的DRAM行的分数;以及
在RB高速缓存中存储DRAM行的确定的分数。
2.根据权利要求1所述的方法,还包括:
使用存储器访问模式来确定是否要将作为当前存储器请求的目标的数据高速缓存到RB高速缓存;以及
使用存储器访问模式来进一步确定要将DRAM行的什么分数高速缓存到RB高速缓存。
3.根据权利要求1所述的方法,包括根据先前服务的存储器请求与和当前存储器请求具有相同的目标行地址的其他待决的存储器请求的请求的高速缓存线之间的最长距离确定要高速缓存到RB高速缓存的DRAM行的分数。
4.根据权利要求1所述的方法,进一步包括确定要逐出服务不同存储器请求中的RB高速缓存的一部分,其中确定包括:
响应于DRAM行的分数等于或大于针对不同存储器请求请求的数据大小的确定逐出高速缓存到RB高速缓存的DRAM行的分数;以及
响应于DRAM行的分数小于针对不同存储器请求请求的数据大小的确定逐出RB高速缓存的不同部分而不是DRAM行的分数。
5.根据权利要求1所述的方法,还包括:
以子页面的增量从DRAM行的子页面大小到全页面大小以数据大小而将DRAM行的分数高速缓存到RB高速缓存,其中子页面大小小于全页面大小。
6.根据权利要求1所述的方法,还包括:
使用RB高速缓存分配表来追踪被存储在RB高速缓存中的DRAM行;以及
使用数据阵列来存储用于RB高速缓存的DRAM行或DRAM行的分数。
7.根据权利要求6所述的方法,还包括:
在用于三维3D堆叠的DRAM的处理器的存储器控制器中实现RB高速缓存分配表;以及
在3D堆叠的DRAM的逻辑层上实现数据阵列。
8.根据权利要求6所述的方法,还包括:
使用RB高速缓存分配表的全局自由列表来持有与数据阵列中的高速缓存线有关的信息;以及
使用全局自由列表来在高速缓存线安装或替换期间将DRAM行映射在行映射单元中。
9.根据权利要求6所述的方法,还包括:
使用行映射单元,所述行映射单元包括:
标签部分,以对存储器块的DRAM行地址进行存储以供查找,以及
数据部分,以持有高速缓存线信息。
10.根据权利要求6所述的方法,还包括:
使用行映射单元,所述行映射单元包括标签部分以对存储器块的DRAM行地址进行存储以供查找,其中标签部分使用内容可寻址存储器CAM,所述内容可寻址存储器包括被划分成仓的存储装置,其中先前的仓的失配信号触发下一个仓中的访问。
11.根据权利要求1所述的方法,还包括
使用具有板载缓冲器芯片的双列直插式存储器模块DIMM来实现RB高速缓存。
12.一种自适应粒度行缓冲器AG-RB高速缓存装置,包括:
三维3D堆叠的动态随机存取存储器DRAM,包括:
包括至少一个DRAM存储体的多个DRAM管芯,以及
包括至少一个行缓冲器RB高速缓存的逻辑管芯;以及
包括存储器控制器的处理器管芯,所述存储器控制器包括:
预测器硬件以:
确定是否要将作为当前存储器请求的目标的数据高速缓存到RB高速缓存,其中数据存储在DRAM存储体的DRAM行中;
使用存储先前服务的存储器请求和在当前存储器请求之后调度的其他待决的存储器请求的地址的预测器队列;
基于先前服务的存储器请求与和当前存储器请求具有相同的目标行地址的其他待决的存储器请求的请求的高速缓存线之间的距离确定要高速缓存到RB高速缓存的DRAM行的分数;以及
存储用于高速缓存到RB高速缓存的DRAM行的分数的元数据,其中元数据包括对应于DRAM行的分数的数据大小的粒度。
13.根据权利要求12所述的AG-RB高速缓存装置,其中预测器硬件用于根据先前服务的存储器请求与和当前存储器请求具有相同的目标行地址的其他待决的存储器请求的请求的高速缓存线之间的最长距离确定要高速缓存到RB高速缓存的DRAM行的分数。
CN201380072045.3A 2013-01-31 2013-01-31 自适应粒度行缓冲器高速缓存 Active CN105027211B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/024179 WO2014120215A1 (en) 2013-01-31 2013-01-31 Adaptive granularity row-buffer cache

Publications (2)

Publication Number Publication Date
CN105027211A CN105027211A (zh) 2015-11-04
CN105027211B true CN105027211B (zh) 2018-09-21

Family

ID=51262779

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380072045.3A Active CN105027211B (zh) 2013-01-31 2013-01-31 自适应粒度行缓冲器高速缓存

Country Status (5)

Country Link
US (1) US9620181B2 (zh)
KR (1) KR20150115752A (zh)
CN (1) CN105027211B (zh)
TW (1) TWI536258B (zh)
WO (1) WO2014120215A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150132099A (ko) 2013-03-20 2015-11-25 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 서로 다른 계층 레벨의 메모리 노드를 가진 메모리 시스템에서의 데이터 캐싱
WO2014183287A1 (en) * 2013-05-16 2014-11-20 Advanced Micro Devices, Inc. Memory system with region-specific memory access scheduling
JP6093322B2 (ja) * 2014-03-18 2017-03-08 株式会社東芝 キャッシュメモリおよびプロセッサシステム
GB201500446D0 (en) * 2015-01-12 2015-02-25 Univ Manchester Monitoring device
KR20170057902A (ko) * 2015-11-17 2017-05-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI564717B (zh) * 2015-12-02 2017-01-01 宇瞻科技股份有限公司 資料緩衝調整裝置及其方法
US20170168957A1 (en) * 2015-12-10 2017-06-15 Ati Technologies Ulc Aware Cache Replacement Policy
GB2542646B (en) * 2016-03-18 2017-11-15 Imagination Tech Ltd Non-linear cache logic
KR102469099B1 (ko) * 2016-03-24 2022-11-24 에스케이하이닉스 주식회사 반도체 시스템
US9785371B1 (en) * 2016-03-27 2017-10-10 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
US10169240B2 (en) * 2016-04-08 2019-01-01 Qualcomm Incorporated Reducing memory access bandwidth based on prediction of memory request size
US10866902B2 (en) * 2016-12-28 2020-12-15 Intel Corporation Memory aware reordered source
US20180188976A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Increasing read pending queue capacity to increase memory bandwidth
CN107301455B (zh) * 2017-05-05 2020-11-03 中国科学院计算技术研究所 用于卷积神经网络的混合立方体存储系统及加速计算方法
US10498342B2 (en) * 2017-08-23 2019-12-03 Massachusetts Institute Of Technology Discretely assembled logic blocks
US10380024B2 (en) * 2017-12-05 2019-08-13 Nanya Technology Corporation DRAM and method of operating the same in an hierarchical memory system
US11010092B2 (en) 2018-05-09 2021-05-18 Micron Technology, Inc. Prefetch signaling in memory system or sub-system
US10714159B2 (en) 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command
US10942854B2 (en) 2018-05-09 2021-03-09 Micron Technology, Inc. Prefetch management for memory
US10754578B2 (en) 2018-05-09 2020-08-25 Micron Technology, Inc. Memory buffer management and bypass
CN109308190B (zh) * 2018-07-09 2023-03-14 北京中科睿芯科技集团有限公司 基于3d堆栈内存架构的共享行缓冲系统及共享行缓冲器
US11144466B2 (en) * 2019-06-06 2021-10-12 Intel Corporation Memory device with local cache array
CN112151526A (zh) 2019-06-28 2020-12-29 西部数据技术公司 包括高速异质集成控制器和高速缓存的半导体设备
US11860782B2 (en) * 2019-08-13 2024-01-02 Neuroblade Ltd. Compensating for DRAM activation penalties
US11656995B2 (en) * 2019-11-26 2023-05-23 Micron Technology, Inc. Dynamic access granularity in a cache media
US11614892B2 (en) * 2020-12-17 2023-03-28 Micron Technology, Inc. Memory system architecture for heterogeneous memory technologies
US11714571B2 (en) * 2021-04-26 2023-08-01 Apple Inc. Address bit dropping to create compacted pipe address for a memory controller
US20230053530A1 (en) 2021-08-23 2023-02-23 Apple Inc. Scalable System on a Chip
CN116737617B (zh) * 2023-08-11 2023-12-29 上海芯高峰微电子有限公司 一种访问控制器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1961286A (zh) * 2003-12-24 2007-05-09 英特尔公司 自适应高速缓存
CN101236530A (zh) * 2008-01-30 2008-08-06 清华大学 高速缓存替换策略的动态选择方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
KR100257993B1 (ko) * 1998-05-19 2000-06-01 윤덕용 분산 공유 메모리 시스템에서 미세 통신과 대단위 통신의 병합을 위한 적응형 입도 방법
US6591355B2 (en) 1998-09-28 2003-07-08 Technion Research And Development Foundation Ltd. Distributed shared memory system with variable granularity
US6745299B2 (en) * 2001-11-19 2004-06-01 Hewlett-Packard Development Company, L.P. Method for evaluation of scalable symmetric multiple processor cache coherency protocols and algorithms
US7350032B2 (en) * 2004-03-22 2008-03-25 Sun Microsystems, Inc. Cache coherency protocol including generic transient states
US8375146B2 (en) 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems
US7231498B2 (en) * 2005-03-02 2007-06-12 Microsoft Corporation Adaptive granularity refinement in detecting potential data races
US8296550B2 (en) * 2005-08-29 2012-10-23 The Invention Science Fund I, Llc Hierarchical register file with operand capture ports
US7467280B2 (en) 2006-07-05 2008-12-16 International Business Machines Corporation Method for reconfiguring cache memory based on at least analysis of heat generated during runtime, at least by associating an access bit with a cache line and associating a granularity bit with a cache line in level-2 cache
US8032711B2 (en) 2006-12-22 2011-10-04 Intel Corporation Prefetching from dynamic random access memory to a static random access memory
WO2008150927A2 (en) 2007-05-30 2008-12-11 Schooner Information Technology System including a fine-grained memory and a less-fine-grained memory
US7822911B2 (en) 2007-08-15 2010-10-26 Micron Technology, Inc. Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same
TWI460588B (zh) * 2009-07-17 2014-11-11 Toshiba Kk Memory management device and memory information processing device
US8151012B2 (en) 2009-09-25 2012-04-03 Intel Corporation Virtual row buffers for use with random access memory
EP2526478B1 (en) 2010-01-18 2016-03-30 Marvell International, Ltd. A packet buffer comprising a data section an a data description section
WO2011106458A1 (en) * 2010-02-24 2011-09-01 Marvell World Trade Ltd. Caching based on spatial distribution of accesses to data storage devices
JP5404483B2 (ja) 2010-03-17 2014-01-29 株式会社東芝 メモリシステム
US8291172B2 (en) 2010-04-27 2012-10-16 Via Technologies, Inc. Multi-modal data prefetcher
US20120317376A1 (en) * 2011-06-10 2012-12-13 Advanced Micro Devices, Inc. Row buffer register file
US8954672B2 (en) * 2012-03-12 2015-02-10 Advanced Micro Devices, Inc. System and method for cache organization in row-based memories
US9146882B2 (en) * 2013-02-04 2015-09-29 International Business Machines Corporation Securing the contents of a memory device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1961286A (zh) * 2003-12-24 2007-05-09 英特尔公司 自适应高速缓存
CN101236530A (zh) * 2008-01-30 2008-08-06 清华大学 高速缓存替换策略的动态选择方法

Also Published As

Publication number Publication date
US9620181B2 (en) 2017-04-11
TWI536258B (zh) 2016-06-01
US20150371689A1 (en) 2015-12-24
TW201439897A (zh) 2014-10-16
KR20150115752A (ko) 2015-10-14
CN105027211A (zh) 2015-11-04
WO2014120215A1 (en) 2014-08-07

Similar Documents

Publication Publication Date Title
CN105027211B (zh) 自适应粒度行缓冲器高速缓存
US6965969B2 (en) Non-uniform cache apparatus, systems, and methods
CN105095116B (zh) 缓存替换的方法、缓存控制器和处理器
US8966204B2 (en) Data migration between memory locations
CN103246613B (zh) 缓存装置及用于缓存装置的缓存数据获取方法
US8954672B2 (en) System and method for cache organization in row-based memories
US11456025B2 (en) Hybrid memory module
CN105103235A (zh) 具有用于更高性能和能量效率的去耦比特的非易失性多级单元存储器
US10120806B2 (en) Multi-level system memory with near memory scrubbing based on predicted far memory idle time
JP2018049381A (ja) メモリ制御回路、メモリシステムおよびプロセッサシステム
US10108549B2 (en) Method and apparatus for pre-fetching data in a system having a multi-level system memory
US20220406354A1 (en) Hybrid Memory Module
CN115168247B (zh) 用于并行处理器中动态共享存储空间的方法及相应处理器
EP3639145A1 (en) Hybrid memory module
CN108509151B (zh) 一种基于dram内存控制器的行缓存方法和系统
KR20150091892A (ko) 하이브리드 메인 메모리 기반의 메모리 접근 관리방법
US10970220B2 (en) Tags and data for caches
US10216454B1 (en) Method and apparatus of performing a memory operation in a hierarchical memory assembly
US20240045594A1 (en) Memory controller for a high capacity memory circuit using virtual bank addressing
US20240070073A1 (en) Page cache and prefetch engine for external memory
Xie et al. Coarse-granularity 3D Processor Design
He Architecting Large Caches with Reduced Energy
Keckler et al. Non-uniform cache apparatus, systems, and methods

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Inventor after: S. Lee

Inventor after: N. P. Zhu Pi

Inventor after: N. Nuohaer murali

Inventor before: S. Lee

Inventor before: N. P. Zhu Pi

COR Change of bibliographic data
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20170111

Address after: American Texas

Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

Applicant before: Hewlett-Packard Development Company, L.P.

GR01 Patent grant
GR01 Patent grant