Introducción:
como las instrucciones son parte del programa que se almacenan dentro de la memoria, cada vez que el procesador requiere ejecutar una instrucción, el procesador primero obtiene la instrucción de la memoria, luego decodifica la instrucción y luego ejecuta la instrucción. Todo el proceso se conoce como ciclo de instrucción.
Ejecución de instrucciones: la ejecución
de instrucciones necesita los siguientes pasos, que son
- El registro de PC (contador de programa) del procesador proporciona la dirección de la instrucción que debe recuperarse de la memoria.
- Si se obtiene la instrucción, se decodifica el código de operación de la instrucción. Al decodificar, el procesador identifica el número de operandos. Si hay algún operando para recuperar de la memoria, entonces se calcula esa dirección de operando.
- Los operandos se obtienen de la memoria. Si hay más de un operando, entonces el proceso de obtención de operandos puede repetirse (es decir, cálculo de direcciones y obtención de operandos).
- Después de esto, la operación de datos se realiza en los operandos y se genera un resultado.
- Si el resultado debe almacenarse en un registro, las instrucciones terminan aquí.
- Si el destino es la memoria, primero se debe calcular la dirección de destino. Luego, el resultado se almacena en la memoria. Si hay múltiples resultados que deben almacenarse dentro de la memoria, entonces este proceso puede repetirse (es decir, el cálculo de la dirección de destino y almacenar el resultado).
- Ahora se han ejecutado las instrucciones actuales. Lado a lado, la PC se incrementa para calcular la dirección de la siguiente instrucción.
- El ciclo de instrucciones anterior se repite para obtener más instrucciones.
Secuenciación en línea recta:
- La secuenciación en línea recta significa que la instrucción de un programa se ejecuta de forma secuencial (es decir, cada vez que PC se incrementa en un desplazamiento fijo).
- Y ninguna dirección de sucursal está cargada en la PC.
Ejemplo –
- Aquí, los programas y los datos se almacenan en la misma memoria, es decir, la arquitectura de von Neumann.
- La primera instrucción de un programa se almacena en la dirección i. La PC proporciona la dirección i y la instrucción almacenada en esa dirección i se obtiene de la memoria y luego se decodifica y luego el operando A se obtiene de la memoria y se almacena en un registro temporal y luego se ejecuta la instrucción (es decir, el contenido de la dirección A se copia en el procesador registro R0).
- Side by Side durante la decodificación o ejecución, la PC se incrementa en 4 (es decir, contiene la dirección de la siguiente instrucción) porque el segmento de instrucción y memoria es de 4 bytes. Entonces se ejecuta la instrucción en la dirección i.
- Entonces, cada vez, la PC se incrementa en 4. Por lo tanto, el programa se ejecuta de manera secuencial. Y este proceso se llama secuenciación en línea recta.
Ejemplo 2 –
Programa de secuenciación en línea recta para sumar n números.
- Las direcciones de las ubicaciones de memoria que contienen los n números se representan como NUM1, NUM2…..NUMn (es decir, la dirección NUM1 incluye el primer número).
- El primer número se almacena en el registro del procesador R0. Y cualquier otro número se suma al registro R0. Finalmente, cuando el programa finaliza (es decir, se suman n números, el resultado se coloca en la ubicación de memoria SUM
- La segunda forma es usar un bucle para sumar n número. Pero aquí no se usa la secuencia de línea recta porque cada vez que finaliza la iteración del ciclo, la PC tiene que cargar la dirección de la rama y la ejecución del programa comienza desde esa dirección.
- Aquí la ubicación N almacena el valor de n. El registro del procesador R1 se utiliza como contador para determinar el número de veces que se ejecuta el bucle.
- El contenido de la ubicación N se traslada a R1 al comienzo de la ejecución del programa.
- Después de eso, se borra el registro R0.
- La dirección LOOP se vuelve a cargar una y otra vez hasta que R1 se convierte en 0 (esto significa que se suman todos los números). Cada vez que se agrega un número, el valor de R1 se reduce.
- Cuando R1 se convierte en 0, salimos del bucle y el resultado que se almacena en R1 se copia en la ubicación de memoria SUM.
Publicación traducida automáticamente
Artículo escrito por goutamnagpal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA