Tdprocesseur 001
Tdprocesseur 001
Tdprocesseur 001
U: 2010/2011
Ecole Nationale d'Ingénieurs de Sousse B.MAHMOUD / A. AMMARI
E.I. 2
Série N°2
Processeurs Embarqués
Exercice 1 :
Soit un mix d'instructions du DLX :
Type Fréquence
Arith/Logic 40%
Load 30% Parmi eux 25% sont
immédiatement suivis par
une instruction qui utilise le
résultat du Load
Store 10%
Brandi 20% Parmi eux 45% sont pris
Quel est le CPI pour le DLX avec forwarding et calcul d'addresse du branchement à l'étage
ID quand le branchement non pris est implémenté
Soit un pipeline à 5 niveaux semblable au DLX et soit la boucle suivante qui réalise
l'opération vectorielle Z = X - Y + Z pour des vecteurs de dimension 16:
etiq : LD FO, 0(R1) ; charge X(i)
LD F2, 0(R2) ;
SUBD F4, FO, F2 ;
LD F6, 0(R3) ; charge Z(i) /l s^Z-*:""
UALF UALF 3
UALF Rang D 2
Charg D UALF 1
Charg D Rang D 0
À partir de cette boucle et à l'aide de la table ci-dessus et en ne considérant que les aléas de
données:
a) Donnez la boucle non ordonnancée, en tenant compte des cycles de suspension ou
d'attente. Donnez le temps d'exécution.
b) À partir du résultat obtenu en a), dépliez la boucle 4 fois et ordonnancé les instructions afin
de minimiser le nombre de cycles par itération. Au besoin vous pouvez ajouter des registres
Ri ou Fi. Donnez le nombre de cycles par itération résultant.
rs^ Soit une machine superscalaire à deux pipelines: un pipeline pour les instructions entière
(et les accès mémoire) et un pipeline pour le point flottant. Ordonnancez la boucle dépliée
obtenue en b). Donnez le nombre de cycles par itération résultant.
a) Dans ce code, identifiez tous les aléas LAE, EAE, et EAL (RAW, WAW, WAR).
L.D. FO, 0(R1)
MULT.D F2, FO, F6 % FO * F6 -» F2
L.D. F6, 8(R1) %MEM[8+R1]
MULT.D F6, F6, F2 % F6 * F2 -»F6
S.D.F6, 16(R1) /^~x
(ÔADDIRl,Rl,W-32\ MEM[R1] % RI - 32 ^ RI
.
b) Parmi les aléa^ identifiés en a), identifiez ceux qui pourraient causer une suspension de
pipeline sur uù processeur avec'ordonnancement statique./
Note : Votre réponse doit être indépendante de la réalisation (nombre d'étages du pipeline,
envoi de données ou non, délai d'accès mémoire, etc.) du processeur.
c) Pour un processeur avec ordonnancement dynamique (dynamic scheduling), les obstacles
de type WAW et WAR ne peuvent être ignorés. Pourquoi ?
Exercice 5 :
Soit les programmes assembleur PI et P2.
RI contient initialement l'adresse d'un tableau X de flottants simple précision;
R2 contient initialement l'adresse d'un tableau Y de flottants simple précision;
La variable S est à l'adresse 0000 1000
PI
SUBF FO, FO, FO
ADDIR3,RO,128
Boucle :LF FI, 0(R1)
LF F2,0(R2)
MULTFF1,F1,F2
ADDF FO,FO,F1
ADDI RI,RI,4
ADDI R2,R2,4
ADDI R3,R3,-1
BNEZ R3, Boucle ^J>
SF-% lOOO(RO), Ç& :V=tf
,Vo> .,/
<^. .*£***
P2
SUBF F9,F9,F9
SUBF F10,F10,F10
UBFJF12.F12.F12.
ADDI R3,0, 128
Bouclé :XFFÏ,0(R.Ï)"
LFF3,4(R1)
LF F5, 8(R1)
LFF7,12(R1)
LF F2,0(R2)
LF F4, 4(R2)
LF F6, 8(R2)
LF F8, 12(R2)
MULTFF1,F1,F2
MULTF F3,F3,F4
MULTF F5,F5,F6
MULTF F7,F7,F8
ADDF F9,F9,F1
ADDFF10,F10,F3
ADDFF11,F11,F5
ADDF F12,F12,F7
ADDI RI, RI, 16
ADDIR2,R2,16
ADDI R3,R3,-4
BNEZ R3, Boucle
ADDFF9, F9,F10
ADDFF11,F11,F12
ADDFF9,F9,F11
SFF9, 1000(RO)
1- Exécuter le programme P1 sur DLX
2- Déterminer tous les aléas du programme PI
3- Donner le nombre de cycles ainsi le pourcentage d'aléas du PI
4- Corriger les aléas et exécuter le programme corrigé sur DLX
5- Exécuté le programme corrigé
6- Donner le nombre de cycles ainsi le pourcentage d'aléas du programme corrigé
7- Faire une comparaison entre les deux versions
8- Faire le même travail pour le programme P2
9- Que représente le programme P2 par rapport au programme PI ?