Processeur superscalaire

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources (février 2021).

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Un processeur superscalaire est un processeur capable d'exécuter plusieurs instructions machine par cycle d'horloge. Pour cela, il comporte plusieurs unités de calcul utilisables en parallèle, et est capable de détecter l'absence de dépendances entre instructions.

## Objectifs

[modifier | modifier le code]

Un processeur superscalaire cherche à exploiter le parallélisme entre instructions pour accélérer l'exécution des programmes. Cette approche évite de modifier les programmes pour exploiter le parallélisme : le processeur détecte lui-même les instructions pouvant être exécutées en parallèle, contrairement à d'autres approches, comme le VLIW. Cependant, cette approche augmente aussi la complexité et la consommation d'énergie du matériel, ce qui limite les processeurs actuels à quelques instructions par cycle. Pour exploiter encore mieux le parallélisme disponible, on utilise donc des instructions vectorielles et des processeurs multithreads ou multicœurs.

Séquençage des instructions dans un processeur superscalaire de degré 2. Il faut 9 cycles pour exécuter 10 instructions. À t = 5, toutes les unités du processeur sont sollicitées.

## Exemples

[modifier | modifier le code]

Exemples sur des processeurs d'architecture RISC des années 1980 et 90.

| Intel i960CA  | IBM RS/6000 POWER  | DEC Alpha 21064 | DEC Alpha 21164

|
|
|
|

Année  | 1986 | 1990 | 1992 | 1994
Fréquence  | 25-30 MHz | 30 MHz | 150 MHz | 266-333 MHz
Degré  | 3 instructions/cycle, 6 unités de calcul | 4 instructions/cycle (FXU, FPU, et 2 ICU) | 2 instructions/cycle | 4 instructions/cycle
Performances annoncées  | 30 MIPS | 34 MIPS, 11 MFLOPS | 300 MIPS (crête), 150 MFLOPS (crête) |

## Annexes

[modifier | modifier le code]

### Notes et références

[modifier | modifier le code]

### Bibliographie

[modifier | modifier le code]

Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

### Articles connexes

[modifier | modifier le code]

* Pipeline : pour une illustration et comparaisons entre architecture basées sur les pipelines.
* Very long instruction word, un autre type d'architecture exploitant le parallélisme entre instructions

v · m

Technologies de processeur

* Chronologie des microprocesseurs
* Semi-conducteur
* Transistor

Modèles |

* Machine abstraite
* Ordinateur à programme enregistré
* Automate fini
* Déterministe
* À file
* Cellulaire
* Machine de Turing
* Alternante
* Universelle
* Non déterministe
* Probabiliste
* Hypercalcul
* Processeur basé sur la pile
* Machine à registres illimités
* Machine à compteurs
* Random access machine
* Chemin de données

Architecture |  | Général |

* Microarchitecture
* Architecture de type Harvard
* Architecture de von Neumann
* Architecture Dataflow
* Transport triggered architecture
* Boutisme
* Mémoire
* Non uniform memory access (NUMA)
* Hiérarchie de mémoire
* Mémoire virtuelle
* Bus informatique
* Réseau systolique

|

Mots |

* Architecture 8 bits
* 15 bits (Apollo Guidance Computer)
* 16 bits
* 22 bits (Zuse 3)
* 32 bits
* 40 bits
* 50 bits (Atanasoff–Berry Computer)
* 64 bits
* 128 bits

Instruction |  | Jeu |

* Processeur basé sur la pile
* Processeur de signal numérique
* Processeur vectoriel
* Microprocesseur à jeu d'instructions étendu (CISC)
* Processeur à jeu d'instructions réduit (RISC)
* Very long instruction word (VLIW)
* Explicitly parallel instruction computing (EPIC)
* Explicit data graph execution (en) (EDGE)
* Minimal instruction set computer (MISC)
* Ordinateur à jeu d'instruction unique (OISC)
* Zero instruction set computer (ZISC)
* Informatique quantique
* Mode d'adressage

|

Famille |

* Motorola 680x0
* VAX
* x86
* Architecture ARM
* Architecture MIPS
* PowerPC
* Architecture SPARC
* SuperH
* DEC Alpha
* IA-64
* OpenRISC
* RISC-V
* Microblaze
* Little man computer
* IBM System/3x0
* System/390
* System z

Exécution |

* Pipeline
* Bulle
* Exécution dans le désordre
* Algorithme de Tomasulo
* Renommage de registres
* Prédiction de branchement
* Exécution spéculative
* File

Performance |

* Instructions par cycle (IPC)
* Instructions par seconde (IPS)
* Opérations en virgule flottante par seconde (FLOPS)

Types |  | Général |

* Central processing unit (CPU)
* Processeur graphique (GPU)
* General-purpose processing on graphics processing units (GPGPU)
* Processeur vectoriel
* Coprocesseur
* Application-specific integrated circuit (ASIC)
* System in package (SiP)

|

Par usage |

* Système embarqué
* Microprocesseur
* Multi-cœur
* Multiprocesseur
* Microcontrôleur
* Processeur softcore

On chip |

* Système sur une puce (SoC)
* Programmable (PSoC)
* Réseau sur une puce (NoC)

Accélération
matérielle |

* Accelerated processing unit (APU)
* Puce d'accélération de réseaux de neurones (NPU)
* Processeur d'images (IPU)
* Processeur physique (PPU)
* Processeur de signal numérique (DSP)
* Tensor Processing Unit (TPU)
* Cryptoprocesseur sécurisé
* Processeur réseau (NPU)
* Processeur de bande de base (BP)

Microarchitecture |

* Microcode
* Unité de contrôle
* Banc de registres
* ALU
* FPU
* MMU
* TLB
* Cache
* Front side bus (FSB)
* Back-side bus (en) (BSB)

Parallélisme |  | Général |

* Pipelining
* Scalaire
* Superscalaire
* Tâche
* Thread
* Processus
* Multitâche
* Préemptif
* Parallélisme de donnée
* Processeur vectoriel
* Calcul distribué

|

Processus |

* Multithreading
* Hyperthreading
* Superthreading (en)
* Simultaneous multithreading (SMT)
* Symmetric multiprocessing (SMP)
* Asymmetric multiprocessing (AMP)

Taxonomie de Flynn |

* Single instruction on single data (SISD)
* Single instruction multiple data (SIMD)
* SWAR
* Single instruction multiple threads (SIMT)
* Multiple instructions single data (MISD)
* Multiple instructions on multiple data (MIMD)

Circuiterie et unité |  | Général |

* Circuit intégré
* Signaux mixtes
* Circuit booléen
* Interrupteur
* Électronique analogique
* Cœur
* Cache
* Processeur
* Algorithme
* Cohérence
* Bus

|

Exécution |

* Unité arithmétique et logique (ALU)
* Additionneur
* Multiplieur
* Unité de calcul en virgule flottante (FPU)
* Unité de gestion de mémoire (MMU)
* Translation lookaside buffer (TLB)
* Prédiction de branchement
* Contrôleur mémoire

Porte logique |

* Combinatoire
* Séquentielle
* Quantique

Registre |

* Registre de processeur
* Registre d'état
* Banc de registres
* Registre à décalage
* Registre tampon mémoire
* Registre d'adresse mémoire
* Compteur ordinal

Contrôle |

* Mémoire tampon
* Microprogrammation
* Image ROM
* Compteur

Chemin de données |

* Multiplexeur
* Décaleur

Cadencement |

* Signal d'horloge
* Fréquence d'horloge
* Coefficient multiplicateur
* Overclocking
* Synchrone
* Asynchrone
* Autosynchrone

Gestion de l'alimentation |

* Clock gating
* Ajustement dynamique de la fréquence
* APM
* ACPI
* Ajustement dynamique de la tension

Fabrication |

* Fabrication des dispositifs à semi-conducteurs
* Lithographie en immersion

Articles liés |

* Boîtier de circuit intégré
* Calcul hétérogène
* Circuit imprimé
* Électronique numérique
* Hardware Security Module
* Matrice de broches (PGA)
* Plastic Leaded Chip Carrier (PLCC)

* Portail de l’informatique

*[MHz]: mégahertz
*[v]: Voir ce modèle.
*[m]: Modifier ce modèle. Merci de prévisualiser avant de sauvegarder.