Les unités spécifiques des DSP

Slides:



Advertisements
Présentations similaires
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Advertisements

Chapitre IV Architecture de VonNeumann. I/ Introduction John VonNeumann est un mathématicien d’origine Hongroise qui a participé au projet Manhattan.
CHAftITREI ARCHITECTURE de BASE. Modèle de Von Neumann Langage d’assemblage1 John Von Neumann est à l'origine d'un modèle de machine universelle de traitement.
TP 1 BIS Programmation structurée à l’aide de fonctions (FC) et de bloc fonctionnels (FB)
Programmation des microcontrôleurs PIC ENSET d'Oran / IUFM Aix Marseille - mai Les microcontrôleurs PIC.
Formation Réseaux et Télécommunication Master 1 Matière : DSP & FPGA Par: ATOUI Hamza.
UE2 - M22 Licence acoustique
TP4
Un exemple de processeur embarqué Le MSP430
La technologie des mémoires
JAVA.
Plan 1. L’ordinateur : Les connaissances de base
Ch3 : Les Processeurs Superscalairs
Utilisation de Windows
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Nombres réels Représentation et traitement des informations
Algorithmique AU El harchaoui noureddine
Les Bases de données Définition Architecture d’un SGBD
Algorithmique demander jeu du pendu.
Fonctionnement de l'unité centrale
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Représentation de l'information en binaire:
L’Instruction de Test Alternatif
Plan du cours Introduction : création de circuits
Les composants informatiques
Javadoc et débogueur Semaine 03 Version A16.
Les Instructions – Organigramme
Architecture de machines Le microprocesseur
Activités algorithmiques
Fonctions logiques et algèbre booléenne
Virtualisation d’applications mobiles dans un réseau de Cloudlets
ECHANTILLONNAGE.
La technique du pipeline
Système d’exploitation Windows XP
Codification et Représentation de l’information
Traitement du Signal TC 1 6. Architecture des DSP 1. Caractéristiques générales 2. Unités de calcul 4. Architecture mémoire 5. Architecture pipeline.
Traitement du Signal TC 1 6. Architecture des DSP 1. Caractéristiques générales 2. Unités de calcul 4. Architecture mémoire 5. Architecture pipeline.
Instructions et micro-instructions
Jelassi Khaled Systèmes micro-programmés 1 Les systèmes micro-programmés Principe: Un système microprogramme est donc constitué de:  Un microprocesseur.
Notion De Gestion De Bases De Données
Traitement du Signal TC 6. Architecture des DSP 1. Caractéristiques générales 2. Unités de calcul 4. Architecture mémoire 5. Architecture pipeline 1.
Présentation de la carte graphique
PROGRAMMATION ET ENSEIGNEMENT
Architectures parallèles
Architecture de machines Le microprocesseur Cours
Bus et adressage GIF-1001: Ordinateurs: Structure et Applications
Composantes principales des ordinateurs
Architecture de base d’un ordinateur
Cours Microprocesseur Par Philippe Bancquart ¨
La Station de pompage.
Mémoire: cache, RAM, disque dur
Révision du format des données
Efficacité des algorithmes
NUMERATION et REPRESENTATION DES NOMBRES
B.Shishedjiev - Informatique
Introduction aux microprocesseurs
Module 13 : Implémentation de la protection contre les sinistres
Architecture matérielle des ordinateurs
Mésocentre de calcul et de stockage ouvert sur la grille EGEE (MUST) LAPP/ Université de Savoie / EGEE.
LES MEMOIRES.
Implantation d'algorithmes spécifiés en virgule flottante dans les processeurs programmables virgule fixe Daniel MENARD Groupe Signal/Architecture LASTI.
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Exploitation de vos données
Fonctionnement de l'unité centrale (rappels ? de 1ère Année)
Python Nicolas THIBAULT
UC : Diagramme des cas d’utilisation Req : Diagramme d’exigence
Type Tableau Partie 1 : Vecteurs
Les données structurées et leur traitement
Traitement de TEXTE 2 Stage – Semaine 3.
Introduction aux Circuits Reconfigurables et FPGA.
Transcription de la présentation:

Les unités spécifiques des DSP Processeurs de traitement du signal (DSP) Les unités spécifiques des DSP

Les unités spécifiques des DSP Architecture générale et objectifs Unité de commande Unité de traitement Unité de mémorisation Performance / Consommation

Architecture générale et objectifs Processeur CPU Unité de commande Unités de traitement Bus internes Mémoire interne Unité de Communication Périphériques et mémoire externes

Architecture générale et objectifs Unité de commande  Rôle :  Permet de séquencer le déroulement des instructions  Objectifs pour être performant  Pilotage de chaque module du DSP indépendamment autres  Gestion efficace des boucles  Encodage des instructions :  Minimiser la taille des instructions  Encoder le maximum de parallélisme les uns des

Architecture générale et objectifs Unité de traitement  Rôle :  Assure les traitements nécessaires à l’exécution des instructions  Objectifs pour être performant  Réaliser efficacement les traitements typiques  1 MAC par cycle  1 décalage de N bits (droite ou gauche) en 1 cycle

Architecture générale et objectifs Unité de mémorisation et objectifs  Rôle :  Mémoire  Objectifs de programme de donnée pour être performant  Alimenter efficacement en données l’unité de traitement afin de ne  Gérer pas la ralentir efficacement les pointeurs d’adresse

Architecture générale et objectifs Unité de communication  Rôle :  Contrôle les accès aux données, aux instructions externes ou à d'autres processeurs  Objectifs pour être performant  Limiter l’utilisation des ressources processeur lors de ces accès.

Unité de commande œuvre : gestion des boucles matérielles  C’est le chef d’orchestre du CPU. Il séquence et décode les instructions une à une.  Pour être efficace, le CPU met en  Un pipeline œuvre :  Une gestion des boucles matérielles

Les phases du Pipeline P (Prefecth) - Generate program address = Incrémentation du compteur ordinal F (Fetch) - Get Opcode = Lecture du code de l’instruction en mémoire D (Decode) - Decode instruction = Décodage de l’instruction A (Access) - Generate read address = Calcul des adresses des opérandes = Calcul de l’adresse du résultat R (Read) - Read operands = Lecture des opérandes en mémoire X ( Execute) = Exécution de l’instruction = Ecriture du résultat l’adresse calculée P F D A R X Full Pipeline : Toutes les unités matérielles du DSP sont en activités P F D A R X

Unité de commande Séquentiel vs pipeline F1 - D1 R1 - X1 CPU - - F5 F4 MemP Instruction Instruction 1 Instruction 2 - Fetch F1 F2 Decode D1 D2 CPU Read R1 R2 - MemD Execute X1 X2 - MemD F5 D4 R3 X2 F4 MemP Fetch F1 F2 F3 F4 F5 … … … D3 Decode D1 D2 D3 D4 D5 … … Read R1 R2 R3 R4 R5 … CPU R2 MemD Execute X1 X2 X3 X4 X5 X1 MemD

Unité de commande Exemple de rupture de séquence Code à exécuter : 1: 2: 3: 4: 5: 6: Instr1 Si B==1 Alors GOTO 10: Instr3 Instr4 Instr5 Instr6 … 10: 11: 12: Instr10 Instr11 Instr12 Etat du pipeline avec prédiction que B≠1: Si prédiction incorrecte (B=1) Si prédiction correcte (B≠1) F F1 F2 F3 F4 F5 F10 F11 F12 F F1 F2 F3 F4 F5 F6 … … D D1 D2 D3 D4 ! D10 D11 D D1 D2 D3 D4 D5 D6 … R R1 R2 R3 ! ! R10 R R1 R2 R3 R4 R5 R6 X X1 X2 ! ! ! X X1 X2 X3 X4 X5 Evaluation du prédicat (B==1) => rupture de séquence Vidange du pipeline: Perte de 3 cycles Evaluation du prédicat (B==1) => pas de rupture

Unité de commande Exemple de conflit d'accès mémoire Programmes et Données dans la même mémoire à 1 accès par cycle Fetch F1 F2 conflit conflit F3 F4 ! ! Decode D1 D2 ! ! D3 D4 ! Read R1 R2 ! ! R3 R4 Execute X1 X2 ! ! X3  Conflit pour l’accès mémoire entre Fetch et Read  Les lectures de données R1/R2 empêchent les chargements d'instruction  Réductions des performances d'au moins 50% F3/F4  Problème réglé si  Mémoire multi-accès  Programmes et Données dans des mémoires différentes (ou multi-bloc)

Unité de commande Effets du pipeline lors du débogage Watch Window A 1 Code à exécuter : 1: 2: 3: A=1 B=1 C=1 La flèche indique la position du PC Plusieurs cycles sont nécessaires avant que la variable soit modifiée : Cela n’intervient qu’à l’étape X (exécution) … NOP … Watch Window A 1 ??? B 1 C 1 10: 11: 12: 13: 14: … A=2 B=2 C=2 D=2 E=2 Watch Window A 2 !!! B 1 C 1 F F10 F11 F12 F13 F14 … … … D D10 D11 D12 D13 D14 … … R R10 R11 R12 R13 R14 … X A=2 B=2 C=2 D=2 E=2 Watch Window A 2 B 2 C 1

Unité de commande Utilisation des ressources par le pipeline Etage Description Partie hardware utilisée P Generate program address PC F Get Opcode Program memory D Decode instruction Decoder A Generate read address ARs, ARAU R Read Operand Data memory Generate write address ARs, ARAU X Execute instruction MAC, ALU Write result Data Memory PC = Program Counter ARAU = Auxiliary Register Arithmetic Unit AR = MAC= ALU = Adresse Register Multiply ACcumulate Arithmetic Logic Unit

Unité Retards de commande dans le pipeline  Le pipeline atteint son plein rendement une fois qu’il est “rempli”  Un retard peut se produire  S’il existe un conflit de ressources (retard ponctuel)  accès à la mémoire  utilisation des bus  En cas de rupture de séquence  branchement non prévu  appel de sous-programme  interruption (vidange du pipeline)

boucles de petite taille Unité de commande Gestion des boucles  L’objectif est d’optimiser le traitement des boucles de petite taille  Initialisation des paramètres de la boucle en 1 instruction  Pas d'instructions supplémentaires pour de la boucle la gestion de la fin  Exemple boucle mono-instruction MOVE MAC DEC JNE #16,B (R0)+,(R4)+,A B LOOP RPT MAC #16 (R0)+,(R4)+,A LOOP Boucle logicielle Boucle matérielle

yn   b(i) xn  i  yn   b(i) xn  i  Unité de commande Y Exemple : Calcul d’un filtre RIF N 1 yn   b(i) xn  i  i 0 N 1 i 0 yn   b(i) xn  i  Gestion matérielle des boucles : Unité de génération d’adresses programme Unité MAC + Chargement simul de l’instruction et opérandes Unité MAC matérielle tané de l’instruction et des Y B[i] X[i] A=0; for (i=0; i<N; ++i) { SSBX FRCT STM #B, AR2 STM #X, AR3 STM #Y, AR4 RPTZ A, #N-1 (x1) MAC *AR2+,*AR3+, A (xN) STH A, *AR4 (x1) A = A + B[i] * X[i]; } Y = A >> 15; d’adresses données Unité de génération Code C Equivalent ASM

Unité de commande Optimisation du compilateur C Code C 813D toto Pas d’optimisation 813D PSHM 11h Sauvegarde AR1 (save-on-entry) 813E FRAME -1 813F SSBX SXM Manipulation de nombres signés 8140 LD #100h,0,A A <= 256 (100h) 8142 ST #0h,0h Met la valeur initiale 0 de i dans pile[0h] 8144 SUB 0h,A A <= A - pile[0h] 8145 BC 8154h,ALEQ Si A<=0, alors aller à fin: debut : 8147 MVDK 0h,11h Copie pile[0h] dans AR1 8149 LD *AR1(817),A Charge in[AR1] dans A 814B STL A,*AR1(1073) Stocke A dans out[AR1] 814D LD #100h,0,A A <= 256 (100h) 814F ADDM 1h,0h pile[0h] <= pile[0h] + 1 8151 SUB 0h,A A <= A - pile[0h] 8152 BC 8147h,AGT Si A>0 alors reboucler sur debut: fin: 8154 FRAME 1 8155 POPM 11h Restaure de AR1 8156 FRET Retour de la fonction #define N 256 short out[N]; void toto() int i; for (i=0; i<N; i++) out[i]=in[i] ; } short in[N]; { { } Adresses des tableaux _inputData = 331h = 817 _outputData = 431h = 1073 8033 toto Optimisation au niveau fonction (-o2) 8033 STM 431h,13h AR3 <= @out 8035 STM 331h,12h AR2 <= @in 8037 RPT #0ffh Répéter 256=255+1 fois 8038 MVDD *AR2+,*AR3+ *AR3 <= *AR2 8039 NOP 803A NOP 803B FRET Université de Savoie Prise en compte des capacités matérielles du DSP

Unité de commande Unité de contrôle du C50 • pile de 8 * 16 bits • PC sur 16 bits • pile de 8 * 16 bits • PFC,IR: pour le pipeline • Registres de status ST0,ST1,PMST • Gestion des boucles • RPTC: repeat instruction • BRCR: repeat bloc • Interruptions : • IMR: masque interruptions • IFR: flags interruptions • BMAR: bloc move • GREG: mémoire globale

exposant. Unité de traitement Il existe deux types de DSP : virgule fixe / virgule flottante Il  existe deux types de DSP : Les DSPs à virgule fixe traitent des nombres entiers seulement Les DSPs à virgule flottante traitent des   nombres réels exposant. codés sous la forme mantisse

Unité de traitement Xmax] des recadrages DSP virgule fixe (1)  Arithmétique :  Dynamique limitée : [-Xmax et Xmax] : Possibilité de débordement  nécessité de recadrer les données  Développement :  Temps de développement plus long : Étude de la dynamique des données, détermination du codage des recadrages et

 Efficacité énergétique Unité de traitement DSP virgule fixe (2)  Architecture :  Opérateurs plus simples  Largeur des données  Efficacité énergétique moins importante b : 16 bits plus importante :consommation  Processeur moins cher (surface du circuit moins importante) rapide (seulement pour les calculs à virgule fixe)  Marché : applications grand public  Xx % des ventes en xx TMS320C62x : TMS320C64x : TMS320C62x : TMS320C64x :

Unité de traitement DSP virgule flottante (1) : 1500 dB pour 32 bits  Arithmétique :  Dynamique importante : 1500 dB pour 32 bits  Développement  Temps de développement plus court  Recadrage des données assuré par le processeur  Compilateur de langage de haut niveau plus efficace grande portabilité : plus

Unité de traitement DSP virgule flottante (2) :  Architecture :  Largeur des données : 32 bits  Opérateurs plus complexes (gestion de la mantisse et l’exposant)  Processeur plus cher et consommant plus de  Marché  Applications nécessitant une grande dynamique audionumérique :  Applications avec des faibles volumes

Unité de traitement yn-1 complexe Fonctions typiques Quelques fonctions à réaliser en 1 cycle d’horloge :  Filtrage, convolution  y = y + x.h : MAC (multiplication-accumulation)  Adaptation  yn = yn-1 + x.h : MAD (multiplication-addition)  FFT, multiplication  xr = xr.wr - xi.wi  xi = xr.wi + xi.wr complexe

 h(i).x(n  i)  Filtre numérique FIR sur N points Unité de traitement Exemple  Filtre numérique FIR sur N points N 1  h(i).x(n  i) i0 y(n)  x(n)  h(n) D x + Cellule D D D x(n) x x x x h(0) h(1) h(2) h(3) h(4) y(n) + + +  Objectif : traitement d’une cellule par cycle

Unité de traitement registre (P register) bmultiplication = Eléments de l’unité de traitement (1)  Opérateurs  Multiplieur câblé  Multiplication en 1 cycle ou pipelinée (1 résultat de multiplication par cycle)  Le résultat est fourni directement à l’UAL ou il est stocké registre (P register) dans un  Largeur des opérandes  source : b résultat : bmultiplication = 2.b  Unités  Unité de saturation ou d’arrondi spécifiques de manipulation de bit, Viterbi, ...

 Additionneur indépendant de Unité de traitement Eléments de l’unité de traitement (2)  U.A.L.  Opérations arithmétiques : addition, incrémentation, négation  Opérations logiques : and, or, not soustraction,  Additionneur indépendant de l’UAL  Registres à décalage (recadrage des données)  spécialisé : réalisation de quelques décalages prédéfinis en //  en barillet : réalisation d ’un décalage quelconque en 1 cycle

 Unités de stockage de l’unité de traitement Éléments de l’unité de traitement (3)  Unités de stockage de l’unité de traitement  Registres  Stockage opérandes des opérandes sources ou des résultats intermédiaires d’accumulation du résultat de l ’additionneur  Nombre de registres d’accumulation limité (1 à 4)  Données stockées en double précision  Possibilité de bits de garde pour stocker les bits supplémentaires issus d ’accumulations successives badd = bmultiplication + bgarde Bits de garde ACCH ACCL bgarde 2.b

Unité de traitement bmult badd Structure de l’unité de traitement MAC  P bmult MAC + badd Accumulateur Sat /Arr

Unité de traitement Exemple : TMS320C54x bits barillet de Viterbi DB PB DB CB DB CB EB CB DB Université de Savoie  1 multiplieur 16*16 bits  Op source 1 : registre T  Op source 2 : mémoire  Op destination :  1 additionneur 40 bits  1 ALU (40 bits)  2 registres d ’accumulation 40 bits  1 registre à décalage en barillet  1 unité dédiée à l ’algorithme de Viterbi

Unité de mémorisation xn-k xn-k-1 xn-k Les différents accès à la mémoire  Exemple Filtre FIR  Recherche de l’instruction  Lecture de la donnée xn-k  Lecture du coefficient hk  Vieillissement des données xn-k-1 = xn-k D x h(2) + TAP D D D x(n) x x x x h(0) h(1) h(3) h(4) y(n) + + +

Unité de mémorisation Rappels : Bus  Le  CPU est le maître du bus Il est le seul à écrire sur les bus adresse et contrôle périphérique obtempère sur le bus données Lecture : il fournit la donnée demandée Ecriture : il récupère la donnée fournie par le CPU Haute impédance : il se déconnecte du bus Périphérique CPU BUS Adresses : sélection du périphérique et localisation d’une donnée Données : valeur de la donnée à échanger Contrôle : lire / écrire / haute impédance adresses données contrôle CPU Périphérique

Unité de mémorisation CPU Mémoire Accès mémoire pour un calcul 1 2 Mémoire 4 3 Charger une instruction  (1)  (2)  (3)  (4) depuis la mémoire Charger les opérandes depuis la mémoire Effectuer les calculs Stocker le résultat en mémoire

Unité de mémorisation 68000) Architecture Von Neuman à la mémoire Programme + Données CPU BUS  Un seul chemin d'accès à la mémoire  Architecture des processeurs d’usage général 68000) (Pentium,  Goulot d'étranglement pour l'accès à la mémoire

Unité de mémorisation Architecture Harvard programme et données Mémoire Programme CPU Mémoire Données  Séparation des mémoires programme et données  Meilleure utilisation du CPU  Chargement du programme et des données en parallèle

Unité de mémorisation de lecture des données (C et D) Accès mémoire multi-port Mémoire Programme + Données CPU Mémoire Données  Plusieurs bus de données  Accès simultané à plusieurs  Combiné avec données  mémoire multi-accès (plusieurs accès à la même cycle) mémoire en un  mémoire multi-blocs (accès simultané à deux blocs de mémoire distincts)  Exemple du TMS320C54xx :  1  2 bus bus bus programme (P) de lecture des données (C et D) d’écriture des données (E)

Unité de mémorisation Exemple du TMS320C5416 Internal Memory External Program A/D Bus (P) Data Read A/D Bus (D) Ext’l Mem I/F A Data Read A/D Bus (C) D Data Write A/D Bus (E) Internal: Up to 4 accesses / cycle External: 1 access / cycle up to 8M words program  Exemple du TMS320C54xx : programme (P) de lecture des données  1  2 bus bus bus (C et D) d’écriture des données (E)

Unité de mémorisation Exemple du TMS320C5416 Université de Savoie

Unité de mémorisation Exemple du TMS320C5416 Ext’l Mem I/F Program ROM Data ROM SARAM DARAM P Bus A Ext’l Mem I/F D Bus D C Bus E Bus

Unité de mémorisation  Utile en cas de boucle Cache d'instructions DSP cache d’instructions CPU Mémoire Programme + Données Mémoire Données  Cache = mémoire associative rapide  Contient les dernières instructions exécutées  Utile en cas de boucle  Accès aux instructions sans accès en mémoire  Libère le bus pour des données  Pas appliqué aux données  Problème de validation du temps réel programme

Unité de mémorisation Bus externes Boitier du DSP Transfert entre Mémoire Programme + Données CPU Mémoire Données MUX Transfert entre les bus  Limitation du nombre de broches internes et externe par multiplexage temporel Réduction des coûts Diminution des performances lors des accès au bus externe

Unité de mémorisation Accès Direct à la Mémoire : DMA CPU Mémoire Programme + Données Mémoire Données interruptions DMA configuration  Accès DMA : entrées-sorties vers la mémoire bus internes interne  indépendant du CPU et des  Système d'interruptions "données reçues"/"données transmises"

Unité de mémorisation 1 3 2 DMA et buffer ping-pong DSP CAN McBSP2 DRR DSP McBSP2 DXR CNA DMA4 DMA5 PING IN 1 PING IN PING IN 3 PING OUT PING 1 OUT Traitement PONG IN PONG IN 2 PONG OUT PONG 2 OUT Buffers en mémoire Buffers en mémoire

Unité de mémorisation Mémoire interne sur les C54x Capacité en mémoire interne de différents modèles C54x Découpage en blocs  Plusieurs types de RAM incluse sur le chip  Single access (SARAM) : un accès par cycle  Dual access (DARAM) : deux accès par cycle  Two-way shared : deux accès par cycle même depuis l'extérieur  DARAM découpée en blocs  Accès simultané à deux blocs de mémoire différents  2x2=4 accès par cycle en théorie (en réalité limité par le reste de l'architecture) sources : "TMS320C54x DSP Functional Overview", SPRU307A, Texas Instrument "TMS320VC5416 DSK Reference Technical", Spectrum Digital

Unité de mémorisation Adressage indirect : *ARx (1)  L’instruction contient un numéro de registre auxiliaire ARx qui contient l’adresse en mémoire ou se trouve la donnée Analogue aux pointeurs en C  Possibilité de modifier la valeur du registre MPY *AR4, *AR3, A ; Multiplication de la donnée à l’adresse contenue dans AR4 ; par celle pointée par AR3 et stockage du résultat en A ; On remarque l’accès simultané à deux données ; A ← dm(AR4) × dm(AR3)

Unité de mémorisation Adressage indirect : exemple (3) Option Syntax Université de Savoie 92 Option Syntax Action Affected by: No Modification *ARn Increment / *ARn+ Decrement *ARn- no modification to ARn post increment by 1 post decrement by 1 Indexed *ARn+0 *ARn-0 post increment by AR0 post decrement by AR0 AR0 Circular *ARn+% *ARn-% *ARn+0% *ARn-0% post increment by 1 - circular post decrement by 1 - circular post increment by AR0 - circular post decrement by AR0 - circular BK BK, AR0 Bit-Reversed *ARn+0B *ARn-0B post inc. ARn by AR0 with reverse carry post dec. ARn by AR0 with reverse carry AR0 (=FFT size/2) Pre-modify *ARn (lk) *+ARn (lk) *+ARn (lk)% *+ARn *(ARn+LK), ARn unchanged *(ARn+LK), ARn changed *(ARn+LK), ARn changed - circular pre-increment by 1, during write only BK Absolute *(lk) 16-bit lk is used as an absolute address See Absolute Addressing

(Unité d’adressage indirect) Unité de mémorisation ARAU (Unité d’adressage indirect) Unités de calcul spécialisées Registres d'adressage Ecriture sur les bus d'adresse des bus C, D et E

Unité de mémorisation Buffer linéaire Time n Time n+1 Time n+2 Time  Chaque nouvel échantillon donne lieu au déplacement de l’ensemble des données du buffer, l’adresse du nouvel échantillon est toujours la même. Time n Time n+1 Time n+2 Time n+3 x(n) x(n+1) x(n+2) x(n+3) x(n-1) x(n) x(n+1) x(n+2) x(n-2) x(n-1) x(n) x(n+1) x(n-3) x(n-2) x(n-1) x(n)

Unité de mémorisation filtre FIR. d’adresse. Adressage circulaire  Exemple : filtre FIR. stockage des échantillons d’entrée dans un Time n Time n+1 Time n+2 Time n+3 x(n-1) x(n-1) x(n-1) x(n+3) x(n) x(n) x(n) x(n) x(n-3) x(n+1) x(n+1) x(n+1) x(n-2) x(n-2) x(n+2) x(n+2)  Chaque nouvel échantillon donne lieu à l’écriture d’une donnée. Cette adresse est d’adresse. calculée par le générateur

Unité de mémorisation MMR : Memory Mapped Registers Addressing MMRs are in page 0 of data memory. They can be accessed by some specific MMR instructions allowing simple access to page 0. In these cases DP, SP and CPL are ignored Example : STM (STore to Memory-mapped register):    Stores an immediate value to the specified MMR or Scratch memory address. 0000h MMRs Tip: use the .mmregs directive to allow MMR names to be interpreted as addresses 0060h 007Fh Scratch

Unité de mémorisation Memory Mapped Registers 0019 Name Addr. (Hex) Description Name Addr. (Hex) Description IMR IFR ----- 0000 0001 2 - 5 Interrupt Mask Register Interrupt Flag Register Reserved AR0 AR1 AR2 AR3 AR4 AR5 AR6 AR7 0010 0011 0012 0013 0014 0015 0016 0017 Address Register 0 Address Register 1 Address Register 2 Address Register 3 Address Register 4 Address Register 5 Address Register 6 Address Register 7 ST0 ST1 0006 0007 Status 0 Register Status 1 Register AL AH AG BL BH BG 0008 0009 000A 000B 000C 000D A accumulator low (A[15:00]) A accumulator high (A[31:16]) A accumulator guard (A[39:32]) B accumulator low (B[15:00]) B accumulator high (B[31:16]) B accumulator guard (B[39:32]) SP BK 0018 0019 Stack Pointer Register Circular Size Register BRC RSA REA 001A 001B 001C Block Repeat Counter Block Repeat Start Address Block Repeat End Address T TRN 000E 000F Temporary Register Transition Register PMST ------- 001D 01E-01F PMST Register Reserved Note: XPC and Peripheral MMR locations are device dependent

Performance / Consommation Consommation énergétique  Filtrage numérique  C549 FIR:  100MHz,  C6201  200MHz,  DSP16210  ZSP16401 2.5V 1.8V 3.3V 2.5V  ADSP-21160  100MHz, 2.5V  C6701  167MHz, 1.8V

Performance / Consommation Mesures des performances Mesure le nombre d’opérations MFLOPS Million Floating–Point arithmétiques à virgule flottante que le en une seconde Operation Per Second DSP à virgule flottante peut réaliser Mesure le nombre total d’opérations Per Second le DSP peut réaliser en une seconde Million Operation MOPS (calcul, accès DMA, transferts, etc.) que Mesure le nombre de codes machine Per Second en une seconde Million Instructions MIPS (instructions) que le DSP peut réaliser Mesure le nombre d’opérations MAC per Second réaliser en une seconde Million of MAC MMACS (Multiply+Accumulate) que le DSP peut MBPS Mega-Bytes Mesure la bande passante d’un bus Per Second particulier ou d’un dispositif d’E/S

Performance / Consommation Panorama des DSP (2)