TD1_DSP_2GT_2014-2015

14
TD 1 DSP 2 ème année Génie Télécommunication 2014/201 5 Ecole Nationale d’Électronique et des Télécommunications de Sfax

description

TD1 DSP pour les étudiants de 2GT de l'enet'com

Transcript of TD1_DSP_2GT_2014-2015

Page 1: TD1_DSP_2GT_2014-2015

TD 1 DSP

2ème année Génie Télécommunication

2014/2015Ecole Nationale d’Électronique et des Télécommunications de Sfax

Page 2: TD1_DSP_2GT_2014-2015

Cours DSP, TD 1ENET‘com 2014-2015

Exercice 1 :

1) Donner les résultats après exécution de ces instructions :

SHLMB 0x11223344, 0xFE1A87C2, H ; H = ………..……………

MPY 0xFE1A87C2, 0x00000001, I ; I = ………..……………

MPY2 0x00010002, 0x00020002, J:K ; J = ………..……………

K = ……………………

MPY4 0x24252627, 0x01000101, J:K ; J = ………..……………

K = ……………………..

0X1A87C211

0X000087C2

0X00000004

0X00260027

0X00000002

0X00240000

2

Page 3: TD1_DSP_2GT_2014-2015

Cours DSP, TD 1ENET‘com 2014-2015

2) Donner les résultats après exécution de ces instructions, sachant que les registres A, B, C, D sont initialisés à zéro :

ADD2 0xEFFEEFFE, 0x21011012, A ; A=………………………

MPY 0xEFFEEFFE, 0x0FEA1001, B ; B=……………………….

MVKH 0x0005 , C ; C=……………………….

ADD4 0xEFFEEFFE, 0x11111111, D ; D=………………………

0x 10 FF 00 10

0x 0F 00 CF FE

0x 00 00 00 00

0x 00 0F 00 0F

3

Page 4: TD1_DSP_2GT_2014-2015

Cours DSP, TD 1ENET‘com 2014-2015

3) Soit le code suivant :

MVK .S1 0x10000, A2

MVK .S1 0x28, A1

[!A2] SUB .D1 A1, 1, A1

|| [ A2] ADD .S1 A5, A3, A3

Sachant que A5 = 0x10 et A3 = 0x25, quel est la valeur de A1 et A3

après l’exécution de ce code ?

A1 = …………………. Et A3 = ………………….0x 00000027 0x 00000025

4

Page 5: TD1_DSP_2GT_2014-2015

Cours DSP, TD 1ENET‘com 2014-2015

1) Soit l’instruction suivante : LDH *A0++ (2), A1

Sachant que A0 = 0x00001234 et que dans la mémoire à partir de

l’adresse 0x00001234 on a les données suivantes : 0x06, 0x76, 0x54,

0x12, 0x11, 0xAF, 0x72 et 0x52.

Quel est la valeur de A0 et A1 après l’exécution de cette instruction ?

1 cycle A0 = …………………. Et A1 = ………………….

5 cycles A0 = …………………. Et A1 = ………………….

0x 00001238

0x 00007606

0x XXXXXXXX

0x 00001238

Exercice 2 :

5

Page 6: TD1_DSP_2GT_2014-2015

Cours DSP, TD 1ENET‘com 2014-2015

2) Soit l’instruction suivante : LDW *++ A0, A1

Sachant que A0 = 0x00001234 et que dans la mémoire à partir de

l’adresse 0x00001234 on a les données suivantes : 0x06, 0x76, 0x54,

0x12, 0x11, 0xAF, 0x72 et 0x52.

Quel est la valeur de A0 et A1 après l’exécution de cette instruction ?

1 cycle A0 = …………………. Et A1 = ………………….

5 cycles A0 = …………………. Et A1 = ………………….

0x 00001238

0x 5272AF11

0x XXXXXXXX

0x 00001238

6

Page 7: TD1_DSP_2GT_2014-2015

Cours DSP, TD 1ENET‘com 2014-2015

3) Soit l’instruction suivante : LDW *A0++, A1

Sachant que A0 = 0x00001234 et que dans la mémoire à partir de

l’adresse 0x00001234 on a les données suivantes : 0x06, 0x76, 0x54,

0x12, 0x11, 0xAF, 0x72 et 0x52.

Quel est la valeur de A0 et A1 après l’exécution de cette instruction ?

1 cycle A0 = …………………. Et A1 = ………………….

5 cycles A0 = …………………. Et A1 = ………………….

0x 00001238

0x 12 54 76 06

0x XXXXXXXX

0x 00001238

7

Page 8: TD1_DSP_2GT_2014-2015

Cours DSP, TD 1ENET‘com 2014-2015

4) Soit l’instruction suivante : LDW *+A0, A1

Sachant que A0 = 0x00001234 et que dans la mémoire à partir de

l’adresse 0x00001234 on a les données suivantes : 0x06, 0x76, 0x54,

0x12, 0x11, 0xAF, 0x72 et 0x52.

Quel est la valeur de A0 et A1 après l’exécution de cette instruction ?

1 cycle A0 = …………………. Et A1 = ………………….

5 cycles A0 = …………………. Et A1 = ………………….

0x 00001234

0x 52 72 AF 11

0x XXXXXXXX

0x 00001234

8

Page 9: TD1_DSP_2GT_2014-2015

Cours DSP, TD 1ENET‘com 2014-2015

5) Dans la mémoire L1D et à partir de l'adresse 0x00001230, on a les

octets suivants : FE, A3, BF, 74, 59, A6, A1, 11, 61, C5, E0, 45, 6D, FF,

29, 5A, 4E, 58, 82, A0, FA, 52, 6B.

Sachant que la valeur initiale de A0=0x00001230, déterminer le contenu

des registres A0 et B0 après exécutions des instructions suivantes :

(Noté bien que les 4 cas sont indépendants)

1er cas : LDW .D1 *++A0(2), B0

Après 1 Cycle A0=………………,

B0=………………………

Après 5 Cycles A0=………………,

B0=………………………

2ème cas : LDH .D1 *A0++(2), B0

Après 1 Cycle A0=………………, B0=……………………

Après 5 Cycles A0=………………, B0=……………………

0x 00 00 12 38

0x 00 00 12 38

0x XX XX XX XX

0x XX XX XX XX

0x 45 E0 C5 61

0x 00 00 A3 FE

0x 00 00 12 34

0x 00 00 12 34

9

Page 10: TD1_DSP_2GT_2014-2015

Cours DSP, TD 1ENET‘com 2014-2015

5) Dans la mémoire L1D et à partir de l'adresse 0x00001230, on a les

octets suivants : FE, A3, BF, 74, 59, A6, A1, 11, 61, C5, E0, 45, 6D, FF,

29, 5A, 4E, 58, 82, A0, FA, 52, 6B.

Sachant que la valeur initiale de A0=0x00001230, déterminer le contenu

des registres A0 et B0 après exécutions des instructions suivantes :

(Noté bien que les 4 cas sont indépendants)

3ème cas : LDW .D1 *+A0(2), B0

Après 1 Cycle A0=…………………, B0=……………………

Après 5 Cycles A0=…………………, B0=……………………

4ème cas : LDW .D1 *++A0, B0

Après 1 Cycle A0=…………………, B0=……………………

Après 5 Cycles A0=…………………, B0=……………………

0x XX XX XX XX

0x XX XX XX XX

0x 45 E0 C5 61

0x 11 A1 A6 59

0x 00 00 12 30

0x 00 00 12 30

0x 00 00 12 34

0x 00 00 12 34

10

Page 11: TD1_DSP_2GT_2014-2015

Cours DSP, TD 1ENET‘com 2014-2015

Déterminer si les instructions exécutées sur le C64 suivantes sont valides. Si non, proposer une correction :

ADD2 .L2 A0, B0, B0

|| LDW .D2 *B1, B2:B3

|| LDB .D2 *A1, A4

LDW .D2 *B0, A0

|| STW .D1 A3, *A1

SUB4 .L1 A5, B5, A3

MVKH .L1 0x0123, A0

|| ADD .S2x B0, A1, A2

|| SUB .L1 A3, B6, A4

Valid : oui non Valid : oui non Valid : oui non

Correction si non: Correction si non: Correction si non: ADD2 .L2x A0, B0, B0|| LDW .D2 *B1, B2:B3|| LDB .D1 *A1, A4

LDW .D2 *B0, B0 || STW .D1 A3, *A1 SUB4 .L1x A5, B5, A3

MVKH .L2 0x0123, B1|| ADD .S2x B0, A1, B2|| SUB .L1x A3, B6, A4

Exercice 3 :

11

Page 12: TD1_DSP_2GT_2014-2015

Cours DSP, TD 1ENET‘com 2014-2015

MVK .L2 0x10, B1

ET1: ADD .L1 A2, A3, A4

MPY .M1 A4, A5, A6

ADD .L1 A6, A2, A4

SUB .L2 B1, 1, B1

[B1] B .S2 ET1

1) Ajouter les instruction NOP pour le bon fonctionnement du code sur un DSP C6000 :

Exercice 5 :

NOP

NOP 5

12

Page 13: TD1_DSP_2GT_2014-2015

Cours DSP, TD 1ENET‘com 2014-2015

2) Déterminer le nombre de cycle pour exécuter le code :

16 x 11 = 176 cycles

3) Réécrire le code en optimisant le nombre de cycle d’exécution :

MVK .L2 0x10, B1ET1: SUB .L2 B1, 1, B1[B1] B .S2 ET1

ADD .L1 A2, A3, A4MPY .M1 A4, A5, A6NOPADD .L1 A6, A2, A4NOP

4) Déterminer de nouveau le nombre de cycle pour exécuter le code optimisé et déduire le pourcentage de gain :

16 x 7 = 112 cycles => Gain= 36%13

Page 14: TD1_DSP_2GT_2014-2015

Cours DSP, TD 1ENET‘com 2014-2015 14

FIN