Memory type range register
This article needs additional citations for verification. (October 2009) |
Memory type range registers (MTRRs) are a set of
CPU's cache
and the cache is marked dirty, so that its contents are written to memory later.
Write-combining allows
memory-mapped I/O
.
MTRRs in x86-PC processors
In early
x86 architecture systems, especially where the cache was provided by separate chips outside of the CPU package, this function was controlled by the chipset and configured through BIOS
settings.
When the CPU cache was moved inside the CPU, the CPUs implemented fixed-range MTRRs which cover the first
VGA accesses and all other memory-accesses done while the system is in real mode. Above 1 MB, CPUs provide a number of variable-range MTRRs, which can be freely placed and even overlap. These variable-range MTRRs can be used to set the caching policy of graphics memory and other memory ranges used by PCI
devices.
Starting with the Intel P6 family of processors (Pentium Pro, Pentium II and later), MTRRs may be used to control the processor access to memory ranges.[1]
The
Address Range Registers
(ARRs) which provide a similar functionality to MTRRs.
The
K6-III processors have two MTRRs. The AMD Athlon
family provide 8 Intel-style MTRRs.
The Centaur C6 WinChip has 8 MCRs, allowing write-combining.
The VIA Cyrix III and VIA C3 CPUs offer 8 Intel-style MTRRs.
The memory interface of
memory-mapped I/O. This allows, for example, shadow RAM
to be implemented by copying ROM contents into RAM.
Successor
Newer x86 CPUs support a more advanced technique called
GB
even on a laptop, and several times that amount on a desktop system.
Details on how MTRRs work are described in the processor manuals from CPU vendors.
See also
References
- ^ "The Linux Gamers' HOWTO". The Linux Gamers' HOWTO. tldp.org. Retrieved 2009-10-03.
External links
- Speeding up graphics with MTRR includes explanation
- AMD64 Architecture Programmer's Manual Volume 2: System Programming (PDF)
- Intel 64 and IA-32 Architectures Software Developer's Manuals See Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3A: System Programming Guide section 11.11 MEMORY TYPE RANGE REGISTERS (MTRRS)
- MTRRLFBE utility for DOS by RayeR - it can set caching modes for VGA and LFB memory range to significantly boost performance of DOS graphics apps. On modern Core 2 Duo PC with PCI-E VGA it can be 10-times faster when write combining is set.
- MTRR (Memory Type Range Register) control by Richard Gooch