Proposition de Sujet de thèse De Melle Mouna BAKLOUTI Génération VHDL à base d'IP d'architectures massivement parallèles génériques 1. Problématique et motivations L’évolution de la technologie permet de nos jours, l’intégration de quelques milliards de transistors sur un circuit. Dans quelques années, on estime quelques dizaines de milliards de transistors! Cette évolution aura très certainement un impact sur la topologie, l’organisation et le fonctionnement des machines spécialisées plus ou moins spécialisées logicielles et/ou matérielles. En effet, les applications et les algorithmes émergeant dans de divers domaines, tel que le traitement d’images et la compression, s’avèrent assez complexes, présentant des contraintes d’utilisation critiques. Pour faire face à ce défi, il a fallu penser à de nouvelles solutions autres que celles usuelles, basées sur l’utilisation des processeurs standard, incapables de répondre aux nouveaux besoins. Une alternative convenable et adéquate consiste alors à l’utilisation de systèmes matériels dédiés exploitant différents moyens de réalisation matérielle et logicielle. Cette stratégie repose sur l’avènement des nouvelles technologies submicroniques (ASIC et FPGA) et sur le développement des techniques de conception (méthodologies et outils de CAO). Citons à cet égard les architectures reconfigurables (FPGA) qui sont assez flexibles et modulaires pour assurer l’implantation matérielle d’une application tout en respectant ses exigences fonctionnelles, et avec l’apport des techniques de conception et les différents outils de CAO, on peut ainsi garantir des courts délais de conception et disponibilité sur le marché «time to market». L’intérêt suscité par les FPGAs est dû essentiellement à leur grande flexibilité (grâce à leur reprogrammabilité), à la facilité qu’ils présentent dans la mise en oeuvre des applications, etc. La tendance actuelle de la conception des applications modernes s’oriente vers l’intégration sur une même puce (SoC) du logiciel et du matériel. Ils intègrent généralement des fonctions matérielles dédiées (i.e. accélérateurs matériels, coprocesseurs etc.) connectées à des processeurs programmables (DSP, RISC, etc.). Par ailleurs, les architectures massivement parallèles tel est l’exemple des calculateurs massivement parallèles permettent de disposer de puissances de calcul et de traitement importantes afin de gérer une bonne quantité de données (multimédia) et effectuer des traitements nécessitant de grandes capacités de calcul. Les volumes de données traités peuvent provenir de capteurs ou de bases de données. Les données fournies par les capteurs peuvent être nombreuses dans le temps (son, mesure de paramètres physiques, détection d'événements...) et dans l'espace (images). On peut également être amené à traiter des données issues simultanément de plusieurs capteurs. Dans les bases de données, les données sont de plus en plus souvent grandes consommatrices de puissance (son, images). -1- Un important travail de conception est nécessaire pour s'assurer que ces données puissent être lues, transférées et stockées rapidement. Dans le cas contraire la puissance de calcul des processeurs serait sous-exploitée. La définition d’une architecture parallèle ne peut plus être réalisée sans que sa programmation soit prise en compte, et ce, dès sa phase de définition. A l’heure actuelle, seule les machines SIMD (Single Instruction Multiple Data), disposent d’environnements de programmation évolués permettant de tirer réellement parti des performances de la machine. Tenant compte de nouvelles technologies (SoC), une tendance s'oriente vers la conception de MPPSoC (Massively Parallel Processor System on Chip): des systèmes sur puce massivement parallèles. Il s'agit d’une architecture SIMD composée d'une grille de processeurs élémentaires (les PEs: Processing Elements) et des mémoires connectés par un réseau de voisinage régulier et un général et global réseau. A part la conception de MPPSoC on trouve aussi que les recherches s’orientent vers l’intégration de ce type d’architectures dans FPGA. Par ailleurs, longtemps réduits au prototypage, aujourd’hui les FPGAs sont utilisés, pour leur capacité de reconfiguration, dans des systèmes électroniques complexes, même pour la fabrication à grande série. En effet, grâce aux évolutions de la technologie microélectronique les FPGA deviennent de plus en plus performants avec des capacités sans cesse augmentées. C'est dans ce contexte que se situent les travaux proposés dans cette thèse. Il s'agit d'étudier une architecture parallèle générique, d'effectuer sa validation en vue de son intégration sur des technologies reconfigurables. 2. Objectifs : définition de modèle d’architecture massivement parallèle générique et intégration sur FPGA À la fin des années 80, les ordinateurs les plus rapides au monde reposaient sur le modèle des architectures SIMD massivement parallèles. Ces machines, aussi connues sous le vocable de "tableau de processeurs", étaient construites sur la base d'une grille d'unités de calcul à grain fin connectées par un ou plusieurs réseaux de topologie simple. La puissance de ces machines reposait sur le grand nombre de processeurs, jusqu'à quelques dizaines de milliers, et non de la puissance de calcul intrinsèque ou d'un cadencement à haute fréquence de ces processeurs. Un système SIMD se compose d'une grille de processeurs élémentaires, chaque processeur exécutant, de manière synchrone, exactement la même instruction à chaque cycle. Cette synchronisation est orchestrée par un processeur de contrôle responsable du chargement et décodage des instructions. Deux types d'instructions sont distingués: les instructions parallèles et les instructions non-parallèles. Le processeur de contrôle transfert les instructions parallèles au tableau de processeurs élémentaires alors qu'il exécute lui-même les instructions nonparallèles et de contrôle du flot. L'utilisation de ces systèmes a décliné, principalement en raison du coût élevé de conception et fabrication de ces machines. Il était devenu plus intéressant d'utiliser un petit nombre de processeurs standard et puissants plutôt que de nombreux processeurs conçus spécifiquement. Un autre aspect, technologique cette fois, a contribué à la disparition de ces architectures: l'accroissement de la fréquence de fonctionnement des composants électronique a rendu impossible la diffusion d'une instruction à des milliers de processeurs de manière synchrone à chaque cycle d'horloge. Cependant, de nos jours, plusieurs domaines d'applications sont toujours concernés par la conjonction d'algorithmes parallèles réguliers et d'une forte demande en puissance de calcul. -2- Ces domaines incluent une partie du traitement de signal, nombreuses applications de traitement d'images telles la formation de voies, l'encodage ou le décodage d'images, etc. Ces domaines recouvrent aussi ceux concernés par l'informatique embarquée et l'intégration d'un système sur une unique puce est alors d'un intérêt majeur. Une autre problématique de l'informatique embarquée recouvre la maîtrise de la consommation électrique. Le parallélisme est à l'évidence une réponse efficace vers une réduction de cette consommation, en particulier en opposition avec une montée de la fréquence d'horloge: la consommation est proportionnelle à la taille des circuits, mais croît exponentiellement avec la fréquence. Les méthodologies actuelles de conception de systèmes promeuvent les approches à base de composants et exploitent l'utilisation d'IP (Intellectual Properties) et d'interfaces standardisées. Ce contexte doit permettre d'alléger les coûts de conception d'un processeur dédié en vue de son intégration dans un système SIMD massivement parallèle. Par ailleurs, les avancées technologiques concernant l'intégration rendent envisageables de placer une grille SIMD complète sur une unique puce, facilitant la diffusion synchrone d'instructions à des fréquences élevées. Quinze ans après le déclin des systèmes massivement parallèles traditionnels, les évolutions méthodologiques dans la conception de systèmes, les évolutions technologiques majeures de l'intégration sur silicium conjuguées à la demande toujours croissante de performance de nombres d'applications ont changé le contexte et il nous semble opportun de considérer et vérifier aujourd'hui la faisabilité de machines massivement parallèles sur une puce. Dans cette optique, des travaux de proposition d'une architecture nommée MPPSoC ont été entrepris au sein du projet DaRT. Comme il est traditionnel, les plateformes configurables que sont les FPGA peuvent être utilisées pour valider les prototypes sans recourir à d'autres procédés inabordables en terme de coût. Cependant, l'utilisation de FPGA prend aussi tout son sens pour une autre raison: la configurabilité de cette plateforme matérielle. Le dimensionnement d'une architecture MPPSoC est par exemple fonction de l'application elle-même, ou des volumes de données qui seront traitées. En relation avec ces paramètres, le nombre de processeurs ou la taille mémoire associée à chacun des processeurs peut être choisie: une application peut requérir un relativement petit nombre de processeurs avec une grande mémoire ou un nombre plus important de processeurs avec une petite mémoire. L'objectif de tous ces travaux est de pouvoir explorer efficacement afin d'aboutir rapidement à une solution efficace. Les approches d’exploration considèrent souvent un modèle d'architecture afin de guider l'exploration. Comme nous considérons des architectures massivement parallèles, l'objectif de ce travail consiste à définir un modèle d'architecture générique afin de déduire une solution taillée selon les besoins. Bien entendu, nous envisageons des techniques de validation et d'intégrations sur des technologies reconfigurables, FPGAs. 3. Contributions attendues Les travaux initiaux de proposition d'une architecture massivement parallèle sur une puce ont été menés au sein du projet DaRT de l'INRIA. L'architecture elle-même a été définie; un simulateur SystemC de cette architecture a été produit ; une première implantation, partielle, sur FPGA a aussi été proposée. Dans le cadre de cette thèse, les travaux conjoints consistent à proposer et mettre en œuvre une méthodologie ad hoc pour la production d'implantations FPGA de l'architecture MPPSoC. -3- L'implantation FPGA actuelle a été réalisée manuellement et souffre en quelque sorte de ce mode de construction: les choses sont à reprendre si le modèle de l'architecture varie ou si on désire définir une machine d'une configuration particulière pour cette architecture: par exemple avec simple réseau de voisinage entre les processeurs et pas de réseau général ou une version utilisant un processeur plus élémentaire ne traitant que des entiers sur quelques bits ou à l'inverse un processeur pouvant réaliser quelques opérations sur des valeurs flottantes... La définition des ces configurations étant pilotée par les besoins des applications envisagées sur la machine. La thèse consistera donc en la construction d'implantations FPGA d'une configuration donnée de la machine MPPSoC par assemblage de blocs, d'IP, préexistants. Typiquement on trouvera des IP processeurs, des IP contrôleur, des IP mémoire, des IP pour différents réseaux d'interconnexion. Une configuration donnée d'un système MPPSoC décrira les composants devant être utilisés et les paramètres de dimensionnement de la machine (nombre de processeurs, taille mémoire associée à chaque processeur, éventuellement largeur du/des réseaux, etc.) Pour mener à bien ces travaux, il s'agira de définir une modélisation, compatible avec Gaspard, pour modéliser les configurations de machines; de définir une normalisation des interfaces des IP; de gérer la réutilisation d'IP existants sur le marché; de définir la glu d'assemblage de ces IP; de générer le code VHDL issu de cet assemblage qui pourra être simulé ou utilisé pour configurer un FPGA. -4-