Processeur superscalaire
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
modifierUn 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.
Exemples
modifierExemples 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
modifierNotes et références
modifierBibliographie
modifierArticles connexes
modifier- 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