B.1. Introduction (and a Puzzle)B.2. Processors and ThreadsB.3. InterconnectB.4. MemoryB.5. CachesB.5.1. CoherenceB.5.2. SpinningB.6. Cache-Conscious Programming, or the Puzzle SolvedB.7. Multi-Core and Multi-Threaded ArchitecturesB.7.1. Relaxed Memory ConsistencyB.8. Hardware Synchronization InstructionsB.9. Chapter NotesB.10. Exercises