Streaming SIMD Extension 4

Streaming SIMD Extension 4

SSE4

Page d'aide sur l'homonymie Pour les articles homonymes, voir NNI.

SSE4 (pour Streaming SIMD Extensions version 4), aussi connu sous le nom de Nehalem New Instructions (NNI) est un jeu d'instructions supplémentaires pour l'architecture x86. Le jeu complet comprend 54 instructions.

L'annonce de ce nouveau jeu d'instruction fut faite le 27 septembre 2006 à l’Intel Developer Forum d'automne 2006. Ce jeu d'instruction devrait 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.

Sommaire

Sous-ensembles SSE4

Le jeu d'instruction SSE4 est constitué de trois sous-ensembles. Deux sont particuliers aux processeurs Intel, et un aux processeur AMD :

  • Le sous-ensemble SSE4.1, introduit dans la micro architecture Intel Core 2 Penryn, qui comprend 47 instructions.
  • Le sous-ensemble SSE4.2, introduit dans la micro architecture Intel Nehalem, qui comprend 7 instructions.
  • Le sous-ensemble SSE4a qui comprend 4 instructions.

Les jeux SSE4.x et le jeu SSE4a sont exclusifs. Ainsi, le sous ensemble SSE4a n'est disponible que pour les processeurs AMD, ces derniers ne mettant pas en œuvre les sous ensembles Intel (SSE4.1 et SSE4.2). Les processeurs Intel, quant à eux, ne mettent pas en œuvre le jeu SSE4a.

Nouvelles instructions

À 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 determiner si le processeur supporte les instructions.

SSE4.1

Instruction Description
MPSADBW Calcule 8 sommes de différences absolues ( |x0-y0|+|x1-y1|+|x2-y2|+|x3-y3|, |x0-y1|+|x1-y2|+|x2-y3|+|x3-y4|, ...); Cette opération est extrêmement importante pour les codecs modernes HDTV[1] et permet de calculer un bloc de différence de 8×8 en moins de 7 cycles. Un bit d'un opérande immédiat de 3 bits indique si y0 .. y11 ou y4 .. y15 doit être utilisé depuis l'opérande destination, les deux autres si x0..x3, x4..x7, x8..x11 ou x12..x15 doit être utilisé depuis l'opérande source.
PHMINPOSUW Trouve le plus petit mot (16 bits) non signé de l'opérande source et place le résultat dans l'opérande destination (16 bits de poids faible). L'index du mot trouvé dans l'opérande source est placé dans le second mot de l'opérande destination aux bits 16 à 18. Les bits restants de l'opérande destination sont mis à zéro.
PMULDQ Effectue deux multiplications signées de deux paires d'entiers (32 bits) et sauve le résultat (deux produits de 64 bits) dans l'opérande de destination.
PMULLD Effectue une multiplication sur des nombres signés et packés : 4 entiers signés de 32 bits (opérande source) multipliés par 4 entiers signés de 32 bits (opérande destination). Le résultat est placé dans la destination.
DPPS, DPPD Effectue un produit scalaire conditionnel entre deux opérandes de 128 bits. La condition est donnée par un troisième opérande de type immédiat. Le produit est en simple précision pour DDPPS et en double pour DPPD.
BLENDPS, BLENDPD, BLENDVPS, BLENDVPD, PBLENDVB, PBLENDW Effectue une copie conditionnelle d'un registre XMM vers un autre. La copie est basée soit sur un masque binaire donné par un opérande immédiat (mnémoniques sans le 'v' dans le nom) soit sur un masque binaire donné par le registre XMM0 (mnémoniques avec 'v').
PMINSB, PMAXSB, PMINUW, PMAXUW, PMINUD, PMAXUD, PMINSD, PMAXSD Trouve le minimum ou maximum pour différents types d'opérandes entiers et packés.
ROUNDPS, ROUNDSS, ROUNDPD, ROUNDSD Arrondis les valeurs d'un registre à virgule flottante en entiers en utilisant un des quatre modes d'arrondi spécifié par un opérande immédiat.
INSERTPS, PINSRB, PINSRD/PINSRQ, EXTRACTPS, PEXTRB, PEXTRW, PEXTRD/PEXTRQ Extraction et insertion. L'extraction consiste à prendre une partie d'un registre XMM pour la mettre en mémoire, tandis que l'insertion consiste à prendre un contenu mémoire et l'insérer dans un registre XMM.
PMOVSXBW, PMOVZXBW, PMOVSXBD, PMOVZXBD, PMOVSXBQ, PMOVZXBQ, PMOVSXWD, PMOVZXWD, PMOVSXWQ, PMOVZXWQ, PMOVSXDQ, PMOVZXDQ Extension de signe ou extension à zéro pour des nombres packés vers un type plus grand (correspond peu ou prou à MOVSX ou MOVZX sur l'unité générale).
PTEST Même chose que l'instruction générale TEST, c’est-à-dire qu'elle change les drapeaux ZF et CF de RFLAGS en opérant une conjonction logique (AND) entre les opérandes. L'instruction arme le drapeau ZF si au moins un des bits est armé (résultat du AND), et le drapeau CF si tous les bits correspondent.
PCMPEQQ Compare des quadruples mots (QWORDs - 64 bits) en les testant pour une égalité.
PACKUSDW Convertit des doubles mots (DWORDs - 32 bits) signés en mots (WORDs - 16 bits) non signés avec saturation.
MOVNTDQA Déplace un double quadruple mot (DQWORD - 128 bits) de la mémoire vers un registre XMM en utilisant un non temporal hint. L'opération n'est effectuée que si la mémoire est de type WC (Write Combining). Cette instruction est par exemple utile pour retrouver un résultat depuis des périphériques attachés au bus mémoire.

Voir aussi

Articles connexes

Liens externes

Références

  • Portail de l’électricité et de l’électronique Portail de l’électricité et de l’électronique
  • Portail de l’informatique Portail de l’informatique
Ce document provient de « SSE4 ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Streaming SIMD Extension 4 de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Streaming simd extension 2 — Streaming SIMD Extension 2, généralement abrégé SSE2. Elle est composée de 144 instructions et fait son apparition avec le Pentium 4 d Intel. Elle gère des registres 128 bits pour les entiers et les flottants simples et doubles précision.… …   Wikipédia en Français

  • Streaming SIMD Extension 2 — Streaming SIMD Extension 2, généralement abrégé SSE2. Elle est composée de 144 instructions et fait son apparition avec le Pentium 4 d’Intel. Elle gère des registres 128 bits pour les entiers et les flottants simples et doubles… …   Wikipédia en Français

  • Streaming SIMD Extension 5 — SSE5 SSE5 (pour Streaming SIMD Extensions version 5) annoncé par AMD le 30 août 2007, est un jeu d’instructions supplémentaires 128 bit pour l architecture AMD64 du processeur Bulldozer dont la production doit commencer en 2011[1].… …   Wikipédia en Français

  • Streaming SIMD Extension 3 — SSE3 SSE3, connu aussi par son nom de code interne Prescott New Instructions (PNI), est la troisième génération du jeu d instructions SSE pour l architecture IA 32. Intel a introduit SSE3 au début de l année 2004 avec la version Prescott de son… …   Wikipédia en Français

  • Supplemental Streaming SIMD Extension 3 — SSSE3 Supplemental Streaming SIMD Extension 3 (SSSE3) aussi connu sous le nom de code Tejas New Instructions (TNI) est le quatrième jeu d instruction SSE, souvent nommé à tort SSE4. Introduit par Intel dans son architecture Core, le jeu d… …   Wikipédia en Français

  • Streaming SIMD Extensions — (SSE) is a SIMD (Single Instruction, Multiple Data) instruction set extension to the x86 architecture, designed by Intel and introduced in 1999 in their Pentium III series processors as a reply to AMD s 3DNow! (which had debuted a year earlier).… …   Wikipedia

  • Internet Streaming SIMD Extensions — Die Streaming SIMD Extensions (SSE), früher auch Internet Streaming Extensions (ISSE) ist eine von Intel entwickelte Befehlssatzerweiterung der x86er Architektur, welche mit der Einführung des Pentium III (Katmai) Prozessors vorgestellt wurde und …   Deutsch Wikipedia

  • SIMD — Flynnsche Klassifikation   Single Instruction Multiple Instruction Single Data SISD MISD Multiple Data SIMD MIMD Die Flynnsche Klassifikation [1] …   Deutsch Wikipedia

  • Multi Media Extension — Intel Prozessor mit MMX Die Multi Media Extension (kurz MMX) ist eine Anfang 1997 von Intel auf den Markt gebrachte Rechnerarchitektur, die es erlaubt, größere Datenmengen parallelisiert und somit schneller zu verarbeiten. Die… …   Deutsch Wikipedia

  • SSE2 — Streaming SIMD Extension 2 Streaming SIMD Extension 2, généralement abrégé SSE2. Elle est composée de 144 instructions et fait son apparition avec le Pentium 4 d Intel. Elle gère des registres 128 bits pour les entiers et les flottants… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”