Brevet FR3014215A1 — publié le 20150605

PROCEDE DE GESTION DES RESSOURCES DE CALCUL D'APPLICATIONS LOGICIELLES L'objet de l'invention concerne un procédé de monitorage pour gérer les ressources de calcul d'applications logicielles, notamment la consommation énergétique de fonctionnement d'un processeur en utilisant un mécanisme de variations du couple tension - fréquence. Une implantation de ce mécanisme est connue sous l'abréviation anglo-saxonne DVFS (Dynamic Voltage and Frequency Scaling) et implantée sur des processeurs du marché. L'invention s'applique notamment à déterminer les besoins de charge des ressources de calcul d'une application s'exécutant sur un équipement composé d'unités de calcul (par exemple des processeurs) et à agir en conséquence sur les changements de paliers de fréquence de ces unités de calcul. L'invention s'applique, par exemple, sur les applications pour lesquelles il est possible de déterminer, pour chaque élément logiciel actif (par exemple processus ou tâche) de l'application exploitant les ressources d'unités de calcul les facteurs de déclenchement, les critères de terminaison associés ainsi que des éléments sur les échéances de ces facteurs d'activation (périodicité, criticité). L'utilisation des nouvelles capacités de type DVFS permet d'adapter la tension d'un processeur en fonction du besoin. Son application actuelle sur des protocoles radio est confrontée notamment aux contraintes suivantes: la prise en compte du temps de réaction entre les passages de faible et de forte consommation d'énergie qui se révèle trop important sur certains paliers, la gestion de traitements avec échéances et criticité temps réel variables, l'identification des échéances à partir desquelles il est possible de gérer la fréquence, la difficulté de prédiction à des variations dynamique de l'exploitation des ressources de la plateforme par les logiciels tels que la création, la suppression et la migration d'éléments logiciels sur les éléments de la plateforme. Les solutions antérieures connues du demandeur nécessitent, soit un traitement où la valeur de la fréquence est fixe par forme d'onde, connu sous l'expression « gros grain » ; soit une connaissance fine des traitements, par exemple la durée d'exécution au pire cas appelée WCET (Worst Case Execution Time) estimée pour chaque exécution; soit une gestion intégrée à un ordonnanceur; soit une gestion ne prenant pas en compte les exigences de criticités d'échéances d'applications logicielles. Le brevet KR20060001509 décrit un procédé pour minimiser la consommation de puissance en temps réel qui implique l'utilisation d'un ordonnanceur spécifique intégrant des gestions de priorité. Cette approche n'est pas adaptée pour les applications dans lesquelles on ne connait pas l'ordonnanceur. Le brevet FR 2 969 776 concerne un procédé de gestion de la consommation énergétique d'une application donnée exécutée sur un ensemble de processeurs. Ce procédé nécessite la connaissance fine des temps sur des traitements exhaustifs des tâches de l'application. Les procédés de type Ondemand Govemor décrits dans le 20 document [http://www.linuxsymposium.org/archives/OLS/Reprints-2006/ Pallipadi-repint.pdf] ne prennent pas en compte la tenue des échéances critiques d'applications temps-réels. Il existe donc à l'heure actuelle le besoin de disposer de procédé et de dispositif, permettant d'être implémentés sans connaître l'ordonnanceur 25 utilisé, de générer automatiquement un moniteur de puissance à partir d'une vue structurelle sans prérequis sur les comportements de la cible. L'invention concerne un procédé de monitorage du niveau de capacité de calcul alloué à une plateforme matérielle pour l'exécution d'une application logicielle en identifiant les situations pour lesquelles il est possible 30 de limiter la consommation en énergie d'un processeur lors de l'exécution d'applications. L'invention concerne un procédé de monitorage du niveau de capacité de calcul alloué à une plateforme matérielle comprenant au moins une unité de calcul sur laquelle va s'exécuter une ou plusieurs applications logicielles composées d'éléments logiciels actifs, un contrôleur de capacité de calcul caractérisé en ce qu'il comporte au moins les étapes suivantes: a) déterminer des paramètres ou facteurs de déclenchement Fd, l'id, des applications logicielles et leurs caractéristiques techniques, b) déterminer le critère de terminaison indiquant la fin lt des éléments logiciels associés à une application logicielle, c) si le traitement de la ou des applications logicielles est terminé, cl) tester si le temps entre la fin de traitement d'une première application logicielle composée d'éléments actifs et le début de déclenchement d'une deuxième application logicielle composée d'éléments logiciels actifs est supérieur à une valeur seuil St, c2) si oui alors faire diminuer la valeur du palier de couple tension- fréquence de l'unité de calcul concernée par les éléments logiciels, d) sur réception du facteur de déclenchement Fd des éléments logiciels actifs, tester si l'application logicielle présente un facteur de criticité C et si le niveau du couple tension-fréquence est bas remonter la valeur du couple tension-fréquence. Selon une variante de réalisation, le contrôleur de capacité de calcul reçoit en un temps maximum estimable tmax, l'information Irfd de réception des facteurs de déclenchement Fd des autres éléments logiciels actifs, l'information lt de terminaison attachée aux facteurs de déclenchement, ainsi que les prochaines échéances E et criticité C de ces échéances. Les applications logicielles sont, par exemple, à échéance périodique, à échéance apériodique, ou encore à échéance sporadique. Dans le cas d'une échéance de facteur de déclenchement périodique et critique d'une application logicielle, alors le procédé réalise la demande d'affectation du couple tension-fréquence en avance d'un temps au moins égal à la latence de l'unité de calcul concernée par l'application logicielle pour réaliser le changement. Selon une variante de réalisation, le contrôleur de capacité de calcul module la fréquence en prenant en compte le besoin maximal de nécessité de capacité de calcul attaché à chacun des facteurs de déclenchement des applications logicielles et une évaluation a priori de la tenue des échéances de l'application globale avec ces variations de fréquence. Dans le cas où aucune des applications logicielles n'est en cours de traitement, le contrôleur va, par exemple, affecter les unités de calcul au niveau tension-fréquence minimum pour les traitements propres à l'exploitation. D'autres caractéristiques et avantages du dispositif selon l'invention apparaîtront mieux à la lecture de la description qui suit d'un exemple de réalisation donné à titre illustratif et nullement limitatif annexé des figures qui représentent : - La figure 1, un exemple d'architecture système pour la mise en oeuvre de l'invention, - La figure 2, un exemple d'exécution des étapes du procédé selon l'invention. La figure 1 représente un exemple d'architecture système permettant l'exécution du procédé selon l'invention. L'objet de l'invention concerne un procédé de monitorage du niveau de tension - fréquence sur une plateforme matérielle en identifiant les situations pour lesquelles il est possible de limiter la consommation lors de l'exécution d'applications temps réelles. Le système 1 comprend une plateforme matérielle 2 comprenant par exemple plusieurs unités de calcul 3i, telles qu'un processeur ou un coeur de processeurs. Chaque unité de calcul 3i offre des ressources d'exécution. Une des ressources d'exécution est la capacité de calcul. La capacité de calcul de la plateforme est fonction de la fréquence de traitements atomiques et du temps à exécuter des traitements atomiques d'une application logicielle qui va être exécutée. Un ensemble de capacités logiciel, par exemple un système d'exploitation 4, est déployé sur la plateforme, afin de permettre l'exploitation des ressources de la plateforme par des applications logicielles. Cet ensemble de capacités logiciels offre notamment un service de gestion de l'heure, ainsi que des mécanismes de contrôle de la consommation des unités de calcul par exemple en offrant une capacité de faire varier les paliers de couple tension-fréquence. Une application logicielle peut affecter à l'unité de calcul en utilisant une fonction du système d'exploitation un niveau de palier de tension-fréquence prédéfini. Selon que les valeurs de palier du couple tension-fréquence affectées sont de valeur petite ou grande, cela correspond à des valeurs de couple tension-fréquence faible ou haute. Une affectation d'un niveau bas à un niveau haut correspond à remonter le niveau de fréquence de l'unité de calcul. Une affectation d'un niveau haut à un niveau bas correspond à baisser le niveau de fréquence de l'unité de calcul. Les applications logicielles 6 sont composées, par exemple, d'un ensemble d'éléments logiciels actifs 7j (tels que des processus ou des tâches) déployés sur les unités de calcul 3i de la plateforme matérielle 2. Cet ensemble d'éléments logiciels actifs peut être, soit déterminé statiquement lors d'une phase initiale des traitements de l'application, soit créé et détruit de manière dynamique pendant l'exécution de l'application composée des éléments logiciels actifs. Ces éléments logiciels peuvent partager la ressource d'une même unité de calcul, en respectant une politique d'accès à cette ressource (par exemple politique d'ordonnancement). Ces éléments logiciels actifs utilisent les capacités de calcul des unités de calcul 3i de la plateforme matérielle 2 à la réception de facteurs de déclenchement. L'invention vise notamment à intégrer, par exemple, un élément logiciel actif supplémentaire, appelé contrôleur de capacité de calcul 10, à déployer sur une des unités des calculs 3i de la plateforme. Le contrôleur de capacité de calcul 10 a notamment la capacité d'agir sur les niveaux de 5 fréquence et de tension des unités de calcul de l'application. Le contrôleur de capacité de calcul 10 reçoit en un temps maximum estimable tmax, l'information l-fd de réception des facteurs de déclenchement Fd des autres éléments logiciels actifs, l'information lt de terminaison attachée aux facteurs de déclenchement, ainsi que les prochaines échéances E et criticité C de ces 10 échéances. Une échéance E est définie comme critique si le niveau de couple tension-fréquence Vfe du processeur doit être à une valeur minimale Ve,ie dès la réception du facteur de déclenchement de l'échéance. L'échéance E peut être périodique, apériodique ou sporadique. Une échéance apériodique est une échéance qu'il n'est pas possible de 15 prévoir. Une échéance sporadique assure un temps minimal entre 2 échéances. Une échéance périodique assure une durée entre deux déclenchements des facteurs de déclenchement égale à une période connue, avec une variation faible de cette durée au regard de la période. A la réception de ces informations, Irra, It, Fd, E, C, à savoir le contrôleur de 20 capacité de calcul fait varier le couple tension-fréquence des unités de calcul de la plateforme. Lorsque le contrôleur reçoit l'indication de fin de traitement de tous les éléments logiciels actifs, par exemple, le contrôleur de capacité de calcul teste si le temps entre deux informations de déclenchement est suffisant, par exemple en utilisant une valeur seuil St, et si oui, il va baisser le 25 niveau du couple tension-fréquence. Lors de la réception de facteur de déclenchement des applications logicielles, le contrôleur de capacité de calcul va regarder le niveau de criticité des applications logicielles et va activer les applications critiques. Pour les applications logicielles non critiques, le contrôleur de capacité de calcul remonte le niveau du couple 30 tension-fréquence. Une fin de traitement d'un élément logiciel actif est la fin de traitement attaché à une échéance particulière de cet élément logiciel. Le contrôleur de capacité de calcul affecte, par exemple, un couple tension-fréquence avec la valeur de fréquence haute Fhaut assurant la tenue des échéances critiques lorsqu'au moins un des logiciels actifs de l'application réalise une activité suite à la réception d'un facteur de déclenchement Fd. Lorsqu'aucun logiciel actif de l'application n'est en cours de réaction suite à la réception d'un facteur déclenchant, le contrôleur de capacité de calcul affecte les unités de calcul 3i au niveau nécessaire (couple tension-fréquence) pour les traitements des capacités logicielles déployées pour l'exploitation des ressources de la plate-forme. En cas d'échéance de facteur de déclenchement périodique et critique, la demande d'affectation de fréquence est réalisée par le contrôleur de capacité en avance, d'une valeur de temps au moins égale à la latence de l'unité de calcul de la plateforme concernée par le changement de fréquence demandé. Un enrichissement des informations disponibles au contrôleur de capacité de calcul permet d'affiner ce comportement initial. Une autre manière de procéder pour le contrôleur de capacité de calcul consiste à moduler le couple tension-fréquence à affecter en cas de connaissance, même partielle, du besoin maximal de nécessité de capacité de calcul pour certains éléments logiciels actifs de l'application, suite à une évaluation a priori de la tenue des échéances de l'application globale, c'est- à-dire une application hors système d'exploitation composée de l'ensemble des éléments logiciels actifs, avec les variations de couples tension-fréquence. Une autre variante de mise en oeuvre pour le contrôleur de capacité de calcul consiste à moduler le couple tension-fréquence en fonction des facteurs de déclenchement, avec la connaissance du besoin maximal de nécessité de capacité de calcul attaché à chacun des facteurs de déclenchement, et une évaluation a priori de la tenue des échéances de l'application globale avec ces variations de couples tension-fréquence. Un exemple d'algorithme du contrôleur de capacité de calcul est explicité ci-après. ltérer { Tant que ((non réception de facteur de déclenchement des éléments logiciels actifs) ou (fin de traitement de tous les éléments logiciels actifs) ou (non réception de déclenchement de réveil à une échéance critique - (moins) temps de latence de changement de fréquence des unités de calculs attachée à l'unité de calcul) ou (mise à jour des éléments logiciels actifs)) rester en attente. (1) Si (mise à jour des éléments logiciels actifs) mettre à jour les éléments logiciels actifs. Fin Si (2) Si ((fin de traitement de tous les éléments logiciels actifs)) Si (temps suffisant pour baisser le palier de couple tension-fréquence) baisser le niveau du couple tension-fréquence. FinSi FinSi (3) Si (réception de facteur de déclenchement des éléments logiciels actifs) Si (Elément logiciel actif critique) armer le réveil pour les tâches critiques périodiques. FinSi Si (Elément logiciel actif non critique) et (niveau de fréquence bas)) remonter le niveau du couple tension- fréquence. FinSi FinSi (4) Si ((réception de déclenchement de réveil à une échéance critique - (moins) temps de latence de changement de fréquence des unités de calculs attachée à l'élément de logiciel actif attaché à l'échéance) et ((niveau du couple tension- fréquence bas)) remonter le niveau du couple tension-fréquence. FinSi } Fin itérer Dans le cas (2), il est à noter que le test peut être effectué une seule fois sur la durée de période où tous les logiciels actifs ont terminé. Ce test sera rendu à nouveau possible après un passage dans le cas (3). La figure 2 donne un exemple de mise en oeuvre du procédé pour un cas composé de 4 éléments logiciels actifs (ela1, ela2, ela3 et ela4). Ces éléments sont de type périodique critique, de périodes 50msec pour elal et ela2, et 5 ms pour ela3 et ela4. Les facteurs de déclenchement des éléments logiciels actifs sont des déclenchements de minuteurs, capturés par les éléments logiciels actifs et par le contrôleur de capacité de calcul. L'armement et déclenchement du réveil avant une échéance critique par le 15 contrôleur de capacité de calcul sont aussi gérés par un minuteur. La fin de traitement des tâches correspond à la fin du traitement déclenché à la réception de l'échéance du minuteur courant sur lequel ils sont cadencés et renseignés au contrôleur de capacité de calcul dans une zone mémoire accessible par celui-ci non représentée sur la figure. 20 Sur une carte avec cible multi-coeur ARM Cortex A9, les niveaux de couples tension-fréquence sont par exemple (0.95v ;400Mhz),(1.15v ;800Mhz) et (1.25v ;1Ghz). Sans sortir du cadre de l'invention, le procédé pourrait s'appliquer pour plusieurs contrôleurs de capacité de calcul. 25 Sans sortir du cadre de l'invention, le procédé s'applique à du mécanisme précité DVFS, ou DPM (Dynamic Power Management) de performance variable sans modification, ou tout autre mécanisme permettant de contrôler les ressources de la plate-forme. Il s'applique sur tous types d'architectures parallèles et/ou hétérogènes, à tous types de gestion de 30 l'ordonnancement des composants logiciels actifs, aux applications avec création et destruction dynamique de composants logiciels actifs. Le procédé s'applique aussi aux applications avec migration de composants logiciels actifs. Le procédé selon l'invention offre notamment les avantages suivants : - la gestion du monitorage DVFS sur paliers de temps variables sur stimuli périodiques ou sporadiques à échéance et criticités variables, - la garantie de tenue des échéances quoiqu'il arrive, même après modification a posteriori des comportements, si celles-ci étaient tenus avant application du procédé. - il ne nécessite pas la connaissance fine des traitements pour le monitorage des fréquences, ni de connaissances supplémentaires de la part des logiciels, - il y a dissociation du traitement des niveaux de fréquence au développement de l'application. - Les applications candidates à être contrôlées peuvent exploiter toutes les ressources de la plateforme. Les applications peuvent notamment jouer sur le niveau de couple tension-fréquence, ordonnancement des tâches à exécuter, la création, la suppression et la migration de tâches. REVENDICATIONS1 - Procédé de monitorage du niveau de capacité de calcul alloué à une plateforme matérielle (2) comprenant au moins une unité de calcul (3i) sur 5 laquelle va s'exécuter une ou plusieurs applications logicielles (6) composées d'éléments logiciels actifs (7j), un contrôleur de capacité de calcul (10) caractérisé en ce qu'il comporte au moins les étapes suivantes: a) déterminer les paramètres ou facteurs de déclenchement Fd, Irfd, des applications logicielles (6, 7j) et leurs caractéristiques techniques, 10 b) déterminer le critère de terminaison indiquant la fin lt des éléments logiciels associés à une application logicielle, c) si le traitement de la ou des applications logicielles (6, 7j) est terminé, cl) tester si le temps entre la fin de traitement d'une première application logicielle composée d'éléments actifs et le début de 15 déclenchement d'une deuxième application logicielle composée d'éléments logiciels actifs est supérieur à une valeur seuil St, c2) si oui alors faire diminuer la valeur du palier de couple tension-fréquence de l'unité de calcul concernée par les éléments logiciels (7j), 20 d) sur réception du facteur de déclenchement Fd des éléments logiciels actifs, tester si l'application logicielle présente un facteur de criticité C, et si le niveau du couple tension-fréquence est bas, remonter la valeur du couple tension-fréquence. 25 2 - Procédé selon la revendication 1 caractérisé en ce que le contrôleur de capacité de calcul (10) reçoit en un temps maximum estimable tmax, l'information Irfd de réception des facteurs de déclenchement Fd des autres éléments logiciels actifs, l'information lt de terminaison attachée aux facteurs de déclenchement, ainsi que les prochaines échéances E et criticité C de ces 30 échéances. 3 - Procédé selon la revendication 2 caractérisé en ce que les applications logicielles sont à échéance périodique. 4 - Procédé selon la revendication 2 caractérisé en ce que les applications logicielles sont à échéance apériodique. 5 - Procédé selon la revendication 2 caractérisé en ce que les applications logicielles sont à échéance sporadique. 6 - Procédé selon la revendication 3 caractérisé en ce que dans le cas d'une échéance de facteur de déclenchement périodique et critique d'une application logicielle, alors on réalise la demande d'affectation du couple tension-fréquence en avance d'un temps au moins égal à la latence de l'unité de calcul concernée par l'application logicielle pour réaliser le changement. 7 - Procédé selon l'une des revendications précédentes caractérisé en ce que le contrôleur de capacité de calcul module la fréquence en tenant compte le besoin maximal de nécessité de capacité de calcul attaché à chacun des facteurs de déclenchement des applications logicielles et une évaluation a priori de la tenue des échéances de l'application globale avec ces variations de fréquence. 8 - Procédé selon l'une des revendications précédentes caractérisé en ce que dans le cas où aucune des applications logicielles n'est en cours de traitement, le contrôleur va affecter les unités de calcul au niveau tension- fréquence minimum pour les traitements propres à l'exploitation. 9 - Procédé selon la revendication 1 caractérisé en ce qu'il exécute le programme comprenant les étapes suivantes:30aérer { Tant que ((non réception de facteur de déclenchement des éléments logiciels actifs) ou (fin de traitement de tous les éléments logiciels actifs) ou (non réception de déclenchement de réveil à une échéance critique - (moins) temps de latence de changement de fréquence des unités de calculs attachée à l'unité de calcul) ou (mise à jour des éléments logiciels actifs)) rester en attente. (1) Si (mise à jour des éléments logiciels actifs) mettre à jour les éléments logiciels actifs. Fin Si (2) Si ((fin de traitement de tous les éléments logiciels actifs)) Si (temps suffisant pour baisser le palier de couple tension-fréquence) baisser le niveau du couple tension-fréquence. FinSi FinSi (3) Si (réception de facteur de déclenchement des éléments logiciels actifs) Si (Elément logiciel actif critique) armer le réveil pour les tâches critiques périodiques. FinSi Si (Elément logiciel actif non critique) et (niveau de fréquence bas)) remonter le niveau du couple tension- fréquence. FinSi FinSi (4) Si ((réception de déclenchement de réveil à une échéance critique - (moins) temps de latence de changement de fréquence des unités de calculs attachée à l'élément de logicielactif attaché à l'échéance) et ((niveau de fréquence bas)) remonter le niveau du couple tension-fréquence. FinSi } Fin itérer 10 - Utilisation du procédé selon l'une des revendications précédentes à des mécanismes de type DVFS ou DPM.