Il clock gating è una funzione di risparmio energetico nella microelettronica dei semiconduttori che consente lo spegnimento dei circuiti. Molti dispositivi elettronici utilizzano il clock gating per disattivare bus, controller, bridge e parti di processori, per ridurre il consumo energetico dinamico.
Il controllo del clock può essere ottenuto tramite la commutazione software degli stati di alimentazione per istruzioni nel codice o tramite hardware intelligente che rileva se c'è del lavoro da fare e, in caso contrario, spegne il circuito. Su alcuni dispositivi elettronici, il clock gating può essere ottenuto anche con una combinazione di metodi.
Il clock gating raggruppa i circuiti in blocchi logici che vengono spenti quando non c'è lavoro da fare. Con i circuiti asincroni, il consumo di energia dipende naturalmente dai dati. Poiché i circuiti non funzionano alla stessa frequenza, c'è una considerazione intrinseca di progettazione, in quanto alcuni componenti attenderanno occasionalmente che i dati funzionino.
Il clock gating consente ai circuiti sincroni di emulare questo consumo di energia dipendente dai dati con maggiore o minore efficienza. Con i bus sincroni, sono richiesti circuiti logici aggiuntivi sui bus asincroni. Tuttavia, i circuiti sincroni mantengono ancora una maggiore semplicità e dimensioni inferiori, consentendo un minor costo di produzione. L'efficienza del clock gating si avvicina al 100% solo quando la granularità è molto fine. Questa granularità del controllo di accensione e spegnimento consente ai circuiti sincroni di avvicinarsi all'efficienza energetica dipendente dai dati dei circuiti asincroni.
Sebbene il clock gating sia efficace nel ridurre la potenza richiesta per i carichi di lavoro dinamici, non può ridurre il consumo energetico dei carichi di lavoro statici elevati. Questo scenario di utilizzo quasi del 100% è comune negli scenari di elaborazione nei carichi di lavoro di server, rendering, calcolo matematico e scientifico.