SFENCE
Store Fence
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
NP 0F AE F8 | SFENCE | ZO | Valido | Valido | Serializa operaciones de almacén. |
Coste medido
Cargando las mediciones de arch-data...
Descripción
Pedidos de ejecución del procesador en relación con todas las tiendas de memoria antes de la instrucción SFENCE. El procesador asegura que cada tienda antes de SFENCE es visible a nivel mundial antes de cualquier tienda después de que SFENCE se haga visible a nivel mundial. La instrucción SFENCE se ordena con respecto a las tiendas de memoria, otras instrucciones SFENCE, instrucciones MFENCE y cualquier instrucción serializante (como la instrucción CPUID). No se ordena con respecto a las cargas de memoria o la instrucción LFENCE.
Los tipos de memoria ordenados débilmente se pueden utilizar para lograr un mayor rendimiento de procesador a través de técnicas tales como el problema fuera de orden, la combinación de escritura y la colada de escritura. El grado en que un consumidor de datos reconoce o sabe que los datos se ordenan débilmente varía entre las aplicaciones y puede ser desconocido para el productor de estos datos. La instrucción SFENCE proporciona una manera eficiente de garantizar el orden de la tienda entre rutinas que producen resultados y rutinas de orden débil que consumen estos datos.
La operación de esta instrucción es la misma en modos no-64-bit y modo 64-bit.
La especificación del código de operación de la instrucción indica un byte ModR/M de F8. Para esta instrucción, el procesador ignora el campo r/m del byte ModR/M. Así, SFENCE es codificado por cualquier código de operación de la forma 0F AE Fx, donde x está en el rango 8-F.
Operación
Wait_On_Following_Stores_Until(preceding_stores_globally_visible);Intel C/C++ compilador intrínseco
void _mm_sfence(void);Excepciones
Modo real
#UD | Si CPUID.01H:EDX.SSE[25] = 0. Si el prefijo LOCK es usado. |
Modo protegido
#UD | Si CPUID.01H:EDX.SSE[25] = 0. Si el prefijo LOCK es usado. |
Modo virtual-8086
#UD | Si CPUID.01H:EDX.SSE[25] = 0. Si el prefijo LOCK es usado. |
Modo de compatibilidad
#UD | Si CPUID.01H:EDX.SSE[25] = 0. Si el prefijo LOCK es usado. |
Modo de 64 bits
#UD | Si CPUID.01H:EDX.SSE[25] = 0. Si el prefijo LOCK es usado. |