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 PDF

Info

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
Application number
FR2202599A
Other languages
English (en)
Inventor
Franck Delpech
Stéphane Eloy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vitesco Technologies
Original Assignee
Vitesco Technologies
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vitesco Technologies filed Critical Vitesco Technologies
Priority to FR2202599A priority Critical patent/FR3133934A1/fr
Priority to PCT/EP2023/057113 priority patent/WO2023180265A1/fr
Publication of FR3133934A1 publication Critical patent/FR3133934A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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

Procédé de gestion d’exécution d’une pluralité de fonctions
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 :
  1. d’interruption de la tâche en cours d’exécution,
  2. 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 :
  1. détermination de la durée d’exécution de la fonction d’instruction exécutée,
  2. 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 :
  1. 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,
  2. d’incrémentation du compteur lors de l’exécution de chaque fonction d’instruction de ladite séquence de fonctions,
  3. 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)

  1. 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.
  2. 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 :
    1. d’interruption (E7) de la tâche en cours d’exécution,
    2. d’exécution (E8) de la tâche de niveau de priorité supérieur.
  3. 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.
  4. 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 :
    1. détermination (E2) de la durée d’exécution de la fonction d’instruction exécutée,
    2. 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.
  5. 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 :
    1. 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,
    2. d’incrémentation (E1’) du compteur lors de l’exécution de chaque fonction d’instruction de ladite séquence de fonctions,
    3. 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.
  6. 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.
  7. 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.
  8. 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.
  9. Véhicule automobile comprenant au moins un processeur selon la revendication précédente.
FR2202599A 2022-03-24 2022-03-24 Procédé de gestion d’exécution d’une pluralité de fonctions Pending FR3133934A1 (fr)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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