Shared Memory Consistency Models: A Tutorial

Abstract

Parallel systems that support the shared memory abstraction are becoming widely accepted in many areas of computing. Writing correct and efficient programs for such systems requires a formal specification of memory semantics called a memory consistency model. The most intuitive model---sequential consistency---greatly restricts the use of many performance optimizations commonly used by uniprocessor hardware and compiler designers, thereby reducing the benefit of using a multiprocessor. To alleviate this problem, many current multiprocessors support more relaxed consistency models. Unfortunately, the models supported by various systems differ from each other in subtle yet important ways. Furthermore, precisely defining the semantics of each model often leads to complex specifications that are difficult to understand for typical users and builders of computer systems. The purpose of this tutorial paper is to describe issues related to memory consistency models in a way that would be understandable to most computer professionals. We focus on consistency models proposed for hardware-based shared memory systems. Many of these models are originally specified with an emphasis on the system optimizations they allow. We retain the system-centric emphasis but use uniform and simple terminology to describe the different models. We also briefly discuss an alternate programmer-centric view that describes the models in terms of program behavior rather than specific system optimizations.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Sep 01, 1995
Accession Number
ADA638015

Entities

People

  • Kourosh Gharachorloo
  • Sarita V. Adve

Organizations

  • Rice University

Tags

Communities of Interest

  • Advanced Electronics
  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Algorithms
  • Circuit Boards
  • Compilers
  • Computer Programming
  • Computer Science
  • Computers
  • Computing System Architectures
  • Consistency
  • Electronic Mail
  • Language
  • Multiprocessors
  • Operating Systems
  • Optimization
  • Programming Languages
  • Semantics
  • Specifications
  • Standards

Fields of Study

  • Computer science

Readers

  • Computational Modeling and Simulation
  • Database Systems and Applications
  • Parallel and Distributed Computing.