1 / 36

Exploration implicite et explicite de l’espace d’états atteignables de circuits logiques Esterel

Exploration implicite et explicite de l’espace d’états atteignables de circuits logiques Esterel. Yannis BRES. Directeur de thèse : Gérard BERRY. 12 décembre 2002. Plan. Introduction :.

hamish
Download Presentation

Exploration implicite et explicite de l’espace d’états atteignables de circuits logiques Esterel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Exploration implicite et explicitede l’espace d’états atteignablesde circuits logiques Esterel Yannis BRES Directeur de thèse : Gérard BERRY 12 décembre 2002

  2. Plan Introduction : Contexte de travail, l’approche réactive synchrone, Esterel, automates et circuits, calcul d’espace d’états atteignables, BDDs I - Approche purement implicite : Un vérificateur formel proposant l’inputization ou l’abstraction de variables II - Approche énumerative Un moteur polyvalent pour l’exploration de l’espace d’états atteignables : Génération d’automates Vérification formelle Génération de séquences de tests exhaustives Conclusion et perspectives

  3. L’approche réactive synchrone Programme réactif : Exécution découpée en réactions (instants), temps discrétisé Analyse de l’environnement puis réaction à cet environnement Programme synchrone : Simplification théorique : temps de réaction nul, diffusion instantanée Large domaine d’application : 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 d’Etats Finis (FSM)

  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 : input A, B; output O; [ await A || await B ] ; emit O end module

  5. Automates 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

  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. Automates vs. Circuits Rajoutons un signal C dans le programme précédent…

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

  9. Vé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 n’arrive jamais" Propriétés de vivacité : "quelque chose de notable arrivera tôt ou tard"

  10. générationd’automates vérificationformelle vérificationd’équivalencede machines générationde séquencesde tests exhaustives Calcul d’espace d’états atteignables Pierre angulaire pour de nombreuses applications : calcul de l’espaced’états atteignables(Reachable StateSpace, RSS)

  11. Calcul d’espace 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 :

  12. Ordre des variables constant dans tout l’arbre (ici : x1 < y1 < x2 < y2) Diagrammes de Décisions Binaires (BDDs) 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

  13. Plusieurs règles de simplification : Diagrammes de Décisions Binaires (BDDs) 1) Suppression des tests inutiles x1 (x1 y1)  (x2 y2) y1 y1 x2 x2 x2 0 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

  14. Plusieurs règles de simplification : Diagrammes de Décisions Binaires (BDDs) 1) Suppression des tests inutiles 2) Partage des nœuds/arbres isomorphes x1 (x1 y1)  (x2 y2) y1 y1 x2 0 0 x2 y2 y2 y2 y2 1 0 0 1 1 0 0 1

  15. Plusieurs règles de simplification : Diagrammes de Décisions Binaires (BDDs) 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 1 0 0 1

  16. Dans la plupart des cas : Diagrammes de Décisions Binaires (BDDs) 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 d’ensembles via leur fonction caractéristique Complexités dans le pire des cas en temps et en espace :

  17. Calcul d’espace 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 , n’apparaî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 !

  18. Plan Introduction : Contexte de travail, l’approche réactive synchrone, Esterel, automates et circuits, calcul d’espace d’états atteignables, BDDs I - Approche purement implicite : Un vérificateur formel proposant l’inputization ou l’abstraction de variables II - Approche énumerative Un moteur polyvalent pour l’exploration de l’espace d’états atteignables : Génération d’automates Vérification formelle Génération de séquences de tests exhaustives Conclusion et perspectives

  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 à  Les variables sont préquantifiées Logique tri-valuée (0,1,d) :

  20. Inputization et abstraction : exemple input A, B; output O; [ await A || await B ] ; emit O inputization abstraction

  21. Sur-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” + L’inputization conserve la corrélation entre les instances de variables r r i i = 0 r r i i = 1 - L’abstraction perd la corrélation entre les instances de variables r r d d = d r r d d = d

  22. + En pratique, si la sur-approximation s’emballe, des réfutations erronées surviennent très rapidement et les calculs cessent Sur-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” + L’inputization conserve la corrélation entre les instances de variables r r i i = 0 r r i i = 1 - L’abstraction 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 d’espace d’états en logique tri-valuée : élargissement d’ensembles

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

  24. Notre vérificateur formel : evcl Esterel Verification Command Line Fonctionnalités principales : Inputization et abstraction de variables Réduction de la sur-approximation à l’aide d’infos 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 d’alarme de l’A380) L’abstraction peut-être jusqu’à 26 fois plus rapide que l’inputization Lorsque la sur-approximation s’emballe, les calculs cessent très tôt  Rien à perdre à tenter !

  25. Plan Introduction : Contexte de travail, l’approche réactive synchrone, Esterel, automates et circuits, calcul d’espace d’états atteignables, BDDs I - Approche purement implicite : Un vérificateur formel proposant l’inputization ou l’abstraction de variables II - Approche énumerative Un moteur polyvalent pour l’exploration de l’espace d’états atteignables : Génération d’automates Vérification formelle Génération de séquences de tests exhaustives Conclusion et perspectives

  26. Calcul d’espace 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 :

  27. Calcul d’espace d’états par énumération Un moteur polyvalent pour l’exploration de l’espace d’états atteignables : Génération d’automates 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 l’explosion 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)

  28. Génération d’automates Représentation pivot des modèles en Esterel v1, v2, v3 : automates Risque d’explosion à 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 d’automates 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

  29. Génération d’automates 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 à l’approche hybride (trop de cofactorisations de BDDs nécessaires) Notre génerateur d’automates, 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

  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 d’explosion 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. 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)

  32. Gé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 …

  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 d’images 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 à l’objectif de couverture

  34. Couverture d’états – Expérimentations

  35. Conclusion Un outil de vérification formelle basée sur une approche purement implicite Remplacement de variables par des entrées libres Abstraction de variables à l’aide d’une logique tri-valuée Réduction de la sur-approximation à l’aide d’informations structurelles Vérification en boîte blanche ou noire … Un moteur d’exploration de l’espace d’états atteignables Analyse énumérative des états Analyse explicite ou implicite des transitions Polyvalent : Génération d’automates explicites Vérification formelle Génération de séquences de tests exhaustives

  36. Perspectives 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 l’abstraction 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 l’analyse des états (bug chasing) Yang/Dill et al. …

More Related