Hopp til innhold

XSAVEOPT

ArkitekturreferanseFeex

XSAVEOPT er et optimalisert medlem av x86-familien for lagring av utvidet tilstand. De tillatte optimaliseringene er basert på den arkitektoniske tilstandshåndteringskontrakten og gjør den ikke til en vilkårlig instruksjon for bufferkopiering.

Dette må du vite

XSAVEOPT er et optimalisert medlem av x86-familien for lagring av utvidet tilstand. De tillatte optimaliseringene er basert på den arkitektoniske tilstandshåndteringskontrakten og gjør den ikke til en vilkårlig instruksjon for bufferkopiering.

Slik fungerer det

Sammenlignet med en direkte tilstandslagring kan XSAVEOPT unngå å skrive enkelte komponenter i samsvar med initialiserings- og modifikasjonssporing. Programvare må følge de definerte reglene for avbildningsinitialisering og gjenoppretting. En uberørt byte i målet er ikke nødvendigvis et bevis på at en komponent ble lagret feil.

Hvor det er nyttig

En konteksthåndteringsbane i operativsystemet kan redusere unødvendig minnetrafikk når utvidet registertilstand ikke er endret. Applikasjoner bør stole på operativsystemets implementering med mindre de har et dokumentert krav til tilstandshåndtering på lavt nivå.

Slik kontrolleres støtte og aktivering

Når XSAVE og det aktuelle bladområdet er tilgjengelig, lister CPUID.0DH.01H:EAX bit 0 opp XSAVEOPT. Kontroller aktiverte tilstandskomponenter og bufferkrav separat, og følg arkitekturens foreskrevne paring av lagring/gjenoppretting.

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

XSAVEOPT er ikke XSAVEC eller XSAVES og innebærer ikke ethvert senere format for tilstandslagring. Gjenbruk av en buffer uten å respektere kontrakten for tilstandsavbildning kan føre til feilaktige gjenopprettinger. Optimaliseringen etablerer ikke ytelsesgevinster på applikasjonsnivå.

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

  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 · 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.

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?