活学活用吧 关注:2贴子:31
  • 1回复贴,共1

cache命中率

收藏回复

  • 59.61.23.*
   增加cache的目的,就是在性能上使主存的平均读出时间尽可能接
近cache的读出时间。因此,cache的命中率应接近于1。由于程序访问
的局部性 ,这是可能的。   在一个程序执行期间,设Nc表示cache完
成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,
则有
                   h=Nc/(Nc+Nm)   (3.4)s    
     若tc表示命中时的cache访问时间,tm表示未命中时的主存访问
时间,1-h表示未命中率,则cache/主存系统的平均访问时间ta为:
                       ta=htc+(1-h)tm            (3.5)
设r表示主存慢于cache的倍率,e表示访问效率,则有:
                                   r=tm/tc                           (3.6)
                   e=tc/ta=tc/htc+(1-h)tm=1/r+(1-r)h=
为提高访问效率,命中率h越接近1越好,r值以5—10为宜,不宜太大
。命中率h与程序的行为、cache的容量、组织方式、块的大小有关。
【例5】CPU执行一段程序时,cache完成存取的次数为1900次,主
存完成存取的次数为100次,已知cache存取周期为50ns,主存存取
周期为250ns,求cache/主存系统的效率和平均访问时间。
【解】
h=Nc/(Nc+Nm)=1900/(1900+100)=0.95
r=tm/tc=250ns/50ns=5
e=1/(r+(1-r)h)=1/(5+(1-5)×0.95)=83.3%
ta=tc/e=50ns/0.833=60ns



1楼2010-05-12 22:09回复
    • 59.61.23.*
    加速比Sp=Tm/Ta
    ta=htc+(1-h)tm


    2楼2010-05-12 22:10
    回复