DELI: A New Run-time Control Point
Authors:
Giuseppe Desoli, Nikolay Mateev, Evelyn Duesterwald, Paolo
Faraboschi and Joseph A. Fisher
Hewlett-Packard Laboratories
HP Labs Cambridge, 1 Main St., Cambridge, MA 02142, USA
Abstract:
The Dynamic Execution Layer Interface (DELI) offers the following unique
capability: it provides fine-grain control over the execution of programs,
by allowing its clients to observe and optionally manipulate every single
instruction at run time just before it runs. DELI accomplishes this by
opening up an interface to the layer between the execution of software and
hardware. To avoid the slowdown, DELI caches a private copy of the executed
code and always runs out of its own private cache.
In addition to giving powerful control to clients, DELI opens up caching and
linking to ordinary emulators and just-in-time compilers, which then get the
reuse benefits of the same mechanism. For example, emulators themselves can
also use other clients, to mix emulation with already existing services,
native code, and other emulators.
This paper describes the basic aspects of DELI, including the underlying
caching and linking mechanism, the Hardware Abstraction Mechanism (HAM), the
Binary-Level Translation (BLT) infrastructure, and the Application
Programming Interface (API) exposed to the clients. We also cover some of
the services that clients could offer through the DELI, such as ISA
emulation, software patching, and sandboxing. Finally, we consider a case
study of emulation in detail: the emulation of a PocketPC system on the
Lx/ST210 embedded VLIW processor. In this case, DELI enables us to achieve
near-native performance, and to mix-and-match native and emulated code.
Web site:
http://www.hpl.hp.com