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 linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !