缓存一致性
Published on 2023-02-13
MESI 协议概述
MESI (Modified, Exclusive, Shared, Invalid) 协议是一种用于处理多处理器系统中缓存一致性的协议。它是通过在处理器的缓存行中维护四种状态来解决读写冲突问题的:
-
Exclusive (独占)
该状态表示当前缓存行中的数据是唯一的,并且没有其他处理器持有该数据的副本。当数据从内存中读取时,它的状态将变为 Exclusive。 -
Modified (修改)
该状态表示当前缓存行中的数据已被修改,并且没有更新到内存中。当前状态为 Exclusive,当数据被写入时,状态将变为 Modified。 -
Shared (共享)
该状态表示该缓存行中的数据在多个处理器中都可以访问。当前状态为 Exclusive 或 Modified,当数据被其他处理器读取时,状态将变为 Shared。该状态下的数据必须在内存中可用。 -
Invalid (无效)
该状态表示该缓存行中的数据不再是最新的,并且不能在该处理器中使用。当前状态为 Shared 时,当数据被其他处理器写入时,状态将变为 Invalid。
MESI 状态变化过程:
