Efficient processor support for DRFx, a memory model with exceptions

  • Authors:
  • Abhayendra Singh;Daniel Marino;Satish Narayanasamy;Todd Millstein;Madan Musuvathi

  • Affiliations:
  • University of Michigan, Ann Arbor, MI, USA;University of California, Los Angeles, CA, USA;University of Michigan, Ann Arbor, MI, USA;University of California, Los Angeles, CA, USA;Microsoft Research, Redmond, WA, USA

  • Venue:
  • Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

A longstanding challenge of shared-memory concurrency is to provide a memory model that allows for efficient implementation while providing strong and simple guarantees to programmers. The C++0x and Java memory models admit a wide variety of compiler and hardwareoptimizations and provide sequentially consistent (SC) semantics for data-race-free programs. However, they either do not provide any semantics (C++0x) or provide a hard-to-understand semantics (Java) for racy programs, compromising the safety and debuggability of such programs. In earlier work we proposed the DRFx memory model, which addresses this problem by dynamically detecting potential violations of SC due to the interaction of compiler or hardware optimizations with data races and halting execution upon detection. In this paper, we present a detailed micro-architecture design for supporting the DRFx memory model, formalize the design and prove its correctness, and evaluate the design using a hardware simulator. We describe a set of DRFx-compliant complexity-effective optimizations which allow us to attain performance close to that of TSO (Total Store Model) and DRF0 while providing strong guarantees for all programs.