CN111684427A - 高速缓存控制感知的存储器控制器 - Google Patents

高速缓存控制感知的存储器控制器 Download PDF

Info

Publication number
CN111684427A
CN111684427A CN201880088583.4A CN201880088583A CN111684427A CN 111684427 A CN111684427 A CN 111684427A CN 201880088583 A CN201880088583 A CN 201880088583A CN 111684427 A CN111684427 A CN 111684427A
Authority
CN
China
Prior art keywords
access request
memory
tag
cache
data
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
CN201880088583.4A
Other languages
English (en)
Inventor
拉温德拉·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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN111684427A publication Critical patent/CN111684427A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/60Details of cache memory
    • G06F2212/608Details relating to cache mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

公开了用于执行计算系统的高效存储器访问的系统、设备和方法。外部系统存储器用作最后层级高速缓存并且包括多种类型的动态随机存取存储器(DRAM)中的一种。存储器控制器基于相同的单个接收到的存储器请求来生成标签请求和单独的数据请求。所述标签请求的发送优先于发送所述数据请求。在所述标签请求的处理期间执行部分标签比较。如果针对所述部分标签比较检测到标签未命中,则取消所述数据请求,并且将所述存储器请求发送到主存储器。如果针对所述部分标签比较检测到一个或多个标签命中,则对所述数据请求的处理取决于完整标签比较的结果。

Description

高速缓存控制感知的存储器控制器
背景技术
相关技术的描述
随着半导体制造过程发展和片上几何尺寸减小,半导体芯片提供更多的功能性和性能。然而,在处理和集成电路设计的现代技术中仍然出现可限制潜在益处的设计问题。一个问题是,在连续数代的二维平面布局芯片中,每单位长度的互连等待时间持续增加。另外,各个芯片之间的高电阻抗会增加等待时间。另外,由于在这些较长信号路径上的寄生电容增加,因此从片外横越到另一个管芯的信号可能会显著增加这些信号的功耗(例如,增加10到100倍)。因此,用于系统存储器(诸如片外动态随机存取存储器(DRAM))的存储器访问等待时间是可观的。
另一个设计问题是,大多数访问大量数据的软件应用程序通常受存储器限制,因为计算时间通常由存储器带宽确定。片外动态随机存取存储器(DRAM)的存储器访问等待时间可能是数百个至超过一千个时钟周期,并且处理器设计中核心数量的增加加剧了存储器带宽问题。
鉴于以上内容,期望用于执行计算系统的高效存储器访问的高效方法和系统。
附图说明
通过结合附图参见以下描述,可更好地理解本文所述的方法和机制的优点,在附图中:
图1是计算系统的一个实施方案的框图。
图2是存储器控制器的一个实施方案的框图。
图3是用于向系统存储器发送存储器访问请求的方法的一个实施方案的流程图。
图4是用于处理对系统存储器中的高速缓存存储布置的标签访问请求的方法的一个实施方案的流程图。
图5是用于处理独立于对系统存储器中的高速缓存存储布置的标签访问请求的数据访问请求的方法的另一个实施方案的流程图。
虽然本发明易于具有各种修改和替代形式,但通过举例的方式在图式中示出并且在本文中详细地描述特定的实施方案。然而,应当理解,图式和对其的详细描述并不意图将本发明局限于所公开的具体形式,而是相反,本发明将涵盖落入如所附权利要求所限定的本发明的范围内的所有修改、等效物和替代方案。
具体实施方式
在以下描述中,阐述了许多特定细节以提供对本文呈现的方法和机制的透彻理解。然而,本领域的普通技术人员应当认识到,可在没有这些特定细节的情况下实践各种实施方案。在一些情况下,并未详细示出众所周知的结构、部件、信号、计算机程序指令和技术,以避免混淆本文所述的方法。应当理解,为了说明的简单和清楚起见,附图中所示的元件不一定按比例绘制。例如,一些元件的尺寸可相对于其他元件被放大。
公开了用于执行计算系统的高效存储器访问的各种系统、设备、方法和计算机可读介质。在一个实施方案中,一种计算系统包括一个或多个计算资源和外部系统存储器。计算资源的实例包括通用中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)等。计算资源生成存储器访问请求。在各种实施方案中,给定计算资源包括高速缓存存储器子系统。当给定计算资源确定存储器访问请求在高速缓存存储器子系统内未命中时,给定计算资源将存储器访问请求发送到给定存储器控制器。
给定存储器控制器耦接到与存储器访问请求的目标地址相关联的存储器装置。如果计算系统包括多个存储器装置,则操作系统在多个存储器装置之间分配地址空间。存储器控制器支持在计算资源的请求地址与指向一个或多个存储器装置中的存储位置的地址之间的映射。在一些实施方案中,存储器控制器连接到单个存储器装置。在其他实施方案中,存储器控制器连接到多个存储器装置。在各种实施方案中,存储器控制器包括用于存储存储器访问请求的一个或多个队列。在一个实施方案中,存储器控制器包括用于存储存储器读取请求的读取队列和用于存储存储器写入请求的单独的写入队列。在其他实施方案中,存储器控制器包括用于存储存储器读取请求和存储器写入请求两者的统一队列。
在又一实施方案中,存储器控制器包括用于存储所接收的存储器访问请求的一个或多个队列和用于存储选自一个或多个队列的调度的存储器访问请求的单独队列。因此,存储器控制器支持基于优先级和目标地址来向存储器装置无序地发送存储器访问请求。在一些实施方案中,存储器控制器还支持至少基于优先级来向计算资源无序地发送响应。
外部系统存储器以多种类型的动态随机存取存储器(DRAM)中的一种实现。DRAM在微处理器封装内至少提供千兆字节的集成存储器。在各种实施方案中,在访问使用更多DRAM和/或片外磁盘存储器或固态存储器实现的系统存储器之前,将相对大量的基于行的存储器存储装置用作最后层级高速缓存(LLC)。在各种实施方案中,耦接到DRAM的存储器控制器将所接收的单个存储器访问请求划分成两个单独的存储器访问请求。在一个实施方案中,存储器控制器基于所接收的存储器访问请求来生成标签访问请求,并且基于所接收的存储器访问请求来生成与标签访问请求不同的数据访问请求。
在一些实施方案中,存储器控制器存储指示,所述指示指定标签访问请求和数据访问请求中的每一者根据相同的所接收的存储器访问请求生成。在一个实施方案中,所述指示被存储在标签访问请求和数据访问请求中的每一者内。在一些实施方案中,读取队列和写入队列中的每一者被划分成标签队列和单独的数据队列。在一个实施方案中,所述指示是根据以下中的一者或多者生成的唯一识别符:根据自由列表生成的识别符、线程或进程识别符、计算源识别符、目标地址、年限或时间戳等。
在各种实施方案中,存储器控制器阻止发送数据访问请求,直到通过处理标签访问请求生成的信息可用为止。因此,如果根本未发送数据访问请求,则在数据访问请求之前将标签访问请求发送到存储器装置。读取存储器装置内的多个行中的给定行。给定行由标签访问请求中的目标地址指向。例如,目标地址内的页面索引用于识别给定行。在一个实施方案中,给定行将一个或多个标签存储在给定行的一部分内。
所述存储器控制器将存储在所述给定行中的所述一个或多个标签的仅一部分与所述标签访问请求的所述目标地址中的标签的仅一部分进行比较。在各种实施方案中,部分标签比较具有比完整标签比较明显更小的等待时间。如果未检测到匹配项,则发生标签未命中,并且存储器控制器取消向存储器装置发送数据访问请求。存储器控制器使存储数据访问请求的队列条目无效或以其他方式对其解除分配。因此,相对早地知悉所请求的数据不在DRAM中实现的最后层级高速缓存中。例如,与在完整标签比较的明显较大的等待时间之后知悉相比,在部分标签比较的明显较小的等待时间之后就已知悉。
对于标签未命中,存储器控制器还将单个存储器访问请求发送到片外系统存储器和/或主存储器,诸如磁盘存储器或固态存储器。在一个实施方案中,存储器控制器在队列中维持单个存储器访问请求的副本。在其他实施方案中,存储器控制器根据标签访问请求和单独的数据访问请求中的一者或多者再生单个存储器访问请求。
在一个实施方案中,当存储器控制器基于部分标签比较确定发生一个或多个标签命中时,存储器控制器将给定行中的一个或多个标签的整体与标签访问请求的目标地址中的标签的整体进行比较。在各种实施方案中,完整标签比较具有比部分标签比较明显更长的等待时间。如果完整标签比较导致标签未命中,则存储器控制器执行用于根据部分标签比较确定标签未命中的上述步骤。如果完整标签比较导致标签命中,则存储器控制器将数据访问请求发送到存储器装置。
存储器控制器基于数据访问请求的访问类型来执行给定行中的数据的读取访问或写入访问。在一个实施方案中,存储器控制器基于对应于给定行内的标签命中的标签的位置来识别要访问的给定行中的数据,所述位置指示给定行内的数据的位置。
参见图1,示出了计算系统100的一个实施方案的一般化框图。如图所示,计算系统100包括在存储器控制器130中的每一个与计算资源110之间的通信结构120。在所示的实施方案中,计算资源包括中央处理单元(CPU)112、图形处理单元(GPU)114和集线器116。集线器116用于与多媒体引擎118通信。尽管示出了单个存储器控制器130,但是在其他实施方案中,在计算系统100中使用另一数量的存储器控制器。存储器控制器130通过通信结构120从计算资源110接收存储器访问请求,并且将所述存储器访问请求发送到片外主存储器162和被实现为动态随机存取存储器(DRAM)170的系统存储器中的一者或多者。存储器控制器130还从DRAM 170和主存储器162接收响应,并且将响应发送到计算资源110中的请求的对应源。
在一些实施方案中,计算系统100的部件是诸如片上系统(SOC)的集成电路(IC)上的单个管芯。在其他实施方案中,部件是系统级封装(SiP)或多芯片模块(MCM)中的单个管芯。在一个实施方案中,计算系统100是以下内的独立系统:移动计算机、智能电话、智能手表或平板电脑;桌上型电脑;服务器;或其他项。CPU 112、GPU 114和多媒体引擎118是能够生成存储器访问请求的计算资源的实例。尽管未示出,但是在其他实施方案中,在计算资源110中包括其他类型的计算资源。
CPU 112中的一个或多个处理器核心中的每一个包括用于根据给定的选定指令集架构(ISA)执行指令的电路。在各种实施方案中,CPU 112中的处理器核心中的每一个包括用于处理给定的ISA的指令的超标量、多线程微架构。在一个实施方案中,GPU 114包括具有大量并行执行通道的高并行数据微架构。在一个实施方案中,微架构将单指令多数据(SIMD)管道用于并行执行通道。多媒体引擎118包括用于处理多媒体应用的音频数据和视觉数据的处理器。
在一个实例中,加速处理单元(APU)、显示控制器、音频处理器等是要包括在计算资源110中的另外的候选装置。APU的一个实例是CPU,所述CPU与GPU、FPGA或其他处理单元集成在相同管芯上,从而提高了这些单元之间的数据传送速率,同时降低了功耗。在其他实施方案中,APU包括视频处理和其他专用加速器。
在各种实施方案中,通信结构120在计算资源110与存储器控制器130之间来回传送业务,并且包括用于支持相应的通信协议的接口。在一些实施方案中,通信结构120至少包括用于存储请求和响应的队列、用于在跨内部网络发送请求之前在所接收的请求之间进行仲裁的选择逻辑、用于构建分组并对其进行解码的逻辑以及用于选择分组的路由的逻辑。
在一些实施方案中,计算系统100的地址空间至少在CPU 112、GPU 114和集线器116以及一个或多个其他部件(诸如输入/输出外围装置(未显示))与其他类型的计算资源之间划分。维护存储器映射以用于确定将哪个地址映射到哪个部件,并因此确定应当将对特定地址的存储器请求路由到CPU 112、GPU 114和集线器116中的哪一者。随着软件应用程序访问越来越多的数据,存储器子系统得到了越来越多的利用。等待时间变得更为关键。更多的片上存储器存储装置用于减少互连等待时间。例如,计算资源110内的计算资源中的一者或多者包括高速缓存存储器子系统,以用于减少相应的处理器核心的存储器等待时间。在各种实施方案中,在访问片外系统存储器(未示出)之前,将DRAM 170中相对大量的基于行的存储器存储装置用作最后层级高速缓存(LLC),所述片外系统存储器可以是更多的DRAM或者作为磁盘存储器或固态存储器的主存储器162。
在各种实施方案中,DRAM 170将数据的每一位存储在集成电路内的单独的电容器中。电容器可以是充电的或者放电的。这两种状态用于表示位的两个逻辑值。DRAM 170每位利用单个晶体管和电容器。与片上同步RAM(SRAM)中使用的六个晶体管相比,DRAM达到更高的密度。与HDD和快闪存储器不同,DRAM 170是易失性存储器而不是非易失性存储器。DRAM170在移除电源时相对快速地丢失其数据。
最近,在包括竖直和水平集成到单个电路中的两层或更多层有源电子部件的三维集成电路(3D IC)方面已经取得了进展。称为系统级封装(SiP)或芯片堆叠多芯片模块(MCM)的3D封装通过将单独的芯片堆叠在单个封装中来节省空间。这些层内的部件使用片上信令(竖直地或水平地)进行通信。此信令在已知的二维平面布局电路上提供了缩短的互连信号等待时间。
在一个实施方案中,DRAM 170包括多通道存储器架构。这种类型的架构通过在其间添加更多的通信通道来提高数据到存储器控制器130的传送速度。在一个实施方案中,多通道架构利用多个存储器模块和母板和/或能够支持多个通道的卡。在另一个实施方案中,如前所述,DRAM 170利用三维集成电路(3D IC)来提供最后层级高速缓存。可能存在并设想使用包括一个或多个行缓冲器或其他等效结构的基于行的访问方案的用于最后层级高速缓存的其他存储器技术。其他存储器技术的实例包括相变存储器、自旋扭矩转移电阻式存储器、忆阻器等。
如前所述,在各种实施方案中,DRAM 170在访问系统存储器之前用作最后层级高速缓存(LLC)。在一些实施方案中,存储器控制器130包括用于处理RAM事务(诸如DRAM打开/激活、预充电、关闭和刷新命令)的控制逻辑。另外,存储器控制器130包括用于处理诸如标签比较的高速缓存访问并且识别基于标签比较读出的较大数据的一部分的控制逻辑。在各种实施方案中,DRAM 170通过I/O控制器和总线160以及存储器总线150填充有来自系统存储器(未示出)和主存储器162中的一者或多者的数据。具有所请求的块的对应的高速缓存填充线从DRAM 170传送到计算资源110中的高速缓存存储器子系统中的对应的高速缓存存储器子系统,以便完成原始的存储器访问请求。高速缓存填充线放置在一个或多个层级的高速缓存中。
用于存储器控制器130的相应接口的协议的一个实例是双倍数据速率(DDR)类型的协议。所述协议确定用于信息传送的值,诸如每时钟周期的数据传送次数、信号电压电平、信号定时、信号和时钟相位以及时钟频率。协议实例包括DDR2SDRAM、DDR3SDRAM、GDDR4(图形双倍数据速率,版本4)SDRAM和GDDR5(图形双倍数据速率,版本5)SDRAM。存储器控制器130包括用于与存储器通道交接并遵循对应的协议的控制电路。
如图所示,DRAM 170包括多个存储器阵列存储体174A至174B。存储体174A至174B中的每一个存储体包括行缓冲器172A至172B中的相应的行缓冲器。行缓冲器172A至172B中的每一个行缓冲器将数据存储在存储器阵列存储体174A至174B内的多行中的所访问的行中。所访问的行由所接收的存储器访问请求中的DRAM地址识别。DRAM 170的逻辑138内的控制逻辑执行复杂的事务,诸如激活(打开)事务以及对DRAM 170内的数据和控制线进行预充电,一次是访问所识别的行,并且一次是在关闭交易期间将存储在行缓冲器中的经修改的内容放回到所识别的行。不同的DRAM事务(诸如激活/打开、列访问、读取访问、写入访问和预充电/关闭)中的每一者具有不同的相应等待时间。通常,激活和预充电事务具有比读取访问和写入访问事务明显更高的等待时间。
在各种实施方案中,DRAM 170包括一个或多个存储器通道、每通道的一个或多个存储器模块或装置、每存储器模块的一个或多个排、每排的一个或多个存储体以及每存储体的一个或多个行。通常,每一行存储一页数据。页面的大小是基于设计考虑来选择的。基于设计选择,页面可以是1千字节(1KB)、4千字节(4KB)或任何大小。
计算资源110中的高速缓存存储器子系统(未示出)包括被配置为存储数据块的高速的高速缓存存储器。如本文所使用的,“块”是存储在连续存储器位置中的一组字节,所述一组字节出于一致性目的而被视为一个单元。如本文所使用的,术语“高速缓存块”、“块”、“高速缓存线”和“线”中的每一者是可互换的。在一些实施方案中,块还可以是高速缓存中的分配和解除分配的单元。块中的字节数根据设计选择而变化,并且可以具有任何大小。另外,术语“高速缓存标签”、“高速缓存线标签”和“高速缓存块标签”中的每一者是可互换的。在各种实施方案中,高速缓存存储器子系统被实现为高速缓存的层次结构。
如本文所使用的,术语“访问”是指执行存储器读取请求或存储器写入请求操作,如果对应请求地址的所请求的数据驻留在高速缓存中,则所述操作导致高速缓存命中。替代地,如果所请求的数据未驻留在高速缓存中,则存储器访问请求导致高速缓存未命中。如本文所使用的,“存储器读取请求”也称为读取请求,并且类似地,“存储器写入请求”也称为写入请求。
如果在计算资源110中的高速缓存存储器子系统中未发现所请求的数据,则生成存储器访问请求并将其传输到存储器控制器130。如图所示,存储器控制器130包括用于使通过通信结构120从计算资源110接收的存储器访问请求排队的请求队列132。存储器控制器130还具有用于存储从DRAM 170接收的响应的响应队列134。在一个实施方案中,请求队列132包括用于存储存储器访问请求的一个或多个队列。在另一个实施方案中,请求队列132包括用于存储存储器读取请求的读取队列和用于存储存储器写入请求的单独的写入队列。在其他实施方案中,请求队列132包括用于存储存储器读取请求和存储器写入请求两者的统一队列。
在又一实施方案中,请求队列132包括用于存储所接收的存储器访问请求的一个或多个队列和用于存储选自一个或多个队列的调度的存储器访问请求的单独队列。调度器136包括用于选择存储在请求队列132中的存储器访问请求以向DRAM 170无序地发送的一个或多个调度块。因此,存储器控制器130支持基于优先级和目标地址来向DRAM 170无序地发送存储器访问请求。
在各种实施方案中,存储器总线150支持在给定时间量内(诸如在读取模式和写入模式的给定模式期间)在单个方向上发送数据业务,并且然后在另一给定时间量内(诸如在读取模式和写入模式的其他模式期间)在相反的方向上发送数据业务。在一个实施方案中,存储器总线150至少利用命令总线和数据总线,并且存储器总线150支持用于将数据总线上的数据业务从DRAM 170发送到存储器控制器130的读取模式。另外,存储器总线150支持用于将数据总线上的数据业务从存储器控制器130发送到DRAM 170的写入模式。
在一些实施方案中,存储器控制器130还支持至少基于优先级来向计算资源110无序地发送响应。在各种实施方案中,存储器控制器130中的调度器136基于服务质量(QoS)或其他优先级信息、年限、进程或线程识别符(ID)以及与(诸如针对相同的存储器通道、针对相同的排、针对相同的存储体和/或针对相同的页面的)其他所存储的请求的关系来调度所存储的存储器访问请求的发送。
在各种实施方案中,高速缓存控制器和存储器装置控制器逻辑138(其还称为逻辑138)将所接收的单个存储器访问请求划分成两个单独的存储器访问请求。在一个实施方案中,逻辑138基于所接收的存储器访问请求来生成标签访问请求,并且基于所接收的存储器访问请求来生成与标签访问请求不同的数据访问请求。标签访问请求和数据访问请求也可称为高速缓存标签访问请求和高速缓存数据访问请求。在一些实施方案中,请求队列132内的读取队列和写入队列中的每一者被划分成标签队列和单独的数据队列。在一个实施方案中,逻辑138根据以下中的一者或多者生成唯一识别符:根据自由列表生成的识别符、线程或进程识别符、计算源识别符、目标地址、年限或时间戳等。在一些实施方案中,逻辑138将所生成的唯一识别符存储在标签访问请求和数据访问请求中的每一者中。
在一些实施方案中,逻辑138基于通过处理标签访问请求而生成的信息来调度发送数据访问请求。在各种实施方案中,逻辑138阻止发送数据访问请求,直到通过处理标签访问请求生成的信息可用为止。因此,如果根本未发送数据访问请求,则在发送数据访问请求之前将标签访问请求发送到存储器装置。在一个实施方案中,目标地址内的页面索引被用于识别存储体174A至174B中所针对的存储体中的多个行中的给定行。在一个实施方案中,给定行将一个或多个标签存储在给定行的一部分内。由于DRAM 170被用作诸如RAM高速缓存存储器的最后层级高速缓存,因此所述存储器装置可称为RAM高速缓存存储器装置。
在各种实施方案中,逻辑138在存储在给定行中的一个或多个标签与存储在标签访问请求中的单个存储器访问请求的目标地址中的标签之间执行部分标签比较。在各种实施方案中,部分标签比较具有比完整标签比较明显更小的等待时间。如果未检测到匹配项,则发生标签未命中,并且逻辑138取消向DRAM 170发送数据访问请求。存储器控制器使存储数据访问请求的队列条目无效或以其他方式对其解除分配。因此,较早地知悉所请求的数据不在系统存储器中,诸如与在完整标签比较的明显较大的等待时间之后知悉相比,在部分标签比较的明显较小的等待时间之后就已知悉。对于标签未命中,逻辑138还将单个存储器访问请求发送到主存储器162。在一些实施方案中,完整标签比较与部分标签比较同时开始。如果未检测到部分标签比较的匹配项,则关闭或停止完整标签比较,或者允许继续进行完整标签比较,但是结果将被丢弃。
在一个实施方案中,当逻辑138基于部分标签比较确定发生一个或多个标签命中时,逻辑138将给定行中的一个或多个标签的整体与标签访问请求的目标地址中的标签的整体进行比较。如先前所述,在一些实施方案中,完整标签比较与部分标签比较同时开始。在各种实施方案中,此完整标签比较具有比部分标签比较明显更长的等待时间。如果完整标签比较导致标签未命中,则逻辑138执行用于根据部分标签比较确定标签未命中的上述步骤。如果完整标签比较导致标签命中,则逻辑138将数据访问请求发送到DRAM 170。在一个实施方案中,完整标签命中结果用于识别稍后通过数据访问请求的处理而读出的行的特定部分。例如,所述行中的特定高速缓存线由标签命中结果识别。
片外磁盘存储器162可提供数据的非易失性、随机访问二级存储。在一个实施方案中,片外磁盘存储器162可包括一个或多个硬盘驱动器(HDD)。HDD通常包括一个或多个旋转磁盘,每个磁盘都涂覆有磁性介质。这些磁盘以每分钟几千转的速率旋转。磁性致动器负责定位旋转磁盘上的磁性读取/写入装置。在另一个实施方案中,片外磁盘存储器162利用固态磁盘(SSD)。固态磁盘也可称为固态驱动器。SSD可模拟HDD接口,但是SSD利用固态存储器而不是HDD中发现的机电装置来存储持久数据。例如,SSD可能包括快闪存储器的存储体。
现在参见图2,示出了存储器控制器200的一个实施方案的一般化框图。在所示的实施方案中,存储器控制器200包括经由通信结构的计算资源的接口210、用于存储所接收的存储器访问请求和所接收的响应的队列220、控制单元250以及经由存储器总线的至少一个数据总线的存储器装置的接口280。接口210和280中的每一者都支持相应的通信协议。
在一个实施方案中,队列220包括用于基于所接收的读取请求来存储所生成的请求的读取标签队列232和读取数据队列234。在一个实施方案中,队列220包括用于基于所接收的写入请求来存储所生成的请求的写入标签队列236和写入数据队列238。在一个实施方案中,队列220包括用于存储调度的存储器访问请求的队列239,所述调度的存储器访问请求选自队列232-238或统一队列(在使用统一队列的情况下)中的一者或多者。
在一些实施方案中,读取调度器252包括用于无序地从读取标签队列232中选择读取标签请求的仲裁逻辑。读取调度器252基于服务质量(QoS)或其他优先级信息、年限、进程或线程标识符(ID)以及与(诸如针对相同的存储器通道、针对相同的排、针对相同的存储体和/或针对相同的页面的)其他所存储的请求的关系来调度向存储器装置无序地发送读取标签队列232内的所存储的标签读取请求。写入调度器254包括用于写入标签队列236的类似选择逻辑。在一个实施方案中,响应调度器256包括用于基于优先级向计算资源无序地发送从存储器装置接收的响应的类似逻辑。
在一些实施方案中,控制寄存器270存储当前模式的指示。例如,片外存储器数据总线和存储器装置在给定时间处支持读取模式或者写入模式。因此,业务在当前模式期间在给定单个方向上进行路由,并且当在数据总线周转等待时间之后更改当前模式时改变方向。在各种实施方案中,控制寄存器270存储在读取模式期间要发送的阈值数量的读取请求(读取突发长度)。
在一个实施方案中,高速缓存控制器逻辑260将所接收的单个存储器访问请求划分成两个单独的存储器访问请求。在一个实施方案中,逻辑260基于所接收的存储器访问请求来生成标签访问请求,并且基于所接收的存储器访问请求来生成与标签访问请求不同的数据访问请求。在一些实施方案中,逻辑260存储指示,所述指示指定标签访问请求和数据访问请求中的每一者根据相同的所接收的存储器访问请求生成。在一个实施方案中,所述指示被存储在标签访问请求和数据访问请求中的每一者内。在一个实施方案中,所述指示是根据以下中的一者或多者生成的唯一识别符:根据自由列表生成的识别符、线程或进程识别符、计算源识别符、目标地址、年限或时间戳等。在其他实施方案中,逻辑260将指示存储在对应的队列条目中,诸如存储读取标签请求的内容的读取标签队列232中的条目以及存储单独但对应的读取数据请求的内容的读取数据队列234中的条目。写入标签队列236和写入数据队列238存储用于写入请求的类似指示。
在各种实施方案中,存储器装置逻辑262阻止发送数据访问请求,直到通过处理标签访问请求生成的信息可用为止。因此,如果根本未发送数据访问请求,则在数据访问请求之前将标签访问请求发送到存储器装置。在一个实施方案中,目标地址内的页面索引被逻辑262用于识别存储器装置的所针对的存储体中的多个行中的给定行。在一个实施方案中,给定行将一个或多个标签存储在给定行的一部分内。
在各种实施方案中,逻辑262在存储在给定行中的一个或多个标签与存储在标签访问请求中的单个存储器访问请求的目标地址中的标签之间执行部分标签比较。如果未检测到匹配项,则发生标签未命中,并且逻辑262取消向存储器装置发送数据访问请求。逻辑262基于访问类型使读取数据队列234或者写入数据队列238中的队列条目无效或以其他方式对其解除分配。对于标签未命中,逻辑262还将单个存储器访问请求发送到单独的系统存储器或主存储器。在一些实施方案中,逻辑262与执行部分标签比较同时开始执行完整标签比较。如果未检测到部分标签比较的匹配项,则关闭或停止完整标签比较,或者允许继续进行完整标签比较,但是结果将被丢弃。
在一个实施方案中,当逻辑262基于部分标签比较确定发生一个或多个标签命中时,逻辑262将给定行中的一个或多个标签的整体与标签访问请求的目标地址中的标签的整体进行比较。如果完整标签比较导致标签未命中,则逻辑262执行用于根据部分标签比较确定标签未命中的上述步骤。如果完整标签比较导致标签命中,则逻辑262将数据访问请求发送到DRAM 170。
现在参见图3,示出用于将存储器访问请求发送到DRAM中的最后层级高速缓存存储布置的方法300的一个实施方案。出于讨论的目的,以顺序的次序示出此实施方案中(以及图4至图5中)的步骤。然而,应注意,在所描述方法的各种实施方案中,所描述元件中的一个或多个同时执行、以不同于所示的次序执行或者被完全省略。还可根据需要执行其他另外的元件。本文所述的各种系统或设备中的任一者被配置为实现方法300。
一个或多个计算资源执行计算机程序或软件应用程序。计算资源的实例已在前面给出。计算资源确定给定存储器访问请求在计算资源内的高速缓存存储器子系统内未命中。计算资源通过存储器控制器将存储器访问请求发送到诸如DRAM的系统存储器。
在计算机程序的执行期间(框302),检测计算资源内未命中的存储器请求(框304)。将给定存储器请求发送到耦接到至少一个存储器装置的存储器控制器(框306),在所述存储器控制器处,将给定存储器请求划分成标签请求和单独的数据请求(框308)。将标签请求与其他标签请求一起调度以发送到存储器装置(框310)。阻止发送数据请求,直到通过处理标签请求生成的信息可用为止(框312)。将通过调度器选择的标签请求发送到存储器装置(框314)。在一些情况下,标签请求是唯一的标签请求,因为给定存储器请求是唯一的存储器请求。在这种情况下,调度不使用来自多个标签请求的信息。在一些实施方案中,当仅存在单个标签请求和单个数据请求时,如果存储器请求是读取请求,则推测性地将数据请求与标签请求一起发送。如果最终发生完整标签未命中,则可丢弃所检索的数据。否则,如在即将到来的对方法400和方法500的描述中进一步描述的,在发送数据请求之前执行部分标签比较。
参见图4,示出用于处理对DRAM中的最后层级高速缓存存储布置的标签访问请求的方法400的另一个实施方案。在所示的实例中,将标签请求发送到存储器装置(框402)。如前所述,在各种实施方案中,用于高速缓存控制器的逻辑(例如,图2的逻辑260)根据单个接收到的存储器请求生成标签请求和单独的数据请求。然后,高速缓存控制器逻辑将标签请求发送到用于存储器控制器的逻辑或用于存储器装置的逻辑(即,图2的逻辑262)。存储器控制器内用于存储器装置的逻辑将标签请求发送到存储器装置。响应于标签请求,在DRAM高速缓存内识别对应于标签请求中的地址的给定行(框404)。由激活事务打开给定行(框406)。将来自行的信息存储在行缓冲器中(框408)。将存储在行缓冲器中的一个或多个标签的一部分与标签请求的地址中的标签的一部分(部分标签比较)进行比较(框410)。
如果未发生基于部分标签比较的标签未命中(条件框412的“否”分支),则已发生部分标签命中并且处理单独的数据请求(框414)。在一个实施方案中,单独的数据请求是读取请求,并且通过将数据请求发送到存储器装置来推测性地处理所述数据请求。在一些实施方案中,还执行完整标签比较。在一些实施方案中,用于存储器装置的逻辑执行部分标签比较,并且用于高速缓存控制器的逻辑执行完整标签比较。如果数据请求是写入请求,则不对数据请求进行处理,直到执行完整标签比较为止。将存储在行缓冲器中的一个或多个标签的整体与标签请求的目标地址中的标签的整体进行比较。在各种实施方案中,完整标签比较的等待时间比部分标签比较的等待时间长。如果基于完整标签比较确定了完整标签未命中,则丢弃通过发送读取请求而检索到的数据。如果数据请求是读取请求并且已经被发送到存储器装置,则丢弃所检索的数据并且用于高速缓存控制器的逻辑将对应的存储器请求发送到系统存储器。如果数据请求尚未发送,则用于高速缓存控制器的逻辑取消数据请求并且将对应的存储器请求发送到系统存储器。如果基于完整标签比较确定了完整标签命中,则将通过发送数据请求(读取请求)而检索到的数据发送到用于高速缓存控制器的逻辑,以服务于对应的存储器请求。如果发生完整标签命中并且数据请求是写入请求,则将数据请求发送到存储器装置以服务于存储器请求。否则,如果基于部分标签比较确定发生了标签未命中(条件框412的“是”分支),则取消向存储器装置发送对应的数据请求(框416),并且将存储器请求发送到系统存储器(框418)以在DRAM高速缓存中提供填充数据。在各种实施方案中,使用存储器控制器的逻辑与高速缓存控制器的逻辑之间的上述通信,以及将以上步骤用于丢弃数据、取消数据请求或服务请求。在一些实施方案中,用于存储器装置的逻辑(即,图2的逻辑262)将部分标签未命中的指示发送到用于高速缓存控制器的逻辑(即,图2的逻辑260),所述用于高速缓存控制器的逻辑丢弃推测性地检索到的数据或取消数据请求。在其他实施方案中,用于存储器装置的逻辑丢弃推测性地检索到的数据并且将部分标签未命中的指示发送到用于高速缓存控制器的逻辑。
参见图5,示出用于处理独立于对DRAM中的最后层级高速缓存存储布置的标签访问请求的数据访问请求的方法500的另一个实施方案。针对标签请求确定部分标签命中(框502)。随后,将行缓冲器中的一个或多个标签的整体与标签请求的地址中的标签的整体进行比较(框504)。如果确定发生了完整标签未命中(条件框506的“否”分支),则将存储器请求发送到系统存储器以在DRAM高速缓存中提供填充数据(框508)。如前所述,在各种实施方案中,如果数据请求是读取请求,并被推测性地发送到存储器装置,则将丢弃所检索的数据,并且用于高速缓存控制器的逻辑将对应的存储器请求发送到系统存储器。如果数据请求尚未被发送,则用于高速缓存控制器的逻辑取消数据请求并且将对应的存储器请求发送到系统存储器。
如果确定发生了完整标签命中(条件框506的“是”分支),则将数据请求发送到存储器装置(框510),并且在DRAM高速缓存内识别对应于数据请求中的地址的给定行(框512)。基于访问类型执行对行缓冲器中的对应的高速缓存线的读取或写入访问(框514),在行缓冲器中更新对应的元数据(框516),并且关闭对应于行缓冲器中的信息的行(框518)。如前所述,在一些实施方案中,当数据请求是读取请求时,在完成完整标签比较之前,基于部分标签比较推测性地将数据请求发送到存储器装置。在这种情况下,如果完整标签比较确定完整标签未命中,则丢弃所检索的数据。如果完整标签比较确定完整标签命中,则较早地提供所检索的数据,以服务于读取请求。
在各种实施方案中,使用软件应用程序的程序指令来实现先前所述的方法和/或机制。所述程序指令以诸如C的高级编程语言来描述硬件的行为。替代地,使用诸如Verilog的硬件设计语言(HDL)。程序指令存储在非暂时性计算机可读存储介质上。可使用多种类型的存储介质。在使用期间,计算系统可访问存储介质,以将程序指令和随附数据提供到计算系统以用于程序执行。计算系统至少包括一个或多个存储器和被配置为执行程序指令的一个或多个处理器。
应当强调的是,上述实施方案仅是实现方式的非限制性实例。一旦充分理解上述公开内容,许多变化和修改对于本领域的技术人员将变得显而易见。意图将所附权利要求解释为包含所有此类变化和修改。

Claims (20)

1.一种随机存取存储器(RAM)高速缓存存储器控制器,其包括:
第一接口,所述第一接口用于接收存储器访问请求;
第二接口,所述第二接口用于将高速缓存访问请求发送到RAM高速缓存存储器装置;以及
控制逻辑;
其中响应于接收到存储器访问请求,所述控制逻辑被配置为:
基于所述存储器访问请求生成高速缓存标签访问请求;
基于所述存储器访问请求生成与所述高速缓存标签访问请求不同的高速缓存数据访问请求;
通过所述第二接口将所述高速缓存标签访问请求发送到所述RAM高速缓存存储器装置;并且
基于通过处理所述高速缓存标签访问请求而生成的信息来调度发送所述高速缓存数据访问请求。
2.如权利要求1所述的RAM高速缓存存储器控制器,其中所述控制逻辑还被配置为:将唯一识别符存储在所述高速缓存标签访问请求和所述高速缓存数据访问请求中的每一者中,其中所述唯一识别符指定所述高速缓存标签访问请求和所述高速缓存数据访问请求中的每一者根据相同的存储器访问请求生成。
3.如权利要求1所述的RAM高速缓存存储器控制器,其中所述控制逻辑还被配置为:
在所述RAM高速缓存存储器装置内识别多个行中的对应于所述高速缓存标签访问请求中的地址的给定行;并且
将存储在所述给定行中的一个或多个标签的仅一部分与所述高速缓存标签访问请求的所述地址中的标签的仅一部分进行比较。
4.如权利要求3所述的RAM高速缓存存储器控制器,其中调度发送所述高速缓存数据访问请求包括:响应于基于比较所述地址中的所述标签的所述仅一部分确定标签未命中,取消向所述RAM高速缓存存储器装置发送所述高速缓存数据访问请求。
5.如权利要求3所述的RAM高速缓存存储器控制器,其中响应于基于比较所述地址中的所述标签的所述仅一部分确定标签未命中,所述控制逻辑还被配置为将所述存储器访问请求发送到系统存储器和主存储器中的一者或多者。
6.如权利要求3所述的RAM高速缓存存储器控制器,其中调度发送所述高速缓存数据访问请求包括:响应于基于将所述给定行中的所述一个或多个标签的整体与所述高速缓存标签访问请求的所述地址中的所述标签的整体进行比较确定标签命中,通过所述第二接口将所述高速缓存数据访问请求发送到所述RAM高速缓存存储器装置。
7.如权利要求6所述的RAM高速缓存存储器控制器,其中所述控制逻辑还被配置为:基于对应于由所述高速缓存标签访问请求的访问所导致的所述标签命中的标签的位置,识别由所述高速缓存数据访问请求访问的给定行中的数据。
8.一种方法,其包括:
由处理器生成对存储在存储器装置中的数据的存储器访问请求;
由存储器控制器接收来自所述处理器的所述存储器访问请求;以及
响应接收到存储器访问请求:
由所述存储器控制器基于所述存储器访问请求生成标签访问请求;
由所述存储器控制器基于所述存储器访问请求生成与所述标签访问请求不同的数据访问请求;
由所述存储器控制器将所述标签访问请求发送到所述存储器装置;以及
由所述存储器控制器基于通过处理所述标签访问请求而生成的信息来调度发送所述数据访问请求。
9.如权利要求8所述的方法,其还包括:由所述存储器控制器将唯一识别符存储在所述标签访问请求和所述数据访问请求中的每一者中,其中所述唯一识别符指定所述标签访问请求和所述数据访问请求中的每一者根据相同的存储器访问请求生成。
10.如权利要求9所述的方法,其还包括:
在所述存储器装置内识别多个行中的对应于所述标签访问请求中的地址的给定行;以及
将存储在所述给定行中的一个或多个标签的仅一部分与所述标签访问请求的所述地址中的标签的仅一部分进行比较。
11.如权利要求10所述的方法,其中调度发送所述数据访问请求包括:响应于基于比较所述地址中的所述标签的所述仅一部分确定标签未命中,取消向所述存储器装置发送所述数据访问请求。
12.如权利要求10所述的方法,其中响应于基于比较所述地址中的所述标签的所述仅一部分确定标签未命中,所述方法还包括将所述存储器访问请求发送到系统存储器和主存储器中的一者或多者。
13.如权利要求10所述的方法,其中调度发送所述数据访问请求包括:响应于基于将所述给定行中的所述一个或多个标签的整体与高速缓存标签访问请求的所述地址中的所述标签的整体进行比较确定标签命中,将所述数据访问请求发送到所述存储器装置。
14.如权利要求13所述的方法,其还包括:基于对应于由所述高速缓存标签访问请求的访问所导致的所述标签命中的标签的位置,识别由高速缓存数据访问请求访问的给定行中的数据。
15.一种计算系统,其包括:
处理器,所述处理器被配置为生成对存储在存储器装置中的数据的存储器访问请求;以及
存储器控制器,所述存储器控制器耦接到所述存储器装置;
其中响应于接收到存储器访问请求,所述存储器控制器被配置为:
基于所述存储器访问请求生成标签访问请求;
基于所述存储器访问请求生成与所述标签访问请求不同的数据访问请求;
将所述标签访问请求发送到所述存储器装置;
基于通过处理所述标签访问请求而生成的信息来调度发送所述数据访问请求。
16.如权利要求15所述的计算系统,其中所述存储器控制器还被配置为:将唯一识别符存储在所述标签访问请求和所述数据访问请求中的每一者中,其中所述唯一识别符指定所述标签访问请求和所述数据访问请求中的每一者根据相同的存储器访问请求生成。
17.如权利要求16所述的计算系统,其中所述存储器控制器被配置为:
在所述存储器装置内识别多个行中的对应于所述标签访问请求中的地址的给定行;并且
将存储在所述给定行中的一个或多个标签的仅一部分与所述标签访问请求的所述地址中的标签的仅一部分进行比较。
18.如权利要求17所述的计算系统,其中调度发送高速缓存数据访问请求包括:响应于基于比较所述地址中的所述标签的所述仅一部分确定标签未命中,取消向所述存储器装置发送所述高速缓存数据访问请求。
19.如权利要求17所述的计算系统,其中响应于基于比较所述地址中的所述标签的所述仅一部分确定标签未命中,所述存储器控制器还被配置为将所述存储器访问请求发送到系统存储器和主存储器中的一者或多者。
20.如权利要求18所述的计算系统,其中调度发送所述高速缓存数据访问请求包括:响应于基于将所述给定行中的所述一个或多个标签的整体与高速缓存标签访问请求的所述地址中的所述标签的整体进行比较确定标签命中,将所述高速缓存数据访问请求发送到所述存储器装置。
CN201880088583.4A 2017-12-12 2018-09-19 高速缓存控制感知的存储器控制器 Pending CN111684427A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/839,700 US10572389B2 (en) 2017-12-12 2017-12-12 Cache control aware memory controller
US15/839,700 2017-12-12
PCT/US2018/051624 WO2019118035A1 (en) 2017-12-12 2018-09-19 Cache control aware memory controller

Publications (1)

Publication Number Publication Date
CN111684427A true CN111684427A (zh) 2020-09-18

Family

ID=63794666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880088583.4A Pending CN111684427A (zh) 2017-12-12 2018-09-19 高速缓存控制感知的存储器控制器

Country Status (6)

Country Link
US (1) US10572389B2 (zh)
EP (1) EP3724775B1 (zh)
JP (1) JP7036925B2 (zh)
KR (1) KR102402630B1 (zh)
CN (1) CN111684427A (zh)
WO (1) WO2019118035A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10880401B2 (en) * 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US11392320B2 (en) 2018-07-03 2022-07-19 Western Digital Technologies, Inc. Quality of service based arbitrations optimized for enterprise solid state drives
US10732897B2 (en) * 2018-07-03 2020-08-04 Western Digital Technologies, Inc. Quality of service based arbitrations optimized for enterprise solid state drives
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
KR102579319B1 (ko) 2023-04-19 2023-09-18 메티스엑스 주식회사 캐시 메모리 장치 및 이를 이용하는 캐시 스케줄링 구현 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120151251A1 (en) * 2010-12-08 2012-06-14 Advanced Micro Devices, Inc. Queue freeze on protocol error
US20120297256A1 (en) * 2011-05-20 2012-11-22 Qualcomm Incorporated Large Ram Cache
US20130138894A1 (en) * 2011-11-30 2013-05-30 Gabriel H. Loh Hardware filter for tracking block presence in large caches
US20130138892A1 (en) * 2011-11-30 2013-05-30 Gabriel H. Loh Dram cache with tags and data jointly stored in physical rows
US20150347307A1 (en) * 2014-06-02 2015-12-03 Micron Technology, Inc. Cache architecture

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US6427188B1 (en) * 2000-02-09 2002-07-30 Hewlett-Packard Company Method and system for early tag accesses for lower-level caches in parallel with first-level cache
JP4520788B2 (ja) * 2004-07-29 2010-08-11 富士通株式会社 マルチスレッドプロセッサ
US7680985B2 (en) * 2007-06-28 2010-03-16 International Business Machines Corporation Method and apparatus for accessing a split cache directory
US20090006777A1 (en) * 2007-06-28 2009-01-01 Donley Greggory D Apparatus for reducing cache latency while preserving cache bandwidth in a cache subsystem of a processor
US8341358B1 (en) * 2009-09-18 2012-12-25 Nvidia Corporation System and method for cleaning dirty data in a cache via frame buffer logic
JP2012103826A (ja) * 2010-11-09 2012-05-31 Fujitsu Ltd キャッシュメモリシステム
US20120136857A1 (en) * 2010-11-30 2012-05-31 Advanced Micro Devices, Inc. Method and apparatus for selectively performing explicit and implicit data line reads
US20120144118A1 (en) * 2010-12-07 2012-06-07 Advanced Micro Devices, Inc. Method and apparatus for selectively performing explicit and implicit data line reads on an individual sub-cache basis
US8825955B2 (en) * 2011-11-22 2014-09-02 The Regents Of The University Of Michigan Data processing apparatus having a cache configured to perform tag lookup and data access in parallel, and a method of operating the data processing apparatus
US9535832B2 (en) * 2013-04-30 2017-01-03 Mediatek Singapore Pte. Ltd. Multi-hierarchy interconnect system and method for cache system
US9652397B2 (en) * 2014-04-23 2017-05-16 Texas Instruments Incorporated Dynamic power reduction and performance improvement in caches using fast access

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120151251A1 (en) * 2010-12-08 2012-06-14 Advanced Micro Devices, Inc. Queue freeze on protocol error
US20120297256A1 (en) * 2011-05-20 2012-11-22 Qualcomm Incorporated Large Ram Cache
US20130138894A1 (en) * 2011-11-30 2013-05-30 Gabriel H. Loh Hardware filter for tracking block presence in large caches
US20130138892A1 (en) * 2011-11-30 2013-05-30 Gabriel H. Loh Dram cache with tags and data jointly stored in physical rows
CN103959260A (zh) * 2011-11-30 2014-07-30 超威半导体公司 标签和数据共同存储在物理行中的dram高速缓存
US20150347307A1 (en) * 2014-06-02 2015-12-03 Micron Technology, Inc. Cache architecture

Also Published As

Publication number Publication date
US20190179760A1 (en) 2019-06-13
KR20200096971A (ko) 2020-08-14
EP3724775A1 (en) 2020-10-21
EP3724775B1 (en) 2022-11-16
WO2019118035A1 (en) 2019-06-20
KR102402630B1 (ko) 2022-05-26
JP2021506033A (ja) 2021-02-18
US10572389B2 (en) 2020-02-25
JP7036925B2 (ja) 2022-03-15

Similar Documents

Publication Publication Date Title
KR102402630B1 (ko) 캐시 제어 인지 메모리 컨트롤러
CN112088368B (zh) 动态的每存储体和全存储体刷新
US20210073152A1 (en) Dynamic page state aware scheduling of read/write burst transactions
EP3729281B1 (en) Scheduling memory requests with non-uniform latencies
KR101893544B1 (ko) 물리적 로우에 함께 저장된 태그 및 데이터를 구비한 dram 캐시
US11429281B2 (en) Speculative hint-triggered activation of pages in memory
US10783104B2 (en) Memory request management system
US8868843B2 (en) Hardware filter for tracking block presence in large caches
US11422707B2 (en) Scheduling memory requests for a ganged memory device
US20240126457A1 (en) Dynamic Allocation of Cache Memory as RAM
US11526278B2 (en) Adaptive page close prediction
US11704245B2 (en) Dynamic allocation of cache memory as RAM
KR20240034258A (ko) Ram으로서의 캐시 메모리의 동적 할당

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