< previous page page_542 next page >

Page 542
Table 8.3 Bus-based or snoopy cache coherence protocols.
Source of a new cache line
Number of States
3
4
4
5
Invalid
Shared-Clean
Private-Dirty
Invalid
Shared-Clean
Private-Dirty
Shared-Dirty
Invalid
Private-Clean
Shared-Clean
Private-Dirty
Invalid
Private-Clean
Shared-Clean
Private-Dirty
Shared-Dirty
InvalidateMemory
Write-Inval.
MESI
Cache-to-cache data movement
Synapse Berkeley
Illinois
UpdateCache-to-cache data movement
Firefly
Dragon

Table 8.4 Summary of snoopy protocols.
NameCategoryMemory Copy PolicyUnique Feature
InvalidateWr. invalid.CopybackSimplicity
BerkeleyWr. invalid.CopybackExplicit memory ownership
IllinoisWr. invalid.CopybackClean private state; can supply data from any cache with a clean copy
FireflyWr. updateaCopyback for Private Write through for SharedMemory updated on broadcast
DragonWr. updateCopyback for Private Write through for SharedMemory not updated on broadcast
aOr, Write broadcast in Eggers [83].

memory or by the cache that makes the most recent write to the shared data line (and now has an exclusive copy). Table 8.3 places seven widely discussed protocols into the various categories. Another important distinction among snoopy protocols is the complexity of the protocol itself. This is largely determined by the number of states that must be maintained by the individual cache lines for shared data. The simplest protocols use only three states to ensure coherency. More complex protocols use as many as five or more states for coherence. In general, the larger the number of states, the more complex the protocol, but the less traffic on the bus.

 
< previous page page_542 next page >