XSAVEOPT
XSAVEOPT je optimalizovaný člen rodiny ukladania rozšíreného stavu v architektúre x86. Jeho povolené optimalizácie sa spoliehajú na architektonický kontrakt správy stavu a nerobia z neho ľubovoľnú inštrukciu na kopírovanie vyrovnávacej pamäte.
Čo potrebujete vedieť
XSAVEOPT je optimalizovaný člen rodiny ukladania rozšíreného stavu v architektúre x86. Jeho povolené optimalizácie sa spoliehajú na architektonický kontrakt správy stavu a nerobia z neho ľubovoľnú inštrukciu na kopírovanie vyrovnávacej pamäte.
Ako to funguje
V porovnaní s priamym uložením stavu dokáže XSAVEOPT vynechať zápis niektorých komponentov podľa sledovania inicializácie a modifikácií. Softvér musí dodržiavať definované pravidlá inicializácie a obnovy obrazu. Nedotknutý bajt v cieli nemusí byť nevyhnutne dôkazom nesprávneho uloženia komponentu.
Kde je to užitočné
Cesta správy kontextu v operačnom systéme môže znížiť zbytočnú pamäťovú prevádzku, ak sa rozšírený stav registrov nezmenil. Aplikácie by sa mali spoliehať na implementáciu operačného systému, pokiaľ nemajú dokumentovanú nízkoúrovňovú požiadavku na správu stavu.
Ako overiť podporu a povolenie
Ak sú k dispozícii XSAVE a príslušný rozsah leaf, CPUID.0DH.01H:EAX bit 0 enumeruje XSAVEOPT. Skontrolujte povolené stavové komponenty a požiadavky na vyrovnávaciu pamäť samostatne a dodržiavajte párovanie uloženia/obnovy predpísané architektúrou.
Prostriedky na správu stavu sú predovšetkým zodpovednosťou OS a behového prostredia. Vyrovnávacie pamäte, masky, veľkosti komponentov, zarovnanie a pravidlá obnovy musia zodpovedať architektúre a režimu vykonávania. Uloženie iba podmnožiny môže poškodiť kód, ktorý používa dodatočný povolený stav.
Čo táto funkcia nezakladá
XSAVEOPT nie je XSAVEC ani XSAVES a neimplikuje každý neskorší formát ukladania stavu. Opätovné použitie vyrovnávacej pamäte bez rešpektovania kontraktu stavového obrazu môže viesť k nesprávnej obnove. Táto optimalizácia nezaručuje zvýšenie výkonu na úrovni aplikácie.
Kompatibilita a výkon v praxi
Detekcia funkcií na úrovni aplikácie by mala podľa možnosti používať udržiavané rozhranie behového prostredia. Rozlišujte hardvérovú podporu od povolenia v OS a pri dynamických funkciách aj oprávnenie procesu. Samotné označenie CPU nemôže preukázať, že ľubovoľná sekvencia uloženia/obnovy je správna.
Praktický kontrolný zoznam na overenie
- Zaznamenajte presný model procesora alebo platformy a príslušné verzie aplikácie, operačného systému a runtime prostredia. Zachovajte presné znenie skutočnej chyby alebo požiadavky.
- Skontrolujte referenčnú dokumentáciu výrobcu pre daný presný model a potom preverte efektívnu schopnosť a povolený stav v prostredí, kde program beží.
- Porovnajte každú požiadavku vybraného binárneho súboru alebo backendu. Podobne pomenovaná funkcia, alias alebo široké technologické označenie nepostačujú.
- Uistite sa, že aplikácia vybrala zamýšľanú implementáciu. Ak požiadavky nie sú splnené, použite jej dokumentovanú diagnostiku a podporované náhradné riešenie.
- Vykonávajte vždy len jednu podporovanú zmenu a zopakujte rovnaké pracovné zaťaženie. Ponechajte si k dispozícii pôvodnú konfiguráciu a postup obnovy.
Ak je funkcia uvedená, ale softvér ju nemôže použiť
Začnite presne pri zlyhávajúcom komponente. Hardvérová databáza popisuje zaznamenanú schopnosť; operačný systém alebo hypervízor však môže sprístupniť iné efektívne prostredie. Chyba neplatnej inštrukcie si vyžaduje aj preskúmanie skutočnej chybujúcej inštrukcie a zostavenia binárneho súboru, pretože poškodenie alebo nesúvisiaca nepodporovaná inštrukcia môže vyvolať podobný príznak.
Nainštalujte verziu aplikácie, ovládača alebo runtime prostredia podporovanú pre presnú platformu a v prípade potreby použite dodávateľom dokumentované základné alebo záložné zostavenie. Aktualizácia softvéru nedokáže vytvoriť inštrukciu, ktorú procesor nemá. Zmeny firmvéru a bezpečnostných politík by sa mali riadiť postupom výrobcu systému a plánom obnovy, nie generickým návodom na optimalizáciu.
Zdroje a rozsah tohto vysvetlenia
Intel 64 and IA-32 Architectures Software Developer's Manual · Jadro Linuxu: používanie funkcií XSTATE v používateľskom priestore
Tieto referencie definujú architektonické správanie a softvérové požiadavky. Neoverujú nezávisle každú hodnotu funkcie na prepojenej stránke hardvérového modelu. Podporu modelu nájdete v podkladoch od výrobcu na danej stránke a skontrolujte efektívnu konfiguráciu systému. Tento článok neposkytuje dátum benchmarku, certifikácie ani nezávislej recenzie.
Zdroje a overenie
Redakčné vlastníctvo: Feex. Nie je zaznamenaný žiadny dátum nezávislej kontroly. Ako robíme výskum.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Zväzky 1 a 2 popisujú uvedené rodiny inštrukcií a CPUID; Zväzok 3 popisuje stav, stránkovanie, VMX a ovládacie prvky ochrany. Dokumentácia k architektúre nezaručuje podporu pre konkrétny model.
- Jadro Linuxu: používanie funkcií XSTATE v používateľskom priestore · Vektorový stav povolený operačným systémom, dynamicky povolený stav dlaždíc, požiadavky na zásobník signálov a proces udeľovania oprávnení pre AMX. Správanie špecifické pre Linux nie je prísľubom pre iný operačný systém.
Bol tento článok užitočný?
Stačí áno alebo nie. Ak chcete, vyberte dôvod, alebo pridajte krátku poznámku.
Ďakujeme. Pomáha nám to zlepšovať túto stránku.