Processeurs de traitement numérique de signal DSP : Digital Signal Processor Hicham Ghennioui mailto:[email protected] Université Sidi Mohamed Ben Abdellah Faculté des Sciences et Techniques Département de génie électrique http://www.fst-usmba.ac.ma/departement-genie-electrique/ Retrouver tous les documents de Cours/TD/TP sur le site: https://www.easyclass.com/ A.U. 2018-2019 PLAN N GÉNÉRALITÉS SUR LES PROCESSEURS DE TRAITEMENT DE SIGNAL n Chaîne de traitement numérique de signal n Introduction aux processeurs de traitement de signal N ARCHITECTURE D’UN PROCESSEUR DSP n n n n n n Architecture générale d’un DSP Structure interne du CPU Unité de génération d’adresse Unité de commande Unité de calcul Unité de mémorisation N ENVIRONNEMENT DE TRAVAIL n Installation de Hyperviseur VirtualBox et création d’une machine virtuelle n Code Composer Studio 3.1 n Développement pour un DSP CHAPITRE 1 - GÉNÉRALITÉS SUR LES PROCESSEURS DE TRAITEMENT DU SIGNAL CHAÎNE DE TNS À BASE DE DSP CAN : Convertisseur Analogique Signal original Numérique Filtres anti-repliement et de lissage sont des filtres passe-bas Capteur Signal traité DSP (Digital Signal Processor): c’est un circuit intégré conçu pour des manipulations de données à grande vitesse. Il est le cœur de la chaîne de TNS. Actionneur Mémoires G Filtre antirepliement fs Numérisation Cours DSP -Hicham Ghennioui CAN DSP CNA : Convertisseur Numérique Analogique CNA Ports E/S 4 Filtre de lissage Reconstruction CHAÎNE DE TNS À BASE DE DSP - EXEMPLES D’APPLICATION - n Lecteur MP3 dictaphone Source ti.com §Les GPIO (General Purpose Input/Output) sont des ports d'entrée/sortie pour un usage général §I2S, également appelé Inter-IC Sound, Integrated Interchip Sound, ou IIS, un standard d'interface électrique de type serial bus pour connecter des matériels audio numériques. Il est principalement utilisé pour transporter des informations PCM entre le CD et le CNA dans un lecteur de CD. §Une liaison SPI (Serial Peripheral Interface) est un bus de données série synchrone qui opère en mode Full-duplex. Les circuits communiquent selon un schéma maître-esclaves, où le maître s'occupe totalement de la communication. Plusieurs esclaves peuvent coexister sur un même bus, dans ce cas, la sélection du destinataire se fait par une ligne dédiée entre le maître et l'esclave appelée Slave Select (SS). CHAÎNE DE TNS À BASE DE DSP - EXEMPLES D’APPLICATION - n Appareil photo numérique Source ti.com Cours DSP -Hicham Ghennioui 6 CHAÎNE DE TNS À BASE DE DSP - AVANTAGES DU TNS À BASE DE DSP - n Stabilité q Robustesse (Insensibilité à l’environnement) : 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.) q Précision : elle est connue et contrôlée (calculable par le nombre de bits) q Reproductibilité : un programme réalisant un traitement est parfaitement reproductible (en analogique, un montage analogique ne peut pas être reproductible à l’identique car les valeurs des composants analogiques sont définies avec une marge de précision plus ou moins grande) CHAÎNE DE TNS À BASE DE DSP - AVANTAGES DU TNS À BASE DE DSP - n Souplesse q Un DSP exécute un programme de TNS souplesse q Reconfigurabilité : évoluer les fonctions de traitements numériques en fonction des mises à jour des programmes pendant toute la durée de vie du produit à base de DSP (la modification par exemple tel ou tel paramètre d’un filtre numérique ne nécessite pas un changement matériel) q Implémentation des algorithmes adaptatifs : adapter une fonction de traitement numérique en temps réel suivant certains critères d’évolutions (exemple : filtres adaptatifs) q Possibilités propres au numérique: certaines fonctions de TS sont difficiles à implanter en analogique, voire irréalisables CHAÎNE DE TNS À BASE DE DSP - ANALOGIQUE vs NUMÉRIQUENumérique Précision / RSB Source de bruit Reconfigurabilité Analogique Fixe et connue dépendant de la Dépendant de la qualité taille des mots mémoire des composants (16/24/32 bits) Quantification Electromagnétique, température, humidité, vieillissement Mise à jour (changer) du logiciel Calibration ou changer matériel Vitesse Faible bande passante limitée par l’échantillonnage Complexité Du matériel et du logiciel coût élevé pour des réalisations simples Cours DSP -Hicham Ghennioui Peut travailler à haute fréquence 9 Simple coût faible TRODUCTION AUX PROCESSEURS DE TNS POURQUOI LES DSP ? - n Opérations classiques en TNS q Addition/Soustraction : ces deux opérations sont effectuées tout simplement par des microprocesseurs à usage général en une seule ou très peu de cycles d'horloge q Multiplication/Division : les processeurs à usage général exécutent ces deux opérations séquentiellement (série de changement shift et addition). Elles peuvent être effectuées en beaucoup de cycles d’horloge processeurs assez lentes Þ Un DSP effectue ces opérations en seul cycle d’horloge en effectuant le shift et l’addition en parallèle DSP rapide q MAC (Multiply and Accumulate, Multiplication-Accumulation): la plupart des DSP ont une unité spécialisée (MAC) permettant de multiplier, ajouter et sauvegarder le résultat en un seul cycle. TRODUCTION AUX PROCESSEURS DE TNS POURQUOI LES DSP? - n Exemple de filtrage numérique q Fonction de transfert d’un filtre numérique q Exigence : pour réaliser le filtrage, la durée de traitement T doit être inférieure à la période d’échantillonnage Te Horloge d’acquisition Te Temps Activité processeur T Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS POURQUOI LES DSP? - n Exemple de filtrage numérique (suite 1) q MAC : chaque étape nécessite une multiplication puis une addition, et enfin l’écriture en mémoire du résultat. Þ la nécessité de l’exécution rapide de l’opération MAC q Accès parallèle à la mémoire : l’exécution d’une opération MAC nécessite 3 lectures ( instruction, échantillon de donnée, et coefficient du filtre) et une écriture (résultat) dans la mémoire Þ la nécessité de l’accès parallèle à la mémoire. q Problèmes § § § § § Temps d’accès aux échantillons Temps d’accès aux coefficients Gestion des pointeurs d’adresse mémoire Multiplication lente (plusieurs cycles d’horloge) Stockage du résultat Cours DSP -Hicham Ghennioui 12 TRODUCTION AUX PROCESSEURS DE TNS POURQUOI LES DSP? - n Exemple de filtrage numérique (suite 2) q Filtre RIF q Constat : Pour chaque a[i]x[n-i], on a besoin de, § § 3 accès à la mémoire : recherche de l’instruction, recherche du coefficient a[i] et recherche de l’échantillon x[n-i] 2 accès à l’unité de calcul : multiplication a[i]x[n-i] et accumulation a[i-1]x[n-i-1] +a[i]x[n-i] q Objectifs § § Réduire les accès à la mémoire et augmenter les accès simultanés (architecture Harvard) Réduire le temps de calcul (MAC en un seul cycle d’horloge) Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS POURQUOI LES DSP? - n Architecture Von Neuman pour un P Bus d’adresse Horloge § § § CPU Mémoire Bus de contrôle Données et Bus de données (bidirectionnel) transmet entre le CPU et les Bus de données les donnés instructions périphériques Bus d'adresses (unidirectionnel) par lequel le CPU indique à l'ensemble des Périphériques Monde périphériques avec lequel il veut échanger de l'information, et extérieur dans ce périphérique à quel registre particulier il veut accéder. Le bus d'adresse transporte de l'information du CPU vers les périphériques. Bus de contrôle sur lequel circulent les signaux qui servent à contrôler et synchroniser les échanges entre le CPU et les différents périphériques du système Cours DSP -Hicham Ghennioui 14 TRODUCTION AUX PROCESSEURS DE TNS POURQUOI LES DSP? - n Solution proposée par un DSP q Gestion automatisés des pointeurs pour les boucles q Eviter le goulot d’étranglement : un DSP réalise plusieurs accès mémoire en un seul cycle, grâce à l’architecture Harvard (à comparer avec l’architecture Von Neuman des μp classiques). q Multiplication rapide : contrairement aux μp classiques, un DSP réalise le MAC en un cycle d’horloge grâce à un circuit multiplieur Cours DSP -Hicham Ghennioui 15 TRODUCTION AUX PROCESSEURS DE TNS POURQUOI LES DSP? - n Architecture Harvard pour un DSP Mémoire programme Bus d’adresse DM Bus d’adresse PM Bus de contrôle CPU Seulement instructions Bus de contrôle Mémoire données Seulement les données Bus de donnée Bus dede donnée q Bus programme transfert des instructions la mémoire vers le CPU PM3 DM q Bus de données échange de données entre le CPU et les périphériques Horloge Cours DSP -Hicham Ghennioui Périphériques Monde extérieur 16 TRODUCTION AUX PROCESSEURS DE TNS POURQUOI LES DSP? - n Architecture Harvard pour un DSP (suite) Architecture Harvard pour un DSP Source IRISA ALU : Arithmetic Logic Unit AGU : Address Generation Unit Cours DSP -Hicham Ghennioui 17 TRODUCTION AUX PROCESSEURS DE TNS MICROPROCESSEUR vs DSP- Microprocesseur DSP Usage Général Spécialisé Architecture Von Neuman Harvard Format interne Fixé Varié Accès À une mémoire unique À plusieurs blocs-mémoires Nombre de cycles d’horloge pour la 100 1 Modes d’adressage Général Spéciaux (circulaire, inversion de bits, …) Mémoire Interne Externe Multi-processing Pas prévu Possibilité de raccorder des DSP entre eux Entrées-Sorties Pas Oui (RS-232, CODEC, réseau...) Fréquence d’horloge Unique Cours DSP -Hicham Ghennioui Variable (Basse consommation par contrôle de la fréquence d’horloge) 18 TRODUCTION AUX PROCESSEURS DE TNS BREF HISTORIQUE DES DSP n Avant la 1ère génération q 1965 : le constructeur ‘‘Digital equipment’’ commercialise une série des miniordinateurs PDP (Programmable Data Processor) (processeur 12 bits, cycle de 1.5 s , 4Kmots de 12 bits de mémoire avec un prix de 18000 $). IBM vend les IBM 1800 q 1970 : les premiers microprocesseurs (le F8 de Fairchild, certains Mostek, le 8085 d'Intel et d'autres) à usage industriel ont vu le jour. • • • • Ils ne sont pas spécialisés dans le traitement du signal. La microprogrammabilité est parfois utilisée : c'est le cas du Multi 6 et des microprocesseurs AMD2900. Une version du Multi 6 fait la transformation de Fourier. Une autre version est un gestionnaire de base de données. Les DSP ont été initialement développés pour des applications de radars militaires et de télécommunications cryptées Les processeurs de traitement du signal sont issus des techniques de microprocesseurs Cours DSP -Hicham Ghennioui 19 TRODUCTION AUX PROCESSEURS DE TNS BREF HISTORIQUE DES DSP n Avant la 1ère génération (1965-1979) (suite) q 1978 : - Intel a introduit le 2920 comme un «processeur de signal analogique » (composé d’un ADC/DAC et un processeur de signal interne). Il n'a pas eu un multiplicateur matériel et il n'a pas réussi sur le marché - Texas Instruments introduit un DSP pour la synthèse de la voix pour des applications très grand public q 1979 : AMI a introduit le S2811. Il a été conçu comme un microprocesseur périphérique (doit être initialisé par l'hôte.) Le S2811 n’a pas connu de succès sur le marché. Cours DSP -Hicham Ghennioui 20 TRODUCTION AUX PROCESSEURS DE TNS BREF HISTORIQUE DES DSP n 1ère génération (1979-1987) q 1979 : Bell Labs a présenté le premier DSP à puce unique, le microprocesseur Mac 4 q 1980 : les premiers DSP complets (NEC μPD7720 et AT & T DSP1) ont été présentés dans «IEEE International Solid-State Circuits Conference '80 ». Ils ont été inspirés par la recherche dans les PSTN. q 1983 : L'expression DSP apparaît pour le TMS32010 de Texas Instruments qui est présenté comme un processeur pour modem. Il est basé sur l’architecture Harvard (séparation de mémoires programmes et données). Il avait déjà un jeu d’instructions spéciales (load-and-accumulate ou multiply-and accumulate). Il pourrait travailler sur 16 bits et une opération de multiplication-addition nécessite 390ns. Un autre succès était le Motorola 65000. TRODUCTION AUX PROCESSEURS DE TNS BREF HISTORIQUE DES DSP n 2ème génération (1988-1995) q Les DSP de la seconde génération (AT&T DSP16A et Motorola DSP56001) avaient 3 mémoires pour stocker deux opérandes simultanément, inclus le matériel pour accélérer les boucles et ils avaient une unité pour l’adressage des boucles. Certains d'entre eux fonctionnant sur 24 bits. Une opération MAC (Multiplication-accumulation) nécessite 21 ns q 1988 : L'unité de calcul en virgule flottante apparaît dans le TMS320C3x (technique CMOS). q 1990 : Le premier DSP conçu pour le parallélisme architectural est le TMSC320C4x q À partir de 1991: les DSP deviennent des composants incontournables de l'électronique grand public. TRODUCTION AUX PROCESSEURS DE TNS BREF HISTORIQUE DES DSP n 3ème génération (1996-2002) q La principale amélioration de la 3ème génération (Motorola MC68356, TI TMS320C541, TMS320C80) a été l'apparition d'unités spécifiques (les instructions dans le chemin de données, ou parfois comme coprocesseurs). Ces unités ont permis l'accélération matérielle directe de problèmes mathématiques très spécifiques, mais complexes, comme la transformée de Fourier ou les opérations matricielles. n 4ème génération (à partir de 2002) q La quatrième génération est mieux caractérisée par les changements dans le jeu d'instructions et le codage/décodage d'instruction. extensions SIMD et MMX ont été ajoutés; VLIW (empaquetage de plusieurs instructions de type RISC dans une seule "super-instruction") et l'architecture super-scalaire (exécution parallèle de plusieurs instructions sélectionnées dynamiquement par le processeur) sont apparus. Un MAC nécessite seulement 3ns q Les DSP offrent actuellement plus de 100 MIPS (Million Instructions Per Second) pour des prix qui vont de 5 à 100 dollars pièce Cours DSP -Hicham Ghennioui 23 TRODUCTION AUX PROCESSEURS DE TNS BREF HISTORIQUE DES DSP - Source IRISA Cours DSP -Hicham Ghennioui 24 TRODUCTION AUX PROCESSEURS DE TNS BREF HISTORIQUE DES DSP n Evolution des DSP q Améliorer les performances (réduire le temps nécessaire pour effectuer une opération MAC) q Augmenter le parallélisme, • • augmenter le nombre d’opération exécutées dans une instruction : ajouter des unités d'exécution (multiplieur, additionneur, …, taille d’instruction à augmenter, taille du bus de transfert mémoire à augmenter et jeu d'instruction à enrichir) et augmenter les capacités SIMD (Single Instruction Multiple Data : instructions qui peuvent effectuer plusieurs opérations en parallèle, sur des données différentes) augmenter le nombre d’instructions par cycle q Ajouter des unités spécialisées q Améliorer le contrôle q Utiliser un coprocesseur ou utiliser des architectures hybrides DSP/MCU Cours DSP -Hicham Ghennioui 25 TRODUCTION AUX PROCESSEURS DE TNS CLASSIFICATION DES PROCESSEURS Processeurs Généralistes (GPP) Classiques •Pentium •PowerPC •Alpha •MIPS contrôleurs •16F876 (8 bits, mémoire programme de type Flash, chaque ligne mémoire est un mot de 14 bits) •PIC (Peripheral Interface Controller) •… Cours DSP -Hicham Ghennioui Spécifiques DSP •ADSP-21 •DSP560xx •DSP16xx •TMS320C6x •… ASIC (Application Specific Integrated Circuit) ASSP (Application Specific Standard Product) FPGA (Field Programmable Gate Array) 26 TRODUCTION AUX PROCESSEURS DE TNS CLASSIFICATION DES PROCESSEURS q Processeurs GPP (General Purpose Processor) sont caractérisées par un coût et une consommation élevés et de bonnes performances en calcul. L’inconvénient majeur est la gestion des entrées-sorties. Contexte d’utilisation : Algorithmique de haut-niveau : traitement d’image, intelligence artificielle... q contrôleurs (presque tous à 8 bits) sont caractérisés par un coût et une consommation électrique faibles, adaptés aux taches de contrôle (peu adaptés aux signaux) et ils ont une mémoire limitée. Généralement, contexte d’utilisation des contrôleurs et des DSP est : Acquisition et traitement de signal (filtrage linéaire, calcul matriciel) à vitesse modérée, Pilotage système : gestion machine à état, PWM... Et des applications à coût réduit - faible consommation d’énergie q ASIC/ASSP ne sont pas programmables, coût élevé et la mise en œuvre complexe. Contexte d’utilisation : Taches dédiées ultra-rapides (réseau Gbit, MPEG, ...), Très gros volumes q FPGA est un ASIC programmable. Contexte d’utilisation : Tâches dédiées rapides volumes faibles à moyens TRODUCTION AUX PROCESSEURS DE TNS CLASSIFICATION DES DSP DSP Virgule fixe Virgule flottante Les données sont représentées comme étant des Les données sont représentées en utilisant une nombres fractionnaires à virgule fixe, ou comme mantisse et un exposant: n=mantisse*2exposant des entiers classiques 16 bits 32 bits 24 bits § architecture simple § peu cher, consommation faible § programmation rigide (difficile) : le programmeur doit rester vigilant à chaque étape d’un calcul Mantisse 24 et exposant 8 bits § § § § architecture complexe cher, consommation importante programmation facile Grande dynamique Les virgules flottantes sont utilisées quand les coefficients varient dans le temps (filtre adaptatif) ou quand le signal a besoin d’une grande dynamique. TRODUCTION AUX PROCESSEURS DE TNS RAPPEL SUR LE SYSTÈME DE NUMÉRATION BINAIRE n Représentation polynomiale d’un nombre réel non signé n Système binaire q Définition: base b = 2, ai{0,1}, appelés «éléments binaires» ou «bits» (bit=Binary digIT) et le système binaire est pondéré par 2 (b=2) : les poids sont les puissances de 2 q Exemple: q Comptage binaire: Le bit le plus significatif – bit le plus à gauche – est appelé « bit de poids fort » ou MSB (Most Significant Bit). Le bit le moins significatif – bit le plus à droite – est appelé « bit de poids faible» ou LSB (Less Significant Bit). TRODUCTION AUX PROCESSEURS DE TNS RAPPEL SUR LE SYSTÈME DE NUMÉRATION BINAIRE n Codage des nombres entiers q Constat : Une cellule de mémoire ou de registre dans un microcontrôleur, processeur ou un DSP est une unité contenant « 0 » ou « 1 ». Plusieurs de ces cellules sont assemblées pour représenter un nombre binaire. Ces mémoires sont indissociables et l’ordre d’assemblage donne le poids de chaque bit. q Représentation des nombres positifs (non signés) q Représentation des nombres entiers signés: chercher une convention pour remplacer le signer « - » on ajoute un bit à gauche du module pour le signe (0111=7, 1111=-7) Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS RAPPEL SUR LE SYSTÈME DE NUMÉRATION BINAIRE n Codage des nombres entiers q Représentation des nombres entiers signés § Représentation des entiers en complément restreint (complément à 1) : § Représentation des entiers en complément vrai (complément à 2) : § Extension du signe : Pour un nombre positif (resp. négatif), les bits supplémentaires de poids fort (à gauche) sont des « 0 » (resp. « 1 ») Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS CODAGE DES NOMBRES n Codage des nombres réels : Pour représenter les nombres fractionnaires il est nécessaire de définir la position de la virgule : pour ce faire, il existe deux méthodes. q La représentation en virgule fixe q La représentation en virgule flottante Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS REPRÉSENTATION EN VIRGULE FIXE n Définition (format (n,m,N)) n Structure d’un nombre placé dans un registre de n+m+1 bits 2n-2 2n-3 n -2nPrécision maximale22 1 S an-2 an-3 … n a2 21 20 2-1 2-2 2-3 a1 a0 a-1 a-2 a-3 Cours DSP -Hicham Ghennioui … m 2m+2 am+2 2m+1 am+1 2-m a-m TRODUCTION AUX PROCESSEURS DE TNS REPRÉSENTATION EN VIRGULE FIXE n Résolution (quantification) de codage en virgule fixe n Domaine de définition d’un nombre au format n.m (a corriger) n Erreur due à la quantification q Définition : c’est la différence entre le nombre d’origine et sa reconstitution à partir de son expression en binaire. Cet erreur vient du fait que le nombre de bits pour exprimer un nombre fractionnaire étant limité Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS REPRÉSENTATION EN VIRGULE FIXE n Erreur due à la quantification (suite) q Exemple-erreur de quantification du nombre =3. 14159265358979 TRODUCTION AUX PROCESSEURS DE TNS REPRÉSENTATION EN VIRGULE FIXE n Format Qm,n (noté aussi Qn) n Exemple Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS REPRÉSENTATION EN VIRGULE FLOTTANTE n Représentation flottante q Définition q Exemples Machine HP 28 et 48G B n emin ema x 10 12 -499 499 Cours DSP -Hicham Ghennioui Avant 1985, c’était impossible d’écrire du code numérique portable TRODUCTION AUX PROCESSEURS DE TNS REPRÉSENTATION EN VIRGULE FLOTTANTE n IEEE 754 : c’est le standard développé par IEEE (Institute of Electrical and Electronics Engineers) pour le calcul arithmétique en virgule flottante. Il spécifie la manière de représenter des nombre en simple précision (32 bits) et double précision (64 bits). q Structure d’un nombre: un nombre flottant est toujours représenté par un triplet (s,E,M), s : Signe, E: exposant et M: mantisse Signe (1 bit) Exposant (N bits) Mantisse (M bits): format 0.M S E1E2E3 … EN F1F2F3 … F22FM Représentation N Simple précision 8 M Signe Total (1 implicite+) 23 (fraction) 1 32 Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS REPRÉSENTATION EN VIRGULE FLOTTANTE n IEEE 754 (suite 1) q Représentation IEEE 754 d’un nombre E 0,2N-1 0 F Représentation 0 0 0 2N-1 0 0 Cours DSP -Hicham Ghennioui (infinity) NaN (No a Number) TRODUCTION AUX PROCESSEURS DE TNS REPRÉSENTATION EN VIRGULE FLOTTANTE n IEEE 754 (suite 2) q Exemples (simple précision) E 0,255 0 F Représentation - (-1)S2(E127).(1.F) 0 1 10000001 10100000000000000000000(-1)12(129-127).1.101=6.5 1 00000000 00000000000000000000000-0 (-1)S2(126).(0.F) infinity 0 00000000 10000000000000000000000(-1)02(-126).0.1=2(-127) 0 0 255 0 Exemple 0 11111111 00000000000000000000000infinity Cours DSP -Hicham Ghennioui 40 TRODUCTION AUX PROCESSEURS DE TNS REPRÉSENTATION EN VIRGULE FLOTTANTE n Résolution ou quantification du codage en virgule flottante n Domaine de définition d’un nombre en virgule flottante n Dynamique Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS VIRGULE FIXE VS VIRGULE FLOTTANTE § Comparaison de la dynamique § § § § La dynamique d’un nombre en virgule fixe est linéaire Pour N=16 bits, la dynamique est la même pour les deux types de codage Pour des N <16, la dynamique du codage virgule fixe est supérieure Pour un nombre de bits élevé (supérieur à 25), le codage virgule flottante montre son intérêt par sa dynamique très importante la représentation virgule flottante sur 32 bits peut être utilisée dans la plupart des applications sans aucun risque de débordement TRODUCTION AUX PROCESSEURS DE TNS VIRGULE FIXE VS VIRGULE FLOTTANTE n Comparaison du Rapport Signal à Bruit de Quantification (RSBQ) q Définition : rapport entre la puissance du signal Px et la puissance de l’erreur de quantification Pe Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS VIRGULE FIXE VS VIRGULE FLOTTANTECritère Fixe (95% des DSP) Flottante Complexité hard Simple Complexe Complexité prog Elevée Faible Consommation Faible Elevée Dynamique Réduite (max 190dB) Étendue (max 1500dB) Calcul rapide Lent Coût Faible Elevé (2, 4 fois plus chers) Application Produits de grande diffusion où le coût est un facteur important : Contrôle industriel, communications, instrumentation, parole, médical, militaire… • 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). Audio professionnel, vidéo, médical… Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS OPÉRATIONS ARITHMÉTIQUES n Addition dans une unité arithmétique et logique : On considère deux nombres fractionnaires A et B, codés en complément à deux, A = SA ANA-2ANA-3 … q Règles d’addition et deA1A0 soustraction § § § A-1A-2 … A-MA+1AMA Choisir un format commun tels que : NC=max(NA, NB) et MC=max(MA, MB) Alignement de la virgule (insérer des 0 à droite) Extension des bits des opérandes A et B selon les valeurs de (NC , MC) (ajouter des 0 à droite et dupliquer le bit signe à gauche) SASAANA-2ANA-3 … … … … … A1A0 A-1A-2 … … … ... … A-MA+1A -MA SBSBSBSBBNB-2BNB-3 … … … B1B0 B-1B-2 … B-MB+1B-MB00 Avec NR=NC+(1 : débordement si SA= SB SR) et MR=MC TRODUCTION AUX PROCESSEURS DE TNS OPÉRATIONS ARITHMÉTIQUES n Addition dans une unité arithmétique et logique q Exemple de calcul q Mécanisme de soustraction : on remplace l’opérande à soustraire (B) par son complément à deux B+1 puis additionnée à la première opérande A Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS OPÉRATIONS ARITHMÉTIQUES n Multiplication dans un multiplicateur-Accumulateur q Définition : la multiplication binaire (simple précision) est une suite de décalages et d’additions (correspondant au produit de deux nombres de 16 bits) q Remarque: le multiplicateur doit savoir si le multiplicande et le multiplicateur sont signés (S:Signed) ou non (U:Unsigned). q Exemples § Multiplication entre deux entiers non-signés (UU) TRODUCTION AUX PROCESSEURS DE TNS OPÉRATIONS ARITHMÉTIQUES n Multiplication dans un multiplicateur-Accumulateur q Exemples § multiplicande B signé, le multiplicateur A non-signé (SU) : Les opérations sont identiques à ceux de la multiplication non signée, la seule différence est l’extension du bit de signe. Si B est positif, la multiplication se rapporte alors au cas de deux nombres non signés (UU) Il faut propager le bit de poids fort si il est à 1 dans l’étage suivant pour garder des sommes intermédiaires négatives (et cela seulement si le multiplicande est négatif) Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS OPÉRATIONS ARITHMÉTIQUES n Multiplication dans multiplicateur-Accumulateur un q Exemples § § multiplicande B signé, le multiplicateur A signé (SS) : faire une soustraction pour le dernier pas de calcul car en complément à 2 (dans l’exemple remplacer P3 par –P3 pour additionner) multiplicande B non-signé, le multiplicateur A signé (US) : Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS CRITÈRES DE PERFORMANCES DES DSP n Puissance de calcul d’un DSP q C’est un autre critère de classification des DSP q La puissance de calcul dépend de la rapidité de l'exécution des instructions, et donc de l'horloge q Méthode de base d’évaluation de la vitesse d’exécution : compter le nombre d’instructions effectuées par seconde au moyen du critère suivant, § MIPS (Million Instructions Per Second): il mesure le nombre de codes machines (instructions) que le DSP peut effectuer en une seconde q Problème : une instruction ne signifie pas forcément la même chose d’une famille de DSP à l’autre Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS CRITÈRES DE PERFORMANCES DES DSP n Puissance de calcul d’un DSP (suite 1) q D’autres critères de performances § § § MFLOPS (Million FLoating-point Operations Per Second): il est utilisé uniquement pour les DSP à virgule flottante. Il mesure le nombre d’opérations à virgule flottante (multiplications, additions, soustractions, etc.) que le DSP à virgule flottante peut réaliser en une seconde MOPS (Million Operations Per Second) : il mesure le nombre total d’opérations (traitement des données, les accès DMA (Direct Memory Access), les transferts de données, les opérations d’E/S, etc.) que le DSP peut effectuer en une seconde. Il mesure alors les performances globales d’un DSP plutôt que ses seules capacités de calcul MBPS (Mega-Bytes Per Second) : il mesure la largeur de bande d’un bus particulier ou d’un dispositif d’E/S, c’est à dire son taux de transfert Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS CRITÈRES DE PERFORMANCES DES DSP n Puissance de calcul d’un DSP (suite 2) q Critère commun à tous les DSP § MACPS (MAC Par Second): il mesure le nombre d’opérations MAC par seconde. Ce critère 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. Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS CRITÈRES DE PERFORMANCES DES DSP n Mesure du temps d’exécution (‘‘Benchmark’’) q Pourquoi Benchmark? § Modes d’adressage : certains DSP proposent des modes d’adressages plus performants que d’autres adapter le mode d’adressage aux algorithmes de TNS (exemple : « bits reversing » pour accélérer les calculs des FFT) § Temps d’accès à la mémoire : certains DSP intègrent des blocs de mémoire vive rapide (placée dans l’espace d’adressage du DSP au même titre que de la mémoire vive externe)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) La mesure des performances par benchmark complète d’avantage la mesure de vitesse pure TRODUCTION AUX PROCESSEURS DE TNS CRITÈRES DE PERFORMANCES DES DSP n Mesure du temps d’exécution (‘‘Benchmark’’) (suite 1) q Comment ? mesurer le temps que met le DSP pour exécuter des programmes « standards » de traitements du signal q Problèmes: § Problème 1 : Quel Domaine d’applications faut-il choisir et quels sont les algorithmes les plus représentatifs ? il existe plusieurs systèmes de benchmark : BDT (Berkeley Design Technology) est couramment utilisé, il mesure la vitesse (The BDTImark2000™), l’utilisation de la mémoire (The BDTImemMark2000™), coût (The BDTImark2000/$™), surface (The BDTImark2000/mm2™), énergie (The BDTImark2000/Watt™)), ‘‘Standard Performance Evaluation Corporation’’ (fréquemment utilisé), SPEC95 (couvre plusieurs domaines tels que les vocodeurs, l’asservissement en position des têtes de lectures des disques dur, les modems, voire les applications multimédia sur PC) TRODUCTION AUX PROCESSEURS DE TNS CRITÈRES DE PERFORMANCES DES DSP n Mesure du temps d’exécution (‘‘Benchmark’’) (suite 2) q Problèmes: § Problème 2 : qualité d’implémentation des algorithmes (varie d’un système à un autre) un filtre numérique peut demander plus ou moins de ressources de calcul en fonction de telle ou telle implémentation (Cet aspect n’est pas pris en compte par les benchmarks) La mesure des capacités d’un DSP par benchmark permet de mesurer la performance globale Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS CRITÈRES DE PERFORMANCES DES DSP - Source ti.com Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS CRITÈRES DE PERFORMANCES DES DSP - Source ti.com Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS COMPARAISON DE PERFORMANCES DES QUELQUES DSP - Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS EXERCICE - On considère le DSP56156 caractérisé par 30 MIPS. On suppose que le taux d’échantillonnage est de 48 kHz. Quel est le nombre d’instructions maximum entre 2 échantillons ? Solution : Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS CRITÈRES DE PERFORMANCES DES DSP ADSP 219x Nombre de cycles Temps d’exécution-160MHz Filtre FIR 1er ordre 1 6.25 ns Biquad IIR Filter (4 coeff) 5 31.25 ns 48320 302 us Division 19 118.75 ns Sin/Cos 11 68.75 ns Arctangente 13 81.25 ns ln/log10 11 68.75 ns FFT Complexe 1024 points Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS CONSTRUCTEURS DES DSP Rang Vendeur Famille Format Données Puissance (MIPS) Fixe Fixe Flottant Flottant Fixe Fixe 16 16 32 32 16 32 8.8 40 25 30 50 2400 (3.3 ns) 1 Texas Instruments TMS320C1x TMS320C2x TMS320C3x TMS320C4x TMS320C5x TMS320C6x 2 Analog Devices ADSP-21 xx ADSP-21 Fixe Flottant 16 32 40 40 3 Motorola DSP560xx DSP960xx StarCore Fixe Flottant Fixe 24 32 16 40 40 1200 4 Lucent DSP16xx DSP32xx Fixe Flottant 16 32 40 40 D’autres fabricants : Qualcomm (Téléphonies mobiles), Microchip (propose 2 familles dénommées Digital Signal Contrôler (dsPIC30F et dsPIC33F), qui sont des contrôleurs avec des capacités de calcul renforcées et des périphériques de CAN), Nec, ... TRODUCTION AUX PROCESSEURS DE TNS NOMENCLATURE DES DSP DE TEXAS INSTRUMENTS - TMS 320 C Préfixe Famille TMX = expérimental TMP = Prototype TMS = qualifié … 32 ou 320 GDK () 600 Technologie Composant Package température Vitesse C= CMOS E = EPROM … GDK=548pin plastic BGA FN = 38lead PLCC … A= –40°C à 105°C, température (C6000 DSPs) Blank = = 0°C à 90°C, température commérciale, par défaut pour C6000 DSPs … Pour la famille C6000: 150, 167, 200, 233, 250, 300, 400, 500, 600, 720 MHz … Cours DSP -Hicham Ghennioui 6416 C6000 DSP C5000 DSP …. 62 TRODUCTION AUX PROCESSEURS DE TNS EXEMPLES D’APPLICATION DES DSP DSP Application TMS320Clx Contrôle des disques durs dans les ordinateurs TMS320C2x ADSP-2105 Fonctionnement des fax TMS320C5x ADSP-21 01 Modems TMS320C3x ADSP-21010 Systèmes Hi-Fi, à synthèse vocale, et dans les processeurs graphiques à 3 dimensions TMS320C4x TMS320C6x ADSP-21020 Fonctionnement en parallèle, avec d’autres systèmes processeurs (applications : la «réalité virtuelle» et la reconnaissance d’images). Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS EXEMPLES D’APPLICATION DES DSP Taille des données Application 1 à 4 – 18 à 22 bits PWM (Pulse Width Modulation), mesures, contrôle convertisseurs sigma-delta 6 à 14 bits radio HF/VHF, radar 10 à 12 bits Sonar 8 à 14 bits Parole 16 à 20 bits Audio 8 - 36 bits (par pixel) Imagerie/Vidéo 16 à 18 bits analyseurs de sang Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS RÉSUMÉ DES CARACTÉRISTIQUES D’UN DSP n DSP: c’est un P/C particulier dont, l’architecture interne a été adaptée pour le traitement du signal (Il intègre un ensemble de fonctions spéciales : bit -reverse pour la FFT) n Architecture : les DSP sont en général basés sur une architecture de Harvard qui fait apparaître des bus de programme et de données distincts n MAC et Pipeline : un DSP dispose de la multiplication-accumulation câblée et les instructions sont essentiellement exécutées en un cycle d’horloge (Architecture pipeline) : MR=XY+R Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS RÉSUMÉ DES CARACTÉRISTIQUES D’UN DSP n Format : si le DSP fonctionne en virgule fixe avec des données sur 16 bits, le résultat MR=XY+R est alors sur 32 bits (ou plus, selon l'architecture). Si l'utilisateur ne conserve que les 16 bits de poids fort, le calcul est alors effectué en simple précision. Si les 32 bits sont utilisés, on parle de double précision : le temps de calcul est alors plus long. Si le DSP fonctionne en virgule flottante avec des données en 32 bits, le résultat MR est alors sur 40 bits (ou plus, selon l'architecture). L’utilisateur ne prend en compte que les données de 32 bits en ignorant les bits de poids faibles de la mantisse Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS RÉSUMÉ DES CARACTÉRISTIQUES D’UN DSP n Ressources intégrées : un certain nombre de ressources et de périphériques sont intégrés sur la même puce afin d’optimiser les temps calcul : RAM/ROM, entrées-sorties similaires à celles d'un c (liaison série, RS232C, timers, CNA et CAN …) n Loi de Moore : généralement, tous les processeurs vérifient la loi de Moore (un des fondateurs d’Intel): la densité d'intégration des composants doublerait tous les dix-huit mois. Cours DSP -Hicham Ghennioui TRODUCTION AUX PROCESSEURS DE TNS RÉSUMÉ DES CARACTÉRISTIQUES D’UN DSP n Différence majeure entre un P et un DSP q Un P a besoin de plusieurs cycles d’horloge pour effectuer une opération (addition, multiplication, etc) q Un DSP peut effectuer simultanément les trois opérations suivantes, § § § Lecture d’une donnée en mémoire Effectuer une multiplication puis une addition Ecrire en mémoire le résultat Cette opération s’appelle MAC et prend un seul cycle d’horloge Cours DSP -Hicham Ghennioui