Précédent : Fondements scientifiques
Remonter : Projet API, Architectures parallèles intégrées
Suivant : Logiciels
Résumé : Notre thématique est de développer des méthodes systématiques pour l'accélération des applications sur matériel dédié. Deux activités plus fondamentales dans le projet Api, la compilation pour processeurs spécialisés programmables et la conception et réalisation d'architectures parallèles intégrées sont elles mêmes des domaines applicatifs importants. Nos méthodes peuvent trouver des applications dans plusieurs domaines applicatifs. Comme il est essentiel que nos techniques et méthodes soient validées sur des applications réelles, nous choisissons certains volets spécifiques. Sachant que chaque volet nécessite un investissement lourd pour arriver à des résultats concrets et significatifs, nous choisissons ces domaines en forte collaboration avec d'autres chercheurs ou projets, et en réponse aux besoins des partenaires contractuels.Dans ce contexte, nos domaines applicatifs actuels sont le traitement d'image et la biologie moléculaire, où les travaux ont été recemment récompensés par le prix Seymour Cray 1997 pour la machine Samba (detaillée en sections
et
). Nous développons aussi une activité autour des algorithmes et architectures pour les protocoles ATM.
Mots-clés : Asip, compilation, optimisation de code
Résumé : La conception d'un système matériel fait de plus en plus souvent appel à des <<coeurs>> de processeurs qui sont optimisés et spécialisés pour tenir compte des contraintes d'utilisation du système. La compilation pour de tels processeurs consiste à produire, pour une application particulière, à la fois l'architecture et le compilateur permettant d'atteindre les performances visées par cette application. Cette technique est l'une des clés de la réalisation de systèmes dédiés aux traitement d'images et aux télécommunications.Dans le traitement d'images, surtout à bas niveau, la compression est un traitement qui a besoin d'un volume de calcul énorme. Plusieurs algorithmes de ce domaine exhibent des caractéristiques comme la régularité, la localité, etc., qui rendent très intéressante la réalisation sur des architectures dédiées. Parmi les diverses technologies possibles comme les circuits full custom (Asic), les co-processeurs reprogammables (basés sur des FPGA), les processeurs programmables spécialisés (des DSP ou des Asip) nous avons choisi de focaliser sur les Asip pour le traitement bas niveau d'images.
Aujourd'hui les dispositifs programmables sont généralement
programmés en langage d'assemblage, ce qui est très fastidieux et
provoque des erreurs [PCL96], et donc
augmente fortement le temps de conception. Dans un avenir proche,
il n'est pas raisonnable d'imaginer que toutes les applications
enfouies seront réalisées avec des processeurs standard au moyen
de compilateurs universels. Les Asip souffrent d'un manque
évident d'outils logiciels, tels que compilateurs et simulateurs
de jeu d'instructions [GPV
97]. C'est
plus particulièrement vrai pour les processeurs dont
l'architecture n'est pas connue à l'avance.
La raison d'être des Asip étant leur spécialisation et leur adaptation à une application donnée, il est primordial que les compilateurs atteignent des performances très proches du code produit manuellement, ce qui place la barre très haut. De plus les compilateurs doivent être paramétrés par l'architecture visée , parce qu'il est hors de question de redévelopper le compilateur pour chaque changement architectural. Il faut par conséquent pouvoir adapter très rApidement les compilateurs pour ces processeurs, ce qui pose des problèmes de recherche non résolus et très ardus. En outre, les architectures visées incluent les processeurs de traitement du signal, pour lesquels on sait que la production de bons compilateurs est difficile.
Les problèmes posés par l'utilisation des Asip auxquels nous nous intéressons sont de deux ordres : la définition de l'architecture d'un Asip, et sa programmation. La définition d'un Asip nécessite des méthodes de conception et des outils permettant d'organiser une architecture avec pertinence : choix des unités fonctionnelles, des unités de mémorisation, de la structure de registres, des interconnexions, du type de contrôle, etc. La génération de code nécessite des outils de compilation adaptés à l'architecture.
L'étude d'applications dans le domaine de la compression d'image, menée depuis maintenant quelques années, a conduit à définir des architectures semi-spécialisées réalisées à partir de briques de base matérielles et logicielles et permettant la mise en oeuvre rApide d'applications, pour les besoins de la simulation. Les travaux réalisés concernent les aspects suivants :
Nous poursuivons l'investissement considérable réalisé dans ce domaine d'application, et des algorithmes du domaine servent de support d'étude pour l'expérimentation des outils de compilation pour Asip.
Résumé : La comparaison de séquences biologiques est un domaine d'application de la biologie moléculaire que nous avons développé depuis plusieurs années, et sur lequel nous avons maintenant une certaine expérience. Cela nous permet de tester nos stratégies de conception et nos architectures sur des problèmes concrets réels.La machine Samba, conçue dans le projet, a eu un double objectif: servir de support à la conception d'une architecture à l'aide de certains outils réalisés en interne ; et répondre à un besoin en terme de puissance de calcul dédiée à un des traitements de base de la biologie moléculaire : la comparaison de séquences biologiques (séquences d'ADN ou protéines). L'usage de la machine Samba à donné lieu à une thèse en biologie [GJ97]. Cette réalisation a également été primée par le prix Cray en 1996 (D. Lavenier).
Mais le problème de la comparaison de séquences biologiques tel que nous l'avons traité jusqu'à présent est loin d'être résolu. La production automatique des textes des séquences d'ADN ou le séquencement de génomes complets, par exemple, demandent de nouvelles puissances de calcul pour traiter (comparer) ces données. Aujourd'hui les banques sont constituées de centaines de milliers de séquences (pour simplifier des gènes) de quelques milliers de caractères chacune. Demain elles contiendront des génomes complets dont la taille est 1000 fois plus importantes (quelques millions de caractères). Il est alors fort probable que les biologistes souhaiteront manipuler ces entités (les génomes) comme ils manipulent actuellement les gènes. Les machines spécialisées, dans ce domaine, ont donc d'intéressantes perspectives.
Résumé : La conception d'architectures parallèles intégrées exploite la régularité des traitements que l'on implante dans le silicium, de la synthèse de haut niveau jusqu'à la vérification physique des dessins de masques. Cette activité inclut également la conception des mécanismes d'interface pour contrôler, initialiser et alimenter efficacement l'architecture parallèle.La réalisation de prototypes valide les outils et les méthodes de conception sur des applications réelles.
La conception d'un circuit intégré est l'activité qui consiste à produire le dessin de masques des différentes couches technologiques nécessaires à la fabrication de la puce de silicium, à partir de ses spécifications. Le processus requiert de nombreuses étapes dont l'enchaînement constitue la méthodologie de conception. L'objectif est de produire un circuit correct (i.e. conforme aux spécifications) dans un laps de temps le plus court possible.
L'intégration d'un calcul régulier est synonyme d'architecture parallèle. Les propriétés du traitement (la régularité) sont exploitées, d'une part, pour en dériver un mécanisme matériel performant (une architecture parallèle) et, d'autre part, pour faciliter la conception du circuit.
La conception d'une architecture parallèle trouve d'abord sa source dans la formulation concise du traitement. Cette concision est ensuite reportée à toutes les étapes du processus de conception. Avant tout, ce que l'on retient, c'est la structure du circuit : le nombre d'éléments qui le composent, par exemple, est secondaire alors que la fonctionnalité de ces mêmes éléments et leurs schéma d'interconnexion sont primordiaux. On peut alors travailler sur des structures réduites, plus faciles à étudier, ou directement sur des structures paramétrables comme le proposent les outils de synthèse de haut niveau.
Mais au delà de l'élaboration de l'architecture parallèle proprement dite, se pose le problème plus général de son intégration dans un environnement donné. Ces architectures sont extrêmement performantes et exigent d'être pourvues en données à un rythme très élevé. Les mécanismes d'interfaçage, pour être efficaces, doivent alors être imaginés de concert avec le coeur du circuit et intégrés sur la même puce de silicium.
La réalisation de prototype d'architectures parallèles intégrées distingue deux objectifs :
Les technologies sur lesquels les applications sont mises en oeuvre visent à la fois les circuits intégrés full custom (Asic) et les circuits reconfigurables (FPGA).