Embrouilleur
Mise en oeuvre

La technologie MMX est un concept intel datant de 1996 intégré dans les processeurs x86
de 5ème (PentiumTM) et 6ème
(Pentium ProTM) génération ; les produits résultants
sont :
Pentium MMX
Pentium II
Pentium, Pentium Pro
Le concept est né d'un constat sur l'utilisation actuelle et à venir
des processeurs intégrés dans les PC ; le point sensible concerne
le traitement de données multimédia, que ce soit pour le
codage/décodage source audio et vidéo ou pour le transport des données
(multiplexage/démultiplexage, embrouillage, ...) :
Applications Multimédia :
- Données :
- Vidéo : 8 bits
- DCT : 16 bits
- Audio : 16 bits
- Traitement :
- Calcul entier
- Opérations parallèles (RVB)
- Petites boucles
Les processeurs 32 bits, comme le pentium, ont été conçus pour
traiter des mots de 32 bits et ils y accèdent par un bus de
données de 64 bits
La réponse de la technologie MMX à cette mauvaise adaptation
des microprocesseurs 32 bits est la suivante :
- SIMD (Single Instruction, Multiple Data)
- 8 registres (MMX) 64 bits
- 4 nouveaux formats de données
- 57 nouvelles instructions
- Opérations parallèles (RVB)
- Arithmétique saturée
NB : La gestion d'arithmétique saturée est particulièrement
adaptée à l'image, puisque "plus blanc que le blanc" n'existe pas
et "Noir c'est Noir" est une évidence que les processeurs
standards ne connaissent pas.
Formats de données MMX
La technologie MMX ajoute 4 formats de données spécifiques ;
il s'agit de représenter, sur un mot de 64 bits, des données
sur 8, 16 ou 32 bits :
Instructions MMX
Catégorie :
- Arithmétique : 17 instructions
- Add/Sub : Wrap-around et Saturation (8, 16 et 32 bits)
- MUL : 16 bits
- Comparaison : 6 instructions
- Égalité/Supérieur (8, 16 et 32 bits)
- Conversion : 9 instructions
- Logique : 4 instructions
- Décalage : 16 instructions
- Arithmétique et Logique (8 à 64 bits)
- Transfert : 4 instructions
- Contrôle : 1 instruction
Exemples d'instructions MMX
Instructions arithmétiques
(opérandes sur 16 bits)
Instructions arithmétiques
(opérandes sur 16 bits)
Exemples d'applications MMX
Calcul Vectoriel

Calcul Vectoriel (MAC : Multiplication-Accumulation)
Calcul Matriciel

Calcul Matriciel (Exemple : manipulation d’objets 3D)
Chroma Key

Principe du "Chroma Key"

Chroma Key : Calcul du masque

Chroma Key : Mise en oeuvre MMX
Alpha Blending

Représentation des images (24 bits/pixel)

Principe du traitement "Alpha Blending"

Alpha Blending : Mise en oeuvre MMX
Transformée en Cosinus Distrète (DCT)

Calcul partiel de DCT avec MMX
Embrouillage (modem V.34)

Calcul d'embrouillage avec MMX
Mise en oeuvre MMX
MMX utilise le pipeline et les registres
d’état de l’unité flottante (FPU).
Dans un programme, les instructions MMX peuvent cohabiter
avec les instructions entières et flottantes mais la
commutation impose de vider les pipelines ; cela demande
un certain temps :