考虑一个具有 2 级缓存的系统。一级缓存、二级缓存和主存的访问时间分别为1 ns、10ns和500 ns。一级缓存和二级缓存的命中率分别为 0.8 和 0.9。忽略缓存内搜索时间的系统平均访问时间是多少?
(A) 13.0 纳秒
(B) 12.8 纳秒
(C) 12.6 纳秒
(D) 12.4 纳秒答案: (C)
说明:首先,系统会在缓存 1 中查找。如果在缓存 1 中找不到,则在缓存 2 中查找,然后在主内存中查找(如果不在缓存 2 中)。
平均访问时间将考虑缓存 1 中的成功、缓存 1 中的失败但缓存 2 中的成功、缓存中的失败和主内存中的成功。
Average access time = [H1*T1]+[(1-H1)*H2*T2]+[(1-H1)(1-H2)*Hm*Tm]
在哪里,
H 1 = 一级缓存命中率 = 0.8
T 1 = 1 级缓存的访问时间 = 1 ns
H 2 = 二级缓存命中率 = 0.9
T 2 = 2 级缓存的访问时间 = 10 ns
H m = 主存命中率 = 1
T m = 主存储器的访问时间 = 500 ns
因此,平均访问时间 = ( 0.8 * 1 ) + ( 0.2 * 0.9 * 10 ) + ( 0.2 * 0.1 * 1 * 500)
= 0.8 + 1.8 + 10
= 12.6 纳秒
因此,C 是正确的选择。
这个问题的测验