• DocumentCode
    704755
  • Title

    Pydgin: generating fast instruction set simulators from simple architecture descriptions with meta-tracing JIT compilers

  • Author

    Lockhart, Derek ; Ilbeyi, Berkin ; Batten, Christopher

  • Author_Institution
    Sch. of Electr. & Comput. Eng., Cornell Univ., Ithaca, NY, USA
  • fYear
    2015
  • fDate
    29-31 March 2015
  • Firstpage
    256
  • Lastpage
    267
  • Abstract
    Instruction set simulators (ISSs) remain an essential tool for the rapid exploration and evaluation of instruction set extensions in both academia and industry. Due to their importance in both hardware and software design, modern ISSs must balance a tension between developer productivity and high-performance simulation. Productivity requirements have led to “ADL-driven” toolflows that automatically generate ISSs from high-level architectural description languages (ADLs). Meanwhile, performance requirements have prompted ISSs to incorporate increasingly complicated dynamic binary translation (DBT) techniques. Construction of frameworks capable of providing both the productivity benefits of ADL-generated simulators and the performance benefits of DBT remains a significant challenge. We introduce Pydgin, a new approach to ISS construction that addresses the multiple challenges of designing, implementing, and maintaining ADL-generated DBT-ISSs. Pydgin uses a Python-based, embedded-ADL to succinctly describe instruction behavior as directly executable “pseudocode”. These Pydgin ADL descriptions are used to automatically generate high-performance DBT-ISSs by creatively adapting an existing meta-tracing JIT compilation framework designed for general-purpose dynamic programming languages. We demonstrate the capabilities of Pydgin by implementing ISSs for two instruction sets and show that Pydgin provides concise, flexible ISA descriptions while also generating simulators with performance comparable to hand-coded DBT-ISSs.
  • Keywords
    digital simulation; hardware-software codesign; instruction sets; program compilers; ADL-driven toolflows; ADL-generated DBT-ISS; DBT techniques; Pydgin ADL descriptions; Python-based embedded-ADL; dynamic binary translation techniques; executable pseudocode; fast instruction set simulators; general-purpose dynamic programming languages; hardware design; high-level ADL; high-level architectural description languages; high-performance DBT-ISS; metatracing JIT compilers; software design; Encoding; Manuals; Optimization; Productivity; Registers; Semantics; Syntactics;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Performance Analysis of Systems and Software (ISPASS), 2015 IEEE International Symposium on
  • Conference_Location
    Philadelphia, PA
  • Type

    conf

  • DOI
    10.1109/ISPASS.2015.7095811
  • Filename
    7095811