15
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?

Systèmes Pipeline – opérations multicycles

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

Page 1: Systèmes Pipeline – opérations multicycles

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?

Page 2: Systèmes Pipeline – opérations multicycles

© 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

Page 3: Systèmes Pipeline – opérations multicycles

© 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

Page 4: Systèmes Pipeline – opérations multicycles

© 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

Page 5: Systèmes Pipeline – opérations multicycles

© 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

Page 6: Systèmes Pipeline – opérations multicycles

© 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

Page 7: Systèmes Pipeline – opérations multicycles

© 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

Page 8: Systèmes Pipeline – opérations multicycles

© 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

Page 9: Systèmes Pipeline – opérations multicycles

© 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

Page 10: Systèmes Pipeline – opérations multicycles

© 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.

Page 11: Systèmes Pipeline – opérations multicycles

© 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

Page 12: Systèmes Pipeline – opérations multicycles

© 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 »

Page 13: Systèmes Pipeline – opérations multicycles

© 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

Page 14: Systèmes Pipeline – opérations multicycles

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es m

ulti

cycl

es

Le MIPS R4000 (2)

Page 15: Systèmes Pipeline – opérations multicycles

© 2001 Frédéric Mailhot Université de Sherbrooke

Sys

tèm

es

pip

elin

es m

ulti

cycl

es

La suite chez SGI