Microarchitecture des processeurs
La microarchitecture des processeurs est l'organisation matérielle interne qui implémente une architecture de jeu d'instructions, englobant le pipeline, les unités d'exécution, le renommage des registres et la logique de contrôle qui transforment un flux d'instructions en résultats calculés aussi rapidement que possible.
Definition
La microarchitecture est l'organisation logique concrète d'un processeur — ses étages de pipeline, ses unités fonctionnelles, ses tampons et son contrôle — qui réalise le comportement spécifié par une architecture de jeu d'instructions tout en recherchant des performances et une efficacité élevées.
Scope
Ce domaine couvre la manière dont un processeur est construit sous l'interface ISA : le chemin de données et le contrôle, le pipelining et les aléas qui le limitent, les techniques d'extraction du parallélisme au niveau des instructions, la prédiction de branchement, l'exécution spéculative et dans le désordre, ainsi que les structures d'ordonnancement qui maintiennent les unités d'exécution occupées. Il exclut le jeu d'instructions visible lui-même (architecture de jeu d'instructions) et le sous-système mémoire au-delà des premiers niveaux de cache (hiérarchie de la mémoire et caches), ainsi que l'organisation multi-cœur (architecture parallèle et multicœur).
Sub-topics
Core questions
- Comment le pipelining chevauche-t-il l'exécution des instructions, et quels aléas structurels, de données et de contrôle le limitent-ils ?
- Quelle quantité de parallélisme au niveau des instructions existe dans un programme, et comment le matériel peut-il l'extraire ?
- Comment la prédiction de branchement réduit-elle le coût des aléas de contrôle dans les pipelines profonds ?
- Comment l'exécution dans le désordre et le renommage des registres exposent-ils le parallélisme tout en préservant la sémantique du programme ?
- Comment la performance, la consommation d'énergie et la complexité sont-elles arbitrées dans la conception microarchitecturale ?
Key concepts
- chemin de données et contrôle
- pipeline d'instructions
- aléas structurels, de données et de contrôle
- transfert (forwarding) et contournement (bypassing)
- parallélisme au niveau des instructions
- prédiction de branchement
- exécution spéculative
- exécution dans le désordre
- renommage des registres
- émission superscalaire
Key theories
- Pipelining
- Le chevauchement de l'exécution de plusieurs instructions par étapes augmente le débit d'instructions ; l'accélération réalisable est limitée par la profondeur du pipeline et les blocages introduits par les aléas et les dépendances.
- Ordonnancement dynamique et renommage des registres
- L'algorithme de Tomasulo ordonnance dynamiquement les instructions sur les unités d'exécution et renomme les registres via des stations de réservation et un bus de données commun, permettant aux instructions de s'exécuter dans le désordre tout en respectant les véritables dépendances de données — le fondement des processeurs modernes à exécution dans le désordre.
Mechanisms
Un processeur pipeliné divise le traitement des instructions en étapes (fetch, decode, execute, memory, writeback) de sorte que plusieurs instructions soient en cours d'exécution simultanément. Les aléas — un résultat nécessaire non encore disponible, une ressource contestée ou une branche non résolue — sont gérés par le transfert (forwarding), le blocage (stalling), la prédiction et la spéculation. Les cœurs superscalaires à exécution dans le désordre ajoutent des stations de réservation, des tampons de réordonnancement et du renommage afin que les instructions indépendantes s'exécutent dès que leurs opérandes sont prêts et que les résultats soient validés dans l'ordre du programme.
Clinical relevance
La microarchitecture détermine la vitesse réelle et l'efficacité énergétique des processeurs : le pipelining, l'émission superscalaire et l'exécution dans le désordre sont à la base des performances de presque tous les CPU modernes. La conception microarchitecturale a également des conséquences en matière de sécurité — les canaux auxiliaires d'exécution spéculative tels que Spectre et Meltdown découlent directement des fonctionnalités de performance.
History
Le pipelining et les unités fonctionnelles multiples sont apparus dans l'IBM System/360 Model 91 et le CDC 6600 dans les années 1960, où Tomasulo a introduit l'ordonnancement dynamique. Les microarchitectures RISC des années 1980 ont généralisé les pipelines profonds, et les conceptions superscalaires à exécution dans le désordre sont devenues dominantes dans les CPU haute performance tout au long des années 1990 et 2000. Une spéculation agressive a ensuite révélé les canaux auxiliaires microarchitecturaux rendus publics en 2018.
Debates
- Spéculation agressive versus sécurité et efficacité
- L'exécution spéculative profonde dans le désordre améliore les performances mono-thread mais augmente la consommation d'énergie et a permis des attaques de sécurité par exécution transitoire, suscitant un débat sur la pertinence d'une telle spéculation par rapport à des conceptions plus simples, plus efficaces ou plus prévisibles.
Key figures
- Robert Tomasulo
- John L. Hennessy
- David A. Patterson
- Yale Patt
- James E. Smith
Related topics
Seminal works
- hennessy2019
- tomasulo1967
- patterson2020
Frequently asked questions
- Quelle est la différence entre l'exécution dans l'ordre et l'exécution dans le désordre ?
- Un processeur dans l'ordre exécute les instructions strictement dans l'ordre du programme, se bloquant lorsque les opérandes d'une instruction ne sont pas prêts. Un processeur dans le désordre exécute toute instruction dont les opérandes sont disponibles, utilisant des tampons et le renommage pour réordonner l'exécution tout en validant les résultats dans l'ordre du programme.
- Pourquoi la prédiction de branchement est-elle importante ?
- Les pipelines profonds récupèrent et commencent à exécuter des instructions avant que la direction d'un branchement ne soit connue. Une prédiction de branchement précise permet au processeur de maintenir le pipeline plein le long du chemin probable ; une erreur de prédiction gaspille le travail spéculatif et entraîne une pénalité de plusieurs cycles.