Memory access buffering in multiprocessors
ISCA '86 Proceedings of the 13th annual international symposium on Computer architecture
Memory coherence in shared virtual memory systems
ACM Transactions on Computer Systems (TOCS)
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Memory Access Dependencies in Shared-Memory Multiprocessors
IEEE Transactions on Software Engineering
Munin: distributed shared memory based on type-specific memory coherence
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
Reasoning about parallel architectures
Reasoning about parallel architectures
Lazy release consistency for software distributed shared memory
ISCA '92 Proceedings of the 19th annual international symposium on Computer architecture
ACM SIGOPS Operating Systems Review
The power of processor consistency
SPAA '93 Proceedings of the fifth annual ACM symposium on Parallel algorithms and architectures
Distributed operating systems
Techniques for reducing consistency-related communication in distributed shared-memory systems
ACM Transactions on Computer Systems (TOCS)
Proceedings of the ninth annual ACM symposium on Parallel algorithms and architectures
The interaction of software prefetching with ILP processors in shared-memory systems
Proceedings of the 24th annual international symposium on Computer architecture
ISCA '99 Proceedings of the 26th annual international symposium on Computer architecture
Memory consistency and event ordering in scalable shared-memory multiprocessors
ISCA '90 Proceedings of the 17th annual international symposium on Computer Architecture
The directory-based cache coherence protocol for the DASH multiprocessor
ISCA '90 Proceedings of the 17th annual international symposium on Computer Architecture
Location Consistency-A New Memory Model and Cache Consistency Protocol
IEEE Transactions on Computers
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
The Java Language Specification
The Java Language Specification
Specifying multithreaded Java semantics for program verification
Proceedings of the 24th International Conference on Software Engineering
A Unified Formalization of Four Shared-Memory Models
IEEE Transactions on Parallel and Distributed Systems
Dag-Consistent Distributed Shared Memory
IPPS '96 Proceedings of the 10th International Parallel Processing Symposium
WDAG '91 Proceedings of the 5th International Workshop on Distributed Algorithms
Euro-Par '97 Proceedings of the Third International Euro-Par Conference on Parallel Processing
Adaptable Distributed Shared Memory: A Formal Definition
Euro-Par '98 Proceedings of the 4th International Euro-Par Conference on Parallel Processing
Shared virtual memory on loosely coupled multiprocessors
Shared virtual memory on loosely coupled multiprocessors
Efficient algorithms for verifying memory consistency
Proceedings of the seventeenth annual ACM symposium on Parallelism in algorithms and architectures
Proceedings of the 4th international conference on Computing frontiers
Design of a cheat-resistant P2P online gaming system
Proceedings of the 2nd international conference on Digital interactive media in entertainment and arts
On specification of Read/Write shared variables
Journal of the ACM (JACM)
A parametrized algorithm that implements sequential, causal, and cache memory consistencies
Journal of Systems and Software
Implementing sequentially consistent programs on processor consistent platforms
Journal of Parallel and Distributed Computing
Using supplier locality in power-aware interconnects and caches in chip multiprocessors
Journal of Systems Architecture: the EUROMICRO Journal
RMOST: A Shared Memory Model for Online Steering
ICCS '08 Proceedings of the 8th international conference on Computational Science, Part III
Relaxed memory models: an operational approach
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Interconnection of distributed memory models
Journal of Parallel and Distributed Computing
Steering of sequential jobs with a distributed shared memory based model for online steering
Future Generation Computer Systems
Scalability of relaxed consistency models in NoC based multicore architectures
ACM SIGARCH Computer Architecture News
A formal approach to replica consistency in directory service
PPAM'09 Proceedings of the 8th international conference on Parallel processing and applied mathematics: Part I
Abstraction for concurrent objects
Theoretical Computer Science
An intuitionistic epistemic logic for sequential consistency on shared memory
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
Proceedings of the 16th Asia and South Pacific Design Automation Conference
Litmus tests for comparing memory consistency models: how long do they need to be?
Proceedings of the 48th Design Automation Conference
Multiwriter Consistency Conditions for Shared Memory Registers
SIAM Journal on Computing
Types for relaxed memory models
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
Bounded model checking of concurrent data types on relaxed memory models: a case study
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Consistency models for replicated data
Replication
Generative operational semantics for relaxed memory models
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Making the java memory model safe
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.01 |
The traditional assumption about memory is that a read returns the value written by the most recent write. However, in a shared memory multiprocessor several processes independently and simultaneously submit reads and writes resulting in a partial order of memory operations. In this partial order, the definition of most recent write may be ambiguous. Memory consistency models have been developed to specify what values may be returned by a read given that memory operations may only be partially ordered. Before this work, consistency models were defined independently. Each model followed a set of rules which was separate from the rules of every other model. In our work, we have defined a set of four consistency properties. Any subset of the four properties yields a set of rules which constitute a consistency model. Every consistency model previously described in the literature can be defined based on our four properties. Therefore, we present these properties as a unfied theory of shared memory consistency.Our unified theory provides several benefits. First, we claim that these four properties capture the underlying structure of memory consistency. That is, the goal of memory consistency is to ensure certain declarative properties which can be intuitively understood by a programmer, and hence allow him or her to write a correct program. Our unified theory provides a uniform, formal definition of all previously described consistency models, and in addition some combinations of properties produce new models that have not yet been described. We believe these new models will prove to be useful because they are based on declarative properties which programmers desire to be enforced. Finally, we introduce the idea of selecting a consistency model as an on-line activity. Before our work, a shared memory program would run start to finish under a single consistency model. Our unified theory allows the consistency model to change as the program runs while maintaining a consistent definition of what values may be returned by each read.