Tirer parti d'une stratégie matérielle ouverte pour construire un microcontrôleur RISC-V

[APPLICATION de la FONDATION ECLIPSE] En tant que brique fondatrice de la plupart des appareils IoT, les microcontrôleurs servent de socle à de nombreuses implantations de systèmes IoT industriels. La plupart de ces microcontrôleurs actuellement disponibles sur le marché reposent sur des cœurs de processeur utilisant une architecture de type RISC, Arm et/ou AVR. Cependant, de nombreuses organisations se tournent aujourd’hui vers des alternatives matérielles en open source à ces architectures propriétaires, comme le RISC-V. Revue de détail par la Fondation Eclipse.

Auteur : Frédéric Desbiens Directeur Principal des Programmes Embedded et IoT à la Fondation Eclipse

Aujourd’hui, il existe un écosystème open source croissant concernant des cœurs de processeurs, des microcontrôleurs, des ordinateurs mono-cartes, des capteurs, des actionneurs…. Étant donné que le matériel influence fortement la conception des solutions IoT, s’appuyer sur ces systèmes open source apporte des avantages particuliers aux concepteurs d’appareils. Car les développeurs IoT optimisent toujours leur code en fonction de la mémoire disponible et doivent maintenir la consommation d'énergie au minimum, du moins dans le cas des appareils utilisés à l’extérieur des sites de l’entreprise. Or, il est plus facile d’atteindre le profil de puissance souhaité lorsque l’on contrôle à la fois le logiciel et le matériel. De plus, le matériel open source permet de disposer plus facilement d'une plateforme matérielle stable tout au long du cycle de vie de la solution. En effet, si un fournisseur spécifique arrête la production d’un composant, il est toujours possible d'en trouver un autre ou de faire appel à un tiers. Enfin, le matériel open source permet aux concepteurs d’améliorer les composants utilisés.

La technologie RISC-V est aujourd’hui un exemple probant de ce type d’architecture ouverte qui réalise des percées remarquées sur le marché avec par exemple des conceptions de cœur et de microcontrôleurs en open source d’ores et déjà disponibles, comme le CORE-V MCU de la fondation OpenHW. Introduite en 2010 par des chercheurs de l'Université de Californie à Berkeley, l'architecture RISC-V est une norme ouverte, et les documents relatifs à l'ensemble des jeux d’instructions (ISA, Instruction Set Architecture) sont publiés sous des licences open source, tout comme plusieurs conceptions de référence de cœurs.

La Fondation RISC-V a été créée en 2015 pour superviser l'évolution de ce jeu ISA. Elle a déménagé en Suisse en 2019 pour répondre aux préoccupations concernant la réglementation commerciale américaine et a pris le nom de RISC-V International à partir de Mars 2020.

Le RISC-V exemple d’open source matériel adopté par le marché

La fondation RISC-V International autorise l'utilisation sans restriction des jeux d’instruction ISA dans le matériel et les logiciels ce qui donné à une adoption significative de cette approche par le marché.

Ainsi, en mars 2022, 111 cœurs différents, 31 plateformes de puces-système (SoC) et 12 puces-systèmes fondées sur le RISC-V étaient répertoriés sur le site Web de l'organisation. Quant à l’empreinte commerciale réelle de l’architecture RISC-V, elle est probablement beaucoup plus élevée puisque les organisations ne rendent pas nécessairement publique leur utilisation de la technologie. Il convient ici de mentionner que seuls les membres du comité RISC-V International ont le droit de vote pour approuver les modifications et peuvent utiliser le logo de compatibilité de marque déposée.

Une caractéristique importante du standard RISC-V ISA est sa modularité. L'ensemble d'instructions de base sur les entiers est disponible aux formats 32 et 64 bits (RV32I et RV64I). Il existe des projets pour une version embarquée 32 bits spécifique (16 registres, RV32E) et même pour une version 128 bits (RV128I). Tous les autres types d’instructions sont documentés dans les extensions standard de l’ISA. Ces extensions ont généralement une seule lettre pour leur nom, bien que les plus récentes aient un nom commençant par Z suivi d'un nom alphabétique. Les exemples largement utilisés d'extensions standards sont la multiplication et la division d'entiers (M), les instructions atomiques (A), les nombres à virgule flottante simple précision (F), les nombres à virgule flottante double précision (D) et le registre de contrôle et d'état (Zicsr).

Ces extensions standards sont conçues pour fonctionner avec tous les ensembles d’instructions de base et n’entrent pas en conflit les unes avec les autres. Les concepteurs de cœurs RISC-V peuvent également créer leurs propres extensions non-standard, et des initiatives de collaboration industrielle ont également commencé à émerger concernant des extensions définies par l’utilisateur.

Un bon exemple est l'extension CORE-V eXtension 1/F de la fondation OpenHW qui a rejoint la fondation Eclipse en octobre 2024, et qui vise à simplifier la mise en œuvre d'instructions et d'accélérateurs personnalisés, attachés ou intégrés aux cœurs RISC-V. La spécification RISC-V indique que ces extensions doivent avoir un nom commençant par “X” pour les instructions de niveau utilisateur et “SX” pour celles de niveau superviseur.

Naturellement, il serait difficile d’étudier l’ensemble de l’environnement RISC-V car les ingénieurs peuvent concevoir leurs puces à partir de zéro, adopter l’un des nombreux cœurs open source disponibles, voire obtenir une licence pour des cœurs open source ou commerciaux et ajouter des fonctionnalités propriétaires. Cette approche génère un écosystème diversifié, avec des cœurs, des microcontrôleurs, et des puces-systèmes disponibles pour une intégration dans des appareils contraints, des passerelles, des nœuds de périphérie, des serveurs, etc. De qui rend difficile de fournir une image globale du marché étant donnée l'absence de points de référence communs entre les produits.

Néanmoins, il existe un écosystème florissant de microcontrôleurs fondé sur un ou plusieurs cœurs RISC-V, qui méritent que l’on s’y attarde.

Fondations Eclipse et OpenHW coopérent pleinement

La Fondation Eclipse travaille aujourd’hui en étroite collaboration avec la fondation OpenHW pour créer un écosystème RISC-V complet fondé sur des implantations de cœurs de processeur open source. Pour rappel, la fondation OpenHW est une collaboration industrielle de la fondation Eclipse où les concepteurs de matériel et de logiciels collaborent pour développer des cœurs de processeurs ouverts, des blocs d’IP, des outils et des logiciels associés. Et tous les objets de l'écosystème OpenHW sont développés dans des référentiels GitHub accessibles au public. Les conceptions de coeurs sont définies dans l’environnement SystemVerilog et sont sous licence Solderpad Hardware version 0.51. Cette licence est fondée sur la licence Apache 2.0 qui facilite une adoption commerciale.

Pour le moment, tous les cœurs OpenHW appartiennent à la famille CORE-V. À un niveau élevé, la famille CVA de processeurs CORE-V pourrait alimenter les passerelles et les nœuds périphériques selon les cas d'utilisation, tandis que la famille CVE4 qui possède trois cœurs différents, cible les cœurs de classe microcontrôleur. Un exemple excellent de cette approche est le projet CORE-V MCU, qui vise à construire un microcontrôleur exploitant le cœur CV32E40P. Ce microcontrôleur prend en charge les technologies I2C, PWM, SPI et UART, entre autres.

D'un point de vue plus technologique, le cœur CV32E40P (voir ci-dessus) possède les caractéristiques suivantes : 32 bits (RV32I), 4 stades d’exécution dans l'ordre, émission unique, support d’extensions RISC-V standard (F, I, M, CZicount, Zicsr et Zifencei), extensions personnalisées (PULP_XPULP, PULP_CLUSTER et PULP_ZFINX), support des modes M, CLINT et OBI, gestion des interruptions et du débogage.

Naturellement, un cœur à lui seul ne suffit pas à prendre en charge des applications concrètes. C'est pourquoi les membres de la communauté OpenHW se sont lancés dans le projet CORE-V MCU. L’objectif ici était de concevoir un microcontrôleur complet capable de prendre en charge une large gamme d’applications embarquées. Le CORE-V est une plate-forme conçue pour déployer des applications fondées sur les systèmes d'exploitation en temps réel FreeRTOS et Eclipse ThreadX. Ce microcontrôleur CORE-V offre les fonctionnalités suivantes : cœur CV32E4 cadencé à 400 MHz, structure FPGA intégrée avec les accélérateurs matériels de la firme QuickLogic et plusieurs interfaces périphériques basse consommation (SPI, GPIO, I2C, HyperRAM, CAMIF, etc.). Le diagramme ci-dessous montre comment le microcontrôleur CORE-V s’articule avec son cœur CV32E40P, ses périphériques utiles et ses canaux d'E/S.

 

Au-delà, ce projet de la fondation OpenHW se fonde aussi sur l’environnement de développement CORE-V, un IDE préconfiguré afin de procurer aux utilisateurs du CORE-V tout ce dont ils ont besoin pour exploiter le matériel de manière productive. L'IDE CORE-V apporte en outre un ensemble de plugins exécutés sur l'IDE Eclipse. Parallèlement, le groupe de travail logiciel de la fondation OpenHW agit également sur des outils de niveau inférieur, tels qu'un compilateur, permettant la prise en charge de la plate-forme CORE-V. De plus, la Fondation Eclipse fournit un ensemble de blocs de base pour l’IoT qui complètent les applications embarquées déployées sur des microcontrôleurs.

Au-delà, en novembre 2023, Microsoft a versé à la Fondation Eclipse son système d’exploitation en temps réel Azure donnant naissance au projet Eclipse ThreadX. Pour rappel, ThreadX est un système d’exploitation temps réel mature datant de 1997. Il s'agit du premier et du seul RTOS open source certifié pour les applications critiques pour la sûreté de fonctionnement. ThreadX prend en charge diverses plates-formes, y compris quelques cœurs fondés sur les jeu d’instruction ISA RISC-V.

Alors que la Fondation Eclipse et la fondation OpenHW amorcent une nouvelle phase de leur partenariat, la combinaison des architectures CORE-V et ThreadX ouvre désormais un monde de possibilités pour le matériel open source dans le domaine des systèmes critiques.