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 dEsterel v5 /v7 Gérard Berry Chaire Algorithmes, machines et langages Collège de France Cours 6, 21 mai 2013.

Présentations similaires


Présentation au sujet: "La compilation matérielle et logicielle dEsterel v5 /v7 Gérard Berry Chaire Algorithmes, machines et langages Collège de France Cours 6, 21 mai 2013."— Transcription de la présentation:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

21 Calcul explicite – construire un par un les états atteignables avec toutes – leurs transitions : rapidement explosif ! 21/05/ G. Berry, Collège de France Calculer les états atteignables 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

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

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

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

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

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

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

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

29 21/05/ G. Berry, Collège de France BDD Binary Decision Diagram A BB C DD (A B) (C D)

30 ,, : quadratique dans la taille des BDDs 21/05/ G. Berry, Collège de France Opérations directes sur BDDs : linéaire, ou temps 1 (variante des BDD) 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) y 1 y 2 y n. P(x,y 1,y 2,,y n ) cofacteurs f [x i 0 )] f(x 1,x 2,,x i-1, 0, x i+1, y n ), f [x i 1 ] linéaires égalité : temps 1, car comparaison de pointeurs

31 21/05/ G. Berry, Collège de France Ordre des variables : gare à lexponentielle ! (A B) (C D) A

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

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

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

35 21/05/ G. Berry, Collège de France Suppression des registres redondants Définition : r redondant sil peut être remplacé par une fonction des autres registres Théorème : r 0 redondant ssi RSS[r 0 1 ] RSS[r 0 0 ] 0 Alors on peut remplacer r 0 par f RSS[r 0 1 ] ou par f RSS[r 0 0 ] Calcul seulement quadratique ! faire ou ne pas faire selon la taille des cofacteurs r 0 redondant ssi f (r 1, r 2,, r n ) t.q. (r 0, r 1, r 2,, r n ) RSS r 0 f (r 1, r 2,, r n ) r 0 peut être remplacé par toute logique calculant f

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

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

38 21/05/ G. Berry, Collège de France heuristiques doptimisation séquentielle Exemple dalgorithme : 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, si avantageux Alternance de suppression de registres et de simplification logique, à conduire avec grand soin

39 21/05/ G. Berry, Collège de France Loptimisation 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 lexplosion en taille, optimiser module par module (optimisation compositionnelle)

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

41 21/05/ G. Berry, Collège de France Logiciel équationnel : coûteux ! // boot abort pause ; // r1 emit X ; pause ; // r2 emit Y ; when s ; emit Fin ; 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 }

42 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)... 21/05/ G. Berry, Collège de France Compilation logicielle efficace

43 21/05/ G. Berry, Collège de France Logiciel impératif efficace // sc 0 abort pause ; // sc 1 emit X ; pause ; // sc 2 emit Y ; when s ; emit Fin ; // sc 3 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; break; }}

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

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

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

47 21/05/201347G. Berry, Collège de France 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 || loop present R then pause; emit Q else pause end end loop end every end signal GRC Graph Code

48 21/05/201348G. Berry, Collège de France 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 || loop present R then pause; emit Q else pause end end loop end every end signal switch de séquences et pauses

49 21/05/201349G. Berry, Collège de France 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 || loop present R then pause; emit Q else pause end end loop end every end signal émissions,réceptions et dépendances de signaux

50 21/05/201350G. Berry, Collège de France 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 || loop present R then pause; emit Q else pause end end loop end every end signal Forks, Joins, et codes de retour

51 21/05/201351G. Berry, Collège de France 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 || loop present R then pause; emit Q else pause end end loop end every end signal

52 Génération de code efficace – codage sublinéaire efficace de létat (beaucoup de choix) – codage efficace des changements de contextes 21/05/ G. Berry, Collège de France 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... Techniques de compilation plus classiques

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

54 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 21/05/ G. Berry, Collège de France Conclusion 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 !

55 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 ! 21/05/ G. Berry, Collège de France Successeurs Autres langages et systèmes inspirés dEsterel – V. Saraswat : Timed Concurrent Constraint Programming – K. Schneider : Quartz, Averest – Esterel Technologies : SCADE 6 – V. Saraswat, O. Tardieu et. al. : x10 Formalismes graphiques (Esterel + Statecharts) – F. Maraninchi : ARGOS – C. André : SyncCharts – R. de Simone : profil UML MARTE

56 21/05/ G. Berry, Collège de France 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 dexé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.


Télécharger ppt "La compilation matérielle et logicielle dEsterel v5 /v7 Gérard Berry Chaire Algorithmes, machines et langages Collège de France Cours 6, 21 mai 2013."

Présentations similaires


Annonces Google