Vous êtes sur la page 1sur 73

Plan de cours

• Introduction: généralités
• Ch1 : Architecture des DSPs conventionnels
• Ch2: Nouvelles architectures des DSPs
• Ch3 : Flot de développement &Arithmétique des DSPs

2
Plan de cours

• Introduction:généralités
• Ch1 : Architecture des DSPs conventionnels
• Ch2: Nouvelles architectures des DSPs
• Ch3 : Flot de développement &Arithmétique des DSPs

3
Traitement numérique du signal
Pourquoi faire du traitement numérique du signal ?

Les principaux avantages du calcul numérique par rapport au calcul


analogique s'appliquent aussi au traitement du signal. On a par
exemple :
Grande résistance aux bruits:
•variations des tensions d'alimentation
•variations de température
•interférences électromagnétiques (EMI)
Précision arbitraire
Stabilité dans le temps
Stockage des données sans dégradation
Duplication des valeurs sans altération
Programmation flexible
Développement rapide

Introduction 4
Traitement numérique du signal
Exemples d’applications: Exemples d’algorithmes:

Radars et sonars Filtrage


(Télé)communications : Transformées
• modems Codage/décodage
• Réseaux Compression/décompression
•téléphones cellulaires Cryptage/décryptage
Disques durs Contrôle
Appareils audio Reconnaissance de la parole
• lecteurs CD, DVD, MP3. . . Synthèse de signaux
• prothèses auditives Elimination d'échos
•Synthétiseurs Estimation spectrale
• reconnaissance de la parole
Vidéo
Automobile
Robotique

Introduction 5
Traitement numérique du signal

Échantillonnage +
Filtre anti-repliement Traitement
Conversion

Filtrage Blocage + Conversion

 De quelles solutions dispose-t-on pour effectuer ce travail?

Introduction 6
Chaine de traitement numérique du signal
Signal original grandeur
physique
Signal traité

Capteur Signal numérique

Adaptation du signal
G d’entrée
(gain+démodulation)
MEM

Filtre anti-repliement
Quantification DSP

Filtre de
CAN CNA
E/S reconstitution

Échantillonnage
fs

Introduction 7
Chaine de traitement numérique du signal
Filtre anti-repliement

Phénomène de repliement spectral ou aliasing:

•Si la fréquence d’entrée f est supérieure à fs/2 (fs est la fréquence


d’échantillonnage)
•Solution: ne pas injecter à l’entrée de l’échantillonneur de signal dépassant la
valeur critique fs/2

Éviter le repliement spectral:

•Filtrage du signal analogique par un filtre passe-bas (appelé filtre anti-


repliement ou anti-aliasing) avant son injection dans l’échantillonneur.
•Filtre anti-repliement idéal: pente infinie
•Filtre anti-repliement réel: pente finie induisant le passage d’une partie du
spectre au delà de la fréquence critique. D’où la présence d’un repliement
spectral local.

Introduction 8
Chaine de traitement numérique du signal
Convertisseur AN et NA
Echantillonnage: capteur analogique
Respecter le théorème de Shannon et laisser à la machine le temps
d’effectuer ses calculs
Choix de la fréquence d’échantillonnage adéquate à l’application

Introduction 9
Chaine de traitement numérique du signal
Convertisseur AN et NA

Quantification du signal

En sortie d’un échantillonneur bloqueur: signal analogique

Conversion assurée par un circuit appelé convertisseur analogique numérique:


numérisation du signal

Transformation d’une valeur analogique d’entrée (tension ou courant) en un


mot binaire codée sur n bits (n est un paramètre important dans un convertisseur:
résolution)

Erreur de quantification maximale: exemple


•Les 8 bits donnent une résolution de 256 mots binaires possibles
•Erreur de quantification maximale du convertisseur est: 1/256 par pas

Introduction 10
Chaine de traitement numérique du signal
Convertisseur AN et NA
La quantification est l’approximation des valeurs d’un signal x(n) par un multiple entier du
pas de quantification q. On notera

xQ( n)  Q[ x(n)]  k.q


L’erreur de quantification est

en  xQ ( n )  x(n)
L’effet de cette quantification est de superposer au signal d’origine un signal de bruit
blanc uniformément répartis e(n).
La variance du bruit e(n)est équivalente à la puissance du bruit:

q2
Pa   2
e 
12
Introduction 11
Chaine de traitement numérique du signal
Liaisons convertisseurs / DSP
Précision d’un convertisseur:
La précision est différente de la résolution (nombre de bits nécessaires pour
quantifier le signal)
La précision est le rapport entre une valeur binaire obtenue en sortie du
convertisseur pour une valeur d’entrée donnée et la valeur binaire qu’il aurait fallu
obtenir en théorie

Notion de dynamique:
intervalle entre les valeurs min et max: doit être le plus étendu possible

CAN/CNA: capacité de transformer les signaux analogiques en valeurs numériques


et réciproquement

Nécessité de communication de ces composants avec les DSPs

Introduction 12
Chaine de traitement numérique du signal
Liaisons convertisseurs / DSP

Liaisons parallèles
•utilisation des bus de données // du DSP
•Augmentation de la résolution des convertisseurs complication des circuits
imprimés et donc le prix de fabrication

 Liaisons séries synchrones


•Moins gourmandes en nombre de liaisons électriques et donc plus facile et moins
coûteuse à intégrer sur une carte

Il faut disposer d’au moins 3 lignes:


•Ligne d’horloge: valide la donnée numérique présente sur la ligne de données au
même instant
•Ligne de données
•Ligne de synchronisation: permet de connaître le début de chaque mot binaire
transféré
Introduction 13
Nécessité de DSP
un peu d’histoire!!
Les DSP ont été initialement développés pour des applications de radars
militaires et de télécommunications cryptées dans les années 70.

C'est Texas Instruments® qui en 1978 introduit un DSP pour la synthèse de la


voix pour des applications très grand public. Il aura fallu 15 ans supplémentaires
pour que les DSP deviennent des composants incontournables de l'électronique
grand public.
Des microprocesseurs aux DSPs
Le premier ordinateur électronique qui a vu le jour est ’ENIAC(Electronical
Numerical Integrator And Calculator)

Inconvénients de cette machine: lourdeur de programmation et complexité.

Elle dispose de 2 mémoires séparées: une pour les données et l’autre pour les
instructions du programme Proposition de John Von Neumann: une seule
mémoire centrale afin de simplifier la structure de l’ENIAC.

Introduction 14
C’est quoi un DSP?
RISC/CISC:
CISC ( Complex Instruction Set Computer): décomposition de chaque
instruction en une suite d’opérations simples permises par le circuit interne
du processeur
•Exemple: le noyau du processeur 8032 requiert 12 cycles machines par instruction.
Certaines instructions, comme la multiplication, peuvent ainsi demander 36 cycles
machines
•Problème principal: le calcul de la charge logicielle du processeur est très difficile du
fait de la très large variabilité du nombre de cycles nécessaires pour l’exécution
d’une instruction
•Besoin des applications « temps réel »: on ne dispose que d’un laps de temps
donné pour réaliser certains calculs (ex: algorithme de traitement audionumérique en
temps réel)

RISC (Reduced Instruction Set Computer)


•Exécution d’une instruction en un seul cycle d’horloge suite à l’optimisation du
silicium afin de restreindre le jeu d’instruction

Introduction 15
C’est quoi un DSP?
Un DSP est un microprocesseur RISC dont la structure et le jeu d’instructions sont
optimisés pour une exécution la plus rapide possible des algorithmes de traitement
du signal

Un DSP exécute une instruction en un cycle d’horloge (1 opération = 1instruction)

Les DSPs réalisent 4 principaux types de calculs pour lesquels ils doivent
être optimisés:

•Arithmétique/Logique: +,-, binaires


•Décalage logiques et arithmétiques lors de l’alignement des virgules
•Multiplication: opération assez courante en traitement du signal. Les DSPs
disposent d’un multiplicateur câblé afin d’assurer l’exécution la plus rapide que
possible
•Adressage: besoin d’avoir des accès spécifiques aux données en mémoire avec le
minimum d’opérations depuis l’UAL

Introduction 16
Profils d’utilisation du DSP

• Embarqué • Haute performance

– Faible coût unitaire – Puissance : Calcul intensif

– Faible consommation : – Parallélisme


part importante de la • Multiplication des
consommation pour la unités de calcul
mémoire internes
• Interfaces multi-DSP
– Architecture limitée au
strict nécessaire – Interface avec un
ordinateur hôte
– Temps réel

Introduction 17
Applications des DSP

 Communications  Image / vidéo


 Filaire (xDSL, câble)  Compression/Codage
 Sans fil (cellulaires,  Composition
télévision numérique,  Traitement
radio numérique)
 Modem
 Cryptage

 Audio  Militaire
 Mixage et effets  Imagerie : radar, sonar…
 Suppression de bruit  Cryptographie
 Annuleur d’echo  Guidage de missiles

Introduction
18
Applications des DSP

 Automatisation  Biomédical
 Commande de machines  Équipements de monitoring
 Contrôle de moteurs  Signaux biophysiques
 Robots  ElectroEncéphaloGramme
(EEG)
 ElectroCardioGramme (ECG)
 Radiographie

 Electronique Automobile  Instrumentation


 Contrôle du moteur  Analyseurs de spectre
 Assistance au freinage  Générations de fonctions
 Aide à la navigation  Analyseurs de régimes
 Commandes vocales
transitoires

Introduction
19
Ch1 : Architecture des DSPs conventionnels
Plan de cours

• Introduction:Généralités
• Ch1 : Architecture des DSPs conventionnels
• Ch2: Nouvelles architectures des DSPs
• Ch3 : Flot de développement &Arithmétique des DSPs

21
Chapitre 1
• Architectures des DSPs conventionnels
1. Introduction
2. Unité de traitement
3. Unité de mémorisation
4. Unité de contrôle
Modélisation d’un processeur

IP (Instruction Processor):Unité fonctionnelle (UF) qui interprète les instructions


et commande les autres UF
DP (Data Processor): UF qui modifie ou transforme les données
IM(Instruction memory):stocke les instructions
DM(Data memory): stocke les données traitées par le DP
EIU (External Interface Unit): contrôle les accès aux données ou instructions
externes, ou à d’autres processeurs.

23
Chapitre1 DSP
Architecture des DSPs conventionnels
Principe:
L’architecture des premiers DSPs est directement inspirée de la
structure des filtres numériques
Exemple Filtre FIR sur N points:

24
Chapitre1 DSP
Chapitre 1
Architectures des DSPs conventionnels
1. Introduction
2. Unité de traitement
3. Unité de mémorisation
4. Unité de contrôle

25
Unité de traitement spécialisée

• Exécution d’un MAC en un cycle


• Accumulateur adapté au MAC incorporant
des bits supplémentaires (bits de garde)
afin de gérer le pbm de débordement

26
Chapitre1 DSP
Exemple: le TMS320 C50

27
Chapitre1 DSP
Mesure de performances

28
Chapitre1 DSP
Exercice d’application1
Soit un filtre FIR dont le schéma de fonctionnement dans le domaine temporel est le suivant :

h1 = h5 = 0,1; h2 = h4 = -0,3; h3 = 0,5.

29
Chapitre1 DSP
On suppose que l’on dispose d’un calculateur de type DSP conventionnel.

1. Quel est l’ordre de ce filtre ?

2. Quel est le nombre de multiplications et d’additions, puis le nombre de MACs


pour le calcul d’un échantillon yn en sortie de ce filtre ?

3. Le DSP qu’on utilise possède une période de cycle de 100 ns. Quelle est dans ce
cas la fréquence d’échantillonnage maximale du signal pour traiter ce filtre en
temps réel sur ce DSP?

4. Quelle est la complexité algorithmique (calculatoire) de ce filtre (équivalente à


la puissance de calcul minimale du DSP pour réaliser ce filtre) en MMACS puis
en MOPS ?

5. Quel est le nombre de mots mémoires nécessaires à l’exécution du calcul


d’un échantillon y(n) en sortie du filtre ? Justifier.

30
Chapitre1 DSP
Chapitre 1
Architectures des DSPs conventionnels
1. Introduction
2. Unité de traitement
3. Unité de mémorisation
4. Unité de contrôle

31
Unité de mémorisation

Soit 4 accès mémoire par instruction

Objectif: - Réduire le nombre d’accès mémoires


- Tous les accès mémoires TAP en un cycle
32
Chapitre1 DSP
Processeurs: Von Neumann Vs Harvard

 Von Neuman  Harvard


 Un seul chemin d'accès à la  Séparation des mémoires
mémoire programme et données
 Architecture des processeurs  Meilleure utilisation du CPU :
d’usage général (Pentium,  Chargement du programme et des
68000) données en parallèle
 Architecture des DSP

Chapitre1 DSP 33
Processeurs: Von Neumann Vs Harvard

La structure Von Newmann:

Principe: aucune différence entre une donnée et une instruction

Disposer d’une seule mémoire dans laquelle l’unité de contrôle vient puiser
les informations nécessaires pour le déroulement de son programme

Avantage: simplification de la structure des ordinateurs

Inconvénient: une instruction requiert deux accès à la mémoire une pour la


lecture de l’instruction et l’autre pour la recherche de la donnée

Exemple: Y = A + B
Lecture de l’instruction, lecture de A, lecture de B et exécution du calcul,
rangement du résultat dans la variable Y: 4 accès mémoire

34
Chapitre1 DSP
Processeurs: Von Neumann Vs Harvard

La structure Harvard:
Principe: séparation des mémoires de données et de programme comme pour l’ENIAC

Avantage: possibilité de l’accès simultané à l’instruction et à la donnée associée qui est


plus rapide qu’un accès séquentiel

Exemple: Y = A + B
Lecture simultanée du code de l’instruction et de la variable B dans la mémoire données.
La variable A était lue lors d’une précédente opération

Par rapport à la structure Newmann, la structure Harvard est deux fois plus rapide.

Inconvénient: complication de l’électronique car toute l’architecture des bus sera


doublée

35
Chapitre1 DSP
Processeurs: Von Neumann Vs Harvard
1) DSPs: Architecture Harvard

–Séparation de la mémoire donnée et de la mémoire programme


–Fetch instruction pipeliné en même temps que fetch opérande

36
Chapitre1 DSP
Processeurs: Von Neumann Vs Harvard
2) DSPs: Modèle load-store
Localisation des opérandes 2 modèles:

37
Chapitre1 DSP
Processeurs: Von Neumann Vs Harvard
3) Solution1: Architecture Harvard modifiée

–Autorisation de mémorisation de données


dans l’IM:
IM : Instructions et coefficients du filtre
DM: échantillons d’entrée
–Cache pour charger les instructions
fréquentes: Éviter les conflits d’accès
données et instructions

NB: En général, les DSP n’ont pas


de mémoire cache pour les données

Chapitre1 DSP 38
Processeurs: Von Neumann Vs Harvard

3) Solution 2: Extension à 3 mémoires

–2 mémoires données DM séparées


–En 1 cycle: Fetch l’instruction
pipeliné avec fetch de 2 opérandes
(si les temps d’accès aux mémoires
DM1, DM2 et IM sont identiques)

Ex: DSP5600x, DSP96002,


Zilog Z893

Chapitre1 DSP 39
Processeurs: Von Neumann Vs Harvard
3) Solution 3: Mémoire multi-accès
– Mémoire rapide autorisant plusieurs accès séquentiels par
cycle instruction

Cycle instruction

Ad. 1 2 3 4

Donnée 1 2 3 4

Zoran ZR3800x: 3 accès mémoire par cycle


Lucent DSP32: 4 accès mémoire par cycle

Chapitre1 DSP 40
Processeurs: Von Neumann Vs Harvard

3) Solution 4: Mémoire multi-ports

-DM est une mémoire multi-ports


-Plusieurs bus de données: plusieurs
accès aux données
Avantage: programmation
simplifiée
Inconvénients: Electronique
beaucoup plus complexe donc
plus coûteuse.

Chapitre1 DSP 41
Les types d’adressages usuels

Les DSPs utilisent les modes d’adressages classiques: codage


dans l’instruction de la position d’une donnée à utiliser

Chapitre1 DSP 42
Adressages supplémentaires dans les DSPs
1- Adressage circulaire en modulo

But:
–Éviter l’opération d’écriture x(i)=x(i-1)
–Ne conserver que les N dernières valeurs des entrées ou d’un
calcul précédent comme dans une FIFO.
Principe: Utiliser des pointeurs mobiles pour repérer le début et la
fin des données : tampons circulaires
Nombre de tampons circulaires
simultanés
AT&T DSP16xx : 1
TMS320C5x : 2
Motorola 5600x : 4
ADSP : 8

Chapitre1 DSP 43
Adressages supplémentaires dans les DSPs
1- Adressage circulaire en modulo (suite)

Gestion des pointeurs:


― Gérer les pointeurs par programme: Diminution très importante des performances
― Registre auxiliaire indiquant la longueur du tampon: l’adresse de départ doit en
général être un multiple de la puissance de deux supérieure à la longueur,
TMS320C3x/4x, ADSP, Motorola,...
Exemple: Tampon circulaire de 48 octets, adresse de départ multiple de 64,
– Registres auxiliaires indiquant le début et la fin du tampon circulaire, Ex:
TMS320C5x, AT&T DSP16xx
Chapitre1 DSP 44
Adressages supplémentaires dans les DSPs
Implémentation

Buffer linéaire Buffer circulaire


Chapitre1 DSP 45
Adressages supplémentaires dans les DSPs
2- Adressage en bit reverse:
La transformée de Fourier

Rappel sur la transformée de Fourrier

Considérons un son musical capté par un microphone. Si on relie ce microphone à


un oscilloscope, on obtiendra le signal x(t) : Approche temporelle

 Pour chaque fréquence f , X(f) représente le poids de celle-ci dans le son:


Approche fréquentielle ou "spectrale".

 Le passage de x(t) à X(f) est appelé transformation de Fourier (TF). La


formulation mathématique de cette transformation est la suivante :
+∞
𝑋 𝑓 = 𝑥 𝑡 exp −𝑗2𝜋𝑓𝑡 𝑑𝑡, 𝑡 ∈ 𝑅, 𝑓 ∈ 𝑅
−∞

Chapitre1 DSP 45
Adressages supplémentaires dans les DSPs
Rappel sur la transformée de Fourrier (suite)
 Physiquement, exp(j2πft) est un vecteur tournant à la fréquence f. La TF est le fait
d’identifier la quantité de la fonction x(t) qui tourne à la fréquence f =
a.exp(j2πft), a= cte. Il s’agit de déterminer cette constante a, on multiplie donc
x(t) par le vecteur tournant en sens inverse: exp(-j2πft).

 En revanche, tout ce qui tourne à une vitesse différente va tourner aussi dans le
repère tournant et donc va prendre des valeurs tantôt positives, tantôt négatives.
Ces valeurs vont donc s'annuler quand on intègre sur le temps de -∞ à +∞.

 Pour un signal numérique x(k)=x(k𝑇𝑒 ), 𝑇𝑒 est la période d’échantillonnage, la


TF de x(k) s’exprime comme:
+∞

𝑋 𝑓 = 𝑥 𝐾𝑇𝑒 exp⁡(−𝑗2𝜋𝑓𝐾𝑇𝑒 )
𝑘=−∞

Chapitre1 DSP 46
Adressages supplémentaires dans les DSPs

Rappel sur la transformée de Fourrier (suite)

 Comme le calculateur est limité dans sa puissance de calcul, il ne peut fournir ces résultats
que pour un nombre limité de fréquence f, qu’il est naturel de choisir multiples d’un
certain pas de fréquence Δf. Un choix simplificateur intéressant consiste à prendre
Δf=1/NTe. Pour 0<n< N. La TFD s’exprime comme:

𝑁−1
𝑘𝑛
𝑋 𝑛 = 𝑥 𝑘 exp⁡(−𝑗2𝜋 )
𝑁
𝑘=0

Chapitre1 DSP 47
Adressages supplémentaires dans les DSPs
Ecriture matricielle de la TFD

𝑊𝑁 le twiddle factor égal à exp(-j2π/N)


1⁡⁡⁡⁡⁡⁡⁡ 1⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡ 1⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡…⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡ 1
𝑋(0) 1⁡⁡⁡⁡⁡⁡⁡⁡ 𝑊𝑁1 ⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡ 𝑊𝑁2 ⁡⁡⁡⁡ ⁡⁡⁡⁡⁡⁡⁡⁡⁡… ⁡⁡⁡⁡⁡𝑊𝑁𝑁−1 𝑥(0)
𝑋(1) 2(𝑁−1) 𝑥(1)
1⁡⁡⁡⁡⁡⁡⁡⁡ 𝑊𝑁2 ⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡ ⁡⁡⁡⁡𝑊𝑁4 ⁡⁡ ⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡… ⁡⁡⁡⁡⁡⁡⁡𝑊𝑁
⋮ = ⁡⁡ ⁡⁡⋮ ⋮ ⁡⁡⁡⁡⁡⁡⋮⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡ ⋮ ⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⋮ × ⋮
𝑋(𝑁 − 2) 𝑥(𝑁 − 2)
⁡⁡1 ⁡⁡⁡𝑊𝑁𝑁−2 ⁡⁡⁡⁡⁡⁡⁡⁡⁡𝑊𝑁2(𝑁−2) ⁡ ⁡⁡⁡⁡⁡⁡⁡⁡⁡… ⁡⁡⁡𝑊𝑁(𝑁−2)(𝑁−1)
𝑋(𝑁 − 1) 𝑥(𝑁 − 1)
2(𝑁−1) 2
⁡⁡1 ⁡⁡⁡𝑊𝑁𝑁−1 𝑊𝑁 ⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡⁡… ⁡⁡⁡⁡⁡𝑊𝑁(𝑁−1)
– Quelle est la complexité de calcul de la TFD en nombre de multiplications et additions
réelles?
– En exploitant les propriétés des 𝑊𝑁𝑘𝑛 (symétrie, périodicité, ...):
𝑘(𝑁−𝑛)
𝑊𝑁 = (𝑊𝑁𝑘𝑛 )∗
𝑘(𝑁+𝑛) 𝑛(𝑁+𝑘)
𝑊𝑁 = 𝑊𝑁 = 𝑊𝑁𝑘𝑛
𝑛+𝑁
2
𝑊𝑁 = −𝑊𝑁𝑛
𝑊𝑁2𝑘𝑛 = 𝑊𝑁𝑘𝑛
2

De combien peut-on diminuer la complexité de calcul de la TFD?


Chapitre1 DSP 49
Adressages supplémentaires dans les DSPs
Rappel FFT

 On partage les coefficients x(k) en deux parties, l’une contenant les coefficients de rang pair
(k=2i), l’autre les coefficients impairs (k=2i+1). Comme N est pair, il y’aura N/2 coefficients
dans chaque paquet. L’équation de la TFD sera:
𝑁 𝑁
−1 −1
2 2
(2𝑖+1)𝑛
𝑋 𝑛 = 𝑥 2𝑖 𝑊𝑁2𝑖𝑛 + 𝑥 2𝑖 + 1 𝑊𝑁
𝑖=0 𝑖=0

 En exploitant les propriétés des 𝑊𝑁𝑘𝑛 , l’équation de la TFD devient:


𝑁 𝑁
−1 −1
2 2
𝑋 𝑛 = 𝑥 2𝑖 𝑊𝑁𝑖𝑛 + 𝑊𝑁𝑛 𝑥 2𝑖 + 1 𝑊𝑁𝑖𝑛
𝑖=0 2 𝑖=0 2

D’autre part:
𝑁 𝑁
𝑁 −1 𝑖𝑛 −1
𝑋(𝑛 + 2
)= 𝑖=0 𝑥 2𝑖 𝑊𝑁 − 𝑊𝑁𝑛 2
𝑖=0
𝑥 2𝑖 + 1 𝑊𝑁𝑖𝑛
2
2 2

On remarque qu’une TFD d’ordre N est décomposée en 2 TFD d’ordre N/2 suivies d’une
recombinaison.
Chapitre1 DSP 50
Adressages supplémentaires dans les DSPs
Rappel FFT (suite)

Exemple TFD d’ordre 4 Exemple TFD d’ordre 4

Comme N/2 est également un nombre pair, on peut de nouveau partager chacune des TFD d’ordre N/2 en
deux TFD d’ordre N/4 et par itération en un nombre d’étages égal à log2(N), nous arrivons à une TFD sur
2 points.

Chapitre1 DSP 51
Adressages supplémentaires dans les DSPs
Rappel FFT (suite)

Opération papillon: symbolise l’opération élémentaire de la FFT dans un étage m. Elle


calcule les deux éléments de sorties à partir de deux éléments d’entrée. On peut le représenter
sous sa forme générale entre deux étages m et m+1 avec m = 1, 2…𝑙𝑜𝑔2 𝑁

𝑋𝑚+1 𝑝 = 𝑋𝑚 𝑝 + 𝑊𝑁𝑟 . 𝑋𝑚 (𝑞)


𝑋𝑚+1 𝑞 = 𝑋𝑚 𝑝 − 𝑊𝑁𝑟 . 𝑋𝑚 (𝑞)

-Combien de papillons est-il nécessaire de calculer pour une FFT sur N points?

-Quelle est la complexité de calcul de la FFT en nombre de multiplications et additions réelles?

Chapitre1 DSP 52
Adressages supplémentaires dans les DSPs
Rappel FFT (suite)

 Un papillon nécessite 1 multiplication,1 addition et 1 soustraction sur des nombres


complexes.

 Le graphe complet nécessite le calcul de 𝑁 2 𝑙𝑜𝑔2 𝑁papillons ce qui donne donc en unité
de calcul :
– 𝑁 2 𝑙𝑜𝑔2 𝑁multiplications de nombres complexes,
– N 𝑙𝑜𝑔2 𝑁additions/soustractions de nombres complexes, ou,
– 2N 𝑙𝑜𝑔2 𝑁multiplications de nombre réels,
– 3N 𝑙𝑜𝑔2 𝑁additions/soustractions de nombre réels.

 A l’opposé de la TFD, la TFR génère un calcul d’adresse non négligeable entre deux
étages m et m+1.

 De plus, il est nécessaire de présenter à l’algorithme les échantillons dans un ordre non
régulier (bit-reverse) ce qui engendre un calcul d’adresse supplémentaire. Ces
problèmes ne sont pas négligeables surtout sur un processeur général car ils rajoutent à
la complexité élémentaire une complexité d’adressage.
Chapitre1 DSP 53
Adressages supplémentaires dans les DSPs

Adressage en bit reverse Exemple FFT d’ordre 8

Pour le calcul d’une FFT, les DSPs utilisent:


– L’adressage en bit reverse: Il s’agit d’inverser l’indice exprimé sous sa forme binaire.
–Pour les DSPs, Xm(.) et Xm+1(.) sont placés en mémoire sur le même vecteur on parle de
calcul en place.

Chapitre1 DSP 54
Exercice d’application2
La DCT (Discrete Cosine Transform) ou transformée en cosinus discret transforme X et Y
définis comme les coordonnées du pixel d’une image et Z sa définition lumineuse en une
information fréquentielle, représentant les fréquences du pixel dans les deux dimensions
(horizontale et verticale).

Un papillon de la DCT est définit par: xs = xe + ck.ye et ys = xe – ck.ye. L’indice k des coefficients
ck varie pour chaque papillon et ck = cos( 2πk/N ).
Les échantillons en entrée du bloc DCT sont réels.

Chapitre1 DSP 54
Exercice d’application2

– Quelle est la complexité algorithmique (nombre d’opérations & mots


mémoires) pour une DCT sur N points.

– Si on calcule une DCT de N points sur un DSP conventionnel (non


pipeline) ayant un temps de cycle de 50 ns, quelle est la taille maximale
du bloc que l’on peut traiter si le signal est échantillonné à 1MHz?

Chapitre1 DSP 55
Accès Direct à la Mémoire (DMA : Direct
Memory Access)

Mémoire Programme
+ Données • DMA : Contrôleur du
transfert des données
CPU
entre les plages
d’adresse de la
Mémoire Données
mémoire sans
l’interférence du
CPU. Formé par 4
interruptions canaux
DMA
programmables et un
configuration cinquième auxiliaire.

 Accès DMA : entrées-sorties vers la mémoire interne


 indépendant du CPU et des bus internes
 Système d'interruptions "données reçues"/"données transmises"
Chapitre1 DSP 57
DMA et buffer ping pong

-Les échanges avec le codec sont gérés au niveau matériel par le DSP: port série
bufferisé BSP (Buffered Serial Port), pourvu d’une ABU (Automatic Buffering
Unit), qui possède deux buffers intermédiaires (ping et pong) .
-Un buffer (ping) est rempli pendant que le CPU traite les données de l’autre
buffer (pong).
- Lorsque le buffer est plein, interversion des rôles.
-Peut être implémenté par un buffer découpé en deux.
Chapitre1 DSP 58
Chronogramme des échanges de données en
DMA

Chapitre1 DSP 59
Traitement par bloc Vs traitement échantillon par
échantillon

-Dans le cas du traitement échantillon par échantillon, la fonction de traitement


est appelée pour chaque échantillon

-Dans le cas d’un traitement par blocs de taille N, les données sont fournies à la
fonction de traitement sous la forme d’un tableau contenant N échantillons
consécutifs x(m) à x(m+N-1).
Le traitement par blocs est associé au DMA. Le DMA peut ainsi copier les
échantillons obtenus sur un port série en entrée directement en mémoire, en
remplissant un tableau. Une fois la configuration du DMA effectuée une fois
pour toute, le processus est autonome. Lorsque le tableau est plein, ou à moitié
plein, une interruption est alors générée, qui vient provoquer le lancement de la
fonction de traitement, qui peut alors prendre un bloc déjà rempli en entrée.

Chapitre1 DSP 60
Avantages Traitement par bloc Vs traitement
échantillon par échantillon
 Diminution du nombre d’interruptions du processeur : on évite ainsi la
petite perte de temps pour traiter l’interruption, qui peut s’avérer importante si
elle intervient pour chaque échantillon. Cette perte est limitée à une
interruption par bloc de N échantillons.

 Avec le DMA, calculs en parallèle des entrée/sorties

 Effectuer directement des traitements qui nécessitent un ensemble


d’échantillons consécutifs (exemple: Transformée de Fourier), ce qui peut
également aider au débogage des traitements, en étudiant le comportement du
programme sur un signal qui est déjà stocké en mémoire

 Lisser les temps de calculs si ceux-ci peuvent varier, et être notamment


plus longs pour un échantillon isolé.

Chapitre1 DSP 61
Inconvénients Traitement par bloc Vs traitement
échantillon par échantillon
-Plus grande latence entre l’arrivée des échantillons en entrée, et la sortie des
échantillons correspondant : de l’ordre du temps nécessaire pour remplir deux
blocs, soit 2NTe, en notant Te la période d’échantillonnage (l’échantillon x(0) est
le premier du bloc 1, il faut attendre le remplissage du bloc 1 pour que la fonction
de traitement soit lancée, la fonction a le temps du remplissage du bloc 2 pour
fournir un résultat y(0), qui est envoyé en sortie dès le début du remplissage du
bloc 3

- Il faut prévoir un espace mémoire pouvant stocker deux blocs de taille N


simultanément (buffer ping-pong).

Chapitre1 DSP 62
Architectures des DSPs conventionnels

1. Unité de traitement
2. Unité de mémorisation
3. Unité de contrôle

63
Schéma du principe des échanges

Chapitre1 DSP 64
Fetch (lecture instruction)

Chapitre1 DSP 65
Read/write (lecture/Ecriture des données)

Chapitre1 DSP 66
Séquentiel Vs Pipeline

Chapitre1 DSP 67
Exemple de repture du Pipeline

Chapitre1 DSP 68
DSPs et Pipeline
 Presque tous les DSP sont pipelinés
 Le nombre d’étages varie de 2 à 5:
– Fetch Instruction
– Decode
– OperandRead
– Execute (MAC, ALU, ...)
– Write result

• ADSP :2
• TMS320C3x , ... :4
• TMS320C54x, ... :5

Chapitre1 DSP 69
Performances d’un µP (cas non pipeliné)

 Texec_non_pipeline = Nb cycles * temps de cycle d’horloge (TCycle)

 CPI (Cycle Par Instruction) représente le nombre moyen de cycles d’horloge


nécessaire pour l’exécution d’une instruction pour un microprocesseur donné
= Nb cycles/ Nb instructions.

 L’IPC ( Instructions par cycle): c’est donc l’inverse du CPI

Texec_non_pipeline = Nins * TCycle / IPC

Chapitre1 DSP 70
Performances d’un µP (cas pipeliné)

 Une instruction est émise lorsqu’elle passe de l’étage de lecture des registres à
l’étage d’exécution.

 On définit: Texecpipeliné  ( profondeurpipeline Témission_ total 1)*Tcycle

 Les techniques de prédiction de branchements actuelles donnent jusqu’à 99


% de réussite. Dans le cas idéal (sans aléas d’instructions):

Texec pipeliné  ( profondeurpipeline  Nins 1)*Tcycle

 Afin de faciliter le calcul du temps d’émission des instructions d’un programme,


les architectes définissent la latence d’instruction pour chaque type en
établissant le délai qui doit s’écouler entre le moment où l’instruction du type
considéré est émise et celui où une instruction qui lui serait dépendante pourrait
l’être à son tour.

Chapitre1 DSP 71
Résumé: Caractéristiques classiques des DSP

 Chemin de données organisé pour traitement du signal

 Jeu d’instructions spécialisé

 Plusieurs mémoire et plusieurs bus

 Modes d’adressage spécifiques

 Périphériques spéciaux pour le traitement du signal

 Augmentation du parallélisme

Chapitre1 DSP
72
Résumé: Caractéristiques classiques des DSP

Augmentation du parallélisme

– Calculs
• Unités de calcul en parallèle

– Mémoire à accès multiples


• Lecture/Écriture de plusieurs données simultanément

– Pipeline
• Découpage des instructions de façon à les exécuter à intervalles
plus rapprochés

Chapitre1 DSP
73

Vous aimerez peut-être aussi