Worst Case Execution Time
Le WCET ou Worst Case Execution Time, en français pire cas de temps dâexĂ©cution, Ă©quivaut au plus long temps dâexĂ©cution dâun programme informatique.
Aujourdâhui, cette information est indispensable pour lâintĂ©gritĂ© des systĂšmes embarquĂ©s vouĂ©s Ă la sĂ©curitĂ© comme un ABS ou un coussin gonflable de sĂ©curitĂ© (« airbag ») dans une voiture, les systĂšmes de contrĂŽle aĂ©rien et tout autre systĂšme informatique critique. Ces systĂšmes doivent rĂ©agir en temps rĂ©el de maniĂšre fiable, ce qui implique Ă la fois dâĂȘtre sĂ»r du rĂ©sultat produit par le programme mais aussi de connaĂźtre absolument le temps quâil prendra pour sâexĂ©cuter. Pour garantir cela, le plus long temps dâexĂ©cution a besoin dâĂȘtre connu le plus prĂ©cisĂ©ment possible. Toutefois, un programme ne se comporte pas toujours de maniĂšre identique, son temps dâexĂ©cution peut varier en fonction du type de tĂąche Ă rĂ©aliser mais aussi du type de lâappareil sur lequel il sâexĂ©cute. Par consĂ©quent, les caractĂ©ristiques du code du programme et les caractĂ©ristiques matĂ©rielles ont besoin dâĂȘtre considĂ©rĂ©es.
Pour dĂ©terminer le WCET, plusieurs pratiques existent. La premiĂšre, utilisĂ©e couramment dans lâindustrie, sâappuie sur les mesures: câest la mĂ©thode dynamique. Cette mĂ©thode a pour principe dâexĂ©cuter un certain nombre de fois le programme avec des donnĂ©es dâentrĂ©es diffĂ©rentes considĂ©rĂ©es comme celles provoquant la durĂ©e dâexĂ©cution la plus longue. Toutefois, les mesures ne donnent pas toutes les garanties que le plus long temps ait Ă©tĂ© rencontrĂ©, ce qui entraĂźne des erreurs. Une deuxiĂšme mĂ©thode fonctionne par analyse du programme sans mĂȘme lâexĂ©cuter: câest la mĂ©thode statique. Cette technique alternative dĂ©rive par abstraction les propriĂ©tĂ©s que le programme aurait pour toutes ses exĂ©cutions possibles. Son rĂ©sultat donne un temps qui est garanti pour ĂȘtre plus large que le (ou Ă©gal au) plus long temps dâexĂ©cution du programme. Elle a donc tendance Ă surestimer le WCET. Pour rĂ©duire ce phĂ©nomĂšne, lâanalyse a besoin dâĂȘtre effectuĂ©e tant au niveau haut du code quâau niveau bas. La prise en compte des donnĂ©es micro architecturales telles que les comportements processeurs et mĂ©moires est de plus en plus importante surtout depuis le dĂ©veloppement des usages de processeurs Ă plusieurs cĆurs dans les systĂšmes embarquĂ©s. Une troisiĂšme mĂ©thode tente dâamĂ©liorer les calculs du WCET en combinant les techniques dynamiques et statiques: câest la mĂ©thode hybride. Ces diffĂ©rentes mĂ©thodes sont disponibles sous forme dâoutils issus Ă la fois du monde universitaire, industriel et commercial.
Motivations
Les systĂšmes temps rĂ©el doivent satisfaire des contraintes temporelles strictes, qui sont dĂ©rivĂ©es des systĂšmes qu'ils contrĂŽlent. En gĂ©nĂ©ral, le calcul du WCET[note 1] est nĂ©cessaire pour montrer la satisfaction de ces contraintes. L'obtention systĂ©matique des limites supĂ©rieures des temps d'exĂ©cution des programmes pourrait complĂštement rĂ©soudre le problĂšme de l'arrĂȘt du programme. Cependant, les systĂšmes temps rĂ©el utilisent seulement une forme restreinte de programmation, ce qui garantit que les programmes se terminent toujours[1]. Ainsi, les secteurs tels que l'industrie spatiale et l'aviation acceptent les coĂ»ts Ă©levĂ©s et les efforts nĂ©cessaires pour obtenir un WCET le plus prĂ©cis possible. D'autre part, le coĂ»t Ă©levĂ© pour re-valider le logiciel en cas de changements mĂȘme mineurs est une problĂ©matique importante Ă prendre en considĂ©ration[2]. Par exemple, dans les secteurs de production de masse oĂč les coĂ»ts sont optimisĂ©s, les coĂ»ts de production sont plus importants que les coĂ»ts de dĂ©veloppement. Le dĂ©veloppeur devra, pour garantir les dĂ©lais, prendre en compte le WCET des programmes afin de sĂ©lectionner le moins cher et celui qui sera suffisamment puissant pour rĂ©pondre aux besoins[2]. Pour les systĂšmes oĂč le temps dâexĂ©cution est moins critique, les estimations du WCET ne sont pas toujours nĂ©cessaires, seulement des parties limitĂ©es du logiciel du systĂšme sont critiques[3].
Historique
Bien que l'analyse de lâordonnancement d'un programme soit l'un des domaines traditionnels de recherches, les premiĂšres recherches sur l'analyse du WCET ont dĂ©marrĂ© Ă la fin des annĂ©es 1980 (Kligerman et Stoyenko en 1986[4], Mok et al en 1989[5], Puschner et Koza en 1989[6] et Shaw en 1989[7]). Dans les annĂ©es 1990, de nombreux scientifiques ont mis l'accent sur l'analyse du WCET, par consĂ©quent, de nombreux progrĂšs ont Ă©tĂ© effectuĂ©s dans cette dĂ©cennie[8].
Le dĂ©but des annĂ©es 2000 a vu naĂźtre des outils d'automatisation de l'estimation du WCET. Le WCET Challenge 2006 a Ă©tĂ© le premier Ă©vĂ©nement qui a comparĂ© diffĂ©rents outils de WCET en utilisant le mĂȘme ensemble de critĂšres[9]. Deux Ă©quipes de dĂ©veloppement d'outils commerciaux, AIT[note 2] et Bound-T[note 3], et trois de prototypes d'outils de recherches, MTime, SWEET, et Chronos[note 4] y ont participĂ©. D'autres groupes de dĂ©veloppeurs n'ont pu y participer pour cause de dĂ©lai de prĂ©paration trop court tel que les dĂ©veloppeurs d'OTAWA[note 5], RapiTime[note 6], SYMTA/P[note 7] et Heptane[note 8] - [10]. Les critĂšres de rĂ©fĂ©rences utilisĂ©s ont Ă©tĂ© ceux dĂ©finis par Jan Gustafsson de l'universitĂ© de MĂ€lardalen[11]. Un assistant de recherches externe et les Ă©quipes de dĂ©veloppements ont fait les tests rĂ©els des outils suivant ces critĂšres[10]. D'autres Challenges ont eu lieu Ă©galement en 2008[12] et 2011[13].
Par ailleurs un groupe de travail est organisé annuellement sur ce thÚme en conjonction avec la Conférence des SystÚmes Temps Réels[note 9]. Cet événement permet d'observer les derniÚres tendances en termes d'obtention du WCET[14], à l'image de la conférence de Göteborg en 2014[note 10] ou celle de Paris en 2013[note 11].
Estimations du WCET
L'analyse du WCET permet de calculer les limites supĂ©rieures pour les temps d'exĂ©cution de morceaux de code pour une application donnĂ©e oĂč le temps d'exĂ©cution d'un morceau de code est dĂ©fini comme le temps qu'il faut au processeur pour exĂ©cuter ce morceau de code[15].
Une tĂąche peut avoir une certaine variation de temps dâexĂ©cution en fonction des donnĂ©es d'entrĂ©e ou en fonction des diffĂ©rences d'environnement. Le plus court temps d'exĂ©cution est appelĂ© « Best Case Execution Time[note 12] » (BCET), le pire temps dâexĂ©cution du programme est appelĂ© « Worst Case Execution Time » (WCET). Dans la plupart des cas, l'espace d'Ă©tat est trop grand pour explorer de maniĂšre exhaustive toutes les exĂ©cutions possibles et dĂ©terminer ainsi les temps d'exĂ©cution BCET et WCET de maniĂšre exacte[1].
Aujourd'hui, les trois méthodes suivantes sont utilisées pour l'analyse du WCET[3] :
- La mĂ©thode d'analyse dynamique consiste Ă mesurer le temps dâexĂ©cution du programme sur le matĂ©riel cible;
- La méthode d'analyse statique évite l'exécution du programme;
- La méthode d'analyse hybride combine l'analyse dynamique et l'analyse statique.
Avant de choisir une méthode d'obtention du WCET, il est nécessaire de tenir compte des conditions suivantes[16]:
- Si une estimation fiable est souhaitée: il faudra probablement choisir une méthode d'analyse statique;
- Si une estimation approximative est suffisante: ce peut ĂȘtre le cas, si le systĂšme est un systĂšme temps rĂ©el souple, ou si le systĂšme peut tolĂ©rer des dĂ©passements occasionnels. Dans ce cas, les valeurs d'estimation basĂ©es sur des mesures peuvent ĂȘtre suffisantes. Les mĂ©thodes hybrides sont une autre option, donnant parfois des informations plus dĂ©taillĂ©es sur le rĂ©sultat obtenu;
- Si d'autres informations sont souhaitĂ©es : les outils statiques et hybrides d'aujourd'hui fournissent des informations supplĂ©mentaires utiles, par exemple l'identification des goulets d'Ă©tranglement, et les informations sur le plus long chemin dâexĂ©cution.
MĂ©thode dynamique
Les mĂ©thodes dynamiques consistent Ă exĂ©cuter le programme dont on veut estimer le WCET (sur un systĂšme rĂ©el ou sur un simulateur) et Ă mesurer son temps dâexĂ©cution. Des jeux de tests pour lâexĂ©cution, quâils soient explicites ou symboliques sont indispensables dans ce type de mĂ©thode. Pour mesurer le temps dâexĂ©cution au pire cas, il faut fournir le jeu de test qui conduit au temps dâexĂ©cution maximum[17].
Jeux de tests explicites
Une des principales difficulté est la possibilité de générer de maniÚre automatique et systématique des jeux de tests suffisant pour l'estimation du WCET[18]. Plusieurs solutions sont envisageables[17] :
- Mesurer le temps dâexĂ©cution du programme pour tous les jeux dâentrĂ©es possibles ; la durĂ©e du processus est en gĂ©nĂ©ral rĂ©dhibitoire;
- Laisser le soin Ă lâutilisateur de dĂ©finir le jeu de test pire cas ; sa parfaite connaissance du programme peut lui permettre dâidentifier ce jeu de test sans erreur;
- GĂ©nĂ©rer automatiquement un jeu de test (ou un ensemble de jeux de test) qui conduit au temps dâexĂ©cution maximum.
Quelques travaux basés sur des algorithmes évolutionnistes ont été menés dans ce sens.
Lâalgorithme commence par une population initiale de paramĂštres (par exemple les donnĂ©es dâessais en cas de test Ă©volutionnaire). Les membres de la population sont ensuite Ă©valuĂ©s en fonction de leur comportement. Dans le cas du WCET, la valeur de ces paramĂštres est remise en cause en fonction de la durĂ©e dâexĂ©cution du programme. AprĂšs cette Ă©valuation, si les conditions sont remplies lâalgorithme aura dĂ©fini des paramĂštres permettant une estimation du WCET plus prĂ©cise[19]. L'algorithme gĂ©nĂ©tique, qui est un type d'algorithme Ă©volutionniste, est le plus souvent utilisĂ© dans le cadre des mĂ©thodes dynamiques[20]. Frank Mueller et Joachim Wegener ont dĂ©veloppĂ© une nouvelle approche pour tester le comportement temporel des systĂšmes temps rĂ©els. GrĂące Ă leurs tests Ă©volutionnaires, les jeux de donnĂ©es optimisĂ©s sont obtenus automatiquement et permettent de vĂ©rifier si les contraintes temporelles spĂ©cifiĂ©es pour le systĂšme sont dĂ©passĂ©es[21]. Amine Marref a Ă©galement dĂ©veloppĂ© un programme gĂ©nĂ©tique pour proposer une alternative aux mĂ©thodes d'obtention de jeux de paramĂštres pour l'analyse du WCET. Les paramĂštres de test sont capturĂ©s automatiquement par le programme gĂ©nĂ©tique Ă la suite de l'exĂ©cution de bout en bout du programme sous analyse[22]. Un autre travail proposant un framework de gĂ©nĂ©ration de jeux de tests gĂ©nĂ©ralisĂ©s basĂ© sur une technique d'optimisation a Ă©galement Ă©tĂ© publiĂ©[23]. Ces mĂ©thodes de gĂ©nĂ©ration automatique sont dans certaines publications considĂ©rĂ©es comme mĂ©thodes semi-dynamiques ou mĂ©thodes hybrides[24]. Le dĂ©veloppement de ces techniques principalement basĂ©es sur des algorithmes gĂ©nĂ©tiques entraine un regain dâintĂ©rĂȘt des mĂ©thodes autres que statiques[25]. Cet intĂ©rĂȘt est dâautant plus fort du fait de lâutilisation principale des mĂ©thodes dynamiques par les industriels[26].
Jeux de tests symboliques
Le principe de cette mĂ©thode est de poser lâhypothĂšse que les donnĂ©es en entrĂ©e sont inconnues et dâĂ©tendre le jeu dâinstructions du processeur cible de sorte quâil puisse rĂ©aliser des calculs Ă partir d'une ou plusieurs valeurs inconnues. Elle utilise la sĂ©mantique d'instructions alternatives pour traiter les opĂ©randes inconnus. La mĂ©thode peut exclure de nombreux chemins du programme impossibles (ou non-exĂ©cutables) et peut calculer les paramĂštres du chemin, comme des limites du nombre d'itĂ©rations d'une boucle, sans nĂ©cessitĂ© d'annotations manuelles du programme[27] - [28] - [29].
MĂ©thodes de mesures
De nombreuses mĂ©thodes existent pour mesurer le temps d'exĂ©cution, chaque technique est un compromis entre plusieurs attributs, tels que la rĂ©solution, la prĂ©cision, la granularitĂ© et la difficultĂ© de mise en Ćuvre[30]. Voici les principales techniques de mesure :
- Stop watch[31] - [32]
- La mĂ©thode consiste Ă utiliser un chronomĂštre pour mesurer le temps dâexĂ©cution du programme.
- Commande date et time (UNIX)[31] - [32]
- La commande
date
est utilisĂ©e comme un chronomĂštre, sauf qu'elle utilise l'horloge intĂ©grĂ©e de l'ordinateur au lieu d'un chronomĂštre externe. Cette mĂ©thode est plus prĂ©cise que le chronomĂštre mais a la mĂȘme granularitĂ© de mesure. Pour la commandetime
, la mesure du temps d'exécution est déclenchée par le préfixe « time » dans la ligne de commande. Cette commande ne mesure pas seulement le temps entre le début et la fin du programme, mais elle calcule également le temps d'exécution utilisé par les programmes spécifiques. - Prof et Gprof (UNIX)[31] - [33]
- Les mĂ©thodes prof et gprof sont similaires (la mĂ©thode gprof fournit plus dâinformations), elles sont gĂ©nĂ©ralement utilisĂ©es pour mesurer les temps dâexĂ©cution des fonctions (nombre minime dâinstructions). Ces mĂ©thodes peuvent ĂȘtre utilisĂ©es pour optimiser du code.
- Clock[34]
- Bien que les méthodes prof et gprof fournissent des informations plus détaillées que les premiÚres méthodes présentées, il est souvent nécessaire de mesurer le temps d'exécution avec une granularité plus fine. Ainsi, les fonctions sont découpées en segments pour permettre, grùce à la commande
clock
, de mesurer chacun d'eux. - Analyseur logiciel[34] - [35]
- Un analyseur logiciel est un analyseur qui Ă lâinstar des mĂ©thodes prĂ©cĂ©demment dĂ©finies (prof et gprof) ne se limite pas seulement Ă mesurer le temps dâexĂ©cution dâune fonction mais peut Ă©galement ĂȘtre utilisĂ© dans des analyses temporelles Ă plus petite Ă©chelle. Exemple : les boucles ou les petits segments de code qui peuvent se limiter Ă une seule instruction.
- Timer et compteur[36]
- Des timers/compteurs dans les systĂšmes embarquĂ©s sont souvent disponibles. Ils pourront ĂȘtre utilisĂ©s pour obtenir des mesures trĂšs fines et trĂšs prĂ©cises des temps dâexĂ©cutions de petits segments de code. Le temps dâexĂ©cution du segment de code est obtenu en calculant la diffĂ©rence entre les valeurs lues dans le timer/compteur au dĂ©but et Ă la fin de lâexĂ©cution.
La mise bout Ă bout de mesures de sous-ensembles de programme est possible pour produire une estimation du temps d'exĂ©cution et une idĂ©e du pire cas d'exĂ©cution de son programme, mais elle ne permet pas de trouver de maniĂšre prĂ©cise et certaine ses limites de temps d'exĂ©cution. La garantie que les limites de sĂ©curitĂ© soient tenues ne peuvent ĂȘtre donnĂ©es que pour les architectures simples. Ces mĂ©thodes peuvent ĂȘtre utilisĂ©es pour les applications qui n'ont pas de nĂ©cessitĂ© de garantie de temps d'exĂ©cution, typiquement les systĂšmes temps rĂ©el non stricts[37].
MĂ©thode statique
La mĂ©thode statique a pour principe dâanalyser la structure du programme sans rĂ©ellement l'exĂ©cuter, puis de calculer le WCET Ă partir de cette structure. Ă lâinverse de la mĂ©thode dynamique, aucune donnĂ©e dâentrĂ©e nâest connue. Elle est composĂ©e de trois phases principales :
- L'analyse de flot dĂ©termine les chemins dâexĂ©cutions possibles. Pour cela elle exploite :
- une représentation du flot de contrÎle (ou Reconstruction du flot de contrÎle),
- une Ă©valuation du flot de contrĂŽle;
- L'analyse bas niveau dĂ©termine le temps dâexĂ©cution dâune sĂ©quence dâinstructions sur une architecture donnĂ©e. Elle repose sur :
- une analyse des caches (analyse globale),
- une analyse des pipelines (analyse locale),
- une analyse des branchements ;
- Le calcul du WCET peut alors ĂȘtre menĂ© en sâappuyant sur les rĂ©sultats obtenus lors des deux phases prĂ©cĂ©dentes et en utilisant :
- une technique par graphe de flots (path based) ou,
- une technique par arbre syntaxique (tree based) ou,
- une technique par énumération implicite des chemins (IPET).
On retrouve cette architecture type d'analyse statique de temps dans de trĂšs nombreux travaux[38] - [39] - [40] - [41] - [42] ou outils[43] - [44] - [45].
Les représentations du flot de contrÎle (ou Reconstruction du flot de contrÎle)
- Représentation en blocs de base
- Une premiĂšre Ă©tape consiste Ă analyser le programme en le dĂ©coupant en blocs de base. Ces blocs de base sont en fait des sĂ©quences de code contigĂŒes, autrement dit des ensembles dâinstructions avec uniquement un point dâentrĂ©e et un point de sortie. Ils sâexĂ©cutent sans interruption et ne contiennent pas dâinstruction de branchement[46].
- Représentation en arbre syntaxique
- LâĂ©tape suivante est relative Ă la description structurelle du code du programme. Elle est rĂ©alisĂ©e au travers dâune analyse de langage haut niveau en reprĂ©sentant un arbre syntaxique ayant pour feuilles les blocs de base ou les appels de fonction (CALL), et pour nĆuds les sĂ©quences (SEQ), les conditions (IF), et les boucles (LOOP) dâinstructions.
Les premiÚres représentations de programme en arbre syntaxique sont données dÚs 1989 par Puschner et Koza[6], ou encore par Shaw[7]. - Représentation en graphe de flot de contrÎle
- Cette Ă©tape va montrer Ă lâaide dâun graphe les divers enchaĂźnements des blocs de bases entre eux et reprĂ©senter tous les chemins dâexĂ©cution que le programme peut emprunter. Elle est gĂ©nĂ©ralement issue dâune analyse du code bas niveau (code compilĂ©). Le graphe est composĂ© de nĆuds reprĂ©sentĂ©s par les blocs de base, et dâarcs reprĂ©sentant les enchaĂźnements entre chaque nĆud. Cette reprĂ©sentation, relative Ă la thĂ©orie des graphes, est visible dans beaucoup de travaux, par exemple[47] - [48].
Les Ă©valuations du flot de contrĂŽle
- Lâanalyse de valeur
- L'analyse de valeur essaye de dĂ©terminer statiquement les valeurs stockĂ©es dans les registres et les blocs mĂ©moires. Une telle information est nĂ©cessaire Ă la fois pour lâanalyse des bornes de boucle, mais aussi pour dĂ©terminer le temps dâexĂ©cution des instructions arithmĂ©tiques dont leur temps dĂ©pend des valeurs de leurs opĂ©randes, ou encore pour une bonne approximation des adresses des donnĂ©es du programme utile Ă lâanalyse de bas niveau[49]. Le problĂšme principal de lâanalyse de valeur est lâindĂ©cidabilitĂ©; souvent plusieurs valeurs sont possibles Ă un mĂȘme point du programme quand le contrĂŽle passe par ce point plusieurs fois[50] - [51].
- Lâanalyse de borne de boucle
- L'analyse de borne de boucle détermine le poids des extrémités du graphe. Elle identifie les boucles dans le programme et essaye de déterminer des bornes sur le nombre de boucle itératives et récursives. Les difficultés rencontrées sont au niveau des calculs des compteurs de boucle et des conditions de sortie de boucle, tout comme des dépendances entre compteurs de boucle dans les boucles imbriquées. Voir les travaux de Chu et Jaffar[52].
- Lâanalyse de flot de contrĂŽle
- Lâanalyse de flot de contrĂŽle, aussi appelĂ©e analyse de chemin infaisable, dĂ©termine lâensemble des chemins possibles au travers du programme de maniĂšre Ă resserrer plus prĂ©cisĂ©ment les bornes de temps. Ce point est abordĂ© dans le chapitre du calcul path-based. Cette technique permet de pondĂ©rer les nĆuds et les boucles, mais aussi de fournir les contraintes des chemins. Une optimisation de celle-ci a Ă©tĂ© dĂ©montrĂ©e en utilisant le paradigme des chemins invariants par Lokuciejewski, Gedikli et Marwedel[53].
Toutes ces analyses fournissent des informations complĂ©mentaires utiles pour le calcul du WCET. La connaissance de donnĂ©es dâentrĂ©e dâun nĆud peut contribuer Ă accroĂźtre la prĂ©cision de lâanalyse[54]. En effet, ces donnĂ©es peuvent avoir un impact important sur le conditionnement dâune branche, donc le choix du chemin Ă prendre dans le programme. Toutes ces informations peuvent alors ĂȘtre fournies de deux façons, soit sous forme dâannotations par lâutilisateur[5], ou soit par dĂ©rivation automatique. Pour cette derniĂšre, des mĂ©thodes dâinterprĂ©tations abstraites ont Ă©tĂ© proposĂ©es par Gustafson[55]. LâinterprĂ©tation abstraite est en fait une thĂ©orie dâabstraction et dâapproximation de structures mathĂ©matiques utilisĂ©es dans une description formelle de systĂšmes complexes et une dĂ©duction de leurs propriĂ©tĂ©s combinatoires ou indĂ©cidables. Un rĂ©sumĂ© des diffĂ©rentes interprĂ©tations abstraites (paradigmes, mĂ©thodes, algorithmes) a Ă©tĂ© rĂ©alisĂ© par Cousot[56]. Un nouvel algorithme appelĂ© âanalyse de propagation minimumâ (MPA) est notamment proposĂ© par Bygde, Ermedhal et Lisper[57] pour effectuer le calcul paramĂ©trique des programmes. Celui-ci est significativement plus efficace Ă la fois au niveau vitesse et mĂ©moire que la mĂ©thode gĂ©nĂ©ralement employĂ©e de programmation dâentier paramĂ©trique (PIP) introduite par Feautrier[58]. Cet algorithme est prĂ©vu pour ĂȘtre implĂ©mentĂ© dans lâoutil Sweet afin dâamĂ©liorer son analyse de flot.
Analyse bas niveau (ou microarchitecturale)
Cette Ă©tape est trĂšs complexe mais ses mĂ©canismes de spĂ©culation font preuve dâune perspicacitĂ© toujours croissante depuis quelques annĂ©es car sans cesse en Ă©volution. La prĂ©cision de lâestimation du WCET en est considĂ©rablement amĂ©liorĂ©e[59]. Pour ce faire, elle utilise lâinterprĂ©tation abstraite pour calculer les invariants pour chaque point du programme qui caractĂ©risent lâensemble de tous les Ă©tats que lâarchitecture peut rencontrer quand le contrĂŽle atteint ce point. Ces invariants dĂ©crivent de maniĂšre fiable lâinformation au sujet des contenus des caches, de lâĂ©tat du pipeline incluant les contenus de toutes ses queues et mĂ©moires tampon autant que lâoccupation de ses unitĂ©s, ainsi que lâĂ©tat des bus, des mĂ©moires, et des pĂ©riphĂ©riques. Les invariants calculĂ©s sont utilisĂ©s pour exclure les transitions dans lâarchitecture. Par exemple, une transition de cache absent peut ĂȘtre exclue si lâinvariant liĂ© Ă lâĂ©tat du cache lui permet de prĂ©dire un accĂšs cache.
Si pour les architectures simples, les instructions sont sĂ©quentielles et leur temps dâexĂ©cution dĂ©pend essentiellement des opĂ©rations quâelles doivent rĂ©aliser, pour les architectures complexes, les instructions peuvent ĂȘtre parallĂ©lisĂ©es grĂące Ă lâusage de pipeline, et leur temps dâexĂ©cution varier en fonction de leur contexte par le biais de cache[60]. Cela rend donc lâanalyse de temps beaucoup plus difficile. Ces effets sur le temps dâexĂ©cution peuvent avoir deux portĂ©es diffĂ©rentes: une portĂ©e locale dans le cas dâeffet de parallĂ©lisme comme celui induit par les pipelines car il nâimpacte le temps dâexĂ©cution que dâinstructions proches lâune de lâautre, ou une portĂ©e globale dans le cas dâeffet de variations de temps comme celui induit par les caches car il impacte cette fois lâensemble des instructions du flot[61].
Analyse des caches (analyse globale)
Cette analyse catĂ©gorise les instructions en fonction de leur comportement dans le cache mĂ©moire, Ă savoir si elles sont chargĂ©es ou non lors de lâappel processeur, et si elles affectent les autres instructions. Lâobjectif est dâidentifier les instructions susceptibles de provoquer une perte de temps liĂ©e Ă un appel processeur qui ne trouve pas de donnĂ©e, soit en fait un conflit de cache mĂ©moire[62]. Quatre catĂ©gories sont considĂ©rĂ©es :
- Always hit : lâaccĂšs Ă lâinstruction en cache mĂ©moire est toujours bon (cache hit)
- Always miss : lâaccĂšs Ă lâinstruction en cache mĂ©moire est toujours en dĂ©faut (cache miss)
- First miss : lâaccĂšs Ă lâinstruction en cache mĂ©moire est en dĂ©faut seulement Ă la premiĂšre exĂ©cution de lâinstruction
- Conflict : lâaccĂšs Ă lâinstruction en cache mĂ©moire est en conflit
La catĂ©gorisation se fait en deux phases. La premiĂšre calcule pour chaque instruction (ou nĆud ou bloc de base) tous les contenus du cache mĂ©moire avant et aprĂšs son exĂ©cution. Ces contenus sont nommĂ©s Ă©tats abstraits de cache. Le principe est de trouver les instructions gĂ©nĂ©rant un conflit de cache mĂ©moire menant au pire cas. La deuxiĂšme phase catĂ©gorise les instructions vis-Ă -vis de lâĂ©tat abstrait de cache pour ĂȘtre utilisĂ© lors de lâĂ©tape de calcul du WCET.
Cette mĂ©thode est par exemple utilisĂ© par de nombreux outils dâanalyse tels que Heptane[63] - [note 8], AIT[64] - [note 2], mais aussi dĂ©taillĂ©e dans les travaux de Lundqvist, Stenström[65] ou encore Puaut[66].
Analyse des pipelines (analyse locale)
Le pipeline permet la parallĂ©lisation des instructions dans le but dâaccroĂźtre les performances du processeur. GrĂące Ă plusieurs Ă©tages dans le pipeline, les instructions peuvent se chevaucher ce qui induit que le temps dâexĂ©cution dâun ensemble dâinstructions ne peut pas ĂȘtre Ă©gal Ă la somme des temps de chacune de ces instructions. Le calcul du WCET des instructions se fait via une reprĂ©sentation de lâoccupation du pipeline par le remplissage de tables de rĂ©servation pendant lâexĂ©cution de ces instructions simulant ainsi les Ă©tats dâoccupation des Ă©tages du pipeline. Une Ă©tude de Metzlaff montre et quantifie l'impact des anomalies mĂ©moires sur le calcul[67]. Comme pour l'analyse des caches, on peut retrouver cette mĂ©thode dans beaucoup d'outils[68] - [69] et travaux[70] - [71] - [72]. Un cas d'anomalie de timing est illustrĂ© ci-contre dans le schĂ©ma "Anomalie causĂ©e par ordonnancement (pipeline)". Dans cette illustration, considĂ©rons que les instructions A, D et E ne peuvent sâexĂ©cuter que sur la ressource processeur 1, et que les instructions B et C ne peuvent sâexĂ©cuter que sur la ressource processeur 2. Le premier ordonnancement se montre optimal car C peut enchaĂźner avec les instructions D et E avant que lâinstruction A nâenchaĂźne avec lâinstruction B. Dans le deuxiĂšme ordonnancement, lâinstruction A, exĂ©cutĂ©e sur la ressource processeur 1 et se terminant avant que la ressource C ne soit prĂȘte, va alors enchaĂźner sur lâinstruction B sur la ressource processeur 2. Mais cette derniĂšre instruction va bloquer le dĂ©part de lâinstruction C car elle aussi ne peut sâexĂ©cuter que sur la ressource processeur 2 dĂ©calant ainsi le dĂ©part des instructions D et E suivantes sur la ressource processeur 1. Lâordonnancement est par consĂ©quent plus long.
Analyse des branchements
Cette analyse optionnelle peut sâavĂ©rer utile pour des architectures munies dâun prĂ©dicteur de branchement. La prĂ©diction de branchement optimise lâusage du pipeline. Mais son mĂ©canisme de spĂ©culation peut engendrer des erreurs dâanticipation de chargement dâinstruction et donc de la perte de temps. La technique est identique Ă celle utilisĂ©e pour lâanalyse des caches. Un classement des instructions de branchement conditionnel est donc rĂ©alisĂ©. Une mĂ©thode basĂ©e sur la technique BBIP (block based instruction prefetching) est proposĂ©e par Ni[73]. Des techniques d'optimisation ont aussi Ă©tĂ© comparĂ©es par Plazar en employant un algorithme gĂ©nĂ©tique ou une programmation linĂ©aire en nombres entiers[74] - [75].Un cas d'anomalie due Ă la prĂ©diction de branchement est illustrĂ© ci-contre dans le schĂ©ma « Anomalie causĂ©e par spĂ©culation (cache) ». De mauvaises surprises peuvent se rĂ©vĂ©ler allant Ă lâencontre de lâintĂ©rĂȘt du cache mĂ©moire prĂ©vu pour accĂ©lĂ©rer le traitement des instructions. En effet, dans le premier cas, lâinstruction A se termine avant la condition de branchement. Le processeur engage alors une spĂ©culation qui peut sâavĂ©rer ĂȘtre mauvaise, dĂ©calant alors le dĂ©part de lâinstruction C attendue Ă cause du temps de chargement de lâinstruction B dans le cache. Tandis que dans le cas de lâabsence de prĂ©diction, le traitement des instructions se fait finalement plus rapidement.
Calcul de WCET par graphe de flots (path based)
Cette technique tente de borner le plus long chemin dâexĂ©cution dans le graphe de flot, et donc de dĂ©duire le WCET[76]. La pratique courante pour y arriver est de travailler sur des petits ensembles de chemins en utilisant lâalgorithmique des graphes et considĂ©rant les WCET des nĆuds connus individuellement. Les chemins infaisables nâayant aucun intĂ©rĂȘt dans la recherche du WCET puisque ne se rĂ©alisant jamais, elle va consister Ă les Ă©liminer du graphe. La borne haute pour une tĂąche est dĂ©terminĂ©e en calculant les bornes pour les diffĂ©rents chemins de la tĂąche, et en cherchant le chemin global ayant le temps dâexĂ©cution le plus long. La caractĂ©ristique principale de cette technique est que les chemins possibles sont reprĂ©sentĂ©s explicitement. Cette approche est valable dans une itĂ©ration de boucle unique, mais pose des problĂšmes avec des flots sâĂ©tendant Ă travers des boucles Ă plusieurs niveaux. Le nombre de chemin Ă©tant exponentiel par rapport au nombre de points de ramification, il faut alors utiliser des mĂ©thodes de recherche heuristique de chemin[77]. La technique est parfaitement illustrĂ©e dans la publication « Overview WCET »[78].
Calcul de WCET par arbre syntaxique tree based
La reprĂ©sentation en arbre syntaxique du programme dĂ©jĂ obtenue en dĂ©but d'analyse permet dâen dĂ©couler un arbre de temps. En considĂ©rant que lâarchitecture matĂ©rielle nâutilise pas de cache, cet arbre fait la description du code source de la structure syntaxique du programme, des contraintes dâexĂ©cution exprimĂ©es par le dĂ©veloppeur, et des temps dâexĂ©cution des diffĂ©rents blocs de base. Il rĂ©vĂšle ainsi les WCET Ă chacun de ses nĆuds. La technique consiste Ă parcourir lâarbre Ă lâenvers en appliquant des formules mathĂ©matiques Ă chaque nĆud afin de dĂ©finir le chemin le plus long, et Ă chaque bloc de base pour calculer son WCET[79] - [78].
Calcul de WCET par énumération implicite des chemins (IPET)
Pour cette Ă©tape, les temps dâexĂ©cution des blocs de bases sont des informations venant de lâanalyse bas niveau. La technique sâappuie sur le graphe de flot. Son principe est de faire correspondre au graphe un ensemble de contraintes Ă respecter basĂ©es sur la programmation linĂ©aire en nombre entier (ILP â Integer linear programming). Falk prĂ©sente par exemple une mĂ©thode ILP basĂ©e sur l'allocation de registre[80]. Ă savoir que :
- Des variables dâentier modĂ©lisent le nombre de chemin des nĆuds et des extrĂ©mitĂ©s
- Un ensemble de contraintes modĂ©lise les flots du programme en utilisant la loi de Kirchhoff (la somme des flots entrants Ă un nĆud doit Ă©galer la somme des flots sortant)
- Un autre ensemble de contraintes modĂ©lise les nombres maximums dâitĂ©rations de boucle et autres contraintes de chemin dĂ©terminĂ©s par lâanalyse de flot.
- La fonction objective est le produit scalaire des nombres de chemins et des poids des nĆuds.
Pour calculer le WCET du plus long chemin, la fonction objective est maximisée. Pascal Raymond explique de maniÚre générale la technique en la détaillant par plusieurs exemples[81].
MĂ©thode hybride
Il existe traditionnellement deux types de mĂ©thodes pour le calcul du WCET, les mĂ©thodes dynamique et statique. Le dĂ©savantage de la mĂ©thode dynamique est qu'il est impossible de garantir que tous les chemins de flot de contrĂŽle aient Ă©tĂ© couverts, de sorte que le rĂ©sultat ne donne qu'une estimation approximative du WCET[82]. Pour ce qui concerne les mĂ©thodes statiques incluant une analyse haut et bas niveau, la complexitĂ© croissante des architectures des processeurs rendent lâestimation du WCET trop pessimiste[83]. Pour sâen affranchir, sont donc apparues des mĂ©thodes hybrides combinant les techniques d'analyses statiques haut-niveau du WCET et les analyses dynamiques du code[84].
Dâune maniĂšre gĂ©nĂ©rique, les mĂ©thodes hybrides incluent les cinq Ă©tapes suivantes[82] :
- Analyse statique du code du programme : Il sâagit de lâanalyse haut niveau dĂ©fini dans la section 3.2.
- Identification des segments : Il sâagit, Ă partir des Ă©lĂ©ments analysĂ©s lors de la phase 1, de dĂ©terminer les diffĂ©rents segments Ă traiter.
- Application des chemins : Il sâagit dâune mĂ©thode permettant dâidentifier tous les chemins infaisables afin de simplifier et de minimaliser les segments Ă mesurer.
- Mesure des temps dâexĂ©cutions de chaque segment.
- Calcul du WCET.
De nombreuses recherches ont Ă©tĂ© effectuĂ©es afin de faire progresser ces techniques hybrides et permettre de dĂ©finir un cadre pouvant ĂȘtre utilisĂ© par les milieux industriels. Ces mĂ©thodes mettent en jeu diffĂ©rentes techniques vu prĂ©cĂ©demment, comme l'utilisation de lâanalyse statique, ou d'algorithmes Ă©volutionnistes permettant la gĂ©nĂ©ration de jeux de test pour les mĂ©thodes de mesures dynamiques, afin de consolider le rĂ©sultat du WCET obtenu[85] - [86] - [87] - [88].
- Analyse temporelle basée sur la mesure
Voici la description d'une techniques dâanalyse hybride du WCET : Lâanalyse temporelle basĂ©e sur la mesure (MBTA[note 13]).
- La premiĂšre opĂ©ration est donc lâanalyse et la dĂ©composition du programme en de multiples segments[89] - [90]. La taille des sĂ©quences ainsi que leur faisabilitĂ© est Ă dĂ©finir afin de garantir leur bon traitement lors de la phase de mesure[91]. De plus, la mesure de toutes ces sĂ©quences est gĂ©nĂ©ralement intraitable de maniĂšre exhaustive car tout simplement trop nombreuses. Par consĂ©quent, la rĂ©duction du nombre de segments est cruciale.
Afin dâeffectuer des mesures durant leur exĂ©cution, les techniques de dĂ©composition du programme (bloc de base, graphe de flot) impliquent dâutiliser des techniques heuristiques pour sĂ©lectionner des jeux de test reprĂ©sentatifs[90]. - Une fois que le programme est dĂ©composĂ©, le temps d'exĂ©cution est mesurĂ© pour chaque segment. Les temps d'exĂ©cutions sont mesurĂ©es sur le matĂ©riel cible, ce qui permet de prendre en considĂ©ration les caractĂ©ristiques du matĂ©riel sans effectuer dâanalyse statique bas-niveau[89] - [90]. Cette phase introduit la notion de calcul optimiste : le temps maximal observĂ© pour chaque segment est supposĂ© ĂȘtre le vĂ©ritable WCET[89].
- Les temps d'exĂ©cutions obtenus et les informations recueillies lors de lâanalyse statique sont combinĂ©s pour calculer un WCET consolidĂ© final[91].
Outils d'obtention de WCET
Quelques Ă©tudes recensent et comparent des outils dâobtention du WCET[43] - [9]. Parmi tous les outils existants, voici trois exemples issus du monde universitaire et trois autres du monde du commerce.
HEPTANE
Heptane[note 8](Hades Embedded Processor Timing ANalysEr) est un outil dâanalyse statique open source sous licence GPL. Il a Ă©tĂ© conçu au dĂ©but des annĂ©es 2000 avec Isabelle Puaut et Antoine Colin. Cet outil[92] dĂ©duit le WCET de programmes en langage C en utilisant deux mĂ©thodes de calcul, une premiĂšre basĂ©e sur lâarbre syntaxique et une deuxiĂšme basĂ©e sur la mĂ©thode IPET. Lâutilisateur doit toutefois lui fournir des annotations symboliques sur le programme source afin de borner les boucles dâitĂ©ration. Lâanalyse micro architecturale est par ailleurs assurĂ©e via des mĂ©canismes dâanalyse de cache, de pipeline et de prĂ©diction de branchement intĂ©grant la mĂ©thode de simulation de cache statique de Frank Mueller[93].
OTAWA
OTAWA[note 5] (Open Tool for Adaptative Wcet Analysis) est un outil dâanalyse statique open source sous licence LGPL. DĂ©veloppĂ© Ă lâInstitut de recherche de Toulouse, il est issu de la collaboration de ClĂ©ment Ballabriga, Hugues CassĂ©, Christine Rochange et Pascal Sainrat. Cet outil[94], utilisable sous la forme dâune bibliothĂšque C++, calcule le WCET par analyse statique basĂ©e sur IPET. La manipulation du code binaire est facilitĂ©e (graphe de flot de contrĂŽle, dĂ©tection de boucleâŠ) et sa conception modulaire peut supporter diffĂ©rentes architectures telles que PowerPC, ARM, Sparc ou M68HCS.
SWEET
SWEET[note 14](SWEdish Execution Time analysis tool) est un outil dâanalyse de flot et de calcul BCET/WCET (meilleur et pire cas de temps dâexĂ©cution). Il est dĂ©veloppĂ© en SuĂšde depuis 2001 par lâĂ©quipe de recherche de VĂ€sterĂ„s et maintenant de MĂ€lardalen. Sweet utilise un langage de programme intermĂ©diaire spĂ©cialement conçu pour lâanalyse de flot et travaillant au format « ALF ». Il peut analyser les programmes sources ou compilĂ©s, et exporter son travail pour le rendre exploitable dans les outils AIT ou Rapitime. Sa principale fonction est dâanalyser le flot de contrĂŽle le plus prĂ©cisĂ©ment et automatiquement possible en se basant sur trois mĂ©thodes diffĂ©rentes : path-based, IPET, ou hybride[95] - [69].
AIT (AbsInt)
AIT[note 2] (AbsIntâs Tool) est un outil dĂ©veloppĂ© par AbsInt Company et spĂ©cialisĂ© pour le calcul WCET des systĂšmes embarquĂ©s[64] - [96]. Il rĂ©pond en particulier aux exigences de lâaĂ©ronautique. BasĂ© sur lâinterprĂ©tation abstraite et sâappuyant sur les mĂ©thodes dâanalyse de Wilhelm, Ferdinand, Thesing, Langenbach et Theiling[97] - [98] - [99], AIT fonctionne sur le principe de construction dâun graphe de flot sur lequel des analyses de cache et de pipeline sont effectuĂ©es afin de calculer le pire chemin dâexĂ©cution par technique ILP. Il est aussi capable de supporter de trĂšs nombreuses architectures.
RAPITIME
RapiTime[note 6] est un outil de la sociĂ©tĂ© Anglaise Rapita Systems Ltd[note 15] conçu pour les systĂšmes embarquĂ©s de l'industrie automobile, de tĂ©lĂ©communication ou aĂ©ronautique. Son origine est le prototype pWCET[100] dĂ©veloppĂ© par Bernat, Colin et Petters. Lâoutil fonctionne sur la mĂ©thode hybride en combinant des mesures dynamiques et des analyses statiques de type tree-based.
Bound-T
Bound-T[note 3] est un outil dĂ©veloppĂ© Ă lâorigine par Space Systems Finland Ltd[note 16] sous contrat de lâAgence Spatiale EuropĂ©enne (ESA)[note 17] pour les besoins de vĂ©rifications des systĂšmes embarquĂ©s spatiaux. Il examine le programme compilĂ© en calculant le WCET via les mĂ©thodes dâanalyses de flot de contrĂŽle, de boucles dâitĂ©ration, et dâannotations Ă©ventuelles donnĂ©es par lâutilisateur. Bound-T supporte la plupart des plateformes et processeurs.
Méthode d'analyse | Considération de l'architecture | |
---|---|---|
HEPTANE | IPET, Tree-based | Abstraction |
OTAWA | IPET | Abstraction |
SWEET | IPET, Path-based, Hybride | Mesure |
AIT | IPET | Abstraction |
RAPITIME | Tree-based, Hybride | Mesure |
BOUND-T | IPET | Abstraction |
Recherches / Prototypes
MERASA
MERASA[note 18] (Multi-Core Execution of Hard Real-Time Applications Supporting Analysability) est un projet de recherche spĂ©cifique faisant partie du septiĂšme programme de dĂ©veloppement informatique de la commission europĂ©enne. Conduit par lâuniversitĂ© de Augsburg[note 19] (Professeur Ungerer)[101], il est le fruit dâune collaboration entre le centre de super calcul de Barcelonne[note 20], lâuniversitĂ© de Toulouse (IRIT[note 21]), et les entreprises Rapita[note 15] et Honeywell[note 22]. Le projet sâest dĂ©roulĂ© entre 2007 et 2010. Son objectif Ă©tait de tenter dâinfluer sur la conception de matĂ©riel temps rĂ©el et de son logiciel en dĂ©veloppant un nouveau processeur multicĆurs (de 2 Ă 16 cĆurs) et des techniques pour garantir un calcul fiable du WCET. Il sâinscrit dans le besoin croissant de lâindustrie dâutiliser ces architectures pour augmenter les performances de leurs systĂšmes embarquĂ©s liĂ©s Ă la sĂ©curitĂ©, mais aussi dans la nĂ©cessitĂ© de rĂ©pondre aux contraintes dâimpossibilitĂ© de prĂ©dire et dâanalyser leur comportement sans amener Ă un fort pessimisme sur le calcul du WCET. Pour rĂ©aliser sa tĂąche, MERASA s'est appuyĂ© sur deux outils dâanalyses statiques existants : Otawa et Rapitime.
MĂ©thodes d'affinage (WCET squeezing)
De nombreuses Ă©tudes tentent dâamĂ©liorer le calcul WCET.
Un exemple est donné par Lokuciejewski, Falk, Schwarzer, Marwedel et Theiling[102] en utilisant des procédures de clonage sur le code source pour réduire la surestimation du WCET. Celles-ci rendent le code mieux analysable et plus prévisible à partir de fonctions spécialisées qui permettent une définition explicite des bornes de boucles et optimisent les détections de chemins infaisables. La réduction mesurée avec l'outil de test Mibench-Suite[103] est comprise entre 12 et 95%.
Un deuxiĂšme exemple rĂ©vĂšle une amĂ©lioration du calcul WCET avec un impact faible sur son coĂ»t[104]. Il consiste Ă combiner une exĂ©cution de programme symbolique avec la technique dâĂ©numĂ©ration de chemins implicites (IPET). Cette opĂ©ration est rĂ©alisĂ©e en post traitement Ă tout analyseur incluant IPET. Elle correspond Ă un algorithme qui peut ĂȘtre stoppĂ© Ă tout instant sans impact sur la fiabilitĂ© du calcul et qui ajoute un cadre de contraintes de temps pour affiner le WCET. Son implĂ©mentation a Ă©tĂ© rĂ©alisĂ©e dans la chaĂźne dâoutillage r-TuBound[105].
Un troisiĂšme exemple apporte de nouvelles approches dâaffinage WCET en optimisant lâutilisation des ressources dans un systĂšme multiprocesseurs[106]. Celles-ci visent lâordonnancement des instructions en tenant compte autant des valeurs de TDMA (time division multiple access), autrement dit tranche de temps par processeur, que de la PD (priority division) qui est la prioritĂ© de la TDMA[107]. Elles utilisent une optimisation Ă©volutionniste[108] sur le paramĂ©trage de lâordonnancement des ressources partagĂ©es, ainsi quâune planification dâinstruction qui restructure les programmes dâentrĂ©e pour accroĂźtre leur performance.
Perspectives
Les rĂ©cents progrĂšs technologiques et les tendances du marchĂ© tendent Ă faire converger lâinformatique de haute performance (HPC) et lâinformatique des systĂšmes embarquĂ©s (EC)[109]. En effet, le domaine HPC est rĂ©servĂ© pour les traitements de volumes de donnĂ©es trĂšs Ă©levĂ©s. Ă lâinverse, le domaine EC est focalisĂ© sur lâexigence de connaitre avec suretĂ© le temps dâexĂ©cution des systĂšmes temps rĂ©els. Mais aujourdâhui, lâĂ©norme quantitĂ© de donnĂ©es Ă considĂ©rer pour de nombreuses applications embarquĂ©es fait que la prĂ©visibilitĂ© et la performance deviennent des prĂ©occupations communes. Le dĂ©fi futur va donc ĂȘtre de prĂ©dire avec prĂ©cision le temps dâexĂ©cution sur les prochaines architectures Ă plusieurs processeurs, en tenant compte aussi des contraintes jusquâalors propres Ă chaque domaine tels que lâĂ©conomie dâĂ©nergie, la flexibilitĂ© et la performance[110] - [111]. Lâusage de processeur standard devrait aussi permettre de rĂ©duire les coĂ»ts industriels mais sa non spĂ©cificitĂ© Ă un ensemble de tĂąches comme il est encore courant pour les systĂšmes embarquĂ©s va rendre le calcul du WCET plus difficile. Toute cette complexitĂ© a fait lâobjet dâune rĂ©flexion[112] menĂ©e par un groupe de chercheurs du centre de recherche de Porto[note 23], de lâuniversitĂ© de ModĂšne[note 24], du centre de super calcul de Barcelone[note 20] et de lâuniversitĂ© de ZĂŒrich[note 25].
D'autre part, la programmation de systĂšmes embarquĂ©s de sĂ©curitĂ© temps rĂ©els nĂ©cessitant une attention particuliĂšre au niveau de la justesse logicielle mais aussi de lâutilisation des ressources, les techniques de conception avancĂ©es utilisent de plus en plus des mĂ©thodes de dĂ©veloppement basĂ©es sur le modĂšle (ou application)[113] - [114] - [115]. Dans ce cas, lâapplication existe sur plusieurs niveaux de description Ă©quivalent aux rĂ©sultats dâune suite de transformations. Une solution courante est dâutiliser la conception basĂ©e sur le modĂšle dotĂ© de trois composants: un langage de synchronisation pour dĂ©velopper lâapplication[116], un compilateur[117], et un outil de simulation[118]. Le langage haut niveau permet le dĂ©veloppement modulaire, il possĂšde une sĂ©mantique formelle et a la capacitĂ© de gĂ©nĂ©rer du code impĂ©ratif. Du point de vue de l'analyse WCET, il permet des annotations au niveau conception Ă lâopposĂ© dâune instrumentation lourde de bas niveau, et le code impĂ©ratif qui en dĂ©coule permet une bonne traçabilitĂ© car il adhĂšre Ă certains critĂšres de certification. Comme ce code impĂ©ratif est systĂ©matiquement construit, il ouvre de nouvelles possibilitĂ©s dâappliquer une dĂ©couverte spĂ©cifique, dâexprimer et transfĂ©rer les propriĂ©tĂ©s du flot vers le niveau de l'analyse WCET du code binaire. LâĂ©cart entre le haut niveau axĂ© flot MBD (Model Based Design) et le bas niveau axĂ© analyse de flot WCET nĂ©cessite un transfert bi directionnel de la sĂ©mantique de programmation[114]. Cette technique sâavĂšre trĂšs intĂ©ressante pour les domaines de lâavionique et de lâautomobile car elle affine efficacement le calcul du WCET[119] - [120].
Notes et références
Notes
- WCET pour Worst Case Execution Time qui pourrait ĂȘtre traduit par cas du pire temps d'exĂ©cution.
- Outil AIT consultable sur le site AIT
- Outil Bound-T consultable sur le site Bound-T
- Outil Chronos consultable sur le site Chronos
- Outil OTAWA consultable sur le site OTAWA
- Outil RapiTime consultable sur le site Rapitime
- Outil SYMTA/P consultable sur le site SYMTA/P
- Outil Heptane consultable sur le site Heptane
- Conférence des systÚmes temps réel en traduction de Euromicro Conference on Real Time Systems
- Conférence des systÚmes temps réel de Göteborg 2014
- Conférence des systÚmes temps réel de Paris 2013
- Best Case Execution Time pourrait ĂȘtre traduit par cas du meilleur temps d'exĂ©cution.
- MBTA pour Measurement-Based Timing Analysis, peut se traduire en Analyse temporelle basée sur la mesure
- Outil SWEET consultable sur le site MRTC
- Société Rapita consultable sur le site Rapita
- Société Space Systems Finland Ltd consultable sur le site SSF
- Agence Spatiale Européenne consultable sur le site ESA
- Projet MERASA consultable sur le site MERASA
- Université de Augsburg UNIA consultable sur le site UNIA
- Centre de supercalcul de Barcelonne consultable sur le site BSC
- Université de Toulouse IRIT consultable sur le site IRIT
- Société Honeywell consultable sur le site Honeywell
- Université de technologie de Porto INESC consultable sur le site INESC
- Université de ModÚne UNIMORE consultable sur le site UNIMORE
- UniversitĂ© de ZĂŒrich ETH consultable sur le site ETH
Références
- Wilhelm 2008, p. 2
- Kirner 2008, p. 334
- Gustafsson 2008, p. 346
- Kligerman 1986, p. 941-949
- Mok 1989
- Puschner 1989, p. 159-176
- Shaw 1989, p. 875-889
- Puschner 2000, p. 1
- Gustafsson 2008, p. 348
- Gustafsson 2006, p. 233
- Gustafsson 2006, p. 234
- Holsti 2008, p. 1
- Wilhelm 2011, p. 1
- Puaut 2005, p. 174
- Puschner 2000, p. 2
- Gustafsson 2008, p. 349
- Puaut 2005, p. 166
- Kirner 2008, p. 338
- Kirner 2005, p. 6
- Kirner 2005, p. 7
- Mueller 1998, p. 144
- Marref 2012, p. 103-115
- Tracey 1998, p. 169--180
- Kirner 2004, p. 7
- Latiu 2012, p. 1
- Wegener 1997, p. 127
- Lundqvist 1999, p. 183
- PÄsÄreanu 2009, p. 339
- Coen-Porisini 2001, p. 142
- Stewart 2006, p. 1
- Stewart 2006, p. 3
- Benhamamouch 2011, p. 2
- Benhamamouch 2011, p. 3
- Stewart 2006, p. 4
- Benhamamouch 2011, p. 4
- Stewart 2006, p. 5
- Wilhelm 2008, p. 8
- Cousot 1977, p. 238-252
- Nielson 1999, p. 37-44
- Gustafsson 2008, p. 347
- Gustafsson 2008, p. 351
- Wilhelm 2014, p. 97-100
- Wilhelm 2008, p. 19-37
- Colin 2001, p. 37
- Ballabriga 2010, p. 35
- Theiling 2000, p. 24-25
- Malik 1997, p. 150
- Stappert 2000, p. 350
- Wilhelm 2008, p. 11-12
- Wilhelm 2014, p. 97
- Kirner 2008, p. 334-338
- Chu 2011, p. 319-328
- Lokuciejewski 2009, p. 13-17
- Blanchet 2003, p. 197
- Gustafson 2001, p. 257-259
- Cousot 2014
- Bydge 2009, p. 20
- Feautrier 1988, p. 243-268
- Wilhelm 2014, p. 97-98
- Chattopadhyay 2014, p. 101-105
- Wilhelm 2008, p. 38-41
- Healy 1999
- Colin 2001, p. 39-41
- Ferdinand 2008, p. 341
- Lundqvist 1999, p. 255
- Hardy 2013, p. 37
- Metzlaff 2012, p. 1442-1449
- Ballabriga 2010, p. 39-40
- MRTC project
- Guan 2013, p. 297
- Lundqvist 1999, p. 16
- Hardy 2013, p. 37-38
- Ni 2013, p. 459
- Plazar 2011, p. 168-170
- Plazar 2012, p. 47-48
- Stappert 2000, p. 349-350
- Heiko 2009, p. 727
- Engblom 2008, p. 15
- Kirner 2010, p. 96-98
- Falk 2011, p. 13-22
- Raymond 2014, p. 2-4
- Kirner 2005, p. 10
- Bunte 2011, p. 204
- Kirner 2005, p. 2
- Wenzel 2005, p. 10
- Wenzel 2008, p. 444
- Bunte 2011, p. 211
- Kirner 2005, p. 18
- Bunte 2011, p. 205
- Zolda 2011, p. 145
- Wenzel 2008, p. 432
- Colin 2001, p. 37-44
- Mueller 2000, p. 217-247
- Ballabriga 2010, p. 35-46
- Bjorn 2014, p. 482-485
- Schlickling 2010, p. 67-76
- Ferdinand 1999, p. 131-181
- Langenbach 2002, p. 294-309
- Theiling 2000, p. 157-159
- Bernat 2003, p. 1-18
- Ungerer 2010, p. 66-75
- Lokuciejewski 2007
- Guthaus 2001, p. 3-14
- Knoop 2013, p. 161-170
- Knoop 2012, p. 435-444
- Kelter 2014, p. 67-74
- Wandeler 2006, p. 479-484
- Hamann 2005, p. 312-317
- Chattopadhyay 2014
- Paolieri 2009, p. 57
- Wilhelm 2014, p. 102
- NĂ©lis 2014, p. 63-72
- Cruz 2008, p. 308-314
- Asavoae 2013, p. 32-41
- Axer 2014, p. 23-26
- Halbwachs 2005, p. 2
- Puaut 2014, p. 11-20
- Halbwachs 2005, p. 4
- Wilhelm 2014, p. 100-101
- Bylhin 2005, p. 249-250
Voir aussi
Bibliographie
- (en) S. Bydge, A. Ermedhal et B. Lisper, « An Efficient Algorithm for Parametric WCET Calculation », IEEE International Conference on, Beijing,â , p. 13-21 (ISBN 978-0-7695-3787-0, DOI 10.1109/RTCSA.2009.9)
- (en) Reinhard Wilhelm, Jakob Engblom, Andreas Ermedahl, Niklas Holsti, Stephan Thesing, David Whalley, Guillem Bernat, Christian Ferdinand, Reinhold Heckmann, Tulika Mitra, Frank Mueller, Isabelle Puaut, Peter Puschner, Jan Staschulat et Per Stenström, « The worst-case execution-time problemâoverview of methods and survey of tools », Journal ACM Transactions on Embedded Computing Systems (TECS), Volume 7, Issue 3, New York,â (DOI 10.1145/1347375.1347389)
- (en) J. Gustafsson, « Usability Aspects of WCET Analysis », 2008 11th IEEE International Symposium on, Orlando, FL,â , p. 346 - 352 (ISBN 978-0-7695-3132-8, DOI 10.1109/ISORC.2008.55)
- (en) C. Ferdinand et R. Heckmann, « Worst-Case Execution Time - A Tool Provider's Perspective », 2008 11th IEEE International Symposium, Orlando, FL,â , p. 340-345 (ISBN 978-0-7695-3132-8, DOI 10.1109/ISORC.2008.16)
- (en) R. Kirner et P. Puschner, « Obstacles in Worst-Case Execution Time Analysis », 2008 11th IEEE International Symposium, Orlando, FL,â , p. 333-339 (ISBN 978-0-7695-3132-8, DOI 10.1109/ISORC.2008.65)
- (en) Bruno Blanchet, Patrick Cousot, Radhia Cousot, JĂ©rome Feret, Laurent Mauborgne, Antoine MinĂ©, David Monniaux et Xavier Rival, « A static analyzer for large safety-critical software », Newsletter ACM SIGPLAN Notices, Volume 38, Issue 5, New York,â , p. 196-207 (ISBN 1-58113-662-5, DOI 10.1145/780822.781153)
- (en) Sascha Plazar, Jan C. Kleinsorge, Peter Marwedel et Heiko Falk, « WCET-aware static locking of instruction caches », CGO '12 Proceedings of the Tenth International Symposium on Code Generation and Optimization, New York,â , p. 44-52 (ISBN 978-1-4503-1206-6, DOI 10.1145/2259016.2259023)
- (en) Sudipta Chattopadhyay, Lee Kee Chong, Abhik Roychoudhury, Peter Marwedel et Heiko Falk, « A Unified WCET analysis framework for multicore platforms », ACM Transactions on Embedded Computing Systems (TECS) - Special Issue on Real-Time and Embedded Technology and Applications, Domain-Specific Multicore Computing, Cross-Layer Dependable Embedded Systems, and Application of Concurrency to System Design (ACSD'13), Volume 13 Issue 4s, Article No. 124, New York,â , p. 99-108 (DOI 10.1145/2584654)
- (en) Theo Ungerer, Francisco Cazorla, Pascal Seinrat, Guillem Bernat, Zlatko Petrov, Christine Rochange, Eduardo Quinones, Mike Gerdes, Marco Paolieri, julian Wolf, Hugues Casse, Sascha Uhrig, Irakli Guliashvili, Mickael Houston, Floria Kluge, Stefan Metzlaff et Jorg Mische, « Merasa: Multicore Execution of Hard Real-Time Applications Supporting Analyzability », Journal IEEE Micro Volume 30 Issue 5, Los Alamitos,â , p. 66-75 (DOI 10.1109/MM.2010.78)
- (en) Philip Axer, Rolf Ernst, Heiko Falk, Alain Girault, Daniel Grund, Nan Guan, Bengt Jonsson, Peter Marwedel, Jan Reineke, Christine Rochange, Maurice Sebastian, Reinhard Von Hanxleden et Reinhard Wilhelm, « Building timing predictable embedded systems », ACM Transactions on Embedded Computing Systems (TECS), Volume 13 Issue 4, Article No. 82, New York,â , p. 1-37 (DOI 10.1145/2560033)
- (en) Paul Lokuciejewski, Heiko Falk, Martin Schwarzer, Peter Marwedel et Henrik Theiling, « Influence of procedure cloning on WCET prediction », CODES+ISSS '07 Proceedings of the 5th IEEE/ACM international conference on Hardware/software codesign and system synthesis, New York,â , p. 137-142 (ISBN 978-1-59593-824-4, DOI 10.1145/1289816.1289852)
- (en) Huping Ding, Yun Liang et Tulika Mitra, « WCET-centric partial instruction cache locking », DAC '12 Proceedings of the 49th Annual Design Automation Conference, New York,â , p. 412-420 (ISBN 978-1-4503-1199-1, DOI 10.1145/2228360.2228434)
- (en) Heiko Falk, « WCET-aware register allocation based on graph coloring », DAC '09 Proceedings of the 46th Annual Design Automation Conference, New York,â , p. 726-731 (ISBN 978-1-60558-497-3, DOI 10.1145/1629911.1630100)
- (en) Marref A., « Evolutionary Techniques for Parametric WCET Analysis », 12th International Workshop on Worst-Case Execution Time Analysis, Pise,â , p. 103--115 (ISBN 978-3-939897-41-5, DOI 10.4230/OASIcs.WCET.2012.103, lire en ligne)
- (en) Sascha Plazar, Jan Kleinsorge, Heiko Falk et Peter Marwedel, « WCET-driven branch prediction aware code positioning », CASES '11 Proceedings of the 14th international conference on Compilers, architectures and synthesis for embedded systems,â , p. 165-174 (ISBN 978-1-4503-0713-0, DOI 10.1145/2038698.2038724)
- (en) Archana Ravindar et Y.N. Srikant, « Estimation of probabilistic bounds on phase CPI and relevance in WCET analysis », EMSOFT '12 Proceedings of the tenth ACM international conference on Embedded software,â , p. 165-174 (ISBN 978-1-4503-1425-1, DOI 10.1145/2380356.2380388)
- (en) Thomas Lundqvist et Per Stenström, « An Integrated Path and Timing Analysis Method based on Cycle-Level Symbolic Execution », Real-Time Systems, Volume 17 Issue 2-3, Norwell,â , p. 1-27 (DOI 10.1023/A:1008138407139)
- (en) Edu Metz, Raimondas Lencevicius et Teofilo F. Gonzalez, « Performance data collection using a hybrid approach », Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, Volume 30 Issue 5, New-York,â , p. 126-135 (ISBN 1-59593-014-0, DOI 10.1145/1081706.1081729)
- (en) Guillem Bernat, Antoine Colin et Stefan M. Petters, « WCET Analysis of Probabilistic Hard Real-Time Systems », RTSS '02 Proceedings of the 23rd IEEE Real-Time Systems Symposium, Washington,â , p. 279-288 (ISBN 0-7695-1851-6, DOI 10.1109/REAL.2002.1181582)
- (en) Thomas Lundqvist et Per Stenström, « A Method to Improve the Estimated Worst-Case Performance of Data Caching », RTCSA '99 Proceedings of the Sixth International Conference on Real-Time Computing Systems and Applications, Washington,â , p. 255 (ISBN 0-7695-0306-3)
- (en) Francisco J. Cazorla, Eduardo Quinones, Tullio Vardanega, Liliana Cucu, Benoit Triquet, Guillem Bernat, Emery Berger, Jaume Abella, Franck Wartel, Mickael Houston, Luca Santinelli, Leonidas Kosmidis, Code Lo et Dorin Maxim, « PROARTIS: Probabilistically Analyzable Real-Time Systems », ACM Transactions on Embedded Computing Systems (TECS) - Special Section on Probabilistic Embedded Computing, Volume 12 Issue 2s, Article No. 94, New-York,â (DOI 10.1145/2465787.2465796, lire en ligne)
- (en) Guillem Bernat, Antoine Colin et Stefan Petters, « pWCET: a Tool for Probabilistic Worst-Case Execution Time Analysis of Real-Time Systems », Real-Time Systems Research Group University of York. England, UK, Techical Report YCS-2003-353, York,â , p. 1-18 (lire en ligne)
- (en) Damien Hardy et Isabelle Puaut, « Static probabilistic worst case execution time estimation for architectures with faulty instruction caches », Proceedings of the 21st International conference on Real-Time Networks and Systems, New-York,â , p. 35-44 (ISBN 978-1-4503-2058-0, DOI 10.1145/2516821.2516842)
- (en) Antoine Colin et Isabelle Puaut, « A Modular & Retargetable Framework for Tree-Based WCET Analysis », ECRTS '01 Proceedings of the 13th Euromicro Conference on Real-Time Systems, Washington,â , p. 37-44 (ISBN 0-7695-1221-6, lire en ligne)
- (en) Patrick Cousot et Radhia Cousot, « Abstract interpretation: past, present and future », Proceedings of the Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS), Article No. 2, New-York,â (ISBN 978-1-4503-2886-9, DOI 10.1145/2603088.2603165)
- (en) Marc Schlickling et Markus Pister, « Semi-automatic derivation of timing models for WCET analysis », ACM SIGPLAN Notices - LCTES '10 Volume 45 Issue 4, New-York,â , p. 67-76 (DOI 10.1145/1755951.1755899)
- (en) Reinhard Wilhelm et Daniel Grund, « Computation takes time, but how much? », Magazine "Communications of the ACM", Volume 57 Issue 2, New-York,â , p. 94-103 (DOI 10.1145/2500886)
- (en) ClĂ©ment Ballabriga, Hugues CassĂ©, Christine Rochange et Pascal Sainrat, « OTAWA: an open toolbox for adaptive WCET analysis », SEUS'10 Proceedings of the 8th IFIP WG 10.2 international conference on Software technologies for embedded and ubiquitous systems, Berlin,â , p. 35-46 (ISBN 978-3-642-16256-5)
- (en) Fan Ni, Xiang Long, Han Wan et Xiaopeng Gao, « Using Basic Block Based Instruction Prefetching to Optimize WCET Analysis for Real-Time Applications », Parallel and Distributed Computing, Applications and Technologies (PDCAT), 2012 13th International Conference on, Beijing,â , p. 459 - 466 (DOI 10.1109/PDCAT.2012.133)
- (en) T. Kelter, H. Borghorst et P. Marwedel, « WCET-aware scheduling optimizations for multi-core real-time systems », Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS XIV), 2014 International Conference on, Agios Konstantinos,â , p. 67-74 (DOI 10.1109/SAMOS.2014.6893196)
- (en) Nan Guan, Ximping Yang et Mingsong Lv, « FIFO cache analysis for WCET estimation: A quantitative approach », Design, Automation & Test in Europe Conference & Exhibition (DATE), Grenoble,â , p. 296-301 (ISBN 978-1-4673-5071-6, DOI 10.7873/DATE.2013.073)
- (en) Andre Maroneze, Sandrine Blazy, David Pichardie et Isabelle Puaut, « A Formally Verified WCET Estimation Tool », 14th International Workshop on Worst-Case Execution Time Analysis, Madrid,â , p. 11-20 (ISBN 978-3-939897-69-9, DOI 10.4230/OASIcs.WCET.2014.11, lire en ligne)
- (en) Vincent NĂ©lis, Patrick Yomsi, LuĂs Miguel Pinho, JosĂ© Carlos Fonseca, Marko Bertogna, Eduardo Quiñones, Roberto Vargas et Andrea Marongiu, « The Challenge of Time-Predictability in Modern Many-Core Architectures », 14th International Workshop on Worst-Case Execution Time Analysis, Madrid,â , p. 63-72 (ISBN 978-3-939897-69-9, DOI 10.4230/OASIcs.WCET.2014.63, lire en ligne)
- (en) Jakob Zwirchmayr, Pascal Sotin, Armelle Bonenfant, Denis Claraz et Philippe Cuenot, « Identifying Relevant Parameters to Improve WCET Analysis », 14th International Workshop on Worst-Case Execution Time Analysis, Madrid,â , p. 93-102 (ISBN 978-3-939897-69-9, DOI 10.4230/OASIcs.WCET.2014.93, lire en ligne)
- (en) Stefan Metzlaff et Theo Ungerer, « Impact of Instruction Cache and Different Instruction Scratchpads on the WCET Estimate », IEEE 9th International Conference on Embedded Software and Systems (HPCC-ICESS), Liverpool,â , p. 1442 - 1449 (ISBN 978-1-4673-2164-8, DOI 10.1109/HPCC.2012.211)
- (en) Heiko Falk, Norman Schmitz et Florian Schmoll, « WCET-aware Register Allocation Based on Integer-Linear Programming », Real-Time Systems (ECRTS), 2011 23rd Euromicro Conference on, Porto,â , p. 13-22 (ISBN 978-1-4577-0643-1, DOI 10.1109/ECRTS.2011.10)
- (en) F. Mueller et J. Wegener, « A comparison of static analysis and evolutionary testing for the verification of timing constraints », Real-Time Technology and Applications Symposium, 1998. Proceedings. Fourth IEEE, Denver,â , p. 144-154 (ISBN 0-8186-8569-7, DOI 10.1109/RTTAS.1998.683198)
- (en) Jens Knoop, Laura Kovacs et Jakob Zwirchmayr, « WCET squeezing: on-demand feasibility refinement for proven precise WCET-bounds », Proceedings of the 21st International conference on Real-Time Networks and Systems, New-York,â , p. 161-170 (ISBN 978-1-4503-2058-0, DOI 10.1145/2516821.2516847)
- (en) Duc-Hiep Chu et Joxan Jaffar, « Symbolic simulation on complicated loops for WCET path analysis », EMSOFT '11 Proceedings of the ninth ACM international conference on Embedded software, New-York,â , p. 319-328 (ISBN 978-1-4503-0714-7, DOI 10.1145/2038642.2038692)
- (en) Paul Lokuciejewski, Fatih Gedikli et Peter Marwedel, « Accelerating WCET-driven optimizations by the invariant path paradigm: a case study of loop unswitching », Proceedings of th 12th International Workshop on Software and Compilers for Embedded Systems, New-York,â , p. 11-20 (ISBN 978-1-60558-696-0)
- (en) Peter Puschner et Christian Koza, « Calculating the maximum, execution time of real-time programs », Journal Real-Time Systems, Volume 1, Issue 2, Norwell,â , p. 159-176 (DOI 10.1007/BF00571421)
- (en) Raimund Kirner, Peter Puschner et Adrian Prantl, « Transforming flow information during code optimization for timing analysis », Journal Real-Time Systems, Volume 45, Issue 1-2, Norwell,â , p. 72-105 (DOI 10.1007/s11241-010-9091-8)
- (en) « MĂ€lardalen Real-Time Research Center », Internet Site "The Worst-Case Execution Time (WCET) analysis project",â (lire en ligne)
- (en) Bjorn Lisper, « SWEET â a Tool for WCET Flow Analysis », 6th International Symposium On Leveraging Applications of Formal Methods, Verification and Validation,â , p. 482-485 (DOI 10.1007/978-3-662-45231-8_38, lire en ligne)
- (en) Jan Gustafsson, « The Worst Case Execution Time Tool Challenge 2006 », Leveraging Applications of Formal Methods, Verification and Validation, 2006. ISoLA 2006. Second International Symposium on, Paphos,â , p. 233-240 (ISBN 978-0-7695-3071-0, DOI 10.1109/ISoLA.2006.72)
- (en) Peter Puschner et Alan Burns, « A Review of Worst-Case Execution-Time Analysis », Real-Time Systems, vol. Volume 18,â (ISSN 0922-6443, DOI 10.1023/A:1008119029962)
- (en) Reinhard Wilhelm, Jan Gustafsson, Bjorn Lisper, Reinhard von Hanxleden, Niklas Holsti, Erhard Ploedereder, Armelle Bonenfant et Christine Rochange, « WCET Tool Challenge 2011 : Report », Procs 11th Int Workshop on Worst-Case Execution Time (WCET) Analysis,â (lire en ligne)
- Isabelle Puaut, « MĂ©thodes de calcul de WCET (Worst-Case Execution Time) Etat de lâart », Ecole d'Ă©tĂ© Temps RĂ©el 2005 - 4e edition, Nancy,â , p. 165-176 (lire en ligne)
- (en) David B. Stewart, « Measuring Execution Time and Real-Time Performance », Embedded Systems Conference, Boston,â , p. 1-15 (lire en ligne)
- (en) Frank Mueller et Joachim Wegener, « A comparison of static analysis and evolutionary testing for the verification of timing constraints », Real-Time Technology and Applications Symposium.. Fourth IEEE, Denver,â , p. 144-154 (ISBN 0-8186-8569-7, DOI 10.1109/RTTAS.1998.683198)
- (en) Amine Marref, « Evolutionary Techniques for Parametric WCET Analysis », 12th International Workshop on Worst-Case Execution Time (WCET) Analysis, Pise, vol. 23,â , p. 103-115 (ISBN 978-3-939897-41-5, ISSN 2190-6807, DOI 10.4230/OASIcs.WCET.2012.i, lire en ligne)
- (en) Nigel Tracey, John Clark et Keith Mander, « The way forward for unifying dynamic test case generation: The optimisation-based approach », International Workshop on Dependable Computing and Its Applications, Heslington, York,â , p. 169--180 (lire en ligne)
- (en) Thomas Lundqvist et Per Stenström, « An Integrated Path and Timing Analysis Method based on Cycle-Level Symbolic Execution », Real-Time Systems, vol. 17,â , p. 183-207 (ISSN 0922-6443, DOI 10.1023/A:1008138407139)
- (en) Alberto Coen-Porisini, Giovanni Denaro, Carlo Ghezzi et Mauro PezzĂš, « Using Symbolic Execution for Verifying Safety-Critical Systems », Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering,â , p. 142-151 (ISBN 1-58113-390-1, DOI 10.1145/503209.503230)
- (en) Corina S. PÄsÄreanu et Willem Visser, « A survey of new trends in symbolic execution for software testing and analysis », International Journal on Software Tools for Technology Transfer, vol. Volume 11,â , p. 339-353 (ISBN 1-58113-390-1, DOI 10.1007/s10009-009-0118-1)
- Bilel Benhamamouch, « Calcul du pire temps dâexĂ©cution : MĂ©thode dâanalyse formelle sâadaptant Ă la sophistication croissante des architectures matĂ©rielles », These, Grenoble,â , p. 1-135 (lire en ligne)
- (en) Flemming Nielson, Hanne R. Nielson et Chris Hankin, « Principles of Program Analysis », Book Principles of Program Analysis, New-York,â (ISBN 3540654100)
- (en) Patrick Cousot et Radhia Cousot, « Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints », POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, New-York,â , p. 238-252 (DOI 10.1145/512950.512973)
- (en) A.C. Shaw, « Reasoning about time in higher-level language software », Software Engineering, IEEE Transactions on (Volume:15 , Issue: 7), Seattle,â , p. 875-889 (DOI 10.1109/32.29487)
- (en) H. Theiling, « Extracting safe and precise control flow from binaries », Real-Time Computing Systems and Applications, 2000. Proceedings., Cheju Island,â , p. 23-30 (ISBN 0-7695-0930-4, DOI 10.1109/RTCSA.2000.896367)
- (en) Friedhelm Stappert et Peter Altenbernd, « Complete worst-case execution time analysis of straight-line hard real-time programs », Journal of Systems Architecture: the EUROMICRO Journal - Special issue on real-time systems, New-York,â , p. 339-355 (DOI 10.1016/S1383-7621(99)00010-7)
- (en) Sharad Malik, Margaret Martonosi et Yau-Tsun Steven Li, « Static Timing Analysis of Embedded Software », DAC '97 Proceedings of the 34th annual Design Automation Conference, New-York,â , p. 147-152 (ISBN 0-89791-920-3, DOI 10.1145/266021.266052)
- (en) Jan Gustafsson et Andreas Ermedahl, « Automatic derivation of path and loop annotations in object-oriented real-time programs », Engineering of distributed control systems, New-York,â , p. 81-98 (ISBN 1-59033-102-8)
- (en) A. Mok, P. Amerasinghe, M. Chen et K. Tantisirivat, « Evaluating tight execution time bounds of programs by annotations », IEEE Real-Time Systems Newsletter, Volume 5 Issue 2-3, Washington,â , p. 74-80
- (en) Christopher A. Healy, Robert D. Arnold, Franck Mueller, Marion G. Harmon et David b. Walley, « Bounding Pipeline and Instruction Cache Performance », IEEE Transactions on Computers archive, Volume 48 Issue 1, Washington,â , p. 53-70 (DOI 10.1109/12.743411)
- (en) Pascal Raymond, « A general approach for expressing infeasibility in implicit path enumeration technique », Proceedings of the 14th International Conference on Embedded Software, Article No. 8, New-York,â , p. 1-9 (ISBN 978-1-4503-3052-7, DOI 10.1145/2656045.2656046)
- (en) Frank Mueller, « Timing Analysis for Instruction Caches », Real-Time Systems - Special issue on worst-case execution-time analysis, Volume 18 Issue 2/3, Norwell,â , p. 217-247 (DOI 10.1023/A:1008145215849)
- (en) Christian Ferdinand et Reinhard Wilhelm, « Efficient and Precise Cache Behavior Prediction for Real-TimeSystems », Real-Time Systems, Volume 17 Issue 2-3, Norwell,â , p. 131-181 (DOI 10.1023/A:1008186323068)
- (en) Marc Langenbach, Stephan Thesing et Reinhold Heckmann, « Pipeline Modeling for Timing Analysis », SAS '02 Proceedings of the 9th International Symposium on Static Analysis, Londres,â , p. 294-309 (ISBN 3-540-44235-9)
- (en) Henrik Theiling, Christian Ferdinand et Reinhard Wilhelm, « Fast and Precise WCET Prediction by Separated Cache andPath Analyses », Real-Time Systems - Special issue on worst-case execution-time analysis, Volume 18 Issue 2/3,â , p. 157-179 (DOI 10.1023/A:1008141130870)
- (en) Paul Feautrier, « Parametric Integer Programming », RAIRO Recherche Operationnelle, volume 22, no. 3,â , p. 243-268 (DOI 10.1051/ro/1988220302431)
- (en) Marco Paolieri, Eduardo Quinones, Francisco J. Cazorla, Guillem Bernat et Mateo Valero, « Hardware support for WCET analysis of hard real-time multicore systems », Proceedings of the 36th annual international symposium on Computer architecture, New-York,â , p. 57-68 (ISBN 978-1-60558-526-0, DOI 10.1145/1555754.1555764)
- (en) Raimund Kirner, Peter Puschner et Ingomar Wenzel, « Measurement-based worst-case execution time analysis using automatic test-data generation », Proc. IEEE Workshop on Software Tech. for Future Embedded and Ubiquitous Systs,â , p. 7-10 (lire en ligne)
- (en) Fabiano Cruz, Raimundo Barreto et Lucas Cordeiro, « Towards a model-driven engineering approach for developing embedded hard real-time software », Proceedings of the 2008 ACM symposium on Applied computing, New-York,â , p. 308-314 (ISBN 978-1-59593-753-7, DOI 10.1145/1363686.1363765)
- (en) S. Byhlin, A. Ermedahl, J. Gustafsson et B. Lisper, « Applying static WCET analysis to automotive communication software », Real-Time Systems, 2005. (ECRTS 2005). Proceedings. 17th Euromicro Conference on,â , p. 249-258 (ISBN 0-7695-2400-1, DOI 10.1109/ECRTS.2005.7)
- (en) Milhail Asavoae, Claire Maiza et Pascal Raymond, « Program Semantics in Model-Based WCET Analysis: A State of the Art Perspective », 13th International Workshop on Worst-Case Execution Time Analysis, Paris,â , p. 32-41 (DOI 10.4230/OASIcs.WCET.2013.32)
- (en) N. Halbwachs, « A synchronous language at work: the story of Lustre », MEMOCODE '05 Proceedings of the 2nd ACM/IEEE International Conference on Formal Methods and Models for Co-Design, Washington,â , p. 3-11 (ISBN 0-7803-9227-2, DOI 10.1109/MEMCOD.2005.1487884)
- (en) Jens Knoop, Laura Kovacs et Jakob Zwirchmayr, « r-TuBound: loop bounds for WCET analysis (tool paper) », LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning, Berlin,â , p. 435-444 (ISBN 978-3-642-28716-9, DOI 10.1007/978-3-642-28717-6_34)
- (en) Ernesto Wandeler et Lothar Thiele, « Optimal TDMA time slot and cycle length allocation for hard real-time systems », ASP-DAC '06 Proceedings of the 2006 Asia and South Pacific Design Automation Conference,â , p. 479-484 (ISBN 0-7803-9451-8, DOI 10.1145/1118299.1118417)
- (en) A. Hamann et R. Ernst, « TDMA time slot and turn optimization with evolutionary search techniques », Design, Automation and Test in Europe, 2005. Proceedings,â , p. 312-317 (ISBN 0-7695-2288-2, DOI 10.1109/DATE.2005.299)
- (en) Raimund Kirner, Ingomar Wenzel, Bernhard Rieder et Peter Puschner, « Using Measurements as a Complement to Static Worst-Case Execution Time Analysis », Intelligent Systems at the Service of Mankind, vol. 2,â , p. 1-22 (lire en ligne)
- (en) Sven BĂŒnte, Michael Zolda et Raimund Kirner, « Let's get less optimistic in measurement-based timing analysis », Industrial Embedded Systems (SIES), 6th IEEE International Symposium on, Vasteras,â , p. 204-212 (ISBN 978-1-61284-818-1, DOI 10.1109/SIES.2011.5953663)
- (en) Ingomar Wenzel, Raimund Kirner, Bernhard Rieder et Peter Puschner, « Measurement-based timing analysis », In Proc. 3rd International Symposium on Leveraging Applications of Formal Methods, Verification and Validation, Porto Sani, vol. 17,â , p. 430-444 (ISBN 978-3-540-88478-1, ISSN 1865-0929, DOI 10.1007/978-3-540-88479-8_30)
- (en) Michael Zolda, Sven BĂŒnte, Michael Tautschnig et Raimund Kirner, « Improving the Confidence in Measurement-Based Timing Analysis », Object/Component/Service-Oriented Real-Time Distributed Computing (ISORC), 2011 14th IEEE International Symposium on, Newport Beach,â , p. 144-151 (ISBN 978-1-61284-433-6, DOI 10.1109/ISORC.2011.27)
- (en) Ingomar Wenzel, Raimund Kirner, Bernhard Rieder et Peter Puschner, « Measurement-based worst-case execution time analysis », Software Technologies for Future Embedded and Ubiquitous Systems, 2005. SEUS 2005. Third IEEE Workshop on,â , p. 7-10 (ISBN 0-7695-2357-9, DOI 10.1109/SEUS.2005.12)
- (en) E Kligerman et Alexander David Stoyenko, « Real-Time Euclid: A language for reliable real-time systems », Software Engineering, IEEE Transactions on, vol. 12, no 9,â , p. 941-949 (ISSN 0098-5589, DOI 10.1109/TSE.1986.6313049)
- (en) Niklas Holsti, Jan Gustafsson, Guillem Bernat, ClĂ©ment Ballabriga, Armelle Bonenfant, Roman Bourgade, Hugues CassĂ©, Daniel Cordes, Albrecht Kadlec, Raimund Kirner, Jens Knoop, Paul Lokuciejewski, Nicholas Merriam, Marianne de Michiel, Adrian Prantl, Bernhard Rieder, Christine Rochange, Pascal Sainrat et Markus Schordan, « 8th International Workshop on Worst-Case Execution Time Analysis (WCET'08) », proceedings of the WCET Workshop 2008,â , p. 1-23 (ISBN 978-3-939897-10-1, ISSN 2190-6807, DOI 10.4230/OASIcs.WCET.2008.1663, lire en ligne)
- (en) Joachim Wegener, Harmen Sthamer, Bryan F. Jones et David E. Eyres, « Testing real-time systems using genetic algorithms », Software Quality Journal, vol. 6, no 2,â , p. 127-135 (ISSN 0963-9314, DOI 10.1023/A:1018551716639)
- (en) G. I. Latiu, O. A. Cret et L. Vacariu, « Emerging Intelligent Data and Web Technologies », Automatic Test Data Generation for Software Path Testing Using Evolutionary Algorithms, Bucharest,â , p. 1-8 (ISBN 978-1-4673-1986-7, DOI 10.1109/EIDWT.2012.25)
- (en) M.R. Guthaus, J.S. Ringenberg, D. Ernst, T.M. Austin, T. Mudge et R.B. Brown, « MiBench: A free, commercially representative embedded benchmark suite », WWC '01 Proceedings of the Workload Characterization, 2001. WWC-4. 2001 IEEE International Workshop, Washington,â , p. 3-14 (ISBN 0-7803-7315-4, DOI 10.1109/WWC.2001.15)