Item Details

Print View

MNRL and MNCaRT an Open-Source, Multi-Architecture State Machine Research and Execution Ecosystem

Weimer, Westley; Angstadt, Kevin; Wadden, Jack; Skadron, Kevin
Weimer, Westley
Angstadt, Kevin
Wadden, Jack
Skadron, Kevin
We present MNRL, an open-source, general-purpose and extensible state machine representation language. The rep- resentation is flexible enough to support traditional finite automata (NFAs, DFAs) while also supporting more complex machines, such as those which propagate multi-bit signals between processing elements. The specification is based on JSON, a data interchange format that is supported across general-purpose programming languages. We also provide Python and C++ APIs for direct reading and writing of MNRL files. We also discuss MNCaRT, the software ecosystem built around MNRL. MNCaRT is an umbrella repository of previously- published tools, which have been adapted to support MNRL, as well as new tools, which were specifically designed for MNRL. Tool support includes manipulation of MNRL files, execution of complex machines, high-speed processing of simplified MNRL files, and compilation of regular expres- sions to MNRL. We support the execution of MNRL net- works on CPUs (with VASim and Intel Hyperscan), GPUs (with a custom DFA engine), and FPGAs (with a MNRL to HDL translator). As with MNRL, all of the tools in MNCaRT are open-source, allowing for development and use in both academia and industry.
Date Received
Department of Computer Science, University of Virginia, May 2017
Published Date
May 2017
Technical Report TR# CS-2017-01
Libra Open Repository
In CopyrightIn Copyright
▾See more
▴See less


Access Online