Professional Documents
Culture Documents
Soit la structure de ltre num erique en treillis repr esent ee sur la gure 1. On consid erera un additionneur de temps de propagation egal ` a un cycle et un multiplieur pipeline ` a deux etages, ayant une cadence de un cycle et ayant une latence de deux cycles.
1 y(n)
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16 17
18 x(n)
19
20
21
+
x
22
D
23
x x
+
x x
26 24
25
Figure 1 SFG de la structure en treillis 1. Enum erer, en utilisant les num eros dop erations, quelles sont les di erentes boucles de ce graphe ot de signal (SFG). Quel est la temps de la boucle la plus critique (Tbc ) ? 2. Quel est la temps du chemin critique (Tcc ) ? 3. A quoi correspondent ces m etriques ?
1 y(n)
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16 17
18 x(n)
19
20
21
+
x
22
D
23
x x
+
x x
26 24
25
Figure 2 SFG de la structure en treillis (pour transformations) 4. D eterminer le nombre minimum dadditionneurs et de multiplieurs permettant datteindre une cadence de traitement de 4 cycles (i.e. un nouvel echantillon x(n) doit etre ltr e tous le 4 cycles). 5. Proposer des transformations algorithmiques sur ce SFG permettant de r eduire la latence du ltre ` a 4 cycles (ou moins). Expliquer clairement votre m ethode et vos r esultats, et dessiner eventuellement le SFG transform e sur la gure 2.
(d) pour une tension de 1.5V et une contrainte de cadence de 8 ns, 4. Estimer au niveau algorithmique implique que lon ne prend que tr` es peu en compte la plateforme mat erielle. Quelle sera linuence de lordonnancement et de la structure de larchitecture (registres, bus, contr ole, m emoire, etc.) sur la pr ecision de lestimation pr ec edente. En lien avec un outil de synth` ese HLS, que proposez vous pour estimer la consommation en sortie de ce type doutil ?
Table 1 Biblioth` eque des op erateurs utilis es pour lexercice 1 Op erateur Mulitplieur Mulitplieur Additionneur Additionneur Temps de propagation 4 ns 6 ns 2 ns 3 ns Energie 130pJ/op eration 70pJ/op eration 40pJ/op eration 25pJ/op eration Tension Vdd 2V 1.5V 2V 1.5V
Mise en uvre dun ltre DLMS sur processeur VLIW (10 points)
Ce probl` eme concerne la mise en uvre dun ltre DLMS de taille N sur un processeur de type VLIW dordre 8. Nous consid erons un ltre DLMS dont les equations sont pr esent ees ci-dessous :
N 1
y (n) =
i=0
wi (n) x(n i) i {0 . . . N 1}
avec x(n) le signal ` a ltrer, y (n) la sortie du ltre, d(n) le signal d esir e et wi (n) les coecients du ltra DLMS. En ne prenant pas en compte le vieillissement des donn ees x, le code C utilis e ainsi que son equivalent en assembleur s equentiel pour implanter un ltre DLMS avec D egal ` a 1 sont donn es ci apr` es :
deb:
1. Quel est lint er et du ltre DLMS (D > 0) par rapport au ltre LMS (D = 0) dun point de vue implantation. 2. D eterminer le graphe ot de donn ees associ e au cur de la boucle et ` a la gestion de celle-ci en utilisant les instructions assembleur. Les variables ind ependantes de lit eration i sont charg ees dans un registre avant la boucle et conserv ees dans celui-ci dans le traitement de la boucle. Implantation directe sans d eroulage de boucle 3. Dans un premier temps, nous consid erons un code sans parall elisme dinstructions et sans d eroulage de boucle tel que d ecrit plus haut. Compl eter la table dallocation des ressources an de r ealiser lordonnancement du cur de la boucle. Indiquer le nombre de cycles de traitement n ecessaires pour traiter la boucle compl` etement. Quel est lIPC (Instruction Per Cycle ) du processeur VLIW pour chaque cycle du cur de boucle puis en moyenne sur le temps de traitement du ltre de taille N ? 4. Dans un second temps, nous consid erons un code avec parall elisme dinstructions et sans d eroulage de boucle. Donner le code assembleur et compl eter la table dallocation des ressources an de r ealiser lordonnancement du cur de la boucle. Indiquer le nombre de cycles de traitement n ecessaires pour traiter la boucle compl` etement. Quel est lIPC du processeur VLIW pour chaque cycle du cur de boucle puis en moyenne sur le temps de traitement du ltre de taille N ? Implantation apr` es d eroulage de boucle et software pipelining 5. Nous consid erons maintenant le d eroulage de la boucle en vue de faire du software pipelining. Compl eter la table dallocation des ressources an de r ealiser lordonnancement du cur de la boucle d eroul ee. Identier le prologue, l epilogue et le cur de la boucle. 6. Indiquer le nombre de cycles de traitement n ecessaire pour traiter le prologue, l epilogue et le cur de la boucle. Quel est lIPC du processeur VLIW pour chaque cycle du cur de boucle ?
ENSSAT
janvier 2009
Figure 1.b : version du graphe sans les dlais pour illustration des transformations
for each macro-block 4x4 of the image { for each pixel of the macro-block 4x4 { // pixel on the right a = E 5*F + 20*G +20*H 5*I + J // pixel below x = E 5*K + 20*L +20*M 5*N + O } for each pixel of the macro-block 4x4 { // pixel on the right-below j = a 5*b + 20*c +20*d 5*e + f } }
1. Dans le contexte dune squence vido HD o chaque image une taille de 1920x1080 pixels et la squence devant tre encode la cadence temps-rel de 60Hz (60 images/s), combien de macroblocs 4x4 doivent tre traits par seconde ? En dduire la puissance en MOPS de larchitecture ncessaire pour cette interpolation luma ? On considre par la suite un seul des trois calculs lmentaires : a=E5*F+20*G+20*H5*I+J 2. Quelle est la contrainte de temps pour ce calcul du demi-pixel a ? (1)
Il est possible de rcrire lquation (1) factorise de la faon suivante : s0=E+J ; s1=F+I ; s2=G+H ; a=s0-5*s1+20*s2 (2) Lquation (2) peut nouveau tre rcrite de la faon suivante : s0=E+J ; s1=F+I ; s2=G+H ; a=[(s0-s1) + 4*(s2-s1)] + 16*s2 (3) Lavantage est ici la suppression des multiplications trs coteuses par des dcalages par une puissance de deux qui ne cote rien au niveau matriel. 3. Dessinez le graphe de lquation 3. Les oprations de multiplication par 4 et par 16 seront reprsentes par <<2 et <<4. Celle-ci ne cotant rien au niveau matriel (uniquement de laiguillage de fils), elles peuvent tre omises par la suite. Quelle est la nouvelle puissance en MOPS de larchitecture ? 4. Larchitecture peut contenir trois types doprateurs : additionneur (ADD), soustracteur (SUB) ou additionneur/soustracteur (A/S). En considrant que ces oprateurs ont un temps de traverse de 2ns (500MHz), combien de ces oprateurs sont ncessaires pour une cadence dexcution de lquation 3 en 6 ns (3 cycles) ? Quelle slection, i.e. combien doprateurs de chaque type, vous parat optimale ? 5. Proposez ensuite un ordonnancement de ce graphe respectant cette cadence de 3 cycles.
Problme 2 : Mise en uvre dun filtre RII cascade sur DSP VLIW (8 points)
Ce problme concerne la mise en uvre d'un filtre RII H(z) d'ordre M sur un processeur de type VLIW dordre 8. On s'intressera la structure cascade dun nombre C de cellules du quatrime ordre sous forme canonique de ce filtre. Lquation de la cellule est donne ci-dessous, tandis que le SFG de la cellule est donn figure 2 gauche. Dans ce SFG, les nuds multiplications, nots xbi , correspondent une multiplication par le coefficient bi (idem pour ai). N w ( n ) = x ( n ) + ai w(n i ) i =1 avec N=4. N y (n) = bi w(n i ) i =0 On considrera ensuite un filtre dordre M, avec M multiple de 4, ralis sous forme de mise en cascade dun nombre C de cellules du quatrime ordre. Le filtre H(z) dordre M est dfini comme :
C
H ( z ) = H 1 ( z ).H 2 ( z )....H C ( z ) = Hi ( z )
i =1
avec C = M / 4
Etude de limplantation dune cellule lmentaire Le graphe du programme assembleur dune cellule lmentaire est donn figure 2 droite. On dsire mettre en uvre ce graphe flot sur l'architecture de traitement du processeur VLIW. On mmorise dans les registres Ai ou Bi du processeur lensemble des coefficients ai et bi du filtre. Seules les donnes w(n-i) et x(n) doivent tre charges de la mmoire par une instruction LDH. Le dtail du fonctionnement des instructions est donn en annexe dans la figure 3.
1. Quel est le chemin critique de ce graphe ? Quelle cadence maximale serait il possible datteindre ? 2. Proposez un ordonnancement du graphe assembleur de la figure 2 sur les ressources du processeur en remplissant la table des units fonctionnelles de la figure 4 avec les instructions assembleur excutes. 3. Indiquez le nombre de cycles de traitement de la cellule. Quel est le taux de charge en % (ILP) du processeur VLIW sur le temps de traitement de la cellule ? Etude de limplantation du filtre dordre M On considre maintenant le filtre dordre M constitu de C=M/4 cellules lmentaires du 4me ordre mises en cascade. Le programme du filtre complet est donc form dune boucle variant de 1 C dont le cur est le graphe de la figure 2. Pour la suite, cette boucle sera considre comme droule. 4. Sur la table de ressources figure 5, indiquez lordonnancement dune cellule en considrant une excution une cadence maximale. Pour cela, remplissez plusieurs cellules la suite en imbriquant les calculs des cellules entre elles pour optimiser la cadence, et donc lexcution du filtre global H. Expliquez clairement vos choix. 5. Quelle cadence peut-on atteindre pour chaque cellule ? Quel est le temps dexcution du filtre dordre M en fonction de C ? Quel est maintenant le taux de charge (ILP) du processeur VLIW sur une cellule ? 6. Quelles transformations sur le graphe pourraient permettre de gagner an latence et/ou en cadence ? 7. Quels sont les avantages et les inconvnients des processeurs DSP VLIW par rapport aux DSP conventionnels structure MAC/Harvard. Justifiez clairement vos rponses.
Figure 2 : SFG et graphe de la cellule du 4me ordre Hypothses Les coefficients ai et bi sont placs dans les registres internes du processeur. On considrera les coefficients identiques pour toutes les cellules afin de simplifier le programme.
5 1 2 1 1 1 5
.S1 .S2 Figure 3.a : jeu dinstructions du processeur VLIW utile pour ce problme
10
11
12
13
14
15
16
17
18
19
20
ENSSAT
Fvrier 2008
+
x M1
D D
M2 x
M2 x
D
x M1
3D
A1
+
x M3
D M4 x
D x M5
A1
+
D
M4 x
4D
x M5
3D
A3
y(n)
A4
x M3
+
A3
+
A4
y(n)
Les questions suivantes de ce problme sont raliser sur la version 1 du graphe de la figure 1.a. 4. Proposez une transformation algorithmique de type retiming permettant de rduire le chemin critique du filtre. Expliquez clairement votre mthode et vos rsultats. Dessinez le SFG transform sur la figure 2.a. 5. Proposez dautres transformations algorithmiques de type retiming permettant de rduire le chemin critique du filtre de faon obtenir Tcc=12ns1. Plusieurs retimings sont sans doute ncessaires. Expliquer clairement votre mthode, et dessinez le SFG transform sur la figure 2.b.
Figure 2.a : version 1 du filtre IIR sans les dlais pour illustration des transformations
Figure 2.b : version 1 du filtre IIR sans les dlais pour illustration des transformations La suite des questions de ce problme est raliser sur la version 1 du graphe de la figure 1.a avec des oprateurs modifis : un additionneur de temps de propagation gal 4 ns et un multiplieur deux niveaux de pipeline de temps de latence gal 8 ns et de cadence gale 4 ns.
6. Pour ces oprateurs, donner les valeurs de Tcc et Tbc. Quelle est donc la frquence maximale dchantillonnage que lon peut atteindre pour ce filtre ? 7. Dterminez le nombre minimum d'additionneur(s) et de multiplieur(s) pipeline(s) permettant d'atteindre une cadence de traitement de 20 ns (i.e. un nouvel chantillon x(n) doit tre filtr toutes les 20 ns). 8. Dessinez le graphe flot de donnes (DFG) ordonnanc au plus tt (ASAP) du filtre. Indiquer, pour plus de clart, les numros doprations (Mi, Ai) sur le DFG. 9. Reprsentez un ordonnancement sur des cycles de 4 ns permettant d'atteindre cette cadence de 20 ns. Vous reprsenterez deux itrations successives du filtre afin de vrifier que la contrainte de cadence est respecte. Confirmer le nombre doprateurs utiliss. 10. Combien doprateurs seraient ncessaires pour atteindre la frquence maximale dchantillonnage ?
Problme 2 : Etude de la mise en uvre dune transforme de Fourier rapide (FFT) sur DSP VLIW
Ce problme concerne la mise en uvre de la FFT dun vecteur de N chantillons sur le DSP C6x de type VLIW. Le jeu dinstructions du DSP C6x est dcrit en annexe. Le papillon de la FFT de type DIF, tche lmentaire de cet algorithme, est donn ci-dessous gauche. X, Y, W, X' et Y' tant des nombres complexes, le calcul du papillon sous forme de nombres rels, tel quil doit tre implant sur DSP est donn ci-dessous droite. Il contient 4 multiplications et 6 additions soustractions.
X = X+ W.Y Y = X W.Y avec X, Y, W, X' et Y' des nombres complexes. Figure 3 : papillon de la FFT 1 Le graphe de dpendance des instructions du code ci-dessus est donn figure 4. Quel est son chemin critique et quelle est sa boucle critique (exprims en nombre de cycles du C6x) ? Quel serait le nombre minimum de cycles en termes de latence et de cadence que lon pourrait atteindre avec un processeur tels que le C6x ? 2 Proposez un ordonnancement des instructions et une allocation des instructions aux units fonctionnelles. Pour cela, remplissez la table doccupation des ressources de la figure 7. On minimisera la latence de calcul. On ne se proccupera pas des registres en considrant que les deux register file A et B en contiennent suffisamment. On ne se proccupera pas non plus des calculs dadresses2. 3 Quelle est la latence de lexcution dun papillon ainsi obtenue ?
4 La FFT est une suite de papillons selon le graphe donn figure 5. Quelle serait la cadence laquelle on pourrait itrer plusieurs papillons si on rptait plusieurs fois le graphe de la figure 4 pour calculer la FFT complte. Pour rpondre cette question, remplissez plusieurs itrations du calcul dun papillon dans la table doccupation des ressources de la figure 8. Il vous sera peut-tre (ou pas videmment si vous avez dj pens tout !) ncessaire de modifier lordonnancement que vous avez choisi la question 2 de ce problme. Application la modulation OFDM Dans le contexte de la modulation OFDM pour la tlvision numrique terrestre (DVB-T), des FFT de grande taille sont ncessaires. La norme indique que des tailles de 2048 (2K) et de 8192 (8K) doivent tre utilises des cadences respectives de traitement de 56s (2K) et 226s. 3 Une FFT de taille N est constitue de N/2.log2N papillons calculer. 5 Donnez dans le cas des modulations 2K et 8K, les puissances de calcul en MOPS ncessaires. 6 Sachant que le C6x peut fonctionner 400 MHz, est-il compatible avec cette application. Expliquez clairement votre mthode de calcul. Donner ce rsultat pour une estimation la plus raliste possible. 7 Donnez dans le cas des modulations 2K et 8K, les temps d'excution obtenus sur le DSP C6x partir des ordonnancements trouvs la question 4 de ce problme.
Cela veut dire par exemple qu'une FFT 2048 doit tre calcule une cadence de 56s
5 1 2 1 1 1 5
.S1 .S2 Figure 6 : jeu dinstructions du TMS 320C6x utile pour ce problme
10
11
12
13
14
15
16
17
18
19
20
Figure 7 : table dallocation des ressources (1) 1 .D1 .L1 .M1 .S1 .D2 .L2 .M2 .S2 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ENSSAT
Fvrier 2007
Problme 3 : Etude de la mise en uvre dune transforme de Fourier discrte (DFT) sur DSP VLIW
Ce problme concerne la mise en uvre de la DFT dun vecteur de N chantillons sur le DSP TMS 320C6x (de type VLIW). La DFT sexprime de la faon suivante :
N"1
y(k) =
$
n= 0
x(n).e
" j2#
k.n N
N"1
(.
Pour la premire partie de ce problme, on considrera que x(n) est rel. Les y(k) sont des variables complexes. y.r reprsente sa partie rel tandis que y.i reprsente sa partie imaginaire. On ! s'intresse la compilation d'un code C sur un processeur DSP VLIW (ici un TMS320C6x). Ce processeur est compos de 2 units contenant chacune 1 multiplieur, 2 UAL et une unit de gestion des adresses. Le code C correspondant la DFT s'crit de la faon suivante :
for (k=0; k<N; k++) { t.r=0; t.i=0; for (n=0; n<N; n++) { t.r += C[n]*x[n]; t.i += S[n]*x[n]; } y.r[k]=t.r; y.i[k]=t.i; } // // // // // For each k=0..N-1 Zero temp variables For each n=0..N-1 C[n]=cos(2PIkn/N) S[n]=sin(2PIkn/N)
Une compilation classique de ce programme aboutirait au code assembleur ci-dessous du cur de la boucle centrale encadre dans le code C ci-dessus. 1 Loop2 LDH .D1 *A8++,A2 ; Load x(n) in A2 2 LDH .D1 *A9++,A3 ; Load C(n) in A3 3 NOP 4 ; LDH has a latency of 5 cycles 4 MPY .M1 A2,A3,A5 ; Multiply x(n) and C(n) in A5 5 NOP ; MPY has a latency of 2 6 ADD .L1 A5,A6,A6 ; Add A5 to the accumulator A6 7 LDH .D1 *A10++,A4 ; Load S(n) in A4 8 NOP 4 ; LDH has a latency of 5 cycles 9 MPY .M1 A2,A4,A7 ; Multiply x(n) and C(n) in A7 10 NOP ; MPY has a latency of 2 11 ADD .L1 A7,A8,A8 ; Add A7 to the accumulator A8 12 [B0] SUB .L2 B0,1,B0 ; Sub 1 to the counter B0 13 [B0] B .S1 Loop2 ; Branch to loop if B0 <> 0 Figure 2 : Code assembleur de la DFT (boucle intrieure) 1 2 3 Dans sa version non optimise correspondant au code ci-dessus, quel est le nombre de cycles ncessaires pour l'excution de la DFT sur N=5 points sur ce processeur ? Le cur de la boucle Loop2 est excut N fois et Loop2 est lance N fois. Dessinez le graphe de dpendance des instructions du code ci-dessus. Quel est son chemin critique et sa boucle critique (exprims en nombre de cycles du C6x) ? Quel serait le nombre minimum de cycles que lon pourrait atteindre avec un processeur de ce type ? Dans le cas o N=5 et o lon droulerait la boucle Loop2, proposez un ordonnancement des instructions et une allocation des instructions aux units fonctionnelles. Pour cela, remplissez la table doccupation des ressources de la figure 4. On minimisera le temps de calcul par utilisation du pipeline. On ne se proccupera pas des registres dans cette question en considrant que les deux register file A et B en contiennent suffisamment.
4 5
Quelle est la latence de Loop2 droule ainsi obtenue ? Quelle est la cadence laquelle on peut litrer ? Quel est le temps de calcul ainsi obtenu si on rpte 10 fois Loop2 pour calculer la DFT. Indiquez comment obtenir une version pipeline logiciel en rintgrant une boucle pour des valeurs de N grandes. Indiquez, si le pipeline logiciel est possible, le cur de la boucle ainsi que le prologue et lpilogue. Dans le cas o x(n) est complexe, dessinez le graphe de dpendance des instructions du code du cur de la boucle. Reprsentez un ordonnancement de ce graphe dans le cas ou Loop2 est droule et pour N=5. Remplissez la table doccupation des ressources de la figure 5. Quelles sont les latence et cadence obtenues ? Question subsidiaire : une optimisation possible serait dutiliser les instructions de chargement LDW au lieu de LDH, permettant ainsi de charger deux donnes relles x.r[n] et x.i[n] simultanment (idem pour C(n) et S(n)). Combien de cycles peut-on gagner avec cette mthode pour litration de Loop2 droule ?
5 1 2 1 1 1
.S1 .S2 Figure 3 : Jeu dinstructions du TMS 320C6x utile pour ce problme
10
11
12
13
14
15
16
17
18
19
20
Figure 4 : Table dallocation des ressources (1) 1 .D1 .L1 .M1 .S1 .D2 .L2 .M2 .S2 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
10
11
12
13
14
15
16
17
18
19
20
Figure 4 : Table dallocation des ressources (1) 1 .D1 .L1 .M1 .S1 .D2 .L2 .M2 .S2 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Examen de conception de syst` emes int egr es ENSSAT EII3 et Master de Recherche STI
Olivier Sentieys Mercredi 8 f evrier 2006
Le ltrage en deux dimensions (2D) sur des donn ees est une op eration locale. Chaque echantillon de sortie est une combinaison lin eaire des sorties et entr ees pr ec edentes et de la valeur dentr ee, dans un voisinage local 2D de lentr ee. On peut prendre comme exemple de donn ee 2D une image selon les deux directions verticales (v ) et horizontales (h). La sp ecication de lalgorithme de ltrage est donn ee pour information par l equation suivante :
L M L M
g (n1 , n2 ) =
h=0 v =0
Le graphe ot de donn ees correspondant ` a cette equation est donn e gure 3 dans le cas o` u M = L = 2. Lentr ee du ltre est f (n1 , n2 ), sa sortie est g (n1 , n2 ). Il est constitu e de M + 1 cellules el ementaires dordre L dispos ees verticalement. La cellule el ementaire i, entour ee en pointill es sur la gure 3, est un ltre r ecursif dordre L. La premi` ere partie de ce probl` eme est consacr ee ` a l etude de la cellule el ementaire, tandis que la second partie traite de lalgorithme complet. Pour la suite du probl` eme, on consid erera un additionneur et un multiplieur de temps de propagation egal ` a un cycle. Pour les applications num eriques, on consid erera le temps dun cycle egal ` a 5ns. 1. Le graphe de la gure 1 repr esente la cellule el ementaire dans le cas o` u L = 2. Enum erer, en les dessinant directement sur le graphe fourni, les di erentes boucles du graphe ot de signal. Donner le temps respectif de chaque boucle. Quel est le temps de la boucle la plus critique Tbc ? Quel est le temps du chemin critique Tcc ? 2. Donner sur le graphe de la gure 1 un exemple de transformation par retiming par coupe du graphe et le reporter sur la gure 2. 3. Donner un ordonnancement ASAP du graphe ot de donn ees (DFG) correspondant ` a la gure 1. 4. Indiquer, pour chaque nud du graphe, la mobilit e de lop eration exprim ee en nombre de cycles.
5. D eterminer le nombre minimum dadditionneurs et de multiplieurs permettant datteindre une cadence de traitement de 4 cycles (i.e. un nouvel echantillon f (n) doit etre ltr e tous le 4 cycles). 6. Eectuer un ordonnancement par listes avec priorit e sur la mobilit e sur le nombre dop erateurs trouv es pr ec edemment. Quelles sont les cadence et latence obtenues ? 7. Quel est le nombre minimum de registres que contiendra larchitecture VLSI r ealisant lordonnancement pr ec edent ? Expliquez clairement votre r eponse. 8. Dans le graphe de la gure 3, les cellules el ementaires sont plac ees verticalement et g (n1 , n2 ) est reboucl e vers lensemble de ces cellules, tandis que f (n1 , n2 ) est dius e. Indiquer les boucles inter-cellules ajout ees dans ce cas. Quel est le temps de la boucle la plus critique Tbc ? Quel est le temps du chemin critique Tcc ?
Le calcul du papillon de la FFT (Fast Fourier Transform ) de type DIF, t ache el ementaire de cet algorithme, est donn e ci-dessous.
Tr = Wr Yr Wi Yi Ti = Wi Yr + Wr Yi X =X +T r r r Xi = Xi + Ti Y = Xr Tr r
Yi = Xi Ti
Les Wr et Wi sont des constantes directement issues de la m emoire. Xr , Yr , Xi , Yi sont les entr ees de lalgorithme, tandis que Xr , Yr , Xi , Yi sont les sorties. Les indices r et i correspondent aux parties r eelles et imaginaires des signaux complexes dentr ee et de sortie. On sint eresse ` a limplantation de ce papillon sur un processeur DSP conventionnel, ici le DSP TMS320C54x dont lunit e de traitement est donn ee gure 4 et les caract eristiques ` a la n de ce probl` eme. La fr equence dhorloge du C54x est de 200MHz soit un cycle de 5ns. 1. Dessiner le graphe ot de donn ees (DFG) des calculs du papillon en indiquant les multiplications, additions et soustractions ` a mettre en uvre. Repr esenter ce graphe selon son ordonnancement au plus t ot (ASAP). 2. On consid erera les op erateurs suivants : un additionneur/soustracteur et un multiplieur de temps de propagation egal ` a un cycle de 5ns. Quel est le temps du chemin critique Tcc ? 3. Quelle cadence et latence de traitement peut on atteindre (borne minimale) lorsque : on utilise uniquement le multiplieur et lALU ; on utilise les trois op erateurs du C54x. On se placera par la suite toujours dans le meilleur des cas en utilisant le plus dop erateurs possibles. 2
4. On consid erera tout dabord uniquement le calcul des parties r eelles de la sortie (i.e. Xr et Yr ), soit la moiti e du DFG du papillon. Donner un ordonnancement du graphe sur le C54x et remplir la table 1 des ressources. 5. Si on consid` ere ensuite le calcul du papillon complet, montrer quil est possible datteindre une cadence de 4 cycles. Remplir la table doccupation des ressources du C54x en montrant bien limbrication des calculs.
Cela veut dire par exemple quune FFT 2048 doit etre calcul ee ` a une cadence de 56s
Ressource Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 T reg A reg B reg Multiplier Adder/Sub. ALU Bus 1 Bus 2 Bus 3 Bus 4
ENSSAT
Fvrier 2005
me
ordre en cascade
Ltude traite dans ce problme concerne la cellule lmentaire dun filtre rponse impulsionnelle infinie (RII) du quatrime ordre. On considrera deux structures de cette cellules : la structure directe (voir figure 1.a) et la structure canonique (voir figure 1.b). Les nuds multiplications, nots [EL , correspondent une multiplication par le coefficient bi (idem pour ai) Les quations aux diffrences correspondant ces deux structures sont donnes ci-dessous. On prendra N=4.
\ Q = E [ Q L + D \ Q L
a) Structure directe
ZQ = [Q + D ZQ L = \ Q = E ZQ L =
b) Structure canonique
On considrera un additionneur de temps de propagation gal un cycle et un multiplieur pipeline deux tages, ayant une cadence de un cycle et ayant une latence de deux cycles. Pour les applications numriques, on considrera un cycle gal 5ns. Les questions 1 4 sont traiter pour les deux structures. 1. numrer, en utilisant les numros d' oprations ou en les dessinant directement sur le graphe, les diffrentes boucles de ce graphe flot de signal (SFG) et leur temps respectif. 2. Quel est le temps de la boucle la plus critique Tbc ? 3. Quel est le temps du chemin critique Tcc ? Quel est le temps de retard Td ? 4. Quelle est la cadence d chantillonnage maximale que l on peut atteindre pour ce filtre du quatrime ordre ? A.N. Transformation du SFG de la structure canonique 5. Proposer des transformations algorithmiques sur le SFG de la figure 1.b permettant de rduire le chemin critique (latence) du filtre 4 cycles. Expliquer clairement votre mthode et vos rsultats, et dessiner ventuellement le SFG transform. Ralisation dune architecture VLSI pour la structure canonique On considrera pour les questions 5 et 6 la structure canonique dans laquelle on posera b0 = 1, ce qui supprime l opration de multiplication correspondante. 6. Dterminer le nombre minimum d' additionneurs et de multiplieurs permettant d' atteindre une cadence de traitement de 4 cycles (i.e. un nouvel chantillon x(n) doit tre filtr tous le 4 cycles). 7. Indiquer, pour chaque nud du graphe, la mobilit de l opration exprime en nombre de cycles. 8. Reprsenter un ordonnancement permettant d' atteindre cette cadence de 4 cycles tout en minimisant la latence et le temps de retard de traitement. 9. Quel est le nombre minimum de registres que contiendra l architecture VLSI ralisant l ordonnancement prcdent ? Expliquez clairement votre rponse. Filtre dordre M sous forme cascade On considre un filtre d ordre M, avec M multiple de 4, ralis sous forme de mise en cascade d un nombre C de cellules du quatrime ordre. Le filtre H(z) d ordre M est dfini comme :
+L ] + ] = + ] + ] + ] =
=
avec C = M / 4
10. La cadence d chantillonnage maximale que l on peut atteindre pour ce filtre d ordre M est elle modifie par rapport celui d une cellule du quatrime ordre ? 11. En considrant l ordonnancement de la question 8, quel serait la cadence globale de traitement du filtre d ordre M ?
Problme 2 : Etude de la mise en uvre dun filtre RII cascade sur DSP VLIW
Ce problme concerne la mise en uvre d' un filtre RII H(z) d' ordre M sur le DSP TMS 320C6x (de type VLIW). On s' intressera la structure cascade d un nombre C de cellules du quatrime ordre sous forme directe de ce filtre, comme tudie au problme 1. Etude de limplantation dune cellule lmentaire Le graphe du programme assembleur d une cellule lmentaire est donn figure 2. On dsire mettre en uvre ce graphe flot sur l' architecture de traitement du C6x. On mmorise dans les registres Ai ou Bi du C6x l ensemble des coefficients ai et bi du filtre. Seule les donnes x(n-i) et y(n-i) doivent tre charges de la mmoire par une instruction LDH. Le dtail du fonctionnement des instructions est donn en annexe dans la figure 3. 1. Proposez un ordonnancement de ce graphe flot de donnes sur les ressources du C6x et remplissez la table des units fonctionnelles de la figure 4 avec les instructions assembleur excutes. 2. Indiquez le nombre de cycles de traitement de la cellule en terme de latence et de cadence. Quel est le taux de charge en % (ILP) du C6x sur le temps de traitement de la cellule ? Etude de limplantation du filtre dordre M me On considre maintenant un filtre d ordre M constitu de C=M/4 cellules lmentaires du 4 ordre mises en cascade. Le programme du filtre complet est donc form d une boucle variant de 1 C dont le cur est le graphe de la figure 2. Pour la suite, cette boucle sera considre comme droule. 3. Sur la table de ressources prcdente, indiquez l ordonnancement des diffrentes cellules en considrant une excution une cadence maximale. 4. Quelle cadence peut on atteindre pour chaque cellule ? Quel est le temps d excution du filtre d ordre M en fonction de C ? Quel est maintenant le taux de charge (ILP) du C6x sur une cellule ? 5. Dans le cas o on veut mettre ce programme sous forme de pipeline logiciel en rintgrant une boucle sur le nombre de cellules, indiquez prologue, pilogue et cur de cette boucle. 6. 4XHOV VRQW OHV DYDQWDJHV HW OHV LQFRQYpQLHQWV GHV SURFHVVHXUV '63 9/,: SDU UDSSRUW DX[ '63 FODVVLTXHV j VWUXFWXUH 0$&+DUYDUG -XVWLILH] FODLUHPHQW YRV UpSRQVHV
H EF G
%'&)(10 2
"!$#
BC("A 2
D4E F G
%'&4("0 2 5 3
"!'3
9 "@ 3
%'&)(1A 2 5 3
%'&4("0 2 5 6
"!$6
9 "@$6
%'&)(1A 2 5 6
+\SRWKqVHV /HV FRHIILFLHQWV DL HW EL VRQW SODFpV GDQV OHV UHJLVWUHV LQWHUQHV GX &[ 2Q FRQVLGpUHUD OHV FRHIILFLHQWV LGHQWLTXHV SRXU WRXWHV OHV FHOOXOHV DILQ GH VLPSOLILHU OH SURJUDPPH
%'&4("0 2 5 7
"!$7
9 "@$7
%'&)(1A 2 5 7
%'&4("0 2 5 8
"!$8
%'&)(1A 2 5 8
RUGUH
+5 +6 +7 +8
y(n)
x(n)
w(n) +1 D +2 +3 +4 xa1 D xa2 D xa3 D xa4 xb4 xb3 +8 xb2 +7 xb1 +6 xb0 +5
y(n)
ENSSAT EII3 - tronc commun DEA STIR option Signal-Architecture DS Conception de Syst` emes Int egr es
Tous documents autoris es F evrier 2004
ENSSAT ENSSAT
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16 17
18 x(n)
19
20
21
+
22
D
23
+
24
x
25 26
Figure 1: SFG de la structure en treillis erer, en utilisant les num eros dop erations, quelles sont les di erentes boucles de ce graphe 1. Enum ot de signal (SFG). Quel est la temps de la boucle la plus critique (Tbc ) ? 2. Quel est la temps du chemin critique (Tcc ) ? 3. A quoi correspondent ces m etriques ? 4. D eterminer le nombre minimum dadditionneurs et de multiplieurs permettant datteindre une cadence de traitement de 4 cycles (i.e. un nouvel echantillon x(n) doit etre ltr e tous le 4 cycles). 5. Repr esenter un ordonnancement permettant datteindre cette cadence tout en minimisant la latence (temps de retard Td ) de traitement. 6. Proposer des transformations algorithmiques sur ce SFG permettant de r eduire la latence du ltre ` a 4 cycles (ou moins). Expliquer clairement votre m ethode et vos r esultats, et dessiner eventuellement le SFG transform e.
Probl` eme 3 : Mise en uvre dun ltre num erique sur processeur embarqu e
Ce probl` eme concerne la mise en uvre dun ltre RIF H (z ) de type sym etrique de longueur N paire sur des processeurs de traitement du signal d eni par :
N 2
y (n) =
i=0
Il sagit dune version equivalente au ltre RIF sur N points, dans lequel la r eponse impulsionnelle h(i) = ai est sym etrique, cest ` a dire ai = aN i1 . La plupart des questions de ce probl` eme peuvent etre trait ees ind ependamment. On prendra pour les exemples ` a suivre le cas N = 16. 1. Indiquez la taille m emoire occup ee, et le nombre minimum de multiplications et dadditions ` a eectuer en fonction de N . 2. Le programme bas e sur une boucle de ce ltre est donn e ci apr` es. 2
x[0] = input; // Update most recent sample acc = 0; // Zero accumulator. for (i=0; i<8; i++) // N=2*8 taps { tmp = x[i] + x[N-i-1]; // perform Q.15 multiplication acc = acc + h[i] * tmp; // Update accumulator } output = (short) (acc>>15); // Cast output to 16 bits. Le DSP utilis e est un TMS320C54x dont larchitecture est repr esent ee sur la gure 2.
A Bus1
A B Bus1
T Mult Add
A B 0 ALU A B
A B
A Bus4
MAC
A B Bus1 Bus2
ALU ALU
A B Bus1 T
Figure 2: Architecture du TMS320C54x Le C54x contient 3 registres T, A, et B. Le C54x contient 3 op erateurs. 1 multiplieur, 1 additionneur peuvent r ealiser une multiplication/addition en un cycle. Une ALU (additions, soustractions, op erations logiques) peut r ealiser une autre op eration en un cycle. Jusqu` a 3 donn ees peuvent etre lues simultan ement ` a chaque cycle. etre ecrit sur le bus 4 servant aux ecritures m emoires. A ou B peut D eduire de lalgorithme le graphe ot de donn ees du cur de la boucle. Larchitecture du C54x poss` ede 1 multiplieur et deux additionneurs. Il est donc potentiellement possible dex ecuter ce ltre sur N points en N/2+ P cycles. Proposer une transformation du code de lapplication et dessiner un ordonnancement qui permettent datteindre ce temps dex ecution en N/2 + P cycles. Que vaut P dans votre solution ? 3. Donner pour lordonnancement pr ec edent la table doccupation (i.e. remplir le tableau 1) des registres T, A, et B, et des bus. 4. Le cur de processeur C55x de Texas Instruments est une architecture r ecente disposant de deux unit es de traitement de type C54x (gure 2) en parall` ele, connect ees ` a la m eme structure m emoire et au m eme nombre de bus. 3
Proposer une transformation du code de lapplication et un ordonnancement qui permettent dacc el erer le temps dex ecution par rapport au C54x. Vous v erierez en particulier que les acc` es simultan es aux donn ees x[i] et h[i] dans les m emoires ne sont pas conictuels. Quel est le temps dex ecution que votre solution permet datteindre en fonction de N ? Ress. T reg A reg B reg Mult. Add. ALU Bus1 (R) Bus2 (R) Bus3 (R) Bus4 (W) Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9 Cycle 10
Probl` eme 4 : Etude de lacc el eration oerte par le couplage dun coprocesseur ` a un processeur dans un SOC
Ce probl` eme concerne l etude de lacc el eration oerte par le couplage dun co-processeur ` a un processeur dans un SOC. On consid erera une carte graphique pour acc el erer le codage de s equences vid eo (e.g. format DivX) couplant un processeur VLIW et un co-processeur ASIC sp ecialis e sur un traitement particulier de cette s equence de codage (e.g. estimation de mouvement). Les caract eristiques du syst` eme sont donn ees ci-dessous. ete de 800 MOPS pour une fr equence dhorloge de 200 MHz. Le processeur a une puissance cr Le bus de couplage fonctionne ` a 200 MHz sur 32 bits. Les images ` a coder par lASIC sont de taille maximum 512 340 (N M ), chaque pixel etant cod e sur 24 bits (3 couleurs sur 8 bits). Le r esultat du calcul de lASIC repr esente un volume de N M/2 donn ees de 32 bits. Lapplication ` a acc el erer n ecessite un nombre dop erations de calcul de N M 100. Elle doit etre ex ecut ee dans le cas id eal en un temps inf erieur ` a 5 ms. Le co-processeur ASIC doit : (1) recevoir limage compl` ete transf er ee pixel par pixel sur le bus 32 bits (temps Tcom1 ), (2) eectuer son calcul (temps Texe ), (3) retourner le r esultat du calcul sur le bus 32 bits (temps Tcom2 ). 1. Calculer les temps de communication des donn ees entre le processeur et lASIC Tcom1 et Tcom2 . 2. Exprimer lacc el eration Acc(Texe ) oerte par lASIC, i.e. le rapport entre la puissance de calcul oerte par le processeur coupl e` a lASIC et celle du processeur seul. Tracer cette acc el eration en fonction de Texe . Quelle est lacc el eration maximale que lon peut atteindre ? 3. A partir de quel Texe la contrainte de temps r eel est elle atteinte ? 4. Quelles solutions proposez vous pour augmenter les performances de ce syst` eme sur puce ?
ENSSAT EII3 - tronc commun DEA STIR option Signal-Architecture DS Conception de Systmes Intgrs
Tous documents autoriss Fvrier 2003
ENSSAT ENSSAT
Problme 1 : tude dune architecture VLSI pour un ltre RII du 1er ordre ( 6 points)
Soit le ltre numrique rponse impulsionnelle innie du premier ordre dni par : y (n) = a y (n 1) + x(n) 1. Aprs avoir trac son Graphe Flot de Signal (GFS ), donnez la frquence maximale de fonctionnement du ltre (i.e. la frquence dchantillonnage du signal dentre Fe ). On considrera quune multiplication et une addition sont eectues en un cycle de 5 ns (technologie 0.18m, oprateurs sur 16 bits). 2. Exprimez y (n 1) en fonction de y (n 2), puis reportez cette expression dans y (n) an dobtenir y (n) fonction de y (n 2) et des entres. En dduire le nouveau GFS ainsi que sa frquence maximale de fonctionnement. Concluez sur lintrt de cette transformation connue sous le nom de LookAhead . 3. Dessinez un ordonnancement de ce GFS permettant de suivre une cadence darrive des chantillons de 5 ns (quivalente une frquence dchantillonnage de 200 MHz). En dduire les caractristiques dune architecture (nombre doprateurs et nombre de registres, . . .) permettant dimplanter cet ordonnancement. On considrera que les coecients et les signaux y (n i) et x(n i), i se trouvent dans des registres locaux lunit de traitement. Expliquez clairement vos rsultats. 4. Gnralisez cette transformation jusqu lordre N. Donnez lexpression de y (n) en fonction y (n N ). En dduire la cadence fonctionnement que lon peut atteindre. Comment peut on trouver une architecture permettant de fonctionner cette cadence ? Commenter sur un exemple o N = 4. Quelles sont donc les limitations de cette transformation ?
Problme 2 : tude dun systme sur silicium pour le codage vido ( 14 points)
Dans les applications de codage vido, il est ncessaire, an de diminuer le ux vido, de pouvoir estimer le mouvement entre des blocs de pixels de limage courante et de limage prcdente. Cet algorithme, appel Estimation de Mouvement (EM) reprsente la partie la plus complexe du codeur vido. On le retrouve dans tous les codeurs de type MPEGx ou H26x. Cela constitue donc un bloc intressant tudier dans le cadre de sa mise en uvre sur un SOC. Chaque image est partitionne en blocs de rfrence (BR) de taille N N pixels, chaque pixel tant cod sur 8 bits. Chaque BR est compar avec des blocs de taille quivalente dans limage prcdente au sein dune fentre de recherche (FR) de taille (N + 2p) (N + 2p) pixels. Le bloc de la FR aboutissant une distance minimale avec le BR est choisi comme vecteur de mouvement. La gure 1.a montre ce principe, tandis que lalgorithme 1.b est le calcul de lestimation de mouvement du bloc BR sur lensemble de FR. Le calcul de la distance, reprsent par les deux boucles centrales de lalgorithme 1.b est donn par :
N 1 N 1
distance(u, v ) =
i=0 j =0
La valeur absolue ABS () est une opration qui peut tre implante sur une ALU. Ne pas tenir des calculs dindices.
N+2p
Search Window
1.sadmin = MAXINT; mvx=0; mvy=0; 2.for (u=-p; u<=p; u++) 3. for (v=-p; v<=p; v++) { 4. sad = 0; 5. for (i=0; i<N; i++) { 6. for (j=0; j<N; j++) { 7. sad = sad + ABS[BR(i,j)-FR(i+u,j+v)] 8. /* if (sad>=sadmin) break; */ 9. } 10. } 11. if (sad<sadmin) { 12. sadmin = sad; mvx = u; mvy = v; 13. } 14. } b) Algorithme de lEM
Fig. 1 Estimation de mouvement sur un bloc de limage par rapport un bloc de rfrence (EM) FR (algorithme 1.b) en fonction de N et p. 2. Sur une image de taille Nh Nw et sur un dbit vido de D images par secondes, quelle est la complexit totale (en MOPS) de lEM au sein du codage vido. On considrera que lEM doit tre calcule sur lensemble des blocs BR adjacents formant limage. On prendra par la suite : N = 8, p = 12, Nh = 288, Nw = 352 (image de format CIF), D = 20 images/s. Donner lapplication numrique. Quels peuvent tre les avantages et les inconvnients de se servir de la ligne 8 (non considre dans le dbut et dans la suite de ce problme). 3. Implantation sur processeur VLIW On sintresse tout dabord son implantation sur un DSP VLIW haute performance. Le processeur considr est ici le ST200 de la famille Lx (voir chap. 1, transparent 97) 1 cluster et une frquence dhorloge de 400 MHz. Ce processeur peut excuter jusqu 4 oprations par cycle et possde 6 units fonctionnelles (4 ALUs et 2 multiplieurs). Quelle est la puissance crte en MOPS que peut dlivrer ce processeur ? Quelles sont les autres informations pertinentes sur cette architecture pour notre application destimation de mouvement ? 4. Nous allons chercher une implantation de cet algorithme travaillant une cadence maximale pour ce processeur mais ne respectant pas forcment la contrainte trouve dans la question 2. On considrera le graphe ot de donnes de la boucle centrale de lEM (lignes 6 et 7 de lalgorithme 1.b) une fois celle-ci totalement droule. Que permet de faire apparatre cette transformation par rapport la spcication initiale ? Quel est son chemin critique ? Tracez ce graphe ot aprs lavoir ordonnanc au mieux sur le cluster du ST200. Vous pouvez pour cela utiliser la table des ressources fournie. En combien de cycles cette boucle est elle excute ? Quel est donc le nombre dinstructions par cycle (IPC) moyen de cette boucle ? Quel est le dbit vido D que lon peut atteindre dans le cas de ce processeur ? 5. Implantation sur processeur VLIW avec capacits SIMD/SWP Le processeur considr est maintenant le C64 de T.I. (voir chap. 1, transparent 94) une frquence dhorloge de 400 MHz. Ce processeur peut excuter jusqu 8 instructions par cycle, o les instructions peuvent se composer de plusieurs oprations simultanes sur des donnes de taille dirente. Les pixels tant tous cods sur 8 bits, expliquer, en se basant sur cet exemple, le principe de lexploitation des capacits SIMD/SWP dans les processeurs.
Cycle 1 2 3 4 5 6 7 8 9 10 11 12 13
ALU 1
ALU 2
ALU 3
ALU 4
MULT 1
MULT 2
Tab. 1 Table des ressources du ST200 Quelle est lacclration que lon peut potentiellement obtenir dans le cas du C64 par rapport larchitecture prcdente ? Est il donc possible datteindre la cadence impose par les contraintes du 2. ? On considrera que seules les units L1/L2 et S1/S2 sont utilisables dans notre cas (oprations +, -, ABS sur des donnes 8 bits). 6. Expliquer quelles sont les contraintes induites par lutilisation du SIMD/SWP sur le placement en mmoire des pixels des blocs BR et FR. 7. Implantation sur co-processeur ddi On souhaite maintenant associer un processeur traitant les boucles des lignes 2 et 3 un coprocesseur acclrant les boucles centrales des lignes 5, 6 et 7. Quelle est la contrainte de cadence que doit respecter ce co-processeur ? En considrant que les fonctions +, - et ABS peuvent travailler 400 MHz sur cet ASIC (i.e. le temps de traverse dun oprateur permettant de raliser les 3 fonctions de +, - et ABS est de 2.5 ns), quel est le nombre doprateurs arithmtiques que devra comporter ce co-processeur ? Expliquer clairement votre rsultat. 8. Sur le graphe ot de donnes de la question 4 (boucle 6 droule), quel type de transformation doit tre appliqu pour permettre un ordonnancement sur un nombre suprieur doprateurs ? Reprsenter cet ordonnancement sur le DFG transform (sans forcment atteindre le nombre doprateurs trouvs dans la question prcdente ; vous pouvez xer par exemple un nombre doprateurs gal 8). En optimisant la gestion de la boucle 5, donner le temps dexcution de lalgorithme dEM sur ce co-processeur. 9. Quel est le volume de donnes qui doit tre communiqu entre la mmoire contenant les images courante et prcdente et le co-processeur. On considrera que le co-processeur contient dans une mmoire locale le bloc BR et la fentre FR. 10. Dnition dun SOC pour le codage vido Dessiner et expliquer le synoptique dun SOC mixant processeur, co-processeur, mmoire, interconnexions et priphriques qui vous parait bien adapt limplantation de lapplication dEM. Vous pourrez par exemple dtailler rapidement pour les dirents blocs les direntes possibilits de solutions architecturales. Quest ce qui vous parait le plus dicile dans la conception de ce systme sur puce ? 11. Dtaillez, en vous basant sur le cours, les direntes possibilits de spcications (langage) et la mthodologie de validation (simulation) de larchitecture du SOC.
x(n)
y(n)
y(n)
+
D
+ x
x(n) D a
+
D D
x
a
a) Question 1
x
a2
b) Question 2
y (n 1) = a.y (n 2) + x(n 1) y (n) = a.[a.y (n 2) + x(n 1)] + x(n) y (n) = a2 .y (n 2) + a.x(n 1) + x(n) 2. Le graphe ot de signal est donn gure 1.b. La boucle critique tant divise par 2 (Tbc = 5ns), la frquence maximale dchantillonnage est maintenant de 200 MHz. Un ordonnancement de ce graphe est dcrit gure 2. Le temps de cycle (5 ns) indiqu en pointill est ici quivalent la contrainte de temps (Te ). Ceci implique que chaque oprateur est utilis 100% du temps. Il faut donc 2 multiplieurs et 2 additionneurs. Le nombre de registres est de 9 (1 par arc puisque la cadence est maximale), plus 3 registres pour grer les dlais Z 1 . La structure de cette architecture est identique au graphe ot.
y(n)
+
D
x(n)
x
D
Fig. 3 Ordonnancement du GFS du ltre 3. Lequation est donne ci dessous. Son graphe ot de signal est reprsent la gure 3. La boucle +Tadd critique est maintenant de Tbc = Tmult car la boucle contient N dlais. N y (n) = a3 .y (n 3) + a2 .x(n 2) + a.x(n 1) + x(n) y (n) = aN .y (n N ) + D(n, N )
N 1
D(n, N ) =
j =0
aj .x(n j )
Cependant, une limitation physique laugmentation de la frquence maximale de fonctionnement subsiste. Pour que le circuit travaille cette cadence, il faudrait que les oprateurs lmentaires soient eux mme pipelines. Par exemple, si N = 4, une cadence de 10/4 = 2.5 ns impose 4
davoir des multiplieurs (et additionneurs) au moins 2 niveaux de pipeline, an que leur cadence soit galement de 2.5ns. Ce principe trouve donc rapidement ses limitations. Par contre, une extension pour un ltre RII dordre N est envisageable...
D(n,N)
y(n)
+ x
D x(n) a D
+ x
a2 D
+ x
aN-2 D
+ x
aN-1
+
N.D
x
aN
Correction du Problme 2
1. 3N 2 (2p + 1)2 oprations.
Nw 3N 2 (2p + 1)2 . A.N. 20 1584 120.103 = 3.8 GOPS. 2. D NhN 2
3. 400 4 MOPS = 1.6 GOPS. 4. Ordonnancement sur 10 cycles. IP Cmoyen = 24/10 = 2.4. D 5 images/s. 5. On peut atteindre une acclration de 4 (4 oprations 8 bits par ALU). On doit donc pouvoir atteindre la contrainte. 6. Les donnes doivent tre places dans les registres par paquets de 4x8 bits pour tre traites en parallle selon le mode SWP. 7. Contrainte du co-processeur : 50.5 ns pour 64 additions, 64 soustractions et 64 fonctions valeur absolue. Ceci implique 10 oprateurs. 8. Associativit (tree-height reduction ) an daugmenter le taux de paralllisme. 9. Blocs BR et FR, soit 64 + 1024 pixels. Il peut exister un recouvrement entre les blocs FR dune itration sur lautre. 10. Le plus dicile dans ce SOC est la communication entre la mmoire et le co-processeur ainsi que le placement des donnes en mmoire. 11.
ENSSAT
janvier 2002
1. Emetteur WCDMA Un metteur WCDMA est principalement constitu dune multiplication complexe ralisant ltalement de spectre, dun filtre RIF et dune modulation.
Modulation
c(n)
Gnrateur de codes
p(n)
Gnrateur de porteuse
a. Donner la complexit en nombre dadditions et multiplications de chaque bloc de traitement. b. En dduire la puissance de calcul en MOPS ncessaire lmetteur WCDMA. 2. Rcepteur WCDMA
e(n) Dmodulation x(n) Filtre RIF y(n)
DATA(n) Le Rake Receiver est principalement Rake Receiver constistu de L=6 corrlateurs. Chaque Gnrateur corrlateur effectue une multiplicationde porteuse accumulation sur le signal y(n) par un code complexe ci(n) qui lui est propre. c. Donner la complexit en nombre dadditions et multiplications ainsi quen MOPS dun corrlateur et du Rake Receiver. d. En dduire la puissance de calcul en MOPS ncessaire au rcepteur WCDMA.
3. Etude dune solution architecturale pour le systme metteur-rcepteur a. Etudier pour les 3 blocs de filtre RIF complexe, Rake Receiver et modulation-dmodulation, ladquation avec les 3 solutions architecturales proposes dans le tableau ci-dessous. En clair, indiquer pour ces 3 blocs :
pour un ASIC, le nombre doprateurs ncessaires ; pour chaque DSP, le nombre de processeurs ncessaires, indiquer si la contrainte de temps peut tre respecte ; pour les 3 architectures la puissance moyenne pour lexcution du bloc ; Complexit des oprations : 4ns : 3 ns : 1 cycle : 1 cycle : 2 cycles : 1 cycle Frquence Puissance calcul Consommation : 130pJ/opration : 40pJ/opration 200 MHz 200 MIPS 200 MHz 1600 MIPS 120 mW 1W
1 2 3
b. Quelles sont les avantages et inconvnients des 3 solutions architecturales proposes ? c. Proposez une architecture mixte matrielle logicielle. Dessinez son schma de principe. Expliquer en particulier comment vous couplez le (ou les) DSP avec le (ou les) circuit ASIC (mthode de couplage, type dinterconnexion, gestion du logiciel, ). d. Les prochaines gnrations de technologies (0.13 m en 2001, 0.10 m en 2003) changent les rsultats trouvs prcdemment. Indiquez comment voluent, par exemple pour une technologie de 0.1, la frquence, la consommation et le temps de oprateurs. e. Quelles seraient les avantages dutiliser une solution reconfigurable dans ce systme ? Quelles sont les solutions pour cela ?
Problme 2 : Etude de la mise en uvre dun filtre RII sur DSP VLIW
La modulation d'amplitude en quadrature (MAQ) est une modulation 2 dimensions qui s'exprime par u(t) = a(t)cos(t) + b(t)sin (t), o = 2f et f est la frquence porteuse. Les trames a(t) et b(t) sont obtenues partir de la trame du signal d'entre. Par exemple dans un Modem V29, a(t) et b(t) reprsentent dans le plan complexe 8 tats 0, 90, 180 ou 270 degrs, pour une amplitude gale 3 ; si la phase est de 45, 135, 225, ou 315 degrs, l'amplitude vaut 21/2.
b(t) 21/2 -3 -3 a(t) x(t) b(t) -A sin(2 .f0t + 0) u(t) a(t) A cos(2 .f0 t + 0 )
Le schma du modulateur est donn ci-dessus. Le signal de sortie s'crit : u(t) = A.[a(t).cos(2.f0t + 0) - b(t).sin(2.f0t + 0)], o a(t) = k[ak.x(t-kT)] ; b(t) = k[bk.x(t-kT)]. Les fonctions cos et sin sont obtenues par des rsonateurs dont la rponse impulsionnelle est : pour la fonction sinus : h(n) = sin(nT) Aprs avoir amorc le rsonateur par un signal impulsionnel spcifique, sa sortie s'crit : y(n) = 2.cos(T).y(n-1) - y(n-2) pour la fonction cosinus : h(n) = cos(nT)
Aprs avoir amorc le rsonateur par un signal impulsionnel spcifique, sa sortie s'crit : y(n) = 2.cos(T).y(n-1) - y(n-2) L'expression numrique complte du MAQ est donne par les trois quations suivantes : (1) y (n) = . y (n 1) y (n 2) (2) y ' (n) = . y ' (n 1) y ' (n 2)
(3) u (n) = k =0 [a k y (n) bk y ' (n)]x(n k )
1
1. Quelle est la complexit en nombre de multiplications et additions/soustractions de la MAQ ? 2. Dessinez le graphe flot de signal SFG correspondant aux trois quations de la MAQ. 3. Quelles sont les valeurs de la boucle critique et le chemin critique de cet algorithme ? A quoi correspondent ces deux mtriques ? 4. On dsire mettre en uvre le graphe flot sur l'architecture de traitement du TMS 320C6x. Proposez clairement un ordonnancement du graphe flot de donnes sur les ressources du C6x. Dessinez le DFG ordonnanc. 5. On mmorise dans les registres Ai ou Bi du C6x lensemble des variables , ai, bi, y et y'. Seule la donne x(n) doit tre charge de la mmoire par un LDH. Remplissez la table d'occupation des registres par les variables qui y sont stockes et des units fonctionnelles par les instructions assembleur excutes. 6. Indiquez le nombre de cycles de traitement de la MAQ. En dduire son temps dexcution. 7. Les contraintes sont elles respectes par rapport aux paramtres de dbit de la modulation dans lUMTS du problme 1 ? Si les contraintes sont respectes, quel est le taux de charge (en %) du C6x, sinon, quelle solution proposez vous ? 8. Indiquez quels changements interviennent dans lordonnancement et le nombre de cycles si les donnes y et y sont galement ranges en mmoire.
5 1 2 1 1 1
STH
MPY
10
11
12
ENSSAT
Problme 1 : Etude dun circuit pour la mise en uvre dun filtre numrique
Soit le filtre rponse impulsionnelle finie sur 8 points dont les coefficients a(i) sont symtriques, i.e. a(i) = a(7-i). Il est donc possible de factoriser la version 1 ci dessous en une version 2 ne comportant
S = a (i ).e(i ) = a (i ).[e(i ) + e(7 i )]
i =0 i =0 7 3
plus que 4 multiplications. Version 1 Version 2 On considrera que Tadd = 20ns, Tmult = 30 ns, que les donnes e(i) et a(i) viennent de mmoires, et que S retourne en mmoire en fin de calcul. Dans un premier temps le nombre de bus entre mmoire et unit de traitement ne sera pas limit. 1. Dessinez le graphe flot de signal ordonnanc au plus tt de la version 2 de cet algorithme. Quel est le temps du chemin critique ? 2. On dsire tudier une architecture pour implmenter les calculs de la version 2 du filtre, dans les cas suivants : a) la cadence des calculs est de 240 ns b) la cadence des calculs est de 120 ns 1. Donnez le nombre doprateurs (additionneur, multiplieur) ncessaires dans les 2 cas. 2. Ordonnancez le graphe flot de donnes sur ce nombre doprateurs dans les 2 cas. La cadence est-elle respecte ? Donnez la latence des calculs. 3. Estimez le nombre minimum de bus et de registres dans les 2 cas. 3. Dessinez l'architecture de lunit de traitement (UT) obtenue aprs allocation des oprateurs et assignation des registres, dans le cas o la cadence vaut 120ns. Expliquez clairement lutilisation des ressources alloues par une table dutilisation (oprateurs, registres, bus). En particulier, soyez vigilant lallocation des oprations aux oprateurs lorsque leur nombre est suprieur 1. 4. Expliquez comment concevoir la structure de lunit mmoire (UM). Vous donnerez le nombre et le type de bancs mmoire, le placement des donnes dans ceux ci, ainsi que la structure dinterconnexion par bus entre UT et UM. On ajoute la bibliothque doprateurs un multiplieur pipeline de latence gale 40ns, de cadence gale 20ns, et comportant donc 2 tranches de pipeline. 5. Reprsentez lordonnancement du filtre en version 1 sur un additionneur et un multiplieur pipeline. Quel temps de calcul peut on atteindre avec cette version ? Lutilisation dun additionneur pipeline pourrait elle apporter un gain en performance ?
Problme 2 : Etude de la mise en uvre dun filtre numrique sur DSP VLIW
On s'intresse la compilation d'un code C sur un processeur DSP VLIW (ici un TMS320C6x). Ce processeur est compos de 2 units contenant chacune 1 multiplieur, 2 UAL et une unit de gestion des adresses. L'application que l'on tudie est le filtre version 1 du problme 1, elle s'crit de la faon suivante :
x[0] = input; acc = 0; for (i=0; i<8; i++) { prod = (h[i]*x[i]); acc = acc + prod; } output = (short) (acc>>15); // Update most recent sample. // Zero accumulator. // 8 taps // perform Q.15 multiplication // Update 32-bit accumulator // Cast output to 16-bits.
Une compilation classique de ce programme aboutirait au code assembleur ci-dessous. On ne sintresse par la suite quau cur de la boucle (lignes 3 8 du code).
1 2 3 4 5 6 7 8 9 10
Start
MVKL .S2 MVKL .S1 LDH LDH NOP MPY NOP ADD
8, B0 0, A5
; Intialise the accumulator (A5) to 0 ; ; ; ; ; ; Load x(i) in A2 Load h(i) in A3 LDH has a latency of 5 cycles Multiply x(i) and h(i) in A4 MPY has a latency of 2 Add A4 to the accumulator A5
Loop
Dans sa version non optimise, quel est le nombre de cycles ncessaires pour l'excution du filtrage sur 8 points sur ce processeur ? Quel est le nombre minimum de cycles que lon peut atteindre avec un processeur de ce type ? 2 Dans le cas o lon droulerait la boucle, proposez un ordonnancement des instructions et une allocation des instructions aux units fonctionnelles en utilisant un seul multiplieur. Pour cela, remplissez la table doccupation des ressources de la fin de page. On minimisera le temps de calcul par utilisation du pipeline. On ne se proccupera pas des registres dans cette question en considrant que les 2 register file A et B en contiennent suffisamment. 3 Afin dallouer les 2 multiplieurs, il est possible dutiliser les instructions de chargement LDW au lieu de LDH, permettant ainsi de charger 2 donnes x(i) et x(i+1) simultanment. Proposer un ordonnancement permettant dutiliser efficacement les 2 multiplieurs et minimisant le nombre de cycles. Remplissez la table dallocation. 4 Quel temps de calcul peut on atteindre avec la version 2 du filtre ? Quest ce qui peut limiter lefficacit du fonctionnement ? 5 Quels sont les avantages et les inconvnients des processeurs DSP VLIW par rapport aux DSP classiques structure MAC/Harvard. Justifiez clairement vos rponses.
MV STW B STW
F e tch
D ispatch U n it
Functional Unit
Functional Unit
Functional Unit
Functional U n it
Functional U n it
Functional Unit
Functional Unit
Functional U n it
.L1
.S1
.M1
.D1
.D2
.M2
.S2
.L2
R e g ister F ile A
D a ta M e m o ry C o n troller
Data Address 1
R e g iste r F ile B
Data Address 2
Internal M e m o r y
Figure 1 : Schma interne du TMS 320C6x Instruction LDH Description Nombre de cycles 5 Units .M Units .L Units .S Units .D .D1 .D2
LDW
MPY
Charge une donne 16 bits venant de la mmoire dans un registre Charge deux donnes 16 5 bits conscutives venant de la mmoire 2 Multiplication entre 2 registres, rsultat dans un troisime Addition 1 Soustraction Branchement 1 5
.D1 .D2 -
.M1 .M2 -
Cycle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
.D1 LDH
.D2
.L1
.L2
.M1
.M2
.S1
.S2
NOP
Cycle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
.D1
.D2
.L1
.L2
.M1
.M2
.S1
.S2
NOP
X, Y et W sont des nombres complexes Wk = cos(2k/N) +j.sin(2k/N) = Wr + jWi Y = Yr + j Yi Wk = Wr + j Wi Y' = Y'r + j Y'i
X'r = (Xr + Wr.Yr) - Wi.Yi X'i = (Xi + Wi.Yr) + Wr.Yi Y'r = 2.Xr - X'r Y'i = 2.Xi - X'i
Version 1 1.
Reprsenter le graphe flot de donnes des calculs des versions 1 et 2 en indiquant les multiplications, additions et soustractions sur des nombres relles mettre en uvre. On exprimera les sorties X'r, X'i, Y'r et Y'i, les parties relles et imaginaires des sorties X' et Y' en fonction des entres. Le temps d'un multiplieur est de 60ns, le temps d'un additionneur/soustracteur est de 30ns. On considrera quune multiplication par 2 se fait directement par un dcalage du registre dentre dun oprateur. Quelle est le temps du chemin critique Tcc dans les deux cas ? On s'intresse l'implmentation VLSI du calcul de ce papillon. La cadence dexcution dun papillon est fixe 360ns. On limitera le nombre de bus entre les mmoires et lUnit de Traitement (UT) deux, tout en autorisant le prchargement dune donne en registre. Combien doprateurs sont ncessaires ? Dans la suite du problme vous utiliserez une seule des versions du calcul des papillons en motivant votre choix1. Effectuer un ordonnancement du graphe pour respecter les contraintes. Dessiner larchitecture de lunit de traitement du circuit ainsi conu. On ne cherchera pas optimiser le nombre de registres, en prfrant ddier un registre chaque donne dentre (Yr, Yi, Wr, Wi, Xr, Xi).
2.
3.
4.
5. On cherche maintenant implanter la FFT sur 8 points selon le graphe classique donn ci dessous. Les vecteurs d'entre et de sortie x et X sont des x0 X0 nombres complexes. Peut on exploiter le calcul dune x1 X4 suite de papillons afin de rduire le temps dexcution x2 X2 de celui ci ? x3 X6 Quel est le temps de calcul dune FFT sur N=8 points ? x4 X1
x5 x6 x7
X5 X3 X7
A2 x(n)
+
x M1
x(n)
D D
M2 x
D
M2 x
x M1
3D
A1
+
D
A1
+
x M3
D M4 x
D x M5
M4 x
4D
x M5
3D
+
A3
+
A4
y(n)
x M3
+
A3
+
A4
y(n)
Version 1
Version 2
Les rponses aux questions suivantes sont donner pour les deux versions du filtre en treillis donnes ci dessus. Les multiplications Mi ont un temps dexcution de 2 cycles tandis que les additions Ai ont un temps dexcution de 1 cycle. Exprimez les chemins demands en utilisant le formalisme ...MiAi... 1. Donner les chemins entre les points mmoire ou lentre et la sortie. En dduire le temps du chemin critique (Td dfini au transparent n95 du cours). 2. Donner les diffrentes boucles et en dduire le temps de la boucle critique (Tbc dfini au transparent n95). 3. Quelle est la signification de ces deux mesures ?
Les calculs du filtre RII structure cascade reposent sur les traitements de cellules lmentaires du second ordre. Chaque cellule d'indice c a en entre ec(n) = Sc-1(n) la sortie de la cellule prcdente (c-1), calcule au mme temps n. Le calcul de la sortie de la cellule c, Sc(n) s'crit sous forme canonique soit :
wc (n) = [(ec (n) + a1 .wc (n 1) ) + a 2 .wc (n 2)] S c (n) = [(wc (n) + b1 .wc (n 1) ) + b2 .wc (n 2)]
1.
(1)
Pour une valeur de C cellules donne, indiquer quel est: la taille mmoire occupe, le nombre minimum de multiplications et d'additions (ou soustraction) effectuer. Dessiner le graphe flot de signal du filtre reprsentant les quations (1) des calculs d'une cellule. Dessiner ensuite le graphe flot de donnes simplifi, c'est dire sans les retards z-1 . L'architecture utilise est celle d'un TMS320C54x. Quelles sont les principales amliorations apportes par rapport la gnration prcdente de processeurs DSP TMS320C25 de Texas instruments ? Effectuer un ordonnancement du graphe flot prcdent sur l'architecture du C54x qui permette de minimiser le temps de calcul d'une cellule. On considre qu'au dpart tous les registres sont initialiss zro. On tablira la table d'occupation des registres et des bus durant les calculs (voir tableau en annexe). Vous donnerez galement un programme en pseudo-assembleur. Quelle est la ressource la plus critique ? Indiquer galement la manire dont vous placerez les donnes dans la mmoire. Quel gain de cycles peut tre apport lorsque lon considre le traitement des C cellules la suite pour la ralisation du filtre ?
2.
3. 4.
5.
Structure de bus Deux bus de lecture-donnes (CB, DB) et un bus dcriture-donnes (EB). Un bus de programme (PB). Quatre bus dadresse associs (CAB, DAB, EAB, PAB) aux prcdents. Le C54x a la possibilit de gnrer jusqu deux donnes issues de la mmoire donne dans un seul cycle. Celles ci sont adresses par deux registres auxiliaires dadresse (ARAU0 et ARAU1). Le bus de programme (PB) peut galement transporter une donne de la mmoire programme (e.g. une table de coefficients) vers le multiplieur ou vers la mmoire donnes. Cela permet donc limplmentation dinstructions trois oprandes en un cycle. Ressource T reg A reg B reg Multiplier Adder ALU Bus CB Bus DB Bus EB Bus PB Table doccupation des ressources du C54x Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7
Corrections DS janvier 2000 Problme 3 : Mise en uvre d'un filtre numrique sur DSP C54x
1. Taille mmoire occupe : 4C coefficients, 2C Wc(n-i), C entres/sorties Nombre minimum doprations : 4C multiplications, 4C additions 2. SFG dun filtre RII canonique figure 1. 3. Additionneur chan avec multiplieur, 2 accumulateurs, unit de calcul ACS/Viterbi, 2 bus de donnes, mmoire DATA double port 2 accs par cycle, 3 accs mmoire par cycle avec PB, EXP encoder, 4. Voir figure 2. w(n-1) MUL1 w(n) ADD3 s(n) x(n) ADD1 + + y(n) x + + + + D a1 MUL2 MUL3 MUL4 ec(n)
x x
x x
w(n-2)
w(n-2)
w(n-1)
x
a2
b2
x
figure 2
b1
figure 1 Ressource T reg A reg B reg Multiplier Adder ALU Bus CB Bus DB Bus EB Bus PB Instruction A1
A=ec(n)
Cycle 1
Cycle 2
Cycle 3
Cycle 6 S(n)
Cycle 7
A+B
A+B
A+B
W(n-2)
W(n-1) W(n)
W(n-1)
W(n-2)
W(n-2)
A2
A=A+B
B2
A=A+B B=b2*w(n-2)
B1
A=A+B B=b1*w(n-1)
A1
A=A+B
A2
S(n)=A
B2
B=a1*w(n-1) B=a2*w(n-2)
5.