ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085)...

25
ORGANIZACIÓN DE UNA ORGANIZACIÓN DE UNA COMPUTADORA Introducción Las computadoras se usan en diversas aplicaciones (i d ti fi i h i i t ) (industria, oficinas, hogares, ciencia, etc.) La primera computadora digital electrónica fue construida durante la segunda guerra mundial (1942) para resolver problemas científicos: ENIAC problemas científicos: ENIAC

Transcript of ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085)...

Page 1: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA COMPUTADORA

Introducción

• Las computadoras se usan en diversas aplicaciones (i d t i fi i h i i t )(industria, oficinas, hogares, ciencia, etc.)

• La primera computadora digital electrónica fue construida durante la segunda guerra mundial (1942) para resolver problemas científicos: ENIACproblemas científicos: ENIAC

Page 2: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Caracteristicas de la ENIAC (primera generación)

• 300 multiplicaciones por segundo y 5000 sumas300 multiplicaciones por segundo y 5000 sumas• 18000 tubos de vacío • Ocupaba 1800 sq feets (~200 m2)• Problemas: - Costo (~600000 dólares),

T ñ- Tamaño, - Potencia y refrigeración- Confiabilidad (alta frecuencia de fallos)

E t f l i d l d ió l• Esto se fue solucionando en la segunda generación con el transistor, y luego con los circuitos integrados y el aumento en la densidad de integración.

Page 3: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

• En 1945 Von Neumann introdujo la idea de programa almacenado.

• Para lograr funciones especificas, los chips eran muy caros.

• Para cada cambio en las condiciones del sistema se necesitaba prácticamente un nuevo diseño.

• La solución para esto fue diseñar un circuito que pueda realizar muchas p q pfunciones distintas, según la combinación de unos y ceros (código) que tenga en determinados terminales.

Ejemplo: sumar dos números, compararlos, almacenarlos, etc.

código de operación

Entradas

Salidas

• El valor codificado indica que se debe hacer (instrucción).

• Según sean las instrucciones que se le pida y el orden de estas, el circuito g q p y ,realizará distintas tareas.

• Esto es esencialmente, lo que hace un microprocesador.

Page 4: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

• En 1971 Intel introdujo el primer microprocesador (de 4-bits): el 4004

• 1972 Intel crea el 8008 Primer µP de 8-bits

• 1974-77 aparecen otros µP de 8 bits de otras compañías: Motorola (6800), Zilog (Z80) e Intel (8085)

• 1978-79 aparecen los µP de 16 bits 8086 y el 68000

• En los ‘80 siguen apareciendo µP con mejor performace y aparece el 1° Risc

• En los ‘90 Intel introduce el Pentium y en 1999 el Pentium III a 500 Mhz.

• 2003 Intel comercializa el Pentium IV a 3 2 Ghz• 2003 Intel comercializa el Pentium IV a 3.2 Ghz.

• En cuanto a la tecnología usada es principalmente del tipo CMOS, la densidad de integración crece 50% por año y la frecuencia del clock ha crecido desde ~1 Mhz alintegración crece 50% por año y la frecuencia del clock ha crecido desde 1 Mhz al comienzo a varios Ghz actualmente.

• Un µP esta compuesto por elementos estudiados en cursos anteriores: registros, contadores, ALU, etc. (hardware)contadores, ALU, etc. (hardware)

• Software es el conjunto de instrucciones (programa) que se le da al µP para ejecutar.

• Un µP solo “entiende” un conjunto determinado de instrucciones las cuales llegan• Un µP solo entiende un conjunto determinado de instrucciones, las cuales llegan al él para ser ejecutadas, a través de unos y ceros.

• Este lenguaje de unos y ceros es el llamado lenguaje de máquina

Page 5: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Existe un lenguaje mas fácil de comprender llamado AssemblerEjemplo: La instrucción encargada de sumarle uno a un registro del µP

(en este caso el registro A):Lenguaje de máquina Assembler

00010110 INC A

Cada µP tiene su assembler particular, que en algunos casos es compatible con µ p , q g potros procesadores.

Los lenguajes superiores como C, Pascal ó Basic no dependen del µP donde se ejecuten, mientras que el assembler sí.

Existen programas que “traducen” los lenguajes superiores a assembler o lenguaje de máquina para un dado P. Estos son los llamados compiladores:

Lenguaje superior (Ej. C) general

Assembler

específico del P

Lenguaje de máquina

Page 6: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

UNIDAD DE COMPUTO

Vamos a llamar unidad de cómputo a un sistema que tiene la capacidad de poder realizar por sí solo una determinada tarea consistente en:realizar por sí solo una determinada tarea, consistente en:

- recibir información (del exterior), - procesarla, - tomar decisiones ytomar decisiones, y - brindar información o dar órdenes (al exterior).

Estructura básica:

Mem. de

Progr.

Mem. de

Datos

Unidad de E t d S lidControlEntrada

Salida

ALU

Page 7: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Elementos básicos de una computadora

P

ArithmeticL iLogicUnit

MemoriasInput/Output

Registers

Memorias

(programa, datos etc )

Input/Output

(comunicacióncon el exterior) datos, etc.)

Control

Clock

Page 8: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Elementos básicos: descripción de cada bloque

BLOQUE DE LA UNIDAD ARITMÉTICO LÓGICA (ALU)Es el área del µP donde se realizan todas las operaciones aritméticas y lógicas• Es el área del µP donde se realizan todas las operaciones aritméticas y lógicas.

• Puede realizar muchas operaciones que se seleccionan mediante líneas de entrada manejadas por el área de control del µP• Los operandos y los datos resultantes se almacenan en registros o en memoria.p y g• El número de bits con que opera una ALU varía con el µP, existiendo de 4, 8, 16, 32 y 64 bits.

BLOQUE DE REGISTROSBLOQUE DE REGISTROS• Son elementos que almacenan datos en forma temporaria.• Son flip-flops o registros de un bit agrupados de a 8, 16, 32 ó 64 bits dependiendo del procesadordel procesador.• Existen registros especiales (para tareas específicas) y registros de uso general.• Se usan en general como paso de los datos entre la CPU y la memoria y entre la CPU y los dispositivos de entrada-salida. • Almacenan por ejemplo: los datos que se quieren operar en la ALU, la dirección de la próxima instrucción, la dirección de memoria donde está un dato especifico, etc.• No todos los registros del microprocesador son accesibles para el programador.

Page 9: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

RELOJ (CLOCK)• Los microprocesadores son, en general, circuitos secuenciales sincrónicos.p , g ,• El clock es el encargado de fijar la señal que con la cual se sincronizarán todas las tareas de la unidad de cómputo.• La frecuencia del clock debe ser lo mas estable posible y normalmente queda determinada por un cristaldeterminada por un cristal.• Casi todos los nuevos procesadores tienen el circuito oscilador dentro del chip y solo se debe colocar externamente el cristal.

BUSESLas distintas partes se vinculan entre si por líneas eléctricas que solo pueden tener 2 estados (digitales). ( g )Estas líneas forman parte de alguno de los siguientes grupos:

Bus de datos Tiene código de instrucciones o datos

Bus de direcciones Tiene la dirección desde donde se quiere lee o escribir

Bus de control Es el responsable de llevar las señales que controlan y sincronizan la unidad de cómputo

Page 10: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

BLOQUE DE CONTROL• Es el encargado de controlar el flujo de información de datos entre las distintas partes de la unidad de cómputo.• Interpreta que tarea debe realizar el µP cuando llega una nueva instrucción y orquesta las señales de control necesarias para realizarla.• Manda a leer o escribir datos de la memoria o de los dispositivos de entrada/salidaManda a leer o escribir datos de la memoria o de los dispositivos de entrada/salida haciendo uso de las señales del bus de control, habilitando algunos bloques e inhibiendo otros.• Selecciona que dirección se debe colocar en el bus de direcciones.

Memoriaprog.

Memoriadatos Entrada. Salidap g

µPDatos

Direcciones

Control

Page 11: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Instrucciones de un P

Algunas de las instrucciones típicas de los µP son:

I t l t id d i t d l P• Incrementar en uno el contenido de un registro del µP• Sumar el contenido de dos registros del µP• Cargar el valor que tiene un periférico de entrada en un registro del µP• Sacar por un periférico de salida el contenido de un registro del µPp p g µ

¿Como sumaria dos valores que llegan por un periférico de entrada?

El hardware indispensable para ejecutar un programa sería el µP y la memoria.

Ejemplo: si queremos sumar los 10 primeros números ( 1 + 2+3...+10 )j p q p ( )teniendo ademas dos instrucciones, una que borre un registro y otra que sume uno a ese registro.

El problema es que no se ve el resultado (es necesario un dispositivo de salida).

Si queremos sumar los N primeros números naturales es necesario una entrada, para saber N.

Page 12: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

• Cuando alimentamos el P este pone siempre la misma dirección para leer la

Como se ejecuta la primer instrucción • Cuando alimentamos el P este pone siempre la misma dirección para leer la primer instrucción (por ejemplo 0000h).

• Lee lo que hay en el bus de datos y lo guarda en un registro especial llamado registro de instrucciónregistro de instrucción.

• Luego decodifica la instrucción y pasa a ejecutar la operación solicitada.

Todo este proceso se llama opcode fetch (búsqueda del código de operación)Todo este proceso se llama opcode fetch (búsqueda del código de operación)

¿Qué pasa si no hay nada en esa dirección?

U i t ió d t d l b l ió tUna instrucción puede tener mas de una palabra, pero la operación ya esta especificada en la primer palabra.

“Incrementar un registro interno” ( INR B ) no necesita mas que una palabraIncrementar un registro interno ( INR B ) no necesita mas que una palabra.La instrucción en lenguaje de máquina (para un procesador de 8 bits) podría ser:

00000100 04h

U i t ió i il l i t AUna instrucción similar pero para el registro A es:Asembler: INR ALenguaje de máquina: 00111100

Page 13: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Instrucciones de transferencia: MVI

“cargar el registro A (8 bits) con un número de 8 bits”

Ejemplo de una instrucción donde se necesita mas de una palabra podría ser:

g g ( )

Esta instrucción tiene dos palabras, la primera (opcode) indica que se va a cargar el registro A del µP con un número de 8 bits, la segunda palabra dice de que número se tratanúmero se trata.

Simbólicamente: A 4Bh

La instrucción en assembler es: MVI A,4Bh

En lenguaje de máquina es: 00111110 = 3Eh01001011 = 4Bh

Page 14: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Instrucciones de transferencia: LDA

“cargar el acumulador con un dato que está en una dirección determinada”

C d P ti ú d t i d d lí d di i lCada P tiene un número determinado de líneas de direcciones, por lo tanto tiene la posibilidad de “direccionar” 2n posiciones:

8 bits 28 256 posiciones16 bit 216 65536 (64K) i i16 bits 216 65536 (64K) posiciones32 bits 232 4 Giga posiciones

Vamos a trabajar suponiendo un P de 8 bits de datos y 16 bits de direcciones.j p y

Para cargar el registro A con lo que hay en una dirección cualquiera (de 16 bits) por ejemplo:por ejemplo:

163Fh = 0001 0110 0011 1111En assembler:

LDA dirección

¿Cuántas palabras de código son necesarias?

Page 15: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Instrucciones de transferencia: LDA

LDA dirección

El primer byte indica el tipo de operación (opcode), que en este caso le dice que hay que cargar al reg. A el valor que está en una dirección, la cual viene en los próximos 2 bytes.

El siguiente byte indica los primeros 8 bits de la dirección donde está el dato y elEl siguiente byte indica los primeros 8 bits de la dirección donde está el dato y el tercero la parte restante.

En lenguaje de máquina: 00111010 = 3Ah (opcode)00010110 16h ( t b j di )00010110 = 16h (parte baja dir.)00111111 = 3Fh (parte alta dir.)

El assembler será: LDA 163Fh A (163Fh)( )

¿Que paso con el valor que tenía A?

Page 16: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Instrucciones de transferencia: STA

“transferir lo que está en el registro A en una dirección cualquiera” (por ejemplo la 3B01h = 0011 1011 0000 0001 )

Si bóli t (3B01h) ASimbólicamente: (3B01h) A

Aquí se escribe en la dirección 3B01 (de la RAM) el valor del registro A.

En asembler sería: STA dirección

STA 3B01h

En binario: 00110010 = 32h (opcode)00111011 = 3Bh00000001 = 01h

Page 17: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Instrucciones de transferencia: MOV

Otro tipo de instrucción es move que consiste en “copiar el contenido de un registro en otro”:

MOV B,C B C

La instrucción tendría un solo byte (el opcode) con el siguiente formato:

01DDDSSS01DDDSSS

donde SSS es la fuente y DDD es el destino. Sería:

01 000 001 41h01 000 001 = 41h

Para hacer la asignación en sentido contrario,

MOV C, B C B

01 001 000 = 48h

Page 18: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Otras instrucciones: ADD“ 2 i t i t ” A A C“sumar 2 registros internos” A A + C

El asembler es: ADD C

En binario: 10000001 = 81hEn binario: 10000001 = 81h

Y en este caso de nuevo basta con una sola palabra.

Hay 4 registros internos en este P que se los identificará con el siguiente código:

A 111 C 001B 000 D 010B 000 D 010

En la instrucción anterior los tres últimos bits del opcode indican que registro se suma al A (dado que A siempre es uno de los sumandos).

Para sumar A + B el código sería:

Assembler: ADD BBinario: 10000000 = 80ha o 0000000 80

¿como multiplicaría 2xA?

Page 19: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Arquitecturas

DIR

De buses independientes:

MEM

MEM.DATOSDIR

DIR

DATOS

MEM. DE PROG

ENTR.

DIRDATOS

DATOSµP

SAL.

DIR

DATOS

Este esquema no se usa ya que necesita muchas conexiones.

Page 20: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

ArquitecturasCon memoria de programa (instrucciones) y memoria de datos independientes (tipo Harvard):

DIR

MEM.

MEM.DATOSDIR

DATOS

DE PROG.

ENTR.

DATOS

µP

SAL.

Tiene algunas aplicaciones (PICs).

Page 21: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

ArquitecturasCon memoria de programa y de datos común (tipo von Neumann):

DIRMEM. DE PROG

DATOS

µP MEM.DATOS

Ejercicio:

Veamos con un poco de detalle el µP por dentro y como se ejecutan las siguientes

ENTR.

ejecutan las siguientes instrucciones:

INC BMOV A,B

SAL.

LDA dirSTA dirMVI A,datoADD B

Esta es la arquitectura mas frecuente y con la que vamos a trabajar.

Page 22: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Instrucciones de salto: JMP• En general las instrucciones que debe ejecutar un µP no ocupan lugares• En general las instrucciones que debe ejecutar un µP no ocupan lugares consecutivos en la memoria de programa.• Existen instrucciones de salto que hacen que la próxima instrucción a ejecutar este en cualquier lugar de la memoria.• Hay dos tipos de instrucciones de salto:

Salto incondicionalSalto condicional

Instrucciones de salto incondicional: No se debe cumplir ninguna condición para que se ejecute el salto.

Si queremos seguir nuestro programa en la dirección 0100h.La instrucción en asembler será:

JMP diJMP dir

donde dir esta formada por dos bytes.

E l j d á i 11000011 C3h ( d )En lenguaje de máquina: 11000011 = C3h (opcode)00000001 = 00h (dir parte baja)00000000 = 01h (dir parte alta)

Page 23: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Instrucciones de salto condicional: JZ y JNZ

Son aquellas donde la dirección de la próxima instrucción depende del resultado de la ultima operación de la ALU.

Ejemplos:Ejemplos:

“saltar si dió cero”

En asembler: JZ dir

En lenguaje de máquina: 11001011 = CBh (opcode)dir_L (parte baja de dir)dir_H (parte alta de dir)

Esta instrucción salta a la dirección dir si la última operación realizada por la ALU dió cero, caso contrario ejecuta la instrucción que está en PC+3.

Otra instrucción de este tipo es la siguiente:

JNZ dir

Aquí el salto se produce si la última operación fue distinta de cero, en caso contrario sigue en PC+3.

Page 24: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Resumen de las instrucciones vistasASSEMBLER HEXADECIMAL OPERACIÓN

INC B 04 B B+1 INC A 3C A A+1 (*)MVI A,dato 3E,dato A datoMVI A,dato 3E,dato A datoMVI B,dato 06,dato B datoLDA dir 3A,dir A (dir) STA dir 32,dir (dir) A ADD B 80 AA+B (*)ADD B 80 A A B ( )ADD C 81 A A+C (*)MOV B,C 41 B CMOV C,B 48 C B MOV A,B 78 A BMOV A,B 78 A B MOV B,A 47 B A DEC A 05 A A-1 (*)JMP dir C3,dir PC dirJZ dir CB,dir PC dir si Z=1, PC PC+3 si Z=0JZ dir CB,dir PC dir si Z 1, PC PC 3 si Z 0JNZ dir C2,dir PC dir si Z=0, PC PC+3 si Z=1

Nota1: dato tiene una longitud de 8 bits y dir de 16 bitsNota2: las instrucciones con (*) modifican el estado del flag Z. Si el resultado de la última operación con

la ALU fue cero => Z=1 y si el resultado de la última operación con ALU fue distinto de cero => Z=0.

Page 25: ORGANIZACIÓN DE UNAORGANIZACIÓN DE UNA …pmp/archivos/teoria3y4_bol2.pdf · (Z80) e Intel (8085) ... específico del P Lenguaje de máquina. UNIDAD DE COMPUTO ... (búsqueda del

Detalle de un P con Memoria, E/S y decodificación