Як вимірюється час в комп'ютерних системах?


13

Щось мене спантеличило таке: як саме комп'ютер регулює та повідомляє час? Наприклад: якби я написав програму, яка це робила:

Зробіть 2 + 2, потім зачекайте 5 секунд

Як процесор знає, що таке "5 секунд"? Як вимірюється час в комп'ютерних системах? Чи є конкретний чіп для єдиної мети? Як це працює?

Дякую за будь-які відповіді; Мене дуже цікавлять інформатика, і я б дуже любив будь-яку допомогу, яку ви могли б надати мені = D.


2
Ось легке для читання та розуміння пояснення того, як це роблять комп’ютери: eecis.udel.edu/~ntp/ntpfaq/NTP-s-sw-clocks.htm Ось необов'язкове пояснення точності комп'ютерного годинника: ntp.org/ ntpfaq / NTP-s-sw-
clock

Відповіді:


13

Хоча відповідь Джоеля правильна, насправді це трохи складніше.

Перше, що потрібно враховувати (і я збираюся зосередитись лише на ПК тут) - це те, що в комп'ютері є кілька годин, і кожен має своє власне використання.

Найпопулярніший і найпростіший для розуміння - годинник у режимі реального часу . Це в основному чіп, який має простий годинник всередині. Зазвичай вони мають той же тип кварцових кристалів, що і стандартні годинники, і зазвичай мають батарею для зберігання часу, коли комп'ютер вимкнений. Проблема з ними полягає в тому, що вони не дуже точні, як видно з посилань Syntech. Кристал 32,768 кГц занадто повільний для будь-якого зберігання часу в сучасних системах, процесори яких знаходяться в мегагерц і гігагерц.

Тут ми переходимо до наступного пункту: Є внутрішні годинники, які використовуються для точних вимірювань часу та відліку часу.

Простий годинник - програмований інтервальний таймер . Що потрібно зробити, це почекати певну кількість часу, а потім надіслати переривання в процесор. Коли процесор отримає переривання, він зупинить все, що робить, і схильний до завдання, яке породило переривання. Таким чином CPU не повинен постійно перевіряти, чи щось робиться. Натомість він може зосередитись на інших робочих місцях і змусити ПДФО сказати, коли робота виконана. ПІТ використовує тактовий джерело 1,193182 МГц і тому набагато більш точний, ніж простий RTC.

Наступна цікава система вимірювання - лічильник часу . Ідея цього полягає в тому, що ми можемо отримати набагато точніші вимірювання часу за допомогою тактового джерела процесора, використовуючи різні системні таймери. У ПІТ є тактова частота 1,193182 МГц, але навіть найдавніші процесори x86 мали набагато більшу тактову частоту. Отже, у нас з'явиться таймер, який оновлюється після кожного встановленого кількості процесорних циклів. У той час процесори мали дуже стабільні тактові годинники, і використання TSC було гарним способом зробити точні вимірювання часу. Однак використання ТСК спричиняє ряд проблем. Різні процесори мають різну кількість галочок і вимірюють час з різною швидкістю. Пізніше, по мірі розвитку технологій, ми отримали сучасні процесори, які можуть змінювати свою частоту. Це основна проблема, тому що годинник процесора вже не постійний, і ми не можемо використовувати його для вимірювання часу.

І тому зараз у нас є точні таймери подій . HPET використовує тактову частоту 10 МГц і тому є більш точним, ніж PIT. З іншого боку, його годинникове джерело не залежить від годин процесора, і його можна використовувати для вимірювання часу, навіть якщо зміни годинника процесора. На відміну від PIT, який працює як зворотний відлік, HPET вимірює час з моменту увімкнення комп'ютера та порівнює поточний час із часом, коли потрібні дії.

Є й інші джерела часу для комп’ютерів, які, на мою думку, потрібно згадати. Деякі комп'ютери підключені до атомних годин і можуть використовувати їх для точного вимірювання часу.

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

Іншим варіантом, який є менш поширеним, ніж GPS-приймач, є використання спеціального радіоприймача, який декодує інформацію про час, наприклад, з радіостанцій, таких як DCF77. Такі станції часу мають власні джерела часу з високою точністю і передають свій вихід по радіо. Оскільки радіохвилі подорожують зі швидкістю світла, затримка часто незначна.


1
Чудова відповідь. Я не знав, що у GPS-супутників були власні атомні годинники. Виявляється, кожен з 24 має по 4 атомарних годинника відповідно до цієї статті: science.nasa.gov/science-news/science-at-nasa/2004/…
deltaray

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.