d’UFs de l’application vis´ee. Le pseudo code du processus principal de l’algorithme mettant en
œuvre notre approche m´ethodologique est d´ecrit dans la figure 3.18 ci-dessous.
La fonction T empP artitioning(int N
T P, int T
maxexec, int S
ucr) ) r´ealise le partitionnement
temporel initial. Cette fonction prend pour argument un graphe flot de donn´ees G et des
contraintes sp´ecifi´ees telle que le temps d’ex´ecution total T
maxexecautoris´e, le temps de
re-configuration T
reconfsp´ecifi´e par la technologie cible, la surface logique de l’unit´e de calcul
reconfigurable (FPGA cible)S
ucrconsid´er´ee ´eventuellement selon l’approche adopt´ee comme la
taille de la surface optimale pour toutes les partitions. La fonction d´etermine alors les partitions
pr´eliminaires correspondant au nombre de partitions initiales N
T Pcomme entr´ee du processus
d’optimisation inter-partition. Ce nombre devient alors le point de d´epart de la mise en œuvre
algorithmique d’optimisation inter-partition (N
AS=N
T P, line 12 - figure 3.18 ).
Ensuite `a chaque it´eration de l’algorithme correspondent une estimation du degr´e de synth`ese
inter-partition et une restructuration des unit´es fonctionnelles/op´erateurs pour former des unit´es
de calculs associ´ees `a des unit´es de contrˆole mettant en œuvre la fusion par factorisation des UFs
des partitions successives. Ce processus est r´ealis´e pour toutes les combinaisons de partitions
successives dans le but de r´eduire le nombre de partitions initiales de d´epart N
AS=N
T P.
La fonction CalcM er(int N f
i(p), int N f
j(p), intN c
i, intN c
j) calcule le taux de ressemblance
mutuelle M
i,jentre deux partitions successives i et j. Les param`etres de la fonction N f
i(p),
N f
j(p), N c
iet N c
jcorrespondent aux param`etres du T.R.M. d´efini en§. 3.2.4 et sp´ecifi´e par
l’´equation 3.50. Ils correspondent respectivement aux nombres d’op´erateurs de chaque unit´e
fonctionnelle constituant les partitionsietj;p est l’ensemble de UFs dans les partitionsietj.
N c
ietN c
jsont respectivement les nombres d’op´erateurs totaux dans les partitions ietj.
La figure 3.19 pr´esente le pseudo code d´etaill´e de l’algorithme mettant en œuvre la synth`ese
inter partition. Le taux de ressemblance mutuelleM
i,jest calcul´e entre les deux partitionsietjet
est mis en comparaison avec une valeur seuilτ
T RMAS. Ce calcul permettant de valider l’ex´ecution
ou non de la phase de factorisation des tˆaches `a instanciation multiple pr´ealablement identifi´ees
1. // begin main process 2. intNTP = 0; //
3. int NAS = 0; //
4. int Sucr = 0; //
5. TempPartitioning(int NTP, int Tma xe xec, int Sucr ) // 6. {… 7. NTP<= n 8. Tmaxe xec<=
¦
= n 1 i Tpi +(n-1)Treconf // 9. Sucr <= Max(Pi) // 10. StartAS = true; // 11. } // 12. NAS = NTP;13. LOOP B : While( StartAS == true ) {
14. InitialForIPS ( int i, int j, Boolean Su ) { // 15. i =1; 16. j =NAS; 17. t = 1; 18. Su = false; // 19. } // 20. LOOP A : w hile ( i !== n-1) { 21. CalcMer ( int Nfi (p) , int Nfj (p) , int Nci, int Ncj ) // 22. if Mi,j IJmer_ASthen
23. { if ( (i, j)tŀ (i, j)t-1) == 0 then { // 24. tryIPS (NCP ) // !
25. Checkcondition ( ) // "
26. endofpartition (int i, Boolean Su, int NAS, int NCP, int NP) } // # . 27. else { NextPartition ( int i, int j, int t ) } } //
28. else { NextPartition ( int i, int j, int t )
29. endofpartition (int i, Boolean Su, int NTP, int NAS, int NP) 30. }
31. } 32. }
33. //
Chapitre 3. M´ethodologie de Partitionnement temporel optimis´ee par Synth`ese architecturale
1. if Mi,j IJmer_ASthen
2. { if ( (i, j)tŀ (i, j)t-1) == 0 then {
3. //
4. tryIPS (NCP ) //
5. Checkcondition ( ) //
6. endofpartition (int i, Boolean Su, int NAS, int NCP, int NP) }
7. //
8. else {
9. NextPartition ( int i, int j, int t ) } }
10. //
11. else { NextPartition ( int i, int j, int t )
12. endofpartition (int i, Boolean Su, int NAS, int NCP, int NP) }
Fig. 3.19 – Pseudo-code de l’algorithme IPS.
1. Checkcondition( )
2. { if Texc Tmaxexc && area(Pij) Sucrthen {
3. Ncp = NAS – 1;
4. Su = true;
5. endofpartition(int i, Boolean Su, int NAS, int NCP, int NP)}
6. else {
7. NextPartition(int i, int j, int t)}
8. }
Figure 3. 14. Description de la fonction Checkcondition().
Fig. 3.20 – Description de la fonctionCheckcondition().
et extraites selon l’algorithme d´evelopp´e est pr´esent´e en§. 3.2.5 entre les deux partitionsietj.
Dans l’algorithme propos´e, la valeur seuilτ
T RMASest pr´ed´efinie par le concepteur. L’expression
((i, j)
t∩(i, j)
t−1) == 0 est une contrainte qui permet d’´eviter la fusion entre partitions non
successives.
La fonctionCheckcondition() (d´etaill´ee par la figure 3.20) de l’algorithme v´erifie la validit´e
de la nouvelle partition r´eduite. Le temps d’ex´ecution total T
excpour les partitions r´esultantes
par une ex´ecution IPS ne doit pas ˆetre sup´erieure `a la contrainte temps T
maxexec. De mˆeme la
surfacearea(P
i,j) doit ˆetre inf´erieure `a la surfaceS
ucr. L’indicateur de la synth`eses Su validera
1. endofpartition ( int i, Boolean Su, int NAS, int NCP, int NP )
2. { if i == n-1 && Su = true then {
3. NAS<= NCP;
4. continue LOOP B;
5. elsif i == n-1 && Su = false then {
6. NP<= NCP;
7. genecotroller (NP) } } // 8. else {
9. NextPartition ( int i, int j, int t ) }
10. return;
11. }