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 LIP6 – séminaire LSV 1/06/04 Vérification par modèle de parties de SoC Expérimentations et enrichissement doutils de vérification existants.

Présentations similaires


Présentation au sujet: "E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 Vérification par modèle de parties de SoC Expérimentations et enrichissement doutils de vérification existants."— Transcription de la présentation:

1 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 Vérification par modèle de parties de SoC Expérimentations et enrichissement doutils de vérification existants Emmanuelle Encrenaz-Tiphène Laboratoire dInformatique 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

2 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 Quest-ce quun SoC (System on Chip) ? Intégration dune 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, …

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

4 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 Flot de conception dun SoC Extraire le parallélisme de contrôle de lapplication –Modélisation sous forme de processus concurrents (mieux : réseaux de Kahn) –Exploration architecturale –Implanter certaines tâches en matériel et dautres 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

5 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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

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

7 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 Plan de lexposé 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

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

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

10 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 Protocole de communication / SPIN : ZCSP Propriétés : - tout message finira par quitter la table - sil ny a plus de nouveau message, la table sera vidée PropertyLiveness Ending POreductionNoYes Transitions (10^6) DepthReached Memoryused (Mbyte) CPU time35h0912h5519h25 ValidationResultValid

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

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

13 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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 ( états) 2 jetons, 2 maîtres et 2 esclaves : trop gros

14 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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 dordonnancement global (algorithme de routage local) Un message est composé de n paquets REQUETE et n paquets REPONSE … … R0R1 R2R3 R4 R5R6 R7 WI WT Protocole VCI Réseau SPIN

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

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

17 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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 lenvironnement –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 dordre 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)

18 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 Un model-checker symbolique pour ProMeLa 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 Représentation de systèmes dynamiques bornés (la borne nest pas connue a priori) : variables entières / canaux de communication / run

19 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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 ab b a a b partage [Couvreur Encrenaz Poitrenaud Paviot Wacrenier, DGA , ATPN 2002]

20 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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 ab b a a b normalisation partage

21 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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

22 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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 : A A. B v0v v1v v0v v1v1 1 B

23 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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 o 2 Cas général : d, d deux DDD (0) = 0 (d) + (d) (d + d) d d (d) (d)

24 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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

25 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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

26 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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

27 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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

28 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 DDD pour les programmes promela 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 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é [Beaudenon Encrenaz 2003-…]

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

30 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 Model-checker symbolique intégré à SPIN 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 lexpression de a et de b (non évaluée) connecter la sortie de ladditionneur à la variable a : xnor réordonnancement dynamique des variables Influence de lordre des variables (pas de réordonnancement dynamique) Affectation dune expression non évaluée DDD hiérarchiques Systèmes dynamiques [Taktak Beaudenon 2004]

31 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 Méthode de conception incrémentale 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 [CERME 2000; Encrenaz Braunstein 2002-…]

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

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

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

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

36 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 De W i à W i+1 a a a a... s3s3 s2s2 s1s1 abababab abab b b ababb s1s1 s3s3 s2s2 s4s4 ab b B est le signal dincrément, b est la valeur silencieuse et b la valeur active Une machine de Moore déterministe et complète W i Un incrément : W i+1

37 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 De W i à K(W i )... s 3. as 2. a s 1. a... s 3. a s 1. a s 2. a a a a a... s3s3 s2s2 s1s1 Les entrées (gardes des transitions) sont incorporées dans létat source De la machine de Moore à la structure de Kripke

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

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

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

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

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

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

44 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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 dun 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)

45 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 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) ?

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

47 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 Amélioration de CTL - MC Gain par rapport au BDD monolithique Perte par rapport à la méthode partitionnée (sur lexemple) pas de combinaison simple avec la méthode partitionnée Pb des systèmes clôts (pas de réduction de linterface (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 lensemble est représentable sur bien plus de 500 variables, mais dont le modèle réduit tient sur 500 variables)

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


Télécharger ppt "E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04 Vérification par modèle de parties de SoC Expérimentations et enrichissement doutils de vérification existants."

Présentations similaires


Annonces Google