stringtranslate.com

Autobús (informática)

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

En arquitectura de computadoras , un bus [1] (históricamente también llamado autopista de datos [2] o bus de datos ) es un sistema de comunicación que transfiere datos entre componentes dentro de una computadora , o entre computadoras. Esta expresión abarca todos los componentes de hardware (cable, fibra óptica , etc.) y software relacionados , incluidos los protocolos de comunicación . [3]

Los primeros buses de computadora eran cables eléctricos paralelos con múltiples conexiones de hardware, pero el término ahora se usa para cualquier disposición física que proporcione la misma función lógica que una barra colectora eléctrica paralela . Los buses de computadora modernos pueden usar conexiones en paralelo y en serie de bits , y pueden cablearse en una topología multipunto (paralelo eléctrico) o en cadena , o conectarse mediante concentradores conmutados, como en el caso del bus serie universal (USB).

Antecedentes y nomenclatura

Los sistemas informáticos generalmente constan de tres partes principales:

Una de las primeras computadoras podría contener una CPU de tubos de vacío cableada a mano , un tambor magnético para la memoria principal y una cinta perforada y una impresora para leer y escribir datos respectivamente. Un sistema moderno puede tener una CPU multinúcleo , SDRAM DDR4 para memoria, una unidad de estado sólido para almacenamiento secundario , una tarjeta gráfica y una pantalla LCD como sistema de visualización, un mouse y un teclado para interacción y una conexión Wi-Fi para redes. . En ambos ejemplos, los buses de computadora de una forma u otra mueven datos entre todos estos dispositivos.

En la mayoría de las arquitecturas informáticas tradicionales , la CPU y la memoria principal tienden a estar estrechamente acopladas. Un microprocesador convencionalmente es un chip único que tiene varias conexiones eléctricas en sus pines que pueden usarse para seleccionar una "dirección" en la memoria principal y otro conjunto de pines para leer y escribir los datos almacenados en esa ubicación. En la mayoría de los casos, la CPU y la memoria comparten características de señalización y funcionan en sincronía . El bus que conecta la CPU y la memoria es una de las características definitorias del sistema y, a menudo, se lo denomina simplemente bus del sistema .

Es posible permitir que los periféricos se comuniquen con la memoria de la misma manera, conectando adaptadores , ya sea en la placa base o en forma de tarjetas de expansión , directamente al bus del sistema. Esto comúnmente se logra a través de algún tipo de conector eléctrico estandarizado, varios de estos forman el bus de expansión o bus local . Sin embargo, como las diferencias de rendimiento entre la CPU y los periféricos varían ampliamente, generalmente se necesita alguna solución para garantizar que los periféricos no reduzcan el rendimiento general del sistema. Muchas CPU cuentan con un segundo conjunto de pines similares a los de comunicación con la memoria, pero capaces de operar a velocidades muy diferentes y utilizando diferentes protocolos (por ejemplo, UART , SPI y Ethernet ). [ disputado (para: ¿Qué CPU tienen esos pines y qué hacen esos pines?)  ] Otros usan controladores inteligentes para colocar los datos directamente en la memoria, un concepto conocido como acceso directo a la memoria . La mayoría de los sistemas modernos combinan ambas soluciones, cuando corresponde.

A medida que crecía el número de periféricos potenciales, el uso de una tarjeta de expansión para cada periférico se volvió cada vez más insostenible. Esto ha llevado a la introducción de sistemas de bus diseñados específicamente para soportar múltiples periféricos. Ejemplos habituales son los puertos SATA de los ordenadores modernos, que permiten conectar varios discos duros sin necesidad de una tarjeta. Sin embargo, estos sistemas de alto rendimiento suelen ser demasiado caros para implementarlos en dispositivos de gama baja, como un ratón. Esto ha llevado al desarrollo paralelo de una serie de sistemas de bus de bajo rendimiento para estas soluciones, siendo el ejemplo más común el bus serie universal (USB) estandarizado. Todos estos ejemplos pueden denominarse autobuses periféricos , aunque esta terminología no es universal.

En los sistemas modernos, la diferencia de rendimiento entre la CPU y la memoria principal ha aumentado tanto que se incorporan cantidades cada vez mayores de memoria de alta velocidad directamente en la CPU, lo que se conoce como caché . En tales sistemas, las CPU se comunican mediante buses de alto rendimiento que operan a velocidades mucho mayores que la memoria y se comunican con la memoria mediante protocolos similares a los utilizados únicamente para periféricos en el pasado. Estos buses del sistema también se utilizan para comunicarse con la mayoría (o todos) los demás periféricos, a través de adaptadores, que a su vez se comunican con otros periféricos y controladores. Estos sistemas son arquitectónicamente más similares a las multicomputadoras y se comunican a través de un bus en lugar de una red. En estos casos, los buses de expansión están completamente separados y ya no comparten ninguna arquitectura con su CPU host (y, de hecho, pueden admitir muchas CPU diferentes, como es el caso de PCI ). Lo que antes era un bus de sistema ahora se denomina bus frontal .

Ante estos cambios, los términos clásicos "sistema", "expansión" y "periférico" ya no tienen las mismas connotaciones. Otros sistemas de categorización comunes se basan en la función principal del bus, conectando dispositivos interna o externamente, PCI versus SCSI , por ejemplo. Sin embargo, muchos sistemas de autobuses modernos y comunes se pueden utilizar para ambos; SATA y el eSATA asociado son un ejemplo de un sistema que anteriormente se describiría como interno, mientras que ciertas aplicaciones automotrices utilizan el IEEE 1394 principalmente externo de una manera más similar a un bus de sistema. Otros ejemplos, como InfiniBand e I²C, fueron diseñados desde el principio para usarse tanto interna como externamente.

Autobuses internos

El bus interno, también conocido como bus de datos interno, bus de memoria , bus del sistema o bus frontal , conecta todos los componentes internos de una computadora, como la CPU y la memoria, a la placa base. Los buses de datos internos también se denominan buses locales porque están destinados a conectarse a dispositivos locales. Este bus suele ser bastante rápido e independiente del resto de operaciones del ordenador.

Autobuses externos

El bus externo, o bus de expansión , está formado por las vías electrónicas que conectan los diferentes dispositivos externos, como impresora, etc., al ordenador.

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 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 a leer o escribir se envía en el bus de datos). El ancho del bus de direcciones determina la cantidad de memoria que puede direccionar un sistema. Por ejemplo, un sistema con un bus de direcciones de 32 bits puede direccionar 2 32 (4,294,967,296) ubicaciones de memoria. Si cada ubicación de memoria contiene un byte, el espacio de memoria direccionable es 4 GiB.

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 autobuses se hicieron más anchos y largos, este enfoque se volvió costoso en términos de número de pines de chip y pistas de placa. A partir de la DRAM Mostek 4096 , la multiplexación de direcciones implementada con multiplexores se volvió común. 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 el número de señales del bus de direcciones necesarias para conectarse a la memoria. Por ejemplo, se puede implementar un bus de direcciones de 32 bits utilizando 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 (un estroboscópico de dirección de fila (RAS) y un estroboscópico de dirección de columna (CAS)) para indicarle a la DRAM si el bus de direcciones está enviando actualmente la primera mitad de la dirección de memoria o la segunda mitad.

Implementación

Acceder a un byte individual frecuentemente requiere leer o escribir 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 cambio, 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, limitándose este bus a transferencias alineadas de 32 bits.

Históricamente, también hubo algunos ejemplos de computadoras que sólo eran capaces de procesar palabras: las máquinas de palabras .

Autobús de memoria

El bus de memoria es el bus que conecta la memoria principal al controlador de memoria en los sistemas informáticos . Originalmente, se utilizaban buses de uso general como VMEbus y el bus S-100 , pero para reducir la latencia , los buses de memoria modernos están diseñados para conectarse directamente a chips DRAM y, por lo tanto, están diseñados por organismos de estándares de chips como JEDEC . Algunos ejemplos son las distintas generaciones de SDRAM y buses serie punto a punto como SLDRAM y RDRAM . Una excepción es el DIMM con buffer completo que, a pesar de haber sido cuidadosamente diseñado para minimizar el efecto, ha sido criticado por su mayor latencia.

Detalles de implementacion

Los buses pueden ser buses paralelos , que transportan palabras de datos en paralelo en múltiples cables, o buses en serie , que transportan datos en forma de bits en serie. La adición de conexiones adicionales de alimentación y control, controladores diferenciales y conexiones de datos en cada dirección generalmente significa que la mayoría de los buses en serie tienen más conductores que el mínimo utilizado en 1-Wire y UNI/O . A medida que aumentan las velocidades de datos, los problemas de sincronización , consumo de energía, interferencia electromagnética y diafonía entre buses paralelos se vuelven cada vez más difíciles de sortear. Una solución parcial a este problema ha sido bombear dos veces el autobús. A menudo, un bus serie puede funcionar a velocidades de datos generales más altas que un bus paralelo, a pesar de tener menos conexiones eléctricas, porque un bus serie inherentemente no tiene sesgo de sincronización ni diafonía. USB , FireWire y Serial ATA son ejemplos de esto. Las conexiones multipunto no funcionan bien para buses serie rápidos, por lo que la mayoría de los buses serie modernos utilizan diseños de conexión en cadena o de concentrador.

Las conexiones de red como Ethernet generalmente no se consideran buses, aunque la diferencia es en gran medida conceptual más que práctica. Un atributo generalmente utilizado para caracterizar un bus es que el bus proporciona energía al hardware conectado. Esto enfatiza los orígenes de las barras colectoras de la arquitectura de bus como 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 separadas. Los dispositivos Universal Serial Bus pueden usar la energía suministrada por el bus, pero a menudo usan una fuente de energía separada. 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 es análogo a una conexión Ethernet . Un esquema de conexión de líneas telefónicas no se considera un bus con respecto a señales, pero la Oficina Central utiliza buses con interruptores de barra transversal para las conexiones entre teléfonos.

Sin embargo, esta distinción‍—‌que la energía la proporciona el bus‍—‌no es el caso en muchos sistemas de aviónica , donde las conexiones de datos como ARINC 429 , ARINC 629 , MIL-STD-1553B (STANAG 3838) y EFABus ( STANAG 3910 ) son comúnmente denominados “buses de datos” o, a veces, “buses de datos”. Estos buses de datos de aviónica generalmente se caracterizan por tener varios equipos o unidades/elementos reemplazables en línea (LRI/LRU) conectados a un medio común y compartido . Pueden, como con ARINC 429, ser simplex , es decir, tener una única fuente LRI/LRU o, como con ARINC 629, MIL-STD-1553B y STANAG 3910, ser dúplex , permitir que todos los LRI/LRU conectados actúen, al mismo tiempo. distintos tiempos ( half duplex ), como transmisores y receptores de datos. [4]

Multiplexación de autobuses

El bus del 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. [5]

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 STEbus 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 potencia.

La multiplexación de bus requiere menos cables, lo que reduce los costos en muchos de los primeros microprocesadores y chips DRAM. 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, [5] un enfoque utilizado por PCI convencional y el 8086 . Los distintos "buses serie" pueden verse como el límite último de la multiplexación, enviando 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 único pin (o un único par diferencial).

Historia

Con el tiempo, varios grupos de personas trabajaron en varios estándares de bus de computadora, incluido el Comité de Estándares de Arquitectura de Bus (BASC) de IEEE, el grupo de estudio "Superbus" de IEEE, la iniciativa de microprocesadores abiertos (OMI), la iniciativa de microsistemas abiertos (OMI), la "Gang of Nine" que desarrolló EISA , etc. [ cita necesaria ]

Primera generación

Los primeros buses de computadora eran haces de cables que conectaban la memoria y los periféricos de la computadora. Denominados anecdóticamente " troncal de dígitos " en las primeras computadoras CSIRAC australianas, [6] recibieron el nombre de buses de energía 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 separadas, con tiempos y protocolos completamente diferentes.

Una de las primeras complicaciones fue el uso de interrupciones . Los primeros programas de computadora realizaban E/S esperando en un bucle a que el periférico estuviera listo. Esto fue una pérdida de tiempo para los programas que tenían otras tareas que hacer. Además, si el programa intenta realizar esas otras tareas, es posible que tarde demasiado en volver a comprobarlo, lo que provocará la pérdida de datos. De este modo, los ingenieros dispusieron que los periféricos interrumpieran la CPU. Había que priorizar las interrupciones, porque la CPU sólo puede ejecutar código para un periférico a la vez, y algunos dispositivos requieren más tiempo que otros.

Los sistemas de alta gama introdujeron la idea de los controladores de canal , que eran esencialmente pequeñas computadoras dedicadas a manejar 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 harían todo lo posible para ejecutar todas las operaciones del bus internamente, moviendo datos cuando se sabía que la CPU estaba ocupada en otro lugar si era posible, y solo usando interrupciones cuando fuera 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 . [7] En este caso, se puede utilizar un único sistema mecánico y eléctrico para conectar entre sí muchos de los componentes del sistema, o en algunos casos, todos ellos.

Posteriormente, los programas informáticos comenzaron a compartir la memoria común a varias CPU. También había que priorizar el acceso a este bus de memoria. La forma más sencilla de priorizar las interrupciones o el acceso al autobús era mediante una cadena tipo margarita . En este caso, las señales fluirán naturalmente a través del bus en orden físico o lógico, eliminando la necesidad de una programación compleja.

minis y micros

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

Los primeros sistemas de bus de microcomputadoras eran esencialmente una placa posterior pasiva conectada directamente o mediante amplificadores de búfer a los pines de la CPU . La memoria y otros dispositivos se agregarían al bus usando la misma dirección y pines de datos que usó la CPU, conectados en paralelo. La comunicación estaba controlada por la CPU, que leía y escribía datos de los dispositivos como si fueran bloques de memoria, usando las mismas instrucciones, todo cronometrado por un reloj central que controlaba la velocidad de la CPU. Aún así, los dispositivos interrumpieron la CPU mediante señales en pines de CPU separados.

Por ejemplo, un controlador de unidad de disco indicaría a la CPU que hay nuevos datos listos para ser leídos, momento en el que la CPU movería los datos leyendo la "ubicación de memoria" que correspondía a la unidad de disco. Casi todas las primeras microcomputadoras 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 otros) no se han uniformado en absoluto y aún generan señales de CPU distintas, que podrían ser Se utiliza para implementar un bus de E/S separado.

Estos sistemas de bus simples tenían un serio inconveniente cuando se usaban para computadoras de uso general. Todo el equipo del autobús tenía que hablar a la misma velocidad, ya que compartía 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 o económico tener todos los dispositivos tan rápidos como la CPU, la CPU debe entrar en un estado de espera o trabajar temporalmente a una frecuencia de reloj más lenta [9] para comunicarse con otros dispositivos en la computadora. Si bien es aceptable en sistemas integrados , este problema no fue tolerado por mucho tiempo en computadoras de uso general ampliables por el usuario.

Estos sistemas de bus también son difíciles de configurar cuando se construyen a partir de equipos comunes disponibles en el mercado. Normalmente, cada tarjeta de expansión agregada requiere muchos puentes para configurar direcciones de memoria, direcciones de E/S, prioridades de interrupción y números de interrupción.

Segunda generación

Los sistemas de autobuses de "segunda generación" como NuBus abordaron algunos de estos problemas. Por lo general, separaban la computadora en dos "mundos", la CPU y la memoria en un lado y los distintos dispositivos en el otro. Un controlador de bus aceptaba datos del lado de la CPU para moverlos al lado de los periféricos, trasladando así la carga del protocolo de comunicaciones de la propia CPU. Esto permitió que la CPU y la memoria evolucionaran por separado del bus del dispositivo, o simplemente "bus". Los dispositivos en el bus podrían comunicarse entre sí sin intervención de la CPU. Esto condujo a un rendimiento mucho mejor en el "mundo real", pero también requirió que las tarjetas fueran mucho más complejas. Estos buses también solían abordar problemas de velocidad al ser "más grandes" en términos del 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 agregar configuración de software. (ahora estandarizado como Plug-n-play ) para suplantar o reemplazar los puentes.

Sin embargo, estos sistemas más nuevos compartían una cualidad con sus primos anteriores: todos en el autobús tenían que hablar a la misma velocidad. Si bien la CPU ahora estaba aislada y podía aumentar la velocidad, las CPU y la memoria continuaron aumentando su velocidad mucho más rápido que los buses con los que hablaban. El resultado fue que las velocidades de los autobuses eran ahora mucho más lentas de lo que necesitaba un sistema moderno, y las máquinas se quedaron sin datos. Un ejemplo particularmente común de este problema fue que las tarjetas de video rápidamente superaron incluso a los sistemas de bus más nuevos como PCI , y las computadoras comenzaron a incluir AGP solo para controlar la tarjeta de video. En 2004, AGP volvió a ser superado por las tarjetas de video de alta gama y otros periféricos y fue reemplazado por el nuevo bus PCI Express .

Un número cada vez mayor de dispositivos externos comenzaron a utilizar también sus propios sistemas de bus. Cuando se introdujeron por primera vez las unidades de disco, se agregaban a la máquina con una tarjeta conectada al bus, razón por la cual las computadoras tienen tantas ranuras en el bus. Pero durante las décadas de 1980 y 1990, se introdujeron nuevos sistemas como SCSI e IDE para satisfacer esta necesidad, dejando vacías la mayoría de las ranuras en los sistemas modernos. Hoy en día es probable que haya alrededor de cinco buses diferentes en una máquina típica, que admitan varios dispositivos. [ cita necesaria ]

Tercera generación

Los autobuses de "tercera generación" han estado surgiendo en el mercado desde aproximadamente 2001, incluidos HyperTransport e InfiniBand . También tienden a ser muy flexibles en términos de sus conexiones físicas, lo que les permite usarse tanto como buses internos como para conectar diferentes máquinas entre sí. Esto puede generar problemas complejos al intentar atender diferentes solicitudes, por lo que gran parte del trabajo en estos sistemas se relaciona con el diseño de software, y no con el 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, con una mayor sobrecarga de protocolo necesaria que los sistemas anteriores, al mismo tiempo que permiten que múltiples dispositivos usen el bus a la vez.

Buses como Wishbone han sido desarrollados por el movimiento de hardware de código abierto en un intento de eliminar aún más las limitaciones legales y de patentes del diseño de computadoras.

Compute Express Link (CXL) es una interconexión estándar abierta para CPU a dispositivo y CPU a memoria de alta velocidad , diseñada para acelerar el rendimiento del centro de datos de próxima generación . [10]

Ejemplos de buses de computadora internos.

Paralelo

De serie

Ejemplos de buses de computadora externos.

Paralelo

De serie

Muchos buses de campo son buses de datos en serie (que no deben confundirse con la sección de "bus de datos" 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 autobuses en serie incluyen:

Ejemplos de buses informáticos internos/externos

Ver también

Referencias

  1. ^ Clifton, Carl (19 de septiembre de 1986). Lo que todo ingeniero debe saber sobre las comunicaciones de datos. Prensa CRC. pag. 27.ISBN _ 9780824775667. Archivado desde el original el 17 de enero de 2018. El bus interno de la computadora es un esquema de transmisión en paralelo; dentro de la computadora....
  2. ^ Hollingdale, Stuart H. (19 de septiembre de 1958). Sesión 14. Tratamiento de datos. Aplicaciones de las computadoras, Universidad de Nottingham, 15 al 19 de septiembre de 1958.
  3. ^ "Definición de autobús de la enciclopedia de la revista PC". pcmag.com. 29 de mayo de 2014. Archivado desde el original el 7 de febrero de 2015 . Consultado el 21 de junio de 2014 .
  4. ^ Comité de estandarización de sistemas de aviónica, Guía de estándares de interfaz digital para aplicaciones de aviónica militar , ASSC/110/6/2, número 2, septiembre de 2003
  5. ^ ab Don Lancaster. "Libro de cocina sobre máquinas de escribir para televisión". ( Máquina de escribir de televisión ). Sección "Organización del autobús". pag. 82.
  6. ^ McCann, Doug; Thorne, Pedro (2000). El último de los primeros, CSIRAC: la primera computadora de Australia. Ciencias de la Computación de la Universidad de Melbourne. págs. 8-11, 13, 91. ISBN 0-7340-2024-4.
  7. ^ Linda nula; Julia Lobur (2006). Los fundamentos de la organización y arquitectura de las computadoras (2ª ed.). Aprendizaje de Jones y Bartlett. págs. 33, 179–181. ISBN 978-0-7637-3769-6. Archivado desde el original el 17 de enero de 2018.
  8. ^ C. Gordon Bell; R. Cady; H. McFarland; B. Delagi; J. O'Laughlin; R. Noona; W. Wulf (1970). Una nueva arquitectura para minicomputadoras: DEC PDP-11 (PDF) . Conferencia conjunta de primavera sobre informática. págs. 657–675. Archivado (PDF) desde el original el 27 de noviembre de 2011.
  9. ^ Bray, Andrew C.; Dickens, Adrián C.; Holmes, Mark A. (1983). "28. El autobús de un megahercio". La guía de usuario avanzada para la microcomputadora BBC. Cambridge, Reino Unido: Centro de Microcomputación de Cambridge. págs. 442–443. ISBN 0-946827-00-1. Archivado desde el original (PDF comprimido) el 14 de enero de 2006 . Consultado el 28 de marzo de 2008 .
  10. ^ "ACERCA DE CXL". Enlace exprés de cálculo . Consultado el 9 de agosto de 2019 .
  11. ^ "Probabilidades y fines: Opti Local Bus, tarjetas de sonido Aria". 2015-07-21 . Consultado el 19 de febrero de 2021 .

enlaces externos