L' électron en mouvement   



Une Introduction aux DSP



2.2.2. L’accès à la mémoire


Outre l’opération MAC, une autre caractéristique des DSP est leurs capacités à réaliser plusieurs accès mémoire en un seul cycle. Ceci permet à un DSP de chercher en mémoire une instruction et ses données réalisant un MAC, et simultanément, d’y ranger le résultant du MAC précédent. Le gain de temps est évident. Toutefois, sur certains DSP basiques , ce type d’opération simultané est généralement limité à des instructions spéciales. Ces instructions utilisent un mode d’adressage restreint, c’est à dire ne portant que sur de la mémoire vive intégrée au DSP.


Les modes d’adressages des données sont un point particulier des DSP. Un DSP peut posséder plusieurs unités logiques de génération d’adresse, travaillant en parallèle avec la logique du cœur du DSP. Une unité logique de génération d’adresse est paramétrée une seule fois via les registres appropriés. Elle génère alors toute seule, en parallèle avec l’exécution d’une opération arithmétique, les adresses nécessaires à l’accès des données.


Ceci permet non seulement de réaliser les accès mémoires simultanés en seul cycle, comme décri plus haut, mais également d’incrémenter automatiquement les adresses générées. Ce mode d’adressage particulier, généralement appelé adressage indirect par registre avec post (ou pré) incrément, est très utilisé pour effectuer des calculs répétitifs sur une série de données rangées séquentiellement en mémoire.


Si l’on ajoute la possibilité de générer ces adresses selon un modulo paramétrable, ce mode d’adressage devient circulaire, et permet donc de créer des buffers circulaires en mémoire. L’adressage circulaire indirecte (parfois également indexé) par registre avec post (ou pré) incrément prends toute son importance quand il est utilisé pour accéder aux opérandes d’un MAC.


L’exemple suivant met en évidence l’intérêt d’un tel mode d’accès à la mémoire. Prenons le cas classique d’un filtre RIF à N coefficients, dont l’équation est de la forme :


y(n) = a0*x(n) + a1*x(n-1) + a2*x(n-2) + ... + aN-1*x(n-N-1)


Nous constatons la présence implicite des éléments suivants :



Voici l’implémentation (figures 3 et 4) de ce filtre dans un DSP TMS320C30 de la gamme Texas Instruments (Source [2], page 5-28) :



Texas Instruments propose le programme assembleur suivant :



La structure du filtre RIF est réalisé avec seulement 10 instructions (initialisations non comprises). C’est l’exemple typique de l’adaptation des capacités d’un DSP à un algorithme particulier du traitement numérique du signal.




Page Principale       Index Global du Site       Page precedente       Page Superieure       Page Suivante

Page Principale    Index Site   Page Précédente   Page Supérieure   Page Suivante

Site créé et maintenu par laurent.battista@laposte.net

© 1998 - 2005 - Laurent Battista