La desviación del reloj (a veces llamada desviación de temporización ) es un fenómeno que se produce en los sistemas de circuitos digitales síncronos (como los sistemas informáticos ) en el que la misma señal de reloj llega a diferentes componentes en momentos distintos debido al retardo de propagación de la señal en las compuertas o, en tecnologías de semiconductores más avanzadas , en los cables . La diferencia instantánea entre las lecturas de dos relojes cualesquiera se denomina desviación.
El funcionamiento de la mayoría de los circuitos digitales se sincroniza mediante una señal periódica conocida como " reloj ", que determina la secuencia y el ritmo de los dispositivos del circuito. Este reloj se distribuye desde una única fuente a todos los elementos de memoria del circuito, que pueden ser, por ejemplo, registros o biestables . En un circuito que utiliza registros activados por flanco, cuando el flanco o pulso del reloj llega a un registro, este transfiere su entrada a su salida, y estos nuevos valores de salida fluyen a través de una lógica combinacional para proporcionar los valores de las entradas de los registros para el siguiente pulso del reloj.
Idealmente, la entrada a cada elemento de memoria alcanza su valor final justo a tiempo para el siguiente ciclo de reloj, de modo que se pueda predecir con exactitud el comportamiento de todo el circuito. La velocidad máxima a la que puede funcionar un sistema debe tener en cuenta la variabilidad que se produce entre los distintos elementos del circuito debido a las diferencias en la composición física, la temperatura y la longitud de la ruta.
En un circuito síncrono, se dice que dos registros, o biestables, son "secuencialmente adyacentes" si una ruta lógica los conecta. Dados dos registros secuencialmente adyacentes R i y R j con tiempos de llegada del reloj en los pines de reloj del registro de origen y destino iguales a T C i y T C j respectivamente, la desviación del reloj se puede definir como: T desviación i, j = T C i − T C j .
En el diseño de circuitos
La desviación del reloj puede deberse a diversos factores, como la longitud de los cables de interconexión, las variaciones de temperatura, las variaciones en los dispositivos intermedios, el acoplamiento capacitivo , las imperfecciones de los materiales y las diferencias en la capacitancia de entrada de los dispositivos que utilizan el reloj. A medida que aumenta la frecuencia del reloj de un circuito, la sincronización se vuelve más crítica y se tolera una menor variación para que el circuito funcione correctamente.
Existen dos tipos de desviación de reloj: desviación negativa y desviación positiva . La desviación positiva se produce cuando el registro receptor recibe el pulso de reloj más tarde que el registro transmisor. La desviación negativa es lo opuesto: el registro transmisor recibe el pulso de reloj más tarde que el registro receptor. La desviación de reloj cero se refiere a la llegada simultánea del pulso de reloj a los registros transmisor y receptor. [ 1 ]
Sesgo perjudicial
Existen dos tipos de errores que pueden ser causados por la desviación del reloj. Un problema se produce cuando el reloj llega al primer registro y la señal de reloj hacia el segundo registro viaja más lentamente que la salida del primer registro hacia el segundo. La salida del primer registro llega a la entrada del segundo registro más rápido y, por lo tanto, se sincroniza, reemplazando los datos iniciales en el segundo registro o incluso destruyendo la integridad de los datos almacenados. Esto se denomina error de retención, ya que los datos anteriores no se retienen el tiempo suficiente en el flip-flop de destino para ser sincronizados correctamente. Otro problema se produce si el flip-flop de destino recibe el pulso de reloj antes que el flip-flop de origen. La señal de datos tiene mucho menos tiempo para llegar al flip-flop de destino antes del siguiente pulso de reloj. Si no lo logra, se produce un error de configuración , llamado así porque los nuevos datos no se configuraron y estabilizaron antes de que llegara el siguiente pulso de reloj. Un error de retención es más grave que un error de configuración, ya que no se puede corregir aumentando el período del reloj. La asimetría positiva y la asimetría negativa no pueden afectar negativamente las restricciones de tiempo de configuración y retención, respectivamente (véanse las desigualdades a continuación).
sesgo beneficioso
Cuando una señal sincroniza un circuito de forma general, las señales/transiciones de estado que inicia deben estabilizarse antes de que señale otro conjunto de transiciones de estado, lo que limita la frecuencia máxima del reloj. Por lo tanto, la desviación reduce la frecuencia del reloj a la que el circuito funcionará correctamente. Para cada registro de origen y registro de destino conectados por una ruta, deben cumplirse las siguientes desigualdades de configuración y retención:
dónde
- T es el período del reloj,
- reg es el retardo del reloj del registro fuente a Q,
- es la ruta con el mayor retraso desde el origen hasta el destino,
- J es un límite superior para la fluctuación,
- S es el tiempo de configuración del registro de destino.
- representa la desviación del reloj desde los registros de origen a los de destino,
- es la ruta con el menor retraso desde el origen hasta el destino,
- H es el tiempo de retención del registro de destino,
- ¿Está el reloj desfasado con respecto al registro de destino?
- es el desfase del reloj con respecto al registro fuente.
Las desviaciones positivas del reloj son útiles para corregir errores de configuración, pero pueden provocar errores de retención. Las desviaciones negativas del reloj pueden prevenir errores de retención, pero pueden provocar errores de configuración.
En las desigualdades anteriores, se utiliza un único parámetro, J , para tener en cuenta la fluctuación (jitter ). Este parámetro debe ser un límite superior para la diferencia de jitter entre todos los pares de registros de origen/destino. Sin embargo, si se conoce la estructura de la red de distribución de reloj, diferentes pares de registros de origen/destino pueden tener diferentes parámetros de jitter, y se puede utilizar un valor de jitter distinto para la restricción de retención en comparación con el valor para la restricción de configuración. Por ejemplo, si el registro de origen y el de destino reciben sus señales de reloj de un búfer de reloj común cercano , el límite de jitter para esa restricción de retención puede ser muy pequeño, ya que cualquier variación en esa señal de reloj afectará a ambos registros por igual. Para el mismo ejemplo, el límite de jitter para la restricción de configuración debe ser mayor que para la restricción de retención, porque la jitter puede variar de un ciclo de reloj a otro. Si el registro de origen recibe su señal de reloj de un búfer hoja de la red de distribución de reloj que está muy alejado del búfer hoja que alimenta el registro de destino, entonces el límite de fluctuación tendrá que ser mayor para tener en cuenta las diferentes rutas de reloj hacia los dos registros, que pueden tener diferentes fuentes de ruido acopladas a ellos.


Las figuras 1 y 2 ilustran una situación donde la desviación intencional del reloj puede beneficiar a un circuito síncrono. [ 2 ] En el circuito de desviación cero de la figura 1, una ruta larga va del flip-flop FF1 al flip-flop FF2, y una ruta corta, como una ruta de registro de desplazamiento, de FF2 a FF3. La ruta FF2 -> FF3 está peligrosamente cerca de tener una violación de retención: si incluso una pequeña cantidad de retardo de reloj adicional ocurre en FF3, esto podría destruir los datos en la entrada D de FF3 antes de que el reloj llegue para sincronizarlos a la salida Q de FF3. Esto podría suceder incluso si FF2 y FF3 estuvieran físicamente cerca uno del otro, si sus entradas de reloj provinieran de diferentes buffers hoja de una red de distribución de reloj.
La figura 2 muestra cómo se puede solucionar el problema con una desviación de reloj intencionada. Se interpone un pequeño retardo adicional antes de la entrada de reloj del FF2, lo que permite que la ruta FF2 -> FF3 evite la violación de retención. Además, este retardo adicional relaja la restricción de configuración para la ruta FF1 -> FF2. Esta ruta puede funcionar correctamente con un período de reloj menor que el requerido para el caso de desviación de reloj cero, en una cantidad igual al retardo del búfer de retardo de reloj añadido.
Una idea errónea común sobre la desviación intencional del reloj es que necesariamente es más peligrosa que la desviación cero, o que requiere un control más preciso de los retardos en la red de distribución del reloj. Sin embargo, es el circuito de desviación cero de la figura 1 el que está más cerca de fallar: una pequeña desviación positiva del reloj para el par FF2 -> FF3 provocará una violación de retención, mientras que el circuito de desviación intencional de la figura 2 tolera mejor las variaciones de retardo no deseadas en la distribución del reloj.
Asimetría óptima
Si los tiempos de llegada del reloj a los registros individuales se consideran variables que deben ajustarse para minimizar el período del reloj, satisfaciendo al mismo tiempo las desigualdades de configuración y retención para todas las rutas a través del circuito, entonces el resultado es un problema de programación lineal . [ 3 ] En este programa lineal, la desviación del reloj cero es simplemente un punto factible; la solución al programa lineal generalmente proporciona un período de reloj menor que el que se logra con desviación cero. Además, se pueden garantizar márgenes de seguridad mayores o iguales al caso de desviación cero estableciendo adecuadamente los tiempos de configuración y retención y el límite de fluctuación en el programa lineal.
Debido a la forma simple de este programa lineal, se dispone de un algoritmo fácilmente programable para llegar a una solución. [ 2 ] La mayoría de los sistemas CAD para el diseño de VLSI y FPGA contienen herramientas para optimizar las desviaciones de reloj.
Confusión entre desviación del reloj y fluctuación del reloj
Además de la desviación del reloj debida a las diferencias estáticas en la latencia del reloj desde la fuente de reloj hasta cada registro síncrono, ninguna señal de reloj es perfectamente periódica, por lo que el período o ciclo del reloj varía incluso en un solo componente; esta variación se conoce como fluctuación del reloj (jitter ). En un punto determinado de una red de distribución de reloj, la fluctuación es el único factor que contribuye a la incertidumbre en la temporización del reloj.
Como aproximación, suele ser útil considerar la incertidumbre total de la sincronización entre dos registros como la suma de la desviación espacial del reloj (las diferencias espaciales en la latencia del reloj con respecto a la fuente de reloj) y la fluctuación del reloj (es decir, la falta de periodicidad del reloj en un punto específico de la red). Desafortunadamente, la desviación espacial del reloj varía con el tiempo de un ciclo a otro debido a variaciones locales dependientes del tiempo en la fuente de alimentación, la temperatura local y el acoplamiento de ruido con otras señales.
Por lo tanto, en el caso habitual de enviar y recibir registros en ubicaciones diferentes, no existe una forma clara de separar la incertidumbre total de la temporización del reloj en desviación espacial y fluctuación. Así, algunos autores utilizan el término desviación del reloj para describir la suma de la desviación espacial y la fluctuación del reloj. Esto, por supuesto, implica que la desviación del reloj entre dos puntos varía de un ciclo a otro, una complejidad que rara vez se menciona. Muchos otros autores utilizan el término desviación del reloj únicamente para la variación espacial de los tiempos del reloj, y el término fluctuación del reloj para representar el resto de la incertidumbre total de la temporización del reloj. Esto, por supuesto, implica que la fluctuación del reloj debe ser diferente en cada componente, lo cual, de nuevo, rara vez se discute.
Afortunadamente, en muchos casos, la desviación espacial del reloj permanece bastante constante de un ciclo a otro, de modo que el resto de la incertidumbre total de la temporización del reloj se puede aproximar bien mediante un único valor común de fluctuación del reloj.
En una red
En una red como internet , la desviación del reloj describe la diferencia de frecuencia ( primera derivada del desfase con respecto al tiempo) entre los distintos relojes de la red. [ 4 ] Las operaciones de red que requieren marcas de tiempo comparables entre hosts pueden verse afectadas por la desviación del reloj. Se han diseñado varios protocolos (por ejemplo, el Protocolo de Tiempo de Red ) para reducir la desviación del reloj y lograr un funcionamiento más estable. Algunas aplicaciones (como los servidores de juegos ) también pueden utilizar su propio mecanismo de sincronización para evitar problemas de fiabilidad derivados de la desviación del reloj.
Interfaces
La desviación del reloj es la razón por la que, a altas velocidades o largas distancias, se prefieren las interfaces seriales (por ejemplo, Serial Attached SCSI o USB ) a las interfaces paralelas (por ejemplo, Parallel SCSI ).
Véase también
Referencias
- Friedman, Eby G. (1995). Redes de distribución de reloj en circuitos y sistemas VLSI . IEEE Press. ISBN 978-0-7803-1058-2.
- Friedman, Eby G. (mayo de 2001). "Redes de distribución de reloj en circuitos integrados digitales síncronos" (PDF) . Actas del IEEE . 89 (5): 665– 692. CiteSeerX 10.1.1.7.7824 . doi : 10.1109/5.929649 . Archivado del original (PDF) el 1 de junio de 2015. Consultado el 9 de enero de 2017 .
- Tam, S.; Limaye, DL; Desai, UN (abril de 2004). "Generación y distribución de reloj para el procesador Itanium 2 de 130 nm con caché L3 en chip de 6 MB". IEEE Journal of Solid-State Circuits . 39 (4). doi : 10.1109/JSSC.2004.825121 . S2CID 31388328 .
- ↑ Friedman, EG Diseño de distribución de reloj en circuitos VLSI: una visión general , Simposio Internacional IEEE de Circuitos y Sistemas de 1993 (págs. 1475-1478). IEEE, 1993.
- 1 2 Maheshwari, N., y Sapatnekar, SS, Análisis de tiempos y optimización de circuitos secuenciales , Kluwer, 1999.
- ↑ Fishburn, JP (julio de 1990). "Optimización de la desviación del reloj" (PDF) . IEEE Transactions on Computers . 39 (7): 945– 951. doi : 10.1109/12.55696 .
- ↑ Mills, D. (1992). "Especificación, implementación y análisis del protocolo de tiempo de red (versión 3)" . tools.ietf.org . doi : 10.17487/RFC1305 . Consultado el 30 de octubre de 2017 .
- Parámetros eléctricos
- señal de reloj