La mise hors tension de l'horloge désactive certaines parties du circuit afin que les bascules qu'elle contient ne changent pas d'état, car ces changements consomment de l'énergie. Lorsqu'elles ne sont pas activées, la consommation d'énergie liée aux commutations est réduite. Cette technique est particulièrement efficace dans les systèmes présentant des temps d'inactivité importants ou des périodes d'inactivité prévisibles au sein de certains modules.
- La tension P dynamique résulte de la charge et de la décharge des condensateurs lors des transitions logiques. Elle est proportionnelle à l'activité de commutation, à la capacité, au carré de la tension d'alimentation et à la fréquence d'horloge.
- Un court-circuit P survient lors des transitions de signal, lorsque les transistors PMOS et NMOS conduisent momentanément simultanément, créant un bref chemin de courant de court-circuit entre l'alimentation et la masse.
- Les courants de fuite P sont dus aux courants de fuite sous-seuil et de grille, qui se produisent même lorsque les transistors sont bloqués. Ce composant prend une importance croissante dans les technologies submicroniques avancées.
- La puissance statique P inclut la puissance consommée par les blocs toujours actifs, tels que les circuits de polarisation ou les générateurs de référence, et est présente même en mode veille.
Ces composants définissent collectivement le profil de puissance total d'un système numérique, et leur optimisation est cruciale pour la conception à faible consommation.
Ces composants deviennent de plus en plus critiques dans les circuits intégrés modernes, notamment avec la miniaturisation des technologies, où la puissance de fuite et de court-circuit peut constituer une part importante du bilan énergétique total.
Le blocage d'horloge est une technique permettant de réduire la consommation d'énergie des circuits numériques. Il cible spécifiquement la composante dynamique de la consommation, P <sub>dynamique</sub> , en limitant les commutations inutiles des signaux d'horloge. L'équation suivante permet d'approximer la consommation dynamique :
Où:
- α est le facteur d'activité de commutation,
- C L est la capacité de charge,
- Vdd est la tension d'alimentation ,
- f est la fréquence d'horloge.
En coupant l'alimentation de certaines parties du circuit lorsqu'elles ne sont pas utilisées, la technique de coupure d'horloge réduit α , diminuant ainsi la consommation d'énergie dynamique globale. Elle diffère de la technique de coupure d'alimentation , qui coupe complètement l'alimentation et réduit simultanément plusieurs sources de dissipation d'énergie.
Techniques de contrôle de l'horloge
Les techniques de contrôle d'horloge fonctionnent généralement en ciblant des régions d'horloge spécifiques. Pour appliquer ces techniques, il est souvent nécessaire de modifier les registres (ou bascules) du circuit afin qu'ils puissent être contrôlés et déconnectés du réseau de distribution d'horloge, isolant ainsi des blocs de logique combinatoire .

Les circuits externes peuvent contrôler les signaux d'horloge et d'activation grâce à une technique appelée bascules activées, ou ils peuvent être générés en interne à l'aide de méthodes traditionnelles de contrôle d'horloge.

Lorsque le signal de commande (CNTRL) est réglé sur 1, le circuit de contrôle d'horloge coupe l'horloge en la maintenant à un niveau logique fixe, soit 0, soit 1. Une implémentation typique utilise un transistor de passage CMOS contrôlé par le signal de commande inversé.
La logique de contrôle d'horloge peut être ajoutée à une conception de différentes manières :
- Il peut être codé dans le code de niveau de transfert de registre (RTL) sous forme de conditions d'activation qui peuvent être automatiquement traduites en logique de contrôle d'horloge par des outils de synthèse (contrôle d'horloge à grain fin).
- Il peut être inséré manuellement dans la conception par les concepteurs RTL (généralement sous forme de contrôle d'horloge au niveau du module) en instanciant des cellules de contrôle d'horloge intégrées (ICG) spécifiques à la bibliothèque pour contrôler les horloges de modules ou de registres spécifiques.
- Il est possible de l'insérer semi-automatiquement dans le RTL grâce à des outils de gestion d'horloge automatisés. Ces outils insèrent des cellules ICG dans le RTL ou ajoutent des conditions d'activation au code RTL. Ils proposent généralement aussi des optimisations de gestion d'horloge séquentielles.
Horloge sans bug
Une implémentation courante du contrôle d'horloge utilise une bascule sensible au niveau pour éviter les parasites sur l'horloge contrôlée. Le signal d'activation est capturé uniquement lorsque l'horloge est inactive, garantissant ainsi la stabilité du contrôle d'horloge pendant la transition active. Ceci évite les brèves impulsions indésirables (parasites) susceptibles de provoquer des commutations incorrectes dans les éléments séquentiels. De nombreuses cellules de contrôle d'horloge intégrées (ICG) intègrent cette bascule pour fournir une horloge contrôlée sans parasites.systèmes embarqués) implémentent généralement plusieurs stratégies de gestion d'horloge. La gestion manuelle de l'horloge fait appel à des pilotes logiciels qui activent ou désactivent les horloges de différents contrôleurs inactifs. À l'inverse, la gestion automatique de l'horloge utilise des mécanismes matériels pour détecter lorsqu'une horloge est inutile et la désactiver dynamiquement. Ces approches fonctionnent souvent conjointement au sein du même arbre d'activation. Par exemple, un bus ou un pont interne peut utiliser la gestion automatique, en maintenant l'horloge désactivée jusqu'à ce qu'elle soit sollicitée par le processeur ou un moteur DMA . En revanche, les périphériques connectés à ce bus peuvent être désactivés en permanence s'ils ne sont pas utilisés dans une conception de carte particulière.
Le contrôle d'horloge peut également servir à réduire la surface. Si plusieurs registres partagent la même activation, le contrôle d'horloge à un niveau plus élevé de l'arbre d'horloge peut ne coûter que la surface d'une seule porte d'horloge intégrée, mais permettrait d'économiser la surface d'un multiplexeur 2:1 (le « multiplexeur de rétroaction » généralement utilisé pour implémenter l'activation) par registre possédant cette activation.