Vous êtes sur la page 1sur 47

Contraintes temporelles polychrones

Contraintes temporelles polychrones

Charles André Frédéric Mallet

Projet AOSTE
Université de Nice-Sophia Antipolis et INRIA Sophia-Méditerranée

15 novembre 2009
Contraintes temporelles polychrones

Plan

1 Introduction

2 Approches connexes

3 Modélisation

4 Illustration : ABS

5 Conclusion
Contraintes temporelles polychrones
Introduction

1 Introduction

2 Approches connexes

3 Modélisation

4 Illustration : ABS

5 Conclusion
Contraintes temporelles polychrones
Introduction

Systèmes polychrones
Pourquoi ?

polychrone → plusieurs (bases de) temps


Contraintes temporelles polychrones
Introduction

Systèmes polychrones
Pourquoi ?

polychrone → plusieurs (bases de) temps

Pour l’esthétique . . .
1 seule base de
temps plusieurs bases
de temps

Chronos La persistance de la mémoire


(Ignaz Guenther, 1765-70) (Salvador Dali, 1931)
Contraintes temporelles polychrones
Introduction

Systèmes polychrones
Pourquoi ?

Pour les applications

îlot synchrone
(domaine d’horloge)

communications

Systèmes parallèles communicants


GALS (Globally Asynchronous Locally Synchronous)
plus généralement : systèmes répartis
Contraintes temporelles polychrones
Introduction

Systèmes polychrones
Pourquoi ?

Pour les applications (suite)


Unité de contrôle

CAvG AAvG

CAvD AAvD
ABS
CArG AArG

CArD AArD

Capteur ArG
Actionneur ArG

Capteur AvG Actionneur AvG

Systèmes parallèles communicants


ABS (système de freinage anti-blocage)
Contraintes temporelles polychrones
Introduction

Systèmes polychrones
Bases de temps multiples

Considérons 3 bases de temps discrètes A, B, C . Les instants sont


indicés par N? .

Relations entre instants

1 2 3
A
1 2 3
B
1 2 3
C

Les instants de A, B et C sont a priori indépendants .


Contraintes temporelles polychrones
Introduction

Systèmes polychrones
Bases de temps multiples

Imposons à présent des contraintes de précédence et de


coı̈ncidence entre certains instants.

Relations entre instants

C
precedence coincidence

Les instants de A, B et C ne sont plus indépendants.


Contraintes temporelles polychrones
Introduction

Systèmes polychrones
Bases de temps multiples

La structure correspondante devient un ordre partiel .

Relations entre instants

Notez le traitement spécial pour les instants coı̈ncidents (POSet sur


les classes d’équivalence de la relation de coı̈ncidence)
Contraintes temporelles polychrones
Introduction

Systèmes polychrones
Modélisation

Problème posé
Modélisation des systèmes polychrones
Contraintes temporelles polychrones
Introduction

Systèmes polychrones
Modélisation

Problème posé
Modélisation des systèmes polychrones

Concepts
Horloges logiques ↔ événements
Contraintes d’horloges
Contraintes temporelles polychrones
Introduction

Systèmes polychrones
Modélisation

Problème posé
Modélisation des systèmes polychrones

Concepts
Horloges logiques ↔ événements
Contraintes d’horloges

Supports proposés
Modèle de temps du profil UML MARTE
CCSL (Clock Constraint Specification Language)
Contraintes temporelles polychrones
Approches connexes

1 Introduction

2 Approches connexes

3 Modélisation

4 Illustration : ABS

5 Conclusion
Contraintes temporelles polychrones
Approches connexes

Approches connexes
Deux aspects

Représentation de la structure
1 Structure d’événements (Winskel) : causalité, conflit
2 Occurrence nets (Petri) : causalité, parallélisme
3 Tag Systems (Lee & Sangiovanni-Vincentelli) : “instants”

Spécification
1 Réseaux de Petri temporels avec extensions
2 Langages et formalismes synchrones
monochrones (Lustre, Esterel v5)
polychrones (Esterel v7, Signal)
3 42 (Maraninchi & Bouhadiba) composants, contrats

Notre approche : séquences de franchissements concurrents +


CCSL
Contraintes temporelles polychrones
Modélisation

1 Introduction

2 Approches connexes

3 Modélisation

4 Illustration : ABS

5 Conclusion
Contraintes temporelles polychrones
Modélisation
Modèles

3 Modélisation
Modèles
CCSL
Contraintes temporelles polychrones
Modélisation
Modèles

Modèles

Structure : Clock Model


M = hC, P, Si
C : ensemble fini non vide d’horloges discrètes
P : un ensemble fini de variables typées utilisées comme
paramètres dans certaines contraintes d’horloges
S : ensemble fini de contraintes sur ces horloges
Contraintes temporelles polychrones
Modélisation
Modèles

Modèles

Structure : Clock Model


M = hC, P, Si
C : ensemble fini non vide d’horloges discrètes
P : un ensemble fini de variables typées utilisées comme
paramètres dans certaines contraintes d’horloges
S : ensemble fini de contraintes sur ces horloges

Dynamique : Time System


T = hM, σ, χi
M = hC, P, Si (clock model)
σ : C → C × BW (schedule) avec BW = {0, 1}∗ ∪ {0, 1}ω
χ : C → N (configuration)
Contraintes temporelles polychrones
Modélisation
Modèles

Evolutions
Définitions

Franchissements
F
→ hM, σ 0 , χ0 i
hM, σ, χi −
ρ
F ⊆ C (ensemble des horloges franchies )
ρ : P → N (environnement)
avec
χ0 (c) = si c ∈ F alors χ(c) + 1 sinon χ(c)
σ 0 détermination plus complexe, voir plus loin
Contraintes temporelles polychrones
Modélisation
Modèles

Evolutions
Définitions

Franchissements
F
→ hM, σ 0 , χ0 i
hM, σ, χi −
ρ
F ⊆ C (ensemble des horloges franchies )
ρ : P → N (environnement)
avec
χ0 (c) = si c ∈ F alors χ(c) + 1 sinon χ(c)
σ 0 détermination plus complexe, voir plus loin

run
F1
F2 Fn
M, σ 0 , χ0 −→ M, σ 1 , χ1 −→ · · · M, σ n−1 , χn−1 −→

ρ1 ρ2 ρn
hM, σ n , χn i · · ·
Contraintes temporelles polychrones
Modélisation
Modèles

Evolutions
Détermination de F

Principe du calcul
Contraintes temporelles polychrones
Modélisation
Modèles

Evolutions
Détermination de F

Principe du calcul
1 Définir un ensemble de variables booléennes C en bijection
avec C (π : C → C )
Contraintes temporelles polychrones
Modélisation
Modèles

Evolutions
Détermination de F

Principe du calcul
1 Définir un ensemble de variables booléennes C en bijection
avec C (π : C → C )
2 Transformer structurellement l’ensemble de contraintes S en
une expression booléenne JSK sur C
Contraintes temporelles polychrones
Modélisation
Modèles

Evolutions
Détermination de F

Principe du calcul
1 Définir un ensemble de variables booléennes C en bijection
avec C (π : C → C )
2 Transformer structurellement l’ensemble de contraintes S en
une expression booléenne JSK sur C déterministe
Contraintes temporelles polychrones
Modélisation
Modèles

Evolutions
Détermination de F

Principe du calcul
1 Définir un ensemble de variables booléennes C en bijection
avec C (π : C → C )
2 Transformer structurellement l’ensemble de contraintes S en
une expression booléenne JSK sur C déterministe
3 Trouver une solution f : C → {0, 1} satisfaisant JSK choix
Contraintes temporelles polychrones
Modélisation
Modèles

Evolutions
Détermination de F

Principe du calcul
1 Définir un ensemble de variables booléennes C en bijection
avec C (π : C → C )
2 Transformer structurellement l’ensemble de contraintes S en
une expression booléenne JSK sur C déterministe
3 Trouver une solution f : C → {0, 1} satisfaisant JSK choix
4 En déduire F ensemble des horloges franchies
Contraintes temporelles polychrones
Modélisation
Modèles

Evolutions
Détermination de F

Principe du calcul
1 Définir un ensemble de variables booléennes C en bijection
avec C (π : C → C )
2 Transformer structurellement l’ensemble de contraintes S en
une expression booléenne JSK sur C déterministe
3 Trouver une solution f : C → {0, 1} satisfaisant JSK choix
4 En déduire F ensemble des horloges franchies

 
F
(∀f : C → {0, 1})

hC, P, Si, σ, χ −→ ⇔ (JSK (f ) = 1)


ρ
 
avec F = c ∈ C|f π(c) = 1
Contraintes temporelles polychrones
Modélisation
CCSL

3 Modélisation
Modèles
CCSL
Contraintes temporelles polychrones
Modélisation
CCSL

CCSL
Syntaxe

Types de contraintes
synchrone, asynchrone, mixte, chronometric
Contraintes temporelles polychrones
Modélisation
CCSL

CCSL
Syntaxe

Types de contraintes
synchrone, asynchrone, mixte, chronometric

Relations d’horloges
Opérateurs (binaires) de relation : = , ≺ , 4 , ⊂ , #
S’appliquent à des expressions d’horloges
Contraintes temporelles polychrones
Modélisation
CCSL

CCSL
Syntaxe

Types de contraintes
synchrone, asynchrone, mixte, chronometric

Relations d’horloges
Opérateurs (binaires) de relation : = , ≺ , 4 , ⊂ , #
S’appliquent à des expressions d’horloges

Expressions d’horloges
Construction de nouvelles horloges
Opérateurs d’expression : H, ∧, , ...
Contraintes temporelles polychrones
Modélisation
CCSL

CCSL
Sémantique

Règles de transformation structurelle J K


Pour toute horloge c ∈ C, JcK → π(c)
Relations

q y 
c1 = c2 → π(c1 ) = π(c2 ) (sont synchrones)
q y   
c1 ≺ c2 → χ(c1 ) = χ(c2 ) ⇒ ¬π(c2 ) (précède)

Exemple
Contraintes temporelles polychrones
Modélisation
CCSL

CCSL
Sémantique de la relation de coı̈ncidence

Règles de transformation structurelle J K


Pour toute horloge c ∈ C, JcK → π(c)
Relations

q y 
c1 = c2 → π(c1 ) = π(c2 ) (sont synchrones)
q y   
c1 ≺ c2 → χ(c1 ) = χ(c2 ) ⇒ ¬π(c2 ) (précède)

A synchrone B
1 2 3 4
A

B
1 2 3 4
Coincidence

∀k ∈ N , A [ k ] ≡ B [ k ]
entre
A=B *
instants
Contraintes temporelles polychrones
Modélisation
CCSL

CCSL
Sémantique de la relation de précédence

Règles de transformation structurelle J K


Pour toute horloge c ∈ C, JcK → π(c)
Relations

q y 
c1 = c2 → π(c1 ) = π(c2 ) (sont synchrones)
q y   
c1 ≺ c2 → χ(c1 ) = χ(c2 ) ⇒ ¬π(c2 ) (précède)

A précède B
1 2 3 4
A

B Precedence
1 2 3 4
entre

∀k ∈ N* , A [ k ] ≺ B [ k ]
instants
A≺ B
Contraintes temporelles polychrones
Modélisation
CCSL

CCSL
Sémantique d’une expression synchrone

Filtre (H), w est un mot binaire


initialisation : σ : c 7→ (c1 , w )
!
q y   
c = c1 H w → π(c) = σ(c) = 1.v ∧ π(c1 )

réécriture : σ(c) : (c1 , b.v )  (c1 , v ) si c1 ∈ F

B = A H 01(100)
1 2 3 4 5 6 7 8 9
w = 01(100) = 01100100...100... A

B = A▼ w ∀k ∈ N* , B [ k ] ≡ A ⎡⎣ w ↑ k ⎤⎦ B
1 2 3 4

Figure: Filtrage.
Contraintes temporelles polychrones
Modélisation
CCSL

CCSL
Sémantique d’une expression asynchrone

inf (∧)
Opérateur point fixe sur la relation ≺
Construit la plus lente des horloges plus rapides que a et b
Règle : voir dans les actes

c=a∧b
1 2 3 4 5
a
1 2 3 4
b

a b
1 2 3 4 5
c = a ∧b ∀χ ∈ N C , χ (c) = max { χ (a), χ (b)}
Contraintes temporelles polychrones
Modélisation
CCSL

CCSL
Sémantique d’une expression mixte

retard (a ( δ ) b)
Informellement : Construit une sous-horloge c de b qui tique δ
tics de b après un tic de a
∀k ∈ N? , ∃l, m ∈ N? , l > δ, c[k] ≡ b[l] ∧ b[l − δ − 1] ≺ a[m] 4
b[l − δ]
Règle : voir dans les actes

Exemple
1 2 3
a
1 2 4 6 7 8
b
3 5
c
1 2 3
c = a ( 2) ⇝ b
Contraintes temporelles polychrones
Illustration : ABS

1 Introduction

2 Approches connexes

3 Modélisation

4 Illustration : ABS

5 Conclusion
Contraintes temporelles polychrones
Illustration : ABS

ABS
Horloges de l’application

Horloges
Horloge Horloge Horloge Horloge début
temps continu discrète 10 kHz discrète 1 kHz de cycle

« clock » « clock » « clock » « clock »


MARTE::IdealClk c10 c1 R Horloge début
calcul ABS

Horloges « clockConstraint » « clock » Horloges


associées aux « clockConstraint » « clockConstraint » abs associées aux
c10 = idealClk
capteurs c1 = c10 ▼ (1.09) R = c1 ▼ (1.04) actionneurs
discretizedBy 10-4

« clock » « clock » « clock » « clock » « clock » « clock » « clock » « clock »


iavd iavg iard iarg oavd oavg oard oarg

Horloges complémentaires
première arrivée d’information à l’UCE :
iinf = iavd ∧ iavg ∧ iard ∧ iarg
dernière arrivée d’information à l’UCE :
isup = iavd ∨ iavg ∨ iard ∨ iarg
contraintes : (R(1) c1 ) ≺ iinf ≺ (R(3) c1 ) ...
Contraintes temporelles polychrones
Illustration : ABS

ABS
Simulation

Lio: Temps de calcul ABS Joo: délai de synchronisation des sorties

3 c1 < | oinf – isup | < 5 c1 | osup – oinf | < 5 c10

| isup – iinf | < 5 c10 Jii: délai de synchronisation des entrées

Figure: Copie d’écran pour l’ABS

Les paramètres Jii , Joo , Lio sont définis dans le modèle de temps
proposé par ATESST
Contraintes temporelles polychrones
Conclusion

1 Introduction

2 Approches connexes

3 Modélisation

4 Illustration : ABS

5 Conclusion
Contraintes temporelles polychrones
Conclusion

Conclusion

Modèle de temps de MARTE + CCSL : des annotations


temporelles usuelles vers un temps logique multiforme pour le
Design
CCSL : spécifications exécutables
Synchrone / Asynchrone / Mixte
Résolument polychrone
Sémantique formelle (cf. rapport Syntax and Semantics of the
Clock Constraint Specification Language)
Environnement dédié TimeSquare open source
Utilisations
donner une sémantique formelle à des modèles semi-formels
vérification formelle (bibliothèque d’observateurs CCSL)
Contraintes temporelles polychrones
Conclusion

Merci

Questions ?

Charles André
charles.andre@sophia.inria.fr
Influence du choix de stratégie

{ b = a filteredBy 0b(01); d = c filteredBy 0b(01); b strictly alternatesWith d; a # d; }

min

random

max
Évolutions (dépliées)

0 1  2  3
0       
  a  0  a, b 1 a 1
0 0 0 0
       
0 0 0 0
c {a, c} c
{a
, b, c} c {a, c} c

0 1  2  3
        
0 a  0  a, b 1 a 1
1
 
1
 
1
 
1
  {
no c }
, d , a since a # d
0 0 0 0
c
,d c
,d

 2  3  4 5
       
1 a 1 a
,b  2 a 2
 2  2  2 2
       
1 1 1 1
c {a, c} c
{ 
}
a, b, c c {a, c} c

 2  3  4 5
        
1 a  1  a, b  2 a 2
 3  3  3 3
       
1 1 1 1

c, d 
c, d
Représentation par une FSM

a a
,b a
c
,d
c
{a, c} c { a }
, b, c c {a, c} c

c
,d a a
,b a

Figure: FSM