Skip to content

Automated litmus test integration for Murphi-based cache coherence protocols

Notifications You must be signed in to change notification settings

JackEdgar/automated_litmus_tests_murphi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This tool provides automation for integrating litmus tests into Murphi-based cache coherence protocols.

The protocols must take the form of a Murphi file that has been modified to allow template injection from Apache FreeMarker. Please see the included protocols in the templates folder as an example, and view the documentation for creating your own here:

https://freemarker.apache.org/docs/index.html

The litmus tests have been represented as JSON files. Please see the litmus folder for examples. Note, the set of registers for each processor used must be sequentially ordered from zero (no gaps between integers). All currently included litmus tests are for Sequential Consistency (SC).

To execute the resultant Murphi files, use the following commands in your terminal, while in the output directory (with msi_r replaced with the test you have generated):

-> cmurphi-master/src/mu msi_r.m

-> g++ msi_r.cpp -Icmurphi-master/include

-> ./a.out -tv -m512 -ndl

These commands assume use of the precompiled Murphi compiler included in the output directory, but you are free to use your own. You may also increase the amount of RAM available by modifying the "-m512" command (which provides 512MB), which may be necessary for larger state spaces.

Bugged protocols have been included, which the user can integrate across the litmus test suite, and then execute each, which should produce at least one failure.

Additional litmus tests can easily be added to the litmus folder, increasing test coverage, thereby strengthening the functionality and usefulness of the tool.

About

Automated litmus test integration for Murphi-based cache coherence protocols

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages