Hardware-Assisted Virtualization Support
The ability to run multiple operating systems on a single computer, a technology known as virtualization, was originally developed for IBM mainframe computers in 1965. However, it has also been available in PCs for over a decade. By running multiple operating systems and applications on a single computer, a single computer can be used for multiple tasks, can support legacy applications that no longer run on a current operating system, and makes technical support of a wide range of operating systems, utilities, applications, and web browser versions from a single system feasible.
Virtualization can take two forms:
With either type of virtualization, a program called a virtual machine manager (VMM) is used to create and manage a virtual machine (VM), which is a section of RAM and hard disk space that is set aside for use by an operating system and its applications. Once a VM is created and started, the user can install an operating system supported by the VMM, install any utilities designed to make the operating system work better inside the VM, and can use the VM as if it is the only operating system running on the hardware. The disk space used by a VM is usually dynamic, expanding from a small size to a pre-set maximum only as needed, and the RAM allocated to a VM is available for other processes when the VM is closed.
In hypervisor/client virtualization, the virtual machine manager (VMM) runs directly on the hardware, enabling VMs to go through fewer layers of emulation for faster performance than with host/guest virtualization. This type of virtualization is sometimes referred to as Type 1 or bare-metal virtualization. This is the type of virtualization performed by Microsoft Hyper-V and most server-class virtualizers.
In host/guest virtualization, a host operating system runs a virtual machine manager (VMM) program. The VMM is used to create and manage operating systems loaded as guests. In this type of virtualization, the connections between hardware and the virtual machine must pass through two layers: the device drivers used by the host operating system and the virtualized drivers used by the VMM. The multilayered nature of host/guest virtualization makes this type of virtualization relatively slow. It is also referred to as Type 2 virtualization, and Microsoft Virtual PC and Windows Virtual PC are examples of this type of virtualization.
Most virtualization programs for Windows-based PCs, such as Microsoft Virtual PC 2004 and 2007, use host/guest virtualization. To enable virtualization to run faster and make virtualization more useful, both Intel and AMD have added hardware-assisted virtualization support to their processors. The original edition of Windows Virtual PC for Windows 7 required the use of processors with hardware-assisted virtualization support with the BIOS configured to enable this feature. Although the current version of Windows Virtual PC does not require the use of processors with hardware-assisted virtualization, this feature is highly desirable for any computer that will be used for virtualization.
Note: Windows 8 Pro does not support Windows Virtual PC. Instead, it includes Hyper-V Client. Enable it through the Add/Remove Features from Windows dialog in the Control Panel.
AMD refers to its hardware-assisted virtualization support as AMD-V, although BIOS setup programs might also identify it as VMM or virtualization. Support for AMD-V is almost universal across its processors starting with models supporting Socket AM2 and their mobile counterparts up through current processors for AM3+ and FM2 sockets.
Intel VT-x and VT-D
Intel refers to its hardware-assisted virtualization support as Intel VT-x. Intel supports VT-x on all of its second-generation and third-generation Core i3/i5/i7 processors, and with certain models in older product families. Intel processors with VT-D support also virtualize directed I/O for faster performance of I/O devices in a virtualized environment.
VIA Technologies refers to its hardware-assisted virtualization support as VIA VT. It is present in all Nano-family processors as well as QuadCore and Eden X2 processor families.
Enabling Hardware-Assisted Virtualization Support
To enable hardware-assisted virtualization support on a computer, the following must occur:
- The installed process must support hardware-assisted virtualization
- The BIOS must support hardware-assisted virtualization
- The BIOS settings for hardware-assisted virtualization must be enabled
- A VMM that supports hardware-assisted virtualization must be installed
Note: To determine if a system includes a processor that supports hardware-assisted virtualization, use CPU-Z, and check BIOS settings.
The following sections discuss the major features of these processors and the different approaches Intel and AMD take to bring 64-bit multicore computing to the PC.