Přejít k obsahu

XSAVEOPT

Referenční příručka k architektuřeFeex

XSAVEOPT je optimalizovany clen rodiny x86 pro ukladani rozsireneho stavu. Jeho povolene optimalizace spolehaji na architekturni kontrakt spravy stavu a nedelaji z nej libovolnou instrukci pro kopirovani vyrovnavaci pameti.

Co potřebujete vědět

XSAVEOPT je optimalizovany clen rodiny x86 pro ukladani rozsireneho stavu. Jeho povolene optimalizace spolehaji na architekturni kontrakt spravy stavu a nedelaji z nej libovolnou instrukci pro kopirovani vyrovnavaci pameti.

Jak to funguje

Oproti primemu ulozeni stavu se muze XSAVEOPT vyhnout zapisu nekterych komponent na zaklade sledovani inicializace a modifikaci. Software musi dodrzovat definovana pravidla pro inicializaci a obnoveni obrazu. Nedotceny bajt v cili nemusi byt nutne dukazem, ze komponenta byla ulozena nespravne.

Kde je funkce užitečná

Cesta spravy kontextu v operacnim systemu muze snizit zbytecny provoz v pameti, pokud se rozsireny stav registru nezmenil. Aplikace by se mely spolehat na implementaci operacniho systemu, pokud nemaji zdokumentovany nizkourovnovy pozadavek na spravu stavu.

Jak ověřit podporu a aktivaci

Pokud je k dispozici XSAVE a prislusny rozsah listu, CPUID.0DH.01H:EAX bit 0 enumeruje XSAVEOPT. Samostatne zkontrolujte povolene stavove komponenty a pozadavky na vyrovnavaci pamet a dodrzujte architekturou predepsane parovani ulozeni a obnoveni.

Prostředky pro správu stavu jsou primárně odpovědností operačního systému a běhového prostředí. Buffery, masky, velikosti komponent, zarovnání a pravidla obnovy musí odpovídat architektuře a režimu provádění. Uložení pouhé podmnožiny může poškodit kód, který využívá dodatečný povolený stav.

Co tato funkce nezajišťuje

XSAVEOPT neni XSAVEC ani XSAVES a neimplikuje kazdy pozdejsi format ukladani stavu. Opetovne pouziti vyrovnavaci pameti bez respektovani kontraktu obrazu stavu muze zpusobit nespravne obnoveni. Optimalizace nezaklada vykonnostni zisky na urovni aplikace.

Kompatibilita a výkon v praxi

Detekce funkcí na aplikační úrovni by měla pokud možno používat udržované rozhraní běhového prostředí. Rozlišujte hardwarovou podporu od povolení v operačním systému a u dynamických funkcí od oprávnění procesu. Samotné označení CPU nemůže prokázat, že je libovolná sekvence uložení/obnovy správná.

Praktický kontrolní seznam pro ověření

  1. Zaznamenejte přesný model procesoru nebo platformy a použité verze aplikace, operačního systému a běhového prostředí. Uchovejte přesné znění chybové zprávy nebo požadavku.
  2. Zkontrolujte dokumentaci výrobce pro daný konkrétní model a poté prověřte skutečně dostupnou kapacitu a stav aktivace v prostředí, kde program běží.
  3. Porovnejte veškeré požadavky vybraného binárního souboru nebo backendu. Podobně pojmenovaná funkce, alias nebo obecné technologické označení nestačí.
  4. Ověřte, že aplikace vybrala zamýšlenou implementaci. Pokud nejsou požadavky splněny, použijte její zdokumentovanou diagnostiku a podporované náhradní řešení.
  5. Provádějte vždy jen jednu podporovanou změnu a zopakujte identickou zátěž. Původní konfiguraci a postup obnovy mějte neustále k dispozici.

Pokud je funkce uvedena, ale software ji nemůže použít

Začněte u přesné komponenty, u níž dochází k selhání. Databáze hardwaru popisuje zaznamenané schopnosti; operační systém nebo hypervizor však může vystavit odlišné efektivní prostředí. Chyba neplatné instrukce vyžaduje také prozkoumání skutečné chybující instrukce a sestavení binárního souboru, protože poškození dat nebo nesouvisející nepodporovaná instrukce mohou vyvolat podobný projev.

Nainstalujte verzi aplikace, ovladače nebo běhového prostředí podporovanou pro danou platformu a v případě potřeby použijte výrobcem zdokumentované základní nebo náhradní sestavení. Aktualizace softwaru nemůže vytvořit instrukci, kterou procesor fyzicky postrádá. Změny firmwaru a zásad zabezpečení by se měly řídit postupem výrobce systému a plánem obnovy, nikoli obecným návodem na optimalizaci.

Zdroje a rozsah tohoto vysvětlení

Intel 64 and IA-32 Architectures Software Developer's Manual · Jádro Linuxu: použití funkcí XSTATE v uživatelském prostoru

Tyto referenční dokumenty stanovují architektonické chování a softwarové požadavky. Neověřují nezávisle každou hodnotu funkce na odkazované stránce hardwarového modelu. Informace o podpoře konkrétního modelu čerpejte z podkladů výrobce na příslušné stránce a zkontrolujte platnou konfiguraci systému. Tento článek neposkytuje benchmark, certifikaci ani datum nezávislého přezkumu.

Zdroje a ověření

Redakční vlastnictví: Feex. Není zaznamenáno žádné datum nezávislého přezkoumání. Jak provádíme výzkum.

Byl tento článek užitečný?

Stačí ano nebo ne. Pokud chcete, vyberte důvod nebo přidejte krátkou poznámku.

Byl tento článek užitečný?