Microprocesadores - Clase 02 - Arquitectura Del 8086

Post on 04-Aug-2015

148 views 5 download

Transcript of Microprocesadores - Clase 02 - Arquitectura Del 8086

MICROPROCESADORES

Clase 02Arquitectura del 8086

Edgard Oportoeoporto@untecs.edu.pe

Villa El Salvador, octubre de 2012

Universidad Nacional Tecnológica del Cono Sur de Lima

Carrera Profesional de Ingeniería Electrónica y Telecomunicaciones

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

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

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

5

Arquitectura del 8086

El 8086 tiene 2 procesadores internos

EU

Unidad de ejecución

BIU Unidad de interfaz

con el Bus

6

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.

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

9

Arquitectura del 8086

Internamente consta de dos unidades o procesadores

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

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

12

Registros del 8086

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

Read or Write

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)

14

Registros del 8086

15

Registros 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

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

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

19

Segmentación de la memoria

La memoria puede contener cuatro tipos de segmentos

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?

---------

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

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.

23

Concepto de segmento

OTRO SEGMENTO

UN SEGMENTO

TRASLAPE DE SEGMENTOS

MEMORIA

Varios segmentospueden traslaparse

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

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?

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.

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

+

28

Dirección física

29

Dirección física

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)

31

Representación de direcciones

1000:000A

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

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

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.

35

Ciclo de instrucción del 8086

Ejecución secuencial

Típico en procesadores anteriores al 8086

DESVENTAJAIneficiencia en uso del recurso CPU

36

Ciclo de instrucción del 8086

Ejecución en paralelo

En el 8086, los ciclos se superponen o solapan.

37

Ciclo de instrucción del 8086

Ejecución en paralelo – 8086

Se ejecutan distintas etapas a la vez de varias instrucciones.

38

Ciclo de instrucción del 8086

Ejecución en paralelo (PIPELINE)

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

39

Ciclo de instrucción del 8086

Ejecución en paralelo

40

Bancos de memoria

Direccionamiento a nivel de BYTES individuales

41

Bancos de memoria

Direccionamiento a nivel de WORDS

42

Bancos de memoria

Direccionamiento a nivel de WORDS

Banco HIGH Banco LOW

Banco HIGHodd - impar

Banco LOWeven - par

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.

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

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

Fin

Gracias…

Universidad Nacional Tecnológica del Cono Sur de Lima

Carrera Profesional de Ingeniería Electrónica y Telecomunicaciones