12
TMS320C28x Floating Point Unit et Jeu d’instruction Réaliser par : ELYOUSSOUFI MOHAMMED BADDOU MOHAMED 2014/2015

TMS320C28x Floating Point Unit et Jeu d'instruction

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