Está en la página 1de 11

Universidad Nacional Autnoma de Nicaragua (RURD).

Facultad de Ciencias e Ingenieras.



Departamento de Computacin.


Interfaz de memoria para los 8086, 80186, 80286 y 80386SX (16 Bits)
Estudiante:
Juan Carlos Canales Jarqun.

Profesora:
MSc. Eman Hussein Yousif.

Asignatura:
Organizacin de Computadoras II.

Carrera:
Licenciatura en Ciencias de la Computacin.




Lugar y Fecha: Managua, Nicaragua 08/05/2014
Interfaz de memoria para los 8086, 80186, 80286 y 80386SX (16 BITS)
Los microprocesadores 8086, 80186, 80286 y 80386SX difieren de los 8088/80188
en tres aspectos: (1) el bus de datos es de 16 bits, en vez de ocho bits como en el
8088, (2) la terminal

del 8088 es sustituida por una terminal

, y (3)
existe una nueva seal de control llamada habilitacin de bus alto (

). El bit
de direccin A0 o

tambin es empleado de forma distinta. Existen algunas


otras diferencias entre los 8086/80186 y los 80286/80386SX. Los 80286/80386SX
contienen un bus de direcciones (A23-A0) de 24 bits en lugar del bus de
direcciones (A19-A0) de 20 bits de los 8086/80186. Los 8086/80186 contienen una
seal

, mientras que el sistema 80286 y el microprocesador 80386SX


contiene las seales de control

en lugar de

.
Control del bus de 16 bits
El bus de datos de los 8086, 80186, 80286 y 80386SX tiene el doble de ancho que
el bus de los 8088/80188. Este bus de datos ms ancho nos enfrenta a un
conjunto de problemas que no haban sido encontrados anteriormente. Los 8086,
80186, 80286 y 80386SX deben ser capaces de escribir datos a cualquier
localidad de 16 bits, o a cualquiera de 8 bits. Esto significa que el bus de datos de
16 bits debe dividirse en dos secciones separada (bancos) de ocho bits, para que
el microprocesador pueda escribir a cualquiera de las dos mitades (8bits) o a
ambas (16 bits). La figura 10-27 muestra los dos bancos de la memoria. Un banco
(banco bajo) contiene todas las localidades de la memoria con nmeros pares, y
el otro banco (banco alto) contiene todas las localidades de memoria con
nmeros impares.









Figura 10-27 los
bancos de memoria
de 8 bits, alto (impar)
y bajo (par) de los
microprocesadores
8086, 80286 y
80386SX
Los 8086, 80186, 80286, 80386SX utilizan la seal

(banco alto) y el bit de


direccin A0 o

(habilitacin de bus bajo) para seleccionar uno o ambos


bancos de memoria empleados para la transferencia de datos. La tabla 10-3
presenta los niveles lgicos en estas dos terminales y el banco o bancos
seleccionados.

La seleccin de banco se lleva a cabo de dos formas: (1) se implementa una seal
de escritura separada para seleccionar la escritura a cada uno de los bancos de
memoria, o (2) se emplean decodificadores separados para cada banco. Como
revela una comparacin cuidadosa, la primera tcnica es, por mucho, el mtodo
menos costoso para el establecimiento de una interfaz para los microprocesadores
8086, 80186, 80286 y 80386SX.
Decodificadores separados de bancos. Generalmente, los decodificadores
separados de bancos son la forma menos efectiva para decodificar direcciones de
memoria para los microprocesadores 8086, 80186, 80286 y 80386SX. Este
mtodo es empleado algunas veces, pero es difcil entender por qu en la mayora
de los casos. Una razn puede ser la de conservar energa, porque solamente el
banco o bancos seleccionados son habilitados. ste no es siempre el caso para
las seales separadas de lectura y escritura de bancos que se discuten ms
adelante.
La figura 10-28 muestra dos decodificadores 74LS138 empleados para
seleccionar componentes de memoria RAM de 64K para el microprocesador
80386SX (direccin de 24 bits). Aqu, el decodificador U2 tiene la terminal


(A0) unida a

, y el decodificador U3 tiene la seal

unida a su entrada

.
Debido a que el decodificador no ser activado hasta que todas sus entradas de
habilitacin estn activas, el decodificador U2 es activado solamente para una
operacin de 16 bits o para una de 8 bits desde el banco bajo. El decodificador U3
es activado para una operacin de 16 bits o para una de 8 bits del banco alto.
Estos dos decodificadores y las 16 RAMs de 64 KB que controlan representan un
rango de 1 M del sistema de memoria del 80386SX. El decodificador U1 habilita
U2 y U3 para el intervalo de direccin de memoria 000000H-0FFFFFH.
En la figura 10-28 la terminal de direccin A0 no est conectada a la memoria,
debido a que no existe en el microprocesador 80386SX. Tambin se puede
observar que el bit de la posicin A1 est conectado a la entrada de direccin de
memoria A0; A2 est conectado a A1, etc. La razn es que A0 de los 8086/80186
(o

de los 80286/80386SX) est ya conectado al decodificador U2 y no


necesita conectarse otra vez a la memoria. Si A0 o

es conectado a la terminal
de direccin de la memoria A0, solamente localidades alternadas de memoria en
cada banco podran ser utilizadas. Esto significa que se desperdicia la mitad de la
memoria Si A0 o

fuera conectado a A0.





















Pulsos de escritura para bancos separados. La forma ms efectiva de manejar la
seleccin de bancos es la de implementar un pulso de escritura separado para
cada banco de memoria. Esta tcnica requiere solamente un decodificador para
seleccionar una memoria de 16 bits de ancho, lo cual frecuentemente ahorra
dinero y reduce el nmero de componentes de un sistema.
Por qu no implementar tambin pulsos separados de lectura para cada banco
de memoria? Esto es comnmente innecesario porque los microprocesadores
8086, 80186, 80286 y 80386SX leen solamente el byte que necesitan en un
momento dado, desde la mitad del bus de datos. Si datos de 16 bits son siempre
presentados al bus de datos durante una lectura, el microprocesador ignora la
seccin de 8 bits que no necesita, sin conflictos o problemas especiales.
La figura 10-29 muestra la generacin de pulsos de escritura separados del 8086
para la memoria. Aqu, una compuerta OR 74LS32 combina A0 con

para la
seal de seleccin de banco bajo (

), y

con

para la seal de seleccin


del banco alto (

). Los pulsos de escritura para los 80286 y 80386SX son


generados empleando la seal

en lugar de

.

Un sistema de memoria que utiliza pulsos de escritura separados se construye de
forma diferente a un sistema de 8 bits (8088), o a un sistema que utiliza bancos de
memoria separados. La memoria en un sistema que utiliza pulsos separados de
escritura es decodificada como una memoria de 16 bits de ancho. Por ejemplo
suponga que un sistema de memoria contendr 64 KB de memoria SRAM. Esta
memoria requiere dos dispositivos de memoria de 32 KB (62256) para poder
construir una memoria de 16 bits de ancho. Debido a que la memoria tiene 16 bits
de ancho y otro circuito genera las seales de escritura de los bancos, el bit de
direccin A0 se convierte en uno de cualquier valor. De hecho, A0 no es siquiera
una terminal en el microprocesador 80386SX.
El ejemplo 10-6 muestra cmo es decodificada una memoria de 16 bits de ancho
en las localidades 060000H-06FFFFH para el microprocesador 80286 u 80386.
En este ejemplo, la memoria es decodificada de forma que el bit A0 es cualquier
valor para el decodificador. Las posiciones de los bits A1-A15 estn conectadas a
las terminales de direccin del componente de memoria A0-A14. El decodificador
(PAL16L8) habilita ambos dispositivos de memoria empleando las conexiones de
direccin A23-A15, siempre que la direccin 06XXXXH aparezca en el bus de
direcciones.




La figura 10-30 muestra este sencillo circuito que utiliza un PAL16L8 tanto para
decodificar la memoria como para generar los pulsos de escritura separados. El
programa para el decodificador PAL16L8 es mostrado en el ejemplo 10-7.
Observe que no solamente es seleccionada la memoria, sino que adems el PAL
genera los pulsos de escritura para los bancos alto y bajo.

























La figura 10-31 presenta un pequeo sistema de memoria para el microprocesador
8086, el cual contiene una seccin de EPROM y una de RAM. Aqu, hay cuatro
EPROMs 72128 (16 K x 8) que conforman una memoria de 32 K x 16 bits en las
localidades F0000-FFFFFH, y cuatro RAMs tipo 62256 (32 K x 8) que integran una
memoria de 64 K x 16 en las localidades 00000H-1FFFFH (recuerde que aunque
la memora es de 16 bits de ancho, no obstante es numerada en bytes).
Este circuito utiliza un circuito dual de 2 a 4 lneas tipo 74LS139 que selecciona la
EPROM con una mitad, y la RAM con la otra. Decodifica memoria de 16 bits de
ancho; no de ocho bits, como antes. Observe que el pulso

est conectado a la
entrada

de todas las EPROMs y a la terminal

de todas las RAMs. Esto se


hace porque incluso si el 8086 est leyendo solamente ocho bits de datos, la
aplicacin de los ocho bits restantes al bus de datos no tiene efecto sobre el
funcionamiento del 8086.
Los pulsos

estn conectados a bancos diferentes de la memoria


RAM. Aqu no importa si el microprocesador est realizando una escritura de 16 u
8 bits. Si el 8086 escribe un nmero de 16 bits a la memoria, tanto

como

asumen el estado bajo y habilitan las terminales

en ambos bancos de
memoria. Pero si el 8086 efecta una escritura de 8 bits, solamente uno de los
pulsos de escritura asume el estado bajo, escribiendo a slo un banco de
memoria. Nuevamente, la nica ocasin en que los bancos hacen una diferencia
es para una operacin de escritura.
Observe que una seal de decodificacin de EPROM es enviada al generador de
estado de espera del 8086 porque la memoria EPROM normalmente requiere un
estado de espera. La seal proviene de la compuerta NAND utilizada para
seleccionar la seccin del decodificador de EPROMs, de manera que si la EPROM
es seleccionada, un estado de espera es solicitado.
La figura 10-32 muestra un sistema de memoria conectado al microprocesador
80386SX utilizando un PAL16L8 como decodificador. Esta interfaz contiene 256
KB de EPROM en la forma de cuatro EPROMs tipo 27512 (64K x 8) y 128 KB de
memoria SRAM en cuatro SRAMs tipo 62256 (32K x 8).
Observe en la figura 10-32 que el PAL tambin genera las seales de escritura de
los bancos de memoria

. Como puede apreciarse en este circuito, el


nmero de componentes necesario para establecer la interfaz a la memoria ha
sido reducido a slo uno, en la mayora de los casos (el PAL). El listado del
programa para el PAL est dado en el ejemplo 10-8. El PAL decodifica las
direcciones de memoria de 16 bits de ancho en las localidades 000000H-01FFFFH
para la SRAM y en las localidades FC0000H-FFFFFFH para la EPROM.






BIBLIOGRAFIA

Los microprocesadores Intel - Tercera edicin - Barry B. Brey -
Prentice Hall.