Check out my first novel, midnight's simulacra!

MTRR: Difference between revisions

From dankwiki
No edit summary
No edit summary
Line 1: Line 1:
Memory Type Range-Registers define write policies for ranges of memory on the x86 architecture. Until the P6, MTRRs governed only peripherals. Following the P6, they also applied to memory accesses by the processor. MTRR's have largely been superseded by [[Page Attribute Tables]].
Memory Type Range-Registers define write policies for ranges of memory on the x86 architecture. Until the P6, MTRRs governed only peripherals. Following the P6, they also applied to memory accesses by the processor. MTRR's have largely been superseded by [[Page Attribute Tables]]. MTRR setup on Linux can be examined via <tt>/proc/mtrr</tt>.
==MTRR States==
==MTRR States==
For more detail, see my entry on [[Architecture#Caches caches]].
For more detail, see my entry on [[Architecture#Caches caches]].

Revision as of 00:14, 21 April 2010

Memory Type Range-Registers define write policies for ranges of memory on the x86 architecture. Until the P6, MTRRs governed only peripherals. Following the P6, they also applied to memory accesses by the processor. MTRR's have largely been superseded by Page Attribute Tables. MTRR setup on Linux can be examined via /proc/mtrr.

MTRR States

For more detail, see my entry on Architecture#Caches caches.

  • Uncacheable: Must never be cached. Primarily used for memory-mapped I/O.
  • Write-through: Write both to cache and backing memory.
  • Write-combining: Temporarily store to a write-combining buffer, and write in burst mode
  • Write-protect: Writes are not allowed
  • Write-back: Write to cache immediately, but to memory only when forced