Uploaded by Aziza Garouachi

Cours DSP-STR

advertisement
Cours DSP-Architecture-STR
Qu'est ce qu’un DSP
I Définitions :
I-1 Un DSP représente le cœur d'un système de traitement numérique du signal
DSP : Digital System Processing (Traitement Numérique du Signal)
Un STR : Système Temps Réel est un système dont la sortie s’obtient au même
temps que l’admission et le traitement des entrées.
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.
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éries synchrones
rapides, des contrôleurs DMA, des ports d’E/S divers.
Un processeur de traitement de signal est un processeur dont l’architecture a été
optimisée dans la perspective de réaliser des opérations et des traitements
spécifiques au traitement de signal. Par exemple, l’une des opérations les plus
courantes en traitement du signal est la somme de produits qu’on retrouve dans les
problèmes de filtrage numérique :
na
nb
i 0
j 1
y (n)   ai x(n  i )   b j y (n  j ).
Un processeur dédié aux applications de traitement du signal doit donc être capable
de réaliser rapidement ces sommes de produits et donc de réaliser rapidement un
grand nombre de calculs arithmétiques.
1
Traitement numérique du signal
Pourquoi faire du traitement numérique du signal ?
Les principaux avantages du calcul numérique par rapport au calcul analogique
s'appliquent aussi au traitement du signal. On a par exemple :
- Grande résistance aux bruits:
. Variations des tensions d'alimentation
. Variations de température
. Interférences électromagnétiques (EMI)
- Précision arbitraire
- Stabilité dans le temps
- Stockage des données sans dégradation
- Duplication des valeurs sans altération
- Programmation flexible
- Développement rapide
2
TABLEAU 1. Domaines d’Applications Typiques des Processeurs de Traitement de Signal
Domaines d’ordre général
Filtrage numérique
Convolution
Corrélation
Transformation de Hilbert
FFT
Filtrage adaptatif
Fenêtrage
Générateur de signal
…
Voix/Parole
Courrier électronique vocal
Codage de la parole
Reconnaissance de la parole
Identification de voix
Synthèse de la parole
Transcription texte/voix
Décodeur MP3…
Graphisme/Image
Rotation 3D
Vision des robots
Transmission et compression
d’images
Reconnaissance de forme
Stations de travail
…
Instrumentation
Analyse spectrale
Générateur de fonctions
Traitement de données sismiques
Filtrage numérique
Analyse transitoire
…
Commande
Commandes des lecteurs de
disques
Commandes de moteurs
Commande de robots
Commande des imprimantes laser
…
Télécommunications
Annulation d’écho
Transcodeurs
Répétiteurs de lignes
Multiplexage de lignes
Modems
Egaliseurs adaptatifs
Codage décodage
Encryptage de données
…
Consommation Courante
Télévision numérique
Son numérique
Synthétiseurs
Jouets et jeux
…
Télécommunications
Fax
Téléphones mobiles
Traitement de la parole
Interpolation
Vidéo conférence
Commutations de paquets en
norme X25
…
Domaine Militaire
Sécurisation des communications
Radar
Sonar
Image
Navigation
Guidage des missiles
Modems
…
Industrie Automobile
Freinage
Analyse vibratoire
Navigation
Positionnement
Commande vocale
Radio numérique
Téléphones mobiles
…
Industrie
Robotique
Commande numérique
Accès sécurisé
…
Médical
Aide auditive
Equipements à ultrason
Outils de diagnostic
Prothèses
Monitoring
…
3
De quelles solutions dispose-t-on pour effectuer ce travail?
Schéma général externe
Nous allons définir ici le schéma général d'utilisation d'un DSP qui permet de
développer la plupart des applications simples en traitement du signal.
4
Les circuits exploitant les processeurs de traitement du signal ont une architecture
particulière décomposable en deux parties :


Une chaîne d'acquisition;
Une unité de traitement du signal (DSP);
La chaîne d'acquisition
Le signal en entrée du circuit peut être :



un signal électrique;
une grandeur physique par le biais d'un capteur;
un signal numérique;
Puis en fonction du signal d'entrée plusieurs éléments peuvent constituer la chaîne
d'acquisition.
Schéma général :
Signal
original
Filtre
Passe - Bas
Convertisseur
Analogique
Numérique
Signal traité
Mémoire
Filtre
Passe - Bas
DSP
Convertisseur
Numérique
Analogique
Entrées/Sorties
5
ACQUISITION TRAITEMENT RESTITUTION
Les principaux traitements sont :
- Générer des signaux
- Filtrer
- Détecter, identifier des signaux (1750, DTMF, parole, image…)
- Moduler démoduler (modem, ADSL, Ethernet, AX25….)
- Analyser un signal ( FFT)
- Crypter, décrypter
Dans le cas d'un signal électrique ou d'une grandeur physique
Le signal arrive à l'échantillonneur-bloqueur qui permet de discrétiser le signal en
prélevant des portions à des intervalles de temps réguliers avant de les envoyer au
convertisseur analogique-numérique.
Après un traitement en ``temps réel'' le DSP renvoie plusieurs signaux en direction
soit d'un ordinateur (par le biais de la sortie numérique) soit vers un convertisseur
numérique-analogique.
6
I-2 Avantages de la carte DSP
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.
La modification d’un filtre numérique ne nécessite pas un changement matériel.
–
Des possibilités propres au système de traitement numérique du signal. Certaines
fonctions de traitement du signal sont difficiles à implanter en analogique, voire
irréalisables (exemple : un filtre à réponse en phase linéaire).
–
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.
–
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,
7
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, « à l’infini ».
I 3 Structure interne
Après avoir été numérisé, le signal se présente sous la forme d’une suite de valeurs
numériques discrètes. Cette suite de valeurs (ou échantillons) est apte à être stockée
et traitée par un système informatique. Par nature, le traitement numérique du
signal revient à effectuer essentiellement des opérations arithmétiques de base du
type A = (B x C) + D.
Le DSP doit être capable de traiter une somme de produits en un cycle machine, ce
qui implique d’avoir 2 bus (un pour les coefficients et un pour les échantillons), un
multiplieur, une ALU (pour l’addition) et un Accumulateur.
Sign
al
origi
nal
x(n-i)
A.L.U.
Accumulateur
8
II Différences entre un microprocesseur et un DSP
II 1 Opérateur MAC
Un microprocesseur classique va nécessiter plusieurs cycles d’horloge pour
effectuer un calcul du type A = (B x C) + D, par exemple, un 68000 ( Motorola ) à
besoin de :
· 10 cycles d’horloge pour effectuer une addition,
· 70 cycles d’horloge pour effectuer une multiplication.
Soit 80 cycles pour seulement calculer A. Si ce temps est admissible dans des
applications informatiques courantes, il n’est pas acceptable pour faire du
traitement rapide du signal. Les DSP sont donc conçus pour optimiser ce temps de
calcul, à cet effet, ils disposent de fonctions optimisées permettant de calculer A
beaucoup plus rapidement.
9
Dans la pratique, la plupart des DSP ont un jeu d’instructions spécialisé permettant
de lire en mémoire une donnée, d’effectuer une multiplication puis une addition, et
enfin d’écrire en mémoire le résultat, le tout en un seul cycle d’horloge. Ce type
d’opération est nommé MAC, de l’anglais Multiply and ACcumulate.
Effectuer une opération MAC en seul cycle n’est malgré tout pas satisfaisant si le
cycle d’horloge est trop « long ». Le principal objectif d’évolution des DSP
atoujours été d’améliorer le temps de calcul d’un MAC.
Actuellement, un DSP de gamme moyenne effectue une opération MAC sur des
données de 16 bits en moins de 25 nS, soit 40 000 000 opérations par seconde. De
telles performances sont indispensables pour effectuer des traitements rapides.
Outre le temps d’exécution d’une opération MAC, un autre problème se pose.
L’opération MAC étant une multiplication suivie d’une addition, un débordement
de l’accumulateur est toujours possible. Pour contourner ce problème, certains DSP
possèdent un accumulateur adapté au MAC. Ces accumulateurs ont un format
spécial incorporant des bits supplémentaires (bits de garde) par rapport à la taille
des données à manipuler. Les problèmes de débordements sont alors contournés,
car un programme de traitement correctement conçu ne devrait pas générer des
suites d’opérations MAC telles qu’un résultat excède la capacité élargie de
l’accumulateur.
II 2 Accès mémoire
10
Outre l’opération MAC, une autre caractéristique des DSP est leurs capacités à
réaliser plusieurs accès mémoire en un seul cycle. Ceci permet à un DSP de
chercher en mémoire une instruction et ses données réalisant un MAC, et
simultanément, d’y ranger le résultant du MAC précédent. Le gain de temps est
évident. Toutefois, sur certains DSP basiques, ce type d’opération simultané est
généralement limité à des instructions spéciales. Ces instructions utilisent un mode
d’adressage restreint, c’est à dire ne portant que sur de la mémoire vive intégrée au
DSP.
Les modes d’adressages des données sont un point particulier des DSP. Un DSP
peut posséder plusieurs unités logiques de génération d’adresse, travaillant en
parallèle avec la logique du cœur du DSP. Une unité logique de génération
d’adresse est paramétrée une seule fois via les registres appropriés. Elle génère
alors toute seule, en parallèle avec l’exécution d’une opération arithmétique, les
adresses nécessaires à l’accès des données.
Ceci permet non seulement de réaliser les accès mémoires simultanés en seul cycle,
comme décri plus haut, mais également d’incrémenter automatiquement les
adresses générées. Ce mode d’adressage particulier, généralement appelé adressage
indirect par registre avec post (ou pré) incrément, est très utilisé pour effectuer des
calculs répétitifs sur une série de données rangées séquentiellement en mémoire.
Si l’on ajoute la possibilité de générer ces adresses selon un modulo paramétrable,
ce mode d’adressage devient circulaire, et permet donc de créer des buffers
circulaires en mémoire. L’adressage circulaire indirecte (parfois également indexé)
par registre avec post (ou pré) incrément prends toute son importance quand il est
utilisé pour accéder aux opérandes d’un MAC.
L’exemple suivant met en évidence l’intérêt d’un tel mode d’accès à la mémoire.
Prenons le cas classique d’un filtre RIF à N coefficients, dont l’équation est de la
forme :
y(n) = a0*x(n) + a1*x(n-1) + a2*x(n-2) + ... + aN-1*x(n-N-1)
Nous constatons la présence implicite des éléments suivants :
11

Une table de N coefficients, a0 à aN-1

une table de N échantillons, allant de l’échantillon courant x(n) à
l’échantillon le plus ancien x(n-N-1)

Pour chaque échantillon résultat y(n) courant, la nécessitée d’effectuer N
opérations MAC.

Une structure itérative, l’échantillon d’entrée x(n) courant devenant
l’échantillon précédant à chaque calcul du nouvel échantillon de sortie y(n).
Voici l’implémentation (figures 3 et 4) de ce filtre dans un DSP TMS320C30 de la
gamme Texas Instruments :
Texas Intruments propose le programme assembleur suivant :
12
NB: La structure du filtre RIF est réalisé avec seulement 10 instructions
(initialisations non comprises). C’est l’exemple typique de l’adaptation des
capacités d’un DSP à un algorithme particulier du traitement numérique du signal.
Architecture d’un DSP:
Les microprocesseurs standards sont basés sur les concepts de von Neumann où les
opérations sont exécutées séquentiellement. L'augmentation de la vitesse du processeur
n'est obtenue qu'en accélérant le fonctionnement des unités individuelles du processeur,
mais il y a une limite à cela (voir figure 1). Pour un fonctionnement en temps réel, les
processeurs DSP doivent avoir une architecture optimisée pour l'exécution des
opérations DSP. La figure 1b représente une architecture matérielle générique pour
DSP.
13
Figure 1 A simplified architecture for standard microprocessors
Figure 2 A simplified generic hardware architecture for DSP
14
Les traits caractéristiques de l'architecture de la figure 2 comprennent:
• Structure de bus multiples, avec des espaces mémoire séparés pour les données et
les programmes.
• Les unités arithmétiques pour les opérations logiques et arithmétiques incluent un
multiplicateur / accumulateur matériel.
Pourquoi une telle architecture est-elle nécessaire? Dans DSP, la plupart des
algorithmes, par exemple le filtrage numérique et la FFT impliquent des opérations
arithmétiques répétitives telles que la multiplication, les ajouts, les accès à la
mémoire et le flux de données important à travers le processeur.
L'architecture des microprocesseurs standards n'est pas adaptée à ce type d'activité.
Un objectif important de la conception matérielle DSP est d'optimiser à la fois
l'architecture matérielle et le jeu d'instructions pour augmenter la vitesse et rendre
l'exécution en temps réel possible tout en maintenant les erreurs de quantification à
un faible niveau. Dans un DSP, ceci est réalisé en utilisant largement les concepts
de parallélisme. En particulier, les techniques suivantes sont utilisées :
• Architecture de Harvard
• Pipeline
• Multiplicateur / accumulateur matériel rapide et dédié
• Instructions spécialisées dédiées au DSP
• Réplication
• Mémoire / cache sur puce.
• Parallélisme étendu - SIMD, VLIW et traitement super scalaire statique.
-
Single instruction, multiple data (SIMD) processing.
Very-long-instruction-word (VLIW) processing
Super scale static
15
Nous examinerons certaines des techniques ci-dessus pour mieux comprendre les
caractéristiques architecturales des processeurs DSP.
L’architecture d’un microprocesseur, et donc d’un DSP, est un élément important
qui conditionne directement les performances d’un processeur. Il existe deux types
fondamentaux de structures, dites « Von Neuman » et « Harvard ».
3.1. Von Neuman
La structure de VON NEUMAN, utilisée par les microprocesseurs
(architecture des x86) depuis 40 ans, consiste à placer les données et le programme
sur un bus commun.
Inconvénient majeur de cette structure : on ne peut lire une donnée ou une
instruction qu’en un seul cycle.
Un microprocesseur basé sur une structure Von Neuman stocke les programmes et
les données dans la même zone mémoire. Une instruction contient le code
opératoire et l’adresse de l’opérande. Ce type de microprocesseur incorpore
principalement deux unités logiques de base:
1. l’Unité Arithmétique et Logique (ou ALU en anglais), chargé de réaliser les
opérations centrales (de type multiplications, additions, soustractions,
rotation, etc.),
2. l’unité en charge des Entrées/Sorties, qui commande le flux de données entre
le cœur du microprocesseur et les mémoires ou les ports.
3.2. Harvard
16
Lorsque la vitesse d’exécution d’un programme est importante, il est préférable
d’utiliser la structure de HARVARD. Cette structure se distingue de l’architecture
Von Neuman uniquement par le fait que les mémoires programmes et données sont
séparées. L’accès à chacune des deux mémoires se fait via un chemin distinct. Cette
organisation permet de transférer une instruction et des données simultanément, ce
qui améliore les performances.
Ainsi en un seul cycle, le processeur pourra lire l’instruction et la donnée.
3.3. Utilisation de ces structures dans les DSP
L’architecture généralement utilisée par les microprocesseurs est la structure Von
Neuman (exemples : la famille Motorola 68XXX, la famille Intel 80X86).
L’architecture Harvard est plutôt utilisée dans des microprocesseurs spécialisés
pour des applications temps réels, comme les DSP.
Il existe cependant quelques rares DSP à structure Von Neuman. La raison de ceci
est liée au coût supérieur de la structure de type Harvard. En effet, elle requiert
deux fois plus de bus de données, d’adresses, et donc de broches sur la puce. Or un
des éléments augmentant le coût de productions des puces est précisément le
nombre de broches à implanter.
17
3.3
Architecture de Harvard modifiée :
Pour réduire le coût de la structure Harvard, certains DSP utilisent l’architecture
dite « Structure de Harvard modifiée ». À l’extérieur, le DSP ne propose qu’un bus
de données et un bus d’adresse pour les accès en mémoire externe, comme la
structure Von Neuman. Toutefois, à l’intérieur, la puce DSP dispose de deux bus
distincts de données et de deux bus distincts d’adresses pour les accès en mémoire
interne. Le transfert des données entre les bus externes et internes est effectué par
multiplexage temporel.
C’est au programmeur, si la taille de la mémoire programme ou de la mémoire
données est trop importante, de placer en mémoire interne le bout de programme et
de données qui demande une rapidité optimale d’exécution
18
Structure Pipeline
Il s'agit d'une technique largement utilisée dans le DSP pour augmenter la vitesse
car elle permet à deux ou plusieurs opérations de se chevaucher pendant
l'exécution. Dans le pipelining, une tâche est décomposée en un certain nombre de
sous-tâches distinctes qui sont ensuite surchargées pendant l'exécution.
Un pipeline s'apparente à une ligne de production typique dans une usine, telle
qu'une usine de montage de voitures ou de téléviseurs. Comme dans la ligne de
production, la tâche est décomposée en petites sous-tâches indépendantes appelées
étapes de canalisation qui sont connectées en série pour former un tuyau.
L'exécution est séquentielle.
Figure 6 An illustration of the concepts of pipelining.
19
La figure 6 donne un chronogramme d'un pipeline à 3 étages. En règle générale,
chaque étape du pipeline nécessite un cycle machine. Ainsi, pendant un cycle
donné, jusqu'à trois instructions différentes peuvent être actives en même temps,
bien que chacune soit à un stade d'achèvement différent.
The speedup (acceleration) =
average instruction time (non pipeline)
average instruction time (pipeline)
Example 1
In a non pipeline processor, the instruction fetch, decode and execute take 35 ns, 25
ns, and 40 ns, respectively. Determine the increase in throughput if the instruction
steps were pipelined. Assume a 5 ns pipeline overhead at each stage, and ignore
other delays.
Solution
In an ideal non pipeline processor, the average instruction time is simply the sum of
the times for instruction fetch, decode and execute:
35 + 25 + 40 ns = 100 ns.
However, if we assume a fixed machine cycle then each instruction time would
take three machine cycles to complete: 40 ns x 3 = 120 ns (the execute time –
maximum time – determines the cycle time). This corresponds to a throughput of
8.3 x10 6 instructions per second.
In the pipeline processor, the clock speed is determined by the speed of the slowest
stage plus overheads, i.e. 40 + 5 = 45 ns. The through put (when the pipeline is full)
is 22.2 x10 6 instructions per second.
20
Speed up =
average instruction time (non pipeline)
average instruction time (pipeline)
= 120/45 = 2.67
Pipelining has a major impact on the system memory because it leads to an
increased number of memory accesses (typically by the number of stages). The use
of Harvard architecture where data and instructions lie in separate memory spaces
promotes pipelining.
Drill (percer)
Assuming the times in the above example are as follows:
fetch
20 nS
decode
25 nS
execute
overhead (aérien)
15 ns
-
1 nS
Determine the increase in throughput (en débit )if the instructions were pipelined.
Example 2
Most DSP algorithms are characterised by multiply-and-accumulate operations typified by the following
equation:
y(n)  a0 x(n)  a1 x(n  1)  a2 x(n  2)  ...  a N 1 x(n  ( N  1))
Figure 5 shows a non pipeline configuration for an arithmetic element for executing the above equation.
Assume a transport delay of 200 ns, 100ns and 100 ns, respectively for the memory, multiplier and the
accumulator.
(1) What is the system throughput?
(2) Reconfigure the system with pipelining to give a speed increase of 2:1. Illustrate the operation of the
new configuration with a timing diagram.
21
Figure 7 Non-pipelined MAC configuration.
Solution
(1)
The coefficients, a k , and the data arrays are stored in memory as shown in Figure 7. In the nonpipelined mode, the coefficients and data are accessed sequentially and applied to the multiplier.
The products are summed in the accumulator. Successive MAC will be performed once every 400
ns (200 + 100 + 100), that is a throughput of 2.5 x10 6 operations per second.
(2)
The arithmetic operations involved can be broken up into three distinct steps: memory read,
multiply, and accumulate. To improve speed these steps can be overlapped. A speed improvement
of 2:1 can be achieved by inserting pipeline registers between the memory and multiplier and
between the multiplier and accumulator as shown in Figure 8. The timing diagram for the pipeline
configuration is shown in Figure 9. As is evident in the timing diagram, the MAC is performed
once every 200 ns. The limiting factor is the basic transport delay through the slowest element, in
this case the memory. Pipeline overheads have been ignored.
22
Figure 8 Pipelined MAC configuration. The pipeline registers serve as temporary store for coefficient
and data sample pair. The product register also serves as a temporary store for the product.
Parallélisme étendu - SIMD, VLIW et traitement des superscaler
statiques
La tendance dans la conception de l'architecture de processeur DSP est d'augmenter
à la fois le nombre d'instructions exécutées dans chaque cycle et le nombre
d'opérations effectuées par instruction pour améliorer les performances. Dans les
nouvelles architectures de processeur DSP, les techniques de traitement parallèle
sont largement utilisées pour obtenir des performances de calcul accrues. Les trois
techniques utilisées, souvent en combinaison, sont:



Single instruction, multiple data (SIMD) processing.
Very-long-instruction-word (VLIW) processing
Superscalar processing
23
Figure 10 An illustration of the use of SIMD processing and multiple data size capability to extend the
number of multiplier/accumulators (MACs) from one to four in a TigerSHARC DSP processor.
Remarque: le traitement SIMD est utilisé pour augmenter le nombre d'opérations
effectuées par instruction. En règle générale, dans les processeurs DSP avec des
architectures SIMD, le processeur a plusieurs chemins de données et plusieurs
unités d'exécution. Ainsi, une seule instruction peut être envoyée aux multiples
unités d'exécution pour traiter simultanément des blocs de données et de cette
manière le nombre d'opérations effectuées dans un cycle est augmenté.
24
Figure 11 Principles of very long instruction word (VLIW) architecture and data flow in the
advanced, fixed point DSP processor, TMS320C62x.
Remarque: Le traitement de texte d'instructions très longues est une approche
importante pour augmenter considérablement le nombre d'instructions traitées par
cycle. Un mot d'instruction très long est essentiellement une concaténation de
plusieurs instructions courtes et nécessite plusieurs unités d'exécution, fonctionnant
en parallèle, pour exécuter les instructions en un seul cycle. Dans le TMS320C62x,
la CPU contient deux chemins de données et huit unités d'exécution indépendantes,
organisées en deux ensembles - (L1, S1, M1 et D1) et (L2, S2, M2 et D2). Dans ce
cas, chaque instruction courte a une largeur de 32 bits et huit d'entre elles sont liées
entre elles pour former un très long paquet de mots d'instructions qui peut être
exécuté en parallèle. Le traitement VLIW démarre lorsque l'unité centrale récupère
un paquet d'instructions (huit instructions 32 bits) dans la mémoire de programme
sur puce. Les huit instructions dans le paquet d'extraction sont formées en un
paquet d'exécution, si elles peuvent être exécutées en parallèle, puis envoyées aux
huit unités d'exécution selon le cas. Le paquet d'instructions de 256 bits suivant est
extrait de la mémoire de programme tandis que le paquet d'exécution est décodé et
exécuté. Si les huit instructions d'un paquet d'extraction ne sont pas exécutables en
parallèle, alors plusieurs paquets d'exécution seront formés et envoyés aux unités
25
d'exécution, un à la fois. Un paquet d'extraction a toujours une largeur de 256 bits
(huit instructions), mais un paquet d'exécution peut varier entre 1 et 8 instructions.
Figure 12 Principles of superscalar architecture and data flow in the
TigerSHARC DSP processor
Remarque: le traitement superscalaire est utilisé pour augmenter le taux
d'instructions d'un processeur DSP en exploitant le parallélisme au niveau des
instructions. Traditionnellement, le terme superscalaire fait référence aux
architectures informatiques qui permettent d'exécuter plusieurs instructions en un
seul cycle. Ces architectures sont largement utilisées dans les processeurs à usage
général, tels que les processeurs PowerPC et Pentium. Dans les processeurs DSP
superscalaires, plusieurs unités d'exécution sont fournies et plusieurs instructions
peuvent être émises aux unités pour une exécution simultanée. Les techniques de
pipelining sont également largement utilisées pour augmenter encore les
26
performances. Le TigerSHARC est décrit comme un processeur DSP superscalaire
statique car le parallélisme dans les instructions est déterminé avant l'exécution. En
fait, le processeur TigerSHARC combine les concepts SIMD, VLIW et
superscalaire. Ce processeur DSP avancé dispose de plusieurs chemins de données
et de deux ensembles d'unités d'exécution indépendantes, chacune avec un
multiplicateur, ALU, un décaleur 64 bits et un fichier de registre. TigeSHARC est
un processeur à virgule flottante, mais il prend en charge l'arithmétique fixe avec
plusieurs types de données (nombres 8, 16 et 32 bits). La largeur de l'instruction
n'est pas fixée dans le processeur TigerSHARC. Dans chaque cycle, jusqu'à quatre
instructions de 32 bits sont extraites de la mémoire de programme interne et
envoyées aux deux ensembles d'unités d'exécution en parallèle. Une instruction
peut être délivrée aux deux unités en parallèle (instructions SIMD) ou à chaque
unité d'exécution indépendamment. Chaque unité d'exécution (ALU, multiplicateur
ou décalage) prend ses entrées et renvoie ses résultats dans le fichier registre. Les
fichiers de registre sont connectés aux trois chemins de données et peuvent ainsi
lire simultanément deux entrées et écrire une sortie en mémoire dans un cycle.
Cette architecture de chargement / stockage est adaptée aux opérations DSP de base
qui prennent souvent deux entrées et calculent une sortie. Comme le processeur
peut travailler sur plusieurs tailles de données, les unités d'exécution permettent des
niveaux supplémentaires de calcul parallèle. Ainsi, dans chaque cycle, le
TigerSHARC peut exécuter jusqu'à huit opérations d'addition / soustraction et huit
opérations de multiplication-accumulation avec des entrées de 16 bits, au lieu de
deux opérations de multiplication-accumulation avec des entrées de 32 bits.
II Types et formats de données manipulés par les DSP
Un des points essentiels des DSP est la représentation des nombres (les données)
qu'ils peuvent manipuler. Il est possible de distinguer deux familles :
–
Les DSP à virgule fixe : les données sont représentées comme étant des nombres
fractionnaires à virgule fixe, par exemple -1.0 à +1.0, ou comme des entiers
classiques. La représentation de ces nombres fractionnaires s'appuie la méthode
du « complément à deux »
27
L'avantage de cette représentation est de permettre facilement l'addition binaire de
nombres aussi bien positifs que 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= mantisse x 2 exposant. 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 (c'est le même mécanise qu'en base 10).
II 1 Les DSP à virgules flottantes
Les DSP à virgule flottante sont plus souples et plus faciles à programmer
que les DSP à virgule fixe. Un DSP comme le TMS320C30 manipule des nombres
formés avec une mantisse de 24 bits et un exposant de 8 bits. Les valeurs
intermédiaires des calculs sont mémorisées dans des registres avec un format de 32
bits de mantisse et un exposant de 8 bits (taille du registre : 32 + 8 bits
supplémentaires). La dynamique disponible est très grande, toutefois la résolution
reste limitée à 24 bits au mieux. Outre les nombres fractionnaires, ce DSP sait
également manipuler les entiers avec une précision de 32 bits.
28
La très grande dynamique proposée par les DSP à virgule flottante permet
virtuellement de ne pas se soucier des limites des résultats calculés lors de la
conception d'un programme. Cet avantage a cependant un prix, à savoir qu'un
système basé sur un DSP à virgule flottante a un coût de fabrication supérieur par
rapport à un système basé sur DSP à virgule fixe. La puce d'un DSP à virgule
flottante nécessite à la fois une surface de silicium plus importante (cœur plus
complexe), et un nombre de broches supérieur, car la mémoire externe est elle aussi
au format 32 bits. Le système revient donc plus cher (exemple : 2 x 32 broches
juste pour les bus de données externes avec une architecture Harvard de base).
Un DSP à virgule flottante est plutôt adapté à des applications dans lesquelles :
- les coefficients varient dans le temps (exemple : les filtres adaptatifs),
- le signal et les coefficients ont besoin d'une grande dynamique,
- la structure mémoire est importante (exemple : traitement d'image),
- la précision est recherchée sur toute une gamme dynamique importante (exemple
: traitements audiophoniques de qualité professionnelle).
De part leurs facilités de programmation, ils peuvent également se justifier dans des
projets ou le temps et la facilité de développement sont des facteurs importants. On
les trouve également dans des produits de faible volume de production, pour
lesquels le prix du DSP n'est pas significatif.
II 2 Les DSP à virgules fixes
29
Un DSP à virgule fixe est un peu plus compliqué à programmer qu'un DSP à
virgule flottante. Dans un DSP à virgule fixe typique comme le TMS320C25, les
nombres sont codés sur 16 bits.
Toutefois, sur ce DSP, les calculs sont effectués avec des accumulateurs de 32 bits.
Lorsque les résultats doivent être stockés en mémoire, les 16 bits les moins
significatifs sont perdus. Ceci permet de limiter les erreurs d'arrondis cumulatives.
Il est toujours possible de stocker séparément en mémoire les 16 bits faibles puis
les 16 bits fort s'il n'y a plus de registres libres lors d'une étape de calcul.
Cette particularité n'est pas toujours disponible sur tous les DSP. Dans ce cas, les
calculs qui nécessitent absolument une double précision sont réalisés en chaînant
deux à deux des instructions spéciales manipulant des données 16 bits en simple
précision, au détriment du temps d'exécution.
La précision des calculs est un point critique des DSP à virgule fixe, car le
concepteur de programmes doit rester vigilant à chaque étape d'un calcul. Il doit
rechercher la plus grande dynamique possible (c.à.d. exploiter au mieux la gamme
des nombres disponibles), pour conserver une bonne précision des calculs, tout en
évitant autant que possible les débordements du ou des accumulateurs. Les bits
supplémentaires des accumulateurs (les bits de garde) prévus à cet effet permettent
de réduire cette contrainte.
Les programmeurs contournent les limites des DSP à virgule fixe en déterminant à
l'avance, et avec soins, la précision et la dynamique nécessaire (par méthode
analytique ou avec des outils de simulation) pour réaliser leurs projets.
Il est également possible d'effectuer des opérations en virgule flottante dans un
DSP à virgule fixe par le biais de routines logicielles adéquates. Cette approche est
néanmoins pénalisante en temps d'exécution, même sur un DSP à virgule fixe très
rapide.
En termes de rapidité, les DSP à virgule fixe se placent d'ordinaire devant leurs
homologues à virgule flottante, ce qui constitue un critère de choix important.
Les DSP à virgule fixe sont les plus utilisés, car ils sont moins chers que les DSP à
virgule flottantes. On les trouve dans tous les produits de grande diffusion ou le
coût est un facteur important. Il peut cependant exister des exceptions, certains
DSP à virgule fixe se présentant comme des micro contrôleurs perfectionnés plus
chers qu'un DSP à virgule flottante de base.
30
31
Résumé :
Architecture Virgule Flottante :
32
• Structure similaire aux unités en virgule fixe
• DSP avec
– unité flottante seule (TI, AD, Motorola)
• l’unité flottante accepte la virgule fixe
– unité flottante + unité fixe (AT&T)
33
– Programmation plus simple
– Scaling automatique (exposant)
– Plus de protection contre les erreurs de calcul
(exception)
– Fonctions spéciales (Division, racine carrée,
conversion de format...)
Multiplieur
• Entrée 32 bits
– mantisse 24 bits
– exposant 8 bits
• Sortie (32)40 à 44 bits
– mantisse 32 à 36 bits
– exposant 8 bits
– Format interne pour multiplication/accumulation
– Arrondi systématique
– perte de précision négligeable
ALU
• Soustraction, addition, négation, valeur absolue,
minimum, maximum
• Opérations spéciales (racine carrée, division...)
Shifter
• Présent mais invisible pour le programmeur (Sauf en
mode virgule fixe)
• Normalisation automatique (Scaling) des résultats
flottants
Registres accumulateurs
34
• Plusieurs, au format des résultats flottants (40 à 44
bits)
Registres Opérandes
• Entrée quasiment exclusives du multiplieur flottant
• Les calculs flottants doivent donc être précédés d’une
lecture explicite (Move) des opérandes en mémoire
• Chargement des registres en parallèle avec les
opérations arithmétiques
Exceptions
• Overflow
– positionnement d’un indicateur et/ou interruption
– saturation du résultat
• Underflow
– positionnement d’un indicateur et/ou interruption
– Mise à zéro du résultat
• Autres exceptions
Division par 0, format invalide...
Architecture mémoire :
• Transmettre les instructions et les données vers les
unités de calculs
• Maintenir une activité maximale dans les unités de
calcul
• Eviter de créer un goulot d’étranglement (Bottleneck)
• Programme organisé en fonction de l’architecture
mémoire
• Facteur critique pour la performance globale d’un
DSP
Réalisation d’un filtre FIR
35
• Structure non récursive ou
filtre transverse
/* H(z) = b(0) + b(1) z -1 + b(2) z-2
*/
int x[3], xin, yout;
float b[3];
x[0]=xin;
/* xin contient l'echantillon d'entree */
/* calcul du filtre RIF */
yout = x[0]*b[0];
for(i=2; i>0; i - -) {
yout=yout+x[i]*b[i]; x[i]=x[i-1];
}
/* sortie de yout */
• Multiplication-addition en un cycle instruction
• Filtre FIR ordre Q calculé
en Q+1 instructions
• MAIS pour chaque cycle instruction:
– Lire l’instruction (Opcode Fetch)
– Lire une valeur x(i)
– Lire un coefficient b(i)
– Ecrire x(i) en x(i+1)
Soit 4 accès mémoire par instruction
• Dans la pratique, diverses techniques réduisent le
nombre d’accès à 2 ou 3.
• Ceci reste vrai pour d’autres types d’algorithmes
36
Réduction du nombre d’accès
• Adressage circulaire
– But: éviter l’opération d’écriture x(i)=x(i-1) dans
le filtre RIF
– Principe: utiliser des pointeurs mobiles pour
repérer le début et la fin des données
• Adressage circulaire
– Gérer les pointeurs par programme ?
Diminution très importante des performances
– Les DSP disposent de générateur d’adressage
circulaire
• exemple:
Tampon circulaire
adresse de départ 100
longueur 4
Registre d’adressage circulaire R0
initialisation R0=100
valeur successive de R0+1:
101,102,103,100,101,...
• Adressage circulaire de type 1
– Registre auxiliaire indiquant la longueur du
tampon
• l’adresse de départ doit en général être un
multiple de la puissance de deux supérieure
à la longueur
• exemple:
tampon circulaire de 48 octets,
adresse de départ multiple de 64
– TMS320C3x/4x, ADSP, Motorola,...
37
– Adressage circulaire de type 2
– Registres auxiliaires indiquant le début et la fin
du tampon circulaire
– TMS320C5x, AT&T DSP16xx
– Nombre de tampons circulaires simultanés
– AT&T DSP16xx
: 1
– TMS320C5x
: 2
– Motorola 5600x
: 4
– ADSP
: 8
Architecture pipeline
• Principe du pipeline
– Découper une opération en N
sous-opérations (S/op) et
– Exécuter les N sousopérations en parallèle (sur
des données différentes)
38
Principe de Pipe Line
• Avantage d’un processeur pipeliné
– Gain en vitesse d’éxécution
• Inconvénients
– Electronique plus complexe
– Mémoire plus rapide
– Programmation plus
complexe (Compilateur et/ou
programmeur)
pour:
• Eviter les erreurs
d’éxécution (Pipeline
Hazards)
• Eviter les conflits d’accés
aux ressources (mémoire,
registre, unité de calcul...)
pour optimiser un
programme et atteindre les
performances maximales
(ex: une Add/Mult par
cycle horloge)
Le parallélisme d’éxécution dans un pipeline peut créer
39
des erreurs dûes à l’inversion de l’ordre d’éxécution
(Pipeline Hazards)
READ puis WRITE
WRITE puis READ
WRITE puis WRITE
des «trous» dans l’activité du pipeline dûs aux conflits
d’accès aux ressources
Solutions
Interlocking hardware
Optimisation par table de réservation
III Performances des DSP
Plus que pour un microprocesseur classique, les performances d'un DSP
conditionnent son domaine d'application.
La plupart des DSP sont particulièrement destinés à des applications « temps réel »
et spécialisées, c'est à dire des applications où le temps de traitement est bien sûr
primordial, mais où la diversité des événements à traiter n'est pas notablement
importante. De ce point de vue, l'approche DSP s'apparente plus à une étude «
électronique » visant à réaliser une ou des fonctions de traitements de signal, que
d'une approche informatique temps réel et/ou multitâche traditionnelle.
Dans tous les cas, les performances du DSP sont critiques. Le concepteur d'un
système à base de DSP doit évaluer d'une part la « puissance » nécessaire pour
réaliser les traitements numériques voulus, et d'autre part les performances des DSP
disponibles pour réaliser son application.
III 1 Mesure de vitesse de calcul pure
La méthode classique pour évaluer les performances d'un DSP est de se baser sur sa
vitesse d'exécution. Encore faut-il trouver une bonne définition de ce qu'est la
vitesse d'exécution, ce qui n'est pas forcément simple.
40
Cette méthode de base consiste donc à compter le nombre d'instructions effectuées
par seconde. Un obstacle apparaît alors, car une instruction ne signifie pas
forcément la même chose d'une famille de DSP à l'autre. Le tableau suivant résume
les principaux tests de performance.
Une autre méthode consiste à définir une fois pour toute une opération de référence
comme étant un MAC, puisqu'il s'agit d'une fonction commune à tous les DSP. Il
ne reste plus qu'à compter le nombre de MAC par seconde.
Cependant cette définition n'apporte pas beaucoup d'informations sur les
performances des DSP modernes. En effet, un MAC est exécuté en un seul cycle.
Sachant que sur les DSP récents la plupart des instructions sont également
exécutées en un cycle, cela revient donc à mesurer les MIPS du DSP. Il faut
également tenir compte du fait que certains DSP en font plus dans un seul MAC
(nombre, format et taille des opérandes traités) que d'autres.
III 2 Mesure du temps d'exécution (« Benchmark »)
La vitesse de calcul pure d'un DSP n'est pas une indication universelle, les
méthodes et les résultats diffèrent d'un DSP à l'autre. De plus elle ne rend pas
compte d'un certain nombre de perfectionnement dont peuvent bénéficier tel ou tel
DSP.
41
Certains DSP proposent en effet des modes d'adressages plus performants que
d'autres. Ces modes sont spécialement adaptés à des algorithmes standard du
traitement du signal. Les instructions itératives sont également importantes en
terme de performance (rapidité des boucles logicielles) et ne devraient pas être
ignorées.
Enfin, le temps d'accès à la mémoire est un autre paramètre incontournable.
Certains DSP intègrent des blocs de mémoire vive rapide. Cette mémoire est placée
dans l'espace d'adressage du DSP au même titre que de la mémoire vive externe, ce
qui permet d'y ranger données et programmes sans avoir à effectuer des transferts
permanents de ou vers l'extérieur. Les éventuels cycles d'attentes pouvant être
nécessaires pour adresser une mémoire externe lente sont ainsi évités.
Pour toutes ces raisons, la mesure des performances par benchmark complète
avantageusement la mesure de vitesse pure. Elle consiste à mesurer le temps que
met le DSP pour exécuter des programmes « standards » de traitements du signal.
Encore faut il définir ce qu'est un programme standard de traitement du signal.
Le point faible des benchmarks réside dans cette définition des algorithmes
standard. Quel domaine d'applications faut il choisir ? Quels sont les algorithmes
les plus représentatifs ? Il existe plusieurs systèmes de benchmarks se proposant de
servir de référence. Ainsi, le BDT benchmark est couramment utilisé, un autre
benchmark fréquemment utilisé est le « Standard Performance Evaluation
Corporation », ou SPEC95, qui couvre plusieurs domaines tels que les vocodeurs
(équipement ou composant électronique capable de décomposer un son en ses
composantes fondamentales), l'asservissement en position des têtes de lectures des
disques dur, les modems, voire les applications multimédia sur PC.
La mesure des capacités d'un DSP par benchmark reste néanmoins intéressante, car
elle tend à mesurer la performance globale du système de traitement numérique (y
compris les capacités du programmeur !).
IV Méthodes et outils de développements
Un processus de développement typique pourrait être celui de la figure suivante.
42
La souplesse du développement d'applications à base de DSP est un avantage
important en termes de temps, de facilité, de fiabilité, et donc de coût.
Comme le suggère la figure précédente, créer une application DSP, c'est mener de
front deux études distinctes :
43
- La partie matérielle : elle inclut la mise en œuvre du DSP lui-même, mais
aussi la création d'une chaîne d'acquisition et/ou de restitution du signal
(parfois des signaux) à traiter. Les moyens de transformation du signal
analogique vers le domaine numérique s'appuient eux aussi sur des circuits
spécialisés (AIC, CODEC, CNA, CAN...) Le choix des performances à
obtenir et des moyens pour réaliser la chaîne d'acquisition et/ou restitution du
signal est primordial pour exploiter au mieux les capacités d'un DSP.
L'objectif est de rendre l'application finale homogène, fiable, et ayant un coût
de fabrication industriel approprié.
- La partie logicielle : elle s'appuie sur des outils classiques adaptés aux
spécificités des DSP. L'approche est différente de celle utilisée pour la partie
matérielle, car il est toujours possible de recommencer autant de fois que
nécessaire pour arriver au résultat. Seul un temps de développement trop
limité ou une mauvaise évaluation de départ des capacités du DSP cible peut
créer des problèmes de développements. La conception logicielle n'en est pas
plus facile pour autant, car le programme réalise l'essentiel du traitement du
signal. Le rôle du DSP ne se limite pas forcément au seul traitement
numérique du signal, un DSP peut assurer les mêmes fonctions qu'un
microprocesseur « normal », et donc être le cœur du système informatique de
l'application. Ainsi, le cas échéant, un DSP peut exécuter à la fois un système
d'exploitation temps réel et assurer les fonctions de traitement numérique du
signal.
IV 1 Définition des ressources nécessaires
Cette phase doit permettre d'évaluer les besoins nécessaires à la mise en œuvre du
système de traitement numérique du signal voulu. Elle consiste notamment à
définir les spécifications de la chaîne d'acquisition et de restitution du signal, telles
que :
-La résolution (nombre de bits nécessaires pour quantifier le signal).
-La vitesse d'échantillonnage (critère de Shannon).
-La technologie et donc type de convertisseurs utilisé.
-Les filtres anti-repliements s'ils ne sont pas intégrés dans les convertisseurs.
Elle permet plus généralement de cerner tous les besoins du système numérique,
tels que par exemple la consommation de courant et l'autonomie pour une
application portable.
44
IV 2 Sélection du DSP le plus adapté
La sélection d'un DSP se base avant tout sur la puissance de traitement nécessaire,
et sur le résultat de benchmarks réalisant des fonctions représentatives des
traitements à réaliser. Toutefois, la performance du DSP n'est pas le seul critère à
prendre en compte, il faut également tenir compte des impératifs suivants :
-le type de DSP à utiliser (virgule fixe ou flottante) en fonction du domaine
d'application.
-les ressources mémoires utilisés, car s'il faut par exemple exécuter très rapidement
une FFT 1024 points, un DSP intégrant plus de 2048 mots de mémoire vive
statique peut être nécessaire.
-les besoins d'un ou de plusieurs timers internes, de ports série synchrones ou
asynchrone, etc.
-la nécessité éventuelle d'exécuter un système temps réel, qui s'avérera plus facile à
implanter sur certains DSP.
-le coût du DSP, son rapport « performance/prix » en fonction du volume de
production envisagé.
D'autres éléments non négligeables interviennent dans le choix d'un DSP, il s'agit
des moyens disponibles pour mener le développement en un temps donné, comme :
-la qualité de la documentation (de préférence claire et abondante).
-la disponibilité de notes d'applications, d'un support technique.
-la qualité du système de développement utilisé.
-la possibilité d'utiliser un langage de haut niveau (Langage C).
-la présence de librairies (du constructeur ou de tierces parties).
-la possibilité de réaliser facilement des prototypes et à faible coût.
Le choix n'est pas toujours simple et certains critères peuvent être contradictoires,
certaines règles de choix se dégagent quand même. Ainsi pour des applications
destinées à faire un fort volume de production, le critère déterminant est sans
conteste le prix du DSP. Pour des applications à faible volume de production, le
prix du DSP importe peu, le critère est alors la facilité de développement.
Dans tous les cas, la présence d'un bon support technique est un facteur à ne pas
négliger, car un DSP est quand même plus complexe à mettre en œuvre qu'un
microprocesseur classique.
45
I. Les DSP aujourd’hui
1) Les DSP parmi différents types de processeurs
Nous avons classé les processeurs en trois groupes : les généralistes, les
processeurs embarqués et les microcontrôleurs. Ils sont classés par coût et par leur
nombre. Bien évidement plus le prix est important moins ils sont utilisés. Les
« généralistes » dit de haute performance seront utilisés en majorité pour les
ordinateurs. Les processeurs embarqués comme le DSP sont plus courant mais reste
cher. Enfin les microcontrôleurs sont énormément utilisés, et sont présent dans de
nombreux domaines.
46
• Généralistes – haute performance
– Pentiums, PowerPC, SPARC
– Logiciels d’usage général
– OS important - UNIX, XP
– Stations de travail, PC
• Processeurs embarqués et processeurs « coeurs »
– ARM, 486SX, Hitachi SH7000, NEC V800
– Un seul programme
– OS léger, souvent temps réel
– Support DSP
– Téléphones portables, électronique grand public (Lecteurs de CD, etc.)
• Microcontrôleurs
– Mot de petite taille, le plus souvent 8 bits
– De très loin le plus gros nombre de processeurs
– Automobiles, thermostats, électroménagers...
En terme de volume financier, les marchés les plus importants des DSP aujourd’hui
sont :
– Les téléphones portables
– Les pageurs et autres systèmes sans fils
– Les modems
– Les contrôleurs de disque dur
La plupart des DSP exige de bonnes performances, toutes demandent un bas coût et
beaucoup demande une faible consommation d’énergie. La tendance est vers de
meilleurs supports pour ce type d’applications essentielles
47
2) Algorithmes et applications typiques
• Applications – Instrumentation et mesures
– Communications :
Modems
Réseaux
Téléphones cellulaires
– Traitement audio et vidéo :
Lecteurs CD, DVD, MP3. . .
Prothèses auditives
Synthétiseurs
Reconnaissance de la parole
– Disques durs
– 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
48
2.1) Application type : MODEM ADSL
2.2) Algorithme type : les Filtres FIR
3) Quelques DSP actuels
49
Voici une liste de DSP des trois principaux fabricants mondiaux.
4) Comparaison DSP 1ère et 5ème génération :
(Texas instrument)
DSP 1ère génération (1982): TI TMS32010
• Virgule fixe 16 bits
• “Architecture Harvard”
Mémoires instructions et données séparées
• Accumulateur
• Jeu d’instructions spécialisé
• Temps de la multiplication accumulation (MAC) : 390ns
DSP 5ème génération type TMS320C5x, TMS320C6x…
• 32 bits d’adresses
50
• Jusqu’à 32 bits de données
• 512ko RAM
• Temps de la multiplication accumulation (MAC) : 228 ns
51
Download