La compilation matérielle et logicielle d’Esterel v5 /v7

Slides:



Advertisements
Présentations similaires
17ème Forum sur les Impédances Electrochimiques, 31/01/05, Paris
Advertisements

LES NOMBRES PREMIERS ET COMPOSÉS
[number 1-100].
Le moteur
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
Produit Gammes Nomenclatures Modules Techniques Prix de Revient Prix de Vente Modules Techniques Client Marges Mise en route Temps Unitaire Prix (Ex:
Qui a le nombre qui vient après 8 ?
Mon carnet De comportement
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
Classe : …………… Nom : …………………………………… Date : ………………..
Les numéros
ACTIVITES Les fractions (10).
Est Ouest Sud 11 1 Nord 1 Laval Du Breuil, Adstock, Québec I-17-17ACBLScore S0417 Allez à 1 Est Allez à 4 Sud Allez à 3 Est Allez à 2 Ouest RndNE
Est Ouest Sud 11 1 Nord 1 RondeNE SO
Est Ouest Sud 11 1 Nord 1 Individuel 15 ou 16 joueurs 15 rondes - 30 étuis Laval Du Breuil Adstock, Québec I-16-15ACBLScore S0415 RndNE
Les Prepositions.
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
Construction des 3 hauteurs
Analyse de la variance à un facteur
Cours Systèmes logiques
28 La maison.
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Des RRA à la diagnosticabilité
CALENDRIER PLAYBOY 2020 Cliquez pour avancer.
Congé Férié Journée Pédagogique Rencontre avec les athlètes 13hrs-14hrs Hors Glace 14hrs-15hrs 30 Glace Arena Vaudreuil-Dorion 14hrs-15hrs Glace 15hrs-16hrs.
LUNDI – MARDI – MERCREDI – JEUDI – VENDREDI – SAMEDI – DIMANCHE
La compilation logicielle dEsterel v5 Gérard Berry Chaire Algorithmes, machines et langages Collège de France Cours 4, 23 avril 2013.
1 SERVICE PUBLIC DE LEMPLOI REGION ILE DE France Tableau de bord Juillet- Août 2007.
Cours #8 Flot de conception d’un circuit numérique
LUNDI – MARDI – MERCREDI – JEUDI – VENDREDI – SAMEDI – DIMANCHE
1.2 COMPOSANTES DES VECTEURS
La Saint-Valentin Par Matt Maxwell.
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
PLD GHome H4214 Piccolo Thomas Gu Lei Deville Romain Huang Yachen
Représentation des systèmes dynamiques dans l’espace d’état
Les modèles linéaires (Generalized Linear Models, GLM)
Notre calendrier français MARS 2014
Les changements de numéraire dans la tarification d’options
Chapitre 3 Syntaxe et sémantique.
Hybridation sp3 du carbone
3ème partie: les filtres
C'est pour bientôt.....
Les nombres.
Veuillez trouver ci-joint
Les Nombres! de 0 à 20.
Réunion 29/11/20131 Projet L412 Nov Recherche dun ouvrage …. Sur Dieppe.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
LUNDI – MARDI – MERCREDI – JEUDI – VENDREDI – SAMEDI – DIMANCHE
Stage 2A CS80 pour Origin 1/28. 1) Presentation of the internship 2) The Multi-Oscillator 3) Connection-GUI’s API Conclusion Stage 2A CS80 pour Origin.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
1 Modèle pédagogique d’un système d’apprentissage (SA)
Equation différentielle
10 paires -. 9 séries de 3 étuis ( n° 1 à 27 ) 9 positions à jouer 5 tables Réalisé par M..Chardon.
CALENDRIER-PLAYBOY 2020.
1. Présentation générale du système
USAM BRIDGE H O W E L L -CLASSIQUE
6 Nombres et Heures 20 vingt 30 trente 40 quarante.
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Synthèse logique: Quelques algorithmes et techniques La synthèse logique consiste en un très.
9 paires séries de 3 étuis ( n° 1 à 27 )
Quel est l’intérêt d’utiliser le diagramme de Gantt dans la démarche de projet A partir d’un exemple concret, nous allons pouvoir exploiter plusieurs parties.
Amélioration de la simulation stochastique
Les Chiffres Prêts?
Médiathèque de Chauffailles du 3 au 28 mars 2009.
Transcription de la présentation:

La compilation matérielle et logicielle d’Esterel v5 /v7 Gérard Berry Chaire Algorithmes, machines et langages Collège de France Cours 6, 21 mai 2013

Agenda Clock-gating et weak suspend Optimisation des circuits générés Génération de logiciels efficaces Conclusion et remerciements G. Berry, Collège de France 21/05/2013

Agenda Clock-gating et weak suspend Optimisation des circuits générés Génération de logiciels efficaces Conclusion et remerciements G. Berry, Collège de France 21/05/2013

Rappel : suspension logicielle (^Z) Alternative : règles directes pour G. Berry, Collège de France 21/05/2013

Klaus Schneider : suspension faible clock-gating dans les circuits : La logique combinatoire calcule, mais l’état ne change pas weak suspend p when [immediate] s Le clock-gating n’est plus seulement une optimisation électrique, il reçoit une vraie sémantique ! G. Berry, Collège de France 21/05/2013

Impémentation logique ou électrique s 1 s logique de contrôle FPGA, logiciel vérification formelle masquage d’horloge (clock gating) ASIC Option du compilateur esterelv7 G. Berry, Collège de France 21/05/2013

RTL Synthesis SystemC  Design Specification Capture Architecture Design Specification Capture Design Functional Spec Verification Requirements Optimized for synthesis DFT-ready SystemC & RTL flow integration SystemC RTL Synthesis .sc .vhd Project Structure Automatic Documentation Project Management Executable Specification Exporter Architecture Diagram Editor Simulator Design Verifier Model Reporter Code & Testbench Generators Sequential Equivalence Checker IDE Player Debugging & Simulation Formal Verification Design Verification Sequential Equivalence check DUT  G. Berry, Collège de France 21/05/2013

G. Berry, Collège de France 21/05/2013

I absent état de départ exécuté état d’arrivée G. Berry, Collège de France 21/05/2013

I présent conservé non activé G. Berry, Collège de France 21/05/2013

I absent état de départ exécuté état d’arrivée G. Berry, Collège de France 21/05/2013

I présent conservé exécuté non activé G. Berry, Collège de France 21/05/2013

Agenda Clock-gating et weak suspend Optimisation des circuits générés Génération de logiciels efficaces Conclusion et remerciements G. Berry, Collège de France 21/05/2013

Un tronc et quatre branches de compilation foo.strl bar.strl foo.eis bar.eis all.eil langage noyau optim circuit abstrait all.ein Verilog VHDL C / C++ SystemC (équationnel) vérifieur formel sur Prover SL C / C++ SystemC rapide Traçabilité complète pour debugging G. Berry, Collège de France 21/05/2013

Le circuit d’ABRO – bon compromis logique / registres optimisé loop abort { await A || await B }; emit O ; halt when R; end loop loop { await A || await B }; emit O each R G. Berry, Collège de France 21/05/2013

Optimisation Construction du circuit bon compromis logique / registres, mais un peu gras Optimisation de la logique combinatoire chemin critique pour implémentation matérielle taille pour simulation logicielle Remplacement de registres par de la logique pas trop, juste le gras ! Simplification par relations statiques Simplification par l’espace des états atteignables Implémentation : SIS (Berkeley) + TiGeR G. Berry, Collège de France 21/05/2013

Optimisation du contrôle Logique combinatoire registres Optimiser la logique  compromis taille / profondeur Théorie et pratique très élaborées, industrie G. Berry, Collège de France 21/05/2013

Optimisation par réduction des entrées prédicat restreignant les entrées Logique combinatoire Logique combinatoire registres G. Berry, Collège de France 21/05/2013

Réduction des entrées combinatoires V Logique combinatoire Logique combinatoire // relations d’entrées relation S => HS ; relation UL # UR # LL # LR ; G. Berry, Collège de France 21/05/2013

Réduction par états atteignables Logique combinatoire RSS  états atteignables Logique combinatoire registres G. Berry, Collège de France 21/05/2013

Calculer les états atteignables Calcul explicite construire un par un les états atteignables avec toutes leurs transitions : rapidement explosif ! Calcul implicite (symbolique) construire des prédicats Booléens représentant les espaces d’états atteignables représenter ces prédicats par des BDDs Binary Decision Diagrams : NP-complet, mais fonctionne bien en pratique quand le contrôle est dominant Billon (Bull), Bryant (Carnegie-Mellon), Madre / Coudert / Touati (DEC), Somenzi (Boulder), The Art of Computer Programming, D.Knuth vol. 4a G. Berry, Collège de France 21/05/2013

Arbre de Shannon (A  B)  (C  D) A B C D G. Berry, Collège de France 21/05/2013

Suppression des feuilles identiques (A  B)  (C  D) A B C D G. Berry, Collège de France 21/05/2013

Suppression des feuilles identiques (A  B)  (C  D) A B C D G. Berry, Collège de France 21/05/2013

Suppression des feuilles identiques (A  B)  (C  D) A B C D G. Berry, Collège de France 21/05/2013

Suppression des feuilles identiques (A  B)  (C  D) A B C D G. Berry, Collège de France 21/05/2013

Partage de sous-arbres identiques (A  B)  (C  D) A B B C C D D D D G. Berry, Collège de France 21/05/2013

Partage de sous-arbres identiques (A  B)  (C  D) A B C D G. Berry, Collège de France 21/05/2013

BDD  Binary Decision Diagram (A  B)  (C  D) A B C D G. Berry, Collège de France 21/05/2013

Opérations directes sur BDDs égalité : temps 1, car comparaison de pointeurs , ,  : quadratique dans la taille des BDDs  : linéaire, ou temps 1 (variante des BDD) cofacteurs f [xi 0)]  f(x1,x2,,xi-1,0, xi+1, yn), f [xi 1] linéaires f(x)  y. P(x,y) : équivalent à P(x,0)  P(x,1), quadratique f(x)  y. P(x,y) : équivalent à P(x,0)  P(x,1), quadratique Mais combiner ces opérations peut être exponentiel ! exemple: f(x)  y1 y2  yn. P(x,y1,y2,,yn) G. Berry, Collège de France 21/05/2013

Ordre des variables : gare à l’exponentielle ! (A  B)  (C  D) A<B<C<D A<C<B<D Heuristiques statiques / dynamiques A C B D A C B D G. Berry, Collège de France 21/05/2013

Calcul symbolique des états atteignables A chaque étape, utiliser Ri comme simplificateur malin pour N (Coudert, Madre) G. Berry, Collège de France 21/05/2013

ORSS  sur-approximmation du RSS ( p ; q ; (r || s || t)) || (u ; v) || ; || ; p q r s t u v G. Berry, Collège de France 21/05/2013

ORSS  sur-approximmation du RSS incompatible ( p ; q ; (r || s || t)) || (u ; v) p  q  (pq)  p  q  r  (p  q  r  1)  p  ORSS(p)   ORSS  ( p  q  (r  s  t))  ( u  v) p q r s t u v p. RSS(p)  ORSS(p) G. Berry, Collège de France 21/05/2013

Suppression des registres redondants Définition : r redondant s’il peut être remplacé par une fonction des autres registres r0 redondant ssi  f (r1, r2,, rn) t.q.  (r0, r1, r2,, rn)RSS  r0  f (r1, r2,, rn)  r0 peut être remplacé par toute logique calculant f Théorème : r0 redondant ssi RSS[r0 1]  RSS[r0 0]  0 Alors on peut remplacer r0 par f  RSS[r0 1] ou par f  RSS[r0 0] Calcul seulement quadratique ! faire ou ne pas faire selon la taille des cofacteurs G. Berry, Collège de France 21/05/2013

Multiplexage de registres ; || || (p || q || r) ; (s || t || u) G. Berry, Collège de France 21/05/2013

Multiplexage de registres ; || || démultiplexeur pas toujours une bonne idée, à cause du coût en logique G. Berry, Collège de France 21/05/2013

heuristiques d’optimisation séquentielle Exemple d’algorithme :  calculer ORSS; simplifier la logique par ORSS;  itérer jusqu’à point fixe  calculer étape de RSS  simplifier la logique par le résultat pour l’étape suivante  itérer  enlever les registres inutiles et simplifier la logique, si avantageux multiplexer les registres et simplifier la logique, Alternance de suppression de registres et de simplification logique, à conduire avec grand soin G. Berry, Collège de France 21/05/2013

L’optimisation séquentielle en pratique WRISTWATCH nodes = 462 latches = 35 lits = 990 levels = 29 initial optimisation en vitesse (circuit matériel, FPGA) WRISTWATCH nodes = 97 latches = 12 lits = 366 levels = 3 WRISTWATCH nodes = 98 latches = 11 lits = 195 levels = 15 optimisation en surface (logiciel équationnel) Pour éviter l’explosion en taille, optimiser module par module (optimisation compositionnelle) G. Berry, Collège de France 21/05/2013

Agenda Clock-gating et weak suspend Optimisation des circuits générés Génération de logiciels efficaces Conclusion et remerciements G. Berry, Collège de France 21/05/2013

Logiciel équationnel : coûteux ! Une inefficacité fondamentale en logiciel : on calcule toutes les équations, coût linéaire int boot 1, r10, r20 ; void React () { int sel, res ; sel  r1 | r2 ; res  sel & !s X  r1 & res // r1_K0 Y  r2 & res // r2_K0 Fin  sel & (r2 | s) boot  0; r1  boot ; r2  r1 & res } // boot abort pause ; // r1 emit X ; pause ; // r2 emit Y ; when s ; emit Fin ; G. Berry, Collège de France 21/05/2013

Compilation logicielle efficace Stephen Edwards : sublinéaire Synopsys compiler (2000) Columbia compiler (2001) D. Potop compilation efficace pour Esterel v5, GRC Graph Code (2002) E. Closse, D. Weil et. al. compilateur Saxo-RT, France Télécom (2000) G. Berry, M. Perreaut compilation efficace dans Esterel v7 (Edwards / Potop) Klaus Schneider (Quartz, Averest) Partha Roop (microprocesseur spécifique) ... G. Berry, Collège de France 21/05/2013

Logiciel impératif efficace Codage sublinéaire de l’état du programme utilisation systématique de if-then-else et switch int sc0 ; // switch count void React () { XY0 ; switch (sc) case 0 : sc1; break ; case 1 : if (s) { Fin1; sc3; } else { X1; sc2; } break; case 2 : if (!s) Y1; Fin1; sc3; }} // sc0 abort pause ; // sc1 emit X ; pause ; // sc2 emit Y ; when s ; emit Fin ; // sc3 G. Berry, Collège de France 21/05/2013

Implémentation logicielle sublinéaire (p ; q ; (r || s || t)) || (u ; v) || sc1 ; 1 2 3 || sc2 ; 1 2 p q r s t  u v  G. Berry, Collège de France 21/05/2013

Implémentation logicielle sublinéaire (p ; q ; (r || s || t)) || (u ; v) || sc1 ; 1 2 3 sc12 | sc21 || sc2 ; 1 2 p q r s t  u v  G. Berry, Collège de France 21/05/2013

Implémentation logicielle sublinéaire (p ; q ; (r ; s )|| t)) || (u ; v) || sc1 ; 1 2 3 sc13 | sc21 | sc32 || sc2 ; sc3 1 2 ; r s 1 2 p q t  u v  G. Berry, Collège de France 21/05/2013

GRC  Graph Code input I, S; output O, Q; signal R, A in every S do await I; weak abort sustain R when immediate A; emit O || loop pause; present R then emit A end end loop emit Q else pause end every end signal GRC  Graph Code G. Berry, Collège de France 21/05/2013

switch de séquences et pauses input I, S; output O, Q; signal R, A in every S do await I; weak abort sustain R when immediate A; emit O || loop pause; present R then emit A end end loop emit Q else pause end every end signal switch de séquences et pauses G. Berry, Collège de France 21/05/2013

émissions,réceptions et dépendances de signaux input I, S; output O, Q; signal R, A in every S do await I; weak abort sustain R when immediate A; emit O || loop pause; present R then emit A end end loop emit Q else pause end every end signal G. Berry, Collège de France 21/05/2013

Forks, Joins, et codes de retour input I, S; output O, Q; signal R, A in every S do await I; weak abort sustain R when immediate A; emit O || loop pause; present R then emit A end end loop emit Q else pause end every end signal Forks, Joins, et codes de retour G. Berry, Collège de France 21/05/2013

input I, S; output O, Q; signal R, A in every S do await I; weak abort sustain R when immediate A; emit O || loop pause; present R then emit A end end loop emit Q else pause end every end signal G. Berry, Collège de France 21/05/2013

Suite de la compilation Ordonnancement statique des branches parallèles nécessité de changement de contextes statiques entre branches qui émettent et reçoivent des signaux Traitement efficace des tableaux de données ou code expansion ou pas expansion ? demanderait un exposé à soi tout seul... Génération de code efficace codage sublinéaire efficace de l’état (beaucoup de choix) codage efficace des changements de contextes Techniques de compilation plus classiques G. Berry, Collège de France 21/05/2013

Agenda Clock-gating et weak suspend Optimisation des circuits générés Génération de logiciels efficaces Conclusion et remerciements G. Berry, Collège de France 21/05/2013

Et des utilisateurs académiques et industriels variés Conclusion Esterel : un langage pour parler du temps et des événements temps multiforme, synchronisme parfait, séquence, multi-horloge ( 2014) signaux + séquence + parallélisme + préemption + chemins de données causalité constructive Des compilateurs / synthétiseurs de circuits vers automates, logiciels équationnels, logiciels rapides vers circuits efficaces (aussi bons ou meilleurs que ceux faits à la main) intégrés dans des environnements de programmation Des systèmes de vérification formelle ( 2015) Et des utilisateurs académiques et industriels variés Merci à eux ! G. Berry, Collège de France 21/05/2013

Successeurs Formalismes graphiques (Esterel + Statecharts) F. Maraninchi : ARGOS C. André : SyncCharts R. de Simone : profil UML MARTE Langages réactifs F. Boussinot : Reactive C, SugarCubes, Junior, etc. L. Mandel, M. Pouzet : Reactive ML M. Serrano, GB, C. Nicolas : Hop / HipHop  semaine prochaine ! Autres langages et systèmes  inspirés d’Esterel V. Saraswat : Timed Concurrent Constraint Programming K. Schneider : Quartz, Averest Esterel Technologies : SCADE 6 V. Saraswat, O. Tardieu et. al. : x10 G. Berry, Collège de France 21/05/2013

Remerciements Esterel v1-v2 : JP. Rigault, JP. Marmorat, S. Moisan, J. Camerini, L. Cosserat, P. Couronné, G. Gonthier Esterel v3 : R. Bernhard, F. Boussinot, JM. Tanzi, X. Fornari, Esterel v4-v6 :, L. Henry-Gréard, D. Potop, H. Toma, J. Vuillemin SyncCharts, machines d’exécution : Charles André, Daniel Gaffé Esterel v7 : M. Kishinevsky, B. Pagano, M. Perreaut, L. Arditi, A. Boulan, L. Desnogues, O. Tardieu Vérification : R. de Simone, D. Vergamini, V. Roy, JC. Madre, O. Coudert, H,. Touati, A. Bouali, K. Sunesen Environnements : G. Kahn, C. Nahaboo, Y. Bertot, JB Saint, Equipe Esterel Studio Esterel Technologies : E. Bantegnie, B. Dion, G. Siegel, JF. Baggioni Collaborateurs internationaux : Ed Lee, S. Edwards, S. Ramesh, RK Shyamasundar, L. Lavagno, M. Mendler, P. Roop, E. Sentovich, R. Sethi, r. Van Hanxleden, L. Zaffallon, etc. G. Berry, Collège de France 21/05/2013