考查:Cache的失效率和平均访存时间
题目1: 假设对指令Cache的访问占全部访问的75%;而对数据Cache的访问占全部访问的25%。 Cache 的命中时间为 1 个时钟周期,失效开销为 50 个时钟周期,在混合 Cache 中一次 load 或 store 操作访问 Cache 的命中时间都要增加一个时钟周期,32KB 的指令 Cache 的失效率 为 0.39%,32KB 的数据 Cache 的失效率为 4.82%,64KB 的混合 Cache 的失效率为 1.35%。又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。
(1)试问指令 Cache 和数据 Cache 容量均为 32KB 的分离 Cache 和容量为 64KB 的混合 Cache 相比,哪种 Cache 的失效率更低?
(2)两种情况下平均访存时间各是多少?
解:
(1)实际上考的是两种方案的性能对比。
- 32KB方案的:
指令失效率:0.39%
数据失效率:4.82%
75%*0.39%+25%*4.82%=1.4975%
- 64KB方案的:
混合失效率:1.35%
所以 ,32KB的策略失效率更高
(2)求平均访存时间:
平均访存时间=指令所占的百分比×(读命中时间+读失效率×失效开销)+ 数据所占的百分比×(数据命中时间+数据失效率×失效开销)
- 第一种方案:
75%×(1+0.39%×50)+25%×(1+4.82%×50) =(75%×1.195)+(25%×3.41) =1.74875
- 第二种方案:
75%×(1+1.35%×50)+25%×(1+1+1.35%×50)

本文通过具体数值分析了不同Cache策略下的失效率和平均访存时间,包括指令Cache、数据Cache及混合Cache的比较,以及直接映象Cache和2路组相联Cache在伪相联情况下的表现。
最低0.47元/天 解锁文章
1439

被折叠的 条评论
为什么被折叠?



