Вы находитесь на странице: 1из 17

Arquitectura de

Computadoras
Clase 7
Buses
• Un computador es una colección de diferentes componentes lo
conforman.
• Hasta ahora hemos estudiado solamente el comportamiento del
procesador, sin embargo es necesario también observar como
funciona la interacción de este con los diferentes periféricos que sean
necesarios.
• Para estas interconexiones haremos uso de buses de comunicación.
Buses

Fuente: http://upload.wikimedia.org/wikipedia/commons/6/68/Computer_system_bus.svg
Elementos básicos de un Bus
• Todo bus debe contener líneas que permitan controlar el
comportamiento del Bus, así como líneas de datos propiamente para
enviar la información hacia los diferentes elementos del bus.
• Adicionalmente todo bus requiere de un protocolo para ordenar el
flujo de información que se transporta.
• Finalmente todo Bus requiere de algún método de direccionamiento
que permita identificar a cada elemento del bus.
Elementos básicos de un Bus
• Toda operación de Bus se caracteriza porque es de entrada o de salida
(Input/Output): esto visto desde el punto de vista del procesador.
• Adicionalmente podemos clasificar los Buses como de acceso a
memoria (procesador-memoria) o Buses de acceso a entrada/salida.
• Finalmente una diferenciación importante de los Buses es su tipo de
comunicación: encontramos Buses síncronos y asíncronos.
Elementos básicos de un Bus

Fuente: http://www.botskool.com/images/elec/serial1.jpg
Elementos básicos de un Bus

Fuente: http://upload.wikimedia.org/wikipedia/commons/thumb/9/90/Manchester_encoding_both_conventions.svg/1280px-
Manchester_encoding_both_conventions.svg.png
Variantes entre tipos de comunicación
• Los Buses síncronos tienen dos problemas importantes:
• Todos los elementos del Bus deben tener la misma frecuencia de reloj.
• Debido a problemas en el comportamiento de la señal de reloj (Clock Skew),
las líneas del Bus no pueden ser muy largas si la frecuencia de reloj es alta.
• Por el lado de los protocolos asíncronos, dado que no existe una señal
de reloj para la sincronización podemos tener buses más largos.
• Si queremos enviar datos en Buses donde no existe una señal de clock
para la sincronía debemos recurrir a otros elementos, uno de ellos es
conocido como handshaking.
Elementos básicos de un Bus

Fuente: Computer Organization and Design: the Hardware/Software Interface, Hennessy-Patterson


Handshaking
• Veamos un primer ejemplo de handshaking utilizando un protocolo
en el que asumimos que existen 3 líneas de datos:
• ReadReq: Usado para indicar un requerimiento de lectura en memoria, la
dirección se pone en las líneas de datos en simultáneo.
• DataRdy: Usado para indicar que el dato está listo en las líneas de datos. En
una transacción de salida será la memoria (en caso de un bus de memoria) la
que modifique esta señal. En una transacción de entrada (en caso de un bus
de entrada/salida) será el periférico el que modifique esta señal. En cualquier
caso los datos serán colocados en las líneas correspondientes en conjunto con
la modificación de esta señal.
• Ack: Usado para indicar el recibimiento correcto de las otras dos líneas por el
receptor.
Handshaking

Fuente: Computer Organization and Design: the Hardware/Software Interface, Hennessy-Patterson


HandShaking
1. Cuando la memoria ve la línea de ReadReq, lee la dirección de la línea de datos y
responde con la línea de Ack para indicar que la dirección ha sido vista.
2. El dispositivo que inicia la transmisión lee la línea en alta para Ack y libera tanto la
línea de ReadReq y la línea de datos.
3. La memoria ve que la línea ReadReq está en baja y por lo tanto baja la línea Ack.
4. Este paso empieza cuando la memoria tiene los datos lista, coloca los datos en las
líneas correspondientes y coloca en alta la línea de DataRdy.
5. El dispositivo que inicia la transmisión ve la señal de DataRdy, lee los datos del Bus, y
avisa que tiene los datos al colocar Ack en alta.
6. La memoria ve la señal de Ack y libera las líneas de datos.
7. Finalmente el dispositivo que inicia la transmisión ve que la línea DataRdy está en baja
y por lo tanto baja la línea de Ack para indicar que la transacción ha sido completada.
Un ejemplo de un bus en la vida Real: I2C
• Veremos el caso del Bus I2C (llamado normalmente “I cuadrado C”) el
cual es un bus síncrono.
• Este bus es muy usado en periféricos que se encuentran dentro de
una misma tarjeta por su alta velocidad y baja cantidad de líneas.
• Para esto I2C utiliza dos líneas: SDA para transmisión de datos y SCL
para enviar la señal de reloj.
I2C

Fuente: http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-
328-328P_datasheet_Complete.pdf
I2C: Formato de direcciones

Fuente: http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-
328-328P_datasheet_Complete.pdf
I2C: Formato de direcciones

Fuente: http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-
328-328P_datasheet_Complete.pdf
I2C: Formato completo

Fuente: http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-
328-328P_datasheet_Complete.pdf

Вам также может понравиться