Assembleur 80x86 | MFENCE |
---|---|
INTEL Pentium 4+, SSE2 | Memory Fence |
Syntaxe
MFENCE |
Description
Cette instruction permet d'agir comme une barrière pour forcer une priorité en mémoire (sérialisation) entre les instructions précédant le MFENCE et les instructions de chargement et d'entreposage précédent le MFENCE.
Remarques
- L'instruction MFENCE effectue une opération de sérialisation sur toutes les instructions de chargement à partir de la mémoire et d'entreposage vers la mémoire émises avant l'instruction MFENCE. Cette opération de sérialisation garantit que chaque instruction de chargement et d'entreposage précédant l'instruction MFENCE dans l'ordre du programme devient globalement visible avant toute instruction de chargement ou d'entreposage suivant l'instruction MFENCE (une instruction de chargement est considérée comme étant globalement visible lorsque la valeur à charger dans son registre de destination est déterminée). L'instruction MFENCE est ordonnée par rapport à toutes les instructions de chargement et d'entreposage, autre que les instructions MFENCE, toutes les instructions LFENCE et SFENCE et toutes les instructions de sérialisation (telles que l'instruction CPUID). L'instruction MFENCE ne sérialise pas le flux d'instructions.
- Des types de mémoire faiblement ordonnés peuvent être utilisés pour obtenir des performances de processeur plus élevées grâce à des techniques telles que les problèmes de désordre, les lectures spéculatives, la combinaison d'écriture et la réduction d'écriture. Le degré auquel un consommateur de données reconnaît ou sait que les données sont faiblement ordonnées varie selon les applications et peut être inconnu du producteur de ces données. L'instruction MFENCE fournit un moyen efficace pour garantir l'ordre de chargement et d'entreposage entre les routines produisant des résultats faiblement ordonnés et les routines consommant ces données.
- Les processeurs sont libres d'extraire et de mettre en cache les données de manière spéculative dans les régions de la mémoire système utilisant les types de mémoire WB, WC et WT. Cette extraction spéculative peut se produire à tout moment et n'est pas liée à l'exécution de l'instruction. Ainsi, il n'est pas ordonné par rapport aux exécutions de l'instruction MFENCE; les données peuvent être introduites dans les caches de manière spéculative juste avant, pendant ou après l'exécution d'une instruction MFENCE.
- Le fonctionnement de cette instruction est le même dans les modes non 64 bits et 64 bits.
Mnémonique
Instruction | Opcode | Description |
---|---|---|
MFENCE | 0Fh AEh F0h | Force l'ordre de sérialisation dans l'opération de chargement et d'entreposage |
Exceptions
Message | Mode réel | Virtuel 8086 | Mode protégé | Description |
---|---|---|---|---|
#UD(Opcode invalide) | X | Cette instruction n'est pas supporté comme l'indique le bit 26 du registre EDX de la fonction 0000_0000h dans l'instruction CPUID. |
Voir également
Instruction assembleur 80x86 - Instruction LFENCE
Instruction assembleur 80x86 - Instruction SFENCE
Références
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A: Instruction Set Reference, A-M, Edition Intel, Mars 2010, Publication No. 253666-034US, page 695 à 696.
Dernière mise à jour : Vendredi, le 5 septembre 2014