【问题标题】:Calculating the effect of the cache on the overall CPI of the processor计算缓存对处理器整体 CPI 的影响
【发布时间】:2013-11-11 23:47:02
【问题描述】:

在给定基本 CPI、L1 和 L2 缓存的未命中率百分比以及 L1、L2 和内存的访问时间的情况下,如何计算 L1 和 L2 缓存对处理器整体 CPI 的影响

要查找您将使用的 L1 缓存的 CPI:

CPI = BaseCPI + (% of L1 Miss x Memory Access Time)

所以我想,对于 L2,它会是这样的:

CPI = BaseCPI + (% of L1 Miss x L2 Access Time) + ( % which I am confused about x Memory Access time)

如何找到第二个百分比?

我知道这与 L2 的未命中率 % 有关,但是否有必要乘以 L1 未命中率 %,因为 L2 未命中只会在 L1 未命中后发生?

【问题讨论】:

    标签: performance caching


    【解决方案1】:

    是的,L2 的未命中率是指 L2 访问总数中未命中的百分比。 Total L2 accesses 是内存访问总数 * L1 的未命中率。

    所以,你的计算应该是-

    CPI = BaseCPI + (% of L1 Miss x L2 Access Time) + ( %L1 miss rate x % L2 miss rate x Memory Access time)  
    

    或更方便:

    CPI = BaseCPI + (% of L1 Miss x (L2 Access Time + (%L2 miss rate x Memory Access time)))
    

    这也不是很准确-您没有指定内存操作的速率,上面假设每条指令都会查找缓存,这有点夸张。如果您在程序中有加载/存储的速率,您也必须将其考虑在内。

    顺便说一句,在现实世界中,您还需要在总 L2 访问中添加以下内容:

    1. L1 写回
    2. 代码读取,如果源自单独的指令 L1
    3. 硬件预取

    但是这些通常在简单的计算中被忽略(并且您不知道修改行的百分比,因此您无法推断出您将拥有多少回写)。

    还有一点需要注意——它并不是真正的The CPI of the cache,缓存本身并不执行指令或关心它们的时序。正确的术语是-The effect of the cache (or any other feature) on the overall CPI of the processor

    【讨论】:

    • 好的,感谢您的澄清,但是是的,您是正确的,在这种情况下,我想我的标题不能准确地代表我的问题,我可能会稍后更改。
    【解决方案2】:

    我认为您没有考虑每条指令的平均内存访问次数 (AMAPI)。

    例如,如果有 30% 的加载/存储指令,则此数字将为 1.3(一次访问以获取指令,0.3 由于内存访问指令)

    所以

    CPI = BaseCPI + (AMAT - ideal memory access time) x AMAPI
    

    作为 AMAT 的平均内存访问时间。对于两级层次结构:

    AMAT = L1_hit_latency + L1_miss_rate x (L2_hit_latency + L2_miss_rate x Main_Memory_latency)
    

    【讨论】:

      猜你喜欢
      • 2020-04-16
      • 2023-03-11
      • 2016-02-25
      • 2013-12-27
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      相关资源
      最近更新 更多