霸道小明 2024-10-15 23:13 采纳率: 57.1%
浏览 56
已结题

多级Cache的CPI计算

《计算机组成与设计第六版》5.12.1求多级cache处理器的CPI的题目

处理器参数:
没有存储器阻塞的基本CPI:1.5
处理器速度:2GHz
主存访问时间:100ns
每条指令的L1 cache缺失率:7%
直接映射的L2 cache的速度:12个周期
包含直接映射的L2 cache时的全局缺失率:3.5%
注:L1 cache缺失率是对于每条指令的。假设L1 cache的总缺失数量(包含指令和数据)为总指令数的7%。


题目内容:让计算处理器的CPI

答案给的是:1.5+0.07×(12+0.035×400)

疑问:这个0.07×12还能理解是L1缺失访问L2的阻塞周期,但是计算访问主存的阻塞周期为什么还要再用0.07去乘呢?0.035不就是全局缺失率吗,只用这个全局缺失率×400不就是访问主存的阻塞周期了吗?我看了一些回答说计算阻塞周期要在前一个发生的情况下计算,但是这个0.035全局缺失率不就已经包含了L1的缺失情况了吗

  • 写回答

2条回答 默认 最新

  • 越重天 新星创作者: Java技术领域 2024-10-17 12:08
    关注

    本答案参考 多次询问 ChatGPT-3.5 后选择的最佳回答,若是满意,还请采纳,谢谢

    1. 理解CPI的组成部分
      • CPI(Cycles Per Instruction,每条指令的周期数)由基本CPI和由于缓存缺失导致的额外周期数组成。
      • 基本CPI为1.5,表示在没有任何存储器阻塞情况下每条指令所需的周期数。
    2. 分析各级缓存缺失对CPI的影响
      • L1缓存缺失访问L2缓存
        • L1 cache缺失率为7%(0.07),当L1 cache缺失时,需要访问L2 cache,L2 cache的访问需要12个周期。所以由于L1 cache缺失访问L2 cache导致的额外周期数为0.07×12。
      • L2缓存缺失访问主存
        • 这里要注意,全局缺失率3.5%(0.035)是在包含L1 cache的情况下计算出来的。
        • 当计算由于L2 cache缺失访问主存导致的额外周期数时,我们需要考虑的是在L1 cache已经缺失(概率为0.07)的情况下,L2 cache再缺失(概率为0.035)的情况。
        • 主存访问时间为100ns,处理器速度为2GHz,所以一个周期是0.5ns,主存访问需要的周期数为$ 100ns\div0.5ns = 200 $个周期。但是答案中使用400个周期,可能是考虑了指令和数据的访问(假设指令和数据访问都可能导致缓存缺失,所以是2倍关系)。
        • 由于L2 cache缺失访问主存导致的额外周期数为0.07×0.035×400。这里的0.07是因为要先发生L1 cache缺失才会有后续的L2 cache缺失访问主存的情况。
    3. 计算总的CPI
      • 总的CPI就是基本CPI加上各级缓存缺失导致的额外周期数,即$ CPI = 1.5+0.07×12 + 0.07×0.035×400 $。

    关于你的疑问,全局缺失率0.035是在L1 cache存在的情况下统计的,它表示的是经过L1 cache过滤后到达L2 cache并且L2 cache缺失的概率。所以在计算访问主存的阻塞周期时,需要考虑是在L1 cache缺失(概率为0.07)的基础上,L2 cache再缺失(概率为0.035)的情况,所以要再乘以0.07。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月25日
  • 已采纳回答 10月17日
  • 修改了问题 10月15日
  • 创建了问题 10月15日