Next: Stratégie de définition Up: Jeu d'instructions Previous: Introduction

Quelques généralités

RISC ou CISC

Tous les jeux d'instructions introduits depuis 1985 sont de type RISC. Parmi les caractéristiques des architectures RISC, on peut citer : un format fixe des instructions, un nombre d'instructions limité, des instructions réalisant des opérations simples avec un temps d'exécution constant et des instructions <<registre-registre>>, les seules instructions accédant à la mémoire sont les instructions load (chargement d'un registre) et store (rangement d'un registre). Les jeux d'instructions RISC permettent au compilateur et au générateur de code d'optimiser l'exécution des programmes en exposant directement le matériel au compilateur ; ils sont, de plus, relativement simples à pipeliner.

Au contraire, dans les jeux d'instructions de type CISC, le nombre d'instructions est important et la plupart des instructions accèdent à la mémoire (parfois plusieurs fois). Ceci est lié au faible nombre de registres de ce type d'architecture. Dans la plupart des cas, ces jeux d'instructions possèdent un grand nombre de modes d'adressage. Comme le tâche exécutée par une instruction est très variable, la taille des instructions l'est aussi, ce qui complique le pipeline d'instructions. L'utilisation du jeu d'instructions CISC masque le matériel au compilateur et laisse peu de latitude pour l'optimisation logicielle de la gestion du pipeline.

Les normes et les héritages

Le MIPS R10000, comme le MIPS R8000, implémente le jeu d'instructions MIPS IV [5]. Ce jeu d'instructions est un sur-ensemble du jeu d'instructions MIPS III (utilisé sur le MIPS R4000) et donc un sur-ensemble du jeu d'instructions MIPS II. Le MIPS R10000 assure une compatibilité binaire ascendante avec les microprocesseurs MIPS R3000, MIPS R4000 et MIPS R8000. À noter que le MIPS R10000 implémente quelques instructions supplémentaires ne figurant pas dans la norme MIPS IV (par exemple une instruction de préchargement du cache, une instruction de store conditionnel...).

L'UltraSPARC implémente le jeu d'instructions défini par la norme SPARC V9 [6]. C'est le premier microprocesseur Sun à implémenter cette nouvelle norme. Il est de plus compatible avec le T.I. SuperSPARC [2] et le MicroSPARC qui implémentent le jeu d'instructions défini par la norme SPARC V8.

La principale difficulté, liée à la compatibilité, qu'ont due affronter les concepteurs de l'UltraSPARC et du MIPS R10000, est l'utilisation de branchements retardés définis dans les normes précédentes des architectures MIPS et SPARC.

Le PentiumPro, quant à lui, maintient une compatibilité ascendante avec ses prédécesseurs (80x86 jusqu'au Pentium), en gardant le jeu d'instructions du Pentium [8]. Seules quelques instructions ont été ajoutées par rapport au Pentium. Les faiblesses du jeu d'instructions xxx86 sont connues : nombre trop faible de registres, en particulier en flottant, instructions complexes nécessitant le support de microprogrammes, tailles variables des instructions... Mais l'avantage majeur du jeu d'instructions xxx86 est l'énorme base logicielle installée.



Next: Stratégie de définition Up: Jeu d'instructions Previous: Introduction


flloansi@IRISA.irisa.fr
Tue Jun 4 09:57:56 MET DST 1996