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 Pythonbased,
embedded-ADL to succinctly describe instruction behavior
as directly executable “pseudocode”. These Pydgin ADL descriptions
are used to automatically generate high-performance DBTISSs
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.
more here.........http://www.csl.cornell.edu/~cbatten/pdfs/lockhart-pydgin-ispass2015.pdf
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 Pythonbased,
embedded-ADL to succinctly describe instruction behavior
as directly executable “pseudocode”. These Pydgin ADL descriptions
are used to automatically generate high-performance DBTISSs
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.
more here.........http://www.csl.cornell.edu/~cbatten/pdfs/lockhart-pydgin-ispass2015.pdf