A New Facility for Dynamic Control of Program Execution: DELI
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.
Unable to display preview. Download preview PDF.
- 1.V. Bala, E. Duesterwald, S. Banerjia. Dynamo: a transparent dynamic optimization system. In SIGPLAN Conf. on Programming Language Design and Implementation, pp1–12, 2000.Google Scholar
- 2.T. Baji, N. Kawashimo, I. Kawasaki, and K. Noguchi. SuperH and SuperH-DSP Microprocessors for the Mobile Computing Age. Hitachi Review, Volume 46 No 1. Feb 1997.Google Scholar
- 3.W. Chen, S. Lerner, R. Chaiken, and D. Gillies. Mojo: A dynamic optimization system. In Proc. of the 3rd Workshop on Feedback-Directed and Dynamic Optimization, Dec. 2000.Google Scholar
- 4.R.F. Cmelik and D. Keppel. Shade: a fast instruction set simulator for execution profiling. Tech. Report UWCSE-93-06-06, Dept. Comp.Science and Eng., Univ. Washington. 1993Google Scholar
- 5.D. Deaver, R. Gorton, and N. Rubin. Wiggins/Redstone: An on-line program specializer. In Hot Chips 11, Palo Alto, CA, Aug. 1999.Google Scholar
- 6.D. Ditzel. Transmeta’s Crusoe: Cool chips for mobile computing. In Hot Chips 12: Stanford University. Aug. 2000.Google Scholar
- 7.K. Ebcioglu and E. Altman. DAISY: Dynamic compilation for 100% architectural compatibility. In Proceedings of the 24th Annual International Symposium on Computer Architecture. Pages 26–37, 1997.Google Scholar
- 8.K. Ebcioglu, E.R. Altman, E. Hokenek. A JAVA ILP Machine Based on Fast Dynamic Compilation. IEEE MASCOTS International Workshop on Security and Efficiency Aspects of Java. Eilat, Israel, January 9–10, 1997.Google Scholar
- 9.P. Faraboschi, G. Brown., J. Fisher., G. Desoli, F. Homewood. Lx: A Technology Platform for Customizable VLIW Embedded Processing. Proc. 27 th International Symposium on Computer Architecture (ISCA27). Vancouver, June 2000Google Scholar
- 10.P. Faraboschi, F. Homewood, ST200: A VLIW Architecture for Media-Oriented Applications, Microprocessor Forum 2000, October 9–13 2000, San Jose, CAGoogle Scholar
- 11.J.A. Fisher. Walk-time techniques: Catalyst for architectural change. Computer, 30(9):40–42, September 1997.Google Scholar
- 12.M.R. Guthaus, J.S. Ringenberg, D. Ernst, T.M. Austin, T. Mudge and R.B. Brown. Mi-Bench: A Free, Commercially Representative Embedded Benchmark Suite. IEEE 4th Annual Workshop on Workload Characterization, December 2, 2001, Austin, TXGoogle Scholar
- 13.Klaiber. The Technology Behind Crusoe Processors. © 2000 Transmeta Corporation. Available as: http://www.transmeta.com/pdf/white_papers/paper_aklaiber_19jan00.pdf.
- 14.T. Lindholm, Frank Yellin. The Java Virtual Machine Specification, Second Edition.Google Scholar
- 15.Microsoft Corp. NET specifications. Available at http://www.microsoft.com/net/
- 16.Robinson. Why Dynamic Translation? © 2x001 Transitive Technologies. Available as: http://www.transitives.com/downloads/WhyDynamic Translation1.pdf.
- 17.Srivastava H. Edwards, H. Vo. Vulcan: Binary translation in a distributed environment. Technical Report MSR-TR-2001-50, Microsoft Research, 2001.Google Scholar