The addition of Intel's VT hardware technology to its x86 CPUs makes possible the creation of a software-based embedded virtual machine manager.
A serious drawback of the server VMM model is the heavily virtualized I/O model. Not only does virtualizing all I/O seriously limit the number and variety of I/O devices accessible with the virtual machine, but it also has a significant impact on performance and determinism.
The AMP model of resource allocation is useful where determinism and performance are more important than equal access. The processor VT features can be used to isolate resources for use by a specific virtual machine and its guest operating system rather than to create virtual I/O for shared access among multiple virtual machines.
Even in the AMP model, which is the basis of the embedded hypervisor, not all I/O is required to be exclusive. Some will be shared (such as the hard disk, enterprise Ethernet adapter, and console device). In these instances, virtual devices exist to handle the requirement to share the hardware among multiple virtual machines.
Multiple RTOS support
The application of an embedded VMM is not limited to "dual operating system, single platform" on dual-core systems; increasing the number of processor cores on a platform increases the possibilities. For example, three virtual machines could be hosted on a quad-core processor: Windows in one virtual machine running on two cores and two embedded virtual machines, each containing a dedicated RTOS on each of the remaining cores.
Take, for example, a conventional system consisting of a Windows computer serving the user-interface and enterprise nexus function, an RTOS box providing machine control, and a DSP PCI card in the Windows box dedicated to high-performance numeric algorithms, such as image processing. Using an embedded hypervisor as shown in Figure 2, what was previously three separate (and expensive) pieces of computational hardware is condensed onto a single platform.
View the full-size image
Partitioning--determinism and performance
Granting exclusive access to I/O is essential to attaining real-time responsiveness, because it means the virtual machine can have direct physical access to its dedicated hardware. Without exclusive physical assignment of pertinent I/O, you run the risk of waiting indeterminately for access to devices. If another virtual machine has access to an I/O device, because it's multiplexed, the wait can be significant. Even if only one virtual machine ever accesses a specific I/O device, when a request is made to access that hardware a VMM that virtualizes I/O must translate the request from the virtual machine into real I/O accesses to the physical hardware, an unnecessary and time consuming process.
Exclusivity of I/O doesn't apply only to a real-time virtual machine. Graphics-intensive applications need access to real hardware for maximum performance. A virtual frame buffer may be too slow and inadequate in features for an application that renders moving 3D images. In that case, the virtual machine containing the GPOS needs direct access to the physical frame buffer and its control I/O.