Projet Api

previous up next contents
Précédent : Fondements scientifiques Remonter : Projet API, Architectures parallèles intégrées Suivant : Logiciels



Grands domaines d'application

 

Panorama

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.


Conception de processeurs programmables spécialisés pour le traitement d'images et leurs outils de compilation

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.


L'utilisation de logiciels embarqués, implantés sur des dispositifs programmables intégrés dans un circuit VLSI, est une tendance inéluctable. Ces dispositifs ou coeurs de processeurs peuvent être de trois types : processeurs à usage général , processeurs paramétrables et processeurs spécifiques . Des instances de processeurs à usage général sont maintenant disponibles sous forme de composants de base dans les bibliothèques des concepteurs de systèmes VLSI. Pour les processeurs paramétrables, le concepteur peut agir sur certains paramètres de l'architecture comme le nombre de registres, la largeur des bus, la présence d'unités fonctionnelles optionnelles et choisir l'instance la plus appropriée pour son application (processeurs de traitement du signal par exemple). Bien que les coeurs de processeurs existants en bibliothèque (à usage général ou paramétrable) permettent de prototyper rApidement un système, ils ne satisfont généralement pas les contraintes imposées par les applications en terme de temps d'exécution, de surface de silicium, de consommation et l'utilisation d'Asip est très souvent nécessaire.

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 [PCL$^{+}$96], 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.

Biologie Moléculaire

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).


La biologie moléculaire est en pleine expansion et produit un volume de données phénoménal. Par exemple, en 1991, à l'institut Pasteur, l'ensemble des séquences biologiques tenait sur un CD-ROM (soit 650 Mo). Aujourd'hui, l'ensemble des banques occupe plus de 28Go, réparti en 20000 fichiers. Cette croissance, exponentielle, se traduit par des temps de calcul de plus en plus longs lorsqu'il s'agit de manipuler ces données, et cela dépasse le simple cadre de la comparaison de séquences. De nouveaux problèmes apparaissent, comme la mise à jour des banques, la gestion de leur cohérence, l'élimination des redondances, l'interrogation flexible, etc. Ces problèmes restent dans le cadre de nos compétences, à savoir le traitement des chaînes de caractères et peuvent donc être une source d'inspiration pour nos travaux futurs.

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.

Conception et réalisation d'architectures parallèles intégrées

  Mots-clés : architecture parallèle, régularité, circuits intégrés, silicium, méthodologie de conception


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.


Conception

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.

Réalisation

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).



previous up next contents Précédent : Fondements scientifiques Remonter : Projet API, Architectures parallèles intégrées Suivant : Logiciels