You are on page 1of 28

Haute Ecole dIngnierie et de Gestion Du Canton de Neuchtel

DSP et temps rel

__________ Chapitre 1

INTRODUCTION AUX DSP ORIENTS APPLICATIONS INDUSTRIELLES

CD\DSP\Cours\Chap1

M. Correvon

T A B L E

D E S

M A T I E R E S
PAGE

1.

INTRODUCTION AUX DSP ORIENTS APPLICATIONS INDUSTRIELLES. .............................................1 1.1 INTRODUCTION ...........................................................................................................................................................1 1.2 PRSENTATION DES DSP. ..........................................................................................................................................2 1.2.1 Gnralits. ........................................................................................................................................... 2 1.2.1.1 La numrisation................................................................................................................................. 2 1.2.1.2 Rle du DSP...................................................................................................................................... 3 1.2.1.3 Les diverses approches possibles. ..................................................................................................... 4 1.2.1.4 Approche processeur ......................................................................................................................... 6 1.2.2 Noyau DSP............................................................................................................................................ 6 1.3 CLASSIFICATION DES DSP .........................................................................................................................................7 1.3.1 Virgule fixe ou flottante ........................................................................................................................ 7 1.3.1.1 Les DSP virgules flottantes ............................................................................................................ 7 1.3.1.2 Les DSP virgules fixes ................................................................................................................... 8 1.3.2 Classification virgule fixe / flottante des DSP ...................................................................................... 9 1.3.3 Performance des DSP.......................................................................................................................... 10 1.3.4 Puissance de calcul dun DSP ............................................................................................................. 10 1.3.5 Mesure du temps dexcution ( Benchmark ).................................................................................. 11 1.4 ARCHITECTURE FONCTIONNELLE ............................................................................................................................12 1.4.1 Architecture dun processeur............................................................................................................... 12 1.4.2 Architecture de Von Neumann et de Harvard ..................................................................................... 13 1.4.3 Utilisation de pipelines........................................................................................................................ 14 1.5 MTHODES ET OUTILS DE DVELOPPEMENTS..........................................................................................................15 1.5.1 Gnralits .......................................................................................................................................... 15 1.5.2 Dfinition des ressources ncessaires.................................................................................................. 16 1.5.3 La slection du DSP le plus adapt ..................................................................................................... 17 1.5.4 Structure matrielle de dveloppement ............................................................................................... 17 1.5.4.1 Le simulateur................................................................................................................................... 18 1.5.4.2 Le module dvaluation................................................................................................................... 18 1.5.4.3 Lmulateur temps rel.................................................................................................................... 18 1.5.5 Structure logicielle de dveloppement ................................................................................................ 19 1.5.6 Utilisation dun logiciel pour programmer une interface C................................................................. 20 1.5.6.1 Intrt dun logiciel convivial : gnration de codes pour DSP ...................................................... 20 1.5.6.2 Les gnrateurs de codes vers dSPACE.......................................................................................... 20 1.5.6.3 Les logiciels de dveloppement ...................................................................................................... 21 1.6 SPCIALISATION .......................................................................................................................................................21 1.6.1.1 Commande de moteurs.................................................................................................................... 21 1.6.1.2 Traitement de signaux simultans ................................................................................................... 21 1.6.1.3 DSP pour tlphones cellulaires...................................................................................................... 22 1.6.2 Exemple de la famille ADSP21xx dAnalog Devices......................................................................... 22

Bibliographie

INTRODUCTION AUX DSP

Page 1

1. INTRODUCTION AUX DSP ORIENTS APPLICATIONS INDUSTRIELLES. 1.1 INTRODUCTION Depuis plusieurs annes, le traitement numrique du signal est une technique en plein essor. Cette technique sappuie sur plusieurs disciplines, citons 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, ce chapitre est plus prcisment une description des 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, il est de premire importance de se 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 ? Ce cours a pour ambition de donner quelques lments de rponses ces questions. Pour y parvenir, les DSP sont trait dun point de vue gnral, comme les diffrentes architectures, les performances et les outils de dveloppements. Puis une famille particulire de DSP de manire plus approfondie comme tude de cas.
Signal Original Conversion Analogique Numrique Mmoire

Filtre Passe Bas

DSP

Conversion Numrique Analogique

Filtre Passe Bas

Ports E/S

Signal Trait

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

CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 2

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 srie synchrones rapides, des contrleurs DMA, des ports dE/S divers. 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). 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. 1.2 1.2.1 PRSENTATION DES DSP. Gnralits.

1.2.1.1 La numrisation. 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.
CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 3

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, 10bits 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. 1.2.1.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. 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.

CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 4

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. En 2004, les principaux fabricants de DSP sont : Texas Instruments Analog Devices Motorola Zilog Lucent Nec Zoran Zsp Microchip

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. 1.2.1.3 Les diverses approches possibles. 1.2.1.3.1 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 2f 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.
CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 5

Phnomnes physiques lorigine du signal

fmax
200kHz 5kHz 3.5kHz 20kHz 2.5MHz

Fe
1MHz 20kHz 8kHz 48kHz 10MHz

Te
1s 50s 125s 20.8s 100ns

Nombre de cycles de calcul pendant Te avec un temps de cycle de 50ns

Vibrations Commande dcoupage (moteurs, robotique, ) Parole Audio Vido

20 1000 2500 417 2

Tableau 1-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. lectronique 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, 1.2.1.3.2 Approche technologique La Figure 1-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.
Vitesse Composant logique classique Microcontrleur

DSP

Microprocesseur

Spcialisation

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

CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 6

1.2.1.4 Approche processeur On l'a vu, 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. 1.2.2 Noyau 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(nk)
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. 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
CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 7

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. 1.3 CLASSIFICATION DES DSP Il est impossible 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 1.3.1 Virgule fixe ou flottante Un 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 . 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). 1.3.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,
CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 8

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. 1.3.1.2 Les DSP virgules fixes Un DSP virgule fixe est un peu plus compliqu programmer quun DSP virgule flottante. Poids des bits Valeurs MSB -23 -8 0 1 0 0 1 1 22 4 1 1 0 1 1 0 21 2 0 0 0 1 1 0 LSB 20 1 1 1 1 1 1 0

le moins positif le plus positif le moins ngatif le plus ngatif

= = = = = =

4+1 -8+4+1 1 4+2+1 -8+4+2+1 -8

= = = =

+5 -3 +1 +7 -1 -8

Figure 1-3 : Reprsentation des nombres entiers cods sur 4 bits en complment 2

Poids des bits Valeurs

le moins positif le plus positif le moins ngatif le plus ngatif

MSB -20 -1 0 1 0 0 1 1

2 1/2 1 1 0 1 1 0

-1

2 1/4 0 0 0 1 1 0

-2

LSB 2-3 1/8 1 1 1 1 1 0

= = = = = =

0.5+0.125 -1+0.5+0.125 1 0.5+0.25+0.1251 -1+0.5+0.25+0.125 -1

= +0.625 = -0.375 = +0.125 = +0.875 -0.125 -1

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

Dans un DSP virgule fixe typique comme le TMS320C25, les nombre 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
CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 9

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 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 flottantes. 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. 1.3.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 1.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.
Nom ADSP2105 TMS320C2x ADSP2101 TMS320C5x ADSP2199x ADSP21010 TMS320C3x ADSP21020 TMS320C4x Critre de choix Faible cot Faible cot Haute performance Haute performance Haute performance Faible cot Faible cot Haute performance Haute performance Donnes avec virgule fixe ou flottante 16 bits Fixe 16 bits Fixe 16 bits Fixe 16 bits Fixe 16 bits Fixe 32 bits - Flottante 32 bits - Flottante 32 bits - Flottante 32 bits - Flottante Dure dune instruction lmentaire [ns] 100 80 60 35 6 80 50 40 40 Dure du calcul FFT [s] 3.46 9.01 2.07 2.97 0.4 1.54 3.08 0.77 1.55

Tableau 1-2 : 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.

CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 10

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).

1.3.3

Performance 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 o le 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. 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.

1.3.4

Puissance de calcul dun DSP C'est un autre critre de classification des DSP. Cette puissance de calcul dpend de la rapidit de l'excution des instructions, et donc de l'horloge. Dans un DSP, le MAC (multiplicateur et accumulateur) calcule le produit de deux entres codes sur N bits, dans un temps record de 7ns 150ns. Un cycle d'horloge !. La multiplication est obtenue de manire asynchrone. Le rsultat est charg dans un accumulateur 2 x N bits. Lutilisateur choisit de garder seulement les N bits de poids fort en simple prcision, et effectue alors une troncature ou alors l'ensemble du rsultat en double prcision. Bien entendu, si le DSP est virgule flottante, l'effet de la troncature est moins gnant.
Temps de calcul [ns] 600 500 400 300 200 100 0

1975

1980

1985

1990

1995

Annes

Figure 1-5 : Evolution du temps dexcution dune opration MAC selon Texas Instruments

CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 11

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 1-6 rsume les principales dfinitions en usage. Acronyme
Anglais MFLOPS Million FLoating-point Operations Per Second.

Dfinition Mesure le nombre doprations virgule flottante (multiplications, additions, soustractions, etc.) que le DSP virgule flottante peut raliser en une seconde. 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 DSP plutt que ses seules capacits de calcul. 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. Mesure la largeur de bande dun bus particulier ou dun dispositif dE/S, cest dire son taux de transfert.

MOPS Million Operations Per Second.

MIPS Million Instructions Per Second. MBPS Mega-Bytes Per Second.

Tableau 1-3 : Dfinitions des units les plus courantes de mesures des performances des DSP

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. 1.3.5 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 perfectionnement 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
CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 12

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, ce 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 dapplications 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 !)
ADSP 219x Filtre FIR 1re ordre Biquad IIR Filter (4 coef) FFT Complexe 1024 point Nombre de cycles Temps dexcution @ 160MHz

Division Sin/Cos Arctangente ln/log10

1 5 48320 19 11 13 11

6.25 ns 31.25 ns 302 us 118.75 ns 68.75 ns 81.25 ns 68.75 ns

Tableau 1-4 : Exemple dun tableau comparatif de Benchmark

1.4 1.4.1

ARCHITECTURE FONCTIONNELLE Architecture dun processeur Un processeur est un composant intgr (en technologie C-MOS) 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

CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 13

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. 1.4.2 Architecture de Von Neumann et de Harvard 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. Dans l'architecture de la machine de Von Neumann, le programme et les donnes sont enregistrs sur la mme 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 1-6 indique une architecture simple de Von Neumann, constitue dun bus de donnes et de programme et dun bus d'adresses. On voit que les changes s'effectuent de manire simple entre l'unit arithmtique et logique (ALU), c'est--dire 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
CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 14

microprocesseurs et beaucoup de microcontrleurs utilisent cette architecture car elle est trs souple pour la programmation
Memory Address Bus Program and Data Memory Memory Data Bus Input/Output Interface Arithmetic and Logic Unit

Figure 1-6 : Architecture de Von Neumann

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 1-7 indique une architecture simple de Harvard, constitue dun bus de donnes, dun bus de programme et de deux bus d'adresse.
Program Memory Address Bus Program Memory Program Memory Data Bus Input/Output Interface Arithmetic and Logic Unit Data Memory Data Bus Data Memory Address Bus Data Memory

Figure 1-7 : Architecture de Harvard

On voit que les changes s'effectuent de manire double 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. 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. 1.4.3 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 :
CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 15

1. 2. 3. 4.

aller chercher linstruction en mmoire programme (Fetch) ; raliser le dcodage de linstruction, et des adresses des oprandes (Decode) ; lire les oprandes en mmoire de donnes (Read) ; 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 1-5. 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.
Instruction n n+1 n+2 n+3 t Fetch t+1tclk Decode Fetch t+2tclk Read Decode Fetch t+3tclk
Execute

t+4tclk
Execute

t+5tclk
Execute

t+6tclk
Execute

Read Decode Fetch

Read Decode

Read

Tableau 1-5 : Principe de pipeline

1.5 1.5.1

MTHODES ET OUTILS DE DVELOPPEMENTS Gnralits Un processus de dveloppement typique pourrait tre celui de la Figure 1-8 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 1-8, 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. 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

CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 16

un systme dexploitation temps rel et assurer les fonctions de traitement numrique du signal.
Application

Dfinition des ressources ncessaires

Slection du DSP adquat

Partie logicielle

Partie matrielle Conception du schma

Ecriture du code

Dbogage

Ralisation dun prototype

Intgration

Tests de lapplication et debogage

Figure 1-8 : Exemple dun processus de dveloppement typique

1.5.2

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 ncessaires pour quantifier le signal), la vitesse dchantillonnage (critre de Shannon), la technologie et donc le 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.

CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 17

1.5.3

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. La prennit du produit, c'est--dire lvolution prvue par le fabricant (roadmap). 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. 1.5.4 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).

CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 18

1.5.4.1 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 9, 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. 1.5.4.2 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. 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. 1.5.4.3 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
CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 19

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. 1.5.5 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 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.
Source assembleur crit par le programmeur Assembleur Source assembleur gnr par le compilateur Compilateur C Source en langage C

Fichier Objet

Librairies de fonctions systme (temps rel)

Linker

Librairies de fonctions de traitements du signal

Fichier objet excutable

Convertisseur de format de fichier

Fichier HEX

DSP

Dbogueur

Simulateur

Module dvaluation

Emulateur

Figure 1-9 : Organigramme dun systme de dveloppement de logiciel pour DSP

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 algorithme de codage LPC 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
CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 20

un programme ayant les performances dun code bien crit en assembleur par un dveloppeur confirm. 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, 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 multitche, 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. 1.5.6 Utilisation dun logiciel pour programmer une interface C

1.5.6.1 Intrt dun logiciel convivial : gnration de codes pour DSP Dans une tude de simulation en lectronique, en traitement du signal, ou en automatique, il est intressant d'utiliser des outils mathmatiques appropris pour tester ou faire fonctionner en quasi-mulation un montage, un systme ou une transmission de donnes. La programmation du DSP se fait sur l'cran de l'ordinateur, l'aide de schmas-blocs et de signaux de commande prciss sur la modlisation du systme, ce qui est plus agrable et plus convivial pour l'utilisateur. Les algorithmes sont tudis par simulation, puis sont transforms pour tre excutables par un DSP. Le logiciel dispose de botes outils de problmes dj rsolus, sortes de sousprogrammes qui facilitent une tude plus globale d'un systme. Il est ainsi possible de crer des fichiers en langage C qui seront compils pour tre excuts par un DSP. On parle alors de gnrateurs de codes pour DSP. 1.5.6.2 Les gnrateurs de codes vers dSPACE La socit Scientific Software propose deux logiciels: MATLAB et SIMULINK et une carte d'application nomme dSPACE. Lanalyse mathmatique s'effectue grce au logiciel MATLAB. Pour une tude plus proche des problmes de l'lectronicien ou de l'automaticien, il est possible de lui associer le logiciel SIMULINK. Ltude d'un systme va alors aboutir une commande optimise par DSP, crite ventuellement en langage C. Un compilateur convertit le programme crit par le logiciel en un fichier excutable par un DSP en virgule flottante, situ sur une carte d'implantation dSPACE. Ce DSP va ensuite fonctionner de manire tester la commande avec des signaux rels issus d'un systme complexe, comme le contrle d'un robot. Le logiciel MATLAB sert l'analyse mathmatique des donnes, telles que la rsolution d'quations diffrentielles ou l'analyse numrique matricielle. Par la suite, on peut grce des outils , dvelopper l'analyse du signal : convolution, corrlation, transforme de Fourier, traitement d'images... MATLAB permet en outre l'identification du domaine de frquences des systmes utiliss en lectronique et en traitement du signal. Enfin, il est possible, en vue

CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 21

de l'application au DSP, de tester des algorithmes, par exemple ceux qui sont utiliss en codage correcteur d'erreur pour la transmission numrique des donnes. Pour tudier de manire plus approfondie un systme complexe, en particulier en simulation, on passe de MATLAB SIMULINK. partir de l, on utilise SIMULINK en gnrateur de codes de commande pour DSP. Lavantage ici est que les codes envoys sur dSPACE sont bien adapts au DSP utilis, quel que soit le fabricant et que les performances du composant sont optimales. Dans ces conditions, on peut faire fonctionner le DSP en temps rel, c'est--dire en raction complte et rapide avec le fonctionnement et le comportement du systme command. 1.5.6.3 Les logiciels de dveloppement La socit Hewlett Packard propose des logiciels permettant, partir d'un concept, de dvelopper compltement une programmation de DSP, en utilisant soit le langage C, soit les outils MATLAB. Bien entendu, des outils, des bibliothques de donnes et de sousprogrammes sont disponibles et il est possible d'effectuer toutes les simulations ncessaires pour vrifier le fonctionnement. 1.6 SPCIALISATION 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. 1.6.1.1 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 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. 1.6.1.2 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.
CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 22

1.6.1.3 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 sigmadelta, 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. 1.6.2 Exemple de la famille ADSP21xx dAnalog Devices La famille ADSP 2lxx est virgule fixe utilisant des donnes en 16 bits. Cette famille a volu trs vite en fonction de la diversification des besoins des DSP Ces besoins ont fait natre des oprations particulires certains DSP, comme le port hte (HIP : Host Interface Port) des ADSP2111, 2171 et 2173, qui permet de communiquer des donnes avec un autre processeur, ou l'interface analogique de l'ADSP21msp58 (Tableau 1-6). Pour tous les DSP de la famille 2lxx, le constructeur a cherch ce que l'architecture interne du composant permette d'excuter en un seul cycle d'horloge les tches ci-dessous : crer l'adresse suivante du programme ; aller chercher l'instruction suivante ; raliser un ou deux dplacements de donnes ; excuter l'instruction.

Dans un cycle d'horloge le DSP peut aussi recevoir ou transmettre les donnes d'un port srie ; recevoir ou transmettre les donnes d'un port DMA ou port hte. Le cur des DSP de la famille ADSP21xx ddie spcifiquement aux calculs contient les ensembles principaux suivant : un ALU (Arithmetic and Logic Unit) permettant les calculs simples du processeur : addition, soustraction, oprations logiques entre donnes de 16 bits, un MAC (Multiplier and ACcumulator) permettant les calculs de multiplication et d'addition (ou de soustraction) entre donnes de 16 bits, un BS (Barrel Shifter) permettant le dcalage de bits sur 16 ou 32 bits en mode logique et arithmtique, un DAG (Data Address Generator), gnrateur d'adresses de donnes, un pointeur, indispensable pour la plupart des oprations. Le processeur ADSP-2101, le plus ancien, comporte deux ports srie pour la transmission des donnes, 1k (1024 mots) de mmoire de donnes de 16 bits en mmoire vive (RAM) et 2k de mmoire de programme de 24 bits en RAM. Le bus d'adressage est en 14 bits. Lhorloge interne fonctionne 25 MHz. La technologie est de type C-MOS, o la longueur du canal est de 0.5m. La consommation du composant est infrieure 1W. Le processeurADSP-2181, l'un des plus rcents, comporte deux ports srie pour; la transmission des donnes, 16k de mmoire de donnes de 16 bits en mmoire vive (RAM) et 16k de mmoire de programme de 24 bits en RAM. Le bus d'adressage est en 14 bits. Lhorloge interne fonctionne 33MHz. La technologie est du type C-MOS, avec une longueur du canal de 0.5m. Son architecture est conue pour mener en parallle de multiples oprations afin de favoriser le pipe-lining .
CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 23

Caractristiques ALU MAC Dcaleur DAG Squenceur Mmoire donnes Mmoire programme Timer Port srie 0 Port srie 1 Port Hte Port DMA Interface analogique Alimentation Vitesse dexcution (MIPS)

2101 oui oui oui oui oui 1k 2k oui oui oui 5V 20

2103 oui oui oui oui oui 1k 2k oui oui oui 3.3V 10

2105 oui oui oui oui oui 512 1k oui oui 5V 13.8

2115 oui oui oui oui oui 512 1k oui oui oui 5V 20

2111 oui oui oui oui oui 1k 2k oui oui oui oui 5V 20

2171 oui oui oui oui oui 2k 2k oui oui oui oui 5V 33

2173 oui oui oui oui oui 2k 2k oui oui oui oui 3.3V 20

2181 oui oui oui oui oui 16k 16k oui oui oui oui 5V 33

2183 oui oui oui oui oui 16k 16k oui oui oui oui 3.3V 33

21msp58 oui oui oui oui oui 2k 2k oui oui oui oui 5V 26

Tableau 1-6 : Famille ADSP21xx

Analog Devices donne galement une ide de lvolution prvue pour ses produits sous la forme dune Roadmap .

Figure 1-10 : Roadmap de la famille ADSP21xx dAnalog Devices

CD\DSP\Cours\Chap1

INTRODUCTION AUX DSP

Page 24

Bibliographie
[1] Single-Chip, DSP-Based High Performance Motor Controller REV. B ADMC401 DSP Motor Controller Developers Reference Manual Rev. 2.1, 11 Septembre 2000 ADSP-2100 Family Assembler Tools & Simulator Manual Second Edition (11/94) ADSP-2100 Family Users manual Third Edition (9/95)

[2]

[3]

[4]

CD\DSP\Cours\Chap1

You might also like