SlideShare a Scribd company logo
1 of 56
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ée
CPU                    Périphérique
         contrôle                                    demandée
                                                    Ecriture : il récupère la
                                                     donnée fournie par le CPU
Adresses : sélection du périphérique                Haute impédance: il se
et d’une donnée en son sein                          déconnecte du bus
Données : valeur de la donnée à échanger

Contrôle : lire / écrire / haute impédance

                                                                                       5
Rappels: le fonctionnement basique d’une
opé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 d'accès à la mémoire
   Architecture des processeurs d’usage général
    (Pentium, 68000)
   Goulot d'étranglement pour l'accè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 d'instructions
                                 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 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)


                                                                                               12
Bus externe
dans une architecture Harvard modifiée
                           DSP
                                 Mémoire Programme
                                    + Données
                 CPU

                                 Mémoire Données




                           MUX

 Transfert entre les bus
internes et externe par
                                  • Limitation du nombre de broches
multiplexage 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 d'interruptions "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
               MUX



Bus 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 échanges
CPU                              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
                   MUX



Bus 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
                                                                                                                Sorties
CPU

                                                                                                                          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
                          d'adresses   d'adresses
      Unité de controle   programme     données




     Bus P
programme


 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
                        Viterbi
MAC




                                            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
    d'applications
     Interruption   momentanée en cours d'exécution
   Donne accès en lecture/modification aux
     Registres internes
     Mémoires internes, et éventuellement externes
     Ports d'entré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 d'horloge
       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   X5


Chargement 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 d'accès mémoire
     Programme et données
     dans une mémoire à 1 accès par cycle

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


     Les lectures de données R1/R2/R3 sont en conflit avec les
     chargements d'instruction F4/F5/F6
     Peut réduire les performances d'au moins 50%
                                                                             8
Résolution du conflit d'accès mémoire
Programme et données
dans 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 fixe
comportant 2
multiplieurs, 6 UALs
et 2 groupes de 16
registres de 32 bits
  Instructions du type
RISC
   Le processeur
peut effectuer des
opérations sur
8/16/32 bits de
données.



                         43
TMS320C62X




             44
TMS320C62X : groupe opérateurs


Chaque 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 32
bits.


                                                                 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
 l'entier 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 C2

Q0 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 de
avec un format Qm-1 en complément à 2                chiffres significatifs

                                                         détermine la
• L’exposant E est un entier signé sur e bits
                                                          dynamique
en 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 bits
signe      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

More Related Content

What's hot

Embarqués temps réel
Embarqués temps réelEmbarqués temps réel
Embarqués temps réel
mikhailether
 
Chapitre 1 Rappels sur le filtrage numérique 1.pdf
Chapitre 1 Rappels sur le filtrage numérique 1.pdfChapitre 1 Rappels sur le filtrage numérique 1.pdf
Chapitre 1 Rappels sur le filtrage numérique 1.pdf
Heithem2
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
TheCrazyMan
 
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
Sana Aroussi
 
Chap2 physique
Chap2 physiqueChap2 physique
Chap2 physique
Ens Kouba
 
Chapitre ii mémoires
Chapitre ii mémoiresChapitre ii mémoires
Chapitre ii mémoires
Sana Aroussi
 

What's hot (20)

Chapitre 4: Architecture simplifiée d’un ordinateur
Chapitre 4: Architecture simplifiée d’un ordinateur Chapitre 4: Architecture simplifiée d’un ordinateur
Chapitre 4: Architecture simplifiée d’un ordinateur
 
Embarqués temps réel
Embarqués temps réelEmbarqués temps réel
Embarqués temps réel
 
Chapitre 1 Rappels sur le filtrage numérique 1.pdf
Chapitre 1 Rappels sur le filtrage numérique 1.pdfChapitre 1 Rappels sur le filtrage numérique 1.pdf
Chapitre 1 Rappels sur le filtrage numérique 1.pdf
 
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
 
Chapitre3 prog dsplf3
Chapitre3 prog dsplf3Chapitre3 prog dsplf3
Chapitre3 prog dsplf3
 
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptArchitecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
 
213 les capteurs tor
213 les capteurs tor213 les capteurs tor
213 les capteurs tor
 
Lamini&farsane traitement de_signale
Lamini&farsane traitement de_signaleLamini&farsane traitement de_signale
Lamini&farsane traitement de_signale
 
FiltrageNumérique.pptx
FiltrageNumérique.pptxFiltrageNumérique.pptx
FiltrageNumérique.pptx
 
Systeme embarque
Systeme embarqueSysteme embarque
Systeme embarque
 
Formation stm32
Formation stm32Formation stm32
Formation stm32
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Réseaux de transmission des données
Réseaux de transmission des donnéesRéseaux de transmission des données
Réseaux de transmission des données
 
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
 
Cours1
Cours1Cours1
Cours1
 
Traitement de signal 1
Traitement de signal 1Traitement de signal 1
Traitement de signal 1
 
Chap2 physique
Chap2 physiqueChap2 physique
Chap2 physique
 
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
 
Modulation Analogique
Modulation Analogique Modulation Analogique
Modulation Analogique
 
Chapitre ii mémoires
Chapitre ii mémoiresChapitre ii mémoires
Chapitre ii mémoires
 

Viewers also liked (7)

DSP Processor
DSP Processor DSP Processor
DSP Processor
 
Lecture: Digital Signal Processing Batch 2009
Lecture: Digital Signal Processing Batch 2009Lecture: Digital Signal Processing Batch 2009
Lecture: Digital Signal Processing Batch 2009
 
Digital Signal Processing
Digital Signal Processing Digital Signal Processing
Digital Signal Processing
 
Digital Signal Processors - DSP's
Digital Signal Processors - DSP'sDigital Signal Processors - DSP's
Digital Signal Processors - DSP's
 
DIGITAL SIGNAL PROCESSING
DIGITAL SIGNAL PROCESSINGDIGITAL SIGNAL PROCESSING
DIGITAL SIGNAL PROCESSING
 
DSP architecture
DSP architectureDSP architecture
DSP architecture
 
Dsp ppt
Dsp pptDsp ppt
Dsp ppt
 

Similar to Chap2 dsp

Chap2dsp 120209101928-phpapp02
Chap2dsp 120209101928-phpapp02Chap2dsp 120209101928-phpapp02
Chap2dsp 120209101928-phpapp02
Fathi Kallel
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dsp
gharbisalah
 
Cm5 archi ordinateur
Cm5 archi ordinateurCm5 archi ordinateur
Cm5 archi ordinateur
formateur3
 
Introduction à l’architecture des ordinateurs
Introduction à l’architecture des ordinateursIntroduction à l’architecture des ordinateurs
Introduction à l’architecture des ordinateurs
Abdoulaye Dieng
 
Les composants informatique
Les composants informatiqueLes composants informatique
Les composants informatique
David Begue
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et bus
Sana Aroussi
 

Similar to Chap2 dsp (20)

chapitre222 (1).pptx
chapitre222 (1).pptxchapitre222 (1).pptx
chapitre222 (1).pptx
 
Chap2dsp 120209101928-phpapp02
Chap2dsp 120209101928-phpapp02Chap2dsp 120209101928-phpapp02
Chap2dsp 120209101928-phpapp02
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dsp
 
Cm5 archi ordinateur
Cm5 archi ordinateurCm5 archi ordinateur
Cm5 archi ordinateur
 
Introduction à l’architecture des ordinateurs
Introduction à l’architecture des ordinateursIntroduction à l’architecture des ordinateurs
Introduction à l’architecture des ordinateurs
 
Architecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresArchitecture des ordinateurs : memoires
Architecture des ordinateurs : memoires
 
Architecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseArchitecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-base
 
Cours module i partie 1
Cours module i partie 1Cours module i partie 1
Cours module i partie 1
 
Architecture_Ordinateur_preparations.ppt
Architecture_Ordinateur_preparations.pptArchitecture_Ordinateur_preparations.ppt
Architecture_Ordinateur_preparations.ppt
 
173286.ppt
173286.ppt173286.ppt
173286.ppt
 
Chapitre 2 - Structure de base d_un ordinateur.pdf
Chapitre 2 - Structure de base d_un ordinateur.pdfChapitre 2 - Structure de base d_un ordinateur.pdf
Chapitre 2 - Structure de base d_un ordinateur.pdf
 
Composantes hardware du mainframe
Composantes hardware du mainframeComposantes hardware du mainframe
Composantes hardware du mainframe
 
Architecture des systèmes distribue.pptx
Architecture des systèmes distribue.pptxArchitecture des systèmes distribue.pptx
Architecture des systèmes distribue.pptx
 
chapitre 01.ppt
chapitre 01.pptchapitre 01.ppt
chapitre 01.ppt
 
Cours système d’exploitation partie1
Cours système d’exploitation partie1Cours système d’exploitation partie1
Cours système d’exploitation partie1
 
Les composants informatique
Les composants informatiqueLes composants informatique
Les composants informatique
 
Composants d'une carte mère
Composants d'une carte mèreComposants d'une carte mère
Composants d'une carte mère
 
Composants
ComposantsComposants
Composants
 
Atelier 208
Atelier 208Atelier 208
Atelier 208
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et bus
 

Recently uploaded

L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
Faga1939
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 

Recently uploaded (13)

La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 

Chap2 dsp

  • 1.
  • 3. 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
  • 4. Accès à la mémoire 4
  • 5. 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ée CPU Périphérique contrôle demandée  Ecriture : il récupère la donnée fournie par le CPU Adresses : sélection du périphérique  Haute impédance: il se et d’une donnée en son sein déconnecte du bus Données : valeur de la donnée à échanger Contrôle : lire / écrire / haute impédance 5
  • 6. Rappels: le fonctionnement basique d’une opé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
  • 7. Architecture Von Neuman Mémoire CPU BUS Programme + Données  Un seul chemin d'accès à la mémoire  Architecture des processeurs d’usage général (Pentium, 68000)  Goulot d'étranglement pour l'accès à la mémoire  Pas de sécurisation matérielle du programme 7
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. Cache d'instructions 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
  • 12. 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 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) 12
  • 13. Bus externe dans une architecture Harvard modifiée DSP Mémoire Programme + Données CPU Mémoire Données MUX Transfert entre les bus internes et externe par • Limitation du nombre de broches multiplexage temporel • Réduction des coûts • Diminution des performances lors des accès au bus externe 13
  • 14. 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 d'interruptions "données reçues"/"données transmises" 14
  • 15. Diagramme bloc du TMS320C5416 Program/Data ROM Program/Data RAM Mémoire 16K Words 128K Words JTAG Test/ interne D(15-0) Emulation Control MUX Bus 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
  • 16. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. Schéma de principe des échanges CPU 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
  • 23. 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
  • 24. 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
  • 25. Diagramme bloc du TMS320C54x Program/Data ROM Program/Data RAM Mémoire 16K Words 128K Words JTAG Test/ interne D(15-0) Emulation Control MUX Bus 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 Sorties CPU 25
  • 26. Structure interne du TMS320C54x Source : Texas Instruments TMS320C54x DSP Reference Set Vol 1 : CPU and Peripherals 26
  • 27. 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
  • 28. Génération Génération d'adresses d'adresses Unité de controle programme données Bus P programme Bus C / D lecture données Bus E écriture données 28
  • 29. Unité de traitementnt mathématique  Unité arithmétique et logique(UAL)  Multiplieur-Accumulateur (MAC)  Registre à décalage  Unités spécialisées 29
  • 30. Accumulateurs ALU Shifter Viterbi MAC 30
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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 d'applications  Interruption momentanée en cours d'exécution  Donne accès en lecture/modification aux  Registres internes  Mémoires internes, et éventuellement externes  Ports d'entrées/sorties 35
  • 36. 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 d'horloge  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
  • 37. 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 X5 Chargement du pipeline Exécution avec pipeline 37
  • 38. 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
  • 39. 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
  • 40. Exemple de conflit d'accès mémoire Programme et données dans une mémoire à 1 accès par cycle 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 Les lectures de données R1/R2/R3 sont en conflit avec les chargements d'instruction F4/F5/F6 Peut réduire les performances d'au moins 50% 8
  • 41. Résolution du conflit d'accès mémoire Programme et données dans 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
  • 42. 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
  • 43. TMS320C62X Processeur à virgule fixe comportant 2 multiplieurs, 6 UALs et 2 groupes de 16 registres de 32 bits Instructions du type RISC Le processeur peut effectuer des opérations sur 8/16/32 bits de données. 43
  • 45. TMS320C62X : groupe opérateurs Chaque 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 32 bits. 45
  • 46. 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
  • 47. 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
  • 48. VLIW (Very-Long-Instruction-Word) inst1 inst2 Instruction VLIW inst3 inst4 inst5 inst6 inst7 inst8 48
  • 49. 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
  • 50. 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
  • 51. 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 l'entier 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 C2 Q0 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
  • 52. 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
  • 53. 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
  • 54. 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 de avec un format Qm-1 en complément à 2 chiffres significatifs détermine la • L’exposant E est un entier signé sur e bits dynamique en 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
  • 55. 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
  • 56. Format virgule flottante IEEE 754  Format pour N=32 bits 1 bit 8 bits 23 bits signe 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