SYNTHESIS LECTURES ON
COMPUTER ARCHITECTURE
Series Editor: Mark D. Hill, University of Wisconsin
A Primer on Memory Consistency
and Cache Coherence
Daniel J. Sorin, Duke University
Mark D. Hill and David A. Wood, University of Wisconsin, Madison
Series ISSN: 1935-3235
S
O
R
I
N
•
H
I
L
L
•
W
O
O
D
A
Many modern computer systems and most multicore chips (chip multiprocessors) support shared
memory in hardware. In a shared memory system, each of the processor cores may read and write to
a single shared address space. For a shared memory machine, the memory consistency model defines
the architecturally visible behavior of its memory system. Consistency definitions provide rules about
loads and stores (or memory reads and writes) and how they act upon memory. As part of supporting
a memory consistency model, many machines also provide cache coherence proto-cols that ensure that
multiple cached copies of data are kept up-to-date. The goal of this primer is to provide readers with
a basic understanding of consistency and coherence. This understanding includes both the issues that
must be solved as well as a variety of solutions. We present both high-level concepts as well as specific,
concrete examples from real-world systems.
About SYNTHESIs
This volume is a printed version of a work that appears in the Synthesis
Digital Library of Engineering and Computer Science. Synthesis Lectures
provide concise, original presentations of important research and development
topics, published quickly, in digital and print formats. For more information
visit www.morganclaypool.com
&
Morgan Claypool Publishers
w w w . m o r g a n c l a y p o o l . c o m
C
O
H
E
R
E
N
C
E
M
O
R
G
A
N
&
C
L
A
Y
P
O
O
L
ISBN: 978-1-60845-564-5
90000
9 781608 455645
P
R
I
M
E
R
O
N
M
E
M
O
R
Y
C
O
N
S
I
S
T
E
N
C
Y
A
N
D
C
A
C
H
E
&
CM& Morgan Claypool Publishers
A Primer on Memory
Consistency and
Cache Coherence
Daniel J. Sorin
Mark D. Hill
David A. Wood
SYNTHESIS LECTURES ON
COMPUTER ARCHITECTURE
Mark D. Hill, Series Editor
A Primer on Memory Consistency
and Cache Coherence
ii
Synthesis Lectures on Computer
One liner Chapter Title
Architecture
Editor
Mark D. Hill, University of Wisconsin
Synthesis Lectures on Computer Architecture publishes 50- to 100-page publications on topics
pertaining to the science and art of designing, analyzing, selecting and interconnecting hardware
components to create computers that meet functional, performance and cost goals. The scope will
largely follow the purview of premier computer architecture conferences, such as ISCA, HPCA,
MICRO, and ASPLOS.
A Primer on Memory Consistency and Cache Coherence
Daniel J. Sorin, Mark D. Hill, and David A. Wood
2011
Dynamic Binary Modification: Tools, Techniques, and Applications
Kim Hazelwood
2011
Quantum Computing for Computer Architects, Second Edition
Tzvetan S. Metodi, Arvin I. Faruque, Frederic T. Chong
2011
High Performance Datacenter Networks: Architectures, Algorithms, and Opportunities
Dennis Abts, John Kim
2011
Processor Microarchitecture: An Implementation Perspective
Antonio González, Fernando Latorre, and Grigorios Magklis
2011
Transactional Memory, 2nd edition
Tim Harris, James Larus, and Ravi Rajwar
2010
iii
Computer Architecture Performance Evaluation Models
Lieven Eeckhout
2010
Introduction to Reconfigurable Supercomputing
Marco Lanzagorta, Stephen Bique, and Robert Rosenberg
2009
On-Chip Networks
Natalie Enright Jerger and Li-Shiuan Peh
2009
The Memory System: You Can’t Avoid It, You Can’t Ignore It, You Can’t Fake It
Bruce Jacob
2009
Fault Tolerant Computer Architecture
Daniel J. Sorin
2009
The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines
Luiz André Barroso and Urs Hölzle
2009
Computer Architecture Techniques for Power-Efficiency
Stefanos Kaxiras and Margaret Martonosi
2008
Chip Multiprocessor Architecture: Techniques to Improve Throughput and Latency
Kunle Olukotun, Lance Hammond, and James Laudon
2007
Transactional Memory
James R. Larus and Ravi Rajwar
2006
Quantum Computing for Computer Architects
Tzvetan S. Metodi and Frederic T. Chong
2006
Copyright © 2011 by Morgan & Claypool
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in
any form or by any means—electronic, mechanical, photocopy, recording, or any other except for brief quotations
in printed reviews, without the prior permission of the publisher.
A Primer on Memory Consistency and Cache Coherence
Daniel J. Sorin, Mark D. Hill, and David A. Wood
www.morganclaypool.com
ISBN: 9781608455645 paperback
ISBN: 9781608455652 ebook
DOI: 10.2200/S00346ED1V01Y201104CAC016
A Publication in the Morgan & Claypool Publishers series
SYNTHESIS LECTURES ON COMPUTER ARCHITECTURE #16
Lecture #16
Series Editor: Mark D. Hill, University of Wisconsin
Series ISSN
ISSN 1935-3235
ISSN 1935-3243
print
electronic
A Primer on Memory Consistency
and Cache Coherence
Daniel J. Sorin, Mark D. Hill, and David A. Wood
SYNTHESIS LECTURES ON COMPUTER ARCHITECTURE #16
vi
ABSTRACT
Many modern computer systems and most multicore chips (chip multiprocessors) support shared
memory in hardware. In a shared memory system, each of the processor cores may read and write
to a single shared address space. For a shared memory machine, the memory consistency model
defines the architecturally visible behavior of its memory system. Consistency definitions provide
rules about loads and stores (or memory reads and writes) and how they act upon memory. As part
of supporting a memory consistency model, many machines also provide cache coherence proto-
cols that ensure that multiple cached copies of data are kept up-to-date. The goal of this primer
is to provide readers with a basic understanding of consistency and coherence. This understanding
includes both the issues that must be solved as well as a variety of solutions. We present both high-
level concepts as well as specific, concrete examples from real-world systems.
KEYWORDS
computer architecture, memory consistency, cache coherence, shared memory, memory systems,
multicore processor, multiprocessor