Résumé:
Avec l’introduction de capacités d’auto-reconfiguration dans les FPGAs (Field-Programmable Gate Arrays), de nouveaux domaines de recherche ont émergé autour du placement dynamique de modules matériels à l’exécution. Les architectures commerciales disponibles et les outils ont évolué pour fournir des flots de reconfiguration partielle aboutis qui sont toutefois limités dans leurs fonctionnalités. L’objectif principal des travaux de cette thèse est de proposer de nouvelles approches pour faciliter une gestion en ligne flexible d’accélérateurs matériels dans les FPGAs, à la fois au niveau de l’évolution de son architecture et de son flot de conception.
Les architectures de FPGA modernes les plus avancées comportent une profusion de blocs hétérogènes destinés à fournir des performances plus élevées aux applications : des mémoires RAM, des accélérateurs arithmétiques, des émetteurs-récepteurs rapides, etc. La diversité et l’hétérogénéité de ces blocs induit une difficulté plus importante pour les algorithmes de placement en réduisant le nombre de positionnements possibles pour une tâche matérielle donnée. Dans cette thèse, une amélioration du réseau d’interconnexion de l’architecture du FPGA est proposée afin de réduire les contraintes sur le placement des tâches. Des résultats expérimentaux menés sur cette architecture montrent une augmentation de la flexibilité de placement des tâches, au détriment du délai du chemin critique.
Deuxièmement, le concept de flux de configuration indépendant de sa position finale, le Virtual Bit-Stream (VBS), est proposé pour répondre à un problème majeur des mécanismes de relogement de tâche : le stockage d’une unique configuration de tâche pour réduire l’empreinte mémoire et pour accroître la réutilisabilité des modules matériels générés. Les Virtual Bit-Streams sont élaborés grâce à une représentation abstraite de l’architecture du FPGA cible, ce qui les rend indépendants de leur position finale sur la surface logique. Grâce au format de codage du VBS, le volume de données binaires ainsi créé pour représenter une tâche matérielle peut être jusqu’à un ordre de grandeur plus petit qu’un flux de configuration conventionnel équivalent. À partir de ce concept, un flot de conception dédié à la génération des VBS est détaillé, ainsi que le contrôleur responsable du décodage en ligne de ces données. Plusieurs implémentations matérielles de l’algorithme de décodage du VBS sont présentées, permettant d’atteindre des fréquences de reconfiguration similaires à celles des FPGA commerciaux.
Finalement, une méthode permettant de définir une zone reconfigurable dynamique dans le chemin de configuration d’un FPGA est proposée, ce qui permet un placement de tâches à l’exécution dont la flexibilité va au-delà de la définition de zones de reconfiguration partielle lors de la phase de conception. Ce mécanisme, associé à d’autres améliorations proposées dans cette thèse, facilite le développement d’une architecture FPGA reconfigurable dynamiquement et capable de charger des tâches matérielles à l’exécution à partir d’un flux de configuration indépendant de la position finale, sur une surface logique flexible.