计算机工程与科学-投稿模板复习进程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机工程与科学-投
稿模板
一种低开销的异构可变相联度
二级Cache结构
A Low-overhead Heterogeneous Variable Way L2
Cache
***,***,***
Y***, Y*** , Z***
(国防科学技术大学计算机学院,湖南长沙 410073)
(School of Computer Science, National University of Defense Technology, Changsha, Hunan
410073, China)
摘要:V-Way Cache结构利用存储访问在组之间分布不均匀性,根据需求动态调整组相联度,具有比传统Cache结构更有效的资源利用率。
然而,V-Way Cache结构组相联度调整以增大Tag阵列容量为代价,增加了面积、功耗等开销,且Tag阵列利用率不高。
本文对V-Way Cache结构进行优化,提出一种低开销的异构可变相联度Cache结构HV-Way Cache。
HV-Way Cache采用异构Tag阵列组织,通过允许多个组共享Tag项资源以缩减Tag路容量;Tag项替换信息以组为单位组织,挑选最久没有被使用的项作为被替换项。
使用Cacti和Simics模拟器进行模拟实验,结果表明HV-Way Cache结构能以很少的性能损失实现面积、功耗开销的极大降低。
Abstract: Exploiting non-uniform distribution of cache accesses among sets, V-Way cache allows varying ways in sets with the run-time demands and outperforms conventional set-associative cache in resource utilization. However, the tag array in V-Way cache is expanded which induce large area and power overhead. Considering the tag array is under-utilized in V-Way cache, we propose a low-overhead heterogeneous variable way cache, named HV-Way cache. HV-Way cache adopts heterogeneous tag array and cut down capacity of tag ways by sets sharing in the same way. Maintaining tag replacement information in per-set granularity, HV-Way cache selects the least recently used tag entries for eviction. Experiment results of Cacti and Simics simulators show that HV-Way cache brings down the latency, area and power overhead greatly at the expense of small performance loss.
关键词: Cache;低开销;异构结构;替换策略
Key words: Cache; Low-overhead; Heterogeneous Or ganization; Replacement Strategy
中图分类号:TP302
1 引言
目前广泛使用的多路组相联Cache结构将Cache空间分成若干组,每组包含相同数目Cache块,使用LRU替换策略管理资源。
由于存储访问在Cache组之间的分布呈现不均匀性,传统结构等同对待所有组的方式造成了资源浪费。
近年来,不少学者研究异构相联度Cache结构[1]-[4],允许各个组实际包含的数据块数目变化,以提高资源利用率。
根据管理策略的不同,现有异构相联度Cache结构大致可以分成两类:一类基于LRU替换策略管理,如HWS[1](Heterogeneous Way-Size Cache)、SBC[2](Set Balancing Cache)等。
LRU替换策略的基本出发点是局部性原理。
二级Cache上存储访问的局部性特征经过一级Cache层次过滤后,LRU替换策略并不能有效管理Cache资源,还存在进一步提升性能的空间。
另一类基于全局替换策略管理,如IIC[3](Indirect Index Cache)、V-Way Cache[4](Variable-Way Cache)等。
与LRU替换策略相比,全局替换策略可以减轻局部性特征被过滤的影响,但是实现开销很大。
IIC和V-Way Cache都以增加Tag阵列容量为代价实现一定程度上全局替换。
二级Cache结构设计应该在失效率、访问延迟、面积、功耗等因素之间权衡。
针对V-Way Cache中Tag阵列利用率低、开销大的问题,本文对其进行优化,提出一种低开销的异构可变相联度Cache结构(Heterogeneous Variable Way Cache,简称为HV-Way Cache)。
它采用异构Tag阵列组织方式,允许各个Tag路中包含的组的数目不同;使用Reuse替换策略管理数据阵列,允许各个Tag组中对应的数据项数目不同。
分别使用
Cacti[5]和Simics[6]模拟器进行开销、性能分析,实验结果表明,HV-Way Cache能以很少的性能损失获得面积、功耗开销的大大降低。
2 异构可变相联度Cache 结构
2.1 整体框架
图 1 HV-Way Cache 整体结构框图
HV-Way Cache 结构对V-Way Cache 结构的Tag 阵列进行优化,采用异构Tag 阵列组织形式,实现Tag 和数据阵列更加灵活的配置,整体框图如图 1所示。
HV-Way Cache 中Tag 和数据阵列分离,Tag 项和数据项之间使用双向指针关联。
Tag 阵列采用异构多路组相联形式,基于LRU 替换策略管理,每路包含的组的数目i
W S 不同,且满足公式1。
数据阵列
使用地址索引方式访问,基于Reuse 替换策略管理,优先淘汰数据阵列中重用次数为0的项。
j i if S S j i W W ≤≥,
(1)
与传统多路组相联结构相比,HV-Way Cache 结构中的Tag 项中增加数据项地址信息,使用LRU 表集中维护Tag 项的LRU 信息;数据项中增加Tag 项地址信息,使用RCT 表记录每个数据项的重用次数、有效位信息。
HV-Way Cache 结构中必须满足Tag 资源数多于数据资源数,即TDR (Tag-to-Data Ratio )大于1,以引起较充裕Tag 资源对有限数据资源的竞争,实现资源有效利用。
2.2 异构Tag 阵列
LRU 替换策略总是将最近访问的Cache 块放置在组的MRU 位置,并选择组中LRU 块作为被替换块,导致各个路的利用率存在差异,通常MRU 路的利用率最高,LRU 路的利用率最低。
异构Tag 阵列的基本思想是允许Tag 路中多个组共享资源以缩减Tag 路容量,降低整体开销的同时尽量减少对性能的影响。
除了第0路Tag 外,其它Tag 路进行访问时首先经过地址掩膜,从组索引地址的最高位开始屏蔽若干位。
使用组数目计算Tag 路容
量,假设第i 路的容量为i
W S ,则第i + 1路的容量为k
W
i
S 2,其中0≥k ;组索引地址位数为
()0
2log W S ,第i 路屏蔽的地址位数为()0
2
log W W S S
i
;所有Tag 项中tag 长度统一,等于容量最少
的路1
-n W S 中tag 所需长度。
Tag 项的LRU 信息以组为单位使用单独的LRU 表维护;LRU 表中每一项以队列形式组织,按照LRU 顺序记录对应Tag 组中各个路的序号;LRU 表的长度等于第0路Tag 中组数目0
W S 。
LRU 信息更新是异构Tag 阵列实现的关键。
如果Cache 访问组索引地址为index ,路i 的容量k
W W
S S i
20=,LRU 表的更新操作如下:
● 当Cache 访问命中路i 时,找出LRU 表中低位地址与index 的低()i
W S 2log 位相同的项,
将路i 插入各项的MRU 位置(队列头)。
● 当Cache 访问失效时,查找LRU 表中地址为index 的项,将位于其LRU 位置(队列
尾)的路i 作为被替换块地址,淘汰Tag 路i 中组地址与index 的低()i
W S 2log 位相同的块
以放置新加载块,然后按照Cache 访问命中路i 时的操作更新LRU 表。
(a) 命中路0
(b) 命中路1(c) 失效
图 2两路组相联异构Tag 阵列LRU 表更新示例
图 2描述一个简单的两路组相联异构Tag 阵列中LRU 表更新示例,其中路0包含8项,路1包含4项,LRU 表包含8项,当前Cache 访问的组索引地址为110,路1的访问地址需要屏蔽index 的最高1位。
根据tag 比较结果的不同,LRU 表的更新操作可以分成如下三种情况:
● 情况一:Cache 访问命中路0时,更新LRU 表中项6(110),将路0放置在MRU 位
置,路1放置在LRU 位置,如图 2(a)所示。
● 情况二:Cache 访问命中路1时,更新LRU 表中项2(010)与项6(110),将路1
放置在MRU 位置,路0放置在LRU 位置,如图 2(b)所示。
● 情况三:Cache 访问失效时,查找LRU 表中的项6(110),此时路1位于LRU 位
置,则将路1中块2(010)作为被替换块,放置新加载块;然后将LRU 表中项2(010)与项6(110)中路1移动到MRU 位置,如图 2(c)所示。
2.3 存储访问操作
发生二级Cache 访问操作时,HV-Way Cache 首先根据存储地址访问Tag 阵列,进行Tag 比较。
如果命中,则根据命中Tag 项中记录的数据项地址访问数据阵列,读出数据。
如果失效,则分别在Tag 阵列和数据阵列中找到被替换Tag 和数据项,用于放置新加载数据信息。
被替换Tag 项选取原则是Tag 组中的LRU 项,被替换数据项的选取依赖于被替换Tag 项。
如果被替换Tag 项为有效项,则被替换Tag 项对应的数据项作为被替换数据项;否则由Reuse 替换策略选取。
HV-Way Cache 中数据阵列的实现与V-Way Cache 相同,使用RCT 表记录每个数据项的重用次数。
当需要Reuse 替换策略选取被替换数据项时,顺序搜索RCT 表,找到重用次数为0的项。
3 实验及结果
3.1 实验设置
模拟实现两种HV-Way Cache 配置方案,并与V-Way Cache 结构进行比较。
三种Cache 结构的配置如下:
● V-Way Cache :基准结构,128KB ,Tag 阵列四路组相联,TDR=2,总tag 项数目为
4096项,总数据项数目为2048项。
● HV-Way-1:在V-Way Cache 基础上将Tag 阵列分成tag1和tag2两部分,tag1包含路
0和路1,tag2包含路2和路3,且将tag2中组的数目缩减一半。
总的来说,Tag 阵列容量缩减1/4,数据阵列不变。
● HV-Way-2:在HV-Way-1基础上维持TDR=2,即将数据阵列也缩减1/4。
使用Cacti6.5估算访问延迟L 、面积A 、每次访问的动态读能量DE 、漏流功耗LP 。
存储地址设置为64b ,块大小为64B ,温度为350K ,所有Cache 方案都采用顺序tag-data 访问模式,一个读/写端口,加权功耗优化。
Cache 开销由Tag 阵列开销和数据阵列开销两部分组成,HV-Way Cache 结构下的Tag 阵列开销通过分别计算tag1、tag2的开销得到。
L 、A 、DE 、LP 的计算公式如下:
()
data tag tag data tag L L L L L L +=+=21,m ax (2) ()
data tag tag data tag A A A A A A ++=+=21 (3) ()
data tag tag data
tag DE DE DE DE DE DE ++=+=21
(4)
()
data tag tag data
tag LP LP LP
LP LP LP ++=+=21
(5)
使用Simics 全系统模拟器进行性能分析,模拟器参数设置如表 1所示,使用
PARSEC 2.1测试组件[7]中的程序搭建并行程序负载。
PARSEC 程序中,dedup 程序由于兼容问题不能在本文环境中正确运行,排除在外,其它程序的功能描述如表 2所示。
所有程序都使用simlarge 输入集,测试用例的总线程数为8。
每个核执行约四亿条指令,前两亿条指令用来初始化各级Cache 的初始状态,后两亿条指令用来统计性能。
使用总失效率作为性能评价指标,计算公式如下:
∑=
=Cores i i sum MR Cores MR #1
#1
(6)
表 1 Simics 模拟器参数设置
参数 指标
System 1 Chip, 8 cores, Sparc-V9, Solaris 10 Core
Configuration Single -issue, in -order, no-branch-predictor L1 I/D Cache
32KB, 2 way, LRU, 64B line, 1 cycle
Convention al L2Conventional private L2 cache; each core has 128KB, 2 way, serial tag-data access, 12/18 cycles
V-Way-P V-Way Cache as private L2 Caches
HV-Way-P1 HV-Way-1 Cache as private L2 Caches
HV-Way-P2 HV-Way-2 Cache as private L2 Caches
CC Protocol Snoop based MESI protocol
Main Memory 250 cycles
表 2 PARSEC测试程序功能描述
编号程序名称描述
s1 blackschole
s Calculates portfolio price using Black-Scholes PDE
s2 bodytrack Computer vision, tracks 3D pose of human body s3 canneal Synthetic chip design, routing
s4 facesim Physics simulation, models a human face
s5 ferret Pipelined audio, image and video searches
s6 fluidanimat
e
Physics simulation, animation of fluids
s7 freqmine Data mining application
s8 raytrace Computer animation application
s9 streamclust
er
Kernel to solve the online clustering problem
s10 swaptions Computes portfolio prices using Monte-Carlo
simulation
s11 vips Image processing, image transformations
s12 x264 H.264 video encoder
表 3 不同工艺下的开销比较
90nm L(ns
)
A
(mm2)
DE(nJ
)
LP(mW
)
45nm L(ns
)
A(mm2
)
DE(nJ
)
LP(mW
)
V-Way 3.43
0 3.990 0.276 60.184 V-Way 1.27
8
0.775 0.088 171.57
V-Way-2 3.28
8 4.088 0.284 59.719 V-Way-2 1.17
9
0.780 0.091 173.62
5
HV-Way-1 3.28
8
3.937 0.279 56.164 HV-Way-
1
1.17
9
0.742 0.089 162.75
4
HV-Way-2 2.52
4
2.593 0.245 45.780 HV-Way-
2
1.13
6
0.649 0.074 130.05
2
3.2 开销分析
表 3给出不同Cache配置方案在90nm、45nm工艺下的延迟L、面积A、动态读能量DE和漏流功耗LP,其中V-Way的Tag阵列为四路组相联结构,V-Way-2、HV-Way-1、HV-Way-2的Tag阵列分成两个两路组相联的Tag子阵列。
在Cacti进行功耗优化前提下,V-Way-2采用两个Tag子阵列的实现方式与V-Way相比,延迟得到优化,但是增加了面积、能量开销。
HV-Way-1将Tag阵列分成两个容量不同的子阵列,与V-Way配置方案相比降低了延迟、面积和静态功耗开销,但是动态能量开销有所增加;与V-Way-2配置方案相比延迟相同,面积、动态能量和静态功耗开销都得到降低。
HV-Way-2在HV-Way-1基础上进一步减少了数据阵列容量,与V-Way、V-Way-2相比这四种开销都得到极大降低。
3.3 性能分析
分别将传统多路组相联Cache、V-Way Cache、HV-Way-1和HV-Way-2四种方案作为片上多核处理器中私有L2 Caches,图3对它们的二级Cache失效率进行比较。
其中标号
s1到s12分别表示12个程序,标号G 为几何平均值。
四种Cache 方案的平均二级Cache
失效率分别为2.95%、1.84%、1.85%和1.92%。
与V-Way Cache 结构相比,HV-Way Cache 结构有一定的性能损失,HV-Way-1方案的平均二级Cache 失效率增加0.54%,HV-Way-2方案的平均二级Cache 失效率增加4.35%。
尽管如此,由于Reuse 替换策略具有比LRU 替换策略更有效地资源利用率,HV-Way Cache 结构的性能仍然优于传统结构。
HV-Way-1方案的平均二级Cache 失效率比传统结构降低37.29%,HV-Way-2方案的平均二级Cache 失效率比传统结构降低35.25%。
L 2 M i s s R a t e s (%)
Applications
图 3 二级Cache 失效率比较
从上面描述可以看出,如果HV-Way Cache 只缩减1/4的Tag 容量,对性能的影响很小,可以忽略,但是延迟、面积、功耗等开销降低也有限;如果将Tag 和数据容量同时缩减1/4,则能大大降低延迟、面积、功耗等开销,但是对性能的影响就不能忽略。
为了适应不同应用需求,HV-Way Cache 结构可以实现更加灵活地可重配置方案,将Tag 和数据阵列分成若干子阵列,根据需要控制各个子阵列的关断与开启。
4 结束语
V-Way Cache 增大Tag 阵列容量以实现组相联度的动态变化,导致Tag 阵列利用率低,增加了面积、功耗等开销。
本文对V-Way Cache 进行优化,提出一种异构可变相联度Cache 结构HV-Way Cache 。
它采用异构Tag 阵列组织方式,通过有选择地缩减Tag 路容量达到降低开销的目的;Tag 阵列基于LRU 替换策略管理,选择组中最久没有被使用的项作为被替换Tag 项;数据阵列基于Reuse 替换策略管理,淘汰重用次数为0的项或者被替换Tag 项对应数据项。
使用Cacti 估算访问延迟、面积、功耗开销,与V-Way Cache 相比,HV-Way Cache 在不同工艺下的开销得到降低。
基于Simics 模拟器、PARSEC 并行程序负载的性能模拟结果表明,HV-Way Cache 结构的平均二级Cache 失效率略高于V-Way Cache 结构,远远低于传统Cache 结构。
今后,我们将研究可重配置异构可变相联度Cache 结构,以便更灵活地在性能与开销之间权衡。
参考文献:
[1]Jaume Abella and Antonio González. Heterogeneous way-size cache [C]. Proceedings of the 20th
Annual International Conference on Supercomputing, 2006: 239-248.
[2]Dyer Rolán, Basilio B. Fraguela and Ramón Doallo. Adaptive line placement with the set
balancing cache [C]. Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture, 2009: 529-540.
[3]Erik G. Hallnor and Steven K. Reinhardt. A fully associative software-managed cache design [J].
SIGARCH Computer Architure News, 2000, 28(2): 107-116.
[4]Moinuddin K. Qureshi, David Thompson, Yale N. Patt. The v-way cache: demand based
associativity via global replacement [C]. Proceedings of the 32nd Annual International
Symposium on Computer Architecture, 2005: 544-555.
[5]Naveen Muralimanohar and Rajeev Balasubramonian. Cacti 6.0: A tool to understand large
caches [R]. Technical report, University of Utah and Hewlett Packard Laboratories, 2009.
[6]Peter S. Magnusson, Magnus Christensson, Jesper Eskilson, et al. Simics: a full system
simulation platform [J]. Computer, 2002, 35(2): 50-58.
[7]Christian Bienia, Sanjeev Kumar, Jaswinder Pal Singh and Kai Li. The parsec benchmark suite:
Characterization and architectural implications [C]. Proceedings of IEEE/ACM International Conference on Parallel Architectures and Compilation Techniques, 2008: 72-81.
作者简介
稿件编号:110175
修改说明:
1、******************************************
2、****************************
3、****************************
4、*********************
5、**************。