caching - 为什么MESI协议(protocol)需要Exclusive状态

标签 caching cpu-architecture mesi

我现在正在学习缓存一致性,但是我不太明白MESI协议(protocol)中Exclusive状态的作用是什么,因为我认为MSI也很好用。

最佳答案

MSI 协议(protocol)的问题是,默认情况下所有数据都会以共享状态加载,即使它不是共享的。当我们将缓存 block X 从共享状态移动到修改状态时,我们必须向其他缓存发送信号,以使它们的 block X 副本无效;如果他们没有 block X 的副本,那么我们就不必要地浪费总线带宽/周期。

程序的常见情况是读取并可能修改不与其他线程共享的数据。通过引入独占状态,我们有一种方法来区分这种非共享(独占)数据。当我们修改大部分数据时,我们不必发出多余的无效信号。 MESI 在功能上与 MSI 相同,但针对常见情况进行了更优化。

关于caching - 为什么MESI协议(protocol)需要Exclusive状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32829987/

相关文章:

cpu-architecture - 是否有任何 CPU 架构使用元数据?

performance - 现代计算机缓存的相邻数据的大小以利于局部性

multithreading - 缓存一致性在多核和多处理器架构中如何工作?

caching - MESI在Intel 64和IA-32上的意义是什么

java - CacheBuilder 中的 NoSuchMethodError (checkState)

java - 在使用 Ehcache 刷新只读缓存之前,我需要锁定它吗?

php - Laravel 路由缓存

algorithm - 为什么在排序数组中较大搜索值的实际运行时间小于较低搜索值?

assembly - 带扩展的循环移位有何用途?

caching - 不同级别缓存(即 L1、L2 和 L3)之间的缓存一致性(MESI 协议(protocol))