You are on page 1of 54

Master 2 Recherche SISEA parcours syst` emes embarqu es

Examen Synth` ese de haut-niveau et optimisation de code


Olivier Sentieys

Etude des performances dune structure en treillis (5 points)

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.

Estimation de consommation sur un SFG (5 points)


1. Expliquer comment estimer au niveau algorithmique l energie, la puissance, consomm ee par un algorithme d ecrit par un graphe ot de signal (SFG), devant sex ecuter ` a une cadence Tr , devant etre implant e sur une cible VLSI (cest ` a dire par exemple ` a base dop erateurs comme d ecrits dans le tableau 1). 2. Dans le cas du ltre IIR du deuxi` eme ordre de la gure 3, donnez sa cadence maximale pour des tensions de 2V et 1.5V. 3. Pour ce m eme ltre, donnez une estimation de l energie et de la puissance sur le SFG de la gure 3. (a) pour une tension de 2V et une contrainte de cadence de 12 ns, (b) pour une tension de 1.5V et une contrainte de cadence de 12 ns, (c) pour une tension de 2V et une contrainte de cadence de 8 ns, 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 ?

Figure 3 SFG du ltre IIR

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}

e = d(n) y (n) wi (n + 1) = wi (n) + e(n D) x(n i)

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 :

err = mu for(i=0; { acc h[i] } y = acc;

* (d-y); i<n; i++) = acc + x[i] * h[i]; = h[i]+ err * x[i];

deb:

LDH LDH NOP 4 MPY NOP ADD MPY

NOP ADD STR SUB B deb NOP 4

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

EII3-ISE et MASTER SISEA-SE

janvier 2009

Conception de Systmes Intgrs


Avertissement : seuls les documents personnels, polycopis et notes de cours sont autoriss. Vous tes convis grer correctement votre temps de travail, et lire pralablement l'ensemble des questions. Il sera tenu compte de la clart et de la rigueur des prsentations et raisonnements exposs.

Problme 1 : transformations algorithmiques (7 points)


Ce problme concerne loptimisation du graphe de calcul reprsent la figure 1.a par application de transformations algorithmiques. On considrera que les oprations A, B, C, D et E seffectuent en deux cycles, tandis que les oprations F et G seffectuent en un cycle. Larchitecture dispose dunits de calcul (UAL) permettant de raliser les diffrentes oprations A G. Exprimez les chemins demands en utilisant le formalisme ...BC... 1. numrez les diffrentes boucles de ce graphe flot de signal (SFG) et leur temps respectif. Quel est le temps de la boucle la plus critique Tbc ? Indiquez la boucle critique sur la figure 1.a. 2. Quel est le temps du chemin critique Tcc ? Indiquez le chemin critique sur les figures ? 3. Quel est le nombre dUAL ncessaire pour effectuer ce calcul une cadence de 4 cycles ? 4. Dessinez le graphe flot de donnes quivalant au graphe 1.a ordonnanc au plus tt (ASAP). 5. Proposez un ordonnancement de ce graphe sur le nombre dUAL dtermin la question 3 qui minimise la latence et respecte la cadence de 4 cycles. Dessinez plusieurs itrations du calcul pour clarifier votre dmarche. 6. Proposez une transformation algorithmique de type retiming permettant de rduire le chemin critique du filtre 4 cycles tout en rduisant le nombre de dlai 5 lments. Expliquez clairement votre mthode et vos rsultats. Dessinez le SFG transform sur la figure 1.b. 7. Quel avantage possde le graphe transform une fois ordonnanc dans les mmes conditions qu la question 5 ?

Figure 1.a : version initiale du graphe de calcul

Figure 1.b : version du graphe sans les dlais pour illustration des transformations

Problme 2 : interpolation luma en codage vido HD (5 points)


Lors de lencodage dune squence vido par les codeurs les plus rcents, les vecteurs de mouvement sont calculs trs prcisment sur des pixels interpols au pixel, voire au de pixel. Cest lobjectif de linterpolateur luma . On considre ici linterpolation au demi-pixel, cest--dire une partie de lalgorithme complet consistant estimer pour chaque pixel de limage trois nouveaux pixels placs entre chaque pixel. Par exemple, dans la figure ci-dessous, le pixel dorigine P entour dun cercle en pointill va engendrer lestimation du pixel c sa droite, du pixel x en dessous (pour le pixel dorigine L sur la figure), et du pixel en diagonal bas-droite j. Chaque demi-pixel (a, x, j) est calcul par la formule indique sur la figure, formule issue directement du document de la norme H264. Le pseudocode quivalent est donn ci-dessous. On ne tiendra compte ni des effets aux bords du bloc, ni de laspect adressage des pixels. Linterpolation seffectue sur des macro-blocs 4x4, pour chaque macrobloc de limage.

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.

Annexe : Processeur VLIW considr


Ce processeur, largement inspir du C6x, est dot d'une unit de traitement comportant 2 multiplieurs et 4 UAL comme indiqu sur le schma figure 3.b. Le processeur ne peut transfrer que deux donnes par cycle au maximum (en lecture et/ou criture). La register file contient 64 registres accessibles indpendamment par toutes les units.
Instruction LDH STH MPY ADD SUB NOP B Description Charge une donne 16 bits venant de la mmoire dans un registre Ecrit une donne 16 bits vers la mmoire depuis un registre Multiplication entre 2 registres, rsultat dans un troisime Addition Soustraction aucune opration Branchement Nombre de cycles Units .M .M1 .M2 toutes Units .L .L1 .L2 .L1 .L2 toutes Units .S .S1 .S2 .S1 .S2 toutes Units .D .D1 .D2 .D1 .D2 .D1 .D2 .D1 .D2 toutes -

5 1 2 1 1 1 5

.S1 .S2 Figure 3.a : jeu dinstructions du processeur VLIW utile pour ce problme

Figure 3.b : architecture interne du processeur VLIW utile pour ce problme

1 .D1 .L1 .M1 .S1 .D2 .L2 .M2 .S2

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

Figure 5 : table dallocation des ressources (2)

ENSSAT

EII3 MASTER STI

Fvrier 2008

DS Conception de Systmes Intgrs


Avertissement : seuls les documents personnels, polycopis et notes de cours sont autoriss. Vous tes convis grer correctement votre temps de travail, et lire pralablement l'ensemble des questions. Il sera tenu compte de la clart et de la rigueur des prsentations et raisonnements exposs.

Problme 1 : Etude dun filtre RII structure en treillis


Ltude traite dans ce problme concerne la cellule lmentaire dun filtre rponse impulsionnelle infinie (RII) structure en treillis tel que reprsent la figure 1.a et sa version transforme reprsente la figure 1.b. On considrera tout dabord un additionneur de temps de propagation gal 4 ns et un multiplieur de temps de propagation gal 8 ns. Les rponses aux questions 1, 2 et 3 sont donner pour les deux versions du filtre. Exprimez les chemins demands en utilisant le formalisme ...MiAi... 1. numrez les diffrentes boucles de ce graphe flot de signal (SFG) et leur temps respectif. Quel est le temps de la boucle la plus critique Tbc ? Indiquez la boucle critique sur les figures. 2. Quel est le temps du chemin critique Tcc ? Indiquez le chemin critique sur les figures. 3. Quel est le temps de retard E/S Td ? Indiquez le chemin de retard sur les figures.
A2 x(n)
A2 x(n)

+
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)

Figure 1.a : version 1 du filtre IIR

Figure 1.b : version 2 du filtre IIR

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.

Un premier objectif est dobtenir 16ns, puis de descendre 12ns si possible.

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 ?

Ce qui en pratique est quelque chose de trs complexe grer

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.

Figure 4 : graphe dinstruction du papillon de la FFT


3

Cela veut dire par exemple qu'une FFT 2048 doit tre calcule une cadence de 56s

Figure 5 : graphe de la FFT sur 8 points

Annexe : Processeur TMS320C6x


Ce processeur est dot d'une unit de traitement comportant 2 multiplieurs et 4 UAL comme indiqu sur le schma du cours. Le processeur ne peut transfrer que deux donnes par cycle au maximum (en lecture et/ou criture). Chaque register file A et B contient 16 registres accessibles indpendamment.
Instruction LDH STH MPY ADD SUB NOP B Description Charge une donne 16 bits venant de la mmoire dans un registre Ecrit une donne 16 bits vers la mmoire depuis un registre Multiplication entre 2 registres, rsultat dans un troisime Addition Soustraction aucune opration Branchement Nombre de cycles Units .M .M1 .M2 toutes Units .L .L1 .L2 .L1 .L2 toutes Units .S .S1 .S2 .S1 .S2 toutes Units .D .D1 .D2 .D1 .D2 .D1 .D2 .D1 .D2 toutes -

5 1 2 1 1 1 5

.S1 .S2 Figure 6 : jeu dinstructions du TMS 320C6x utile pour ce problme

1 .D1 .L1 .M1 .S1 .D2 .L2 .M2 .S2

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

Figure 8 : table dallocation des ressources (2)

ENSSAT

EII3 MASTER STI

Fvrier 2007

DS Conception de Systmes Intgrs


Avertissement : seuls les documents personnels, polycopis et notes de cours sont autoriss. Vous tes convis grer correctement votre temps de travail, et lire pralablement l'ensemble des questions. Il sera tenu compte de la clart et de la rigueur des prsentations et raisonnements exposs.

Problme 1 : Etude dun filtre RII


Ltude traite dans ce problme concerne la cellule lmentaire dun filtre rponse impulsionnelle infinie (RII) donne la figure 1.a. On considrera un additionneur de temps de propagation gal 8 ns et un multiplieur de temps de propagation gal 20 ns. 1. numrez, 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. Quel est le temps de la boucle la plus critique Tbc ? 2. Quel est le temps du chemin critique Tcc ? Indiquez le chemin critique. 3. Proposez des transformations algorithmiques de type retiming permettant de rduire le chemin critique du filtre de faon obtenir Tbc= Tcc. Expliquer clairement votre mthode et vos rsultats, et dessinez le SFG transform sur la figure 1.b (vous pouvez utiliser la figure 1.c galement). 4. Dterminez le nombre minimum d'additionneurs et de multiplieurs permettant d'atteindre une cadence de traitement de 20 ns (i.e. un nouvel chantillon x(n) doit tre filtr toutes les 20 ns). 5. Reprsentez un ordonnancement permettant d'atteindre cette cadence de 20 ns. Vous reprsenterez trois itrations successives du filtre afin de vrifier les contraintes lies aux boucles critiques. Indiquez les clairement sur votre ordonnancement.

Problme 2 : Ordonnancement par liste


La rsolution numrique de l'quation diffrentielle peut s'effectuer au moyen de l'algorithme cidessous. Le rsultat se trouve dans la variable y. While x < a u1 = [u (5 * x) * (u * dx) (3 * y) * dx] ; y1 = y + (u * dx) ; x1 = x + dx ; x = x1; u = u1; y = y1; End While 1. Dessinez le graphe flot de donnes de l'intrieur de la boucle while sans aucun droulage de boucle avec un ordonnancement ASAP. 2. Donnez les mobilits de chaque opration. 3. Effectuez un ordonnancement par liste avec priorit sur les mobilits en considrant que larchitecture comporte un multiplieur et un additionneur/soustracteur ayant un temps de propagation de un cycle chacun. 4. Les variables x, y, dx, et u sont places dans des registres ddis ces variables. Quel est le nombre minimum de registres, en plus des quatre prcdents, que contiendra larchitecture ralisant lordonnancement prcdent ? Expliquez clairement votre rponse. 5. Question subsidiaire : pour ces registres supplmentaires, donnez leur occupation sur toute la dure dexcution de lalgorithme.

Figure 1.a : filtre RII

Figure 1.b : filtre RII transformer

Figure 1.c : filtre RII transformer

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

k.n k.n cos' 2 # * " j sin' 2 # *0 $ x(n).& ) & N N )/ ,


n= 0

(.

pour k = 0...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)

// Store y[k] result

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 ?

Annexe : Processeur TMS320C6x


Ce processeur est dot d'une unit de traitement comportant 2 multiplieurs et 4 UAL comme indiqu sur le schma du cours. Le processeur ne peut transfrer que deux donnes par cycle au maximum (en lecture et/ou criture). Chaque register file A et B contient 16 registres accessibles indpendamment.
Instruction LDH STH MPY ADD SUB NOP B Description Charge une donne 16 bits venant de la mmoire dans un registre Ecrit une donne 16 bits vers la mmoire depuis un registre Multiplication entre 2 registres, rsultat dans un troisime Addition Soustraction aucune opration Branchement 5 Nombre de cycles Units .M .M1 .M2 toutes Units .L .L1 .L2 .L1 .L2 toutes Units .S .S1 .S2 .S1 .S2 toutes Units .D .D1 .D2 .D1 .D2 .D1 .D2 .D1 .D2 toutes -

5 1 2 1 1 1

.S1 .S2 Figure 3 : Jeu dinstructions du TMS 320C6x utile pour ce problme

1 .D1 .L1 .M1 .S1 .D2 .L2 .M2 .S2

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

Figure 5 : Table dallocation des ressources (2)

1 .D1 .L1 .M1 .S1 .D2 .L2 .M2 .S2

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

Figure 5 : Table dallocation des ressources (2)

Examen de conception de syst` emes int egr es ENSSAT EII3 et Master de Recherche STI
Olivier Sentieys Mercredi 8 f evrier 2006

Filtrage r ecursif en deux dimensions (11 pts)

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

b(h, v ).f (n1 h, n2 v ) +


h=0 v =0 h+v>0

a(h, v ).g (n1 h, n2 v )

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 ?

Mise en uvre du papillon de la FFT et application ` a lOFDM (9 pts)

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.

Application ` a la modulation OFDM


Dans le contexte de la modulation OFDM pour la t el evision num erique terrestre (DVB-T), des FFT de grande taille sont n ecessaires. La norme indique que des tailles de 2048 (2K) et de 8192 (8K) doivent etre utilis ees ` a des cadences respectives de traitement1 de 56s (2K) et 226s. Une FFT de taille N est constitu ee de N a calculer. 2 log2 N papillons ` 1. Donner dans le cas des modulations 2K et 8K, les puissances de calcul en MOPS n ecessaires. 2. Donner dans le cas des modulations 2K et 8K, les temps dex ecution obtenus sur DSP C54x. Expliquer clairement votre m ethode de calcul.

Caract eristiques du C54x


Le C54x contient 3 registres T, A, et B. Le C54x contient 3 op erateurs. 1 multiplieur et 1 additionneur/soustracteur qui peuvent r ealiser une multiplication et une addition/soustraction en un cycle. Une ALU (additions, soustractions, op erations logiques) peut r ealiser une autre op eration en un cycle. Jusqu` a trois donn ees (bus 1 ` a bus 3 correspondant respectivement aux bus CB, DB et PB) peuvent etre lues simultan ement ` a chaque cycle en parall` ele aux op erations pr ec edentes. Le registre A (ou B) peut etre ecrit sur le bus 4 (bus EB) servant aux ecritures m emoires, en parall` ele aux op erations et lectures pr ec edentes.

Cela veut dire par exemple quune FFT 2048 doit etre calcul ee ` a une cadence de 56s

Fig. 1 Cellule el ementaire

Fig. 2 Exemple de retiming

Fig. 3 Graphe complet du ltre 2D 5

Fig. 4 Architecture de lunit e de traitement du C54x

Tab. 1 Table doccupation des ressources du C54x

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

EII3 MASTER STI

Fvrier 2005

'6 &RQFHSWLRQ GH 6\VWqPHV ,QWpJUpV


Avertissement : seuls les documents personnels, polycopis et notes de cours sont autoriss. Vous tes convis grer correctement votre temps de travail, et lire pralablement l'ensemble des questions. Il sera tenu compte de la clart et de la rigueur des prsentations et raisonnements exposs.

Problme 1 : Etude dun filtre RII sous forme de cellules du 4

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

Z Q = [ Q + D Z Q L = \ Q = E Z Q 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

9 "@$8 IQPSR

%'&)(1A 2 5 8

)LJXUH   *UDSKH GH OD FHOOXOH GX 

RUGUH

Annexe : Processeur TMS320C6x


Ce processeur est dot d' une unit de traitement comportant 2 multiplieurs et 4 UAL comme indiqu sur le schma du cours. Le processeur ne peut transfrer que deux donnes par cycle au maximum (en lecture et/ou criture). Chaque register file A et B contient 16 registres accessibles indpendamment.
,QVWUXFWLRQ /'+ 67+ 03< $'' 68% 123 'HVFULSWLRQ &KDUJH XQH GRQQpH  ELWV YHQDQW GH OD PpPRLUH GDQV XQ UHJLVWUH (FULW XQH GRQQpH  ELWV YHUV OD PpPRLUH GHSXLV XQ UHJLVWUH 0XOWLSOLFDWLRQ HQWUH  UHJLVWUHV UpVXOWDW GDQV XQ WURLVLqPH $GGLWLRQ 6RXVWUDFWLRQ DXFXQH RSpUDWLRQ 1RPEUH GH F\FOHV 8QLWpV 0   0 0   WRXWHV 8QLWpV /    / / / / WRXWHV 8QLWpV 6    6 6 6 6 WRXWHV 8QLWpV ' ' ' ' '  ' ' ' ' WRXWHV

 

   

Figure 3 : Jeu d instructions du TMS 320C6x utile pour ce problme

&\FOH  ' / 0 6 ' / 0 6















&\FOH  ' / 0 6 ' / 0 6















Figure 4 : 7DEOH GDOORFDWLRQ GHV UHVVRXUFHV

x(n) xb0 D xb1 D xb2 D xb3 D xb4

+5 +6 +7 +8

+1 D +2 +3 +4 xa1 D xa2 D xa3 D xa4

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)

a) Filtre RII sous forme directe

b) Filtre RII sous forme canonique

Figure 1. Filtre RII du quatrime ordre

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

Probl` eme 1 : Etude des performances dune structure en treillis


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) 2 3 4 5 6 7 8

+
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 2 : Etude dune architecture VLSI pour un ltre de Volterra


Soit le syst` eme discret d eni par : y (n) = {[a1 .x(n 1) + a2 .x(n 2)] + c1 .z (n 1)} + [b1 .w(n 1) + b2 .w(n 2)] avec z (n) = x(n).x(n 1) et w(n) = x(n).x(n) (3) On consid erera quune multiplication et une addition sont eectu ees en un cycle de 5 ns (technologie 0.18m, multiplication sur 16 bits et addition sur 32 bits). 1. Tracer son Graphe Flot de Signal (SFG ) sans modier la sp ecication du syst` eme d equations ci dessus. Num eroter les di erentes op erations. 2. Tracer ensuite son graphe ot de donn ees (DFG ) selon lordonnancement au plus t ot ASAP. Donner les mobilit es des di erentes op erations du graphe. 3. Donner lordonnancement par listes du DFG en consid erant une allocation sur un multiplieur et un additionneur. Quel est le temps dex ecution de lalgorithme ? eristiques dune architecture permettant dimplanter lordonnancement d etermin e dans la 4. Caract question pr ec edente. On consid erera que les coecients et les signaux w(n i), z (n i) et x(n i), i se trouvent dans des registres locaux ` a lunit e de traitement. Expliquer comment d eduire le nombre de registres ` a partir de lordonnancement et indiquer pour chaque registre les donn ees quil contient. Dessiner la structure de larchitecture de lunit e de traitement. On consid erera un bus dentr ee B v ehiculant larriv ee du nouvel echantillon x(n). 5. On souhaite maintenant que larchitecture travaille ` a une cadence darriv ee des echantillons de 5 ns (i.e; une fr equence d echantillonnage de 200 MHz). Quel ordonnancement peut on utiliser pour atteindre cette cadence ? Donner une estimation (expliquer vos r esultats) : du nombre dop erateurs ` a utiliser ; du nombre de registres n ecessaires. (2) (1)

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

ai [x(n i) + x(n N + i + 1)]

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

A Bus1 Bus2 Bus3

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

Table 1: Table doccupation des ressources du C54x

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

|BR(i, j ) F R(i + u, j + v )|, f or p u, v p

1. Donner la complexit en nombre doprations1 de lestimation de mouvement dun bloc BR sur


1

La valeur absolue ABS () est une opration qui peut tre implante sur une ALU. Ne pas tenir des calculs dindices.

N+2p

Motion Vector (u,v)

Matched Block NxN

p Reference Block NxN

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

a) Fentre de recherche dans 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.

Corrections du DS de Fvrier 2003 Correction du Problme 1


Soit le ltre du premier ordre : y (n) = a y (n 1) + x(n) 1. Le graphe ot de signal est donn gure 1.a. La boucle critique est donne par Tbc = Tmult +Tadd = 2 T cycle = 10ns. Par consquent, la frquence maximale de fonctionnement de cet algorithme vaut T1 = 100M Hz . bc

x(n)

y(n)

y(n)

+
D

+ x
x(n) D a

+
D D

x
a
a) Question 1

x
a2

b) Question 2

Fig. 2 GFS du ltre IIR du premier ordre

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

Fig. 4 Gnralisation du LookAhead

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

EII3 DEA STIR

janvier 2002

DS Architectures Spcialises Synthse de Haut Niveau


Avertissement : seuls les documents personnels, polycopis et notes de cours sont autoriss. Vous tes convis grer correctement votre temps de travail, et lire pralablement l'ensemble des questions. Il sera tenu compte de la clart et de la rigueur des prsentations et raisonnements exposs.

Problme 1 : Etude systme dun metteur-rcepteur WCDMA


Nous allons nous intresser au prototypage dun metteur-rcepteur WCDMA utilis dans les tlcommunications mobiles de troisime gnration (3G) de type UMTS, sur un systme intgr (SoC). Pour cela nous allons tudier ensemble sa complexit globale et dcider quel type de matriel utiliser (ASIC, DSP, ) pour chaque bloc de cette chane de traitement. Caractristiques gnrales : Le dbit dentre des DATA est fix 3.84 106 chantillons par seconde. On appellera cette frquence la frquence chip Fc. Le signal DATA est surchantillonn dun facteur 8. On considrera donc que le dbit du flot de donnes vaut 8.Fc. Les donnes DATA sont sur 8 bits. Le signal dentre DATA est considr comme complexe, compos dune partie relle et imaginaire, respectivement I(n) et Q(n). Il en est de mme pour les codes c(n) et les porteuses p(n). N 1 Les filtres RIF dmission et de rception sont de taille N=128 : y (n) = i =0 h(i ) x(n i ) Les modulation et dmodulation consistent multiplier le signal y(n) par une porteuse p(n). Ces algorithmes travaillent sur des donnes dentre avec un dbit la frquence chip Fc.
DATA(n) x(n) Filtre RIF y(n) s(n)

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

ASIC 0.18u DSP C54x DSP C6x

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 )

Constellation du Modem V29 pour une MAQ 7200 bps.

Schma d'un modulateur MAQ

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.

Annexe : Processeur TMS320C6x


Ce processeur est dot d'une unit de traitement comportant 2 multiplieurs et 4 UAL comme indiqu sur le schma du cours. Le processeur ne peut transfrer que deux donnes par cycle au maximum (en lecture et/ou criture). Chaque register file A et B contient 16 registres accessibles indpendamment. Les registres Ai peuvent accder galement aux units .x2, les registres Bi peuvent accder galement aux units .x1.
Instruction LDH Description Charge une donne 16 bits venant de la mmoire dans un registre Ecrit une donne 16 bits vers la mmoire depuis un registre Multiplication entre 2 registres, rsultat dans un troisime Addition Soustraction aucune opration Nombre de cycles Units .M Units .L Units .S Units .D .D1 .D2 .D1 .D2 -

5 1 2 1 1 1

STH

MPY

.M1 .M2 toutes

ADD SUB NOP

.L1 .L2 .L1 .L2 toutes

.S1 .S2 .S1 .S2 toutes

.D1 .D2 .D1 .D2 toutes

Figure 2 : Jeu dinstructions du TMS 320C6x utile pour ce problme

Cycle 1 .D1 .L1 .M1 .S1 .D2 .L2 .M2 .S2 A0 A1 A2 A3 A4 A5 B0 B1 B2 B3 B4 B5

10

11

12

Table dallocation des ressources

ENSSAT

EII3 DEA STIR

lundi 8 janvier 2001

DS Architectures Spcialises Synthse de Haut Niveau


Avertissement : seuls les documents personnels, polycopis et notes de cours sont autoriss - Vous tes convis grer correctement votre temps de travail, et lire pralablement l'ensemble des questions. Il sera tenu compte de la clart et de la rigueur des prsentations et raisonnements exposs.

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 loop counter (B0) to 8

; 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

.D1 *A8++,A2 .D1 *A9++,A3 4 .M1 A2,A3,A4 .L1 A4,A5,A5

[B0] SUB .L2 B0,1,B0 [B0] B .S1 loop

; Sub 1 to the counter B0 ; Branch to loop if B0 <> 0

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.

Annexe : Processeur TMS320C6x


Ce processeur est dot d'une unit de traitement comportant 2 multiplieurs et 4 UAL comme indiqu sur le schma ci-dessous. Le processeur ne peut transfrer que deux donnes par cycle au maximum (en lecture et/ou criture). Chaque register file A et B contiennent 16 regitres accessibles indpendamment.
256

MPY MPY ADD MPY

MPY SHL SUB MPY

ADD ADD LDW ADD

ADD SUB LDW ADD

MV STW B STW

STW STW MVK STW

ADD ADDK NOP ADDK

ADD B NOP NOP

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

ADD SUB B NOP

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 -

.L1 .L2 .L1 .L2 -

aucune opration 1 Figure 2 : Jeu dinstructions du TMS 320C6x

.S1 .S2 .S1 .S2 .S1 .S2 -

.D1 .D2 .D1 .D2 -

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

Table dallocation des ressources

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

Table dallocation des ressources

ENSSAT/EII3 DEA STIR

Lundi 17 janvier 2000

DS Architectures Spcialises Synthse de Haut Niveau


Problme 1 : Etude dun circuit pour la mise en uvre dune FFT.
On tudiera d'abord le calcul du papillon de la FFT, tche lmentaire de l'algorithme, puis on sintressera son implmentation globale pour une taille de vecteur gale 8 points. Le papillon de la FFT radix 2 sur N points est donn ci dessous. Il peut se calculer de plusieurs faons dont deux versions sont donnes ici et nommes respectivement version 1 et version 2. Les W sont directement issus de la mmoire contenant une table des cosinus et sinus. On les considrera donc comme des constantes. X = Xr + j Xi X' = X'r + j X'i X' = X + Wk.Y et Y' = X - Wk.Y

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.

Tr = (Wr.Yr - Wi.Yi) Ti = (Wi.Yr + Wr.Yi) X'r = Xr + Tr X'i = Xi + Ti Y'r = Xr Tr Y'i = Xi Ti


Version 2

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

Remarque : le choix de la version ninfluence pas la notation.

Problme 2 : Filtre en treillis


A2

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 ?

Problme 3 : Mise en uvre d'un filtre numrique sur DSP C54x


Ce problme concerne les aspects de la mise en uvre d'un filtre RII d'ordre N pair H(z) sur des processeurs de traitement du signal. On s'intressera la structure cascade de ce filtre, c'est dire lorsque :
C

H ( z ) = H 1 ( z ).H 2 ( z )....H C ( z ) = Hi ( z ) avec C = N / 2


i =1

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.

Annexe : architecture de lUT du TMS320C54x


DB CB PB DB CB DB DB CB EB

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 4 W(n) MUL3 PB*DB

Cycle 5 ADD3 MUL4

Cycle 6 S(n)

Cycle 7

Ec(n) MUL1 PB*DB PB*DB

ADD1 MUL2 PB*DB

A+B Ec(n) W(n-1) W(n-2)

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.

Il est possible de dbuter le calcul de la cellule suivante ds le cycle 5, do un gain de 2 cycles.

You might also like