Calcul des etats atteignables de programmes Esterel partitionne ...
Calcul des etats atteignables de programmes Esterel partitionne ...
Calcul des etats atteignables de programmes Esterel partitionne ...
- 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,