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

Quelque chose dont j'ai été perplexe, c'est ceci: comment exactement un ordinateur règle-t-il et dit-il l'heure? Par exemple: si je devais écrire un programme qui faisait ceci:

Faites 2 + 2 puis attendez 5 secondes

Comment le processeur sait-il ce que "5 secondes" est? 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 aimerais toute aide que vous pourriez me donner = D.

IIRC, il y a un petit cristal qui vibre à une fréquence spécifique lorsqu'un courant électrique passe à travers celui-ci. Chaque mouvement est compté et un nombre spécifique d'entre eux déclenchent un cycle d'horloge.

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

La première chose qui doit être prise en compte (et je ne me concentrerai que sur les PC ici) est qu'il y a plusieurs horloges dans un ordinateur et chacune a son propre usage.

Le plus populaire et le plus facile à comprendre est l' horloge en temps réel . Il s'agit essentiellement d'une puce qui a 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 le temps de maintien 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 de 32.768 kHz est trop lent pour tout chronométrage sur les systèmes modernes dont les processeurs sont en mégahertz et gigahertz.

Nous arrivons au point suivant: il existe 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 et envoyer une interruption à la CPU. Lorsque la CPU reçoit l'interruption, elle arrête tout ce qu'elle fait et tend à la tâche qui a généré l'interruption. De cette façon, la CPU ne doit pas constamment vérifier si quelque chose est fait. Au lieu de cela, il peut se concentrer sur d'autres emplois et demander au PIT de le dire quand le travail est terminé. Le PIT utilise la source d'horloge 1.193182 MHz et est donc beaucoup plus précis que le simple RTC.

Le prochain système de mesure intéressant est le compteur de timbres . L'idée derrière elle est que nous pouvons obtenir des mesures de temps beaucoup plus précises en utilisant la source d'horloge du processeur, en utilisant différents horloges système. PIT a une horloge 1.193182 MHz, mais même les premiers processeurs x86 avaient une horloge beaucoup plus élevée. Nous aurons donc une minuterie qui sera mise à jour après chaque série de cycles de processeur. À l'époque, les processeurs avaient des horloges très stables et l'utilisation de TSC était une bonne façon d'effectuer des mesures précises du temps. L'utilisation de TSC entraîne toutefois un certain nombre de problèmes. Les différents processeurs ont des taux de ticks différents et mesurent le temps à différentes vitesses. Plus tard, à mesure que la techniologie avançait, nous avons eu des processeurs modernes qui peuvent changer leur fréquence. C'est un problème majeur, l'horloge CPU n'est plus constante et nous ne pouvons pas l'utiliser pour mesurer le temps.

Et c'est pourquoi nous avons des chronomètres d'événements de haute précision maintenant. HPET utilise une horloge de 10 MHz et est donc plus précis que PIT. D'autre part, sa source d'horloge ne dépend pas de l'horloge de la CPU et elle peut être utilisée pour mesurer le temps même si l'horloge de la CPU change. À la différence de PIT, qui fonctionne comme compte à rebours, HPET mesure le temps écoulé depuis que l'ordinateur a été allumé et compare l'heure actuelle lorsqu'une action est nécessaire.

Il existe d'autres sources de temps disponibles pour les ordinateurs dont je crois qu'il faut mentionner. 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 fréquente est d'utiliser une source de temps externe pour étalonner 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 qui est moins fréquente que le récepteur GPS est d'utiliser un récepteur radio spécial qui décode les informations de temps depuis des stations de radio 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 négligeable.

HPET utilise une horloge de 10 MHz

HPET utilise au moins une horloge de 10 Mhz. Il peut être plus précis que 10 Mhz mais jamais moins.

http://en.wikipedia.org/wiki/High_Precision_Event_Timer#Comparison_to_predecessors