Memory Consistency Models using Constraints
Abstract
Memory consistency models (MCMs) are at the heart of concurrent programming. They represent the behaviour of concurrent programs at the chip level. To test these models small program snippets called litmus test are generated, which show allowed or forbidden behaviour of different MCMs. This paper is showcasing the use of constraint programming to automate the generation and testing of litmus tests for memory consistency models. We produce a few exemplary case studies for two MCMs, namely Sequential Consistency and Total Store Order. These studies demonstrate the flexibility of constrains programming in this context and lay foundation to the direct verification of MCMs against the software facing cache coherence protocols.
- Publication:
-
arXiv e-prints
- Pub Date:
- August 2018
- DOI:
- 10.48550/arXiv.1808.09870
- arXiv:
- arXiv:1808.09870
- Bibcode:
- 2018arXiv180809870H
- Keywords:
-
- Computer Science - Programming Languages
- E-Print:
- ModRef 2018, The 17th workshop on Constraint Modelling and Reformulation, 2018