Está en la página 1de 21

PROCESO DE EJECUCIÓN

DE UNA INSTRUCCIÓN
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
• La ejecución de una instrucción de un programa
por parte del microprocesador es un proceso
complejo, en el cuál intervienen los siguientes
componentes hardware:
• CPU ó microprocesador:
– UNIDAD DE CONTROL (UC).
– UNIDAD ARITMÉTICO-LÓGICA. (ULA)
– REGISTROS (TANTO DE LA CPU COMO DE LA
ULA)
• Memoria principal (RAM).
• Buses internos. (Bus de datos, bus de
direcciones y bus de control)
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
• El programa a ejecutar, se encuentra ya preparado en la
memoria RAM, listo para ser ejecutado por el
microprocesador. En la memoria RAM, se encuentran
todas las instrucciones del programa, una detrás de otra,
listas para ejecutarse en ese orden. Así mismo, también
el la RAM, se encuentran almacenados los datos que
van a intervenir en el programa.(Como se puede ver en
la siguiente diapositiva).
• La ejecución de la instrucción se divide en dos partes:
– FASE DE BUSQUEDA.

– FASE DE EJECUCIÓN.
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
MEMORIA RAM
DIRECCION DATO DIRECCION DATO
20 INSTRUCCION 1 29 04544533
21 INSTRUCCION 2 30
22 INSTRUCCION 3 31 PEPE
23 INSTRUCCION 4 32 55446554
24 INSTRUCCION 5 33 14323400
25 INSTRUCCION 6 34
26 INSTRUCCION 7 35
27 INSTRUCCION 8 36
28 INSTRUCCION 9 37
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
• FASE DE BUSQUEDA:
En esta primera fase, se realizan las
siguientes operaciones:
- Obtención de la instrucción a ejecutar.
- Decodificación de la instrucción.
- Obtención de los operandos (datos) que
intervienen en la instrucción.
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
• FASE DE EJECUCIÓN:
• En esta segunda fase, se realizan las
siguientes operaciones:
– Ejecución de la instrucción.
– Almacenamiento del resultado.
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
• A continuación vamos a ver los procesos de búsqueda y ejecución de la
instrucción, asi como los registros que intervienen:
• FASE DE BÚSQUEDA
• CP (CONTADOR DE PROGRAMA)
• Contiene la dirección de memoria en la cuál está la siguiente instrucción a ejecutar.
MEMORIA RAM
DIRECCION DATO DIRECCION DATO
20 INSTRUCCION 1 29 04544533
21 INSTRUCCION 2 30
22 INSTRUCCION 3 31 PEPE
23 INSTRUCCION 4 32 55446554
24 INSTRUCCION 5 33 14323400
25 INSTRUCCION 6 34
26 INSTRUCCION 7 35
27 INSTRUCCION 8 36
28 INSTRUCCION 9 37
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN

20

20

• En el ejemplo de la memoria representada anteriormente, la


primera instrucción a ejecutar, se encuentra en la dirección de
memoria 20, por tanto, éste será el valor que tome el registro
contador de programa (CP).
• Entonces, a continuación, se pasa el contenido del registro CP
(valor 20), al registro MAR.
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
• MAR (REGISTRO DE DIRECCIONES DE
MEMORIA)
• El registro MAR, está directamente
comunicado con la memoria principal a
través del bus de direcciones, y vamos a
leer la posición 20 de la memoria principal
( la posición 20, contiene la primera
instrucción del programa). (operación de
lectura en la memoria)
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
INSTRUCCION 1
20
OPERACIÓN DE LECTURA

INSTRUCCION 1

• A continuación, el valor leído en la memoria


(instrucción 1), pasa al registro de datos e
instrucciones MDR, a través del bus de datos.
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
• MDR (REGISTRO DE DATOS E INSTRUCCIONES)
• El MDR, contiene el dato leído de la memoria, que en este caso es una
instrucción del programa (instrucción 1). La instrucción, pasa a continuación
al registro de instrucciones (RI)
• RI (REGISTRO DE INSTRUCCIONES)
• En el registro de instrucciones, se almacenan las instrucciones de los
programas para ser decodificadas (a través del decodificador de
instrucciones D (saber qué es lo que hacen).

20 INSTRUCCION 1

INSTRUCCION 1
20
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
• Por tanto ahora lo que se hace, es averiguar,
qué es lo que hace la instrucción de ese
programa, por ejemplo vamos a suponer que
esa instrucción indica la suma de dos números.
• Ahora ya sabemos qué es lo que hay que hacer:
sumar dos números. (nos lo ha dicho el
decodificador de instrucciones)
• Por tanto, a continuación vamos a buscar los
dos números que tenemos que sumar.
(búsqueda de operandos)
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
• En la instrucción, también viene indicado, dónde se
encuentran los dos números a sumar, que normalmente
se encontrarán guardados en algún lugar de la memoria
principal (RAM).
• Vamos a suponer que los dos números a sumar, según
el ejemplo de nuestra memoria RAM, son los que se
encuentran en las direcciones de memoria 29 y 33.
(estas direcciones ya las sabemos porque vienen
indicadas junto con la instrucción 1).
• Entonces el próximo paso, es ir a buscar los dos
números, y pasarlos a la ALU (unidad aritmético-lógica)
del microprocesador, que es donde se realizan las
operaciones aritméticas (sumas, restas,
multiplicaciones, ….)
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
MEMORIA RAM

DIRECCION DATO DIRECCION DATO OPERANDO 1

20 INSTRUCCION 1 29 04544533

21 INSTRUCCION 2 30

22 INSTRUCCION 3 31 PEPE

23 INSTRUCCION 4 32 55446554 OPERANDO 2

24 INSTRUCCION 5 33 14323400

25 INSTRUCCION 6 34

26 INSTRUCCION 7 35

27 INSTRUCCION 8 36

28 INSTRUCCION 9 37
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
• Para buscar el primer número: introducimos la dirección de memoria
donde se encuentra(29) en el MAR (Registro de direcciones). Indicamos
a la memoria que queremos realizar una operación de lectura.
• El contenido de la dirección 29 (el número buscado), se guardará en el
MDR (Registro de datos). Este primer número lo pasamos a la ALU, a un
registro temporal de la ALU.

29 04544533
OPERACIÓN DE LECTURA

04544533
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
• A continuación vamos a buscar el segundo número. El segundo número
está en la posición de memoria 33. Por tanto ponemos la dirección 33 en
el MAR. Hacemos una operación de lectura en la memoria. Obtenemos el
segundo número en el MDR.
• Pasamos el segundo número a otro registro temporal de la ALU.
• AQUÍ TERMINA LA FASE DE BÚSQUEDA

04544533
14323400
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
• FASE DE EJECUCIÓN
• El siguiente paso, es el de ejecución de la instrucción:
• Ya tenemos los operandos de la instrucción (suma) en la ALU, por
tanto, sólo falta dar la orden de sumar.
• El resultado de la operación se almacena en otro registro típico de
la ALU:
• AC (REGISTRO ACUMULADOR)
• En este registro se almacenan los resultados de las operaciones
realizadas, por tanto, el resultado de la suma de los dos números
ya lo tenemos guardado en este registro.
• Y por fin, el último paso, es el de almacenamiento de los resultados,
por tanto, ya tenemos el resultado, sólo nos queda guardarlo en
algún lugar de la memoria RAM.
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN

18867933

04544533
14323400
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
• Para almacenar el resultado, pasamos el
contenido del registro acumulador (AC) al
registro de datos (MDR), insertamos la dirección
de memoria donde vamos a guardar el resultado
(35) en el registro de direcciones de memoria
(MAR), y damos la orden de escritura a la
memoria principal (operación de escritura).
• Con esto, ha finalizado la fase de ejecución de
la instrucción, quedando el resultado de la
operación almacenado en la memoria principal,
en la posición 35. (Ver siguiente figura)
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN

18867933

35

OPERACIÓN DE ESCRITURA

18867933
PROCESO DE EJECUCIÓN DE
UNA INSTRUCCIÓN
MEMORIA RAM

DIRECCION DATO DIRECCION DATO OPERANDO 1

20 INSTRUCCION 1 29 04544533

21 INSTRUCCION 2 30

22 INSTRUCCION 3 31 PEPE

23 INSTRUCCION 4 32 55446554 OPERANDO 2

24 INSTRUCCION 5 33 14323400

25 INSTRUCCION 6 34 RESULTADO

26 INSTRUCCION 7 35 18867933

27 INSTRUCCION 8 36

28 INSTRUCCION 9 37

También podría gustarte