Mthodes de simulation logicielle pour Esterel - PowerPoint PPT Presentation

1 / 54
About This Presentation
Title:

Mthodes de simulation logicielle pour Esterel

Description:

1988 G. Gonthier, better SOS rules, state encoding, simulateur v3, ... quand la file d'ex cution est vide on appelle des fonctions de potentiel qui d bloquent des threads. Le ... – PowerPoint PPT presentation

Number of Views:106
Avg rating:3.0/5.0
Slides: 55
Provided by: dumitrupot
Category:

less

Transcript and Presenter's Notes

Title: Mthodes de simulation logicielle pour Esterel


1
Méthodes de simulation logicielle pour Esterel
  • Dumitru Potop-Butucaru

2
Sommaire
  • Généralités
  • Le simulateur Esterel v3 et le format LC
  • Lapproche CNET
  • Le compilateur Synopsis
  • Une nouvelle approche (la mienne)

3
Historique
  • 1984 L. Cosserat, first SOS rules, simulateur
    v2
  • 1988 G. Gonthier, better SOS rules, state
    encoding, simulateur v3, format LC
  • 1991 G. Berry, compilation en circuits
  • 1995 sémantique constructive
  • 1999 Le compilateur Synopsys
    méthodes classiques de compilation (S. Edwards)
  • 1999 Le compilateur CNET simplification
    statique de la sémantique v3 (V. Bertin, E.
    Closse, D. Weil, etc.)
  • 2002 J. Potop combinaison de techniques en
    circuits et de méthodes classiques de compilation

4
Généralités
  • Langages séquentiels traditionnels(e.g. C)
  • flot dexécution, compteur de programme
  • Parallélisme et synchronisation
  • plusieurs threads dexécution
  • points dattente, ordonnancement
  • Synchronie
  • réaction à labsence (décision de déblocage par
    analyse du code pas encore exécuté)

5
Généralités
  • Parallélisme et synchronisation
  • ordonnancement
  • dynamique
  • statique
  • notion de programme acyclique
  • limite la classe de programmes corrects
  • Synchronie
  • comment décider labsence dun signal?
  • dynamiquement fonctions de potentiel appelées a
    lexécution
  • statiquement acyclicité gt pas besoin de
    fonctions de potentiel

6
Généralités
  • Sémantique dEsterel
  • règles SOS
  • fonctions de potentiel pour déterminer labsence
    dun signal
  • Versions
  • v3 fonctions de potentiel simples
  • v5 sémantique naturelle en circuits,
    propagation dinformations dans du code
    pas encore exécuté

7
Solutions implémentées
  • Simulateur Esterel v3
  • ordonnancement dynamique, avec files
  • fonctions de potentiel
  • Nouvelles approches
  • ordonnancement statique
  • code acyclique
  • réincarnation
  • pas de calculs dynamiques de potentiels

8
Le simulateur Esterel v3
  • Ordonnancement dynamique utilisant 2 files
  • file de threads bloqués attendent la
    stabilisation dun signal
  • file de threads non-bloqués qui attendent dêtre
    exécutés
  • quand la file dexécution est vide on appelle des
    fonctions de potentiel qui débloquent des threads.

9
Le simulateur Esterel v3
  • Format intermédiaire pour accélérer la
    simulation IC/LC
  • ICintermediate code
  • LCfully linked IC

10
Le format IC syntaxe
  • Elements de structure
  • les points darrêt
  • la hiérarchisation des points darrêt (arbre de
    reconstruction)
  • Le graphe de flot de contrôle, greffé sur larbre
    de reconstruction

11
Le format IC exemple 1
module ex input S output O abort pause
emit O pause when S end module
RETURN
start
WATCH DOG
S
T
F
0 Return 0 1 Pause (2) lt4gt 1 2 Emit 1
(3) 3 Pause (0) lt4gt 2 4 Watchdog 5 lt0gt 5
Present 0 (0,4)
O
PAUSE
PAUSE
12
Le format IC exemple 2
module ex2 output O1,O2,O3 signal S in emit
O1 present S then emit O2 end pause
emit S pause end signal emit O3 end module
13
Le format IC exemple 3
RETURN
start
module ex3 output O loop trap T in
pause exit T loop
emit O pause end loop end
trap end loop end module
PARALLEL
FORK
T
O
PAUSE
PAUSE
14
Le format IC exemple 4
start
RETURN
module ex4 output O loop signal S in
present S then emit O end pause emit
S end signal end loop end module
reset S
S
F
T
O
S
PAUSE
15
Le compilateur CNET
  • Identifie les points dattente ou des threads
    peuvent être bloqués (instructions pause et
    tests).
  • Ordonne statiquement les points dattente
  • Exécution parcours de la liste des points
    dattente
  • Problème caractériser les programmes acceptés
    par le compilateur

16
CNET format intermediaire specifique
module ex input S abort pause emit O
pause when S end module
17
CNET format intermediaire specifique
ROOT
PauseOn
PauseOn
PauseOff
?S
-PauseOn
off
off
PauseOn
on
nothing
nothing
emit O
18
CNET ordonnancement statique
ROOT
PauseOn
ROOT
PauseOn
PauseOff
PauseOn
PauseOn
PauseOff
?S
-PauseOn
?S
-PauseOn
off
on
nothing
off
off
emit O
off
PauseOn
PauseOn
on
nothing
nothing
nothing
emit O
19
CNET interleaving encodage de parallel
module ex2 output O1,O2,O3 signal S in emit
O1 present S then emit O2 end pause
emit S pause end signal emit O3 end module
20
CNET interleaving encodage de parallel
ROOT
emit O3
on
on
count2
count0
on
on
on
on
emit O1
emit S
on
POn
count--
count--
?S
on
on
on
-POn
emit O2
POn
nothing
nothing
21
CNET interleaving encodage de parallel
emit O1
ROOT
emit O3
on
on
on
on
on
on
ROOT
count2
count2
count0
emit S
POn
on
on
on
on
on
emit O1
emit S
?S
emit O2
on
-POn
POn
POn
count--
count--
?S
on
nothing
count--
on
on
on
-POn
on
on
emit O2
nothing
count--
POn
on
on
nothing
nothing
count0
emit O3
22
CNET réincarnation
module ex3 output O loop trap T in
pause exit T loop
emit O pause end loop end
trap end loop end module
RETURN
start
PARALLEL
FORK
T
O
PAUSE
PAUSE
23
CNET réincarnation
ROOT
RETURN
start
on
on
exit0
exit2
on
on
PARALLEL
FORK
exit2
emit O
POn
T
on
POn
O
nothing
nothing
on
PAUSE
PAUSE
24
CNET réincarnation
ROOT
RETURN
start
on
on
exit0
exit2
on
on
PARALLEL
FORK
exit2
emit O
POn
T
on
POn
O
nothing
nothing
on
PAUSE
PAUSE
25
CNET réincarnation
ROOT
ROOT
on
on
on
on
exit0
exit2
exit0
exit2
on
on
on
on
exit2
emit O
POn
exit2
emit O
POn
POn
on
POn
nothing
nothing
on
nothing
nothing
on
on
POn
emit O
26
CNET réincarnation
ROOT
on
ROOT
on
on
exit0
exit2
on
nothing
exit2
on
on
POn
on
on
nothing
exit2
emit O
POn
emit O
POn
on
exit2
POn
POn
nothing
nothing
on
exit0
emit O
on
on
POn
emit O
27
CNET signal local
module ex4 output O loop signal S in
present S then emit O end pause emit
S end signal end loop end module
28
CNET signal local
ROOT
on
reset S
on
?S
-POn
on
emit O
on
POn
nothing
on
emit S
29
CNET signal local
ROOT
ROOT
on
on
reset S
on
nothing
emit S
on
on
?S
-POn
on
reset S
emit O
POn
on
on
POn
-POn
nothing
?S
emit O
on
on
emit S
30
Le compilateur CNET
  • Optimisations du graphe effacement darcs et de
    nuds
  • Encodage détat pas optimisé par rapport a LC
    en général très redondant
  • Parcours linéaire des points dattente a chaque
    instant
  • Réencodage bas-niveau des traps qui restreint la
    classe de programmes représentables

31
Le compilateur Synopsys
  • Exploite la hiérarchie du programme avec des
    algorithmes dordonnancement statique classiques
  • Génère un code bien structuré basé sur de la
    propagation de contrôle structures de données
    distribuées localement dans le corps du
    programme.
  • Représentation intermédiaire hiérarchique graphe
    de flot de contrôle concurrent (CCFG), avec
    encodage détat implicite
  • Problème caractériser les programmes acceptés
    par le compilateur

32
Le compilateur Synopsys
  • Thread composante séquentielle a un niveau
    donne du CCFG
  • Chaque thread a 2 entrées de contrôle (start et
    resume) et une sortie de contrôle
  • Chaque thread a une variable qui définit létat
    local courant et une variable dans laquelle on
    calcule létat pour linstant suivant

33
Le compilateur Synopsys
  • Exemple 1- un seul thread

start
resume
inactive
T
S
P1
P1
P2
O
0
P2
34
Le compilateur Synopsys
  • Exemple 1- Greedy scheduling

start
resume
state_nextinactive if(start) state_nextP1
if(resume) if(state!0) if(!S)
switch(state) case P1
O1 state_next P2
break case P2 break
inactive
T
S
P1
P1
P2
O
0
P2
35
Le compilateur Synopsys
  • Exemple 2- parallélisme, 3 threads

O1
S
F
S
0
0
O2
P2
P1
0
1
O3
36
Le compilateur Synopsys
  • Exemple 2- Ordonnancement Greedy après édition de
    liens

O1
S
F
S
0
0
O2
P2
P1
0
1
O3
37
Le compilateur Synopsys
  • Exemple 3 (réincarnation)

RETURN
module ex3 output O loop trap T in
pause exit T loop
emit O pause end loop end
trap end loop end module
start
PARALLEL
FORK
T
O
PAUSE
PAUSE
38
Le compilateur Synopsys
  • Exemple 3 (réincarnation)

RETURN
start
PARALLEL
FORK
P1
2
O
T
O
P2
PAUSE
PAUSE
2
1
39
Le compilateur Synopsys
  • Exemple 3 (réincarnation)

P1
2
O
P2
P1
2
O
2
P2
1
O
P1
2
P2
1
40
Le compilateur Synopsys
  • Encodage performant (état et contrôle)
  • Structure figée, optimisations difficiles

41
Nouvelle technique
  • Nouveau format intermédiaire GRC
  • proche du circuit pour la modélisation du flot de
    contrôle (sémantique constructive)
  • optimisations a ce niveau (similaire au
    compilateur CNET)
  • proche du compilateur Synopsys pour la
    représentation de létat
  • Traduction GRC-C mixte planification
    statique/simulation constructive

42
Le format GRC LC simplifié
  • Représentation de létat
  • arbre de sélection LC, séparé du flot de contrôle
  • Flot de contrôle
  • expansion des nuds LC en opérations instantanées
    (fork, test, switch, synchronize, appel daction)
  • sémantique constructive
  • réincarnation

43
Le format GRC
  • Arbre de sélection

0
ROOT
start

1
2
boot

WATCH DOG
3
4
S
T
F
O
PAUSE
PAUSE
44
Le format GRC
  • Flot de contrôle

exit 1
enter 2
enter 3
1
exit 2
exit 0
(0)
T
S
exit 4
2
4
F
(2)
3
exit 3
emit O
enter 4
45
Génération de code
  • Encodage détat hiérarchique, bitwise

bit 0 vie du programme (0gtprogramme
terminé) bit 1 choix entre premier instant(0) et
les autres(1), si bit01 bit 2 choix
entre les instructions pause, si bit11

0
1
boot

0
1
state110 gt programme actif,
pas premier instant,
première pause active state100 gt état
initial, premier instant
dexécution
46
Génération de code
  • Encodage détat (exemple fictif)

bit 0 vie du programme (0gtprogramme
terminé) bit 1 choix entre premier instant(0) et
les autres(1), si bit01 bit 2 et 3
choix entre les instructions pause, si bit11

0
1
boot

00
10
01
state1101 gt programme actif,
pas premier instant,
deuxième pause active state1000 gt état
initial, premier instant
dexécution
47
Génération de code
  • Encodage détat, conséquences

state110
exit 1
enter 2
enter 3
0
1
bit1
state000
T
exit 2
exit 0
(0)
T
S
S
exit 4
1
1
2
4
F
bit2
F
(2)
0
3
state111
emit O
exit 3
enter 4
emit O
48
Génération de code
  • Ordonnancement

if(state010b) bool auxfalse if(S)
auxtrue else if(state001b)
auxtrue else
O_emit() state111b
if(aux) state000b else
state110b
state110
0
bit1
state000
T
S
1
1
F
bit2
0
state111
emit O
49
Second exemple
0

1
2
boot

3
4
50
Second exemple
0

1
2
boot

3
4
51
Le format GRC
  • Sémantique des nuds circuits constructifs
  • Traitement de programmes cycliques causaux par
    simulation constructive du circuit correspondant
    au cycle

F
GO
F
present(S)
GO
T
S
S
T
52
Le format GRC
  • Types de nuds

K00
(n)

Tick
Ki0
INACTIVE0
K0
Sync


Ki
K0n

GO
routine
Kin
Call
INACTIVEn
F
expr
n1
Test
GO
n2
(n)
Switch

nk
SIG
T
53
Le format GRC
  • Optimisations effacement darcs et de nuds
  • constructive sweep
  • analyse statique sur la representation de letat
  • Encodage performant détat et du contrôle

54
Implémentation
  • Déjà fait
  • génération et optimisations de spécifications GRC
  • générateur de code C pour spécifications
    acycliques très simples
  • En chantier
  • Nouvelles optimisations du format intermédiaire
  • Un meilleur générateur de code en cas acyclique
  • Lextension par simulation constructive aux
    spécifications cycliques
Write a Comment
User Comments (0)
About PowerShow.com