Reporting Snoop Results: How?
Collective response from $’s must appear on bus
Example: in MESI protocol, need to know
- Is block dirty; i.e. should memory respond or not?
- Is block shared; i.e. transition to E or S state on read miss?
Three wired-OR signals
- Shared: asserted if any cache has a copy
- Dirty: asserted if some cache has a dirty copy
- needn’t know which, since it will do what’s necessary
- Snoop-valid: asserted when OK to check other two signals
- actually inhibit until OK to check
Illinois MESI requires priority scheme for cache-to-cache transfers
- Which cache should supply data when in shared state?
- Commercial implementations allow memory to provide data