我一直在思考 MOESI 协议的“拥有”状态。假设存在以下情况:
P0 的 A 线处于 O 状态。 P1 的 A 线处于 S 状态。
P1读取的数据现在已经过时了。在 MESI 协议(或 MESIF 协议)中,只要处理器可以写入高速缓存行,就可以保证其他处理器在假设数据正确之前必须侦听该行。但 MOESI 似乎并非如此。
我在这里缺少什么?
https://en.wikipedia.org/wiki/MOESI_protocol -
拥有
该行是系统中的多个副本之一。 此缓存没有权限修改副本 ...
它“拥有”写回脏数据的责任,但它没有独占所有权,因此在发送无效请求并接收确认之前它无法修改它。 (类似于 RFO(读取所有权),但不需要发送数据。)
这就是O态与M或E态不同的原因。