En
arquitectura de computadores, el bus (o
canal) es un sistema digital que transfiere datos entre los componentes de una
computadora o entre computadoras. Está formado por cables o pistas en un
circuito impreso, dispositivos como resistores y condensadores además de
circuitos integrados.
En
los primeros computadores electrónicos, todos los buses eran de tipo paralelo,
de manera que la comunicación entre las partes del
computador se hacía por medio de cintas o muchas pistas en el circuito impreso, en los cuales cada conductor tiene una función fija y la conexión es sencilla requiriendo únicamente puertos de entrada y de salida para cada dispositivo.
computador se hacía por medio de cintas o muchas pistas en el circuito impreso, en los cuales cada conductor tiene una función fija y la conexión es sencilla requiriendo únicamente puertos de entrada y de salida para cada dispositivo.
La
tendencia en los últimos años se hacía uso de buses seriales como el USB,
Firewire para comunicaciones con periféricos reemplazando los buses paralelos,
incluyendo el caso como el del microprocesador con el chipset en la placa base.
Esto a pesar de que el bus serial posee una lógica compleja (requiriendo mayor
poder de cómputo que el bus paralelo) a cambio de velocidades y eficacias
mayores.
Existen
diversas especificaciones de que un bus se define en un conjunto de
características mecánicas como conectores, cables y tarjetas, además de protocolos
eléctricos y de señales.
Funcionamiento
La
función del bus es la de permitir la conexión lógica entre distintos
subsistemas de un sistema digital, enviando datos entre dispositivos de
distintos órdenes: desde dentro de los mismos circuitos integrados, hasta
equipos digitales completos que forman parte de supercomputadoras.
La
mayoría de los buses están basados en conductores metálicos por los cuales se
trasmiten señales eléctricas que son enviadas y recibidas con la ayuda de
integrados que poseen una interfaz del bus dado y se encargan de manejar las
señales y entregarlas como datos útiles. Las señales digitales que se trasmiten
son de datos, de direcciones o señales de control.
Los
buses definen su capacidad de acuerdo a la frecuencia máxima de envío y al
ancho de los datos. Por lo general estos valores son inversamente
proporcionales: si se tiene una alta frecuencia, el ancho de datos debe ser
pequeño.
Esto
se debe a que la interferencia entre las señales (crosstalk) y la dificultad de
sincronizarlas, crecen con la frecuencia, de manera que un bus con pocas
señales es menos susceptible a esos problemas y puede funcionar a alta velocidad.
Todos
los buses de computador tienen funciones especiales como las interrupciones y
las DMA que permiten que un dispositivo periférico acceda a una CPU o a la
memoria usando el mínimo de recursos.
Primera
generación
Los
primeros computadores tenían 2 sistemas de buses, uno para la memoria y otro
para los demás dispositivos. La CPU tenía que acceder a dos sistemas con
instrucciones para cada uno, protocolos y sincronizaciones diferentes.
La
empresa DEC notó que el uso de dos buses no era necesario si se combinaban las direcciones
de memoria con las de los periféricos en un solo espacio de memoria (mapeo), de
manera que la arquitectura se simplificaba ahorrando costos de fabricación en equipos
fabricados en masa, como eran los primeros minicomputadores.
Los
primeros microcomputadores se basaban en la conexión de varias tarjetas de
circuito impreso a un bus Backplane pasivo que servía de eje al sistema. En ese
bus se conectaba la tarjeta de PU que realiza las funciones de árbitro de las
comunicaciones con las demás tarjetas de dispositivo conectadas; las tarjetas
incluían la memoria, controladoras de diskette y disco, adaptadores de vídeo.
La CPU escribía o leía los datos apuntando a la dirección que tuviera el
dispositivo buscado en el espacio único de direcciones haciendo que la
información fluyera a través del bus principal.
Entre
las implementaciones más conocidas, están los buses Bus S-100 y el Bus ISA
usados en varios microcomputadores de los años 70 y 80. En ambos, el bus era
simplemente una extensión del bus del procesador de manera que funcionaba a la
misma frecuencia. Por ejemplo en los sistemas con procesador Intel 80286 el bus
ISA tenía 6 u 8 megahercios de frecuencia dependiendo del procesador.
Segunda
generación
Jerarquía
de diversos buses en un equipo relativamente moderno: SATA, FSB, AGP, USB entre
otros.
El
hecho de que el bus fuera pasivo y que usara la CPU como control, representaba
varios problemas para la ampliación y modernización de cualquier sistema con
esa arquitectura.
Además
que la CPU utilizaba una parte considerable de su potencia en controlar el bus.
Desde
que los procesadores empezaron a funcionar con frecuencias más altas, se hizo necesario
jerarquizar los buses de acuerdo a su frecuencia: se creó el concepto de bus de
sistema (conexión entre el procesador y la RAM) y de buses de expansión,
haciendo necesario el uso de un chipset.
El
bus ISA utilizado como backplane en el PC IBM original pasó de ser un bus de
sistema a uno de expansión, dejando su arbitraje a un integrado del chipset e
implementando un bus a una frecuencia más alta para conectar la memoria con el
procesador.
En
cambio, el bus Nubus era independiente desde su creación, tenía un controlador
propio y presentaba una interfaz estándar al resto del sistema, permitiendo su
inclusión en diferentes arquitecturas. Fue usado en diversos equipos, incluyendo
algunos de Apple y se caracterizaba por tener un ancho de 32 bits y algunas
capacidades Plug and Play (autoconfiguración), que lo hacían muy versátil y
adelantado a su tiempo. Entre otros ejemplos de estos buses autónomos, están el
AGP y el bus PCI.
Tercera
generación
Los
buses de tercera generación se caracterizan por tener conexiones punto a punto,
a diferencia de los buses arriba nombrados en los que se comparten señales de
reloj. Esto se logra reduciendo fuertemente el número de conexiones que
presenta cada dispositivo usando interfaces seriales. Entonces cada dispositivo
puede negociar las características de enlace al inicio de la conexión y en
algunos casos de manera dinámica, al igual que sucede en las redes de comunicaciones.
Entre los ejemplos más notables, están los buses PCI-Express, el Infiniband y
el HyperTransport.
Tipos
de bus:
Existen
dos grandes tipos clasificados por el método de envío de la información: bus paralelo o bus serie.
Hay
diferencias en el desempeño y hasta hace unos años se consideraba que el uso
apropiado dependía de la longitud física de la conexión: para cortas distancias
el bus paralelo, para largas el serial.
Bus
paralelo:
Es
un bus en el cual los datos son enviados por bytes al mismo tiempo, con la
ayuda de varias líneas que tienen funciones fijas. La cantidad de datos enviada
es bastante grande con una frecuencia moderada y es igual al ancho de los datos
por la frecuencia de funcionamiento. En los computadores ha sido usado de
manera intensiva, desde el bus del procesador, los buses de discos duros,
tarjetas de expansión y de vídeo, hasta las impresoras.
AEl
front-side bus de los
procesadores Intel es un bus de este tipo y como cualquier bus presenta unas funciones
en líneas dedicadas:
•
Las líneas de dirección son las
encargadas de indicar la posición de memoria o el dispositivo con el que se
desea establecer comunicación.
•
Las líneas de control son las
encargadas de enviar señales de arbitraje entre los dispositivos. Entre las más
importantes están las líneas de interrupción, DMA y los indicadores de estado.
•
Las líneas de datos transmiten
los bits de forma aleatoria de manera que por lo general un bus tiene un ancho
que es potencia de 2.
Un
bus paralelo tiene conexiones físicas complejas, pero la lógica es sencilla,
que lo hace útil en sistemas con poco poder de cómputo. En los primeros
microcomputadores, el bus era simplemente la extensión del bus del procesador y
los demás integrados "escuchan" las líneas de direcciones, en espera
de recibir instrucciones. En el PC IBM original, el diseño del bus fue
determinante a la hora de elegir un procesador con I/O de 8 bits (Intel 8088),
sobre uno de 16 (el 8086), porque era posible usar hardware diseñado para otros
procesadores, abaratando el producto.
Bus
serie:
En
este los datos son enviados, bit a bit y se reconstruyen por medio de registros
o rutinas de software. Está formado por pocos conductores y su ancho de banda
depende de la frecuencia. Es usado desde hace menos de 10 años en buses para
discos duros, unidades de estado sólido, tarjetas de expansión y para el bus
del procesador.
No hay comentarios:
Publicar un comentario