XSAVE
XSAVE er den utvidbare x86-mekanismen for å lagre prosessortilstand som vektorregistre. Maskinvarestøtte, OS-aktivering og de aktiverte tilstandskomponentene er separate spørsmål.
Dette må du vite
XSAVE er den utvidbare x86-mekanismen for å lagre prosessortilstand som vektorregistre. Maskinvarestøtte, OS-aktivering og de aktiverte tilstandskomponentene er separate spørsmål.
Slik fungerer det
XSAVE-arkitekturen bruker et opplistet tilstandsoppsett og masker for å beskrive hvilke komponenter som er aktivert og lagret. CPUID-blad 0DH beskriver støttede komponenter og størrelser. XCR0 styrer kvalifiserte brukertilstandskomponenter, mens OSXSAVE forteller programvaren at operativsystemet har aktivert XSAVE-miljøet.
Hvor det er nyttig
Et kjøretidsmiljø som skal avgjøre om det kan bruke AVX, trenger både prosessorens AVX-bit og OS-aktivert XMM-/YMM-tilstand. En kontekst- eller signalimplementering må tildele plass i henhold til den aktiverte tilstanden i stedet for å anta at en eldre buffer med fast størrelse er nok.
Slik kontrolleres støtte og aktivering
Sjekk CPUID.01H:ECX bit 26 for XSAVE og bit 27 for OSXSAVE. Først da kan XGETBV brukes som tillatt og de nødvendige XCR0-bitene inspiseres. List opp blad 0DH for tilstandsoppsett i stedet for å hardkode en størrelse fra en annen maskin.
Tilstandshåndteringsfasiliteter er primært et ansvar for OS og kjøretidsmiljø. Buffere, masker, komponentstørrelser, justering og gjenopprettingsregler må samsvare med arkitekturen og kjøringsmodusen. Å lagre bare et delsett kan korrumpere kode som bruker ytterligere aktivert tilstand.
Hva funksjonen ikke etablerer
XSAVE-støtte betyr ikke i seg selv at AVX, AVX-512 eller AMX er brukbare. XGETBV må ikke brukes før påkrevd støtte og OS-aktivering er etablert. Ulike instruksjoner i XSAVE-familien har egne regler for opplisting og oppsett.
Kompatibilitet og ytelse i praksis
Funksjonsdeteksjon på applikasjonsnivå bør bruke et vedlikeholdt kjøretidsgrensesnitt når det er mulig. Skill maskinvarestøtte fra OS-aktivering og, for dynamiske funksjoner, prosesstillatelse. En CPU-etikett alene kan ikke fastslå at en vilkårlig lagre/gjenopprette-sekvens er korrekt.
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 · Linux-kjerne: bruk av XSTATE-funksjoner i brukerrom
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.
- Linux-kjerne: bruk av XSTATE-funksjoner i brukerrom · OS-aktivert vektortilstand, dynamisk aktivert flisetilstand, signalstakk-krav og AMX-tillatelsesflyt. Linux-spesifikk oppførsel er ikke et løfte om et annet operativsystem.
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.