stringtranslate.com

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 depuración , seguimiento de ejecución de programas, monitoreo del rendimiento de la computadora y alternar 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 de ellas fueron dos "registros de prueba" (TR6 y TR7) que permitían probar el buffer 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] Tres registros de prueba adicionales siguieron en el 80486 (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 procesador Pentium posterior; la variante especial de MOV generó 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" actuales y futuros, así como la 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 ser conservados. 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]

Uso de MSR

La lectura y escritura de estos registros se realiza mediante las instrucciones rdmsry wrmsr, respectivamente. Como se trata de instrucciones privilegiadas , solo el sistema operativo puede ejecutarlas. El uso del módulo de kernel msr de Linux 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 utilizar 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 sobre qué MSR admite una determinada implementación de procesador suele encontrarse en la documentación del procesador 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 dirección (ARR).

Véase también

Referencias

  1. ^ "10.6.2 Registros de prueba". 80386 MANUAL DE REFERENCIA DEL PROGRAMADOR (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: Manual de arquitectura y programación (PDF) . Intel . 1993.
  4. ^ Alan Cruse. "Registros específicos de modelos" (PPT) . Apuntes de clase, clase de Programación avanzada de microcomputadoras, Universidad de San Francisco, 2006 .
  5. ^ "2.1 ARCHITECTURAL MSRS". Manual del desarrollador de software de arquitecturas Intel 64 e IA-32, volumen 4: registros específicos del modelo. Intel . Mayo de 2020.
  6. ^ msr-tools en 01.org

Enlaces externos