CHAPITRE 4
RJsu(tats
4.1 Introduction :
Les résultats qui vont être
présentés dans ce chapitre ont été obtenus sur une
machine dotée d'une mémoire principale de capacité de 2 Go
et d'un processeur fonctionnant à 2 GHz s'exécutant sous le
système d'exploitation Linux.
Le code source de notre application a été
développé en utilisant le langage C. Dans un souci de conception
modulaire, notre application a été décomposée en
plusieurs modules dont la compilation a été rendue efficace et
aisée grâce à l'utilisation du Makefile, fichier
indiquant les dépendances entre les différents fichiers ainsi que
la (les) commande(s) de compilation (ou d'édition de liens) à
exécuter en cas de modification d'un fichier source ou objet.
4.2 Présentation des résultats :
Nos résultats sont représentés dans le
tableau suivant :
|
SF um2
|
TF ns
|
PF uw
|
surface
um2
|
max_delai ns
|
max_puissance uw
|
delai_moy ns
|
puissance_moy uw
|
Tps CPU (s)
|
1
|
155.
|
51.
|
2.5
|
155.
|
49.20
|
1.70
|
41.45
|
1.68
|
04
|
2
|
155.
|
55.
|
2.0
|
155.
|
49.20
|
1.70
|
41.45
|
1.68
|
04
|
3
|
150.
|
52.
|
2.5
|
150.
|
50.50
|
1.67
|
43.75
|
1.57
|
04
|
4
|
150.
|
50.
|
2.0
|
149.5
|
50.00
|
1.52
|
43.50
|
1.42
|
05
|
5
|
150.
|
50.
|
1.5
|
149.
|
50.00
|
1.49
|
43.50
|
1.38
|
09
|
6
|
160.
|
49.0
|
1.8
|
156.
|
48.70
|
1.76
|
41.20
|
1.74
|
03
|
7
|
156.
|
48.7
|
1.75
|
153.
|
48.70
|
1.70
|
41.95
|
1.64
|
03
|
8
|
160.
|
48.7
|
1.68
|
153.5
|
48.70
|
1.64
|
41.95
|
1.57
|
04
|
9
|
150.
|
50.
|
1.40
|
150.
|
50.00
|
1.39
|
43.00
|
1.31
|
14
|
10
|
149.
|
49 .5
|
1.49
|
149.
|
49.50
|
1.47
|
43.00
|
1.36
|
46
|
Tableau 4.1 Résultats obtenus pour
différentes contraintes
SF, TF et PF
dénotent respectivement les contraintes de surface, de temps et
de consommation de puissance fixées.
Les 3 colonnes qui suivent indiquent respectivement la
surface, le temps et la consommation de puissance obtenus avec les contraintes
fixées et les fichiers de données suivants :
- Fichier DONNEES :
ADD 4 2 MULT 5 8 COMP 6 3 AND 3 0 RSHIFT 7 2
LSHIFT 7 1
- Fichiers des instances des opérateurs
utilisés dans le circuit :
Pour chacun de ces fichiers, les 3 valeurs représentent
respectivement la surface, le temps et l'énergie qui
caractérisent l'instance considérée.
- Fichier ADD1 :
10. 5. 2.
- Fichier ADD2 :
8. 6. 2.
- Fichier ADD3
11. 4. 3.
- Fichier ADD4
9. 5. 3.
- Fichier MULT1 :
14. 9. 4.
- Fichier MULT2 :
13. 10. 3.
- Fichier MULT3 :
12. 10.5 3.
- Fichier MULT4 :
13. 9.5 3.5
- Fichier MULT5 :
13.5 9.5 5.5 - Fichier COMP1
9. 5. 2.5
- Fichier COMP2 : 8. 6. 2.
- Fichier COMP3 :
6. 7. 1.
- Fichier COMP4 :
7. 5. 2.
- Fichier COMP5 :
8. 3.5 2.5
- Fichier COMP6 :
8.5 4.5 3.
- Fichier RSHIFT1 : 7. 5. 1.5
- Fichier RSHIFT2 : 6.5 5.5 1.
- Fichier RSHIFT3 : 4. 8. 1.
- Fichier RSHIFT4 :
4.5 7.5 1.
- Fichier RSHIFT5 :
2. 9.5 0.8
- Fichier RSHIFT6 :
1. 10. 0.6
- Fichier RSHIFT7 :
1.5 9.7 0.7
- Fichier LSHIFT1 :
7. 5. 1.5
- Fichier LSHIFT2 :
6.5 5.5 1.
- Fichier LSHIFT3 : 4. 8. 1.
- Fichier LSHIFT4 :
4.5 7.5 1.
- Fichier LSHIFT5
2. 9.5 0.8
- Fichier LSHIFT6 :
1. 10. 0.6
- Fichier LSHIFT7 :
1.5 9.7 0.7
Le tableau 4.1 montre que pour les 10 tests, les contraintes
fixées sont bien sûr satisfaites. Il suffit de comparer les
colonnes indiquées par surface, max_delai et
max_puissance à celles correspondant à
SF, TF et
PF, respectivement. Nous donnerons par la suite des
explications détaillées sur l'obtention des résultats
correspondant au 1er jeu d'essais.
Notons que :
- max_delai et max_puissance sont
respectivement le temps et la consommation de puissance obtenus en
considérant toutes les traces et d'en déduire le maximum pour ces
2 paramètres
- delai_moy et puissance_moy sont
déterminés en considérant respectivement la moyenne des
délais de toutes les traces et la moyenne des consommations de puissance
de toutes les traces.
Les temps CPU restent raisonnables (ne dépassant pas 38
secondes) pour déterminer la configuration qui satisfait les contraintes
fixées et montrent que nos algorithmes développés sont
efficaces pour trouver, dans la mesure du possible, la configuration
satisfaisant les contraintes parmi un très grand nombre de
possibilités.
Les résultats indiqués dans le
précédent tableau ne suffisent pas. En effet, il faut indiquer au
concepteur du circuit, la configuration à utiliser. Ceci est
généré dans les fichiers
DPi1 et DPi2
ci-après.
- DPi1 (DPi2)
correspond au fichier décrivant les instances qui seront
utilisées dans le circuit pour exécuter la trace 1 (ou 2) de
l'algorithme à implémenter en Hardware
- 1 = i = 10 correspond à l'un des 10 tests qui figurent
dans le tableau 4.1
Fichiers DP :
155 51 2.5 :
DP11 :
1 ADD3 # ADD4 # MULT4 # RSHIFT6 # FIN
2 MULT4 # MULT5 # MULT4 # LSHIFT7 # FIN
3 MULT4 # MULT5 # MULT4 # MULT5 # MULT4 # FIN
4 ADD3 # COMP6 # COMP5 # COMP6 # FIN
DP12 :
1 ADD3 # ADD4 # MULT4 # RSHIFT6 # FIN
2 MULT4 # MULT5 # MULT4 # MULT5 # MULT4 # MULT5
# MULT4 # MULT5 # LSHIFT7 # FIN
3 MULT4 # MULT5 # RSHIFT6 # RSHIFT7 # MULT4 # FIN
4 ADD3 # COMP6 # COMP5 # MULT4 # FIN
5 MULT4 # ADD3 # RSHIFT6 # LSHIFT7 # COMP6 # FIN
Les instances utilisées pour le 1er
test sont :
ADD3, ADD4 (car il y a 2 additionneurs dans la partie
opérative ou circuit). MULT4, MULT5, MULT4, MULT5, MULT4, MULT5, MULT4,
MULT5 (car il y a 8 multiplieurs dans la partie opérative).
COMP6, COMP5, COMP6 (car il y a 3 comparateurs dans la partie
opérative). RSHIFT6, RSHIFT7 (car il y a 2 décaleurs à
droite dans la partie opérative). LSHIFT7 (car il y a 1 décaleur
à gauche dans la partie opérative).
155 55 2.0:
DP21:
1 ADD3 # ADD4 # MULT4 # RSHIFT6 # FIN
2 MULT4 # MULT5 # MULT4 # LSHIFT7 # FIN
3 MULT4 # MULT5 # MULT4 # MULT5 # MULT4 # FIN
4 ADD3 # COMP6 # COMP5 # COMP6 # FIN
DP22 :
1 ADD3 # ADD4 # MULT4 # RSHIFT6 # FIN
2 MULT4 # MULT5 # MULT4 # MULT5 # MULT4 # MULT5 # MULT4 # MULT5 #
LSHIFT7 # FIN
3 MULT4 # MULT5 # RSHIFT6 # RSHIFT7 # MULT4 # FIN
4 ADD3 # COMP6 # COMP5 # MULT4 # FIN
5 MULT4 # ADD3 # RSHIFT6 # LSHIFT7 # COMP6 # FIN
Les instances utilisées sont :
ADD3, ADD4.
MULT4, MULT5, MULT4, MULT5, MULT4, MULT5, MULT4, MULT5. COMP6,
COMP5, COMP6.
RSHIFT6, RSHIFT7.
LSHIFT7.
150 52 2.5 :
DP31 :
1 ADD2 # ADD2 # MULT5 # RSHIFT6 # FIN
2 MULT5 # MULT3 # MULT4 # LSHIFT7 # FIN
3 MULT5 # MULT3 # MULT4 # MULT5 # MULT4 # FIN
4 ADD2 # COMP6 # COMP5 # COMP6 # FIN
DP32 :
1 ADD2 # ADD2 # MULT5 # RSHIFT6 # FIN
2 MULT5 # MULT3 # MULT4 # MULT5 # MULT4 # MULT5 # MULT4 # MULT5 #
LSHIFT7 # FIN
3 MULT5 # MULT3 # RSHIFT6 # RSHIFT7 # MULT4 # FIN
4 ADD2 # COMP6 # COMP5 # MULT5 # FIN
5 MULT5 # ADD2 # RSHIFT6 # LSHIFT7 # COMP6 # FIN
Les instances utilisées sont :
ADD2, ADD2.
MULT5, MULT3, MULT4, MULT5, MULT4, MULT5, MULT4, MULT5. COMP6,
COMP5, COMP6.
RSHIFT6, RSHIFT7.
LSHIFT7.
150 50 2.0 :
DP41 :
1 ADD2 # ADD2 # MULT1 # RSHIFT6 # FIN
2 MULT1 # MULT3 # MULT3 # LSHIFT7 # FIN
3 MULT1 # MULT3 # MULT3 # MULT5 # MULT4 # FIN
4 ADD2 # COMP6 # COMP5 # COMP6 # FIN
DP42 :
1 ADD2 # ADD2 # MULT1 # RSHIFT6 # FIN
2 MULT1 # MULT3 # MULT3 # MULT5 # MULT4 # MULT5 # MULT4 # MULT5 #
LSHIFT7 # FIN
3 MULT1 # MULT3 # RSHIFT6 # RSHIFT7 # MULT3 # FIN
4 ADD2 # COMP6 # COMP5 # MULT1 # FIN
5 MULT1 # ADD2 # RSHIFT6 # LSHIFT7 # COMP6 # FIN
Les instances utilisées sont :
ADD2, ADD2.
MULT1, MULT3, MULT3, MULT5, MULT4, MULT5, MULT4, MULT5. COMP6,
COMP5, COMP6.
RSHIFT6, RSHIFT7.
LSHIFT7.
150 50 1.5 :
DP51 :
1 ADD2 # ADD2 # MULT1 # RSHIFT6 # FIN
2 MULT1 # MULT3 # MULT4 # LSHIFT7 # FIN
3 MULT1 # MULT3 # MULT4 # MULT3 # MULT4 # FIN
4 ADD2 # COMP6 # COMP5 # COMP6 # FIN
DP52 :
1 ADD2 # ADD2 # MULT1 # RSHIFT6 # FIN
2 MULT1 # MULT3 # MULT4 # MULT3 # MULT4 # MULT5 # MULT4 # MULT5 #
LSHIFT7 # FIN
3 MULT1 # MULT3 # RSHIFT6 # RSHIFT7 # MULT4 # FIN
4 ADD2 # COMP6 # COMP5 # MULT1 # FIN
5 MULT1 # ADD2 # RSHIFT6 # LSHIFT7 # COMP6 # FIN
Les instances utilisées sont :
ADD2, ADD2.
MULT1, MULT3, MULT4, MULT3, MULT4, MULT5, MULT4, MULT5. COMP6,
COMP5, COMP6.
RSHIFT6, RSHIFT7.
LSHIFT7.
160 49.0 1.8 :
DP61 :
1 ADD3 # ADD4 # MULT1 # RSHIFT6 # FIN
2 MULT1 # MULT5 # MULT4 # LSHIFT7 # FIN
3 MULT1 # MULT5 # MULT4 # MULT5 # MULT4 # FIN
4 ADD3 # COMP6 # COMP5 # COMP6 # FIN
DP62 :
1 ADD3 # ADD4 # MULT1 # RSHIFT6 # FIN
2 MULT1 # MULT5 # MULT4 # MULT5 # MULT4 # MULT5 # MULT4 # MULT5 #
LSHIFT7 # FIN
3 MULT1 # MULT5 # RSHIFT6 # RSHIFT7 # MULT4 # FIN
4 ADD3 # COMP6 # COMP5 # MULT1 # FIN
5 MULT1 # ADD3 # RSHIFT6 # LSHIFT7 # COMP6 # FIN
Les instances utilisées sont :
ADD3, ADD4.
MULT1, MULT5, MULT4, MULT5, MULT4, MULT5, MULT4, MULT5. COMP6,
COMP5, COMP6.
RSHIFT6, RSHIFT7.
LSHIFT7.
156 48.7 1.75 :
DP71 :
1 ADD2 # ADD4 # MULT1 # RSHIFT6 # FIN
2 MULT1 # MULT5 # MULT4 # LSHIFT7 # FIN
3 MULT1 # MULT5 # MULT4 # MULT5 # MULT4 # FIN
4 ADD2 # COMP6 # COMP5 # COMP6 # FIN
DP72 :
1 ADD2 # ADD4 # MULT1 # RSHIFT6 # FIN
2 MULT1 # MULT5 # MULT4 # MULT5 # MULT4 # MULT5 # MULT4 # MULT5 #
LSHIFT7 # FIN
3 MULT1 # MULT5 # RSHIFT6 # RSHIFT7 # MULT4 # FIN
4 ADD2 # COMP6 # COMP5 # MULT1 # FIN
5 MULT1 # ADD2 # RSHIFT6 # LSHIFT7 # COMP6 # FIN
Les instances utilisées sont :
ADD2, ADD4.
MULT1, MULT5, MULT4, MULT5, MULT4, MULT5, MULT4, MULT5. COMP6,
COMP5, COMP6.
RSHIFT6, RSHIFT7.
LSHIFT7
160 48.7 1.68 :
DP81 :
1 ADD2 # ADD4 # MULT1 # RSHIFT6 # FIN
2 MULT1 # MULT1 # MULT4 # LSHIFT7 # FIN
3 MULT1 # MULT1 # MULT4 # MULT5 # MULT4 # FIN
4 ADD2 # COMP6 # COMP5 # COMP6 # FIN
DP82 :
1 ADD2 # ADD4 # MULT1 # RSHIFT6 # FIN
2 MULT1 # MULT1 # MULT4 # MULT5 # MULT4 # MULT5 # MULT4 # MULT5 #
LSHIFT7 # FIN
3 MULT1 # MULT1 # RSHIFT6 # RSHIFT7 # MULT4 # FIN
4 ADD2 # COMP6 # COMP5 # MULT1 # FIN
5 MULT1 # ADD2 # RSHIFT6 # LSHIFT7 # COMP6 # FIN
Les instances utilisées sont :
ADD2, ADD4.
MULT1, MULT1, MULT4, MULT5, MULT4, MULT5, MULT4, MULT5. COMP6,
COMP5, COMP6.
RSHIFT6, RSHIFT7.
LSHIFT7.
150 50 1.40 :
DP91 :
1 ADD2 # ADD2 # MULT2 # RSHIFT6 # FIN
2 MULT2 # MULT2 # MULT4 # LSHIFT7 # FIN
3 MULT2 # MULT2 # MULT4 # MULT2 # MULT4 # FIN
4 ADD2 # COMP6 # COMP5 # COMP6 # FIN
DP92 :
1 ADD2 # ADD2 # MULT2 # RSHIFT6 # FIN
2 MULT2 # MULT2 # MULT4 # MULT2 # MULT4 # MULT5 # MULT4 # MULT5 #
LSHIFT7 # FIN
3 MULT2 # MULT2 # RSHIFT6 # RSHIFT7 # MULT4 # FIN
4 ADD2 # COMP6 # COMP5 # MULT2 # FIN
5 MULT2 # ADD2 # RSHIFT6 # LSHIFT7 # COMP6 # FIN
Les instances utilisées sont :
ADD2, ADD2.
MULT2, MULT2, MULT4, MULT2, MULT4, MULT5, MULT4, MULT5. COMP6,
COMP5, COMP6.
RSHIFT7, RSHIFT7.
LSHIFT7.
149 49.5 1.49 :
DP101 :
1 ADD2 # ADD2 # MULT1 # RSHIFT6 # FIN
2 MULT1 # MULT2 # MULT2 # LSHIFT7 # FIN
3 MULT1 # MULT2 # MULT2 # MULT3 # MULT3 # FIN
4 ADD2 # COMP6 # COMP5 # COMP6 # FIN
DP102 :
1 ADD2 # ADD2 # MULT1 # RSHIFT6 # FIN
2 MULT1 # MULT2 # MULT2 # MULT3 # MULT3 # MULT5 # MULT4 # MULT5 #
LSHIFT7 # FIN
3 MULT1 # MULT2 # RSHIFT6 # RSHIFT7 # MULT2 # FIN
4 ADD2 # COMP6 # COMP5 # MULT1 # FIN
5 MULT1 # ADD2 # RSHIFT6 # LSHIFT7 # COMP6 # FIN
Les instances utilisées sont :
ADD2, ADD2.
MULT1, MULT3, MULT3, MULT2, MULT3, MULT5, MULT4, MULT5. COMP6,
COMP5, COMP6.
RSHIFT7, RSHIFT7.
LSHIFT7.
Nous donnons ci-après quelques détails
concernant les résultats obtenus pour le 1er test. En
considérant les fichiers DP11
et DP12 et en tenant compte des valeurs de
surface, temps et énergie de chacune des instances indiquées dans
ces fichiers, on obtient ce qui suit:
i) surface :
Instances utilisées : ADD3, ADD4, MULT4, MULT5, MULT4,
MULT5, MULT4, MULT5, MULT4, MULT5, COMP6, COMP5, COMP6, RSHIFT6,
RSHIFT7, RSHIFT6, LSHIFT7 utilisant ainsi une
surface égale à :
11 + 9 +4*(13 + 13.5) + 8.5 + 8 + 8.5 + 1 + 1.5 + 1 + 1.5 =
155
(Voir la colonne surface dans le tableau 4.1)
ii) temps :
DP11 :
1 :
2 :
3 :
4 :
|
4 ; 5 ; 9.5 ; 10
9.5 ; 9.5 ; 9.5 ; 9.7
9.5 ; 9.5 ; 9.5 ; 9.5 ;
4 ; 4.5 ; 3.5 ; 4.5
|
9.5
|
> max = 10 > max = 9.7
> max = 9.5 > max= 4.5
|
T1= Somme des max = 33.7
DP12 :
1 :
2 :
3 :
4 :
5 :
|
4 ; 9.5 9.5 4 ; 9.5
|
5 ; 9.5 ; 10
; 9.5 ; 9.5 ; 9.5 ; 9.5 ;
; 9.5 ; 10 ; 9.7 ; 9.5
4.5 ; 3.5 ; 9.5
; 4 ; 10 ; 9.7 ; 4.5
|
9.5 ;
|
9.5 ;
|
9.5 ;
|
9.7
|
> max = 10 > max = 9.7
> max = 10 > max = 9.5
> max = 10
|
T2= Somme des max = 49.2
T = MAX(T1, T2) = 49.20 ns
(Voir la colonne max_delai dans le tableau 4.1)
Tmoyen= (T1 + T2) / 2 = 41.45 ns
(Voir la colonne delai_moy dans le tableau 4.1)
iii) puissance :
DP1 :
Energie1= 3 + 3 + 3.5 +0.6 + 3.5 + 5.5 + 3.5 +
0.7 + 3.5 + 5.5 + 3.5 + 5.5 +
3.5 + 3 + 3 + 2.5 + 3 = 56.3 fJ
Puissance=Energie * Fréquence= Energie1 /
T1= 56.3 / 33.7= 1.67 uW
+0.6
|
+ 4*(3.5 + 5.5)
|
+ 0.7
|
+ 3.5
|
+ 5.5 + 0.6 + 0.7 +
|
+ 2.5
|
+ 3.5 + 3.5 + 3
|
+ 0.6
|
+ 0.7
|
+ 3 = 83.4 fJ
|
DP2 :
Energie2= 3 + 3 + 3.5
|