Jak mierzy się czas w systemach komputerowych?

13

Zastanawiam się nad tym: w jaki sposób komputer reguluje czas i informuje go? Na przykład: gdybym napisał program, który to zrobił:

Wykonaj 2 + 2, a następnie poczekaj 5 sekund

Skąd procesor wie, co to jest „5 sekund”? Jak mierzy się czas w systemach komputerowych? Czy jest jakiś specjalny układ do tego wyłącznego celu? Jak to działa?

Dziękuję za wszelkie odpowiedzi; Naprawdę interesuję się informatyką i bardzo chciałbym, abyś mógł mi pomóc = D.

DRK3
źródło
2
Oto łatwe do odczytania i zrozumienia wyjaśnienie, jak to robią komputery: eecis.udel.edu/~ntp/ntpfaq/NTP-s-sw-clocks.htm Oto opcjonalne wyjaśnienie precyzji zegara komputera: ntp.org/ ntpfaq / NTP-s-sw-clocks-quality.htm
Synetech

Odpowiedzi:

13

Chociaż odpowiedź Joela jest poprawna, w rzeczywistości jest nieco bardziej skomplikowana.

Pierwszą rzeczą, którą należy wziąć pod uwagę (i tutaj skupię się tylko na komputerach PC), jest to, że w komputerze jest kilka zegarów i każdy ma swoje zastosowanie.

Najpopularniejszym i najłatwiejszym do zrozumienia jest zegar czasu rzeczywistego . Zasadniczo jest to układ z prostym zegarem w środku. Zazwyczaj mają ten sam typ kryształów kwarcu, co standardowe zegary, i zwykle mają baterię do utrzymywania czasu, gdy komputer jest wyłączony. Problem z nimi polega na tym, że nie są one zbyt dokładne, jak widać z linków Syntecha. Kryształ 32,768 kHz jest zbyt wolny dla jakiegokolwiek pomiaru czasu w nowoczesnych systemach, których procesory są w zakresie megaherców i gigaherców.

Przechodzimy do następnego punktu: istnieją wewnętrzne zegary używane do precyzyjnych pomiarów czasu i odliczania.

Prosty zegar jest programowalnym interwalometrem . Wystarczy poczekać określony czas, a następnie wysłać przerwanie do procesora. Gdy CPU odbierze przerwanie, przerwie to, co robi, i wykona zadanie, które wygenerowało przerwanie. W ten sposób procesor nie musi stale sprawdzać, czy coś zostało zrobione. Zamiast tego może skupić się na innych zadaniach i PIT poinformuje go o zakończeniu zadania. PIT wykorzystuje źródło zegara 1,193182 MHz i dlatego jest znacznie bardziej precyzyjny niż zwykły RTC.

Kolejnym interesującym systemem pomiarowym jest licznik znaczników czasu . Chodzi o to, że możemy uzyskać znacznie dokładniejsze pomiary czasu przy użyciu źródła zegara procesora niż przy użyciu różnych timerów systemowych. PIT ma zegar 1.193182 MHz, ale nawet najwcześniejsze procesory x86 miały znacznie wyższy zegar. Będziemy więc mieli zegar, który jest aktualizowany po każdej określonej liczbie cykli procesora. W tym czasie procesory miały bardzo stabilne zegary, a użycie TSC było dobrym sposobem na precyzyjne pomiary czasu. Zastosowanie TSC powoduje jednak szereg problemów. Różne procesory mają różne częstości tykania i mierzą czas przy różnych prędkościach. Później, w miarę postępu technologicznego, otrzymaliśmy nowoczesne procesory, które mogą zmieniać ich częstotliwość. To poważny problem, ponieważ zegar procesora nie jest już stały i nie możemy go używać do mierzenia czasu.

Właśnie dlatego mamy teraz precyzyjne liczniki zdarzeń . HPET wykorzystuje zegar 10 MHz i dlatego jest bardziej precyzyjny niż PIT. Z drugiej strony, jego źródło zegara nie zależy od zegara procesora i może być użyte do pomiaru czasu, nawet jeśli zegar procesora się zmieni. W przeciwieństwie do PIT, który działa jako odliczanie, HPET mierzy czas od momentu włączenia komputera i porównuje bieżący czas, kiedy potrzebne jest działanie.

Istnieją inne źródła czasu dla komputerów, które moim zdaniem należy wymienić. Niektóre komputery są podłączone do zegarów atomowych i mogą ich używać do precyzyjnego pomiaru czasu.

Tańszą opcją i znacznie bardziej powszechną jest użycie zewnętrznego źródła czasu do kalibracji wewnętrznych źródeł czasu komputera. Na przykład odbiorniki GPS mogą służyć do wykonywania bardzo precyzyjnych pomiarów czasu, ponieważ satelity GPS mają swoje wewnętrzne zegary atomowe.

Inną opcją, która jest mniej powszechna niż odbiornik GPS, jest użycie specjalnego odbiornika radiowego, który dekoduje informacje o czasie z stacji radiowych utrzymujących czas, takich jak na przykład DCF77. Takie stacje czasowe mają własne źródła czasu o wysokiej precyzji i transmitują swoją moc wyjściową drogą radiową. Ponieważ fale radiowe przemieszczają się z prędkością światła, opóźnienie jest często nieznaczne.

AndrejaKo
źródło
1
Świetna odpowiedź. Nie wiedziałem, że satelity GPS mają na pokładzie własne zegary atomowe. Okazuje się, że każdy z 24 ma 4 zegary atomowe, każdy zgodnie z tym artykułem: science.nasa.gov/science-news/science-at-nasa/2004/…
deltaray
2
Bardzo szczegółowa odpowiedź! Dziękujemy za poświęcenie czasu na napisanie tego wszystkiego!
DRK3
1
Szczególnie interesujący jest fragment o tym, jak zegary były zależne od szybkości zegara procesora, ale biorąc pod uwagę, jak dziś zmienne są taktowania procesora, staje się to problemem. Dzięki jeszcze raz.
DRK3,
@ DRK3 Oto świetny film na temat zegarów atomowych: wimp.com/atomicclock
Griffin
1
Ta odpowiedź nieco myli pojęcia „dokładność”, „precyzja” i „rozdzielczość”. W języku oprzyrządowania „precyzja” odnosi się do powtarzalności pomiaru. Instrument może być bardzo precyzyjny bez dokładności, jeśli nie został poprawnie skalibrowany. (Jednak nie może być dokładne, jeśli nie jest precyzyjne.) I tylko dlatego, że HPET tyka 10 milionów razy na sekundę - stąd wyższa rozdzielczość - nie gwarantuje, że jest bardziej precyzyjny niż coś, co tyka co milisekundę.
Jamie Hanrahan
11

IIRC, jest mały kryształ, który wibruje z określoną częstotliwością, gdy przepływa przez niego prąd elektryczny. Każdy ruch jest liczony, a określona liczba z nich uruchamia cykl zegara.

Joel Coehoorn
źródło
3
Wierzę, że to wciąż kwarc. (Być może będziesz mógł zobaczyć mały, metalowy, zaokrąglony prostokąt z napisem „14 MHz” lub „14,3 MHz” - lub z inną częstotliwością - zawierający kryształ kwarcu na płycie głównej.)
Synetech
Dziękuję za odpowiedź! Nie miałem pojęcia, że ​​używany jest kryształ (kwarc).
DRK3,
1
Nie zawsze używają kryształu kwarcu. Niektóre bardzo tanie mikrokontrolery używają zamiast tego „rezonatora ceramicznego”. Nawet taktowanie oparte na krysztale kwarcu na podstawowych płytach głównych nie jest aż tak precyzyjne (tzn. Jego taktowanie może się różnić). Na ogół nie są lepsze niż typowy zegarek cyfrowy.
Jamie Hanrahan
Bardzo prosta odpowiedź! Czy to samo dzieje się w zegarkach kwarcowych?
Nicolas Barbulesco