Intel 253668-032US User Manual

Page of 806
Vol. 3   19-43
ARCHITECTURE COMPATIBILITY
sors. The following sections describe these model-specific extensions. The CPUID 
instruction indicates the availability of some of the model-specific features.
19.37.1 Model-Specific 
Registers
The Pentium processor introduced a set of model-specific registers (MSRs) for use in 
controlling hardware functions and performance monitoring. To access these MSRs, 
two new instructions were added to the IA-32 architecture: read MSR (RDMSR) and 
write MSR (WRMSR). The MSRs in the Pentium processor are not guaranteed to be 
duplicated or provided in the next generation IA-32 processors.
The P6 family processors greatly increased the number of MSRs available to soft-
ware. See Appendix B, “Model-Specific Registers (MSRs),” for a complete list of the 
available MSRs. The new registers control the debug extensions, the performance 
counters, the machine-check exception capability, the machine-check architecture, 
and the MTRRs. These registers are accessible using the RDMSR and WRMSR instruc-
tions. Specific information on some of these new MSRs is provided in the following 
sections. As with the Pentium processor MSR, the P6 family processor MSRs are not 
guaranteed to be duplicated or provided in the next generation IA-32 processors.
19.37.2  RDMSR and WRMSR Instructions
The RDMSR (read model-specific register) and WRMSR (write model-specific 
register) instructions recognize a much larger number of model-specific registers in 
the P6 family processors. (See “RDMSR—Read from Model Specific Register” and 
“WRMSR—Write to Model Specific Register” in the Intel® 64 and IA-32 Architectures 
Software Developer’s Manual, Volumes 2A & 2B
 for more 
information.)
19.37.3  Memory Type Range Registers
Memory type range registers (MTRRs) are a new feature introduced into the IA-32 in 
the Pentium Pro processor. MTRRs allow the processor to optimize memory opera-
tions for different types of memory, such as RAM, ROM, frame buffer memory, and 
memory-mapped I/O.
MTRRs are MSRs that contain an internal map of how physical address ranges are 
mapped to various types of memory. The processor uses this internal memory map 
to determine the cacheability of various physical memory locations and the optimal 
method of accessing memory locations. For example, if a memory location is speci-
fied in an MTRR as write-through memory, the processor handles accesses to this 
location as follows. It reads data from that location in lines and caches the read data 
or maps all writes to that location to the bus and updates the cache to maintain cache 
coherency. In mapping the physical address space with MTRRs, the processor recog-
nizes five types of memory: uncacheable (UC), uncacheable, speculatable, write-
combining (WC), write-through (WT), write-protected (WP), and writeback (WB).