Vous êtes sur la page 1sur 2

TD ARCHITECTURE

Exercice 1
Voici un premier schéma
d'un pipeline à 3 étages.
L'unité de temps est la
pico-seconde (ps) qui
vaut 10-12 seconde. Quelle
est la durée minimale du
cycle d'horloge ? Quel est
le débit maximal de ce
pipeline, en Gops (Giga-
opérations par seconde) ?
Quelle est dans ce cas la
latence, c'est-à-dire la
durée d'exécution d'une
instruction ?

Mêmes questions pour le


schéma ci-contre (les
durées de traitement des
trois circuits
combinatoires sont
différentes).

Mêmes questions en multipliant par deux le nombre d'étages du pipeline initial. Quel est le
débit qu'on ne dépassera jamais en augmentant encore la profondeur du pipeline ?

Exercice 2
On suppose qu'on a découpé les circuits combinatoires qui composent une instruction en six
blocs A à F de durées respectives 80, 60, 30, 50, 70 et 10 ps ; ces blocs doivent être exécutés
l'un après l'autre dans cet ordre, après quoi on charge un registre au prochain front d'horloge.
La durée de chargement d'un registre est de 20 ps.

1. Insérer un seul registre intermédiaire fournit un pipeline de profondeur 2. Où faut-il


insérer ce registre pour obtenir un débit maximal ? Calculer alors la durée du cycle
d'horloge, le débit et la latence.
2. Mêmes questions en insérant deux registres intermédiaires (pipeline de profondeur 3).
3. Quel est le pipeline de profondeur optimale ? Fournir une description et une analyse
des performances comme précédemment.
4. Echanger les durées de B et C et traiter à nouveau la question précédente.
Exercice 1 : corrigé

Question Durée du cycle Débit (en Gops) Latence


1 120 ps 1000 / 120 = 8.33 3 * 120 = 360 ps
2 170 ps 1000 / 170 = 5.88 3 * 170 = 510 ps
3 70 ps 1000 / 70 = 14.29 6 * 70 = 420 ps

Avec un temps de chargement des registres de 20 ps, la durée d'un cycle sera toujours
supérieure à 20 ps, et le débit inférieur à 50 Gops.

Exercice 2 : corrigé
1. Le meilleur partage est { A B } { C D E F } : le premier bloc de tâches a une durée de
140 ps et le second dure 160 ps. En plaçant C dans le premier bloc on obtiendrait des
durées de 170 et 130 ps, ce qui est moins bon : il faut minimiser la durée maximale. Ce
pipeline peut fonctionner avec un cycle de 180 ps, un débit de 1000 / 180 = 5.55 Gops
et une latence de 2 * 180 = 360 ps.
2. Le meilleur partage est { A } { B C } { D E F } ; les durées respectives sont 80 ps,
90 ps et 130 ps. En plaçant D dans le second bloc, celui-ci aurait une durée de 140 ps,
ce qui est moins bon. Ce pipeline peut fonctionner avec un cycle de 150 ps, un débit de
1000 / 150 = 6.66 Gops et une latence de 3 * 150 = 450 ps.
3. Puisque le circuit le plus lent est A qui dure 80 ps, le meilleur partage est celui dont
tous les blocs ont une durée inférieure ou égale à 80 ps. Il faut aussi minimiser la
profondeur du pipeline, c'est-à-dire le nombre d'étapes (qui est le même que le nombre
de registres du circuit). D'où le découpage : { A } { B } { C D } { E F }. Ce pipeline de
profondeur 4 peut fonctionner avec un cycle de 100 ps, un débit de 10 Gops et une
latence de 4 * 100 = 400 ps.
4. Cette fois il faut un pipeline de profondeur 5 : { A } { B } { C } { D } { E F }. Ce
pipeline a le même cycle et le même débit que le précédent, mais la latence passe à
500 ps.

Vous aimerez peut-être aussi