Title: Analyse temporelle de systmes tempsrel embarqus
1Analyse temporelle de systèmes temps-réel
embarqués
- Isabelle PUAUT
- Université de Rennes I / IRISA Rennes
- Juin 2006
2Plan
- Contexte systèmes temps-réel embarqués
- Vue densemble des méthodes de validation
temporelle - Classes de méthodes dobtention des WCET
- Méthodes dynamiques
- Méthode statiques
- Méthodes statiques d'obtention des WCET
- Analyse de flot
- Calcul des WCET
- Analyse de bas niveau
- Temps réel embarqué dans la formation option STR
- Travaux pratiques Légo Mindstorm
3Systèmes embarqués
- Système embarqué
- Système faisant partie dun dispositif qui nest
pas un ordinateur (système enfoui) - Interagit fortement avec son environnement
- Caractéristiques typiques
- Fonctions spécifiques à un domaine dapplication
particulier - Ressources limitées
- Processeurs simples, Energie, Mémoire limitée
- Contraintes de temps-réel
- Contraintes de sûreté de fonctionnement
4Systèmes embarquésDomaines dapplication
- Produits de grande consommation
- Cafetière, machines à laver, fours à micro-onde
- Electronique grand public
- Caméras numériques, appareils photo numérique
- Multimédia, téléphonie, jeu
- Automobile
- Systèmes anti-blocage de freins, contrôle
moteur, informatique de confort - Avionique, spatial, nucléaire
- Périphériques informatique FAX, imprimantes
- Grande diversité des besoins, marché en forte
expansion
5Notion de temps-réel
- Définition
- Le temps réel (physique) est un critère de
correction des applications - Contraintes de temps
- Limite quantifiée sur le temps séparant deux
événements (limite min et/ou max) - Ex échéance de terminaison au plus tard
(deadline) - Source des contraintes de temps
- Délai de réaction du système avant
dysfonctionnement - Stabilité du processus physique contrôlé
- Corrélation temps-réel embarqué forte
6Classes de systèmes temps-réel
- Temps-réel strict/dur (hard real-time)
- non respect dune contrainte de temps a des
conséquences graves besoin de garanties - Ex applications de contrôle dans lavionique,
le spatial, le nucléaire, contrôle de production
de matériaux toxiques - Temps-réel souple/mou (soft real-time)
- on peut tolérer le non respect occasionnel dune
contrainte de temps (garanties probabilistes) - Ex applications multimédia grand public (vidéo
à la demande, TV)
7Validation des systèmes temps-réel
- Tests
- Jeux dentrée exécution (architecture réelle,
simulateur) - Nécessaire, mais pas suffisant (exhaustivité)
- Validation à partir de modèles
- Temps-réel strict modèle pire-cas (besoin de
garanties pour tous les scénarios dexécution) - Méthodes de vérification analytiques sur les
modèles - Analyse dordonnançabilité
- Domaine de recherche ancien (début années 60)
et toujours très actif
8Analyse dordonnançabilitéIntroduction (1/2)
- Rôle
- Formules mathématiques ou algorithmes permettant
de vérifier (prouver) que les tâches respecteront
leurs contraintes de temps (ex échéances) - Classification
- Vérification hors-ligne (avant exécution)
- Critères analytiques calculables (CN, CS, CNS)
- Cibles systèmes temps-réel strict
- Vérification en-ligne (pendant exécution)
- Tests dacceptation en-ligne pour savoir si on
accepte de nouvelles tâches - Risque de rejet de tâches ? cibles systèmes
temps-réel souple
9Analyse dordonnançabilitéIntroduction (2/2)
- Données dentrée modèle du système
- Connaissance des informations sur les tâches
(modèle de tâches) - Arrivée des tâches périodique, sporadique,
apériodique (dates darrivées) - Synchronisations précédences, exclusions
- Temps dexécution au pire-cas (WCET)
- Architecture
- Connaissance statique pour système TR strict
- Sorties
- Verdict sur lordonnançabilité
10Analyse dordonnançabilitéExemple (1/2)
- Cadre dapplication
- Tâches périodiques (Pi), deadline DiltPi
- Ordonnancement par priorité (priorité au Di le
plus faible) - Pire temps dexécution Ci
- Condition nécessaire
- Condition suffisante
- Faible complexité
11Analyse dordonnançabilitéExemple (2/2)
- Cadre dapplication identique au précédent
- Mode de calcul itératif du temps de réponse
- Quand la série converge, on a calculé le temps de
réponse Ri - Le système est ordonnançable quand Ri ? Di
- Complexité plus importante
12WCETDéfinition
- Borne supérieure pour les temps dexécution de
portions de code - Temps pris par le processeur pour lexécution
- Code considéré de manière isolée
- WCET ? temps de réponse
- Variable Ci dans les analyses dordonnançabilité
13WCETUtilité
- Vérification temporelle
- Vérification dordonnançabilité
- Garantie (pire cas)
- Dimensionnement des systèmes
- Choix de larchitecture
- Optimisation des applications
- Tôt dans le cycle de développement
14WCETDéfinition
- Défis pour l'obtention des WCET
- Sûreté (WCET gt tout temps d'exécution possible)
confiance analyse dordonnançabilité - Précision
- Surestimation ? échec potentiel des tests de
faisabilité ou surdimensionnement des ressources
matérielles nécessaires
15WCETEléments influençant le WCET
- Mises en séquence possibles des actions (chemins
dexécution) - Dépendent des données d'entrée
- Durée de chaque occurrence dune action
- Dépendant de l'architecture cible
16Méthodes destimation des WCETMéthodes dynamiques
- Principe
- Jeu de données d'entrée
- Exécution (matériel ou simulateur)
- Mesure
- Génération des jeux de test explicites
- Définis par l'utilisateur besoin dexpertise
- Exhaustifs
- Uniquement pour les entrées à domaines finis
- Problème de combinatoire
- Générés automatiquement (génétique,etc.)
- Sûreté ?
17Méthodes destimation des WCET Méthodes statiques
- Principe
- Analyser de la structure du programme(pas
dexécution) - Calculer la WCET à partir de la structure
- Composants de l'analyse
- Analyse de flot
- Détermine les chemins dexécutions possibles
- Analyse de bas niveau
- Détermine le temps dexécution dune séquence
dinstructions sur une architecture donnée - Calcul
- Calcul du WCET à partir des composants précédents
- Tous les chemins sont considérés sûreté
18Méthodes statiquesVue synthétique des composants
Analyse de flot
(Annotations)
Programme source
ou
Représentation des flots
Compilateur
Calcul
Analyse de bas niveau
Programme objet
WCET
19Méthodes statiques Analyse de flot (1/4)
Flots structurellement faisables (infinis)
Basic finiteness (boucles bornées)
Effectivement faisables (chemins infaisables,
mutuellement exclusifs)
20Méthodes statiques Analyse de flot (2/4)
- Chemins infaisables
- Le chemin ABDEF est infaisable
- Connaissance des chemins infaisables améliore la
précision des estimations de WCET
int baz (int x) if (xlt5) // A x
x1 // B else xx2 // C if (xgt10) //
D x sqrt(x) // E return x // F
21Méthodes statiques Analyse de flot (3/4)
- Nombres maximum ditérations des boucles
- Une estimation précise des bornes améliore
lestimation du WCET
Borne de boucle N
for i 1 to N do for j 1 to i do
begin if c1 then A.long
else B.short if c2 then C.short
else D.long end
Borne de boucle N
(N1)N 2
executions
22Méthodes statiques Analyse de flot (4/4)
- Modes de détermination des flots
- Automatique infaisable en général (halting
problem) - Manuelle annotations
- Constantes, annotations symboliques
- Annotations pour chemins infaisables / exclusifs
- Résultats de lanalyse de flot (P. Puschner)
23Méthodes statiques calcul Analyse à base
d'arbres (tree-based)
- Structures de données utilisées
- Arbre syntaxique du programme
- Blocs de base
- Principe de la méthode
- Détermination des temps d'exécution des blocs de
base (analyse de bas-niveau) - Calcul récursif sur les structures syntaxiques
(timing schema)
Seq1
Loop 4
BB0
BB6
Seq2
BB1
If
BB5
BB2
BB4
BB3
24Méthodes statiques calcul Analyse à base
d'arbres
WCET(SEQ) S1Sn WCET(S1)
WCET(Sn) WCET(IF) if(test) then else
WCET(test) max( WCET(then) , WCET(else))
WCET(LOOP) for(tstinc) body maxiter
(WCET(tst)WCET(bodyinc)) WCET(tst)
Seq1
Loop 4
BB0
BB6
Seq2
BB1
If
BB5
BB2
BB4
BB3
25Méthodes statiques calcul Analyse à base
d'arbres
- Attrait des méthodes tree-based
- Lien avec le code source aisé
- Complexité des calculs maîtrisée
- Limitations
- Ne supporte pas toutes les optimisations de
compilation - Prise en compte d'informations de flot élaborées
n'est pas aisée
26Méthodes statiques calcul Analyse IPET
(Implicit Path Enumeration Technique)
- Programmation linéaire en nombres entiers
- But max f1t1f2t2fntn
- Contraintes structurelles ? v fi ? ai
? ai - f1 f7 1
- Contraintes sur les chemins fi ? k (maxiter
boucle) fi fj ? 1 (chemins mutuellement
exclusifs)
ai?In(v)
ai?Out(v)
27Méthodes statiques calcul Analyse IPET
- Attrait des méthodes IPET
- Supporte les flots non structurés (goto, jumps,
...) - Supporte toutes les optimisations de compilation
- Limitations
- Complexité des calculs non maîtrisée
- Liens avec le code source non évidents
28Méthodes statiques analyse de bas
niveauIntroduction
- Architecture simple
- Temps d'exécution d'une instruction dépend
uniquement de son type et de ses opérandes - Pas de recouvrement entre instructions, pas de
hiérarchie de mémoire - Architecture complexe
- Effets locaux
- Recouvrement entre instructions (pipelines)
- Effets globaux
- Caches de données, d'instructions, prédicteurs de
branchement - Demande une connaissance de l'ensemble du code
29Méthodes statiques analyse de bas niveau
(locale)Prise en compte des pipelines
- Principe parallélisme entre instructions
- Intra bloc de base
- Inter bloc de base
Fetch Decode Execute Memory Write Back
Temps
Temps
IF ID EX ME WB
IF ID EX ME WB
Temps
30Méthodes statiques analyse de bas niveau
(locale)Prise en compte des pipelines
- Solution intra-BB
- Tables de réservation décrivant quand chaque
instruction accède les étages du pipeline - Obtenu par l'analyseur lui-même ou outil externe
(simulateur, processeur cible) - Solution inter-BB modification de la méthode de
calcul - Tree-based opérateur d'addition spécifique
- IPET contraintes supplémentaires dans le
problème d'ILP
31Méthodes statiques analyse de bas niveau
(globale)Caches d'instructions
- Cache
- Tire profit de la localité spatiale et temporelle
des accès aux instructions - Spéculatif comportement dépend du comportement
passé des programmes - Bon comportement en moyenne, mais problème de
déterminisme en contexte temps-réel strict - Problème estimation sûre du comportement des
caches - Solution simple (tout miss) excessivement
pessimiste - Objectif prédire si une instruction causera un
hit ou pourra causer un miss (de manière
conservatrice)
32Méthodes statiques analyse de bas niveau
(globale)Caches d'instructions
- Simulation statique de cache
- Calcul d'états abstraits de caches (ACS)
- État du cache représentant tous les chemins
d'exécution possibles - Itération de point fixe pour le calcul
- Division des instructions en catégories selon les
ACS - always hit
- always miss
- first miss, first hit (cas d'instructions dans
des boucles)
33Méthodes statiques analyse de bas niveau
(globale)Caches d'instructions
- input_state(top) all invalid lines
- while any change do
- for each basic block instance B do
- input_state(B) null
- for each immediate predecessor P of B do
- input_state(B) output_state(P)
- end for
- output_state(B) (input_state(B)
prog_lines(B)) - - conf_lines(B)
- end for
- end while
- Amélioration prise en compte niveaux de boucles
34Méthodes statiques analyse de bas niveauAutres
éléments maîtrisés
- Caches de données
- Problème supplémentaire obtention de ladresse
des données (dynamique) - Prédicteurs de branchement
35Méthodes statiquesRésultats quantitatifs
- Impact de la modélisation darchitecture (analyse
noyau RTEMS, Heptane, Irisa)
36Méthodes destimation des WCET Quelle méthode
pour quel usage ?
- Méthodes statiques
- Sûreté ?
- Pessimisme ?
- Besoin de modèle du matériel ?
- Compromis précision-rapidité du calcul
(tree-based / IPET) ? - Méthodes dynamiques
- Sureté ? Probabiliste
- Pessimisme ?
- Pas de modèle du matériel ?
- Une méthode pour chaque usage
37Points ouverts et recherches actuelles
- Prise en compte de matériel complexe
- Compilation pour le temps réel
- Approches probabilistes
38Option STR (Systèmes Temps-Réel Embarqués)
- Master-1, option semestre 2, 48h (CMTDTP)
- Ordonnancement temps-réel
- Classification, politiques dordonnancement,
optimalité - Systèmes dexploitation temps-réel multi-tâches
- Mécanismes de base, ordonnancement,
synchronisation inversion de priorités,
communication, gestion de la mémoire - Vérification
- Analyse dordonnançabilité
- Obtention de pires temps dexécution (WCET)
- Ordonnancement hybride temps réel strict et
souple - Consommation énergétique
- Travaux pratiques Lego Mindstorm
- Master-2 pro programmation temps-réel (Ada95)
39TPs Lego Mindstrom
- Objectif pédagogique
- Programmation multi-tâche temps-réel
- Langage C
- Objectif ludique
- Sortir 8 bouteilles dune enceinte délimitée par
un trait noir, le plus vite possible - Challenge 2006 STR http//www.irisa.fr/caps/people
/puaut/Mindstorm/TPMindstorm.html - Record à battre 1mn28s
- Encadreurs J.F. Deverge, E. Petit