1
Parallélisme d’instructions :
Superscalaires versus VLIW
Daniel Etiemble
IFIPS-2
2007-2008
Architecture des ordinateurs
Daniel Etiemble
2
Parallélisme d’instructions
• Pipeline simple et superpipeline
– 1 instruction par cycle. CPI
max
=1
• Amélioration de la performance
– Exécuter plusieurs instructions en parallèle
• IPC = 1/CPI (Instructions par cycle)
• Deux approches
– Superscalaires
– VLIW (mots d’instructions très long)
2
IFIPS-2
2007-2008
Architecture des ordinateurs
Daniel Etiemble
3
Processeurs : superscalaire/VLIW
• Superscalaire
– Le matériel est responsable à l’exécution du lancement parallèle des
instructions
• Contrôle des dépendances de données et de contrôle par matériel
• VLIW
– Le compilateur est responsable de présenter au matériel des instructions
exécutables en parallèle
• Contrôle des dépendances de données et de contrôle par le compilateur
I1 I2 I3
I4 I5 I6 I7
I8
Exécution
(Matériel)
C
C+1
C+2
I1
I2
I3
I4
I5
I6
I7
I8
I1 N I2 I3
I4 I5 I6 I7
N N I8 N
C
C+1
C+2
Compilation
PROGRAMME
SUPERSCALAIRE VLIW
IFIPS-2
2007-2008
Architecture des ordinateurs
Daniel Etiemble
4
Principes des superscalaires
pipeline
superscalaire
DI/LR ERLI EX
DI/LR ERLI EX
DI/LR ERLI EX
DI/LR ERLI EX
DI/LR ERLI EX
DI/LR ERLI EX
DI/LR ERLI EX
DI/LR ERLI EX
Superscalaire de degré n :
n instructions par cycle
3
IFIPS-2
2007-2008
Architecture des ordinateurs
Daniel Etiemble
5
Le contrôle des aléas
• Contrôle des dépendances de données
– Réalisé par matériel
• Tableau de marques (Scoreboard)
• Tomasulo
• Existe à la fois pour les processeurs scalaires (à
cause des instructions multi-cycles) et les
processeurs superscalaires (problèmes accentués)
IFIPS-2
2007-2008
Architecture des ordinateurs
Daniel Etiemble
6
Problèmes liés aux superscalaires
• Nombre d’instructions lues
• Types d’instructions exécutables en parallèles
• Politique d’exécution
– Exécution dans l’ordre
– Exécution non ordonnée
• Dépendances de données
• Branchements
4
IFIPS-2
2007-2008
Architecture des ordinateurs
Daniel Etiemble
7
Problèmes superscalaires (2)
• Coût matériel accentué
– Plusieurs accès aux bancs de registres
– Plusieurs bus pour les opérandes et les résultats
– Circuits d’envoi (forwarding) plus complexes
• Davantage d’unités fonctionnelles avec latences
différentes
– plusieurs fonctions (Entiers, Flottants, Contrôle)
– plusieurs unités entières
• Plusieurs instructions exécutées simultanément
– Débit d’instructions plus important
– Débit d’accès aux données plus important
– Problème des sauts et branchements accentués
IFIPS-2
2007-2008
Architecture des ordinateurs
Daniel Etiemble
8
Exécution superscalaire
• Exécution dans l’ordre
– Acquisition par groupe d’instructions
– Traitement du groupe suivant quand toutes les instructions d’un groupe
ont été lancées et démarrées.
• Exécution non ordonnée
– Acquisition des instructions par groupe, rangées dans un tampon
– Exécution non ordonnée des instructions, en fonction du flot de données
– Fenêtre d’instructions liée à la taille du tampon.
LI DI LR
Lancement des instructions
(ressources disponibles)
Démarrage de l’exécution quand
les opérandes sont disponibles
5
IFIPS-2
2007-2008
Architecture des ordinateurs
Daniel Etiemble
9
Exécution superscalaire x86
• Exécution directe du code x86
– Pentium
• Traduction dynamique du code x86 en instructions
de type RISC
– Pentium Pro et successeur
– AMD K6 et K7
• Emulation : traduction dynamique en code VLIW
– Transmeta
IFIPS-2
2007-2008
Architecture des ordinateurs
Daniel Etiemble
10
Exécution dans l’ordre (21164)
• 4 instructions acquises par cycle
• 4 pipelines indépendants
– 2 entiers
– 2 flottants
• 1 groupe de 4 instructions considéré à chaque cycle
– si les 4 instructions se répartissent dans E0, E1, FA et FM,
elles démarrent leur exécution. Sinon, certaines utilisent les
cycles suivants jusqu’à ce que les 4 aient démarré.
– Les 4 suivantes sont traitées quand les 4 précédentes ont
démarré.
E0 E1 FA FM
LD
ST
UAL
CMOV
COMP
LD
IBR
Jump
UAL
CMOV
COMP
FADD
FDIV
FBR
FMUL
1 / 13 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!