C++ a obtenu le support de la nouvelle plateforme matérielle RISC-V

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

C++ a officiellement ajouté le support de l'architecture RISC-V : qu'est-ce que cela signifie pour les développeurs ?



Le monde des langages de programmation continue d'évoluer. Au début de ce mois, le Comité de normalisation C++ (WG21) et les équipes de développement des principaux compilateurs (GCC, Clang/LLVM) ont annoncé le support officiel complet de l'architecture matérielle ouverte RISC-V dans les versions actuelles de C++17, C++20 et le futur C++23. Cet événement marque une nouvelle étape dans le développement du langage, traditionnellement considéré comme le « roi » des systèmes embarqués et du calcul haute performance.



Auparavant, C++ disposait déjà d'un support expérimental pour RISC-V, mais celui-ci est désormais devenu stable. Cela signifie que les développeurs peuvent utiliser les fonctionnalités modernes du langage (templates, constexpr, coroutines, ranges) sur des microcontrôleurs, des serveurs et même des supercalculateurs construits sur cette architecture, sans risquer de rencontrer des erreurs de compilation non documentées.



Pourquoi RISC-V est-elle si importante pour C++ ?



RISC-V n'est pas simplement un processeur de plus. C'est une architecture modulaire ouverte que tout fabricant peut utiliser sans redevances de licence. Contrairement à ARM ou x86, où l'écosystème est strictement contrôlé par les fournisseurs, RISC-V offre une liberté totale : des startups fabriquant des puces IoT aux projets gouvernementaux cherchant l'indépendance technologique.



Pour C++, c'est un environnement idéal :

  • Contrôle bas niveau. Le langage permet d'écrire du code très proche du matériel, et RISC-V dispose d'un jeu d'instructions simple et prévisible.
  • Évolutivité. Des microcontrôleurs 8 bits (RV32E) aux systèmes multiceurs 64 bits (RV64GC) — C++ fonctionne partout.
  • Sécurité. Les nouvelles normes C++20/23 ajoutent des modules, des concepts et une gestion améliorée de la mémoire, ce qui est crucial pour les appareils RISC-V sans MMU complexes.


Qu'est-ce qui a changé concrètement ?



Les principales innovations ayant obtenu le statut « production-ready » :

  • GCC 13+ et Clang 16+ : prennent en charge complètement les extensions RISC-V (instructions vectorielles V, instructions compressées C, opérations atomiques A).
  • Bibliothèque standard : adaptée pour fonctionner avec les temporisateurs matériels, les interruptions et le multithreading sur RISC-V.
  • Outillage : QEMU dispose désormais d'un modèle de référence RISC-V avec un support complet du débogage GDB pour C++.
  • Systèmes d'exploitation : Linux 6.x et FreeBSD pour RISC-V prennent en charge complètement les applications C++ (y compris std::thread, std::filesystem).


Exemples pratiques d'utilisation



Dès maintenant, les développeurs portent activement des frameworks C++ complexes sur RISC-V :

  • Moteurs de jeux (Godot, Unity — expérimentalement).
  • Bibliothèques d'apprentissage automatique (TensorFlow Lite, ONNX Runtime).
  • Bibliothèques cryptographiques (OpenSSL, Botan).

Le projet SiFive suscite un intérêt particulier, où des applications C++ complètes avec des coroutines pour les entrées-sorties asynchrones dans les réseaux IoT sont exécutées sur des puces RISC-V.



Et ensuite ?



Le comité C++ a déjà annoncé des groupes de travail pour optimiser l'ABI (interface binaire) pour RISC-V et ajouter des attributs matériels standard (par exemple, pour l'accès direct aux registres). On s'attend à ce que d'ici 2025, RISC-V puisse

Recommended Libraries