我现在正在学习缓存一致性,但我不太明白在MESI协议中独占状态的功能是什么,因为我认为MSI也工作得很好。
发布于 2015-09-28 23:35:58
MSI协议的问题是,默认情况下,所有数据都以共享状态加载,即使它不是共享的。当我们将缓存块X从共享状态移动到修改状态时,我们必须向其他缓存发送一个信号,以使它们的块X副本失效;如果它们没有块X的副本,那么我们就不必要地浪费总线带宽/周期。
程序的常见情况是读取和修改不与其他线程共享的数据。通过引入一个排他状态,我们有一种方法来区分这个非共享(排它)数据。当我们修改大部分数据时,我们不必发出多余的无效信号。MESI在功能上与MSI相同,但更适合于普通情况。
https://stackoverflow.com/questions/32829987
复制相似问题