Opensource/Logiciel libre

Microprocesseur open source RISC-V : quelles opportunités pour la recherche en génie logiciel et sécurité ?

Date:
Mis à jour le 18/01/2023
Présenté comme le plus prometteur de sa génération, le microprocesseur RISC-V ouvre un horizon des possibles dans la communauté internationale du génie logiciel et hardware. Et pour cause : ce microprocesseur créé par l’université de Berkeley en 2010, et disponible dans une version stable depuis 2017, offre aux développeurs une architecture ouverte et libre. La collaboration Ensta Bretagne - Centre Inria de l'Université de Lille porte ses fruits avec une compilation à la volée RISC-V pour Pharo.
Un enseignant-chercheur et un ingénieur en train de travailler au développement pour la programmation objet immersive en Pharo
© Inria / Photo C. Morel

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