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