• Aucun résultat trouvé

Méthodologie de génération par simplification d’un STG de ré- ré-férence

Optimisation de la consommation des micropipelines

4.2 Modèle comportemental à base de réseaux de Petri

4.2.2 Méthodologie de génération par simplification d’un STG de ré- ré-férence

. sel (a) sel(N) sel(0) .. . to sel (b) sel(N) sel(0) .. . sel (c) sel(N) sel(0) .. . to sel (d)

Figure 4.15 – Fragments de réseau de Petri associés aux multiplexeurs et démulti-plexeurs. (a) et (b) requêtes et acquittements du multiplexeur. (c) et (d) requêtes et acquittements du démultiplexeur. Les « sel(i) » sont les poids des arcs dépendants de la valeur de sélection.

et à celui de sélection. Les arcs d’entrées de la transition sont pondérés en conséquence (Figure 4.15d).

Modélisation des valeurs de sélection Les primitives de sélection orientent les flots de données en fonction des valeurs des données de sélection. Ces valeurs sont calculées à l’extérieur du contrôleur dans la partie chemin de données. La difficulté est alors de modéliser ces données et leurs changements sans faire une simulation, couteuse, des chemins de données.

Dans notre modèle, le concepteur spécifie la suite des données attendue à l’entrée des blocs de sélection et associe un buffer ou une entrée à cette séquence. Cebuffer ou cette entrée doit correspondre au registre ou au port d’entrée du chemin de données qui contient la donnée de sélection. À chaque tir de la transition associée, les poids du multiplexeur ou démultiplexeur sont mis à jour selon la valeur du prochain élément de la suite.

4.2.2 Méthodologie de génération par simplification d’un STG de ré-férence

Afin de prouver que le modèle est correct, nous le générons à partir du STG du contrôleur (correct par construction) en appliquant successivement des simplifications valides.

4.2.2.1 Définitions formelles sur les réseaux de Petri (PNs)

Le PN représentant le contrôleur est un quadrupletG= (P, T, F, w) avec : — P l’ensemble des places,

T l’ensemble des évènements (transitions),

F ⊂(P ×T)(T ×P) l’ensemble des arcs (relation de flot) des places vers les transitions et des transitions vers les places.

w : F → {0,1} une fonction de poids. Pour (x, y) F, w(x, y) est le poids de l’arc (x, y).

Étant donné un PN,G, soient :

M :P → {0,1}le marquage représentant le nombre de jeton contenu dans chaque place.M0 est le marquage initial.

y={xTP/(x, y)F}le pré-ensemble deyPT, c’est-à-dire l’ensemble des prédécesseurs dey parF.

x ={yTP/(x, y)∈F}le post-ensemble dexPT, c’est-à-dire l’ensemble des successeurs dex parF.

La dynamique d’exécution deGdéfinit l’ensemble des transitions tirables pour chaque marquage M. Selon la règle stricte de transition, tT peut tirer si et seulement si

pt, M(p)w(p, t) etpt, M(p) 1w(t, p). Si ttire, le nouveau marquage

M0 est tel quept, M0(p) =M(p)w(p, t) etpt, M0(p) =M(p) +w(t, p). Nous définissons les notations suivantes :

Mt M0 signifie que test tirable dans le marquage M et que M0 est le résultat du tir.

— Une séquence de tirs σ =t1.t2. . . . .tN représente une suite de tirs de transitions

t1, t2, . . . , tN s’il existe des marquages M1, M2, . . . , MN+1 vérifiant M1t1 M2t2

. . .tN MN+1.

Comme notre cadre de travail n’inclue que des primitives déterministes, tous les PNs considérés sont des graphes marqués. On a donc ∀pP, |p|=|p|= 1, où |.|désigne le cardinal d’un ensemble.

4.2.2.2 Stratégie de construction par simplifications itérées

Le modèle doit représenter le contrôleur asynchrone. Ainsi, le modèle doit spéci-fier avec exactitude les relations entre les évènements pertinents du circuit de contrôle. Pour un circuit à données groupées avec des bascules, ces évènements pertinents sont les fronts montant des horloges locales des registres. Nous appelons les transitions associées à ces évènements « transitions observables ». Les autres évènements, à savoir les « tran-sitions internes », sont seulement utiles pour l’ordonnancement qu’elles imposent sur les transitions observables.

Dans la théorie des processus concurrents (Milner1983), deux processus sont fai-blement (ou observationnellement) équivalent s’il existe une correspondance entre leurs états et transitions respectifs. Le graphe d’état que nous utilisons est sans choix (toute transition tirable sera un jour tirée) et il existe une bijection entre les transitions et les actions observées5. Ainsi, dans notre cas, nous pressentons qu’une équivalence de trace (Bloom,IstrailetMeyer 1988) implique l’équivalence observationnelle.

Parmi les transitions T, les transitions internes sont indistinctement notées 1 et le sous-ensemble des transitions observables est T \ {1}. L’opérateur e :T* (T \ {1})*

définit récursivement une séquence observableσe à partir d’une séquenceσ (4.5)6. f σ.t= ( e σ ift= 1 e σ.t iftT\ {1} (4.5)

Définition 1 (Modèle correct). Un modèle correct d’un circuit est tel que le modèle et le circuit ont le même ensemble de séquences observables (équivalence de trace, voir Bloom, Istrail et Meyer 1988).

Il est facile de construire un STG correct du contrôleur (Yakovlevet al. 1996). On remarquera d’ailleurs que, suivant cette méthode, le STG global est l’interconnexion des STGs élémentaires de chaque primitive.

Dans la prochaine section, nous présentons des règles de simplification d’un PN préservant la correction des modèles.

Règles de simplification

La réduction des PNs est un sujet vastement couvert dans la littérature. Cette sec-tion présente quatre règles de simplificasec-tion qui sont des cas particuliers de règles de réduction connues pour préserver la sûreté, la vivacité (Murata1989) et la couverture

(reachability) (HanetLee 2003). Nous avons restreint ces règles pour préserver la

cor-rection du modèle. Les trois premières simplifications sont valides pour la règle générale de transition. Dans cette dynamique d’exécution, une transition peut tirer même si les places de sorties ne sont pas vides. Il s’agit de la dynamique du STG. La quatrième simplification est valide dans le cadre de la règle stricte de transition. Ainsi, elle doit être appliquée après toutes les autres.

Transformation 1(Modification du marquage). Le marquage initialM0 peut être rem-placé parM00 si il existe une transition interne t∈ {1}telle queM0t M00 ouM00t M0.

Démonstration. Les deux cas sont symétriques par réflexivité de l’équivalence de trace.

Supposons que M0t M00. Les graphes marqués sont persistent, c’est à dire qu’une transition tirable sera soit tirée soit restera tirable indéfiniment. Ainsi, pour chaque séquence σ0.t.σ1 à partir de M0σ0 ∈(T \ {t})*, la séquence σ01 est une séquence valide à partir de M00. Réciproquement, pour toute séquence σ à partir de M00, t.σ est une séquence valide à partir de M0. Comme t est interne, les séquences observées sont identiques.

Transformation 2 (Simplification de transitions (Table 4.3)). Soient tp et tn deux

transitions telles quepP, ptptn. Les transitions peuvent être fusionnées

si M0(p) = 0 et si les conditions de la Table 4.3 sont vérifiées. Après la fusion, la transition résultante est marquée du label de l’éventuelle transition observable.

6. Nous utilisons ici la notation classique des languages réguliers : T* =S

n∈NTn est l’union des puissances cartésiennes deT, c’est-à-dire, toutes lesn-uplets finis ou infinis d’éléments deT.

Table 4.3 – Simplification de transitions. La table se lit de la manière suivante : « si

tn est interne, tp est observable, et tn possède un unique prédécesseur p, alors p et tn

peuvent être supprimés. Les successeurs de tn deviennent les successeurs detp. »

tp / tn tn observable tninterne

tp observable Non applicable si {p}=tn

tp p

tn tr

tp interne sitp ={p} si{p}=tn outp ={p}

tp p

tn tr

Démonstration. La fusion des deux actions tn et tp indique que pour un observateur

externe, il n’y a pas différence si les conséquences detn sont observées avant celles detp. Si une transition est observable, alors ses conséquences sont immédiates. Ainsi, la fusion n’est pas possible dans le cas Observable/Observable. On suppose dorénavant quetn ou

tp est interne etM0(p) = 0.

Supposons que {p} = tn et tn = 1 (transition interne). Dans ce cas, si tp tire, tn

devient tirable juste après. tn étant interne, ses conséquences et celles de tp peuvent donc être observées dans n’importe quel ordre. Formellement, pour toute séquence de tirs σ =σ0.tp.σ1.tn.σ2σ0, σ1 ∈(T \ {tn})*, la séquence σ0 = σ0.tp.tn.σ12 est aussi une séquence valide et ˜σ = σe0 = ˜σ0.t˜p.σ˜1.σ˜2. L’application récursive de cette même propriété sur σ2 prouve que {p} = tn est une condition suffisante pour la fusion dans les cas Interne/Interne et Observable/Interne.

Supposons quetp ={p}ettp = 1. Dans ce cas, pour toute séquenceσ=σ0.tp1.tn2

σ0, σ1 ∈ (T \ {tn})*, σ0 = σ01.tp.tn2 est aussi une séquence valide et ˜σ = σe0 = ˜

σ0˜1.tn.˜ σ˜2. Similairement au cas précèdent, cela prouve quetp ={p}est une condition suffisante pour la fusion dans les cas Interne/Interne et Interne/Observable.

Les conditions de laTable4.3 sont suffisantes mais pas nécessaires. D’autres simpli-fications de transitions peuvent préserver les traces. Par exemple,tp peut être simplifiée si ••tn={tp} ∪••tp.

Transformation 3 (Simplification des places parallèles (Figure4.16a)). Soientp, p0

P et tp, tnT. Si p6=p0, tpptn, {p, p0} ⊂tptn et M0(p) = M0(p0), alors p0 peut être supprimée.

Démonstration. Soit G le graphe marqué et G0 celui obtenu en enlevant p de G. Par

induction sur la longueur des séquences de tir dansGetG0, pour tout marquage couvert

M dans G, il vient que la valeur de M(p)M(p0) est préservée, que le marquage M0

de G0 obtenu à partir de M en supprimant p est aussi couvert et que tn (resp. tp) est tirable dansG0 si et seulement si elle est tirable dans G.

(a) Places parallèles (b) Places complémentaires

Figure4.16 – Simplification des places.

La dernière transformation permet de simplifier davantage le modèle mais nécessite d’utiliser la règle stricte de transition. Dans le cas d’un PN sûr, les règles stricte et générale sont équivalentes. En revanche, comme la dernière transformation ne préserve pas la sûreté, il n’est en principe pas possible de revenir à la règle générale.

Transformation 4 (Simplification des places complémentaires (Figure 4.16b)). Soit p, p0P et tp, tnT. Si p 6= p0, ptptn, p0tntp et M0(p) = 1M0(p0),

alors p0 peut être supprimée.

Démonstration. La preuve est similaire à celle de la simplification des places parallèles

(Transformation 3).

Extension aux primitives de sélection

Pour modéliser les primitives de sélection, les poids des arcs deviennent des fonctions de N valeurs de sélections. Formellement, pour (x, y) F, le poids w(x, y) peut soit être constant (0 ou 1) soit dépendre d’une valeur de sélectionwi (wi ou 1wi) pour un

i∈[0, N −1]. La valeur de sélection wi est définie comme suit :

tiT\ {1} est la transition observable associée à la valeur de sélection. — ki ∈N est un compteur initialisé à 0 puis incrémenté de 1 à chaque tir deti. — Si est une séquence binaire. La valeur de sélection wi =Si(ki) est lakie valeur

binaire de la séquence.

La simplification des transitions ne change pas. Les poids des transitions après fusion sont indiqués sur laFigure 4.17. La simplification de places parallèles nécessite que les poids soient identiques. La simplification de places complémentaires n’est pas définie avec des poids différents de 1.

1 w1 w0 w2 w4 w3 w1.w3 w4 w2 w0.w3 (a) Castp•={p} w0 w1 w2 w3 w4 1 w2 w1.w4 w1.w3 w0 (b) Cas{p}=•tn Figure 4.17 – Simplification de transitions avec des poids sur les arcs.

R1 fork join R2 R3 R4 plein vide vide vide (a) Circuit R1 R2 R3 R4 fork join (b) « Canal équi-valent » R1 R2 R3 R4 (c) « Réduit » R1 R2 R3 R4 (d) Indépendant de l’initialisation

Figure 4.18 – Exemples de modèles obtenus à partir d’un même circuit.

4.2.2.3 Modèles résultant des simplifications

Le modèle « canal équivalent » présenté en « canal équivalent » est obtenu à partir du STG en appliquant les transformations sur les chemins d’acquittements jusqu’à ce qu’aucune transformation ne soit possible. LaFigure4.18b montre le modèle dérivé de la spécification de la Figure4.18a. Le modèle « canal équivalent » contient une place par canal et les chemins d’acquittements (pointillés) sont simplifiés.

En terme de taille, ce modèle est plus gros que les TMGs (Carmona et al. 2009) mais est plus expressif car il permet des canaux (arcs dans les TMGs) sans élément de mémorisation. Notre modèle est en revanche plus compact que les STGs (Chu1986) et les SDFSs (Sokolov,PoliakovetYakovlev2007).

Un modèle « réduit » peut être obtenu en appliquant les règles de simplifications à tout le circuit (chemins de requête et d’acquittement) à partir du marquage initial. Si le circuit ne comporte pas de structures de choix, le modèle « réduit » consiste simplement à ajouter des places entre les transitions observables connectées par un chemin combi-natoire (Figure4.18c). Le résultat est un graphe dual d’un TMG. Le modèle « réduit » est compact mais moins lisible et aussi dépendant du marquage initial (initialisation du circuit).

Nous envisageons donc un troisième modèle indépendant de l’initialisation. Il se-rait obtenu en appliquant seulement les règles de simplification qui sont valides pour tous les marquages initiaux correspondant aux initialisations possibles du circuit. La

Figure 4.18c montre un modèle indépendant de l’initialisation pour notre exemple.