Vous êtes sur la page 1sur 36

Processeurs de Traitement

Numrique du Signal (DSP)

Processeurs de Traitement
Numrique du Signal (DSP)

I.
II.
III.
IV.

Olivier Sentieys
IRISA/ENSSAT Lannion
Universit de Rennes I
sentieys@irisa.fr
http://www.irisa.fr/R2D2

Introduction
Architectures MAC/Harvard
Evolutions des DSP
Flot de dveloppement

Merci Daniel Mnard pour son support

Exemples dapplications
I. Introduction

1.
2.
3.
4.

Contexte applicatif
Caractristiques algorithmiques
Solutions architecturales
March des DSP

Tlphonie cellulaire
Communications sans-fil
Contrle de moteur
Modems
Voix sur Internet
Audio grand public
Navigation
Vidoconfrence
Jouets, consoles vido
Synthse musicale, effets
Mdical

ARCHI05 - 4

Performances
Faible cot
Faible nergie

Communications satellite
Analyse sismique
Scurit
Reconnaissance vocale
Sonar, radar
Photo et camra
numriques
Dbruitage, cho
Anticollision

et pleins dautres venir

Tches lmentaires

Algorithmes de TdSI1

Compression de signal (parole, audio, vido)


Filtrage
Modulation et dmodulation
Dtection et correction derreurs
Contrle
Traitements audio (e.g. rduction bruit,
galisation, annulation dcho, conversion de
frquence)
Reconnaissance vocale
Synthse de signaux

ARCHI05 - 5

1Traitement

du signal et de limage

Signaux numriques
o Temps et amplitude discrets
o Flot de donnes
o Scalaires, vectorielles, matricielles,

Traitement temps rel


o Temps d'excution Tex guid par flots de donnes
o Priode d'chantillonnage Te priode des sorties Tf > Tex
e(t)
Te

s(t)
ARCHI05 - 6

Algorithme

ex. s(n) = max(moy(e), s(n-1))

Tf

Diversits

Caractristiques algorithmiques

Complexit des algorithmes de TdSI

Charge de calcul importante

< 5 MOPS

10-30 MOPS

Faible
mesure/contrle

Compression ADSL
Compression
UMTS
parole modemsaudio GSM Compression
Imagerie
vido
mdicale

Format des donnes


Application

Taille des donnes

PWM, mesures, contrle

1 4 - 18 22 bits

o Nids de boucles
o Multiplications-accumulations (convolution)
o Multiplications-additions (FFT, DCT, adaptation, distances, ...)

> 100-1000 MOPS


Elev

Prcision des calculs


o Virgule fixe ou flottante
o Compromis cot prcision des calculs

Bande passante mmoire


Calculs d'adressage complexes
o Gestion signal, accs image, bit-reverse (FFT), ...

convertisseurs sigma-delta

ARCHI05 - 7

radio HF/VHF, radar

6 - 14 bits

sonar

10 - 12 bits

parole

8 - 14 bits

audio

16 - 20 bits

imagerie / vido

8 - 36 bits (par pixel)

analyseurs de sang

16 - 18 bits

Boucles de traitement courtes


o Les instructions peuvent tre places en interne
o Pas besoin de grande taille de cache (donnes ou instructions)
ARCHI05 - 8

Fonctions typiques de TdSI

Exemple Fil Rouge

Convolution, filtrage

Filtre Numrique RIF sur N points

o y = y + x.h : MAC (multiplication-accumulation)

Adaptation (LMS)
o yn = yn-1 + x.h : MAD (multiplication-addition)

FFT, multiplication complexe

o xr=xr.wr-xi.wi; xi=xr.wi+xi.wr

Viterbi
o a1 = x1 + x2; a2 = y1 + y2;
o y = (a1>a2) ? a1 : a2 : ACS (addition-comparaison-slection)

h(0)

h(1)

h(2)

h(3)

h(4)

x
y(n)

Estimation de mouvement

o sad += |xi,j - yi+u,j+v| : SAD (sum-of-absolute-difference)


ARCHI05 - 9

x(n)

TAP
ARCHI05 - 10

Fonctions typiques de TdSI

Fonctions typiques de TdSI

FFT Fast Fourier Transform

Filtrage adaptatif LMS

Butterfly (DIF)
X

X = X + W.Y

x
x
x
x
ARCHI05 - 11

Y = X - W.Y

+
-

+
-

DLMS
xn(i-1)

x
en

ARCHI05 - 12

+
hn(i)

hn-1(i)
xn(i)

+
y

Fonctions typiques de TdSI

Solutions architecturales

Estimation de mouvement

Efficacit nergtique

sadmin = MAXINT; mvx=0; mvy=0;


for (u=-p; u<=p; u++)
for (v=-p; v<=p; v++) {
sad = 0;
for (i=0; i<N; i++) {
for (j=0; j<N; j++) {
sad = sad + ABS[BR(i,j)-FR(i+u,j+v)]
/* if (sad>=sadmin) break; */
}
}
if (sad<sadmin) {
sadmin = sad; mvx = u; mvy = v;
}
}

N+2p

Motion Vector
(u,v)

Spcialisation, paralllisme

Matched Block
NxN

p
Reference Block
NxN

Search Window

ARCHI05 - 13

Flexibilit

2 V DSP
3 MOPS/mW

Pleiades, DART
10-50 MOPS/mW

Embedded
Processor
100 -1000 MOPS/mW

SA110
0.4 MIPS/mW

ASIC
ASIP/DSP
Embedded
FPGA
100

ARCHI05 - 14

PowerPC
1 MIPS/mW

Reconfigurable
Processor

EE : MOPS / mW

10

March des DSP (1)

March des DSP (2)

Sans fils domine : 75% des revenus en 2004


Systmes grand public : DVD, TV et radio
numrique, ...
Asservissement des moteurs pour les disques
Multipurpose Automotive Consumer
durs, ...

En haut de la liste des plus fortes croissances du


march de lindustrie des semi-conducteurs

6%

3%

Cellular phone
62%

ARCHI05 - 15

Wireless (other)
2%

9%

Wireline
(modem, xDSL)
6%
Computer
6%
Cellular
infrastructure
5%
Wirless short
range
1%

14000

Flexibility

Codage vido MPEGx, H26x

DSP Market (M$)

12000
10000
8000
6000
4000
2000
0
1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007

Prvisions Forward Concept Co.


ARCHI05 - 16

March des DSP (3)


Place dans le march des processeurs embarqus

II. Architecture
MAC/Harvard

1. Gense des DSP : MAC/Harvard


2. Modlisation des gnrations 1 et 2
Panorama des DSP
3. Performances

ARCHI05 - 17

Architecture Von Neumann

FIR sur machine Von Neumann

E.g. processeurs RISC

Problmes

MEMORY DATA BUS

MEM. DATA
REGISTER

PC

ADDRESS
REGISTER

REGISTER
FILE

ALU

MUX

Code example:
multiply & accumulate
r2 = r2 + #imm * r1
mov #imm,r3
mul r1,r3
add r3,r2
3 instructions, plus de 3 cycles
d'horloge

MEMORY ADDRESS BUS


ARCHI05 - 19

Bande passante avec la mmoire


Code pour le contrle et la gestion de l'adressage
Multiplication lente
loop:
mov
mov
mpy
add
mov
inc
inc
inc
dec
tst
jnz
ARCHI05 - 20

*r0,x0
*r1,x1
x0,y0,a
a,b
y0,*r2
r0
r1
r2
ctr
ctr
loop

Data Path

Excution en N.(15 20) cycles

Memory

Architecture Harvard (1)

Gnralits sur les DSPs

PROGRAM ADDRESS BUS

Proprits du traitement
numrique du signal

Consquences sur les


architectures
Fonctionnement pipeline
Architecture Harvard
Structures de contrle
volues
Units de traitement
spcialises cbles
Gestion dadressage
complexes

Calculs intensifs et
rptitifs

Primitives simples

DATA ADDRESS BUS

PROGRAM
RAM/ROM

DATA BUS - B
PROGRAM DATA BUS

PROGRAM
CONTROL

AGU-A
AGU-B
Address Generation

MULTIPLIER
ALU
REGISTERS
ACCUMULATORS

Processing Unit

ARCHI05 - 22

Unit de traitement

Architecture Harvard (2)

DATA BUS - A
DATA BUS - B
24

Bus et mmoires donnes/instructions spares


Unit de traitement de type mpy-acc
Registres distribus ( RISC register file)

24
X0
X1
Y0
Y1

Operand
Registers
24

24

Chaque module (ALU) possde ses propres registres


locaux

Multiplier
56

56

ALU

Shifter

56

(-1, 0, +1)

Accumulators

24

A (56)
B (56)
56

24
56

Gnration adresses efficaces (AGUs)


Modes dadressage spciaux : auto incr-decr, circular
buffering (delay line) ...

Shifter/Limiter

Motorola DSP 5600x

ARCHI05 - 23

DATA
RAM-B
DATA BUS - A

Le tout dans un environnement temps rel


ARCHI05 - 21

DATA
RAM-A

(-1, 0, +1)
24

in@2 in@1

24

ARCHI05 - 24

in

FIR sur DSP conventionnel


Instructions complexes sexcutant en 1 cycle
T=DM(*r1+);
P=T*PM(*r0+)
|| T=DM(*r1+);
loop:
acc=acc+P
|| P=T*PM(*r0+)
|| T=DM(*r1+)
jnz loop;
acc=acc+P
|| P=T*PM(*r0+);
acc=acc+P

II. Architecture
MAC/Harvard

1. Gense des DSP : MAC/Harvard


2. Modlisation des gnrations 1 et 2
Panorama des DSP
3. Performances

Program
Memory

MULT
Data Path
P

Data
Memory

ALU
ACC

Excution en N+ cycles
ARCHI05 - 25

Processeur : modlisation

Architecture Harvard de base

Unit de contrle (IP : Instruction Processor)

IP : Instruction Processor, DP : Data Processor


IM : Instruction Memory, DM : Data Memory

Unit fonctionnelle (UF) qui interprte les instructions et les passe


lunit de traitement (DP)

Unit de traitement (DP : Data Processor)


UF qui modifie ou transforme les donnes

DP

IP

DM

IM

Unit de mmorisation
IM : Instruction Memory : stocke les instructions
DM : Data Memory : stocke les donnes traites par le DP

Unit de communication (EIU : External Interface Unit)


Contrle les accs aux donnes ou instructions externes, ou
d'autres processeurs
ARCHI05 - 27

[Flynn72] [Skillicorn88]

e.g. TMS320C10
ARCHI05 - 28

Classification de E. Lee [Lee89]

Architecture Harvard de base


TMS320C10 (1982)
2N+4 cycles
2N+4 instructions!

Optimisations des performances


Comment amliorer larchitecture Harvard ?
Transformations du diagramme d'tats
rarrangement des tats pour augmenter le temps de cycle
excution en parallle d'tats (e.g. Store Results et Return State)

Pipeline de l'excution des tats


mise en parallle d'tats appartenant des instructions
successives

Augmentation du nombre de FU
plusieurs DP peuvent excuter des instructions en parallle sur des
donnes indpendantes
[Verbauwhede00]

ARCHI05 - 29

ARCHI05 - 30

Interconnexions entre FUs

Modification 1

Les interconnexions suivantes sont valables pour


toutes les FUs prcdentes (DP, IP, IM, DM).

Autorisation de
mmorisation de
donnes dans l'IM
En un cycle : fetch deux
oprandes de la
mmoire, excute MAC,
criture du rsultat en
I/O ou mmoire

1 - vers - 1
o une FU est connecte une autre FU

n - vers - n
o une FUi d'un ensemble de FUs est connecte une autre FUi

1 - vers - n
o une FU est connecte n autres FUs d'un ensemble de FUs

n - par - n
o toute FUi d'un ensemble est connecte chaque autre FUj

e.g. AT&T DSP32 et DSP32C


ARCHI05 - 31

ARCHI05 - 32

DP

IP

1-vers-2

DM

IM/DM

Modification 2

Modification 3

DM est une mmoire


multi-ports, plusieurs
accs aux donnes par
cycle
Utilisable pour des
mmoires internes

Cache pour charger


les instructions
frquentes
vite les conflits
d'accs donnes et
instructions de la
modification 1

DP

DM

IP

IM

e.g. Fujitsu MB86232 (3 ports en mmoire interne)

TMS320C25 : cache 1 instruction (boucles)


DSP16 : cache 15 instructions
ADSP-2100 : cache 16 instructions

ARCHI05 - 33

ARCHI05 - 34

DP

IP

1-vers-2

cache

DM

IM/DM

FIR sur DSP conventionnel

Deuxime gnration (Modification 4)

TMS320C2x (1986)

Deux mmoires
donnes DM spares
En un cycle : fetch
deux oprandes et une
instruction si le cycle
mmoire est le mme
que le cycle
d'instruction de base

ZAC || LTD;
LTD || MPY;
RPTK N-1
MACD
APAC || MPY;
APAC;

Excution en N cycles
ARCHI05 - 35

Motorola DSP 56001 et 96002


TMS320C30, C40, C50
ADSP-2100
ARCHI05 - 36

DP

IP

1-vers-2

DM 1

DM 2

IM

CORE PROCESSOR

DUAL-PORTED
SRAM

TIMER

DAG 1

DAG 2

8x4x32

8x4x24

TWO INDEPENDENT
DUAL PORT BLOCKS

INSTRUCTION
CACHE

PROCESSOR PORT
ADDR
DATA
DATA
ADDR

BLOCK 0

SHARC

BLOCK 1

Architecture Analog Devices

JTAG

DATA
ADDR
ADDR
DATA

TEST &
EMULATION

PROGRAM
SEQUENCER

EXTERNA
L
PORT
24

PM ADDRESS BUS

ADDR BUS
MUX

32

DM ADDRESS BUS
48
BUS
CONNECT
(PX)

48
DATA BUS
MUX

DM DATA BUS
HOST PORT

MULTIPLIER

IOP
REGISTERS
(MEMORY MAPPED)

BARREL
SHIFTER

32

MULTIPROCESSOR
INTERFACE

PM DATA BUS

40/32

DATA
REGISTER
FILE

Modification 5

ALU

I/O PROCESSOR

CONTROL,
STATUS &
DATA BUFFERS

DMA
CONTROLLER

Bancs mmoire
multiples
Instruction multioprandes en parallle
avec accs I/O
Problme de partition
des donnes sur un
grand nombre de
bancs (FFT)

DP

IP

DM

DM

DM

LINK PORTS
(6)

DM

IM

EIU

IOM

1-vers-4

4
6

SERIAL PORTS
(2)

2-vers-2

1-vers-4

Hitachi DSPi (6 bancs mmoire)

36

ARCHI05 - 37

ARCHI05 - 39

Gnrations

Caractristiques complmentaires

Performances normalises (BDTImark)

10000

4me gnration
StareCore(300MHz)
TMS320C62x (300MIPS)
Carmel (300 MHz)

1000

DSP16210 (100 MIPS)

100

DSP56301
TMS320C54x (50-100MIPS)
ADSP2183 (50MIPS)

2me gnration
DSP56001 (13MIPS)
ADSP21xx (13MIPS)
TMS320C50

10

1re

Type dencodage, compromis consommation/efficacit

Structures de contrle

3me gnration

Boucles matrielles, branchement

gnration

Modes dadressage

TMS320C20 (5 MIPS)
TMS320C10 (2.5 MIPS)
1
1980

ARCHI05 - 40

1982

1984

1986

Localisation des donnes


Modle registre-mmoire, Load-Store
Codage des instructions complexes
Stationnarit temporelle ou par les donnes
Format des instructions

1988

1990

1992

Anne

1994

1996

1998

2000

2002

ARCHI05 - 41

[cf. Annexes]

Rsum (1)
Calcul

Prcision

Bande passante mmoire

Rsum (2)
FUs spcialises pour les
fonctions classiques de
TdSI en parallle, MAC
simple cycles
Bits de garde, saturation,
arrondis, multiplication
16-24 bits, addition 32-40
bits
Harvard, bancs et bus
adresses/donnes
multiples

ARCHI05 - 42

Accs aux donnes


Localit temporelle
dexcution
Flots de donnes
(streaming)
Temps rel

Modes dadressage
complexes
Boucles matrielles (zerooverhead), caches
dinstructions spcifiques
Pas de cache de donnes,
DMA puissants, mmoires
SRAM internes
Gestion des interruptions

ARCHI05 - 43

II. Architecture
MAC/Harvard

Puissance de calcul
MIPS (Millions of instructions per second)
Mesure facile mais
peu reprsentatif des performances relles

1. Gense des DSP : MAC/Harvard


2. Modlisation des gnrations 1 et 2
Panorama des DSP
3. Performances

o VLIW, gnration des adresse

MOPS (Millions of operations per second)


MMACS (Millions of MAC per second)
Prise en compte de laspect traitement du signal
Les autres oprations ne sont pas prises en compte

MOPS/W : Efficacit nergtique


ARCHI05 - 45

Mtriques de performance

Contenu dun benchmark

Comparaison prcision - effort dimplantation

Diffrents niveaux

Prcision de la mtrique

Applications complte
Applications
Taches

o Systme de vido-confrence, metteur/rcepteur radiomobile, player MP3 ...

Taches d'une application


o Codeur ou dcodeur audio ou vido, codeur de parole,
dcodeur de Viterbi

Curs dalgorithme

Benchmarking

Curs d'algorithme
o FIR, IIR, FFT, Control, ..

Oprations

MMACS/MOPS
MIPS

o ADD, Mult/MAC, Dcalage, Transfert mmoire


Disponibilit Effort dimplantation

ARCHI05 - 46

ARCHI05 - 47

BDTImark2000

http://www.bdti.com

BDTIMARK

Bas sur des curs dalgorithme de traitement du signal


o
o
o
o
o
o
o
o
o
o
o

Filtre FIR rel, traitement par blocs


Filtre FIR rel, traitement par chantillons
Filtre FIR complexe, traitement par blocs
Filtre adaptif LMS
Filtre IIR, 2 cellules d'ordre 2 cascades
Produit de vecteurs
Addition de vecteurs
Recherche de la valeur maximale dun vecteur
Dcodeur de Viterbi
FFT 256 points
Manipulation de bits

Code optimis manuellement


ARCHI05 - 48

ARCHI05 - 49

Temps dexcution (FFT)

BDTIMARK
BDTImark

Zoran ZR3800x
62

Motorola - IBM PowerPC604e 333 MHz


Intel Pentium 200 MHz

Texas Instruments TMS320C80


Texas Instruments TMS320C541

23

Texas Instruments TMS320C52

17

Analog Device ADSP 2106x 60 MHz

Texas Instruments TMS320C44

65

Texas Instruments TMS320C67xx 167 MHz

Texas Instruments TMS320C31


9

Texas Instruments TMS320C3x 80 MHz

Texas Instruments TMS320C209


SGS-Thomson D950-CORE

Processeurs

NEC PD77015

56

Intel MMX Pentium 266 MHz

Motorola DSP56166

14

ARM7 TDMI/picolo 70 MHz

Motorola DSP56002

ARM7 TDMI 80 MHz

IBM MDSP2780
15

Motorola DSP 566xx 60 MHz

DSP Group OAK

Motorola DSP 563xx 100 MHz

25

DSP Group PINE


Lucent Technologies DSP 3207

37

Lucent technologies DSP 16xxx 100MHz


Lucent technologies DSP 16xx 120MHz

Lucent Technologies DSP32C

22

Analog device ADSP21xx 75 MHz

Lucent Technologies DSP 1627

19

Analog Devices ADSP-21062


Texas Instruments TMS320C80 60 MHz

26

Analog Devices ADSP-2171

25

Texas Instruments TMS320C54x 100 MHz

Texas Instruments TMS320C62x 200 MHz

100

200

300

400

500

600

700

800

900

99
0

20

40

60

ARCHI05 - 50

80

100

Execution Time (s)

120

ARCHI05 - 51

Score

Cot performance (FFT)

Cot
Important pour une production fort volume
Faible cot

Zoran ZR3800x
Texas Instruments TMS320C541
Texas Instruments TMS320C52

o Les DSPs sont efficaces en MIPS/mW et en MIPS/mm2


o Cela se paye sur la flexibilit et la programmabilit
100000

Texas Instruments TMS320C44


Texas Instruments TMS320C31
Texas Instruments TMS320C209
NEC PD77015

mW/MIPS

Motorola DSP56166

10000

M68K $200

Motorola DSP56002
IBM MDSP2780

I286 $200

1000

I386 $300

DSP1 $150

Lucent Technologies DSP 3207

Pentium $500

100

Pentium MMX $700

Analog Devices ADSP-21062

DSP32C $250

10

Lucent Technologies DSP32C


Lucent Technologies DSP 1627

Analog Devices ADSP-2171

DSP16A $15
0

1
1980
ARCHI05 - 52

1985

1990

DSP16210 <$10
DSP1600 $10
1995
2000

[Ackland ISLPD98]

10000

20000

30000

40000

Cost-Time Product (s$)


ARCHI05 - 53

50000

60000

70000

nergie
III. volution des DSP

Filtrage numrique RIF

C549
100 MHz, 2.5V

16
12

C6201

1.
2.
3.
4.
5.
6.

200 MHz, 1.8V

DSP16210
100 MHz, 3.3V

10

ZSP16401

8
6

200 MHz, 2.5V

ADSP-21160

100 MHz, 2.5V

0
1
70
C6

DSP conventionnels amliors


Capacits SIMD
DSP hybride MCU
VLIW
Superscalaire
Comparaison de performances

167 MHz, 1.8V

AD

SP

-2

11

60

01
64

10

ZS
P1

62
P1

DS

C6

20

C6701

C5
ARCHI05 - 54

Virgule Fixe
Virgule Flottante

14

49

Watt-microsecondes

18

volution des DSP

Plus doprations par instruction

Amliorer les performances au del de


l'augmentation lie la vitesse d'horloge ?

Augmenter le nombre d'oprations qui peuvent


tre excutes dans chaque instruction
Ajouter des units d'excution
o
o
o
o

Augmenter le paralllisme
Augmentation du nombre d'oprations excutes
dans chaque instruction
Augmentation du nombre d'instructions excutes
par cycle d'horloge

Ajouter des units spcialises


Amliorer le contrle
ARCHI05 - 56

multiplieur, additionneur, ...


jeu d'instruction enrichir
taille de l'instruction augmenter
bus de transfert mmoire augmenter

Augmenter les capacits SIMD (ou SWP)

Dans le mme ordre d'ides


Utiliser des units fonctionnelles spcialises
Utiliser un coprocesseur
Architectures hybrides DSP/MCU
ARCHI05 - 57

L'objectif est ici de profiter du paralllisme au


niveau instruction (ILP) d'une application
Deux techniques sont bien connues :
VLIW : empaquetage de plusieurs instructions de
type RISC dans une seule "super-instruction"
Superscalaire : excution parallle de plusieurs
instructions slectionnes dynamiquement par le
processeur

Gnrations
10000

Performances normalises (BDTImark)

Plus dinstructions par cycle

4me gnration

DSP16210 (100 MIPS)

100

DSP56301
TMS320C54x (50-100MIPS)
ADSP2183 (50MIPS)

2me gnration
DSP56001 (13MIPS)
ADSP21xx (13MIPS)
TMS320C50

10

3me gnration

1re gnration
TMS320C20 (5 MIPS)
TMS320C10 (2.5 MIPS)
1
1980

ARCHI05 - 58

StareCore(300MHz)
TMS320C62x (300MIPS)
Carmel (300 MHz)

1000

1982

1984

1986

ARCHI05 - 59

1988

1990

1992

Anne

DSP conventionnels amliors

Architecture C54x

Troisime gnration (1995)


Ajout dunits spcialiss ou utilisation de
coprocesseurs

C54x

TMS320C54x

Architectures multi-MAC
Lucent DSP 16xxx

Multiprocesseurs sur une puce


Principalement pour image/vido
TMS320C80, MC68356
ARCHI05 - 61

40-100-160 MIPS
1000-2000-3000 MIPS/W
17x17b multiplier, 40b ALU,
40b adder, ACS unit
Viterbi, LMS, FIRS, FFT
60% of cellular handsets
$5 for C5402 100MIPS - $75
Dual cores (C5420)

ARCHI05 - 62

1994

1996

1998

2000

2002

DB

C54x

CB
PB DB

DB
CB DB CB EB

C54x
FIR symtrique

x(N-i-1)

x(i)

x
h(i)

x(i+1)

A
Bus1

FIR sur DSP conventionnel

T
Mult

A
B

Add
A
B
0

A
B
Bus1
Bus2

ALU

ARCHI05 - 65

x
h(i+1)

+
y

Architectures multi-MAC

A
Bus1
Bus2
Bus3

A
B
Bus1
T

ARCHI05 - 64

C54x
A
B
Bus1

y
x(N-i)

ARCHI05 - 63

ALU

A
B

e.g. Lucent DSP 16xx

A
B

Bus X 16b
Bus I 16b

Bus4

MAC

DO N TIME:
acc=acc+P
// P=X*Y
// Y=*r0++
// X=*r1++

ALU

MULT

ALU
Excution en N cycles
2 ACC
ARCHI05 - 66

Architectures multi-MAC

C55x

FIR sur DSP dual-MAC

Bus X 32b

e.g. Lucent DSP 16xxx

o Consommation -85%
o Performances 5x

C5510
MULT

ALU

MULT

ADDER

Excution en N/2 cycles


8 ACC
ARCHI05 - 67

Jusqu' 20 MIPS/mW
C54x

Bus I 32b

o 400 MIPS, 380mW


o $5 - $80
DO N/2 TIME:
acc=acc+P0+P1
// P0=X0*Y0
// P1=X1*Y1
// Y=*r0++
// X=*r1++

Architecture C55x

160 MHz, 320 MIPS


80mW
4 MIPS/mW
160 KW SRAM

C5502
400 MIPS
160 mW
2.5 MIPS/mW
ARCHI05 - 68

Architecture C55x

Capacits SIMD (ou SWP)

FIR symtrique

Oprations parallles sur diffrentes largeurs de chemins


de donnes (16 bit, 8 bit, ...)
Split units d'excution
Units d'excution multiples

Exemples
Lucent DSP16xxx, ADI ADSP-2116x, ADI TigerSHARC, TI C64x
16 bits

16 bits

x,+,-

ARCHI05 - 69

ARCHI05 - 70

16 bits

16 bits

x,+,-

16 bits

16 bits

Avantages et inconvnients
III. volution des DSP
Mthode
Augmenter le
nombre d'UE
Augmenter
les capacits
SIMD
Matriel
ddi

Avantages

Inconvnients

Augmentation limite de
la consommation, du
cot et de la densit de
code

Augmentation importante de la
complexit
Difficult programmer et
compiler
Compatibilit maintenue Perspectives limites
Gain en performance trs Ncessit d'avoir un
important pour des
paralllisme au niveau des
traitements par blocs
donnes important
Modifications
architecturales limites

Consommation mmoire
importante

Gain en performance
important

Ncessite une bonne


connaissance de l'application

1.
2.
3.
4.
5.
6.

DSP conventionnels amliors


Capacits SIMD
DSP hybride MCU
VLIW
Superscalaire
Comparaison de performances

ARCHI05 - 71

Architecture hybride DSP/MCU

Architecture hybride DSP/MCU

Associer des fonctionnalits MCU

Mthodes de couplage

gestion efficace des ITs


manipulation de bits
excution conditionnelle

des fonctionnalits DSP,


calcul intensif

pour obtenir un code performant et efficace


limiter la taille du code et donc du circuit
ARCHI05 - 73

Mthode
Multiprocesseur

Coprocesseur

Avantages
2 jeux d'instructions
Les 2 curs travaillent en //
Pas de conflits de ressources
Les 2 curs travaillent en //

Inconvnients
Duplication de ressources
Deux outils de
dveloppement
Modle de programmation
plus complexe
Transferts de donnes

Extension
Solution Hybride
ARCHI05 - 74

Modle de programmation plus


simple

Contraintes imposes par


l'architecture initiale

Architecture plus "propre"

Dveloppement plus
risqu

Architecture Hybride DSP/MCU

ST 140

ST100, ST122, ST140 (STMicroelectronics)

Compatible ST100
Compatible ST122 (dualMAC)

32 bits MCU / 16 bits DSP


Fonctionnalits DSP
o MAC, architecture Harvard, modes dadressages complexes

et microcontrleur
o architecture load/store, large espace dadressage, code
compact
Contrleur mmoire instruction

d
UC

Flexible 16-bit/32-bit
Load/Store architecture
4-MAC/4-ALU
Two data clusters
Double data memory
bandwidth

Mmoire
UT

ST140-DSP Core in
0.13m process
Frequency up to 600 MHz
Intensive Processing
2.4 GMAC/s
Large Data Bandwidth
9.6 Gbytes/s
Power Consumption
down to 0.180 mW/MHz
100 mW, 24 MMAC/mW

UA

Contrleur mmoire donne


ARCHI05 - 75

ARCHI05 - 76

Paralllisme niveau instructions


III. volution des DSP
DSP conventionnels amliors
Capacits SIMD
DSP hybride MCU
VLIW
Superscalaire
Comparaison de performances

.
.
INS N

ALU MAC MU
INS1 INS2

?
INS3
Ordonnancement
des instructions
compilation
Run-time
Unit de dispatch

ARCHI05 - 78

...
Time

1.
2.
3.
4.
5.
6.

INS 1
INS 2
INS 3

INS4
INS6 INS5

...

Very Long Instruction Word

VLIW : C62xx
256

Caractristiques
Plusieurs instructions par cycle, empaquetes dans
une "super-instruction" large
Architecture plus rgulire, plus orthogonale, plus
proche du RISC
Jeu de registres uniforme, plus large

Exemples

TI TMS320 C62x et C64x


ADI TigerSHARC ADS-TS20x
Freescale (Motorola) MSC71xx et MSC81xx
StarCore SC1400 Agere/Motorola (DSP core)

ARCHI05 - 79

1M-bit on-chip memory


32-bit ext. mem. interface
2 enhanced-buffered serial ports
16-bit host access port (Host
processor access to on-chip data
memory)
Flexible PLL clock generator
(x ext. clock rate for 2 or 4)
Price: $9-$102

MPY

ADD

ADD

MV

STW

ADD

MPY

SHL

ADD

SUB

STW

STW

ADDK

ADD

SUB

LDW

LDW

MVK

NOP

NOP

MPY

MPY

ADD

ADD

STW

STW

ADDK

NOP

Dispatch Unit

L:ALU
S:Shift+ALU
M:Multplier
D:Address

Functional
Unit

Functional
Unit

Functional
Unit

Functional
Unit

Functional
Unit

Functional
Unit

Functional
Unit

Functional
Unit

.L1

.S1

.M1

.D1

.D2

.M2

.S2

.L2

Register File A

Register File B
Data Memory Controller

Data Address 1

Data Address 2

Internal Memory

Exploitation du paralllisme

Two sets of functional units


including:

For(i=0;i<N;i+=3)
{
ACC=ACC + x[i].h[i]
ACC=ACC + x[i+1].h[i+1]
ACC=ACC + x[i+2].h[i+2]
}

For(i=0;i<N;i++)
{
ACC=ACC + x[i].h[i]
}

o Two multipliers
o Six arithmetic logic units (ALUs)
o 32 registers with 32-bit wordlength each
o Data-addressing units .D1 and
.D2 exclusively responsible for
data transfers between memory
and the register files

Fetch

Droulage des boucles : augmente l'ILP

CPU

ADD

32x8=256 bits

ARCHI05 - 80

Texas Instruments TMS 320C6x


VLIW CPU with eight functional
units (RISC-like code)
2400 MIPS @ 300MHz

MPY

LOAD
MULT

8-/16-/32-bit data support


40-bit arithmetic options
Saturation and normalisation
Bit-field manipulation and
instruction: extract, set, clear, bit
counting

N/3

ACC

LOAD
MULT
ACC

LOAD
MULT
ACC

Taux dutilisation
du processeur
100%

ARCHI05 - 81

ARCHI05 - 82

Exploitation du paralllisme

C6x

Pipeline logiciel : maximiser lIPC

Functional
Unit

Functional
Unit

Functional
Unit

Functional
Unit

Functional
Unit

Functional
Unit

Functional
Unit

Functional
Unit

.L1

.S1

.M1

.D1

.D2

.M2

.S2

.L2

Optimisation du code assembleur

Register File A

Data Memory Controller

Prologue

LOAD

MULT

Instruction

Description

LDH

ADD

Charge une donne


16 bits venant de la
mmoire dans un
registre
Charge deux donnes
16 bits conscutives
venant de la mmoire
Multiplication entre 2
registres, rsultat
dans un troisime
Addition

SUB

Soustraction

B
NOP

LOAD
LDW

ACC

MULT

LOAD
MPY

ACC

MULT

ACC

pilogue

Register File B

Nombre de
cycles
5

Units .M Units .L

Units .S Units .D

.D1
.D2

.D1
.D2

.M1
.M2

.S1
.S2
.S1
.S2
.S1
.S2
-

.D1
.D2
.D1
.D2
-

Branchement

.L1
.L2
.L1
.L2
-

aucune opration

100%
Taux dutilisation
du processeur

ARCHI05 - 83

Exploitation du paralllisme
Filtre FIR sur DSP VLIW C6x
x[0] = input;
acc = 0;
for (i=0; i<8; i++)
{
prod = h[i] * x[i];
acc = acc + prod;
}
output = (short) (acc >> 15);
1 Start
2
3 Loop
4
5
6
7
8
9 [B0]
10 [B0]
ARCHI05 - 85

MVKL .S2 8, B0
MVKL .S1 0, A5
LDH .D1 *A8++,A2
LDH .D1 *A9++,A3
NOP 4
MPY .M1 A2,A3,A4
NOP
ADD .L1 A4,A5,A5
SUB .L2 B0,1,B0
B .S1 loop

// Update most recent sample


// Zero accumulator
// 8 taps
// perform Q.15 multiplication
// Update 32-bit accumulator
// Cast output to 16 bits
;
;
;
;
;
;
;
;
;
;

Intialize the loop counter (B0) to 8


Intialize the accumulator (A5) to 0
Load x(i) in A2
Load h(i) in A3
LDH has a latency of 5 cycles
Multiply x(i) and h(i) in A4
MPY has a latency of 2
Add A4 to the accumulator A5
Sub 1 to the counter B0
Branch to loop if B0 <> 0

ARCHI05 - 84

Mthodes doptimisation

Depuis le code RISC


Instructions en parallle
Enlever les NOP
Droulage de boucle
Pipeline logiciel
Lecture mmoire de paquets de donnes
2 LDH

1 LDW
2 LDW

1 LDDW

ARCHI05 - 86

Code non optimis


loop:
loop:
ldh.d1
ldh.d1
nop

*A8++,A2
*A9++,A3
4

mpy.m1
nop
add.l1

A2,A3,A4

sub.l2
[b0] b.s1
nop

Instructions parallles
loop:

Code RISC

ldh.d1
|| ldh.d2
ldh.d2
nop

40 itrations
16*40 = 640 cycles

mpy.m1x
mpy.m1x
nop
add.l1

A4,A6,A6
B0,1,B0
loop
5

sub.l2
[b0] b.s1
nop

ARCHI05 - 87

A2,B3
,A4
A2,B3,A4

Paralllisme ?
40 itrations
15*40 = 600 cycles

A4,A6,A6
B0,1,B0
loop
5

ARCHI05 - 88

Remplacer les NOP


loop:
ldh.d1
|| ldh.d2
ldh.d2
nop
mpy.m1x
mpy.m1x
nop
add.l1
sub.l2
[b0] b.s1
nop

*A8++,A2
*B9++,B3
4
A2,B3
,A4
A2,B3,A4
A4,A6,A6
B0,1,B0
loop
5

Remplacer les NOP

Not Optimized Properly

loop:

Instructions la
place des NOP
Dpendances interinstructions
LDH

ldh.d1
|| ldh.d2
ldh.d2
sub.l2
[b0] b.s1
nop

LDH
a

b
5

MPY *
2

ADD

mpy.m1x
mpy.m1x
nop
add.l1

count SUB
1

+
1

ARCHI05 - 89

*A8++,A2
*B9++,B3
4

loop

6
ARCHI05 - 90

*A8++,A2
*B9++,B3
B0,1,B0
loop
2
A2,B3
,A4
A2,B3,A4
A4,A6,A6

Instructions la
place des NOP
40 itrations
8*40 = 320 cycles

Droulage de boucles

Pipeline logiciel

Droulage + r-ordonnancement des instructions

Rintroduction de la boucle sur le motif rpt

Cycle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

.D1
LDH
LDH
LDH
LDH
LDH
LDH
LDH
LDH
LDH

.D2
LDH
LDH
LDH
LDH
LDH
LDH
LDH
LDH
LDH

.L1

.L2

.M1

MPY
MPY
MPY
MPY
MPY
MPY
MPY
MPY
MPY

ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD

.M2

.S1

.S2

NOP

N=40 itrations
7 + (N-7) +7 =
47 cycles
47 instructions
VLIW!

ARCHI05 - 91

.D1
LDH
LDH
LDH
LDH
LDH
LDH
LDH
LDH
LDH

.D2
LDH
LDH
LDH
LDH
LDH
LDH
LDH
LDH
LDH

.L1

ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD

.L2
SUB
SUB
SUB
SUB
SUB
SUB
SUB

.M1

MPY
MPY
MPY
MPY
MPY
MPY
MPY
MPY
MPY

.M2

.S1

.S2

NOP

B
B
B
B
B
B

47 cycles
15 instructions

ARCHI05 - 92

Accs mmoire multiples


a1

a0

A0

LDW.D1

Accs mmoire multiples


*A5++,A0

x
x1
A7
a1 * x1

x0

A1

A3
a0 * x0

LDW.D1

*A6++,A1

MPY.M1 A0, A1, A3


MPYH.M1 A0, A1, A7

+
a1x1 + a0x0 A4
ARCHI05 - 93

Cycle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

ADD.L1

A3, A7, A4

Lecture de 4 donnes + 2 MAC en parallle


Cycle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

ARCHI05 - 94

.D1
LDW
LDW
LDW
LDW
LDW
LDW
LDW
LDW

.D2
LDW
LDW
LDW
LDW
LDW
LDW
LDW
LDW

.L1

ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD

.L2

ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD

.M1

.M2

MPY
MPY
MPY
MPY
MPY
MPY
MPY
MPY

MPYH
MPYH
MPYH
MPYH
MPYH
MPYH
MPYH
MPYH

.S1

.S2

NOP

N=40 itrations
7 + (N/2-7) +8
= 28 cycles

StarCore SC1400 core

VLIW combin au SIMD

Processeur VLIW 16 bits dvelopp en commun


par Agere (Lucent) et Freescale (Motorola)
300 MHz, faible tension
Optimis pour faible consommation

ADI TigerSHARC
Combine le VLIW au SIMD afin d'atteindre un
paralllisme massif
SIMD hirarchique
o Le TigerSHARC peut excuter 8 multiplications 16x16 en
virgule fixe par cycle (4x le C62xx)

Meilleure densit de code (16 bits) que C6x


Pipeline plus simple (5 tages contre 11)

BMU

MAC
ALU
Shift

MAC
ALU
Shift

MAC
ALU
Shift

Instruction SIMD

MAC
ALU
Shift

ALU

MAC

Shift

4 MAC 16 bits
ARCHI05 - 95

ARCHI05 - 96

VLIW combin au SIMD

C64x

C64x
Jusqu 1.1 GHz, ~9 GOPS
Six ALUs (32/40-Bit)
o une 32/40-Bit, deux 16-Bit, ou quatre 8-Bit oprations
arithmtiques par cycle et par ALU

Deux multiplieurs, quatre 16x16-Bit ou huit 8x8-Bit


multiplications par cycle
Coprocesseurs VCP (Viterbi) et TCP (Turbo)

'C6411: 300 MHz, $39, 1.0 V, 250mW, 2400


MIPS, 1200 MMACS
ARCHI05 - 97

ARCHI05 - 98

ALU

MAC

Shift

4 MAC 16 bits

Superscalaire

Avantages et inconvnients

Techniques drives des processeurs gnraux


hautes-performances

VLIW

Plusieurs (2-4) instructions par cycle


Jeu d'instructions de type RISC
Paralllisme important
LOOP
//
LDDU
Exemple
LSI Logic LSI40x

(ZSP400 core)

o 4-way, 260MHz
ARCHI05 - 99

FIR on LSI40x
R4, R14, 2
LDDU
R8, R15, 2
MAC2.A R4,R8
AGN0
LOOP

Superscalaire

Architectures plus orthogonales


meilleures cibles pour les
compilateurs
Grand bon dans les
performances
Architectures plus orthogonales
meilleures cibles pour les
compilateurs
Pas de problmes de
squencement

ARCHI05 - 100

Gnrations : bilan

ARCHI05 - 101

Avantages
Grand bon dans les
performances

Prdiction de branchement
Cache dynamique

Mthode

ARCHI05 - 102

Inconvnients
Bande passante vers la
mmoire importante
Forte consommation
Squencement dlicat
Augmentation de la taille du
code importante
Bande passante vers la
mmoire importante
Plus forte consommation
Temps d'excution
difficilement prdictible

Processeurs rcents (2005)


DSP

Analog Devices BF53x (Blackfin)


Analog Devices TS20x (TigerSHARC)
Freescale MC1xx/81xx
Texas Instruments C55x
Texas Instruments C64x

Processeurs applicatifs

ARCHI05 - 103

Vitesse (BDTImark2000)

ARCHI05 - 106

Intel PXA255/26x (XScale)


Intel PXA27x (XScale + Wireless MMX)
Samsung S3C24xx (ARM9)
Texas Instruments OMAP591x (ARM9 + C55x)

ARCHI05 - 105

Cot performance (mark/$)

ARCHI05 - 107

Efficacit nergtique (mark/mW)

ARCHI05 - 108

Efficacit mmoire (memmark)

ARCHI05 - 109

BDTIMark
III. Flot de dveloppement

1. Flot gnral de dveloppement


2. Compilation pour DSP
3. Arithmtique virgule fixe

ARCHI05 - 110

Flot de dveloppement gnral

Flot gnral (suite)

Dveloppement (actuel) d'applications (signal)

Algorithme 1

Mise au point
de l'algorithme

Matlab/Simulink
SPW, Ptolemy, CoCentric
VCC

Gnration manuelle ou automatique


Code C
"flottant"

Compilateur C, debugger
Utilisation de vecteurs de
test issus de la simulation
systme

Gnration manuelle
Compilateur C, debugger
Utilisation de vecteurs de
test issus de la simulation
systme

Code C
"fixe"
ARCHI05 - 112

Algorithme 1
Code C

Implantation
logicielle

Systme d'Exploitation
Temps Rel

Implantation
Matrielle

Algorithme 2
Code C

Compilateur C pour DSP


Simulation assembleur

Traduction en VHDL
Synthse du circuit
Simulation VHDL

Algorithme N
Code C

ARCHI05 - 113

Compilation

Inefficacit des compilateurs C

Compilation C vs optimisation assembleur

Surcot
associ au
compilateur

e.g. STMicrolectronics
Assembl
er MCU
28%

Assembl
er DSP
55%

Code C
DSP
8%
Code C
Ctrl
9%

Code C
MCU
5%

Assembler
MCU
25%

Assembler
DSP
25%

Code C
DSP
45%

Facteur 4 10
(virgule fixe)
Facteur 2 4
(flottants)
Orthogonalit

1000

800

Sur cot (%)

Conception de code enfoui dans l'industrie

Sur cot temps d'execution


1200

ANSI C
C modifi

600

400

200

VLIW
0

[Paulin97]
ARCHI05 - 115

ADSP21xx/
ADI

[Paulin00]

DSP56002/
Motorola

TMS320C51/ TMS320C54/ TMS320C62/


TI
TI
TI

Processeurs

ARCHI05 - 116

Inefficacit des compilateurs C

Raisons de linefficacit

Surcot associ
au compilateur

Absence de support de larithmtique virgule fixe


Inefficacit des techniques classiques de
dveloppement des compilateurs

Sur cot taille du code


400

350

ANSI C

Taille du code

300

o dveloppement de l'architecture puis du compilateur


compilateurs reciblables

C modifi

Sur cot (%)

250

200

Inefficacit des techniques classiques de


compilation

150

100

o architecture non orthogonale, units spcialises, instructions


complexes

50
0

Absence de support des spcificits des DSP

-50

o registres dtat, modes dadressage (modulo, bit invers)...

-100
ADSP21xx/
ADI

DSP56002/
Motorola

TMS320C51/
TI

TMS320C54/
TI

Processeurs

ARCHI05 - 117

TMS320C62/
TI

Extensions du langage C : e.g. Embedded C


ARCHI05 - 118

Formats de codage
III. Flot de dveloppement

Virgule fixe
Reprsentation : signe - partie entire - partie fractionnaire
nx

mx

1. Flot gnral de dveloppement


2. Compilation pour DSP
3. Arithmtique virgule fixe

S bm-1 bm-1

b1

b0 b-1 b-2

m1

bn-2 bn-1 bn

x = (2)m S + bi 2i CA2
i = n

o bx = mx + nx + 1
o le format dune donne ne varie pas au cours du temps

Virgule flottante
Reprsentation : exposant - mantisse
Exposant e bits

SE

d1

d2

Mantisse M+1 bits

de-1

SE

C1

C2

C3

Cm-2 Cm-1 Cm

1 M

x = 2u (1)SE + Ci 2i 1
2 i =1

E 1

avec u = (1)SE di 2i
i =1

ARCHI05 - 120

Comparaison fixe - flottant

Comparaison fixe - flottant

Dynamique virgule fixe/flottante

Virgule fixe (>90% des ventes des DSP)

Dynamique
max(x )
=
DN (dB) = 20. log

min( x )

D ynamique en dB

1500

Prcision importante mais problmes de dbordement


1000

o ncessit de recadrer les donnes

500

flottant
fixe

0
10

P
dB = 10. log s =
Pe

30

Rapport Signal Bruit virgule fixe/flottante


100

C5x > $5

Virgule flottante

flottant

80
RSB en dB

Rapport signal bruit


de quantification (SQNR)

15
20
25
Nombre de bits

60
40

(16 bits)
20

Temps de dveloppement plus long


Efficacit nergtique plus importante, plus rapide et moins cher
Consommation moins importante
March : applications grand public

Temps de dveloppement plus rapide, compilateurs plus efficaces


Plus grande portabilit, pas de recadrage
Pas de dbordements : dynamique de 1500dB (32 bits)
Plus cher, consomme plus
C67x > $30

fixe
0
-50

ARCHI05 - 121

0
Dynamique du signal d entr e en dB

50

ARCHI05 - 122

Elments de lUT

Rgles de larithmtique virgule fixe

Multiplieur cbl
Additionneur
U.A.L.

Addition: a+b

mA

BB

AA

(1 Op/cycle)

Format de a et b identique
Choix dun format commun

2N

MAC

Registres dcalage
recadrage des donnes

o Alignement de la virgule
o Extension de bits

nA
b1

Accumulateur
Accumulateur
Sat
/Arr

SR bmR

b1

bnA
nB

b0 b-1 b-2

m R = max(m A , m B ) + 1

bnA

n R = max(n A , n B )

mA

Reprsentation identique
Doublement du bit de signe

SA bmA b1

nA
b0 b-1 b-2 bnA
mB

nB

SB bmB b0 b-1 bnB

SR SR bmR

b1
mR = m A + mB

ARCHI05 - 124

mBnB

SB SB SB bmB Sb0 bb-1 bb-2 bbnB b0 b0


B
mB
0
-1
-2
nB

Multiplication: a b

stockage des donnes en double prcision

b0 b-1 b-2

mB

+
2N+bg

Gestion des dbordements


Bits de garde
Registres daccumulation
ARCHI05 - 123

SA bmA

b0 b-1 b-2
nR = nA + nB

bnR

Codage en virgule fixe : objectifs

Codage en virgule fixe : tapes

Objectifs pour le codage en virgule fixe

1. Dtermination de la dynamique des donnes

Garantir labsence de dbordements

o Connaissance du domaine de dfinition des donnes

2. Dtermination de la position de la virgule

Maximiser la prcision

3. Dtermination de la largeur des donnes

Minimiser le nombre
de bits de poids fort
non utiliss

Minimiser le pas de
quantification

S bm-1 bm-1

b1

b0 b-1 b-2

Oprateurs SIMD, prcision multiple

4. Evaluation de la prcision des calculs

bn-2 bn-1 bn

PMSB

Mthodes par simulation ou analytiques

PLSB

ARCHI05 - 125

ARCHI05 - 126

Filtre rcursifs (IIR)

Filtre IIR dordre 2 (cellule i)

Cascade de cellules dordre 2


wn

a1

z-1

a2

b1

+
b0

yn

yi-1(n)
sortie cellule
prcdente

+
a2,i

a1,i

wi(n-2)

wi(n-1)

wi(n)

a1

z-1

b1

b2

z-1

wn

+yn

b0

z-1

ADD0

(entre) x(n)

ADD 1

ADD 0

xn

Mthodes statistiques ou analytiques

a2

b1,i

b2,i

b2

b0,i

ADD1

+
y (n) (sortie)
yi(n) (entre cellule suivante)
ARCHI05 - 127

ARCHI05 - 128

Dynamique des donnes

Dynamique des donnes (IIR)

Normes utilises en TS
Norme L1

Sources de dbordements : additionneurs


IIR : 2 sources ADD0 et ADD1

z max1 = max n ( x(n) ). h(m)

Mthode garantissant
labsence de dbordements

m =

Norme Chebychev

Mthode garantissant labsence


de dbordements pour un signal
dentre bande troite e.g.

z max 2 = max n , ( x(n) ) max ( H ( ) )

x(n)=cos(wt)

b0

a1

z-1

b1

a2

ymax1 = xmax . h(m)


m =

H ( z) =
b2

mx = log 2 (max n ( x(n) )) = 0

Filtre1 Num (z )/Den(z )

mwi = log 2 (max n ( wi (n) )) = 4

x [1,1]

1.5

0.5 0.2428 z 1 + 0.5


H ( z) =
1 0.85 z 1 + 0.8417 z 2

h(m) = 2.5645 m

m =

H(jw)

m yi = log 2 (max n ( yi (n) )) = 2

0.5

=2

0
0

0.5

1.5

2.5

3.5

Filtre 1/Den(z )
8

( m) = 9
mw = 4 k1 = 4

HD(jw)

Codage des coefficients


= -27951
= 27581
= 16384
= 16384
= -7956

0
0

0.5

1.5

2.5

maij = log 2 (max j ( ai

)) = 0

( )) = 0

mbij = log 2 max j bij

ARCHI05 - 131

wmax1 = xmax . hD (m)

yn

Position de la virgule (IIR)

Exemple

a1
a2
b2
b0
b1

ARCHI05 - 130

Dynamique des donnes (IIR)

m =

ADD 1

z-1

1
H D ( z) =
1 + a1 z 1 + a2 z 2

ARCHI05 - 129

xmax

m =

Arithmtique dintervalle (non rcursifs)

xmax

wn

ADD 0

xn

3.5

Fonction de transfert des filtres H(z) et HD(z)

m ADD 0 = MAX (mx , mai + mwi + 1, mwi ) = 5


m ADD1 = MAX (mbi + mwi + 1, m yi ) = 5
ARCHI05 - 133

b0 + b1 z 1 + b2 z 2
1 + a1 z 1 + a2 z 2

Codage des donnes (IIR)

Conversion flottant-fixe (IRISA)

ADD0

(16,mx,,nx)
x(n)

(16,0,15)

(32, madd0 , nadd0)

C source
code

(32,5,16)

#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
Correlator.C

#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}

#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}

Floating-point
specification

Correlator.C

Correlator.C

a2,i

a1,i

(16,mw,nw)

BB

AA

wi(n-2)

16

16

32

b1,i

wi(n-1)
b2,i

wi(n)

b0,i

ADD1

+
(32, madd1, nadd1)
(32,5,16)

Binary-point
position
determination

High level
synthesis tool
BSS
Selection
Scheduling
Allocation

32

Acc
Acc

Fixed-point conversion

(16,4,11)

Fixed-point
specification
optimization

Accuracy
evaluation

Fixed-point
specification
optimization

Code generation
tool
CALIFE
Selection
Scheduling
Allocation

(16,my,ny)
(16,2,13)

Precision
constraint

y (n)
ARCHI05 - 134

ARCHI05 - 135

[Mnard02, Mnard04]

Conclusions

Conclusions

Processeurs spcialiss garantissent :

Les processeurs gnraux ont maintenant des


performances qui concurrencent les DSPs

efficacit nergtique, rapport performances/cot


autres exemples probants
o Processeurs multimdia
o Network Processor NPU

Les performances des processeurs DSPs ont augment


de 150x sur 15 ans (40% par an)
Les nouvelles architectures sont nombreuses
Mais les DSPs conventionnels dominent toujours le volume

Mais le prix ... et la consommation ne sont pas


applicables aux applications embarques grand public

La facilit de compilation est un facteur


important
time-to-market...

Choisir un DSP requiert une analyse fine


qui dpend de l'application...

ARCHI05 - 136

ARCHI05 - 137

Perspectives

Piste 1 : DSP conventionnel

Quelle sera larchitecture


pour le traitement du
signal et de limage de
demain (ou daprs
demain) ?

DSP conventionnel multi-MAC


Units spcialiss

Programmation ?

Viterbi
Turbo

MULT

MULT

MULT

MULT

FFT
ALU

ALU

ALU

CDMA
ACC
ARCHI05 - 138

ARCHI05 - 139

Piste 2 : ULIW
Ultra Large Instruction Word
e.g. Silicon Hive AVISPA+

Piste 3 : multiprocesseur
Compilation ?

SMT ?

ARCHI05 - 140

ACC

PicoArray (picoChip)
~320 PE (VLIW 3-way)
160 MHz
190 GIPS

ARCHI05 - 141

ALU

PicoArray

Piste 4 : FPGA

Static Interconnect

PE: 16-bit 3-way VLIW

e.g. Altera Stratix


Multiplieurs 9x9 18x18, 2
GMAC/s par bloc, 250 MHz

VHDL: structure
C/Assembly: PE
ARCHI05 - 142

ARCHI05 - 143

Piste 5 : processeur reconfigurable


Architecture DART

RDP1
Segmented Network

RDP2

Ctrl

RDP3
RDP4

Ctrl
DMA

RDP5

Config
Mem.

FPGA

Data.
Mem.

3G/UMTS Mobile Terminal


802.11a (Channel Est.)
IRISA/R2D2
STMicroelectronics
CEA LIST/LETI

RDP6

Loop Managment

AG1

AG2

AG3

AG4

Data
mem1

Data
mem2

Data
mem3

Data
mem4

Performances

Fully Connected Network

reg

reg

ARCHI05 - 144

FU1

FU2

FU3

FU4

5-10 GOPS/cluster@0.13m
200MHz, 11mm2
300 mW @ 5 GOPS
16 MOPS/mW @ 5 GOPS
Circuit en juin 2005

Bibliographie
DSP Processor Fundamentals :
Architectures and Features
(IEEE Press Series on Signal
Processing)
by Phil Lapsley, Jeff Bier, Amit
Shoham, Edward A. Lee,
Wiley-IEEE Press, 1997
Digital Signal Processors :
Architectures,
Implementations, and
Applications
by Sen M. Kuo, Woon-Seng S.
Gan, Prentice Hall, 2004
ARCHI05 - 145

Bibliographie

Bibliographie

Programmable Digital Signal


Processors
by Yu Hen Hu (Editor), Marcel
Dekker, 2001

Digital Signal Processing


Applications With Motorola's
DSP56002 Processor
by Mohammed El-Sharkawy,
Prentice Hall, 1996

VLSI Digital Signal Processors:


An Introduction to Rapid
Prototyping and Design
Synthesis
by Vijay Madisetti,
Butterworth-Heinemann, 1995

Digital Signal Processing


Implementation Using the
TMS320C6000 DSP Platform
(With CD-ROM) by Naim
Dahnoun, Prentice Hall, 2000

Mthodes et architectures pour


le TSI en temps rel, de Didier
Demigny, Herms, 2002
ARCHI05 - 146

Rfrences

[David00] R. David, Etat de l'art des curs de DSP, Rapport DEA, ENSSAT, 2000.
[Sentieys00] O. Sentieys, Etat de l'art des DSP, cole thmatique du CNRS - Conception de
systmes enfouis, Seix (Arige), 20-23 novembre 2000.
[Sentieys01] O. Sentieys, DSP et processeur superscalaire : la convergence ?, Symposium en
Architectures Nouvelles de Machines, Paris, 2001.
[Mnard04] D. Mnard, Processeur de traitement du signal, ENSSAT/EII, 2004.
[ICE97] B. McClean, Status 1997: A Report on the Integrated Circuit Industry, Integrated Circuit
Engineering Corporation (ICE), Scottsdale, 1997
[Bhaskaran95] V. Bhaskaran & K. Konstantinides, Image and Video Compression Standards Algorithms and Architectures, Kluwer Academic Publishers, Boston, 1995.
[Bier97] J. Bier, P. Lapsley & G. Blalock, Choosing a DSP Processor, Berkeley Design Technology
(BDT), 1997.
[DeMan97] H. De Man and al., Language Based Design of Digital Systems, AI Course, KU
Leuven/IMEC, april 1997.
[Lapsley96] P. Lapsley and G. Blalock, How to Estimate DSP Processor Performance, IEEE
Spectrum, July 1996.
[Pirsch97] P. Pirsch: Video and Image Processing Architectures - Dedicated and Programmable
Solutions, NFWO Symposium on Video Processing Architectures, January 1997.
[Ackland98] B. Ackland and C. Nicol, "High Performance DSPs - What's Hot and What's Not?", IEEE
Int. Symposium on Low Power Electronic Design ISLPED, 1998.
[Ropers99] A. Ropers and al., "DSPstone : TI C54x" Report IISPS AAchen University of Technology,
1999.

ARCHI05 - 148

DSP Applications Using C and


the TMS320C6x DSK by Rulph
Chassaing, Wiley-Interscience,
2002

ARCHI05 - 147

Webographie

http://www.bdti.com
http://dsprelated.com/
http://www.ti-training.com/courses
http://www.eg3.com/dsp/index.htm

ARCHI05 - 149

Vous aimerez peut-être aussi