Title: Un outil destimation du temps dexcution au pirecas par analyse statique de programmes
1Un outil destimation du temps dexécution au
pire-cas par analyse statique de programmes
IRISA - Projet Solidor Antoine COLIN
2Plan
- 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
3Problé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
4Problé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
5Problé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
6Problé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) -
-
7Analyse 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
8Analyse statique (2/2)
Graphe flot de contrôle
Arbre syntaxique
séquence
0
5
boucle
3
1
4
2
9Estimation 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
10Estimation 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
11Ré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
12Ré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
13Ré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
14Ré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
15Ré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
16Ré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
17Ré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
18Ré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.
20Analyse 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)
21Analyse 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
22Conclusion
- 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)
23Perspectives
- 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
24Pour 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.