Calcul des - PowerPoint PPT Presentation

About This Presentation
Title:

Calcul des

Description:

present S then P else Q end. signal S in P end. P ; Q. loop P end. abort P when S. P || Q. 6 ... Situation actuelle. Probl me : les tr s tr s gros programmes ... – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 49
Provided by: SEM79
Category:
Tags: actuelle | calcul | des

less

Transcript and Presenter's Notes

Title: Calcul des


1
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
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

3
Plan
Contexte
  • Esterel
  • Calcul des états atteignables

Calcul partitionné
  • Schéma général
  • Opérateurs séquentiels
  • Programmes parallèles
  • Boucles

Mise en oeuvre
  • Algorithme partitionné
  • Graphe de flot de contrôle

Résultats expérimentaux
Conclusion
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

5
Syntaxe de ?Esterel
pause 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
6
Sémantique formelle
  • Sémantique Opérationnelle Structurelle

E/E'
E/F'
p
q
q'
ø
E / E' ?F'
p q
q'
  • Espace d'états fini
  • Machines de Mealy (automate)
  • Sémantique dénotationnelle
  • Circuits séquentiels (états implicites)

7
Un exemple
await A await B emit O

AB
AB

AB/O
B/O
A/O
await S ? abort loop pause end when S
Automate de Mealy
8
Un exemple
await A await B emit O
O
A
B
Circuit séquentiel
9
Calcul des états atteignables
Utilisé pour l'analyse en général
  • Model Checking
  • Vé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

10
Calcul énumératif
9
12
13
0
10
1
8
11
16
Peut être très long (grand nombre d'états)
2
6
7
14
15
3
4
5
11
Calcul symbolique
  • 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

12
Calcul symbolique
Algorithme
R ? INIT new ? R while ( new ? ø ) do new ?
Image(?, new) \ R R ? R ? new end while
Nouveaux états à profondeur uniforme
13
Calcul symbolique
3
2
3
0
1
2
5
4
3
2
3
4
5
5
3
4
5
14
Calcul symbolique
Diagrammes de Décision Binaires (BDDs) permettent
de représenter
  • des fonctions booléennes
  • ...compactes
  • ...de manière canonique

15
Arbre de décision
BDD
f
si w0, x1, y1, z0 alors f(w,x,y,z)1
16
Calcul symbolique
  • Problème les très gros programmes
  • BDDs permettent l'analyse de gros programmes

? ?(x',y',z',x,y,z) ? ?x ?(x',x,y) ?y
?(y',z) ?z ?(z',y,z)
R ? INIT new ? R while ( new ? ø ) do
R ? R ? new end while
2 jeux de variables
new ? Image(?, new) \ R
  • Partitionnement suivant les registres
  • Réduction de ? suivant son domaine
  • Solution ne pas écrire de très gros programme

17
Cofactoring
f
Soit D un domaine réduction du BDD de f
f?D(x) f(x) si x ? D f?D(x) si x ? D
?
n'importe quoi
Domaine v 0
Domaine irrégulier ? Réduction moins efficace
Réduction de la fonction de transition selon les
nouveaux états
18
Situation actuelle
  • Problème les très très gros programmes

Contribution
  • Partitionnement selon la syntaxe
  • Utilisation du cofactoring
  • Exemple de la montre

19
Exemple la montre
watch
stopwatch
display
time_set
alarm_set
20
Exemple la montre
21
Taille des structures
taille des BDDs
domaines irréguliers
états atteints
  • Solution Utiliser la syntaxe des programmes

Ensemble vide 0 Tous les états 1
22
Pourquoi la Syntaxe ?
P Q
P
I
Q
O
x
y
z
u
v
?P(x,y,z) ?Q(u,v)
Domaine de P u0, v0 Domaine de Q x0,
y0, z0
?(x,y,z,u,v) ?
Supports disjoints
23
Exemple la montre
24
Plan
Contexte
  • Esterel
  • Calcul des états atteignables

Calcul partitionné
  • Schéma général
  • Opérateurs séquentiels
  • Programmes parallèles
  • Boucles

Mise en oeuvre
  • Algorithme partitionné
  • Graphe de flot de contrôle

Résultats expérimentaux
Conclusion
25
Nouvelles frontièresNouveaux états
Nouvelle frontière
Frontière
frontières cofacteur (nouveaux
états) ? partitionnement
2 blocs de programme
P
Zone explorée
Etats en attente
  • On ne fait qu'ouvrir les frontières

Q
26
Ouverture des frontières
  • Ordre partiel, donné par la syntaxe
  • suivant les états en attente

F1 avant F2
F1
F2
27
Opérateurs séquentiels
P
abort P when S Q
S
Q
28
Opérateurs séquentiels
S
present S then P1 else P2 end Q
P1
P2
Q
29
Constructions parallèles
  • Eviter le produit cartésien
  • P1, P2 ? Q1, Q2
  • S'appuyer sur les signaux


P1
Q1
P2
Q2
30
Parallélisme et signaux

P1
Q1
R1
S1
P1 await S P2
Q1 emit S Q2

P2
Q2
P2
S2
Q3
R2
Q3
Blocage réception ? blocage émissions
correspondantes
31
Domaine croissant
  • Ouverture unique des frontières
  • Evite le produit cartésien
  • Peut ne pas être satisfaisant sur les boucles

32
Problème des boucles
P
  • Solution ne pas écrire de très gros programme

Q
Cas du compteur
33
Plan
Contexte
  • Esterel
  • Calcul des états atteignables

Calcul partitionné
  • Schéma général
  • Opérateurs séquentiels
  • Programmes parallèles
  • Boucles

Mise en oeuvre
  • Algorithme partitionné
  • Graphe de flot de contrôle

Résultats expérimentaux
Conclusion
34
Algorithme partitionné
R ? INIT pending ? R while ( pending ? ø ) do
while ( pending ? active ? ø ) do
new ? Image(?, pending ? active) \ R
pending ? (pending \ active) ? new R
? R ? new end while active ? active ?
newArea end while
?
Graphe de contrôle
?
Registres actifs
'active'
35
Construction du graphe de flot de contrôle
abort
pause
loop
end
present T then

pause
pause
pause
pause



when S
else
pause
end
36
Plan
Contexte
  • Esterel
  • Calcul des états atteignables

Calcul partitionné
  • Schéma général
  • Opérateurs séquentiels
  • Programmes parallèles
  • Boucles

Mise en oeuvre
  • Algorithme partitionné
  • Graphe de flot de contrôle

Résultats expérimentaux
Conclusion
37
Expériences
Logiciel evcl Mémoire 1 Go (limitée à 900
Mo) Benchmarks Sélection de gros programmes
standards
38
Consommation mémoire
défaut partitionné
sequenceur 40 359 Ko (3m47s) 17 022 Ko (8m57s)
mmid 205 214 Ko (45m59s) 42 368 Ko (19m38s)
Gain en temps calculs d'image
39
Taille des BDDs sequencer
taille des BDDs
états atteints
40
Taille des BDDs mmid
taille des BDDs
états atteints
41
Programmes coriaces
3
les très gros programmes
défaut partitionné
globalopt (1) 343 e9 (2) 583 e6 705 e9 5 543 e6 ? 2 ? 10
site 233 e6 1 e6 2 381 e6 452 e6 ? 10 ? 450
cabine 13 321 534 719 e6 485 e6 ? 5 e4 ? 9 e5
  • (1) états atteints
  • (2) états analysés

42
Exploration exhaustive
défaut partitionné
chorusBin 17 e6 441 417 136 e6 tous
cdtmica 13 e9 11 e9 23 e9 tous
steam 4 e9 397 e6 42 e9 tous
sat 43 e9 18 e9 (6h43m) 36 e12 tous (3h)
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

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)

45
Questions ?
  • Quand est-ce qu'on boit ?
  • pot à 16h30 à l'INRIA

46
Partitionnement des boucles
P1
Q1
P1
Q1
Q2
P2
P2
Q2
47
The End
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
Write a Comment
User Comments (0)
About PowerShow.com