ScholarGate
Assistant

Architecture de jeu d'instructions

L'architecture de jeu d'instructions (ISA) est l'interface abstraite entre le matériel et le logiciel : l'ensemble des instructions, des registres, des types de données, des modes d'adressage et du modèle de mémoire qu'un processeur expose au programmeur et au compilateur.

Trouver un sujet avec PaperMindBientôtFind papers & topics
Tools & resources
Télécharger les diapositives
Learn & explore
VidéoBientôt

Definition

Une architecture de jeu d'instructions est le contrat qui définit les opérations qu'un processeur peut exécuter, les opérandes et le stockage sur lesquels elles agissent, et l'encodage binaire des programmes, de sorte que toute implémentation respectant ce contrat exécute le même code machine.

Scope

Ce domaine couvre ce qu'une machine fait du point de vue logiciel, indépendamment de la manière dont le matériel l'implémente. Il comprend les classes d'instructions (arithmétiques, logiques, de transfert de données, de contrôle), les formats et l'encodage des instructions, l'organisation des registres, les modes d'adressage, le modèle de mémoire et d'endianness, les exceptions et l'interface d'appels système, ainsi que les philosophies contrastées RISC et CISC. Il exclut la réalisation microarchitecturale d'une ISA — pipelines, caches et moteurs d'exécution dans le désordre — qui sont traités sous la microarchitecture des processeurs.

Sub-topics

Core questions

  • Quelles opérations, quels types d'opérandes et quels registres une ISA doit-elle exposer pour être une cible de programmation complète ?
  • Comment les instructions sont-elles encodées en binaire, et comment l'encodage concilie-t-il la densité du code et la simplicité de décodage ?
  • Comment les modes d'adressage spécifient-ils l'emplacement des opérandes dans les registres et la mémoire ?
  • Qu'est-ce qui distingue la philosophie RISC des instructions simples à format fixe de la philosophie CISC des instructions riches à longueur variable ?
  • Comment l'ISA est-elle maintenue stable en tant que contrat de compatibilité tout en étant étendue sur des décennies ?

Key concepts

  • formats d'instructions et codes d'opération (opcodes)
  • fichier de registres à usage général
  • modes d'adressage
  • architecture de type load-store
  • RISC vs CISC
  • endianness et alignement
  • compatibilité binaire
  • exceptions et appels système
  • extensions de jeu d'instructions

Key theories

Séparation architecture/implémentation
L'ISA est délibérément séparée de la microarchitecture afin que le même jeu d'instructions puisse être implémenté par de nombreuses organisations matérielles différentes à travers les générations, préservant la compatibilité binaire tout en permettant l'amélioration des performances.
Principes de conception RISC
L'argument du jeu d'instructions réduit soutient qu'un petit ensemble d'instructions simples, de longueur fixe et de registre à registre peut être efficacement pipeliné et bien compilé, surpassant souvent les jeux d'instructions complexes malgré l'exécution d'un plus grand nombre d'instructions.

Clinical relevance

L'ISA est l'actif pérenne d'une plateforme informatique : x86, ARM et RISC-V ancrent chacun de vastes écosystèmes logiciels, et les décisions concernant le jeu d'instructions déterminent quels compilateurs, systèmes d'exploitation et binaires peuvent s'exécuter. Les ISA stables permettent au matériel d'évoluer sous un logiciel inchangé, tandis que les ISA ouvertes comme RISC-V ont remodelé la conception et l'enseignement des processeurs.

History

Les premières machines exposaient des jeux d'instructions idiosyncrasiques ; l'IBM System/360 (1964) a été le pionnier de l'idée d'une ISA unique implémentée sur une famille de machines. Les années 1970 ont vu des jeux d'instructions de plus en plus complexes (CISC), provoquant la réaction RISC du début des années 1980 associée à Patterson à Berkeley et Hennessy à Stanford. L'ISA ouverte RISC-V, initiée à Berkeley vers 2010, a ravivé l'intérêt pour une conception de jeu d'instructions propre et extensible.

Debates

RISC versus CISC
La question de savoir si les jeux d'instructions simples à format fixe sont intrinsèquement supérieurs aux jeux complexes à longueur variable reste débattue ; en pratique, les implémentations CISC modernes à haute performance traduisent les instructions complexes en micro-opérations de type RISC en interne, estompant la distinction originale.

Key figures

  • David A. Patterson
  • John L. Hennessy
  • Gene Amdahl
  • Seymour Cray
  • Krste Asanović

Related topics

Seminal works

  • hennessy2019
  • patterson2020
  • patterson1980risc

Frequently asked questions

Quelle est la différence entre l'architecture de jeu d'instructions et la microarchitecture ?
L'ISA est l'interface visible — les instructions et les registres qu'un programme utilise — tandis que la microarchitecture est l'organisation matérielle interne (pipeline, caches, unités d'exécution) qui implémente cette interface. De nombreuses microarchitectures peuvent implémenter la même ISA.
Pourquoi la compatibilité binaire est-elle si importante ?
Parce que le logiciel est compilé pour une ISA spécifique, maintenir l'ISA stable permet aux utilisateurs d'exécuter des programmes existants sur de nouveaux processeurs sans recompilation, protégeant ainsi d'énormes investissements logiciels tandis que le matériel s'améliore en dessous.

Methods for this concept

Related concepts