Architecture des processeurs et vérification de contraintes de temps-réel strict



Documents pareils
En vue de l'obtention du

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement

Ordonnancement temps réel

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Introduction au temps réel

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Annexe 6. Notions d ordonnancement.

Gestion mémoire et Représentation intermédiaire

Compilation (INF 564)

ANALYSE DE TEMPS D EXÉCUTION POUR DES APPLICATIONS TEMPS-RÉEL CHRISTINE ROCHANGE. Plan. Niveau de criticité. Système temps-réel

Organigramme / Algorigramme Dossier élève 1 SI

Conception de circuits numériques et architecture des ordinateurs

Introduction aux systèmes temps réel. Iulian Ober IRIT

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Analyse de sécurité de logiciels système par typage statique

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

MEAD : temps réel et tolérance aux pannes pour CORBA

Cours de Génie Logiciel

Thème 3 Conception et vérification d architectures de systèmes sur puce

Qualité du logiciel: Méthodes de test

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Évaluation et implémentation des langages

Cours d algorithmique pour la classe de 2nde

Métriques de performance pour les algorithmes et programmes parallèles

Les systèmes de base de données temps réels. Pokrovskaya Natalia, Kabbali Nadia

Surveillance et maintenance prédictive : évaluation de la latence de fautes. Zineb SIMEU-ABAZI Univ. Joseph Fourier, LAG)

Exécution des instructions machine

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

CM2 L architecture MIPS32

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

ERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team

Utilisation de l analyse statique comme outil d aide au développement. par. Yves Gauthier

Architecture des ordinateurs

Problèmes liés à la concurrence

Une méthode de conception de systèmes sur puce

Fonctionnement et performance des processeurs

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

ACTIVITÉ DE PROGRAMMATION

CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

//////////////////////////////////////////////////////////////////// Administration bases de données

Initiation à la programmation en Python

2. Activités et Modèles de développement en Génie Logiciel

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Cours 1 : La compilation

REALISATION d'un. ORDONNANCEUR à ECHEANCES

AXES DE RECHERCHE - DOMAINE D'INTERET MAJEUR LOGICIELS ET SYSTEMES COMPLEXES

UNIVERSITE D'ORLEANS ISSOUDUN CHATEAUROUX

Equilibrage de charge (Load

Corrigé des TD 1 à 5

Minimisation de la consommation énergétique à l'aide du système d'exploitation

Architecture des calculateurs

Introduction aux systèmes temps réel

Génie Logiciel avec Ada. 4 février 2013

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Algorithmique I. Algorithmique I p.1/??

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»


Conception des systèmes répartis

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Systèmes et traitement parallèles

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Le langage VHDL. Eduardo Sanchez EPFL

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

MASTER SIS PRO : logique et sécurité DÉTECTION D INTRUSIONS. Odile PAPINI, LSIS. Université de Toulon et du Var. papini@univ-tln.

Concept de machine virtuelle

Mécanismes de protection dans AUTOSAR OS

Architecture des ordinateurs

ENSPS 3A ISAV Master ISTI AR. J. Gangloff

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

Machines virtuelles Cours 1 : Introduction

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Programmes des classes préparatoires aux Grandes Ecoles

Performances et optimisations

DG-ADAJ: Une plateforme Desktop Grid

IFT2255 : Génie logiciel

UE Programmation Impérative Licence 2ème Année

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Quatrième partie IV. Test. Test 15 février / 71

Architecture des Ordinateurs. Partie II:

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

SolarWinds Virtualization Manager

Vérification formelle de la plate-forme Java Card

Chapitre I Notions de base et outils de travail

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Enseignement secondaire technique

données en connaissance et en actions?

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Transcription:

Atelier thématique RIS Nouvelles architectures & technologies de processeurs et sûreté de fonctionnement Architecture des processeurs et vérification de contraintes de temps-réel strict Isabelle PUAUT INSA/IRISA Rennes, FRANCE Novembre 2002

Contexte Systèmes critiques Fonctionnement correct en présence de fautes (d origine physique, humaine) Contraintes de temps-réel strict Temps-réel : temps de réponse des logiciels est un critère de correction (échéance) Temps-réel strict : conséquence graves en cas de faute temporelle (dépassement d échéance) : les temps de réponse des applications doivent être garantis Nécessité de validation du comportement temps-réel du système Systèmes à besoin en performances Architectures matérielles élaborées (exécution pipelinée, caches, ) 2

Validation temporelle des systèmes temps-réel strict Comportement temporel du système dépend De sa charge de travail (instants d arrivée des tâches) Du temps d exécution de chacune des tâches Test exhaustif du comportement du système impossible (combinatoire) Utilisation de modèles du système et méthodes analytiques Charge de travail (exemple : tâches périodiques) Pire temps d exécution des tâches Méthodes d ordonnancement Conditions de faisabilité du système Exemple : analyse Rate Monotonic (RM) Tâches périodiques Ordonnancement à priorité fixe Pire temps d exécution (WCET - Worst-Case Execution Time) : entrée clé WCET Tâche 1 WCET Tâche 2 Analyse n d ordonnançabilité C i i=1 T i n(2 (1/n) -1) Oui/non Oui/non 3

Organisation de l'exposé Méthodes d'obtention des WCET : un bref tour d'horizon Architectures matérielles complexes : problèmes et solutions Pipelines Caches Prédicteurs de branchement L'analyseur Heptane (IRISA) Description Quelques résultats Travaux en cours à l'irisa Alternatives à l'analyse de caches : gel statique de caches Architectures matérielles complexes : points ouverts 4

Obtention des WCET Calcule d'une borne supérieure pour les temps d exécution de portions de code temps pris par le processeur pour exécuter cette portion de code code considéré de manière isolée Défis pour l'obtention des WCET Les estimations de WCET doivent être sûres Confiance dans les méthodes d'analyse Les estimations de WCET doivent être précises Surestimation échec potentiel des conditions de faisabilité, surdimensionnement des ressources matérielles nécessaires 5

Eléments influençant le WCET Programme t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 8 Mises en séquence possibles des actions du programme (chemins d exécution) dépendent des données d'entrée Durée de chaque occurrence d une action dans chaque chemin Dépendant de l'architecture cible 6

Méthodes d estimation des WCET (1/2) Génération de jeux d entrée et mesure Exécution du programme avec des données d entrée Mesure du temps d exécution Comment exhiber le pire comportement du programme? Test exhaustif : impossible en pratique Analyse Analyser le code source ou objet du programme (pas d exécution) 7

Méthodes d estimation des WCET (2/2) Test et mesure Analyse statique Temps mesuré WCET Temps estimé WCET WCETsous-estimé: l analyse d ordonnançabilité peut accepter des ensembles de tâches non faisables WCET surestimé: l analyse d ordonnançabilité acceptera seulement des jeux de tâches faisables Non sûr Sûr WCET effectif WCET sousestimés Mesures WCET sur-estimés Analyse statique Systèmes temps réel strict ont besoin de sûreté analyse statique 8

Analyse statique de WCET Niveaux d analyse Analyse de haut-niveau Détermine statiquement le chemin d exécution le plus long dans un programme Calcule le WCET le long de ce chemin d exécution Le langage doit être adapté à l analyse statique Langage dédié Langage existant avec restrictions Analyse de bas-niveau (niveau matériel) Détermine le temps d exécution d une séquence d instructions sur une architecture donnée Nécessite de connaitre précisément le matériel utilisé Dépendant du matériel 9

Sous-problèmes de l analyse statique de WCET Programme source Analyse de flot (Annotations) Compilateur Représentation des flots Programme objet Analyse de bas niveau Calcul WCET 10

Analyse de flot (1/2) Doivent être déterminés Nombres maximum d itérations des boucles Autres éléments pouvant améliorer la qualité des estimations des WCET Chemins infaisables ou mutuellement exclusifs Bornes de boucles dans le cas de boucles non rectangulaires 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 Borne de boucle: N (N+1)N 2 executions 11

Analyse de flot (2/2) Modes de détermination des flots Automatique : infaisable dans le cas général (halting problem) Manuelle : annotations Simples constantes sur les boucles Annotations symboliques Résultats de l analyse de flot (P. Puschner) 3000 2500 2000 1500 1000 Constant loop b o u n d s Full Path Info. WCET 500 0 Bubble Sort Merge Sort Heap Sort 12

Méthodes de calcul Analyse à base d'arbres (tree-based) Identification des blocs de base Détermination des temps d'exécution des blocs de base (analyse de bas-niveau) Calcul des temps d'exécution des chacune des structures syntaxiques du langage en utilisant les temps des blocs de base et un timing schema pour chaque construction 13

Méthodes de calcul Analyse à base d'arbres (tree-based) WCET(SEQ) S1; ;Sn WCET(S1) + + WCET(Sn) WCET(IF) if(test) then else WCET(test) + max( WCET(then), WCET(else)) WCET(LOOP) for(;tst;inc) {body} maxiter * (WCET(tst)+WCET(body) + WCET(test) Seq1 BB 0 Loop [4] BB 6 BB 1 Seq2 If BB 5 Système d'équations WCET(Seq1) = WCET_BB0 + WCET(Loop) +WCET_BB_6 WCET(Loop) = 4 * (WCET_BB1 + WCET(Seq2)) + WCET_BB1 WCET(Seq2) = WCET(If) + WCET_BB5 WCET(If) = WCET_BB2 + max( WCET_BB3, WCET_BB4 ) BB 2 BB 3 BB 4 14

Méthodes de calcul Analyse à base d'arbres (tree-based) Travaille sur une représentation du programme de haut niveau (arbre syntaxique) Lien avec le code source aisé Complexité des calculs maîtrisée Adaptée aux programmes bien structurés Ne supporte pas toutes les optimisations de compilation Ne supporte pas les constructions non conformes aux portées de l'arbre (jumps and gotos) Prise en compte d'informations de flot élaborées n'est pas aisée (si non conforme à l'arbre syntaxique) Mais,... Rapide 15

Méthodes de calcul Analyse IPET (WCET comme un problème d'optimisation) t 1 t 2 t 3 t 4 Programmation linéaire en nombres entiers But max: f 1 t 1 +f 2 t 2 + +f n t n Contraintes structurelles v: Σ f i = Σ f i e i In(v) e i Out(v) t 5 t 6 t 7 t 8 t 8 θ Contraintes sur les chemins exemples : f i k (maxiter boucle) f i + f j 1 (chemins mutuellement exclusifs) Σ c i f i k (ratio entre nombres d exécutions) 16

Méthodes de calcul Analyse IPET Attrait des méthodes IPET Travaille sur une structure de bas niveau, donc supporte les flots non structurés (goto, jumps,...) Supporte toutes les optimisations de compilation Mais,... Limitations Complexité des calculs non maîtrisée Liens avec le code source non évidents (maîtrise des optimisations de compilation) 17

Analyse de bas niveau (introduction) 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 18

Analyse de bas niveau locale Prise en compte des pipelines Principe : parallélisme entre instructions sucessives (effet local) Problème : simple ajout des temps d'exécution trop pessimiste Solution usuelle : tables de réservation décrivant quand chaque instruction accède les étages du pipeline IF RD ALU MD DIV MEM WB 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 t 19

Analyse de bas niveau globale Caches d'instructions : problème 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 inadéquat en contexte temps-réel strict Problème : estimation sûre du comportement des caches Solution simple (tout miss) est excessivement pessimiste Objectif : prédire si une instruction causera un hit (de manière sûre) ou pourra causer un miss (de manière conservatrice) 20

Analyse de bas niveau globale Caches d'instructions : simulation statique de cache Estimation sûre du comportement des caches Prédit si une instruction causera un hit (de manière sûre) ou pourra causer un miss (de manière conservatrice) Division des instructions en catégories always miss always hit first miss first hit Classification des instructions calculée à partir 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 21

Analyse de bas niveau globale Caches d'instructions : simulation statique de cache 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 I 1 I I 2, I 3 I 4, I 5 BB_4 BB_5 I 4 I 1 5 I 6 U I 4, I 5 I 1, I 6 BB_6 I 6 I 4, I 5 I 6 22

Analyse de bas niveau globale Caches d'instructions : autres méthodes Méthodes d'interprétation abstraite [Sarbrüken] Similitudes avec la simulation statique de cache Méthodes utilisant l'ilp [Séoul] Lignes de programme: sequences d'instructions associées à un bloc de cache Deux temps d'exécution par ligne de programme : hit ou miss Nombre d'exécution d'une ligne de programme = nb hits + nb misses Intégré dans méthode de calcul par ILP max: Σ (f hit,i t hit,i + f miss,i t miss,i ) Contraintes pour le comportement les lignes de prog. / cache Modélisation très fin grain explosion des temps de calcul 23

Analyse de bas niveau globale Caches de données Caches de données [Chalmers] Problème : obtention de l adresse des données (dynamique) Solution : exécution symbolique [Chalmers] Extension d un simulateur de processeurs à des données inconnues Exemple : cas d un branchement Valeur testée connue : on connaît le flot d exécution Valeur testée inconnue : on explore les deux branches Intérêt : prise en compte de toutes les caractéristiques de l architecture Limite : temps de simulation 24

Analyse de bas niveau globale Autres éléments architecturaux maîtrisés Prédicteurs de branchement (dynamiques) Locaux (basé sur historique dernières prédictions du branchement) [IRISA] Méthode issue de la simulation statique de cache Passage du contenu du BTB à une classification Globaux (basé sur historique du branchement + autres branchements exécutés récemment) [Singapour] Mapping vers un problème d ILP 25

Analyse de WCET Heptane Salto : Assembly manipulation tool Assembly description file Source file Front-end Framework Data Modular parts BB Control flow graph Syntactic tree I-Cache WCET of BBs Pipeline Branch Pred. Extended Timing schema Heptane WCET Maple Equation system 26

Analyse de WCET Heptane 27

Analyse de bas niveau Quelques résultats quantitatifs Impact de la modélisation d architecture (analyse noyau RTEMS, Irisa) 100% 80% 60% 40% 20% No pipeline No ICache No BTB Est-Exec Exec 0% 1 2 3 4 5 6 7 8 9 10 11 12 Sans prise en compte architecture, facteur de surestimation = 12.5 Prise en compte architecture réduction pessimisme d un facteur 6.6 28

Analyse de bas niveau Travaux en cours à l'irisa - gel de caches [RTSS02] Limites de l'analyse de caches Degrés d'associativité élevés, caches associatifs Politiques de remplacement de caches non déterministes Dégradation des performances des méthodes d'analyse Latence lors des changements de contexte Gel du contenu du cache (cache locking) Rend le temps d'accès à chaque information connu Pas d'impact sur les temps de changement de contexte Disponible dans de nombreuses architectures (PowerPC, Motorola MPC7451, Coldfire, MIPS, ARM) Simple à mettre en œuvre, obtention des WCETs simplifiée, indépendant de la politique de remplacement de cache Gel partiel (MPC 7451) : cohabitation applications temps-réel strict et souple 29

Analyse de bas niveau Gel statique de cache Gel du contenu du cache Pour l'ensemble des tâches Pour toute leur durée de vie (gel statique) Problème de sélection du contenu Critère de sélection CPU miss Main memory Combinatoire Solution Critère de sélection : ordonnançabilité (comportement pire-cas) Sélection pour minimisation de la charge CPU (Σ C i /P i ) Sélection pour minimisation des interférences entre tâches Réduction de la combinatoire : optimisation sur le chemin d'exécution pire cas sans cache faible complexité (pseudo-polynomial) 30

Analyse de bas niveau Gel statique de cache [RTSS02] - performance pire-cas Meilleur que l'analyse pour Caches de taille importante Degrés d'associativité élevés 31

Analyse de bas niveau Travaux en cours à l'irisa Gel de cache Gel partiel pour cohabitation applications temps-réel strict et souple (voire non temps-réel) Caches de données Gel statico-dynamique pour applications très grandes par rapport à la taille du cache Espaces d'adressage séparés Impact sur contraintes de temps-réel, cohabitation d'applications de criticités différentes Placement en scratchpad 32

Analyse de bas niveau Points ouverts (1/2) Exécution non ordonnée, exécution spéculative Anomalie : un accès hit peut provoquer un WCET plus long qu un accès miss [Chalmers] Anomalie : un chemin exécuté spéculativement peut remettre en cause l analyse de cache Architectures multiprocesseur ou SMT On ne peut plus considérer les tâches de manière isolée Remet en cause la séparation (analyse de WCET <-> analyse d ordonnançabilité) Caches politique de remplacement non déterministes (random), degrés d associativité élevés gel de cache Temps de raffraichissement DRAM, traduction d adresse, 33

Analyse de bas niveau Points ouverts (2/2) Validation des modèles temporel du matériel Jusqu ou aller dans la prise en compte du matériel? Cohabitation des différents éléments architecturaux Complexité des analyseurs, retard / arrivée du matériel Approches probabilistes Conception ou utilisation de matériel prévisible? 34

Quelques pointeurs Références bibliographiques Journal of real-time systems, special issue on static worst-case executiontime analysis, 2 numéros parus en 1999 et 2000 Worshop on static worst-case execution time analysis (2 éditions en 2001 et 2002), en conjonction avec la conf. Euromicro on real-time systems Estimation de temps d exécution au pire-cas par analyse statique et application aux systèmes d exploitation temps-réel. A. Colin, thèse de l université de Rennes I, octobre 2001 Calcul de majorants de pires temps d exécution: état de l art. A. Colin, I. Puaut, C. Rochange, P. Sainrat, PI IRISA 1461, mai 2002 Low-complexity algorithms for static cache locking in hard real-time systems, Proc. of the 2002 IEEE Real Time Systems Symposium (RTSS 2002) - Austin, Texas, décembre 2002 35

Quelques pointeurs Outils d'obtention de WCET Universitaires Cinderella [Princeton] - 68000 Calcul par ILP, cache, pipeline, annotations demandées interactivement Heptane [IRISA] - Pentium- MIPS - autres architectures (planifié) Calcul tree-based, cache (dynamique ou gelé), pipeline, prédiction de branchement, annotations symboliques Diffusion en open-source (http://www.irisa.fr/solidor/work/hades.html) En cours : Outil commun 3 universités Suédoises Analyse de flot automatique + analyse bas-niveau Commerciaux Bound-T [SSF] : pipelines, pas de caches Absint [Sarbrüken] : code objet, utilisation interprétation abstraite (cache, pipeline) 36