Professional Documents
Culture Documents
GE42 DSP 22 p1
GE42 DSP 22 p1
9/03/22 7
Applications des DSP
n Automatisation n Biomédical
Ø Commande de Ø Équipements de monitoring
machines Ø Signaux biophysiques
Ø Contrôle de moteurs Ø ElectroEncéphaloGramme (EEG)
Ø Robots Ø ElectroCardioGramme (ECG)
Ø Radiographie
n Electronique Automobile
Ø Contrôle du moteur n Instrumentation
Ø Assistance au freinage Ø Analyseurs de spectre
Ø Aide à la navigation Ø Générations de fonctions
Ø Commandes vocales Ø Analyseurs de régimes
transitoires
9/03/22 8
Equations d’algorithmes
Algorithm Equation
M
Finite Impulse Response Filter ∑a
y ( n) =
k =0
k x( n − k )
M N
Infinite Impulse Response Filter ∑a
y ( n) =
k =0
k x ( n − k )+ ∑ b y (n − k )
k =1
k
N
Convolution ∑ x ( k ) h( n − k )
y ( n) =
k =0
N −1
Discrete Fourier Transform X (k ) = ∑ x(n) exp[− j(2π / N )nk ]
n =0
N −1
⎡π ⎤
Discrete Cosine Transform F (u ) = ∑ c(u ). f ( x).cos ⎢ u(2 x + 1)⎥
x =0 ⎣ 2N ⎦
rchitecture and instruction set optimized for power efficient performance9. For signal
Lesa common
processing intensive systems, algorithmes de(Figure
choice is a DSP TNS 1.14).
Figure 1.14 Many of today’s complex algorithms are composed from basic function signal processing
locks that DSPs are very efficient at computing
Many of today’s complex algorithms are composed from
As an example of afunction
basic low power DSPprocessing
signal solution, consider a solid-state
blocks that DSPs are audio
veryplayer
ike the one shown in Figure
efficient 1.15. This system requires a number of DSP-centric
at computing
lgorithms to perform the signal processing necessary to produce high fidelity music
quality sound. Figure 1.16 shows some of the important algorithms required in this
Implémentation d’algorithmes
LE DOMAINE
Circuits
Models Algorithmes Architectures Électroniques
mathématiques Technologies
Adéquation
Implémentation
Application
9/03/22 12
Utilisation prototype
reducing system costs and affording higher levels of system integration. Recently, FPGA
been gaining considerable attention in high-performance DSP applications, and are emerg
Digital Signal Processing Hardware
coprocessors [14] for standard digital signal processors that need specific accelerators. In
cases, FPGAs work in conjunction with digital signal processors for integrating pre- and
processing functions. These devices are hardware reconfigurable, and thus allow s
designers to optimize the hardware architecture for implementing algorithms that require
1.performance
Special-purpose
and lower(custom)
productionchips
cost. such as application-specific
In addition, designers can implement high-perfor
integrated
complex DSP circuit (ASICs).
functions using a fraction of the device, and use the rest of the device to imp
2.system
Field-programmable gate arrays
logic or interface functions, (FPGAs).
resulting in both lower costs and higher system integ
3. General-purpose microprocessors or microcontrollers (mP/mC).
4. Digital Signal Processors.
Table 1.1 Summary of DSP hardware implementations
ASIC FPGA mP/mC Digital signal Digital
processor processo
HW acce
Flexibility None Limited High High Medium
Design time Long Medium Short Short Short
Power consumption Low Low–medium Medium–high Low–medium Low–med
Performance High High Low–medium Medium–high High
Development cost High Medium Low Low Low
Production cost Low Low–medium Medium–high Low–medium Medium
The main trade-offs in the programmable vs. fixed-
function decision; flexibility and power.
xvi Introduction
µP
Power
Consumption DSP
FPGA
ASIC
Application Flexibility
Waiting Time
Processing Time
n n+1
Sample Time
Waiting Time ≥ 0
I. Introduction
Besoins en TNS
Real-time processing
! Contraintes de temps réel :
# Exemple : taux d’échantillonnage 48kHz
Théorème de Shannon
& Te = 20.833 µs
Arrivée de Arrivée de
l’échantillon x(n) l’échantillon x(n+1)
t
t0 t0+Te
Temps de traitement T
doit être <Te
Spécificités des DSP
a 24-bit, fixed-point
Yl
processor).
56
Accumulators ---
9/03/22 19
Caractéristiques classiques des DSP
n Codage de données (virgule fixe / virgule flottante)
n Architecture
9/03/22 20
Caractéristiques classiques des DSP III. Architecture des DSP
Format
Représentation de
des données
nombres
Les valeurs traitées (coefficients, échantillons...) sont
représentées
! sous(coefficients,
Les valeurs traitées les deuxéchantillons…)
formes suivantes :
sont représentées sous
les deux formes suivantes :
DSP à
9/03/22 21
Le codage des nombres entiers
9/03/22 22
Entiers signés : Format complément à 2
9/03/22 23
Représentation de Nombres Réels
9/03/22 24
Représentation en Virgule fixe
•Aussi appelée représentation à “format fixe”
Propriétés:
Le format d’une donnée ne varie pas au cours du temps
Partie fractionnaire codée sur k bits
format Qk
Partie entière codée sur N-k bits en C2
9/03/22 25
Représentation en Virgule Fixe
• Exemple: Q5 sur 8 bits
0 0 0 0 0 0 0 0 0
3.9375 0 1 1 1 1 1 1 0
3.96875 0 1 1 1 1 1 1 1
9/03/22 26
Représentation en Virgule Fixe
Format Q15:
sur 16 bits, le format Q15 permet de représenter tous les
réels entre -1 et 1 avec une précision q=2-15
9/03/22 27
Représentation des nombres : Virgule fixe
Exercices
! Codage des entiers
" Format Qk :
$ +0.5
$ +1.0
$ -1.0
$ +1/3 = 0.3333
$ -1/3 = -0.3333
9/03/22 28
Arithmétique en virgule fixe
9/03/22 29
Multiplication Overflow
0 0 1 1 3
x 1 0 0 0 x 8
0 0 0 1 1 0 0 0 24
9/03/22 30
Addition Overflow
1 0 0 0 8
+ 1 0 0 0 + 8
1 0 0 0 0 16
9/03/22 31
Arithmétique en virgule fixe : Solution
§ Saturation du résultat
§ Résultat en double précision.
§ Arithmétique fractionnel (Q15).
§ Arithmétique en virgule flottante.
9/03/22 32
Saturation du résultat
0 0 1 1 3
x 1 0 0 0 8
0 0 0 1 1 0 0 0 24
Saturation : 1 1 1 1 15
9/03/22 33
Résultat en double précision
Exemple : Pour une multiplication 16 bits x 16 bits, maintenir
le résultat dans un emplacement de 32 bits.
Problèmes:
9/03/22 34
ArithmétiqueFormat
Format Q15
Q15
fractionnel : Format Q15
Représentation
Représentation en virgule
enenvirgule
Représentation fixepour
virgulefixe
fixe pourles
pour lesles nombres (sur
nombres
nombres
16 bits) :
−−11≤≤nn ≤≤1
−15
valeur= = m
valeur m××22− 15
Scaling
Exemple
Exemple : :
π π
sin
sin 6 en Q15 sur 16 bits ?
en Q15 sur 16 bits ?
6
π 1
π =1 = 0.5 = 214 × 2 -15=16384 × 2 -15
14 -15 -15
sin
sin 6= 2= 0.5 = 2 × 2 =16384 × 2
6 2
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Soit 4000h ( 0x4000)
Soit
17
4000h ( 0x4000)
9/03/22 35
Charles André - Université de Nice
Opération sur Q15
- Addition :
9/03/22 36
En générale pour la multiplication
9/03/22 37
Rounding and truncation
Soit le résultat de multimplication de deux nombres en Q sur
15
16 bits à 32 bits en Q30 :
0x 0000 0000 0101 0101 0111 1111 1111 1111
9/03/22 38
Convertir un nombre fractionnaire en entier
• Étape 1: normaliser le nombre décimal fractionnaire à
la plage déterminée par le format Q souhaité
• Étape 2: multipliez le nombre fractionnaire normalisé
par 2k
• Étape 3: Arrondissez le produit à l'entier le plus proche
• Étape 4: Écrivez la valeur entière décimale en binaire
(C2) en utilisant N bits.
9/03/22 39
Convertir un nombre fractionnaire en entier
3) Round: 28672
9/03/22 40
Convertir un entier en nombre fractionnaire
• Les nombres et les résultats arithmétiques sont
stockés dans le processeur DSP sous forme
d'entiers.
• Besoin d'interpréter comme une valeur fractionnaire
en fonction du format Q
• Conversion d'un entier en un nombre fractionnaire
pour le format Qk :
- Diviser l'entier par le facteur d'échelle de Qk
=> diviser par 2k
x = M × 2E
m+e = N
9/03/22 42
Représentation en Format Flottant
• Exemples en 8 bits
01111 111
[1× 2 −1
]
+ 1× 2−2 + 1× 2−3 + 1× 2−4 × 2(−4+2+1) = 0.9375 × 2−1 = 0.46875
01111 110
[1× 2 −1
]
+ 1× 2−2 + 1× 2−3 + 1× 2−4 × 2(−4+ 2+0 ) = 0.9375 × 2−2 = 0.234375
10010 011
[−1 + 0 × 2 −1
]
+ 0 × 2−2 + 1× 2−3 + 0 × 2−4 × 2(0+ 2+1) = −0.875 × 23 = −7
9/03/22 43
IEEE 754
Une représentation à virgule flottante couramment
utilisée est le format IEEE 754-1985 III.
donnée comme
Architecture des DSP
9/03/22 44
Format virgule flottante IEEE 754
•Cas spéciaux
Zéro: tous les bits à 0
Underflow: exposant = 000000002
Overflow: exposant = 111111112
9/03/22 45
Virgule flottante
IEEE 754
9/03/22 46
A representative DSP
processor data path XO
a 24-bit, fixed-point
Yl
processor).
56
Accumulators ---
9/03/22 47
A typical floating-
point DSP
processor data
40 32
AT&T DSP3210).
Accumulators -
9/03/22 48
Types de données
9/03/22 49
Représentation des nombres
Les DSP à virgule fixe
Les données sont représentées comme étant des nombres fractionnaires à
virgule fixe, (exemple -1.0 à +1.0), ou comme des entiers classiques.
La représentation de ces nombres fractionnaires s’appuie sur la méthode du
«complément à deux».
Permet facilement l’addition binaire de nombres positifs et négatifs.
Comparaison
Représentation des nombres
n Architecture matérielle
9/03/22 54
Spécificités des DSP
2
CPU Mémoire
4
3
n (1) Charger une instruction depuis la mémoire :
n (2) Charger les opérandes depuis la mémoire
n (3) Effectuer les calculs
n (4) Stocker le résultat en mémoire
----------
e : Harvar rocessor arc itect re
The DS processor consumes most of theMémoire Programme
loop execution time in the algorithms, so it has a built-
in C U instruction cache that can store the 32 most commonly used programming instructions.
CPU
This processor concept is called Super Harvard Architecture SCHARC presented in Fig. 2
designed by engineers of the Analog Devices company,
Mémoire which unified the enhanced DS under
Données
the name SHARC DS . To accelerate the information flow, they have connected it to the data
memory I O controller, which provides high-speed parallel and serial communications ports, [ ].
n Séparation des mémoires programme et données
n Moins de risque de corruption du programme
n Meilleure utilisation du CPU
¨ Chargement du programme et des données en parallèle
9/03/22 59
Architecture Harvard modifiée
Mémoire Programme
+ Données
CPU
Mémoire Données
9/03/22 60
designed by engineers of the Analog Devices company, which unified the enhanced DS under
Architecture Harvard modifiée : SHArc
the name SHARC DS . To accelerate the information flow, they have connected it to the data
memory I O controller, which provides high-speed parallel and serial communications ports, [ ].
Mémoire Cache
d’instructions Mémoire Instruction
CPU
Mémoire Cache
de données Mémoire Données
9/03/22 62
Caractéristiques classiques des DSP
n Codage de données (virgule fixe / virgule flottante)
n Architecture
9/03/22 63
DSP à hautes performances
1) Architecture conventionnelle
• Spécialisée pour le TNS
• Faible consommation, faible coût
• Difficulté de programmation
2) Nouvelles architectures
• Plus grande consommation
• Coût plus élevé
• Rendues nécessaires par de nouveaux besoins
Performance (téléphonie 3G)
Rapidité de développement
9/03/22 64
DSP à hautes performances
n Objectifs :
Instruction MAC
(multiplication-accumulation)
9/03/22 65
MAC : Multiplieur-accumulateur
ai xi
Multiplier
a i-1 x i-1
ai xi
N −1
Adder y ( i ) = ∑ a (i ) x (i )
i =0
a i x i + a i-1 x i-1
Register
9/03/22 66
DSP à hautes performances
Plusieurs solutions :
9/03/22 67
DSP à hautes performances
Diminuer la durée d’un cycle d’horloge :
9/03/22 69
DSP à hautes performances
Augmenter le travail réalisé au cours d’un cycle à
Parallèlisme (plusieurs approches)
• SIMD : Plusieurs opérations dans une seule instruction
• Superscalaire : Plusieurs instructions dans 1 cycle d’horloge
- Plusieurs MAC, plusieurs ALU, cache données
- Circuit de contrôle complexe
• VLIW (Very Long Instruction Word) : Plus d’instructions dans
1un seul cycle d’horloge
- VLIW 8 voies = 8 instr * 32 bits = 256 bits
- Instructions en parallèle à la compilation
- Hardware plus simple que superscalaire
• Approches hybrides : SIMD/VLIW ou SIMD/Superscalaire
• Augmentation du nombre de cœurs du DSP (multi-core)
9/03/22 70
Parallélisme
Plusieurs types de parallélisme :
9/03/22 71
Parallélisme au niveau de donnés : SIMD
L’approche SIMD : Single Instruction
Multiple Data
L1 S1 M1 D1 D2 M2 S2 L2
+ + + + + +
+
x x +
9/03/22 73
Pipeline
PIPELINE
! Principe : découper une opération en plusieurs
Découpage d’une instruction en plusieurs
tâches élémentaires à effectuer en parallèle.
tâches élémentaires à effectuer en parallèle.
! Exemple : pipeline à 4 étages
Pipeline à 4 étages
9/03/22 74
CPU : Unité de commande
Pipeline
PIPELINE
9/03/22 75
CPU : Unité de commande
Types de Pipeline
PIPELINE
! Différents types de pipelines
9/03/22 76
Pipeline
9/03/22 77
Mesure de la performance
! Mesure de la vitesse : : vitesse
9/03/22 78
Mesure de la performance : vitesse
9/03/22 79
IV. Performances des DSP
Mesure de la performance
Mesure de performances : vitesse
9/03/22 80
Mesure de la performance
• La vitesse de calcul d’un DSP n’est pas une indication
universelle.
• Elle ne prends pas en compte un certain nombre de
perfectionnement dont peuvent bénéficier les DSP :
- Certains DSP proposent en effet des modes
d’adressages plus performants que d’autres. Ces modes sont
spécialement adaptés à des algorithmes standards du TNS
(exemples : adressage circulaire, «bits reversing» pour les FFT).
- Le temps d’accès à la mémoire est un autre paramètre
incontournable.
9/03/22 82