MSI (Modified/Shared/Invalid) is the baseline write-back snoopy coherence protocol. A core can write to a line and keep the new value only in its own cache, deferring write-back to memory until the line is evicted or another core needs it, reducing memory traffic compared to WTI.
Three states track each line: Modified (dirty, exclusively owned), Shared (clean, possibly held by others), and Invalid (not held).
MSI protocol state diagram.
I --[read miss]--> S <--[write from other]--> M --[write miss]--> M <--[write hit]------| S --[write hit, broadcast invalidate]--> M