Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B, System Programming Guide Part 2

Table Of Contents
Vol. 3 24-1
CHAPTER 24
SUPPORT FOR ADDRESS TRANSLATION
The architecture for VMX operation includes two features that support address trans-
lation: virtual-processor identifiers (VPIDs) and extended page tables (EPT). VPIDs
are a mechanism for managing translations of linear addresses. EPT defines a layer
of address translation that augments the translation of linear addresses.
Section 24.1 details the architecture of VPIDs. Section 24.2 provides the details of
EPT. Section 24.3 explains how a logical processor may cache information from the
paging structures, how it may use that cached information, and how software can
managed the cached information.
24.1 VIRTUAL PROCESSOR IDENTIFIERS (VPIDS)
The original architecture for VMX operation required VMX transitions to flush the TLBs
and paging-structure caches. This ensured that translations cached for the old linear-
address space would not be used after the transition.
Virtual-processor identifiers (VPIDs) introduce to VMX operation a facility by which
a logical processor may cache information for multiple linear-address spaces. When
VPIDs are used, VMX transitions may retain cached information and the logical
processor switches to a different linear-address space.
Section 24.3 details the mechanisms by which a logical processor manages informa-
tion cached for multiple address spaces. A logical processor may tag some cached
information with a 16-bit VPID. This section specifies how the current VPID is deter-
mined at any point in time:
The current VPID is 0000H in the following situations:
Outside VMX operation. (This includes operation in system-management
mode under the default treatment of SMIs and SMM with VMX operation; see
Section 25.14.)
—In VMX root operation.
In VMX non-root operation when the “enable VPID” VM-execution control is 0.
If the logical processor is in VMX non-root operation and the “enable VPID” VM-
execution control is 1, the current VPID is the value of the VPID VM-execution
control field in the VMCS. (VM entry ensures that this value is never 0000H; see
Section 22.2.1.1.)