• DocumentCode
    3315231
  • Title

    Microprocessor specification in Hawk

  • Author

    Matthews, John ; Cook, Byron ; Launchbury, John

  • fYear
    1998
  • fDate
    14-16 May 1998
  • Firstpage
    90
  • Lastpage
    101
  • 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
  • Keywords
    abstract data types; formal specification; functional languages; functional programming; hardware description languages; microprocessor chips; software libraries; Hawk language; design engineers; domain specific language; first class functions; functional language Haskell; functional programming languages; global reservation station; high level architectural design; integer subset; lazy evaluation; microprocessor specification; multiple execution units; out of order superscalar DLX microprocessor; parametric polymorphism; processor architecture simulation; register renaming; reorder buffer; signal abstract data type; simulation history; software library; speculative branch execution; static typing,; structuring principles; transaction ADT; Design engineering; Domain specific languages; Functional programming; History; Investments; Libraries; Microprocessors; Out of order; Productivity; Wire;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Computer Languages, 1998. Proceedings. 1998 International Conference on
  • Conference_Location
    Chicago, IL
  • ISSN
    1074-8970
  • Print_ISBN
    0-8186-8454-2
  • Type

    conf

  • DOI
    10.1109/ICCL.1998.674160
  • Filename
    674160