martes, 14 de octubre de 2008

BUS 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.

FRONT SIDE BUS

Front Side Bus o su acrónimo FSB (traducido "Bus de la parte frontal"), es el término usado para referirse al bus bidireccional que dispone la CPU para comunicarse con el northbridge. Este bus incluye señales de datos, direcciones y control, así como señales de reloj que sincronizan su funcionamiento. La frecuencia de trabajo del microprocesador se obtiene como resultado de multiplicar la frecuencia de reloj del FSB (en MHz, no en MT/s) por un factor multiplicador. Este factor multiplicador, así como la frecuencia de reloj del FSB pueden alterarse a través de la configuración de la placa base, generálmente a través de la BIOS, permitiendo así el overclocking. Por ejemplo una CPU de 1400 MHz, podría funcionar con una frecuencia de reloj de 133 MHz y un factor multiplicador de 11.

La máxima velocidad teórica del FSB está determinada por su ancho de banda (que puede ser distinto de un sistema a otro) y la velocidad del reloj del chipset. Por ejemplo, un FSB de 32 bits de ancho, funcionando a 100MHz ofrece un máximo de 400 MB/s, teniendo en cuenta los clock ticks:

4 Bytes * 100 MHz = 400 MB/s.

Por otra parte si se usa la tecnología Quad Pumping, si el bus funciona a 100 MHz de señal de reloj, en cada ciclo de reloj hay cuatro transferencias de datos. Se dice entonces que el bus funciona a 400 MT/s, y su ancho de banda es:

4 Bytes * 100 MHz * 4 = 1600 MB/s.

Algunos ordenadores tienen una Memoria Caché L2 o L3 externa a la propia CPU conectados mediante un back side bus (Bus trasero o bus de la parte de atrás). El acceso a la memoria caché, conectada a este bus, es más rápido que el acceso a la Memoria RAM por el FSB. En la actualidad, la Caché L2, ha sido incluída en el chip del microprocesador, junto con la caché L1.

Historia y futuro

El FSB empezó a formar parte de la arquitectura de computadoras estándar desde que las aplicaciones requieren más memoria de la que el procesador podría retener.

Los más modernos FSB se utilizan a modo de conexión exclusiva principal entre la CPU y el Chipset. Éste chipset (generalmente compuesto por el trabajo en conjunto del northbridge y el southbridge) es el encargado de interconectar el resto de buses del sistema. Los buses como PCI, AGP, y buses de memoria se comunican con el chipset para permitir el correcto flujo de datos entre los diferentes dispositivos. Generalmente estos buses secundarios funcionan a una velocidad derivada de la velocidad del FSB.

Pese a la solución que dió al problema, siempre se ha pensado en que el FSB debería ser una tecnología con tendencia a desaparecer. Empresas como AMD siempre han criticado el FSB, ya que limita mucho las capacidades reales de un sistema generando mucha latencia y un tiempo de respuesta mayor, creando un auténtico cuello de botella para el resto de dispositivos. No fue hasta 2001 y la aparición de la tecnología Hypertransport cuando se pudo diseñar una tecnología capaz de reemplazar el uso del FSB. Actualmente empresas fabricantes de chipsets como NVIDIA, SiS ó VIA Technologies, ya han comenzado a eliminar el uso del FSB sustituyéndolo con la versión 3.0 de HyperTransport.

BUS DE DIRECCIONES

El bus de dirección (o direcciones) es un canal del microprocesador totalmente independiente al bus de datos donde se establece la dirección de memoria del dato en tránsito. El bus de dirección consiste en el conjunto de líneas eléctricas necesarias para establecer una dirección. La apacidad de la memoria que se puede direccionar depende de la cantidad de bits que conforman el bus de direcciones, siendo 2^n (dos elevado a la ene) el tamaño máximo en bytes del banco de memoria que se podrá direccionar con n líneas. Por ejemplo, para direccionar una memoria de 256 bytes, son necesarias al menos 8 líneas, pues 2^8 = 256. Adicionalmente pueden ser necesarias líneas de control para señalar cuando la dirección está disponible en el bus. Esto depende del diseño del propio bus.

BUSES MULTIPLEXADOS

Algunos diseños utilizan líneas eléctricas multiplexadas para el bus de dirección y el bus de datos. Esto significa que un mismo conjunto de líneas eléctricas se comportan unas veces como bus de dirección y otras veces como bus de datos, pero nunca al mismo tiempo. Una línea de control permite discernir cual de las dos funciones está activa.

CONCEPTO DE VELOCIDAD DE BUS

Es la velocidad a la que circula la información que sale o entra del micrprocesador, a más velocidad tendremos más prestaciones.

El resto de componentes del ordenador han de estar sincronizados a esas velocidades, si no lo están se pueden producir fallos en el funcionamiento del ordenador.

Buses

INTRODUCCIÓN AL CONCEPTO DE BUS

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í.

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".





En el caso en que sólo dos componentes de hardware se comuniquen a través de la línea, podemos hablar de puerto hardware ( puerto serial o puerto paralelo).

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

Subconjunto de un bus

En realidad, 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:

  • El bus de direcciones, (también conocido como bus de memoria) transporta las direcciones de memoria al que el procesador desea acceder, para leer o escribir datos. Se trata de un bus unidireccional.
  • El bus de datos transfiere tanto las instrucciones que provienen del procesador como las que se dirigen hacia él. Se trata de un bus bidireccional.
  • El bus de control (en ocasiones denominado bus de comando) 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.

Los buses principales

Por lo general, dentro de un equipo, se distinguen dos buses principales:

  • el bus interno o 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).
  • el bus 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.

El conjunto de chips

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 (también denominado controlador de entrada/salida o controlador de expansión) administra las comunicaciones entre los distintos dispositivos periféricos de entrada-salida. También se lo conoce como ICH (Concentrador controlador de E/S).

Por lo general, se utiliza el término puente para designar un componente de interconexión entre dos buses.




Es interesante tener en cuenta que para que dos buses se comuniquen entre si, deben poseer el mismo ancho. Esto explica por qué los módulos de memoria RAM a veces deben instalarse en pares (por ejemplo, los primeros chips Pentium que tenían buses de procesador de 64 bits, necesitaban dos módulos de memoria con un ancho de 32 bits cada uno).


MULTIPLICADOR

Antes de ponernos "manos a la obra" debemos entender como se obtiene la velocidad del procesador. En la actualidad, la velocidad de la CPU viene dada por dos factores: La velocidad de reloj en la placa base (cuyo valor afecta a todos los componentes del ordenador) y el multiplicador de frecuencia (cuyo valor sólo afecta al procesador).

Estos valores, cuya configuración se realiza a través de la placa base, multiplicados el uno por el otro determinarán la velocidad en que trabajará el procesador.

Por ejemplo, imaginemos un ordenador que funciona a 600 Mhz, existen varias maneras para obtener esta cifra:

Velocidad bus placa base

Multiplicador de la CPU

Velocidad CPU

133 Mhz

x 4.5

= 600 Mhz.

100 Mhz

x 6

= 600 Mhz.


En nuestro caso, la velocidad final del procesador es la misma, pero sin embargo, con la primera configuración aumentamos la velocidad del bus de la placa base, acrecentando de esta manera el rendimiento de todos los dispositivos instalados en ella (BUS PCI, memorias...) Por el contrario, la segunda configuración resulta mucho más conservadora, y no forzamos ninguno de los componentes del ordenador.

El siguiente paso es averiguar que valores de velocidad de placa base y multiplicador de la CPU está utilizando la configuración actual del sistema y que valores admite. Para ello recurriremos al manual de la placa base donde con todo detalle obtendremos dicha información, con lo que podremos hacernos una idea de las combinaciones posibles. Si no disponemos del manual, recurriremos a la web del fabricante donde encontraremos completa información.

Actualmente la velocidad de la placa base oscila entre los 66, 75, 83, 100, 112 Mhz, aunque otras placas disponen de una selección más amplia 50, 55, 60, 90, 95, 105, 110, 115, 120, 125, 133 y 150 MHz. Esto nos permite todavía mayor flexibilidad a la hora de combinar frecuencias, y en todo caso, si nuestra CPU se niega a trabajar a más velocidad, siempre podemos hacer que, aún funcionando la CPU a una frecuencia parecida, el bus de la placa base vaya más rápido, obteniendo velocidades de transferencia CPU-bus PCI más altas, lo que provoca un aumento de rendimiento global del sistema.

Los dos valores que determinan la velocidad del procesador (frecuencia del bus o reloj y multiplicador) se encuentran en la placa base. El método utilizado para cambiarlos depende del modelo de placa placa base en cuestión. Hay varias formas: