Cours de la section AIE


Architecture des systèmes programmés

La technologie MMX

par Jacques WEISS


Introduction
Formats
Instructions
Exemples

  • Calcul Vectoriel
  • Calcul Matriciel
  • Chroma Key
  • Alpha Blending
  • DCT
  • 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 :

    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 :

    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 :

    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 :

  • FP --> MMX : < 25 cycles d’horloge
  • MMX --> FP : < 50 cycles d’horloge

    Exemple : Simulateur de vol :

  • Calcul de la trajectoire : FPU
  • Calcul des textures : MMX

    Multi-tâches :
    La commutation de tâches demande entre 1000 et 10.000 cycles d’horloge (suivant le système d’exploitation) pour sauvegarder et restaurer le contexte (données et registres d’état ; l’incidence du MMX est, dans ce cas, négligeable.)