Bus de computadora ( ing. bus de computadora ) en arquitectura de computadora : una conexión que sirve para transferir datos entre los bloques funcionales de una computadora . En el dispositivo bus, se puede distinguir entre niveles mecánico, eléctrico (físico) y lógico (control).
A diferencia de una conexión punto a punto , por lo general se pueden conectar varios dispositivos a un bus a través de un solo conjunto de conductores. Cada bus define su propio conjunto de conectores (conexiones) para la conexión física de dispositivos, tarjetas y cables.
Los buses de computadora de las primeras computadoras eran paquetes (haces de cables de conexión : señal y alimentación, unidos para lograr compacidad y facilidad de mantenimiento), implementando buses eléctricos paralelos con varias conexiones. En los sistemas informáticos modernos, este término se utiliza para cualquier mecanismo físico que proporcione la misma funcionalidad lógica que los buses informáticos paralelos.
Los buses informáticos modernos utilizan conexiones tanto en paralelo como en serie y pueden tener topologías en paralelo ( multipunto en inglés ) y en cadena ( cadena de margarita en inglés ). En el caso de USB y algunos otros buses, también se pueden usar concentradores ( hubs ).
Algunos tipos de buses de alta velocidad ( Fibre Channel , InfiniBand , Ethernet de alta velocidad , SDH ) utilizan conexiones ópticas en lugar de eléctricas para la señalización .
Conectores al bus, una variedad de conectores, por regla general, están unificados y le permiten conectar varios dispositivos al bus.
El control de transferencia de bus se implementa tanto a nivel de flujo de señal ( multiplexores , demultiplexores , búferes , registros , moldeadores de bus ) como desde el núcleo del sistema operativo ; en este caso, incluye el controlador adecuado .
Los buses pueden ser paralelos (los datos se transfieren ciclo a ciclo en palabras : cada bit es un conductor separado) y en serie (los bits de datos se transfieren alternativamente a lo largo de un canal , por ejemplo, un par de conductores).
La mayoría de las computadoras tienen buses internos y externos. El bus interno conecta todos los componentes internos de la computadora a la placa base (y por lo tanto al procesador y la memoria). Este tipo de bus también se denomina bus local porque se utiliza para conectar dispositivos locales. El bus externo conecta periféricos externos a la placa base.
Las conexiones de red , como Ethernet , no suelen pensarse como buses, aunque la diferencia es más conceptual que práctica. La llegada de las tecnologías InfiniBand e HyperTransport desdibujó aún más la línea entre las redes y los buses. [una]
Los primeros buses de computadora eran un grupo de conductores que conectaban la memoria y los periféricos de la computadora al procesador. Casi siempre, se usaban diferentes buses para la memoria y los periféricos, con diferentes métodos de acceso, retrasos, protocolos.
Una de las primeras mejoras fue el uso de interrupciones . Antes de su introducción, las computadoras realizaban operaciones de E/S en un bucle esperando que un dispositivo periférico estuviera listo. Era una pérdida de tiempo para programas que podían hacer otras cosas. Además, si el programa intentara realizar otras tareas, podría verificar el estado del dispositivo demasiado tarde y perder datos. Por eso, los ingenieros han hecho posible que los periféricos interrumpan el procesador . Las interrupciones se priorizaron porque el procesador solo podía ejecutar código para una interrupción a la vez y algunos dispositivos requerían una latencia más baja que otros.
Algún tiempo después, las computadoras comenzaron a asignar memoria entre procesadores. En ellos, el acceso de autobuses también recibió prioridad.
La forma clásica y sencilla de priorizar las interrupciones o el acceso al bus era conectar en cadena los dispositivos.
DEC señaló que dos buses diferentes podrían ser redundantes y costosos para computadoras pequeñas producidas en masa, y sugirió asignar periféricos al bus de memoria para que parecieran áreas de memoria. Fue una decisión muy audaz en ese momento, y los críticos predijeron que fracasaría.
Los primeros minibuses de computadora eran backplanes pasivos conectados a pines de microprocesador. La memoria y otros dispositivos se conectaron al bus utilizando la misma dirección y pines de datos que el procesador. Todos los contactos estaban conectados en paralelo. En algunos casos, como en la PC de IBM , se necesitan instrucciones de procesador adicionales para generar señales a fin de que el bus sea un verdadero bus de E/S.
En muchos microcontroladores y sistemas integrados , el bus de E/S todavía no existe. El proceso de transferencia está controlado por la CPU, que en la mayoría de los casos lee y escribe información en los dispositivos como si fueran bloques de memoria. Todos los dispositivos comparten una fuente de reloj común. Los periféricos pueden solicitar el procesamiento de información mediante la señalización de pines especiales de la CPU mediante algún tipo de interrupción. Por ejemplo, el controlador del disco duro notificará al procesador los datos listos para leer, después de lo cual el procesador deberá leerlos desde el área de memoria correspondiente al controlador. Casi todas las primeras computadoras se construyeron de esta manera, desde la Altair con el bus S-100 hasta la IBM PC en la década de 1980 .
Estos autobuses simples tenían un serio inconveniente para las computadoras de propósito general. Todos los equipos en el bus tenían que transmitir información a la misma velocidad y usar la misma fuente de reloj . Aumentar la velocidad del procesador no fue fácil, ya que requería la misma aceleración de todos los dispositivos. Esto a menudo condujo a una situación en la que los procesadores muy rápidos tenían que reducir la velocidad para poder transmitir información a algunos dispositivos. Aunque esto es aceptable para sistemas integrados, este problema no es aceptable para computadoras comerciales. Otro problema es que se requiere el procesador para todas las operaciones, y cuando está ocupado con otras operaciones, el rendimiento real del bus puede sufrir significativamente.
Dichos buses de computadora eran difíciles de configurar con una amplia gama de equipos. Por ejemplo, cada tarjeta de expansión que se agregó puede requerir la configuración de varios interruptores para configurar la dirección de memoria, la dirección de E/S, las prioridades y los números de interrupción.
Los buses de computadora de "segunda generación" como NuBus resolvieron algunos de los problemas anteriores. Solían dividir la computadora en dos "partes", el procesador y la memoria en una y varios dispositivos en la otra. Se instaló un controlador de bus especial (controlador de bus ) entre las piezas . Esta arquitectura hizo posible aumentar la velocidad del procesador sin afectar el bus, para descargar al procesador de las tareas de administración del bus. Con la ayuda de un controlador, los dispositivos del bus podían comunicarse entre sí sin la intervención del procesador central. Los nuevos neumáticos tenían un mejor rendimiento pero también requerían tarjetas de expansión más sofisticadas. Los problemas de velocidad a menudo se resolvían aumentando el ancho del bus de datos , de buses de 8 bits en la primera generación a buses de 16 o 32 bits en la segunda generación. La configuración de dispositivos de software también ha aparecido para simplificar la conexión de nuevos dispositivos, ahora estandarizados como Plug-n-play .
Sin embargo, los neumáticos nuevos, al igual que la generación anterior, requerían las mismas velocidades de los dispositivos en el mismo autobús. El procesador y la memoria ahora estaban aislados en su propio bus y su velocidad creció más rápido que la velocidad del bus periférico. Como resultado, los buses eran demasiado lentos para los nuevos sistemas y las máquinas sufrían falta de datos. Un ejemplo de este problema es que las tarjetas de video estaban mejorando rápidamente y carecían del ancho de banda incluso de los nuevos buses de interconexión de componentes periféricos (PCI). Las computadoras comenzaron a incluir Accelerated Graphics Port (AGP) solo para trabajar con adaptadores de video. En 2004, AGP nuevamente no fue lo suficientemente rápido para tarjetas de video potentes, y AGP comenzó a ser reemplazado por el nuevo bus PCI Express .
Un número cada vez mayor de dispositivos externos comenzó a utilizar sus propios buses. Cuando se inventaron las unidades de disco, se conectaban a la máquina con una tarjeta conectada al bus. Debido a esto, las computadoras tenían muchas ranuras de expansión . Pero en las décadas de 1980 y 1990, se inventaron nuevos buses SCSI e IDE que resolvieron este problema al dejar vacías la mayoría de las ranuras de expansión en los nuevos sistemas. Hoy en día, un automóvil típico admite alrededor de cinco neumáticos diferentes.
Los neumáticos comenzaron a dividirse en internos ( autobús local ) y externos ( autobús externo ). Los primeros fueron diseñados para conectar dispositivos internos como adaptadores de video y tarjetas de sonido, mientras que los segundos fueron diseñados para conectar dispositivos externos como escáneres . El IDE es un bus externo por diseño, pero casi siempre se usa dentro de una computadora.
Los buses de "tercera generación" (como PCI-Express ) generalmente permiten tanto las altas velocidades necesarias para la memoria, las tarjetas de video y la comunicación entre procesadores, como las pequeñas cuando se trabaja con dispositivos lentos, como unidades de disco. También buscan una mayor flexibilidad en cuanto a las conexiones físicas, permitiéndose utilizar como buses tanto internos como externos, por ejemplo, para conectar computadoras. Esto conduce a problemas complejos para satisfacer varios requisitos, por lo que la mayor parte del trabajo en estos buses está relacionado con el software y no con el hardware en sí. En general, los buses de tercera generación se parecen más a las redes informáticas que a las ideas de buses originales, con más gastos generales que los primeros sistemas. También permiten que varios dispositivos utilicen el bus al mismo tiempo.
Los circuitos integrados modernos a menudo se diseñan a partir de piezas prefabricadas. Se han desarrollado buses (como Wishbone ) para facilitar la integración de diferentes partes de los circuitos integrados.
Buses e interfaces de computadora | |
---|---|
Conceptos básicos | |
Procesadores | |
Interno | |
portátiles | |
Unidades | |
Periferia | |
Gestión de equipos | |
Universal | |
Interfaces de vídeo | |
Sistemas embebidos |