An Executable Specification and Verifier for Relaxed Memory Order

  • Authors:
  • Seungjoon Park;David L. Dill

  • Affiliations:
  • RIACS, NASA Ames Research Center, Moffett Field, CA;Stanford Univ., Stanford, CA

  • Venue:
  • IEEE Transactions on Computers - Special issue on cache memory and related problems
  • Year:
  • 1999

Quantified Score

Hi-index 0.02

Visualization

Abstract

The Mur$\varphi$ description language and verification system for finite-state concurrent systems is applied to the problem of specifying a family of multiprocessor memory models described in the SPARC Version 9 architecture manual. The description language allows for a straightforward operational description of the memory model which can be used as a specification for programmers and machine architects. The automatic verifier can be used to generate all possible outcomes of small assembly language multiprocessor programs in a given memory model, which is very helpful for understanding the subtleties of the model. The verifier can also check the correctness of assembly language programs including synchronization routines. This paper describes the memory models and their encoding in the Mur$\varphi$ description language. We describe how synchronization routines can be verified and how finite state programs can be analyzed. We also present some interesting findings from the verification and the analysis.