Немногие знают, как можно увеличить FPS в играх, отключив HPET. В это статье разберём, что такое HPET и что будет, если отключить эту функцию, а также, безопасно ли это.
High Precision Event Timer (HPET) – высокоточный таймер событий
HPET – это тип таймера, который используется в ПК. Это непрерывно работающий таймер, который постоянно отсчитывает, т.е. работает не как одноразовое устройство, которое отсчитывает до нуля, вызывает одно прерывание и затем останавливается. Поскольку HPET сравнивает фактическое значение таймера и запрограммированное целевое значение на равенство, а не на «больше или равно», прерывания могут быть пропущены, если целевое время уже прошло, когда значение компаратора записывается в регистр микросхемы. Схема HPET в современных ПК интегрирована в чип южного моста.
Отложенный вызов процедур (задержка DPC) позволяет программам быстро помещать действия в очередь в планировщике процессора, которые через какое-то время будут обработаны.
Например, отрисовка видеокадра (video frame) на экране может быть выполнена, как только данные будут готовы и время кадра (frame time) достигнуто. Конечно, всё это делается за какие-то доли секунд и не замечается многими людьми.
Что будет если отключить HPET?
Отключение HPET позволяет осуществлять неограниченный ввод-вывод и приводит к очень сырому и чрезвычайно отзывчивому соединению между вами и вашей машиной. Это также удаляет микро заикания и подвисания экрана.
1000 секунда = 1 миллисекунда
HPET ON: задержка между 100-150 мс
HPET OFF: задержка между 5-15 мс
Выходит, что с включённой функцией таймера HPET происходит потеря 3-4 кадра в секунду, соответственно, с выключенной функцией снижается вероятность «зависания».
Несмотря на то, что это не так уж много, но представьте, что каждое действие и каждый компонент ПК подвержен той хоть и не большой, но задержке. Это может привести к значительным потерям производительности.
Увеличится ли fps в играх и приложениях при отключении hpet?
Отключение этого параметра (даже через командную строку) может существенно повлиять на производительность в играх и приложениях. В некоторых случаях ваш FPS может сильно увеличиться (например, с 30 до 100).
Безопасно ли отключать HPET?
Да, это абсолютно безопасно. Это ничего не повредит и не приведёт к нежелательным побочным эффектам. Вы всегда сможете вернуть всё обратно.
Есть мнение, что даже необходимо отключить HPET, так как компьютер не использует этот аппаратный компонент активно и не делает ничего полезного, он просто сидит и тормозит процессор. Сняв вес с вашего процессора, он будет быстрее, и ваш компьютер в целом будет работать более плавно, что будет в основном заметно в играх, но также и в любой задаче, которую вы выполняете на своём компьютере. Это улучшит работу ПК, не оказывая негативного влияния.
При отключении HPET могут ли быть проблемы в онлайн играх?
К сожалению, вас могут заподозрить в использовании читов (возможно, но не факт), поэтому будьте осторожны, отключайте на свой страх и риск.
Если, отключив HPET, увеличивается фпс, то зачем вообще его нужно включать? И зачем тогда он включен по умолчанию?
Это было лучше для более старых ОС, для звуковых карт PCI с низкой задержкой или интерфейсов захвата и т. д. Для игр это увеличивает накладные расходы и, как правило, даёт меньше FPS.
Как отключить HPET?
Способ 1. Через BIOS или UEFI
Очень часто таймер можно отключить через BIOS или UEFI, найдя, к примеру, функцию HPET Support или High Precision Event Timer (название может немного отличаться, в зависимости от вашей материнской платы):
Способ 2. Через командную строку
В Windows 10 также можно отключить HPET через командную строку от имени администратора после ввода следующих команд:
bcdedit /deletevalue useplatformclock
bcdedit /set disabledynamictick yes
Чтобы внести изменения необходимо перезагрузить компьютер.
Если вы хотите повторно включить HPET, используйте следующие команды:
bcdedit /set useplatformclock true
bcdedit /set disabledynamictick no
Способ 3. Используя диспетчер задач Windows
Отключить HPET можно воспользовшись диспетчером устройств, найдя таймер в системных устройствах и отключив, зайдя в свойства:
Нужно ли отключать HPET?
Я никому не говорю, нужно ли вам включить или отключить HPET, так как это может иметь разные эффекты в зависимости от вашего оборудования. Конечно, я не гарантирую, что это что-то изменит для всех и приведёт к колоссальному росту производительности. В некоторых случаях ваша система с отключением HPET можно начать работать менее стабильно (либо могут появиться дополнительные проблемы), а в некоторых более отзывчиво, поэтому нужно наблюдать за этим, если вы решите отключить таймер. В любом случае необходимо разумно отключать или включать какие-либо параметры или функции и следить за тем, как после этого стал работать ваш ПК, это касается всего, не только HPET.
Что значит HPET Mode? HPET mode 32 или 64 что выбрать?
Если вы включили таймер, то в некоторых случаях вы сможете выбрать mode 32-bit или 64-bit, данная опция всего-навсего уточняет режим работы счётчиков: 32-разрядный или 64-разрядный. Если у вас установлена 32-разрядная система, то выбирайте 32-bit mode, а если 64-разрядная, то 64-bit mode.
Внимание пользователей ноутбуков
Отключение HPET, уменьшение разрешения таймера в Windows 10 приведет к увеличению расхода батареи. А как сохранить батарею ноутбука и увеличить продолжительность его работы читайте в моей статье.
HPET – элемент компьютера, который располагается на южном мосту материнской платы. Он представляет собой таймер обратного отчета, призванный оптимизировать синхронизацию между ПК и ПО. В то же время все чаще встречается мнение о том, что этот компонент не нужен, и пользователи ищут способ, как отключить HPET в операционной системе Windows 10. Деактивацию элемента можно выполнить самостоятельно, но для начала нужно понять, что за этим последует.
Что будет, если отключить HPET
Рекомендации в отключении HPET изначально появились на форумах, посвященных видеоиграм. Авторы публикаций приводили доказательства того, что после деактивации компонента увеличивается частота кадров в играх, да и сам интерфейс визуально становится более плавным.
Стоит отметить, что слова не расходятся с делом, и отключение HPET действительно приводит к положительным изменениям в функционировании ПК. Но зачем тогда эта функция по умолчанию активируется производителем? Таймер изначально предназначался для старых операционных систем (Windows 7 и младше), в которых не была решена проблема задержки операций на программном уровне. В Windows 10 подобный вопрос не встает, а потому нет особого смысла в использовании HPET.
Также необходимо осветить вопрос безопасности отключения таймера. В большинстве случаев его деактивация сказывается на работе компьютера положительно. Однако все будет зависеть от настроек, внесенных производителем, а потому есть вероятность, что отключение компонента приведет к потере FPS, а не увеличению этого показателя.
Как отключить?
Несмотря на то, что HPET является аппаратным компонентом компьютера, для его отключения не нужно разбирать устройство или обращаться в сервисный центр. Операция выполняется встроенными средствами ОС. Вы можете выбрать один из представленных ниже вариантов и произвести деактивацию в соответствии с алгоритмом.
Через BIOS или UEFI
BIOS (UEFA) – виртуальная среда компьютера, существующая параллельно с операционной системой. Обычно ее используют для решения проблем, связанных с работой ОС, но в то же время она помогает отключить HPET. Для выполнения операции вам потребуется:
- Перезагрузить компьютер.
- Во время следующего включения зажать клавишу «F2» или «Del» (зависит от производителя материнской платы).
- После попадания в BIOS перейти в раздел «Power Management Setup».
- Отключить компонент «HPET Support».
Вообще, названия пунктов меню, а также опции, отвечающей за работу таймера, может отличаться в зависимости от версии BIOS. Как бы то ни было, вам необходимо искать упоминание HPET. Там, где оно присутствует, выполняется та самая деактивация, о которой идет речь.
Командная строка
Откровенно говоря, отключение через BIOS – далеко не самый удобный вариант решения проблемы, поскольку владелец компьютера должен иметь хотя бы минимальное представление о работе вспомогательного меню. Поэтому можно рассмотреть альтернативный метод деактивации таймера, который предполагает использование стандартного интерфейса Windows 10:
- Щелкните ПКМ по значку «Пуск».
- Запустите Командную строку с правами администратора.
- Введите запрос «bcdedit /deletevalue useplatformclock».
- Нажмите на клавишу «Enter».
- Аналогичным образом обработайте команду «bcdedit /set disabledynamictick yes».
Не исключено, что деактивация таймера скажется негативным образом на работе компьютера. Это стандартная ситуация, напрямую зависящая от производителя устройства и предусмотренных им настроек. Поэтому не лишним будет отметить, как повторно активировать HPET. Операция также выполняется через Командную строку, но на этот раз пользователю требуется обработать другие запросы, а именно:
- bcdedit /set useplatformclock true;
- bcdedit /set disabledynamictick no.
Команды нужно вводить поочередно, нажимая после каждой на клавишу «Enter». Также по завершении операции рекомендуется перезагрузить компьютер, чтобы изменения вступили в силу.
Применение Диспетчера задач
Если способ с применением Командной строки тоже покажется вам сложным, в запасе останется самый простой вариант. В данном случае предлагается обратиться к одному из диспетчеров Windows 10, а точнее – к «Диспетчеру устройств»:
- Кликните ПКМ по значку «Пуск».
- Запустите «Диспетчер устройств».
- Раскройте вкладку «Системные устройства».
- Найдите в списке «Высокоточный таймер событий» и откройте его свойства.
- Нажмите на кнопку «Отключить».
Аналогичным способом вы сможете повторно активировать компонент, если вдруг появится такая необходимость. Кроме того, не забывайте перезагружать компьютер после внесения изменений в настройки устройства.
Осмысленная настройка опции HPET в Windows 10 может значительно влиять на увеличение или уменьшение производительности вашей системы в играх и работе. Рассказываем, как проверить и оттюнить свой ПК.
Если количество кадров в секунду вас уже не устраивает, и посещают мысли, что пора бы менять видеокарту или процессор для улучшения производительности в играх — мысли эти, безусловно, правильные. Но для начала можно попробовать заняться оптимизацией настроек системы. Удивительно, но иногда они дают заметный результат. Хотя, тут, как это часто бывает в мире ПК, рецепт сработавший на одной конфигурации, стоит проверять затем на каждой конкретной — новый результат может оказаться немного иным.
Опытом настройки ПК и инструкциями мы делимся регулярно в нашем Telegram-канале. Сегодня расскажем про то, как удалось разогнать связку из процессора Intel Core i5-9600KF, материнской платы Asus Prime Z390-P и видеокарты Sapphire Pulse Radeon RX 5700 XT.
Впрочем, тут стоит ещё проверить, изначально, включена ли та самая настройка у вас или уже деактивирована по-умолчанию. Отдадим почести парням из PRO Hi-Tech, после видео которых мы решили провести этот эксперимент на своей системе и поделиться результатами с нашими читателями.
Что такое HPET?
HPET (англ. High Precision Event Timer, таймер событий высокой точности) — тип таймера, используемый в персональных компьютерах. Совместно разработан Intel и Microsoft, и стал внедряться в чипсеты персональных компьютеров с 2005 года. Ранее назывался Intel как мультимедийный таймер (англ. multimedia timer). Название HPET было выбрано для исключения путаницы с программными таймерами, появившимися в Windows 3.0, которые также назывались Multimedia Timers.
Сегодня схема HPET интегрирована в чип южного моста. Если ранее можно было управлять HPET через BIOS, то современные версии уже в большинстве случаев не дают такой настройки. К старым операционным системам в данном случае стоит относить от Microsoft те, что вышли раньше Windows 7.
Может случиться, что HPET активна на аппаратном уровне и одновременно включена в Windows. Отключение её в системе может сказаться на производительности.
Тестирование и сравнение
Для проверки теории использовали встроенный бенчмарк Metro Exodus, выбрав Extreme-профиль настроек графики, DirectX11 и разрешение 1920×1080 пикселей. Слева направо результаты с выключенным параметром HPET и затем включённым.
Кроме того, прогнали тест в бенчмарке TimerBench 1.3.3.
HPET активна. Здесь уже для бенчмарка выбрали разрешение 3840×2160 пикселей.
Те же условия, но HPET деактивирована.
Как отключить/включить HPET?
Мы нашли 3 способа.
1. Через командную строку Windows
Запустите командную строку от имени администратора. Открываем меню пуск, набираем с клавиатуры «cmd», выбираем администраторский вариант.
Чтобы отключить введите команды:
bcdedit /deletevalue useplatformclock
bcdedit /set disabledynamictick yes
Чтобы заново включить используйте:
bcdedit /set useplatformclock true
bcdedit /set disabledynamictick no
Через диспетчер устройств
Используем сочетание клавиш Win+Break, затем в открывшемся окне выбираем ссылку «Диспетчер устройств». В разделе «Системные устройства» находим «High Precision Event Timer» (Высокоточный таймер событий), открываем контекстное меню по клику правой кнопкой мыши и деактивируем устройство.
Через сторонние твикеры/бенчмарки
Мы использовали TimerBench 1.3.3, который позволяет управлять HPET через свой интерфейс. У вас тоже появится такая возможность, если решите проверить работу на своей системе и сравнить результаты до и после. Скачать приложение можно по ссылке.
Бонусом
Кроме того, у нас были ещё несколько статей об оптимизации системы для игр. Справедливость информации, описанной в них тоже стоит проверять для каждой конфигурации отдельно. Ознакомиться с ними можно по следующим ссылкам:
- Простой способ ускорить компьютер в играх;
- Игровой режим Windows 10 — не всегда хорошо;
- В Windows 10 можно увеличить количество кадров в играх.
Источник: PRO Hi-Tech.
👍 / 👎
Тогда можно поддержать её лайком в соцсетях. На новости сайта вы ведь уже подписались?
Или хотя бы оставить довольный комментарий, чтобы мы знали, какие темы наиболее интересны читателям. Кроме того, нас это вдохновляет. Форма комментариев ниже.
Что с ней так? Своё негодование вы можете высказать на zelebb@gmail.com или в комментариях. Мы постараемся учесть ваше пожелание в будущем, чтобы улучшить качество материалов сайта. А сейчас проведём воспитательную работу с автором.
Если вам интересны новости мира ИТ так же сильно, как нам, подписывайтесь на Telegram-канал. Там все материалы появляются максимально оперативно. Или, может быть, удобнее «Вконтакте»?
Читайте нас где удобно
Ещё на эту тему было
- Как запретить OneDrive перехватывать клавишу PrtSc?
- Microsoft сделает Windows более безопасной
- Как передавать файлы со смартфона на ПК и обратно по Bluetooth?
- Приложение просмотра фото Windows желтит кадры. Как починить?
- Windows 11, наконец, догнала по скорости работы windows 10
- Поддерживает ли ваш ПК DirectStorage? Microsoft выпустила утилиту для проверки
- Windows 11 может получить новый инструмент контроля приватности
- Скачать Windows 11 и Windows 10 с сайта Microsoft из России больше невозможно
- В обновлении Windows 11 появятся папки на рабочем столе, как в Android
- Обновление Windows 11 даст больше эффектов прозрачности для сторонних приложений
Для тех, кто долистал
Ай-ти шуточка бонусом. iPhone — очень скучный девайс: ничего не глючит, всё работает. Зря я продал свой Android.
From Wikipedia, the free encyclopedia
The High Precision Event Timer (HPET) is a hardware timer available in modern x86-compatible personal computers. Compared to older types of timers available in the x86 architecture, HPET allows more efficient processing of highly timing-sensitive applications, such as multimedia playback and OS task switching. It was developed jointly by Intel and Microsoft and has been incorporated in PC chipsets since 2005. Formerly referred to by Intel as a Multimedia Timer,[1] the term HPET was selected to avoid confusion with the software multimedia timers introduced in the MultiMedia Extensions to Windows 3.0.[2]
Older operating systems that do not support a hardware HPET device can only use older timing facilities, such as the programmable interval timer (PIT) or the real-time clock (RTC). Windows XP, when fitted with the latest hardware abstraction layer (HAL), can also use the processor’s Time Stamp Counter (TSC), or ACPI Power Management Timer (ACPI PMTIMER), together with the RTC to provide operating system features that would, in later Windows versions, be provided by the HPET hardware. Confusingly, such Windows XP systems quote «HPET» connectivity in the device driver manager even though the Intel HPET device is not being used.
Features[edit]
An HPET chip consists of a 64-bit up-counter (main counter) counting at a frequency of at least 10 MHz, and a set of (at least three, up to 256) comparators. These comparators are 32- or 64-bit-wide. The HPET is programmed via a memory mapped I/O window that is discoverable via ACPI. The HPET circuit in modern PCs is integrated into the southbridge chip.[a]
Each comparator can generate an interrupt when the least significant bits are equal to the corresponding bits of the 64-bit main counter value. The comparators can be put into one-shot mode or periodic mode, with at least one comparator supporting periodic mode and all of them supporting one-shot mode. In one-shot mode the comparator fires an interrupt once when the main counter reaches the value stored in the comparator’s register, while in the periodic mode the interrupts are generated at specified intervals.
Comparators can be driven by the operating system, e.g. to provide one timer per CPU for scheduling, or by applications.
Applications[edit]
The HPET can produce periodic interrupts at a much higher resolution than the RTC and is often used to synchronize multimedia streams, providing smooth playback and reducing the need to use other timestamp calculations such as an x86-based CPU’s RDTSC
instruction. This provides improved efficiency, since the CPU does not need to waste cycles to make up for the low resolution of timers, and enables more aggressive use of sleep states, reducing power consumption. In addition to the application-level demand for high-precision clock, there are OS-level benefits in the scheduler and through the availability of a stable clock base for multi-processor systems.[3]
Comparison to predecessors[edit]
This section needs expansion with: compare with LAPIC timer, ACPI PM etc.. You can help by adding to it. (February 2014) |
HPET is meant to supplement and replace the 8254 programmable interval timer and the RTC’s periodic interrupt function. Compared to these older timer circuits, the HPET has higher frequency and wider 64-bit counters (although they can be driven in 32-bit mode).[1]
The HPET specification does not define the timer frequency, only requiring a minimum of 10 MHz; the actual frequency is provided to the operating system by a hardware register giving the number of femtoseconds per period (with an upper bound of 100000000 fs). A popular value is 14.318 MHz, 12 times the standard 8254 frequency of 1.19318 MHz.
While 8254 and RTC can be put into an HPET-like one-shot mode, the set-up process is so slow that their one-shot mode is not used in practice for tasks requiring precise scheduling.[4] Instead, 8254 and RTC are typically used in periodic mode with a very small time interval. For example, if an application needs to perform several short (some milliseconds, perhaps) waits, it is better to have a periodic timer running constantly with a 1 ms period because of the high setup cost of an 8254 or RTC one-shot timer. This causes an interrupt at every millisecond even if the application needs to do actual work less frequently. With HPET, the extra interrupts can be avoided, because the set-up cost of a HPET one-shot timer is considerably smaller.
Use and compatibility[edit]
Operating systems designed before HPET existed cannot use HPET, so they use other timer facilities. Newer operating systems tend to be able to use either. Some hardware has both. Indeed, most current southbridge chips have legacy-supporting instances of PIT, PIC, Advanced Programmable Interrupt Controller (APIC) and RTC devices incorporated into their silicon whether or not they are used by the operating system, which helps very modern PCs run older operating systems.
The following operating systems are known not to be able to use HPET:
Windows XP SP1,[b] and earlier Windows versions, Linux kernels prior to 2.6.[c]
The following operating systems are known to be able to use HPET:
Windows XP SP3,[d] Windows Server 2003 SP2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows 7, x86 based versions of OS X, Linux operating systems using the 2.6 kernel (or later), FreeBSD[5] and OpenSolaris.[citation needed]
The Linux kernel can also use HPET as its clock source. The documentation of Red Hat MRG version 2 states that TSC is the preferred clock source due to its much lower overhead, but it uses HPET as a fallback. A benchmark in that environment for 10 million event counts found that TSC took about 0.6 seconds, HPET took slightly over 12 seconds, and ACPI Power Management Timer took around 24 seconds.[6]
In 2019 it was decided to blacklist HPET in newer Linux kernels when running on some Intel CPUs (Coffee Lake) because of its instability.[7]
Problems[edit]
HPET is a continuously running timer that counts upward, not a one-shot device that counts down to zero, causes one interrupt and then stops. Since HPET compares the actual timer value and the programmed target value on equality rather than «greater or equal», interrupts can be missed if the target time has already passed when the comparator value is written into the chip’s register.[8] In such a case, not only is the intended interrupt missed, but actually set far into the future (about 232 or 264 counts).[9] In the presence of non-maskable interrupts (such as a System Management Interrupt (SMI)) that do not have a hard upper bound on their execution time, this race condition requires time-consuming re-checks of the timer after setup and is hard to avoid completely. The difficulties are exacerbated if the comparator value is not synchronized with the timer immediately, but delayed by one or two ticks, as some chipsets do.[8]
Besides mentioning the race condition discussed above, a VMware document also lists some other drawbacks: «The specification does not require the timer to be particularly fine grained, to have low drift, or to be fast to read. Some typical implementations run the counter at about 18 MHz and require about the same amount of time (1–2 μs) to read the HPET as with the ACPI timer. Implementations have been observed in which the period register is off by 800 parts per million or more.»[9]
Notes[edit]
- ^ On these highly integrated dies the BIOS often sets up the HPET incorrectly in the ACPI, initializing it correctly only in Intel 8253 mode. If the ACPI is not set up correctly the OS cannot list the HPET. And the BIOS and OS developers don’t see the need to get Real Time support. So the HPET is only there to satisfy the system’s high speed needs. If the HPET is set up correctly in the ACPI from BIOS then the ACPI MMIO page of the first HPET chip should be at 0xFED00000 and the second HPET at page 0xFED80000 (see the discussion for further information).
- ^ Windows XP, SP2 knows the HPET timer (as a device with ACPI\PNP0103 identifier). When detected (for example, on Intel DQ45CB motherboard), Device Manager (Start / Settings / Control Panel / System / Device Manager) shows «High Precision Event Timer» device in «System devices» branch. But this device is not used at all.
- ^ With a Linux kernel, you need the newer RTC-CMOS hardware clock device driver rather than the original RTC driver.
- ^ XP SP3 «emulates» most of the HPET specification as drafted in 2002 in anticipation of a device that made its eventual appearance in PCs designed for Windows Vista by 2005.
The term «High Precision Event Timer» is then used within the driver manager to describe TSC (Time-Stamp-Counter) or ACPI Power Management Timer (PMTimer) timing subsystems even when the 15 MHz Intel HPET device is not being used.
While it is true to say that only Windows Vista and later Windows use the physical Intel 15 MHz HPET, the operating system features intended to be fulfilled by the HPET already largely existed in Windows XP, albeit to a different specification (that of 2002 rather than 2005) and hence with a reduced capability.
In terms of physical embodiment in Windows XP SP3, the IRQ0 and IRQ8 are typically mapped to a «High Precision Event Timer» when using the ACPI HAL (version 5.1.2600.5512), albeit that the QueryPerformanceFrequency API call returns a value related to the rated processor clock speed (for example, 2.6 GHz) or PMTIMER (3.579545 MHz) rather than the Intel HPET spec’d value of 15 MHz that you would get using Windows Vista. This anomaly muddies the water about what is meant by «HPET» on such systems, but it is clearly not the 15 MHz Intel device in those cases. Note that this «HPET»-quoting IRQ mapping and non-HPET clock relationship can be found both on Intel systems and AMD systems whether or not they are using the /USEPMTIMER boot override.
Since the original specification for HPET (in 2002) calls for a high resolution counter, which is then exposed by the QueryPerformanceFrequency and QueryPerformanceCounter API calls (already available since Windows 2000), it is the QueryPerformanceFrequency that can shed light on how this «high precision» counter is actually being provided.
A high value (in the 1 GHz to 4 GHz range) implicates the Time Stamp Counter (TSC) of the CPU as being the source. The early multi-core CPUs from AMD exposed a problem with TSC-derived QueryPerformanceCounter readings, as they would be affected by spread-spectrum and power management speed variations. While this was eventually solved in later processor designs by making the TSC clock independent of the CPU clock, the PM Timer on ACPI systems became the counter source of choice, requiring a /USEPMTIMER override in the Windows BOOT.INI file to enforce its use.
On both Intel and AMD machines using the ACPI HAL together with the /USEPMTIMER boot switch, the IRQs 0 & 8 will still report a HPET, but now the QueryPerformanceFrequency will report 3.579545 MHz, which is the frequency of the PMTIMER. This has the express advantage of being independent of the CPU frequency and still provides a very reasonable sub-microsecond resolution and accuracy.
Ironically the very high count rates obtained in TSC mechanisms (as compared with PMTIMER or the Intel HPET device) can cause a problem that the measurable time intervals are too short: there is an upper limit to the usefulness of a counter that overflows early. It can also be a nuisance that the ever-increasing processor speeds of newer processor designs make this usable time span shorter still. It is thus not surprising that PMTIMER and Intel HPET systems use a clearly specified fixed rate that is deliberately targeted at producing resolutions in the sub-microsecond range, allowing them to measure for longer periods than is possible with TSC.
With or without the /PMTIMER switch, the «event» part of the HPET specification can only be emulated by using yet another timing source, since neither an underlying TSC nor PMTIMER solution includes implicit hardware for aperiodic event triggering as described by the specification, and yet this is available via the timer API in Windows XP (to a best possible resolution of 0.9766 ms when the timeBeginPeriod — timeEndPeriod API calls are used). This part of the specification is still fulfilled by the RTC device with the help of software, despite the fact that the device manager is quoting HPET in the IRQ0 and IRQ8 positions.
References[edit]
- ^ a b Intel Corporation (October 2004), IA-PC HPET (High Precision Event Timers) Specification (revision 1.0a) (PDF), retrieved 2012-06-15
- ^ «Multimedia Timers». Microsoft. Retrieved 2010-10-20.
- ^ «IA-PC HPET (High Precision Event Timers) Specification» (PDF). Intel. October 2004. Retrieved 30 August 2022.
- ^ Guidelines For Providing Multimedia Timer Support, 2002-09-20, retrieved 2009-11-10
- ^ «FreeBSD Man Pages: hpet(4)». www.freebsd.org.
- ^ «Chapter 15. Timestamping». Access.redhat.com. Archived from the original on 2016-05-07. Retrieved 2014-02-14.
- ^ «The Linux Kernel Disabling HPET For Intel Coffee Lake». Phoronix.
- ^ a b Thomas Gleixner, x86: hpet: Work around hardware stupidity Archived 2012-07-09 at archive.today, commit merged for Linux kernel 2.6.36-rc5
- ^ a b Timekeeping in VMware Virtual Machines (for VMware vSphere 5.0, Workstation 8.0, Fusion 4.0), page 9
HPET был введен компаниями Intel и Microsoft в 2005 году. Это аппаратный таймер, который находится в пределах южного моста – компонента, отвечающего за связь процессора с жестким диском, видеокартой, оптическим приводом и другими устройствами для обеспечения максимальной пропускной способности.
Функции аппаратного таймера
Задачей таймера является подсчет количества системных событий, связанных, например, с доступом к жесткому диску. В момент, когда предварительно установленное значение будет достигнуто, создается прерывание. Процессор приостанавливает текущую программу и реализует связанный с новой командой код.
В частности, задача HPET состоит в синхронизации мультимедийных потоков, обеспечении плавного воспроизведения аудио и видео в операционной системе и разгрузке таймеров процессора.
Симптомом неправильной работы HPET (или полного его бездействия) являются, например, регулярные секундные зависания Windows. Компьютер со временем начинает медленно работать. В такой ситуации следует задуматься над изменением параметров указанной функции.
Сначала нужно определить, поддерживает ли ее в целом наша платформа. Здесь все просто – Windows Vista и новые версии поддерживают HPET, XP делает это частично, старые «окна» вообще не используют этот дополнительный таймер. В случае сомнений следует заглянуть в BIOS.
В дополнительных параметрах (Advanced) должна быть опция Configuration PCH или HPET Mode (название может немного отличаться в зависимости от версии BIOS и производителя материнской платы). Нам нужно найти High Precision Timer, ACPI HPET Table или похожее. Здесь можно ее включить или отключить.
Тем не менее Windows имеет тенденцию к перезаписи установленных параметров и использовать HPET, несмотря на настройки в Биосе. Поэтому после загрузки системы нужно открыть командную строку с правами администратора. Для ее вызова в Windows 10 кликните правой кнопкой на меню Пуск и выберите соответствующий пункт.
HPET сможете включить с помощью команды:
bcdedit /set useplatformclock true
Это единственный таймер, который активируется через Windows. Для его отключения используйте команду:
bcdedit /deletevalue useplatformclock
Тогда операционная система будет вынуждена использовать таймеры, встроенные непосредственно в процессор.
Важно: в этом обзоре речь не идет о том, что HPET должен быть полностью включен или выключен. Если вы столкнулись с проблемами зависания системы – медленно открываются программы или рывки в работе компьютера — то следует проверить, работает ли HPET, и попробовать разные настройки. Полученный результат будет зависеть от точного определения причины указанной проблемы.