Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Embarqué

Accélérez vos applications avec des instructions personnalisées RISC-V sur mesure

L'architecture d'ensemble d'instructions (ISA) ouverte de RISC-V offre une flexibilité inégalée, permettant aux développeurs de concevoir des extensions qui correspondent précisément aux exigences de leurs applications. Si le processeur de base peut être configuré avec des extensions standard, le véritable avantage réside dans la création de nouvelles instructions qui répondent à des défis spécifiques de performance ou de consommation d'énergie.

Le défi logiciel des ISA fixes

Historiquement, les ISA étaient la propriété intellectuelle exclusive de vendeurs commerciaux. Les développeurs embarqués devaient benchmarker plusieurs ISA fixes pour trouver le meilleur ajustement à leurs charges de travail, mais l'impossibilité de modifier la sémantique des instructions signifiait que des optimisations critiques – comme une instruction de chiffrement dédiée – étaient impossibles. Cette limitation forçait souvent les concepteurs à se reposer uniquement sur la mise à l'échelle du processus ou l'intégration de périphériques pour atteindre la différenciation, ce qui peut être coûteux et limité dans le temps.

L'ISA RISC-V a vu le jour à UC Berkeley et est maintenant gérée par l'association RISC-V International, une organisation à but non lucratif comptant plus de 300 membres. Sa licence libre et ouverte donne aux développeurs une page blanche : un cœur standard qui peut être étendu, ou un tout nouveau design construit à partir de zéro.

Les ISA ouverts attirent le monde universitaire, les start-ups et les grandes entreprises. Ils peuvent être utilisés dans des FPGA, des SoC, ou comme cœur de microcontrôleur, et supportent une gamme de modèles économiques – de l'IP commercial à l'open source en passant par le silicium personnalisé.

Exploiter la flexibilité de RISC-V

Commencer est simple. Un point d'entrée typique est la configuration 32 bits RV32IM, qui inclut les extensions entières « I » et multiplication « M ». Les outils de simulation permettent d'instancier un ISA de base, d'attacher un modèle de mémoire avec des délais réalistes, et d'exécuter du code C/C++ sur un processeur virtuel.

En utilisant un IDE comme Eclipse et le débogueur GNU (GDB), les développeurs peuvent profiler les applications, identifier les points chauds, et modéliser des instructions personnalisées candidates. La spécification RTL résultante et les estimations de performance sont ensuite réinjectées dans la boucle de développement.

Accélérez vos applications avec des instructions personnalisées RISC-V sur mesure

Considérez le chiffrement ChaCha20 – un benchmark courant dans les dispositifs basse consommation. Après la compilation d'un binaire RV32IM vanilla et l'exécution d'un profileur de blocs de base, la majorité du temps d'exécution se concentre dans les opérations XOR et rotation du « quarter-round » (voir Figure 2).

Accélérez vos applications avec des instructions personnalisées RISC-V sur mesure

Les outils de visualisation produisent un arbre repliable de statistiques d'exécution, facilitant l'identification des fonctions dominantes – comme processWord() – et leurs sous-appels (Figure 3).

Accélérez vos applications avec des instructions personnalisées RISC-V sur mesure

Une fois le goulot de performance identifié, l'étape suivante consiste à concevoir des instructions personnalisées qui consolident le motif XOR-plus-rotation en une seule micro-opération. Comme RISC-V est une architecture load-store, ces instructions doivent opérer sur des registres 32 bits, les rendant adaptées à l'espace d'opcode custom-1.

Accélérez vos applications avec des instructions personnalisées RISC-V sur mesure

Avec les règles d'encodage de l'ISA, les sept bits de poids faible identifient l'opcode, tandis que trois bits funct3 laissent place à huit opérations distinctes. Quatre d'entre elles – XOR plus une rotation gauche de 7, 8, 12 ou 16 bits – suffisent pour ChaCha20.

Avant de s'engager dans le matériel, les développeurs modélisent ces instructions dans l'environnement ISS en utilisant l'API VMI d'OVP. Cette étape de simulation rapide vérifie la correction fonctionnelle et donne un premier aperçu des gains de performance.

Deux approches existent pour la validation fonctionnelle :

  1. Invoquer la routine C/C++ originale et lier les nouvelles instructions via l'assemblage en ligne (Figure 5a).
  2. Implémenter les instructions comme des morph ops VMI qui reproduisent le même comportement (Figure 5b).
Accélérez vos applications avec des instructions personnalisées RISC-V sur mesure
Accélérez vos applications avec des instructions personnalisées RISC-V sur mesure

Après recompilation de l'application avec l'assemblage en ligne, le simulateur rapporte une réduction dramique du nombre d'instructions et du temps de cycle :

Résultats avec l'implémentation C originale

Info Simulated instructions: 316,709,013
Info Simulated time: 5.15 seconds

Accélérez vos applications avec des instructions personnalisées RISC-V sur mesure

Résultats avec instructions personnalisées

Info Simulated instructions: 60,474,426
Info Simulated time: 1.38 seconds

Avec les nouvelles instructions, la fonction processWord() consomme toujours la majeure partie du temps d'exécution (≈66 %) mais l'algorithme global est maintenant trois fois plus rapide.

Un raffinement supplémentaire consiste à attribuer des latences de cycle réalistes à chaque instruction personnalisée et à re-profiler, y compris les états d'attente mémoire qui apparaîtraient dans une implémentation silicium.

Comme l'ISS s'intègre parfaitement avec Eclipse et GDB, le débogage complet de l'application hôte et de l'ISA personnalisée peut être effectué avant l'engagement matériel.

Accélérez vos applications avec des instructions personnalisées RISC-V sur mesure

De la simulation à l'implémentation RTL

Avec des métriques de performance validées en main, les développeurs traduisent les instructions personnalisées en RTL. Le modèle fonctionnel généré précédemment et le plan de vérification servent de référence « gold-standard », réduisant les risques lors de la synthèse et de la fermeture de timing.

La documentation suit le même flux : les modèles de processeurs rapides OVP incluent une documentation templatée qui peut être étendue pour décrire les nouvelles instructions. Une fois formatée en TeX, un PDF est généré pour référence communautaire (Figure 8).

Accélérez vos applications avec des instructions personnalisées RISC-V sur mesure

Conclusion

L'ISA ouvert de RISC-V débloque un monde d'extensions personnalisées qui peuvent améliorer considérablement la performance des applications, réduire la consommation d'énergie, et respecter des délais temps-réel stricts – des capacités que les ISA fixes ne peuvent égaler. En profilant de vraies charges de travail, en modélisant des instructions personnalisées en simulation, et en vérifiant rigoureusement le RTL, les développeurs peuvent amener en confiance du silicium sur mesure sur le marché avec des gains prouvés.

Embarqué

  1. Profiler les applications distribuées avec Linux perf : Guide pratique
  2. Microchip lance des MCUs basés Arm pour missions spatiales évolutives : du COTS au radiodurci
  3. Renesas lance RX72M : MCUs avec EtherCAT intégré pour automatisation industrielle
  4. Axiomtek tBOX400-510-FL : PC transport dual-processeur avec switch PoE géré 10 ports intégré
  5. Maîtriser la renégociation des coûts avec les fournisseurs existants — Guide pratique
  6. Routeur CNC bois : Polyvalence et précision pour meubles haut de gamme et plus
  7. IA dans l'assurance : Guide pratique de démarrage pour une implémentation réelle
  8. L'IA en médecine : 5 applications concrètes éprouvées avec exemples pratiques
  9. Sabots et plaquettes de frein sur mesure : garantir la sécurité sur le rail à grande vitesse