You are on page 1of 72

Digital Signal Processor (DSP)

Processeurs de traitement numrique du signal

Introduction

Lutilisation de techniques numriques a nettement pris le pas


sur les techniques analogiques dans de nombreux domaines,
parmi lesquels on peut citer ple-mle :

Extrait de Techniques de lIngnieur, trait lectronique


le traitement du signal classique (filtrage, transformes
rapides, gnration de signaux...) ;

les tlcommunications (codage-dcodage, modulation-


dmodulation, galisation adaptative, annulation dcho,
cryptage...) ;

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


dune architecture spcialise : circuits spcialiss de
filtrage numrique, rseaux systoliques, etc ;

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.

2.1.5 Quatrime modification - bancs mmoire multiples

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

You might also like