Parler du temps, mais de manière formelle Gérard Berry Chaire Algorithmes, machines et langages...

Preview:

Citation preview

Parler du temps, mais de manière formelle

Gérard Berry

Chaire Algorithmes, machines et langages

gerard.berry@college-de-france.fr

Collège de France

Cours 1, le 2 avril 2013

G. Berry, Collège de France 02/04/2013 2

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.

3G. Berry, Collège de France 02/04/2013

La gestion du temps et des événementsest essentielle dans les systèmes du XXIe siècle

Mais l’informatique classique n’en parle pas !

G. Berry, Collège de France 02/04/2013 4

Les systèmes embarqués du XXe 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 à l’environnement– qui est lui non-déterministe, bien sûr

G. Berry, Collège de France 02/04/2013 5

Les systèmes embarqués du XXe siècle

Implémentation manuellemaths manuellesspecs textuelles

codage ASM, C, ADAcompilation standard

test exhaustif

Implémentation formellemodélisation par ODEspécification formelle

codage de haut niveaucodegen automatique

vérification formelle

InfrastructurePLCs

P, ECUsOS embarqués

IHM simples

G. Berry, Collège de France 02/04/2013 6

Les systèmes embarqués du XXIe 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

G. Berry, Collège de France 02/04/2013 7

Les circuits du XXe siècle

• Fonctionnalité simple• Horloge unique• Physique sans souci• Pas de gestion d’énergie

G. Berry, Collège de France 02/04/2013 8

Les circuits du XXIe 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

G. Berry, Collège de France 02/04/2013 9

La musique du XXe siècle

G. Berry, Collège de France 02/04/2013 10

La musique du XXIe siècle

Antescofo : suivi temps-réelPartition algorithmique

G. Berry, Collège de France

• Comprendre ce qui s’est passé– debugging, histoire, paléontologie, etc.– établissement des datations– recherche des causalités et des corrélations

02/04/2013 11

Objectifs

• Organiser l’avenir– 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 qu’on a spécifié et programmé

(synchronisations, timings, etc.)

Le rôle de l’historien est de prévoir le passé Henry Laurens

G. Berry, Collège de France 02/04/2013 12

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

G. Berry, Collège de France 02/04/2013 13

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; }}

G. Berry, Collège de France 02/04/2013 14

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

G. Berry, Collège de France 02/04/2013 15

• Bug de la Sony (fat) PS3, 28 février 1er mars 2010– bug dans le firmware d’un processeur auxiliaire– date 1e 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 l’iPhone, 2010 / 2011– heure d’hiver 2010 : correction automatique de l’heure,– mais pas du réveil ! – Le lendemain : panne de réveil !

16G. Berry, Collège de France 02/04/2013

• Dharan, 25 févier 1991, bug des missiles Patriot– les arrondis dégradent la précision de l’heure– après 110h, l’erreur 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

G. Berry, Collège de France 02/04/2013 17

Débordement de buffer

Un programme qui plante un jour par semaine

G. Berry, Collège de France 02/04/2013 18

Débordement de buffer

M o n d a y

T u e s d a y

W e d n e s d a y y

Un programme qui plante un jour par semaine

G. Berry, Collège de France 02/04/2013 19

Deux boules et un mur

v

chocs actions

G. Berry, Collège de France 02/04/2013 20

Deux boules et un mur

Modeleurs actuels OK

G. Berry, Collège de France 02/04/2013 21

Boule collée au mur modeleurs actuels

v

pour certainsmodes d’exécution

G. Berry, Collège de France 02/04/2013 22

Esterel v7 pour les circuits données + contrôle

G. Berry, Collège de France 02/04/2013 23

Scade 6 pour embarqué certifié : CC+FSM

SCADE 6Unifie FSM & CC

totalement mélangeables

langage fonctionneltableaux fonctionnelssémantique formellecompilateur certifié

preuve formellecompilateur prouvé?

Voir aussi Ptolemy II, Ed Lee, UC Berkeley

G. Berry, Collège de France 02/04/2013 24

Nul: ordonnancement par position graphique

12

3

4

51 2

3

1

2

choix initial: parallélisme résolu par blocs

G. Berry, Collège de France 02/04/2013 25

Nul: ordonnancement par ordre de création

31

5

2

41 3

2

1

2

G. Berry, Collège de France 02/04/2013 26

Compliqué: réordonnancement manuel

24

1

5

31 3

2

1

2

plein de règles de renumérotationpriorités volages, cut & paste imconpréhensible, etc.

27G. Berry, Collège de France 02/04/2013

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 d’implémentation

La sémantique et l’implémentation doivent traiter le parallélisme, pas l’utilisateur !

Cf. Lustre, Esterel, SyncCharts, SCADE 6, Ptolemy II,...

28G. Berry, Collège de France 02/04/2013

La devise du cours

La sémantique doit suivre l’intuitionL’implémentation doit suivre la sémantique

Ne jamais dévier !

G. Berry, Collège de France 02/04/2013 29

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

G. Berry, Collège de France

• 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/2013 30

Perception et langue du temps

Manifeste pour la réhabilitation du pavillon des poids et mesuresG. BerryViridis Candela, Correspondancier du Collège de ‘Pataphysique, no 1, pages 33-60 (2007)

G. Berry, Collège de France

• La nature du temps– temps physique / temps logique– temps continu / temps discret– temps plat / temps hiérarchique– temps absolu / temps multiforme

02/04/2013 31

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 l’instant– l’épaisseur de l’action

G. Berry, Collège de France 02/04/2013 32

La question du temps

• Le partage du temps

– comparaison ou partage du temps dans l’espace– synchronisme / asynchronisme des actions

– comment réaliser le synchronisme ?– comment synchroniser l’asynchronisme ?– 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 l’information– échange temps / espace dans les circuits et logiciels– rapport temps / espace dans les systèmes distribués

G. Berry, Collège de France 02/04/2013 33

La question du temps

• Les formalismes du temps– la droite réelle de la physique classique– l’arbre 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

G. Berry, Collège de France

• En physique, le temps est-il continu ou discret?– ça dépend de la physique !– discret est une approximation de continu, et l’inverse !

02/04/2013 34

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 d’acteurs différents ?– La loooongue histoire de la mesure du temps 5 1018

– rendue très complexe par les relativités : GPS– synchronisations possibles mais chères (cf. GPS, neutrinos)– sert de base à d’autres mesures (longueurs, masses)

G. Berry, Collège de France 02/04/2013 35

Le temps continu classique

t t t

] t, t’ [ [ t, t’ ]

A A AB BA

B B

événements simultanéité

Les nombres réels ne sont pas calculables

Propriétés d’instants ou d’intervalles?

G. Berry, Collège de France 02/04/2013 36

Le temps discret classique

n1 n1 n

A A AB BA

B B

] n, n’ [ [ n, n’ ]

événements simultanéité

Attention à Zénon !

G. Berry, Collège de France 02/04/2013 37

Le cône du temps

A B

C

DE

Sachant que j’ai déjà fait A :

si je fais B, j’aurai C

mais si je fais D, j’aurai E

Logiques temporelles arborescentes

G. Berry, Collège de France 02/04/2013 38

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é)*

G. Berry, Collège de France

théhmm

02/04/2013 39

Machine à café : anglaise ou française ?

c t

c t

€ €

c t

Pas équivalentes en logiques arborescentesAG(€ EF(coffee) EF(tea))

OUI NON

café thé cafébof

caféhmm

thébof

G. Berry, Collège de France 02/04/2013 40

Le double cône du temps

A B

C

B’E

Si j’avais su, j’aurais dû faire A’ au lieu de A

j’aurais eu C sans même faire B

et, en faisant B’, j’aurais eu E’, meilleur que E !

E’A’

G. Berry, Collège de France 02/04/2013 41

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

G. Berry, Collège de France 02/04/2013 42

Circuits : confluence / synchronisme

circuit machine vibratoire parallèle confluenteà résoudre les équations parallèles synchrones

s

r

abc

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

G. Berry, Collège de France 02/04/2013 43

Temps logique vs. temps physique

i6

o7o5o1 o2 o6o4o3

i7i5i4i3i1 i2

i6

o7o5o1 o2 o6o4o3

i7i5i4i3i1 i2

temps logique

temps physique

cycle d’horloge OK pas de recouvrement(voltage et horloge peuvent être irréguliers)

G. Berry, Collège de France 02/04/2013 44

L’addition dans l’espace

++

a0b0

s0

++1

a

1b

1s

r 1

++2a

2b2s

2r

3r

r = 00

pour n bits,temps ntrop cher

G. Berry, Collège de France 02/04/2013 45

Addition dichotomique de von Neumann

Spéculation :perdre de l’espace pour gagner du temps.

propager les retenues par dichotomie

a

b

s a+b

s’ a+b+1n

n

n+1

n+1

en parallèle

G. Berry, Collège de France 02/04/2013 46

Addition dichotomique de von Neumann

n

n

n+1

n+1a[n..2n-1]

b[n..2n-1]

a[0..n-1]

b[0..n-1]

s[0..n-1]

s’[0..n-1]n

n

n+1

n+1 0..n-1

0..n-1

s[n..2n]

n

01

n

s’[n..2n]01

Pour 2n bits:

Spéculation microprocesseurs

G. Berry, Collège de France 02/04/2013 47

Addition dichotomique de von Neumann

pour n bits,temps log2(n)

optimal

G. Berry, Collège de France 02/04/2013 48

L’additionneur 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;}

ab

s

s’1

1

2

2

G. Berry, Collège de France 02/04/2013 49

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]);

} }}

G. Berry, Collège de France 02/04/2013 50

Addition par composition

Fonction de propagation de retenue pour 2 bits a et b

0 00, 0

1 0

1, 0 0 0

0, 1 1 1

0 11, 1

1 1

a b

a b

a b

a b

51G. Berry, Collège de France 02/04/2013

Soit la fonction de propagation pour et La retenue entrante à la position i+1 se calcule par

On calcule la composition dichotomiquementet en parallèle

))()(())()(( 01234567 ffffffff

)0)((

))))))))0((((((((

01234567

01234567

ffffffff

ffffffff

if ia ib

52G. Berry, Collège de France 02/04/2013

Représentation des fonctions

Appliquer f à x :

01

f0f1

f(x)

x

Apply (f, x) y { (f0, f1) f y mux(x, f1, f0)}

f f0 valeur f(0)f1 valeur f(1)

{

G. Berry, Collège de France 02/04/2013 53

Composer

comp (f, g) (h0, h1) { (f0, f1) f; h0 app (g, f0); h1 app (g, f1);}

01

g0g1

(gof)0

01

g0g1

f0

f1

(gof)1

G. Berry, Collège de France 02/04/2013 54

comp

app

G. Berry, Collège de France 02/04/2013 55

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); }}

G. Berry, Collège de France 02/04/2013 56

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 constantquel que soit le nombre de bits

G. Berry, Collège de France 02/04/2013 57

mou dur = mou

+ + + + + + + +

c a ba mou, b dur

c' c'' = a' a'' b

a’0 a’’0 b0 a’1 a’’1 b1 a’2 a’’2 b2 a’3 a’’3 b3

c’1 c’’1 c’2 c’’2 c’3 c’’3 c’4 c’’4

00

c’0 c’’0

G. Berry, Collège de France 02/04/2013 58

mou mou = mou

+ + + + + + + +

+ + + + + +

0

c a b c' c'' a' a'' b' b''

0 0 0 0a' a'' b' b'' 1 1 1 1a' a'' b' b'' 2 2 2 2a' a'' b' b'' 3 3 3 3a' a'' b' b''

0 0c' c'' 1 1c' c'' 2 2c' c'' 3 3c' c'' 4 4c' c''

G. Berry, Collège de France 02/04/2013 59

Multiplication en temps logarithmique

3 2 1 03 3 3 3

3 2 1 02 2 2 2

3 2 1 01 1 1 1

3 2 1 00 0 0 0

0 0 0

0 0 0

0 0 0

0 0 0

vNAdd

+

+

+

mou

i ji jic a b pour n bits,

taille n2

temps log2(n)

optimal

G. Berry, Collège de France 02/04/2013 60

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

G. Berry, Collège de France 02/04/2013 61

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 d’entrées : I entrées → {0,1}

• Formules : I e b

I I I(I)

X e I e b

I X b

62G. Berry, Collège de France 02/04/2013

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

G. Berry, Collège de France 02/04/2013 63

Circuit réseau de preuves constructives

ss

r

abc r

Chaque exécution déroule son arbre de preuve

Le circuit regroupe tous les arbres en un DAG

Cf. correspondance de Curry-Howard

G. Berry, Collège de France 02/04/2013 64

Temps logique vs. temps constructif

Temps logiqueo6

i7i5i1 i2 i6i4i3

o7o5o4o3o1 o2

Temps constructif

o6

i7i5i1 i2 i6i4i3

o7o5o4o3o1 o2

G. Berry, Collège de France 02/04/2013 65

Partage de ressources cycles combinatoires

O = if C then F(G(I)) else G(F(I))

Trouvé correct par la sémantique constructivePour F, G, H, etc, la version cyclique

est linéaire mais la version acyclique exponentielle en taille

F

G

C

C

I O

C10

10

10

G. Berry, Collège de France 02/04/2013 66

Partage de ressources cycles combinatoires

O = if C then F(G(I)) else G(F(I))

cycleF

G

C

C

I O

C10

10

10

G. Berry, Collège de France 02/04/2013 67

Partage de ressources cycles combinatoires

F

G

C

C

I O

C10

10

10

G. Berry, Collège de France 02/04/2013 68

Partage de ressources cycles combinatoires

F

G

1

O

110

10

10

1

I

C 1 O if C then F(G(I)) else G(F(I))

G. Berry, Collège de France 02/04/2013 69

Partage de ressources cycles combinatoires

F

G

0

I O

010

10

10

0

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))

G. Berry, Collège de France 02/04/2013 70

Scheduler cyclique round-robin-4

okreq

req

ok

req

ok

reqok

G. Berry, Collège de France 02/04/2013 71

Scheduler cyclique round-robin-2

Cycle combinatoire !

okreq

reqok

G. Berry, Collège de France 02/04/2013 72

Scheduler cyclique round-robin-2

le cycle est saincar coupé à une porte ou

okreq

reqok

1

trouvé correct parla sémantique constructive

G. Berry, Collège de France 02/04/2013 73

Scheduler cyclique round-robin-2

okreq

reqok

Le registre à 1change à chaque cycle

trouvé correct parla sémantique constructive1

G. Berry, Collège de France 02/04/2013 74

Round-Robin Cyclic Scheduler-2

okreq

reqok

Le cycle est malsain sitous les registres sont à 0

trouvé incorrect parla sémantique constructive

G. Berry, Collège de France 02/04/2013 75

Les trois sortes de circuits cycliques

2. Electriquement et logiquement malsainsX XX non X

ex. : round-robin cyclique avec tous les registres à 0

1. Electriquement et logiquement sains, éventuellement sous restrictions d’entrées ou invariants temporels des registres (voir les exemples précédents)

G. Berry, Collège de France 02/04/2013 76

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

G. Berry, Collège de France 02/04/2013 77

Circuits cycliques constructifs

Hamlet : ToBe ToBe or not ToBe

ToBe

• Se stabilise à 1 pour certains délais des portes et fils, mais oscille pour d’autres délais

• Calcule 1 en logique classique, mais ne calcule rien en logique constructive

Théorème (Mendler-Shiple-Berry 2001-2012) : calcule 1 électriquement pour tous délais calcule vrai en logique constructive (tiers exclu)

G. Berry, Collège de France 02/04/2013 78

La logique constructive UN

G. Berry, Collège de France 02/04/2013 79

Le circuit ABRO (réseau de preuve)

loop abort { await A || await B }; emit O ; halt when Rend loop

supprimépar optimisation

80G. Berry, Collège de France 02/04/2013

A suivre...

Recommended