A-A+

假设对指令Cache的访问占全部访问的75% 而对数据Cache的访问占全部访问的25%。C

2022-08-12 12:31:52 问答库 阅读 196 次

问题详情

假设对指令Cache的访问占全部访问的75%,而对数据Cache的访问占全部访问的25%。Cache的命中时间为一个时钟周期,失效开销为50个时钟周期,在混合Cache中一次load或store操作访问Cache的命中时间都要增加一个时钟周期,64 KB的指令Cache的失效率为0.15%,64 KB的数据Cache的失效率为3.77%,128 KB的混合Cache的失效率为1.35%。又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。试问指令Cache和数据Cache容量均为64 KB的分离Cache和容量为128 KB的混合Cache相比,哪种Cache的失效率更低?两种情况下平均访存时间各是多少?


请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:×
根据题意,约75%的访存为取指令。因此,分离Cache的总体失效率为(75%×0.15%)+(25%×3.77%)=1.055%容量为128KB的统一Cache的失效率略低一些,只有0.95%。平均访存时间公式可以分为指令访问和数据访问两部分,即平均访存时间=指令所占的百分比×(读命中时间+读失效率×失效开销)+数据所占的百分比×(数据命中时间+数据失效率×失效开销)所以,两种结构的平均访存时间分别为分离Cache的平均访存时间=75%×(1+0.15%×50)+25%×(1+3.77%×50)=(75%×1.075)+(25%×2.885)=1.5275统一Cache的平均访存时间=75%×(1+0.95%×50)+25%×(1+1+0.95%×50)=(75%×1.475)+(25%×2.475)=1.725因此,尽管分离Cache的实际失效率比统一Cache的高,但其平均访存时间反而较低。分离Cache提供了两个端口,消除了结构相关。

考点:指令,数据