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

Table Of Contents
24-2 Vol. 3
SUPPORT FOR ADDRESS TRANSLATION
24.2 EXTENDED PAGE TABLES (EPT)
The extended page-table mechanism (EPT) is a feature that can be used to support
the virtualization of physical memory. When EPT is in use, certain addresses that
would normally be treated as physical addresses (and used to access memory) are
instead treated as guest-physical addresses. Guest-physical addresses are trans-
lated by traversing a set of EPT paging structures to produce physical addresses
that are used to access memory.
Section 24.2.1 gives an overview of EPT.
Section 24.2.2 describes operation of EPT-based address translation.
Section 24.2.3 gives details of the EPT paging structures.
Section 24.2.4 discusses VM exits that may be caused by EPT.
Section 24.2.5 describes interactions between EPT and memory typing.
24.2.1 EPT Overview
EPT is used when the “enable EPT” VM-execution control is 1.
1
It translates the
guest-physical addresses used in VMX non-root operation and those used by
VM entry for event injection.
The translation from guest-physical addresses to physical addresses is determined
by a set of EPT paging structures. The EPT paging structures are similar to those
used to translate linear addresses while the processor is in IA-32e mode. Details of
the EPT paging structures are given in Section 24.2.3. While the “enable EPT” VM-
execution control is 1, the term guest paging structures refers to those paging
structures referenced through control register CR3.
When the “enable EPT” VM-execution control is 1, guest-physical addresses are
those derived from the contents of control register CR3 and the guest paging struc-
tures. (This includes the values of the PDPTEs, which logical processors store in
internal, non-architectural registers.) Note that the latter includes (in page-table
entries and in page-directory entries for which bit 7—PS—is 1) the addresses to
which linear addresses are translated by the guest paging structures.
A logical processor uses EPT to translate guest-physical addresses only when those
addresses are used to access memory. This has implications for the MOV to CR3
instruction, which loads CR3 with a guest-physical address:
1. Note that “enable EPT” is a secondary processor-based VM-execution control. If bit 31 of the pri-
mary processor-based VM-execution controls is 0, the logical processor operates as if the
“enable EPT” VM-execution control were 0. See Section 20.6.2.