A HPET ( angolul High Precision Event Timer , High Precision Event Timer) a PC-kompatibilis számítógépeken használt időzítő típusa . Az Intel és a Microsoft közösen fejlesztette ki , és 2005 óta került bevezetésre a lapkakészletekbe . Korábban az Intel multimédiás időzítőként emlegette ( eng. multimedia timer ) [1] . A HPET nevet azért választották, hogy elkerüljük a Windows 3.0-ban bevezetett szoftveres időzítőkkel való összetéveszthetőséget, amelyeket Multimédiás időzítőknek is neveznek [2] .
A régebbi operációs rendszerek nem támogatják a HPET-et, és csak régebbi időzítőket (például RTC ) használhatnak.
A HPET blokk független növekvő számlálókból áll (blokkonként 3-tól 32-ig), rögzített számlálási sebességgel. Minden számláló egy komparátorból és egy küszöbregiszterből áll. Összesen legfeljebb 8 HPET blokk lehet. Minden komparátor kiválthat egy megszakítást abban a pillanatban, amikor a számláló elér egy előre meghatározott értéket egy regiszterben.
Minden időzítő konfigurálható egyszeri vagy szakaszos működésre. Egylövés módban az időzítő egyszer okoz megszakítást (amikor eléri a regiszterben szereplő értéket), periodikus módban a megszakítás után az időzítő újra elkezdi a számlálást, és meghatározott időközönként megszakításokat generál.
A HPET az RTC -nél lényegesen nagyobb pontosságú megszakításokat képes létrehozni az operációs rendszer betöltésével, és gyakran használják multimédiás programok szinkronizálására, hogy biztosítsák a zökkenőmentes lejátszást és csökkentsék az időbélyegek kiszámításának szükségességét (például az RDTSC utasítás használatával ).
A HPET-et az Intel 8254 programozható időzítő (PIT ) és az RTC ( valós idejű óra ) megszakításgenerálási képességeinek helyettesítésére tervezték . Más időzítőkkel összehasonlítva a HPET nagyobb felbontással (a HPET időzítők legalább 10 MHz-en működnek) és nagyobb intervallum-képességgel rendelkezik (az időzítő indítási száma egy 64 bites számlálóban tárolódik). [1] .
A 8254 és az RTC a HPET-hez hasonlóan egylövetű működésre képesek, beállítási folyamatuk azonban olyan lassú, hogy a nagy méteres felbontást igénylő területeken nem használják; [3] Ehelyett az RTC/8254-eket jellemzően szakaszos üzemmódban használják rövid időközönként (néhány ezredmásodperces nagyságrendben), a kívánt számú intervallum „kihagyásával”. Ez gyakori (néhány ezredmásodpercenkénti) megszakítások megjelenéséhez vezet, még akkor is, ha a programnak nincs rájuk szüksége. HPET használatakor nincs szükség további megszakításokra, mivel a HPET beállítása egyetlen művelethez sokkal egyszerűbb (és kevesebb időt igényel), mint az RTC / 8254 esetében.
A HPET megjelenése előtt kifejlesztett operációs rendszerek nem tudják használni a HPET-et, és csak régebbi mérőkkel működnek. Az újabb operációs rendszerek általában képesek a HPET támogatására.
A HPT nem támogatott a következőkig:
A Windows XP SP2 hivatalosan támogatja a HPET-et (eszközként ismeri fel, és rendelkezik hozzá illesztőprogramokkal), de nem használja.
A következő operációs rendszerek támogatják és használják a HPET-et: