Como o tempo é medido em sistemas de computador?

13

Algo que me intrigou é o seguinte: como exatamente um computador regula e conta as horas? Por exemplo: se eu escrevesse um programa que fiz isso:

Faça 2 + 2 e aguarde 5 segundos

Como o processador sabe o que são "5 segundos"? Como o tempo é medido em sistemas de computador? Existe um chip específico para esse único propósito? Como funciona?

Obrigado por qualquer resposta; Estou realmente interessado em ciência da computação e adoraria qualquer ajuda que você pudesse me dar = D.

DRK3
fonte
2
Aqui está uma explicação fácil de ler e entender de como os computadores fazem isso: eecis.udel.edu/~ntp/ntpfaq/NTP-s-sw-clocks.htm Aqui está uma explicação opcional da precisão de um relógio de computador: ntp.org/ ntpfaq / NTP-s-sw-relógios-quality.htm
Synetech 5/11

Respostas:

13

Embora a resposta de Joel esteja correta, na realidade, é um pouco mais complicada.

A primeira coisa que precisa ser levada em consideração (e vou focar apenas nos PCs aqui) é que existem vários relógios em um computador e cada um tem seu próprio uso.

O mais popular e mais fácil de entender é o relógio em tempo real . É basicamente um chip que possui um relógio simples dentro. Eles geralmente têm o mesmo tipo de cristais de quartzo que os relógios padrão e geralmente possuem uma bateria para manter o tempo quando o computador é desligado. O problema com eles é que eles não são muito precisos, como pode ser visto nos links da Syntech. O cristal de 32.768 kHz é muito lento para qualquer cronometragem em sistemas modernos cujos processadores estão na faixa de megahertz e gigahertz.

Aqui chegamos ao próximo ponto: existem relógios internos usados ​​para medições precisas de tempo e contagem regressiva.

Um relógio simples é um temporizador de intervalo programável . O que ele faz é esperar um certo tempo e enviar uma interrupção para a CPU. Quando a CPU recebe a interrupção, ela interrompe o que está fazendo e tende à tarefa que gerou a interrupção. Dessa forma, a CPU não precisa verificar constantemente se algo é feito. Em vez disso, ele pode se concentrar em outros trabalhos e solicitar ao PIT quando o trabalho estiver concluído. O PIT usa a fonte de clock de 1.193182 MHz e, portanto, é muito mais preciso que o simples RTC.

O próximo sistema de medição interessante é o contador de data e hora . A idéia por trás disso é que podemos obter medições de tempo muito mais precisas usando a fonte de clock do processador do que usando vários temporizadores do sistema. O PIT possui um relógio de 1,193182 MHz, mas mesmo os processadores x86 mais antigos tinham um clock muito maior. Portanto, teremos um cronômetro que é atualizado após cada quantidade definida de ciclos do processador. Na época, os processadores tinham relógios muito estáveis ​​e o uso do TSC era uma boa maneira de fazer medições precisas de tempo. O uso do TSC, no entanto, traz vários problemas. Processadores diferentes têm taxas de escala diferentes e medem o tempo em velocidades diferentes. Mais tarde, à medida que a tecnologia avançava, obtivemos processadores modernos que podem mudar sua frequência. Esse é um grande problema, pois o relógio da CPU não é mais constante e não podemos usá-lo para medir o tempo.

E é por isso que temos temporizadores de eventos de alta precisão agora. O HPET usa um relógio de 10 MHz e, portanto, é mais preciso que o PIT. Por outro lado, sua fonte de relógio não depende do relógio da CPU e pode ser usada para medir o tempo, mesmo que o relógio da CPU mude. Diferentemente do PIT, que funciona como contagem regressiva, o HPET mede o tempo desde que o computador foi ligado e compara o tempo atual quando uma ação é necessária.

Existem outras fontes de tempo disponíveis para computadores que, acredito, precisam ser mencionadas. Alguns computadores estão conectados a relógios atômicos e podem usá-los para medir com precisão o tempo.

Uma opção mais barata e muito mais comum é usar a fonte de tempo externa para calibrar as fontes de tempo internas do computador. Por exemplo, os receptores GPS podem ser usados ​​para fornecer medições de tempo de alta precisão, porque os satélites GPS possuem seus relógios atômicos internos.

Outra opção menos comum que o receptor GPS é usar um receptor de rádio especial que decodifique informações de tempo para manter estações de rádio como o DCF77, por exemplo. Essas estações de tempo têm suas próprias fontes de tempo de alta precisão e transmitem sua saída pelo rádio. Como as ondas de rádio viajam na velocidade da luz, o atraso geralmente é insignificante.

AndrejaKo
fonte
1
Ótima resposta. Eu não sabia que os satélites de GPS tinham seus próprios relógios atômicos a bordo. Revela-se, cada um dos 24 tem 4 Atomics relógios cada um de acordo com esse artigo: science.nasa.gov/science-news/science-at-nasa/2004/...
deltaray
2
Resposta muito detalhada! Obrigado por reservar um tempo para escrever isso!
DRK3 6/03/11
1
Especialmente interessante é o pouco sobre como os relógios dependiam da velocidade do clock da CPU, mas ver como as velocidades do clock da CPU são variáveis ​​hoje em dia, isso se torna um problema. Obrigado novamente.
DRK3 6/03/11
@ DRK3 Aqui está um grande vídeo em relógios atômicos: wimp.com/atomicclock
Griffin
1
Essa resposta confunde um pouco as noções de "precisão", "precisão" e "resolução". Na linguagem da instrumentação, "precisão" refere-se à repetibilidade de uma medição. Um instrumento pode ser muito preciso sem ser preciso, se não tiver sido calibrado corretamente. (No entanto, não pode ser preciso se não for preciso.) E o fato de o HPET funcionar 10 milhões de vezes por segundo - portanto, ter uma resolução mais alta - não garante que seja mais preciso do que algo que marca cada milissegundo.
precisa saber é o seguinte
11

IIRC, há um pequeno cristal que vibra em uma frequência específica quando uma corrente elétrica passa por ele. Cada movimento é contado e um número específico deles aciona um ciclo de relógio.

Joel Coehoorn
fonte
3
Eu acredito que ainda é quartzo. (Você pode até mesmo ser capaz de ver o pequeno, metal, retângulo arredondado carimbada “14MHz” ou “14.3MHz” -ou alguma outra um cristal de quartzo na placa-mãe contendo frequência.)
Synetech
Obrigado pela resposta! Eu não tinha idéia de que um cristal (quartzo) é usado.
DRK3 6/03/11
1
Eles nem sempre usam um cristal de quartzo. Alguns microcontroladores muito baratos usam um "ressonador de cerâmica". Mesmo o tempo de cristal de quartzo nas placas-mãe de commodities não é tão preciso (ou seja, o tempo pode variar). Eles geralmente não são melhores do que um relógio digital típico.
precisa saber é o seguinte
Resposta muito simples! É isso o que acontece também nos relógios de quartzo?
Nicolas Barbulesco