1.假设对指令Cache的访问占全部访问的75%;而对数据Cache的访问占全部访问的25%。Cache的命中时间为1个时间周期,失效开销为50个时间周期,在混合Cache中一次load或store操作访问Cache的命中时间都要增加一个时间周期,32KB的指令Cache的失效率为0.39%,32KB的数据Cache的失效率为4.82%,64KB混合Cache的失效率为1.35%。试问指令Cache和数据Cache容量均为32KB的分离Cache和容量为64KB的混合Cache相比,哪种Cache的失效率更低?两种情况下平均访存时间各是多少?
解:(1).根据题意:75%的访存为取指令,因此分离Cache总体失效率为
75% x 0.39%+25% x4.82%=1.50%
而64KB混合Cache的不命中率为1.35%,所以混合Cache的失效率比分离Cache的低一些。
(2)平均访问时间=命中时间+不命中率 x 不命中开销
分离Cache的平均访问时间=75% x (1+0.39% x 50)+25% x(1+4.82% x 50)=1.749
混合Cache的平均访问时间=75% x (1+1.35% x 50) + 25% x(1+1+1.35% x 50)=1.925
2.给定以下的假设,试计算直接映像Cache和两路组相联Cache的平均访问时间以及CPU的性能。由计算结果能得出什么结论?
(1)理想Cache情况下的CPI为2.0,时钟周期为2ns,平均每条指令访存1.2次。
(2)两者Cache容量均为64KB,块大小都是32B。
(3)组相联Cache中的多路选择器使CPU的时钟周期增加了10%。
(4)这两种Cache的不命中开销都是80ns。
(5)命中时间为1个时钟周期。
(6)64KB直接映像Cache的不命中率为1.4%,64KB两路组相联Cache的不命中率为1.0%。
解:直接映像的平均访问时间=命中时间+不命中率 x 不命中开销
=2.0 x 1+1.4% x 80ns=3.12ns
两路组相联的平均访问时间=命中时间+不命中率 x 不命中开销
=2.0 x (1+1.0%)+ 1.0%x 80ns=3.0ns
所以两路组相联的平均访问时间比较低。
CPU的性能: CPU时间=IC x(CPU每条指令的平均访存次数 x 不命中率 x 不命中开销) x 时钟周期
直接映像 CPU时间=IC x (2 x 2.0+1.2 x 1.4% x 80)
=IC x 5.34ns
两路组相联CPU时间=IC x (2.2 x 2+1.2 x 1.0% x 80)
=IC x 5.36ns
CPU性能比=CPU两 /CPU直=5.36/5.344=1.003
所以直接映像CPU时间比两路组相联CPU时间短。