Программируемый таймер

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Программируемый таймер, программируемый интервальный таймер (англ. programmable interval timer, PIT) — в вычислительной технике и во встроенных компьютерных системах представляет собой счетчик, который генерирует сигнал при достижении запрограммированного значения. Выходной сигнал PIT может вызвать прерывание.

Общие черты

[править | править код]

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

Счетчики PIT обычно программируются с фиксированными интервалами, которые определяют, как долго таймер будет считать, прежде чем выдаст сигнал.

PIT в IBM PC и совместимых с ним компьютерах

[править | править код]

В компьютерах, совместимых с IBM PC, первым PIT был таймер в Intel 8253. Это было оригинальное устройство синхронизации, которое использовало тактовый сигнал 1,193182 МГц (это 1/3 частоты цветовой синхронизации[англ.] видеосигнала NTSC, 1/12 частоты системного кварцевого генератора[1], а также одна четверть тактовой частоты процессора 4,77 МГц) и содержит три таймера. Таймер 0 используется в Microsoft Windows (однопроцессорный) и Linux в качестве системного таймера, таймер 1 исторически использовался для динамического обновления оперативной памяти, а таймер 2 — для динамика ПК[2].

LAPIC в новых компьютерных системах Intel предлагает таймер с более высоким разрешением (одна микросекунда)[3]. Этот таймер используется вместо таймера PIT в ядрах Linux, начиная с версии 2.6.18[4].

Примечания

[править | править код]
  1. The Programmable Interval Timer. Bran's Kernel Development Tutorial. Osdever.net. Дата обращения: 30 октября 2013.
  2. Programmable Interval Timer (англ.). OSDev Wiki (26 июня 2012). Дата обращения: 30 октября 2013.
  3. Walter U. μ-second precision timer support for the Linux kernel. / Uwe Walter, Vincent Oberle. — 4 p.
  4. Determining and changing the rate of timer interrupts a guest operating system requests : KB1005802. / VMware.