Hoppa till innehåll

XSAVEOPT

ArkitekturreferensFeex

XSAVEOPT är en optimerad medlem i x86-familjen för att spara utökat tillstånd. Dess tillåtna optimeringar förlitar sig på det arkitektoniska kontraktet för tillståndshantering och gör den inte till en godtycklig buffertkopieringsinstruktion.

Vad du behöver veta

XSAVEOPT är en optimerad medlem i x86-familjen för att spara utökat tillstånd. Dess tillåtna optimeringar förlitar sig på det arkitektoniska kontraktet för tillståndshantering och gör den inte till en godtycklig buffertkopieringsinstruktion.

Hur det fungerar

Jämfört med en enkel tillståndssparning kan XSAVEOPT undvika att skriva vissa komponenter baserat på initierings- och ändringsspårning. Programvara måste följa de definierade reglerna för avbildningsinitiering och återställning. En orörd byte på målet är inte nödvändigtvis ett bevis på att en komponent sparades felaktigt.

Där den är användbar

En väg för kontexthantering i operativsystemet kan minska onödig minnestrafik när det utökade registertillståndet inte har ändrats. Applikationer bör förlita sig på operativsystemets implementering såvida de inte har ett dokumenterat lågnivåkrav på tillståndshantering.

Hur man kontrollerar stöd och aktivering

När XSAVE och det lämpliga bladintervallet är tillgängliga räknar CPUID.0DH.01H:EAX bit 0 upp XSAVEOPT. Kontrollera aktiverade tillståndskomponenter och buffertkrav separat, och följ arkitekturens föreskrivna parning av spara/återställ.

Funktioner för tillståndshantering är i första hand ett ansvar för operativsystem och körtidsmiljöer. Buffertar, masker, komponentstorlekar, justering och återställningsregler måste stämma överens med arkitekturen och exekveringsläget. Att bara spara en delmängd kan skada kod som använder ytterligare aktiverat tillstånd.

Vad funktionen inte fastställer

XSAVEOPT är inte XSAVEC eller XSAVES och medför inte varje senare tillståndssparande format. Att återanvända en buffert utan att respektera kontraktet för tillståndsavbildningen kan leda till felaktiga återställningar. Optimeringen fastställer inte prestandavinster på applikationsnivå.

Kompatibilitet och prestanda i praktiken

Funktionsdetektering på applikationsnivå bör använda ett underhållet körtidsgränssnitt när det är möjligt. Skilj hårdvarustöd från aktivering i operativsystemet och, för dynamiska funktioner, processbehörighet. En processoretikett ensam kan inte fastställa att en godtycklig spara-/återställningssekvens är korrekt.

En praktisk checklista för verifiering

  1. Registrera den exakta processor- eller plattformsmodellen samt de applikations-, OS- och runtime-versioner som berörs. Behåll formuleringen av det faktiska felet eller kravet.
  2. Kontrollera tillverkarens referens för den exakta modellen och granska sedan den faktiska kapaciteten och det aktiverade tillståndet i miljön där programmet körs.
  3. Jämför varje krav för den valda binären eller renderingsmotorn. En snarlikt namngiven funktion, ett alias eller en bred teknikbeteckning räcker inte.
  4. Bekräfta att applikationen har valt den avsedda implementeringen. Använd dess dokumenterade diagnostik och en reservlösning som stöds när kraven inte uppfylls.
  5. Gör en ändring som stöds i taget och upprepa samma arbetsbelastning. Håll den ursprungliga konfigurationen och återställningsvägen tillgängliga.

Om funktionen är listad men programvaran inte kan använda den

Börja med den exakta komponenten som fallerar. En hårdvarudatabas beskriver registrerad kapacitet; operativsystemet eller hypervisorn kan exponera en annan faktisk miljö. Ett fel om otillåten instruktion kräver också undersökning av den faktiska felande instruktionen och binärbygget, eftersom korruption eller en orelaterad instruktion utan stöd kan ge ett liknande symptom.

Installera den version av applikationen, drivrutinen eller runtime-miljön som stöds för den exakta plattformen, och använd vid behov tillverkarens dokumenterade baslinje eller reservbygge. En programvaruuppdatering kan inte skapa en instruktion som processorn saknar. Ändringar i firmware och säkerhetspolicy bör följa systemtillverkarens procedur och en återställningsplan snarare än ett generiskt optimeringsrecept.

Källor och omfattning för denna förklaring

Intel 64 and IA-32 Architectures Software Developer's Manual · Linux-kärnan: använda XSTATE-funktioner i användarrymden

Dessa referenser fastställer arkitektoniskt beteende och programvarukrav. De verifierar inte oberoende varje funktionsvärde på en länkad hårdvarumodellsida. För modellstöd, använd den sidans tillverkarbelägg och kontrollera den effektiva systemkonfigurationen. Denna artikel tillhandahåller inte ett prestandatest, en certifiering eller ett oberoende granskningsdatum.

Källor och verifiering

Redaktionellt ägarskap: Feex. Inget oberoende granskningsdatum har registrerats. Hur vi efterforskar.

Var denna artikel användbar?

Ett ja eller nej räcker. Välj en anledning om du vill, eller lägg till en kort anteckning.

Var denna artikel användbar?