1 / 48

Emmanuelle Encrenaz-Tiphène Laboratoire d’Informatique de Paris VI

Vérification par modèle de parties de SoC Expérimentations et enrichissement d’outils de vérification existants. Emmanuelle Encrenaz-Tiphène Laboratoire d’Informatique de Paris VI Architecture des Systèmes Informatiques et Micro-électroniques En collaboration avec

hiero
Download Presentation

Emmanuelle Encrenaz-Tiphène Laboratoire d’Informatique de Paris VI

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. Vérification par modèle de parties de SoCExpérimentations et enrichissement d’outils de vérification existants Emmanuelle Encrenaz-Tiphène Laboratoire d’Informatique de Paris VI Architecture des Systèmes Informatiques et Micro-électroniques En collaboration avec Cédric Roux, Vincent Beaudenon, Cécile Braunstein, Hervé Charlery, Jean-Lou Desbarbieux, Sami Taktak E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  2. Qu’est-ce qu’un SoC (System on Chip) ? Intégration d’une application complexe sur un unique circuit • Un ou plusieurs processeurs exécutant des programmes (implantant un micro-noyau) • Des coprocesseurs • Des mémoires • Des media de communication • Des parties reconfigurables (FPGA) • Des parties analogiques (RF, CAN/CNA) • … Avec des contraintes temps-réel, de surface, de consommation, … E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  3. Exemple : téléphone portable E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  4. Flot de conception d’un SoC • Extraire le parallélisme de contrôle de l’application • Modélisation sous forme de processus concurrents (mieux : réseaux de Kahn) • Exploration architecturale • Implanter certaines tâches en matériel et d’autres en logiciel • Simulation / profiling / évaluation de surface et consommation • Choix de composants existants / synthèse des composants matériels • Placement / routage / simulation bas niveau • Construction des masques / fonderie / tests des circuits E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  5. Idées fortes • Cycle de développement très court • Utilisation de composants pré-existants (modèles fonctionnels (transactionnels / précis au cycle) modèles synthétisables) • Effort de standardisation des interfaces • Développement en vue de la réutilisation • Énormes problèmes de productivité • Complexité des systèmes à construire • Méthodes et outils de CAO à redéfinir E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  6. Vérification fonctionnelle des SoC • Vérification de chaque composant puis de l’intégration • Simulations presque exclusivement • 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  simulation • CTL à profondeur bornée  déroulement explicite de l’arbre d’exécution • Démonstrations assistées (architectures spécifiques / traitement du signal) E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  7. Plan de l’exposé • Protocoles de communication décrits en réseaux de Kahn • Vérification avec SPIN de trois systèmes : ZCSP / ANI / RSPIN • Extension de SPIN avec un model-checker symbolique à base de DDD • Méthode incrémentale de conception de convertisseur de protocoles • Incrément • Transformation de propriétés E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  8. Protocole de communication / SPIN : ZCSP [Beaudenon, Encrenaz, Desbarbieux, ACSD 2003] Protocole d’envoi de données entre 2 processus, court-circuitant les couches système, avec acquittement de chaque message émis. Un message dont un des paquets n’a pas été acquitté doit être intégralement retransmis. Sliding-window avec stockage des messages non encore acquittés E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  9. Index Protocole de communication / SPIN : ZCSP Table des messages non encore acquittés indéterminisme E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  10. Protocole de communication / SPIN : ZCSP Propriétés : - tout message finira par quitter la table - s’il n’y a plus de nouveau message, la table sera vidée Property Liveness Liveness Ending PO reduction No Yes Yes Transitions (10^6) 1928 455 835 Depth Reached 160265 68948 68948 Memory used ( Mbyte) 115 232 243 CPU time 35h09 12h55 19h25 Validation Result Valid Valid Valid E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  11. Tâche Maître Tâche Esclave Tâche Maître REQ Interface Bus - M Interface Bus - M Interface Bus - E DATA Interface Bus - M Interface Bus - E Tâche Esclave Tâche Maître Protocole de communication / SPIN : ANI Anneau unidirectionnel tronçonné avec circulation d’un jeton par tronçon [Taktak, Desbarbieux,2003] E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  12. Protocole de communication / SPIN : ANI • Un message est composé de plusieurs paquets • Jeton REQ : < libre , REQ/REP , nseq , @m , @e , CMD> CMD = LOCK/UNLOCK/SET/CLEAR/READ/WRITE/RW • Jeton DATA : <libre , nseq , @dest, data> • Interface BUS-M : 5 états • Interface Bus-E : 3 états E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  13. Protocole de communication / SPIN : ANI Propriétés : - Une tâche peut émettre une infinité de requêtes - Toute requête finira par être transmise Abstraction des domaines des variables Plateforme avec : 1 jeton, 1 maître et 1 esclave : ~ 10s (400 000 états) 2 jetons, 2 maîtres et 2 esclaves : trop gros E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  14. R5 R6 R4 R7 R0 R1 R2 R3 WI WT … … Protocole de communication / SPIN : réseau SPIN à interface VCI Réseau multi-étage « fat tree » de degré 4 Routage adaptatif sur les liens montants / chemin unique sur les liens descendants Pas d’ordonnancement global (algorithme de routage local) Un message est composé de n paquets REQUETE et n paquets REPONSE Réseau SPIN Protocole VCI E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  15. VCI-SPIN : le deadlock [Charlery Encrenaz, 2002-2003] SPIN network VCI-SPIN wrappers I3 I4 T3 T4 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  16. SPIN network VCI-SPIN wrappers I3 I4 T3 T4 VCI-SPIN : la correction du deadlock Eviter le partage des liens descendants pour les REQ et les REP E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  17. VCI-SPIN : vérification avec SPIN • Dégradation du modèle • Suppression des FIFOs de recyclage interne • 2 routeurs 2 x 2 au lieu de 8 routeurs 4 x 4 • Dégradation de l’environnement • Configuration figée des initiateurs et cibles • Taille des messages figée (6 paquets REQ + 6 paquets REP) • Résultats (1GHz, 1Mo RAM, avec réduction d’ordre partiel) • Taille < 6 : pas de deadlock • Taille 6 : la distinction de sous-réseaux REQ et REP disjoints corrige le deadlock • Deadlock : 56h / Absence de deadlock : 10h • Taille 7 : pas de deadlock si 2 sous-réseaux (10h) E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  18. Un model-checker symbolique pour ProMeLa Représentation de systèmes dynamiques bornés (la borne n’est pas connue a priori) : variables entières / canaux de communication / run • Structure de donnée pour représenter les ensembles d’états : DDD • (LIP6 / LaBRI): arbres partagés. • 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 » : itérateur parcourant le DDD E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  19. a 1 2 a b 1 2 1 1 b 1 1 1 DDD : Structure [Couvreur Encrenaz Poitrenaud Paviot Wacrenier, DGA 2000-2001, ATPN 2002] • Nœuds : variables • Arcs : valeur dans les entiers • Contrainte: un seul arc d’une étiquette donnée en sortie d’un nœud a 1 2 partage a 2 1 b 1 1 Interprétation : ensemble de mots (affectations) menant au nœud 1 Efficacité : partage E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  20. DDD : Normalisation • Les chemins invalides ne sont pas représentés • Conséquence : domaine des variables inconnu a priori • Représentation de l’ensemble vide  nœud terminal 0 a a 1 2 1 2 normalisation a b a 1 2 2 0 1 1 partage 1 b 0 1 b 0 1 1 0 1 1 • Représentation canonique des DDD (classe d’équivalence) E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  21. DDD : Approximation • Contrainte : un seul arc d’une étiquette donnée en sortie d’un nœud • Conséquence : des opérations peuvent conduire à des résultats indéterminés • Représentation de l’approximation  nœud terminal T a 2 1 • DDD bien défini : • absence de nœud terminal T • Relation « mieux-défini »  : • relation d’ordre sur les DDD a T 1 2 1 b 1 1 • Bonnes propriétés algébriques des opérations E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  22. v0 v1 . . . . . . 1 1 DDD : Opérations ensemblistes • Un DDD est un ensemble de mots : Opérations ensemblistes + * \ • Un DDD est un ensemble de mots : Opération de concaténation . Exemple : v0 . . . A A . B v1 . . . B 1 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  23. DDD : Homomorphisme • 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’) E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  24. DDD : Homomorphismes inductifs (1) • Famille d’homomorphismes idé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 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  25. a 2 1 b c 0 1 1 1 1 0 0 SetCst(b,2) (a — b — 1 ) = a — SetCst(b,2)(b — 1 ) = a — b — Id(1) = a — b — 1 1 2 2 2 1 1 1 2 SetCst(b,2) (a — c — 1 ) = a — SetCst(b,2)(c — 1 ) = a — c — SetCst(b,2)(1) = a — c — T 2 1 2 1 DDD : Homomorphismes inductifs (2) 1 0 = SetCst(b,2) (a — b — 1 ) + SetCst(b,2) (a — c — 1 ) SetCst(b,2) 2 1 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  26. SetVar(var1, var2)(1) = 1 SetVar(var1, var2)(e, x) = Down(var1,var2) si e = var1 e — SetCst(var1, x) si e = var2 e — SetVar(var1, var2) sinon x x Down(var1, var2)(1) = T Down(var1, var2)(e, x) = x x var1 — e — Id si e = var2 Up(e, x) o Down(var1, var2) sinon DDD : Homomorphismes inductifs (3) Exemple : var1 = var2 SetVar Down Up Up(var, val)(1) = T Up(var, val)(e, x) = e — var — Id x val E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  27. DDD : Homomorphismes inductifs (4) Exemple d’exé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 3 4 4 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  28. DDD pour les programmes promela [Beaudenon Encrenaz 2003-…] • Un état du programme : • variables globales • chaque processus en cours d’exé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 : SetCst(pc,new_val) o SetVarExpr(var,expr) o SelCst(pc,cur_val) • Pré : élargissement puis restriction aux états accessibles (2 à 3 passes) • itérateur ad-hoc en 1 passe E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  29. Premiers résultats Calcul de l’ensemble des états accessibles E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  30. Model-checker symbolique intégré à SPIN [Taktak Beaudenon 2004] • Comparaison avec les BDD en cours • a = a + b  (borne connue a priori) • construire 1 additionneur (ripple carry : gros bdd sur poids forts) • substituer à ses entrées l’expression de a et de b (non évaluée) • connecter la sortie de l’additionneur à la variable a : xnor • réordonnancement dynamique des variables • Influence de l’ordre des variables (pas de réordonnancement dynamique) • Affectation d’une expression non évaluée  DDD hiérarchiques • Systèmes dynamiques E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  31. Méthode de conception incrémentale [CERME 2000; Encrenaz Braunstein 2002-…] • Réutilisabilité des composants • Standardisation des interfaces (VCI) • Ajout/suppression de fonctionnalités • Convertisseurs de protocoles • VCI : protocole point à point de transaction. • Une transaction : un paquet requête et un paquet réponse. Chaque paquet est composé de cellules. Chaque cellule est acquittée. • PI / AMBA : protocole de bus système (entre processeurs et mémoire) • Tranfert 1 mot (ou une rafale de mots) de façon pipelinée • Toutes les configurations de VCI / PI ne sont pas toujours nécessaires E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  32. décodeur MPEG : Représentation des wrappers E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  33. Flot de données du wrapper maître VCI PI ou AMBA Données Chemin de données REP REP Ctrl flux REP VCI FSM Contrôle de flux bus Ctrl flux CMD VCI Données Adresses Chemin de données CMD CMD Objectif : contrôle de flux E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  34. Ordre sur les wrappers Initiator is always ready Initiator introduces wait states A A_prime Target is always ready B_prime B Target may send WAIT Target may send RETRY C_prime C E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  35. Architecture Wrapper maitre E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  36. b b s1 s4 s1 a a ab ab ab s2 s3 s3 ... s2 a ab a ab b b ... ... ... De Wi à Wi+1 Une machine de Moore déterministe et complète Wi Un incrément : < I+, O+, S+, R+> Wi+1 B est le signal d’incrément, b est la valeur silencieuse et b la valeur active E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  37. s1.a s1.a s1 a a s2.a s3.a s3.a s2.a s2 s3 a a ... ... ... De Wi à K(Wi) De la machine de Moore à la structure de Kripke Les entrées (gardes des transitions) sont incorporées dans l’état source E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  38. b b b b b b b b b b b b b b b b b b b De K(Wi) à K(Wi+1) Le sous-graphe représentant K(Wi) est inclus dans le graphe K(Wi+1). C’est le sous-graphe maximal accessible à partir de l’état initial, tel que chaque état comprend le signal d’incrément à une de ses valeurs par défaut (ici b). E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  39. Règles de transformation • Soit s'  K(Wi+1) enrichissant s  K(Wi) par b = val_qt, • K(Wi),s |= p  K(Wi+1),s' |= p • K(Wi),s |= EX f K(Wi+1),s' |= (b = val_qt) => EX f' • K(Wi),s |= EF f K(Wi+1),s' |= E ( (b = val_qt) U f') • K(Wi),s |= EG f K(Wi+1),s' |= EG ( (b = val_qt)  f') • K(Wi),s |= E f U g  K(Wi+1),s' |= E ( (b = val_qt)  f' ) U g' • K(Wi),s |= AX f K(Wi+1),s' |= (b = val_qt) => AX f' • K(Wi),s |= AF f K(Wi+1),s' |= A ( (b  val_qt) Uf') • K(Wi),s |= AG f K(Wi+1),s' |= A ( (b = val_qt)  f' ) W (b  val_qt) • K(Wi),s |= A f U g  K(Wi+1),s' |= A ( (b = val_qt)  f' ) U (b  val_qt)  g' • K(Wi),s |= A f W g  K(Wi+1),s' |= A f' W (b  val_qt)  g' E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  40. 2 3b BCU 3a 1 4 4 5 VCI initiator VCI-PI master wrapper VCI-PI slave wrapper VCI target 8 7 7 6 PI-bus Expérimentation avec VIS E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  41. Expérimentation avec VIS Plate-forme avec un initiateur et une cible VCI – modèles B et B’ nb de var : 305 états accessibles : 115405 bdd size : 3705 nb de var : 333 états accessibles : 1.4 107 bdd size : 12349 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  42. Expérimentation avec VIS Plate-forme avec deux initiateurs et une cible VCI – modèles B et B’ nb de var : 478 états accessibles : 2.9 * 107 bdd size :5586 nb de var : 528 états accessibles : 9.3 * 1011 bdd size :990 000 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  43. b b ab ab ab ab ab ab b ... ... Nouvelles transformations Prise en compte de la structure particulière des incréments Introduction de cycles d’attente Blocage partiel de pipeline bloque l’étage 1 uniquement bloque les étages 1 et 2 bloque tous les étages E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  44. Conclusions • Il reste beaucoup à faire … • Améliorer les techniques existantes • Représentation symbolique • Réduction / Abstraction des composants à assembler • Réutilisation de la vérification d’un composant dans un autre contexte • Transformation de propriétés • Vérification de type « Assume-Guaranty » • Considérer les versions paramétrées des exemples • Couplage vérification / émulation (accélérateur matériel) E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  45. Amélioration de CTL – MC (BDD) Machines de Moore complètes, déterministes et synchrones Réduire les machines, indépendamment les unes des autres, en fonction de la propriété CTL à vérifier [Shiple CAV 94 : pas indépendamment / jamais implanté] Bisimulation forte sur les signaux de sortie et les atomes de la prop Algo de Lin (91) : minimisation de machines de Moore (avantage sur Bouajjani ou Lee/Yannakakis : pas de représentation explicite de la liste des parties). Nouvel algo de Piazza (2002) ? E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  46. Amélioration de CTL - MC Algo de réduction (mettre en évidence les quantifications) E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  47. Amélioration de CTL - MC Gain par rapport au BDD monolithique Perte par rapport à la méthode partitionnée (sur l’exemple) pas de combinaison simple avec la méthode partitionnée Pb des systèmes clôts (pas de réduction de l’interface (exemple de req/gnt) clustering de machines (internaliser les interfaces)? automatisation du clustering ? ) Pour des systèmes avec des gros modules (ou beaucoup de modules Clusterisables), dont l’ensemble est représentable sur bien plus de 500 variables, mais dont le modèle réduit tient sur 500 variables) E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

  48. To do : perf vincent / tel portable / noms des participants a Chaque etape, prop sur pipeline E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

More Related