6. Architecture des DSP 1. Caractéristiques générales

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
Électronique de base du processeur
Architecture de machines Le microprocesseur
Additions soustractions
Distance inter-locuteur
TECHNOLOGIE DES ORDINATEURS
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
Les numéros 70 –
Les numéros
Les identités remarquables
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Architecture Systèmes
Auto Apprentissage Le DSP
2.Les différentes architectures (Louis)
Introduction à la logique
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
Système d’exploitation : Assembleur
Chapitre 8 : L’architecture de base des ordinateurs
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Architecture de base d’un ordinateur
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE
Architecture et technologie des ordinateurs II
Synchronisation et communication entre processus
Cours de physique générale I Ph 11
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Calcul et implantation des filtres numériques RIF et RII dans un DSP
Structure de la famille de DSP Motorola 56300
Architecture des Ordinateurs
Titre : Implémentation des éléments finis sous Matlab
Tableaux de distributions
Tableaux de distributions
LES NOMBRES PREMIERS ET COMPOSÉS
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
Matériel dont vous aller avoir besoin pour cette séance
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
LES SYSTEMES AUTOMATISES
Calculs et écritures fractionnaires
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Systèmes Pipeline – opérations multicycles Nous avons vu jusquà maintenant comment faire un.
RACINES CARREES Définition Développer avec la distributivité Produit 1
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Résoudre une équation du 1er degré à une inconnue
Enseigner / apprendre le calcul mental…
Aire d’une figure par encadrement
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Mise en forme en Mathématiques
Informatique 1. Les applications de l’informatique
Lycée ELKHAWARIZMI De SAFI
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
LES PILES ET FILES.
Progression - Quelques rappels
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
Systèmes à microprocesseur Les mémoires
Traitement du Signal TC 1 6. Architecture des DSP 1. Caractéristiques générales 2. Unités de calcul 4. Architecture mémoire 5. Architecture pipeline.
Traitement du Signal TC 1 6. Architecture des DSP 1. Caractéristiques générales 2. Unités de calcul 4. Architecture mémoire 5. Architecture pipeline.
Traitement du Signal TC 6. Architecture des DSP 1. Caractéristiques générales 2. Unités de calcul 4. Architecture mémoire 5. Architecture pipeline 1.
Transcription de la présentation:

6. Architecture des DSP 1. Caractéristiques générales 2. Unités de calcul 4. Architecture mémoire 5. Architecture pipeline

6.1- Architecture générale Adr. Don. CAN CNA Proc. DSP ROM RAM Comm. Horloge Timers... Cont.

Architecture générale CAN: conversion analogique numérique, filtre anti repliement nombre de bits, loi de conversion, fréquence d’échantillonnage Processeur: Organe de calcul dont l’architecture est «adaptée» au traitement du signal CNA: conversion numérique analogique, filtre de restitution

Architecture générale ROM: Mémoire contenant les programmes de contrôle du système et de traitement du signal RAM: Mémoire vive contenant les données en entrée en sortie et en cours de traitement Comm.: Organe de communication avec un éventuel système externe Horloge, timers...: horloge du processeur, horloge d’acquisition, horloge de communication....

Architecture générale Structure des programmes Interruption, horloge d’acquisition Programme principal Entrée d’un échantillon Init. Mémorisation et Traitement Boucle infinie Sortie d’un échantillon Retour d’interruption

Architecture générale Diagramme temporel Te Hor.Acqu. Interruption Activité du proc. Sortie du résultat T Durée du traitement Entrée de l’échantillon Fréquence d’échantillonnage = 1/Te Contraintes temps réel très fortes T < Te

Fréquence d’échantillonnage Domaine d’utilisation des DSP Fréquence d’échantillonnage (Hz) Radar 1G 100M HDTV 10M Vidéo 1M Modem radio 100k Audio 10k Modem vocaux Parole 1k 100 Contrôle sismique 10 Instrumentation 1 1/10 1 Finances 1/10 1/100 Météo 1/1000 Complexité des algorithmes

Fréquence d’horloge Fh Rythme la vie du processeur Actuellement (2000), 1Ghz Le rapport R=Fh/Fe est déterminant pour la complexité du système Quand R décroit : Complexité du système plus grande (parallélisme, multiprocesseurs...) Algorithmes simples Programmation complexe, optimisation indispensable (gestion du pipeline...)

Caractéristiques principales Multiplication-addition rapide (MAC) avec un format de calcul étendu pour éviter les dépassements Mémoire à accès multiple Modes d’adressage spécialisés Exécution rapide des boucles I/O intégrées avec le processeur

Représentation des nombres Deux grandes catégories de DSP Format virgule fixe 16, 20, 24 bits Calcul en précision étendue par logiciel (performance réduite) Emulation du calcul flottant par logiciel (performance réduite) Hardware plus simple, coût réduit Dynamique réduite (144 dB pour 24 bits) programmation complexe (Scaling) pour les traitements nécessitant une bonne précision Format virgule flottante 32 bits (mantisse 24 bits, exposant 8 bits) Calcul en virgule fixe généralement possible Hardware plus complexe, coût élevé Dynamique élevée (1535dB pour 32 bits) Progammation simplifiée

Quelques DSP... Analog Devices Lucent Motorola Texas Instrument ADSP 21xx fixe 16 bits 33 Mips ADSP210xx flottant 32 40 Lucent DSP16xx fixe 16 70 DSP32xx Flottant 32 20 Motorola DSP5600x fixe 24 40 DSP561xx fixe 16 30 DSP563xx fixe 24 80 DSP96002 flottant 32 20 Texas Instrument TMS320C1x fixe 16 9 TMS320C2x fixe 16 12 TMS320C2xx fixe 16 40 TMS320C3x flottant 32 25 TMS320C4x flottant 32 30 TMS320C5x fixe 16 50 TMS320C8x fixe 8/16 50

6.3-Unités de Calcul Data Paths Deux grandes catégories pour les DSP: Unités Arithmétiques et Logiques Unités de calcul en entier Unités de calcul en virgule fixe Unités de calcul en flottant Shifter Structures spécifiques des DSP généralement absentes des autres types de processeurs (ou avec une organisation différente) Deux grandes catégories pour les DSP: Virgule fixe Virgule flottante

Virgule fixe Eléments principaux Multiplieur Accumulateurs Unité arithmétique et logique Shifters Remarque: Calculs d’adresse effectués dans une unité particulière Adr. Generation Unit (AGU) Data Adress Generation (DAG) Adressage circulaire Adressage spécifique FFT (bit-reversed)

Virgule fixe Motorola, DSP5600x

Virgule fixe Multiplieur Rôle central dans un DSP Plus de 50% des instructions Caractéristiques principales Temps d’éxécution = 1 cycle instruction Structure pipeline Un résultat par cycle horloge, si le pipeline est bien utilisé Instruction Horloge I1 I2 I3 I4

Virgule fixe Multiplieur Multiplieur -accumulateur MAC Reg. Reg. Multiplication-addition en Deux instructions Une instruction

Virgule fixe Entrées du multiplieur Uniquement les registres Architecture Load-Store Lecture mémoire avant calcul Programme plus complexe, mais Hardware plus efficace (Architecture RISC) Registres et mémoire Programmation plus simple Mais... la facilité peut être l’ennemi de la performance.

Virgule fixe Tailles opérandes/résultats n bits x n bits = 2 n bits Troncature du résultat à n bits souvent indispensable (calculs enchainés) Mise à l’échelle (scaling) est nécessaire Perte de précision Perte de temps Programme plus complexe

Virgule fixe Texas Instrument, TMS320C50

Virgule fixe Accumulateurs Taille 2 n bits + p bits p bits (Guard bits) pour additionner plusieurs valeurs en sortie des multiplieurs en limitant le risque de dépassement de capacité (Overflow) Exemple: ADSP 21xx Format fixe 16 bits Résultat multiplieur 32 bits Accumulateurs 40 bits Une bonne utilisation des accumulateurs est indispensable pour une programmation optimale

Virgule fixe Certains DSP n’ont pas de Guard bits Scaling par décalage généralement en même temps que la multiplication, sans perte de temps Perte de précision relativement faible car les bits de poids faibles seront souvent tronqués en fin de traitement. Programmation plus complexe Scaling suffisant pour de nombreuses applications Un DSP doit avoir des Guard bits ou un Scaling possible en sortie du multiplieur

Virgule fixe ALU Opérations entières et binaires (+, -, inc, dec, et, ou, xor...) Taille des opérandes de l’ALU taille des accumulateurs ou taille des opérandes du multiplieur

Virgule fixe Shifter(s) 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.

Virgule fixe Dépassement de capacité (Overflow) et saturation Overflow x+y Max. x y Min Ex: En décimal, 2 chiffres 00 à 99 23+80 = 03 (103 mais le 1 est perdu) Overflow inacceptable en traitement du signal (résultat faux, fonctionnement perturbé, oscillations...) Remédes: Mise à l’échelle (Scaling) mais...précision? Saturation

Virgule fixe Saturation x+y Max. y x Min ex: 23+80 = 99 !! Résultat faux mais moins dangereux En général, impossible d’éliminer complètement les risques de dépassement. Utiliser systématiquement la saturation Instructions spéciales Modes particuliers de fonctionnement (Mode bits)

Virgule flottante Lucent, DSP3210

Virgule flottante 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) 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...)

Virgule flottante Multiplieur Entrée 32 bits mantisse 24 bits exposant 8 bits Sortie (32)40 à 44 bits mantisse 32 à 36 bits Format interne pour multiplication/accumulation Arrondi systématique perte de précision négligeable

Virgule flottante 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 Plusieurs, au format des résultats flottants (40 à 44 bits)

Virgule flottante 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

Virgule flottante Exceptions Overflow positionnement d’un indicateur et/ou interruption saturation du résultat Underflow Mise à zéro du résultat Autres exceptions Division par 0, format invalide...

6.4 - 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 Structure non récursive ou filtre transverse x(n) x(n-1) x(n-Q) T T T b(Q) b(0) b(1) b(2) b(Q-1) y(n) /* 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 */

Réalisation d’un filtre FIR 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

Architecture mémoire Plusieurs accès mémoire nécessaires pour chaque instruction Solutions: Organisation mémoire Architectures HARVARD Mémoires à accès multiples Cycles spéciaux READ/WRITE Réduction du nombre d’accès Mémoire cache programme Adressage circulaire (Modulo Adr.) Programmation «intelligente»

Organisation mémoire Principe de base : Architecture de Von Neumann Unités de contrôle et de calcul Bus Adresses Bus Données Mémoire programme et données Un seul accès mémoire par cycle instruction FIR d’ordre Q calculé en au moins 4Q cycle instructions Architecture mal adaptée, bande passante mémoire limitée

Organisation mémoire Les DSP ont tous une organisation mémoire spéciale pour augmenter la bande passante Chaque DSP a ses particularités L’utilisation de la mémoire est soumise à des restrictions qui compliquent beaucoup la programmation.

Organisation mémoire Architecture Harvard Unités de contrôle et de calcul Bus Adresse A Bus Adresse B Bus Donnée A Bus Donnée B Mémoire de données B Mémoire programme A

Organisation mémoire Architecture Harvard Modifiée Unités de contrôle et de calcul Bus Adresse A Bus Adresse B Bus Donnée A Bus Donnée B Mémoire programme et données A Mémoire de données B

Organisation mémoire Architecture Harvard modifiée Avantage: 2 accès mémoire par cycle instruction Mémoire A: programme et coefficients du filtre Mémoire B: échantillons d’entrée Une étape du filtre calculée en deux instructions Exemples: ADSP 21xx AT&T DSP16xx Extension à 3 mémoires DSP5600x, DSP96002 Zilog Z893

Organisation mémoire Architecture Harvard modifiée Mémoires intégrées avec le processeur (On-chip) Un seul bus (adresse+donnée) disponible à l’extérieur (Off-chip) pour limiter le nombres de broches: diminution des performances Rappel: Il faut 4 accès mémoire par instruction ???? Il faudra utiliser d’autres techniques pour atteindre les performances maximales

Organisation mémoire Mémoire à accès multiple Mémoire rapide autorisant plusieurs accès séquentiels par cycle instruction Cycle instruction Ad. 1 2 3 4 Donnée 1 2 3 4 Avec une architecture Harvard Modifiée: 3 ou 4 accès mémoire par cycle Ex: Zoran ZR3800x Avec une architecture type VonNeumann: 4 accès par cycle Ex: Lucent DSP32

Organisation mémoire Mémoire multi-port Unités de contrôle et de calcul Bus Adresse A Bus Adresse B Bus Donnée A Bus Donnée B Bus Adresse C Bus Donnée C Mémoire de données B Mémoire programme et données A

Organisation mémoire Mémoire multi-port Avantage: programmation simplifiée Inconvénients: électronique beaucoup plus complexe donc plus coûteuse Extension Off-chip pratiquement impossible Exemple: Motorola DSP561xx (Voir schéma précédent)

Organisation mémoire Cycles spéciaux READ/WRITE Exemple x Mémoire x+1 Registre Processeur

In XN XN-1 . XN-(L-1) hL-1 hL-2 . h0 ... 0F03 0F04 pma dma 0F04 AR0 RPT #L-1 MACD hL-1,*- APAC

Réduction du nombre d’accès Mémoire cache programme (En général, les DSP n’ont pas de mémoire cache pour les données) Unités de contrôle et de calcul Cache Instruct. Bus Adresses Bus Données Mémoire programme et données Mémoire contenant des instructions éxécutées souvent (boucles...) Réduction du nombre d’accès à la mémoire programme

Réduction du nombre d’accès Mémoire cache programme Il existe de nombreuses variations autour du principe de base Dans les DSP, la structure de la mémoire cache est beaucoup plus simple que dans les processeurs d’usage général (type Pentium...) L’optimisation nécessite une prise en compte par le programmeur de la structure et des possibilités de la mémoire cache Contrôle manuel du cache pour maîtriser les timings.

Réduction du nombre d’accès Mémoire cache programme Repeat buffer 1 à N instructions ex: AT&T DSP16 : 16 instructions ex: TMS 320C2x/5x : 1 instruction «Vrai» cache mono-ligne ex:Zoran ZR3800x «Vrai» cache multi-ligne ex:TMS320C3x: 2 fois 32 instructions

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 t 1 2 3 4 5 6 7 D F t+1 2 3 4 5 6 7 8 D F t+2 9 3 4 5 6 7 8 F D

Réduction du nombre d’accès 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,...

Réduction du nombre d’accès 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,...

Réduction du nombre d’accès 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

X0 - X0 X1 - X0 X1 X2 X3 X1 X2 dma t=0 dma t=1 dma t=2 dma t=3 h0 h1 * X0 - X0 X1 - X0 X1 X2 X3 X1 X2 * * * dma t=0 dma t=1 dma t=2 dma t=3 h0 h1 h2 0CE0 0CE1 0CE2 RPT #L-1 MAC h0,*- APAC pma

Réduction du nombre d’accès Programmation «intelligente» Réutiliser des informations déjà lues en mémoire et présentes dans les registres internes y(0)=c(1) x(0) +c(2) x(-1) +c(3)x(-2)+c(4)x(-3) y(1)=c(1) x(1) +c(2) x(0) +c(3)x(-1)+c(4)x(-2) LD R0,x(1) ; x(1) LD R1,c(1) ; c(1) R2 = R0*R1 , LD R0,x(0) ; c(1)*x(1) R3 = R0*R1 , LD R1,c(2) ; c(1)*x(0) R2 = R2 + R0*R1 , LD R0,x(-1) ; x(0)*c(2) R3 = R3 + R0*R1 , LD R1,c(3) ; x(-1)*c(2) R2 = R2 + R0*R1 , LD R0,x(-2) ; x(-1)*c(3) R3 = R3 + R0*R1 , LD R1,c(4) ; x(-2)*c(3) R2 = R2 + R0*R1 , LD R0,x(-3) ; x(-2)*c(4) R3 = R3 + R0*R1 ; x(-3)*c(4) 1 instruction par étage du filtre 1vs 2 accès mémoire par instruction

6.5 - Architecture pipeline Principe du pipeline Découper un opération en N sous-opérations (S/op) et Exécuter les N sous-opérations en parallèle (sur des données différentes) R Opération R H S/op 1 S/op 2 S/op 3 R R R R H

Principe du pipeline Exemple (proche TMS320C3x) Exécution d’une instruction Lecture de l’instruction en mémoire programme (OpCodeFetch) Décodage de l’instruction Lecture ou écriture d’un opérande en mémoire de donnée Exécution éventuelle d’un opération arithmétique ou logique Exécution non-pipelinée

Principe du pipeline Exécution pipelinée La vitesse d’éxécution d’un programme est multipliée par N (ici 4) nombre d’étage du pipeline En apparence, une instruction est éxécutée à chaque cycle horloge La durée réelle d’éxécution d’une instruction est de N cycles horloge

Principe du pipeline Utilisé depuis longtemps, sous de multiples formes, dans de nombreux ordinateurs Dans les DSP... Presque tous les DSP sont pipelinés Le nombre d’étages varie de 2 à 5 ADSP : 2 La plupart des DSP : 3 Opcode Fetch Decode/OperandRead/Write Execute (MAC, ALU, ...) TMS320C3x , ... : 4 TMS320C54x , ... : 5 Le pipelinage augmente le nombre d’accès à la mémoire (cf chap. précédent) Dans l’exemple précédent il passe de ½ accès à 2 accés /cycle horloge

Principe du pipeline 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)

Principe du pipeline Le parallélisme d’éxécution dans un pipeline peut créer 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

7. Transition Chaîne de traitement numérique Signal aléatoire Filtres Filtrage, échantillonnage, quantification Restitution, filtrage Signal aléatoire Densité de probabilité, Moments Autocorrelation, DSP Filtres h(t) / H(Z) / H(f) FIR / IIR # AR(MA) Implantation Synthèses Filtrage adaptatif (principes, modes) Processeurs DSP Fixe/Flottant Filtrage Prêts pour la parole, le son … et l ’image