Microprocessor Specification in Hawk

  • Authors:
  • John Matthews;Byron Cook;John Launchbury

  • Affiliations:
  • -;-;-

  • Venue:
  • ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
  • Year:
  • 1998

Quantified Score

Hi-index 0.01

Visualization

Abstract

Modern microprocessors require an immense investment of time and effort to create and verify, from the high-level architectural design downwards. We are exploring ways to increase the productivity of design engineers by creating a domain-specific language for specifying and simulating processor architectures. We believe that the structuring principles used in modern functional programming languages, such as static typing, parametric polymorphism, first-class functions, and lazy evaluation provide a good formalism for such a domain-specific language, and have made initial progress by creating a library on top of the functional language Haskell. We have specified the integer subset of an out-of-order, superscalar DLX microprocessor, with register-renaming, a reorder buffer, a global reservation station, multiple execution units, and speculative branch execution. Two key abstractions of this library are the signal abstract data type (ADT), which models the simulation history of a wire, and the transaction ADT, which models the state of an entire instruction as it travels through the microprocessor.