Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parAndré Le bras Modifié depuis plus de 9 années
1
1 Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Rodolphe Loué Projet SOLIDOR
2
2 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion
3
3 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion
4
4 Introduction (1/4) Essor des architectures embarquées Applications multimédia Applications multimédia télécommunications télécommunications
5
5 Introduction (2/4) Programme Liaison
6
6 Introduction (2/4) Programme Liaison
7
7 Introduction (3/4) Programme ABSTRACTION MATERIELLE Modification du programme indépendamment du matériel Modification du programme indépendamment du matériel Evolution du matériel indépendamment du programme Evolution du matériel indépendamment du programme
8
8 Introduction (4/4) mémoire mémoire rapidité d’exécution rapidité d’exécution coût énergétique coût énergétique Optimisation de l’abstraction matérielle selon les critères :
9
9 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion
10
10 1 - Présentation (1/2) SDE Sélecteur de module Gestionnaire de type Projection de langage M1, M2 Interface utilisateur Critères de conception DSP C55x Alignements requis spécification M1 M2 M3 M4 Implantation (modules) Gestionnaire de type
11
11 1 - Présentation (2/2) Système d’exploitation Implantation spécification Alignement requis SDE langage1 langage2 MEMOIRE Implantation1 Version1 validée Version2 invalidée Implantation2 Implantation de l’allocation de T Fonction de construction de T Service1Service2 Service d’allocation Programme utilisateur
12
12 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion
13
13 2 - Objectifs Utilisation des fonctions de construction de type Utilisation des fonctions de construction de type Création d’information sur le type Création d’information sur le type Rendre le gestionnaire de type polyvalent
14
14 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion
15
15 Les types dans SDE Type opaque : bloc contigu (opaque(5)) Type externe : déclaré dans la spécification Type composé –structure : concaténation de type (struct {...}) –union : superposition de type simple : taille de sa composante la plus volumineuse (union {...}) avec sélecteur de type : fonction retournant le type de l’union (union {…}) –tableau : ensemble d’éléments indexés d’un type classique (opaque(1)[2]) dynamique : fonction retournant la taille de la dimension (opaque(3)[ ])
16
16 inversion du type Propriété : un type est –représenté par un arbre –construit par une grammaire LALR Type ::= Type_Tableau Type_Tableau ::= Type Dim Exemple : type [5][2][7]
17
17 inversion du type Type Dim Type Dim Type Dim type[5][2][7] type[5][2] type[5] type [7] [2] [5] Interprété par l’analyseur par : type[7][2][5]
18
18 inversion du type 1 217 3 4 15 5107 11 12 8 1413 16 9 6 1918 20 21 22 23 légende 1 racine structure ou union tableau opaque 3 2 8 7 11 10 22 21 20 19
19
inversion du type 1 317 2 4 15 5118 10 12 7 1413 16 9 6 2218 21 20 19 23 légende 1 racine structure ou union tableau opaque
20
20 Tableau dynamique versus fixe 1 2 3 Tableau fixe Tableau dynamique (0,0,0) (0,0,1) (0,1,0) (0,1,1) (0,2,0) (0,2,1) (1,0,0) (1,0,1) (1,1,0) (1,1,1) (1,2,0) (1,2,1) (0,0,0) (0,0,1) (0,1,0) (0,1,1) (1,0,0) (1,0,1) (1,1,0) (1,2,0) (1,2,1) (1,2,2) (2,0,0) (3,0,0) Représentation spatiale Représentation mémoire Descripteur de la dimension 1 Descripteur de la dimension 2 Tableau dynamique Tableau fixe
21
21 Opaque(5) [2][3][ ][3]
22
22 Opaque(5) [2][3][ ][3]
23
23 Opaque(5) [2][3][ ][3]
24
24 Opaque(5) [2][3][ ][3] d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1
25
25 Opaque(5) [2][3][ ][3] Emplacement mémoire de taille indéfinie Légende
26
26 Opaque(5) [2][3][ ][3] Emplacement mémoire de taille indéfinie Légende
27
27 Opaque(5) [2][3][ ][3] Emplacement mémoire de la taille d’un pointeur Légende Emplacement mémoire de taille indéfinie
28
28 Opaque(5) [2][3][ ][3] d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 Emplacement mémoire de la taille d’un pointeur Légende Emplacement mémoire de taille indéfinie d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1
29
29 Opaque(5) [2][3][ ][3] d3(0,0)=1 d3(0,1)=1 d3(0,2)=3 d3(1,0)=2 d3(1,1)=1 d3(1,2)=1 Emplacement mémoire de la taille d’un pointeur Légende Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un opaque(5) aligné 0 4 8 12 16 20 24 48 72 96 144 192 216 32 40 56 64 80 88 104 112 136 120 128 160 152 168 176 184 200 208 224 232
30
30 Unions avec sélecteur dans un tableau Exemple : union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3];
31
31 union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3];
32
32 union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3];
33
33 union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u
34
34 union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u
35
35 union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2
36
36 union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 opaque(8) o2;
37
37 union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 opaque(8) o2;
38
38 sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; opaque(4) o1;
39
39 union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2
40
40 union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3
41
41 union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3 opaque(8) o2;
42
42 union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3 opaque(16) o3;
43
43 Légende Emplacement mémoire de taille indéfinie union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3];
44
44 sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3 Emplacement mémoire de la taille d’un pointeur Légende Emplacement mémoire de taille indéfinie union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3];
45
45 sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3 Légende Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3];
46
46 sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3 Légende Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3];
47
47 sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3 Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3];
48
48 sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3 Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; u
49
49 sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3 u Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3];
50
50 sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3 u Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un opaque(4) aligné union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3];
51
51 sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3 u Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un opaque(4) aligné union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3];
52
52 sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3 u Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un opaque(4) aligné union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3];
53
53 sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3 u Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie Emplacement mémoire de la taille d’un opaque(4) aligné union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3];
54
54 sel1=Type_u sel1=Type_o1 sel1=Type_u sel2=Type_o2 sel2=Type_o3 u u Emplacement mémoire de la taille d’un opaque(4) aligné Légende Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un opaque(16) aligné union { opaque(4) o1; union { opaque(8) o2; opaque(16) o3; }[2] u; }[3]; 0 4 8 12 16 36 40 44 20 28 48 56
55
55 Tableau de structure d’opaque et de tableau Exemple : struct { opaque(8) o1; opaque(4) [3][ ] o2; }[2][ ];
56
56 Légende Emplacement mémoire de taille indéfinie struct { opaque(8) o1; opaque(4) [3][ ] o2; }[2][ ]; Emplacement mémoire de la taille d’un pointeur d1(0)=2 d1(1)=1
57
57 Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie struct { opaque(8) o1; opaque(4) [3][ ] o2; }[2][ ]; d1(0)=2 d1(1)=1
58
58 Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie struct { opaque(8) o1; opaque(4) [3][ ] o2; }[2][ ]; d1(0)=2 d1(1)=1
59
59 Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie struct { opaque(8) o1; opaque(4) [3][ ] o2; }[2][ ]; d1(0)=2 d1(1)=1
60
60 Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie struct { opaque(8) o1; opaque(4) [3][ ] o2; }[2][ ]; d1(0)=2 d1(1)=1
61
61 Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie struct { opaque(8) o1; opaque(4) [3][ ] o2; }[2][ ]; d1(0)=2 d1(1)=1
62
62 Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie struct { opaque(8) o1; opaque(4) [3][ ] o2; }[2][ ]; d1(0)=2 d1(1)=1
63
63 Légende Emplacement mémoire de la taille d’un opaque(8) aligné Emplacement mémoire de la taille d’un pointeur Emplacement mémoire de taille indéfinie d2(0,0,0)=3 d2(0,0,1)=1 d2(0,0,2)=1 d2(0,1,0)=2 d2(0,1,1)=1 d2(0,1,2)=2 d2(1,0,0)=2 d2(1,0,1)=1 d2(1,0,2)=3 d1(0)=2 d1(1)=1 struct { opaque(8) o1; opaque(4) [3][ ] o2; }[2][ ]; Emplacement mémoire de la taille d’un opaque(4) aligné struct { opaque(8) o1; opaque(4) [3][ ] o2; }[2][ ]; d2(0,0,0)=3 d2(0,0,1)=1 d2(0,0,2)=1 d2(0,0,0)=3 d2(0,0,1)=1 d2(0,0,2)=1 d2(0,0,0)=3 d2(0,0,1)=1 d2(0,0,2)=1 d2(0,0,0)=3 d2(0,0,1)=1 d2(0,0,2)=1 d2(0,1,0)=2 d2(0,1,1)=1 d2(0,1,2)=2 d2(0,1,0)=2 d2(0,1,1)=1 d2(0,1,2)=2 d2(0,1,0)=2 d2(0,1,1)=1 d2(0,1,2)=2 d2(0,1,0)=2 d2(0,1,1)=1 d2(0,1,2)=2 d2(1,0,0)=2 d2(1,0,1)=1 d2(1,0,2)=3 d2(1,0,0)=2 d2(1,0,1)=1 d2(1,0,2)=3 d2(1,0,0)=2 d2(1,0,1)=1 d2(1,0,2)=3 0 4 8 16 20 24 36 48 60 84 108 120 28 40 44 56 64 68 80 72 76 92 88 96 100 104 112 116 124 128
64
64 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion
65
65 4 - Perspectives Sélecteur de module Sélecteur de module –mots clefs (automatisation de la tâche) Caractéristiques processeurs Caractéristiques processeurs
66
66 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion
67
67 Conclusion Objectifs atteints Objectifs atteints type avec fonction de description transparence d’utilisation de ce type Critiques Critiques +deux compilations distinctes nécessaires (des fichiers d’entrée SDE et des fichiers générés par SDE) : modularité –séparation des différentes stratégies dans SDE –mémoire optimisée sans tenir compte de sa fréquence d’utilisation
68
68 Commentaires et questions
69
69 Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Rodolphe Loué Projet SOLIDOR FIN
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.