太阳城集团

  • / 22
  • 下载费用:30 金币  

高速缓冲存储器及其工作方法和处理器.pdf

摘要
申请专利号:

CN201710068091.6

申请日:

2017.02.06

公开号:

CN106776365A

公开日:

2017.05.31

当前法律状态:

实审

有效性:

审中

法律详情: 实质审查的生效IPC(主分类):G06F 12/0813申请日:20170206|||公开
IPC分类号: G06F12/0813(2016.01)I 主分类号: G06F12/0813
申请人: 上海兆芯集成电路有限公司
发明人: 罗德尼·E·虎克; 道格拉斯·R·瑞德
地址: 201203 上海市浦东新区上海市张江高科技园区金科路2537号301室
优先权: 2016.04.18 US 62/323,859; 2016.09.29 US 15/280,779
专利代理机构: 北京林达刘知识产权代理事务所(普通合伙) 11277 代理人: 刘新宇
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

太阳城集团CN201710068091.6

授权太阳城集团号:

|||

法律状态太阳城集团日:

2017.06.23|||2017.05.31

法律状态类型:

太阳城集团实质审查的生效|||公开

摘要

本发明涉及高速缓冲存储器及其工作方法和处理器。一种集关联式高速缓冲存储器,包括:排列为M个集×N个通路的存储条目的M×N的存储器阵列,其中M和N两者都是大于1的整数。在所述M个集的相互独立的P个组中的各组内,所述N个通路能够单独供电。控制器针对所述P个组中的各组,监视该组的利用趋势,并且基于所述利用趋势来在不同的太阳城集团实例期间向该组的所述N个通路中的不同数量的通路动态地提供电力。

权利要求书

1.一种集关联式高速缓冲存储器,包括:
排列为M个集×N个通路的存储条目的M×N的存储器阵列,其中M和N两者都是大于1的
整数;
在所述M个集的互斥的P个组中的各组内,所述N个通路能够单独被供电;以及
控制器,用于针对所述P个组中的各组,监视该组的利用趋势,并且在不同的太阳城集团实例
期间基于所述利用趋势来动态地使得向该组的所述N个通路中的不同数量的通路提供电
力。
2.根据权利要求1所述的高速缓冲存储器,其中,还包括:
所述组的利用趋势包括所述组的命中率。
3.根据权利要求2所述的高速缓冲存储器,其中,还包括:
在所述组的命中率大于第一预定阈值的情况下,所述控制器使得向所述组的所述N个
通路中的更小数量的通路提供电力。
4.根据权利要求3所述的高速缓冲存储器,其中,还包括:
在所述组的命中率大于第二预定阈值的情况下,所述控制器使得向所述组的所述N个
通路中的更大数量的通路提供电力。
5.根据权利要求3所述的高速缓冲存储器,其中,还包括:
在该组的命中率大于所述第一预定阈值的情况下,除非所述控制器当前正使得电力提
供至的组的通路的数量小于该组的所有N个通路,否则所述控制器使得向该组的所述N个通
路中的更小数量的通路提供电力。
6.根据权利要求2所述的高速缓冲存储器,其中,还包括:
所述组的利用趋势还包括所述组的访问频率。
7.根据权利要求6所述的高速缓冲存储器,其中,还包括:
在所述组的命中率大于第一预定阈值、并且所述组的访问频率小于第二预定阈值的情
况下,所述控制器使得向所述组的所述N个通路中的更小数量的通路提供电力。
8.根据权利要求7所述的高速缓冲存储器,其中,还包括:
在所述组的命中率小于第三预定阈值、所述组的访问频率大于第四预定阈值、并且所
述控制器当前正使得电力提供至的组的通路的数量是所述组的所有N个通路的情况下,所
述控制器使得向所述组的所述N个通路中的更小数量的通路提供电力。
9.根据权利要求7所述的高速缓冲存储器,其中,还包括:
在所述组的命中率小于第三预定阈值、所述组的访问频率大于第四预定阈值、并且所
述控制器当前正使得电力提供至的组的通路的数量小于所述组的所有N个通路的情况下,
所述控制器使得向所述组的所述N个通路中的更大数量的通路提供电力。
10.根据权利要求1所述的高速缓冲存储器,其中,还包括:
所述组的利用趋势包括高速缓存行被预取到但所述高速缓存行未使用而被驱逐的组
中的存储条目的数量的度量。
11.根据权利要求10所述的高速缓冲存储器,其中,还包括:
在高速缓存行被预取到但所述高速缓存行未使用而被驱逐的组中的存储条目的数量
大于第一预定阈值的情况下,所述控制器使得向所述组的所述N个通路中的更小数量的通
路提供电力。
12.根据权利要求11所述的高速缓冲存储器,其中,还包括:
在高速缓存行被预取到但所述高速缓存行未使用而被驱逐的组中的存储条目的数量
小于第二预定阈值的情况下,所述控制器使得向所述组的所述N个通路中的更大数量的通
路提供电力。
13.根据权利要求1所述的高速缓冲存储器,其中,还包括:
所述组的利用趋势包括所述组的平均牺牲者高速缓存行年龄。
14.根据权利要求13所述的高速缓冲存储器,其中,还包括:
在所述组的所述平均牺牲者高速缓存行年龄大于第一预定阈值的情况下,所述控制器
使得向所述组的所述N个通路中的更小数量的通路提供电力。
15.根据权利要求14所述的高速缓冲存储器,其中,还包括:
在所述组的所述平均牺牲者高速缓存行年龄小于第二预定阈值的情况下,所述控制器
使得向所述组的所述N个通路中的更大数量的通路提供电力。
16.根据权利要求15所述的高速缓冲存储器,其中,还包括:
在所述组的所述平均牺牲者高速缓存行年龄小于所述第二预定阈值、并且所述控制器
当前正使得向所述组的所有通路提供电力的情况下,所述控制器使得向所述组的所述N个
通路中的更小数量的通路提供电力。
17.根据权利要求1所述的高速缓冲存储器,其中,还包括:
所述控制器包括计数器,所述计数器用于监视所述P个组中的仅Q个组的利用趋势,其
中Q小于P;以及
所述控制器以时分复用方式监视所述P个组中的Q个组的不同集的利用趋势。
18.一种使集关联式高速缓冲存储器进行工作的方法,所述高速缓冲存储器具有排列
为M个集×N个通路的存储条目的M×N的存储器阵列,其中M和N两者都是大于1的整数,在所
述M个集的互斥的P个组中的各组内,所述N个通路能够单独供电,所述方法包括以下步骤:
针对所述P个组中各个组,
监视所述组的利用趋势;以及
在不同的太阳城集团实例期间,基于所述利用趋势来动态地使得向所述组的N个通路中的不
同数量的通路提供电力。
19.根据权利要求18所述的方法,其中,还包括以下步骤:
所述组的利用趋势包括所述组的命中率。
20.根据权利要求19所述的方法,其中,还包括以下步骤:
所述组的利用趋势还包括所述组的访问频率。
21.根据权利要求18所述的方法,其中,还包括以下步骤:
所述组的利用趋势包括高速缓存行被预取到但所述高速缓存行未使用而被驱逐的组
中的存储条目的数量的度量。
22.根据权利要求18所述的方法,其中,还包括以下步骤:
所述组的利用趋势包括所述组的平均牺牲者高速缓存行年龄。
23.一种处理器,包括:
多个处理核;
高速缓冲存储器,其耦接至所述多个处理核,所述高速缓冲存储器包括:
排列为M个集×N个通路的存储条目的M×N的存储器阵列,其中M和N两者都是大于1的
整数;
在所述M个集的互斥的P个组中的各组内,所述N个通路能够单独供电;以及
控制器,用于针对所述P个组中的各组,监视该组的利用趋势,并且在不同的太阳城集团实例
期间基于所述利用趋势来向该组的所述N个通路中的不同数量的通路动态地提供电力。

说明书

高速缓冲存储器及其工作方法和处理器

相关申请的交叉引用

本申请要求2016年4月18日提交的标题为“DYNAMIC POWERING OF CACHE MEMORY
BY WAYS WITHIN MULTIPLE SET GROUPS BASED ON UTILIZATION TRENDS”的第62/323,859
号美国临时申请的优先权,其全部内容通过引用包含于此。

背景技术

处理器是执行计算机程序所指定的指令的数字装置。典型的计算机系统包括连接
至系统存储器的处理器,其中该系统存储器存储程序指令和这些程序指令要处理的数据。
这种系统的性能受到以下事实的妨碍:将数据从系统存储器读取到处理器中或者将数据从
处理器写入系统存储器所需的太阳城集团通常比处理器执行用于处理该数据的指令所需的太阳城集团
大得多。该太阳城集团差经常介于1~2个数量级。因而,处理器在等待对存储器进行读取或写入
时,可能处于闲置而不进行任何操作。

然而,处理器设计人员很久以前就意识到,程序趋于对相对较小比例的数据进行
相对较大比例的太阳城集团的访问,诸如频繁访问的程序变量等。具有该特征的程序被认为表现
出良好的太阳城集团局部性,并且该特征的倾向被称为参考原则的局部性。为了利用该原则,现代
处理器通常包括一个或多个高速缓冲存储器。高速缓冲存储器或高速缓存器相对于系统存
储器大小是小型存储器,并且电气上接近处理器内核,其中该高速缓冲存储器或高速缓存
器暂时存储通常驻留在计算机系统的更大且更远的存储器(诸如系统存储器等)中的数据
的子集。对数据进行高速缓存是将数据存储在高速缓冲存储器的存储元件中,使得随后与
从系统的更远存储器提供数据相比,可以从高速缓冲存储器更快地提供数据。

当处理器执行存储器读取指令(诸如加载或弹出指令等)时,处理器首先检查所请
求的数据是否存在于高速缓存器中、即存储器读取地址在高速缓存器中是否命中(hit)。如
果所请求的数据不存在于高速缓存器中、即如果存储器读取地址在高速缓冲器中未命中
(miss),则处理器通常除将数据加载到处理器的指定寄存器中外,还将该数据取指到高速
缓存器中。现在由于数据存在于高速缓存器中,因此下次遇到请求相同数据的存储器读取
指令时,可以将该数据从高速缓存器(而不是系统存储器)取指(fetch)到寄存器中以供处
理。由于数据已存在于高速缓存器中,因此基本上可以立即执行存储器读取指令。

高速缓存器按高速缓存行(cache lines)或高速缓存块(cache blocks)存储数
据。高速缓存行是在高速缓存器和系统存储器之间可以传送的数据的最小单位。高速缓存
行大小的示例是64字节的数据。当存储器读取指令导致高速缓存未命中时,不是仅对该存
储器读取指令所请求的数据进行取指,而是将该未命中地址所关联(implicated)的整个高
速缓存行取指到高速缓存器中。结果,由于可以从高速缓存器供给数据、而不必访问系统存
储器,因此可以快速地执行用于请求相同高速缓存行中的数据的后续存储器读取指令。

另外,当执行存储器写入指令(诸如存储或推入(push)指令等)时,如果存储器写
入地址在高速缓存器中命中,则可以将数据立即写入高速缓存器的高速缓存行,由此使得
推迟向系统存储器的数据写入。随后,通常为了为较新的高速缓存行腾出空间,高速缓存器
将该高速缓存行写入系统存储器。该操作通常被称为写回操作。此外,当存储器写入地址在
高速缓存器中未命中时,一些高速缓存器还分配该高速缓存器中的条目(entry)。即,高速
缓存器进行该高速缓存器的条目中的旧高速缓存行的写回操作,并且将写入地址所关联的
新高速缓存行从系统存储器读取到以前被旧高速缓存行占用的高速缓存条目中。该操作通
常被称为写入分配操作。

可以观察到,高效地起作用的高速缓存器可以大大提高处理器的性能。另外,在许
多情况下,特别是在高速缓冲存储器大(诸如处理器的高速缓冲存储器层级中的末级高速
缓存器)时,高速缓冲存储器占据了处理器的电力消耗的很大比例。还期望降低高速缓冲存
储器所消耗的电量,这通常是与提高处理器的性能的目标进行竞争的目标。

发明内容

本发明提供一种集关联式高速缓冲存储器,包括:排列为M个集×N个通路的存储
条目的M×N的存储器阵列,其中M和N两者都是大于1的整数;在所述M个集的互斥的P个组中
的各组内,所述N个通路能够单独被供电;以及控制器,用于针对所述P个组中的各组,监视
该组的利用趋势,并且在不同的太阳城集团实例期间基于所述利用趋势来动态地使得向该组的所
述N个通路中的不同数量的通路提供电力。

本发明还提供一种使集关联式高速缓冲存储器进行工作的方法,所述高速缓冲存
储器具有排列为M个集×N个通路的存储条目的M×N的存储器阵列,其中M和N两者都是大于
1的整数,在所述M个集的互斥的P个组中的各组内,所述N个通路能够单独供电,所述方法包
括以下步骤:针对所述P个组中各个组,监视所述组的利用趋势;以及在不同的太阳城集团实例期
间,基于所述利用趋势来动态地使得向所述组的N个通路中的不同数量的通路提供电力。

本发明还提供一种处理器,包括:多个处理核;高速缓冲存储器,其耦接至所述多
个处理核,所述高速缓冲存储器包括:排列为M个集×N个通路的存储条目的M×N的存储器
阵列,其中M和N两者都是大于1的整数;在所述M个集的互斥的P个组中的各组内,所述N个通
路能够单独供电;以及控制器,用于针对所述P个组中的各组,监视该组的利用趋势,并且在
不同的太阳城集团实例期间基于所述利用趋势来向该组的所述N个通路中的不同数量的通路动态
地提供电力。

附图说明

图1是示出处理器的框图。

图2是更详细地示出图1的高速缓冲存储器的框图。

图3是示出图2的高速缓冲存储器的用以进行集(set)的组(group)的通路(way)的
选择性供电的操作的流程图。

图4是示出图2的高速缓冲存储器的用以根据图3的流程图来进行集的组的通路的
选择性供电的操作的示例的框图。

图5~8是示出根据不同实施例的、图2的高速缓冲存储器的用以进行集的组的通
路的选择性供电的操作的流程图。

具体实施方式

在本公开中描述将集分组成多个集组(set group)的集关联(set-associate)式
高速缓冲存储器的实施例,其中在集关联式高速缓冲存储器的各集组内,可以在高速缓冲
存储器的工作期间动态地改变所通电或断电的通路的数量,从而提供高速缓冲存储器的性
能和电力消耗之间的期望平衡。也就是说,高速缓冲存储器有时从集组的通路中的一些通
路中去除电力且有时向集组的通路中的一些通路提供电力,并且动态地确定高速缓冲存储
器去除/提供电力所针对的通路的数量。高速缓冲存储器包括控制器,其中该控制器监视高
速缓冲存储器的不同集组的利用趋势(utilization trends),以作出与何时增加或减少所
通电的各集组的通路的数量有关的决定。利用趋势包括但不限于命中率、平均牺牲者高速
缓存行年龄、预取但未使用的高速缓存行的数量和/或访问频率中的一个或其组合。

在本公开中从高速缓冲存储器的一组集的通路中去除电力意味着完全去除电力、
或者至少去除电力使得该组的通路中的存储单元的状态丢失或至少不可靠。这与如下的其
它省电技术形成对比:减少提供至存储单元的电力,这或许导致性能下降,但提供了足以保
持存储单元的状态的电力。相反,在本公开中向高速缓冲存储器的一组集的通路提供电力
意味着提供足以保持存储单元的当前状态的电力。

现在参考图1,示出例示处理器100的框图。处理器100包括全部耦接至高速缓冲存
储器132并且共用高速缓冲器132的多个处理核102。优选地,各核102还包括其自身的较低
级的高速缓冲存储器(例如,1级(L1)指令高速缓冲存储器和L1数据高速缓冲存储器),并且
高速缓冲存储器132是处理器100的末级高速缓存器(LLC)。另外,处理器100可以包括中间
级高速缓冲存储器(例如,2级(L2)高速缓存器),其中该中间级高速缓冲存储器相对于核
102可以是本地的,或者可以由两个或更多核102共用。已考虑到如下的实施例:被配置为基
于利用趋势来动态地向集组内的所述数量的通路供电的高速缓冲存储器是较低/中间级高
速缓冲存储器而不是LLC。此外,尽管针对图1来说明处理器的与多个核共用高速缓冲存储
器的多核处理器有关的实施例,但已考虑到如下的其它实施例:多个核不共用被配置为基
于利用趋势来动态地向集组内的多个通路供电的高速缓冲存储器,而是该高速缓冲存储器
专用于可作为处理器100中的单个核102的核102。

现在参考图2,示出更详细地例示图1的高速缓冲存储器132的框图。高速缓冲存储
器132包括存储条目的存储器阵列206和包含利用计数器204的控制器202。存储器阵列206
排列为M个集×N个通路。在图2的示例实施例中,存在16个通路和128个集,并且这128个集
排列成各组具有互斥(mutually exclusive)的16个集的8个集组。应当理解,被配置为基于
利用趋势来动态地向集组内的多个通路供电的高速缓冲存储器132可以包括更多或更少的
通路、集以及各集组内的集。

利用控制器202可单独地向各集组内的通路供电。在一个实施例中,控制器202包
括针对各集组的各个通路启用寄存器(未示出)。各通路启用寄存器针对各个组保持用于指
定该通路是通电还是断电的、与N个通路相关联的N个位。如以下所述,控制器202设置/清除
组的通路启用寄存器的位,以相对于该组的通路提供/去除电力,从而减少/增加针对该组
所通电的通路的数量。在替代实施例中,控制器202包括全局通路启用寄存器和Q个本地通
路启用寄存器,其中Q小于N。各本地通路启用寄存器具有表示集组中的哪个集组与该本地
通路启用寄存器相关联的关联指示符。各有效本地通路启用寄存器控制关联指示符所指定
的组的通路的供电,并且利用全局通路指示符来控制本地通路指示符没有指定的组的通路
的供电。可选地,与各本地通路启用寄存器相关联的指示符指定开始和结束组,使得由关联
的本地通路启用寄存器来控制开始和结束规格中所包括的所有组。特别是在大量组使其通
路的全部或仅一个通电的情形中,这些实施例可以在提供足够的电力控制的同时,在大小
和电力消耗方面更高效。在一个实施例中,可由控制器202单独对一组集内的通路以成对方
式供电。即,控制器202一次向组内的两个通路提供/去除电力。

存储器阵列206的存储条目存储高速缓存行的数据和这些高速缓存行的关联状况
太阳城集团(例如,MESI(Modified Exclusive Shared or Invalid)状态)。在一个实施例中,单独
的存储器阵列存储该数据和状况。另外,阵列206包括每一集的用于保持替换太阳城集团的存储元
件,其中该替换太阳城集团用于确定将分配集中的哪个通路。该替换太阳城集团还可以保持在与数据和/
或状况阵列分开的存储器阵列中。

控制器202监视高速缓冲存储器132的利用,以尝试利用处理器100正执行的程序
来确定利用随太阳城集团经过的趋势。如上所述,利用趋势包括但不限于命中率、平均牺牲者高速
缓存行年龄、预取但未使用的高速缓存行的数量和/或访问频率中的一个或其组合。因而,
计数器204可用于针对各集组存储向该集组的高速缓存命中的数量、向该集组的访问的次
数和该集组中的高速缓存行的年龄。计数器204还可以包括诸如位图或移位寄存器等的存
储器,其中该存储器用于存储其它太阳城集团(诸如用于指示是否预取了集组的高速缓存行以及
是否在预取之后驱逐(evicted)之前使用了集组的高速缓存行的指示等)。如以下更详细地
所述,控制器202还保持用于将计数器204中所存储的值与之进行比较的各种阈值。控制器
202还包括用于进行监视集组的利用并作出与利用趋势有关的决定所需的计算的逻辑。在
一个实施例中,不是具有针对各集组的一组计数器204,而是控制器202包括较少集合的计
数器204,其中通过监视不同集组的利用趋势以时分复用方式共用该较少集合的计数器
204。

现在参考图3,示出例示图2的高速缓冲存储器132的用以进行集的组的通路的选
择性供电的操作的流程图。流程从块301开始。

在块301中,控制器202将索引初始化为0。该索引在这里被称为J。流程进入块302。

在块302中,控制器202最初向高速缓冲存储器132的所有集组的所有通路提供电
力。流程进入块304。

在块304中,控制器202监视当前集组(组[J])的一个或多个利用趋势。图5~8描述
以下方式的各种实施例:控制器202监视集组的利用趋势;以及控制器202(例如,在决定块
306和316中)判断减少或增加集组的通电通路的数量是否有益。流程进入决定块306。

在决定块306中,控制器202判断在块304中所监视的集组的利用趋势是否表示减
少集组中的通电通路的数量(例如,减少电力消耗以换取可接受的性能损失)将是有益的。
如果为“是”,则流程进入块308;否则,流程进入决定块316。

在块308中,控制器202减少集组的通电通路的数量。即,控制器202使集组中的当
前通电通路中的一个或多个通路(被称为目标通路)断电。在图4中示出如下示例:例如,集
组4的通路15在时刻1处通电,但随后在时刻2处由控制器202断电。另外,在使该组的目标通
路断电之前,控制器202驱逐这些目标通路中具有有效数据的所有高速缓存行,使得有效数
据不会丢失。流程进入块322。

在决定块316中,控制器202判断块304中所监视的集组的利用趋势是否表示增加
集组中的通电通路的数量(例如,提升性能以换取可接受的电力消耗增加)将是有益的。如
果为“是”,则流程进入块318;否则,流程进入块322。

在块318中,控制器202增加集组的通电通路的数量。即,控制器202使集组的当前
通电通路中的一个或多个通路(被称为目标通路)通电。在图4中示出如下示例:例如,集组5
的通路5和6在时刻1处断电,但随后在时刻2处由控制器202通电。另外,在使该组的目标通
路通电之后,控制器202使目标通路无效。流程进入块322。

在块322中,控制器202更新索引J以指定下一集组,其中该操作优选包括使J递增、
并且在J达到集组的数量的情况下绕回到0。流程返回至块304以监视该索引所指定的下一
集组的利用。

尽管图3(以及图5~8)描述了以时分复用方式监视单个组并且动态地调整该单个
组的大小的实施例,但在其它实施例中,根据用以进行监视的资源(例如,计数器204)的可
用性,可以以时分复用方式监视一个以上的组并且动态地调整这些组的大小。此外,在其它
实施例中,控制器202包括足以同时进行针对所有组的监视和动态调整大小的资源(例如,
计数器204),使得不必进行时分复用。例如,在图7的实施例中(在该实施例中预取但未使用
的高速缓存行的数量为被监视的利用趋势),所需的资源量可能相对较小,使得包括针对所
有组的监视和调整大小的硬件将是大小和电力消耗方面的有利折衷。

优选地,在早于对调整集组的大小进行评价的太阳城集团点的太阳城集团滚动窗口内测量针对
图5~8所述的命中率、预取但未使用就被驱逐的高速缓存行的数量、平均牺牲者高速缓存
行年龄和访问频率。

优选地,阈值是不同的,从而提供滞后影响(hysteresis affect),以避免不必要
地、过于频繁地改变集组的大小。这是特别有益的,因为尽管与增大组的大小相关联的性能
成本可能很少(可能没有)(尽管可能存在电力消耗成本),但由于必须首先驱逐断电的目标
通路中的有效高速缓存行,因而可能存在与减小组的大小相关联的显著的性能成本。

现在参考图4,示出例示图2的高速缓冲存储器132的用以根据图3的流程图进行集
的组的通路的选择性供电的操作的示例的框图。

可以观察到,图4示出高速缓冲存储器132的各个集组(在该示例中为8个)的各个
通路是通电(灰色)还是断电(白色)。图4示出在两个不同的太阳城集团点(表示为时刻1和时刻2)
处各集组的哪些通路通电/断电,其中时刻2在时刻1之后。

在图4的示例中,在时刻1处:集组0的通路3~12通电,并且其通路0~2和13~15断
电;集组1的通路0~13通电,并且其通路14~15断电;集组2的通路0~11和15通电,并且其
通路12~14断电;集组3的通路1~11和14~15通电,并且其通路0和12~13断电;集组4的通
路0~15通电,并且没有通路断电;集组5的通路0~4通电,并且其通路5~15断电;集组6的
通路0~15通电,并且没有通路断电;集组7的通路2~15通电,并且其通路0~1断电。

在图4的示例中,在时刻2处:集组0的通路0和3~12通电并且其通路1~2和13~15
断电,即利用控制器202使通路0通电,由此使所通电的通路的数量增加1;集组1的通路0~
14通电并且其通路15断电,即利用控制器202使通路14通电,由此使所通电的通路的数量增
加1;集组2的通路1~11和15通电并且其通路0和12~14断电,即利用控制器202使通路0断
电,由此使所通电的通路的数量减少1;集组3的通路1~11和14~15通电并且其通路0和12
~13断电,即控制器202没有改变所通电的通路的数量;集组4的通路0~14通电并且其通路
15断电,即利用控制器202使通路15断电,由此使所通电的通路的数量减少1;集组5的通路0
~6通电并且其通路7~15断电,即利用控制器202使通路5~6通电,由此使所通电的通路的
数量增加2;集组6的通路0~15通电并且没有通路断电,即控制器202没有改变所通电的通
路的数量;集组7的通路3~15通电并且其通路0~2断电,即利用控制器202使通路2断电,由
此使所通电的通路的数量减少1。

尽管图4示出了集组内的集呈现为彼此连续(即,集的索引是顺次的)的实施例,但
已考虑到集组内的集的索引为非顺次的其它实施例。例如,在集组内的集的索引可以是该
索引以组的数量为模的值相等的集,例如,假定8个组,则集3、11、19等在同一组中。

在一个实施例中,如作为2014年12月14日提交的PCT申请PCT/IB2014/003261(代
理人案号VAS.2723-PCT)的美国国家阶段申请的、2015年11月12日提交的美国专利申请14/
890,895(代理人案号VAS.2723-PCT-US)所述,高速缓冲存储器132针对集内的不同组的通
路采用不同的替换策略,其中各个申请的全部内容通过引用而包含于此以用于所有目的。
用以分别向高速缓冲存储器132的集组内的通路动态地提供电力的能力可以是特别有用
的,并且与这种高速缓冲存储器132产生协作增效。

现在参考图5,示出例示图2的高速缓冲存储器132的用以进行集的组的通路的选
择性供电的操作的流程图。图5的实施例采用集组内的平均牺牲者高速缓存行年龄,作为用
于判断减少或增加针对各集组所通电的通路的数量是否可能是有益的利用趋势。高速缓存
行的牺牲者年龄是从针对高速缓存行分配高速缓冲存储器132中的条目时起直到从高速缓
冲存储器132驱逐该高速缓存行时为止的太阳城集团的度量。牺牲者年龄可以从高速缓冲存储器
132的时钟周期、向高速缓冲存储器132的访问、向集组的访问或其它适当太阳城集团单位方面进
行测量。在一个实施例中,图2的利用计数器204记录当前集组中的高速缓存行的牺牲者年
龄,并且控制器202(例如,在块504中)在诸如以下等的适当事件时计算高速缓存行牺牲者
年龄的平均值:预定太阳城集团段结束时、(例如,在图5的流程图的各循环处)监视新的集组时、从
集组所驱逐的高速缓存行的数量达到阈值时、或者其它适当事件。

一般而言,如果针对集组的平均牺牲者年龄高,则这可能被视为如下的指示:该组
可能大于当前数据集的映射到该组的一部分所需的量,并且如果使该组减少为数量更少的
通路以省电,则该较小的组可能仍足够大以成为针对数据集的该部分高效的命中率。相反,
如果针对集组的平均牺牲者年龄低,则这可被视为如下的指示:该组对于当前数据集的映
射到该组的一部分而言过小,并且需要使该组增大。然而,如果针对集组的平均牺牲者年龄
低、但该组已处于其最大大小(即,所有的通路已通电),则这可能是如下的指示:数据集的
该部分对于该组而言仅仅是过大,以及/或者向该组的访问的性质为较小大小的组与完整
大小的组在命中率方面效率将是几乎一样、因此可以通过显著地缩小组的大小来节省电
力。例如,假定程序正在大的数据集内进行流传输,使得来自该组的高速缓存行的各新的分
配最终导致将仅使用了一次的高速缓存行从该组驱逐,这将利用小的平均牺牲者高速缓存
行年龄来表示。在这种情况下,具有少量通路的组与具有最大数量的通路的组在命中率方
面将是几乎一样的效率;因而,可以通过使组的通路断电以来显著地减少通路的数量,以节
省电力。在一个实施例中,在图5的块517和519中捕获到该特征。流程从块501开始。

在块501中,控制器202将索引初始化为0。该索引在这里被称为J。流程进入块502。

在块502中,控制器202最初向高速缓冲存储器132的所有集组的所有通路提供电
力。流程进入块504。

在块504中,控制器202监视当前集组(组[J])的平均牺牲者高速缓存行年龄。流程
进入决定块506。

在决定块506中,控制器202判断块504中所监视的集组的平均牺牲者高速缓存行
年龄是否大于上限阈值,在一个实施例中,该上限阈值是预定值。如果为“是”,则流程进入
块508;否则,流程进入决定块515。

在块508中,控制器202减少集组的通电通路的数量。另外,在使该组的目标通路断
电之前,控制器202驱逐目标通路中的具有有效数据的所有高速缓存行,使得有效数据不会
丢失。流程进入块522。

在决定块515中,控制器202判断块504中所监视的集组的平均牺牲者高速缓存行
年龄是否小于下限阈值,在一个实施例中,该下限阈值是预定值。如果为“是”,则流程进入
决定块517;否则,流程进入块518。

在决定块517中,控制器202判断集组的所有通路当前是否均通电。如果为“是”,则
流程进入块519;否则,流程进入块518。

在块518中,控制器202增加集组的通电通路的数量。另外,在使该组的目标通路通
电之后,控制器202使目标通路无效。流程进入块522。

在块519中,控制器202使集组的通电通路的数量减少为一个通路。在替代实施例
中,控制器202使集组的通电通路的数量减少为少量通路(例如,两个、三个或四个)、而不是
一个通路。另外,在使组的目标通路断电之前,控制器202驱逐目标通路中的具有有效数据
的所有高速缓存行,使得有效数据不会丢失。此外,控制器202确保其在基于集组的平均牺
牲者高速缓存行年龄进行集组的通电通路的数量的任何大小调整之前,等待至少预定太阳城集团
量。在不存在此一延迟的情况下,下次监视该集组时(例如,针对该集组下次循环时),以下
是极有可能的:平均牺牲者高速缓存行年龄将小于上限阈值(即,在决定块506中为“否”),
平均牺牲者高速缓存行年龄将小于下限阈值(即,在决定块515中为“是”),并且并非所有的
通路均通电(即,在决定块517中为“否”),使得控制器202将增加通电通路的数量。然而,只
要存在如上所述的条件(即,数据集的一部分对于组而言过大以及/或者向该组的访问的性
质为较小大小的组与完整大小的组在命中率方面将是几乎一样的效率),就期望将所通电
的通路的数量保持为小。即,只要存在该条件,则增加通路的数量就没有帮助。此一延迟可
以为该条件的消退(例如,流传输的完成)提供机会。在不存在此一延迟的情况下,尽管该条
件持续存在,但控制器202可能在通电所有通路和通电单个通路之间连续振荡,即每次通过
图5的循环时,(经由块518)快速地增加通电通路的数量直到该数量达到所有通电通路、然
后(经由块519)下降至小的数量,这是不理想的。在一个实施例中,控制器202针对各集组包
括标志,其中在设置该标志的情况下表示延迟针对集组的动态大小调整,在至少预定太阳城集团
量之后,控制器202清除该标志。流程进入块522。

在块522中,控制器202更新索引J以指定下一集组,其中该操作优选包括使J递增、
并且在J达到集组的数量时绕回至0。流程返回至块504,以监视该索引所指定的下一集组的
平均牺牲者高速缓存行年龄。

现在参考图6,示出例示图2的高速缓冲存储器132的用以进行集的组的通路的选
择性供电的操作的流程图。图6的实施例采用集组的命中率作为用于判断减少或增加针对
各集组所通电的通路的数量是否可能有益的利用趋势。集组的命中率是该集组中的命中次
数相对于向该集组的访问次数的比率。在一个实施例中,图2的利用计数器204记录当前集
组中的命中次数和向当前集组的访问次数,并且控制器202(例如,在块604中)在诸如以下
等的适当事件时计算命中率:预定太阳城集团段结束时、(例如,在图6的流程图的各循环处)监视
新的集组时、或者其它适当事件。

一般而言,如果针对集组的命中率相对较低,则这可被视为如下的指示:该组对于
当前数据集的映射到该组的一部分而言可能过小,并且如果使该组增加为较大数量的通
路,则该较大的组可以提高针对数据集的该部分的命中率。然而,如果针对集组的命中率非
常低并且该组已处于其最大大小(即,所有的通路均通电),则这可能是如下的指示:数据集
的一部分对于该组而言仅仅是过大,以及/或者向该组的访问的性质是较小大小的组在命
中率方面将是与完整大小的组几乎一样的效率、因此可以通过显著地减小组的大小来节省
电力。如以上所论述的,具有少量通路的组可以是与具有最大数量的通路的组几乎一样高
效的命中率;因而,可以通过使组的通路断电来显著地减少通路的数量,以节省电力。在一
个实施例中,在图6的块617、619和621中捕获到该特征。流程从块601开始。

在块601中,控制器202将索引初始化为0。该索引在这里被称为J。流程进入块602。

在块602中,控制器202最初向高速缓冲存储器132的所有集组的所有通路提供电
力。流程进入块604。

在块604中,控制器202监视当前集组(组[J])的命中率。流程进入决定块615。

在决定块615中,控制器202判断在块604中所监视的集组的命中率是否小于第一
阈值(其中,在一个实施例中,该第一阈值是预定值)。如果为“是”,则流程进入决定块617;
否则,流程进入块622。

在决定块617中,控制器202判断集组的所有通路当前是否通电。如果为“是”,则流
程进入决定块619;否则,流程进入块618。

在块618中,控制器202增加集组的通电通路的数量。另外,在使组的目标通路通电
之后,控制器202使目标通路无效。流程进入块622。

在决定块619中,控制器202判断在块604中所监视的集组的命中率是否小于比块
615的第一阈值小的第二阈值,在一个实施例中,该第二阈值也是预定值。如果为“是”,则流
程进入块621;否则,流程进入块622。

在块621中,控制器202使集组的通电通路的数量减少为一个通路。另外,在使该组
的目标通路断电之前,控制器202驱逐这些目标通路中的具有有效数据的所有高速缓存行,
使得有效数据不会丢失。此外,如上所述,控制器202确保其在基于集组的命中率进行集组
的通电通路的数量的任何大小调整之前,等待至少预定太阳城集团量。流程进入块622。

在块622中,控制器202更新索引J以指定下一集组,其中该操作优选包括使J递增、
并且在J达到集组的数量时绕回至0。流程返回至块604,以监视该索引所指定的下一集组的
命中率。

现在参考图7,示出例示图2的高速缓冲存储器132的用以进行集的组的通路的选
择性供电的操作的流程图。图7的实施例采用集组的预取但未使用高速缓存行的数量(在图
7中称为NUM_PBNU)作为用于判断减少或增加针对各集组所通电的通路的数量是否可能有
益的利用趋势。集组的NUM_PBNU是集组内的向集组内预取所分配、但随后从未使用的高速
缓存行的数量。在一个实施例中,各个核102包括数据预取器,其中该数据预取器基于在核
102上执行程序所产生的存储器访问的模式以及/或者该程序中所包括的指示核102预取高
速缓存行的预取指令,来将高速缓存行预取到高速缓冲存储器132中。

在一个实施例中,控制器202针对各集组包括计数器204和位。各位与该组的各个
存储条目相对应。在通过(例如,通过处理器100的数据或指令预取器所分配的)预取来分配
条目时,设置该位,并且在利用加载/存储需求来使用条目时,清除该位。在从条目驱逐高速
缓存行时,如果设置了位,则这表示:由于从未使用所预取的高速缓存行,因此所预取的高
速缓存行的分配是浪费的;因而控制器202使利用计数器204递增。如果计数器204达到预定
阈值,则这可以是表示应当减少通路的数量以节省电力的利用趋势。在一个实施例中,将位
保持在高速缓冲存储器132的标签阵列中。在一个实施例中,控制器202针对组的各集包括
计数器204,并且控制器202仅在(例如,在决定块706中)判断为针对组的所有集的计数器
204超过阈值的情况下,才(例如,在决定块708中)减少所通电的通路的数量。在一个实施例
中,图2的利用计数器204记录当前集组的NUM_PBNU,并且控制器202(例如,在块704中)在诸
如以下等的适当事件时检查NUM_PBNU:预定太阳城集团段结束时、(例如,在图7的流程图的各循环
处)监视新的集组时、或者其它适当事件。

在块701中,控制器202将索引初始化为0。该索引在这里被称为J。流程进入块702。

在块702中,控制器202最初向高速缓冲存储器132的所有集组的所有通路提供电
力。流程进入块704。

在块704中,控制器202监视当前集组(组[J])的NUM_PBNU。流程进入决定块706。

在决定块706中,控制器202判断块704中所监视的集组的NUM_PBNU是否大于上限
阈值,在一个实施例中,该上限阈值是预定值。如果为“是”,流程进入块708;否则,流程进入
决定块716。

在块708中,控制器202减少集组的通电通路的数量。另外,在使该组的目标通路断
电之前,控制器202驱逐目标通路中的具有有效数据的所有高速缓存行,使得有效数据不会
丢失。流程进入块722。

在决定块716中,控制器202判断块704中所监视的集组的NUM_PBNU是否小于下限
阈值,在一个实施例中,该下限阈值是比上限阈值小以提供滞后的预定值。如果为“是”,流
程进入块718;否则,流程进入块722。

在块718中,控制器202增加集组的通电通路的数量。另外,在使组的目标通路通电
之后,控制器202使目标通路无效。流程进入块722。

在块722中,控制器202更新索引J以指定下一集组,其中该操作优选包括使J递增、
并且在J达到集组的数量时绕回至0。流程返回至块704,以监视该索引所指定的下一集组的
NUM_PBNU。

现在参考图8,示出例示图2的高速缓冲存储器132的用以进行集的组的通路的选
择性供电的操作的流程图。如图6的实施例那样,图8的实施例也采用集组的命中率作为用
于判断减少或增加针对各集组所通电的通路的数量是否可能有益的利用趋势。然而,图8的
实施例还采用向集组的访问频率以及命中率作为利用趋势。集组的访问频率是向集组的访
问率的度量。在一个实施例中,控制器202使用向当前集组的访问次数,以(例如,在块804
中)在诸如以下等的适当事件时不仅计算命中率而且还计算访问频率:预定太阳城集团段结束时、
(例如,在图8的流程图的各循环处)监视新的集组时、或者其它适当事件。

一般而言,如上所述,如果针对集组的命中率相对较低,则(除非同样如以上所论
述的所有的通路都已通电,否则)这通常将表示用以增加集组的通电通路的数量的需求。然
而,如果集组的访问频率非常低,则可能不值得这样做,因为:访问很少发生,使得较小集组
的省电可能比潜在增加的高速缓存命中率这一相对较小的性能益处有价值。此外,如果访
问频率非常低并且命中率高(这暗示着相对较大的集组),则减少集组的通电通路的数量可
能是有益的,因为较小集组的省电可能比高的高速缓存命中率这一相对较小的性能益处有
价值。流程从块801开始。

在块801中,控制器202将索引初始化为0。该索引在这里被称为J。流程进入块802。

在块802中,控制器202最初向高速缓冲存储器132的所有集组的所有通路提供电
力。流程进入块804。

在块804中,控制器202监视当前集组(组[J])的命中率和访问频率。流程进入决定
块806。

在决定块806中,控制器202判断在块804中所监视的集组的命中率是否大于上限
命中率阈值,在一个实施例中,该上限命中率阈值是预定值。如果为“是”,则流程进入决定
块807;否则,流程进入决定块816。

在决定块807中,控制器202判断在块804中所监视的集组的访问频率是否小于下
限访问频率阈值,在一个实施例中,该下限访问频率阈值是预定值。如果为“是”,则流程进
入块808;否则,流程进入决定块822。

在块808中,控制器202减少集组的通电通路的数量。另外,在使该组的目标通路断
电之前,控制器202驱逐这些目标通路中的具有有效数据的所有高速缓存行,使得有效数据
不会丢失。流程进入块822。

在决定块816中,控制器202判断在块804中所监视的集组的命中率是否小于下限
命中率阈值,在一个实施例中,该下限命中率阈值是预定值。如果为“是”,则流程进入决定
块817;否则,流程进入块822。

在决定块817中,控制器202判断在块804中所监视的集组的访问频率是否大于上
限访问频率阈值,在一个实施例中,该上限访问频率阈值是预定值。如果为“是”,则流程进
入决定块819;否则,流程进入块822。

在决定块819中,控制器202判断集组的所有通路当前是否均通电。如果为“是”,则
流程进入块821;否则,流程进入块820。

在块820中,控制器202增加集组的通电通路的数量。另外,在使该组的目标通路通
电之后,控制器202使目标通路无效。流程进入块822。

在块821中,控制器202使集组的通电通路的数量减少为一个通路。另外,在使该组
的目标通路断电之后,控制器202驱逐目标通路中的具有有效数据的所有高速缓存行,使得
有效数据不会丢失。此外,如上所述,控制器202确保其在基于集组的命中率以及访问频率
来进行集组的通电通路的数量的任何大小调整之前,等待至少预定太阳城集团量。流程进入块
822。

在块822中,控制器202更新索引J以指定下一集组,其中该操作优选包括使J递增、
并且在J达到集组的数量时绕回至0。流程返回至块804,以监视该索引所指定的下一集组的
NUM_PBNU。

已考虑到集组的粒度改变的各种实施例。例如,在图2的实施例中,将集分组成八
个互斥的组(各集组具有16个通路),由此允许多达128个可单独供电的集组通路。然而,已
考虑到具有不同数量的互斥的组以允许有更多或更少的单独可供电通路的其它实施例。在
一个实施例中,各集可以是其自身的互斥的组,使得L2高速缓存器124中的各条目可以是集
组通路。注意,组的数量越大,可以对L2高速缓存器124进行预算的粒度越精细,以使该L2高
速缓存器12适合所分析的程序的需求,而组的数量越少,描述集组通路特征所需的控制位
越少。在一个实施例中,尽管组中的集的数量是32,但已考虑到组中的集的数量更多或更少
的其它实施例。

尽管说明了选择性地向集的组内的通路供电的高速缓冲存储器是多个处理器内
核共用的高速缓冲存储器的实施例,但已考虑到高速缓冲存储器专用于单个内核、或者由
比处理器的所有内核少的内核共用的其它实施例。此外,尽管说明了选择性地向集的组内
的通路供电的高速缓冲存储器是处理器的高速缓冲存储器层级的特定级(例如,3级)处的
高速缓冲存储器,但已考虑到高速缓冲存储器处于不同级(例如,1级、2级)的其它实施例。
另外,说明了采用预定阈值的各种实施例。在一个实施例中,例如利用操作系统或其它系统
软件,预定阈值中的一个或多个是用户可编程的。在一个实施例中,例如采用以下形式将预
定阈值中的一个或多个制造到控制器202中:硬接线逻辑、可熔断(即,可更新)的熔断器、以
及/或者可打补丁的处理器100的微代码。

尽管这里已经说明了本发明的各种实施例,但应当理解,这些实施例是以示例而
非限制性的方式呈现的。相关计算机领域的技术人员将明白,可以在没有背离本发明的范
围的情况下对这些实施例进行形式和细节方面的各种改变。例如,软件可以实现这里所述
的设备和方法的例如功能、制造、建模、模拟、描述和/或测试。这可以通过使用通用编程语
言(例如,C、C++)、包括Verilog HDL、VHDL等的硬件描述语言(HDL)、或者其它可用程序的来
实现。这种软件可以配置在诸如磁带、半导体、磁盘或光盘(例如,CD-ROM、DVD-ROM等)等的
任何已知的计算机可用介质、网络、有线、无线或其它通信介质中。这里所述的设备和方法
的实施例可以包括在诸如(例如,以HDL所实现或指定的)处理器内核等的半导体知识产权
内核中,并且在集成电路的制造中变换成硬件。另外,这里所述的设备和方法可以作为硬件
和软件的组合来实现。因而,本发明不应局限于这里所述任何典型实施例,而应仅根据所附
权利要求书及其等同物来定义。具体地,可以在可用于通用计算机的处理器装置内实现本
发明。最后,本领域技术人员应当理解,在没有背离如所附权利要求书所定义的本发明的范
围的情况下,这些技术人员可以容易地使用所公开的概念和特定实施例作为用于设计或修
改用于执行本发明的相同目的的其它结构。

关 键 词:
高速 缓冲存储器 及其 工作 方法 处理器
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:高速缓冲存储器及其工作方法和处理器.pdf
链接地址:http://zh228.com/p-6019661.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

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


收起
展开
葡京赌场|welcome document.write ('');