Specifying superscalar microprocessors in Hawk
Byron Cook, John Launchbury, and John Matthews
Hawk is a language for the specification of microprocessors at the
microarchitectural level. In this paper we use Hawk to specify a modern
microarchitecture based on the Intel P6 with features such as speculation,
register renaming, and superscalar out-of-order execution. We
show that parametric polymorphism, type-classes, higher-order functions,
lazy evaluation, and the state monad are key to Hawk's concision and clarity.
Wed Dec 14 02:03:56 PST 1997