Articulo de referencia

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 con...

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 control sobre cómo se almacenan en caché los accesos a los rangos de memoria por parte de la CPU . Utilizan 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 sin caché, escritura directa , escritura combinada , protección contra escritura y escritura diferida . En el modo de escritura diferida, las escrituras se escriben en la caché de la CPU y la caché se marca como modificada, de modo que su contenido se escribe en la memoria posteriormente.

La combinación de escrituras permite combinar las transferencias de escritura del bus en una transferencia mayor antes de distribuirlas por el bus para permitir escrituras más eficientes en recursos del sistema como la memoria de la tarjeta gráfica . Esto suele aumentar la velocidad de las operaciones de escritura de imágenes varias veces, a costa de perder la semántica simple de lectura/escritura secuencial de la memoria normal. Algunos bits adicionales , como los de AMD64 , permiten el enmascaramiento del contenido de la ROM en la memoria (ROM en sombra) y la configuración de la E/S mapeada en memoria .

MTRR en procesadores x86-PC

En los primeros sistemas con arquitectura x86 , especialmente aquellos en los que la caché era proporcionada por chips separados fuera del paquete de la CPU, esta función era controlada por el chipset y configurada a través de los ajustes de la BIOS .

Cuando la caché de la CPU se trasladó al interior de la CPU, las CPU implementaron MTRR de rango fijo que cubren el primer megabyte de memoria para ser compatibles con las BIOS de PC de la época. Estos se utilizan para controlar la política de caché necesaria para los accesos a la tarjeta gráfica y todos los demás accesos a memoria que se realizan mientras el sistema está en modo real . Por encima de 1  MB, las CPU proporcionan varios MTRR de rango variable , que pueden ubicarse libremente e incluso superponerse. Estos MTRR de rango variable se pueden usar para establecer la política de caché de la memoria gráfica y otros rangos de memoria utilizados por los dispositivos PCI .

El recuento de MTRR varía:

La interfaz de memoria de las CPU AMD K8 admite la codificación de campos de tipo MTRR de rango fijo extendido, lo que permite especificar si los accesos a determinados rangos de direcciones se ejecutan accediendo a la RAM mediante la arquitectura Direct Connect o ejecutando E/S mapeadas en memoria . Esto permite, por ejemplo, implementar una RAM en la sombra copiando el contenido de la ROM en la RAM.

Sucesor

Las CPU x86 más recientes admiten una técnica más avanzada llamada tablas de atributos de página (PAT, por sus siglas en inglés) que permite configurar estos modos página por página, en lugar de tener un número limitado de registros de baja granularidad para lidiar con tamaños de memoria modernos que pueden llegar a ser de hasta 64 GB incluso en una computadora portátil, y varias veces esa cantidad en un sistema de escritorio. 

Véase también

Referencias

  1. "The Linux Gamers' HOWTO" . tldp.org . Consultado el 3 de octubre de 2009 .
  • Los detalles sobre el funcionamiento de los MTRR se describen en los manuales de los procesadores de los fabricantes de CPU.
  • Acelerar los gráficos con MTRR incluye una explicación.
  • Manual del programador de la arquitectura AMD64, volumen 2: Programación del sistema ( PDF )
  • Manuales del desarrollador de software para arquitecturas Intel 64 e IA-32 Consulte el Manual del desarrollador de software para arquitecturas Intel 64 e IA-32, Volumen 3A: Guía de programación del sistema, sección 11.11 REGISTROS DE RANGO DE TIPOS DE MEMORIA (MTRRS).
  • MTRRLFBE, una utilidad para DOS creada por RayeR , permite configurar los modos de caché para los rangos de memoria VGA y LFB, mejorando significativamente el rendimiento de las aplicaciones gráficas de DOS. En ordenadores modernos con procesador Core 2 Duo y tarjeta gráfica PCI-E, puede ser hasta 10 veces más rápido al activar la combinación de escrituras.
  • Control del MTRR (Registro de rango de tipo de memoria) por Richard Gooch