Vous êtes sur la page 1sur 69

cole Suprieure Priv dIngnierie et de

Technologies

Concepts et Pratique des

Processeurs Numriques des


Signaux (DSP)
Chiheb Rebai, Nadia Khouja
chiheb.rebai@supcom.rnu.tn, nadia.khouja@supcom.rnu.tn

Esprit, Fvrier 2011


1

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Objectifs du cours
Mise en vidence de:
Fonctionnalits de base des processeurs numriques des signaux (DSP)
Architectures des cores et des priphriques des DSPs

Mthodologies et Outils de dveloppement, de vrification et de mise au point

Comptences acqurir:
Matrise des architectures matrielles des DSPs
Matrise du jeu dinstructions pour la programmation des DSP
Spcification des applications dimplantation sur DSP
Rgles de structuration et de dveloppement de codes DSP

Matrise des outils de dveloppement et de test des applications DSP

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Programme du module
Sance 1 Concepts de base des DSP: dfinition et architecture
gnrique

C. Rebai

Sance 2 tude des DSP AD-Blackfin: architecture et jeu


dinstructions

C. Rebai

Sance 3 Initiation lenvironnement de dveloppement intgr


Visual DSP++

C. Rebai

Sance 4 Application 1: Familiarisation avec le jeu dinstructions


du DSP Blackfin

C. Rebai
M. Attia

Sance 5 Application 2: Implantation dun filtre rponse


impulsionnelle finie (FIR)

C. Rebai
M. Attia

Sance 6 Application 3: Chargement des porteuses dun

C. Rebai
M. Attia

modulateur DMT
Sance 7 Application 4: Fonctions de traitement dimages

C. Rebai
M. Attia

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Partie 2

Etude des DSP AD-Blackfin


Architecture du core ADSP Blackfin

Units priphriques
Jeu dinstructions et exemples

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

cole Suprieure Priv dIngnierie et de


Technologies

Architecture du core
ADSP Blackfin

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Road Map DSP AD-Blackfin

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Architecture ADSP BF533

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Architecture ADSP BF535

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Architecture ADSP BF561


Interrupt
Controller/
Timer

Interrupt
Controller/
Timer

Watchdog
Timer

Blackfin-LP Core
Instr Cache / SRAM
Data Cache / SRAM
Scratch

Watchdog
Timer

Clock and
Power Mgmt
Cntl (PLL)

Dual Core

JTAG Test
and
Emulation

UART0
IrDA

Blackfin-LP Core
Instr Cache / SRAM
Data Cache / SRAM
Scratch

128K Bytes
SRAM

SPI
SPORT0

System Bus
Interface Unit

64
IMDMA
Controller

32

SPORT1
GP I/O

DMA
Controller 1

Boot ROM

Timers

DMA
Controller 2

32

DAB
PAB 16

EAB
32
External Mem
Controller

16

DAB

PPI

PPI

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Modes opratoires
Les DSP Blackfin supportent 3 modes:
Supervisor Mode
Permet un accs complet toutes les ressources priphriques
Utilis pour les OS kernel et les device derivers
Permet de servir les interruptions et les exceptions

User Mode
Code dalgorithmes ne permettant pas un accs aux ressources priphriques
Ne permet pas de servir les interruptions et les exceptions

Emulator (or Debug) Mode


Permet les mmes fonctionnalits que le Supervisor mode et accessible via
JTAG

10

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Architecture du core

11

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Units arithmtiques et dadressage


2 DAGs

Data Registers
Manipulation de
donnes 8, 16, ou
32 bits partir du
banc de registres
de calcul

2 Multiplieurs 16 bits
2 accumulateurs 40 bits
2 ALU 40 bits
4 ALU video 8 bits
1 Shifter

12

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Registres du core
Tous les traitements sont effectus sur des donnes contenues dans des registres
Tous les priphriques sont configurs avec des registres
Laccs mmoire se fait travers des pointeurs dans les registres dadresses
Laccs aux registres se fait par nom ou registre mapp en mmoire (MMRs : Memory
Mapped registers)

Registres du core accessibles par nom

13

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Registres du core

Frame Pointer
Stack Pointer

14

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Registres de donnes
R[7:0]

: 32 bits

R[7:0].H : 16 bits
R[7:0].L : 16 bits

A[1:0]

: 40 bits

A[1:0].X

: 8 bits

A[1:0].W : 32 bits
A[1:0].H

: 16 bits

A[1:0].L

: 16 bits

Exemple: accs par nom

15

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Registres des DAG


Caractristiques
Supply address and post-modify

Supply address with offset


Modify address
Bit-reversed carry address

16

Index registers:

I[3:0]

Unsigned 32-bit

Modify registers:

M[3:0]

Signed 32-bits

Base and Length registers:

B[3:0] and L[3:0]

Unsigned 32-bits

Pointer registers:

P[5:0], FP, USP, and SP Unsigned 32-bits

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Instructions DAG
R0 = [ I2 ] ;

/*loads a 32-bit value from an address pointed to by I2 and stores it in the


destination register R0*/

R0 = [ I2++M1 ] ;

/*loads a 32-bit value from an address pointed to by I2 and stores it in the


destination register R0, I2 is then updated by M1 content*/

R0.H = W [ I2 ] ;

/* loads a 16-bit value from an address pointed to by I2 and stores it in the

16-bit destination register R0.H */


[ P1 ] = R0 ;

/* 32-bit store operation.*/

B [ P1++] = R0 ;

/* stores the 8-bit value from the R0 register in the address pointed to by
P1 register, then increments P1 register Byte transfer only with pointers */

R0 = W [ P1++ ] (Z) ; /* loads a 16-bit word into a 32-bit destination register from an address
pointed to by the P1 Pointer register. The Pointer is then incremented by
2 and the word is zero-extended to fill the 32-bit destination register */

I1 += M2 ;

17

/* adds M2 to I1 and updates I1 with the new value, no memory access*/

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Architecture ALU

18

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Fonctions ALU

19

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Oprations ALU 16 bits


Single 16-bit addition

Quad 16-bit addition

with saturation

Dual 16-bit addition


Dual 16-bit Cross
addition

20

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Oprations ALU 32 bits


32-bit addition

Dual 32-bit addition

21

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Oprations ALU logiques

22

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Architecture MAC

23

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Fonctions MAC

24

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Mode 1: Fractional mode

25

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Mode 2: Integer mode

26

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Single MAC 16-bit operation

27

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Multiplication + accumulation

28

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

MAC avec transfert DReg

29

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Dual MAC operations

30

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Dual MAC operations

31

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Architecture du SHIFTER

32

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Fonctions SHIFTER

33

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Oprations SHIFTER
Dcalage arithmtique

Rotation

34

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Dcalage logique

35

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Program Sequencer

Fonctionnalits Program
Sequencer
Maintains Loops,

Subroutines, Jumps, Idle,


Interrupts and Exceptions
Contains a 10-stage
instruction pipeline

Includes Zero-Overhead
Loop Registers

36

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Instructions Program Sequencer

37

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Instructions Pipeline

38

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Excution Pipeline

39

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Program Flow Control


(If CC) jump get_new_sample ; /* assembler resolved target, abstract offsets */
(If !CC ) jump (p5) ; /* P5 contains the absolute address of the target */
call ( p5 ) ;

call get_next_sample ;
P5 = 0x20;

LSETUP (lp_start, lp_end) LC0 = P5; /* loop setup instruction */


lp_start: R5 = R0 + R1(ns) || R0 = [P2++] || R1 = [I1++];
lp_end: R5 = R5 + R2;

Two sets of loop registers are used to manage two nested loops:
LC[1:0] the Loop Count registers
LT[1:0] the Loop Top address registers
LB[1:0] the Loop Bottom address registers
40

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Interruptions vs Exceptions

41

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Classification des interruptions

42

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Variation Program Flow

43

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Caractristiques de la mmoire
32 bits dadresses

Capacit maximale dadressage = 4 Goctets

L1 Static Random Access Memories (SRAM)


A set of memory-mapped registers (MMRs)
A boot Read Only Memory (ROM)

44

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Hirarchie mmoire

45

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Mapping de la mmoire
Memory
Mapped
Registers

Piles
Systme et
utilisateur

46

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Mmoire L1 - Instructions

47

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Mmoire L1 - Data

48

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

cole Suprieure Priv dIngnierie et de


Technologies

Priphriques

49

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Architecture des priphriques

50

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Priphriques communication srie

51

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Architecture ports srie (SPORTs)


Peripheral Access Bus
DMA Access Bus

52

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Fonctionnalits SPORTs

53

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Fonctionnalits SPI

54

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Architecture SPI

55

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Application SPI

MOSI: Master Output Slave In


MISO: Master Input Slave Out
SPISS: Serial Peripheral Interface Slave Select
56

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Fonctionnalits UART

57

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Fonctionnalits PPI

58

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Applications PPI

59

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

DMA: Direct Memory Access


Mmoire

Mmoire

Interne

Externe

(L1)

(SDRAM)

Priphriques

Le contrleur DMA permet le transfert


de donnes sans lintervention du
processeur
Le core met jour les registres et
rpond aux interruptions quand les
donnes sont prtes

SPORT
PPI
UART

60

Transfert 1-D
Transfert 2-D avec diffrentes tailles de
colonnes et lignes et diffrents pas

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Timers
Core Timer
6 Timers (BF533)
Un Core Timer
Un Watchdog Timer

Un Real-Time Clock (RTC)


Trois 32-bit General Purpose
Timers:
Pulse and Capture Mode

PWM Mode
External Clock Mode

61

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

cole Suprieure Priv dIngnierie et de


Technologies

Jeu dinstructions

62

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

tapes de dveloppement logiciel

63

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Classes dinstructions

Oprations

Vido

Logiques
Load

Move

Store
Oprations

Oprations
Bits

Arithmtiques
Dcalages
Rotations

Usages gnral
&
Applications
spcifiques

64

Vecteurs

Appels
Sauts

Instructions
parallles

Applications
spcifiques

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Exemple 1:

gnration dun flux srie

BITMUX ( source_1, source_0, A0 ) (ASR); (Right Shift)

BITMUX ( source_1, source_0, A0 ) (ASL); (Left Shift)


In the Shift Right version, the processor performs the following sequence:
1. Right shift Accumulator A0 by one bit. Right shift the LSB of source_1 into the MSB of the
Accumulator.
2. Right shift Accumulator A0 by one bit. Right shift the LSB of source_0 into the MSB of the
Accumulator.

After Right Shift

Codeur convolutif (5,7)


65

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Exemple 2:

LFSR

A0 = BXORSHIFT ( A0, A1, CC ) ;


Implmentation des Linear Feedback Shift Registers

(N)

1: connexion

(P)
(Q)
(R)

Applications
Division plynmiale: P/Q = N+R

Codeurs et dcodeurs cycliques


66

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Instructions sur les vecteurs


Instructions qui manipulent plusieurs donnes 16 bits en mme temps
Oprations supportes: Addition, soustraction, multiplications, dcalages,

r5=r3 +|+ r4 ; /* dual 16-bit operations, add|add */


r6=r0 -|+ r1(s) ; /* same as above, subtract|add with saturation */

r5=r3 +|- r4, r7=r3 -|+ r4 ; /* 4 additions in the same time */


r7 = max (r1, r0) (v) ;

67

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

Instructions parallles

32-bit ALU/MAC instruction || 16-bit instruction || 16-bit instruction ;


32-bit ALU/MAC instruction || 16-bit instruction ;
/* Multiply and accumulate while loading two data registers. One load uses an
Ireg pointer. */
A1+=R0.L*R2.H,A0+=R0.L*R2.L || R2.L=W[I2++] || R0=[I1--] ;
R3.H=(A1+=R0.L*R1.H), R3.L=(A0+=R0.L*R1.L) || R0=[P0++] || R1=[I0] ;

/* Multiply-Accumulate to a Data register while incrementing an Ireg. */


r6=(a0+=r3.h*r2.h)(fu) || i2-=m0 ;

68

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011

cole Suprieure Priv dIngnierie et de


Technologies

Fin
de la 2me partie

69

ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP Fvrier 2011