I tick di clock della CPU sono rigorosamente periodici?


51

La frequenza di una CPU è un valore medio di quanti tick di clock ci sono in un secondo o ha una stabilità fisica più forte?

Secondo me, non deve essere né stabile né instabile. Quindi ci sono informazioni disponibili sulla varianza di una CPU?

La durata del ciclo di una CPU è strettamente sincronizzata con la vibrazione del cristallo? O la CPU deve solo essere sicura di raggiungere un ciclo prima del prossimo tick?


7
Esistono molti diversi tipi di CPU. La maggior parte usa un cristallo che vibra a una frequenza specifica per cronometrarsi. Ciò significa che la maggior parte sono accurati quanto un orologio da polso digitale (che utilizza lo stesso tipo di cristallo per mantenere il tempo). en.wikipedia.org/wiki/Crystal_oscillator
krowe

5
@Gael alcune istruzioni richiedono centinaia di tick o cicli di clock per essere completate.
misha256,

1
@Gael: Inoltre, è abbastanza comune per le CPU rallentare o accelerare, e lo fanno abbastanza spesso. Anche se non so esattamente come ciò si riferisca alle zecche.
Mooing Duck

18
Votare per chiudere questo come cercare consigli su prodotti, servizi o materiale didattico ? Davvero gente?
un CVn

30
Questa è una domanda legittima che cerca di chiarire come funziona l'hardware.
studiohack

Risposte:


49

Come ogni cosa complicata, puoi descrivere il modo in cui una CPU opera a vari livelli.

Al livello più fondamentale, una CPU è guidata da un clock preciso. La frequenza dell'orologio può cambiare; pensa a SpeedStep di Intel. Ma in ogni momento la CPU è assolutamente bloccata al 100% sul segnale di clock.

Le istruzioni della CPU funzionano a un livello molto più elevato. Una singola istruzione è una cosa complessa e può richiedere da meno di un ciclo a migliaia di cicli per essere completata, come spiegato qui su Wikipedia .

Quindi sostanzialmente un'istruzione consumerà un certo numero di cicli di clock . Nelle CPU moderne, a causa di tecnologie come core multipli, HyperThreading, pipelining, cache, esecuzione fuori ordine e speculativa, il numero esatto di cicli di clock per una singola istruzione non è garantito e varierà ogni volta che si impartisce tale istruzione !

MODIFICARE

sono disponibili informazioni sulla varianza di una CPU specifica?

Sì e no. Il 99,99% degli utenti finali è interessato alle prestazioni complessive , che possono essere quantificate eseguendo vari parametri di riferimento.

Quello che stai chiedendo sono informazioni altamente tecniche. Intel non pubblica informazioni complete o accurate sulla latenza / velocità effettiva delle istruzioni della CPU .

Ci sono ricercatori che si sono presi la briga di provare a capirlo. Ecco due PDF che potrebbero interessarti:

Purtroppo è difficile ottenere dati sulla varianza . Citando dal primo PDF:

i numeri elencati sono valori minimi. Manca cache, disallineamento ed eccezioni possono aumentare considerevolmente il conteggio dell'orologio.

Lettura interessante comunque!


1
I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
Sathyajith Bhat

4
Molto bella. Naturalmente, But at all times the CPU is absolutely 100% locked to the clock signalsi applica solo alle CPU sincrone. È sciocco parlare di tick in una CPU asincrona (senza clock), ma mi è
sembrata

1
@Luaan - True. Penso che le vere CPU asincrone siano ancora piuttosto rare, ma esistono (o hanno in passato). Tuttavia, è veramente rilevante solo per ricercatori e fanatici dell'hardware.
Daniel R Hicks,

@DanielRHicks Erano di qualche interesse per i dispositivi embedded (ci sono alcune vecchie CPU asincrone MIPS e ARM in circolazione), ma sì, non è proprio la cosa più importante sul mercato consumer. Dopo tutto, perché preoccuparsi del consumo energetico della CPU di uno smartphone quando c'è il display affamato di energia proprio accanto ad esso. Il risparmio energetico (e altre funzionalità) potrebbe essere molto interessante per alcune altre applicazioni, anche se IBM SyNAPSE sembra un progetto interessante per scopi scientifici.
Luaan,

@Luaan - Il punto interessante, quando furono inventati per la prima volta, era che il computer funzionava esattamente veloce / lento quanto era necessario per eseguire il calcolo. Ma schemi di clock più elaborati fondamentalmente hanno realizzato la stessa cosa, sorta.
Daniel R Hicks,

29

I tick di clock della CPU sono di natura strettamente periodica?

Ovviamente no. Anche i migliori orologi non sono strettamente periodici. Le leggi della termodinamica dicono altrimenti:

  • Legge di Zeroth: c'è un brutto gioco che l'universo gioca su di te.
  • Prima legge: non puoi vincere.
  • Seconda legge: Ma potresti anche andare in pareggio, in una giornata molto fredda.
  • Terza legge: non fa mai così freddo.

Gli sviluppatori degli orologi molto, i migliori provano molto, molto duramente per superare le leggi della termodinamica. Non possono vincere, ma arrivano molto, molto vicino al pareggio. L'orologio sulla tua CPU? È spazzatura in confronto a quei migliori orologi atomici. Questo è il motivo per cui esiste il Network Time Protocol .


Previsione: vedremo ancora una volta un po 'di caos quando i migliori orologi atomici del mondo passeranno dal 2015 30 giugno alle 23:59:59 UTC al 30 giugno 23:59:60 dal 2015 al 2015 1 luglio 2015 00:00:00 UTC. Troppi sistemi non riconoscono i secondi intercalari e il loro livello di sicurezza è impostato su due (il che impedisce un cambio di tempo di oltre un secondo). Il jitter di clock in questi sistemi significa che il secondo di salto del Network Time Protocol verrà rifiutato. Un certo numero di computer andrà a gonfie vele, proprio come nel 2012.


9
+1, divertente e informativo. E anche il secondo argomento di Leap è una buona lettura.
jimm-cl,

9
Bene, IIRC, il wa-belly-up wa ha causato perché le routine di clock del kernel erano consapevoli della possibilità di saltare i secondi, ma implementavano la regolazione come una chiamata a una routine di regolazione del clock che non poteva essere chiamata mentre il clock era già in fase di regolazione ... E ovviamente l'orologio di sistema non ha nulla a che fare con l'orologio della CPU.
Hagen von Eitzen,

1
Lol, fantastico. Devo aggiungere qualcosa alla tua osservazione "L'orologio della CPU è spazzatura rispetto agli orologi atomici" : Davvero! Ma è tutto molto soggettivo, per non parlare del parente. Potremmo meravigliarci della precisione superiore dei nostri migliori orologi atomici, ma da qualche parte là fuori (al di fuori della nostra realtà accogliente) potrebbe esserci una tecnologia che fa sembrare i nostri orologi atomici "spazzatura" :-p
misha256

2
@ misha256 la realtà è che non può esserci un orologio preciso . Il tempo è relativo.
Keltari,

Il clock della CPU può essere spazzatura, ma non c'è niente come lasciare un overflow del registro a 8 bit solo per dare un po 'di tempo al driver del display a 7 segmenti in uno stato sconosciuto per confondere le tue istruzioni prima di emettere il successivo. Non abbiamo bisogno di cristalli per quello. O ancora più importante, non c'è niente come aspettare un nanosecondo affinché l'ALU completi il ​​suo calcolo prima di riporre i risultati in un registro (o su un bus che porta a un altro ALU).
John Dvorak,

22

Intorno al 2000, quando le velocità delle CPU iniziarono ad entrare nel raggio d'azione dei telefoni cellulari, divenne comune aggiungere una variazione alla velocità effettiva del clock. Il motivo è semplice: se il clock della CPU è esattamente 900 Mhz, tutte le interferenze elettroniche vengono generate a quella frequenza. Varia la frequenza di clock un po 'tra 895 e 905 Mhz e anche l'interferenza è distribuita su tale intervallo.

Ciò è stato possibile perché le CPU moderne sono limitate dal calore. Non hanno problemi a correre leggermente più velocemente per un breve periodo di tempo, poiché possono raffreddarsi quando l'orologio viene rallentato in seguito.


13
Nel BIOS vedrai spesso questa opzione descritta come "Spread Spectrum"
Mark Sowul,

1
Ho letto che nelle CPU multi-core i core usano anche i clock offset perché aiuta a evitare il rumore radio, aiuta con la distribuzione dell'alimentazione ed evita che i nuclei costruiscano armoniche.
Zan Lynx,

3
@MarkSowul grazie, finalmente qualcuno ha raccontato l'uso pratico di questo "spettro diffuso".

22

Progettista di logica digitale qui. Il tempo effettivo impiegato da una rete logica per cambiare in risposta a un segnale di ingresso è il ritardo di propagazione . Pensa al sistema come:

registers A,B,C... ---> logic cloud ---> registers A',B',C'

L '"orologio di lancio" è il bordo dell'orologio nel quale cambia il primo set di registri. L '"orologio di acquisizione" è il successivo limite dell'orologio un periodo dopo. Affinché il sistema funzioni, l'output del cloud logico deve essere stabile prima che arrivi l'orologio di acquisizione.

Il processo per assicurarsi che funzioni è l'analisi dei tempi. Utilizzando una simulazione del sistema basata sulla fisica, calcola il tempo di arrivo nel caso peggiore di qualsiasi input a qualsiasi output. Il più grande di questi numeri nel sistema imposta il periodo di clock minimo.

Nota il caso peggiore . Il tempo di propagazione effettivo sarà più breve, ma dipende dalla variazione del processo di produzione, dalla temperatura corrente e dalla tensione del chip ( PVT ). Ciò significa che in termini pratici è possibile applicare un orologio più veloce (overclocking) e potrebbe funzionare. Potrebbe anche iniziare a produrre errori, come decidere che 0x1fffffff + 1 = 0x1f000000se il bit di trasporto non arriva in tempo.

I chip possono anche avere più di un clock a bordo (di solito l'FSB è più lento del core), e il clock reale può essere aumentato o diminuito per scopi di controllo termico o variato (la risposta di MSalter sull'uso dello spettro di diffusione per superare i test EMC).


In alcuni casi, l'orologio di acquisizione può essere il secondo o successivo ciclo anziché il successivo. Alcuni progetti presuppongono che i dati richiedano sempre almeno un minimo di tempo (ad esempio se si sa che il ritardo di propagazione è compreso tra 2,1 e 2,9 cicli, i dati potrebbero essere emessi e i risultati campionati su ogni ciclo; ogni risultato campionato rifletterebbe i dati da 3 cicli prima); altri progetti più conservativi modificano i dati di output più lentamente e ignorano il risultato fino a quando non viene garantito che sia stabile.
supercat

2

La durata delle istruzioni di una CPU è strettamente sincronizzata con la vibrazione del cristallo? O la CPU deve solo essere sicura di ottenere un'istruzione prima del prossimo tick?

Nessuno dei due. La durata dell'istruzione sarà un certo numero di tick di clock, ma quel numero può variare in base ai requisiti dell'istruzione. Ad esempio, se un'istruzione non può avanzare fino a quando un determinato percorso di memoria non si trova nella cache L1, allora l'istruzione non verrà completata prima del successivo tick dell'orologio. Non verranno fatti progressi in avanti su tale istruzione fino a quando ciò non accadrà.

Ma quando la CPU decide di fare qualcosa, il metodo di base con cui lo fa è quello di impostare i suoi switch interni in modo che una particolare informazione vada a una determinata porzione della CPU. Attende che l'input arrivi a quella porzione e l'output arrivi alla porzione successiva. Questa porzione in attesa è lo scopo dell'orologio.

Immagina un circuito fisico che prende due ingressi binari e li somma, emettendo la somma su un terzo set di fili. Per fare un'aggiunta, la CPU deve provvedere affinché i due numeri vengano aggiunti per arrivare a questo sommatore e le uscite per andare, per esempio, a un fermo del registro CPU. La CPU non può dire al latch di memorizzare l'output fino a quando gli input non raggiungono il sommatore, il sommatore produce l'output e l'output raggiunge il latch. Questo è lo scopo dell'orologio: impostare il tempo di attesa tra l'organizzazione dell'input per andare da qualche parte e l'aspettativa dell'output per essere pronto per l'uso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.