Articulo de referencia

Autobús (informática)

Cuatro ranuras para tarjetas de bus PCI Express (de arriba a abajo: ×4, ×16, ×1 y ×16), en comparación con una ranura para tarjeta de bus PCI convencional de 32 bits (la de abaj...

Cuatro ranuras para tarjetas de bus PCI Express (de arriba a abajo: ×4, ×16, ×1 y ×16), en comparación con una ranura para tarjeta de bus PCI convencional de 32 bits (la de abajo del todo).

En arquitectura de computadoras , un bus (históricamente también llamado autopista de datos [ 1 ] o bus de datos ) es un sistema de comunicación que transfiere datos entre componentes dentro de una computadora o entre computadoras. [ 2 ] Abarca tanto hardware (por ejemplo, cables, fibra óptica , ranuras de bus ) como software , incluidos los protocolos de comunicación . [ 3 ] En esencia, un bus es una vía física compartida, generalmente compuesta por cables o pistas en una placa de circuito impreso, que permite que múltiples dispositivos se comuniquen. A diferencia de las redes que enrutan paquetes direccionados a través de conmutadores , los buses utilizan protocolos de arbitraje para gestionar qué dispositivo puede transmitir datos a través de la vía compartida.

Los buses se clasifican según su función, como los buses del sistema (también conocidos como buses internos, buses de datos internos o buses de memoria) que conectan la CPU y la memoria . Los buses de expansión , también llamados buses periféricos , extienden el sistema para conectar dispositivos adicionales, incluidos periféricos . Algunos ejemplos de buses ampliamente utilizados son PCI Express (PCIe) para conexiones internas de alta velocidad y Universal Serial Bus (USB) para conectar dispositivos externos.

Los buses modernos utilizan comunicación tanto en paralelo como en serie , empleando métodos de codificación avanzados para maximizar la velocidad y la eficiencia. Funcionalidades como el acceso directo a memoria (DMA) mejoran aún más el rendimiento al permitir la transferencia de datos directamente entre dispositivos y memoria sin necesidad de intervención de la CPU.

Autobús de dirección

Un bus de direcciones es un bus que se utiliza para especificar una dirección física . Cuando un procesador o un dispositivo habilitado para DMA necesita leer o escribir en una ubicación de memoria, especifica esa ubicación de memoria en el bus de direcciones (el valor que se va a leer o escribir se envía en el bus de datos). [ 4 ] El ancho del bus de direcciones determina la cantidad de memoria que un sistema puede transferir simultáneamente. [ 5 ] Por ejemplo, un sistema con un bus de direcciones de 32 bits puede direccionar 2³² ( 4.294.967.296 ) ubicaciones de memoria. [ 6 ] Si cada ubicación de memoria contiene un byte, el espacio de memoria direccionable es aproximadamente4 GB  .

Multiplexación de direcciones

Los primeros procesadores usaban un cable para cada bit del ancho de la dirección. Por ejemplo, un bus de direcciones de 16 bits tenía 16 cables físicos que lo conformaban. A medida que los buses se hicieron más anchos y largos, este enfoque se volvió costoso en términos de la cantidad de pines del chip y pistas de la placa. A partir de la DRAM Mostek 4096 , la multiplexación de direcciones implementada con multiplexores se hizo común. [ 7 ] En un esquema de direcciones multiplexadas, la dirección se envía en dos partes iguales en ciclos de bus alternos. Esto reduce a la mitad la cantidad de señales del bus de direcciones necesarias para conectarse a la memoria. Por ejemplo, un bus de direcciones de 32 bits se puede implementar usando 16 líneas y enviando la primera mitad de la dirección de memoria, seguida inmediatamente por la segunda mitad de la dirección de memoria.

Normalmente, se utilizan dos pines adicionales en el bus de control ( estroboscopio de dirección de fila (RAS) y estroboscopio de dirección de columna (CAS)) para indicarle a la DRAM si el bus de direcciones está enviando la primera mitad de la dirección de memoria o la segunda mitad.  

Implementación

El acceso a un byte individual suele requerir la lectura o escritura de todo el ancho del bus (una palabra ) a la vez. En estos casos, es posible que ni siquiera se implementen los bits menos significativos del bus de direcciones; en su lugar, es responsabilidad del dispositivo de control aislar el byte individual requerido de la palabra completa transmitida. Este es el caso, por ejemplo, del bus local VESA , que carece de los dos bits menos significativos, lo que limita este bus a transferencias alineadas de 32 bits.

Históricamente, también hubo algunos ejemplos de computadoras que solo podían procesar palabras : las máquinas de palabras . 

Bus de memoria

El bus de memoria es el bus que conecta la memoria principal con el controlador de memoria en los sistemas informáticos. Originalmente, se utilizaban buses de propósito general como el VMEbus y el bus S-100 , pero para reducir la latencia , los buses de memoria modernos están diseñados para conectarse directamente a los chips DRAM y, por lo tanto, están definidos por organismos de estandarización de chips como JEDEC . Ejemplos de ello son las distintas generaciones de SDRAM y los buses serie punto a punto como SLDRAM y RDRAM .

Detalles de implementación

Los buses pueden ser paralelos , que transportan palabras de datos en paralelo a través de múltiples cables, o seriales , que transportan datos en formato bit-serie. La adición de conexiones de alimentación y control adicionales, controladores diferenciales y conexiones de datos en cada dirección generalmente implica que la mayoría de los buses seriales tienen más conductores que el mínimo de uno utilizado en 1-Wire y UNI/O . A medida que aumentan las velocidades de datos, los problemas de desfase temporal , consumo de energía, interferencia electromagnética y diafonía en buses paralelos se vuelven cada vez más difíciles de evitar. Una solución parcial a este problema ha sido duplicar la señal del bus. A menudo, un bus serial puede operar a velocidades de datos generales más altas que un bus paralelo, a pesar de tener menos conexiones eléctricas, porque un bus serial inherentemente no tiene desfase temporal ni diafonía. USB , FireWire y Serial ATA son ejemplos de esto. Las conexiones multidrop no funcionan bien para buses seriales rápidos, por lo que la mayoría de los buses seriales modernos utilizan diseños en cadena o de concentrador.

La transición de buses paralelos a seriales fue posible gracias a la ley de Moore , que permitió la incorporación de serializadores/deserializadores en los circuitos integrados que se utilizan en las computadoras. [ 8 ]

Las conexiones de red como Ethernet no se consideran generalmente buses, aunque la diferencia es principalmente conceptual más que práctica. Un atributo que se suele usar para caracterizar un bus es que este proporciona energía al hardware conectado. Esto enfatiza el origen de la arquitectura de bus como barra colectora para el suministro de energía conmutada o distribuida. Esto excluye, como buses, esquemas como RS-232 serial, Centronics paralelo , interfaces IEEE 1284 y Ethernet, ya que estos dispositivos también necesitaban fuentes de alimentación independientes. Los dispositivos USB pueden usar la energía suministrada por el bus, pero a menudo utilizan una fuente de alimentación independiente. Esta distinción se ejemplifica en un sistema telefónico con un módem conectado , donde la conexión RJ11 y el esquema de señalización modulada asociado no se consideran un bus, y son análogos a una conexión Ethernet . Un esquema de conexión de línea telefónica no se considera un bus con respecto a las señales, pero la central telefónica utiliza buses con conmutadores de barra cruzada para las conexiones entre teléfonos.

Sin embargo, esta distinción —que la energíala proporciona el bus— no se sistemas de aviónica , donde las conexiones de datos como ARINC 429 , ARINC 629 , MIL-STD-1553B (STANAG 3838) y EFABus ( STANAG 3910 ) se conocen comúnmente como buses de datos o, a veces, como databuses . Estos buses de datos de aviónica suelen caracterizarse por tener varios elementos/unidades reemplazables en línea (LRI/LRU) conectados a un medio común y compartido . Pueden ser, como en ARINC 429, simplex , es decir, tener una única fuente LRI/LRU o, como en ARINC 629, MIL-STD-1553B y STANAG 3910, dúplex , lo que permite que todas las LRI/LRU conectadas actúen, en diferentes momentos ( semidúplex ), como transmisores y receptores de datos. [ 9 ]

La frecuencia o velocidad de un bus se mide en Hz, como MHz, y determina cuántos ciclos de reloj hay por segundo; puede haber una o más transferencias de datos por ciclo de reloj. Si hay una sola transferencia por ciclo de reloj, se conoce como Single Data Rate (SDR), y si hay dos transferencias por ciclo de reloj, se conoce como Double Data Rate (DDR), aunque el uso de señalización distinta de SDR es poco común fuera de la RAM. Un ejemplo de esto es PCIe, que utiliza SDR. [ 10 ] Dentro de cada transferencia de datos, puede haber varios bits de datos. Esto se describe como el ancho de un bus, que es la cantidad de bits que el bus puede transferir por ciclo de reloj y puede ser sinónimo de la cantidad de conductores eléctricos físicos que tiene el bus si cada conductor transfiere un bit a la vez. [ 11 ] [ 12 ] [ 13 ] La tasa de datos en bits por segundo se puede obtener multiplicando la cantidad de bits por ciclo de reloj por la frecuencia por la cantidad de transferencias por ciclo de reloj. [ 14 ] [ 15 ] Alternativamente, un bus como PCIe puede usar modulación o codificación como PAM4 [ 16 ] [ 17 ] [ 18 ] que agrupa 2 bits en símbolos que luego se transfieren en lugar de los bits mismos, y permite un aumento en la velocidad de transferencia de datos sin aumentar la frecuencia del bus. La velocidad/tasa de transferencia de datos efectiva o real puede ser menor debido al uso de codificación que también permite la corrección de errores, como la codificación 128/130b (b de bit). [ 19 ] [ 20 ] [ 10 ] La velocidad de transferencia de datos también se conoce como ancho de banda. [ 21 ] [ 22 ]

Multiplexación de autobuses

El bus de sistema más simple tiene líneas de datos de entrada, líneas de datos de salida y líneas de dirección completamente separadas. Para reducir costos, la mayoría de las microcomputadoras tienen un bus de datos bidireccional, reutilizando los mismos cables para entrada y salida en diferentes momentos. [ 23 ]

Algunos procesadores utilizan un cable dedicado para cada bit del bus de direcciones, el bus de datos y el bus de control. Por ejemplo, el bus STE de 64 pines se compone de 8 cables físicos dedicados al bus de datos de 8 bits, 20 cables físicos dedicados al bus de direcciones de 20 bits, 21 cables físicos dedicados al bus de control y 15 cables físicos dedicados a varios buses de alimentación.

La multiplexación de bus requiere menos cables, lo que reduce los costos en muchos microprocesadores y chips DRAM antiguos. Ya se ha mencionado un esquema de multiplexación común: la multiplexación de direcciones . Otro esquema de multiplexación reutiliza los pines del bus de direcciones como pines del bus de datos, [ 23 ] un enfoque utilizado por PCI convencional y el 8086. Los distintos buses serie pueden considerarse el límite último de la multiplexación, ya que envían cada uno de los bits de dirección y cada uno de los bits de datos, uno a la vez, a través de un solo pin (o un solo par diferencial).

Historia

Con el tiempo, varios grupos de personas trabajaron en diversos estándares de bus de computadoras, incluyendo el Comité de Estándares de Arquitectura de Buses del IEEE (BASC), el grupo de estudio IEEE Superbus, la iniciativa de microprocesadores abiertos (OMI), la iniciativa de microsistemas abiertos (OMI), el Grupo de los Nueve que desarrolló EISA , etc.

Primera generación

Los primeros buses de computadora eran haces de cables que conectaban la memoria y los periféricos. Conocidos popularmente como el tronco de dígitos en la primera computadora australiana CSIRAC , [ 24 ] recibieron su nombre de los buses de alimentación eléctrica o barras colectoras . Casi siempre, había un bus para la memoria y uno o más buses separados para los periféricos. Se accedía a ellos mediante instrucciones independientes, con protocolos y tiempos completamente diferentes.

Una de las primeras complicaciones fue el uso de interrupciones . Los primeros programas informáticos realizaban operaciones de entrada/salida esperando en un bucle a que el periférico estuviera listo. Esto suponía una pérdida de tiempo para los programas que tenían otras tareas que realizar. Además, si el programa intentaba realizar esas otras tareas, podía tardar demasiado en volver a comprobar el estado, lo que provocaba la pérdida de datos. Por ello, los ingenieros dispusieron que los periféricos interrumpieran a la CPU . Las interrupciones debían priorizarse porque la CPU solo puede ejecutar código para un periférico a la vez, y algunos dispositivos son más críticos en cuanto al tiempo que otros.

Los sistemas de gama alta introdujeron el concepto de controladores de canal , que eran esencialmente pequeñas computadoras dedicadas a gestionar la entrada y salida de un bus determinado. IBM los introdujo en el IBM 709 en 1958, y se convirtieron en una característica común de sus plataformas. Otros proveedores de alto rendimiento, como Control Data Corporation, implementaron diseños similares. Generalmente, los controladores de canal se esforzaban por ejecutar todas las operaciones del bus internamente, transfiriendo datos cuando se sabía que la CPU estaba ocupada en otra parte, si era posible, y utilizando interrupciones solo cuando era necesario. Esto redujo considerablemente la carga de la CPU y proporcionó un mejor rendimiento general del sistema.

bus de sistema único

Para proporcionar modularidad, los buses de memoria y E/S se pueden combinar en un bus de sistema unificado . [ 25 ] En este caso, se puede utilizar un único sistema mecánico y eléctrico para conectar muchos de los componentes del sistema, o en algunos casos, todos ellos.

Posteriormente, los programas informáticos comenzaron a compartir memoria común a varias CPU. El acceso a este bus de memoria también debía priorizarse. La forma más sencilla de priorizar las interrupciones o el acceso al bus era mediante una conexión en cadena (daisy chain) . En este caso, las señales fluyen naturalmente a través del bus en orden físico o lógico, eliminando la necesidad de una planificación compleja.

Minis y micros

Digital Equipment Corporation (DEC) redujo aún más el costo de las minicomputadoras de producción masiva y mapeó los periféricos en el bus de memoria, de modo que los dispositivos de entrada y salida parecían ubicaciones de memoria. Esto se implementó en el Unibus de la PDP-11 alrededor de 1969. [ 26 ]

Los primeros sistemas de bus de microcomputadoras consistían esencialmente en una placa base pasiva conectada directamente o mediante amplificadores de búfer a los pines de la CPU. La memoria y otros dispositivos se añadían al bus utilizando los mismos pines de dirección y datos que la propia CPU, conectados en paralelo. La comunicación era controlada por la CPU, que leía y escribía datos de los dispositivos como si fueran bloques de memoria, utilizando las mismas instrucciones, todo ello sincronizado por un reloj central que controlaba la velocidad de la CPU. Aun así, los dispositivos interrumpían a la CPU mediante señales en pines independientes de la misma.

Por ejemplo, un controlador de disco duro le indicaba a la CPU que había nuevos datos listos para ser leídos, momento en el que la CPU movía los datos leyendo la ubicación de memoria correspondiente al disco duro. Casi todos los primeros microordenadores se construyeron de esta manera, comenzando con el bus S-100 en el sistema informático Altair 8800 .

En algunos casos, sobre todo en el IBM PC , aunque se puede emplear una arquitectura física similar, las instrucciones para acceder a los periféricos ( iny out) y a la memoria ( movy otras) no se han uniformizado en absoluto y siguen generando señales de CPU distintas, que podrían utilizarse para implementar un bus de E/S separado.

Estos sencillos sistemas de bus presentaban un serio inconveniente cuando se utilizaban para ordenadores de uso general. Todos los equipos del bus tenían que comunicarse a la misma velocidad, ya que compartían un único reloj.

Aumentar la velocidad de la CPU se vuelve más difícil porque la velocidad de todos los dispositivos también debe aumentar. Cuando no es práctico ni económico que todos los dispositivos tengan la misma velocidad que la CPU, esta debe entrar en un estado de espera o funcionar temporalmente a una frecuencia de reloj más baja [ 27 ] para comunicarse con otros dispositivos de la computadora. Si bien esto era aceptable en sistemas embebidos , este problema no se toleró por mucho tiempo en computadoras de propósito general y ampliables por el usuario.

Estos sistemas de bus también son difíciles de configurar cuando se construyen con equipos comerciales estándar. Por lo general, cada tarjeta de expansión adicional requiere muchos puentes para configurar las direcciones de memoria, las direcciones de E/S, las prioridades de interrupción y los números de interrupción.

Segunda generación

Los sistemas de bus de segunda generación, como NuBus, abordaron algunos de estos problemas. Generalmente, dividían el ordenador en dos espacios de direcciones : la CPU y la memoria en un lado, y los distintos dispositivos periféricos en el otro. Un controlador de bus recibía datos de la CPU para transferirlos a los periféricos, liberando así a la CPU de la carga del protocolo de comunicación. Esto permitió que la CPU y la memoria evolucionaran independientemente del bus de periféricos. Los dispositivos del bus podían comunicarse entre sí sin intervención de la CPU. Esto se tradujo en un rendimiento mucho mejor, pero también requirió tarjetas mucho más complejas. Estos buses también solían solucionar los problemas de velocidad aumentando el tamaño de la ruta de datos, pasando de buses paralelos de 8 bits en la primera generación a 16 o 32 bits en la segunda, además de añadir configuración por software (posteriormente estandarizada como Plug-n-play ) para sustituir los jumpers.

Sin embargo, estos sistemas más nuevos compartían una característica con sus predecesores: todos los componentes del bus debían comunicarse a la misma velocidad. Si bien la CPU ahora estaba aislada y podía aumentar su velocidad, las CPU y la memoria seguían aumentando su velocidad mucho más rápido que los buses con los que se comunicaban. Como resultado, la velocidad de los buses era mucho menor de lo que un sistema moderno necesitaba, y las máquinas se quedaban sin datos. Un ejemplo particularmente común de este problema fue que las tarjetas de video superaron rápidamente incluso a los sistemas de bus más recientes, como PCI , y las computadoras comenzaron a incluir AGP solo para controlar la tarjeta de video. Para 2004, AGP había quedado obsoleto nuevamente debido a las tarjetas de video de gama alta y otros periféricos, y había sido reemplazado por el nuevo bus PCI Express .

Cada vez más dispositivos externos comenzaron a utilizar sus propios sistemas de bus. Cuando se introdujeron las unidades de disco, se añadían al equipo mediante una tarjeta conectada al bus, razón por la cual los ordenadores tienen tantas ranuras en este. Sin embargo, durante las décadas de 1980 y 1990, se introdujeron nuevos sistemas como SCSI e IDE para cubrir esta necesidad, dejando la mayoría de las ranuras vacías en los sistemas modernos. Hoy en día, un ordenador típico suele tener unos cinco buses diferentes, que dan soporte a diversos dispositivos.

Tercera generación

Los buses de tercera generación han ido apareciendo en el mercado desde aproximadamente 2001, incluyendo HyperTransport e InfiniBand . Suelen ser muy flexibles en cuanto a sus conexiones físicas, lo que permite utilizarlos tanto como buses internos como para conectar diferentes máquinas. Esto puede generar problemas complejos al intentar atender distintas solicitudes, por lo que gran parte del trabajo en estos sistemas se centra en el diseño de software, en lugar del hardware en sí. En general, estos buses de tercera generación tienden a parecerse más a una red que al concepto original de bus, requiriendo una mayor sobrecarga de protocolo que los sistemas iniciales, a la vez que permiten que varios dispositivos utilicen el bus simultáneamente.

El movimiento de hardware de código abierto ha desarrollado buses como Wishbone en un intento por eliminar aún más las restricciones legales y de patentes del diseño de ordenadores.

El Compute Express Link (CXL) es una interconexión de estándar abierto para la comunicación de alta velocidad entre la CPU y el dispositivo, y entre la CPU y la memoria, diseñada para acelerar el rendimiento de los centros de datos de próxima generación . [ 28 ]

Ejemplos de buses internos de computadora

Paralelo

De serie

Ejemplos de buses de computadora externos

Paralelo

  • Interfaz paralela de alto rendimiento HIPPI
  • IEEE-488 (también conocido como GPIB, Bus de Interfaz de Propósito General, y HPIB, Bus de Instrumentación de Hewlett-Packard)
  • La tarjeta PC Card , anteriormente conocida como PCMCIA , se utilizaba mucho en ordenadores portátiles y otros dispositivos portátiles, pero su uso ha ido desapareciendo con la introducción de USB y las conexiones de red y módem integradas.

De serie

Muchos buses de campo son buses de datos en serie (que no deben confundirse con la sección de bus de datos en paralelo de un bus de sistema o tarjeta de expansión ), varios de los cuales utilizan las características eléctricas RS-485 y luego especifican su propio protocolo y conector:

Otros buses serie incluyen:

Ejemplos de buses informáticos internos/externos

Véase también

Referencias

  1. Hollingdale, Stuart H. (1958-09-19). Sesión 14. Procesamiento de datos . Aplicaciones de las computadoras, Universidad de Nottingham, 15-19 de septiembre de 1958.
  2. Clifton, Carl (1986-09-19). Lo que todo ingeniero debería saber sobre comunicaciones de datos . CRC Press. pág. 27. ISBN  9780824775667Archivado del original el 17/01/2018. El bus interno del ordenador es un esquema de transmisión paralela; dentro del ordenador...
  3. "Definición de autobús de la enciclopedia de PC Magazine" . pcmag.com. 29 de mayo de 2014. Archivado del original el 7 de febrero de 2015. Consultado el 21 de junio de 2014 .
  4. Gustavson, David (abril de 1984). Buses de computadoras: un tutorial (PDF) .
  5. "Diferencia entre bus del sistema y bus de direcciones" . GeeksForGeeks . 23/07/2025.
  6. "Sistemas Operativos" . 1 de enero de 2003: 169–191 . doi : 10.1016/B0-12-227410-5/00851-6 .{{cite journal}}: Para citar una revista se requiere |journal=( ayuda )
  7. "Salón de la Fama de los Chips: DRAM Mostek MK4096 de 4 kilobits - IEEE Spectrum" . spectrum.ieee.org . Consultado el 13 de noviembre de 2025 .
  8. The Boundary — Scan Handbook . Springer. 30 de junio de 2003. ISBN 978-1-4020-7496-7.
  9. Comité de Estandarización de Sistemas Aviónicos, Guía de Estándares de Interfaz Digital para Aplicaciones Aviónicas Militares , ASSC/110/6/2, Edición 2, septiembre de 2003
  10. 1 2 Guía técnica de IBM z15 (8561) . IBM Redbooks. 13/07/2022. ISBN 978-0-7384-5812-0.
  11. Fundamentos de la tecnología informática . CRC Press. 25/10/2020. ISBN 978-1-000-11716-5.
  12. Beales, RP (11 de agosto de 2006). Sistemas de PC, instalación y mantenimiento . Routledge. ISBN 978-1-136-37442-5.
  13. "Cómo funcionan las placas base" . 20 de julio de 2005.
  14. Buchanan, Bill (25 de abril de 2000). Buses informáticos . CRC Press. ISBN 978-1-4200-4168-2.
  15. Oklobdzija, Vojin G. (2019-07-05). The Computer Engineering Handbook . CRC Press. ISBN 978-1-4398-3316-2.
  16. Robinson, Dan (12 de enero de 2022). "Especificaciones finales de PCIe 6.0 reveladas: velocidad de enlace de 64 GTps próximamente... con productos que llegarán en 2023" . www.theregister.com .
  17. "Especificación preliminar 0.5 de PCIe 7.0 disponible: 512 GB/s sobre PCIe x16 previsto para 2025" . Archivado del original el 4 de abril de 2024.
  18. "PCIe 5.0 está empezando a llegar a los nuevos PC, pero la versión 6.0 ya está aquí" . 12/01/2022.
  19. "PCIe 6.0: Todo lo que necesitas saber sobre el próximo estándar" . 30/06/2024.
  20. "Señalización PAM-4" .
  21. Actualización y reparación de PC . Que. 2003. ISBN 978-0-7897-2745-9.
  22. "Especificación preliminar 0.5 de PCIe 7.0 disponible: 512 GB/s sobre PCIe x16 previsto para 2025" . Archivado del original el 4 de abril de 2024.
  23. 1 2 Don Lancaster. "Libro de cocina de la máquina de escribir para televisión" . ( Máquina de escribir para televisión ). Sección "Organización del autobús". pág. 82.
  24. McCann, Doug; Thorne, Peter (2000). El último de los primeros, CSIRAC: La primera computadora de Australia . Departamento de Ciencias de la Computación de la Universidad de Melbourne. págs. 8–11 , 13, 91. ISBN  0-7340-2024-4.
  25. Linda Null; Julia Lobur (2006). Fundamentos de organización y arquitectura de computadoras (2.ª ed.). Jones & Bartlett Learning. pp. 33, 179–181 . ISBN   978-0-7637-3769-6Archivado del original el 17 de enero de 2018 .
  26. C. Gordon Bell; R. Cady; H. McFarland; B. Delagi; J. O'Laughlin; R. Noonan; W. Wulf (1970). Una nueva arquitectura para minicomputadoras: la DEC PDP-11 (PDF) . Conferencia Conjunta de Computación de Primavera. págs. 657–675 . Archivado (PDF) del original el 27 de noviembre de 2011. 
  27. Bray, Andrew C.; Dickens, Adrian C.; Holmes, Mark A. (1983). «28. El bus de un megahercio». Guía avanzada del usuario para el microordenador BBC . Cambridge, Reino Unido: Centro de Microordenadores de Cambridge. págs. 442–443 . ISBN  0-946827-00-1. Archivado del original (PDF comprimido) el 14-01-2006 . Recuperado el 28-03-2008 .
  28. "ACERCA DE CXL" . Enlace de Compute Express . Consultado el 9 de agosto de 2019 .
  29. "Misterios y demás: Opti Local Bus, tarjetas de sonido Aria" . 21/07/2015 . Consultado el 19/02/2021 .
  • Diagramas de pines de buses y ranuras de hardware de computadora con breves descripciones.