Analyzing the Intel Itanium Memory Ordering using Logic Programming and SAT

Analyzing the Intel Itanium Memory Ordering using Logic Programming and SAT

We present a non-operational approach to specifying and analyzing shared memory consistency models. The method uses higher order logic to capture a complete set of ordering constraints on execution traces, in an axiomatic style. A direct translation of the semantics to a constraint logic programming language provides an interactive and incremental framework for animating and verifying finite test programs. The framework has also been adapted to generate equivalent boolean satisfiability (SAT) problems. These techniques make a memory model specification executable, a powerful feature lacking in most non-operational methods. As an example, we provide a concise formalization of the Intel Itanium memory model and show how constraint solving and SAT solving can be effectively applied for computer aided analysis. Encouraging initial results demonstrate the scalability for complex industrial designs.

PDF