Il ciclo di clock del processore e il ciclo macchina
Unità fuori sistema · grandezza: un intervallo di sincronizzazione e una misura del lavoro di calcolo
Nell'autunno del 2004 Intel annullò lo sviluppo di un processore che doveva funzionare a dieci gigahertz, e non fu un insuccesso tecnico ma il riconoscimento di un muro fisico: un chip spinto al doppio della velocità esigeva quattro volte la potenza e semplicemente fondeva. La corsa alle frequenze, durata trent'anni, finì in un solo giorno, e con essa l'abitudine di giudicare una macchina dalla cifra sulla scatola.
Il ciclo stesso è l'intervallo fra due fronti del segnale di clock, quel passo con cui tutti gli elementi sincroni del chip commutano insieme. Il suo reciproco è la frequenza, e così un ciclo a cinque gigahertz dura due decimi di nanosecondo, nei quali la luce percorre sei centimetri e un segnale su una pista di rame ancora meno: meno di quanto misuri il chip.
01 · Definizione
Il ciclo è il periodo del segnale di clock, cioè l'intervallo fra due fronti dello stesso verso nei quali gli elementi sincroni del chip cambiano stato insieme. Il ciclo macchina è un numero intero di cicli di clock nel quale il processore compie un'azione conclusa; in una macchina a pipeline lo si sostituisce con la misura inversa — il numero di cicli per istruzione, il cui reciproco dice quante istruzioni escono dalla pipeline in un ciclo.
La lunghezza di un ciclo non è fissata dalla natura ma dal tracciato del chip: non deve essere più corta del cammino più lento fra due flip-flop, compreso il ritardo del flip-flop stesso e un margine per la dispersione dei parametri. Di qui la mossa consueta del progettista: tagliare un lungo cammino logico in due stadi di pipeline; il ciclo diventa la metà, la frequenza il doppio, e l'istruzione percorre ora tutta la scala.
A limitare la frequenza, però, non è la logica ma la potenza: il consumo dinamico cresce con la frequenza e con il quadrato della tensione, e la tensione va alzata perché il circuito faccia in tempo alla frequenza accresciuta. Il calore va dunque all'incirca come il cubo della frequenza, e su questa dipendenza cubica la corsa dei gigahertz si è fermata verso i quattro.
Infine, il ciclo è un'unità la cui lunghezza non è costante. La gestione dell'alimentazione cambia la frequenza centinaia di volte al secondo, adattandosi al carico e alla temperatura, e perciò dal numero di cicli non si può giudicare il tempo trascorso, ma si può giudicare il lavoro compiuto: il contatore dei cicli non conta secondi ma passi di calcolo, e in questo sta il suo vero valore.
Conducete la frequenza con il cursore e seguite due curve che si allontanano in versi opposti. La verde è la distanza che un segnale fa in tempo a percorrere in un ciclo: più alta la frequenza, più corto quel cammino, e a cinque gigahertz risulta minore del chip stesso. La cremisi è quanto costa in cicli un accesso alla memoria: la sua latenza in nanosecondi quasi non cambia, e in cicli non fa che crescere.
Avendo tagliato il lavoro in stadi, il progettista accorcia il ciclo, ma una sola istruzione percorre ora tutta quella scala, e la sua latenza non diminuisce: cresce. Il guadagno appare soltanto quando gli stadi sono pieni di istruzioni diverse, e a un salto predetto male la pipeline va svuotata per intero — tanto più cara quanto più è profonda.
02 · Conversione
Frequenza, periodo, lavoro
Inserite una frequenza o una lunghezza di ciclo e la scheda mostrerà il reciproco, il cammino del segnale in un ciclo e il costo degli accessi alla memoria in cicli. La prima famiglia è esatta per definizione, la seconda si appoggia ai valori medi di un core, la terza alle latenze tipiche dell'odierna gerarchia di memoria.
La velocità del segnale su una pista è presa a sei decimi della velocità della luce; nelle regolazioni fini della scheda la si può portare a metà.
Per frequenza si possono confrontare soltanto core uguali, perché il numero di cicli per istruzione differisce di più volte fra architetture: una macchina prende quattro istruzioni in un ciclo, un'altra a stento una. Proprio per questo la cifra in gigahertz è uscita dalla pubblicità, e al suo posto sono venute serie di prove che non misurano più cicli ma lavoro compiuto.
| Valore | Nota | ||
|---|---|---|---|
| {u} | {name} | {value} | {note} |
03 · Ordini di grandezza
scala logaritmica: dal ciclo al quanto dello schedulatore04 · Strumenti di misura
Con che cosa si fissa il ciclo e con che cosa lo si conta
La sorgente del ciclo è una lamella di quarzo, che oscilla di solito a qualche decina di megahertz con un'esattezza di circa dieci milionesimi. I gigahertz sul chip non vengono da essa ma dalla moltiplicazione di quella frequenza di riferimento, sicché la stabilità dell'intera macchina è ereditata da un pezzo di minerale grande come un chicco di riso.
L'anello ad aggancio di fase confronta la frequenza divisa dell'oscillatore con quella di riferimento e lo ritocca finché le fasi coincidono; cambiando il divisore si cambia la frequenza in corsa. È proprio esso a permettere alla gestione dell'alimentazione di abbassare il ciclo a qualche centinaio di megahertz a riposo e di portarlo in turbo per pochi secondi, finché resta margine termico.
Dentro il core siedono registri che contano cicli, istruzioni compiute, fallimenti di cache e salti predetti male, e si possono leggere dal programma in corsa. Da questi numeri si ricava il numero di cicli per istruzione — l'unica misura onesta di quanto bene il codice si sia posato su un dato chip.
Per vedere il ciclo stesso serve uno strumento che colga i fronti con una risoluzione di pochi picosecondi, ed è esso pure a mostrare le cose per cui la frequenza non può salire oltre: il tremolio di fase, lo sfasamento d'arrivo del segnale nei diversi angoli del chip e il cedimento del fronte su una linea lunga.
05 · Regole di scrittura
Cicli ed hertz non sono la stessa cosa
La frequenza si scrive in hertz, con il prefisso maiuscolo per mega e giga, mentre un numero di cicli si scrive intero, senza alcuna unità, poiché il ciclo non è un'unità SI. Gli indici di prestazione si scrivono in maiuscolo senza punti e con l'indicazione del core cui si riferiscono; mescolare frequenza e prestazione in una sola grandezza non è ammesso.
La prima scrittura mescola due grandezze diverse: un numero di cicli è adimensionale, mentre l'hertz misura una frequenza. La seconda viola il carattere del prefisso, obbligatorio per mega e giga. La terza confronta per frequenza architetture i cui cicli per istruzione differiscono di più volte, e da un simile confronto non segue nulla. La quarta prende per costante una grandezza variabile.
06 · Unità vicine
Accanto stanno le unità che misurano lo stesso lavoro da altri lati: l'hertz come frequenza del segnale stesso, il numero di operazioni in virgola mobile al secondo e il numero di istruzioni che toccano a un ciclo. Tutte si deducono l'una dall'altra non appena si conoscano la frequenza e il comportamento della pipeline.
frequenza, unità SI
una misura adimensionale
una misura del lavoro di calcolo
Fra le schede di Simetrium stanno accanto hertz, che fissa la frequenza, secondo e i suoi prefissi sottomultipli, unix time, dove il limite è fissato anch'esso dalla parola macchina, e il bit s il byte, con cui si misura ciò che un ciclo trasporta.
07 · Sezione storica
Trent'anni di corsa e un giorno di annullamento
Il primo processore su un solo chip andava a una frequenza che un chip di oggi attraversa in una frazione di microsecondo, e un'istruzione gli prendeva otto cicli. Il ciclo macchina era allora una nozione letterale: leggere l'istruzione, decifrarla, prendere i dati, calcolare e scrivere — ogni stadio occupava il suo ciclo e tutti andavano rigorosamente in ordine.
Non appena gli stadi impararono a lavorare insieme su istruzioni diverse, la misura consueta si ruppe: un'istruzione prendeva ancora cinque cicli, ma usciva dalla pipeline a ogni ciclo. Bisognò rovesciare il conto e parlare di cicli per istruzione, che in una buona macchina scese sotto l'unità: cioè in un solo ciclo si conclude più di un'istruzione.
Un'architettura con una pipeline di trentuno stadi fu costruita per la frequenza e urtò contro il calore: i dieci gigahertz promessi esigevano un raffreddamento impensabile in un cabinet da scrivania. Il progetto fu chiuso e l'industria si volse ai molti core — non perché siano migliori, ma perché la crescita cubica del consumo non lasciava altra via.
Un core di oggi non ha una sola frequenza: a riposo scende a qualche centinaio di megahertz, sotto carico sale verso i cinque gigahertz e li tiene finché dura il margine termico. La cifra di scheda è divenuta una promessa in condizioni favorevoli, e confrontare le macchine con essa hanno smesso sia i costruttori sia i recensori.
Un'unità la cui lunghezza cambia durante la misura
Il ciclo è scomodo per il metrologo: la sua lunghezza non la fissa un campione ma il tracciato del chip, e cambia in uno stesso processore centinaia di volte al secondo, poiché la gestione dell'alimentazione adatta la frequenza al carico e alla temperatura. Perciò il contatore dei cicli non serve a misurare il tempo, benché di fuori sembri un orologio, e un programma che vi si affidi sbaglia di quanto la frequenza si è mossa.
Per il compito, invece, per il quale il ciclo è nato, esso serve meglio di ogni unità di tempo. Contando cicli non misuriamo una durata ma il volume del lavoro di calcolo, e perciò il numero di cicli per istruzione resta confrontabile sotto qualsiasi cambiamento di frequenza — dice quanto bene il codice si sia posato sul chip, non quanti secondi siano passati.
Catalogo · unità di misura
Una scheda per ogni grandezza
Sette unità di base del SI, ventidue derivate con nome proprio e grandezze fuori sistema senza le quali non funzionerebbero né la tecnica né il calendario.