previous up next top index
Précédent : Génération de code optimisé pour Remonter : Méthodes et outils pour la Suivant : Études d'applications


Synthèse d'architectures parallèles régulières

 

Mots-clés : synthèse d'architecture, CAO, ASIC Participants : Catherine Dezan, Alain Kerihuel, Florent Dupont de Dinechin, Patricia Le Moënner, Laurent Perraudeau, Patrice Quinton, Sanjay Rajopadhye, Tanguy Risset, Doran Wilde.

Dans la plupart des systèmes de traitement spécialisés, les algorithmes intensifs en calcul, candidats à une mise en oeuvre parallèle et intégrée, sont de nature très régulière. Le passage d'un algorithme régulier à sa version parallèle est un sujet de recherche très actif au niveau international, dans lequel notre projet a une place reconnue. Sur le plan technique, il s'agit de spécifier l'algorithme considéré à l'aide d'un système d'équations récurrentes, puis, par raffinements progressifs, à amener ce système sous une forme qui correspond directement à son exécution sur une architecture régulière. À partir du résultat, on peut alors soit produire un circuit, soit engendrer du code de type SPMD pour une machine parallèle .

Notre effort est concentré sur le développement du logiciel MMAlpha 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 1996 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. Signal est un langage flot de donnée permettant de décrire des applications où le contrôle est complexe. Un environnement de co-synthèse comprenant Signal et Alpha pourrait tirer avantage des complémentarités entre les deux langages. Le lien entre Alpha et Signal passe par une extension de Alpha à des systèmes multi-horloges. Cette extension nécessite le développement d'une bibliothèque de calcul sur les polyèdres à trous. Les fondements théoriques nécessaires au développement d'une telle bibliothèque ont été définis [18, 24]. Une première version de la bibliothèque a été réalisée sous Mathematica. Parallèlement, une interface entre les langages Alpha et Signal est en cours de définition.

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 de Alpha. L'implémentation d'une méthode d'ordonnancement a permis d'automatiser grandement le processus de synthèse. Son utilisation a permis de dériver facilement des architectures existantes ainsi que de nouvelles [12]. Nous avons aussi isolé plusieurs caractéristiques de l'ordonnancement pour la synthèse VLSI qui diffèrent de celles utilisées habituellement en parallélisation automatique.

La structuration du langage Alpha a permis de définir un sous-ensemble appelé AlpHard autorisant une description hiérarchisée d'une architecture en vue de la synthèse d'un circuit [17]. 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 fin de réalisation. Ce traducteur permettra de synthétiser des circuits par l'intermédiaire d'outils commerciaux (Compass ou Synopsys par exemple). Cette étape représente un pas important vers la synthèse de circuits réels. Le code VHDL obtenu a été synthétisé avec un outil commercial (Compass ) et les compétences du projet dans ce domaine (voir section 3.2.2 ) ont été mises à profit efficacement. La synthèse bas niveau a (partiellement) validé les choix faits lors de la traduction de AlpHard vers VHDL.

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. L'outil d'analyse sémantique développé parallèlement à la structuration a été raffiné [13]. Le développement des séquences de traduction complètes jusqu'au circuit pour plusieurs algorithmes (produit matrice-vecteur, filtre à réponse finie, multiplieur bit-série) a permis de solidifier les fonctions existantes et de démontrer les capacités de l'environnement MMAlpha.



previous up next top index Précédent : Génération de code optimisé pour Suivant : Études d'applications Remonter : Méthodes et outils pour la