Download as pdf or txt
Download as pdf or txt
You are on page 1of 75

Traitement numérique du signal : Définition

Digital signal processing (DSP) is a method of


processing signals and data in order to enhance or modify
those signals, or to analyze those signals to determine
specific information content. It involves the processing
of real-world signals that are converted into and
represented by sequences of numbers. These signals are
then processed using mathematical techniques in order to
extract certain information from the signal or to
transform the signal in some (preferably beneficial) way.
Traitement numérique du signal

n De quelles solutions dispose-t-on pour effectuer ce travail

n Quelle est la spécificité d’un processeur DSP


3
Traitement numérique du signal
Applications des DSP

n Communications n Image / vidéo


Ø Filaire (xDSL, câble) Ø Compression/Codage
Ø Sans fil (cellulaires, Ø Composition
télévision numérique, Ø Traitement
radio numérique)
Ø Modem
Ø Cryptage
n Militaire
Ø Imagerie : radar,
n Audio sonar…
Ø Mixage et effets Ø Cryptographie
Ø Suppression de bruit Ø Guidage de missiles
Ø Annuleur d’echo

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).

ALGORITHM BASIC FUNCTION

Voice compression FIR filter


Phase detection
DTMF, Graphic EQ IIR filter
Echo cancellation; high bit- Adaptive filter
rate modems; motion detectors
Audio decoder (MP3, AP3) Inverse modified DCT
(FFT)
Forward error correction Viterbi

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

Traitement du signal Électronique

Continue Discret Analogique


Numérique
(Analogique) (Numérique) (Continue)
(discret)

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

DSP Implementation Options

µP

Power
Consumption DSP

FPGA

ASIC

Application Flexibility

An application-specific integrated circuit (ASIC) is a hardware only implementation


option. These devices are programmed to perform a fixed-function or set of functions.
Being a hardware only solution, an ASIC does not suffer from some of the program-
mable von Neumann-like limitations such as loading and storing of instructions and
Real-time processing
n DSP processors have to perform tasks in
real-time, so how do we define real-time?
n The definition of real-time depends on the
application.
n Example: a 100-tap FIR filter is performed in
real-time if the DSP can perform and
complete the following operation between two
samples:
99
y (n ) = ∑ a(k )x(n − k )
k =0
Real-time processing

Waiting Time
Processing Time

n n+1
Sample Time

n We can say that we have a real-time application if:

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

n Algorithme classique de TNS : Filtre RIF


N −1
y (n) = ∑ a(i ) x(n − i)
i =0

n Pour chaque a(i) x(n-i) :


n Recherche de l’instruction
3 accès à la n Recherche du coefficients a(i)
mémoire
n Recherche de la donnée x(n-i)

2 accès à n Multiplication a(i) x(n-i)


l’unité
de calcul n Accumulation a(i-1) x(n-i-1) + a(i) x(n-i)
9/03/22 18
A representative DSP
processor data path XO

(Motorola DSP5600x, Operand


Registers
-. Xl
YO

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

n Augmentation du parallélisme (DSP à haute performance)

n Modes d’adressage spécifiques

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

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 à

Virgule fixe Virgule flottante


"Format courant : 16/24 "Format courant : 32 bits
bits
"Idéal avec CAN/CNA "Idéal pour le traitement sur
12/14 bits une grande dynamique
"Applications : Contrôle
industriel, communications, "Applications : Audio
instrumentation, parole, professionnel, vidéo,
médical, militaire… médical …

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

n La représentation des nombres doit répondre à deux


exigences contradictoires:

¨ Précision: intervalle entre deux rationnels codés


n doit être le plus petit possible

¨ Dynamique: rapport entre le plus grand rationnel et le plus petit


rationnel codés
n doit être la plus étendue possible

n Dans ce contexte les unités de calcul des DSP travaillent


¨ soit en format fixe (notation décimale)
¨ soit en format flottant (notation scientifique)

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

Partie entière Partie fractionnaire


X bN-1-K bN-2-K ..... b1 b0 b-1 b-2 ....... b-K

Q0 désigne le cas particuler des entiers signés en C2

•Exemple: Le binaire 01011101 peut représenter :


Q2 : 23.25 Q4 : 5.8125 Q7 : 0.7265625

9/03/22 25
Représentation en Virgule Fixe
• Exemple: Q5 sur 8 bits

• Partie entière codé sur 3 bits (dont 1 de signe)


• Partie fractionnaire codée sur 5 bits

• Valeurs comprises entre -4 et +3.96875

#/Poids -22 21 20 ,2 -1 2-2 2-3 2-4 2-5


-4 1 0 0 0 0 0 0 0
-3.96875 1 0 0 0 0 0 0 1

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

Précision: quantification uniforme de pas q


q=2-k
Dynamique:
-2N-k-1 .. 2N-k-1-2-k

Pour obtenir une dynamique sur l’intervalle [-1, 1[ ,utiliser le format


QN-1 sur N bits

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 :

! Ecrire les nombres suivant sous la forme binaire 8 bits signé


au format Q7 :

$ +0.5

$ +1.0

$ -1.0

$ +1/3 = 0.3333

$ -1/3 = -0.3333

9/03/22 28
Arithmétique en virgule fixe

n Cette équation est la base de plusieurs


algorithmes de traitement du signal
N −1
y(n ) = ∑ a(k )x(n − k )
k =0

n Deux problèmes apparaissent en traitant


les entiers :
¨ Multiplication overflow.
¨ Addition overflow.

9/03/22 29
Multiplication Overflow

n16-bit x 16-bit = 32-bit


Exemple: avec la représentation en 4-bit

0 0 1 1 3
x 1 0 0 0 x 8

0 0 0 1 1 0 0 0 24

24 ne peut être représenté avec 4-bits.

9/03/22 30
Addition Overflow

n16-bit + 16-bit = 17-bit


Exemple: avec la représentation en 4-bit

1 0 0 0 8
+ 1 0 0 0 + 8

1 0 0 0 0 16

16 ne peut être représenté avec 4-bits.

9/03/22 31
Arithmétique en virgule fixe : Solution

Les solutions pour réduire les problèmes


d’overflow :

§ 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

Nombres non signés :


• If A x B ≤ 15 → result = A x B
• If A x B > 15 → result = 15

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:

§ Utilise plus de mémoire pour stocker les données.

§ Si le résultat est utilisé dans une autre multiplication, les


données doivent être représentées dans un format simple
précision (par exemple, prod = prod x somme).

§ Les résultats doivent être réduits s'ils doivent être


envoyés à un convertisseur A/N.

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 :

Q15 ± Q15 → Q15


Mais il peut y avoir débordement (Overflow)
- Multiplication :
Q15 x Q15 → Q30
(m ×2-15)×(m ×2-15)=(m ×m )×2-30
pas de Overflow sur 32 bits, mais 2 bits de signe
(donc 32 bits) !

Afin de remettre le résultat en Q15, on ne conserve


que les bits de 31 à 15 (Perte de précision)

9/03/22 36
En générale pour la multiplication

Q(m1,k1) x Q(m2,k2) → Q(m1+m2, k1+k2)

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

• Le résultat par troncature serait de :

0x0000 0000 1010 1010

• Le résultat par arrondi serait de :

0x0000 0000 1010 1011


ce qui est plus proche de la vraie valeur.

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.

Exemple : Convertissez la valeur 3,5 en une


valeur entière qui peut être reconnue par un
assembleur DSP (16 bits) utilisant le format Q15

9/03/22 39
Convertir un nombre fractionnaire en entier

Exemple : Convertissez la valeur 3,5 en une


valeur entière qui peut être reconnue par un
assembleur DSP (16 bits) utilisant le format Q15

1) Normalize: 3.5/4 = 0.875

2) Scale: 0.875*215 = 28672

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

Exemple : Quelle valeur Q15 représente le nombre entier 2 ?

à 2/215 = 2 * 2-15 = 2-14


9/03/22 41
Representation en Format Flottant
• Aussi appelée représentation en “virgule flottante” est une
représentation avec une précision finie, définie selon l’expression

x = M × 2E

• La mantisse M est exprimée sur m bits, détermine le nombre de


avec un format Qm-1 en complément à 2 chiffres significatifs

• L’exposant E est un entier signé sur e bits


détermine la
en binaire décalé dynamique

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

• La mantisse est codée sur 5 bits et l’exposant sur 3 bits en C2

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

suit :Représentation des nombres : Virgule flottante

Encodage Signe Exposant Mantisse


Simple précision 32 bits 1bit 8 bits 23 bits

Double précision 64 bits 1 bit 11 bits 52 bits

! valeur = signe × mantisse × 2(exposant − décalage)

Simple précision (SP) = float


Double précision (DP) = double

9/03/22 44
Format virgule flottante IEEE 754

n Format pour N=32 bits

1 bit 8 bits 23 bits


signe exposant fraction (partie fractionnaire de la mantisse)
en binaire décalé C2 avec des codes spéciaux

x = (-1)signe × (1,fraction)2 × 2exposant-127

•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

(Motorola DSP5600x, Operand


Registers
-. Xl
YO

a 24-bit, fixed-point
Yl

processor).
56

Accumulators ---

9/03/22 47
A typical floating-
point DSP
processor data
40 32

path (from the Operand


Registers --- . . '---_ _ -y---J

AT&T DSP3210).

Accumulators -

9/03/22 48
Types de données

Type Size Representation


char, signed char 8 bits ASCII
unsigned char 8 bits ASCII
short 16 bits 2’s complement
unsigned short 16 bits binary
int, signed int 32 bits 2s complement
unsigned int 32 bits binary
long, signed long 40 bits 2’s complement
unsigned long 40 bits binary
float 32 bits IEEE 32-bit
double 64 bits IEEE 64-bit
long double 64 bits IEEE 64-bit
pointers 32 bits binary

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.

Les DSP à virgule flottante


Les données sont représentées en utilisant une mantisse et un exposant.
La représentation de ces nombres s’effectue selon la formule suivante :
n = signe mantisse 2exposant
Généralement, la mantisse est un nombre fractionnaire (-1.0 à +1.0), et
l’exposant est un entier indiquant la place de la virgule en base 2.
9/03/22 50
III. Architecture des DSP

Comparaison
Représentation des nombres

Virgule fixe vs Virgule flottante

" Vitesse : DSP à virgule fixe ! Pour quelles types d’applications un


processeur à virgule flottante est
sont plus rapide. exigé ?
" Taille : DSP à virgule fixe sont # Une grande précision
# Une gamme dynamique très
plus petits.
large
" Energie : DSP à virgule fixe # Un grand rapport signal-sur-bruit
consomment moins. # La facilité d’utilisation

Virgule fixe Virgule


(95% des DSP) flottante
Complexité hard Simple Complexe
Coût Faible Elevé
Consommation Faible Elevée
Dynamique max 190 dB 1500 dB
Complexité prog Elevée Faible
9/03/22 51
Caractéristiques classiques des DSP
n Codage de données (virgule fixe / virgule flottante)

n Architecture matérielle

n Augmentation du parallélisme (DSP à haute performance)

n Modes d’adressage spécifiques

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

9/03/22 54
Spécificités des DSP

n Algorithme classique de TNS : Filtre RIF


N −1
y (n) = ∑ a(i ) x(n − i)
i =0

n Pour chaque a(i) x(n-i) :


n Recherche de l’instruction
3 accès à la n Recherche du coefficients a(i)
mémoire
n Recherche de la donnée x(n-i)

2 accès à n Multiplication a(i) x(n-i)


l’unité
de calcul n Accumulation a(i-1) x(n-i-1) + a(i) x(n-i)
9/03/22 55
Fonctionnement basique d’une opération de
calcul
1

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

Nombre d’accès mémoireóvitesse de traitement ou


bande passante (un accès
9/03/22 est bloquant) 56
  Architecture Von Neuman
ana artmann oli n e ana imac rl e el o ocens i
Ivana Hartmann Tolić, Snježana Rimac‐Drlje, Željko Hocenski  JET
  Vol.
  10
  (2017)
 
Issue 2
   

----------

  . Von eumann processor architecture

n Un seul chemin d'accès à la mémoire


n Architecture des processeurs d’usage général
(Pentium, 68000)
n Goulot d'étranglement pour l'accès à la mémoire
n Pas de sécurisation matérielle
 
du programme
e  : Harvar   rocessor arc itect re 
The DS processor consumes most of the 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.
9/03/22
This processor concept is called Super Harvard Architecture SCHARC presented in Fig. 2 58
Architecture Harvard
  . Von eumann processor architecture

 
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

n Mémoire programme contient des données (coefficients)


n Possibilité de charger 2 données en un cycle

¨ Mémoire Programme+Données → coefficients des filtres


¨ Mémoire Données → échantillons d’entrée

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, [ ].

Super Harvard Architecture

n Architecture typique aux DSPs.


n Instruction cache: petite mémoire
contenant les instructions récemment
exécutées.
n I/O Controller <-> Data memory: Direct
e 2: S er Harvar   rocessor arc itect re 
Memory Access (DMA), accès à la
mémoire sans passer par le CPU
38 JET 9/03/22 61
Cache d'instructions et de données

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

n Augmentation du parallélisme (DSP à haute performance)

n Modes d’adressage spécifiques

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

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 :

¨ Réduire le temps passé à faire des calculs

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

Comment augmenter les performances ?

Plusieurs solutions :

1- Diminuer la durée d’un cycle d’horloge


2- Augmenter le travail réalisé au cours d’un cycle

9/03/22 67
DSP à hautes performances
Diminuer la durée d’un cycle d’horloge :

• Facilité de portage des applications existantes


• Limites ! :
- Consommation proportionnelle à la vitesse
CPU
- Interfaces mémoires deviennent des
goulots d’étranglement

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 :

n Parallélisme au niveau des donnée (DP ou DLP :


Data Level Parallelism
n Parallélisme au niveau des instruction (ILP :
Instruction Level Parallelism )

9/03/22 71
Parallélisme au niveau de donnés : SIMD
L’approche SIMD : Single Instruction
Multiple Data

Opérations parallèles sur


différentes largeurs de
données (8, 16, 32, 64…
bits) soit sur :
n Split unités d’exécutions
n Multiples unités
d’exécutions
9/03/22 72
Parallélisme au niveau des instruction : VLIW

L’approche VLIW (Very Long Instruction Word)


n Un DSP est de type VLIW dispose de plusieurs
unités fonctionnelles capables d’exécuter plusieurs
instructions hétérogènes en parallèle

Instruction de 128 bits


8 sous-instructions de 32 bits
32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits

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

Fetch Lecture de l’instruction en mémoire programme

Decode Décodage de l’instruction

Read/Write Lecture ou écriture d’un opérande en mémoire de donnée

Execute Exécution éventuelle d’une opération arithmétique/logique

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

n Gain en vitesse d’exécution


n Electronique et programmation plus
complexe
n Un retard peut se produire s’il existe un
conflit de ressources

9/03/22 77
Mesure de la performance
! Mesure de la vitesse : : vitesse

9/03/22 78
Mesure de la performance : vitesse

Exemple: DSP56156 30 MIPS


Taux d’échantillonnage 48kHz ==> Te = 20.833 μs
àQuel est le nombre maximal d’instructions que peut
exécuter ce DSP entre 2 échantillons ?

9/03/22 79
IV. Performances des DSP

Mesure de la performance
Mesure de performances : vitesse

Exemple: DSP56156 30 MIPS


Mesure
!Taux de la vitesse 48kHz
d’échantillonnage : àQuel est le nombre
maximal d’instructions que peut exécuter ce DSP
! Exemple: DSP56156 30 MIPS
entre 2 échantillons ?
# Taux d’échantillonnage 48kHz ==> Te = 20.833 µs
# Quel est le nombre maximal d’instructions que peut exécuter
n Taux d’échantillonnage
ce DSP entre 2 échantillons48kHz
? ==> Te = 20.833 μs
n

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.

§ La mesure des performances par benchmark complète


avantageusement la mesure de la vitesse.
9/03/22 81
Mesure de la performance : Benchmark

Benchmark : mesurer le temps que met le DSP


pour exécuter des programmes
"standard" de TNS.

La mesure des capacités d’un DSP par benchmark


est intéressante, car elle tend à mesurer la
performance globale du système de TNS (y compris
les capacités du programmeur !)

9/03/22 82

You might also like