SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Æx?*{ffiffi 
SIDI MOHAMMED BEN ABDELLAH 
des Sciences Appliquées de Fès 
DSP TMS32OC6474 
Youness MBHDAOUI
) 
_/ 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
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. 
+
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§ 
ü§
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*
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 - Ê-Ë
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 
'ô
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.
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}{§-
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.
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â!
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"
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
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
' 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
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
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â
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-
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

Contenu connexe

Tendances

Embarqués temps réel
Embarqués temps réelEmbarqués temps réel
Embarqués temps réelmikhailether
 
chap3 numerisation_des_signaux
chap3 numerisation_des_signauxchap3 numerisation_des_signaux
chap3 numerisation_des_signauxBAKKOURY Jamila
 
PRESENTATION (1).pptx
PRESENTATION (1).pptxPRESENTATION (1).pptx
PRESENTATION (1).pptxAYOUBLOUIZI
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsSana Aroussi
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseurISIG
 
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarquésProgrammation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarquésECAM Brussels Engineering School
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le MicroprocesseurTheCrazyMan
 
Cours Bus de communication et réseaux industriels. Chapitre 3 : Bus CAN
Cours Bus de communication et réseaux industriels. Chapitre 3 : Bus CANCours Bus de communication et réseaux industriels. Chapitre 3 : Bus CAN
Cours Bus de communication et réseaux industriels. Chapitre 3 : Bus CANTarik Zakaria Benmerar
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Hajer Dahech
 
Traitement d'image sous Matlab
Traitement d'image sous Matlab  Traitement d'image sous Matlab
Traitement d'image sous Matlab Hajer Dahech
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursSana Aroussi
 
2Grafcet-Exercice-corrigé-02(www.alloacademy.com).pdf
2Grafcet-Exercice-corrigé-02(www.alloacademy.com).pdf2Grafcet-Exercice-corrigé-02(www.alloacademy.com).pdf
2Grafcet-Exercice-corrigé-02(www.alloacademy.com).pdfkorukobasket
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..sunprass
 
Architecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresArchitecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresAbdoulaye Dieng
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseurPeronnin Eric
 

Tendances (20)

Embarqués temps réel
Embarqués temps réelEmbarqués temps réel
Embarqués temps réel
 
chap3 numerisation_des_signaux
chap3 numerisation_des_signauxchap3 numerisation_des_signaux
chap3 numerisation_des_signaux
 
PRESENTATION (1).pptx
PRESENTATION (1).pptxPRESENTATION (1).pptx
PRESENTATION (1).pptx
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
Microcontroleurs
MicrocontroleursMicrocontroleurs
Microcontroleurs
 
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarquésProgrammation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
 
Systeme embarque
Systeme embarqueSysteme embarque
Systeme embarque
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Cours Bus de communication et réseaux industriels. Chapitre 3 : Bus CAN
Cours Bus de communication et réseaux industriels. Chapitre 3 : Bus CANCours Bus de communication et réseaux industriels. Chapitre 3 : Bus CAN
Cours Bus de communication et réseaux industriels. Chapitre 3 : Bus CAN
 
Trame mic
Trame micTrame mic
Trame mic
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
 
Traitement d'image sous Matlab
Traitement d'image sous Matlab  Traitement d'image sous Matlab
Traitement d'image sous Matlab
 
Ch6 pal fpla
Ch6 pal fplaCh6 pal fpla
Ch6 pal fpla
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeurs
 
2Grafcet-Exercice-corrigé-02(www.alloacademy.com).pdf
2Grafcet-Exercice-corrigé-02(www.alloacademy.com).pdf2Grafcet-Exercice-corrigé-02(www.alloacademy.com).pdf
2Grafcet-Exercice-corrigé-02(www.alloacademy.com).pdf
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 
Architecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresArchitecture des ordinateurs : memoires
Architecture des ordinateurs : memoires
 
Cours pics16 f877
Cours pics16 f877Cours pics16 f877
Cours pics16 f877
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseur
 

En vedette

DSP architecture
DSP architectureDSP architecture
DSP architecturejstripinis
 
Digital Signal Processors - DSP's
Digital Signal Processors - DSP'sDigital Signal Processors - DSP's
Digital Signal Processors - DSP'sHicham Berkouk
 
presentation on digital signal processing
presentation on digital signal processingpresentation on digital signal processing
presentation on digital signal processingsandhya jois
 
DIGITAL SIGNAL PROCESSING
DIGITAL SIGNAL PROCESSINGDIGITAL SIGNAL PROCESSING
DIGITAL SIGNAL PROCESSINGSnehal Hedau
 
Introduction to Digital Signal Processing
Introduction to Digital Signal ProcessingIntroduction to Digital Signal Processing
Introduction to Digital Signal Processingop205
 
Application specific Programming of the Texas Instruments ...
Application specific Programming of the Texas Instruments  ...Application specific Programming of the Texas Instruments  ...
Application specific Programming of the Texas Instruments ...butest
 
Representation numerique de_l_information_26_09_2012
Representation numerique de_l_information_26_09_2012Representation numerique de_l_information_26_09_2012
Representation numerique de_l_information_26_09_2012David Langlois
 
Expose tr-de-chaleur-dans-un-cylindre
Expose tr-de-chaleur-dans-un-cylindreExpose tr-de-chaleur-dans-un-cylindre
Expose tr-de-chaleur-dans-un-cylindreomar bllaouhamou
 
Les comportements d’achats multicanaux des internautes
Les comportements d’achats  multicanaux des internautesLes comportements d’achats  multicanaux des internautes
Les comportements d’achats multicanaux des internautesNicolas Prigent
 
GSM in Mauritel and / QoS
GSM in Mauritel and / QoSGSM in Mauritel and / QoS
GSM in Mauritel and / QoStahoos
 
Béton contexte normatif
Béton contexte normatifBéton contexte normatif
Béton contexte normatifSami Sahli
 
8 grafcet avec reprise de séquence
8  grafcet avec reprise de séquence8  grafcet avec reprise de séquence
8 grafcet avec reprise de séquenceomar bllaouhamou
 
Soutenance de stage messerlin
Soutenance de stage messerlinSoutenance de stage messerlin
Soutenance de stage messerlinGaut' Xp
 
Presentaion fpga µc µp quelles est la solution
Presentaion  fpga µc µp quelles est la solutionPresentaion  fpga µc µp quelles est la solution
Presentaion fpga µc µp quelles est la solutionCynapsys It Hotspot
 
FPGA Architecture Presentation
FPGA Architecture PresentationFPGA Architecture Presentation
FPGA Architecture Presentationomutukuda
 

En vedette (20)

DSP architecture
DSP architectureDSP architecture
DSP architecture
 
DSP Processor
DSP Processor DSP Processor
DSP Processor
 
Dsp ppt
Dsp pptDsp ppt
Dsp ppt
 
Processeur FPGA
Processeur FPGAProcesseur FPGA
Processeur FPGA
 
Digital Signal Processors - DSP's
Digital Signal Processors - DSP'sDigital Signal Processors - DSP's
Digital Signal Processors - DSP's
 
presentation on digital signal processing
presentation on digital signal processingpresentation on digital signal processing
presentation on digital signal processing
 
DIGITAL SIGNAL PROCESSING
DIGITAL SIGNAL PROCESSINGDIGITAL SIGNAL PROCESSING
DIGITAL SIGNAL PROCESSING
 
Présentation FPGA
Présentation FPGAPrésentation FPGA
Présentation FPGA
 
Introduction to Digital Signal Processing
Introduction to Digital Signal ProcessingIntroduction to Digital Signal Processing
Introduction to Digital Signal Processing
 
Application specific Programming of the Texas Instruments ...
Application specific Programming of the Texas Instruments  ...Application specific Programming of the Texas Instruments  ...
Application specific Programming of the Texas Instruments ...
 
Representation numerique de_l_information_26_09_2012
Representation numerique de_l_information_26_09_2012Representation numerique de_l_information_26_09_2012
Representation numerique de_l_information_26_09_2012
 
Expose tr-de-chaleur-dans-un-cylindre
Expose tr-de-chaleur-dans-un-cylindreExpose tr-de-chaleur-dans-un-cylindre
Expose tr-de-chaleur-dans-un-cylindre
 
Les comportements d’achats multicanaux des internautes
Les comportements d’achats  multicanaux des internautesLes comportements d’achats  multicanaux des internautes
Les comportements d’achats multicanaux des internautes
 
GSM in Mauritel and / QoS
GSM in Mauritel and / QoSGSM in Mauritel and / QoS
GSM in Mauritel and / QoS
 
Béton contexte normatif
Béton contexte normatifBéton contexte normatif
Béton contexte normatif
 
8 grafcet avec reprise de séquence
8  grafcet avec reprise de séquence8  grafcet avec reprise de séquence
8 grafcet avec reprise de séquence
 
Soutenance de stage messerlin
Soutenance de stage messerlinSoutenance de stage messerlin
Soutenance de stage messerlin
 
Presentaion fpga µc µp quelles est la solution
Presentaion  fpga µc µp quelles est la solutionPresentaion  fpga µc µp quelles est la solution
Presentaion fpga µc µp quelles est la solution
 
Tutorial xilinx 9.1i
Tutorial xilinx 9.1i Tutorial xilinx 9.1i
Tutorial xilinx 9.1i
 
FPGA Architecture Presentation
FPGA Architecture PresentationFPGA Architecture Presentation
FPGA Architecture Presentation
 

Similaire à DSP

Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspgharbisalah
 
Cours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfCours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfHouBou3
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurssarah Benmerzouk
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdfAliRami3
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptxSihemNasri3
 
DSP FPGA.pdf
DSP FPGA.pdfDSP FPGA.pdf
DSP FPGA.pdfHouBou3
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Digital_Signal_Processors_TG_FULL.pdf
Digital_Signal_Processors_TG_FULL.pdfDigital_Signal_Processors_TG_FULL.pdf
Digital_Signal_Processors_TG_FULL.pdfHouBou3
 
Architecture1
Architecture1Architecture1
Architecture1coursuniv
 
Le traitement du signal en Audio. Les procédés de compression audio. Présent...
Le traitement du signal en Audio. Les  procédés de compression audio. Présent...Le traitement du signal en Audio. Les  procédés de compression audio. Présent...
Le traitement du signal en Audio. Les procédés de compression audio. Présent...Vincent RECIPON
 
Assembleur i8086
Assembleur i8086Assembleur i8086
Assembleur i8086ahmedyes
 
cours_carte_d_acquitition.pdf
cours_carte_d_acquitition.pdfcours_carte_d_acquitition.pdf
cours_carte_d_acquitition.pdftarek784863
 
cấu trúc máy tính ( architecture des ordinatuers)
cấu trúc máy tính ( architecture des ordinatuers)cấu trúc máy tính ( architecture des ordinatuers)
cấu trúc máy tính ( architecture des ordinatuers)Hạ Cháy
 
a_introduction ElectroniqueDesSysEmbarqués.pdf
a_introduction ElectroniqueDesSysEmbarqués.pdfa_introduction ElectroniqueDesSysEmbarqués.pdf
a_introduction ElectroniqueDesSysEmbarqués.pdfAnasAsran1
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------NasriMohsen2
 
Arm système embarqué
Arm système embarquéArm système embarqué
Arm système embarquéHoussem Rouini
 
Usrp episode 1: smoke gets in your eyes
Usrp episode 1: smoke gets in your eyesUsrp episode 1: smoke gets in your eyes
Usrp episode 1: smoke gets in your eyes📡 Sebastien Dudek
 
Technologies du Web - Architectures matérielles et logicielles
Technologies du Web - Architectures matérielles et logiciellesTechnologies du Web - Architectures matérielles et logicielles
Technologies du Web - Architectures matérielles et logiciellesFrédéric Simonet
 
Architecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseArchitecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseAbdoulaye Dieng
 

Similaire à DSP (20)

Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dsp
 
Cours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfCours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdf
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurs
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdf
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptx
 
DSP FPGA.pdf
DSP FPGA.pdfDSP FPGA.pdf
DSP FPGA.pdf
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Digital_Signal_Processors_TG_FULL.pdf
Digital_Signal_Processors_TG_FULL.pdfDigital_Signal_Processors_TG_FULL.pdf
Digital_Signal_Processors_TG_FULL.pdf
 
Architecture1
Architecture1Architecture1
Architecture1
 
Le traitement du signal en Audio. Les procédés de compression audio. Présent...
Le traitement du signal en Audio. Les  procédés de compression audio. Présent...Le traitement du signal en Audio. Les  procédés de compression audio. Présent...
Le traitement du signal en Audio. Les procédés de compression audio. Présent...
 
Assembleur i8086
Assembleur i8086Assembleur i8086
Assembleur i8086
 
cours_carte_d_acquitition.pdf
cours_carte_d_acquitition.pdfcours_carte_d_acquitition.pdf
cours_carte_d_acquitition.pdf
 
cấu trúc máy tính ( architecture des ordinatuers)
cấu trúc máy tính ( architecture des ordinatuers)cấu trúc máy tính ( architecture des ordinatuers)
cấu trúc máy tính ( architecture des ordinatuers)
 
a_introduction ElectroniqueDesSysEmbarqués.pdf
a_introduction ElectroniqueDesSysEmbarqués.pdfa_introduction ElectroniqueDesSysEmbarqués.pdf
a_introduction ElectroniqueDesSysEmbarqués.pdf
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------
 
Arm système embarqué
Arm système embarquéArm système embarqué
Arm système embarqué
 
Usrp episode 1: smoke gets in your eyes
Usrp episode 1: smoke gets in your eyesUsrp episode 1: smoke gets in your eyes
Usrp episode 1: smoke gets in your eyes
 
Technologies du Web - Architectures matérielles et logicielles
Technologies du Web - Architectures matérielles et logiciellesTechnologies du Web - Architectures matérielles et logicielles
Technologies du Web - Architectures matérielles et logicielles
 
Architecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseArchitecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-base
 

DSP

  • 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