Upload
esstt-tn
View
1
Download
0
Embed Size (px)
Citation preview
TMS320C28x Floating Point Unit et Jeu d’instruction
Réaliser par : ELYOUSSOUFI MOHAMMED
BADDOU MOHAMED
2014/2015
I. Introduction général du DSP :
Depuis maintenant plusieurs années, le traitement numérique du signal est une technique en
plein essor. Nous allons nous intéresser aux processeurs de traitements du signal, plus
communément désignés par l'acronyme Anglais DSP (Digital Signal Processor).
Au niveau historique, les DSP ont été initialement développés pour des applications de radars
militaires et de télécommunications cryptées dans les années 70. C'est Texas Instruments® qui
en 1978 introduit un DSP pour la synthèse de la voix pour des applications très grandes
publiques. Il aura fallu 15 ans supplémentaires pour que les DSP deviennent des composants
incontournables de l'électronique grand public.
DSP ayant une puissance de traitement adaptée, pour un coût économique approprié.
Un DSP est un type particulier de microprocesseur. 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.
Comme un microprocesseur classique, un DSP est mis en œuvre en lui associant de la mémoire
(RAM, ROM) et des périphériques à la différence qu'un DSP typique a plutôt vocation à servir
dans des systèmes de traitements du signal. Ainsi il se présente généralement sous la forme d'un
microcontrôleur intégrant de la mémoire, des Timers, des ports séries synchrones rapides, des
contrôleurs DMA, des ports d'E/S divers.
II. Introduction du TMS320C28X
Le C28X plus virgule flottant est un processor plus fort que C28X avec virgule fixe, car il ajout des
registre et des instructions pour supporter des opérations du virgule flottant de la norme IEEE*, ce
DSP a des instructions réduit (RISK), et aussi une architecture HARVARD modifier et une mode
d’adressage circulaire.
La norme RISC nous donne un seul cycle d’exécution, registre vers registre, l’architecture
HARVARD modifier, l’exécution des instructions de donne se fait d’une manier parallèle.
Le DSP peut lire les instructions et les donner et aussi exécuter les données simultanément pour
garantir un seul cycle d’instruction.
*IEEE : L’Institute of Electrical and Electronics Engineers ou IEEEnote 1, en français l'« Institut des ingénieurs électriciens et
électroniciens », est une association professionnelle. L’IEEE compte plus de 400 000 membres et possède différentes branches
dans plusieurs parties du monde1. L’IEEE est constituée d’ingénieurs électriciens, d’informaticiens, de professionnels du domaine
destélécommunications, etc. L’organisation a pour but de promouvoir la connaissance dans le domaine de l’ingénierie électrique
(électricité etélectronique). Juridiquement, l'IEEE est une organisation à but non lucratif de droit américain.
III. Architecture général du TMS320C28X Schémas bloc d’un TMS 320C28X
IV. Description de chaque composant du C28X+FPU Virgule flottant code du développement
Si tu veux développer sur C28X+FPU*, tu peux utiliser Code Composer Studio 3.3 ou
supérieur, et The C28X Computer V5.0
Carte du mémoire
Le C28X+FPU utilise 32 bit pour adresse donnée et 22 bit pour l’adresse programme, cela permet
de porter un adresse total 4G (1 mot=16 bit) on l’espace donnée et 4Mmots on espace programme
On-Chip programme et données
Tous C28X+FPU contient 2 blocks d’un seul accès On-Chip mémoire M0 et M1, et chaque block 1
k mots.
M0 sont adresse 0x0000->0x03FF, et M1 0x0400->0x07FF, M0 et M1 peut être pour les donnée et programme,
le Stack Pointer se trouve dans le top du M1.
Les vecteurs d’interruption de DSP
64 adresses dans le programme son désigné les vecteur d’interruption, ils peuvent être on top ou on
bas du programme de la donnée VMAP bit
Interface mémoire
La mémoire du C28X+FPU, il est accessible depuis l’extérieur à travers une interface mémoire qui
peut se connecter à des périphériques, ou d’autre interface
L’interface mémoire a des bus donnée et du programme séparé
On peut rechercher dans la mémoire du programme en parallèle avec l’accès au mémoire de la
donnée
Buses d’adresse et de donnée
PAB : Program Address Bus : PAB pour lire et écrire dans l’espace programme (22bits)
DRAB : Data-Read Address Bus : DRAB porte lire des adresse depuis espace donnée (32bits)
DWAB : Data-Write Address bus : Porte adresse pour écrire vers espace donnée
Bus de donnée
PRDA : Program-Read Data Bus : porte des instructions durant la lecture depuis espace
programme (32bits)
DWDB : Data/Program-Write Data Bus : porte donnée durant l’écriture vers l’espace donnée ou
espace programme
Remarque : espace programme lecture et écriture ne peut pas être simultanément car les 2 adresse
utilise PAB de même pour espace programme écrire et espace donnée écrire les 2 utilise DWDB.
La transaction peut s’exécuter simultanément car il utilise des bus diffèrent
Alignment of 32 bits Access to Even Address
C28X+FPU emballages le mémoire ou périphérique d’interface logique, pour aligner chaque 32
bits lire et écrire vers la même adresse.si la logique adresse génération génère une impaire, le C28X
peut commencer, lire et écrire avec la même adresse précèdent. L’alignement n’endommage pas
la valeur des adresse générer par la logique adresse de génération.
DSP registre
C28X+FPU, contient le registre standard du C28X plus les registres d’unité de virgule flottant :
8 FPU registre RnH (n=0...7)
Virgule flottant statu registre (STF)
Repeat Black Registre (RB)
Tous les FP registre sont Repeat Black Registre ou ombragé, se ombragèrent peut utiliser on haut
priorité interruption pour un contexte rapide sauvegarde et restauration de FPR
FP Statu Registre(STF)
STF reflet le résultat du FP opération, il y a 3 lois pour FP drapeaux opérant :
0 et négative drapeau sont basée on mouvement vert le registre
0 et négative drapeau sont basée sur le résultat de la comparaison, minimum, maximum, négative
les opérations a valeur absolu
Débordement et sous vers drapeau fixe par les instructions mathématique tel que multiplication,
adition, soustraction, et 1/x, ses drapeaux peut aussi connecter avec les périphériques d’interruption
(FIE) sur votre device.
Repeat Block Registre(RB)
RB instruction nouveau dans C28X+FPU, son registre vous permet répéter un block des codes
V. Exemple de quelque Jeu d’instruction
Tableaux des nomenclatures :
k
ABSF32 RaH, RbH 32 bits-point Absolu value
Les opérandes :
RaH: floating-point destination register (R0H to R7H)
RbH: floating-point source register (R0H to R7H)
Opcode LSW: 1110 0110 1001 0101
MSW: 0000 0000 00bb baaa
Description : la valeur absolue de RbH se localise dans RaH, seulement le bit signe des opérandes
qui sont modifié par l’instruction ABSF32
If (RbH<20) RaH=-RbH
Else (RaH=RbH)
Drapeaux
Drapeau TF ZI NI ZF NF LUF LVF
modifier non non non oui oui non Non
Le STF registre drapeau est modifier comme suit
NF=0
ZF=0
If(RaH(30 :23)==0) ZF=1 ;
Pipeline: un seul cycle d’instruction
ADDF32 RaH,# 16FHi,RbH 32bits FP adition
Les operands :
RaH : floating-point destination register (R0H to R7H)
#16FHi: A 16-bit immediate value that represents the upper 16-bits of an IEEE 32-bit
floating-point value. The low 16-bits of the mantissa are assumed to be all 0.
RbH: floating-point source register (R0H to R7H)
Opcode :
LSW : 1110 1000 10II IIII
MSW : IIII IIII IIbb baaa
Description :
Additionnée RbH avec la valeur FP représenter par l’opérande immédiat résultat
d’addition Stocker dans RaH
#16FHi est une valeur immédiat de 16 bit représente des 16 bit supérieur d’une valeur FP de
32 bit, les autre 16 bit de la mantisse doit tous mise 0.
VI. Quelques Applications de Texas Instruments TMS320C28x : Dans cette activité pratique nous allons parler seulement de quelques applications vu l’énorme
nombre d’applications d’un TMS320C28x
ATM Module :
Le module ATM inclut des fonctions de langage d'assemblage.
Fonctions :
❏ ATM_andi, ATM_andu. Le ET mémoire et la retourne de la valeur précédente
❏ ATM_cleari, ATM_clearu. Effacer la mémoire et retourner de la valeur précédente
❏ ATM_deci, ATM_decu. Décrémenter mémoire et renvoie la nouvelle valeur
❏ ATM_inci, ATM_incu. Incrémenter la mémoire et renvoie la nouvelle valeur
❏ ATM_ori, ATM_oru. OU mémoire et retourner de la valeur précédente
❏ ATM_seti, ATM_setu. Réglez la mémoire et retourner de la valeur précédente
Description de l'ATM offre un ensemble de fonctions de la langue d'assemblage qui sont
utilisés pour manipuler des variables avec les interruptions désactivées. Ces fonctions peuvent
donc être utilisées sur des données partagées entre les tâches, et sur les données partagées entre
les tâches et les routines d'interruption.
BUF Module :
Le module de BUF maintient pools de mémoire tampon de tampons de taille fixe.
Fonctions :
❏ BUF_alloc. Allouer un tampon de taille fixe du pool de mémoire tampon
❏ BUF_create. Créer dynamiquement un pool de mémoire tampon
❏ BUF_delete. Suppression d'un pool de mémoire tampon créé dynamiquement
❏ BUF_free. Libérer un tampon de taille fixe vers le pool de mémoire tampon
❏ BUF_maxbuff. Obtenir le nombre maximum de tampons utilisé dans une piscine
❏ BUF_stat. Obtenir des statistiques pour le pool de mémoire tampon spécifiée
Le module de BUF maintient pools de tampons de taille fixe. Ce tampon pools peuvent
être créés de façon statique ou dynamique. Créé dynamiquement pools de mémoire tampon
sont attribués à partir d'un tas de mémoire dynamique géré par la
Module MEM. Applications allouent généralement pools de mémoire tampon statique
lorsque taille et l'alignement des contraintes sont connus au moment de la conception. Run-
time L’allocation est utilisée lorsque ces contraintes varient lors de l'exécution.
Au sein d'un pool de mémoire tampon, tous les tampons ont la même taille et l'alignement.
Bien que chaque image ait une longueur fixe, l'application peut mettre une variable quantité
de données dans chaque trame, jusqu'à la longueur de la trame. Vous pouvez créer plusieurs
pools de mémoire tampon, chacun avec une taille de tampon différent.
Tampons peuvent être alloués et libérés d'un pool en fonction des besoins au moment de
l'exécution en utilisant les fonctions BUF_alloc et BUF_free.
Les avantages de l'allocation de mémoire à partir d'un pool de mémoire tampon au lieu de
partir les tas de mémoire dynamique fournis par le module de MEM comprennent :
❏ Fois d'allocation déterministes. Le BUF_alloc et BUF_free fonctions nécessitent une
quantité constante de temps. Allocation et la libération mémoire à travers un tas est pas
déterministe.
❏ Rachetable de tous les types de filetage. Allocation et la libération des tampons est
atomique et non-bloquant. En conséquence, BUF_alloc et BUF_free peut être appelé à partir
de tous les types de DSP / fils du BIOS: l'IMTS, SWI, TSK, et IDL. En revanche, l'IMTS et
SWI les discussions ne peuvent pas appeler MEM_alloc.
❏ Optimisé pour l'allocation de longueur fixe. Par contraste est MEM_alloc optimisé pour
une allocation de longueur variable.
❏ Moins fragmentation. Depuis les tampons sont de taille fixe, la piscine ne devient pas
fragmenté.
VII. Conclusion
Durant la réalisation de ce projet, nous avons pu constater que les DSP représentent une partie
importante dans le traitement numérique du signal, Le travail réalisé au cours de cette activité
pratique nous a permis d’élargir nos compétences dans le domaine de l’Informatique Industrielle,
ainsi que la découverte du fonctionnement et de l’architecture des DSP en particulier celui de
TMS320C28335de Texas Instruments constituant un élément clé dans de la famille de
TMS320C28X.
Comme perspectives, nous recommandons de faire la programmation sur DSP en utilisant le
langage assembleur, vu ses innombrables avantages par rapport à la programmation en langage C.
nous recommandons également l’implémentation des algorithmes plus complexes sur le DSP afin
d’élargir son champs d’applications.
Pour conclure, maîtriser ou avoir des bases sur l’utilisation du DSP et le traitement numérique du
signal devient indispensable vu le nombre de domaines concernés de nos jours.
VIII. Bibliographie et webographie TMS320C28x Floating Point Unit and Instruction Set, Reference Guide
Wikipedia www.aix-mrs.iufm.fr/formations/filieres/ge/data/DSP