Architecture matérielle des systèmes embarqués
Un système embarqué est un système intégré dans un système plus large (d’où l’appellation “embedded systems”) avec lequel il est interfacé, et pour lequel il réalise des fonctions particulières (contrôle, surveillance, communication, etc) [23, 24]. Nous présentons dans cette section l’architecture matérielle des systèmes embarqués ainsi qu’une étude bibliographique sur la gestion énergétique de ce genre de systèmes [2, 7–11].
MPSoC (MultiProcessor System-on-Chip)
Un système multiprocesseur sur puce (ou multiprocessor system-on-chip MPSoC) [25, 26] est un système embarqué complet intégrant sur une seule puce de silicium plusieurs composants complexes et hétérogènes. Ces composants peuvent être des unités de calcul spécifiques programmables et/ou non programmables (CPU, DSP, ASIC, FPGA), des réseaux de communication complexes (bus hiérarchiques sur puce, réseau sur puce), des composants de mémorisation variés ou encore des périphériques E/S, etc. un modèle générique d’un système MPSoC hétérogène avec des parties matérielles et logicielles structurées en couches. Le matériel se divise en deux couches :
• La couche basse contient les composants de calcul et de mémorisation utilisés par le système (µP, µC, DSP, matériel dédié IPs, mémoires) ; et
• La couche matérielle de communication embarquée sur la puce composée de deux sous-couches : réseau de communication (liens point-à-point, bus hiérarchique, réseau sur puce) et adaptateurs de communication entre le réseau et les composants de la première couche.
Le logiciel embarqué est aussi découpé en couches :
• La couche la plus basse est l’abstraction du matériel HAL (Hardware Abstraction Layer ) permet de faire le lien avec le matériel en implémentant les pilotes E/S des périphériques, des contrôleurs de composants, les routines d’interruption ISR (Interrupt Service Routine) ;
• La couche système d’exploitation qui permet de porter l’application sur l’architecture (gestion de ressources, communication et synchronisation, ordonnancement).
• La couche application.
Les ASICs et les FPGAs sont des circuits intégrés que l’on peut configurer pour réaliser à bas coût des fonctions “câblées” simples dont les temps de réaction sont extrêmement courts.
Consommation d’énergie pour les systèmes embarqués
Pour la haute efficacité des MPSoC, nous présentons dans cette sous section, une évaluation de la consommation de puissance. Dans la littérature [2, 15, 27, 28], la puissance consommée P dans les circuits possédant la technologie CMOS (complementary metal oxide semi-conductor ) est souvent divisée en deux composantes : une composante dynamique due à l’activité des transistors et une composante statique due à leurs courants de fuites. Ces courants de fuites sont considérés négligeables dans cette étude. La puissance dynamique est composée elle même de deux parties : la puissance dissipé par le courant de court-circuit et la puissance dissipé par le courant de commutation. Ces deux courants apparaissent lors de la commutation des transistors.
Les auteurs de [2, 15, 28] ont prouvé par une démonstration complète [28] que la puissance P est proportionnelle au carré de l’utilisation du processeur U, i.e., P = k∗ U².
Cette forumle est utilisée dans de nombreux travaux traitant la problématique de l’ordonnancement temps-réel sous contrainte énergétique . Cette formule est intéressante et sera utilisée dans cette thèse pour contrôler la consommation énergétique en variant l’utilisation du processeur.
Systèmes embarqués rechargeables
La majorité des systèmes embarqués est alimentée par une batterie ou un supercondensateur. Un capteur sans fil est un exemple concret d’un système embarqué qui peut être à la fois rechargeable et temps-réel. Un réseau de capteurs est un système autonome [32] et il est capable de comprendre plusieurs types de capteurs pour mesurer des paramètres de l’environnement tels que la température, l’humidité, la force, le bruit, etc. Les réseaux de capteurs sans fil sont utilisés dans de nombreux domaines :
• Applications environnementales : la détection automatique des incendies et feux de forêts, la détection des tremblements de terre, le suivi des trajectoires des animaux, etc.
• Applications médicales : le médecin peut recevoir les données physiologiques de son patient grâce aux capteurs embarqués sur le corps de ce dernier. Il peut par la suite réaliser le diagnostic nécessaire.
• Applications de domotique (maison intelligente) : Une personne peut contrôler sa maison en installant des capteurs dans toutes les pièces. Elle peut donc superviser la régulation du chauffage, l’éclairage des chambres, etc.
Si les capteurs sont alimentés par une batterie, la durée de vie de celle-ci déterminera la durée de vie du capteur. La notion d’énergie est donc une contrainte forte. L’objectif du concepteur est de fournir la plus longue autonomie au capteur tout en respectant la contrainte liée à la taille physique du système.
Dans le cas d’un réseau de capteurs sans fils qui surveille les départs de feu dans une forêt [3], les capteurs sont alimentés par une batterie qui est rechargeable périodiquement par l’énergie solaire . L’exécution de l’application de surveillance en journée (en présence du soleil) ne viole pas la contrainte énergétique. Cependant, la contrainte peut être violée la nuit à cause de l’épuisement de la batterie et, par conséquent, le système ne pourra plus assurer l’exécution de l’application/tâches.
Il est donc important de garantir que le système s’exécute jusqu’à la prochaine recharge pour éviter des dégâts importants. Ainsi, de nombreuses recherches scientifiques se sont intéressées à la gestion des cycles de recharges de batteries en utilisant la technique d’ordonnancement des tâches. Chetto et al [5] proposent un algorithme d’ordonnancement nommé EDeg (Earliest Deadline with energy guarantee) permettant d’ordonnancer des tâches périodiques sous contrainte énergétique. Les auteurs de considèrent un système composé d’un seul cœur de calcul qui est alimenté par un réservoir d’énergie. Ce réservoir d’énergie est rechargé par une source d’énergie renouvelable. Le cœur doit être capable d’exécuter une configuration de tâches périodiques temps-réel strictes tout en considérant leur demande énergétique, leur échéance et l’énergie disponible dans le réservoir. Ainsi à chaque instant, la tâche ayant la plus proche échéance parmi les tâches prêtes est exécutée uniquement si d’une part le réservoir n’est pas vide et si d’autre part il y a suffisamment d’énergie dans le système de sorte que l’exécution de celle-ci ne compromette pas l’exécution de tâches périodiques futures. Dans le cas contraire, c’est-à-dire s’il n’y a pas assez d’énergie dans le système ou que le réservoir est vide, le cœur doit être mis en mode veille pendant une durée tveille afin de recharger la batterie. L’algorithme EDeg a fait l’objet d’une étude de performance exhaustive publiée dans [35, 36]. Néanmoins, dans des applications réelles comme, le cas d’une batterie alimentée par une source d’énergie photovoltaïque, pendant la nuit la puissance reçue est nulle et EDeg n’est pas capable de garantir l’exécution du système jusqu’à la prochaine recharge. Par conséquent, il faut pouvoir gérer la quantité d’énergie disponible dans la batterie sans engendrer la panne du système. En effet, nous ne considérons pas dans cette thèse une configuration de tâches périodiques temps réel strictes mais une configuration de tâches périodiques temps-réel souples qui tolèrent un seuil de pertes en-deçà duquel les performances du système sont certes dégradées en adaptant les paramètres de tâches mais le résultat est toujours jugé acceptable.
Dans cette thèse, nous nous intéressons aux techniques de gestion énergétique basées sur l’ordonnancement et l’adaptation des paramètres des tâches.
Gestion de l’énergie pour les systèmes reconfigurables et rechargeables
Les systèmes embarqués rechargeables peuvent être de grande taille, distribués et évoluer dans un environnement dynamique [7, 10, 12]. Ils sont généralement amenés à gérer des tâches critiques, mais également des tâches dont la qualité de service peut être dégradée sans que cela ne conduise à des dangers pour le matériel ou pour les humains. Toutefois, ce contexte exige la mise en place de différents modes de fonctionnement et de techniques de fiabilité, d’où la notion de systèmes embarqués reconfigurables dynamiquement [7, 10, 12]. Il existe deux types de reconfigurations dynamiques : la reconfiguration manuelle [11] appliquée par l’utilisateur et la reconfiguration automatique [13] qui est appliquée par l’intervention automatique de programmes ou bien par des agents intelligents. Qu’ils soient manuels ou automatiques, ces différents changements dynamiques de comportement placent les systèmes face à des scénarios de reconfiguration de type ajout et/ou suppression de tâches. Dans ces conditions, il est possible qu’à la suite de plusieurs scénarios de reconfigurations, certaines contraintes temps-réel soient violées [7, 16]. De plus, ce type d’événement peut violer également la contrainte énergétique pour les systèmes rechargeables périodiquement, notamment les systèmes embarqués gérant des énergies renouvelables [9, 20]. Dans les travaux [7, 9, 16, 20] et afin de garantir que le système ne viole pas ces contraintes, les auteurs s’intéressent à la réadaptation des tâches en modifiant leurs paramètres après le scénario de reconfiguration. Dans ce contexte, il existe des travaux qui s’intéressent à la modification des deadlines des tâches [31, 37, 38] afin de réduire l’utilisation du processeur pour que le système soit de nouveau faisable. D’autres travaux s’articulent autour de la modification des périodes des tâches [2, 7, 15]. Bien que ces travaux peuvent réobtenir la faisabilité du système, d’autres travaux proposent différentes approches pour changer la vitesse du processeur en diminuant les WCETs des tâches [2, 16, 39]. Chaque modification a un coût CoutModif ˆ τi qui est calculé par la différence entre la nouvelle valeur et la valeur initiale du paramètre. Toutes les solutions proposées permettent de satisfaire les contraintes violées après un ou plusieurs scénarios de reconfiguration. Toutefois, la modification des paramètres est souvent lourde. En d’autres termes, le coût de modification dans certains cas est très élevé et, de plus, cela conduit à une dégradation plus importante du système.
|
Table des matières
1 Introduction générale
1.1 Contexte et problématique de la thèse
1.2 Contributions de la thèse
1.3 Plan de la thèse
2 État de l’art
2.1 Introduction
2.2 Architecture matérielle des systèmes embarqués
2.2.1 MPSoC (MultiProcessor System-on-Chip)
2.2.2 Consommation d’énergie pour les systèmes embarqués
2.2.3 Systèmes embarqués rechargeables
2.2.4 Gestion de l’énergie pour les systèmes reconfigurables et rechargeables
2.3 Systèmes temps-réel
2.3.1 Taxonomie des systèmes temps-réel
2.3.2 Tâches temps-réel
2.3.2.1 Etat et gestion des tâches
2.3.2.2 Tâches élastiques (flexibles)
2.3.2.3 Migration de tâches
2.3.2.4 Dépendance entre tâches
2.3.3 Ordonnancement temps-réel mono-cœur
2.3.3.1 Politiques d’ordonnancement à priorités fixes
2.3.3.2 Politiques d’ordonnancement à priorités dynamiques
2.3.3.3 Stratégies d’ordonnancement du point de vue énergétique
2.3.4 Ordonnacement temps-réel multi-cœurs
2.3.4.1 Classification des architectures multi-cœurs
2.3.4.2 Approches d’ordonnancement multi-cœurs
2.3.4.3 Heuristiques de placement de tâches pour minimiser la consommation énergétique
2.4 Problèmes d’optimisation et méthodes de résolution pour la problématique de placement de tâches
2.4.1 Méthodes exactes ou optimales
2.4.1.1 Branch and bound
2.4.1.2 Programmation linéaire en nombre entiers
2.4.2 Méthodes approchées ou sous-optimales
2.4.2.1 Heuristiques de listes
2.4.2.2 Heuristiques de regroupement ou Clustering
2.5 Conclusion
3 Contribution à l’ordonnancement temps-réel sous contrainte d’énergie pour les architectures mono-cœur
3.1 Introduction
3.2 Formalisation du système basé sur l’architecture mono-cœur
3.2.1 Modèle de tâches
3.2.2 Modèle de facteur d’utilisation du processeur/cœur
3.2.3 Modèle de consommation d’énergie
3.3 Problème de reconfiguration
3.3.1 Étude de cas : RE-CONF
3.3.2 Problème de contraintes temps-réel
3.3.3 Problème de contraintes énergétiques
3.4 Contribution et heuristiques d’ordonnancement proposées
3.4.1 Résolution du problème de contraintes temps-réel
3.4.1.1 Heuristique A : Modification des périodes des tâches sous contraintes temps-réel
3.4.1.2 Heuristique B : Modification des WCETs des tâches sous contraintes temps-réel
3.4.2 Résolution du problème de contraintes énergétique
3.4.2.1 Heuristique C : Modification des périodes des tâches sous contraintes d’énergie d’un système mono-cœur
3.4.2.2 Heuristique D : Modification des WCETs des tâches sous contraintes d’énergie d’un système mono-cœur
3.4.2.3 Heuristique E : Suppression de tâches
3.4.3 Proposition d’une stratégie d’ordonnancement de tâches
3.5 Simulations et discussion
3.5.1 Étude comparative
3.5.2 Génération aléatoire de tâches et calcul du gain moyen
3.6 Conception d’un Middleware reconfigurable
3.7 Conclusion
Conclusion générale