Diferencia entre revisiones de «Registro de instrucción»

Contenido eliminado Contenido añadido
m rv a edición del 23 jun 2011‎ MerlIwBot por vandalismo de usuario:Unificacion
Línea 1:
{{referencias}}El '''registro de instrucción IR''' es un [[registro (hardware)|registro]] de la [[unidad de control]] del CPU en donde se almacena la instrucción que se está ejecutando. En los procesadores simples cada instrucción a ser ejecutada es cargada en el registro de la instrucción que la contiene mientras se es decodificada, preparada y al final ejecutada, un proceso que puede tomar varios pasos. Los procesadores más complejos usan una [[Segmentación (informática)|tubería de registros de instrucción]] donde cada etapa de la tubería hace parte del trabajo, decodificación, preparación, o ejecución, y después pasa el resultado a la siguiente etapa para realizar el siguiente paso hasta que la instrucción es procesada totalmente. Esto funciona como una [[línea de ensamblaje]] en donde en cada etapa se hace un trabajo parcial, y luego se pasa a la siguiente etapa para continuar con la fabricación del producto. Los procesadores modernos pueden incluso hacer algunos de los pasos de fuera de orden ya que la decodificación de varias instrucciones se hace en paralelo.
{{referencias}}
{{otros usos|Registro}}
El '''registro de instrucción IR''' es un [[registro (hardware)|registro]] de la [[unidad de control]] del CPU en donde se almacena la instrucción en ensamblador con los argumentos requeridos para que el hardware al completo cumpla con la ejecución requerida.
 
En resumen, decodificarDecodificar el [[opcode]] desdeen el registro de instrucción incluye la determinación de la instrucción, también determinar donde están sus [[operando]]s en memoria, leer los operandos desde la memoria, asignar recursos del procesador para ejecutar el comando (en procesadores superscalares), etc.
==Composición de una instrucción de registro==
Desde el medio de almacenamiento se descodifica en binario las letras usadas en ensamblador, pero para que tenga sentido, no solo ha de indicar que unidad aritmeticológica se usará (por ejemplo MOV), sino los argumentos, tales como las posiciones de memoria que se usaran para tal acción. En el caso de MOV, se requieren expresar dos posiciones de memoria, en donde la primera indica la posición de memoria que contiene el valor de origen y la segunda la posición de memoria sobre la cual se moverá el valor. La instrucción MOV contendrá pues la cantidad de transistores necesarios que ejecuten los pasos que, en primer lugar procesaran el valor origen, en segundo lugar liberaran la posición de memoria origen y en tercer lugar volcaran los datos en la posición de memoria destino, todo ello en un solo ciclo.
 
En los procesadores simples cada instrucción a ser ejecutada es cargada en el registro de instrucción, el cual detecta diferentes rangos de datos, siendo el primero la instrucción, y el resto será función de la sintaxis requerida, que en el caso MOV, será como sigue, en pseudocódigo:
# Instrucción MOV.
# Espacio en blanco
# Expresión que prepara el set de registro para procesar un tipo de dato.
# valor en hexadecimal.
# Coma y un espacio en blanco.
# se repiten los pasos 3 y 4.
 
La principal diferencia con los [[Registro (hardware)|registros de hardware]], es que estos son punteros o índices de carácter estático y que dan formato a la forma de acceder a las funciones aritmeticológicas, siendo cada set o conjunto de punteros, contextualizados por el tipo de proceso de datos que realizarán; siendo que los registros descritos en este artículo, integran las expresiones de forma dinámica función del bus de datos y con la sintáxis completa necesaria para que se ejecute la tarea indicada en la instrucción de registro. No se pueden considerar memoria cache (aunque en técnicas de programación arcaicas, se recurrieran a los ciclos que no usaran esos registros, para leer los datos residuales, caso de haber decidido no liberarlos), pues solo almacenan una instrucción por tarea, por ciclo o segmentan el proceso con la tecnología pipe line.
 
Los procesadores más complejos usan una [[Segmentación (informática)|tubería de registros de instrucción]] donde cada etapa de la tubería hace parte del trabajo, decodificación, preparación, o ejecución, y después pasa el resultado a la siguiente etapa para realizar el siguiente paso hasta que la instrucción es procesada totalmente. Esto funciona como una [[línea de ensamblaje]] en donde en cada etapa se hace un trabajo parcial, y luego se pasa a la siguiente etapa para continuar con la fabricación del producto. Los procesadores modernos pueden incluso hacer algunos de los pasos de fuera de orden ya que la decodificación de varias instrucciones se hace en paralelo.
 
En resumen, decodificar el [[opcode]] desde el registro de instrucción incluye la determinación de la instrucción, también determinar donde están sus [[operando]]s en memoria, leer los operandos desde la memoria, asignar recursos del procesador para ejecutar el comando (en procesadores superscalares), etc.
 
== Véase también ==