Skip to main content

¿Qué es un registro de instrucciones?

En términos de hardware de computadora, un registro de instrucciones es un elemento en la unidad central de procesamiento (CPU) de una computadora u otro dispositivo que contiene la instrucción de programación que se ejecutará al comienzo del siguiente ciclo de reloj según lo dicten otras partes del UPC. Otros elementos de la CPU, como el decodificador de instrucciones, se basan en el registro de instrucciones para mantener esta información para que pueda decodificarse, resolverse y eventualmente ejecutarse. Con algunos tipos de arquitectura de microprocesador, puede haber más de un registro de instrucciones para que se puedan procesar varias instrucciones al mismo tiempo, formando un estilo de lógica de línea de ensamblaje que se conoce como una tubería. En general, se dan nuevas instrucciones al registro de instrucciones a través de otra parte de la CPU conocida como el contador del programa, que tiene un propósito muy similar pero puede avanzar a la siguiente instrucción mientras se ejecuta la información que contiene el registro de instrucciones.

Un registro es una serie de interruptores físicos en un microprocesador o placa de circuito que se pueden encender o apagar, haciendo que cada interruptor sea equivalente a un bit. Cuando varios de los interruptores, también llamados enclavamientos, están vinculados, pueden almacenar datos binarios, como números, que pueden convertirse en direcciones de memoria o códigos de instrucciones. Dentro de la CPU, el registro de instrucciones puede contener la dirección en la memoria de la computadora de la instrucción que se está ejecutando o, para mayor eficiencia, puede contener la instrucción misma. Esta información se pasa al registro a través de otro registro conocido como el contador del programa, que en la mayoría de los casos salta a la siguiente instrucción que se ejecutará después de pasar la instrucción actual.

Los tipos de instrucciones procesadas por los registros generalmente son comandos de lenguaje ensamblador de bajo nivel que eventualmente se traducen en código de máquina o código de byte. Estos son claramente diferentes de las instrucciones en lenguajes de programación de nivel superior, porque las instrucciones de ensamblaje operan en una escala muy pequeña y directa. Un ejemplo es una línea de código de alto nivel que suma dos números y almacena los resultados en una variable, que solo requiere una sola línea de código de alto nivel para expresarse. Cuando se compila el código, se pueden generar una docena o más de instrucciones para completar la tarea, y cada instrucción es algo simple, como mezclar valores entre la memoria de acceso aleatorio (RAM) de la computadora y un registro de utilidad.

Una vez que el registro de instrucciones hace referencia a una instrucción, esta se pasa al decodificador de instrucciones para que la instrucción se pueda convertir en código de máquina. Las referencias a ubicaciones de memoria que pueden contener variables u otra información se resuelven y esa información a veces se coloca en otros registros. Finalmente, se ejecutará la instrucción real. Durante este tiempo, la CPU incrementará el contador del programa para apuntar a la siguiente instrucción que tendrá el registro de instrucciones para que el proceso pueda repetirse hasta que se haya ejecutado todo el programa.