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 Exploration implicite et explicite de lespace détats atteignables de circuits logiques Esterel 12 décembre 2002 Yannis BRES Directeur de thèse : Gérard.

Présentations similaires


Présentation au sujet: "1 Exploration implicite et explicite de lespace détats atteignables de circuits logiques Esterel 12 décembre 2002 Yannis BRES Directeur de thèse : Gérard."— Transcription de la présentation:

1 1 Exploration implicite et explicite de lespace détats atteignables de circuits logiques Esterel 12 décembre 2002 Yannis BRES Directeur de thèse : Gérard BERRY

2 2 Plan 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

3 3 Lapproche réactive synchrone Basée sur le modèle sémantique des Machines dEtats Finis (FSM) Programme réactif : Exécution découpée en réactions (instants), temps discrétisé Programme synchrone : Simplification théorique : temps de réaction nul, diffusion instantanée Analyse de lenvironnement puis réaction à cet environnement Large domaine dapplication : Systèmes temps-réel Contrôle/supervision de processus industriels Systèmes embarqués Contrôleurs matériels …

4 4 Esterel 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 : inputA, B; outputO; [ await A || await B ] ; emit O end module

5 5 Automates explicites Représentation pivot des modèles en Esterel v1, v2, v3 : automates module Synchronize : inputA, B; outputO; [ await A || await B ] ; emit O end module Les automates peuvent être exponentiels : en temps de construction en espace de stockage

6 6 Circuits Représentation pivot des modèles depuis Esterel v4 : circuits logiques Temps de génération et taille linéaire avec le code source

7 7 Automates vs. Circuits Rajoutons un signal C dans le programme précédent…

8 8 Automates vs. Circuits Rajoutons un signal C dans le programme précédent…

9 9 Vérification formelle par observateur module Synchronize : inputA, B; outputO; [ 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 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" Répondre formellement à la question : " BUG peut-il être émis ?"

10 10 Calcul despace détats atteignables calcul de lespace détats atteignables (Reachable State Space, RSS) Pierre angulaire pour de nombreuses applications : génération dautomates génération de séquences de tests exhaustives vérification formelle vérification déquivalence de machines

11 11 Calcul despace détats atteignables approche analyse des états analyse des transitions purement implicite BDDs énumérative implicite explicite Différentes approches du calcul du RSS : 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 …

12 12 Diagrammes de Décisions Binaires (BDDs) Ordre des variables constant dans tout larbre (ici : x 1 < y 1 < x 2 < y 2 ) Nœud de variable (x 1, x 2, y 1, y 2 ) Nœud terminal (constante 0 ou 1) Chemin "lorsque faux" Chemin "lorsque vrai" x1x1 y1y1 y1y1 x2x2 x2x2 x2x2 x2x2 y2y2 y2y2 y2y2 y2y2 y2y2 y2y2 y2y2 y2y2 1001000000001001 (x 1 y 1 ) (x 2 y 2 )

13 13 Diagrammes de Décisions Binaires (BDDs) Plusieurs règles de simplification : x1x1 y1y1 y1y1 x2x2 x2x2 x2x2 x2x2 y2y2 y2y2 y2y2 y2y2 y2y2 y2y2 y2y2 y2y2 1001000000001001 1) 0 Suppression des tests inutiles (x 1 y 1 ) (x 2 y 2 )

14 14 Diagrammes de Décisions Binaires (BDDs) Plusieurs règles de simplification : x1x1 y1y1 y1y1 x2x2 x2x2 y2y2 y2y2 y2y2 y2y2 1001 0 1001 1) 0 2) Suppression des tests inutiles Partage des nœuds/arbres isomorphes (x 1 y 1 ) (x 2 y 2 )

15 15 Diagrammes de Décisions Binaires (BDDs) Plusieurs règles de simplification : 1) 2) 3) x2x2 x2x2 x2x2 y2y2 y2y2 y2y2 y2y2 y2y2 y2y2 10010000000001 x1x1 y1y1 y1y1 x2x2 y2y2 y2y2 10 Suppression des tests inutiles Partage des nœuds/arbres isomorphes Marquage des arcs pour partage des nœuds opposés (non représenté) (x 1 y 1 ) (x 2 y 2 )

16 16 Diagrammes de Décisions Binaires (BDDs) Complexités dans le pire des cas en temps et en espace : Dans la plupart des cas : Algorithmes très efficaces pour la manipulations de fonctions booléennes Représentation très compacte de fonctions booléennes Représentation densembles via leur fonction caractéristique Représentation des fonctions associées aux portes du circuit Usages : =, -constante, quadratique, substitutions exponentielle

17 17 Calcul 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) Objectif : réduire le nombre de variables détat ! Variable persistante : doit être, apparaît dans les résultats

18 18 Plan 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

19 19 Ré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 à Logique tri-valuée (0,1,d) : 01 10 dd 01d 0000 101d d0dd 01d 001d 1111 dd1d vv0v0 v1v1 010 101 d00 + + + = Les variables sont préquantifiées

20 20 Inputization et abstraction : exemple inputA, B; outputO; [ await A || await B ] ; emit O inputizationabstraction

21 21 Sur-approximation Inputization et abstraction relâchent les contraintes entre les variables Sur-approximation conservative par rapport au RSS Effet boule de neige Linputization conserve la corrélation entre les instances de variables r r i i = 0r r i i = 1 Labstraction perd la corrélation entre les instances de variables r r d d = d Vérif. formelle : pas de validations erronées, réfutations erronées + -

22 22 Sur-approximation Inputization et abstraction relâchent les contraintes entre les variables Sur-approximation, conservative par rapport au RSS Effet boule de neige Linputization conserve la corrélation entre les instances de variables r r i i = 0r r i i = 1 Labstraction perd la corrélation entre les instances de variables r r d d = d Vérif. formelle : pas de validations erronées, réfutations erronées Source supplémentaire de sur-approximation au sein du calcul despace détats en logique tri-valuée : élargissement densembles + - - En pratique, si la sur-approximation semballe, des réfutations erronées surviennent très rapidement et les calculs cessent +

23 23 Larbre de sélection Esterel [ await I1 ; do something ; await I2 ; do something || await I3 ; do something ] ; await I4 ; do something 1 2 3 4 # # Permet de réduire la sur-approximation de deux manières : Renforcement des relations entre entrées pour les variables inputizées Borne supérieure de lespace détats atteignables

24 24 Notre vérificateur formel : evcl Esterel Verification Command Line Fonctionnalités principales : 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) Inputization et abstraction de variables 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 !

25 25 Plan 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

26 26 Calcul despace détats atteignables approche analyse des états analyse des transitions purement implicite BDDs énumérative implicite explicite Différentes approches du calcul du RSS : 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 …

27 27 Calcul despace détats par énumération Un moteur polyvalent pour lexploration de lespace détats atteignables : 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 Génération dautomates 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) Vérification formelle Génération de séquences de test

28 28 Génération dautomates Risque dexplosion à la fois en temps et en taille Maximum de flot de contrôle calculé lors de la compilation Implémentation généralement très efficace Seules les expressions dépendant des données restent à évaluer Représentation pivot des modèles en Esterel v1, v2, v3 : automates Représentation pivot des modèles depuis Esterel v4 : circuits logiques Génération dautomates négligée depuis la v4 : Générateur v4 très peu performant Les automates rendent explicites de nombreuses infos sur les modèles Pratiquement linéaires avec la taille du code Toutefois, les avantages des automates demeurent ! Uniquement à partir de circuits acycliques …

29 29 Génération dautomates Approche énumerative pratiquement inévitable Approche purement explicite préférable à lapproche hybride Comment générer un automate ? Notre génerateur dautomates, scoc : Largement plus performant que le générateur v4 Intégré au compilateur Esterel depuis la v5_91 (trop de cofactorisations de BDDs nécessaires) (pour le respect de la causalité des actions) Désormais commercialisé par Esterel Technologies

30 30 Application à 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 )

31 31 Vérification formelle – expérimentations Banc de test purement linéaire (profondeur : 243 ; états : 243) Bus de données de Texas Instruments (profondeur : 181 ; états : 652 948) SAT (Prover) approche implicite pure approche explicite pure approche implicite / explicite rien après >3h39mn1.6s1.8s < 40 Mo8.5 Moconso. mémoire insignifiante SAT (Prover) approche implicite pure approche explicite pure approche implicite / explicite rien après plusieurs heures 17mn : (profondeur 9) 2h 33mn3h 09mn ???2 Go104 Mo110 Mo

32 32 Génération de séquences de tests exhaustives Modèle sémantique des machines détats finis Différents objectifs de couverture : Couverture des états Couverture des chemins menant à lémission de certains signaux Couverture de transitions … génération de séquences de tests exhaustives possible

33 33 Gé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 Approche énumérative plus adaptée et insensible à lobjectif de couverture Doublement des variables détats

34 34 Couverture détats – Expérimentations modèleétats approche implicite approche hybride implicite / explicite ratio # séqu.temps# séqu.temps NDA1040.1040.03 3.5 Arbiter1213cyclique10.03 NDA2180.0980.03 3.5 Wristwatch41161.39160.09 16 NDA65630.74630.07 11 ATDS-100-C281353.58370.10 36 Renault1619913.571050.35 39 Testbench243tué après >>1h13.16 TCINT31014033.361400.39 86 NDA53530735.573080.47 76 NDA87546216.574890.43 39

35 35 Conclusion Un outil de vérification formelle basée sur une approche purement implicite Un moteur dexploration de lespace détats atteignables Génération dautomates explicites Vérification formelle 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 … Analyse énumérative des états Génération de séquences de tests exhaustives Analyse explicite ou implicite des transitions Polyvalent :

36 36 Perspectives Approche implicite : Heuristiques de pondération des variables de Quer/Cabodi et al. ? Automatiser la sélection des variables à inputizer/abstraire Combiner abstraction de variables et décomposition du calcul du RSS Approche énumérative : Compacter la table des états connus Prioritization de lanalyse des états (bug chasing) En cas de sur-approximation excessive, raffiner labstraction Analyse des contre-exemples de Clarke/Grumberg et al. Approches de Cho/Govidaraju et al. … Bitstate hashing de Holzmann, hash compaction de Stern/Dill et al. Yang/Dill et al. …


Télécharger ppt "1 Exploration implicite et explicite de lespace détats atteignables de circuits logiques Esterel 12 décembre 2002 Yannis BRES Directeur de thèse : Gérard."

Présentations similaires


Annonces Google