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

Chaire Algorithmes, machines et langages

Présentations similaires


Présentation au sujet: "Chaire Algorithmes, machines et langages"— Transcription de la présentation:

1 Chaire Algorithmes, machines et langages
Jouer avec le temps Gérard Berry Collège de France Chaire Algorithmes, machines et langages Cours 8, 2 avril 2014

2 Agenda Calcul de la constructivité des circuits
Synchroniseurs mésochrones et plésiochrones Ptides : programmation temps-réel distribuée G. Berry, Collège de France 02/04/2014

3 Agenda Calcul de la constructivité des circuits
Synchroniseurs mésochrones et plésiochrones Ptides : programmation temps-réel distribuée G. Berry, Collège de France 02/04/2014

4 Partage de ressources  cycles combinatoires
O  if C then F(G(I)) else G(F(I)) F G C I O 1 Sharad Malik, Analysis of Cyclic Combinational Circuits IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, VOL. 13, NO. 7, JULY 1994 G. Berry, Collège de France 02/04/2014

5 Les règles de déduction
true pour C,I fixé, C,I ⊢ ... implicite partout d1 dR d  e RS eS bool affaiblissement chaîne les transitions y e x  x  ey)x  ey deS dR R  eS chain dS eT maxd,eS∩T join rassemble les entrées d’une porte + règles booléennes pour les régions (valables car appliquées à des signaux stables) + opérations arithmétiques sur les délais G. Berry, Collège de France 02/04/2014

6 C  s1 d1 x  s2 d2 xs1s2
bool 0x 0xs1s2 chain chain cas x0 i.e. 0x d1s1 d2s2 join max(d1,d2) s1s2 x0  région s1s2 atteinte en temps max(d1,d2) G. Berry, Collège de France 02/04/2014

7 C  s1 d1 x  s2 d2 xs1s2
chain d1s1 bool 0x d1xs1s2 cas x1 i.e. 0x chain chain d1s1 d1d2s2 join max(d1, d1d2) s1s2 x1  région s1s2 atteinte en temps d1d2 G. Berry, Collège de France 02/04/2014

8 Logique Booléenne constructive
Circuit C, vecteur d’entrées : I  entrées → {0,1} Formules : I ⊢ e  b, abrégées en e  b si I constant I  I(I) I entrée e  0  e  1 e  1  e  0 e  0 e  e’  0 e’  0 e  e’  1 e  1 e’  1 e  1 e  e’  1 e’  1 e  e’  0 e  0 e’  0 X : e  C e  b X  b G. Berry, Collège de France 02/04/2014

9 Exemple de transformation de preuves
C  s1 d1 x  s2 d2 xs1s2 cas x0 i.e. 0x 0x bool 0x d1s1 chain 0xs1s2 chain d2s2 join max(d1,d2) s1s2 UN-logic Constructive Boolean Logic I(x)0 ⊢ x0 s1x  C x0 s2  xs1s xs1s2 1 s11 s2 1 s11  s21 G. Berry, Collège de France 02/04/2014

10 On arrive au bout ! Pour des délais fixés, la UN-prouvabilité vs. ⊢ est une CNS pour la UN-stabilisation vs. ⊨ Mais toute preuve avec délais peut être transcrite en preuve Booléenne constructive sans délais, et réciproquement ! Autrement dit : la prouvabilité en logique booléenne constructive sans délais caractérise exactement la UN-constructivité uniforme (pour n’importe quels délais) Bonus: les algorithmes de simulation par preuve calculent le temps maximum de réaction du circuit pour chaque vecteur d’entrée G. Berry, Collège de France 02/04/2014

11 Partage de ressources  cycles combinatoires
O  if C then F(G(I)) else G(F(I)) C cycle 1 F C 1 I O 1 G C G. Berry, Collège de France 02/04/2014

12 Partage de ressources  cycles combinatoires
C  1  O  if C then F(G(I)) else G(F(I)) 1 1 F 1 1 I O 1 G 1 Chaque porte est utilisée au plus une fois  pour une entrée donnée, interprétation en temps linéaire (option –I d’Esterel v5) G. Berry, Collège de France 02/04/2014

13 Ordre d’information : la logique ternaire de Scott
tt ff  tt  ff B : booléens de Scott   indéfini   je ne sais pas   je ne veux pas savoir   moins défini que tt,  ,  , tt tt, tt , ff tt, ff ff,  ff, tt ff, ff (x,y)  (x’,y’ ) ssi x  x’ et y  y’ i.e. (x,y) moins défini que (x’,y’) B  B (vu d’avion) G. Berry, Collège de France 02/04/2014

14 Fonctions croissantes
Plus on en donne, plus on en récupère ! f : <D,,>  <D’,’,’ > croissante ssi x, y. x  y  f(x) ’ f(y) Ordre des fonctions : f  f’ ssi f partout moins définie que f’ f  f’ ssi x. f(x)  f’(x) Fonction constante : x, y. f(x)  f(y) Attention : {tt, tttt, fftt } : B  B constante {, tttt, fftt } : B  B stricte, pas constante ! G. Berry, Collège de France 02/04/2014

15 Disjonction Booléenne
tt, , ,tt tt,tt ,ff tt,ff ff, ff,tt ff,ff oup tt, , ,tt tt,tt ,ff tt,ff ff, ff,tt ff,ff oug en C : e || e’ tt, , ,tt tt,tt ,ff tt,ff ff, ff,tt ff,ff oud en C: e’ || e tt, , ,tt tt,tt ,ff tt,ff ff, ff,tt ff,ff ous en C: e | e’ G. Berry, Collège de France 02/04/2014

16 Disjonction Booléenne en logiciel
Plotkin, 1972 Berry, 1977 cf. cours du 09/12/2009 tt, , ,tt tt,tt ,ff tt,ff ff, ff,tt ff,ff oug en C : e || e’ tt, , ,tt tt,tt ,ff tt,ff ff, ff,tt ff,ff oud en C: e’ || e oup tt, , ,tt tt,tt ,ff tt,ff ff, ff,tt ff,ff ous en C: e | e’ G. Berry, Collège de France 02/04/2014

17 Disjonction Booléenne en circuits
tt, , ,tt tt,tt ,ff tt,ff ff, ff,tt ff,ff oup : xy (xx)(xy) (yy)(xy) oug oud (xx)(yy)(xy) ous G. Berry, Collège de France 02/04/2014

18 Ou / et parallèle  logique constructive
I e’  1 I e  e’  1 I e  1 I e  e’  1 tt, , ,tt tt,tt ,ff tt,ff ff, ff,tt ff,ff xy I e  0 I e  e’  0 I e’  0 I e ou non e  1  tt G. Berry, Collège de France 02/04/2014

19 Théorème de point fixe cf. cours lambda-calcul du 9 décembre 2009
Soit <D,,> et f : D  D croissante pour  Un point fixe de f est un xD tel que f (x)  x Théorème 1 : f admet un plus petit point fixe Y(f ) tel que f(Y(f))  Y(f ) et x. f (x)  x  Y(f )  x Théorème 2 : si D est fini (ou D complet et f continue), Théorème 2 : alors Y(f )  Un>0 f n() Algorithme : calculer y1  f (), y2  f (y1), ..., yn+1  f (yn) Algorithme : s’arrêter dès que yn+1  yn Algorithme : alors Y(f)  yn cf. cours lambda-calcul du 9 décembre 2009 G. Berry, Collège de France 02/04/2014

20 Application aux circuits cycliques (S. Malik)
d2 d1 C  s1 d1 x  s2 d2 xs1s2 1. x  0 : f s1,s2  tt,tt  1. x  0 : f ,  tt,tt )  f tt,tt  résultat final s1s2 2. x  1 : f s1,s2  ff, s1s2 2. x  1 : f ,  ff, 2. x  1 : f ff,  ff,tt 2. x  1 : f ff,tt  ff,tt  résultat final s1s2  le circuit est constructif pour toute entrée G. Berry, Collège de France 02/04/2014

21 Evaluation symbolique
Question : au lieu de traiter les vecteurs entrées un par un, ne peut-on pas les traiter tous en même temps ? Réponse : si, par évaluation symbolique représentation des ensembles, fonctions et images directes ou inverses par des expressions booléennes codages efficaces de ces expressions (ex. BDDs) algorithmes d’itération de point fixe sur BDD formels pour la constructivité Implémenté dans Esterel v5 (option –causal) en utilisant le système de BDDs TiGeR Merci à T. Shiple, O. Coudert, J-C. Madre et H. Touati G. Berry, Collège de France 02/04/2014

22 Codages Dual Rail Codage d’un Booléen de Scott par deux Booléens standards : x  (xd,xv) avec   (ff,ff), tt  (tt,tt) et ff  (tt,ff) notation : xtt pour xdxv , xff pour xdxv Codage d’un ensemble par sa fonction caractéristique : ex. { (x,y) | x et yff }  xdyff Codage d’une fonction par une expression : ex. : xy  ( xttytt(xffyff) , xttytt ) Codage de l’image d’un ensemble par une fonction : ex. : si E B2 et f : B2 B2 alors f(E)  { (x’,y’) | (x,y)E. (x’,y’)  f(x,y) } avec (x,y).P(x,y)  P(ff,ff,ff,ff)P(tt,tt,ff,ff)P(tt,ff,ff,ff)  P(ff,ff,tt,tt)... P(tt,ff,tt,ff) Gare aux exponentielles ! G. Berry, Collège de France 02/04/2014

23 Algorithme itératif symbolique
C  s1 d1 x  s2 d2 xs1s2 (y,z)  (x, xyz)  (yd,yv,zd,zv,)  (xd , xff , xffyffztt(xttyttzff) , xffyffztt) (, )  (x, x)   (ff,ff,ff,ff,)  (xd , xff , xd , xff) (x, x)  (x, xxx)  (x, xx)  (xd , xff , xd , xff)  (xd , xff , xd , xd) Y()  (xd , xff , xd , xd)  uniformément constructif Version acyclique : C  s1  x  s2  1 G. Berry, Collège de France 02/04/2014

24 Importance des relations d’entrée
E. Ledinot, Dassault aviation, séminaire du 16/04/2013 input TOP_HORLOGE, INDICATEUR_ON ; relation TOP_HORLOGE # INDICATEUR_ON ; signal FIN, REARMEMENT in abort await TOP_HORLOGE ; emit FIN end when REARMEMENT || every INDICATEUR_ON ; emit REARMEMENT when FIN end signal TOP_HORLOGE # INDICATEUR_ON  FIN # REARMEMENT G. Berry, Collège de France 02/04/2014

25 Bonus L’algorithme symbolique de constructivité
calcul le prédicat d’entrée maximal qui rend le circuit constructif G. Berry, Collège de France 02/04/2014

26 Ordonnanceur round-robin à jeton
ok Cycle combinatoire ! ok req G. Berry, Collège de France 02/04/2014

27 Ordonnanceur round-robin à jeton
req ok le cycle est sain car coupé à une porte ou ok req G. Berry, Collège de France 02/04/2014

28 le point de coupure avec
req ok Le registre à 1 change à chaque cycle, le point de coupure avec ok req G. Berry, Collège de France 02/04/2014

29 Ordonnanceur round-robin à jeton
ok Cycle incorrect si aucun registre à 1 au départ ! R1 Condition de constructivité de la partie cyclique : R1R2 R2 Doit être vraie à l’instant initial et préservée dans l’exécution  calcul des états atteignables (vs. le temps de l’horloge) ok req G. Berry, Collège de France 02/04/2014

30 Calcul symbolique des états atteignables
R0  0 R1  R0 U N(R0) R2  R1 U N(R1) N ... Rn+1  Rn U N(Rn)  Rn R  Rn Vérifier pour tout i que Ri rend le circuit combinatoire constructif Calculer les Ri en utilisant des BDDs - mais .... BDD(F) explose ! Utiliser chaque Ri comme simplifieur pour BDD(F) Puis utiliser R comme optimiseur pour l’implémentation de F (Madre, Coudert, Touati) G. Berry, Collège de France 02/04/2014

31 Délai « électrique » UN ou UI ?
h  d d h’ s sd Délai UN dℝ+ hs,∞d  h’s  d,∞d Délai UI dℝ+ : ajout d’inertie: la sortie ne peut pas changer si l’entrée n’a pas changé depuis d cf. Brzozowski Seger, Shiple Touati Berry (constructivité v1) Inconvénients : deux délais UI accolés ne font pas un délai UI les fils forment une sorte de mémoire etc. G. Berry, Collège de France 02/04/2014

32 Agenda Calcul de la constructivité des circuits
Synchroniseurs mésochrones et plésiochrones Ptides : programmation temps-réel distribuée G. Berry, Collège de France 02/04/2014

33 Synchroniseurs mésochrones et plésiochrones
Low-Latency and Low-Overhead Mesochronous and Plesiochronous Synchronizers Jean Michel Chabloz et Ahmed Hemani, KTH Stockholm Euromicro 2011 G. Berry, Collège de France 02/04/2014

34 Horloges multiples synchrones  même phase mésochrones :
 décalage de phase constant Même fréquence plésiochrones :  décalage de phase variable Fréquences différentes harmoniques  rapports rationnels asynchrones  rapports inconnus / variables G. Berry, Collège de France 02/04/2014

35 Echantillonnage par front montant ou descendant
G. Berry, Collège de France 02/04/2014

36 Echantillonnage par front montant ou descendant
G. Berry, Collège de France 02/04/2014

37 Chemin de données D clk 00 10 11 G. Berry, Collège de France
00 10 11 D clk G. Berry, Collège de France 02/04/2014

38 délai resync T/4 strobe ti-1 d ti clk 00 01 11
00 01 11 clk d délai T/4 resync strobe ti ti-1 G. Berry, Collège de France 02/04/2014

39 ti ti-1 data strobe 1 strobed OK data strobe 1 1 strobed OK
strobed OK data strobe 1 1 strobed OK 0 à ti-1et 1 à ti  front montant 1 à ti-1et 1 à ti  front descendant G. Berry, Collège de France 02/04/2014

40 ti-1 ti data strobe OK 1 strobed  1 1 plus tard ! data strobe OK 1 1
strobed  1 1 plus tard ! data strobe OK 1 1 strobed OK 0 à ti-1et 1 à ti  front montant 1 à ti-1et 1 à ti  front descendant G. Berry, Collège de France 02/04/2014

41 1 clk resync d délai ti-1 strobe clk ti 00 11 01
00 11 01 1 clk resync d délai ti-1 strobe clk ti G. Berry, Collège de France 02/04/2014

42 Horloges multiples synchrones  même phase mésochrones :
 décalage de phase constant Même fréquence plésiochrones :  décalage de phase variable Fréquences différentes harmoniques  rapports rationnels asynchrones  rapports inconnus / variables G. Berry, Collège de France 02/04/2014

43 à utiliser dans 2 coups d’horloge
Idée : l’émetteur inverse strobe à chaque tick et le récepteur prévoit le front montant ou descendant à utiliser dans 2 coups d’horloge G. Berry, Collège de France 02/04/2014

44 Agenda Calcul de la constructivité des circuits
Synchroniseurs mésochrones et plésiochrones Ptides : programmation temps-réel distribuée G. Berry, Collège de France 02/04/2014

45 Ptides (E. Lee et. al) : Programming Temporally Integrated Distributed Systems
Les acteurs spécifient les calculs les messages portent des timestamps précis G. Berry, Collège de France 02/04/2014

46 Synchronisation d’horloges
messages traités dans l’ordre des timestamps synchro d’horloge bornée (PTP) la synchronisation donne un sens global aux timestamps G. Berry, Collège de France 02/04/2014

47 Synchronisation d’horloges
capteurs  acteurs timestamp = date de mesure timestamp  temps limite actuateurs  acteurs actuateurs : timestamps  date de l’action G. Berry, Collège de France 02/04/2014

48 maîtrise des latences par calcul des timestamps
La latence globale des capteurs aux actionneurs est calculable, ce qui rend la correction et la performance du système analysable maîtrise des latences par calcul des timestamps retour au monde physique G. Berry, Collège de France 02/04/2014

49 Conséquence : déterminisme !
délai du réseau borné d hypothèse : délai des capteurs borné s Note : Il faut des bornes aux interfaces réseau pour garantir l’ordre temporel indépen- damment de l’ordre d’exécution des acteurs. application: latence d2 un événement de timestamp t peut être sorti au temps t + s + d + e – d2 hypothèse: erreur d’horloge bornée e G. Berry, Collège de France 02/04/2014

50 Implémentation de Ptides
G. Berry, Collège de France 02/04/2014

51 Références Constructive Boolean Circuits and the Exactness of Timed Ternary Simulation M. Mendler, T. Shiple et G. Berry.   Formal Methods in System Design, Vol.40, No.3, pp , Springer (2012). Constructive Analysis of Cyclic Circuits T. Shiple, G. Berry et H. Touati. Proc. Int. Design and Testing Conference IDTC'96, Paris, France (1996). Low-Latency and Low-Overhead Mesochronous and Plesiochronous Synchronizers Jean Michel Chabloz, Ahmed Hemani Conference: Euromicro Symposium on Digital Systems Design - DSD , 2011 PTIDES: A Programming Model for Distributed Real-Time Embedded Systems P. Derler, T. Huining Feng, E.A. Lee, S. Matic, H.D.Patel, YangZ hao, Jia Zou Report EECS , EECS Department, University of California, Berkeley On the Schedulability of Real-Time Discrete Event Systems E. Matsikoudis, C. Stergiou, E.A. Lee. Proc EMSOFT 2013. G. Berry, Collège de France 02/04/2014


Télécharger ppt "Chaire Algorithmes, machines et langages"

Présentations similaires


Annonces Google