EUR | USD

Répondre aux diverses exigences fonctionnelles et de sécurité avec des processeurs multicœurs

Par Stephen Evanczuk

Avec la contribution de Rédacteurs nord-américains de Digi-Key

Les applications automobiles, industrielles, robotiques, de contrôle des bâtiments et autres systèmes embarqués critiques ont vocation à assumer des charges de travail plus diverses, allant de la surveillance en temps réel à basse consommation d'énergie aux applications multimédias de haut niveau avec affichages graphiques multi-écrans pour les interfaces homme-machine (IHM). Tout en répondant à ces exigences fonctionnelles générales, elles doivent également être capables de respecter des normes de sécurité strictes, de réduire les coûts et l'encombrement et d'optimiser l'équilibre puissance/performance.

Pour répondre à ces exigences souvent contradictoires, les développeurs ont jusqu'à présent été contraints de soit sacrifier la capacité fonctionnelle, soit complexifier la conception et la fabrication en y ajoutant des dispositifs supplémentaires, nécessaires pour satisfaire à des besoins spécifiques en matière de graphisme, de sécurité et de sûreté, entre autres. Ce dont les développeurs ont réellement besoin, c'est d'une solution unique, capable de prendre en charge un large éventail de produits qui répondent à ces exigences dans un grand nombre d'applications critiques de systèmes embarqués.

Cet article décrit brièvement l'évolution de la conception des systèmes embarqués critiques. Il explique ensuite comment les processeurs d'applications multicœurs, conçus spécifiquement par NXP Semiconductors pour prendre en charge une liste d'exigences toujours plus longue, tant au niveau des fonctionnalités générales que des capacités de certification de sécurité, peuvent être utilisés pour relever les défis des développeurs.

Évolution des questions relatives à la conception des systèmes embarqués

Le rôle traditionnel des dispositifs embarqués, qui consistait à prendre en charge un ensemble limité de fonctions système, a été largement abandonné au profit de dispositifs offrant des capacités étendues. Dans les applications industrielles, par exemple, la nécessité d'améliorer les capacités IHM des outils et équipements intelligents requiert des processeurs capables de fournir des graphiques optimisés, tout en répondant à des exigences industrielles plus traditionnelles en temps réel. De même, la tendance observée dans les applications automobiles en faveur d'architectures hiérarchisées comprenant des groupes de domaines fonctionnels et des passerelles a créé un besoin de processeurs pleinement capables de répondre à ces exigences (figure 1).

Schéma des architectures hiérarchiques des systèmes automobilesFigure 1 : La tendance à une plus grande hiérarchisation des architectures de systèmes automobiles a créé un besoin de solutions de processeurs plus intégrées et plus évolutives. (Source de l'image : NXP Semiconductors)

Au sein de chaque domaine fonctionnel, la recherche de capacités plus sophistiquées continue à élever le seuil de performances et de capacités intégrées. Par exemple, l'émergence des affichages tête haute exige des solutions capables d'assurer la transmission continue d'informations graphiques vitales aux conducteurs. Outre ces écrans de nouvelle génération, le besoin croissant de mieux sensibiliser les conducteurs entraîne des obligations supplémentaires en matière d'interfaces de caméras et d'exécution performante de logiciels de reconnaissance avancés capables de détecter la somnolence.

Alors que les applications continuent d'évoluer, il devient plus urgent de disposer de solutions hautement intégrées et évolutives de manière à répondre à des exigences de plus en plus diverses, tout en minimisant l'encombrement, les coûts et la complexité de la conception. Grâce à la famille de processeurs d'applications i.MX 8 de NXP, les développeurs peuvent exploiter une plateforme compatible de processeurs avec la palette de capacités et de performances nécessaires pour prendre en charge un large éventail d'exigences d'applications. Au sein de la famille i.MX 8, la série i.M 8X de NXP répond aux nouveaux besoins de processeurs avec certification de sécurité requise dans les applications automobiles et industrielles de milieu de gamme.

L'architecture multicœur gère des charges de travail diverses

L'une des difficultés rencontrées par les développeurs dans la mise en œuvre de dispositifs destinés à des applications automobiles et industrielles tient à l'ampleur même des exigences. Alors que les développeurs pouvaient s'attendre à devoir faire face à des charges de travail de traitement d'applications en temps réel ou de haut niveau, la demande de sous-systèmes intelligents a entraîné la fusion de ces types de calcul sensiblement différents. De plus en plus, les développeurs ont besoin de solutions susceptibles d'offrir à la fois une réponse fiable en temps réel et une exécution performante des applications, tout en répondant aux exigences de sécurité fonctionnelle.

Conçus pour offrir des capacités en temps réel, un traitement hautes performances et une faible consommation d'énergie, les processeurs série i.MX 8X de NXP tirent pleinement parti d'une architecture d'unité centrale (CPU) multicœur sophistiquée pour gérer diverses charges de calcul (figure 2).

Schéma de l'architecture multicœur de la série i.MX 8X de NXPFigure 2 : La série i.MX 8X de NXP utilise une architecture multicœur comprenant un processeur embarqué Arm Cortex-M4 (CM4) et plusieurs processeurs d'applications Arm Cortex-A35 afin de gérer des charges de travail logicielles mixtes. (Source de l'image : NXP Semiconductors)

Pour les tâches générales de traitement en temps réel, les dispositifs i.MX 8X comprennent un processeur Arm Cortex-M4 (CM4) avec unité en virgule flottante (FPU), unité de protection de la mémoire (MPU), unité d'accélération cryptographique à mappage mémoire (MMCAU) et module de contrôle divers (MCM). Pour prendre en charge des périphériques externes tels que les capteurs et les actionneurs, ce complexe CM4 utilisateur combine un contrôleur vectoriel des interruptions imbriqué (NVIC) avec un ensemble complet d'interfaces et de modules, notamment un temporisateur d'interruption périodique à basse consommation (LPIT), une modulation de largeur d'impulsion (PWM) et d'autres fonctions couramment requises dans les applications automobiles et industrielles. Une paire de mémoires cache et de mémoires étroitement couplées (TCM) avec code de correction d'erreurs (ECC) permet de minimiser l'accès à la mémoire externe, d'accélérer l'exécution et de traiter les erreurs de mémoire.

Pour une exécution rapide des charges de travail des applications, la plateforme de processeurs comprend plusieurs processeurs d'applications (AP) écoénergétiques Arm Cortex-A35 - deux AP dans les processeurs 8DualXPlus tels que le MIMX8UX6AVLFZAC, et quatre AP dans les processeurs 8QuadXPlus tels que le MIMX8QX6AVLFZAC. En plus du cache dédié aux instructions (I$) et aux données (D$), la plateforme de processeurs comprend un cache partagé de niveau 2 (L2) de 512 Ko avec ECC.

Les cœurs Arm Cortex-A35 de l'architecture assurent à la fois la compatibilité logicielle et l'évolutivité des performances, en prenant en charge à la fois la rétrocompatibilité 32 bits et les performances 64 bits. Pour accélérer encore l'exécution des algorithmes de calcul intensif tels que le traitement des signaux et l'apprentissage automatique, les processeurs Arm Cortex-A35 offrent un traitement vectoriel en virgule flottante (VFP) et des extensions de l'architecture SIMD (Single Instruction Multiple Data) Neon d'Arm. Pour accélérer l'exécution des logiciels de traitement d'images, de vision par ordinateur et d'apprentissage automatique, la bibliothèque Arm Compute Library offre des fonctions optimisées pour les architectures de processeur Arm et d'unité de traitement graphique (GPU), tandis que la bibliothèque en C open-source Ne10 propose des fonctions Arm optimisées pour les opérations de calcul intensif.

Des moteurs dédiés pour décharger les unités centrales principales

En plus du complexe CM4 utilisateur et de la plateforme de processeurs multicœurs Arm Cortex-A35, l'architecture fournit des moteurs supplémentaires dédiés aux applications multimédias. Outre un processeur de signaux numériques (DSP) pour le traitement des codecs audio et vocaux, l'architecture intègre à la fois un processeur graphique (GPU) et une unité de traitement vidéo (VPU). Le processeur graphique (GPU) du dispositif prend en charge les bibliothèques graphiques standard, accélérant les opérations grâce à quatre vecteurs à quatre composantes en virgule flottante (vec4) avec 16 unités d'exécution et un moteur bidimensionnel très performant de type « bit blit ». L'unité de traitement vidéo (VPU) gère les formats vidéo les plus courants, accélérant le décodage jusqu'à 4Kp30 (progressif, 30 Hz) et le codage jusqu'à 1080p30. À son tour, le bloc contrôleur d'affichage dédié de la puce peut diriger la sortie graphique vers un maximum de trois écrans indépendants.

Afin d'optimiser encore les performances, l'architecture i.MX 8X intègre également des cœurs de processeur supplémentaires, conçus pour libérer les plateformes de l'unité centrale principale de la charge de traitement supplémentaire généralement liée à l'exécution des services de gestion et de sécurité du système. Pour la gestion du système, l'unité de contrôle du système (SCU) de l'architecture intègre un complexe CM4 qui correspond au complexe CM4 utilisateur, mais reste entièrement dédié aux opérations de l'unité SCU et n'est pas disponible pour les développeurs (figure 3).

Schéma du sous-système dédié Arm Cortex-M4 (CM4) intégré en profondeur dans les processeurs i.MX 8X de NXPFigure 3 : Intégrée en profondeur au sein des processeurs i.MX 8X de NXP et non disponible pour les développeurs, l'unité de contrôle du système (SCU) utilise un sous-système Arm Cortex-M4 (CM4) dédié pour décharger les tâches de gestion du système des principaux processeurs du dispositif. (Source de l'image : NXP Semiconductors)

Outre la gestion de l'alimentation, de la synchronisation et d'autres fonctions internes, l'unité de contrôle du système (SCU) contrôle le multiplexage des broches et la puissance de l'entraînement des canaux d'entrée/sortie (E/S) en fonctionnement normal. En fait, le complexe CM4 utilisateur et les processeurs d'applications Arm Cortex-A35 ne peuvent pas accéder directement à ces diverses capacités matérielles de bas niveau. L'unité de contrôle du système (SCU) sert plutôt à abstraire ces capacités, de sorte que les logiciels fonctionnant sur le CM4 utilisateur ou les processeurs d'applications doivent simplement appeler les fonctions de l'interface de programmation (API) du micrologiciel de la SCU pour exécuter des fonctions telles que la mise hors tension des domaines d'alimentation non nécessaires. Si ce domaine d'alimentation est partagé avec un autre processeur, par exemple, l'unité SCU accuse simplement réception de la demande de mise hors tension, mais elle maintient le domaine sous tension jusqu'à ce que cet autre processeur émette également une demande de mise hors tension.

Pour gérer la prise en charge étendue de la sécurité du dispositif i.MX 8X, un autre processeur dédié entre en jeu dans le sous-système du contrôleur de sécurité (SECO) du dispositif. Dans le sous-système du contrôleur SECO, un processeur intégré Arm Cortex-M0+ à basse consommation exécute un micrologiciel qui prend en charge des capacités de sécurité basées sur le matériel, y compris un accès au bus privé pour les clés sécurisées, une mémoire programmable une seule fois (OTP) pour le stockage sécurisé des clés et un stockage non volatil sécurisé (SNVS) pour les données confidentielles supplémentaires ou les clés éphémères (figure 4).

Schéma du sous-système du contrôleur de sécurité (SECO) i.MX 8X de NXPFigure 4 : Dans le sous-système du contrôleur de sécurité (SECO) i.MX 8X de NXP, un processeur Arm Cortex-M0+ dédié à basse consommation gère les opérations de sécurité, en s'appuyant sur un bus à clés privées et plusieurs modules matériels pour le stockage sécurisé, l'accélération de la cryptographie et l'accès authentifié au débogage. (Source de l'image : NXP Semiconductors)

Au-delà de ces mécanismes de sécurité fondamentaux, le sous-système du contrôleur SECO coordonne les opérations de sécurité pour la détection des altérations et le débogage sécurisé par le biais de son module de débogage authentifié (ADM). Pour une exécution sécurisée, le module de sécurité matériel CAAM (Cryptographic Acceleration and Assurance Module) intégré prend en charge un ensemble complet d'algorithmes de sécurité, y compris la cryptographie symétrique et asymétrique, les fonctions de hachage et un générateur de nombres aléatoires (RNG).

En fonctionnement normal, les unités de traitement des dispositifs, notamment l'unité de contrôle du système (SCU), les processeurs d'applications et l'accélérateur DTCP (Digital Transport Content Protection), utilisent l'interconnexion de sécurité du contrôleur SECO pour accéder à la fonctionnalité CAAM via le bus système. Outre l'accès par la fonctionnalité d'accès direct à la mémoire (DMA) du module CAAM, le processeur Cortex-M0+ dédié du contrôleur de sécurité (SECO) ne peut pas accéder au bus système. En revanche, il utilise des connexions internes protégées pour accéder aux périphériques, à la mémoire vive (RAM) et à la mémoire morte (ROM) sécurisées, ainsi qu'à son bus à clés privées spécial.

Outre son utilisation de l'accélérateur DTCP, ce bus à clés privées joue un rôle central dans la prise en charge du processeur i.MX 8X pour le cryptage et le décryptage à la volée. Ici, le processeur de sécurité utilise ses ressources pour fournir les clés privées nécessaires au module IEE (Inline Encryption/Decryption Engine) du dispositif lorsqu'il lit ou écrit en toute sécurité sur un stockage crypté, sans intervention du processeur demandeur, du contrôleur DMA ou du dispositif d'entrée/sortie.

S'appuyant sur la technologie TrustZone d'Arm, intégrée dans les processeurs Cortex-A35 du dispositif, le sous-système du SECO fonctionne également avec l'unité SCU pendant le processus de démarrage sécurisé. Dans ce processus, l'unité SCU interprète les paramètres de démarrage, configure les sources de démarrage et charge les images de démarrage dans la mémoire interne ou externe. De son côté, le sous-système du SECO utilise ses fonctions de cryptographie pour authentifier les images signées du micrologiciel après leur chargement mais avant leur exécution.

Sauvegarde des affichages critiques et des fonctionnalités de contrôle

Si la capacité à traiter diverses charges de travail de manière efficace et sûre est importante, pour les applications critiques telles que celles des secteurs automobile et industriel, la possibilité de sauvegarder les capacités clés est tout aussi vitale. La famille i.MX 8X de NXP combine ses capacités de traitement avec des capacités de certification de sécurité requises pour répondre à ces exigences critiques.

La prise en charge de la sécurité de cette famille de processeurs est intégrée à plusieurs niveaux, à commencer par la fabrication selon une technologie de processus de silicium sur isolant entièrement appauvri (FD-SOI) qui améliore la fiabilité du système. Comme la sécurité du système dépend d'une base de sécurité solide, la combinaison des processeurs d'applications compatibles avec TrustZone, du sous-système du SECO et des capacités de démarrage sécurisé peut fournir le type d'environnement de confiance nécessaire pour contrecarrer les menaces à la sécurité.

En même temps, la possibilité de traiter de manière indépendante les tâches critiques dans le temps avec le complexe CM4 utilisateur et de décharger les tâches système critiques vers les sous-systèmes de l'unité SCU et du SECO permet de garantir que les capacités des applications critiques restent disponibles malgré les variations de la charge de traitement. En fait, NXP étend ce concept à la prise en charge des écrans critiques grâce à la technologie SafeAssure de la société, qui intègre un chemin de basculement de l'affichage matériel prêt pour le niveau B d'intégrité de sécurité automobile (ASIL B) dans les dispositifs i.MX 8X. Avec SafeAssure, les utilisateurs reçoivent automatiquement une image de basculement si le dispositif détecte une erreur d'intégrité des données ou de processeur graphique. Fonctionnant en arrière-plan, cette image de basculement garantit que les informations critiques restent disponibles, même en cas de défaillance de l'affichage principal.

La prise en charge des applications de sécurité s'étend à l'accès à la mémoire dans les systèmes basés sur i.MX 8X. Parmi les interfaces mémoire prises en charge, les dispositifs i.MX 8X fournissent un code de correction d'erreurs (ECC) 8 bits pour la mémoire basse tension DDR3L (Double Data Rate 3). Avec le code de correction d'erreurs (ECC) dans le cache L2 (voir à nouveau la figure 2), cette capacité ECC DDR3L prend en charge le niveau 3 d'intégrité de sécurité industrielle (SIL 3). L'architecture i.MX 8X étend également la prise en charge ECC aux dispositifs de stockage Flash externes. Ici, un module intégré de codage et de décodage Bose, Ray-Chaudhuri, Hocquenghem (BCH) fournit un code de correction d'erreurs (ECC) de 62 bits capable de corriger 2 à 20 erreurs d'un bit dans un bloc de données lues sur ces dispositifs de stockage.

Présentation des applications basées sur i.MX 8X

Comme pour tout processeur de cette classe, la mise en œuvre d'une conception basée sur la famille i.MX 8X nécessite une attention particulière aux exigences strictes en matière d'alimentation, y compris les séquences de mise sous tension critiques. La mise sous tension des dispositifs i.MX 8X nécessite l'alimentation en séquence ou simultanée de quatre groupes d'alimentation différents, en commençant par le sous-système SVNS et en poursuivant avec l'unité SCU, les E/S et les interfaces mémoire, et enfin le reste du dispositif. Les développeurs peuvent répondre à cette exigence simplement en utilisant les dispositifs à circuit intégré de gestion de l'alimentation (PMIC) PF8x00 de NXP, qui fournissent un ensemble complet de rails de tension et de signaux de commande nécessaires pour prendre en charge les processeurs i.MX 8X ainsi que la mémoire externe et les périphériques système types (figure 5).

Schéma des modules PMIC PF8x00 de NXP qui fournissent un ensemble complet de rails de tensionFigure 5 : Les modules PMIC PF8x00 de NXP fournissent un ensemble complet de rails de tension et de signaux de commande nécessaires pour alimenter les processeurs i.MX 8X. (Source de l'image : NXP Semiconductors)

Pour mettre en œuvre leurs propres conceptions basées sur la famille i.MX 8X, les développeurs peuvent utiliser le module PMIC MC33PF8100CCES de NXP qui est préprogrammé pour être utilisé avec les processeurs 8QuadXPlus tels que le MIMX8QX6AVLFZAC. D'autres variantes du PF8x00 telles que le MC33PF8100A0ES et le MC33PF8200A0ES prennent en charge les processeurs i.MX 8X, mais ne sont pas préprogrammées.

Pour les applications de sécurité, les dispositifs série PF8200 tels que le MC33PF8200A0ES intègrent des fonctionnalités conçues pour prendre en charge les systèmes ASIL B. En plus de plusieurs moniteurs internes, dont un moniteur de tension de sortie avec une référence de bande interdite dédiée, les modules PMIC PF8200 comprennent une broche de sortie à sécurité intégrée (FSOB), conçue pour maintenir le système dans un état sûr lors de la mise sous tension ou en cas de panne de courant. En outre, une routine d'autotest intégré analogique (ABIST) teste tous les moniteurs de tension, tandis qu'une routine d'autotest vérifie le fonctionnement des autres dispositifs.

Bien que les modules PMIC PF8x00 puissent simplifier la conception matérielle des systèmes basés sur i.MX 8X, certains développeurs peuvent avoir besoin de commencer immédiatement à évaluer les dispositifs i.MX 8X et prototyper rapidement des applications basées sur i.MX 8X. Le kit MEK (Multisensory Enablement Kit) i.MX 8X MCIMX8QXP-CPU de NXP fournit une plateforme de développement prête à l'emploi qui combine un processeur i.MX 8 QuadXPlus de NXP, le module PMIC F8100 de NXP, 3 Go de RAM, 32 Go de mémoire eMMC (embedded Multi-Media Controller) et 64 Mo de mémoire Flash. En plus des interfaces audio, d'écran et de caméra, la carte MEK comprend un ensemble de capteurs généralement utilisés dans les applications automobiles ou industrielles. Pour des options supplémentaires de connectivité, d'audio et d'extension, les développeurs peuvent également ajouter la carte de base MCIMX8-8X-BB en option de NXP.

Conclusion

Pour un nombre croissant d'applications telles que l'automobile, l'industrie, le contrôle des bâtiments et les interfaces homme-machine (IHM), les charges de traitement se sont étendues pour inclure à la fois le traitement traditionnel des E/S en temps réel et le traitement émergent au niveau des applications avec des graphiques multimédias. Bien qu'il existe des options de conception pour chaque type de charge de travail, peu de solutions disponibles répondent au besoin croissant de solutions hautes performances et écoénergétiques capables de satisfaire aux exigences de certification de sécurité des conceptions dans les applications automobiles et industrielles.

Comme démontré, en utilisant une famille de processeurs multicœurs de NXP Semiconductors, les développeurs peuvent mettre en œuvre plus efficacement des conceptions capables de répondre à ces diverses exigences et s'adapter facilement aux nouvelles exigences de hautes performances.

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de Digi-Key Electronics ni les politiques officielles de la société.

À propos de l'auteur

Stephen Evanczuk

Stephen Evanczuk affiche plus de 20 ans d'expérience dans la rédaction de contenu pour et sur l'industrie électronique, couvrant un large éventail de sujets, notamment le matériel, les logiciels, les systèmes et les applications, y compris l'IoT. Il a obtenu son doctorat (Ph.D.) en neurosciences sur les réseaux neuronaux et a travaillé dans l'industrie aérospatiale sur les systèmes sécurisés massivement distribués et les méthodes d'accélération par algorithmes. Actuellement, lorsqu'il n'écrit pas d'articles techniques, il travaille sur l'application de l'apprentissage approfondi pour les systèmes de reconnaissance et de recommandation.

À propos de l'éditeur

Rédacteurs nord-américains de Digi-Key