Processor Virtualization and Split Compilation for Heterogeneous Multicore Embedded Systems
Embedded multiprocessors have always been heterogeneous, driven by the power-efficiency and compute-density of hardware specialization. The authors aim to achieve portability and sustained performance of complete applications, leveraging diverse programmable cores. They combine instruction-set virtualization with just-in-time compilation, compiling C, C++ and managed languages to a target-independent intermediate language, maximizing the information flow between compilation steps in a split optimization process. Embedded systems have always been heterogeneous multicores. In many cases, the hard constraints in terms of cost, area, performance, power consumption and real-time simply make a general-purpose processor unfit for the task.