Architectures des DSPs
3
Architecture générale d’un processeur
Unité de
contrôle
Unités de
traitement
Mémoire
interne
Unité de
Communication
Bus ...
4
Accès à la mémoire
5
Rappels : Bus
 Le CPU est le maître du
bus
 Il est le seul à écrire sur les
bus adresse et contrôle
 Le périphérique ...
6
Rappels: le fonctionnement basique d’une
opération de calcul
 (1) Charger une instruction depuis la mémoire
 (2) Charg...
7
Architecture Von Neuman
 Un seul chemin d'accès à la mémoire
 Architecture des processeurs d’usage général
(Pentium, 6...
8
Architecture Harvard
 Séparation des mémoires programme et données
 Moins de risque de corruption du programme
 Meill...
9
Architecture Harvard modifiée
 Mémoire programme contient des données
 Possibilité de charger 2 données en un cycle
 ...
10
Accès mémoire multi-port
 Plusieurs bus de données
 Accès simultané à plusieurs données
 Combiné avec
 mémoire mult...
11
Cache d'instructions
 Cache = mémoire associative rapide
 Contient les dernières instructions exécutées
 Utile en ca...
12
Mémoire interne sur les processeurs C54x
 Plusieurs types de RAM incluse sur le chip
 Single access (SARAM) : un accè...
13
Bus externe
dans une architecture Harvard modifiée
DSP
Transfert entre les bus
internes et externe par
multiplexage tem...
14
Accès Direct à la Mémoire
(DMA : Direct Memory Access)
DMA
•Accès DMA : entrées-sorties vers la mémoire interne
• indép...
15
Bus externe
Diagramme bloc du TMS320C5416
Muxed GP I/O
D(15-0)
A(23-0)
Program/Data Buses
Timer
Program/Data RAM
128K W...
16
Les Périphériques du C54x
 Timer
 Ports série
 Port série synchrone
 Port série bufferisé (BSP)
 Port série buffer...
17
Architecture interne du CPU
18
Structure interne du CPU
19
Unité de commande
 Chef d’orchestre du CPU
 Chargement des instructions
 Compteur de programme (PC)
 Registre d’ins...
20
Unités de traitement mathématique
 Calculs au format fixe
ou flottant
 Parallélisme entre les
sous-unités
 Registres...
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...
22
Schéma de principe des échanges
addr
data
ctrl
addr
data
ctrl
Séquenceur
Bus
programme
Bus
données
Génération
adresses ...
23
Fetch (lecture instruction)
addr
data
ctrl
addr
data
ctrl
Séquenceur
Bus
programme
Bus
données
Génération
adresses P
Gé...
24
Read/Write (lecture/écriture donnée)
Séquenceur
Génération
adresses P
Génération
adresses D
Unités de
calcul
Mémoire P ...
25
Bus externe
Diagramme bloc du TMS320C54x
Muxed GP I/O
D(15-0)
A(23-0)
Program/Data Buses
Timer
Program/Data RAM
128K Wo...
26
Structure interne du
TMS320C54x
Source : Texas Instruments
TMS320C54x DSP
Reference Set
Vol 1 : CPU and Peripherals
27
 Le bus programme PB sert à véhiculer les
instructions et les coefficients stockés dans la
mémoire programme. Ces donn...
28
Unité de controle
Génération
d'adresses
programme
Génération
d'adresses
données
Bus P
programme
Bus C / D
lecture
donné...
29
 Unité arithmétique et logique(UAL)
 Multiplieur-Accumulateur (MAC)
 Registre à décalage
 Unités spécialisées
Unité...
30
MAC
ALU
Shifter
Viterbi
Accumulateurs
31
 Ce bloc effectue des calculs arithmétiques et
logique
 2 accumulateurs sur 40 bits :
 Opérations entières et binair...
32
IMR Registre Masque d’Interruption
IFR Registre de Statut d’Interruption
ST0 Registre d’Etat 0
ST1 Registre d’Etat 1
AL...
33
 Rôle central dans un DSP
 Plus de 50% des instructions
Caractéristiques principales
 Temps d’exécution = 1 cycle i...
34
 ce registre de 40 bits, sert à cadrer les données en
provenant de la mémoire ou bien de l’accumulateur avant
une opér...
35
Protocole JTAG
 Permet de piloter les unités internes du DSP
 Intégré par le constructeur lors de la
conception du ch...
36
Pipelining
 Instructions
segmentées en étages
 Exécution entrelacée de
plusieurs instructions
 Chacune à une étage d...
37
Séquentiel vs pipeline
étage  temps t1 t2 t3 t4 t5 t6 t7 t8
Fetch F1 F2 F3 F4 F5 … … …
Decode D1 D2 D3 D4 D5 … …
Read R...
38
Pipelining
 Exemple du TMS320C54x
 6 étages de traitement
 Prefetch (P) : Incrémentation du PC
(Program Counter)
 F...
39
Retards dans le pipeline
 Le pipeline atteint son plein rendement une
fois qu’il est “plein”
 Une retard peut se prod...
Exemple de conflit d'accès mémoire
P1
P2
F1 D1
P3
F2
A1
D2
P4
F3 D3
A2
--
--
R1 X1
A3
--
--
--
R2 X2
--
--
--
R3 X3
P5
--
...
Résolution du conflit d'accès mémoire
P1 F1 D1 A1 R1 X1
P2 F2
P3 F3 D3 A3 R3 X3
D2 A2 R2 X2
P4 F4 D4 A4 R4 X4
P5 F5 D5 A5 ...
Bilan accès mémoire
A retenir pour éviter les problèmes:
 ROM/SARAM - 1 accès par bloc par cycle
 DARAM - 2 accès par bl...
TMS320C62X
43
Processeur à
virgule fixe
comportant 2
multiplieurs, 6 UALs
et 2 groupes de 16
registres de 32 bits
Instruct...
44
TMS320C62X
45
Chaque groupe d’opérateurs dispose de :
3 UALs + 1 multiplieur (.L, .S, .D et .M) :
.L : opérations arithmétiques et lo...
46
TMS320C62X : groupe opérateurs
MPY .M a1, x1, prod
ADD .L Y, prod, Y


N
n
nn xaY
0
32 bits
a1
x1
prod
Y
.
.
.
.
.M
...
47
VLIW (Very-Long-Instruction-Word)
 Parallélisme géré par le compilateur
 Contrôle simple mais compilateur complexe
 ...
48
inst1
inst2
inst3
inst4
inst5
inst6
inst7
inst8
InstructionVLIWVLIW (Very-Long-Instruction-Word)
49
VLIW : exemple du TMS320C62x
32 bits
Instruction de 128 bits
8 sous-instructions de 32 bits
32 bits 32 bits 32 bits 32 ...
50
Représentation de Nombres Réels
 La représentation des nombres doit répondre à deux
exigences contradictoires:
 Préci...
51
Représentation en format fixe
•Aussi appelée représentation à “virgule fixe”
Définition "format Qk" :
La représentation...
52
Représentation en Format Fixe
• Exemple: Q5 sur 8 bits
• Partie entière codé sur 3 bits (dont 1 de signe)
• Partie frac...
53
Représentation en Format Fixe
Pour obtenir une dynamique sur l’intervalle [-1, 1[ ,utiliser le format
QN-1 sur N bits
F...
54
Représentation en Format Flottant
• Aussi appelée représentation en “virgule flottante”
est une représentation avec une...
55
11101111
   
46875.029375.0221212121 11244321
 
Représentation en Format Flottant
• Exemples en ...
56
Format virgule flottante IEEE 754
 Format pour N=32 bits
1 bit
signe
8 bits
exposant
en binaire décalé
23 bits
fractio...
Chap2dsp 120209101928-phpapp02
Prochain SlideShare
Chargement dans…5
×

Chap2dsp 120209101928-phpapp02

412 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
412
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
4
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Schéma copié de Intro to DSP Prof. Brian L. Evans
  • Chap2dsp 120209101928-phpapp02

    1. 1. Architectures des DSPs
    2. 2. 3 Architecture générale d’un processeur Unité de contrôle Unités de traitement Mémoire interne Unité de Communication Bus internes CPU Périphériques et mémoire externes
    3. 3. 4 Accès à la mémoire
    4. 4. 5 Rappels : Bus  Le CPU est le maître du bus  Il est le seul à écrire sur les bus adresse et contrôle  Le périphérique accepte 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ériqueCPU BUS PériphériqueCPU adresses données contrôle Contrôle : lire / écrire / haute impédance Adresses : sélection du périphérique et d’une donnée en son sein Données : valeur de la donnée à échanger
    5. 5. 6 Rappels: le fonctionnement basique d’une opération de calcul  (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 MémoireCPU 1 2 3 4
    6. 6. 7 Architecture Von Neuman  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 CPU BUS Mémoire Programme + Données
    7. 7. 8 Architecture Harvard  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 Mémoire Programme Mémoire Données CPU
    8. 8. 9 Architecture Harvard modifiée  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 CPU Mémoire Programme Mémoire Programme + Données Mémoire Données
    9. 9. 10 Accès mémoire multi-port  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) CPU Mémoire Programme + Données Mémoire Données
    10. 10. 11 Cache d'instructions  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 DSP Mémoire Programme + Données Mémoire Données CPU cache d’instructions
    11. 11. 12 Mémoire interne sur les processeurs 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) Capacité en mémoire interne de différents modèles C54x
    12. 12. 13 Bus externe dans une architecture Harvard modifiée DSP Transfert entre les bus internes et externe par multiplexage temporel • Limitation du nombre de broches • Réduction des coûts • Diminution des performances lors des accès au bus externe MUX CPU Mémoire Programme + Données Mémoire Données
    13. 13. 14 Accès Direct à la Mémoire (DMA : Direct Memory Access) DMA •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" CPU Mémoire Programme + Données Mémoire Données interruptions configuration
    14. 14. 15 Bus externe Diagramme bloc du TMS320C5416 Muxed GP I/O D(15-0) A(23-0) Program/Data Buses Timer Program/Data RAM 128K Words Ch 0 Ch 1 Ch 2 Ch 3 Ch 4 Ch 5 DMA 8/16-bit Host Port Interface (HPI) Program/Data ROM 16K Words PeripheralBus RND, SAT 17 x 17 MPY 40-Bit Adder MAC Shifter 40-Bit Barrel (-16, 31) EXP Encoder 40-Bit ALU CMPS Operator (VITERBI) ALU Accumulators 40-Bit ACC A 40-Bit ACC B 8 Auxiliary Registers 2 Addressing Units Addressing Unit Multichannel Buffered Serial Port (McBSP) Multichannel Buffered Serial Port (McBSP) Multichannel Buffered Serial Port (McBSP) PLL Clock Generator S/W Waitstate GeneratorPower Management Mémoire interne Entrées Sorties JTAG Test/ Emulation Control CPU MUX
    15. 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. 16. 17 Architecture interne du CPU
    17. 17. 18 Structure interne du CPU
    18. 18. 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. 19. 20 Unités de traitement mathématique  Calculs au format fixe ou flottant  Parallélisme entre les sous-unités  Registres de données  pour stocker les opérandes et les résultats  Multiplieur  Multiplication et accumulation (MAC)  ALU  Opérations arithmétiques, logiques et de conversion entre formats  Registre de décalage  Multiplication rapide par 2k  Unités spécialisées  Compare, Select and Store (Viterbi)  DCT
    20. 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. 21. 22 Schéma de principe des échanges addr data ctrl addr data ctrl Séquenceur Bus programme Bus données Génération adresses P Génération adresses D Unités de calcul Mémoire P Mémoire D CPU périphériques pilotage
    22. 22. 23 Fetch (lecture instruction) addr data ctrl addr data ctrl Séquenceur Bus programme Bus données Génération adresses P Génération adresses D Unités de calcul Mémoire P Mémoire D
    23. 23. 24 Read/Write (lecture/écriture donnée) Séquenceur Génération adresses P Génération adresses D Unités de calcul Mémoire P Mémoire D addr data ctrl addr data ctrl Bus programme Bus données
    24. 24. 25 Bus externe Diagramme bloc du TMS320C54x Muxed GP I/O D(15-0) A(23-0) Program/Data Buses Timer Program/Data RAM 128K Words Ch 0 Ch 1 Ch 2 Ch 3 Ch 4 Ch 5 DMA 8/16-bit Host Port Interface (HPI) Program/Data ROM 16K Words PeripheralBus RND, SAT 17 x 17 MPY 40-Bit Adder MAC Shifter 40-Bit Barrel (-16, 31) EXP Encoder 40-Bit ALU CMPS Operator (VITERBI) ALU Accumulators 40-Bit ACC A 40-Bit ACC B 8 Auxiliary Registers 2 Addressing Units Addressing Unit Multichannel Buffered Serial Port (McBSP) Multichannel Buffered Serial Port (McBSP) Multichannel Buffered Serial Port (McBSP) PLL Clock Generator S/W Waitstate GeneratorPower Management Génération d’adresses Unités de calcul Mémoire interne Entrées Sorties JTAG Test/ Emulation Control CPU MUX
    25. 25. 26 Structure interne du TMS320C54x Source : Texas Instruments TMS320C54x DSP Reference Set Vol 1 : CPU and Peripherals
    26. 26. 27  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. Bus
    27. 27. 28 Unité de controle Génération d'adresses programme Génération d'adresses données Bus P programme Bus C / D lecture données Bus E écriture données
    28. 28. 29  Unité arithmétique et logique(UAL)  Multiplieur-Accumulateur (MAC)  Registre à décalage  Unités spécialisées Unité de traitementnt mathématique
    29. 29. 30 MAC ALU Shifter Viterbi Accumulateurs
    30. 30. 31  Ce bloc effectue des calculs arithmétiques et logique  2 accumulateurs sur 40 bits :  Opérations entières et binaires  (+, -, inc, dec, et, ou, xor, shl, ...) Unité Arithmétique et Logique (ALU) ALAHAG 15-031-1639-32 BLBHBG 15-031-1639-32
    31. 31. 32 IMR Registre Masque d’Interruption IFR Registre de Statut d’Interruption ST0 Registre d’Etat 0 ST1 Registre d’Etat 1 AL Accumulateur A (0-15) AH Accumulateur A (16-31) AG Accumulateur A (32-39) BL Accumulateur B (0-15) BH Accumulateur B (16-31) BG Accumulateur B (32-39) TREG Registre Temporaire AR0 Registre Auxiliaire 0 (Index) AR1-7 Registres Auxiliaires 1 à 7 SP Registre Pointeur de Pile BK Registre d’Addressage Circulaire RC Compteur Répétion 1 Instruction RSA Première Addresse Répétition Bloc REA Dernière Addresse Répétition Bloc BRC Compteur Répétion d’un Bloc TIM Registre du Timer PRD Compteur de la Période de Timer TRN Registre de Transition TCR Registre de Contrôle du Timer PMST Registre de Contrôle de la Mémoire Registres
    32. 32. 33  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é Multiplieur-accumulateur (MAC)
    33. 33. 34  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. Shifter (registre à décalage)
    34. 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. 35. 36 Pipelining  Instructions segmentées en étages  Exécution entrelacée de plusieurs instructions  Chacune à une étage différent  Géré par le séquenceur  Augmentation de la fréquence d'horloge  Etages plus simples donc plus rapides Fetch F1 Decode D1 Read R1 Execute X1 Instruction Instruction 1 Fetch F1 F2 F3 F4 F5 Decode D1 D2 D3 D4 Read R1 R2 R3 Execute X1 X2 Segmentation en étages Entrelacement
    36. 36. 37 Séquentiel vs pipeline é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 étagetemps t1 t2 t3 t4 t5 t6 t7 t8 Fetch F1 F2 Decode D1 D2 Read R1 R2 Execute X1 X2 Chargement du pipeline Exécution avec pipeline Exécution séquentielle
    37. 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. 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. 39. Exemple de conflit d'accès mémoire P1 P2 F1 D1 P3 F2 A1 D2 P4 F3 D3 A2 -- -- R1 X1 A3 -- -- -- R2 X2 -- -- -- R3 X3 P5 -- F4 D4 P6 F5 A4 D5 F6 A5 D6 R4 X4 A6 R5 X5 R6 8 Programme et données dans une mémoire à 1 accès par cycle 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%
    40. 40. Résolution du conflit d'accès mémoire P1 F1 D1 A1 R1 X1 P2 F2 P3 F3 D3 A3 R3 X3 D2 A2 R2 X2 P4 F4 D4 A4 R4 X4 P5 F5 D5 A5 R5 X5 P6 F6 D6 A6 R6 X6 9 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)
    41. 41. Bilan accès mémoire A retenir pour éviter les problèmes:  ROM/SARAM - 1 accès par bloc par cycle  DARAM - 2 accès par bloc par cycle Program ROM Data ROM SARAM DARAM E Bus C Bus D Bus P Bus A D Interface Mémoireexterne 10
    42. 42. TMS320C62X 43 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. 43. 44 TMS320C62X
    44. 44. 45 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. TMS320C62X : groupe opérateurs
    45. 45. 46 TMS320C62X : groupe opérateurs MPY .M a1, x1, prod ADD .L Y, prod, Y   N n nn xaY 0 32 bits a1 x1 prod Y . . . . .M .L A0 A1 A2 A3 A4 A15
    46. 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. 47. 48 inst1 inst2 inst3 inst4 inst5 inst6 inst7 inst8 InstructionVLIWVLIW (Very-Long-Instruction-Word)
    48. 48. 49 VLIW : exemple du TMS320C62x 32 bits Instruction de 128 bits 8 sous-instructions de 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits L1 M2D2 S2 L2S1 + + + + + x + M1 x D1 ++
    49. 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. 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: )2round( xy k  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. 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 00000001-4 10000001-3.96875 000000000 011111103.9375 111111103.96875 #/Poids -23 22 20 2-1 2-2 2-3 2-4 2-5 ,
    52. 52. 53 Représentation en Format Fixe 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 Précision: quantification uniforme de pas q q=2-k Dynamique: -2N-k-1 .. 2N-k-1-2-k
    53. 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 • La mantisse M est exprimée sur m bits, avec un format Qm-1 en complément à 2 • L’exposant E est un entier signé sur e bits en binaire décalé E Mx 2 Nem  •Opération de normalisation: Pour rendre la représentation unique, M doit satisfaire en outre: 1 2 1  M détermine le nombre de chiffres significatifs détermine la dynamique
    54. 54. 55 11101111     46875.029375.0221212121 11244321   Représentation en Format Flottant • Exemples en 8 bits • La mantisse est codée sur 5 bits et l’exposant sur 3 bits en C2 11001111     234375.029375.0221212121 20244321   01110010     72875.02202120201 31204321  
    55. 55. 56 Format virgule flottante IEEE 754  Format pour N=32 bits 1 bit signe 8 bits exposant en binaire décalé 23 bits fraction (partie fractionnaire de la mantisse) C2 avec des codes spéciaux •Cas spéciaux Zéro: tous les bits à 0 Underflow: exposant = 000000002 Overflow: exposant = 111111112 x = (-1)signe × (1,fraction)2 × 2exposant-127

    ×