Advanced Computer Architecture Chapter 7.22
A more cunning plan… invalidation
Suppose instead of updating remote cache lines, we invalidate them all when a store occurs?
After the first write to a cache line we know there are no remote copies – so subsequent writes don’t lead to communication
Is invalidate always better than update?
Often
But not if the other processors really need the new data as soon as possible
Note that to exploit this, we need a bit on each cache line indicating its sharing state
(analogous to write-back vs write-through)