IIRC, há um pequeno cristal que vibra em uma freqüência específica quando uma corrente elétrica é passada através dele. Cada movimento é contado e um número específico deles aciona um ciclo de clock.
Algo que me deixou perplexo é: como exatamente um computador regula e diz o tempo? Por exemplo: se eu fosse escrever um programa que fizesse isso:
Faça 2 + 2 e aguarde 5 segundos
Como o processador sabe o que é "5 segundos"? Como o tempo é medido em sistemas de computador? Existe um chip específico para esse único propósito? Como isso funciona?
Obrigado por qualquer resposta; Estou realmente interessado em ciência da computação e adoraria qualquer ajuda que você pudesse me dar = D.
IIRC, há um pequeno cristal que vibra em uma freqüência específica quando uma corrente elétrica é passada através dele. Cada movimento é contado e um número específico deles aciona um ciclo de clock.
Enquanto a resposta de Joel está correta, na realidade, é um pouco mais complicado.
A primeira coisa que precisa ser levada em consideração (e vou focar apenas em PCs aqui) é que existem vários relógios em um computador e cada um tem seu próprio uso.
O mais popular e fácil de entender é o relógio em tempo real . É basicamente um chip que tem um relógio simples por dentro. Eles geralmente têm o mesmo tipo de cristais de quartzo que os relógios padrão e geralmente têm 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: há relógios internos usados para medições precisas de tempo e contagens regressivas.
Um relógio simples é temporizador de intervalo programável . O que ele faz é aguardar um certo tempo e depois enviar uma interrupção para a CPU. Quando a CPU recebe a interrupção, ela irá parar o que estiver fazendo e tenderá para a tarefa que gerou a interrupção. Desta forma, a CPU não precisa verificar constantemente se algo é feito. Em vez disso, ele pode se concentrar em outros trabalhos e ter o PIT informando quando o trabalho é feito. O PIT usa fonte de clock de 1.193182 MHz e é, portanto, muito mais preciso do que o simples RTC.
O próximo sistema de medição interessante é contador de registro 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 que usa vários temporizadores do sistema. O PIT tem clock de 1.193182 MHz, mas mesmo os primeiros processadores x86 tiveram clock muito maior. Então, teremos um timer que é atualizado após cada quantidade de ciclos de processador. Na época, os processadores tinham relógios muito estáveis e o uso do TSC era uma boa maneira de fazer medições de tempo precisas. O uso do TSC, no entanto, traz vários problemas. Diferentes processadores têm taxas de variação diferentes e medem o tempo em velocidades diferentes. Mais tarde, à medida que a tecnologia avançou, conseguimos processadores modernos que podem mudar sua frequência. Esse é um grande problema, porque o relógio da CPU não é mais constante e não podemos usá-lo para medir o tempo.
E é por isso que temos cronômetros de eventos de alta precisão agora. O HPET usa um clock de 10 MHz e, portanto, é mais preciso do que o PIT. Por outro lado, sua fonte de clock não depende do clock da CPU e pode ser usada para medir o tempo mesmo se o clock da CPU mudar. Ao contrário do PIT, que funciona como contagem regressiva, o HPET mede o tempo desde que o computador foi ligado e compara o tempo atual no momento em que 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 menos dispendiosa 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 têm seus relógios atômicos internos.
Outra opção que é menos comum que o receptor GPS é usar um receptor de rádio especial que decodifica as informações de tempo a partir do tempo, mantendo estações de rádio como 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 é muitas vezes insignificante.
HPET uses a 10 MHz clock
A HPET usa com um sinal de 10 Mhz. Pode ser mais preciso do que 10 Mhz, mas nunca menos.