网站大量收购独家精品文档,联系QQ:2885784924

浅析Cache命中率及块大小之间关系.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅析Cache命中率及块大小之间关系

浅析Cache命中率及块大小之间关系Analysis of the Relationship between the Cache Hit Rate and the Size of the Block Ai Weili (四川大学,成都 610225) (Sichuan University,Chengdu 610225,China) 摘要:本篇文章简单介绍了Cache对计算机的重要性,由此引出了Cache命中率,并着重讨论了Cache块的大小对Cache命中率的影响 Abstract: This article briefly describes the importance of Cache on the computer, which leads to the Cache hit rate, and focuses on the impact of block size on Cache hit rate. 关键词:Cache 命中率 块大小 局部性原理 Key words: Cache;hit rate;block size;locality principle 中图分类号:TP39文献标识码:A文章编号:1006-4311(2011)32-0153-01 1Cache的出现 以前,CPU访问主存的速度不高一直是限制计算机提高性能而困扰计算机设计者的瓶颈问题。为了解决内存速度赶不上CPU处理速度的问题才有了后来的高速缓冲存储器(Cache)系统的出现 高速缓冲存储器(Cache)系统由高速、小容量的Cache和主存共同组成。从CPU来看,高速缓存系统速度接近于Cache,而容量为主存大小 只要Cache的命中率足够高,就相当于能以接近于Cache的速度来访问大容量的主存。因此,想要计算机有更好的性能,就必须提高Cache的命中率 2Cache的命中率 Cache的命中率主要与如下几个因素有关:程序在执行过程中的地址流分布情况;当发生Cache块失效时,所采用的替换算法;Cache的容量;在组相联映象方式中,块的大小和分组的数目;所采用的Cache预取算法等。这里,我们主要讨论块的大小对Cache命中率的影响 当Cache的容量一定时,在采用组相联映象和变换方式的Cache中,块的大小对命中率的影响非常敏感。我们可以从下面的Cache映象逻辑表达式分析: 设Cache的总量为S,组数为M,组内块数为N,块大小为A。所以,有: S = M*N*A 由上式可知,在Cache的容量S和Cache组内块数N(也可换成是组数M)固定不变时,Cache块大小与组数成反比 因此,当Cache的块容量很小,组的数目就多,主存中的某一块可以映象到Cache中的块数就少,所以此时,Cache的命中率低 随着块大小的增加,由于程序的空间局部性起主要作用,同一块中数据的利用率比较高。因此,Cache的命中率开始升高。但如果块变得过大的话,会减少装入Cache的总行数,而且,也会使得离所访问的位置较远的块被再次使用的概率变小。因此,这种增加趋势在某一个“最佳块大小”处使Cache命中率达到最大值。在这一点以后,命中率随着块大小的增加反而减小。因为实际上,当块的容量变得比较大时(此时还是在组相联映象中,并没有蜕变成全相联映象),进入Cache中的许多数据可能根本用不上。而且,随着块大小的增加,程序时间局部性的作用就会逐渐减弱。最后,当块大小等于整个Cache的容量时(此时主存块应该是按成组的方式被调入Cache),命中率将趋近于零 所以,根据Cache块的容量由小到大的变化,可得Cache命中率的情况如图1所示(仅仅是示意图) 我们也可得到Cache的未命中率与块大小的关系图,如图2所示 此外,我们还可以这样来定性分析: 设X1和X2是内存中两块相邻访问的主存逻辑地址,设d=|X1 -X2|。若dN*M,则X1和X2不一定在同一组内。继续随着A的增大,Cache的组数继续减少,块的替换就趋向频繁,X1和X2都能在Cache内的可能性也就减少,Cache的命中率也会随之降低。当然,这也都要考虑到程序局部性原理。因此,我们可得到图2 3总结 综上所述,块的大小对Cache命中率的影响是显而易见的;而Cache命中率对整个Cache存储系统的存取效率的影响又是至关重要的。所以,对于系统体系结构的设计人员,甚至是软件开发人员来说,关于块大小的最佳选择都是值得研究的 参考文献: [1]徐炜民,严允中.计算机系统结构(第三版).电子工业出版社,2010. [2]罗克吉,刘辉,俸志刚,纪禄平.计算机组成原理

文档评论(0)

linsspace + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档