previous up next contents
Précédent : Synthèse d'architectures parallèles Remonter : Synthèse d'architectures parallèles Suivant : CAO pour des

Alpha et la synthèse d'architectures régulières

Mots clefs : synthèse d'architecture, CAO, ASIC Participants : Catherine Dezan , Florent Dupont de Dinechin , Patricia Le Moënner , Patrice Quinton , Sanjay Rajopadhye , Tanguy Risset , Doran Wilde

Notre effort est concentré sur le développement d'un logiciel pour la synthèse d'architectures régulières -- notamment systoliques -- par transformations interactives. Le langage Alpha est la base de ce logiciel. Il autorise à la fois l'expression d'un algorithme parallèle régulier, et la description d'une architecture synchrone qui en supporte l'exécution.

Nos recherches en 1995 ont porté sur les aspects suivants :

La méthodologie ``classique'' de synthèse de réseaux systoliques est restreinte aux réseaux synchronisés par une horloge unique. Les circuits multi-horloges sont pourtant fréquemment rencontrés et leur modélisation est difficile. En outre, le lien entre Alpha et Signal, qui est un des objectifs à long terme de nos recherches, passe par une extension de Alpha à des systèmes multi-horloges. En collaboration avec Patrick Lenders -- professeur à l'université de Nouvelle Angleterre, (Australie) -- une extension de la méthode de synthèse de réseaux systoliques a été proposée. La présentation de ces recherches a obtenu le prix du meilleur article lors de la conférence Asap 95 [13]. Par ailleurs, une restriction de Alpha à des expressions dont le premier indice représente une horloge périodique a été étudiée dans le cadre d'un stage de DEA. Le lien entre ce type d'expression et le modèle flot de données synchrones Signal a été établi.

La définition du langage Alpha inclut une notion de sous-système insuffisante pour représenter la modularité telle qu'elle est souhaitable au cours de la synthèse. La notion de sous-système a donc été revue et étendue [10]. La forme choisie permet d'effectuer de façon simple une extension polymorphe des sous-systèmes: on peut par exemple facilement exprimer un produit de matrice à l'aide d'un sous-système effectuant le produit scalaire de deux vecteurs. La sémantique de cette extension de Alpha a été définie et l'extension des transformations de l'environnement MMAlpha à ce nouveau constructeur est en cours d'achèvement.

Cette nouvelle forme de structuration a permis de définir un sous-ensemble appelé AlpHard permettant une description hiérarchisée d'une architecture en vue de la synthèse d'un circuit. AlpHard fait apparaître clairement les cellules élémentaires et leur assemblage régulier, ainsi que le contrôle du réseau. Il autorise aussi la représentation de réseaux hétérogènes. Un traducteur de AlpHard vers le langage de description de circuits VHDL est en cours de réalisation. Ce traducteur permettra de synthétiser des circuits par l'intermédiaire d'outils commerciaux (Compass ou Synopsys par exemple).

Une étude a été menée lors d'un stage de DEA sur les techniques d'ordonnancement cyclique -- techniques développées par la communauté scientifique de parallélisation automatique --, ainsi que sur leurs éventuelles extensions vers un ordonnancement avec contraintes de ressources. L'ordonnancement est une étape importante du processus de synthèse puisque la notion de temps n'est pas présente dans la sémantique originale d'Alpha . L'implémentation d'une de ces méthodes est en cours de réalisation : elle permettra d'avoir un outil d'ordonnancement souple et puissant pour les programmes Alpha .

Le traducteur de Alpha vers le langage C a ouvert des voies de recherche intéressantes. Pour simuler et déboguer des applications écrites en Alpha , il faut pouvoir disposer d'un générateur de code efficace. En 1995, trois études sur ce sujet ont été réalisées. L'une avait trait à la génération d'un code séquentiel optimisant la réutilisation de la mémoire [21], problème important car Alpha est un langage à assignation unique. L'autre propose un générateur de code pour une machine à mémoire distribuée prenant en compte l'ordonnancement calculé dans MMAlpha . Enfin, l'optimisation du partitionnement des données sur machine à mémoire distribuée [15], et la synthèse de réseaux systoliques en présence de dépendances dynamiques (non connues à la compilation) ont été abordées [14].

Enfin, le développement de MMAlpha s'est poursuivi. Les fonctions existantes ont été consolidées, et plusieurs nouveaux logiciels ont été mis au point. Un traducteur de Alpha vers un format commun appelé CNF ( Common Nana Format) a été réalisé au cours du projet Européen Nana 2 pour permettre les échanges de programmes entre groupes de recherche travaillant sur la synthèse d'architectures régulières. Le développement des séquences de traduction complètes pour plusieurs algorithmes (produit matrice-vecteur, filtre à réponse finie, produit de polynômes) a permis de solidifier les fonctions existantes et de démontrer les capacités de l'environnement MMAlpha .


previous up next contents
Précédent : Synthèse d'architectures parallèles Remonter : Synthèse d'architectures parallèles Suivant : CAO pour des