Cache Coherency Protocols
MESI
MSI
SISC - Non Speculative
Local read
| Read hit | |||
|---|---|---|---|
| I | | |
|
| S | → | S | PrRd/– |
| St | → | St | PrRd/– |
| M | → | M | PrRd/– |
| MC | → | MC | PrRd/– |
| Read miss | |||
|---|---|---|---|
| I | –StlL→ | S | |
| I | –StlH→ | St | when req goes to L2 and some speculative threads have new specultive data. |
| S | | |
|
| St | | |
|
| M | | |
|
| MC | | |
|
Distant read
| BusR | |||
|---|---|---|---|
| I | | no invalid on bus (if answer), I→I if req |
|
| S | → | S | |
| St | | not possible for speculative threads | |
| MC | → | S | |
| M | | not possible for speculative threads | |
Local write
| Write hit | |||
|---|---|---|---|
| M | → | M | |
| MC | → | M | |
| S | → | M | like MSI |
| St | → | St | |
| Write miss | |||
|---|---|---|---|
| I | –StlL→ | M | same story as read miss |
| I | –StlH→ | St | |
| S | | |
|
| St | | |
|
| M | | |
|
| MC | | |
|
Distant write => readx
| Bus on Write hit | |||
|---|---|---|---|
| I | | |
|
| S | → | INV | ok. ditant goes to modified ⇒ invalidate, Regular MSI |
| St | → | INV | ok. ditant goes to modified ⇒ invalidate |
| M | | . Distant write hit impossible on local modified |
|
| MC | | impossible on write hit, only on miss | |
| Bus on Write miss | |||
|---|---|---|---|
| MC | → | INV | Is there a writeback ? |
| S | → | INV | |
questions
- Word-based cache coherency:
- Let’s configure the cache to have a cache line containing only a word.
- States
- which states imply you have an exclusive copy ? M MC
- Read / Write Miss
- INV → S/St : It s a matter of checking an extra signal.
- Then, the mechanism of distributed arbitration chooses the supplier thread and allows it to put the requested cache word on the shared bus.
- controller on speculation support at the bus level.
action points
- Build the FSA to be translated into source code
- Matching transitions with existing ones if possible.
- Add additional signals to the bus

