Hoppa till innehåll

FXSR

ArkitekturreferensFeex

FXSR identifierar FXSAVE/FXRSTOR-funktionerna för att spara och återställa äldre flyttals- och SIMD-tillstånd. Det är en kapacitet för operativsystemets tillståndshantering snarare än en hastighetsklassificering för applikationer.

Vad du behöver veta

FXSR identifierar FXSAVE/FXRSTOR-funktionerna för att spara och återställa äldre flyttals- och SIMD-tillstånd. Det är en kapacitet för operativsystemets tillståndshantering snarare än en hastighetsklassificering för applikationer.

Hur det fungerar

FXSAVE skriver den definierade tillståndsavbildningen för x87, MMX, XMM och MXCSR, och FXRSTOR återställer motsvarande tillstånd. Avbildningen har en specificerad layout och justering. Den exakta registeruppsättningen och formatet beror på exekveringsläge och arkitektoniska kontroller.

Där den är användbar

Ett operativsystem eller en körtidsmiljö som implementerar kontexthantering på låg nivå måste bevara det tillstånd som dess exekveringsmiljö tillåter. Vanliga applikationer förlitar sig normalt på operativsystemet och ABI i stället för att själva spara godtyckliga kontextavbildningar.

Hur man kontrollerar stöd och aktivering

CPUID.01H:EDX bit 24 räknar upp FXSR. Programvara på låg nivå måste också följa kontrollregister-, justerings- och behörighetskraven i arkitekturmanualen. Ersätt inte operativsystemets kontexthantering med en nödlösning för att spara/återställa på applikationsnivå.

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

En FXSAVE-avbildning bevarar inte allt senare AVX-, AVX-512- eller AMX-tillstånd. Att behandla den som en fullständig modern kontext kan skada ett program även när FXSR stöds. Tillståndshantering i XSAVE-familjen är en separat mekanism.

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 · x86-64 psABI: processorarkitektur- och mikroarkitekturnivåer

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?