【问题标题】:What is a cache hit and a cache miss? Why would context-switching cause cache miss?什么是缓存命中和缓存未命中?为什么上下文切换会导致缓存未命中?
【发布时间】:2013-09-04 17:50:52
【问题描述】:

来自JCIP book的第11章(性能和可扩展性)和名为上下文切换的部分:

当一个新线程切换进来时,它需要的数据不太可能是 在本地处理器缓存中,因此上下文切换会导致一系列 缓存未命中,因此线程在运行时运行得更慢 第一次安排。

  1. 谁能以易于理解的方式解释缓存未命中的概念及其可能的反面(缓存命中)?
  2. 为什么上下文切换会导致大量缓存未命中?

【问题讨论】:

  • 缓存命中 - 在缓存中找到,无需“进一步”(进入内存、磁盘等)。没有什么其他的了。
  • 另见What Every Programmer Should Know About Memory。除了关于预取线程和大量软件预取的部分外,它很旧但仍然相关。这部分主要只适用于 Pentium4,但有关多级缓存和为局部性和顺序访问布置数据的所有其他内容仍然适用。

标签: concurrency language-agnostic cpu cpu-architecture cpu-cache


【解决方案1】:

有人能以易于理解的方式解释缓存未命中的概念及其可能的反面(缓存命中)吗?

缓存miss 通常是指在缓存中查找某些内容但未找到 - 缓存不包含正在查找的项目。缓存命中 是当您在缓存中查找某些内容时,它正在 存储该项目并且能够满足查询。

为什么上下文切换会导致大量缓存未命中?

在内存方面,每个处理器都有一个memory cache——主内存小部分的高速副本。当一个新线程上下文切换到处理器时,本地缓存是空的,或者它与线程所需的数据不对应。这意味着该新线程进行的所有(或大多数)内存查找都会导致缓存未命中,因为它需要的数据没有存储在本地内存缓存中。然后,硬件必须向 内存发出大量请求,以填满本地内存缓存,这会导致线程最初运行速度较慢。

【讨论】:

  • 我在这个问题中添加了第二部分。
  • "每个处理器都有一个内存缓存" - 这个内存缓存与 L1、L2 等缓存不同还是相同?
  • 同样的@RajeevMehta。
  • 我只是在x-cache 上做一些测试。我看到了一些意想不到的行为。即使这是我第一次GETing 图像,我仍然得到HIT.1。 HIT 是指HIT 缓存在客户端,还是表示HIT 在服务器以外的任何地方,即您可以从 CDN 获得 缓存 结果? 因为我得到了"HIT from cloudfront" 查了一下,发现 cloudfront 是一个 CDN。
  • 我只是说我不知道​​,你应该问另一个关于 CDN 如何处理缓存头的问题。我的答案是关于内部线程/处理器内存缓存。
【解决方案2】:

每当处理器想要从主存中获取数据时,它首先会查看缓存缓冲区以查看相应的地址是否存在于缓冲区中。如果存在,则使用缓存执行操作;无需从主内存中获取。这称为“缓存命中”。

如果地址不在缓存中,则称为“缓存未命中”。如果发生高速缓存未命中,则意味着处理器已进入主存获取地址,并且需要更多时间。

【讨论】:

    【解决方案3】:

    您还应该观察到,如果上下文切换导致先前运行的线程在可以访问缓存数据的处理器上返回到活动状态,则有可能所需的“工作集”仍在缓存中。这是真的概率取决于缓存大小(和结构)。它还取决于工作负载:在线程空闲或等待期间有多少缓存需求,以及空闲或等待期间持续多长时间。

    【讨论】:

      【解决方案4】:

      如果处理器发现内存位置在缓存中,我们说缓存命中,否则我们说缓存未命中。

      【讨论】:

        【解决方案5】:

        如果所需的数据在 L1 中,则它是缓存命中。如果所需的数据在另一个缓存内存级别,那么它就是缓存未命中。

        【讨论】:

        • 在 L1 中未命中但在 L2 中命中的访问通常不会被称为“缓存未命中”。这是 L1 未命中,但不仅仅是不合格的“缓存未命中”。
        猜你喜欢
        • 2012-05-11
        • 1970-01-01
        • 2012-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-12
        相关资源
        最近更新 更多