Combining Processor Virtualization and S plit Compilation for Heterogeneous Multicore Embedded Systems

Complex embedded systems have always been heterogeneous multicore systems. Because of the tight constraints on power, performance and cost, this situation is not likely to change any time soon. As a result, the software environments required to program those systems have become very complex too. We propose to apply instruction set virtualization and just-in-time compilation techniques to program heterogeneous multicore embedded systems, with several additional requirements: * the environment must be able to compile legacy C/C++ code to a target independent intermediate representation; * the just-in-time (JIT) compiler must generate high performance code; * the technology must be able to program the whole system, not just the host processor. Advantages that derive from such an environment include, among others, much simpler software engineering, reduced maintenance costs, reduced legacy code problems... It also goes beyond mere binary compatibility by providing a better exploitation of the hardware platform. We also propose to combine processor virtualization with split compilation to improve the performance of the JIT compiler. Taking advantage of the two-step compilation process, we want to make it possible to run very aggressive optimizations online, even on a very constraint system.

[1]  Paolo Faraboschi,et al.  DELI: a new run-time control point , 2002, 35th Annual IEEE/ACM International Symposium on Microarchitecture, 2002. (MICRO-35). Proceedings..

[2]  Samuel Williams,et al.  The Landscape of Parallel Computing Research: A View from Berkeley , 2006 .

[3]  Antonio Cisternino,et al.  [a]C#: C# with a customizable code annotation mechanism , 2005, SAC '05.

[4]  K. De Bosschere,et al.  DIABLO: a reliable, retargetable and extensible link-time rewriting framework , 2005, Proceedings of the Fifth IEEE International Symposium on Signal Processing and Information Technology, 2005..

[5]  Jens Kühner Introducing the .NET Micro Framework , 2009 .

[6]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[7]  Laurie Hendren,et al.  A framework for optimizing Java using attributes , 2001, CC.

[8]  Vasanth Bala,et al.  Dynamo: a transparent dynamic optimization system , 2000, SIGP.

[9]  Michael F. P. O'Boyle,et al.  High-Performance Embedded Architecture and Compilation Roadmap , 2007, Trans. High Perform. Embed. Archit. Compil..

[10]  Ondrej Lhoták,et al.  Using Inter-Procedural Side-Effect Information in JIT Optimizations , 2005, CC.

[11]  Albert Cohen,et al.  Putting Polyhedral Loop Transformations to Work , 2003, LCPC.

[12]  Robert Muth,et al.  alto: a link‐time optimizer for the Compaq Alpha , 2001 .

[13]  Zheng Wang,et al.  System support for automatic profiling and optimization , 1997, SOSP.

[14]  Ricardo Fernández Pascual,et al.  An Experimental Environment Validating the Suitability of CLI as an Effective Deployment Format for Embedded Systems , 2008, HiPEAC.

[15]  Cliff Click,et al.  The java hotspot TM server compiler , 2001 .

[16]  Alexandru Nicolau,et al.  Java annotation-aware just-in-time (AJIT) complilation system , 1999, JAVA '99.

[17]  Thomas M. Conte,et al.  A lightweight algorithm for dynamic if-conversion during dynamic optimization , 2000, Proceedings 2000 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00622).

[18]  Albert Cohen,et al.  Split Compilation: an Application to Just-in-Time Vectorization , 2007 .

[19]  Erven Rohou,et al.  Comparing the size of .NET applications with native code , 2005, 2005 Third IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS'05).

[20]  Markus Mock,et al.  DyC: an expressive annotation-directed dynamic compiler for C , 2000, Theor. Comput. Sci..

[21]  Peter M. W. Knijnenburg,et al.  Iterative compilation in a non-linear optimisation space , 1998 .

[22]  Chandra Krintz,et al.  Using annotations to reduce dynamic optimization time , 2001, PLDI '01.