A New Facility for Dynamic Control of Program Execution: DELI

  • Authors:
  • Giuseppe Desoli;Nikolay Mateev;Evelyn Duesterwald;Paolo Faraboschi;Josh Fisher

  • Affiliations:
  • -;-;-;-;-

  • Venue:
  • EMSOFT '02 Proceedings of the Second International Conference on Embedded Software
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

The DELI (Dynamic Execution Layer Interface) provides fine-grain control over the execution of programs, by allowing its clients to observe and optionally manipulate every single instruction at run time. It accomplishes this by opening up an interface to the layer between the execution of application software and hardware. To avoid the 100x implicit slowdown, DELI uses a technique typical of modern emulators: it caches fragments of the executable and always runs out of that cache. Unlike previous systems, DELI exposes the caching through a common interface, so that emulators themselves can take advantage of other DELI clients. This enables mixing emulation with already existing services and native code. In this paper, we describe the basic aspects of DELI: the underlying caching and linking mechanism, the Hardware Abstraction Mechanism (HAM), the Binary-Level Translation (BLT) infrastructure, and the Application Programming Interface (API). We also cover some uses, such as ISA emulation and software patching. Finally, we present emulation results of a PocketPC system on an embedded VLIW processor, where we achieve almost-native performance, and show how to mix-and-match native and emulated code.