一,总线监听协议(snoopy protocol)
定义:通过监视器 (snooper) 或监听总线(bus)事务解决缓存一致性的协议。
原理:当一个处理器需要修改数据时,通过总线,广播该事件,持有该数据副本的其他处理器在通过总线监听到该事件,进行相应的处理,根据具体协议实现,可以是更新数据,也可以是将数据至于失效。
类型:
1)写失效Write-invalidate
即修改数据的处理器独占该缓存行进行读写,同一时刻,只允许存在一个写(write),其他处理器监听到广播事件后,对数据进行失效处理,比较常用,诸如:MSI,MESI,MOSI,MOESI, andMESIF。
2)写更新Write-update
即其他监听到修改的处理器,通过总线进行数据更新。
具体实现:
![27ae5205ca2a5723283202d7aa1ee765.png](https://img-blog.csdnimg.cn/img_convert/27ae5205ca2a5723283202d7aa1ee765.png)
1)所有监听者(Snooper)都监听总线上的的事件。
2)当某个处理器发出请求,分配一个总线标