Preskočiť na obsah

XSAVE

Architektonická referenciaFeex

XSAVE je rozšíriteľný mechanizmus architektúry x86 na ukladanie stavu procesora, ako sú vektorové registre. Hardvérová podpora, povolenie v operačnom systéme a povolené stavové komponenty sú samostatné otázky.

Čo potrebujete vedieť

XSAVE je rozšíriteľný mechanizmus architektúry x86 na ukladanie stavu procesora, ako sú vektorové registre. Hardvérová podpora, povolenie v operačnom systéme a povolené stavové komponenty sú samostatné otázky.

Ako to funguje

Architektúra XSAVE používa enumerované rozloženie stavu a masky na opis toho, ktoré komponenty sú povolené a uložené. CPUID leaf 0DH opisuje podporované komponenty a veľkosti. XCR0 riadi oprávnené komponenty používateľského stavu, zatiaľ čo OSXSAVE oznamuje softvéru, že operačný systém povolil prostredie XSAVE.

Kde je to užitočné

Runtime rozhodujúci o tom, či môže použiť AVX, potrebuje bit AVX v procesore aj stav XMM/YMM povolený operačným systémom. Implementácia kontextu alebo signálov musí alokovať priestor podľa povoleného stavu a nepredpokladať, že staršia vyrovnávacia pamäť s pevnou veľkosťou postačuje.

Ako overiť podporu a povolenie

Skontrolujte CPUID.01H:ECX bit 26 pre XSAVE a bit 27 pre OSXSAVE. Až potom použite XGETBV podľa povolenia a skontrolujte požadované bity XCR0. Enumerujte leaf 0DH pre rozloženie stavu namiesto pevného kódovania veľkosti z iného stroja.

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á

Samotná podpora XSAVE neznamená, že AVX, AVX-512 alebo AMX sú použiteľné. Inštrukcia XGETBV sa nesmie použiť pred overením požadovanej podpory a povolenia v operačnom systéme. Rôzne inštrukcie rodiny XSAVE majú samostatné pravidlá enumerácie a rozloženia.

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

  1. 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.
  2. 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ží.
  3. Porovnajte každú požiadavku vybraného binárneho súboru alebo backendu. Podobne pomenovaná funkcia, alias alebo široké technologické označenie nepostačujú.
  4. 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.
  5. 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.

Bol tento článok užitočný?

Stačí áno alebo nie. Ak chcete, vyberte dôvod, alebo pridajte krátku poznámku.

Bol tento článok užitočný?