Using dynamic compilation for continuing execution under reduced memory availability

This paper explores the use of dynamic compilation for continuing execution even if one or more of the memory banks used by an application become temporarily unavailable (but their contents are preserved), that is, the number of memory banks available to the application varies at runtime. We implemented the proposed dynamic compilation approach using a code instrumentation system and performed experiments with 12 embedded benchmark codes. The results collected so far are very encouraging and indicate that, even when all the overheads incurred by dynamic compilation are included, the proposed approach still brings significant benefits over an alternate approach that suspends application execution when there is a reduction in memory bank availability and resumes later when all the banks are up and running.

[1]  Samuel P. Midkiff,et al.  Quicksilver: a quasi-static compiler for Java , 2000, OOPSLA '00.

[2]  James R. Larus,et al.  EEL: machine-independent executable editing , 1995, PLDI '95.

[3]  B. Miller,et al.  The Paradyn Parallel Performance Measurement Tools , 1995 .

[4]  W. Kelly,et al.  Code generation for multiple mappings , 1995, Proceedings Frontiers '95. The Fifth Symposium on the Frontiers of Massively Parallel Computation.

[5]  Kevin Skadron,et al.  Temperature-aware microarchitecture: Modeling and implementation , 2004, TACO.

[6]  Margaret Martonosi,et al.  A dynamic compilation framework for controlling microprocessor energy and performance , 2005, 38th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'05).

[7]  Barton P. Miller,et al.  The Paradyn Parallel Performance Measurement Tool , 1995, Computer.

[8]  Donald W. Loveland,et al.  Presburger arithmetic with bounded quantifier alternation , 1978, STOC.

[9]  Jeffrey K. Hollingsworth,et al.  An API for Runtime Code Patching , 2000, Int. J. High Perform. Comput. Appl..

[10]  Erik Brockmeyer,et al.  Data Access and Storage Management for Embedded Programmable Processors , 2002, Springer US.

[11]  Brian N. Bershad,et al.  Fast, effective dynamic compilation , 1996, PLDI '96.

[12]  Erik R. Altman,et al.  Efficient Java exception handling in just-in-time compilation , 2000, JAVA '00.

[13]  Constantinos E. Goutis,et al.  Code Transformations for Embedded Multimedia Applications: Impact on Power and Performance , 1998, ISCA 1998.

[14]  Jian Li,et al.  Dynamic power-performance adaptation of parallel computation on chip multiprocessors , 2006, The Twelfth International Symposium on High-Performance Computer Architecture, 2006..

[15]  Matthew Arnold,et al.  A Survey of Adaptive Optimization in Virtual Machines , 2005, Proceedings of the IEEE.

[16]  Matthew Arnold,et al.  Adaptive optimization in the Jalapeño JVM , 2000, OOPSLA '00.

[17]  J. Ferrante,et al.  The computational complexity of logical theories , 1979 .

[18]  Erik R. Altman,et al.  LaTTe: a Java VM just-in-time compiler with fast and efficient register allocation , 1999, 1999 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00425).

[19]  M. Kandemir,et al.  Dynamic compilation for energy adaptation , 2002, ICCAD 2002.