Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
AU: 2020/2021
1
Position du Cours
Télécoms
Electro -
Electronique
technique Informatique
électronique Micro -
de puissance
électricité processeurs et
semi- traitement DSP Réseaux
conducteurs de signal
AU 2020/2021 2
Microprocesseurs Vs microcontrôleurs?
Les microprocesseurs et les microcontrôleurs sont des puces
électroniques programmables typiques utilisées à des fins différentes.
La différence clé entre eux est qu’un microprocesseur est un moteur de
calcul programmable constitué d’une unité arithmétique et logique,
d’un processeur et de registres, capable d’effectuer des calculs et de
prendre des décisions. Tandis qu’un microcontrôleur est un
microprocesseur spécialisé considéré comme un ordinateur sur une
puce car il intègre des composants tels qu’un microprocesseur, une
mémoire et des E/S.
AU 2020/2021 3
Plan du cours
AU 2020/2021 4
Introduction
Le TNS: pourquoi?
Introduction
• Stabilité: • Souplesse
- Insensibilité à l’environnement - Programmation flexible
- Précision connue et contrôlée - Développement rapide
- Reproductibilité - Facilité pour certains traitements
• Algorithmes de TNS :
- Filtrage / estimation spectrale - transformées
- codage/décodage - reconnaissance de la parole
- synthèse de signaux - élimination d’écho…
Introduction
• Le cahier des charges:
AU 2020/2021 7
Le TNS: comment?
Introduction
Signal
analogique
d’entrée
Signal
analogique de
sortie
numérique
AU 2020/2021 8
Le TNS: comment?
Introduction
AU 2020/2021 9
Classification
Classification
Classification
Classification
ASIC - ASSP : - Tâches dédiées ultra-rapides (réseau Gbit, MPEG, contrôleur
RAID...)
- Très gros volumes
FPGA : - Tâches dédiées rapides
- volumes faibles à moyens
DSP et microcontrôleurs:
- Acquisition et traitement de signal à vitesse modérée.
- Pilotage système : gestion machine à état, PWM...
- Applications à coût réduit - faible consommation d’énergie
Processeurs classiques:
- Algorithmique de haut-niveau : traitement d’image, intelligence
artificielle...
AU 2020/2021 13
Principaux constructeurs de DSP
AU 2020/2021 14
Applications
Applications
• Audio • Militaire
– Mixage et édition – Imagerie (radar, sonar)
– Effets – Cryptographie
– Suppression de bruit – Guidage de missiles
– Annulation d’écho – Navigation
AU 2020/2021 16
Applications
• Médical • Automatisation
– Equipements de monitoring – Commande de machines
(EEG, ECG) – Contrôle de moteurs
– Imagerie (IRM…) – Robots
• Instrumentation • Automobile
– Analyseurs de spectre – Contrôle du moteur
– Générations de fonctions – Assistance au freinage
– Aide à la navigation
– Commandes vocales
– Tableau de bord
AU 2020/2021 17
Applications
AU 2020/2021 18
Applications
AU 2020/2021 19
Applications
AU 2020/2021 20
Applications
AU 2020/2021 21
Applications
Console de mixage
AU 2020/2021 22
Applications
Récepteur GPS
AU 2020/2021 23
Applications
TV à écran LCD
AU 2020/2021 24
Applications
AU 2020/2021 25
Spécificités des DSP
Spécificités des DSP
AU 2020/2021 27
Algo1: Le Filtre RIF
a(M)
a(0) a(1) a(2) a(3) a(M-1)
AU 2020/2021 28
Algo1: Le Filtre RIF
AU 2020/2021 29
Spécificités des DSP
Objectifs :
– Réduire le temps passé à faire des calculs
– Augmenter les accès mémoire simultanés
– Réduire les accès mémoire
AU 2020/2021 30
Spécificités des DSP
Objectifs :
– Réduire le temps passé à faire des calculs
– Augmenter les accès mémoire simultanés
– Réduire les accès mémoire
Instruction MAC
(multiplication-accumulation)
en 1 seul cycle d’instruction
AU 2020/2021 31
Spécificités des DSP
Objectifs :
– Réduire le temps passé à faire des calculs
– Augmenter les accès mémoire simultanés
– Réduire les accès mémoire
Architecture Architecture
Von Neuman Harvard
(microcontrôleur) (DSP)
AU 2020/2021 32
Spécificités des DSP
Objectifs :
– Réduire le temps passé à faire des calculs
– Augmenter les accès mémoire simultanés
– Réduire les accès mémoire
Mode d’adressage circulaire
Buffer circulaire : Segment mémoire
contenant des données (échantillons,
coefficients…)
Accès par pointeurs générés et
incrémentés automatiquement
– Pas de test sur les pointeurs
– Pas de reset nécessaire
AU 2020/2021 33
Algo1: Le Filtre RIF
AU 2020/2021 34
Algo1: Le Filtre RIF
AU 2020/2021 35
Algo2: FFT sur N points
Sans Algorithme de
optimisation Cooley-Tukey
Calcul des N Séquentiel Simultané
échantillons y(n)
Nombre de N² N/2 log2(N)
multiplications
AU 2020/2021 36
Algo2: FFT selon Cooley-Tukey
AU 2020/2021 38
Spécificités des DSP
Résumé
Entrées/sorties
Modes d’adressage
Spécifiques
Bit reverse, circulaire
Flot continu de données
AU 2020/2021 39
Architecture fonctionnelle
des DSP
– Représentation des nombres
-> Unité de calcul
– CPU -> Unité de commande (pipeline)
-> Unité de génération d’adresses
– Unité de mémoire
– Périphériques
AU 2020/2021 41
Représentation des nombres
AU 2020/2021 42
Représentation des nombres
Ex sur 3 bits :
AU 2020/2021 43
Représentation des nombres
Poids 27 26 25 24 23 22 21 20
27 0 0 0 1 1 0 1 1
0 0 0 0 0 0 0 0 0
-4 1 1 1 1 1 1 0 0
Signe
AU 2020/2021 44
Représentation des nombres
Ex : 2,3125
Partie entière Partie fractionnaire
sur N-k bits en C2 sur k bits
AU 2020/2021 45
Représentation des nombres
AU 2020/2021 46
Représentation des nombres
- Ex : 010.01010 = 2,3125
010.01011 = 2,3438
- Si on doit coder 2,33, l’erreur sera de 2-6 max.
AU 2020/2021 47
Représentation des nombres
Exemple:
AU 2020/2021 48
Représentation des nombres
AU 2020/2021 49
Représentation des nombres
AU 2020/2021 50
Architecture fonctionnelle des DSP
Data Bus-A
Data Bus-B
Program Data Bus
Processing
Unit
Address Generation
AU 2020/2021 51
Structure interne du CPU
AU 2020/2021 52
Unités de calcul
Éléments principaux :
- Unité Arithmétique et Logique (ALU)
Opérations classiques (+, -, AND, OR…)
- Multiplieur-Additionneur
- Accumulateurs
- Registres à décalage (shifters)
- Manipulation de bits
AU 2020/2021 53
Unités de calcul
Multiplication accumulation :
AU 2020/2021 54
Unités de commande
AU 2020/2021 55
Pipeline
Ex : 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
AU 2020/2021 56
Pipeline
Sans
Pipeline
Avec
Pipeline
AU 2020/2021 57
Pipeline
AU 2020/2021 58
Pipeline
- Inconvénients:
Electronique et programmation plus complexe
AU 2020/2021 59
Pipeline
AU 2020/2021 60
Unité de génération d’adresse
• Méthodes pré-programmées
Incrémentation
Décrémentation
Adressage circulaire
Incrémentation bit-reverse (pour la FFT)
AU 2020/2021 61
Unité de mémoire
• Architecture Harvard
AU 2020/2021 62
Unité de mémoire
AU 2020/2021 63
Unité de mémoire
- Bancs de mémoire
AU 2020/2021 64
Unité de mémoire
AU 2020/2021 66
Unité de mémoire
AU 2020/2021 67
Périphériques
• Port série
– Communication avec codecs
• Port parallèle
– Communication avec une mémoire externe
• Timer
• Contrôleur d’interruption
• Horloge interne
AU 2020/2021 68
Architecture générale
DSP56303
(Source : Freescale)
AU 2020/2021 69
DSK/TMS320C6xxx de TI
AU 2020/2021 72
Utilisation des DSP TI
AU 2020/2021 73
Cycle de Développement
(fichier exécutable)
5-« Debugage »/Test du fonctionnement
5
AU 2020/2021 74
Le Langage Assembleur
Pour gagner de la place (concision du code)
Pour gagner du temps (d ’exécution pas de développement)
Couche indispensable entre le hard et les couches logiciels
supérieurs
Souvent lié à une programmation en C
Forme définitive d ’un programme après compilation
• Architecture conventionnelle
– Spécialisée pour le TNS
– Faible consommation, faible coût
– Difficulté de programmation
• Nouvelles architectures
– Plus grande consommation
– Coût plus élevé
– Rendues nécessaires par de nouveaux besoins
• Performance (téléphonie 3G et plus)
• Rapidité de développement
AU 2020/2021 78
DSP hautes performances
Deux solutions :
- Diminuer la durée d’un cycle d’horloge
Augmenter de la fréquence CPU
- Augmenter le travail réalisé au cours d’un cycle d’horloge
parallélisme
AU 2020/2021 79
DSP hautes performances
AU 2020/2021 80
DSP hautes performances
AU 2020/2021 81
DSP hautes performances
AU 2020/2021 83
Le parallélisme d’instructions
AU 2020/2021 84
Le parallélisme d’instructions
AU 2020/2021 85
Le parallélisme d’instructions
VLIW Vs Superscalaire?
AU 2020/2021 86
Le parallélisme d’instructions
AU 2020/2021 87
Le parallélisme d’instructions
AU 2020/2021 88
Le parallélisme d’instructions
AU 2020/2021 89
Le parallélisme d’instructions
RISC VLIW/SIMD
Tant qu’on n’a pas traité toutes les données Tant qu’on n’a pas traité toutes les données
{ {
N cycles de chargement de i données 1 cycle de chargement de N données
M cycles de traitements 1 cycle de M traitements qui peuvent
K cycles de sauvegarde de k données être identiques ou différents
} 1 cycle de sauvegarde de k données
}
AU 2020/2021 90
Le parallélisme d’instructions
AU 2020/2021 91
Mesure de performance
Mesure de la vitesse
MFLOPS Million Floating- Nombre d’opérations à virgule flottante
Point Operations (multiplications, additions, soustractions, etc.)
Per Second que le DSP à virgule flottante peut réaliser en
une seconde.
MIPS Million Instructions Nombre de codes machines (instructions) que
Per Second le DSP peut effectuer en une seconde.
MOPS Million Operations Nombre total d’opérations (traitement et
Per Second transferts de données, accès DMA, opérations
d’E/S) que le DSP peut effectuer en une
seconde.
MMACS Million Multiply Nombre de MAC que le DSP peut effectuer en
and Accumulate une seconde.
Per Second
AU 2020/2021 92
Mesure de performance
Ex 1 :
DSP dans un téléphone portable 40 MIPS
Ex 2:
DSP56156 30 MIPS
– Taux d’échantillonnage 48kHz Te = 20.833 μs
– Quel est le nombre d’instructions maximum entre 2 échantillons ?
AU 2020/2021 93
Mesure de performance
AU 2020/2021 94
Mesure de performance
Benchmark :
– mesurer le temps que met le DSP pour exécuter des programmes
"standard" de TNS
– Programmes standard
Comment les choisir ?
Dépendent des domaines
N multiplications Filtre RIF 2D
– Problème : dépend de la qualité de l’implémentation
AU 2020/2021 95
Gamme de DSP
Contrôle numérique
Faible consommation
(lecteur MP3, récepteur GPS,
équipement médical portable)
AU 2020/2021 96
Gamme de DSP
AU 2020/2021 97
Gamme de DSP
AU 2020/2021 98
Gamme de DSP
AU 2020/2021 99
Quelques DSP
AU 2020/2021 100
Méthodes et outils de
développements
Méthodes et outils de développements
• Programme : ensemble des instructions pour réaliser une fonction bien
définie (on doit utiliser l'outil fourni par le constructeur)
• Assembleur : l'assembleur génère le code machine à partir des
instructions. (Exemple : ADD A,B = 111000100101010001001) facile de
comprendre l'instruction ADD qu'avec les 0 et 1.
• Langage de haut niveau : ensemble d'instruction étendue, lent (par
rapport au langage assembleur), facile à programmer.
• Simulateurs : software d'implémentation des programmes sur DSP,
exécutés sur les PC, en simulant presque tous les fonctionnalités des DSP,
utilisés pour analyser la faisabilité de la conception avant d'attaquer la
partie hardware.
• Emulateurs : nous permet de contrôler et debugger directement le
résultat des instructions en exécutant sur les DSP.
• Debugger : ......
AU 2020/2021 102
Méthodes et outils de développements
AU 2020/2021 103
Matlab's Embedded IDE Link
AU 2020/2021 104
Langage de programmation
AU 2020/2021 105
Matlab's Embedded IDE Link
• Linker (Editeur de lien) : Combine les fichiers objets vers un seul fichier
objet exécutable.
AU 2020/2021 106
C6X Software Tools
AU 2020/2021 107