Affiliation:
1. Computer Sciences Department, University of Wisconsin, Madison, Wisconsin
Abstract
A memory model for a shared memory, multiprocessor commonly and often implicitly assumed by programmers is that of
sequential consistency
. This model guarantees that all memory accesses will appear to execute atomically and in program order. An alternative model,
weak ordering
, offers greater performance potential. Weak ordering was first defined by Dubois, Scheurich and Briggs in terms of a set of rules for hardware that have to be made visible to software.
The central hypothesis of this work is that programmers prefer to reason about sequentially consistent memory, rather than having to think about weaker memory, or even write buffers. Following this hypothesis, we re-define weak ordering as a contract between software and hardware. By this contract, software agrees to some formally specified constraints, and hardware agrees to appear sequentially consistent to at least the software that obeys those constraints. We illustrate the power of the new definition with a set of software constraints that forbid data races and an implementation for cache-coherent systems that is not allowed by the old definition.
Publisher
Association for Computing Machinery (ACM)
Cited by
61 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Formal Definitions and Performance Comparison of Consistency Models for Parallel File Systems;IEEE Transactions on Parallel and Distributed Systems;2024-06
2. Performance Evaluation on Parallel Speculation-Based Construction of a Binary Search Tree;International Journal of Networked and Distributed Computing;2023-11-08
3. WARDen: Specializing Cache Coherence for High-Level Parallel Languages;Proceedings of the 21st ACM/IEEE International Symposium on Code Generation and Optimization;2023-02-17
4. IXIAM: ISA EXtension for Integrated Accelerator Management;IEEE Access;2023
5. SherLock: unsupervised synchronization-operation inference;Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems;2021-04-17