当其他总线主设备从存储器的某一行读取数据,L2控制器就监听那个总线主发出的地址。如果这个存储器行在L2中也存在副本,就是L2 Cache读命中。L2控制器就检测相应行当前的状态。如果为M,表示行中的数据已被修改,也就是说那个总线主要读的那行存储器数据已经过时,此时这个数据是暂时不能使用的。所以L2控制器阻止那个总线主读取数据,让它等候,将目标地址传给处理器,让处理器也来监听这个地址。因为在上次的写直达后,对这行数据的其他的写操作将不到达L2。所以L2控制器不知道上次写直达以后,L1的对应行是否也经过修改,换句话说,它不知道自己保存的数据是不是最新版本的。 |