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.
5.3. ANALYSE DES CARACTÉRISTIQUES 73Le <strong>partitionne</strong>ment mobilise aussi <strong><strong>de</strong>s</strong> opérations d’intersection ou <strong>de</strong> soustraction avec l’ensemblearea représentant l’intérieur <strong>de</strong> notre frontière. L’ensemble area possè<strong>de</strong> une représentationBDD très simple puisqu’il s’agit d’une conjonction <strong>de</strong> négation <strong>de</strong> registres. Le BDD <strong>de</strong>area est donc linéaire par rapport au nombre <strong>de</strong> registres inactifs et peut se traduire en uneCBF <strong>de</strong> taille constante. En pratique, les opérations combinant un BDD U avec area produisent<strong><strong>de</strong>s</strong> BDDs plus petits que U mais le temps <strong>de</strong> calcul qui dépend principalement <strong>de</strong> la taille <strong>de</strong>U n’est en pratique pas négligeable. Notre métho<strong>de</strong> <strong>de</strong> <strong>partitionne</strong>ment est donc assez coûteuseen temps mais peu coûteuse en mémoire.5.3.2 PerformancesLes performances <strong>de</strong> notre algorithme dépen<strong>de</strong>nt du programme <strong>Esterel</strong> source. Etantdonné que notre technique <strong>de</strong> <strong>partitionne</strong>ment repose sur la réception <strong><strong>de</strong>s</strong> signaux, le <strong>partitionne</strong>mentsera d’autant plus performant que le programme contiendra <strong>de</strong> nombreuses constructionspresent ou abort et <strong>de</strong> taille suffisamment gran<strong>de</strong>. A l’inverse, un programme contenant<strong>de</strong> nombreuses boucles combinées en parallèle présentera plus <strong>de</strong> risque <strong>de</strong> donner <strong><strong>de</strong>s</strong>résultats médiocres. Plus précisément, le problème apparait lorsqu’une instruction loop produit<strong>de</strong> nouveaux états à chaque tour <strong>de</strong> boucle et lorsque ces nouveaux ensembles d’états ontune représentation BDD irrégulière.Il est important <strong>de</strong> remarquer que notre <strong>partitionne</strong>ment ne permet pas <strong>de</strong> simplifier l’expression<strong><strong>de</strong>s</strong> BDDs <strong><strong>de</strong>s</strong> registres situés juste <strong>de</strong>rrière la frontière. En effet, la frontière nous permet<strong>de</strong> restreindre le domaine <strong>de</strong> définition <strong><strong>de</strong>s</strong> fonctions booléennes mais en aucun cas leur image.Seuls les registres situés à une profon<strong>de</strong>ur supérieure ou égale à 2 au <strong>de</strong>là <strong>de</strong> la frontière voientleur expression simplifiée.5.3.3 Encodage <strong><strong>de</strong>s</strong> <strong>programmes</strong>Nous pensons que notre technique <strong>de</strong> <strong>partitionne</strong>ment est particulièrement adaptée au casdu langage <strong>Esterel</strong> : il s’agit d’un langage impératif dans lequel les zones actives et inactivesdu programme sont clairement définies par la valeur <strong><strong>de</strong>s</strong> registres. Le codage <strong><strong>de</strong>s</strong> <strong>programmes</strong>sous forme <strong>de</strong> circuit qui produit un registre booléen par instruction pause est également trèsadapté à notre problème. Cela nous permet <strong>de</strong> représenter simplement l’ensemble <strong><strong>de</strong>s</strong> blocsactifs par une simple conjonction <strong>de</strong> registres.On peut imaginer adapter notre technique pour le cas où le codage <strong><strong>de</strong>s</strong> pauses serait plus compliquécomme par exemple un codage hiérarchique : dans un programme P ;Q où les exécutions<strong>de</strong> P et <strong>de</strong> Q sont mutuellement exclusives, il est possible d’enco<strong>de</strong>r les états <strong>de</strong> P et <strong>de</strong> Qpar un même vecteur <strong>de</strong> registre. La séquence serait alors encodée par un registre booléensupplémentaire valant 0 lorsque P est actif et 1 lorsque Q est actif. Notre technique <strong>de</strong> <strong>partitionne</strong>mentpourrait être appliquée à <strong>de</strong> tels circuits mais le codage <strong><strong>de</strong>s</strong> blocs actifs, c’est à dire<strong>de</strong> l’ansemble area perdrait en simplicité. Ceci permettrait d’adapter notre technique au calcul<strong>de</strong> l’espace d’états <strong>de</strong> circuits optimisés [71].