Vol. 3C 28-3
VMX SUPPORT FOR ADDRESS TRANSLATION
28.2.2
EPT Translation Mechanism
The EPT translation mechanism uses only bits 47:0 of each guest-physical address.
1
It uses a page-walk length of
4, meaning that at most 4 EPT paging-structure entries are accessed to translate a guest-physical address.
2
These 48 bits are partitioned by the logical processor to traverse the EPT paging structures:
•
A 4-KByte naturally aligned EPT PML4 table is located at the physical address specified in bits 51:12 of the
extended-page-table pointer (EPTP), a VM-execution control field (see Table 24-8 in Section 24.6.11). An EPT
PML4 table comprises 512 64-bit entries (EPT PML4Es). An EPT PML4E is selected using the physical address
defined as follows:
— Bits 63:52 are all 0.
— Bits 51:12 are from the EPTP.
— Bits 11:3 are bits 47:39 of the guest-physical address.
— Bits 2:0 are all 0.
Because an EPT PML4E is identified using bits 47:39 of the guest-physical address, it controls access to a 512-
GByte region of the guest-physical-address space. The format of an EPT PML4E is given in Table 28-1.
•
A 4-KByte naturally aligned EPT page-directory-pointer table is located at the physical address specified in
bits 51:12 of the EPT PML4E. An EPT page-directory-pointer table comprises 512 64-bit entries (EPT PDPTEs).
An EPT PDPTE is selected using the physical address defined as follows:
— Bits 63:52 are all 0.
— Bits 51:12 are from the EPT PML4E.
1. No processors supporting the Intel 64 architecture support more than 48 physical-address bits. Thus, no such processor can pro-
duce a guest-physical address with more than 48 bits. An attempt to use such an address causes a page fault. An attempt to load
CR3 with such an address causes a general-protection fault. If PAE paging is being used, an attempt to load CR3 that would load a
PDPTE with such an address causes a general-protection fault.
2. Future processors may include support for other EPT page-walk lengths. Software should read the VMX capability MSR
IA32_VMX_EPT_VPID_CAP (see Appendix A.10) to determine what EPT page-walk lengths are supported.
Table 28-1. Format of an EPT PML4 Entry (PML4E) that References an EPT Page-Directory-Pointer Table
Bit
Position(s)
Contents
0
Read access; indicates whether reads are allowed from the 512-GByte region controlled by this entry
1
Write access; indicates whether writes are allowed to the 512-GByte region controlled by this entry
2
Execute access; indicates whether instruction fetches are allowed from the 512-GByte region controlled by this
entry
7:3
Reserved (must be 0)
8
If bit 6 of EPTP is 1, accessed flag for EPT; indicates whether software has accessed the 512-GByte region
controlled by this entry (see Section 28.2.4). Ignored if bit 6 of EPTP is 0
11:9
Ignored
(N–1):12
Physical address of 4-KByte aligned EPT page-directory-pointer table referenced by this entry
1
NOTES:
1. N is the physical-address width supported by the processor. Software can determine a processor’s physical-address width by execut-
ing CPUID with 80000008H in EAX. The physical-address width is returned in bits 7:0 of EAX.
51:N
Reserved (must be 0)
63:52
Ignored