100% ont trouvé ce document utile (1 vote)
204 vues113 pages

Chapitre 1 DSP 2019-2020

Le document décrit les architectures et périphériques des DSP. Il présente les différentes familles de DSP, leur classification, leurs unités de calcul et leurs mémoires internes. Le document décrit également les jeux d'instructions et périphériques des DSP.

Transféré par

M'hamed Saadi Bachir
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
204 vues113 pages

Chapitre 1 DSP 2019-2020

Le document décrit les architectures et périphériques des DSP. Il présente les différentes familles de DSP, leur classification, leurs unités de calcul et leurs mémoires internes. Le document décrit également les jeux d'instructions et périphériques des DSP.

Transféré par

M'hamed Saadi Bachir
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 113

DSP et FPGA

Prof. M. Bouziani
Chapitre 1 : Architecture et Périphériques des DSP

- Présentation des différentes familles de DSP


- Classification des DSP
- Introduction de l'unité de calcul MAC (Multiply and
ACcumulate)
- Les mémoires internes (Architecture Harvard)
- Présentation du jeu d'instructions de chaque unité de calcul
(Architecture RISC)
- Les différents périphériques internes pour l'interfaçage avec le
monde extérieur: (HPI, GPIO, McBSP, Timers, PLL…)-

2
Chapitre 1. Architecture et Périphériques des
DSP
- Présentation des différentes familles de DSP
- Classification des DSP
- Introduction de l'unité de calcul MAC (Multiply and ACcumulate)
- Les mémoires internes (Architecture Harvard)
- Présentation du jeu d'instructions de chaque unité de calcul (Architecture RISC)
- Les différents périphériques internes pour l'interfaçage avec le monde extérieur: (HPI,
GPIO, McBSP, Timers, PLL…)

3
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
4
Introduction
Les DSP sont utilises dans de nombreux domaines d’applications.
La façon dont un DSP s’insère dans une chaine de traitement du
signal est illustrée dans la figure suivante. Cette chaine comporte
généralement trois étapes :
- la conversion analogique numérique,
- le traitement par le DSP,
- et la conversion numérique analogique.

5
Introduction

L’étape de conversion analogique-numérique a pour but


de réaliser les opérations d’échantillonnage et de
quantification du signal a traiter. Le DSP effectue le
traitement désiré : filtrage, détection d’un signal,
estimation, régulation, modulation,… Le signal traité est
alors de nouveau converti (si nécessaire) en signal
analogique lors de l’étape de conversion numérique-
analogique.

6
Algorithmes et applications typiques

• Applications – Instrumentation et mesures


– Communications
– Traitement audio et vidéo
– Graphique, traitement d’images, rendu 3- D
– Navigation, radar, GPS
– Contrôle - robotique, vision, guidage
• Algorithmes
– Filtrage fréquentiel - FIR et IIR
– Transformations temps en fréquence - FFT
– Corrélation

7
Un DSP (Digital System Processing) est un type
particulier de microprocesseur. Il se caractérise par le fait
qu’il intègre un ensemble de fonctions spéciales. Ces
fonctions sont destinées à le rendre particulièrement
performant dans le domaine du traitement numérique du
signal.
La plupart des DSP sont particulièrement destinés à des
applications temps réel, dans lesquelles le temps de
traitement est primordial. En plus, ils se caractérisent par
une architecture optimisée pour le traitement d’une
grande quantité de données en parallèle à chaque cycle
d’horloge, ce qui rend les applications à base de DSP se
caractérisent par une grande souplesse.
8
Traitement numérique du signal
Signal original grandeur
physique
Signal traité

Capteur Signal numérique

Adaptation du signal
G d’entrée
(gain+démodulation) MEM

Filtre anti-
repliement DSP
Quantification

Filtre de
CAN CNA
E/S lissage

Échantillonnage
fs
9
TNS : contraintes

1
0
TNS : contraintes

11
TNS

Nombre de cycles de calcul

1
2
DSP : Définition

Un DSP est un type particulier de


microprocesseur. Il se caractérise par le fait
qu’il intègre un ensemble de fonctions
spéciales. Ces fonctions sont destinées à le
rendre particulièrement performant dans le
domaine du traitement numérique du signal.

1
3
DSP : Définition

Comme un microprocesseur classique, un DSP


est mis en œuvre en lui associant de la
mémoire (RAM, ROM) et des périphériques.
Un DSP typique a plutôt vocation à servir dans
des systèmes de traitements autonomes. Il se
présente donc généralement sous la forme
d’un microcontrôleur intégrant, selon les
marques et les gammes des constructeurs, de
la mémoire, des timers, des ports série
synchrones rapides, des contrôleurs DMA, des
ports d’E/S divers. 1
4
Architecture d’un Système Minimum autour d’un Processeur

1
5
Architecture d’un système à base Processeur

Processeur
1
6
Schéma Fonctionnel d’un processeur

Processeur
1
7
Schéma Fonctionnel d’un processeur

Un processeur est construit autour de deux


éléments principaux :
 Une unité de commande : appelé aussi Unité de
commande et de contrôle (UCC)
 Une unité de traitement
associés à des registres chargées de stocker les
différentes informations à traiter. Ces trois
éléments sont reliés entre eux par des bus interne
permettant les échanges d’informations.

1
8
Schéma Fonctionnel d’un processeur

1- Unité de commande :
Elle permet de séquencer le déroulement des instructions. Elle
effectue la recherche en mémoire de l'instruction et en assure le
décodage pour enfin réaliser son exécution puis effectue la
préparation de l'instruction suivante.
Elle est composée de :
 Le compteur de programme : (Program Counter PC)
Il est constitué par un registre dont le contenu représente
l’adresse de la prochaine instruction à exécuter. Il est donc initialisé
avec l'adresse de la première instruction du programme. Puis il sera
incrémenté automatiquement pour pointer vers la prochaine
instruction à exécuter.

1
9
Schéma Fonctionnel d’un processeur

 Le compteur de programme : (Program Counter PC)


Il est constitué par un registre dont le contenu représente
l’adresse de la prochaine instruction à exécuter. Il est donc initialisé
avec l'adresse de la première instruction du programme. Puis il sera
incrémenté automatiquement pour pointer vers la prochaine
instruction à exécuter.
 Le registre d'instruction : Contient l’instruction en cours de
traitement.
 Le décodeur d'instruction : permettant d’interpréter l’instruction,

2
0
Schéma Fonctionnel d’un processeur

2- Unité de traitement :
Elle regroupe les circuits qui assurent les traitements nécessaires à
l'exécution des instructions. L’unité de traitement est composée des
principales blocs d’exécution suivantes :
- Bloc d’unités arithmétiques et logiques (UAL),
- Bloc des registres,
- Bloc d’unités MAC (Multiply and Accumulate),

2
1
DSP : Avantages

Tous les systèmes à bases de DSP bénéficient


des avantages suivants :
• Souplesse de la programmation :
Un DSP est avant tout un processeur exécutant un
programme de traitement du signal. Ceci signifie que le
système bénéficie donc d’une grande souplesse de
développement. De plus, les fonctions de traitements
numériques peuvent évoluer en fonction des mises à
jour des programmes, et cela pendant toute la durée de
vie du produit incluant le système. Ainsi, modifier par
exemple tel ou tel paramètre d’un filtre numérique ne
nécessite pas un Changement matériel. 2
2
DSP : Avantages

• Implémentation d’algorithmes adaptatifs :


une autre qualité issue de la souplesse des programmes. Il est
possible d’adapter une fonction de traitement numérique en
temps réel suivant certains critères d’évolutions du signal
(exemple : les filtres adaptatifs).
• Stabilité :
en analogique, les composants sont toujours plus ou moins
soumis à des variations de leurs caractéristiques en fonction de la
température, de la tension d’alimentation, du vieillissement, etc.
Une étude sérieuse doit tenir compte de ces phénomènes, ce qui
complique et augmente le temps de développement. Ces
inconvénients n’existent pas en numérique.

2
3
DSP : Avantages

• Répétabilité, reproductibilité :
les valeurs des composants analogiques sont
définies avec une marge de précision plus ou
moins grande. Dans ces conditions, aucun
montage analogique n’est strictement
reproductible à l’identique, il existe toujours des
différences qu’il convient de maintenir dans des
limites acceptables. Un programme réalisant un
traitement numérique est par contre
parfaitement reproductible.
2
4
Rôle du DSP
• Opération MAC :
Le traitement numérique du signal, qu'il provienne du son ou
d'une image vidéo, est rendu accessible par le DSP grâce à son
unité de calcul spécifique multiplicateur / additionneur /
accumulateur de données.
En effet, tout DSP est prévu pour effectuer le plus rapidement
possible, en principe en un seul cycle d'horloge, l'opération
multiplication/addition et accumuler (MAC) sur des grandeurs
numériques :
MR 
où X et Y sont soit des données, soit des constantes et R une
donnée, une constante ou un résultat précédent. MR est alors le
résultat de l'opération arithmétique.
2
5
Traitement typiques
x
pointeur sur x

N 1 *

 x ( n)
pointeur ++
2 MAC
• Energie + mémoire
i 0

N 1

• Convolution  y ( n ) x ( n  m)
i 0
x h
pointeur sur x

MAC * pointeur ++
N 1 mémoire
• Corrélation  x ( n) x ( n  m)
i 0
+
pointeur sur h

pointeur ++
N 1

 x (n) y (n)
mémoire
• Produit scalaire
i 0

N 1

 x ( n)  y ( n)
2
• Distance
i 0

On raisonne souvent en # d’opérations MAC (Multiply-ACcumulate)


2
6
Vision interne et fonctionnelle d’un Processeur

2
7
Architecture générale d’un processeur

Unité de
DSP
Unités de
DSP
contrôle traitement

Bus internes

Mémoire Unité de Périphériques


interne Communication et mémoire externes

2
8
Structure interne du DSP

2
9
DSP : Unité de commande ou de contrôle

 Chef d’orchestre du DSP

 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

3
0
DSP : Unités de traitement mathématique

 Calculs au format fixe  Multiplieur


ou flottant  Multiplication et
accumulation (MAC)
 Parallélisme entre les
sous-unités  ALU
 Opérations arithmétiques,
logiques et de conversion
 Registres de données entre formats
 pour stocker les opérandes  Registre de décalage
et les résultats  Multiplication rapide par 2k
 Unités spécialisées
 Compare, Select and Store
(Viterbi)
 DCT
3
1
DSP : Mesure de performance

3
2
DSP : Mesure de performance

3
3
DSP : Unités de génération d’adresses
 Unités de traitement spéciales
 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)

3
4
Présentation des différentes familles de DSP

 Embarqué  Haute performance

 Faible coût unitaire  Puissance : Calcul


intensif
 Faible consommation :
part importante de la  Parallélisme
consommation pour la  Multiplication des
mémoire unités de calcul
internes
 Architecture limitée au  Interfaces multi-DSP
strict nécessaire
 Interface avec un
 Temps réel ordinateur hôte

3
5
Accès à la Mémoire

3
6
Rappels : Bus
 Le DSP est le maître du
BUS
Périphérique bus
DSP
 Il est le seul à écrire sur les
bus adresse et contrôle
 Le périphérique accepte
adresses Périphérique sur le bus données
DSP données  Lecture: il fournit la donnée
contrôle demandée
 Ecriture : il récupère la
donnée fournie par le DSP
Adresses : sélection du périphérique  Haute impédance: il se
et d’une donnée en son sein déconnecte du bus
Données : valeur de la donnée à échanger

Contrôle : lire / écrire / haute impédance


3
7
Rappels: le fonctionnement basique
d’une opération de calcul
1
2
DSP Mémoire
4

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

3
8
Fonctionnement basique d’une opération de calcul

Une instruction est une tâche ou opération pouvant être réalisée


par un processeur,
Une instruction est représenté par un code machine composé
d’un code opération et d’opérandes :

Code opération Opérande(s)

Op Code

Certaines instructions ne contiennent que l’Op Code :

Op Code

Tous les Code opérations et les opérandes sont des codes binaires
Un Programme est une série d’instructions successives de Op Codes
et d’opérandes sauvegardés en mémoire (RAM, ROM, ….)

Operation code
Instruction 1
Opérande
Operation code
Instruction 2
Opérande
Operation code
Instruction 3
Opérande
Operation code Instruction 4

4
0
Assembleur – Langage Machine
Op Code Opérande

LD A, 01H Assemble 00111110 000000001

Hexadecimal
RAM
Adresse de
3E 0000H localisation e
mémoire
01 0001H 3E 01

4
1
Principales Architectures des systèmes à base de DSP

4
2
Principales Architectures des systèmes à base de DSP

• Architecture Von Neumann :


Avec une architecture Von Neumann classique, le CPU peut soit lire
une instruction, soit lire/écrire une donnée de/vers la mémoire mais,
jamais les deux simultanément car les instructions et les données
partagent un même bus et une même mémoire.
• Architecture Von Neumann :
Par contre, l'architecture Harvard, contrairement à l'architecture Von
Neumann, utilise deux bus pour les accès mémoire : un pour le
transfert de données et l'autre pour les instructions.
Il existe une variante à cette architecture appelée Harvard double qui
utilise trois bus répartis comme suit : un pour les instructions et deux
pour les données, ce qui permet l'exécution d'une instruction en
parallèle avec des accès mémoire. 4
3
Architecture de Von Neuman

Une seule Mémoire


DSP BUS Programme
+ Données

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


 Architecture des processeurs d’usage général
(Pentium, 68000)
 Goulot d'étranglement pour l'accès à la mémoire
 Pas de sécurisation matérielle du programme

4
4
Architecture de Harvard

Mémoire Programme

DSP
Mémoire Données

 Séparation des mémoires programme et données


 Moins de risque de corruption du programme
 Meilleure utilisation du DSP
 Chargement du programme et des données en parallèle

4
5
Architecture Harvard modofiée

DSP Mémoire Programme


Mémoire Programme
+ Données

Mémoire Données

 Mémoire programme contient en plus des données


 Possibilité de charger 2 données en un cycle
 Utilisation classique en TNS
 Mémoire Programme+Données → coefficients des filtres
 Mémoire Données → échantillons d’entrée

4
6
Accès Mémoire Multi-port

DSP Mémoire Programme


+ Données

Mémoire Données

 Plusieurs bus de données


 Accès simultané à plusieurs données
 Combiné avec
 mémoire multi-accès (plusieurs accès à la même mémoire en un cycle)
 mémoire multi-blocs (accès simultané à deux blocs de mémoire distincts)
 Exemple du TMS320C54xx :
 1 bus programme (P)
 2 bus de lecture des données (C et D)
 1 bus d’écriture des données (E)

4
7
Cache d’Instructions ou mémoire cache
DSP
cache
Mémoire Programme
d’instructions
+ Données
DSP
Mémoire Données

 Cache = mémoire associative rapide


 Contient les dernières instructions exécutées
 Utile en cas de boucle
 Accès aux instructions sans accès en mémoire programme
 Libère le bus pour des données
 Pas appliqué aux données
 Problème de validation du temps réel

4
8
Mémoire interne sur les processeurs C54x

Capacité en mémoire interne de différents modèles C54x

 Plusieurs types de RAM incluse sur le chip


 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
 DARAM découpée en blocs
 Accès simultané à deux blocs de mémoire différents
 2x2=4 accès par cycle en théorie (en réalité limité par le reste de
l'architecture) 4
9
Bus externe dans une architecture Harvard modifiée

DSP Mémoire Programme


+ Données

DSP
Mémoire Données

MUX

Transfert entre les bus


internes et externe par
•Limitation du nombre de broches
multiplexage temporel
• Réduction des coûts
•Diminution des performances lors
des accès au bus externe
5
0
Accès Direct à la Mémoire
(DMA : Direct Memory Access)

DSP Mémoire Programme


+ Données

Mémoire Données

interruptions
DMA
configuration

•Accès DMA : entrées-sorties vers la mémoire interne


• indépendant du DSP et des bus internes
•Système d'interruptions "données reçues"/"données transmises"
5
1
Schéma de principe des échanges
DSP pilotage

Séquenceur Génération Génération Unités de


adresses P adresses D calcul

programme
addr

Bus
data
ctrl

addr

données
Bus
data
ctrl
Mémoire P Mémoire D
périphériques
5
2
Fetch (lecture instruction)

Séquenceur Génération Génération Unités de


adresses P adresses D calcul

programme
addr

Bus
data
ctrl

addr

données
Bus
data
ctrl

Mémoire P Mémoire D
5
3
Read/Write (lecture/écriture donnée)

Séquenceur Génération Génération Unités de


adresses P adresses D calcul

programme
addr

Bus
data
ctrl

addr

données
Bus
data
ctrl

Mémoire P Mémoire D
5
4
Exemple : Diagramme bloc du TMS320C54x
Program/Data ROM
Program/Data RAM Mémoire
128K Words
16K Words JTAG Test/ interne
Emulation
D(15-0)
Control
MUX
Bus externe Program/Data Buses
Timer
A(23-0)
MAC ALU DMA Muxed GP I/O
17 x 17 MPY 40-Bit ALU Ch 0
40-Bit Adder CMPS Operator 8/16-bit Host Port
(VITERBI) Ch 1 Interface (HPI)

Peripheral Bus
Unités de RND, SAT EXP Encoder Ch 2 Multichannel Buffered
calcul Serial Port (McBSP)
Shifter Accumulators Ch 3
Multichannel Buffered
40-Bit Barrel 40-Bit ACC A Ch 4 Serial Port (McBSP)
(-16, 31) 40-Bit ACC B Ch 5 Multichannel Buffered
Serial Port (McBSP)
Addressing Unit
Génération
8 Auxiliary Registers PLL Clock
d’adresses Generator
2 Addressing Units
S/W Waitstate
Power Management Generator Entrées
Sorties
CPU

5
5
Structure interne du
TMS320C54x

Source : Texas Instruments


TMS320C54x DSP
Reference Set
Vol 1 : CPU and Peripherals

5
6
Bus
 Le bus programme PB sert à véhiculer les
instructions et les coefficients stockés dans la
mémoire programme. Ces données sont
adressées par le bus d’adresse de la mémoire
programme PAB

 Trois bus d’accès aux données sont raccordés à


l’unité centrale de calcul, à la mémoire de donnée,
aux périphérique et aux circuits de générations
d’adresse (programme et données). Ces bus CB,
DB, et EB véhiculent les données des éléments
adressés par CAB, DAB, et EAB respectivement.

5
7
Bus Génération Génération
d'adresses d'adresses
Unité de controle programme données

Bus P
programme

Bus C / D
lecture
données

Bus E
écriture
données

5
8
Unité de traitementnt mathématique

 Unité arithmétique et logique(UAL)


 Multiplieur-Accumulateur (MAC)
 Registre à décalage
 Unités spécialisées

5
9
Accumulateurs ALU

Shifter
Viterbi
MAC

6
0
Unité Arithmétique et Logique (ALU)

 Ce bloc effectue des calculs arithmétiques et


logique
 2 accumulateurs sur 40 bits :

39-32 31-16 15-0


AG AH AL
39-32 31-16 15-0
BG BH BL

 Opérations entières et binaires


 (+, -, inc, dec, et, ou, xor, shl, ...)

6
1
Multiplieur-accumulateur (MAC)

Rôle central dans un DSP


 Plus de 50% des instructions
Caractéristiques principales
 Temps d’exécution = 1 cycle instruction
 Structure pipeline
 Un résultat par cycle horloge, si le pipeline est
bien utilisé

6
2
Unité de calcul : MAC

6
3
Shifter (registre à décalage)

 ce registre de 40 bits, sert à cadrer les données en


provenant de la mémoire ou bien de l’accumulateur avant
une opération dans ALU

 Opérations de mise à l’échelle (Scaling) par puissance de


deux
 Indispensable pour éviter les dépassements de capacité
 Son utilisation doit être maitrisée par le programmeur
 Réduction de la précision des calculs
 Nombre, emplacement et possibilités des Shifters très
différents d’un DSP à un autre.

6
4
Registres
IMR Registre Masque d’Interruption TREG Registre Temporaire

IFR Registre de Statut d’Interruption TRN Registre de Transition

ST0 Registre d’Etat 0 AR0 Registre Auxiliaire 0 (Index)

ST1 Registre d’Etat 1 AR1-7 Registres Auxiliaires 1 à 7

PMST Registre de Contrôle de la Mémoire BK Registre d’Addressage Circulaire

AL Accumulateur A (0-15) RC Compteur Répétion 1 Instruction

AH Accumulateur A (16-31) RSA Première Addresse Répétition Bloc

AG Accumulateur A (32-39) REA Dernière Addresse Répétition Bloc

BL Accumulateur B (0-15) BRC Compteur Répétion d’un Bloc

BH Accumulateur B (16-31) TIM Registre du Timer

BG Accumulateur B (32-39) PRD Compteur de la Période de Timer

SP Registre Pointeur de Pile TCR Registre de Contrôle du Timer

6
5
Pipeline

6
6
Pipeline

6
7
Pipelining
 Instructions segmentées en Instruction Instruction 1

étages
 Exécution entrelacée de Segmentation
en étages
plusieurs instructions
 Chacune à un étage différent Fetch F1
Decode D1
 Géré par le séquenceur Read R1
 Augmentation de la Execute X1
fréquence d'horloge
 Etages plus simples donc plus
rapides Entrelacement

 Fetch (F) : Lecture de l’instruction en mémoire Fetch F1 F2 F3 F4 F5


 Decode (D) : Décodage de l’instruction Decode D1 D2 D3 D4
 Read (R) : Lecture/Ecriture des opérandes en mémoire Read R1 R2 R3
et calcul de l’adresse du résultat
Execute X1 X2
 Execute (X) : Exécution et écriture en mémoire

6
8
Séquentiel vs pipeline

étage\temps t1 t2 t3 t4 t5 t6 t7 t8
Fetch F1 F2
Decode D1 D2
Read R1 R2
Execute X1 X2

Exécution séquentielle (Architecture de Von Neuman)

étage \ temps t1 t2 t3 t4 t5 t6 t7 t8
Fetch F1 F2 F3 F4 F5 … … …
Decode D1 D2 D3 D4 D5 … …
Read R1 R2 R3 R4 R5 …
Execute X1 X2 X3 X4 X5

Chargement du pipeline
Exécution avec pipeline (Architecture de Harvard)
6
9
Pipeline : nombre de cycles

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 DSP (à la mémoire) (au DSP)

7
0
Pipeline

7
1
Pipeline
 Exemple du TMS320C54x

 6 étages de traitement
 Prefetch (P) : Incrémentation du PC
(Program Counter)
 Fetch (F) : Lecture de l’instruction en mémoire
 Decode (D) : Décodage de l’instruction
 Access (A) : Calcul des adresses des opérandes
 Read (R) : Lecture des opérandes en mémoire
et calcul de l’adresse du résultat
 Execute (X) : Exécution et écriture en mémoire

7
2
Retards dans le Pipeline

 Le pipeline atteint son plein rendement une


fois qu’il est “plein”
 Un retard peut se produire
 s’il existe un conflit de ressources (retard ponctuel)
 accès à la mémoire
 utilisation des bus
 en cas de rupture de séquence (vidange du pipeline)
 branchement non prévu
 appel de sous-programme
 interruption

7
3
Exemple de conflit d'accès mémoire
Programme et données
dans une mémoire à 1 accès par cycle

P1 F1 D1 A1 R1 X1
P2 F2 D2 A2 R2 X2
P3 F3 D3 A3 R3 X3
P4 -- -- -- F4 D4 A4 R4 X4
-- -- -- P5 F5 D5 A5 R5 X5
-- -- -- P6 F6 D6 A6 R6

Les lectures de données R1/R2/R3 sont en conflit avec les


chargements d'instruction F4/F5/F6
Peut réduire les performances d'au moins 50%
7
4
Résolution du conflit d'accès mémoire
Programme et données
dans des mémoires accès séparés (Bus Programme/Bus Données)
ou dans une même mémoire à accès double (DARAM)

P1 F1 D1 A1 R1 X1
P2 F2 D2 A2 R2 X2
P3 F3 D3 A3 R3 X3
P4 F4 D4 A4 R4 X4
P5 F5 D5 A5 R5 X5
P6 F6 D6 A6 R6 X6

7
5
Bilan accès mémoire
Program Data
SARAM DARAM
ROM ROM

P Bus

Mémoire externe
A

Interface
D Bus

C Bus D

E Bus

A retenir pour éviter les problèmes:


 ROM/SARAM - 1 accès par bloc par cycle
 DARAM - 2 accès par bloc par cycle

7
6
Architecture CISC

L'architecture CISC (Complex Instruction Set


Computer, soit « Processeur à jeu d'instruction
complexe ») consiste à câbler dans le processeur des
instructions complexes, difficiles à créer à partir des
instructions de base.
Ce type d'architecture possède un coût élevé dû aux
fonctions évoluées imprimées sur le silicium. D'autre
part, les instructions sont de longueurs variables et
peuvent parfois nécessiter plus d'un cycle d'horloge. Or,
un processeur basé sur l'architecture CISC ne peut traiter
qu'une instruction à la fois, d'où un temps d'exécution
7
conséquent. 7
Architecture RISC

Un processeur utilisant la technologie RISC (Reduced Instruction Set


Computer, soit « calculateur à jeu d'instructions réduit ») n'a pas de
fonctions évoluées câblées.
Les programmes doivent ainsi être traduits en instructions simples, ce
qui entraîne un développement plus difficile. Une telle architecture
possède un coût de fabrication réduit par rapport aux processeurs
CISC. De plus, les instructions, simples par nature, sont exécutées en
un seul cycle d'horloge, ce qui rend l'exécution des programmes plus
rapide qu'avec des processeurs basés sur une architecture CISC. Enfin,
de tels processeurs sont capables de traiter plusieurs instructions
simultanément en les traitant en parallèle.

7
8
TMS320C62X

Processeur à
virgule fixe
comportant 2
multiplieurs, 6 UALs
et 2 groupes de 16
registres de 32 bits
Instructions du type
RISC
Le processeur
peut effectuer des
opérations sur
8/16/32 bits de
données.

7
9
TMS320C62X

8
0
TMS320C62X : groupe opérateurs

Chaque groupe d’opérateurs dispose de :


3 UALs + 1 multiplieur (.L, .S, .D et .M) :
.L : opérations arithmétiques et logiques et instruction de
branchement.
.S : opérations arithmétiques et logiques, de décalage, de
branchement et de génération de constantes.
.M : multiplieur câblé 16x16
.D : lecture, chargement et opérations arithmétiques.
16 registres de 32 bits non orthogonaux
Chaque UAL est contrôlée par une instruction de 32
bits.

8
1
TMS320C62X : groupe opérateurs

A0
A1 a1 N
A2 x1 Y a n xn
A3 prod .M n 0
A4 Y

.
. MPY .M a1, x1, prod
. ADD .L Y, prod, Y
. .L
A15

32 bits

8
2
VLIW (Very-Long-Instruction-Word)
 Le processeur présente une architecture d’unités
opératives lui permettant d’exécuter plusieurs macro-
instructions contenues une instruction plus longue
(VLIW)

 Parallélisme géré par le compilateur


 Contrôle simple mais compilateur complexe
 Microarchitecture simple et performante
 Mais taille de code importante
 Généralement clusterisé (1 cluster : banc de registres
+ unités fonctionnelles)
 Réduction de la complexité des chemins de données

8
3
VLIW (Very-Long-Instruction-Word)

inst1

inst2
Instruction VLIW

inst3

inst4

inst5

inst6

inst7

inst8

8
4
VLIW : exemple du TMS320C62x

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 +

+ +

8
5
Applications des DSP

8
6
Applications des DSP

Lecteur MP3

8
7
Applications des DSP

Scanner de codes barres

8
8
Applications des DSP

Appareil photo numérique

8
9
Caractéristiques classiques des DSP

 Chemin de données organisé pour traitement du signal

 Jeu d’instructions spécialisé

 Plusieurs mémoire et plusieurs bus

 Modes d’adressage spécifiques

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

 Augmentation du parallélisme
9
0
Caractéristiques classiques des DSP

 Augmentation du parallélisme

 Calculs
 Unités de calcul en parallèle

 Mémoire à accès multiples


 Lecture/Écriture de plusieurs données simultanément

 Pipeline
 Découpage des instructions de façon à les exécuter à
intervalles plus rapprochés

9
1
Familles de DSP
Les DSP à virgule fixe
Les données sont représentées comme étant des nombres fractionnaires à
virgule fixe, (exemple -1.0 à +1.0), ou comme des entiers classiques.
La représentation de ces nombres fractionnaires s’appuie sur la méthode du
«complément à deux».
Permet facilement l’addition binaire de nombres positifs et négatifs.

Les DSP à virgule flottante


Les données sont représentées en utilisant une mantisse et un exposant.
La représentation de ces nombres s’effectue selon la formule suivante :
n = signe mantisse 2exposant
Généralement, la mantisse est un nombre fractionnaire (-1.0 à +1.0), et
l’exposant est un entier indiquant la place de la virgule en base 2.
9
2
Virgule fixe ou virgule flottante ?

Les profiles d’application nécessitant un processeur flottant sont :


Haute précision

Dynamique importante

Les inconvénients du DSP flottant sont :


Consommation

Coût
Moins performant que le DSP à virgule fixe

95% des DSP sont en virgule fixe.


9
3
Panorama des DSP
 Texas Instrument
 C2000 : virgule fixe 16 bits, Contrôle.
 C5000 : virgule fixe 16 bits, Faible consommation.
 C6000 : virgule fixe et flottante, Hautes performances.

 Analog Devices
 ADSP21xx : virgule fixe 16 bits.
 SHARC : virgule fixe ou flottante 32 bits.
 ADSPBFxx : virgule fixe 16 bits, Hautes performances.
 TigerSHARC : virgule flottante 24 bits, Hautes performances.

 Motorola
 DSP560xx, DSP563xx : virgule fixe 24 bits, Audionumérique.
 DSP566xx, DSP568xx: virgule fixe 16 bits.
 StarCore : virgule fixe 16 bits, Hautes performances.
9
4
DSP TI (Texas Instrument)

9
5
DSP TI (Texas Instrument)
3ème Génération
Hybride
Multi-core C64x™ DSP
1.1 GHz

2ème Génération
Performance

C6416
C6414
C6412 C6415 DM642
C6411

1ère Génération
C6203
C6713
C6202 C6204
C6201 C6205
C6211 C62x/C64x/DM642 : Fixed Point
C6701 C6711 C6712
C67x : Floating Point
9
6
Spécificités des DSP

 Algorithme classique de TNS : Filtre RIF


N 1
y(n) a(i) x(n i)
i 0

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


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

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


l’unité
de calcul  Accumulation a(i-1) x(n-i-1) + a(i) x(n-i)
9
7
Spécificités des DSP
 Objectifs :

 Réduire les accès mémoire

 Augmenter les accès mémoire simultanés

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

Instruction MAC
(multiplication-accumulation)
en 1 seul cycle d’instruction
9
8
Mémoire Cache

La mémoire cache permet d'accéder aux informations plus


rapidement.

Il y a 3 types de mémoire cache :


L1 (la plus rapide), L2 et L3 (la plus lente)

9
9
Cache d'instructions
DSP
Mémoire Cache Mémoire Instruction
d’instructions

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

 Cache = mémoire rapide


 Contient les dernières instructions exécutées.

 Utile en cas de boucle


 Accès aux instructions sans accès en mémoire programme.
 Libère le bus pour des données.
1
0
DSP améliorés

 Exécution parallèle  VLIW (Very Long Instruction Word)


d’instructions simples  Une instruction contient plusieurs
sous-instructions destinées à des
unités distinctes.
 Architecture plus homogène  Exemples :
 TMS320C62xx
 Se prête mieux à
l’optimisation par le  StarCore SC140
compilateur.

 Superscalaire
 Processeurs hautes-  Réorganisation automatique des
performances instructions dans le pipeline de
 Bus larges, consommation façon à maximiser le parallélisme.
plus élevée.
 Coût élevé.  Peu utilisé dans les DSP, à cause
des contraintes temps réel.
1
0
SIMD

 SIMD = Single Instruction Multiple Data


 Deux types de SIMD :
 Unités parallèles
 Effectuent la même opération sur des données différentes
 Exemple : ADSP-2116x
 Partage de l’unité de traitement
 Partage un mot de donnée en sous-mots
 Effectue les calculs sur les sous-mots
 Exemple : instructions MMX du Pentium

 Efficace pour des algorithmes parallèles


1
0
SIMD : TigerSHARC
Le TigerSHARC d’Analog Devices met en œuvre les deux types de
SIMD :

Instruction MAC SIMD


SIMD par unités parallèles

Unité de Unité de
calcul n°1 calcul n°2
Shift ALU MAC Shift
ALU MAC

SIMD par partage de


l’unité de traitement
(split-MAC)
4 multiplications 16 bits 4 multiplications 16 bits
au lieu de au lieu de
1 multiplication 64 bits 1 multiplication 64 bits
1
0
C54x Block Diagram • 17x17 MAC Unit
• Saturation and
Program/Data ROM Program/Data SRAM JTAG Test/
Rounding
16K Words 128K Words Emulation Hardware
Control
D(15-0)
• Two 40-bit ACC’s
• 40-bit ALU
Program/Data Buses
• 40-bit Barrel Shifter
Muxed GP I/O
A(23-0) • Temporary
MAC ALU DMA Timer Register
17 x 17 MPY 40-Bit ALU Ch 0
40-Bit Adder CMPS Operator 8/16-bit Host Port • Exponent Encoder
(VITERBI) Ch 1 Interface (HPI)
• Program and Data

Peripheral Bus
RND, SAT EXP Encoder Ch 2 Multichannel Buffered
Serial Port (McBSP) Address
Shifter Accumulators Ch 3
40-Bit Barrel 40-Bit ACC A Ch 4
Multichannel Buffered
Serial Port (McBSP)
Generation
(-16, 31) 40-Bit ACC B Ch 5
Units
Multichannel Buffered
Addressing Unit Serial Port (McBSP) • Compare, Select
8 Auxiliary Registers PLL Clock and Store Unit
Generator
2 Addressing Units • 4 Internal Bus
S/W Waitstate
Power Management Generator Pairs
• External Interface

C5416 example
1
0
C54x Block Diagram

1
0
DSP multicore

 Gravure sur la même puce


de deux cœurs DSP
indépendants.

 Communication entre les


deux :
 Mémoire partagée.
 Interface FIFO.

Shared memory
two-way RAM : permet
l'accès simultané à la
mémoire par les deux DSP
Architecture du C5421 1
0
DSP multicore

DSP haute
performance.

TMS320C64x+.

3 C64x+ intégrés
fonctionnant à
1Ghz chacun.

Architecture du C6474 1
0
VLIW : TMS320C62x
 Data path
 Deux ensembles d’unités de C62 DSP
traitement (1 et 2)
Instruction Fetch Control

Interrup
Instruction de 256 bits

Control
t
 Instruction Dispatch Registers
 8 sous-instructions de 32 bits Instruction Decode Emulation

Data Path 1 Data Path 2


 Unités logique .L
Register File A Register File B
 Arithmétique et comparaisons
A15-A0 B15-B0
 Unité de décalage .S
 ALU et Shifter L1 S1 M1 D1 D2 M2 S2 L2
 Unités de multiplication .M + + + + + +

 Multiplication
+ x x +

 Unités de données .D
 Mouvement de données
de/vers la mémoire

1
0
Unités fonctionnelles
Deux chemins de données : A et B
Chaque chemin contient 4 unités de traitement :
(.M) : Multiplication
(.L) : Opération logique et arithmétique
(.S) : Branchement et manipulation binaire

(.D) : Chargement et stockage des données


64 registres de 32 bits (A0 à A31) et (B0 à B31)
2 chemins croisés (1x et 2x) (cross path)
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
0
Paquet de Fetch et d’Exécution
 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
1
Les différents périphériques internes pour l'interfaçage avec
le monde extérieur

1
1
Les différents périphériques internes pour l'interfaçage avec
le monde extérieur

- Le contrôleur DMA : Il permet sans l'aide du CPU de


transférer des données entre les espaces mémoire (interne,
externe et des périphériques). Il a quatre canaux
programmables et un autre canal auxiliaire
- Le contrôleur EDMA : Il permet le transfert des données
entre les espaces mémoire comme le DMA. Il a 16 canaux
programmables.
- L'interface port hôte HPI : Il donne au processeur hôte un
contrôle total pour un accès direct de l'espace mémoire du
CPU et à la cartographie de la mémoire des périphériques du
DSP.

- L'interface McBSP : qui sont des ports séries multi-canaux


protégés. Ils permettent la communication avec les
périphériques externes. Ils ont la même structure. Ils
1
supportent une communication full-duplex. 1
2
Les différents périphériques internes pour l'interfaçage avec
le monde extérieur

- L'interface de mémoire externe EMIF : Il permet l'interface


avec plusieurs éléments (mémoires) externes.
- Les compteurs : Le DSP possède deux compteurs qui
peuvent être synchronisés par une source interne ou externe
et ils sont utilisés comme générateurs de pulsations,
compteurs d’événements externes, interrupteurs du CPU
après l'exécution de tâches et déclencheur du DMA/EDMA.
- Les interruptions : l'ensemble des périphériques contient
jusqu'à 32 sources d'interruptions.

1
1
3

Vous aimerez peut-être aussi