访问cache效率与平均访问时间问题

我们先来看一道例题:
CPU执行一段程序时,cache完成存储的次数为3000次,主存完成存储的次数为400次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间?

思路:cache,中译名高速缓冲存储器,其作用是为了更好的利用局部性原理,减少CPU访问主存的次数。简单地说,CPU正在访问的指令和数据,其可能会被以后多次访问到,或者是该指令和数据附近的内存区域,也可能会被多次访问。因此,第一次访问这一块区域时,将其复制到cache中,以后访问该区域的指令或者数据时,就不用再从主存中取出。
现在回到开始的问题:当CPU发出读请求时,如果cache命中,就直接对cache进行读操作,与主存无关;如果cache中没有需要的信息,则需要访问主存并把该块信息从主存中调到cache中,再次访问cache获取需要的信息。

所以:⑴命中率:CPU欲访问的信息已经在Cache中的比率称之为命中率。
设执行程序时,cache访问次数Nc,访问主存次数Nm,则

h= N c N c + N m \frac{Nc}{Nc+Nm} Nc+NmNc=0.882

⑵平均访问时间:设Tc为命中时cache访问时间,Tm为未命中时主存访问时间
则Ta=h*Tc+(1-h)*Tm=73.6 ns

⑶访问cache效率:e= T c T a \frac{Tc}{Ta} TaTc*100%= T c h ∗ T c + ( 1 − h ) ∗ T m \frac{Tc}{h*Tc+(1-h)*Tm} hTc+(1h)TmTc*100%=0.679

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值