Naar inhoud springen

RDTSCP

ArchitectuurreferentieFeex

RDTSCP leest de x86 time-stamp counter en een aanvullende processor-id-waarde met gedefinieerde volgorde-eigenschappen. Het is geen volledig serialiserende instructie of een automatisch benchmarkharnas.

Wat u moet weten

RDTSCP leest de x86 time-stamp counter en een aanvullende processor-id-waarde met gedefinieerde volgorde-eigenschappen. Het is geen volledig serialiserende instructie of een automatisch benchmarkharnas.

Hoe het werkt

RDTSCP retourneert de teller in EDX:EAX en de IA32_TSC_AUX-waarde in ECX. De volgorderegels beperken enkele eerdere bewerkingen, maar latere instructies kunnen beginnen voordat het lezen is voltooid, en eerdere stores hebben aanvullende zichtbaarheidsoverwegingen. De juiste fence-volgorde hangt af van wat de meting beoogt te begrenzen.

Waar het nuttig is

Low-level timingcode kan de aanvullende waarde gebruiken om te helpen bij het detecteren van een processorwissel wanneer het besturingssysteem dit op de juiste manier configureert. Een robuuste benchmark beheert nog steeds de compilatie, opwarming van de werklast, interrupts, planning, tellerkalibratie en de bewerkingen die worden geordend.

Ondersteuning en activering controleren

CPUID.80000001H:EDX bit 27 enumereert RDTSCP. Verifieer het tellerbeleid in het daadwerkelijke besturingssysteem of de hypervisor en gebruik een gedocumenteerde timingmethode met de vereiste fences. Geef de voorkeur aan de monotone klok van het besturingssysteem voor de verstreken tijd van applicaties.

Kies een klok op basis van de vraag: verstreken tijd, thread-CPU-tijd en cycli zijn verschillende metingen. De klokinterfaces van het besturingssysteem bevatten platformbeleid dat een ruwe instructiesample kan omzeilen.

Wat de functie niet vaststelt

RDTSCP-ondersteuning biedt geen garantie voor invariant of gesynchroniseerd TSC-gedrag. De interpretatie van de aanvullende waarde is door het besturingssysteem gedefinieerd. Het aftrekken van twee metingen zonder inzicht in de volgorde kan een ander interval meten dan bedoeld.

Compatibiliteit en prestaties in de praktijk

Een benchmark vereist ook correcte compilergrenzen, opwarming, representatieve gegevens en inzicht in migratie en planning. Het herhalen van een slecht geordende meting maakt deze niet nauwkeurig. Vermeld de omgeving en onzekerheid bij elk resultaat.

Een praktische controlelijst voor verificatie

  1. Noteer het exacte processor- of platformmodel en de betrokken applicatie-, OS- en runtimeversies. Behoud de formulering van de daadwerkelijke fout of vereiste.
  2. Raadpleeg de fabrikantdocumentatie voor dat exacte model en inspecteer vervolgens de effectieve capaciteit en ingeschakelde status in de omgeving waarin het programma draait.
  3. Vergelijk elke vereiste van de geselecteerde binary of backend. Een gelijknamige functie, alias of breed technologielabel is niet voldoende.
  4. Bevestig dat de applicatie de bedoelde implementatie heeft geselecteerd. Gebruik de gedocumenteerde diagnostiek en een ondersteunde terugvaloptie wanneer niet aan de vereisten wordt voldaan.
  5. Voer één ondersteunde wijziging tegelijk door en herhaal dezelfde werklast. Houd de oorspronkelijke configuratie en het herstelpad beschikbaar.

Als de functie wordt vermeld maar software deze niet kan gebruiken

Begin bij het exacte falende onderdeel. Een hardwaredatabase beschrijft geregistreerde capaciteiten; het besturingssysteem of de hypervisor kan een andere effectieve omgeving tonen. Een fout met betrekking tot een ongeldige instructie vereist ook onderzoek van de daadwerkelijke foutieve instructie en binary-build, omdat beschadiging of een niet-gerelateerde niet-ondersteunde instructie een vergelijkbaar symptoom kan veroorzaken.

Installeer de applicatie-, driver- of runtimeversie die voor het exacte platform wordt ondersteund, en gebruik indien nodig de gedocumenteerde basislijn of fallback-build van de leverancier. Een software-update kan geen instructie creëren die de processor mist. Wijzigingen in firmware en beveiligingsbeleid moeten de procedure en het herstelplan van de systeemfabrikant volgen in plaats van een generiek optimalisatierecept.

Bronnen en reikwijdte van deze uitleg

Intel 64 and IA-32 Architectures Software Developer's Manual

Deze referenties stellen architecturaal gedrag en softwarevereisten vast. Ze verifiëren niet onafhankelijk elke functiewaarde op een gekoppelde hardwaremodelpagina. Gebruik voor modelondersteuning het fabrikantenbewijs van die pagina en controleer de effectieve systeemconfiguratie. Dit artikel biedt geen benchmark, certificering of onafhankelijke beoordelingsdatum.

Bronnen en verificatie

Redactioneel eigendom: Feex. Er is geen onafhankelijke beoordelingsdatum vastgelegd. Hoe wij onderzoek doen.

Was dit artikel nuttig?

Een ja of nee is voldoende. Kies desgewenst een reden of voeg een korte opmerking toe.

Was dit artikel nuttig?