Infineon et AbsInt collaborent autour de l’analyse des pires cas de temps d’exécution sur les processeurs Aurix

AbsInt Infineon Aurix

[EMBEDDED WORLD] AbsInt, spécialiste des technologies logicielles d’analyse et de vérification de code pour applications critiques, et la société de semi-conducteurs Infineon ont décidé de collaborer pour proposer aux développeurs une chaîne d’outillage logiciel pour les processeurs de la famille Aurix.... La solution s’appuie sur le nouvel outil TimeWeaver d’AbsInt qui estime le temps d’exécution des tâches et/ou de portions de code dans le pire des cas (WCET, Worst Case Execution Time) en combinant une analyse statique de chemin (static path analysis) avec une analyse statique de mesures temporelles liée à une étude des traces en temps réel du code fonctionnant sur un processeur, et ce au niveau instruction.

Cette approche fonctionne pour les circuits actuels à hautes performances qui ne sont plus prévisibles d’un point de vue statistique. Notamment en raison de la présence de plusieurs cœurs entre lesquels les interférences ne peuvent pas être contrôlées de manière satisfaisante et/ou pour lesquels la documentation disponible est insuffisante pour créer un modèle de cadencement statique. TimeWeaver est non intrusif et ne nécessite aucune instrumentation de code,  technique qui affecte les résultats au niveau des mesures de synchronisation.

TimeWeaver utilise les unités de trace intégrées des processeurs embarqués - Nexus 5001, CoreSight ETM, etc.- pour observer le déroulement du programme. Les effets d'interférence inclus dans les traces, tels que les retards d'accès aux ressources partagées, sont pris en compte.

Avec Infineon, cette technologie a été testée et mise en œuvre de manière opérationnelle sur les processeurs 32 bits TriCore Aurix conçus pour les applications automobiles, et ce en s’appuyant sur l’infrastructure logicielle DAS (Device Access Server) d’Infineon. Les limites temporelles calculées fournissent directement aux développeurs des informations pour optimiser les performances du code dans le pire des cas d’exécution. Pour ce faire, le développeur fournit le fichier binaire ELF (Executable and Linkable Format) de l'application, spécifie une entrée de fonction et/ou une tâche à analyser et se connecte via une interface USB au serveur DAS d’Infineon, dialoguant ainsi directement avec le matériel. Ce dernier envoie les données de trace MCDS (Multi Core Debug Solution) à TimeWeaver, qui calcule en retour un chemin et une durée d’exécution dans le cas le plus défavorable, les visualise et fournit des rapports sur les contributions temporelles des différentes tâches analysées ainsi que la couverture de trace réalisée.

« Avec notre outil aiT, nous proposons déjà un analyseur des pires cas de temps d’exécution pour les cœurs Aurix, explique Christian Ferdinand, PDG d’AbsInt. Mais l’outil hybride TimeWeaver complète cette approche purement statique, en analysant le comportement temporel des logiciels critiques fonctionnant sur des processeurs multicœurs. »