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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.4.L’OPÉRATEUR PARALLÈLE ET LES SIGNAUX 47loop Q 1 ;P 1 ; await S;emit S || Q 2P 2 await S;end loop Q 3 ;Ici, le signal S émis en un seul point dans la première branche est reçu en <strong>de</strong>ux point dans la<strong>de</strong>uxième branche. Nous proposons <strong>de</strong> <strong>partitionne</strong>r le calcul <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> suivant lesinstructions réceptrices. Dans la <strong>de</strong>uxième branche, cela se traduit par saturer Q 1 seulement,puis saturer Q 2 seulement et enfin saturer Q 3 seulement. Ceci nous permet <strong>de</strong> <strong>partitionne</strong>r lescalculs sans avoir besoin <strong>de</strong> savoir <strong>partitionne</strong>r la première branche en fonction <strong>de</strong> la <strong>de</strong>uxième.De manière générale, nous choisissons <strong>de</strong> <strong>partitionne</strong>r les branches parallèles suivant les instructionsréceptrices, comme dans l’exemple précé<strong>de</strong>nt. Nous considérons toutes les instructionsréceptrices y compris les réceptions <strong>de</strong> signaux externes.3.4.2.2 Vraies et fausses synchronisationsDans un programme <strong>Esterel</strong> réel, un signal émis n’est pas forcément intercepté. Avant <strong>de</strong>chercher à savoir si un signal interne est toujours reçu par une quelconque analyse du programme,nous constatons qu’il n’est pas obligatoirement nécessaire <strong>de</strong> savoir répondre à cette questionpour appliquer notre technique <strong>de</strong> <strong>partitionne</strong>ment. Dans l’exemple suivant, supposons que lesignal S est potentiellement émis trop tôt, avant que le contrôle ne passe dans l’instructionawait :P 1 ; Q 1emit S; || await SP 2 Q 2Nous partitionnons suivant l’instruction réceptrice. Dans un premier temps, le calcul <strong><strong>de</strong>s</strong> états<strong>atteignables</strong> s’effectue dans les blocs P 1 , P 2 et Q 1 , avant réception <strong>de</strong> S. Comme le signal S peutêtre émis sans être intercepté, nous ne savons pas dire si le bloc P 2 sera ou non encodé dans lafonction <strong>de</strong> transition après usage <strong>de</strong> l’opérateur <strong>de</strong> cofacteur. Néanmoins, cette étape permet <strong><strong>de</strong>s</strong>aturer l’exploration <strong><strong>de</strong>s</strong> états dans lesquels le bloc Q 1 est actif. Dans un <strong>de</strong>uxième temps, nousexplorons les états <strong>atteignables</strong> après réception <strong>de</strong> S. A cette étape <strong><strong>de</strong>s</strong> calculs, nous sommescertains que S a été émis. Nous savons alors que l’opérateur <strong>de</strong> cofacteur permettra <strong>de</strong> ne pasenco<strong>de</strong>r le bloc P 1 dans la fonction <strong>de</strong> transition. Le calcul <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> s’effectue doncuniquement dans les blocs P 2 et Q 2 . Si le signal S n’est jamais reçu, cette <strong>de</strong>uxième étape neproduit aucun nouvel état.Il peut arriver aussi qu’un signal soit émis trop tard, comme dans l’exemple suivant où le blocQ 1 peut terminer avant le bloc P 1 :P 1 ; abort Q 1emit S; || when immediate S;P 2 Q 2Encore une fois, nous partitionnons suivant l’émission réceptrice. Dans la première étape ducalcul, l’exploration <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> s’effectue a priori dans les blocs P 1 , P 2 et Q 1 . Ici,

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

Saved successfully!

Ooh no, something went wrong!