Compiler Directed Coherence (Continued)
Indiscriminate Invalidation
- Invalidate entire cache after each epoch
- Uses uncached read/write as one option
Selective Invalidation
- Invalidate only cache lines that may introduce incoherence
- Assumes write-through caches
Timestamp
- Clock per data structure incremented at end of epoch
- Timestamp cache block with clock +1 when written
- Valid if timestamp > clock
Say it with me kids POINTERS!
In general has only been shown to work for one word cache blocks