Skip to main content

Embedded Expertise

Architecture des Systèmes Embarqués

Les limitations d’un système embarqué trouvent souvent leur origine dans son architecture, et non dans son implémentation.

L’architecture d’une plateforme embarquée détermine la manière dont le matériel, le logiciel et les contraintes du cycle de vie interagissent à l’échelle du système. Les décisions prises dès les premières phases d’un projet influencent durablement les performances, la maintenabilité, la cybersécurité et la pérennité du produit.

Embedded Expertise accompagne les équipes d’ingénierie dans la conception d’architectures de plateformes embarquées robustes et efficaces, avant que la complexité ne prenne le dessus.

Situations typiques

Certaines situations sont souvent révélatrices de limites architecturales et nécessitent une réflexion à l’échelle du système.

Un travail sur l’architecture de la plateforme devient notamment nécessaire lorsque le système commence à atteindre ses limites techniques et que des évolutions incrémentales ne suffisent plus.

Les cas typiques comprennent :

  • le passage d’un produit développé sur kit de développement vers un matériel de production
  • la migration d’une plateforme x86 historique vers ARM
  • l’introduction de processeurs multicœurs hétérogènes : MCU, GPU, VPU, DSP, NPU
  • l’industrialisation d’applications initialement développées avec des assistants de programmation IA
  • le diagnostic et la résolution de problèmes de performance IA/ML sur des systèmes déployés
  • l’apparition de goulots d’étranglement de performance en conditions réelles
  • l’organisation d’une application devenue complexe en microservices autour d’un bus logiciel
  • la prise en charge de plusieurs variantes produit
  • le développement de logiciels fortement contraints par le matériel
  • la préparation d’une plateforme à une maintenance de long terme, avec des mises à jour sûres et sécurisées

Ces situations révèlent souvent des défis d’architecture qui nécessitent une analyse attentive au niveau système.

Par exemple, les inférences IA/ML sont souvent perçues comme un simple problème de puissance de calcul. En pratique, les difficultés viennent fréquemment de contraintes système : mouvements de données, bande passante mémoire et fragmentation de l’exécution entre plusieurs unités de traitement.

Si vous êtes dans l’une de ces situations, parlons de l’architecture de votre plateforme, en particulier si votre système n’atteint pas les performances attendues.

Ce que couvre l’architecture embarquée

Les choix d’architecture consistent à organiser les composants logiciels et matériels de manière à obtenir le meilleur compromis entre performances, complexité, maintenabilité et contraintes de long terme du produit.

Plateforme Matérielle
Hardware platform
  • CPU/SoC/storage
  • SoM vs full custom
  • Affectations I/O
  • Chemins de données
  • Déclinaison de variantes
Architecture Système
System architecture
  • Domaines d’exécution
  • Liaisons inter-domaines
  • VM & conteneurs
  • Composants logiciels
  • Micro-services
  • Communications
Maintenabilité
Lifecycle and maintenance
  • Maintenance long terme
  • Mises à jour OTA
  • Évolutions BoM
  • Roadmap produit
  • Conformité

Architectures avancées

Défis d’architecture des systèmes hétérogènes modernes

Modern SoCs introduce architectural challenges that go far beyond traditional embedded design.

Typical platforms may include:

  • clustered multi-core application processors, typically running a Linux variant
  • real-time microcontroller cores than run data acquisition, supervise cybersecurity or manage power
  • GPUs that generate graphics or handle massively parallel compute tasks
  • VPUs that process video streams
  • DSPs for audio or general signal processing
  • NPUs to implement deep learning algorithms

Ces architectures offrent des gains importants en performances et en efficacité, mais introduisent également des difficultés complexes à l’échelle du système.

En pratique, l’écart entre les performances théoriques des accélérateurs et les performances réellement obtenues peut être considérable, en particulier pour les traitements d’IA.

Les choix d’architecture portent notamment sur :

  • la répartition des traitements entre les différents domaines de calcul
  • l’exécution réelle des traitements IA : délégation complète, délégation partielle, repli sur CPU
  • le démarrage des processeurs auxiliaires et la gestion de leurs firmwares
  • les transferts de données efficaces entre processeurs et accélérateurs
  • l’allocation des ressources partagées, telles que la bande passante mémoire et les moteurs DMA
  • l’évaluation et l’équilibrage des performances globales du système

La conception de ces systèmes nécessite une architecture système cohérente, plutôt qu’un assemblage de composants logiciels conçus isolément.

Partager les ressources matérielles

Dans les plateformes hétérogènes, plusieurs domaines de calcul doivent souvent se partager l’accès aux mêmes ressources matérielles.

Les ressources partagées comprennent notamment :

  • la mémoire système
  • les moteurs DMA
  • les périphériques et interfaces

L’architecture de la plateforme doit notamment définir :

  • l’attribution des ressources aux différents domaines de calcul
  • les politiques d’accès et les mécanismes d’arbitrage
  • l’allocation de la bande passante et la configuration de la qualité de service
  • l’isolation entre traitements sécurisés, temps réel et applicatifs

Les plateformes modernes s’appuient notamment sur des mécanismes tels que les MMU et IOMMU pour contrôler les accès à la mémoire, isoler les différents domaines de calcul et gérer l’accès à la mémoire partagée par les périphériques capables d’effectuer des transferts DMA.

Ces mécanismes contribuent à maîtriser l’accès aux ressources et à assurer des latences et une gigue prévisibles à l’échelle du système.

Cybersécurité et architecture

La cybersécurité s’intègre à l’architecture, elle ne s’ajoute pas après coup.

Dans les systèmes embarqués, la sécurité dépend en grande partie de choix d’architecture tels que la chaîne de démarrage, les mécanismes de mise à jour, l’isolation des processus et la gestion des ressources matérielles.

Ces aspects doivent être intégrés à l’architecture de la plateforme dès sa conception. Ils ne doivent pas être traités séparément du reste du système.

Lorsque la cybersécurité devient un enjeu central du projet, découvrez également nos services de cybersécurité des systèmes embarqués [EN].

Comment se déroule une mission d’architecture

Selon l’avancement du projet, le travail d’architecture peut notamment porter sur :

Définition
Calculator and pencil

Concevoir les fondations techniques d’une nouvelle plateforme embarquée.

Revue
Magnifier

Analyser ensemble la plateforme afin d’identifier les risques architecturaux et les opportunités d’amélioration.

Implantation / reprise
Platform recovery

Implémenter ou reprendre le contrôle, et vérifier.

Parlons de votre architecture

Si vous préparez une nouvelle plateforme embarquée ou réévaluez les fondations d’un produit existant, un travail d’architecture en amont permet d’éviter des refontes coûteuses plus tard dans le projet.

Contactez Embedded Expertise pour échanger sur l’architecture de votre plateforme.