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.

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

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

Saved successfully!

Ooh no, something went wrong!