Qu'est-ce que Architecture du jeu d'instructions (ISA) ?
Spécification du processeur vue par le logiciel : instructions exécutables, registres, etc. Exemples : x86, Arm, RISC-V.
Nom japonais: 命令セットアーキテクチャ(ISA)
« Architecture du jeu d'instructions (ISA) » apparaît dans 12 questions d'entraînement réparties sur 4 thèmes, dont ISA et assembleur, CPU et architecture, Analyse des performances.
Domaine: CPU et architecture
ISA et microarchitecture
La microarchitecture est la manière dont un processeur donné implémente l'ISA : profondeur du pipeline, taille des caches, prédicteurs de branchement, nombre d'instructions émises par cycle. Une même ISA peut être implémentée par de minuscules cœurs basse consommation comme par de grands cœurs à exécution dans le désordre, qui exécutent le même code machine à des vitesses très différentes. Dans l'équation de performance, temps d'exécution = nombre d'instructions × cycles par instruction (CPI) × durée de cycle, l'ISA et le compilateur fixent principalement le nombre d'instructions, la microarchitecture le CPI, et les circuits et la technologie de fabrication la durée de cycle. Les attaques de type Spectre exploitent cette frontière : l'état architectural issu d'une spéculation erronée est annulé, mais pas le contenu des caches.
ISA modulaires et ouvertes
RISC-V est une ISA ouverte dont la spécification peut être implémentée par quiconque sans redevance de licence. Elle combine un petit jeu d'instructions entières de base (RV32I ou RV64I, environ 40 instructions) avec des extensions optionnelles : M pour la multiplication et la division, A pour les opérations atomiques, F et D pour la virgule flottante, C pour les instructions compressées, V pour les vecteurs, ainsi que des instructions personnalisées. Omettre une extension économise de la surface mais coûte en vitesse : sans M, le compilateur transforme une multiplication en C en appel à une routine de bibliothèque qui multiplie par décalages et additions. Arm et x86 sont propriétaires, et sont concédés sous licence ou implémentés par leurs détenteurs.
Questions fréquentes
Quelle est la différence entre une ISA et une microarchitecture ?
L'ISA est la spécification que voit le logiciel : instructions, registres et comportement. La microarchitecture est une conception matérielle particulière qui implémente cette spécification : deux processeurs de microarchitectures différentes peuvent donc exécuter les mêmes programmes s'ils partagent la même ISA.
x86, Arm et RISC-V sont-ils des architectures de jeu d'instructions ?
Oui. Ce sont trois ISA différentes : le code machine compilé pour l'une ne peut pas s'exécuter directement sur une autre, même si chacune est implémentée par de nombreuses conceptions de processeurs différentes.
Quelle est la différence entre une ISA et une ABI ?
L'ISA définit ce que le processeur exécute, tandis que l'ABI est une convention logicielle construite par-dessus, qui couvre les conventions d'appel, la taille des types de données et les appels système. Une même ISA peut avoir plusieurs ABI, par exemple pour différents systèmes d'exploitation.