Intel Pentium III

Publié le 01/03/1999 par
Imprimer

SSE ? Késako ?

SSE signifie Streaming SIMD Extensions. Il s’agit en fait d’un nouveau jeu de 70 instructions utilisant la technologie SIMD (Single Instruction, Multiple Data). Le jeu d’instruction CISC (Complex Instruction Set Computer) utilisé par les processeurs PC, le x86, utilisait jusqu´à présent des instructions travaillant en SISD (Single Instruction, Single Data). En pratique, chaque instruction travaillait sur une seule donnée.

mmx.jpg (15308 octets)Le MMX, introduit en Janvier 1997 avec le Pentium MMX, fut le premier jeu d’instruction exploitant le SIMD. Il apportait au x86 sa première grosse évolution, avec 57 nouvelles instructions destinées à booster les performances dans le domaine du traitement de l’image, de la vidéo, du son et de la 3D. Les instructions MMX pouvaient traiter jusqu´à 4 donnés, d’ou des performances quadruplées en théorie. Seul problème, les instructions MMX ne s’appliquaient qu’aux nombres entiers, et étaient donc peu utile dans la plupart des utilisations qui leurs étaient attribués. Seuls quelques applications bien particulières, comme Photoshop lors de l’utilisation de certains filtres, tiraient vraiment partis de ce nouveau jeu d’instruction. Car si le MMX pouvait être bénéfique pour le traitement sonore, il ne pouvait pas être utilisé dans un jeu 3D. En effet, les ingénieurs d’Intel avaient eu à l’époque la mauvaise idée d’utiliser les registres dédiés au calculs en virgule flottante pour l’exécution des instructions MMX. Le passage d’instructions MMX aux instructions FP faisait donc perdre pas mal de cycle d’horloge processeur, ce qui annulait le gain du MMX. Bref, le MMX fut un échec.

k62_5.gif (7668 octets)AMD fut le premier à tirer parti intelligemment de la technologie SIMD, en l’application aux instructions de type FP (s’appliquant au traitement de nombre à virgule flottante). Ce jeu de 21 nouvelles instructions, appelé 3D Now !, utilisait toujours les 8 registres 64 Bits FP/MMX, mais cela ne posait pas trop de problème. En effet, les développeurs de jeux 3D avaient plus ou moins abandonnés l’idée, et comme les instructions 3D Now ! viennent remplacer en grande partie les instructions FP, le problème de partage de registres est minime même s’il existe. Chaque instruction 3D Now ! peut traiter jusqu´à 2 données, ce qui double en théorie les performances. De plus, avec l’implémentation actuelle du 3D Now ! dans les processeurs AMD, il est possible d’exécuter jusqu´à 2 instructions 3D Now ! par cycle d’horloge s’il s’agit de deux additions ou de deux multiplications. On arrive donc, en théorie, a des performances multipliées par 4.

Le SSE est la réponse d’Intel au 3D Now ! d’AMD. Ce jeu de 70 nouvelles instructions est composés de quelques instructions dédiées à la gestion du cache (portant la bande passante utilisable par un PIII à 790 Mo /s, contre 640 Mo /s pour un Pentium II), de quelques instructions SIMD venant compléter le MMX, et surtout de 52 instructions SIMD FP, comme le 3D Now !. Première chose, les instructions SSE disposent de 8 nouveaux registres 128 Bits. D’une part, les instructions SSE peuvent donc être utilisés en parallèle avec les instructions MMX/FP, et d’autres part une instruction SSE peut ainsi traiter jusqu´à 4 nombres flottants codés en 32 Bits, contre deux pour les instructions 3D Now !. Ceci équivaut donc au performances théoriques du 3D Now !, mais attention le 3D Now ! ne les atteints que lorsqu’il s’agit de deux additions ou de deux multiplication alors qu’avec les instructions SSE à tout les coups on gagne. De plus, et contrairement au 3D Now !, les instructions SSE ne sont pas uniquement consacrées a l’accélération de la 3D Temps réel et s’appliquent en théorie à la 3D bien sur, mais aussi au traitement de l’image, de la vidéo, du son, sans oublier la reconnaissance vocale.

Ici s’arrête la théorie, car si en théorie les instructions utilisant le SIMD améliore grandement les performances, jusqu´à x4 en théorie, c’est différent en pratique, l’expérience acquise avec le MMX et du 3D Now ! l’a démontrée. D’une part il faut que les programmes soit écrits pour utiliser ces instructions (ou utilisent complètement Direct X 6.1, même le moteur 3D, plutôt mourir :-), et d’autre part, il faut que le programme soit écris dans l’optique d’une exécution sur des processeurs utilisant des instructions SIMD. C’est pourquoi certains jeux existants, même patchés 3D Now ! ou SSE, ne tirent pas vraiment partis de ses instructions. Il faudra attendre les prochains moteurs de jeux 3D conçus dès le départ pour tirer partie des instructions SIMD pour que ces instructions prennent toute leur ampleur.

En attendant, ce n’est pas une raison pour ne pas évaluer le Pentium III et les instructions SSE.

Vos réactions

Top articles