第八章 并行处理机和多处理机

  2 监听协议

  根据系统结构的不同,解决Cache一致性问题的协议机制主要有两类。在采用基于总线互连结构的系统中,由于系统中每个处理机都能觉察到存储器系统正在进行的活动,在某个活动破坏了Cache的一致性时,Cache控制器将采取相应的动作使有关的拷贝无效或更新。采用这种保持Cache一致性的协议称为监听协议。
但是,很多并行系统并不采用基于总线互连的结构,在这些系统中处理机无法对存储器系统的活动进行监听,监听协议也就不再适用。这类系统的Cache一致性问题可以采用基于目录的方法来解决。
  (1) 监听协议概述
  在使用监听协议时,有两种来保持Cache一致性的方法:写无效(Write-Invalidate)策略和更新(Write -Update)策略。写无效策略是在本地Cache的数据块修改时使远程数据块都无效,写更新策略在本地Cache数据块修改时通过总线把新的数据块广播给含该数据块的所有其他Cache。注意,写无效和写更新策略是保持Cache一致性的策略,与Cache采用写回(Write-Back)还是写通过(Write-Through)策略无关。如果Cache采用的写通过策略,在使远程数据块无效或更新其他Cache的同时,还要同时修改共享存储器的内容。
  图8.15说明Write-Invalidate策略和Write-Update策略的区别(以Write-Through方式为例)。

  由于Write-Update策略在本地Cache修改时需要通过总线把修改过的数据块的内容广播给所有含该数据块的其他Cache,增加了总线的负担,所以在一般的应用系统中,极少使用Write-Update策略。大部分系统使用Write-Invalidate策略。鉴于这种情况,在下面的讨论中我们就不再考虑Write-Update策略。