Reduced instruction set computer - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Un processeur HP RISC 7150

Le microprocesseur à jeu d'instruction réduit ou reduced instruction-set computer: RISC 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'origine l'analyse des séquences de codes 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 principalement utilisé dans les programmes. C'est pourquoi l'architecture RISC fait le choix de limiter le jeu d'instructions à seulement quelques unes, imposant à toutes, en contrepartie, 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 exécutée 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.

Inconvénients

Cela se paye au prix d'une certaine diminution de lisibilité du code gênante lorsque l'on programme en assembleur et surtout si on l'optimise : 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 strcpy() en langage C, il n'y avait plus aucune différence. Et en temps d'exécution, le code C 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, voir deux instructions par cycle, ce qui n'était pas le cas des instructions CISC. Sur les processeurs CISC les instructions étaient en général implémentées sous forme de micro-code dans le microprocesseur, chaque exécution de ce microcode prenait un cycle. Pour un Motorola 68000 par exemple, les instructions les plus rapides prenaient 4 cycles et les plus longues jusqu'à 160 cycles pour les divisions Cela à changé avec les Motorola 68030, dont certaines instructions pouvaient ne prendre qu'un cycle.

Au contraire, les processeurs RISC qui étaient utilisés sur des calculateurs plus puissants se sont vu ajouter des instructions du type MULADD (multiplication + addition), instruction la plus utilisée dans le calcul vectoriel et matriciel. Ces instructions câblées en dur ne prenait qu'un cycle pour multiplier 2 registres, y ajouter un autre registre et sauvegarder le résultat soit dans l'un de ces registres, soit dans un autre. C'est le cas par exemple dans l'architecture PowerPC, qui a équipé les Macintosh de 1994 à 2006, ou la BeBox, qui fut en 1995 le premier micro-ordinateur à double processeur.

Autre avantage du RISC sur le CISC et la perte d'énergie par dissipation thermique. Les premiers modèles de PowerPC ayant des capacités de calcul similaires ou supérieures aux x86 de la même époque, n'avaient pas besoin de dissipateurs thermiques, tandis que l'on commençait à voir apparaitre des combinaisons de radiateurs et de ventilateurs sur ces derniers.

Page générée en 0.093 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise