一篇搞懂cache的命中率

:cache的命中率应接近于1。由于程序访问的局部性,实现这个目标是可能的。

在一个程序执行期间,设Nc 表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有gif.latex?h%3D%5Cfrac%7BNc%7D%7BNc+Nm%7D 

若tc表示命中时的cache访问时间,tm表示未命中时的主存访问时间,1-h表示为命中率(缺失率),则cache/主存系统的平均访问时间ta为gif.latex?ta%3Dhtc+%281-h%29tm

我们追求的目标是,以较小的硬件代价使cache/主存系统的平均访问数据ta越接近tc越好。设r=tm/tc表示主存与cache的访问时间之比,e表示访问效率,则有   

                            gif.latex?e%3D%5Cfrac%7Btc%7D%7Bta%7D%3D%5Cfrac%7Btc%7D%7Bhtc+%281-h%29tm%7D%3D%5Cfrac%7B1%7D%7Bh+%281-h%29r%7D%3D%5Cfrac%7B1%7D%7Br+%281-r%29h%7D

由上式可看出,为提高访问效率,命中率h越接近1越好.r值以5-10为宜,不宜太大。

例题:

1.CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。

解:  cache的命中率h为         gif.latex?h%3D%5Cfrac%7BNc%7D%7BNc+Nm%7D%3D%5Cfrac%7B1900%7D%7B1900+100%7D%3D0.95

         主存慢于cache的倍率r为     gif.latex?r%3D%5Cfrac%7Btm%7D%7Btc%7D%3D%5Ctfrac%7B250ns%7D%7B50ns%7D%3D5

         则cache/主存系统效率e为     gif.latex?e%3D%5Cfrac%7B1%7D%7Br+%281-r%29h%7D%3D%5Cfrac%7B1%7D%7B5+%281-5%29%5Ctimes%200.95%7D%3D83.3%25

         平均访问时间ta为               gif.latex?ta%3D%5Cfrac%7Btc%7D%7Be%7D%3D%5Cfrac%7B50ns%7D%7B0.833%7D%3D60ns

2.已知cache存储周期40ns,主存存储周期200ns,cache/主存系统平均访问时间为50ns,求cache的命中率。

解:        已知cache/主存系统平均访问时间ta=50ns,而gif.latex?ta%3Dhtc+%281-h%29tm,

               所以有gif.latex?h%3D%5Cfrac%7Bta-tm%7D%7Btc-tm%7D%3D%5Cfrac%7B50-200%7D%7B40-200%7D%3D%5Cfrac%7B150%7D%7B160%7D%3D93.75%25

3.一个由主存和cache组成的二级存储系统,参数定义如下:Ta为系统平均访问时间,T1为cache的存取时间,T2为主存的存取时间,H为cache命中率,请写出Ta与T1、T2、H参数之间的函数关系式。

解:在二级存储系统中满足gif.latex?Ta%3DHT1+%281-H%29T2

 

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值