En un sistema informático, los buses son los canales de comunicación que permiten transferir datos, direcciones y señales de control entre los distintos componentes (CPU, memoria, dispositivos de entrada/salida).
Dado que no todos los dispositivos requieren la misma velocidad, ancho de banda o prioridad, se organiza una jerarquía de buses, donde cada nivel atiende diferentes funciones y características.
Los buses se pueden clasificar en tres tipos básicos dentro de cualquier nivel de la jerarquía:
Bus de datos: Transporta la información (instrucciones o datos) entre CPU, memoria y periféricos.
Bus de direcciones: Indica la posición de memoria o el dispositivo al que se dirige la operación.
Bus de control: Transporta señales que sincronizan y gestionan las operaciones (lectura/escritura, interrupciones, reloj, etc.).
La jerarquía se organiza considerando velocidad, costo y proximidad a la CPU:
También llamado bus interno o datapath.
Conecta las unidades internas de la CPU: ALU, registros, unidad de control y caché L1.
Es extremadamente rápido y de ancho reducido (depende del diseño del procesador).
Opera a la misma frecuencia que el reloj del procesador.
Conecta la CPU con la memoria principal (RAM) y, en algunos casos, con el chipset principal.
Define en gran medida el rendimiento del sistema.
Ejemplo: en arquitecturas modernas ha sido reemplazado por enlaces como Intel QuickPath Interconnect (QPI) o AMD HyperTransport.
Sirven para conectar dispositivos que requieren gran ancho de banda, como tarjetas gráficas o discos de estado sólido.
Ejemplos: PCI Express (PCIe), AGP (antiguo), NVLink de NVIDIA.
Funcionan a frecuencias muy altas y con canales paralelos o seriales de alta velocidad.
Permiten la conexión de dispositivos de entrada/salida que no necesitan tanta velocidad como los gráficos o la RAM.
Ejemplos históricos: ISA, PCI, VMEbus.
Ejemplo actual: PCI sigue presente, aunque desplazado en muchos casos por PCIe.
Conectan dispositivos externos al sistema, generalmente con velocidades más bajas y mayor versatilidad.
Ejemplos: USB, FireWire (IEEE 1394), Thunderbolt, SATA, eSATA, Ethernet.
Aquí prima la compatibilidad y flexibilidad, más que la velocidad.
Podemos resumir la jerarquía en forma piramidal (de más rápido a más lento):
Buses internos de la CPU nanosegundos.
Bus del sistema (CPU RAM Chipset) muy rápido, pero más lento que la CPU.
Buses de alta velocidad (PCIe, AGP, QPI, HyperTransport).
Buses de expansión (PCI, ISA, etc.).
Buses externos (USB, SATA, Thunderbolt, Ethernet, etc.) → microsegundos a milisegundos.
Velocidad decreciente conforme se baja de nivel.
Costo decreciente: los buses más rápidos requieren más tecnología y diseño sofisticado.
Número de dispositivos conectados aumenta en niveles bajos.
Especialización: los niveles superiores (internos y de sistema) están diseñados para rendimiento; los inferiores, para compatibilidad y conectividad.
CPU Caché L1/L2/L3 buses internos y enlaces directos.
CPU RAM a través de controladores de memoria integrados (ej. DDR4/DDR5 con bus dedicado).
CPU GPU PCI Express 4.0/5.0.
CPU Almacenamiento NVMe PCI Express vía M.2.
CPU Dispositivos externos USB 3.2, Thunderbolt 4, Ethernet.
Sustitución de buses paralelos por buses seriales de alta velocidad (ej. PCIe, SATA, USB-C).
Integración en chip (SoC): CPU, GPU, controladores de memoria y buses de alta velocidad dentro de un mismo chip.
Interconexiones punto a punto: sustituyen los buses compartidos, mejorando la escalabilidad.