OSTRE Optimisation des Systèmes Temps Réel Embarqués Yves Sorel http://www-rocq.inria.fr/~sorel/work/ostre 1 Présentation action OSTRE 8 janvier 2002 Plan • Contexte • Programme de recherche • Logiciel • Collaborations • Enseignement • Equipe • Perspectives 2 Présentation action OSTRE 8 janvier 2002 Contexte • Entre automatique et informatique : communauté du temps réel et de l’architecture : depuis 1990 méthodologie AAA • Applications : automobile et avionique (AEE, EAST), robotique mobile (CyCab, SAFE), télécom (PROMPT) • Algorithmes applicatifs : contrôle-commande, TSI • Systèmes • Réactifs : événement stimulus - opérations – événement réaction • Temps réel : temps de réaction borné sinon conséquences catastrophiques : contraintes latences (temps de réponse entrée-sortie) cadences (période entrée) • Distribués : puissance calcul, modularité, câblage réduit • Embarqués : minimisation des ressources 3 Présentation action OSTRE 8 janvier 2002 Programme de recherche 4 axes 1) Modélisation des STRE : fondée sur la sémantique des langages synchrones et le modèle matériel RTL • Modèles de graphes pour algorithme (fonctionnalités) et architecture (multicomposant et circuits intégrés spécifiques) • Implantation transformation de graphes 2) Optimisation d’implantation temps réel 3) Génération automatique de code 4) Tolérance aux pannes 4 Présentation action OSTRE 8 janvier 2002 Programme de recherche modélisation algorithme architecture • Théorie des graphes, ordre partiel, automate • Spécification Algorithme applicatif (parallélisme potentiel) : hypergraphe orienté factorisé de dépendances de donnée (avec ou sans précédence) et/ou de conditionnement entre opérations (branchements), répétitif infini (réactif), répétitif fini (boucle) • Vérification : langages Synchrones (ordre sur les événements) • Spécification Architecture multicomposant (parallélisme effectif) : graphe orienté de machines séquentielles : processeurs + circuit intégrés spécifiques (ASIC, FPGA) + moyens de communication (mémoire partagée, passage de message) : adapté à conception conjointe logiciel/matériel 5 Présentation action OSTRE 8 janvier 2002 Programme de recherche modélisation algorithme Itération n Filtrea Filtrea adap gensig filtre Filtrea adap gensig sub filtre sub filtre coeff coeff adap gensig sub coeff visu visu visu retard Dépendance donnée avec ou sans précédence Précédence seulement filtre adap gensig adap filtre Dépendance donnée inter-itération sub visu coeff 6 Présentation action OSTRE 8 janvier 2002 Programme de recherche modélisation architecture processeur1 processeur2 Opr1 RAM D/P processeur3 Opr2 Com1b SAM Com2b Com1a Opr3 RAM D/P RAM D Com2a Com3a RAM D/P RAM D SAM moyen de communication : passage de msg CI spécifique mémoire partagée RAM D Opr4 7 Présentation action OSTRE 8 janvier 2002 Programme de recherche modélisation implantation • Implantation multicomposant : transformation des graphes d’algorithme et d’architecture, toutes les implantations sont décrites en intention comme la composition de trois relations binaires sur des couples (Gal, Gar) : rout. o dist. o ordo. ou comme une loi composition externe : Gal * Garout = Gal’ • Ajout d’opérations de communication et d’allocation de mémoire • Ajout d’arcs : renforce ordre partiel initial en fonction de l’architecture • Implantation circuit : transformation du graphe d’algorithme par remplacement des opérations par des fonctions logiques, ajout de fonctions logiques pour synthèse du contrôle (boucles, conditionnements) • Conserve les propriétés d’ordre sur les événements 8 Présentation action OSTRE 8 janvier 2002 Programme de recherche modélisation implantation processeur1 Opr1 processeur2 RAM D/P allocP allocDl Com1a SAM RAM D/P Com2a Opr2 calc1 in out calc2 allocP allocDl allocD allocD send calc1 receive allocD allocD in out allocD allocD calc2 allocD allocP send receive allocD allocP allocDl allocDl 9 Présentation action OSTRE 8 janvier 2002 Programme de recherche optimisation multicomposant • Adéquation : implantation optimisée, choix d’une transformation de graphes qui respecte une contrainte temps réel (1 latence = 1 cadence) et minimise les ressources de calcul et de com. • Caractérisation hétérogène opération/opérateur et dépendance/moyen-decommunication : durée, interférence calcul/communication • Distribution/ordonnancement calculs et communications : hors ligne sans préemption • PB NP-difficile : solution approchée avec heuristiques rapides (prototypage) : gloutonne (ordonnancement de liste) lentes itératives : voisinage local, global • Fonctions coût latence : flexibilité d’ordonnancement, chemin critique de Gal étiqueté par durées, calculs dans (max,+) • Méta heuristique pour minimisation du nombre de composants 10 Présentation action OSTRE 8 janvier 2002 Programme de recherche optimisation monoprocesseur • Adéquation : implantation optimisée, choix d’une transformation de graphe (ordonnancement) qui respecte des contraintes temps réel multiples (plusieurs latences et plusieurs cadences) • Caractérisation opération/opérateur (processeur) : durées, périodes • Ordonnancement : hors ligne sans préemption • Solution exacte 11 Présentation action OSTRE 8 janvier 2002 Programme de recherche optimisation circuit • Adéquation : implantation optimisée de l’algorithme respectant une contrainte temps réel (1 latence = 1 cadence) et minimisant le nombre de fonctions logiques lors du remplacement et de la synthèse du contrôle • Défactorisation (data parallélisme) • Refactorisation (pipe-line, retiming) • PB NP-difficile : solution approchée avec heuristiques rapides (prototypage) : gloutonne lentes itératives : recuit simulé • Fonctions coût pour minimisation latence : chemin critique de Gal étiqueté par durées et nombre de fonctions logiques 12 Présentation action OSTRE 8 janvier 2002 Programme de recherche génération de code multicomposant • Exécutif dédié : Synchronized Distributed Executive • Transformation graphes : ajout sommets système : init. final. E/S, loop, synchronisations calcul communications (sémaphores) • Sans interblocage et à faible surcoût • Chaque sommet remplacé par macro-code indépendant processeur • Code obtenu par macro-génération avec m4 et noyaux d’exécutifs • Noyaux d’exécutif (macros) dépendant processeur pour : • Processeurs : MPC555, MC68332, 80C196, ADSP2160, TMS320C40/C60, i386... • Moyens de communication : links DSP, CAN, RS232, TCP/IP... • Exécutif standard : configuration RTOS (RTlinux, Osek, etc) : priorités fixes avec ou sans préemption 13 Présentation action OSTRE 8 janvier 2002 Programme de recherche génération de code circuit • Transformation de graphe : remplacement des fonctions logiques par des net-list de composants • Sommet factorisé : composant VHDL exécuté sur différentes données • Hyperarc factorisé : signal VHDL • Composant et signaux contrôlés par des compteurs, des multiplexeur, des démultiplexeur et des registres 14 Présentation action OSTRE 8 janvier 2002 Tolérance aux pannes • Silence sur panne : pannes processeurs et moyens de communication • Redondance logicielle : automatique réalisée à partir des pannes autorisées • Optimisation : 2 extensions de l’heuristique multicomposant • Fondée sur les communications redondées : première arrivée prise • Fondée sur un mélange de solutions, chacune calculée pour une situation de panne possible 15 Présentation action OSTRE 8 janvier 2002 Logiciel Environnement sans rupture d’aide à la Spécification/simulation/implantation optimisée de systèmes distribués temps réel embarqués • Spécification/simulation avec langage orienté métier : exemple Scicos pour spécification de l’environnement et du contrôleur, simulation hybride continu/discret • Implantation optimisée avec AAA/SynDEx : Adéquation Algorithme Architecture implantation distribuée optimisée du contrôleur discret 16 Présentation action OSTRE 8 janvier 2002 Logiciel programmation CyCab généralités • • • • • Vitesse 30km/h Moteurs électriques 4 roues motrices 2 directions AV, AR Multi-processeur MPC555 + un Pentium • Bus Can Industrialisé par Robosoft www.robosoft.fr 17 Présentation action OSTRE 8 janvier 2002 Logiciel spécification/Simulation Scilab/Scicos gratuit sur : www-rocq.inria.fr/scilab Scilab/Scicos Modèle du CyCab Masses Suspension Ecran Pilote SynDEx Joystick, Radio... Roues Sol Moteurs Contrôleur Discret Synthétisé Lois de commande 18 Codeurs, Caméra... Retards Présentation action OSTRE 8 janvier 2002 Logiciel implantation temps réel optimisée AAA/SynDEx gratuit sur : www-rocq.inria.fr/syndex Scicos/Scilab Retards Lois de commande AAA/SynDEx Algorithme Contraintes m4 / gcc Architecture Adéquation Distribution/Ordonnancement Heuristiques + Générateur Macro-Exécutifs 386 et 555 + noyaux génériques + libs 19 Performances Calculées Exécutifs CyCab Présentation action OSTRE 8 janvier 2002 Logiciel programmation CyCab application conduite manuelle 20 Présentation action OSTRE 8 janvier 2002 Collaborations • INRIA : SOSSO, METALAU, MAXPLUS, BIP, ESPRESSO, TICK, HIPERCOM, etc • Universitaires : COSI, A2SI, AXIS, LIESIB, LASL, LASMEA, LIP6, LISI, etc • Industriels : • AEE-EAST (Psa, Renault, Sagem, Valeo, DC, Volvo, Opel, Bosh, ZF, Etas, Vector, etc), • PROMPT (Thales-communications, Esterel-Technology, Nokia), ACOTRIS (EADS, Sitia, CS-SI), • SAFE (Robosoft, Frog-Navigation), • Synopsis-Castor, etc 21 Présentation action OSTRE 8 janvier 2002 Enseignement • Cours : DEA Orsay système électronique et traitement de l’information, ESIEE, ENSTA • Thèses • Soutenues entre 99 et 2001 • • • • • R. Djenidi : coopération Scicos/SynDEx T. Grandpierre : modèle d’architecture et d’exécutif distribué temps réel A. Dias : synthèse de circuit intégrés R. Kocik : data-flow/control-flow, ordonnancement multicontraintes A. Vicard : formalisation d’implantations temps réel avec des graphes • En cours depuis 2001 • L. Cucu : ordonnancement multicontraintes et tolérance aux pannes • L. Kaouane : synthèse de circuit intégrés • Débute en 2002 • H. Kalla : tolérance aux pannes 22 Présentation action OSTRE 8 janvier 2002 Equipe • Y. Sorel, DR2 • C. Macabiau, ingénieur associé • L. Cucu, doctorante INRIA • H. Kalla, doctorant INRIA • L. Kaouane, doctorant ESIEE • T. Grandpierre et R. Kocik, collaborateurs extérieurs ESIEE 23 Présentation action OSTRE 8 janvier 2002 Perspective recherche • Modélisation STRE : control-flow/data-flow (TICK /OSTRE), unification multicomposant/circuit conception conjointe HW/SW • Optimisation d’implantation : contraintes temps réel multiples • Monoprocesseur : ordonnancement hors ligne avec préemption, en ligne pour événements apériodiques (HIPERCOM/OSTRE) • Multicomposant : distribution et ordonnancement hors ligne et en ligne avec préemption : solution approchée • Unification heuristiques multicomposant/circuit : conception conjointe logiciel/matériel avec partitionnement automatique : fonction de coût pour choix logiciel/matériel (flexibilité, performance) • Génération de code : exécutif/net-list • Tolérance aux pannes (BIP/OSTRE) : pannes capteursactionneurs, pannes intermittentes 24 Présentation action OSTRE 8 janvier 2002