Role of Virtualization in Embedded Systems continued

3. VIRTUALIZATION USE CASES

The relevance of virtualization in embedded systems stems from the ability to address some of the new challenges posed by them.

One is support for heterogeneous operating-system environments, as a way to address the conflicting requirements of highlevel APIs for application programming, real-time performance and legacy support. Mainstream application OSes lack the support for true real-time responsiveness (efforts to address this notwithstanding) and they are unsuitable for supporting the large amount of legacy firmware running on present devices (e.g. mobile-phone baseband stacks alone can measure several Mloc).

Virtualization can help here, by enabling the concurrent execution of an application OS (Linux, Windows, Symbian, ...) and a real-time OS (RTOS) on the same processor (see Figure 1). Provided that the underlying hypervisor is able to deliver interrupts reliably fast to the RTOS, the latter can then continue to run the (legacy) stack providing the device’s real-time functionality. The application OS can provide the required commodity API and highlevel functionality suitable for application programming.

Note that the same can be achieved by using multiple processor cores, each running their own OS, provided there is some hardware support for securely partitioning memory. Multicore chips are proliferating and the incremental cost of a core is dropping dramatically. Furthermore, two lower-performance cores (which can be put to sleep individually) are likely to have lower average power consumption than a single higher-performance one, owing to strong non-linearities in power management [22, 23]. Hence, on its own, this usage scenario is likely only of relevance for a few years. We note, however, that virtualization supports architectural abstraction, as the same software architecture can be migrated essentially unchanged between a multicore and a (virtualized) single core.

Forthcoming manycore chips provide a different, more longerterm motivation for using virtualization. With a large number of processors, it is likely that embedded systems will be facing issues not unlike the reasons behind today’s use of virtualization in the enterprise space. A scalable hypervisor could form the basis for deploying poorly-scaling legacy operating systems on a large number of cores, by partitioning the chip into several smaller multiprocessor domains. A hypervisor can dynamically add cores to an application domain which requires extra processor power, or can manage power consumption by removing processors from domains and shutting down idle cores. (Note that this requires that the application OS can deal with a changing number of CPUs.) The hypervisor can also be used for setting up redundant domains for fault tolerance in a hot-failover configuration.

Download complete White Paper


More White Papers and Publications

▲ Back to Top