缓存存储器命中率计算:求使平均访问时间为2周期的命中率
缓存命中率计算验证与缺失惩罚说明
假设处理器读取缓存需1个时钟周期,缓存缺失时读取主存需5个时钟周期,求使平均访问时间等于2个周期的缓存命中率。我的计算过程如下:
CACHE HIT RATE as H , CACHE MISS RATE as M. M=1-H AVERAGE ACCESS TIME as AMAT AMAT= H + (M * MISS PENALTY) 2= H + (M*6) 2= H + 6 * (1-H) 2 = H + 6 - 6H 2 = 6 - 5H 5H = 4 H = 4/5 , or H=0.8 = 80%请问计算是否正确?缺失惩罚应该是6还是5?我认为是6,因为包含1个缓存周期和5个主存周期,这个理解对吗?
- 你的计算完全正确,最终得到的80%命中率是正确结果。
- 关于缺失惩罚的取值,核心是要和平均访问时间(AMAT)的公式定义匹配:
- 你把缺失惩罚定义为「缓存缺失时的总访问周期(1个缓存周期+5个主存周期)」,对应的公式是
AMAT = 命中率×缓存访问时间 + 缺失率×缺失惩罚,代入数值后计算逻辑没问题。 - 有些场景下,缺失惩罚会被定义为「缓存缺失相比命中多花费的额外周期」(也就是5),此时公式会变成
AMAT = 缓存访问时间 + 缺失率×缺失惩罚,代入后计算为2 = 1 + (1-H)*5,最终解出来的命中率仍然是80%。
- 你把缺失惩罚定义为「缓存缺失时的总访问周期(1个缓存周期+5个主存周期)」,对应的公式是
- 两种定义只是表述方式不同,只要公式和定义对应,最终结果一致,你的理解和计算都没有问题。
内容的提问来源于stack exchange,提问作者alex
相关产品推荐
相关产品推荐

