Как измеряется время в компьютерных системах?


13

Что-то, что меня озадачило, таково: как именно компьютер регулирует и показывает время? Например: если бы я написал программу, которая сделала это:

Сделайте 2 + 2, затем подождите 5 секунд

Как процессор узнает, что такое «5 секунд»? Как измеряется время в компьютерных системах? Есть ли специальный чип для этой единственной цели? Как это работает?

Спасибо за любые ответы; Я действительно интересуюсь информатикой и буду рад любой помощи, которую вы можете мне дать = D.


2
Вот простое для понимания и понимания объяснение того, как компьютеры это делают: eecis.udel.edu/~ntp/ntpfaq/NTP-s-sw-clocks.htm Вот дополнительное объяснение точности часов компьютера: ntp.org/ ntpfaq / NTP-s-sw-clocks-quality.htm
Synetech

Ответы:


13

Хотя ответ Джоэля верен, в действительности все немного сложнее.

Первое, что необходимо принять во внимание (и я собираюсь сосредоточиться только на ПК), это то, что в компьютере есть несколько часов, и каждый из них имеет свое собственное использование.

Наиболее популярными и простыми для понимания являются часы реального времени . Это в основном чип с простыми часами внутри. Они обычно имеют тот же тип кварцевых кристаллов, что и стандартные часы, и обычно имеют батарею для отсчета времени, когда компьютер выключен. Проблема с ними в том, что они не очень точны, как видно из ссылок Syntech. Кристалл 32,768 кГц слишком медленный для любого хронометража в современных системах, процессоры которых находятся в мегагерцах и гигагерцах.

Здесь мы подходим к следующему пункту: есть внутренние часы, используемые для точного измерения времени и обратного отсчета.

Простые часы - это программируемый интервальный таймер . Что он делает, это ждет определенное количество времени, а затем отправляет прерывание в ЦП. Когда процессор получает прерывание, он останавливает все, что он делает, и стремится к задаче, которая сгенерировала прерывание. Таким образом, процессор не должен постоянно проверять, что-то сделано. Вместо этого он может сосредоточиться на других работах, и PIT сообщит ему, когда работа будет завершена. PIT использует тактовый источник 1,193182 МГц и поэтому намного точнее, чем простой RTC.

Следующая интересная система измерения - счетчик меток времени . Идея заключается в том, что мы можем получить гораздо более точные измерения времени, используя источник тактовой частоты процессора, который использует различные системные таймеры. PIT имеет тактовую частоту 1,193182 МГц, но даже у самых ранних процессоров x86 тактовая частота была намного выше. Таким образом, у нас будет таймер, который обновляется после каждого установленного количества циклов процессора. В то время процессоры имели очень стабильные часы, и использование TSC было хорошим способом для точного измерения времени. Однако использование TSC приносит ряд проблем. Разные процессоры имеют разную частоту тиков и измеряют время на разных скоростях. Позже, по мере развития технологии, мы получили современные процессоры, которые могут менять частоту. Это серьезная проблема, поскольку частота процессора больше не постоянна, и мы не можем использовать его для измерения времени.

И именно поэтому у нас сейчас есть высокоточные таймеры событий . HPET использует тактовую частоту 10 МГц и поэтому является более точным, чем PIT. С другой стороны, его источник синхронизации не зависит от часов процессора, и его можно использовать для измерения времени, даже если часы процессора меняются. В отличие от PIT, который работает как обратный отсчет, HPET измеряет время с момента включения компьютера и сравнивает текущее время с временем, когда необходимо действие.

Есть и другие источники времени, доступные для компьютеров, о которых, я считаю, нужно упомянуть. Некоторые компьютеры подключены к атомным часам и могут использовать их для точного измерения времени.

Менее дорогой и гораздо более распространенный вариант - использовать внешний источник времени для калибровки внутренних источников времени компьютера. Например, приемники GPS могут использоваться для обеспечения высокоточных измерений времени, потому что спутники GPS имеют свои внутренние атомные часы.

Другой вариант, который встречается реже, чем приемник GPS, - это использование специального радиоприемника, который декодирует информацию о времени от временных станций, например, DCF77. Такие временные станции имеют свои собственные высокоточные источники времени и передают свои выходные данные по радио. Поскольку радиоволны распространяются со скоростью света, задержка часто незначительна.


1
Отличный ответ. Я не знал, что у спутников GPS были свои атомные часы на борту. Оказывается, у каждого из 24 есть 4
атомных часа

2
Очень подробный ответ! Спасибо, что нашли время написать все это!
DRK3

1
Особенно интересно немного о том, как тактовые частоты зависели от тактовой частоты процессора, но, учитывая то, как тактовые частоты процессора сегодня являются переменными, это становится проблемой. Еще раз спасибо.
DRK3

@ DRK3 Вот отличное видео об атомных часах: wimp.com/atomicclock
Гриффин,

1
Этот ответ несколько смешивает понятия «точность», «точность» и «разрешение». На языке инструментов «точность» означает повторяемость измерения. Инструмент может быть очень точным без точности, если он не был откалиброван должным образом. (Тем не менее, он не может быть точным, если он не точный.) И только потому, что HPET работает со скоростью 10 миллионов раз в секунду - следовательно, имеет более высокое разрешение - не гарантирует, что он точнее, чем то, что выполняется каждую миллисекунду или около того.
Джейми Ханрахан

11

IIRC, есть маленький кристалл, который вибрирует на определенной частоте, когда через него проходит электрический ток. Каждое движение считается, и определенное количество из них запускает тактовый цикл.


3
Я считаю, что это все еще кварц. (Вы можете даже увидеть маленький металлический прямоугольник со скругленными углами с надписью «14 МГц» или «14,3 МГц» - или какую-то другую частоту - с кварцевым кристаллом на материнской плате.)
Synetech

Спасибо за ответ! Я понятия не имел, что используется кристалл (кварц).
DRK3

1
Они не всегда используют кварцевый кристалл. Некоторые очень недорогие микроконтроллеры используют вместо этого «керамический резонатор». Даже временные характеристики кварцевых кристаллов на обычных материнских платах не настолько точны (т. Е. Время может варьироваться). Они, как правило, не лучше, чем типичные цифровые часы.
Джейми Ханрахан

Очень простой ответ! Это то, что происходит в кварцевых часах?
Николас Барбулеско

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.