Parler du temps, mais de manière formelle Gérard Berry Chaire Algorithmes, machines et langages Collège de France Cours 1, le 2 avril 2013
02/04/ G. Berry, Collège de France Agenda 1.Pourquoi parler du temps 2.Bugs et mauvais designs liés au temps 3.La question du temps 4.Circuits et échanges temps-espace 5.Circuits et logique constructive
Pourquoi parler du temps et des événements Systèmes embarqués temps-réel Circuits et systèmes sur puces (SoCs) Simulation de systèmes physiques Orchestration de services Web Composition et interprétation musicale Neurosciences, Biologie systémique, etc. 3 G. Berry, Collège de France 02/04/2013 La gestion du temps et des événements est essentielle dans les systèmes du XXI e siècle Mais linformatique classique nen parle pas !
02/04/ G. Berry, Collège de France Les systèmes embarqués du XX e siècle Compacts, fonctionnalités claires –centrées données : contrôle continu, traitement du signal –centrées contrôle : protocoles, écrans, gestion de modes Comportement déterministe – automatique fondée sur le temps – gestion déterministe des réactions à lenvironnement – qui est lui non-déterministe, bien sûr –
02/04/ G. Berry, Collège de France Les systèmes embarqués du XX e siècle Implémentation manuelle maths manuelles specs textuelles codage ASM, C, ADA compilation standard test exhaustif Implémentation formelle modélisation par ODE spécification formelle codage de haut niveau codegen automatique vérification formelle Infrastructure PLCs P, ECUs OS embarqués IHM simples
02/04/ G. Berry, Collège de France Les systèmes embarqués du XXI e siècle Bien plus complexes, distribués, déterministes – plusieurs fonction sur chaque SoC ou ECU, plusieurs horloges – coordination des sous-systèmes – réseaux embarqués : NoC, PAN, LAN, Time-Triggered, etc. Mélange de styles – contrôle continu + automates, syatèmes distribué, moins déterministes – GALS, temps continu + discret. etc. Interfaces asynchrones best effort depuis le Web
02/04/ G. Berry, Collège de France Les circuits du XX e siècle Fonctionnalité simple Horloge unique Physique sans souci Pas de gestion dénergie
02/04/ G. Berry, Collège de France Les circuits du XXI e siècle Nécessité de niveaux de simulation multiples Construire le logiciel avant le chip simulation TLM (Transaction Level Modeling) IPs multiples, horloges multiples, réseaux (NoCs) protocoles de communication et gestion dénergie complexes
02/04/ G. Berry, Collège de France La musique du XX e siècle
02/04/ G. Berry, Collège de France La musique du XXI e siècle Antescofo : suivi temps-réel Partition algorithmique
Comprendre ce qui sest passé – debugging, histoire, paléontologie, etc. – établissement des datations – recherche des causalités et des corrélations 02/04/ G. Berry, Collège de France Objectifs Organiser lavenir – prévoir ce qui peut se passer – restreindre ce qui pourra se passer – spécifier ce qui devra se passer – programmer pour que ça se passe comme spécifié – analyser et vérifier ce quon a spécifié et programmé (synchronisations, timings, etc.) Le rôle de lhistorien est de prévoir le passé Henry Laurens
02/04/ G. Berry, Collège de France Agenda 1.Pourquoi parler du temps 2.Bugs et mauvais designs liés au temps 3.La question du temps 4.Circuits et échanges temps-espace 5.Circuits et logique constructive
02/04/ G. Berry, Collège de France Un beau bug de temps Lecteur MP3 / video Zune, 31 décembre 2008 year = ORIGINYEAR; /* = 1980 */ while (days > 365) { if (IsLeapYear(year)) { if (days > 366) { days -= 366; year += 1; } } else { days -= 365; year += 1; }
02/04/ G. Berry, Collège de France Un beau bug de temps Lecteur MP3 / video Zune, 31 décembre 2008 year = ORIGINYEAR; /* = 1980 */ while (days > 365) { if (IsLeapYear(year)) { if (days > 366) { days -= 366; year += 1; } } else { days -= 365; year += 1; } Damned ! Fix: enlever la batterie ou attendre 24h
02/04/ G. Berry, Collège de France Bug de la Sony (fat) PS3, 28 février 1 er mars 2010 – bug dans le firmware dun processeur auxiliaire – date 1 e janvier 2000 – état des jeux inaccessible ou inconsistant etc. – problème connu et déjà corrigé ailleurs ! Fix: enlever la batterie ou attendre 24h Bugs de liPhone, 2010 / 2011 – heure dhiver 2010 : correction automatique de lheure, – mais pas du réveil ! – Le lendemain : panne de réveil !
02/04/201316G. Berry, Collège de France Dharan, 25 févier 1991, bug des missiles Patriot – les arrondis dégradent la précision de lheure – après 110h, lerreur est de 0.34 s – le Patriot manque le Scud – 28 soldats morts, 98 blessés Fix: rebooter le systèmes toutes les quelques heures
02/04/ G. Berry, Collège de France Débordement de buffer Un programme qui plante un jour par semaine
02/04/ G. Berry, Collège de France Débordement de buffer Monday Tuesday Wednesday y Un programme qui plante un jour par semaine
02/04/ G. Berry, Collège de France Deux boules et un mur v chocs actions
02/04/ G. Berry, Collège de France Deux boules et un mur Modeleurs actuels OK
02/04/ G. Berry, Collège de France Boule collée au mur modeleurs actuels v pour certains modes dexécution
02/04/ G. Berry, Collège de France Esterel v7 pour les circuits données + contrôle
02/04/ G. Berry, Collège de France Scade 6 pour embarqué certifié : CC+FSM SCADE 6 Unifie FSM & CC totalement mélangeables langage fonctionnel tableaux fonctionnels sémantique formelle compilateur certifié preuve formelle compilateur prouvé? Voir aussi Ptolemy II, Ed Lee, UC Berkeley
02/04/ G. Berry, Collège de France Nul: ordonnancement par position graphique choix initial: parallélisme résolu par blocs
02/04/ G. Berry, Collège de France Nul: ordonnancement par ordre de création
02/04/ G. Berry, Collège de France Compliqué: réordonnancement manuel plein de règles de renumérotation priorités volages, cut & paste imconpréhensible, etc.
02/04/201327G. Berry, Collège de France Mais pourquoi utiliser des priorités ? Le parallélisme doit être par construction associatif, commutatif, et modulaire! Pollution: Le parallélisme au niveau du bloc asservit les dépendances causales aux dépendances dimplémentation La sémantique et limplémentation doivent traiter le parallélisme, pas lutilisateur ! Cf. Lustre, Esterel, SyncCharts, SCADE 6, Ptolemy II,...
02/04/ G. Berry, Collège de France La devise du cours La sémantique doit suivre lintuition Limplémentation doit suivre la sémantique Ne jamais dévier !
02/04/ G. Berry, Collège de France Agenda 1.Pourquoi parler du temps 2.Bugs et mauvais designs liés au temps 3.La question du temps 4.Circuits et échanges temps-espace 5.Circuits et logique constructive
Perception et représentation du temps – imprécises, ambiguës, variables selon les civilisations (cf leçon inaugurale) langue fleurie mais remarquablement incompétente 02/04/ G. Berry, Collège de France Perception et langue du temps Manifeste pour la réhabilitation du pavillon des poids et mesures G. Berry Viridis Candela, Correspondancier du Collège de Pataphysique, n o 1, pages (2007)
La nature du temps – temps physique / temps logique – temps continu / temps discret – temps plat / temps hiérarchique – temps absolu / temps multiforme 02/04/ G. Berry, Collège de France La question du temps Les concepts temporels – instants, intervalles – passé, présent, futur – événements sur instants ou intervalles – précédence, causalité, corrélation – lépaisseur de linstant – lépaisseur de laction
02/04/ G. Berry, Collège de France La question du temps Le partage du temps – comparaison ou partage du temps dans lespace – synchronisme / asynchronisme des actions – comment réaliser le synchronisme ? – comment synchroniser lasynchronisme ? – comment marier les deux ? Le destin du futur – déterminisme / confluence / non-déterminisme – prévisibilité / imprévisibilité Le rapport temps/ espace – codage spatial vs. temporel de linformation – échange temps / espace dans les circuits et logiciels – rapport temps / espace dans les systèmes distribués
02/04/ G. Berry, Collège de France La question du temps Les formalismes du temps – la droite réelle de la physique classique – larbre de Peano des nombres 2-adiques – les logiques temporelles – les langages de spécification temporels – les langages de programmation temporels – les structures dévénements temporelles Un domaine de recherche largement ouvert la vérification formelle temporelle – les outils de model-checking – la représentation du temps en Coq
En physique, le temps est-il continu ou discret? –ça dépend de la physique ! –discret est une approximation de continu, et linverse ! 02/04/ G. Berry, Collège de France Le temps physique Les instants ont-il une épaisseur ? –mesure du temps moyennage statistique Peut-on agir en temps zéro ? –ça dépend de la physique ! Comment comparer le temps dacteurs différents ? –La loooongue histoire de la mesure du temps –rendue très complexe par les relativités : GPS – synchronisations possibles mais chères (cf. GPS, neutrinos) – sert de base à dautres mesures (longueurs, masses)
02/04/ G. Berry, Collège de France Le temps continu classique t t t ] t, t [ [ t, t ] AA A B B A BB événements simultanéité Les nombres réels ne sont pas calculables Propriétés dinstants ou dintervalles?
02/04/ G. Berry, Collège de France Le temps discret classique n 1 n 1 n AA A B B A BB ] n, n [ [ n, n ] événements simultanéité Attention à Zénon !
02/04/ G. Berry, Collège de France Le cône du temps A B C D E Sachant que jai déjà fait A : si je fais B, jaurai C mais si je fais D, jaurai E Logiques temporelles arborescentes
02/04/ G. Berry, Collège de France Machine à café : anglaise ou française ? Laquelle préférez-vous ? c t café bof thé hmm c t café hmm thé bof c t café thé Equivalentes pour les traces linéaires (.c.café.t.thé)*
thé hmm 02/04/ G. Berry, Collège de France Machine à café : anglaise ou française ? c t c t c t Pas équivalentes en logiques arborescentes AG( EF(coffee) EF(tea)) OUINON café thé café bof café hmm thé bof
02/04/ G. Berry, Collège de France Le double cône du temps A B C B E Si javais su, jaurais dû faire A au lieu de A jaurais eu C sans même faire B et, en faisant B, jaurais eu E, meilleur que E ! E A
02/04/ G. Berry, Collège de France Agenda 1.Pourquoi parler du temps 2.Bugs et mauvais designs liés au temps 3.La question du temps 4.Circuits et échanges temps-espace 5.Circuits et logique constructive
02/04/ G. Berry, Collège de France Circuits : confluence / synchronisme circuit machine vibratoire parallèle confluente à résoudre les équations parallèles synchrones s r a b c s r s a oux b oux c r (a et b) ou (b et c) ou (c et a) a, b, c s, r
02/04/ G. Berry, Collège de France Temps logique vs. temps physique i6 o7o5o1o2o6o4o3 i7i5i4i3i1i2 i6 o7o5o1o2o6o4o3 i7i5i4i3i1i2 temps logique temps physique cycle dhorloge OK pas de recouvrement (voltage et horloge peuvent être irréguliers)
02/04/ G. Berry, Collège de France Laddition dans lespace + + a 0 b 0 s a 1 b 1 s r a 2 b 2 s 2 r 3 r r = 0 0 pour n bits, temps n trop cher
02/04/ G. Berry, Collège de France Addition dichotomique de von Neumann Spéculation : perdre de lespace pour gagner du temps. propager les retenues par dichotomie a b s a+b s a+b+1 n n n+1 en parallèle
02/04/ G. Berry, Collège de France Addition dichotomique de von Neumann n n n+1 a[n..2n-1] b[n..2n-1] a[0..n-1] b[0..n-1] s[0..n-1] n n n+1 0..n-1 s[n..2n] n 0101 n 0101 Pour 2n bits: Spéculation microprocesseurs
02/04/ G. Berry, Collège de France Addition dichotomique de von Neumann pour n bits, temps log 2 (n) optimal
02/04/ G. Berry, Collège de France Ladditionneur de von Neumann en Jazz vNAdd1 (a, b) = (s : net [2], s' : net [2]) { s[0] = a ^ b; s'[0] = ~ s [0]; s[1] = a & b; s'[1] = a | b; } a b s s
02/04/ G. Berry, Collège de France vNAdd (n) (a : net [n], b : net [n]) = (s : net [n+1], s' : net [n+1]) { if (n==1) { (s, s') = vNAdd1(a [0], b [0]); } else { // Lower half n' = n div 2; (l, l') = vNAdd (n') (a [0..n'-1], b [0..n'-1]) ; // Upper half n'' = n - n'; (h, h') = vNAdd (n'') (a [n'..n-1], b [n'..n-1]) ; // Get the low bits out s[0..n'-1] = l [0..n'-1]; s'[0..n'-1] = l [0..n'-1]; // Get the high bits out, muxed on l[n'] or l'[n'] for (k <= n'') { local k' = n' + k; // n <= k' < n s[k'] = mux (l [n'], h [k], h [k]); s'[k'] = mux ( l [n'], h [k], h [k]); }
02/04/ G. Berry, Collège de France Addition par composition Fonction de propagation de retenue pour 2 bits a et b
02/04/201351G. Berry, Collège de France Soit la fonction de propagation pour et La retenue entrante à la position i+1 se calcule par On calcule la composition dichotomiquement et en parallèle
02/04/ G. Berry, Collège de France Représentation des fonctions Appliquer f à x : 0101 f0 f1 f(x) x Apply (f, x) y { (f0, f1) f y mux(x, f1, f0) } f f0 valeur f(0) f1 valeur f(1) {
02/04/ G. Berry, Collège de France Composer comp (f, g) (h0, h1) { (f0, f1) f; h0 app (g, f0); h1 app (g, f1); } 0101 g0 g1 (g o f) g0 g1 f0 f1 (g o f)1
02/04/ G. Berry, Collège de France comp app
02/04/ G. Berry, Collège de France Addition par composition en Jazz CompAdd (n) (a : net[n], b : net[n], c) = (s : net[n], f) { if (n == 1) { s[0] = a[0] ^ b[0] ^ c; f0 = a[0] & b[0]; // carry out if carry in is 0 f1 = a[0] | b[0]; // carry out if carry in is 1 f = (f0, f1); // carry propagation function } else { n' = n div 2; (s[0..n'-1], fl) = CompAdd (n') (a[0..n'-1], b[0..n'-1], c); (s[n'..n-1], fh) = CompAdd (n-n') (a[n'..n-1], b[n'..n-1], c'); f = comp (fl, fh); c'= app (fl, c); }
02/04/ G. Berry, Collège de France Addition sans retenue (base molle) Nombre mou a (a, a") valeur de a : |a| a'+a" 0 (0,0) 1 (1,0) (0,1) 2 (2,0) (1,1) (0,2) 3 (3,0) (2,1) (1,2) (0,3) 4 (4,0) (3,1) (2,2) (1,3) (0,4) L'addition des nombres mous se fait en temps constant quel que soit le nombre de bits
02/04/ G. Berry, Collège de France mou dur = mou c a b a mou, b dur c' c'' = a' a'' b a0 a0 b0a0 a0 b0 a1 a1 b1a1 a1 b1 a2 a2 b2a2 a2 b2 a3 a3 b3a3 a3 b3 c1c1 c1c1 c2c2 c2c2 c3c3 c3c3 c4c4 c4c4 00 c0c0 c0c0
02/04/ G. Berry, Collège de France mou mou = mou c a bc' c'' a' a'' b' b''
02/04/ G. Berry, Collège de France Multiplication en temps logarithmique vNAdd mou pour n bits, taille n 2 temps log 2 (n) optimal
02/04/ G. Berry, Collège de France Agenda 1.Pourquoi parler du temps 2.Bugs et mauvais designs liés au temps 3.La question du temps 4.Circuits et échanges temps-espace 5.Circuits et logique constructive
02/04/ G. Berry, Collège de France Logique Booléenne constructive I e 0 I e et e 0 I e 0 I e et e 0 I e 1 I e et e 1 I e 1 I e 1 I e ou e 1 I e 1 I e ou e 1 I e 0 I e ou e 0 I e 0 I e 0 I non e 1 I e 1 I non e 0 Vecteur dentrées : I entrées {0,1} Formules : I e b I I I (I) X e I e b I X b
02/04/ G. Berry, Collège de France Constructive Pas de tiers exclu ! I e ou non e 1 ssi I e 0 ou I e 1 I e ou non e 1
02/04/ G. Berry, Collège de France Circuit réseau de preuves constructives ss r a b c r Chaque exécution déroule son arbre de preuve Le circuit regroupe tous les arbres en un DAG Cf. correspondance de Curry-Howard
02/04/ G. Berry, Collège de France Temps logique vs. temps constructif Temps logique o6 i7i5i1i2i6i4i3 o7o5o4o3o1o2 Temps constructif o6 i7i5i1i2i6i4i3 o7o5o4o3o1o2
02/04/ G. Berry, Collège de France Partage de ressources cycles combinatoires O = if C then F(G(I)) else G(F(I)) Trouvé correct par la sémantique constructive Pour F, G, H, etc, la version cyclique est linéaire mais la version acyclique exponentielle en taille F G C C I O C
02/04/ G. Berry, Collège de France Partage de ressources cycles combinatoires O = if C then F(G(I)) else G(F(I)) cycle F G C C I O C
02/04/ G. Berry, Collège de France Partage de ressources cycles combinatoires F G C C I O C
02/04/ G. Berry, Collège de France Partage de ressources cycles combinatoires F G 1 O I C 1 O if C then F(G(I)) else G(F(I))
02/04/ G. Berry, Collège de France Partage de ressources cycles combinatoires F G 0 I O Le cycle ne pose ni problème logique, ni problème électrique ! C 0 O if C then F(G(I)) else G(F(I))
02/04/ G. Berry, Collège de France Scheduler cyclique round-robin-4 ok req ok req ok req ok
02/04/ G. Berry, Collège de France Scheduler cyclique round-robin-2 Cycle combinatoire ! ok req ok
02/04/ G. Berry, Collège de France Scheduler cyclique round-robin-2 le cycle est sain car coupé à une porte ou ok req ok 1 trouvé correct par la sémantique constructive
02/04/ G. Berry, Collège de France Scheduler cyclique round-robin-2 ok req ok Le registre à 1 change à chaque cycle trouvé correct par la sémantique constructive 1
02/04/ G. Berry, Collège de France Round-Robin Cyclic Scheduler-2 ok req ok Le cycle est malsain si tous les registres sont à 0 trouvé incorrect par la sémantique constructive
02/04/ G. Berry, Collège de France Les trois sortes de circuits cycliques 2. Electriquement et logiquement malsains X X non X ex. : round-robin cyclique avec tous les registres à 0 1.Electriquement et logiquement sains, éventuellement sous restrictions dentrées ou invariants temporels des registres (voir les exemples précédents)
02/04/ G. Berry, Collège de France Analyse des circuits cycliques Quand un circuit se stabilise-t-il pour tous délais des fils et portes? Comment relier le temps discret de la logique au temps continu de lélectricité?
02/04/ G. Berry, Collège de France Circuits cycliques constructifs Hamlet : ToBe ToBe or not ToBe ToBe Se stabilise à 1 pour certains délais des portes et fils, mais oscille pour dautres délais Calcule 1 en logique classique, mais ne calcule rien en logique constructive Théorème (Mendler-Shiple-Berry ) : calcule 1 électriquement pour tous délais calcule vrai en logique constructive (tiers exclu)
02/04/ G. Berry, Collège de France La logique constructive UN
02/04/ G. Berry, Collège de France Le circuit ABRO (réseau de preuve) loop abort { await A || await B }; emit O ; halt when R end loop supprimé par optimisation
02/04/201380G. Berry, Collège de France A suivre...