RDTSCP
RDTSCP čte čítač časových razítek x86 (time-stamp counter) a pomocnou identifikační hodnotu procesoru s definovanými vlastnostmi řazení instrukcí. Nejde o plně serializující instrukci ani o automatický srovnávací rámec.
Co potřebujete vědět
RDTSCP čte čítač časových razítek x86 (time-stamp counter) a pomocnou identifikační hodnotu procesoru s definovanými vlastnostmi řazení instrukcí. Nejde o plně serializující instrukci ani o automatický srovnávací rámec.
Jak to funguje
RDTSCP vrací hodnotu čítače v EDX:EAX a hodnotu IA32_TSC_AUX v ECX. Její pravidla pro řazení omezují některé předchozí operace, avšak pozdější instrukce mohou začít ještě před dokončením čtení a předchozí zápisy do paměti vyžadují další ohledy na viditelnost. Správná sekvence bariér (fence) závisí na tom, co má měření ohraničovat.
Kde je funkce užitečná
Nízkoúrovňový kód pro měření času může použít pomocnou hodnotu k detekci změny procesoru, pokud ji operační systém odpovídajícím způsobem nakonfiguruje. Robustní benchmark stále vyžaduje kontrolu nad kompilací, zahřátím zátěže, přerušeními, plánováním, kalibrací čítače a operacemi, jejichž pořadí se řídí.
Jak ověřit podporu a aktivaci
CPUID.80000001H:EDX bit 27 enumeruje RDTSCP. Ověřte zásadu správy čítače v konkrétním operačním systému nebo hypervizoru a použijte zdokumentovanou metodu měření s požadovanými bariérami. Pro měření uplynulého času aplikace dávejte přednost monotónním hodinám operačního systému.
Zvolte hodiny podle daného požadavku: uplynulý čas, procesorový čas vlákna a cykly jsou různá měření. Hodinová rozhraní operačního systému zahrnují zásady platformy, které může přímý vzorek instrukce obejít.
Co tato funkce nezajišťuje
Podpora RDTSCP nezaručuje invariantní ani synchronizované chování TSC. Interpretace pomocné hodnoty je definována operačním systémem. Odečtení dvou vzorků bez porozumění pravidlům řazení může vést ke změření jiného intervalu, než byl zamýšlen.
Kompatibilita a výkon v praxi
Benchmark vyžaduje také správné hranice kompilátoru, zahřátí, reprezentativní data a pochopení migrace a plánování. Opakování špatně uspořádaného měření nezajistí jeho přesnost. S jakýmkoli výsledkem uveďte prostředí a nejistotu měření.
Praktický kontrolní seznam pro ověření
- Zaznamenejte přesný model procesoru nebo platformy a použité verze aplikace, operačního systému a běhového prostředí. Uchovejte přesné znění chybové zprávy nebo požadavku.
- Zkontrolujte dokumentaci výrobce pro daný konkrétní model a poté prověřte skutečně dostupnou kapacitu a stav aktivace v prostředí, kde program běží.
- Porovnejte veškeré požadavky vybraného binárního souboru nebo backendu. Podobně pojmenovaná funkce, alias nebo obecné technologické označení nestačí.
- Ověřte, že aplikace vybrala zamýšlenou implementaci. Pokud nejsou požadavky splněny, použijte její zdokumentovanou diagnostiku a podporované náhradní řešení.
- Provádějte vždy jen jednu podporovanou změnu a zopakujte identickou zátěž. Původní konfiguraci a postup obnovy mějte neustále k dispozici.
Pokud je funkce uvedena, ale software ji nemůže použít
Začněte u přesné komponenty, u níž dochází k selhání. Databáze hardwaru popisuje zaznamenané schopnosti; operační systém nebo hypervizor však může vystavit odlišné efektivní prostředí. Chyba neplatné instrukce vyžaduje také prozkoumání skutečné chybující instrukce a sestavení binárního souboru, protože poškození dat nebo nesouvisející nepodporovaná instrukce mohou vyvolat podobný projev.
Nainstalujte verzi aplikace, ovladače nebo běhového prostředí podporovanou pro danou platformu a v případě potřeby použijte výrobcem zdokumentované základní nebo náhradní sestavení. Aktualizace softwaru nemůže vytvořit instrukci, kterou procesor fyzicky postrádá. Změny firmwaru a zásad zabezpečení by se měly řídit postupem výrobce systému a plánem obnovy, nikoli obecným návodem na optimalizaci.
Zdroje a rozsah tohoto vysvětlení
Intel 64 and IA-32 Architectures Software Developer's Manual
Tyto referenční dokumenty stanovují architektonické chování a softwarové požadavky. Neověřují nezávisle každou hodnotu funkce na odkazované stránce hardwarového modelu. Informace o podpoře konkrétního modelu čerpejte z podkladů výrobce na příslušné stránce a zkontrolujte platnou konfiguraci systému. Tento článek neposkytuje benchmark, certifikaci ani datum nezávislého přezkumu.
Zdroje a ověření
Redakční vlastnictví: Feex. Není zaznamenáno žádné datum nezávislého přezkoumání. Jak provádíme výzkum.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Svazky 1 a 2 popisují jmenovité rodiny instrukcí a CPUID; Svazek 3 popisuje stav, stránkování, VMX a řízení ochrany. Architektonická dokumentace nepotvrzuje podporu pro konkrétní model.
Byl tento článek užitečný?
Stačí ano nebo ne. Pokud chcete, vyberte důvod nebo přidejte krátkou poznámku.
Děkujeme. Pomáhá nám to tuto stránku vylepšovat.