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

E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 1 Vérification de systèmes matériels avec les DDD Systèmes spécifiés à un haut niveau dabstraction DDD : Structure.

Présentations similaires


Présentation au sujet: "E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 1 Vérification de systèmes matériels avec les DDD Systèmes spécifiés à un haut niveau dabstraction DDD : Structure."— Transcription de la présentation:

1 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 1 Vérification de systèmes matériels avec les DDD Systèmes spécifiés à un haut niveau dabstraction DDD : Structure de données exploitant le partage et la hiérarchie Emmanuelle Encrenaz-Tiphène Maître de Conférences à lUniversité Paris VI – LIP6 En délégation CNRS au Laboratoire Spécification et Vérification (LSV) ENS-Cachan En collaboration avec Vincent Beaudenon

2 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 2 Préambule – Hardware / Software Codesign Application : réseau de tâches communicantes – liens privés avec bufferisation (réseaux de Khan) – particularisation : données entières – buffers bornés – sélection Exploration architecturale (différentes possibilités dimplantation des tâches) Implantation matérielle (synthèse de haut niveau / synthèse des communications) Chaîne de conception Disydent [Pétrot Augé et al, 03]

3 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 3 Vérification fonctionnelle de systèmes matériels Simulations presque uniquement Equivalence-Checking pour des blocs combinatoires / RTL Symbolic Model-Checkingpour des petits blocs (10 KG) Méthodes « semi-formelles » prennent le pas sur SMC –LTL sur séquences bornées moniteurs incorporés dans la simulation –CTL à profondeur bornée déroulement explicite de larbre dexécution Démonstrations assistées (architectures spécifiques : cœurs de processeurs / traitement du signal)

4 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 4 Notre objectif Construire un Model-Checker Symbolique pour des systèmes décrits sous forme de graphe de tâches. Représentation symbolique densembles détats du système + opérations ensemblistes (,, ) –Données entières / structurées –Canaux de taille variable Opérateurs Post et Pré sur la représentation symbolique de lensemble des états, associés à la sémantique des actions du graphe de tâches.

5 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 5 Plan de lexposé Modélisation de systèmes dans un sous-ensemble de ProMeLa Représentation symbolique : Structure de donnée DDD –Représentation des ensembles détats –Opérations ensemblistes –Homomorphismes –Homomorphismes pour instructions ProMeLa –Introduction de la hiérarchie Application à la vérification de propriétés CTL –Exemples classiques –Réseau VCI-SPIN Conclusion

6 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 6 La plate-forme de vérification ProMeLa-SPIN Langage ProMeLa : description dapplications concurrentes, dynamiques, asynchrones, communication par buffers bornés et variables partagées Vérification de propriétés de sûreté et de vivacité par exploration du graphe des états accessibles –Représentation explicite des états –Réduction de lespace à analyser (techniques dordre partiel / compactage) Applicable pour des systèmes "séquentiels" comportant 10 6 à 10 7 états [G. Holzmann 97]

7 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 7 Un sous-ensemble de ProMeLa Variables globales –Types scalaires (basés sur entier) / Type produit –Tableaux –Canaux (bornés) Processus concurrents –Variables locales –Instructions gardées (affectations, lecture / écriture) –Choix indéterministe –Répétition indéterministe Pas dinstanciation dynamique de processus ( run est exclu) Les processus nont pas de paramètres

8 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 8 Exemple de description proctype proc_port_in0_0() { MOT mess; bit reserve; bit current_clock=0; mtype sortie_down; bit jeton = 1; do :: (clock == current_clock) -> current_clock = !current_clock; x0_d0_spin_data_in?mess-> if :: (((mess.addest >> level_num0_0) & 3) == level_id0_0) -> /* Traitement des ports DOWN. */ sortie_down = (mess.addest >> (level_num0_0-1)) & 1; if :: (sortie_down == 0) -> poss_out0_0?jeton; do :: x0_d0_spin_data_out!mess; if :: mess.tag == FIN -> atomic{poss_out0_0!jeton; goto SUITE_DOWN;} :: else -> x0_d0_spin_data_in?mess; fi; … } variables locales garde affectation lecture dans un canal écriture dans un canal

9 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 9 Représentation symbolique détats Diagrammes de Décision de Données (DDD) Structure de donnée pour représenter les ensembles détats. (LIP6 / LaBRI ): arbres partagés. projet Clovis [DGA 01] Application aux réseaux de Petri étendus [ATPN 02] [FORTE 04] [FORTE 05] Variables décisionnelles de type fini Représentation des chemins menant à 1 ou T Exploitation du partage des sous-arbres isomorphes Opérations ensemblistes : parcours attelé des 2 DDD (polynômial) Modification « la plus locale possible » : homomorphisme

10 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 10 DDD : Structure Nœuds : variables Arcs : valeur dans les entiers Contrainte: un seul arc dune étiquette donnée en sortie dun nœud Interprétation : ensemble de mots (affectations) menant au nœud 1 Efficacité : partage a bc c a b c partage

11 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 11 DDD : Normalisation Les chemins invalides ne sont pas représentés Conséquence : domaine des variables inconnu a priori Représentation de lensemble vide nœud terminal 0 Représentation canonique des DDD (classe déquivalence) a bc c a b c normalisation partage

12 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 12 DDD : Opérations ensemblistes (1) Un DDD est un ensemble de mots : Opérations ensemblistes + * \ Exemple : A A * B B aa 1 bb c 2, ,6 3,4 1 bb c 1,32, c 2 4 A*B 1 a bb c c 4

13 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 13 DDD : Opérations ensemblistes (2) Un DDD est un ensemble de mots : Opération de concaténation. Exemple : A A. B v0v v1v v0v v1v1 1 B

14 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 14 DDD : Homomorphisme Définition : d, d deux DDD bien définis Un homomorphisme est une fonction telle que : (0) = 0 (d) + (d) = (d + d) réunion 1 dd 1 d d

15 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 15 Homomorphismes inductifs Homomorphisme défini localement (0) = 0 (1) = constante (d) = définition locale à la racine de d et ses valuations Exemple : affectation dune valeur constante var=val e x …. e val …. val Si e == var e …. Sinon var=val

16 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 16 SetCst(var,val) (1) = T (une erreur) e Idsi e == var SetCst(var,val) (e,x) = e SetCst(var,val)sinon Homomorphismes inductifs val x Affectation v 1 = Constante

17 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 17 Autres homomorphismes inductifs SetVar (v 1,v 2 ) SetVarExpr (var, expr) SelVarCst (var, const) SelExp (expr) …

18 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 18 DDD pour les programmes ProMeLa Instruction ProMeLa = construction de deux homomorphismes Post: calcule les successeurs par lapplication dune instruction Pré : calcule les prédécesseurs potentiels résultants de lexécution dune instruction Un état du programme : variables globales chaque processus en cours dexécution son compteur ordinal ses variables locales Etat initial = concaténation de toutes les variables dans un ordre figé

19 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 19 Homomorphismes inductifs Promela-DDD Affectation gardée 1.exp_g -> x := 5 ; 2.… Indéterminisme 1.if :: exp_g1 -> (2.) … :: exp_g2 -> (3.) … fi; 4. … Ecriture dans un canal 1.c!x 2.… SetCst(pc,2) o SetCst(x,5) o SelExp(pc==1 exp_g) SetCst(pc,2) o SelExp(pc==1 exp_g1) + SetCst(pc,3) o SelExp(pc==1 exp_g2) SetCst(pc,2) o SetVarFifo(c,x) o SelCst(pc==1)

20 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 20 Calcul de lensemble des états accessibles New = Init; Reached = ; While New loop tmp = New Forall process p loop Forall instruction i loop To = Post p,i (tmp); tmp = To + tmp; Endloop New = tmp \ reached Reached = tmp + reached Endloop Return Reached

21 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 21 Evaluation de formules CTL Opérateur Pré : Pb : Toutes les opérations ne sont pas inversibles : x = 4; Approche classique (2 à 3 passes) : élargissement à toutes les valeurs possibles, puis restriction aux états accessibles Opérateur ad-hoc en 1 passe Evaluation de " EF p"

22 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 22 Comparaison avec les BDD Opérateurs Post p,i et Pré p,i implantés sur la bibliothèque BuDDy [Lind-Nielsen, Reif Andersen CAV 99] –Représentation des opérations arithmétiques sur des vecteurs de bits –Domaine des variables déterminé a priori (type déclaré) Traitements pour réaliser Post p,i (E) si i décrit x = y –Un seul jeu de variable –Abstraction de x dans E : E| x –Construction de G = ( x y ) = ( x y ) ( x y ) –Contrainte de E| x par G : E| x G

23 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 23 Résultats sur exemples classiques (DDD plats) Dichotomie méthode énumérative / méthode symbolique –Systèmes fortement séquentiels jusquà 10 6 ou 10 7 états : SPIN donne de meilleurs résultats. (sliding window, Peterson, Bakery) –Systèmes fortement concurrents jusquà états (au delà si très réguliers) : BDD et DDD donnent de meilleurs résultats. (Philosophes, élection sur anneau) BDD vs DDD –BDD avec réordonnancement dynamique et DDD statique sont comparables. –Lorsquun « bon ordre » peut être exploité, les DDD statiques présentent de meilleures performances que BDD ou DDD ordre qcq. –Limitations des DDD : ordre / gestion des expressions / longueur des chemins

24 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 24 Introduction de la hiérarchie dans les DDD (1) HDD : Les valuations des arcs sont des DDD c d a b b c cc d 2 c d a b c d 1 1 i DDD HDD

25 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 25 Introduction de la hiérarchie dans les DDD (2) Les HDD sont des DDD qui bénéficient : –Augmentation du partage, –Réduction de la longueur des chemins de la racine vers 1. Ajustement des homomorphismes –Propagation de lhomomorphisme au nœud suivant au même niveau de la hiérarchie, au nœud racine du DDD de niveau de hiérarchie inférieur –Occasionnellement, nécessité daplanir localement la hiérarchie

26 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 26 HDD pour Programme ProMeLa variable produit … … variables globales processus variable scalaire canal compteur ordinal variables locales Lors du calcul de lensemble des états accessibles, réordonner le franchissement des instructions pour saturer les couches basses du HDD Saturation Hiérarchisation de létat

27 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 27 Résultats sur exemples classiques (HDD) Confirment la tendance observée avec les DDD plats : –SPIN reste meilleur sur les systèmes très séquentiels (Sliding window, Peterson, Bakery) –HDD + saturation sont bien meilleurs que les BDD ou les DDD plats sur des systèmes très parallèles (jusquà 1000 philosophes, jusquà 100 électeurs sur lanneau)

28 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 28 Réseau VCI-SPIN (1) VCI-SPIN wrappers SPIN network I3I4T3T4 Apparition dun interblocage

29 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 29 Réseau VCI-SPIN (2) VCI-SPIN wrappers SPIN network I3I4T3T4 Evitement de linterblocage : séparer les requêtes et réponses sur les liens descendants

30 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 30 Vérification avec SPIN et HDD Modèle ProMeLa –Pour chaque routeur : 1 processus par port dentrée (4) 1 mécanisme dexclusivité daccès par port de sortie (4) –Pour chaque initiateur : 2 processus (1 émetteur requête / 1 récepteur réponse) –Pour chaque cible : 1 processus –Messages bufferisés en entrées de chaque port (buffers de taille 1)

31 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 31 Vérification avec SPIN Propriété de vivacité «émetteur 0 pourra toujours émettre un nouveau message » Configuration à 2 routeurs, initiateurs et cibles fixés Synchronisation des processus Taille des messages fixée (1 à 7 paquets) Vivacité, n=6 : propriété vérifiée en s et 100 MB Accessibilité, n = 6 : construit en 512 s et 9 MB

32 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 32 Vérification avec HDD Propriété de sûreté : Absence détat puits Configurations à 2 et 4 routeurs, initiateurs et cibles variables Taille des messages variable (de 1 à 7 paquets) Pour la configuration restreinte : Accessibilité, n=6, synchrone, 2 routeurs : 33 s, 139 MB Pour les configurations plus libres : Accessibilité, n=1 à 7, asynchrone, 4 routeurs, config libre : 7881 s et 492 MB ou : 519 s et 1,5 GB

33 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 33 Conclusion Construction dun model-checker pour des systèmes statiques décrits en ProMeLa DDD : Représentation intéressante pour les systèmes présentant un fort parallélisme –Hiérarchie –Saturation Analyse complémentaire à loutil SPIN –Certains systèmes sont analysés très rapidement par SPIN et pas de résultats avec HDD, et réciproquement –Propriétés de vivacité / de sûreté

34 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 34 Perspectives Amélioration de lalgorithmique sur les HDD Éviter les applatissements locaux Augmenter la prise en compte de la hiérarchie Découpage dichotomique du système Extension à des systèmes dynamiques

35 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 35

36 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 36 Résultats sur exemples classiques (DDD plats) [BET – Majestic 04] Calcul daccessibilité + une propriété " AG AF but atteint « Temps de calcul (en s) / Mémoire nécessaire (en MB) Philosophes SPINBDDDDDDDD-O 15 :2251/ /9618 K+-/ /30 50:-/--/--/-8006/996 Election sur anneau SPINBDDDDDDDD-O 6 :262/ / /1137+3/11 10:-/--/ / /77

37 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 37 Résultats sur exemples classiques (DDD plats) Sliding window SPINBDDDDDDDD-O 2 :0/ / / /17 3 :29/45065 K +63 K / K + -/ K + -/475 4 : -/--/--/--/- Exclusion Peterson SPINBDDDDD 3 :0/ /937+4/6 5 : -/-470 K + - /900-/- Bakery SPINBDDDDD 4 :0/550+0/9417+0/9 5 : 1385/ / /46 6 : -/--/ /455

38 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 38 Résultats sur exemples classiques (HDD) Calcul daccessibilité uniquement Philosophes DDDDDD-OHDDHDD-sat 15 : 18 K+-/ /3025/160/2 50:-/-8006/ /5321/9 1000: -/--/--/-258/1343 Election sur anneau DDDDDD-OHDDHDD-sat 6 :34+5/1137+3/116/40/4 10:4533+-/ /77333/612/14 20:-/--/-9891/77114/ : -/--/--/-443/1866 Systèmes séquentiels : Amélioration par rapport aux DDD plats mais moins bons que SPIN

39 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 39 DDD : Approximation Contrainte : un seul arc dune étiquette donnée en sortie dun nœud Conséquence : des opérations peuvent conduire à des résultats indéterminés Représentation de lapproximation nœud terminal T Bonnes propriétés algébriques des opérations a a b T DDD bien défini : absence de nœud terminal T Relation « mieux-défini » : relation dordre sur les DDD

40 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 40 DDD : Opérations (2) Exemple dopération faisant apparaître une approximation a ac c a aa c = a a c T

41 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 41 DDD : Homomorphismes Définition : d, d deux DDD bien définis Un homomorphisme est une fonction telle que : (0) = 0 (d) + (d) = (d + d) Exemples d * Id Id \ d Id. d o 2 Cas général : d, d deux DDD (0) = 0 (d) + (d) (d + d) d d (d) (d)

42 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 42 DDD : Homomorphismes inductifs (1) Famille dhomomorphismes i définis localement i (0) = 0 i (T) = T i (1) = c i (une constante) i (d) = définition locale à la racine de d et à ses valuations Exemple SetCst(var, val)(1) = T SetCst(var, val)(e, x) = e Id si e = var e SetCst(var,val) sinon val x

43 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 43 DDD : Homomorphismes inductifs (2) SetCst(b,2) a bc =SetCst(b,2) (a b 1 ) + SetCst(b,2) (a c 1 ) SetCst(b,2) (a b 1 ) = a SetCst(b,2)(b 1 ) = a b Id(1) = a b SetCst(b,2) (a c 1 ) = a SetCst(b,2)(c 1 ) = a c SetCst(b,2)(1) = a c T

44 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 44 DDD : Homomorphismes inductifs (3) SetVar(var 1, var 2 )(1) = 1 SetVar(var 1, var 2 )(e, x) = Down(var 1, var 2 )si e = var 1 e SetCst(var1, x)si e = var 2 e SetVar(var 1, var 2 ) sinon x x Down(var 1, var 2 )(1) = T Down(var 1, var 2 )(e, x) = var 1 e Idsi e = var 2 Up(e, x) o Down(var 1, var 2 )sinon xx Up(var, val)(1) = T Up(var, val)(e, x) = e var Id xval Exemple : var1 = var2 SetVar Down Up

45 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 45 DDD : Homomorphismes inductifs (4) SetVar(b, d) (a b c d 1) a SetVar(b, d) (b c d 1) a Down(b, d) (c d 1) a Up(c, 3) o Down(b, d) (d 1) a Up(c, 3) (b d Id(1)) a Up(c, 3) (b d 1) a b c d Exemple dexécution de SetVar : b = d

46 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 46 Homomorphismes inductifs SetVar(v 1,v 2 ) (1) = T (une erreur) Down(v 1,v 2 ) si e == v 1 SetVar(v 1,v 2 ) (e,x) = e SetCst(v 1,x)si e == v 2 e SetVar(v 1,v 2 )sinon Down(v 1,v 2 ) (1) = T Down (v 1,v 2 ) (e,x) = v 1 e Idsi e == v 2 Up(e, x) o Down(v 1, v 2 )sinon Up(var, val)(1) = T Up(var, val)(e, x) = e var Id Affectation V 1 = V 2


Télécharger ppt "E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA 1 Vérification de systèmes matériels avec les DDD Systèmes spécifiés à un haut niveau dabstraction DDD : Structure."

Présentations similaires


Annonces Google