Salta al contingut

XSAVE

Referència d'arquitecturaFeex

XSAVE és el mecanisme extensible de x86 per desar l'estat del processador com ara els registres vectorials. La compatibilitat de maquinari, l'habilitació del SO i els components d'estat habilitats són qüestions independents.

El que cal saber

XSAVE és el mecanisme extensible de x86 per desar l'estat del processador com ara els registres vectorials. La compatibilitat de maquinari, l'habilitació del SO i els components d'estat habilitats són qüestions independents.

Com funciona

L'arquitectura XSAVE utilitza una disposició d'estat enumerada i màscares per descriure quins components estan habilitats i es desen. La fulla 0DH de CPUID descriu els components i les mides admeses. XCR0 controla els components d'estat d'usuari aptes, mentre que OSXSAVE indica al programari que el sistema operatiu ha habilitat l'entorn XSAVE.

On és útil

Un entorn d'execució que hagi de decidir si pot utilitzar AVX necessita tant el bit AVX del processador com l'estat XMM/YMM habilitat pel SO. Una implementació de context o de senyals ha d'assignar espai segons l'estat habilitat en lloc d'assumir que una memòria intermèdia antiga de mida fixa és suficient.

Com comprovar el suport i l'habilitació

Comproveu el bit 26 de CPUID.01H:ECX per a XSAVE i el bit 27 per a OSXSAVE. Només aleshores utilitzeu XGETBV segons estigui permès i inspeccioneu els bits XCR0 requerits. Enumereu la fulla 0DH per conèixer la disposició de l'estat en lloc de fixar una mida codificada en el programa procedent d'una altra màquina.

Les funcions de gestió d'estat són principalment responsabilitat del SO i de l'entorn d'execució. Els búfers, les màscares, les mides de components, l'alineació i les regles de restauració han de coincidir amb l'arquitectura i el mode d'execució. Desar només un subconjunt pot corrompre el codi que utilitza estat addicional habilitat.

El que la característica no estableix

La compatibilitat amb XSAVE no significa per si mateixa que AVX, AVX-512 o AMX siguin utilitzables. No s'ha d'utilitzar XGETBV abans d'establir la compatibilitat necessària i l'habilitació per part del SO. Les diferents instruccions de la família XSAVE tenen regles d'enumeració i de disposició separades.

Compatibilitat i rendiment a la pràctica

La detecció de funcionalitats a nivell d'aplicació ha d'utilitzar una interfície d'entorn d'execució mantinguda quan sigui possible. Distingiu el suport de maquinari de l'habilitació pel SO i, per a funcionalitats dinàmiques, del permís de procés. Una etiqueta de CPU per si sola no pot establir que una seqüència arbitrària de desat/restauració sigui correcta.

Una llista de verificació pràctica

  1. Enregistreu el model exacte de processador o de plataforma i les versions d'aplicació, SO i entorn d'execució implicades. Conserveu la redacció de l'error o del requisit real.
  2. Comproveu la referència del fabricant per a aquest model exacte, i després inspeccioneu la capacitat efectiva i l'estat habilitat en l'entorn on s'executa el programa.
  3. Compareu cada requisit del binari o dorsal seleccionat. Una característica amb un nom similar, un àlies o una etiqueta de tecnologia àmplia no és suficient.
  4. Confirmeu que l'aplicació ha seleccionat la implementació prevista. Utilitzeu els seus diagnòstics documentats i una alternativa compatible quan no es compleixin els requisits.
  5. Feu un únic canvi admès a la vegada i repetiu la mateixa càrrega de treball. Manteniu disponibles la configuració original i la via de recuperació.

Si la característica apareix a la llista però el programari no la pot utilitzar

Comenceu pel component exacte que falla. Una base de dades de maquinari descriu la capacitat registrada; el sistema operatiu o l'hipervisor poden exposar un entorn efectiu diferent. Un error d'instrucció il·legal també requereix investigar la instrucció defectuosa real i la compilació del binari, perquè una corrupció o una instrucció no admesa no relacionada poden produir un símptoma similar.

Instal·leu la versió d'aplicació, controlador o entorn d'execució admesa per a la plataforma exacta, i utilitzeu la compilació base o alternativa documentada pel fabricant si cal. Una actualització de programari no pot crear una instrucció que li manqui al processador. Els canvis de microprogramari i de polítiques de seguretat han de seguir el procediment del fabricant del sistema i un pla de recuperació en lloc d'una recepta genèrica d'optimització.

Fonts i abast d'aquesta explicació

Intel 64 and IA-32 Architectures Software Developer's Manual · Linux kernel: using XSTATE features in user space

Aquestes referències estableixen el comportament arquitectònic i els requisits de programari. No verifiquen de manera independent cada valor de característica en una pàgina de model de maquinari enllaçada. Per al suport de models, utilitzeu l'evidència del fabricant d'aquesta pàgina i comproveu la configuració efectiva del sistema. Aquest article no proporciona cap data de prova de referència, certificació o revisió independent.

Fonts i verificació

Propietat editorial: Feex. No s'ha registrat cap data de revisió independent. Com investiguem.

  • Intel 64 and IA-32 Architectures Software Developer's Manual · Els volums 1 i 2 descriuen les famílies d'instruccions anomenades i CPUID; el volum 3 descriu l'estat, la paginació, VMX i els controls de protecció. La documentació d'arquitectura no estableix el suport per a un model en particular.
  • Linux kernel: using XSTATE features in user space · Estat vectorial habilitat pel SO, estat de tessel·les habilitat dinàmicament, requisits de pila de senyals i flux de permisos AMX. El comportament específic de Linux no és una promesa sobre un altre SO.

Ha estat útil aquest article?

Un sí o un no és suficient. Trieu un motiu si voleu, o afegiu una breu nota.

Ha estat útil aquest article?