Articulo de referencia

Registro específico del modelo

Un registro específico del modelo ( MSR ) es cualquiera de los diversos registros de control en la arquitectura del sistema x86 que se utilizan para la depuración , el seguimien...

Un registro específico del modelo ( MSR ) es cualquiera de los diversos registros de control en la arquitectura del sistema x86 que se utilizan para la depuración , el seguimiento de la ejecución del programa, la supervisión del rendimiento y la activación/desactivación de ciertas funciones de la CPU .

Historia

Con la introducción del procesador 80386 , Intel comenzó a introducir características "experimentales" que no necesariamente estarían presentes en futuras versiones del procesador. Las primeras fueron dos "registros de prueba" (TR6 y TR7) que permitían probar el búfer de traducción anticipada (TLB) del procesador; una variante especial de la instrucción MOV permitía moverse hacia y desde los registros de prueba. [ 1 ] En el 80486 se añadieron tres registros de prueba adicionales (TR3-TR5) que permitían probar las cachés del procesador para código y datos. [ 2 ] Ninguno de estos cinco registros se implementó en el posterior procesador Pentium; la variante especial de MOV generaba una excepción de código de operación no válido . [ 3 ] [ 4 ]

Con la introducción del procesador Pentium , Intel proporcionó un par de instrucciones ( RDMSR y WRMSR ) para acceder a los registros específicos del modelo, tanto actuales como futuros, así como la instrucción CPUID para determinar las características presentes en un modelo en particular. Muchos de estos registros han demostrado ser lo suficientemente útiles como para conservarse. Intel los ha clasificado como registros específicos del modelo arquitectónico y se ha comprometido a incluirlos en futuras líneas de productos. [ 5 ]

En los sistemas modernos basados ​​en x86, el firmware BIOS o UEFI inicializa los registros CPUID y los registros específicos del modelo en cada arranque del sistema.

En la arquitectura AArch64 , existe el mismo concepto, llamado Registros del Sistema. [ 6 ]

Uso de MSR

La lectura y escritura de estos registros se gestiona mediante las instrucciones rdmsry wrmsr, respectivamente. Dado que se trata de instrucciones privilegiadas , solo el sistema operativo puede ejecutarlas. El uso del módulo del kernel msr de Linux crea un pseudoarchivo "/dev/cpu/ x /msr" (con una x única para cada procesador o núcleo del procesador). Un usuario con permisos para leer y/o escribir en este archivo puede utilizar la API de E/S de archivos para acceder a estos registros. El paquete msr-tools [ 7 ] proporciona una implementación de referencia.

La documentación relativa a los registros de memoria (MSR) que admite una implementación de procesador determinada suele encontrarse en la documentación del fabricante de la CPU. Algunos ejemplos de MSR bastante conocidos son los registros de rango de tipo de memoria (MTRR) y los registros de rango de direcciones (ARR).

Véase también

Referencias

  1. "10.6.2 Registros de prueba". MANUAL DE REFERENCIA DEL PROGRAMADOR 80386 (PDF) . Intel . 1986.
  2. "10.6.2 Registros de prueba". MANUAL DE REFERENCIA DEL PROGRAMADOR DEL PROCESADOR i486 (PDF) . Intel . 1990.
  3. "23.2.12 Registros de prueba". Manual del usuario del procesador Pentium, volumen 3: Arquitectura y programación (PDF) . Intel . 1993.
  4. Alan Cruse. "Registros específicos del modelo" (PPT) . Apuntes de clase, curso de Programación avanzada de microcomputadoras, Universidad de San Francisco, 2006 .
  5. "2.1 Registros específicos del modelo". Manual del desarrollador de software para arquitecturas Intel 64 e IA-32, volumen 4: Registros específicos del modelo . Intel . Mayo de 2020.
  6. "Documentación – Desarrollador de Arm" . developer.arm.com . Consultado el 15 de junio de 2026 .
  7. msr-tools en 01.org
  • https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/best-practices/reading-writing-msrs-in-linux.html
  • Los registros específicos del modelo (MSR) de Intel se describen en detalle en el Manual del desarrollador de software de las arquitecturas Intel® 64 e IA-32, volumen 4; el enlace a la página de descarga de los manuales de referencia de Intel (PDF) (que incluye el volumen 4):

https://cdrdv2.intel.com/v1/dl/getContent/671200