1. Æx?*{ffiffi
SIDI MOHAMMED BEN ABDELLAH
des Sciences Appliquées de Fès
DSP TMS32OC6474
Youness MBHDAOUI
2. )
_/ I .Le DSP (Digital Si-gnal Processor)
1.1 Introduction
Un DSP est un type particulier de microprocesseur appanr vers 1982. Il se caractérise par
le fait qu'il intègre un ensemble de fonctions spéciales. Ces fonctions sont destinées à le
rendre particulièrement performant dans le domaine du traitement numérique du signal.
Le traitement numérique du signal est une technique en plein essor. Cette technique s'appuie
sur plusieurs disciplines, citons les principales :
' l'électronique analogique et numérique (générations et conditionnements des
signaux, conversions numériques analogiques.. .),
' les microprocesseurs (classiques ou dédiés au traitement du signal),
' l'informatique (algorithmes, systèmes de développements, exploitations), t les mathématiques du signal (traitements du signal).
Les domaines d'applications du traitement numérique du signal sont nombreux et variés
(traitements du son, de l'image, synthèse et reconnaissance vocale, analyse, compression de
données, télécommunication, automatisme, etc.), chacun de ces domaines nécessite un
système de traitement adapté, pour un coût économique approprié.
Les microprocesseurs sont en perpétuelle évolution, chaque nouvelle génération est plus
performante que l'ancienne, pour un coût moindre. Les DSPs, qui sont un type particulier de
microprocesseur, n'échappent pas à cette évolution.
La figure suivante montre le rôle d'un DSP dans une chaîne de traitement numérique du
signal.
chaîne complète typique d'un système de traitement numérique de signal
3. Certains DSP de ,ro.rr"t1Jgénération intègrent tous ces composants en natif. C'est là
que la rapidité devient de prè-mière importance. Généralement, les DSP sont prévus pour être
installés dans un système autonome et c'est pourquoi ils intègrent presque toujours une RAM
pour stocker les données temporaires, une ROM pour stocker pax exemple le programme
contenant les algorithmes.
On voit donc sur ce diagramme deux composants dont la qualité joue un rôle plus que
fondamental : le Convertisseur Analogique Numérique (CAN) et le Convertisseur Numérique
Analogique (CNA). Ces éléments influent directement sur la qualité du traitement par leur
précision (précision de la réference interne, résolution sur 8, I0,12,14 bits ou plus).
Tous les systèmes à bases de DSP bénéficient des avantages suivants :
' Souplesse de la programmation : un DSP est avant tout un processeur exécutant un
progftllnme de traitement du signal. Ceci signifie que le système bénéficie donc d'une
grande souplesse de développement. Il supporte des programmes écrits en langage C,
C++ et bénéficie des bibliothèques de calcul optimisées qui sont faites par le
foumisseur de technologie).
' .Implémentation d'algorithmes adaptatifs: une qualité issue de la souplesse, des
programmes. il est possible d'adapter une fonction de traitement numérique en temps
réel suivant certains critères d'évolution du signal (exemple : les filtres adaptatifs).
' Stabilité : en analogique, les composants sont toujours plus ou moins soumis à des
variations de leurs caractéristiques en fonction de la température, de la tension
d'alimentation, du vieillissement, etc. ce qui n'existe pas en numérique.
l.2La Différence entre DSP et microprocesseurs ordinaires
Comme on a mentionné le DSP est un type particulier de microprocesseur, il differe des
microprocesseurs ordinaires par :
1.2.1L'opération MAC
Le signal se présente sous la forme d'une suite de valeurs numériques discrètes. Cette
suite de valeurs (ou échantillons) est apte à être stockée et traitée par un système
informatique. Par nature, le traitement numérique du signal revient à effectuer essentiellement
des opérations arithmétiques de base du type A: (B x C) + D.
Un microprocesseur classique va nécessiter plusieurs cycles d'horloge pour effectuer un tel
calcul, par exemple, un 68000 à besoin de :
. 10 cycles d'horloge pour effectuer une addition, . 70 cycles d'horloge pour effectuer une multiplication.
Soit 80 cycles pour seulement calculer A. Si ce temps est admissible dans des applications
informatiques courantes, il n'est pas acceptable pour faire du traitement rapidè du signal. Les
DSP sont donc conçus pour optimiser ce temps de calcul, à cet effet, ils disposent de fonctions
optimisées permettant de calculer A beaucoup plus rapidement.
+
4. Dans la pratique, la plupart a", *p ont un jeu / d'instructions spécialisé permettant de lire en
mémoire une donnée, d'e er une multiplication puis une addition, et enfin d'écrire en
mémoire le résultat, le tout en un seul cycle d,horloge.
L'évolution des DSP avait comme principal objectif l'amélioration du temps de calcul d'un
MAC, car effectuer une opération MAC en un seul cycle n'est malgré tout pas satisfaisant si
le cycle d'horloge est trop « long ».
1.2.2L'accès à la mémoire
Outre l'opération MAC, une autre caractéristique des DSP est leurs capacités à réaliser
plusieurs accès mémoire en un seul cycle. Ceci permet à un DSP de chercher en mémoire une
instruction et ses données réalisant un MAC, et simultanément, d'y ranger le résultant du
MAC précédent. Le gain de temps est évident. Toutefois, sur certains DSP basiques, ce type
d'opération simultané est généralement limité à des instructions spéciales. Ces instructions
utilisent un mode d'adressage restreint, c'est à dire ne portant que sur de la mémoire vive
intégrée au DSP.
Les modes d'adressages des données sont un point particulier des DSP. Un DSP peut posséder
plusieurs unités logiques de génération d'adresse, travaillant en parallèle avec la logique du
cæur du DSP. Une unité logique de génération d'adresse est paramétrée une seule fois via les
registres appropriés. Elle génère alors toute seule, en parallèle avec l'exécution d'une
opération arithmétique, les adresses nécessaires à l'accès des données.
Ceci permet non seulement de réaliser les accès mémoires simultanés en seul cycle, comme
décri plus haut, mais également d'incrémenter automatiquement les adresses générées. Ce
mode d'adressage particulier, généralement appelé adressage indirect par registre avec post
(ou pré) incrément, est très utilisé pour effectuer des calculs répétitifs sur une série de données
rangées séquentiellement en mémoire.
1.2.3 Pipeline
Le principe de l'optimisation du pipeline logiciel est d'ordonnancer les instruction dans une
boucle d'une façon a ce que de multiples itérations s'exécutent en parallèle dans la boucle.
F{plân*d-§u*p §,xkg
l(ernel
:1.'., .' :'.',:::,,:.:
P{pcline&Mlp *p{iGS
ÂT
§r AI
*1 8â r,S
*x tâ §3 AÆ
..§l'ra .,i§Ë,. êâi
tl ü* # §§
E* æ4 ts
ffi il§
ü§
5. l 2 Architecture des ppocesseurs
L'architecture d'un microprocesseur, et donc d'un DSP, est un élément important qui
conditionne directement les perfortnances d'un processeur. Il existe deux types fondamentaux
de structures, dits « Von Neuman » et « Harvard », telles que présentées par la figure:
Ar*filtç**r* d* tsp* Yon H*umaR
Arêhitet&,ts de §m* Flsntërü
MÉr*uire
Fragramma
ÂdTE§æ
Un*h
Ârltlïrï*rqur
et tüâiquÊ
A TEM
M*mülr8
§mrsâ* §rnra&* üsnrer§
2.1 structure de Von Neuman
Un microprocesseur basé sur une structure Von Neuman stocke les programmes et les
données dans la même zone mémoire. Une instruction contient le code opératoire et I'adresse
de l'opérande. Ce type de microprocesseur incorpore principalement deux unités logiques de
base :
. L'Unité Arithmétique et Logique (ou ALU en anglais), chargée de réaliser les opérations
centrales (de type multiplications, additions, soustractions, rotation, etc.),
. L'unité en charge des Entrées/Sorties, qui commande le flux de données entre le cæur du
microprocesseur et les mémoires ou les ports.
2.2 Structure de Harvard
Cette structure se distingue de l'architecture Von Neuman par le fait que les mémoires
progftunmes et données sont séparées. L'accès à chacune des deux mémoires se fait via un
chemin distinct. Cette organisation permet de transférer une instruction et des données
simultanément, ce qui améliore les perfoflnances.
2.3 Utilisation de ces structures dans les DSP
L'architecture généralement utilisée par les microprocesseurs est la structure Von Neuman
(exemples : la famille Motorola 68XXX, la famille Intel 80X86). L'architecture Harvard est
plutôt utilisée dans des microprocesseurs spécialisés pour des applications temps réels,
cornme les DSP. Pour réduire le coût de Ia structure Harvard, certains DSP utilisent
l'architecture dite « Structure de Harvard modifiée ». À l'extérieur, le DSP ne propose qu'un
bus de données et un bus d'adresse, comme la structure Von Neuman. Toutefois, à l'intérieur,
la puce DSP dispose de deux bus distincts de données et de deux bus distincts d'adresses. Le
transfert des données entre les bus externes et internes est effectué par multiplexage temporel.
C'est le cas du TMS320C6713.
lü.
U
,4rithrnê,tique
mü Lfiülry.r*
6. 3 Virgule Flottant-et/xe
3.1 Représentation binaire d'un nombre réel en précision finie
Deux approches sont utilisées pour la représentation binaire des nombres réels en précision
finie : représentation en virgule fixe ou en virgule flottante.
3.1.1 Représentation binaire des nombres fractionnaires en virgule fixe
N bits comporte une partie entière sur N-K bits et une partie fractionnaire après la virgule sur
K bits :
Partie entière Partie fractionnaire
Format virgule Fixe en{N} mffi
Soit un nombre x réel quelconque, sa représentation en virgule fixe sur N bits en format Qp(k
bits après la virgule) s'obtient en arrondisant à l'entier le plus proche du produit 3H,x :
Format Virgule Fixe Qx{l*harrondi (?H.x }
Remarque
Sur les DSP virgule fixe, la virgule n'est pas en mémoire, mais dans la tête du programmeur
et son logiciel doit agir en conséquence.
Le tableau suivant donne quelques exemples de la représentation binaire en virgule fixe :
Représentation binaire en virgule fixe avec estimation d'erreur
À partir d'une représentation binaire en virgule fixeg*ftrl], on peut retrouver le nombre
fractionnaire corespondant :
Z:b*-r-Ll§§-1-k + b*ü-Ê-k?sl-t-k * "-hu + b-1I-1 +.." +h-*}-u
Ce nombre z est une approximation en précision finie du réel x, sur N bits avec k bits derrière
la virgule. L'erreur absolue de cette représentation est e: JE - xl<? -n
Les propriétés de la représentation binaire en virgule fixe sont :
r ÿaleurs extrêmes en virgule frxe Qn{I{}: '
Max:7il-1-k - Ê-Ë
7. Min: -?H-l-k
r fiddition de nombres fractionnaires en virgule fixe
Lors de l'addition de nombres fractionnaires en virgule fixe, il faut comme en décimale
aligner les virgules. La somme de 2 nombres en format Qç donne un résultat en format e1:
Qx+Çx + Qn
La virgule n'est pas représentative au niveau du DSP, mais c'est au programmeur de connaître
sa position dans le nombre. Par exemple, soient deux nombres hexadécimaux : Nl:lA, 3 et
N2:3, F06. Avec le DSP en virgule fixe, ces nombres vont être représentés en 16 bits par
Nlnse : 0LÂ3en format Qx(16). Le programmeur sait bien que le Nombre N1 a été multiplié
pa.r 34 et le nombre N2 par Ee.pour effectuer une addition de ces deux nombres, il faut avoir
le même format, c'est-à-dire que le nombre N1-** doit être ramené au format du
nombretr{Eor*. On a donc :
, Somme:Nl*2rtqq2*3u
Somme:N1»sp * ?E+N?"**
Qui peut être écrite : Somme=N1s*<<8+I{I***
r ÿlultiplication de 2 nombres fractionnaires en virgule fixe :
Le produit de nombres en virgule fixe sur N bits donne un résultat sur 2N-1 bits comme en
décimal, le nombre de bits après la virgule du résultat est égal à la somme des nombres de bits
derrière la virgule des 2 opérandes :
Qt. 8u,--È Qu*u,
Au contraire de l'addition, la multiplication fractionnaire en virgule fixe peut se faire entre
deux nombres de formats differents.
3.1.2 Représentation binaire des nombres fractionnaires en virgule flottante
Dans la représentation binaire en virgule flottante en précision finie sur N bits, les nombres
sont représentés par une mantisse M et un exposant E :
X: S.M. ?E
Pour une représentation sur N bits, la mantisse M est exprimée sur m bits, et l'exposant E sur
e bits, avec N:mte. pour que la représentation soit unique, M est normalisée :
{
-f, ,- -, :<llvll <r
L
'ô
8. Remaroue : La mantisse M est toujours en format fractionnaire Q*{m}et son signe est
représenté par le dernier bit du poids fort. L'exposant est représenté en complément à 2 d'un
entier relatif. Le tableau suivant donne quelques exemples de la représentation binaire en
virgule flottante sur 8 bits avec m:5 et e:3.
01011 (0,6875) 111 (-1) 0,6875x3-1:0,3437 5 0,0134166
01011 (0,6875) 001 (1) 0,6875x3L1.375 -0,0392135
01101 (0,8125) 0l r (3) 0$125x32::3,25
Représentation binaire en virgule flottante avec estimation d'erreur
Dans la représentation en virgule fixe, la position de la virgule reste la même quel que soit le
résultat d'une opération. Cette convention permet de réaliser simplement les opérations
numériques de base (+ et -) dans un format toujours compatible avec la mémoire du DSP
(seize bits avec le TMS320C25,24 bits pour le DSP56002). Cependant, ce codage a pour
effet de limiter l'amplitude des nombres et d'imposer leur précision. Aussi, pour des
applications numériques nécessitant de grands ou de petits nombres, est-il préferable de
décaler la position de la virgule en fonction de l'amplitude du nombre. Les décalages
nécessaires pow amener la virgule dans un positon adéquat, constituent la valeur de
l'exposant et le nombre décimal restant, la mantisse. C'est l'unité arithmétique du calculateur
qui réalise automatiquement les décalages de la virgule de fagon à obtenir une mantisse
comprise entre f 1,0 et *2,0.|a virgule devient flottante et l'arithmétique du DSP est dite alors
à virgule flottante.
Dans la représentation binaire du nombre, on réserve une certaine quantité de bits pour la
mantisse et l'exposant et un bit pour le signe. La mantisse code généralement un nombre
considéré comme fractionnaire, et l'exposant un nombre entier. Aussi, dans la plupart des
DSP, une constante est additionnée à l'exposant afin que sa valeur soit toujours positive.
Quant au codage utilisé pour la mantisse et l'exposant, la plupart des constructeurs de DSP
exploitent le code binaire naturel.
3.2 La Norme IEEE 754
À h fin des années 70 chaque ordinateur avait sa propre représentation inteme pour les
nombres à virgule flottante. Or, I'arithmétique à virgule flottante possède certaines subtilités
que le constructeur ne maîtrisait pas forcément et certaines machines effectuaient certaines
opérations de manière incorrecte. Pour remédier à cette situation, I'IEEE proposa un standard
non seulement pour permettre les échanges de données en virgule flottante entre ordinateurs,
mais aussi pour foumir un modèle rodé de part le monde aux constru'cteurs, dont le
fonctionnement était correct et maîtrisé. De nos jours, pratiquement tous les constructeurs ont
des processeurs ou des coprocesseurs dédiés qui effectuent des calculs en virgule flottante et
qui emploient la représentation au standard LEEE754.
9. La norme IEEE 754 spécifie deux formats de nombres en virgule flottante (et deux formats
étendus optionnels) et les opérations associées. Ainsi la quasi-totalité des Architectures
d'ordinateurs actuelles, incluent une implémentation matérielle des calculs sur flottants IEEE,
directement dans le microprocesssur, garantissant une exécution rapide.
Les deux formats fixés par la norme IEEE 754 sont sur 32 bits (« simple précision ») et
64 bits (« double précision »). La répartition des bits est la suivante, où 1 < M < 2 :
32 bits {-r}ô$§ *{a}
la représentation des bits pour la simple et double précision
Le tableau ci-dessus indique les bits représentés. Le premier bit de la mantisse d'un nombre
normalisé étant toujours 1, il n'est pas représenté dans ces deux formats: on parle de bit
implicite. Pour ces deux formats, les précisions sont donc respectivement de 24 et de 53 bits.
Il faut juste noter qu'une valeur particulière du champ d'exposant est réservée à la
représentation de valeurs spéciales :
NaN (« not a number »), qui sera par exemple le résultat de la tentative de division
flottante de zéro par zéro, ou de la racine carée d'un nombre strictement négatif.
Un infini positif et un infini négatif.
Une autre valeur du champ d'exposant est réservée aux zéros (signés) et aux dénormalisés.
a. Flottants étendus
Certaines implémentations ajoutent un ou plusieurs types de précision supérieure. La
nonne LEEE754 prévoit des tailles minimales pour ces types étendus :
la représentation des bits pour la simple et double précision étendue
Ces représentations « étendues » n'utilisent pas forcément le bit implicite de la mantisse.
Dans la pratique, seule la double précision étendue est encore utilisée, dans sa forme
minimale (1+l 5+64 : 80 bits).
-.JX
t
{-p}u* *{a}{§-
10. b. IEEE 7s4-2008
Une révision de la noflne 754 a été publiée en août 2008, après 7 années de travail présidé par
DanZuras, cette révision comprend la quasi-totalité de l'originallB9 754-1985 et de L,IEEE
Standard 854-1987, ainsi que trois nouveaux formats de base (un binaire et deux décimales).
La présente nonne 754-290S définit les :
' les formats *It e,iqrre: jeux binaires et décimales des données à virgule flottante,
qui comprennent les numéros finis, infinis, et la spéciale 'not a number'de valeurs 0.
' Les formats inter changent : encoder le (bit strings) qui sera utilisé pour échanger des
données en virgule flottante dans une forme efficace et compacte.
' Les algorithmes arrondis: les méthodes à utiliser pour arrondir le nombre au cours de
I'arithmétique et les conversions.
' Les opérations arithmétiques et arithmétiques sur les formats.
' La gestion des exceptions: les indications de conditions exceptionnelles (comme la
division par zéro, débordement, etc).
la norrne comprend aussi des recommandations pour le traitement des exceptions avancées,
les opérations supplémentaires (tels que les fonctions trigonométriques), d'expressions
d'évaluation, et pour parvenir à des résultats reproductibles.
4 Caractéristiques principales des DSP
Un point essentiel des DSP est la représentation des nombres (des données) à manipuler.
Il est possible de distinguer deux familles, les DSP à virgules fixes et ceux à virgules
flottantes.
4.1 Les DSP à virgules fixes
Dans ce type de DSP les données sont représentées comme étant des nombres
fractionnaires à virgule fixe (exemple -1.0 à +1.0), ou comme des entiers classiques. La
représentation de ces nombres fractionnaires s'appuie sur la méthode du «complément à
deux ».I'avantage de cette représentation est de permettre facilement l'addition binaire de
nombres aussi bien positifs que négatifs.
La caractéristique d'un DSP à virgule fixe qui est un peu plus compliquée à programmer
qu'un DSP à virgule flottante.
Dans un DSP à virgule fixe typique comme le TMS320C25, les nombres sont codés sur 16
bits (des entiers classiques ou des fractionnaires), toutefois, sur ce DSP, les calculs sont
effectués avec accumulateurs de 32 bits. Lorsque les résultats doivent être stockés en
mémoire, les 16 bit les moins significatifs sont perdus. Ceci permet de limiter les erreurs
d'arrondis cumulatives. il est toujours possible de stocker séparément en mémoire les 16 bit
faibles puis les 16 bits forts s'il n'y a plus de registres libres lors d'une étape de calcul.
11. Cette particularité n'est pas toujours disponible sur tous les DSP. Dans ce cas, les calculs
requérant absolument une double précision sont réalisés en chaînant deux à deux des
inskuctions spéciales manipulant des données 16 en simple précision, au détriment du temps
d'exécution.
La précision des calculs est un point critique des DSP à virgule fixe, car le concepteur de
programmes doit rester vigilant à chaque étape d'un calcul. Il doit rechercher la plus grande
dynamique possible, pour conserver une bonne précision des calculs, tout en évitant autant
que faire ce peu les débordements du ou des accumulateurs. Les bits supplémentaires des
accumulateurs (les bits de garde) prévus à cet effet permettent de réduire cette contrainte.
Les programmeurs contournent les limites des DSP à virgule fixe en déterminant à l'avance,
et avec soins, la précision et la dynamique nécessaire (par méthode analytique ou avec des
outils de simulation) pour réaliser leurs projets.
En termes de rapidité, les DSP à virgule fixe se plaçant d'ordinaire devant leurs homologues à
virgule flottante, ce qui constitue un critère de choix important.
4.2Les DSP à virgules flottantes
Dans ce type de DSP les données sont représentées en utilisant une mantisse (M) et un
exposant (E), la représentation de ces nombres s'effectue selon la formule suivante :
n:M x ?§
Généralement, la mantisse est un nombre fractionnaire (1.0 à +1.0), et l'exposant est un
entier indiquant la place de la virgule en base 2.
Le DSP à virgule flottante est plus souple et plus facile à programmer que les DSP à virgule
fixe. Un DSP comme le TMS320C30 manipule des nombres formés avec une mantisse de 24
bits et un exposant de 8 bits (taille de la donnée en mémoire: 32 bits).les valeurs
intermédiaires des calculs sont mémorisées dans des registres avec un format de 32 bits de
mantisse et un exposant de Sbits (taille du registre : 32+g bits supplémentaires). La
dynamique disponible est très grande, toutefois la résolution reste limitée à 24 bits au mieux.
Outre les nombres fractionnaires, ce DSP sait également manipuler les entiers avec une
précision de 32 bits.
La très grande dynamique proposée par les DSP à virgule flottante permet virtuellement de ne
pas se soucier des limites des résultats calculés lors de la conception d'un programme. Cet
avantage a cependant un prix, à savoir qu'un système basé sur un DSP à virgule flottante à un
coût de fabrication supérieur à celui d'un système basé sur DSP à virgule fixe. La puce d'un
DSP à virgule flottante nécessite à la fois une surface de silicium plus importante (cæur plus
complexe), et un nombre de broches supérieur, car lamémoire externe est elle,aussi au format
32 bits. Le système devient donc plus cher.
Jâ!
12. 4.3 Autres caractéristiques
Ce qui distingue deux DSP à part la virgule fixe ou flottante c'est :
' Sa vitesse, exprimée en MULAC/s: le nombre de cycles d'horloge par Multiplication
addition.
. Sa quantité de mémoire interne (DRAM/RAM/ROM/F1ash...)
' Ses entrées /sorties (ports série, ports parallèles) et leurs vitesses respectives.
' Le choix d'un DSP pour une application particulière sera conditionné par le coût
relatif du DSP par rapport au BOM de l'application, et de la complexité des
opérations à effectuer.
5 Le TMS320C6474
5.1 Introduction
La famille de processeurs la plus répandue actuellement est sans conteste celle des DSP de
Texas Instruments qui détient environ 70 o du marché, les 30 %o restant étantpartagé entre
Motorola, Analog Devices, Lucent Technologies, Nec et Oki.
Les produits Texas instrument sont répartis en trois classes appelées plates formes
contenant les differentes familles de DSP :
-TMS320C6000, formée des familles C62x,C67x et C64x;
-TMS320C5000, formée de la famille C54x et des C54xx;
-TMS3 20C 2000, formée des familles C20x et C24x;
La Tableau suivant résume les principales caractéristiques de ces trois classes :
Application au traitement numérique
de signal
24OOO MIPS -3,0 GHZ
Applications exigeantes en vitesse:
stations de base des réseaux de
communications mobiles, équipement
de radiodiffusion. réseaux
16 bits virgule
fixe architecture
VLIW
1200-2400 MrPS
Applications exigeantes en précision,
dynamique et vitesse: Antennes
adaptatives des stations de base,
imagerie médicale, reconnaissance de
parole, graphisme...
32 bits virgule
flottante
architecture
VLIW
6OOMFLOPS-IGFLOPS
',iàl,1"
13. Applications de télécommunications
exigeantes en coût, consommation,
vitesse: terminaux mobile, voix sur Ip,
16 bits virgule 0.54 mWLMIPS
2OO MIPS
30-
Caractéristique principale des familles de TI
La figure suivante représente l'évolution des produits DSP de la classe C6X de Texas
Instrument et les futurs produits en développement.
Pr§.ductbr
B*rnpâng
lll ûevàTüpméBl
Ftltur,e
Seviee
i§l!i,-lli#*
§ii.sffi
x{;*'r
WE
&i#
WTÿ&:1&13&fW::
/
I Largest installed base of
i high performance signal i I , processing code i
-.*ff#l*: ,
ffies{EËS
x@æs#'
L'évolution des familles de la classe DSP TMSC6x selon les performances et les axes de recherche
À partir du c645x , les recherches sont lancées sur trois pistes principales : - L'optimisation des performances des DSp Multicores. - L'optimisation d'énergie consommée des DSp Multicores. - Le développement des performances des DSp à core unique.
r:lriri::::t::liar .j
.,,.,,,,u1lTi§liiii,iri:::r:r.::ti:,,,i11r,,,,..
Perform.*rq . I
§ngl+ cores
.:t :.::...:-:::::.:::: I:t :.a:a::::rt:, :- .:.-
:rrttt,l: ii::::
ru§, *§0&{**r,
& § ür,§2
v§ü"&w{§t&,
, &t{z & f"2 G§r
14. 2-2.1. Caractéristique
Le DSP TMS320C6474 de la sixième génération construite par Texas Instrument avec
une technologie CMOS de 65 nm, est de la troisième génération de la plus haute performance
multicoeurs qui est une architecture développée par Texas Instrument (TI)
r intégrant trois cæurs de C64x+ lGHz sur une même puce, soit 3GHz de performances
brutes le DSP peut faire 24000 millions instructions par seconde (24 instructions mips -
par cycle).
3 Cæurs d'un GHz dans une seule architecture de C6474
Caractérisé aussi par une consommation inférieure d'un tiers et un coût réduit
tiers par rapport aux solutions de traitement mettant en æuvre plusieurs DSP.
Consommation d'énergie du DSP TMS320C6474 par rapport au DSP TMS320C6455
de deux
$248eachx3=$744 $261 total
le coût duC6474 par rapport au 3coeur du C6455
15. ' Catactétisé par une mémoire inteme divisée en deux caches Ll et L2, aa contraire des
anciens DSP qui contiennent qu'une seule Mémoire inteme.
Outre, c'est catactéristique intéressante de notre DSP, une description d'architecture de ce
dernier permettra de faire une idée générale sur le fonctionnement matériel, et la meilleure
façon pour exploiter les ressources de ce dernier.
2-2.2. Architecture
L'architecture du DSP TMS320C6474 est caractérisée par une diversité des composantes,
permettant un traitement fluide des données, un adressage efficace, et des périphériques de
communication supportant differents protocoles de communication (i.e. Serial RapidIO, Serial
Link CPRI, 1 GigE). L'interface CPRI de type SERDES Sérialisation/Désérialisationest bien
adaptée à laréception des signaux d'antenne àhaut débit.
La figure suivante montre le schéma fonctionnel du cæur de DSp :
Schéma fonctionnel du cæur DSP
Dans la partie suivante, on décrit les Blocs principaux de l'architecture inteme de notre DSP,
ainsi que les périphériques.
2-2.3.1. Architecture interne du DSP C64x+
La figure suivante représente le Bloc Diagram de la famille TMS320C64x+. Les familles
de la plateforme C6000 sont livrées avec la mémoire du prografllme qui, sur certains
appareils, peut être utilisé comme un programme de cache. Les dispositifs. ont également
differentes tailles de la mémoire de données. Les Périphériques tels que le contrôleur d'accès
direct à la mémoire (DMA), la logique power-down, et l'interface de la mémoire
externe(EMlF) viennent habituellement avec le CPU, alors que d'autres périphériques tels que
les ports série et les ports d'accueil ne sont qu'avec certains appareils.
I :"r
16. Tü,.8§32§Cæx+ B§P B˧d{ .E}iegrüIT}
§€Ê6 ftëBr â
"rg iiltÉ "§fl À-g
m˧fü*§r lt'{lt A
ü{rte #d{ â
i_'t ,§§ Jkl.l -ryil
IT
ilT&üsM |ql§e â
&xt* ilbrumy
t4x{Büü!Ër
{a{$*}
2-2.3.1.1.
BIoc Diagram de la famille TMS320C64x+
L'unité centrale de calcul (CPU)
L'unité centrale de calcul (CPU) se compose de huit unités fonctionnelles, deux registres,
et de deux chemins de donnée. Les deux registres à usage général (A et B) 32-bit contiennent
chacun 32 registres pour un total de 64 registres. L'objectif gén&al des registres c'est qu'ils
sont utilisés pour les données et peuvent être utilisés pour I'adressage des pointeurs de
données, les types de données pris en charge sont de 8-bit, 32-bit,40-bit, et 64-bit.
Les huit unités fonctionnelles (.M1, .L1, .D1, .S1, .M2, .L2, .D2, and .S2) et leurs rôles
regroupés dans le tableau suivant :
Effectue toutes les opérations de multiplication en un seul cycle
d'horloge : - une multiplication32 x32bit.
- deux multiplications 16 xl6 bit. - deux multiplications 16 x32bit,4 multiplications 8 x8
bit.
Effectue en parallèle les opérations t/- sur 32 bit,ou 2 fois 16 bit
h
17. Parallélise les instructions 8 bits/16bits et duales 16 bits. Il
réalise aussi en parallèle des opérations MIN et MAX.
les données de la mémoire vers les registres et stocke les
résultats des registres dans la mémoire.
les unités fonctionnelles du CPU et leurs rôles-charge
Beaucoup d'algorithmes de traitement de signal comme la FFT et le FIR complexe exigent
la multiplication complexe, l'instruction (CMPY) prend quatre entrées de 16 bits, et produit
une sortie réelle et imaginaire en32 bits en un seul cycle. Il y a également des multiflications
complexes avec une sortie sur 32 bits contenant l6 bits de réel et 16 bits d'imaginaiie. Les
instructions de multiplications 32 x 32 bit fournissent une précision efficace pour I'audio et
d'autres algorithmes à haute précision pour une vanété des données 32 bits signés ou non
signés.
2-2.3.1.2. Mémoire interne
a. .Le Cache Ll
La Mémoire inteme niveau I est organisée en deux espaces, l'un pour les données et
l'autre pour les progfttmmes, elle dispose de deux ports internes 64-bit pour accéder aux
données intemes de mémoire, et un seul port inteme pour accéder à la mémoire interne
programme.
b. Le Cache L2
Chaque core a une mémoire interne niveau 2,L2F.Aly'.. La capacité totale est de 3MB qui
peut être configuré soit en lMB pour chaque core ou I.5MB/1MB/0.5M8 respectivement
pour chaque core, La SRAM L2 commence à la même adresse, quelle que soit la taille du
cache de configuration.
2-2.3.1.3. La ROM L3
La ROM L3 est de taille 64K8, Le contenu de la ROM est divisé en deux partitions, La
première est la ROM de démarrage (ou Boot) dont le but principal est contenir des logiciels
au démarrage de périphérique, la seconde partition est la partie sécurisée du ROM, qui
dispose d'un core nécessaire pour soutenir des dispositifs de sécurité sur le périphérique.
2-2.3.2. Périphérique du DSp C64x+
Dans cette partie en vous propose les définitions des differents périphériques qui vous
donneront une idée sur le fonctionnement de chacun.
tf '
]kâ
18. a. La Mémoire DDR2
Le contrôleur de mémoire DDR2 est la principale interface externe que l'on peut utiliser pour
les programmes et le stockage des données, avec plus de 512M octet d'espace mémoire.
b. Le Timer
Le TIMER peut être configuré en trois modes soit :
' TIMER 64-bits à usage général : dans ce mode il fonctionne coûlme un compteur
64-bit et commence à augmenter de I à chaque cycle d'horloge d'entrée. . TIMER 32-bit double: lorsqu'il est configuré comme TIMER double 32-bit,
chaque moitié peut fonctionner indépendamment.
c. Serial Rapid IO
Le Serial Rapid IO est utilisé pour la réception des signaux d'antenne à haut débit. Il transmet
10 bits pour 8 bits d'information, ce périphérique exteme peut pousser des données sur la
DSP, selon les besoins, sans avoir à générer une intemrption.
d. Antenna Interface
L'Antenna Interface du TMS32OC6474 est un périphérique d'interface série à haute vitesse
qui prend en charge les transferts de données IQ fln-phase and quadrature data) avec une
liaison montante et descendante entre les processeurs DSP.
e. Software-Programmable Phase-Locked Loop Controller (PLL)
Le contrôleur PLL offre la modification de signal d'horloge avec facilité de configuration par
logiciel. Les sorties de I'horloge sont transmises à la DSP de base, au périphériques et à
d'autres modules à I'intérieur de la DSP.
f. Ethernet Media Access Controller/lVlanagement Data Input/output Module
Le module d'EMAC est utilisé sur les dispositifs TMS320C6474 pow déplacer les données
entre un dispositif et un centre serveur different reliés au même réseau, conformément au
protocole d'Ethernet.
g. General-Purposelnput/output(GPlO)
Le périphérique (GPIO) d'usage général d'entrée sortie fournit et consacre des broches
d'usage général qui peut être configurées en tant que des entrées ou sorties. Une fois
configuré comme sortie, vous pouvez écrire sur un registre interne; ou configuré comme
entrée, vous pouvez détecter l'état de I'entrée en lisant l'état d'un registre inteme.
t4t-
19. h. Inter-Integrated Circuit Module (I2C)
Le module d'I2C fournit une interface entre le dispositif C6474 et d'autres dispositifs et reliés
par un l2C-bus. Les composants externes fixés à ce bus à 2 fils peuvent transmettre et recevoir
jusqu'aux 8 bits de données.
i. Bootloader
Le Bootloader est le code de DSP qui transfere le code d'application à partir d'une source
extérieure dans la mémoire interne ou externe de programme après que le DSP soit pris hors
de la reset. Le Bootloader est stocké de manière permanente dans la ROM du DSP,
commençant à I'adresse de bÿe 0x3C000000, le Bootloader ofTre une série de méthodes pour
transferer I'application dans la mémoire de DSP.
j. Turbo Decoder Coprocessor2 (TCP2)
Le décodage des voies de transmission de données de débit binaire élevées trouvées dans la
(3G) des nornes cellulaires, exige le décodage des données turbo-codées. Le coprocesseur de
turbo-décodeur (TCP2) a été conçu pour effectuer cette opération pour des nonnes de la radio
IS2000 et 3GPP.
k Viterbi-Decoder Coprocessor 2 (VCP2)
Le décodage du canal de la voie de transmission des données binaire trouvées dans les norrnes
cellulaires te[ès que 2.5G,3G, et WiMAX exige le décodage des données. Le coprocesseur2
YCP2 de Viterbe les décode pour des nornes de la radio IS2000 et 3GPP, fait également la
correction d'erreur pour les systèmes 2G et 3G sans fil, et offre une solution très rentable.
l. Multichannel Buffered Serial Port (McBSP)
En se reliant avec les dispositifs externes, le MoBSP assure avec les sept bornes la
transmission et la réception des données en communicant aux dispositifs extemes.
Le dispositif DSP C6474 communique au MoBSP en utilisant deux bus séparés. La
commande est accédée par I'unité centrale de traitement, le bus de configuration enregistre les
données et I'EDMA utilise son bus consacré pour accéder aux registres.
t