Professional Articles

PikeOS for MPU

Développer un SoC hétérogène de façon homogène

Les systèmes-sur-puce (SoC) hybrides intègrent de plus en plus de processeurs hétérogènes. Cependant, les développeurs les considèrent comme un seul composant à développer de la manière la plus intégrée possible. Un écosystème RTOS et hyperviseur homogène pour les processeurs prenant en charge MPU et MMU permet de gagner en commodité.

Écosystème RTOS et hyperviseur intégré pour processeurs avec MPU et MMU

Les systèmes-sur-puce hybrides intègrent de plus en plus de processeurs hétérogènes. Cependant, les développeurs les considèrent comme un seul composant à développer de la manière la plus intégrée possible. Un écosystème RTOS et hyperviseur homogène pour les processeurs prenant en charge MPU et MMU permet de gagner en commodité.

Grâce à des processus de fabrication toujours plus petits, il est possible de mettre en œuvre toujours plus d'intelligence et donc une plus grande valeur ajoutée dans un espace donné. Les fabricants de semi-conducteurs utilisent l'espace ainsi libéré pour intégrer l’interface logique native et des cœurs de processeurs hétérogènes afin de fournir des systèmes-sur-puce (SoC) complets. L'objectif est d'obtenir des appareils électroniques plus réactifs, de plus petite taille et consommant moins d'énergie, dans lesquels on intègre de plus en plus de systèmes de vision et d'intelligence artificielle. Outre les applications dans l'électronique grand public, sont concernées surtout les commandes basées sur la connaissance de la situation avec une sécurité fonctionnelle qui sont susceptibles d'utiliser des SoC hétérogènes. Cela s'accompagne alors généralement d'une consolidation des composants pour réduire les coûts.


SoC en temps réel pour une sécurité fonctionnelle

Les marchés des applications SoC hétérogènes avec sécurité fonctionnelle se trouvent, par exemple, dans l'automatisation industrielle, la robotique collaborative et la technologie médicale certifiée MDR  (Medical Device Regulation), ainsi que dans de nombreuses nouvelles applications de mobilité. Ces applications vont des véhicules intralogistiques autonomes aux engins de construction et d'agriculture intelligents , en passant par l'électromobilité, le transport ferroviaire et l'avionique. Tous ces marchés sont des moteurs de croissance pour ces SoC hétérogènes. Un nouveau domaine d'application étroitement lié à ces applications est celui des applications tactiles 5G fonctionnellement sûres et donc, à terme, des serveurs Edge capables de fonctionner en temps réel au niveau des réseaux de campus et des opérateurs, qui communiquent avec leurs clients autonomes en temps réel via TSN sur 5G et même, si nécessaire, via le découpage du réseau.

La nécessité de disposer de SoCs hétérogènes est particulièrement bien illustrée par l'industrie automobile : dans ce secteur, l'intégration d'un grand nombre de calculateurs discrets par véhicule est une pratique courante. Entre-temps, on compte plus de 100 calculateurs répartis dans tout le véhicule. Dans les voitures de luxe, on trouve parfois même plus de 300 calculateurs. L'ensemble des microcontrôleurs va des processeurs 8 bits aux processeurs 32 bits. Toutefois, dans le cadre du développement de l'électromobilité et de la conduite de plus en plus autonome, la conception de système de contrôle-commande est complètement repensée et des systèmes nettement plus intégrés basés sur des SoC hétérogènes sont mis en œuvre. Ils devraient même permettre la coexistence pacifique d'applications avec et sans sécurité fonctionnelle graduelle - c'est-à-dire des systèmes critiques mixtes.


Certification SIL, ASIL et DAL

Les MPSoC Zynq Ultrascale+ de Xilinx sont une famille de SoC qui peut être certifiée pour de telles applications à différents niveaux SIL, ASIL et DAL, entre autres. Ils intègrent 6 cœurs Arm, de nombreuses interfaces standard et FPGA pour la conception d’applications spécifiques du SoC. Cela les rend extrêmement multifonctionnels et les prédestine même aux solutions de rétrofit dans les applications existantes. Quatre cœurs Arm Cortex-A53 de 64 bits avec prise en charge complète de l'ECC et un double cœur Arm Cortex-R5F de 32 bits pouvant être verrouillé et donc fonctionnellement sûr sont disponibles. Le FPGA dispose entre 81 000 et 504 000 cellules logiques de système selon la conception. Un GPU Mali 400-MP2 est également intégré en option, qui peut être utilisé pour les graphiques ou pour la logique d'inférence de l'IA. En outre, le support des codecs H.264 et H.265 est proposé en option. Les domaines d'application qui en résultent sont variés et comprennent les systèmes sans tête sécurisés tels que les contrôleurs du mouvement, les systèmes graphiques et/ou basés sur l'IA, ainsi que les systèmes avec caméra intégrée devant traiter extrêmement rapidement les codecs vidéo pour la connaissance de la situation et la réalité augmentée et, dans le cas des systèmes à mouvement autonome, également déterministe en temps réel.


Les MPSoCs Xilinx Ultrascale+ intègrent quatre cœurs Arm Cortex MMU et deux MPU ainsi qu'un puissant FPGA, pour lesquels de nombreux composants prêts à l'emploi sont également disponibles.


Robots collaboratifs et conduite autonome

Dans un robot collaboratif ou un véhicule intralogistique autonome, par exemple, ce SoC peut connecter une caméra au FPGA intégré pour traiter les données d'image. Les données ainsi traitées peuvent ensuite être analysées par un système d'analyse d'images en temps réel installé dans le Cortex-R5F avec une logique d'inférence intégrée en option pour détecter les obstacles, par exemple. En fonction de la logique de décision intégrée, les résultats peuvent être envoyés à l’ARM Cortex-A53 Application Core le plus puissant via le canal de communication Intercore. C'est là que s'effectue le plus haut niveau de logique de commande en temps réel pour le déplacement autonome. En cas de risque de collision,le sens de la circulation est modifié en fonction du meilleur itinéraire possible jusqu’à destination. Pour corriger un point unique de défaillance (SPOF) dans l'évaluation des données d'image, les deux cœurs de l’Arm Cortex-R5F pourraient même fonctionner en mode lockstep. Bien entendu, l’Arm Cortex-R5F peut également être utilisé pour des tâches de contrôle en combinaison avec le FPGA. Par exemple, les servomoteurs peuvent être traités directement. Les tâches individuelles d'une application peuvent également être réparties sur ces différentes ressources afin d'obtenir des performances maximales avec une utilisation minimale des ressources. Une autre utilisation intéressante consiste à faire tourner un contrôleur à la fois sur le cœur R5 et le cœur A53 pour créer une redondance de cœurs  diversifiée dans un seul SoC.


Défi de la complexité

Cependant, l'un des plus grands défis de ces conceptions de SoC est le coût élevé du développement et de la maintenance de ces solutions hétérogènes. Il est donc nécessaire de développer des applications aussi intégrées que possible, car c'est le seul moyen d'obtenir des effets de synergie qui réduisent les coûts NRE et rendent plus efficace le développement de systèmes en temps réel aux performances optimales. Par exemple, l'exploitation sans inférence des différents sous-systèmes sur un tel SoC peut représenter un défi majeur. Cela s'applique également aux inférences de cache dans les implémentations multi-cœur. Il devrait également être possible, par exemple - et c'est particulièrement important pour les développeurs d'applications - d'attribuer les tâches d'une application à un cœur et parfois à l'autre cœur selon les besoins, sans devoir réaliser beaucoup d'efforts de développement.


PikeOS pour les processeurs avec MMU et MPU peut fonctionner en parallèle sur le SoC Xilinx Ultrascale+ et communiquer de manière transparente entre eux via la communication intercœur.


Processeurs avec MMU et MPU

Il ne s’agit pas de SoC complexes tels que le MPSoC Xilinx Zynq Ultrascale+, car avec les cœurs Arm Cortex-A53, la gestion de la mémoire de travail est basée sur une unité de gestion de la mémoire (MMU), tandis qu'avec le double cœur Arm Cortex-R5F, elle est basée sur une unité de protection de la mémoire (MPU). La différence entre ces différents systèmes de gestion de la mémoire est qu'une MMU peut être utilisée pour convertir des zones d'adresses virtuelles en zones d'adresses physiques quelconques. La MMU attribue donc une zone d'adresse concrète à un processus. Un contrôleur avec MPU ne dispose pas de cette fonction d'affectation. La MPU offre toujours la protection qu'un processus ne peut pas écrire à l'autre dans la même zone de mémoire. Cependant, sans MPU, chaque processus doit savoir exactement où se lier. Ceci est conceptuellement plus complexe car chaque processus doit se voir attribuer une zone de mémoire dédiée. Le logiciel d’exploitation temps réel doit donc fournir l'API d'allocation mémoire.


Deux mondes

Jusqu'à présent dans le paysage RTOS et hyperviseurs, il n'existait pas de solutions véritablement homogènes pour gérer de tels SoC hétérogènes avec des contrôleurs basés sur MMU et MPU. La plupart des fournisseurs de systèmes d’exploitation ont développé des RTOS plus petits pour les contrôleurs avec MPU, qui ont des API complètement différentes de celles des RTOS pour les contrôleurs avec MMU. Cela n'a pas joué un rôle majeur jusqu'à présent, puisque ces contrôleurs ont été mis en œuvre de manière discrète pour la plupart. Par conséquent, les RTOS pour les contrôleurs à base de MPU ont également été réduits à un format très réduit et à une utilisation minimale de la mémoire, ce qui est une des raisons de ces incompatibilités. L'importance de ce point est également démontrée par le fait que ces contrôleurs discrets avec MPU ont souvent été programmés "bare metal" lorsque le multithreading n'était pas nécessaire afin d’obtenir des formats toujours plus petits avec les avantages associés tels que l'économie de licences, la réduction des coûts de matériel et une certification plus facile. Cependant, avec des écosystèmes de systèmes d'exploitation homogènes pour le développement de SoCs basés sur des MMUs et des MPUs et des environnements de développement intégrés, la programmation de SoCs hétérogènes peut être rendue beaucoup plus pratique.


Surmonter l’installation de systèmes d'exploitation hétérogènes

Avec le lancement du système d'exploitation PikeOS et de l'hyperviseur pour MPU en septembre 2021, le spécialiste des logiciels embarqués SYSGO, qui se concentre sur des solutions informatiques fonctionnellement sûres et sécurisées, a créé pour la première fois une telle base, avec laquelle des SoC hétérogènes bénéficient d’un écosystème RTOS et hyperviseur en temps réel homogène, ce qui simplifie considérablement la programmation et l'équilibrage de charges utiles. PikeOS for MPU  a été développé à cet effet au niveau du code sur la base du système d'exploitation PikeOS pour les processeurs avec MMU. Les API permettant de programmer des applications pour les processeurs avec MMU ou MPU sont donc pratiquement identiques. Pour l'essentiel, seule l'API de gestion de la mémoire a été adaptée en conséquence. Toutefois, le passage d'une application d'un core complex basé sur MMU à un core complex basé sur MPU peut être effectué en quelques clics en l'espace de quelques minutes malgré la différence de gestion de la mémoire. Plus important encore est que le code pour les deux variants de noyau (MMU et MPU) peut être certifié de manière similaire.  Les prochaines certifications de PikeOS pour les solutions basées sur MPU peuvent donc s'appuyer sur les certifications SIL 4, DAL A et ASIL D de PikeOS for MMU.


Ecosystème SE homogène pour MMU et MPU

Comme PikeOS et PikeOS for MPU partagent des fonctions centrales importantes, telles que le noyau de séparation ou les mécanismes de partitionnement temporel et spatial, qui ont pu être maintenus à l’identique sur le plan fonctionnel. En séparant strictement les partitions, le noyau de séparation permet le fonctionnement en parallèle de plusieurs applications - des tâches de contrôle simples mais très critiques aux programmes utilisateurs complexes comportant de nombreuses fonctions. En outre, le noyau de séparation élimine le risque que des erreurs d'application ne touche d'autres partitions et applications. L'utilisation des mêmes mécanismes de partitionnement temporel et spatial rapproche également PikeOS for MPU de la spécification ARINC 653 pour laquelle PikeOS for MMU a été initialement développé. PikeOS for MPU convient même aux applications spatiales et avioniques critiques.

La fonctionnalité ICCOM (Inter-Core Communication) des deux dérivés de PikeOS est une caractéristique particulièrement intéressante pour le développement efficace de solutions globales basées sur des systèmes hétérogènes : cette fonctionnalité permet aux instances PikeOS fonctionnant sur différents cœurs ARM Cortex A et R de communiquer entre elles via des canaux de communication basés sur des messages, que les cœurs exécutent des systèmes d'exploitation différents ou identiques. ICCOM est basé sur une couche de transport de données symétrique full duplex qui garantit la livraison des messages.


Un IDE pour tous les cœurs

À partir de la version 7.2 d’IDE CODEO basé sur Eclipse, les deux systèmes d'exploitation peuvent être utilisés dans un seul environnement de développement intégré (IDE). Il peut gérer l'ensemble de la pile logicielle de SoCs hétérogènes et sa communication inter-coeur au sein d'un seul espace de travail, ce qui simplifie considérablement le processus de développement logiciel pour des systèmes cibles aussi complexes. L'ensemble du cycle de développement est pris en charge, depuis l'émulation précoce du système basée sur QEMU et la simulation des applications jusqu'au débogage à distance et aux mécanismes de mise à jour logicielle pour les systèmes déployés sur le terrain.

L'environnement de débogage TRACE32 de Lauterbach prend également en charge le débogage de cibles basées sur des MMU et des MPU. Cela signifie également qu'une configuration matérielle TRACE32 est suffisante pour déboguer toute la plate-forme MPSoC Xilinx Zynq Ultrascale+ avec une configuration hétérogène du système d'exploitation. Cependant, on ne devrait plus parler de configuration hétérogène de systèmes d'exploitation lorsqu'on utilise les deux systèmes d'exploitation PikeOS en tandem. Il s'agit plutôt d'un écosystème homogène pour des SoC hétérogènes, qui dispose également d'un hyperviseur de type 1 en temps réel intégré dans les deux variants, de sorte que de multiples applications isolées en temps et en mémoire, fonctionnellement sûres, de ce système d'exploitation ou d'autres systèmes d'exploitation peuvent être hébergées dans des machines virtuelles encapsulées de manière appropriée.

En démarrant une interface graphique individuelle pour ces partitions du système d'exploitation, les architectes logiciels peuvent également déboguer simultanément les deux variants de PikeOS, y compris les événements de démarrage/arrêt synchronisés. Ceci est particulièrement utile lors de la recherche d'erreurs dans la communication entre les différents sous-systèmes. De plus, TRACE32 peut tracer l'ensemble du système et afficher des graphiques des temps d'exécution des applications et des fonctions. Le timing est synchronisé, ce qui permet d'observer le comportement temporel de PikeOS et de PikeOS for MPU et de mesurer les latences entre les deux systèmes, facilitant ainsi l'équilibrage des performances.


SYSGO fournit des images prêtes à l'emploi pour la carte Xilinx Ultrascale+ ZU9EG. Il convient parfaitement à l'évaluation de diverses interfaces et permet également une expansion flexible.


Feuille de route processeurs

Le développement d'applications pour les SoC hétérogènes devient par conséquent beaucoup plus homogène grâce au nouvel écosystème RTOS et hyperviseur PikeOS avec des solutions pour les contrôleurs basés sur les MMU et MPU sur une seule puce. Les solutions ne sont pas limitées au Xilinx MPSoC Zynq Ultrascale+. Au contraire, elles prennent en charge les cœurs Arm Cortex A53 et R5 et sont donc portables. À moyen terme, il est également prévu de prendre en charge toutes les autres variants des cœurs Arm Cortex A, R et M et d'étendre la prise en charge aux processeurs Risc-V, MPC 57xx et TriCore AURIX - en définitive, tous les processeurs discrets basés sur des MPU et les SoC MMU/MPU hétérogènes. Les OEM peuvent également compter sur la prise en charge de leurs processeurs et SoC propriétaires.


Focus sur la sécurité fonctionnelle

Des kits de certification pour PikeOS for MMU sont disponibles pour l'avionique (DO-178C), l'automobile (ISO 26262), le ferroviaire (EN 50128 / EN 50657), l'automatisation industrielle (IEC 61508) et le médical (ICE 62304), par exemple. En outre, les domaines d'application se trouvent jusqu'au niveau élevé d'assurance d'évaluation (EAL) 3+ ou jusqu'au niveau SAL 4 selon la norme de certification de sécurité d'Airbus Avionics SAR, qui devient de plus en plus important dans le contexte des menaces croissantes des cyberattaques. En outre, PikeOS est le seul noyau de séparation (4.2.4) au monde à détenir un certificat Critères Communs actuel et valide (EAL3+). L'écosystème PikeOS constitue donc également une base parfaite, c'est-à-dire pour tous les protocoles OPC/UA synchronisés via TSN qui orchestrent les véhicules autonomes et la robotique collaborative connectés à des serveurs Edge cloud via la 5G. Dans ce contexte, la possibilité d'utiliser la plate-forme de connectivité automobile sécurisée (SACoP) de SYSGO pour les communications de voiture à voiture et de voiture à X est également avantageuse pour les systèmes mobiles. Elle protège l'infrastructure interne critique du véhicule du monde extérieur à l'aide de pare-feu et de mécanismes de détection des intrusions. Grâce à la mise en oeuvre de la fonctionnalité de démarrage sécurisé, elle protège également contre les compromissions du système d'exploitation et l'installation de chargeurs de démarrage manipulés. Il prend également en charge les mises à jour OTA (over-the-air) sécurisées ainsi que de nombreuses autres tâches de gestion logicielle, telles que les mises à niveau pour les licences économiques par abonnement basées sur les fonctionnalités. Au fur et à mesure de l'émergence de nouveaux projets clients, tous ces éléments peuvent également être portés sur PikeOS for MPU.


Fonctionnement attesté en environnement difficile

Les installations existantes offrent également un haut niveau de sécurité de conception. Par exemple, le RTOS PikeOS for MPU est déjà utilisé dans des applications spatiales. L'architecture utilisée ici s’appuie sur une puce discrète propriétaire à base d’ARM Cortex-R5 qui est durcie contre les radiations afin d'atténuer les aléas logiques (SEU) induits par les radiations. La protection contre ces aléas est également très intéressante pour la conduite autonome et la robotique collaborative sur Terre. Certes, les SEU sont beaucoup moins fréquents sur Terre. Mais il y aura beaucoup plus de systèmes de ce type à l'avenir, c'est pourquoi les processeurs intégrant les SEU gagnent en importance.

Plus d'informations sur www.sysgo.com/pikeos-mpu

PikeOS RTOS & Hypervisor

PikeOS
RTOS & Hypervisor

Learn more

PikeOS for MPU

PikeOS for MPU

Learn more

ELinOS Embedded Linux

ELinOS
Embedded Linux

Learn more

Need more Information?


Contact us