Module 6: Shared Memory Multiprocessors: Consistency and Coherence
Lecture 12: Cache Coherence Protocols
State Transition
MSI Protocol
Few things to note
Flush operation essentially launches the line on the bus
Processor with the cache line in M state is responsible for flushing the line on bus whenever there is a BusRd or BusRdX transaction generated by some other processor
On BusRd the line transitions from M to S, but not M to I. Why? Also at this point both the requester and memory pick up the line from the bus; the requester puts the line in its cache in S state while memory writes the line back. Why does memory need to write back?
On BusRdX the line transitions from M to I and this time memory does not need to pick up the line from bus. Only the requester picks up the line and puts it in M state in its cache. Why?