TD1_DSP_2GT_2014-2015
-
Upload
ahmedhaffari -
Category
Documents
-
view
382 -
download
48
description
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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
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
Cours DSP, TD 1ENET‘com 2014-2015 14
FIN