# Synchronisation d'horloges

La synchronisation d'horloges est un mécanisme permettant à deux systèmes distincts d'être synchronisés, c'est-à-dire d'avoir une différence entre leurs temps subjectifs la plus faible possible.
En sciences de l'information (Informatique, télécommunications et traitement du signal), le temps est une notion omniprésente. Les signaux manipulés et échangés dépendent en effet du temps qu’il s’agisse par exemple des signaux audio dans un microphone ou des signaux de radionavigation reçus par un récepteur GPS, des hyperfréquences en téléphonie mobile, des signaux d’un sonar dans un sous-marin, des signaux biomédicaux, des signaux vidéo en télévision, des données informatiques au sein d’un ordinateur ou circulant à travers un réseau informatique…
La mesure du temps dans les dispositifs électroniques est faite localement à l'aide d'horloges électroniques pilotées par des quartz. Les fréquences sont en général très précises mais on observe des fluctuations dues à de nombreux facteurs (par exemple aux variations de température, aux variations d’altitude, à la mobilité par effet Doppler) et des différences de phase. Les fluctuations entraînent des dérives plus ou moins importantes (jusqu’à plusieurs secondes en fin de journée) et sont aléatoires. Le temps étant mesuré en comptant les impulsions d'horloge, les petites fluctuations sur la fréquence d'horloge peuvent conduire à des erreurs de temps importantes, dès lors que celles-ci sont cumulées sur un grand nombre d'impulsions.

## Quelques exemples

* dans les réseaux informatiques, « quand sur une station on crée un fichier, celui-ci est physiquement créé sur le serveur à la date du serveur et pas à celle de la station qui a demandé la création. Si la station et le serveur ne sont pas synchronisés on peut ainsi avoir des fichiers dont la date de modification est toujours plus récente ou plus ancienne, perturbant ainsi le fonctionnement de certains logiciels. On a un problème analogue avec la messagerie électronique où l'on peut recevoir des courriers avant qu'ils soient partis, ou avec les statistiques qu'on ne peut pas exploiter car les horloges dérivent ».
* en téléphonie mobile, les messages sont des suites de symboles binaires dont la durée est égale à la largeur symbole et qui sont souvent multiplexés avec les messages d'autres abonnés. Leur interprétation correcte en réception exige que le récepteur se synchronise sur le début de chaque mot et de chaque symbole ;
* dans un enregistrement vidéo, les modalités « son et image » sont codées et enregistrées différemment et doivent être synchronisées.
* en navigation GPS, la localisation d'un objet demande que les horloges des satellites soient synchronisées entre elles et avec celle du récepteur ; une erreur de temps minime sur un satellite entraîne une erreur de positionnement au sol, et des incohérences avec les mesures des autres satellites ;
* en électronique, avec un multiplexeur en temps, les sources d'émission se doivent d'être bien synchronisées pour ne pas déborder de leur time slot.

### Besoin d'une synchronisation

Pour tous les traitements basés sur des mesures de temps et nécessitant une coordination des processus, la synchronisation est alors capitale pour éliminer les erreurs de résultats liées aux dérives des horloges individuelles mises en jeu.
Dans les dispositifs de transmission du signal par exemple, on peut transmettre des paquets d'échantillons à des fréquences beaucoup plus élevées, mais la restitution doit être faite à la bonne cadence pour ne pas distordre le signal. Si des échantillons étaient perdus, ou si leur valeur est corrompue, on peut calculer très rapidement des valeurs de remplacement à condition d'être capable de restituer le signal à la bonne cadence, c'est-à-dire d'avoir le bon rythme.
Le rôle du récepteur dans les systèmes de transmission numérique est de synchroniser un oscillateur local avec la porteuse utilisée à l’émission, pour démoduler le signal reçu. Une autre fonction de base du récepteur est de synchroniser une horloge locale avec l’horloge émission pour échantillonner le signal démodulé et restituer les données émises. Les synchronisations de la porteuse et de l’horloge sont indispensables aussi bien au niveau phase qu’au niveau fréquence (temps).
Le terme Synchronisation (généralement définie comme l’action de coordonner plusieurs opérations entre elles en fonction du temps) en sciences de l’information doit être notamment compris en tant que synchronisation d’horloges.

### Objectif

La synchronisation d’horloges consiste à caler toutes les horloges mises en jeu sur une variation uniforme c’est-à-dire :
* qu’elles s’initialisent uniformément (démarrent au même moment avec la même heure absolue ou au pire avec une variation connue c’est-à-dire à une incertitude connue près) ;
* qu’elles présentent une dérive exactement au même instant. La dérive est d’autant plus importante que la précision des horloges est faible.

### Réalisation

La synchronisation absolue d’horloge ne peut pas être obtenue naturellement. En effet, les dérives des horloges physiques des équipements sont très variables en fonction de leur technique de fabrication et des conditions dans lesquelles elles se retrouvent (cité dans une partie antérieure de ce document). Les horloges ne s'initialisent pas non plus simultanément.
La synchronisation est réalisée en réglant l’heure de l’ensemble des horloges impliquées dans un système, à l’heure de l’horloge la plus stable et la plus fiable. Celle-ci peut faire directement partie intégrante du système ou lui être externe. Par exemple l’heure des satellites GPS est utilisée pour synchroniser les équipements réseaux de téléphonie mobile GPRS (le GPRS et le GPS sont des systèmes distincts), UMTS et LTE. Par contre, l’heure des satellites permet de synchroniser les récepteurs GPS qui font partie du même système que les satellites.
En règle générale, on réalise ainsi un asservissement des horloges sur une (ou plusieurs) horloges de référence, typiquement des horloges atomiques qui sont les plus stables et les plus précises au monde, en attendant les horloges nucléaires.

#### Synchronisation en temps absolu

Une horloge définie comme la référence met à l’heure périodiquement les autres (esclaves). La relation n’est que dans ce seul sens. Une horloge secondaire (esclave) est conçue pour recevoir un code de distribution d'heure émis par l'horloge-mère. La réception du code lui permet de rester synchronisée avec l'horloge-mère (c’est-à-dire d’être à la même heure pendant quelques moments avant que sa propre dérive ne la dérègle du temps exact). Quelques minutes par jour de bonne réception du signal du maître, permettent d'assurer la synchronisation des esclaves. Ce type de synchronisation qui est une distribution d’heure est en réalité plus perceptible dans la vie courante où certains domaines ont absolument besoin d’avoir un temps de référence :
* le contrôle aérien ;
* les échanges commerciaux ;
* les transactions journalisées de bases de données ;
* la diffusion de contenu multimédia en temps réel.
Dans les écoles, universités, services, entreprises, usines, banques, gares ou dans un aéroport il existe souvent plusieurs dizaines d'horloges, pointeuses, ordinateurs ou autres applications affichant le temps. Une distribution d'heure par un code adéquat permet de synchroniser tous ces appareils avec une ou plusieurs horloges de référence synchronisées aussi entre elles. Une horloge-esclave synchronisée pourra servir de maître à toute autre horloge « à mettre à l’heure ». On peut ainsi observer une structure arborescente des horloges comme indiquée par le schéma ci-contre.
Une horloge de référence décode le signal d'une autre au-dessus d’elle dans la stratification pour en faire à la sortie un ou plusieurs codes de distribution d'heure et elle pilote ainsi un nombre important d'horloges secondaires. En cas d'absence du signal d’une horloge-mère supérieure dans l’arbre, une horloge-mère (de niveau immédiatement inférieur) continue à fonctionner de son propre chef (sur son propre quartz par exemple). Le premier maître dans toute la pyramide est aujourd’hui une horloge atomique.
Dans le domaine particulier des réseaux informatiques basés sur des horloges hétérogènes, la synchronisation d’horloges est basée sur les protocoles Time Protocol, Simple Network Time Protocol, Network Time Protocol ou Precision Time Protocol (PTP). Le Network Time Protocol (NTP) par exemple, est un protocole permettant de synchroniser les horloges des systèmes informatiques à travers un réseau de paquets, dont la latence est variable. Il est basé sur le principe illustré par le schéma ci-contre.

#### Synchronisation en temps logique

Toute horloge d’un système est prise comme horloge de référence dès lors que le dispositif qui l’intègre joue le rôle d’émetteur en direction d'autres équipements. Ce mode est utilisé dans les systèmes répartis qui ne sont pas construits autour d’une horloge physique globale.
On pourrait parler ici d’horloges logiques voire de synchronisation relative.
En effet, l’émetteur insère son horloge dans le flux de données qu’il émet et le récepteur se charge de la récupérer pour se synchroniser sur le rythme de traitement de ces données c’est-à-dire pour se synchroniser avec l’horloge de l’émetteur et non pas forcément avec une horloge de référence absolue. Les traitements utilisés pour ce faire sont par exemple les boucles à verrouillage de phase dans les systèmes de télécommunications.
Toutefois cette méthode est généralement le résultat de sa propre combinaison avec la méthode décrite précédemment (§. précédent) c’est-à-dire que les horloges des circuits et dispositifs fondamentaux du système de traitement, sont synchronisés à partir d’une référence absolue mais les récepteurs utilisent particulièrement l’horloge intégrée aux flux qu’ils reçoivent pour se synchroniser sur le rythme de récupération des données.