Caching 如何计算三级缓存的有效CPI

Caching 如何计算三级缓存的有效CPI,caching,architecture,cpu-architecture,cpu-cache,hit,Caching,Architecture,Cpu Architecture,Cpu Cache,Hit,我被一道作业题难住了,我希望有人能帮助我更好地理解它。我得到的是: CPU基本CPI=2,时钟频率=2GHz 主缓存,未命中率/指令=7% L-2缓存访问时间=15ns L-2缓存,本地未命中率/指令=30% L-3缓存访问时间=30ns L-3缓存,全局未命中率/指令=3%,主存访问时间=150ns 什么是有效消费物价指数 我的理解是,我需要计算每个缓存级别的未命中惩罚 L1未命中惩罚=L2的访问时间=15ns/(1ns/2cc)=30个时钟周期 二级未命中惩罚=三级访问时间=30ns/(

我被一道作业题难住了,我希望有人能帮助我更好地理解它。我得到的是:

  • CPU基本CPI=2,时钟频率=2GHz
  • 主缓存,未命中率/指令=7%
  • L-2缓存访问时间=15ns
  • L-2缓存,本地未命中率/指令=30%
  • L-3缓存访问时间=30ns
  • L-3缓存,全局未命中率/指令=3%,主存访问时间=150ns

  • 什么是有效消费物价指数

    我的理解是,我需要计算每个缓存级别的未命中惩罚

    • L1未命中惩罚=L2的访问时间=15ns/(1ns/2cc)=30个时钟周期
    • 二级未命中惩罚=三级访问时间=30ns/(1ns/2cc)=60个时钟周期
    • L3未命中惩罚=访问时间MM=150ns/(1ns/2cc)=300个时钟周期
    现在我需要计算有效CPI。这就是我有点困惑的地方

    我认为公式应该是:

    CPI=基准CPI+(%L1 MR/Instr*L1失误处罚)+(%L1 MR/Instr)* %二级MR/Instr*L2未命中处罚)+%(全球MR/Instr*L3未命中处罚百分比)

    如果我这样做,我会

    消费物价指数=2.0+(0.07*30)+(0.07*0.3*60)+(0.03*300)=14.36



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

    从另一个角度考虑可能会有所帮助。如果我们假设我们将执行1000000条指令,给定您的主缓存命中率,其中93%将命中,并且只需要2CPI。7%或70000将需要达到较低的缓存级别。在这70000中,70%(49000)将在L2中命中,需要15N(或30CPI)。剩下的21000个需要来自L3或更低级别。97%(20370)将在L3中命中,需要60CPI。其余630将需要300CPI的内存访问

    因此,整个堆栈的总时钟数为930000*2+49000*30+20370*60+630*300,总计为4741200,如果指令计数为1000000,则有效CPI为4.7412


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

    检查D2L。提供的完整第5章pdf第18-20页。必修的《计算机组织与设计》教科书对这类问题进行了相当详细的阐述。快速看一眼,我想你可能做了一些不正确的操作。正确的数字…错误的操作。我自己也在解决这个问题。如果我找到我的答案,我将在这里发布
  • 嘿,伙计们,我也在242,我也不知道这是否正确,但是 这就是我得到的

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

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


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

    有效消费物价指数=2.0+.07 x 30+.30 x 60+.03 x 300=31.1


    他的回答是L1和L3是正确的,但我必须考虑L2的本地未命中率。我还不确定这意味着什么,但希望这一点信息能有所帮助。在与教授交谈后,他说这个公式是正确的,但告诉我他不能告诉我答案是否正确。他似乎暗示这是正确的,但这可能只是一个语言障碍的误解

    如果是这样的话怎么办: 对于两级缓存,有效CPI为:

    CPi=CPi(正常)+误判率1*误判率2+全球误判率*总误判率

    对于三级缓存,它可能是:

    CPI=CPI+误判率1*误判率2+(误判率2/误判率1)(误判率1+误判率2)+全球误判率(误判率1+误判率2+误判率3)

    消费物价指数=2+7%x60+(7%/30%)x(60+30)+3%x(300+60+90)


    首先,谢谢你的回复。我做了一些和你一开始建议的相似的事情。在和我的教授再次交谈后,他说我的公式是正确的。我认为我的问题在于罚失点球。如果我读对了你的帖子,那也是你想要表达的。回到分析一些数字。相关讨论: