25% 内存指令的平均内存访问时间

Average Memory Access Time for 25% memory instructions

*I-cache 的命中率为 0.95,命中率时间为 3 个周期,而 D-cache 的命中率为 0.85(3 个周期)。两者的未命中惩罚都是 40 个周期。 0.25 内存指令的 AMAT 是多少?

我计算成功了: AMAT_I = 3 + 0.05 * 40 = 5 AMAT_D = 3 + 0.15 * 40 = 9

解决方案告诉我: AMAT_Total = 1/1.25 * AMAT_I + 0.25/1.25 * AMAT_D 但我不明白为什么。有人可以向我解释一下它背后的逻辑吗?我想:AMAT_Total = 0.25 * (AMAT_I + AMAT_D)

如果您只是根据内存访问指令访问 I-cache 和 D-cache,那么您的答案是正确的。但是,您的所有指令都经过 I-cache,因此称为指令缓存。换句话说:

当你执行任何指令时=你访问I-Cache

当您执行内存指令时 = 您访问 I-Cache 以获取指令并访问 D-Cache 以获取数据。