RISC-V | ||
![]() | ||
![]() Prototype de processeur utilisant l'architecture RISC-V en janvier 2013. | ||
Concepteur | Université de Berkeley | |
---|---|---|
Bits | 32, 64 et 128 bits | |
Lancement | 18 mai 2010 | |
Architecture | RISC | |
Libre | Oui | |
modifier ![]() |
RISC-V (prononcé enanglais « RISC five » et signifiant « RISC cinq ») est unearchitecture de jeu d'instructions (instruction set architecture ou ISA)RISCouverte et libre, disponible en versions 32, 64 et 128 bits. Ses spécifications sont ouvertes et peuvent être utilisées librement par l'enseignement, la recherche et l'industrie. Les spécifications sont ratifiées de façon ouverte par la communauté internationale des développeurs[1].
RISC-V est implémenté dans différentsSoC à destination desobjets connectés (supportés par différentssystèmes temps réel ou à destination de l'embarqué, tels queArduino,FreeRTOS,HarmonyOS,LiteOS,NuttX,RT-Thread,RustOS,Zephyr…), d'ordinateurs légers sous forme deSBC, généralement avecLinux (Arch Linux,Debian,Fedora,Gentoo,Ubuntu) ou encore des variantes d'OpenWrt, ainsi qu'Haiku,FreeBSD,NetBSD etOpenBSD.Xv6, unUNIX conçu à des fins pédagogiques pour les étudiants en développement système fonctionne également sur cette architecture. Il est également utilisé dans différents projets desupercalculateurs domestiques tel que dans unprojet européen initié en 2019, l'utilisant pour ses accélérateurs au sein de SoC basse consommation développés localement et fonctionnant sousGNU/Linux, comme la grande majorité des supercalculateurs. Des projets similaires existent en Inde, au Pakistan ou encore en Chine, comme celui développé par l'Académie chinoise des sciences et différentes universités.
Ce projet, créé initialement au sein de la division informatique de l'Université de Californie à Berkeley auxÉtats-Unis, avait d'abord une visée d'étude et de recherche mais est devenu de facto un standard d'architecture ouverte dans l'industrie.
Le but de ce projet est de faire un standard ouvert dejeu d'instructions pourmicroprocesseur, à l'image du standard TCP/IP pour les réseaux ou d'UNIX pour les systèmes d'exploitations, l'architecture des processeurs étant pour le moment toujours fermée, restreignant les progrès, les implémentations ou le support dans lessystèmes d'exploitation[2].
La conception du processeur commence en 2010 à l'université de Californie Berkeley, dans le but de développer un processeur avec les connaissances duXXIe siècle, n'ayant pas à traîner le fardeau de la compatibilité avec des architectures vieilles de 20 ans, commeARM ou l'architecturex86 d'Intel et en voulant par la même occasion que l'architecture de jeu d'instructions du processeur (ISA de l'anglaisinstruction set architecture) reste ouverte[3].
En 2014, la version 2.0 des spécifications est publiée, plusieurs industriels importants[Lesquels ?] sont intéressés par le projet[3].
En 2015, la fondation RISC‑V est créée avec plus de 100 membres, avec un directoire composé d'entreprises commeGoogle,Nvidia,Western Digital,NXP Semiconductors,Microsemi,Cortus etBluespec, ainsi que des représentants de l'Université de Berkeley. Depuis, des entreprises telles queAMD,Qualcomm, etIBM l'ont rejoint[3].
En 2016, Nvidia prévoit d'utiliser un microcontrôleur RISC-V pour ses GPU et pense ainsi multiplier par 3 ses performances par rapport à son propre microcontrôleur, Falcon[4],[3]. Le Falcon est également un processeur d'architecture RISC, mais avec adressage limité à 32 bits et pas de protection dethreads et avec ses limitations. Nvidia désire donc le remplacer par la version 64 bits de RISC-V, bénéficiant ainsi d'un adressage 64 bits, des corrections d'erreur, d'un jeu d'instructions extensible et d'une amélioration de la sécurité[5].
En 2017, la version 2.2 des spécifications est publiée.Mozilla annonce que son langageRust peut être compilé vers l'architecture RISC‑V. Le fabricant de disques durs Western Digital annonce qu'il va livrer des milliards de ses équipements équipés d'un contrôleur à architecture RISC‑V[3].
Le, une partie de la direction de lasociété ARM décide de faire un site nommé « riscv-basics.com » contre RISC‑V, sentant son marché menacé, notamment parce qu'une partie importante de ses plus gros clients commence également à développer des solutions basées sur RISC‑V. Cette action met en colère le personnel technique de la société qui y voit une attaque contre le mouvement open-source. Cela a également pour effet de faire connaître un peu plus RISC‑V et de faire davantage comprendre qu'il s'agissait d'une alternative viable. Dès le lendemain, le 2018, la direction d'ARM décide finalement de fermer le site[6],[7].
En 2019, le gouvernement américain deDonald Trump met la pression sur les fondeurs de micro-électronique, tel que le taïwanaisTSMC, le plus important au monde, pour qu'ils déménagent leurs activités sur le sol américain, ce que ce dernier refuse[8], tout en menaçant ceux qui continueraient de travailler avec les entreprises chinoises telles queHuawei[9]. À la suite des risques politiques de ces pressions, la Fondation décide de s'implanter dans un pays neutre : laSuisse[10],[9],[4].
En, Nvidia cherche des spécialistes RISC-V pour l'intégrer comme processeur au sein de ses SoCTegra[4].
En, Huawei sort ses nouveaux microcontrôleurs maison à base de RISC‑V, ainsi que les kits de développement matériel et logiciel correspondants[11].
En,Haiku est porté sur RISC-V ; gel des fonctionnalités deDebian Bullseye en vue de la sortie de la première version de la distribution à supporter officiellement RISC-V. Le pilote graphiqueRadeon HD pour Linux est porté sur l'architecture[12].
En décembre 2021, RISC-V ratifie 15 nouvelles spécifications jusqu'alors à l'état de brouillon (draft), ajoutant en tout 40 nouvelles extensions optionnelles, dont les extensions vectorielles ou de chiffrement standard[13],[1].
Toujours en décembre 2021, Starfive annonce un cœur nomméDubhe RV64GCBVH, à 2 GHz, gravé en processus TSMC 12 nm avec les extensionsVecteur etHyperviseur. L'extension vectorielle supporte un VLEN de 128 à 1024 bits et l'ALU comporte unchemin de données de 128 ou 256 bits. De son côté l'Académie des sciences de Chine annonce son deuxième processeur, leXiangShan Nanhu RV64GC gravé en14 nm, 11 étapes, superscalaire et out-of-order. La conception du cache de niveau 2 et 3 est inspirée par le cache par bloc inclusif de SiFive[14].
En avril 2023, la carte de StarFive Tech, VisionFive2 est équipée d'un SoC JH7110 basé sur des cœurs SiFive et comportant un quadruple cœur RV64GC à 1,5 GHz, c'est le premier SoC comportant un GPU 3D PowerVR intégré, il comporte également un GPU2D Vivante[15]. Au mois de mai, Sipeed lui emboîte le pas avec la carteLichee Pi 4A basée sur un plus puissant T-Head TH1520, utilisant 4 cœurs THead C910 plus puissant ainsi que d'autres cœurs RISC-V pour letraitement du signal et d'autres tâches, et comportant également un GPU 3D PowerVR plus puissant et un GPU 2D Vivante[16],[17]. BeagleBoard, sort ensuite en juillet la BeagleV-Ahead également équipée du TH1520[18].
Les deux SoC sont dans les mois qui suivent intégrés au noyau Linux, en ce qui concerne le boot, et les différents éléments de base (mémoire, réseau, eMMC), à l'exception de la sortie HDMI et du GPU 3D. Un début de pilote DRM pour le GPU 2D Vivante est intégré au noyau[19].
SOPHGO sort le SoC CV1812H, basé sur deux cœurs XuanTie C906. Le processus d'intégration au noyau mainline commence en octobre 2023[20].
En mai 2023, Ubuntu annonce supporter la VisionFive2[21].
En octobre 2023, le Kendryte K230 est le premier processeur à sortir équipé de l'extension vectorielle en version 1.0[22].
En novembre 2023, David Chen, directeur de l'écosystème d'Alibaba, déclare, lors du RISC-V Summit àSanta Clara, en Californie, que le premier cloud commercial basé sur des processeurs RISC-V a fini d'être déployé à l'Université du Shandong (àJinan), en Chine, durant les deux mois précédents. Le système utilise un total de 3 072 cœurs RISC-V 64 bits, répartis sur 48 nœuds. DesSoCsSophgo SG2042 cadencés à 2 GHz et comportant 64 Mio de cache sont utilisés. Le système utilise des interfacesPCIe de4e génération. Alibaba annonce également avoir conclu en octobre un partenariat avec Google pour finaliser le portage du systèmeAndroid sur RISC-V, le plus gros du travail de portage ayant été fait par Alibaba depuis 2020[23]. Le même jour, les développeurs de l'European Processor Initiative, annoncent avoir produit avec succès l'EPAC en version 1.5 de leur processeur sous forme d'ASIC, fruit de la coopération de trente institutions de dix pays. Trois approches ont été d'abord proposées, un processeur général avec des unités vectorielles dédiées (VPU), des accélérateurs d'apprentissage (machine learning) comportant de nombreux cœurs (typemany-core), appelé STX) et un processeur général gérant de la précision variable (appelé VRP). La version 1.5 est composée de micro-tuiles de type VPU, utilisant des cœurs RISC-V « Avispado » conçus parSemidynamics et l'unité deprocesseur vectoriel conçue par le centre de supercalculs deBarcelone et l'Université de Zagreb[24]. La société espagnole Semidynamics avait annoncé en avril la disponibilité de ses cœurs, et qu'ils pouvaient supporter des gravures allant jusqu'à des finesses de l'ordre de 5 nm[25].
RISC-V implémente un jeu d'instructions RISC, sansmicrocode ni surcouche d'architecture, du typeexécution dans le désordre ou dans l'ordre, ou bien le support d'un type de matériel en particulier (ASIC,FPGA…), mais ceux-ci peuvent être implémentés avec toutes leurs fonctions.
Des chercheurs de l'Université de Californie à Berkeley ont également développé une version appelée BOOM, ajoutant une gestion d'exécution dans le désordre des instructions, dans le modèle RV64G[26].
Une interface entre l'environnement d'exécution superviseur (anglais :Supervisor Execution Environment, SEE), et le superviseur est normée sous l'appellationSBI (anglais :Supervisor Binary Interface) ou RISC-V SBI[27]. L'implémentation enlogiciel libre,OpenSBI en est l'implémentation de référence développé parWestern Digital et des participants à la fondation RISC-V[28].
Le nom du processeur a une signification :
Les noms de bases possibles sont donc :
Le nom du processeur est suivi d'une ou plusieurs lettres décrivant les extensions qui sont ajoutées à la base[29] :
Ces extensions ont été ratifiées ultérieurement aux spécifications 1.0 de l'architecture. Les noms sont plus complexes mais plus précis[31] :
Le jeu d'instructions de base est composé de 47 instructions, dont huit instructions systèmes (appels systèmes, compteurs d'exécution), le reste étant réparti dans les catégories calcul,contrôle de flux et accès mémoire[32].
La version RV32I comporte 32 registres généraux 32 bits, tandis que la version RV32E (embarqué,embedded) ne comporte que 16 registres généraux 32 bits. Les deux comportent en plus un registre PC[33].
Toutes les instructions de calcul utilisent trois opérandes, sauflui
etauipc
qui n'en ont que deux (un registre destination et une valeur immédiate). Le premieropérande est le registre de destination, le second le registre source et le troisième, soit un second registre, soit une valeur immédiate (précisé par uni
dans le mnémonique de l'instruction, saufauipc
ayant un autre sens)[32] (Les instructions de multiplication et division entières sont contenues dans l'extension M) :
add
,addi
,sub
: addition etsoustraction. Pour la soustraction d'une valeur immédiate, on utilise addi avec une valeur immédiate négative.sll
,slli
,srl
,srli
,sra
,srai
: décalage bit à bit (shift) + gauche/droite (left/right), logique (logical) ou arithmétique (arithmetic).and
,andi
,or
,ori
,xor
,xori
:opérations logiques bit à bit comprenantet (and),ou (or) etou exclusif (xor).slt
,slti
,sltu
,sltui
, (set iflessthan) met le registre de destination à 1 si le premier opérande source est égal ou inférieur au second. Le u signifiant non-signé (unsigned). Les opérandes immédiats sont limités à 12 bits.lui
, charge la partie immédiate de poids fort (loadupperimmediate), i.e. les bits 12 à 31 du registre de destination avec une valeur immédiate sur 20 bits. Il faut utiliseraddi
avec une valeur immédiate de 12 bits, pour compléter la valeur.auipc
ajoute la valeur immédiate au 20 bits de poids forts ducompteur ordinal (PC), il faut également utiliseraddi
pour les 12 bits de poids faibleInstruction de branchement conditionnels[32] :
beq
,bne
,blt
,bltu
,bge
,bgeu
, instruction debranchement (branch) conditionnel à deux opérateurs, égal (equal), différent (notequal), plus petit (lessthan), plus grand ou égal (greater orequal), signé (par défaut) ou non (unsigned).Branchements inconditionnels[32] :
jal
(jumpandlink), passe le contrôle à l'adresse du PC à laquelle est ajoutée la valeur immédiate 20 bits signée fournie. Ajoute l'adresse de l'instruction suivante (adresse de retour à la fin de la fonction appelée) dans le registre de destination.jalr
(jumpandlink,register), l'adresse du saut est calculée par l'addition du registre source et de la valeur immédiate sur 12 bits, et l'adresse de l'instruction est chargée dans le registre de destination. Si cette instruction est précédée d'une commande auipc, le saut peut être effectué dans l’entièreté de l'espace mémoire 32 bits.Les instructions d'accès mémoire servent à transférer des données entre un registre et la mémoire. Le premier opérande est le registre, le second un registre contenant l'adresse, le troisième une valeur immédiate sur 12 bits signée ajoutée au contenu du registre utilisé pour l'adressage, afin de déterminer l'adresse finale[32] :
lb
,lbu
,lh
,lhu
,lw
, chargement (load) d'un octet (byte), demi-mot (half-word, 16 bits), ou mot (word, 32 bits) de la mémoire vers un registre de destination. Les instructions sont étendues par le signe (défaut) ou par des zéros (unsigned).sb
,sh
,sw
, stockage (store), un octet (byte), demi-mot (half-word, 16 bits), ou mot (word, 32 bits) vers la mémoire.fence
, force l'ordonnancement de l'accès à la mémoire dans un contexte multithread, en assurant notamment la cohérence des caches.fence.i
, permet de s'assurer que les opérations depuis stockage vers les mémoires d'instructions (par exemple cache instruction) soient terminées avant leur exécution. Elle est principalement utilisée dans le cas de code automodifié.Une instruction sert à invoquer unappel système et un autre initialise unpoint d'arrêt pour ledébogueur[32] :
ecall
, appel systèmebreak
, ajout d'un point d'arrêt.Six instructions servent à lire et écrire dans les registres de contrôle et statut du système (control and status registers CSR). Le registre CSR est lu dans un registre général, puis mis à jour de façon atomique[32] :
csrrw
,csrrwi
,csrrc
,csrrci
,csrrs
,csrrsi
,Les 6 registres CSR 32 bits suivants (correspondant à 3 valeurs 64 bits, de compteurs d’exécution) sont définis en lecture seule[32] :
cycle
,cycleh
, compteur de cycles d'horloges passés depuis un temps de référence. Ce temps peut varier si le mode de changement de fréquence ou de tension dynamique (dynamic voltage and frequency scaling (DVFS)) est actif ;time
,timeh
, compteur de temps-réel passé depuis un temps de référence (typiquement, démarrage du système) ;instret
,instreth
, compteur d'instructions processeur exécutées (instructionretired).L'ISA 64 bits étend les registres et l'espace l'adressage de 32 bits à 64 bits (XLEN=64). Les instructions comportant le suffixe W (anglais :Word, signifiantmot), indique que leur action est limité à un mot (32 bits) et ne se préoccupe pas des 32 bits supérieurs des entrées. Le bit de signature est déplacé vers le 64e bit (bit 63) des registres, il est donc important d'utiliser les fonctions spécialisées lors d'utilisation de données 32 bits[34].
Cela a aussi des implications sur les opérations immédiates. Par exemple, l'opération d'addition immédiate addi utilisant une valeur immédiate de 12 bits, addiw ignore les dépassements des 32 bits et place le bit de signe sur le bit 63 des registres[34].
L'ISA RISC-V RV32E est indentique à RV32I, mais ne comporte que 16 registres (x0 à x15, avec x0 toujours égal à 0), au lieu de 32[35].
L'extension vectorielle (V) n'est pas unSIMD, mais unprocesseur vectoriel. Elle comporte trois variables, ELEN (nombre de bits d'un élément), VLEN (nombre de bits d'un vecteur) et SLEN (distance de (stripping) entre deux éléments) qui doivent tous trois être une puissance de 2[36].
Elle comporte 32 registres de vecteurs nommés de v0 à v31, qu'il est possible de grouper par deux, dans ce qui est appelégroupe de registre de vecteur (vector register group) pour améliorer la précision ou bien améliorer les performances. Il y a également sixregistres de contrôle et statut (en) (CSR) (vstart, vxsat, vxrm, vtype, vl, vlenb)[36].
Un groupe de travail propose, en, une extension GPU appelée RV64X basée notamment sur l'extension deprocesseur vectoriel et le format VBlock proposé par le projetLibre GPU pouvant être implémenté en ASIC ou FPGA. La première version a pour objectif d'utiliser un pilote compatible avec l'APIVulkan de Khronos pour, plus tard, supporterOpenGL etDirect3D. Il devrait également s'adresser, dans un premier temps, au domaine de l'embarqué. Les contraintes fixées sont[37] :
En, la société Think Sillicon a proposé un GPU basé sur l'architecture RISC-V[38].
Vortex est un GPGPU open source libre offrant une compatibilitéOpenCL etOpenGL. Les développeurs ont modifié le code de la bibliothèquePoCL pour le support des instructions RISC-V et Vortex d'OpenCL[39].
En 2018, le projetKazan ouLibre RISC-V avait pour objectif de développer un GPU basé sur RISC-V. En 2020, en raison de différents désaccords avec le fonctionnement de la fondation RISC-V, les auteurs du projet se réorientent vers une architecture OpenPower, version ouverte dePower, l'architecture RISC desannées 1990 d'IBM[40]. Les auteurs se tournent finalement vers la création d'une extension de processeur vectoriel appelée SV pour l'architecture Power, proche de l'extension V de RISC-V, plutôt que le développement d'un GPU.
Différents SoC RISC-V, tels que leStarFive JH7110 et le T-Head TH1520, intègrent tous deux des GPU 2D Verisilicon deVivante et des GPU 3DPowerVR d'Imagination Technologies. Ces cores graphiques sont fermés, mais Vivente et Imagination Technologies œuvrent tous deux à l'intégration des pilotes DRM dans la branche Linux mainline, et IT PowerVR à l'intégration du pilote3D dans la partie Vulkan de Mesa ; le convertisseur à la volée OpenGL vers Vulkan permettra d'apporter la compatibilité OpenGL avec les performances accrues de Vulkan.
Une série d'outils libres est proposée pour le développement sur cette architecture, incluant la compatibilité des compilateursGCC etLLVM (doncClang), le support dudébogueurGDB, ainsi que de l'hyperviseur etémulateurQEMU[41]. Le langageRust supporte RISC-V depuis[42],[43].
Au niveauassembleur,GNU Assembler supporte les architectures RISC-V 32 et 64 bits (assembleur,désassembleur), et riscv-assembler est un assembleur enPython.
BronzeBeard[44] est un assembleur RV32IMAC écrit enPython liant le programme assemblé à une bibliothèque minimaliste, afin de fournir un système de typebare metal. Il a d'abord été testé sur les cartes de Sipeed, Longan Nano et Wio Lite, et leur processeur GigaDevice GD32V en raison de la possibilité d'accéder facilement à ce type de matériel avec son écran pour moins de 10 €. L'auteur prévoit de le porter également vers l'HiFive1 Rev B[45]. Le même auteur a également produit un interpréteurForth bare metal pour RISC-V[46].
Cette architecture est supportée en par lenoyau Linux via un ensemble de patchs ainsi que par FreeBSD[47]. Son intégration dans le tronc commun stable de Linux est effective depuis la version 4.15, avec un support plus étendu depuis la version 4.17.
Lelangage de scriptMicroPython, version adaptée aux microcontrôleurs dePython, a été porté en 2017 parMicrosemi sur architecture RISC-V[48].
Arduino fonctionne sur les microcontrôleurs GD32V deGigaDevice. Il peut utiliser pour cela le système temps réelRT-Thread et l'interface graphique RTT-GUI d'Arduino[49].
Le système temps réelZephyr fonctionne également sur les processeurs RISC-V, notamment sur son émulation parQemu et sur différentes implémentations matérielles[50].
La version minimum de Rust à destination de l'embarqué (Minimum Supported Rust Version (MSRV)) est portée sur RISC-V, par la communauté de rust-embedded[51]. Le systèmeRustOS, basé sur un noyau rCore, une versionRust de uCore OS Plus fonctionne sur l'implémentation Qemu de RISC-V et sur les systèmes HiFive Unleashed, et est utilisé à l'université Tsinghua pour les cours de système d'exploitation[52]
La société UltraSOC développe « Tessent Embedded Analytics » une solution d'analyse et de traçage sur RISC-V, pour les solutions propriétaires ou ouvertes. Elle est rachetée par le groupeSiemens et continue cette activité au sein du groupe[53].
Cette architecture est supportée par les systèmes d'exploitation pourinternet des objets,LiteOS (licence BSD) et pour plateformes mobilesHarmonyOS deHuawei[11].
Le logiciel d'aide à la découverte de failles de sécurité, afin de pouvoir les exploiter[54], duservice de renseignement desÉtats-Unis,NSA,Ghidra, supporte le format binaire de cette architecture[55].
En, Alibaba fait une démonstration d'Android 10 porté par T-Head sur leur SoCICE EVB comportant 2 cœurs RISC-V 64 bits XuanTie C910, uncœur vectoriel XuanTie C910V et un GPUVivante GC8000UL[56].
Le système XBoot est un système de boot enlogiciel libre multi-plateforme, permettant également d'utiliser enbare-metal la majorité des périphériques standards du monde de l'embarqué. Il fonctionne entre autres sur les cartes à base du Soc AllWinner D1, basé sur le cœur RISC-V open-source T-Head C906.
Différentesdistributions Linux sont disponibles, dontDebian Bullseye avec plus de 95 % des paquets portés[57], Arch Linux[58],Fedora[59],Ubuntu[60],Yocto[61]. Les systèmes d'exploitationNetBSD[62],FreeBSD[63],OpenBSD[64] etHaiku[65] bootent également sur RISC-V. En Octobre 2021,Alpine Linux était en cours de portage[66].
Linux et Haiku peuvent bénéficier de l'accélération des cartes graphiques AMD Radeon HD via le pilote libre Mesa qui est indépendant de l'architecture du processeur[67],[68].
Sipeed propose en décembre 2023 la « Lichee Pocket 4A » première console de jeu basée sur l'architecture RISC-V. Il s'agit d'une console portable, basée sur le SoC TH1520 de T-Head, comme pour sa carte Lichee Pi4a[69].
Il est possible de simuler ces architectures via différents émulateurs et hyperviseurs.
L'hyperviseurQEMU, ainsi que par ANGEL (un simulateur RISC-V enHTML5 etJavaScript) ou via les cartesZedBoard etZybo comportant desFPGAXilinx Zynq[70],[71]. L'émulation de RISC-V (32 et 64 bits) est supportée nativement dans Qemu à partir de la version 2.12.0 sortie le[72]. La version 5.1 ajoute le support du choix du bios dans les arguments[73].
TinyEMU deFabrice Bellard (également auteur deQEMU etFFmpeg) est un émulateur léger RISC-V, il est utilisé pour le portage deHaiku (remake libre deBeOS)[74]. Il est également utilisé dans BareDoom, un port de Doom sur RISC-V viaBarebox, cette version de TinyEMU étant elle même recompilée enWebAssembly (WASM) pour fonctionner dans un navigateur[75].
Juice-VM est un émulateur de machine virtuelle RISC-VRV64IMASU minimaliste, supportant MMU et entrées/sorties UART. Il permet de faire fonctionner FreeRTOS et également, sur des systèmes très limités en ressources, tels que les microcontrôleurs typeESP32 Xtensa double-cœur avec 8 Mo de PSRAM et 2 Mo de flash SPI, le noyau Linux 5.0 compilé pour architecture RISC-V[76],[77].
RISC-V Rust est un émulateur RISC-V développé en langageRust et fonctionnant en WebAssembly. Le but étant d'utiliser l'émulateur dans un navigateur. Les systèmes d'exploitation GNU/Linux etxv6-riscv fonctionnent dessus[78].
Wrap-V est un générateur de cœurs RISC-V, supportant également l'architecture MIPS enTL-Verilog (Transaction-LevelVerilog) et passant par le processeur de macrosM4. Il permet de développer des cœurs dont les pipelines comportent 1 à 7 niveaux. Il est possible de modifier la sortie M4 pour l'adapter à des besoins spécifiques. Il est également possible d'utiliserTL-Chisel[79].
Le microprocesseur libreLowRISC, est un projet d'implémentation libre et ouverte de RISC-V, créé parAndrew Huang (duMIT, également auteur de la plate-forme ouverteNovena),Julius Baxter (projetOpenRISC etuniversité de Cambridge),Michael B. Taylor (université de Californie à San Diego, UCSD Center for Dark Silicon),Dominic Rizzo (Google ATAP (en)),Krste Asanović (Université de Californie à Berkeley).
Le NEORV32 est une implémentation libre (licence BSD clause 3) d'un SoC, de type microcontrôleur pour FPGA écrit en VHDL, indépendant des plateformes. Il est compatible avec les spécifications 2.2 de RISC-V pour RV32 et passe le test de conformité.FreeRTOS a été porté sur ce SoC[80],[81]. Il se base sur le travail que les développeurs avaient fait pour le neo430, une implémentation d'un processeur FPGA de type microcontrôleur compatible avec leMSP430 deTexas Instrument[82],[83].
Le PicoRV32 est une implémentation libre, souslicence ISC, supportant les jeux d'instructions RV32IMC dont le but est d'avoir la plus petite empreinte possible, avec selon les choix entre 750 et 2000LUT et une fréquence maximum de 250 à 450 MHz. Il a pour finalité d'être un processeur auxiliaire sur FPGA ou ASIC. Il peut être configuré comme cœur RV32E, RV32I, RV32IC, RV32IM, ou RV32IMC[84] (voir la section#Nomenclature des extensions).
HumingBird E203 etHumingBird E203v2 sont des implémentations open source souslicence Apache 2.0 en langageVerilog[85],[86] du Nuclei RISC-V isa deNuclei System Technology[87]. Ils équipent notamment le SoC à microcontrôleur GD32Vf103 deGigaDevice, utilisé notamment dans la carteSipeed Longan Nano[88].
Western Digital propose une gamme de cœurs nommés SweRV, open source, disponibles via CHIP Alliance. Ils ont aussi annoncé une coopération avec Codasip afin de proposer un support commercial de ces cœurs[89]. Ces processeurs hautes performances visent les domaines embarqués et supportent le jeu d’instruction RV32IMC. La famille SweRV se décline comme suit:
L'Académie chinoise des sciences a rendu public le processeurXiangshan, souslicence libre (license Mulan v2, approuvé par l'OSI), le surGithub[91]. Le processeur est développé en langageChisel, qui d'après les développeurs comporte 5 fois moins de lignes de code qu'enVerilog et permet un développement plus rapide[92],[93]. Au moment de sa sortie, le processeur supporte la distribution Debian Bullseye pour RISC-V. Une première implémentation matérielle sort en, baptisée Yanqihu, gravée en 28nm et fréquencée entre 1.2 et 1.3 GHz, elle à des performances par GHz similaire auxARM Cortex-A72 avec 7/Ghz SPEC CPU 2006. Une seconde version prévue pour l'automne de la même année appelée Nanhu, gravée en 14nm et fonctionnant à 2 GHz, devrait atteindre des performances par GHz similaires à un Intel i9-10900K (11.08/Ghz) avec 10/Ghz SPEC CPU 2006, et une puissance de calcul, à cette fréquence, comparable à celle d'unARM Cortex-A76[94],[93].
En octobre 2021,Alibaba Group ouvre les cœurs de ses processeurs sous le nom d'T-Head OpenXuanTie. Cela couvre les SoC à destination de l'embarqué et pour serveurs[95]. Les sources en langageVerilog sont mis à disposition sur Github de T-Head[96].
SiFive, une startup annonce en, leSiFive U5 Coreplex, utilisant l'architecture RISC-V et permettant d'implanter jusqu'à huit cœurs U54 parSoC, comprenant chacun du cache instruction et données de1er niveau, le SoC contient un plus large cache de2e niveau. Le but va être d'implémenter d'abord des versions pour du matériel très spécifique n'ayant pas besoin de beaucoup de puissance, mais de fonctions spécialisées dans un premier temps, pour pouvoir améliorer les technologies par la suite[97].
En 2018, la startup SiFive, créée par des développeurs de RISC-V, présente auFOSDEM la carteHiFive Unleashed, comportant un processeur SiFive Freedom U540 SoC (4+1 cœurs RISC-V jusqu'à 1,5 GHz) et 8 Gio de RAM ECC, port ethernet Gb, et capable de faire tournerGNU/Linux[98].
Shakti est une initiative indienne de conceptions de différents processeurs basés sur l'architecture RISC-V et divisés en 6 séries : E-class pour l'embarqué, C-Class pour les microcontrôleurs, I-Class pour les microprocesseurs pour clients légers, M-Class pour la bureautique, S-Class pour les stations de travail et les serveurs, et enfin H-Class pour les super-calculateurs[99].
Codasip est la première société à avoir développé un cœur compatible RISC-V non-libre en (Codix)[100] et a poursuivi son offre avec des familles de cœurs pour l’embarqué et les domaines applicatifs. Les cœurs développés par Codasip sont écrits en CodAL, un langage de description d’architecture. L’outil Studio est utilisé pour obtenir les simulateurs ainsi que les fichiers nécessaires à l’implementation physique de ces cœurs. La famille L regroupe des cœurs 32-bits basse consommation, visant les domaines de l’embarqué, proposants en option une unité de calculs flottants. Cette famille se décline en 3 ou 5 étages de pipeline. La famille H regroupe des cœurs hautes performances 64-bits visant les domaines embarqués, propose en option une unité de calculs flottants. La famille A regroupe des cœurs 64-bits en mesure d’executer Linux, avec l’option de les augmenter de l'extension “P”. Ces cœurs ont 7 étages de pipeline, une unité de calculs flottants, une MMU. De plus les versions -MP intègrent des mémoires caches de niveau 1 (L1) et 2 (L2) et supportent jusqu’à 4 cœurs par cluster[101]. Le cœur RISC-V mis à disposition dans Codasip Studio est destiné à l’apprentissage ou des essais[102].
Le concepteur russe Syntacore prévoit de développer, à la demande du conglomérat nationalRostec, un processeur RISC-V 8 cœurs en 12nm d'ici à 2025[103].
En 2018, la startup grenobloisefabless GreenWave, présente le GAP8, un processeur basse consommation pour IoT, optimisé pour l'intelligence artificielle[104].
En 2019,GigaDevice Semiconductor lance la série de microcontrôleurs GD32V, basé sur la version 32 bits de l'architecture. Parmi les 14 déclinaisons, le GD32VF103 est cadencé à 108 MHz et accède à samémoire flash intégrée sanswait states (en), donc sans latence. Il comporte 128 Kio de mémoire flash intégrée à la puce, et 32 Kio deSRAM, 2 convertisseurs analogique-numérique 12 bits et 2 numérique-analogique 12 bits, ainsi que différentes interfaces de communications (3 SPI, 2 I2C, 3 USART, 2 UART, 2 I2S, 2 CAN et 1 USB OTG)[105]. La puce est compatible broche-à-broche avec ses microcontrôleurs GD32 basés sur l'architecture ARM[106], ainsi que leSTM32 deSTMicroelectronics[107], permettant ainsi de porter facilement les applications d'une architecture à l'autre[106] et également compatibleArduino[49]. Des GD32V sont notamment utilisés dans la carte de développementSipeed Longan Nano.
Sipeed a également développé la carte Sipeed M1 (ou Kendryte KD233), équipée d'unSoC Kendryte K210 comportant 2 cœurs RISC-V 64 bits et un processeur d'intelligence artificielle. Ces cartes sont prévues pour fonctionner avecFreeRTOS[108]. Cette carte utilise MAIXPy, une version adaptée de MicroPython, programmable via Plateform.IO. Différentes déclinaisons existent, commeMaixDuino, dont la carte à un format compatible avec l'Arduino, et supporte l'IDE[109]. Il est également possible de l'utiliser avec un système d'exploitationLinux. D'autres versions, plus compactes sont déclinées. En Canaan sort le Kendryte K510, une version améliorée comportant une partie microprocesseurs composée de 2 cœurs RV64 et un accélérateur composé d'un autre RV64 avec extension DSP[110].
En 2019, le président des États-Unis, Donald Trump menace de blocage les fournisseurs de Huawei, dont font partie des fondeurs tels que TMSC, et la société britannique ARM, qui fournissaient jusqu'alors l'IP des cœurs utilisés dans les processeursHiSilicon de Huawei. La société américaineNvidia ayant racheté au japonaisSoftBank les droits sur la société ARM, Huawei a dû trouver une solution de contournement et semble s'être tourné vers RISC-V. Les premiers kits de développements HiHope HiSpark Wifi IoT utilisent un microcontrôleur Hisilicon Hi3518, compatible avec ses nouvelles plateformes, HuaweiLiteOS etHarmonyOS. Les compilateurs fournis avec sont des compilateursGCC à destination de codes d'architecture RISC-V 32 bits[11].
En, Espressif annonce, la sortie duESP32-C3, WiFi & BLE, un processeur dans la lignée de l'ESP32, mais compatible broche à broche avec l'ESP8266, et utilisant l'architecture RISC-V 32 bits au lieu de Xtensa LX6 des ESP32. Il comporte un processeur cryptographique, mais pas de DSP contrairement à l'ESP32[111]. En, Espressif annonce la disponibilité d'un nouveau modèle deNodeMCU basé sur le processeurESP32-C3, d'architecture RISC-V[112]. L'utilisation du RISC-V apporte de meilleures performances de calcul à fréquence par cœur que l'architecture Tencila Xtensa LX6 ou LX7, à fréquence égale, et apporte un meilleur rapport calcul/consommation[113]. Le ESP32-S2 puis ESP32-S3 comportaient déjà un coprocesseur ULP (ultra low power) d'architecture RISC-V pour La consommation en veille[114]. CeSoC est compatible avec ApacheNuttX[115].
OpenWifi, présenté en, est une pile WiFi open source, compatible Linux, qui peut fonctionner sur FPGA, une implémentation fonctionnelle a été effectuée sur FPGA Xilinx, connecté à une carte RF fmcomms2/fmcomms4[116]
Les modules BL602/BL604 deBouffalo Lab, basés sur du RISC-V 32-bit (cœur SiFive E2-Series[117]), sont des modules WiFi & Bluetooth 5.0 LE.Sipeed etPine64 annoncent q'ils vont les intégrer dans leurs cartes à destination de l'IoT[118], Pine64 crée un Nutcracker challenge afin d'ouvrir les pilotes de la partie sans-fil en novembre 2020[119]. Ils sont utilisés dans le PineCone de Pine64, tandis que le RV-Debugger et la carte FPGA Tang Nano 4K de Sipeed intègrent les modules BL702, toute la série BL70x de Bouffalo Lab étant également basé sur un cœur RISC-V.
L'agence spatiale européenne développe un processeur neuronal baptisé « NOEL-V » et basé sur l'ISA RISC-V et son extension vectorielle (V ou RVVE) utilisant des techniques RHBD (Radiation Hardened By Design), pour les contraintes de l'environnement spatial (température et rayons ionisants), ainsi que les contraintes d'efficacité énergétique, au cœur de satellites. Le projet est mené par Cobham Gaisler, auCentre européen de recherche et de technologie spatiales (ESTEC), qui avait déjà produit en 2019, un processeur similaire appelé « LEON » basé sur l'architecture SPARC-V8 à la fin des années 1990[120],[121].
La carte mère NANOhpm-obc développé par la société slovèneSkylabs et leCERN et l'ESA, utilise un FPGA résistant aux radiations spatiales et intégrant le softcore NOEL-V de (Cobham Gaisler - CAES)[122]. Elle est utilisée dans lenanosatellite Trista-R envoyé dans le vol inaugural de la fusée Vega-C, en juillet 2022 et dont le but est de voler dans l'environnement radio-actif de laceinture de Van Allen[123],[124]. Le contact avec le satellite était établi avec succès le 4 août[125].
Pinecil dePine64 est un fer à souder à régulation électronique, basé sur un processeur RISC-V RV32IMAC « Bumblebee Core » à 108 MHz[126].
Sipeed RV-Debugger Plus est un connecteur UART (série) et débugueurJTAG open source, basé sur le SoC Bouffalo Lab BL702, utilisant un microntrôleur RISC-V 32 bits (basés sur les SiFive E2-Series[117]) à 144 Mhz, comportant un FPU, un module de chiffrement, l'Audio (I2S master/slave), il gère le Zigbee 6, Bluetooth 5.0 LE, WiFi et ehternet. Le firmware est unlogiciel libre, il est également possible de l'utiliser comme carte de développement[127].
ZedBoard etZybo comportant desFPGAXilinx[70].
La carte enmatériel libre, LicheeTang, de LicheePi, présentée en, carte implémentant de base unmicrocontrôleur softcore basé sur l'architecture RISC-V et utilisant un FPGA, utilise unAnlogic EG4S20. Elle comporte desGPIO afin de pouvoir y connecter différents types d'éléments électroniques[128].
La carteTang Nano FPGA, présentée en, de Sipeed, utilise quant à elle un FPGAGOWIN Semi GW1N de sa familleLittleBee family[129], la Tang Nano 4K, utilise un Bouffalo BL702 d'architecture RISC-V, comme convertisseur USB à série/JTAG.
La série de cœurs de processeursHummingbird E200 (ou HBird E200) est une implémentation chinoise open-source de RISC-V et comprend des implémentationsFPGA[85].
En, OpenWiFi est présenté. C'est une pile WiFi matérielle et logicielle libre fonctionnant sur FPGA, avec une implémentation sur Xilinx[116].
En, Efinix propose 3 architectures 32 bits RISCV32I optimisées pour le FPGATrion[130]
En, est présentée la carte open-sourceSAVVY-V basée sur le SOC 64 bits PolarFire[131]. LePolarFire SoC Icicle utilise un SoC en FPGA comportant 5 cœurs 64 bits, dont un RV64IMAC et quatre RV64GC et équipé de 2 Gio de RAM LPDDR4, d'abord présenté en, il sort finalement au3e semestre 2020[132]. PolarBerry est une variante également proposée en crowdfunding en[131].
Différentes cartes de type SBC, et fonctionnant sous Linux, sont présentées à partir de 2018, tentant de se fixer un prix similaire aux populairesRaspberry Pi :La SBCHiFive Unleashed (en) est présentée en, basée sur un SoC comportant quatre cœurs U54 RV64GC (64 bits) à 1,5 GHz et 8 Gio deRAM ECC de typeDDR4, sur la base d'un financement participatif[133].
Imagination Technologies et le laboratoireRISC-V International Open Source (RIOS) se sont associés pour faire une carte de typeSBC appeléePicoRio, dévoilée en auRISC-V Global Forum, la plateforme est globalement open source, à l'exception de certaines parties essentielles comme les I/O ou les accès mémoire[134].
En, Sipeed annonce une SBC utilisant un SoCAllWinner, simple cœur, composé d'un XuanTie C906 (RV64GCV) à 1 GHz en 22 nm, fait par les concepteurs du processeur 16 cœurs RISC-V 64 bits, XT910 d'Alibaba, il n'a pas de GPU 3D, mais un GPU 2D, et un décodeur vidéo matériel, H.264 et H.265, de 64 Mio à 256 Mio de RAM soudée (et certains modèles pourraient avoir de la RAM externe), ainsi que des connexions HDMI, ethernet Gb, USB et USB OTG[135]
En, la SBC BeagleV utilise un SoC StarFive JH7100 comportant un processeur RISC-V double-cœur SiFive U74, unDSP Vision DSP Tensilica-VP6, un moteurNVDLA (architecture ouverte NVIDIA Deep Learning Accelerator) et un moteur de réseau neuronal pour l'accélération d'IA. Sa première déclinaison n'a pas de processeur géométrique 3D, la seconde version comportera un GPU d'Imagination Technologies (donc sans pilote ouvert). Enfin, le SoC comporte un VPU, capable de décoder du H.264 et H.265 jusqu'à 4Kp60, ou bien deux flux en 2Kp30. La carte est équipée de 4 ou 8 Go de RAM en LPDDR4, de 4 ports USB 3.0, d'un portethernet 10Gb, HDMI 2.0, DSI, deux ISP, un port 40 broches et alimenté par USB-C[136]. Deux versions sont mises à disposition, une comportant 4 Go de RAM à 100$ et une avec 8 Go à 150$, les processeurs gravés en 7 nm par TSMC, tournent à 3.5 GHz, sont de type RV64GCVBH (avec notamment une unité vectorielle) et un processeur obtient des performances comparables à celles desARM Cortex-A76 etA77[137],[138]. En, est proposé la distributionFedora comme distribution par défaut, avec les premières cartes disponibles pour les développeurs.XFCE est le gestionnaire de fenêtre par défaut, pouvant s'afficher sur la sortie HDMI[139].
En,Pine64, annonce, la sortie d'une SBC de développement, basé sur un SoC comportant un cœur RV64GCV (XuanTie C906) et un second RISC-V 32bit BL602 (ESP32-C), pour la partie réseau sans fil, des pilotes ouverts étant en cours de développement pour celui-ci. Le but étant de se fixer un prix inférieur à 15 (US)$, afin de rendre la plateforme de développement accessible au plus grand nombre[140].
L'Académie chinoise des sciences annonce en, qu'elle est en train de préparer la sortie de 2 000 ordinateurs portables basés sur des RV64GC d'ici la fin 2022 et pour cela travailler à l'optimisation pour RISC-V des moteurs deFirefox (spiderMonkey et soncompilateur à la volée (JIT)) et deChrome/Chromium (WebKit) afin qu'ils y fonctionnent correctement[141].
Legroupe Alibaba a conçu leXuanTie 910 (ou XT910), un SoC à destination desserveurs, composé de 16 cœurs RISC-V 64 bits RV64GCV, organisé en grappes de 4 cœurs comportant 32 ou 64 kb de cache de données et autant en cache d'instruction. Le groupe proclame que les performances d'un cœur sont du même ordre que celles d'unARM Cortex-A73[142].
L'union européenne a lancé un projet desupercalculateur basé sur l'architecture RISC-V, appeléEuropean Processor Initiative (EPI), financé par le programme EU horizon 2020, développé par 26 partenaires (dont la RISC-V Foundation, leCentro Nacional de Supercomputación (CNS ou BSC), leCEA,Infineon ou encoreSTMicroelectronics) de 10 pays. Un SoC utilisant l'architecture RISC-V pour les accélérateurs également développés en Europe, a pour but de produire un supercalculateur exascale, ainsi que de fournir le domaine de l'automobile, fondé sur des technologies européennes. L'utilisation d'architecture ARM comme processeur principal est envisagée mais pas certaine. Dans ce cas, RISC-V se limiterait aux accélérateurs de calcul. Le projet cherche à réutiliser les systèmes existants (déjà implémentés sousGNU/Linux)[143].
Microcontrôleur |
| ||||
---|---|---|---|---|---|
Microprocesseur |
| ||||
Accélérateur | |||||
Émulateur | |||||
Interpréteur | |||||
Simulateur |