如何计算3级缓存的有效CPI

时间:2013-11-25 18:06:37

标签: caching architecture cpu-architecture cpu-cache hit

我无可救药地陷入了家庭作业问题,我希望能帮助你更好地理解它。以下是我给出的内容:

  1. CPU基本CPI = 2,时钟频率= 2GHz
  2. 主缓存,未命中率/指令= 7%
  3. L-2缓存访问时间= 15ns
  4. L-2缓存,本地丢失率/指令= 30%
  5. L-3缓存访问时间= 30ns
  6. L-3缓存,全局丢失率/指令= 3%,主存储器访问时间= 150ns

  7. 什么是有效的 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小姐罚款)+(%全球MR / Instr * L3小姐罚款)

    如果我这样做,我会

      

    CPI = 2.0 +(0.07 * 30)+(0.07 * 0.3 * 60)+(0.03 * 300)= 14.36


    在给我的导师发电子邮件后,因为班上没有人理解全球和本地的1-2分钟解释,我被告知我的答案很接近,但错了。如果有人能够提供一些见解,或者甚至指向一个好的教程,我将不胜感激。我可以理解如何为1级和2级缓存找出有效的 CPI 。跳到3会让我感到困惑。

6 个答案:

答案 0 :(得分: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%)×(60 + 30)+ 3%×(300 + 60 + 90)..

答案 1 :(得分: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

这可能仍然不对,因为我不完全确定全球/本地未命中率在这个特定问题中的区别,以及如何在这里应用它,但这至少显示了一种不同的帮助方法明白这个问题。它还假设,例如,在60个时钟的L2中的未命中罚分是整个惩罚 - 换句话说,在主要和L2中丢失并且必须从L3获取的访问仅花费60个时钟,或者它是否花费60个时钟时钟从L3获取它到L2然后另外30个时钟从L2到主要,然后是通常的2个时钟,在L2未命中总共92个时钟?也许这就是本地/全球之间的区别?

答案 2 :(得分: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

答案 3 :(得分:0)

嘿所以我通过电子邮件向他询问了这个解决方案

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

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

答案 4 :(得分:-1)

WCU问题,对吗?我有同一个班级。

检查D2L。提供完整的第5章pdf的第18-20页。所需的教科书“计算机组织与设计”详细介绍了这些问题。从快速浏览一下,我想你可能会做一些不正确的操作。正确的数字......错误的操作。我自己正在研究这个问题。如果我找到答案,我会在这里发帖

答案 5 :(得分:-1)

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