Organizacion de La Unidad Central de Procesamiento

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 53

Organizacin de la unidad central de procesamiento (CPU)

Organizacin Computacional TC 1004

Unidad Central de Proceso (CPU)

Funcin: ejecutar secuencias de instrucciones.


Buscar instrucciones (memoria). Interpretar instrucciones. Buscar datos (memoria o E/S). Procesar datos. Escribir datos (memoria o E/S).

Programacin computadora.

Preparar secuencia de instrucciones (conjunto de instrucciones). Almacenar datos (memoria). Instruir al CPU para que inicie la ejecucin.

Unidad Arimtica y Lgica (ALU)

Realiza clculos:

Aritmticos. Suma, Resta, Multiplicacin y Divisin. Lgicos (comparaciones). AND, OR, NOT.

Utiliza banderas (signo, overflow, etc.). Unidad de Control, Registros y E/S llevan datos.

Unidad de Control (UC)

Ejecucin de una instruccin = conjunto de ciclos: Captacin (fetch): obtener instruccin de la memoria. Indirecto: obtener operandos. Ejecucin. Interrupcin: instrucciones que requieren atencin urgente. Ciclos compuestos de microoperaciones. Utiliza los registros de Control y Estado.

Registros

Almacenamiento temporal interno del CPU.


Acceso de alta velocidad. Localizacin de la ltima instruccin. Almacenar instrucciones y datos mientras se ejecuta alguna instruccin.

Dos tipos:

Disponibles al usuario. Control y Estado (UC).

Disponibles al usuario:

Propsito General. AX, BX, CX, DX (H/L). Registros de Datos. Registros de Direccin. Propsito general.

SI y DI. SP, BP, CS, DS, ES, SS, IP.

Direccionamiento.

Banderas (cdigos de condicin). Control: control CPU. Estado: estado de resultados de operaciones aritmticas y lgicas.

Control y Estado. Contador de Programa (PC): direccin de la instruccin a ser buscada (siguiente).

Registro de Instruccin (IR): instruccin reciente. Registro de Direccin de Memoria (MAR): direccin de la localidad de memoria. Registro de Dato de Memoria (MDR): palabra de memoria mas reciente. Palabra de Estado de Programa (PSW): cdigos de condicin e informacin de estado.

Signo, cero, acarreo, igual, overflow, etc.

Instrucciones de Mquina

Instrucciones de Mquina

Determinan la operacin del CPU. Existe una gran variedad que varian en funcin: conjunto de instrucciones. Elementos de una instruccin de mquina: Cada instruccin contiene la informacin requerida por el CPU para ser ejecutada.
1. 2. 3. 4.

Cdigo de operacin: Ej: ADD, SUB, MOV. Referencia de Operando Fuente: Direccin de los operandos requeridos por la instruccin. Referencia de Operando Resultante: Dir. guardar resultado. Referencia de Siguiente Instruccin.: Dir. sig. instruccin.

Representacin de Instrucciones.

Secuencia de bits. Mnemonicos.


Representacin simblica de una instruccin de mquina. Abreviaciones que indican la operacin. Ej: ADD, JMP, LOAD.

Dividida en campos.

Op. Code

Operand Ref

Operand Ref

La estructura de una instruccin es conocida como: formato de instruccin.

Diseo del Conjunto de Instrucciones.

Complejo y Debatido.

1.

Tipos de datos:
1. 2. 3. 4.

Direcciones. Nmeros. Caracteres. Lgicos.

2.
1.

Formato de la instruccin:
Longitud, # campos, tipo de direccionamiento.

3.
1.

Registros:
No. de registros del CPU a ser usados.

4.
1.

Direccionamiento:
Modo(s) de especificar la direccin de un operando.

5.

Repertorio de operaciones.
1. 2. 3. 4. 5. 6.

Transferencia de datos. Aritmticas. Manipulacin de bits (lgica). Control de programa. Manipulacin de cadenas (strings). Control del CPU.

5.

Nmero de direcciones de las instrucciones:


Cero HLT. Una DIV BX Dos MOV AL, 1

Instrucciones de Transferencia de Datos


MOV PUSH, POP XCHG IN, OUT

Mover Operaciones en Stack Intercambiar Puertos entrada/salida

MOV destino, fuente Transfiere datos entre registros y memoria. Destino: registro o localidad de memoria. Fuente: registro, direccin memoria o nmero.

MOV AX, 10 MOV BX, DX

Instrucciones Aritmticas

ADD / SUB INC / DEC NEG MUL / DIV

Suma / Resta Incremento / Decremento Complemento a dos Multiplicacin / Divisin

ADD / SUB Op1, Op2 Suma / resta del Op1 y el Op2. El resultado es almacenado en el Op1.

MOV AX, 1 MOV BX, 2 MOV CX, 10 ADD AX, BX SUB CX, 5

INC / DEC Op Incremento / Decremento de Op en una unidad. Resultado almacenado en Op.


MOV AX, 8 INC AX MOV BX, AX DEC BX

MUL / DIV Op Multiplicacin / Divisin de AX por / entre Op. Resultado almacenado en AX.

MOV AX, 5 MOV BX, 4 MUL BX DIV 3

Instrucciones Lgicas

AND OR NOT

AND OR Inclusivo Complementar (a uno)

NOT Op Complemento a uno de Op. Resultado almacenado en Op. AND / OR Op1, Op2 AND / OR del Op1 con el Op2. Resultado almacenado en Op1.

MOV AL, 5 AND AL, FH OR AL, 0H NOT AL

Instrucciones

de Manipulacin de

Cadenas

MOVS CMPS SCAS LODS STOS

Mover cadenas Comparar cadenas Recorrer cadena Leer cadena Guardar cadena

OF DF IF TF SF ZF

AF

PF

CF

OF Overflow Flag DF Direction Flag IF Interruption Flag TF Trap Flag SF Sign Flag ZF Zero Flag AF Aux. Carry Flag PF Parity Flag CF Carry Flag

Registro de Banderas de 16 bits Procesador 8088

Instrucciones de Control de Programa


CALL Llamar a una subrutina RET Regresar de una subrutina JMP Salto JZ, JNZ Saltos condicionales LOOP Ciclo LOOPNE Ciclos condicionales INT Interrupcin

JMP etiqueta Provoca cambio en el flujo del programa sin considerar condicin alguna. La etiqueta especifica a partir de donde se continua la ejecucin del programa.

JZ / JNZ etiqueta

Transfiere el control de ejecucin si y solo si la bandera Zero Flag (ZF) se encuentra prendida / apagada.. La etiqueta especifica a partir de donde se continua la ejecucin del programa.

Si AX = 0 entonces AX = AX + 1 de otra forma AX = AX + 2 ADD AX, 0 JNZ SumaDos SumaDos: INC AX Fin: JMP Fin ADD AX, 2 ...

LOOP etiqueta Utilizada cuando se necesita ejecutar un conjunto de instrucciones varias veces. Brinca a la etiqueta siempre y cuando el valor de CX sea diferente de cero.

En cada LOOP: CX = CX 1, si CX <> 0 salta.

Ej: Realice un programa que sume los numeros enteros del 1 al 20. Almacene el resultado en DX.
MOV CX, 20 MOV AX, 0 MOV BX, 1 Suma: ADD AX, BX INC BX LOOP Suma MOV DX, AX

Instrucciones

de Control del Procesador


Limpiar bandera CF Limpiar bandera DF Limpiar Bandera IF Complementar CF Prender CF Prender DF Prender IF Detener el procesador (Alto)

CLC CLD CLI CMC STC STD STI HLT

Realice un programa que dado un nmero K, obtenga su nmero de Fibonacci. Almacene el resultado en DX. La sucesin de Fibonacci se define como la suma de los dos ltimos elementos de una serie que empieza con los nmeros 1, 1.

Ej: 1, 1, 2, 3, 5, 8, 13, ...

Formalmente se define de la siguiente manera:


F(1) = 1 F(2) = 1 F(K) = F(K-1) + F(K-2) Ej: F(5) = F(4) + F(3) = 3 + 2 = 5 F(4) = F(3) + F(2) = 2 + 1 = 3 F(3) = F(2) + F(1) = 1 + 1 = 2

MOV CX, K SUB CX, 1 JZ Uno SUB CX, 1 JNZ Otro Uno: MOV DX, 1 JMP Fin Otro: MOV AX, 1 MOV BX, 1 Serie: MOV DX, AX ADD AX, BX MOV BX, DX LOOP Serie Fin: MOV DX, AX ...

SHL Op1, Op2


Corrimiento lgico a la izquierda Recorre los bits de Op1 un nmero Op2 de posiciones a la izquierda. En cada corrimiento:

Agrega en el bit menos significativo un cero. El bit ms significativo pasa a la bandera CF.

MOV AX, 11001100B SHL AX, 1

AX = 10011000, CF = 1

Realice un programa que utilizando la instruccin SHL, multiplique por dos un nmero N, K veces.

Las entradas al programa sern:


el nmero N a multiplicar. el numero de veces K que se desea realizar la multiplicacin.

Pruebe su programa con N = 2, K = 3 (Resultado = 16).

Modos de Direccionamiento

Modos de Direccionamiento

Permiten interpretar los bits de una direccin para encontrar el valor de un operando. Modos:

Implcito Inmediato Directo Indirecto Registro Registro Indirecto Desplazamiento

No todas las computadoras utilizan todos los modos.

Direccionamiento

Implcito.

No necesita recibir la direccin del operando, esta se encuentra implcita en la operacin. Ej.:

MUL BX

Ventaja:

Acceso rpido.

Desventaja:

Conocer perfectamente la operacin.

Direccionamiento

Inmediato.

Recibe el operando y no la direccin de este. Ej.:

MOV AX, 4

Ventaja: no requiere memoria extra para traer el operando. Desventaja: Solo puede utilizar constantes.

Direccionamiento Directo.

Recibe la direccin en memoria del operando. Ej.: MOV AX, [10] Ventaja: Acceso rpido para variables globales. Desventajas: La instruccin siempre accesar la misma localidad de memoria. Solo puede cambiar el valor del operando pero no su direccin.

Direccionamiento Indirecto.

Recibe la direccin de la palabra en memoria (apuntador) que contiene la direccin del operando. Ej.:

MOV AX, [[10]]

Ventaja: La direccin en memoria puede apuntar a distintas localidades de memoria. Desventaja: La ejecucin de la instruccin requiere de dos referencias a memoria para traer el operando (una para obtener su direccin y la otra para obtener su valor).

Direccionamiento de Registro (directo). Similar al direccionamiento directo.

Recibe un registro en lugar de una direccin en memoria. Ej.:


MOV AX, BX

Ventaja:

No necesita referencias a memoria.

Desventaja:

Nmero limitado de registros en el CPU -> usar este direccionamiento para operandos muy utilizados.

Este es el modo de direccionamiento ms comn.

Direccionamiento de Registro Indirecto. Similar al direccionamiento indirecto.

Recibe un registro que contiene la direccin (apuntador) en memoria del operando. Ej.:
MOV AX, [BX]

Ventaja:

La direccin en el registro puede apuntar a distintas localidades de memoria (misma indirecta). Utiliza una referencia menos a memoria en comparcin con el direccionamiento inderecto.

Utilizado para apuntadores de uso frecuente.

Direccionamiento de Desplazamiento. Combina los modos de direccionamiento directo y de registro indirecto.

Se requiere que la direccin del operando sea calculada en base a una direccin fija ms otra direccin de desplazamiento.
Direccin = Fija + Desplazamiento.

Tanto la direccin fija como la de desplazamiento pueden ser referenciadas de manera directa o indirecta. La direccin fija puede estar mplicita en la instruccin. Relativo. Indexado. Base.

1. 2. 3.

Relativo. La direccin fija es el registro PC y se encuentra implcita en la instruccin. Ej.: MOVPC AX, BX (BX = 5, PC = 10) Indexado. La direccin fija referencia a la memoria. El desplazamiento contiene un nmero positivo para calcular la direccin del operando. Ventaja: Eficiente para operaciones ciclicas. Desventaja: dos accesos a memoria. Dos tipos principales:

Preindexado. Postindexado.

Preindexado (indexamiento previo) La direccin fija es sumada al desplazamiento. El resultado es usado como una direccin en memoria donde se encuentra la direccin del operando. Ej.:
MOV AX, [BX,CX]

Postindexado (indexamiento posterior) La direccin fija contiene la direccin en memoria que a su vez contiene la direccin a ser utilizada para obtener el operando. A la direccin obtenida a partir de la direccin fija se le suma el desplazamiento para obtener la direccin del operando. Ej.:
MOV AX, [BX]CX

PC = 100 AX = 20 BX = 4 CX = 5 DX = 2 DIV BX MOV AX, 10 MOV AX, [0] MOV AX, [[2]] MOV AX, BX MOV AX, [CX] MOVPC AX, DX MOV AX, [DX,BX] MOV AX, [BX]BX Implcito Inmediato Directo Indirecto Registro Registro Indirecto Relativo Preindexado Postindexado

0 1 2 3 4 5 6

7 100 100 20 105

. . .
100 101 102 103 104 105 18 100 17 15

PC = 100 AX = 20 BX = 5 CX = 4 DX = 100

0 1 2 3 4

5 100

100

. . .
100 101 102 103 104 5

Por cada tipo de direccionamiento escriba una instruccin de mquina que almacene en AX el valor 5. Utilice los siguientes valores en los registros de CPU y en la memoria principal. Asuma que estos nunca cambian.

Ciclos de Mquina

Ciclos de Mquina

La funcin de una computadora es ejecutar programas. La ejecucin de un programa consiste en ejecutar una secuencia de instrucciones de mquina. Cada instruccin de mquina esta a su vez compuesta de un conjunto de ciclos llamados ciclos de instrucciones. Cada uno de los ciclos de instrucciones esta compuesto de una serie de pasos conocidos como microoperaciones.

Programa

Ciclo de instruccin

. . . . . . . .

Ciclo de instruccin

Captacin Indirecto Ejecucin Interrupcin

Captacin Indirecto Ejecucin Interrupcin

Ciclo de Instruccin

Captacin

Interrupcin

Indirecto

Ejecucin

Ciclo de captacin (fetch).

Ocurre al inicio de cada ciclo de mquina. Produce que una instruccin de mquina sea trada de memoria principal. Pasos del ciclo:
Se asume que existe un reloj para sincronizar la ejecucin.

Tiempo 1:

Mover el contenido del PC al MAR. Mover el contenido de la direccin de memoria apuntado por el MAR al MDR. Incrementar el contenido del PC en uno. Mover el contenido del MDR al IR.

Tiempo 2:

Tiempo 3:

Microoperaciones del ciclo de captacin:

t1: t2: t3:

MAR MDR PC IR

PC Memoria PC + 1 MDR

Ciclo

Indirecto.

Obtiene los operandos indirectos de la instruccin de mquina. Objetivo es transformar un direccionamiento indirecto en uno directo. Microoperaciones del ciclo:

Se asume un formato de instruccin de una sola direccin. t1: MAR IR(direccin) t2: MDR Memoria t3: IR(direccin) MDR (direccin)

Ciclo de Interrupcin.

Puede ocurrir al finalizar el ciclo de ejecucin. Se ejecuta si alguna seal de interrupcin ha sido emitida. Objetivo: Guardar la siguiente direccin a ejecutarse. Pasar el control a la rutina de interrupcin. Microoperaciones del ciclo: t1: MDR PC t2: MAR Direccin almacenamiento PC Direccin rutina interrupcin t3: Memoria MDR

Ciclo de Ejecucin.

El nmero de microoperaciones a ejecutarse no es fijo como en los ciclos de captacin, indirecto e interrupcin. La cantidad de microoperaciones depende de la instruccin de mquina. Ejemplos:

ADD AX, [5]


t1: MAR t2: MDR t3: AX IR(5) Memoria AX + MDR

MOV AX, [100]


t1: MAR t2: MDR t3: AX IR(100) Memoria MDR

Diagrama de Flujo del Ciclo de Instruccin

Ejecucin

de una instruccin completa.

MUL 5

Ciclo de Captacin

t1: MAR t2: MDR PC t3: IR

PC Memoria PC + 1 MDR

Ciclo de Ejecucin

t4:

AX

AX * 5

SUB AX, [[10]] Ciclo de Captacin


t1: MAR t2: MDR PC t3: IR

PC Memoria PC + 1 MDR

Ciclo Indirecto
t4: MAR t5: MDR t6: IR(20) IR(10) Memoria MDR(20)

Ciclo de Ejecucin (SUB AX, [20])


t7: MAR t8: MDR t9: AX IR(20) Memoria AX - MDR

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy