RDTSCP
RDTSCP leser x86-tidsstempeltelleren og en ekstra prosessoridentifikatorverdi med definerte rekkefølgeegenskaper. Det er ikke en fullt serialiserende instruksjon eller et automatisk testmiljø for ytelsesmåling.
Dette må du vite
RDTSCP leser x86-tidsstempeltelleren og en ekstra prosessoridentifikatorverdi med definerte rekkefølgeegenskaper. Det er ikke en fullt serialiserende instruksjon eller et automatisk testmiljø for ytelsesmåling.
Slik fungerer det
RDTSCP returnerer telleren i EDX:EAX og IA32_TSC_AUX-verdien i ECX. Rekkefølgereglene begrenser noen tidligere operasjoner, men senere instruksjoner kan starte før lesingen fullføres, og tidligere lagringer har ytterligere synlighetshensyn. Den korrekte sekvensen av minneskranker (fences) avhenger av hva målingen har til hensikt å avgrense.
Hvor det er nyttig
Tidtakingskode på lavt nivå kan bruke den ekstra verdien til å oppdage et prosessorbytte når operativsystemet konfigurerer den hensiktsmessig. En robust ytelsestest kontrollerer likevel kompilering, oppvarming av arbeidsbelastning, avbrudd, trådplanlegging, tellerkalibrering og operasjonene som ordnes i rekkefølge.
Slik kontrolleres støtte og aktivering
CPUID.80000001H:EDX bit 27 enumererer RDTSCP. Verifiser tellerpolicyen i det faktiske operativsystemet eller hypervisoren og bruk en dokumentert tidtakingsmetode med de påkrevde skrankene. Foretrekk operativsystemets monotone klokke for forløpt tid i applikasjoner.
Velg en klokke ut fra problemstillingen: medgått tid, tråd-CPU-tid og sykluser er ulike målinger. Operativsystemets klokkegrensesnitt inkluderer plattformpolicy som en rå instruksjonsavlesning kan omgå.
Hva funksjonen ikke etablerer
Støtte for RDTSCP etablerer ikke invariant eller synkronisert TSC-oppførsel. Tolkningen av den ekstra verdien er definert av operativsystemet. Å subtrahere to målinger uten å forstå rekkefølgen kan måle et annet intervall enn tiltenkt.
Kompatibilitet og ytelse i praksis
En ytelsestest trenger også korrekte kompilatorgrenser, oppvarming, representative data og en forståelse av migrering og trådplanlegging. Å gjenta en dårlig ordnet måling gjør den ikke nøyaktig. Rapporter miljøet og usikkerheten sammen med ethvert resultat.
En praktisk sjekkliste for verifisering
- Registrer den nøyaktige prosessor- eller plattformmodellen og de involverte applikasjons-, OS- og kjøretidsversjonene. Bevar ordlyden i den faktiske feilen eller kravet.
- Sjekk produsentreferansen for akkurat den modellen, og undersøk deretter den faktiske kapasiteten og aktiverte tilstanden i miljøet der programmet kjører.
- Sammenlign ethvert krav til den valgte binærfilen eller baksiden. En lignende navngitt funksjon, et alias eller en bred teknologietikett er ikke tilstrekkelig.
- Bekreft at applikasjonen valgte den tiltenkte implementeringen. Bruk dens dokumenterte diagnostikk og en støttet reservemetode når kravene ikke er oppfylt.
- Gjør én støttet endring om gangen og gjenta den samme arbeidsbelastningen. Hold den opprinnelige konfigurasjonen og gjenopprettingsstien tilgjengelig.
Hvis funksjonen er oppført, men programvare ikke kan bruke den
Start med den nøyaktige komponenten som feiler. En maskinwaredatabase beskriver registrert kapasitet; operativsystemet eller hypervisoren kan eksponere et annet reelt miljø. En feil om ulovlig instruksjon krever også undersøkelse av den faktiske feilende instruksjonen og binærbyggingen, fordi korrupsjon eller en urelatert, ustøttet instruksjon kan gi et lignende symptom.
Installer applikasjonen, driveren eller kjøretidsversjonen som støttes for den nøyaktige plattformen, og bruk om nødvendig leverandørens dokumenterte grunnlinje- eller reservebygg. En programvareoppdatering kan ikke opprette en instruksjon som prosessoren mangler fastvare. Endringer i fastvare og sikkerhetspolicy bør følge systemprodusentens prosedyre og en gjenopprettingsplan i stedet for en generisk optimaliseringsoppskrift.
Kilder og omfang for denne forklaringen
Intel 64 and IA-32 Architectures Software Developer's Manual
Disse referansene etablerer arkitektonisk oppførsel og programvarekrav. De verifiserer ikke uavhengig hver funksjonsverdi på en koblet maskinvaremodells side. For modellstøtte, bruk den sidens produsentdokumentasjon og kontroller den reelle systemkonfigurasjonen. Denne artikkelen oppgir ikke en referansemåling, sertifisering eller dato for uavhengig gjennomgang.
Kilder og verifisering
Redaksjonelt eierskap: Feex. Ingen uavhengig vurderingsdato er registrert. Hvordan vi gjør undersøkelser.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Bind 1 og 2 beskriver de navngitte instruksjonsfamiliene og CPUID; bind 3 beskriver tilstands-, sidevekslings-, VMX- og beskyttelseskontroller. Arkitekturdokumentasjon etablerer ikke støtte for en bestemt modell.
Var denne artikkelen nyttig?
Et ja eller nei holder. Velg en grunn hvis du vil, eller legg til en kort kommentar.
Takk. Det hjelper oss med å forbedre denne siden.