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

Vérification par modèle de parties de SoC Expérimentations et enrichissement d’outils de vérification existants Emmanuelle Encrenaz-Tiphène Laboratoire.

Présentations similaires


Présentation au sujet: "Vérification par modèle de parties de SoC Expérimentations et enrichissement d’outils de vérification existants Emmanuelle Encrenaz-Tiphène Laboratoire."— Transcription de la présentation:

1 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 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 Protocole de communication / SPIN : ZCSP
Index 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 Protocole de communication / SPIN : ANI
Anneau unidirectionnel tronçonné avec circulation d’un jeton par tronçon REQ DATA Tâche Maître Esclave Interface Bus - M Bus - E [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 , CMD> CMD = LOCK/UNLOCK/SET/CLEAR/READ/WRITE/RW Jeton DATA : <libre , nseq 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 ( états) 2 jetons, 2 maîtres et 2 esclaves : trop gros E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

14 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 R0 R1 R2 R3 R4 R5 R6 R7 WI WT Réseau SPIN Protocole VCI E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

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

16 VCI-SPIN : la correction du deadlock
Eviter le partage des liens descendants pour les REQ et les REP VCI-SPIN wrappers SPIN network I3 I4 T3 T4 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 DDD : Structure Nœuds : variables Arcs : valeur dans les entiers
[Couvreur Encrenaz Poitrenaud Paviot Wacrenier, DGA , 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 b 1 2 a 1 partage 2 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 normalisation 2 a b a 1 2 2 1 1 partage 1 b 1 b 1 1 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 1 2 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 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 1 v0 A . A . B v1 . v1 1 . 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  (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 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 E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

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

26 DDD : Homomorphismes inductifs (3)
Exemple : var1 = var2 SetVar 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 Down Down(var1, var2)(1) = T Down(var1, var2)(e, x) = var1 — e — Id si e = var2 Up(e, x) o Down(var1, var2) sinon x 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 1 3 4 1 4 1 4 4 1 4 4 1 4 3 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 Target is always ready A A_prime Target may send WAIT B B_prime Target may send RETRY C C_prime 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 De Wi à Wi+1 Une machine de Moore déterministe et complète Wi
Un incrément : < I+, O+, S+, R+> Wi+1 ab b ... s1 s3 s2 s4 a ... s3 s2 s1 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 De Wi à K(Wi) De la machine de Moore à la structure de Kripke
... s3 s2 s1 ... s3.a s2.a s1.a 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 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). 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) U f') 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 Expérimentation avec VIS
VCI-PI master wrapper slave BCU PI-bus VCI initiator target 1 2 3a 3b 4 5 6 7 8 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 : bdd size : 3705 nb de var : 333 états accessibles : 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 : E. Encrenaz-Tiphène LIP6 – séminaire LSV 1/06/04

43 Nouvelles transformations
Prise en compte de la structure particulière des incréments ab b ... 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


Télécharger ppt "Vérification par modèle de parties de SoC Expérimentations et enrichissement d’outils de vérification existants Emmanuelle Encrenaz-Tiphène Laboratoire."

Présentations similaires


Annonces Google