Download - Ejemplo Ejecucion de Instruccion
Estructura funcional de los ordenadores
El formato de las instrucciones Una instruccin es una operacin elemental en un lenguaje de programacin; la orden ms pequea que un programador puede dar a un ordenador Las instrucciones contienen dos tipos de informacin: Lo que tiene que hacer la instruccin (sumar, almacenar datos ...) Con qu datos tiene que hacerlo
El formato de las instrucciones Cuando la unidad de control decodifica una instruccin genera una lista de rdenes a las unidades que toman parte en la ejecucin de la instruccin: Microinstrucciones
El formato de las instrucciones Instruccin, compuesta por tres campos: Cdigo de operacin Le dice al ordenador qu operacin hay que llevar a cabo y qu partes del ordenador estn involucradas en su ejecucin De la longitud de este campo depende del nmero de instrucciones que el microprocesador pueda entender. Cdigo de operacin de 8 bits Conjunto de 256 instrucciones (28)
Campo de direccin Los datos sobre los que se realizan las operaciones estn en memoria. La memoria est dividida en posiciones de memoria. Cada una tiene asociada una direccin, que suele representarse en hexadecimal El campo de direccin contiene la direccin de la posicin de memoria donde estn almacenados los datos
Modo de direccionamiento Indica la forma de acceder a la memoria para encontrar el dato
Operacin de la CPU Fases de funcionamiento de la CPU Hay dos fases: Fase de bsqueda de la instruccin Fase de ejecucin de la instruccin
Operacin de la CPU Fase de bsqueda de la instruccin El programa en cdigo mquina que hay que ejecutar se carga en memoria central Antes del comienzo de la ejecucin del programa se carga el contador de programa con la direccin de la primera instruccin a ejecutar. Lo hace un programa del sistema operativo: Cargador El secuenciador genera las microinstrucciones necesarias para transferir la siguiente instruccin desde la memoria principal hasta la CPU para poder ejecutarla
Operacin de la CPU Fase de bsqueda de la instruccin La secuencia de microinstrucciones es la siguiente: RPCLMAREAFETLIRIPCRPC (Read Program Counter): (Program Counter) Address bus LMA (Load Memory Address register): (Address Bus) Memory address register REA (REAd from Memory): (Memory) Memory data register (registro de intercambio de MA) FET (FETch memory data register): (Memory data register) Data bus LIR (Load Instruction Register): (Data bus) Instruction Register IPC (Increment Program Counter): (Program counter) + 1
Que se repite cada vez que se ha terminado de ejecutar una instruccin
CPU
RPC
(Read Program Counter)
CPU
LMA
(Load Memory Address register)
CPU
REA
(REAd from Memory)
CPU
FET
(FETch memory data register)
CPU
LIR
(Load Instruction Register)
CPU
+1
IPC
(Increment Program Counter)
Operacin de la CPU Fase de ejecucin de la instruccin Una vez cargada la instruccin en el registro de instrucciones: El decodificador transforma su cdigo de operacin en una serie de microinstrucciones. El secuenciador enva las microinstrucciones a los dispositivos y es ejecutada.
Operacin de la CPU Ejemplo: Sumar los nmeros 8H y 4H almacenados en las posiciones de memoria F800H y F810H, y almacenar el resultado en la posicin F820H Tres operaciones: Cargar el primer valor en el acumulador Sumar el segundo valor al acumulador (resultado en el acumulador) Almacenar el resultado en la posicin especificada
Operacin de la CPU Ejemplo: ... Programa en lenguaje ensamblador:
LD A, (F800H) Carga acumulador con contenido de la direccin F800H ADD A, (F810H) Suma contenido direccin F810H con acumulador LD (F820H), A Almacena contenido acumulador en la posicin F820H
Cdigo mquina generado por el ensamblador, algo del estilo3A F8 00 C6 F8 10 32 F8 20
Operacin de la CPU Ejemplo: ... Estado de la memoria antes de ejecutar el programa: Datos F80016 816 F81016 416 FB0016 3A F8 00 FB0116 C6 F8 10 FB0216 32 F8 20
Programa
Ejemplo: ...
Operacin de la CPU
1 instruccin: LD A, (F800H)Fase de bsqueda
Las microinstrucciones generadas por este programa seran:RPC LMA REA FET LIR IPC LAD LMA REA FET LIA NOP LAC
Fase de ejecucin
Campo direccin registro de instruccin Bus de direcciones Bus direcciones Registro de direccin de memoria Memoria Registro de intercambio de memoria Registro de intercambio de memoria Bus de datos Bus de datos Entrada A de la ALU Entrada B de la ALU Salida de la ALU Salida de la ALU Acumulador
Ejemplo: ...RPC LMA REA FET LIR IPC
Operacin de la CPU
2 instruccin: ADD A, (F810H) Fase de bsqueda
LAD LMA REA FET LIB LIA ADD LAC
Fase de ejecucin
Campo direccin registro de instruccin Bus de direcciones Bus direcciones Registro de direccin de memoria Memoria Registro de intercambio de memoria Registro de intercambio de memoria Bus de datos Bus de datos Entrada B de la ALU Bus de datos Entrada A de la ALU Suma con el acumulador Salida de la ALU Acumulador
Ejemplo: ...
Operacin de la CPU
3 instruccin: LD (F820H), AFase de bsqueda RPC LMA REA FET LIR IPC
Fase de ejecucin LAD Campo direccin registro de instruccin Bus de direcciones LMA Bus direcciones Registro de direccin de memoria ACB Acumulador Bus de datos STO Bus de datos Registro de intercambio de memoria WRI Registro de intercambio de memoria Memoria
Operacin de la CPU Ejemplo: ... De forma esquemtica: 3A F8 00 LADLMAREAFETLIANOP LAC C6 F8 10 LADLMAREAFETLIBLIAADDLAC 32 F8 20 LADLMAACBSTOWRI El esquema completo se muestra a continuacin:
CPU
Captacin de FB0016:RPC
CPU
Captacin de FB0016:LMA
CPU
Captacin de FB0016:REA
CPU
Captacin de FB0016:FET
CPU
Captacin de FB0016:LIR
CPU
+1
Captacin de FB0016:IPC
CPU
Eje. de LD A,(F80016):LAD
CPU
Eje. de LD A,(F80016):LMA
CPU
Eje. de LD A,(F80016):REA
CPU
Eje. de LD A,(F80016):FET
CPU
Eje. de LD A,(F80016):LIA
CPU
Eje. de LD A,(F80016):NOP
CPU
Eje. de LD A,(F80016):LAC
CPU
Captacin de FB1016:RPC
CPU
Captacin de FB1016:LMA
CPU
Captacin de FB1016:REA
CPU
Captacin de FB1016:FET
CPU
Captacin de FB1016:LIR
CPU
+1
Captacin de FB1016:IPC
CPU
Eje. de ADD A,(F81016):LAD
CPU
Eje. de ADD A,(F81016):LMA
CPU
Eje. de ADD A,(F81016):REA
CPU
Eje. de ADD A,(F81016):FET
CPU
Eje. de ADD A,(F81016):LIB
CPU
Eje. de ADD A,(F81016):LIA
CPU
Eje. de ADD A,(F81016):ADD
CPU
Eje. de ADD A,(F81016):LAC
CPU
Captacin de FB0216:RPC
CPU
Captacin de FB0216:LMA
CPU
Captacin de FB0216:REA
CPU
Captacin de FB0216:FET
CPU
Captacin de FB0216:LIR
CPU
+1
Captacin de FB0216:IPC
CPU
Eje. de LD (F82016),A:LAD
CPU
Eje. de LD (F82016),A:LMA
CPU
Eje. de LD (F82016),A:ACB
CPU
Eje. de LD (F82016),A:STO
CPU
Eje. de LD (F82016),A:WRI