一种基于路预测的选择性可重构Cache方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

彭蔓蔓,彭方
湖南大学计算机与通信学院,长沙(410082)
E-mail: melaniepf@
摘要:在嵌入式系统中,性能和功耗是设计者最关心的两大要素。

路预测是一种基于传统组相联Cache的低功耗优化策略,以一定的性能损失为代价来减少系统功耗,但在预测准确性较低的情况下,不仅无助于功耗的降低,而且会导致性能的退化。

本文在路预测的基础上,提出一种可重构Cache方案,通过动态地开启和关闭路预测功能,并根据路预测表的记录选择性调整Cache相联度,消除路预测机制带来的不利影响,极大地减少预测失效开销,满足高性能低功耗的要求。

关键字:路预测; 可重构Cache;高性能;低功耗
1.引言
随着超大规模集成电路技术的不断发展,处理器的运算速度与内存容量都在飞速增长。

然而,这种快速发展也扩大了处理器运算速度与访存速度之间的瓶颈。

Cache作为处理器与主存之间的桥梁,能够从主存中移入部分数据,利用所访问数据的空间局部性(Spatial Locality)和时间局部性(Temporal Locality),减少访存时间,提高系统性能。

然而,Cache的存在不仅占据了大量的芯片面积,也带来了较大的能耗。

例如:片内Cache分别占用了Alpha 21264和Strong ARM微处理器面积的30%和60%,它们的功耗分别占整个芯片功耗的16%和43%[1]。

因此,从体系结构上优化Cache设计,能够给系统的性能和功耗带来很大的改善。

传统的组相联Cache在进行标识比较的同时,读取并放大各路数据部分的信号,当标识比较结果确定后,将命中数据送往总线。

这样索引(Index)映射组(Set)所有路(Way)标识和数据,不管是否命中,Cache都将被激活,导致不必要的功耗产生。

为此,Hasegawa等人提出了一种称为分阶段组相联Cache(phased set-associative Cache)[2]的路预测算法,即在第一个周期进行标识比较,在第二个周期读取命中数据,从而避免了不必要的功耗开销,但增加了一个周期的比较时间,对性能造成了一定影响。

Michael D. Powell,等人使用路预测和选择性直接映射Cache相结合的方法,利用局部性原理,在指令Cache中使用路预测算法,而在数据Cache中采用直接映射方法,在不影响性能的前提下减少L1 Cache的能耗[3]。

带有效位预判的路预测Cache(WPD-V)[4]在路预测的基础上排除了对有效位为0的空块的访问。

它在MRU 表中读取预测路的同时,访问相应的有效位。

若有效位为0,说明预测路为空块,直接对剩下各路进行组相联访问;若有效位为1,则按路预测的方式访问。

有效位预判减少了对无效块的预测访问,节省了Cache能耗。

路预测Cache的性能与功耗,很大程度上取决于预测的准确性和预测失败的代价,而其准确性与所访问数据的时间局部性和空间局部性有关。

在预测失效率很高的情况下,路预测Cache比传统组相联Cache要多出接近一个时钟周期的访存时间,导致性能退化。

本文采用的基于路预测的选择性可重构(WPSC:Way-Predict Selective Configurable) Cache方案在此背景下提出,它在映射组中预先指定一路作为访问对象,在进行数据访问时,先采用直接映射
2.WPSC Cache方案
本文从体系结构的层次提出Cache的优化方案。

2.1节介绍方案的基本思想,2.2节设计Cache模型的组织结构和附加硬件构成,2.3节说明Cache的工作过程。

2.1 WPSC Cache的基本思想
一个稳定的系统应该在运行各种应用程序时均表现良好的性能,但事实上,不同程序的特点很不一致,有的程序循环模块较多,具有很好的空间和时间局部性;有的程序分支较多,数据的空间分布不太均匀。

因此需要综合考虑这些情况,设计一种较为均衡的Cache方案。

Cache的功耗主要来自于SRAM访问产生的能耗,传统组相联Cache的功耗和时间公式如下所示:
E cache = N tag * E tag + N data * E data (1)
T cache = 1 (2)
其中,N tag和N data分别为需要访问的标识和数据的路数,E tag和E data分别为访问每一路标识和数据的能耗。

T cache是Cache访问时间,固定为1个时钟周期。

在四路组相联Cache中,公式(1)可写为
E cache = 4* E tag + 4* E data = 4*( E tag + E data) (3)
在路预测Cache中,采用直接映射的方式访问预测路,在预测失败的情况下,采用组相联的方式访问其它路。

若用phr(predict hit rate)表示预测命中率,则有
E cache = (E tag + E data) + (1-phr) * (3E tag + 3 E data) (4)
T cache = 1 + (1-phr) * 1 (5)
从以上公式可以看出,若phr较低,对比传统Cache,路预测对E cache的降低十分有限;而T cache则增加近一个时钟周期,几乎是原来的2倍。

另外,预测失败的功耗代价为3E tag + 3E data,若能减少这部分功耗,整体功耗则会明显下降。

基于以上情况,本文设计了一种选择性可重构Cache(WPSC)。

它在每一个时间片内,统计预测路的命中次数和总访存次数,若命中次数在总访存次数中超过一定比例,则在下一时间片内采用路预测策略;否则,关闭路预测,采用传统组相联方式。

并且通过统计Cache 命中率,采用有限状态机的方式,动态地调整Cache相联度,这样不仅可以减少采用传统组相联方式时的功耗开销,而且当启用路预测机制时,其预测失败的功耗代价将减少30%到60%。

在开启或关闭Cache路时,为避免统一关闭某一Cache路造成的数据抖动,引入了一种分组选择性策略。

这种策略的思想是在每一个Cache组中,关闭最近最少使用的一路。

由于路预测表中保存的是最近访问的一路,这一路必然不能被关闭,在总路数小于或等于4的情况下,为了简化硬件实现,我们将同一组中预测路的临近路开启或关闭,以减少重构
Cache时带来的数据抖动。

2.2 组织结构
如图1所示,与传统4路组相联Cache类似,访问地址的索引决定要访问的组,通过标识比较来决定命中的一路数据。

不同的是,优化后的Cache模型增加了几个模块,主要有路预侧器、路预测表、重构状态机、路开关表以及访问控制器。

路预测器用于根据本次Cache访问的结果来决定同一个数据组中下一次预先访问的数据路。

由于许多程序具有较高的访问局部性,因此最近被访问的数据路很可能在下一次被重新访问。

形式化地说,若A为Cache的关联度,i为本次访问的数据路,j为本次访问的数据组,有0≤i≤A-1。

在本次访问之后的最近一次访问组j时,处理器需要的数据很可能位于路i中,这称为MRU(Most Recently Used)算法。

路预测器根据标识比较结果,可分为以下三种情况得到新的预测路:
z若本次预测路正确,路预测器将不改变预测路。

z若本次预测路错误,但是同组其它路命中,则将根据标识比较结果,将本次命中的路作为新的预测路。

z若本次预测路错误,且同组其它路均失效(Cache失效),则将新的置换数据路作为新的预测路。

路预测表用于存储各个数据组的预测路,由于Cache相联度为4,因此需要2bit存储预测路。

路预测表的信息由路预测器修改,每次进行访问时,由地址的索引部分使能相应组的预测路,并通过访问控制器解码指定访问路径。

图1 WPSC Cache整体结构图
1)Cache访问次数Cache Access Number(CAN):用以记录时间片内Cache的访问次数。

Cache的访问次数用来判断Cache的访问频度,如果在一个时间片内,Cache访问次数较少,则该阶段的统计数据可信度较低,不能作为重构的依据。

2)Cache访问次数阀值Cache Access Bound(CAB):用以设定Cache访问次数的最低限制值,
只有访问次数高于该值,统计数据才能作为重构判断的依据。

3)路预测命中次数Prediction Hit Number(PHN):用以记录时间片内Cache的路预测命中次
数。

若其超过一定阀值,则在下一时间片内开启或保持开启路预测策略,否则,则关闭或保持关闭路预测策略。

4)路预测命中阀值Prediction Hit Bound(PHB):用以设定采用路预测机制的命中次数最低
限制值。

5)Cache命中次数Cache Hit Number(CHN):用以记录Cache的命中次数,若在时间片内其
超过最高阀值,则进行Cache路关闭重构;若低于最低阀值,则进行路开启重构。

6)路关闭阀值Way Close Bound(WCB):用以设定进行路关闭重构的Cache命中次数限制
值。

7)路开启阀值Way Open Bound(WOB):用以设定进行路开启重构的Cache命中次数限制
值。

如图2所示,路预测重构状态机有4种状态,其中S0为起始状态,表示处于路预测开启的正常态;S1表示路预测关闭的正常态;S2表示路关闭重构态;S3表示路开启重构态。

在每个时间片结束后,状态机会根据不同的条件进行状态转换。

条件A:CAN< CAB或CAN≥CAB,且WOB <CHN< WCB。

条件A表明当Cache访问次数没有超过阀值,或者Cache命中次数在路重构阀值之间时,状态不作改变。

条件B:CAN≥CAB,且PHN<PHB。

条件B是当路预测命中次数低于阀值时,关闭路预测功能。

条件C:CAN≥CAB,且PHN≥PHB。

条件C是当路预测命中次数大于或等于阀值时,开启路预测功能。

条件D:CAN≥CAB,且CHN≤WOB。

条件D是当Cache命中次数低于路开启阀值时,进行路开启重构。

条件E:CAN≥CAB,且WCB≤CHN。

条件D是当Cache命中次数高于路关闭阀值时,进行路关闭重构。

图2 路预测重构状态机状态变化示意图
图3 WPSC Cache工作过程示意图
路开关表用于记录分组选择性策略下路的开关情况,其记录数与Cache 的组数(set)相同,每一条记录有4bit ,用以记录对应组路的开启和关闭情况。

’0’表示路开启,’1’表示路关闭。

例如,当路开关表记录为”1110”时,表明Cache 有3路开启,1路关闭,即该组第4路关闭,其他路开启。

访问控制器用于控制对Cache 各路的访问。

通过路开关表的输入,指定可访问路径。

路预测重构状态机的输入,可以判定是否采用路预测策略。

在路预测的机制下,通过路预测表的输入指定相关预测路。

2.3 工作过程
Cache 的工作流程图如图3所示,首先初始化各个参数(CAB 、PHB 、WCB 、WOB),以及清空各个计数器(CAN 、PHN 、CHN),接着进入访存处理循环。

每个循环的开始先判断时间片是否已经结束。

若结束,则通过路预测重构状态机对各统计数据进行自适应处理,如果满足重构条件,还要对Cache 进行重构操作。

然后清空各个计数器,进入下一时间片。

访存操作需要先判定是否采用路预测机制。

在路预测机制下,访存分两步进行,第一步是对预测路进行直接映像访问,若不命中,则对余下路进行组相联访问;而在非路预测机制下,需要对所有路进行组相联访问。

每次组相联访问的均是路开关器中标注的有效路,这样可以减少不必要的功耗开销。

值得注意的是,不论路预测机制开启或关闭,路预测器和路预测表都在正常运行。

因为即使关闭路预测功能,仍然需要统计路预测的命中次数,不同的是,若关闭路预测功能,访问控制器将忽略路预测表提供的预测路信息。

3. 实验结果与分析
3.1 仿真环境与参数配置
为了评价Cache 模型的性能,本文使用了目前流行的Sim-panalyzer 模拟器与SPEC2000测试程序集进行模拟仿真。

Sim-panalyzer 是Simple Scalar 模拟器的扩展,可以用来同时分析程序运行时的性能与功耗。

本文选用0.13μm 工艺,333MHz 工作频率以及1.8V 工作电压的配置进行模拟,修改了Cache 相关模块代码,使其具有选择性可重构的功能特点。

3.2功耗与性能分析
为了分析本文提出的Cache 模型性能,选取Chen Hsin-Chuan 等人提出的有效位预判路预测(WPD-V)方法[4]作为参照模型同时进行仿真对比。

WPD-V Cache 在路预测的基础上排除了对有效位为0的空块的访问,但没有运用重构策略。

两种Cache 模型从容量、块大小以及其它外部环境均保持一致,因此具有可比性。

本文的功耗和性能数据采用归一化的方式进行比较,以传统四路组相联Cache 作为归一化标准。

归一标准指标
原性能指标归一化指标=
如图4所示,用1.0表示传统四路组相联的Cache 能耗,在前面的9个基准测试程序中,路预测Cache 的功耗均不到传统组相联Cache 的50%,而在后面3个程序中,随着预测准确性的降低,其功耗增加明显。

WPSC ,由于对相联度进行了重构,因此在预测准确性较高的
程序中能耗比WPD-V 略低,而在预测准确性较低时,优化效果比较明显,同比节省能耗20%左右。

0.000.10
0.20
0.30
0.40
0.50
0.60
0.70
0.80
0.90
1.00
g o m 58k s i m g c c c o m p r e s s l i i j p e g p e r l v o r t e x t t o m c a t v s w i m s u 2c o r h y d r o 2
d
WPD-V
WPSC
图4 Cache 的能耗比较图
1.01.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
g o m 88k s i m g c c c o m p r e s s l i i j p e g p e r l v o r t e x t t o m c a t v s w i m s u 2c o r h y d r o 2d
图5 Cache 的访问时间比较图
以传统四路组相联的平均访问时间为参照标准,用1.0表示。

如图5所示,在前9个基准程序中,由于预测准确性较高,WPD-V 的平均访问时间都在1.4之下,而在后3个程序中,其访问时间骤然增至1.6以上。

当预测准确性不高时,WPSC 一般关闭路预测功能,访存时间接近传统组相联Cache ,从后3个程序的结果可以看出,其平均访存时间并未发生增长,反而有一定程度的下降。

在路预测算法的实现过程中,路预测器对路预测表的修改以及选择性重构均会带来一定的延时,而路预测表和路开关表的引入会产生一定的能耗。

合理安排延时操作的时间,可以避免对Cache 性能造成影响。

当访存数据所在行确定后(tag 值匹配或失效置换完成),路预测表的修改可与行内偏移寻址同步进行。

选择性重构可不在时间片结束之后马上进行,而是等到出现Cache 失效,在失效开销时间内进行。

这样路预测表的修改以及选择性重构均不会
4.结论
本文在路预测Cache的基础上提出了一种选择性可重构策略WPSC,有效地避免了在预测准确性不高的情况下性能的退化,并且通过在每一Cache组中选择性开启或关闭相应路径,减少了不必要的能耗开销。

对比一般的路预测Cache,本文提出的模型在性能和功耗上都有较大程度的优化。

未来的工作在于在本模型的基础上,根据数据Cache和指令Cache、以及一级Cache与二级Cache的不同特点,分别引入其它优化方案,进一步提升Cache的整体性能。

参考文献
[1]S Manne , A Klauser , D Grunwald. Pipline gating: Speculation control of energy reduction.
The 25th Annual Int’1 Symp on Computer Architecture, Barcelona, Spain, 1998
[2]Hasegawa, A., et al., “Sh3: High code density, low power,” In IEEE Micro, pp. 11-19, Dec
1995.
[3]Powell M D, Agarwal A, Vijaykumar T N, et al. Reducing Set-Associative Cache Energy via
Way-prediction and Selective Direct-mapping. In: 34th Proceedings ACM/IEEE International Symposium on Micro-Architecture (MICRO-34). Austin: ACM Press, Nov 2001, 54 – 65 [4]Chen Hsin-Chuan, Chiang Jen-Shiun. Low-power Way-predicting Cache Using Valid-bit
Pre-decision for Parallel Architectures. In: Proceedings of the 19th International Conference on Advanced Information Networking and Applications. Taipei: IEEE Press, Mar 2005, 28-30
A selective reconfigurable-cache design based on
way-predicting algorithm
Peng Manman, Peng Fang
Department of Computer and Communication, Hunan University, Changsha, (410082)
Abstract
One of the uncompromising requirements from embedded system is high performance and low power. Although way predicting is one of the most efficient methods to reduce the power consumption, system performance will be degraded when predicting accuracy is low. A reconfigurable cache architecture based on way-predicting is presented in this paper. Depending on the values of the predicting table, switch the predictor and reconfigurate cache for eliminating the negative factors of the predicting scheme. The experiments show the architecture can decrease energy consumption without significantly hindering performance.
Keywords: way-predicting, reconfigurable Cache, high performance, low power consumption。

相关文档
最新文档