Décalage de l'horloge - Clock skew

Le décalage d'horloge (parfois appelé décalage de synchronisation ) est un phénomène dans les systèmes de circuits numériques synchrones (tels que les systèmes informatiques ) dans lesquels le même signal d'horloge source arrive à différents composants à des moments différents. La différence instantanée entre les lectures de deux horloges est appelée leur biais.

Le fonctionnement de la plupart des circuits numériques est synchronisé par un signal périodique appelé "horloge" qui dicte la séquence et la stimulation des dispositifs sur le circuit. Cette horloge est distribuée à partir d'une source unique à tous les éléments mémoire du circuit, qui pourraient par exemple être des registres ou des bascules . Dans un circuit utilisant des registres déclenchés par front, lorsque le front ou le tic d'horloge arrive à un registre, le registre transfère l'entrée du registre à la sortie du registre, et ces nouvelles valeurs de sortie passent par la logique combinatoirepour fournir les valeurs aux entrées de registre pour le prochain top d'horloge. Idéalement, l'entrée de chaque élément de mémoire atteint sa valeur finale dans le temps pour le prochain coup d'horloge afin que le comportement de l'ensemble du circuit puisse être prédit avec précision. La vitesse maximale à laquelle un système peut fonctionner doit tenir compte de la variance qui se produit entre les divers éléments d'un circuit en raison des différences de composition physique, de température et de longueur de chemin.

Dans un circuit synchrone, deux registres, ou bascules, sont dits « séquentiellement adjacents » si un chemin logique les relie. Étant donné deux registres séquentiellement adjacents R i et R j avec des temps d'arrivée d'horloge aux broches d'horloge des registres source et destination égaux respectivement à T C i et T C j , le décalage d'horloge peut être défini comme : T skew i, j = T C i − T C j .

Dans la conception de circuits

Le décalage de l'horloge peut être causé par de nombreuses choses différentes, telles que la longueur de l'interconnexion des fils, les variations de température, la variation des dispositifs intermédiaires, le couplage capacitif , les imperfections matérielles et les différences de capacité d'entrée sur les entrées d'horloge des dispositifs utilisant l'horloge. À mesure que la fréquence d'horloge d'un circuit augmente, la synchronisation devient plus critique et moins de variations peuvent être tolérées si le circuit doit fonctionner correctement.

Il existe deux types d'asymétrie d'horloge : l'asymétrie négative et l' asymétrie positive . Un biais positif se produit lorsque le registre de réception reçoit le top d'horloge plus tard que le registre de transmission. Le biais négatif est le contraire : le registre émetteur obtient le top d'horloge plus tard que le registre récepteur. Le décalage d'horloge zéro fait référence à l'arrivée du top d'horloge simultanément au registre d'émission et de réception.

biais nuisible

Il existe deux types de violation qui peuvent être causés par un décalage d'horloge. Un problème survient lorsque l'horloge atteint le premier registre et que le signal d'horloge vers le deuxième registre se déplace plus lentement que la sortie du premier registre dans le deuxième registre - la sortie du premier registre atteint l'entrée du deuxième registre plus rapidement et est donc cadencée en remplaçant le données initiales sur le deuxième registre, ou peut-être détruire l'intégrité des données verrouillées. C'est ce qu'on appelle une violation de conservation car les données précédentes ne sont pas conservées assez longtemps sur la bascule de destination pour être correctement synchronisées. Un autre problème survient si la bascule de destination reçoit le top d'horloge plus tôt que la bascule source - le signal de données a d'autant moins de temps pour atteindre la bascule de destination avant le prochain top d'horloge. S'il ne le fait pas, une violation de configuration se produit, ainsi appelée parce que les nouvelles données n'ont pas été configurées et stables avant l'arrivée du prochain top d'horloge. Une violation de maintien est plus grave qu'une violation de configuration car elle ne peut pas être corrigée en augmentant la période d'horloge. L'asymétrie positive et l'asymétrie négative ne peuvent pas avoir d'impact négatif sur les contraintes de temps de configuration et de maintien respectivement (voir les inégalités ci-dessous).

Bénéfique biais

Le décalage d'horloge peut également bénéficier à un circuit en diminuant localement la période d'horloge à laquelle le circuit fonctionnera correctement. Pour chaque registre source et registre de destination reliés par un chemin, les inégalités d'établissement et de maintien suivantes doivent être respectées :

  • T est la période d'horloge,
  • reg est l'horloge du registre source au délai Q,
  • est le chemin avec le plus long délai de la source à la destination,
  • J est une borne supérieure sur la gigue,
  • S est le temps d'établissement du registre de destination
  • représente le décalage d'horloge de la source aux registres de destination,
  • est le chemin avec le délai le plus court de la source à la destination,
  • H est le temps de maintien du registre de destination,
  • est le décalage d'horloge par rapport au registre de destination, et
  • est le décalage d'horloge par rapport au registre source.

Les décalages d'horloge positifs sont utiles pour corriger les violations de configuration, mais peuvent provoquer des violations de maintien. Un décalage d'horloge négatif peut se prémunir contre une violation de maintien, mais peut provoquer une violation de configuration.

Dans les inégalités ci-dessus, un seul paramètre, J , est utilisé pour tenir compte de la gigue . Ce paramètre doit être une limite supérieure pour la différence de gigue sur toutes les paires registre source/registre de destination. Cependant, si la structure du réseau de distribution d'horloge est connue, différentes paires registre source/registre de destination peuvent avoir des paramètres de gigue différents, et une valeur de gigue différente peut être utilisée pour la contrainte de maintien contrairement à la valeur pour la contrainte d'établissement. Par exemple, si le registre source et le registre de destination reçoivent leurs signaux d'horloge d'un tampon d' horloge voisin commun , la gigue liée à cette contrainte de maintien peut être très faible, car toute variation de ce signal d'horloge affectera les deux registres de manière égale. Pour le même exemple, la gigue liée à la contrainte de configuration doit être supérieure à celle de la contrainte de maintien, car la gigue peut varier d'un tic d'horloge à l'autre. Si le registre source reçoit son signal d'horloge d'un tampon feuille du réseau de distribution d'horloge qui est très éloigné du tampon feuille alimentant le registre de destination, alors la limite de gigue devra être plus grande pour tenir compte des différents chemins d'horloge vers les deux registres , qui peuvent avoir différentes sources de bruit qui s'y couplent.

Figure 1. Les dangers de l'asymétrie zéro. Le chemin FF2 -> FF3 fonctionnera mal avec une violation de maintien si une petite quantité de retard d'horloge supplémentaire à FF3, comme une gigue d'horloge, se produit.
Figure 2. Un petit délai inséré à l'entrée d'horloge de FF2 protège contre une violation de maintien dans le chemin FF2 -> FF3 et permet en même temps au chemin FF1 -> FF2 de fonctionner à une période d'horloge inférieure. Ce circuit d'asymétrie intentionnelle est à la fois plus sûr et plus rapide que le circuit d'asymétrie zéro de la figure 1.

Les figures 1 et 2 illustrent une situation dans laquelle un décalage d'horloge intentionnel peut profiter à un circuit synchrone. Dans le circuit à décalage nul de la figure 1, un chemin long va de la bascule FF1 à la bascule FF2, et un chemin court, tel qu'un chemin de registre à décalage, de FF2 à FF3. Le chemin FF2 -> FF3 est dangereusement proche d'avoir une violation de maintien : si même une petite quantité de retard d'horloge supplémentaire se produit à FF3, cela pourrait détruire les données à l'entrée D de FF3 avant que l'horloge n'arrive pour la cadencer jusqu'au Q de FF3. production. Cela pourrait se produire même si FF2 et FF3 étaient physiquement proches l'un de l'autre, si leurs entrées d'horloge provenaient de différents tampons feuilles d'un réseau de distribution d'horloge.

La figure 2 montre comment le problème peut être résolu avec un décalage d'horloge intentionnel. Une petite quantité de retard supplémentaire est interposée avant l'entrée d'horloge de FF2, qui positionne alors en toute sécurité le chemin FF2 -> FF3 loin de sa violation de maintien. Comme avantage supplémentaire, ce même retard d'horloge supplémentaire assouplit la contrainte de configuration pour le chemin FF1 -> FF2. Le chemin FF1 -> FF2 peut fonctionner correctement à une période d'horloge inférieure à ce qui est requis pour le cas de décalage d'horloge zéro, d'une quantité égale au retard du tampon de retard d'horloge ajouté.

Une idée fausse commune au sujet du décalage d'horloge intentionnel est qu'il est nécessairement plus dangereux que le décalage d'horloge zéro, ou qu'il nécessite un contrôle plus précis des retards dans le réseau de distribution d'horloge. Cependant, c'est le circuit d'asymétrie zéro de la figure 1 qui est le plus proche d'un dysfonctionnement - une petite quantité d'asymétrie d'horloge positive pour la paire FF2 -> FF3 provoquera une violation de maintien, alors que le circuit d'asymétrie intentionnelle de la figure 2 tolère mieux un retard involontaire. variations dans la distribution de l'horloge.

Inclinaison optimale

Si les temps d'arrivée de l'horloge dans les registres individuels sont considérés comme des variables à ajuster afin de minimiser la période d'horloge tout en satisfaisant les inégalités de configuration et de maintien pour tous les chemins à travers le circuit, alors le résultat est un problème de programmation linéaire . Dans ce programme linéaire, le décalage d'horloge zéro n'est qu'un point réalisable - la solution du programme linéaire donne généralement une période d'horloge inférieure à ce qui est obtenu par le biais de zéro. De plus, des marges de sécurité supérieures ou égales au cas d'asymétrie zéro peuvent être garanties en définissant les temps de configuration et de maintien et la limite de gigue de manière appropriée dans le programme linéaire.

En raison de la forme simple de ce programme linéaire, un algorithme facilement programmable est disponible pour arriver à une solution. La plupart des systèmes de CAO pour la conception VLSI et FPGA contiennent des fonctionnalités permettant d'optimiser les décalages d'horloge.

Confusion entre le décalage d'horloge et la gigue d'horloge

En plus du décalage d'horloge dû aux différences statiques dans la latence d'horloge de la source d'horloge à chaque registre cadencé, aucun signal d'horloge n'est parfaitement périodique, de sorte que la période d'horloge ou le temps de cycle d'horloge varie même au niveau d'un seul composant, et cette variation est connue comme gigue d' horloge . À un point particulier dans un réseau de distribution d'horloge, la gigue est le seul contributeur à l'incertitude de synchronisation d'horloge.

À titre d'approximation, il est souvent utile de discuter de l'incertitude de synchronisation d'horloge totale entre deux registres comme la somme du décalage d'horloge spatiale (les différences spatiales de latence d'horloge par rapport à la source d'horloge) et de la gigue d'horloge (c'est-à-dire la non-périodicité de l'horloge en un point particulier du réseau). Malheureusement, le décalage de l'horloge spatiale varie dans le temps d'un cycle à l'autre en raison des variations locales dépendantes du temps de l'alimentation électrique, de la température locale et du couplage du bruit à d'autres signaux.

Ainsi, dans le cas habituel d'envoi et de réception de registres à différents emplacements, il n'y a pas de moyen clair de séparer l'incertitude de synchronisation d'horloge totale en décalage spatial et gigue. Ainsi, certains auteurs utilisent le terme d'asymétrie d'horloge pour décrire la somme de l'asymétrie d'horloge spatiale et de la gigue d'horloge. Cela signifie bien sûr que le décalage d'horloge entre deux points varie d'un cycle à l'autre, ce qui est une complexité rarement évoquée. De nombreux autres auteurs utilisent le terme décalage d'horloge uniquement pour la variation spatiale des heures d'horloge, et utilisent le terme gigue d'horloge pour représenter le reste de l'incertitude de synchronisation d'horloge totale. Cela signifie bien sûr que la gigue d'horloge doit être différente à chaque composant, ce qui est encore une fois rarement discuté.

Heureusement, dans de nombreux cas, le décalage d'horloge spatiale reste assez constant d'un cycle à l'autre, de sorte que le reste de l'incertitude de synchronisation d'horloge totale peut être bien approximée par une seule valeur de gigue d'horloge commune.

Sur un réseau

Sur un réseau tel que l' Internet , skew horloge décrit la différence de fréquence ( dérivée première du décalage dans le temps) de différentes horloges au sein du réseau. Les opérations réseau qui nécessitent des horodatages comparables entre les hôtes peuvent être affectées par le décalage d'horloge. Un certain nombre de protocoles (par exemple Network Time Protocol ) ont été conçus pour réduire le décalage d'horloge et produire des fonctions plus stables. Certaines applications (comme les serveurs de jeux ) peuvent également utiliser leur propre mécanisme de synchronisation pour éviter les problèmes de fiabilité dus au décalage d'horloge.

Interfaces

Le décalage d'horloge est la raison pour laquelle à des vitesses rapides ou sur de longues distances, les interfaces série (par exemple Serial Attached SCSI ou USB ) sont préférées aux interfaces parallèles (par exemple SCSI parallèle ).

Voir également

Les références

  • Friedman, Eby G. (1995). Réseaux de distribution d'horloge dans les circuits et systèmes VLSI . Presse IEEE. ISBN 978-0780310582.
  • Friedman, Eby G. (mai 2001). "Réseaux de distribution d'horloges dans les circuits intégrés numériques synchrones" (PDF) . Actes de l'IEEE . 89 (5) : 665-692. CiteSeerX  10.1.1.7.7824 . doi : 10.1109/5.929649 . Archivé de l'original (PDF) le 01/06/2015 . Récupéré le 09/01/2017 .
  • Tam, S., Limaye, DL, et Desai, ONU (avril 2004). "Génération et distribution d'horloges pour le processeur Itanium 2 130 nm avec cache L3 On-Die de 6 Mo". Journal IEEE des circuits à semi-conducteurs . 39 (4).CS1 maint : utilise le paramètre auteurs ( lien )