Vous êtes sur la page 1sur 31

Chapitre3

Les unités spécifiques


des DSP

askri-t.jimdo.com 1
Architecture générale et objectifs

askri-t.jimdo.com 2
Unité de commande

 C’est le chef d’orchestre du CPU. Il séquence et décode les


instructions une à une.

 Pour être efficace, le CPU met en œuvre:


- Un pipeline
- Une gestion des boucles matérielles

askri-t.jimdo.com 3
Unité de commande
Les phases du Pipeline

askri-t.jimdo.com 4
Unité de commande
Séquentiel vs pipeline

askri-t.jimdo.com 5
Unité de commande
Exemple de rupture de séquence

askri-t.jimdo.com 6
Unité de commande
Exemple de conflit d'accès mémoire

Programmes et Données dans la même mémoire à 1 accès par cycle.

 Conflit pour l’accès mémoire entre Fetch et Read.


 Les lectures de données R1/R2 empêchent les chargements
d'instruction F3/F4.
 Réductions des performances d'au moins 50%.
 Problème réglé si:
- Mémoiremulti-accès.
- Programmes et Données dans des mémoires différentes (ou multi-bloc). .7
askri-t.jimdo.com
Unité de commande
Effets du pipeline lors du débogage

askri-t.jimdo.com 8
Unité de commande
Utilisation des ressources par le pipeline

askri-t.jimdo.com 9
Unité de commande
Retards dans le pipeline

 Le pipeline atteint son plein rendement une fois qu’il est “rempli”

 Un retard peut se produire


- S’il existe un conflit de ressources (retard ponctuel)
 accès à la mémoire
 utilisation des bus

- En cas de rupture de séquence (vidange du pipeline)


 branchement non prévu
 appel de sous-programme
 interruption

askri-t.jimdo.com 10
Unité de commande
Gestion des boucles

 L’objectif est d’optimiser le traitement des boucles de petite taille


- Initialisation des paramètres de la boucle en 1 instruction
- Pas d'instructions supplémentaires pour la gestion de la fin de la boucle

 Exemple boucle mono-instruction

MAC : Multiple and Accumulate


RPT : Repeat Single Instruction Unconditionally
JNE: Jump Not Equal (si Indicateur Zéro à 0)
askri-t.jimdo.com 11
Unité de commande
Calcul d’un filtre RIF

AR: Auxiliary Register 0..7


RPTZ: A=0
STM: Store Memory
STH : Store High 16 bits
SSBX: Set Status Bit

FRCT Fractional mode. When FRCT is 1, the multiplier output is


askri-t.jimdo.com 12
left-shifted by one bit to compensate for an extra sign bit.
Unité de commande
Unité de contrôle du C50

askri-t.jimdo.com 13
Unité de traitement

 Il existe deux types de DSP :


- Les DSPs à virgule fixe traitent des nombres entiers seulement
- Les DSPs à virgule flottante traitent des nombres réels codés
sous la forme mantisse exposant.

askri-t.jimdo.com 14
Unité de traitement
Eléments de l’unité de traitement (1)

 Opérateurs
- Multiplieur câblé
 Multiplication en 1 cycle ou pipelinée (1 résultat de multiplication par cycle)
 Le résultat est fourni directement à l’UAL ou il est stocké dans un registre (P
register)
 Largeur des opérandes source : b
 résultat : bmultiplication= 2.b
- Unités de saturation ou d’arrondi
L'algorithme de Viterbi, permet de corriger, dans une
- Unités spécifiques
certaine mesure, les erreurs survenues lors d'une
 Unité de manipulation de bit, Viterbi, ... transmission à travers un canal bruité.
 U.A.L.
- Opérations arithmétiques : addition, soustraction, incrémentation, négation
- Opérations logiques : and, or, not

askri-t.jimdo.com 15
Unité de traitement
Eléments de l’unité de traitement (2)
 Additionneur indépendant de l’UAL
 Registres à décalage (recadrage des données)
- Spécialisé: réalisation de quelques décalages prédéfinis en //
- en barillet : réalisation d ’un décalage quelconque en 1 cycle

 Unités de stockage de l’unité de traitement


- Registres opérandes
Stockage des opérandes sources ou des résultats intermédiaires
- Registres d’accumulation
 Stockage du résultat de l ’additionneur
 Nombre de registres d’accumulation limité (1 à 4)
 Données stockées en double précision
Possibilité de bits de garde pour stocker les bits supplémentaires issus d ’accumulations successives
badd =bmultiplication + bgarde

askri-t.jimdo.com 16
Unité de traitement
Structure de l’unité de traitement MAC

askri-t.jimdo.com 17
Unité de traitement
Exemple:TMS320C54x

askri-t.jimdo.com 18
Unité de mémorisation
Les différents accès à la mémoire

 Exemple Filtre FIR


- Recherche de l’instruction
- Lecture de la donnée xn-k
- Lecture du coefficient hk
- Vieillissement des données xn-k-1 = xn-k

askri-t.jimdo.com 19
Unité de mémorisation
Rappels : Bus

 Le CPU est le maître du bus


- Il est le seul à écrire sur les bus adresse et contrôle
 Le périphérique obtempère sur le bus données
- Lecture : il fournit la donnée demandée
- Ecriture : il récupère la donnée fournie par le CPU
- Haute impédance : il se déconnecte du bus

askri-t.jimdo.com 20
Unité de mémorisation
Accès mémoire pour un calcul

askri-t.jimdo.com 21
Unité de mémorisation
Architecture Von Neuman

 Un seul chemin d'accès à la mémoire


 Architecture des processeurs d’usage général(Pentium, 68000)
 Goulot d'étranglement pour l'accès à la mémoire

askri-t.jimdo.com 22
Unité de mémorisation
Architecture Harvard

 Séparation des mémoires programme et données


 Meilleure utilisation du CPU
- Chargement du programme et des données en parallèle

askri-t.jimdo.com 23
Unité de mémorisation
Accès mémoire multi-port

 Plusieurs bus de données


- Accès simultané à plusieurs données
- Combiné avec
 mémoire multi-accès (plusieurs accès à la même mémoire en un cycle)
 mémoire multi-blocs (accès simultané à deux blocs de mémoire distincts)
 Exemple du TMS320C54xx :
- 1 bus programme (P)
- 2 bus de lecture des données (C et D)
- 1 bus d’écriture des données (E) askri-t.jimdo.com 24
Unité de mémorisation
Exemple du TMS320C5416

 Exemple du TMS320C54xx :
-1 bus programme (P)
- 2 bus de lecture des données (C et D)
- 1 bus d’écriture des données (E)

askri-t.jimdo.com 25
Unité de mémorisation
Cache d'instructions

 Cache = mémoire associative rapide


- Contient les dernières instructions exécutées
 Utile en cas de boucle
- Accès aux instructions sans accès en mémoire programme
- Libère le bus pour des données
 Pas appliqué aux données
- Problème de validation du temps réel
askri-t.jimdo.com 26
Unité de mémorisation
Bus externes

askri-t.jimdo.com 27
Unité de mémorisation
Accès Direct à la Mémoire : DMA

 Accès DMA : entrées-sorties vers la mémoire interne


- indépendant du CPU et des bus internes
 Système d'interruptions "données reçues"/"données
transmises"

askri-t.jimdo.com 28
Unité de mémorisation
Mémoire interne sur les C54x
Capacité en mémoire interne de différents modèles C54x

 Plusieurs types de RAM incluse sur le chip


- Single access (SARAM) : un accès par cycle
- Dual access (DARAM) : deux accès par cycle
- Two-way shared : deux accès par cycle même depuis l'extérieur
 DARAM découpée en blocs
- Accès simultané à deux blocs de mémoire différents askri-t.jimdo.com

- 2x2=4 accès par cycle en théorie (en réalité limité par le reste de l'architecture) 29
Unité de mémorisation
Adressage indirect : *Arx (1)

 L’instruction contient un numéro de registre auxiliaire ARx qui


contient l’adresse en mémoire ou se trouve la donnée
 Analogue aux pointeurs en C
 Possibilité de modifier la valeur du registre

askri-t.jimdo.com 30
Unité de mémorisation
Adressage indirect : *Arx (2)

askri-t.jimdo.com 31

Vous aimerez peut-être aussi