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.

Slides:



Advertisements
Présentations similaires
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Advertisements

LES NOMBRES PREMIERS ET COMPOSÉS
[number 1-100].
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
Fabrice Lauri, François Charpillet, Daniel Szer
Calculs de complexité d'algorithmes
Reconnaissance de la parole
Test de logiciels synchrones avec la PLC
ACTIVITES Les fractions (10).
Sud Ouest Est Nord Individuel 36 joueurs
Projet n°4 : Objecteering
Les éléments de mémorisation
Génération interactive dimages projectives : Application à la Radiothérapie Pierre BLUNIER Du 01/12/2002 au 28/03/2003 Centre Léon Bérard.
Introduction à la logique
1 Intégration numérique garantie de systèmes décrits par des équations différentielles non-linéaires Application à l'estimation garantie d'état et de paramètres.
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
Construction des 3 hauteurs
1 Efficient Data and Program Integration Using Binding Patterns Ioana Manolescu, Luc Bouganim, Francoise Fabret, Eric Simon INRIA.
Quoi ? Un tampon.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Description du fonctionnement d'un système 1 Clic Clic
La compilation matérielle et logicielle d’Esterel v5 /v7
Sélection automatique d’index et de vues matérialisées
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
MACHINE DE MOORE SYNCHRONE SIMPLIFIÉE Professeur à l'UHP / ESIAL
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
Des RRA à la diagnosticabilité
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Application des algorithmes génétiques
le profil UML en temps réel MARTE
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 1 : La notion de système.
Les structures de données arborescentes
La compilation logicielle dEsterel v5 Gérard Berry Chaire Algorithmes, machines et langages Collège de France Cours 4, 23 avril 2013.
1.2 COMPOSANTES DES VECTEURS
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Titre : Implémentation des éléments finis sous Matlab
Algorithmique et Programmation
22 janvier 2013 Commercialiser en 2013 ! Que de variables à ajuster ! 1.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
La Saint-Valentin Par Matt Maxwell.
Interprétation de séquences dimages pour des applications MédiaSpace Alberto AVANZI François BREMOND Monique THONNAT Projet ORION INRIA de Sophia Antipolis.
1 Enseigner les mathématiques grâce à lenvironnement Cabri UREM UNIVERSITE LIBRE DE BRUXELLES 18 Avril 2007 Enseigner les mathématiques grâce à lenvironnement.
Représentation des systèmes dynamiques dans l’espace d’état
Systèmes mécaniques et électriques
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
Les modèles linéaires (Generalized Linear Models, GLM)
Corrélation Principe fondamental d’une analyse de corrélation
1.1 LES VECTEURS GÉOMÉTRIQUES
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Notre calendrier français MARS 2014
3. Théorie de la production (offre) (suite)
3ème partie: les filtres
Détection du meilleur format de compression pour une matrice creuse dans un environnement parallèle hétérogène Olfa HAMDI-LARBI.
C'est pour bientôt.....
Ordonnancement de tâches
Parcours d'une séquence de longueur fixe
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
LA GESTION COLLABORATIVE DE PROJETS Grâce aux outils du Web /03/2011 Académie de Créteil - Nadine DUDRAGNE 1.
ASI 3 Méthodes numériques pour l’ingénieur
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
DESIGN D’UN CODEUR- DÉCODEUR CHAOTIQUE AUTO-SYNCHRONISANT EN TEMPS RÉEL ET EN PRÉSENCE DE BRUIT Laboratoire d’Automatique et d’Informatique Industrielle-POITIERS.
CALENDRIER-PLAYBOY 2020.
LES PILES ET FILES.
Les Chiffres Prêts?
Chapitre 3 :Algèbre de Boole
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Transcription de la présentation:

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 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 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 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 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 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 : 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 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 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 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 y2y (x 1 y 1 ) (x 2 y 2 )

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 y2y ) 0 Suppression des tests inutiles (x 1 y 1 ) (x 2 y 2 )

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

15 Diagrammes de Décisions Binaires (BDDs) Plusieurs règles de simplification : 1) 2) 3) x2x2 x2x2 x2x2 y2y2 y2y2 y2y2 y2y2 y2y2 y2y 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 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 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 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 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) : dd 01d d d0dd 01d 001d 1111 dd1d vv0v0 v1v d = Les variables sont préquantifiées

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

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 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 Larbre de sélection Esterel [ await I1 ; do something ; await I2 ; do something || await I3 ; do something ] ; await I4 ; do something # # 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 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 lignes de C++ (et plus de lignes de librairie commune) Inputization et abstraction de variables Experimentations : (Gestion du carburant du Mirage , 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 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 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 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 lignes de C++ (et plus de lignes de librairie commune) Vérification formelle Génération de séquences de test

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 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 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 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 : ) 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 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 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 Couverture détats – Expérimentations modèleétats approche implicite approche hybride implicite / explicite ratio # séqu.temps# séqu.temps NDA Arbiter1213cyclique10.03 NDA Wristwatch NDA ATDS-100-C Renault Testbench243tué après >>1h13.16 TCINT NDA NDA

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 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. …