Obligement - L'Amiga au maximum

Mardi 21 novembre 2017 - 07:26  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Dossier : Le DSP (Digital Signal Processor)
(Article écrit par Nicolas Fournel et extrait d'Amiga News - novembre 1992)


La nouvelle génération d'ordinateurs personnels use grandement de petites boîtes noires que l'on appelle les DSP.
  • Le NeXT par exemple fait depuis longtemps confiance à son DSP (normal, entre boîtes noires on se comprend) pour ses applications de communication, d'audio numérique et même de graphisme.

  • De son côté, le Falcon d'Atari dispose d'un convertisseur 16 bits couplé à un DSP, de quoi séduire les musiciens, fidèles de la marque.

  • Chez Apple enfin, on a longtemps louché vers la solution DSP pour le Quadra et l'histoire ne devrait pas en rester là (à l'origine le petit micro livré avec les Quadra était censé servir, couplé à un DSP, à faire de la reconnaissance vocale).
Et sur Amiga, qu'en est-il ?

Longtemps espéré avec l'A4000, nous savons maintenant qu'il nous faudra attendre un peu plus longtemps pour jouer aux apprentis sorciers avec l'un de ces fabuleux circuits. Voici tout de même, en guise de hors-d'oeuvre, quelques caractéristiques générales des DSP et une comparaison entre le 56001 de Motorola, véritable "best seller", et celui qui a bien failli se retrouver dans votre A4000, à savoir le 3210 d'AT&T.

Des super puces

Mais au fait, qu'est-ce que cela signifie, DSP ? Tout simplement "Digital Signal Processor", ou, en français dans le texte, processeur de traitement du signal numérique. Il faut savoir en effet que les microprocesseurs classiques, qu'ils soient CISC ou RISC, restent inadaptés au traitement du signal. Les DSP permettent de calculer un nombre important d'opérations mathématiques, souvent répétitives, et de traiter des données en temps réel. Ils remplacent désormais dans de nombreux domaines des solutions analogiques qui n'étaient pas sans problèmes (vieillissement des composants, nombreux réglages manuels nécessaires, etc.).

Attention, un DSP ne permet pas de remplacer à lui tout seul un système analogique entier : il faut lui adjoindre des convertisseurs analogiques-numériques et numériques-analogiques pour acquérir et restituer les informations, ainsi que des mémoires rapides. Le coût ou la non disponibilité de tels circuits, associé au fait que les constructeurs de machines ne sont pas tous des spécialistes du traitement du signal -c'est pourquoi la disponibilité de bibliothèques de programmes pour un DSP est très importante, nous en reparlerons plus bas- a longtemps freiné l'évolution des processeurs de traitement du signal.

Architecture interne à bus multiple

Voyons maintenant plus précisément en quoi l'architecture d'un DSP diffère de celle d'un processeur classique et pourquoi le DSP est-il plus apte à faire du traitement de signal. Afin de satisfaire aux impératifs du temps réel, les DSP doivent pouvoir effectuer des transferts en mémoire rapidement, c'est pourquoi ils sont dotés d'une architecture interne à bus multiples, leur permettant d'accéder en parallèle aux mémoires de programme et de données (architecture de type Harvard).

Une architecture à différentes zones mémoire permet par exemple, si l'on dispose de deux espaces X et Y (par exemple deux mémoires distinctes à l'intérieur du DSP), de diviser les données en espaces X et Y correspondant aux coordonnées d'un point dans les applications graphiques et de traitement numérique de l'image, en espaces de données et de coefficients dans les sommes de convolution, en espaces réel et imaginaire dans le cas de l'arithmétique complexe (transformées de Fourier, calculs de filtres), etc.

Un DSP intègre généralement beaucoup d'autres choses, outre la mémoire interne, comme des ports d'entrées-sorties et des ports séries, des contrôleurs DMA, des interruptions vectorisées liés rapides (jusqu'à deux millions d'interruptions par seconde pour le 3210 d'AT&T). La puissance d'un DSP en termes de MIPS est bien évidemment impressionnante : jusqu'à 20 MIPS pour un 56001 de Motorola cadencé à 40 MHz par exemple.

Quant à l'aptitude du DSP à faire du traitement du signal, elle provient tout simplement d'instructions et de modes d'adressage spéciaux : par exemple, un DSP comporte généralement une instruction dite de "multiplication-accumulation" qui s'avère particulièrement utile lors du calcul d'un filtre, ou bien encore un mode d'adressage spécial, appelé "Bit Reversed Carry", qui n'est utile pratiquement que lors du calcul d'une transformée de Fourier (pour "désembrouiller" les valeurs retournées par la transformée pour les connaisseurs).

De plus, comme le processeur est appelé à utiliser de nombreuses boucles imbriquées lors du traitement des algorithmes mathématiques, une boucle matérielle est souvent câblée.

Dernier exemple, les DSP sont capables d'appliquer les lois A et Mu, utilisées en téléphonie, en synthèse vocale, etc., que ce soit à l'aide d'une table précalculée située en ROM comme dans le cas du 56001 de Motorola, où à l'aide d'une fonction dédiée comme avec le 3210 d'AT&T.

Mais pour quoi faire ?

A quoi cette débauche de puissance peut-elle bien nous servir ? Voici les principaux domaines d'application des DSP (en fait on en trouve désormais partout !) avec quelques exemples concrets :
  • Télécommunications : messagerie vocale, videophone, réception satellite...
  • Transmission des données : modems, fax couleurs, cryptage/décryptage...
  • Audio numérique : synthétiseurs, effets, compression, filtrage, égalisation, DAT professionnels...
  • Industrie : contrôle et asservissement de moteurs, robotique, reconnaissance des formes, analyse de vibrations...
  • Médecine : imagerie médicale, traitement des ultrasons...
  • Instrumentation : analyseur de spectre, générateur de fonctions de haute qualité...
  • Militaire : sonars, radars, traitement d'images...
  • Et bien sûr en informatique personnelle, où les applications sont légions : accélération du calcul mathématique, graphiques 2D et 3D et traitement d'image, audio numérique, reconnaissance vocale...
Ce ne sont que quelques exemples, car les applications sont aussi nombreuses que variées, du détecteur de radar à la reconnaissance d'empreintes digitales...

Le DSP 56001 de Motorola

Le DSP 56001 s'est rapidement imposé comme le standard de facto en ce qui concerne les applications audio numériques (ceci est dû en partie au fait qu'il a été le premier processeur de traitement du signal bon marché 24 bits, condition nécessaire pour traiter les données audio sur 16 bits tout en évitant les erreurs de dépassement de capacité (overflow) lors des calculs).

DSP 56001

DSP 56001

En plus de le retrouver dans le NeXT et dans le Falcon d'Atari, il est donc possible de le voir à l'oeuvre dans bon nombre de cartes dédiées à l'audio, comme la Sound Accelerator, l'Audiomedia, etc. de chez DigiDesign pour Mac, la carte direct-to-disk ADC16 de SunRize Industries pour Amiga ou encore certains multi-effets. Mais ne nous méprenons pas, le 56001 est à l'aise dans tous les domaines propres aux DSP. De plus, il dispose de très bons ports d'entrées-sorties, ce qui l'a, entre autres, fait choisir pour la station musicale de l'IRCAM où il joue le rôle d'interface entre des cartes à base de 1860 Intel.

Un des atouts du DSP 56001 est qu'il peut s'interfacer relativement facilement avec les microprocesseurs de la famille 680x0 puisque l'on reste chez le même constructeur. De plus, suite au succès des processeurs de la famille 56000, Motorola a développé une série de circuits orientés "traitement du signal" et qui peuvent s'interfacer directement avec le 56001 : en particulier un convertisseur analogique-numérique, le 56ADC16, et un filtre programmable, le 56200. Plus récemment sont sortis le 56401, un codeur AES/EBU, et des mémoires SRAM rapides, les MCM 56284 (8k x 24 bits).

Le 56001 en lui-même est un DSP 24 bits à virgule fixe qui comporte deux espaces mémoires indépendants, deux unités de calcul des adresses (acceptant des arithmétiques spéciales telles que le modulo, ou le Bit Reversed Carry), et une unité arithmétique et logique contenant deux accumulateurs de 56 bits (par concaténation de deux registres 24 bits et d'un registre 8 bits). A cela viennent s'ajouter de nombreuses entrées-sorties : port d'extension, port d'entrées-sorties d'usage général, interface avec un processeur hôte ou un contrôleur DMA, interfaces séries (SCI et SSI).

Du point de vue des mémoires, les deux mémoires vives internes ont une capacité de 256 mots de 24 bits chacune, et les deux ROM également (elles contiennent le programme de lancement, une table détaillée des sinus, et les tables des lois A et Mu). L'espace d'adressage externe couvre, quant à lui, 128K mots de 24 bits pour les données et 64K mots de 24 bits pour les programmes.

Juste pour avoir une idée des performances du 56001 (et des DSP en général, qui permettent tous ce genre de choses), finissons ce paragraphe en examinant la commande suivante:

MAC -X0,Y0,A X:(R0)+,X0 Y:(R4)-N4,Y0

Elle opère, dans cet ordre, la multiplication de -X0 par Y0 et l'addition du résultat à l'accumulateur A, le chargement du registre X0 avec la valeur contenue à l'adresse R0 du plan mémoire X et l'incrémentation du pointeur R0, le chargement du registre Y0 avec la valeur contenue à l'adresse R4 du plan mémoire Y et enfin la décrémentation (de la valeur de N4) du pointeur R4. Le tout est codé en une seule instruction de 24 bits et exécuté en un seul cycle horloge (ce qui correspond à 75 ns sur un 56001 cadencé à 27 MHz ou 50 ns sur un 56001 à 40 MHz) ! C'est un bon exemple de la compacité et de l'efficacité du code 56001...

Le DSP 3210 d'AT&T

Le 3210 d'AT&T était le DSP choisi par Commodore pour équiper l'A4000 (c'est raté pour lui, mais peut-être pas pour la prochaine machine...). Il est beaucoup moins connu que le 56001 de Motorola mais n'en demeure pas moins plus puissant. Il s'agit en effet d'un processeur de traitement du signal sur 32 bits et à virgule flottante (ce qui n'est jamais une tare lorsqu'on prétend faire des calculs mathématiques) et qui peut monter jusqu'à 33 Mflops, cadencé à 66,7 MHz.

De ce point de vue, si on devait le comparer à son équivalent chez Motorola, on irait plutôt voir du côté du DSP 96002, qui est lui aussi un DSP à virgule flottante sur 32 bits, que du côté du DSP 56001.

En fait, son gros point faible n'est pas technique : c'est de ne pas être aussi répandu que le 56001, pour lequel nombre de bibliothèques de routines circulent, et qui est facilement interfaçable avec la famille 68000. Le 3210 nécessitera sans doute un investissement intellectuel supérieur de la part des développeurs de logiciels comme de matériels (et comme il faut bien payer les techniciens pendant qu'ils cherchent, cela peut se ressentir plus ou moins sur le prix des applications).

Plus précisément, à quoi ressemble-t-il ce 3210 ?

Comme nous l'avons vu, c'est un processeur 32 bits à virgule flottante (format IEEE 754) : l'avantage par rapport à un processeur à virgule fixe est évident. Notons par contre que les 32 bits autorisent une dynamique très importante. Les deux unités principales du DSP -on trouve en plus les mémoires, le gestionnaire de bus, le contrôleur DMA et les périphériques- sont l'unité arithmétique du contrôle (CAU) et l'unité arithmétique des données (DAU).

La CAU s'occupe du calcul d'adresses, des opérations de branchement, et des opérations logiques et arithmétiques sur des entiers 16 ou 32 bits. La DAU contient un multiplicateur sur 32 bits, un additionneur sur 40 bits et quatre accumulateurs en virgule flottante sur 40 bits. Le multiplicateur et l'additionneur opèrent en parallèle et peuvent exécuter 12,5 millions d'opérations du type "a=b+c*d" par seconde. La DAU contient un pipeline à quatre étages. Elle permet aussi de convertir des données de différents types (entier 16/32 bits, 8 bits non signés, lois A et Mu, etc.).

La mémoire interne du 3210 d'AT&T a une capacité de 2048 mots de 32 bits. Ce DSP dispose, à l'instar du 56001, d'entrées-sorties particulièrement performantes :
  • Un port 8 bits pour s'interfacer avec d'autres processeurs bien sûr.
  • Un port série extrêmement rapide (jusqu'à 25 Mbits/seconde), permettant d'effectuer des transferts sous contrôle DMA, sans intervention du processeur.
Le 3210 contient également une horloge 32 bits et dispose d'une structure d'interruptions vectorisées avec sauvegarde du contexte matériel (jusqu'à 2 millions d'interruptions par seconde).

Et l'Amiga dans tout cela ?

Nous venons de survoler rapidement les DSP 56001 de Motorola et 3210 d'AT&T. Lequel pour l'Amiga ? L'un est un best-seller désormais bien maîtrisé par les gens qui développent dans ce domaine, l'autre est plus puissant mais moins répandu. Un bon compromis entre les deux serait sans doute le DSP 96002 de Motorola : compatible sur bien des points avec le 56001 et le reste de la gamme Motorola, il ne dérouterait pas les développeurs de logiciels et de matériels, et, d'une puissance comparable au 3210 d'AT&T, il ne pourrait que combler l'utilisateur final.

Il faut savoir qu'une fois le DSP choisi et monté sur la carte mère, le travail de Commodore ne s'arrête pas là. Il faut, d'une part intégrer le DSP dans le système : cela se fera sans doute sur Amiga en trois temps : programmation d'une "ressource" pour les accès bas niveau au matériel, d'un "device" pour le contrôle des opérations et enfin d'une "library".

D'autre part, il faut fournir des outils de développement appropriés aux développeurs : assembleur, compilateur C, éditeur de lien, optimiseur de code, etc. sachant que ce travail, qui est réalisé par le constructeur du processeur pour certaines plates-formes de développement, ne le sera sans doute pas pour Amiga. Par exemple, dans le cas du 56001, Motorola diffuse des assembleurs pour NeXT, Mac, PC, Sun 3 et Sun 4 mais pas pour notre machine.

L'homologation

A ces préoccupations purement scientifiques viennent s'ajouter des problèmes de licence et d'homologation. Il faut savoir par exemple qu'en France, le fait qu'un DSP puisse émuler un modem, forcerait Commodore à faire homologuer sa machine auprès de France Télécom, ce qui aurait des conséquences désastreuses sur le prix de la dite machine.


[Retour en haut] / [Retour aux articles]