Bus Local
La familia de computadoras 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.
Conexiones del hardware
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.
FUNCIONAMIENTO
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.
Manejo de interrupciones
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.
LOCAL BUS
Teniendo en cuenta las mencionadas limitaciones del bus AT y la infalibilidad de los buses EISA y MCA para asentarse en el mercado, en estos años se han ideado otros conceptos de bus. Se inició con el llamado Vesa Local Bus (VL-Bus), que fue concebido y propagado independientemente por el comité VESA, que se propuso el definir estándares en el ámbito de las tarjetas gráficas y así por primera vez y realmente tuviera poco que ver con el diseño del bus del PC. Fueron y son todavía las tarjetas gráficas quienes sufren la menor velocidad del bus AT. Por eso surgió, en el Comité VESA, la propuesta para un bus más rápido que fue el VESA Local Bus.
Vesa Local Bus
Al contrario que con el EISA, MCA y PCI, el bus VL no sustituye al bus ISA sino que lo complementa. Un PC con bus VL dispone para ello de un bus ISA y de las correspondientes ranuras (slots) para tarjetas de ampliación. Además, en un PC con bus VL puede haber, sin embargo, una, dos o incluso tres ranuras de expansión, para la colocación de tarjetas concebidas para el bus VL, casi siempre gráficos. Solamente estos slots están conectados con la CPU a través de un bus VL, de tal manera que las otras ranuras permanecen sin ser molestadas y las tarjetas ISA pueden hacer su servicio sin inconvenientes.
El VL es una expansión homogeneizada de bus local, que funciona a 32 bits, pero que puede realizar operaciones a 16 bits. VESA presentó la primera versión del estándar VL-BUS en agosto de 1992. La aceptación por parte del mercado fue inmediata. Fiel a sus orígenes, el VL-BUS se acerca mucho al diseño del procesador 80486. De hecho presenta las mismas necesidades de señal de dicho chip, exceptuando unas cuantas menos estrictas destinadas a mantener la compatibilidad con los 386.
La especificación VL-Bus como tal, no establece límites, ni superiores ni inferiores, en la velocidad del reloj, pero una mayor cantidad de conectores supone una mayor capacitancia, lo que hace que la fiabilidad disminuya a la par que aumenta la frecuencia. En la práctica, el VL-BUS no puede superar los 66 Mhz. Por este motivo, la especificación VL-BUS original recomienda que los diseñadores no empleen más de tres dispositivos de bus local en sistemas que operan a velocidades superiores a los 33 Mhz. A velocidades de bus superiores, el total disminuye: a 40 Mhz solo se pueden incorporar dos dispositivos; y a 50 Mhz un único dispositivo que ha de integrarse en la placa. En la práctica, la mejor combinación de rendimiento y funciones aparece a 33 Mhz.
Tras la presentación del procesador Pentium a 64 bits, VESA comenzó a trabajar en un nuevo estándar (VL-Bus versión 2.0). La nueva especificación define un interface de 64 bits pero que mantienen toda compatibilidad con la actual especificación VL-BUS. La nueva especificación 2.0 redefine además la cantidad máxima de ranuras VL-BUYS que se permiten en un sistema sencillo. Ahora consta de hasta tres ranuras a 40 Mhz y dos a 50 Mhz, siempre que el sistema utilice un diseño de baja capacitancia. En el nombre del bus VL queda de manifiesto que se trata de un bus local. De forma distinta al bus ISA éste se acopla directamente en la CPU. Esto le proporciona por un lado una mejora substancial de la frecuencia de reloj (de la CPU) y hace que dependa de las líneas de control de la CPU y del reloj. A estas desventajas hay que añadirle que no en todos los puntos están bien resueltas las especificaciones del comité VESA, hecho que a la larga le llevará a que el éxito del bus VL se vea empañado por ello. En sistemas 486 económicos se podía encontrar a menudo, pero su mejor momento ya ha pasado.
vazquez moreno victor