+ All Categories
Home > Documents > Calcul des états atteignables de programmes Esterel partitionné selon la syntaxe

Calcul des états atteignables de programmes Esterel partitionné selon la syntaxe

Date post: 15-Jan-2016
Category:
Upload: rune
View: 20 times
Download: 0 times
Share this document with a friend
Description:
Calcul des états atteignables de programmes Esterel partitionné selon la syntaxe. Eric Vecchié - INRIA / AOSTE Directeur de th èse : Robert de Simone. INRIA - Sophia Antipolis. 9 juillet 2004. Motivation. Esterel Conception de logiciels embarqués Traduction en circuit - PowerPoint PPT Presentation
Popular Tags:
48
Calcul des états atteignables de programmes Esterel partitionné selon la syntaxe Eric Vecchié - INRIA / AOSTE Directeur de thèse : Robert de Simone NRIA - Sophia Antipolis 9 juillet 2004
Transcript
Page 1: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

Calcul des états atteignables de programmes Esterel

partitionné selon la syntaxe

Eric Vecchié - INRIA / AOSTE

Directeur de thèse : Robert de Simone

INRIA - Sophia Antipolis 9 juillet 2004

Page 2: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

2

Motivation

Esterel

• Conception de logiciels embarqués

• Traduction en circuit

• Calcul des états atteignables

Contribution

• Calcul optimisé des états atteignables

• Partitionné par la syntaxe

• Guidé par l'évolution du flot de contrôle

Page 3: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

3

PlanContexte

Calcul partitionné

Mise en oeuvre

Résultats expérimentauxConclusion

– Esterel– Calcul des états atteignables

– Schéma général– Opérateurs séquentiels– Programmes parallèles– Boucles

– Algorithme partitionné– Graphe de flot de contrôle

Page 4: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

4

Esterel• Dédié au contrôle

(Avion, airbag, téléphone...)

• Langage de programmation– réactif

– synchrone

– déterministe

• La famille d'Esterel– SyncCharts

– Lustre, Signal

Page 5: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

5

Syntaxe de Esterelpause

emit S

present S then P else Q end

signal S in P end

P ; Q

loop P end

abort P when S

P || Q

Page 6: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

6

Sémantique formelle

• Sémantique Opérationnelle Structurelle

p ; q q'

p ø q q'E/E' E/F'

E / E' F'

Espace d'états fini Machines de Mealy (automate)

• Sémantique dénotationnelle Circuits séquentiels (états implicites)

Page 7: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

7

Un exemple

[ await A|| await B];emit O

AB AB

AB/O

B/O A/O

Automate de Mealy

* await S abort loop pause endwhen S

*

*

Page 8: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

8

Un exemple

[ await A|| await B];emit O

Circuit séquentiel

O

B

A

Page 9: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

9

Calcul des états atteignables

• Model CheckingVérification de propriétés(always "Avion au sol" "Train sorti")

• Causalité Constructive (stabilité du circuit)

• Optimisation de code

• Génération de séquences de test

Utilisé pour l'analyse en général

Page 10: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

10

Calcul énumératif

0 101

2

3 4 5

67

8

9

11

1213

14 15

16Peut être très long

(grand nombre d'états)

Page 11: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

11

Des prédicats logiques représentent :

des ensembles (dans un univers fini)

x E ssi fE(x) = 1

des fonctions de transition

y = (x) ssi f(x,y) = 1

Calcul symbolique

Page 12: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

12

R ← INITnew ← Rwhile ( new ≠ ø ) do new ← Image(, new) \ R R ← R newend while

Algorithme :

Calcul symbolique

Nouveaux états à profondeur uniforme

Page 13: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

13

0 1 2

3

5 4

2

2 3

3

3

3 4

4

55

5

Calcul symbolique

Page 14: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

14

• des fonctions booléennes

• ...compactes

• ...de manière canonique

Diagrammes de Décision Binaires (BDDs) permettent de représenter :

Calcul symbolique

Page 15: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

15

Arbre de décisionBDD

si w=0, x=1, y=1, z=0 alors f(w,x,y,z)=1

f

Page 16: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

16

R ← INITnew ← Rwhile ( new ≠ ø ) do R ← R newend while

• Problème : les très gros programmes

Calcul symbolique

new ← Image(, new) \ R

• Solution : ne pas écrire de très gros programme

• BDDs : permettent l'analyse de gros programmes

• Partitionnement suivant les registres

• Réduction de suivant son domaine

2 jeux devariables

: (x',y',z',x,y,z)

x : (x',x,y)y : (y',z) z : (z',y,z)

Page 17: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

17

Cofactoring

Domaine : v = 0

Soit D un domaine :

réduction du BDD de f :

f↑D(x) = f(x) si x Df↑D(x) = si x D

f

Réduction de la fonction de transition selon les nouveaux états

?

n'importequoi

Domaine irrégulier

Réduction moins efficace

Page 18: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

18

Situation actuelle

• Problème : les très très gros programmes

Contribution

• Partitionnement selon la syntaxe

• Utilisation du cofactoring

Exemple de la montre

Page 19: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

19

Exemple : la montre

display

watch

time_setalarm_set

stopwatch

Page 20: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

20

Exemple : la montre

Page 21: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

21

Taille des structures

Solution : Utiliser la syntaxe des programmes

tailledes

BDDs

états atteints

domainesirréguliers

Ensemble vide : 0 Tous les états : 1

Page 22: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

22

QP

Pourquoi la Syntaxe ?

x y z u v

I O

P ; Q

Supports disjoints :P(x,y,z)Q(u,v)

(x,y,z,u,v) →Domaine de P : u=0, v=0Domaine de Q : x=0, y=0, z=0

Page 23: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

23

Exemple : la montre

Page 24: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

24

PlanContexte

Calcul partitionné

Mise en oeuvre

Résultats expérimentauxConclusion

– Esterel– Calcul des états atteignables

– Schéma général– Opérateurs séquentiels– Programmes parallèles– Boucles

– Algorithme partitionné– Graphe de flot de contrôle

Page 25: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

25

Nouvelle frontière2 blocs de programme : P

Q

Nouvelles frontièresNouveaux états

frontières+

cofacteur(nouveaux états)

partitionnement

Frontière

Zone explorée

• On ne fait qu'ouvrir les frontières

Etats enattente

Page 26: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

26

Ouverture des frontières

• Ordre partiel, donné par la syntaxe

• suivant les états en attente

F1 F2

F1 avant F2

Page 27: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

27

Opérateurs séquentiels

P

Q

Sabort Pwhen S;

Q

Page 28: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

28

P1 P2

Q

Spresent S then

P1

else

P2

end;

Q

Opérateurs séquentiels

Page 29: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

29

Constructions parallèles

• Eviter le produit cartésien

– {P1, P2} {Q1, Q2}

• S'appuyer sur les signaux

||

P1 Q1

P2 Q2

Page 30: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

30

Parallélisme et signaux

||

P1 Q1

R1

P2

Q2

Q3 R2

S1

S2

Blocage réception blocage émissions correspondantes

P2

Q3

P1;await S;P2

||Q1;emit S;Q2

Page 31: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

31

• Ouverture unique des frontières

Evite le produit cartésien Peut ne pas être satisfaisant sur

les boucles

Domaine croissant

Page 32: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

32

• Solution : ne pas écrire de très gros programme

Problème des boucles

PQ

Cas du compteur

Page 33: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

33

PlanContexte

Calcul partitionné

Mise en oeuvre

Résultats expérimentauxConclusion

– Esterel– Calcul des états atteignables

– Schéma général– Opérateurs séquentiels– Programmes parallèles– Boucles

– Algorithme partitionné– Graphe de flot de contrôle

Page 34: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

34

Algorithme partitionnéR ← INITpending ← Rwhile ( pending ≠ ø ) do while ( pending active ≠ ø ) do new ← Image(, pending active) \ R pending ← (pending \ active) new R ← R new end while active ← active newAreaend while

Graphe de contrôleRegistres actifs

'active'?

?

Page 35: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

35

pause

pause

loop end||

abort

when S

present T then

else

end

;

Construction du graphe de flot de contrôle

|| pausepausepause pause;

Page 36: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

36

PlanContexte

Calcul partitionné

Mise en oeuvre

Résultats expérimentauxConclusion

– Esterel– Calcul des états atteignables

– Schéma général– Opérateurs séquentiels– Programmes parallèles– Boucles

– Algorithme partitionné– Graphe de flot de contrôle

Page 37: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

37

Expériences

Logiciel : evcl

Mémoire : 1 Go

(limitée à 900 Mo)

Benchmarks : Sélection de gros

programmes standards

Page 38: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

38

Consommation mémoire

défaut partitionné

sequenceur40 359 Ko(3m47s)

17 022 Ko(8m57s)

mmid205 214 Ko(45m59s)

42 368 Ko(19m38s)

Gain en temps : calculs d'image

Page 39: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

39

Taille des BDDs : sequencertailledes

BDDs

états atteints

Page 40: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

40

Taille des BDDs : mmidtailledes

BDDs

états atteints

Page 41: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

41

Programmes coriaces

défaut partitionné

globalopt(1) 343 e+9(2) 583 e+6

705 e+95 543 e+6

2 10

site233 e+6 1 e+6

2 381 e+6 452 e+6

10 450

cabine13 321 534

719 e+6485 e+6

5 e+4 9 e+5

(1) états atteints(2) états analysés

les très gros programmes3

Page 42: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

42

Exploration exhaustive

défaut partitionné

chorusBin17 e+6441 417

136 e+6tous

cdtmica13 e+911 e+9

23 e+9tous

steam 4 e+9397 e+6

42 e+9tous

sat43 e+918 e+9

(6h43m)

36 e+12tous(3h)

Page 43: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

43

Conclusion

Calcul optimisé des états atteignables

•Réception des signaux

•Progression par blocs (macro-états)

Réduction de la mémoire nécessaire

•BDDs intermédiaires plus petits

•Partitionnement de la fonction de transition

•Simplification du calcul de l'image

Page 44: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

44

Perspectives

• Problème des boucles– Refermer les frontières (synchronisations fortes)

• Abstraction de registres– locale à un bloc (macro-état)

• Modifier le partitionnement– taille des zones

• Extension à d'autres langages– SyncCharts– Lustre/Signal (hiérarchies d'horloges)

Page 45: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

45

Questions ?

• Quand est-ce qu'on boit ?

pot à 16h30 à l'INRIA

Page 46: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

46

Partitionnement des boucles

P1

Q2P2

Q1P1

P2 Q2

Q1

Page 47: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

47

The End

Page 48: Calcul des  états atteignables de programmes Esterel partitionné selon la syntaxe

48

ABcd UVxy ABcd UVxy ABcd UVxy ABcd UVxy

ABcd UVxy ABcd UVxy ABcd UVxy ABcd UVxy

ABcd UVxy ABcd UVxy

ABcd UVxy ABcd UVxy

ABcd UVxy ABcd UVxy

ABcd UVxy ABcd UVxy

ABcd UVxy ABcd UVxy

ABcd UVxy ABcd UVxy

ABcd UVxy ABcd UVxy

ABcd UVxy ABcd UVxy

ABcd UVxy ABcd UVxy

ABcd UVxy ABcd UVxy

ABcd UVxy ABcd UVxy

ABcd UVxy ABcd UVxy


Recommended