| Artículos | 01 MAR 2002

Los buses del PC

Tags: Histórico
Descubra los canales de comunicación entre los componentes del PC
Félix Torán.
En esta entrega abordamos un elemento imprescindible en el diseño de cualquier ordenador: el bus. Presentaremos los buses más representativos de los PC actuales (ISA, PCI y AGP), destacando sus características más importantes.

Hasta ahora hemos introducido los elementos imprescindibles del PC (así como de cualquier computadora): la CPU, la memoria y las unidades de entrada y salida (E/S). El número de periféricos estándares que rodean a un PC, así como los muchos periféricos empleados para expandir sus capacidades, hacen que el PC esté formado por un gran número de subsistemas que se comunican entre sí. Llegados a este punto, no cabe duda de que es necesario definir un mecanismo para interconectar dichos bloques funcionales. Ese mecanismo recibe el nombre de bus. En este artículo vamos a introducir el concepto de bus, y mostraremos la estructura de buses que componen un PC en la actualidad, deteniéndonos en los más conocidos (ISA, PCI y AGP). También introduciremos un componente clave de la placa base, que se halla íntimamente ligado a los buses: el chipset.

El concepto de bus
En primer lugar, un bus es un conjunto de líneas capaces de transportar señales digitales. En la práctica, el concepto de bus se traduce en un conjunto de pistas sobre una placa de circuito impreso (la placa base, en el PC).
Los diferentes dispositivos a interconectar se acoplan al bus, compartiendo las líneas que lo componen. Esto puede llevar a conflictos si no se establece una correcta coordinación de su uso. Por ejemplo, un conflicto importante surgiría si dos dispositivos intentasen poner información sobre el bus al mismo tiempo. Igualmente conflictivo es el caso de un dispositivo que envía información a otro, existiendo un tercer dispositivo que la recibe y procesa (cuando no debería hacerlo). En general, el bus es utilizado por dos dispositivos cada vez: uno envía la información y el otro la recibe. Tras esta discusión, se debe completar aún más la definición de bus con un ingrediente adicional. En efecto, es necesario establecer una serie de normas que aseguren una correcta armonía en el uso del bus (o visto desde el vértice opuesto, que eviten conflictos). En otras palabras, un bus es la suma de un conjunto de líneas digitales (parte física) y un conjunto de normas sobre su uso (parte lógica).
Tras completar la definición de un bus, es importante señalar que, en la situación particular de un bus que interconecta tan sólo dos dispositivos, la denominación correcta sería “puerto” en lugar de bus.

Caracterización de buses
Todo bus se puede caracterizar en función de varios descriptores. Comenzando por su estructura, cualquier bus se puede dividir en dos sub-buses: el bus de direcciones y el bus de datos. El bus de datos es el que transporta la información entre dispositivos durante las transferencias de datos. Por otro lado, el bus de direcciones transporta la información que identifica dónde deben ir a parar los datos transferidos, o bien desde dónde se deben extraer. Dichos orígenes y destinos se identifican mediante números, comúnmente conocidos como direcciones. Todavía existe un tercer sub-bus, al que se suele denominar bus de control. Éste transporta la información necesaria para controlar el funcionamiento del bus (por ejemplo, una función importante consiste en indicar cuándo hay datos disponibles en el bus).
Otra característica importante es la anchura del bus. Aunque dicha cantidad está relacionada directamente con el número de líneas que componen el bus, es más frecuente expresarla en bits (en general cada línea transporta un bit de información en cada transferencia). A mayor anchura, el bus será capaz de transferir un mayor número de bits simultáneamente en cada ciclo de bus.
Otro descriptor no menos importante es la velocidad del bus. Ésta refleja la cantidad de ciclos de transferencia que pueden tener lugar por segundo en cada línea del bus, y por tanto se mide en MHz.
De las dos características anteriores se deriva el ancho de banda del bus. Dicha medida se corresponde con la multiplicación de la velocidad y la anchura, y refleja la cantidad de información que puede transferir el bus por unidad de tiempo (en este caso, al tratarse de información, la unidad es MB por segundo). Efectivamente, cuanto mayor sea el número de líneas disponibles, y mayor sea la velocidad de transferencia en cada línea, mayor será la cantidad total de bytes transferidos por segundo. Tómese como ejemplo el bus ISA, con una anchura de 16 bits y una velocidad de 8 MHz. El ancho de banda se calcularía como sigue: 16 bits x (8 x 1.000.000) ciclos/segundo = 128.000.000 bits/s = 16.000.000 bytes/s = 15,26 MB/s. Nótese la gran diferencia entre MHz y MB/s. Un MHz es 1.000.000 ciclos/s, mientras que un MB/s son 1.048.576 bytes/s. Expresar el resultado del ejemplo como 16 MB/s sería, por tanto, incorrecto por definición.

Jerarquía de buses: el concepto de bus local
En todo PC coexisten varios buses, los cuales se hallan estructurados de forma jerárquica. En primer lugar se encuentra el bus que une a la CPU con la memoria. Este bus se denomina típicamente “bus del sistema”. En los primeros PC, los dispositivos de E/S se acoplaban directamente sobre el bus de sistema que, por tanto, era el único bus del PC (ver Figura 1). Esta configuración fuerza a la CPU a transferir datos a la misma velocidad que los dispositivos de E/S, y por tanto se puede pensar en una pérdida de rendimiento del sistema. Sin embargo, en aquellos tiempos las CPU trabajaban a velocidades bastante reducidas, por lo que esta configuración era viable.
Hoy en día, forzar a la CPU a trabajar en sincronía con la E/S es impensable. De hecho, no pasaron demasiados años hasta adoptar una solución alternativa: separar a los dispositivos de E/S del bus del sistema. La solución consiste en crear buses dedicados a la E/S (denominados buses locales), y conectar estos al bus del sistema. Los principales buses locales presentes en los PC actuales son: ISA, PCI, AGP y USB. La Figura 2 muestra la jerarquía establecida. Puede apreciarse que al bus ISA se conectan varios dispositivos estándares (especialmente los más lentos), como es el caso de los puertos serie (COM1 y COM2) y el puerto paralelo (LPT1), además de otros dispositivos de expansión. Al bus PCI se conectan dispositivos más rápidos, como los discos duros EIDE, los adaptadores de red, y otros muchos dispositivos de expansión a través de las ranuras PCI. Se puede apreciar que AGP es un puerto, ya que tan sólo comunica dos subsistemas (CPU y sistema de vídeo), y por ello no se enlaza al bus del sistema. El bus USB es el más moderno de los tres, y lo explicaremos con detalle en posteriores entregas.

El chipset
En principio, la CPU actúa como un intermediario en las transferencias de información entre dispositivos. En un primer uso del bus, el dispositivo entrega la información a la CPU. En un segundo uso del bus, la CPU envía la información al dispositivo de destino (normalmente, la memoria). Como se puede intuir, esta forma de trabajo proporciona un rendimiento que se puede mejorar. Por ello, los buses suelen aportar técnicas que permiten que los dispositivos intercambien información de forma directa, sin necesidad de pasar por la CPU. Un claro ejemplo es la técnica DMA (Direct Memory Access o acceso directo a memoria), que pe

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información