domingo, 28 de febrero de 2016

Resumen de investigación: Los buses, sus tipos y funciones


LOS BUSES


¿Qué es un bus?

Encontré tres conceptos:
  • Un bus, es un canal de notificación que las computadoras usan para comunicar sus componentes entre sí, por ejemplo para comunicar el procesador con los periféricos, memoria o dispositivos de almacenamiento.
  • Se denomina bus, en informática, al conjunto de conexiones físicas (cables, placa de circuito impreso, etc.) que pueden compartirse con múltiples componentes de hardware para que se comuniquen entre sí.
  • Un conjunto de líneas compartidas por distintos elementos de un computador, cuya función es permitir la comunicación entre los distintos subsistemas.
La operacón básica del bus se denomina ciclo de bus. Un ciclo permite realizar una transferencia elemental de un dato entre dos dispositivos. En esta transferencia, la información se lleva de un elemento que se denomina fuente a otro que se denomina destino. Los buses modernos permiten agrupar varias transferencias en una sola operación, que denominaremos transacción, estas pueden tener los mismos o distintos destinos, o incluso un mismo elemento puede actuar como fuente y como destino en distintas transferencias de una misma transacción.


Un poco de historia…

PRIMERA GENERACIÓN



Los primeros computadores sólo tenían dos buses pasivos, uno para la memoria y otro para los demás dispositivos. La CPU controlaba y gestionaba ambos buses. El Bus ISA en los años 70 y 80 deja paso a nuevas generaciones a medida que los procesadores funcionan con frecuencias más altas. Aparece el concepto de bus de sistema (conexión entre el procesador y la RAM) y de buses de expansión (bus AGP para pantalla, bus PCI para tarjetas expansión, bus para periféricos ISA, PCI, SATA,...) necesitando un chip que gestione el tráfico: el chipset.


La imagen siguiente muestra un esquema que hoy ya está obsoleto.




SEGUNDA GENERACIÓN




Cuando los procesadores empezaron a funcionar con frecuencias más altas, se hizo necesario ordenar los buses de acuerdo a su frecuencia: se crearon los buses de sistema, es la conexión entre el procesador y la RAM, y de buses de expansión, haciendo necesario el uso de un Chipset para conectar todo el sistema.
El bus Nubus fue un gran avance ya que tenía un controlador propio y permitía utilizarlo en diferentes arquitecturas. Se caracterizaba por tener un ancho de 32 bits y algunas opciones Plug and Play. Entre otros ejemplos de estos buses autónomos, están el AGP y el bus PCI.


TERCERA GENERACIÓN



Una tercera generación (bus PCI-Express, bus Infiniband, HyperTransport) ha cambiado la forma de conexión. Los buses de las primeras generaciones se sincronizaban compartiendo señales de reloj. Los actuales se conectan punto a punto, como sucede en las redes de comunicaciones. Cada dispositivo negocia su conexión de manera serial o paralela...
El avance constante de los microprocesadores Intel y AMD fuerza al resto de fabricantes de componentes a evolucionar en la misma línea.


El chipset de las primeras generaciones ha evolucionado como muestra la imagen siguiente.



Un chip llamado puente norte (north bridge G31 de Intel en la imagen de arriba) gestiona microprocesador, memoria y pantalla. Otro chip llamado puente sur (south bridge ICH7 de Intel en la imagen de arriba) gestiona el resto de dispositivos.



El siguiente esquema representa, de manera básica, una posible arquitectura más o menos actual. El microprocesador se conecta al puente norte con el bus FSB (Front Side Bus, ya obsoleto). El bus AGP conecta el adaptador de gráficos con la memoria, el bus ATA conecta los dispositivos de almacenamiento masivo de datos (discos duros y las unidades DVDs) mediante el puente sur, el bus PCI (Peripheral Component Interconnect) conecta muchos tipos de dispositivos periféricos PCI mediante el puente sur.
 
.


Esquema genérico detallado de los distintos buses en la arquitectura actual.



        ¿Cuál es su propósito?

El propósito de los buses es reducir el número de rutas necesarias para la comunicación entre los distintos componentes, al realizar las comunicaciones a través de un solo canal de datos. Ésta es la razón por la que, a veces, se utiliza la metáfora "autopista de datos". 


Características de un bus

Un bus se caracteriza por la cantidad de información que se transmite en forma simultánea. Este volumen se expresa en bits y corresponde al número de líneas físicas mediante las cuales se envía la información en forma simultánea. Un cable plano de 32 hilos permite la transmisión de 32 bits en paralelo. El término "ancho" se utiliza para designar el número de bits que un bus puede transmitir simultáneamente. 
Por otra parte, la velocidad del bus se define a través de su frecuencia (que se expresa en Hercios o Hertz), es decir el número de paquetes de datos que pueden ser enviados o recibidos por segundo. Cada vez que se envían o reciben estos datos podemos hablar de ciclo. 
De esta manera, es posible hallar la velocidad de transferencia máxima del bus (la cantidad de datos que puede transportar por unidad de tiempo) al multiplicar su ancho por la frecuencia. Por lo tanto, un bus con un ancho de 16 bits y una frecuencia de 133 MHz, tiene una velocidad de transferencia de:
16 * 133.106 = 2128*106 bit/s, o 2128*106/8 = 266*106 bytes/s o 266*106 /1000 = 266*103 KB/s o 259.7*103 /1000 = 266 MB/s

Tipos de buses por tecnología

En forma muy general existen tres tipos de buses, de acuerdo a la función que realizan, cada bus se halla generalmente constituido por entre 50 y 100 líneas físicas distintas que se dividen a su vez en tres subconjuntos:


1. Bus de direcciones.
2. Bus de datos. 
3. Bus de control.


Bus de Direcciones
Este es un bus unidireccional, (también conocido como bus de memoria) las direcciones de memoria al que el procesador desea acceder fluye es una sola dirección del CPU a la memoria ó a los elementos de entrada y salida.



Bus de Datos
Este es un bus bidireccional, pues los datos pueden fluir hacia o desde la CPU, transfiere tanto las instrucciones que provienen del procesador como las que se dirigen hacia él, pueden ser entradas o salidas, según la operación que se esté realizando (lectura o escritura). En todos los casos, las palabras de datos transmitidas, se clasifican dependiendo del microprocesador.


Bus de Control
En ocasiones denominado bus de comando, es un conjunto de señales que se usa para sincronizar las actividades y transacciones con los periféricos del sistema en otras palabras transporta las órdenes y las señales de sincronización que provienen de la unidad de control y viajan hacia los distintos componentes de hardware. Se trata de un bus bidireccional en la medida en que también transmite señales de respuesta del hardware.

Las señales más importantes en el bus de control son las señales de cronómetro, que generan los intervalos de tiempo durante los cuales se realizan las operaciones. Este tipo de señales depende directamente del tipo del microprocesador.


Clasificación según el criterio de su situación física
  • *      Buses internos.
  • *      Buses Externos.
Bus Interno: sistema (que también se conoce como bus frontal o FSB). El bus interno permite al procesador comunicarse con la memoria central del sistema (la memoria RAM). Este mueve datos entre los componentes internos del microprocesador. Todas las partes del microprocesador están unidas mediante diversas líneas eléctricas. El conjunto de estas líneas se denominan bus interno del microprocesador. Por este bus interno circulan los datos (bus de datos), las señales de control (bus de control) o las direcciones de memoria (bus de direcciones). Cuando se habla de un microprocesador de 32 bits, se está diciendo que el número de líneas del bus interno es de 32.
El bus interno puede compararse a los vasos sanguíneos del cuerpo humano. Así, por las diferentes líneas fluye la información, llegando o abandonando los registros y
las memorias.

Bus externo o de expansión: (llamado algunas veces bus de entrada/salida) permite a diversos componentes de la placa madre (USB, puerto serial o paralelo, tarjetas insertadas en conectores PCI, discos duros, unidades de CD-ROM y CD-RW, etc.) comunicarse entre sí. Sin embargo, permite principalmente agregar nuevos dispositivos por medio de las ranuras de expansión que están a su vez conectadas al bus de entrada/salida. En pocas palabras se utiliza para comunicar el micro y otras partes, como periféricos y memoria.

El conjunto de chips
Es el componente que envía datos entre los distintos buses del equipo para que todos los componentes que forman el equipo puedan a su vez comunicarse entre sí. Originalmente, el conjunto de chips estaba compuesto por un gran número de chips electrónicos (de allí su nombre).

Por lo general, presenta dos componentes:

El Puente Norte (que también se conoce como controlador de memoria, se encarga de controlar las transferencias entre el procesador y la memoria RAM. Se encuentra ubicado físicamente cerca del procesador. También se lo conoce como GMCH que significa Concentrador de controladores gráficos y de memoria




El Puente Sur (llamado también controlador de entrada/salida o de expansión) administra las comunicaciones entre los distintos dispositivos periféricos de entrada-salida. También se conoce como ICH (Concentrador controlador de E/S). Por lo general, se utiliza el término puente para designar un componente de interconexión entres dos buses. 





        Ejemplo de bus

En la imagen siguiente, el diagrama de bloques de Intel X58 Express Chipset para la familia de microprocesadores Intel Core I7, presente en muchos ordenadores que se venden actualmente y que están equipados con una placa base que responde a este diagrama de bloques. Lo primero que nos llama la atención es el bus entre el micro y la memoria DDR3 con triple canal y una velocidad máxima de 8.5 Gigabytes por segundo. El micro se conecta al puente norte mediante bus QPI punto a punto, desarrollado por Intel reemplazando al bus FSB utilizado por otros fabricantes y para competir con la tecnología HyperTransport. El puente norte conecta con el nuevo bus PCI_Express para el sistema gráfico (pantalla). El puente sur permite otros buses para puertos y dispositivos USB 2.0, ATA, eSATA, audio, LAN.





Para bajar el documento completo presione CLIC AQUÍ