使用标签目录高速缓冲存储器提供可扩展动态随机存取存储器(DRAM)高速缓冲存储器管理的制作方法

文档序号:15285817发布日期:2018-08-29 00:04阅读:187来源:国知局

本申请案要求2016年1月21日递交且标题为“使用标签目录高速缓冲存储器提供可扩展动态随机存取存储器(dram)高速缓冲存储器管理(providingscalabledynamicrandomaccessmemory(dram)cachemanagementusingtagdirectorycaches)”的第62/281,234号美国临时专利申请案的优先权,所述美国临时专利申请案的内容以全文引用的方式并入本文中。

本申请案还要求2016年6月24日递交且标题为“使用标签目录高速缓冲存储器提供可扩展动态随机存取存储器(dram)高速缓冲存储器管理(providingscalabledynamicrandomaccessmemory(dram)cachemanagementusingtagdirectorycaches)”的第15/192,019号美国专利申请案的优先权,所述美国专利申请案的内容以全文引用的方式并入本文中。

本公开的技术大体上涉及动态随机存取存储器(dram)管理,且具体来说,涉及dram高速缓冲存储器的管理。



背景技术:

由垂直互连的多个堆叠裸片组成的裸片堆叠集成电路(ic)的出现实现了裸片堆叠动态随机存取存储器(dram)的产生。裸片堆叠dram可用于实施在本文中被称作“高带宽存储器”的存储器,其提供比常规系统存储器dram更大的带宽,同时提供类似的存取时延。高带宽存储器可用于实施dram高速缓冲存储器以存储先前从系统存储器dram读取且从较高等级系统高速缓冲存储器(例如,作为非限制性实例,3级(l3)高速缓冲存储器)中收回的频繁存取的数据。在高带宽存储器中提供dram高速缓冲存储器可以减少系统存储器dram上的内存争用,并因此实际上增加了整体存储器带宽。

然而,对高带宽存储器中dram高速缓冲存储器的管理可能带来挑战。dram高速缓冲存储器可能比系统存储器dram在大小上小几个数量级。因此,由于dram高速缓冲存储器只能在系统存储器dram中存储数据的子集,因此dram高速缓冲存储器的有效使用取决于要存储的存储器地址的智能选择。因此,dram高速缓冲存储器管理机制应能够确定哪些存储器地址将被选择性地安置在dram高速缓冲存储器中,且还应能够确定存储器地址何时应安置在dram高速缓冲存储器中和/或从dram高速缓冲存储器中收回。dram高速缓冲存储器管理机制可能还需要最小化对dram高速缓冲存储器的存取时延的影响且相对于dram高速缓冲存储器大小和/或系统存储器dram大小可缩放。

dram高速缓冲存储器管理的一些做法利用高速缓冲存储器来存储对应于高速缓存的存储器地址的标签。在此做法下,标签高速缓冲存储器存储在与高带宽存储器分开的计算裸片上的静态随机存取存储器(sram)中。然而,此做法可能不足以扩展dram高速缓冲存储器大小,这是因为较大dram高速缓冲存储器大小可能需要sram中不被需要和/或过大而无法存储在sram中的大型标签高速缓冲存储器。另一做法涉及减少使用的sram的量,且使用命中/未命中预测器来确定给定存储器地址是否存储在dram高速缓冲存储器内。虽然后一种做法最小化sram的使用,但任何不正确的预测都会导致从系统存储器dram读取数据。对系统存储器dram的读取会产生额外的存取时延,这可能会抵消使用dram高速缓冲存储器所带来的任何性能改进。还有其它做法可能需要存储在系统存储器dram中的非常大的数据结构,以便跟踪高速缓存的数据。

因此,需要提供可扩展dram高速缓冲存储器管理来改进存储器带宽,同时最小化时延代价和系统存储器dram消耗。



技术实现要素:

详细描述中所公开的方面包含提供使用标签目录高速缓冲存储器的可扩展动态随机存取存储器(dram)高速缓冲存储器管理。在一些方面中,提供dram高速缓冲存储器管理电路以管理对位于高带宽存储器中的dram高速缓冲存储器的存取。dram高速缓冲存储器管理电路包括标签目录高速缓冲存储器和用于标签目录高速缓冲存储器的相关联的标签目录高速缓冲存储器目录。标签目录高速缓冲存储器供dram高速缓冲存储器管理电路使用以高速缓存标签(例如,基于高速缓存的存储器地址产生的标签),所述标签存储于高带宽存储器的dram高速缓冲存储器中。标签目录高速缓冲存储器目录为dram高速缓冲存储器管理电路提供存储于标签目录高速缓冲存储器内的标签列表。存储于标签目录高速缓冲存储器和标签目录高速缓冲存储器目录中的标签使得dram高速缓冲存储器管理电路能够确定对应于请求的存储器地址的标签是否高速缓存在高带宽存储器的dram高速缓冲存储器中。基于标签目录高速缓冲存储器和标签目录高速缓冲存储器目录,dram高速缓冲存储器管理电路可存取dram高速缓冲存储器以确定是否可使用dram高速缓冲存储器和/或使用系统存储器dram执行存储器操作。dram高速缓冲存储器管理电路的一些方面可进一步提供负载均衡电路。在其中从dram高速缓冲存储器或系统存储器dram读取数据的情况下,dram高速缓冲存储器管理电路可使用负载均衡电路来选择从中读取数据的适当源。

dram高速缓冲存储器管理电路的其它方面可经配置以按直写模式或回写模式操作。在后一方面中,标签目录高速缓冲存储器目录可进一步为存储于标签目录高速缓冲存储器中的每一高速缓存线提供脏位。一些方面可通过仅当标签目录高速缓冲存储器目录经配置以追踪脏位时才允许dram高速缓冲存储器中的脏数据在回写模式中来最小化存储器读存取的时延代价。因此可允许在标签目录高速缓冲存储器上未命中的存储器读取存取达到系统存储器dram,这是因为如果对应的高速缓存线在dram高速缓冲存储器中,那么其与系统存储器dram中的数据一致。在一些方面中,标签目录高速缓冲存储器和标签目录高速缓冲存储器目录可基于概率性确定由dram高速缓冲存储器管理电路补充。

在另一方面中,提供dram高速缓冲存储器管理电路。dram高速缓冲存储器管理电路以通信方式耦合到为高带宽存储器的部分的dram高速缓冲存储器,且进一步以通信方式耦合到系统存储器dram。dram高速缓冲存储器管理电路包括标签目录高速缓冲存储器,其经配置以高速缓存dram高速缓冲存储器的标签目录的多个标签。dram高速缓冲存储器管理电路还包括标签目录高速缓冲存储器目录,其经配置以存储标签目录高速缓冲存储器的多个标签。dram高速缓冲存储器管理电路经配置以接收包括读取地址的存储器读取请求,且确定是否在标签目录高速缓冲存储器目录中发现读取地址。dram高速缓冲存储器管理电路经进一步配置以响应于确定未在标签目录高速缓冲存储器目录中发现读取地址而读取系统存储器dram中读取地址处的数据。dram高速缓冲存储器管理电路还经配置以响应于确定在标签目录高速缓冲存储器目录中发现读取地址而基于标签目录高速缓冲存储器确定是否在dram高速缓冲存储器中发现读取地址。dram高速缓冲存储器管理电路经进一步配置以响应于确定未在dram高速缓冲存储器中发现读取地址而读取系统存储器dram中读取地址处的数据。dram高速缓冲存储器管理电路经进一步配置以响应于确定在dram高速缓冲存储器中发现读取地址,从dram高速缓冲存储器读取针对读取地址的数据。

在另一方面中,提供用于提供可扩展dram高速缓冲存储器管理的方法。方法包括由dram高速缓冲存储器管理电路接收包括读取地址的存储器读取请求。方法进一步包括确定是否在dram高速缓冲存储器管理电路的标签目录高速缓冲存储器的标签目录高速缓冲存储器目录中发现读取地址。方法还包括响应于确定未在标签目录高速缓冲存储器目录中发现读取地址而读取系统存储器dram中读取地址处的数据。方法额外包括响应于确定在标签目录高速缓冲存储器目录中发现读取地址,从而基于标签目录高速缓冲存储器确定是否在为高带宽存储器的部分的dram高速缓冲存储器中发现读取地址。方法进一步包括响应于确定未在dram高速缓冲存储器中发现读取地址而读取系统存储器dram中的读取地址处的数据。方法还包括响应于确定在dram高速缓冲存储器中发现读取地址,从dram高速缓冲存储器读取针对读取地址的数据。

在另一方面中,提供dram高速缓冲存储器管理电路。dram高速缓冲存储器管理电路包括用于接收包括读取地址的存储器读取请求的装置。dram高速缓冲存储器管理电路进一步包括用于确定是否在dram高速缓冲存储器管理电路的标签目录高速缓冲存储器的标签目录高速缓冲存储器目录中发现读取地址的装置。dram高速缓冲存储器管理电路还包括用于响应于确定未在标签目录高速缓冲存储器目录中发现读取地址而读取系统存储器dram中读取地址处的数据的装置。dram高速缓冲存储器管理电路额外包括用于响应于确定在标签目录高速缓冲存储器目录中发现读取地址而基于标签目录高速缓冲存储器确定是否在为高带宽存储器的部分的dram高速缓冲存储器中发现读取地址的装置。dram高速缓冲存储器管理电路进一步包括用于响应于确定未在dram高速缓冲存储器中发现读取地址而读取系统存储器dram中读取地址处的数据的装置。dram高速缓冲存储器管理电路还包括用于响应于确定在dram高速缓冲存储器中发现读取地址而从dram高速缓冲存储器读取针对读取地址的数据的装置。

附图说明

图1是示范性基于处理器的系统的框图,所述基于处理器的系统包含提供动态随机存取存储器(dram)高速缓冲存储器的高带宽存储器和用于提供使用标签目录高速缓冲存储器和标签目录高速缓冲存储器目录的可扩展dram高速缓冲存储器管理的dram高速缓冲存储器管理电路;

图2a到2b是说明可由图1的dram高速缓冲存储器管理电路管理的dram高速缓冲存储器的示范性实施的比较的框图,其中所述实施提供不同dram高速缓存线大小;

图3a和3b是说明图1的dram高速缓冲存储器管理电路用于使用图1的标签目录高速缓冲存储器和标签目录高速缓冲存储器目录执行读取操作的示范性操作的流程图;

图4a到4e是说明图1的dram高速缓冲存储器管理电路执行由从系统高速缓冲存储器收回数据(例如,以回写模式或直写模式收回的“干净的”(即,未修改的)或“脏的”(即,经修改的)收回数)而产生的写入操作的示范性操作的流程图;

图5a到5d是说明图1的dram高速缓冲存储器管理电路用于执行标签目录高速缓冲存储器安置操作的示范性操作的流程图;以及

图6是可包含图1的dram高速缓冲存储器管理电路的示范性基于处理器的系统的框图。

具体实施方式

现在参看图式,描述本公开的若干示范性方面。词语“示范性”在本文中用于意指“充当实例、例子或说明”。本文中描述为“示范性”的任何方面不必解释为比其它方面优选或有利。

详细描述中所公开的方面包含提供使用标签目录高速缓冲存储器的可扩展动态随机存取存储器(dram)高速缓冲存储器管理。如本文中所描述,dram高速缓冲存储器管理方案在dram高速缓冲存储器管理方案所利用的资源的大小与受管理的dram高速缓冲存储器的容量相对无关的意义上是“可扩展的”。因此,在此方面,图1是示范性基于处理器的系统100的框图,所述基于处理器的系统100提供用于管理dram高速缓冲存储器104的dram高速缓冲存储器管理电路102和dram高速缓冲存储器104的相关联的标签目录106,这两者均为高带宽存储器108的部分。基于处理器的系统100包含系统存储器dram110,在一些方面中,系统存储器dram110可包括一或多个双列直插式存储器模块(dimm)。基于处理器的系统100进一步提供计算裸片112,系统高速缓冲存储器114(例如,3级(l3)高速缓冲存储器,作为非限制性实例)位于所述计算裸片上。在一些方面中,标签目录106的大小与dram高速缓冲存储器104的大小成正比,且因此可足够小以连同dram高速缓冲存储器104一起装配在高带宽存储器108中。因此,不必存取系统存储器dram110来检索dram高速缓冲存储器104的标签目录106信息。

基于处理器的系统100可涵盖已知数字逻辑元件、半导体电路、处理核心和/或存储器结构以及其它元件中的任一个,或其组合。本文中所描述的各方面并不限于任何特定元件布置,且所公开的技术可容易地延伸到半导体裸片或封装上的各种结构和布局。应理解,基于处理器的系统100的一些方面可包含除图1中所说明的那些元件之外的元件。

为了改进存储器带宽,基于处理器的系统100的高带宽存储器108内的dram高速缓冲存储器104可用于高速缓存先前从系统存储器dram110内存储器线116(0)-116(x)读取和/或从系统高速缓冲存储器114收回的地址(未展示)和数据(未展示)。作为非限制性实例,一些方面可提供仅在从系统存储器dram110读取数据之后才可将数据高速缓存在dram高速缓冲存储器104中,而在一些方面中,仅在从系统高速缓冲存储器114收回数据时才可将数据高速缓存在dram高速缓冲存储器104中。根据一些方面,可在从系统存储器dram110读取数据以通过处理器负载触发读取和从系统高速缓冲存储器114进行脏收回之后将数据高速缓存在dram高速缓冲存储器104中。

dram高速缓冲存储器104提供组织成通道120(0)-120(c)以存储先前读取的存储器地址和数据的dram高速缓存线118(0)-118(b)、118'(0)-118'(b)。对于dram高速缓冲存储器104内的dram高速缓存线118(0)-118(b)、118'(0)-118'(b)中的每一个,dram高速缓冲存储器104的标签目录106存储从对应dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的存储器地址产生标签122(0)-122(i)。作为实例,在其中系统存储器dram110的大小是四(4)百万兆字节的示范性基于处理器的系统100中,dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的存储器地址可各自包含42位。存储器地址的12个最高有效位(即,位41到30)可用作标签目录106中的存储器地址的标签122(0)-122(i)(“t”)。标签目录106还存储指示对应标签122(0)-122(i)是否有效的有效位124(0)-124(i)(“v”)和指示对应于标签122(0)-122(i)的dram高速缓存线118(0)-118(b)、118'(0)-118'(b)是否已经修改的脏位126(0)-126(i)(“d”)。在一些方面中,仅当dram高速缓冲存储器管理电路102经配置以(例如,通过支持回写模式)追踪脏数据时才可允许脏数据在dram高速缓冲存储器104中。

高带宽存储器108内的dram高速缓冲存储器104可独立于系统存储器dram110且与系统存储器dram110并行存取。因此,存储器带宽可通过同时从dram高速缓冲存储器104和系统存储器dram110两者进行读取而有效地增加。在一些方面中,dram高速缓冲存储器104可实施随机替代策略以确定dram高速缓冲存储器104内用于收回的候选项,而一些方面可实施针对dram高速缓冲存储器104的特定实施方案优化的其它替代策略。

针对每一存储器操作,存取dram高速缓冲存储器104的标签目录106可能产生时延代价,其可能抵消使用dram高速缓冲存储器104的性能益处。因此,需要提供管理对dram高速缓冲存储器104的存取以改进存储器带宽同时最小化时延代价的可扩展机构。在此方面,提供dram高速缓冲存储器管理电路102以管理对dram高速缓冲存储器104的存取。dram高速缓冲存储器管理电路102位于计算裸片112上,且以通信方式耦合到高带宽存储器108和系统存储器dram110。还可通过系统高速缓冲存储器114和/或通过基于处理器的系统100中的其它主控装置(未展示)(例如,中央处理单元(cpu)、输入/输出(i/o)接口和/或图形处理单元(gpu),作为非限制性实例)来从dram高速缓冲存储器管理电路102读取且写入到dram高速缓冲存储器管理电路102。如下文更详细地论述,dram高速缓冲存储器管理电路102可响应于接收存储器读取请求128而执行存储器读取操作,所述存储器读取请求128包括规定从中检索数据的存储器地址的读取地址130。一些方面可提供响应于系统高速缓冲存储器114上的未命中而接收存储器读取请求128。在一些方面中,dram高速缓冲存储器管理电路102可响应于接收存储器写入请求132而进一步执行存储器写入操作,所述存储器写入请求132包括写入数据136将写入的写入地址134。

为了减少可能由于对标签目录106的存取而导致的存取时延,dram高速缓冲存储器管理电路102提供标签目录高速缓冲存储器138和标签目录高速缓冲存储器138的标签目录高速缓冲存储器目录140。为了高速缓存对应于dram高速缓冲存储器104内的频繁存取的dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的来自标签目录106的标签122(0)-122(i),标签目录高速缓冲存储器138提供经组织到通道144(0)-144(c)中的标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)。标签目录高速缓冲存储器138内的标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)中的每一个可存储来自标签目录106的存储块,其含有dram高速缓冲存储器104的多个dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的标签122(0)-122(i)。作为非限制性实例,在一些方面中,存储于dram高速缓冲存储器104的标签目录106中的标签122(0)-122(i)可各自为16位,而标签目录高速缓冲存储器138内的标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)可各自为64字节。因此,标签目录高速缓冲存储器138内的标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)中的每一个可存储32来自标签目录106的标签122(0)-122(31)。

对于标签目录高速缓冲存储器138内的每一标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a),标签目录高速缓冲存储器138的标签目录高速缓冲存储器目录140存储从dram高速缓冲存储器104的对应dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的存储器地址产生的标签146(0)-146(j)(“t”)。举例来说,在其中存储器地址包含42位的示范性基于处理器的系统100中,位29到17(其可表示用以确定其中将存储存储器地址的数据的一组dram高速缓冲存储器104的存储器地址的部分)可用作标签目录高速缓冲存储器目录140中存储器地址的标签146(0)-146(j)。标签目录高速缓冲存储器138的标签目录高速缓冲存储器目录140还存储指示对应标签146(0)-146(j)是否有效的有效位148(0)-148(j)(“v”)和指示对应于标签146(0)-146(j)的标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)是否已经修改的脏位150(0)-150(j)(“d”)。

在一些方面中,dram高速缓冲存储器管理电路102进一步提供负载均衡电路152以改进存储器带宽且减少存储器存取竞争。作为非限制性实例,在可从系统存储器dram110或dram高速缓冲存储器104读取请求的存储器地址的情况下,负载均衡电路152基于例如带宽和时延的负载均衡标准确定从中读取存储器地址的最适当源。以此方式,负载均衡电路152可分布系统存储器dram110与dram高速缓冲存储器104之间的存储器存取以优化系统资源的使用。

在一些方面中,dram高速缓冲存储器管理电路102可实施为“直写”高速缓冲存储器管理系统。在直写实施中,通过dram高速缓冲存储器管理电路102将从系统高速缓冲存储器114收回的脏(即,经修改)数据写入到高带宽存储器108的dram高速缓冲存储器104和系统存储器dram110。因此,dram高速缓冲存储器104内的数据和系统存储器dram110内的数据始终同步。由于在直写实施中保证dram高速缓冲存储器104和系统存储器dram110含有正确数据,因此dram高速缓冲存储器管理电路102的负载均衡电路152可自由负载平衡dram高速缓冲存储器104与系统存储器dram110之间的存储器读取操作。然而,dram高速缓冲存储器管理电路102的直写实施可能不会导致系统存储器dram110的减小的写入带宽,这是因为对dram高速缓冲存储器104的每一写入将对应于对系统存储器dram110的写入。

dram高速缓冲存储器管理电路102的一些方面可实施为“回写”高速缓冲存储器管理系统,其中标签目录高速缓冲存储器138的标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)高速缓存脏位126(0)-126(i),以及来自dram高速缓冲存储器104的标签目录106的标签122(0)-122(i)。脏位126(0)-126(i)指示对应于高速缓存于标签目录高速缓冲存储器138内的标签122(0)-122(i)的存储于dram高速缓冲存储器104中的数据是否是脏的(即,是否将数据写入到dram高速缓冲存储器104但不写入到系统存储器dram110)。如果数据不是脏的,那么可从dram高速缓冲存储器104或系统存储器dram110读取数据,如通过dram高速缓冲存储器管理电路102的负载均衡电路152所确定。然而,如果高速缓存在标签目录106中的脏位126(0)-126(i)指示存储于dram高速缓冲存储器104中的数据是脏的,那么负载均衡是不可能的,这是因为dram高速缓冲存储器104是经修改数据的唯一源。因此,dram高速缓冲存储器管理电路102从dram高速缓冲存储器104读取脏数据。dram高速缓冲存储器管理电路102的回写实施可减小对系统存储器dram110的存储器写入带宽,但dram高速缓冲存储器管理电路102必须最终将从dram高速缓冲存储器104收回的脏数据回写到系统存储器dram110。在dram高速缓冲存储器管理电路102的回写实施的一些方面中,在从标签目录高速缓冲存储器138收回标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)中的一个时,dram高速缓冲存储器管理电路102经配置以将dram高速缓冲存储器104中对应于收回的标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)的所有脏数据拷贝到系统存储器dram110。

dram高速缓冲存储器管理电路102的一些方面可进一步通过根据由dram高速缓冲存储器管理电路102作出的对应的概率性确定而执行一些操作(例如,作为非限制性实例,涉及对系统存储器dram110和/或dram高速缓冲存储器104存储器存取和/或对标签目录高速缓冲存储器138和标签目录高速缓冲存储器目录140更新的操作)来改进存储器带宽。每一概率性确定可用于调谐对应操作的频率,且可以是无状态的(即,不涉及先前概率性确定的结果)。举例来说,根据dram高速缓冲存储器管理电路102的一些方面,可基于概率性确定将通过系统高速缓冲存储器114收回的数据写入到dram高速缓冲存储器104,使得将通过系统高速缓冲存储器114收回的仅百分之一的随机选择数据写入到dram高速缓冲存储器104。类似地,dram高速缓冲存储器管理电路102的一些方面可经配置以基于概率性确定补充标签目录高速缓冲存储器138。因此,应理解,在给定例子中可或可不执行本文中描述为“概率性地”发生的每一操作,且进一步应理解给定概率性操作的发生或缺乏可进一步触发由dram高速缓冲存储器管理电路102进行的额外操作。

在一些方面中可通过使dram高速缓冲存储器104的dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的高速缓存线大小是系统高速缓存线大小的倍数来增加可通过标签目录高速缓冲存储器138追踪的存储器的量。在此些方面中,被称作“具有分段式高速缓存线的扇形dram高速缓冲存储器”的系统存储器dram110的多个存储器线116(0)-116(x)可存储于dram高速缓冲存储器104的单个dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的对应数据段(未展示)中。可独立管理、存取和更新dram高速缓冲存储器104的dram高速缓存线118(0)-118(b)、118'(0)-118'(b)内的每一数据段,且仅脏数据段需要回写到系统存储器dram110。然而,必须以dram高速缓冲存储器104的高速缓存线大小的粒度完成从dram高速缓冲存储器104的高速缓存线分配、收回和替代。

为了说明可由图1的dram高速缓冲存储器管理电路102管理的dram高速缓冲存储器104的示范性实施的比较,提供图2a到2b。图2a说明提供高速缓存线大小等于系统高速缓存线大小的dram高速缓冲存储器104,而图2b说明提供高速缓存线大小等于四(4)倍系统高速缓存线大小的dram高速缓冲存储器104。为清楚起见,在描述图2a和2b时引用图1的元件。

在图2a中,展示dram高速缓存线200。在一些方面中,dram高速缓存线200可对应于图1的dram高速缓存线118(0)-118(b)、118'(0)-118'(b)中的一个。在图2a的实例中,dram高速缓存线200的大小与系统高速缓存线大小相同。因此,dram高速缓存线200可存储来自系统存储器dram110的单个高速缓存的存储器线202(对应于图1的存储器线116(0)-116(x)中的一个)。为了识别和追踪高速缓存的存储器线202的状态,dram高速缓冲存储器104的标签目录106的标签目录项204包含地址标签206(“t”)、有效位208(“v”)和脏位210(“d”)。相比之下,图2b说明大小是系统高速缓存线大小四(4)倍的dram高速缓存线212。因此,对应于图1的dram高速缓存线118(0)-118(b)、118'(0)-118'(b)中的一个的dram高速缓存线212包括四(4)个数据段214(0)-214(3)。数据段214(0)-214(3)中的每一个能够存储来自系统存储器dram110的高速缓存的存储器线116(0)-116(x)(未展示)。标签目录项216包含dram高速缓存线212的地址标签218(“t”),且进一步包含四(4)个有效位220(0)-220(3)(“v0-v3”)和对应于数据段214(0)-214(3)的四(4)个脏位222(0)-222(3)(“d0-d3”)。有效位220(0)-220(3)和脏位222(0)-222(3)允许独立于其它数据段214(0)-214(3)而管理数据段214(0)-214(3)中的每一个。

图3a到3b是说明图1的dram高速缓冲存储器管理电路102用于使用图1的标签目录高速缓冲存储器138和dram高速缓冲存储器104执行读取操作的示范性操作的流程图。为清楚起见,在描述图3a到3b时引用图1的元件。在图3a中,操作开始于dram高速缓冲存储器管理电路102接收包括读取地址130的存储器读取请求128(框300)。在此方面,dram高速缓冲存储器管理电路102在本文中可被称作“用于接收包括读取地址的存储器读取请求的装置”。dram高速缓冲存储器管理电路102确定是否在dram高速缓冲存储器104的标签目录高速缓冲存储器138的标签目录高速缓冲存储器目录140中发现读取地址130(框302)。因此,dram高速缓冲存储器管理电路102可在本文中被称作“用于确定是否在dram高速缓冲存储器管理电路的标签目录高速缓冲存储器的标签目录高速缓冲存储器目录中发现读取地址的装置”。在一些方面中,确定是否在标签目录高速缓冲存储器目录140中发现读取地址130可包含确定标签146(0)-146(j)中的一个是否对应于读取地址130。作为非限制性实例,对于42位读取地址130,标签目录高速缓冲存储器138的标签目录高速缓冲存储器目录140内的对应标签146(0)-146(j)可包括读取地址130的位29到17,其可表示在其中将存储读取地址130的数据的一组dram高速缓冲存储器104。

如果在决策框302处dram高速缓冲存储器管理电路102确定未在标签目录高速缓冲存储器目录140中发现读取地址130,那么处理在图3b的框304处恢复。然而,如果在标签目录高速缓冲存储器目录140中发现读取地址130,那么dram高速缓冲存储器管理电路102接着基于标签目录高速缓冲存储器138确定是否在为高带宽存储器108的部分的dram高速缓冲存储器104中发现读取地址130(框306)。dram高速缓冲存储器管理电路102可因此在本文中被称作“用于响应于确定在标签目录高速缓冲存储器目录中发现读取地址而基于标签目录高速缓冲存储器确定是否在为高带宽存储器的部分的dram高速缓冲存储器中发现读取地址的装置”。如上文所描述,标签目录高速缓冲存储器138高速缓存来自dram高速缓冲存储器104的标签目录106的标签122(0)-122(i)的子集。对于42位读取地址130,标签目录106内的标签122(0)-122(i)中的每一个(且因此高速缓存在标签目录高速缓冲存储器138中)可包括,作为非限制性实例,读取地址130的12个最高有效位(即,位41到30)。由于标签目录高速缓冲存储器138的标签目录高速缓冲存储器目录140可使用标签146(0)-146(j)的读取地址130内的不同位组,因此在框302处,对于给定读取地址130有可能产生对标签目录高速缓冲存储器138的标签目录高速缓冲存储器目录140的命中,且实际上并非高速缓存在dram高速缓冲存储器104中。

因此,如果在决策框306处dram高速缓冲存储器管理电路102确定未在dram高速缓冲存储器104中发现读取地址130,那么dram高速缓冲存储器管理电路102读取系统存储器dram110中的读取地址130处的数据(框308)。在此方面,dram高速缓冲存储器管理电路102可在本文中被称作“用于响应于确定未在dram高速缓冲存储器中发现读取地址而读取系统存储器dram中的读取地址处的数据的装置”。如果在dram高速缓冲存储器104中发现读取地址130,那么dram高速缓冲存储器管理电路102可确定dram高速缓冲存储器104中的读取地址130的数据是否是干净的(或dram高速缓冲存储器管理电路102是否在以直写模式操作)(框310)。如果不是,那么可仅从dram高速缓冲存储器104安全地读取请求的数据,且因此dram高速缓冲存储器管理电路102从dram高速缓冲存储器104读取针对读取地址130的数据(框312)。dram高速缓冲存储器管理电路102可因此在本文中被称作“用于响应于确定在dram高速缓冲存储器中发现读取地址而从dram高速缓冲存储器读取针对读取地址的数据的装置”。

另一方面,如果在决策框310处dram高速缓冲存储器管理电路102确定dram高速缓冲存储器104中的读取地址130的数据是干净的(或dram高速缓冲存储器管理电路102在以直写模式操作),那么dram高速缓冲存储器104和系统存储器dram110两者含有请求的数据的相同副本。dram高速缓冲存储器管理电路102因此(例如,使用负载均衡电路152)从dram高速缓冲存储器104和系统存储器dram110中识别优选数据源(框314)。如果系统存储器dram110识别为优选数据源,那么dram高速缓冲存储器管理电路102读取系统存储器dram110中读取地址130处的数据(框316)。否则,dram高速缓冲存储器管理电路102从dram高速缓冲存储器104读取针对读取地址130的数据(框318)。

现参看图3b,如果在图3a的决策框302处dram高速缓冲存储器管理电路102确定未在标签目录高速缓冲存储器目录140中发现读取地址130,那么dram高速缓冲存储器管理电路102读取系统存储器dram110中读取地址130处的数据(框304)。因此,dram高速缓冲存储器管理电路102可在本文中被称作“用于响应于确定未在标签目录高速缓冲存储器目录中发现读取地址而读取系统存储器dram中读取地址处的数据的装置”。在一些方面中,dram高速缓冲存储器管理电路102还可在读取系统存储器dram110中读取地址130处的数据的同时概率性地补充标签目录高速缓冲存储器138(框320)。根据一些方面,概率性地补充标签目录高速缓冲存储器138的操作可包含首先从dram高速缓冲存储器104的标签目录106读取新标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)的数据(框322)。接着将新标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)安置在标签目录高速缓冲存储器138中(框324)。在下文关于图5a到5d更详细地论述用于将标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)安置在标签目录高速缓冲存储器138中的额外操作。

为了说明图1的dram高速缓冲存储器管理电路102用于执行由在直写或回写模式中从系统高速缓冲存储器114收回数据(干净或脏)而产生写入操作的示范性操作,提供图4a到4e。为清楚起见,在描述图4a到4e时引用图1的元件。另外,在一些方面中,在描述图4a到4e时,同样地指定仅关于写入干净收回数据或脏收回数据的操作和/或仅关于直写模式或回写模式的操作。

图4a中的操作开始于dram高速缓冲存储器管理电路102从系统高速缓冲存储器114(例如,作为非限制性实例,l3高速缓冲存储器)接收包括写入地址134和写入数据136(在本文中被称作“收回数据136”)的存储器写入请求132(框400)。收回数据136可包括干净收回数据或脏收回数据,且因此可视需要进一步在本文中被称作“干净收回数据136”或“脏收回数据136”。如下文所提及,干净收回数据136和脏收回数据136的处理可根据dram高速缓冲存储器管理电路102经配置以按直写模式操作还是按回写模式操作而变化。下文在描述图4a到4e时,应注意任何此类操作差异。

dram高速缓冲存储器管理电路102接着确定是否在标签目录高速缓冲存储器目录140中发现写入地址134(框402)。一些方面可提供确定是否在标签目录高速缓冲存储器目录140中发现写入地址134可包含确定标签146(0)-146(j)中的一个是否对应于写入地址134。如果未在标签目录高速缓冲存储器目录140中发现写入地址134,那么dram高速缓冲存储器管理电路102从dram高速缓冲存储器104的标签目录106检索新标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)的数据,其中写入地址134的标签122(0)-122(i)将存储于dram高速缓冲存储器104的标签目录106中(框404)。dram高速缓冲存储器管理电路102接着将新标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)安置在标签目录高速缓冲存储器138中(框406)。关于图5a到5d更详细地论述用于根据一些方面将新标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)安置在标签目录高速缓冲存储器138中的框406的示范性操作。

如果在决策框402处dram高速缓冲存储器管理电路102确定在标签目录高速缓冲存储器目录140中发现写入地址134,那么dram高速缓冲存储器管理电路102进一步基于标签目录高速缓冲存储器138确定是否在dram高速缓冲存储器104中发现写入地址134(框408)。如上文所提及,由于标签目录高速缓冲存储器138的标签目录高速缓冲存储器目录140可使用标签146(0)-146(j)的写入地址134内的不同位组,因此此操作是必需的。因此,在框402处,对于写入地址134,有可能产生对标签目录高速缓冲存储器138的标签目录高速缓冲存储器目录140的命中,且实际上并非高速缓存在dram高速缓冲存储器104中。如果未在dram高速缓冲存储器104中发现写入地址134,那么处理在图4b的框410处恢复。然而,如果在决策框408处dram高速缓冲存储器管理电路102确定在dram高速缓冲存储器104中发现写入地址134,那么dram高速缓冲存储器管理电路102执行不同操作,这取决于收回数据136是干净的还是脏的,和dram高速缓冲存储器管理电路102经配置以按回写模式操作还是按直写模式操作。在以回写模式写入脏收回数据136时,dram高速缓冲存储器管理电路102设置标签目录高速缓冲存储器目录140中的写入地址134的脏位150(0)-150(j)(框412)。dram高速缓冲存储器管理电路102接着将收回数据136写入到dram高速缓冲存储器104中的写入地址134的dram高速缓存线118(0)-118(b)、118'(0)-118'(b)(框414)。接着处理完成(框416)。相比之下,如果收回数据136是干净收回数据136或dram高速缓冲存储器管理电路102以直写模式操作,且如果在决策框408处在dram高速缓冲存储器104中发现写入地址134,那么处理完成(框416)。

现参看图4b,如果在图4a的决策框408处dram高速缓冲存储器管理电路102确定未在dram高速缓冲存储器104中发现写入地址134,那么dram高速缓冲存储器管理电路102将收回数据136写入到dram高速缓冲存储器104(框410)。在一些方面中,用于将收回数据136写入到dram高速缓冲存储器104的框410的示范性操作可包含首先确定无效通道120(0)-120(c)是否存在于dram高速缓冲存储器104内(框418)。如果是,那么处理在图4c的框420处恢复。如果在决策框418处dram高速缓冲存储器管理电路102确定无无效通道120(0)-120(c)存在于dram高速缓冲存储器104内,那么dram高速缓冲存储器管理电路102接着确定干净通道120(0)-120(c)是否存在于dram高速缓冲存储器104内(框422)。如果干净通道120(0)-120(c)存在于dram高速缓冲存储器104内,那么处理在图式4d的框424处恢复。如果不是,那么处理在图4e的框426处恢复。

在图4c中,用于将收回数据136写入到dram高速缓冲存储器104的图4b的框410的操作继续。dram高速缓冲存储器管理电路102首先将无效通道120(0)-120(c)分配为新dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的目标通道120(0)-120(c)(框420)。将收回数据136写入到目标通道120(0)-120(c)中的新dram高速缓存线118(0)-118(b)、118'(0)-118'(b)(框428)。dram高速缓冲存储器管理电路102接着更新新dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的标签目录高速缓冲存储器目录140中的一或多个有效位148(0)-148(j),以指示新dram高速缓存线118(0)-118(b)、118'(0)-118'(b)是有效的(框430)。最后,dram高速缓冲存储器管理电路102更新dram高速缓冲存储器104的标签目录106中的新dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的标签122(0)-122(i)(框432)。

用于将收回数据136写入到dram高速缓冲存储器104的图4b的框410的操作在图4d中继续。在图4d中,dram高速缓冲存储器管理电路102将干净通道120(0)-120(c)分配为新dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的目标通道120(0)-120(c)(框424)。dram高速缓冲存储器管理电路102接着将收回数据136写入到目标通道120(0)-120(c)中的新dram高速缓存线118(0)-118(b)、118'(0)-118'(b)(框434)。接着更新dram高速缓冲存储器104的标签目录106中的一或多个有效位124(0)-124(i)(框436)。dram高速缓冲存储器管理电路102还更新标签目录高速缓冲存储器目录140中目标通道120(0)-120(c)的一或多个标签146(0)-146(j)的一或多个有效位148(0)-148(j)(框438)。dram高速缓冲存储器管理电路102将新dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的标签146(0)-146(j)写入到标签目录高速缓冲存储器目录140(框440)。最后,dram高速缓冲存储器管理电路102更新dram高速缓冲存储器104的标签目录106中的新dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的标签122(0)-122(i)(框442)。

转向图4e,用于将收回数据136写入到dram高速缓冲存储器104的图4b的框410的操作继续。在图4e中,dram高速缓冲存储器管理电路102选择dram高速缓冲存储器104内的脏通道120(0)-120(c)(框426)。接着将脏通道120(0)-120(c)分配为新dram高速缓存线118(0)-118(b)、118'(0)-118'(b)的目标通道120(0)-120(c)(框444)。dram高速缓冲存储器管理电路102将目标通道120(0)-120(c)内的每一脏dram高速缓存线118(0)-118(b)、118'(0)-118'(b)写入到系统存储器dram110(框446)。处理接着在图4d的框434处恢复。

提供图5a到5d以说明用于将标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)安置在标签目录高速缓冲存储器138中的示范性操作。为清楚起见,在描述图5a到5d时引用图1的元件。在图5a中,操作开始于dram高速缓冲存储器管理电路102确定无效通道144(0)-144(c)是否存在于标签目录高速缓冲存储器138内(框500)。如果是,那么处理在图5b的框502处恢复。然而,如果没有无效通道144(0)-144(c)存在于标签目录高速缓冲存储器138内,那么dram高速缓冲存储器管理电路102接着确定干净通道144(0)-144(c)是否存在于标签目录高速缓冲存储器138内(框504)。如果是,那么处理在图5c的框506处恢复。如果没有干净通道144(0)-144(c)存在于标签目录高速缓冲存储器138内,那么处理在图5d的框508处恢复。

现参看图5b,dram高速缓冲存储器管理电路102首先将无效通道144(0)-144(c)分配为新标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)的目标通道144(0)-144(c)(框502)。dram高速缓冲存储器管理电路102接着将新标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)写入到目标通道144(0)-144(c)(框510)。dram高速缓冲存储器管理电路102更新标签目录高速缓冲存储器目录140中新标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)的一或多个有效位148(0)-148(j)(框512)。dram高速缓冲存储器管理电路102接着将新标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)的标签146(0)-146(j)写入到标签目录高速缓冲存储器目录140(框514)。

转向图5c,dram高速缓冲存储器管理电路102将干净通道144(0)-144(c)分配为新标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)的目标通道144(0)-144(c)(框506)。dram高速缓冲存储器管理电路102接着更新目标通道144(0)-144(c)的一或多个标签146(0)-146(j)的dram高速缓冲存储器104的标签目录106中的一或多个有效位124(0)-124(i)(框516)。dram高速缓冲存储器管理电路102还更新dram高速缓冲存储器104的标签目录106中的目标通道144(0)-144(c)的一或多个标签122(0)-122(i)(框518)。处理接着在图5b的框510处恢复。

在图5d中,dram高速缓冲存储器管理电路102选择标签目录高速缓冲存储器138内的脏通道144(0)-144(c)(框508)。dram高速缓冲存储器管理电路102将脏通道144(0)-144(c)分配为新标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)的目标通道144(0)-144(c)(框520)。dram高速缓冲存储器管理电路102接着将目标通道144(0)-144(c)内的每一脏标签目录高速缓存线142(0)-142(a)、142'(0)-142'(a)写入到系统存储器dram110(框522)。处理接着在图5c的框516处恢复。

根据本文中所公开的各方面的使用标签目录高速缓冲存储器提供可扩展dram高速缓冲存储器管理可提供于或集成到任何基于处理器的装置中。实例包含但不限于机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、智能电话、平板电脑、平板手机、服务器、计算机、便携式计算机、台式计算机、个人数字助理(pda)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(dvd)播放器、便携式数字视频播放器以及汽车。

在此方面,图6说明可采用图1中所说明的用于管理为高带宽存储器(hbm)108的部分的dram高速缓冲存储器104的dram高速缓冲存储器管理电路(dcmc)102的基于处理器的系统600的实例。基于处理器的系统600包含图1的计算裸片112,在其上提供各自包含一或多个处理器604的一或多个cpu602。cpu602可具有耦合到处理器604以用于快速存取临时存储的数据的高速缓冲存储器606。cpu602耦合到系统总线608,且可将基于处理器的系统600中所包含的主控装置与从属装置互相耦合。如众所周知,cpu602与这些其它装置通过在系统总线608上交换地址、控制及数据信息进行通信。举例来说,cpu602可将总线事务请求传送到存储器控制器610(作为从属装置的实例)。

其它主控及从属装置可连接到系统总线608。如图6中所说明,作为实例,这些装置可包含存储器系统612、一或多个输入装置614、一或多个输出装置616、一或多个网络接口装置618和一或多个显示器控制器620。输入装置614可包含任何类型的输入装置,包含但不限于输入按键、开关、语音处理器等。输出装置616可包含任何类型的输出装置,包含但不限于音频、视频、其它视觉指示符等。网络接口装置618可为经配置以允许将数据交换到网络622及从网络622交换数据的任何装置。网络622可为任何类型的网络,包含但不限于有线或无线网络、私用或公用网络、局域网(lan)、无线局域网(wlan)、广域网(wan)、bluetoothtm网络及因特网。网络接口装置618可经配置以支持所要的任何类型的通信协议。存储器系统612可包含一或多个存储器单元624(0)-624(n)。

cpu602还可经配置以在系统总线608上存取显示器控制器620以控制发送到一或多个显示器626的信息。显示器控制器620将信息发送到显示器626,以经由一或多个视频处理器628显示,所述视频处理器处理将显示成适合于显示器626的格式的信息。显示器626可包含任何类型的显示器,包含但不限于阴极射线管(crt)、液晶显示器(lcd)、等离子显示器等。

所属领域的技术人员将进一步了解,结合本文中所公开的各方面所描述的各种说明性逻辑块、模块、电路和算法可被实施为电子硬件、存储于存储器中或另一计算机可读媒体中且由处理器或其它处理装置执行的指令,或此两者的组合。作为实例,本文中所描述的主控装置和从属装置可用于任何电路、硬件组件、集成电路(ic)或ic芯片中。本文中所公开的存储器可以是任何类型和大小的存储器,且可经配置以存储所需的任何类型的信息。为了清楚说明此可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路和步骤。此功能性如何实施取决于特定应用、设计选项和/或强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为引起偏离本公开的范围。

结合本文中所公开的各方面所描述的各种说明性逻辑块、模块和电路可用以下各项来实施或执行:处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其经设计以执行本文中所描述的功能的任何组合。处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合(例如,dsp与微处理器的组合、多个微处理器的组合、一或多个微处理器与dsp核心的结合,或任何其它此种配置)。

本文中所公开的方面可以硬件和存储于硬件中的指令来体现,且可驻留于(例如)随机存取存储器(ram)、快闪存储器、只读存储器(rom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)、寄存器、硬盘、可装卸式磁盘、cd-rom或所属领域中已知的任何其它形式的计算机可读媒体中。示范性存储媒体被耦合到处理器,使得处理器可以从存储媒体读取信息且将信息写入所述存储媒体。在替代例中,存储媒体可与处理器成一体式。处理器及存储媒体可驻留在asic中。asic可驻留在远程站中。在替代方案中,处理器及存储媒体可作为离散组件驻留在远程站、基站或服务器中。

还应注意,描述本文中的示范性方面中的任一者中所描述的操作步骤是为了提供实例和论述。所描述的操作可按除所说明的序列之外的大量不同序列予以执行。此外,单个操作步骤中所描述的操作实际上可在许多不同步骤中执行。另外,可组合在示例性方面中所论述的一或多个操作步骤。应理解,如所属领域的技术人员将易于显而易见,流程图中所说明的操作步骤可以经受大量不同修改。所属领域的技术人员还将了解,可使用多种不同技术和技法中的任一者来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。

提供本公开的先前描述以使得所属领域的技术人员能够制造或使用本公开。所属领域的技术人员将容易地明白本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的精神或范围。因此,本公开并非意图限于本文中所描述的实例和设计,而应被赋予与本文中所公开的原理和新颖特征相一致的最广范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1