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