Abstract:
A shared data structure is lock-free if its operations do not require mutual exclusion. If one process is interrupted in the middle of an operation, other processes will not be prevented from operating on that object. In highly concurrent systems, lock-free data structures avoid common problems associated with conventional locking techniques, including priority inversion, convoying, and difficulty of avoiding deadlock. This paper introduces transactional memory, a new multiprocessor architecture intended to make lock-free synchronization as efficient (and easy to use) as conventional techniques based on mutual exclusion. Transactional memory allows programmers to define customized read-modify-write operations that apply to multiple, independently-chosen words of memory. It is implemented by straightforward extensions to any multiprocessor cache-coherence protocol. Simulation results show that transactional memory matches or outperforms the best known locking techniques for simple bench...
Citations
|
815
|
How to make a multiprocessor computer that correctly executes multiprocess programs
– Lamport
- 1979
|
|
689
|
Improving direct-mapped cache performance by the addition of a small fully associative cache and prefetch bu ers
– Jouppi
- 1990
|
|
607
|
Revision to ‘‘Memory Consistency and Event Ordering in Scalable Shared-Memory Multiprocessors
– GHARACHORLOO, GUPTA, et al.
- 1993
|
|
372
|
Algorithms for Scalable Synchronization on SharedMemory Multiprocessors
– MELLOR-CRUMMEY, SCOTT
- 1991
|
|
310
|
Ethernet: Distributed Packet Switching for Local Computer Networks
– Metcalfe, Boggs
- 1976
|
|
256
|
Notes on Database Operating Systems
– Gray
- 1978
|
|
254
|
A methodology for implementing highly concurrent data objects
– Herlihy
- 1993
|
|
218
|
PROTEUS : A high-performance parallel-architecture simulator
– Brewer, Dellarocas, et al.
- 1991
|
|
193
|
The performance of spin lock alternatives for shared-memory multiprocessors
– Anderson
- 1990
|
|
192
|
Memory access buffering in multiprocessors
– Dubois, Scheurich, et al.
- 1986
|
|
183
|
LimitLESS directories: a scalable cache coherence scheme
– Chaiken, Kubiatowics, et al.
- 1991
|
|
148
|
Cache Consistency and Sequential Consistency
– GOODMAN
- 1989
|
|
147
|
Using Cache Memory to Reduce Processor-Memory Traffic
– Goodman
- 1983
|
|
140
|
Performance Evaluation of Memory Consistency Models for Shared-Memory Multiprocessors
– GHARACHORLOO, GUPTA, et al.
- 1991
|
|
126
|
Efficient synchronization primitives for large-scale cache-coherent multiprocessors
– Goodman, Vernon, et al.
- 1989
|
|
102
|
The expandable split window paradigm for exploiting fine-grained parallelism
– Franklin, Sohi
- 1992
|
|
93
|
Alpha Architecture Reference Manual
– SITES, EDITOR
- 1992
|
|
90
|
Synchronization Algorithms for Shared-Memory Multiprocessors
– Graunke, Thakkar
- 1990
|
|
81
|
801 Storage: Architecture and programming
– Chang, Mergen
- 1988
|
|
81
|
Alock-free multiprocessor os kernel
– Massalin, Pu
- 1991
|
|
74
|
An Architecture for Mostly Functional Languages
– KNIGHT
- 1986
|
|
67
|
Dynamic decentralized cache schemes for MIMD parallel processors
– Rudolph, Segall
- 1984
|
|
51
|
Memory Access Dependencies in Shared-Memory Multiprocessors
– DUBOIS, SCHEURICH
- 1990
|
|
38
|
A new approach to exclusive data access in shared memory multiprocessors
– JENSEN, HAGENSEN, et al.
- 1987
|
|
36
|
et al. The MIT Alewife machine: A large-scale distributed memory multiprocessor
– Agarwal
- 1991
|
|
21
|
Detecting Violations of Sequential Consistency
– GHARACHORLOO, GIBBONS
- 1991
|
|
16
|
Practical Considerations for Lock-Free Concurrent Objects
– Bershad
- 1991
|
|
15
|
Testing and verifying concurrent objects
– Wing, Gong
- 1993
|
|
14
|
Performance Issues in Non-blocking Synchronization on Shared-Memory Multiprocessors
– Allemany, Felten
- 1992
|
|
1
|
Practical fetch-and-phi algorithms
– Mellor-Crummey
- 1987
|