两种实现方式:
总线锁定:通过锁定总线,也就是锁定后,总线数据的传输将被阻塞
缓存锁定:通过缓存一致性实现原子操作,缓存一致性常用MESI控制协议实现
MESI控制协议:
MESI是四种状态,用来表明缓存中数据的状态。
M(modify):表示缓存中数据修改,与内存中不一致,只能有一个缓存拥有这个状态,且其他拥有该数据的缓存为i状态
E(exclusive): 表示别的缓存中没有该数据,只有该缓存独占,当别的缓存从内存中读取后,变为s状态,只能有一个缓存拥有这个状态
S(shared): 表示除了该缓存,其他缓存也拥有该数据,当该状态存在时,不可能存在其他所有状态。
I(invalid): 表示失效状态,当有另一个缓存行状态为M状态时该缓存变为此状态。
网友评论