le traitement de la parole (codage-compression, analyse,
reconnaissance, synthse...) et des images (codage- compression, reconnaissance de formes...) ;
le radar (poursuite multimode, traitement
antirverbration, identification de cibles...) ; Extrait de Techniques de lIngnieur, trait lectronique les applications mdicales : traitement de signaux EEG, EMG, EOG... imagerie biomdicale dans les RMN...) ;
la commande (industrielle, avionique...), etc.
Lapparition des microprocesseurs standards, suivis des
microcontrleurs, puis des DSP (Digital Signal Processors), microprocesseurs ddis au traitement du signal, a rapidement assur lavantage des solutions programmes sur les solutions cbles. Ces techniques prsentent de nombreuses caractristiques intressantes parmi lesquelles :
une reproductibilit des traitements facilitant les tests ;
Extrait de Techniques de lIngnieur, trait lectronique la ralisation de fonctions nayant pas, ou du moins trs difficilement, dquivalent analogique ;
une facilit de modification des algorithmes et/ou des
paramtres que celui-ci ncessite ;
lexistence doutils de simulation.
Dun point de vue conomique, on peut tre assur dune
croissance importante du march des DSP eu gard les quipements dans lesquels ils sont prsents :
Extrait de Techniques de lIngnieur, trait lectronique
les tlphones mobiles sous forme de circuits spcialiss coeur de DSP ;
les modems sous une forme similaire ;
les terminaux DSL (Digital Subscriber Line), HDSL,
ADSL... dans lesquels ils assurent lgalisation, le brouillage, lannulation dcho, la suppression de la tldiaphonie, etc.
la tlvision haute dfinition (TVHD) (codage-dcodage
du son et de limage) ;
Extrait de Techniques de lIngnieur, trait lectronique
la radiodiffusion numrique (DAB Direct Broadcast Audio) ;
les DVD (Digital Video Disks) pour le dcodage son
Dolby AC-3 et le dcodage vido MPEG-2 ;
le contrle des moteurs courant alternatif ;
le contrle des disques durs : utilisation de techniques
maximum de vraisemblance (PRML Partial Response, Maximum Likehood) pour augmenter la densit denregistrement, etc.
Extrait de Techniques de lIngnieur, trait lectronique
Nous parlerons de ce qui identifie rellement les processeurs de traitement du signal en vue des traitements quil y a lieu de raliser. Nous nous intresserons ensuite aux techniques reprises aux processeurs standard utiliss dans les microordinateurs et autres stations de travail. Ces techniques, structure Harvard, mmoire cache et pipeline, sont systmatiquement utilises dans les DSP.
Les concepts prsents seront illustrs par des exemples pris
sur les DSP des trois constructeurs AT&T, Motorola, et Texas Instruments. Les autres acteurs du march des DSP, dont les
Extrait de Techniques de lIngnieur, trait lectronique
noms apparaissent aussi dans ce qui suit, sont plemle : Cirrus Logic, Texas Instruments, SGS-Thomson, IBM, Lucent, Analog Devices, Motorola, Philips, Rockwell Int., Zoran, etc.
En retour, les DSP ont fait profiter les processeurs classiques
de certaines de leurs caractristiques. Les architectures MMX, puis Merced, dIntel, ou autre Power3 dIBM, en sont des exemples.
Les exemples donns sont, pour la plupart, issus des guides
utilisateur et autres notes dapplications de ces fabricants,
Extrait de Techniques de lIngnieur, trait lectronique
tous documents que lon trouve trs facilement sur leurs sites Internet.
Processeur dans le traitement numrique
Dans tous les domaines prcdemment cits dans ce cours, on
trouve des traitements faisant appel des fonctions :
de filtrage (oprations de convolution) ;
de calcul matriciel ;
Extrait de Techniques de lIngnieur, trait lectronique
de transformations complexes (FFT, DCT...) ;
de gnration de signaux ;
de calculs de caractristiques statistiques telles que,
moyennes, intercorrlations et autocorrlations, etc.
Selon les caractristiques frquentielles des phnomnes
tudis et la charge de calcul mettre en uvre, ces traitements pourront tre raliss laide :
Extrait de Techniques de lIngnieur, trait lectronique
dun processeur classique ou dun microcontrleur : cette
solution a lavantage de profiter de solutions matrielles, et surtout logicielles, prouves ;
dun microprocesseur de traitement numrique de signal
rattach ou non un processeur hte, ce dernier devant, si ncessaire, charger le programme de traitement et les paramtres de ce traitement, et ventuellement faire les acquisitions et restitutions des donnes.
Extrait de Techniques de lIngnieur, trait lectronique
Les implantations de ces diffrentes solutions peuvent prendre de nombreuses formes : circuits intgrs dots dun cur de DSP, cartes enfichables dans un ordinateur hte ou connectes, travers une liaison srie ou parallle, un processeur, PC ou station de travail.
Le type doprations, trs caractristique du traitement
numrique du signal TNS, est lopration multiplication suivi daddition, ce quon appelle communment Multiplication Extrait de Techniques de lIngnieur, trait lectronique Accumulation MAC. Donc, pour bien reflter les performances des DSP, on utilise le temps ncessaire une MAC.
Pour la plupart des processeurs, la dure du MAC est gale au
temps de cycle instruction minimal. En utilisant cette dure, une estimation grossire sur les possibilits dun DSP donn tenir une certaine application peut tre ralise (tableau 1).
Extrait de Techniques de lIngnieur, trait lectronique
Tableau 1 : Capacit dun DSP en MAC
2. Architecture mmoire des DSP
Cest un lieu commun de dire que la mmoire constitue le
goulot dtranglement pour le fonctionnement dun processeur. Nombre dartifices peuvent tre utiliss afin dobtenir un dbit compatible avec la rapidit du processeur :
Extrait de Techniques de lIngnieur, trait lectronique
caches, organisation en bancs et accs en rafale (burst access ), mmoire multiaccs, etc. [2].
2.1 Paralllisme daccs
Les DSP rsolvent les difficults daccs la mmoire en
adoptant tout ou partie des dispositifs suivants :
une architecture Harvard interne, cest--dire une
sparation des chemins de donnes pour les instructions et les donnes ;
Extrait de Techniques de lIngnieur, trait lectronique
deux antmmoires correspondant aux deux chemins de donnes (instructions et donnes) ;
des bancs de mmoire RAM (Random Access Memory )
et ROM (Read Only Memory ) internes dots de temps daccs rduit ;
la possibilit daccder de faon simultane plusieurs
bancs de mmoire.
On prsente dans ce qui suit quelques exemples typiques
darchitectures internes de DSP, avec les innovations
Extrait de Techniques de lIngnieur, trait lectronique
quils ont prsentes au moment de leur commercialisation.
2.1.1 Architecture Harvard de base
Un des premiers DSP, le TMS32010 de Texas Instrument
(TI) possde une architecture de type Harvard. Programme en ROM et donnes en RAM sont accessibles sparment et indpendamment (figure 1).
Extrait de Techniques de lIngnieur, trait lectronique
Figure 1 Diagramme simplifi de larchitecture mmoire du TMS32010
Extrait de Techniques de lIngnieur, trait lectronique
Sur la figure 2, MUX dsigne un multiplexeur, AR un registre auxiliaire, ARP le pointeur de registres auxiliaires et DP un pointeur de page mmoire. La recherche dune instruction peut concider avec la recherche dun oprande par linstruction prcdente. Les instructions un seul oprande mmoire peuvent donc tre excutes une vitesse gale au temps de cycle de base. Ce type dorganisation est comparer avec une architecture banc de mmoire unique dans laquelle linstruction et ses oprandes doivent tre recherchs squentiellement dans la mme mmoire.
Extrait de Techniques de lIngnieur, trait lectronique
Bien quil soit possible de stocker des donnes dans la mmoire programme, le transfert de ces donnes par lintermdiaire des instructions TBLR et TBLW (Table Read et Table Write ) est relativement lent.
2.1.2 Premire modification - accs simultans
Une premire amlioration consiste permettre aux donnes
stockes dans la mmoire de programme dtre utilises directement dans les instructions arithmtiques. Cela autorise lexcution dinstructions deux oprandes. Dans les Extrait de Techniques de lIngnieur, trait lectronique TMS32020 et TMS320C25 de TI, on peut accder des oprandes dans des blocs particuliers de la mmoire de programme. Une instruction portant sur deux oprandes en mmoire demandera deux cycles pour sexcuter, et non trois (un cycle fetch et un accs deux donnes simultanment).
Un exemple dune telle instruction est le MAC
(multiplication-accumulation), dans laquelle sont indiqus (cods) les deux oprandes multiplier. Nous verrons plus
Extrait de Techniques de lIngnieur, trait lectronique
loin les modifications quil est possible dapporter afin de raliser ce type dinstruction en un seul cycle.
Dans les DSP32 et DSP32C dAT&T il y a trois bancs
mmoire programme/donnes (512 32), chacun dentre eux pouvant contenir des instructions et des donnes. Contrairement aux TMS32020 et TMS320C25, le temps de cycle mmoire est la moiti du temps de cycle de base dune instruction, et, de ce fait, deux accs chaque banc mmoire peuvent tre faits dans chaque cycle instruction. Les
Extrait de Techniques de lIngnieur, trait lectronique
instructions avec trois oprandes mmoire peuvent tre ralises en un seul cycle.
Par exemple :
(m1 = a0) = a0 + m2 m3
avec mi adresse mmoire dans le langage assembleur utilis
pour cette machine, cest une instruction de multiplication de
Extrait de Techniques de lIngnieur, trait lectronique
deux oprandes m2 et m3 en mmoire, suivie dune accumulation et dune rcriture en mmoire m1.
Une telle instruction ne peut cependant sexcuter en un seul
cycle que si les donnes sont disposes de faon approprie dans les bancs mmoire. De plus, les instructions voisines ne doivent pas faire accs au mme banc mmoire en mme temps. Si tel est le cas, un processus matriel assure le droulement correct des oprations en retardant les instructions qui suivent. En vertu de quoi le programmeur
Extrait de Techniques de lIngnieur, trait lectronique
peut ignorer larchitecture mmoire tant quil nest pas ncessaire doptimiser le code.
2.1.3 Deuxime modification : mmoire multiport
Une deuxime modification consiste utiliser de la mmoire
de donnes multiaccs (figure 3). Mme si cette solution est souvent perue comme trs coteuse, elle a lavantage de permettre des instructions multioprandes sans se proccuper de la rpartition des oprandes dans des bancs multiples. Le MB86232 de Fujitsu possde une mmoire programme et une Extrait de Techniques de lIngnieur, trait lectronique mmoire de donnes interne de 512 mots avec triple accs sur trois bus distincts. La mmoire de donnes externes est de type classique, monoaccs. Les instructions multioprandes utilisant des rfrences dans cette mmoire demanderont donc plusieurs cycles.
2.1.4 Troisime modification : cache instruction
Lamlioration suivante consiste utiliser une mmoire cache
( 7.1). Tant que les instructions se trouvant dans le cache sont excutes, aucun cycle de recherche nest demand la mmoire de donnes/programmes (data/prog) et, ainsi, un
Extrait de Techniques de lIngnieur, trait lectronique
cycle mmoire est libr (pour la recherche dune donne par exemple).
Exemple : les processeurs TMS32020 et TMS320C25
disposent dune instruction de rptition utilisable en conjonction avec des instructions du type MAC (multiplication-accumulation). Ainsi, le code suivant peut tre utilis pour implmenter un filtre RIF :
Extrait de Techniques de lIngnieur, trait lectronique
RPTK CSTE
MACD M1, M2
o linstruction RPTK provoque le chargement de
linstruction suivante (MACD) dans un cache instruction de taille unitaire (il est un peu abusif de parler de cache dans ce cas), partir duquel elle sera excute CSTE + 1 fois. Aprs la premire instruction MACD, la mmoire prog/ data ne sera plus utilise pour la recherche des instructions et pourra donc servir la recherche des Extrait de Techniques de lIngnieur, trait lectronique donnes dont les adresses sont dfinies par M1 et M2. De ce fait, si le premier MACD prend deux cycles, les suivants nen prendront quun. Le cache unitaire de cet exemple permet ainsi une technique de boucles transparentes (low overhead ).
Linstruction RPTK engendre un mcanisme de rptition
dune instruction un nombre de fois constant sans utiliser dinstruction pour linitialisation, le test du compteur de boucle et linstruction de branchement.
Extrait de Techniques de lIngnieur, trait lectronique
Le 61810 dHitachi fut le premier DSP supporter ces boucles transparentes et cest aujourdhui une technique courante. On peut videmment tendre lutilisation de cet artifice avec un cache instruction plus important. Ainsi, les DSP16 et DSP16A dAT&T (Lucent Tech.) utilisent cette technique avec un cache de quinze instructions et les boucles peuvent donc contenir jusqu quinze instructions (figure 2).
Extrait de Techniques de lIngnieur, trait lectronique
Figure 2 Diagramme des architectures mmoire des DSP16 et DSP16A
Lorganisation de lADSP2100 dAnalog Device est
comparable bien que les mmoires de programme et de
Extrait de Techniques de lIngnieur, trait lectronique
donnes soient externes. Seul, le cache programme, qui peut contenir seize instructions est interne. Les versions ADSP2101/2102 ont de la mmoire interne.
Une autre amlioration consiste utiliser plusieurs bancs de
mmoires de donnes. On trouve ce type de dispositif dans les DSP56001 ou DSP96002 de Motorola. Ces processeurs permettent les recherches simultanes dune instruction et de deux oprandes quand le temps de cycle mmoire est gal au Extrait de Techniques de lIngnieur, trait lectronique temps de cycle instruction. Comme le montre la figure 3, les DSP56001 et 96002 utilisent trois bancs mmoire et quatre bus internes.
Extrait de Techniques de lIngnieur, trait lectronique
Figure 3 Bloc diagramme simplifi du DSP56001
Extrait de Techniques de lIngnieur, trait lectronique
Si le programmeur rpartit avec soin les donnes entre les diffrents bancs mmoire, les oprations deux oprandes mmoires recherchent leurs donnes dans les deux bancs mmoire X et Y, et de telles oprations ne consomment quun cycle instruction.
Dans le DSP96002, on peut faire deux accs mmoires par
cycle instruction, comme dans les DSP32 et DSP32C. Le deuxime accs est utilis pour le DMA (Direct Memory
Extrait de Techniques de lIngnieur, trait lectronique
Access ). Par consquent, le DMA ninterfre pas avec lexcution des instructions.
Le TMS320C30 dispose de trois bancs de mmoire interne
similaires ceux des DSP 56001 et 96002, deux bancs de RAM et un de ROM (figure 4).
Extrait de Techniques de lIngnieur, trait lectronique
Extrait de Techniques de lIngnieur, trait lectronique Figure 4 Bloc diagramme simplifi du TMS320C30
Si le programme en cours dexcution est en ROM, les
instructions deux oprandes mmoire consomment seulement un cycle. Comme pour les 96002, DSP32 et 32C, chaque bloc mmoire peut tre atteint deux fois par cycle instruction. Contrairement au 96002, le deuxime accs peut tre utilis par des instructions multioprandes. Ainsi, mme si deux oprandes proviennent du mme bloc mmoire, linstruction se droulera toujours en un seul cycle.
Extrait de Techniques de lIngnieur, trait lectronique
Les cycles mmoires supplmentaires sont aussi utilisables par lunit de DMA pour raliser le transfert de donnes externes vers les mmoires sans interfrer avec lexcution du programme. Mme avec une telle bande passante, il est encore possible davoir des conflits. Une squence donne dinstructions peut tenter daccder au mme banc mmoire trois fois en un cycle instruction.
Dans ce cas, le matriel dtecte un conflit et retarde lune des
instructions. Comme dans les DSP32 et DSP32C, le
Extrait de Techniques de lIngnieur, trait lectronique
programmeur peut ignorer lorganisation parallle de larchitecture mmoire jusqu ce quil devienne ncessaire doptimiser le code. Un cache instruction nest pas ncessaire pour lexcution vitesse maximale des instructions si la bande passante mmoire est suffisamment leve. Cependant cela nest vrai que si le programme est situ en mmoire interne. Le TMS320C30 dispose dun cache instruction qui est utilis quand le programme est stock en mmoire externe. Les accs ne peuvent en effet intervenir quune fois par cycle instruction au lieu de deux, et seuls deux bus sont
Extrait de Techniques de lIngnieur, trait lectronique
oprationnels extrieurement au lieu de quatre. Quand un accs extrieur dbute, le 320C30 teste tout dabord si linstruction est dans le cache. Si cest le cas, le cycle mmoire externe est conserv. Sinon, linstruction est lue et charge dans le cache instruction. La stratgie dtaille du cache est comparable celle utilise dans la plupart des processeurs classiques. Le 320C30 amliore encore sa bande passante mmoire en permettant laccs des mmoires parallles deux fois par cycle. Cela signifie quun cycle instruction ne peut pas tre infrieur deux fois le temps de
Extrait de Techniques de lIngnieur, trait lectronique
cycle mmoire. Il est possible dobtenir un effet semblable en utilisant plus de mmoires parallles.
2.1.6 Dernire modification multiplication des bancs
mmoire et des bus
Le DSPi de Hitachi utilise six bancs mmoire, quatre de
donnes, un de programme et un pour les entres-sorties. Un temps de cycle instruction est gal un temps de cycle
Extrait de Techniques de lIngnieur, trait lectronique
mmoire. Des instructions trois oprandes mmoire (incluant, par exemple, deux lectures et une criture) utiliseront trois des quatre bancs de mmoires de donnes et la mmoire de programme. Simultanment, une instruction entres/sorties pourra ventuellement accder au quatrime banc mmoire.
2.1.7 Conclusions
Extrait de Techniques de lIngnieur, trait lectronique
Un des paramtres utilis dans la mesure de performances est le taux de demande dfini comme le nombre total de cycles mmoire par cycle instruction. On ne spcifie ceux-ci que pour les bancs de mmoire interne. Les cycles mmoire particuliers ne sont pas pris en compte. Ainsi, les DSP16 et TMS32010/320C25 ont un cycle dcriture spcial utilis pour dcaler les donnes dans un tampon de donnes (utilisation lors dune opration de filtrage par exemple).
Le tableau 2 rcapitule les taux de demande pour quelques
processeurs courants. La taille du cache instruction, la
Extrait de Techniques de lIngnieur, trait lectronique
quantit de mmoire interne (en nombre de mots), ainsi que la taille de lespace adressable total sont indiques. Les DSP avec le plus faible taux de demande (2) ncessitent la prsence dun cache instruction afin de pouvoir excuter des instructions deux oprandes mmoire en un seul cycle. Pour
pouvoir implmenter des filtres RIF en un seul cycle
instruction par cellule, il faudra disposer de modes dadressage en buffer circulaire ou de cycle dcriture spcialis (comme dans les TMS32010/20/C25 et le DSP16).
Extrait de Techniques de lIngnieur, trait lectronique
Les DSP avec un taux de demande de 3 (comme le DSP56001) ne ncessitent pas de cache instruction, mais lutilisation de mode dadressage en buffer circulaire pour les blocs de donnes que lon doit dcaler .
Les DSP avec un taux de demande de 4 ou plus ne ncessitent
ni cache ni buffer circulaire . Remarquons toutefois que ces taux sont donns pour des accs des mmoires internes et seraient normalement plus bas pour de la mmoire externe.
Extrait de Techniques de lIngnieur, trait lectronique
3. Arithmtique
Nous nous intressons dans ce paragraphe aux problmes de
reprsentation des nombres. Les DSP ne disposent gnralement pas dunit de calcul flottant pour :
des raisons de cot ;
des questions de performances : les calculs en virgule
flottante, mme sils sont effectus par une unit
Extrait de Techniques de lIngnieur, trait lectronique
spcialise, sont beaucoup plus lents que les calculs effectus par lunit arithmtique et logique, donc sur des entiers ;
des questions dutilit : la plupart des algorithmes nont
pas vraiment besoin de la dynamique apporte par la reprsentation flottante ; il faut cependant avoir conscience des quelques problmes que cela peut faire merger en terme de bruit de calcul et de non-linarits dans le traitement.
Extrait de Techniques de lIngnieur, trait lectronique
La prsentation des problmes de reprsentation est en outre une occasion pour introduire quelques architectures de DSP.
3.1 Reprsentation virgule fixe
3.1.1 Principe de la reprsentation Qk
Dans un DSP utilisant larithmtique entire virgule fixe, le
programmeur sera tenu de prendre en considration les limites imposes par le systme de numration. En particulier, les dpassements de capacit devront tre vits et la
Extrait de Techniques de lIngnieur, trait lectronique
prcision des rsultats soigneusement conserve en normalisant les signaux traits.
En fait il y a deux sources de perte de prcision sur les
donnes :
la premire provient des conversions analogique-
numrique, ou codages-quantifications ;
la seconde des oprations de multiplication.
Cette dernire source derreur est la seule dpendre du DSP.
En effet, le nombre de bits ncessaires pour reprsenter le
Extrait de Techniques de lIngnieur, trait lectronique
produit en prcision maximale est gal la somme des nombres de bits des oprandes. carter lun de ces bits dans le rsultat entrane une perte dinformation. La plupart des architectures DSP permettent lutilisateur de conserver le produit entier. Considrons le chemin de donne de la figure 8.
Les oprandes du multiplicateur, qui peuvent tre lus en
mmoire de donnes ou en mmoire de programme (cas de ladressage immdiat), sont sur 16 bits. Lunit arithmtique et logique (ALU) ainsi que laccumulateur sont sur 32 bits.
Extrait de Techniques de lIngnieur, trait lectronique
En rgle gnrale, si les oprandes du multiplicateur sont sur N bits, on aura une ALU et un accumulateur dau moins 2N bits. Si seuls N bits des 2N bits du rsultat sont conservs, le programmeur doit choisir la sauvegarde des N bits les plus significatifs afin de conserver la plus grande prcision possible. Le dcaleur (shifter ) qui suit laccumulateur dans le chemin de donnes du schma est dvolu cette tche. Les dpassements de capacit apparaissent alors sous deux formes :
Extrait de Techniques de lIngnieur, trait lectronique
soit le registre accumulateur est en dpassement de capacit la suite dun nombre dadditions (accumulations) trop important ;
Extrait de Techniques de lIngnieur, trait lectronique
Figure Chemin de donnes simplifi du TMS320C25
Extrait de Techniques de lIngnieur, trait lectronique
soit la sauvegarde des N bits de laccumulateur a conduit carter des bits significatifs.
Exemple : considrons le produit des deux quantits :
0100 0000 0000 0000 et 0100 0000 0000 0000
Le rsultat de la multiplication sur 32 bits est 228 :
0001 0000 0000 0000 | 0000 0000 0000 0000
et ne peut videmment pas tre reprsent sur 16 bits.
0001 0000 0000 0000 ou 0000 0000 0000 0000
Extrait de Techniques de lIngnieur, trait lectronique
Lorsque la multiplication est suivie dune addition dun nombre n sur 16 bits se pose donc un problme du cadrage. quel mot de 16 bits doit-on ajouter n ? Une solution consiste aborder le problme par le biais de la reprsentation dite Qk des nombres manipuls. Celle-ci octroie k bits la partie fractionnaire. En principe il faut faire une analyse pralable de la dynamique des quantits manipules pour viter
tout phnomne de saturation relativement au choix de
k.
Extrait de Techniques de lIngnieur, trait lectronique
Exemple : le nombre 5,75 peut tre cod sur N = 16 bits en Q8 :
0000 0101 , 1100 0000
o la virgule est reprsente de faon symbolique pour
rappeler le codage.
Le nombre entier correspondant est celui qui serait obtenu par
arrondi de la multiplication du rel par 2k. Ainsi, le nombre 5,75 sera
Extrait de Techniques de lIngnieur, trait lectronique
cod, avec la mme rgle :
5,75 * 256 = 147210 = FA4016 = 1111 1010 ,
0100 0000
Du point de vue opratoire, la somme de deux nombres Qk
est Qk et leur produit est Q2k . Cela explique la prsence doprations de multiplication avec dcalage permettant davoir un rsultat Qk aprs multiplication ( 3.1.2). On
Extrait de Techniques de lIngnieur, trait lectronique
utilise le plus souvent le format Q15 qui impose de ramener les nombres manipuls des valeurs infrieures 0,5 en module et les multiplier ensuite par 32768. La valeur maximale en Q15 est 0,111111111111111 = 1 215, la prcision 215 et la valeur minimale 1,0...0 = 1.
3.1.2 Traitement matriel des dbordements
Extrait de Techniques de lIngnieur, trait lectronique
Les mesures suivantes peuvent tre prises pour viter, ou traiter, les dpassements de capacit que lon peut avoir en dpit de toutes les prcautions prises :
Augmentation de la prcision : pour le premier type de
dpassement, une solution partielle consiste utiliser une largeur de mot plus grande pour laccumulateur et lALU. Considrons en exemple le chemin de donnes de DSP16 de AT&T (figure 9).
Extrait de Techniques de lIngnieur, trait lectronique
Les accumulateurs ont 36 bits et lALU effectue ses oprations sur 36 bits au lieu de 32. Les quatre bits supplmentaires prsents en poids fort permettent dviter, dans une certaine limite, les dpassements. Cela permet dadditionner jusqu 24 1 = 15 produits de 32 bits dans laccumulateur, en tant certain quaucun dpassement napparatra. De nombreux DSP utilisent cette technique des bits supplmentaires pour lALU et les accumulateurs.
Extrait de Techniques de lIngnieur, trait lectronique
Extrait de Techniques de lIngnieur, trait lectronique Figure 9 Chemin de donnes simplifi du DSP16 dAT&T
Extrait de Techniques de lIngnieur, trait lectronique
Figure 10 Chemin de donnes simplifi du DSP56001 de Motorola
n Saturation arithmtique : quand un dpassement se
produit, le processeur force simplement le rsultat la plus grande, ou plus petite, valeur selon que le rsultat est positif ou ngatif, et continue fonctionner comme si de rien ntait. Cela est prfrable une autorisation simple de dpassement qui pourrait entraner une erreur importante sur la valeur et son signe (passage de 000...0 111...1, par exemple). Cest galement prfrable la gnration dune erreur spcifique
Extrait de Techniques de lIngnieur, trait lectronique
qui demanderait un traitement programm, gnralement incompatible avec le temps rel. Afin de pouvoir raliser une telle fonction, lALU doit possder un mcanisme matriel de saturation, et celui-ci doit se trouver physiquement entre laccumulateur et le bus de donnes. Dans lexemple choisi, lunit Dcaleur/Saturation de la figure 9 assume cette fonction. Dans le 320C50 de TI, le bit OVM (bit 11) du registre ST0 permet de choisir le type de traitement des saturations. Lorsque ce bit est positionn 1, laccumulateur
Extrait de Techniques de lIngnieur, trait lectronique
prend la plus grande valeur positive ou ngative lors dune condition doverflow.
n Produits dcals : avant deffectuer laddition dun produit
laccumulateur, il peut tre dcal droite (avec extension du signe) de k positions. Cela autorise 2k 1 multiplications accumulations, au prix dune perte de prcision, sans provoquer un overflow. Les dcaleurs, se trouvant aprs le registre P dans les deux figures prcdentes, peuvent tre utiliss cet effet. Puisque ce dcalage est en fait une mise lchelle du produit, le programmeur doit en tenir compte
Extrait de Techniques de lIngnieur, trait lectronique
dans la suite du traitement. Ces trois mesures pour viter les dpassements sont mises en uvre dans le DSP56001 de Motorola dont le chemin de donnes est illustr par la figure 10. Les accumulateurs A et B sont sur 56 bits, soit 8 bits supplmentaires par rapport aux 48 bits ncessaires au produit, et un limiteur (traitement de la saturation) est install entre les accumulateurs (A et B) et les bus de donnes. Trouver une solution viable au problme du dpassement de capacit exige que le programmeur connaisse la dynamique de toutes les variables afin que les dpassements soient
Extrait de Techniques de lIngnieur, trait lectronique
suffisamment improbables (le terme suffisamment dpend de lapplicationlapplication considre). Naturellement, le programmeur peut toujours assurer que les variables soient petites lors de leur codage, mais alors lerreur de quantification sera grande.
3.2 Reprsentation virgule flottante
Certains DSP disposent dune unit de calcul flottant. Cette
caractristique facilite grandement la vie du programmeur car les problmes de dynamique sont quasi rsolus. Un nombre
Extrait de Techniques de lIngnieur, trait lectronique
reprsent en virgule flottante est compos dune mantisse M(x ) et dun exposant E(x ).
x = M (x )2E (x )
La prcision nest amliore que si le nombre de bits de la
mantisse est suprieur au nombre de bits des quantits entires que lon serait amen manipuler dans le traitement. Si lon examine les oprations lmentaires, il est clair quune unit flottante doit se composer des lments suivants :
un multiplicateur pour effectuer le produit des mantisses ;
Extrait de Techniques de lIngnieur, trait lectronique
un additionneur pour effectuer la somme des exposants ;
un mcanisme de normalisation du rsultat.
cela se rajoutent gnralement des bits pour stocker le
rsultat du produit des mantisses. Les DSP DSP32, DSP32C, TMS320C30, mPD77230 utilisent ce type darithmtique avec un exposant sur 8 bits et une mantisse sur 24 bits (reprsentation simple prcision). Si lon veut conserver la totalit de la prcision dans une opration de multiplication, il faudra donc un rsultat avec une mantisse sur 48 bits : en fait
Extrait de Techniques de lIngnieur, trait lectronique
on en conserve seulement 32 dans le DSP32C et le TMS320C30 et 47 dans le mPD77230.
Le multiplicateur flottant du DSP96002 peut traiter des
oprandes de 44 bits (1 bit de signe, 32 bits de mantisse et 11 bits dexposant). Le rsultat en prcision totale (64 bits de mantisse et 11 bits dexposant) peut tre stock dans des registres internes 96 bits ou trait par un additionneur flottant 44 bits.
Extrait de Techniques de lIngnieur, trait lectronique
COURS INTRODUCTION AU TRAITEMENT DIMAGES
Extrait de Techniques de lIngnieur, trait lectronique