HPET ( anglicky High Precision Event Timer , vysoce přesný časovač událostí) je typ časovače používaný v počítačích kompatibilních s PC . Společně vyvinutý Intel a Microsoft a byl zaveden do čipových sad od roku 2005. Dříve Intel označovaný jako multimediální časovač ( angl. multimedia timer ) [1] . Název HPET byl zvolen proto, aby nedošlo k záměně se softwarovými časovači zavedenými ve Windows 3.0, nazývanými také Multimediální časovače [2] .
Starší operační systémy nepodporují HPET a mohou používat pouze starší časovače (jako RTC ).
Blok HPET se skládá z nezávislých inkrementačních čítačů (od 3 do 32 na blok) s pevnou četností počtu. Každý čítač se skládá z komparátoru a prahového registru. Celkem může být až 8 bloků HPET. Každý komparátor může spustit přerušení v okamžiku, kdy čítač dosáhne předem určené hodnoty v registru.
Každý časovač lze nakonfigurovat pro jednu operaci nebo přerušovaný provoz. V jednorázovém režimu časovač způsobí přerušení jednou (při dosažení hodnoty v registru), v periodickém režimu po přerušení začne časovač znovu počítat a generuje přerušení v určených intervalech.
HPET je schopen vytvářet přerušení s výrazně větší přesností než RTC načtením operačního systému a často se používá k synchronizaci multimediálních programů, aby se zajistilo plynulé přehrávání a snížila se potřeba počítat časová razítka (například pomocí instrukce RDTSC ).
HPET byl plánován jako náhrada za programovatelný intervalový časovač Intel 8254 (PIT ) a schopnost generování přerušení RTC ( hodiny v reálném čase ) . Ve srovnání s jinými časovači má HPET vyšší rozlišení (časovače HPET pracují minimálně na 10 MHz) a větší intervalovou schopnost (číslo, o které se časovač spustí, je uloženo v 64bitovém čítači). [1] .
8254 a RTC jsou schopny jednorázového provozu podobně jako HPET, ale jejich proces nastavení je tak pomalý, že se nepoužívá v oblastech vyžadujících vysoké rozlišení metru; [3] Místo toho se RTC/8254 obvykle používají v přerušovaném režimu v krátkých intervalech (řádově několik milisekund) s „přeskakováním“ požadovaného počtu intervalů. To vede k výskytu častých (každých několik milisekund) přerušení, i když je program nepotřebuje. Při použití HPET nejsou potřeba další přerušení, protože nastavení HPET pro jednu operaci je mnohem jednodušší (a vyžaduje méně času) než pro RTC / 8254.
Operační systémy vyvinuté před příchodem HPET nemohou používat HPET a jsou schopny pracovat pouze se staršími měřiči. Novější operační systémy jsou obvykle schopny podporovat HPET.
HPT není podporováno do:
Windows XP SP2 formálně podporuje HPET (rozpozná jej jako zařízení a má pro něj ovladače), ale nepoužívá jej.
HPET podporují a používají následující operační systémy: