XSAVE
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
- 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.
- 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.
- Usporedite svaki zahtjev odabrane binarne datoteke ili pozadinskog sustava. Slično nazvana značajka, pseudonim ili široka tehnološka oznaka nisu dovoljni.
- Potvrdite da je aplikacija odabrala predviđenu implementaciju. Koristite njezinu dokumentiranu dijagnostiku i podržanu zamjensku opciju kada zahtjevi nisu ispunjeni.
- 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.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Svesci 1 i 2 opisuju imenovane obitelji instrukcija i CPUID; Svezak 3 opisuje stanje, straničenje, VMX i kontrole zaštite. Dokumentacija arhitekture ne utvrđuje podršku za određeni model.
- Linux kernel: korištenje značajki XSTATE u korisničkom prostoru · Vektorsko stanje omogućeno u OS-u, dinamički omogućeno stanje pločica, zahtjevi za stogom signala i tijek dopuštenja za AMX. Ponašanje specifično za Linux nije obećanje o drugom OS-u.
Je li ovaj članak bio koristan?
Dovoljno je odgovoriti s da ili ne. Odaberite razlog ako želite ili dodajte kratku bilješku.
Hvala. To nam pomaže poboljšati ovu stranicu.