Un registro específico de modelo ( MSR ) es cualquiera de los varios registros de control en el conjunto de instrucciones x86 que se usa para depurar , rastrear la ejecución de programas, monitorear el desempeño de la computadora y alternar ciertas características 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. El primero de estos fueron dos "registros de prueba" (TR6 y TR7) que permitieron probar el búfer de búsqueda de traducción (TLB) del procesador ; una variante especial de la instrucción MOV permitía moverse hacia y desde los registros de prueba. [1] Se siguieron tres registros de prueba adicionales en el 80486 (TR3 – TR5) que permitieron probar las cachés del procesador en busca de código y datos. [2] Ninguno de estos cinco registros se implementó en el siguiente procesador Pentium; la variante especial de MOV generó una excepción de código de operación no válida. [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" actuales y futuros, así como a los Instrucción CPUID para determinar qué características están presentes en un modelo en particular. Muchos de estos registros han demostrado ser lo suficientemente útiles como para conservarlos. Intel los ha clasificado comoregistros específicos de modelos arquitectónicos y se ha comprometido a incluirlos en futuras líneas de productos. [5]
Usar MSR
La lectura y escritura en estos registros se maneja mediante las instrucciones rdmsr
y wrmsr
, respectivamente. Como se trata de instrucciones privilegiadas, solo puede ejecutarlas el sistema operativo. El uso del módulo del kernel de Linux msr crea un pseudoarchivo "/ dev / cpu / x / msr" (con una x única para cada procesador o núcleo de procesador). Un usuario con permisos para leer y / o escribir en este archivo puede usar la API de E / S de archivos para acceder a estos registros. El paquete msr-tools [6] proporciona una implementación de referencia.
La documentación con respecto a los MSR que admite una determinada implementación de procesador generalmente se encuentra en la documentación del procesador del proveedor de la CPU. Ejemplos de MSR bastante conocidos son los registros de rango de tipo de memoria (MTRR) y los registros de rango de direcciones (ARR).
Ver también
Referencias
- ^ "10.6.2 Registros de prueba". 80386 MANUAL DE REFERENCIA DEL PROGRAMADOR (PDF) . Intel . 1986.
- ^ "10.6.2 Registros de prueba". MANUAL DE REFERENCIA DEL PROGRAMADOR DEL PROCESADOR i486 (PDF) . Intel . 1990.
- ^ "23.2.12 Prueba de registros". Manual del usuario del procesador Pentium Volumen 3: Manual de arquitectura y programación (PDF) . Intel . 1993.
- ^ Alan Cruse. "Registros específicos del modelo" (PPT) . Apuntes de clase, clase de Programación avanzada de microcomputadoras, Universidad de San Francisco, 2006 .
- ^ "2.1 MSRS ARQUITECTÓNICO". Manual del desarrollador de software de arquitecturas Intel 64 e IA-32 Volumen 4: Registros específicos del modelo . Intel . Mayo de 2020.
- ^ msr-tools en 01.org