【问题标题】:Conflict Miss v/s Compulsory Miss冲突小姐与强制小姐
【发布时间】:2017-08-15 16:48:38
【问题描述】:

强制未命中发生在第一次将块带入缓存时。

冲突未命中在集合关联或直接映射块放置策略的情况下,当多个块映射到同一个集合时会发生冲突未命中。

考虑具有 4 个组和总共 8 个缓存块 (0 - 7) 的 2 路组关联缓存。主内存有 64 个块 (0 - 63)。如果 LRU 策略用于替换并且缓存最初为空,则以下内存块引用序列的冲突缓存未命中总数为: 0 5 9 13 7 0 15 25

我的疑问是,13 和 25 会只导致强制丢失还是强制和冲突丢失两者?

【问题讨论】:

    标签: caching memory-management cpu-architecture


    【解决方案1】:

    您对“冲突未命中”的定义有点无益。

    当需要一个之前存在于缓存中的块时,会发生冲突未命中,但为了支持另一个必须映射到同一插槽的块而被驱逐。

    在您的示例中,对 13 和 25 的访问是唯一的,因此它们必然是第一次访问。根据定义,它们不能在第一次使用之前被驱逐。因此,它们是强制性的失误。

    当然,它们可能导致随后的冲突丢失(和容量丢失)。

    【讨论】:

    • 如果有一个完全填满的直接映射缓存怎么办,意味着所有的缓存行都被块填充了,现在需要一个块,它以前存在于缓存中,但被驱逐了另一个块堵塞。是否会同时出现冲突和容量,因为缓存已经满,因此容量未命中,并且存在冲突因此冲突未命中?
    • 不,那是纯粹的能力。
    【解决方案2】:

    内存块引用 0,5,9,13,7,0,15,25 在 2 路设置关联高速缓存内存与 4 组 - 0,5,9,13,7 将是强制错过。 0 命中。 15,25 将是强制未命中。 任何第一次访问的块始终是强制未命中。 可以参考https://stackoverflow.com/a/40465392/6430403

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-31
      • 1970-01-01
      • 2017-02-25
      • 2017-07-10
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多