Comparaison: VLIW et superscalaire

publicité
Gei 431
Systèmes Superscalaires et VLIW
Parallélisme des instructions: quoi d’autre?
Avec le pipeline, nous avons vu une des
techniques de parallélisme des instructions (ILP
ou Instruction Level Parallelism). Que peut-on
faire de plus?
•VLIW (Very Large Instruction Word)
•Techniques superscalaires
Architecture des ordinateurs II – Frédéric Mailhot
Systèmes superscalaires et VLIW
Limites du pipelining, et comment les
dépasser
•
Pour une machine pipeline, on peut espérer au
mieux l’exécution d’une instruction par coup
d’horloge: il n’y a jamais plus d’une instruction
lue par coup d’horloge.
•
•
Rappel: temps CPU = IC * CPI * période de l’horloge
Pour augmenter la performance, on peut donc:
 Diminuer le nombre d’instructions (IC)
 Diminuer le CPI
 Diminuer la période de l’horloge
© 2001 Frédéric Mailhot
Université de Sherbrooke
Systèmes superscalaires et VLIW
Limites du pipelining, et comment les
dépasser (2)
•
Une question fondamentale se pose:
1. Est-il préférable de tenter de simplifier le circuit pour
augmenter la fréquence de l’horloge?
2. Ou bien, doit-on rendre le circuit plus complexe pour tenter
de faire plus durant la même période d’horloge?
•
L’architecture RISC, avec le pipeline, procède de la
première approche. Les résultats sont probants, mais il
semble qu’on ne puisse réduire la période de l’horloge en
dessous d’un certain seuil.
•
D’où: il faut aussi considérer la deuxième approche (ce
que l’on fait avec le VLIW et le superscalaire).
© 2001 Frédéric Mailhot
Université de Sherbrooke
Systèmes superscalaires et VLIW
Comment augmenter le ILP: en considérant
plus d’une instruction par coup d’horloge
•
L’idée de base ici est que la fréquence de
l’horloge ne peut être réduite indéfiniment, et
donc que pour une certaine durée d’horloge, on
doit réussir à faire plus de travail utile.
•
Comment faire? Lorsque nous arrivons à traiter
tout près d’une instruction par coup d’horloge, la
seule chose à faire de plus est de tenter de lire,
décoder et exécuter plus d’une instruction par
coup d’horloge…
© 2001 Frédéric Mailhot
Université de Sherbrooke
Systèmes superscalaires et VLIW
Exécution de multiples instructions par
coup d’horloge: difficultés
• Lorsqu’on tente d’exécuter plus d’une instruction par coup
d’horloge, cela implique qu’au même moment plusieurs
instructions, qui ont été produites selon une certaine
séquence par le compilateur et apparaissent
séquentiellement en mémoire, doivent être séparées en des
chemins d’exécution parallèles
• Deux façons de faire cela:
 Décider au moment de la compilation des instructions qui
peuvent s’exécuter en parallèle (approche VLIW, EPIC)
 Décider au moment de l’exécution des séquences
d’instructions qui peuvent se faire en parallèle (approche
superscalaire)
© 2001 Frédéric Mailhot
Université de Sherbrooke
Systèmes superscalaires et VLIW
VLIW: qu’est-ce que c’est?
• VLIW: technique pour exécuter plusieurs opérations en
parallèle
• Méthode: on définit des groupes de plusieurs instructions,
qui sont lues, décodées et exécutées en parallèle. Chaque
groupe devient une « super-instruction » destinée à être lue
d’un bloc par le processeur VLIW
• Avantage: le compilateur décide des instructions à grouper
ensemble. Ceci élimine pour le processeur VLIW le fardeau
du scheduling des instructions (détermination des
instructions qui peuvent être exécutées en parallèle). Le
processeur est donc plus simple à concevoir, et par
conséquent peut être plus rapide.
© 2001 Frédéric Mailhot
Université de Sherbrooke
Systèmes superscalaires et VLIW
Superscalaire: qu’est-ce que c’est?
• Superscalaire: technique pour exécuter plusieurs
opérations en parallèle
• Méthode: lit en même temps des blocs d’instructions
séquentielles (compilées de façon traditionnelle), et le
processeur décide dynamiquement quelles instructions du
bloc peuvent s’exécuter en parallèle
• Avantage:
 On utilise un compilateur traditionnel pour produire le code
exécutable
 Le parallélisme est extrait de façon dynamique par le
processeur, donnant une plus grande marge de manœuvre
pour le scheduling des instructions
© 2001 Frédéric Mailhot
Université de Sherbrooke
Systèmes superscalaires et VLIW
VLIW vs superscalaire: les enjeux
•
Le débat entre VLIW et superscalaire s’apparente
au débat CISC/RISC du début des années ’80:
simplicité du matériel (et performance améliorée)
vs simplicité du compilateur
•
Selon vous, lequel devrait gagner la bataille?
 VLIW?
 Superscalaire?
© 2001 Frédéric Mailhot
Université de Sherbrooke
Systèmes superscalaires et VLIW
Le vainqueur apparent: le VLIW
•
Comme le RISC a pris le dessus sur le CISC
parce que le matériel est plus simple à réaliser et
donc plus rapide, le VLIW devrait produire des
systèmes plus performants
•
Évidemment, les compilateurs devraient être
améliorés, mais le type d’améliorations requises
(détection de parallélisme au niveau des
instructions) est déjà possible.
© 2001 Frédéric Mailhot
Université de Sherbrooke
Systèmes superscalaires et VLIW
VLIW: l’architecture du futur?
• Mais… il y a un problème important avec le VLIW: c’est le
compilateur qui prend en charge toutes les dépendances
entre les instructions, et qui les résout lors de la
compilation. D’où deux constats importants:
1. Le compilateur est lié intimement à l’implémentation de
l’architecture. Si celle-ci change, le compilateur (et donc le
code) doit changer. Que fait-on avec nos « vieux » logiciels
lorsqu’on change de machine?
2. La résolution de conflits se fait lors de la compilation. Elle
doit donc être conservatrice. Dans un autre type
d’architecture (i.e. le superscalaire) on fait cette résolution de
façon dynamique. D’où plus de flexibilité et potentiellement
une amélioration de la performance.
• Autre limitation du VLIW: puisque le code doit être libre de
dépendances, il est presque impossible de l’écrire en
langage assembleur
© 2001 Frédéric Mailhot
Université de Sherbrooke
Systèmes superscalaires et VLIW
La suite: le superscalaire
•
Nous couvrirons principalement les techniques
superscalaires dans ce qui suit. Pourquoi?
© 2001 Frédéric Mailhot
 Le VLIW est une extension relativement simple du
pipeline (en théorie, on pourrait imaginer qu’on ne fait
que mettre un ensemble de machines pipelines
indépendantes en parallèle).
 Pour ce qui est du superscalaire, la gestion dynamique
des dépendances entre instructions est beaucoup plus
sophistiquée, et exige qu’on s’y arrête pour comprendre
ce qui se passe.
Université de Sherbrooke
Téléchargement