XSAVE
XSAVE är den utökningsbara x86-mekanismen för att spara processortillstånd såsom vektorregister. Hårdvarustöd, OS-aktivering och de aktiverade tillståndskomponenterna är separata frågor.
Vad du behöver veta
XSAVE är den utökningsbara x86-mekanismen för att spara processortillstånd såsom vektorregister. Hårdvarustöd, OS-aktivering och de aktiverade tillståndskomponenterna är separata frågor.
Hur det fungerar
XSAVE-arkitekturen använder en uppräknad tillståndslayout och masker för att beskriva vilka komponenter som är aktiverade och sparas. CPUID-blad 0DH beskriver stödda komponenter och storlekar. XCR0 styr kvalificerade användartillståndskomponenter, medan OSXSAVE informerar programvara om att operativsystemet har aktiverat XSAVE-miljön.
Där den är användbar
En runtime som avgör om den kan använda AVX behöver både processorns AVX-bit och OS-aktiverat XMM/YMM-tillstånd. En kontext- eller signalimplementering måste allokera utrymme i enlighet med det aktiverade tillståndet istället för att anta att en äldre buffert med fast storlek är tillräcklig.
Hur man kontrollerar stöd och aktivering
Kontrollera CPUID.01H:ECX bit 26 för XSAVE och bit 27 för OSXSAVE. Först därefter ska XGETBV användas enligt tillåtelse och de nödvändiga XCR0-bitarna inspekteras. Räkna upp blad 0DH för tillståndslayout istället för att hårdkoda en storlek från en annan maskin.
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
Stöd för XSAVE innebär inte i sig att AVX, AVX-512 eller AMX kan användas. XGETBV får inte användas innan det nödvändiga stödet och OS-aktiveringen har fastställts. Olika instruktioner i XSAVE-familjen har separata uppräknings- och layoutregler.
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
- 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.
- 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.
- 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.
- 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.
- 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.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Volym 1 och 2 beskriver de namngivna instruktionsfamiljerna och CPUID; Volym 3 beskriver tillstånd, sidindelning, VMX och skyddskontroller. Arkitekturdokumentation fastställer inte stöd för en specifik modell.
- Linux-kärnan: använda XSTATE-funktioner i användarrymden · OS-aktiverat vektorstatus, dynamiskt aktiverat bricktillstånd, krav på signalstack och AMX-behörighetsflöde. Linux-specifikt beteende är inte ett löfte om ett annat operativsystem.
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.
Tack. Det hjälper oss att förbättra den här sidan.