Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
I. Introduction
VI. Implémentations
2 M. NAJOUI
M. NAJOUI 1
I. Introduction
Définitions
Le signal électrique (impulsions), le signal sonore (sons) et le signal lumineux (voyants) sont des
types de signaux.
f(t)=5t : une seule variable
f(x,y)=2x+3y : deux variables
S1 = A Sin(ωt) : signal réel
S2 = A Cos(ωt)+j A Sin(ωt) : signal complexe
S4(t)= [S1(t), S2(t), S3(t)] : Signal multi-canaux
I(x,y,t)= [Ir(x,y,t), Ig(x,y,t), Ib(x,y,t)]: Signal multidimensionnel
3 M. NAJOUI
I. Introduction
Pourquoi leTNS?
Le traitement analogique du signal est réalisé souvent par
des composants électroniques tels que :
Résistances.
Mise en œuvre difficile, Coûteux,
Condensateurs.
Reproductibilité difficile
Inductances.
4 M. NAJOUI
M. NAJOUI 2
I. Introduction
Pourquoi le TNS?
Avec le traitement numérique du signal, il est facile de :
Changer l’application.
Souplesse : Programmation flexible,
Corriger l’application. Développement rapide, Reproductibilité. ☺
Mettre à jour des applis.
Un seul circuit Plusieurs applications
6 M. NAJOUI
M. NAJOUI 3
Besoins en TNS
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
7 M. NAJOUI
Calculs rapides :
Multiplications-accumulations rapides
Bande passante de memoire importante
Support matériel/logiciel pour accélérer le contrôle des algorithmes
Contraintes temps réel :
Entrées/sorties a débit fixe
Prédiction des temps de réponse DSP !
Contraintes des systèmes embarqués :
Basse consommation d‘énergie
Taille des programmes Les DSP ont une architecture
matérielle et logicielle
Production de masse : dédiée permettant de
Faible coût répondre à ces besoins
Rapidité de développement
8 M. NAJOUI
M. NAJOUI 4
Classification des processeurs
9 M. NAJOUI
La consommation d'énergie.
Le prix
10 M. NAJOUI
10
M. NAJOUI 5
Classification des processeurs
contrôle programmable.
Faible consommation ☺
Traitement parallèle ☺
11 M. NAJOUI
11
Solution :
Concevoir des processeurs spécifiques pour faire du TNS.
DSP
Coût relativement faible ☺
Mémoire limitée
12 M. NAJOUI
12
M. NAJOUI 6
Classification des processeurs
Conclusion :
13 M. NAJOUI
13
Signal
original Signal traité
Convertisseur Convertisseur
Analogique
Numérique
DSP Numérique
Analogique
Entrées/Sortie
14 M. NAJOUI
14
M. NAJOUI 7
DSP ?
15 M. NAJOUI
15
Un peu d’histoire
1987
16 M. NAJOUI
16
M. NAJOUI 8
Domaines d’application des DSPs
Communications Médical
Modem, téléphonie Equipements de monitoring
(EEG, ECG)
Télévision & radio
Imagerie (IRM…)
numérique
Implants cochléaires,
Cryptage
Instrumentation
Audio
Analyseurs de spectre
Mixage et édition Générations de fonctions
Effets Interprétation de signaux
Suppression de bruit sismiques,
Annulation d’écho Automatisation
Image / Vidéo Commande des machines
Compression/Codage Contrôle des moteurs
Traitement Robots
Militaire Automobile
Contrôle du moteur
Imagerie (radar, sonar)
Assistance au freinage
Cryptographie
Aide à la navigation
Guidage de missiles
Commandes vocales
Navigation
Tableau de bord
17 M. NAJOUI
17
18 M. NAJOUI
18
M. NAJOUI 9
Principaux constructeurs de DSP
Freescale (ex-Motorola)
7.00%
3.00% Autres (NXP, NEC... )
19 M. NAJOUI
19
Rôle du DSP
Le traitement numérique du signal revient à effectuer
essentiellement des opérations arithmétiques de base du type
A = (B x C) + D
Le rôle principal d’un DSP est d’effectuer le plus rapidement
possible, en principe en un seul cycle d'horloge, l'opération
multiplication/addition sur des grandeurs numériques :
MR=X⋅Y +R MAC : Multiply and
X et Y sont des données ou des constantes,
R une donnée, une constante ou un résultat précédent. ACcumulate
MR est le résultat de l'opération arithmétique de base.
A.L.U.
Accumulateur
20 M. NAJOUI
20
M. NAJOUI 10
DSP vs Microporocesseur
Un microprocesseur classique nécessitera plusieurs cycles
d’horloge pour effectuer le calcul d’une opération MAC,
NB : certain
processeurs ne
nécessiteront
que 4 cycles (2
chargement +1
mul + 1add)
21 M. NAJOUI
21
22 M. NAJOUI
22
M. NAJOUI 11
Représentation des nombres
Les valeurs traitées (coefficients, échantillons…) sont représentées sous
les deux formes suivantes :
DSP à
23 M. NAJOUI
23
Complément à deux
Inverser les bits de l'écriture binaire de la valeur absolue du nombre
(complément à un),
Ajouter 1 au résultat.
Exemple :
Calculer : 3 + (−4) ?
= (−7) ou (−1)
24 M. NAJOUI
24
M. NAJOUI 12
Représentation des nombres : Virgule fixe
Complément à deux
Nombre Codage
Nombre positif :
3 0 1 1 codé comme un
2 0 1 0 binaire naturel
1 0 0 1
0 0 0 0
-1 1 1 1 Nombre négatif :
Inversion des
-2 1 1 0 bits puis ajout
-3 1 0 1 de 1
-4 1 0 0
Signe
25 M. NAJOUI
25
26 M. NAJOUI
26
M. NAJOUI 13
Représentation des nombres : Virgule fixe
27 M. NAJOUI
27
28 M. NAJOUI
28
M. NAJOUI 14
Représentation des nombres : Virgule flottante
29 M. NAJOUI
29
30 M. NAJOUI
30
M. NAJOUI 15
Représentation des nombres
31 M. NAJOUI
31
32 M. NAJOUI
32
M. NAJOUI 16
Architectures des processeurs
Plusieurs solutions possibles pour minimiser le temps d'exécution d'un
programme:
Tx = Ni * Tc * Nc
Minimiser le Ni :
ADDWF f,d [tâche1 : lecture mémoire, tâche2 : addition, tâche3 : stockage]
Exemple : PIC16F84 35 instructions
RISC : nbre d’instructions réduit et qui s’exécutent rapidement.
Minimiser le Tc et Nc :
Exemple : LD mem,reg1 ADD reg1,reg2 ST reg2,mem
Si tc = Tc/3 et nc = Nc/3 tx = Tx/9
CISC : jeu d’instructions riche avec des instructions complexes afin de
simplifier la tâche du compilateur.
Minimiser Ni, Tc et Nc :
Placer plusieurs instructions dans un mot de taille assez grande (> 100 bits).
Exécution en parallèle.
VLIW : HW simplifié, mais elle exige des compilateurs puissants
33 M. NAJOUI
33
34 M. NAJOUI
34
M. NAJOUI 17
Eléments principales d’un DSP
Unité de mémoire
CPU
Unité de calcul
Unité de commande (Pipeline)
Unité de génération d’adresses
Périphériques
35 M. NAJOUI
35
Quelques spécificités
Filtres FIR :
Pour chaque cellule a(i)x(n-i) :
• Recherche de l’instruction
• Recherche du coefficient a(i)
• Recherche de la donnée x(n-i) 4 accès à la mémoire
• Multiplication a(i)x(n-i)
• Accumulation a(i-1)x(n-i-1) + a(i)x(n-i) 2 accès à l’unité de calcul
• Décalage en mémoire x(n-i) x(n-i-1)
36 M. NAJOUI
36
M. NAJOUI 18
Unité de mémoire
Architecture de Von Neumann (microprocesseurs) :
Les échanges s'effectuent de manière simple entre l’ALU et la mémoire unique par
un bus transitant les codes de programme et les données.
37 M. NAJOUI
37
Unité de mémoire
38 M. NAJOUI
38
M. NAJOUI 19
Unité de mémoire
39 M. NAJOUI
39
40 M. NAJOUI
40
M. NAJOUI 20
CPU : Unité de commande
41 M. NAJOUI
41
PIPELINE
Principe : Découper une opération en plusieurs
tâches élémentaires à effectuer en parallèle.
Exemple : pipeline à 4 étages
42 M. NAJOUI
42
M. NAJOUI 21
CPU : Unité de commande
PIPELINE
43 M. NAJOUI
43
PIPELINE
Différents types de pipelines
44 M. NAJOUI
44
M. NAJOUI 22
CPU : Unité de commande
PIPELINE : Ex C66xx
Les phases du pipeline sont : Fetch, Decode et Execute.
Fetch se fait en 4 étapes :
PG: Program address generate
PS: Program address send
PW: Program access ready wait
PR: Program fetch packet receive
Decode se fait en 2 étapes :
DP: Instruction dispatch
DC: Instruction decode
Execute : Le nombre des étapes d’exécution se diffère
d’une instruction à une autre.
45 M. NAJOUI
45
PIPELINE : Ex C66xx
46 M. NAJOUI
46
M. NAJOUI 23
CPU : Unité de commande
47 M. NAJOUI
47
PIPELINE
Avantage :
Gain en vitesse d’exécution
Inconvénient :
Electronique et programmation complexe
Un retard peut se produire :
S’il existe un conflit de ressources (accès à la mémoire ou
utilisation des bus)
En cas de rupture de séquence (branchement non prévu,
appel de sous-programme ou une interruption).
48 M. NAJOUI
48
M. NAJOUI 24
Périphériques
Port série
Port parallèle
Timers
Contrôleur d’interruption
Horloge interne
DMA
49 M. NAJOUI
49
Nouvelles architectures
Coût élevé par rapport aux AC.
Rendues nécessaires par de nouveaux besoins
• Performance (téléphonie 4G, 5G…)
• Rapidité de développement
50 M. NAJOUI
50
M. NAJOUI 25
DSP à hautes performances
Plusieurs solutions :
51 M. NAJOUI
51
Limites :
52 M. NAJOUI
52
M. NAJOUI 26
DSP à hautes performances
Augmenter le travail réalisé au cours d’un cycle :
Parallèlisme
SIMD : La même instruction est appliquée simultanément à
plusieurs données pour produire plusieurs résultats.
Superscalaire : Plusieurs instructions dans 1 cycle d’horloge
Plusieurs MAC, plusieurs ALU, cache données
Le processeur détecte lui-même les instructions pouvant être exécutées
en parallèle
Circuit de contrôle complexe et consommation elevée.
VLIW (Very Long Instruction Word) : Plus d’instructions
dans 1 cycle d’horloge
VLIW 8 voies = 8 instr. 32 bits = 256 bits
Le compilateur est responsable de présenter au matériel des
instructions exécutables en parallèle
Augmentation du
Hardware plus simple que superscalaire nombre de cœurs du
Approches hybrides (SIMD/VLIW) DSP (multi-core)
53 M. NAJOUI
53
Mesure de performances
Mesure de la vitesse :
54 M. NAJOUI
54
M. NAJOUI 27
Mesure de performances
Mesure de la vitesse :
55 M. NAJOUI
55
Mesure de performances
56 M. NAJOUI
56
M. NAJOUI 28
Mesure de performances
Programmes standards
Comment choisir ces programmes ?
Quel domaine d’applications faut-il choisir ?
La qualité de l’implémentation !!!
57 M. NAJOUI
57
58 M. NAJOUI
58
M. NAJOUI 29
Gammes de DSP
Gammes de TI : C2000
Lowest Cost
Control Systems
Motor Control
Storage
Digital Ctrl Systems
TMS320
C5000
Performance &
Efficiency Best Ease-of-Use
Best MIPS per Critical apps
Watt / Dollar / Size C6000 Comm Infrastructure
Wireless Base-stations
Wireless phones
Internet audio players DSL
Digital still cameras Imaging
Modems Multi-media Servers
Telephony Video
VoIP
59 M. NAJOUI
59
60 M. NAJOUI
60
M. NAJOUI 30
Evolution des DSP à virgule flottante
61 M. NAJOUI
61
62 M. NAJOUI
62
M. NAJOUI 31
TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor
Assure la communication entre un PC et le DSP pour des objectifs de débogage : chargement du code
pour exécution par les cœurs, mise en pause/marche de chacun des cœurs, …
63 M. NAJOUI
63
WR : Réinitialisation
sans mettre hors
tension des
composants
64 M. NAJOUI
64
M. NAJOUI 32
TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor
65 M. NAJOUI
65
Architecture du TMS320C6678
66 M. NAJOUI
66
M. NAJOUI 33
Architecture du TMS320C6678
67 M. NAJOUI
67
Architecture du TMS320C6678
68 M. NAJOUI
68
M. NAJOUI 34
Architecture du TMS320C6678
69 M. NAJOUI
69
Architecture du TMS320C6678
Optimiser le
transfert des
paquets issus des
interfaces de
communications
haut-débit sur le
PCIe (5 Gbps), RapidIO (5 Gbps), ETHERNET (1 Gbps), bus TeraNet,
TSIP (32 Mbps), HyperLink (50 Gbps, entre 2 DSP C6678) ainsi que de
réduire les
Interface
latences des
entre le
transferts
DSP et les
mémoires entre
mémoires
cœurs.
flash
externes
Protocoles de comm haut-débit
70 M. NAJOUI
70
M. NAJOUI 35
Structure interne d’un cœur C66xx
71 M. NAJOUI
71
72 M. NAJOUI
72
M. NAJOUI 36
Structure interne d’un cœur C6xxx
73 M. NAJOUI
73
74 M. NAJOUI
74
M. NAJOUI 37
Performances d’un cœur du C6678
75 M. NAJOUI
75
76 M. NAJOUI
76
M. NAJOUI 38
Caractéristiques du DSP C6713
77 M. NAJOUI
77
78 M. NAJOUI
78
M. NAJOUI 39
Développement d’une application embarquée
Conception algorithmique
Développement sur PC
C ou assembleur ou autres…
Environnement de développement intégré (IDE)
Compilation, link
79 M. NAJOUI
79
Assembleur Langage C
Langage bas-niveau Langage de plus haut
Fastidieux niveau
Jeux d’instructions Plus rapide à coder
complexes et irréguliers Meilleure portabilité
Spécifique à chaque
constructeur
80 M. NAJOUI
80
M. NAJOUI 40
L’outil de développement
Téléchargement : http://processors.wiki.ti.com/index.php/Download_CCS
81 M. NAJOUI
81
Développement de l’application
82 M. NAJOUI
82
M. NAJOUI 41
Notre première application
83 M. NAJOUI
83
Ou
84 M. NAJOUI
84
M. NAJOUI 42
Notre première application
85 M. NAJOUI
85
TMS320C6678
86 M. NAJOUI
86
M. NAJOUI 43
Notre première application
DSK6713
87 M. NAJOUI
87
88 M. NAJOUI
88
M. NAJOUI 44
Notre première application
89 M. NAJOUI
89
90 M. NAJOUI
90
M. NAJOUI 45
Notre première application
91 M. NAJOUI
91
92 M. NAJOUI
92
M. NAJOUI 46
Notre première application
93 M. NAJOUI
93
-stack 0x5000
-heap 0x5000
MEMORY
{
L2SRAM : o = 0x00800000 , l = 0x00080000
}
SECTIONS
{
.text > L2SRAM
.data > L2SRAM
.cinit > L2SRAM
.const > L2SRAM
.cio > L2SRAM
.far > L2SRAM
.near > L2SRAM
.fardata > L2SRAM
.sysmem > L2SRAM
.stack > L2SRAM
}
94 M. NAJOUI
94
M. NAJOUI 47
Notre première application
95 M. NAJOUI
95
Cocher les cœurs que vous voulez utiliser pour l’exécution de votre
application. Après validation, l’application se chargera dans la cible et
vous pouvez voir tous les cœurs dans la fenêtre « debug ».
96 M. NAJOUI
96
M. NAJOUI 48
Notre première application
Après exécution sur un cœur vous devez voir le résultat de printf dans la
console. [TMS320C66x_0] This is my first application on TMS320C6678
97 M. NAJOUI
97
Simulateur
98 M. NAJOUI
98
M. NAJOUI 49
Chaine de compilation (2/2)
99 M. NAJOUI
99
TPs sur
TMS320C6713B
100 M. NAJOUI
100
M. NAJOUI 50
TP1 : Prise en main du CCS et C6713B
Objectifs :
Cliquer sur : Project New CCS Project. Ensuite remplir les informations
suivantes :
• Project name : nom de votre projet (exemple TP1)
• Output type : Executable
• Cocher la case Use default location
• Family : C6000
• Variant : C671x Floating-point DSP et sélectionner dans zone de droite
TMS320C6713
• Connection : Spectrum Digital DSK-EVM-eZdsp onboard USB Emulator
• Project templates and examples : choisir Empty Project (with main.c)
101 M. NAJOUI
101
• Ajouter le fichier csl6713.lib : aller dans le menu Project →Properties → CCS Build
→ C6000 linker → File search path → Include library file, cliquer sur Add et
sélectionner le fichier "C:\Program Files\C6xCSL\lib_3x\csl6713.lib“.
102 M. NAJOUI
102
M. NAJOUI 51
TP1 : Prise en main du CCS et C6713B
103 M. NAJOUI
103
Configuration de la cible :
Exécution :
104 M. NAJOUI
104
M. NAJOUI 52
TP2 : Implémentation d’un FIR sur C6713
Les objectifs :
En utilisant la commande fir1, calculer les paramètres d’un filtre FIR passe
bande d’ordre 100 avec les fréquences de coupure fc1=200 et fc2=400.
105 M. NAJOUI
105
En utilisant la commande fir1, calculer les paramètres d’un filtre FIR passe
bande d’ordre 100 avec les fréquences de coupure fc1=200 et fc2=400.
106 M. NAJOUI
106
M. NAJOUI 53
TP2 : Implementation d’un FIR sur C6713
Implémentation du FIR sur C6713
107 M. NAJOUI
107
LOGO
www.themegallery.com
108
M. NAJOUI 54