Sur les microcontrôleurs de la série Atmel SAM-D21, de nombreux périphériques utilisent une horloge qui est asynchrone à l'horloge du processeur principal, et les accès à ces périphériques doivent passer par une logique de synchronisation; sur les périphériques dont l'horloge est lente par rapport au temps CPU, cela peut ajouter des retards vraiment énormes. Par exemple, si le RTC est configuré pour utiliser une horloge de 1024 Hz (comme cela semble être l'intention de conception) et que le CPU fonctionne à 48 MHz, la lecture du registre "heure actuelle" entraînera l'insertion par la logique du bus de plus de 200 000 états d'attente (un minimum de cinq cycles de l’horloge 1024 Hz). Bien qu'il soit possible que le CPU émette une demande de lecture, exécute un autre code non lié et renvoie plus de 200 000 cycles plus tard pour récupérer l'heure, il ne semble pas y avoir de moyen de lire l'heure plus rapidement.
D'après ma compréhension de la synchronisation, un circuit de synchronisation à un bit retardera un signal de 2-3 cycles de l'horloge de destination; la synchronisation d'une quantité multi-bits est un peu plus difficile, mais il existe une variété d'approches qui peuvent garantir un comportement fiable dans les cinq cycles de l'horloge de destination si elle est plus rapide que l'horloge source, et seulement quelques cycles de plus si ce n'est pas le cas. Que ferait l'Atmel SAM-D21 qui nécessiterait six cycles dans le domaine de l'horloge source pour la synchronisation, et quels facteurs favoriseraient une conception dont les délais de synchronisation sont suffisamment longs pour nécessiter une interruption "synchronisation effectuée", par rapport à une interruption qui assure les délais de synchronisation sont suffisamment courts pour rendre ces interruptions inutiles?