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)