Upload
vielka-tucker
View
18
Download
0
Embed Size (px)
DESCRIPTION
Systèmes Pipeline – opérations multicycles. Nous avons vu jusqu’à maintenant comment faire un pipeline simple, avec une seule unité d’exécution. Comment peut-on ajouter de multiples unités d’exécution, certaines utilisant plus d’un coup d’horloge pour faire leurs calculs?. - PowerPoint PPT Presentation
Citation preview
Gei
431
Architecture des ordinateurs II – Frédéric Mailhot
Systèmes Pipeline – opérations multicycles
Nous avons vu jusqu’à maintenant comment faire un pipeline simple, avec une seule unité d’exécution.
Comment peut-on ajouter de multiples unités d’exécution, certaines utilisant plus d’un coup d’horloge pour faire leurs calculs?
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
DLX plus complet: plus d’unités d’exécution
• Pour améliorer le DLX, nous allons maintenant considérer l’ajout de plusieurs unités d’exécution à l’ALU initial: Unité d’addition point flottant
Unité de multiplication d’entiers
Unité de multiplication point flottant
Unite de division
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
Le DLX avec des unités d’exécution multiples
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
Pipeline: Comment utiliser des opérations multicycles?
• Jusqu’à maintenant, nous n’avons considéré que des opérations sur les entiers dans l’ALU. Qu’arrive-t-il lorsqu’on incorpore des opérations à point flottant? Ou bien on allonge le cycle de l’horloge
Ou bien on augmente la taille du circuit
On bien on permet d’intégrer des opérations multi-cycles dans le pipeline
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
Le DLX avec des unité d’exécution point flottant
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
Pipeline: intégration des opérations multicycles
• But: permettre à un opérateur point flottant d’utiliser plus d’un cycle d’horloge pour effectuer son travail
• Nous supposerons que l’unité point flottant peut utiliser un nombre arbitraire de cycles (le nombre exact dépend du type d’opération). Nous supposerons de plus qu’il peut y avoir plusieurs unités point flottant en parallèle
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
Pipeline: intégration des opérations multicycles (2)
• Nous définissons 2 termes: la latence et l’intervalle d’émission Latence: durée de l’opération totale par rapport à la
durée d’une opération ALU sur des entiers
Intervalle d’émission (initiation interval): délai entre l’émission de deux opérations du même type
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
Pipeline: unités multicycles
• Soient les 5 opérations suivantes: ALU entier, accès à la mémoire, addition FP, multiplication FP/entier, division FP, avec les paramètres suivants:
Quelles sont les implications de ce tableau?
Latence Intervalle d’émission
ALU entier 0 1
Accès mémoire 1 1
Addition FP 3 1
Multiplication FP 6 1
Division FP 24 24
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
Pipeline: implications multicycles
• Toutes les opérations peuvent commencer une instruction par coup d’horloge, excepté la division. Celle-ci peut donc causer des problèmes structuraux (structural hazards). Dans ce cas, la seule solution est de faire des « stalls »
• Puisque les opérations sont de durée variable, il se peut que deux opérations atteignent l’étage d’écriture en même temps
• Il peut y avoir des problèmes de dépendance de données de type WAW
• Les instructions peuvent être complétées dans un ordre différent que l’ordre d’émission
• Puisque la latence est plus longue, il y aura plus de problèmes de type RAW
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
Pipeline multicycle: solution à l’écriture multiple
• Il est possible que deux instructions ou plus se terminent en même temps, et tentent d’écrire leurs résultats simultanément. Quoi faire? On pourrait ajouter des registres à plusieurs ports
d’entrée. On ajouterait beaucoup de matériel pour un cas relativement peu fréquent. Et il faudrait de toutes façons gérer l’écriture simultanée au même registre
Une meilleure solution est de détecter l’utilisation simultanée (on peut le faire dès l’étage ID), et réserver l’utilisation de l’étage d’écriture. Comment? En utilisant un registre à décalage pour réserver l’étage MEM. De cette façon, on peut faire un « stall » de l’opération problématique au niveau du ID.
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
Pipeline multicycles: sommaire du contrôle
1. Vérification de problèmes de structure (seulement avec le diviseur)
2. Vérification de problèmes de type RAW
3. Vérification de problèmes de type WAW
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
Pipeline: quoi d’autre?
• Que peut-on faire pour augmenter l’efficacité des méthodes de pipeline?
• Dans le MIPS 4000, on a utilisé plus d’étages de pipeline (8 au lieu de 5). En répartissant les opérations sur plus d’étages, il est possible d’augmenter la vitesse de l’horloge.
• Dans le R4000, on a ajouté des étages pour l’accès à la mémoire. On appelle parfois cette technique le « superpipelining »
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
Le MIPS R4000
• Dans le MIPS R4000, les étages sont les suivants: IF / IS / RF / EX / DF / DS / TC / WB
• IF: première partie du « instruction fetch » (sélection du PC, début d’accès)
• ID: deuxième partie du « instruction fetch » (lecture)
• RF: instruction decode, register fetch, cache hit?
• EX: unité d’exécution
• DF: data fetch
• DS: deuxième partie de l’accès à la mémoire (lecture)
• TC: cache hit?
• WB: write back
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
Le MIPS R4000 (2)
© 2001 Frédéric Mailhot Université de Sherbrooke
Sys
tèm
es
pip
elin
es m
ulti
cycl
es
La suite chez SGI