Green Hills dope les capacités de ses compilateurs pour les logiciels embarqués critiques

Green Hills Compilateur

En annonçant la sortie du compilateur référencé 2018.1, l’américain Green Hills Software, éditeur de solutions de développement de logiciels pour les systèmes embarqués et l’IoT, apporte la compatibilité C++ version 14 à sa technologie de compilation pour créer des applications embarquées 32 et 64 bits. ...Au terme d'un travail conjoint entre les architectes du compilateur de Green Hills et les équipes de développement de certains utilisateurs avancés, les vitesses de traitement vectoriel ont été améliorées d’un facteur 3 par rapport aux versions précédentes. Le compilateur 2018.1 est ainsi, selon Green Hills, le seul compilateur certifié bénéficiant d’une approche dite d’“autovectorisation” pour accélérer le traitement vectoriel avec les unités d’accélération Simd (Single Instruction Multiple Data) sur les architectures ARM/ARM64 Neon, Intel SSE et Power Architecture.

A la clé, des scores dépassant ceux du compilateur en open source LLVM (Low Level Virtual Machine), y compris avec le propre benchmark LLVM. Plus précisément, comparé à la propre suite de tests C/C++ Benchmarks (v5.0) de la LLVM Foundation, le compilateur 2018.1 de Green Hills est 4,2 % plus rapide que LLVM sur ARM et 3,4 % plus rapide sur ARM64. Les capacités d’autovectorisation du compilateur 2018.1 de Green Hills pour la spécification C++14 ont ainsi permis une amélioration de 14 %, voire plus, sur les architectures ARM, ARM64 et Intel, par rapport aux benchmarks Eigen standardisés, ce qui le situe au-dessus du compilateur LLVM sur l’architecture ARM. La société précise que le benchmark a utilisé du code réel d’application, fourni par des utilisateurs du secteur automobile utilisant des programmes de traitement d’images vectorisés, d’apprentissage profond et de vision.

Au-delà des performances, le compilateur 2018.1 apporte la compatibilité complète avec le C++14 (ISO/IEC 14882:2014, avec les notions d’exclusions mutuelles/verrouillages partagés pour les applications à plusieurs threads, d’extensions des fonctions lambda et des modèles variables), la suppression des risques liés à la vulnérabilité Spectre, récemment mise en évidence sur les architectures Intel (Variante 1 : CVE-2017-5753 et Variante 2 : CVE-2017-5715), ainsi que la mise en œuvre de niveaux de sûreté fonctionnelle élevés.

Objectif : réduire significativement les délais de mise sur le marché de systèmes embarqués critiques (dans l’automobile, la supervision industrielle, le calcul hautes performances (HPC), le stockage numérique, les produits grand public…) confrontés à des exigences fortes en termes de sûreté et de sécurité. En ce qui concerne ce dernier point, le compilateur 2018.1, comme ses prédécesseurs, dispose des niveaux de certification ISO 26262 ASIL D (automobile), CEI 61508 SIL 3 (industrie) et EN 50128 SIL 4 (ferroviaire).

Enfin, signalons que le compilateur 2018.1 peut être intégré avec l’outil d'analyse statique de code DoubleCheck de Green Hills, associé à un contrôle qualité du code selon la norme Misra C, dans un processus de compilation en un seul passage.

Cette technologie de compilation est d’ores et déjà disponible pour les architectures ARM, Intel, Power Architecture, RH850, TriCore, Mips et ColdFire.