Participants : Fabien Quilleré,
Patrice Quinton, Sanjay Rajopadhye, Tanguy Risset
[correspondant].
Mots clés : synthèse d'architecture,
CAO, ASIC, programmation fonctionnelle, parallélisme de
données, parallélisation automatique .
Résumé :
Le logiciel MMAlpha est une plate-forme
écrite en Mathematica et C permettant de manipuler des
programmes Alpha dans le double but de générer soit des
architectures régulières à partir de spécifications de haut
niveau, soit du code pour des machines programmables. Les
techniques utilisées sont celles de la parallélisation
automatique et de synthèse de réseaux systoliques.
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
s'appuie sur une bibliothèque écrite en C.
Le noyau de ce logiciel est la bibliothèque polyédrique
développée par Hervé Le Verge et Doran Wilde [Wil93]. La bibliothèque 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 bibliothèque. Cette
bibliothèque 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
bibliothèque 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ée par MMAlpha.Ceci 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/cosi/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 utilisé par quelques équipes de recherche dans le cadre
de collaborations avec Cosi. 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.
MMAlpha est actuellement utilisé à Oxford
(Oxford University Computing Laboratory), à Trois Rivières
(Departement de génie éléctrique de l'université du Quebec à
Trois Rivières) et à Calcutta (Indian Statistical
Institute).