000 08492nam a2200721 i 4500
001 6813517
003 IEEE
005 20200413152901.0
006 m eo d
007 cr cn |||m|||a
008 110520s2011 caua foab 000 0 eng d
020 _a9781608455652 (electronic bk.)
020 _z9781608455645 (pbk.)
024 7 _a10.2200/S00346ED1V01Y201104CAC016
_2doi
035 _a(CaBNVSL)gtp00547876
035 _a(OCoLC)726930429
040 _aCaBNVSL
_cCaBNVSL
_dCaBNVSL
050 4 _aQA76.9.M45
_bS676 2011eb
082 0 4 _a005.43
_222
100 1 _aSorin, Daniel J.
245 1 2 _aA primer on memory consistency and cache coherence
_h[electronic resource] /
_cDaniel J. Sorin, Mark D. Hill, David A. Wood.
260 _aSan Rafael, Calif. (1537 Fourth Street, San Rafael, CA 94901 USA) :
_bMorgan & Claypool,
_cc2011.
300 _a1 electronic text (xiii, 197 p.) :
_bill., digital file.
490 1 _aSynthesis lectures on computer architecture,
_x1935-3243 ;
_v# 16
538 _aMode of access: World Wide Web.
538 _aSystem requirements: Adobe Acrobat Reader.
500 _aPart of: Synthesis digital library of engineering and computer science.
500 _aSeries from website.
504 _aIncludes bibliographical references.
505 0 _aPreface -- 1. Introduction to consistency and coherence -- Consistency (a.k.a., memory consistency, memory consistency model or memory model) -- Coherence (a.k.a., cache coherence) -- A consistency and coherence quiz -- What this primer does not do --
505 8 _a2. Coherence basics -- Baseline system model -- The problem: how incoherence could possibly occur -- Defining coherence -- Maintaining the coherence invariants -- The granularity of coherence -- The scope of coherence -- References --
505 8 _a3. Memory consistency motivation and sequential consistency -- Problems with shared memory behavior -- What is a memory consistency model -- Consistency vs. coherence -- Basic idea of sequential consistency (SC) -- A little SC formalism -- Naive SC implementations -- A basic SC implementation with cache coherence -- Optimized SC implementations with cache coherence -- Atomic operations with SC -- Putting it all together: MIPS R10000 -- Further reading regarding SC -- References --
505 8 _a4. Total store order and the x86 memory model -- Motivation for TSO/x86 -- Basic idea of TSO/x86 -- A little TSO formalism and an x86 conjecture -- Implementing TSO/x86 -- Atomic instructions and fences with TSO -- Atomic instructions -- Fences -- Further reading regarding TSO -- Comparing SC and TSO -- References --
505 8 _a5. Relaxed memory consistency -- Motivation -- Opportunities to reorder memory operations -- Opportunities to exploit reordering -- An example relaxed consistency model (XC) -- The basic idea of the XC model -- Examples using fences under XC -- Formalizing XC -- Examples showing XC operating correctly -- Implementing XC -- Atomic instructions with XC -- Fences with XC -- A caveat -- Sequential consistency for data-race-free programs -- Some relaxed model concepts -- Release consistency -- Causality and write atomicity -- A relaxed memory model case study: IBM power -- Further reading and commercial relaxed memory models -- Academic literature -- Commercial models -- Comparing memory models -- How do relaxed memory models relate to each other and TSO and SC -- How good are relaxed models -- High-level language models -- References --
505 8 _a6. Coherence protocols -- The big picture -- Specifying coherence protocols -- Example of a simple coherence protocol -- Overview of coherence protocol design space -- States -- Transactions -- Major protocol design options -- References --
505 8 _a7. Snooping coherence protocols -- Introduction to snooping -- Baseline snooping protocol -- High-level protocol specification -- Simple snooping system model: atomic requests -- Atomic transactions -- Baseline snooping system model: non-atomic requests, atomic transactions -- Running example -- Protocol simplifications -- Adding the exclusive state -- Motivation -- Getting to the exclusive state -- High-level specification of protocol -- Detailed specification -- Running example -- Adding the owned state -- Motivation -- High-level protocol specification -- Detailed protocol specification -- Running example -- Non-atomic bus -- Motivation -- In-order vs. out-of-order responses -- Non-atomic system model -- An MSI protocol with a split-transaction bus -- An optimized, non-stalling MSI protocol with a split-transaction bus -- Optimizations to the bus interconnection network -- Separate non-bus network for data responses -- Logical bus for coherence requests -- Case studies -- Sun Starfire E10000 -- IBM Power5 -- Discussion and the future of snooping -- References --
505 8 _a8. Directory coherence protocols -- Introduction to directory protocols -- Baseline directory system -- Directory system model -- High-level protocol specification -- Avoiding deadlock -- Detailed protocol specification -- Protocol operation -- Protocol simplifications -- Adding the exclusive state -- High-level protocol specification -- Detailed protocol specification -- Adding the owned state -- High-level protocol specification -- Detailed protocol specification -- Representing directory state -- Coarse directory -- Limited pointer directory -- Directory organization -- Directory cache backed by DRAM -- Inclusive directory caches -- Null directory cache (with no backing store) -- Performance and scalability optimizations -- Distributed directories -- Non-stalling directory protocols -- Interconnection networks without point-to-point ordering -- Silent vs. non-silent evictions of blocks in state S -- Case studies -- SGI origin 2000 -- Coherent hypertransport -- Hypertransport assist -- Intel QPI -- Discussion and the future of directory protocols -- References --
505 8 _a9. Advanced topics in coherence -- System models -- Instruction caches -- Translation lookaside buffers (TLBS) -- Virtual caches -- Write-through caches -- Coherent direct memory access (DMA) -- Multi-level caches and hierarchical coherence protocols -- Performance optimizations -- Migratory sharing optimization -- False sharing optimizations -- Maintaining liveness -- Deadlock -- Livelock -- Starvation -- Token coherence -- The future of coherence -- References -- Author biographies.
506 1 _aAbstract freely available; full-text restricted to subscribers or individual document purchasers.
510 0 _aCompendex
510 0 _aINSPEC
510 0 _aGoogle scholar
510 0 _aGoogle book search
520 3 _aMany 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 protocols 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.
530 _aAlso available in print.
588 _aTitle from PDF t.p. (viewed on May 20, 2011).
650 0 _aMemory management (Computer science)
650 0 _aCache memory.
650 0 _aDistributed shared memory.
653 _aComputer architecture
653 _aMemory consistency
653 _aCache coherence
653 _aShared memory
653 _aMemory systems
653 _aMulticore processor
653 _aMultiprocessor
700 1 _aHill, Mark D.
_q(Mark Donald)
700 1 _aWood, David A.
776 0 8 _iPrint version:
_z9781608455645
830 0 _aSynthesis digital library of engineering and computer science.
830 0 _aSynthesis lectures on computer architecture,
_x1935-3243 ;
_v# 16.
856 4 2 _3Abstract with links to resource
_uhttp://ieeexplore.ieee.org/servlet/opac?bknumber=6813517
999 _c561835
_d561835