Регистры диапазона типа памяти ( MTRR ) представляют собой набор регистров управления дополнительными возможностями процессора , которые предоставляют системному программному обеспечению контроль над тем, как кэшируются доступы к диапазонам памяти со стороны ЦП . Он использует набор программируемых регистров, специфичных для модели (MSR), которые являются специальными регистрами, предоставляемыми большинством современных ЦП. Возможные режимы доступа к диапазонам памяти могут быть некэшированными, сквозной записью , объединением записи , защитой записи и обратной записью . В режиме обратной записи записи записываются в кэш ЦП , а кэш помечается как грязный, так что его содержимое записывается в память позже.
Объединение записей позволяет объединять передачи записи шины в более крупную передачу перед их передачей по шине, чтобы обеспечить более эффективную запись в системные ресурсы, такие как память видеокарты . Это часто увеличивает скорость операций записи изображений в несколько раз, ценой потери простой последовательной семантики чтения/записи обычной памяти. Дополнительные биты, которые предусмотрены в некоторых компьютерных архитектурах , таких как AMD64 , позволяют затенять содержимое ПЗУ в памяти (теневое ПЗУ) и конфигурировать отображаемый в память ввод/вывод .
В ранних системах архитектуры x86 , особенно там, где кэш-память предоставлялась отдельными микросхемами вне корпуса ЦП, эта функция контролировалась чипсетом и настраивалась через настройки BIOS .
Когда кэш ЦП был перемещен внутрь ЦП, ЦП реализовали MTRR фиксированного диапазона , которые охватывают первый мегабайт памяти, чтобы быть совместимыми с тем, что ПК-BIOS предоставляли в то время. Они используются для управления политикой кэширования, необходимой для доступа к VGA и всех других доступов к памяти, выполняемых, когда система находится в реальном режиме . Выше 1 МБ ЦП предоставляют ряд MTRR переменного диапазона , которые могут быть свободно размещены и даже перекрываться. Эти MTRR переменного диапазона могут использоваться для установки политики кэширования графической памяти и других диапазонов памяти, используемых устройствами PCI .
Количество MTRR варьируется:
Интерфейс памяти процессоров AMD K8 поддерживает «Extended fixed-range MTRR Type-Field Encodings», что позволяет указать, будет ли доступ к определенным диапазонам адресов выполняться путем доступа к ОЗУ через архитектуру прямого подключения или путем выполнения отображенного в память ввода-вывода . Это позволяет, например, реализовать теневое ОЗУ путем копирования содержимого ПЗУ в ОЗУ.
Новые процессоры x86 поддерживают более продвинутую технологию, называемую таблицами атрибутов страниц (PAT), которая позволяет настраивать эти режимы на каждой странице, вместо того чтобы иметь ограниченное количество регистров с низкой степенью детализации для работы с современными размерами памяти, которые могут достигать 64 ГБ даже на ноутбуке и в несколько раз больше на настольной системе.