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.

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.

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

Saved successfully!

Ooh no, something went wrong!