# Clock gating

En l'arquitectura d'ordinadors, el clock gating és una tècnica popular de gestió de l'energia que s'utilitza en molts circuits síncrons per reduir la dissipació de potència dinàmica, eliminant el senyal de rellotge quan el circuit, o una subpart d'aquest, no està en ús o ignora el senyal del rellotge. El control del rellotge estalvia energia podant l'arbre del rellotge, a costa d'afegir més lògica a un circuit. La poda del rellotge desactiva parts dels circuits de manera que les xancletes que hi ha no canvien d'estat, ja que canviar l'estat consumeix energia. Quan no es canvia, el consum d'energia de commutació passa a zero i només es produeixen corrents de fuita.
Tot i que els circuits asíncrons per definició no tenen un "rellotge" global, el terme " rellotge perfecte " s'utilitza per il·lustrar com diverses tècniques de control de rellotge són simplement aproximacions del comportament depenent de les dades que mostren els circuits asíncrons. A mesura que la granularitat sobre la qual es porta el rellotge d'un circuit síncron s'acosta a zero, el consum d'energia d'aquest circuit s'aproxima al d'un circuit asíncron: el circuit només genera transicions lògiques quan està calculant activament.

## Detalls

Una solució alternativa per al control del rellotge és utilitzar la lògica Clock Enable (CE) a la ruta de dades síncrona que empra el multiplexor d'entrada, per exemple, per a xancles de tipus D: utilitzant la notació del llenguatge C / Verilog: Dff= CE? D:Q; on: Dff és l'entrada D del flip-flop de tipus D, D és l'entrada d'informació del mòdul (sense entrada CE), Q és la sortida del flip-flop de tipus D. Aquest tipus de rellotge de rellotge està lliure de condicions de carrera i es prefereix per als dissenys d'FPGA i per a la rellotge del circuit petit. Per als FPGA, cada flip-flop de tipus D té un senyal d'entrada CE addicional.
El control del rellotge funciona prenent les condicions d'habilitació adjuntes als registres i les utilitza per activar els rellotges. Un disseny ha de contenir aquestes condicions d'habilitació per tal d'utilitzar i beneficiar-se del control de rellotge. Aquest procés de control de rellotge també pot estalviar una àrea significativa de matriu i potència, ja que elimina un gran nombre de muxes i els substitueix per la lògica de control de rellotge. Aquesta lògica de control de rellotge té, generalment, la forma de cèl·lules de "rellotge integrat" (ICG). Tanmateix, la lògica de rellotge de rellotge canviarà l'estructura de l'arbre del rellotge, ja que la lògica de rellotge s'assentarà a l'arbre del rellotge.
La lògica de rellotge es pot afegir a un disseny de diverses maneres:
* Codificat al codi de nivell de transferència de registre (RTL) com a condicions d'habilitació que es poden traduir automàticament a la lògica de rellotge mitjançant eines de síntesi (rellotge de gra fi).
* Inserit al disseny manualment pels dissenyadors de RTL (normalment com a gating de rellotge a nivell de mòdul) mitjançant la instanciació de cèl·lules de rellotge integrats (ICG) específiques de la biblioteca per controlar els rellotges de mòduls o registres específics.
* S'insereix de manera semiautomàtica a l'RTL mitjançant eines de control de rellotge automatitzades. Aquestes eines insereixen cel·les ICG a l'RTL o afegeixen condicions d'habilitació al codi RTL. Normalment també ofereixen optimitzacions seqüencials de rellotge.
En general, el control de rellotge aplicat a una granularitat més gruixuda condueix a una sobrecàrrega de recursos reduïda i un major estalvi d'energia.

## Referències

* ↑ anysilicon. «The Ultimate Guide to Clock Gating» (en anglès americà), 03-02-2021. [Consulta: 20 febrer 2024].
* ↑ «How to Reduce Power Consumption with Clock Gating» (en anglès). [Consulta: 20 febrer 2024].
* ↑ anysilicon. «The Ultimate Guide to Clock Gating» (en anglès americà), 03-02-2021. [Consulta: 21 febrer 2024].
* ↑ «Clock Gating» (en anglès americà). [Consulta: 21 febrer 2024].