Hardware and software analyses for precise and efficient timing analysis
Résumé
In hard real-time systems, encountered for example in the transportation, energy or medical domains, programs must not only provide a functionally correct result but also guarantee timing constraints. Our researches focus on timing models and analyses which aim to get precise bounds on execution time and delays. Generally, these models focus on a single hardware or software aspect. On the hardware side, our models and analyses focus on cache memories, memory bus arbitration and memory access ways in multi-core and many-core platforms. As part of software analysis, we took benefit from the infeasible path elimination during analysis: the idea is that the computation of the worst-case execution time should ignore paths that are not semantically possible. Additionally, we have shown that a better integration of software and hardware analyses leads to more precise bounds. In the context of multi-core timing systems, we have shown that timing analysis can benefit both from a better knowledge of software and hardware, and from the integration of timing analysis with the last step of implementation. We show how and where our work leads to changing the point of view on timing analysis in order to improve it. Finally, we expose the current state of the art and which gaps must still be filled to obtain a complete and efficient timing analysis.
Les travaux présentés se situent dans le contexte des systèmes temps-réel critiques où les programmes ne doivent pas seulement être corrects mais aussi respecter des contraintes temporelles sous-peine de dommages importants. Parmi les domaines concernés sont ceux de l’énergie, des transports, le médical et l’espace. Nous nous intéressons particulièrement aux modèles et analyses qui permettent d’obtenir une borne garantie des temps d’exécution et délais. Pour réaliser ces analyses temporelles, des modèles du logiciel et du matériel sont nécessaires. Ces modèles et les analyses qui les utilisent se concentrent souvent sur un seul aspect du matériel ou du logiciel. Nos travaux ont permis d’obtenir des analyses plus précises et/ou efficaces de la mémoire cache, des arbitres de bus mémoire, et des structures d’accès mémoire dans les plateformes multi-cœur et pluri-cœur (groupement de multi-cœur). Du côté du logiciel, nos travaux ont exploité l’élimination de chemins d’exécution infaisables lors de l’analyse pour éviter que le temps d’exécution pire-cas ne corresponde à un chemin d’exécution qui n’est pas possible sémantiquement. Une autre partie de nos travaux a permis d’obtenir des bornes plus précises du temps d’exécution en travaillant sur des analyses conjointes du matériel et du logiciel. Pour les plateformes multi-cœurs, nos travaux ont montré qu’un gain de précision était possible au travers d’une meilleure prise en compte des structures logicielles et matérielles mais aussi d’une intégration des analyses temporelles avec les dernières phases d’implémentation (orchestration de code). Dans ce rapport, nous montrons en quoi nos travaux ont permis de changer le point de vue sur l’analyse temporelle et de la faire évoluer. Enfin, ce rapport termine par un exposé de la situation actuelle et des avancées nécessaires pour obtenir des analyses temporelles complètes et efficaces.
Origine | Fichiers produits par l'(les) auteur(s) |
---|