Rdtsc

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 29. prosince 2019; kontroly vyžadují 5 úprav .

rdtsc ( Read Time Stamp Counter ) je instrukce assembleru  pro platformy x86 a x86_64, která čte čítač TSC ( Time Stamp Counter ) a vrací 64bitový počet hodinových cyklů v registrech EDX: EAX od posledního resetu procesoru .

rdtsc je podporován na procesorech Pentium (a kompatibilních) a novějších. Operační kód : 0F 31 [1] .

rdtscp [2] je podporován od Intel Nehalem a AMD Family 0x0F [3] . Operační kód: 0F 01 F9 [4] .

Použití

rdtsc se nejčastěji používá:

Výhody

Ve srovnání s rozhraními API poskytovanými operačním systémem, jako je WINAPI::QueryPerformanceCounter() nebo gettimeofday() instrukce rdtsc/rdtscp mohou poskytnout následující výhody:

Problémy s používáním

K vyřešení mnoha problémů se doporučuje opravit vlákno na konkrétním procesoru ( afinita cpu ) a zakázat technologie automatické změny frekvence (technologie úspory energie a dynamické změny výkonu).

Poznámky

  1. Intel® 64 and IA-32 Architectures Software Developer's  Manual . — Sv. 2 (Odkaz na sadu instrukcí). - S. 4-301.
  2. Serializační verze instrukce rdtsc, která také čte IA32_TSC_AUX MSR, která často ukládá číslo jádra.
  3. rdtscp . Získáno 1. listopadu 2011. Archivováno z originálu 2. ledna 2012.
  4. Intel® 64 and IA-32 Architectures Software Developer's  Manual . — Sv. 2 (Odkaz na sadu instrukcí). - S. 4-303.
  5. Windows Anti-Debug Reference | Komunita Symantec Connect . Datum přístupu: 30. prosince 2011. Archivováno z originálu 14. ledna 2012.
  6. Snímek 58 Anti-Debugging založený na načasování Archivováno 4. března 2012.
  7. Tom St. Denis, Simon Johnson, Kryptografie pro vývojáře Archivováno 9. října 2021 na Wayback Machine .
  8. Jak optimalizovat pro rodinu mikroprocesorů Pentium Archivováno 6. ledna 2012 na Wayback Machine // 1996-2000 Agner Fog. Kapitola "30. Rychlost testování“, archivováno 19. listopadu 2011.
  9. Afinita k ICE . Získáno 19. října 2011. Archivováno z originálu 7. září 2011.

Odkazy