欢迎来到天天文库
浏览记录
ID:13348080
大小:217.50 KB
页数:8页
时间:2018-07-22
《高性能cache结构介绍》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、高性能Cache结构介绍随着处理器的速度飞速加快,相比较内存的访问速度并没有多少提高。处理器速度和内容速度不匹配的问题日趋严峻。作为解决处理器和内存速度不匹配问题而引进的cache,如何改进其设计,提高性能,也就变得异常重要。在cache传统的体系结构中,根据映射方式不同,可以分为直接映射(direct-mapped)、组相联映射(set-associativemapped)和全相联映射(full-associativemapped)。直接映射方式的优点是tag的比较和数据的传输可以同时进行,命中时间(hittime)低,但是缺失率(
2、missrate)高,原因是程序指令执行的不均匀性。这种不均匀性会产生很多的cache访问冲突(conflict),使得在一些块被频繁地访问到,而有些块却空闲着,在cache内部会形成大量的空洞(vainholes),从而使cache的性能不能完全地发挥出来。实验表明,用直接映射的方式,大约有37.5%至42.6%的cache容量为空洞[1]。然后通过更好地设计,这些空洞是可以被利用的。如果采用组相联映射方式,可以提供比直接映射更低的缺失率,然而却增加了命中时间,因为数据传输直到tag比较完成之后才能开始。并且命中时间随着关联度的增加
3、而增加。由于传统的cache结构中,都存在一些自身不能克服的缺点。因此我们有必要改进其结构,提高访问的速度。我们知道,cache的性能主要有几个指标来衡量,缺失率、命中时间、缺失代价。采用平均访问时间作为评价cache性能的标准似乎更加合理。平均访问时间=命中时间+缺失率*缺失代价。一级cache的命中时间通常决定了处理器的时钟频率,快速地访问一级cache成为提高处理器性能的关键问题。如果能设计一种cache结构,它既能达到直接映射cache的命中时间又能保持组相联cache的命中率,那么这种结构是最理想的。到目前为止,已经有大量的
4、科研工作人员在这方面作了很深入的研究。Agarwaletal[2]提出了Hash-Rehashcache(HR-Cache),AgarwalandPudar[3]提出的Column-AssociativeCache(CA-Cache),B.Calderetal[4]提出的predictivesequentialassociativecache(PSA-Cache),J.Peir,Y.Lee,andW.Hsu[1]提出的AdaptiveGroup-AssociativeCache(AGA-Cache),T.Juan,T.Lang,and
5、J.Navarro提出的TheDifference-bitCache[6],以及TheV-WayCache[7]都通过适量的添加一些硬件部件,在命中时间和缺失率上对传统cache结构进行了改进,从而提高了cache的性能。下面对上述提到的几种cache结构做一个简单的介绍:一、HR-Cache图1HR-CacheHR-Cache的体系结构如图1所示。把cacheblocks平均分成2部分(banks),从而索引位(indexbits)就相应的减1位。把索引位相同的两行(cachelines)作为一组(set),每一部分包含一组中的一块
6、。与2路组相联不同,HR-Cache按顺序与tag位进行比较,而不是并行地进行。cacheblocks被两个不同的hash索引函数进行索引,以及通过使用这两个函数按固定的顺序进行探测。在HR-Cache结构,研究人员采用直接索引映射作为第一次hash索引函数,称由此探测的cacheblock为第一块(firstblock),同一组的另一块称为第二块(secondblock)。如果数据(data)和第一块不匹配,则检查第二块。如果数据与第二块匹配,交换第一块和第二块中的内容。根据局部性原理,刚访问的数据有可能再次被访问到,交换了第一块和
7、第二块的内容,使得下次访问相同数据能一次匹配就可以命中。如果第二次探测不匹配,则产生一次访问缺失(miss)。把第一块的内容移动至第二块,因为第一块的内容更有可能被再次访问,然后从下级存储器取得相应的数据放入第一块。如果能保证第一次匹配命中,HR-Cache结构显然能降低命中时间,大幅地提高cache的性能。问题是在这个结构,程序的局部性原理并没有被充分利用,因此并不能保证一次匹配命中的成功率。而在第一次匹配不成功之后,第二次匹配无论是够匹配成功有需要额外的延迟(delay)。另外一点,但第二次匹配成功是,还需要交换两块内容的数据,这
8、对大块的cache来说,比如每块128字节,也是一个问题。二、CA-Cache图2CA-CacheCA-Cache在HR-Cache的基础上为每一行增加了一个rehash位(rehashbit),表示这个位置是否通过re
此文档下载收益归作者所有