Abstract State Machine
Overview
The Abstract State Machine (ASM) is a formal specification and verification framework, most prominently associated with the Gurevich Abstract State Machine methodology. ASMs provide a means to model computational systems at an abstract level and have been applied to a range of problems including industrial microprocessor verification and classical specification benchmarks.
Background and Methodology
The Gurevich Abstract State Machine methodology provides a systematic approach for building formal specifications of algorithms and systems. It has been applied to benchmark specification problems in software engineering, such as the Broy-Lamport specification problem, demonstrating its suitability for expressing distributed and reactive system behavior.
Applications
Microprocessor Verification
ASMs have been used as the underlying formalism in formal verification of processor designs. In particular:
- ARM2 pipelined processor: Huggins and Campenhout applied the Abstract State Machine formalism to verify the ARM2 pipelined processor, using ASM as the basis for their equivalence-based verification approach.
This use case situates ASMs alongside other processor verification techniques such as unpipelining (Levitt and Olukotun), controlled-token-net model checking (Ho et al.), and theorem-proving/model-checking combinations (Jacobi), all of which compare a pipelined implementation against a sequential ISA specification.
Specification Problem Benchmarks
The Gurevich ASM methodology has been used to address the Broy-Lamport specification problem, a benchmark specification problem proposed by Broy and Lamport, demonstrating that ASMs can serve as a practical notation for specifying distributed algorithms.
Community and Literature
An annotated bibliography of papers dealing with or using Abstract State Machines, covering the period 1988–1998, has been compiled, reflecting an active research community and a growing body of ASM-based work spanning theory, applications, and tools.
Relationship to Broader Validation Approaches
In the broader landscape of microprocessor validation, ASM-based verification is one of several complementary techniques. Other approaches focus on equivalence checking between RTL and gate-level designs (using tools such as Formality, FormalPro, eCheck, Affirma, and Conformal), compositional model checking, or ADL-driven validation frameworks that synthesize a golden reference model from an Architecture Description Language such as EXPRESSION.
References
- Gurevich, Broy-Lamport Specification Problem: A Gurevich Abstract State Machine Solution, arXiv:cs/9810022, 1998.
- Abstract State Machines 1988–1998: Commented ASM Bibliography, arXiv:cs/9811014, 1998.
- Microprocessor Test and Verification (MTV), 2003 — A Methodology for Validation of Microprocessors using Equivalence Checking (citing Huggins and Campenhout's ASM-based ARM2 verification).