FR3133934A1 - Procédé de gestion d’exécution d’une pluralité de fonctions - Google Patents
Procédé de gestion d’exécution d’une pluralité de fonctions Download PDFInfo
- Publication number
- FR3133934A1 FR3133934A1 FR2202599A FR2202599A FR3133934A1 FR 3133934 A1 FR3133934 A1 FR 3133934A1 FR 2202599 A FR2202599 A FR 2202599A FR 2202599 A FR2202599 A FR 2202599A FR 3133934 A1 FR3133934 A1 FR 3133934A1
- Authority
- FR
- France
- Prior art keywords
- task
- execution
- instruction
- function
- functions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000006870 function Effects 0.000 title claims abstract description 166
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012795 verification Methods 0.000 claims abstract description 5
- 230000001186 cumulative effect Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 2
- 238000005259 measurement Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 6
- 239000000725 suspension Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Abstract
L’invention concerne un procédé de gestion de l’exécution d’une pluralité de tâches, chaque tâche étant associée à un niveau de priorité et comprenant une séquence de fonctions comprenant une alternance de fonctions d’instruction et de fonctions dites « de préemption », suite à l’exécution d’une fonction d’instruction d’une tâche, le procédé comprend les étapes : d’exécution de la fonction de préemption (E5) lors de laquelle une durée prédictive est déterminée en sommant la durée d’exécution de la fonction d’instruction successive à la fonction de préemption et la durée de l’ensemble des fonctions d’instructions de la séquence déjà exécutées,si la durée prédictive est supérieure à un seuil prédéfini de temps, vérification (E6) de la réception d’une tâche de niveau de priorité supérieur au niveau de priorité de la tâche en cours d’exécution,sinon, exécution (E10) de la fonction d’instruction successive à la fonction de préemption. Figure pour l’abrégé : Fig 2
Description
L’invention concerne le domaine des procédés de gestion d’exécution de tâches par un processeur pour véhicule automobile.
De manière connue, un véhicule automobile électrique, hybride ou thermique, comprend une pluralité de dispositifs à commander comme par exemple les éléments constituant la chaîne de traction du véhicule ou les équipements électriques. Afin de commander ces dispositifs, le véhicule automobile comprend une pluralité de processeurs ou CPU pour « central processing unit » en langue anglaise.
Chaque processeur comprend une pluralité de cœurs, et chaque cœur est configuré pour exécuter une pluralité de tâches. Chaque tâche est constituée d’une succession de fonctions. Exécuter l’ensemble des fonctions d’une tâche permet par exemple de déterminer les commandes à émettre aux divers dispositifs montés dans le véhicule.
Dans le cas d’un système dit « coopératif », chaque tâche coopérative est associée à un niveau de priorité et une tâche coopérative en cours d’exécution peut être interrompue à certains instants prédéfinis afin d’exécuter une tâche coopérative d’un niveau de priorité plus élevé. Par exemple, les tâches à niveau de priorité élevé correspondent à des commandes d’éléments constituants la chaîne de traction du véhicule, et notamment au moteur thermique ou à la machine électrique.
Pour cela, certaines tâches coopératives peuvent comprendre au moins une fonction d’arrêt, appelée « point of schedule » en langue anglaise par l’homme du métier. Chaque fonction d’arrêt est placée entre deux fonctions de la séquence de fonctions de la tâche. Lorsqu’une fonction d’arrêt d’une tâche est exécutée, cela permet de vérifier si l’exécution d’une tâche coopérative de niveau de priorité supérieur au niveau de priorité de la tâche en cours d’exécution est demandée. Auquel cas, la tâche en cours d’exécution est interrompue, autrement dit suspendue, après la fonction d’arrêt afin d’exécuter la tâche plus prioritaire. Si aucune tâche de niveau de priorité supérieur est en attente d’exécution, alors la tâche en cours d’exécution n’est pas interrompue.
L’emplacement des fonctions d’arrêt dans la séquence de fonctions de chaque tâche est prédéfini. Autrement dit, la durée entre deux fonctions d’arrêt successives dépend du temps d’exécution des fonctions à exécuter entre les deux fonctions d’arrêt. Dans le cas où cette durée est relativement longue, notamment lorsqu’elle est supérieure à 300 us, et qu’une tâche plus prioritaire est en attente d’exécution, cela peut engendrer un temps de latence relativement important entre la demande d’exécution d’une tâche de niveau de priorité plus élevé et son exécution. Cela peut également générer un retard, une non-réactivité, dans la détermination et l’application de commandes aux éléments de la chaîne de traction du véhicule.
Une solution à ce problème peut être d’augmenter le nombre de fonctions d’arrêts dans chaque tâche. Cependant, à chaque interruption de tâches, il est nécessaire d’enregistrer l’ensemble des paramètres de la tâche interrompue au stade où elle a été interrompue, de sorte à pouvoir reprendre l’exécution de cette tâche après l’exécution d’une deuxième tâche d’un niveau de priorité plus élevé. Cela représente une perte de temps et ajoute de nombreuses étapes dans la gestion de l’exécution des fonctions de chaque tâche.
Il existe donc le besoin d’une solution permettant de remédier au moins en partie à ces inconvénients.
A cette fin, l’invention concerne un procédé de gestion de l’exécution d’une pluralité de tâches par un processeur destiné à être monté dans un véhicule, le véhicule comprenant une pluralité de dispositifs, chaque tâche étant associée à un niveau de priorité et comprenant une séquence de fonctions prédéfinies, ladite séquence comprenant une alternance de fonctions d’instruction et de fonctions dites « de préemption », l’ensemble des fonctions d’instruction d’une tâche permettent, lorsqu’elles sont réalisées les unes après les autres, de déterminer une instruction ou une commande à émettre à un dispositif ou de déterminer des valeurs d’entrée ou de sortie relatives à un dispositif, chaque fonction d’instruction est associée à une durée d’exécution, chaque fonction de préemption étant configurée pour définir la nécessité d’interruption d’une tâche pour exécuter une tâche de niveau de priorité plus élevé que le niveau de priorité de la tâche en cours d’exécution, suite à l’exécution d’une fonction d’instruction de la tâche, le procédé comprend les étapes :
- d’exécution de la fonction de préemption lors de laquelle une durée prédictive est déterminée en sommant la valeur de la durée d’exécution de la fonction d'instruction successive à la fonction de préemption et la durée de l’ensemble des fonctions d’instructions de la séquence déjà exécutées depuis un instant dit « de planification »,
- si la durée prédictive est supérieure à un seuil prédéfini de temps, vérification (E6) de la réception par le processeur d’une tâche de niveau de priorité supérieur au niveau de priorité de la tâche en cours d’exécution,
- sinon, exécution de la fonction d’instruction successive à la fonction de préemption.
Ainsi, le procédé permet d’interrompre la mise en œuvre d’une séquence de fonctions d’instructions d’une tâche seulement lorsqu’une tâche de niveau de priorité plus élevé est en attente d’exécution. Cela permet au processeur d’être davantage réactif dans l’exécution de tâches de niveau de priorité plus élevé. Sinon, le procédé permet de laisser la tâche en cours d’exécution s’exécuter.
Les tâches mises en œuvre dans ce procédé sont communément désignées tâches « coopératives », puisqu’elles coopèrent entre elles lors de l’exécution d’une fonction de préemption, afin d’exécuter la fonction d’exécution la plus prioritaire.
De préférence, si le processeur a reçu une tâche de niveau de priorité supérieur au niveau de priorité de la tâche en cours d’exécution, le procédé comprend les étapes :
- d’interruption de la tâche en cours d’exécution,
- d’exécution de la tâche de niveau de priorité supérieur.
De préférence encore, la durée prédictive est comprise entre 200 et 400 us, de préférence 300 us.
Avantageusement, le processeur comprend une zone mémoire dans laquelle est enregistrée une table de référence, la table de référence associant à chaque fonction de la tâche une durée d’exécution, le procédé comprend, pour chaque fonction en cours d’exécution, une étape de :
- détermination de la durée d’exécution de la fonction d’instruction exécutée,
- mise-à-jour de la valeur de durée associée à la fonction d’instruction exécutée dans la table de référence à partir de la durée d’exécution déterminée.
Avantageusement encore, la zone mémoire comprend un compteur et une table de correspondance, la table de correspondance associant chaque tâche au nombre de fonctions d’instruction que ladite tâche comprend, le procédé comprenant les étapes :
- d’initialisation de la valeur du compteur à zéro, avant l’exécution de la première fonction de la séquence de fonctions d’une tâche,
- d’incrémentation du compteur lors de l’exécution de chaque fonction d’instruction de ladite séquence de fonctions,
- lorsque la valeur du compteur est égale au nombre de fonctions d’instruction associé à ladite tâche dans la table de correspondance, réinitialisation du compteur à la valeur zéro.
De préférence, une valeur de durée cumulative étant égale à la durée d’exécution de l’ensemble des fonctions d’instruction de la séquence déjà exécutées, est enregistrée dans la zone mémoire, le procédé comprenant, lors de chaque exécution d’une fonction d’instruction de la séquence, une étape de mise à jour de la durée cumulative enregistrée dans la zone mémoire, dans laquelle la durée d’exécution mesurée de ladite fonction d’instruction exécutée est ajoutée à la valeur de la durée cumulative.
L’invention concerne également un produit programme d’ordinateur caractérisé en ce qu’il comporte un ensemble d’instructions de code de programme qui, lorsqu’elles sont exécutées par un ou plusieurs processeurs, configurent le ou les processeurs pour mettre en œuvre un procédé tel que décrit précédemment.
L’invention concerne encore un processeur pour véhicule automobile, le processeur étant apte à mettre en œuvre une pluralité de tâches, chaque tâche étant associée à un niveau de priorité et comprenant une séquence de fonctions prédéfinies, ladite séquence comprenant une alternance de fonctions d’instructions et de fonctions de préemption, l’ensemble des fonctions d’instruction d’une tâche permettent, lorsqu’elles sont réalisées les unes après les autres, de déterminer une instruction ou une commande à émettre à un dispositif ou de déterminer des valeurs d’entrée ou de sortie relatives à un dispositif, chaque fonction d’instruction est associée à une durée d’exécution, chaque fonction de préemption étant configurée pour définir la nécessité d’interruption d’une tâche pour exécuter une tâche de niveau de priorité plus élevé que le niveau de priorité de la tâche en cours d’exécution, le processeur étant apte à mettre en œuvre le procédé tel que décrit précédemment.
Enfin, l’invention concerne un véhicule automobile comprenant au moins un processeur tel que décrit précédemment.
D’autres caractéristiques et avantages de l’invention apparaîtront encore à la lecture de la description qui va suivre. Celle-ci est purement illustrative et doit être lue en regard des dessins annexés sur lesquels :
La est une illustration d’un cœur de processeur selon l’invention,
La est une illustration du procédé selon l’invention.
Véhicule
Un véhicule automobile comprend une pluralité de dispositifs, et notamment divers éléments constituants la chaîne de traction ou des dispositifs électriques.
Le véhicule comprend au moins un processeur apte à déterminer et émettre des instructions, autrement dit des commandes, à chacun desdits dispositifs.
Plus précisément, chaque processeur comprend au moins un cœur.
En référence à la , chaque cœur 10 du processeur comprend un module d’exécution 11 et un module de gestion 12.
Le module de gestion 12 est apte à recevoir chaque tâche à exécuter.
Chaque module d’exécution 11 est apte à mettre en œuvre un ensemble de tâches, plus précisément de tâches dites « coopératives ».
Chaque tâche est associée à un niveau de priorité. Une tâche associée à un niveau de priorité plus élevé est dite « prioritaire » et concerne notamment la détermination d’instructions ou commandes à émettre à un élément de la chaîne de traction ou la lecture de mesures effectuées par un capteur, ou un ensemble de calculs.
Chaque tâche comprend une pluralité de fonctions et plus précisément une séquence de fonctions.
Plus précisément, chaque tâche comprend une succession de fonctions et plus précisément une alternance de fonctions dites « d’instruction » et de fonctions dites « de préemption ». L’exécution de la succession des fonctions d’instruction d’une tâche permet de définir directement ou indirectement une instruction ou commande à émettre au dispositif relatif à ladite tâche.
Chaque cœur 10 du processeur comprend également une zone mémoire MEM dans laquelle est enregistrée la valeur d’un compteur, une table de référence, une table de correspondance et la valeur d’une durée cumulative.
La table de référence associe à chaque fonction d’instruction d’une tâche, une durée d’exécution. La durée d’exécution d’une fonction d’instruction peut être prédéfinie et correspondre à une mesure préalablement réalisée de la durée d’exécution de la fonction d’instruction. Lorsqu’aucune mesure de la durée d’exécution n’a encore été réalisée, la durée d’exécution prédéfinie est notamment initialisée à zéro.
Par ailleurs, la table de correspondance associe chaque tâche au nombre de fonctions d’instruction que ladite tâche comprend.
La durée cumulative représente pour une séquence de fonctions d’instruction donnée d’une tâche, la durée d’exécution réelle de l’ensemble des fonctions de la tâche déjà réalisées depuis un instant prédéfini. L’instant prédéfini est aussi appelé « instant de planification » et désigne par exemple l’instant à partir duquel la première fonction d’instruction de la tâche est exécutée ou l’instant à partir duquel une fonction d’instruction de la tâche est exécutée après une interruption d’exécution de ladite tâche.
Chaque fonction dite « de préemption » ou autrement dit « d’ordonnance » entre deux fonctions d’instruction, permet de définir si la tâche en cours d’exécution doit être interrompue ou non afin d’exécuter une autre tâche plus prioritaire. Autrement dit, la fonction de préemption permet de définir l’ordre d’exécution des tâches en fonction du niveau de priorité de chaque tâche.
Plus précisément, lorsqu’une fonction de préemption est exécutée, elle est configurée pour déterminer une durée dite « prédictive » en sommant la valeur de la durée d’exécution de la fonction d’instruction sur le point d’être exécutée (et donc la durée d’exécution de la fonction d’instruction placée juste après la fonction de préemption dans la séquence de fonctions) et la durée cumulative, autrement dit la valeur de la durée de l’ensemble des fonctions d’instruction de la séquence déjà exécutées depuis le début de la tâche ou depuis la dernière interruption de la tâche. La valeur de la durée d’exécution de la fonction sur le point d’être exécutée est notamment récupérée dans la table de référence enregistrée en zone mémoire MEM. La durée prédictive représente donc une estimation, autrement dit une prédiction, de la durée d’exécution de l’ensemble des fonctions d’instructions déjà exécutées et de la fonction d’instruction sur le point d’être exécutée.
Lorsque la durée prédictive est supérieure à un seuil prédéfini de temps, alors la fonction de préemption est configurée pour vérifier si une tâche de niveau de priorité plus élevé que le niveau de priorité de la tâche en cours d’exécution, est en attente d’exécution.
Le seuil prédéfini de temps correspond notamment à une valeur comprise entre 200 et 400 us, de préférence 300 us.
De plus, chaque tâche comprend une fonction de mesure, configurée pour déterminer, et notamment mesurer, la durée d’exécution de chaque fonction d’instruction de tâche.
La fonction de mesure est également apte à mettre à jour la table de référence notamment en déterminant une nouvelle valeur de durée d’exécution.
Selon un premier exemple, chaque fois qu’une fonction d’instruction est exécutée, la durée d’exécution est mesurée et sa valeur remplace la durée prédéfinie associée à ladite fonction d’instruction et enregistrée dans la zone mémoire MEM.
Selon un deuxième exemple, la nouvelle valeur est déterminée en mesurant à plusieurs reprises la durée d’exécution d’une fonction d’instruction puis en déterminant la moyenne des différentes mesures réalisées et en remplaçant la durée prédéfinie associée à ladite fonction d’instruction et enregistrée dans la zone mémoire MEM par la moyenne nouvellement déterminée.
Ainsi, la mise à jour de la valeur de la durée d’exécution associée à chaque fonction d’instruction permet d’adapter la valeur de la durée d’exécution en fonction du temps d’application réel de chaque fonction par le module d’exécution 11.
De plus, pour une séquence de fonctions donnée, la fonction de mesure est apte à ajouter, après chaque exécution d’une fonction d’instruction de la séquence, la durée d’exécution mesurée de ladite fonction d’instruction exécutée à la valeur de la durée cumulative enregistrée en zone mémoire MEM. Ainsi, après chaque exécution d’une fonction d’instruction de la séquence, la durée cumulative représente la durée d’exécution de l’ensemble des fonctions d’instruction de la séquence déjà exécutées.
De plus, lorsqu’une séquence de fonctions d’instructions d’une tâche est exécutée entièrement, la valeur de la durée cumulative est réinitialisée à zéro.
Procédé
En référence à la , il va maintenant être décrit un mode de réalisation du procédé mis en œuvre par un cœur 10 du processeur. Le procédé peut être réitéré sur chacun des cœurs 10 du processeur.
Pour la mise en œuvre du procédé il est considéré une séquence de fonctions d’une tâche prédéfinie à exécuter. La durée d’exécution de chaque fonction d’instruction est enregistrée dans la table de référence en zone mémoire MEM et peut être prédéfinie ou non.
Le procédé est mis en œuvre à partir d’un instant de planification prédéfini.
Lorsqu’aucune fonction d’instruction de la tâche n’a encore été exécutée depuis l’instant de planification, le procédé comprend une étape d’initialisation E01 de la valeur du compteur à la valeur zéro.
Au moment de chaque instant de planification, le procédé comprend une étape d’initialisation E02 à zéro de la valeur de la durée cumulative enregistrée en zone mémoire MEM.
Le procédé comprend ensuite une étape d’exécution E1 d’une fonction d’instruction de la tâche à partir dudit instant de planification prédéfini.
De plus, à chaque fois qu’une fonction d’instruction de la séquence est exécutée, le procédé comprend une étape d’incrémentation E1’ de la valeur du compteur.
De plus, le procédé comprend une étape de détermination E2 de la durée d’exécution de chaque fonction d’instruction exécutée. Pour cela, il est mesuré la durée d’exécution de ladite fonction.
De plus, le procédé comprend ensuite une étape de mise à jour E3 de la valeur de durée associée à chaque fonction d’instruction exécutée dans la table de référence à partir de la durée d’exécution déterminée précédemment.
Pour cela, une nouvelle valeur de durée d’exécution est déterminée et remplace la valeur associée à la fonction d’instruction dans la table de référence par la nouvelle valeur de durée déterminée.
La nouvelle valeur de durée peut correspondre à la moyenne entre la valeur de la durée déterminée lors de l’étape de détermination E2 et la valeur de la durée d’exécution associée à la fonction dans la table de référence, ou peut correspondre à la mesure de la durée d’exécution réalisée pendant l’étape de détermination E2, ou peut correspondre à la moyenne entre la mesure de la durée d’exécution de la fonction effectuée pendant l’étape de détermination E2 et au moins une autre mesure de durée de ladite fonction exécutée lors d’une autre itération de l’étape de détermination E2 du procédé.
Le procédé comprend ensuite une étape de mise à jour E4 de la durée cumulative enregistrée dans la zone mémoire MEM, dans laquelle la valeur de la durée d’exécution mesurée de ladite fonction d’instruction exécutée est ajoutée à la valeur de la durée cumulative enregistrée en zone mémoire MEM.
De plus, le procédé comprend également une étape d’exécution de la fonction de préemption E5 lors de laquelle une durée prédictive est déterminée en sommant la valeur de la durée d’exécution mémorisée de la fonction d’instruction à exécuter après la fonction de préemption, et de la durée cumulative, autrement dit la durée de l’ensemble des fonctions d’instruction de la séquence déjà exécutées depuis l’instant de planification.
Si la durée prédictive est supérieure au seuil prédéfini de temps, le procédé comprend une étape de vérification E6 de la demande d’exécution par le module d’exécution 11 d’une tâche de niveau de priorité supérieur au niveau de priorité de la tâche en cours d’exécution. Autrement dit, l’étape de vérification E6 consiste à vérifier si le module de gestion 12 a reçu une tâche à exécuter, dont le niveau de priorité est plus élevé que la tâche en cours d’exécution. Ladite tâche est ensuite appelée « tâche prioritaire » et est en attente d’exécution par le module d’exécution 11.
Dans le cas où le processeur, et plus précisément le module de gestion 12, a reçu une tâche prioritaire, le procédé comprend une étape d’interruption E7, autrement dit de suspension, de l’exécution de la tâche en cours d’exécution. Plus précisément, la fonction de préemption demande au module d’exécution 11 d’arrêter provisoirement d’exécuter ladite tâche. Suite à l’étape d’interruption E7, le procédé comprend également une étape de réinitialisation à zéro de la valeur de la durée cumulative.
Suite à la suspension de la tâche, le procédé comprend une étape d’exécution E8 de la tâche prioritaire. La tâche prioritaire est exécutée par le module d’exécution 11, mais c’est le module de gestion 12 qui demande au module d’exécution 11 d’exécuter ladite tâche prioritaire.
Une fois que la tâche prioritaire est complètement exécutée, le procédé comprend une étape d’exécution E9 de la tâche qui a été préalablement interrompue, et plus précisément d’exécution de la fonction d’instruction successive à la dernière fonction d’instruction de la tâche exécutée avant l’exécution de la tâche prioritaire. De même, c’est le module de gestion 12 qui demande au module d’exécution 11 d’exécuter ladite tâche précédemment interrompue. L’instant à partir duquel la tâche interrompue est de nouveau exécutée est défini par les termes « deuxième instant de planification », à partir duquel seront calculées une nouvelle valeur de durée prédictive et une nouvelle valeur de durée cumulative.
A l’inverse, lorsqu’à l’étape de vérification E6, aucune tâche prioritaire n’est en attente d’exécution, le procédé comprend une étape d’exécution E10 de la tâche en cours d’exécution, et plus précisément de la fonction d’instruction successive à la fonction de préemption qui a été exécutée.
De même, si la durée prédictive est inférieure au seuil prédéfini de temps, le procédé comprend également une étape d’exécution E10 de la tâche en cours d’exécution, et plus précisément de la fonction d’instruction successive à la fonction de préemption qui a été exécutée.
Suite à l’étape d’exécution E10 ou à l’étape d’exécution E9, lors desquelles une fonction d’instruction est exécutée, les étapes d’incrémentation E1’ du procédé, et les étapes suivantes du procédé, sont répétées. Autrement dit, pour chaque exécution d’une fonction d’instruction de la séquence, les étapes d’incrémentation E1’ du procédé, et les étapes suivantes du procédé sont répétées. Ainsi, pour chaque fonction d’instruction exécutée, une fonction de préemption est exécutée. Cependant, dans le cas où le procédé est réitéré après l’étape d’exécution E10, la durée cumulative et la durée prédictive sont déterminées à partir de l’instant de planification alors que, dans le cas où le procédé est réitéré après l’étape d’exécution E9, la durée cumulative et la durée prédictive sont déterminées à partir du deuxième instant de planification.
De plus, lorsque la valeur du compteur est égale au nombre de fonctions d’instructions associé à ladite tâche dans la table de correspondance, cela signifie que la séquence de fonctions de ladite tâche a été réalisée complètement, que la tâche est complètement exécutée et le procédé comprend de nouveau une étape d’initialisation E01 de la valeur du compteur à la valeur zéro.
Claims (9)
- Procédé de gestion de l’exécution d’une pluralité de tâches par un processeur destiné à être monté dans un véhicule, le véhicule comprenant une pluralité de dispositifs, chaque tâche étant associée à un niveau de priorité et comprenant une séquence de fonctions prédéfinies, ladite séquence comprenant une alternance de fonctions d’instruction et de fonctions dites « de préemption », l’ensemble des fonctions d’instruction d’une tâche permettent, lorsqu’elles sont réalisées les unes après les autres, de déterminer une instruction ou une commande à émettre à un dispositif ou de déterminer des valeurs d’entrée ou de sortie relatives à un dispositif, chaque fonction d’instruction est associée à une durée d’exécution, chaque fonction de préemption étant configurée pour définir la nécessité d’interruption d’une tâche pour exécuter une tâche de niveau de priorité plus élevé que le niveau de priorité de la tâche en cours d’exécution, suite à l’exécution d’une fonction d’instruction de la tâche, le procédé comprend les étapes :
- d’exécution de la fonction de préemption (E5) lors de laquelle une durée prédictive est déterminée en sommant la valeur de la durée d’exécution de la fonction d’instruction successive à la fonction de préemption et la durée de l’ensemble des fonctions d’instructions de la séquence déjà exécutées depuis un instant dit « de planification »,
- si la durée prédictive est supérieure à un seuil prédéfini de temps, vérification (E6) de la réception par le processeur d’une tâche de niveau de priorité supérieur au niveau de priorité de la tâche en cours d’exécution,
- sinon, exécution (E10) de la fonction d’instruction successive à la fonction de préemption.
- Procédé selon la revendication 1, si le processeur a reçu une tâche de niveau de priorité supérieur au niveau de priorité de la tâche en cours d’exécution, le procédé comprend les étapes :
- d’interruption (E7) de la tâche en cours d’exécution,
- d’exécution (E8) de la tâche de niveau de priorité supérieur.
- Procédé selon l’une quelconque des revendications précédentes, dans lequel la durée prédictive est comprise entre 200 et 400 us.
- Procédé selon l’une quelconque des revendications précédentes, dans lequel le processeur comprend une zone mémoire (MEM) dans laquelle est enregistrée une table de référence, la table de référence associant à chaque fonction de la tâche une durée d’exécution, le procédé comprenant, pour chaque fonction en cours d’exécution, une étape de :
- détermination (E2) de la durée d’exécution de la fonction d’instruction exécutée,
- mise-à-jour (E3) de la valeur de durée associée à la fonction d’instruction exécutée dans la table de référence à partir de la durée d’exécution déterminée.
- Procédé selon l’une quelconque des revendications précédentes, la zone mémoire (MEM) comprend un compteur et une table de correspondance, la table de correspondance associant chaque tâche au nombre de fonctions d’instruction que ladite tâche comprend, le procédé comprenant les étapes :
- d’initialisation (E01) de la valeur du compteur à zéro, avant l’exécution de la première fonction de la séquence de fonctions d’une tâche,
- d’incrémentation (E1’) du compteur lors de l’exécution de chaque fonction d’instruction de ladite séquence de fonctions,
- lorsque la valeur du compteur est égale au nombre de fonctions d’instruction associé à ladite tâche dans la table de correspondance, réinitialisation du compteur à la valeur zéro.
- Procédé selon l’une quelconque des revendications précédentes, une valeur de durée cumulative étant égale à la durée d’exécution de l’ensemble des fonctions d’instruction de la séquence déjà exécutées, est enregistrée dans la zone mémoire, le procédé comprenant, lors de chaque exécution d’une fonction d’instruction de la séquence, une étape de mise à jour (E4) de la durée cumulative enregistrée dans la zone mémoire (MEM), dans laquelle la durée d’exécution mesurée de ladite fonction d’instruction exécutée est ajoutée à la valeur de la durée cumulative.
- Produit programme d’ordinateur caractérisé en ce qu’il comporte un ensemble d’instructions de code de programme qui, lorsqu’elles sont exécutées par un ou plusieurs processeurs, configurent le ou les processeurs pour mettre en œuvre un procédé selon l’une quelconques des revendications 1 à 6.
- Processeur pour véhicule automobile, le processeur étant apte à mettre en œuvre une pluralité de tâches, chaque tâche étant associée à un niveau de priorité et comprenant une séquence de fonctions prédéfinies, ladite séquence comprenant une alternance de fonctions d’instructions et de fonctions de préemption, l’ensemble des fonctions d’instruction d’une tâche permettent, lorsqu’elles sont réalisées les unes après les autres, de déterminer une instruction ou une commande à émettre à un dispositif ou de déterminer des valeurs d’entrée ou de sortie relatives à un dispositif, chaque fonction d’instruction est associée à une durée d’exécution, chaque fonction de préemption étant configurée pour définir la nécessité d’interruption d’une tâche pour exécuter une tâche de niveau de priorité plus élevé que le niveau de priorité de la tâche en cours d’exécution, le processeur étant apte à mettre en œuvre le procédé selon l’une quelconque des revendications 1 à 6.
- Véhicule automobile comprenant au moins un processeur selon la revendication précédente.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2202599A FR3133934A1 (fr) | 2022-03-24 | 2022-03-24 | Procédé de gestion d’exécution d’une pluralité de fonctions |
PCT/EP2023/057113 WO2023180265A1 (fr) | 2022-03-24 | 2023-03-21 | Procédé de gestion d'exécution d'une pluralité de fonctions |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2202599 | 2022-03-24 | ||
FR2202599A FR3133934A1 (fr) | 2022-03-24 | 2022-03-24 | Procédé de gestion d’exécution d’une pluralité de fonctions |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3133934A1 true FR3133934A1 (fr) | 2023-09-29 |
Family
ID=82196451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2202599A Pending FR3133934A1 (fr) | 2022-03-24 | 2022-03-24 | Procédé de gestion d’exécution d’une pluralité de fonctions |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR3133934A1 (fr) |
WO (1) | WO2023180265A1 (fr) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2923039A1 (fr) * | 2007-10-24 | 2009-05-01 | Centre Nat Rech Scient | Procede de gestion des preemptions dans un systeme d'exploitation en temps reel |
FR2956913A1 (fr) * | 2010-03-01 | 2011-09-02 | Sagem Defense Securite | Procede de sequencement deterministe multitache |
EP3799390A1 (fr) * | 2018-06-25 | 2021-03-31 | Transwarp Technology (Shanghai) Co., Ltd. | Procédé, système et dispositif d'utilisation de partage de ressources à base d'ordonnancement préemptif |
-
2022
- 2022-03-24 FR FR2202599A patent/FR3133934A1/fr active Pending
-
2023
- 2023-03-21 WO PCT/EP2023/057113 patent/WO2023180265A1/fr unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2923039A1 (fr) * | 2007-10-24 | 2009-05-01 | Centre Nat Rech Scient | Procede de gestion des preemptions dans un systeme d'exploitation en temps reel |
FR2956913A1 (fr) * | 2010-03-01 | 2011-09-02 | Sagem Defense Securite | Procede de sequencement deterministe multitache |
EP3799390A1 (fr) * | 2018-06-25 | 2021-03-31 | Transwarp Technology (Shanghai) Co., Ltd. | Procédé, système et dispositif d'utilisation de partage de ressources à base d'ordonnancement préemptif |
Also Published As
Publication number | Publication date |
---|---|
WO2023180265A1 (fr) | 2023-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5523624B2 (ja) | 制御装置及び制御のための出力変数を計算する方法 | |
EP2521946B1 (fr) | Procede pour selectionner une ressource parmi une pluralite de ressources de traitement, de sorte que les delais probables avant defaillance des ressources evoluent de maniere sensiblement identique | |
US7568028B2 (en) | Bottleneck detection system, measurement object server, bottleneck detection method and program | |
US10437589B2 (en) | Distributed processing control system and distributed processing control method | |
US20150006940A1 (en) | Server power predicting apparatus and method using virtual machine | |
US10579350B2 (en) | Heterogeneous computer system optimization | |
FR3133934A1 (fr) | Procédé de gestion d’exécution d’une pluralité de fonctions | |
EP2628079A1 (fr) | Procédé et dispositif d'ordonnancement de tâches semi-périodiques dans un système multitâche temps réel | |
JP2009193205A (ja) | 自動チューニングシステム、自動チューニング装置、自動チューニング方法 | |
CN116055349A (zh) | 一种流式数据的检测方法、装置及设备 | |
JP2019125093A (ja) | 電子制御装置 | |
CN112560974B (zh) | 一种信息融合、车辆信息获取方法及装置 | |
EP3343375B1 (fr) | Procédé et système de surveillance de traitements par lots d'applications exécutées dans une infrastructure informatique | |
FR3018556B1 (fr) | Methode de prediction de l'etat thermique d'un demarreur | |
US10346329B2 (en) | Timer placement optimization | |
EP3009934A1 (fr) | Procede de determination d'une frequence de microprocesseur optimale pour l'execution d'une application logicielle | |
EP2499570A1 (fr) | Procede et dispositif d'optimisation d'execution d'applications logicielles dans une architecture multiprocesseur comprenant plusieurs controleurs d'entree/sortie et unites de calcul secondaires | |
EP0697638A1 (fr) | Procédé de détection des séquences complètes et des séquences d'échec dans un système de reconnaissance de situations | |
FR2681963A1 (fr) | Interruptions transparentes pour le systeme avec redemarrage automatique d'une sequence d'entree/sortie. | |
EP3559688B1 (fr) | Caractérisation perfectionnée d'un dispositif électrochimique en opération pour un pronostic de fonctionnement futur du dispositif | |
FR2871592A1 (fr) | Procede de recherche et de transmission des temps d'execution de programmes dans des systemes embarques | |
US20210044237A1 (en) | Method and apparatus for adaptive control of motor, and storage medium | |
FR3138535A1 (fr) | « Procédé et système de surveillance d’un modèle fonctionnel » | |
FR3093366A1 (fr) | Procédé et système d’utilisation de ressources de calcul d’un système de calcul multiprocesseurs | |
CN115962863A (zh) | 温度测试方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20230929 |
|
PLFP | Fee payment |
Year of fee payment: 3 |