【发布时间】:2013-12-10 14:17:46
【问题描述】:
我在作业问题上无可救药地陷入困境,我希望得到一些帮助以更好地理解它。这是我得到的:
- CPU 基本 CPI = 2,时钟频率 = 2GHz
- 主缓存,未命中率/指令 = 7%
- L-2 缓存访问时间 = 15ns
- L-2 缓存,本地未命中率/指令 = 30%
- L-3 缓存访问时间 = 30ns
- L-3 缓存,全局未命中率/指令 = 3%,主内存访问时间 = 150ns
什么是有效的CPI?
据我了解,我需要计算每个缓存级别的未命中惩罚。
- L1 未命中惩罚 = L2 的访问时间 = 15ns / (1ns/2cc) = 30 个时钟周期
- L2 未命中惩罚 = L3 的访问时间 = 30ns / (1ns/2cc) = 60 个时钟周期
- L3 未命中惩罚 = MM 的访问时间 = 150ns / (1ns/2cc) = 300 个时钟周期
现在我需要计算有效的CPI。这是我有点困惑的地方。
我认为公式应该是:
CPI = BaseCPI + (%L1 MR/Instr * L1 Miss Penalty) + (%L1 MR/Instr * %L2 MR/Instr * L2 Miss Penalty) + (%Global MR/Instr * L3 Miss Penalty)
如果我这样做,我会得到
CPI = 2.0 + (0.07 * 30) + (0.07 * 0.3 * 60) + (0.03 * 300) = 14.36
在给我的导师发电子邮件后,因为班上没有人理解 1-2 分钟的全局和本地解释,我被告知我的答案很接近,但错误。如果有人可以提供一些见解,甚至可以为我提供一个好的教程,我将不胜感激。我可以理解如何计算出 1 级和 2 级缓存的有效 CPI。跳到 3 让我感到困惑。
【问题讨论】:
标签: caching architecture cpu-architecture cpu-cache hit