Architecture générale can: conversion analogique numérique, filtre anti repliement



Yüklə 445 b.
tarix30.10.2017
ölçüsü445 b.



6.1- Architecture générale



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

    • nombre de bits, loi de conversion, fréquence d’échantillonnage


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



Architecture générale

  • Diagramme temporel



Fréquence d’échantillonnage

  • Domaine d’utilisation des DSP



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

    • 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

    • 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



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é


Virgule fixe

    • Multiplieur Multiplieur -accumulateur




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




Accumulateurs

  • 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



Certains DSP n’ont pas de Guard bits

  • 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


ALU

  • 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


Shifter(s)

  • 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



Virgule fixe

  • Saturation



Virgule flottante



Virgule flottante

  • Structure similaire aux unités en virgule fixe

  • DSP avec

    • unité flottante seule (TI, AD, Motorola)
    • 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
    • exposant 8 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

    • positionnement d’un indicateur et/ou interruption
    • 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

  • /* 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



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



Organisation mémoire



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


Organisation mémoire

  • Mémoire multi-port



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




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)


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


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




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)


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


Principe du pipeline



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

    • 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



Yüklə 445 b.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2020
rəhbərliyinə müraciət

    Ana səhifə