Un outil destimation du temps dexcution au pirecas par analyse statique de programmes - PowerPoint PPT Presentation

About This Presentation
Title:

Un outil destimation du temps dexcution au pirecas par analyse statique de programmes

Description:

Un outil d'estimation du temps d'ex cution au pire-cas par analyse statique de programmes ... complexit des architectures actuelles des processeurs ... – PowerPoint PPT presentation

Number of Views:43
Avg rating:3.0/5.0
Slides: 25
Provided by: iri5
Category:

less

Transcript and Presenter's Notes

Title: Un outil destimation du temps dexcution au pirecas par analyse statique de programmes


1
Un outil destimation du temps dexécution au
pire-cas par analyse statique de programmes
IRISA - Projet Solidor Antoine COLIN
2
Plan
  • Problématique
  • Analyse statique du temps dexécution au pire-cas
  • Réduire le pessimisme des estimations
  • Prise en compte de larchitecture matérielle
  • Identification du pire chemin dexécution
  • Analyse de code dOS
  • Conclusion et perspectives

3
Problématique
Temps-réel strict
Tolérance aux fautes
- Redondance des traitements - Détection
derreurs - Vote - ...
- Respect des échéances
Tendance actuelle (coût)
- Matériel processeur, réseau, - Logiciel
système dexploitation
COTS
4
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 dordonnançabilité hors-ligne
  • Respect des échéances de terminaison
  • Nécessite la connaissance du temps dexécution
    au pire cas (WCET) des applications

5
Problématique obtention du WCET
  • Méthodes destimation des WCETs
  • Tests et mesures, problèmes
  • exhiber le pire comportement de lapplication
  • sûreté ?
  • Analyse statique du code source
  • sûre (mais pessimiste)
  • automatique

6
Problématique COTS
  • Problèmes posés par lutilisation de COTS
  • Système dexploitation 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
Analyse statique (1/2)
  • Langage adapté à lanalyse (C)
  • Restrictions récursivité, appels dynamiques
  • Annotations le nombre maximum dité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
Analyse statique (2/2)
Graphe flot de contrôle
Arbre syntaxique
séquence
0
5
boucle
3
1
4
2
9
Estimation du WCET (1/2)
  • Enumération implicite des chemins dexé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 NiWCET_BBi Maximiz
e(WCET)
e0 e1 e2 e5 1 e3 e4 e6 maxiter WCET
WCET_BB0 (maxiter1)WCET_BB1 WCET_BB2
(maxiter)WCET_BB3 (maxiter)WCET_BB4
WCET_BB5
10
Estimation du WCET (2/2)
  • Enumération explicite des chemins dexécution
  • Timing schema arbre syntaxique ? système
    déquations

WCET(seq) WCET_BB0 WCET(boucle)
WCET_BB5 WCET(boucle) maxiter ( WCET_BB1
WCET_BB3 WCET_BB4) WCET_BB1 WCET_BB2
11
Réduire le pessimisme
  • 2 sources de pessimisme
  • Calcul des WCET des blocs de base
  • WCET_BB ltlt WCET(instruction)
  • WCET(instruction) dépend du contexte dexécution
    de linstruction (contexte état de
    larchitecture matérielle)
  • Calcul du WCET du programme
  • pb didentification du pire chemin dexécution
  • La prise en compte de larchitecture matérielle
  • Une meilleure identification du pire chemin
    dexécution par annotation des programmes

?
instruction ?BB
12
Réduire le pessimisme La prise en compte de
larchitecture matérielle
  • Prise en compte de certains éléments
    darchitecture
  • Intel Pentium
  • Cache dinstructions
  • Pipeline double
  • Prédiction de branchements

13
Réduire le pessimisme La prise en compte de
larchitecture matérielle
  • Prise en compte de certains éléments
    darchitecture
  • Cache dinstructions réduit le temps de
    chargement des instructions
  • Pipeline double (U/V) permet lexécution de 2
    instructions/cycle
  • BTB supprime certains délais causés par les
    branchements

Tampon de cible de branchement (BTB)
Cache dinstructions
Test dappariement U/V
Cache de données
Préchargeur
File A
Pipeline U
File B
Pipeline V
14
Réduire le pessimisme Le cache dinstruction
(1/2)
  • États abstraits de cache (ACS)
  • Représentation de tous les états possibles du
    cache à tout moment de lexé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

out
out
out
in
22 23
15
Réduire le pessimisme Le cache dinstruction
(2/2)
  • Classification des I-blocs
  • 3 catégories
  • always hit chaque référence à lI-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
    dune instruction en fonction de
  • la position de linstruction dans lI-bloc
  • la fragmentation de linstruction sur plusieurs
    I-blocs
  • les catégories des I-blocs concernés

16
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 lhistorique des CTIs (H-prediction)
  • Par défaut quand pas dhistorique 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
Réduire le pessimisme Le pipeline
  • Pipeline
  • Rôle entrelace lexécution dinstructions
    consécutives
  • Méthode simulation statique de létat
    doccupation du pipeline
  • Fusion de létat du pipeline en cas de rupture de
    séquence
  • Pentium pipeline double ? simuler lappariement
    des instructions

Préchargeur
Décodage D1
Décodage D2
Exécution
Ecriture du résultat
18
Réduire le pessimisme Une nouvelle méthode
dannotation des boucles
  • Annotations de boucles
  • Indiquent le nombre maximum dité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 ( i1 i lt 128 ii2 ) 8 8 ,
2?1 For ( j0 jlti j) 128
P , ?2 8 ? 128 1024 ? ( ? 1) 255
8-1
(2?1)-1
?1 0
?2 0
19

Loutils HEPTANE(Hades Embedded Processor Timing
ANalyzEr)
Calcul dACS
CFG
I-blocs classif.
Maple
Simulation pipeline
Prog.c
estimation WCET
BB tree
Calcul dABS
CTI classif.
20
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
Analyse logiciel COTS (2/2)
  • Annotations de boucles
  • Pas d'imbrication de boucles
  • Boucle infinie pas de pb (tâche idle)
  • Nombre maximal ditérations
  • obtention directe 25 des boucles
  • gestion des noms dobjets (chaînes C)
  • allocation dynamique de mémoire (first-fit)
  • boucle de lordonnanceur dépend de
    lenvironnement
  • Profil du code système
  • Fort taux de réutilisation des fonctions ? WCET
    partiel
  • Algorithmes non adaptés à lanalyse de WCET
  • Allocation dynamique de mémoire

22
Conclusion
  • HEPTANE (Hades Embedded Processor Timing
    ANalyzEr)
  • Outil danalyse 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 dun noyau temps-réel (RTEMS) aux
    contraintes de lanalyse (restriction du langage)

23
Perspectives
  • Quantifier limpact de ces méthodes (benchmark)
  • Appliquer un calcul de WCET utilisant ces
    techniques à du code complexe (OS)
  • Analyser le support dexécution Hades
  • Intégrer le coût du support dexécution dans les
    tests de faisabilité des applications

24
Pour plus dinformations
  • http//www.irisa.fr/solidor/work/hades.html
  • Publications
  • ACC99 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. PuautPremiè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.
    PuautPublication Interne IRISA No. 1277,
    novembre 1999
  • CP00 Worst Case Execution Time Analysis for a
    Processor with Branch Prediction.A. Colin, I.
    PuautReal-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. Puaut2000
    Workshop on parallel and distributed real-time
    systems, Cancun, Mexico, mai 2000.
Write a Comment
User Comments (0)
About PowerShow.com