ISSATSousse Architecture des ordinateurs
- 5 -
Filière : 2éme Année Prépa
TP2 :
Pipeline et Ordonnancement
Rappel du cours :
Il existe des cas la performance d’un processeur pipeliné peut être dégradée ; on parle des
aléas :
Exemple d’Aléa :
Il se produit lorsqu’une instruction produit un résultat, et qu’une instruction suivante utilise ce
résultat avant qu’il ait pu être écrit dans le banc de registre.
Lorsqu’un aléa se produit, cela signifie qu’une instruction ne peut continuer à
progresser dans le pipeline. Pendant un ou plusieurs cycles, l’instruction va rester bloquée
dans un étage de pipeline, mais les instructions situées plus en avant pourront continuer à
s’exécuter jusqu’à ce que l’aléa ait disparu.
Travail demandé
Exercice 1 :
1. Ecrire un code assembleur en DLX qui permet de réaliser les fonctions suivantes :
a := b + c;
d := a - f;
e := g + h;
Avec a=0, b=5, c=2, d=0, e=0, f=4, g=5, h=9 initialement
2. Donner le nombre de cycles total.
3. Donner le nombre d’instructions total.
4. Reprendre l’ordonnancement du programme en essayant de minimiser le temps
d’exécution et éviter les dépendances de données.
Exercice 2 :
1. Ecrire un code assembleur en DLX qui permet de réaliser la fonction suivante :
ISSATSousse Architecture des ordinateurs
- 6 -
for (i=10; i>0; i=i-1)
{S= S + x(i);}
2. Donner le nombre de cycles total.
3. Donner le nombre d’instructions total.
4. Représenter l’évolution du pipeline du code (faire un tableau).
Exercice 3 :
L’algorithme suivant permet d’effectuer une opération de multiplication entre deux matrices
carrées d’ordre 3.
X
Somme=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
somme=somme+a[i][j]*b[j][i];
c[i][j]=somme;
}
1. Traduire cet algorithme en un programme en assembleur DLX.
2. Déterminer le nombre de cycles de ce programme.
3. Afin d’optimiser ce code, reprendre l’ordonnancement du programme en essayant de
minimiser les aléas provoqués par les dépendances.
1 / 2 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 !