Conservatoire national des arts et métiers
Architectures des systèmes informatiques
CHAPITRE 13
Les processeurs de traitement du signal
Année 2002-2003

13.0 PRÉSENTATION

Ce chapitre fait le deuxième lien avec la partie relative au traitement du signal du cours d'architectures parallèles. Il est matière à lecture dans le cours d'architectures des systèmes informatiques. Il n'a pas de questionnaires.

DSP (digital signal processor) est écrit dans la suite pour processeur de traitement du signal.

L'auteur est grandement redevable à M. Gérard Blanchet de l'Ecole Nationale Supérieure des télécommunications pour plusieurs paragraphes de ce chapitre inspirés de : http://tsi.enst.fr:80/~blanchet/.

Ce chapitre contient :
13.1 quelques mots sur l'histoire des DSP;
13.2 pourquoi des DSP;
13.3 évolution des architectures des processeurs;
13.4 les processeurs pour le traitement du signal;
13.5 quelques exemples de caractéristiques;
13.6 des systèmes pour le traitement du signal;
13.7 les techniques d'évaluation.

Les processeurs de traitement du signal diffèrent des processeurs généraux déjà présentés dans le chapitre 2 par plusieurs caractères architecturaux.

13.1. QUELQUES MOTS D'HISTOIRE EN GUISE D'INTRODUCTION

Les mini ordinateurs industriels apparaissent pendant les années 1960. Le plus grand constructeur est Digital equipment avec la série des PDP, PDP 6, 8 (en 1965, processeur 12 bits, cycle de 1.5 microsecondes, 4Kmots de 12 bits de mémoire en tores de ferrite, ai prix de 18000 $) et 11 qui sont des miniordinateurs. IBM vend les IBM 1800 (1965). En France, on produit les Solar de Télémécanique, les Multi 6 et Multi 8 d'Intertechnique, les Mitra 15, 25, 45 de la CII. Parmi les premiers microprocesseurs des années 1970, le F8 de Fairchild, certains Mostek, le 8085 d'Intel et d'autres sont à usage industriel. Ils ne sont pourtant pas spécialisés dans le traitement du signal. On utilise parfois la microprogrammabilité. C'est le cas du Multi 6 et des microprocesseurs en tranches AMD2900. Une version du Multi 6 fait la transformation de Fourier en une seule instruction. Une autre version est un gestionnaire de base de données.

Les processeurs de traitement du signal sont issus des techniques de microprocesseurs. L'expression DSP apparaît en 1982 pour le TMS 32010 de Texas Instruments qui est présenté comme un processeur pour modem.

L'unité de calcul en virgule flottante apparaît dans le TMS320C3x en 1988 (technique Cmos). Le premier DSP conçu pour le parallélisme architectural est le TMSC320C4x en 1990.

Les DSP offrent actuellement de façon courante plus de 100 Mips pour des prix qui vont de 5 à 100 dollars pièce. Ils sont employés dans des systèmes divers dans la nature et les utilisations.
Ils sont placés dans une échelle générale où l'on repère :

13.2. POURQUOI DES DSP

Le traitement numérique du signal consiste à appliquer des opérations de calcul à des signaux numérisés. Eux mêmes sont des échantillons de signaux physiques, soit binaires par nature soit convertis en nombres. Les techniques analogiques ont pratiquement partout cédé le pas aux techniques numériques.

On les trouve sous les formes de :

Les domaines d'emploi sont en partie ceux qui ont été énumérés pour le calcul parallèle : Dans tous ces domaines de traitement, on trouve : Ces travaux sont le plus souvent des calculs très répétitifs caractérisés par : Les critères d'emploi sont comme dans beaucoup d'autres activités : La séquence générale d'un traitement numérique du signal est la suivante:

Schéma de principe de la chaîne de traitement

Selon la fréquence du phénomène et les traitements requis, ceux-ci peuvent être faits dans :

Attention : dans ce qui suit, la partie de restitution est optionnelle.

Les trois configurations de base habituelles sont les suivantes:

La carte contient les convertisseurs et les filtres antirepliement et de restitution. Elle est installée dans un ordinateur hôte chargé des traitements et du pilotage des acquisitions et restitutions. Elle convient pour des débits faibles, fréquences de quelques milliers de Hz. La limite est celle de la bande passante du bus hôte.

La communication avec la machine hôte est faite via des registres ou des files d'attentes. Les transferts sont faits par interrogation (polling), sous interruptions ou par accès direct à la mémoire (direct memory access). Les logiques d'acquisition et de restitution est câblée.


Configuration d'une carte simple d'acquisition/restitution
Pour des traitements plus complexes, on utilise un processeur de traitement du signal, le plus souvent est placé sur une carte prévue pour une classe d'ordinateurs hôtes. Elle est insérée sur un bus. L'hôte charge la carte avec le programme de traitement, l'alimente en paramètres, par exemple les coefficients d'un filtre numérique, et stocke les signaux.

Le bus de liaison est l'interface entre l'hôte et la carte.

Configuration avec un processeur de traitement du signal

Ces processeurs de traitement du signal ont des caractéristiques de microprocesseurs de haut de gamme (architecture de Harvard, caches, structure pipe-line) et spécifiques (jeu d'instructions adapté aux calculs de convolutions, de transformées de Fourier rapides, de traitements 2D par exemple).

Le processeur est attaché au processeur hôte comme le serait un coprocesseur.

C'est le domaine des circuits spécialisés en logique câblée avec circuit de calcul de TFR, des tableaux systoliques, des réseaux de processeurs. La partie acquisition et restitution peut être placée sur la carte qui porte le processeur ou sur une carte indépendante. Ces deux cartes sont ou non reliées directement.


Configuration avec un processeur dédié

13.3. ÉVOLUTION DES ARCHITECTURES DES MICROPROCESSEURS

Ce paragraphe a été rédigé pour que le chapitre soit compréhensible par lui-même. Il fait double emploi avec d'autres.

Au début des années 1970, les techniques présentes dans les microprocesseurs actuels existaient déjà dans les processeurs des grandes machines, mémoire virtuelle, mémoire cache, pipeline, etc. Les efforts de conception ont porté sur l'insertion de ces techniques dans les microprocesseurs, rendue possible par l'augmentation de la densité d'intégration. Il faut cependant noter que les contraintes économiques ont parfois été plus fortes que les contraintes techniques et ont pu freiner quelque peu l'introduction de ces techniques. Ainsi les 8086 et i432 d'Intel sont contemporains. Le second, plus difficile à mettre en œuvre et plus cher a été peu vendu bien qu'ayant de meilleures performances. Ce n'est cependant pas toujours le cas : ainsi la diffusion des caractéristiques de l'architecture SPARC a largement favorisé son utilisation. Les besoins exprimés par le marché ont un grand rôle dans le développement des machines. On trouve ainsi des machines conçues pour le traitement du signal, des architectures adaptées à l'interprétation de langages particuliers ou à la mise en œuvre de systèmes d'exploitation tel que Unix.

Les premiers microprocesseurs sont dotés d'une unité arithmétique réduite à l'addition entière et leur jeu d'instruction est petit. Le code d'opération est sur un octet. On ne dispose que d'un accumulateur 8 bits. L'adressage est fait sur 16 bits avec indirection par un registre que l'on peut incrémenter ou décrémenter. Quelques instructions de rupture de séquence et de comparaison complètent le tableau. Cette description sommaire correspond à peu près au microprocesseur 6502 de Mostek (utilisé sur les Apple II, PET de Commodore). Il contient moins de 10 000 transistors. Les premières améliorations portent sur la technique d'augmentation du nombre de transistors. Les registres, plus nombreux, ont 16 bits. Les multiplication et division entières sont câblées. L'adressage de la mémoire est fait par octets ou par mots. La taille de la mémoire directement adressable reste faible. Elle est étendue par la segmentation. L'architecture du microprocesseur Intel 8086 donne une bonne idée de cette famille de machines. Le 8086 contient environ 30000 transistors. D'autres architectures 16 bits ont cependant précédé le 8086. C'est le cas du 9900 de Texas Instruments doté d'une architecture originale. Il n'a pas de registre de travail mais un registre d'espace de travail qui donne l'adresse d'une zone de mémoire considérée par le processeur comme un jeu de 16 registres. C'est aussi le cas du Zilog 8000 et plus anciennement des processeurs en tranches, tranches de 4 bits pour le NS IMP16. Les améliorations suivantes tendent à augmenter la bande passante du bus et la taille de la mémoire. Un seul Mo de mémoire est encore trop peu pour un programme écrit en langage évolué. On introduit plus de registres (16 est une valeur courante), on les banalise pour éviter l'embouteillage autour d'un seul accumulateur. On généralise les registres de 32 bits. Les instructions deviennent plus complexes. L'utilisation de la microprogrammation devient obligatoire à cause de cette complexité. Le Motorola M68000 représente cette génération avec 70 000 transistors en 1980.

Les évolutions ultérieures seront apportées par toujours plus de transistors : l'adressage monte à 32 bits ainsi que la taille des registres. La gestion de la mémoire par unité de gestion de mémoire UGM (memory management unit ou MMU) d'abord réalisée dans une puce séparée, est intégrée dans le processeur. Il en est de même du coprocesseur de virgule flottante et d'un ou deux caches.

Les processeurs deviennent ainsi de plus en plus complexes et leur jeu d'instructions croît considérablement ainsi que les variantes d'adressage. Dans le même temps, des études statistiques sur les programmes les plus souvent utilisés, sur les habitudes des programmeurs et sur les caractéristiques des compilateurs montrent que le jeu d'instructions est peu ou mal utilisé. La règle empirique du 80/20 tend vers 90/10, 90% des traitements sont faits par 10% des instructions du jeu. On sait aussi que l'on compile aisément des langages en utilisant un langage intermédiaire, représentatif d'une machine virtuelle. Ce langage, nommé p pour Pascal ou m pour Modula, a environ une cinquantaine d'instructions. C'était aussi le nombre d'instructions des tous premiers ordinateurs à un accumulateur (47 dans la CAB 500 de 1953).

Il apparaît donc qu'on peut sans inconvénient limiter le nombre d'instructions, utilisant les ressources libérées pour améliorer la qualité du séquencement et augmenter le nombre des registres. De là naissent les machines à jeu d'instruction réduit ou RISC (Reduced Instruction Set Computer) par opposition aux processeurs que l'on a dotées d'instructions complexes ou machines CISC (Complex Instruction Set Computer). De plus, des langages tels que C utilisent beaucoup les appels aux fonctions. Le rapport entre le nombre de sauvegardes dans la pile et les exécutions utiles devient important. On pourra utiliser pour lui, la technique des fenêtres de registres. Les autres modifications portent sur les points suivants :

Le rôle du compilateur devient primordial pour limiter les divers conflits qui apparaissent dans l'exécution des séquences d'instructions. Les processeurs sont dotés de moyens de communication. On inscrit des instructions pour la synchronisation de processus, le passage de messages, la prise en compte d'événements externes dans le microcode des CISC.

D'une manière générale on peut dire que les performances sont plus faciles à obtenir avec la technique RISC. Par contre les machines CISC offrent un jeu d'instructions facilitant en principe la vie des programmeurs bien que l'écriture de grands logiciels en langage d'assemblage ait disparu. Au bénéfice du CISC, il y a la nécessaire compatibilité entre processeurs successifs pour rentabiliser les investissements en écriture des logiciels. Au passif des CISC il y a le test coûteux des processeurs. Les dernières générations de processeurs contiennent plusieurs millions de transistors. On conçoit aisément que certains produits commercialisés ont encore des bogues.

On note toutefois que les techniques RISC et CISC ont une tendance forte à converger, que les mêmes fabricants proposent ces deux types de processeurs et que certains processeurs sont des CISC sur base RISC.

CE FICHIER N'A PAS DE QUESTIONNAIRE

Conservatoire national des arts et métiers
Architectures des systèmes informatiques
CHAPITRE 13
Les processeurs de traitement du signal
Année 2002-2003