Banco 8088 y 8086
Banco 8088 y 8086
RESUMEN
Cuando el procesador opera en modo mnimo, este genera las senales de control para la
memoria y los dispositivos de E/S. [1, pag. 292]. Para utilizar el 8088/8086 en modo mnimo,
se deben de utilizar diversos dispositivos que cumplen con funciones primordiales para el
funcionamiento adecuado del procesador y el correcto manejo de memoria y perifericos. En
primer lugar, se utiliza un generador de reloj, el 8284A que ademas de cumplir con esta
funcion, proporciona sincronizacion de RESET, sincronizacion READY y una senal de reloj
de periferico al nivel de TTL [1, pag. 293].
En el caso del 8088, los 8 bits menos significativos del bus de direcciones se encuentran
multiplexados con el bus de datos, estos pines se identifican como AD7 AD0 . Por lo tan-
to, se utilizan dispositivos de enclavamiento (latches) para demultiplexar estas senales.
Lo mismo ocurre con A19 A16 , que se encuentran multiplexadas con las senales de estado
S6 S3 . Las senales A15 A8 son independientes, sin embargo, ya que se el bus tiene mas
de 10 cargas unitarias, se deben de pasar por un bufer [1, pag. 298]. Los latches cumplen
esta funcion ademas de retener datos, por lo cual no es necesario usar un bufer si se utiliza
un latch. Para el 8086, la diferencia radica en que al tener un bus de datos de 16 bits, este
se multiplexa con los 16 bits del bus de direcciones que comprende desde AD15 AD0 .
El 8086 organiza la memoria logica en dos bancos de memoria: el banco bajo para las
direcciones impares, y el banco alto para las direcciones pares. Esto debido a que el 8086
tiene un bus de datos de 16 bits, necesita poder realizar transferencias de memoria tanto en
8 bits como en 16 bits en un solo ciclo de lectura o escritura.
Para lograr esto, se incluye una senal BHE (Bus High Enable) en el procesador, que en
conjunto con A0 del bus de direcciones permiten seleccionar el banco (o ambos bancos) de
memoria adecuados.
1
Tutora 2. Banco de memoria de 8 y 16 bits (8086)
Existen otros dispositivos que se utilizan como parte del sistema mnimo. Por ejemplo,
cuando se van a utilizar tanto elementos de memoria como de Entrada/Salida para comuni-
carse con el usuario u otros sistemas, es importante proveer de senales de control de escritura
y lectura para cada tipo de dispositivo. Por esta razon se suele implementar un decodifi-
cador de control.
Algunas veces los elementos fsicos de memoria disponibles no son suficientes de modo
que se pueda implementar toda la memoria requerida en un solo dispositivo. Por esta razon,
se utiliza un decodificador de memoria que se encarga de asignar a cada dispositivo de
memoria fsica una parte de la memoria logica.
2
Tutora 2. Banco de memoria de 8 y 16 bits (8086)
Para fin didactico, en este caso se disenara el banco de memoria de una microcomputadora
tanto con un procesador 8088 (8 bits de bus de datos) y un 8086 (16 bits de bus de datos) para
observar las diferencias entre el diseno de ambos bancos de memoria. Las especificaciones de
diseno son la siguientes:
3. Realizar el circuito esquematico con la conexion fsica del CPU con: el generador de
reloj, demultiplexacion de los buses de datos y direcciones, enclavamiento de senales de
control, dispositivos de memoria y decodificadores de seleccion de memoria y de senales
de control de escritura y lectura.
3
Tutora 2. Banco de memoria de 8 y 16 bits (8086)
SOLUCION
1. 1. Mapeo de memoria
Para realizar el mapeo de la memoria requerida, hay que cumplir con una restriccion im-
portante predispuesta por el fabricante del procesador. En la hoja de datos del 8088 de Intel,
se indica que existen localidades de memoria reservadas por el procesador tanto en memoria
ROM como en memoria RAM [2, pag. 7]. Estas localidades comprenden en memoria ROM
las direcciones FFFF0H hasta FFFFFH para vector de reset, y en RAM las localidades desde
00000H hasta 003FFH para los vectores de interrupciones. Estos 256KB para interrupciones
constan de vectores de interrupcion con 4 bytes cada uno, que contienen 2 bytes para la di-
reccion del segmento y 2 bytes para el offset. El usuario debe como parte de la programacion
asignar estos valores para el correcto funcionamiento de las interrupciones que vaya a utiilizar.
4
Tutora 2. Banco de memoria de 8 y 16 bits (8086)
Para realizar un mapeo que comprenda los dispositivos reales de memoria para implemen-
tar el diseno, se debe tomar en cuenta la cantidad de memoria que estos chips pueden manejar:
En el caso del 8088, se necesitan dos chips de cada tipo de memoria para lograr alcanzar
la memoria deseada. Como la arquitectura es de 8 bits y las memorias tambien lo son, esto
permite que su implementacion sea directa. La figura 3 muestra como para implementar cada
segmento de memoria con 8088.
5
Tutora 2. Banco de memoria de 8 y 16 bits (8086)
Como en el 8086 la memoria se organiza en dos bancos de memoria, es necesario que cada
segmento de memoria se encuentre dividido en dos segmentos de la mitad de la memoria.
En este caso se pueden utilizar la misma cantidad de dispositivos de memoria RAM y ROM,
pero la conexion difiere tanto para el bus de direcciones:
6
Tutora 2. Banco de memoria de 8 y 16 bits (8086)
Para realizar la tabla de verdad se debe de tomar en cuenta las lneas del bus de direc-
ciones que ocupa cada memoria. As entonces, la parte del bus de direcciones mas alta que no
soporten las memorias, es la que sera clave para su correcta seleccion por medio del decodi-
ficador de memoria. El 62256 se direcciona con 15 bits, mientras que el 27512 se direcciona
con 16 bits.
En el caso del 8088 la tabla de verdad queda como la figura 5, se observa que se separa
cada memoria la cual guarda un espacio de todo el bloque de memoria. En 8086 la tabla
vara ligeramente, puesto que en este caso cada bloque de memoria esta conformado por dos
memorias cada una con las direcciones pares e impares, tal como se observa en la figura 6.
7
Tutora 2. Banco de memoria de 8 y 16 bits (8086)
8
Tutora 2. Banco de memoria de 8 y 16 bits (8086)
8088) o M /IO (en 8086), la cual es utilizada por el procesador para definir cuando se debe
acceder a la memoria o a un dispositivo de entrada/salida. As, se logra decodificar las senales
de seleccion de cada chip (chip select). La figura 7 muestra el diagrama de bloques de senales
de este decodificador en 8088.
Importante!: Para saber cuales lneas de direcciones son necesarias para el decodificador
de memoria, identifique cual es el dispositivo de memoria con menor capacidad. Las lneas
del bus de direcciones del procesador que sobren para controlar este dispositivo seran las
que se usen para el decodificador. En el caso de 8088, como el 62256 utiliza hasta A14 , el
decodificador ocupara las lneas A19 A15 .
En el caso del 8086, para poder utilizar ambos bancos de memoria, bajo y alto, se utiliza
la senal BHE en conjunto con A0 para realizar la seleccion de los bancos. Estas senales por
lo tanto se incluyen en el decodificador de memoria, tal como se observa en la figura 9. Su
tabla de la verdad se muestra en la figura 10.
9
Tutora 2. Banco de memoria de 8 y 16 bits (8086)
Recuerde que este decodificador nunca se ve afectado por la cantidad o los tipos de memo-
rias que se vayan a implementar. Observe que cada una de las senales solo se activa en un
10
Tutora 2. Banco de memoria de 8 y 16 bits (8086)
Figura 11: Diagrama de bloque del dcodificador de control de senales de escritura y lectura
estado especfico: cuando el microprocesador enva solo una peticion de lectura o de escrit-
ura, pero no ambas ni ninguna. Ademas cuando HLDA esta activo se deben de liberar las
senales, por lo cual se conectan a un 244 (buffer) despues del decodificador y para asi poder
configurarlas en alta impedancia cuando se requiere.
3. Diagrama esquematico
El diagrama esquematico debe de llevar la conexion fsica del CPU con el generador de
reloj (senales de CLK, READY y RESET), demultiplexacion de los buses de datos y direc-
ciones (con latches), enclavamiento de senales de control (buffer), todas las memorias SRAM
y EPROM, y tanto el decodificador de seleccion de memoria as como el de senales de control
de escritura y lectura.
11
Tutora 2. Banco de memoria de 8 y 16 bits (8086)
Extienda los buses de datos y direcciones lo necesario para conectar las memorias.
Etiquete todas las senales y los bloques, especialmente cuando se necesita utilizar una
senal de un extremo a otro del esquematico.
Referencias
[1] Brey, B.: Microprocesadores Intel, 7ma edicion. Pearson Educacion de Mexico, 2006.
[2] Intel: 8088 8-BIT HMOS MICROPROCESSOR, Data sheet, August 1990.
[3] Carvajal, J.: Interfaz de memoria con 8086/8088, ITCR, Curso Estructura de Micro-
procesadores, 2009.
12