Mots clés : synthèse d'architecture, CAO, ASIC, programmation fonctionnelle, parallélisme de données, parallélisation automatique .
MMAlpha est un logiciel qui implémente des transformations sur le langage Alpha. Le langage Alpha a été proposé par Christophe Mauras lors de sa thèse en 1989 [Mau89]. L'implémentation est écrite dans les langages Mathematica (d'où le nom MMAlpha) et sur une bibliothèque écrite en C. Le noyau de ce logiciel est la librairie polyédrique développée par Hervé Le Verge et Doran Wilde [Wil93]. La librairie polyédrique permet la manipulation de polyèdres et de fonctions affines. La manipulation des domaines utilisés dans les équations récurrentes ou des espaces d'indices décrits par les boucles imbriquées justifie l'emploi d'une telle librairie. Cette librairie est actuellement utilisée (indépendamment de MMAlpha) par plusieurs organismes de recherche (en Angleterre, États Unis, ainsi qu'en France). Les transformations de programmes Alpha sont implémentées en utilisant les possibilités de Mathematica et de la librairie polyédrique. Le principe d'utilisation de ces transformations est de dériver soit une architecture soit du code séquentiel ou parallèle à partir d'une spécification algorithmique d'un traitement. Ces transformations sont semi-automatiques, c'est à dire que les actions à effectuer sont indiquées par l'utilisateur mais la transformation elle-même est exécuté par MMAlpha, ce qui permet de limiter les erreurs lors de la manipulation manuelle de programmes. Il est possible d'effectuer une dérivation automatique par défaut mais l'expérience montre que l'espace de conception est si important que cela est rarement satisfaisant. La méthodologie de conception est héritée de la méthode de synthèse de réseaux systoliques, ce domaine a été longuement étudié du point de vue théorique et l'environnement MMAlpha permet de tester les différentes stratégies de synthèse existantes, d'étudier différentes possibilités de parallélisation et de générer une description architecturale d'un circuit grâce au format Alphard (sous-ensemble du langage Alpha). La communication avec les outils de synthèse logique se fait grâce à une traduction automatique du format Alphard vers VHDL. Le logiciel MMAlpha (http://www.irisa.fr/api/ALPHA/, correspondant : risset@irisa.fr) est déposé à l'association de protection des programmes, et a été mis sous licence GNU. Il a été le support d'implémentation de nombreuses thèses réalisées à l'Irisa. Il est distribué à quelques équipes de recherche dans le cadre de collaborations précises. Actuellement c'est un des seuls outils permettant de décrire un algorithme et son implémentation matérielle dans le même langage et de déduire cette implémentation avec des transformations sûres.