• Aucun résultat trouvé

2.2 Modélisation de comportement

2.2.2 Le tagged signal model

Ce formalisme a été introduit par Lee et Sangiovanni-Vincentelli [75] dans le but de proposer un formalisme générique dans lequel peuvent être exprimées et comparées certaines propriétés de modèles de calcul (MoC pour Model of Computation) tels que les réseaux de Petri [92], les processus de Kahn [61], . . . Informellement, le tagged signal model représente les comportements d’un système comme une com- position de processus. Chaque processus est défini comme l’ensemble des comportements acceptables pour un composant du système (un module, une fonction, . . . ). La composition de deux processus donne alors un processus défini par l’intersection des processus : cette composition est l’ensemble des comportements acceptables par les deux processus. Un comportement est défini comme un n-uplet de signaux, un signal étant une séquence d’événements. Un événement est une action significative du système comme l’activa- tion d’une fonction, ou la production d’une occurrence d’une variable. Un événement est alors caractérisé par un couple composé d’une estampille temporelle (le tag de l’événement) et d’une valeur.

Vis-à-vis du problème posé, nous avons besoin à la fois de suivre l’évolution temporelle du système, mais également les dépendances entre les événements du système. Nous pouvons alors utiliser les estam- pilles pour suivre l’évolution temporelle et les valeurs pour suivre les relations de dépendances entre les événements. C’est la raison pour laquelle ce formalisme nous a semblé un bon candidat pour modéliser les comportements du système. Nous l’utiliserons pour fonder les bases théoriques de notre méthode. Modélisation d'une partie de l'étude de cas

Pour donner l’intuition de notre formalisation dans le tagged signal model et pour introduire certaines notations, nous détaillons la modélisation de la fonction MFD1 extraite de l’étude de cas. L’idée est de décrire l’ensemble des comportements possibles de la fonction à l’aide des notions d’événements, de signaux et de processus.

La fonction MFD1produit les pages à afficher (disp) sur l’écran du pilote et est périodiquement activée par le module M1. A chaque activation, la fonction lit la dernière valeur reçue sur sa variable d’entrée (wpInfo). Après un certain traitement, elle produit une page à afficher. Le traitement dure au plusCMFD1 unités de temps. Nous devons maintenant décrire comment ces événements sont liés les uns aux autres. Evénement. Un événement est décrit à l’aide d’une estampille temporellet et d’une valeur v définissant ses dépendances vis-à-vis des autres événements du système.

Notons tMFD1

n l’estampille de l’événement de la nième activation de MFD1 et tdispn l’estampille de l’événement de la production de la nièmepage. Comme nous faisons l’hypothèse que la fonction produit sa sortie au plus CMFD1 après son activation, les estampilles de ces événements sont liées de la façon suivante :

tMFD1

n tdispn tMFDn 1+ CMFD1 (2.1)

Dans notre modèle, nous capturons également les dépendances entre les événements. Par exemple, la production de la nièmepage dépend à la fois de lanièmeactivation et du dernier événement de réception de la variable wpInfo. Pour transcrire ces dépendances, on associe à chaque événement une valeur en addition de son estampille. Nous définissons cette valeur comme un vecteur avec autant de composantes qu’il y a de sources d’événements. Dans notre cas, il y a trois sources d’événements : l’activation de la fonction MFD1, la réception de wpInfo et la production d’un disp. Nous notonsvdispn la valeur associée

aunièmeévénement de disp. Pour distinguer les différentes composantes de ce vecteur nous utilisons une notation spécifique :vdisp

n jMFD1 = k signifie que le n

ièmeévénement de disp dépend dukièmeévénement de MFD1par exemple. Etant donné le comportement attendu de la fonction, nous avons pour toutn2 N :

vdisp

n jMFD1= n v disp

n jdisp=? (2.2)

Nous utilisons la valeur? pour indiquer l’absence de dépendance entre événements. Chaque instance de disp est produite à partir de la dernière valeur de wpInfo reçue. Si on suppose que lakièmeinstance de wpInfo est utilisée pour produire lanièmeinstance de disp, alors il s’agit de la dernière valeur reçue avant lanièmeactivation de MFD

1. Ce qui peut s’exprimer :

vdisp

n jwpInfo= k

aveck = maxfl 2 N j twpInfol tMFD1

n g

(2.3)

Dans notre modèle, un événement (t, v) est un couple composé d’une estampille temporelle et d’une valeur tel que (t, v) 2 R (N [ ?)N, pour un certain N . En pratique, N est le nombre de sources d’événements considérées dans le système. A noter que si une composante de la valeur d’un événement n’est pas explicitement définie, elle vaut par défaut?. Nous utilisons également la notation ? pour une valeur ne décrivant aucune dépendance entre événements, c’est-à-dire égale à (?, . . . , ?).

Signal. Une séquence d’événements est appelée un signal. Plus précisément, un signal s appartient à l’ensemble S = 2R (N[?)N de tous les signaux définissables. Un N -uplet de signaux (s1, . . . , sN) 2 SN définit un comportement du système. Dans cet exemple, un 3-uplet(sMFD1, swpInfo, sdisp)2 S

3décrit un comportement possible de MFD1 si et seulement si tous les événements des signaux sMFD1, swpInfo et sdisp respectent les contraintes (2.1), (2.2) et (2.3).

Processus. La notion de processus est utilisée pour regrouper l’ensemble des comportements possibles d’un élément. Par exemple, les comportements possibles de MFD1peuvent être résumés par le processus PMFD1 tel que : PMFD1 =f (sMFD1, swpInfo, sdisp)2 S 3 j 8n 2 N, tMFD1 n tdispn tMFDn 1+ CMFD1, vdisp n jMFD1 = n,

vndispjwpInfo= maxfl 2 N j t wpInfo l t MFD1 n g, vdisp n jdisp=? g

Remarque : rigoureusement, l’estampille dunièmeévénement du signalsMFD

1 d’un comportement s2 S N devrait par exemple s’écriretMFD1

n (s) pour la distinguer d’une estampille d’un autre comportement. Mais pour éviter de sur-charger les notations (qui le sont déjà bien assez), nous notons seulement tMFD1

n dans

la mesure où, en pratique, les estampilles de deux comportements différents ne se retrouvent jamais dans une même formule.

La figure 2.11(a) représente le système S1 composé uniquement du processus PMFD1. Sur la fi- gure 2.11(b) nous traçons les premiers événements des signaux d’un comportement possible de ce système. La valeur du deuxième événement du signalsdispvaut(2, 2,?) ce qui signifie que cet événement dépend du deuxième événement de sMFD1 (qui correspond à la deuxième activation de MFD1) et du deuxième événement deswpInfo(qui correspond à la deuxième réception d’une nouvelle valeur de la variable wpInfo). Notons que les activations de la fonction ne sont pas nécessairement périodiques dans le processus PMFD1. L’ordonnancement de la fonction est à la charge du module où elle s’exécute. Pour imposer une période à la fonction, nous introduisons donc un deuxième processus qui modélise l’ordonnanceur du module. Ceci nous permettra d’illustrer la notion de composition de processus.

PMFD1 swpInfo sdisp sMFD1 (a) Système S1 MFD1 MFD1 MFD1 swpInfo: (20,?) (40, ?) (150,?) sMFD1 : (0,?) (50,?) (120,?) sdisp: (10, (1,?, ?)) (70, (2, 2,?)) (145, (3, 2,?))

(b) Premiers événements d’un comportement possible de S1

Figure 2.11 – Comportement d’un système avec PMFD1

Composition de processus. L’ordonnancement de la fonction MFD1 est tel que : la partition de la fonction est activée périodiquement tous lesTMFD1et ses activations sont décalées deOMFD1par rapport au démarrage de la MAF deM1. En outre, les modules étant asynchrones, il existe un déphasage entre les démarrages des MAFs des modules. Nous exprimons ces déphasages vis-à-vis d’une référence commune à tous les modules : l’instant initial. Le retard par rapport à l’instant initial du démarrage deM1est appelé la phase deM1 et est notéφM1. Ainsi, l’estampillet

MFD1

n dunièmeévénement d’activation de MFD1doit respecter :

tMFD1

n = φM1+ OMFD1+ n TMFD1 (2.4)

Le module est également responsable de l’ordonnancement de la fonction KU1, son processus impose une contrainte similaire sur le signal d’activation de cette fonction avec TKU1 la période etOKU1 l’offset de la fonction. On peut alors décrire l’ensemble des comportements possibles du module M1 avec le processus :

PM1 =f (sMFD1, swpInfo, sdisp, sKU1)2 S 4 j 9φM12 [0, HP(M1)[ , 8n 2 N, tMFD1 n = φM1+ OMFD1+ n TMFD1 tKU1 n = φM1+ OKU1+ n TKU1 g

avec HP(M1) l’hyper-période du module M1, HP(M1) = ppcmfTMFD1, TKU1g. On reconnait l’ordonnan- cement définit avec AADL et les automates temporisés présenté précédemment.

Bien que les signauxswpInfoet sdispne soient pas utilisés par le module, ils font tout de même partie de la définition du processusPM1. Ceci permet de faciliter la composition des processus : si les processus sont définis sur la même base de signaux, alors leur composition consiste en l’intersection de ces processus. Nous représentons sur la figure 2.12 le systèmeS2= PM1\PMFD1\PKU1ainsi que les premiers événements d’un comportement possible. La périodeTMFD1 de MFD1 vaut 50 ms et son offset OMFD1 vaut 25 ms. Pour la fonction KU1, nous avons TKU1 = 50 ms et OKU1 = 0. Sur l’exemple de comportement de la figure 2.11(b), la phaseφM1du moduleM1est égale à 5 ms. Le processus du module contraint la première activation à l’instantφM1+ OMFD1, les activations suivantes s’enchaînent périodiquement tous les 50 ms. Nous n’avons pas représenté les événements d’activation de KU1 pour ne pas alourdir la figure.

Remarque : sur les figures 2.11(a) et 2.12(a) les signaux sont représentés entrant ou sortant des processus. Ceci facilite la lecture du schéma puisque l’on y retrouve le sens des actions du système (disp est en sortie de MFD1par exemple), en revanche ces orientations n’ont pas de signification dans le tagged signal model .

Conclusion

Le tagged signal model caractérise un événement par un couple composé d’une estampille temporelle et d’une valeur. Cette valeur peut être utilisée pour encoder les relations de dépendances entre événements. Il est alors possible de « suivre » les effets d’un événement au travers du système tout en mesurant le temps écoulé entre les événements considérés. Pour cette raison, le tagged signal model nous a semblé être un bon candidat pour la formalisation de notre problème. En outre, la possibilité d’exprimer les

PMFD1 PM1 PKU1 swpInfo sdisp sMFD1 sKU1 (a) Système S2 MFD1 φM1OMFD1 MFD1 MFD1 KU1 KU1 KU1 . . . swpInfo: (20,?) (40, ?) (150,?) sMFD1 : (30,?) (80,?) (130,?) sdisp: (40, (1, 1,?)) (100, (2, 2,?)) (155, (3, 2,?)) 0

(b) Premiers événements d’un comportement possible de S2

Figure 2.12 – Comportement du système composé de PMFD1 etPM1

comportements du système à l’aide de contraintes ouvre la voie à l’utilisation d’outils de propagation de contraintes ou de programmation linéaire mixte pour analyser le modèle. Un modèle complet, formalisé dans le tagged signal model , des comportements d’un système IMA ainsi que des exigences temps réel qu’il doit satisfaire, sera défini aux chapitres 5 et 6. L’exploitation de cette formalisation, pour la vérification des exigences temps réel, sera traitée dans la troisième partie de ce manuscrit.

Dans l’exemple présenté, un temps physique est utilisé dans la mesure où cela facilite la quantification explicite des durées. Les éléments sont asynchrones mais il n’y a pas de dérives d’horloge entre eux : le temps s’écoule à la même vitesse en tout point du système et donc toutes les estampilles temporelles sont définies vis-à-vis d’une même référence temporelle basée sur le temps physique. A noter que certains modèles ne font pas référence au temps physique. On parle alors de temps logique [64]. Ces modèles permettent de vérifier des propriétés fonctionnelles de systèmes pour lesquels la notion de durée n’a pas d’importance. Le temps logique s’intéresse uniquement à caractériser des relations d’ordre entre événements : l’événementa précède l’événement b, a et b arrivent en même temps ou encore a ne peut pas être ordonné par rapport à b.