Chap2 dsp
Upcoming SlideShare
Loading in...5
×
 

Chap2 dsp

on

  • 2,648 views

PPROPOSE PAR Mr.Abdelhamid Helali

PPROPOSE PAR Mr.Abdelhamid Helali

Statistics

Views

Total Views
2,648
Views on SlideShare
2,583
Embed Views
65

Actions

Likes
2
Downloads
135
Comments
1

2 Embeds 65

http://isimmdocs.blogspot.com 64
http://www.isimmdocs.blogspot.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • merci Mr c'est très interessant
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Chap2 dsp Chap2 dsp Presentation Transcript

  • Architectures des DSPs
  • Architecture générale d’un processeur CPU Unité de Unités de contrôle traitement Bus internes Mémoire Unité de Périphériques interne Communication et mémoire externes 3
  • Accès à la mémoire 4
  • Rappels : Bus  Le CPU est le maître du CPU BUS Périphérique bus  Il est le seul à écrire sur les bus adresse et contrôle  Le périphérique accepte adresses sur le bus données données  Lecture: il fournit la donnéeCPU Périphérique contrôle demandée  Ecriture : il récupère la donnée fournie par le CPUAdresses : sélection du périphérique  Haute impédance: il seet d’une donnée en son sein déconnecte du busDonnées : valeur de la donnée à échangerContrôle : lire / écrire / haute impédance 5
  • Rappels: le fonctionnement basique d’uneopération de calcul 1 2 CPU Mémoire 4 3 (1) Charger une instruction depuis la mémoire (2) Charger les opérandes depuis la mémoire (3) Effectuer les calculs (4) Stocker le résultat en mémoire 6
  • Architecture Von Neuman Mémoire CPU BUS Programme + Données Un seul chemin daccès à la mémoire Architecture des processeurs d’usage général (Pentium, 68000) Goulot détranglement pour laccès à la mémoire Pas de sécurisation matérielle du programme 7
  • Architecture Harvard Mémoire Programme CPU Mémoire Données Séparation des mémoires programme et données Moins de risque de corruption du programme Meilleure utilisation du CPU  Chargement du programme et des données en parallèle 8
  • Architecture Harvard modifiée Mémoire Programme Mémoire Programme + Données CPU Mémoire Données Mémoire programme contient des données Possibilité de charger 2 données en un cycle Utilisation classique en TNS  Mémoire Programme+Données → coefficients des filtres  Mémoire Données → échantillons d’entrée 9
  • 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 données  Combiné avec  mémoire multi-accès (plusieurs accès à la même mémoire en un cycle)  mémoire multi-blocs (accès simultané à deux blocs de mémoire distincts) Exemple du TMS320C54xx :  1 bus programme (P)  2 bus de lecture des données (C et D)  1 bus d’écriture des données (E) 10
  • Cache dinstructions DSP cache Mémoire Programme d’instructions + Données CPU 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 programme  Libère le bus pour des données Pas appliqué aux données  Problème de validation du temps réel 11
  • Mémoire interne sur les processeurs C54x Capacité en mémoire interne de différents modèles C54x 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 lexté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 larchitecture) 12
  • Bus externedans une architecture Harvard modifiée DSP Mémoire Programme + Données CPU Mémoire Données MUX Transfert entre les businternes et externe par • Limitation du nombre de brochesmultiplexage temporel • Réduction des coûts • Diminution des performances lors des accès au bus externe 13
  • Accès Direct à la Mémoire(DMA : Direct Memory Access) Mémoire Programme + Données CPU Mémoire Données interruptions DMA configuration •Accès DMA : entrées-sorties vers la mémoire interne • indépendant du CPU et des bus internes •Système dinterruptions "données reçues"/"données transmises" 14
  • Diagramme bloc du TMS320C5416 Program/Data ROM Program/Data RAM Mémoire 16K Words 128K Words JTAG Test/ interne D(15-0) Emulation Control MUXBus externe Program/Data Buses Timer A(23-0) MAC ALU DMA Muxed GP I/O 17 x 17 MPY 40-Bit ALU Ch 0 CMPS Operator 8/16-bit Host Port 40-Bit Adder Peripheral Bus (VITERBI) Ch 1 Interface (HPI) RND, SAT EXP Encoder Ch 2 Multichannel Buffered Serial Port (McBSP) Shifter Accumulators Ch 3 40-Bit ACC A Multichannel Buffered 40-Bit Barrel CPU ACC B (-16, 31)40-Bit Ch 4 Serial Port (McBSP) Ch 5 Multichannel Buffered Addressing Unit Serial Port (McBSP) 8 Auxiliary Registers PLL Clock Generator 2 Addressing Units S/W Waitstate Power Management Generator Entrées Sorties 15
  • Les Périphériques du C54x Timer Ports série  Port série synchrone  Port série bufferisé (BSP)  Port série bufferisé multi-canaux (McBSP)  Port série à multiplexage temporel (TDM) Contrôleur DMA à 6 canaux Port d’interface hôte (HPI) Broches accessibles par software  Broche XF (external flag) en écriture  Broche BIO en lecture Générateur de temps d’attente 16
  • Architecture interne du CPU 17
  • Structure interne du CPU 18
  • Unité de commande Chef d’orchestre du CPU Chargement des instructions  Compteur de programme (PC)  Registre d’instruction  Cache d’instructions Séquençage  Décodage des instructions  Pilotage des autres unités 19
  • Unités de traitement mathématique Calculs au format fixe  Multiplieur ou flottant  Multiplication et accumulation (MAC) Parallélisme entre les  ALU sous-unités  Opérations arithmétiques, logiques et de conversion entre formats Registres de données  Registre de décalage  pour stocker les opérandes et les résultats  Multiplication rapide par 2k  Unités spécialisées  Compare, Select and Store (Viterbi)  DCT 20
  • Unités de génération d’adresses Unités de traitement spéciales  Pilotées par le séquenceur  Calculs sur des entiers  Adresses mémoires Méthodes pré-programmées  Incrémentation  Décrémentation  Adressage circulaire  Incrémentation bit-reverse (pour la FFT) 21
  • Schéma de principe des échangesCPU pilotage Génération Génération Unités de Séquenceur adresses P adresses D calcul programme addr Bus data ctrl addr données Bus data ctrl Mémoire P Mémoire D périphériques 22
  • Fetch (lecture instruction) Génération Génération Unités de Séquenceur adresses P adresses D calcul programme addr Bus data ctrl addr données Bus data ctrl Mémoire P Mémoire D 23
  • Read/Write (lecture/écriture donnée) Génération Génération Unités de Séquenceur adresses P adresses D calcul programme addr Bus data ctrl addr données Bus data ctrl Mémoire P Mémoire D 24
  • Diagramme bloc du TMS320C54x Program/Data ROM Program/Data RAM Mémoire 16K Words 128K Words JTAG Test/ interne D(15-0) Emulation Control MUXBus externe Program/Data Buses Timer A(23-0) MAC ALU DMA Muxed GP I/O 17 x 17 MPY 40-Bit ALU Ch 0 CMPS Operator 8/16-bit Host Port 40-Bit Adder Peripheral Bus (VITERBI) Ch 1 Interface (HPI) Unités de RND, SAT EXP Encoder Ch 2 Multichannel Buffered calcul Shifter Accumulators Serial Port (McBSP) Ch 3 40-Bit ACC A Multichannel Buffered 40-Bit Barrel Ch 4 Serial Port (McBSP) (-16, 31) 40-Bit ACC B Ch 5 Multichannel Buffered Addressing Unit Serial Port (McBSP) Génération 8 Auxiliary Registers PLL Clock d’adresses 2 Addressing Units Generator S/W Waitstate Power Management Generator Entrées SortiesCPU 25
  • Structure interne du TMS320C54x Source : Texas Instruments TMS320C54x DSP Reference Set Vol 1 : CPU and Peripherals 26
  • Bus  Le bus programme PB sert à véhiculer les instructions et les coefficients stockés dans la mémoire programme. Ces données sont adressées par le bus d’adresse de la mémoire programme PAB  Trois bus d’accès aux données sont raccordés à l’unité centrale de calcul, à la mémoire de donnée, aux périphérique et aux circuits de générations d’adresse (programme et données). Ces bus CB, DB, et EB véhiculent les données des éléments adressés par CAB, DAB, et EAB respectivement. 27
  • Génération Génération dadresses dadresses Unité de controle programme données Bus Pprogramme Bus C / D lecture données Bus E écriture données 28
  • Unité de traitementnt mathématique  Unité arithmétique et logique(UAL)  Multiplieur-Accumulateur (MAC)  Registre à décalage  Unités spécialisées 29
  • Accumulateurs ALU Shifter ViterbiMAC 30
  • Unité Arithmétique et Logique (ALU)  Ce bloc effectue des calculs arithmétiques et logique  2 accumulateurs sur 40 bits : 39-32 31-16 15-0 AG AH AL 39-32 31-16 15-0 BG BH BL  Opérations entières et binaires  (+, -, inc, dec, et, ou, xor, shl, ...) 31
  • Registres IMR Registre Masque d’Interruption TREG Registre Temporaire IFR Registre de Statut d’Interruption TRN Registre de Transition ST0 Registre d’Etat 0 AR0 Registre Auxiliaire 0 (Index) ST1 Registre d’Etat 1 AR1-7 Registres Auxiliaires 1 à 7 PMST Registre de Contrôle de la Mémoire BK Registre d’Addressage Circulaire AL Accumulateur A (0-15) RC Compteur Répétion 1 Instruction AH Accumulateur A (16-31) RSA Première Addresse Répétition Bloc AG Accumulateur A (32-39) REA Dernière Addresse Répétition Bloc BRC Compteur Répétion d’un Bloc BL Accumulateur B (0-15) BH Accumulateur B (16-31) TIM Registre du Timer BG Accumulateur B (32-39) PRD Compteur de la Période de Timer TCR Registre de Contrôle du Timer SP Registre Pointeur de Pile 32
  • Multiplieur-accumulateur (MAC)  Rôle central dans un DSP  Plus de 50% des instructions Caractéristiques principales  Temps d’exécution = 1 cycle instruction  Structure pipeline  Un résultat par cycle horloge, si le pipeline est bien utilisé 33
  • Shifter (registre à décalage)  ce registre de 40 bits, sert à cadrer les données en provenant de la mémoire ou bien de l’accumulateur avant une opération dans ALU  Opérations de mise à l’échelle (Scaling) par puissance de deux  Indispensable pour éviter les dépassements de capacité  Son utilisation doit être maitrisée par le programmeur  Réduction de la précision des calculs  Nombre, emplacement et possibilités des Shifters très différents d’un DSP à un autre. 34
  • Protocole JTAG Permet de piloter les unités internes du DSP Intégré par le constructeur lors de la conception du chip Utile pour le prototypage et le débogage dapplications  Interruption momentanée en cours dexécution Donne accès en lecture/modification aux  Registres internes  Mémoires internes, et éventuellement externes  Ports dentrées/sorties 35
  • Pipelining Instructions Instruction Instruction 1 segmentées en étages Segmentation Exécution entrelacée de en étages plusieurs instructions  Chacune à une étage différent Fetch F1 Decode D1 Read R1 Géré par le séquenceur Execute X1 Augmentation de la Entrelacement fréquence dhorloge  Etages plus simples donc plus Fetch F1 F2 F3 F4 F5 rapides Decode D1 D2 D3 D4 Read R1 R2 R3 Execute X1 X2 36
  • Séquentiel vs pipeline étagetemps t1 t2 t3 t4 t5 t6 t7 t8 Fetch F1 F2 Decode D1 D2 Read R1 R2 Execute X1 X2 Exécution séquentielle étage temps t1 t2 t3 t4 t5 t6 t7 t8 Fetch F1 F2 F3 F4 F5 … … … Decode D1 D2 D3 D4 D5 … … Read R1 R2 R3 R4 R5 … Execute X1 X2 X3 X4 X5Chargement du pipeline Exécution avec pipeline 37
  • Pipelining Exemple du TMS320C54x 6 étages de traitement  Prefetch (P) : Incrémentation du PC (Program Counter)  Fetch (F) : Lecture de l’instruction en mémoire  Decode (D) : Décodage de l’instruction  Access (A) : Calcul des adresses des opérandes  Read (R) : Lecture des opérandes en mémoire et calcul de l’adresse du résultat  Execute (X) : Exécution et écriture en mémoire 38
  • Retards dans le pipeline Le pipeline atteint son plein rendement une fois qu’il est “plein” Une 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 (vidange du pipeline)  branchement non prévu  appel de sous-programme  interruption 39
  • Exemple de conflit daccès mémoire Programme et données dans une mémoire à 1 accès par cycleP1 F1 D1 A1 R1 X1 P2 F2 D2 A2 R2 X2 P3 F3 D3 A3 R3 X3 P4 -- -- -- F4 D4 A4 R4 X4 -- -- -- P5 F5 D5 A5 R5 X5 -- -- -- P6 F6 D6 A6 R6 Les lectures de données R1/R2/R3 sont en conflit avec les chargements dinstruction F4/F5/F6 Peut réduire les performances dau moins 50% 8
  • Résolution du conflit daccès mémoireProgramme et donnéesdans des mémoires accès séparés (Bus Programme/Bus Données)ou dans une même mémoire à accès double (DARAM) P1 F1 D1 A1 R1 X1 P2 F2 D2 A2 R2 X2 P3 F3 D3 A3 R3 X3 P4 F4 D4 A4 R4 X4 P5 F5 D5 A5 R5 X5 P6 F6 D6 A6 R6 X6 9
  • Bilan accès mémoire Program Data SARAM DARAM ROM ROM P Bus Mémoire externe A Interface D Bus C Bus D E Bus A retenir pour éviter les problèmes:  ROM/SARAM - 1 accès par bloc par cycle  DARAM - 2 accès par bloc par cycle 10
  • TMS320C62X Processeur àvirgule fixecomportant 2multiplieurs, 6 UALset 2 groupes de 16registres de 32 bits Instructions du typeRISC Le processeurpeut effectuer desopérations sur8/16/32 bits dedonnées. 43
  • TMS320C62X 44
  • TMS320C62X : groupe opérateursChaque groupe d’opérateurs dispose de : 3 UALs + 1 multiplieur (.L, .S, .D et .M) : .L : opérations arithmétiques et logiques et instruction de branchement. .S : opérations arithmétiques et logiques, de décalage, de branchement et de génération de constantes. .M : multiplieur câblé 16x16 .D : lecture, chargement et opérations arithmétiques. 16 registres de 32 bits non orthogonaux Chaque UAL est contrôlée par une instruction de 32bits. 45
  • TMS320C62X : groupe opérateurs A0 A1 a1 N A2 x1 Y a n xn A3 prod .M n 0 A4 Y . . MPY .M a1, x1, prod . ADD .L Y, prod, Y . .L A15 32 bits 46
  • VLIW (Very-Long-Instruction-Word)  Parallélisme géré par le compilateur  Contrôle simple mais compilateur complexe  Microarchitecture simple et performante  Mais taille de code importante  Généralement clusterisé (1 cluster : banc de registres + unités fonctionnelles)  Réduction de la complexité des chemins de données 47
  • VLIW (Very-Long-Instruction-Word) inst1 inst2 Instruction VLIW inst3 inst4 inst5 inst6 inst7 inst8 48
  • VLIW : exemple du TMS320C62x Instruction de 128 bits 8 sous-instructions de 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits L1 S1 M1 D1 D2 M2 S2 L2 + + + + + + + x x + 49
  • Représentation de Nombres Réels La représentation des nombres doit répondre à deux exigences contradictoires:  Précision: intervalle entre deux rationnels codés  doit être le plus petit possible  Dynamique: rapport entre le plus grand rationnel et le plus petit rationnel codés  doit être la plus étendue possible Dans ce contexte les unités de calcul des DSP travaillent  soit en format fixe (notation décimale)  soit en format flottant (notation scientifique) 50
  • Représentation en format fixe •Aussi appelée représentation à “virgule fixe” Définition "format Qk" : La représentation Qk du réel x correspond à la représentation complément à 2 (C2) de lentier y tel que: y round(2 k x)Propriétés: Partie fractionnaire codée sur k bits Partie entière codée sur N-k bits en C2Q0 désigne le cas particuler des entiers signés en C2 •Exemple: Le binaire 01011101 peut représenter : Q2 : 23.25 Q4 : 5.8125 Q7 : 0.7265625 51
  • Représentation en Format Fixe • Exemple: Q5 sur 8 bits • Partie entière codé sur 3 bits (dont 1 de signe) • Partie fractionnaire codée sur 5 bits • Valeurs comprises entre -4 et +3.96875 #/Poids -23 22 20 , 2-1 2-2 2-3 2-4 2-5 -4 1 0 0 0 0 0 0 0 -3.96875 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 3.9375 0 1 1 1 1 1 1 0 3.96875 0 1 1 1 1 1 1 1 52
  • Représentation en Format Fixe Précision: quantification uniforme de pas q q=2-k Dynamique: -2N-k-1 .. 2N-k-1-2-k Pour obtenir une dynamique sur l’intervalle [-1, 1[ ,utiliser le format QN-1 sur N bits Format Q15: sur 16 bits, le format Q15 permet de représenter tous les réels entre -1 et 1 avec une précision q=2-15 53
  • Représentation en Format Flottant • Aussi appelée représentation en “virgule flottante” est une représentation avec une précision finie, définie selon l’expression E x M 2• La mantisse M est exprimée sur m bits, détermine le nombre deavec un format Qm-1 en complément à 2 chiffres significatifs détermine la• L’exposant E est un entier signé sur e bits dynamiqueen binaire décalé m e N •Opération de normalisation: Pour rendre la représentation unique, M doit satisfaire en outre: 1 M 1 2 54
  • Représentation en Format Flottant• Exemples en 8 bits 01111 111 1 2 3 4 4 2 1 1 1 2 1 2 1 2 1 2 2 0.9375 2 0.46875 01111 110 1 2 3 4 4 2 0 2 1 2 1 2 1 2 1 2 2 0.9375 2 0.234375 10010 011 1 2 3 4 1 0 2 0 2 1 2 0 2 20 2 1 0.875 23 7 • La mantisse est codée sur 5 bits et l’exposant sur 3 bits en C2 55
  • Format virgule flottante IEEE 754 Format pour N=32 bits 1 bit 8 bits 23 bitssigne exposant fraction (partie fractionnaire de la mantisse) en binaire décalé C2 avec des codes spéciaux x = (-1)signe (1,fraction)2 2exposant-127 •Cas spéciaux Zéro: tous les bits à 0 Underflow: exposant = 000000002 Overflow: exposant = 111111112 56