RISC‑V est une architecture de jeu d'instruction (Instruction Set Architecture, ISA), c'est-à-dire une définition normalisée des instructions que peut exécuter un processeur. La première question qui vient immédiatement à l'esprit en lisant ceci est "Encore une ! Mais quel intérêt ?" Voyons cela de plus près.
Une ISA ouverte
Avant RISC‑V, toutes les ISA étaient propriétaires, ce qui signifie qu'il était impossible de fabriquer des processeurs compatibles avec, par exemple ceux d'Intel, sans l'accord du propriétaire, ce qui dans le meilleur des cas n'était possible que contre paiement de droits conséquents et de royalties sur la production.
Cette situation juridique était particulièrement problématique d'une part en termes d'entrave à la concurrence, et d'autre part pour les universités qui ne pouvaient légalement pas former leurs étudiants à la conception de processeurs implémentant des ISA du marché. C'est précisément du besoin de pouvoir enseigner librement que RISC‑V a progressivement émergé.
Enfin, qui dit ouvert dit collaboratif et cela vaut aussi pour RISC‑V, qui voit les plus grandes entreprises et les meilleurs spécialistes mondiaux se mettre autour d'une table pour son élaboration.
Chacun étant libre de mettre en œuvre les spécifications de RISC-V sans enfreindre de droits sur la propriété intellectuelle, contrairement aux ISA propriétaires comme celles d'Intel/AMD ou d'ARM, on voit fleurir les cœurs et SoC RISC‑V open-source, dont les quelques exemples ci-dessous donnent une petite idée de la diversité :
- https://github.com/chipsalliance/rocket-chip
- https://github.com/MoonbaseOtago/vroom
- https://github.com/olofk/serv
- https://github.com/openhwgroup/cva6
- https://github.com/OpenXiangShan/XiangShan
- https://github.com/pulp-platform
- https://github.com/riscv-boom/riscv-boom
- https://github.com/SpinalHDL/VexRiscv
- https://github.com/stnolting/neorv32
- https://github.com/T-head-Semi/openc910
- https://github.com/YosysHQ/picorv32
Une ISA modulaire
L'industrie des semi-conducteurs a un besoin croissant d'optimiser l'utilisation de la surface de silicium et la consommation électrique des circuits. Dans les deux cas, cela revient à limiter les fonctions des processeurs au strict minimum.
RISC‑V a été spécifiquement conçu dans cette optique. Son jeu d'instructions de base compte une cinquantaine d'instructions, tout le reste est optionnel, sous forme d'extensions. Lorsqu'on compile le code destiné à un processeur particulier, on indique les extensions qu'il supporte et le tour est joué.
Un SoC (System on a Chip) utilisé par exemple comme "processeur" dans un ordinateur portable contient en réalité de nombreux processeurs - des "cœurs" d'application processors et plusieurs micro-contrôleurs dédiés à des tâches particulières, comme le démarrage du système. La modularité de RISC‑V permet d'optimiser la surface de silicium et la consommation en réduisant la complexité de ces micro-contrôleurs auxiliaires au strict minimum.
Un autre cas de figure intéressant est celui des circuits spécialisés. Lorsqu'un fabricant conçoit une puce spécialisée pour une application précise, il peut le faire en partant de zéro, ou alors utiliser un micro-contrôleur et développer un firmware ad-hoc, cette dernière solution ayant des avantages évidents. Historiquement, ces circuits spécialisés étaient basés sur des coeurs 8 bits MCS-51, ou des cœurs RISC propriétaires programmés en assembleur. Dans ce type d'applications, utiliser des cœurs RISC‑V permet de bénéficier d'une architecture moderne et optimisée, ainsi que de tout l'écosystème associé (voir ci-après).
Des coûts optimisés
En plus des coûts de fabrication évoqués au point précédent, il faut aussi prendre en compte les coûts colossaux de l'écosystème logiciel de l'ISA, comme les compilateurs et systèmes d'exploitation.
Si un industriel voulait développer sa propre ISA, il devrait supporter seul l'ensemble de ces coûts avant de pouvoir gagner le premier euro sur la vente de ses puces. Autant dire que la rentabilité serait très longue à atteindre.
Avec RISC‑V, ces coûts sont répartis sur l'ensemble des acteurs concernés, rendant leur activité économiquement viable.
Une saine concurrence
Avec une ISA ouverte, de nombreuses sociétés peuvent proposer des cœurs prêts-à-l'emploi, les fameux blocs d'IP (Intellectual Property). Ainsi, un fabricant de micro-contrôleurs peut acheter un coeur RISC‑V et l'utiliser pour produire un micro-contrôleur en y ajoutant ses périphériques, c'est-à-dire ce qui le différencie de ses concurrents.
Par la suite, si un autre fournisseur d'IP proposait une meilleure offre, ce même fabricant pourrait remplacer l'ancienne IP par la nouvelle pour améliorer sa gamme de produits.
Le fait que les fournisseurs d'IP ne soient pas propriétaires de l'ISA permet cette souplesse, mais les incite aussi à se spécialiser sur des créneaux où ils excellent. En outre, la concurrence entre plusieurs acteurs sur un même segment stimule l'innovation et la maîtrise des coûts, ce dont bénéficient tous les acteurs en aval de la chaîne de valeur, jusqu'aux clients finaux.
En matière de micro-contrôleurs RISC‑V, les 3 principaux fournisseurs d'IP sont Nuclei, SiFive, et T-Head. Certains fabricants de micro-contrôleurs (ex. Espressif, WCH) choisissent cependant de développer leurs propres IP plutôt que d'en acheter une.
Une évolution à ne pas manquer !
Le développement spectaculaire de RISC‑V n'est pas sans rappeler celui de Linux : issu du monde universitaire, il a éveillé l'attention des plus grandes multi-nationales au point que ce sont elles qui assurent maintenant son développement.
Pourquoi ? Parce que tout comme RISC‑V, c'est une "brique de base" indispensable à de multiples applications mais qui n'a pas de valeur commerciale par elle-même - les anglo-saxons diraient un "enabler", par opposition aux éléments différenciateurs qui font la valeur d'une offre.
Avec le recul, on peut dire que la grande évolution culturelle du XXIème siècle est que les plus grandes entreprises ont résolument décidé de mutualiser les coûts associés à ces briques de base pour accroître leurs profits, ce dont finalement tout le monde bénéficie. Linux et RISC‑V font partie de cette évolution, tout comme Ethernet, qui en a été un précurseur.
Pour aller plus loin
Pour plus d'informations, et pour consulter les spécifications, vous pouvez visiter le site de RISC‑V International, l'association qui gère l'ISA. Différents repositories GitHub sont également disponibles, à commencer par celui-ci.
Enfin, si vous avez des questions techniques ou si vous souhaitez suivre l'actualité de RISC-V, vous apprécierez ce forum Reddit.