Comment le temps est-il mesuré dans les systèmes informatiques?

13

Une chose qui m'a intrigué est la suivante: comment exactement un ordinateur règle-t-il et indique-t-il l'heure? Par exemple: si je devais écrire un programme qui a fait ça:

Faites 2 + 2 puis attendez 5 secondes

Comment le processeur sait-il ce qu'est "5 secondes"? Comment le temps est-il mesuré dans les systèmes informatiques? Existe-t-il une puce spécifique à cette seule fin? Comment ça marche?

Merci pour toutes les réponses; Je m'intéresse vraiment à l'informatique et j'adorerais toute aide que vous pourriez me donner = D.

DRK3
la source
2
Voici une explication facile à lire et à comprendre du fonctionnement des ordinateurs: eecis.udel.edu/~ntp/ntpfaq/NTP-s-sw-clocks.htm Voici une explication facultative de la précision d'une horloge d'ordinateur: ntp.org/ ntpfaq / NTP-s-sw-clocks-
quality.htm

Réponses:

13

Bien que la réponse de Joel soit correcte, en réalité, c'est un peu plus compliqué.

La première chose qui doit être prise en considération (et je vais me concentrer uniquement sur les PC ici) est qu'il y a plusieurs horloges dans un ordinateur et chacune a sa propre utilisation.

L' horloge en temps réel est la plus populaire et la plus facile à comprendre . Il s'agit essentiellement d'une puce qui possède une horloge simple à l'intérieur. Ils ont généralement le même type de cristaux de quartz que les horloges standard et ont généralement une batterie pour garder le temps lorsque l'ordinateur est éteint. Le problème avec eux est qu'ils ne sont pas très précis, comme on peut le voir sur les liens de Syntech. Le cristal 32,768 kHz est trop lent pour tout chronométrage sur les systèmes modernes dont les processeurs sont dans la gamme mégahertz et gigahertz.

Nous arrivons ici au point suivant: il y a des horloges internes utilisées pour des mesures précises du temps et des comptes à rebours.

Une horloge simple est une minuterie d'intervalle programmable . Ce qu'il fait, c'est attendre un certain temps, puis envoyer une interruption au CPU. Lorsque le CPU reçoit l'interruption, il arrête tout ce qu'il fait et s'occupe de la tâche qui a généré l'interruption. De cette façon, le CPU n'a pas à vérifier en permanence si quelque chose est fait. Au lieu de cela, il peut se concentrer sur d'autres travaux et demander au PIT de lui dire quand le travail est terminé. Le PIT utilise une source d'horloge à 1,193182 MHz et est donc beaucoup plus précis qu'un simple RTC.

Le prochain système de mesure intéressant est le compteur d'horodatage . L'idée derrière cela est que nous pouvons obtenir des mesures beaucoup plus précises du temps en utilisant la source d'horloge du processeur qu'avec différents temporisateurs système. PIT a une horloge de 1,193182 MHz, mais même les premiers processeurs x86 avaient une horloge beaucoup plus élevée. Nous aurons donc un minuteur qui est mis à jour après chaque quantité définie de cycles de processeur. À l'époque, les processeurs avaient des horloges très stables et l'utilisation de TSC était un bon moyen de faire des mesures de temps précises. L'utilisation de TSC pose cependant un certain nombre de problèmes. Différents processeurs ont des taux de tick différents et mesurent le temps à différentes vitesses. Plus tard, à mesure que la techniologie progressait, nous avons obtenu des processeurs modernes qui peuvent changer leur fréquence. C'est un problème majeur, car l'horloge du processeur n'est plus constante et nous ne pouvons pas l'utiliser pour mesurer le temps.

Et c'est pourquoi nous avons maintenant des minuteries d'événements de haute précision . HPET utilise une horloge de 10 MHz et est donc plus précis que PIT. D'un autre côté, sa source d'horloge ne dépend pas de l'horloge du CPU et elle peut être utilisée pour mesurer le temps même si l'horloge du CPU change. Contrairement à PIT, qui fonctionne comme un compte à rebours, HPET mesure le temps depuis la mise sous tension de l'ordinateur et compare l'heure actuelle à l'heure où une action est nécessaire.

Il existe d'autres sources de temps disponibles pour les ordinateurs qui, je crois, doivent être mentionnées. Certains ordinateurs sont connectés à des horloges atomiques et peuvent les utiliser pour mesurer précisément le temps.

Une option moins coûteuse et beaucoup plus courante consiste à utiliser une source de temps externe pour calibrer les sources de temps internes de l'ordinateur. Par exemple, les récepteurs GPS peuvent être utilisés pour fournir des mesures de temps de haute précision, car les satellites GPS ont leurs horloges atomiques internes.

Une autre option moins courante que le récepteur GPS consiste à utiliser un récepteur radio spécial qui décode les informations de temps des stations de radio de temps telles que DCF77 par exemple. Ces stations de temps ont leurs propres sources de temps de haute précision et transmettent leur sortie par radio. Comme les ondes radio se déplacent à la vitesse de la lumière, le retard est souvent insignifiant.

AndrejaKo
la source
1
Très bonne réponse. Je ne savais pas que les satellites GPS avaient leurs propres horloges atomiques à bord. Il s'avère que chacun des 24 a 4 horloges atomiques chacune selon cet article: science.nasa.gov/science-news/science-at-nasa/2004/…
deltaray
2
Réponse très détaillée! Merci d'avoir pris le temps de tout écrire!
DRK3
1
Particulièrement intéressant est le peu sur la façon dont les horloges dépendent de la vitesse d'horloge du processeur, mais vu que la vitesse d'horloge du processeur est variable aujourd'hui, cela devient un problème. Merci encore.
DRK3
@ DRK3 Voici une excellente vidéo sur les horloges atomiques: wimp.com/atomicclock
Griffin
1
Cette réponse confond quelque peu les notions de «précision», de «précision» et de «résolution». Dans le langage de l'instrumentation, la «précision» fait référence à la répétabilité d'une mesure. Un instrument peut être très précis sans être précis s'il n'a pas été correctement calibré. (Cependant, il ne peut pas être précis s'il n'est pas précis.) Et ce n'est pas parce que HPET fait 10 millions de fois par seconde - donc a une résolution plus élevée - qu'il n'est pas plus précis que quelque chose qui tique toutes les millisecondes environ.
Jamie Hanrahan
11

IIRC, il y a un petit cristal qui vibre à une fréquence spécifique lorsqu'un courant électrique le traverse. Chaque mouvement est compté et un nombre spécifique d'entre eux déclenche un cycle d'horloge.

Joel Coehoorn
la source
3
Je pense que c'est encore du quartz. (Vous pouvez même voir le petit rectangle métallique arrondi estampillé «14 MHz» ou «14,3 MHz» - ou une autre fréquence - contenant un cristal de quartz sur la carte mère.)
Synetech
Merci d'avoir répondu! Je ne savais pas qu'un cristal (quartz) était utilisé.
DRK3
1
Ils n'utilisent pas toujours un cristal de quartz. Certains microcontrôleurs très bon marché utilisent à la place un "résonateur céramique". Même la synchronisation pilotée par les cristaux de quartz sur les cartes mères standard n'est pas si précise (c'est-à-dire que sa synchronisation peut varier). Ils ne valent généralement pas mieux qu'une montre numérique typique.
Jamie Hanrahan
Réponse très simple! Est-ce aussi ce qui se passe dans les montres à quartz?
Nicolas Barbulesco