Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

ArMOR: Architecture-independent Memory Ordering Requirement specifications

Project Overview

For an overview of ArMOR itself, see our ISCA paper:

Daniel Lustig, Caroline Trippel, Michael Pellauer, and Margaret Martonosi, "ArMOR: Defending Against Memory Consistency Model Mismatches in Heterogeneous Architectures", 42nd International Symposium on Computer Architecture (ISCA), Portland, OR, June 2015. Official link Local link

If you use ArMOR (and we hope you do!), we would also appreciate if you cite the above paper.

Contacting the Authors

Please contact Daniel Lustig ( with any questions you may have.

How to Use ArMOR


  • ArMOR itself is a self-contained Python app. The authors have tested ArMOR using Python v2.7.
  • The FSM figures are drawn using GraphViz.
  • The summary report is compiled using LaTeX, and pdfLaTeX in particular. Other variants should work, but may require minor script changes, etc.

Building ArMOR

No's just a Python script!

Running ArMOR

  • Run ./ to build some simple examples.
  • Run ./ to build a set of documents summarizing the shim FSMs generated for a variety of use cases. These reports look similar to (or, in one case, are identical to) the appendix of our tech report.
  • Either script can be easily adapted to any other use cases you may be interested in.

File summary

  • the core ArMOR routines
  • a set of pre-defined architectures
  • a script for generating one-off shim FSMs
  • an ArMOR script for generating a report summarizing a number of shim FSMs
  • a script for compiling the results of into PDF summaries


No description, website, or topics provided.




No releases published


No packages published