La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes IRISA - Projet Solidor Antoine COLIN.

Présentations similaires


Présentation au sujet: "Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes IRISA - Projet Solidor Antoine COLIN."— Transcription de la présentation:

1 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes IRISA - Projet Solidor Antoine COLIN

2 2 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Plan  Problématique  Analyse statique du temps d’exécution au pire-cas  Réduire le pessimisme des estimations –Prise en compte de l’architecture matérielle –Identification du pire chemin d’exécution  Analyse de code d’OS  Conclusion et perspectives

3 3 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Problématique COTS - Matériel : processeur, réseau, … - Logiciel : système d’exploitation Temps-réel strict - Respect des échéances Tolérance aux fautes - Redondance des traitements - Détection d’erreurs - Vote -... Tendance actuelle (coût)

4 4 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Problématique : temps-réel strict  Correction des applications temps-réel –Délivrer un résultat correct avant une certaine échéance  Temps-réel strict : –Test d’ordonnançabilité hors-ligne –Respect des échéances de terminaison  Nécessite la connaissance du temps d’exécution au pire cas (WCET) des applications

5 5 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Problématique : obtention du WCET  Méthodes d’estimation des WCETs –Tests et mesures, problèmes : exhiber le pire comportement de l’application sûreté ? –Analyse statique du code source sûre (mais pessimiste) automatique

6 6 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Problématique : « COTS »  Problèmes posés par l’utilisation de COTS –Système d’exploitation sur étagères disponibilité des sources du système langage source analysable ? –Matériel sur étagères complexité des architectures actuelles des processeurs (caches, pipelines, prédiction de branchements)  ne pas prendre en compte ces éléments induit une sur-estimation du WCET (WCET trop pessimiste)

7 7 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Analyse statique (1/2)  Langage adapté à l’analyse (C) –Restrictions : récursivité, appels dynamiques –Annotations : le nombre maximum d’itérations des boucles  Compilation et décomposition du programme en blocs de base (code séquentiel)  Représentation du programme par : –Graphe flot de contrôle –Arbre syntaxique

8 8 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Analyse statique (2/2) Bloc de base _facto: pushl %ebp movl %esp,%ebp subl $0x4,%esp movl $0x1,0xfffffffc(%ebp) L2: cmpl $0x1,0x8(%ebp) jg L5 jmp L3 L5: movl 0xfffffffc(%ebp),%eax imull 0x8(%ebp),%eax movl %eax,0xfffffffc(%ebp) L4: decl 0x8(%ebp) jmp L2 L3: movl 0xfffffffc(%ebp),%edx movl %edx,%eax jmp L1 L1: movl %ebp,%esp popl %ebp ret int facto10(int i) { int r; for (r=1;i>1;i--) [9] { r=r*i; } return r; } Arbre syntaxique séquence 05 3142 boucle Graphe flot de contrôle 0 1 23 4 5

9 9 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Estimation du WCET (1/2)  Enumération implicite des chemins d’exécution –Graphe de flot de contrôle  système de contraintes –Résolution par ILP (Integer Linear Programming) –Pb : complexité, temps de résolution N0 = e0 = e1 N1 = e1 + e6 = e2 + e3 N2 = e2 = e5 N3 = e3 = e4 N4 = e4 = e6 N5 = e5 = e0 e0 = 1 B1  maxiter * B0 WCET =  i Ni*WCET_BBi Maximize(WCET) 1 4 e2 e1e0 e3 e6 e5 e4 5 23 0 e0 = e1 = e2 = e5 = 1 e3 = e4= e6 = maxiter WCET = WCET_BB0 + (maxiter+1)*WCET_BB1 + WCET_BB2 + (maxiter)*WCET_BB3 + (maxiter)*WCET_BB4 + WCET_BB5

10 10 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Estimation du WCET (2/2)  Enumération explicite des chemins d’exécution –Timing schema : arbre syntaxique  système d’équations Arbre syntaxique séquence boucle 05 3142 WCET(seq) = WCET_BB0 + WCET(boucle) + WCET_BB5 WCET(boucle) = maxiter * (WCET_BB1 +WCET_BB3 + WCET_BB4) + WCET_BB1 + WCET_BB2 WCET(SEQ)WCET(S1) + … + WCET(Sn) S1;…;Sn WCET(IF)WCET(test) + max( WCET(then), WCET(else) ) if(test) then else etc.

11 11 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Réduire le pessimisme  2 sources de pessimisme –Calcul des WCET des blocs de base : WCET_BB << WCET(instruction) WCET(instruction) dépend du contexte d’exécution de l’instruction (contexte = état de l’architecture matérielle) –Calcul du WCET du programme : pb d’identification du pire chemin d’exécution  La prise en compte de l’architecture matérielle  Une meilleure identification du pire chemin d’exécution par annotation des programmes  instruction  BB

12 12 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Réduire le pessimisme La prise en compte de l’architecture matérielle  Prise en compte de certains éléments d’architecture  Intel Pentium –Cache d’instructions –Pipeline double –Prédiction de branchements

13 13 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Réduire le pessimisme La prise en compte de l’architecture matérielle  Prise en compte de certains éléments d’architecture : – Cache d’instructions : réduit le temps de chargement des instructions – Pipeline double (U/V) : permet l’exécution de 2 instructions/cycle – BTB : supprime certains délais causés par les branchements Préchargeur Cache d’instructions File B Tampon de cible de branchement (BTB) Test d’appariement U/V Pipeline U Pipeline V Cache de données File A

14 14 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Réduire le pessimisme Le cache d’instruction (1/2)  États abstraits de cache (ACS) –Représentation de tous les états possibles du cache à tout moment de l’exécution. –Granularité : le bloc de base 2 ACS par bloc de base (in/out) –Bloc de base subdivisé en I-blocs –Calcul par itération de point fixe 0 1,13 6,14 3,7 0 1,13 22 23 0 13 14 3 0 1 6 7 22 23 out in pushl %ebp movl %esp,%ebp subl $0x4,%esp movl $0x1,0xfffffffc(%ebp) 22 23

15 15 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Réduire le pessimisme Le cache d’instruction (2/2)  Classification des I-blocs –3 catégories : always hit : chaque référence à l’I-bloc est un hit dans le cache first-miss : seule la 1 ère réf. provoque un cache-miss always miss : toutes les réf. provoquent des cache-miss  Influence sur le WCET –Catégories des I-blocs  temps de chargement d’une instruction en fonction de : la position de l’instruction dans l’I-bloc la fragmentation de l’instruction sur plusieurs I-blocs les catégories des I-blocs concernés

16 16 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Réduire le pessimisme La prédiction de branchement  But : prédire le résultat des instructions de saut –Control Transfer Instruction ( CTI )  Prédictions –Basées sur l’historique des CTIs (H-prediction) –Par défaut quand pas d’historique connu (D-prediction)  Historiques enregistrés par le Branch Target Buffer (BTB)  États abstraits de BTB (ABS) –Idem ACS  Classification des CTIs en 4 catégories –always D-predicted– first unknown –first D-predicted– always unknown

17 17 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Réduire le pessimisme Le pipeline  Pipeline –Rôle : entrelace l’exécution d’instructions consécutives –Méthode : simulation statique de l’état d’occupation du pipeline –Fusion de l’état du pipeline en cas de rupture de séquence –Pentium : pipeline double  simuler l’appariement des instructions Préchargeur Décodage D1 Décodage D2 Exécution Ecriture du résultat

18 18 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Réduire le pessimisme Une nouvelle méthode d’annotation des boucles  Annotations de boucles –Indiquent le nombre maximum d’itération de chaque boucle –Annotation = constante  Boucle non-rectangulaire  Améliorer la précision des annotations –Annotations des boucles par 2 expressions : [ maxiter, indice ] –Expression du WCET des boucles par des sommes finies. For ( i=1 ; i <= 128 ; i=i*2 ) [ 8 ][ 8, 2^  1 ] For ( j=0 ; j<i ; j++) [ 128 ][ P,  2 ] 8  128 = 1024  (  1 ) = 255  1 = 0 8-1  2 = 0 (2^  1)-1 i = 0..4 j = 0..2 j i i = 0..4 j = 0..i i j

19 19 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Prog.c estimation WCET Calcul d’ABS CTI classif. Syntax tree Prog.asm foobar Calcul d’ACS I-blocs classif. Simulation pipeline Maple L’outils H EPTANE (Hades Embedded Processor Timing ANalyzEr) BB tree CFG

20 20 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Analyse logiciel «COTS» (1/2)  Analyse du noyau temps-réel RTEMS  Restrictions sur le langage sources réalistes –Appels dynamiques : peu nombreux fonction appelée toujours connue statiquement (sauf extension) –Pas de récursivité –Boucles annotables, mais pas toujours trivial –Peu de code non structuré (une routine assembleur, gotos restructurables)

21 21 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Analyse logiciel «COTS» (2/2)  Annotations de boucles –Pas d'imbrication de boucles –Boucle infinie : pas de pb (tâche idle) –Nombre maximal d’itérations obtention directe : 25 % des boucles gestion des noms d’objets (chaînes C) allocation dynamique de mémoire (first-fit) boucle de l’ordonnanceur : dépend de l’environnement  Profil du code système –Fort taux de réutilisation des fonctions  WCET partiel  Algorithmes non adaptés à l’analyse de WCET –Allocation dynamique de mémoire

22 22 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Conclusion  H EPTANE : (Hades Embedded Processor Timing ANalyzEr) –Outil d’analyse statique de code C basée sur l ’arbre syntaxique –Prise en compte du cache d ’instruction, du pipeline et du BTB –Utilise une méthode d ’annotations plus précise des boucles  Réduction significative du pessimisme du calcul de WCET  Adaptation d’un noyau temps-réel (RTEMS) aux contraintes de l’analyse (restriction du langage)

23 23 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Perspectives  Quantifier l’impact de ces méthodes (benchmark)  Appliquer un calcul de WCET utilisant ces techniques à du code complexe (OS)  Analyser le support d’exécution Hades  Intégrer le coût du support d’exécution dans les tests de faisabilité des applications

24 24 Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes Pour plus d’informations  http://www.irisa.fr/solidor/work/hades.html  Publications –[ACC + 99] Un support d'exécution flexible pour applications distribuées temps-réel dur. E. Anceaume, G. Cabillic, P. Chevochot, D. Decotigny, A. Colin, I. Puaut Première Conférence Française sur les Systèmes d'Exploitation (CFSE'1), juin 1999 –[CP99] Worst-case timing analysis of the RTEMS real-time operating system. A. Colin, I. Puaut Publication Interne IRISA No. 1277, novembre 1999 –[CP00] Worst Case Execution Time Analysis for a Processor with Branch Prediction. A. Colin, I. Puaut Real-Time Systems, Special issue on worst-case execution time analysis, may 2000, to appear –[CDCP00] Are COTS suitable for building distributed fault-tolerant real-time systems ? A. Colin, D. Decotigny, P. Chevochot, I. Puaut 2000 Workshop on parallel and distributed real-time systems, Cancun, Mexico, mai 2000.


Télécharger ppt "Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes IRISA - Projet Solidor Antoine COLIN."

Présentations similaires


Annonces Google