1

假设我们有一台多核机器。核心 1 尝试写入变量 X,它的 L1d 缓存中没有该变量缓存行,因此它广播了一个 RFO 。同时,它将存储写入核心 1 中的存储缓冲区,因为它没有从每个核心获得对包含 X 的缓存行的独占所有权的确认。

现在,Core 1 获得了对 X 所在的缓存行所有权的请求。

(想象一下,现在核心 2 正在尝试修改变量 X - 也许这是线程正在执行的共享计数器x+=local_count

核心会确认这个请求并将其存储在失效队列中,还是核心不会响应它,因为它仍处于阶段转换到独占模式的中间?我觉得解决这两种情况都可能涉及一些开销和簿记,除非我遗漏了一些非常基本的东西。

4

0 回答 0