Jerarquía de buses múltiples

Si se conectan un gran número de dispositivos a un bus, las prestaciones de éste pueden disminuir al aumentar el retardo de propagación debido al tiempo de coordinación de los diferentes dispositivos para el uso del bus y, además, se forma un cuello de botella (o congestión) al estar los dispositivos continuamente esperando que sea su turno para usar el bus común. Se puede intentar paliar este problema aumentado el ancho de banda del bus, pero la solución más efectiva consiste en utilizar varios buses, de diferentes velocidades, y organizarlos de forma jerárquica. La ventaja principal de utilizar una organización jerarquizada de los buses es que los dispositivos de E/S más exigentes se ponen más cerca del procesador y se les da prioridad con el fin de evitar los temidos cuellos de botella. En la figura 6 se puede observar una jerarquía de buses típica que se puede encontrar en un ordenador actual. Se pueden ver el bus local y el bus de memoria que conectan el procesador con la jerarquía de memoria (caches externas y memoria principal). Éstos son los buses de mayor velocidad ya que el rendimiento de todo el sistema depende en gran medida de la comunicación entre la jerarquía de memoria y el procesador. En otro nivel de nuestra jerarquía de buses se encuentran los buses de expansión tales como el bus PCI (Peripheral Component Interconnect) y el bus ISA (Industry Standard Architecture), a los que se conectan una gran variedad de dispositivos de E/S, desde tarjetas de sonido hasta impresoras. Con esta configuración podemos aislar el tráfico entre la memoria y el procesador del tráfico correspondiente al resto de dispositivos de E/S. Finalmente, en una jerarquía de buses típica también se encuentran los buses dedicados o de propósito específico, tales como los buses IDE y SCSI para dispositivos de almacenamiento (discos duros, CD-ROM, DVD-ROM, disqueteras), el bus AGP (Accelerated Graphics Port) para tarjetas gráficas de alto rendimiento y los buses firewire y USB para multitud de dispositivos de entrada/salida que podemos encontrar en el mercado (discos duros, lectores de tarjetas flash, cámaras de fotos/vídeo/webcam, teclados, ratones, impresoras, scanners, etc.) En definitiva, se pretende tener múltiples y diferentes buses jerarquizados, para que dispositivos de diferentes velocidades no interfieran entre sí y se eviten congestiones de tráfico debidas a que los dispositivos más lentos impidan que los más rápidos se comuniquen con el procesador.