我现在正在学习缓存一致性,但我不太明白MESI协议中Exclusive状态的功能是什么,因为我认为MSI也运行良好。
答案 0 :(得分:4)
MSI协议的问题在于,默认情况下,所有数据都是在共享状态下加载的,即使它没有被共享。当我们将高速缓存块X从共享状态移动到修改状态时,我们必须向其他高速缓存发送信号以使其块X的副本无效;如果他们没有块X的副本,那么我们就会不必要地浪费总线带宽/周期。
程序的常见情况是读取并可能修改不与其他线程共享的数据。通过引入独占状态,我们可以区分这种非共享(独占)数据。当我们修改大部分数据时,我们不必发出多余的无效信号。 MESI在功能上与MSI相同,但针对常见情况进行了更优化。