Obligement - L'Amiga au maximum

Dimanche 26 septembre 2021 - 14:23  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

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

 · Articles in english


Twitter

Suivez-nous sur Twitter




Liste des 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,
ALL


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


Galeries

 · Menu des galeries

 · BD d'Amiga Spécial
 · Caricatures Dudai
 · Caricatures Jet d'ail
 · Diagrammes de Jay Miner
 · Images insolites
 · Fin de jeux (de A à E)
 · Fin de Jeux (de F à O)
 · Fin de jeux (de P à Z)
 · Galerie de Mike Dafunk
 · Logos d'Obligement
 · Pubs pour matériels
 · Systèmes d'exploitation
 · Trombinoscope Alchimie 7
 · Vidéos


Téléchargement

 · Documents
 · Jeux
 · Logiciels
 · Magazines
 · Divers


Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Logiciels
 · Jeux
 · Scène démo
 · Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Dossier : La genèse du DSP3210 sur Amiga
(Article écrit par Eric Lavitsky et extrait de www.a1k.org - juin 2021)


Eric Lavitsky fut responsable du développement logiciel du DSP3210 chez Commodore au début des années 1990. Il a publié deux messages fort intéressants sur www.a1k.org à propos de l'origine du DSP3210, puce spécialisée dans le traitement du signal qui devait intégrer le prototype Amiga 3000+ en 1991. Voici une traduction de ses propos.

eric_lavitsky
Eric Lavitsky

Au départ, un projet hobbyiste d'un ingénieur à Bell Labs

L'A3000+ était révolutionnaire pour son époque. Il avait la capacité de décharger le processeur des fonctions de synthèse/reconnaissance vocale, il avait un modem à haut débit, un codage d'images, etc. Il disposait de nombreuses applications dans le domaine scientifique.

Les origines du projet DSP3210 sur Amiga ont commencé avec un de mes amis qui était docteur à Bell Labs à Whippany, dans le New Jersey et qui faisait des recherches en acoustique sous-marine. Il voulait une accélération sur son Amiga chez lui afin de travailler sur son autre passe-temps : les mathématiques appliquées à l'astronomie et aux phénomènes atmosphériques. Il a commencé par câbler une carte utilisant l'AT&T DSP32C (le prédécesseur du DSP3210). Il m'a contacté pour faire passer le projet à l'étape suivante, et Jeff Porter de Commodore nous a aidés à faire un vrai schéma de carte et à produire quelques prototypes de circuits imprimés avec deux DSP32C pour prouver le concept.

DSP32C DSP3210
DSP32C et DSP3210

Commodore impressionné

Grâce à mes relations chez Bell Labs (j'avais travaillé à Murray Hill pendant plusieurs années), j'ai entamé des relations avec le groupe DSP d'AT&T, et j'ai finalement fait appel à Commodore, ce qui a donné lieu à une journée de démonstration pour Jeff Porter, Dave Haynie et moi-même. Tout le monde était tellement impressionné que Commodore a décidé d'intégrer le DSP3210 dans sa prochaine génération de cartes mères. Les perspectives étaient si prometteuses que Dave Haynie s'attendait à ce que ce type d'intégration fasse partie de la prochaine génération d'Amiga (projet "Acutiator"). J'ai été engagé pour faire le portage du logiciel, ce qui m'a ramené à Murray Hill, et nous avons fait une démonstration complète du système (sur l'A3000+ AA) lors du dernier Amiga DevCon à Orlando en 1993. Commodore était malheureusement déjà dans la spirale de la mort à cause d'une horrible gestion de ses dirigeants tant au niveau de l'entreprise que de l'ingénierie, et le travail sur le système Amiga s'est donc arrêté juste après.

Dave Haynie Jeff Porter
Dave Haynie et Jeff Porter

Une première utilisation professionnelle

À peu près à la même époque, certaines personnes d'ATL Ultrasound, une entreprise d'un milliard de dollars de la région de Seattle dans l'état de Washington, aimaient l'Amiga et voyaient le potentiel de l'utiliser comme un composant prêt à l'emploi autour duquel construire un système d'imagerie ultrasonore numérique à bas prix. Ils m'ont engagé pour porter le logiciel AT&T sur leur carte Zorro. Le système a finalement été approuvé par la Food and Drug Administration (NDLR : administration américaine des denrées alimentaires et des médicaments qui a le mandat d'autoriser la commercialisation des médicaments sur le territoire des États-Unis) et commercialisé à un prix révolutionnaire en tant que premier appareil à ultrasons entièrement numérique : l'ATL HDI-1000. Ils ont mis oeuvre leur propre formateur de faisceau en arséniure de gallium, et la carte DSP a été utilisée pour effectuer tout le traitement du signal des données en temps réel. Le système pouvait faire des ultrasons Doppler et suivre le flux sanguin de manière non invasive.

ALT HDI-1000 ALT HDI-1000
ATL HDI-1000 (vue extérieure et carte mère)

AT&T a fini par supprimer la série DSP3210, ainsi que le processeur Hobbit "CRISP", ce qui a mis tous ses clients dans la panade. Un important client OEM d'AT&T, Ariel Corp, a essayé de reprendre l'architecture et a embauché une partie du groupe d'AT&T, mais cela n'a jamais vu le jour (ils avaient même une spécification de conception appelée "X27"). Cela a tué la BeBox originale (je faisais aussi le portage pour eux), et finalement la ligne HDI-1000 est devenue orpheline quand Philips a acheté ATL.

Le DSP3210 dans l'A3000+ et la BeBox

L'A3000+ n'était qu'un prototype, et n'a jamais été terminé/commercialisé. Il a été fait avant que le 68040 et ses implications de cache soient un problème. L'implémentation que j'ai faite pour ATL était une implémentation complète du système VCOS (qui comprenait le noyau VCOS et la couche hôte VCAS) pour l'Amiga. Elle était déployée avec des 68040 et, en interne, nous passions aux 68060 pour le développement. Les sources (pilotes du DSP3210 pour AmigaOS) que j'ai données à Christian Krenner comprenaient tout le code qui était utilisé sur le HDI-1000 (regardez sous /VCOS/SRC/ATL/VE). La couche VE devait servir de modèle pour l'implémentation de la gestion bas niveau pour les AA3000/3000+.

Le DSP3210 était le successeur du DSP32C, tous deux développés par AT&T Microelectronics (la fonderie était à Allentown, PA). Le logiciel a été développé principalement à Bell Labs à Murray Hill, New Jersey et Holmdel, New Jersey. Bell Labs a été transformé en Lucent par AT&T (ce n'est pas Lucent qui a acheté AT&T) afin de pouvoir vendre des équipements à d'autres sociétés de télécommunications. Je travaillais sur l'intégration pour Commodore (j'ai fait l'introduction à Jeff Porter), et finalement j'ai été engagé par Be et quelques autres sociétés pour le travail d'intégration du DSP32xx. La BeBox originale avait deux processeurs AT&T Hobbit "CRISP" et trois DSP AT&T DSP3210 (les directeurs et ingénieurs principaux de Be venaient tous d'Apple, qui avait intégré le DSP3210 dans la ligne Quadro AV de Macintosh).

BeBox
La BeBox

J'ai également réalisé tout le développement et l'intégration du système d'imagerie par ultrasons ATL HDI-1000, qui était construit autour d'une carte mère d'Amiga 4000 avec une carte accélératrice 68060. Ce projet a démarré en 1993/1994, le développement s'est poursuivi jusqu'en 1997, et il a été lancé et vendu avec succès dans le monde entier par ATL et plus tard par Philips (qui a racheté ATL). C'était le premier système à ultrasons entièrement numérique. Les DSP ont été utilisés pour tout le traitement du signal de leur dispositif de faisceau personnalisé, qui a été implémenté en GaAs. Le système ATL utilisait deux DSP3210 sur une carte d'extension Zorro. Il y avait une conception pour une version avec six DSP du système avant que AT&T/Lucent ne détruise tout.

La mort du DSP3210

Carly Fiorina était une figure clé de Lucent et a joué un rôle déterminant dans sa création. Elle a fini par devenir présidente du secteur des produits grand public de Lucent en 1996. Sous sa direction, Lucent a mis fin à la ligne de produits DSP à virgule flottante, coupant l'herbe sous le pied de Be, Apple et de mes autres clients. Apple a mis fin à la ligne Quadro AV, Be est passé au PowerPC, et d'autres sociétés ont maintenu leurs produits tant qu'elles pouvaient s'approvisionner en DSP3210/3207 auprès de Lucent. C'était un comportement assez typique d'une grande entreprise comme AT&T/Lucent : développer une technologie de pointe, commencer à la lancer sur le marché, puis la supprimer lorsque vous vous rendez compte qu'elle ne vous rapportera pas les bénéfices indécents que vous pourriez réaliser avec une autre technologie. Beaucoup de bonnes technologies ont fini à l'abattoir dans les années 1990, non pas pour leurs mérites techniques, mais à cause d'intérêts commerciaux à courte vue (l'Amiga, par exemple). Elle est ensuite devenue PDG de Hewlett-Packard/Compaq, qui a connu son propre lot de problèmes sous sa direction.

Carly Fiorina
Carly Fiorina

Le DSP3210 n'était pas une architecture parfaite, mais il était à l'avant-garde pour l'époque et très "RISC". Le jeu d'instructions était simple et facile à coder une fois que vous aviez compris comment gérer le pipeline, les états d'attente, etc. Les DSP excellent dans les opérations de multiplication-accumulation à haute vitesse (entiers ou à virgule flottante), mais la véritable clé du DSP3210 était son noyau de contrôle RISC, son intégration d'entrées-sorties en série et sa capacité à partager un bus système avec d'autres processeurs (ou d'autres DSP). Les versions ultérieures de la puce (par exemple le DSP3207) ont supprimé les entrées-sorties en série de la puce pour réduire les coûts et promouvoir les entrées-sorties en série partagées dans les systèmes multi-DSP. Ce n'était que de la virgule flottante en simple précision, ce qui me frustrait car j'avais espéré que la société Pixar y porterait son moteur de rendu 3D Renderman, mais Pixar exigeait une double précision. J'ai même organisé une réunion au Siggraph (je ne me souviens plus si c'était en 1990 à Dallas ou en 1991 à Las Vegas) entre Henri Rubin de Commodore et Loren Carpenter de Pixar. Pixar était en fait intéressé par un portage générique sur le matériel Amiga de base, mais je suis sûr que Commodore a bâclé les négociations...

Henri Rubin Loren Carpenter
Henri Rubin et Loren Carpenter

X27, le successeur qui n'a pas existé

Un groupe d'ingénieurs de Lucent s'est retrouvé chez Ariel Corp, qui fabriquait des DSP et d'autres cartes d'entrées-sorties pour ISA, bus VME, etc. En 1997, ils ont présenté une proposition de conception pour un successeur du DSP3210 entièrement compatible au niveau du langage, appelé "X27", qui aurait été environ 10 fois plus performant (200 MIPS/400 MFlops à 100 MHz contre 20 MIPS/40 MFlops à 66 MHz) et évolutif. Les principaux ingénieurs venant de Bell Labs/AT&T Microelectronics dont je me souviens étaient Sam Stewart et John Lynch (ce dernier était le directeur du groupe DSP de Bell Labs et l'architecte principal de VCOS).

Utilisations sur Amiga

AT&T avait développé plusieurs modules pour le DSP3210 dans le cadre de VCOS, qui étaient disponibles pour fonctionner sur l'implémentation Amiga. Un décodeur audio MPEG niveau 2 était déjà fonctionnel et j'en ai fait la démonstration lors de l'Amiga DevCon 1993 à Orlando, en Floride. Notre plan était de faire du modem V.32bis une des options (et plus tard un modem 56K), ainsi que la synthèse et la reconnaissance vocale, le décodage JPEG (également en démonstration au DevCon d'Orlando). Mon bon ami Gary Murakami avait développé une implémentation complète d'un synthétiseur musical Roland SoundFont pour VCOS. Il fonctionnait sur un PC, et malheureusement nous n'avons jamais eu l'occasion de le porter sur Amiga.

Gary Murakami
Gary Murakami

Problème de cache avec les 68040/68060

En ce qui concerne le problème de cache de données du 68040/68060 avec le DSP3210, c'est normal. Lorsque le DSP3210 écrit dans la mémoire système, le processeur ne sait pas que les informations qui se trouvent dans son cache sont périmées. Le cache doit également être vidé lorsque des données/instructions sont mises à jour en mémoire pour être transmises au DSP afin de s'assurer qu'elles sont dans la mémoire système à laquelle le DSP peut accéder. Avec le noyau Exec de l'Amiga de l'époque, la seule façon de gérer cela était d'utiliser les appels CacheClearU() ou CacheClearE(), qui vidaient implicitement le cache de données avant d'accéder à la mémoire dans laquelle le DSP avait écrit. Cela n'était pas forcément très efficace, car dans certains cas, le cache de données était vidé plus que nécessaire.

J'avais demandé une fonctionnalité du système d'exploitation pour pouvoir marquer la mémoire sur les systèmes 68040/68060 comme non cachable lorsqu'elle était allouée à l'aide de la MMU (en utilisant un drapeau comme "MEMF_NOCACHE" à AllocMem()/AllocAbs()/AllocVec()/AllocVecPooled(), etc.). Il aurait pu être possible d'utiliser la fonction de surveillance du bus 68040/68060 pour invalider le cache, mais je ne suis pas sûr que cela ait jamais été géré par le matériel Amiga. Il aurait également pu être approprié d'utiliser CachePreDMA()/CachePostDMA(), mais je suis presque sûr que mon code n'utilisait pas ces fonctions. Certaines de ces fonctions n'ont peut-être pas été implémentées dans le logiciel A3000+ puisqu'il s'agissait d'une conception purement 68030 et que je n'ai pas eu à m'occuper des problèmes liés aux 68040/68060 jusqu'à ce que je commence à travailler sur le projet ATL après que Commodore ait connu sa chute finale.

Conclusion

Le DSP3210 aurait été un atout pour l'Amiga sur plusieurs points :
  • Il aurait adressé un des reproches fait à l'AGA à l'époque, le fait que Paula n'avait pas évolué. Le DSP3210 aurait ajouté 8 voies 16 bits supplémentaires.
  • Ce composant aurait aussi doté l'Amiga de capacités de calcul non négligeables pour son temps.
  • Il aurait augmenté nativement les possibilités multimédias de l'Amiga (MPEG2, JPEG, synthèse vocale, reconnaissance vocale), ou encore l'aurait doté d'un modem logiciel.
  • Enfin, l'Amiga aurait pu entrer sur de nouveaux marchés par des partenariats avec des sociétés tierces (l'ATL-HDI1000 est un exemple qui aurait pu en amener d'autres).
On ne peut que regretter que la direction de Commodore ait annulé la finalisation puis la commercialisation de l'Amiga 3000+. Ce premier Amiga de génération AGA devait initialement être commercialisé fin 1991 ou début 1992. Une décision discutable de plus.

Annexes : vidéos

Au début de l'année 2021, le bidouilleur anglais Wrangler a posté une vidéo avec les premiers essais d'un test plus visuel pour voir les performances du DSP. C'était testé par rapport à un 60860. Le DSP était en gros deux fois moins performant que la FPU du 68060.



Un mois plus tard, il a proposé une seconde vidéo avec une routine optimisée. Cette fois, il a modifié son programme pour faire fonctionner le DSP et le 68060 en parallèle. Là, le DSP est cinq fois plus rapide que la FPU du 68060.




[Retour en haut] / [Retour aux articles]