La desviación de reloj (a veces llamada desviación de tiempo ) es un fenómeno en los sistemas de circuitos digitales síncronos (como los sistemas informáticos ) en el que la misma señal de reloj de origen llega a diferentes componentes en diferentes momentos. La diferencia instantánea entre las lecturas de dos relojes cualesquiera se llama sesgo.
El funcionamiento de la mayoría de los circuitos digitales se sincroniza mediante una señal periódica conocida como "reloj" que dicta la secuencia y el ritmo de los dispositivos en el circuito. Este reloj se distribuye desde una única fuente a todos los elementos de memoria del circuito, que por ejemplo pueden ser registros o flip-flops . En un circuito que utiliza registros activados por flanco, cuando el flanco o tic del reloj llega a un registro, el registro transfiere la entrada del registro a la salida del registro, y estos nuevos valores de salida fluyen a través de la lógica combinacional.para proporcionar los valores en las entradas de registro para el siguiente tic del reloj. Idealmente, la entrada a cada elemento de memoria alcanza su valor final a tiempo para el siguiente tic del reloj, de modo que el comportamiento de todo el circuito se pueda predecir con exactitud. La velocidad máxima a la que puede funcionar un sistema debe tener en cuenta la variación que se produce entre los diversos elementos de un 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 flip-flops, 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 de los registros 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 ser causada por muchas cosas diferentes, como la longitud de la interconexión de cables, las variaciones de temperatura, la variación en los dispositivos intermedios, el acoplamiento capacitivo , las imperfecciones del material y las diferencias en la capacitancia de entrada en las entradas del reloj de los dispositivos que usan el reloj. A medida que aumenta la frecuencia de reloj de un circuito, la sincronización se vuelve más crítica y se pueden tolerar menos variaciones para que el circuito funcione correctamente.
Hay dos tipos de desviación de reloj: desviación negativa y desviación positiva . El sesgo positivo ocurre cuando el registro de recepción recibe el tic del reloj antes que el registro de transmisión. El sesgo negativo es lo opuesto: el registro de transmisión obtiene el tic del reloj antes que el registro de recepción. La desviación de reloj cero se refiere a la llegada del tic del reloj simultáneamente en el registro de transmisión y recepción. [1]
Sesgo dañino
Hay dos tipos de infracción que pueden deberse a una desviación del reloj. Se produce un problema cuando el reloj alcanza el primer registro y la señal de reloj hacia el segundo registro viaja más lento que la salida del primer registro al segundo registro: la salida del primer registro alcanza la entrada del segundo registro más rápido y, por lo tanto, se sincroniza reemplazando el datos iniciales en el segundo registro, o tal vez destruyendo la integridad de los datos retenidos. Esto se denomina violación de retención porque los datos anteriores no se mantienen el tiempo suficiente en el flip-flop de destino para que se registren correctamente. Otro problema se produce si el flip-flop de destino recibe el tic del 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 tic del reloj. Si no lo hace, se produce una infracción de configuración , lo que se denomina porque los nuevos datos no estaban configurados y no eran estables antes de que llegara el siguiente tic del reloj. Una infracción de retención es más grave que una infracción de configuración porque no se puede solucionar aumentando el período del reloj. El sesgo positivo y el sesgo negativo no pueden afectar negativamente la configuración y mantener las restricciones de tiempo respectivamente (consulte las desigualdades a continuación).
Sesgo beneficioso
La desviación del reloj también puede beneficiar a un circuito al disminuir el período de reloj localmente en el que el circuito funcionará correctamente. Para cada registro de origen y registro de destino conectados por una ruta, se deben obedecer las siguientes desigualdades de configuración y retención:
dónde
- T es el período del reloj,
- reg es el reloj del registro fuente al retardo Q,
- es la ruta con el mayor retraso desde el origen hasta el destino,
- J es un límite superior de jitter,
- S es el tiempo de configuración del registro de destino
- representa la desviación del reloj desde el origen hasta los registros de destino,
- es la ruta con el menor retraso desde el origen hasta el destino,
- H es el tiempo de espera del registro de destino,
- es la desviación del reloj con respecto al registro de destino, y
- es la desviación del reloj con respecto al registro de origen.
Las desviaciones de reloj positivas son buenas para corregir infracciones de configuración, pero pueden provocar infracciones de retención. La desviación de reloj negativa puede proteger contra una infracción de espera, pero puede provocar una infracción de configuración.
En las desigualdades anteriores , se utiliza un solo parámetro, J , para dar cuenta de la fluctuación . Este parámetro debe ser un límite superior para la diferencia de fluctuación entre todos los pares de registro de origen / registro de destino. Sin embargo, si se conoce la estructura de la red de distribución de reloj, diferentes pares de registro de origen / registro de destino pueden tener diferentes parámetros de fluctuación, y se puede usar un valor de fluctuación diferente para la restricción de retención en contraste con el valor de la restricción de configuración. Por ejemplo, si el registro de origen y el registro de destino reciben sus señales de reloj de un búfer de reloj cercano común , el jitter vinculado a esa restricción de retención puede ser muy pequeño, ya que cualquier variación en esa señal de reloj afectará a los dos registros por igual. Para el mismo ejemplo, la fluctuación de fase de la restricción de configuración debe ser mayor que la de la restricción de retención, porque la fluctuación de fase puede variar de un tic a otro. Si el registro de origen recibe su señal de reloj de un búfer de hoja de la red de distribución de reloj que está muy alejado del búfer de hoja que alimenta el registro de destino, entonces el límite de jitter tendrá que ser mayor para tener en cuenta las diferentes rutas de reloj a los dos registros. , que pueden tener diferentes fuentes de ruido acopladas.
Las figuras 1 y 2 ilustran una situación en la que una desviación de reloj intencionada puede beneficiar a un circuito síncrono. [2] En el circuito de sesgo 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 se produce incluso una pequeña cantidad de retraso de reloj adicional en FF3, esto podría destruir los datos en la entrada D de FF3 antes de que llegue el reloj para pasar al Q de FF3 producción. Esto podría suceder incluso si FF2 y FF3 estuvieran físicamente cerca uno del otro, si sus entradas de reloj procedieran de diferentes búferes de 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 intencional. Se interpone una pequeña cantidad de retraso adicional antes de la entrada de reloj de FF2, que luego coloca de manera segura la ruta FF2 -> FF3 lejos de su violación de retención. Como beneficio adicional, este mismo retardo de reloj adicional relaja la restricción de configuración para la ruta FF1 -> FF2. La ruta FF1 -> FF2 puede funcionar correctamente en un período de reloj que es 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 agregado.
Un error común sobre la desviación de reloj intencional es que es necesariamente más peligroso que la desviación de reloj cero, o que requiere un control más preciso de los retrasos en la red de distribución de reloj. Sin embargo, es el circuito de sesgo cero de la Figura 1 el que está más cerca del mal funcionamiento: una pequeña cantidad de sesgo de reloj positivo para el par FF2 -> FF3 provocará una violación de retención, mientras que el circuito de sesgo intencional de la Figura 2 es más tolerante con el retardo no intencionado variaciones en la distribución del reloj.
Desviación óptima
Si los tiempos de llegada del reloj en los registros individuales se ven como variables que deben ajustarse para minimizar el período del reloj mientras se satisface la configuración y se mantienen las desigualdades 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 de reloj de cero es simplemente un punto factible: la solución al programa lineal generalmente da un período de reloj que es menor que el que se logra con la desviación de cero. Además, se pueden garantizar márgenes de seguridad mayores o iguales al caso de desviación cero configurando los tiempos de configuración y retención y el límite de fluctuación de forma adecuada en el programa lineal.
Debido a la forma simple de este programa lineal, un algoritmo de fácil programación está disponible para llegar a una solución. [2] La mayoría de los sistemas CAD para el diseño de VLSI y FPGA contienen funciones para optimizar las desviaciones del reloj.
Confusión entre la desviación del reloj y la fluctuación del reloj
Además de la desviación del reloj debido a las diferencias estáticas en la latencia del reloj desde la fuente del reloj hasta cada registro sincronizado, ninguna señal de reloj es perfectamente periódica, por lo que el período del reloj o el tiempo del ciclo del reloj varía incluso en un solo componente, y esta variación es conocida como fluctuación del reloj . En un punto particular de una red de distribución de relojes, la fluctuación es el único factor que contribuye a la incertidumbre de la sincronización del reloj.
Como una aproximación, a menudo es útil discutir la incertidumbre total de la sincronización del reloj entre dos registros como la suma de la desviación del reloj espacial (las diferencias espaciales en la latencia del reloj desde la fuente del reloj) y la fluctuación del reloj (es decir, la no periodicidad del reloj). en un punto particular de la red). Desafortunadamente, la desviación del reloj espacial varía en el tiempo de un ciclo al siguiente debido a las variaciones locales dependientes del tiempo en la fuente de alimentación, la temperatura local y el acoplamiento de ruido a otras señales.
Por lo tanto, en el caso habitual de enviar y recibir registros en diferentes ubicaciones, no existe una forma clara de separar la incertidumbre total de la sincronización del reloj en desviación y fluctuación espaciales. Por tanto, algunos autores utilizan el término desviación del reloj para describir la suma de la desviación del reloj espacial y la fluctuación del reloj. Por supuesto, esto significa que la desviación del reloj entre dos puntos varía de un ciclo a otro, lo cual es una complejidad que rara vez se menciona. Muchos otros autores usan el término desviación del reloj solo para la variación espacial de los tiempos del reloj, y usan el término jitter del reloj para representar el resto de la incertidumbre total del tiempo del reloj. Por supuesto, esto significa que la fluctuación del reloj debe ser diferente en cada componente, lo que, de nuevo, rara vez se comenta.
Afortunadamente, en muchos casos, la desviación del reloj espacial permanece bastante constante de un ciclo a otro, de modo que el resto de la incertidumbre total de la sincronización del reloj puede aproximarse bien mediante un único valor de fluctuación de reloj común.
En una red
En una red como Internet , la desviación del reloj describe la diferencia de frecuencia ( primera derivada del desplazamiento con el tiempo) de diferentes relojes dentro de la red. [4] Las operaciones de red que requieren marcas de tiempo que sean 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 producir funciones más estables. Algunas aplicaciones (como los servidores de juegos ) también pueden usar su propio mecanismo de sincronización para evitar problemas de confiabilidad debido a la desviación del reloj.
Interfaces
La desviación del reloj es la razón por la que a velocidades rápidas o largas distancias, las interfaces seriales (por ejemplo, SCSI conectado en serie o USB ) son preferidas a las interfaces paralelas (por ejemplo, SCSI paralelo ). [ cita requerida ]
Ver también
Referencias
- Friedman, Eby G. (1995). Redes de distribución de reloj en circuitos y sistemas VLSI . Prensa IEEE. ISBN 978-0780310582.
- 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 desde el original (PDF) el 1 de junio de 2015 . Consultado el 9 de enero de 2017 .
- Tam, S., Limaye, DL y Desai, ONU (abril de 2004). "Generación y distribución de reloj para el procesador Itanium 2 de 130 nm con caché L3 On-Die de 6 MB". Revista IEEE de circuitos de estado sólido . 39 (4).Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Friedman, EG Diseño de distribución de reloj en circuitos VLSI: una descripción general , Simposio internacional de 1993 IEEE sobre circuitos y sistemas (págs. 1475-1478). IEEE, 1993.
- ^ a b Maheshwari, N. y Sapatnekar, SS, Análisis de sincronización y optimización de circuitos secuenciales , Kluwer, 1999.
- ^ Fishburn, JP (julio de 1990). "Optimización de la inclinación del reloj" (PDF) . Transacciones IEEE en computadoras . 39 (7): 945–951. doi : 10.1109 / 12.55696 .
- ^ Mills, D. "Especificación, implementación y análisis del Network Time Protocol (Versión 3)" . tools.ietf.org . Consultado el 30 de octubre de 2017 .