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.

Storia[modifica | modifica wikitesto]

Questa tecnica ha assunto rilevanza con l'introduzione nel mercato degli apparecchi mobili negli anni novanta e si è diffusa poi nel campo dei processori e dei chip grafici in particolare.

Obiettivi[modifica | modifica wikitesto]

In alcune applicazioni moderne dei circuiti integrati, come ad esempio negli apparecchi mobili (cellulari, computer portatili, computer palmari, navigatori satellitari) è di fondamentale importanza cercare di ridurre la potenza assorbita durante il funzionamento, al fine sia di ridurre il consumo dell'energia delle eventuali batterie e permettere un'autonomia maggiore all'apparato, sia di ridurre il riscaldamento e la conseguente rumorosità dell'apparato dovuto alla ventola di raffreddamento. È questo l'obiettivo raggiungibile tramite la tecnica del clock gating.

Funzionamento[modifica | modifica wikitesto]

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 del 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, oppure 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.