Intel 64 and IA-32 Architectures Software Developers Manual Volume 3A, System Programming Guide, Part 1
Vol. 3A 10-31
MEMORY CACHE CONTROL
nonexistent memory locations, it can either be specified as the default type in the
Type field or be explicitly assigned with the fixed and variable MTRRs.
• FE (fixed MTRRs enabled) flag, bit 10 — Fixed-range MTRRs are enabled
when set; fixed-range MTRRs are disabled when clear. When the fixed-range
MTRRs are enabled, they take priority over the variable-range MTRRs when
overlaps in ranges occur. If the fixed-range MTRRs are disabled, the variable-
range MTRRs can still be used and can map the range ordinarily covered by the
fixed-range MTRRs.
• E (MTRRs enabled) flag, bit 11 — MTRRs are enabled when set; all MTRRs are
disabled when clear, and the UC memory type is applied to all of physical
memory. When this flag is set, the FE flag can disable the fixed-range MTRRs;
when the flag is clear, the FE flag has no affect. When the E flag is set, the type
specified in the default memory type field is used for areas of memory not
already mapped by either a fixed or variable MTRR.
Bits 8 and 9, and bits 12 through 63, in the IA32_MTRR_DEF_TYPE MSR are
reserved; the processor generates a general-protection exception (#GP) if software
attempts to write nonzero values to them.
10.11.2.2 Fixed Range MTRRs
The fixed memory ranges are mapped with 11 fixed-range registers of 64 bits each.
Each of these registers is divided into 8-bit fields that are used to specify the memory
type for each of the sub-ranges the register controls:
• Register IA32_MTRR_FIX64K_00000 — Maps the 512-KByte address range
from 0H to 7FFFFH. This range is divided into eight 64-KByte sub-ranges.
• Registers IA32_MTRR_FIX16K_80000 and IA32_MTRR_FIX16K_A0000
— Maps the two 128-KByte address ranges from 80000H to BFFFFH. This range
is divided into sixteen 16-KByte sub-ranges, 8 ranges per register.
• Registers IA32_MTRR_FIX4K_C0000 through
IA32_MTRR_FIX4K_F8000 — Maps eight 32-KByte address ranges from
Figure 10-5. IA32_MTRR_DEF_TYPE MSR
Type — Default memory type
FE — Fixed-range MTRRs enable/disable
E — MTRR enable/disable
63
0
Reserved
F
E
71011
Type
8912
E
Reserved