microprocesadores - clase 02 - arquitectura del 8086
Post on 04-Aug-2015
156 Views
Preview:
TRANSCRIPT
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
top related