● 总线主向一个主存行写数据,该行同时存在于状态为M的L1 Cache中 当总线主打算向一个主存行写数据,而这个主存行却包含过时数据时,这个总线主一定会受到阻止。和前面的过程相同,L2监听总线主发出的目标地址发现命中了一个修改了的行,L2便阻止总线主的存储器访问,通知处理器查询内部Cache,看其中是否存在目标行的备份,如果存在,还要确定是否在L2行更新以后L1行数据进行过更新。L2控制器驱动AHOLD、EADS#和INV有效,L1开始监听目标行地址。INV信号有效表示L2检测到另一总线主在写存储器。在INV有效的情况下L1监听命中,处理器进而驱动HIT#及HITM#有效,通知L2 Cache检测到监听命中了一个修改的行,而且L1行中包含比L2行更新的数据。处理器将执行Cache行写回周期去更新系统存储器和L2。等到处理器完成写回以后,L1行的状态由M转为I,L2行的状态也变为I。指示一旦其他总线主改写主存行,L1、L2相应行的数据将是无效的。之后,L2撤消对总线主的阻止,那个总线主完成对主存储器的写操作。 |