【问题标题】:Multi level cache access time多级缓存访问时间
【发布时间】:2017-07-07 18:42:29
【问题描述】:

如果有 2 个缓存 L1 和 L2,其中 L1 是一级缓存,L2 是低级缓存。 假设在 L1 中未命中,在 L2 中命中。 现在,我们需要将需要的块从 L2 带到 L1,然后从 L1 访问所需的字节,还是我们可以直接从 L2 访问所需的字节?

平均访问时间可以表示为:- h1(t1) + (1-h1)(h2)(t1+t2) 其中

h1 : L1 缓存的命中率, t1:L1的访问时间, h2:二级缓存命中率, t2 : L2的访问时间。

【问题讨论】:

    标签: memory cpu-architecture cpu-cache multi-level


    【解决方案1】:

    我们可以直接从 L2 访问它,但我们也会把它带到 L1 中,以便下次访问更快。

    【讨论】:

    • 那么为什么我们在L1未命中时尝试从L2访问时要再次添加时间t1呢?它应该只有 t2 正确,因为我们可以直接从 L2 访问
    • 嗯,这取决于架构。较新的架构同时进入所有级别的缓存,因此您不必支付时间损失,您只需应用 t2。在较旧的架构中,您将首先检查 L1,然后如果它不存在,您将检查 L2。因此,您必须为两者支付时间罚款。
    • t1 这里不是我猜的检查时间。这是读取一个字节所需的时间。
    • 您指的是哪种较新的架构?我所知道的几乎所有东西都只能在 L1 未命中时访问 L2。否则,它有点超出目的,您希望从 L1 运行时保持比 L2 允许的更高的 BW
    猜你喜欢
    • 2011-08-17
    • 2013-06-14
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    相关资源
    最近更新 更多