cours dsp esprit p2 2011
TRANSCRIPT
-
8/18/2019 Cours Dsp Esprit p2 2011
1/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 20111
Concepts et Pratique des
Processeurs Numériques des
Signaux (DSP)
Chiheb Rebai, Nadia [email protected], [email protected]
©Esprit, Février 2011
École Supérieure Privé d’Ingénierie et deTechnologies
mailto:[email protected]:[email protected]:[email protected]:[email protected]
-
8/18/2019 Cours Dsp Esprit p2 2011
2/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 20112
Objectifs du cours
Mise en évidence de:Fonctionnalités de base des processeurs numériques des signaux (DSP)
Architectures des cores et des périphériques des DSPs
Méthodologies et Outils de développement, de vérification et de mise au point
Compétences à acquérir:
Maîtrise des architectures matérielles des DSPs
Maîtrise du jeu d’instructions pour la programmation des DSP
Spécification des applications d’implantation sur DSP
Règles de structuration et de développement de codes DSP
Maîtrise des outils de développement et de test des applications DSP
-
8/18/2019 Cours Dsp Esprit p2 2011
3/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 20113
Programme du module
Séance 1 Concepts de base des DSP: définition et architecturegénérique
C. Rebai
Séance 2 Étude des DSP AD-Blackfin: architecture et jeud’instructions
C. Rebai
Séance 3 Initiation à l’environnement de développement intégré
Visual DSP++
C. Rebai
Séance 4 Application 1: Familiarisation avec le jeu d’instructions
du DSP BlackfinC. Rebai
M. Attia
Séance 5 Application 2: Implantation d’un filtre à réponse
impulsionnelle finie (FIR)C. Rebai
M. Attia
Séance 6 Application 3: Chargement des porteuses d’unmodulateur DMT
C. RebaiM. Attia
Séance 7 Application 4: Fonctions de traitement d’images C. Rebai
M. Attia
-
8/18/2019 Cours Dsp Esprit p2 2011
4/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 20114
Partie 2
Etude des DSP AD-Blackfin
Architecture du core ADSP Blackfin
Unités périphériques
Jeu d’instructions et exemples
-
8/18/2019 Cours Dsp Esprit p2 2011
5/69 ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 20115
Architecture du core
ADSP Blackfin
École Supérieure Privé d’Ingénierie et deTechnologies
-
8/18/2019 Cours Dsp Esprit p2 2011
6/69 ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 20116
Road Map DSP AD-Blackfin
-
8/18/2019 Cours Dsp Esprit p2 2011
7/69 ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 20117
Architecture ADSP BF533
-
8/18/2019 Cours Dsp Esprit p2 2011
8/69 ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 20118
Architecture ADSP BF535
-
8/18/2019 Cours Dsp Esprit p2 2011
9/69 ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 20119
Architecture ADSP BF561
JTAG Testand
Emulation
InterruptController/
Timer
Blackfin-LP Core Instr Cache / SRAMData Cache / SRAM
Scratch
Blackfin-LP Core Instr Cache / SRAMData Cache / SRAM
Scratch
128K Bytes SRAM
System Bus Interface Unit
GP I/O
SPI
UART0 IrDA
64
SPORT0
SPORT1 32
PPI PPI External Mem
Controller
32
16
DMAController 1
DMAController 2
32
16
Watchdog
Timer
Boot ROM
PAB EAB DAB
Clock andPower Mgmt
Cntl (PLL)
InterruptController/
Timer
Watchdog
Timer
IMDMAController
DAB
Timers
Dual Core
-
8/18/2019 Cours Dsp Esprit p2 2011
10/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201110
Modes opératoires
Les DSP Blackfin supportent 3 modes:
Supervisor Mode
Permet un accès complet à toutes les ressources périphériques
Utilisé pour les OS kernel et les device derivers
Permet de servir les interruptions et les exceptions
User Mode
Code d’algorithmes ne permettant pas un accès aux ressources périphériques
Ne permet pas de servir les interruptions et les exceptions
Emulator (or Debug) Mode
Permet les mêmes fonctionnalités que le Supervisor mode et accessible via
JTAG
-
8/18/2019 Cours Dsp Esprit p2 2011
11/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201111
Architecture du core
-
8/18/2019 Cours Dsp Esprit p2 2011
12/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201112
2 Multiplieurs 16 bits
2 accumulateurs 40 bits
2 ALU 40 bits
4 ALU video 8 bits
1 Shifter
Data Registers
Manipulation dedonnées 8, 16, ou32 bits à partir dubanc de registres
de calcul
2 DAGs
Unités arithmétiques et d’adressage
-
8/18/2019 Cours Dsp Esprit p2 2011
13/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201113
Registres du core
Tous les traitements sont effectués sur des données contenues dans des registres
Tous les périphériques sont configurés avec des registres
L’accès mémoire se fait à travers des pointeurs dans les registres d’adresses
L’accès aux registres se fait par nom ou registre mappé en mémoire (MMRs : Memory
Mapped registers)
Registres du core accessib les par nom
-
8/18/2019 Cours Dsp Esprit p2 2011
14/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201114
Registres du core
Frame Pointer
Stack Pointer
-
8/18/2019 Cours Dsp Esprit p2 2011
15/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201115
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 bi ts
A[1:0].W : 32 bits
A[1:0].H : 16 bits
A[1:0].L : 16 bits
Registres de données
Exemple: accès par nom
-
8/18/2019 Cours Dsp Esprit p2 2011
16/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201116
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
Caractéristiques
• Supply address and post-modify
• Supply address with offset
• Modify address
• Bit-reversed carry address
Registres des DAG
-
8/18/2019 Cours Dsp Esprit p2 2011
17/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201117
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 ; /* adds M2 to I1 and updates I1 with the new value, no memory access*/
Instructions DAG
-
8/18/2019 Cours Dsp Esprit p2 2011
18/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201118
Architecture ALU
-
8/18/2019 Cours Dsp Esprit p2 2011
19/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201119
Fonctions ALU
-
8/18/2019 Cours Dsp Esprit p2 2011
20/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201120
Opérations ALU 16 bits
Single 16-bit addition
Dual 16-bit addition
Quad 16-bit addition
Dual 16-bit Cross
addition
with saturation
-
8/18/2019 Cours Dsp Esprit p2 2011
21/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201121
Opérations ALU 32 bits
32-bit addition
Dual 32-bit addition
-
8/18/2019 Cours Dsp Esprit p2 2011
22/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201122
Opérations ALU logiques
-
8/18/2019 Cours Dsp Esprit p2 2011
23/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201123
Architecture MAC
-
8/18/2019 Cours Dsp Esprit p2 2011
24/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201124
Fonctions MAC
-
8/18/2019 Cours Dsp Esprit p2 2011
25/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201125
Mode 1: Fractional mode
-
8/18/2019 Cours Dsp Esprit p2 2011
26/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201126
Mode 2: Integer mode
-
8/18/2019 Cours Dsp Esprit p2 2011
27/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201127
Single MAC 16-bit operation
-
8/18/2019 Cours Dsp Esprit p2 2011
28/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201128
Multiplication + accumulation
-
8/18/2019 Cours Dsp Esprit p2 2011
29/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201129
MAC avec transfert DReg
-
8/18/2019 Cours Dsp Esprit p2 2011
30/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201130
Dual MAC operations
-
8/18/2019 Cours Dsp Esprit p2 2011
31/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201131
Dual MAC operations
-
8/18/2019 Cours Dsp Esprit p2 2011
32/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201132
Architecture du SHIFTER
-
8/18/2019 Cours Dsp Esprit p2 2011
33/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201133
Fonctions SHIFTER
-
8/18/2019 Cours Dsp Esprit p2 2011
34/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201134
Opérations SHIFTER
Décalag e arithmétique
Rotation
-
8/18/2019 Cours Dsp Esprit p2 2011
35/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201135
Décalage logique
-
8/18/2019 Cours Dsp Esprit p2 2011
36/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201136
Program Sequencer
Fonctionnalités Program
Sequencer
Maintains Loops,
Subroutines, Jumps, Idle,
Interrupts and Exceptions
Contains a 10-stage
instruction pipeline
Includes Zero-Overhead
Loop Registers
-
8/18/2019 Cours Dsp Esprit p2 2011
37/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201137
Instructions Program Sequencer
-
8/18/2019 Cours Dsp Esprit p2 2011
38/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201138
Instructions Pipeline
Exécution Pipeline
-
8/18/2019 Cours Dsp Esprit p2 2011
39/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201139
Program Flow Control
-
8/18/2019 Cours Dsp Esprit p2 2011
40/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201140
(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
Interruptions vs Exceptions
-
8/18/2019 Cours Dsp Esprit p2 2011
41/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201141
Classification des interruptions
-
8/18/2019 Cours Dsp Esprit p2 2011
42/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201142
Variation Program Flow
-
8/18/2019 Cours Dsp Esprit p2 2011
43/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201143
Caractéristiques de la mémoire
-
8/18/2019 Cours Dsp Esprit p2 2011
44/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201144
32 bits d’adresses Capacité maximale d’adressage = 4 Goctets
L1 Static Random Access Memories (SRAM)
A set of memory-mapped registers (MMRs)
A boot Read Only Memory (ROM)
Hiérarchie mémoire
-
8/18/2019 Cours Dsp Esprit p2 2011
45/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201145
-
8/18/2019 Cours Dsp Esprit p2 2011
46/69
Mémoire L1 - Instructions
-
8/18/2019 Cours Dsp Esprit p2 2011
47/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201147
Mémoire L1 - Data
-
8/18/2019 Cours Dsp Esprit p2 2011
48/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201148
-
8/18/2019 Cours Dsp Esprit p2 2011
49/69
Architecture des périphériques
-
8/18/2019 Cours Dsp Esprit p2 2011
50/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP– Février 201150
Périphériques communication série
-
8/18/2019 Cours Dsp Esprit p2 2011
51/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP– Février 201151
Architecture ports série SPORTs)
-
8/18/2019 Cours Dsp Esprit p2 2011
52/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP– Février 201152
Peripheral Access Bus
DMA Access Bus
Fonctionnalités SPORTs
-
8/18/2019 Cours Dsp Esprit p2 2011
53/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP– Février 201153
Fonctionnalités SPI
-
8/18/2019 Cours Dsp Esprit p2 2011
54/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP– Février 201154
Architecture SPI
-
8/18/2019 Cours Dsp Esprit p2 2011
55/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201155
Application SPI
-
8/18/2019 Cours Dsp Esprit p2 2011
56/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP
–
Février 201156
MOSI: Master Output Slave In
MISO: Master Input Slave Out
SPISS: Serial Peripheral Interface Slave Select
Fonctionnalités UART
-
8/18/2019 Cours Dsp Esprit p2 2011
57/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP
–
Février 201157
Fonctionnalités PPI
-
8/18/2019 Cours Dsp Esprit p2 2011
58/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP
–
Février 201158
Applications PPI
-
8/18/2019 Cours Dsp Esprit p2 2011
59/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP
–
Février 201159
DMA: Direct Memory Access
-
8/18/2019 Cours Dsp Esprit p2 2011
60/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201160
Mémoire
Interne
(L1)
Mémoire
Externe
(SDRAM)
Périphériques
SPORT
PPI
UART
Le contrôleur DMA permet le transfert
de données sans l’intervention duprocesseur
Le core met à jour les registres et
répond aux interruptions quand les
données sont prêtes
Transfert 1-D
Transfert 2-D avec différentes tailles de
colonnes et lignes et différents pas
Timers
-
8/18/2019 Cours Dsp Esprit p2 2011
61/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP –
Février 201161
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
Core Timer
-
8/18/2019 Cours Dsp Esprit p2 2011
62/69
Étapes de développement logiciel
-
8/18/2019 Cours Dsp Esprit p2 2011
63/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201163
lasses d’instructions
-
8/18/2019 Cours Dsp Esprit p2 2011
64/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201164
Load
Store
Move
Opérations
Arithmétiques
Opérations
Logiques
Opérations
Bits
Décalages
RotationsAppels
Sauts
Instructions
parallèles
Vidéo
Vecteurs
Usages général
&
Applications
spécifiques
Applications
spécifiques
Exemple 1: génération d’un flux série
-
8/18/2019 Cours Dsp Esprit p2 2011
65/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201165
BITMUX ( source_1, source_0, A0 ) (ASR); (Right Shift)
BITMUX ( source_1, source_0, A0 ) (ASL); (Left Shift)
Codeur convolutif (5,7)
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 »
Exemple 2: LFSR
-
8/18/2019 Cours Dsp Esprit p2 2011
66/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201166
Applications
Division plynômiale: P/Q = N+R
Codeurs et décodeurs cycliques
A0 = BXORSHIFT ( A0, A1, CC ) ;
Implémentation des Linear Feedback Shift Registers
1: connexion
(P)
(Q)
(R)
(N)
Instructions sur les vecteurs
-
8/18/2019 Cours Dsp Esprit p2 2011
67/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201167
Instructions qui manipulent plusieurs données 16 bits en même temps
Opérations supportées: Addition, soustraction, multiplications, décalages,…
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) ;
Instructions parallèles
-
8/18/2019 Cours Dsp Esprit p2 2011
68/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201168
• 32-bi t ALU/MAC instruct ion || 16-bi t instruc t ion || 16-bi t instruct ion ;
• 32-bi t ALU/MAC instruct ion || 16-bi t instruc t ion ;
/* 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 ;
École Supérieure Privé d’Ingénierie et deTechnologies
-
8/18/2019 Cours Dsp Esprit p2 2011
69/69
ESPRIT, C. Rebai, N.Khouja Concepts et Pratique des DSP – Février 201169
Finde la 2 ème partie…