Invalidate
is usually better than update
Cache
line state DIRTY bit records whether remote copies exist
If
so, remote copies are invalidated by broadcasting message on bus cache controllers snoop all
traffic
Where
to get the up-to-date data from?
Broadcast
read miss request on the bus
If
this CPUs copy is DIRTY, it responds
If
no cache copies exist, main memory responds
If
several copies exist, the CPU which holds it in SHARED-DIRTY state responds
If
a SHARED-DIRTY cache line is displaced,
need a plan
How
well does it work?
See
extensive analysis in Hennessy and Patterson