Vous êtes sur la page 1sur 56

DSP : Processeurs de

Traitement du Signal

Architectures des DSPs

Architecture gnrale dun processeur

Unit de
contrle

CPU

Units de
traitement

Bus internes

Mmoire
interne

Unit de
Communication

Priphriques
et mmoire externes

Accs la mmoire

Rappels : Bus
CPU

BUS

Priphrique

Le CPU est le matre du


bus

adresses
CPU

donnes
contrle

Priphrique

Adresses : slection du priphrique


et dune donne en son sein
Donnes : valeur de la donne changer

Il est le seul crire sur les


bus adresse et contrle

Le priphrique accepte
sur le bus donnes

Lecture: il fournit la donne


demande
Ecriture : il rcupre la
donne fournie par le CPU
Haute impdance: il se
dconnecte du bus

Contrle : lire / crire / haute impdance


5

Rappels: le fonctionnement basique dune


opration de calcul
1
2

Mmoire

CPU
4
3

(1) Charger une instruction depuis la mmoire


(2) Charger les oprandes depuis la mmoire
(3) Effectuer les calculs
(4) Stocker le rsultat en mmoire
6

Architecture Von Neuman

CPU

BUS

Mmoire
Programme
+ Donnes

Un seul chemin d'accs la mmoire


Architecture des processeurs dusage gnral
(Pentium, 68000)
Goulot d'tranglement pour l'accs la mmoire
Pas de scurisation matrielle du programme
7

Architecture Harvard
Mmoire Programme

CPU
Mmoire Donnes

Sparation des mmoires programme et donnes


Moins de risque de corruption du programme
Meilleure utilisation du CPU

Chargement du programme et des donnes en parallle

Architecture Harvard modifie


Mmoire Programme
Mmoire Programme
+ Donnes

CPU
Mmoire Donnes

Mmoire programme contient des donnes


Possibilit de charger 2 donnes en un cycle
Utilisation classique en TNS

Mmoire Programme+Donnes coefficients des filtres


Mmoire Donnes
chantillons dentre

Accs mmoire multi-port


Mmoire Programme
+ Donnes

CPU
Mmoire Donnes

Plusieurs bus de donnes

Accs simultan plusieurs donnes


Combin avec

mmoire multi-accs (plusieurs accs la mme mmoire en un cycle)


mmoire multi-blocs (accs simultan deux blocs de mmoire distincts)

Exemple du TMS320C54xx :

1 bus programme (P)


2 bus de lecture des donnes (C et D)
1 bus dcriture des donnes (E)
10

Cache d'instructions
DSP
cache
dinstructions

Mmoire Programme
+ Donnes

CPU
Mmoire Donnes

Cache = mmoire associative rapide

Utile en cas de boucle

Contient les dernires instructions excutes


Accs aux instructions sans accs en mmoire programme
Libre le bus pour des donnes

Pas appliqu aux donnes

Problme de validation du temps rel


11

Mmoire interne sur les processeurs C54x


Capacit en mmoire interne de diffrents modles C54x

Plusieurs types de RAM incluse sur le chip

Single access (SARAM) : un accs par cycle


Dual access (DARAM) : deux accs par cycle
Two-way shared : deux accs par cycle mme depuis l'extrieur

DARAM dcoupe en blocs

Accs simultan deux blocs de mmoire diffrents


2x2=4 accs par cycle en thorie (en ralit limit par le reste de l'architecture)
12

Bus externe
dans une architecture Harvard modifie
DSP

Mmoire Programme
+ Donnes

CPU
Mmoire Donnes

MUX

Transfert entre les bus


internes et externe par
multiplexage temporel

Limitation du nombre de broches


Rduction des cots
Diminution des performances
lors des accs au bus externe
13

Accs Direct la Mmoire


(DMA : Direct Memory Access)
Mmoire Programme
+ Donnes

CPU
Mmoire Donnes

interruptions

DMA

configuration

Accs DMA : entres-sorties vers la mmoire interne


indpendant du CPU et des bus internes
Systme d'interruptions "donnes reues"/"donnes transmises"
14

Diagramme bloc du TMS320C5416


Program/Data ROM
16K Words

Program/Data RAM
128K Words

JTAG Test/
Emulation
Control

Bus externe

MUX

D(15-0)

Mmoire
interne

Program/Data Buses
Timer

A(23-0)
MAC
17 x 17 MPY

ALU
40-Bit ALU

40-Bit Adder

CMPS Operator
(VITERBI)

Ch 1

RND, SAT

EXP Encoder

Ch 2

Shifter

Accumulators
40-Bit ACC A

Ch 3

Addressing Unit
8 Auxiliary Registers
2 Addressing Units
Power Management

Muxed GP I/O

Ch 0

Ch 4
Ch 5

Peripheral Bus

CPU40-Bit ACC B

40-Bit Barrel
(-16, 31)

DMA

8/16-bit Host Port


Interface (HPI)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)

PLL Clock
Generator
S/W Waitstate
Generator

15

Entres
Sorties

Les Priphriques du C54x

Timer
Ports srie
Port srie synchrone
Port srie bufferis (BSP)
Port srie bufferis multi-canaux (McBSP)
Port srie multiplexage temporel (TDM)

Contrleur DMA 6 canaux


Port dinterface hte (HPI)
Broches accessibles par software
Broche XF (external flag) en criture
Broche BIO en lecture

Gnrateur de temps dattente

16

Architecture interne du CPU

17

Structure interne du CPU

18

Unit de commande

Chef dorchestre du CPU

Chargement des instructions


Compteur

de programme (PC)
Registre dinstruction
Cache dinstructions

Squenage
Dcodage

des instructions
Pilotage des autres units

19

Units de traitement mathmatique

Calculs au format fixe


ou flottant
Paralllisme entre les
sous-units

pour stocker les oprandes


et les rsultats

Oprations arithmtiques,
logiques et de conversion
entre formats

Registre de dcalage

Multiplication et
accumulation (MAC)

ALU

Registres de donnes

Multiplieur

Multiplication rapide par 2k

Units spcialises

Compare, Select and Store


(Viterbi)
DCT

20

Units de gnration dadresses

Units de traitement spciales


Pilotes

par le squenceur
Calculs sur des entiers

Adresses mmoires

Mthodes pr-programmes
Incrmentation
Dcrmentation
Adressage

circulaire
Incrmentation bit-reverse (pour la FFT)

21

Schma de principe des changes


CPU

Squenceur

pilotage
Gnration
adresses P

Gnration
adresses D

Units de
calcul

data
ctrl

data
ctrl
Mmoire P

Bus
donnes

addr

Bus
programme

addr

priphriques

Mmoire D
22

Fetch (lecture instruction)

Squenceur

Gnration
adresses P

Gnration
adresses D

Units de
calcul

data
ctrl

data
ctrl
Mmoire P

Mmoire D
23

Bus
donnes

addr

Bus
programme

addr

Read/Write (lecture/criture donne)

Squenceur

Gnration
adresses P

Gnration
adresses D

Units de
calcul

data
ctrl

data
ctrl
Mmoire P

Mmoire D
24

Bus
donnes

addr

Bus
programme

addr

Diagramme bloc du TMS320C54x


Program/Data ROM
16K Words

Program/Data RAM
128K Words

JTAG Test/
Emulation
Control

Bus externe

MUX

D(15-0)
Program/Data Buses

Timer

A(23-0)
MAC
17 x 17 MPY

ALU
40-Bit ALU

40-Bit Adder

CMPS Operator
(VITERBI)

Ch 1

RND, SAT

EXP Encoder

Ch 2

Shifter

Accumulators
40-Bit ACC A

Ch 3

40-Bit Barrel
(-16, 31)

Gnration
dadresses

40-Bit ACC B

Addressing Unit
8 Auxiliary Registers
2 Addressing Units
Power Management

DMA

Muxed GP I/O

Ch 0

Ch 4
Ch 5

Peripheral Bus

Units de
calcul

Mmoire
interne

8/16-bit Host Port


Interface (HPI)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)

PLL Clock
Generator
S/W Waitstate
Generator

CPU
25

Entres
Sorties

Structure interne du
TMS320C54x

Source : Texas Instruments


TMS320C54x DSP
Reference Set
Vol 1 : CPU and Peripherals

26

Bus

Le bus programme PB sert vhiculer les


instructions et les coefficients stocks dans la
mmoire programme. Ces donnes sont
adresses par le bus dadresse de la mmoire
programme PAB

Trois bus daccs aux donnes sont raccords


lunit centrale de calcul, la mmoire de donne,
aux priphrique et aux circuits de gnrations
dadresse (programme et donnes). Ces bus CB,
DB, et EB vhiculent les donnes des lments
adresss par CAB, DAB, et EAB respectivement.
27

Unit de controle

Gnration
d'adresses
programme

Gnration
d'adresses
donnes

Bus P
programme

Bus C / D
lecture
donnes

Bus E
criture
donnes
28

Unit de traitementnt mathmatique

Unit

arithmtique et logique(UAL)
Multiplieur-Accumulateur (MAC)
Registre dcalage
Units spcialises

29

Accumulateurs

ALU

Shifter

MAC

Viterbi

30

Unit Arithmtique et Logique (ALU)

Ce bloc effectue des calculs arithmtiques et


logique
2 accumulateurs sur 40 bits :
39-32
AG
39-32
BG

31-16
AH
31-16
BH

15-0
AL
15-0
BL

Oprations entires et binaires


(+, -, inc, dec, et, ou, xor, shl, ...)
31

Registres
IMR

Registre Masque dInterruption

TREG

Registre Temporaire

IFR

Registre de Statut dInterruption

TRN

Registre de Transition

ST0

Registre dEtat 0

AR0

Registre Auxiliaire 0 (Index)

ST1

Registre dEtat 1

AR1-7

Registres Auxiliaires 1 7

Registre de Contrle de la Mmoire

BK

Registre dAddressage Circulaire

AL

Accumulateur A (0-15)

RC

Compteur Rption 1 Instruction

AH

Accumulateur A (16-31)

RSA

Premire Addresse Rptition Bloc

AG

Accumulateur A (32-39)

REA

Dernire Addresse Rptition Bloc

BL

Accumulateur B (0-15)

BRC

Compteur Rption dun Bloc

BH

Accumulateur B (16-31)

TIM

Registre du Timer

BG

Accumulateur B (32-39)

PRD

Compteur de la Priode de Timer

SP

Registre Pointeur de Pile

TCR

Registre de Contrle du Timer

PMST

32

Multiplieur-accumulateur (MAC)

Rle central dans un DSP


Plus de 50% des instructions

Caractristiques principales
Temps dexcution = 1 cycle instruction
Structure pipeline

Un rsultat par cycle horloge, si le pipeline est


bien utilis

33

Shifter (registre dcalage)

ce registre de 40 bits, sert cadrer les donnes en


provenant de la mmoire ou bien de laccumulateur avant
une opration dans ALU

Oprations de mise lchelle (Scaling) par puissance de


deux
Indispensable pour viter les dpassements de capacit
Son utilisation doit tre maitrise par le programmeur
Rduction de la prcision des calculs
Nombre, emplacement et possibilits des Shifters trs
diffrents dun DSP un autre.

34

Protocole JTAG

Permet de piloter les units internes du DSP


Intgr par le constructeur lors de la
conception du chip
Utile pour le prototypage et le dbogage
d'applications
Interruption

momentane en cours d'excution

Donne accs en lecture/modification aux


Registres

internes
Mmoires internes, et ventuellement externes
Ports d'entres/sorties

35

Pipelining

Instructions
segmentes en tages
Excution entrelace de
plusieurs instructions

Chacune une tage diffrent

Gr par le squenceur

Augmentation de la
frquence d'horloge

Etages plus simples donc plus


rapides

Instruction

Instruction 1

Segmentation
en tages
Fetch

F1

Decode

D1

Read

R1

Execute

Fetch
Decode

X1

Entrelacement
F1

F2

F3

F4

F5

D1

D2

D3

D4

R1

R2

R3

X1

X2

Read
Execute

36

Squentiel vs pipeline
tage\temps

t1

Fetch

F1

Decode

t2

t3

t4

t5

t6

t7

F2
D1

Read

D2
R1

Execute

t8

R2
X1

X2

Excution squentielle

tage \ temps

t1

t2

t3

t4

t5

t6

t7

t8

Fetch

F1

F2

F3

F4

F5

D1

D2

D3

D4

D5

R1

R2

R3

R4

R5

X1

X2

X3

X4

X5

Decode
Read
Execute

Chargement du pipeline

Excution avec pipeline


37

Pipelining

Exemple du TMS320C54x

6 tages de traitement
Prefetch

(P) : Incrmentation du PC
(Program Counter)
Fetch (F) : Lecture de linstruction en mmoire
Decode (D) : Dcodage de linstruction
Access (A) : Calcul des adresses des oprandes
Read (R) : Lecture des oprandes en mmoire
et calcul de ladresse du rsultat
Execute (X) : Excution et criture en mmoire
38

Retards dans le pipeline

Le pipeline atteint son plein rendement une


fois quil est plein
Une retard peut se produire
sil

en

existe un conflit de ressources (retard ponctuel)


accs la mmoire
utilisation des bus

cas de rupture de squence (vidange du pipeline)


branchement non prvu
appel de sous-programme
interruption

39

Exemple de conflit d'accs mmoire


Programme et donnes
dans une mmoire 1 accs 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 donnes R1/R2/R3 sont en conflit avec les


chargements d'instruction F4/F5/F6
Peut rduire les performances d'au moins 50%
8

Rsolution du conflit d'accs mmoire


Programme et donnes
dans des mmoires accs spars (Bus Programme/Bus Donnes)
ou dans une mme mmoire accs 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

Bilan accs mmoire


Data

ROM

ROM

SARAM

DARAM

P Bus
D Bus
C Bus
E Bus

Interface
Mmoire externe

Program

A
D

A retenir pour viter les problmes:

ROM/SARAM - 1 accs par bloc par cycle


DARAM
- 2 accs 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
oprations sur
8/16/32 bits de
donnes.

43

TMS320C62X

44

TMS320C62X : groupe oprateurs


Chaque groupe doprateurs dispose de :
3 UALs + 1 multiplieur (.L, .S, .D et .M) :
.L : oprations arithmtiques et logiques et instruction de
branchement.
.S : oprations arithmtiques et logiques, de dcalage, de
branchement et de gnration de constantes.
.M : multiplieur cbl 16x16
.D : lecture, chargement et oprations arithmtiques.

16 registres de 32 bits non orthogonaux


Chaque UAL est contrle par une instruction de
32 bits.
45

TMS320C62X : groupe oprateurs


A0
A1
A2
A3
A4

a1
x1
prod
Y
.
.
.
.

.M

Y a n xn
n 0

MPY .M a1, x1, prod


ADD .L Y, prod, Y
.L

A15
32 bits

46

VLIW (Very-Long-Instruction-Word)

Paralllisme gr par le compilateur

Microarchitecture simple et performante

Contrle simple mais compilateur complexe


Mais taille de code importante

Gnralement clusteris (1 cluster : banc de registres


+ units fonctionnelles)

Rduction de la complexit des chemins de donnes

47

VLIW (Very-Long-Instruction-Word)
inst1

Instruction VLIW

inst2
inst3
inst4
inst5
inst6
inst7
inst8

48

VLIW : exemple du TMS320C62x


Instruction de 128 bits
8 sous-instructions de 32 bits
32 bits

L1

S1

+
+

32 bits

32 bits

M1

32 bits

32 bits

D1

D2

32 bits

32 bits

M2

32 bits

S2

L2

49

Reprsentation de Nombres Rels

La reprsentation des nombres doit rpondre deux


exigences contradictoires:

Prcision: intervalle entre deux rationnels cods

Dynamique: rapport entre le plus grand rationnel et le plus petit


rationnel cods

doit tre le plus petit possible

doit tre la plus tendue possible

Dans ce contexte les units de calcul des DSP travaillent

soit en format fixe (notation dcimale)


soit en format flottant (notation scientifique)
50

Reprsentation en format fixe


Aussi appele reprsentation virgule fixe
Dfinition "format Qk" :
La reprsentation Qk du rel x correspond
la reprsentation complment 2 (C2) de
l'entier y tel que: y round(2 k x)

Proprits:
Partie fractionnaire code sur k bits
Partie entire code sur N-k bits en C2
Q0 dsigne le cas particuler des entiers signs en C2
Exemple: Le binaire 01011101 peut reprsenter :
Q2 : 23.25
Q4 : 5.8125
Q7 : 0.7265625
51

Reprsentation en Format Fixe


Exemple: Q5 sur 8 bits
Partie entire cod sur 3 bits (dont 1 de signe)
Partie fractionnaire code sur 5 bits
Valeurs comprises entre -4 et +3.96875

#/Poids

-23

22

20

-4

-3.96875

2-1

2-2

2-3

2-4

2-5

3.9375

3.96875

52 1

Reprsentation en Format Fixe


Prcision: quantification uniforme de
pas q
q=2-k
Dynamique:
-2N-k-1 .. 2N-k-1-2-k
Pour obtenir une dynamique sur lintervalle [-1, 1[ ,utiliser
le format
QN-1 sur N bits
Format Q15:
sur 16 bits, le format Q15 permet de reprsenter tous
les rels entre -1 et 1 avec une prcision q=2-15
53

Reprsentation en Format Flottant


Aussi appele reprsentation en virgule
flottante est une reprsentation avec une
prcision finie, dfinie selon lexpression
E

x M 2

La mantisse M est exprime sur m


bits, avec un format Qm-1 en
complment 2
Lexposant E est un entier sign
sur e bits
en binaire dcal

dtermine le nombre
de chiffres significatifs
dtermine la
dynamique

me N

Opration de normalisation:
Pour rendre la reprsentation unique, M doit satisfaire
en outre:

1
M 1
2

54

Reprsentation en Format Flottant


Exemples en 8 bits

01111 111

1 2

1 2 2 1 2 3 1 2 4 2 4 21 0.9375 2 1 0.46875

01111 110

1 2

1 2 2 1 2 3 1 2 4 2 4 2 0 0.9375 2 2 0.234375

10010 011

1 0 2

0 2 2 1 2 3 0 2 4 2 0 21 0.875 23 7

La mantisse est code sur 5 bits et lexposant sur 3 bits


en C2
55

Format virgule flottante IEEE 754

Format pour N=32 bits

1 bit
8 bits
signe
exposant
en binaire dcal

23 bits
fraction (partie fractionnaire de la mantisse)
C2 avec des codes spciaux

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


Cas spciaux
Zro: tous les bits 0
Underflow: exposant = 000000002
Overflow: exposant = 111111112

56