46
MICROPROCESADORES Clase 02 Arquitectura del 8086 Edgard Oporto [email protected] Villa El Salvador, octubre de 2012 Universidad Nacional Tecnológica del Cono Sur de Lima Carrera Profesional de Ingeniería Electrónica y Telecomunicaciones

Microprocesadores - Clase 02 - Arquitectura Del 8086

Embed Size (px)

Citation preview

Page 1: Microprocesadores - Clase 02 - Arquitectura Del 8086

MICROPROCESADORES

Clase 02Arquitectura del 8086

Edgard [email protected]

Villa El Salvador, octubre de 2012

Universidad Nacional Tecnológica del Cono Sur de Lima

Carrera Profesional de Ingeniería Electrónica y Telecomunicaciones

Page 2: Microprocesadores - Clase 02 - Arquitectura Del 8086

2

Arquitectura del 8086

Internamente consta de dos unidades:

BIU Bus Interface Unit - Unidad de interface de bus

EU Execution Unit - Unidad de ejecución

Page 3: Microprocesadores - Clase 02 - Arquitectura Del 8086

3

Arquitectura del 8086

BIU Bus Interface UnitConecta el procesador con los buses externos.

• Transfiere datos a memoria o E/S• Recibe datos de memoria o E/S

• Lee instrucciones de memoria

• Contiene una COLA (QUEUE) de instrucciones• Genera direcciones físicas de memoria o E/S

Page 4: Microprocesadores - Clase 02 - Arquitectura Del 8086

4

Arquitectura del 8086

EU Execution Unit

* Recibe instrucciones de la cola (BIU)* Recibe datos de la BIU

* Decodifica las instrucciones Genera señales de control necesarias* Ejecuta las instrucciones

* Almacena los resultados en los registros* Pasa datos al BIU para almacenarlos en

memoria o E/S

* No tiene conexión a los buses del sistema. Lo hace a través del BIU

Page 5: Microprocesadores - Clase 02 - Arquitectura Del 8086

5

Arquitectura del 8086

El 8086 tiene 2 procesadores internos

EU

Unidad de ejecución

BIU Unidad de interfaz

con el Bus

Page 6: Microprocesadores - Clase 02 - Arquitectura Del 8086

6

Page 7: Microprocesadores - Clase 02 - Arquitectura Del 8086

7

Arquitectura del 8086

EURealiza

operaciones aritméticas y

lógicas

Proporciona direcciones lógicas

a la BIU

Contiene una ALU de 16 bits

Contiene registros de propósito general y los

FLAGS.

Page 8: Microprocesadores - Clase 02 - Arquitectura Del 8086

8

Arquitectura del 8086

BIUSe encarga de la

comunicación externa del procesador

Convierte direcciones lógicas

a físicas

Para ello emplea los registros de

segmento

Page 9: Microprocesadores - Clase 02 - Arquitectura Del 8086

9

Arquitectura del 8086

Internamente consta de dos unidades o procesadores

Page 10: Microprocesadores - Clase 02 - Arquitectura Del 8086

10

Registros del 8086

DEFINICION

- Memorias SRAM dentro del uP- De 16 bits cada una

- El uP las emplea para ejecutar las instrucciones

- Tres tipos* Almacenan datos en general* Almacenan direcciones* Almacenan bits de configuración o estado

Page 11: Microprocesadores - Clase 02 - Arquitectura Del 8086

11

Registros del 8086

Se clasifican en cuatro grupos:

a) Registros de propósito general DATOSb) Registros índices o punteros DIRECCIONES

c) Registro de FLAGsESTADO/CONFIG.

d) Registros de segmento DIRECCIONES

TODOS de 16 bits

Page 12: Microprocesadores - Clase 02 - Arquitectura Del 8086

12

Registros del 8086

Acceso al registro: 8 bits y/o 16 bitsAcceso al registro: Lectura o escritura

Read or Write

Page 13: Microprocesadores - Clase 02 - Arquitectura Del 8086

13

Registros del 8086

Acceso al registro

Algunas instrucciones permiten el acceso a nivel de bits

- Leer - Escribir- Borrar (clear)- Poner a 1 (set)- Invertir- Verificar (test)

Page 14: Microprocesadores - Clase 02 - Arquitectura Del 8086

14

Registros del 8086

Page 15: Microprocesadores - Clase 02 - Arquitectura Del 8086

15

Registros del 8086

Page 16: Microprocesadores - Clase 02 - Arquitectura Del 8086

16

Registros del 8086

REGISTRO DE FLAGs

Flags de estado CF Carry 0PF Paridad 2AF Auxiliar 4ZF Zero 6SF Signo 7OF Overflow 11

Flags de control IF Interrupt 9DF Direction 10TP Trap 8

Page 17: Microprocesadores - Clase 02 - Arquitectura Del 8086

17

Registros del 8086

REGISTRO DE FLAGs

Flags de estadoCambian de acuerdo al resultado de cada instrucción ejecutada por el uP

Flags de controlEl usuario los maneja para controlar ciertas funcionalidades del uP

Page 18: Microprocesadores - Clase 02 - Arquitectura Del 8086

18

Concepto de segmento

Zona de memoria de 64 KBExisten cuatro tipos según la información que contengan.

Segmento de DATOSSegmento de CODIGOSegmento de datos EXTRASegmento de PILA (stack)

Se pueden ubicar en cualquier parte dentro del 1MB de memoria del 8086

1 MB

Page 19: Microprocesadores - Clase 02 - Arquitectura Del 8086

19

Segmentación de la memoria

La memoria puede contener cuatro tipos de segmentos

Page 20: Microprocesadores - Clase 02 - Arquitectura Del 8086

20

Segmentos del 8086

CS

DS

SS

ES

SEGMENTO DE PILA (STACK)

SEGMENTO EXTRA DE DATOS

SEGMENTO DE DATOS

SEGMENTO DE CÓDIGO

MEMORIA

Registros de segmento

REGISTROS DE SEGMENTO

Contienen la dirección de inicio de los distintos segmentos

¿Por qué un segmento es de 64 KB?

---------

Page 21: Microprocesadores - Clase 02 - Arquitectura Del 8086

21

Concepto de segmento

¿Cómo se accede a los bytes de un segmento?

Registro puntero

Registro de segmento

Dato

Desplazamiento

Dirección de segmento

Dirección física

CPU

SEGMENTO64 KB

Memoria

0

FFFFF

Page 22: Microprocesadores - Clase 02 - Arquitectura Del 8086

22

Concepto de segmento

SEGMENTO

Memoria

0

FFFFF

DESPLAZAMIENTO

SEGMENTOBloque de memoria hasta de 64 KB.

La dirección de inicio del bloque lo da un registro de segmento.

DESPLAZAMIENTOIndica una posición dentro de un segmento.

Esta dado por un registro puntero o índice.

Page 23: Microprocesadores - Clase 02 - Arquitectura Del 8086

23

Concepto de segmento

OTRO SEGMENTO

UN SEGMENTO

TRASLAPE DE SEGMENTOS

MEMORIA

Varios segmentospueden traslaparse

Page 24: Microprocesadores - Clase 02 - Arquitectura Del 8086

24

CODIGO REUBICABLE (relocatable code)

MEMORIA

02000

PROGRAMA REUBICADO EN OTRO SEGMENTO DE CODIGO

PROGRAMA UBICADO EN CIERTO SEGMENTO DE CODIGO

PROGRAMA

MEMORIA

PROGRAMA

600

20000600

nuevo (CS)=2000

(CS)=200

Los desplazamientos (respecto al inicio del segmento) NO cambian

Page 25: Microprocesadores - Clase 02 - Arquitectura Del 8086

25

Direcciones física y lógica

DIRECCION FISICA

Es la dirección de 20 bits de cada posición de memoria que puede accesar el 8086.

Pero,El 8086 solo posee registros de 16 bits.

¿Cómo puede manejar direcciones de 20 bits?

Page 26: Microprocesadores - Clase 02 - Arquitectura Del 8086

26

Direcciones física y lógica

DIRECCION LOGICA

Posición de un byte en memoria dado por un valor de DESPLAZAMIENTO respecto a una dirección de inicio dado por un registro de SEGMENTO.

Registros punteros, pointers o índicesIndican desplazamientos dentro de un segmento.

Page 27: Microprocesadores - Clase 02 - Arquitectura Del 8086

27

Dirección física a partir de la lógica

00000000

4 bits

Dirección de segmento

Dirección efectiva, lógica,

offset o desplazamiento

Dirección física

EL REGISTRO DE SEGMENTO SE

MULTIPLICA x16

20 BITS

+

Page 28: Microprocesadores - Clase 02 - Arquitectura Del 8086

28

Dirección física

Page 29: Microprocesadores - Clase 02 - Arquitectura Del 8086

29

Dirección física

Page 30: Microprocesadores - Clase 02 - Arquitectura Del 8086

30

Representación de direcciones

Se indican con el siguiente formato:

Segmento : Desplazamiento

EjemploSea la dirección: 0200:0300

Hallar la dirección físicaDirección física = Segmento x 16 + Desplazamiento

Dirección física = Segmento x 10h + Desplazamiento

Dirección física = 0200h x 10h + 0300hDirección física = 02000h + 0300hDirección física = 02300h (20 bits)

Page 31: Microprocesadores - Clase 02 - Arquitectura Del 8086

31

Representación de direcciones

1000:000A

Page 32: Microprocesadores - Clase 02 - Arquitectura Del 8086

32

Ciclo de instrucciones del 8086

Microprocesador

Lee instrucción Ejecuta lade memoria instrucción

Se realiza en tres etapas:i) Lectura de la instrucciónii) Decodificación de la instruccióniii) Ejecución de la instrucción

Page 33: Microprocesadores - Clase 02 - Arquitectura Del 8086

33

Ciclo de instrucciones del 8086

O en dos ciclos:

CICLO FETCH - BIU -La instrucción se lee de memoria

CICLO DE EJECUCION - EU -La instrucción se decodificaLa instrucción se ejecuta

Page 34: Microprocesadores - Clase 02 - Arquitectura Del 8086

34

Ciclo de instrucción

Las tres etapas se pueden ejecutar de dos formas:

a) SecuencialLas etapas son consecutivas.

b) ParalelaLas etapas se ejecutan en simultáneo.

Page 35: Microprocesadores - Clase 02 - Arquitectura Del 8086

35

Ciclo de instrucción del 8086

Ejecución secuencial

Típico en procesadores anteriores al 8086

DESVENTAJAIneficiencia en uso del recurso CPU

Page 36: Microprocesadores - Clase 02 - Arquitectura Del 8086

36

Ciclo de instrucción del 8086

Ejecución en paralelo

En el 8086, los ciclos se superponen o solapan.

Page 37: Microprocesadores - Clase 02 - Arquitectura Del 8086

37

Ciclo de instrucción del 8086

Ejecución en paralelo – 8086

Se ejecutan distintas etapas a la vez de varias instrucciones.

Page 38: Microprocesadores - Clase 02 - Arquitectura Del 8086

38

Ciclo de instrucción del 8086

Ejecución en paralelo (PIPELINE)

Ciclo FETCHLectura o búsqueda de instrucción de memoria

Page 39: Microprocesadores - Clase 02 - Arquitectura Del 8086

39

Ciclo de instrucción del 8086

Ejecución en paralelo

Page 40: Microprocesadores - Clase 02 - Arquitectura Del 8086

40

Bancos de memoria

Direccionamiento a nivel de BYTES individuales

Page 41: Microprocesadores - Clase 02 - Arquitectura Del 8086

41

Bancos de memoria

Direccionamiento a nivel de WORDS

Page 42: Microprocesadores - Clase 02 - Arquitectura Del 8086

42

Bancos de memoria

Direccionamiento a nivel de WORDS

Banco HIGH Banco LOW

Banco HIGHodd - impar

Banco LOWeven - par

Page 43: Microprocesadores - Clase 02 - Arquitectura Del 8086

43

Bancos de memoria

Direccionamiento a nivel de BYTES o WORDS

Depende de la instrucción.La instrucción puede indicar datos de:

- 1 byte

- 2 bytes

Los datos en memoria de 2 bytes siempre se indican con direcciones PARES.

Los datos en memoria de 1 byte se indican con direcciones pares o impares.

Page 44: Microprocesadores - Clase 02 - Arquitectura Del 8086

44

Bancos de memoria

Direccionamiento a nivel de BYTES o WORDS

BYTES Cualquier dirección (par o impar)

WORDS Solo direcciones pares

DWORDS Direcciones de cuatro en cuatro

Page 45: Microprocesadores - Clase 02 - Arquitectura Del 8086

45

Código BCD

BCD NO empaquetado 1 dígito BCD / byte

BCD empaquetado 2 dígitos BCD / byte

ASCIIAmerican Standars Code for Information Interchange

Page 46: Microprocesadores - Clase 02 - Arquitectura Del 8086

Fin

Gracias…

Universidad Nacional Tecnológica del Cono Sur de Lima

Carrera Profesional de Ingeniería Electrónica y Telecomunicaciones