el oualkadi coursdsp0

25
Ecole Nationale des Sciences Appliquées – Marrakech Département Génie Electrique 2007-08 Cours DSP Pr. Ahmed EL OUALKADI

Upload: ha9a

Post on 21-Nov-2015

15 views

Category:

Documents


5 download

DESCRIPTION

cours DSP

TRANSCRIPT

  • Ecole Nationale des Sciences Appliques Marrakech

    Dpartement Gnie Electrique

    2007-08

    Cours DSP

    Pr. Ahmed EL OUALKADI

  • Cours DSP 2

    Table des matires

    1. Introduction

    2. Prsentation des DSP

    2.1. DSP : le cur dun systme de traitement numrique du signal

    2.2. Gnralits

    2.2.1. !umrisation du signal

    2.2.2. Rle du DSP

    2.2.3. Divers approches possibles

    2.3. !oyau du DSP

    2.4. Principales distinctions entre un microprocesseur et un DSP

    2.4.1. Lopration MAC

    2.4.2. Laccs la mmoire

    3. Architecture fonctionnelle des DSP

    3.1. Architecture dun processeur

    3.2. Architecture de Von !eumann

    3.3. Architecture de Harvard

    3.4. Utilisation de ces structures dans les DSP

    3.5. Utilisation de pipelines

    4. Classification des DSP

    4.1. Formats de donnes manipules par les DSP

    4.1.1. Les DSP virgules flottantes

    4.1.2. Les DSP virgules fixes

    4.2. Classification virgule fixe / flottante des DSP

    5. Performances des DSP

    5.1. Mesure de vitesse de calcul pure

    5.2. Mesure du temps dexcution Benchmark

    6. Mthodes et outils de dveloppements

    6.1. Dfinition des ressources ncessaires

    6.2. La slection du DSP le plus adapt

    6.3. Structure matrielle de dveloppement

    6.4. Structure logicielle de dveloppement

    7. Applications

    8. Conclusion

  • Cours DSP 3

    1. Introduction

    Depuis maintenant plusieurs annes, le traitement numrique du signal est une technique en plein essor. Cette technique sappuie sur plusieurs disciplines, citons simplement les principales :

    llectronique analogique et numrique (prparations, conditionnements des signaux, conversions numriques analogiques),

    les microprocesseurs (classiques ou ddis au traitement du signal), linformatique (algorithmes, systmes de dveloppements, exploitations), les mathmatiques du signal (traitements du signal).

    Parmi ces disciplines, nous allons nous intresser plus prcisment aux processeurs de traitements des signaux, plus communment dsigns par lacronyme Anglais DSP (Digital Signal Processor). Les domaines dapplications du traitement numrique du signal sont nombreux et varis (traitements du son, de limage, synthse et reconnaissance vocale, analyse, compression de donnes, tlcommunications, automatisme, etc.). Chacun de ces domaines ncessite un systme de traitement numrique, dont le cur est un (parfois plusieurs) DSP ayant une puissance de traitement adapte, pour un cot conomique appropri. Les microprocesseurs sont en perptuelle volution, chaque nouvelle gnration est plus performante que lancienne, pour un cot moindre. Les DSP, qui sont un type particulier de microprocesseur, nchappent pas cette volution. Dans ces conditions, pour comprendre, choisir, et utiliser judicieusement un DSP, nous sommes amens nous poser les questions suivantes :

    Comment est architectur un DSP, en quoi est-il diffrent dun microprocesseur classique?

    Quelle performance attendre dun DSP, comment dfinir cette performance ? Dun point de vue pratique, comment dvelopper des programmes de traitements du

    signal ?

    Lobjet de ce cours est damener diffrents lments de rponses ces questions. Pour y parvenir, nous allons tudier dun point de vue gnral les diffrentes architectures et les performances des DSP, nous aborderons par la suite les outils de dveloppements et de programmation des DSP.

  • Cours DSP 4

    2. Prsentation des DSP

    Un DSP est un type particulier de microprocesseur. Il se caractrise par le fait quil intgre un ensemble de fonctions spciales. Ces fonctions sont destines le rendre particulirement performant dans le domaine du traitement numrique du signal.

    Comme un microprocesseur classique, un DSP est mis en uvre en lui associant de la mmoire (RAM, ROM) et des priphriques. Un DSP typique a plutt vocation servir dans des systmes de traitements autonomes. Il se prsente donc gnralement sous la forme dun microcontrleur intgrant, selon les marques et les gammes des constructeurs, de la mmoire, des timers, des ports sries synchrones rapides, des contrleurs DMA, des ports dE/S divers.

    2.1. DSP : le cur dun systme de traitement numrique du signal

    Figure 1 : Chane complte dun systme de traitement numrique du signal

    Tous les systmes bases de DSP bnficient des avantages suivants :

    Souplesse de la programmation : un DSP est avant tout un processeur excutant un programme de traitement du signal. Ceci signifie que le systme bnficie donc dune grande souplesse de dveloppement. De plus, les fonctions de traitements numriques peuvent voluer en fonction des mises jour des programmes, et cela pendant toute la dure de vie du produit incluant le systme. Ainsi, modifier par exemple tel ou tel paramtre dun filtre numrique ne ncessite pas un changement matriel.

    Implmentation dalgorithmes adaptatifs : une autre qualit issue de la souplesse des programmes. Il est possible dadapter une fonction de traitement numrique en temps rel suivant certains critres dvolutions du signal (exemple : les filtres adaptatifs).

    Des possibilits propres au systme de traitement numrique du signal. Certaines fonctions de traitement du signal sont difficiles implanter en analogique, voire irralisables (exemple : un filtre rponse en phase linaire).

  • Cours DSP 5

    Stabilit : en analogique, les composants sont toujours plus ou moins soumis des variations de leurs caractristiques en fonction de la temprature, de la tension dalimentation, du vieillissement, etc. Une tude srieuse doit tenir compte de ces phnomnes, ce qui complique et augmente le temps de dveloppement. Ces inconvnients nexistent pas en numrique.

    Rptabilit, reproductibilit : les valeurs des composants analogiques sont dfinies avec une marge de prcision plus ou moins grande. Dans ces conditions, aucun montage analogique nest strictement reproductible lidentique, il existe toujours des diffrences quil convient de maintenir dans des limites acceptables. Un programme ralisant un traitement numrique est par contre parfaitement reproductible linfini.

    2.2. Gnralits

    2.2.1. !umrisation du signal

    Paralllement aux microprocesseurs et aux microcontrleurs, les processeurs de traitement numrique du signal, ou DSP (Digital Signal Processor), ont bnfici des normes progrs en rapidit (grce au faible temps de commutation) et en puissance de calculs (grce au nombre de bits des bus internes) des composants logiques intgrs programmables. D'une manire gnrale, tous les processeurs vrifient la loi de Moore, l'un des fondateurs de la socit Intel qui annonait, ds sa cration, que la densit d'intgration des composants doublerait tous les dix-huit mois. En 1995, on savait intgrer dix millions de transistors dans un composant unique. Utiliss initialement pour grer la carte son des micro-ordinateurs, les DSP ont vu leur utilisation s'accrotre considrablement depuis 1985, tout d'abord grce au dveloppement des tlcommunications (tlphonie numrique, puis tlphonie sans fil GSM ... ), puis grce ses possibilits de traitement rapide de certaines commandes numriques faisant appel des algorithmes complexes permettant ainsi le travail en temps rel .

    En utilisant des donnes numriques extraites d'un signal, on rend les systmes de commande et de gestion lectroniques beaucoup plus fiables, et reproductibles. L o il fallait des rglages en lectronique analogique, il suffit d'imposer une valeur constante convenablement choisie dans un registre particulier du composant. On fixe ainsi l'amplification ou la bande passante d'un filtre numrique, et ceci de manire dfinitive.

    La trs bonne prcision en temps (donc en frquence) des composants numriques provient de l'extraordinaire stabilit de la frquence d'oscillation du quartz, frquence qui sera celle de l'horloge du processeur, en pratique choisie entre 20 MHz et 200 MHz.

    La bonne prcision en niveau de tension des composants numriques est due la qualit des convertisseurs analogique /numrique et numrique/analogique, et en premier lieu, la stabilit de la caractristique de tension de la diode Zener interne de rfrence des convertisseurs. Ensuite intervient le nombre de bits (unit binaire d'information) utilis pour caractriser une donne. La conversion s'effectue le plus souvent avec 8 bits, 10 bits 12 bits voire 14 bits en usage plus performant. Enfin, de nouveaux types de convertisseurs dits sigma-delta ( - ) permettent une conversion analogique/numrique avec un faible bruit de quantification.

    La capacit en nombre de bits de donnes est l'une des caractristiques de la puissance de traitement du processeur. Il existe des microprocesseurs et des microcontrleurs 8 bits, 16 bits et mme plus. Les DSP devant tre encore plus performants, les donnes numriques seront 16 ou 32 bits, voire plus.

  • Cours DSP 6

    2.2.2. Rle du DSP

    Le traitement numrique du signal, qu'il provienne du son ou d'une image vido, est rendu accessible par le DSP grce son unit de calcul spcifique multiplicateur / additionneur / accumulateur de donnes.

    En effet, tout DSP est prvu pour effectuer le plus rapidement possible, en principe en un seul cycle d'horloge, l'opration multiplication/addition sur des grandeurs numriques :

    MR= X Y + R

    o X et Y sont soit des donnes, soit des constantes et R une donne, une constante ou un rsultat prcdent. MR est alors le rsultat de l'opration arithmtique.

    Si le DSP fonctionne en virgule fixe avec des donnes sur 16 bits, le rsultat MR est alors sur 32.bits (ou plus, selon l'architecture). Si l'utilisateur ne conserve que les 16 bits de poids fort, le calcul est alors effectu en simple prcision. Si les 32 bits sont utiliss, on parle de double prcision : le temps de calcul est alors plus long.

    Par exemple si le DSP fonctionne en virgule flottante avec des donnes en 32 bits, le rsultat MR est alors sur 40 bits (ou plus, selon l'architecture). Lutilisateur ne prend en compte que les donnes de 32 bits en ignorant les bits de poids faibles de la mantisse. Le premier DSP a t produit en 1982 par Texas Instruments. Depuis, cinq autres gnrations de DSP sont apparues. Les processeurs des gnrations 1, 2 et 5 sont en virgule fixe, les gnrations 3, 4, 6 en virgule flottante. Les principaux fabricants de DSP sont : Texas Instruments, Analog Devices, Motorola, Zilog, Lucent, Nec, etc.. Les trois premiers constructeurs sont les plus connus. Nanmoins, certains petits constructeurs dveloppent des architectures originales. Microchip, fort du succs de ces microcontrleurs PIC vient de mettre sur le march une famille de DSP 16 bits virgule fixe, les dsPIC.

    2.2.3. Divers approches possibles

    Approche processeur

    Parfois le DSP peut tre compar au microprocesseur et au microcontrleur. De fait, certains DSP, comme les TMS320F240x de Texas Instruments utilis pour des commandes de moteurs lectriques, ou les Z89323/373/ ... /473 de Zilog sont des processeurs o l'on a optimis les avantages du DSP et ceux du microcontrleur. D'autres, comme les DSP 56000 de Motorola sont issus de la technologie du microprocesseur 68000. Dans la commande et le contrle de systmes complexes, le DSP joue la fois le rle du microcontrleur, et celui du calculateur rapide en temps rel pour obtenir tous les signaux ncessaires la commande. C'est le cas du DSP Texas TMS320F240x qui permet la commande des moteurs asynchrones en contrle vectoriel ou en flux orient, ainsi que celle des moteurs synchrones et des moteurs pas--pas.

    Mais une autre approche possible consiste considrer un noyau DSP lintrieur dun circuit intgr comportant de nombreuses oprations. La socit Hewlett Packard propose la vente des logiciels permettant la cration puis lintgration dun noyau DSP dans un ASIC (Applied Specific Integrated Circuit). Il peut servir, lintrieur du composant intgr, en paralllisme un processeur RISC (Reduced Instruction Set Computer). Citons, par exemple, le DSP TMS320C54x associ au cur ARM7, ou bien le MPC823 de Motorola qui runit la fois un DSP56800, un cur Power PC et un module RISC.

    Le DSP peut aussi tre associ dautres processeurs par lintermdiaire du port hte. Il peut servir en paralllisme un microprocesseur.

  • Cours DSP 7

    Approche signal

    Cette approche caractrise d'emble le DSP et fait de lui un composant numrique pour les spcialistes du signal et les lectroniciens. Lutilisateur retrouve les filtres, avec amplification, attnuation, mais aussi le traitement numrique du signal (convolution, corrlation, transforme de Fourier rapide : FFT pour Fast Fourier Transform), filtrage numrique, compression, codage et dcodage des donnes ...), toutes ces applications faisant appel des algorithmes.

    Les signaux traiter sont caractriss par la frquence maximale possible associe un phnomne physique ou un systme donn. D'aprs le thorme de Shannon (voir cours de traitement du signal), la frquence d'chantillonnage Fe, dfinie par Fe=1/Te, Te tant la priode d'chantillonnage, doit tre telle que :

    Fe 2 f max Si on ne respecte pas cette rgle, il risque d'y avoir repliement spectral (aliasing). La frquence d'chantillonnage Fe est en gnral impose par le convertisseur analogique/numrique. Le nombre de cycles de calcul l'intrieur d'une priode d'chantillonnage Te, donne la possibilit pour le DSP d'intervenir efficacement ou non en temps rel entre deux prises d'chantillons. Si ce n'est pas le cas, par exemple pour un signal vido, le DSP intervient selon un processus plus lent, tout en grant des interruptions sur une priode d'chantillonnage. La gestion des ports entre/sortie devient alors trs complexe. Dans d'autres cas, le DSP est intressant pour faire une simulation ou une estimation de grandeurs en temps rel en parallle avec le droulement d'un phnomne physique. Il faut alors que les dures de calcul des donnes simules soient plus courtes que la dure d'volution du phnomne physique. Ceci est possible si le modle n'est pas trop complexe, ou si le phnomne physique est trs lent.

    Tableau 1 : Nombre de cycles de calcul Les applications des DSP sont nombreuses dans les domaines suivants :

    Tlcommunications : modem, multiplexeurs, rcepteurs de numrotation DTMF, tlcopieurs, codeurs de parole GMS,

    Interfaces vocales : codeur vocaux pour rpondeurs, reconnaissance automatique de la parole, synthse vocale,

    Militaire : guidage missiles, navigation, communications crypte, radar, Multimdias et grand public : compression des signaux audio (CD), compression des images, cartes multimdias pour PC, synthse musicale, jeux,

    Mdical : compression dimage mdicale (IRM, chographie), traitements des signaux biophysiques (ECG, EEG,), implants cochlaires, quipement de monitoring.

  • Cours DSP 8

    lectronique et automobile : quipement de contrle moteur, aide la navigation, commande vocale, dtection de cliquetis pour avance lallumage,

    Automatisation et contrle de processus : surveillance et commande de machines, contrle de moteurs, robots, servomcanisme,

    Instrumentation : analyseur de spectre, gnrateurs de fonction, interprtation de signaux sismiques,

    Approche technologique

    La figure 2 montre la vitesse dun composant en fonction de sa performance , cest-- dire de ladaptation des besoins spcifiques de llectronique. On voit la place privilgie du DSP par opposition celle du microprocesseur, dusage plus gnral.

    Figure 2 : Place du DSP vis--vis des autres processeurs

    2.3. !oyau du DSP

    Soit un processeur assurant en un seul cycle dhorloge lopration arithmtique lmentaire :

    MR = X Y + R Il sagit par exemple deffectuer des oprations arithmtiques du type produit de convolution

    x(n) y(n-k) Il est alors ncessaire que le processeur possde une architecture de Harvard avec deux mmoires vives au minimum, cest--dire une mmoire de programme et une mmoire de donnes. Les donnes x(n) proviendront par exemple de la mmoire de donnes, et y(n k) de la mmoire programme.

    Ces mmoires communiquent avec quatre bus internes au moins, cest--dire un bus dadresse pour chacune des mmoires, un bus de donnes, et un bus de programme. Un systme gnrateur dadresses, appel pointeur, simpose pour activer les mmoires en lecture ou en criture.

    La rapidit de calcul sobtient non seulement grce un cycle dhorloge trs court, et donc une frquence leve, de lordre de 200MHz pour certains processeurs, mais aussi grce la gestion dun pipeline.

    Tout cela rduit, en dfinitive, un noyau DSP implant soit dans un composant ddi, soit dans un composant intgr, soit encore sur une carte de traitement dimages ou de flot de donnes.

  • Cours DSP 9

    Le DSP est en principe un composant squentiel synchrone, cest--dire que toutes les oprations programmes ne sont effectues que lorsquun front dhorloge apparat, do limportance de la frquence de lhorloge. Nanmoins, il commence apparatre des DSP asynchrones tel le stDSP 16 bits de LG Semicon. Dans ce cas, le transfert des donnes est contrl par des signaux spcifiques dentre et de sortie : les registres du pipeline sont ouverts pour le dbut de la transmission, puis ferms une fois la donne transmise et place dans un nouveau registre.

    2.4. Principales distinctions entre un microprocesseur et un DSP

    En quoi un DSP est-il diffrent dun microprocesseur ? Pour rpondre cette question, il nous faut prendre en considration les lments suivants.

    2.4.1. Lopration MAC

    Aprs avoir t numris, le signal se prsente sous la forme dune suite de valeurs numriques discrtes. Cette suite de valeurs (ou chantillons) est apte tre stocke et traite par un systme informatique. Par nature, le traitement numrique du signal revient effectuer essentiellement des oprations arithmtiques de base du type A = (B x C) + D.

    Un microprocesseur classique va ncessiter plusieurs cycles dhorloge pour effectuer un tel calcul, par exemple, un 68000 besoin de :

    - 10 cycles dhorloge pour effectuer une addition,

    - 70 cycles dhorloge pour effectuer une multiplication.

    Soit 80 cycles pour seulement calculer A. Si ce temps est admissible dans des applications informatiques courantes, il nest pas acceptable pour faire du traitement rapide du signal. Les DSP sont donc conus pour optimiser ce temps de calcul. cet effet, ils disposent de fonctions optimises permettant de calculer A beaucoup plus rapidement. Dans la pratique, la plupart des DSP ont un jeu dinstructions spcialis permettant de lire en mmoire une donne, deffectuer une multiplication puis une addition, et enfin dcrire en mmoire le rsultat, le tout en un seul cycle dhorloge. Ce type dopration est nomm MAC, de langlais Multiply and ACcumulate. Effectuer une opration MAC en seul cycle nest malgr tout pas satisfaisant si le cycle dhorloge est trop long . Le principal objectif dvolution des DSP a toujours t damliorer le temps de calcul dun MAC. La figure 3 prsente le progrs ralis dans ce domaine depuis plus de trois dcennies.

    Figure 3 : Evolution du temps dexcution dune opration MAC

  • Cours DSP 10

    Actuellement, un DSP de gamme moyenne effectue une opration MAC sur des donnes de 16 bits en moins de 25 ns, soit 40 000 000 oprations par seconde. De telles performances sont indispensables pour effectuer des traitements rapides. Outre le temps dexcution dune opration MAC, un autre problme se pose. Lopration MAC tant une multiplication suivie dune addition, un dbordement de laccumulateur est toujours possible. Pour contourner ce problme, certains DSP possdent un accumulateur adapt au MAC. Ces accumulateurs ont un format spcial incorporant des bits supplmentaires (bits de garde) par rapport la taille des donnes manipuler. Les problmes de dbordements sont alors contourns, car un programme de traitement correctement conu ne devrait pas gnrer des suites doprations MAC telles quun rsultat excde la capacit largie de laccumulateur.

    2.4.2. Laccs la mmoire

    Outre lopration MAC, une autre caractristique des DSP est leurs capacits raliser plusieurs accs mmoire en un seul cycle. Ceci permet un DSP de chercher en mmoire une instruction et ses donnes ralisant un MAC, et simultanment, dy ranger le rsultant du MAC prcdent. Le gain de temps est vident. Toutefois, sur certains DSP basiques, ce type dopration simultan est gnralement limit des instructions spciales. Ces instructions utilisent un mode dadressage restreint, cest dire ne portant que sur de la mmoire vive intgre au DSP. Les modes dadressages des donnes sont un point particulier des DSP. Un DSP peut possder plusieurs units logiques de gnration dadresse, travaillant en parallle avec la logique du cur du DSP. Une unit logique de gnration dadresse est paramtre une seule fois via les registres appropris. Elle gnre alors toute seule, en parallle avec lexcution dune opration arithmtique, les adresses ncessaires laccs des donnes. Ceci permet non seulement de raliser les accs mmoires simultans en seul cycle, comme dcri plus haut, mais galement dincrmenter automatiquement les adresses gnres. Ce mode dadressage particulier, gnralement appel adressage indirect par registre avec post (ou pr) incrment, est trs utilis pour effectuer des calculs rptitifs sur une srie de donnes ranges squentiellement en mmoire. Si lon ajoute la possibilit de gnrer ces adresses selon un modulo paramtrable, ce mode dadressage devient circulaire, et permet donc de crer des buffers circulaires en mmoire. Ladressage circulaire indirecte (parfois galement index) par registre avec post (ou pr) incrment prends toute son importance quand il est utilis pour accder aux oprandes dun MAC. Lexemple suivant met en vidence lintrt dun tel mode daccs la mmoire. Prenons le cas classique dun filtre RIF N coefficients, dont lquation est de la forme :

    y(n) = a0*x(n) + a1*x(n-1) + a2*x(n-2) + ... + aN-1*x(n-N-1)

    Nous constatons la prsence implicite des lments suivants :

    une table de N coefficients, a0 aN-1 une table de N chantillons, allant de lchantillon courant x(n) lchantillon le plus

    ancien x(n-N-1) pour chaque chantillon rsultat y(n) courant, la ncessite deffectuer N oprations

    MAC. une structure itrative, lchantillon dentre x(n) courant devenant lchantillon

    prcdant chaque calcul du nouvel chantillon de sortie y(n).

  • Cours DSP 11

    Voici limplmentation (figures 4 et 5) de ce filtre dans un DSP TMS320C30 de la gamme Texas Instruments.

    Figure 4 : Structure des donnes en mmoire pour un filtre RIF implant dans un DSP

    Texas Instruments propose le programme assembleur suivant :

    Figure 5 : Source assembleur du filtre RIF, lopration MAC est en rouge

    La structure du filtre RIF est ralise avec seulement 10 instructions (initialisations non comprises). Cest lexemple typique de ladaptation des capacits dun DSP un algorithme particulier du traitement numrique du signal.

  • Cours DSP 12

    3. Architecture fonctionnelle des DSP

    3.1. Architecture dun processeur Un processeur est un composant intgr (en technologie CMOS) ou une partie de

    composant susceptible d'excuter des instructions selon un programme d'instructions prtabli sur des donnes numriques. Le programme, et parfois les donnes, sont enregistrs dans des mmoires numriques.

    Larchitecture est ce qui dtermine d'emble et de manire dfinitive les principales caractristiques du processeur en particulier la rapidit d'excution des instructions. Elles sont lies au nombre de bus internes, qui sont des liaisons parallles N bits, la valeur mme de N, aux oprations possibles sur les donnes transitant sur les bus et enfin la puissance de calcul de l'unit centrale.

    Les bus sont relis des registres temporaires pour stocker provisoirement les codes d'instructions, des adresses ou des donnes. D'autres types de registres existent :

    les registres de contrle ou d'tat, qui ne sont pas stocks en mmoire car ils sont adresss directement par une instruction, par mesure de scurit. Ces registres sont essentiels car ils dterminent le droulement prcis d'une instruction. Certains d'entre eux sont en lecture seule, d'autres en criture seule.

    les registres dfinissant les conditions de fonctionnement d'un port (srie, DMA, hte...), des interfaces avec des mmoires de sortie ou du Timer, qui ont une adresse en mmoire de donnes.

    Les instructions s'excutant au cur du processeur appel unit centrale, comportant dans le cas le plus classique, une seule unit arithmtique de traitement des donnes. l'entre des units de calcul constituant l'unit centrale, les donnes sont charges dans des registres temporaires qui, lors de la ralisation de l'instruction de calcul, vont tre relis l'unit de calcul ; le rsultat de l'opration sera disponible dans un registre (temporaire) de sortie. Larchitecture est conue pour que les instructions puissent :

    charger les donnes dans un registre temporaire d'entre en lisant le contenu d'une mmoire vive une adresse donne, les donnes transitant par un bus de donnes et les adresses pour la lecture par un autre bus ;

    effectuer une opration logique ou arithmtique sur une donne ou entre deux donnes dans l'unit centrale;

    effectuer des tests sur le rsultat obtenu (dpassement, signe...) ; modifier certains registres ; aller crire un rsultat une adresse de la mmoire prvue.

    Toutes ces instructions doivent en principe tre excutes en un seul cycle d'horloge. Larchitecture contient donc un noyau DSP si elle comporte une unit centrale laquelle est compose d'une ou plusieurs units de traitement, chacune comportant des units de calcul, dont l'ALU (Arithmetic and Logic Unit) le MAC (Multiplier and ACcumulator), le dcaleur barillet (Barrel Shifter) et enfin des multiplexeurs d'aiguillage des donnes. En plus de 1'unit centrale, le noyau DSP comporte un squenceur, pour envoyer les adresses des instructions enregistres dans la mmoire programme, et un ou plusieurs gnrateurs d'adresses (parfois appels pointeurs) agissant sur les bus d'adresses. chaque cycle d'horloge, le processeur sait par le compteur de programme l'instruction qu'il doit faire excuter. Nous avons vu qu'il va chercher chaque instruction en mmoire, l'excute avec les donnes correspondantes et retourne les donnes rsultantes en mmoire.

  • Cours DSP 13

    Larchitecture dun microprocesseur, et donc dun DSP, est un lment important qui conditionne directement les performances dun processeur. Il existe deux types fondamentaux de structures, dites Von Neuman et Harvard .

    3.2. Architecture de Von !eumann

    Dans l'architecture de la machine de Von Neumann, le programme et les donnes sont enregistrs sur la mme zone mmoire. Chaque instruction contient la commande de l'opration effectuer et l'adresse de la donne utiliser, il faut donc souvent plusieurs cycles d'horloge pour excuter une instruction. La figure 6 indique une architecture simple de Von Neumann, constitue dun bus de donnes et de programme et dun bus d'adresses. Ce type darchitecture incorpore principalement deux units logiques de base :

    lUnit Arithmtique et Logique (ou ALU en anglais), charge de raliser les

    oprations centrales (de type multiplications, additions, soustractions, rotation, etc.), lunit en charge des Entres/Sorties, qui commande le flux de donnes entre le cur

    du microprocesseur et les mmoires ou les ports.

    On voit que les changes s'effectuent de manire simple entre l'unit arithmtique et logique (l'unit centrale) et la mmoire unique, par un bus transitant les codes de programme et les donnes. On a ainsi des donnes colles aux instructions. Les microprocesseurs et beaucoup de microcontrleurs utilisent cette architecture car elle est trs souple pour la programmation.

    Figure 6 : Architecture de Von Neumann

    3.3. Architecture de Harvard

    Dans l'architecture dite de Harvard (car mise au point dans cette universit amricaine en 1930), on spare systmatiquement la mmoire de programme de la mmoire des donnes : l'adressage de ces mmoires est indpendant. La Figure 7 indique une architecture simple de Harvard, constitue dun bus de donnes, dun bus de programme et de deux bus d'adresse.

    Figure 7 : Architecture de Harvard

    On voit que les changes s'effectuent de manire simultane entre l'unit centrale et les deux mmoires, ce qui permet une grande souplesse pour l'enregistrement et l'utilisation des donnes. D'ailleurs, la mmoire de programme est galement utilise en partie comme mmoire de donnes pour obtenir encore plus de possibilits de traitement avec des algorithmes complexes.

  • Cours DSP 14

    3.4. Utilisation de ces structures dans les DSP

    Larchitecture gnralement utilise par les microprocesseurs est la structure Von Neuman (exemples : la famille Motorola 68XXX, la famille Intel 80X86). Larchitecture Harvard est plutt utilise dans des microprocesseurs spcialiss pour des applications temps rels, comme les DSP. Il existe cependant quelques rares DSP structure Von Neuman. La raison de ceci est lie au cot suprieur de la structure de type Harvard. En effet, elle requiert deux fois plus de bus de donnes, dadresses, et donc de broches sur la puce. Or un des lments augmentant le cot de productions des puces est prcisment le nombre de broches implanter. Pour rduire le cot de la structure Harvard, certains DSP utilisent larchitecture dite Structure de Harvard modifie . lextrieur, le DSP ne propose quun bus de donnes et un bus dadresse, comme la structure Von Neuman. Toutefois, lintrieur, la puce DSP dispose de deux bus distincts de donnes et de deux bus distincts dadresses. Le transfert des donnes entre les bus externes et internes est effectu par multiplexage temporel.

    3.5. Utilisation de pipelines

    Pour amliorer les performances de lunit de traitement, les DSP les plus rcents utilisent la mthode du pipeline. Elle consiste imposer un ordre et un rythme dans le droulement des instructions de manire optimiser en rapidit leur excution. En un cycle processeur, les oprations lmentaires suivantes peuvent tre excutes en parallle :

    1. aller chercher linstruction en mmoire programme (Fetch) ; 2. raliser le dcodage de linstruction, et des adresses des oprandes (Decode) ; 3. lire les oprandes en mmoire de donnes (Read) ; 4. excuter lopration et crire le rsultat (Execute).

    Le principe de pipeline consiste dcouper le travail en tches lmentaires de mme dure pour permettre leur ralisation en parallle. Il faut prvoir des registres tampon entre chaque opration lmentaire, ce qui montre le Tableau 2.

    Tableau 2 : Principe de pipeline

    Il y a donc en permanence quatre instructions dans le pipeline, ce qui est le plus souvent invisible, sauf sil y a conflit dans le pipeline, ce qui se passe quant lune des quatre instructions exige plus dun cycle dhorloge. Dans la plupart des cas, DSP rattrape le conflit en dcalant alors les autres instructions dun cycle.

  • Cours DSP 15

    4. Classification des DSP

    Il est difficile deffectuer une classification dfinitive des DSP, car chaque constructeur met sur le march tous les ans un nouveau composant qui surclasse les anciens ou les concurrents par la puissance de calcul, la rapidit (gestion du pipeline et frquence dHorloge), le nombre de registres, de Timers, de ports srie.

    4.1. Formats de donnes manipules par les DSP

    Un autre point essentiel des DSP est la reprsentation des nombres (les donnes) quils peuvent manipuler. Il est possible de distinguer deux familles :

    Les DSP virgule fixe : les donnes sont reprsents comme tant des nombres fractionnaires virgule fixe, (exemple -1.0 +1.0), ou comme des entiers classiques. La reprsentation de ces nombres fractionnaires sappuie la mthode du complment deux (Cf. explication figures 8 et 9). Lavantage de cette reprsentation (qui nest quune convention des informaticiens) est de permettre facilement laddition binaire de nombres aussi bien positifs que ngatifs.

    Les DSP virgule flottante : les donnes sont reprsents en utilisant une mantisse et un exposant. La reprsentation de ces nombres seffectue selon la formule suivante : n = mantisse x 2 exposant. Gnralement, la mantisse est un nombre fractionnaire (-1.0 +1.0), et lexposant est un entier indiquant la place de la virgule en base 2 (cest le mme mcanise quen base 10).

    Figure 8 : Reprsentation des nombres entiers cods sur 4 bits en complment 2

    Figure 9 : Reprsentation des nombres fractionnaires cods sur 4 bits en complment 2

  • Cours DSP 16

    4.1.1. Les DSP virgules flottantes

    Les DSP virgule flottante sont plus souples et plus faciles programmer que les DSP virgule fixe. Un DSP comme le TMS320C30 manipule des nombres forms avec une mantisse de 24 bits et un exposant de 8 bits (taille de la donne en mmoire : 32 bits). Les valeurs intermdiaires des calculs sont mmorises dans des registres avec un format de 32 bits de mantisse et un exposant de 8 bits (taille du registre : 32 + 8 bits supplmentaires). La dynamique disponible est trs grande, elle va de -1 x 2128 (1-2-23) x 2127, toutefois la rsolution reste limite 24 bits au mieux. Outre les nombres fractionnaires, ce DSP sait galement manipuler les entiers avec une prcision de 32 bits. La trs grande dynamique propose par les DSP virgule flottante permet virtuellement de ne pas se soucier des limites des rsultats calculs lors de la conception dun programme. Cet avantage a cependant un prix, savoir quun systme bas sur un DSP virgule flottante a un cot de fabrication suprieur par rapport un systme bas sur DSP virgule fixe. La puce dun DSP virgule flottante ncessite la fois une surface de silicium plus importante (cur plus complexe), et un nombre de broches suprieur, car la mmoire externe est elle aussi au format 32 bits. Le systme revient donc plus cher (exemple : 2 x 32 broches ne serait-ce que pour les bus de donnes externes avec une architecture Harvard de base). Un DSP virgule flottante est plutt adapt (sans tre impratif) des applications dans lesquelles :

    les coefficients varient dans le temps (exemple : les filtres adaptatifs), le signal et les coefficients ont besoin dune grande dynamique, la structure mmoire est importante (exemple : traitement dimage), la prcision est recherche sur toute une gamme dynamique importante (exemple :

    traitements audiophoniques de qualit professionnelle).

    De part leurs facilits de programmation, ils peuvent galement se justifier dans des projets ou le temps et la facilit de dveloppement sont des facteurs importants. On les trouve galement dans des produits de faible volume de production, pour lesquels le prix du DSP nest pas significatif.

    4.1.2. Les DSP virgules fixes

    Un DSP virgule fixe est un peu plus compliqu programmer quun DSP virgule flottante. Dans un DSP virgule fixe typique comme le TMS320C25, les nombres sont cods sur 16 bits (rappel : des entiers classiques ou des fractionnaires). Toutefois, sur ce DSP, les calculs sont effectus avec des accumulateurs de 32 bits. Lorsque les rsultats doivent tre stocks en mmoire, les 16 bits les moins significatifs sont perdus. Ceci permet de limiter les erreurs darrondis cumulatives. Il est toujours possible de stocker sparment en mmoire les 16 bits faibles puis les 16 bits fort sil ny a plus de registres libres lors dune tape de calcul. Cette particularit nest pas toujours disponible sur tous les DSP. Dans ce cas, les calculs requrant absolument une double prcision sont raliss en chanant deux deux des instructions spciales manipulant des donnes 16 bits en simple prcision, au dtriment du temps dexcution. La prcision des calculs est un point critique des DSP virgule fixe, car le concepteur de programmes doit rester vigilant chaque tape dun calcul. Il doit rechercher la plus grande dynamique possible (c..d. exploiter au mieux la gamme des nombres disponibles), pour conserver une bonne prcision des calculs, tout en vitant autant que faire ce peu les

  • Cours DSP 17

    dbordements du ou des accumulateurs. Les bits supplmentaires des accumulateurs (les bits de garde) prvus cet effet permettent de rduire cette contrainte. Les programmeurs contournent les limites des DSP virgule fixe en dterminant lavance, et avec soins, la prcision et la dynamique ncessaire (par mthode analytique ou avec des outils de simulation) pour raliser leurs projets. Il est galement possible deffectuer des oprations en virgule flottante dans un DSP virgule fixe par le biais de routines logicielles adquates. Cette approche est nanmoins pnalisante en temps dexcution, mme sur un DSP virgule fixe trs rapide. En termes de rapidit, les DSP virgule fixe se placent d'ordinaire devant leurs homologues virgule flottante, ce qui constitue un critre de choix important. Les DSP virgule fixe sont les plus utiliss, car ils sont moins chers que les DSP virgule flottante. On les trouve dans tous les produits de grande diffusion ou le cot est un facteur important. Il peut cependant exister des exceptions, certains DSP virgule fixe se prsentant comme des micro contrleurs perfectionns plus chers quun DSP virgule flottante de base.

    4.2. Classification virgule fixe / flottante des DSP

    La classification la plus simple est celle dfinissant si le DSP appartient la famille des DSP virgule flottante ou DSP virgule fixe. Pratiquement, lorsque les donnes sont sur 16 bits, le DSP est virgule fixe. Cest galement le cas pour la famille DSP56000 24 bits de Motorola. Les donnes sont virgule flottante pour des DSP de 32 bits Voyons le cas des DSP fabriqus par Texas Instruments (dsigns par TMS) et Analog Devices (dsigns par ADSP). Le classement du tableau 3 est effectu selon le nombre de bits du bus de donnes et le temps dexcution dun cycle, puis dune opration complexe, comme la transforme de Fourier rapide 1024 points de calcul.

    Tableau 3 : Comparaison entre diverses catgories de DSP

    Les TMS320Clx, C2x, C5x ou ADSP2105, 21 01 sont 16 bits virgule fixe. Les TMS320Clx sont utiliss pour le contrle des disques durs dans les ordinateurs. Les TMS320C2x ou ADSP-2105 servent au fonctionnement des fax. Les TMS320C5x ou ADSP-21 01 sont utiliss dans les modems. Les TMS320C3x, C4x ou ADSP-21010, 21020 sont 32 bits virgule flottante. Les TMS320C3x ou ADSP-21010 sont utiliss pour les systmes Hi-Fi, synthse vocale,

    et dans les processeurs graphiques 3 dimensions. Les TMS320C4x, TMS320C6x ou ADSP-21020 sont conus pour le fonctionnement en

    parallle, avec dautres systmes processeurs (applications : la ralit virtuelle et la reconnaissance dimages).

  • Cours DSP 18

    5. Performances des DSP

    Plus que pour un microprocesseur classique, les performances dun DSP conditionnent son domaine dapplication. La plupart des DSP sont particulirement destins des applications temps rel et spcialises, cest dire des applications ole temps de traitement est bien sr primordial, mais o la diversit des vnements traiter nest pas notablement importante. De ce point de vue, lapproche DSP sapparente plus une tude lectronique visant raliser une ou des fonctions de traitements de signal, que dune approche informatique temps rel et/ou multitche traditionnelle. Comme mentionn auparavant, il existe cependant des applications ou le DSP assure la fois des fonctions de traitements numriques du signal et les fonctions gnrales dun microprocesseur au coeur dun systme informatique classique. Dans tous les cas, les performances du DSP sont critiques. Le concepteur dun systme base de DSP doit valuer dune part la puissance ncessaire pour raliser les traitements numriques voulus, et dautre part les performances des DSP disponibles pour raliser son application.

    5.1. Mesure de vitesse de calcul pure

    La mthode classique pour valuer les performances dun DSP est de se baser sur sa vitesse dexcution. Encore faut-il trouver une bonne dfinition de ce quest la vitesse dexcution, ce qui nest pas forcment simple. Cette mthode de base consiste donc compter le nombre dinstructions effectues par seconde. Un obstacle apparat alors, car une instruction ne signifie pas forcment la mme chose dune famille de DSP lautre. Le tableau de la figure 10 rsume les principales dfinitions en usage. Acronyme Anglais

    Dfinition

    MFLOPS Million Floating-Point Operations Per Second.

    Mesure le nombre doprations virgules flottantes (multiplications, additions, soustractions, etc.) que le DSP virgule flottante peut raliser en une seconde.

    MOPS

    Million Operations Per Second.

    Mesure le nombre total doprations que le DSP peut effectuer en une seconde. Par oprations, il faut comprendre non seulement le traitement des donnes, mais galement les accs DMA, les transferts de donnes, les oprations dE/S, etc. Cette dfinition mesure donc les performances globales dun dun DSP plutt que ses seules capacits de calcul.

    MIPS

    Million Instructions Per Second.

    Mesure le nombre de codes machines (instructions) que le DSP peut effectuer en une seconde. Bien que cette mesure sapplique tous les types de DSP, le MFLOPS est prfr dans le cas dun DSP virgule flottante.

    MBPS Mega-Bytes Per Second.

    Mesure la largeur de bande dun bus particulier ou dun dispositif dE/S, cest dire son taux de transfert.

    Figure 10 : Dfinitions des units les plus courantes de mesures des performances des DSP

  • Cours DSP 19

    Une autre mthode consiste dfinir une fois pour toute une opration de rfrence comme tant un MAC, puisquil sagit dune fonction commune tous les DSP. Il ne reste plus qu compter le nombre de MAC par seconde. Cependant cette dfinition napporte pas beaucoup dinformations sur les performances des DSP modernes. En effet, un MAC est excut en un seul cycle. Sachant que sur les DSP rcents la plupart des instructions sont galement excutes en un cycle, cela revient donc mesurer les MIPS du DSP. Il faut galement tenir compte du fait que certains DSP en font plus dans un seul MAC (nombre, format et taille des oprandes traits) que dautres.

    5.2. Mesure du temps dexcution ( Benchmark )

    La vitesse de calcul pure dun DSP nest pas une indication universelle, les mthodes et les rsultats diffrent dun DSP lautre. De plus elle ne rend pas compte d'un certain nombre de perfectionnements dont peuvent bnficier tel ou tel DSP. Certains DSP proposent en effet des modes dadressages plus performants que dautres. Ces modes sont spcialement adapts des algorithmes standards du traitement du signal (exemple : le mode dadressage dit bits reversing pour acclrer les calculs des FFT). Les instructions itratives sont galement importantes en terme de performance (rapidit des boucles logicielles) et ne devraient pas tre ignores. Enfin, le temps daccs la mmoire est un autre paramtre incontournable. Certains DSP intgrent des blocs de mmoire vive rapide. Cette mmoire est place dans lespace dadressage du DSP au mme titre que de la mmoire vive externe. Ceci qui permet dy ranger donnes et programmes sans avoir effectuer des transfre permanents de ou vers lextrieur. Les ventuels cycles dattentes pouvant tre ncessaires pour adresser une mmoire externe lente sont ainsi vits. Pour toutes ces raisons, la mesure des performances par benchmark complte avantageusement la mesure de vitesse pure. Elle consiste mesurer le temps que met le DSP pour excuter des programmes standards de traitements du signal. Encore faut-il dfinir ce quest un programme standard de traitement du signal. Le point faible des benchmarks rside dans cette dfinition des dalgorithmes standards. Quel domaine dapplication faut-il choisir ? Quels sont les algorithmes les plus reprsentatifs ? Il existe plusieurs systmes de benchmarks se proposant de servir de rfrence. Ainsi, le BDT benchmark est couramment utilis, un autre benchmark frquemment utilis est le Standard Performance Evaluation Corporation , ou SPEC95, qui couvre plusieurs domaines tels que les vocodeurs, lasservissement en position des ttes de lectures des disques dur, les modems, voire les applications multimdia sur PC. Dans la pratique, un autre problme se pose : la qualit de limplmentation des algorithmes peu varier dun systme de dveloppement lautre. Ainsi par exemple, qualit gale, un filtre numrique peut demander plus ou moins de ressources processeur en fonction de telle ou telle implmentation. Cet aspect nest pas pris en compte par les benchmarks. La mesure des capacits dun DSP par benchmark reste nanmoins intressante, car elle tend mesurer la performance globale du systme de traitement numrique (y compris les capacits du programmeur !).

  • Cours DSP 20

    6. Mthodes et outils de dveloppements

    Un processus de dveloppement typique pourrait tre celui de la figure 11.

    Figure 11 : Exemple dun processus de dveloppement typique

    La souplesse du dveloppement dapplications base de DSP est un avantage important en termes de temps, de facilit, de fiabilit, et donc de cot.

    Comme le suggre la figure 11, crer une application DSP, cest mener de front deux tudes distinctes :

    La partie matrielle : elle inclue la mise en uvre du DSP lui-mme, mais aussi la cration dune chane dacquisition et/ou de restitution du signal (parfois des signaux) traiter. Les moyens de transformation du signal analogique vers le domaine numrique sappuient eux aussi sur des circuits spcialiss (AIC, CODEC, CNA, CAN...). Le choix des performances obtenir et des moyens pour raliser la chane dacquisition et/ou restitution du signal est primordial pour exploiter au mieux les capacits dun DSP. Lobjectif est de rendre lapplication finale homogne, ergonomique, et ayant un cot de fabrication industriel appropri.

  • Cours DSP 21

    La partie logicielle : elle sappuie sur des outils classiques adapts aux spcificits des DSP. Lapproche est diffrente de celle utilise pour la partie matrielle, car il est toujours possible de recommencer autant de fois que ncessaire pour arriver au rsultat. Seul un temps de dveloppement trop limit ou une mauvaise valuation de dpart des capacits du DSP cible peut crer des problmes de dveloppements. La conception logicielle nen est pas plus facile pour autant, car le programme ralise lessentiel du traitement du signal. Le rle du DSP ne se limite pas forcment au seul traitement numrique du signal, un DSP peut assurer les mmes fonctions quun microprocesseur normal , et donc tre le cur du systme informatique de lapplication. Ainsi, le cas chant, un DSP peut excuter la fois un systme dexploitation temps rel et assurer les fonctions de traitement numrique du signal.

    6.1. Dfinition des ressources ncessaires

    Cette phase doit permettre dvaluer les besoins ncessaires la mise en uvre du systme de traitement numrique du signal voulu. Elle consiste notamment dfinir les spcifications de la chane dacquisition et de restitution du signal, telles que :

    la rsolution (nombre de bits ncessaire pour quantifier le signal), la vitesse dchantillonnage (critre de Shannon), la technologie et donc type de convertisseurs utilis, les filtres anti-repliements s'ils ne sont pas intgrs dans les convertisseurs.

    Elle permet plus gnralement de cerner tous les besoins du systme numrique, tels que par exemple la consommation de courant et lautonomie pour une application portable, ou au contraire les bus ncessaires lintgration de lapplication dans un systme hte.

    6.2. La slection du DSP le plus adapt

    La slection dun DSP se base avant tout sur la puissance de traitement ncessaire, et sur le rsultat de benchmarks ralisant des fonctions reprsentatives des traitements raliser. Toutefois, la performance du DSP nest pas le seul critre prendre en compte, il faut galement tenir compte des impratifs suivants :

    Le type de DSP utiliser (virgule fixe ou flottante) en fonction du domaine dapplication.

    Les ressources mmoires utiliss, car sil faut par exemple excuter trs rapidement une FFT 1024 points, un DSP intgrant plus de 2048 mots de mmoire vive statique peut tre ncessaire.

    Les besoins dun ou de plusieurs timers internes, de ports srie synchrones ou asynchrone, etc.

    La ncessit ventuelle dexcuter un systme temps rel, qui savrera plus facile implanter sur certains DSP.

    Le cot du DSP, son rapport performance/prix en fonction du volume de production envisag.

  • Cours DSP 22

    Dautres lments non ngligeables interviennent dans le choix dun DSP, il sagit des moyens disponibles pour mener le dveloppement en un temps donn, comme :

    La qualit de la documentation (de prfrence claire et abondante). La disponibilit de notes dapplications, dun support technique. La qualit du systme de dveloppement utilis. La possibilit dutiliser un langage de haut niveau (Langage C). La prsence de librairies (du constructeur ou de tierces parties). La possibilit de raliser facilement des prototypes et faible cot.

    Le choix nest pas toujours simple et certains critres peuvent tre contradictoires, certaines rgles de choix se dgagent quand mme. Ainsi pour des applications destines faire un fort volume de production, le critre dterminant est sans conteste le prix du DSP. Pour des applications faible volume de production, le prix du DSP importe peu, le critre est alors la facilit de dveloppement. Dans tous les cas, la prsence dun bon support technique est un facteur ne pas ngliger, car un DSP est quand mme plus complexe mettre en uvre quun microprocesseur classique.

    6.3. Structure matrielle de dveloppement

    Un environnement (ou systme) de dveloppement pour DSP peut tre scind en deux parties principales: Un environnement de dveloppement pour crer et mettre en forme le logiciel de lapplication (cration du source, utilisation des bibliothques, assemblage). Un environnement de dveloppement utilisant des outils spcifiques pour tester et dboguer le logiciel de lapplication (simulateur, module dvaluation, mulateur). Le simulateur

    Le simulateur est un programme particulier excut par un PC ou une station de travail. Son rle consiste simuler le plus exactement possible le fonctionnement du DSP cible. Linterface utilisateur du simulateur permet de consulter les mmoires, tous les registres internes du DSP, ses entres/sorties, etc. Le simulateur excute chaque instruction DSP comme le ferai le DSP lui-mme, et en rpercute les rsultats dans les mmoires et les registres simuls. Lavantage de ce moyen de dveloppement est quil ne ncessite pas la mise en uvre du DSP cible, le test dun module logiciel peut donc se faire rapidement ds sa cration. Comme lindique la figure 11, lcriture dun logiciel DSP est un processus trs itratif, la disponibilit dun simulateur est donc toujours apprciable eu gard au gain de temps de dveloppement quil gnre. Linconvnient est que le logiciel DSP en cours de dveloppement nest pas du tout excut en temps rel. Les oprations dentres/sorties sont simules en utilisant des fichiers sur le disque dur du PC. Le simulateur devient vite limitatif lorsquil sagit de tester le code en charge des oprations dentrs/sorties. Le module dvaluation

    Le module dvaluation se prsente sous la forme dune carte lectronique incorporant le DSP cible et le minimum des ressources ncessaires sa mise en uvre, telles que des mmoires externes, un AIC, le cas chant une liaison srie RS232, et une alimentation. La partie matrielle est fige et nest pas (ou alors trs peu) volutive. Un module dvaluation sutilise donc gnralement tel quel , et est surtout utile quand ses caractristiques recouvrent celles de lapplication dvelopper. Le module est pilot partir dun logiciel adquat excut par un PC.

  • Cours DSP 23

    La communication avec le module dvaluation seffectue au travers dune liaison srie sil sagit dun modle autonome, ou via un bus du PC sil sagit dune carte enficher. Le programme tester est tlcharg dans le module pour tre excut par le DSP. Comme le simulateur, le module dvaluation permet de consulter la mmoire et les registres du DSP volont. Il permet galement de poser des points darrts simples aux endroits stratgiques du code dboguer. Un problme pos par les modules dvaluations est la non disponibilit de lensemble des ressources du DSP. En effet, en plus du code tester, le DSP excute galement un mini moniteur de dbogage, charg de communiquer avec le PC et dinterprter des commandes de bases. Une partie des interruptions et de la mmoire du DSP est donc attribu au moniteur de dbogage. Un module dvaluation nen reste pas moins un outil de dveloppement appropri pour tester des parties de codes en temps rel. Il est disponible immdiatement, ce qui nest pas toujours le cas du prototype de lapplication dvelopper, et son faible prix en fait souvent un outil dapprentissage apprci. Lmulateur temps rel

    Lmulateur temps rel est loutil privilgi pour dvelopper des applications DSP. Cest loutil le plus souple et le plus performant, car il ne souffre pas des limitations dun simulateur ou dun module dvaluation. Son rle consiste muler en temps rel le fonctionnement du DSP au sein mme du prototype de lapplication dvelopper. Toutes les ressources du DSP cible sont libres pour tester non seulement le code du programme de lapplication, mais galement le fonctionnement du prototype. Tout comme le module dvaluation, un mulateur est pilot par un PC, via lequel il est possible dexaminer la mmoire et les registres du DSP. Il est galement possible de poser des points darrts dclenchements sophistiqus, bass par exemple sur des conditions logiques portant sur le contenu de registres, de mmoires, voire de ports dentres/sorties. Un mulateur permet en outre de garder une trace des instructions excutes dans telle ou telle partie du code tester, ce qui facilite grandement le dbogage dans certains cas complexes. Seul moyen vraiment sr pour tester un programme et un prototype, un mulateur reste nanmoins handicap par son prix lev dont il faut tenir compte dans le cot global dun dveloppement. Il faut noter que les DSP rcents incluent directement dans leurs coeurs des fonctions dmulation (points darrts, registres spciaux, etc.) Cette approche permet de simplifier la conception des mulateurs et tends les rendre moins chers.

    6.4. Structure logicielle de dveloppement

    Les deux principales mthodes pour crire un programme DSP consistent utiliser un assembleur ddi ou un langage de haut niveau. Un langage de haut niveau comme le langage C ou C++ prsente lavantage dtre connu par la plupart des ingnieurs amens travailler dans le domaine du traitement du numrique du signal. Un programme DSP crit en langage C peut donc tre compris relativement facilement par un grand nombre de personnes, sans quelles aient besoin de connatre prcisment le DSP cible. De plus, la portabilit du langage C permet de dutiliser un programme sur des DSP fabriqus par diffrents constructeurs. L'utilisation dun assembleur pour programmer un DSP nen demeure pas moins intressante. Plus que pour un microprocesseur classique, les performances de traitement sont cruciales, et lassembleur est le seul langage permettant dutiliser totalement les possibilits spcifiques de tel ou tel DSP. Par exemple, un simple algorithme de codage est ainsi estim 1,5 fois plus rapide quand il est implment en assembleur plutt quen C. Mme lorsquils sont spcialement optimiss pour le DSP cible, les compilateurs C ne permettent pas de gnrer un

  • Cours DSP 24

    programme ayant les performances dun code bien crit en assembleur par un dveloppeur confirm. De fait, un bon programme DSP est donc presque toujours crit en langage C, avec ses portions de codes critiques crites en assembleur. Il est gnralement admis que 5% de code assembleur et 95% de code C constitue un bon compromis pour obtenir un logiciel performant. La figure 12 prsente larchitecture dun systme de dveloppement de logiciels pour DSP.

    Figure 12 : Organigramme simplifi dun systme de dveloppement de logiciels pour DSP

    Un gestionnaire de projet et un environnement de dveloppement intgr sont parfois disponibles. La souplesse du systme de dveloppement permet dajouter facilement des portions de programmes assembleurs (assemblage en ligne , ou librairie de fonctions assembleurs) un logiciel crit en C. Ce mlange est recommand par les constructeurs, ainsi la plupart des exemples de traitements numriques sont donns en assembleur (cas de la figure 5), alors que les exemples de mise en uvre du DSP sont donns en C. Les outils de dbogage acceptent indiffremment lun, lautre, ou le mlange des deux langages. Certaines socits indpendantes des constructeurs fournissent des librairies de fonctions de traitements numriques du signal prtes lemploi. Le langage C facilite lintgration des librairies, voire mme la mise en uvre de vritables systmes dexploitations temps rels et multitches, par exemple le systme SPOX de Spectron Microsystems. Bien qutant le plus rpandu, le langage C nest pas le seul utilisable pour programmer un DSP, il existe quelques rares compilateurs ADA, FORTRAN et PASCAL pour DSP. 7 Applications

    Pour un usage donn du DSP (commande numrique d'un moteur lectrique, comme un moteur asynchrone triphas, par exemple) une classification est possible selon la facilit de mise en oeuvre du programme du composant et selon les performances obtenues.

    Commande de moteurs

    Les TMS320F240x sont des DSP-contrleurs 16 bits, virgule fixe, qui sont trs bien adapts ce rle. Ils comportent les sorties ncessaires la commande par modulation de largeur d'impulsions vectorielle de l'onduleur alimentant le moteur asynchrone. Il fonctionne avec deux

  • Cours DSP 25

    frquences d'horloge : l'une pour les oprations 20MHz, l'autre pour le chien de garde (Watch Dog) de la fonction contrleur, 16384Hz. Les bus internes fonctionnent en 16bits. D'autre part, il est possible d'envisager plusieurs modes de commande, de types d'asservissement, partir de donnes obtenues concernant le moteur : courant et position angulaire. Il effectue en temps rel les calculs de transformation ncessaires (transformation de Park) pour optimiser les commandes d'asservissement. La socit Analog Devices proposait un systme concurrent ncessitant un ensemble DSP et ADSP2115, 16bits, virgule fixe, associ un processeur vectoriel ADMC200 pour effectuer les transformations de Park. Depuis, cette socit prsente un DSP-microcontrleur ADMC330, ADMC401, qui ralisent sensiblement les mmes fonctions que le TMS320C240 : frquence d'horloge 13MHz, virgule fixe, 16bits. En 2002 est apparu une nouvelle famille ADSP21299x possdant toutes les caractristiques de lADMC401 avec en plus un bus CAN et un temps de cycle de lordre de 6ns. Traitement de signaux simultans

    Un autre type de DSP spcialis est celui qui gre de manire souple des signaux simultans, tel l'ADSP21csp0l de Analog Devices. C'est un DSP 16bits virgule fixe, de performance 50MIPS, avec un temps de cycle de 20ns. Lappellation csp (concurrent signal processing) signifie que ce DSP peut grer la fois quatre entres/sorties de mmoires externes sans difficult, grce des mmoires tampon d'attente. DSP pour tlphones cellulaires

    UADSP21msp5l de Analog Devices dispose dans son circuit intgr d'un systme de traitement de la voix. Il comporte un convertisseur analogique/numrique de type sigma- delta, avec des filtres anti-repliement de spectre. Il est spcialement conu pour les tlphones cellulaires. La socit Motorola fabrique galement des DSP pour tlphones cellulaires

    8. Conclusion

    Ce cours a mis en avant certaines notions de bases des DSP. Toutefois, comme prcis dans lintroduction, les DSP ne sont quune partie du traitement numrique du signal. Plus exactement ils en sont un des supports clefs pour la ralisation pratique. De ce fait, programmer un DSP fait appel un large champ de connaissances techniques (lectronique, informatique, traitement du signal). Un traitement numrique du signal avec un DSP trouve des applications dans des domaines de plus en plus varis (exemples : asservissement des suspensions dune automobile, ralisation dun modem logiciel , compression dimage vido, etc...) Le principal moteur actuel de dveloppement et dvolution des DSP est limmense march des tlphones cellulaires (les sans-fils ). Le DSP y ralise principalement la compression/dcompression de la voie humaine, permettant de la transmettre avec un faible dbit numrique. Lutilisation des DSP trouve ses limites lorsquil sagit de traiter en temps rel des signaux de frquences trs levs, ou lorsquil sagit de raliser des fonctions trop simples pour justifier la complexit et le cot de llectronique ncessaire sa mise en uvre. Sous quelque forme que ce soit, lutilisation des DSP, et donc du traitement numrique du signal, constitue un domaine quil devient de plus en plus indispensable de connatre, et si possible de matriser.