Almost since coherence was invented, someone has predicted its imminent demise: it costs hardware state, extra messages, and a verification burden. The authors bet the other way — and their argument is economic, not technical:
Who pays for incoherence?
The software cost of dealing with incoherence is substantial — and it lands on a broad population of software engineers, forever. The hardware cost of implementing coherence lands on the few designers who confront it once. Concentrated pain for the few beats diffuse pain for the many.
The supporting evidence: recent heterogeneous systems — where one might have expected coherence to be dropped — are adopting it instead. With a twist: unlike the chapters 6–9 protocols, heterogeneous systems favor consistency-directed consistency-directed coherence Coherence in which writes propagate asynchronously but the order writes become visible must obey the consistency model; the newer GPU-era category. defined in Chapter 2 — open in glossary rather than consistency-agnostic coherence — recall §2.3’s dichotomy: no clean separation of coherence from the consistency model. That is exactly where chapter 10 picks up.
Check yourself
1.Critics have long predicted coherence's demise — extra state, extra messages, verification burden. Why do the authors predict it stays?
2.What evidence do the authors cite, and what twist comes with it?
3.What distinguishes a consistency-DIRECTED coherence protocol from the consistency-AGNOSTIC ones of chapters 6–9?
Chapter 9 references
- P. Conway and B. Hughes. The AMD Opteron northbridge architecture. IEEE Micro, 27(2), 2007.
- A. L. Cox and R. J. Fowler. Adaptive cache coherency for detecting migratory shared data. ISCA, 1993.
- W. J. Dally. Virtual channel flow control. IEEE TPDS, 3(2), 1992.
- K. Gharachorloo, M. Sharma, S. Steely, and S. V. Doren. Architecture and design of AlphaServer GS320. ASPLOS, 2000.
- E. Hagersten and M. Koster. WildFire: A scalable path for SMPs. HPCA, 1999.
- J. Huh, J. Chang, D. Burger, and G. S. Sohi. Coherence decoupling: Making use of incoherence. ASPLOS, 2004.
- M. Kadiyala and L. N. Bhuyan. A dynamic cache sub-block design to reduce false sharing. ICCD, 1995.
- J. Kubiatowicz, D. Chaiken, and A. Agarwal. Closing the window of vulnerability in multiphase memory transactions. ASPLOS, 1992.
- H. Q. Le et al. IBM POWER6 microarchitecture. IBM J. R&D, 51(6), 2007.
- D. Lenoski, J. Laudon, K. Gharachorloo, A. Gupta, and J. Hennessy. The directory-based cache coherence protocol for the DASH multiprocessor. ISCA, 1990.
- Y. A. Manerkar, D. Lustig, M. Pellauer, and M. Martonosi. CCICheck: Using hb graphs to verify the coherence-consistency interface. MICRO, 2015.
- M. M. K. Martin, M. D. Hill, and D. A. Wood. Token coherence: Decoupling performance and correctness. ISCA, 2003.
- M. R. Marty and M. D. Hill. Virtual hierarchies to support server consolidation. ISCA, 2007.
- S. S. Mukherjee and M. D. Hill. Using prediction to accelerate coherence protocols. ISCA, 1998.
- J. Nilsson and F. Dahlgren. Improving performance of load-store sequences for transaction processing workloads on multiprocessors. ICPP, 1999.
- B. F. Romanescu, A. R. Lebeck, D. J. Sorin, and A. Bracy. UNified Instruction/Translation/Data (UNITD) coherence: One protocol to rule them all. HPCA, 2010.
- P. Stenström, M. Brorsson, and L. Sandberg. An adaptive cache coherence protocol optimized for migratory sharing. ISCA, 1993.
- P. J. Teller. Translation-lookaside buffer consistency. IEEE Computer, 23(6), 1990.