Sincronismo de Canales

Anuncio
Sincronismo de Canales
Los protocolos de transferencia de información en canales de microprocesadores, se pueden
clasificar en tres grupos:
1. Sincrónicos: transferencias sincronizadas, una transferencia por período de reloj.
2. Asincrónicos: transferencias sin reloj de sincronismo.
3. Semisincrónicos: transferencias sincronizadas, una transferencia por uno o mßs
períodos de reloj.
Un microprocesador posee un canal de datos, uno de direcciones y uno de control. Este
último es el encargado de manejar el sincronismo. Para ello dispone de líneas a tal efecto,
llamadas de sincronismo o de "handshake". La función de estas líneas es la de indicar el
comienzo y el fin de una transferencia de datos o de información. La complejidad de estas
líneas depende del tipo de máquina.
1. Canales Sincrónicos
Los canales sincrónicos son los más fáciles de implementar ya que la única línea de control
es un reloj. El flanco ascendente del reloj indica el comienzo de la transferencia y el
descendente el fin de la misma. En este tipo de canales, las transferencias son controladas
por el reloj maestro. La principal ventaja de estos es que además de ser los más simples de
los tres protocolos, también conducen a las transacciones más rápidas, siempre y cuando la
respuesta de los dispositivos sean suficientemente rápidas para operar a la velocidad
impuesta por el reloj.
Un ejemplo de un microprocesador con estas características de transferencia es el 6800, tal
como se muestra en la Fig. C1.
Figura C1
2. Canales Asincrónicos
El problema más importante de los buses sincrónicos se presenta cuando el procesador
debe manejar dispositivos de distintas velocidades de operación, ya que el procesador
debería funcionar a la velocidad del dispositivo más lento (en algunos procesadores como
el 6800, es posible "estirar" un poco el ancho del pulso del reloj).
Lo ideal sería contar con transacciones rápidas para los dispositivos rápidos y lentas para
los dispositivos lentos o distantes en el bus.
Las señales de control, tal como se muestra en la Fig. C2, se denominan MASTER y
SLAVE. Este protocolo requiere un cambio nivel (flanco) para alternar entre las señales de
control. Esto garantiza que la información en el canal de datos y direcciones se transmita
sin conflictos y sin pérdida o duplicación en el bus. Un ejemplo de este tipo de canal es el
del microprocesador LSI-11 de Digital.
Figura C2
La principal desventaja de este tipo de canal es el retardo de propagación, que limitan el
ancho de banda del canal.
3. Canal Semisincrónico
Una solución alternativa intermedia entre velocidad de operación y compatibilidad entre
dispositivos de distintas velocidades sería el canal semisincrónico. En este se distinguen
dos señales de control: una es el reloj o una señal proporcional al reloj del microprocesador
(señales RD o WR), que son enviadas por el master y la otra es la señal WAIT que es
enviada por el slave, la cual controla la velocidad de transferencia "estirando" los accesos a
los dispositivos.
La se±al WAIT se la denomina también XACK ("transfer acknowledge"). El slave
direccionado debe proveer al maestro con una señal de reconocimiento en respuesta a un
control de la transferencia (comando read o write). Esta línea la emite el slave para
indicarle al master que la operación del comando de lectura o escritura fue completada y
que la información sobre el canal de datos fue aceptada. Por lo tanto, la línea XACK le
permite a la CPU completar el ciclo corriente de canal. Si la línea XACK no es retornada a
la CPU, ésta entra en un estado "WAIT" hasta que la misma sea devuelta. En estos
sistemas, para evitar los tiempos indefinidos de estados "WAIT", debido a un error de
direccionamiento, se debe preveer funciones de "time-out" para finalizar el ciclo de canal,
después de un determinado período de tiempo.
En el caso en el cual los dispositivos sean lo suficientemente rápidos, el canal se comporta
como sincrónico; en cambio si el slave no puede responder en el tiempo de acceso de la
CPU, debe generar un tiempo de espera, comportándose en este caso como asincrónico. Un
ejemplo de un microprocesador con estas características de transferencia es el 8085, tal
como se muestra en la Fig. C3.
Figura C3
La ventaja de estos tipos de canales es que pueden tener la velocidad de los sincrónicos y la
versatilidad de los asincrónicos. Sin embargo la desventaja sería la máxima longitud del
canal, ya que la señal wait debe ser establecida en un período de tiempo fijo.
Proceso de Sincronismo
Cuando se desea transferir información de un dispositivo a otro (microprocesador memoria o entrada/salida), se deben considerar una serie de operaciones:
- Presentar dirección de memoria.
- Proceso de sincronismo.
- Transferencia de información.
En el proceso de sincronismo actúan ciertas líneas del canal de control del
microprocesador. Por proceso de sincronismo se entiende el hecho de determinar el
momento (tiempo) exacto cuando se produce la transferencia de información y de
establecer la dirección de la transferencia de la información (lectura o escritura). Por lo
tanto es necesario diferenciar 3 estados:
- Lectura.
- Escritura.
- No acceso al canal (canal ocioso).
Esto nos indica que es por lo menos necesario contar con 2 líneas del canal de control para
poder diferenciar dichos estados. Existen históricamente 2 escuelas bién diferenciadas para
la implementación: La primera sigue las técnicas de los microprocesadores de Intel
(8080/8085), que consiste en emplear dos líneas de sincronismo mutuamente excluídas:
señal /WR y señal /RD, las cuales indican el instante (temporizado) y la operación de
escritura o de lectura respectivamente. La segunda sigue las técnicas de los
microprocesadores de Motorola (6800), que consiste en emplear una línea lógica de
lectura-escritura (R/W), que indica la dirección de los datos y otra de sincronismo (φ2),
indicando el instante de la transferencia.
En la figura C4 a,b y en la C5 a,b se muestra la conexión entre los microprocesadores 8085
y 6800 con memorias con /OE y sin /OE respectivamente.
Figura C4 a
Figura C4 b
Figura C5 a
Figura C5 b
Muy amenudo surgen problemas de sincronización cuando se desean conectar dispositivos
periféricos diseñados para un tipo de microprocesador, a otro microprocesador. Por
ejemplo si se desea conectar un dispositivo compatible con el microprocesador 6800 a un
microrpocesador 8085, surgen problemas en los ciclos de escritura. La línea /WR del mp
tiene la polaridad correcta con respecto a la línea R/W del dispositivo, sin embargo como la
primera define además el sincronismo de escritura, no podría conectarse directamente a la
segunda, debido a que estos dispositivos necesitan un tiempo de establecimiento ("set-up")
de la línea R/W antes de la aparición de los datos, Fig. C6.
Figura C6
Para lograr la conexión deseada (comparar la Fig. C3 con la Fig. C6), sería necesario
generar la línea E como la función lógica Nand de las líneas /RD y /WR y además generar
un estado tWAIT desactivando la línea READY del mp 8085.
Descargar