An example of sophisticated write-update protocol
Dragon protocol - 4 states + “shared” line
- No invalid state either memory or a cache block is in correct state
- Valid-exclusive (only copy in cache but not modified)
- Shared-dirty (write-back required at replacement)
- Shared-clean (several clean copies in caches)
- Dirty (single modified copy in caches)
On a write, the data is sent to caches that have a valid copy of the block. They must raise a “shared” control line to indicate they are alive. If none, go to state dirty.
On a miss, shared line is raised by cache that has a copy