Title: V
1Vérification de systèmes matérielsavec 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
2Pré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
3Vérification fonctionnelle de systèmes matériels
- Simulations presque uniquement
- Equivalence-Checking pour des blocs
combinatoires / RTL - Symbolic Model-Checking pour 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)
4Notre 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.
5Plan 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
6La plate-forme de vérification ProMeLa-SPIN
G. Holzmann 97
- 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 106 à 107 états
7Un 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
8Exemple de description
- proctype proc_port_in0_0() MOT mess bit
reserve bit current_clock0 - mtype sortie_down bit jeton 1 do
(clock current_clock) -gt current_clock
!current_clock x0_d0_spin_data_in?mess-gt
if (((mess.addest gtgt
level_num0_0) 3) level_id0_0) -gt /
Traitement des ports DOWN. / sortie_down
(mess.addest gtgt (level_num0_0-1)) 1 - if (sortie_down 0)
-gt poss_out0_0?jeton do
x0_d0_spin_data_out!mess
if mess.tag
FIN -gt atomicposs_out0_0!jeton goto
SUITE_DOWN else -gt
x0_d0_spin_data_in?mess fi -
variables locales
lecture dans un canal
affectation
garde
écriture dans un canal
9Repré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
10DDD Structure
- Nœuds variables
- Arcs valeur dans les entiers
- Contrainte un seul arc dune étiquette donnée en
sortie dun nœud
a
1
2
partage
b
2
1
c
1
1
Interprétation ensemble de mots (affectations)
menant au nœud 1 Efficacité partage
11DDD 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
a
a
1
2
1
2
normalisation
b
c
b
1
2
2
1
0
1
partage
c
1
1
c
0
1
1
0
1
1
0
Représentation canonique des DDD (classe
déquivalence)
12DDD Opérations ensemblistes (1)
Un DDD est un ensemble de mots Opérations
ensemblistes \
Exemple
a
a
A B
A
B
AB
13DDD Opérations ensemblistes (2)
- Un DDD est un ensemble de mots Opération de
concaténation .
Exemple
v0
. . .
A
A . B
v1
. . .
B
1
14DDD 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
réunion
15Homomorphismes inductifs
Homomorphisme défini localement
Exemple affectation dune valeur constante
?varval
16Homomorphismes inductifs
Affectation v1 Constante
- SetCst(var,val) (1) T (une erreur)
- e ? Id si e var
- SetCst(var,val) (e,x)
- e ? SetCst(var,val) sinon
val
x
17Autres homomorphismes inductifs
- SetVar (v1,v2)
- SetVarExpr (var, expr)
- SelVarCst (var, const)
- SelExp (expr)
18DDD pour les programmes ProMeLa
- 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é
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
19Homomorphismes inductifs Promela-DDD
- Affectation gardée
- exp_g -gt x 5
-
- Indéterminisme
- if
- exp_g1 -gt (2.)
- exp_g2 -gt (3.)
- fi
- 4.
- Ecriture dans un canal
- c!x
SetCst(pc,2) o SetCst(x,5) o SelExp(pc1 ?
exp_g)
SetCst(pc,2) o SelExp(pc1 ? exp_g1)
SetCst(pc,3) o SelExp(pc1 ? exp_g2)
SetCst(pc,2) o SetVarFifo(c,x) o SelCst(pc1)
20Calcul de lensemble des états accessibles
- New Init
- Reached ?
- While New ? ? loop
- tmp New
- Forall process p loop
- Forall instruction i loop
- To Postp,i(tmp)
- tmp To tmp
- Endloop
- Endloop
- New tmp \ reached
- Reached tmp reached
- Endloop
- Return Reached
21Evaluation 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"
22Comparaison avec les BDD
- Opérateurs Postp,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 Postp,i(E) si i décrit
x y - Un seul jeu de variable
- Abstraction de x dans E Ex
- Construction de G (x ? y) (x ? y) ? (? x ?
?y) - Contrainte de Ex par G Ex ? G
23Résultats sur exemples classiques (DDD plats)
- Dichotomie méthode énumérative / méthode
symbolique - Systèmes fortement séquentiels jusquà 106 ou 107
états SPIN donne de meilleurs résultats.
(sliding window, Peterson, Bakery) - Systèmes fortement concurrents jusquà 1010 é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
24Introduction de la hiérarchie dans les DDD (1)
- HDD Les valuations des arcs sont des DDD
2
DDD
HDD
25Introduction 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
26HDD pour Programme ProMeLa
variable produit
Saturation
Lors du calcul de lensemble des états
accessibles, réordonner le franchissement des
instructions pour saturer les couches basses du
HDD
Hiérarchisation de létat
27Ré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)
28Réseau VCI-SPIN (1)
Apparition dun interblocage
SPIN network
VCI-SPIN wrappers
I3
I4
T3
T4
29Réseau VCI-SPIN (2)
Evitement de linterblocage séparer les
requêtes et réponses sur les liens descendants
30Vé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)
31Vé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é, n6 propriété vérifiée en 36000 s et
100 MB - Accessibilité, n 6 construit en 512 s et 9 MB
32Vé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é, n6, synchrone, 2 routeurs 33 s,
139 MB - Pour les configurations plus libres
- Accessibilité, n1 à 7, asynchrone, 4 routeurs,
config libre 7881 s et 492 MB - ou 519 s et 1,5 GB
33Conclusion
- 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é
34Perspectives
- 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(No Transcript)
36Ré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
- SPIN BDD DDD DDD-O
- 15 2251/1067 3801200/96 18 K-/397 545/30
- 50 -/- -/- -/- 8006/996
- Election sur anneau
- SPIN BDD DDD DDD-O
- 6 262/144 50565394/144 345/11 373/11
- 10 -/- -/- 4533-/663 716-/77
37Résultats sur exemples classiques (DDD plats)
- Sliding window
- SPIN BDD DDD DDD-O
- 2 0/8 552221/102 486142/18 662206/17
- 3 29/450 65 K 63 K /332 480 K - /565 480
K -/475 - 4 -/- -/- -/- -/-
- Exclusion Peterson
- SPIN BDD DDD
- 3 0/6 1739 /93 74/6
- 5 -/- 470 K - /900 -/-
- Bakery
- SPIN BDD DDD
- 4 0/5 500/94 170/9
- 5 1385/6 12310/93 3795/46
- 6 -/- -/- 6190147/455
38Résultats sur exemples classiques (HDD)
- Calcul daccessibilité uniquement
- Philosophes
- DDD DDD-O HDD HDD-sat
- 15 18 K-/397 545/30 25/16 0/2
- 50 -/- 8006/996 3308/532 1/9
- 1000 -/- -/- -/- 258/1343
- Election sur anneau
- DDD DDD-O HDD HDD-sat
- 6 345/11 373/11 6/4 0/4
- 10 4533-/663 716-/77 333/61 2/14
- 20 -/- -/- 9891/771 14/65
- 100 -/- -/- -/- 443/1866
- Systèmes séquentiels Amélioration par rapport
aux DDD plats mais moins bons que SPIN
39DDD 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
a
2
1
- DDD bien défini
- absence de nœud terminal T
- Relation mieux-défini ?
- relation dordre sur les DDD
a
T
1
2
b
1
1
1
- Bonnes propriétés algébriques des opérations
40DDD Opérations (2)
Exemple dopération faisant apparaître une
approximation
41DDD 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
- ?1 ?2
- ?1 o ?2
- Cas général ? d, d deux DDD
- ? (0) 0
- ? (d) ? (d) ? ? (d d)
- d ? d ? ? (d) ? ? (d)
42DDD Homomorphismes inductifs (1)
- Famille dhomomorphismes ?i définis localement
- ?i (0) 0
- ?i (T) T
- ?i (1) ci (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)
val
e ? Id si e var e ?
SetCst(var,val) sinon
x
43DDD Homomorphismes inductifs (2)
1
0
SetCst(b,2) (a ? b ? 1 ) SetCst(b,2) (a ?
c ? 1 )
SetCst(b,2)
1
2
44DDD Homomorphismes inductifs (3)
Exemple var1 var2 SetVar
Down
Up
Up(var, val)(1) T Up(var, val)(e, x) e
? var ? Id
x
val
45DDD Homomorphismes inductifs (4)
Exemple dexécution de SetVar b d
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 ? 1
1
2
3
4
1
2
3
4
3
4
1
1
4
1
4
4
1
4
4
1
4
3
4
46Homomorphismes inductifs
Affectation V1 V2
- SetVar(v1,v2) (1) T (une erreur)
- Down(v1,v2) si e v1
- SetVar(v1,v2) (e,x) e ? SetCst(v1,x) si e
v2 - e ? SetVar(v1,v2) sinon
- Down(v1,v2 ) (1) T
- Down (v1,v2) (e,x) v1 ? e ? Id si e
v2 - Up(e, x) o Down(v1, v2) sinon
- Up(var, val)(1) T
- Up(var, val)(e, x) e ? var ? Id