Skip to content

We present HieraGen, a new tool for automatically generating hierarchical cache coherence protocols. HieraGen's inputs are the simple, atomic, stable state protocols for each level of the hierarchy. HieraGen's output is a highly concurrent hierarchical protocol, in the form of the finite state machines for all of the cache and directory controll…

License

Notifications You must be signed in to change notification settings

Errare-humanum-est/HieraGen

Repository files navigation

HieraGen

HieraGen is still under development. Future releases and bug fixes are likely so please check out repository regularly.

Update: HeteroGen has been released. While HeteroGen and HieraGen are currently orthogonal in functionality they will soon be merged into a new release.

A detailed descritpion of the HieraGen (ISCA'20) algorithm is provided here: HieraGen ISCA'20

A detailed descritpion of the ProtoGen (ISCA'18) algorithm is provided here: ProtoGen ISCA'18

If you have questions, you want to contribute or simply report any bugs, please contact: hiera.gen at ed.ac.uk

Setup

Please edit Murphi path in: /Murphi/MurphiTemp/tmpmakefile

Requirements:
Python 3.5 or higher

  • antlr-python3-runtime 3.4
  • colorama 0.3.9
  • tabulate 0.8.2

To run the HieraGen (hierachical protocols) testbench encompassing a set of different protocol combinations execute:

python3 HieraGenTestBench.py

To run the ProtoGen (flat protocols) testbench encompassing a set of different protocols execute:

python3 ProtoGen.py

About

We present HieraGen, a new tool for automatically generating hierarchical cache coherence protocols. HieraGen's inputs are the simple, atomic, stable state protocols for each level of the hierarchy. HieraGen's output is a highly concurrent hierarchical protocol, in the form of the finite state machines for all of the cache and directory controll…

Resources

License

Stars

Watchers

Forks

Packages