56
DSP : Processeurs de Traitement du Signal

Chap2 dsp

Embed Size (px)

DESCRIPTION

PPROPOSE PAR Mr.Abdelhamid Helali

Citation preview

Page 1: Chap2 dsp

DSP : Processeurs de Traitement du Signal

Page 2: Chap2 dsp

Architectures des DSPs

Page 3: Chap2 dsp

3

Architecture générale d’un processeur

Unité decontrôle

Unités detraitement

Mémoireinterne

Unité deCommunication

Bus internes

CPU

Périphériqueset mémoire externes

Page 4: Chap2 dsp

4

Accès à la mémoire

Page 5: Chap2 dsp

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ériqueet d’une donnée en son sein

Données : valeur de la donnée à échanger

Page 6: Chap2 dsp

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

Page 7: Chap2 dsp

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 BUSMémoire

Programme+ Données

Page 8: Chap2 dsp

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

Page 9: Chap2 dsp

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 ProgrammeMémoire Programme

+ Données

Mémoire Données

Page 10: Chap2 dsp

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

Page 11: Chap2 dsp

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

cached’instructions

Page 12: Chap2 dsp

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

Page 13: Chap2 dsp

13

Bus externedans 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

Page 14: Chap2 dsp

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

Page 15: Chap2 dsp

15

Bus externe

Diagramme bloc du TMS320C5416

Muxed GP I/O

D(15-0)

A(23-0)

Program/Data Buses

Timer

Program/Data RAM128K Words

Ch 0

Ch 1

Ch 2

Ch 3

Ch 4

Ch 5

DMA

8/16-bit Host PortInterface (HPI)

Program/Data ROM16K Words

Pe

rip

he

ral

Bu

s

RND, SAT

17 x 17 MPY

40-Bit Adder

MAC

Shifter

40-Bit Barrel(-16, 31)

EXP Encoder

40-Bit ALUCMPS Operator

(VITERBI)

ALU

Accumulators

40-Bit ACC A

40-Bit ACC B

8 Auxiliary Registers

2 Addressing Units

Addressing Unit

Multichannel BufferedSerial Port (McBSP)

Multichannel BufferedSerial Port (McBSP)

Multichannel BufferedSerial Port (McBSP)

PLL Clock Generator

S/W WaitstateGeneratorPower Management

Mémoireinterne

EntréesSorties

JTAG Test/Emulation

Control

CPU

MU

X

Page 16: Chap2 dsp

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

Page 17: Chap2 dsp

17

Architecture interne du CPU

Page 18: Chap2 dsp

18

Structure interne du CPU

Page 19: Chap2 dsp

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

Page 20: Chap2 dsp

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

Page 21: Chap2 dsp

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)

Page 22: Chap2 dsp

22

Schéma de principe des échanges

addr

datactrl

addr

datactrl

Séquenceur

Bus

programm

eB

usdonnées

Générationadresses P

Générationadresses D

Unités decalcul

Mémoire P Mémoire D

CPU

périphériques

pilotage

Page 23: Chap2 dsp

23

Fetch (lecture instruction)

addr

datactrl

addr

datactrl

Séquenceur

Bus

programm

eB

usdonnées

Générationadresses P

Générationadresses D

Unités decalcul

Mémoire P Mémoire D

Page 24: Chap2 dsp

24

Read/Write (lecture/écriture donnée)

SéquenceurGénérationadresses P

Générationadresses D

Unités decalcul

Mémoire P Mémoire D

addr

datactrl

addr

datactrl

Bus

programm

eB

usdonnées

Page 25: Chap2 dsp

25

Bus externe

Diagramme bloc du TMS320C54x

Muxed GP I/O

D(15-0)

A(23-0)

Program/Data Buses

Timer

Program/Data RAM128K Words

Ch 0

Ch 1

Ch 2

Ch 3

Ch 4

Ch 5

DMA

8/16-bit Host PortInterface (HPI)

Program/Data ROM16K Words

Pe

rip

he

ral

Bu

s

RND, SAT

17 x 17 MPY

40-Bit Adder

MAC

Shifter

40-Bit Barrel(-16, 31)

EXP Encoder

40-Bit ALUCMPS Operator

(VITERBI)

ALU

Accumulators

40-Bit ACC A

40-Bit ACC B

8 Auxiliary Registers

2 Addressing Units

Addressing Unit

Multichannel BufferedSerial Port (McBSP)

Multichannel BufferedSerial Port (McBSP)

Multichannel BufferedSerial Port (McBSP)

PLL Clock Generator

S/W WaitstateGeneratorPower Management

Générationd’adresses

Unités decalcul

Mémoireinterne

EntréesSorties

JTAG Test/Emulation

Control

CPU

MU

X

Page 26: Chap2 dsp

26

Structure interne du TMS320C54x

Source : Texas InstrumentsTMS320C54x DSPReference SetVol 1 : CPU and Peripherals

Page 27: Chap2 dsp

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

Page 28: Chap2 dsp

28

Unité de controle

Générationd'adressesprogramme

Générationd'adressesdonnées

Bus Pprogramme

Bus C / Dlecture

données

Bus Eécriture

données

Page 29: Chap2 dsp

29

Unité arithmétique et logique(UAL) Multiplieur-Accumulateur (MAC) Registre à décalage Unités spécialisées

Unité de traitementnt mathématique

Page 30: Chap2 dsp

30

MAC

ALU

Shifter

Viterbi

Accumulateurs

Page 31: Chap2 dsp

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)

ALAHAG15-031-1639-32

BLBHBG15-031-1639-32

Page 32: Chap2 dsp

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

Page 33: Chap2 dsp

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)

Page 34: Chap2 dsp

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)

Page 35: Chap2 dsp

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

Page 36: Chap2 dsp

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

Segmentationen étages

Entrelacement

Page 37: Chap2 dsp

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

étage\temps 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

Page 38: Chap2 dsp

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

Page 39: Chap2 dsp

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

Page 40: Chap2 dsp

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%

Page 41: Chap2 dsp

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)

Page 42: Chap2 dsp

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

ROMSARAM DARAM

E Bus

C Bus

D Bus

P Bus

A

D

Inte

rfac

eM

émo

ire

exte

rne

10

Page 43: Chap2 dsp

TMS320C62X

43

Processeur à virgule fixe comportant 2

multiplieurs, 6 UALs et 2 groupes de 16registres de 32 bits

Instructions du type RISC Le processeur peut effectuer des opérations sur

8/16/32 bits de données.

Page 44: Chap2 dsp

44

TMS320C62X

Page 45: Chap2 dsp

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

Page 46: Chap2 dsp

46

TMS320C62X : groupe opérateurs

MPY .M a1, x1, prodADD .L Y, prod, Y

N

nnn xaY

0

32 bits

a1x1

prodY

.

.

.

.

.M

.L

A0

A1A2A3A4

A15

Page 47: Chap2 dsp

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

Page 48: Chap2 dsp

48

inst1

inst2

inst3

inst4

inst5

inst6

inst7

inst8

Instru

ction

VL

IW

VLIW (Very-Long-Instruction-Word)

Page 49: Chap2 dsp

49

VLIW : exemple du TMS320C62x

32 bits

Instruction de 128 bits8 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

++

Page 50: Chap2 dsp

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)

Page 51: Chap2 dsp

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 bitsPartie 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

Page 52: Chap2 dsp

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,

Page 53: Chap2 dsp

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

Page 54: Chap2 dsp

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 bitsen binaire décalé

EMx 2

Nem

• Opération de normalisation:Pour rendre la représentation unique, M doit satisfaire en outre:

12

1M

détermine le nombre de chiffres significatifs

détermine la dynamique

Page 55: Chap2 dsp

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

Page 56: Chap2 dsp

56

Format virgule flottante IEEE 754

Format pour N=32 bits

1 bitsigne

8 bitsexposant

en binaire décalé

23 bitsfraction (partie fractionnaire de la mantisse)

C2 avec des codes spéciaux

• Cas spéciauxZéro: tous les bits à 0Underflow: exposant = 000000002

Overflow: exposant = 111111112

x = (-1)signe × (1,fraction)2 × 2exposant-127