Une alternative open source commence à briller au firmament des architectures de processeurs

[EDITION ABONNES] Les architectures ARM et Mips dominent le marché des IP pour cœurs de microprocesseurs ou de microcontrôleurs. Multinationales du cloud, fabricants de FPGA, concepteurs de SoC s'intéressent toutefois de très près à une alternative open source adaptée aussi bien aux serveurs dans le nuage qu’aux systèmes embarqués les plus contraints. ...

Accessibles sous licence par les fabricants de microprocesseurs, de microcontrôleurs ou de circuits intégrés de type SoC, les architectures ARM et Mips, aujourd’hui propriétés de deux firmes britanniques (ARM et Imagination Technologies), ont encore de très beaux jours devant elles. On voit mal en effet comment un concurrent venu de quasiment nulle part pourrait entraver leur hégémonie dans le domaine des IP pour cœurs de microprocesseurs ou de microcontrôleurs, tant est impressionnante leur écosystème respectif de partenaires et d’utilisateurs. Il n’empêche que des alternatives open source existent et intéressent des start-up ou de petites équipes de développement qui n’ont guère les moyens financiers de passer sous les fourches Caudines d’ARM ou d’Imagination.

C’est tout particulièrement le cas de l’architecture RISC-V (à prononcer risk-five). Accessible sous licence BSD et sans paiement de redevances, elle définit un jeu d’instructions sur les entiers 32, 64 voire 128 bits, basé sur les principes des architectures matérielles de processeurs Risc (Reduced Instruction Set Computer) tels ARM, Mips, Sparc ou PowerPC (voir encadré ci-dessous). Selon ses promoteurs, les caractéristiques relativement génériques du jeu d’instructions RISC-V, doublées de ses capacités d’extension (avec des instructions d’unité de calcul en virgule flottante par exemple), le rendent adapté aussi bien aux serveurs dans le cloud qu’aux terminaux mobiles ou aux systèmes embarqués les plus contraints. Avec la possibilité de l’implémenter dans des FPGA, des macros synthétisables, des SoC ou des designs intégralement personnalisés.

Un organisme de promotion créé en 2015

Issue d’un projet lancé en 2010 par des chercheurs du département EECS (Electrical Engineering & Computer Sciences) de l’université de Berkeley aux Etats-Unis, l’initiative open source a pris brutalement du poids il y a un an avec la création de la RISC-V Foundation. Cet organisme industriel sans but lucratif est voué à prendre en charge les futurs développements de l’architecture ouverte ISA (Instruction Set Architecture) RISC-V, à en assurer la promotion, à créer des tests de conformité et à organiser la communauté afférente.

Cet objectif pourrait ne rester qu’au niveau de la déclaration d’intention si plusieurs grandes sociétés multinationales de l’informatique et du cloud n’avaient pas rallié la RISC-V Foundation en tant que membres fondateurs au rang le plus élevé de Platinum, à l’instar de Google, Hewlett Packard Enterprise (HPE), IBM, Microsoft, Oracle ou Western Digital. Des poids lourds auxquels se sont joints, toujours au niveau Platinum, des fabricants de semi-conducteurs rencontrés traditionnellement sur les marchés de l’embarqué comme le français Cortus, spécialiste des cœurs de processeurs 32 bits pour circuits intégrés SoC éco-efficaces, et les américains Microsemi, Nvidia et Rambus.

Parmi les autres membres fondateurs, on trouve aussi l’équipementier spécialiste de l’électronique de Défense BAE Systems, le fabricant de systèmes d’interconnexion pour grands centres de données Mellanox, ainsi que d’autres sociétés de semi-conducteurs comme le chinois Espressif, IDT ou Lattice. La structure de la RISC-V Foundation s’est encore renforcée en juin 2016 avec la mise en place de son comité directeur constitué de sept vétérans de l’industrie. Sous la houlette de Krste Asanović, professeur et chef du projet RISC-V ISA à l’université de Berkeley, l’instance réunit Zvonimir Bandić, directeur en charge des technologies des plates-formes de nouvelle génération chez Western Digital, Charlie Hauck, CEO de Bluespec, un fournisseur d’outils de haut niveau et d’IP pour la conception d’Asic et de FPGA, David Patterson, professeur d’informatique à l’université de Berkeley et coauteur avec John Hennessy de l’ouvrage de référence Computer Architecture: A Quantitative Approach, Jothy Rosenberg, directeur associé en charge des activités de cybersécurité de Draper Laboratories, Frans Sijstermans, vice-président Engineering chez Nvidia, et Ted Speers, responsable des feuilles de route des SoC et SoC FPGA de Microsemi.

Des outils logiciels déjà disponibles

Pour l’heure, un certain nombre de spécifications et d’outils sont déjà disponibles sur le site de la RISC-V Foundation, dont la spécification du jeu d’instructions ISA en mode utilisateur (aujourd’hui à l’état de version 2.1) ainsi qu’une chaîne d’outils de compilation GNU/GCC, un débogueur GNU/GDB, un compilateur LLVM, un simulateur de jeu d’instruction Spice, un émulateur QEMU et une suite de vérification. Côté systèmes d’exploitation, le support de Linux et des environnements compatibles Yocto est assuré et d’autres OS devraient suivre.

Un prototype de processeur RISC-V

réalisé par l'université de Berkeley

Si certains fabricants de semi-conducteurs ont déjà plus ou moins dévoilé leur intention de baser leurs futures générations de produits sur l’architecture RISC-V (comme le spécialiste des processeurs Risc multicœurs éco-efficaces Adapteva), il semble que, pour l’heure, il n’existe sur le marché quasiment aucun circuit à vocation commerciale utilisant le jeu d’instructions open source.

Mais les choses devraient bouger dans les prochains mois, notamment dans le domaine de l’embarqué. Sous le nom de PULPino, les chercheurs de l'Ecole polytechnique fédérale de Zurich (ETH Zurich) et de l'université de Bologne ont ainsi développé un processeur disponible en open source basé sur les jeux d’instructions RISC-V, spécifiquement optimisé pour gérer de très basses consommations dans le cadre d’applications d’électronique portée sur soi. La première version concrète de PULPino (le tapeout en l'occurrence) a été réalisée en janvier 2016 par le fondeur UMC en technologie Cmos 65 nm. Et d'ores et déjà, le processeur est disponible sous la forme de fichiers de conception RTL, écrit en SystemVerilog, pour une implantation dans un FPGA ou sous la forme d’un circuit de type SoC.

En France, la jeune société GreenWaves Technologies, dont L’Embarqué a tracé un portrait détaillé en mars 2015, compte pour sa part disposer début 2017 d’un processeur pour nœuds IoT « riches » doté de capacités de traitement et de communication embarquées et architecturé autour de plusieurs cœurs RISC-V. D’ici là, la start-up compte en proposer une implémentation sur FPGA sur des modules d’extension (shields) pour cartes de prototypage populaires (Arduino, Raspberry Pi, Lego Mindstorms). Nous y reviendrons.

A noter que le 4e workshop RISC-V se tiendra les 12 et 13 juillet au MIT. 

CARACTÉRISTIQUES DE L’ARCHITECTURE RISC-V

Dans sa version de base, l’architecture RISC-V qui, comme la plupart des architectures modernes, est du type registre-registre (load-store) à trois opérandes et travaille sur des registres entiers (32) sachant que des registres flottants peuvent être utilisés en option. Trois jeux d’instructions de base et six extensions ont en effet été définis (voir tableau).

Dans la version standard, toutes les instructions sont 32 bits avec un adressage sur 32, 64 ou 128 bits, sachant que, là aussi, il est possible en option d’utiliser des instructions de longueur variable, permettant à la fois d'augmenter l'espace d'encodage des instructions disponibles, mais également de rendre les instructions plus denses afin d'améliorer les performances, de réduire la taille du code statique et l’efficacité énergétique.

Un sous-ensemble 16 bits, baptisé RISC-V Compressed, existe également et permet une réduction de la taille du code similaire à celle obtenue avec un jeu d’instructions ARM Thumb-2. L’architecture RISC-V autorise chaque implémentation à apporter des instructions étendues et supporte aussi des implémentations multicœurs et multiprocesseurs hétérogènes.