# Clock

Il termine clock, in elettronica, indica un segnale periodico, generalmente un'onda quadra, utilizzata per sincronizzare il funzionamento dei dispositivi elettronici digitali. Può essere generato da qualsiasi oscillatore; molto diffuso è il quarzo per la sua alta stabilità di oscillazione.

## Descrizione
### Il segnale

Il segnale è costituito da un livello di tensione che periodicamente in modo regolare fa una rapida transizione dal valore zero ad un valore che generalmente coincide con la tensione di alimentazione del circuito, resta a questo livello per un certo tempo e poi in modo altrettanto rapido ritorna a livello zero, rimane a livello zero per un determinato tempo e poi il ciclo si ripete. La commutazione di tutti i circuiti logici avviene durante la transizione di questa tensione, ovverosia durante la variazione di livello di questo segnale. Gli ingressi dei dispositivi preposti a ricevere il clock sono definiti per consuetudine "attivi alti" o "attivi negati", i primi commutano durante il fronte di salita del clock, i secondi sul fronte di discesa. Non necessariamente il duty cycle (in italiano, letteralmente "rapporto pieno-vuoto", ciclo di lavoro) del segnale deve essere simmetrico, un clock di 100 MHz può essere costituito da un segnale che sta a livello alto 3 nanosecondi e rimane a zero 7 nanosecondi, o viceversa.

### La frequenza

La velocità o frequenza di clock è il numero di commutazioni tra i due livelli logici "0" e "1" che i circuiti all'interno di un'unità di calcolo o di un microprocessore sono in grado di eseguire nell'unità di tempo di un secondo, ed è espressa in cicli al secondo, o hertz, e suoi multipli; normalmente per eseguire un'istruzione o una semplice somma sono necessari più cicli di clock. L'unità di calcolo del calcolatore Z1 (che utilizzava la tecnologia elettromeccanica, non elettronica) costruito dal tedesco Konrad Zuse nel 1938 andava da 0,3 cicli al secondo fino al massimo di 1 hertz. La velocità di clock del primo microprocessore moderno, l'Intel 4004 progettato dall'italiano Federico Faggin nel 1971, era di 740 kHz. Le attuali CPU dei personal computer raggiungono e superano ormai i 4 GHz. In queste moderne CPU essendo la velocità di clock così elevata, viene generata da un minuscolo oscillatore al quarzo posto all'interno della stessa CPU, regolabile tramite il BIOS.
Prendiamo ad esempio il funzionamento di un processore. Questo è composto da vari circuiti logici preposti ad eseguire operazioni diverse, tali circuiti interagiscono tra loro scambiandosi informazioni. Affinché tale operazione avvenga correttamente è però necessario che ad ogni circuito sia indicato il momento esatto in cui può ritenere validi i segnali che riceve in ingresso. Il clock è il segnale che si occupa di questo compito ed è un segnale condiviso tra tutti i circuiti. La sua frequenza quindi deve essere calcolata in modo tale che il ciclo di clock sia sufficientemente lungo da consentire a tutti i circuiti, anche il più lento, di completare correttamente le proprie operazioni.
Riassumendo, maggiore è la frequenza, più sono le operazioni che possono essere eseguite nello stesso lasso di tempo. Per aumentare le prestazioni di una CPU quindi è possibile agire sul clock. Visto che tale valore è limitato dal circuito logico più lento, è facile che alcuni circuiti molto complessi causino "colli di bottiglia" con conseguente riduzione delle prestazioni generali. Per ovviare a questo problema è possibile ridurre la lunghezza massima dei circuiti logici spezzando in più parti quelli di lunghezza eccessiva. Le operazioni quindi non sarebbero più completate in un solo ciclo di clock.
Ad esempio, poniamo che un processore abbia circuiti logici che in media richiedono 1 ns (1/1.000.000.000 di secondo) per portare a termine i calcoli, ma il circuito più lento ne richiede 5. È possibile spezzare tale circuito in cinque parti, ottenendo così circuiti con latenze di 1 ns, consentendo la riduzione del tempo di clock. In particolar modo se tale circuito è sfruttato raramente, la CPU ottiene un considerevole aumento di prestazioni. Tuttavia vi sono dei limiti nell'uso di questa tecnica. Un unico circuito logico infatti, nell'eseguire la medesima operazione, è complessivamente più veloce di più circuiti piccoli collegati in serie. Aumentare la frequenza di clock in questo modo può portare ad effettivi benefici nelle prestazioni solo se si ottiene un ragionevole compromesso.
I processori moderni hanno di fatto già raggiunto il limite massimo superiore delle frequenze di clock al di sopra delle quali la maggior produzione di calore durante l'elaborazione non può essere smaltita efficacemente causando danni al processore stesso; per ovviare a ciò e continuare ad aumentare le capacità di calcolo di un sistema di elaborazione si sono sviluppate tecniche di esecuzione parallela attraverso il ricorso ad architetture hardware a multiprocessore.
Gli informatici tuttavia sono in grado di aumentare le prestazioni dei computer aumentando la velocità di clock nominale del processore, spesso con l'ausilio del raffreddamento ad azoto liquido, ma si tratta di un'operazione rischiosa che può portare al surriscaldamento della CPU. Vi sono comunque alcuni processori di particolare efficienza e robustezza che sono in grado di supportare bene velocità di clock maggiori di quella nominale, senza subire danni. Nel gergo informatico questa operazione viene definita overclocking, ed è utilizzata anche dall'industria per testare l'affidabilità delle CPU prodotte.