Vous êtes sur la page 1sur 14

Ecole Nationale dlectronique et des

Tlcommunications de Sfax

2me anne
Gnie Tlcommunication

TD 1 DSP

2014/2015

Exercice 1 :
1) Donner les rsultats aprs excution de ces instructions :
SHLMB

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

MPY

0xFE1A87C2, 0x00000001, I ;

I = ..

MPY2

0x00010002, 0x00020002, J:K ;

J = ..

0X1A87C211
0X000087C2
0X00000004

K =
MPY4

0x24252627, 0x01000101, J:K ;

0X00000002

J = ..

0X00260027

K = ..

0X00240000

ENETcom 2014-2015

Cours DSP, TD 1

2) Donner les rsultats aprs excution de ces instructions, sachant que les
registres A, B, C, D sont initialiss zro :
ADD2 0xEFFEEFFE, 0x21011012, A

0x 10 FF 00 10
; A=

MPY 0xEFFEEFFE, 0x0FEA1001, B

; B=.
0x 0F 00 CF FE

MVKH 0x0005 , C
ADD4

; C=.
0x 00 00 00 00

0xEFFEEFFE, 0x11111111, D

ENETcom 2014-2015

Cours DSP, TD 1

; D=
0x 00 0F 00 0F

3) Soit le code suivant :


MVK

.S1

0x10000, A2

MVK

.S1

0x28, A1

[!A2]
||

[ A2]

SUB

ADD

.D1

.S1

A1, 1, A1

A5, A3, A3

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


aprs lexcution de ce code ?
A1 = .

Et

0x 00000027
ENETcom 2014-2015

Cours DSP, TD 1

A3 = .

0x 00000025
4

Exercice 2 :

1) Soit linstruction suivante : LDH *A0++ (2), A1


Sachant que A0 = 0x00001234 et que dans la mmoire partir de
ladresse 0x00001234 on a les donnes suivantes : 0x06, 0x76, 0x54,
0x12, 0x11, 0xAF, 0x72 et 0x52.
Quel est la valeur de A0 et A1 aprs lexcution de cette instruction ?
1 cycle

A0 = .

5 cycles

A0 = .

Et A1 = .

0x 00001238

0x XXXXXXXX

Et A1 = .

0x 00001238

ENETcom 2014-2015

Cours DSP, TD 1

0x 00007606

2) Soit linstruction suivante : LDW *++ A0, A1


Sachant que A0 = 0x00001234 et que dans la mmoire partir de
ladresse 0x00001234 on a les donnes suivantes : 0x06, 0x76, 0x54,
0x12, 0x11, 0xAF, 0x72 et 0x52.
Quel est la valeur de A0 et A1 aprs lexcution de cette instruction ?
1 cycle

A0 = .

5 cycles

A0 = .

Et A1 = .

0x 00001238

0x XXXXXXXX

Et A1 = .

0x 00001238

ENETcom 2014-2015

Cours DSP, TD 1

0x 5272AF11

3) Soit linstruction suivante : LDW *A0++, A1


Sachant que A0 = 0x00001234 et que dans la mmoire partir de
ladresse 0x00001234 on a les donnes suivantes : 0x06, 0x76, 0x54,
0x12, 0x11, 0xAF, 0x72 et 0x52.
Quel est la valeur de A0 et A1 aprs lexcution de cette instruction ?
1 cycle

A0 = .

5 cycles

A0 = .

Et A1 = .

0x 00001238

0x XXXXXXXX

Et A1 = .

0x 00001238

ENETcom 2014-2015

Cours DSP, TD 1

0x 12 54 76 06

4) Soit linstruction suivante : LDW *+A0, A1


Sachant que A0 = 0x00001234 et que dans la mmoire partir de
ladresse 0x00001234 on a les donnes suivantes : 0x06, 0x76, 0x54,
0x12, 0x11, 0xAF, 0x72 et 0x52.
Quel est la valeur de A0 et A1 aprs lexcution de cette instruction ?
1 cycle

A0 = .

5 cycles

A0 = .

Et A1 = .

0x 00001234

0x XXXXXXXX

Et A1 = .

0x 00001234

ENETcom 2014-2015

Cours DSP, TD 1

0x 52 72 AF 11

5) Dans la mmoire 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, dterminer le contenu
des registres A0 et B0 aprs excutions des instructions suivantes :
(Not bien que les 4 cas sont indpendants)
1er cas :

LDW .D1 *++A0(2), B0

Aprs 1 Cycle
Aprs 5 Cycles

A0=,
0x 00 00 12 38 B0=
0x XX XX XX XX
A0=,
0x 00 00 12 38

B0=
0x 45 E0 C5 61

2me cas :

LDH .D1 *A0++(2), B0

Aprs 1 Cycle

A0=,
0x XX XX XX XX
0x 00 00 12 34 B0=

Aprs 5 Cycles
ENETcom 2014-2015

A0=,

0x 00 00 12 34
Cours DSP, TD 1

B0=
0x 00 00 A3 FE
9

5) Dans la mmoire 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, dterminer le contenu
des registres A0 et B0 aprs excutions des instructions suivantes :
(Not bien que les 4 cas sont indpendants)
3me cas :

LDW .D1 *+A0(2), B0

Aprs 1 Cycle

A0=,
0x XX XX XX XX
0x 00 00 12 30 B0=

Aprs 5 Cycles

A0=,
0x 00 00 12 30

B0=
0x 45 E0 C5 61

4me cas :

LDW .D1 *++A0, B0

Aprs 1 Cycle

A0=,
0x 00 00 12 34 B0=
0x XX XX XX XX
A0=,
B0=

Aprs 5 Cycles
ENETcom 2014-2015

0x 00 00 12 34

Cours DSP, TD 1

0x 11 A1 A6 59
10

Exercice 3 :
Dterminer si les instructions excutes 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

Valid :

oui

non

.L2x A0, B0, B0

|| LDW

.D2 *B1, B2:B3

|| LDB

.D1 *A1, A4

ENETcom 2014-2015

.D2

*B0, A0

|| STW

.D1

A3, *A1

|| ADD

.S2x

B0, A1, A2

A5, B5, A3

|| SUB

.L1

A3, B6, A4

SUB4 .L1

Correction si non:
ADD2

LDW

Valid :

oui

non

Correction si non:
LDW

.D2

*B0, B0

|| STW

.D1

A3, *A1

SUB4 .L1x A5, B5, A3

Cours DSP, TD 1

MVKH

Valid :

.L1

0x0123, A0

oui

non

Correction si non:
MVKH .L2

0x0123, B1

|| ADD

.S2x

B0, A1, B2

|| SUB

.L1x

A3, B6, A4

11

Exercice 5 :
1) Ajouter les instruction NOP pour le bon fonctionnement du code
sur un DSP C6000 :
MVK .L2 0x10, B1
ET1:

ADD

MPY

.L1 A2, A3, A4

.M1

A4, A5, A6

NOP
ADD .L1 A6, A2, A4
SUB
[B1]

.L2 B1, 1, B1

B .S2 ET1
NOP

ENETcom 2014-2015

Cours DSP, TD 1

12

2) Dterminer le nombre de cycle pour excuter le code :


16 x 11 = 176 cycles
3) Rcrire le code en optimisant le nombre de cycle dexcution :
MVK .L2 0x10, B1
ET1: SUB .L2 B1, 1, B1
[B1] B .S2 ET1
ADD .L1 A2, A3, A4
MPY .M1
A4, A5, A6
NOP
ADD .L1 A6, A2, A4
NOP
4) Dterminer de nouveau le nombre de cycle pour excuter le
code optimis et dduire le pourcentage de gain :
16 x 7 = 112 cycles => Gain= 36%
ENETcom 2014-2015

Cours DSP, TD 1

13

FIN

ENETcom 2014-2015

Cours DSP, TD 1

14