DISE: A programmable macro engine for customizing applications. 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’s processors to convert a complex ISA to an easier-to-execute, finer-grained internal form. DISE coopts 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. We 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.
Keywords for this software
References in zbMATH (referenced in 1 article )
Showing result 1 of 1.
- Suri, Tameesh; Aggarwal, Aneesh: Improving adaptability and per-core performance of many-core processors through reconfiguration (2010)