arch-beer

Weekly Reading
  Guru is presenting...


Marc L. Corliss, E Christopher Lewis, and Amir Roth
"DISE: A Programmable Macro Engine for Customizing Applications"
ISCA 2003 (Please do not distribute outside Georgia Tech).
PDF copy (accessible within GT network only)

Dynamic Instruction Stream Editing (DISE) is a cooperative software-hardware scheme for efficiently adding customization functionality-e.g, safety/security checking, profiling, dynamic code decompression, and dynamic optimization-to an application. In DISE, application customization functions (ACFs) are formulated as rules for macro-expanding certain instructions into parameterized instruction sequences. The processor executes the rules on the fetched instructions, feeding the execution engine an instruction stream that contains ACF code. Dynamic instruction macro-expansion is widely used in many of today processors to convert a complex ISA to an easier-to-execute, finer-grained internal form. DISE co-opts this technology and adds a programming interface to it. DISE unifies the implementation of a large class of ACFs that would otherwise require either special-purpose hardware widgets or static binary rewriting. The authors show DISE implementations of two ACFs-memory fault isolation and dynamic code decompression-and their composition. Simulation shows that DISE ACFs have better performance than their software counterparts, and more flexibility (which sometimes translates into performance) than hardware implementations.


For interested people, background information can be found here.