在 MESI 协议中,仅当将缓存行保持在独占/修改状态时才写入缓存行。要获取独占状态,您可以向持有同一高速缓存行的所有核心发送无效请求。
但是是否存在一种微架构,其中某些内核会在实际使缓存线无效之前做出确认响应?如果确实如此,那不是违反了缓存一致性吗?
我问这个问题的原因是因为我对这个答案感到困惑 -内存屏障强制缓存一致性? https://stackoverflow.com/a/54386391/8521177。它说:
将条目放入无效队列本质上是一个承诺
CPU 在传输任何 MESI 协议之前处理该条目
有关该缓存行的消息。所以失效队列是
即使执行简单的操作,我们也可能看不到最新值的原因
读取单个变量。
但是,如果还没有新值,我们如何读取“陈旧”变量呢?我的意思是,在收到所有其他核心的无效确认之前,写入核心不会写入新值。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)