Vous êtes sur la page 1sur 3

TD DSP

Exercice1  :
Expliquer les instructions suivantes :

ADD .L1 A3, A7, A8 Additionner A3 et A7 et stocker le résultat dans A8

SUB .S1 A1, 1, A2 retrancher 1 de A1 et stocker le résultat dans A2

MPY .M2x A7, B7, B6 LSB(A7)* LSB(B7)---> B6

|| MPYH .M1x A7, B7, A6 MSB(A7)* MSB(B7)----> A6

LDH .D2 *B2++,B7 Charger B2 -----> B7 , incrémenter B2

LDH .D1 *A2++, A7 Charger A2 -----> A7 , incrémenter A2

STW .D1 A1, *+A4[20] stocker le contenu de A1 dans l’adresse spécifié par le registre A4 décalé
par 20 mots. Chaque mot représente 32 bits=4 octets donc 20 mots=80 octets.

MVK .S1 0x20, A1; déplacer les 16 LSB de 0x20 vers le registre A1

Loop: MVK .S1 0x10, A4; déplacer les 16 LSB de 0x10 vers le registre A4

MVKH .S1 0x150000, A4; déplacer les 16 MSB de 0x1500 vers les MSB de A4

… ..

… ..

SUB .S1 A1, 1, A1; Decrémenter A1

[A1] B .S1 loop; Branchement à loop si A1≠ 0

NOP 5; 5 instruction de No operation

STW .D1 A3,*A7; stocker le contenu de A3 dans l’adresse spécifié par A7

Exercice2:
Indiquer valide ou non valide pour les instructions suivantes

LDW .D1 *A1,A2 le code est valide

|| LDW .D2 *B1,B2

LDW .D1 *A1,A2 le code n’est pas valide

|| LDW .D2 *A3,B2

Les registres adresses doivent être du même chemin que l’unité .D


ADD .L1x A1, B1, A0 le code est valide

|| MPY .M2x A2, B2, B3

ADD .L1x A1, B1, A0 le code n’est pas valide

|| MPY .M1x A2, B2, B3

Pour le chemin croisé, la destination dépend de l’unité utilisée

LDW .D1 *A0, B1 le code est valide

||STW .D2 A1, *B2

LDW .D1 *A0, B1 le code est valide

||LDW .D2 *B2, A1

LDW .D1 *A0, A1 le code n’est pas valide

||STW .D2 A2, *B2

Le chargement et le stockage en parallèle ne peuvent pas être du même chemin de registres

Exercice 3:
Si on désire avoir un tampon circulaire de 128 octets dans BK1 pointé par le registre B5. Donner la
valeur de AMR

1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0

Exercice 4  :
Que peut on mettre en parallèle ?

Loop :

LDH .D1 *A8++, A2

LDH .D1 *A9++, A3

NOP 4

MPY .M1 A2, A3, A4

NOP

ADD .L1 A4 , A6, A6

SUB .L2 B0, 1,B0


[B0] B .S1 loop

NOP 5 

Correction:

Loop :

LDH .D1 *A8++, A2

|| LDH .D2 *B9++, B3

NOP 4

MPY .M1x A2, B3, A4

NOP

ADD .L1 A4 , A6, A6

SUB .L2 B0, 1,B0

[B0] B .S1 loop

NOP 5 

Exercice 5: Pipeline

Vous aimerez peut-être aussi