Chaire Algorithmes, machines et langages Jouer avec le temps Gérard Berry Collège de France Chaire Algorithmes, machines et langages http://www.college-de-france.fr/site/gerard-berry gerard.berry@college-de-france.fr Cours 8, 2 avril 2014
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
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
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
Les règles de déduction true pour C,I fixé, C,I ⊢ ... implicite partout d1 dR d e RS eS bool affaiblissement chaîne les transitions y e x x ey)x ey deS dR R eS chain dS eT maxd,eS∩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
C s1 d1 x s2 d2 xs1s2 bool 0x 0xs1s2 chain chain cas x0 i.e. 0x d1s1 d2s2 join max(d1,d2) s1s2 x0 région s1s2 atteinte en temps max(d1,d2) G. Berry, Collège de France 02/04/2014
C s1 d1 x s2 d2 xs1s2 chain d1s1 bool 0x d1xs1s2 cas x1 i.e. 0x chain chain d1s1 d1d2s2 join max(d1, d1d2) s1s2 x1 région s1s2 atteinte en temps d1d2 G. Berry, Collège de France 02/04/2014
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
Exemple de transformation de preuves C s1 d1 x s2 d2 xs1s2 cas x0 i.e. 0x 0x bool 0x d1s1 chain 0xs1s2 chain d2s2 join max(d1,d2) s1s2 UN-logic Constructive Boolean Logic I(x)0 ⊢ x0 s1x C x0 s2 xs1s xs1s2 1 s11 s2 1 s11 s21 G. Berry, Collège de France 02/04/2014
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
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
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
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
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, tttt, fftt } : B B constante {, tttt, fftt } : B B stricte, pas constante ! G. Berry, Collège de France 02/04/2014
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
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
Disjonction Booléenne en circuits tt, , ,tt tt,tt ,ff tt,ff ff, ff,tt ff,ff oup : xy (xx)(xy) (yy)(xy) oug oud (xx)(yy)(xy) ous G. Berry, Collège de France 02/04/2014
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 xy 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
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 xD 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
Application aux circuits cycliques (S. Malik) d2 d1 C s1 d1 x s2 d2 xs1s2 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, s1s2 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
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
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 xdxv , xff pour xdxv Codage d’un ensemble par sa fonction caractéristique : ex. { (x,y) | x et yff } xdyff Codage d’une fonction par une expression : ex. : xy ( xttytt(xffyff) , xttytt ) Codage de l’image d’un ensemble par une fonction : ex. : si E B2 et f : B2 B2 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
Algorithme itératif symbolique C s1 d1 x s2 d2 xs1s2 (y,z) (x, xyz) (yd,yv,zd,zv,) (xd , xff , xffyffztt(xttyttzff) , xffyffztt) (, ) (x, x) (ff,ff,ff,ff,) (xd , xff , xd , xff) (x, x) (x, xxx) (x, xx) (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
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
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
Ordonnanceur round-robin à jeton ok Cycle combinatoire ! ok req G. Berry, Collège de France 02/04/2014
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
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
Ordonnanceur round-robin à jeton ok Cycle incorrect si aucun registre à 1 au départ ! R1 Condition de constructivité de la partie cyclique : R1R2 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
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
Délai « électrique » UN ou UI ? h d d h’ s sd Délai UN dℝ+ hs,∞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
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
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
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
Echantillonnage par front montant ou descendant G. Berry, Collège de France 02/04/2014
Echantillonnage par front montant ou descendant G. Berry, Collège de France 02/04/2014
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
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
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
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
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
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
à 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
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
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
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
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
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
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
Implémentation de Ptides G. Berry, Collège de France 02/04/2014
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. 283-329, 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-2008-72, EECS Department, University of California, Berkeley http://www.eecs.berkeley.edu/Pubs/TechRpts/2008/EECS-2008-72.html 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