Vous êtes sur la page 1sur 7

Chapitre 4 : Architecture des DSP

4.1. CHAINE DE TRAITEMENT NUMERIQUE


D’une manière générale l’architecture d’un système de traitement numérique du signal peut être
représentée par la figure suivante.

CAN DSP CNA

Figure 3.1 : Chaîne typique d’un système de traitement numérique du signal


Dans un système temps réel on dispose en général de deux types de mémoires : - La mémoire système
utilisée par le noyau. - La mémoire d’application.
L’accès mémoires se fait de manière habituelle par lecture ou écriture en utilisant en général de pointeurs.
Ces deux zones mémoires doivent être distinctes et indépendantes. La zone mémoire système doit être
protégée Ceci permet de garder l’intégrité du fonctionnement du noyau, garant de la sûreté du système
complet.
4.2. ARCHITECTURE DES PROCESSEURS DE SIGNAUX NUMERIQUES.
Dans l'architecture Von-Neumann, le programme et les données sont enregistrés sur la même
mémoire. Chaque instruction contient la commande de l'opération à effectuer et l'adresse de la donnée à
utiliser, il faut donc souvent plusieurs cycles d'horloge pour exécuter une instruction (cette architecture
elle est très souple pour la programmation).

Mémoire Bus d’adresse


Données et CPU
Instructions Bus données

Figure 3.2 : Architecture Von-Neumann


La Figure 3.2 indique une architecture simple de Harvard, on sépare systématiquement la mémoire de
programme de la mémoire des données : l'adressage de ces mémoires est indépendant.

Mémoire de
Mémoire de bus d’adresse bus d’adresse
données
programme CPU
bus données bus données

Figure 3.3 : Architecture Harvard

Les échanges s'effectuent de manière double entre l'unité centrale et les deux mémoires, ce qui permet
une grande souplesse pour l'enregistrement et l'utilisation des données. La mémoire de programme est
également utilisée en partie comme mémoire de données pour obtenir encore plus de possibilités de
traitement avec des algorithmes complexes.
4.3. TMS320C542, FIXED-POINT DIGITAL SIGNAL PROCESSORS

TMS320C542

4.3.1. LES RESSOURCES DU TMS320C542

SRAM DRAM ROM Prog space CVDD DVDD MAX SPEED


- 10k 2k 64k 5v 5v 25ns
JTAG TDM BSP DMA HPI Timers PLL GPIO
1 1 1 - 1 1 H/W -

BSP : Buffered Serial Port


PLL : On-Chip Phase-Locked Loop
TDM : Time-Division Multiplexed Serial Port
JTAG : On-Chip Scan-Based Emulation Logic, IEEE Std 1149.1 Boundary Scan Logic
HPI : 8-Bit Parallel Host-Port Interface.
GPIO : General-Purpose Input Output.
4.3.2. ARCHITECTURE INTERNE TMS320C542
 ACCUMULATEURS
Le C54X contenant deux accumulateurs de 40 bits (A et B) mappés en mémoire (MMR) qui peuvent
servir de source et de destination pour l’ALU et pour le MAC.

39 32 31 16 0 15
AG (Bits de garde) AH (Bits de poids fort) AL (Bits de poids faible)

 LES BUS DU C542


Le C542 peut traiter un total de 64K mots de programme mémoire en utilisant le bus de programme
(PAB), bus lecture données (CAB, DAB) et bus d’écriture données (EAB).
 LES GENERATEURS D ’ADRESSES
Générateur d’adresse programme : PAGEN comprend six registres.
PC : Compteur de Programme.
RC : Compteur de Répétition.
BRC : Compteur de Répétition de Bloc.
RSA : Registre d’Adresse de Démarrage de BRC.
REA : Registre d’Adresse de Fin de BRC.
IPTR : Pointeur de Vecteur d’Interruption.
Générateur d’adresse donnée : DAGEN utilisé pour modifier la MMR
SP : Pointeur de Pile.
DP : Pointeur de Donnée.
BK : Taille du Registre Circulaire.
AR0-AR7 : Les Registres Auxiliaires.
ARP : Pointeur de Registre Auxiliaire

ARP AR0 BK lK 1

AR0
ARAU0
AR1
AR2 +/- % 0 B

AR3 DAB
AR4
AR5 AR0 BK 1

AR6 ARAU1
AR7
BK +/- % 0 EAB ou CAB

DB EB
 ALU UNIT

Exemple : Multiplication entiers 16 bits


; Int16 X,Y,R;
; Int32 A;
MPY *AR2,*AR3, A ; A = (Int32)X * Y;
STL A,*AR4 ; R = (Int16)A;

 Barrel shifter unit


Le shifter produit un décalage vers la gauche de 0 à 31 bits et un décalage vers la droite de 0 à 16 bits sur
les données d'entrée.
Les exigences de décalage sont définies dans le champ de comptage de décalage (ASM) de ST1 ou
définies dans le registre temporaire (TREG), qui est désigné en tant que registre de comptage de décalage.
Ce shifter et le détecteur d'exposant normalisent les valeurs dans un accumulateur en un seul cycle. Les
bits les moins significatifs (LSB) de la sortie sont remplis de 0 et les bits les plus significatifs (MSB)
peuvent être remplis de zéro ou étendus de signe, en fonction de l'état du bit de mode étendu-étendu
(SXM) de ST1. Des capacités de décalage supplémentaires permettent au processeur d'effectuer des
opérations de mise à l'échelle numérique, d'extraction de bits, d'arithmétique étendue et de prévention de
débordement.
Exemple:

ASM = #-1

AR0 = #3 ; AR0 = 3
B = A - *AR3<<16 ; B = P-Q
A = A + *AR3<<16 ; A = P+Q
*AR2+ = HI(A)<<ASM ; P' = (P+Q)/2 => (1800h)
*AR3+ = HI(B)<<ASM ; Q' = (P-Q)/2 => (1802h)

NB :

En base binaire, un décalage à gauche correspond à une multiplication par 2 et le décalage à


droite représente une division par 2.

 MAC UNIT
Exemple:
MAC *AR2+, *AR3+, A ; A = A + X[i] * Y[i];

 Comparator unit

Exemple 1 :

TC = (AR0 = = AR6) ; if AR0= AR 6, TC is set to 1; else, TC=0


TC = (AR0 > AR6) ; if AR 0 is greater than AR6, TC=1; else, TC=0
TC = (AR0 < AR4) ; if AR 0 is less than AR4, TC=1; else, TC=0

 EXPONENT UNIT

Exemple :
; L’accumulateur A contient une valeur sur 40 bits.
EXP A ; Calcule l’exposant de A et le stocke dans T
NORM A ; Normalise A en fonction de T
STL A,*AR3 ; Stocke la mantisse dans AR3
ST T,*AR4 ; Stocke l’exposant dans AR4