Title: Exploration implicite et explicite de l
1Exploration implicite et explicitede lespace
détats atteignablesde circuits logiques Esterel
Yannis BRES
Directeur de thèse Gérard BERRY
12 décembre 2002
2Plan
Introduction
Contexte de travail, lapproche réactive
synchrone, Esterel, automates et circuits, calcul
despace détats atteignables, BDDs
I - Approche purement implicite
Un vérificateur formel proposant linputization
ou labstraction de variables
II - Approche énumerative
Un moteur polyvalent pour lexploration de
lespace détats atteignables
Génération dautomates
Vérification formelle
Génération de séquences de tests exhaustives
Conclusion et perspectives
3Lapproche réactive synchrone
Programme réactif
Exécution découpée en réactions (instants), temps
discrétisé
Analyse de lenvironnement puis réaction à cet
environnement
Programme synchrone
Simplification théorique temps de réaction
nul, diffusion instantanée
Large domaine dapplication
Systèmes temps-réel
Contrôle/supervision de processus industriels
Systèmes embarqués
Contrôleurs matériels
Basée sur le modèle sémantique des Machines
dEtats Finis (FSM)
4Esterel
Un langage réactif, synchrone, impératif à
dominance flot de contrôle
Modules/blocs exécutés en parallèle ou en séquence
Modules/blocs peuvent être préemptés, suspendus
et repris
Communication par le biais de signaux
instantanément diffusés (broadcast)
Sémantique formelle
module Synchronize input A, B output O
await A await B emit O end module
5Automates explicites
Représentation pivot des modèles en Esterel v1,
v2, v3 automates
Les automates peuvent être exponentiels
? en temps de construction
? en espace de stockage
module Synchronize input A, B output O
await A await B emit O end module
6Circuits
Représentation pivot des modèles depuis Esterel
v4 circuits logiques
Temps de génération et taille linéaire avec le
code source
7Automates vs. Circuits
Rajoutons un signal C dans le programme précédent
8Automates vs. Circuits
Rajoutons un signal C dans le programme précédent
9Vérification formelle par observateur
module Synchronize input A, B output O
await A await B emit O end module
abort await O emit BUG when A
Observateur exécuté en parallèle du programme à
vérifier
Répondre formellement à la question "BUG
peut-il être émis ?"
Propriétés de sûreté
"quelque chose de mal narrive jamais"
Propriétés de vivacité
"quelque chose de notable arrivera tôt ou tard"
10Calcul despace détats atteignables
Pierre angulaire pour de nombreuses applications
calcul de lespacedétats atteignables(Reachabl
e StateSpace, RSS)
11Calcul despace détats atteignables
Représentation "en oignon", par niveaux de
profondeur
Etat initial
Etat atteignables en 1 tick
Etat atteignables en 2 ticks
Etat atteignables en 3 ticks
Différentes approches du calcul du RSS
approche approche analysedes états analysedes transitions
purement implicite purement implicite BDDs
énumérative implicite
énumérative explicite explicite
12Diagrammes de Décisions Binaires (BDDs)
Ordre des variables constant dans tout larbre
(ici x1 lt y1 lt x2 lt y2)
Nœud de variable (x1, x2, y1, y2)
Chemin "lorsque faux"
Nœud terminal (constante 0 ou 1)
Chemin "lorsque vrai"
x1
(x1 ? y1) ? (x2 ? y2)
y1
y1
x2
x2
x2
x2
y2
y2
y2
y2
y2
y2
y2
y2
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
13Diagrammes de Décisions Binaires (BDDs)
Plusieurs règles de simplification
1)
Suppression des tests inutiles
x1
(x1 ? y1) ? (x2 ? y2)
y1
y1
x2
x2
x2
x2
0
y2
y2
y2
y2
y2
y2
y2
y2
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
14Diagrammes de Décisions Binaires (BDDs)
Plusieurs règles de simplification
1)
Suppression des tests inutiles
2)
Partage des nœuds/arbres isomorphes
x1
(x1 ? y1) ? (x2 ? y2)
y1
y1
x2
x2
0
0
y2
y2
y2
y2
1
0
0
1
1
0
0
1
15Diagrammes de Décisions Binaires (BDDs)
Plusieurs règles de simplification
1)
Suppression des tests inutiles
2)
Partage des nœuds/arbres isomorphes
3)
Marquage des arcs pour partage des nœuds opposés
(non représenté)
x1
(x1 ? y1) ? (x2 ? y2)
y1
y1
x2
x2
x2
x2
y2
y2
y2
y2
y2
y2
y2
y2
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
16Diagrammes de Décisions Binaires (BDDs)
Dans la plupart des cas
Représentation très compacte de fonctions
booléennes
Algorithmes très efficaces pour la manipulations
de fonctions booléennes
Usages
Représentation des fonctions associées aux portes
du circuit
Représentation densembles via leur fonction
caractéristique
Complexités dans le pire des cas en temps et en
espace
, - constante
?, ? quadratique
?, substitutions exponentielle
17Calcul despace détats avec des BDDs
Exponentiellement complexe selon le nombre de
variables impliquées
1 variable de BBD par entrée
Variable intermédiaire doit être ?, napparaît
pas dans les résultats
1 variable de BDD par variable détat (registre)
Variable persistante doit être ?, apparaît
dans les résultats
? Objectif réduire le nombre de variables
détat !
18Plan
Introduction
Contexte de travail, lapproche réactive
synchrone, Esterel, automates et circuits, calcul
despace détats atteignables, BDDs
I - Approche purement implicite
Un vérificateur formel proposant linputization
ou labstraction de variables
II - Approche énumerative
Un moteur polyvalent pour lexploration de
lespace détats atteignables
Génération dautomates
Vérification formelle
Génération de séquences de tests exhaustives
Conclusion et perspectives
19Réduction du nombre de variables
Une technique usuelle de réduction du nombre de
variables détat
Remplacer les variables détats par des entrées
libres (inputization)
Moins de variables à substituer
Tout autant de variables à ?
Notre approche abstraire les variables via une
logique tri-valuée (0,1,d)
Les variables à abstraire sont remplacées par la
constante d (indifférent)
Moins de variables à substituer
Moins de variables à ?
Les variables sont préquantifiées
Logique tri-valuée (0,1,d)
? ?
0 1
1 0
d d
? 0 1 d
0 0 0 0
1 0 1 d
d 0 d d
? 0 1 d
0 0 1 d
1 1 1 1
d d 1 d
v v0 v1
0 1 0
1 0 1
d 0 0
20Inputization et abstraction exemple
input A, B output O await A await B
emit O
inputization
abstraction
21Sur-approximation
Inputization et abstraction relâchent les
contraintes entre les variables
?
Sur-approximation conservative par rapport au RSS
?
Vérif. formelle pas de validations erronées,
réfutations erronées
?
Effet boule de neige
Linputization conserve la corrélation entre les
instances de variables
r ? ?r ? i ? ?i 0
r ? ?r ? i ? ?i 1
-
Labstraction perd la corrélation entre les
instances de variables
r ? ?r ? d ? ?d d
r ? ?r ? d ? ?d d
22Sur-approximation
Inputization et abstraction relâchent les
contraintes entre les variables
?
Sur-approximation, conservative par rapport au RSS
?
Vérif. formelle pas de validations erronées,
réfutations erronées
?
Effet boule de neige
Linputization conserve la corrélation entre les
instances de variables
r ? ?r ? i ? ?i 0
r ? ?r ? i ? ?i 1
-
Labstraction perd la corrélation entre les
instances de variables
r ? ?r ? d ? ?d d
r ? ?r ? d ? ?d d
-
Source supplémentaire de sur-approximation au
sein du calcul despace détats en logique
tri-valuée élargissement densembles
23Larbre de sélection Esterel
await I1 do something await I2 do
something await I3 do something
await I4 do something
1
2
?
3
4
24Notre vérificateur formel evcl
Esterel Verification Command Line
Fonctionnalités principales
Inputization et abstraction de variables
Réduction de la sur-approximation à laide
dinfos structurelles
Boîte blanche (observateurs intégrés) / Boîte
noire (observateurs externes)
Plus de 30 000 lignes de C (et plus de 21 000
lignes de librairie commune)
Experimentations
(Gestion du carburant du Mirage 2000-9, Système
dalarme de lA380)
Labstraction peut-être jusquà 26 fois plus
rapide que linputization
Lorsque la sur-approximation semballe, les
calculs cessent très tôt
? Rien à perdre à tenter !
25Plan
Introduction
Contexte de travail, lapproche réactive
synchrone, Esterel, automates et circuits, calcul
despace détats atteignables, BDDs
I - Approche purement implicite
Un vérificateur formel proposant linputization
ou labstraction de variables
II - Approche énumerative
Un moteur polyvalent pour lexploration de
lespace détats atteignables
Génération dautomates
Vérification formelle
Génération de séquences de tests exhaustives
Conclusion et perspectives
26Calcul despace détats atteignables
Représentation "en oignon", par niveaux de
profondeur
Etat initial
Etat atteignables en 1 tick
Etat atteignables en 2 ticks
Etat atteignables en 3 ticks
Différentes approches du calcul du RSS
approche approche analysedes états analysedes transitions
purement implicite purement implicite BDDs
énumérative implicite
énumérative explicite explicite
27Calcul despace détats par énumération
Un moteur polyvalent pour lexploration de
lespace détats atteignables
Génération dautomates
Vérification formelle
Génération de séquences de test
Etats analysés individuellement par propagation
de données dans le circuit
Approche pure explicite
Transition analysées par branchements récursifs
sur les entrées
Approche hybride implicite/explicite
Transitions analysées par propagation de BDDs
Support transparent des circuits cycliques
(constructifs)
Plusieurs heuristiques visant à éviter
lexplosion en temps ou en espace
? très bonnes performances
Plus de 18 000 lignes de C (et plus de 21 000
lignes de librairie commune)
28Génération dautomates
Représentation pivot des modèles en Esterel v1,
v2, v3 automates
Risque dexplosion à la fois en temps et en taille
Représentation pivot des modèles depuis Esterel
v4 circuits logiques
Pratiquement linéaires avec la taille du code
Génération dautomates négligée depuis la v4
Générateur v4 très peu performant
Uniquement à partir de circuits acycliques
Toutefois, les avantages des automates demeurent !
Implémentation généralement très efficace
Maximum de flot de contrôle calculé lors de la
compilation
Seules les expressions dépendant des données
restent à évaluer
Les automates rendent explicites de nombreuses
infos sur les modèles
29Génération dautomates
Comment générer un automate ?
Approche énumerative pratiquement inévitable
(pour le respect de la causalité des actions)
Approche purement explicite préférable à
lapproche hybride
(trop de cofactorisations de BDDs nécessaires)
Notre génerateur dautomates, scoc
Largement plus performant que le générateur v4
Intégré au compilateur Esterel depuis la v5_91
Désormais commercialisé par Esterel Technologies
30Application à la vérification formelle
Approche purement implicite inévitable pour la
grande majorité des modèles
Approche purement implicite
Comportement très peu prévisible, risque
dexplosion
Uniquement appliquable aux circuits acycliques
Très sensible aux registres redondants
Approche énumérative
Comportement généralement très régulier
Support transparent des circuits cycliques
Insensible aux registres redondants ou à la
profondeur du modèle
Généralement beaucoup plus lent, uniquement
utilisable sur cas précis
Modèles profonds (SAT ? ?)
Modèles à forts taux de registres redondants
(BDDs ? ?)
31Vérification formelle expérimentations
Banc de test purement linéaire (profondeur 243
états 243)
SAT (Prover) approcheimplicite pure approcheexplicite pure approcheimplicite / explicite
rien après gt3h 39mn 1.6s 1.8s
lt 40 Mo 8.5 Mo conso. mémoire insignifiante conso. mémoire insignifiante
Bus de données de Texas Instruments (profondeur
181 états 652 948)
SAT (Prover) approcheimplicite pure approcheexplicite pure approcheimplicite / explicite
rien aprèsplusieurs heures 17mn ? ? (profondeur 9) 2h 33mn 3h 09mn
??? 2 Go 104 Mo 110 Mo
32Génération de séquences de tests exhaustives
Modèle sémantique des machines détats finis
? génération de séquences de tests exhaustives
possible
Différents objectifs de couverture
Couverture des états
Couverture des chemins menant à lémission de
certains signaux
Couverture de transitions
33Génération de séquences de tests exhaustives
Approche Esterel Technologies implicite pure
Calcul de RSS standard (sauf couverture de
transitions)
Transitions construites par calculs dimages
inverses
Mise à jour des données de couverture ? mise à
jour de BDDs
Réelle couverture de transition non implémentée
Seulement couverture de paire détats connectés
Doublement des variables détats
Approche énumérative plus adaptée et insensible à
lobjectif de couverture
34Couverture détats Expérimentations
modèle états approche implicite approche implicite approche hybrideimplicite / explicite approche hybrideimplicite / explicite ratio
modèle états séqu. temps séqu. temps ratio
NDA 10 4 0.10 4 0.03 ? 3.5
Arbiter12 13 cyclique cyclique 1 0.03
NDA 21 8 0.09 8 0.03 ? 3.5
Wristwatch 41 16 1.39 16 0.09 ? 16
NDA 65 63 0.74 63 0.07 ? 11
ATDS-100-C2 81 35 3.58 37 0.10 ? 36
Renault 161 99 13.57 105 0.35 ? 39
Testbench 243 tué après gtgt1h tué après gtgt1h 1 3.16
TCINT 310 140 33.36 140 0.39 ? 86
NDA 535 307 35.57 308 0.47 ? 76
NDA 875 462 16.57 489 0.43 ? 39
35Conclusion
Un outil de vérification formelle basée sur une
approche purement implicite
Remplacement de variables par des entrées libres
Abstraction de variables à laide dune logique
tri-valuée
Réduction de la sur-approximation à laide
dinformations structurelles
Vérification en boîte blanche ou noire
Un moteur dexploration de lespace détats
atteignables
Analyse énumérative des états
Analyse explicite ou implicite des transitions
Polyvalent
Génération dautomates explicites
Vérification formelle
Génération de séquences de tests exhaustives
36Perspectives
Approche implicite
Automatiser la sélection des variables à
inputizer/abstraire
Heuristiques de pondération des variables de
Quer/Cabodi et al. ?
En cas de sur-approximation excessive, raffiner
labstraction
Analyse des contre-exemples de Clarke/Grumberg et
al.
Combiner abstraction de variables et
décomposition du calcul du RSS
Approches de Cho/Govidaraju et al.
Approche énumérative
Compacter la table des états connus
Bitstate hashing de Holzmann, hash compaction de
Stern/Dill et al.
Prioritization de lanalyse des états (bug
chasing)
Yang/Dill et al.