Vous êtes sur la page 1sur 107

DSP

Digital Signal Processor


Génie Télécom & Réseaux 2

Pr. Malika ALAMI MARKTANI


malika.alamimarktani@usmba.ac.ma

AU: 2020/2021
1
Position du Cours

Télécoms

Electro -
Electronique
technique Informatique

électronique Micro -
de puissance
électricité processeurs et
semi- traitement DSP Réseaux
conducteurs de signal

Physique Signaux et Automatisation


Systèmes Processus
Mesure
Numériques Manufacturier

AU 2020/2021 2
Microprocesseurs Vs microcontrôleurs?
Les microprocesseurs et les microcontrôleurs sont des puces
électroniques programmables typiques utilisées à des fins différentes.
La différence clé entre eux est qu’un microprocesseur est un moteur de
calcul programmable constitué d’une unité arithmétique et logique,
d’un processeur et de registres, capable d’effectuer des calculs et de
prendre des décisions. Tandis qu’un microcontrôleur est un
microprocesseur spécialisé considéré comme un ordinateur sur une
puce car il intègre des composants tels qu’un microprocesseur, une
mémoire et des E/S.

Le microcontrôleur est principalement conçu pour gérer des tâches en


temps réel, contrairement au microprocesseur.

AU 2020/2021 3
Plan du cours

 Introduction, Classification & Applications


 Spécificités, Architecture fonctionnelle & Performances des DSP
 Méthodes et outils de développements
 Vue d'ensemble de l'architecture des DSP de la famille TMS320
 Etude détaillée de l'architecture fonctionnelle des DSP TMS320C6X
 Modes d'adressage du ‘C6X
 Outils de développement

AU 2020/2021 4
Introduction
Le TNS: pourquoi?

Introduction
• Stabilité: • Souplesse
- Insensibilité à l’environnement - Programmation flexible
- Précision connue et contrôlée - Développement rapide
- Reproductibilité - Facilité pour certains traitements
• Algorithmes de TNS :
- Filtrage / estimation spectrale - transformées
- codage/décodage - reconnaissance de la parole
- synthèse de signaux - élimination d’écho…

• Contrainte de temps réel Arrivée de Arrivée de


Ex : taux d’échantillonnage 48kHz, l’échantillon x(n) l’échantillon x(n+1)
Te = 20.833 μs

Temps de traitement T doit être <Te


TNS (Traitement Numérique du Signal) pour le temps réel
AU 2020/2021 6
Le besoin en TNS

Introduction
• Le cahier des charges:

1. Calculs rapides (optimisation de l’utilisation de la mémoire)


2. Contraintes temps réel (entrées/sorties à débit fixe)
3. Contraintes systèmes embarqués (taille limitée, faible consommation
d’énergie -> low power applications)
4. Production de masse (réduction du cout & du temps de
développement -> low cost applications)

Les DSP ont une architecture matérielle et logicielle


dédiée permettant de répondre à ces besoins

AU 2020/2021 7
Le TNS: comment?

Introduction

Signal
analogique
d’entrée

Signal
analogique de
sortie
numérique

AU 2020/2021 8
Le TNS: comment?

Introduction

• Traitement numérique du signal : application d’opérations mathématiques


sur des signaux représentés sous forme numérique
• Représentation des signaux sous forme de séquences d’échantillons
• Les signaux numériques sont obtenus à partir de signaux physiques via des
récepteurs (ex : microphones) et des convertisseurs analogiques-
numériques (ADC)
• Les signaux numériques sont reconvertis en signaux physiques par des
convertisseurs numériques-analogiques (DAC)
• Processeurs de traitement du signal (DSP) : système électronique qui traite
des signaux numériques

AU 2020/2021 9
Classification
Classification

GPP : General Prupose Processor


ASIC : Application-Specific Integrated Circuit
ASSP : Application-Specific Standard Product
FPGA : Field Programmable Gate Array
DSP : Digital Signal Processor
AU 2020/2021 11
Comparatif des processeurs

Classification

• ASIC - ASSP : Inconvénients : Coûts initiaux très importants (masques)


Atouts : Ultra-rapide, low power et performant (car dédié).
• FPGA : Inconvénients : Coût à l’unité élevé (> 20$).
Atouts : Pas de coût initial, évolutif, performances élevées.
• DSP et microcontrôleurs :
Inconvénients : Performances limitées en vitesse.
Atouts : Bon marché (< 1$), performant pour les I/O, le calcul
scalaire (DSP), les machines à état, ultra-low power.
• Processeurs classiques GPP:
Inconvénients : Cher, forte consommation énergétique.
Atouts : versatile (mais à quel prix !)
AU 2020/2021 12
Contexte d’utilisation

Classification
ASIC - ASSP : - Tâches dédiées ultra-rapides (réseau Gbit, MPEG, contrôleur
RAID...)
- Très gros volumes
FPGA : - Tâches dédiées rapides
- volumes faibles à moyens
DSP et microcontrôleurs:
- Acquisition et traitement de signal à vitesse modérée.
- Pilotage système : gestion machine à état, PWM...
- Applications à coût réduit - faible consommation d’énergie
Processeurs classiques:
- Algorithmique de haut-niveau : traitement d’image, intelligence
artificielle...
AU 2020/2021 13
Principaux constructeurs de DSP

AU 2020/2021 14
Applications
Applications

• Communications • Image / Vidéo


– Modem, téléphonie – Compression/Codage
– Télévision & radio numérique – Traitement
– Cryptage

• Audio • Militaire
– Mixage et édition – Imagerie (radar, sonar)
– Effets – Cryptographie
– Suppression de bruit – Guidage de missiles
– Annulation d’écho – Navigation

AU 2020/2021 16
Applications

• Médical • Automatisation
– Equipements de monitoring – Commande de machines
(EEG, ECG) – Contrôle de moteurs
– Imagerie (IRM…) – Robots

• Instrumentation • Automobile
– Analyseurs de spectre – Contrôle du moteur
– Générations de fonctions – Assistance au freinage
– Aide à la navigation
– Commandes vocales
– Tableau de bord

AU 2020/2021 17
Applications

Lecteur MP3 dictaphone

AU 2020/2021 18
Applications

Scanner de codes barres

AU 2020/2021 19
Applications

Appareil photo numérique

AU 2020/2021 20
Applications

Imagerie par Résonance Magnétique

AU 2020/2021 21
Applications

Console de mixage

AU 2020/2021 22
Applications

Récepteur GPS

AU 2020/2021 23
Applications

TV à écran LCD

AU 2020/2021 24
Applications

Kit mains libres

AU 2020/2021 25
Spécificités des DSP
Spécificités des DSP

Opérations les plus courantes dans les algos de TNS imposent


Contraintes matérielles sur l’architecture des DSP.

Afin de déterminer les spécificités des DSP, nous allons prendre


l’exemple de deux algorithmes classiques de TNS :
• Filtre à Réponse Impulsionnelle Finie (RIF)
• Transformée de Fourier rapide (FFT)

AU 2020/2021 27
Algo1: Le Filtre RIF

Spécificités des DSP

a(M)
a(0) a(1) a(2) a(3) a(M-1)

Une équation aux différences finies spécifie la sortie y(n):

AU 2020/2021 28
Algo1: Le Filtre RIF

Spécificités des DSP

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


– Recherche de l’instruction
– Recherche du coefficients a(i) 4 accès en mémoire
– Recherche de la donnée x(n-i) 2 accès à l’unité de calcul
– Multiplication a(i)x(n-i)
– Accumulation a(i-1)x(n-i-1) + a(i)x(n-i)
– Décalage en mémoire x(n-i) -> x(n-i-1)

AU 2020/2021 29
Spécificités des DSP

Objectifs :
– Réduire le temps passé à faire des calculs
– Augmenter les accès mémoire simultanés
– Réduire les accès mémoire

AU 2020/2021 30
Spécificités des DSP

Objectifs :
– Réduire le temps passé à faire des calculs
– Augmenter les accès mémoire simultanés
– Réduire les accès mémoire

Instruction MAC
(multiplication-accumulation)
en 1 seul cycle d’instruction

AU 2020/2021 31
Spécificités des DSP

Objectifs :
– Réduire le temps passé à faire des calculs
– Augmenter les accès mémoire simultanés
– Réduire les accès mémoire

Architecture Architecture
Von Neuman Harvard
(microcontrôleur) (DSP)

AU 2020/2021 32
Spécificités des DSP

Objectifs :
– Réduire le temps passé à faire des calculs
– Augmenter les accès mémoire simultanés
– Réduire les accès mémoire
Mode d’adressage circulaire
Buffer circulaire : Segment mémoire
contenant des données (échantillons,
coefficients…)
Accès par pointeurs générés et
incrémentés automatiquement
– Pas de test sur les pointeurs
– Pas de reset nécessaire
AU 2020/2021 33
Algo1: Le Filtre RIF

Spécificités des DSP


Schéma « état de mémoire » Schéma « structure du filtre »
Buffer linéaire:
nouvel échantillon

AU 2020/2021 34
Algo1: Le Filtre RIF

Spécificités des DSP


Schéma « état de mémoire » Schéma « structure du filtre »
Buffer circulaire:
nouvel échantillon

AU 2020/2021 35
Algo2: FFT sur N points

Spécificités des DSP

La Transformée de Fourier Rapide (Fast Fourier Transform) sur N


points:

Sans Algorithme de
optimisation Cooley-Tukey
Calcul des N Séquentiel Simultané
échantillons y(n)
Nombre de N² N/2 log2(N)
multiplications

AU 2020/2021 36
Algo2: FFT selon Cooley-Tukey

Spécificités des DSP

Ex : N = 8 Etape Etape Etape


calcul 1 calcul 2 calcul 3

Besoin d’accéder aux


échantillons dans
cet ordre
AU 2020/2021 37
Algo2: FFT selon Cooley-Tukey

Spécificités des DSP


Mode d’adressage spécifique : “Bit reverse”

Ordre naturel Ordre pour la FFT


des échantillons Cooley-Tuckey
0 000 000 0
1 001 100 4
2 010 010 2
3 011 110 6
4 100 001 1
5 101 101 5
6 110 011 3
7 111 111 7

AU 2020/2021 38
Spécificités des DSP
Résumé

Organisation mémoire Jeu d’instructions


Architecture Harvard MAC en 1 cycle

Entrées/sorties
Modes d’adressage
Spécifiques
Bit reverse, circulaire
Flot continu de données

AU 2020/2021 39
Architecture fonctionnelle
des DSP
– Représentation des nombres
-> Unité de calcul
– CPU -> Unité de commande (pipeline)
-> Unité de génération d’adresses
– Unité de mémoire
– Périphériques

CPU: Central Processing Unit


Représentation des nombres

Architecture fonctionnelle des DSP

Les valeurs traitées (coefficients, échantillons…) sont


représentées sous 2 formes :

Virgule fixe Virgule flottante

- Format courant : 16/24 bits - Format courant : 32 bits


- Idéale avec CAN/CNA 12/14 bits - Idéale pour le traitement sur une
- Applications : Contrôle industriel, grande dynamique
communications, instrumentation, - Applications : Audio professionnel,
parole, médical, militaire… vidéo, médical…

AU 2020/2021 41
Représentation des nombres

Architecture fonctionnelle des DSP


Virgule fixe: Complément à 2 (C2)
Nombre Codage
3 0 1 1
2 0 1 0 Nombre positif :
codé comme un
1 0 0 1 binaire naturel
0 0 0 0
-1 1 1 1
-2 1 1 0 Nombre négatif :
Inversion des bits
-3 1 0 1
puis ajout de 1
-4 1 0 0
Signe
Le codage C2 convient bien aux opérations mathématiques

AU 2020/2021 42
Représentation des nombres

Architecture fonctionnelle des DSP


Virgule fixe: Complément à 2 (C2)
Représentation “circulaire” En ajoutant 1 à la plus grande
valeur positive on obtient la valeur négative extrême

Ex sur 3 bits :

AU 2020/2021 43
Représentation des nombres

Architecture fonctionnelle des DSP


Virgule fixe: Codage des entiers
Exemple sur 8 bits:

Poids 27 26 25 24 23 22 21 20
27 0 0 0 1 1 0 1 1
0 0 0 0 0 0 0 0 0
-4 1 1 1 1 1 1 0 0

Signe

AU 2020/2021 44
Représentation des nombres

Architecture fonctionnelle des DSP


Virgule fixe: Codage des réels
-> Format Qk

Ex : 2,3125
Partie entière Partie fractionnaire
sur N-k bits en C2 sur k bits

Cas particulier : k = 0 -> entiers

AU 2020/2021 45
Représentation des nombres

Architecture fonctionnelle des DSP


Virgule fixe: Codage des réels
-> Format Qk
- Pour coder le réel x, trouver les bi tels que:

Ex : format Q5 sur 8 bits (n=8, k=5)


Partie entière : 3 bits / fractionnaire : 5 bits
Poids 22 21 20 2-1 2-2 2-3 2-4 2-5
2,3125 0 1 0 0 1 0 1 0
- Correspond à la représentation C2 de l'entier y tel que :
y = round(2k . x)
Ex : y = round(25.2,3125)
= 74 = (0100 1010)b

AU 2020/2021 46
Représentation des nombres

Architecture fonctionnelle des DSP


Virgule fixe: Codage des réels
-> Format Qk

Exemple : Format Q5 sur 8 bits


- Précision : q = 2-k
- Erreur maximale : q/2 = 2-(k+1)

- Ex : 010.01010 = 2,3125
010.01011 = 2,3438
- Si on doit coder 2,33, l’erreur sera de 2-6 max.

AU 2020/2021 47
Représentation des nombres

Architecture fonctionnelle des DSP


Virgule fixe: Codage des réels
-> Un format très classique : Q15 sur 16 bits : réels entre -1 et 1

Exemple:

AU 2020/2021 48
Représentation des nombres

Architecture fonctionnelle des DSP


Virgule flottante:
mots de 32 bits sous forme mantisse-exposant

AU 2020/2021 49
Représentation des nombres

Architecture fonctionnelle des DSP


Virgule flottante:
mots de 32 bits sous forme mantisse-exposant

Virgule fixe Virgule


(95% des DSP) flottante
Complexité hardware Simple Complexe
Coût Faible Elevé
Consommation Faible Elevée
Dynamique max. 190 dB 1500 dB
Complexité programmation Elevée Faible

AU 2020/2021 50
Architecture fonctionnelle des DSP

Program Address Bus


Data Address Bus

Data Bus-A
Data Bus-B
Program Data Bus

Processing
Unit
Address Generation

AU 2020/2021 51
Structure interne du CPU

Architecture fonctionnelle des DSP

AU 2020/2021 52
Unités de calcul

Architecture fonctionnelle des DSP

Éléments principaux :
- Unité Arithmétique et Logique (ALU)
Opérations classiques (+, -, AND, OR…)
- Multiplieur-Additionneur
- Accumulateurs
- Registres à décalage (shifters)
- Manipulation de bits

AU 2020/2021 53
Unités de calcul

Architecture fonctionnelle des DSP

Multiplication accumulation :

Lors de nombreux MAC successifs :


– Taille de l’accumulateur (2N bits)
insuffisante
2 solutions :
1- Accumulateur sur 2N + p bits
Exemple : ADSP2181
2 registres 16 bits, résultat
sur 32 bits -> dans l’accu 40 bits
2- Pre-Scaling : décalage avant
l’accumulation

AU 2020/2021 54
Unités de commande

Architecture fonctionnelle des DSP

• Chef d’orchestre du CPU


• Chargement des instructions:
 Compteur de programme (PC)
 Registre d’instruction
 Cache d’instructions
• Séquençage
 Décodage des instructions
 Pilotage des autres unités

AU 2020/2021 55
Pipeline

Architecture fonctionnelle des DSP

Principe : découper une opération en tâches élémentaires à


effectuer en parallèle

Ex : 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

AU 2020/2021 56
Pipeline

Architecture fonctionnelle des DSP

Sans
Pipeline

Avec
Pipeline

AU 2020/2021 57
Pipeline

Architecture fonctionnelle des DSP

Différents types de pipelines

AU 2020/2021 58
Pipeline

Architecture fonctionnelle des DSP

- Avantage d’un DSP pipeliné:


Gain en vitesse d’exécution

- Inconvénients:
Electronique et programmation plus complexe

- Un retard peut se produire


 s’il existe un conflit de ressources
 en cas de rupture de séquence

AU 2020/2021 59
Pipeline

Architecture fonctionnelle des DSP

- Pipeline présent dans quasiment tous les DSP


- Le nombre d’étages varie de 3 à 12
- Exemples :
SHARC (Analog Device) 3
DSP563xx (NXP) 7
DSP568xx (NXP) 3
TMS320 C54 (TI) 6
TMS320 C55 (TI) 10-11
TMS320 C62 (TI) 7-12

AU 2020/2021 60
Unité de génération d’adresse

Architecture fonctionnelle des DSP

• Unités de traitement spéciales:


 DAG (Data Address Generation)
 AGU (Adress Generation Unit)
 Pilotées par le séquenceur
 Calculs sur des entiers (adresses mémoires)

• Méthodes pré-programmées
 Incrémentation
 Décrémentation
 Adressage circulaire
 Incrémentation bit-reverse (pour la FFT)

AU 2020/2021 61
Unité de mémoire

Architecture fonctionnelle des DSP

• Architecture Harvard

- Mémoires données et programme séparées


-> Meilleure utilisation du CPU
-> Chargement du programme et des données en parallèle

AU 2020/2021 62
Unité de mémoire

Architecture fonctionnelle des DSP

• Architecture Harvard modifiée

- Possibilité de charger 2 types de données en 1 cycle


-> Mém. prog+données  coefficients
-> Mémoire données  signal d’entrée

AU 2020/2021 63
Unité de mémoire

Architecture fonctionnelle des DSP

• Architecture Harvard modifiée

- Bancs de mémoire

AU 2020/2021 64
Unité de mémoire

Architecture fonctionnelle des DSP


• Mémoire interne sur les DSP C54xx

Plusieurs types de RAM :


– Single access (SARAM) : un accès par cycle
– Dual access (DARAM) : deux accès par cycle
– Two-way shared : deux accès par cycle même depuis l'extérieur
AU 2020/2021 65
Unité de mémoire

Architecture fonctionnelle des DSP

• Canaux DMA : Direct Memory Access


• Réduction des accès mémoire
 Adressages spécifiques (circulaire)
 Mémoire cache programme

AU 2020/2021 66
Unité de mémoire

Architecture fonctionnelle des DSP

• Mémoire cache programme


– Contient des instructions exécutées fréquemment (boucles...)
– Structure plus simple que dans les processeurs généraux
– Exemple :DSP563xx 1KB
TMS320C67 64 KB
– Configurable par l’utilisateur
– Pas de cache de données en général

AU 2020/2021 67
Périphériques

Architecture fonctionnelle des DSP

• Port série
– Communication avec codecs
• Port parallèle
– Communication avec une mémoire externe
• Timer
• Contrôleur d’interruption
• Horloge interne

AU 2020/2021 68
Architecture générale

Architecture fonctionnelle des DSP

DSP56303
(Source : Freescale)

AU 2020/2021 69
DSK/TMS320C6xxx de TI

DSK: DSP Starter Kit


AU 2020/2021 70
DSK/TMS320C6xxx de TI

DSK: DSP Starter Kit


AU 2020/2021 71
Code Composer Studio TI

AU 2020/2021 72
Utilisation des DSP TI

• C1x Hard Disk Controllers


• C2x Fax/Machines Embedded Control
• C3x Videophones
• C5x Voice Processing
• C54x Digital Cellular Phones
• C6x Wireless Base/Modems
• C8x Video Conferencing

AU 2020/2021 73
Cycle de Développement

1-Réalisation ( ou utilisation) de la carte


2
électronique (existante) : cible/target
2-Écriture d ’un programme en c et
assembleur (fichier source)
4
3-Assemblage ou Compilation (fichier objet) 3
4-Chargement du programme sur la cible 1

(fichier exécutable)
5-« Debugage »/Test du fonctionnement
5

AU 2020/2021 74
Le Langage Assembleur
 Pour gagner de la place (concision du code)
 Pour gagner du temps (d ’exécution pas de développement)
 Couche indispensable entre le hard et les couches logiciels
supérieurs
 Souvent lié à une programmation en C
 Forme définitive d ’un programme après compilation

Formalisme : 4 champs (TMS320C6xxx)


Etiquette Instruction Opérande Commentaires
(ou label)
pour lisibilité registre
correspond à adresse mémoire
adresse après étiquette
compilation variable immédiate
AU 2020/2021 75
Performances des DSP

– DSP hautes performances


– Mesures de performances
– Gamme de DSP
Performances des DSP

Robot familial Système VoIP


Lecteur MP3 (Wakamaru, Mitsubishi) pour traders (IPC)

Processeur Multiples Multiples


unique Processeurs Processeurs
20 000 lignes 100 000 + protocoles
de codes lignes de +500 000
codes lignes de
codes
AU 2020/2021 77
Performances des DSP

• Architecture conventionnelle
– Spécialisée pour le TNS
– Faible consommation, faible coût
– Difficulté de programmation

• Nouvelles architectures
– Plus grande consommation
– Coût plus élevé
– Rendues nécessaires par de nouveaux besoins
• Performance (téléphonie 3G et plus)
• Rapidité de développement

AU 2020/2021 78
DSP hautes performances

Performances des DSP


Nous venons de voir l’architecture de base des DSP

Comment augmenter les performances ?

Deux solutions :
- Diminuer la durée d’un cycle d’horloge
 Augmenter de la fréquence CPU
- Augmenter le travail réalisé au cours d’un cycle d’horloge
 parallélisme

AU 2020/2021 79
DSP hautes performances

Performances des DSP


• Augmentation de la • Augmentation du travail
fréquence CPU: effectué pendant un cycle :
– Facilité de portage des applis parallélisme
existantes Plus d’opérations dans 1 instruction
– Limitations : – SIMD (Single Instruction,
• Consommation proportionnelle Multiple Data)
à la vitesse CPU – Superscalaire
• Interfaces mémoire deviennent – VLIW (Very Long Instruction
limitées Word)
– Approches hybrides SIMD/VLIW

AU 2020/2021 80
DSP hautes performances

Performances des DSP


parallélisme = Plus d’opérations dans 1 instruction
 Parallélisme de données:
- la même opérations est réalisée par plusieurs processeurs sur des
données différentes: exemple : addition de deux matrices;
 Parallélisme de contrôle:
- des opérations différentes sont réalisées simultanément.
- indépendance /dépendance du flot (architecture pipeline:
dupliquer les unités de traitements).
1 flux d'instructions >1 flux d'instructions

1 flux de données Séquentielle MISD (Pipeline)


> 1 flux de données SIMD MIMD

AU 2020/2021 81
DSP hautes performances

Performances des DSP


parallélisme = Plus d’opérations dans 1 instruction
– Les architectures parallèles sont construites à partir des ressources
qui composent les architectures séquentielles: Unité de Traitement
(UT), Unité de Contrôle (UC), mémoire, entrée/sortie (disque, réseau,
etc);
– Durant l'exécution, toutes les unités échangent des informations à
travers une ressource supplémentaire: le réseau de communication
interne.
Le processeur a t-il un ou plusieurs flux de données
(Single Data stream ou Multiple Data stream)?
Le processeur a t-il un ou plusieurs flux d'instructions
(Single Instruction stream ou Multiple Instruction
stream)?
AU 2020/2021 82
Le parallélisme d’instructions

Performances des DSP

– SIMD (Single Instruction, Multiple Data)

• Seules les UT sont dupliquées;


• Une seule UC gère le séquencement du programme pour plusieurs UT;
• Toutes les UT fonctionnent en synchronisme et reçoivent les mêmes
instructions en même temps;
• La même opération est appliquée à plusieurs données simultanément,
puisque chaque UT calcule sur un flux de données différent.

AU 2020/2021 83
Le parallélisme d’instructions

Performances des DSP

– Superscalaire: technique pour exécuter plusieurs opérations en


parallèle
• Méthode: le processeur lit en même temps des blocs
d’instructions séquentielles (compilées de façon traditionnelle), et
décide dynamiquement quelles instructions du bloc peuvent
s’exécuter en parallèle
• Avantages:
 On utilise un compilateur traditionnel pour produire le
code exécutable
 Le parallélisme est extrait de façon dynamique par le
processeur, donnant une plus grande marge de manœuvre
pour le scheduling des instructions

AU 2020/2021 84
Le parallélisme d’instructions

Performances des DSP

– VLIW: technique pour exécuter plusieurs opérations en parallèle

• Méthode: on définit des groupes de plusieurs instructions, qui


sont lues, décodées et exécutées en parallèle. Chaque groupe
devient une « super-instruction » destinée à être lue d’un bloc par
le processeur VLIW
• Avantage: le compilateur décide des instructions à grouper
ensemble. Ceci élimine pour le processeur VLIW le fardeau du
scheduling des instructions (Ordonnancement des instructions qui
peuvent être exécutées en parallèle). Le processeur est donc plus
simple à concevoir, et par conséquent peut être plus rapide.

AU 2020/2021 85
Le parallélisme d’instructions

Performances des DSP

VLIW Vs Superscalaire?

Contrôle le compilateur Contrôle le matériel:


• VLIW 8 voies = 8 instr. • Plusieurs MAC,
32 bits = 256 bits • Plusieurs ALU,
• Instructions en parallèle • Cache données
à la compilation • Circuit de contrôle
• Hardware + simple que complexe
superscalaire

Le débat entre VLIW et superscalaire s’apparente au débat CISC/RISC


du début des années ’80: simplicité du matériel (et performance
améliorée) vs simplicité du compilateur

AU 2020/2021 86
Le parallélisme d’instructions

Performances des DSP

• Comme le RISC a pris le dessus sur le CISC parce que le matériel


est plus simple à réaliser et donc plus rapide, le VLIW devrait
produire des systèmes plus performants

• Évidemment, les compilateurs devraient être améliorés, mais le


type d’améliorations requises (détection de parallélisme au niveau
des instructions) est déjà possible.

• il y a un problème important avec le VLIW: c’est le compilateur qui


prend en charge toutes les dépendances entre les instructions, et
qui les résout lors de la compilation. D’où deux constats
importants:

AU 2020/2021 87
Le parallélisme d’instructions

Performances des DSP

D’où deux constats importants:


• Le compilateur est lié intimement à l’implémentation de
l’architecture. Si celle-ci change, le compilateur (et donc le code)
doit changer. Que fait-on avec nos « vieux » logiciels lorsqu’on
change de machine?
• La résolution de conflits se fait lors de la compilation. Elle doit
donc être conservatrice. Dans un autre type d’architecture (i.e. le
superscalaire) on fait cette résolution de façon dynamique. D’où
plus de flexibilité et potentiellement une amélioration de la
performance.
• Autre limitation du VLIW: puisque le code doit être libre de
dépendances, il est presque impossible de l’écrire en langage
assembleur

AU 2020/2021 88
Le parallélisme d’instructions

Performances des DSP

– Approches hybrides SIMD/VLIW: Augmentation du nombre


de cœurs DSP en parallèle (multi-core/multi-coeur)

L’élargissement du bus de données conjugué à l’utilisation d’une


architecture VLIW permet d’exécuter plusieurs instructions
différentes dans le même cycle d’horloge et d’effectuer dans une
même instruction plusieurs mêmes traitements en parallèle.
Ce cas correspond à une architecture SIMD (single instruction
multiple data) qui peut être perçus comme un cas particulier d’une
architecture VLIW.

AU 2020/2021 89
Le parallélisme d’instructions

Performances des DSP

– Approches hybrides SIMD/VLIW: Augmentation du nombre


de cœurs DSP en parallèle (multi-core/multi-coeur)
Les implications du passage d’une architecture RISC vers SIMD/VLIW :

RISC VLIW/SIMD
Tant qu’on n’a pas traité toutes les données Tant qu’on n’a pas traité toutes les données
{ {
N cycles de chargement de i données 1 cycle de chargement de N données
M cycles de traitements 1 cycle de M traitements qui peuvent
K cycles de sauvegarde de k données être identiques ou différents
} 1 cycle de sauvegarde de k données
}

AU 2020/2021 90
Le parallélisme d’instructions

Performances des DSP

– Approches hybrides SIMD/VLIW: Augmentation du nombre


de cœurs DSP en parallèle (multi-core/multi-coeur)

AU 2020/2021 91
Mesure de performance

Performances des DSP

Mesure de la vitesse
MFLOPS Million Floating- Nombre d’opérations à virgule flottante
Point Operations (multiplications, additions, soustractions, etc.)
Per Second que le DSP à virgule flottante peut réaliser en
une seconde.
MIPS Million Instructions Nombre de codes machines (instructions) que
Per Second le DSP peut effectuer en une seconde.
MOPS Million Operations Nombre total d’opérations (traitement et
Per Second transferts de données, accès DMA, opérations
d’E/S) que le DSP peut effectuer en une
seconde.
MMACS Million Multiply Nombre de MAC que le DSP peut effectuer en
and Accumulate une seconde.
Per Second

AU 2020/2021 92
Mesure de performance

Performances des DSP

Ex 1 :
DSP dans un téléphone portable  40 MIPS
Ex 2:
DSP56156 30 MIPS
– Taux d’échantillonnage 48kHz  Te = 20.833 μs
– Quel est le nombre d’instructions maximum entre 2 échantillons ?

AU 2020/2021 93
Mesure de performance

Performances des DSP

DSP MHz MMACS MIPS MFLOPS


Freescale DSP56367 150 150 150 -
MS8101 300 1500 na -
Analog ADSP-2191 160 na 160 -
Device ADSP-TS201 600 4800 na >1000
ADS-BF533 750 1500 na -
Texas TMS320 C24 40 40 40 -
Instrumen TMS320 C6455 1000 8000 8000 -
t
TMS320 C67 300 600 2400 1800

AU 2020/2021 94
Mesure de performance

Performances des DSP

Benchmark :
– mesurer le temps que met le DSP pour exécuter des programmes
"standard" de TNS
– Programmes standard
 Comment les choisir ?
 Dépendent des domaines
 N multiplications  Filtre RIF 2D
– Problème : dépend de la qualité de l’implémentation

AU 2020/2021 95
Gamme de DSP

Performances des DSP

Contrôle numérique

Faible consommation
(lecteur MP3, récepteur GPS,
équipement médical portable)

Très grande puissance :


8000 MIPS (imagerie,
vidéo…)

AU 2020/2021 96
Gamme de DSP

Performances des DSP

Road Map C50 (Texas Instruments) :

AU 2020/2021 97
Gamme de DSP

Performances des DSP

Road Map C60 (Texas Instruments) :

AU 2020/2021 98
Gamme de DSP

Performances des DSP

Road map BlackFin (Analog Devices)

AU 2020/2021 99
Quelques DSP

Performances des DSP

Constructeur Modèle Horloge MMACS Virg. Données


(MHz) Fi/Flo (bits)
Analog ADSP-21XX 80/160 80/100 Fixe 16
Devices SHARC 200 400 Flottante 32/40
DSP563xx 80/100 80/100 Fixe 24
Freescale
DSP568xx 120 120 Fixe 16
TMS320 C24 40 40 Fixe 16
TMS320 C54 160 160 Fixe 16
Texas
Instruments TMS320 C55 200 400 Fixe 16
TMS320 C62 300 400 Fixe 16
TMS320 C67 300 400 Flottante 32

AU 2020/2021 100
Méthodes et outils de
développements
Méthodes et outils de développements
• Programme : ensemble des instructions pour réaliser une fonction bien
définie (on doit utiliser l'outil fourni par le constructeur)
• Assembleur : l'assembleur génère le code machine à partir des
instructions. (Exemple : ADD A,B = 111000100101010001001) facile de
comprendre l'instruction ADD qu'avec les 0 et 1.
• Langage de haut niveau : ensemble d'instruction étendue, lent (par
rapport au langage assembleur), facile à programmer.
• Simulateurs : software d'implémentation des programmes sur DSP,
exécutés sur les PC, en simulant presque tous les fonctionnalités des DSP,
utilisés pour analyser la faisabilité de la conception avant d'attaquer la
partie hardware.
• Emulateurs : nous permet de contrôler et debugger directement le
résultat des instructions en exécutant sur les DSP.
• Debugger : ......

AU 2020/2021 102
Méthodes et outils de développements

 DSP : Code Composer Studio


(simulator and EVM versions)
 Algorithm implementation in
C/Assembler
 Debugging in conjunction with
Matlab implementation
 Profling your code

AU 2020/2021 103
Matlab's Embedded IDE Link

Méthodes et outils de développements


• Avant, on utilisait Matlab pour la conception des filtres FIR.
• Malab's Link pour Code Composer Studio (appelée : Matlab’s Embedded
Integrated Development Environment (IDE) Link est un Toolbox
permettant une intéraction (intégration) entre Matlab et CCS.

AU 2020/2021 104
Langage de programmation

Méthodes et outils de développements

AU 2020/2021 105
Matlab's Embedded IDE Link

Méthodes et outils de développements


• Compiler (compilateur): Le Compilateur C accepte comme entrée le code
source en C et génère un code source en assembleur.

• Assembler (assembleur): Convertit le code source assembleur vers un


fichier de code langage machine objet.

• Linker (Editeur de lien) : Combine les fichiers objets vers un seul fichier
objet exécutable.

AU 2020/2021 106
C6X Software Tools

Méthodes et outils de développements

AU 2020/2021 107

Vous aimerez peut-être aussi