Hopp til innhold

Invariant TSC

ArkitekturreferanseFeex

Invariant TSC beskriver en tidsstempelteller (time-stamp counter) hvis hastighet forblir konstant på tvers av de arkitektoniske strøm- og frekvenstilstandene som dekkes av funksjonen. Den er ikke en direkte måling av gjeldende kjernefrekvens.

Dette må du vite

Invariant TSC beskriver en tidsstempelteller (time-stamp counter) hvis hastighet forblir konstant på tvers av de arkitektoniske strøm- og frekvenstilstandene som dekkes av funksjonen. Den er ikke en direkte måling av gjeldende kjernefrekvens.

Slik fungerer det

Tidsstempeltelleren øker med en plattformdefinert hastighet. Invariant atferd skiller denne hastigheten fra endringer i kjernens driftsfrekvens. Konvertering av tikk til medgått tid krever en gyldig frekvensreferanse, mens sammenligning av verdier på tvers av prosessorer eller virtuelle maskiner også krever synkroniserings- og virtualiseringsgarantier.

Hvor det er nyttig

Et kjøretidsmiljø kan bruke en egnet teller som en del av sin implementasjon for høyoppløselig tidsmåling. Å dele tellerforskjellen for en kort arbeidsbelastning på en nominell CPU GHz-verdi kan bli feil, fordi TSC-frekvens og frekvensen til kjernen som eksekverer er ulike størrelser.

Slik kontrolleres støtte og aktivering

CPUID.80000007H:EDX bit 8 angir invariant TSC under den relevante arkitekturdefinisjonen. Foretrekk operativsystemets støttede monotone klokke for vanlig tidsmåling, ettersom den kan ta høyde for plattform- og virtualiseringspolicy.

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

Invariant fastslår ikke i seg selv synkronisering på tvers av sokler, monoton oppførsel over VM-migrering, serialisering rundt målte instruksjoner eller fravær av planleggingsforsinkelser. En rå telleravlesning er ikke en prosentvis CPU-utnyttelse.

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

  1. Registrer den nøyaktige prosessor- eller plattformmodellen og de involverte applikasjons-, OS- og kjøretidsversjonene. Bevar ordlyden i den faktiske feilen eller kravet.
  2. Sjekk produsentreferansen for akkurat den modellen, og undersøk deretter den faktiske kapasiteten og aktiverte tilstanden i miljøet der programmet kjører.
  3. Sammenlign ethvert krav til den valgte binærfilen eller baksiden. En lignende navngitt funksjon, et alias eller en bred teknologietikett er ikke tilstrekkelig.
  4. Bekreft at applikasjonen valgte den tiltenkte implementeringen. Bruk dens dokumenterte diagnostikk og en støttet reservemetode når kravene ikke er oppfylt.
  5. 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.

Var denne artikkelen nyttig?

Et ja eller nei holder. Velg en grunn hvis du vil, eller legg til en kort kommentar.

Var denne artikkelen nyttig?