11-24 Vol. 3A
MEMORY CACHE CONTROL
Figure 11-7 shows flags and fields in these registers. The functions of these flags and fields are:
•
Type field, bits 0 through 7 — Specifies the memory type for the range (see Table 11-8 for the encoding of
this field).
•
PhysBase field, bits 12 through (MAXPHYADDR-1) — Specifies the base address of the address range.
This 24-bit value, in the case where MAXPHYADDR is 36 bits, is extended by 12 bits at the low end to form the
base address (this automatically aligns the address on a 4-KByte boundary).
•
PhysMask field, bits 12 through (MAXPHYADDR-1) — Specifies a mask (24 bits if the maximum physical
address size is 36 bits, 28 bits if the maximum physical address size is 40 bits). The mask determines the range
of the region being mapped, according to the following relationships:
— Address_Within_Range AND PhysMask = PhysBase AND PhysMask
— This value is extended by 12 bits at the low end to form the mask value. For more information: see Section
11.11.3, “Example Base and Mask Calculations.”
— The width of the PhysMask field depends on the maximum physical address size supported by the
processor.
CPUID.80000008H reports the maximum physical address size supported by the processor. If
CPUID.80000008H is not available, software may assume that the processor supports a 36-bit physical
address size (then PhysMask is 24 bits wide and the upper 28 bits of IA32_MTRR_PHYSMASKn are
reserved). See the Note below.
•
V (valid) flag, bit 11 — Enables the register pair when set; disables register pair when clear.
Table 11-9. Address Mapping for Fixed-Range MTRRs
Address Range (hexadecimal)
MTRR
63 56
55 48
47 40
39 32
31 24
23 16
15 8
7 0
70000-
7FFFF
60000-
6FFFF
50000-
5FFFF
40000-
4FFFF
30000-
3FFFF
20000-
2FFFF
10000-
1FFFF
00000-
0FFFF
IA32_MTRR_
FIX64K_00000
9C000
9FFFF
98000-
9BFFF
94000-
97FFF
90000-
93FFF
8C000-
8FFFF
88000-
8BFFF
84000-
87FFF
80000-
83FFF
IA32_MTRR_
FIX16K_80000
BC000
BFFFF
B8000-
BBFFF
B4000-
B7FFF
B0000-
B3FFF
AC000-
AFFFF
A8000-
ABFFF
A4000-
A7FFF
A0000-
A3FFF
IA32_MTRR_
FIX16K_A0000
C7000
C7FFF
C6000-
C6FFF
C5000-
C5FFF
C4000-
C4FFF
C3000-
C3FFF
C2000-
C2FFF
C1000-
C1FFF
C0000-
C0FFF
IA32_MTRR_
FIX4K_C0000
CF000
CFFFF
CE000-
CEFFF
CD000-
CDFFF
CC000-
CCFFF
CB000-
CBFFF
CA000-
CAFFF
C9000-
C9FFF
C8000-
C8FFF
IA32_MTRR_
FIX4K_C8000
D7000
D7FFF
D6000-
D6FFF
D5000-
D5FFF
D4000-
D4FFF
D3000-
D3FFF
D2000-
D2FFF
D1000-
D1FFF
D0000-
D0FFF
IA32_MTRR_
FIX4K_D0000
DF000
DFFFF
DE000-
DEFFF
DD000-
DDFFF
DC000-
DCFFF
DB000-
DBFFF
DA000-
DAFFF
D9000-
D9FFF
D8000-
D8FFF
IA32_MTRR_
FIX4K_D8000
E7000
E7FFF
E6000-
E6FFF
E5000-
E5FFF
E4000-
E4FFF
E3000-
E3FFF
E2000-
E2FFF
E1000-
E1FFF
E0000-
E0FFF
IA32_MTRR_
FIX4K_E0000
EF000
EFFFF
EE000-
EEFFF
ED000-
EDFFF
EC000-
ECFFF
EB000-
EBFFF
EA000-
EAFFF
E9000-
E9FFF
E8000-
E8FFF
IA32_MTRR_
FIX4K_E8000
F7000
F7FFF
F6000-
F6FFF
F5000-
F5FFF
F4000-
F4FFF
F3000-
F3FFF
F2000-
F2FFF
F1000-
F1FFF
F0000-
F0FFF
IA32_MTRR_
FIX4K_F0000
FF000
FFFFF
FE000-
FEFFF
FD000-
FDFFF
FC000-
FCFFF
FB000-
FBFFF
FA000-
FAFFF
F9000-
F9FFF
F8000-
F8FFF
IA32_MTRR_
FIX4K_F8000