| Last Modified On : | March 25, 2008 11:05 AM PDT |
Rate |
|
Augment your understanding of the Itanium® architecture with concepts specific to Intel® Virtualization Technology. Intel Virtualization Technology is not the same for IA-32 and Itanium architectures for many reasons, including the fundamental differences between these architectures. Intel Virtualization Technology includes VT-x support for IA-32 processor virtualization and VT-i support for the Itanium architecture.
To describe the implementation of Intel Virtualization Technology on IA-32 architecture, see the rest of this series, which is introduced in the item “How to Solve Virtualization Challenges with VT-x and VT-i.”
Study the VT-i model as it pertains to your area of interest. VT-i consists of extensions to the Itanium processor hardware and the processor abstraction layer (PAL) firmware.
Processor status bit PSR.vm. The principal hardware extension is the addition of a new bit (vm) in the processor-status register (PSR). A virtual machine monitor (VMM) runs with PSR.vm = 0; it runs its guests with PSR.vm = 1. All four privilege levels can be used regardless of the value of PSR.vm; guest software can run at its intended privilege level, and a VMM has the flexibility to use multiple privilege levels. When PSR.vm = 0, processor operation is similar to operation without VT-i. When PSR.vm = 1, all privileged instructions and some non-privileged instructions – for example, thash – cause a new virtualization fault.
PSR.vm is cleared to 0 on all interruptions delivered through the IVT; thus, the VMM or PAL handles all interruptions, even those belonging to guest software. The VMM or PAL can set PSR.vm to 1 by using the rfi instruction to return to guest software. VT-i adds a new instruction, vmsw (virtual machine switch), which modifies the PSR.vm bit with minimum overhead, reducing the latency of transitions between guest software and a VMM in cooperative virtualization environments. PSR.vm also controls the number of virtual-address bits available to software. When a VMM is running – that is, PSR.vm = 0 – all implemented virtual address bits are available. When a guest is running – that is, PSR.vm = 1 – the uppermost implemented virtual-address bit is not available, and an exception occurs if this bit is used. This reserves some dedicated address space for the VMM that guest software cannot access.
IVT vectors. To facilitate efficient handling of transitions to a VMM, VT-i adds two new vectors to the IVT. The VMM uses the virtualization vector to configure the processor to use two of the processor-banked registers to identify the cause of the virtualization fault and the faulting opcode. With the virtual external interrupt vector, the VMM can use a PAL service to register pending virtual interrupts. If the VMM has registered an interrupt and the guest performs an operation that would unmask it, control is transferred to the virtual external interrupt vector.
PAL firmware layer extensions. VT-i includes additions to the PAL firmware layer that provide a consistent programming interface to a VMM even if the hardware is not implemented identically across processor generations. The PAL extensions include a set of new procedures, the addition of PAL services for high-frequency VMM operations, and a virtual processor descriptor (VPD) table.
VT-i defines PAL procedures for setting up and tearing down a virtual machine environment, initializing and terminating virtual processors, and saving and restoring a virtual processor’s state. These procedures follow the same calling convention as other PAL procedures.
VT-i introduces a PAL interface for virtualization called a service. To reduce overhead, PAL services use a new calling convention specifically targeted for VMMs. PAL services provide several functions including synchronizing guest shadow registers and the VPD, saving and restoring a subset of a virtual processor’s state, and resuming execution of guest software after a transition to the VMM.
Both the PAL firmware and the VMM can access the VPD, which is located in memory. The VPD contains configuration settings for the virtual processor and the subset of the virtual processor’s state that influences its execution characteristics. For example, the virtual processor’s control-register values are located in the VPD. The VPD contains two configuration fields that allow the VMM to customize the virtualization environment:
Intel Virtualization Technology
