PrécédentSommaire

Le goût du RISC

Pendant une longue période, la tendance générale à été de créer des processeurs de plus en plus complexes. L'idée était d'obtenir un jeu d'instructions aussi puissant que possible, chaque instruction devant faire le maximum de choses et l'homogénéité des opérations étant telle qu'il en fallait un minimum pour traiter un problème donné. Cette famille d'architectures est appelée CISC (Complex Instruction Set Computer). Elle a probablement culminé avec la série des Vax de Digital Equipement, où on en arrivait presque à dire que toute opération pouvait être utilisée sur tout format d'opérande et avec tout mode d'adressage (nombreux pour implémenter les différents cas de figures des langages compilés courants).

Cependant, si cela facilite l'écriture des compilateurs puisque le maximum de complexité est placé dans le hardware, on s'est aperçu que cette profusion était très mal utilisée, seulement 10 % du jeu d'instructions possibles étant générées par ces logiciels. Mis à part la difficulté de concevoir des circuits toujours plus complexes, le gros inconvénient de cette approche était aussi de ralentir leur fonctionnement.

De là est née l'idée du RISC (Reduced Instruction Set Computer) : avoir un minimum d'instructions, optimisées pour la vitesse. Bien souvent, ces processeurs n'ont qu'une seule façon d'accéder à la mémoire pour charger ou sauvegarder leurs registres. Ceux ci sont nombreux pour limiter les échanges d'information avec l'extérieur pendant un traitement donné (l'accès mémoire étant beaucoup plus lent que l'emploi des registres). Il faut trouver un équilibre entre la simplification du jeu d'instructions (et du circuit) et l'augmentation du code généré (puisque chaque opération réalise une plus petite partie du traitement), l'objectif étant toujours des performances optimales. Une personne de la société MIPS, spécialisée dans les microprocesseurs RISC, disait que pour cela, ils avaient d'abord conçu le jeu d'instructions (d'après le compilateur) et ensuite le circuit. Pour les générations suivantes, une nouvelle instruction ne pouvait être adoptée que si elle augmentait globalement la vitesse d'une grande variété de programmes d'au moins 2 %. Les processeurs RISC ne sont pas forcément moins complexes que les CISC mais la simplicité de l'implémentation des instructions doit permettre de se concentrer sur des fonctionnalités plus élaborées du composant.