Multi-Core Virtualization Enables Increased Performance and Lower Costs

By Kim Hartman, TenAsys Corp.

There has been lots of discussion about how the Intel® Core microarchitecture brings big benefits to server applications. But equal or greater benefits can be gained by embedded-systems developers who leverage the chips' features to reduce system costs, improve reliability, and enable the incorporation of new features in their products. Intel® Virtualization Technology refers to the new features added to the Intel Core microarchitecture CPUs. These features improve the processor's ability to host multiple guest operating systems and applications on independent virtual machines. Using virtualization technology, a single computer platform can function as multiple parallel systems--each within a different guest operating environment.

For embedded-systems developers, this enables the reduction of system costs when real-time and general-purpose guest operating systems are combined to replace multiple computer platforms. An example is an industrial computer system that previously had a general-purpose computer to support human-interface and supervisory-control functions. Another example is the special-purpose computer subsystems with specialized real-time processors, such as digital signal processors (DSPs), to support motion-control or machine-vision functions. Rather than requiring such applications to be implemented on multiple heterogeneous processors, virtualization technology enables more than one operating system to be run on a single system at the same time.

Virtualization also improves the reliability of multi-OS embedded systems by enabling the complete isolation of real-time tasks from general-purpose operating-system (GPOS) tasks. With Intel virtualization technology, operating-environment elements like applications, network stacks, device drivers, and associated hardware are protected from being accessed and modified by other operating-environment elements.

Task isolation brings significant advantages to communications applications like voice-over-Internet-protocol (VoIP) systems. Here, real-time call-critical processing can continue without interruption even when the GPOS becomes overloaded, fails, or needs to be rebooted.

By combining multiple, homogeneous CPUs on a single silicon chip, Intel's Core family of processors provides performance advantages that enable the efficient, parallel operation of multiple operating environments across multiple CPUs. They therefore eliminate the bottleneck of running time-dependent tasks on a general-purpose operating system. Multiple guest operating systems running on a multi-core processor are cost effective. After all, the cores share system resources like memories, I/O resources, packaging, and power components. They also eliminate the need for expensive high-speed communication links between systems.

The ability to host multiple guest operating environments on a single system has positive implications for developers who want to upgrade legacy real-time applications without rewriting reliable time-tested code. With minimal modification, proven real-time applications can be hosted as guest operating environments running side by side with new applications on other operating systems.

Although the virtualization support that's built into the new Intel Core CPUs enables all of the advantages described above, it's not all that's required. Software vendors must step up to incorporate support for the silicon virtualization facilities. Does this mean that all of the OS vendors must update their software to support virtualization? The answer is "no." A new software architecture is emerging. It delivers the benefits of virtualization while avoiding the need for everyone's operating and application software to change significantly to capture those benefits.

This new software architecture is the real-time hypervisor. A hypervisor (the term was originally coined by IBM) is a "virtual-machine manager." It acts as a host for a computer system's resources to one or more guest operating systems (see figure). A real-time hypervisor can host real-time operating systems along with GPOSs with minimal compromise on real-time performance.

Because Intel's Core virtualization technology spans single- and multi-core processor configurations, a real-time hypervisor can support systems that host multiple OSs on a single core. Yet it also can support those systems that dedicate real-time processing to one core and general-purpose processing to other cores. This latter configuration offers the highest real-time performance, as 100% of the processing cycles of the real-time core can be dedicated to real-time processing.

By combining Intel Virtualization Technology with hypervisor software, embedded- systems developers can improve the performance and robustness of applications. They also can add features to their products while keeping system costs under control.

Kim Hartman is the vice president of sales and marketing at TenAsys Corp. He holds a BS in computer engineering from the University of Illinois, Urbana-Champaign, and an MBA from Northern Illinois University.