article

Le microprocesseur à jeu d'instruction réduit ou reduced instruction-set computer en anglais est une architecture matérielle de microprocesseurs. On l'a opposé à la fin des années 1980 et au début des années 1990 à l'architecture CISC (complex instruction-set computer). La sortie d'architectures hybrides comme le Pentium (CISC émulé par du RISC) a mis fin par disparition de repères à cette guerre qui était devenue bien plus marketing que technique vers 1990, les techniques ayant évolué de part et d'autre et chacune comparant ses procédés à ceux de l'autre... six ans plus tôt.

Principe


L'idée d'origine provient de l'analyse des séquences de codes qui montrait que la grande majorité des instructions disponibles étaient très peu utilisées. Ainsi, seul un jeu très réduit d'instructions était majoritairement uilisé dans les programmes. Par conséquent, les microprocesseurs étaient dimensionnés pour de nombreuse instructions alors que seul un petit nombre était effectivement utilisé. Ainsi, l'architecture RISC fait le choix de limiter le jeu d'instructions à seulement quelques unes, imposant, en contrepartie, à toutes, un nombre identique de cycles pour s'exécuter. De cette manière, il est possible de débuter une nouvelle instruction à chaque cycle d'horloge, ceci constitue le « pipeline ». L'avantage de cette technique est que désormais, le processeur se comporte comme s'il y avait une instruction par cycle d'horloge. De plus, la division de chaque instruction en plusieurs étapes autorise une fréquence d'horloge plus grande puisque la profondeur combinatoire entre deux registres est diminuée. Ces deux caractéristiques ont pour conséquence une division du temps d'exécution pour toutes les instructions de base.

Pénalité

Cela se paye au prix d'une certaine diminution de lisibilité du code - surtout si on l'optimise - gênante si l'on programme en assembleur : l'instruction MVC (MoVe Character) du Système 360 restait tout de même plus lisible que la séquence d'instructions faisant la même chose dans une machine RISC. Mais pour qui la codait strncpy() en langage C, il n'y avait plus aucune différence. Et en temps d'exécution, le code C en optimisé se montrait en général plus performant en vitesse pure grâce à des astuces d'usage de l'effet pipeline par le compilateur.

Avantages

Du fait que chaque instruction était simple, le décodage et l'exécution par le processeur devaient être très rapides, idéalement en un seul cycle, ce qui était précisément le cas du Motorola 6800. Le succès de l'architecture RISC a tenu à deux facteurs :

  • la mémoire avait baissé de prix à un point tel qu'y concentrer des instructions compliquées perdait de sa rentabilité,
  • les temps d'accès de cette mémoire étaient devenus très faibles par rapport au temps de traitement d'une instruction complexe. Dans ces conditions, la mémoire passait l'essentiel de son temps à attendre le processeur.

C'est aujourd'hui (2004) l'inverse, raison pour laquelle on place des antémémoires (caches) un peu partout, y compris dans les machines RISC qui en ont plus souvent deux (données, instructions) qu'une seule.

Historique


Un processeur tel que le Transputer d'Inmos (plus tard STMicroelectronics) adopta la solution de remplacer les registres (dont la désignation consomme des bits dans les instructions) par une pile. D'autres machines RISC, au contraire, comme le RS/6000 d'IBM, multiplièrent les registres à un degré tel qu'on ne pouvait plus les programmer efficacement en assembleur, la mémoire du programmeur faisant toujours moins bien que les algorithmes d'optimisation des compilateurs de langage C.

Les processeurs de la famille PowerPC, dérivés du RS/6000 et utilisés entre autres sur les Macintosh sont à architecture RISC, de même que les processeurs SPARC utilisés entre autres par Sun Microsystems pour leurs serveurs et stations de travail.

Les micro-ordinateurs de type compatible PC étaient animés jusqu'à la génération 386 par des microprocesseurs de type CISC (NEC, STMicroelectronics, AMD, Intel...). Depuis la génération 486, l'architecture CISC est émulée dans les puces d'architecture IA-32 par la microprogrammation d'un processeur RISC sous-jacent.

Dans le monde de l'électronique embarquée, les processeurs ARM présentent également une architecture RISC.

Performances comparées CISC/RISC


On connaît un cas du même logiciel tournant à la fois sur une machine RISC microprogrammée émulant un CISC et en natif : il s'agit d'AIX tournant sur un IBM 9370 (puce IBM 860 microprogrammant une architecture 370) et, à la même époque, sur le PC/RT (6150) qui utilisait cette même puce 860 en natif) : l'écart de performances en calcul brut était alors d'un facteur 2 en faveur du PC/RT.

Aujourd'hui, les performances des 2 familles de processeurs sont sensiblement comparables.

Positionnement


  • L'unité de calcul des processeurs RISC, du fait de sa simplicité, est souvent plus petite. À taille de puce égale, on peut donc lui adjoindre un cache plus grand, et le plus souvent deux caches: un pour les données et l'autre pour les instructions (qu'il n'est jamais besoin de réécrire dans la mémoire principale, d'où plus grande simplicité des circuits).

Microprocesseur

RISC | RISC | RISC | RISC | Reduced Instruction Set Computing | Reduced instruction set computer | RISC | RISC | RISC לעומת CISC | RISC | RISC | RISC | RISC | RISC | Reduced Instruction Set Computer | RISC | RISC | RISC | RISC | RISC | RISC | RISC | Reduced instruction set computer | 精简指令集

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Reduced instruction set computer".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld