Aller au contenu

« RISC-V » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Popolon (discuter | contributions)
Popolon (discuter | contributions)
Ligne 215 : Ligne 215 :
* {{Ouvrage|langue=ja| auteur1=デイビッド・パターソン (David A Patterson)| nom1=Patterson|auteur2=アンドリュー・ウォーターマン (Andrew Waterman)| nom2=Waterman| traducteur=成田光彰|nom traducteur=Narita| titre=RISC-V原典 (リスクファイブ原典) : オープン・アーキテクチャのススメ| éditeur=日経BP| année=2018| pages totales=224| isbn=978-4-822292-812}}
* {{Ouvrage|langue=ja| auteur1=デイビッド・パターソン (David A Patterson)| nom1=Patterson|auteur2=アンドリュー・ウォーターマン (Andrew Waterman)| nom2=Waterman| traducteur=成田光彰|nom traducteur=Narita| titre=RISC-V原典 (リスクファイブ原典) : オープン・アーキテクチャのススメ| éditeur=日経BP| année=2018| pages totales=224| isbn=978-4-822292-812}}
* {{Ouvrage|langue=en| auteur=Jim Ledin|nom1=Ledin| titre=Modern Computer Architecture and Organization : Learn X86, ARM, and RISC-V Architectures and the Design of Smartphones, PCs, and Cloud Servers| lieu=Birmingham| éditeur=Packt Publishing| année=2020| isbn=978-1-838987-107}}
* {{Ouvrage|langue=en| auteur=Jim Ledin|nom1=Ledin| titre=Modern Computer Architecture and Organization : Learn X86, ARM, and RISC-V Architectures and the Design of Smartphones, PCs, and Cloud Servers| lieu=Birmingham| éditeur=Packt Publishing| année=2020| isbn=978-1-838987-107}}
* {{Ouvrage|langue=en| auteur1=Vladimir Herdt|nom1=Herdt| auteur2=Daniel Große|nom2=Große| auteur3=Rolf Drechsler|nom3=Drechsler| titre=Enhanced Virtual Prototyping: Featuring RISC-V Case Studies| lieu=Cham| éditeur=Springer| année=2021| isbn=978-3-030-54827-8| doi=10.1007/978-3-030-54828-5}}


=== Liens externes ===
=== Liens externes ===

Version du 26 janvier 2021 à 21:43

RISC-V
Prototype de processeur utilisant l'architecture RISC-V en janvier 2013
Présentation
Type
Fondation
Sites web

RISC-V (prononcé en anglais « RISC five » et signifiant « RISC cinq »), est une architecture de jeu d'instruction (instruction set architecture ou ISA) RISC ouverte et libre, comprenant des versions 32, 64 et 128 bits, c'est-à-dire aux spécifications ouvertes et pouvant être utilisées librement par l'enseignement, la recherche et l'industrie. Il est implémenté dans différents SoC, à destination de l'embarqué, des objets connectés (ou entre autres, Arduino peut être utilisé avec RT-Thread), d'ordinateurs légers sous formes de SBC, généralement avec Linux, de serveurs, et un projet européen initié en 2019, vise à l'utiliser dans des supercalculateurs domestiques comme accélérateurs au sein de SoC basse consommation développés localement et fonctionnant sous GNU/Linux, comme la grande majorité des supercalculateurs.

Motivations

Ce projet, créé initialement dans 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 de jeu d'instructions de microprocesseur, à l'image du standard TCP/IP pour les réseaux ou de Linux pour le noyau, l'architecture des processeurs étant pour le moment toujours fermée, restreignant les progrès, les implémentations ou le support dans les systèmes d'exploitation[1].

Historique

Prototype du RISC-V dans la main de Yunsup Lee en 2013

La conception du processeur commence en 2010, à l'université de Californie Berkeley, dans le but de développer un processeur avec les connaissances du XXIe siècle, n'ayant pas à traîner la compatibilité avec des architectures vieilles de 20 ans, comme ARM ou l'architecture x86 d'Intel et en voulant par la même que l'architecture de jeu d'instruction du processeur (ISA) reste ouvert[2]

En 2014, la version 2.0 des spécifications est publiée, plusieurs industriels importants sont intéressés par le projet [2].

En 2015, la fondation RISC-V est créée avec plus de 100 membres, et un directoire composé d'entreprises comme Google, Nvidia, Western Digital, NXP Semiconductors, Microsemi, et Bluespec, ainsi que des représentants de l'Université de Berkeley. Depuis, des compagnies telles que AMD, Qualcomm, et IBM l'on rejoint[2].

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[3],[2]. Le Falcon est également un processeur d'architecture RISC, mais avec adressage limité à 32 bits et pas de protection de threads 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'instruction extensible et d'une amélioration de la sécurité[4].

En 2017, la version 2.2 des spécifications est publiée. Mozilla annonce que son langage Rust 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, avec un contrôleur d'architecture RISC-V[2].

En 2019, le gouvernement américain de Donald Trump, met la pression sur les fondeurs de micro-électronique, tels que le taïwanais TSMC, le plus important au monde, pour qu'ils déménagent sur le sol américain, ce que ce dernier refuse[5], tout en menaçant ceux qui continueraient de travailler avec les entreprises chinoises telles que Huawei[6]. À la suite des risques politiques de ces pressions, la Fondation a décidé de s'implanter dans un pays neutre : la Suisse[7],[6],[3].

En octobre 2019, Nvidia cherche des spécialistes RISC-V pour l'intégrer comme processeur au sein de ses SoC Tegra[3].

En octobre 2020, Huawei sort ses premiers kits de développement matériel et logiciel pour ses nouveaux microcontrôleurs maison, ils utilisent un compilateur vers l'architecture RISC-V[8].

Spécifications

Elle implémente un jeu d'instruction RISC, sans microcode, ni surcouche d'architecture du type exé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.

  • révision de 2008 du standard IEEE-754 pour l'unité de calcul de nombres en virgule flottante.
  • Adressage 32, 64 ou 128 bits.
  • Possibilité pour chaque implémentation d'apporter des instructions étendues.
  • Support d'implémentation multicœurs hautement parallèles et d'architecture multiprocesseurs hétérogènes.
  • Instructions de longueur variable en option, 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.
  • Une architecture complètement virtualisable pour faciliter le développement d'hyperviseur.

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[9].

Nomenclature des extensions

Le nom du processeur a une signification :

  • La base est constituée de RV (pour RISC-V), puis de 32, 64 ou 128, selon le nombre de bits, et enfin, d'un I ou d'un E (embedded, c'est-à-dire embarqué)[10].

Le nom du processeur est suivi d'une ou plusieurs lettres décrivant les extensions qui sont ajoutées à la base[10] :

  • M – Extension standard de multiplications et divisions entières ;
  • A – Extension standard d'instructions atomiques ;
  • F – Extension standard de virgule flottante simple précision (32 bits) ;
  • D – Extension standard de virgule flottante double précision (64 bits) ;
  • G – Général, raccourci pour les instructions de base, et les jeux d'instructions ci-dessus, c'est à dire, M,A,F,D)
  • Q – Extension standard de virgule flottante quadruple précision (128 bits) ;
  • L – Extension standard de virgule flottante, décimal ;
  • C – Extension standard de d'instructions compressées ;
  • B – Extension standard de manipulations de bits ;
  • J – Extension standard de langages traduits dynamiquement (Compilation à la volée, Just in time ou JIT), cela concerne les langages de scripts tels que C#, Go, Haskell, Java, JavaScript, Lua, OCaml, PHP, Python, R, Ruby, Scala ou encore WebAssembly, etc ;
  • T – Extension standard de mémoire transactionnelle ;
  • P – Extension standard d'instructions SIMD compactées (Packed SIMD) ;
  • V – Extension standard d'opérations vectorielles ;
  • N – Extension standard d'interruptions utilisateur ;
  • H – Extension standard de hyperviseur.

ISA 32 bits de base

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éparties dans les catégories calcul, contrôle de flux et accès mémoire[11].

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 comporte en plus un registre PC[12].

Instructions de calcul

Toutes les instructions de calcul utilisent trois opérandes, sauf lui et auipc qui n'en on que deux (un registre destination et une valeur immédiate). Le premier opé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 un i dans le mnémonique de l'instruction, sauf auipc ayant un autre sens)[11] (Les instructions de multiplication et division entières sont contenus dans l'extension M) :

  • add, addi, sub : addition et soustraction addi est utilisé avec une valeur immédiate négative pour la soustraction d'une valeur immédiate.
  • sll, slli, srl, srli, sra, srai : décalage bit à bit (shift) + gauche/droite (en), logique (logical) ou arithmétique (arithmetic).
  • and, andi, or, ori, xor, xori : opérations logiques bit à bit comprenant et (and), ou (or) et ou exclusif (xor).
  • slt, slti, sltu, sltui, (set if less than) 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 (load upper immediate) charge, les bits 12 à 31 du registre de destination avec une valeur immédiate sur 20 bits. Il faut utiliser addi 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 du compteur ordinal (PC), il faut également utilisé addi pour les 12 bits de poids faible

Contrôle de flux

Instruction de branchement conditionnels[11] :

  • beq, bne, blt, bltu, bge, bgeu, instruction de branchement (branch) conditionnel à deux opérateurs, égal (equal), différent (not equal), plus petit (littler than), plus grand ou égal (greater or equal), signé (par défaut) ou non (unsigned).

Branchements inconditionnels[11] :

  • jal (jump and link), 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 registre de destination.
  • jalr (jump and link, 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 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.

Accès mémoire

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éterminé l'adresse finale[11] :

  • lb, lbu, lh, lhu, lw, chargement (load) d'un , un octet (byte), demi-mot (half-word, 16 bits), ou mot (mot 32 bits) de la mémoire vers un registre de destination. Les instructions sont étendues par le signe (défaut) ou par des zéro (unsigned).
  • sb, sh, sw, stockage (store), un octet (byte), demi-mot (half-word, 16 bits), ou mot (mot, 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 cache.
  • fence.i, permet de s'assurer que les opération depuis stockage vers les mémoires d'instructions (par exemple cache instruction) soient terminés avant son exécution. Elle est principalement utilisé dans le cas de code automodifié.

Instructions système

Une instruction sert à invoquer un appel système et un autre initialise un point d'arrêt pour le débogueur[11] :

  • ecall, appel système
  • break, ajout d'un point d'arrêt.

Six instructions servent à lire et écrire dans les registres de contrôle et statu 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[11] :

  • 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éfinit en lecture seule [11] :

  • cycle, cycleh, compteur de cycles d'horloges passé 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'instruction processeur exécutées (instruction retired.

ISA 64 bits de base

Extension vectorielle

L'extension vectorielle 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[13].

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 six registre de contrôle et statut (en) (CSR) (vstart, vxsat, vxrm, vtype, vl, vlenb) [13].

Support logiciel

Une série d'outils libres est proposée pour le développement sur cette architecture, incluant la compatibilité des compilateurs GCC et LLVM (donc Clang), le support du débogueur GDB, ainsi que de l'hyperviseur et émulateur QEMU[14].

Cette architecture est supportée en par le noyau Linux via un ensemble de patchs ainsi que par FreeBSD[15]. 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.

Il est possible de simuler ces architectures via l'hyperviseur QEMU, ainsi que par ANGEL (un simulateur RISC-V en HTML5 et JavaScript) ou via les cartes ZedBoard et Zybo comportant des FPGA Xilinx Zynq[16],[17].

L'émulation de RISC-V (32 et 64 bits) est supportée nativement dans Qemu à partir de la version 2.12.0 sortie le [18].

Le langage de script MicroPython, version adaptée aux microcontrôleurs de Python, a été porté en 2017 par Microsemi sur architecture RISC−V[19].

Arduino fonctionne sur les microcontrôleurs GD32V de GigaDevice. Il peut utiliser pour cela le système temps réel RT-Thread et l'interface graphique RTT-GUI d'Arduino[20].

Les systèmes d'exploitation pour internet des objets, LiteOS (licence BSD) et pour plateformes mobiles HarmonyOS de Huawei[8].

Le logiciel d'aide à la découverte de failles de sécurité, afin de pouvoir les exploiter[21], du service de renseignement des États-Unis, NSA, Ghidra, supporte le format binaire de cette architecture[22].

En janvier 2020, Alibaba fait une démonstration d'Android 10 porté par T-Head sur leur SoC ICE EVB comportant 2 cœurs RISC-V 64 bits XuanTie C910, un cœur vectoriel XuanTie C910V et un GPU Vivante GC8000UL[23].

Implémentations

Carte Sipeed Nano avec écran LCD

Le microprocesseur libre LowRISC, est un projet d'implémentation libre et ouverte de RISC-V, créé par Andrew Huang (du MIT, également auteur de la plate-forme ouverte Novena), Julius Baxter (projet OpenRISC et université 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).

SiFive, une startup annonce en , le SiFive U5 Coreplex, utilisant l'architecture RISC-V et permettant d'implanter jusqu'à huit cœurs U54 par SoC, comprenant chacun du cache instruction et données de 1er niveau, le SoC contient un plus large cache de 2e 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[24].

Carte SiFive HiFive1

En 2018, la startup SiFive, créée par des développeurs de RISC-V, présente au FOSDEM la carte HiFive 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 tourner GNU/Linux[25].

Shakti est une initiative indienne de conceptions de différents processeurs basés sur l'architecture RISC-V et divisés en 3 séries E-class pour l'embarqué, C-Class pour les microcontrôleurs, et 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[26].

Embarqué et microcontrôleurs

Carte Sipeed MaixDuino comportant deux cœurs RV64GC, un circuit AI, et épaulé par un ESP32 avec son DSP

Lors du 7e RISC-V workshop, Western Digital a annoncé que la compagnie allait développer des processeurs RISC-V. Le but de Western Digital est d'entamer une transition vers des solutions open-source pour ses serveurs de stockage. À terme, WD espère vendre près de deux milliards de processeurs RISC-V par an.

En 2018, la startup grenobloise fabless GreenWave, présente le GAP8, un processeur basse consommation pour IoT, optimisé pour l'intelligence artificielle[27].

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 à sa mémoire flash intégrée sans wait states (en), donc, sans latence. Il comporte 128 Kio de mémoire flash intégrée à la puce, et 32 Kio de SRAM, 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)[28]. La puce est compatible broche-à-broche avec ses microcontrôleurs GD32 basés sur l'architecture ARM[29], ainsi que le STM32 de STMicroelectronics[30], permettant ainsi de porter facilement les applications d'une architecture à l'autre[29] et également compatible Arduino[20]. Des GD32V sont notamment utilisés dans la carte de développement Sipeed Longan Nano.

Sipeed a également développé la carte Sipeed M1 (ou Kendryte KD233), équipée d'un SoC Kendryte K210 comportant 2 cœurs RISC-V 64 bits et un processeur d'intelligence artificielle. Ces cartes sont prévues pour fonctionner avec FreeRTOS[31]. Cette carte utilise MAIXPy, une version adaptée de MicroPython, programmable via Plateform.IO. Différentes déclinaisons comme MaixDuino, dont la carte à un format compatible avec l'Arduino, et supporte l'IDE[32]. Il est également possible de l'utiliser avec un système d'exploitation Linux. D'autres versions, plus compactes sont déclinées.

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 processeurs HiSilicon de Huawei. La société américaine Nvidia ayant racheté au japonais SoftBank 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, Huawei LiteOS et HarmonyOS. Les compilateurs fournis avec sont des compilateurs GCC à destination de codes d'architecture RISC-V 32 bits[8].

Modules réseaux

OpenWifi, présenté en décembre 2019, 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[33]

Les modules BL602/BL604 de Bouffalo Lab, basés sur du RISC-V 32-bit, sont des modules WiFi & Bluetooth 5.0 LE. Sipeed et Pine64 devraient les intégrer dans leurs cartes à destination de l'IoT[34].

En novembre 2020, Espressif annonce, la sortie du ESP32-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. Il comporte un processeur cryptographique, mais pas de DSP contrairement à l'ESP32[35].

Divers

Pinecil est un fer à souder à régulation électronique, basé sur un processeur RISV-V RV32IMAC "Bumblebee Core" à 108 Mhz[36].

FPGA

ZedBoard et Zybo comportant des FPGA Xilinx[16].

La carte en matériel libre, LicheeTang, de LicheePi, présentée en , carte utilisant un microcontrôleur basé sur l'architecture RISC-V et utilisant un FPGA, utilise un Anlogic EG4S20. Elle comporte des GPIO afin de pouvoir y connecter différents types d'éléments électroniques[37].

La carte Tang Nano FPGA, présentée en octobre 2019, de Sipeed, utilise quant à elle un FPGA GOWIN Semi GW1N de sa famille LittleBee family[38].

La série de cœurs de processeurs Hummingbird E200 (ou HBird E200) est une implémentation chinoise open-source de RISC-V et comprend des implémentations FPGA[39].

En décembre 2019, OpenWiFi est présenté. C'est une pile WiFi matérielle et logicielle libre fonctionnant sur FPGA, avec une implémentation sur Xilinx[33].

En juin 2020, Efinix propose 3 architectures 32 bits RISCV32I optimisées pour le FPGA Trion[40]

En juillet 2020, la carte open-source SAVVY-V basée sur le SOC 64 bits PolarFire[41]. Le PolarFire 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 décembre 2019, il sort finalement au 3e semestre 2020[42]. PolarBerry est une variante également proposée en crawdfunding en octobre 2020[43].

SBC

Différentes cartes de type SBC de classe MCU, et fonctionnant sous Linux, sont présentées à partir de 2018, tentant de se fixer un prix similaire aux populaires Raspberry Pi : La SBC HiFive Unleashed (en) est présentée en février 2018, basée sur un SoC comportant quatre cœurs U54 RV64GC (64 bits) à 1,5 GHz et 8 Gio de RAM ECC de type DDR4, sur la base d'un financement participatif[44].

Imagination Technologies et le laboratoire RISC-V International Open Source (RIOS) se sont associés pour faire une carte de type SBC appelée PicoRio, dévoilée en septembre 2020 au RISC-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[45].

En novembre 2020, Sipeed annonce une SBC utilisant un SoC AllWinner, 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, H264 et H265, 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[46]

En janvier 2021, la SBC BeagleV utilisant un SoC StarFive JH7100 comportant un processeur RISC-V double-cœur SiFive U74, un DSP Vision DSP Tensilica-VP6, un moteur NVDLA (architecture ouverte NVIDIA Deep Learning Accelerator), et un moteur de réseau neuronal pour l'accélération d'AI. 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 LPDRR4, de 4 ports USB 3.0, d'un port ethernet 10Gb, HDMI 2.0, DSI, deux ISP, un port 40 broches et alimenté par USB-C[47].

Serveurs

Le groupe Alibaba a conçu le XuanTie 910 (ou XT910), un SoC à destination des serveurs, 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'un ARM Cortex-A73[48].

Supercalculateurs

L'union européenne a lancé un projet de supercalculateur 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, le Centro Nacional de Supercomputación (CNS ou BSC), le CEA, Infineon ou encore STMicroelectronics) 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, basé 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 sous GNU/Linux)[49].

Annexes

Notes et références

  1. (en) « RISC-V: An Open Standard for SoCs », EETimes (consulté le )
  2. a b c d et e (en) Lucian Armasu, « Big Tech Players Start To Adopt The RISC-V Chip Architecture », sur Tom's Hardware,
  3. a b et c (en) Lucian Armasu, « Nvidia Job Listings Point to Ambitious RISC-V Plans », sur Tom's Hardware,
  4. (en) William G. Wong, « The Rise of RISC-V on Display at Workshop », 5 décembre 2017 site=electronicdesign
  5. (en) Nathaniel Mott, « TSMC Doesn't Want to Make Its Chips in the US », sur Tom's Hardware,
  6. a et b (en) Nathaniel Mott, « Report: RISC-V Plans to Move From the US to Switzerland », sur Tom's Hardware,
  7. « RISC V déménage en Suisse pour échapper à la guerre commerciale sino-américaine », sur 01Net
  8. a b et c (en) Jean-Luc Aufranc, « Hi3861 based HiSpark WiFi IoT development board supports LiteOS and HarmonyOS », sur CNX-Software,
  9. (en) « BOOM Open Source RISC-V Core Runs on Amazon EC2 F1 Instances », sur CNX Software,
  10. a et b (en) Jean-Luc Aufranc, « RISC-V Bases and Extensions Explained », sur CNX-Software,
  11. a b c d e f g et h Jim Ledin, « The RISC-V Architecture », sur DZone,
  12. (en) Andrew Waterman et Krste Asanović, The RISC-V Instruction Set ManualVolume I: User-Level ISA Document Version 2.2, CS Division, EECS Department, University of California, Berkeley, (lire en ligne)
  13. a et b (en) RISC-V "V" Vector Extension (lire en ligne)
  14. (en) « Download - RISC-V », sur riscv.org consulté le=17 août 2014
  15. « [base] Revision 295041 », sur svnweb.freebsd.org (consulté le )
  16. a et b (en) « Getting Started with RISC-V », sur riscv.org (consulté le ), archive
  17. (en) « riscv-tools », sur riscv.org (consulté le )
  18. (en) « ChangeLog/2.12 - RISC-V », sur qemu
  19. « RISC-V Poster Preview — 7th RISC-V Workshop », (consulté le )
  20. a et b (en) « Gd32v », sur Arduinolibraries.info
  21. (en) « Ghidra Software Reverse Engineering Framework », sur Github
  22. (en) « "ghidra/Ghidra/Processors at Ghidra_9.2_build" », sur Code siource de Ghidra sur Github, (consulté le )
  23. (en) Jean-Luc Aufranc, « Android 10 ported to RISC-V board powered by Alibaba T-Head XuanTie C910 Processor », sur CNX-Software,
  24. (en) Nicole Hemsoth, « Startup Takes a Risk on RISC-V Custom Silicon », sur The Next Platform,
  25. Alasdair Allan, « Is RISC-V Finally Taking Off? », sur Hacksters.io,
  26. (en) « Processors », sur shakti.org.in
  27. (en) Jean-Luc Aufranc, « GreenWaves GAP8 is a Low Power RISC-V IoT Processor Optimized for Artificial Intelligence Applications », sur CNX-Software, 27f évrier 2018
  28. (en) GigaDevice Semiconductor Inc, GD32VF103 User Manual, , 533 p. (lire en ligne)
  29. a et b Gerhard Steizer, « RISC-V for everybody », sur Elektronknet.de,
  30. (en) Jean-Luc Aufranc, « GigaDevice GD32 is a Faster, Software and Pin-to-pin STM32 Compatible Cortex M3 MCU », sur CNX-Software,
  31. (en) Brian Benchoff, « New Part Day: The RISC-V Chip With Built-In Neural Networks », sur Hack a Day,
  32. Kadionik Patrice, « Maixduino : faites de l’IA sur un processeur RISC-V », Hackable, no 36 mois=janvier,‎ (lire en ligne)
  33. a et b (en) Jean-Luc Aufranc, « OpenWiFi Open-Source Linux-compatible WiFi Stack Runs on FPGA Hardware », sur CNX-Software,
  34. (en) Jean-Luc Aufranc, « BL602/BL604 RISC-V WiFi & Bluetooth 5.0 LE SoC will sell at ESP8266 price point », sur CNX-Software
  35. (en) Jean-Luc Aufranc, « ESP32-C3 WiFi & BLE RISC-V processor is pin-to-pin compatible with ESP8266 », sur CNX-Software,
  36. (en) Gareth Halfacree, « Pine Opens Orders for Its RISC-V-Powered Pinecil Smart Soldering Iron — with Free Breakout Board », sur Hackster.io,
  37. (en) « LicheeTang Anlogic EG4S20 FPGA Board Targets RISC-V Development », sur CNX Software,
  38. « $5 Tang Nano FPGA Board Features GOWIN GW1N “LittleBee” FPGA », sur CNX Software,
  39. (en + zh) « Hummingbird E200 Opensource Processor Core », sur GitHub
  40. (en) Jean-Luc Aufranc, « Efinix Releases Three RISC-V Software-Defined SoC’s Optimized for Trion FPGA’s », sur Cnx-Software,
  41. Jean-Luc Aufranc, « PolarBerry is a Compact, Linux-capable RISC-V FPGA SBC and module (Crowdfunding », sur CNX Software,
  42. Jean-Luc Aufranc, « PUpcoming SAVVY-V Open Source RISC-V Cluster Board Supports 10GbE via Microsemi PolarFire 64-bit RISC-V SoC », sur CNX Software,
  43. Jean-Luc Aufranc, « PolarBerry is a Compact, Linux-capable RISC-V FPGA SBC and module (Crowdfunding », sur CNX Software,
  44. Jean-Luc Aufranc, « SiFive Introduces HiFive Unleashed RISC-V Linux Development Board (Crowdfunding) », sur CNX Software,
  45. Jean-Luc Aufranc, « PicoRio Linux RISC-V SBC is an Open Source Alternative to Raspberry Pi Board », sur CNX-Software,
  46. Jean-Luc Aufranc, « XuanTie C906 based Allwinner RISC-V processor to power $12+ Linux SBC’s », sur CNX-Software,
  47. Jean-Luc Aufranc, « $119+ BeagleV powerful, open-hardware RISC-V Linux SBC targets AI applications », sur CNX-Software,
  48. (en) Jean-Luc Aufranc, « More Details about Alibaba XT910 64-bit RISC-V Core », sur CNX Software,
  49. (en) « How the European Processor Initiative is Leveraging RISC-V for the Future of Supercomputing », sur Inside HPC,

Bibliographie en ligne

  • (en) Andrew Waterman et Krste Asanović, The RISC-V Instruction Set Manual — Volume I: Unprivileged ISA, CS Division, EECS Department, University of California, Berkeley, (lire en ligne)
  • (en) Andrew Waterman et Krste Asanović, The RISC-V Instruction Set Manual — Volume II: Privileged Architecture, CS Division, EECS Department, University of California, Berkeley, (lire en ligne)

Bibliographie papier

  • (en) Andrew Shell Waterman, Design of the RISC-V Instruction Set Architecture, Berkeley, CA, (OCLC 957714390) (dissertation pour un Ph. D. in Computer Science University of California, Berkeley 2016)
  • (en) John L. Hennessy et David A. Patterson, Computer Organization and Design RISC-V Edition, Morgan Kaufmann, , 696 p. (ISBN 978-0-12-812275-4)
  • (zh) 胡振波, 手把手教你设计CPU:RISC-V处理器篇, 人民邮电出版社,‎ , 480 p. (ISBN 978-7-115-48052-1, présentation en ligne)
  • (ja) デイビッド・パターソン (David A Patterson) et アンドリュー・ウォーターマン (Andrew Waterman) (trad. 成田光彰), RISC-V原典 (リスクファイブ原典) : オープン・アーキテクチャのススメ, 日経BP,‎ , 224 p. (ISBN 978-4-822292-812)
  • (en) Jim Ledin, Modern Computer Architecture and Organization : Learn X86, ARM, and RISC-V Architectures and the Design of Smartphones, PCs, and Cloud Servers, Birmingham, Packt Publishing, (ISBN 978-1-838987-107)
  • (en) Vladimir Herdt, Daniel Große et Rolf Drechsler, Enhanced Virtual Prototyping: Featuring RISC-V Case Studies, Cham, Springer, (ISBN 978-3-030-54827-8, DOI 10.1007/978-3-030-54828-5)

Liens externes