Anda di halaman 1dari 9

Introducción:

Los buses son el mecanismo más común para la comunicación entre los dispositivos del
computador. Físicamente son conductores por donde viajan señales eléctricas. Algunos
ejemplos de buses se muestran en la figura 4.1.

Figura 4.1. Buses

Los buses son casi todos esos caminos que se ven en las tarjetas madre de las imágenes
anteriores.

El bus es un dispositivo en común entre dos o más dispositivos, si dos dispositivos transmiten al
mismo tiempo señales las señales pueden distorsionarse y consecuentemente perder
información. Por dicho motivo existe un arbitraje para decidir quién hace uso del bus.

Por cada línea se pueden trasmitir señales que representan unos y ceros, en secuencia, de a una
señal por unidad de tiempo. Si se desea por ejemplo transmitir 1 byte, se deberán mandar 8
señales, una detrás de otra, en consecuencia se tardaría 8 unidades de tiempo. Para poder
transmitir 1 byte en 1 sola unidad de tiempo tendríamos que usar 8 líneas al mismo tiempo.
Existen varios tipos de buses que realizan la tarea de interconexión entre las distintas partes del
computador, al bus que comunica al procesador, memoria y E/S se lo denomina bus del sistema.

La cantidad de líneas del bus a medida que pasa el tiempo se va incrementando como uno de
los métodos para incrementar la velocidad de transferencia de señales en el computador, y así
incrementar el desempeño. Cada línea tiene un uso específico, y hay una gran diversidad de
implementaciones, pero en general podemos distinguir 3 grandes grupos de buses:

a) Bus de datos: Por estas líneas se transfieren los datos, pueden ser de 8, 16, 32 o más
líneas, lo cual nos indica cuantos datos podemos transferir al mismo tiempo, y es muy
influyente en el rendimiento del sistema. Por ejemplo si el bus es de 8 líneas y las
instrucciones son de 16 bits, el sistema va a tener que acceder 2 veces a memoria para
poder leer la instrucción, el doble de tiempo en leer instrucciones comparando con un
bus de datos de 16 líneas.
b) Bus de direcciones: Por estas líneas se envía la dirección a la cual se requiere hacer
referencia para una lectura o escritura, si el bus es de 8 líneas por ejemplo, las
combinaciones posibles para identificar una dirección irían del 00000000 al 11111111,
son 256 combinaciones posibles, en consecuencia el ancho del bus de datos nos indica
la cantidad de direcciones de memoria a la que podemos hacer referencia. Dentro de
las direcciones posibles, en general el sistema no usa todas para hacer referencia a la
memoria principal, una parte las usa para hacer referencia a los puertos de E/S.
c) Bus de control: Estas líneas son utilizadas para controlar el uso del bus de control y del
bus de datos. Se transmiten órdenes y señales de temporización. Las órdenes son muy
diversas, las más comunes son:

 Escritura en memoria.
 Lectura de memoria.
 Escritura de E/S.
 Lectura de E/S.
 Transferencia reconocida.
 Petición del bus.
 Sesión del bus.
 Petición de interrupción.
 Interrupción reconocida.
 Señal de reloj.
 Inicio..

Las señales de temporización indican la validez de los datos que están en el bus en un
momento dado. En la siguiente figura 4.1 mostramos el Esquema de Interconexión de los
buses en el sistema.

Figura 4.2 Interconexión de los Buses


Todo elemento que esté conectado al bus tiene que saber reconocer si la dirección que está en
el bus de datos le corresponde, tiene que reconocer algunas órdenes transmitidas por el bus de
control, y puede emitir algún tipo de señal por el bus de control (señal de interrupción, señal de
reconocimiento de alguna petición, etc.).

En general, cuanto más dispositivos conectamos al bus, disminuye el rendimiento del sistema;
las causantes de esto son varias, pero las más importantes son el tiempo de sincronización que
se necesita para coordinar el uso del bus entre todos los dispositivos, y que el bus tiene una
capacidad máxima, la cual puede llegar a convertirse en un cuello de botella del sistema. Una de
las formas de tratar este problema es implementando jerarquía de buses.

Jerarquía de buses:

Para mejorar el rendimiento del bus, las jerarquías de buses fueron implementadas cada vez
más, una primera aproximación a una jerarquía de bus básica seria como la que se muestra en
la figura 4.2:
Figura 4.2. Esquema de la jerarquía de buses.
Primero tenemos un bus local, de alta velocidad que conecta el procesador a la cache, el
controlador de la cache también puede acceder al bus del sistema, con esta implementación, la
mayor parte de los datos a los que va a acceder el procesador, que están en la cache, serán
entregados a una alta velocidad, otro punto a destacar de esta parte es que los accesos a
memoria por parte de la cache no van a interrumpir el flujo de datos entre procesador y cache.
También se ve la posibilidad de conectar un dispositivo de entrada salida al bus local. Luego
tenemos el bus del sistema, al cual está conectada la memoria y por debajo el bus de expansión,
al cual se pueden conectar una amplia diversidad de dispositivos, entre el bus del sistema y el
bus de expansión se encuentra una interface, que entre las principales tareas está la de adaptar
las velocidades de transmisión, por ejemplo para un dispositivo muy lento conectado al bus de
expansión la interface podría acumular una cierta cantidad de datos y luego transmitirla a través
del bus del sistema.

Tipos de buses

Una clasificación que podemos hacer es según la funcionalidad de este, los podríamos dividir en
dedicados o multiplexados.

Un ejemplo común de dedicados serian el bus de datos y el bus de direcciones, cada uno se
utiliza solo para una función específica. Esta situación de bus de datos y de direcciones dedicados
es lo más común, pero podría llegar a implementarse con un solo bus multiplexado el tiempo.
Esto funcionaria a grandes rasgos de la siguiente forma:

Al comienzo de la transferencia se sitúa en el bus la dirección de donde se quiere leer o a donde


se desea escribir, luego se emite por el bus de datos una señal indicando que en el bus se
encuentra una dirección valida.

A partir de ese momento se dispone de una unidad de tiempo para que los dispositivos
identifiquen si es su dirección, luego de esto se pone en el mismo bus los datos y se realiza la
transferencia en el sentido que lo indique una orden emitida por el bus de control. La Ventaja
de este método es la reducción de la cantidad de líneas, lo cual ahorra espacio y costos, la
desventaja son que para poder implementar la forma de operar la circuitería en cada modulo
tiene que ser más compleja, y que el rendimiento del sistema será menor por no poder
transmitir los datos simultáneamente, en paralelo (datos y dirección).

Otro tipo de clarificación podría ser según su dedicación física: Podríamos poner como ejemplo
el bus de E/S, el cual se encarga de conectar solo los dispositivos de E/S, este bus se conecta al
bus principal mediante algún adaptador, la ventaja está en que al ser dedicado solo a E/S, el
rendimiento de este va a ser mejor, ya que solo van a operar con él los módulos de E/S, y no va
a haber tanta competencia por el bus.

Método de arbitraje.

Por la razón de que en un momento dado solo puede usar el bus un solo dispositivo, debe existir
un método para decidir quién hace uso de él. Todos los métodos que existen en general pueden
ser clasificados en 2 grandes grupos:

· Arbitraje centralizado: Una parte del hardware del sistema denominada controlador del bus
se encarga de decidir el uso del bus en cada momento, este dispositivo puede ser un modulo
separado o puede estar incorporado al procesador.

· Arbitraje distribuido: En este esquema no existe un controlador centralizado, en su lugar, cada


dispositivo que hace uso del bus tiene que tener incorporada la lógica necesaria para poder
interactuar con los demás dispositivos y decidir quién hace uso del bus.

En cualquiera de los dos casos lo que se busca es que se decida quién va a tener la posesión del
bus en un momento dado, procesador, modulo de E/S o memoria, al cual se lo denomina
maestro del bus, el maestro del bus establecerá una comunicación con otro dispositivo (lectura
o escritura) al cual se lo denominara esclavo.

Temporización:

La temporización clasifica al método utilizado para coordinar los eventos dentro del bus. Según
la temporización usada podemos clasificar los buses en 2 grupos.

Temporización síncrona: Todos los eventos del bus se rigen a través del reloj del computador.
Una de las líneas del bus transmite continuamente una señal de reloj, simplemente una
secuencia de unos y ceros, la cual puede ser leída por todos los dispositivos conectados al bus.
Al intervalo transcurrido en la emisión de un uno y un cero se lo llama ciclo de reloj, todos los
eventos ocurridos dentro del bus comienzan el principio del ciclo y puede durar uno más . En
este método de temporización todos van al ritmo del reloj como mostramos en la figura 4.4.
En el diagrama anterior podemos apreciar como seria en forma simplificada una lectura de datos
a través del bus. Tener en cuenta que hay muchísimas más líneas que no se figuran en el gráfico,
por ejemplo la línea del reloj, que sería algo más constante como la figura 4.5.

Figura 4.5. Señal de Reloj


Las líneas solo pueden tener uno de dos estados, uno o cero. La velocidad en el ritmo que se
alterna de un uno a un cero en la línea del reloj nos da la velocidad del bus, y como todas las
operaciones se van a realizar al ritmo del reloj, al aumentar la velocidad del ciclo vamos a
aumentar la velocidad del sistema.

Con referencia al gráfico de un ciclo de lectura de datos, el maestro (el que tiene permiso para
el uso del bus) pone en el bus de direcciones la dirección de la cual desea leer su contenido,
luego de haber puesto la dirección en las líneas correspondientes, envía por una línea del bus
de control una señal indicando que desea hacer una lectura, el dispositivo correspondiente a
esa dirección reconoce la dirección, y pone en el bus de datos la información solicitada, tras lo
cual, manda otra señal por una línea del bus de control indicando que se le ha reconocido su
petición (que los datos situados en el bus de datos son validos, son los datos solicitados)

Temporización asincrónica:

Acá los eventos no se rigen por la línea del reloj, en general todo evento es disparado por otro
evento anterior. Asi como mostramos en la figura 4.6.

Figura 4.6 Temporización Asíncrona.

El procesador pone en el bus de direcciones la dirección a ser leída y en el bus de control por la
línea correspondiente señal de lectura, luego de un breve tiempo para que las señales eléctricas
se estabilicen, se manda señal por la línea MSYN (sincronización del maestro) indicando que hay
señales validas en el bus de dirección y de control, el modulo correspondiente reconocerá su
dirección, pone el dato solicitado en el bus de datos y emite una señal SSYN(sincronización del
esclavo) por el bus de control indicando en las señales del bus de datos que la información es
válida.

La temporización síncrona es más fácil de implementar y comprobar, pero es menos flexible que
la síncrona. Por ejemplo, en el caso de que hubiesen varios dispositivos conectados al bus, de
distintas velocidades, todos tienen que funcionar a la velocidad del reloj, si hay uno más rápido,
este tiene que bajar su velocidad: En cambio con el asíncrono, cada uno funcionaria a su
velocidad, en el mismo bus se trabajaría a distintas velocidades, cada transferencia se haría con
la velocidad óptima de sus dos partes (maestro-esclavo).

Anchura del bus:

La anchura del bus es simplemente la cantidad de líneas que posee, y está directamente
relacionado con el rendimiento del sistema, cuanto más ancho el bus de direcciones, mayor va
a ser la cantidad de direcciones posibles utilizadas para direccionar memoria y dispositivos de
E/S, y cuanto más ancho el bus de datos, mayor será la cantidad de bits que se va a poder
transmitir en paralelo.

Tipo de transferencia de datos:

Todos los buses permiten la transferencia de datos, ya sea para escritura como para lectura. La
transferencia de dichos datos se muestra en la figura 4.7.

Figura 4.7. Transferencia de Datos


En el gráfico tenemos ejemplificado una escritura y una lectura, en este caso el bus esta
multiplexado en el tiempo, primero se utiliza para transmitir la dirección y luego los datos. Para
optimizar el rendimiento existen algunas operaciones combinadas en las cuales se pasa la
dirección una sola vez, por ejemplo "lectura-modificación-escritura", sería la lectura del dato, se
le aplica alguna modificación y luego se escribe nuevamente. Todo esto es una sola operación,
nadie puede acceder al bus en el medio de la operación, se utiliza para proteger los recursos de
memoria compartida en sistemas con multiprogramación para mantener la integridad de los
datos. Otra instrucción es "lectura después de escritura" que serviría para comprobar el
resultado. Otra operación muy común es la transferencia por bloque, se pasa al principio de la
operación la dirección inicial y luego se realiza lectura o escritura a las siguientes direcciones, la
cantidad de direcciones siguientes también es un parámetro que hay que pasar. Dichas
operaciones se muestran en la figura 4.8.
}Figura 4.8. Bloque de Transferencia de Datos

Definición:

Los registros de desplazamiento son circuitos secuenciales formados por biestables o flip-flops
generalmente de tipo D conectados en serie y una circuiteria adicional que controlará la manera
de cargar y acceder a los datos que se almacenan. En los de desplazamiento se transfiere
información de un flip-flop hacia el adyacente, dentro del mismo registro o a la entrada o salida
del mismo. La capacidad de almacenamiento de un registro es el numero total de bits que puede
contener .

El funcionamiento se realiza de manera síncrona con la señal de reloj. Gran parte de los registros
de desplazamiento reales incluyen una señal RESET o CLEAR asíncrona, que permite poner
simultáneamente todas las salidas en "0" o estado bajo, sin necesidad de introducir ceros
seguidos. Esto permite limpiar rápidamente el registro de desplazamiento lo cual es muy
importante a nivel práctico. Sus funciones dentro del sistema digital son:

• Servir de almacenamiento temporal de un conjunto de bits sobre los que se está realizando
una labor de procesamiento.

• Desplazamiento de datos a lo largo de los flip-flops.

Aplicaciones comunes de los registros de desplazamientos:

Multiplicación x2 (desplazamiento de un bit hacia la izquierda) ej 74LS194 División x2


(desplazamiento de un bit hacia la derecha) ej 74LS194 Conversión serie-paralelo: Nos permite
pasar una información binaria en serie a paralelo. Conversión paralelo-serie: Nos permite pasar
una información binaria en paralelo a serie. Generador de secuencia. Detector de secuencia: Si
se conecta a la salida de los flipflop un decodificador puede reconocerse una secuencia cada vez
que se presente en la entrada. Generador de retardo: Un valor de entrada saldría n pulsos mas
tarde en la salida .
Simulación:
hbhh

Anda mungkin juga menyukai