Registro de rango de tipo de memoria


Los registros de rango de tipo de memoria ( MTRR ) son un conjunto de registros de control de capacidad suplementaria del procesador que proporcionan al software del sistema el control de cómo se almacenan en caché los accesos a los rangos de memoria por parte de la CPU . Utiliza un conjunto de registros programables específicos del modelo (MSR), que son registros especiales proporcionados por la mayoría de las CPU modernas. Los posibles modos de acceso a los rangos de memoria pueden ser no almacenados en caché, escritura simultánea , combinación de escritura, protección contra escritura y escritura no simultánea . En el modo de reescritura, las escrituras se escriben en la memoria caché de la CPU .y el caché se marca como sucio, para que su contenido se escriba en la memoria más tarde.

La combinación de escritura permite que las transferencias de escritura del bus se combinen en una transferencia más grande antes de distribuirlas por el bus para permitir escrituras más eficientes en los recursos del sistema, como la memoria de la tarjeta gráfica . Esto a menudo aumenta varias veces la velocidad de las operaciones de escritura de imágenes, a costa de perder la semántica secuencial simple de lectura/escritura de la memoria normal. Los bits adicionales que se proporcionan en algunas arquitecturas informáticas , como AMD64 , permiten la sombra del contenido de la ROM en la memoria del sistema (ROM sombra) y la configuración de E/S asignadas a la memoria .

En los primeros sistemas de arquitectura x86 , especialmente donde la memoria caché la proporcionaban chips separados fuera del paquete de la CPU, esta función estaba controlada por el propio conjunto de chips y configurada a través de la configuración del BIOS .

Cuando la memoria caché de la CPU se movió dentro de la CPU, las CPU implementaron MTRR de rango fijo que cubren el primer megabyte de memoria para ser compatible con lo que proporcionaban las PC-BIOS en ese momento. Estos se utilizan para controlar la política de caché necesaria para los accesos VGA y todos los demás accesos a la memoria realizados mientras el sistema está en modo real . Por encima de 1 MB, las CPU proporcionan una cantidad de MTRR de rango variable , que pueden colocarse libremente e incluso superponerse. Estos MTRR de rango variable se pueden usar para establecer la política de almacenamiento en caché de la memoria de gráficos y otros rangos de memoria utilizados por los dispositivos PCI .

Comenzando con la familia de procesadores Intel P6 ( Pentium Pro , Pentium II y posteriores), los MTRR se pueden usar para controlar el acceso del procesador a los rangos de memoria. [1]

Los procesadores Cyrix 6x86 , 6x86MX y MII tienen registros de rango de direcciones (ARR) que proporcionan una funcionalidad similar a los MTRR.