Vous êtes sur la page 1sur 56

Caractéristiques classiques des DSP

n Codage de données (virgule fixe / virgule flottante)

n Architecture matérielle

n Augmentation du parallélisme (DSP à haute performance)

n Modes d’adressage spécifiques

n Périphériques spéciaux pour le traitement du signal

1/03/24 55
Spécificités des DSP

n Algorithme classique de TNS : Filtre RIF


N −1
y (n) = ∑ a(i ) x(n − i)
i =0

n Pour chaque a(i) x(n-i) :


n Recherche de l’instruction
3 accès à la n Recherche du coefficients a(i)
mémoire
n Recherche de la donnée x(n-i)

2 accès à n Multiplication a(i) x(n-i)


l’unité
de calcul n Accumulation a(i-1) x(n-i-1) + a(i) x(n-i)
1/03/24 56
Fonctionnement basique d’une opération de
calcul
1

2
CPU Mémoire
4

3
n (1) Charger une instruction depuis la mémoire :
n (2) Charger les opérandes depuis la mémoire
n (3) Effectuer les calculs
n (4) Stocker le résultat en mémoire

Nombre d’accès mémoireóvitesse de traitement ou


bande passante (un accès
1/03/24 est bloquant) 57
Architecture Von Neuman
ana artmann
Ivana Hartmann oli nRimac‐Drlje,
Tolić, Snježana e ana imac rl eHocenski
Željko el o ocens i JET Vol. 10 (2017)
Issue 2

----------

. Von eumann processor architecture

n Un seul chemin d'accès à la mémoire


n Architecture des processeurs d’usage général
(Pentium, 68000)
n Goulot d'étranglement pour l'accès à la mémoire
n Pas de sécurisation matérielle du programme
e : Harvar rocessor arc itect re
The DS processor consumes most of the loop execution time in the algorithms, so it has a built-
in C U instruction cache that can store the 32 most commonly used programming instructions.
1/03/24
This processor concept is called Super Harvard Architecture SCHARC presented in Fig. 2 59
Architecture Harvard
. Von eumann processor architecture

e : Harvar rocessor arc itect re


The DS processor consumes most of theMémoire Programme
loop execution time in the algorithms, so it has a built-
in C U instruction cache that can store the 32 most commonly used programming instructions.
CPU
This processor concept is called Super Harvard Architecture SCHARC presented in Fig. 2
designed by engineers of the Analog Devices company,
Mémoire which unified the enhanced DS under
Données
the name SHARC DS . To accelerate the information flow, they have connected it to the data
memory I O controller, which provides high-speed parallel and serial communications ports, [ ].
n Séparation des mémoires programme et données
n Moins de risque de corruption du programme
n Meilleure utilisation du CPU
¨ Chargement du programme et des données en parallèle
1/03/24 60
Architecture Harvard modifiée

Mémoire Programme
+ Données
CPU
Mémoire Données

n Mémoire programme contient des données (coefficients)


n Possibilité de charger 2 données en un cycle

¨ Mémoire Programme+Données → coefficients des filtres


¨ Mémoire Données → échantillons d’entrée

1/03/24 61
designed by engineers of the Analog Devices company, which unified the enhanced DS under
Architecture Harvard modifiée : SHArc
the name SHARC DS . To accelerate the information flow, they have connected it to the data
memory I O controller, which provides high-speed parallel and serial communications ports, [ ].

Super Harvard Architecture

n Instruction cache: petite mémoire


contenant les instructions récemment
exécutées.
n I/O Controller <-> Data memory: Direct
Memory Access (DMA), accès à la
e 2: S er Harvar rocessor arc itect re
mémoire sans passer par le CPU

38 JET 1/03/24 62
Cache d'instructions et de données

Mémoire Cache
d’instructions Mémoire Instruction

CPU

Mémoire Cache
de données Mémoire Données

1/03/24 63
Caractéristiques classiques des DSP
n Codage de données (virgule fixe / virgule flottante)

n Architecture

n Augmentation du parallélisme (DSP à haute performance)

n Modes d’adressage spécifiques

n Périphériques spéciaux pour le traitement du signal

1/03/24 64
DSP à hautes performances

n Objectifs :

¨ Réduire le temps passé à faire des calculs

Instruction MAC
(multiplication-accumulation)

1/03/24 66
MAC : Multiplieur-accumulateur
ai xi

Multiplier
a i-1 x i-1

ai xi
N −1
Adder y ( i ) = ∑ a (i ) x (i )
i =0
a i x i + a i-1 x i-1

Register

1/03/24 67
DSP à hautes performances

Comment augmenter les performances ?

Plusieurs solutions :

1- Diminuer la durée d’un cycle d’horloge


2- Augmenter le travail réalisé au cours d’un cycle

1/03/24 68
DSP à hautes performances
Diminuer la durée d’un cycle d’horloge :

• Facilité de portage des applications classiques


(en séquentiel)
• Limites ! :
- Consommation proportionnelle à la vitesse
CPU
- Interfaces mémoires deviennent des
goulots d’étranglement

1/03/24 70
DSP à hautes performances
Augmenter le travail réalisé au cours d’un cycle à
Parallèlisme (plusieurs approches)
• SIMD : Plusieurs opérations dans une seule instruction
• Superscalaire : Plusieurs instructions dans 1 cycle d’horloge
- Plusieurs MAC, plusieurs ALU, cache données
- Circuit de contrôle complexe
• VLIW (Very Long Instruction Word) : Plus d’instructions dans
1un seul cycle d’horloge
- VLIW 8 voies = 8 instr * 32 bits = 256 bits
- Instructions en parallèle à la compilation
- Hardware plus simple que superscalaire
• Approches hybrides : SIMD/VLIW ou SIMD/Superscalaire
• Augmentation du nombre de cœurs du DSP (multi-core)
1/03/24 71
Parallélisme
Plusieurs types de parallélisme :

n Parallélisme au niveau des donnée (DP ou DLP :


Data Level Parallelism
n Parallélisme au niveau des instruction (ILP :
Instruction Level Parallelism )

1/03/24 72
Parallélisme au niveau de donnés : SIMD
L’approche SIMD : Single Instruction
Multiple Data

Opérations parallèles sur


différentes largeurs de
données (8, 16, 32, 64…
bits) soit sur :
n Split unités d’exécutions
n Multiples unités
d’exécutions
1/03/24 73
Parallélisme au niveau des instruction : VLIW

L’approche VLIW (Very Long Instruction Word)


n Un DSP est de type VLIW dispose de plusieurs
unités fonctionnelles capables d’exécuter plusieurs
instructions hétérogènes en parallèle

Instruction de 128 bits


8 sous-instructions de 32 bits
32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits

L1 S1 M1 D1 D2 M2 S2 L2

+ + + + + +

+
x x +
1/03/24 74
Pipeline
PIPELINE
! Principe : découper une opération en plusieurs
Découpage d’une instruction en plusieurs
tâches élémentaires à effectuer en parallèle.
tâches élémentaires à effectuer en parallèle.
! Exemple : pipeline à 4 étages

Fetch Lecture de l’instruction en mémoire programme

Decode Décodage de l’instruction

Read/Write Lecture ou écriture d’un opérande en mémoire de donnée

Execute Exécution éventuelle d’une opération arithmétique/logique

Pipeline à 4 étages

1/03/24 75
CPU : Unité de commande
Pipeline
PIPELINE

1/03/24 76
CPU : Unité de commande
Types de Pipeline
PIPELINE
! Différents types de pipelines

1/03/24 77
Pipeline

n Gain en vitesse d’exécution


n Electronique et programmation plus
complexe
n Un retard peut se produire s’il existe un
conflit de ressources

1/03/24 78
Mesure de la performance
! Mesure de la vitesse : : vitesse

1/03/24 79
Mesure de la performance : vitesse

Exemple: DSP56156 30 MIPS


Taux d’échantillonnage 48kHz ==> Te = 20.833 μs
àQuel est le nombre maximal d’instructions que peut
exécuter ce DSP entre 2 échantillons ?

1/03/24 80
IV. Performances des DSP

Mesure de la performance
Mesure de performances : vitesse

Exemple: DSP56156 30 MIPS


Mesure
!Taux de la vitesse 48kHz
d’échantillonnage : àQuel est le nombre
maximal d’instructions que peut exécuter ce DSP
! Exemple: DSP56156 30 MIPS
entre 2 échantillons ?
# Taux d’échantillonnage 48kHz ==> Te = 20.833 µs
# Quel est le nombre maximal d’instructions que peut exécuter
n Taux d’échantillonnage
ce DSP entre 2 échantillons48kHz
? ==> Te = 20.833 μs
n

1/03/24 81
Mesure de la performance
• La vitesse de calcul d’un DSP n’est pas une indication
universelle.
• Elle ne prends pas en compte un certain nombre de
perfectionnement dont peuvent bénéficier les DSP :
- Certains DSP proposent en effet des modes
d’adressages plus performants que d’autres. Ces modes sont
spécialement adaptés à des algorithmes standards du TNS
(exemples : adressage circulaire, «bits reversing» pour les FFT).
- Le temps d’accès à la mémoire est un autre paramètre
incontournable.

§ La mesure des performances par benchmark complète


avantageusement la mesure de la vitesse.
1/03/24 82
Mesure de la performance : Benchmark

Benchmark : mesurer le temps que met le DSP


pour exécuter des programmes
"standard" de TNS.

La mesure des capacités d’un DSP par benchmark


est intéressante, car elle tend à mesurer la
performance globale du système de TNS (y compris
les capacités du programmeur !)

1/03/24 83
La famille TMS320 de Texas Instruments

1/03/24 85
La famille TMS320 de Texas Instruments

1/03/24 86
DSP TI (TMS320C6000)(Texas Instrument)

1/03/24 87
1/03/24 88
1/03/24 89
C6678
n L1 local pour chacun des cœurs, L1D pour les données et
LP1 pour le programme de taille 32 Ko chacun : c’est le
niveau le plus proche au cœur = accès plus rapide (débit :
16 octets/cycle)
n L2 (512 Ko) : l’accés à cette mémoire est moins rapide qu’en
L1.
n MSM (Multicore Shared Memory) : mémoire statique SRAM
(4Mo) partagée entre les cœurs
n DDR3 (Double Data Rate) (512 Ko) : mémoire dynamique
externe, accés plus lent par rapport aux autres mémoires.
n DDR3 EMIF : DDR3 external memory interface: Contrôleur de
la mémoire DDR3, il s’occupe des différentes opérations de
contrôle : Read, Write…
n Debug & Trace : Assure les opérations de débogage entre
DSP et PC

1/03/24 90
C6678

n Boot ROM : Mémoire non volatile (128 Ko), sert à


sauvegarder le code d’initialisation.
n Sémaphore : protège l’accès aux périphériques par
plusieurs cœurs
n PLL : génère les horloges demandées aux fréquences
souhaitées.
n EDMA (Enhanced Direct Memory Acces) permet le
transfert mémoire sans l’intervention du CPU
n Protocoles de communication haut débit :
• PCIe et RapidIO (5Gb/s),
• Ethernet (1Gb/s), HeperLink (50 Gb/s entre 2 C6678).
n Multicore Navigator : Optimise le transfert des paquets
issus des interfaces de communications haut-débit sur
le bus TeraNet et réduit les latences des transferts
mémoires entre cœurs.
1/03/24 91
C66x CorePac Block Diagram

1/03/24 92
1/03/24 93
L1P Memory Configurations
The L1P memory configuration for the C6678 device is as follows:
n •32K bytes with no wait states
n Figure shows the available SRAM/cache configurations for L1P.

1/03/24 94
L1D Memory Configurations
The L1D memory configuration for the C6678 device is as follows:
n •32K bytes with no wait states
n Figure shows the available SRAM/cache configurations for L1D.

1/03/24 95
L2 Memory Configurations
The L2 memory configuration for the C6678 device is as follows:
• Total memory size is 4096KB
• Each core contains 512KB of memory
• Local starting address for each core is 0080 0000h
n L2 memory can be configured as all SRAM, all 4-way set-associative cache, or
a mix of the two. The amount of L2 memory that is configured as cache is
controlled through the L2MODE field of the L2 Configuration Register
n (L2CFG) of the C66x CorePac. Figure shows the available SRAM/cache
configurations for L2. By default, L2 is configured as all SRAM after device
reset.

1/03/24 96
C66x CorePac Block
Diagram

1/03/24 97
DataPath
Chaque cœur contient deux Data Path : A et B
Chaque Data Path contient :
n 1 bancs de registres(registre file ) Composé de 32
registres :A0..A31 ou B0..B31
n 4 unités fonctionnelles : L, S, M et D

• L : UAL, au maximum 2 additions/soustractions 32 bits


flottantes ou fixe par cycle.
• S : Unité de branchement et de décalage, capable
d’exécuter des opérations de branchement ou de
décalage de registres. Elle est capables aussi d’exécuter
des opérations d’additions et de soustractions flottantes
ou fixes
• M :4 Multi 32 bits flottantes/fixes au max
• D : Unités de chargement et de stockage, capable de
charger/stoker une donné sur 64 bits
1/03/24 98
n Figure shows the DSP core
functional units and data
paths.
n Figure 2-1 DSP Core Data
Paths

1/03/24 99
Chemin croisé : Cross path

n 2 chemins croisés (1x et 2x) (cross path)


entre les deux datapath

Chemin de données A Chemin de données B

Registre A0 à A31 Registre B0 à B31

.L1 .S1 .M1 .D1 .L2 .S2 .M2 .D2

Chemin croisé

1/03/24 100
1/03/24 101
L’architecture
Architecture de de
CPUCPU C6000
C6000 de TI
de TI

.L1 REG FILE A


DST SRC
.S1
.M1 2X

1X

REG FILE B

1/03/24 102
Architecture de CPU
L’architecture C6000
de CPU de TI
C6000 de TI
D1

REG FILE A
T1 .D1
DATA ADDRESS
CACHE T2 .D2
REG FILE B
D2

1/03/24 103
VLIW (Very-Long-Instruction-Word)

inst1
inst2
Instruction VLIW

inst3

inst4

inst5

inst6

inst7

inst8

1/03/24 105
Outils de développement
Integrated Development Environment

n Les outils de développement et bibliothèques


sont librement téléchargeables depuis internet
du moment que nous n'utilisons que la sonde de
programmation XDS100 présente sur la
maquette ou le mode simulation. Les outils
deviennent alors payants si nous souhaitons
travailler avec des sondes d'émulation évoluées,
telle que la sonde XDS560

1/03/24 115
IDE : CCS

n le téléchargement des outils depuis le site


officiel de Texas Instruments requiert une
inscription à leur site. La validation par TI
de cette étape peut prendre quelques
jours

1/03/24 116
1/03/24 117
CSL (Chip Support Library)

n Bibliothèques CSL (Chip Support Library)


proposées par TI pour la gestion des
périphériques internes de leurs familles
de processeurs.
n http://processors.wiki.ti.com/index.php/Chip_sup
port_library
n Après installation, CSL est accessible
depuis le répertoire suivant :
C:\ti\pdk_C6678_version\packages\ti\csl\

1/03/24 118
DSPLIB (Digital Signal Processing
Library)
n Bibliothèque DSPLIB (Digital Signal Processing
Library) développée par TI et proposant des
fonctions C pour le domaine du traitement
numérique du signal et optimisée pour leurs
architectures processeurs
http://www.ti.com/tool/SPRC265
n Après installation, la DSPLIB est accessible
depuis le répertoire suivant :
C:\ti\dsplib_c66x_version\packages\ti\dsplib\

1/03/24 119
n Workflow typique de la chaîne de compilation C6000
développée par Texas Instruments. Elle reprend la
trame de toute chaîne de compilation C (standards
C89 et C99)

1/03/24 120
Paquet de Fetch et d’Exécution
n VELOCI TI : architecture élaborée par TI basée sur la structure
VLIW (Very Long Instruction Word)
Instruction : 4 octets = 32 bits
PE : Paquet Exécutable : groupe d’instructions exécutables en
parallèle pendant un seul cycle.
PF : Paquet Fetch formé de 8 instructions.
1PF peut contenir 1 PE (si toutes les 8 instructions en //)
ou 8 PE (pas d’instructions en // ).
3 étages de pipeline :
¨ Fetch : 4 étages
¨ Decode : 2 étages
¨ Execute : au maximum 6 étages
1/03/24 121
Pipeline
n Instructions segmentées en étages.
n Exécution entrelacée de plusieurs instructions.
n Augmentation de la fréquence d'horloge.

Étage \ temps t1 t2 t3 t4 t5 t6 t7 t8 t9
Fetch F1 F2 F3
Decode D1 D2 D3
Execute E1 E2 E3

Exécution séquentielle

Étage \ temps t1 t2 t3 t4 t5 t6 t7 t8 t9
Fetch F1 F2 F3 F4 F5 F6 … … …
Decode D1 D2 D3 D4 D5 D6 … …
Execute E1 E2 E3 E4 E5 E6 …

Exécution avec pipeline


1/03/24 122
Pipeline

PG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Fetch Decode Execute

Étapes d’extraction du Programme


(fetch, PF)

PG PS PR
PW
Génération Transmission de Réception et
Attente accès
d’adresse l’adresse lecture du PF
mémoire
Dans le CPU (à la mémoire) (au CPU)

1/03/24 123
Outils de développement

1/03/24 124

Vous aimerez peut-être aussi