Articles

Architectures RISC et CISC : Laquelle est la meilleure ?

Posted on

L’ordinateur à jeu d’instructions réduit (RISC) est un type ou une catégorie de processeur, ou architecture à jeu d’instructions (ISA). D’une manière générale, une ISA est un moyen par lequel un processeur communique avec le programmeur humain (bien qu’il existe plusieurs autres couches formellement identifiées entre le processeur et le programmeur). Une instruction est une commande donnée au processeur pour effectuer une action. Un jeu d’instructions est la collection complète d’instructions pour un processeur donné, et le terme architecture implique une façon particulière de construire le système qui constitue le processeur.

Le RISC désigne généralement une version simplifiée de son prédécesseur, le Complex Instruction Set Computer (CISC). À l’aube des processeurs, il n’y avait pas d’identification formelle connue sous le nom de CISC, mais le terme a depuis été inventé pour les identifier comme différents de l’architecture RISC. Parmi les exemples d’architectures de jeu d’instructions (ISA) de microprocesseurs CISC, citons le Motorola 68000 (68K), le DEC VAX, le PDP-11, plusieurs générations du Intel x86 et le 8051.

Les exemples de processeurs à architecture RISC comprennent le MIPS, le PowerPC, l’AVR d’Atmel, les processeurs PIC de Microchip, les processeurs Arm, le RISC-V, et tous les microprocesseurs modernes comportent au moins quelques éléments de RISC. La progression des architectures 8 et 16 bits vers les architectures 32 bits a essentiellement imposé le besoin d’architectures RISC. Néanmoins, il a fallu une décennie avant que les architectures RISC ne commencent à s’imposer, principalement en raison du manque de logiciels pouvant fonctionner sur les architectures RISC. Intel a également eu un impact, puisqu’il avait les moyens de continuer à utiliser l’architecture CISC et n’a pas eu besoin de la redessiner depuis le début. L’architecture MIPS a été l’une des premières ISA RISC et a été largement utilisée pour enseigner l’architecture RISC.

Un peu d’histoire
La première puce intégrée a été conçue en 1958 par Jack Kilby. Les microprocesseurs ont été introduits dans les années 1970, le premier commercial venant d’Intel Corporation. Au début des années 1980, l’architecture RISC a été introduite. La conception du RISC est le résultat d’une refonte totale, car l’architecture CISC devenait de plus en plus complexe. La plupart des gens attribuent à John Cocke d’IBM la paternité du concept RISC. L’histoire nous apprend que pour obtenir un ordinateur plus rapide, certains changements majeurs ont été apportés à l’architecture du microprocesseur qui est devenu RISC, notamment un format uniforme pour les instructions et des instructions facilement pipelinées. (Le pipelining signifie que le processeur commence à exécuter l’instruction suivante avant que l’instruction actuelle ne soit terminée). Dans les années 1970, la mémoire étant coûteuse, les petits programmes étaient au centre des préoccupations.

Quelles sont les différences entre RISC et CISC ?
La réponse courte est que le RISC est perçu par beaucoup comme une amélioration par rapport au CISC. Il n’y a pas de meilleure architecture puisque différentes architectures peuvent simplement être meilleures dans certains scénarios mais moins idéales dans d’autres. Les machines basées sur RISC exécutent une instruction par cycle d’horloge. Les machines CISC peuvent avoir des instructions spéciales ainsi que des instructions qui prennent plus d’un cycle pour s’exécuter. Cela signifie que la même instruction exécutée sur une architecture CISC peut prendre plusieurs instructions pour être exécutée sur une machine RISC. L’architecture RISC aura besoin de plus de mémoire de travail (RAM) que l’architecture CISC pour conserver les valeurs pendant qu’elle charge chaque instruction, agit sur elle, puis charge la suivante.

L’architecture CISC peut exécuter une seule instruction, bien que plus complexe, qui effectue les mêmes opérations, en une seule fois, directement sur la mémoire. Ainsi, l’architecture RISC nécessite plus de mémoire vive mais exécute toujours une instruction par cycle d’horloge pour un traitement prévisible, ce qui est bon pour le pipelining. L’une des principales différences entre RISC et CISC est que RISC met l’accent sur l’efficacité des cycles par instruction et CISC sur l’efficacité des instructions par programme. La rapidité d’un processeur dépend du temps nécessaire à l’exécution de chaque cycle d’horloge, du nombre de cycles nécessaires à l’exécution des instructions et du nombre d’instructions contenues dans chaque programme. Le RISC met l’accent sur des tailles de code de programme plus importantes (en raison d’un jeu d’instructions plus petit, de sorte que plusieurs étapes effectuées successivement peuvent équivaloir à une étape en CISC).

L’ISA RISC met l’accent sur le logiciel par rapport au matériel. Le jeu d’instructions RISC exige que l’on écrive des logiciels plus efficaces (par exemple, des compilateurs ou du code) avec moins d’instructions. Les ISA CISC utilisent plus de transistors dans le matériel pour mettre en œuvre plus d’instructions et des instructions plus complexes également.

Le RISC a besoin de plus de RAM, tandis que le CISC met l’accent sur une taille de code plus petite et utilise globalement moins de RAM que le RISC. De nombreux microprocesseurs actuels détiennent cependant un mélange d’attributs de type RISC et CISC, comme un ISA de type CISC qui traite les instructions comme s’il s’agissait d’une chaîne d’instructions de type RISC.

Certaines des principales différences entre les architectures CISC et RISC sont énumérées dans le tableau 1.

RISC vs CISC
Tableau 1 : Tableau de certaines des différences entre les architectures de jeu d’instructions (ISA) CISC et RISC.

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *