Optimisation de l'estimation du WCET par analyse inter-tâche du cache d'intructions
Institution:
Toulouse 3Disciplines:
Directors:
Abstract EN:
The main characteristic of hard real-time systems is that they must guarantee a correct timing behaviour. Schedulability analysis methods are commonly used in hard real-time systems to check whether or not all tasks deadlines will be met. Most of them rely on the knowledge of an upper bound on the computation time of every task, named WCET (Worst-Case Execution Time). The WCET of a program can be computed by simulation or by performing a static analysis. Dynamic analyses give the actual WCET of a program if we can simulate all possible combinations of input data values and initial system states. Which is clearly impractical due to the exponentially number of simulations required. As a result, we compute an estimate of the actual WCET by performing a static analysis of the program despite of the pessimism generated by the approximations. Most of these analyses are performed at the task so they don't take advantage from the features of the multi-tasking real-time systems such as the tasks' chaining that affects straightforwardly the accuracy of the WCET estimation. We propose an approach that studies the instruction cache behavior of a static tasks scheduling for a single processor multi-tasking real-time application assuming that no preemption is allowed between and inside the tasks. The main goal consists of replacing the conservative approximations that consider an empty or undefined cache state before the task execution, by an abstract cache state. The WCET estimation is thus improved. We also present a free real-time benchmark, PapaBench. This benchmark is designed to be valuable for experimental works in WCET computation and may be also useful for scheduling analysis.
Abstract FR:
Le concepteur d'un système temps réel strict doit être capable de prouver que les limites temporelles ne sont jamais dépassées quelle que soit la situation. Cette vérification fait appel à la théorie de l'ordonnancement. Elle requiert une connaissance du pire comportement temporel du système. Il est donc nécessaire de connaître les pires instants d'arrivées et les temps d'exécution dans le pire des cas (WCET) des tâches. Le WCET d'un programme peut être estimé en mesurant son temps d'exécution dans un environnement de test ou par analyse statique du code. Les analyses statiques ont l'avantage d'être sûres mais fournissent des estimations parfois pessimistes. Ces méthodes calculent le WCET d'une tâche isolée, ainsi elles ignorent plusieurs facteurs des systèmes temps-réel multi-tâches, essentiellement l'enchaînement des tâches. Nous proposons une approche, qui s'applique aux systèmes temps-réel stricts, multitâches. Cette méthode étudie le comportement d'un ordonnancement statique des tâches d'une application temps-réel mono-processeur, pour analyser le comportement inter- et intra-tâche de la mémoire cache. Le but est de remplacer les hypothèses conservatrices qui supposent un état vide ou indéfini du cache par un état bien défini avant l'exécution de chaque tâche de l'ordonnancement. Ainsi nous améliorerons la précision de l'estimation du WCET de ces tâches en utilisant la trace de l'exécution d’autres tâches dans le cache. Nous proposons aussi un benchmark, PapaBench, décrivant une application temps-réel complète. Il a été conçu pour constituer une base pour les expérimentations de calcul de WCET mais il peut être aussi utile pour les analyses d'ordonnancement.