A-A+
在伪相联映像中 假设在直接映像位置没有发现匹配 而在另一个位置才找到数据(伪命中)时 不对这
问题详情
在伪相联映像中,假设在直接映像位置没有发现匹配,而在另一个位置才找到数据(伪命中)时,不对这两个位置的数据进行交换。这时只需要一个额外的周期。假设失效开销为50个时钟周期,2 KB直接映像Cache的失效率为9.8%,2 KB 2路组相联的失效率为7.6%;128 KB直接映像Cache的失效率为1.0%,128 KB 2路组相联的失效率为0.7%。 ①推导平均访存时间的公式。 ②利用①中得到的公式,对于2 KB Cache和128 KB Cache,计算伪相联映像的平均访存时间。
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:×
不管做了何种改进,失效开销相同。不管是否交换内容,在同一“伪相联组”中的两块都是用同一个索引得到的,因此失效率相同,即失效率伪相联=失效率2路。伪相联映像Cache的命中时间等于直接映像Cache的命中时间加上伪相联查找过程中的命中率×该命中所需的额外开销。命中时间伪相联=命中时间1路+伪命中率伪相联×1交换或不交换内容,伪相联的命中率都是由于在第一次失效时,将地址取反,再进行第二次查找带来的。因此,伪命中率伪相联=命中率2路-命中率1路=(1-失效率2路)-(1-失效率1路)=失效率1路-失效率2路交换内容需要增加伪相联的额外开销。平均访存时间伪相联=命中时间1路+(失效率1路-失效率2路)×1+失效率2路×失效开销1路将题设中的数据带入计算,得平均访存时间2KB=1+(0.098-0.076)×1+(0.076×50)=4.822平均访存时间128KB=1+(0.010-0.007)×1+(0.007×50)=1.353显然,128KB的伪相联映像Cache要快一些。