降低Cache失效率方法的探讨

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:liongliong562
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:Cache失效率的高低是影响Cache性能的一个重要因素,采取有效的方法降低Cache失效率,对提高Cache的性能乃至整个系统的性能有着举足轻重的作用,本文就几种降低Cache失效率的方法进行探讨。
  关键词:Cache;失效率
  中图分类号:TP314 文献标识码:A文章编号:1007-9599 (2011) 19-0000-01
  Methods to Reduce the Failure Rate of Cache
  Guo Tongzhu
  (School of Computer Science&Engineering,Anhui University of Science&Technology,Huainan232001,China)
  Abstract:Cache failure rate is affecting the level of performance is an important factor Cache,Cache effective ways to reduce the failure rate,to improve the performance of Cache performance of the whole system has a pivotal role in this paper several methods to reduce the failure rate Cache were discussed.
  Keywords:Cache;Failure rate
  Cache失效率的高低是影响Cache性能的一个重要因素,采取有效的方法降低Cache失效率,对提高Cache的性能乃至整个系统的性能有着举足轻重的作用。
  按照产生失效的原因不同,可以把Cache的失效分为三类:强制性失效,容量失效和冲突失效。强制性失效是指当第一次访问一个块时,该块不在Cache中,需要从下一级存储器中调入Cache;容量失效是指如果程序执行所需的快不能全部调入Cache中,则当某些块被替换后,若又重新被访问,就会发生失效;冲突失效是指在组相联或直接映像Cache中,若太多的快映像到同一块中,则会出现某个块被别的块替换,然后又被重新访问的情况。下面就来讨论几种可以降低Cache失效率的方法。
  一、增加Cache块的大小
  降低失效率的最简单的方法是增加块的大小,增加Cache块大小会产生双重作用:一方面,利用空间局部性,可以减少了强制性失效。另一方面,增加Cache块的大小减少了Cache中块的数目,有可能增加冲突失效。刚开始增加快大小时,由于块大小还不是很大,上述第一种作用超过第二种作用,从而使失效率下降。但等到块大小较大时,第二种作用超过第一种作用,反而使失效率上升。显然,我们不能把块大小增加到使失效率上升的程度。
  二、提高相联度
  提高相联度可以给Cache块提供更多的位置选择,从而可以降低冲突失效。根据2:1Cache经验规则,容量为N的直接映像Cache的失效率和容量为N/2的路组相联Cache的失效率差不多相同。同时应当注意,提高相联度增加了硬件代价,相联度应控制在合理的范围。
  三、增加Cache的容量
  降低Cache失效率最直接的方法是增加Cache的容量,但这种方法不但会增加成本,而且还可能增加命中时间。这种方法片外Cache中用得比较多。
  四、Victim Cache
  一种能减少冲突失效次数而又不影响时钟频率的方法是在Cache和它下一级存储器的数据通路之间增加一个全相联映像的小Cache,称为Victim Cache。每当发生失效时,在访问下一级存储器之前,先检查Victim Cache中是否包含有所需要的快,如果有,就将该快与Cache中某个块作交换,从而减少了访存的概率。Victim Cache对减少冲突失效很有效,尤其是对于那些小型的直接映像数据Cache更是如此。
  五、伪相联映像Cache
  伪相联映像Cache是一种既能获得多路组相联映像Cache的低失效率,又能保持直接映像Cache的命中速度的方法。伪相联Cache是在逻辑上把直接映像Cache的空间上下平分为两个区。对于任何一次访问,伪相联Cache先按直接映像Cache的方式去处理。若命中,则其访问过程与直接映像Cache的情况一样。若不命中,则再到另一区相应的位置去查找。若找到,则发生了伪命中,否则就只好访问下一级存储器。
  六、硬件预取
  Victim Cache和伪相联映像Cache都能在不影响处理器时钟频率的前提下降低失效率,预取技术也能够实现这一点。指令和数据都可以预取,预取的内容可以直接放入Cache,也可以放在一个访问速度比主存快的外部缓冲器中。指令预取通常由Cache之外的硬件完成。如Alpha AXP 21064微处理器在发生指令失效时取两个块:被请求的指令块和顺序的下一指令块。被请求指令块返回时放入Cache,而预取指令块放在缓冲器中;如果某次被请求的指令块正好在缓冲器里,则取消对存储器的访问,直接从缓冲器中读出这一块,同时发出对下一指令块的预取访存请求。
  七、编译器控制的预取
  编译器控制的预取是硬件预取的一种替代方法,该方法是在编译时加入预取指令,在数据被使用之前发出预取请求。和硬件预取一样,编译器控制预取的目的也是要使执行指令和读取数据能重叠执行。循环是预取优化的主要对象,因为它们易于进行预取优化。如果失效开销较小,编译器只要简单地将循环体展开一次或两次,并调度好预取和执行的重叠。如果失效开销较大,编译器就将循环展开许多次,以便为后面较远的循环预取数据。
  八、编译器优化
  前面介绍的几种降低Cache失效率的技术都需要改变或者增加硬件,而编译器优化是通过对软件的优化来降低失效率。这是硬件设计者最喜欢的解决方案。处理器和主存之间越来越大的性能差距促使编译器设计者去仔细研究存储层次的行为,以期能通过编译时的优化来改性性能。我们能很容易地重新组织程序而不影响程序的正确性。
  以上的几种降低Cache失效率的方法,可以在不同程度上降低Cache的失效率。同时我们应当注意到,任何一种方法都不是万能的,某一种方法对Cache的改进是以损失另一些方面性能为代价的,在应用中要注意采用合适的方法。
  参考文献:
  [1]张国栋,虞歌.一种集群应用中的Cache方案探讨[J].福建电脑,2009,9
  [2]杜红燕,田兴彦,田新华.一个由编译器控制的Cache替换策略[J].计算机工程,2006,8
其他文献
本文首先分别介绍了SDH和WDM光纤技术的基本原理及不同之处,然后探讨了SDH和WDM技术在城域网中的应用。
摘要:本文从计算机办公终端的安全管理角度出发,探讨了在办公终端展开计算机安全管理的必要性,并制定了切实有效的技术方案,对完善构建安全、统一、科学、完备的计算机办公终端管理平台有重要的实践意义。  关键词:计算机;办公终端;安全管理  中图分类号:TP393.08 文献标识码:A文章编号:1007-9599 (2011)05-0000-01  How to Strengthen the Safety
伴随计算机技术推进,计算机愈来愈获得社会各界极度关注,尤其在学校中,计算机在教学中的功能极为强大,数量愈来愈多。为能够集中监管,成立了很多计算机中心,为能保证正常教学进行,提
以黄瓜穴盘苗为研究对象,对不同含水率水平下的穴盘苗钵体进行压缩变形力松弛试验,研究分析钵体压缩-力松弛特性。结果表明,在不同含水率下穴盘苗钵体平板压缩的抗压力与变形
本文以2008年1月2日至2013年5月6日地产指数日收盘价数据作为实证样本.运用GARCH和EGARCH模型度量波动性,分别计算95%置信水平下地产指数对数收益率的VaR.从而对我国地产板块的风
摘要:所谓的云计算技术主要将互联网作为平台,并且充分利用这一平台来为自己的用户提供一个具有强大计算力、按需付费、成本低廉、可靠、高可用以及分布式的服务,这一服务还能够实现对知识、信息、相关数据的无限存储,进而使得人类的信息技术能够达到其自身无处不在和无时不在这两种服务能力以及可用性。事物是运动变化发展的,云计算技术作为一项事物同样如此,主要体现在云计算的平台以及技术得到了不断的发展,进而为人类很好