假设对指令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的失效率更低?两种情况下平均访存时间各是多少?
分离Cache的失效率: 75%×0.39%+25%×4.82%=1.5%
混合Cache的失效率为1.35%,所以64KB的混合Cache是效率更低。
平均访存时间=命中时间+失效率×失效开销
32KB分离Cache 平均访存时间=75%×(1+0.39%×50)+25%×(1+4.82%×50)=1.745
64KB混合Cache 平均访存时间
=75%×(1+1.35%×50)+25%×(1+1+1.35%×50)=1.925