Vous êtes sur la page 1sur 5

DSP ET APPLICATIONS GEL EN, ET 5

V. 2 Architecture des DSPs


Un de principal facteur influenant la rapidit des processeurs en gnral (et des DSPs en
particulier) est la vitesse avec laquelle seffectue les transferts de ou vers la mmoire (ceci est
valable autant pour les donnes que pour les codes des instructions). La vitesse de ces
transferts dpend du type darchitecture choisie.
a) Larchitecture de VON NEUMANN
Cest larchitecture des premiers processeurs. Dans cette architecture on a un seul bus
dadresse et un seul bus de donnes (instructions et donnes partage le mme bus)

Figure 4 : Architecture de Von Neumann

Cette architecture quoi quconomique et facile mettre en uvre revt un


inconvnient majeur savoir le nombre de lectures mmoire quil faut pour excuter une
instruction. Pour pallier cet inconvnient (limitant fortement la vitesse dexcution des
processeurs) une nouvelle architecture a t mise sur pied luniversit dHarvard (sous la
direction dHoward Aiken) elle a t baptise architecture dHarvard.

b) Larchitecture dHarvard

Larchitecture dHarvard est une architecture bus spars. Ici on a une sparation
entre bus dadresse de la mmoire programme et bus dadresse de la mmoire de donne.

Figure 5 : Architecture d'Harvard

Larchitecture dHarvard permet daugmenter le dbit des transferts entre le


processeur et la mmoire car en mme temps que linstruction est lue en mmoire programme
les oprandes peuvent tre lues en mmoire RAM.
Les DSPs sont construit suivant larchitecture dHarvard ; dailleurs la plus part des
DSPs utilisent une forme amliore de larchitecture dHarvard appele Super Harvard
Architecture Dans ce type darchitecture on a plusieurs bus dadresse mmoire ce qui
permet de lire plusieurs oprandes la fois. Un exemple de super Harvard architecture est
donn ci-dessous (larchitecture possde deux bus dadresse mmoire).

6
Kiegaing Emmanuel, 2012
DSP ET APPLICATIONS GEL EN, ET 5

Figure 6 : La super Harvard architecture

Si nous revenons notre filtre nous remarquerons que si lon dispose dun DSPs
construit suivant la Super Harvard Architecture ayant 2 bus dadresse pour la mmoire RAM
et si on considre que pour ces deux bus dadresse on peut activer le mode dadressage
circulaire alors en plaant les chantillons dans un buffer et les coefficients du filtre dans un
autre il devient possible deffectuer lopration MAC en un cycle instruction.
En plus de ces modes dadressages et de ces architectures particuliers les DSPs
possdent galement des units arithmtiques et logiques construites de manire les rendre
optimal pour la ralisation doprations arithmtiques complexes. Ces lments feront lobjet
de la section suivante.
VI. 3 Possibilits Mathmatiques des DSPs
VI. 3.1 Reprsentation des nombres en mmoire

La manire avec lequel les DSPs reprsentent les nombres (entiers et rels signs ou
non signs) en mmoire est trs importante. En effet cette reprsentation est un critre de
choix des DSPs cest ainsi que suivant le mode de reprsentation des nombres en mmoire on
parlera des DSPs virgule fixe ou de DSPs virgule flottante.
a) DSPs virgule fixe (fixed point DSPs)
Les DSPs virgule fixe traitent les nombres signs utilisant soit la notation
entire soit la notation fractionnelle. La signature des nombres se fait par le complment 2.
La plus part des DSPs virgule fixe offre le choix au programmeur entre une reprsentation
entire ou fractionnaire.
Dans la reprsentation entire les nombres sont simplement reprsents en
complment 2 (avec le MSB tant le bit de signe et le reste la valeur du nombre).Comme
lindique la figure ci-dessous :

-215 214 213 212 211 210 29 28 27 26 25 24 23 23 21 20


Figure 7 : Reprsentation d'un nombre de 16 bits en complment 2

Avec cette convention on peut reprsenter sur N bits des entiers signs allant de -2N-1 2N-1 -
1. Par exemple avec 16 bits on peut reprsenter des nombre allant de - 32 768 32 767.
Bien que la reprsentation entire soit facile grer dans le matriel elle pose deux
problmes majeurs : elle ne permet pas de reprsenter des nombres rels, deuximement elle
est facilement sujette (au bout de quelques multiplications) un dbordement de
laccumulateur conduisant des rsultats errons (on rappelle que lorsquon multiplie deux

7
Kiegaing Emmanuel, 2012
DSP ET APPLICATIONS GEL EN, ET 5

entiers de M et N bits le rsultat tient sur (M+N) bits). Pour pallier cella les DSPs virgule
fixe disposent de la notation fractionnaire (associe aux modules matriels darithmtique
fractionnaire) dans laquelle tous les nombres sont ramens lintervalle -1 +1. Avec cette
notation on est donc sr que le rsultat de la multiplication de deux nombres restera dans la
plage -1 +1 liminant le problme de dbordement. Cette notation est gnralement nomme
format QN. Dans le format QN un nombre est reprsent en complment 2 de nombres
fractionnairesdans lequel le MSB reprsente le bit de signe suivit immdiatement du radical
(virgule) du nombre. Le N dans la notation QN spcifie tout simplement le nombre de bits
du nombre. Par exemple un nombre crit suivant le format Q16 utilise 16 bits. Cette
reprsentation porte aussi le nom de format 1.(N-1) avec le terme N-1 reprsentant le nombre
de bits reprsentant la partie fractionnaire du nombre. Ainsi donc un nombre crit au format
Q16 aura une reprsentation 1.15 et un nombre Q32 une reprsentation 1.31. La figure ci-
dessous reprsente un nombre crit suivant la reprsentation fractionnaire Q16 ou 1.15 :

-20 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 2-11 2-12 2-13 2-14 2-15
Figure 1 : Nombre sign reprsent au Q16 ou 1.15

Un nombre sign reprsent en notation QN peut avoir une valeur appartenant la plage -1
1 21-N. Par exemple pour la notation Q16 les nombres vont de -1 + 0.999969482421875
(que lon arrondie 1).
Exemple : Comparons les nombres suivants considrs dans un premier temps comme des
entiers puis comme des nombres fractionnaires :

o 0x4001
- Reprsentation entire

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
14 0
0x4001 = 2 + 2 = 16385

- Reprsentation fractionnaire

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0x4001 = 2-1 + 2-15 = 0.500030518

o 0xC002
- Reprsentation entire

1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0xC002 = -215 + 214 + 20 = -32768 + 16384 + 2 = -16382

- Reprsentation fractionnaire

1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 -1 -14
0xC002 = -2 + 2 + 2 = -1 + 0.5 + 0.000061035 = -0.499938965

b) DSPs virgule flottantes (floating point)


Dans les DSPs virgule flottante les nombres sont reprsents suivant le standard IEEE
745. Ce standard est trs semblable la notation scientifique (excepter quil est utilis en

8
Kiegaing Emmanuel, 2012
DSP ET APPLICATIONS GEL EN, ET 5

binaire) et dfinit le format pour les nombres de 32 bit (dit simple prcision) et de 64 bits
(dit double prcision). De manire gnrale un nombre n scrit : n = mantisse x 2Expossant.
Pour les nombres rels simple prcision (32 bits) le format est simplement le suivant :

O s est le signe (0 pour les nombres positifs et 1 pour les nombres ngatifs), E est lexposant
reprsent sur 8 bits (0 255), M est la mantisse du nombre qui est crite sous forme
fractionnaire sur 23 bits (la mantisse est un nombre non nul ayant un seul bit gauche de la
virgule).

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Bit de signe Exposant (8 bits) Mantisse 23 bits

Etant donn que la partie entire de la matisse sera toujours 1 nest pas stocke. Onobtient
alors la notation suivante pour la mantisse : M = 1.m22m21 m20 m0.
Exemple :
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

+ Exposant : 7 Mantisse 0.75

n = + 1.75 x 2(7-127) = +1.316554 10-36

c) Comparaison DSPs virgule fixe et DSPs virgule flottante

Les DSPs virgule flottantes sont plus prcis que les DSP virgule fixe de plus ils traitent
sans problme les grandeurs qui peuvent stendent sur une trs grande plage (1.2 10-38
3.4 1038) sans risque de dbordement. Ces DSPs sont donc facile programmer mais
cotent cher. Par contre les DSPs virgule fixe sont bon march mais le programmeur doit
faire attention lors de ces calculs et vrifier que le rsultat des calculs ne dpassera pas la
plage des valeurs reprsentable (les DSPs virgule fixe possdent des indicateurs avancs
permettant au programme de vrifier la validit dun rsultat). Notons aussi que tous les DSPs
virgule flottante sont des processeurs 32 bits (au moins).

IV. 3.2 Ressources arithmtiques des DSPs

Pour raliser de faon efficiente les calculs ncessaires traitement du signal les DSPs
sont dots dunits spciales de calculs nous citerons : les multiplicateurs matriels, des
barrels shifter et plusieurs accumulateurs (auquel est associ un mcanisme de saturation et
darrondie pour ce qui est des DSPs virgule fixe). Nous allons donne une description trs
brve de ces lments.
IV. 3.2.1 Les multiplicateurs N x N

Les DSPs possdent dans leur chemin de donne 1 ou plusieurs multiplicateurs


matriel permettant de multiplier trs rapidement aussi bien les nombres entiers,

9
Kiegaing Emmanuel, 2012
DSP ET APPLICATIONS GEL EN, ET 5

fractionnaires que flottant (la multiplication tant lune des oprations la plus employe dans
un algorithme de traitement du signal).
IV. 3.2.2 Les Barrel shifters

Les barrels shifters sont des registre dcalage capables de dcaler de plusieurs
positions en un seul cycle dhorloge. Ils sont trs utiles pour rajuster la taille des nombres
dans les oprations faisans intervenir des nombres de tailles diffrentes. Ils peuvent aussi
permettre de faire de la multiplication ou la division par une puissance de 2.
IV. 3.2.3 Les Accumulateurs

Tout les DSPs possdent au moins deux accumulateurs ce qui est trs utile pour le calcul
des nombres complexes (1 tant utilis pour le calcul de la partie entire et lautre pour le
calcul de la partie imaginaire du nombre). A ces accumulateurs est associ des indicateurs
avancs indiquant quun dbordement sest produit de plus il est possible dactiver le
mcanisme de saturation. Ces accumulateurs on gnralement une taille suprieurs celle des
autres registres gnraux du processeur.

IV. 4 Les Langage de programmation pour DSPs

De faon gnrale on dispose de 2 langages pour la programmation des DSPs savoir


lassembleur et le langage C (ou Basic). La programmation en assembleur est la plus
puissante car elle permet de gnrer un code optimal en vitesse dexcution (ce code tant trs
proche du matriel) nanmoins elle est trs complexe car intimement lie au processeur. La
programmation en langage C elle est plus facile mais est moins optimale. Lune des bonnes
habitudes de programmation est de mixer les deux langages, le langage C tant utilis dans les
sections de code o la vitesse dexcution nest pas un impratif et lassembleur les sections
de code o le veut avoir une vitesse dexcution optimale.

V. Le March des DSPs

A cause de ses domaines dapplication le march des DSPs est un march croissant de
faon exponentiel il est t valu les annes passes entre 8 et 10 Milliards de dollar. Les
constructeurs les reprsentatifs sur le march sont : AnalogDevices, Lucent Technologies,
Motorola, Texas instruments Terminons en donnant quelques rfrences de DSPs :

Constructeur Dnomination Type


AnalogDevices ADSP-21xx 16 bits virgule fixe
AnalogDevices ADSP-21xxx 32bits virgule flottante
Lucent Technologies DSP16xxx 16 bits virgule fixe
Lucent Technologies DSP32xx 16 bits virgule fixe
Texas Instruments TMS320Cxx 16 bits virgule fixe
Texas Instruments TMS320Cxx 32bits virgule flottante

Le prsent chapitre nous a introduits aux principaux concepts inhrents aux


processeurs DSPs la suite du cours concernera ltude dune famille particulire de DSPs, les
DSPs de Microchip (DsPic).

10
Kiegaing Emmanuel, 2012

Vous aimerez peut-être aussi