“El Ciclo Instrucción” cuenta con dos fases, la primera
es la obtención y la segunda es la fase de ejecución:
2.3.1 Ciclo Fetch-Decode-Execute
Fase de Obtención donde:
· El registro Contador del Programa (PC) tiene la dirección de la
siguiente instrucción que va obtener.
· El procesador obtiene la siguiente instrucción de la localidad de
memoria apuntada por el PC.
· El PC se incrementa:
Ø
A menos que se le indique otra cosa
Ø
El PC queda apuntando a la siguiente instrucción
· La instrucción se carga en el Registro Instrucción (IR).
· El procesador interpreta la instrucción y realiza las
acciones indicadas por ella.
Fase de Ejecución donde:
· Procesador-memoria
Ø
Transferencia de datos entre CPU y memoria principal
· Procesador – E/S
Ø
Transferencia de datos entre CPU y un módulo de E/S
· Procesamiento de datos
Ø
Alguna operación aritmética o lógica sobre los datos
· Control
Ø
Alteración de la secuencia de operaciones
Ø
e.g. Salto (jump)
· Una combinación de las anteriores
Ø
Una combinación de las anteriores
Ciclo instrucción más detallado:
Obtener la instrucción de
la memoria de programa
Determinar el tamaño de la
instrucción y las acciones ejecutar
Localizar y obtener los
operandos (datos)
Procesar los datos y
calcular el valor del resultado y el estado de la máquina
Escribir los resultados en
memoria para un uso posterior
Determinar la instrucción
que sigue
Diagrama de estados del ciclo de instrucción
· Una secuencia de instrucciones
· Por cada instrucción se realiza una operación (aritmética o
lógica) o una transferencia (de datos o control)
· Cada operación es ejecutada siguiendo los pasos dados en el ciclo
instrucción
Ciclo indirecto
·
Puede requerir acceso a memoria para extraer operandos
·
El direccionamiento indirecto requiere más accesos a memoria
Flujo de datos (Obtención de la instrucción)
·
Depende del diseño del CPU
·
En general:
Ø
PC contiene la dirección de la siguiente instrucción
Ø
La dirección se mueve a MAR
Ø
Se pone la dirección en el bus de direcciones
Ø
La unidad de control solicita lectura a memoria
Ø
El resultado se pone en el bus de datos, copiado a MDR, y después
a IR
Ø
Mientras tanto el PC se incrementa a 1
Flujo de datos (Obtención de los datos)
· Si es direccionamiento indirecto, se ejecuta el ciclo indirecto
Ø
Los N bits más de la derecha de MDR se transfieren a MAR
Ø
La unidad de control solicita lectura de memoria
Ø
El resultado (dirección del operando) se mueve a MDR
Flujo de datos a:
fase de obtención
Flujo de datos b:
ciclo indirecto
Flujo de datos (Ejecución)
·
Puede tomar varias formas
· Depende de la instrucción que se está ejecutando
· Puede incluir:
Ø
Lectura/Escritura de la memoria
Ø
Entrada/Salida
Ø
Transferencias de registros
Ø
Operaciones en la ALU