 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
|
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
|
|