Memory type range register

Source: Wikipedia, the free encyclopedia.

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

  1. ^ "The Linux Gamers' HOWTO". The Linux Gamers' HOWTO. tldp.org. Retrieved 2009-10-03.

External links