Beruflich Dokumente
Kultur Dokumente
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
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
Tches lmentaires
Algorithmes de TdSI1
ARCHI05 - 5
1Traitement
du signal et de limage
Signaux numriques
o Temps et amplitude discrets
o Flot de donnes
o Scalaires, vectorielles, matricielles,
s(t)
ARCHI05 - 6
Algorithme
Tf
Diversits
Caractristiques algorithmiques
< 5 MOPS
10-30 MOPS
Faible
mesure/contrle
Compression ADSL
Compression
UMTS
parole modemsaudio GSM Compression
Imagerie
vido
mdicale
1 4 - 18 22 bits
o Nids de boucles
o Multiplications-accumulations (convolution)
o Multiplications-additions (FFT, DCT, adaptation, distances, ...)
convertisseurs sigma-delta
ARCHI05 - 7
6 - 14 bits
sonar
10 - 12 bits
parole
8 - 14 bits
audio
16 - 20 bits
imagerie / vido
analyseurs de sang
16 - 18 bits
Convolution, filtrage
Adaptation (LMS)
o yn = yn-1 + x.h : MAD (multiplication-addition)
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
x(n)
TAP
ARCHI05 - 10
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
Solutions architecturales
Estimation de mouvement
Efficacit nergtique
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
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
12000
10000
8000
6000
4000
2000
0
1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007
II. Architecture
MAC/Harvard
ARCHI05 - 17
Problmes
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
*r0,x0
*r1,x1
x0,y0,a
a,b
y0,*r2
r0
r1
r2
ctr
ctr
loop
Data Path
Memory
Proprits du traitement
numrique du signal
Calculs intensifs et
rptitifs
Primitives simples
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
DATA BUS - A
DATA BUS - B
24
24
X0
X1
Y0
Y1
Operand
Registers
24
24
Multiplier
56
56
ALU
Shifter
56
(-1, 0, +1)
Accumulators
24
A (56)
B (56)
56
24
56
Shifter/Limiter
ARCHI05 - 23
DATA
RAM-B
DATA BUS - A
DATA
RAM-A
(-1, 0, +1)
24
in@2 in@1
24
ARCHI05 - 24
in
II. Architecture
MAC/Harvard
Program
Memory
MULT
Data Path
P
Data
Memory
ALU
ACC
Excution en N+ cycles
ARCHI05 - 25
Processeur : modlisation
DP
IP
DM
IM
Unit de mmorisation
IM : Instruction Memory : stocke les instructions
DM : Data Memory : stocke les donnes traites par le DP
[Flynn72] [Skillicorn88]
e.g. TMS320C10
ARCHI05 - 28
Augmentation du nombre de FU
plusieurs DP peuvent excuter des instructions en parallle sur des
donnes indpendantes
[Verbauwhede00]
ARCHI05 - 29
ARCHI05 - 30
Modification 1
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
ARCHI05 - 32
DP
IP
1-vers-2
DM
IM/DM
Modification 2
Modification 3
DP
DM
IP
IM
ARCHI05 - 33
ARCHI05 - 34
DP
IP
1-vers-2
cache
DM
IM/DM
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
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
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
36
ARCHI05 - 37
ARCHI05 - 39
Gnrations
Caractristiques complmentaires
10000
4me gnration
StareCore(300MHz)
TMS320C62x (300MIPS)
Carmel (300 MHz)
1000
100
DSP56301
TMS320C54x (50-100MIPS)
ADSP2183 (50MIPS)
2me gnration
DSP56001 (13MIPS)
ADSP21xx (13MIPS)
TMS320C50
10
1re
Structures de contrle
3me gnration
gnration
Modes dadressage
TMS320C20 (5 MIPS)
TMS320C10 (2.5 MIPS)
1
1980
ARCHI05 - 40
1982
1984
1986
1988
1990
1992
Anne
1994
1996
1998
2000
2002
ARCHI05 - 41
[cf. Annexes]
Rsum (1)
Calcul
Prcision
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
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
Mtriques de performance
Diffrents niveaux
Prcision de la mtrique
Applications complte
Applications
Taches
Curs dalgorithme
Benchmarking
Curs d'algorithme
o FIR, IIR, FFT, Control, ..
Oprations
MMACS/MOPS
MIPS
ARCHI05 - 46
ARCHI05 - 47
BDTImark2000
http://www.bdti.com
BDTIMARK
ARCHI05 - 49
BDTIMARK
BDTImark
Zoran ZR3800x
62
23
17
65
Processeurs
NEC PD77015
56
Motorola DSP56166
14
Motorola DSP56002
IBM MDSP2780
15
25
37
22
19
26
25
100
200
300
400
500
600
700
800
900
99
0
20
40
60
ARCHI05 - 50
80
100
120
ARCHI05 - 51
Score
Cot
Important pour une production fort volume
Faible cot
Zoran ZR3800x
Texas Instruments TMS320C541
Texas Instruments TMS320C52
mW/MIPS
Motorola DSP56166
10000
M68K $200
Motorola DSP56002
IBM MDSP2780
I286 $200
1000
I386 $300
DSP1 $150
Pentium $500
100
DSP32C $250
10
DSP16A $15
0
1
1980
ARCHI05 - 52
1985
1990
DSP16210 <$10
DSP1600 $10
1995
2000
[Ackland ISLPD98]
10000
20000
30000
40000
50000
60000
70000
nergie
III. volution des DSP
C549
100 MHz, 2.5V
16
12
C6201
1.
2.
3.
4.
5.
6.
DSP16210
100 MHz, 3.3V
10
ZSP16401
8
6
ADSP-21160
0
1
70
C6
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
Augmenter le paralllisme
Augmentation du nombre d'oprations excutes
dans chaque instruction
Augmentation du nombre d'instructions excutes
par cycle d'horloge
Gnrations
10000
4me gnration
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
Architecture C54x
C54x
TMS320C54x
Architectures multi-MAC
Lucent DSP 16xxx
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
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
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
Bus X 32b
o Consommation -85%
o Performances 5x
C5510
MULT
ALU
MULT
ADDER
Jusqu' 20 MIPS/mW
C54x
Bus I 32b
Architecture C55x
C5502
400 MIPS
160 mW
2.5 MIPS/mW
ARCHI05 - 68
Architecture C55x
FIR symtrique
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
1.
2.
3.
4.
5.
6.
ARCHI05 - 71
Mthodes de couplage
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
Dveloppement plus
risqu
ST 140
Compatible ST100
Compatible ST122 (dualMAC)
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
ARCHI05 - 76
.
.
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
...
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
ARCHI05 - 79
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
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
CPU
ADD
32x8=256 bits
ARCHI05 - 80
MPY
LOAD
MULT
N/3
ACC
LOAD
MULT
ACC
LOAD
MULT
ACC
Taux dutilisation
du processeur
100%
ARCHI05 - 81
ARCHI05 - 82
Exploitation du paralllisme
C6x
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
Prologue
LOAD
MULT
Instruction
Description
LDH
ADD
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
ARCHI05 - 84
Mthodes doptimisation
1 LDW
2 LDW
1 LDDW
ARCHI05 - 86
*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
*A8++,A2
*B9++,B3
4
A2,B3
,A4
A2,B3,A4
A4,A6,A6
B0,1,B0
loop
5
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
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
a0
A0
LDW.D1
x
x1
A7
a1 * x1
x0
A1
A3
a0 * x0
LDW.D1
*A6++,A1
+
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
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
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)
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
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
ARCHI05 - 98
ALU
MAC
Shift
4 MAC 16 bits
Superscalaire
Avantages et inconvnients
VLIW
(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
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 applicatifs
ARCHI05 - 103
Vitesse (BDTImark2000)
ARCHI05 - 106
ARCHI05 - 105
ARCHI05 - 107
ARCHI05 - 108
ARCHI05 - 109
BDTIMark
III. Flot de dveloppement
ARCHI05 - 110
Algorithme 1
Mise au point
de l'algorithme
Matlab/Simulink
SPW, Ptolemy, CoCentric
VCC
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
Traduction en VHDL
Synthse du circuit
Simulation VHDL
Algorithme N
Code C
ARCHI05 - 113
Compilation
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
ANSI C
C modifi
600
400
200
VLIW
0
[Paulin97]
ARCHI05 - 115
ADSP21xx/
ADI
[Paulin00]
DSP56002/
Motorola
Processeurs
ARCHI05 - 116
Raisons de linefficacit
Surcot associ
au compilateur
350
ANSI C
Taille du code
300
C modifi
250
200
150
100
50
0
-50
-100
ADSP21xx/
ADI
DSP56002/
Motorola
TMS320C51/
TI
TMS320C54/
TI
Processeurs
ARCHI05 - 117
TMS320C62/
TI
Formats de codage
III. Flot de dveloppement
Virgule fixe
Reprsentation : signe - partie entire - partie fractionnaire
nx
mx
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
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
Dynamique
max(x )
=
DN (dB) = 20. log
min( x )
D ynamique en dB
1500
500
flottant
fixe
0
10
P
dB = 10. log s =
Pe
30
C5x > $5
Virgule flottante
flottant
80
RSB en dB
15
20
25
Nombre de bits
60
40
(16 bits)
20
fixe
0
-50
ARCHI05 - 121
0
Dynamique du signal d entr e en dB
50
ARCHI05 - 122
Elments de lUT
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
SR SR bmR
b1
mR = m A + mB
ARCHI05 - 124
mBnB
Multiplication: a b
b0 b-1 b-2
mB
+
2N+bg
SA bmA
b0 b-1 b-2
nR = nA + nB
bnR
Maximiser la prcision
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
bn-2 bn-1 bn
PMSB
PLSB
ARCHI05 - 125
ARCHI05 - 126
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
a2
b1,i
b2,i
b2
b0,i
ADD1
+
y (n) (sortie)
yi(n) (entre cellule suivante)
ARCHI05 - 127
ARCHI05 - 128
Normes utilises en TS
Norme L1
Mthode garantissant
labsence de dbordements
m =
Norme Chebychev
x(n)=cos(wt)
b0
a1
z-1
b1
a2
H ( z) =
b2
x [1,1]
1.5
h(m) = 2.5645 m
m =
H(jw)
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)
0
0
0.5
1.5
2.5
)) = 0
( )) = 0
ARCHI05 - 131
yn
Exemple
a1
a2
b2
b0
b1
ARCHI05 - 130
m =
ADD 1
z-1
1
H D ( z) =
1 + a1 z 1 + a2 z 2
ARCHI05 - 129
xmax
m =
xmax
wn
ADD 0
xn
3.5
b0 + b1 z 1 + b2 z 2
1 + a1 z 1 + a2 z 2
ADD0
(16,mx,,nx)
x(n)
(16,0,15)
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
ARCHI05 - 136
ARCHI05 - 137
Perspectives
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
VHDL: structure
C/Assembly: PE
ARCHI05 - 142
ARCHI05 - 143
RDP1
Segmented Network
RDP2
Ctrl
RDP3
RDP4
Ctrl
DMA
RDP5
Config
Mem.
FPGA
Data.
Mem.
RDP6
Loop Managment
AG1
AG2
AG3
AG4
Data
mem1
Data
mem2
Data
mem3
Data
mem4
Performances
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
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
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