La suite d’outils de l’anglais LDRA (désormais dans le giron de Tasking), spécialiste en vérification logicielle automatisée, traçabilité et conformité aux normes, identifie et quantifie désormais l'impact des interférences de couplage temporel dans un logiciel embarqué sur des systèmes multicœur, en vue d'aider les développeurs à respecter les exigences de temps d'exécution dans le pire des cas (WCET, worst-case execution time).
Ces fonctionnalités s'appuient sur les outils de couplage des données et du contrôle existants de LDRA afin de procurer aux développeurs une meilleure compréhension du comportement multicœur de leur système, leur permettant de mieux atténuer les problèmes de synchronisation.
A ce niveau, LDRA indique que le couplage des données, du contrôle et du temps est essentiel, car les processeurs multicœurs sont de plus en plus utilisés pour exécuter des applications embarquées dans les secteurs de l'aérospatiale et de la défense, de l'automobile, des commandes industrielles, de l'IoT et du spatial, autant de secteurs d’activité qui doivent respecter des normes strictes de sécurité fonctionnelle et de fiabilité.
Pour ce faire, la suite d'outils de LDRA a pour ambition d'aider les développeurs à se conformer aux exigences de temps d'exécution dans le pire des cas (WCET) des directives multicœurs telles que la circulaire consultative AC-20-193 de la FAA (Federal Aviation Administration).
Celle-ci décrit les facteurs susceptibles d'augmenter les temps d'exécution dans les systèmes multicœurs. Lorsque ces temps d'exécution dépassent les limites du pire des cas, les systèmes peuvent devenir non déterministes et non sécurisés.
Pour mesurer ce temps d'exécution, les développeurs évaluent classiquement l'impact du couplage de données et du couplage de contrôle entre les tâches. Cependant, ils doivent également mesurer les interférences complexes de couplage temporel qui peuvent survenir entre les tâches s'exécutant sur différents cœurs.
Selon LDRA, le couplage temporel est une ici une cause cachée d'interférences pouvant augmenter le temps d'exécution dans le pire des cas d'un système, en raison de la contention des ressources partagées du processeur, telles que l'interconnexion du bus ou la mémoire cache dans les architectures multicœurs.
Même lorsque les tâches s'exécutant sur différents cœurs ne présentent aucun couplage direct de données ou de contrôle, des interférences peuvent survenir sur les ressources partagées, telles que la mémoire cache partagée, indique LDRA.
Par exemple, les caches L1/L2 peuvent être partagés entre les cœurs. Les tâches manipulant des ensembles de données plus volumineux ont tendance alors à utiliser davantage ces ressources partagées, ce qui augmente la probabilité d'interférences et réduit l'efficacité, même en l'absence de couplage direct des données ou du contrôle au niveau de la tâche.
« Les interférences cachées au niveau d'uen arcitecture multicœur peuvent être très importantes, commente Ian Hennell, directeur des opérations chez LDRA. Dans une récente étude menée en collaboration avec le laboratoire de traitement multicœur et d'intelligence artificielle du centre aéronautique et de missiles Devcom, de l'armée américaine, les interférences de couplage temporel ont entraîné une augmentation du temps d'exécution moyen pouvant aller jusqu’à 40 %. Désormais, grâce à la capacité d'identifier les sources d'interférences de couplage temporel, les ingénieurs peuvent concentrer leurs efforts de développement là où ils auront le plus d'impact. »

Ainsi, savoir où, pourquoi et dans quelle mesure les interférences se produisent permet aux développeurs de cibler leurs efforts et d'atténuer plus rapidement les interférences de couplage temporel.
Avec cette approche, LDRA note que plutôt que d'optimiser le code pour les performances, les développeurs peuvent ajuster la taille ou l'utilisation de l'ensemble de données d'une tâche afin de réduire son impact sur l'efficacité du cache pour les tâches s'exécutant sur d'autres cœurs.
Dans le détail, ces nouvelles fonctionnalités de couplage temporel, associées aux outils de couplage de données et de couplage fonctionnel de LDRA, apportent selon la société, un accès et une visibilité élevée sur le comportement et le fonctionnement des systèmes, même les plus complexes.
Concrètement, en combinant la suite d'outils LDRA avec l’environnement winIDEA de Tasking et le débogueur BlueBox ou le simulateur d'ECU (Eletcronic Control Unit) virtuel de Tasking, les équipes de développement bénéficient d'un ensemble complet de solutions complémentaires d'analyse statique, d'analyse dynamique et de tests unitaires/d'intégration, fournissant des données d'exécution détaillées. Ce qui permet une analyse plus approfondie du temps d'exécution dans le pire des cas du marché.
La suite d'outils LDRA, disponible dès maintenant avec la technologie d’analyse du couplage temporel, sera présentée lors du salon Embedded World North America qui se tient à Anaheim, du 4 au 6 novembre.
