5

我无可救药地陷入了家庭作业问题,我希望得到一些帮助以更好地理解它。这是我得到的:

  1. CPU 基础 CPI = 2,时钟频率 = 2GHz
  2. 主缓存,未命中率/指令 = 7%
  3. L-2 缓存访问时间 = 15ns
  4. L-2 缓存,本地未命中率/指令 = 30%
  5. L-3 缓存访问时间 = 30ns
  6. L-3 Cache,全局未命中率/指令 = 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 让我感到困惑。

4

6 回答 6

1

如果是这样:对于二级缓存,有效的 CPI 是:

CPi= CPI(正常)+MissRAteL1*MissPenaltyL2+GlobalMissRAte*TotalMissPenalty

那么对于三级缓存它可能是:

CPI=CPI+MissRateL1*MissPenaltyL2+(MISSRATEL2/MissRateL1) (MissPEnaltyL1+MissPEnaltyL2)+GlobalMissRate (MissPEnaltyL1+MissPEnaltyL2+MissPEnaltyL3)

CPI=2+7%x60+(7%/30%)x​​(60+30)+3%x(300+60+90)..

于 2016-08-25T10:52:25.770 回答
0
  • 嘿伙计们,我也在 242,我也不知道这是否正确,但这就是我得到的..

    主要未命中惩罚 = 150ns/(1/2) = 300 个周期。L2 未命中 = 15 ns/(1/2) = 30 个周期。L3 未命中 = 30 ns/(1/2)= 60 个周期。

    所以 cpi = 2+(.07*300)+(.07*.3*30)+(.03*60) = 25.43

于 2013-11-26T19:48:10.833 回答
0

从不同的方向考虑可能会有所帮助。如果我们假设我们要执行 1,000,000 条指令,给定您的主缓存命中率,其中 93% 会命中并且只需要 2CPI。7% 或 70,000 将需要达到较低的缓存级别。在这 70,000 个中,70% (49,000) 将进入 L2 并需要 15ns(或 30CPI)。剩下的 21,000 个需要来自 L3 或更低级别。97% (20370) 将达到 L3 并需要 60CPI。剩余的 630 将需要 300CPI 的内存访问。

所以整个堆的总时钟数为 930,000 * 2 + 49,000 * 30 + 20370 * 60 + 630 * 300,总共为 4,741,200,给定指令数 1,000,000,有效 CPI 为 4.7412。

这可能仍然不对,因为我不完全确定在这个特定问题中全局/本地未命中率之间的区别是什么,以及如何在这里应用它,但这至少显示了一种不同的方法来帮助理解这个问题. 它还假设,例如,L2 中的 60 个时钟的未命中惩罚是全部惩罚 - 换句话说,在主要和 L2 中未命中并且必须从 L3 获取的访问只需要 60 个时钟,还是需要 60时钟将其从 L3 获取到 L2,然后额外的 30 个时钟将其从 L2 获取到主时钟,然后是通常的 2 个时钟,在 L2 未命中时总共需要 92 个时钟?也许这就是本地/全球之间的区别?

于 2013-11-25T19:59:17.563 回答
0

嘿,所以我给他发了电子邮件询问这个解决方案

有效 CPI = 2.0 + .07 x 30 + .30 x 60 + .03 x 300 = 31.1

他的回答是 L1 和 L3 是正确的,但我必须考虑 L2 的本地未命中率。不知道这意味着什么,但希望这个小信息有帮助

于 2013-11-26T20:24:20.473 回答
-1

WCU的问题,对吧?我有同样的班级。

检查 D2L。提供的完整第 5 章 pdf 第 18-20 页。所需的教科书计算机组织与设计对这类问题进行了非常详细的介绍。乍一看,我认为您可能正在执行一些不正确的操作。正确的数字...错误的操作。我自己正在解决这个问题。如果我找到我的答案,我会在这里发布

于 2013-11-26T04:52:33.110 回答
-1

与教授交谈后,他说这个公式是对的,但告诉我他不能告诉我答案是否正确。他似乎在暗示这是正确的,但这可能只是语言障碍的误解。

于 2013-11-26T20:44:46.933 回答