master 2 recherche sisea | parcours syst mes embarqu s...

54
Master 2 Recherche SISEA — parcours syst ` emes embarqu´ es Examen Synth` ese de haut-niveau et optimisation de code Olivier Sentieys 1 ´ Etude des performances d’une structure en treillis (5 points) Soit la structure de filtre num´ erique en treillis repr´ esent´ ee sur la figure 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. + x + x D x D D + x + x D + x D x D + x x D 1 2 3 4 5 6 7 8 x D 9 10 11 12 13 14 15 16 17 19 x(n) + + 18 x 21 + 20 + x x x + x 22 23 24 25 26 y(n) Figure 1 – SFG de la structure en treillis 1. ´ Enum´ erer, en utilisant les num´ eros d’op´ erations, quelles sont les diff´ erentes boucles de ce graphe flot de signal (SFG). Quel est la temps de la boucle la plus critique (T bc )? 2. Quel est la temps du chemin critique (T cc )? 3. A quoi correspondent ces m´ etriques ? 1

Upload: phungdien

Post on 30-Apr-2018

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Master 2 Recherche SISEA — parcours systemes embarques

Examen

Synthese de haut-niveau et optimisation de code

Olivier Sentieys

1 Etude des performances d’une structure en treillis (5 points)

Soit la structure de filtre numerique en treillis representee sur la figure 1. On considereraun additionneur de temps de propagation egal a un cycle et un multiplieur pipeline a deuxetages, ayant une cadence de un cycle et ayant une latence de deux cycles.

+

x

+

x

D

x

DD

+

x

+

x

D

+

x

D

x

D

+

x x

D

1 2 3 4 5 6 7 8

x D

9 10 11 12 13 14 15 16 17

19x(n)

+

+18

x21

+20

+

x x x

+ x

22 23 24

25 26

y(n)

Figure 1 – SFG de la structure en treillis

1. Enumerer, en utilisant les numeros d’operations, quelles sont les differentes boucles dece graphe flot 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 metriques ?

1

Page 2: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

+

x

+

x

D

x

DD

+

x

+

x

D

+

x

D

x

D

+

x x

D

1 2 3 4 5 6 7 8

x D

9 10 11 12 13 14 15 16 17

19x(n)

+

+18

x21

+20

+

x x x

+ x

22 23 24

25 26

y(n)

Figure 2 – SFG de la structure en treillis (pour transformations)

4. Determiner le nombre minimum d’additionneurs et de multiplieurs permettant d’at-teindre une cadence de traitement de 4 cycles (i.e. un nouvel echantillon x(n) doit etrefiltre tous le 4 cycles).

5. Proposer des transformations algorithmiques sur ce SFG permettant de reduire la la-tence du filtre a 4 cycles (ou moins). Expliquer clairement votre methode et vos resultats,et dessiner eventuellement le SFG transforme sur la figure 2.

2 Estimation de consommation sur un SFG (5 points)

1. Expliquer comment estimer au niveau algorithmique

– l’energie,– la puissance,

consommee par un algorithme– decrit par un graphe flot de signal (SFG),– devant s’executer a une cadence Tr,– devant etre implante sur une cible VLSI (c’est a dire par exemple a base d’operateurs

comme decrits dans le tableau 1).

2. Dans le cas du filtre IIR du deuxieme ordre de la figure 3, donnez sa cadence maximalepour des tensions de 2V et 1.5V.

3. Pour ce meme filtre, donnez une estimation de l’energie et de la puissance sur le SFGde la figure 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

Page 3: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

(d) pour une tension de 1.5V et une contrainte de cadence de 8 ns,

4. Estimer au niveau algorithmique implique que l’on ne prend que tres peu en comptela plateforme materielle. Quelle sera l’influence de l’ordonnancement et de la structurede l’architecture (registres, bus, controle, memoire, etc.) sur la precision de l’estimationprecedente. En lien avec un outil de synthese HLS, que proposez vous pour estimer laconsommation en sortie de ce type d’outil ?

Figure 3 – SFG du filtre IIR

Table 1 – Bibliotheque des operateurs utilises pour l’exercice 1

Operateur Temps de propagation Energie Tension Vdd

Mulitplieur 4 ns 130pJ/operation 2VMulitplieur 6 ns 70pJ/operation 1.5V

Additionneur 2 ns 40pJ/operation 2VAdditionneur 3 ns 25pJ/operation 1.5V

3 Mise en œuvre d’un filtre DLMS sur processeur VLIW (10points)

Ce probleme concerne la mise en œuvre d’un filtre DLMS de taille N sur un processeurde type VLIW d’ordre 8. Nous considerons un filtre DLMS dont les equations sont presenteesci-dessous :

y(n) =N−1∑i=0

wi(n)× x(n− i)

e = d(n)− y(n)wi(n+ 1) = wi(n) + µ× e(n−D)× x(n− i) ∀i ∈ {0 . . . N − 1}

avec x(n) le signal a filtrer, y(n) la sortie du filtre, d(n) le signal desire et wi(n) les coefficientsdu filtra DLMS.

En ne prenant pas en compte le vieillissement des donnees x, le code C utilise ainsi queson equivalent en assembleur sequentiel pour implanter un filtre DLMS avec D egal a 1 sontdonnes ci apres :

3

Page 4: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

err = mu * (d-y);

for(i=0; i<n; i++)

{

acc = acc + x[i] * h[i];

h[i] = h[i]+ err * x[i];

}

y = acc;

deb: LDH

LDH

NOP 4

MPY

NOP

ADD

MPY

NOP

ADD

STR

SUB

B deb

NOP 4

1. Quel est l’interet du filtre DLMS (D > 0) par rapport au filtre LMS (D = 0) d’un pointde vue implantation.

2. Determiner le graphe flot de donnees associe au cœur de la boucle et a la gestion decelle-ci en utilisant les instructions assembleur. Les variables independantes de l’itera-tion i sont chargees dans un registre avant la boucle et conservees dans celui-ci dans letraitement de la boucle.

Implantation directe sans deroulage de boucle

3. Dans un premier temps, nous considerons un code sans parallelisme d’instructions etsans deroulage de boucle tel que decrit plus haut. Completer la table d’allocation desressources afin de realiser l’ordonnancement du cœur de la boucle.Indiquer le nombre de cycles de traitement necessaires pour traiter la boucle complete-ment. Quel est l’IPC (Instruction Per Cycle) du processeur VLIW pour chaque cycledu cœur de boucle puis en moyenne sur le temps de traitement du filtre de taille N ?

4. Dans un second temps, nous considerons un code avec parallelisme d’instructions etsans deroulage de boucle. Donner le code assembleur et completer la table d’allocationdes ressources afin de realiser l’ordonnancement du cœur de la boucle.Indiquer le nombre de cycles de traitement necessaires pour traiter la boucle complete-ment. Quel est l’IPC du processeur VLIW pour chaque cycle du cœur de boucle puisen moyenne sur le temps de traitement du filtre de taille N ?

Implantation apres deroulage de boucle et software pipelining

5. Nous considerons maintenant le deroulage de la boucle en vue de faire du software pipe-lining. Completer la table d’allocation des ressources afin de realiser l’ordonnancementdu cœur de la boucle deroulee. Identifier le prologue, l’epilogue et le cœur de la boucle.

6. Indiquer le nombre de cycles de traitement necessaire pour traiter le prologue, l’epilogueet le cœur de la boucle. Quel est l’IPC du processeur VLIW pour chaque cycle du cœurde boucle ?

4

Page 5: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

ENSSAT EII3-ISE et MASTER SISEA-SE janvier 2009

Conception de Systèmes Intégrés Avertissement : seuls les documents personnels, polycopiés et notes de cours sont autorisés. Vous êtes conviés à gérer correctement votre temps de travail, et à lire préalablement l'ensemble des questions. Il sera tenu compte de la clarté et de la rigueur des présentations et raisonnements exposés. Problème 1 : transformations algorithmiques (7 points) Ce problème concerne l’optimisation du graphe de calcul représenté à la figure 1.a par application de transformations algorithmiques. On considérera que les opérations A, B, C, D et E s’effectuent en deux cycles, tandis que les opérations F et G s’effectuent en un cycle. L’architecture dispose d’unités de calcul (UAL) permettant de réaliser les différentes opérations A à G. Exprimez les chemins demandés en utilisant le formalisme ...→B→C→... 1. Énumérez les différentes 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 d’UAL nécessaire pour effectuer ce calcul à une cadence de 4 cycles ? 4. Dessinez le graphe flot de données équivalant au graphe 1.a ordonnancé au plus tôt (ASAP). 5. Proposez un ordonnancement de ce graphe sur le nombre d’UAL déterminé à la question 3 qui

minimise la latence et respecte la cadence de 4 cycles. Dessinez plusieurs itérations du calcul pour clarifier votre démarche.

6. Proposez une transformation algorithmique de type retiming permettant de réduire le chemin

critique du filtre à 4 cycles tout en réduisant le nombre de délai à 5 éléments. Expliquez clairement votre méthode et vos résultats. Dessinez le SFG transformé sur la figure 1.b.

7. Quel avantage possède le graphe transformé une fois ordonnancé dans les mêmes conditions qu’à la question 5 ?

Figure 1.a : version initiale du graphe de calcul

Page 6: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Figure 1.b : version du graphe sans les délais pour illustration des transformations

Problème 2 : interpolation « luma » en codage vidéo HD (5 points) Lors de l’encodage d’une séquence vidéo par les codeurs les plus récents, les vecteurs de mouvement sont calculés très précisément sur des pixels interpolés au ½ pixel, voire au ¼ de pixel. C’est l’objectif de l’interpolateur « luma ». On considère ici l’interpolation au demi-pixel, c’est-à-dire une partie de l’algorithme complet consistant à estimer pour chaque pixel de l’image trois nouveaux pixels placés entre chaque pixel. Par exemple, dans la figure ci-dessous, le pixel d’origine P entouré d’un cercle en pointillé va engendrer l’estimation du pixel c à sa droite, du pixel x en dessous (pour le pixel d’origine L sur la figure), et du pixel en diagonal bas-droite j. Chaque demi-pixel (a, x, j) est calculé par la formule indiquée sur la figure, formule issue directement du document de la norme H264. Le pseudo-code équivalent est donné ci-dessous. On ne tiendra compte ni des effets aux bords du bloc, ni de l’aspect adressage des pixels. L’interpolation s’effectue sur des macro-blocs 4x4, pour chaque macro-bloc de l’image.

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 } }

Page 7: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

1. Dans le contexte d’une séquence vidéo HD où chaque image à une taille de 1920x1080 pixels et la

séquence devant être encodée à la cadence temps-réel de 60Hz (60 images/s), combien de macro-blocs 4x4 doivent être traités par seconde ? En déduire la puissance en MOPS de l’architecture nécessaire pour cette interpolation luma ?

On considère par la suite un seul des trois calculs élémentaires : a=E–5*F+20*G+20*H–5*I+J (1) 2. Quelle est la contrainte de temps pour ce calcul du demi-pixel a ? Il est possible de réécrire l’équation (1) factorisée de la façon suivante : s0=E+J ; s1=F+I ; s2=G+H ; a=s0-5*s1+20*s2 (2) L’équation (2) peut à nouveau être réécrite de la façon suivante : s0=E+J ; s1=F+I ; s2=G+H ; a=[(s0-s1) + 4*(s2-s1)] + 16*s2 (3) L’avantage est ici la suppression des multiplications très coûteuses par des décalages par une puissance de deux qui ne coûte rien au niveau matériel. 3. Dessinez le graphe de l’équation 3. Les opérations de multiplication par 4 et par 16 seront

représentées par <<2 et <<4. Celle-ci ne coûtant rien au niveau matériel (uniquement de l’aiguillage de fils), elles peuvent être omises par la suite. Quelle est la nouvelle puissance en MOPS de l’architecture ?

4. L’architecture peut contenir trois types d’opérateurs : additionneur (ADD), soustracteur (SUB) ou additionneur/soustracteur (A/S). En considérant que ces opérateurs ont un temps de traversée de 2ns (500MHz), combien de ces opérateurs sont nécessaires pour une cadence d’exécution de l’équation 3 en 6 ns (3 cycles) ? Quelle sélection, i.e. combien d’opérateurs de chaque type, vous paraît optimale ?

5. Proposez ensuite un ordonnancement de ce graphe respectant cette cadence de 3 cycles. Problème 2 : Mise en œuvre d’un filtre RII cascade sur DSP VLIW (8 points) Ce problème concerne la mise en œuvre d'un filtre RII H(z) d'ordre M sur un processeur de type VLIW d’ordre 8. On s'intéressera à la structure cascade d’un nombre C de cellules du quatrième ordre sous forme canonique de ce filtre. L’équation de la cellule est donnée ci-dessous, tandis que le SFG de la cellule est donné figure 2 à gauche. Dans ce SFG, les nœuds multiplications, notés « xbi », correspondent à une multiplication par le coefficient bi (idem pour ai).

⎪⎪⎩

⎪⎪⎨

−=

−+=

=

=N

ii

N

ii

inwbny

inwanxnw

0

1

)()(

)()()( avec N=4.

On considèrera ensuite un filtre d’ordre M, avec M multiple de 4, réalisé sous forme de mise en cascade d’un nombre C de cellules du quatrième ordre. Le filtre H(z) d’ordre M est défini comme :

∏=

==C

iC zHizHzHzHzH

121 )()()....().()( avec C = M / 4

Etude de l’implantation d’une cellule élémentaire Le graphe du programme assembleur d’une cellule élémentaire est donné figure 2 à droite. On désire mettre en œuvre ce graphe flot sur l'architecture de traitement du processeur VLIW. On mémorise dans les registres Ai ou Bi du processeur l’ensemble des coefficients ai et bi du filtre. Seules les données w(n-i) et x(n) doivent être chargées de la mémoire par une instruction LDH. Le détail du fonctionnement des instructions est donné en annexe dans la figure 3.

Page 8: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

1. Quel est le chemin critique de ce graphe ? Quelle cadence maximale serait il possible d’atteindre ? 2. Proposez un ordonnancement du graphe assembleur de la figure 2 sur les ressources du processeur

en remplissant la table des unités fonctionnelles de la figure 4 avec les instructions assembleur exécutées.

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 l’implantation du filtre d’ordre M On considère maintenant le filtre d’ordre M constitué de C=M/4 cellules élémentaires du 4ème ordre mises en cascade. Le programme du filtre complet est donc formé d’une boucle variant de 1 à C dont le cœur est le graphe de la figure 2. Pour la suite, cette boucle sera considérée comme déroulée. 4. Sur la table de ressources figure 5, indiquez l’ordonnancement d’une cellule en considérant une

exécution à une cadence maximale. Pour cela, remplissez plusieurs cellules à la suite en imbriquant les calculs des cellules entre elles pour optimiser la cadence, et donc l’exécution du filtre global H. Expliquez clairement vos choix.

5. Quelle cadence peut-on atteindre pour chaque cellule ? Quel est le temps d’exécution du filtre d’ordre 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 inconvénients des processeurs DSP VLIW par rapport aux DSP

conventionnels à structure MAC/Harvard. Justifiez clairement vos réponses.

Figure 2 : SFG et graphe de la cellule du 4ème ordre Hypothèses • Les coefficients ai et bi sont placés dans les registres internes du processeur. • On considérera les coefficients identiques pour toutes les cellules afin de simplifier le programme.

Page 9: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Annexe : Processeur VLIW considéré Ce processeur, largement inspiré du C6x, est doté d'une unité de traitement comportant 2 multiplieurs et 4 UAL comme indiqué sur le schéma figure 3.b. Le processeur ne peut transférer que deux données par cycle au maximum (en lecture et/ou écriture). La register file contient 64 registres accessibles indépendamment par toutes les unités. Instruction Description Nombre de

cycles Unités .M Unités .L Unités .S Unités .D

LDH Charge une donnée 16 bits venant de la mémoire dans un registre

5 - - - .D1 .D2

STH Ecrit une donnée 16 bits vers la mémoire depuis un registre

1 - - - .D1 .D2

MPY Multiplication entre 2 registres, résultat dans un troisième

2 .M1 .M2

- - -

ADD Addition 1 - .L1 .L2

.S1

.S2 .D1 .D2

SUB Soustraction 1 - .L1 .L2

.S1

.S2 .D1 .D2

NOP aucune opération 1 toutes toutes toutes toutes

B Branchement 5 - - .S1 .S2

-

Figure 3.a : jeu d’instructions du processeur VLIW utile pour ce problème

Figure 3.b : architecture interne du processeur VLIW utile pour ce problème

Page 10: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

.D1

.L1

.M1

.S1

.D2

.L2

.M2

.S2

Figure 4 : table d’allocation des ressources (1)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

.D1

.L1

.M1

.S1

.D2

.L2

.M2

.S2

Figure 5 : table d’allocation des ressources (2)

Page 11: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

ENSSAT EII3 – MASTER STI Février 2008

DS Conception de Systèmes Intégrés Avertissement : seuls les documents personnels, polycopiés et notes de cours sont autorisés. Vous êtes conviés à gérer correctement votre temps de travail, et à lire préalablement l'ensemble des questions. Il sera tenu compte de la clarté et de la rigueur des présentations et raisonnements exposés. Problème 1 : Etude d’un filtre RII à structure en treillis L’étude traitée dans ce problème concerne la cellule élémentaire d’un filtre à réponse impulsionnelle infinie (RII) à structure en treillis tel que représenté à la figure 1.a et sa version transformée représentée à la figure 1.b. On considérera tout d’abord un additionneur de temps de propagation égal à 4 ns et un multiplieur de temps de propagation égal à 8 ns. Les réponses aux questions 1, 2 et 3 sont à donner pour les deux versions du filtre. Exprimez les chemins demandés en utilisant le formalisme ...→Mi→Ai→... 1. Énumérez les différentes 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.

x(n)

y(n)

+

x

D+

x

x +

D

x

+

x

A2

M2

A1

M3

M1

M4 M5

A3 A4

Figure 1.a : version 1 du filtre IIR

x(n)

y(n)

+

x

x

x +

D

x

+

x

D

D

3D

D

D

+

A2

M2

A1

M3

M1

M4 M5

A3 A4

4D 3D

Figure 1.b : version 2 du filtre IIR Les questions suivantes de ce problème sont à réaliser sur la version 1 du graphe de la figure 1.a. 4. Proposez une transformation algorithmique de type retiming permettant de réduire le chemin

critique du filtre. Expliquez clairement votre méthode et vos résultats. Dessinez le SFG transformé sur la figure 2.a.

5. Proposez d’autres transformations algorithmiques de type retiming permettant de réduire le chemin critique du filtre de façon à obtenir Tcc=12ns1. Plusieurs retimings sont sans doute nécessaires. Expliquer clairement votre méthode, et dessinez le SFG transformé sur la figure 2.b.

1 Un premier objectif est d’obtenir 16ns, puis de descendre à 12ns si possible.

Page 12: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Figure 2.a : version 1 du filtre IIR sans les délais pour illustration des transformations

Figure 2.b : version 1 du filtre IIR sans les délais pour illustration des transformations

La suite des questions de ce problème est à réaliser sur la version 1 du graphe de la figure 1.a avec des opérateurs modifiés : 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.

Page 13: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

6. Pour ces opérateurs, donner les valeurs de Tcc et Tbc. Quelle est donc la fréquence maximale d’échantillonnage que l’on peut atteindre pour ce filtre ?

7. Déterminez 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 données (DFG) ordonnancé au plus tôt (ASAP) du filtre. Indiquer, pour plus de clarté, les numéros d’opérations (Mi, Ai) sur le DFG.

9. Représentez un ordonnancement sur des cycles de 4 ns permettant d'atteindre cette cadence de 20 ns. Vous représenterez deux itérations successives du filtre afin de vérifier que la contrainte de cadence est respectée. Confirmer le nombre d’opérateurs utilisés.

10. Combien d’opérateurs seraient nécessaires pour atteindre la fréquence maximale d’échantillonnage ?

Problème 2 : Etude de la mise en œuvre d’une transformée de Fourier rapide (FFT) sur DSP VLIW Ce problème concerne la mise en œuvre de la FFT d’un vecteur de N échantillons sur le DSP C6x de type VLIW. Le jeu d’instructions du DSP C6x est décrit en annexe. Le « papillon » de la FFT de type DIF, tâche élémentaire 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 réels, tel qu’il 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 dépendance des instructions du code ci-dessus est donné figure 4. Quel est son chemin critique et quelle est sa boucle critique (exprimés en nombre de cycles du C6x) ? Quel serait le nombre minimum de cycles en termes de latence et de cadence que l’on pourrait atteindre avec un processeur tels que le C6x ?

2 Proposez un ordonnancement des instructions et une allocation des instructions aux unités fonctionnelles. Pour cela, remplissez la table d’occupation des ressources de la figure 7. On minimisera la latence de calcul. On ne se préoccupera pas des registres en considérant que les deux register file A et B en contiennent suffisamment. On ne se préoccupera pas non plus des calculs d’adresses2.

3 Quelle est la latence de l’exécution d’un papillon ainsi obtenue ?

2 Ce qui en pratique est quelque chose de très complexe à gérer…

Page 14: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

4 La FFT est une suite de papillons selon le graphe donné figure 5. Quelle serait la cadence à laquelle on pourrait itérer plusieurs papillons si on répétait plusieurs fois le graphe de la figure 4 pour calculer la FFT complète. Pour répondre à cette question, remplissez plusieurs itérations du calcul d’un papillon dans la table d’occupation des ressources de la figure 8. Il vous sera peut-être (ou pas évidemment si vous avez déjà pensé à tout !) nécessaire de modifier l’ordonnancement que vous avez choisi à la question 2 de ce problème.

Application à la modulation OFDM Dans le contexte de la modulation OFDM pour la télévision numérique terrestre (DVB-T), des FFT de grande taille sont nécessaires. La norme indique que des tailles de 2048 (2K) et de 8192 (8K) doivent être utilisées à des cadences respectives de traitement de 56µs (2K) et 226µs. 3 Une FFT de taille N est constituée de N/2.log2N papillons à calculer. 5 Donnez dans le cas des modulations 2K et 8K, les puissances de calcul en MOPS nécessaires. 6 Sachant que le C6x peut fonctionner à 400 MHz, est-il compatible avec cette application.

Expliquez clairement votre méthode de calcul. Donner ce résultat pour une estimation la plus réaliste possible.

7 Donnez dans le cas des modulations 2K et 8K, les temps d'exécution obtenus sur le DSP C6x à partir des ordonnancements trouvés à la question 4 de ce problème.

Figure 4 : graphe d’instruction du papillon de la FFT

3 Cela veut dire par exemple qu'une FFT 2048 doit être calculée à une cadence de 56µs

Page 15: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

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 schéma du cours. Le processeur ne peut transférer que deux données par cycle au maximum (en lecture et/ou écriture). Chaque register file A et B contient 16 registres accessibles indépendamment. Instruction Description Nombre de

cycles Unités .M Unités .L Unités .S Unités .D

LDH Charge une donnée 16 bits venant de la mémoire dans un registre

5 - - - .D1 .D2

STH Ecrit une donnée 16 bits vers la mémoire depuis un registre

1 - - - .D1 .D2

MPY Multiplication entre 2 registres, résultat dans un troisième

2 .M1 .M2

- - -

ADD Addition 1 - .L1 .L2

.S1

.S2 .D1 .D2

SUB Soustraction 1 - .L1 .L2

.S1

.S2 .D1 .D2

NOP aucune opération 1 toutes toutes toutes toutes

B Branchement 5 - - .S1 .S2

-

Figure 6 : jeu d’instructions du TMS 320C6x utile pour ce problème

Page 16: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

.D1

.L1

.M1

.S1

.D2

.L2

.M2

.S2

Figure 7 : table d’allocation des ressources (1)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

.D1

.L1

.M1

.S1

.D2

.L2

.M2

.S2

Figure 8 : table d’allocation des ressources (2)

Page 17: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

ENSSAT EII3 – MASTER STI Février 2007

DS Conception de Systèmes Intégrés Avertissement : seuls les documents personnels, polycopiés et notes de cours sont autorisés. Vous êtes conviés à gérer correctement votre temps de travail, et à lire préalablement l'ensemble des questions. Il sera tenu compte de la clarté et de la rigueur des présentations et raisonnements exposés. Problème 1 : Etude d’un filtre RII L’étude traitée dans ce problème concerne la cellule élémentaire d’un filtre à réponse impulsionnelle infinie (RII) donnée à la figure 1.a. On considérera un additionneur de temps de propagation égal à 8 ns et un multiplieur de temps de propagation égal à 20 ns. 1. Énumérez, en utilisant les numéros d'opérations ou en les dessinant directement sur le graphe, les

différentes 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 réduire le chemin

critique du filtre de façon à obtenir Tbc= Tcc. Expliquer clairement votre méthode et vos résultats, et dessinez le SFG transformé sur la figure 1.b (vous pouvez utiliser la figure 1.c également).

4. Déterminez 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. Représentez un ordonnancement permettant d'atteindre cette cadence de 20 ns. Vous représenterez trois itérations successives du filtre afin de vérifier les contraintes liées aux boucles critiques. Indiquez les clairement sur votre ordonnancement.

Problème 2 : Ordonnancement par liste La résolution numérique de l'équation différentielle peut s'effectuer au moyen de l'algorithme ci-dessous. Le résultat 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 données de l'intérieur de la boucle while sans aucun déroulage de boucle avec un ordonnancement ASAP.

2. Donnez les mobilités de chaque opération. 3. Effectuez un ordonnancement par liste avec priorité sur les mobilités en considérant que

l’architecture 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 placées dans des registres dédiés à ces variables. Quel est le nombre minimum de registres, en plus des quatre précédents, que contiendra l’architecture réalisant l’ordonnancement précédent ? Expliquez clairement votre réponse.

5. Question subsidiaire : pour ces registres supplémentaires, donnez leur occupation sur toute la durée d’exécution de l’algorithme.

Page 18: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Figure 1.a : filtre RII

Figure 1.b : filtre RII à transformer

Figure 1.c : filtre RII à transformer

Page 19: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Problème 3 : Etude de la mise en œuvre d’une transformée de Fourier discrète (DFT) sur DSP VLIW Ce problème concerne la mise en œuvre de la DFT d’un vecteur de N échantillons sur le DSP TMS 320C6x (de type VLIW). La DFT s’exprime de la façon suivante :

!

y(k) = x(n).e" j 2#

k.n

N

n=0

N"1

$ = x(n). cos 2#k.n

N

%

& '

(

) * " j sin 2#

k.n

N

%

& '

(

) *

+

, -

.

/ 0

n=0

N"1

$ pour k = 0...N "1

Pour la première partie de ce problème, on considérera que x(n) est réel. Les y(k) sont des variables complexes. y.r représente sa partie réel tandis que y.i représente sa partie imaginaire. On s'intéresse à la compilation d'un code C sur un processeur DSP VLIW (ici un TMS320C6x). Ce processeur est composé de 2 unités contenant chacune 1 multiplieur, 2 UAL et une unité de gestion des adresses. Le code C correspondant à la DFT s'écrit de la façon suivante :

for (k=0; k<N; k++) { // For each k=0..N-1 t.r=0; t.i=0; // Zero temp variables

for (n=0; n<N; n++) { // For each n=0..N-1 t.r += C[n]*x[n]; // C[n]=cos(2PIkn/N) t.i += S[n]*x[n]; // S[n]=sin(2PIkn/N) }

y.r[k]=t.r; y.i[k]=t.i; // Store y[k] result } Une compilation classique de ce programme aboutirait au code assembleur ci-dessous du cœur de la boucle centrale encadrée 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 intérieure) 1 Dans sa version non optimisée correspondant au code ci-dessus, quel est le nombre de cycles

nécessaires pour l'exécution de la DFT sur N=5 points sur ce processeur ? Le cœur de la boucle Loop2 est exécuté N fois et Loop2 est lancée N fois.

2 Dessinez le graphe de dépendance des instructions du code ci-dessus. Quel est son chemin critique et sa boucle critique (exprimés en nombre de cycles du C6x) ? Quel serait le nombre minimum de cycles que l’on pourrait atteindre avec un processeur de ce type ?

3 Dans le cas où N=5 et où l’on déroulerait la boucle Loop2, proposez un ordonnancement des instructions et une allocation des instructions aux unités fonctionnelles. Pour cela, remplissez la table d’occupation des ressources de la figure 4. On minimisera le temps de calcul par utilisation du pipeline. On ne se préoccupera pas des registres dans cette question en considérant que les deux register file A et B en contiennent suffisamment.

Page 20: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

4 Quelle est la latence de Loop2 déroulée ainsi obtenue ? Quelle est la cadence à laquelle on peut l’itérer ? Quel est le temps de calcul ainsi obtenu si on répète 10 fois Loop2 pour calculer la DFT.

5 Indiquez comment obtenir une version « pipeline logiciel » en réintégrant une boucle pour des valeurs de N grandes. Indiquez, si le pipeline logiciel est possible, le cœur de la boucle ainsi que le prologue et l’épilogue.

6 Dans le cas où x(n) est complexe, dessinez le graphe de dépendance des instructions du code du

cœur de la boucle. Représentez un ordonnancement de ce graphe dans le cas ou Loop2 est déroulée et pour N=5. Remplissez la table d’occupation des ressources de la figure 5. Quelles sont les latence et cadence obtenues ?

7 Question subsidiaire : une optimisation possible serait d’utiliser les instructions de chargement LDW au lieu de LDH, permettant ainsi de charger deux données réelles x.r[n] et x.i[n] simultanément (idem pour C(n) et S(n)). Combien de cycles peut-on gagner avec cette méthode pour l’itération de Loop2 déroulée ?

Annexe : Processeur TMS320C6x

Ce processeur est doté d'une unité de traitement comportant 2 multiplieurs et 4 UAL comme indiqué sur le schéma du cours. Le processeur ne peut transférer que deux données par cycle au maximum (en lecture et/ou écriture). Chaque register file A et B contient 16 registres accessibles indépendamment. Instruction Description Nombre de

cycles Unités .M Unités .L Unités .S Unités .D

LDH Charge une donnée 16 bits venant de la mémoire dans un registre

5 - - - .D1 .D2

STH Ecrit une donnée 16 bits vers la mémoire depuis un registre

1 - - - .D1 .D2

MPY Multiplication entre 2 registres, résultat dans un troisième

2 .M1 .M2

- - -

ADD Addition 1 - .L1 .L2

.S1

.S2 .D1 .D2

SUB Soustraction 1 - .L1 .L2

.S1

.S2 .D1 .D2

NOP aucune opération 1 toutes toutes toutes toutes

B Branchement 5 - - .S1 .S2

-

Figure 3 : Jeu d’instructions du TMS 320C6x utile pour ce problème

Page 21: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

.D1

.L1

.M1

.S1

.D2

.L2

.M2

.S2

Figure 4 : Table d’allocation des ressources (1)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

.D1

.L1

.M1

.S1

.D2

.L2

.M2

.S2

Figure 5 : Table d’allocation des ressources (2)

Page 22: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

.D1

.L1

.M1

.S1

.D2

.L2

.M2

.S2

Figure 4 : Table d’allocation des ressources (1)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

.D1

.L1

.M1

.S1

.D2

.L2

.M2

.S2

Figure 5 : Table d’allocation des ressources (2)

Page 23: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Examen de conception de systemes integres

ENSSAT EII3 et Master de Recherche STI

Olivier Sentieys

Mercredi 8 fevrier 2006

1 Filtrage recursif en deux dimensions (11 pts)

Le filtrage en deux dimensions (2D) sur des donnees est une operation locale. Chaqueechantillon de sortie est une combinaison lineaire des sorties et entrees precedentes et de lavaleur d’entree, dans un voisinage local 2D de l’entree. On peut prendre comme exemple dedonnee 2D une image selon les deux directions verticales (v) et horizontales (h).

La specification de l’algorithme de filtrage est donnee pour information par l’equationsuivante :

g(n1, n2) =L∑

h=0

M∑v=0

b(h, v).f(n1 − h, n2 − v) +L∑

h=0

M∑v=0︸ ︷︷ ︸

h+v>0

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

Le graphe flot de donnees correspondant a cette equation est donne figure 3 dans le cas ouM = L = 2. L’entree du filtre est f(n1, n2), sa sortie est g(n1, n2). Il est constitue de M + 1cellules elementaires d’ordre L disposees verticalement. La cellule elementaire i, entouree enpointilles sur la figure 3, est un filtre recursif d’ordre L. La premiere partie de ce probleme estconsacree a l’etude de la cellule elementaire, tandis que la second partie traite de l’algorithmecomplet. Pour la suite du probleme, on considerera un additionneur et un multiplieur detemps de propagation egal a un cycle. Pour les applications numeriques, on considerera letemps d’un cycle egal a 5ns.

1. Le graphe de la figure 1 represente la cellule elementaire dans le cas ou L = 2.– Enumerer, en les dessinant directement sur le graphe fourni, les differentes boucles

du graphe flot 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 figure 1 un exemple de transformation par retiming parcoupe du graphe et le reporter sur la figure 2.

3. Donner un ordonnancement ASAP du graphe flot de donnees (DFG) correspondant ala figure 1.

4. Indiquer, pour chaque nœud du graphe, la mobilite de l’operation exprimee en nombrede cycles.

1

Page 24: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

5. Determiner le nombre minimum d’additionneurs et de multiplieurs permettant d’at-teindre une cadence de traitement de 4 cycles (i.e. un nouvel echantillon f(n) doit etrefiltre tous le 4 cycles).

6. Effectuer un ordonnancement par listes avec priorite sur la mobilite sur le nombred’operateurs trouves precedemment. Quelles sont les cadence et latence obtenues ?

7. Quel est le nombre minimum de registres que contiendra l’architecture VLSI realisantl’ordonnancement precedent ? Expliquez clairement votre reponse.

8. Dans le graphe de la figure 3, les cellules elementaires sont placees verticalement etg(n1, n2) est reboucle vers l’ensemble de ces cellules, tandis que f(n1, n2) est diffuse.Indiquer les boucles inter-cellules ajoutees dans ce cas. Quel est le temps de la bouclela plus critique Tbc ? Quel est le temps du chemin critique Tcc ?

2 Mise en œuvre du ”papillon” de la FFT et application al’OFDM (9 pts)

Le calcul du ”papillon”de la FFT (Fast Fourier Transform) de type DIF, tache elementairede cet algorithme, est donne ci-dessous.

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

Les Wr et Wi sont des constantes directement issues de la memoire. Xr, Yr, Xi, Yi sont lesentrees de l’algorithme, tandis que X ′

r, Y′r , X ′

i, Y′i sont les sorties. Les indices r et i corres-

pondent aux parties reelles et imaginaires des signaux complexes d’entree et de sortie.

On s’interesse a l’implantation de ce papillon sur un processeur DSP conventionnel, ici leDSP TMS320C54x dont l’unite de traitement est donnee figure 4 et les caracteristiques a lafin de ce probleme. La frequence d’horloge du C54x est de 200MHz soit un cycle de 5ns.

1. Dessiner le graphe flot de donnees (DFG) des calculs du papillon en indiquant les mul-tiplications, additions et soustractions a mettre en œuvre. Representer ce graphe selonson ordonnancement au plus tot (ASAP).

2. On considerera les operateurs suivants : un additionneur/soustracteur et un multiplieurde temps de propagation egal a un cycle de 5ns. Quel est le temps du chemin critiqueTcc ?

3. Quelle cadence et latence de traitement peut on atteindre (borne minimale) lorsque :– on utilise uniquement le multiplieur et l’ALU ;– on utilise les trois operateurs du C54x.On se placera par la suite toujours dans le meilleur des cas en utilisant le plus d’opera-teurs possibles.

2

Page 25: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

4. On considerera tout d’abord uniquement le calcul des parties reelles de la sortie (i.e. X ′r

et Y ′r ), soit la moitie du DFG du papillon. Donner un ordonnancement du graphe sur le

C54x et remplir la table 1 des ressources.

5. Si on considere ensuite le calcul du papillon complet, montrer qu’il est possible d’at-teindre une cadence de 4 cycles. Remplir la table d’occupation des ressources du C54xen montrant bien l’imbrication des calculs.

Application a la modulation OFDM

Dans le contexte de la modulation OFDM pour la television numerique terrestre (DVB-T),des FFT de grande taille sont necessaires. La norme indique que des tailles de 2048 (2K) etde 8192 (8K) doivent etre utilisees a des cadences respectives de traitement1 de 56µs (2K) et226µs.

Une FFT de taille N est constituee de N2 log2 N papillons a calculer.

1. Donner dans le cas des modulations 2K et 8K, les puissances de calcul en MOPS neces-saires.

2. Donner dans le cas des modulations 2K et 8K, les temps d’execution obtenus sur DSPC54x. Expliquer clairement votre methode de calcul.

Caracteristiques du C54x

– Le C54x contient 3 registres T, A, et B.– Le C54x contient 3 operateurs. 1 multiplieur et 1 additionneur/soustracteur qui peuvent

realiser une multiplication et une addition/soustraction en un cycle. Une ALU (addi-tions, soustractions, operations logiques) peut realiser une autre operation en un cycle.

– Jusqu’a trois donnees (bus 1 a bus 3 correspondant respectivement aux bus CB, DBet PB) peuvent etre lues simultanement a chaque cycle en parallele aux operationsprecedentes.

– Le registre A (ou B) peut etre ecrit sur le bus 4 (bus EB) servant aux ecritures memoires,en parallele aux operations et lectures precedentes.

1Cela veut dire par exemple qu’une FFT 2048 doit etre calculee a une cadence de 56µs

3

Page 26: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Fig. 1 – Cellule elementaire

Fig. 2 – Exemple de retiming

4

Page 27: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Fig. 3 – Graphe complet du filtre 2D

5

Page 28: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Fig. 4 – Architecture de l’unite de traitement du C54x

Tab. 1 – Table d’occupation 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

6

Page 29: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

ENSSAT EII3 – MASTER STI Février 2005

'6�&RQFHSWLRQ�GH�6\VWqPHV�,QWpJUpV� Avertissement : seuls les documents personnels, polycopiés et notes de cours sont autorisés. Vous êtes conviés à gérer correctement votre temps de travail, et à lire préalablement l'ensemble des questions. Il sera tenu compte de la clarté et de la rigueur des présentations et raisonnements exposés. Problème 1 : Etude d’un filtre RII sous forme de cellules du 4ème ordre en cascade L’étude traitée dans ce problème concerne la cellule élémentaire d’un filtre à réponse impulsionnelle infinie (RII) du quatrième ordre. On considérera deux structures de cette cellules : la structure directe (voir figure 1.a) et la structure canonique (voir figure 1.b). Les nœuds multiplications, notés « [EL�», correspondent à une multiplication par le coefficient bi (idem pour ai) Les équations aux différences correspondant à ces deux structures sont données ci-dessous. On prendra N=4.�

∑∑==

−+−=�

��

�� LQ\DLQ[EQ\

��������

−=

−+=

=

=�

��

��

LQZEQ\

LQZDQ[QZ

����

������

a) Structure directe b) Structure canonique On considérera 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 numériques, on considérera un cycle égal à 5ns. Les questions 1 à 4 sont à traiter pour les deux structures. 1.� Énumérer, en utilisant les numéros d'opérations ou en les dessinant directement sur le graphe, les

différentes 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

quatrième 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 réduire le

chemin critique (latence) du filtre à 4 cycles. Expliquer clairement votre méthode et vos résultats, et dessiner éventuellement le SFG transformé.

Réalisation d’une architecture VLSI pour la structure canonique On considérera pour les questions 5 et 6 la structure canonique dans laquelle on posera b0 = 1, ce qui supprime l’ opération de multiplication correspondante. 6.� Déterminer 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 nœud du graphe, la mobilité de l’ opération exprimée en nombre de cycles. 8.� Représenter 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 réalisant

l’ ordonnancement précédent ? Expliquez clairement votre réponse. Filtre d’ordre M sous forme cascade On considère un filtre d’ ordre M, avec M multiple de 4, réalisé sous forme de mise en cascade d’ un nombre C de cellules du quatrième ordre. Le filtre H(z) d’ ordre M est défini comme :

Page 30: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

∏=

==�

� ]+L]+]+]+]+ �

��������������� avec C = M / 4

10.�La cadence d’ échantillonnage maximale que l’ on peut atteindre pour ce filtre d’ ordre M est elle modifiée par rapport à celui d’ une cellule du quatrième ordre ?

11.�En considérant l’ ordonnancement de la question 8, quel serait la cadence globale de traitement du filtre d’ ordre M ?

Problème 2 : Etude de la mise en œuvre d’un filtre RII cascade sur DSP VLIW Ce problème concerne la mise en œuvre d'un filtre RII H(z) d'ordre M sur le DSP TMS 320C6x (de type VLIW). On s'intéressera à la structure cascade d’ un nombre C de cellules du quatrième ordre sous forme directe de ce filtre, comme étudiée au problème 1. Etude de l’implantation d’une cellule élémentaire Le graphe du programme assembleur d’ une cellule élémentaire est donné figure 2. On désire mettre en œuvre ce graphe flot sur l'architecture de traitement du C6x. On mémorise dans les registres Ai ou Bi du C6x l’ ensemble des coefficients ai et bi du filtre. Seule les données x(n-i) et y(n-i) doivent être chargées de la mémoire par une instruction LDH. Le détail du fonctionnement des instructions est donné en annexe dans la figure 3. 1.� Proposez un ordonnancement de ce graphe flot de données sur les ressources du C6x et remplissez

la table des unités fonctionnelles de la figure 4 avec les instructions assembleur exécutées. 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 l’implantation du filtre d’ordre M On considère maintenant un filtre d’ ordre M constitué de C=M/4 cellules élémentaires du 4ème ordre mises en cascade. Le programme du filtre complet est donc formé d’ une boucle variant de 1 à C dont le cœur est le graphe de la figure 2. Pour la suite, cette boucle sera considérée comme déroulée. 3.� Sur la table de ressources précédente, indiquez l’ ordonnancement des différentes cellules en

considérant une exécution à une cadence maximale. 4.� Quelle cadence peut on atteindre pour chaque cellule ? Quel est le temps d’ exécution 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 réintégrant une

boucle sur le nombre de cellules, indiquez prologue, épilogue et cœur 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�

Page 31: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

�� �

�� �

�� �

�� �

�� �

�� �

�� �

�� �

����������������

��������!���"��� # !

��������$���"��� # $

��������%���"��� # %

��������&���"��� # &

�'����( ! ������) # !

�'����(�$ ������) # $

�'����(�% ������) # %

�'����(�& ������) # &

*�+���) ,"- . /0 - . /

�)LJXUH�����*UDSKH�GH�OD�FHOOXOH�GX�� 13254 �RUGUH�

��+\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���

Annexe : Processeur TMS320C6x

Ce processeur est doté d'une unité de traitement comportant 2 multiplieurs et 4 UAL comme indiqué sur le schéma du cours. Le processeur ne peut transférer que deux données par cycle au maximum (en lecture et/ou écriture). Chaque register file A et B contient 16 registres accessibles indépendamment. �,QVWUXFWLRQ� 'HVFULSWLRQ� 1RPEUH�GH�

F\FOHV�8QLWpV��0� 8QLWpV��/� 8QLWpV��6� 8QLWpV��'�

/'+� &KDUJH�XQH�GRQQpH����ELWV�YHQDQW�GH�OD�PpPRLUH�GDQV�XQ�UHJLVWUH�

�� �� �� �� �'����'��

67+� (FULW�XQH�GRQQpH����ELWV�YHUV�OD�PpPRLUH�GHSXLV�XQ�UHJLVWUH�

�� �� �� �� �'����'��

03<� 0XOWLSOLFDWLRQ�HQWUH���UHJLVWUHV��UpVXOWDW�GDQV�XQ�WURLVLqPH�

�� �0���0��

�� �� ��

$''� $GGLWLRQ� �� �� �/���/��

�6���6��

�'����'��

68%� 6RXVWUDFWLRQ� �� �� �/���/��

�6���6��

�'����'��

123� DXFXQH�RSpUDWLRQ� �� WRXWHV� WRXWHV� WRXWHV� WRXWHV�Figure 3 : Jeu d’ instructions du TMS 320C6x utile pour ce problème

Page 32: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

&\FOH� �� �� �� �� �� �� �� �� �� ��� ��� ��� ��� ��� ��� ���

�'���

� � � � � � � � � � � � � � � ��/���

� � � � � � � � � � � � � � � ��0���

� � � � � � � � � � � � � � � ��6���

� � � � � � � � � � � � � � � ��'���

� � � � � � � � � � � � � � � ��/���

� � � � � � � � � � � � � � � ��0���

� � � � � � � � � � � � � � � ��6���

� � � � � � � � � � � � � � � �

&\FOH� �� �� �� �� �� �� �� �� �� ��� ��� ��� ��� ��� ��� ����'���

� � � � � � � � � � � � � � � ��/���

� � � � � � � � � � � � � � � ��0���

� � � � � � � � � � � � � � � ��6���

� � � � � � � � � � � � � � � ��'���

� � � � � � � � � � � � � � � ��/���

� � � � � � � � � � � � � � � ��0���

� � � � � � � � � � � � � � � ��6���

� � � � � � � � � � � � � � � �

Figure 4 : 7DEOH�G¶DOORFDWLRQ�GHV�UHVVRXUFHV�� �

Page 33: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

xa1+2

x(n)

xb1 +6

+5y(n)

D+1

xa2+3 xb2 +7

D

xa3+4 xb3 +8

D

xa4 xb4

D

xb0

+6

+5y(n)

D

+7

D

+8

D

D

xa1+2

x(n)

D+1

xa2+3

D

xa3+4

D

xa4

D

xb1

xb2

xb3

xb4

xb0

a) Filtre RII sous forme directe b) Filtre RII sous forme canonique

Figure 1. Filtre RII du quatrième ordre

w(n)

Page 34: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

SATENSENSSATENSSAT EII3 - tronc commun

DEA STIR option Signal-ArchitectureDS Conception de Systemes Integres

Tous documents autorisesFevrier 2004

Probleme 1 : Etude des performances d’une structure en treillis

Soit la structure de filtre numerique en treillis representee sur la figure 1. On considerera un addition-neur de temps de propagation egal a un cycle et un multiplieur pipeline a deux etages, ayant unecadence de un cycle et ayant une latence de deux cycles.

+

x

+

x

D

x

DD

+

x

+

x

D

+

x

D

x

D

+

x x

D

1 2 3 4 5 6 7 8

x D

9 10 11 12 13 14 15 16 17

19

x(n)

+

+18

x21

+20

+

x x x

+ x

22 23 24

25 26

y(n)

Figure 1: SFG de la structure en treillis

1. Enumerer, en utilisant les numeros d’operations, quelles sont les differentes boucles de ce grapheflot 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 metriques ?

4. Determiner le nombre minimum d’additionneurs et de multiplieurs permettant d’atteindre unecadence de traitement de 4 cycles (i.e. un nouvel echantillon x(n) doit etre filtre tous le 4 cycles).

5. Representer un ordonnancement permettant d’atteindre cette cadence tout en minimisant lalatence (temps de retard Td) de traitement.

6. Proposer des transformations algorithmiques sur ce SFG permettant de reduire la latence dufiltre a 4 cycles (ou moins). Expliquer clairement votre methode et vos resultats, et dessinereventuellement le SFG transforme.

1

Page 35: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Probleme 2 : Etude d’une architecture VLSI pour un filtre de Volterra

Soit le systeme discret defini par :

y(n) = {[a1.x(n− 1) + a2.x(n− 2)] + c1.z(n− 1)}+ [b1.w(n− 1) + b2.w(n− 2)] (1)

avecz(n) = x(n).x(n− 1) (2)

etw(n) = x(n).x(n) (3)

On considerera qu’une multiplication et une addition sont effectuees en un cycle de 5 ns (technologie0.18µm, multiplication sur 16 bits et addition sur 32 bits).

1. Tracer son Graphe Flot de Signal (SFG) sans modifier la specification du systeme d’equationsci dessus. Numeroter les differentes operations.

2. Tracer ensuite son graphe flot de donnees (DFG) selon l’ordonnancement au plus tot ASAP.Donner les mobilites des differentes operations du graphe.

3. Donner l’ordonnancement par listes du DFG en considerant une allocation sur un multiplieuret un additionneur. Quel est le temps d’execution de l’algorithme ?

4. Caracteristiques d’une architecture permettant d’implanter l’ordonnancement determine dans laquestion precedente.

On considerera que les coefficients et les signaux w(n − i), z(n − i) et x(n − i), ∀i se trouventdans des registres locaux a l’unite de traitement.

Expliquer comment deduire le nombre de registres a partir de l’ordonnancement et indiquer pourchaque registre les donnees qu’il contient.

Dessiner la structure de l’architecture de l’unite de traitement. On considerera un bus d’entreeB vehiculant l’arrivee du nouvel echantillon x(n).

5. On souhaite maintenant que l’architecture travaille a une cadence d’arrivee des echantillons de5 ns (i.e; une frequence d’echantillonnage de 200 MHz). Quel ordonnancement peut on utiliserpour atteindre cette cadence ?

Donner une estimation (expliquer vos resultats) :

• du nombre d’operateurs a utiliser ;• du nombre de registres necessaires.

Probleme 3 : Mise en œuvre d’un filtre numerique sur processeurembarque

Ce probleme concerne la mise en œuvre d’un filtre RIF H(z) de type symetrique de longueur N pairesur des processeurs de traitement du signal defini par :

y(n) =

N2−1∑

i=0

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

Il s’agit d’une version equivalente au filtre RIF sur N points, dans lequel la reponse impulsionnelleh(i) = ai est symetrique, c’est a dire ai = aN−i−1. La plupart des questions de ce probleme peuventetre traitees independamment. On prendra pour les exemples a suivre le cas N = 16.

1. Indiquez la taille memoire occupee, et le nombre minimum de multiplications et d’additions aeffectuer en fonction de N .

2. Le programme base sur une boucle de ce filtre est donne ci apres.

2

Page 36: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

x[0] = input; // Update most recent sampleacc = 0; // Zero accumulator.for (i=0; i<8; i++) // N=2*8 taps

{tmp = x[i] + x[N-i-1]; // perform Q.15 multiplicationacc = acc + h[i] * tmp; // Update accumulator

}output = (short) (acc>>15); // Cast output to 16 bits.

Le DSP utilise est un TMS320C54x dont l’architecture est representee sur la figure 2.

A

B

Bus1

Bus2

A

B

Bus1

T

ALUALU

Bus1

Bus2

Bus3

A

B

Bus1

TMult

AddA

B

0

A

B

ALU

A

B

A

BBus4

MAC

A

ABus1

Figure 2: Architecture du TMS320C54x

• Le C54x contient 3 registres T, A, et B.

• Le C54x contient 3 operateurs. 1 multiplieur, 1 additionneur peuvent realiser une multipli-cation/addition en un cycle. Une ALU (additions, soustractions, operations logiques) peutrealiser une autre operation en un cycle.

• Jusqu’a 3 donnees peuvent etre lues simultanement a chaque cycle.

• A ou B peut etre ecrit sur le bus 4 servant aux ecritures memoires.

Deduire de l’algorithme le graphe flot de donnees du cœur de la boucle.

L’architecture du C54x possede 1 multiplieur et deux additionneurs. Il est donc potentiellementpossible d’executer ce filtre sur N points en N/2+P cycles. Proposer une transformation du codede l’application et dessiner un ordonnancement qui permettent d’atteindre ce temps d’executionen N/2 + P cycles. Que vaut P dans votre solution ?

3. Donner pour l’ordonnancement precedent la table d’occupation (i.e. remplir le tableau 1) desregistres T, A, et B, et des bus.

4. Le cœur de processeur C55x de Texas Instruments est une architecture recente disposant dedeux unites de traitement de type C54x (figure 2) en parallele, connectees a la meme structurememoire et au meme nombre de bus.

3

Page 37: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Proposer une transformation du code de l’application et un ordonnancement qui permettentd’accelerer le temps d’execution par rapport au C54x. Vous verifierez en particulier que lesacces simultanes aux donnees x[i] et h[i] dans les memoires ne sont pas conflictuels. Quel est letemps d’execution que votre solution permet d’atteindre en fonction de N ?

Ress. Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9 Cycle 10T regA regB regMult.Add.ALU

Bus1 (R)Bus2 (R)Bus3 (R)Bus4 (W)

Table 1: Table d’occupation des ressources du C54x

Probleme 4 : Etude de l’acceleration offerte par le couplage d’un co-processeur a un processeur dans un SOC

Ce probleme concerne l’etude de l’acceleration offerte par le couplage d’un co-processeur a un pro-cesseur dans un SOC. On considerera une carte graphique pour accelerer le codage de sequences video(e.g. format DivX) couplant un processeur VLIW et un co-processeur ASIC specialise sur un traite-ment particulier de cette sequence de codage (e.g. estimation de mouvement). Les caracteristiques dusysteme sont donnees ci-dessous.

• Le processeur a une puissance crete de 800 MOPS pour une frequence d’horloge de 200 MHz.

• Le bus de couplage fonctionne a 200 MHz sur 32 bits.

• Les images a coder par l’ASIC sont de taille maximum 512× 340 (N ×M), chaque pixel etantcode sur 24 bits (3 couleurs sur 8 bits). Le resultat du calcul de l’ASIC represente un volumede N ×M/2 donnees de 32 bits.

• L’application a accelerer necessite un nombre d’operations de calcul de N ×M × 100. Elle doitetre executee dans le cas ideal en un temps inferieur a 5 ms.

• Le co-processeur ASIC doit : (1) recevoir l’image complete transferee pixel par pixel sur le bus32 bits (temps Tcom1), (2) effectuer son calcul (temps Texe), (3) retourner le resultat du calculsur le bus 32 bits (temps Tcom2).

1. Calculer les temps de communication des donnees entre le processeur et l’ASIC Tcom1 et Tcom2.

2. Exprimer l’acceleration Acc(Texe) offerte par l’ASIC, i.e. le rapport entre la puissance de calculofferte par le processeur couple a l’ASIC et celle du processeur seul. Tracer cette accelerationen fonction de Texe. Quelle est l’acceleration maximale que l’on peut atteindre ?

3. A partir de quel Texe la contrainte de temps reel est elle atteinte ?

4. Quelles solutions proposez vous pour augmenter les performances de ce systeme sur puce ?

4

Page 38: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

SATENSENSSATENSSAT EII3 - tronc commun

DEA STIR option Signal-ArchitectureDS Conception de Systèmes Intégrés

Tous documents autorisésFévrier 2003

Problème 1 : Étude d’une architecture VLSI pour un filtre RII du 1er

ordre (≈ 6 points)

Soit le filtre numérique à réponse impulsionnelle infinie du premier ordre défini par :

y(n) = a · y(n− 1) + x(n)

1. Après avoir tracé son Graphe Flot de Signal (GFS ), donnez la fréquence maximale de fonction-nement du filtre (i.e. la fréquence d’échantillonnage du signal d’entrée Fe). On considérera qu’unemultiplication et une addition sont effectuées en un cycle de 5 ns (technologie 0.18µm, opérateurssur 16 bits).

2. Exprimez y(n−1) en fonction de y(n−2), puis reportez cette expression dans y(n) afin d’obteniry(n) fonction de y(n − 2) et des entrées. En déduire le nouveau GFS ainsi que sa fréquencemaximale de fonctionnement. Concluez sur l’intérêt de cette transformation connue sous le nomde LookAhead .

3. Dessinez un ordonnancement de ce GFS permettant de suivre une cadence d’arrivée des échan-tillons de 5 ns (équivalente à une fréquence d’échantillonnage de 200 MHz). En déduire lescaractéristiques d’une architecture (nombre d’opérateurs et nombre de registres, . . .) permettantd’implanter cet ordonnancement. On considérera que les coefficients et les signaux y(n − i) etx(n− i),∀i se trouvent dans des registres locaux à l’unité de traitement.Expliquez clairement vos résultats.

4. Généralisez cette transformation jusqu’à l’ordre N. Donnez l’expression de y(n) en fonction y(n−N). En déduire la cadence fonctionnement que l’on peut atteindre.Comment peut on trouver une architecture permettant de fonctionner à cette cadence ? Com-menter sur un exemple où N = 4.Quelles sont donc les limitations de cette transformation ?

Problème 2 : Étude d’un système sur silicium pour le codage vidéo (≈14 points)

Dans les applications de codage vidéo, il est nécessaire, afin de diminuer le flux vidéo, de pouvoir estimerle mouvement entre des blocs de pixels de l’image courante et de l’image précédente. Cet algorithme,appelé Estimation de Mouvement (EM) représente la partie la plus complexe du codeur vidéo. On leretrouve dans tous les codeurs de type MPEGx ou H26x. Cela constitue donc un bloc intéressant àétudier dans le cadre de sa mise en œuvre sur un SOC.Chaque image est partitionnée en blocs de référence (BR) de taille N×N pixels, chaque pixel étantcodé sur 8 bits. Chaque BR est comparé avec des blocs de taille équivalente dans l’image précédenteau sein d’une fenêtre de recherche (FR) de taille (N + 2p) × (N + 2p) pixels. Le bloc de la FRaboutissant à une distance minimale avec le BR est choisi comme vecteur de mouvement. La figure 1.amontre ce principe, tandis que l’algorithme 1.b est le calcul de l’estimation de mouvement du bloc BRsur l’ensemble de FR. Le calcul de la distance, représenté par les deux boucles centrales de l’algorithme1.b est donné par :

distance(u, v) =N−1∑

i=0

N−1∑

j=0

|BR(i, j)− FR(i + u, j + v)|, for − p ≤ u, v ≤ p

1. Donner la complexité en nombre d’opérations1 de l’estimation de mouvement d’un bloc BR sur1La valeur absolue ABS() est une opération qui peut être implantée sur une ALU. Ne pas tenir des calculs d’indices.

1

Page 39: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Motion Vector(u,v)

Reference BlockNxN

Matched BlockNxN

N+2p

Search Window

p

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

a) Fenêtre de recherche dans l’EM b) Algorithme de l’EM

Fig. 1 – Estimation de mouvement sur un bloc de l’image par rapport à un bloc de référence (EM)

FR (algorithme 1.b) en fonction de N et p.

2. Sur une image de taille Nh ×Nw et sur un débit vidéo de D images par secondes, quelle est lacomplexité totale (en MOPS) de l’EM au sein du codage vidéo. On considérera que l’EM doitêtre calculée sur l’ensemble des blocs BR adjacents formant l’image. On prendra par la suite :N = 8, p = 12, Nh = 288, Nw = 352 (image de format CIF), D = 20 images/s.Donner l’application numérique.Quels peuvent être les avantages et les inconvénients de se servir de la ligne 8 (non considéréedans le début et dans la suite de ce problème).

3. Implantation sur processeur VLIWOn s’intéresse tout d’abord à son implantation sur un DSP VLIW haute performance. Le pro-cesseur considéré est ici le ST200 de la famille Lx (voir chap. 1, transparent 97) à 1 cluster etune fréquence d’horloge de 400 MHz. Ce processeur peut exécuter jusqu’à 4 opérations par cycleet possède 6 unités fonctionnelles (4 ALUs et 2 multiplieurs). Quelle est la puissance crête enMOPS que peut délivrer ce processeur ? Quelles sont les autres informations pertinentes sur cettearchitecture pour notre application d’estimation de mouvement ?

4. Nous allons chercher une implantation de cet algorithme travaillant à une cadence maximalepour ce processeur mais ne respectant pas forcément la contrainte trouvée dans la question 2. Onconsidérera le graphe flot de données de la boucle centrale de l’EM (lignes 6 et 7 de l’algorithme1.b) une fois celle-ci totalement déroulée. Que permet de faire apparaître cette transformationpar rapport à la spécification initiale ? Quel est son chemin critique ?Tracez ce graphe flot après l’avoir ordonnancé au mieux sur le cluster du ST200. Vous pouvezpour cela utiliser la table des ressources fournie.En combien de cycles cette boucle est elle exécutée ? Quel est donc le nombre d’instructions parcycle (IPC) moyen de cette boucle ? Quel est le débit vidéo D que l’on peut atteindre dans le casde ce processeur ?

5. Implantation sur processeur VLIW avec capacités SIMD/SWPLe processeur considéré est maintenant le C64 de T.I. (voir chap. 1, transparent 94) à unefréquence d’horloge de 400 MHz. Ce processeur peut exécuter jusqu’à 8 instructions par cycle,où les instructions peuvent se composer de plusieurs opérations simultanées sur des données detaille différente.Les pixels étant tous codés sur 8 bits, expliquer, en se basant sur cet exemple, le principe del’exploitation des capacités SIMD/SWP dans les processeurs.

2

Page 40: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Cycle ALU 1 ALU 2 ALU 3 ALU 4 MULT 1 MULT 212345678910111213

Tab. 1 – Table des ressources du ST200

Quelle est l’accélération que l’on peut potentiellement obtenir dans le cas du C64 par rapport àl’architecture précédente ? Est il donc possible d’atteindre la cadence imposée par les contraintesdu 2. ?On considérera que seules les unités L1/L2 et S1/S2 sont utilisables dans notre cas (opérations+, -, ABS sur des données 8 bits).

6. Expliquer quelles sont les contraintes induites par l’utilisation du SIMD/SWP sur le placementen mémoire des pixels des blocs BR et FR.

7. Implantation sur co-processeur dédiéOn souhaite maintenant associer un processeur traitant les boucles des lignes 2 et 3 à un co-processeur accélérant les boucles centrales des lignes 5, 6 et 7. Quelle est la contrainte de cadenceque doit respecter ce co-processeur ?En considérant que les fonctions +, - et ABS peuvent travailler à 400 MHz sur cet ASIC (i.e. letemps de traversée d’un opérateur permettant de réaliser les 3 fonctions de +, - et ABS est de2.5 ns), quel est le nombre d’opérateurs arithmétiques que devra comporter ce co-processeur ?Expliquer clairement votre résultat.

8. Sur le graphe flot de données de la question 4 (boucle 6 déroulée), quel type de transformationdoit être appliqué pour permettre un ordonnancement sur un nombre supérieur d’opérateurs ?Représenter cet ordonnancement sur le DFG transformé (sans forcément atteindre le nombred’opérateurs trouvés dans la question précédente ; vous pouvez fixer par exemple un nombred’opérateurs égal à 8).En optimisant la gestion de la boucle 5, donner le temps d’exécution de l’algorithme d’EM surce co-processeur.

9. Quel est le volume de données qui doit être communiqué entre la mémoire contenant les imagescourante et précédente et le co-processeur. On considérera que le co-processeur contient dans unemémoire locale le bloc BR et la fenêtre FR.

10. Définition d’un SOC pour le codage vidéoDessiner et expliquer le synoptique d’un SOC –mixant processeur, co-processeur, mémoire, inter-connexions et périphériques– qui vous parait bien adapté à l’implantation de l’application d’EM.Vous pourrez par exemple détailler rapidement pour les différents blocs les différentes possibilitésde solutions architecturales.Qu’est ce qui vous parait le plus difficile dans la conception de ce système sur puce ?

11. Détaillez, en vous basant sur le cours, les différentes possibilités de spécifications (langage) et laméthodologie de validation (simulation) de l’architecture du SOC.

3

Page 41: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Corrections du DS de Février 2003

Correction du Problème 1

Soit le filtre du premier ordre : y(n) = a · y(n− 1) + x(n)

1. Le graphe flot de signal est donné figure 1.a. La boucle critique est donnée par Tbc = Tmult+Tadd =2 · Tcycle = 10ns. Par conséquent, la fréquence maximale de fonctionnement de cet algorithmevaut 1

Tbc= 100MHz.

x(n) y(n)

a

+

xD

x(n)

y(n)

a2

+

x

D

DD

+

a

x

a) Question 1 b) Question 2Fig. 2 – GFS du filtre 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 flot de signal est donné figure 1.b. La boucle critique étant divisée par 2 (Tbc = 5ns),la fréquence maximale d’échantillonnage est maintenant de 200 MHz.Un ordonnancement de ce graphe est décrit figure 2. Le temps de cycle (5 ns) indiqué en pointilléest ici équivalent à la contrainte de temps (Te). Ceci implique que chaque opérateur est utilisé100% du temps. Il faut donc 2 multiplieurs et 2 additionneurs. Le nombre de registres est de 9 (1par arc puisque la cadence est maximale), plus 3 registres pour gérer les délais Z−1. La structurede cette architecture est identique au graphe flot.

x(n)

y(n)+

xD

D

+

D x

Fig. 3 – Ordonnancement du GFS du filtre

3. L’equation est donnée ci dessous. Son graphe flot de signal est représenté à la figure 3. La bouclecritique est maintenant de Tbc = Tmult+Tadd

N car la boucle contient N délais.

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)

D(n,N) =N−1∑

j=0

aj .x(n− j)

Cependant, une limitation physique à l’augmentation de la fréquence maximale de fonctionne-ment subsiste. Pour que le circuit travaille à cette cadence, il faudrait que les opérateurs élémen-taires soient eux même pipelines. Par exemple, si N = 4, une cadence de 10/4 = 2.5 ns impose

4

Page 42: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

d’avoir des multiplieurs (et additionneurs) à au moins 2 niveaux de pipeline, afin que leur cadencesoit également de 2.5ns.Ce principe trouve donc rapidement ses limitations. Par contre, une extension pour un filtre RIId’ordre N est envisageable...

x(n)

y(n)+

xD

+

aN-1

x N.D

D(n,N)

+

aN-2

x

DD

+

a2

x

D

+

a

x

•••

•••

•••aN

Fig. 4 – Généralisation du LookAhead

Correction du Problème 2

1. 3N2(2p + 1)2 opérations.

2. DNh×Nw

N2 × 3N2(2p + 1)2. A.N. 20× 1584× 120.103 = 3.8 GOPS.

3. 400× 4 MOPS = 1.6 GOPS.

4. Ordonnancement sur 10 cycles. IPCmoyen = 24/10 = 2.4. D ≈ 5 images/s.

5. On peut atteindre une accélération de 4 (4 opérations 8 bits par ALU). On doit donc pouvoiratteindre la contrainte.

6. Les données doivent être placées dans les registres par paquets de 4x8 bits pour être traitées enparallèle selon le mode SWP.

7. Contrainte du co-processeur : 50.5 ns pour 64 additions, 64 soustractions et 64 fonctions valeurabsolue. Ceci implique 10 opérateurs.

8. Associativité (tree-height reduction) afin d’augmenter le taux de parallélisme.

9. Blocs BR et FR, soit 64 + 1024 pixels. Il peut exister un recouvrement entre les blocs FR d’uneitération sur l’autre.

10. Le plus difficile dans ce SOC est la communication entre la mémoire et le co-processeur ainsi quele placement des données en mémoire.

11.

5

Page 43: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

ENSSAT EII3 – DEA STIR janvier 2002

DS Architectures Spécialisées Synthèse de Haut Niveau

Avertissement : seuls les documents personnels, polycopiés et notes de cours sont autorisés. Vous êtes conviés à gérer correctement votre temps de travail, et à lire préalablement l'ensemble des questions. Il sera tenu compte de la clarté et de la rigueur des présentations et raisonnements exposés. Problème 1 : Etude système d’un émetteur-récepteur WCDMA Nous allons nous intéresser au prototypage d’un émetteur-récepteur WCDMA utilisé dans les télécommunications mobiles de troisième génération (3G) de type UMTS, sur un système intégré (SoC). Pour cela nous allons étudier ensemble sa complexité globale et décider quel type de matériel à utiliser (ASIC, DSP, …) pour chaque bloc de cette chaîne de traitement. Caractéristiques générales : • Le débit d’entrée des DATA est fixé à 3.84 106 échantillons par seconde. On appellera cette

fréquence la fréquence chip Fc. Le signal DATA est suréchantillonné d’un facteur 8. On considérera donc que le débit du flot de données vaut 8.Fc. Les données DATA sont sur 8 bits.

• Le signal d’entrée DATA est considéré comme complexe, composé d’une partie réelle et imaginaire, respectivement I(n) et Q(n). Il en est de même pour les codes c(n) et les porteuses p(n).

• Les filtres RIF d’émission et de réception sont de taille N=128 : ∑ −

=−=

1

0)()()(

N

iinxihny

• Les modulation et démodulation consistent à multiplier le signal y(n) par une porteuse p(n). Ces algorithmes travaillent sur des données d’entrée avec un débit à la fréquence chip Fc.

1. Emetteur WCDMA Un émetteur WCDMA est principalement constitué d’une multiplication complexe réalisant l’étalement de spectre, d’un filtre RIF et d’une modulation.

a. Donner la complexité en nombre d’additions et multiplications de chaque bloc de traitement. b. En déduire la puissance de calcul en MOPS nécessaire à l’émetteur WCDMA.

2. Récepteur WCDMA Le Rake Receiver est principalement constistué de L=6 corrélateurs. Chaque corrélateur effectue une multiplication-accumulation sur le signal y’(n) par un code complexe c’i(n) qui lui est propre.

c. Donner la complexité en nombre d’additions et multiplications ainsi qu’en MOPS d’un corrélateur et du Rake Receiver.

d. En déduire la puissance de calcul en MOPS nécessaire au récepteur WCDMA. 3. Etude d’une solution architecturale pour le système émetteur-récepteur

a. Etudier pour les 3 blocs de filtre RIF complexe, Rake Receiver et modulation-démodulation, l’adéquation avec les 3 solutions architecturales proposées dans le tableau ci-dessous. En clair, indiquer pour ces 3 blocs :

Générateur de codes

Générateur de porteuse

Modulation Filtre

DATA(n) x(n) y(n) s(n) c(n) p(n)

Générateur de codes

Générateur de codes

Générateur de porteuse Générateur de porteuse

Modulation Modulation Filtre Filtre RIF

e’(n)

DATA’(n) Rake Receiver

Générateur de porteuse

Démodulation Rake Receiver

Générateur de porteuse Générateur de porteuse

Démodulation Démodulation Filtre RIF

x’(n) y’(n)

Page 44: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

§ pour un ASIC, le nombre d’opérateurs nécessaires ; § pour chaque DSP, le nombre de processeurs nécessaires, indiquer si la contrainte

de temps peut être respectée ; § pour les 3 architectures la puissance moyenne pour l’exécution du bloc ;

Complexité des

opérations Fréquence

Puissance calcul Consommation

1 ASIC 0.18u ⊗ : 4ns ⊕ : 3 ns

⊗ : 130pJ/opération ⊕ : 40pJ/opération

2 DSP C54x ⊗ : 1 cycle ⊕ : 1 cycle

200 MHz 200 MIPS

120 mW

3 DSP C6x ⊗ : 2 cycles ⊕ : 1 cycle

200 MHz 1600 MIPS

1W

b. Quelles sont les avantages et inconvénients des 3 solutions architecturales proposées ? c. Proposez une architecture mixte matérielle logicielle. Dessinez son schéma de principe.

Expliquer en particulier comment vous couplez le (ou les) DSP avec le (ou les) circuit ASIC (méthode de couplage, type d’interconnexion, gestion du logiciel, …).

d. Les prochaines générations de technologies (0.13 µm en 2001, 0.10 µm en 2003) changent les résultats trouvés précédemment. Indiquez comment évoluent, par exemple pour une technologie de 0.1µ, la fréquence, la consommation et le temps de opérateurs.

e. Quelles seraient les avantages d’utiliser une solution reconfigurable dans ce système ? Quelles sont les solutions pour cela ?

Problème 2 : Etude de la mise en œuvre d’un 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ù ω= 2πf et f est la fréquence porteuse. Les trames a(t) et b(t) sont obtenues à partir de la trame du signal d'entrée. Par exemple dans un Modem V29, a(t) et b(t) représentent dans le plan complexe 8 états à 0, 90, 180 ou 270 degrés, pour une amplitude égale à 3 ; si la phase est de 45, 135, 225, ou 315 degrés, l'amplitude vaut 21/2. Constellation du Modem V29 pour une MAQ à 7200 bps. Schéma d'un modulateur MAQ Le schéma 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 résonateurs dont la réponse impulsionnelle est :

• pour la fonction sinus : h(n) = sin(nωT) Après avoir amorcé le résonateur par un signal impulsionnel spécifique, sa sortie s'écrit : y(n) = 2.cos(πT).y(n-1) - y(n-2)

• pour la fonction cosinus : h’(n) = cos(nωT)

-3 -3a(t)

b(t)21/2

u(t)

A cos(2π .f0t + ϕ0)

-A sin(2π .f0t + ϕ0)

a(t)

b(t)

x(t)-3 -3

a(t)

b(t)21/2

-3 -3a(t)

b(t)21/2

u(t)

A cos(2π .f0t + ϕ0)

-A sin(2π .f0t + ϕ0)

a(t)

b(t)

x(t)u(t)

A cos(2π .f0t + ϕ0)

-A sin(2π .f0t + ϕ0)

a(t)

b(t)

x(t)

Page 45: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Après avoir amorcé le résonateur par un signal impulsionnel spécifique, sa sortie s'écrit : y’(n) = 2.cos(πT).y(n-1) - y(n-2)

L'expression numérique complète du MAQ est donnée par les trois équations suivantes :

[ ]∑ =−−=

−−−=−−−=

1

0)()(')()()3(

)2(')1('.)(')2()2()1(.)()1(

k kk knxnybnyanu

nynynynynyny

αα

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 métriques ? 4. On désire mettre en œuvre le graphe flot sur l'architecture de traitement du TMS 320C6x.

Proposez clairement un ordonnancement du graphe flot de données sur les ressources du C6x. Dessinez le DFG ordonnancé.

5. On mémorise dans les registres Ai ou Bi du C6x l’ensemble des variables α, ai, bi, y et y'. Seule la donnée x(n) doit être chargée de la mémoire par un LDH. Remplissez la table d'occupation des registres par les variables qui y sont stockées et des unités fonctionnelles par les instructions assembleur exécutées.

6. Indiquez le nombre de cycles de traitement de la MAQ. En déduire son temps d’exécution. 7. Les contraintes sont elles respectées par rapport aux paramètres de débit de la modulation dans

l’UMTS du problème 1 ? Si les contraintes sont respectées, quel est le taux de charge (en %) du C6x, sinon, quelle solution proposez vous ?

8. Indiquez quels changements interviennent dans l’ordonnancement et le nombre de cycles si les données y et y’ sont également rangées en mémoire.

Annexe : Processeur TMS320C6x

Ce processeur est doté d'une unité de traitement comportant 2 multiplieurs et 4 UAL comme indiqué sur le schéma du cours. Le processeur ne peut transférer que deux données par cycle au maximum (en lecture et/ou écriture). Chaque register file A et B contient 16 registres accessibles indépendamment. Les registres Ai peuvent accéder également aux unités .x2, les registres Bi peuvent accéder également aux unités .x1. Instruction Description Nombre de

cycles Unités .M Unités .L Unités .S Unités .D

LDH Charge une donnée 16 bits venant de la mémoire dans un registre

5 - - - .D1 .D2

STH Ecrit une donnée 16 bits vers la mémoire depuis un registre

1 - - - .D1 .D2

MPY Multiplication entre 2 registres, résultat dans un troisième

2 .M1 .M2

- - -

ADD Addition 1 - .L1 .L2

.S1

.S2 .D1 .D2

SUB Soustraction 1 - .L1 .L2

.S1

.S2 .D1 .D2

NOP aucune opération 1 toutes toutes toutes toutes

Figure 2 : Jeu d’instructions du TMS 320C6x utile pour ce problème

Page 46: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Cycle 1 2 3 4 5 6 7 8 9 10 11 12

.D1

.L1

.M1

.S1

.D2

.L2

.M2

.S2

A0

A1

A2

A3

A4

A5

B0

B1

B2

B3

B4

B5

Table d’allocation des ressources

Page 47: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

ENSSAT EII3 – DEA STIR lundi 8 janvier 2001

DS Architectures Spécialisées Synthèse de Haut Niveau

Avertissement : seuls les documents personnels, polycopiés et notes de cours sont autorisés - Vous êtes conviés à gérer correctement votre temps de travail, et à lire préalablement l'ensemble des questions. Il sera tenu compte de la clarté et de la rigueur des présentations et raisonnements exposés. Problème 1 : Etude d’un circuit pour la mise en œuvre d’un filtre numérique Soit le filtre à réponse impulsionnelle finie sur 8 points dont les coefficients a(i) sont symétriques, i.e. a(i) = a(7-i). Il est donc possible de factoriser la version 1 ci dessous en une version 2 ne comportant

plus que 4 multiplications. Version 1 Version 2 On considérera que Tadd = 20ns, Tmult = 30 ns, que les données e(i) et a(i) viennent de mémoires, et que S retourne en mémoire en fin de calcul. Dans un premier temps le nombre de bus entre mémoire et unité de traitement ne sera pas limité. 1. Dessinez le graphe flot de signal ordonnancé au plus tôt de la version 2 de cet algorithme. Quel est

le temps du chemin critique ? 2. On désire étudier une architecture pour implémenter 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 d’opérateurs (additionneur, multiplieur) nécessaires dans les 2 cas. 2. Ordonnancez le graphe flot de données sur ce nombre d’opérateurs dans les 2 cas. La

cadence est-elle respectée ? Donnez la latence des calculs. 3. Estimez le nombre minimum de bus et de registres dans les 2 cas.

3. Dessinez l'architecture de l’unité de traitement (UT) obtenue après allocation des opérateurs et

assignation des registres, dans le cas où la cadence vaut 120ns. Expliquez clairement l’utilisation des ressources allouées par une table d’utilisation (opérateurs, registres, bus). En particulier, soyez vigilant à l’allocation des opérations aux opérateurs lorsque leur nombre est supérieur à 1.

4. Expliquez comment concevoir la structure de l’unité mémoire (UM). Vous donnerez le nombre et

le type de bancs mémoire, le placement des données dans ceux ci, ainsi que la structure d’interconnexion par bus entre UT et UM.

On ajoute à la bibliothèque d’opérateurs un multiplieur pipeline de latence égale à 40ns, de cadence égale à 20ns, et comportant donc 2 tranches de pipeline. 5. Représentez l’ordonnancement du filtre en version 1 sur un additionneur et un multiplieur pipeline.

Quel temps de calcul peut on atteindre avec cette version ? L’utilisation d’un additionneur pipeline pourrait elle apporter un gain en performance ?

[ ]∑∑==

−+==3

0

7

0

)7()().()().(ii

ieieiaieiaS

Page 48: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Problème 2 : Etude de la mise en œuvre d’un filtre numérique sur DSP VLIW On s'intéresse à la compilation d'un code C sur un processeur DSP VLIW (ici un TMS320C6x). Ce processeur est composé de 2 unités 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 problème 1, elle s'écrit de la façon suivante :

x[0] = input; // Update most recent sample. acc = 0; // Zero accumulator.

for (i=0; i<8; i++) // 8 taps { prod = (h[i]*x[i]); // perform Q.15 multiplication acc = acc + prod; // Update 32-bit accumulator } output = (short) (acc>>15); // Cast output to 16-bits. Une compilation classique de ce programme aboutirait au code assembleur ci-dessous. On ne s’intéresse par la suite qu’au cœur de la boucle (lignes 3 à 8 du code).

1 Start MVKL .S2 8, B0 ; Intialise the loop counter (B0) to 8 2 MVKL .S1 0, A5 ; Intialise the accumulator (A5) to 0

3 Loop LDH .D1 *A8++,A2 ; Load x(i) in A2 4 LDH .D1 *A9++,A3 ; Load h(i) in A3 5 NOP 4 ; LDH has a latency of 5 cycles 6 MPY .M1 A2,A3,A4 ; Multiply x(i) and h(i) in A4 7 NOP ; MPY has a latency of 2 8 ADD .L1 A4,A5,A5 ; Add A4 to the accumulator A5

9 [B0] SUB .L2 B0,1,B0 ; Sub 1 to the counter B0 10 [B0] B .S1 loop ; Branch to loop if B0 <> 0

1 Dans sa version non optimisée, quel est le nombre de cycles nécessaires pour l'exécution du filtrage

sur 8 points sur ce processeur ? Quel est le nombre minimum de cycles que l’on peut atteindre avec un processeur de ce type ?

2 Dans le cas où l’on déroulerait la boucle, proposez un ordonnancement des instructions et une allocation des instructions aux unités fonctionnelles en utilisant un seul multiplieur. Pour cela, remplissez la table d’occupation des ressources de la fin de page. On minimisera le temps de calcul par utilisation du pipeline. On ne se préoccupera pas des registres dans cette question en considérant que les 2 register file A et B en contiennent suffisamment.

3 Afin d’allouer les 2 multiplieurs, il est possible d’utiliser les instructions de chargement LDW au lieu de LDH, permettant ainsi de charger 2 données x(i) et x(i+1) simultanément. Proposer un ordonnancement permettant d’utiliser efficacement les 2 multiplieurs et minimisant le nombre de cycles. Remplissez la table d’allocation.

4 Quel temps de calcul peut on atteindre avec la version 2 du filtre ? Qu’est ce qui peut limiter l’efficacité du fonctionnement ?

5 Quels sont les avantages et les inconvénients des processeurs DSP VLIW par rapport aux DSP classiques à structure MAC/Harvard. Justifiez clairement vos réponses.

Page 49: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Annexe : Processeur TMS320C6x Ce processeur est doté d'une unité de traitement comportant 2 multiplieurs et 4 UAL comme indiqué sur le schéma ci-dessous. Le processeur ne peut transférer que deux données par cycle au maximum (en lecture et/ou écriture). Chaque register file A et B contiennent 16 regitres accessibles indépendamment.

M P Y A D DM P Y A D D M V STW A D D A D D

M P Y A D DS H L S U B STW STW A D D K B

A D D L D WS U B L D W B M V K N O P N O P

M P Y A D DM P Y A D D S T W S T W A D D K N O P

256256

Funct ionalUnit

.L1

Funct ionalUnit

.S1

Funct ionalUnit

. M 1

Funct ionalU n it

.D1

Funct ionalU n it

.D2

Funct ionalUnit

. M 2

Funct ionalUnit

.S2

Funct ionalU n it

.L2

Reg ister F ile A R e g iste r F ile B

Da ta M e m o ry Con troller

Internal Memory

DataData Address Address 1 1 DataData Address Address 2 2

Fetch

D ispatch U n it

Figure 1 : Schéma interne du TMS 320C6x

Instruction Description Nombre de

cycles Unités .M Unités .L Unités .S Unités .D

LDH Charge une donnée 16 bits venant de la mémoire dans un registre

5 - - - .D1 .D2

LDW Charge deux données 16 bits consécutives venant de la mémoire

5 - - - .D1 .D2

MPY Multiplication entre 2 registres, résultat dans un troisième

2 .M1 .M2

- - -

ADD Addition 1 - .L1 .L2

.S1

.S2 .D1 .D2

SUB Soustraction 1 - .L1 .L2

.S1

.S2 .D1 .D2

B Branchement 5 - - .S1 .S2

-

NOP aucune opération 1 - - - - Figure 2 : Jeu d’instructions du TMS 320C6x

Page 50: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Cycle .D1 .D2 .L1 .L2 .M1 .M2 .S1 .S2 NOP 1 LDH 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Table d’allocation des ressources Cycle .D1 .D2 .L1 .L2 .M1 .M2 .S1 .S2 NOP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Table d’allocation des ressources

Page 51: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

ENSSAT/EII3 – DEA STIR Lundi 17 janvier 2000

DS Architectures Spécialisées Synthèse de Haut Niveau

Problème 1 : Etude d’un circuit pour la mise en œuvre d’une FFT. On étudiera d'abord le calcul du papillon de la FFT, tâche élémentaire de l'algorithme, puis on s’intéressera à son implémentation 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 façons dont deux versions sont données ici et nommées respectivement version 1 et version 2. Les W sont directement issus de la mémoire contenant une table des cosinus et sinus. On les considérera donc comme des constantes. X = Xr + j Xi

Y = Yr + j Yi

X' = X'r + j X'i

Y' = Y'r + j Y'iWk = Wr + j Wi

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

X'r = (Xr + Wr.Yr) - Wi.YiX'i = (Xi + Wi.Yr) + Wr.YiY'r = 2.Xr - X'rY'i = 2.Xi - X'i

Tr = (Wr.Yr - Wi.Yi)Ti = (Wi.Yr + Wr.Yi)X'r = Xr + TrX'i = Xi + TiY'r = Xr – TrY'i = Xi – Ti

Version 1 Version 2 1. Représenter le graphe flot de données des calculs des versions 1 et 2 en indiquant les multiplications,

additions et soustractions sur des nombres réelles à mettre en œuvre. On exprimera les sorties X'r, X'i, Y'r et Y'i, les parties réelles et imaginaires des sorties X' et Y' en fonction des entrées.

2. Le temps d'un multiplieur est de 60ns, le temps d'un additionneur/soustracteur est de 30ns. On considérera

qu’une multiplication par 2 se fait directement par un décalage du registre d’entrée d’un opérateur. Quelle est le temps du chemin critique Tcc dans les deux cas ?

3. On s'intéresse à l'implémentation VLSI du calcul de ce papillon. La cadence d’exécution d’un papillon est

fixée à 360ns. On limitera le nombre de bus entre les mémoires et l’Unité de Traitement (UT) à deux, tout en autorisant le préchargement d’une donnée en registre. Combien d’opérateurs sont nécessaires ? Dans la suite du problème vous utiliserez une seule des versions du calcul des papillons en motivant votre choix1. Effectuer un ordonnancement du graphe pour respecter les contraintes.

4. Dessiner l’architecture de l’unité de traitement du circuit ainsi conçu. On ne cherchera pas à optimiser le

nombre de registres, en préférant dédier un registre à chaque donnée d’entrée (Yr, Yi, Wr, Wi, Xr, Xi). 5. On cherche maintenant à implanter la FFT sur 8 points selon le graphe classique donné ci dessous.

x0 x1 x2 x3 x4 x5 x6 x7

X0 X4 X2 X6 X1 X5 X3 X7

Les vecteurs d'entrée et de sortie x et X sont des nombres complexes. Peut on exploiter le calcul d’une suite de papillons afin de réduire le temps d’exécution de celui ci ? Quel est le temps de calcul d’une FFT sur N=8 points ?

1 Remarque : le choix de la version n’influence pas la notation.

Page 52: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Problème 2 : Filtre en treillis

x(n)

y(n)

+

x

D+

x

x +

D

x

+x

A2

M2

A1

M3

M1

M4 M5

A3 A4

x(n)

y(n)

+

xx

x +

D

x

+

x

D

D

3D

D

D

+

A2

M2

A1

M3

M1

M4 M5

A3 A4

4D 3D

Version 1 Version 2 Les réponses aux questions suivantes sont à donner pour les deux versions du filtre en treillis données ci dessus. Les multiplications Mi ont un temps d’exécution de 2 cycles tandis que les additions Ai ont un temps d’exécution de 1 cycle. Exprimez les chemins demandés en utilisant le formalisme ...→Mi→Ai→... 1. Donner les chemins entre les points mémoire ou l’entrée et la sortie. En déduire le temps du chemin critique

(Td défini au transparent n°95 du cours). 2. Donner les différentes boucles et en déduire le temps de la boucle critique (Tbc défini au transparent n°95). 3. Quelle est la signification de ces deux mesures ? Problème 3 : Mise en œuvre d'un filtre numérique sur DSP C54x Ce problème 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'intéressera à la structure cascade de ce filtre, c'est à dire lorsque :

∏=

==C

iC zHizHzHzHzH

121 )()()....().()( avec C = N / 2

Les calculs du filtre RII à structure cascade reposent sur les traitements de cellules élémentaires du second ordre. Chaque cellule d'indice c a en entrée ec(n) = Sc-1(n) la sortie de la cellule précédente (c-1), calculée au même temps n. Le calcul de la sortie de la cellule c, Sc(n) s'écrit sous forme canonique soit :

( )[ ]( )[ ]⎩

⎨⎧

−+−+=

−+−+=

)2(.)1(.)()()2(.)1(.)()(

21

21

nwbnwbnwnSnwanwanenw

cccc

cccc (1)

1. Pour une valeur de C cellules donnée, indiquer quel est:

• la taille mémoire occupée, • le nombre minimum de multiplications et d'additions (ou soustraction) à effectuer.

2. Dessiner le graphe flot de signal du filtre représentant les équations (1) des calculs d'une cellule. Dessiner

ensuite le graphe flot de données simplifié, c'est à dire sans les retards z-1. 3. L'architecture utilisée est celle d'un TMS320C54x. Quelles sont les principales améliorations apportées par

rapport à la génération précédente de processeurs DSP TMS320C25 de Texas instruments ? 4. Effectuer un ordonnancement du graphe flot précédent sur l'architecture du C54x qui permette de minimiser

le temps de calcul d'une cellule. On considère qu'au départ tous les registres sont initialisés à zéro. 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 manière dont vous placerez les données dans la mémoire.

5. Quel gain de cycles peut être apporté lorsque l’on considère le traitement des C cellules à la suite pour la réalisation du filtre ?

Page 53: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Annexe : architecture de l’UT du TMS320C54x

DB PBCBDB CB DB CB EB

DB

Structure de bus

• Deux bus de lecture-données (CB, DB) et un bus d’écriture-données (EB). • Un bus de programme (PB). • Quatre bus d’adresse associés (CAB, DAB, EAB, PAB) aux précédents.

Le C54x a la possibilité de générer jusqu’à deux données issues de la mémoire donnée dans un seul cycle. Celles ci sont adressées par deux registres auxiliaires d’adresse (ARAU0 et ARAU1). Le bus de programme (PB) peut également transporter une donnée de la mémoire programme (e.g. une table de coefficients) vers le multiplieur ou vers la mémoire données. Cela permet donc l’implémentation d’instructions à trois opérandes en un cycle. Ressource Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 T reg

A reg

B reg

Multiplier

Adder

ALU

Bus CB

Bus DB

Bus EB

Bus PB

Table d’occupation des ressources du C54x

Page 54: Master 2 Recherche SISEA | parcours syst mes embarqu s ...people.rennes.inria.fr/Olivier.Sentieys/teach/DS_2000-2010.pdf · Table 1 { Biblioth eque des op erateurs utilis es pour

Corrections DS janvier 2000 Problème 3 : Mise en œuvre d'un filtre numérique sur DSP C54x 1. Taille mémoire occupée : 4C coefficients, 2C Wc(n-i), C entrées/sorties

Nombre minimum d’opérations : 4C multiplications, 4C additions 2. SFG d’un filtre RII canonique figure 1. 3. Additionneur chaîné avec multiplieur, 2 accumulateurs, unité de calcul ACS/Viterbi, 2 bus de données,

mémoire DATA double port à 2 accès par cycle, 3 accès mémoire par cycle avec PB, EXP encoder, … 4. Voir figure 2. figure 1 figure 2 Ressource Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 T reg

A reg Ec(n) ADD1 W(n) ADD3 S(n)

B reg MUL1 MUL2 MUL3 MUL4

Multiplier PB*DB PB*DB PB*DB PB*DB

Adder

ALU A+B A+B A+B A+B

Bus CB Ec(n)

Bus DB W(n-1) W(n-2) W(n-2) W(n-1) W(n-1) W(n-2) W(n-2)

Bus EB W(n)

Bus PB A1 A2 B2 B1 A1 A2 B2

Instruction A=ec(n)

B=a1*w(n-1)

A=A+B

B=a2*w(n-2)

A=A+B

B=b2*w(n-2)

A=A+B

B=b1*w(n-1)

A=A+B

S(n)=A

5. Il est possible de débuter le calcul de la cellule suivante dès le cycle 5, d’où un gain de 2 cycles.

x+

x

x(n)

x +

x

+ y(n)D

D

+

x+

x

x(n)

x +

x

+ y(n)D

D

+ xw(n-1)

a1

+

ec(n)

+ +w(n) s(n)

xw(n-2)

a2

+

xw(n-2)

b2x

w(n-1)

b1

ADD1MUL1

MUL2 MUL3 MUL4

ADD3x

w(n-1)

a1

+

ec(n)

+ +w(n) s(n)

xw(n-2)

a2

+

xw(n-2)

b2x

w(n-1)

b1

xw(n-1)

a1

+

ec(n)

+ +w(n) s(n)

xw(n-2)

a2

+

xw(n-2)

b2x

w(n-1)

b1

ADD1MUL1

MUL2 MUL3 MUL4

ADD3