RISC vs CISC : différences et exemples
RISC (reduced instruction set computer) et CISC (complex instruction set computer) sont deux philosophies de conception d'un jeu d'instructions. Le RISC utilise un petit ensemble d'instructions simples, de longueur fixe et faciles à pipeliner. Le CISC utilise un ensemble plus large d'instructions complexes, de longueur variable, capables d'effectuer davantage de travail par instruction. Aujourd'hui, la frontière est floue : les processeurs x86 modernes traduisent les instructions CISC en opérations internes plus simples, si bien que la différence compte désormais surtout au niveau du jeu d'instructions et de l'écosystème logiciel.
| Critère | RISC | CISC |
|---|---|---|
| Principe | Un petit ensemble d'instructions simples, chacune faisant peu de choses et conçue pour s'exécuter rapidement | Un grand ensemble d'instructions puissantes, certaines effectuant plusieurs étapes à la fois |
| Longueur des instructions | Fixe (par exemple 32 bits dans les jeux d'instructions de base RISC-V et AArch64) | Variable (les instructions x86 font de 1 à 15 octets) |
| Accès mémoire | Architecture load/store : seules les instructions de chargement et de rangement accèdent à la mémoire ; les opérations arithmétiques portent sur les registres | De nombreuses instructions peuvent utiliser directement des opérandes en mémoire |
| Registres | De nombreux registres généraux (32 en RISC-V et AArch64) | Moins nombreux (x86-64 possède 16 registres généraux) |
| Décodage | Simple, ce qui facilite le pipelining et limite la taille du matériel | Complexe ; les cœurs x86 modernes traduisent les instructions en micro-opérations internes |
| Taille du code | Plus grande, bien que les extensions d'instructions compressées (comme Thumb ou RISC-V C) la réduisent | Souvent plus dense, car une instruction en fait davantage |
| Exemples | ARM, RISC-V, MIPS, PowerPC | x86 et x86-64 (Intel, AMD), IBM z/Architecture |
| Usages typiques | Smartphones, systèmes embarqués, et de plus en plus ordinateurs portables et serveurs | PC et serveurs, où la compatibilité logicielle est essentielle |
Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.