INTERFACES PARA LA INTERCONEXIÓN DE
PERIFÉRICOS
Un sistema computacional es
un sistema complejo que puede llegar a estar constituido por millones de
componentes electrónicos elementales.
Esta naturaleza multi nivel de los sistemas complejos es esencial para
comprender tanto su descripción como su diseño. En cada nivel se analiza su
estructura y su función en el sentido siguiente:
|
Estructura: La forma en que
se interrelacionan las componentes. Función: La operación de
cada componente individual como parte de la estructura. Por su particular
importancia se considera la estructura de interconexión tipo bus. Los buses son el tejido
conectivo de los sistemas de computación; y los buses más utilizados son: el
bus ISA, el bus PCI y el Bus Serial Universal o USB. |
Aunque lBM
intentó conseguir un sistema abierto y de hacer pública todo tipo de
información, interrumpió la documentación de los pasos exactos de las señales
del bus, seguramente bajo el supuesto de que nadie necesitaría esta
información.
EI bus representa
básicamente una serie de cables mediante los cuales pueden cargarse datos en la
memoria y desde allí transportarse a la CPU. Por así decirlo es la autopista de
los datos dentro del PC ya que comunica todos los componentes del ordenador con
el microprocesador. El bus se controla y maneja desde la CPU.
El objetivo de conectar una
tarjeta a un bus de expansión es que ésta funcione como si estuviera
directamente conectada al procesador.
El bus de expansión
usualmente dispone de 6 a 8 conectores de ranura o slots
en los que se puede conectar, en cualquier orden, las tarjetas controladoras de
dispositivos periféricos. Además de tener acceso a las líneas principales del
bus del sistema, los conectores del bus de expansión también tienen las líneas
que conducen la potencia eléctrica requerida por los dispositivos para
funcionar.
A continuación se muestran
a grandes rasgos las principales características de algunos de los buses e
interfaces más utilizados para la comunicación entre periféricos:
El objetivo de conectar una
tarjeta a un bus de expansión es que ésta funcione como si estuviera
directamente conectada al procesador. Con el fin de hacer factible estas
características el bus de expansión XT presentaba el mismo ancho de bus (8bits)
y operaba a la misma velocidad de reloj (4.77MHz) que el propio procesador
8088.
|
Con el desarrollo del microprocesador
80286 utilizado en los computadores IBM AT y sus compatibles que podía
manejar un bus de datos de 16 bits de ancho y un bus de direcciones de
24bits, fue necesario agregar 36 líneas más al bus de expansión. Para
conservar la compatibilidad con las tarjetas de 8bits, simplemente se colocó
a continuación de algunas de las ranuras de expansión 8 bits otra ranura
suplemento más corta, la cual se encarga de manejar los 8bits adicionales del
bus de datos, además de otras cosas. |
Puesto que el bus de datos puede
manejar paralelamente datos hasta de 16bits, muchos se refieren al bus de
expansión como un bus de 16bits. El bus de 16bits se convirtió muy pronto en el
patrón de la industria, y dejó de llamarse bus AT para tomar el de bus ISA (Industry Standard Architecture).
Con la evolución de los
procesadores también hubo una revolución en los buses que se habían quedado
obsoletos. Así cuando en 1984 IBM presenta el PC AT (con el procesador Intel 80286) se rompió la aparentemente inquebrantable
relación entre bus y microprocesador. Aunque en la práctica el reloj del
procesador de un AT funciona a la misma velocidad que su reloj de bus, IBM
había abierto la puerta a la posibilidad de que este último fuese más rápido
que el reloj del bus. Así pues el bus que incorporó el AT fue de un ancho de
banda de 16 bits funcionando a 8.33Mhz. Este enfoque de diseño no oficial se
denominó ISA (Industry Standard Arquitecture)
en 1988.
Puesto que el bus ISA
ofrecía algunas limitaciones, en IBM se desarrolló otro tipo de bus que
funcionaba a 10Mhz y que soportaba un ancho de banda de 32 bits. Este bus se
monto en la gama PS/2. El gran problema de este bus es que no era compatible
con los anteriores y necesitaba de tarjetas de expansión especialmente
diseñadas para su estructura.
Como el mercado necesitaba
un bus compatible ISA que fuese más rápido, la mayoría de fabricantes
establecieron las especificaciones del bus EISA (Extended ISA) que ensanchaba
la ruta de datos hasta 32 bits, sin embargo la necesidad de compatibilidad con ISA
hizo que este nuevo bus tuviese que cargar con la velocidad básica de
transferencia de ISA (8.33Mhz).
Pero la gran revolución
estaba por llegar. Por un lado los procesadores Intel
80486 y por otro la invasión en el mercado de los sistemas gráficos como
Windows hicieron necesario la aparición de un nuevo tipo de bus que estuviese a
la altura de estos hitos. Al manejarse gráficos en color se producían grandes
cuellos de botella al pasar del procesador al bus ISA (el 80486 funcionaba a
33Mhz y el bus ISA a 8.33Mhz).
|
Señales del slot de
expansión ISA
El slot de expansión del XT, de 8 bits, consta de 62
terminales en un conector hembra, 31 por cada cara. La cara A es la de los
componentes; por la B sólo hay pistas. Viendo las tarjetas por arriba (por la
cara de componentes) y con los conectores exteriores a la derecha, la
numeración comienza de derecha a izquierda. En los AT el slot
de 16 bits consta de 36 terminales más, distribuidos en grupos de 18 en dos
nuevas caras (C y D). La mayoría de las máquinas AT poseen slots de 8 y 16
bits, aunque lo ideal sería que todos fueran de 16 (en los de 16 bits se pueden
insertar también tarjetas de 8 bits, dejando la otra mitad al aire).
Las señales en
la parte de 8 bits son idénticas en XT y AT, si se exceptúa la línea IRQ2 que
en los AT es realmente IRQ9 (IRQ2 es empleada en la placa base para conectar en
cascada el segundo controlador de interrupciones; por compatibilidad con los
XT, cuando se produce una IRQ9 -normalmente una INT 71h- se invoca por software
la INT 0Ah).
En el siguiente
esquema, las líneas activas en alto van precedidas de un signo (+); las activas
en estado lógico bajo (-). Los símbolos I (Input) y O
(Output) indican si las líneas son de entrada, salida o bi
direccionales.
El slot de expansión de los PC contiene básicamente las
principales señales del 8086 demultiplexadas, así
como otras de interrupciones, DMA, control de E/S, etc. Las señales presentes
en el slot de expansión de 8 bits son:
OSC: |
(Oscilator) Señal de reloj de casi 70ns (14,31818 MHz) que está la mitad del período en estado alto y la
otra mitad en estado bajo. |
ALE: |
(Address Latch Enable) Indica en su flanco de bajada que el latch de direcciones se ha cargado con una dirección
válida procedente del microprocesador. |
TC: |
(Terminal
Count) Indica el final de la cuenta en algún canal
de DMA. |
DRQ1-DRQ3: |
(DMA
Request) Líneas asíncronas de petición de DMA (1
mayor prioridad, 3 menor). Esta línea debe activarse hasta que DACK (activo a
nivel bajo) suba. |
DACK1-DACK3: |
(DMA
Acknowledge) Indica que ha sido atendida la
petición de DMA y que debe bajarse el correspondiente DRQ. |
IRQ2-IRQ7: |
(Interrupt request) Indica una
petición de interrupción (2 mayor prioridad, 7 menor). La señal debe
mantenerse activa hasta que la interrupción acabe de ser procesada. |
IOR: |
(Input/Output Read) Señala al
dispositivo de E/S que se va a leer el bus de datos; esta línea la controla
la CPU o el DMA. |
IOW: |
(Input/Output Write) Señala al
dispositivo de E/S que se va a escribir en el bus de datos; esta línea la
controla también la CPU o el DMA. |
MEMR: |
(Memory Read) Indica que se va a
efectuar una lectura de la memoria en la dirección contenida en el bus de
direcciones. La activa la CPU o el DMA. |
MEMW: |
(Memory Write) Indica que se va
a efectuar una escritura en memoria en la dirección contenida en el bus de
direcciones. La activa la CPU o el DMA. |
RESET DRV: |
(Reset
drive) Avisa de que el sistema está en proceso de reinicialización,
para que todos los dispositivos conectados se inicialicen. Se activa en el
flanco de bajada de la señal del reloj. |
A0-A19: |
(Address) Bus de direcciones común a la memoria y a la
E/S, controlado por la CPU o el DMA. |
D0-D7: |
(Data)
Bus de datos que conecta el microprocesador y los demás componentes. |
AEN: |
(Address Enable) Valida la
dirección almacenada en A0-A19. Esto permite inhibir la CPU y los demás
dispositivos, pudiendo el DMA tomar el control. Los periféricos deben decodificar
la dirección comprobando que AEN está en estado bajo. |
I/O CH RDY: |
(I/O
Channel Ready) Esta línea
se pone momentáneamente en estado bajo por los periféricos lentos (no durante
más de 10 ciclos de reloj) cuando detectan una dirección válida en una
operación de E/S, con objeto de poder sincronizarse con la CPU, que genera
estados de espera. |
I/O CH CK: |
(I/O
Channel Check) Indica si
se ha producido un error de paridad en la memoria o en los dispositivos E/S. |
En los AT, las
líneas adicionales completan fundamentalmente la nueva longitud de los buses de
datos y direcciones, permitiendo acceder también al resto del nuevo hardware:
DRQ y DACK: |
Nuevas
líneas de petición/reconocimiento de DMA para los canales 5, 6 y 7, así como
el 0 (realmente el 4) que en los XT no estaba disponible al ser empleado por
el refresco de memoria. |
IRQ: |
Nuevos
niveles de interrupción: 10, 11, 12, 13, 14 y 15. IRQ8 es interna a la placa
base y no está presente en el slot; IRQ9 se utiliza
para emular IRQ2. |
I/O CS 16: |
Indica
un acceso de 16 bits en los puertos E/S. |
MEM CS 16: |
Indica
un acceso de 16 bits en la memoria. |
D8-D15: |
Parte
alta del bus de datos. |
A17-A23: |
Parte
alta del bus de direcciones. |
2. Bus de expansión Micro
Canal (MCA) de IBM.
Para sacar provecho de las
posibilidades del microprocesador 80386 que es de 32 bits, la IBM desarrolló en
sus computadores tipo PS/2 un nuevo bus de expansión, al que denominó Micro
Canal, mejor conocido por sus iniciales en inglés: MCA (Micro Channel Architecture), pero las
pruebas en computadores con entorno de DOS de usuario individual, y en redes
con hasta doce estaciones de trabajo, no mostraron mejoras de rendimiento.
Los diseñadores
reorganizaron las funciones de los contactos para reducir la interferencia y
lograr más velocidad en las operaciones, pero eliminaron la compatibilidad con
las tarjetas estándar ISA y EISA. Por lo tanto las tarjetas MCA solo trabajaban
en ranuras Micro Canal.
Vistas las limitaciones que
tenía el diseño del bus ISA en IBM se trabajó en un nueva tecnología de bus que
comercializó con su gama de ordenadores PS/2. El diseño MCA (Micro Channel Arquitecture) permitía
una ruta de datos de 32 bits, más ancha, y una velocidad de reloj ligeramente
más elevada de 10Mhz, con una velocidad de transferencia máxima de 20Mbps
frente a los 8Mbps del bus ISA.
Pero lo que es más
importante el novedoso diseño de bus de IBM incluyó un circuito de control
especial a cargo del bus, que le permitía operar independientemente de la
velocidad e incluso del tipo del microprocesador del sistema.
|
Bajo MCA, la CPU no es más que uno de
los posibles dispositivos dominantes del bus a los que se puede acceder para
gestionar transferencias. La circuitería de
control, llamada CAP (punto de decisión central), se enlaza con un proceso
denominado control del bus para determinar y responder a las prioridades de
cada uno de los dispositivos que dominan el bus. |
Para permitir la conexión
de más dispositivos, el bus MCA especifica interrupciones sensibles al nivel,
que resultan más fiables que el sistema de interrupciones del bus ISA. De esta
forma es posible compartir interrupciones. Pero además se impusieron estándares
de rendimiento superiores en las tarjetas de expansión.
Es cierto que el progreso
conlleva un precio: La nueva arquitectura de IBM es totalmente incompatible con
las tarjetas de expansión que se incluyen en el bus ISA. Esto viene derivado de
que los conectores de las tarjetas de expansión MCA eran más pequeños que las
de los buses ISA. De esto se pueden sacar dos conclusiones. Por un lado el
coste de estas tarjetas era menor y por otro ofrecía un mayor espacio interior
en las pequeñas cajas de sobremesa.
Las señales del bus estaban
reorganizadas de forma que se introducía una señal de tierra cada 4 conectores.
De esta forma se ayudaba a reducir las interferencias.
Un consorcio de nueve fabricantes
de equipos compatibles con IBM, encabezados por Compaq Computer
Corp., diseñó un bus de expansión que ofrece la
posibilidad del Micro Canal sin sus desventajas, y plena compatibilidad con las
tarjetas interfaz hechas para el bus ISA. Lo llamaron EISA (Enhanced
Industry Standard Architecture)
" ISA mejorado". Puede manejar paralelamente palabras de 32 bits de
ancho, lo que se traduce una mejora de la velocidad de adquisición o envío de
datos.
|
EL conector EISA para las tarjetas
interfaz de periféricos tiene más funciones y más contactos que un conector
de bus ISA (188 contra 98), pero se diseñó para tener plena compatibilidad
previa con las tarjetas de ISA. |
Se mantienen todas las
conexiones ISA en sus posiciones normales, pero se añade una nueva fila de
contactos más baja para unirse a las funciones avanzadas. Estos contactos se unieron
a los circuitos de la tarjeta de expansión intercalando las líneas adicionales
en los espacios dejados entre los contactos normales de una tarjeta ISA.
Las ranuras o slots para tarjetas EISA pueden recibir tanto tarjetas de
bus ISA como de bus EISA, pero la compatibilidad es de un solo sentido: las
tarjetas diseñadas para el bus EISA no trabajan en ranuras de bus ISA.
Su mayor ventaja con
respecto al bus MCA es que EISA era un sistema abierto, ya que fue desarrollado
por la mayoría de fabricantes de ordenadores compatibles PC que no aceptaron el
monopolio que intentó ejercer IBM. Estos fabricantes fueron: AST, Compaq, Epson, Hewlett Packard, NEC, Olivetti, Tandy, Wyse y Zenith.
Esta arquitectura de bus
permite multiproceso, es decir, integrar en el sistema varios buses dentro del
sistema, cada uno con su procesador. Si bien esta característica no es
utilizada más que por sistemas operativos como UNIX o Windows NT.
En una máquina EISA, puede
haber al mismo tiempo hasta 6 buses principales con diferentes procesadores
centrales y con sus correspondientes tarjetas auxiliares.
En este bus hay un chip que
se encarga de controlar el tráfico de datos señalando prioridades para cada
posible punto de colisión o bloqueo mediante las reglas de control de la especificación
EISA. Este chip recibe el nombre de Chip del Sistema Periférico Integrado
(ISP). Este chip actúa en la CPU como un controlador del tráfico de datos.
El motivo para que ni MCA
ni EISA hayan sustituido por completo a ISA es muy sencillo: Estas alternativas
aumentaban el coste del PC (incluso más del 50%) y no ofrecían ninguna mejora
evidente en el rendimiento del sistema. Es más, en el momento en que se
presentaron estos buses (1987-1988) esta superioridad en el rendimiento no
resultaba excesivamente necesaria: Muy pocos dispositivos llegaban a los
límites del rendimiento del bus ISA ordinario.
Una manera de acelerar la
transferencia de grandes cantidades de información desde el microprocesador a
la pantalla, entre periféricos, o entre periféricos y la memoria, es crear una
conexión más directa y rápida entre ellos para evitar el uso del bus de
expansión común a todos los circuitos del computador, el cual es muy lento. A
este minibus se le llama "bus local".
A partir del microprocesador
80486 ya es posible que los fabricantes realicen sus propios diseños de bus
local. Uno de ellos fue NEC, quien introdujo los primeros computadores
personales de bus local para el video con circuitos en la tarjeta base. Otros
fabricantes tienen actualmente tres diseños de bus local para escoger: Uno es
el bus local para video VL-Bus diseñado por la Asociación para Estándares del Video (VESA). El segundo es un bus local para interconectar
periféricos directamente a los buses de datos y direcciones del
microprocesador, basado en el juego (chipset) de
integrados OPTi. El tercero es el bus local PCI (Peripheral Component Interconnect) desarrollado por Intel
para aprovechar al máximo los recursos de su microprocesador Pentium, pero
también se puede usar con procesadores 80486.
|
Los diseños típicos de bus local para
video sacan los circuitos de video del bus de expansión y agregan un nuevo
enlace directo al microprocesador. |
La conexión local, que
puede estar alambrada a los circuitos de video en la misma tarjeta base (system board) del computador, o
en una tarjeta interfaz especial para el nuevo diseño de bus de expansión , opera a la velocidad de la memoria y con
capacidad de 32 bits, dándole al manejo del video un potencial de velocidad
apreciable mayor que una conexión normal de un bus de expansión.
Los diseños de bus local OPTi y VESA permiten actualmente hasta tres ranuras de
expansión, suficiente para alojar la tarjeta de video, la tarjeta controladora
de disco y una tarjeta adaptadora de red. El número de ranuras se ha mantenido
bajo debido a la limitación impuesta por la capacitancia
electrónica interna de los conectores y las altas frecuencias que deben manejar
(hasta 66 MHz).
A diferencia de las altas
velocidades de transferencia prometidas por los buses de expansión Micro Channel y EISA, que requieren de comandos de software
especiales, los diseños de bus local trabajan a toda velocidad con los
programas de aplicación tradicionales, sin modificaciones ni manejadores
especiales.
5. El VL-Bus 1.0 (Vesa Local Bus).
Aunque con las ranuras (slots) EISA se consigue una transferencia de 32 bits
paralelos, existe el problema de que la velocidad del reloj del bus y el del
microprocesador, son diferentes, lo cual crea cuellos de botella (demoras),
sobretodo en aplicaciones gráficas con video animado.
El bus local VES, llamada
también VL-Bus, es una especificación de estructura de bus aprobada en agosto
de 1992 por la Video Electronics
Standards Association para
responder a las limitaciones del bus ISA en los computadores personales. Mejora
la capacidad del bus (32 bits) y la velocidad de transferencia (hasta 40 MHz).
|
Para que las tarjetas interfaz de los
periféricos puedan acceder a los recursos del bus local VESA, la tarjeta base
del computador incluye en el bus de expansión un tercer conector de borde,
alineado con el par de conectores estándar para el bus de expansión ISA o EISA.
|
El hecho de utilizar los
mismos dos conectores de ranura del bus ISA o EISA, hace que la tarjeta base
sea compatible con todas las tarjetas de expansión hechas para dichos buses. Los
fabricantes de tarjetas base para computador ofrecen actualmente modelos que
incluyen hasta tres buses diferentes: ISA-VESA, EISA-VESA o ISA-EISA-VESA.
Igual que el bus PCI de Intel, la versión 2.0 del bus local VESA, soporta periféricos
de 64 bits, que es tamaño del bus del Pentium. Las tarjetas que utilizan el bus
local 2.0 de 64 bits se han diseñado para usar el mismo conector de la serie
1.0 de 32 bits, usando la técnica de multiplexado de líneas de direcciones para
lograr el equivalente de 64 líneas de datos (las 32 líneas se conmutan a cierta
velocidad para que en un instante pasen unas señales y en el instante siguiente
pasen las 32 restantes).
7. El bus acelerador de gráficos.
|
|
El AGP (Accelerated
Graphics Port, Puerto de
Gráficos Acelerados) es una especificación de bus que permite que se desplieguen
rápidamente gráficos en 3D en ordenadores personales comunes. El AGP es una
interfaz especial diseñada para transmitir imágenes en 3D (por ejemplo, de
páginas Web o CD-ROM’s) mucho más veloz y ágilmente de lo que es posible hoy
en una ordenador que no sea una costosa estación de trabajo gráfica. |
La interfaz usa el
almacenamiento principal del ordenador (RAM) para refrescar la imagen del
monitor y soportar el mapeo de texturas, el z-buffering
y la mezcla alfa que se requiere para el despliegue de imágenes en 3D.
El uso que hace el AGP de
la memoria principal es dinámico, lo cual significa que cuando no se está
utilizando para gráficos acelerados, la memoria principal se devuelve para uso
del sistema operativo u otras aplicaciones.
Intel, que se ha situado a la vanguardia en
el desarrollo de sus especificaciones, ha integrado el AGP en un chipset para su microprocesador Pentium II.
Los Pentium II se han
diseñado para trabajar con el chipset AGP. Según Intel, la unidad de coma flotante avanzada y el algoritmo
de caché más rápido del Pentium II están mejor adaptados para las aplicaciones
tridimensionales.
Publicado en Junio de 2003 por:
José Eduardo Niño
www.angelfire.com/al3/joseddon