Clock gating
Da Wikipedia, l'enciclopedia libera.
Il Clock Gating è una tecnica di progettazione dei circuiti integrati che permette di ridurre il consumo di potenza dei chip.
[modifica] Storia
Questa tecnica ha assunto rilevanza con l'introduzione nel mercato degli apparecchi mobili negli anni '90 e si è diffusa poi nel campo dei processori e dei chip grafici in partcolare.
[modifica] Obiettivi
In alcune applicazioni moderne dei circuiti integrati, come ad esemipio negli apparecchi mobili (cellulari, notebook, palmari, navigatori satellitari) e' di fondamentale importanza cercare di ridurre il consumo di potenza durante il funzionamento. Questo al fine di ridurre il consumo delle eventuali batterie e permettere un'autonomia maggiore all'apparato oppure di ridurre il riscaldamento e la conseguente rumorosità dell'apparato dovuto alla ventola di raffreddameno. È questo l'obiettivo raggiungibile tramite la tecnica del Clock Gating.
[modifica] Funzionamento
Ogni sistema digitale esegue le proprie operazioni funzionali alla cadenza di uno o più segnali di clock, che altro non sono che forme d'onda quadra a una certa frequenza. Il consumo di corrente (e quindi di potenza) di un circuito digitale in tecnologia CMOS è direttamente proporzionale alla frequenza dl proprio clock. D'altra parte la frequenza di clock è anche un indice della capacità di elaborazione di un processore e comunque delle prestazioni di un chip generico.
Il consumo di potenza e le prestazioni quindi sono entrambe funzioni del clock ma in maniera opposta. Tuttavia, di solito, non tutti i sottosistemi di un chip funzionano contemporaneamente e quindi di fatto è possibile spegnere (o rallentare) quelle parti del chip che non lavorano, senza pregiudicare le prestazioni globali.
La filosofia del Clock gating è proprio quella di spegnere i sottosistemi del chip che non lavorano o di ridurre la frequenza del clock alla minima necessaria per l'applicazione corrente. Questo si ottiene attivando il segnale di clock solo per quei blocchi logici che hanno effettivamente del lavoro da compiere. In particolare ogni Functional Unit Block (FUB) contiene una logica di clock gating.