La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Rodolphe Loué Projet SOLIDOR.

Présentations similaires


Présentation au sujet: "1 Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Rodolphe Loué Projet SOLIDOR."— Transcription de la présentation:

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


Télécharger ppt "1 Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Rodolphe Loué Projet SOLIDOR."

Présentations similaires


Annonces Google