ac6-formation, un département d'Ac6 SAS
FR
FrançaisEnglish
 
go-up

ac6 ac6-formation

RISC-V ou ARM Cortex : les différences qui comptent vraiment en projet

Le débat RISC-V contre ARM se résume souvent aux redevances de licence, ce qui est le point le moins intéressant pour une équipe qui doit livrer un produit. Les différences qui coûtent ou rapportent réellement sont ailleurs : dans la modularité du jeu d'instructions, dans ce que garantit une conformité, et dans la maturité de l'outillage.

Ce que « RISC-V » désigne exactement

ARM Cortex-M4 désigne un cœur précis, dont le comportement est spécifié par ARM et identique chez tous les fabricants qui l'intègrent. RISC-V ne désigne pas un cœur : c'est une spécification de jeu d'instructions, et n'importe qui peut en fabriquer une implémentation.

Un cœur RISC-V se décrit par une chaîne d'extensions. RV32IMAC signifie : 32 bits, jeu de base entier, multiplication et division, opérations atomiques, instructions compressées. Ajoutez F et D pour la virgule flottante simple et double précision, V pour le calcul vectoriel, B pour la manipulation de bits.

La conséquence est directe et souvent découverte tard : deux microcontrôleurs RISC-V peuvent ne pas exécuter le même binaire. Un code compilé pour RV32IMAFC ne tournera pas sur un cœur RV32IMC, faute d'unité flottante. Sur ARM, la compatibilité ascendante à l'intérieur d'un profil est bien plus contraignante pour le fabricant, donc bien plus confortable pour vous.

Les profils standardisés, du type RVA23, existent précisément pour réduire cette fragmentation, mais ils sont récents et concernent surtout le calcul applicatif.

Le vecteur d'interruption, exemple concret

Prenez le traitement des interruptions, que tout projet embarqué touche.

Sur Cortex-M, le NVIC est normalisé et intégré au cœur. La table de vecteurs, la priorité, l'empilement automatique des registres, le retour d'interruption : tout est identique d'un fabricant à l'autre. Un gestionnaire d'interruption écrit en C ordinaire fonctionne, parce que le cœur empile lui-même le contexte.

Sur RISC-V, le mécanisme de base ne définit qu'un vecteur unique et quelques registres de contrôle. Le contrôleur d'interruption, PLIC ou CLIC, est externe au cœur et varie selon l'implémentation. L'empilement du contexte est à votre charge, ou à celle du compilateur via un attribut spécifique.

Ce n'est ni mieux ni moins bien, c'est plus ouvert et moins uniforme. En pratique, cela signifie que le code de bas niveau est moins portable d'un silicium RISC-V à un autre qu'entre deux Cortex-M.

Maturité de l'outillage, écart réel

ÉlémentARM Cortex-MRISC-V
CompilateurGCC et LLVM matures depuis 15 ansGCC et LLVM solides, extensions récentes moins rodées
DébogueurCMSIS-DAP, sondes universellesOpenOCD, support variable selon le fabricant
TraçageITM, ETM normalisésdépend de l'implémentation
RTOStous, avec portage éprouvéZephyr et FreeRTOS bien portés, autres inégaux
Bibliothèques optimiséesCMSIS-DSP, CMSIS-NNéquivalents plus jeunes
Analyse statique certifiéeoffre largeoffre restreinte

L'écart le plus coûteux au quotidien n'est pas le compilateur, il est dans le traçage et le débogage. Sur un Cortex-M, une sonde standard et un ETM donnent une trace d'exécution non intrusive. Sur beaucoup de RISC-V, il faut composer avec ce que le fabricant a implémenté.

Là où RISC-V a un avantage décisif

L'extension du jeu d'instructions. Vous pouvez ajouter vos propres instructions pour un traitement spécifique, et la spécification réserve un espace d'encodage pour cela. Sur un algorithme cryptographique ou un filtre de traitement du signal propriétaire, un gain d'un facteur cinq à vingt est atteignable. C'est impossible sur ARM.

L'absence de dépendance à un fournisseur unique. Pour un produit à durée de vie longue, ou pour un marché soumis à des contraintes de souveraineté, pouvoir changer d'implémentation sans réécrire le logiciel applicatif a une valeur stratégique réelle.

Le coût sur très gros volumes, où la redevance par unité devient significative. En dessous de quelques centaines de milliers de pièces, cet argument ne pèse rien face au coût d'ingénierie.

Là où ARM garde l'avantage

L'écosystème de composants. Le nombre de microcontrôleurs ARM disponibles, avec leurs périphériques, leurs bibliothèques et leur documentation, reste sans commune mesure.

La sécurité intégrée. TrustZone-M, avec son attribution mémoire matérielle et son modèle de transition normalisé, n'a pas encore d'équivalent RISC-V aussi largement déployé. Les extensions de sécurité RISC-V existent mais leur adoption est inégale.

Le recrutement. Trouver un ingénieur qui connaît Cortex-M est simple. Le vivier RISC-V est plus étroit, ce qui se paie en temps de montée en compétence.

La certification. Pour un produit soumis à une norme de sûreté, disposer d'un cœur et d'une chaîne d'outils déjà qualifiés change radicalement le coût du dossier.

Comment décider

Choisissez ARM Cortex si le produit doit sortir vite, si l'équipe est déjà formée, si vous avez besoin de TrustZone ou d'une certification de sûreté, ou si le volume ne justifie pas un investissement d'architecture.

Choisissez RISC-V si vous avez un traitement spécifique qui gagnerait à des instructions dédiées, si l'indépendance vis-à-vis d'un fournisseur est une contrainte réelle, si le volume est très élevé, ou si vous intégrez le cœur dans votre propre circuit.

Et dans les deux cas, posez la question qui décide vraiment : de quelle chaîne d'outils et de quel support disposerez-vous dans sept ans. Pour un produit soumis à une obligation de correctifs de sécurité sur cinq ans minimum, c'est le critère qui pèse le plus lourd.

Références

Pour aller plus loin

Ces différences deviennent tangibles quand on a écrit un gestionnaire d'interruption sur les deux architectures et comparé ce que le cœur fait pour vous. C'est ce que couvrent notre formation à l'architecture RISC-V et nos cours sur l'architecture ARM Cortex.