第一,看命中率的定义:CPU欲访问的信息已经在Cache中的比率称之为命中率。
设程序在执行期间,Cache的命中次数是Nc,访问主存的次数是Nm,则命中率
H=Nc/(Nc+Nm)
平均访问时间Ta = H⋅Tc+(1−H)⋅Tm .
看一道习题理解两种策略的不同:同时访问Cache和主存,Cache命中时中断访存 || 先访问Cache,没有时再访问主存调入Cache再从Cache中拿数据。
例:假设Cache的访问速度是主存的5t,且Cache的命中率是95%,则采用Cache后,存储器的存储性能提高多少?
解:同时访存时:Cache存储周期是t,主存的存储周期是5t
则平均访问时间:Ta = 0.95t + 0.05 * 5t = 1.2t
主存性能:5t/1.2t = 4.17倍
不同时访存时,在不命中的时候用时就不是5t,而是6t
于是:Ta = 0.95t + 0.05 * 6t = 1.25t
主存性能:5t/1.25 = 4倍
即不同时访问时,在访问Cache失败时耽误了1t时间,计算不命中的时间时加上访问Cache用时即可。