Come viene misurato il tempo nei sistemi informatici?


13

Qualcosa di cui sono rimasto perplesso è questo: come fa esattamente un computer a regolare e dire l'ora? Ad esempio: se dovessi scrivere un programma che ha fatto questo:

Fai 2 + 2 quindi attendi 5 secondi

Come fa il processore a sapere cosa sono i "5 secondi"? Come viene misurato il tempo nei sistemi informatici? Esiste un chip specifico per quel solo scopo? Come funziona?

Grazie per eventuali risposte; Sono molto interessato all'informatica e mi piacerebbe qualsiasi aiuto tu possa darmi = D.


2
Ecco una spiegazione di facile lettura e comprensione di come i computer lo fanno: eecis.udel.edu/~ntp/ntpfaq/NTP-s-sw-clocks.htm Ecco una spiegazione facoltativa della precisione di un orologio per computer: ntp.org/ ntpfaq / NTP-s-sw-clocks-quality.htm
Synetech

Risposte:


13

Mentre la risposta di Joel è corretta, in realtà è un po 'più complicata.

La prima cosa che deve essere presa in considerazione (e mi concentrerò solo sui PC qui) è che ci sono diversi orologi in un computer e ognuno ha il suo uso.

Il più popolare e più facile da capire è l' orologio in tempo reale . È fondamentalmente un chip con dentro un semplice orologio. Di solito hanno lo stesso tipo di cristalli di quarzo degli orologi standard e di solito hanno una batteria per tenere il tempo quando il computer è spento. Il problema con loro è che non sono molto precisi, come si può vedere dai link di Syntech. Il cristallo 32.768 kHz è troppo lento per qualsiasi cronometraggio su sistemi moderni i cui processori sono nella gamma megahertz e gigahertz.

Qui arriviamo al punto successivo: ci sono orologi interni usati per misurazioni e conteggi alla rovescia precisi.

Un semplice orologio è un timer intervallo programmabile . Ciò che fa è attendere un certo periodo di tempo e quindi inviare un interrupt alla CPU. Quando la CPU riceve l'interrupt, interromperà tutto ciò che sta facendo e tenderà al compito che ha generato l'interrupt. In questo modo la CPU non deve controllare costantemente se qualcosa è stato fatto. Invece può concentrarsi su altri lavori e fare in modo che il PIT lo dica al termine del lavoro. Il PIT utilizza una sorgente di clock a 1.193182 MHz ed è quindi molto più preciso del semplice RTC.

Il prossimo interessante sistema di misurazione è il contatore dei timestamp . L'idea alla base è che possiamo ottenere misurazioni molto più precise del tempo usando la sorgente di clock del processore che usando vari timer di sistema. PIT ha un clock di 1.193182 MHz, ma anche i primi processori x86 avevano un clock molto più alto. Quindi avremo un timer che viene aggiornato dopo ogni set di cicli del processore. All'epoca i processori avevano orologi molto stabili e l'uso del TSC era un buon modo per effettuare misurazioni precise del tempo. L'uso di TSC comporta tuttavia una serie di problemi. Processori diversi hanno frequenze di tick diverse e misurano il tempo a velocità diverse. Successivamente, con l'avanzare della tecnica, abbiamo ottenuto processori moderni che possono cambiare la loro frequenza. Questo è un grosso problema, sicché l'orologio della CPU non è più costante e non possiamo usarlo per misurare il tempo.

Ed è per questo che ora abbiamo timer per eventi ad alta precisione . HPET utilizza un clock a 10 MHz ed è quindi più preciso di PIT. D'altra parte, la sua sorgente di clock non dipende dal clock della CPU e può essere utilizzato per misurare il tempo anche se il clock della CPU cambia. A differenza di PIT, che funziona come conto alla rovescia, HPET misura il tempo trascorso dall'accensione del computer e confronta il tempo corrente quando è necessaria un'azione.

Ci sono altre fonti di tempo disponibili per i computer che credo debbano essere menzionate. Alcuni computer sono collegati a orologi atomici e possono usarli per misurare con precisione il tempo.

Un'opzione meno costosa e molto più comune è utilizzare l'origine temporale esterna per calibrare le fonti temporali interne del computer. Ad esempio, i ricevitori GPS possono essere utilizzati per fornire misurazioni del tempo ad alta precisione, poiché i satelliti GPS hanno i loro orologi atomici interni.

Un'altra opzione che è meno comune del ricevitore GPS è l'uso di un ricevitore radio speciale che decodifica le informazioni sul tempo dal tempo mantenendo ad esempio le stazioni radio come DCF77. Tali stazioni temporali hanno le proprie fonti temporali di alta precisione e trasmettono la loro uscita via radio. Poiché le onde radio viaggiano alla velocità della luce, il ritardo è spesso insignificante.


1
Bella risposta. Non sapevo che i satelliti GPS avessero a bordo i propri orologi atomici. Si scopre che ciascuno dei 24 ha 4 orologi atomici ciascuno secondo questo articolo: science.nasa.gov/science-news/science-at-nasa/2004/…
deltaray

2
Risposta molto dettagliata! Grazie per aver dedicato del tempo per scrivere tutto!
DRK3,

1
Particolarmente interessante è il bit su come gli orologi dipendevano dalla velocità di clock della CPU, ma visto come le velocità di clock della CPU sono variabili oggi, questo diventa un problema. Grazie ancora.
DRK3,

@ DRK3 Ecco un ottimo video sugli orologi atomici: wimp.com/atomicclock
Griffin

1
Questa risposta confonde in qualche modo le nozioni di "accuratezza", "precisione" e "risoluzione". Nel linguaggio della strumentazione, "precisione" si riferisce alla ripetibilità di una misurazione. Uno strumento può essere molto preciso senza essere accurato, se non è stato calibrato correttamente. (Tuttavia, non può essere accurato se non è preciso.) E solo perché HPET ha un punteggio di 10 milioni di volte al secondo - quindi ha una risoluzione più elevata - non garantisce che sia più preciso di qualcosa che passa ogni millisecondo circa.
Jamie Hanrahan,

11

IIRC, c'è un piccolo cristallo che vibra a una frequenza specifica quando una corrente elettrica lo attraversa. Ogni movimento viene conteggiato e un numero specifico di essi attiva un ciclo di clock.


3
Credo che sia ancora quarzo. (Potresti anche essere in grado di vedere il piccolo rettangolo arrotondato in metallo stampato con “14MHz” o “14.3MHz” - o qualche altra frequenza - contenente un cristallo di quarzo sulla scheda madre).
Synetech

Grazie per la risposta! Non avevo idea che fosse usato un cristallo (quarzo).
DRK3,

1
Non usano sempre un cristallo di quarzo. Alcuni microcontrollori molto economici usano invece un "risonatore ceramico". Anche il timing al quarzo guidato dalle schede madri di materie prime non è poi così preciso (cioè il suo timing può variare). In genere non sono migliori di un tipico orologio digitale.
Jamie Hanrahan,

Risposta molto semplice! È questo che succede anche negli orologi al quarzo?
Nicolas Barbulesco,

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.