Ordonnancement Hiérarchique d`Application Temps Réel Sur Une

Transcription

Ordonnancement Hiérarchique d`Application Temps Réel Sur Une
RÉPUBLIQUE ALGÉRIENNE DÉMOCRATIQUE ET POPULAIRE
Université d’Oran Es-Senia
Faculté des Sciences
Département d’Informatique
Ordonnancement Hiérarchique
d’Application Temps Réel Sur Une
Architecture NOC
MÉMOIRE DE FIN D’ÉTUDE
présenté et soutenu publiquement le 06 juillet 2009
pour l’obtention du
Diplôme d’Ingénieur d’Etat en Informatique
(Option informatique Industrielle)
par
Mohamed akli REDJEDAL
Abdelhak OULHACI
Encadreur : Dr A.BENYAMINA.
Co-Encadreur : Pr P.BOULET [Lille1]
Devant les membres du jury
Président :
Dr. M.BOUAZZA
Examinateurs :
Dr. M.SAYAH
Dr. L.BOUDJANI
N◦ PFE:15/2009
Promotion 2008-2009
Remerciements
Monsieur Abou Elhassen BENYAMINA
Nous tenons à vous exprimer notre profond respect et notre reconnaissance pour avoir dirigé
ce travail, pour vos conseils précieux et pour votre grande patience et bonne compréhension.
Monsieur pierre BOULET
Pour nous avoir aidé dans la réalisation de ce travail et pour avoir consacrer le temps voulu
malgré vos responsabilités. Nous vous exprimerons notre profond respect.
Monsieur Mohamed.BOUAZZA
On tient à vous remercier de nous avoir honoré en acceptant la présidence de Jury de notre
mémoire de fin d’étude.
Monsieur Mohamed SAYAH
Madame Leila BOUDJANI
Nous tenons à vous exprimer ici nos remerciements et notre respect pour avoir accepté de
juger ce travail.
i
Je dédie ce mémoire
à mes parents qui m’ont soutenu durant mes d’études
à mes frères BELKCEM,BENAMAR et ma sœur FATIMA ZOHRA
à mes bon amis et camarades
Une spéciale dédicace à mon binôme et à tous ceux qui ont participé
de près ou de loin à l’aboutissement de ce projet
à toute ma famille.
à tous ceux qui m’aiment et que j’aime.
Abdelhak OULHACI
ii
Je dédie ce mémoire
à la mémoire de mon père,
à ma très chère mère
à mon frère NABIL et mes sœurs TAOUS et FARIDA
et surtout BRAHIM, HAYAT et MARWA
à toute ma famille.
à ma très chère FATIMA
à mes très bon amis
Une spéciale dédicace à mon binôme et à tous ceux qui
ont participé de près ou de loin à l’aboutissement de ce projet
à touts qui m’aiment et que j’aime.
Mohamed Akli REDJEDAL
iii
Table des matières
Table des figures
ix
Liste des tableaux
xi
Résumé
xii
Introduction générale
Partie I
xiii
Introduction aux Système Embarqué et Flots de Conception
1
Chapitre 1
Les Systèmes Embarqués
1.1
1.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.1.1
Qu’est-ce que les Systèmes Embarqués ? . . . . . . . . . . . . . . . . .
3
1.1.2
L’Informatique Embarquée ? . . . . . . . . . . . . . . . . . . . . . . .
3
L’étendus des Systèmes Embarqués . . . . . . . . . . . . . . . . . . . . . . .
4
1.2.1
Domaines d’Applications . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2.2
Domaines de Recherches . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.3
Tendances Architecturales Physiques
. . . . . . . . . . . . . . . . . . . . . .
4
1.4
Un Système Embarqué typique . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.5
les Différences avec un ordinateur du bureau . . . . . . . . . . . . . . . . . .
5
1.6
Les Contraintes des Systèmes Embarqués . . . . . . . . . . . . . . . . . . . .
6
1.6.1
Temps Réel et Activités
. . . . . . . . . . . . . . . . . . . . . . . . .
6
1.6.2
Consommation énergétique . . . . . . . . . . . . . . . . . . . . . . . .
6
1.6.3
Mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.6.4
Tolérance aux fautes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.6.5
Hétérogénéité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.6.6
Réutilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.6.7
Contraintes de coût de communication . . . . . . . . . . . . . . . . .
8
iv
1.6.8
Adaptabilité aux environnements mobiles . . . . . . . . . . . . . . . .
8
1.7
Conception d’un Système Embarqué
. . . . . . . . . . . . . . . . . . . . . .
9
1.8
Architectures des différents systèmes embarqués . . . . . . . . . . . . . . . .
10
1.8.1
mono-puce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.8.2
Caractéristiques des SOC . . . . . . . . . . . . . . . . . . . . . . . . .
11
1.8.3
Multiprocesseurs on SOC (MPSOC) . . . . . . . . . . . . . . . . . . .
11
1.8.4
Architectures des systèmes MPSOC . . . . . . . . . . . . . . . . . . .
13
1.8.5
génération . . . .
15
Réseau de communication sur puce (NOC) . . . . . . . . . . . . . . . . . . .
16
1.9.1
Les Topologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
1.9
Les caractéristiques des architectures MPSOC
2eme
Chapitre 2
Flots de Conception des SOC
2.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.2
Flot de conception Classiques . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.2.1
Flot séquentiel de conception de circuits spécifiques . . . . . . . . . .
22
2.2.2
Flot de co-conception de circuits spécifiques . . . . . . . . . . . . . .
22
2.2.3
Flots basés sur la notion de la plate-forme . . . . . . . . . . . . . . .
22
Flots de conception modernes . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.3.1
Co-Développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.3.2
Co-Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
Ingénierie Dirigée par les modèles . . . . . . . . . . . . . . . . . . . . . . . .
27
2.4.1
GASPARD : Flot de conception pour les SOC . . . . . . . . . . . . .
28
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
2.3
2.4
Partie II
Le placement Dans les NOC et Méthodologie de Résolution
32
Chapitre 3
Le Placement et l’Ordonnancement dans Les NOC
3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.2
Les objectifs de la conception des NOC . . . . . . . . . . . . . . . . . . . . .
34
3.3
Approches pour les NOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.3.1
Approches sans assignation réseau . . . . . . . . . . . . . . . . . . . .
34
3.3.2
Approches avec assignation réseau . . . . . . . . . . . . . . . . . . . .
39
Approches pour les systèmes MPSoC . . . . . . . . . . . . . . . . . . . . . .
44
3.4
v
3.4.1
Approches basées sur l’énergie . . . . . . . . . . . . . . . . . . . . . .
44
3.4.2
Approche pour les contraintes temps réel soft . . . . . . . . . . . . . .
46
3.4.3
Approche pour les contraintes temps réel hard . . . . . . . . . . . . .
47
3.4.4
Approches basées sur la mémoire
. . . . . . . . . . . . . . . . . . . .
49
Comparaison entre les techniques de placement et d’ordonnancement . . . .
51
3.5.1
Vérification des contraintes de temps réel . . . . . . . . . . . . . . . .
51
3.5.2
La minimisation de la consommation d’énergie . . . . . . . . . . . . .
54
3.5.3
Contraintes matérielles et de mémoire . . . . . . . . . . . . . . . . . .
56
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
3.5
Chapitre 4
Optimisation Multi-Objectifs
4.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
4.2
Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
4.3
les algorithmes d’optimisation . . . . . . . . . . . . . . . . . . . . . . . . . .
61
4.3.1
l’algorithme de Brunch & Bound . . . . . . . . . . . . . . . . . . .
61
4.3.2
Algorithme génétique (AG) . . . . . . . . . . . . . . . . . . . . . . .
65
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
Partie III
Les Approches pour la Résolution du Placement Hiérarchique
Multiobjectifs
72
Chapitre 5
Modélisation du Problème de Placement et Ordonnancement Hiérarchique
5.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
5.2
Modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
5.3
Fonction coût . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
5.4
Contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
5.4.1
Les propriétés de matériel et de logiciel : . . . . . . . . . . . . . . . .
79
5.4.2
Les types de noœud des deux graphes : . . . . . . . . . . . . . . . . .
79
5.4.3
Le niveau hiérarchique des graphes : . . . . . . . . . . . . . . . . . .
79
5.4.4
L’équilibrage des charges : . . . . . . . . . . . . . . . . . . . . . . . .
79
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
vi
Chapitre 6
Contribution
6.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
6.2
Modèle Mathématique [18] . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
6.3
les Algorithmes Utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
6.3.1
Graphe potentiel Tâches . . . . . . . . . . . . . . . . . . . . . . .
84
6.3.2
ACP(Analyse de Composante Principale) . . . . . . . . . . . . . . .
84
6.3.3
Djiskra multi-Objectifs . . . . . . . . . . . . . . . . . . . . . . . .
85
Démarche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
6.4
Partie IV
Implementation & Experimentation
92
Chapitre 7
Implementation
7.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
7.2
Présentation de l’application . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
7.3
Spécification des besoins
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
7.4
Les Outils et Plateformes utilisés . . . . . . . . . . . . . . . . . . . . . . . . .
94
7.5
Principales étapes de développement . . . . . . . . . . . . . . . . . . . . . . .
95
7.6
Architecture de l’Application . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
7.6.1
Le Pattern et Modèle (MVC) . . . . . . . . . . . . . . . . . . . . . . .
96
7.6.2
Architecture en packages de l’application . . . . . . . . . . . . . . . .
98
7.7
l’interface graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
7.8
Modélisation UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.8.1
Diagramme de class du noyau . . . . . . . . . . . . . . . . . . . . . . 105
7.8.2
Diagramme de class du noyau . . . . . . . . . . . . . . . . . . . . . . 106
7.8.3
Diagramme de class du noyau . . . . . . . . . . . . . . . . . . . . . . 107
7.8.4
Diagramme de class de l’interface . . . . . . . . . . . . . . . . . . . . 108
7.8.5
Diagramme de séquence de l’application . . . . . . . . . . . . . . . . . 109
7.8.6
Diagramme Activité de Saisi de l’Arbre Hiérarchique . . . . . . . . . 110
vii
Chapitre 8
Experimentation
8.1
introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
8.2
L’application : Encodeur H2.63 [18] . . . . . . . . . . . . . . . . . . . . . . . 112
8.3
L’architecture : MPSOC [18] . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
8.4
L’impact de l’hiérchisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Conclusion Générale
120
Glossaire
122
Index
123
Bibliographie
viii
Table des figures
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
Schema typique d’un système embarqué . . . . . . . .
Schema typique d’un SOC . . . . . . . . . . . . . . .
Un exemple d’architecture monoprocesseur . . . . . .
Architecture d’un monoprocesseur . . . . . . . . . . .
Architecture d’un multiprocesseur première génération
Architectures multiprocesseurs de deuxième génération
Architecture point à point . . . . . . . . . . . . . . . .
Architecture Bus Partagé . . . . . . . . . . . . . . . .
Architecture d’Anneau et d’étoile . . . . . . . . . . . .
Architecture Crossover . . . . . . . . . . . . . . . . . .
Architecture à Commuté et Maillage Complet . . . . .
2.1
2.2
2.3
2.4
Flot de conception classique
Flot de conception modèrne
flot de conception en Y . .
Un exemple de modélisation
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
10
12
14
14
15
17
17
18
18
19
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
24
26
29
30
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
Méthodologie de G.Varatkar et al . . . . . . .
La méthodologie de Lei et al . . . . . . . . .
Méthodologie de J.Hu et al. . . . . . . . . . .
Méthodologie de D.Shin et al. . . . . . . . . .
Exemple de placement du CTG sur le NOC .
Méthodologie de M.T.Schmitz et al. . . . . .
Méthodologie de F.Gruain et al. . . . . . . .
Méthodologie de L.A.Cortes et al. . . . . . .
Méthodologie de R.Szymanek et al. . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
36
37
40
42
45
46
47
50
4.1
4.2
4.3
4.4
4.5
4.6
Un Front Pareto . . . . . . . . . . . . . . . . . . . . .
D’un Espace de Recherche Vers Un Front Pareto . . .
Les Algorithmes d’optimisation . . . . . . . . . . . . .
Organigramme de Branch & Bound . . . . . . . . . .
les cinq niveaux d’organisation d’un AG . . . . . . . .
illustration schématique du codage des variables réelles
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
60
60
61
64
66
67
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
par Gaspard .
ix
.
.
.
.
4.7
4.8
4.9
4.10
4.11
la méthode de sélection de la roulette .
Exemple de croisement en un seul point
Exemple de croisement en deux points .
Exemple de mutation . . . . . . . . . . .
Organigramme de l’AG . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
68
69
69
69
70
5.1
5.2
5.3
5.4
Graphe
Graphe
Graphe
Graphe
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
74
75
76
77
6.1
6.2
6.3
6.4
6.5
liste scheduling . . . . . . . . . . . . . . . . . . . .
Exemple de classification par ACP . . . . . . . . .
Diagramme d’Activité de Validation structurelle .
Diagramme d’Activité de Détection des Anomalies
Diagramme d’Activité de Mapping Hiérarchique .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
84
85
88
89
90
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
7.10
7.11
7.12
7.13
7.14
Les différentes étapes de développement . . . . . . . . . . .
Architecture en Package de l’Application . . . . . . . . . . .
La fenêtre principale de l’application . . . . . . . . . . . . .
La partie Nord de l’interface . . . . . . . . . . . . . . . . . .
La partie West de l’interface . . . . . . . . . . . . . . . . . .
La partie Est de l’interface . . . . . . . . . . . . . . . . . .
La partie Sud de l’interface . . . . . . . . . . . . . . . . . .
Diagramme de class du noyau (architecture) (1/4) . . . . .
Diagramme de class du noyau (application)(2/4) . . . . . .
Diagramme de class du noyau (structure de données) (3/4)
Diagramme de class du noyau (traitement)(4/4) . . . . . . .
Diagramme de classe de l’interface . . . . . . . . . . . . . .
Diagramme Séquence d’Ouvrir un nouveau projet . . . . . .
Diagramme Activité de Saisi de L’Arbre Hiérarchique . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
96
98
99
100
101
102
103
104
105
106
107
108
109
110
8.1
8.2
8.3
8.4
8.5
8.6
Le graphe hiérarchique de l’encodeur H.263. . . . . . . . . . . . . . . . . . . . . .
L’implémentation de l’encodeur H.263 en profil Gaspard. . . . . . . . . . . . . . .
Le graphe hiérarchique de l’MPSOC. . . . . . . . . . . . . . . . . . . . . . . . . .
Résultat d’association à plat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résultat d’association à deux niveaux. . . . . . . . . . . . . . . . . . . . . . . . .
Évolution des temps de recherche du GILR en fonction de la taille des application
et du nombre de niveau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
113
114
115
116
117
d’application . . . . . . . .
d’architecture . . . . . . .
Hiérarchique d’application
Hiérarchique d’architecture
.
.
.
.
.
.
.
.
.
.
.
.
118
x
Liste des tableaux
1.1
Classification de Flynn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1
3.2
3.3
3.4
3.5
3.6
3.7
Méthodologies pour les NOC . . . . . . . . . . . .
Objectifs spécifiés pour les NOC . . . . . . . . . .
Méthodologies pour MPSOC à base de Bus . . . .
Les objectifs des MPSOC à bus . . . . . . . . . . .
Les délais de communication dans les NOC . . . .
Délais de traitement dans les NOC . . . . . . . . .
Placement de tâches avec optimisation de l’énergie
8.1
Résultats de temps de Placement hiérarchique . . . . . . . . . . . . . . . . . . . . 118
xi
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
43
43
50
51
53
53
56
Résumé
Ce mémoire cible une phase très importante dans le cycle de développement des
systèmes embarqués, celle de la conception software.
Dans cette phase, le processus de placement d’une application hiérarchique sur une
architecture hétérogène constitue un défi à relever , afin de satisfaire des objectifs
contradictoires et de fournir des résultats dans des délais raisonnables. En utilisant
des différentes approches exactes et heuristiques, et en adoptant un modèle permettant de représenter n’importe quelle structure, à different niveaux d’abstraction, afin
d’être plus proche des problèmes d’association de l’arbre hiérarchique application et
architecture.
Mots-clés: Système Embarqué, SOC, MPSOC, Hiérarchique, Optimisation multi-objectifs
xii
Introduction générale
Dans le pratique, une tâche particulière peut être réaliser par plusieurs machines fonctionnant en synergie .Par exemple dans une voiture, il existe plusieurs systèmes embarqués afin de
faciliter la conduite et d’assurer la sécurité du conducteur et des passagers ( ABS,ESP. . . ).
L’apparition des appareils mobiles et autres nouvelles technologies a poussé les concepteurs
à équiper ces appareils de différents systèmes.
Un système embarqué peut être défini comme un système électronique et informatique autonome ne possédant pas d’entrées/sorties standards comme un clavier ou un écran.
Sur une puce (SOC ,System On Chip) un ou plusieurs différents systèmes peuvent être embarqués, de nature hétérogènes et donc complexes. celle ci sont constitués de plusieurs différents
processeurs (FPGA, DSP, GP par exemple), avec des fonctions dédiées ou reconfigurables.
L’évolution des systèmes embarqués a suggéré l’idée de faire connecter les SOC dans des
NOC pour tirer profit d’une caractéristique très importante, celle du parallélisme afin de minimiser le temps d’exécution et par conséquent, l’énergie consommée.
Dans ce mémoire, nous espérons étudier un problème très répandu dans le domaine de la
conception des systèmes embarqués, celui de placement d’une application sur un NOC, en respectant un ensemble de contraintes (temps d’exécution réduit, le minimum d’énergie consommer,
la bande passante bien utilisé).
Dans le cadre de notre travail, une application est un ensemble de tâches qui communiquent
entres elles, via les bus sur une architecture hétérogène, pour échanger des messages. Notre rôle
est de placer ces tâches sur les différents processeurs, en minimisant le temps d’exécution et donc
l’énergie consommée.
Pour résoudre ce problème, nous avons utilisé l’Algorithme Génétique, inspirée du modèle
des lois de la nature de Darwin. Cette technique a été définie par J.Holland [20] et formalisée par
E. Goldberg [15] . Efficace dans de nombreux domaines, tels que l’optimisation des réseaux, le
traitement d’images ainsi le contrôle des systèmes industriels. Alors que l’algorithme de Branch
xiii
& Bound, est une méthode de recherche exacte, permettant de trouver une solution dans un
ensemble fini.
Plan du Document
Afin de permettre au lecteur de suivre et de comprendre notre démarche, l’exposé s’articule
en 8 chapitres regroupés en 4 parties .
– Partie I :
– Chapitre I : Introduction aux systèmes embarqués et présentation de leur caractéristiques
et leur domaines d’application.
– Chapitre II : Une définition des différents flots de conception des systèmes embarqués.
Et la présentation de la tendance la plus utilisée les MDA {Model Driven Architecture}.
– Partie II :
– Chapitre III : Introduction au problématique du placement et l’ordonnancement dans
les NOC {Network On Chip}.
– Chapiter IV : Introduction au problème d’optimisation multi-Objectifs, et définition des
Algorithmes utilisés B&B {Brunch and bound } et AG {Algorithme génétique}.
– Partie III :
– Chapiter V : Modélisation du problème de placement et d’ordonnancement hiérarchique.
– Chapiter VI : Résolution du problème de placement et d’ordonnancement hiérarchique.
– Partie IV :
– Chapiter VII : Implementation et diagrammes UML {Unified Modeling Language}.
– Chapitre VIII : Résultats des experimentations générées par notre application.
xiv
Première partie
Introduction aux Système Embarqué
et Flots de Conception
1
Chapitre 1
Les Systèmes Embarqués
2
1.1. Introduction
1.1
1.1.1
Introduction
Qu’est-ce que les Systèmes Embarqués ?
Les systèmes embarqués sont des systèmes informatiques déployés dans le monde physique.
Ils captent des informations de leur environnement, s’adaptent et agissent sur lui sans aucune ou
presque aucune intervention humaine. Ils communiquent généralement à travers des réseaux qui
véhiculent des flux de données toujours plus importants. Les systèmes embarqués incluent tous
les appareils intégrants des logiciels dans leur fonctionnement, que ceux-ci soient visibles à leur
utilisateurs ou non. La réalisation des systèmes embarqués réunit de nombreuses compétences
(informatique, électronique, architecture de systèmes, mathématiques).
Elle nécessite de prendre fondamentalement en compte l’hétérogénéité des composants et
des logiciels ; de plus, un système embarqué peut être défini comme un système électronique et
informatique autonome, dédié à une tâche bien précise, Il ne possède généralement pas d’entrées/sorties standards comme un clavier ou un écran d’ordinateur, Le système matériel et
l’application étant intimement liés.
1.1.2
L’Informatique Embarquée ?
Il est intéressant de noter que l’informatique change : elle tend a évoluer vers le développement
d’une multitude d’objets informatiques accessibles et personnalisés pour et par les utilisateurs.
Les gros serveurs de calcul centralisant l’information cohabitent avec une informatique nomade
dotée de capacité forte de communication. L’omniprésence se manifeste par le fait qu’actuellement nous trouvons des appareils électroniques dans beaucoup de produits de la vie courante,
dans nos téléphones portables, dans nos montres, dans nos machines à laver, . . . .De plus, la
tendance est d’interconnecter tous ces petits appareils les uns aux autres, dans le but de les faire
interagir. L’acceptation de ces objets mobiles et communicants par les utilisateurs a été favorisée
par leur grande ergonomie.
Toutefois, ce facteur clef de l’intégration de ces objets portables et communicants amène
des problématiques nouvelles quant au développement du logiciel et des systèmes d’exploitation
embarqués permettant d’exploiter au mieux les spécificités et les contraintes de ce domaine.
Le logiciel embarqué doit à la fois être très proche du matériel sur lequel il fonctionne, mais
aussi facile d’utilisation, il doit supporter une multitude de normes différentes, en particulier
pour les protocoles de communication (WIFI 802.x, Bluetooth). Enfin, dans le cas d’utilisation
de batteries, le logiciel enfoui (embarqués) doit supporter une gestion de l’énergie efficace lui
permettant de fonctionner le plus longtemps possible.
3
1.2. L’étendus des Systèmes Embarqués
1.2
1.2.1
L’étendus des Systèmes Embarqués
Domaines d’Applications
L’électronique embarquée touche plusieurs domaines tels que :
– Le Transport : Automobile, Avionique, ITS (Intelligent Transport System) . . .
– La Communication : Mobile (UMTS, GPRS, GSM . . .), Guidage satellite (GPS), Télévision
numérique . . ..
– Autres : Domestique (objets communicants), Applications Multimedia (Audio, Vidéo),
Appliances (électronique à faible coût), Bio-informatique.. . .
1.2.2
Domaines de Recherches
Cette discipline offre aussi beaucoup de voix à la recherche, comme :
– Architecture, Compilation : Pour résoudre des problèmes tels que : Le parallélisme, la
conception conjointe logiciel-matériel, l’ordonnancement, Mémoire, Taille du code,Communication
sur la puce.
– Systèmes et protocoles : Les systèmes embarqués utilisent des protocoles de communication
spécifiques tels que eX-Ray, TDMA ou CAN, projet Trio0).
– Formalisme et systèmes critiques : Les environnement temps réel nécessitent un formalisme
vu la difficulté et la complexité des systèmes embarqués.
1.3
Tendances Architecturales Physiques
Avec le développement de l’électronique et les progrès de la recherche dans le domaine du
matériel, les systèmes embarqués se sont scindés en deux tendances architecturales majeures,
les monoprocesseurs monopuces et multiprocesseurs monopuces, donc deux domaines quasi différents de part leur caractéristiques et exigences.
L’origine de ces deux tendances vient naturellement de la classification de Flynn ; où l’idée
d’utiliser plusieurs processeurs pour améliorer les performances est apparue avant même la fabrication du tout premier microprocesseur. En effet, en 1966, Flynn propose un modèle simple de
classement des ordinateurs, qui reste encore utile aujourd’hui pour caractériser les processeurs
parallèles. Son analyse se base sur le parallélisme dans les flots d’instructions et de données ce
qui a donné naissance à quatre catégories qui sont répertoriées dans la figure 1.1.
Cette figure résume les quatre possibilités d’architectures de processeurs parallèles. La première, SISD (Single Instruction Single Data), correspond à une seule instruction sur une seule
donnée ce qui est équivalent à une architecture monoprocesseur de type « Von Neumann ». La
deuxième, SIMD (Single Instruction Multiple Data), correspond à une seule instruction appliquée à de multiples données : on parle aussi de traitement vectoriel des données. Les processeurs
SIMD permettent au composant d’effectuer des traitements identiques sur des données de taille
réduite (par exemple, sur un chemin de données de largeur 32 bits, au lieu d’effectuer 1 seule
4
1.4. Un Système Embarqué typique
opération sur une donnée de 8 bits, on scinde l’opérateur en 4 ce qui permet d’effectuer le même
traitement sur 4 données en même temps, permettant de réduisant le nombre de cycles de calcul).
La classe des architectures MISD (Multiple Instruction Single Data) peut être apparentée
avec précaution aux architectures pipelinées. Quant aux architectures MIMD (Multiple Instruction Multiple Data), il s’agit de processeurs parallèles exécutant des instructions différentes sur
des données multiples. Ces processeurs présentent des propriétés très intéressantes pour l’exploitation de processus disjoints, comme le parallélisme au niveau tâche.
Flot
d’instruction
Unique
Multiple
Flot de données
Unique Multiple
SISD
SIMD
MISD
MIMD
Tab. 1.1 – Classification de Flynn.
1.4
Un Système Embarqué typique
La figure 1.1 nous présente un modèle standard et typique d’un système embarqué :
On trouve en entrée des capteurs généralement analogiques couplés à des convertisseurs A/N.
On trouve en sortie des actionneurs généralement analogiques couplés à des convertisseurs N/A.
Au milieu : le calculateur mettant en oeuvre un processeur embarqué et ses périphériques d’E/S.
Il est à noter qu’il est complété généralement par un circuit FPGA jouant le rôle de co-processeur
afin de proposer des accélérations matérielles à celui ci.
On trouve, en fait, un beau système d’asservissement entre les entrées et les sorties. Notant
que l’expression la plus simple de cette figure est de considérer comme capteurs, des interrupteurs
et des actionneurs.
1.5
les Différences avec un ordinateur du bureau
– L’interface IHM peut être aussi simple qu’une diode qui clignote ou aussi complexe qu’un
système de vision de nuit en Temps Réel.
– Des circuits numériques FPGA, ASIC ou des circuits analogiques sont utilisés pour augmenter les performances du système ou sa fiabilité.
– Le logiciel à une fonctionnalité fixe ; exécuter une application bien spécifique .
5
1.6. Les Contraintes des Systèmes Embarqués
Fig. 1.1 – Schema typique d’un système embarqué
1.6
1.6.1
Les Contraintes des Systèmes Embarqués
Temps Réel et Activités
Le Temps Réel est un concept un peu vague et chacun a sa propre idée sur la question.
On pourrait le définir comme : Un système est dit Temps Réel lorsque l’information après
acquisition et traitement reste encore pertinente. Plus précisément, cela veut dire que dans le
cas d’une information arrivant de fa¸con périodique (sous forme d’une interruption périodique
du système), les temps d’acquisition et de traitement doivent rester inférieurs à la période de
rafraı̂chissement de cette information. Un temps maximum d’exécution est garanti (pire cas) et
non un temps moyen. En effet, beaucoup de systèmes embarqués interagissent directement avec
leur environnement via des capteurs/actionneurs ou un réseau de communications sans fil. Ces
intéractions contraignent les temps de réponse du système embarqué de manière plus ou moins
forte selon le domaine d’applications visé. On parle alors de système temps-réel dans le sens
où le temps de livraison des résultats d’un calcul fait partie intégrante de la spécification de ce
dernier, au même titre que le résultat lui-même.
1.6.2
Consommation énergétique
Une grande majorité des systèmes embarqués (téléphones cellulaires, ordinateurs de poche,
. . .) sont confrontés au problème de l’autonomie. Aussi, afin d’étendre l’autonomie de fonction6
1.6. Les Contraintes des Systèmes Embarqués
nement d’un système deux approches complémentaires sont possibles :
– Augmenter la capacité de stockage des batteries.
– Réaliser un système embarqué à faible consommation énergétique.
Dans le cadre de cette dernière approche, plusieurs méthodes sont alors envisagées qui
touchent à la fois le domaine de l’électronique et du logiciel, la conception de composants électroniques consommant le minimum d’énergie, l’optimisation du logiciel afin de diminuer le coût
énergétique de son exécution, et enfin la conception de stratégies logicielles exploitant les fonctionnalités du matériel.
1.6.3
Mémoire
La mémoire est une ressource limitée dans un grand nombre de systèmes embarqués (de
quelques Kilo-octets dans une carte à puce à quelques Mega-octets dans un téléphone portable),
et par conséquent une bonne utilisation de la ressource mémoire est cruciale pour ces systèmes.
Les méthodes permettant d’utiliser des systèmes à faible capacité mémoire vont de l’utilisation
de codes interprétés compacts, comme par exemple le Bytecode Java, à l’utilisation d’algorithmes
de compression, (en passant par des algorithmes d’allocation dynamique de mémoire optimisés
pour limiter le morcellement de la mémoire, ou fragmentation ).
Une difficulté supplémentaire dans les systèmes embarqués est que la gestion de la mémoire
soit compatible avec les contraintes temps-réel des applications. Bien que de nombreux systèmes
temps-réel se cantonnent à une gestion statique de la mémoire, quelques études récentes visent
à utiliser des techniques de gestion de mémoire élaborées (allocation et libération automatique
de mémoire - garbage collection, espaces d’adressages séparés) dans un contexte temps-réel
embarqué, on parle aussi de la mémoire cache : Vue que mémoire cache est sur la même puce
que le processeur, sa taille est très limitée (une petite fraction de la mémoire principale). Il s’agit
en général de SRAM (Static RAM) plutôt que de DRAM (Dynamic RAM) : la mémoire cache
est plus rapide mais très chère. Les temps d’accès sont très courts (1 cycle d’horloge en général)
alors qu’il en faut plusieurs pour accéder à la mémoire principale.
1.6.4
Tolérance aux fautes
Certains systèmes embarqués doivent pouvoir remplir leur fonctions malgré la présence de
fautes, qu’elles soient d’origine physique ou humaine. Les moyens pour la sûreté de fonctionnement, et plus spécifiquement les méthodes de tolérance aux fautes, permettant au système
de remplir ses fonctions en dépit des fautes pouvant affecter ses composants, ont fait l’objet de
travaux fournis dans les trente dernières années pour des systèmes généralistes. Par exemple, en
ce qui concerne les fautes d’origine physique, il est nécessaire de détecter les erreurs, par l’utilisation de méthodes telles que les codes détecteur d’erreurs, les contrôles de vraisemblance ou
encore le diagnostic en-ligne, puis d’effectuer un recouvrement d’erreur permettant au système
de continuer à remplir ses fonctions malgré l’erreur, que ce soit par reprise de son exécution à
partir d’un état sauvegardé au préalable (point de reprise) ou par compensation exploitant la
redondance présente dans le système (par exemple la duplication active de tâches).
7
1.6. Les Contraintes des Systèmes Embarqués
Les difficultés issues du contexte embarqué sont relatives aux contraintes de temps des logiciels
embarqués, ainsi qu’aux ressources limitées de l’architecture. Ceci contraint les types de méthodes de tolérance aux fautes utilisables dans un contexte embarqué temps-réel. En particulier,
dans les systèmes temps-réel, il est nécessaire d’intégrer les mécanismes de tolérance aux fautes
dans l’analyse d’ordonnancement du système.
1.6.5
Hétérogénéité
Les système embarquée sont généralement composés de partie logiciel et matériel ; la partie
logiciel concerne l’application qui s’exécute sur un processeur alors que la partie matériel consiste
un composant physique qui implémente une fonctionnalité spécifique.
Cette hétérogénéité peut avoir plusieurs aspects comme : type de composants(CPU, mémoire,
ASIC, etc. . .), protocole de communication utilisé (FIFO, etc . . .), type de donne échangée ou
même la nature des composants (électronique, mécanique, optique ), des composants d’écrits
dans différent langage ce qui ajoute un aspect d’hétérogénéité en plus.
1.6.6
Réutilisation
La réutilisation peut influencer l’étape d’exploitation architecturale d’un système. Si le modèle ne facilite pas la réutilisation des composants de base, un changement du système implique
un effort plus important de la part du concepteur pour réimplanter les adaptateur de communication, pour cela, la réutilisation est devenue l’issue principale pour mener a bien la conception
de système embarquée, on parle de la réutilisation des composant et d’outils.
1.6.7
Contraintes de coût de communication
On a tendance à négliger dans la conception de systèmes embarqués le coût de la communication, c’est à dire le coût d’envoi et de réception de messages entre les différents composants
du systèmes, surtout dans des systèmes embarqués traitants de l’information multimedia ou de
l’information de routage ; et plus on avance dans ce domaine plus sera complexe l’interconnexion
entre les différents composants et par ricochët le coût de la communication augmente.
Donc, l’aspect Communication prend de plus en plus d’importance dans le domaine de l’embarqué et plus spécialement dans celui des systèmes embarqués multiprocesseurs monopuces
MPSOC. Dans notre travail de fin d’étude, on s’intéresse justement entre autre à cet aspect qui
est le coût de la communication dans les MPSOC.
1.6.8
Adaptabilité aux environnements mobiles
Comme on le sait tous maintenant, on peut trouver des systèmes embarqués dans des téléphones cellulaires, dans des systèmes de surveillances mobiles, dans des satellites, etc. . . ; en
d’autres termes, les systèmes embarqués s’utilisent de plus en plus dans des environnements embarqués ; deux exemples d’utilisation qui ont fait beaucoup parler d’eux, et qui sont les réseaux
ad-hoc et les réseaux de capteurs.
8
1.7. Conception d’un Système Embarqué
On remarque rapidement l’importance de l’adaptabilité des systèmes embarqués aux environnements mobiles, et cet aspect induit à l’apparition de nouveaux domaines de recherches ; la
Mobilité des systèmes embarqués est une spécialité à part entière.
1.7
Conception d’un Système Embarqué
C’est bien là le point le plus excitant et qui est l’essence même de ce mémoire. Du point de
vue technique, la conception d’un système embarqué demande à son concepteur d’être pluridisciplinaire : électronique, informatique, réseaux, sécurité n’ont pas de secrets pour lui. Mais le
concepteur se doit aussi d’être un bon gestionnaire car concevoir un système embarqué revient
finalement à un exercice d’optimisation : minimiser les coûts de production pour des fonctionnalités optimales. Le système embarqué doit être :
–
–
–
–
–
–
Robuste.
Simple. La simplicité est gage de robustesse.
Fiable.
Fonctionnel Le système doit toujours fonctionner correctement.
Sûr surtout si la sécurité des personnes est en jeu.
Tolérant aux fautes.
D’autres contraintes sont aussi prise en compte :
–
–
–
–
–
–
L’encombrement.
Le poids.
Le packaging : difficulté de faire cohabiter dans un faible volume, électronique analogique.
électronique numérique et RF sans interférences.
L’environnement extérieur.
La consommation électrique : Le système embarqué nomade doit être faible consommation
car il est alimenté par des batteries. Une consommation excessive augmente le prix de
revient du système embarqué car il faut alors des batteries de plus forte capacité.
– Le coût. Beaucoup de systèmes embarqués sont fabriqués en grande série et doivent avoir
des prix de revient extrêmement faibles.
– Le temps de développement. Dans un marché concurrentiel et de niches, il convient d’avoir
un système opérationnel le plus rapidement possible pour être le premier sur le marché.
Devant toutes ces contraintes, le concepteur adopte des règles de bon sens :
– Faire simple.
– Utiliser ce que l’on a déjà fait ou fait par d’autres. On appellera cela pudiquement du
design reuse.
– Ne pas se jeter sur les technologies dernier cri. Quelle est leur pérennité dans le temps ?
9
1.8. Architectures des différents systèmes embarqués
– Ne pas se jeter sur le dernier composant sorti surtout s’il est grand public. Quelle est
sa pérennité dans le temps surtout si l’on travaille pour la défense où l’on demande une
maintenance sur 30 ans !
– Utiliser des technologies éprouvées . Ces dernières peuvent d’ailleur avoir plusieurs générations de retard par rapport à leur homologues grand public.
Pour le grand public, le concepteur de systèmes embarqués peut sembler faire de l’inertie
face aux nouvelles technologies mais il faut le comprendre : c’est pour le bien du système qu’il
conçoit surtout si la sécurité des personnes est en jeu.
Cela explique en partie le décollage difficile des logiciels libres et de Linux pour l’embarqué.
Mais ceci est oublié, la déférence logiciels libres balaie une à une toutes les réticences.
1.8
Architectures des différents systèmes embarqués
Un SOC désigne l’intégration d’un système complet sur une seule puce de silicium.Ce terme
est devenu populaire dans le milieu industriel malgré l’absence d’une définition standard.on peut
avoir une définition telle que un SOC est un résultat de la cohabitation sur silicium de nombreuses
fonctions déjà complexes en elle même (processeurs, convertisseurs, mémoire, bus..etc).avec un
strict minimum qui se résume en une unité de traitement de logiciel(CPU) avec une dépendance
totale(ou partielle) des composants externes pour exécuter sa tâche.Mais le plus important c’est
d’avoir à la fois du materiel et du logiciel.
1.8.1
mono-puce
dans la figure 1.2 est présenté un exemple de système mono-puce typique.Il se compose d’un
coeur de processeur (CPU), d’un processeur de signal numérique (DSP), de la mémoire embarquée, et de quelques périphériques tels qu’un DMA (Direct Memory Access) et un contrôleur
d’E/S.
Fig. 1.2 – Schema typique d’un SOC
Le CPU peut exécuter plusieurs tâches via l’intégration d’un OS, le DSP permet de décharger
le CPU en faisant le calcul numérique sur les signaux en provenance du convertisseur A/N. Le
10
1.8. Architectures des différents systèmes embarqués
système pourrait être construit exclusivement de composants existants et de solutions faites sur
mesure.Maintenant avec la finesse de gravure sur silicium on peut implementer des MPSOC.
pour des raisons différentes la solution mono-puce est considérée comme un moyen élégant pour
implementer un système, surtout avec la fusion de la logique et de la mémoire grâce aux avances
technologiques qui ont permis cette fusion. La conséquence est que le temps de latence pour
accéder aux mémoires externes est maintenant annulée, la taille de la puce est réduite avec la
suppression des broches qui sont devenues inutiles puisqu’il n’y a pas d’accès à la mémoire,
toutes ces modifications rapportent un gain sur le coût total du système embarqué qui est égal
généralement a 50% du coût total ce qui permet de produire des systèmes embarqués fiables et
économiques côté énergie.
1.8.2
Caractéristiques des SOC
a) Hétérogénéité : Le système monopuce n’encapsule pas des systèmes purement électroniques, il peut intégrer aussi des composants non électroniques. C’est le cas, par exemple, des
systèmes intégrant des éléments micro-mécaniques . Une première classification se fait entre parties analogiques et parties numériques. Un exemple quotidien de tels systèmes, dits hybrides, est
le téléphone portable, où la partie radio (analogique) et la partie traitement de signal et gestion
de l’interface utilisateur (numérique) cohabitent souvent sur la même puce.
b) Embarquement : les systèmes embarqués sont par définition des sous-systèmes englobes
par des systèmes plus larges, cela dans le but d’avoir des fonctions particuliéres.Les SOC sont
aussi des systèmes embarqués car ils sont toujours appelés à évoluer dans l’environnement du
système qui les englobe.L’intéraction entre les SOC et leur environnements se fait via des convertisseurs analogique/numérique.
c) spécification : Les systèmes mono-puce sont différents par rapport aux ordinateurs qui
ont un usage général, mais un SOC est destiné à faire une tâche particulière bien définie.Cette
caractéristique a fait la difference au niveau de la méthodologie de conception entre les systèmes
mono-puce et les systèmes à usage général. Il faut indiquer que grâce aux méthodologies de
conception des SOC, il est maintenant possible de réutiliser des composants des autres systèmes
déjà conçus, mais dans le cadre des spécifications du SOC actuel.
1.8.3
Multiprocesseurs on SOC (MPSOC)
Maintenant, une puce peut contenir plusieurs centaines de millions de transistors, cela est le
résultat de progrès technologiques qui ont fait apparaı̂tre deux types d’architectures différentes
pour faire face à cette nouvelle situation.
la première se résume à l’utilisation des architectures mono-puce avec une amélioration des
performances du CPU utilisé et l’utilisation de Co-processeur.Les CPU utilisés sont caractérisés
par une fréquence de fonctionnement très élevée, une structuration matérielle appropriée, un
jeu d’instructions sophistiqué avec plusieurs niveaux de caches (hiérarchie de mémoire) ainsi
11
1.8. Architectures des différents systèmes embarqués
que des techniques d’optimisation spécialisées (nombre d’accès mémoire,taille...).La figure 1.3
illustre une architecture Processeur/co-processeur.
Fig. 1.3 – Un exemple d’architecture monoprocesseur
Dans de telles architectures, la communication est basée sur le principe maitre/esclaves. Le
CPU est le maitre et les périphériques sont des esclaves.
La deuxième consiste à utiliser des architectures microprocesseurs qui sont jusqu’a présent
réservées aux machines de calculs scientifiques.cette tendance est nourrie par le fait qu’il est de
plus en plus difficile d’avoir des architectures mono-puce assez rapides alors que les microprocesseurs sur puce sont déjà réalisables.On peut citer d’autres raisons comme :
Le parallélisme : Les transistors supplémentaires disponibles sur la puce sont utilisés par les
concepteurs principalement pour extraire le parallélisme à partir des programmes, afin d’effectuer plus de travail par cycle d’horloge. La majorité des transistors sont employés pour
construire les processeurs super scalaires. Ces processeurs visent à exploiter une quantité
plus élevée de parallélisme au niveau instruction, malheureusement, comme les instructions
sont, en général, fortement interdépendantes, les processeurs qui exploitent cette technique
voient leur rendement diminuer malgré l’augmentation quadratique de la logique nécessaire
au traitement de multiples instructions par cycle d’horloge, une architecture microprocesseurs évite cette limitation en employant un type complètement différent de parallélisme :
le parallélisme au niveau tâche. Ce type de parallélisme est obtenu en exécutant simultanément des séquences d’instructions complètement séparées sur chacun des processeurs.
Les retards causés par les interconnections : Ils sont devenus plus significatifs à cause de
la rapidité croissante des portes Cmos et des tailles des puces sont devenues physiquement
plus grandes. dans les prochaines années , nous ne pourrons acheminer des signaux que sur
une petite partie de la puce durant chaque cycle d’horloge, ce qui diminue la performance
dans le cas de large puce multiprocesseur. Cependant, une puce microprocesseur peut être
conçue de telle façon que chacun de ses petits processeurs occupe un secteur relativement
petit.
12
1.8. Architectures des différents systèmes embarqués
Le temps de conception : Il est déjà difficile de concevoir des processeurs. Le nombre croissant de transistors, les méthodes de plus en plus complexes d’extraction de parallélisme au
niveau instruction et le problème des retards causés par les interconnections rendront ceuxci encore plus difficiles. Une architecture multiprocesseurs mono-puce, permet de réduire
ce temps de conception car il permet l’instanciation de plusieurs composants pré-validés,
qui peuvent être réutilisés dans plusieurs applications de différentes tailles (en changeant le
nombre de composants). Seulement la logique d’interconnexion entre composants n’est pas
entièrement reproduite. Puisqu’une architecture multiprocesseur mono-puce traite tous ces
problèmes potentiels d’une façon directe et extensible, pourquoi ne sont ils pas déjà répandus ? Une raison est que les densités d’intégration viennent juste d’atteindre les niveaux, où
ces problèmes deviennent assez significatifs pour considérer un changement de paradigme
dans la conception des systèmes. Une autre raison, est la survenue de problème de synchronisation et de communication entre les différents processeurs. Ceci rappelle encore une
fois l’importance de l’architecture de communication dans les systèmes multiprocesseurs.
1.8.4
Architectures des systèmes MPSOC
Dans cette section, nous passons en revue les étapes importantes qui ont marqué l’évolution
des architectures matérielles des systèmes monopuces.
a) Les ASIC : Le terme ASIC signifie circuit intégré spécifique à l’application. Se contentant
de cette définition, tous les systèmes monopuces tels que définis plus hauts ne sont autres que des
ASIC. Cependant, le terme ASIC a désigné des circuits purement matériels qui implémentent
des fonctions bien spécifiques sur une même puce [33].
Pour des applications beaucoup plus complexes, il est coûteux et peu pratique de concevoir
le système entier comme un bloc matériel figé. De nos jours, les ASIC désignent des composants
plutôt élémentaires réalisant des fonctions bien déterminées (telle qu’une transformé de fourier
rapide) sous forme d’une propriété intellectuelle qui peut être intégrée dans des systèmes plus
larges.
b) Les architectures monoprocesseur : Pour augmenter la flexibilité des systèmes monopuces et réduire leur coûts, les premières architectures mettant en oeuvre la solution logicielle
ont été des architectures monoprocesseurs (Fig 1.4). Ces architectures sont souvent centrées autour d’un processeur à usage général, exécutant un programme placé dans une mémoire locale
et communicant avec des composants matériels appelés périphériques via un bus système.
La partie logicielle représentée par le processeur prendra généralement en charge la partie
contrôle de l’application (flot de contrôle). Les autres parties de l’application qui demandent
un traitement plus intensif des données (flot de données) seront réalisées sur des périphériques
spécialisés (ASIC) jouant le rôle d’accélérateurs matériels. Les microcontrôleur conventionnels
constituent un exemple typique de ces architectures.
13
1.8. Architectures des différents systèmes embarqués
Fig. 1.4 – Architecture d’un monoprocesseur
c) Les architectures multiprocesseurs de première génération : les architectures multiprocesseurs de la première génération représentent un changement important sur les architectures
monoprocesseurs, car ces derniers étaient équipés d’un accélérateur matériel dédié au traitement
des données, mais maintenant un nouveau composant est ajouté à ces architectures qui sont
des processeurs spécialisés (DSP) donnant naissance à la première génération des architectures
multiprocesseurs.
Fig. 1.5 – Architecture d’un multiprocesseur première génération
L’architecture multiprocesseur de première génération est composée d’un processeur central,
de nombreux périphériques, et de quelques processeurs annexes, il s’agit souvent de processeurs
spécialisés comme les DSP.
d) Les architectures multiprocesseurs de deuxième génération : L’évolution du besoin
en terme de puissance de traitement , et la percée importante de la capacité d’intégration , ont
contribué à la mise au point d’architectures hautement parallèles intégrant un nombre important
de processeurs et de composants matériels sur une même puce.
Pour pouvoir supporter conjointement en puissance et en flexibilité, ces architectures comprennent de plus en plus de processeurs, qui peuvent chacun se comporter en maı̂tre : l’architec14
1.8. Architectures des différents systèmes embarqués
ture couramment utilisée basée sur un processeur central contrôlant le reste du système, n’est
donc plus suffisante. [14]
Auparavant, on avait des problèmes avec les calculs. Désormaiss notre problème est au niveau
de communication, qui est devenu un critère de définition d’architecture.dans la figure 1.6 on a
quelques exemples sur des architectures MPSOC de la deuxième génération.
Fig. 1.6 – Architectures multiprocesseurs de deuxième génération
Le premier exemple est basé sur des communications par bus : ce modèle de communication
consomme peu de surface, mais risque de devenir un goulet d’étranglement.Le deuxième est basé
sur des communications en barres croisées très performantes mais aussi très coûteuses en surface.
Le troisième exemple donne une solution intermédiaire, par réseau commuté. Enfin le dernier
exemple montre qu’il est possible de mixer plusieurs modèles de communication et d’apporter
de la hiérarchie dans l’architecture.
1.8.5
Les caractéristiques des architectures MPSOC 2eme génération
nous allons examiner de plus prés les architectures multiprocesseurs mono-puces ( de deuxième
génération) : leur spécifications, leur enjeux et les contraintes qui conditionnent leur conceptions.
a) Architectures hétérogènes et massivement parallèles : la grande différence entre les
architectures de la première génération et celle de la deuxième génération c’est que les architectures de la seconde sont massivement parallèles.Ce fort parallélisme a une conséquence directe
15
1.9. Réseau de communication sur puce (NOC)
sur la complexité croissante des applications embarquées, qui exige des capacités de traitement
très importantes.Pour détourner ce problème, les concepteurs ont décidé d’augmenter la fréquence pour faire face au besoin de traitement, mais il semble actuellement atteindre les limites
pour deux raisons :
– les technologies sont en voie d’atteindre la saturation en terme de délai de progression.
– cette solution à une repercution très importante sur la consommation d’énergie
Pour cela, le parallélisme s’avère la meilleure solution pour faire face à ce défis.Un point commun entre ces deux architectures, c’est qu’elles sont hétérogènes ( l’application est distribuée
sur plusieurs processeurs) ce qui constitue une difference majeure entre les systèmes multiprocesseurs classiques ( super-ordinateurs) et les systèmes multiprocesseurs modernes, du fait que
les super-ordinateurs ont des architectures homogènes.
b) La communication : Augmenter le degré de parallélisme n’est pas sans avoir de conséquences directe sur les architectures des systèmes mono puce. En effet , un problème important
auquel font face ces architectures concerne la communication qui désormais constitue un goulet
d’étranglement vu la quantité importante d’informations qui doit être échangée entre les différents composants de l’architecture. Les systèmes classiques centrés autour d’un bus simple ne
sont plus à même de fournir la bande passante nécessaire pour supporter le trafic généré par
les MPSOC. Une deuxième solution à ces problèmes consiste à remplacer le bus simple par une
hiérarchie de bus interconnectés par des ponts (bridge). Ce type de solution est implementé , a
titre d’exemples, par la norme AMBA ou encore Sonics.
1.9
Réseau de communication sur puce (NOC)
Les réseaux de communication sur puce (NOC ) de l’Anglais network on chip) constituent
une alternative radicale aux bus partagés [47] [16].une architecture à base de réseau sur puce
est formée de plusieurs nœuds qui communiquent par envoi de message à travers le réseau
de communication. Ces nœuds peuvent être de différentes natures, en l’occurrence logiciels,
matériels, . . .etc. Par ailleur, un nœud peut être hiérarchique, c’est-à-dire renfermant lui-même
un réseau de communication .
1.9.1
Les Topologies
Les réseaux de communication présentent donc aujourd’hui une grande variété d’implementations physiques. Ce paragraphe présente donc les principes des familles de topologies les plus
utilisées, sachant que de nombreuses solutions spécifiques sont développées à partir de ces familles
pour adapter le réseau de communication à l’application cible. Les Figures suivantes présentent
ainsi le schéma de principe de quelques unes des topologies les plus couramment employées.
16
1.9. Réseau de communication sur puce (NOC)
Point à point :Il s’agit de l’utilisation de ressources de transmission spécifiques et dédiées à
l’implémentation d’un lien entre deux éléments. La ressource de transmission étant dédiée
à une unique communication, elle est toujours disponible pour cette dernière et peut ainsi
lui offrir sa pleine bande passante. De plus, du fait de la simplicité du contrôle de telles
connexions, les débits y sont élevés et les latences dépendent principalement de la longueur
du chemin. Par contre, la surface de ces connexions sera proportionnelle au nombre de liens.
Fig. 1.7 – Architecture point à point
Les topologies multipoints :Le bus centralisé est en abandon progressif en tant que médium
principal de communication par l’ensemble des acteurs qui se veulent à la pointe des
solutions ”système sur silicium”. Le marché se déplace, de plus en plus rapidement, vers
des solutions globales de transport et de management du trafic au sein des systèmes sur
silicium, s’inspirant fortement des réseaux de calculateurs parallèles. Les systèmes sur
silicium présentant une forte hétérogénéité de composants possèdent rarement un seul
type de réseau embarqué.
Bus centralisé ou partagé :Il s’agit d’implémenter plusieurs liens logiques de communication par un unique médium de communication à accès partagé : le bus. Ce médium permet
la mise en place de liens unis ou multi-directionnels entre un maı̂tre et un ou plusieurs
esclaves. Les bus Ethernet et USB sont deux exemples célèbres de bus partagés. Tous les
éléments sont susceptibles de piloter les lignes du bus de données, mais seul un ou certains
d’entre eux peuvent piloter le bus d’Adresse.
Fig. 1.8 – Architecture Bus Partagé
17
1.9. Réseau de communication sur puce (NOC)
Les réseaux en étoile et en anneau :Une première alternative intéressante au bus partagé
est le réseau en étoile, de type Ethernet et un serveur central, en anneau. L’Octagon a
récemment su tirer parti des avantages conjugués de ces deux architectures . Ces systèmes
contiennent des commutateurs de paquets, au centre de l’étoile ou sur chaque nœud de
l’anneau .Elles peuvent offrir une grande bande passante dans le réseau et une bande
passante réduite moins coûteuse avec le composant
périphérique.
Fig. 1.9 – Architecture d’Anneau et d’étoile
Les réseaux crossbar :Il s’agit de la mise en parallèle de n lignes de transmission concurrentes.Le réseau de périphériques s’articule autour d’une matrice (appelée Switch Fabric)
permettant la mise en oeuvre concurrente de plusieurs canaux de communication.La configuration de cette matrice peut être :
– Statique par programmation de la matrice lors de la fabrication, compliquant ainsi la
réutilisation de la plateforme.
– Dynamique par reconfiguration des interconnexions à chaque démarrage de l’application
Fig. 1.10 – Architecture Crossover
18
1.9. Réseau de communication sur puce (NOC)
Les réseaux commutés ou à maille :Ce type de réseau comporte plusieurs étages, dont le
franchissement s’opère au travers d’un commutateur qui se charge de router le message.
L’implémentation de chaque commutateur peut être à base de multiplexeurs, voire à base
de petits bus crossbar. La propagation de l’information peut suivre l’un des deux schémas
suivants :
– Une connexion source-destination (aussi appelée session) permettant le transport continu
et transparent de l’information au travers des étages
– Une propagation de l’information d’étage en étage où elle est temporairement mis en
buffer dans une unité de routage. Ce mode de transmission est appelé wormhole.
Si deux paquets entrants doivent être routés vers la même sortie, on parle alors de collision,
et un paquet doit être élu et transmis tandis que l’autre est mis en buffer pour ne pas être
perdu.
Fig. 1.11 – Architecture à Commuté et Maillage Complet
19
1.9. Réseau de communication sur puce (NOC)
Conclusion
L’architecture des systèmes embarqués a connu une évolution importante depuis l’ère des
SOC jusqu’à celle des NOC, qui dominent actuellement le marché des systèmes embarqués.
L’évolution technologiques dans le domaine de telecommunication, a permis de faire connecter
des machines ou bien des SOC via des réseaux de communications à grande échelle comme le
système de localisation par satellite(GPS ).
20
Chapitre 2
Flots de Conception des SOC
21
2.1. Introduction
2.1
Introduction
Un flot de conception est caractérisé par une séparation entre la conception de la partie
matérielle et celle de logicielle, cette séparation s’effectue dés qu’un partitionnement initial de
la spécification fonctionnelle est opéré .Vers la fin du flot de conception ( étape d’intégration)
les deux parties sont recombinées d’une même description bas niveau.
2.2
Flot de conception Classiques
on peut classer les différents flots existants en trois catégories.
2.2.1
Flot séquentiel de conception de circuits spécifiques
Ce type de flot est quasiment sans restriction concernant l’architecture cible. l’architecture
matérielle est conçue en se basant sur les specifications initiales de l’application, une fois la
conception du matériel terminé alors la partie logicielle va commencer, et après un long cycle
séquentiel où les concepteurs sont forcé à atteindre une implementation finale de l’architecture
matérielle.
2.2.2
Flot de co-conception de circuits spécifiques
Afin de résoudre le problème de séquentialité dans le flot précédent, les cycles de conception
des parties logicielles et matérielles doivent être concurrents. Cette concurrence est dirigée par
des contraintes sur l’architecture cible, par ce moyen, les concepteurs des parties logicielle et
matérielle peuvent être menés en parallèle.
Il est possible d’automatiser les étapes de conceptions des parties logicielle et matérielles, en
imposant un formalisme particulier au niveau de la spécification de l’application [Ism94].Mais
à cause des contraintes et des hypothèses, ces flots sont devenus trop contraignants pour être
utilisables en pratique.Il est de plus admis que la conception d’architecture aussi complexe que
les MPSoc est un art en ce sens qu’il est difficile de la rendre complètement automatique.
2.2.3
Flots basés sur la notion de la plate-forme
Récemment, la conception basée sur la notion de plate-forme (plateforme based Design) a
suscité un intérêt croissant dans ,le domaine de la conception des MPSoC. [42] [26] [22]
Dans ce type d’approche, Le problème de la séquentialité de la conception logicielle/matérielle
est abordé en déplaçant une grande partie de la conception de l’architecture en amont du flot de
conception. Ceci donne lieu à la notion de famille génératrice d’architecture, spécification à un
domaine d’application. Une étape de configuration/spécification de cette architecture générique
est alors nécessaire pour chaque application particulière, appartenant à ce domaine. On parle
souvent d’étape d’instanciation d’architecture.
22
2.2. Flot de conception Classiques
Bien que le degré de spécificité de l’architecture finale vis-à-vis de l’application reste inférieur
aux deux approches précédentes, ce type de flot constitue un compromis intéressant entre performances de plus en plus important qui est celui du coût de développement du masque (dépassant
le million de dollar pour les technologies les plus récentes).
En effet, une solution intéressante consiste à faire appel à la capacité de configuration des
composants matériels programmables( tel que les FPGA ) lors de spécification ou d’instanciation
de l’architecture matérielle.
23
2.2. Flot de conception Classiques
Fig. 2.1 – Flot de conception classique
24
2.3. Flots de conception modernes
2.3
Flots de conception modernes
Si le flot de conception classique pouvait suffire pour les première et deuxième générations
de système sur puce, la troisième génération, fortement hétérogène et multi-maı̂tre, est trop
complexe pour que les limitations précédemment énoncées soient acceptables. De nouveaux flots
sont nécessaires, basés sur de nouvelles méthodes.
2.3.1
Co-Développement
Le co-développement ou codesign a pour but de développer conjointement les diverses parties
d’un système hétérogène. C’est pourquoi une description globale du système est nécessaire.
pour la description il y a deux moyens possibles :
– fournir un langage unique pour décrire toutes les parties de l’application ainsi l’architecture.
– avantage : plus simple pour les outils et les utilisateurs de gérer un langage unique
– inconvénient : difficile de définir un langage qui soit vraiment adapté à toutes les parties du système
– au lieu de fournir un langage unique pour toutes les parties, on fournit des langages appropriés pour chaque partie.
– avantage :il est possible d’avoir un langage pour chaque partie
– inconvénient : il est difficile de gérer touts les langages.
dans ce flot, la séparation entre le logiciel et le matériel est effectuée plus tard par l’équipe
d’architecture s’occupant du système global et de la coordination entre elles.
2.3.2
Co-Simulation
La co-simulation a pour but de simuler conjointement les diverses parties d’un système
hétérogène.Il existe deux méthodes pour effectuer cette co-simulation :
– la première consiste à traduire les descriptions de diverses parties dans un unique langage.
– La deuxième méthode consiste à conserver les descriptions spécifiques des diverses parties et à exécuter, en parallèle, les divers simulateurs. Un programme appelé bus de cosimulation, assure les communications et la synchronisation entre les divers simulateurs.[14]
25
2.3. Flots de conception modernes
Fig. 2.2 – Flot de conception modèrne
26
2.4. Ingénierie Dirigée par les modèles
2.4
Ingénierie Dirigée par les modèles
Les systèmes étudiés peuvent être modélisés selon différentes approches adaptées à la nature
de ces systèmes et au contexte d’application dans lequel ils sont définis. Parmi ces approches,
l’Ingénierie Dirigée par Les Modèles présente une contribution importante dans le domaine de
la conception de systèmes logiciels [26]. Elle représente une forme d’ingénierie générative, par
laquelle tout ou une partie d’une application est générée à partir des modèles.
Un des apports essentiels de l’approche IDM, consiste à automatiser la transformation de
modèles. Il s’agit de transformer le code d’un langage en un autre, ou une modélisation abstraite
en une structure de classe, ou même un modèle de données en un autre modèle tout en assurant
que les propriétés des données sont conservées lors de la transformation. Dans ce contexte, la
vérification de modèles basée sur des approches formelles donnant de spécifications rigoureuses a
pour objectif de garantir que les modèles possèdent toutes les qualités attendues, en particulier,
lorsqu’ils ont en charge de modéliser la fabrication de systèmes critiques développés dans des
secteurs comme les transports ferroviaires, l’avionique, le spatial, les télécommunications ou
l’énergie.
L’approche IDM ouvre ainsi de nouvelles perspectives dans le cadre de la conception des systèmes embarqués critiques. De plus, une caractéristique principale de l’approche IDM consiste à
favoriser l’étude séparée des différents aspects du système. Cette séparation augmente la réutilisation et aide les membres de l’équipe de conception à partager et à s’échanger leur travaux
indépendamment de leur domaine d’expertise. Ce concept est particulièrement intéressant dans
le domaine de conception des systèmes sur puce où les deux technologies logicielle et matérielle
vont interagir pour la définition du comportement global du système.
L’approche IDM est basée essentiellement sur la notion du modèle qui est en fait une abstraction simplifiée d’une réalité ou d’un élément à modéliser en négligeant certains détails et en
conservant que les détails qui nous intéressent dans la modélisation.
Dans l’approche IDM, les trois points constituants une approche en Y font référence à des
notions sensiblement différentes :
– 1. Modèle indépendant des plateformes (PIM, plateforme Independent Model ) : Un
modèle capturant de façon ”abstraite” les éléments constituant un système. Le terme ”abstrait” signifie simplement ”indépendamment de toute technologies d’implémentation”.
– 2. Modèle de définition d’une plateforme (PDM, plateforme Definition Model ) : Un
modèle définissant les éléments constituant une technologie d’implémentation,
– 3. Modèle spécifique à une plateforme (PSM, plateforme Specific Model ) : Sans rentrer dans les détails méthodologiques, un PSM est le ”produit” d’un PIM et d’un PDM.
27
2.4. Ingénierie Dirigée par les modèles
A partir d’une description indépendante de toute technologie d’implémentation et de la
description d’une technologie d’implémentation, on produit une description spécifique à
une technologie
2.4.1
GASPARD : Flot de conception pour les SOC
Gaspard se situe ainsi à la frontière de deux domaines de recherche : la conception des
systèmes sur puce, et l’ingénierie dirigée par les modèles. Si la notion de ”flot en Y ” existe dans
ces deux domaines, avec une articulation autour de trois points, il est important de noter que
le ”Y ” de Gaspard correspond à un flot tel qu’on le définit généralement dans le domaine de
la conception de systèmes sur puce (ou plus généralement dans le domaine de la conception de
systèmes embarqués incluant des parties logicielle et matérielle) :
Application : Spécification de la fonctionnalité attendue d’un système.
Architecture matérielle : Spécification de l’architecture matérielle qui sera utilisée pour
supporter l’exécution d’une application et réaliser ses fonctionnalités attendues.
Association : Spécification du placement d’une application sur une architecture matérielle
donnée.
Il adopte un flot de conception en ”Y”, ce qui permet aux concepteurs du système de modéliser de manière indépendante l’application et l’architecture matérielle du système, ensuite l’étape
d’association permet de les réunir en plaçant l’application sur l’architecture. Ces trois modèles
permettent, par l’intermédiaire de transformations, de générer des simulations à des niveaux de
précision de plus en plus importants.
La vérification formelle de la modélisation de l’application est rendue possible par la génération de langages synchrones déclaratifs comme lustre ou Signal. L’exécution concurrente de
différents processus sur une architecture multi-processeurs est rendue possible par la génération de langages procéduraux comme Fortran/Open MP. La finalité étant de générer un code
de simulation, avec System C par exemple, prenant en considération à la fois les parties matérielles et logicielles du système sur puce complet. La figure 2.3 illustre le flot de conception en ”Y”.
28
2.4. Ingénierie Dirigée par les modèles
Fig. 2.3 – flot de conception en Y
29
2.4. Ingénierie Dirigée par les modèles
La figure 2.4 illustre un exemple d’unité de calcul « Processing Unit » définit à l’aide de trois
composants élémentaires : un processeur MIPS, une mémoire Memory et un crossbar Crossbar4. Ce modèle est généré par l’environnement de Gaspard.
Fig. 2.4 – Un exemple de modélisation par Gaspard
30
2.4. Ingénierie Dirigée par les modèles
Conclusion
Les particularités multiples des systèmes embarqués a entraı̂né la complexité des flots de
conception des systèmes actuels. Dans le domaine d’ingénierie dirigée par les modèles (IDM) le
plus utilisé est celui de conception en Y.
31
Deuxième partie
Le placement Dans les NOC et
Méthodologie de Résolution
32
Chapitre 3
Le Placement et l’Ordonnancement
dans Les NOC
33
3.1. Introduction
3.1
Introduction
Les principaux thèmes sont les étapes de conception, les buts de conception et des algorithmes
pour la mise en place. Un diagramme accompagnant chaque description permettra de comprendre
la multitude de concepts de chaque méthodologie.
3.2
Les objectifs de la conception des NOC
Dans la phase de conception du NOC, il y a des objectifs à respecter comme le minimisation
de la consommation d’énergie,la réduction de la surface de la puce, maximisation du temp de
performance. Dans tous ces objectifs, le plus important celui de la réduction de la consommation d’énergie dans le cas des systèmes embarqués mobiles, car leur fonctionnement dépend de
la durée de vie de la batterie. En deux la réduction de la surface de la puce, car 80% de la
surface (pour la plupart des NOC) est occupée par les switchs et les mémoires. Pour résoudre
ce problème, on doit optimiser les algorithmes de routage au niveaux des switches et augmenter
l’utilisation des mémoires.
En réalité ces objectifs sont contradictoire car en réduisant l’énergie consommée on augmente
le temps d’execution des composants(CPU), qui fonctionnant en mode économie, pour cela on
est obligé de faire du multi-objectifs afin de trouver un compromis entre les différents objectifs
contradictoires.
3.3
Approches pour les NOC
Les NOC constituent un domaine de recherche vierge, où seulement quelques méthodologies
de placement ont été développées. La plupart ne prenant pas en considération le placement
et l’ordonnancement des communications encore moins pour l’ordonnancement . Le plus court
chemin dans le NOC est souvent déterminé au moment du placement des communications.
3.3.1
Approches sans assignation réseau
G.Varatkar et al. [17] ont développé une méthodologie en deux étapes pour minimiser la
consommation d’énergie totale dans le NOC (3.1). L’étape communication traite simultanément le mapping et le scheduling des tâches, en cherchant à réduire la consommation d’énergie
par la minimisation du volume des communications inter-processeurs. Cela facilite aussi la minimisation d’énergie des tâches dans l’étape de selection de voltage, en maximisant les repos
(slack). Les deux objectifs sont alternés par un ‘critère de communication, qui a le rôle de fixer
le volume local des communications inter-processeurs sous un seuil fixe globalement dependant
des communications de l’application, et d’un facteur K(0 ≤ K ≤ 10). Ce facteur permet d’arrêter
la boucle externe de la méthodologie jusqu’à ce qu’un optimum soit atteint. La deuxième étape
de la méthode traite le DVS pour les tâches et exploite la distribution non uniforme des repos
(slack) en considérant une valeur maximale pour le temps et l’énergie pendant le basculement
34
3.3. Approches pour les NOC
des voltages [48]. La méthode ne prend pas en considération le placement et l’ordonnancement
des communications ; les distances des communications sont grossièrement estimées. Ainsi les
deadlines hard ne sont pas garanties car les délais des communications sont ignorés.
Fig. 3.1 – Méthodologie de G.Varatkar et al
Méthodologie de G.Varatkar et al. T.Lei et al utilisent une méthode à deux étapes basée sur
les G.A pour le placement et ensuite, appliquent les techniques ASAP/ALAP (ASAP : As Soon
As Possible ; ALAP : As Late As Possible) pour l’ordonnancement des tâches (3.2). L’objectif du
placement est de maximiser les temps de performance, pendant que l’ordonnancement est utilisé
pour respecter les hard deadlines. Les communications ne sont pas placées et schedulées et leur
délais sont estimés en utilisant une distance moyenne dans le NOC, ou La distance Manhattan
entre processeurs. Cette méthode ne garantie pas les hard deadline car elle utilise la moyenne
dans des pires cas des temps d’exécution (WCET Worst Case Execution Times) pour les tâches
et le chemin de communication critique.
J.H et al [24] ont développé une méthode d’optimisation d’énergie qui cherche le plus court
chemin des communications dans le NOC, (Figure 3.3) et calcule la consommation d’énergie,
pour décider quels sont les placements possibles qui vont construire la solution initiale. Cette
méthode ne traite pas l’assignation réseau mais exploite les repos (relâchement) non uniformes
en les distribuant d’une façon proportionnelle selon le timing et les profils d’énergie des tâches.
35
3.3. Approches pour les NOC
Fig. 3.2 – La méthodologie de Lei et al
36
3.3. Approches pour les NOC
Fig. 3.3 – Méthodologie de J.Hu et al.
Cette méthode fournit des mesures des délais de communication, de la consommation d’énergie et tend à satisfaire les hard deadlines. Elle a deux phases, énergie d’ordonnancement (EAS)
et recherche-reparation (SaR). Durant la phase EAS la solution est construite en se basant sur
LS pour le mapping et scheduling des tâches parallèles, et une autre méthode déterministe pour
le mapping et scheduling des communications parallèles.La méthode déterministe traite l’ordonnancement des communications pour toutes les tâches prêtes et les processeurs disponibles, dans
le but de trouver le temps de terminaison le plus court (EFT) de toutes les tâches prêtes.
La méthode d’Armin et al [34] va être présentée avec plus détail car elle est la plus récente
que celles qui ont précédé. Dans leur approche, les auteurs utilisent comme modèle d’application
un GT et comme plate forme cible un NOC de deux dimensions. Ce processus, ils l’ont nommé
Core Mapping Technique (CMT ) qui commence par définir un graphe de tâche représentant
37
3.3. Approches pour les NOC
l’application et ces tâches. Il se termine par un placement optimal des composants sur des plateformes à topologies différentes, mais la plus réaliste et faisable est celle d’un réseau en 2D-mesh.
Le graphe TG modélise une application avec une série de tâches. En plus, chaque composant IP
dans le NOC est responsable de l’exécution d’une tâche pré-assignée. L’objectif est de décider
quel composant IP doit être placé, d’une façon optimale sur quelle tuile, pour que les contraintes
de performance soient satisfaites. Dans ce travail, les auteurs cherchent à minimiser la consommation d’énergie globale sur tous les liens du réseau.
Pour l’architecture, un graphe ACG permet de la modéliser. Chaque sommet ti représente
une tuile dans l’architecture et chaque arc rij représente le chemin de ti à tj . Chaque rij a comme
propriété E titj bit qui représente la consommation d’énergie moyenne par l’envoi d’un bit de ti à
tj . Le calcul de E titj bit a été proposé dans les travaux de [76] selon la formule suivante :
titj
Ebit
= nhope × ESbit + (nhope − 1) × Elbit
titj
Où Ebit
est l’énergie consommée par bit entre les noeuds. ESbit est l’énergie consommée
par les switchs entre les noeuds et nhops est le nombre de bit transférés de la tuile source à
la tuile destination. Ceci permet de voir que pour un 2D-Mesh avec un routage minimal, la
consommation moyenne d’énergie par l’envoi d’un bit entre deux noeuds ti , tj est déterminée
par la distance de Manhattan entre eux. Ceci est basé sur le fait que tous les liens ont les mêmes
caractéristiques. Dans ce travail, les auteurs ont supposé que chaque lien a un Elbit différent
et chaque switch a un ESbit différent. Ce qui donne l’expression suivante pour le calcul de la
consommation d’énergie totale des liens.
(nhope −1)
nhope
titj
Ebit
=
X
k=1
ESbit +
X
Elbit
k=1
D’où la consommation d’énergie totale pour transférer les données peut être calculée en multipliant l’énergie obtenue lors de l’équation précédente par le volume des données :
titj
ETtitj
otal = Datasize ∗ Ebit
Ensuite, pour le placement des tâches, ces auteurs, déterminent une liste TPL (Task Priority
List) qui donne les tâches selon les priorités de leur placement. Pour la plateforme, ils utilisent
la liste PPL (Plateforme Priority List) qui ordonnance les tuiles selon l’ordre descendant des
degrés de connectivité (voisinage), ainsi dans cette liste, les tuiles du centre sont les premières
et celles des frontières sont à la fin. Les priorités des placements sont exprimées par les règles
suivantes :
38
3.3. Approches pour les NOC
1. Les tâches qui communiquent le plus sont placées le plus proche possible.
2. Les tâches fonctionnellement très liées doivent avoir la distance Manhattan la plus petite.
3. Les tâches à degré de connectivité le plus élevé ne doivent pas être placées sur des tuiles
du bord du NOC mais de préférence sur celles du centre.
Enfin, pour déterminer le placement, une fonction coût est définie, basée sur la distance
minimale et les exigences de la bande passante entre les nœuds source et destination. Comme
exemple la fonction coût relative à la règle 2 on a :
C(i) = max [deg(Ti )] ; où Ti est une tâche dans TG
3.3.2
Approches avec assignation réseau
D.shin et Al. [10] ont proposé une méthodologie (figure ‘3.4) basée sur l’assignation réseau et
l’allocation des vitesses des liens pour réduire la consommation d’énergie dans les NOC avec une
échelle de voltage des liens. Le placement des tâches et l’assignation réseau ciblent à minimiser
le volume des communications inter-processeurs, cependant la sélection statique du voltage et la
gestion statique de l’énergie tendent à réduire la consommation d’énergie des liens. Le placement
des tâches permet la vérification des contraintes de dimensionnement. Les hard deadlines sont
aussi garanties, car quand l’ordonnancement des communications n’est pas performant, les pires
délais des communications (Worst Case Communication Delay) des liens sont appliqués. Ces
derniers peuvent être partagés par plusieurs arcs sans contrainte sur les volumes des communications. Comme conséquence d’avoir ignoré l’ordonnancement des communications, la sélection
du voltage des liens et la gestion d’énergie sont traités d’une façon statique.
Cette méthode utilise le AG pour le placement des tâches et l’assignation réseau. Pour l’ordonnancement des tâches et l’assignation des vitesses de liens c’est LS qui est utilisée. Le AG
dans cette méthode est basé sur un chromosome de placement, un croisement à deux points
et une mutation aléatoire. Le AG pour l’allocation utilise les permutations des tuiles comme
chromosome, les cycles de croisement pour générer les solutions acceptables et des changements
aléatoire comme mutation. La AG pour le placement du routage des communications utilise des
chromosomes binaires pour coder les mouvements selon les directions X et Y, ce qui a un impact
sur les volumes des communications de chaque lien et par là sur les délais de communications.
LS utilise la mobilité des tâches (|ASAPstart -ALAPend|), comme priorité statique qui est
basée sur l’estimation pessimiste des délais des communications.Hsin-chou et al [67] propose un
algorithme qui fait le placement et l’ordonnancement simultanément pour ce cas, en utilisant
la technique ‘ TDM (Time Division Multiplexing) pour le partage des liens du réseau. Ainsi
plusieurs arcs de communication peuvent se partager un même lien entre deux nœuds en se
partageant sa bande passante. Ici aussi, les auteurs utilisent comme modèles deux graphes :
CTG (U,E) (Communication Task Graph) où chaque sommet u ∈ U représente un IP, et chaque
39
3.3. Approches pour les NOC
Fig. 3.4 – Méthodologie de D.Shin et al.
40
3.3. Approches pour les NOC
arc eij ∈ E représente la communication de l’IP ui vers l’IP uj . La propriété de l’arc eij notée
par wij représente la bande passante nécessaire pour communiquer entre ui et uj . Le deuxième
graphe est nommé NAG(V,P) (NOC Architecture Graph). Chaque sommet vi ∈ V représente
une tuile dans l’architecture et chaque arc pij ∈ P représente le chemin de vi à vj . La valeur rij
associée au lien représente la bande passante.
Pour ces auteurs, le mapping est défini par la fonction MAP(U) :
M AP : U → V ⇒ vj = map(ui), ui ∈ U, vj ∈ V
L(pm,n ) est l’ensemble des chemins pm,n .
Un lien est noté par li,j .
rij peut être obtenu par la relation :
m≤|v|
X
ri,j =
b(li,j , pi,j )wm,n
n≤|v|
Où
(
B(li,j , pi,j ) =
1 : li,i ∈ L(pm,n )
0 : li,i 6∈ L(pm,n )
La latence est définie comme étant la durée d’envoi d’un paquet de l’émetteur au récepteur.
Elle dépend de la latence du switch et celle du lien notée par ls et ll . La latence du chemin de
communication Cn pour l’envoi d’un bit de donnée de la tuilei à la tuilej elle peut être calculée
par :
LCN =
X
LSi + (nhope − 1) × L1
i≤nhope
Où nhops est le nombre de switchs rencontrés par le bit pendant son transfert. La latence LSi
dénote la latence du switch Si dans le chemin de communication, elle est obtenue par la relation :
Lsi = Ttransf ert + TW aiting
TT ransf ert est le temps de transfert du switch. Ce temps est égal à la durée que prend un
switch pour faire passer le paquet sans le stocker dans son buffer. Le temps d’attente TW aiting
est celui de stockage du paquet dans le buffer, il dépend de l’algorithme d’ordonnancement et il
est égal à zéro s’il n’y a pas de stockage de paquet.
41
3.3. Approches pour les NOC
Donc, pour ces auteurs l’objectif est de minimiser
X
{
LCN pourn ≤ |N | }
Où |N| est le nombre des chemins de communication dans le NOC. Du fait que LCN depend de
LSi alors l’objectif de l’ordonnancement pour ces auteurs devient
XX
min{
TW aiting ; i ≤ |M ||K|}
Où |M| est le nombre de switch et |K| est le nombre de chemin de communications dans le switch.
Fig. 3.5 – Exemple de placement du CTG sur le NOC
Les lignes fléchées dans le NOC représentent les chemins de communications réservées par
l’algorithme de placement.
Hin-chou et al font le placement et l’ordonnancement en deux étapes. Dans la première, il
détermine le placement à l’aide d’une heuristique, le résultat est utilisé pour ordonnancer les chemins de communication dans la deuxième étape. Si les résultats de l’ordonnancement ne vérifient
pas les contraintes de la latence de communication, alors le placement est refait en ré-exécutant
la première étape. Le processus est répété jusqu’à ce que toutes les latences de communication
soient vérifiées.
résumé On synthétise les méthodologies vus précédemment et leur objectifs par ces deux
tableaux :
Comme on le voit dans ces tableaux les méthodologies des N0C ne couvre pas complètement
l’espace d’exploration surtout si on prend en considération les communications. Une approche
traite de l’assignation réseau [10] et une autre l’ordonnancement des communications [24]. Bien
que deux approches [59,64] minimise le volume des communications inter-processeur durant le
placement des tâches.
42
3.3. Approches pour les NOC
Réf
G.Varatkar
et al[17],[48]
T.Lei
et al[45]
J.Hu et al. [24]
D.Shin et al. [10]
Mapping
Network
assignment
Task Tile Com
LS
2-GA
LS
GA
GA
Exact
GA
Scheduling
Tile
LS
ASAP/
ALAP
LS
LS
Com
-
Voltage
Selection
Tile Com
ILP
-
Exact
-
-
LS
Power
Manage
Tile Com
-
-
-
LS
Tab. 3.1 – Méthodologies pour les NOC
Réf
G.Varatkar et al
[[17],[48]]
T.Lei et al.
[[45]]
J.Hu et al.[[24]]
D.Shin et al
.[[10]]
Consommation d’énergie
Dynamique
Statique
Task Comm Task Comm
DVS
Y
-
-
Y
Y
SVS
-
-
ABB
SPM
Contraint
du temp
Hard Soft
Y
-
mémoire
Code Data
-
-
Y
-
-
Y
Y
-
-
-
Zone
Y
Tab. 3.2 – Objectifs spécifiés pour les NOC
43
3.4. Approches pour les systèmes MPSoC
La consommation d’énergie est l’objectif préféré dans les approches d’optimisation. Quatre
de ces approches [[17],[24],[10], [9]] sont basées sur le problème, notamment celle des tâches et
des communications. Ainsi, G. Varatkar et al. [[17]] utilisent la sélection dynamique des voltages
pour les tâches, D. Shin et al. [[10]] utilisent assignation statique des vitesses de liens et la gestion statique de l’énergie pendant que J.Hu et al [[24]] utilisent la distribution non uniforme des
relâchements durant le placement et l’ordonnancement.
Toutes ces approches tendent à vérifier les hard deadlines mais seulement deux [[24],[10]] les
garantissent. T.Lei et al. [[45]], leur méthode maximise les performances d’un ensemble d’applications, mais aucune de ces approches ne traite les soft deadlines.
3.4
Approches pour les systèmes MPSoC
Les systèmes embarqués multiprocesseurs dont la communication est à base de bus amplifient
la complexité du problème de placement et ordonnancement. Car dans ce type de systèmes les
bus sont assimilés à des processeurs, ce qui entraı̂ne même le traitement pour les tâches et les
communications. Des approches diverses sont développées pour les MPSOC à base de bus, elles
cible toutes différents objectifs d’optimisation et focalisent sur certaines étapes de conception.
3.4.1
Approches basées sur l’énergie
M.T. Schmitz et al. [[31],[36]] ont développé une méthodologie, pour les systèmes embarqués
hétérogènes distribués, appelée LOPOCOS (Low Power CO-Synthesis) qui tend à minimiser la
consommation d’énergie en off-line des applications multimedia ou télécommunications, en garantissant les contraintes temps réel Hard et les contraintes de taille de la puce. Cette méthode
est constituée de deux boucles imbriquées : la boucle externe traite l’allocation des composants
et le placement des tâches. La boucle interne pour l’ordonnancement de temps, placement des
communications et la sélection de voltage.
Le placement des tâches est traité séparément du placement des communications et il est
implementé à l’aide dAG. L’algorithme nommé EE-GMA (Energy Efficient Genetic Mapping
Algorithm) est basé sur l’optimisation de l’énergie dans le sens où uniquement les solutions de
placement et d’ordonnancement correspondantes à la faible consommation d’énergie survivent
et s’accouplent, mais sa principale contribution est de garantir les contraintes de la taille de la
puce. Ces contraintes sont introduites avec des pénalités dans l’algorithme.
Le placement des communications est suivi en même temps de l’ordonnancement afin de
mieux optimiser les objectifs communs. L’ordonnancement est implementé à l’aide de la combinaison de la méthode LS avec le AG, où les priorités dynamiques des tâches dans la liste
des processus prêts (Ready) est obtenue à l’aide du AG. L’algorithme EE-GLSA (Energy Efficient Genetic List Scheduling Algorithm) cible à garantir les deadlines hard traite le problème
d’énergie dans le sens où les solutions d’ordonnancement à faible consommation d’énergie sur44
3.4. Approches pour les systèmes MPSoC
Fig. 3.6 – Méthodologie de M.T.Schmitz et al.
45
3.4. Approches pour les systèmes MPSoC
vivent et s’accouplent, là aussi les contraintes de temps sont introduites sous formes de pénalités.
La sélection voltage est appliquée pour les tâches placées et ordonnancées en utilisant l’algorithme PV-DVS généralisé (Power Variation Dynamique Voltage Scaling). Les relâchements
sont exploités en considérant les profiles énergétiques des tâches. Cet algorithme ordonnance
les tâches à un voltage dans les domaines continus ou deux voltages dans les domaines discrets
en ignorant le total des basculements (switching overhead ). Donc PV-DVS est un LS avec des
priorités dynamiques qui distribue par incrémentation les relâchements disponibles aux tâches à
consommation d’énergie la plus importante.
F.Gruian et al. [[13]] ont développés simultanément une méthode d’ordonnancement et sélection de voltage pour des tâches pour les MPSoC avec un placement déjà fait 3.7. La méthode
tend à minimiser l’énergie consommée par les traitements, en vérifiant les contraintes temps hard.
DVS avec distribution uniforme des relâchements est appliquée dans les domaines continus et discrets pour des niveaux à simple et double voltage en ignorant la consommation due au switching.
Fig. 3.7 – Méthodologie de F.Gruain et al.
La méthode est implementée avec LS basée sur des niveaux avec des priorités dynamiques.
LS bas niveau donne la priorité à la tâche prête, qui donne le minimum d’énergie si elle est
retardée d’une seule unité de temps, ou celle qui va atteindre rapidement son temps de debut le
plus tard (LST : Latest Start Time). Le coefficient α est donne aux tâches urgentes, il permet
aussi a la boucle externe de trouver l’optimum entre les délais et la minimisation d’énergie.
3.4.2
Approche pour les contraintes temps réel soft
L.A Cortes et al. [[30],[29]] a proposé un ordonnancement quasi statique pour les MPSoC
avec des contraintes temps réel hard et soft 3.8, où il explicite les points de switching dépendants
46
3.4. Approches pour les systèmes MPSoC
des temps exigés, des temps maximums d’exécution des tâches et sur les fonctions utilitaires associées aux tâches. En se basant sur cet aspect, l’algorithme choisir en on-line le chemin d’utilité
maximum dans l’arbre d’ordonnancement en fonction des temps d’exécution actuel des tâches
et les points activés de switching. L’ordonnancement statique de l’arbre garantir la vérification
des deadlines et maximise la fonction d’utilité totale des tâches. Ceci s’obtient en premier par
l’ordonnancement des tâches critiques. Il assure aussi le placement des tâches sur les processeurs,
les communications et les calculs sont traités de la même manière car les bus sont assimilés à
des processeurs.
Fig. 3.8 – Méthodologie de L.A.Cortes et al.
Pour cette approche, les deux méthodes BB et LS sont utilisées pour l’ordonnancement des
deadlines soft et pour déterminer les intervalles de temps des points de switching dans l’arbre
d’ordonnancement.
La fonction totale d’utilité est la somme des fonctions individuelles d’utilité des tâches,
et explicite la qualité de dégradation des performances du système quand les deadlines soft
sont ignorés. Les fonctions d’utilité associée aux tâches ne subissent pas d’augmentation, elles
dépendent des temps nécessaires de traitement des tâches et permettent de capter les tâches
critiques. Les temps d’exécution des tâches sont variables et non uniformément distribués dans
un intervalle.
3.4.3
Approche pour les contraintes temps réel hard
Dans leur approche L.Benini et al.[[31]] introduisent une méthode complexe pour le placement et l’ordonnancement de voltage variable. Ils proposent un formalisme et une solution pour
le problème d’optimisation de l’allocation, l’ordonnancement et la sélection du voltage discret
en minimisant la perte d’énergie du système et du switching. Cette approche est basée sur la
technique de décomposition, utilisant les Benders logiques où le problème de placement est ré-
47
3.4. Approches pour les systèmes MPSoC
solu à l’aide de la programmation linéaire en nombre entier et l’ordonnancement à l’aide de la
programmation par contrainte.
Benini prend aussi comme modèle un graphe de tâches acyclique direct où les nœuds représentent les tâches ayant comme propriétés des deadlines dlt et W CNt comme nombre de cycles
d’horloge nécessaire pour son exécution dans le pire des cas. Les arcs représentent les communications inter-tâches et ils ont comme valeur le volume de données échangées entre les tâches
représentées par les nœuds reliés par ces arcs. Ils introduisent aussi le nombre de cycles d’horloge
nécessaires au basculement entre les modes lecture/écriture des données notées par W CNR et
W CNW . Les tâches sont exécutées sur un ensemble de processeurs P. Chaque processeur peut
fonctionner avec plusieurs modes de vitesse et d’énergie. Chaque tâche nécessite de l’énergie pour
son exécution et des communications. En plus, quand un processeur bascule entre les modes, il
dépense du temps et de l’énergie. Les auteurs notent par Eij l’énergie dépensée par le processeur
quand il bascule de la fréquence i à la fréquence j. Et par Tij le temps perdu pour passer de
la fréquence i à j.Pour le traiter, les auteurs l’ont décomposé en deux sous problèmes. Le premier appelé « problème global » consiste à affecter les processeurs et les fréquences aux tâches,
le second appelé « sous problème » fait l’ordonnancement des tâches en utilisant les résultats du
« problème global » .
Pour ce dernier ils font le placement avec minimisation de l’énergie selon certaines fréquences
tout en respectant les deadlines de chaque tâche.
M
P X
X
p=1 m=1
[Xptm
T
W CNrttl
W CNt X
W CNwttlm
(Rpptlm
+
+ Wpttlm
)] ≤ dlt ∀t
fm
fm
fm
t =1
i
–
–
–
–
Xptm : égale à 1 si la tâche t est affectée au processeur p fonctionnant au mode m, 0 sinon.
W CNt : le nombre de cycles d’horloge nécessaires à l’exécution de t au pire cas.
fm : est la fréquence de cycle d’horloge quand la tâche est exécutée au mode m.
Rppt1m : est égale à 1 si la tâche t est affectée au processeur p, lit les données au mode à
partir de t1 quand celle-ci n’est pas affectée à p ; sinon 0.
– Wptt1m : même définition que Rppt1m mais en écriture.
– W CNrtt1 : c’est le nombre de cycles nécessaires pour que t affectée à R lit à partir de t − 1.
– W CNwtt1 : même définition que W CNrtt1 mais en écriture.
– dlt : c’est le deadline de la tâche t.
Dans le sous problème, Benini essaye de faire l’ordonnancement tout en respectant les temps
de début et de fin de chaque tâche. OF est la fonction, objectif à minimiser dans ce sous
problème :
OF =
P
X
p=1
X
T ransCostij
(i,j)∈Sp
next(i)=j
Où T ransCostij est une valeur obtenue par la méthode introduite par Benini en utilisant la
décomposition à l’aide des Benders. Cette fonction objectif doit être minimisée tout en respectant
48
3.4. Approches pour les systèmes MPSoC
les contraintes de precedence. Si l1 et l2 sont deux activités qui se suivent alors, il faut que :
Startl1 + durationl1 + T ransT imel1 l2 ≤ Startl2
Où Startl1 , Startl2 sont les temps de début des activités l1 et l2 ;
Durationl1 =
W CNi
fi
T ransT imel1 l2 est le temps d’initialisation spécifié dans la matrice des transitions obtenue
avec les Benders.
3.4.4
Approches basées sur la mémoire
R.Szymanek et al.[40],[41] ont développé une méthode qui fait le placement et l’ordonnancement simultanément avec un équilibrage de l’utilisation de la mémoire et en vérifiant les deadlines
hard 3.9. La méthode fait le placement en mémoire du code et des données, et s’assure aussi que
les données échangées soient présentes dans les mémoires du producteur et du consommateur
pendant la communication.La méthode est basée sur LS avec un objectif adapté et des priorités
dynamiques qui aident l’outil CLP à explorer efficacement l’espace des solutions. La tâche la
plus importante en consommation de données ou urgente (selon l’objectif) est toujours assignée
au processeur le plus pauvre en terme d’utilisation de la mémoire en code ou en données. Les
objectifs sont inter-changés quand les contraintes de données ne sont pas vérifiées.
49
3.4. Approches pour les systèmes MPSoC
Fig. 3.9 – Méthodologie de R.Szymanek et al.
Résumé Comme on le voit dans les tableaux (3.3,3.4)les méthodologies sont développées pour
certains domaines et objectifs. Ainsi M.T.Schmitz et al. [65,68] ont développé une méthodologie
pour la minimisation d’énergie quand A.Andrei et al.[[4]] et F.Gruian et al. [[13]] ont focalisé sur le
DVS. L.A.Cortes et al. [[30],[29]] ont développé le placement pour les soft deadlines pendant que
R.Szymanek et al. [[41]] ont travaillé sur un placement et ordonnancement basé sur la mémoire.
Dans toutes ces méthodes les deadlines hard sont vérifiées. Les heuristiques constructives (LS)
et transformatives (GA) comme la programmation mathématique (NLP, MILP, CLP) et les
méthodes déterministes ont été utilisées pour traiter séparément ou simultanément les objectifs
désignés.
Réf
Mapping
M.T.Schmitz et al
A.Andrei et al
R.Szymanek et al
F.Gruian et al
L.Cortes et al
Task
GA
-
Com
GA
-
-
-
Scheduling
Task
GA+LS
LS+CLP
Com
GA+LS
-
LS
BB+LS
Voltage
Selection
Task Com
LS
NLP/
-
Power
Manage
Task Com
LS
-
Tab. 3.3 – Méthodologies pour MPSOC à base de Bus
50
3.5. Comparaison entre les techniques de placement et d’ordonnancement
Réf
M.T.Schmitz
et al
A.Andrei et al
F.Gruian et al
R.Szymanek et al
L.A.Cortes et al
Consommation d’énergie
Dynamique
Statique
Task Comm Task Comm
DVS
DVS
DVS
-
-
ABB
-
-
Contraint
du temp
Hard Soft
Y
Y
Y
Y
Y
Y
mémoire
Code Data
Y
Y
-
Y
-
Zone
Y
-
Tab. 3.4 – Les objectifs des MPSOC à bus
3.5
Comparaison entre les techniques de placement et d’ordonnancement
Les méthodes vues auparavant concernant ce problème vont être comparées par la suite
selon les critères : Contraintes de temps, consommation d’énergie et les contraintes de taille ou
de surface.
3.5.1
Vérification des contraintes de temps réel
Par contraintes de temps réel, on sous entend les deadlines soft et Hard. L’ordonnancement
essaie souvent à vérifier les contraintes de temps, mais le placement aussi, cible la minimisation
du délai total d’exécution. Même si dans les présentations précédentes, on a parlé des MPSOC
et NOC, dans la suite de cette comparaison, c’est uniquement ces derniers qui sont l’objet de
notre étude.
a) Les contraintes temps réel hard dans les NOC Les approches pour les NOC ciblent
souvent la vérification des contraintes temps réel hard à cause du problème des communications
qui est plus pertinent et plus complexe. C’est pour cette raison que dans ces systèmes, on donne
plus d’attention aux délais des communications et l’interdépendance (topologie) des éléments du
NOC.
G.Varaktar et al.[[17]] ne garantissent pas les hard deadlines, les communications ne sont ni
placées, ni ordonnancées dans le NOC et les délais sont ignorés pendant la vérification des deadlines. De plus, des valeur moyennes pour le ET (temps d’exécution) des tâches dans le WCET
sont utilisées. Durant le placement et l’ordonnancement simultanés, la tâche la plus critique est
affectée au processeur dans la disponibilité la plus proche, ou à celui auquel la tâche la plus
communicative avec elle est affectée, tout en veillant à ce que les deadlines restent vérifiés. La
tâche la plus critique est celle qui a le temps de début le plus proche (EST : eraliest start time)
plus le temps de fin le plus lointain (LFT : Latest Finish Time) (EST+LFT). EST explicite le
moment où une tâche est prête et le processeur disponible pour elle. LFT est le minimum entre
51
3.5. Comparaison entre les techniques de placement et d’ordonnancement
le deadline et le temps le plus lointain de début de ses successeurs.
T. Lei et al. [[45]] ne garantissent pas, eux aussi, les hard deadlines car WCET pour les tâches
et des délais moyen pour les communications sont utilisés pendant la vérification des deadlines
dans chaque TG de l’ensemble des TG. Le placement et l’ordonnancement des communications
ne sont pas traités car le chemin minimal des communications qu’il utilise est estimé d’une façon
grossière. C’est du chemin minimal que dépend l’affectation exclusive des liens et l’évitement
des deadlock. Le délai final des communications dépend de leur volume, de la distance minimale
de communication et du délai de l’interface réseau pour la « paquetisation et dépaquetisation »
des messages. Durant l’allocation des groupes IP et le placement des tâches, le délai global du
chemin critique est minimisé pour chaque TG dans l’ensemble T. La fonction objectif est le
maximum entre le délais sur le chemin critique et le deadline pour chaque TG. Les deadlines
Hard sont vérifiés sur le chemin critique quand la fonction objectif à une valeur inférieure ou
égale au deadline maximal de l’ensemble TG.
D. Shin et al. Garantissent le deadline hard. Ils utilisent le WCET des tâches et des valeur
pessimistes pour les délais de communication sont utilisées pendant la verification des deadlines
hard. La communication est placée sur le chemin le plus court du NOC qui est minimisé durant
l’allocation des tuiles. Ceci implique que plusieurs arcs du GT peuvent utiliser le même lien ce qui
rend plus compliquées, les problèmes de routage et de l’ordonnancement des communications.
Ceci rend aussi le délai de communication étroitement lié à la bande passante et la vitesse
(fréquence) de transmission des données. Le délai de l’arc (Edge delay) est la somme des délais
des liens constituant le chemin de routage tout en ignorant les temps de basculement (due a
l’ordonnancement). Durant l’ordonnancement des tâches, la tâche la moins mobile est la plus
prioritaire. La mobilité d’une tâche est donnée par
|ASAPstart − ALAPend |
et elle est basée sur une évaluation pessimiste des délais de communication.
J.Hu et al [[24]] garantissent aussi les hard deadlines. WCET des tâches et communications
sont utilisées pendant la verification des hard deadlines. La communication est placée et ordonnancée sur le chemin disponible minimal du NOC ayant un deadlock libre (bande passante non
saturée). Durant le placement et l’ordonnancement simultanés, la tâche la plus critique en temps
(EFT . BD : BD = Budgeted deadline) à partir de la liste des tâches prêtes (ready list) est affectée au processeur le plus rapide. La tâche la plus critique en temps est celle qui dépasse son BD
avec une différence maximale EFT-BD. Quand aucune tâche critique (EDF < BD) n’est dans
la liste, BD reste vérifie quand on affecte la tâche à forte consommation d’énergie au processeur
ayant la consommation la plus faible. EFT contient les délais des communications entrantes et
WCET ceux des tâches pendant que BD contient la moyenne ET des tâches et leur relâchement
(slack) en ignorant les communications. Les slack sont distribués d’une façon non uniforme sur
les tâches, ils sont basés sur leur énergie et les profils de délais (variances).
52
3.5. Comparaison entre les techniques de placement et d’ordonnancement
b ) Comparaison Les tableaux 3.5 et 3.6 résument les approches pour les NOC pour vérifier
les contraintes temps réel hard selon les principaux critères. La table 3.5 montre comment le
temps de communication est minimisé dans chaque approche et comment les contraintes deadlines hard sont garanties. La table 3.6 représente les modalités de maximisation des performances
de temps durant le placement et l’ordonnancement des tâches.
Réf
G.Varatkar
et al.
T.Lei et al.
D.Shin et al.
J.Hu
et al.
Temps de Communication
Min
Min
Band
Volume
Distance
passante
TM
TM
-
NA
CM
+CS
Manhattan
Manhattan
Min
Dispo
Const
SVS
Const.
Retard global
Tâche
Temp
ET
Com
WCET
WCET
WCET
WCET
AVG
WCRT
WCRT
Garantie
de
Deadline
N
N
Y
Y
Tab. 3.5 – Les délais de communication dans les NOC
Réf
G.Varatkar
et al.
T.Lei et al.
D.Shin et al.
J.Hu et al.
placement des
tâches
But
affectation PE
disponible le
plus proche
Min.chemin critique
Repair BD
violations EFT<BD
Fastest Greedy
reassignments
Ordonnancement
des tâches
Priorité
Temp critique
min(EST+LFT)
ASAP, ALAP
temp critique
min|ASAPstar − ALAPend |
Temp critique
max(EFTBD),EFT.BD
Tab. 3.6 – Délais de traitement dans les NOC
1. Délai de communication : Le délai de communication dans les NOC à un grand impact
sur le coût total. Le délai d’arc (Edge delay) dépend de la taille message et le délai de transmission unitaire. La taille de message par la bande passante nous donne le nombre d’unités
à transmettre. Ils représentent souvent le volume de communication de l’arc et de la bande
passante du lien respectivement. Le délai de transmission par unité de communication
est influencé par l’algorithme de routage, et dépend de la distance de la communication,
et du délai de communication des composants dans le NOC tels que le lien, switch et
interface réseau. Le délai du lien dépend de sa vitesse, son volume de communication et
sa bande passante du lien. Quand les liens sont utilisés d’une façon exclusive, le volume
de communication du lien est égal à la bande passante, et sa vitesse devient le délai du lien.
53
3.5. Comparaison entre les techniques de placement et d’ordonnancement
A l’exception du volume de communication et distance de communication, tous les autres
constituants du délai de l’arc sont donnés comme constantes et sont uniques pour chaque
type de composant de communication dans le NOC. Ainsi, minimiser le volume et la
distance de la communication a un impact direct sur le délai de communication. Le volume
de communication inter-processeur peut être minimisé au moment du placement des tâches
pendant que le volume de communication du lien est optimisé durant le placement des
communications. La minimisation de la distance (longueur du chemin) de communication
se fait pendant l’allocation des tuiles et la minimisation du chemin de routage pour chaque
arc se fait durant le placement des tâches. Les deadlock (blocage) et congestion peuvent
être évités en traitant l’ordonnancement des communications.
2. Vérification des deadlines hard :Hard deadlines sont garanties si et seulement si les
pires ET des délais de tâches et communications sont fournies. ET de tâche sont souvent
donnée comme WCET. L’estimation pessimiste des délais de communication nécessite
la connaissance des pires conditions dans lesquelles la communication est faite, comme
exemple, le volume total des communications des arcs se partageant un lien [[10]] ou le
chemin minimal disponible quand l’usage des liens est exclusif.
3. Maximiser les performances de temps :Les priorités des tâches pendant l’ordonnancement ou la sélection des processeurs plus un objectif, durant le placement de tâches peut
accroı̂tre les chances de vérifier les deadlines hard tout en minimisant le coût ou le temps
global. Ainsi, un meilleur ordonnancement peut être trouvé si la priorité des tâches englobe
des informations sur les communications entrantes et relâchements disponibles. On peut
faciliter la vérification des deadlines hard par l’affectation des tâches les plus critiques aux
processeurs les plus rapides [[24]].
3.5.2
La minimisation de la consommation d’énergie
Par minimisation d’énergie on veut dire réduction dynamique et statique de la consommation
d’énergie par les tâches et les communications, durant le placement de tâches et la sélection
de voltage. La majorité des approches cible la minimisation dynamique d’énergie de tâches.
Certaines d’entre elles traitent même les deux problèmes de placement de tâche selon l’énergie
et le DVS des tâches. Une seule approche traite SVS pour les liens quand les approches pour
les NOC tendent à minimiser l’énergie de communication en minimisant les communications
du NOC sur le plan volume et distance. Les autres méthodes traitent la réduction statique de
l’énergie.
a )Placement de tâche avec optimisation de l’énergie Plusieurs approches ont été proposées, nous citerons ci-après quelques unes en insistant sur l’impact de la priorité des tâches,
assignation des PE et les objectifs spécifiés pour la minimisation d’énergie.
G.Varatkar et al.[[17]] tendent de réduire l’énergie des communications en minimisant le volume des communications inter-processeur. Ils se basent aussi sur le fait que les communications
54
3.5. Comparaison entre les techniques de placement et d’ordonnancement
ne dépassent pas un certain seuil (critère de communication). Durant le placement et ordonnancement simultanés des tâches, la plus urgente est assignée au processeur auquel est affectée
la tâche avec laquelle elle communique le plus, tout en vérifiant les deadlines hard. L’énergie
de communication dépend du volume de la communication inter-processeur et de la distance
moyenne de communication dans le NOC. Le placement et ordonnancement des communications ne sont pas traités, ce qui ne permet pas de connaı̂tre le volume de communication par
lien. Le critère de communication est utilisé par ces auteurs pour veiller à ce que le volume local
moyen de communication par arc (à partir des arc entrant dans le TG) ne dépasse pas le volume
moyen global de communication (à partir de tous les arcs dans TG) multiplié par un paramètre
K | (0 ≤ k ≤ 10),coefficient d’arrête donné par l’utilisateur.
D.Shin et al.[[10]] tendent de réduire l’énergie de communication en minimisant le volume
de communication inter-processeur et les distances de communication dans le NOC durant le
placement et l’assignation réseau. L’énergie de communication est la somme des énergies statique et dynamique de tous les liens. L’énergie dynamique des liens dépend du volume total des
communications des arcs partageant le même lien, la vitesse (fréquence) du lien et la capacité
de switching du lien. Le volume de communication de chaque lien est connu après le placement.
J.Hu et al. [[24]] tendent de minimiser la consommation d’énergie totale. Durant le placement
et ordonnancement simultanés, les tâches non critiques avec le plus grand intervalle de consommation d’énergie sont affectées aux processeurs ayant les consommations les plus faibles mais
qui soient assez rapides pour vérifier les deadlines hard. L’intervalle de la consommation d’énergie d’une tâche est la différence entre les deux premières valeur minimales de la consommation
globale d’énergie obtenu à partir des ordonnancements partiaux. Les tâches non critiques sont
celles ayant EFT < BD. La communication est placée et ordonnancée sur le chemin le plus court,
disponible et non saturé dans le NOC. La consommation d’énergie globale est la somme des
énergies de calcul de toutes les tâches plus l’énergie de communication de tous les arcs. L’énergie
de communication d’un arc dépend du volume des communications de cet arc (en bits) et celle
de transfert d’un bit. L’énergie de communication par bit s’obtient par une formule fonction de
la longueur du chemin de routage, l’énergie du lien et l’énergie de switching.
La priorité de la tâche au moment de l’ordonnancement aussi bien que l’assignation des PE
et l’objectif d’optimisation du placement peuvent augmenter la préservation de la consommation
d’énergie dynamique. A cet effet, il est conseillé d’affecter la tâche avec le plus grand intervalle
de consommation d’énergie à son processeur de consommation minimale durant le traitement
du placement et ordonnancement (J.Hu et al. [[24]]). Le modèle d’énergie de communication
dépend du volume de communication et l’énergie de transmission. J.Hu et al.[[24]] introduisent
les informations de routage dans l’énergie de transmission par bit quand D.Shin et al. [[10]]
introduisent des informations pour l’assignation de la vitesse de lien.
En se basant sur ces critères on peut dire que l’approche [[24]] est la meilleure méthode
55
3.5. Comparaison entre les techniques de placement et d’ordonnancement
Réf
G.Varatkar
et al.
D.Shin et al.
Priorité
-
Task mapping
affectation PE
La plupart de volume
de communication
-
J.Hu et al.
difference
d’énergie
énergie
dernièrement
But
limité les volumes
de communication
min les volumes
de communication
-
Tab. 3.7 – Placement de tâches avec optimisation de l’énergie
d’optimisation d’énergie pour les NOC car elle minimise la consommation totale d’énergie et
ordonnance les communications sur le plus court chemin disponible en vérifiant le deadlock. La
deuxième meilleure méthode est celle de D.Shin et al.[[10]] qui réduit l’énergie de communication
et la distance de communication. G.Varatkar et al [[17]] minimise uniquement le volume de
communication inter processeur sans traiter le placement de communication.
3.5.3
Contraintes matérielles et de mémoire
Les contraintes matérielles sont relatives à la capacité de la mémoire ou au nombre de tâches
pouvant être exécutées par un élément de calcul. Parmi les approches vue auparavant, seulement
trois traitent ce problème.
D.Shin et al. [[10]] traitent ces contraintes durant le placement de tâches en imposant chaque
élément de calcul qui s’accommode avec la tuile du NOC. Ce qui revient à vérifier que pour
chaque nombre de tâches affectées à un processeur, la taille mémoire et seuil maximal ne dépassent pas les caractéristiques de la tuile du N0C.
M.T.Schmitz et al. [[31],[37]] traitent eux aussi ces contraintes lors du placement de tâches.
Pour eux les contraintes matérielles sont relatives à la taille de la mémoire et la surface de la puce
dépendant du type de matérielle (DSP, ASIC, FPGA). Dans la fonction objectif, ils introduisent
des coefficients permettant de pénaliser la non vérification de ces contraintes. Pour R.Szymanek
et al.[[41]], les contraintes sont vérifiées après le placement en vérifiant pour chaque mémoire si
le code et la quantité des données affectées ne dépassent pas la taille disponible.
56
3.5. Comparaison entre les techniques de placement et d’ordonnancement
Conclusion
L’étude de l’état de l’art dans le domaine du placement sur les NOC nous a permis de
tirer quelques constations. La première est que dans ce domaine, par placement, on désigne
Assignation, affectation et ordonnancement (AAS). Effectivement dans les travaux vus, et surtout ceux fait récemment, on ne traite jamais le placement sans ordonnancement ou l’inverse.
Tous les travaux les abordent ensemble. Seule la manière change. Pour certains, ils sont traités
séquentiellement, c’est-à-dire placement ensuite ordonnancement, pour d’autres, ils sont traités ensemble c’est-à-dire simultanément. Pour chacune de ces approches, on a vu qu’il y a des
avantages et des inconvénients, même si la deuxième approche l’emporte. Le deuxième constat
est que ce problème est traité pour atteindre certains objectifs, comme le temps réel, consommation d’énergie, mémoire,. . . etc. Souvent ces objectifs sont recherchés ensembles. Car, on ne
peut minimiser le temps de calcul global sans minimiser le coût de communication global, ou
augmenter les performances du NOC sans penser à minimiser la perte de l’énergie,. . . etc. D’où
notre conviction que ce problème ne peut être solutionner en cherchant des objectifs séparément
mais d’essayer d’au moins d’atteindre quelques objectifs pertinents ensemble. C’est ce qu’on
appelle l’optimisation multi-objectifs. En plus de ce qui a été avancé, du fait des domaines qu’on
aborde où les applications peuvent être hiérarchiques où l’on rencontre des tâches répétitives
et d’autres non, forcément les techniques qu’on va utiliser seront de familles différentes. Si les
métaheuristiques s’imposent pour l’irrégulier dans les problèmes de grande taille, il faut plutôt
penser à des méthodes déterministes pour les applications à tâches répétitives.[18]
57
Chapitre 4
Optimisation Multi-Objectifs
58
4.1. Introduction
4.1
Introduction
La plupart des problèmes réels nécessitent l’optimisation simultanée de plusieurs objectifs.
Dans le cas de l’optimisation mono-objectif, la solution optimale est facilement définie , ce n’est
le cas quand on a plusieurs objectifs. Au lieu d’une solution unique, le résultat d’une proposition
multiobjectifs est généralement un assortiment de solutions, qui se distinguent par différents
compromis réalisés entre les objectifs. Les solutions qui le composent sont optimales, dans le
sens où il n’existe dans l’univers de recherche aucune solution meilleure si tous les objectifs sont
considérés de façon simultanée.
Ainsi, le but de l’Optimisation Multiobjectifs, aussi appelée Vectorielle, consiste à obtenir les
solutions et, par conséquent, à connaı̂tre l’ensemble des compromis possibles entre les objectifs.
Cela fournit à l’ingénieur une meilleure compréhension de son problème.
4.2
Définitions
Def. 1 Un problème d’optimisation générale avec k variable de décision et n fonctions objectif
st définit comme :
(
minimize f (x) = (f1 (x), f2 (x), . . . , fn (x)).
sujet x ∈ Xf .
Où x représente une solution et Xf ⊆ X est l’ensemble de solutions réalisable.Le vecteur
des fonctions objectifs f (x) ordonne le vecteur de decision x=(x1 , x2 , . . . , xn ) dans l’espace de
decision (X) vers vecteur objectif z=(z1 , z2 , . . . , zn ) dans l’espace objectif (Z).
Def. 2 (relation de dominance) Si on a deux vecteur objectifs z 1 , z 2 on a :
– z 1 z 2 (z 1 strictement dominer par z 2 ) si zi1 ≤ zi2 ∀ i ∈ {1, . . . , n}.
– z 1 < z 2 (z 1 dominez 2 ) Si zi1 ≤ zi2 Et z 1 6= z 2 , ∀i ∈ {1, . . . , n}.
– z 1 ≤ z 2 (z 1 partiellement dominer par z 2 ) Si zi1 ≤ zi2 , ∀i ∈ {1, . . . , n}.
– z 1 ∼ z 2 (z 1 incomparable avec z 2 ) Si 6 ∃i 6= j ∈ {1, . . . , n} telque zi1 < zi2 et zj1 < zj2 .
Def. 3 Un vecteur de decision x ∈ A ⊆ Xf et dit non dominer dans A Si
6 ∃ a ∈ A telque f (a) < f (x)
.
59
4.2. Définitions
Fig. 4.1 – Un Front Pareto
Fig. 4.2 – D’un Espace de Recherche Vers Un Front Pareto
60
4.3. les algorithmes d’optimisation
4.3
les algorithmes d’optimisation
Nous avons choisi l’utilisation deux types d’algorithmes d’optimisation pour résoudre notre
problématique. le premier est l’algorithme de Brunch & Bound, qui est une méthode de
recherche exacte,le deuxième est l’algorithme Génétique, qui est une méthode de recherche
heuristique.
Notre choix est justifié par le fait que l’on a trois types de nœuds ( irrégulier, répétitif,
composé ) dans chaque graphe ( application, architecture ), notre travail, consiste à affecter
chaque type de nœud du graphe d’application au même type de nœud du graphe d’architecture
et appliquer une méthode de recherche appropriée pour trouver le bon emplacement des tâches
sur les processeurs. pour cela l’algorithme de Brunch & Bound va s’appliqué sur les nœuds
répétitifs et l’algorithme Génétiqueva s’appliquer au nœuds irréguliers et ceux composés pour
chaque niveau du graphe
.
la figure 4.3 représente un schéma de différentes méthodes de recherches.
Fig. 4.3 – Les Algorithmes d’optimisation
4.3.1
l’algorithme de Brunch & Bound
Pour plusieurs problèmes, en particulier les problèmes d’optimisation, l’ensemble de leur solutions est fini (en tous les cas, il est dénombrable). Il est donc possible, en principe, d’énumérer
toutes ces solutions, et ensuite de prendre celle qui nous arrange. L’inconvénient majeur de cette
approche est le nombre prohibitif du nombre de solutions : il n’est guère évident d’effectuer
cette énumération. La méthode de Branch & Bound (procédure par évaluation et séparation
progressive) consiste à énumérer ces solutions d’une manière intelligente en ce sens que, en utilisant certaines propriétés du problème en question, cette technique arrive à éliminer des solutions
61
4.3. les algorithmes d’optimisation
partielles qui ne mènent pas à celle que l’on recherche.[3]
De ce fait, on arrive souvent à obtenir la solution recherchée en des temps raisonnables.
Bien entendu, dans le pire des cas, on retombe toujours sur l’élimination explicite de toutes les
solutions du problème. Pour ce faire, cette méthode se dote d’une fonction qui permet de mettre
une borne sur certaines solutions pour soit les exclure soit les maintenir comme des solutions
potentielles. La performance d’une méthode de Branch & Bound dépend, entre autres, de la
qualité de cette fonction (de sa capacité d’exclure des solutions partielles tôt).
Branch & Bound, est une méthode générique de résolution de problèmes d’optimisation,
plus particulièrement d’optimisation combinatoire ou discrète. C’est une méthode d’énumération
implicite : toutes les solutions possibles du problème peuvent être énumérées mais, l’analyse des
propriétés du problème permet d’éviter l’énumération de larges classes de mauvaises solutions.
Dans un bon algorithme par séparation et évaluation, seules les solutions potentiellement bonnes
sont donc énumérées.
a ) Principe Soit S un ensemble fini mais de ”grande” cardinalities qu’on appelle ensemble
(ou espace) des solutions réalisables.
On dispose d’une fonction f qui, pour toute solution réalisable x de S, renvoie un coût f (x).
Le but du problème est de trouver la solution réalisable x de coût minimal.D’un point de vue
purement existentiel, le problème est trivial : une telle solution x existe bien car l’ensemble S
est fini. En revanche, l’approche effective du problème se confronte à deux difficultés.
– La première est qu’il n’existe pas forcément un algorithme simple pour énumérer les éléments de S.
– La seconde est que le nombre de solutions réalisables est très grand, ce qui signifie que le
temps d’énumération de toutes les solutions est prohibitif (la complexité algorithmique est
généralement exponentielle).
Dans les méthodes par séparation et évaluation, la séparation permet d’obtenir une méthode générique pour énumérer toutes les solutions tandis que l’évaluation évite l’énumération
systématique de toutes les solutions.
pour lancer l’algorithme on doit avoir en possession :
1. Un moyen de calcul d’une borne inférieure d’une solution partielle.
2. Une stratégie de subdiviser l’espace de recherche pour créer des espace de recherche de
plus en plus petits.
3. Un moyen de calcul d’une borne supérieure pour au moins une solution.
b ) Parcours de l’arbre Par convenance, on représente l’exécution de la méthode de B&B
à travers une arborescence. l’algorithme utilise le principe de la profondeur d’abord, en parcourant l’arbre de l’espace des solutions.
62
4.3. les algorithmes d’optimisation
La méthode commence par considérer le problème de départ avec son ensemble de solutions,
appelé la racine. Des procédures de bornes inférieures et supérieures sont appliquées à la racine.[3]
Si ces deux bornes sont égales, alors une solution optimale est trouvée, et on s’arrête là.
Sinon, l’ensemble des solutions est divisé en deux ou plusieurs sous problèmes Séparation, devenait ainsi des enfants de la racine.
La méthode est ensuite appliquée récursivement à ces sous problèmes, engendrant ainsi une
arborescence. Si une solution optimale est trouvée pour un sous problème, elle est réalisable,
mais pas nécessairement optimale, pour le problème départ.
Comme elle est réalisable, elle peut être utilisée pour éliminer toute sa descendance : si la
borne inférieure d’un nœud dépasse la valeur d’une solution déjà connue, alors on peut affirmer que la solution optimale globale ne peut être contenue dans le sous-ensemble de solution
représenté par ce nœud. La recherche continue jusqu’à ce que tous les nœuds soient explorés ou
éliminés.
c ) Pseudo code de l’algorithme Branch & Bound
Initialisation : miel-sol=∝ ; Bi (p0 ) := f (p0 ) ; p := {(p0 , Bi (p0 ))}
Tanque p 6= 0 faire
Sélection : sélectionner un nœud p de P ; p := p/{p}
Séparation : Décomposer p en p1 , p2 , p3 , ...pk ;
pour i := 1 à k faire
Evaluation Bi (pi ) := f (pi ) ;
Si Bi (pi ) == f (x), x réalisable et (f (x) < meil-sol) alors
meil-sol :=f (x) ;
solution=x ;
Sinon si Bi (pi ) > meil-sol Alors
élaguer : élaguer pi ;
Sinon p := p ∪ {(pi , Bi (pi ))}
Fin Si ;
Fin Si ;
Fin Faire ;
Fin Tanque ;
Résultat : SolutionOptimale := solution ; ValeurOptimale := meil-sol ;
63
4.3. les algorithmes d’optimisation
d ) Organigramme de branch & Bound
tionnement de l’algorithme de B&B.
la figure 4.4 represente un diagramme de fonc-
Fig. 4.4 – Organigramme de Branch & Bound
64
4.3. les algorithmes d’optimisation
4.3.2
Algorithme génétique (AG)
les algorithmes génétiques peuvent être considérés comme des méthodes d’optimisation stochastique, mais ils ont bien d’autres champs d’applications, comme par exemple en reconnaissance des formes et en intelligence artificielle (systèmes de classeurs ou programmation génétique), en théorie des graphes, en vision et en analyse d’images, en science des matériaux, . . .
etc. L’intérêt d’utiliser un algorithme génétique pour optimiser des fonctions irrégulières est
qu’ils savent effectuer une recherche stochastique dans un large espace de recherche, en faisant
évoluer un ensemble de solutions (appelée population), au lieu d’une seule solution, comme cela
est fait classiquement en optimisation stochastique (exemple : un recuit simulé). Dans l’évolution naturelle, le problème auquel chaque espèce est confrontée est de chercher à s’adapter à un
environnement complexe et généralement non statique.
Très schématiquement, la ”connaissance” acquise par chaque espèce est codée dans les chromosomes de ses membres. Lors des reproductions , les contenus des chromosomes sont mélangés,
modifiés et transmis aux descendants par un certain nombre d’opérateurs génétiques : la mutation, qui se traduit par l’inversion d’une faible partie du matériel génétique, et le croisement (ou
recombinaison) qui échange certaines parties des chromosomes des parents. Cette particularité
de l’évolution naturelle : la capacité d’une population à explorer son environnement en parallèle
et à recombiner les meilleur individus entre eux, est copiée et exploitée au sein d’un algorithme
génétique. Un résultat formel important mis en évidence par Holland (largement reconnu comme
le fondateur du domaine) a été de prouver que, même dans des espaces de recherche larges et
complexes, sous certaines conditions, les algorithmes génétiques convergent vers des solutions
qui sont à peu près globalement optimales.
C’est-à-dire que la population se concentre autour d’un optimum global. Dans toutes les
approches évolutives, les individus représentent des solutions ou des points de l’espace de recherche. Cet espace de recherche est appelé environnement, c’est sur ce dernier que l’on cherche
à maximiser une fonction (positive) appelée fitness. La principale caractéristique des algorithmes
génétiques, par rapport aux autres techniques d’inspiration comportementale, est de travailler
sur des codages et non sur des solutions réelles. Ces codes sont appelés chromosomes et la plupart du temps, en optimisation, ils sont binaires et de longueur fixe. L’algorithme génétique fait
donc évoluer sa population de façon à adapter les individus à l’environnement, cela se traduit au
sens algorithmique du terme par une maximisation de la fonction d’évaluation sur les individus
de la population.
a ) Principe Il est basé sur une procédure itérative durant laquelle un ensemble de solutions
(Génération) est crée, pour chaque itération, en commençant par l’ensemble des solutions initiales (population initial ).L’évolution de ces générations est assurés par des opérations de l’AG
(selection ,mutation, croisement) jusqu’a atteindre la condition d’arrêt.
65
4.3. les algorithmes d’optimisation
b ) Pseudo code de l’algorithme génétique
Début
Générer population initiale.
Calculer coût.
Faire
tant que Condition arrêt non satisfaite Alors
Sélectionner parents.
Appliquer opérateurs avec probabilités.
Calculer coût.
Renouveler population
Retourner meilleur élément
Fin Tant que
Fin Faire
Fin
c ) Caractéristiques des Algorithmes Génétiques Les AG ont un ensemble de caracterstiques qu’on va les voir par la suite :
1. Le codege les AG n’opère pas directement sur les solutions mais sur leurs codages sous
forme de chromosome, où est codée par une séquence de gènes nommé génotype qui caractérise chaque espace de recherche, d’une manière générale, représentée par un vecteur
binaire ou réel de taille fixe ou variable.La figure 4.5 représente les cinq niveaux d’organisation d’un AG.
Fig. 4.5 – les cinq niveaux d’organisation d’un AG
Il existe trois types de codes dans le AG :
(a) Codage binaire : c’est le plus utilisé, dans chaque gène, on a des valeur binaires sur
une longueur de 32 Bits, comme dans la génétique chaque chromosome est constitué
de deux gènes, dans les AG les chromosomes sont représentés par deux tableaux de
66
4.3. les algorithmes d’optimisation
gènes,et par analogie les individus sont représentés par des tableaux des chromosomes.
(b) Codage réel :la figure 4.6 donne une idée sur ce codage qui est très utile dans le cas
de la recherche pour maximiser une fonction réelle.
Fig. 4.6 – illustration schématique du codage des variables réelles
(c) Codage de Gray : Un inconvénient dans le codage binaire c’est qu’en utilisant
la ”Distance de Hamming pour mesurer la dissimilarité entre deux éléments de la
population si on trouve qu’ils sont voisins ça ne veut pas dire forcément qu’ils sont
proches dans l’espace de recherche.
Pour éviter cet inconvénient on fait appel au codage de Gray.Il a comme propriété
qu’entre l’élément (n) et l’élément (n + 1), donc voisins dans l’espace de recherche,
un seul bit diffère.
2. Espace de recherche
C’est l’ensemble des générations obtenues par l’application des opérations des AG à partir
de la population initiale, qui est généralement générée aléatoirement pour garantir une
diversification des individus, afin d’avoir plus de chance pour que la convergence de l’algorithme soit la plus rapide vers la solution optimale.
3. La fonction objective
C’est la fonction avec laquelle on sélectionne les parents qui vont être choisis pour la
reproduction, et par conséquent, à la survie de certaines espèces.Cette fonction se base sur
la valeur de l’individu, plus la valeur est élevée plus l’individu a une chance d’être choisi.
4. Opérateurs génétiques Sont des opérations qui s’appliquent a partir de la population
initiale et sur toutes les générations suivantes.
– Reproduction : c’est une réplique d’un processus naturel celui de la sélection naturelle,
la reproduction se fait par accouplement des chaı̂nes d’individus qui ont une valeur élevée
pour leur fonctions objectives, afin de produire une nouvelle génération qui aura la chance
d’être choisie dans la prochaine sélection.
67
4.3. les algorithmes d’optimisation
– Sélection : cet opérateur est le plus important parmi tous les autres car c’est lui qui
permet aux individus de survivre, pour produire ou bien mourir.D’une manière générale
plus l’individu a une valeur de fonction objectif élevée il aura une chance d’être choisi.
Il existe quatres types de selection, on va les voire par la suite.
(a) La sélection universelle stochastique :cette méthode est basée sur un découpage d’un segment a des sous-segments autant qu’il y a d’individus.Les individus
sélectionnés sont désignés par un ensemble de points équidistants.
(b) La sélection par tournois : grâce à cette méthode, on peut obtenir des résultats
satisfaisantes.Le principe est d’effectuer un tirage avec remise de deux individus de
la population P , puis on va les faire ”Combattre”.celui qui a une fonction objectif
avec une valeur plus élevée il l’emporte avec une probabilité p /(0.5 < p < 1).On
répète ce processus n fois de manière a obtenir les n individus de Ṕ qui serviront de
parents.
(c) La méthode élitiste :Cette méthode consiste à sélectionner les n individus dont
on a besoin pour la nouvelle génération Ṕ en prenant les n meilleur individus de la
population P après l’avoir triée de manière décroissante selon la fonction objectif
de ses individus.
(d) La roulette :Dans cette sélection, chaque individu se voit attribué un secteur dont
l’angle est proportionnel à son adaptation, sa fonction objectif. On fait tourner la
roue et quand elle cesse de tourner on sélectionne l’individu correspondant au secteur
désigné par une sorte de ”curseur”, curseur qui pointe sur un secteur particulier de
celle-ci après qu’elle se soit arrêté de tourner.Cette méthode est la plus connue et
la plus utilisée.
Fig. 4.7 – la méthode de sélection de la roulette
– Croisement :Il sert a crée de nouvelles combinaisons de paramètres portés par les
individus. On applique cet opérateur après avoir appliqué l’opérateur de sélection sur la
population précédente, on se retrouve avec une nouvelle population égale à la moitié de
la population précédente, là vient le tour de l’opérateur de croisement, on doit crée n/4
couples (si on considère que la population actuelle est de n/2 individus) pour avoir les
68
4.3. les algorithmes d’optimisation
n individus de la nouvelle population
.
Fig. 4.8 – Exemple de croisement en un seul point
Fig. 4.9 – Exemple de croisement en deux points
– Mutation :Cet opérateur consiste à changer la valeur d’un gène avec une probabilité
très faible, généralement comprise entre 0.01 et 0.001.,de façon a avoir toujours une
diversité dans la population.
Fig. 4.10 – Exemple de mutation
69
4.3. les algorithmes d’optimisation
d ) Organigramme de l’AG Voici l’organigramme de l’AG :
Fig. 4.11 – Organigramme de l’AG
70
4.3. les algorithmes d’optimisation
Conclusion
Après avoir exposé les concepts qui servent de base pour l’algorithme génétique et de
Brunch & Bound, nous avons réalisé une adaptation de ces algorithmes dans une démarche
de recherche de bonnes solutions à notre problème de placement d’application sur un NOC.
71
Troisième partie
Les Approches pour la Résolution du
Placement Hiérarchique
Multiobjectifs
72
Chapitre 5
Modélisation du Problème de
Placement et Ordonnancement
Hiérarchique
73
5.1. Introduction
5.1
Introduction
Le problème à résoudre dans sa globalité est un problème d’assignation, d’affectation et
d’ordonnancement « AAS ». Les travaux présentés par Lahua [97], Prestana [98] et Benini [66]
présentent des insuffisances car ces travaux considèrent la topologie des communication en Bus.
Les autres tels Hu [63], Mural[19] et Lei [61] présentent des méthodes d’optimisation monoobjectif. C’est-à-dire que ces méthodes ne permettent l’obtention que d’un seul objectif : temps
d’exécution, consommation d’énergie, surface, etc. jamais dans ces travaux nous avons essayé de
trouver ou de se rapprocher d’une solution satisfaisante au moins deux objectifs. En plus tous
les travaux présentés et cités précédemments ,n’ont pas pris en considération des applications de
grandes tailles structurées de façon hiérarchique où le modèle est un graphe hiérarchique dont
les nœuds peuvent être simples, répétitifs ou composés. Par conséquent notre travail sera basé
sur ce dernier problème en proposant une approche de résolution multi-objectif permettant de
trouver le meilleur mapping d’une application de ce type sur une architecture NOC.
5.2
Modèle
Def. 4 Le graphe d’application TG ( Task Graph) est un graphe orienté G(V,E) où chaque
sommet vi ∈ V représente un module (tâche) de l’application, et deux types d’arc (vi ,vj ),la
communication et la precedence.
Fig. 5.1 – Graphe d’application
Def. 5 le graphe d’architecture NT ( NOC Topology graph) est un graphe P(U,F) où chaque
sommet ui ∈ U représente un nœud de la topologie et l’arc (ui , uj ),noté par fij ∈ F représente
74
5.2. Modèle
un lien physique direct entre les éléments de ui et uj de l’architecture. Le poids de l’arc fij noté
par bwij représente la bande passante disponible à travers le lien physique fij .
Fig. 5.2 – Graphe d’architecture
Def. 6 Un graphe d’application hiérarchique HTG (respectivement d’architecture hiérarchique
HNT) est un graphe avec trois types de nœuds :
– Irrégulier : Englobe des tâches ( des processeurs ) élémentaires avec des caractéristiques
différentes. Et l’ensemble de communication ainsi la précédance entre eux.
– Répétitif : Englobe des tâches identique et une tâches particulière nommé diffuseur ( une
unité de E/S )gère les communication avec les autrs nœuds.
– Composé : Est lui même un ensemble de HTG (HNT).
Le mapping du HTG sur HNT consiste à chercher celui des graphes d’un même niveau. Si
HTG et HNT ont trois niveaux, on commence par chercher le mapping de tous les HTG sur les
HNT dans le niveau 3. Ensuite, on fait de même au niveau 2 et après le niveau 1.
75
5.2. Modèle
Fig. 5.3 – Graphe Hiérarchique d’application
76
5.2. Modèle
Fig. 5.4 – Graphe Hiérarchique d’architecture
77
5.3. Fonction coût
Def. 7 le mapping consiste à placer une communication entre deux tâches ti et tj représentée
par l’arc eij ∈ E sur le réseau de communication. Ce placement consiste à trouver le chemin qui
est souvent constitué de plusieurs liens physiques contigus, utilisés pour envoyer les données de
ti à tj .
Mais avant de considérer le mapping dans sa globalité on doit tout d’abord proposer une
solution pour un mapping multi-objectif d’un seul graphe TG sur un seul graphe NT dans un
même niveau.
5.3
Fonction coût
le placement qu’on doit trouver c’est la sommes des coûts d’exécution des tâches sur des
processeurs et aussi des coûts de communication entre les tâches.
en général
– on a une fonction f (x) qui est la valeur de la fonction objectif pour la solution x.
– X un ensemble fini des solutions d’un problème (X fini mais très grand).
on peut formaliser cette fonction comme suit :
Opt{f (x)/x ∈ X} où Opt= Min ou Max.
dans notre cas :
f (x) : est le coût.
C :ensemble de contraintes.
F onction objectif



 minimiser f(x).
et


 V erif ier c , c ... ∈ C.
1 2
78
5.4. Contraintes
5.4
Contraintes
En découlant quatre types de contraintes :
5.4.1
Les propriétés de matériel et de logiciel :
Il doit y avoir une compatibilité entre les propriétés des tâches et celles de l’architecture. Par
exemple la quantité de donnée échangé entre deux tâches ne doit pas dépasser la capacité du
canal de communication.
5.4.2
Les types de noœud des deux graphes :
Les graphes ( application / architecture ) contient au maximum trois types de nœuds et au
minimum deux types de nœuds, dans chaque niveau hiérarchique, il doit contenir les même types
de nœuds.
le placement des tâches irrégulières doit se faire sur des SOC irrégulier ,et la même chose
pour les deux autres types.
5.4.3
Le niveau hiérarchique des graphes :
Il faut que les deux graphes (de l’architecture et de l’application) aient le même niveau hiérarchique, pour que le placement soit possible. Dans le cas contraire on passe à une normalisation
pour avoir le même niveau dans les deux graphes.
5.4.4
L’équilibrage des charges :
l’ordonnancement final doit garantir que l’ensemble des tâches est bien réparti sur l’ensemble
des processeurs, où il n’y a pas une concentration des tâches sur un sous ensemble des processeurs
par rapport à l’ensemble global.
79
5.4. Contraintes
Conclusion
Après la modélisation de notre problème, nous allons détailler dans le chapitre suivant notre
approche, Pour résoudre le problème de placement et d’ordonnancement d’une application hiérarchique à calcul intensif sur une architecture hiérarchique hétérogène.
80
Chapitre 6
Contribution
81
6.1. Introduction
6.1
Introduction
Notre contribution est de trouver l’association ( mapping ) d’une application hiérarchique sur
une architecture hiérarchique, en proposant un ensemble de placements qui satisfont différentes
contraintes comme le Temps et l’énergie, pour chaque niveau de l’arbre d’application.
6.2
Modèle Mathématique [18]
Une application est définit comme un ensemble de tâches T = {t1 , t2 , . . . , tn }, et l’architecture
comme un ensemble de processeurs P = {p1 , p2 , . . . , pn } .Comme hypothèse les processeurs
peuvent fonctionnes en plusieurs modes m1 , m2 , . . ..
– On définit les variables :
0
– dijm : la durée d’exécution de la tâche i placée sur pj s’exécutant au mode m (sans
prendre en compte les communications)
.
0
0
0
– dijm = W CNijm /fjm où W CNijm est le nombre de cycles nécessaires à la tâche i pour
s’exécuter sur le processeur j au mode m. et fjm est la fréquence d’horloge du processeur
j au mode m.
– Qij : la quantité de donnée échangée entre la tâche i et la tâche j.
0
– d Qm
ijpq : la durée des communications entre les tâches i et j placées respectivement sur
les processeurs p et q en mode m.
– qij : la durée de communication unitaire ( bit, octet ) entre le processeur p et q.
– epq : l’énergie consommée par une unité de donnée ( bit, octet ) durant le transfert de p
à q.
– µ (p, q) = {(pi , qj )} : le chemin reliant p à q en cas où il n’y a pas de chemin direct.
– bpq : la bande passante de lien directe entre le processeur p et q
–
(
m
Xip
=
1 si la tâches i est executer sur le processeur p au mode m
0 ailleur
– On définit les fonctions :
S’il n’existe pas un lien directe entre p et p alors la consommation d’énergie et le temps
de communication des tâches i et j si elles sont placées sur les processeurs p et q au mode
m en utilisant le même chemin sont :
P
0
– d Qijpq = Qij ∗ qpl pk où (pl , pk ) ∈ µ (p, q)
P
0m
– Eijpq
= Qij ∗ epl pk
82
6.2. Modèle Mathématique [18]
Dans ce modèle la consommation d’énergie, due a la communication intra-processeur est
négligeable, ainsi que la durée de communication.
Sinon
0
– d Qijpq = Qij ∗ qpq ∈ µ (p, q)
0m
– Eijpq
= Qij ∗ epl pk
la durée d’execution totale :
P
0
– DE = nbrtche
dijm
k=1
la durée de communication totale :
P
Pnbrtche 0
– DC = nbrtche
d Qijpq
i=1
j=1
– Les fonctions objectifs :
– La fonction du Temps :
Di =
m
m
X
m=ml
0
dipm +
S
S
N X
X
X
mn
X
m
m
Xip
∗ Xjq
∗ dQm
ijpq . . . j 6= i
i=1 p=1 q=p+1 m=ml
– La fonction d’énergie :
E=
S
N X
X
mn
X
i=1 p=i+1 m=ml
m
m
Xip
∗ ETip
+
S
S
N X
N X
X
X
mn
X
m
m
m
Xip
∗ Xjq
∗ Eijpq
. . . i 6= j
i=1 i=i+1 p=1 q=p+1 m=ml
83
6.3. les Algorithmes Utilisés
6.3
6.3.1
les Algorithmes Utilisés
Graphe potentiel Tâches
C’est une méthode pour déterminer la séquence d’exécution des tâches (la liste scheduling) :
elle détermine le temps de début de chaque tâche, en se basant sur le temps de début du la tâche
precedence (la plus lente) plus le temps d’execution, on obtient le temps de début de la tâche
actuelle. Le résultat de cette méthode est un ensemble des classes d’execution, qui contient des
tâches qui dépendent de la même classe d’execution.
On a utilisé cette méthode pour dégager les classes d’exécution, pour les nœuds irréguliers
et composés de chaque niveau de la hiérarchie, qui seront affectés à des processeurs du même
niveau.
Fig. 6.1 – liste scheduling
6.3.2
ACP(Analyse de Composante Principale)
Cette une méthode de classification des données ,s’applique sur les problèmes représentés
sous la forme d’un tableau Xpn où :
– n : individus (observateurs)
– p : Variable (caractéristique/paramètres)
L’objectif de l’ACP est de classifier les données du tableau initial, en classes d’individus sur
les axes les plus significatifs (qui ont la plus grande valeur propre).
On a utilisé la méthode de l’ACP pour classifier les processeurs de chaque niveau de l’hiérarchie, selon deux critères la vitesse et la consommation d’énergie.
84
6.4. Démarche
Fig. 6.2 – Exemple de classification par ACP
6.3.3
Djiskra multi-Objectifs
Sert à résoudre le problème du plus court chemin entre deux sommets d’un graphe connexe
dont le poids lié aux arêtes est positif ou nul.
L’algorithme porte le nom de son inventeur, l’informaticien néerlandais Edsger Dijkstra et
a été publié en 1959.
Nous avons modifié l’algorithme original pour qu’il fait la comparaison sur deux critères :
la latence et l’énergie consommée, avec priorité au latence, si il trouve deux liens avec la même
latence alors il lance, deux nouvelles recherches sur les deux liens à partie de ces liens vers la
même destination, à la fin il compare les different chemins par rapport la latence puis l’énergie.
Nous avons donné priorité au temps car l’énergie consommée par un bus au moment du
transfer est beaucoup moins importante que l’énergie consommée par le processeur pendant
l’attente.
6.4
Démarche
La démarche que l’on propose pour résoudre le problème du mapping dans sa globalité (c’est à
dire le GILR), est d’affecter un HTG (Hierarchical Task Graph) à un HNT (Hierarchical Network
Graph) avec des niveaux identiques. Dans notre approche on s’impose certaines hypothèses :
– le nombre de niveaux est donné comme entrée.
– Les deux graphes ont les mêmes niveaux.
– Pour chaque type de nœud d’application, on au a moins un équivalant dans l’architecture
dans le même niveau.
– On considère aussi qu’à tous les niveaux nous avons le même nombre de nœuds composés.
85
6.4. Démarche
– Le dernier niveau contient uniquement des nœuds élémentaires représentant des tâches
dans le HTG ou processeurs dans le HNT.
Le mapping est décomposé en deux parcours :
1. Validation(descendant) : Divisée en deux phases :
(a) Validation structurelle(fig6.3) : Vérifier la conformité des deux graphes avec les hypothèses.
(b) détection des anomalies(fig6.4) : Pour chaque tâche (respectivement processeurs)
Composé,répétitif et irrégulié on détecte les inter-blocages (les composantes connexe).
2. Mapping (ascendant)(fig6.5) :L’affectation des tâches aux processeurs et placement de
communication se fait comme suit :
A partir du niveau n − 1 :
(a) on construit les ensembles suivants :
– a partir de HTG :
STNC−1 = {ensemble des tâches composées.}
STNR−1 = {ensemble des tâches répétitifs.}
−1
STNIr
= {ensemble des tâches Irrégulières.}
– a partir de HNT :
SPNC−1 = {ensemble des Processeurs composés.}
SPNR−1 = {ensemble des Processeurs répétitifs.}
−1
= {ensemble des Processeurs Irréguliers.}
SPNIr
(b) On trie par ordre décroissant :
−1
STNIr
selon la taille.
N −1
ST C selon la taille.
STNR−1 selon le nombre des fils.
−1
pour grouper les
(c) Appliquer l’ACP pour chacun des ensembles suivants : SPNC−1 , SPNIr
N −1
processeurs, les plus similaires (vitesse,énergie). Et on trie SP R selon le nombre de
fils dans un ordre décroissant.
(d) Mapping :
– Composé :tantque STNC−1 6= ∅ faire
Heardt ← top de la liste STNC−1
Heardp ← top de la liste SPNC−1
mapping(Heardt ,Heardp ).
SPNC−1 =SPNC−1 - Heardt
STNC−1 =STNC−1 - Heardt
86
6.4. Démarche
finfaire
−1
– Irrégulier :tantque STNIr
6= ∅ faire
−1
Heardt ← top de la liste STNIr
−1
Heardp ← top de la liste SPNIr
ListeM appingIr .add(mapping(Heardt ,Heardp ))
−1
−1
SPNIr
=SPNIr
- Heardt
−1
−1
STNIr
=STNIr
- Heardt
finfaire
– Répétitif :tantque STNR−1 6= ∅ faire
Heardt ← top de la liste STNR−1
Heardp ← le plus similaire (Heardt ) dans SPNR−1 .
ListeM appingR .add(mapping(Heardt ,Heardp ))
STNR−1 =STNR−1 - Heardt
finfaire
† équilibrerCharges(ListeM appingR ).
(e) Pour chaque élément de ListeM appingIr appeler AG.
(f) Pour chaque élément de ListeM appingR appeler B&B.
(g) Pour chaque tâche de STNC−1 :
– établir la liste scheduling des ces fils.
– Calculer le plus court chemin pour tous les messages échangés entre ces fils.
– Combiner les fronts pareto générés par l’application de B&B ou AG sur ces fils.
(h) Si Racine alors Arrêter sinon Remonter dans les niveaux.
87
6.4. Démarche
Fig. 6.3 – Diagramme d’Activité de Validation structurelle
88
6.4. Démarche
Fig. 6.4 – Diagramme d’Activité de Détection des Anomalies
89
6.4. Démarche
Fig. 6.5 – Diagramme d’Activité de Mapping Hiérarchique
90
6.4. Démarche
Conclusion
Dans ce chapitre nous avons présenté notre approche, basée sur l’algorithme Génétique
et l’algorithme de Brunch and Bound, afin de résoudre le problème de placement et d’ordonnancement d’une application hiérarchique sur une architecture hiérarchique.
Afin de fiabiliser notre approche avec les résultats obtenus nous détaillerons la suite de notre
présentation par plus de diagramme et d’algorithmes.
91
Quatrième partie
Implementation & Experimentation
92
Chapitre 7
Implementation
93
7.1. Introduction
7.1
Introduction
Dans notre projet de fin d’étude, nous avons développé un outil qui intervient dans une
phase très important de flot de conception des systèmes embarqués, celle de l’association architecture/application. En adoptant le modèle hiérarchique et en combinant les algorithmes exactes
et heuristiques afin de satisfaire les différents contraintes et atteindre plusieurs objectifs
7.2
Présentation de l’application
L’entrée de notre application est constituée de deux graphes : un pour l’application et un
autre pour l’architecture. Á la sortie, cela donne un front de pareto, qui est un ensemble de
placements réalisables, respectant les contraintes de Temps et d’énergie. Cela par l’utilisation de
l’AG afin de placer les tâches irrégulières sur les processeurs hétérogènes, et l’algorithme de B
& B pour placer les tâches régulières sur des processeurs identiques.
7.3
Spécification des besoins
Partant de la nature d’étude des NOC, nous pouvons dégager quelques fonctionnalités que
doit satisfaire le logiciel :
– Diversifier les possibilité de saisir (Matricielle, Graphique).
– La possibilité d’étendre l’application par l’ajout de tâches ou de niveau. Idem pour l’architecture.
– minimiser le taux d’erreur commis par l’utilisateur.
– minimiser l’occupation de mémoire par l’application.
– Concevoir une application qui peut s’exécuter sur plusieurs systèmes d’exploitations.
– Produire un code source claire.
– Essayer de donner l’exemple en développant totalement l’application qu’avec des outils et
plateformes libres, donc entièrement gratuits.
– Concevoir une application en vue de faciliter la possibilité d’extensions ou d’améliorations
futures.
7.4
Les Outils et Plateformes utilisés
Pour le language de programmation, nous avons opté pour le language JAVA, car il représente un outil de programmation très puissant et multi-plateformes, à condition d’avoir une JVM
(java virtuel machine) appropriée au système. Il est connu que JAVA est un Open Source, d’où
plusieurs environnements de développement, parmi eux nous choisirons Eclips. Du fait qu’il est :
–
–
–
–
Gratuit.
Extensible.
Il existe plusieurs plugin’s qui l’enrichissent.
Standard.
94
7.5. Principales étapes de développement
– Facile à manipuler.
Pour les outils qu’on a utilisés :
– JFormDisigner : est un Plugin pour Eclipse qui permet de dessiner l’interface puis générer le code pour pouvoir l’intégrer dans l’application.
– JFreeChart : est un Plugin pour Eclipse pour dessiner des courbes et les intégrer dans
l’application.
– Entreprise Architecte : est un outil de modélisation UML (Unified Modelisation Model ),
est utilisé pour tester et vérifier notre modèle UML (c’est un plugin pour Eclips).
– Altova UModel : est un outil de modélisation UML, on l’utilisé pour générer les diagrammes de sequence pour les packages de l’interface ,le noyau et l’arbre hiérarchique.
– LaTex : est un formateur de texte d’une très grande puissance et qui produit des documents d’une excellente qualité. rédaction.
7.5
Principales étapes de développement
Pour la conception de l’application, on a utilisé toutes les connaissances qu’on a acquises en :
– Génie Logiciel : Modélisation de notre application.
– Analyse de Données : Classification et tries.
– Recherche Opérationnelle : Manipulation des graphes ( connexité, plus court chemin . . .).
– IHM : Utilisation du modèle MVC pour l’application.
– Système d’exploitation : Compréhension de la problématique de L’ordonnancement.
– Architecture des Ordinateur : Topologies et les types des architectures.
– Systèmes temps réel : Compréhension de la problématique des systèmes embarqués .
Nous résumons ci-dessous les principales étapes suivies pour la conception :
– Initiation au contexte :ce fut la première étape, où nous avons fait des recherches et études
dans le domaine des Systèmes embarqués, ce qui à produit la partie théorique de notre
projet de fin d’étude.
– Analyse des besoins :à cette étape, nos idées étaient un peu plus claire car à l’étape précédente nous nous sommes familiarisés avec le domaine.
– Conception et Modélisation : nous avons à cette étape, à partir du cahier des charges,
modélisé notre application en UML.
95
7.6. Architecture de l’Application
– Développement et implémentation :dans cette phase, nous avons commencé à développer
l’application, à partir bien sûr des modèles et diagrammes UML conçus avec Entreprise
Architecte à l’étape précédente, et l’implémentation s’est faite avec le langage Java en
utilisant l’EDI Eclipse.
– Tests et validation : à cette dernière étape, on a fini par valider l’application avec Altova
UModel et des exemples.
Fig. 7.1 – Les différentes étapes de développement
7.6
Architecture de l’Application
Nous présentons ici l’architecture globale d’application, qui est construite d’après le modèle
MVC qui est un Design Pattern fréquemment utilisé dans la conception d’applications systèmes.
7.6.1
Le Pattern et Modèle (MVC)
Il se base sur trois concepts :
Modèle :Le modèle représente le comportement de l’application : traitements des données,
interactions avec la base de données, etc. Il décrit ou contient les données manipulées par
96
7.6. Architecture de l’Application
l’application. Il assure la gestion de ces données et garantit leur intégrité. Dans le cas
typique d’une base de données, c’est le modèle qui la contient. Il offre des méthodes pour
mettre à jour ces données (insertion, suppression, changement de valeur). Il offre aussi des
méthodes pour récupérer ces données. Les résultats renvoyés par le modèle sont dénués de
toute présentation. Dans le cas de données importantes, le modèle peut autoriser plusieurs
vues partielles des données. Si par exemple le programme manipule une base de données
pour les emplois du temps, le modèle peut avoir des méthodes pour avoir tous les cours
d’une salle, tous les cours d’une personne ou tous les cours d’un groupe de TD.
Vue :La vue correspond à l’interface avec laquelle l’utilisateur interagit. Sa première tâche est
de présenter les résultats renvoyés par le modèle. Sa seconde est de recevoir toutes les
actions de l’utilisateur (clic de souris, sélection d’une entrée, boutons . . .). Ces différents
événements sont envoyés au contrôleur. La vue n’effectue aucun traitement, elle se contente
d’afficher les résultats des traitements effectués par le modèle. Plusieurs vues, partielles ou
non, peuvent afficher des informations d’un même modèle. Par exemple, une application
de conversion de bases a un entier comme unique donnée. Ce même entier peut être affiché
de multiples façons (en texte dans différentes bases, bit par bit avec des boutons à cocher,
avec des curseurs). La vue peut aussi offrir la possibilité à l’utilisateur de changer de vue.
Elle peut être conçue en html, ou tout autre « langage » de présentation.
Contrôleur :Le contrôleur prend en charge la gestion des événements de synchronisation pour
mettre à jour la vue ou le modèle et les synchroniser. Il reçoit tous les événements de
l’utilisateur et enclenche les actions à effectuer. Si une action nécessite un changement des
données, le contrôleur demande la modification des données au modèle et ensuite avertit la
vue que les données ont changé pour qu’elle se mette à jour. Certains événements de l’utilisateur ne concernent pas les données mais la vue. Dans ce cas, le contrôleur demande à la
vue de se modifier. Le contrôleur n’effectue aucun traitement, ne modifie aucune donnée.
Il analyse la requête du client et se contente d’appeler le modèle adéquat et de renvoyer la
vue correspondant à la demande.
Nous avons opté pour cette méthode car elle a beaucoup d’avantages par exemple :
– Plusieurs vues possibles synchronisées.
– Plusieurs contrôles possibles (exemple : clavier, souris).
– Données isolées (BD, fichiers, etc. . .).
– Nécessité de définir des interfaces communes entre le modèle, la vue et le contrôleur.
– Séparer dans le code le modèle( Data ),la (les) vu(s) et le Contrôle.
97
7.6. Architecture de l’Application
7.6.2
Architecture en packages de l’application
Elle est construite sur le pattern Model View Controller ; il impose la séparation entre
les données, les traitements et la présentation. C’est pour cette raison que l’application
est divisée en trois composants fondamentaux : le modèle qui contient les données de
l’application, la vue qui est la représentation du modèle à l’écran et le contrôle qui définit
la façon dont l’interface utilisateur réagit à une entrée faite par l’utilisateur. l’architecture
de l’application est constituée des trois principaux packages Voici la description :
– Core : ce package représente le noyau de notre application.
– GUI : est un package dédié a l’IHM ( utilisateur ).
– Observer :il gère l’harmonisation et l’organisation de la communication entre les packages noyau et GUI.
Fig. 7.2 – Architecture en Package de l’Application
98
7.7. l’interface graphique
7.7
l’interface graphique
La conception de l’interface de notre application est basée sur des règles de l’IHM (interface
homme-machine) qui sont :
– la simplicité.
– l’affichage que des informations significatives.
– la décomposition de l’interface en 4 parties (Nord,West ,Est et Sud).
– pas trop de messages.
– minimisé le risque que l’utilisateur commet une erreur de saisi ou de manipulation en
mettons au point des filtres de saisie et des contrôleur.
– pas trop de couleur
– utiliser des bulles de help pour donner à l’utilisateur des informations sur l’objet qui
point au dessus.
– diversifier les moyens de saisir.
– des icons significatives.
la figure 7.3 montre la fenêtre principale de notre application.
Fig. 7.3 – La fenêtre principale de l’application
a. La région Nord est composée de deux parties :
– le barre des menus Contenant les fonctions standards comme Ouvrir, enregistrer, chercher,
copier, coller, . . . etc.
– une barre d’Outils pour des fonctions de la barre des menus.
b. La région West (Fig : 7.5) est composée de deux onglets : un pour l’arbre hiérarchique d’application et l’autre pour l’architecture. Une barre d’outils pour éditer l’arbre (ajou99
7.7. l’interface graphique
Fig. 7.4 – La partie Nord de l’interface
ter,supprimer ou renommer). Le clic sur un bouton ajoutera un nœud à celui sélectionné tout
en respectant les conditions suivantes :
– Un nœud répétitif ne contient que des nœuds élémentaires.
– Un nœud composé peut contenir les nœuds répétitifs, composés et irréguliers.
– Dans chaque niveau hiérarchique il existe un nœud irrégulier contenant tous les nœuds
élémentaires. Initialisé par default en 1.
– Crée un nœud répétitif, engendre la création de deux nœuds élémentaires, et un nœud
diffuseur pour l’application (et E/S pour l’architecture).
– Un nœud élémentaire est une feuille.
– Crée un nœud composé, engendre la création d’un nœud répétitif et d’un nœud irrégulier.
Pour la suppression :
– d’un nœud élémentaire du nœud père répétitif il faut que le père contiennent au moins
trois fils élémentaires.
– D’un nœud composé, il faut que celui-ci contient deux nœuds.
– D’un nœud irrégulié,diffuseur et E/S est impossible.
– D’un nœud élémentaire est possible.
la selection d’un nœud élémentaire revient a sélectionné son père.
Renommer un nœud n’est possible que s’il n’existe pas un frère avec le même nom.
On peut saisir les graphes à l’aide des raccourcis clavier :
– "1": pour ajouter un noeud élémentaire (couleur Vert).
– "2": pour ajouter un noeud répétitif (couleur Orange).
– "3": pour ajouter un noeud composé (couleur Rouge).
– "0": pour supprimer un noeud.
c. La région Est (Fig : 7.6) contient trois interfaces
– Précédence/Maillage :(selon le graphe choisi application/architecture respectivement) :
Saisir la precedence entre les fils du nœud sélectionner, Sauf pour le nœud répétitif et le
nœud élémentaire du graphe d’application .La saisie peut se faire par la matrice ou a
l’aide d’un graphe. Pour la matrice de precedence c’est une matrice complète car les liens
sont orientés ,la matrice de maillage est une matrice supérieurs droite ; les liens sont bidirectionnels.
– Caractéristiques : Saisir les variétés du nœud sélectionner et les tailles des messages de
communication échangés avec ces frères, Sauf pour le nœud répétitif car il n’y a pas de
message entre les fils d’un nœud répétitif.
100
7.7. l’interface graphique
Fig. 7.5 – La partie West de l’interface
– résultat : dans cette zone les résultats de l’application seront affichés.Un front de pareto
pour les scheduling ( ordonnancement) et deux diagrammes de Gantt, un pour l’ordonnancement sélectionné et l’autre pour les E/S du même ordonnancement.
d. La partie Sud (Fig : 7.7) contient les boutons :
– Valider : Pour valider les graphes avant de lancer le processus.
– A.S.S : Pour lancer le processus de recherche des placement de l’application sur l’architecture.
– Réglage : Pour modifier les paramètres de l’algorithme génétique ou les caractéristiques
de l’architecture.
101
7.7. l’interface graphique
Fig. 7.6 – La partie Est de l’interface
102
7.7. l’interface graphique
Fig. 7.7 – La partie Sud de l’interface
103
7.7. l’interface graphique
7.8
Modélisation UML
Fig. 7.8 – Diagramme de class du noyau (architecture) (1/4)
104
7.7. l’interface graphique
7.8.1
Diagramme de class du noyau
Fig. 7.9 – Diagramme de class du noyau (application)(2/4)
105
7.7. l’interface graphique
7.8.2
Diagramme de class du noyau
Fig. 7.10 – Diagramme de class du noyau (structure de données) (3/4)
106
7.7. l’interface graphique
7.8.3
Diagramme de class du noyau
Fig. 7.11 – Diagramme de class du noyau (traitement)(4/4)
107
7.7. l’interface graphique
7.8.4
Diagramme de class de l’interface
Fig. 7.12 – Diagramme de classe de l’interface
108
7.7. l’interface graphique
7.8.5
Diagramme de séquence de l’application
Fig. 7.13 – Diagramme Séquence d’Ouvrir un nouveau projet
109
7.7. l’interface graphique
7.8.6
Diagramme Activité de Saisi de l’Arbre Hiérarchique
Fig. 7.14 – Diagramme Activité de Saisi de L’Arbre Hiérarchique
110
Chapitre 8
Experimentation
111
8.1. introduction
8.1
introduction
Le coté pratique consiste a testé notre logiciel sur une application et une architecture qui
adoptent le même modèle hiérarchique. Le modèle SOC qu’on va présenter est un encodeur
H2.63 placer sur une architecture MPSOC.
8.2
L’application : Encodeur H2.63 [18]
C’est une application gourmande en puissance de calcul effectuant un traitement d’image,
Le standard H2.63 permet de compresser un flux de video.
L’implementation consiste a convertir une video QCIF dans le format compressé H2.63. La
compression ce fait en trois tâches séquentielles :
– La transformée en cosinus discrète (DCT, Discrète Cosine Transform) permet d’éliminer la redondance de données et de transformer les données du domain temporelle au
fréquentielle.
– La quantification consiste à diviser chaque coefficient de la DCT par un pas de quantification et mettre les coefficient négatifs à Zéro.
– Encoder les macro-blocs traités en attribuant à chaque coefficient de DCT quantifié un
mot binaire dont la longueur est d’autant plus courte que le coefficient est fréquent.
La taille d’une image d’une séquence QCIF est de 176x144 pixels. Dans l’algorithme d’encodage, les données manipulées sont structurées sous forme de macro-blocs qui représentent un
espace de 16x16 pixels d’une image vidéo. Le format de données du macro-bloc est le YCbCr
qui contient trois composantes : luminance (Y ), chrominance bleu (Cb), et chrominance rouge
(Cr ). Les blocs de luminance décrivent l’intensité des pixels tandis que les blocs de chrominance
contiennent des informations sur les couleurs des pixels. La couleur verte n’est pas explicitement
codée, elle peut être dérivée à partir des valeurs des trois composantes. Un macro-bloc contient
6 blocs de 8x8 valeurs : 4 blocs contiennent les valeurs de la luminance, un bloc contient les
valeurs de la chrominance bleu et un bloc contient les valeurs de la chrominance rouge.
Le profil GASPARD vise ce type d’application car il peut représenter les différents niveaux
de l’hiérarchie, en parcourant le modèle du haut en bas. VideoSequnece : est le composant de
base, il contient une répétition de 400 ; Cela permet de traiter 400 images.
– QCIF2H263 : est le composant qui traite l’image. Composé de trois sous tâches :
1. QCIFReader : Il convert une séquence video au format QCIF en trois composantes
YCbCr.
2. H2.63Encoder : C’est une tâche répétitif qui contient réellement tout l’algorithme
pour encoder une image. Elle est composée de H263MacroBlock, qui est lui même
composé de trois sous-tâches.
– DCT (Discrète Cosine Transform).
112
8.2. L’application : Encodeur H2.63 [18]
– Quan2QCIF La quantification.
– Coding Encoder les macro-blocs traités.
3. CompressFileSave : Se charge de sauvegarder le flux compressé.
Fig. 8.1 – Le graphe hiérarchique de l’encodeur H.263.
113
8.2. L’application : Encodeur H2.63 [18]
Fig. 8.2 – L’implémentation de l’encodeur H.263 en profil Gaspard.
114
8.3. L’architecture : MPSOC [18]
8.3
L’architecture : MPSOC [18]
L’architecture matérielle modélisée est relativement simple (figure 8.3). Elle a pour composant principal HardwArchit. Ce composant est composé de deux mémoires, un réseau d’interconnexion et quatre processeurs MIPS. Le réseau d’interconnexion est un crossbar modélisé à l’aide
de deux ports multiples. L’un de ces ports est de type In et permet de connecter les composants
ayant des ports initiateurs de transaction (tels que les processeurs). En fonction du nombre de
composants à brancher le concepteur peut faire varier sa multiplicité. L’autre port est de type
Out, auquel on peut connecter les composants ayant des ports esclaves lors des transactions.
Fig. 8.3 – Le graphe hiérarchique de l’MPSOC.
115
8.4. L’impact de l’hiérchisation
8.4
L’impact de l’hiérchisation
On a essayé, à travers cette expérimentation de montrer la pertinence de traiter les graphes
hiérarchiques lors d’un placement. Dans une application de 64 tâches et une architecture de 12
processeurs. L’association à plat, a fourni des résultats en 157 µs (fig 8.4) et hiérarchique a deux
niveaux en : 124 µs.
Fig. 8.4 – Résultat d’association à plat.
116
8.4. L’impact de l’hiérchisation
Fig. 8.5 – Résultat d’association à deux niveaux.
117
8.4. L’impact de l’hiérchisation
A partir des résultats obtenus dans l’expérimentation précédente, on a essayé de tester
d’autres exemple ayant de différents nombre de tâches et niveaux. Le tableau8.1 montre les
résultats des experimentations.
Tâches
30
40
50
64
niveau1
115
129
143
157
niveau2
84
96
110
124
niveau3
53
65
89
93
niveau4
22
34
58
62
Tab. 8.1 – Résultats de temps de Placement hiérarchique
Fig. 8.6 – Évolution des temps de recherche du GILR en fonction de la taille des application
et du nombre de niveau
118
8.4. L’impact de l’hiérchisation
conclusion
D’après les résultats obtenus dans les experimentations précédentes, nous avons constater
que le facteur de l’hiérchisation influe positivement sur la vitesse de recherche dans les espaces
de solutions.
Mais l’hiérarchisation à des limite, car si le nombre des niveaux et très important alors le
temps globales de la recherche sera relativement grand, pour cela il faut chercher une marge où
l’hiérchisation sera efficace à 100%.
119
Conclusion Générale
120
La conception des systèmes embarquées impose à respecter certaines contraintes logicielles
et matérielles, contrairement aux systèmes informatiques, ces contraintes doivent être prises en
compte simultanément. Dans ce type de système où l’on fait du logiciel dédié et inversement
pour le matériel, les deux types de contraintes sont vérifiées en même temps. Lors de la phase de
mapping, on doit prendre en considération la contrainte de consommation d’énergie, de temps
réel, de surface, de mémoire. Ce problème est souvent désigné dans la communauté par l’AAS
(Assignation, Affectation et Scheduling). Les contraintes dont on a parlé ne peuvent être traitées séparément. Pour que l’AAS soit réaliste, on doit considérer certaines d’entre elles comme
des objectifs qu’on doit atteindre simultanément. C’est ce qui rend ce problème, un problème
d’optimisation combinatoire multi-objectif .[18]
La plupart des approches proposée pour résoudre ce problème traite un seul objectif a la
fois, la nôtre traite deux objectifs : minimiser le temps globale et minimiser l’énergie consommée. Pour cela on utilisé deux algorithmes d’optimisation. Un algorithme génétique qui est
un algorithme heuristique, et l’algorithme de Brunch & Bound qui est exact. ces deux algorithmes cherchent la bonne solution dans un espace de solution réalisable en respectant les
contraintes de Temps et d’énergie.
notre travail consiste à trouver un placement d’une application hiérarchique sur une architecture hiérarchique de même structure (même niveau de profondeur hiérarchie).C’est ce qu’on
appelle le GILR (Globalement Irrégulier Localement Régulier ).
Le côté pratique nécessite quant a lui une étude plus approfondie en qui doit prendre nécessairement en comptes le vaste domaine des applications.
Enfin, l’idéal serait d’appliquer l’ensemble des résultats obtenus lors de ces travaux à un
NOC dans les conditions réelles d’utilisation.
121
Glossaire
AG :Algorithme Génétique.
ACG :Acyclic Graph
ACP : Analyse de Composantes Principale.
ALAP : As Late As Possible.
ASAP : As Soon As Possible.
ASIC : Application-Specific Integrated Circuit.
ASS : Affectation Assignation Scheduling.
B&B : Brunch and Bound.
BD : Budgeted Deadline.
CLP : Complex linear Programmation.
CMT :Core Mapping Technique
CPU : Central Processing Unit.
CTG : Communication Task Graph.
DMA : Direct Memory Access.
DSP : Digital Signal Processor.
DVS : Dynamique Voltage Scaling.
EAS : Energy Assigning Energy.
EDF : Early Deadline Finish.
EE-CLSA : Energy Efficacient Genetic List
Scheduling Algorithm.
EE-GMA : Energy Efficacient Genetic Mapping Algorithm.
EFT : Early Finish Time.
EST : Earliest Star Time.
ET : Execution Time.
FPGA : Field-Programable Gate Array.
FIFO : First In First Out.
GILR : Globalement Irrégulier Localement Régulier.
GPS : Global Position System.
GSM : Global System of Mobile.
HTG : Hierarchique Task Graph.
HNT : Hierarchique Network Task.
IHM : Interface Homme-Machine.
JVM : Java Virtuel Machine.
LFT : Latest Finish Time.
LOPOCOS : Low Power CO-Synthesis.
LS : List Scheduling.
LST : Latest Star Time.
MIMD : Multiple Instruction Multiple Dada.
MIPS : Million Instruction Par Second.
MISD : Multiple Instruction Single Data.
MPSOC : Multiprocessor System on Chip.
MVC : Modèle Vue Contrôleur.
NOC : Network On Chip.
NT : Network Task.
PDM : plateforme Definition Model.
PIM : plateforme Independent Model.
PPL : plateforme Priority List.
PSM : Platfrom Specific Model.
PV-DVS : Power Variation Dynamique Voltage Scaling.
SAR : Search and Reparation.
SIMD : Single Instruction Multiple Data.
SISD : Single Instruction Single Data.
SRAM : Static Random Aces Memory.
SOC : System On Chip.
SVS : Statique Voltage Sélection.
TDM : Time Devision Multiplexing.
TG : Task Graph.
UML : Unified Modeling Language.
USB : Universal Serial Bus.
WCET : Worst Case Execution Times.
122
Index
élitiste, 68
énergie, xiii, 7, 11, 27, 37, 44, 54
énumérer, 62
DMA, 10
DSP, 10
DVS, 34
Aléatoirement, 67
Analogique, 11
Arbre, 47
ASIC, 5, 13
Assignation, 39
EE-CLSA, 44
EE-GMA, 44
Embarqué, 9
Embarquement, 11
Binaire, 66
Bit, 41, 67
Borne, 63
Boucle, 44
Buffer, 41
Chromosome, 66
CMOS, 12
Co-développement, 25
Co-design, 25
Co-Processeur, 12
Co-simulation, 25
Coût, 78
Codage, 66
Communication, 12
Contrainte, 79
Convertisseur, 11
coordination, 25
CPU, 10
Critère, 34
Croisement, 39, 65, 68
CTG, 39
Cycle, 12, 22
développement, 23
Deadline, 35
Flot, 22
Fonction, 47
FPGA, 5
génération, 65
génératrice, 22
Génotype, 66
gène, 66
GASPARD, 28
Gray, 67
Hétérogénéité, 11
Hard, 46
Hiérarchique, 11
hiérarchique, 16, 74, 75, 79, 85, 110
Hypothèse, 22
IDM, 27
incrementation, 46
Individu, 67
Individuelle, 47
instanciation, 22
inter, 42
Intervalle, 47
itérative, 65
langage, 25
Latence, 11, 41
123
mémoire, 11
Minimisation, 34
Mono-puce, 11
MPSOC, 11
Multi-maitre, 25
Mutation, 39, 65, 69
Nœud, 16
Niveau, 79
NOC, 16, 34
Numérique, 11
Optimale, 63
Optimisation, 12
Optimum, 34
Ordonnancement, 34
Stockage, 41
Switch, 41
Systématique, 62
TDM, 39
Tournoie, 68
transistors, 13
Trivial, 62
Universelle, 68
Vecteur, 66
Y, 28
parallèle, 22
placement, 34
Plateforme, 27
procedure, 65
processeur, 5
Profondeur, 62
Puce, 44
Quadratique, 12
Réalisable, 62
réseau, 39
Racine, 63
Reproduction, 67
Roulette, 68
Sélection, 68
Séparation, 62
séquentialité, 22
Séquentiel, 22
Selection, 65
Seuil, 34
signal, 10
SOC, 10, 11
Soft, 47
Specification, 11
Static, 47
124
Bibliographie
[1] Flot de conception hièrarchique d’un système hétérogène. PhD thesis, 2005.
[2] A.A. Jerraya and W.Wolf. Multiprocessor System-on-Chips. 2004.
[3] Abid Khaled and Benabdallah Saad. Problème de mapping de tâches répétitives sur une
architecture régulière, 2008.
[4] P.Eles Z.Peng B.M.Al-Hashimi Andrei, M.T.Schmitz. In Overhead-Conscious Voltage Selection For Dynamic and Leakage Power Reduction of Time-Constraint Systems. Automation
and Test Europe Conference, 2004. accepted for publication.
[5] ARM. AMBA AXI protocol Specification. 2003.
[6] Youssef Atat. Conception de haut niveau des mpsocs à partir d’une spécification simulink,
2007.
[7] R. A. Bergamaschi. Early and Accurate Analysis of SoCs : Oxymoron or Reality 2004.
[8] Aimen Bouchhima. Modélisation du logiciel embarqués à différents nivaux d’abstraction en
vue de la validation et la synthèse des système monopuce. Master’s thesis, 2006.
[9] C.Wu C.Chou and J.Lee. 4th ieee international symposium on electronic design test application. In Integrated Mapping and Scheduling for Circuit-Switched Networkon-Chip Architectures. IEEE Computer Society, 2008.
[10] J. Kim D. Shin. Power-Aware Communication Optimization for Networks-on-Chips with
Voltage Scalable Links. CODES ISSS, Septembre 2004.
[11] Xavier Delrome. Optimisation combinatoire et problèmes de capacité d’infrastructure ferroviaire. mémoire DEA, 2000.
[12] Bruce ECKEL. Thinking in java, 2nd edition. 2000.
[13] Lens F.Gruian, K.Kuchcinski. In Task Scheduling for Lower-energy Systems Using Variable
Supply Voltage Processors. ASP-DAC, 2001.
[14] GauLovic Gauthier. Conception des logiciels embarqués pour les systèmes monopuce. 2003.
[15] D.E. Goldberg. Genetic Algorithms in Search, Optimization and Machine Learning. 1989.
[16] K. Goosens. Network on Silicom : Combining best effort and guaranteed services. 2002.
[17] R.Marculescu G.Varatkar. Communication, Complexity and Criticaly issue in Designing
Silicon Networks. 2006.
125
BIBLIOGRAPHIE
[18] B. Abou El Hassen. ORDONNANCEMENT HIÉRARCHIQUE MULTI-OBJECTIFS
D’APPLICATIONS EMBARQUÉES INTENSIVES. PhD thesis, 2008.
[19] M. Heath. Synchro-Tokens : Eliminating Nondeterminism to Enable Chip-Level Test of
Globally Asynchronous Locally Synchronous SoC’s. 2004.
[20] Holland. Adaptation in Natural and Artificial System. University of Michigan Press, 1975.
[21] Pham Viet Hung. Linux embarqué et système embarqué. Technical report, 2005.
[22] I. Xu and W. Wolf. Plateform Based Design and hte first generation Dilemma. 2002.
[23] Sonic Inc. Product brief : Siliconbackplane iii micronetwork ip, 2003.
[24] R.Marculescu J.Hu. Design automation and test in europe conf. In Energy-Aware
Communication and Task Scheduling for Network-on-Chip Architectures under Real-Time
Constraints, 2004.
[25] K. Czarnecki and S. Helsen. Feature-based survey of model transformation approaches. 2006.
[26] K. Keutzer, S.Malik andA.R. Newton, J. Rabaey, and A.S Vaincentelli. System Level Design : Orthogonolization of concems and plateform-Based Design. 2000.
[27] Patrice Kadionik. Les systèmes embarqués : une introduction. 2005.
[28] Ivan Kurtev. Adaptability of model transformations. PhD thesis, 2005.
[29] Z.Peng L.A.Cortes, P.Eles. Quasi-static scheduling for multiprocessor real-time systems
with hard and soft tasks. Technical report, Embedded Systems Lab, Dept. of Computer
and Information Science, beDesign, Linkoping University, September 2003.
[30] Z.Peng L.A.Cortes, P.Eles. Design, test and applications. In Static Scheduling of Monoprocessor Real-Time Systems composed of Hard and Soft Tasks, pages 115–120. The IEEE
International Workshop on Electronic, January 2004.
[31] A.Guerri M.Milano L.Benini, D.Bertozzi. Allocation, Scheduling and Voltage Scaling on
Energy aware MPSoC. 2006. pp.44-58.
[32] D. Lyonnard. Approche d’assemblage systématique d’éléments d’interface pour la génération
d’architecture multiprocesseur. PhD thesis, Institut National Polytechnique de Grenoble,
2003.
[33] M. John and S. Smithy. Application specific Integrated circuits. 1997.
[34] A.Khademzadeh M.Armin, S.Saeidi. Spiral A heuristic mapping algorithm for network on
chip, volume 4. Ieice electronics express edition, August 2007.
[35] Mehadji abdelghani kamel and Mesbah mourad. Assignement affectation ordonnancement
d’une architecture de tâches répétitives sur une architecture embarquée régulière, 2007.
[36] P.Eles M.T.Schmitz, B.M.Al-Hashimi. In A Co-Design Methodology for Energy-Efficient
Multi-Mode Embedded Systems with Consideration of Mode Execution Probabilities. Design,
Automation and Test Europe Conference, 2003. Munich, 2003.
[37] P.Eles M.T.Schmitz, B.M.Al-Hashimi. Iterative Schedule Optimization for Voltage Scalable
Distributed Embedded Systems, volume 3. Feb 2004.
126
BIBLIOGRAPHIE
[38] N. Sadowski and A. Bastos. Electromagnetic Modeling by Finite Element Methods. 2003.
[39] S.Kumar P.Ruxandra. A Survey of Techniques for Mapping and Scheduling Applications to
Network on Chip Systems. 2004.
[40] R.Szymanek. Memory aware task assignment and scheduling for multiprocessor embedded
systems. Licentiate Thesis No.13, June 2001. ISSN 1404-1219.
[41] K.Kuchcinski R.Szymanek. In Design Space Exploration in System Level Synthesis under
Memory Constraints. Euromicro 25, Sept 1999.
[42] A. Sangiovanni-Vincentilli. Platform-based Design. 2002.
[43] M. Steven. Service-Oriented architecture introduction. 2004.
[44] El-Ghazali TALBI. Métaheuristiques pour l’Optimisation Combinatoire Multi-objectifs :
Etat de l’art.
[45] S. Kumar T.Lei. A two-step Genetic Algorithm for Mapping Task Graphs to a NoC Architecture. DSD, 2003.
[46] Wikipedia. Algorithme d’optimisation.
[47] W.J Dally, M. Abid, and A.Jerraya. COSMOS : A CoDesign Approch for Communicating
Syetems. 1994.
[48] X.Hu Y.Zhang and D.Chen. Task Scheduling and Voltage Selection for Energy Minimization. 2002.
127