Clock
Da Wikipedia, l'enciclopedia libera.
In Elettronica il termine clock indica un segnale periodico utilizzato per sincronizzare il funzionamento dei dispositivi elettronici digitali, e viene generato da un oscillatore al quarzo. 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, rimane 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 segnale deve essere simmetrico, un clock di 100 Mhtz può essere costituito da un segnale che sta alto 3 nanosecondi e rimane a zero 7 nanosecondi, o viceversa.
Il ciclo di clock è il tempo che trascorre tra il verificarsi di due colpi di clock successivi. La frequenza o velocità di clock è il numero di colpi di clock che vengono eseguiti in una determinata unità di tempo. L'unità di misura usata è l'hertz, ovvero il numero di cicli di clock eseguiti in un secondo. Poiché i clock sono in genere molto veloci, si usano comunemente i multipli kilohertz (Khz), megahertz (Mhz) e gigahertz (Ghz) per indicare mille, un milione e un miliardo di cicli al secondo.
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. Perché 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, ed è 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, maggiori 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 operazione 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.