Top Qs
Chronologie
Chat
Contexte
SSE4
Extension du jeu d'instructions De Wikipédia, l'encyclopédie libre
Remove ads
SSE4, pour Streaming SIMD Extensions version 4, aussi connu sous le nom de Nehalem New Instructions (NNI), est un jeu d’instructions pour l’architecture x86. Il ajoute 54 instructions-machine supplémentaires aux jeux précédents, SSE3 et SSSE3.
L’annonce de ce nouveau jeu d’instructions est faite le à l’Intel Developer Forum d’automne 2006. Ce jeu d’instructions a pour but d'améliorer les performances multimédia, les algorithmes de recherche et de détection, la protection des données (checksum de type CRC) et la vectorisation.
Remove ads
Sous-ensembles SSE4
Le jeu d’instructions SSE4 est constitué de trois sous-ensembles. Deux sont particuliers aux processeurs Intel, et un aux processeurs AMD :
- Le sous-ensemble SSE4.1, introduit dans la microarchitecture Intel Penryn, qui comprend 47 instructions.
- Le sous-ensemble SSE4.2, introduit dans la microarchitecture Intel Nehalem, qui comprend 7 instructions.
- Le sous-ensemble SSE4a qui comprend 4 instructions. Disponible uniquement chez certains processeurs AMD
Remove ads
Nouvelles instructions
Résumé
Contexte
À la différence des précédentes implémentations des jeux SSE, le jeu SSE4 présente des instructions n’étant pas spécifiquement dédiées aux applications multimédia.
Ce jeu voit la réapparition d’un opérande implicite pour certaines instructions (cet opérande étant le registre XMM0 en tant que troisième opérande) et la disparition de l’utilisation des opérandes 64 bits (registres MMX) au profit d’opérandes uniquement 128 bits, c’est-à-dire une utilisation exclusive des registres XMM.
Beaucoup de ces instructions profitent d’un atout majeur des architectures Penryn et Nehalem, à savoir le moteur de permutation à un seul cycle (single-cycle shuffle engine).
L’instruction CPUID permet de déterminer si le processeur supporte les instructions.
SSE4.1
Ces instructions ont été introduites avec la microarchitecture Penryn, le die shrink 45 nm de la microarchitecture Core d'Intel. Le support est indiqué par le drapeau CPUID.01H:ECX.SSE41[Bit 19].
SSE4.2
SSE4.2 a ajouté STTNI (String and Text New Instructions)[2], plusieurs nouvelles instructions qui effectuent des recherches de caractères et des comparaisons sur deux opérandes de 16 octets à la fois. Ceux-ci ont été conçus (entre autres) pour accélérer l’analyse des documents XML[3]. Il a également ajouté une instruction pour calculer les contrôles de redondance cyclique utilisés dans certains protocoles de transfert de données. Ces instructions ont été implémentées pour la première fois dans la gamme de produits Intel Core i7 basée sur Nehalem et complètent le jeu d’instructions SSE4. AMD, quant à lui, a effectué la prise en charge en commençant par la microarchitecture Bulldozer. Le support est indiqué via le drapeau CPUID.01H:ECX.SSE42[Bit 20].
Windows 11 24H2 nécessite que le processeur prenne en charge SSE4.2, sinon le noyau Windows n’est pas amorçable[4].
POPCNT et LZCNT
Ces instructions fonctionnent sur des registres entiers plutôt que SSE, car ce ne sont pas des instructions SIMD, mais elle apparaissent en même temps et, bien qu’introduites par AMD avec le jeu d’instructions SSE4a, elles sont comptées comme des extensions distinctes avec leurs propres bits CPUID dédiés pour indiquer la prise en charge. Intel a implémenté POPCNT
à partir de la microarchitecture Nehalem et LZCNT
à partir de la microarchitecture Haswell. AMD a implémenté les deux, en commençant par la microarchitecture Barcelona.
AMD appelle cette paire d’instructions Advanced Bit Manipulation (ABM).
Le codage de LZCNT
prend le même chemin de codage que celui de l’instruction BSR
(balayage des bits inverse). Cela se traduit par un problème car l’appel à LZCNT
par certains processeurs qui ne le prennent pas en charge, tels que les processeurs Intel antérieurs à Haswell, peut exécuter l’opération de manière incorrecte au lieu de lever une exception instruction non valide. Il s’agit d’un problème, car les valeurs du résultat de LZCNT
et de BSR
sont différentes.
Les zéros à droite peuvent être comptés à l’aide des instructions Bit Scan Forward (BSF
) (balayage des bits vers l’avant) ou TZCNT
(comptage des zéros en queue).
Windows 11 24H2 nécessite que le processeur prenne en charge POPCNT
, sinon le noyau Windows n’est pas amorçable[7].
SSE4a
Le groupe d'instructions SSE4a a été introduit dans la microarchitecture Barcelona d'AMD. Ces instructions ne sont pas disponibles sur les processeurs Intel. Le support est indiqué par le drapeau CPUID.80000001H:ECX.SSE4A[Bit 6][9].
Remove ads
Références
Voir aussi
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads