HPET: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
(отменил вандализм скрывающимся за анонимным IP, Alex это не ты сл?) отмена правки 48173559 участника 46.242.91.105 ([[User_talk:46…
Строка 9:
 
== Применение ==
HPET способен создавать прерывания существенно большей точности, чем [[RTC]] и часто используется для синхронизации мультимедиа-приложений для обеспечения плавного воспроизведения и снижения необходимости рассчитывать временные отметки (например, с использованием инструкции [[RDTSC]]).
<br />Но, это применимо только для простых ОС вроде ДОС и возможно примитивных многозадачных real-time ОС, в более сложных - либо не используется, либо, даже просто теоретически, эффект минимален по целому ряду технических причин в сравнии со старыми методами, тем более RDTSC, при грамотной его реализации.
<br />Точнее эфеект даже отрицателен - в связи с худшей точности чем rdstsc, не требующей обращения к ОС KERNEL и обработки прерывания; большей CPU-нагрузкой при использовании вместо RDTSC - даже тот же QueryPerformanceCounter() в HPET режиме по заявлению MS<ref name=autogenerated1>[http://www.microsoft.com/whdc/system/sysinternals/mm-timer.mspx Guidelines For Providing Multimedia Timer Support<!-- Заголовок добавлен ботом -->]</ref> всего на 23% быстрее PM реализации - т.е.ничто, в сравнении с разрекламированными увеличениями производительности, учитывая сумашедший overhead в том же PM режиме (<small>всего 6301 calls/s ...причём это ещё на очень "неслабом" оборудовании</small>); для разработчиков ОС и затем их пользователей ещё и головную боль с драйверами; потерей совместимости с предыдущими версиями ОС(<small>тем более в сл.MS - это не просто версии, а "отдельно продаваемые ОС"</small>) не поддерживающими HPET; либо повышением времени разработки для обеспечения этой совместимости; ...
 
== Точность ==
HPET планировался как замена программируемому интервальному таймеру [[Intel 8254]] (PIT, {{lang-en|Programmable interval timer}}) и возможностям [[RTC]] ({{lang-en|Real Time Clock}}) по генерации прерываний. В сравнении с прочими таймерами HPET имеет более высокую разрешающую способность (таймеры HPET работают минимум на частоте 10 МГц) и большую интервальную способность (число, по которому срабатывает таймер хранится в 64-битном счётчике).<ref name="HPETspec"/>.
 
8254 и RTC способны аналогично HPET работать в режиме единичного срабатывания, однако, процесс их настройки столь медленен, что его не используют в областях, требующих высокой разрешающей способности счётчика;<ref>[http://www.microsoft.com/whdc/system/sysinternals/mm-timer.mspx Guidelinesname=autogenerated1 For Providing Multimedia Timer Support<!-- Заголовок добавлен ботом -->]</ref> вместо этого RTC/8254 обычно используются в периодическом режиме с малыми интервалами (порядка нескольких миллисекунд) с «пропуском» нужного количества интервалов. Подобное приводит к появлению частых (раз в несколько миллисекунд) прерываний, даже если они не нужны программе. При использовании HPET дополнительные прерывания не нужны, так как настройка HPET для единичного срабатывания существенно проще (и требует меньшего времени(<small>правда только для простых ОС т.к.сложные благодаря дополнительному переключению в ring-0 сами создают overhead...</small>)), чем для RTC/8254.
 
== Поддержка ==
Строка 31 ⟶ 33 :
* [[FreeBSD]]
 
== ПримечанияИсточники ==
<references />
{{примечания}}
 
[[Категория:Компьютерное аппаратное обеспечение]]