You are on page 1of 59

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: RPCLMAREAFETLIRIPC
RPC (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 estilo


3A 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), A
Fase 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

You might also like