12.07.2015 Views

Calcul des etats atteignables de programmes Esterel partitionne ...

Calcul des etats atteignables de programmes Esterel partitionne ...

Calcul des etats atteignables de programmes Esterel partitionne ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

46 CHAPITRE 3.PRÉSENTATION INTUITIVE3.4.2.1 Partitionnement sur les couples émetteur/récepteurPour <strong>partitionne</strong>r les branches parallèles synchronisées par les signaux locaux, il n’est pasnécessaire <strong>de</strong> <strong>partitionne</strong>r en même temps la branche contenant l’instruction émettrice et labranche contenant l’instruction réceptrice.Partitionnement suivant l’émission <strong><strong>de</strong>s</strong> signaux Partitionner l’exemple précé<strong>de</strong>nt suivantl’émission <strong><strong>de</strong>s</strong> signaux consiste à découper le programme <strong>de</strong> la manière suivante :1. Dans la première étape, nous ne considérons que les blocs situés en amont <strong>de</strong> toute émission<strong>de</strong> S1 et S2. Ainsi, la fonction <strong>de</strong> transition que nous utilisons enco<strong>de</strong> a priori les comportements<strong><strong>de</strong>s</strong> blocs P 1 , Q 1 , Q 2 , R 1 et R 2 . Or, il est impossible d’exécuter le bloc Q 2sans exécuter le bloc P 2 et il est impossible d’exécuter le bloc R 2 sans exécuter le bloc Q 3 .Ainsi, les blocs Q 2 et R 2 sont automatiquement supprimés <strong>de</strong> la fonction <strong>de</strong> transitionpar l’application <strong>de</strong> l’opérateur <strong>de</strong> cofacteur. La fonction <strong>de</strong> transition n’enco<strong>de</strong> ainsi queles blocs P 1 , Q 1 et R 1 .2. Dans la secon<strong>de</strong> étape, nous débloquons l’émission du signal S1. La fonction <strong>de</strong> transitionenco<strong>de</strong> donc a priori les comportements <strong><strong>de</strong>s</strong> blocs P 1 , P 2 , Q 1 , Q 2 , R 1 et R 2 . Pour lesmêmes raisons que précé<strong>de</strong>mment, le bloc R 2 n’est pas réellement encodé. Comme nousavons déjà saturé l’exploration <strong><strong>de</strong>s</strong> états avant l’émission <strong>de</strong> S1, l’opérateur <strong>de</strong> cofacteurpermet <strong>de</strong> n’enco<strong>de</strong>r que les blocs P 2 , Q 2 et R 1 .3. Dans la troisième étape, nous utilisons l’opérateur <strong>de</strong> cofacteur sur la fonction <strong>de</strong> transitionglobale qui permet <strong>de</strong> n’enco<strong>de</strong>r que les blocs P 2 , Q 3 et R 2 .Partitionnement suivant la réception <strong><strong>de</strong>s</strong> signaux De manière similaire, <strong>partitionne</strong>r les<strong>programmes</strong> parallèles suivant la réception <strong><strong>de</strong>s</strong> signaux seulement permet d’obtenir finalementle même résultat. La seule différence se situe dans les blocs qui sont a priori encodés et qui sontautomatiquement supprimés par l’opérateur <strong>de</strong> cofacteur.1. Dans la première étape, nous choisissons <strong>de</strong> saturer l’exploration <strong><strong>de</strong>s</strong> états <strong>atteignables</strong>dans les seuls blocs P 1 , P 2 , Q 1 et R 1 . Comme toute émission <strong>de</strong> S1 est interceptée parhypothèse, il est impossible que le bloc P 2 soit actif alors que Q 2 est inactif. Ainsi, seulsles blocs P 1 , Q 1 et R 1 sont encodés.2. De la même manière, dans la secon<strong>de</strong> étape, <strong><strong>de</strong>s</strong> blocs P 1 , P 2 , Q 1 , Q 2 , Q 3 et R 1 a prioriencodés, seuls subsistent les blocs P 2 , Q 2 et R 1 .3. Dans la troisième étape, comme toujours, seuls les comportements <strong><strong>de</strong>s</strong> blocs P 2 , Q 3 et R 2sont encodés.De cette manière, nous partitionnons les branches parallèles suivant un point unique du programme.Le fait <strong>de</strong> <strong>partitionne</strong>r seulement sur l’instruction émettrice ou l’instruction réceptricenous permet <strong>de</strong> prendre en compte plus facilement les synchronisations mettant en jeu plus <strong>de</strong><strong>de</strong>ux instructions dans un programme. Par exemple, dans le cas où un seul signal (que noussupposons toujours intercepté) permet <strong>de</strong> synchroniser un programme en <strong>de</strong>ux points, commec’est le cas dans :

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!