ATRAS
EL BUS XT
y EL BUS ISA (AT)
Cuando
en 1980 IBM fabricó su primer PC, este contaba con un bus de expansión conocido
como XT que funcionaba a la misma velocidad que los procesadores Intel 8086 y
8088 (4.77 Mhz). El ancho de banda de este bus (8 bits) con el procesador 8088
formaba un tandem perfecto, pero la ampliación del bus de datos en el 8086 a 16
bits dejo en entredicho este tipo de bus (aparecieron los famosos cuellos de
botella).
Dada
la evolución de los microprocesadores el bus del PC no era ni mucho menos la
solución para una comunicación fluida con el exterior del micro. En definitiva
no podía hablarse de una autopista de datos en un PC cuando esta sólo
tenía un ancho de 8 bits. Por lo tanto con la introducción del AT apareció un
nuevo bus en el mundo del PC, que en relación con el bus de datos tenía
finalmente 16 bits (ISA), pero que era compatible con su antecesor. La única
diferencia fue que el bus XT era síncrono y el nuevo AT era asíncrono. Las
viejas tarjetas de 8 bits de la época del PC pueden por tanto manejarse con las
nuevas tarjetas de 16 bits en un mismo dispositivo. De todas maneras las
tarjetas de 16 bits son considerablemente más rápidas, ya que transfieren la
misma cantidad de datos en comparación con las tarjetas de 8 bits en la mitad
de tiempo (transferencia de 16 bits en lugar de transferencia de 8 bits).
No
tan solo se amplió el bus de datos sino que también se amplió el bus de
direcciones, concretamente hasta 24 bits, de manera que este se podía dirigir
al AT con memoria de 16 MB. Además también se aumentó la velocidad de cada una
de las señales de frecuencia, de manera que toda la circulación de bus se
desarrollaba más rápidamente. De 4.77 Mhz en el XT se pasó a 8.33 Mhz. Como
consecuencia el bus forma un cuello de botella por el cual no pueden
transferirse nunca los datos entre la memoria y la CPU lo suficientemente
rápido. En los discos duros modernos por ejemplo, la relación (ratio) de
transferencia de datos ya es superior al ratio del bus.
A las
tarjetas de ampliación se les ha asignado incluso un freno de seguridad,
concretamente en forma de una señal de estado de espera (wait state), que deja
todavía mas tiempo a las tarjetas lentas para depositar los datos deseados en
la CPU.
Especialmente
por este motivo el bus AT encontró sucesores de más rendimiento en Micro
Channel y en el Bus EISA, que sin embargo, debido a otros motivos, hasta ahora
no se han podido introducir en el mercado.
La
coexistencia hoy en día de tarjetas de ampliación de 8 bits y de tarjetas de
ampliación de 16 bits es problemática mientras el campo de direcciones, del
cual estas tarjetas son responsables, se encuentre en cualquier área de 128 KB.
El dilema empieza cuando una tarjeta de 16 bits debe señalizar mediante una
línea de control al principio de una transferencia de datos, que ella puede
recoger una palabra de 16 bits del bus y que al contrario de una tarjeta de 8
bits no tiene que desdoblar la transferencia en dos bytes.
Sin
embargo esta señal la tiene que mandar en un momento en el que todavía no puede
saber que la dirección del bus de datos se refiere verdaderamente a ella y que
por tanto tiene la obligación de contestar. Ya que de las 24 líneas de
dirección que contienen la dirección deseada, hasta este momento sólo están
inicializadas correctamente las líneas A17 hasta A23, con lo cual la tarjeta
reconoce sólo los bits 17 hasta 23 de la dirección. Estos sin embargo cubren
siempre un área completa de 128 KB, independientemente de lo que pueda haber en
los bits de dirección 0 hasta 16. La tarjeta en este momento sólo sabe si la
dirección de la memoria se encuentre en el área entre 0 y 127 KB, 128 y 255,
etc.
Si en
este momento la tarjeta de 16 bits manda por tanto una señal para una
transmisión de 16 bits, hablará de esta forma por el resto de las tarjetas que
se encuentren dentro de este área. Esto podrá notarse acto seguido ya que una
vez también hayan llegado al bus los bits de dirección 0 a 16, quedará claro
cual es la tarjeta a la cual realmente se estaba dirigiendo. Si realmente se
trata de una tarjeta de 16 bits todo irá bien. Pero si se estaba dirigiendo a
una tarjeta de 8 bits, la tarjeta de 16 bits se despreocupa del resto de la
transferencia y deja la tarjeta de 8 bits a su propia suerte. Ésta no podrá
resolver la transferencia ya que está configurada sólo para transmisiones de 8
bits. En cualquier caso el resultado será una función de error de la tarjeta de
ampliación.
|
Conector
|
Función
|
|
B1
|
Tierra
|
|
B-13
|
Escritura E/S
|
|
B-14
|
Lectura E/S
|
|
B21-B25
|
Interrupciones entre 7-3
|
|
A1-A13
|
Mira si E/S preparado y envía los datos a direcciones
|
|
D1-D18
|
Hace peticiones y reconocimiento de DMA
|
|
C1-C18
|
Desbloquea las Direcciones y pasa los datos a mem.
|