我无可救药地陷入了家庭作业问题,我希望能帮助你更好地理解它。以下是我给出的内容:
什么是有效的 CPI ?
据我了解,我需要计算每个缓存级别的未命中罚分。
现在我需要计算有效的 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会让我感到困惑。
答案 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)
在谈到教授之后,他说这个公式是正确的,但告诉我他无法告诉我答案是否正确。他似乎暗示它是正确的,但这可能只是语言障碍的误解。