Académique Documents
Professionnel Documents
Culture Documents
Définition
• Signal
• Une suite de nombres et non pas des suites de lettres, de mots ou de
phrases. « Yves Meyer »
• Toutes grandeurs physiques susceptibles de variations
• Traitement
• Transformation destinée à rendre le signal exploitable
• D’où vient un signal
• De l’information cachée dans la représentation choisie
• Echantillonnage
• Compression
• Décomposition dans un espace orthogonal
• Traitement Numérique du signal
• Modéliser – ou identifier – consiste en l’analyse d’un signal ou d’un
système, dans le domaine temporel ou fréquentiel (i.e. spectral).
• Synthétiser – ou générer – un signal.
• Transmettre un ensemble de signaux sur un support.
• Transformer un ensemble de signaux à l’aide d’un système linéaire
(filtrer, moduler, coder, . . . ) ou non linéaire (()2 , | |, ...)
TNS : pourquoi ?
garantie
pas de par le changements
dérives en nombre de aisés des
température bits et elle paramètres système reproductibilité́,
ou dans le est des VLSI pas de réglages
temps déterminée algorithmes
à priori ́
CAN: conversion analogique numérique, filtre anti repliement nombre de bits, loi de
conversion, fréquence d’échantillonnage
Processeur: Organe de calcul dont l’architecture est «adaptée» au traitement du signal
CNA: conversion numérique analogique, filtre de restitution nombre de bits, loi de
conversion, fréquence d’échantillonnage
Master - 2 : Automatique, Traitement du signal et Informatique industrielle Pr: Mohamed LAMHAMDI
Chapitre 1 : Généralités sur les DSP Traitement Numérique du signal
• Filtrage, convolution
• y = y + x.h : MAC (multiplication-accumulation)
• Adaptation
• yn = yn-1 + x.h : MAD (multiplication-addition)
• FFT, multiplication complexe
• xr = xr.wr - xi.wi
• xi = xr.wi + xi.wr
• Viterbi
• a 1 = x1 + x 2 ; a2 = y1 + y2
• Estimation de mouvement
• sad += |xi,j - yi+u,j+v| : SAD (sum-of-absolute-difference)
UMTS : Universal Mobile Telecommunications System, GSM: Global System for Mobile
ADSL: Asymmetric Digital Subscriber Line Communications
MOPS: Millions d'opérations par seconde MIPS : million instructions par seconde
Master - 2 : Automatique, Traitement du signal et Informatique industrielle Pr: Mohamed LAMHAMDI
Chapitre 1 : Généralités sur les DSP Traitement Numérique du signal
Microcontrôleur • DSP
• Faible coût – Coût relativement faible
• Faible consommation électrique – Faible consommation électrique
• Mémoire limitée – Jeu d'instruction spécialisé
• Peu adapté aux signaux numériques – Calculs numériques
• Adapté aux tâches de contrôle – Entrée-sortie de données à grand débit
• Programmation bas niveau – Mémoire limitée
Introduction
• DSP: Digital Signal Processor (processeur de signal numérique)
• Composant électronique de type microprocesseur pour les calculs numérique
• Application principale : traitement de signaux numérique
• Introduit en 1982
• Conçu pour être efficace pour TNS
• Programmable ( reconfigurable )
• Il est toujours embarqué
• Traitement du signal : Application d’opérations mathématiques sur des
signaux
• Représentation des signaux sous formes d’échantillons
• Signaux numériques obtenus grâce aux signaux physiques et des CAN puis
des CNA
Master - 2 : Automatique, Traitement du signal et Informatique industrielle Pr: Mohamed LAMHAMDI
Chapitre 1 : Généralités sur les DSP Processeurs de Traitement Numérique du Signal
Tâches élémentaires
• Compression de signal (parole, audio, vidéo)
• Filtrage
• Modulation et démodulation
• Détection et correction d’erreurs
• Contrôle. & Mesure
• Traitements audio
• Reconnaissance vocale
• Synthèse de signaux
Schéma électrique
• Un point essentiel des DSP est la représentation des nombres (les données) qu’ils
peuvent manipuler.
• Dans tous les cas, les performances du DSP sont critiques. Le concepteur d’un
système à base de DSP doit évaluer :
• La puissance nécessaire pour réaliser les traitements numériques voulus,
• Les performances des DSP disponibles pour réaliser son application.
Autre méthode
Consiste à définir une fois pour toute une opération de référence comme étant un
« MAC », puisqu’il s’agit d’une fonction commune à tous les DSP. Il ne reste plus
qu’à compter le nombre de « MAC » par seconde.
Cette définition n’apporte pas beaucoup d’informations sur les performances des
DSP modernes.
Un « MAC » est exécuté en un seul cycle. Sachant que sur les DSP récents la
plupart des instructions sont également exécutées en un cycle, cela revient donc à
mesurer les MIPS du DSP.
• La vitesse de calcul pure d’un DSP n’est pas une indication universelle, les
méthodes et les résultats diffèrent d’un DSP à l’autre.
• La vitesse de calcul ne rend pas compte d'un certain nombre de
perfectionnement dont peuvent bénéficier tel ou tel DSP
• Certains DSP proposent des modes d’adressages plus performants que d’autres.
Les instructions itératives sont également importantes en terme de
performance (rapidité́ des boucles logicielles) et ne devraient pas être ignorées.
• le temps d’accès à la mémoire est un autre paramètre incontournable. (mémoire
vive rapide intégré placée dans l’espace d’adressage du DSP permet d’y ranger
données et programmes sans avoir à effectuer des transfère permanents de ou
vers l’extérieur)
Pour toutes ces raisons, la mesure des performances par benchmark complète
avantageusement la mesure de vitesse pure.
☞ benchmark : consiste à mesurer le temps que met le DSP pour exécuter des
programmes « standards » de traitements du signal.
La mesure des capacités d’un DSP par benchmark reste intéressante, car
elle tend à mesurer la performance globale du système de traitement
numérique (y compris les capacités du programmeur !)
Exemples d’applications
q Introduction
q Unité de traitement
⁃ Représentation des données
⁃ Comparaison Fixe- flottante
⁃ Éléments de l’unité de traite
⁃ Structure de l’unité de traite
q Unité de contrôle
⁃ Pipelines
⁃ Séquentiel contre Pipelines
⁃ Codage des instructions
⁃ Format des instructions
⁃ Structures de contrôle
q Unités de génération d’adresses
q Bus internes
⁃ Notion de bus
⁃ Types de Bus
⁃ Schéma de principe des échanges
q Unité de mémorisation
⁃ Organisation mémoire
⁃ Accès à la mémoire
⁃ Mode d’adressage
q Unité de communication
q Exemples DSP
Unité́ de contrôle
Unité́ de Unité́ de
traitement mémorisation
Unité́ de communication
Unité́ de contrôle (IP : Instruction Processor) : unité́ fonctionnelle (UF) qui interprète
les instructions et commande les autres UF
Unité́ de traitement (DP : Data Processor) : UF qui modifie ou transforme les données
Unité́ de mémorisation:
• IM : Instruction Memory : stocke les instructions
• DM : Data Memory : stocke les données traitées par le DP
Unité́ de communication (EIU : External Interface Unit) : contrôle les accès aux
données ou instructions externes, ou à d'autres processeurs
• Les DSP à virgule flottante sont plus souples et plus faciles à programmer.
• Un DSP à virgule flottante a un coût de fabrication supérieur % virgule fixe.
• Le format à virgule flottante occupe plus de place, (nécessite d'encoder la
position de la virgule représentée par l'exposant).
• Pour le même espace disponible, la virgule flottante offre donc une étendue de
nombres plus grande au détriment de la précision.
• Arithmétique :
• Dynamique limitée : [-Xmax et Xmax]
• Possibilité́ de débordement → nécessité́ de recadrer les données
• Développement :
• Temps de développement plus long
• Etude la dynamique des données, détermination du codage et des recadrages
• Architecture :
• Operateurs plus simples
• Largeur des données bnat : 16 bits
• Efficacité́ énergétique plus importante, consommation moins importante
• Processeur plus rapide
• Processeur moins cher (surface du circuit moins importante)
• Marché : applications grand public
• 95% des ventes en 96
• Arithmétique :
• Dynamique importante : 1500 dB pour 32 bits
• Développement
• Temps de développement plus court
• Recadrage des données assuré par le processeur
• Compilateur de langage de haut niveau plus efficace : plus grande
portabilité
• Architecture :
• Largeur des données : 32 bits
• Operateurs plus complexes (gestion de la mantisse et de l’exposant)
• Processeur plus cher et consommant plus
• Marché
• Applications nécessitant une grande dynamique : audio numérique
• Applications avec des faibles volumes
• Multiplieur câblé́
• Multiplication en 1 cycle ou pipelinée (1 résultat de multiplication par cycle)
• Le résultat est fourni directement à l’UAL ou il est stocké dans un registre
(P register)
• Largeur des opérandes source : bnat
résultat : bmult = 2.bnat
• U.A.L.
• Operations arithmétiques : addition, soustraction, incrémentation, négation
• Operations logiques : and, or, not…
• Largeur des opérandes sources et destination identique badd ≥ 2.bnat
• Additionneur indépendant de l’UAL
• Registres à décalage (recadrage des données)
• Spécialisé́ : réalisation de quelques décalages prédéfinis en //
• En barillet : réalisation d ’un décalage quelconque en 1 cycle
• Unités de saturation ou d’arrondi
• Unités spécifiques
• Unité́ de manipulation de bit,
• Viterbi,
• ...
Exemples : TMS320C50
Exemples : TMS320C54X
EX conflit: l’une des quatre instructions exige plus d’un cycle d’horloge.
Master - 2 : Automatique, Traitement du signal et Informatique industrielle Pr: Mohamed LAMHAMDI
Chapitre 2 : Architectures des DSP Unité́ de contrôle
Pipelines: Différents types de pipelines
• Le pipeline atteint son plein rendement une fois qu’il est “plein”
• Un retard peut se produire
• S’il existe un conflit de ressources (retard ponctuel)
• Accès à la mémoire
• Utilisation des bus
• En cas de rupture de séquence (vidange du pipeline)
• Branchement non prévu
• Appel de sous-programme
• Interruption
Exécution séquentielle
Types d’instructions
• Calcul
• Operations arithmétiques
• Addition, soustraction, multiplication
• Operations logiques
• AND, OR, tests • Décalage
• Contrôle du programme
• Branchement, répétition
• Appels et Retours
• Sous-programmes, interruptions
• Manipulation de la pile
• Divers (NOP)
• Mémoire
• Chargement et sauvegarde
• Déplacement de données de mémoire à mémoire
Exemple du TMS320C5416
Interface
Bus
unité́ de traitement
• L’architecture du DSP lui donne donc une organisation autour de deux types de mémoire :
• De la mémoire pour le programme
• De la mémoire pour les données
• Ces types de mémoire seront physiquement de :
• La ROM
• La RAM (DARAM, SARAM...).
• Selon la version du circuit, le type (ROM, RAM) et la taille de la mémoire intégrée dans
le circuit diffère.
• Chaque DSP possède donc une certaine quantité de RAM à double accès (DARAM), de la
RAM à simple accès (SARAM) et de la ROM interne.
• La RAM est généralement réservé aux données
• La ROM au programme
Architecture Harvard
Exemple du TMS320C54xx :
• 1 bus programme (P)
• 2 bus de lecture des données (C et D)
• 1 bus d’écriture des données (E)
Mode d’adressage
• Un mode d'adressage constitue la façon dont une instruction particulière
accède aux opérandes qu’elle doit manipuler.
• Les modes d'adressages sont donc liés aux instructions elles-mêmes.
• Tous les modes d'adressages ne sont pas disponibles pour toutes les
instructions.
• Pour une instruction qui manipule plusieurs opérandes, les différents
opérandes peuvent être accédés avec des modes d’adressage
Mode d’adressage
Adressage immédiat
Dans ce mode d'adressage un opérande se trouve dans l'instruction elle-même. On
obtient l’opérande sans avoir à faire un accès supplémentaire à la
mémoire puisque ce dernier fait partie intégrante de l'instruction, d'où le
qualificatif immédiat
Adressage direct
le champ opérande de l'instruction contient l'adresse effective de l’opérande
et on doit faire un accès à la mémoire pour obtenir ce dernier
Mode d’adressage
Adressage basé (relatif):
Dans les instructions les opérandes sont repères par des adresses relatives qui sont
utilisées au moment de l’exécution avec le contenu d’un registre de base pour déterminer
les adresses effectives des opérandes.
Mode d’adressage
Adressage indexé
Ce mode d'adressage est semblable au mode d'adressage basé. Le calcul de l'adresse
effective de l’opérande d’une instruction consiste encore à ajouter à l'adresse de
l’opérande le contenu d'un registre d'index.
Dans ce cas le calcul de l'adresse effective peut alors être résumé par:
L’adresse de base est située dans l’instruction. Contrairement au registre de base dont
la valeur reste généralement constante au cours de l’ exécution d'un programme
Mode d’adressage
Adressage indirect
Dans ce mode d'adressage, le champ adresse de l'instruction ne contient plus
l'adresse de l’opérande, mais l'adresse d'une position mémoire qui, elle, contient
l'adresse de l’opérande
Protocole JTAG
Unité de communication
• Périphériques intègres:
• ports séries
• ports parallèles
• Timers
• Dma
• générateur de wait state
• host port
• PLL
• Connexion aisée aux CAN et CNA:
• les CAN/CNA ne sont généralement pas intègres dans les
DSP afin de pouvoir choisir un CAN/CNA en adéquation avec
l’application
Exemple du TMS320C5416
q Approche de développement
⁃ Organigramme développement
⁃ Cycle de développement
⁃ La partie matérielle
⁃ La partie logicielle
⁃ Définition des ressources nécessaires
⁃ La sélection du DSP le plus adapté
q Structure matérielle de développement
⁃ Le simulateur
⁃ Le module d’évaluation
⁃ L’émulateur temps réel
q Structure logicielle de développement
⁃ Les logiciels de développement
⁃ Développement en C ou en assembleur
⁃ Inefficacité des compilateurs C
⁃ Organigramme d’un système de développement de
Logiciel pour DSP
Cycle de développement
Cycle de développement
• Conception fonctionnelle
• Spécifications du flot de données du TS,
• Simulation, validation
• Prototypage rapide
Matlab/Simulink (Mathworks), SPW (CoWare), Cossap (Synopsys), Ptolemy (Université de
berkley)
• Développement du code
• Implantation matérielle : code VHDL
• Implantation logicielle : code C, Ass
Cycle de développement
• Implantation matérielle
• Synthèse du circuit
• Simulation VHDL et validation
• Analyse des performances
• Test
• Implantation logicielle
• Génération de code (compilateur C/ass, linker)
• Test & Debug : validation du code
• Analyse : mesure des performances
Cycle de développement
Partie matérielle
• Elle s’appuie sur des outils classiques adaptés aux spécificités des DSP.
• L’approche est différentes de celle utilisée pour la partie matérielle, car il est
toujours possible de recommencer autant de fois que nécessaire pour arriver
au résultat.
• La conception logicielle n’en est pas plus facile pour autant, car le programme
réalise l’essentiel du traitement du signal.
Le simulateur
• Le simulateur est un programme particulier exécuté́ par un PC ou une station
de travail.
• Son rôle consiste à simuler le plus exactement possible le fonctionnement du
DSP cible.
• Ne nécessite pas la mise en œuvre du DSP cible, le test d’un module logiciel
peut donc se faire rapidement dès sa création.
• L’interface utilisateur du simulateur permet de consulter :
• Les mémoires,
• Tous les registres internes du DSP,
• Ses entrées/sorties, etc.
• Le simulateur exécute chaque instruction DSP comme le ferai le DSP lui-
même, et en répercute les résultats dans les mémoires et les registres
simulés.
• L’écriture d’un logiciel DSP est un processus très itératif, la disponibilité́ d’un
simulateur est donc toujours appréciable au gain de temps de développement.
• L’inconvénient est que le logiciel DSP en cours de développement n’est pas du
tout exécuté en temps réel.
• L’émulateur temps réel est l’outil privilégié pour développer des applications DSP.
C’est l’outil le plus souple et le plus performant, (pas des limitations).
• Son rôle consiste à émuler en temps réel le fonctionnement du DSP au sein même
du prototype de l’application à développer.
• Les ressources du DSP cible sont libres pour tester non seulement le code du
programme de l’application, mais également le fonctionnement du prototype.
• un émulateur est piloté par un PC, (Possibilité d’examiner la mémoire et les
registres du DSP).
• Il est également possible de poser des points d’arrêts à déclenchements
sophistiqués,
• Un émulateur permet de garder une trace des instructions exécutées dans telle
ou telle partie du code à tester, (facilite le débogage).
• Un émulateur reste néanmoins handicapé par son prix élevé́ dont il faut tenir
compte dans le coût global d’un développement.
les DSP récents incluent directement dans leurs cœurs des fonctions
d’émulation (points d’ arrêts, registres spéciaux, etc.) Cette approche permet
de simplifier la conception des émulateurs et tends à les rendre moins chers
• Développement en assembleur :
• Le code est optimisé
• Le code n’est pas portable
• Demande du savoir faire
• Développement en C :
• Plus abordable rapidement
• Beaucoup moins performant et pas aussi simple ...
• Conseils :
• ne pas déclarer ses variables en float (chaque opération fera appel à des routines
de la bibliothèque de calcul en flottant)
• déclarer les variables en int et les recadrages sont gérés par des décalages :
• nécessité de connaître les conventions utilisées par le compilateur
– ex: renvoi d ’une donnée en double précision en mémoire
• Même lorsqu’ils sont spécialement optimisés pour le DSP cible, les compilateurs
C ne permettent pas de générer un programme ayant les performances d’un
code bien écrit en assembleur par un développeur confirmé.