Skoči na sadržaj

XSAVE

Arhitekturna referencaFeex

XSAVE je proširivi x86 mehanizam za spremanje stanja procesora poput vektorskih registara. Hardverska podrška, omogućavanje u OS-u i omogućene komponente stanja zasebna su pitanja.

Što trebate znati

XSAVE je proširivi x86 mehanizam za spremanje stanja procesora poput vektorskih registara. Hardverska podrška, omogućavanje u OS-u i omogućene komponente stanja zasebna su pitanja.

Kako funkcionira

Arhitektura XSAVE koristi enumerirani raspored stanja i maske kako bi opisala koje su komponente omogućene i spremljene. CPUID leaf 0DH opisuje podržane komponente i veličine. XCR0 kontrolira prihvatljive komponente korisničkog stanja, dok OSXSAVE govori softveru da je operacijski sustav omogućio XSAVE okruženje.

Gdje je korisno

Izvršno okruženje (runtime) koje odlučuje može li koristiti AVX treba i AVX bit procesora i XMM/YMM stanje omogućeno od strane OS-a. Implementacija konteksta ili signala mora dodijeliti prostor prema omogućenom stanju, a ne pretpostavljati da je naslijeđeni međuspremnik fiksne veličine dovoljan.

Kako provjeriti podršku i omogućavanje

Provjerite CPUID.01H:ECX bit 26 za XSAVE i bit 27 za OSXSAVE. Tek tada upotrijebite XGETBV kako je dopušteno i pregledajte potrebne XCR0 bitove. Enumerirajte leaf 0DH za raspored stanja umjesto fiksnog kodiranja veličine s drugog računala.

Mogućnosti upravljanja stanjem prvenstveno su odgovornost OS-a i izvršnog okruženja. Međuspremnici, maske, veličine komponenti, poravnanje i pravila vraćanja moraju se slagati s arhitekturom i načinom izvršavanja. Spremanje samo podskupa može oštetiti kod koji koristi dodatno omogućeno stanje.

Što ova značajka ne utvrđuje

Podrška za XSAVE sama po sebi ne znači da se AVX, AVX-512 ili AMX mogu koristiti. XGETBV se ne smije koristiti prije utvrđivanja potrebne podrške i omogućavanja u OS-u. Različite instrukcije iz obitelji XSAVE imaju zasebna pravila enumeracije i rasporeda.

Kompatibilnost i performanse u praksi

Otkrivanje značajki na razini aplikacije trebalo bi koristiti održavano sučelje izvršnog okruženja kada je to moguće. Razlikujte hardversku podršku od omogućavanja u OS-u i, za dinamičke značajke, dozvole procesa. Sama oznaka CPU-a ne može utvrditi je li proizvoljan slijed spremanja/vraćanja ispravan.

Praktičan kontrolni popis za provjeru

  1. Zabilježite točan model procesora ili platforme te verzije aplikacije, OS-a i izvršnog okruženja. Sačuvajte formulaciju stvarne pogreške ili zahtjeva.
  2. Provjerite proizvođačevu referencu za taj točan model, a zatim pregledajte stvarnu sposobnost i omogućeno stanje u okruženju u kojem se program izvodi.
  3. Usporedite svaki zahtjev odabrane binarne datoteke ili pozadinskog sustava. Slično nazvana značajka, pseudonim ili široka tehnološka oznaka nisu dovoljni.
  4. Potvrdite da je aplikacija odabrala predviđenu implementaciju. Koristite njezinu dokumentiranu dijagnostiku i podržanu zamjensku opciju kada zahtjevi nisu ispunjeni.
  5. Napravite jednu po jednu podržanu promjenu i ponovite isto radno opterećenje. Zadržite izvornu konfiguraciju i put oporavka dostupnima.

Ako je značajka navedena, ali je softver ne može koristiti

Počnite s točnom komponentom koja zakazuje. Hardverska baza podataka opisuje zabilježenu sposobnost; operacijski sustav ili hipervizor mogu izložiti drukčije stvarno okruženje. Pogreška nedopuštene instrukcije također zahtijeva istragu stvarne instrukcije koja uzrokuje pogrešku i binarne građe, jer oštećenje ili nepovezana nepodržana instrukcija mogu proizvesti sličan simptom.

Instalirajte verziju aplikacije, upravljačkog programa ili izvršnog okruženja podržanu za točnu platformu i upotrijebite proizvođačevu dokumentiranu osnovnu ili zamjensku građu ako je potrebno. Softversko ažuriranje ne može stvoriti instrukciju koja procesoru nedostaje. Promjene u firmwareu i sigurnosnim pravilima trebaju slijediti postupak proizvođača sustava i plan oporavka, a ne generički recept za optimizaciju.

Izvori i opseg ovog objašnjenja

Intel 64 and IA-32 Architectures Software Developer's Manual · Linux kernel: korištenje značajki XSTATE u korisničkom prostoru

Ove reference utvrđuju arhitekturno ponašanje i softverske zahtjeve. One ne verificiraju neovisno svaku vrijednost značajke na povezanoj stranici hardverskog modela. Za podršku modela upotrijebite proizvođačeve dokaze s te stranice i provjerite stvarnu konfiguraciju sustava. Ovaj članak ne pruža mjerilo performansi, certifikaciju ili datum neovisnog pregleda.

Izvori i provjera

Uredničko vlasništvo: Feex. Nije zabilježen datum neovisnog pregleda. Kako istražujemo.

Je li ovaj članak bio koristan?

Dovoljno je odgovoriti s da ili ne. Odaberite razlog ako želite ili dodajte kratku bilješku.

Je li ovaj članak bio koristan?