假设对指令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的失效率更低?两种情况下平 均访存时间各是多少?
时间: 2024-03-30 22:36:19 浏览: 180
Cache性能分析
对于指令Cache和数据Cache容量均为32KB的分离Cache,可以根据失效率计算平均访存时间:
指令Cache的失效率为0.39%,因此命中率为99.61%。对于指令Cache的访问,有75%的访问会命中Cache,因此指令访问的平均访存时间为:
(命中时间 + 命中时增加的时间) * 命中率 + (失效开销 + 命中时增加的时间) * (1 - 命中率) = (1 + 1) * 0.7561 + (50 + 1) * 0.2439 = 13.91个时钟周期
数据Cache的失效率为4.82%,因此命中率为95.18%。对于数据Cache的访问,有25%的访问会命中Cache,因此数据访问的平均访存时间为:
(命中时间 + 命中时增加的时间) * 命中率 + (失效开销 + 命中时增加的时间) * (1 - 命中率) = (1 + 1) * 0.2518 + (50 + 1) * 0.7482 = 13.66个时钟周期
因此,分离Cache的平均访存时间为13.91个时钟周期(指令Cache)和13.66个时钟周期(数据Cache)。
对于容量为64KB的统一Cache,可以同样计算平均访存时间:
统一Cache的失效率为1.35%,因此命中率为98.65%。对于访问统一Cache的操作,有100%的操作会经过统一Cache,因此平均访存时间为:
(命中时间 + 命中时增加的时间) * 命中率 + (失效开销 + 命中时增加的时间) * (1 - 命中率) = (1 + 1) * 0.9865 + (50 + 1) * 0.0135 = 3.12个时钟周期
因此,容量为64KB的统一Cache的平均访存时间为3.12个时钟周期。
综上所述,容量为64KB的统一Cache的失效率更低,且平均访存时间更短。
阅读全文