27/10/2005

Les différents jeux d'instructions des processeurs


Les différents jeux d'instructions des processeurs
 

Un jeu d'instructions c’est quoi ? C’est l’ensemble des opérations que peut exécuter un processeur dès qu’il en reçoit l’ordre lors de l’exécution d’un programme. Chaque phase d’opération est définie par un code que l’on nomme en abrégée (Code-Op) qui signifie (Code-Opération) auquel peuvent être associées des opérantes. On dit aussi qu’une suite d’instructions associées à des données forme un programme. Par exemple au démarrage de votre ordinateur le processeur exécute des instructions à partir d’une adresse fixe définie par le constructeur (BIOS). On appelle le jeu d’instructions d’un processeur le langage machine. Il existe pour les processeurs deux modes de jeux d’instructions prioritaires CISC et RISC :

 

 

 

Le mode complexe CISC pour (Complex Instruction Set Computer) en anglais, en français cela désigne un processeur qui intègre de très nombreuses instructions mixées à des modes d’adressages très complexes.

 

Le mode réduit RISC pour (Reducer Instruction Set Computer) en anglais, en français cela désigne la taille des instructions, donc leur nombre serait fixe ce qui permet d’occuper moins de place en mémoire et grâce à leurs simplifications d’accélérer le vitesse d’exécution.

 

Les instructions SIMD sont dotées de plusieurs unités de calcul fonctionnant en parallèle. Cela permet au processeur d’améliorer la vitesse de traitement sur les calculs impliquant des nombres à virgule flottante. Ces jeux d’instructions sont d’abord programmés, optimisés pour accélérer des applications bien spécifiques et ensuite intégrés au cœur du processeur.    

 

Les instructions SIMD pour (Single Instruction Multiple Data) qui ont pour famille le jeu d’instructions MMX, SS1, SSE2 et SSE3 pour les processeurs Intel. Pour AMD 3DNow, 3DNow 2, SSE2 et SSE3 dernièrement pour les Athlon AMD 64 au Core Venice et SanDiego.

 

Le jeu d’instructions MMX a été développé par INTEL (MultiMedia eXtensions) en anglais, en français (Extensions Multimédia). Il est composé de 57 instructions et intégré pour la toute première fois sur les processeurs Intel Pentium, puis sur les AMD K6 et plus tard sur les Cyrix MII. Ces instructions vont permettent d’accélérer certaines opérations répétitives dans des domaines tels que le traitement de l’image 2D, du son et des communications.

 

Les processeurs INTEL compatible avec le jeu d'instructions MMX sont :

Le Pentium MMX, le Pentium II, le Pentium III et le Pentium 4.

 

Les processeurs AMD compatible avec le jeu d'instructions MMX sont :

L'Athlon, le Duron, l'Athlon XP, le Sempron et l'Athlon 64

 

Le jeu d’instructions 3DNow! et 3DNow!-2 multimédia a été développé par AMD. Il est introduit en 1997 avec le K6-2. Elle regroupe 21 instructions et 8 registres FP/MMX. Chaque instruction 3DNow! permet de traiter jusqu’à 2 opérations entières ou flottantes par cycle d’horloge. Ce qui double en théorie les performances. L’implémentation actuelle du 3DNow! dans les processeurs AMD, permet d’exécuter jusqu’à 2 instructions 3DNow! par cycle d’horloge lorsqu’il s’agit par exemple de deux additions ou de deux multiplications. On arrive donc, en théorie, à des performances multipliées par 4. Cette technologie basée sur les opérations SIMD, a donc pour vocation comme pour l’MMX d’Intel d'accélérer le traitement du processeur. Le 3DNow! a surtout été crée par AMD pour palier à la faiblesse de ses K6 dans les calculs en virgule flottante. Les performances en la matière commençaient en effet à devenir de plus en plus cruciales pour les jeux et les applications multimédias et Intel avait pris une grande avance en la matière avec ses Pentiums. Les processeurs AMD peinaient de plus en plus et pour palier à cette faiblesse et en attendant l’Athlon, la firme a donc introduit sont propre jeu d’instructions.

 

D’autres processeurs vont bénéficier du jeu d’instructions 3DNow! et MMX :

Les processeurs de la firme VIA avec le C5A-Samuel MMX, 3DNow! le C5B-Samuel 2 : MMX, 3DNow!, et le C5C-Ezra(-T) : MMX, 3DNow!

Les processeurs de Transmeta Corp. avec le Crusoe et l’Efficeon MMX, 3DNow!, 3DNow!-2 Enhanced.

 

 

SSE, en anglais (Streaming SIMD Extensions) est le nom donné par Intel aux 70 nouvelles instructions de type MMX ajoutées pour la première fois au processeur Pentium III (également appelée KNI Katmai New Instructions) en 1999 et ont été étendues au Celeron à partie du 533A puis ensuite aux Celerons plus rapide basés sur le cœur du Pentium III. La firme AMD les a portées ensuite sur ces processeurs à partie de l’Athlon XP. Ce premier jeu d’instructions SSE intègre 8 nouveaux registres 128 bits ajoutés au processeur et peut réaliser quatre opérations simultanément. La mauvaise surprise que nous avait réservé Intel à cette époque, c’est d’avoir intégré ce jeu d’instructions sur le Pentium III avec un BUS de 64 bits ce qui a eu pour effet de brider les performances du SSE. Les instructions SSE comprennent de nouvelles instructions en virgule flottante, des instructions sur les nombres entiers supplémentaires et des instructions de contrôle de l’utilisation de la mémoire cache qui fera l’objet prochainement d’un article. Elle améliore le traitement avancé des images, les procédés 3D vidéo, la diffusion du son et des vidéos telles que les disques vidéo DVD. Les instructions SSE et SSE2 sont particulièrement utiles pour le décodage MPEG-2, qui est le standard utilisé pour les disques vidéo DVD en anglais (Digital Video Disc) en français (disque numérique vidéo).

 

SSE2, ces instructions sont apparues avec l’arrivée du Pentium 4 en 2000. AMD les intégrera en 2003 sur ces processeurs nouvelles génération K8. Une partie des instructions SSE2 sont aussi supportée par les Athlons XP. En plus des 70 anciennes instructions du SSE, le SSE2 va en rajouter 144 nouvelles et contient bien évidemment toutes les instructions précédentes MMX et SSE.

 

SSE3, ces 13 nouvelles instructions sont apparues avec l’arrivée du Pentium 4 au Core Prescott en 2004. Je poste le détail technique ci-dessous de ces instructions pour les intéressés et les savants. Ces 13 nouvelles instructions sont juste une évolution et il ne s’agit pas d’un jeu d’instructions à part entière, mais plutôt d’un complément aux jeux d’instructions existant qui sont le MMX, SSE et SSE2.      

 

Détails des 13 nouvelles instructions SS3

 

1 instruction x87 (FPU) pour la conversion de flottants en entiers (fisttp)
3 instructions SIMD 128 bits pour la duplication de données (movsldup, movshdup, movddup)
1 instruction SIMD 128 bits pour le chargement de données non alignées (lddqu)
2 instructions SIMD 128 bits pour l’addiction en calcul vertical (addsubps, addsubpd)
4 instructions SIMD 128 bits pour l’addition / soustraction en calcul horizontal (haddps, hsubps, haddpd, hsubpd)
2 instructions dédiées à la synchronisation des threads (monitor, mwait)


10:55 Écrit par CPU History-fr | Lien permanent | Commentaires (2) |  Facebook |

Commentaires

Vraiment sympathique le dessin de votre blogue, nous l'aime beaucoup, l'avez-vous provoquer vous même ?

Écrit par : paris sportifs les bonus | 13/05/2014

Bravo pour votre super article, plus ou moins complet et précis, interminable existence à votre blogging.

Écrit par : pronostic france honduras coupe du monde | 15/06/2014

Les commentaires sont fermés.