Pièce maîtresse et cerveau de l’ordinateur
Le microprocesseur est l’élément essentiel de calcul qui permet d’exécuter des jeux d’instructions, c’est-à-dire un programme défini, appelé Instruction Set Architecture (ISA). Une application utilisateur est traduite dans ce langage bas niveau à l’aide d’un traducteur (le "compilateur"). La majorité des processeurs à ce jour sur le marché, fabriqués par les géants du hardware, présentent des architectures fermées. Les développeurs souhaitant utiliser des instructions ou éléments spécifiques de la plate-forme doivent se conformer aux restrictions imposées par le fabricant. Ce modèle ne laisse que peu de place aux initiatives d’extension de ces architectures qui ne proviennent pas des fabricants eux-mêmes.
Grâce à son modèle open source, RISC-V permet de s’affranchir de ces barrières. Le jeu d’instructions ainsi que différents modèles de processeurs sont disponibles en open source et leur implémentation est maintenue et contrôlée par des entreprises ou consortiums souhaitant soutenir l’initiative. Thalès, membre de l’OpenHardware Group, réunissant industriels et universités autour du projet, maintient le processeur CVA6. L’accès à l’implémentation de ces processeurs et de l’outillage permet aux utilisateurs d’étendre un processeur pour supporter de nouvelles instructions spécifiques (par exemple des instructions dédiées pour l’intelligence artificielle) ou ajouter des modules spécifiques dans le processeur (par exemple un moniteur de sécurité). Pour Loïc Lagadec, professeur à ENSTA Bretagne, Lab-STICC, UMR 6285 CNRS-ENSTA :
Cette possibilité ouvre des perspectives pour le monde de la recherche et de l’industrie dans un spectre d’applications très large, des plus petits microcontrôleurs (IoT) aux calculs de haute performance (HPC).
Consciente du potentiel offert par ce type de processeur, la NASA a annoncé vouloir équiper tous ses futurs modules spatiaux avec RISC-V. Dans le monde, de nombreuses initiatives sont lancées pour implémenter des machines virtuelles (une machine virtuelle est une "illusion" d’une machine informatique physique) sur ce jeu d’instructions.
Collaboration fructueuse entre deux équipes
En France, l’équipe Arcad de l’ENSTA Bretagne a étendu un compilateur à la volée sur RISC-V pour le langage Pharo. Un compilateur à la volée (Just-in-Time ou JIT en anglais) est un compilateur qui génère des programmes bas niveau en langage machine directement exécutables sur un microprocesseur – ici RISC-V – et cela alors que le programme exprimé dans un langage de haut niveau (dans le cas présent, Pharo) s’exécute. Ce compilateur JIT est représentatif des architectures modernes dans les langages JavaScript, Java, C#...
Ce résultat est le fruit de la collaboration entre l’équipe Arcad de l’ENSTA Bretagne, spécialisée en conception et validation de microprocesseurs et l’équipe-projet RMOD* qui produit le langage Pharo et sa machine virtuelle. Quentin Ducasse, étudiant de thèse de l’équipe Arcad, a ainsi étendu la machine virtuelle pour obtenir un des tous premiers JIT RISC-V.
Avoir un support RISC-V pour Pharo offre de nouvelles possibilités en matière d’extensions du jeu d’instruction. Parmi elles, il y a par exemple la sécurisation d’une machine virtuelle, la conception de machines virtuelles dédiées, le déploiement de solutions software/hardware, ou encore des optimisations spécifiques.
* l'équipe projet RMOD est commune à Inria et l’Université de Lille
Pour aller plus loin
- Action Exploratoire Alamvic Inria
- Site web de RISC-V
- Site web de Open HW Group