RISC-V est une nouvelle architecture de jeu d’instruction (ISA) open source se positionnant comme une alternative à ARM. D’autres ISA RISC open source existent comme par exemple MIPS ou OpenPower. Cependant, OpenPower est spécialisée pour les serveurs et MIPS a abandonné son architecture et rejoint RISC-V. RISC-V est conçue pour être plus flexible et modulaire que la plupart des ISA traditonnelles. Grâce à cela, elle a déjà été adoptée par de nombreuses applications, incluant des microcontrôleurs, des systèmes embarqués ou des data centers. Selon Counterpoint Research, ARM détient plus d’un tiers du marché mondial des blocs de propriété intellectuelle en semi-conducteurs. Cependant, RISC-V a le potentiel de devenir un de ses grands concurrents dû à sa nature open-source : l’architecture étant ouverte, chaque acteur du marché peut contribuer à la décliner en autant de variantes que nécessaire selon ses exigences. Par exemple, optimiser la consommation d’énergie ou maximiser les performances. Cela peut permettre aux entreprises d’avoir leur conception sur le marché plus rapidement qu’avec les solutions actuelles. D’ailleurs, de nombreuses entreprises, telles que MediaTek, Qualcomm, NXP et SiFive, ont déjà lancé des solutions utilisant RISC-V. Quels sont donc les avantages d’une architecture RISC-V par rapport à une architecture ARM ?
L’émergence des processeur RISC
Lors de la création d’un design de processeur, son architecture de jeu d’instruction (ISA) est un des facteurs importants.
Une ISA fait partie du modèle abstrait d’un ordinateur définissant comment le processeur est contrôlé par le logiciel. L’ISA agit comme une interface entre le matériel et le logiciel, en spécifiant à la fois ce que le processeur est capable de faire et comment il le fait. Un appareil qui exécute les instructions décrites par une ISA, comme un processeur par exemple, est appelé une implémentation. En général, une ISA définit les instructions prises en charge, registres, type de données, le support matériel pour la gestion de la mémoire principale et les fonctionnalités fondamentales (modes d’adressage, mémoire virtuelle, consistance de la mémoire). Il existe deux types d’ISA : RISC et CISC.
Une architecture CISC (Complex Instruction Set Computer), comme x86 ou amd64, est un jeu d’instructions comprenant de très nombreuses instructions mixées à des modes d’adressages complexes. Alors qu’une architecture RISC (Reduced Instruction Set Computer), comme ARM ou RISC-V, est un jeu d’instructions réduit avec des instructions atomiques simples à décoder.
Le but primaire de CISC est de compléter une tâche avec le moins de lignes d’assembleur possible. Pour pouvoir le réaliser, le processeur conçu doit être capable de comprendre et exécuter une série d’opérations.
Prenons l’exemple de la multiplication de deux valeurs en mémoire. Un processeur CISC aura une instruction spécifique pour cela. En x86, c’est mul
.
Lors de son exécution, l’instruction va charger les deux valeurs dans des registres différents, multiplie les opérandes dans l’unité d’exécution puis stocke le résultat dans le registre approprié.
La multiplication de deux nombres peut alors être effectuée en une instruction :
|
|
Avec dword [0x12341234]
et dword [0x23412341]
représentant deux cases dans la banque de mémoire.
L’approche RISC va être différente. Les processeurs RISC utilisent seulement des instructions simples qui peuvent s’exécuter sur un cycle d’horloge.
La commande mul
décrite au-dessus peut alors être divisée en trois commandes : ‘LOAD’ qui va déplacer la donnée de la banque mémoire vers un registre, ‘PROD’ qui va trouver le produit de deux opérandes localisées dans des registres, et ‘STORE’ qui va déplacer la donnée d’un registre vers la banque de mémoire.
Pour faire la même série d’étapes décrite dans l’approche CISC, un développeur devra coder quatre lignes d’assembleur :
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3,A
Cette façon peut sembler moins efficace pour réaliser l’opération, car étant donné qu’il y a plus de lignes de code, plus de RAM est nécessaire pour stocker ces instructions. Le compilateur doit également effectuer plus de travail pour convertir une déclaration en langage haut niveau en un code de cette forme. Cependant, l’approche RISC apporte aussi son lot d’importants avantages. Du fait que chaque instruction est simple, le décodage et l’exécution par le processeur devraient être très rapides. De plus, les “instructions réduites” RISC nécessitent moins de transistors que les instructions complexes, ce qui laisse plus de place aux registres d’usage général tout en réduisant le silicium à utiliser.
Pour résumer, l’approche CISC essaye de minimiser le nombre d’instructions par programme, sacrifiant le nombre de cycles d’horloge par instruction. RISC fait l’opposé, réduisant le cycle par instruction au détriment du nombre d’instructions par programme. Cela a pour effet de consommer moins d’énergie qu’un programme CISC lors de son exécution. C’est pour cela qu’une architecture RISC est idéale pour l’embarqué et les applications mobiles, vu que ce sont des domaines où la gestion de l’énergie et la taille sont importantes.
Qu’est ce que RISC-V
RISC-V (prononcé “risk-five") est une architecture de jeu d’instructions RISC ouverte et libre. Ses spécifications sont ouvertes et peuvent être utilisées librement par l’enseignement, la recherche et l’industrie.
Son jeu d’instructions a été introduit en 2010 et supporte des processeurs 32, 64 ou 128 bits. Ce qui le rend applicable pour une vaste gamme d’applications, de dispositifs embarqués à faible puissance jusqu’au calcul de haute performance.
La fonctionnalité clé du RISC-V est son architecture load-store. Ce qui veut dire que le processeur ne peut pas faire d’opération directement sur la mémoire et doit d’abord déplacer les données de la mémoire vers les registres internes pour pouvoir réaliser des opérations dessus. Cela rend RISC-V plus lent qu’une architecture CISC, mais lui permet d’être plus simple dans la conception du matériel et donc d’utiliser moins de silicone.
Son jeu d’instruction est découpé en deux parties, un ISA de base et des extensions optionnelles. L’ISA de base ne peut pas être redéfini et doit être présent dans chacune des implémentations. Selon son implémentation, des extensions d’ISA peuvent être ajoutées à l’ISA de base. Ce qui permet au RISC-V de supporter la personnalisation et la spécialisation.
De plus, RISC-V supporte les espaces d’adressages 32 et 64 bits et utilise une technique de compression de code.
Qu’est ce que ARM
ARM est aussi une architecture de jeu d’instruction RISC. Cependant, contrairement à RISC-V, elle est propriétaire. C’est une des architectures les plus utilisées dans le monde.
L’architecture ARM a initialement été développée en interne par la société britannique Acorn Computers, qui l’utilisa à partir de 1987 dans sa gamme d’ordinateurs 32 bits Archimedes. ARM signifiait alors Acorn Risc Machine. Ultérieurement, la division « création de microprocesseurs” d’Acorn fut détachée de la société mère et devint la société “Advanced Risc Machine limited”, se positionnant avec une offre indépendante pour le marché de l’électronique embarquée.
Une particularité des processeurs ARM est leur mode de vente. En effet, ARM Ltd. ne fabrique ni ne vend ses processeurs sous forme de circuits intégrés. La société vend les licences de ses processeurs de manière à ce qu’ils soient gravés dans le silicium par d’autres fabricants tels que TSMC par exemple.
L’architecture ARM définit les jeux d’instructions ARM. Comme RISC-V, elle est dotée d’une architecture load-store, supporte les espaces d’adressages 32 et 64bits et utilise une technique de compression de code. Elle définit différents profils architecturaux :
-
A-Profile (Applications) : Ce profil est conçu pour la haute performance. Il permet de lancer des systèmes d’exploitation complexes tels que Linux ou Windows.
-
R-Profile (Temps réel) : Ce profil cible les systèmes ayant des exigences en temps réel. On le trouve couramment dans les équipements de réseau et les systèmes de contrôle embarqués.
-
M-Profile (Microcontrôleurs) : Ce profil est destiné aux dispositifs de petites tailles et à haut rendement énergétique. On le trouve au cœur des appareils IoT (Internet Of Things).
ARM vs RISC-V
Les natures différentes des architectures (Open Source vs Propriétaire)
Bien que ARM et RISC-V soient très similaires, la différence majeure est que RISC-V est open-source alors que ARM est propriétaire. Pour qu’un architecte puisse intégrer un processeur ARM dans sa conception, il doit payer des redevances à ARM. De plus, la nature propriétaire d’ARM fait qu’il y a des limitations sur la façon d’utiliser leurs processeurs et les architectes doivent avoir une licence. En effet, il est impossible pour les architectes de modifier le jeu d’instructions pour correspondre au demandes d’une application.
RISC-V, quant à lui, est open-source et donc aucune redevance ou licence n’est demandée pour pouvoir l’utiliser, ce qui permet une meilleure flexibilité et personnalisation. Les architectes peuvent expérimenter et développer des systèmes RISC-V gratuitement et, contrairement à ARM, ils sont autorisés à modifier le jeu d’instructions. Grâce à cela, ils peuvent implémenter seulement les instructions dont ils ont besoin et optimiser les puces au maximum ce qui peut permettre de limiter les coûts de production. Cela peut être très bénéfique dans le domaine de l’IoT ou l’embarqué et va de plus réduire le temps de mise en marché étant donné que, par rapport à ARM, aucun temps n’est perdu à négocier une licence. Cependant, cette nature open-source veut aussi dire qu’il n’existe quasiment aucun support pour la conception de matériel. ARM fournit une équipe d’ingénieurs développant des systèmes matériels, ce qui permet aux architectes d’intégrer plus facilement des processeurs ARM. Par contre, de nombreuses entreprises, comme SiFive, conçoivent des produits incluant l’architecture RISC-V et proposent un support client. Une communauté s’est aussi créée autour de ces produits. Elle n’est cependant, à l’heure actuelle, pas aussi grande que la communauté d’ARM.
Support Logiciel
La seconde différence majeure entre ces deux architectures est le support logiciel. En effet, RISC-V est encore une plateforme récente, donc cela veut dire que les développeurs auront du mal à trouver des ressources et des outils. De plus, cela rend le débuggage et l’optimisation du code difficile pour ce type de processeur.
Quant à elle, l’architecture ARM existe depuis des décennies et possède un support bien établi et mature. Elle possède aussi une grande communauté active de développeurs, ingénieurs et chercheurs. Cette communauté a créé de nombreuses ressources et outils pour aider les architectes à cibler de nombreuses plateformes, incluant les microcontrôleurs, microprocesseurs et serveurs. Une grande variété de bibliothèques, kits de développement logiciels (SDKs) sont aussi accessibles pour les processeurs ARM, ce qui facilite le travail des développeurs.
En plus de la communauté en ligne, ARM possède un grand réseau de partenaires et vendeurs proposant un support technique, formations et service de consultation. C’est une ressource intéressante pour les entreprises cherchant à utiliser les processeurs ARM dans leur produit.
Cependant, la communauté RISC-V s’étend plutôt rapidement et actuellement les toolchains les plus populaires sont supportées. De plus, des distributions Linux telles que Ubuntu ont annoncé le support de RISC-V. En 2020, RISC-V était déjà supporté dans la plupart des logiciels open source (GCC, LLVM, QEMU, Debian, Fedora, FREERTOS, Zephyr, etc…) et des toolchains pour compiler en RISC-V étaient disponibles sur les distributions Linux.
Accéssibilité
Le troisième facteur majeur est la survie d’ARM par rapport à la compétition posée par RISC-V. ARM devra se reposer seulement sur sa grande part de marché pour se présenter comme un meilleur choix de conception. Cette stratégie a bien marché pour Intel, qui est actuellement dominant sur le marché des processeurs x86. Cependant, cela peut ne pas être aussi efficace pour ARM. Intel développe l’architecture et aussi les processeurs physiques. Intel a donc le contrôle total sur le processus de conception et de fabrication.
ARM, quant à eux, ne développe pas de matériel et fournit à la place des IP à d’autres entreprises, qui vont ensuite fabriquer et vendre des processeurs basés sur ARM. De plus, le modèle de licence d’ARM peut être perçu comme une limitation pour les entreprises souhaitant utiliser la technologie ARM. Ils n’ont pas la liberté de personnaliser l’architecture à leur besoin spécifique.
Performance
Pour pouvoir avoir une idée des performances des processeurs RISC-V par rapport aux processeurs ARM, nous allons prendre deux processeurs destinés au marché du mobile : SiFive Performance P670 et ARM Cortex-A78. Ces deux processeurs sont conçus pour pallier la demande en performance et efficacité dans les conceptions de petit format comme par exemple : les wearables, smart home, automatisation industrielle, AR/VR et d’autres appareils grand public.
Sifive Performance P670
Le Performance P670 conçu par SiFive, une société pionnière dans l’émergence du RISC-V, est leur nouveau cœur de processeur haut de gamme. C’est aussi le meilleur cœur RISC-V du marché. Il est annoncé le 01 Novembre 2022 avec le P470 lors d’un communiqué de presse de SiFive et vise à compléter la famille de processeurs Performance déjà composée du P450 et P650. Il présente plusieurs fonctionnalité intéressantes :
- Construit sur un nœud de 5nm et peut être cadencé à plus de 3.4Ghz
- Prise en charge étendue de la virtualisation
- Implémentation de vecteurs hors ordre avec la première cryptographie vectorielle RISC-V du marché
- Intégration du système WorldGuard, le système de sécurité de SiFive pour l’exécution de code isolée et la protection de données
- Conformité à l’architecture d’interruption avancée de RISC-V
Il pourrait être trouvé dans les portables premium, réseau, robotiques et les SoC mobiles. C’est aussi une évolution du SiFive Performance P650 qui manque de l’implémentation des vecteurs.
ARM Cortex-A78
Le Cortex-A78 (nom de code Hercules) est le successeur du Cortex-A77, une microarchitecture ARM conçue pour le marché du mobile. Hercules est conçu par l’équipe d’Austin au Texas d’ARM et est lancé en 2020. De plus, il implémente l’ISA 64bits ARMv8.2 et permet d’atteindre une cadence de 3.3Ghz. Cette microarchitecture est par rapport à son prédécesseur :
- 7% plus performant
- Consomme 4% moins d’énergie
- 5% plus petit, ce qui veut dire 15% d’espace en plus sur un cluster quatre cœurs.
En Single-Thread, le P670 est 5% moins performant que le Cortex-A78 d’ARM. Cependant, il utilise 50% moins de place, ce qui lui permet d’avoir une densité de calcul deux fois supérieure.
Conclusion
RISC-V est une architecture de jeu d’instructions très prometteuse. En effet, grâce à sa nature open-source et sa flexibilité, elle est très avantageuse par rapport à la concurrence. Cependant, elle manque encore de maturité pour bien s’implémenter sur le marché actuel. Pourtant, RISC-V est bien parti pour se faire une place dans les années à venir. De plus, de nombreuses entreprises commencent à investir dedans. SiFive, par exemple, se présente comme le pionnier ayant introduit RISC-V au monde. Cette startup de la Silicon Valley fait beaucoup parler d’elle. L’alliance mondiale des semi-conducteurs lui a décerné le Prix de la société privée de semi-conducteurs la plus respectée pour l’année 2022. “Avec la croissance rapide de SiFive et l’augmentation rapide de la demande pour nos produits, et la croissance globale de l’écosystème RISC-V, comme nous l’avons déjà dit, l’avenir du RISC-V “n’a pas de limites” alors que nous emmenons l’entreprise vers de nouveaux sommets.” dit Patrick Little, CEO chez SiFive. Google aurait aussi montré son intérêt pour RISC-V. Durant la Google keynote s’étant déroulée pendant la RISC-V Summit, l’entreprise a annoncé que RISC-V devrait être vu comme une plateforme “Tier 1” dans Android. Un build RISC-V est actuellement déjà disponible sur AOSP. RISC-V est aussi très intéressant pour la Chine. En effet, la Chine subissant des restrictions sur l’utilisation d’ARM, l’émergence d’une alternative est une très bonne chose pour eux. Les géants technologiques chinois, Alibaba et Tencent, développent des puces RISC-V pour une large gamme de matériel et d’ici 2023-2024, de nouveaux designs notamment pour les serveurs, le HPC, mais sans doute aussi pour les smartphones et pourquoi pas les desktops. Pour citer Calista Redmond, la CEO de RISC-V, “RISC-V est inévitable”.
Bibliographie
Communiqué de presse de Sifive
Aperçu de la série Sifive Performance P600
Spécification Technique du Cortex-A78