CMP EMBEDDED.COM

Login | Register     Welcome Guest  
HOME DESIGN PRODUCTS COLUMNS E-LEARNING CONFERENCES CODE FORUMS/BLOGS NEWSLETTERS CONTACT FEATURES RSS RSS

Virtualization for embedded X86 multiprocessor applications
The addition of Intel's VT hardware technology to its x86 CPUs makes possible the creation of a software-based embedded virtual machine manager.



Embedded.com

Virtualization Technology in multicore CPUs
Until the availability of Intel VT (widely introduced on the Intel Core microarchitecture), software-only VMMs running on the x86 architecture encountered significant challenges. Both the VMM and the guest operating system expect to maintain supervisor-level control over the hardware platform; however, absent some form of cooperation between the VMM and the guest operating systems (aka "para-virtualization"), the VMM must resort to time-consuming and CPU-intensive "tricks." Supervisor-level control can be reliably maintained by only one software system, resulting in a conflict between the VMM and the guest operating system. The tricks a VMM must use, without the support of hardware-virtualization technology in the processor, include modifying the guest operating system's binary code and running guest operating systems at ring levels for which they were not written.2

The downside to such VMM trickery is a decrease in performance and limited compatibility among guest operating systems. For example, binary files of a guest operating system may be modified to trap supervisor-level CPU instructions, requiring the VMM to emulate these instructions. Instruction emulation slows down the execution speed of the guest operating system, and the need to "fix up" binary files limits guest operating systems to those that have been certified for use with the VMM.

Virtualization technology built into the CPU is designed to overcome these problems. For example, Intel VT adds an overarching operating mode, called VMX root, where a hypervisor executes with ultimate control of the CPU hardware. A hypervisor that uses Intel VT can intercept key supervisor-mode operations executed by a guest operating system without requiring knowledge of the guest operating system's binaries or internals.2

A VMM for embedded
Hardware-virtualization technology has made possible the emergence of an embedded VMM (eVM) capable of supporting the demands of a real-time operating system (RTOS) while simultaneously hosting a general-purpose operating system (GPOS), such as Windows or Linux. On a dual-core machine the eVM hypervisor dedicates each guest operating system to a core, for a "dual-OS, single-platform" environment, giving developers the means to merge two disparate hardware platforms into one. Figure 1 shows an example of the TenAsys embedded VMM (eVM), which uses Intel VT to partition processor resources among each guest operating system.

View the full-size image

A key difference between this embedded VMM and the server VMM model is how physical resources are allocated to each virtual machine--paralleling the AMP versus the SMP models. Resources, such as CPU cycles, RAM, I/O, and interrupts, must be allocated by any VMM. In the simplest case, a server VMM evenly multiplexes these resources among the virtual machines, attempting to fairly distribute physical resources among all the virtual machines.

1 | 2 | 3 | 4 | 5

Rate this article: Low High
Current rating
  • .
Embedded.com Career Center
Looking for a new job?
SEARCH JOBS

Browse all jobs

SPONSOR
RECENT JOB POSTINGS





 :