Projet Api

previous up next contents
Précédent : Présentation générale et objectifs Remonter : Projet API, Architectures parallèles intégrées Suivant : Grands domaines d'application


Fondements scientifiques

Mots-clés : synthèse d'architecture, CAO, ASIC


Résumé : La synthèse de circuits se fait aujourd'hui à partir de spécifications de plus en plus haut niveau. La spécification de programmes effectuant des calculs réguliers sous forme d'équations récurrentes permet des analyses statiques puissantes et des transformations de programmes pour la dérivation d'architectures régulières.

Le développement des systèmes d'équations récurrentes uniformes (SERU) commence vers la fin des années 60 avec les travaux de Karp, Miller et Winograd [KMW67] qui proposent l'expression d'algorithmes itératifs comme des systèmes d'équations récurrentes uniformes. Ensuite, Lamport utilise les mêmes concepts dans le domaine de la parallélisation [Lam74]. A la fin des années 70, apparaissent les réseaux systoliques [KL80], architectures spécialisées synchrones régulières possédant un contrôle décentralisé. Au début, de telles architectures sont conçues <<à la main>> par des concepteurs spécialistes, souvent avec des astuces remarquables. Puis, plusieurs recherches indépendantes montrent que le formalisme des équations récurrentes -- au départ, une seule équation uniforme (ERU), puis des systèmes uniformes (SERU), ensuite des équations affines (ERA) et enfin des systèmes d'équations affines (SERA) s'adaptent bien à la synthèse de tels réseaux [Qui84,QR89,RPF86,QV89]. Ce formalisme et ses extensions donnent lieu à ce qui est communément appelé le modèle polyédrique, base du langage Alpha développé dans API. Le choix du modèle polyédrique est motivé par plusieurs raisons.

Il existe de nombreux environnements pour la synthèse automatique d'architectures spécialisées (Diastol, Presage, HIFI, Cathedral, SADE, PEI et MMAlpha). Alpha [Mau89] et MMAlpha ont évolué à partir de Diastol et constituent aujourd'hui un environnement pratique pour la manipulation d'équations récurrentes affines et la synthèse (dite de très haut niveau ) d'architectures spécialisées.

La synthèse de haut niveau à partir d'Alpha se fait par transformations successives de programmes pour aboutir, par exemple, au format quasiment normalisé de VHDL synthétisable ce qui permet de s'affranchir de la partie basse de la synthèse qui a été largement étudiée depuis de nombreuses années. Pour certaines technologies récentes, les FPGA par exemple, il est nécessaire que l'on descende plus bas dans la synthèse. Néanmoins, le modèle polyédrique, le langage Alpha et l'environnement MMAlpha constituent les fondements pour la synthèse de très haut niveau des systèmes spécialisés, soit en logiciel soit en matériel.

Les principales limitations de ce modèle proviennent du fait qu'il ne traite que difficilement le problème de partitionnement sous contraintes de ressources et qu'il est difficile d'exprimer un contrôle dynamique du programme.

Pour plus de détails, voir http://www.irisa.fr/api/Rajopadhye/HiPC96.html , un tutoriel <<Why Systolic Arrays: the real answer>> présenté à HiPC 96 par Quinton et Rajopadhye. Les détails du langage Alpha et son environnement de programmation et de transformation sont disponibles à http://www.irisa.fr/api/ALPHA .



previous up next contents Précédent : Présentation générale et objectifs Remonter : Projet API, Architectures parallèles intégrées Suivant : Grands domaines d'application