ATCA Newsletter

Combining RTOS and Windows on Multicore Processors
By Paul Fischer, TenAsys

Embedded systems developers today often have large amounts of legacy software they would like to reuse. But how do you update such software without affecting its performance and reliability? Legacy code may run under operating systems that are obsolete, poorly supported, or difficult to use for the wide variety of tasks performed in current applications.

A solution is to utilize multicore processors. For example, many embedded systems could take advantage of the support for building graphical user interfaces and establishing enterprise connectivity that Microsoft Windows provides, but also need deterministic real-time control. With multicore processors, designers can dedicate some cores to host real-time operating systems while others host Windows. Real-time and non-real-time applications can then operate on the same processor platform, each in their own environment.

Virtualization Technology for Embedded x86 Systems

The key to making multi-OS systems work on multicore processors is virtualization. Using the virtualization technology (VT) now available in many embedded multicore Intel Architecture processors, a virtual machine manager (VMM or hypervisor) can host real-time embedded operating systems and general-purpose operating systems, one per core, and RTOS can then run alongside Windows on a single hardware platform. The VMM also manages communications between the cores using the processor’s built-in interprocessor interrupt mechanism (IPI) and shared memory.

This approach can also simplify migration to new hardware. Legacy I/O can be emulated to minimize the rewriting of proven code.

Asymmetric Multiprocessing for Embedded Systems

Partitioning resources is a common design practice. What’s new here is the nature of the hardware resources. In the past, designers would have to allocate an entire processor board or I/O board (such as a dedicated DSP card) for real-time data collection, processing, or control. Expensive communication links would be necessary to coordinate such resources with a general-purpose control computer.

Virtualization technology allows the VMM to allocate I/O resources to a specific virtual machine. When combined with a dedicated CPU core, the result is the same as using a dedicated processor board but without the extra hardware and communications overhead.

eVM Software Is Such a Platform

The TenAsys eVM platform accommodates the hardware (access to I/O) and timing (interrupt latency) needs of multi-OS, multicore systems by giving each guest OS direct access to time-critical hardware. It thus allows the use of existing native device drivers for hardware access. With eVM, systems that previously required multiple platforms can be combined on a single multicore platform, reducing costs and enabling the reuse of legacy code.

Multicore processors can thus provide the best of both worlds in one unit. They can provide access to multiple operating systems, including real-time OSes for time-critical tasks and general-purpose ones for user interaction and background jobs. Designers can take advantage of the formers’ features while not losing access to the huge ecosystems offered by the latter systems, all within a single-processor machine.

Paul Fischer is a Senior Technical Marketing Engineer at TenAsys. You can reach him at paul.fischer@tenasys.com.