访问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=NcNc+Nm\frac{Nc}{Nc+Nm}=0.882

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

⑶访问cache效率:e=TcTa\frac{Tc}{Ta}*100%=TchTc+(1h)Tm\frac{Tc}{h*Tc+(1-h)*Tm}*100%=0.679

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章