Registro del procesador


Un registro de procesador es una ubicación de acceso rápido disponible para el procesador de una computadora . Los registros generalmente consisten en una pequeña cantidad de almacenamiento rápido , aunque algunos registros tienen funciones de hardware específicas y pueden ser de solo lectura o solo escritura. En la arquitectura de la computadora , los registros suelen ser direccionados por mecanismos distintos de la memoria principal , pero en algunos casos se les puede asignar una dirección de memoria , por ejemplo , DEC PDP-10 , ICT 1900 .

Casi todas las computadoras, ya sea que carguen/almacenen la arquitectura o no, cargan datos de una memoria más grande en registros donde se utilizan para operaciones aritméticas y se manipulan o prueban mediante instrucciones de máquina . Los datos manipulados a menudo se almacenan nuevamente en la memoria principal, ya sea por la misma instrucción o por una posterior. Los procesadores modernos utilizan RAM estática o dinámica como memoria principal, a la que generalmente se accede a través de uno o más niveles de caché .

Los registros del procesador normalmente se encuentran en la parte superior de la jerarquía de la memoria y proporcionan la forma más rápida de acceder a los datos. El término normalmente se refiere solo al grupo de registros que se codifican directamente como parte de una instrucción, según lo define el conjunto de instrucciones . Sin embargo, las CPU modernas de alto rendimiento a menudo tienen duplicados de estos "registros arquitectónicos" para mejorar el rendimiento mediante el cambio de nombre de los registros , lo que permite la ejecución paralela y especulativa . El diseño x86 moderno adquirió estas técnicas alrededor de 1995 con los lanzamientos de Pentium Pro , Cyrix 6x86 , Nx586 y AMD K5 .

Cuando un programa de computadora accede repetidamente a los mismos datos, esto se denomina localidad de referencia . Mantener los valores de uso frecuente en los registros puede ser fundamental para el rendimiento de un programa. La asignación de registros la realiza un compilador en la fase de generación de código o manualmente un programador de lenguaje ensamblador .

Los registros normalmente se miden por el número de bits que pueden contener, por ejemplo, un " registro de 8 bits ", "registro de 32 bits " o un " registro de 64 bits " o incluso más. En algunos conjuntos de instrucciones, los registros pueden operar en varios modos dividiendo su memoria de almacenamiento en otros más pequeños (32 bits en cuatro de 8 bits, por ejemplo) en los que se pueden cargar múltiples datos (vectores o conjuntos de datos unidimensionales ). y operado al mismo tiempo. Por lo general, se implementa agregando registros adicionales que mapean su memoria en un registro más grande. Los procesadores que tienen la capacidad de ejecutar una sola instrucción en múltiples datos se denominan procesadores vectoriales .

Un procesador a menudo contiene varios tipos de registros, que se pueden clasificar según su contenido o las instrucciones que operan sobre ellos: