Hardware Support
- Atomic instructions
- CAS (compare and swap)
- LL/SC (Load linked/Store conditional)
- MCAS (multi-word CAS)
- Hardware transactional memory (word-oriented)
- Start transaction
- All reads/writes go through cache--invisible to other threads
- Atomic commit using multi-word CAS
- Compare all words in cache with the values in shared memory
- If equal, swap in the modified values from the cache
- If not, start over