Anda di halaman 1dari 43

ARQUITECTURA DE COMPUTADORAS

Microprocesadores de Intel

8086 y 8088
Aparecen en 1978 y se desarroll a partir del
8080 de 8 bits.
Poseen una arquitectura interna de 16 bits.
Por compatibilidad, tienen la capacidad de
trabajar en modo de 16 bits o de 8 bits.

El 8086 es un microprocesador de 16 bits tanto


interna(registros) como en sus conexiones
externas(bus de datos).
El 8088 es un procesador de 16 bits interno y 8
bits externo.
EL bus de direcciones consta de 20 lneas por lo
que es capaz de direccionar hasta ???.
Tanto el 8086 como el 8088 disponen de un
juego de 92 instrucciones y 7 modos de
direccionamiento.

Entre esos 92 tipos de instrucciones, las ms


rpidas se ejecutan en 2 ciclos tericos de reloj
(9 reales) y las ms lentas en 206. La frecuencia
tpica de reloj es de 4.77 Mhz en el 8086, 8 Mhz
en el 8086-2 y 10 Mhz en el 8086-1.
Constan de dos partes independientes:
Unidad de Ejecucin (EU): realiza todas las
operaciones que implican la ejecucin de las
instrucciones
Unidad de Interfaz con el Bus (BIU): controla
las transferencias con el mundo exterior

Sistema de Control de la Unidad de


Ejecucin
Es el encargado de decodificar las
instrucciones que le enva la cola de
instrucciones y proporcionar las rdenes a
la Unidad Aritmtica y Lgica segn una
tabla que tiene almacenada en ROM
llamada CROM (Control Read Only
Memory)

Cola de Instrucciones
Almacena las instrucciones
decodificadas y ejecutadas

para

ser

La cola de instrucciones se carga cuando el


bus est desocupado, de esta manera se
logra una mayor eficiencia del mismo
En el 8086 tiene 6 bytes (debido al tamao
del bus de datos), mientras que el 8088
tiene 4 bytes

Lgica de Control del Bus


La funcin de este bloque es poder
comunicar todos los bloques internos del
microprocesador con el exterior del mismo,
es decir, con la memoria y los perifricos
Cualquier dato que requieran las otras
unidades internas del microprocesador son
canalizados a travs de esta unidad

Encapsulados en formato DIP de 40 pines

El 8086 puede configurarse de dos formas


distintas: el modo mximo y el modo mnimo. El
modo queda determinado al colocar el terminal
MN/MX a tierra o a la tensin de alimentacin.
En modo mnimo no admite la multitarea, mientras
que en modo mximo es capaz de soportar un bus
local, para ampliar directamente el 8086 y un bus
de
sistema
MULTIBUS,
que
permite
configuraciones con varios procesadores, como el
procesador de datos 8087 y el procesador de
entrada / salida 8089.

En el modo mximo, el 8086 depende de otros


chips adicionales como es el controlador de bus
8288 para generar el conjunto completo de
seales de control de bus.
El modo mnimo permite al 8086 trabajar de una
forma ms autnoma.
En ambos modos, las seales del 8086 se pueden
agrupar de la siguiente manera:
Alimentacin.
Reloj.
Control y estado.
Direcciones.
Datos.

Principales caractersticas:
El 8086 dispone de instrucciones especiales
para el tratamiento de cadenas de caracteres.
Los registros del 8086 tienen una misin
especfica, aunque varios comparten tareas
comunes.
El encapsulado del 8086 est formado por
40 patillas, simplificando as el hardware,
aunque por contra, es necesario la
multiplexacin del bus de datos con el de
direcciones.

El 8086 dispone de un conjunto de registros,


denominados cola de instrucciones, en el cual se
van almacenando de forma anticipada los cdigos de
las instrucciones.
Las 20 lneas del bus de direcciones slo permiten
direccionar una memoria de 1 MB.
El 8086 requiere una seal de reloj exterior, siendo 4.77
y 8 Mhz las frecuencias tpicas de funcionamiento.
El 8086 dispone de una arquitectura pipe line, es
decir, que la CPU puede seguir leyendo instrucciones
en los tiempos en que el bus no se utiliza

Registros Internos del 8086/8088

Registros Internos del 8086/8088


Se emplean para controlar instrucciones en
ejecucin, manejar direccionamiento de
memoria
y
proporcionar
capacidad
aritmtica. Los registros son direccionables
por medio de un nombre
Registros de Propsito General
Los registros de propsito general son: AX,
BX, CX y DX. Se les puede direccionar
como una palabra o como un byte

Registro de Banderas (Estados)


Bit

15 14 13 12 11

Flag --

--

--

--

10

3 2

OF DF IF TF SF ZF 0 AF 0 PF 1 CF

OF (Overflow, Desbordamiento): indica el


desbordamiento del bit de mayor orden despus
de una operacin aritmtica de nmeros con
signo (1 = si; 0 = no)
DF (Direccin): controla el incremento o
decremento de los registros SI o DI en las
operaciones con cadenas de caracteres (1 =
decremento; 0 = incremento)

IF (Interrupcin): indica que una interrupcin


externa sea procesada o ignorada (1 = habilita la
interrupcin; 0 = deshabilita la interrupcin)
TF (Trampa): permite la operacin del procesador
en modo paso a paso (de depuracin)
SF (Signo): contiene el signo resultante de una
operacin aritmtica (0 = positivo; 1 = negativo)
ZF (Cero): indica si el resultado de una operacin
aritmtica igual o no a cero (0 = resultado no
cero; 1 = resultado igual a cero)

AF (Acarreo Auxiliar): contiene un acarreo externo


del bit 3 en un dato de 8 bits ( 1 = existe acarreo
auxiliar; 0 = no existe acarreo auxiliar)
PF (Paridad): indica paridad par o impar en una
operacin de datos de ocho bits (0 = paridad
impar; 1 = paridad par)
CF (Acarreo): contiene el acarreo de los bits de
mayor orden despus de una operacin
aritmtica; tambin almacena el contenido del
ltimo bit en una operacin de desplazamiento o
de rotacin

Registros de Segmento
Los registros de segmento tienen 16 bits de
longitud y facilita un rea de memoria para
direccionamiento conocida como el segmento
actual
Registro CS: sirve para almacenar la direccin
inicial del Segmento de Cdigo de un programa
Esta direccin de segmento, ms un valor de
desplazamiento en el registro Puntero de
Instrucciones (IP), indica la direccin de una
instruccin que es buscada para su ejecucin

Registro DS: contiene la direccin inicial de un


Segmento de Datos. Esta direccin, ms un valor
de desplazamiento en una instruccin, genera
una referencia a un dato especfico en el
segmento de datos
Registro SS: Contiene la direccin de inicio del
Segmento de Pila de un programa que sumada a
un valor de desplazamiento en el registro del
Puntero de Pila (SP) indica la palabra actual en
la pila que est siendo direccionada

Ventajas de utilizar registros de segmento:


Permite una capacidad de memoria de hasta 1
megabyte, aunque la direccin asociada a una
instruccin sea slo de 16 bits.
Permiten que las partes de un programa,
instrucciones, datos y pilas, tengan un tamao
mayor de 64K, mediante la utilizacin de ms
de un segmento para cdigo, datos o pila.
Facilitan la utilizacin de reas separadas
para un programa, sus datos y la pila.

ESTRUCTURA
DE
MEMORIA
DE
SEGMENTACIN.
El
8086
usa
un
esquema
llamado
segmentacin, para acceder correctamente a
un megabyte completo de memoria, con
referencias de direcciones de slo 16 bits.
Los registros de segmento dividen
esencialmente
el espacio de memoria en
segmentos de 64K de longitud, que pueden
estar separados entre s, adyacentes o
superpuestos.

La forma en que se completan los 20 bits del


bus
de
direcciones,
disponiendo
el
microprocesador solamente de registros de 16
bits, se consigue de la siguiente manera:
Un registro de segmento se multiplica por 16
y se convierte en una magnitud de 20 bits.
Finalmente, se suma un desplazamiento al
resultado de la multiplicacin anterior.
Direccin Fsica = 16 * ( registro de segmento )
+ desplazamiento

Las direcciones completas de las instrucciones y de las


posiciones de la pila se forman sumando el contenido
de los registros IP y SP con el registro de segmento de
cdigo ( CS ) y el registro de segmento de pila ( SS )
respectivamente.
La direccin de un dato puede formarse mediante la
suma de los contenidos de los registros BX BP, los
contenidos de SI DI, y un desplazamiento. El resultado
de este clculo se denomina direccin efectiva ( EA)
desplazamiento de segmento.
La direccin definitiva del dato, sin embargo, se
determina mediante la EA y el registro de segmento
apropiado: el segmento de datos ( DS ), el segmento
extra ( ES ) el segmento de pila ( SS ).

SEAL DE RELOJ.
Al igual que los mas recientes microprocesadores,
el 8086 requiere una nica seal de reloj. Este
microprocesador no genera su propia seal de reloj
siendo necesario la utilizacin del generador de reloj
8284, que usa un cristal oscilador para determinar la
frecuencia de seal. Intercambiando este cristal,
se puede seleccionar diferentes velocidades de
operacin.
Para un rendimiento ptimo, el 8086 requiere una seal
de reloj que se mantenga a tensin alta una tercera
parte del tiempo total de ciclo.

Principales avances del 8086:


Gestin de la
Segmentacin

Memoria:

Mecanismo

de

Segmentacin: divisin del cauce en dos


etapas: Bsqueda de la Instruccin y Ejecucin
de la misma
Uso de Interrupciones Vectorizadas Multinivel:
cada causa de interrupcin tiene su propia
direccin

Intel 8087
El 8087 fue el primer coprocesador numrico
diseado por Intel
Trabaja junto a los microprocesadores Intel
8088 y 8086
Sirve para acelerar los cmputos en
aplicaciones exigentes que implican clculos
con punto flotante. Mejora el desempeo del
sistema entre un 20% y 500% dependiendo de
la aplicacin

Este coprocesador introdujo cerca de 60


instrucciones nuevas disponibles para el
programador, todos sus mnemnicos empiezan
con "F" para distinguirlos de las instrucciones
estndar de enteros del 8086/8088
Mientras el microprocesador 8086 tiene 29.000
transistores, el coprocesador 8087 tiene 45.000
transistores

Estructura de interrupciones 8086/8088


Hay tres clases de interrupciones: por hardware,
por software e internas
Interrupciones por hardware: INTR(18), NMI(17)
Reconocimiento: INTA(24)
INTR: es una interrupcin enmascarable, NMI
no
Utiliza el controlador de interrupciones 8259A

8088/
8086

Al ocurrir una peticin de alguna de las ocho


fuentes de interrupcin, el 8259A activa el pin
INTR
Al terminar de ejecutar la instruccin en curso, el
microprocesador activa el pin INTA, lo que
provoca que el 8259A enve por el bus de datos
un nmero de ocho bits (de 0 a 255), llamado tipo
de interrupcin (programable por el usuario
durante la inicializacin del 8259A), que el
8086/8088 utiliza para saber cul es la fuente de
interrupcin

A continuacin busca en la tabla de vectores de


interrupcin la direccin del manejador de
interrupcin (interrupt handler)
Una vez que se ponen en la pila las flags, CS e IP
(en ese orden), la CPU hace IF <- 0 y TF <- 0, para
que el manejador de interrupcin no sea
interrumpido, y carga IP y CS con los valores
hallados en la tabla, se transfiere el control al
manejador de interrupcin, que es el procedimiento
encargado de atender la fuente de interrupcin

Al final del procedimiento que atiende a la


interrupcin debe estar la instruccin IRET, que
restaura los valores de los registros IP, CS y el
registro de banderas antes de salir (en orden
inverso al de su introduccin en la pila), en caso
contrario el sistema corre peligro de "colgarse",
ya que, al ocurrir la interrupcin en cualquier
momento de la ejecucin del programa, se
cambiaran los valores de los registros en el
momento menos esperado

1. GND (Masa)
2. A14 (Bus de direcciones)
3. A13 (Bus de direcciones)
4. A12 (Bus de direcciones)
5. A11 (Bus de direcciones)
6. A10 (Bus de direcciones)
7. A9 (Bus de direcciones)
8. A8 (Bus de direcciones)
9. AD7 (Bus de direcciones y datos)
10. AD6 (Bus de direcciones y datos)
11. AD5 (Bus de direcciones y datos)
12. AD4 (Bus de direcciones y datos)
13. AD3 (Bus de direcciones y datos)
14. AD2 (Bus de direcciones y datos)
15. AD1 (Bus de direcciones y datos)
16. AD0 (Bus de direcciones y datos)

17. NMI (Entrada de interrupcin no enmascarable)


18. INTR (Entrada de interrupcin enmascarable)
19. CLK (Entrada de reloj generada por el 8284)
20. GND (Masa)
21. RESET (Para inicializar el 8088)
22. READY (Para sincronizar perifricos y memorias
lentas)
23. /TEST
24. /INTA (El 8088 indica que reconoci la interrupcin)
25. ALE (Cuando est uno indica que salen direcciones
por AD, en caso contrario, es el bus de datos)
26. /DEN (Data enable: cuando vale cero debe habilitar los
transceptores 8286 y 8287 (se conecta al pin de "output
enable"), esto sirve para que no se mezclen los datos y las
direcciones)

27. DT/R (Data transmit/receive: se conecta al pin de


direccin de los chips recin indicados)
28. IO/M (Si vale 1: operaciones con los puertos, si
vale 0: operaciones con la memoria)
29. /WR (Cuando vale cero hay una escritura)
30. HLDA (Hold Acknowledge: el 8088 reconoce el
HOLD)
31. HOLD (Indica que otro integrado quiere
aduearse del control de los buses, generalmente se
usa para DMA o acceso directo a memoria)
32. /RD (Cuando vale cero hay una lectura)
33. MN/MX (Cuando esta entrada est en estado alto,
el 8088 est en modo mnimo, en caso contrario est
en modo mximo)

34. /SSO (Junto con IO/M y DT/R esta salida


sirve para determinar estados del 8088)
35. A19/S6 (Bus de direcciones/bit de estado)
36. A18/S5 (Bus de direcciones/bit de estado)
37. A17/S4 (Bus de direcciones/bit de estado)
38. A16/S3 (Bus de direcciones/bit de estado)
39. A15 (Bus de direcciones)
40. Vcc (+5V)
En modo mximo, hay algunos pines que
cambian de significado:

24.- QS1: Estado de la cola de instrucciones (bit 1).


25.- QS0: Estado de la cola de instrucciones (bit 0).
26.- S0: Bit de estado 0
27.- S1: Bit de estado 1
28.- S2: Bit de estado 2
29.- /LOCK: Cuando vale cero indica a otros
controladores del bus (otros microprocesadores o un
dispositivo de DMA) que no deben ganar el control del
bus. Se activa ponindose a cero cuando una
instruccin tiene el prefijo LOCK
30.- RQ/GT1: Es bidireccional y tiene la misma funcin
que HOLD/HLDA en modo mnimo
31.- RQ/GT0: Como RQ/GT1 pero tiene mayor prioridad
34.- Esta salida siempre est a uno

Anda mungkin juga menyukai