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