Vous êtes sur la page 1sur 5

Processeur de signal numérique 1

Processeur de signal numérique


Un DSP (de l'anglais « Digital Signal Processor », qu'on pourrait traduire par « processeur de signal numérique ») est
un microprocesseur optimisé pour traiter une grande quantité d'information en parallele a chaque cycle d'horloge, ce
qui est le cas, entre autres, pour le son et la vidéo[1]. Son application principale est le traitement numérique du signal
(filtrage, extraction de signaux, etc.)[1].
Un DSP est un processeur dont l'architecture est optimisée pour effectuer des calculs complexes en un cycle
d'horloge, mais aussi pour accéder très facilement à un grand nombre d'entrées-sorties (numériques ou analogiques).
La fonction principale utilisée dans le DSP est la fonction multiply-accumulate (MAC), c'est-à-dire une
multiplication suivie d'une addition et d'un stockage du résultat (fonction très utilisée dans les calculs
d'asservissement et de filtrage).
Ces fonctionnalités sont privilégiées, à la différence de celles que l'on retrouve dans un processeur généraliste
comme, par exemple, la gestion des données de façon conditionnelle (Tests, etc).
Les DSP sont utilisés dans la plupart des applications du traitement numérique du signal en temps réel. On les trouve
dans les modems (modem RTC, modem ADSL), les téléphones mobiles, les appareils multimédia (lecteur MP3), les
récepteurs GPS... Ils sont également utilisés dans des systèmes vidéo, les chaînes de traitement de son, partout où
l'on reçoit un signal complexe que l'on doit modifier à l'aide du filtrage.
En ce qui concerne les filtres, les DSP en simplifient grandement la réalisation pour plusieurs raisons :
• résultat prédictible et hautement répétable (caractéristique des circuits numériques, par opposition aux circuits
analogiques)
• nombre de composants externes réduit
• changement de filtre dynamique par simple programmation
• filtrage à phase linéaire.

Caractéristiques
• Bus de données et d'adresses séparés (architecture Harvard). Souvent double ou multiple architecture Harvard,
c’est-à-dire plusieurs bus de données séparés dans l'espace mémoire.
• Instructions spéciales pour opérations SIMD (Single Instruction, Multiple Data). Une seule instruction permet
d'effectuer plusieurs opérations simultanées dans les différents blocs du DSP.
• Seulement des processus parallèles, pas de multitâche. Des contraintes sont imposées car les DSP n'ont qu'une
gestion rudimentaire des interruptions quand ils en ont une.
• La possibilité d'être utilisé comme un périphérique accédant directement à la mémoire dans un environnement
hôte.
• Peut acquérir les données numériques d'un convertisseur analogique-numérique (CAN ou ADC), appliquer un
traitement à ces données et les restituer au monde extérieur grâce à un convertisseur numérique-analogique (CNA
ou DAC).

schéma de principe d'un DSP


Processeur de signal numérique 2

Les DSP peuvent être combinés avec d'autres composants dans le même boîtier. Par exemple, un ou plusieurs DSP
peuvent être combinés avec un microprocesseur classique et des convertisseurs ADC et DAC. Ce type d'assemblage
(circuits intégrés dédiés) permet de réduire les coûts dans des fabrications de grande série. Les fonctions de
traitement de signal peuvent également être réalisées à l'aide de FPGA, qui peuvent incorporer des « cœurs DSP »
(en général des MAC). La reconfiguration matérielle permet alors d'accroître le parallélisme des opérations. Les
différents types d'architecture disponibles permettent d'adapter les circuits de traitement aux besoins spécifiques de
l'application.
La majorité des DSP calculent exclusivement avec des nombres entiers. L'absence d'unité arithmétique en nombre
flottant rend le composant meilleur marché tout en permettant une grande vitesse de traitement des données. Un
multiplieur entier est en effet beaucoup plus simple qu'un multiplieur à virgule flottante. Les nombres entiers
permettent d'obtenir une précision suffisante pour la plupart des applications.
Cependant, certains DSP possèdent des unités de calcul en virgule flottante comme le TMS320C67x ou le
ADSP-TS20x. Des applications scientifiques ou, d'une manière générale, des applications qui nécessitent une grande
précision relative des résultats ou une large dynamique des valeurs peuvent imposer le choix d'un DSP à virgule
flottante.
De manière à optimiser la vitesse de traitement, les DSP utilisent des registres internes très larges. Par exemple, pour
la famille DSP56k de Motorola, nous trouvons dans l'ALU (unité arithmétique et logique) quatre registres d'entrée de
24 bits, deux registres accumulateurs de 48 bits et deux extensions de 8 bits des registres accumulateurs. Ces
dernières permettent d'obtenir une précision de 56 bits sur les registres accumulateurs, laquelle offre une bonne
précision aux calculs successifs et simplifie la gestion des erreurs pour le programmeur.
La ligne de démarcation entre les microprocesseurs à usages généraux et les DSP n'est pas toujours claire. Ainsi par
exemple, l'extension MMX des processeurs Pentium MMX comprend, selon Intel, « 57 nouvelles instructions
puissantes assignées au traitement efficace des données vidéo, audio et graphique. Ces instructions sont destinées
aux séquences répétitives et parallèles qui sont souvent présentes dans les applications multimédia. »
Les DSP proposent des performances étonnantes. Par exemple, le DSP AD1460 qui est composé de 4 ADSP-21060
dans le même boîtier a une puissance de calcul maximum de 460 MFLOPS (460 millions d'opérations en virgule
flottante par seconde). Un autre modèle, l'ADSP-21160 qui opère à 100 MHz, comporte un bus accéléré de mémoire
dont la bande passante est de 1,6 gigaoctets par seconde, 2 bus de données en 64 bits et 4 accumulateurs de 80 bits
pour les calculs sur des entiers. Grâce à cela, l'ADSP-21160 est capable d'exécuter une transformation de Fourier sur
un signal défini par 1024 points en seulement 46 μs.

Traitement numérique du signal


Le traitement numérique du signal effectue des opérations mathématiques. En comparaison, un traitement de texte ou
une base de données va classer des données mémorisées. Cela implique que des ordinateurs conçus pour la
bureautique ou d'autres applications générales ne sont pas optimisés pour traiter des algorithmes de filtrage ou
exécuter une analyse de Fourier.
Processeur de signal numérique 3

Manipulation de données Calculs mathématiques

Applications traitement de texte, base de données, tableur, traitement numérique du signal, contrôle de vitesse, simulation
typiques système d'exploitation scientifique, simulation électronique

Opérations mouvement de données (A → B) test de condition addition (A + B = C) multiplication (A x B = C)


principales (si A=B alors ...)

Les DSP sont capables d'effectuer une multiplication - accumulation (multiplication de deux valeurs avec addition ou
stockage du résultat dans un registre) en un seul cycle d'horloge. Certains modèles sont même capables de réaliser
plusieurs de ces opérations pendant chaque cycle d'horloge.
Dans une machine dont le bus de donnée est de n bits, la multiplication de deux nombres donne un nombre codé sur
2*n bits. Pour que cela ne devienne pas rapidement une source d'erreur dans les calculs, les DSP sont dotés de
registres accumulateurs de 2 x n bits auxquels sont associés des registres auxiliaires. La précision totale des registres
accumulateurs devient ainsi celle de 2 x n bits + le nombre de bits d'un registre auxiliaire.
Dans un appareil équipé de DSP, la vitesse d'exécution des calculs dans le DSP est généralement la partie
déterminante de la vitesse d'exécution du travail effectué par la machine. Il s'agit souvent de programmes très courts,
de quelques centaines de lignes au maximum dont certaines parties (boucles) doivent être optimisées au maximum.
C'est pourquoi beaucoup de programmeurs de DSP utilisent l'assembleur et analysent en détail le schéma d'exécution
du code par la machine.
Cependant, certains DSP ont une architecture tellement complexe qu'il devient long et difficile pour le programmeur
d'optimiser manuellement l'exécution. Il peut alors écrire son programme en C et laisser au compilateur le soin de
réaliser l'optimisation du code. S'il le souhaite, le programmeur pourra alors analyser le code généré par le
compilateur et y apporter les dernières retouches permettant d'obtenir du DSP la meilleure performance possible.
Le choix entre ces deux langages se fera donc en fonction de la complexité du programme, de la vitesse de traitement
souhaitée, du nombre de programmeurs qui travailleront sur le projet et du coût du produit. D'autres facteurs comme
l'expérience personnelle et les outils que propose le constructeur doivent aussi être considérés.

Fabricants
Il existe différents fabricants de DSP sur le marché :
• Analog Devices propose entre autres des DSP incorporant comme périphériques des ADC et des DAC.
• Freescale.
• Lucent.
• Microchip propose deux familles dénommées Digital Signal Contrôler (dsPIC30F et dsPIC33F), qui sont des
microcontrôleurs avec des capacités de calcul renforcées et des périphériques de conversion
analogique-numérique.
• Texas Instruments a une gamme étendue, comportant en particulier les familles C6000, C5000 et C2000.
Processeur de signal numérique 4

Notes et références
[1] Le Digital Signal Processor (http:/ / www. futura-sciences. com/ fr/ definition/ t/ technologie-2/ d/ dsp_1839/ ), sur le site futura-sciences.com

Liens externes
• dspGuru : DSP Central (http://www.dspguru.com/) Promouvoir l'échange des connaissances entre utilisateurs
des DSP, ceci du débutant au spécialiste.
• Pocket Guide to Processors for DSP (http://www.bdti.com/pocket/pocket.htm)
• The Scientist and Engineer's Guide to Digital Signal Processing (http://www.dspguide.com/)
• Resources for Real Embedded Systems Professionals (http://microcontroller.com/)
• DSP Education and Research (http://www.emlabs.info/) Liste mondiale d'universités qui ont des groupes de
recherche sur les DSP et d'autres systèmes embarqués.
• DSP Engineering Magazine (http://www.dsp-fpga.com/?w=1)
• Introduction to DSP (http://www.bores.com/courses/intro/chips/index.htm) Cours d'introduction de BORES
• Groupes de discussion sur les DSP (http://www.dsprelated.com/)
Sources et contributeurs de l’article 5

Sources et contributeurs de l’article


Processeur de signal numérique Source: http://fr.wikipedia.org/w/index.php?oldid=86135849 Contributeurs: 2A01:E35:8BCB:C3C0:C164:E68A:4D06:A2AB, Arroser, Badmood, BeLz,
ChrisJ, Chtfn, Coyau, Céréales Killer, Del29, Dhatier, DominiqueMichel, EDUCA33E, Foilogic, Francois Trazzi, Franquis, Freewol, Gmt, Gzen92, Haypo, JLiénard, Jef-Infojef, Jyp, Lebwibaga,
Lineroac, Lomita, Luzerne GANHIR, MagnetiK, Melky, Michco, Mig, Mu, Mutichou, Obscurs, Pano38, Phe, PieRRoMaN, Piku, Poulpy, Pulsar, Romanc19s, SRombauts, Seb35, Sebleouf,
Speculos, TBTB, Tiraden, Topeil, Tu'imalila, Vi..Cult..., Visite fortuitement prolongée, W'rkncacnter, Zedh, 26 modifications anonymes

Source des images, licences et contributeurs


Fichier:Dsp bloc fr.gif Source: http://fr.wikipedia.org/w/index.php?title=Fichier:Dsp_bloc_fr.gif Licence: Creative Commons Attribution-Sharealike 3.0 Contributeurs: Speculos

Licence
Creative Commons Attribution-Share Alike 3.0 Unported
//creativecommons.org/licenses/by-sa/3.0/

Vous aimerez peut-être aussi