La familia de ordenadores PC interconexiona toda la circuiteria de control interna mediante un diseño de circuito, conocido con el nombre de bus.
Es el conjunto de líneas (cables) de hardware utilizados para la transmisión de datos entre los componentes de un sistema informático. Un bus es en esencia una ruta compartida que conecta diferentes partes del sistema como el procesador, la controladora de unidad de disco, la memoria y los puertos de entrada, salida, permitiéndoles transmitir información.
El bus, por lo general supervisado por el microprocesador, se especializa en el transporte de diferentes tipos de información.
Por ejemplo, un grupo de cables (en realidad trazos sobre una placa de circuito impreso) transporta los datos, otro las direcciones (ubicaciones) en las que puede encontrarse información específica, y otro las señales de control para asegurar que las diferentes partes del sistema utilizan su ruta compartida sin conflictos.
Los buses se caracterizan por el número de bits que pueden transmitir en un determinado momento. Un equipo con un bus de 8 bits de datos, por ejemplo, transmite 8 bits de datos cada vez, mientras que uno con un bus de 16 bits de datos transmite 16 bits de datos simultáneamente.
Como el bus es parte integral de la transmisión interna de datos y como los usuarios suelen tener que añadir componentes adicionales al sistema, la mayoría de los buses de los equipos informáticos pueden ampliarse mediante uno o más zócalos de expansión (conectores para placas de circuito añadidas). Al agregarse estas placas permiten la conexión eléctrica con el bus y se convierten en parte efectiva del sistema.
El Bus se refiere al camino que recorren los datos desde una o varias fuentes hacia uno o varios destinos y es una serie de hilos contiguos. En el sentido estricto de la palabra, esta definición sólo se aplica a la interconexión entre el procesador y los periféricos.
Un bus es simplemente un conjunto compartido de pistas trazadas en la placa de circuito principal, al que se conectan todas las partes que controlan y forman el ordenador. Cuando un dato pasa de un componente a otro, viaja a lo largo de este camino común para alcanzar su destino. Cada chip de control y cada byte de memoria del PC están conectados directa o indirectamente al bus. Cuando un nuevo componente se inserta en uno de los conectores de expansión, queda unido directamente al bus, convirtiéndose en un objeto más de la unidad completa.
Cualquier información que entra o sale de un sistema ordenador se almacena temporalmente en al menos una de las distintas localizaciones que existen a lo largo del bus. La mayor parte de las veces el dato se sitúa en la memoria principal, que en la familia PC está formada por miles de posiciones de memoria de 8 bits. Pero algún dato puede acabar en un puerto, o registro, durante unos instantes, mientras espera que la CPU lo envíe a una posición adecuada.
Generalmente los puertos y registros almacenan sólo uno o dos bytes de información a la vez, y se utiliza normalmente como lugares de parada intermedia para los datos, que se están enviando de un lugar a otro. Siempre que se utiliza una posición de memoria, o un puerto, como lugar de almacenamiento, su localización está marcada por una dirección que la identifica individualmente. Cuando el dato está listo para ser transferido, se transmite primero su dirección de destino por el bus de direcciones; el dato sigue a la zaga por el bus de datos.
Por tanto, el bus transporta algo más que datos. Lleva información de control, tales como las señales de temporización (del sistema reloj), las señales de interrupción, así como las direcciones de las miles de posiciones que forman tanto la memoria como los dispositivos que están conectados al bus.
Para diferenciar estas cuatro funciones diferentes, el bus está dividido en cuatro partes: líneas de potencia, bus de control, bus de direcciones y bus de datos.
La información codificada viaja a través de la computadora por un bus.
El bus soporta tres tipos principales de información: un grupo de cables transporta datos, tales como la letra A codificada; otro grupo lleva la dirección del componente al que van dirigidos los datos.
Cada componente acepta sólo la información que va dirigida a él; por ejemplo, la información enviada a la impresora no será aceptada de forma inadvertida por la unidad de disco.
La tercera clase de información son señales de tiempo, que sincronizan todo lo que hay conectado al bus para enviar y recibir mensajes en el instante correcto.
Una PC tiene muchos tipos de buses incluyendo los siguientes:
- Processor Bus: Es la vía de comunicación entre el CPU y los chip inmediatos a el, comúnmente llamado chipset en los sistemas modernos. Este bus es usado para transferir datos entre el CPU y bus del sistema principal, por ejemplo, o entre el cpu y la memoria caché externa. El propósito de processor bus es conseguir mayor velocidad en la entrega de la información para y del CPU, este bus opera a una mayor rapidez que cualquier otro bus en la PC.
En este bus no existen los cuellos de botellas, el bus consiste de circuitos eléctricos para datos, dirección y control. Este bus opera con la misma velocidad del reloj a como lo hace el CPU externamente, ya que internamente el CPU puede trabajar a mayores velocidades.
- Memory Bus: Es usado para transferir información entre la memoria principal y el CPU. Este bus es implementado en un chip dedicado, el cual es responsable de la comunicación. La información que viaja sobre el memory bus se hace a una velocidad mas baja que en el processor bus.
Este bus tiene el mismo ancho que el procesor bus, esto significa que en un sistema con CPU de 32 bits el memory bus es de 32 bits, esto definirá el tamaño de lo que se conoce como banco de memoria. Los slots para la memoria son conectados en el memory bus de la misma forma que son conectados los slots de E/S Bus.
- Address Bus: En los sistemas actuales, este bus es considerado como parte de los buses del procesador y de la memoria. Este bus es usado para indicar exactamente que dirección en memoria o que dirección sobre el bus de sistema será usada en la operación de transferir un dato. El tamaño del bus de memoria controla la cantidad de memoria que el CPU puede direccional directamente.
- I/O Bus: Son los buses que se encargan de la entrada y salida de los datos en todo el sistema. Las diferencias entre los tipos de buses que pertenecen a esta categoría consiste en la cantidad de datos que pueden transferir a la vez y la velocidad a la que pueden hacerlo.
Hay tres clases de buses: Bus de Datos, Bus de Direcciones y Bus de Control. El primero mueve los datos entre los dispositivos del hardware: de Entrada como el Teclado, el Escáner, el Ratón, etc.; de salida como la Impresora, el Monitor o la tarjeta de Sonido; y de Almacenamiento como el Disco Duro, el Diskette o la Memoria-Flash.
Estas transferencias que se dan a través del Bus de Datos son gobernadas por varios dispositivos y métodos, de los cuales el Controlador PCI, "Peripheral Component Interconnect", Interconexión de componentes Periféricos, es uno de los principales. Su trabajo equivale, simplificando mucho el asunto, a una central de semáforos para el tráfico en las calles de una ciudad.
El Bus de Direcciones, por otra parte, está vinculado al bloque de Control de la CPU para tomar y colocar datos en el Sub-sistema de Memoria durante la ejecución de los procesos de cómputo,
El Bus de Control transporta señales de estado de las operaciones efectuadas por el CPU con las demás unidades.
Una tarjeta-madre tipo ATX tiene tantas pistas eléctricas destinadas a buses, como anchos sean los Canales de Buses del Microprocesador de la CPU: 64 para el Bus de datos y 32 para el Bus de Direcciones.
El "ancho de canal" explica la cantidad de bits que pueden ser transferidos simultáneamente. Así, el Bus de datos transfiere 8 bytes a la vez.
Para el Bus de Direcciones, el "ancho de canal" explica así mismo la cantidad de ubicaciones o Direcciones diferentes que el microprocesador puede alcanzar. Esa cantidad de ubicaciones resulta de elevar el 2 a la 32 potencia. "2" porque son dos las señales binarias, los bits 1 y 0; y "32 potencia" porque las 32 pistas del Bus de Direcciones son, en un instante dado, un conjunto de 32 bits.
Así, el Canal de Direcciones del Microprocesador para una PC-ATX puede "direccionar" más de 4 mil millones de combinaciones diferentes para el conjunto de 32 bits de su Bus.
Para funcionar, el hardware necesita unas conexiones materiales que permitan a los componentes comunicarse entre sí e interaccionar. Un bus constituye un sistema común interconectado, compuesto por un grupo de cables o circuitos que coordina y transporta información entre las partes internas de la computadora.
El bus de una computadora consta de dos canales: uno que la CPU emplea para localizar datos, llamado bus de direcciones, y otro que se utiliza para enviar datos a una dirección determinada, llamado bus de datos. Un bus se caracteriza por dos propiedades: la cantidad de información que puede manipular simultáneamente (la llamada 'anchura de bus') y la rapidez con que puede transferir dichos datos.
Una conexión en serie es un cable o grupo de cables utilizado para transferir información entre la CPU y un dispositivo externo como un mouse, un teclado, un módem, un digitalizador y algunos tipos de impresora.
Este tipo de conexión sólo transfiere un dato de cada vez, por lo que resulta lento. La ventaja de una conexión en serie es que resulta eficaz a distancias largas.
Una conexión en paralelo utiliza varios grupos de cables para transferir simultáneamente más de un bloque de información.
La mayoría de los digitalizadores e impresoras emplean este tipo de conexión. Las conexiones en paralelo son mucho más rápidas que las conexiones en serie, pero están limitadas a distancias menores de 3 m entre la CPU y el dispositivo externo.
En el bus se encuentran dos pistas separadas, el bus de datos y el bus de direcciones. La CPU escribe la dirección de la posición deseada de la memoria en el bus de direcciones accediendo a la memoria, teniendo cada una de las líneas carácter binario.
Es decir solo pueden representar 0 o 1 y de esta manera forman conjuntamente el número de la posición dentro de la memoria (es decir: la dirección).
Cuanto más líneas haya disponibles, mayor es la dirección máxima y mayor es la memoria a la cual puede dirigirse de esta forma. En el bus de direcciones original habían ya 20 direcciones, ya que con 20 bits se puede dirigir a una memoria de 1 MB y esto era exactamente lo que correspondía a la CPU.
Esto que en le teoría parece tan fácil es bastante mas complicado en la práctica, ya que aparte de los bus de datos y de direcciones existen también casi dos docenas más de líneas de señal en la comunicación entre la CPU y la memoria, a las cuales también se acude.
Todas las tarjetas del bus escuchan, y se tendrá que encontrar en primer lugar una tarjeta que mediante el envío de una señal adecuada indique a la CPU que es responsable de la dirección que se ha introducido. Las demás tarjetas se despreocupan del resto de la comunicación y quedan a la espera del próximo ciclo de transporte de datos que quizás les incumba a ellas.
PROCESADOR | Bus de direcciones | Bus de datos |
8086 | 20 | 16 |
8088 | 20 | 8 |
80186 | 20 | 16 |
80188 | 20 | 8 |
80286 | 24 | 16 |
80386 SX | 32 | 16 |
80386 DX | 32 | 32 |
80486 DX | 32 | 32 |
80486 SX | 32 | 32 |
PENTIUM | 32 | 64 |
PENTIUM PRO | 32 | 64 |
Este mismo concepto es también la razón por la cual al utilizar tarjetas de ampliación en un PC surgen problemas una y otra vez, si hay dos tarjetas que reclaman para ellas el mismo campo de dirección o campos de dirección que se solapan entre ellos.
Los datos en si no se mandan al bus de direcciones sino al bus de datos. El bus XT tenía solo 8 bits con lo cual sólo podía transportar 1 byte a la vez. Si la CPU quería depositar el contenido de un registro de 16 bits o por valor de 16 bits, tenía que desdoblarlos en dos bytes y efectuar la transferencia de datos uno detrás de otro.
De todas maneras para los fabricantes de tarjetas de ampliación, cuyos productos deben atenderse a este protocolo, es de una importancia básica la regulación del tiempo de las señales del bus, para poder trabajar de forma inmejorable con el PC.
Pero precisamente este protocolo no ha sido nunca publicado por lBM con lo que se obliga a los fabricantes a medir las señales con la ayuda de tarjetas ya existentes e imitarlas. Por lo tanto no es de extrañar que se pusieran en juego tolerancias que dejaron algunas tarjetas totalmente eliminada.
Otro uso importante del bus es el manejo de interrupciones. Cuando la CPU instruye algún dispositivo de E/S para que haga algo, por lo general espera una interrupción cuando termina el trabajo. La señal de interrupción indica que requiere del bus.
Aquí se presenta el mismo tipo de problema que con los ciclos del bus ordinario, ya que es posible que varios dispositivos quieran enviar una interrupción al mismo tiempo. La solución usual es asignar prioridades a los dispositivos, y usar un arbitro centralizado para dar prioridad a aquellos que tengan los tiempos mas críticos.
Valente Cuadra