MTRRs (Memory type range registers — Диапазонные регистры типа памяти) — используются для назначения типа (политики) кеширования участкам памяти. Регистры MTRR предоставляют механизм, связывающий типы памяти с физическими адресными диапазонами системной памяти. Они позволяют процессору оптимизировать операции для разных типов памяти, таких как ПЗУ, ОЗУ, кадровый буфер и отображаемые в памяти устройства ввода-вывода. Они также упрощают разработку системного оборудования, уменьшая количество контактов управляющих памятью, которые использовались для этой цели в ранних процессорах и внешних логических устройствах.
Типы регистров MTRR:
Fixed range — несколько предопределенных регионов фиксированного размера.
Variable range — до 10 пар (а в теории может быть и больше) MSR, каждая из которых задает произвольный участок памяти.
Default Type — MSR, задающий тип для остальной памяти (обычно UC или WB).
Виды памяти, которые могут быть закодированы в MTRR:[1]
Uncacheable — некэшируемая память (UC, тип 0).
Write Combining — память с комбинируемой записью (WC, тип 1).
Write Through — память со сквозной записью (WT, тип 4).
Write Protected — память с запретом записи (ПЗУ, WP, тип 5).
Write Back — память с обратной записью (WB, тип 6).