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.
50 CHAPITRE 3.PRÉSENTATION INTUITIVEsur le calcul partitionné <strong><strong>de</strong>s</strong> états <strong>atteignables</strong>. La solution consiste à débloquer uniquementles frontières qui permettent <strong>de</strong> faire progresser les calculs. Ces frontières sont <strong>de</strong> fait assezfacilement i<strong>de</strong>ntifiables car nous aurons stocké les états en attente dans notre algorithme (voirfigure 3.5 ou 3.13). Dans l’exemple précé<strong>de</strong>nt, le fait <strong>de</strong> débloquer la réception <strong>de</strong> S2 avantla réception <strong>de</strong> S1 ne permet pas <strong>de</strong> faire progresser les calculs. Pour débloquer les bonnesfrontières, nous nous appuyons sur l’ensemble <strong><strong>de</strong>s</strong> états situés à la frontière entre les blocs actifset les blocs inactifs. Il s’agit en réalité d’états accessibles <strong>de</strong>puis un bloc actif en une réactioninstantanée, mais qui “débor<strong>de</strong>nt” dans un bloc inactif.3.5.3 Débor<strong>de</strong>ment <strong><strong>de</strong>s</strong> états <strong>atteignables</strong>L’état d’un programme <strong>Esterel</strong> est caractérisé par l’état <strong>de</strong> tous les registres booléensqui le constituent. Plus particulièrement, l’ensemble <strong><strong>de</strong>s</strong> registres actifs permet <strong>de</strong> déterminerl’ensemble <strong><strong>de</strong>s</strong> blocs actifs du programme. Lorsque l’algorithme partitionné produit <strong><strong>de</strong>s</strong> étatsqui débor<strong>de</strong>nt à l’extérieur d’une frontière, nous savons déterminer précisément l’ensemble <strong><strong>de</strong>s</strong>blocs activés par ce débor<strong>de</strong>ment. A partir <strong>de</strong> cette information et à l’ai<strong>de</strong> du graphe <strong>de</strong> flot <strong>de</strong>contrôle il est alors facile <strong>de</strong> déterminer les frontières qui ont été franchies. Cette technique estillustrée par la figure 3.13.F 1F 3S 1S 3F 2Fig. 3.13 – Débor<strong>de</strong>ment <strong><strong>de</strong>s</strong> états <strong>atteignables</strong>. Les frontières F 1 , F 2 et F 3 sont situées autour<strong><strong>de</strong>s</strong> blocs actifs courants. La frontière F 2 n’a pas été franchie et doit <strong>de</strong>meurer fermée. Ladécouverte <strong><strong>de</strong>s</strong> états S 1 et S 3 en <strong>de</strong>hors <strong><strong>de</strong>s</strong> blocs actifs indique que les frontières F 1 et F 3peuvent être ouvertes.Ainsi, le débor<strong>de</strong>ment <strong><strong>de</strong>s</strong> états permet <strong>de</strong> gui<strong>de</strong>r l’algorithme partitionné et <strong>de</strong> n’ouvrir queles frontières qui permettent <strong>de</strong> faire progresser l’exploration <strong><strong>de</strong>s</strong> états <strong>atteignables</strong>. De cettemanière, nous évitons d’ouvrir <strong><strong>de</strong>s</strong> frontières prématurément.