organizacion de la unidad central de procesamiento

53
Organización de la unidad central de procesamiento (CPU) Organización Computacional TC 1004

Upload: harold-torres

Post on 26-Jul-2015

724 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Organizacion de la unidad central de procesamiento

Organización de la unidad central de

procesamiento (CPU)

Organización Computacional

TC 1004

Page 2: Organizacion de la unidad central de procesamiento

Unidad Central de Proceso (CPU)

Page 3: Organizacion de la unidad central de procesamiento

Función: ejecutar secuencias de instrucciones.

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

Programación computadora. Preparar secuencia de instrucciones (conjunto de

instrucciones). Almacenar datos (memoria). Instruir al CPU para que inicie la ejecución.

Page 4: Organizacion de la unidad central de procesamiento
Page 5: Organizacion de la unidad central de procesamiento

Unidad Arimética y Lógica (ALU)

Realiza cálculos: Aritméticos.

Suma, Resta, Multiplicación y División. Lógicos (comparaciones).

AND, OR, NOT.

Utiliza banderas (signo, overflow, etc.).

Unidad de Control, Registros y E/S llevan datos.

Page 6: Organizacion de la unidad central de procesamiento

Unidad de Control (UC) Ejecución de una instrucción = conjunto de ciclos:

Captación (fetch): obtener instrucción de la memoria. Indirecto: obtener operandos. Ejecución. Interrupción: instrucciones que requieren atención urgente.

Ciclos compuestos de microoperaciones.

Utiliza los registros de Control y Estado.

Page 7: Organizacion de la unidad central de procesamiento

Registros

Almacenamiento temporal interno del CPU. Acceso de alta velocidad. Localización de la última instrucción. Almacenar instrucciones y datos mientras se ejecuta

alguna instrucción.

Dos tipos: Disponibles al usuario. Control y Estado (UC).

Page 8: Organizacion de la unidad central de procesamiento

Disponibles al usuario:

Propósito General. AX, BX, CX, DX (H/L).

Registros de Datos.

Registros de Dirección. Propósito general.

SI y DI. Direccionamiento.

SP, BP, CS, DS, ES, SS, IP.

Banderas (códigos de condición). Control: control CPU. Estado: estado de resultados de operaciones

aritméticas y lógicas.

Page 9: Organizacion de la unidad central de procesamiento

Control y Estado.

Contador de Programa (PC): dirección de la instrucción a ser buscada (siguiente).

Registro de Instrucción (IR): instrucción reciente.

Registro de Dirección de Memoria (MAR): dirección de la localidad de memoria.

Registro de Dato de Memoria (MDR): palabra de memoria mas reciente.

Palabra de Estado de Programa (PSW): códigos de condición e información de estado. Signo, cero, acarreo, igual, overflow, etc.

Page 10: Organizacion de la unidad central de procesamiento

Instrucciones de Máquina

Page 11: Organizacion de la unidad central de procesamiento

Instrucciones de Máquina Determinan la operación del CPU. Existe una gran variedad que varian en función: conjunto de

instrucciones.

Elementos de una instrucción de máquina: Cada instrucción contiene la información requerida por el CPU

para ser ejecutada.1. Código de operación: Ej: ADD, SUB, MOV.2. Referencia de Operando Fuente: Dirección de los operandos

requeridos por la instrucción.3. Referencia de Operando Resultante: Dir. guardar resultado.4. Referencia de Siguiente Instrucción.: Dir. sig. instrucción.

Page 12: Organizacion de la unidad central de procesamiento

Representación de Instrucciones.

Secuencia de bits.

Mnemonicos. Representación simbólica de una instrucción de máquina. Abreviaciones que indican la operación. Ej: ADD, JMP, LOAD.

Dividida en campos.

La estructura de una instrucción es conocida como: formato de instrucción.Op. Code Operand Ref Operand Ref

Page 13: Organizacion de la unidad central de procesamiento

Diseño del Conjunto de Instrucciones.

Complejo y Debatido.

1. Tipos de datos:1. Direcciones.2. Números.3. Caracteres.4. Lógicos.

2. Formato de la instrucción: 1. Longitud, # campos, tipo de direccionamiento.

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

4. Direccionamiento: 1. Modo(s) de especificar la dirección de un operando.

Page 14: Organizacion de la unidad central de procesamiento

5. Repertorio de operaciones.

1. Transferencia de datos.

2. Aritméticas.

3. Manipulación de bits (lógica).

4. Control de programa.

5. Manipulación de cadenas (strings).

6. Control del CPU.

6. Número de direcciones de las instrucciones:– Cero – HLT.– Una – DIV BX– Dos – MOV AL, 1

Page 15: Organizacion de la unidad central de procesamiento

Instrucciones de Transferencia de Datos

MOV Mover PUSH, POP Operaciones en Stack XCHG Intercambiar IN, OUT Puertos entrada/salida

MOV destino, fuente Transfiere datos entre registros y memoria. Destino: registro o localidad de memoria. Fuente: registro, dirección memoria o número.

MOV AX, 10 MOV BX, DX

Page 16: Organizacion de la unidad central de procesamiento

Instrucciones Aritméticas

ADD / SUB Suma / Resta INC / DEC Incremento / Decremento NEG Complemento a dos MUL / DIV Multiplicación / División

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

Page 17: Organizacion de la unidad central de procesamiento

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 Multiplicación / División de AX por / entre Op. Resultado almacenado en AX.

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

Page 18: Organizacion de la unidad central de procesamiento

Instrucciones Lógicas

AND AND OR OR Inclusivo NOT 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

Page 19: Organizacion de la unidad central de procesamiento

Instrucciones de Manipulación de

Cadenas

MOVS Mover cadenas CMPS Comparar cadenas SCAS Recorrer cadena LODS Leer cadena STOS Guardar cadena

Page 20: Organizacion de la unidad central de procesamiento

OF DF IF TF SF ZF AF PF CF

OF – Overflow FlagDF – Direction FlagIF – Interruption FlagTF – Trap FlagSF – Sign FlagZF – Zero FlagAF – Aux. Carry FlagPF – Parity FlagCF – Carry Flag

Registro de Banderas de 16 bitsProcesador 8088

Page 21: Organizacion de la unidad central de procesamiento

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 Interrupción

JMP etiqueta Provoca cambio en el flujo del programa sin considerar

condición alguna. La etiqueta especifica a partir de donde se continua la

ejecución del programa.

Page 22: Organizacion de la unidad central de procesamiento

JZ / JNZ etiqueta Transfiere el control de ejecución si y solo si la

bandera “Zero Flag (ZF)” se encuentra prendida / apagada..

La etiqueta especifica a partir de donde se continua la ejecución del programa.Si AX = 0 entonces AX = AX + 1 de otra forma AX = AX + 2

ADD AX, 0JNZ SumaDosINC AXJMP FinADD AX, 2 ...

SumaDos:

Fin:

Page 23: Organizacion de la unidad central de procesamiento

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

ADD AX, BX

INC BX

LOOP Suma

MOV DX, AX

Suma:

Page 24: Organizacion de la unidad central de procesamiento

Instrucciones de Control del Procesador CLC Limpiar bandera CF CLD Limpiar bandera DF CLI Limpiar Bandera IF CMC Complementar CF STC Prender CF STD Prender DF STI Prender IF HLT Detener el procesador (Alto)

Page 25: Organizacion de la unidad central de procesamiento

Realice un programa que dado un número K, obtenga su número de Fibonacci. Almacene el resultado en DX. La sucesión de Fibonacci se define como la suma de

los dos últimos elementos de una serie que empieza con los números 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

Page 26: Organizacion de la unidad central de procesamiento

MOV CX, K

SUB CX, 1

JZ Uno

SUB CX, 1

JNZ Otro

MOV DX, 1

JMP Fin

MOV AX, 1

MOV BX, 1

MOV DX, AX

ADD AX, BX

MOV BX, DX

LOOP Serie

MOV DX, AX

...

Uno:

Otro:

Serie:

Fin:

Page 27: Organizacion de la unidad central de procesamiento

SHL Op1, Op2 Corrimiento lógico a la izquierda Recorre los bits de Op1 un número Op2 de

posiciones a la izquierda. En cada corrimiento:

Agrega en el bit menos significativo un cero. El bit más significativo pasa a la bandera CF.

MOV AX, 11001100B

SHL AX, 1 AX = 10011000, CF = 1

Page 28: Organizacion de la unidad central de procesamiento

Realice un programa que utilizando la instrucción SHL, multiplique por dos un número N, K veces. Las entradas al programa serán:

el número N a multiplicar. el numero de veces K que se desea realizar la multiplicación.

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

Page 29: Organizacion de la unidad central de procesamiento

Modos de Direccionamiento

Page 30: Organizacion de la unidad central de procesamiento

Modos de Direccionamiento Permiten interpretar los bits de una dirección para encontrar el

valor de un operando.

Modos: Implícito Inmediato Directo Indirecto Registro Registro Indirecto Desplazamiento

No todas las computadoras utilizan todos los modos.

Page 31: Organizacion de la unidad central de procesamiento

Direccionamiento Implícito. No necesita recibir la dirección del operando,

esta se encuentra implícita en la operación.

Ej.:MUL BX

Ventaja: Acceso rápido.

Desventaja: Conocer perfectamente la operación.

Page 32: Organizacion de la unidad central de procesamiento

Direccionamiento Inmediato. Recibe el operando y no la dirección de este.

Ej.:MOV AX, 4

Ventaja: no requiere memoria extra para traer el operando.

Desventaja: Solo puede utilizar constantes.

Page 33: Organizacion de la unidad central de procesamiento

Direccionamiento Directo. Recibe la dirección en memoria del operando.

Ej.:MOV AX, [10]

Ventaja: Acceso rápido para variables globales.

Desventajas: La instrucción siempre accesará la misma localidad de

memoria. Solo puede cambiar el valor del operando pero no su

dirección.

Page 34: Organizacion de la unidad central de procesamiento

Direccionamiento Indirecto. Recibe la dirección de la palabra en memoria

(apuntador) que contiene la dirección del operando.

Ej.:MOV AX, [[10]]

Ventaja: La dirección en memoria puede apuntar a distintas

localidades de memoria.

Desventaja: La ejecución de la instrucción requiere de dos

referencias a memoria para traer el operando (una para obtener su dirección y la otra para obtener su valor).

Page 35: Organizacion de la unidad central de procesamiento

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

Recibe un registro en lugar de una dirección en memoria.

Ej.:MOV AX, BX

Ventaja: No necesita referencias a memoria.

Desventaja: Número limitado de registros en el CPU -> usar este

direccionamiento para operandos muy utilizados.

Este es el modo de direccionamiento más común.

Page 36: Organizacion de la unidad central de procesamiento

Direccionamiento de Registro Indirecto. Similar al direccionamiento indirecto.

Recibe un registro que contiene la dirección (apuntador) en memoria del operando.

Ej.: MOV AX, [BX]

Ventaja: La dirección en el registro puede apuntar a distintas localidades

de memoria (misma indirecta). Utiliza una referencia menos a memoria en comparción con el

direccionamiento inderecto.

Utilizado para apuntadores de uso frecuente.

Page 37: Organizacion de la unidad central de procesamiento

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

registro indirecto.

Se requiere que la dirección del operando sea calculada en base a una dirección fija más otra dirección de desplazamiento.

Dirección = Fija + Desplazamiento.

Tanto la dirección fija como la de desplazamiento pueden ser referenciadas de manera directa o indirecta.

La dirección fija puede estar ímplicita en la instrucción.1. Relativo.2. Indexado.3. Base.

Page 38: Organizacion de la unidad central de procesamiento

Relativo. La dirección fija es el registro PC y se encuentra

implícita en la instrucción. Ej.:

MOVPC AX, BX (BX = 5, PC = 10)

Indexado. La dirección fija referencia a la memoria. El desplazamiento contiene un número positivo para

calcular la dirección del operando. Ventaja: Eficiente para operaciones ciclicas. Desventaja: dos accesos a memoria. Dos tipos principales:

Preindexado. Postindexado.

Page 39: Organizacion de la unidad central de procesamiento

Preindexado (indexamiento previo) La dirección fija es sumada al desplazamiento. El resultado es usado como una dirección en

memoria donde se encuentra la dirección del operando.

Ej.: MOV AX, [BX,CX]

Postindexado (indexamiento posterior) La dirección fija contiene la dirección en memoria

que a su vez contiene la dirección a ser utilizada para obtener el operando.

A la dirección obtenida a partir de la dirección fija se le suma el desplazamiento para obtener la dirección del operando.

Ej.:MOV AX, [BX]CX

Page 40: Organizacion de la unidad central de procesamiento

701

10023

1004205

1056

18100101

100102103

1710415105

.

.

.

PC = 100

AX = 20BX = 4CX = 5DX = 2

DIV BX ImplícitoMOV AX, 10 InmediatoMOV AX, [0] DirectoMOV AX, [[2]] IndirectoMOV AX, BX RegistroMOV AX, [CX] Registro IndirectoMOVPC AX, DX RelativoMOV AX, [DX,BX] PreindexadoMOV AX, [BX]BX Postindexado

Page 41: Organizacion de la unidad central de procesamiento

0

1

2

3

4

100

101

102

103

104

5

100

100

5

5

.

.

.

PC = 100

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

Por cada tipo de direccionamiento escriba unainstrucción de máquina que almacene en AXel valor 5.

Utilice los siguientes valores en losregistros de CPU y en la memoria principal.Asuma que estos nunca cambian.

Page 42: Organizacion de la unidad central de procesamiento

Ciclos de Máquina

Page 43: Organizacion de la unidad central de procesamiento

Ciclos de Máquina

La función de una computadora es ejecutar programas.

La ejecución de un programa consiste en ejecutar una secuencia de instrucciones de máquina.

Cada instrucción de máquina 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.

Page 44: Organizacion de la unidad central de procesamiento

Programa

Ciclo de instrucción

Interrupción

Ejecución

Indirecto

Captación

Ciclo de instrucción

Interrupción

Ejecución

Indirecto

Captación

. . . . . . . .

Page 45: Organizacion de la unidad central de procesamiento

Interrupción

Ejecución

Captación

Indirecto

Ciclo de Instrucción

Page 46: Organizacion de la unidad central de procesamiento

Ciclo de captación (fetch). Ocurre al inicio de cada ciclo de máquina.

Produce que una instrucción de máquina sea traída de memoria principal.

Pasos del ciclo:Se asume que existe un reloj para sincronizar la ejecución.

Tiempo 1: Mover el contenido del PC al MAR.

Tiempo 2: Mover el contenido de la dirección de memoria apuntado por

el MAR al MDR. Incrementar el contenido del PC en uno.

Tiempo 3: Mover el contenido del MDR al IR.

Page 47: Organizacion de la unidad central de procesamiento

Microoperaciones del ciclo de captación:t1: MAR PC

t2: MDR Memoria

PC PC + 1

t3: IR MDR

Page 48: Organizacion de la unidad central de procesamiento

Ciclo Indirecto. Obtiene los operandos indirectos de la

instrucción de máquina.

Objetivo es transformar un direccionamiento indirecto en uno directo.

Microoperaciones del ciclo: Se asume un formato de instrucción de una sola

dirección.

t1: MAR IR(dirección)t2: MDR Memoriat3: IR(dirección) MDR

(dirección)

Page 49: Organizacion de la unidad central de procesamiento

Ciclo de Interrupción. Puede ocurrir al finalizar el ciclo de ejecución.

Se ejecuta si alguna señal de interrupción ha sido emitida.

Objetivo: Guardar la siguiente dirección a ejecutarse. Pasar el control a la rutina de interrupción.

Microoperaciones del ciclo:t1: MDR PCt2: MAR Dirección

almacenamiento PC Dirección rutina

interrupciónt3: Memoria MDR

Page 50: Organizacion de la unidad central de procesamiento

Ciclo de Ejecución. El número de microoperaciones a ejecutarse no es fijo como

en los ciclos de captación, indirecto e interrupción.

La cantidad de microoperaciones depende de la instrucción de máquina.

Ejemplos: ADD AX, [5]

t1: MAR IR(5)t2: MDR Memoriat3: AX AX + MDR

MOV AX, [100]t1: MAR IR(100)t2: MDR Memoriat3: AX MDR

Page 51: Organizacion de la unidad central de procesamiento

Diagrama de Flujo del Ciclo de Instrucción

Page 52: Organizacion de la unidad central de procesamiento

Ejecución de una instrucción completa.MUL 5

Ciclo de Captaciónt1:MAR PC

t2:MDR Memoria

PC PC + 1

t3:IR MDR

Ciclo de Ejecuciónt4:AX AX * 5

Page 53: Organizacion de la unidad central de procesamiento

SUB AX, [[10]] Ciclo de Captación

t1: MAR PCt2: MDR Memoria PC PC + 1t3: IR MDR

Ciclo Indirectot4: MAR IR(10)t5: MDR Memoriat6: IR(20) MDR(20)

Ciclo de Ejecución (SUB AX, [20])t7: MAR IR(20)t8: MDR Memoriat9: AX AX - MDR