标签和数据共同存储在物理行中的DRAM高速缓存.pdf

上传人:v**** 文档编号:6147079 上传时间:2019-04-19 格式:PDF 页数:19 大小:2.73MB
返回 下载 相关 举报
摘要
申请专利号:

CN201280059143.9

申请日:

2012.11.21

公开号:

CN103959260A

公开日:

2014.07.30

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/08申请日:20121121|||公开

IPC分类号:

G06F12/08; G06F12/12; G11C7/10

主分类号:

G06F12/08

申请人:

超威半导体公司

发明人:

加布里埃尔·H·洛; 马克·D·希尔

地址:

美国加利福尼亚州

优先权:

2011.11.30 US 13/307,776

专利代理机构:

上海胜康律师事务所 31263

代理人:

李献忠

PDF下载: PDF下载
内容摘要

本发明公开了一种用于在计算系统的大型基于行的存储器中进行有效高速缓存数据存取的系统和方法。计算系统包括处理单元和集成三维(3D)动态随机存取存储器(DRAM)。所述处理单元将3DDRAM用作高速缓存。所述3D DRAM的存储器阵列组中的多行中的每一行至少存储多个高速缓存标签和由所述多个高速缓存标签指示的多条相应高速缓存线。响应于从所述处理单元接收存储器请求,所述3D DRAM根据所述接收的存储器请求在由所述接收的存储器请求内的高速缓存标签指示的给定高速缓存线上执行存储器存取。可以使用单个复杂DRAM事务而不是使用多个DRAM事务来降低延迟和功耗。

权利要求书

权利要求书
1.  一种动态随机存取存储器(DRAM),其包括:
多个行,其中每一行被配置来至少存储(i)多个高速缓存标签和(ii)由所述多个高速缓存标签指示的多个高速缓存线;和
控制电路,其被配置来:
接收存储器请求;和
根据所述接收的存储器请求在由所述接收的存储器请求内的第一高速缓存标签指示的给定高速缓存线上执行存储器存取,其中执行所述存储器存取包括存储所述给定高速缓存线的所述多个行的各自行的单个读取。

2.  根据权利要求1所述的DRAM,其中所述控制电路还被配置来确定所述接收的存储器请求内的所述第一高速缓存标签与存储在所述各自行中的所述多个高速缓存标签的第二高速缓存标签匹配。

3.  根据权利要求2所述的DRAM,其中所述多个行的每个行还被配置来存储对应于所述多个高速缓存标签的元数据,其中所述元数据包括下列中的至少一个:高速缓存替换状态、脏位、有效位和高速缓存一致性值。

4.  根据权利要求3所述的DRAM,其中用存储所述给定高速缓存线的所述各自行的单个读取执行所述存储器存取包括基于所述存储器存取更新所述元数据。

5.  一种系统级封装(SIP),其包括:
位于第一芯片上的处理单元,其被配置来生成存储器请求;和
位于第二芯片上的动态随机存取存储器(DRAM),其包括多个行,其中所述DRAM被耦接到所述第一芯片且被配置来:
在所述多个行的相同行中至少存储多个高速缓存标签和由所述多个高速缓存标签指示的多条高速缓存线;
从所述处理单元接收存储器请求;和
根据所述接收的存储器请求在由所述接收的存储器请求内的第一高速缓存标签指示的给定高速缓存线上执行存储器存取,其中执行所述存储器存取包括存储所述给定高速缓存线的所述多个行的各自行的单个读取。

6.  根据权利要求5所述的系统,其中所述DRAM还被配置来确定所述接收的存储器请求内的所述第一高速缓存标签与存储在所述各自行中的所述多个高速缓存标签的第二高速缓存标签匹配。

7.  根据权利要求6所述的系统,其中所述第二高速缓存标签在所述各自行内的位置指示所述给定高速缓存线在所述各自行内的位置。

8.  根据权利要求7所述的系统,其中所述DRAM还被配置来在所述多个行的相同行中存储对应于所述多个高速缓存标签的元数据,其中所述元数据包括下列中的至少一个:高速缓存替换状态、脏位、有效位和高速缓存一致性值。

9.  根据权利要求8所述的系统,其中用存储所述给定高速缓存线的所述各自行的单个读取执行所述存储器存取包括基于所述存储器存取更新所述元数据。

10.  根据权利要求7所述的系统,其中所述存储器请求包括所述第一高速缓存标签和识别所述各自行的DRAM地址。

11.  根据权利要求7所述的系统,其中所述DRAM是三维(3D)集成电路(IC)。

12.  根据权利要求11所述的系统,其中所述处理单元是下列中的至少一个:通用微处理器、图形处理单元(GPU)、加速处理单元(APU)和现场可编程门阵列(FPGA)。

13.  一种方法,其包括:
在动态随机存取存储器(DRAM)的多个行的相同行中至少存储一个或多个高速缓存标签和由所述一个或多个高速缓存标签指示的一条或多条高速缓存线;
从耦接到所述DRAM的处理单元接收存储器请求;和
根据所述接收的存储器请求在由所述接收的存储器请求内的第一高速缓存标签指示的给定高速缓存线上执行存储器存取,其中执行所述存储器存取包括存储所述给定高速缓存线的各自行的单个读取。

14.  根据权利要求13所述的方法,其还包括确定所述接收的存储器请求内的所述第一高速缓存标签与存储在所述各自行中的所述一个或多个高速缓存标签的第二高速缓存标签匹配。

15.  根据权利要求14所述的方法,其中所述第二高速缓存标签在所述各自行内的位置指示所述给定高速缓存线在所述各自行内的位置。

16.  根据权利要求15所述的方法,其还包括在所述一个或多个行的相同行中存储对应于所述多个高速缓存标签的元数据,其中所述元数据包括下列中的至少一个:高速缓存替换状态、脏位、有效位和高速缓存一致性值。

17.  根据权利要求16所述的方法,其中用存储所述给定高速缓 存线的所述各自行的单个读取执行所述存储器存取包括基于所述存储器存取更新所述元数据。

18.  根据权利要求15所述的方法,其还包括在所述存储器请求内除发送识别所述各自行的DRAM地址以外还发送所述第一高速缓存标签。

19.  根据权利要求15所述的方法,其中所述DRAM是三维(3D)集成电路(IC)。

20.  根据权利要求18所述的方法,其中所述处理单元是下列中的至少一个:通用微处理器、图形处理单元(GPU)、加速处理单元(APU)和现场可编程门阵列(FPGA)。

说明书

说明书标签和数据共同存储在物理行中的DRAM高速缓存
发明背景
技术领域
本发明涉及计算系统,且更特定来说涉及用于在计算系统的大型基于行的存储器中进行有效高速缓存数据存取。
相关领域的描述
随着半导体制造过程推进以及晶粒上几何尺寸减小,半导体芯片提供更多功能和性能。然而,现代处理技术和可能限制潜在益处的集成电路设计仍然出现设计问题。一个问题是在二维平面布局芯片的相继代中每单位长度的互连延迟继续增加。而且,个别芯片之间的高电阻抗增加延迟。此外,由于这些较长信号路径上增加的寄生电容,遍历片外到另一晶粒的信号可能显著增加这些信号的功耗(例如,增加10到100倍)。
另一设计问题是存取许多数据的大多数软件应用程序通常受存储器限制,因为计算时间通常由存储器带宽确定。片外动态随机存取存储器(DRAM)的存储器存取延迟可以是数百到超过一千个时钟周期,且处理器设计中增加的核心数量已加重了存储器带宽问题。近来,已经在包括垂直和水平集成到单个电路中的两层或更多层有源电子组件的三维集成电路(3D IC)中取得了进步。被称为系统级封装(SiP)或芯片堆叠多芯片模块(MCM)的3D封装通过将单独芯片堆叠成单个封装而节约空间。这些层内的组件使用芯片上信号发送进行通信(无论是垂直的或水平的)。这种信号发送经由已知的二维平面布局电路提供减小的互连信号延迟。
上文描述中的制造趋势可以导致微处理器封装内的千兆字节集成存储器。在一些情况下,额外的芯片上存储器件可以用作基于行的存储器,诸如在存取片外存储器之前用作最后一级高速缓存(LLC)。通过额外存储器实现的降低缺失率有助于隐藏处理器与其片外存储器之间的延迟间隙。然而,对于这种额外的集成存储器来说,基于行的存储器的高速缓存存取机制可能是低效的。将大型标签数据阵列(诸如多千兆字节高速缓存的数百兆字节)放置在微处理器晶粒上可能是不切实际且昂贵的。
增大额外集成存储器的数据高速缓存线的尺寸,诸如从64字节线增加到4千字节(KB)线,减少集成存储器中的高速缓存线的数量和相应标签的尺寸。然而,脏位和一致性信息仍可以维持在原始高速缓存线(64字节线)尺寸的粒度。此外,数据转移可能消耗过多带宽,因为当仅将一些字节作为目标时,可以对整个4KB线进行存取。
使用DRAM存取机制,同时存储并存取集成DRAM中的额外高速缓存的标签和数据,消散许多功率。此外,这些机制消耗许多带宽,尤其是高度相关封装上高速缓存,且消耗太多时间,因为标签和数据是以顺序方式读出。因此,封装上DRAM提供许多额外数据存储,而高速缓存和DRAM存取机制效率低下。
鉴于上述内容,需要用于在计算系统的大型基于行的存储器中进行有效高速缓存数据存取的有效方法和系统。
发明概要
设想用于在计算系统的大型基于行的存储器中进行有效高速缓存数据存取的系统和方法。
在一个实施方案中,计算系统包括处理单元和集成动态随机存取存储器(DRAM)。处理单元的实例包括通用微处理器、图形处理单 元(GPU)、加速处理单元(APU)等。集成DRAM可以是三维(3D)DRAM且可以包括在具有处理单元的系统级封装(SiP)中。处理单元可以将3D DRAM用作高速缓存。
在各个实施方案中,3D DRAM可以存储标签阵列和数据阵列两者。3D DRAM的存储器阵列组中的多个行中的每个行可以存储一个或多个高速缓存标签和由所述一个或多个高速缓存标签指示的一个或多个相应高速缓存线。响应于从处理单元接收存储器请求,3DDRAM可以根据所述接收的存储器请求在由所述接收的存储器请求内的缓存标签指示的给定高速缓存线上执行存储器存取。执行存储器存取可以包括存储给定高速缓存线的多个行的各自行的单个读取。可以使用单个复杂DRAM事务而不是使用多个DRAM事务来降低延迟和功耗。
在参考下列描述和附图后,将进一步明白这些和其它实施方案。
附图简述
图1是计算系统的一个实施方案的总体框图。
图2是系统级封装(SiP)的实施方案的总体框图。
图3是计算系统的另一实施方案的总体框图。
图4是用来存取高速缓存存储配置的顺序步骤的一个实施方案的总体框图。
图5是用于进行有效封装中DRAM存取的方法的一个实施方案的总体流程图。
尽管本发明可以具有各种修改和替代形式,但是在附图中通过举例的方式示出具体实施方案,且在本文进行详细描述。然而,应理解,附图和其详细描述不旨在将本发明限于所公开的特定形式,而是相反 地,本发明涵盖落在如随附权利要求所定义的本发明的精神和范畴内的所有修改、等效物和替代形式。
具体实施方式
在下列描述中,阐述大量具体细节来提供对本发明的透彻理解。然而,本领域的普通技术人员应认识到本发明可以在不具有这些具体细节的情况下实行。在一些实例中,尚未详细示出众所周知的电路、结构和技术来避免混淆本发明。
参考图1,示出计算系统100的一个实施方案的总体框图。如所示,微处理器110可以包括连接到对应的一个或多个高速缓存存储器子系统124a-124b的一个或多个处理器核心122a-122b。微处理器还可以包括接口逻辑140、存储器控制器130、系统通信逻辑126和共享缓存存储器子系统128。在一个实施方案中,微处理器110的所示功能被合并在单个集成电路上。在另一实施方案中,所示功能被合并在计算机主板上的芯片组中。
在一个实施方案中,微处理器110是移动计算机、智能电话、或平板计算机;台式计算机;服务器;或其它内的独立系统。在一个实施方案中,系统通信逻辑116是系统总线。在另一实施方案中,微处理器110合并逻辑126中的系统总线控制器,所述系统总线控制器利用各种协议中的一个将处理器核心122a-122b连接到磁盘存储器162、DRAM170、外围输入/输出(I/O)装置、其它处理单元(诸如另一通用微处理器,其也可以称为中央处理单元(CPU))、图形处理单元(GPU)、加速处理单元(APU)、现场可编程门阵列(FPGA)、或其它)。在这样一个实施方案中,系统通信逻辑126可以替换或合并存储器控制器130和接口逻辑140的功能。
简单提供计算系统100中的组件的进一步描述。虽然计算系统100在一个实施方案中被示为包括通用微处理器110,但是在用于其它目的的其它实施方案中,微处理器110可以用另一类型的处理器单 元替换。其它类型的处理单元可以包括图形处理单元(GPU)、现场可编程门阵列(FPGA)或加速处理单元(APU)。一般来说,APU是包括额外处理能力的芯片。这种额外处理能力可以用来加速通用CPU外部的一种或多种类型的计算。在一个实施方案中,APU可以包括与GPU、FPGA或其它处理单元集成在相同晶粒上的通用CPU,因此改进这些单元之间的数据转移速率,同时降低功耗。在其它实施方案中,APU可以包括视频处理和其它专用加速器。
无论在计算系统100中使用的给定类型的处理单元为何,由于软件应用程序存取越来越多的数据,存储器子系统使用越来越缓慢。延迟变得更加重要。可以使用更多的芯片上存储器存储来降低互连延迟。例如,高速缓存存储器子系统124a-124b中的每个可以针对处理器核心122a-122b的各自一个降低存储器延迟。此外,微处理器110可以包括共享的高速缓存子系统128而在向片外DRAM170和/或片外磁盘存储器162存取之前作为最后一级高速缓存(LLC)。
通过由高速缓存存储器子系统124a-124b和128提供的额外存储器实现的降低缺失率有助于隐藏处理器核心122a-122b的给定芯与片外存储器之间的延迟间隙。然而,高速缓存存储器子系统124a-124b和128中的每个使用的实际面积有限。因此,限制高速缓存存储器子系统124a-124b和128中的每个的各自大小且仍将大量存取发送给片外存储器,诸如DRAM170和/或磁盘存储器162。
继续尝试降低存储器延迟,可以使用其它技术来提供其它芯片上存储器存储。虽然图1中未示出,但是在一个实施方案中,微处理器110可以使用三维集成电路(3D IC)来提供最后一级高速缓存(LLC)。随后在图2和图3的描述中提供计算系统的这样一个实施方案的其它细节。3D集成DRAM可以提供低延迟互连和明显大量额外芯片上存储器存储两者来减少片外存储器存取。微处理器110内的接口逻辑可以为3D集成DRAM提供地址转化。3D集成DRAM内的控制逻辑可以变更3D集成DRAM内的多个存储器阵列组中的多个行的给定 行的存取所使用的典型步骤。在进一步描述使用3D IC的实施方案之前,提供图1所示的计算系统100中的组件的进一步描述。
处理器核心122a-122b中的每个可以包括用于根据给定的指令集执行指令的电路。例如,可以选择x86指令集架构(ISA)。替代地,可以选择Alpha、PowerPC或任何其它指令集架构。在一个实施方案中,处理器核心122a-122b中的每个可以包括用于处理给定ISA的指令的超标量、多线程微架构。
高速缓存存储器子系统124a-124b和128可以包括被配置来存储数据块的高速缓存存储器。如本文所使用,“块”是存储在连续存储器位置中的一组字节,其被视为用于一致性目的的单位。如本文所使用,术语“高速缓存块”、“块”、“缓存线”和“线”中的每个可互换。在一些实施方案中,块也可以是高速缓存中的分配和重新分配的单位。块中字节数可以根据设计选择而发生变化,且可以具有任何尺寸。此外,术语“高速缓存标签”、“高速缓存线标签”和“缓存块标签”中的每个可互换。
高速缓存存储器子系统124a-124b和128中的每个可以包括高速缓存存储器或高速缓存阵列,其连接到相应的缓存控制器。高速缓存存储器子系统124a-124b和128可以实施为高速缓存阶层。位于处理器核心122a-122b附近的高速缓存(阶层内)可以根据需要集成到处理器核心122a-122b中。这个高速缓存层级可以是多级阶层的一级(L1)。在一个实施方案中,高速缓存存储器子系统124a-124b每个表示L2高速缓存结构且共享的高速缓存存储器子系统128表示L3高速缓存结构。在另一实施方案中,高速缓存存储器子系统114每个表示L1高速缓存结构,且共享的高速缓存子系统118表示L2高速缓存结构。其它实施方案是可行的且被设想。
一般来说,处理器核心122a-122b分别向高速缓存存储器子系统124a-124b存取以获得数据和指令。如本文所使用,有关高速缓存存 储器子系统的术语“存取”指执行如果相应的请求地址的请求数据驻留在高速缓存中则可能导致高速缓存命中的读取或写入请求操作。替代地,如果所请求数据未驻留在高速缓存中,那么读取或写入操作可以导致高速缓存缺失。
如果高速缓存缺失发生,诸如在高速缓存存储器子系统124a-124b的各自子系统中或在共享的高速缓存存储器子系统128中未发现请求块,那么读取请求可以生成且被传输到存储器控制器130。存储器控制器130可以转化对应于请求块的地址且通过存储器总线150将读取请求发送到片外DRAM170。片外DRAM170可以通过I/O控制器和总线160以及存储器总线150填充来自片外磁盘存储器162的数据。
具有请求块的相应高速缓存填充线可以从片外DRAM170传送到高速缓存存储器子系统124a-124b的相应一个,以便完成原始的读取或写入请求。高速缓存填充线可以放置在一个或多个高速缓存层级中。此外,高速缓存填充线可以放置在高速缓存内的相应集合内。如果在相应集合内没有可用方式,那么通常最近最少使用(LRU)算法确定集合内的哪种方式将其数据逐出并由高速缓存填充线数据替换。通常,分配指以特定高速缓存方式(继特定高速缓存之后发生高速缓存缺失)存储从高速缓存阶层的较低层级取得的高速缓存填充线。
片外磁盘存储器162可以提供非易失性随机存取二次数据存储。在一个实施方案中,片外磁盘存储器162可以包括一个或多个硬盘驱动器(HDD)。HDD通常包括一个或多个旋转磁盘,每个涂覆有磁媒介。这些磁盘以每分钟数千转的速率旋转。磁致动器负责将磁读取/写入装置定位在旋转磁盘上。
在另一实施方案中,片外磁盘存储器162使用固态磁盘(SSD)。固态磁盘也可以称为固态驱动器。SSD可以模仿HDD接口,但是SSD使用固态存储器而非使用HDD中所见的机电装置来存储持久性数 据。例如,SSD可以包括闪速存储器组。
片外DRAM170可以是将每位数据存储在集成电路内的独立电容器中的动态随机存取存储器类型。电容器可以充电或放电。可以使用这两种状态来表示位的两个逻辑值。DRAM170的每一位可以使用单个晶体管和一个电容器。与芯片上同步RAM(SRAM)中所用的六个晶体管相比,DRAM可以达到更高密度。不同于HDD和闪速存储器,DRAM170可以是易失性存储器,而非非易失性存储器。当电力移除时,DRAM170可能快速丢失其数据。
片外DRAM170可以包括多通道存储器架构。这种类型的架构可以通过在片外DRAM170与存储器控制器130之间添加更多的通信通道而提高数据到存储器控制器130的转移速度。多通道架构使用多个存储器模块和能够支持多通道的主板和/或卡。
在一个实施方案中,存储器模块中的每个可以各自具有针对存储器控制器130的各自接口的相同协议。协议的一个实例是协议的双倍数据速率(DDR)类型。协议可以确定信息转移所用的值,诸如每个时钟周期的数据量、信号电压电平、信号定时、信号和时钟相位以及时钟频率。协议实例包括DDR2SDRAM、DDR3SDRAM、GDDR4(图形双倍数据速率,版本4)SDRAM和GDDR5(图形双倍数据速率,版本5)SDRAM。存储器控制器130可以包括用于与存储器通道建立连接并遵循相应协议的控制电路。此外,存储器控制器130可以包括用于对存储器请求进行排队的请求队列。
现在参考图2,示出系统级封装(SiP)200和240的实施方案的总体框图。可以在计算系统内使用三维(3D)封装。这种类型的封装可以称为系统级封装(SiP)。SiP包括一个或多个三维集成电路(3D IC)。3D IC包括垂直和/或水平集成到单个电路中的两层或更多层有源电子组件。在一个实施方案中,可以使用基于内插器的集成,其中3D IC可以放置为与处理单元220紧邻。替代地,3D IC可以直接堆 叠在另一IC顶部。
晶粒堆叠技术是实现将多个单独硅(集成芯片)块一起物理堆叠在具有高带宽和低延迟互连的相同封装中的制造过程。晶粒可以并排堆叠在硅内插器上或直接彼此垂直堆叠在顶部。SiP的一个配置是将一个或多个DRAM芯片与处理单元紧邻堆叠和/或堆叠在处理单元的顶部上。通过堆叠DRAM芯片,处理器单元可以实现系统的极大高速缓存。在一个实施方案中,这种大高速缓存的尺寸可以是数百MB(或更多)等级。
如所示,在一个实施方案中,SiP200可以包括处理单元220和通过水平低延迟互连210与处理单元220通信的一个或多个三维(3D)DRAM230和232。再者,处理单元220可以是通用CPU,其也可以称为微处理器;图形处理单元(GPU);加速处理单元(APU);现场可编程门阵列(FPGA)或利用基于行的存储器的其它数据处理装置,诸如高速缓存。
封装内水平低延迟互连210提供长度减小的互连信号对未使用SiP时长片外互连。封装内水平低延迟互连210可以使用特定信号和协议,如同在电路板上的独立封装中安装芯片(诸如处理单元220以及3D DRAM230和232)一样。SiP200还可以包括到达封装外部连接214的背部通孔或硅块穿孔212。封装外部连接214可用于输入/输出(I/O)信号和功率信号。
在另一实施方案中,SiP240包括直接堆叠在处理单元220顶部上的3D DRAM250。虽然未示出,但是对于SiP200和SiP240中的每个,多个芯片或装置层可以彼此堆叠在顶部,其中直接垂直互连216穿过其中。可以在不同装置层之间穿过的垂直互连216的尺寸和密度是基于用来制造3D IC的基础技术改变。
现在参考图3,示出使用三维(3D)DRAM的计算系统300的一个实施方案的总体框图。先前描述的电路和逻辑编号相同。计算系 统300可以使用三维(3D)封装,诸如先前描述的系统级封装(SiP)。计算系统300可以包括SiP310。在一个实施方案中,SiP310可以包括先前描述的处理单元220和通过低延迟互连340通信的3D DRAM330。封装中低延迟互连340可以是水平的和/或垂直的,其长度短于未使用SiP时的长片外互连。
虽然SiP310的一个实施方案被示为使用DRAM存储器技术,但是使用基于行的存取方案的其它存储技术(包括一个或多个行缓冲器或其它等效结构)是可行的且被设想。其它存储器技术的实例包括相变存储器、自旋扭矩转移电阻式存储器、记忆电阻器等。
处理单元220可以包括用于执行计算和由软件应用程序描述的算法工作的执行引擎322。在一个实施方案中,执行引擎322可以包括通用CPU的一个或多个处理器核心。在另一实施方案中,执行引擎322可以包括着色器、其它图形处理块和GPU的单指示多数据(SIMD)管线来执行至少进行图形渲染的数据中心操作和3D图形应用程序。根据给定算法进行数据处理的电路的其它实例是可行的且被设想。
处理单元220可以与封装外存储器通信,诸如通过存储器控制器326、存储器总线150和I/O控制器和总线160与磁盘存储器162通信。如所示,在一个实施方案中,计算系统300可以不包括封装外DRAM170,其包括在先前描述的计算系统100中。封装上3D DRAM330可以提供极大的封装上存储器存储,其减少封装外存储器存取量且隐藏长存储器延迟。在另一实施方案中,计算系统300仍可以包括封装外DRAM170。
处理单元220可以包括到I/O装置和其它处理单元的接口逻辑。为方便阐明,没有示出这个接口逻辑。处理单元220也可以包括用于与3D DRAM330通信的接口逻辑324。在这通信中使用的协议、地址格式和接口信号可以类似于封装外DRAM170所使用的协议、地 址格式和接口信号。然而,当3D DRAM330用作最后一级高速缓存(LLC)时,可以对这通信进行调整。例如,从处理单元220发送到3D DRAM330的存储器请求可以包括除识别存储器阵列组332a-332b中的一个内的各自行的DRAM地址以外的高速缓存标签。所接收的高速缓存标签可用来比较存储在3D DRAM330内所识别给定行中的高速缓存标签。
类似于其它DRAM拓扑结构,3D DRAM330可以包括多个存储器阵列组332a-332b。组332a-332b中的每一组可以包括行缓冲器334a-334b的各自一个。行缓冲器334a-334b中的每一个可以将数据存储在存储器阵列组332a-332b内的多个行的存取行中。所存取行可以由所接收的存储器请求中的DRAM地址识别。控制逻辑336可以在所接收的存储器请求中的高速缓存标签与存储在行缓冲器中的一个或多个高速缓存标签之间执行标签比较。此外,控制逻辑可以通过使用高速缓存标签比较结果而非所接收的DRAM地址内的位字段而变更行缓冲器的列存取。
控制逻辑336可以更新存储在行缓冲器内的元数据。元数据可以至少包括最近最少使用(LRU)值、脏位和高速缓存一致性值。控制逻辑336可以使所识别行和行缓冲器的存取同步以将多个DRAM事务改变成单个复杂事务。这单个复杂事务可以执行3D DRAM330内的数据和控制线的启动和预充电一次来存取识别行且执行一次来将存储在行缓冲器内的修改内容放回到所识别行。下文作出进一步描述。
现在参考图4,示出图示用来存取高速缓存存储配置400的顺序步骤的一个实施方案的总体框图。可以用各种方式将数据存储在3D DRAM内。例如,给定存储器阵列组内的每一行可以使用集合相关高速缓存组织存储数据。所存储的数据可以划分成高速缓存线。每一行也可以存储与相同行内的高速缓存线对应的高速缓存标签。此外,每一行可以存储与给定高速缓存线对应的元数据,诸如替换状态、高 速缓存一致性状态、脏位等。
虽然高速缓存存储配置400的一个实施方案被描述为使用DRAM存储器技术,但是使用基于行的存取方案的其它存储器技术(包括一个或多个行缓冲器或其它等效结构)是可行的且被设想。其它存储器技术的实例包括相变存储器、自旋扭矩转移电阻式存储器、记忆电阻器等。
图4示出3D DRAM内的一个或多个存储器阵列组中的给定组。存储器阵列组430可以包括多个行432a-432k。行432a-432k中每一行可以存储用于N路集合相关高速缓存组织的高速缓存标签和高速缓存线,其中N是大于1的整数。可以选择不同数量的路,诸如8路、16路、32路或其它。例如,行432a将高速缓存标签存储在字段434a-434d中。行432a可将相应高速缓存线的数据部分存储在字段438a-438d中。因此,存储器阵列组430将高速缓存组织的标签阵列和数据阵列组合成单个物理结构。每一行的部分,诸如行432a中的字段4343a-434d,用来保存对应于存储在剩余行(诸如字段438a-438d)中的数据元素的标签条目。
存储器阵列组430的行432a-432k中的标签存储可以是3D DRAM的总尺寸的固定部分。在一个实施方案中,高速缓存线或高速缓存块的数据部分存储64字节数据。其它尺寸是可行的且被设想。然而,高速缓存线的尺寸可能因存储器阵列组430中使用的高速缓存存储配置400而不会发生变化。高速缓存存储配置400和顺序步骤可以允许具有3D DRAM的总体尺寸的标签存储标量,同时允许高速缓存线尺寸保持相同,诸如64字节大小。处理单元内的标签存储可以不使用芯片上SRAM存储。
在一个实施方案中,存储器阵列组430使用30路集合相关高速缓存组织。行432a-432k中的每一行可以具有足够空间来存储32路,但是可以使用所述路中的2路来存储相应的高速缓存标签信息。在一 个实例中,高速缓存线是64字节且高速缓存标签是4字节。在本实例中,2条高速缓存线提供2条线×64字节=128字节存储。在本实例中,标签存储被放置在通常由两条高速缓存线占用的空间中。对于30条高速缓存线,标签存储使用30路×4字节=120字节。可以使用额外8字节来存储额外元数据(诸如额外信息)来改进替换决策、预取提示、分析数据、脏位、高速缓存一致性状态等。
行432a-432k中的每一行可以存储与所存储的高速缓存线对应的元数据。例如,行432a将状态元数据存储在字段436a中。所存储的元数据可以至少包括每个相应的高速缓存线的以下至少一个或多个:有效位、指示拥有相应高速缓存块的源的高速缓存块所有者编码、结合高速缓存控制器采用的高速缓存替换算法使用的最近最少使用(LRU)逐出信息、指明诸如被修改、排除、拥有、共享、无效或其它的高速缓存一致性状态的指示;脏位、预取提示信息、分析数据等。其它类型的状态信息是可行的且被设想。
继续存储器阵列组430的行中所存储的信息,行432k可以以类似于行432a的格式存储信息。例如,行432k可以将标签存储在字段434m-434q中,将状态元数据存储在字段436k中,且将相应高速缓存线的数据部分存储在字段438m-438q中。应注意,虽然存储在行432a-432k中的信息以特定顺序且以连续空间示出,但是数据存储的其它放置无论是否连续都是可行的且被设想。可以基于设计折衷选择特定存储配置。
行缓冲器440可以存储从行432a-432k中的选定行读出的数据和元数据。行缓冲器440可以将类似存储配置用作行432a-432k。例如,行缓冲器440可以针对字段444a-444d中的集合相关高速缓存组织的N路存储高速缓存标签信息。行缓冲器440可以将相应高速缓存线的数据部分存储在字段448a-448d中。行缓冲器440可以将状态信息(诸如相应的状态元数据)存储在字段446中。
在一个实例中,高速缓存线是64字节,高速缓存标签是4字节,且存储器阵列组430使用30路集合相关高速缓存组织。行432a-432k中的每一行可以使用2路进行标签存储且使用30路进行数据存储。2路也可以包括元数据存储。因此,行432a-432k中的每一行包括32路×64字节/路=2,048字节或2千字节(KB)存储。类似地,行缓冲器440包括2KB存储。行432a-432k中的每一行可以使用DRAM存储器技术来进行信息存储。然而,行缓冲器440可以使用寄存器、SRAM单元或其它存储机制。因此,对行缓冲器440重复存取可以比对行432a-432k中的任何一行重复存取更高效。
3D DRAM可以存储相应处理单元的极大封装内存储器存储。这大型存储器存储可以用作最后一级高速缓存。在一个实施方案中,高速缓存线或高速缓存块的数据部分存储64字节数据。其它尺寸是可行的且被设想。3D DRAM的尺寸可以是至少数百兆字节(MB)或更大。存储器阵列组430可以是3D DRAM内的多个组中的一个组。在一个实例中,3D DRAM的尺寸是512MB,其可以存储8,388,608条个别64字节高速缓存线。相应的高速缓存标签的尺寸可以是4到8字节。对于4字节高速缓存标签,相应的标签阵列的尺寸是8,388,608×4字节=32MB。这样一个大型标签阵列存储在处理单元中的芯片上SRAM中可能是不可行的。相反,该大型标签阵列可以存储在如图4所示的3D DRAM内。
图4中示出用于存取对应于存储在3D DRAM中的标签、状态信息和数据的高速缓存线的一系列步骤1-7。当存储器阵列组430用作将标签阵列和数据阵列两者存储在相同行内的高速缓存时,与行432a-432k的给定行所使用步骤1-7的顺序不同的存取顺序可以具有大的延迟。例如,DRAM存取通常包括第一启动或打开阶段、将整行内容复制到行缓冲器的阶段、标签读取阶段、标签比较阶段、包括列存取的数据读取或写入存取阶段、第一预充电或关闭阶段、第二启动或打开阶段、将整行内容再次复制到行缓冲器的阶段、标签读取阶段、标签比较阶段、对应于匹配标签的状态信息的更新阶段和第二预 充电或关闭阶段。
继续存储器阵列组430内的存取步骤,在行缓冲器的每个存取之后,如果存储在其它行中的其它数据同时被存取,那么可以包括一个或多个额外预充电和启动阶段。可以使用步骤1-7的顺序而不是使用针对单个高速缓存存取的NRAM事务将高速缓存存取转换成单个DRAM事务。每个不同DRAM操作(诸如启动/打开、列存取、读取、写入和预充电/关闭)具有不同的各自延迟。启动和预充电操作通常具有显著高于读取和写入操作的延迟。因此,用来产生单个复杂事务的步骤1-7的顺序可以减少个别启动和预充电操作的次数。
在顺序1期间,来自处理单元的存储器请求可以由3D DRAM接收。存储器请求可以具有可以通过3D集成制造过程获得的遍历水平或垂直短低延迟互连投送。完整地址的一部分被示为地址410。字段412和414可以分别存储高速缓存标签和页面索引。完整地址的其它部分可以包括通道索引、组索引、子阵列索引等中的一个或多个来识别3D DRAM内的存储器阵列组430。在顺序2期间,行432a-432k的给定行可以通过页面索引414从其它行选择。
在顺序3期间,执行启动或打开阶段来将行432a-432k的选定行的整个内容复制到行缓冲器440。在3D DRAM中或通常在DRAM中读取行432a-432k的选定行是“破坏性”操作。选定行的整个内容的复制被保持在行缓冲器440中。这个将数据从存储器阵列组430的行读取到行缓冲器中的过程被称为“启动”或“打开”。当来自不同行的数据将被存取时,行缓冲器440的内容可以被“预充电”或“关闭”,其将存储在行缓冲器440中的数据的当前值放回到存储器阵列组430中。
可以使用高速缓存标签来确定在选定行内的多个高速缓存线中的哪条线正被存取。例如,在30路集合相关高速缓存组织中,当选定行432a时,存储在字段434a-434d中的高速缓存标签值可以用来确定存储在字段438a-438d中的30条高速缓存线的哪条线正被存取。 可以在比较逻辑中使用存储在地址410内的字段412中的高速缓存标签来定位存储在行缓冲器440中的多条高速缓存线的相应高速缓存线。
在顺序4期间,当存储在字段412中的高速缓存标签值与存储在行缓冲器440中的字段444a-444d中的一个中的高速缓存标签匹配且存储在字段446中的相应高速缓存线状态指示相应高速缓存线是有效高速缓存线时,高速缓存线命中可能发生。在一个实施方案中,这个标签比较操作可以在单个连续突发中读取字段444a-444d中存储的高速缓存标签中的每个。在一个实例中,高速缓存标签被存储在等效于如先前描述的2条高速缓存线的空间量中。这2条具有信息的高速缓存线可以在单个操作中从行缓冲器440读取。接着,比较逻辑可以将来自字段444a-444d的读出高速缓存标签中的每个与存储在字段412中的缓存标签值进行比较。
在另一实施方案中,来自所接收的地址的一个或多个位可以为标签比较逻辑选择存储在字段444a-444d中的高速缓存标签子组。如果确定了标签匹配,接着可以继续3D DRAM存取的后续步骤。如果未确定匹配发生,那么可以为标签比较逻辑选择与存储在字段444a-444d中的高速缓存标签的第一子组不同的另一子组。这种机制可以归纳为两个以上子组。这种机制可以减少标签比较所使用的读取操作和/或总聚合突发长度和/或总线占用的总量。
在顺序5期间,基于标签比较结果选择存储在行缓冲器440中的多条高速缓存线的给定线。这个列存取是基于存储在所接收地址且存储在行缓冲器440中的信息(诸如字段444a-444d中的高速缓存标签)以及存储在字段446中的高速缓存线状态信息。选定的给定高速缓存线是基于所接收的存储器请求而读取或写入。在一个实施方案中,偏移值可以存储在所接收地址中且可以用来指示将被存取的选定高速缓存线内的特定字节或字词。读取或写入操作直接在存储在行缓冲器440中的内容上操作。
在顺序6期间,更新存储在字段446中对应于选定高速缓存线的状态信息。例如,高速缓存状态可能已经改变,LRU替换状态可能已经改变,高速缓存块所有者识别符(ID)可能已经改变,预取提示信息和分析数据两者可能已经改变等。再者,更新操作可以直接在存储在行缓冲器440中的内容上操作。在顺序7期间,执行预充电或关闭阶段来将行缓冲器440的整个内容复制回到行432a-432k的选定行中。现在修改行缓冲器440内的一些内容,诸如至少状态信息和高速缓存线的给定线。
控制逻辑,诸如图3所示的控制逻辑336可以确保顺序3-7中执行的操作作为不间断操作块而发生。例如,一旦打开操作始于顺序3,控制逻辑便可以指导正等待对存储器阵列组430内的数据进行操作的其它存储器请求继续等待直到顺序3-7已经完成为止。这单个复杂的3D DRAM存取避免了额外的高成本启动和预充电延迟。这单个复杂的3D DRAM可以将对应于单个存储器请求的存取延迟维持为单个启动延迟、单个预充电延迟、在高速缓存线上执行的单个读取/写入操作、用于更新状态信息的单个写入操作和用于标签读取和比较的延迟。
现在参考图5,示出进行有效封装内DRAM存取的方法500的一个实施方案的总体流程图。出于论述目的,本实施方案以及下文描述的方法的后续实施方案中的步骤按顺序示出。然而,在其它实施方案中,一些步骤可以不同于所示的顺序发生,一些步骤可以同时执行,一些步骤可以结合其它步骤,且一些步骤可以缺失。
在方框502中执行一个或多个计算机程序或软件应用程序。处理单元可以执行这些应用程序。前文给出了处理单元的实例。处理单元可以在系统级封装(SiP)内,系统级封装(SiP)也包括3D集成存储器,诸如3D DRAM。处理单元可以将3D DRAM用作高速缓存。
在方框504中,处理单元可以确定处理单元内的高速缓存存储器 子系统内的给定存储器请求缺失。在方框506中,处理器单元可以将对应于给定存储器请求的地址发送给封装中集成DRAM高速缓存,诸如3D DRAM。地址可以包括除从用在处理单元内的相应高速缓存地址转化的DRAM地址以外的非转化高速缓存标签以向芯片上高速缓存存取。在方框508中,3D DRAM内的控制逻辑可以识别与3DDRAM中的存储器阵列组内的地址对应的给定行。
在方框510中,3D DRAM内的控制逻辑可以启动并打开给定行。在方框512中,给定行的内容可以被复制并存储在行缓冲器中。在方框514中,行缓冲器中的标签信息可以与地址中的标签信息进行比较。方框506-512中描述的步骤可以对应于先前关于图4描述的顺序1-4。
如果标签比较确定标签命中未发生(条件方框516),那么在方框518中,可以将存储器请求发送到主存储器。主存储器可以包括片外非集成DRAM和/或片外磁盘存储器。如果标签比较确定标签命中发生(条件方框516),那么在方框520中,在行缓冲器中的相应高速缓存线上执行读取或写入操作。
在方框522中,更新为高速缓存线存储状态信息的行缓冲器中的相应元数据。在方框524中,存储在行缓冲器中的修改和未修改信息都被复制回到给定行。执行预充电和关闭阶段来移动数据。
应注意上述实施方案可以包括软件。在这样一个实施方案中,实施方法和/或机制的程序指令可以被传送或存储在计算机可读媒介上。被配置来存储程序指令的众多类型的媒介是可以获得的且包括硬盘、软盘、CD-ROM、DVD、闪速存储器、可编程ROM(PROM)、随机存取存储器(RAM)和各种其它形式的易失性或非易失性存储。一般来说,计算机可存取存储媒介可以包括使用期间可由计算机存取的任何存储媒介以提供指令和/或数据给计算机。例如,计算机可存取存储媒介可以包括存储媒介,诸如磁性或光学媒介,例如,磁盘(固 定或可移除)、磁带、CD-ROM、或DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW、或蓝光光盘(Blu-Ray)。存储媒介还可以包括易失性或非易失性存储媒介,诸如RAM(例如,同步动态RAM(SDRAM)、双倍数据速率(DDR、DDR2、DDR3等)SDRAM、低功率DDR(LPDDR2等)SDRAM、Rambus DRAM(RDRAM)、静态RAM(SRAM)等)、ROM、闪速存储器、可经由外围接口(诸如通用串行总线(USB)接口等)存取的非易失性存储器(例如,闪速存储器)。存储媒介可以包括微机电系统(MEMS),以及可经由通信媒介(诸如网络和/或无线连接)存取的存储媒介。
此外,程序指令可以包括使用高级编程语言(诸如C、或设计语言(HDL)(诸如Verilog、VHDL)、或数据库格式(诸如GDS II流格式(GDSII))的硬件功能的行为级描述或寄存器转移层级(RTL)描述。在一些情况下,描述可以由合成工具读取,所述合成工具可以合成描述以从合成库生成包括门列表的网表。网表包括一组门,其也表示包括系统的硬件的功能。网表接着可以被放置且投送以生成描述将要施加到掩模的几何形状的数据集。掩模接着可以用在各种半导体制造步骤中以制作对应于系统的一个或多个半导体电路。替代地,计算机可存取存储媒介上的指令可以根据需要是网表(具有或不具有合成库)或数据集。此外,指令可以由购自诸如和Mentor的供应商的基于硬件型仿真器用于仿真目的。
虽然已经相当详细地描述了以上实施方案,但是本领域技术人员一旦完全明白上述公开内容,便将明白众多变动和修改。旨在下列权利要求书被解译为包括所有这类变动和修改。

标签和数据共同存储在物理行中的DRAM高速缓存.pdf_第1页
第1页 / 共19页
标签和数据共同存储在物理行中的DRAM高速缓存.pdf_第2页
第2页 / 共19页
标签和数据共同存储在物理行中的DRAM高速缓存.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《标签和数据共同存储在物理行中的DRAM高速缓存.pdf》由会员分享,可在线阅读,更多相关《标签和数据共同存储在物理行中的DRAM高速缓存.pdf(19页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103959260 A (43)申请公布日 2014.07.30 CN 103959260 A (21)申请号 201280059143.9 (22)申请日 2012.11.21 13/307,776 2011.11.30 US G06F 12/08(2006.01) G06F 12/12(2006.01) G11C 7/10(2006.01) (71)申请人 超威半导体公司 地址 美国加利福尼亚州 (72)发明人 加布里埃尔H洛 马克D希尔 (74)专利代理机构 上海胜康律师事务所 31263 代理人 李献忠 (54) 发明名称 标签和数据共同存储在物理行中的 DR。

2、AM 高 速缓存 (57) 摘要 本发明公开了一种用于在计算系统的大型基 于行的存储器中进行有效高速缓存数据存取的系 统和方法。计算系统包括处理单元和集成三维 (3D)动态随机存取存储器(DRAM)。 所述处理单元 将3DDRAM用作高速缓存。 所述 3D DRAM 的存储器 阵列组中的多行中的每一行至少存储多个高速缓 存标签和由所述多个高速缓存标签指示的多条相 应高速缓存线。响应于从所述处理单元接收存储 器请求, 所述 3D DRAM 根据所述接收的存储器请 求在由所述接收的存储器请求内的高速缓存标签 指示的给定高速缓存线上执行存储器存取。可以 使用单个复杂 DRAM 事务而不是使用多个 D。

3、RAM 事 务来降低延迟和功耗。 (30)优先权数据 (85)PCT国际申请进入国家阶段日 2014.05.30 (86)PCT国际申请的申请数据 PCT/US2012/066217 2012.11.21 (87)PCT国际申请的公布数据 WO2013/081932 EN 2013.06.06 (51)Int.Cl. 权利要求书 2 页 说明书 11 页 附图 5 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书11页 附图5页 (10)申请公布号 CN 103959260 A CN 103959260 A 1/2 页 2 1. 一种动态随机存取存储器 (。

4、DRAM), 其包括 : 多个行, 其中每一行被配置来至少存储(i)多个高速缓存标签和(ii)由所述多个高速 缓存标签指示的多个高速缓存线 ; 和 控制电路, 其被配置来 : 接收存储器请求 ; 和 根据所述接收的存储器请求在由所述接收的存储器请求内的第一高速缓存标签指示 的给定高速缓存线上执行存储器存取, 其中执行所述存储器存取包括存储所述给定高速缓 存线的所述多个行的各自行的单个读取。 2.根据权利要求1所述的DRAM, 其中所述控制电路还被配置来确定所述接收的存储器 请求内的所述第一高速缓存标签与存储在所述各自行中的所述多个高速缓存标签的第二 高速缓存标签匹配。 3.根据权利要求2所述的。

5、DRAM, 其中所述多个行的每个行还被配置来存储对应于所述 多个高速缓存标签的元数据, 其中所述元数据包括下列中的至少一个 : 高速缓存替换状态、 脏位、 有效位和高速缓存一致性值。 4.根据权利要求3所述的DRAM, 其中用存储所述给定高速缓存线的所述各自行的单个 读取执行所述存储器存取包括基于所述存储器存取更新所述元数据。 5. 一种系统级封装 (SIP), 其包括 : 位于第一芯片上的处理单元, 其被配置来生成存储器请求 ; 和 位于第二芯片上的动态随机存取存储器 (DRAM), 其包括多个行, 其中所述 DRAM 被耦接 到所述第一芯片且被配置来 : 在所述多个行的相同行中至少存储多个。

6、高速缓存标签和由所述多个高速缓存标签指 示的多条高速缓存线 ; 从所述处理单元接收存储器请求 ; 和 根据所述接收的存储器请求在由所述接收的存储器请求内的第一高速缓存标签指示 的给定高速缓存线上执行存储器存取, 其中执行所述存储器存取包括存储所述给定高速缓 存线的所述多个行的各自行的单个读取。 6.根据权利要求5所述的系统, 其中所述DRAM还被配置来确定所述接收的存储器请求 内的所述第一高速缓存标签与存储在所述各自行中的所述多个高速缓存标签的第二高速 缓存标签匹配。 7. 根据权利要求 6 所述的系统, 其中所述第二高速缓存标签在所述各自行内的位置指 示所述给定高速缓存线在所述各自行内的位置。

7、。 8.根据权利要求7所述的系统, 其中所述DRAM还被配置来在所述多个行的相同行中存 储对应于所述多个高速缓存标签的元数据, 其中所述元数据包括下列中的至少一个 : 高速 缓存替换状态、 脏位、 有效位和高速缓存一致性值。 9. 根据权利要求 8 所述的系统, 其中用存储所述给定高速缓存线的所述各自行的单个 读取执行所述存储器存取包括基于所述存储器存取更新所述元数据。 10. 根据权利要求 7 所述的系统, 其中所述存储器请求包括所述第一高速缓存标签和 识别所述各自行的 DRAM 地址。 11. 根据权利要求 7 所述的系统, 其中所述 DRAM 是三维 (3D) 集成电路 (IC)。 权 。

8、利 要 求 书 CN 103959260 A 2 2/2 页 3 12. 根据权利要求 11 所述的系统, 其中所述处理单元是下列中的至少一个 : 通用微处 理器、 图形处理单元 (GPU)、 加速处理单元 (APU) 和现场可编程门阵列 (FPGA)。 13. 一种方法, 其包括 : 在动态随机存取存储器 (DRAM) 的多个行的相同行中至少存储一个或多个高速缓存标 签和由所述一个或多个高速缓存标签指示的一条或多条高速缓存线 ; 从耦接到所述 DRAM 的处理单元接收存储器请求 ; 和 根据所述接收的存储器请求在由所述接收的存储器请求内的第一高速缓存标签指示 的给定高速缓存线上执行存储器存取。

9、, 其中执行所述存储器存取包括存储所述给定高速缓 存线的各自行的单个读取。 14. 根据权利要求 13 所述的方法, 其还包括确定所述接收的存储器请求内的所述第一 高速缓存标签与存储在所述各自行中的所述一个或多个高速缓存标签的第二高速缓存标 签匹配。 15. 根据权利要求 14 所述的方法, 其中所述第二高速缓存标签在所述各自行内的位置 指示所述给定高速缓存线在所述各自行内的位置。 16. 根据权利要求 15 所述的方法, 其还包括在所述一个或多个行的相同行中存储对应 于所述多个高速缓存标签的元数据, 其中所述元数据包括下列中的至少一个 : 高速缓存替 换状态、 脏位、 有效位和高速缓存一致性。

10、值。 17. 根据权利要求 16 所述的方法, 其中用存储所述给定高速缓存线的所述各自行的单 个读取执行所述存储器存取包括基于所述存储器存取更新所述元数据。 18. 根据权利要求 15 所述的方法, 其还包括在所述存储器请求内除发送识别所述各自 行的 DRAM 地址以外还发送所述第一高速缓存标签。 19. 根据权利要求 15 所述的方法, 其中所述 DRAM 是三维 (3D) 集成电路 (IC)。 20. 根据权利要求 18 所述的方法, 其中所述处理单元是下列中的至少一个 : 通用微处 理器、 图形处理单元 (GPU)、 加速处理单元 (APU) 和现场可编程门阵列 (FPGA)。 权 利 。

11、要 求 书 CN 103959260 A 3 1/11 页 4 标签和数据共同存储在物理行中的 DRAM 高速缓存 0001 发明背景 技术领域 0002 本发明涉及计算系统, 且更特定来说涉及用于在计算系统的大型基于行的存储器 中进行有效高速缓存数据存取。 0003 相关领域的描述 0004 随着半导体制造过程推进以及晶粒上几何尺寸减小, 半导体芯片提供更多功能和 性能。然而, 现代处理技术和可能限制潜在益处的集成电路设计仍然出现设计问题。一个 问题是在二维平面布局芯片的相继代中每单位长度的互连延迟继续增加。而且, 个别芯片 之间的高电阻抗增加延迟。 此外, 由于这些较长信号路径上增加的寄生。

12、电容, 遍历片外到另 一晶粒的信号可能显著增加这些信号的功耗 ( 例如, 增加 10 到 100 倍 )。 0005 另一设计问题是存取许多数据的大多数软件应用程序通常受存储器限制, 因为计 算时间通常由存储器带宽确定。片外动态随机存取存储器 (DRAM) 的存储器存取延迟可以 是数百到超过一千个时钟周期, 且处理器设计中增加的核心数量已加重了存储器带宽问 题。近来, 已经在包括垂直和水平集成到单个电路中的两层或更多层有源电子组件的三维 集成电路 (3D IC) 中取得了进步。被称为系统级封装 (SiP) 或芯片堆叠多芯片模块 (MCM) 的 3D 封装通过将单独芯片堆叠成单个封装而节约空间。。

13、这些层内的组件使用芯片上信号 发送进行通信 ( 无论是垂直的或水平的 )。这种信号发送经由已知的二维平面布局电路提 供减小的互连信号延迟。 0006 上文描述中的制造趋势可以导致微处理器封装内的千兆字节集成存储器。 在一些 情况下, 额外的芯片上存储器件可以用作基于行的存储器, 诸如在存取片外存储器之前用 作最后一级高速缓存 (LLC)。通过额外存储器实现的降低缺失率有助于隐藏处理器与其片 外存储器之间的延迟间隙。 然而, 对于这种额外的集成存储器来说, 基于行的存储器的高速 缓存存取机制可能是低效的。将大型标签数据阵列 ( 诸如多千兆字节高速缓存的数百兆字 节 ) 放置在微处理器晶粒上可能是。

14、不切实际且昂贵的。 0007 增大额外集成存储器的数据高速缓存线的尺寸, 诸如从64字节线增加到4千字节 (KB)线, 减少集成存储器中的高速缓存线的数量和相应标签的尺寸。 然而, 脏位和一致性信 息仍可以维持在原始高速缓存线 (64 字节线 ) 尺寸的粒度。此外, 数据转移可能消耗过多 带宽, 因为当仅将一些字节作为目标时, 可以对整个 4KB 线进行存取。 0008 使用DRAM存取机制, 同时存储并存取集成DRAM中的额外高速缓存的标签和数据, 消散许多功率。此外, 这些机制消耗许多带宽, 尤其是高度相关封装上高速缓存, 且消耗太 多时间, 因为标签和数据是以顺序方式读出。因此, 封装上。

15、 DRAM 提供许多额外数据存储, 而 高速缓存和 DRAM 存取机制效率低下。 0009 鉴于上述内容, 需要用于在计算系统的大型基于行的存储器中进行有效高速缓存 数据存取的有效方法和系统。 说 明 书 CN 103959260 A 4 2/11 页 5 发明概要 0010 设想用于在计算系统的大型基于行的存储器中进行有效高速缓存数据存取的系 统和方法。 0011 在一个实施方案中, 计算系统包括处理单元和集成动态随机存取存储器 (DRAM)。 处理单元的实例包括通用微处理器、 图形处理单元 (GPU)、 加速处理单元 (APU) 等。集成 DRAM 可以是三维 (3D)DRAM 且可以包括。

16、在具有处理单元的系统级封装 (SiP) 中。处理单元 可以将 3D DRAM 用作高速缓存。 0012 在各个实施方案中, 3D DRAM 可以存储标签阵列和数据阵列两者。3D DRAM 的存 储器阵列组中的多个行中的每个行可以存储一个或多个高速缓存标签和由所述一个或多 个高速缓存标签指示的一个或多个相应高速缓存线。响应于从处理单元接收存储器请求, 3DDRAM 可以根据所述接收的存储器请求在由所述接收的存储器请求内的缓存标签指示的 给定高速缓存线上执行存储器存取。 执行存储器存取可以包括存储给定高速缓存线的多个 行的各自行的单个读取。可以使用单个复杂 DRAM 事务而不是使用多个 DRAM 。

17、事务来降低延 迟和功耗。 0013 在参考下列描述和附图后, 将进一步明白这些和其它实施方案。 0014 附图简述 0015 图 1 是计算系统的一个实施方案的总体框图。 0016 图 2 是系统级封装 (SiP) 的实施方案的总体框图。 0017 图 3 是计算系统的另一实施方案的总体框图。 0018 图 4 是用来存取高速缓存存储配置的顺序步骤的一个实施方案的总体框图。 0019 图 5 是用于进行有效封装中 DRAM 存取的方法的一个实施方案的总体流程图。 0020 尽管本发明可以具有各种修改和替代形式, 但是在附图中通过举例的方式示出具 体实施方案, 且在本文进行详细描述。然而, 应理。

18、解, 附图和其详细描述不旨在将本发明限 于所公开的特定形式, 而是相反地, 本发明涵盖落在如随附权利要求所定义的本发明的精 神和范畴内的所有修改、 等效物和替代形式。 具体实施方式 0021 在下列描述中, 阐述大量具体细节来提供对本发明的透彻理解。 然而, 本领域的普 通技术人员应认识到本发明可以在不具有这些具体细节的情况下实行。在一些实例中, 尚 未详细示出众所周知的电路、 结构和技术来避免混淆本发明。 0022 参考图 1, 示出计算系统 100 的一个实施方案的总体框图。如所示, 微处理器 110 可以包括连接到对应的一个或多个高速缓存存储器子系统 124a-124b 的一个或多个处理。

19、 器核心 122a-122b。微处理器还可以包括接口逻辑 140、 存储器控制器 130、 系统通信逻辑 126 和共享缓存存储器子系统 128。在一个实施方案中, 微处理器 110 的所示功能被合并在 单个集成电路上。在另一实施方案中, 所示功能被合并在计算机主板上的芯片组中。 0023 在一个实施方案中, 微处理器 110 是移动计算机、 智能电话、 或平板计算机 ; 台式 计算机 ; 服务器 ; 或其它内的独立系统。 在一个实施方案中, 系统通信逻辑116是系统总线。 在另一实施方案中, 微处理器110合并逻辑126中的系统总线控制器, 所述系统总线控制器 利用各种协议中的一个将处理器核。

20、心 122a-122b 连接到磁盘存储器 162、 DRAM170、 外围输 说 明 书 CN 103959260 A 5 3/11 页 6 入 / 输出 (I/O) 装置、 其它处理单元 ( 诸如另一通用微处理器, 其也可以称为中央处理单元 (CPU)、 图形处理单元(GPU)、 加速处理单元(APU)、 现场可编程门阵列(FPGA)、 或其它)。 在 这样一个实施方案中, 系统通信逻辑126可以替换或合并存储器控制器130和接口逻辑140 的功能。 0024 简单提供计算系统 100 中的组件的进一步描述。虽然计算系统 100 在一个实施方 案中被示为包括通用微处理器 110, 但是在用于。

21、其它目的的其它实施方案中, 微处理器 110 可以用另一类型的处理器单元替换。 其它类型的处理单元可以包括图形处理单元(GPU)、 现 场可编程门阵列 (FPGA) 或加速处理单元 (APU)。一般来说, APU 是包括额外处理能力的芯 片。这种额外处理能力可以用来加速通用 CPU 外部的一种或多种类型的计算。在一个实施 方案中, APU可以包括与GPU、 FPGA或其它处理单元集成在相同晶粒上的通用CPU, 因此改进 这些单元之间的数据转移速率, 同时降低功耗。在其它实施方案中, APU 可以包括视频处理 和其它专用加速器。 0025 无论在计算系统 100 中使用的给定类型的处理单元为何,。

22、 由于软件应用程序存取 越来越多的数据, 存储器子系统使用越来越缓慢。延迟变得更加重要。可以使用更多的芯 片上存储器存储来降低互连延迟。例如, 高速缓存存储器子系统 124a-124b 中的每个可以 针对处理器核心 122a-122b 的各自一个降低存储器延迟。此外, 微处理器 110 可以包括共 享的高速缓存子系统 128 而在向片外 DRAM170 和 / 或片外磁盘存储器 162 存取之前作为最 后一级高速缓存 (LLC)。 0026 通过由高速缓存存储器子系统124a-124b和128提供的额外存储器实现的降低缺 失率有助于隐藏处理器核心 122a-122b 的给定芯与片外存储器之间的。

23、延迟间隙。然而, 高 速缓存存储器子系统124a-124b和128中的每个使用的实际面积有限。 因此, 限制高速缓存 存储器子系统 124a-124b 和 128 中的每个的各自大小且仍将大量存取发送给片外存储器, 诸如 DRAM170 和 / 或磁盘存储器 162。 0027 继续尝试降低存储器延迟, 可以使用其它技术来提供其它芯片上存储器存储。虽 然图 1 中未示出, 但是在一个实施方案中, 微处理器 110 可以使用三维集成电路 (3D IC) 来 提供最后一级高速缓存 (LLC)。随后在图 2 和图 3 的描述中提供计算系统的这样一个实施 方案的其它细节。3D 集成 DRAM 可以提供。

24、低延迟互连和明显大量额外芯片上存储器存储两 者来减少片外存储器存取。 微处理器110内的接口逻辑可以为3D集成DRAM提供地址转化。 3D 集成 DRAM 内的控制逻辑可以变更 3D 集成 DRAM 内的多个存储器阵列组中的多个行的给 定行的存取所使用的典型步骤。在进一步描述使用 3D IC 的实施方案之前, 提供图 1 所示 的计算系统 100 中的组件的进一步描述。 0028 处理器核心 122a-122b 中的每个可以包括用于根据给定的指令集执行指令的电 路。例如, 可以选择 x86 指令集架构 (ISA)。替代地, 可以选择 Alpha、 PowerPC 或任何其它 指令集架构。在一个。

25、实施方案中, 处理器核心 122a-122b 中的每个可以包括用于处理给定 ISA 的指令的超标量、 多线程微架构。 0029 高速缓存存储器子系统124a-124b和128可以包括被配置来存储数据块的高速缓 存存储器。如本文所使用,“块” 是存储在连续存储器位置中的一组字节, 其被视为用于一致 性目的的单位。如本文所使用, 术语 “高速缓存块” 、“块” 、“缓存线” 和 “线” 中的每个可互 换。在一些实施方案中, 块也可以是高速缓存中的分配和重新分配的单位。块中字节数可 说 明 书 CN 103959260 A 6 4/11 页 7 以根据设计选择而发生变化, 且可以具有任何尺寸。 此外。

26、, 术语 “高速缓存标签” 、“高速缓存 线标签” 和 “缓存块标签” 中的每个可互换。 0030 高速缓存存储器子系统124a-124b和128中的每个可以包括高速缓存存储器或高 速缓存阵列, 其连接到相应的缓存控制器。高速缓存存储器子系统 124a-124b 和 128 可以 实施为高速缓存阶层。位于处理器核心 122a-122b 附近的高速缓存 ( 阶层内 ) 可以根据需 要集成到处理器核心 122a-122b 中。这个高速缓存层级可以是多级阶层的一级 (L1)。在一 个实施方案中, 高速缓存存储器子系统124a-124b每个表示L2高速缓存结构且共享的高速 缓存存储器子系统 128 表。

27、示 L3 高速缓存结构。在另一实施方案中, 高速缓存存储器子系统 114 每个表示 L1 高速缓存结构, 且共享的高速缓存子系统 118 表示 L2 高速缓存结构。其它 实施方案是可行的且被设想。 0031 一般来说, 处理器核心 122a-122b 分别向高速缓存存储器子系统 124a-124b 存取 以获得数据和指令。如本文所使用, 有关高速缓存存储器子系统的术语 “存取” 指执行如果 相应的请求地址的请求数据驻留在高速缓存中则可能导致高速缓存命中的读取或写入请 求操作。 替代地, 如果所请求数据未驻留在高速缓存中, 那么读取或写入操作可以导致高速 缓存缺失。 0032 如果高速缓存缺失发。

28、生, 诸如在高速缓存存储器子系统 124a-124b 的各自子系统 中或在共享的高速缓存存储器子系统 128 中未发现请求块, 那么读取请求可以生成且被传 输到存储器控制器 130。存储器控制器 130 可以转化对应于请求块的地址且通过存储器总 线 150 将读取请求发送到片外 DRAM170。片外 DRAM170 可以通过 I/O 控制器和总线 160 以 及存储器总线 150 填充来自片外磁盘存储器 162 的数据。 0033 具有请求块的相应高速缓存填充线可以从片外 DRAM170 传送到高速缓存存储器 子系统 124a-124b 的相应一个, 以便完成原始的读取或写入请求。高速缓存填充。

29、线可以放 置在一个或多个高速缓存层级中。此外, 高速缓存填充线可以放置在高速缓存内的相应集 合内。如果在相应集合内没有可用方式, 那么通常最近最少使用 (LRU) 算法确定集合内的 哪种方式将其数据逐出并由高速缓存填充线数据替换。通常, 分配指以特定高速缓存方式 ( 继特定高速缓存之后发生高速缓存缺失 ) 存储从高速缓存阶层的较低层级取得的高速缓 存填充线。 0034 片外磁盘存储器 162 可以提供非易失性随机存取二次数据存储。在一个实施方案 中, 片外磁盘存储器 162 可以包括一个或多个硬盘驱动器 (HDD)。HDD 通常包括一个或多个 旋转磁盘, 每个涂覆有磁媒介。这些磁盘以每分钟数千。

30、转的速率旋转。磁致动器负责将磁 读取 / 写入装置定位在旋转磁盘上。 0035 在另一实施方案中, 片外磁盘存储器162使用固态磁盘(SSD)。 固态磁盘也可以称 为固态驱动器。SSD 可以模仿 HDD 接口, 但是 SSD 使用固态存储器而非使用 HDD 中所见的机 电装置来存储持久性数据。例如, SSD 可以包括闪速存储器组。 0036 片外 DRAM170 可以是将每位数据存储在集成电路内的独立电容器中的动态随机 存取存储器类型。电容器可以充电或放电。可以使用这两种状态来表示位的两个逻辑值。 DRAM170 的每一位可以使用单个晶体管和一个电容器。与芯片上同步 RAM(SRAM) 中所用。

31、的 六个晶体管相比, DRAM 可以达到更高密度。不同于 HDD 和闪速存储器, DRAM170 可以是易失 性存储器, 而非非易失性存储器。当电力移除时, DRAM170 可能快速丢失其数据。 说 明 书 CN 103959260 A 7 5/11 页 8 0037 片外 DRAM170 可以包括多通道存储器架构。这种类型的架构可以通过在片外 DRAM170 与存储器控制器 130 之间添加更多的通信通道而提高数据到存储器控制器 130 的 转移速度。多通道架构使用多个存储器模块和能够支持多通道的主板和 / 或卡。 0038 在一个实施方案中, 存储器模块中的每个可以各自具有针对存储器控制器。

32、 130 的 各自接口的相同协议。协议的一个实例是协议的双倍数据速率 (DDR) 类型。协议可以确定 信息转移所用的值, 诸如每个时钟周期的数据量、 信号电压电平、 信号定时、 信号和时钟相 位以及时钟频率。协议实例包括 DDR2SDRAM、 DDR3SDRAM、 GDDR4( 图形双倍数据速率, 版本 4)SDRAM 和 GDDR5( 图形双倍数据速率, 版本 5)SDRAM。存储器控制器 130 可以包括用于与 存储器通道建立连接并遵循相应协议的控制电路。此外, 存储器控制器 130 可以包括用于 对存储器请求进行排队的请求队列。 0039 现在参考图 2, 示出系统级封装 (SiP)20。

33、0 和 240 的实施方案的总体框图。可以在 计算系统内使用三维 (3D) 封装。这种类型的封装可以称为系统级封装 (SiP)。SiP 包括一 个或多个三维集成电路 (3D IC)。3D IC 包括垂直和 / 或水平集成到单个电路中的两层或 更多层有源电子组件。在一个实施方案中, 可以使用基于内插器的集成, 其中 3D IC 可以放 置为与处理单元 220 紧邻。替代地, 3D IC 可以直接堆叠在另一 IC 顶部。 0040 晶粒堆叠技术是实现将多个单独硅(集成芯片)块一起物理堆叠在具有高带宽和 低延迟互连的相同封装中的制造过程。 晶粒可以并排堆叠在硅内插器上或直接彼此垂直堆 叠在顶部。 S。

34、iP的一个配置是将一个或多个DRAM芯片与处理单元紧邻堆叠和/或堆叠在处 理单元的顶部上。通过堆叠 DRAM 芯片, 处理器单元可以实现系统的极大高速缓存。在一个 实施方案中, 这种大高速缓存的尺寸可以是数百 MB( 或更多 ) 等级。 0041 如所示, 在一个实施方案中, SiP200 可以包括处理单元 220 和通过水平低延迟互 连 210 与处理单元 220 通信的一个或多个三维 (3D)DRAM230 和 232。再者, 处理单元 220 可 以是通用 CPU, 其也可以称为微处理器 ; 图形处理单元 (GPU) ; 加速处理单元 (APU) ; 现场可 编程门阵列 (FPGA) 或。

35、利用基于行的存储器的其它数据处理装置, 诸如高速缓存。 0042 封装内水平低延迟互连 210 提供长度减小的互连信号对未使用 SiP 时长片外互 连。封装内水平低延迟互连 210 可以使用特定信号和协议, 如同在电路板上的独立封装中 安装芯片 ( 诸如处理单元 220 以及 3D DRAM230 和 232) 一样。SiP200 还可以包括到达封装 外部连接 214 的背部通孔或硅块穿孔 212。封装外部连接 214 可用于输入 / 输出 (I/O) 信 号和功率信号。 0043 在另一实施方案中, SiP240 包括直接堆叠在处理单元 220 顶部上的 3D DRAM250。 虽然未示出,。

36、 但是对于 SiP200 和 SiP240 中的每个, 多个芯片或装置层可以彼此堆叠在顶 部, 其中直接垂直互连 216 穿过其中。可以在不同装置层之间穿过的垂直互连 216 的尺寸 和密度是基于用来制造 3D IC 的基础技术改变。 0044 现在参考图 3, 示出使用三维 (3D)DRAM 的计算系统 300 的一个实施方案的总体框 图。先前描述的电路和逻辑编号相同。计算系统 300 可以使用三维 (3D) 封装, 诸如先前描 述的系统级封装 (SiP)。计算系统 300 可以包括 SiP310。在一个实施方案中, SiP310 可以 包括先前描述的处理单元220和通过低延迟互连340通信。

37、的3D DRAM330。 封装中低延迟互 连 340 可以是水平的和 / 或垂直的, 其长度短于未使用 SiP 时的长片外互连。 0045 虽然 SiP310 的一个实施方案被示为使用 DRAM 存储器技术, 但是使用基于行的存 说 明 书 CN 103959260 A 8 6/11 页 9 取方案的其它存储技术 ( 包括一个或多个行缓冲器或其它等效结构 ) 是可行的且被设想。 其它存储器技术的实例包括相变存储器、 自旋扭矩转移电阻式存储器、 记忆电阻器等。 0046 处理单元 220 可以包括用于执行计算和由软件应用程序描述的算法工作的执行 引擎 322。在一个实施方案中, 执行引擎 322。

38、 可以包括通用 CPU 的一个或多个处理器核心。 在另一实施方案中, 执行引擎322可以包括着色器、 其它图形处理块和GPU的单指示多数据 (SIMD) 管线来执行至少进行图形渲染的数据中心操作和 3D 图形应用程序。根据给定算法 进行数据处理的电路的其它实例是可行的且被设想。 0047 处理单元 220 可以与封装外存储器通信, 诸如通过存储器控制器 326、 存储器总线 150和I/O控制器和总线160与磁盘存储器162通信。 如所示, 在一个实施方案中, 计算系统 300可以不包括封装外DRAM170, 其包括在先前描述的计算系统100中。 封装上3D DRAM330 可以提供极大的封装。

39、上存储器存储, 其减少封装外存储器存取量且隐藏长存储器延迟。在 另一实施方案中, 计算系统 300 仍可以包括封装外 DRAM170。 0048 处理单元 220 可以包括到 I/O 装置和其它处理单元的接口逻辑。为方便阐明, 没 有示出这个接口逻辑。处理单元 220 也可以包括用于与 3D DRAM330 通信的接口逻辑 324。 在这通信中使用的协议、 地址格式和接口信号可以类似于封装外 DRAM170 所使用的协议、 地址格式和接口信号。然而, 当 3D DRAM330 用作最后一级高速缓存 (LLC) 时, 可以对这通 信进行调整。例如, 从处理单元 220 发送到 3D DRAM33。

40、0 的存储器请求可以包括除识别存储 器阵列组 332a-332b 中的一个内的各自行的 DRAM 地址以外的高速缓存标签。所接收的高 速缓存标签可用来比较存储在 3D DRAM330 内所识别给定行中的高速缓存标签。 0049 类似于其它 DRAM 拓扑结构, 3D DRAM330 可以包括多个存储器阵列组 332a-332b。 组 332a-332b 中的每一组可以包括行缓冲器 334a-334b 的各自一个。行缓冲器 334a-334b 中的每一个可以将数据存储在存储器阵列组 332a-332b 内的多个行的存取行中。所存取行 可以由所接收的存储器请求中的 DRAM 地址识别。控制逻辑 3。

41、36 可以在所接收的存储器请 求中的高速缓存标签与存储在行缓冲器中的一个或多个高速缓存标签之间执行标签比较。 此外, 控制逻辑可以通过使用高速缓存标签比较结果而非所接收的 DRAM 地址内的位字段 而变更行缓冲器的列存取。 0050 控制逻辑 336 可以更新存储在行缓冲器内的元数据。元数据可以至少包括最近最 少使用 (LRU) 值、 脏位和高速缓存一致性值。控制逻辑 336 可以使所识别行和行缓冲器的 存取同步以将多个 DRAM 事务改变成单个复杂事务。这单个复杂事务可以执行 3D DRAM330 内的数据和控制线的启动和预充电一次来存取识别行且执行一次来将存储在行缓冲器内 的修改内容放回到。

42、所识别行。下文作出进一步描述。 0051 现在参考图 4, 示出图示用来存取高速缓存存储配置 400 的顺序步骤的一个实施 方案的总体框图。 可以用各种方式将数据存储在3D DRAM内。 例如, 给定存储器阵列组内的 每一行可以使用集合相关高速缓存组织存储数据。所存储的数据可以划分成高速缓存线。 每一行也可以存储与相同行内的高速缓存线对应的高速缓存标签。此外, 每一行可以存储 与给定高速缓存线对应的元数据, 诸如替换状态、 高速缓存一致性状态、 脏位等。 0052 虽然高速缓存存储配置400的一个实施方案被描述为使用DRAM存储器技术, 但是 使用基于行的存取方案的其它存储器技术(包括一个或多。

43、个行缓冲器或其它等效结构)是 可行的且被设想。 其它存储器技术的实例包括相变存储器、 自旋扭矩转移电阻式存储器、 记 说 明 书 CN 103959260 A 9 7/11 页 10 忆电阻器等。 0053 图 4 示出 3D DRAM 内的一个或多个存储器阵列组中的给定组。存储器阵列组 430 可以包括多个行 432a-432k。行 432a-432k 中每一行可以存储用于 N 路集合相关高速缓存 组织的高速缓存标签和高速缓存线, 其中 N 是大于 1 的整数。可以选择不同数量的路, 诸如 8 路、 16 路、 32 路或其它。例如, 行 432a 将高速缓存标签存储在字段 434a-434。

44、d 中。行 432a 可将相应高速缓存线的数据部分存储在字段 438a-438d 中。因此, 存储器阵列组 430 将高 速缓存组织的标签阵列和数据阵列组合成单个物理结构。每一行的部分, 诸如行 432a 中的 字段4343a-434d, 用来保存对应于存储在剩余行(诸如字段438a-438d)中的数据元素的标 签条目。 0054 存储器阵列组 430 的行 432a-432k 中的标签存储可以是 3D DRAM 的总尺寸的固定 部分。在一个实施方案中, 高速缓存线或高速缓存块的数据部分存储 64 字节数据。其它尺 寸是可行的且被设想。然而, 高速缓存线的尺寸可能因存储器阵列组 430 中使用。

45、的高速缓 存存储配置400而不会发生变化。 高速缓存存储配置400和顺序步骤可以允许具有3D DRAM 的总体尺寸的标签存储标量, 同时允许高速缓存线尺寸保持相同, 诸如 64 字节大小。处理 单元内的标签存储可以不使用芯片上 SRAM 存储。 0055 在一个实施方案中, 存储器阵列组 430 使用 30 路集合相关高速缓存组织。行 432a-432k 中的每一行可以具有足够空间来存储 32 路, 但是可以使用所述路中的 2 路来存 储相应的高速缓存标签信息。在一个实例中, 高速缓存线是 64 字节且高速缓存标签是 4 字 节。在本实例中, 2 条高速缓存线提供 2 条线 64 字节 128。

46、 字节存储。在本实例中, 标签 存储被放置在通常由两条高速缓存线占用的空间中。对于 30 条高速缓存线, 标签存储使用 30 路 4 字节 120 字节。可以使用额外 8 字节来存储额外元数据 ( 诸如额外信息 ) 来改 进替换决策、 预取提示、 分析数据、 脏位、 高速缓存一致性状态等。 0056 行 432a-432k 中的每一行可以存储与所存储的高速缓存线对应的元数据。例如, 行 432a 将状态元数据存储在字段 436a 中。所存储的元数据可以至少包括每个相应的高速 缓存线的以下至少一个或多个 : 有效位、 指示拥有相应高速缓存块的源的高速缓存块所有 者编码、 结合高速缓存控制器采用的。

47、高速缓存替换算法使用的最近最少使用 (LRU) 逐出信 息、 指明诸如被修改、 排除、 拥有、 共享、 无效或其它的高速缓存一致性状态的指示 ; 脏位、 预 取提示信息、 分析数据等。其它类型的状态信息是可行的且被设想。 0057 继续存储器阵列组 430 的行中所存储的信息, 行 432k 可以以类似于行 432a 的格 式存储信息。例如, 行 432k 可以将标签存储在字段 434m-434q 中, 将状态元数据存储在字 段 436k 中, 且将相应高速缓存线的数据部分存储在字段 438m-438q 中。应注意, 虽然存储 在行 432a-432k 中的信息以特定顺序且以连续空间示出, 但。

48、是数据存储的其它放置无论是 否连续都是可行的且被设想。可以基于设计折衷选择特定存储配置。 0058 行缓冲器 440 可以存储从行 432a-432k 中的选定行读出的数据和元数据。行 缓冲器 440 可以将类似存储配置用作行 432a-432k。例如, 行缓冲器 440 可以针对字段 444a-444d 中的集合相关高速缓存组织的 N 路存储高速缓存标签信息。行缓冲器 440 可以 将相应高速缓存线的数据部分存储在字段 448a-448d 中。行缓冲器 440 可以将状态信息 ( 诸如相应的状态元数据 ) 存储在字段 446 中。 0059 在一个实例中, 高速缓存线是 64 字节, 高速缓。

49、存标签是 4 字节, 且存储器阵列组 说 明 书 CN 103959260 A 10 8/11 页 11 430 使用 30 路集合相关高速缓存组织。行 432a-432k 中的每一行可以使用 2 路进行标签 存储且使用 30 路进行数据存储。2 路也可以包括元数据存储。因此, 行 432a-432k 中的每 一行包括 32 路 64 字节 / 路 2,048 字节或 2 千字节 (KB) 存储。类似地, 行缓冲器 440 包括 2KB 存储。行 432a-432k 中的每一行可以使用 DRAM 存储器技术来进行信息存储。然 而, 行缓冲器 440 可以使用寄存器、 SRAM 单元或其它存储机制。因此, 对行缓冲器 440 重复 存取可以比对行 432a-432k 中的任何一行重复存取更高效。 0060 3D DRAM 可以存储相应处理单元的极大封装内存储器存储。这大型存储器存储可 以用作最后一级高速缓存。在一个实施方案中, 高速缓存线或高速缓存块的数据部分存储 64字节数据。 其它尺寸是可行的且被设想。 3D DRAM的尺。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1