Windows HPET (High Precision Event Timer) Efsanesi, Mikro Takılma ve DPC Gecikmesi

Ana sayfa › Forumlar › Eski Mikro Odalar Arşivi › Masaüstü Yayıncı Mikrofonları › Windows HPET (High Precision Event Timer) Efsanesi, Mikro Takılma ve DPC Gecikmesi

3 yazı görüntüleniyor - 1 ile 3 arası (toplam 3)
  • Yazar
    Yazılar
  • #73293
    User AvatarCrashOverride_06
    Katılımcı

    Selam millet, uzun süredir kafamı kurcalayan bir konuyu açmak istiyorum, umarım burada gerçekten bilenlerden cevap bulurum. Anakart BIOS’unda HPET’yi açıp kapatınca hem oyun içi micro-stuttering hem de DPC latency değerlerinde belirgin değişim olduğunu gözlemledim. Test ortamım: ASUS ROG Strix Z690, i7-12700K, BIOS’un son sürümü, Windows 11 23H2. RMA’dan önce HWiNFO ile DPC latency log’ları aldım; HPET kapalıyken 150-200 µs bandında dolan değer, HPET’yi açıp oyun oynayınca 800-1200 µs’ye çıkıyor ve özellikle sahne geçişlerinde takılmalar hissediliyor.

    Konuyu forumda gezerken “HPET açık olunca CPU clock’ları sabit kalır, lag azalır” diye bir efsane de gördüm ama tam tersi bir durum yaşıyorum. Sorum şu: 12. nesil Ryzen değil de Intel’de HPET ile DPC yükü arasında böyle bir ilişki gerçekten var mı, yoksa ben BIOS ayarlarında başka bir şeyle mi çatıştırdım? clock speed’lerde active/park durumu, yoksa timer interrupt’ları mı asıl tetikleyici? Deneyimi olan var mı, hangi ayarları denediğinizi detaylı anlatırsanız sevinirim.

    "user@workstation:~$ uptime"
    "16:42:11 up 48 days, 2 users, load average: 0.12, 0.08, 0.05"
    #75227
    User AvatarHuseyin B.
    Katılımcı

    HPET efsanesinin özünü anlamak için önce ne yaptığına bakmak lazım: HPET, chipset

    "[CPU: i5-12400F] • [GPU: RTX 4060 Ti 16GB] • [RAM: 64GB DDR5 6000MHz CL32]"
    #77325
    User AvatarCihan Y.
    Katılımcı

    HPET’yi kapatmak aslında çok basit ama çoğu kişi yanlış komutla uğraşıp sonuç alamıyor. Komut satırını yönetici olarak açıp bcdedit /set useplatformclock false komutunu çalıştırırsın, sonra makineyi yeniden başlatırsın. Bu komut Windows’un platform saati olarak HPET yerine procesörün kendi TSC (Time Stamp Counter) kaynağını kullanmasını sağlar. Mantık şudur: HPET aslında anakart üzerindeki ayrı bir zamanlayıcı çipidir ve her zamanlama kesmesi için CPU’nun bunu farklı bir bus üzerinden sorgulaması gerekir, bu da ek gecikme (DPC yükü) doğurur. Modern işlemcilerdeki HPET modülüne göre çok daha düşük gecikmeli, doğrudan CPU ile senkronize çalışan TSC’yi tercih etmek mantıklı. bcdedit /getvalue useplatformclock ile ayarın geçerli olduğunu teyit edebilirsin, 0 dönerse HPET kapanmış demektir.

    Pratikte bu ayarı attıktan sonra en kritik şey, değişimi somut veriyle kanıtlamaktır. LatencyMon’u arka planda çalıştır, birkaç oyun veya ağır bir görev süresince izle; sarı/kırmızı çubuklar ve “dpcdata” gibi high DPC/ISR rutinleri görüyorsan sorun HPET’den çok sürücüdedir, ama HPET kapatıp da hala mikrotakılma kalıyorsa muhtemelen C-states ya da power plan sorunu aramalıısın.

3 yazı görüntüleniyor - 1 ile 3 arası (toplam 3)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.

Neyi merak ediyorsun?

En az 3 karakter yazın.

Keşfet