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

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

Présentations similaires


Présentation au sujet: "La compilation matérielle et logicielle d’Esterel v5 /v7"— Transcription de la présentation:

1 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

2 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

3 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

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

5 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

6 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

7 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

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

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

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

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

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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

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

21 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

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

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

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

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

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

27 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

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

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

30 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

31 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

32 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

33 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

34 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

35 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

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

37 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

38 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

39 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

40 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

41 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

42 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

43 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

44 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

45 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

46 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

47 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

48 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

49 é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

50 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

51 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

52 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

53 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

54 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

55 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

56 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


Télécharger ppt "La compilation matérielle et logicielle d’Esterel v5 /v7"

Présentations similaires


Annonces Google