FR3101460A1 - Procédé et calculateur de gestion d’échanges de données entre une pluralité de tâches - Google Patents

Procédé et calculateur de gestion d’échanges de données entre une pluralité de tâches Download PDF

Info

Publication number
FR3101460A1
FR3101460A1 FR1910711A FR1910711A FR3101460A1 FR 3101460 A1 FR3101460 A1 FR 3101460A1 FR 1910711 A FR1910711 A FR 1910711A FR 1910711 A FR1910711 A FR 1910711A FR 3101460 A1 FR3101460 A1 FR 3101460A1
Authority
FR
France
Prior art keywords
data
functions
int
task
execution
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.)
Granted
Application number
FR1910711A
Other languages
English (en)
Other versions
FR3101460B1 (fr
Inventor
Michael JULIEN
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 GmbH
Original Assignee
Continental Automotive France SAS
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 Continental Automotive France SAS filed Critical Continental Automotive France SAS
Priority to FR1910711A priority Critical patent/FR3101460B1/fr
Priority to PCT/EP2020/076962 priority patent/WO2021058773A1/fr
Priority to US17/763,418 priority patent/US20220357986A1/en
Priority to CN202080067241.1A priority patent/CN114402294A/zh
Publication of FR3101460A1 publication Critical patent/FR3101460A1/fr
Application granted granted Critical
Publication of FR3101460B1 publication Critical patent/FR3101460B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Electric Propulsion And Braking For Vehicles (AREA)

Abstract

L’invention concerne un procédé de gestion d’échanges de données entre une pluralité de tâches par un calculateur d’un véhicule, notamment automobile, ledit procédé comprend une phase de regroupement par ensemble (ET) de fonctions, chaque ensemble (ET) comprenant les fonctions productrices (A, C) de données et les fonctions consommatrices (B, D). Pour chaque ensemble (ET) de fonctions (A, B, C, D), une première phase comprend les étapes d’exécution (E1) des fonctions productrices (A, C) afin de produire les données dites « produites » (V1A, V1C) et d’enregistrement (E2) d’une copie (V1A_int, V1C_int) de chaque donnée produite (V1A, V1C), une deuxième phase comprend les étapes de restauration (E3) des données à consommer (V2B, V2D) par les fonctions consommatrices (B, D), à partir des copies (V1A_int, V1C_int) enregistrées et d’exécution (E4) des fonctions consommatrices (B, D) à partir des données à consommer (V2B, V2D) restaurées. Figure 3

Description

Procédé et calculateur de gestion d’échanges de données entre une pluralité de tâches
L’invention se rapporte au domaine du contrôle d’un moteur de véhicule, notamment automobile, et plus précisément à un procédé de gestion des échanges de données entre une pluralité de tâches mises en œuvre par un calculateur ainsi qu’un calculateur permettant de mettre en œuvre ce procédé.
Etat de la technique antérieure
De nos jours, de nombreux véhicules sont équipés d’une pluralité d’actuateurs permettant de mettre en œuvre les fonctions de contrôle moteur du véhicule, configurées pour assurer la gestion du fonctionnement du moteur. Par exemple, les actuateurs peuvent être un injecteur de carburant, un système d’allumage du moteur ou encore un système de recirculation des gaz dans le moteur. Chaque actuateur est relié à un calculateur de contrôle moteur afin de le commander.
Un calculateur de contrôle moteur peut être monocœur ou multicœur, c’est-à-dire qu’il peut comprendre un ou plusieurs cœurs, permettant de mettre en œuvre les fonctions de contrôle moteur. Pour cela, le ou les cœurs exécutent chacun une série de tâches selon un niveau de priorité, chaque tâche mettant en œuvre une ou plusieurs fonctions dont certaines sont productrices de données et/ou consommatrices de données.
Lorsqu’une première tâche, comprenant au moins une fonction productrice d’une donnée, et une deuxième tâche, comprenant au moins une fonction consommatrice de ladite donnée, sont mises en œuvre successivement mais à des périodes d’exécutions différentes, il est nécessaire d’utiliser un module de transition afin d’adapter la période du signal correspondant à la donnée produite pour que cette donnée produite puisse être lue par la fonction consommatrice de la deuxième tâche. Ce module de transition permet ainsi de signifier au calculateur un changement de période d’exécution et de réaliser le transfert des données produites par la fonction productrice vers la fonction consommatrice.
Il est également important d’assurer la consistance des données entre la fonction productrice et la fonction consommatrice, autrement dit, de protéger les données transférées entre la fonction productrice et la fonction consommatrice, lorsque ces fonctions sont mises en œuvre par des tâches distinctes.
La consistance est définie par la stabilité et la cohérence des données. Un problème de stabilité se traduit par une modification de la valeur d’une donnée entre plusieurs lectures, autrement dit entre plusieurs restaurations et consommations de cette donnée. Ainsi les fonctions consommatrices de cette donnée ne consommeront pas toutes la même valeur de la donnée : ladite valeur est vue comme instable.
Un problème de cohérence se présente lorsque, pour une fonction consommatrice de données, l’ensemble de données consommées par ladite fonction consommatrice comprend des valeurs qui n’ont pas été modifiées simultanément. Ainsi, la fonction consommatrice utilise des données ne possédant pas la même datation et l’ensemble de données est vu comme incohérent.
Ainsi, lorsqu’il y a un problème de consistance de données, les fonctions consommatrices exécutées utilisent des données à consommer qui peuvent s’avérer incorrectes. L’utilisation de valeurs de données incorrectes par la fonction consommatrice peut entrainer des problèmes dans le contrôle du fonctionnement du moteur, qui n’aura pas le comportement attendu, voire endommager le moteur. En effet, en cas de problème de consistance, la position réelle d’un actuateur peut différer de la position commandée par le calculateur associé. Dans un tel cas, le calculateur tente de corriger continuellement cette différence mais la convergence vers la position commandée peut ne jamais être atteinte, ce qui peut par exemple provoquer des phénomènes de vibrations mécaniques nuisibles pour le matériel et gêner la conduite du véhicule.
Dans un premier exemple, le calculateur est un calculateur monocœur dit « préemptif », permettant l’exécution de tâches dites « préemptives ». Le calculateur monocœur préemptif permet de mettre en œuvre une première solution, permettant de résoudre en partie le problème de consistance en se basant sur le niveau de priorité de chaque tâche. Autrement dit lorsqu’une première tâche d’une série de tâches est exécutée, elle sera interrompue par le système d’exploitation si une autre tâche possède un niveau de priorité plus élevé. Cependant, seule la stabilité des données est assurée. La cohérence n’étant pas vérifiée, un mécanisme de protection doit être ajouté au système pour réaliser cette vérification.
Par ailleurs, dans le cas d’un calculateur multicœurs préemptif, le problème de consistance est dû à la concurrence de l’exécution des tâches par les différents cœurs.
Dans un deuxième exemple, le calculateur est un calculateur monocœur dit « coopératif », permettant l’exécution de tâches dites « coopératives ». Le calculateur monocœur coopératif permet de mettre en œuvre une deuxième solution, permettant également de résoudre en partie le problème de consistance. En effet, à intervalle de temps régulier, la tâche en cours d’exécution par le calculateur monocœur coopératif, s’interrompt afin de laisser le système d’exploitation vérifier qu’il n’y ait pas une autre tâche dont le niveau de priorité est plus élevé. Auquel cas la tâche s’arrête et laisse cette autre tâche s’exécuter. De même que précédemment, des problèmes d’inconsistances peuvent se produire dans ce modèle coopératif, puisque le système d’exploitation peut introduire des incohérences et des instabilités.
L’utilisation d’un calculateur multicœur coopératif présente des inconvénients similaires à ceux présentés pour l’utilisation d’un calculateur monocœur coopératif, autrement dit, l’utilisation d’un calculateur multicœur coopératif ne permet qu’une résolution partielle du problème de consistance des données.
Ainsi, les solutions existantes ne permettent de résoudre que partiellement les problèmes de consistance de données. Il existe donc le besoin d’une solution permettant de résoudre entièrement ces inconvénients.
L’invention concerne un procédé de gestion d’échanges de données entre une pluralité de tâches par un calculateur d’un véhicule notamment automobile, ledit calculateur comprenant au moins un cœur, chaque tâche permettant d’exécuter au moins une fonction, chaque fonction étant désignée comme productrice et/ou consommatrice d’au moins une donnée, ledit procédé étant remarquable en ce qu’il comprend :
  1. une phase de regroupement par ensemble de fonctions, chaque ensemble comprenant les fonctions productrices de données, dont l’exécution est allouée dans une même première tâche, et les fonctions consommatrices des données produites par lesdites fonctions productrices de données, dont l’exécution est allouée dans une même deuxième tâche différente de la première tâche,
  2. pour chaque ensemble de fonctions :
    1. une première phase comprenant les étapes de :
      1. exécution des fonctions productrices de données de l’ensemble afin de produire les données dites « produites »,
      2. enregistrement d’une copie de chaque donnée produite,
    2. une deuxième phase comprenant les étapes de :
      1. restauration des données à consommer par les fonctions consommatrices de l’ensemble, à partir des copies enregistrées,
      2. exécution des fonctions consommatrices de l’ensemble à partir des données à consommer restaurées.
Avantageusement, le procédé selon l’invention permet de stabiliser les données produites, afin qu’elles restent stables, autrement dit inchangées, pendant leur consommation par une ou plusieurs fonctions, même si leur production intervient entre le début et la fin de l’exécution de cette fonction. En effet, il est nécessaire d’assurer la stabilité des données dans plusieurs cas : lorsqu’une même fonction lit une donnée plusieurs fois ou lorsque plusieurs fonctions successives lisent une même donnée une ou plusieurs fois. De plus, le procédé selon l’invention résout également les problèmes de cohérence. Les données à consommer par une fonction consommatrice sont toutes produites de telle façon que la concurrence entre les tâches ne puisse pas corrompre une partie de ces données à consommer. L'ensemble de ces données à consommer est cohérent au moment où la fonction consommatrice s’exécute à partir de ces données à consommer.
De manière préférée, l’exécution des fonctions productrices de données, par la première tâche dans laquelle l’exécution est allouée, est séquentielle.
Avantageusement, une exécution séquentielle des fonctions productrices permet d’éviter tout problème de concurrence entre les tâches et ainsi d’éviter tout problème de consistance des données.
De manière avantageuse, l’exécution des fonctions consommatrices de données par la deuxième tâche dans laquelle l’exécution est allouée, est séquentielle.
Avantageusement, une exécution séquentielle des fonctions consommatrices permet d’éviter tout problème de concurrence entre les tâches et ainsi d’éviter tout problème de consistance des données.
Avantageusement, lors de l’étape d’enregistrement, les copies sont enregistrées dans une mémoire comprenant une pluralité de zones, en affectant la valeur de chaque copie à une et une seule zone de la pluralité de zones.
Avantageusement, l’étape d’enregistrement dans la mémoire permet de figer la valeur des données produites.
De préférence, lors de l’étape de restauration, la valeur de chaque copie enregistrée dans une zone de la mémoire est respectivement affectée à une donnée à consommer. Une telle restauration, en miroir d’enregistrement, dite lecture en mémoire d’écriture permet de copier la valeur d’une donnée enregistrée vers la donnée à consommer par la fonction cible, c’est-à-dire la fonction destinée à consommer la donnée lors de son exécution.
Avantageusement, l’étape d’enregistrement et l’étape de restauration permettent d’assurer la stabilité et la cohérence des données produites, afin que les données à consommer, auxquelles sont affectées les valeurs de la copie de chaque donnée produite, restent stables et donc inchangées avant consommation par la fonction consommatrice.
L’invention concerne également un calculateur de gestion d’échanges de données entre une pluralité de tâches pour véhicule, notamment automobile, ledit calculateur comprenant au moins un cœur, chaque tâche permettant d’exécuter au moins une fonction, chaque fonction étant désignée comme productrice et/ou consommatrice d’au moins une donnée, ledit calculateur étant remarquable en ce qu’il est configuré pour :
  1. regrouper par ensemble de fonctions, chaque ensemble comprenant les fonctions productrices de données, dont l’exécution est allouée dans une même première tâche, et les fonctions consommatrices des données produites par lesdites fonctions productrices de données, dont l’exécution est allouée dans une même deuxième tâche différente de la première tâche,
  1. pour chaque ensemble de fonctions :
  2. exécuter les fonctions productrices de données de l’ensemble afin de produire les données dites « produites »,
  3. enregistrer une copie de chaque donnée produite,
  4. restaurer les données à consommer par les fonctions consommatrices de l’ensemble à partir des copies enregistrées,
  5. exécuter les fonctions consommatrices de l’ensemble à partir des données à consommer restaurées.
Avantageusement, le calculateur selon l’invention permet de stabiliser les données produites, afin qu’elles restent stables, autrement dit inchangées, pendant leur consommation par une fonction, même si leur production intervient entre le début et la fin de l’exécution de cette fonction.
De plus, le calculateur selon l’invention résout également les problèmes de cohérence. Les données à consommer par une fonction consommatrice sont toutes produites de telle façon que la concurrence entre les tâches ne puisse pas corrompre une partie de ces données à consommer. L'ensemble de ces données à consommer est cohérent au moment où la fonction consommatrice s’exécute à partir de ces données à consommer.
De manière préférée, le calculateur exécute séquentiellement les fonctions productrices de données par la première tâche dans laquelle l’exécution est allouée.
Avantageusement, une exécution séquentielle des fonctions productrices par le calculateur permet d’éviter tout problème de concurrence entre les tâches et ainsi d’éviter tout problème de consistance des données.
De manière préférée, le calculateur exécute séquentiellement les fonctions consommatrices de données par la deuxième tâche dans laquelle l’exécution est allouée.
Avantageusement, une exécution séquentielle des fonctions consommatrices par le calculateur permet d’éviter tout problème de concurrence entre les tâches et ainsi d’éviter tout problème de consistance des données.
Avantageusement, le calculateur est configuré pour enregistrer une copie de chaque donnée produite dans une mémoire comprenant une pluralité de zones, en affectant la valeur de chaque copie à une zone de la pluralité de zones.
Avantageusement, l’enregistrement des données produites par le calculateur dans la mémoire permet de figer la valeur des données produites.
De préférence encore, le calculateur est configuré pour restaurer les données à consommer en affectant la valeur de chaque copie enregistrée dans une zone de la mémoire à une donnée à consommer.
De préférence, l’enregistrement des données produites et la restauration des données à consommer sont réalisés dans le mécanisme de protection du calculateur.
Avantageusement, le calculateur permet d’assurer la stabilité des données produites, afin que les données à consommer, auxquelles sont affectées les copies des valeurs des données produites, restent stables avant consommation par la tâche consommatrice.
L’invention concerne également un véhicule comprenant un calculateur tel que présenté précédemment.
Description des dessins
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 figure 1 représente un exemple d’exécutions d’une pluralité de tâches par un calculateur selon l’invention,
 : la figure 2 illustre une transition correspondant à l’exécution de deux tâches consécutives par un calculateur selon l’invention,
 : la figure 3 représente un exemple de mise en œuvre du procédé de gestion de tâches selon l’invention.
CALCULATEUR
Il va maintenant être décrit un calculateur de gestion d’échanges de données entre une pluralité de tâches, ledit calculateur étant destiné à être monté dans un véhicule, notamment automobile, et configuré pour exécuter des tâches, permettant la mise en œuvre d’une fonction de contrôle moteur dudit véhicule, telle que l’allumage, l’injection de carburant ou encore la recirculation des gaz, par un actuateur.
Le calculateur comprend au moins un cœur permettant d’exécuter au moins une tâche comprenant au moins une fonction, notamment une fonction de calcul et/ou détermination de données. Le calculateur comprend également un mécanisme de protection de la concurrence entre l’exécution de différentes tâches.
Cœur
Comme expliqué précédemment, chaque cœur est notamment configuré pour exécuter une tâche, une pluralité de tâches indépendantes ou une série de tâches interdépendantes qui lui sont allouées, via son système d’exploitation. Chaque tâche permet d’exécuter une séquence d’une ou plusieurs fonctions et se caractérise par un schéma d'activation, un schéma d'allocation et un niveau de priorité.
Le schéma d’activation d’une tâche définit le type d’activation de l’exécution de ladite tâche. L’activation de la tâche peut être synchrone, et donc la période d’exécution de la tâche est constante, ou asynchrone, et donc la période d’exécution de la tâche est variable, ou évènementielle, autrement dit, après détection d’un état du système qui nécessite d’exécuter la tâche.
Le schéma d’allocation d’une tâche définit le ou les cœurs auxquels ladite tâche est allouée. En effet, une tâche peut être exécutée sur un unique cœur ou de façon répartie sur plusieurs cœurs.
Le niveau de priorité de chaque tâche est dépendant du schéma d'activation et du schéma d'allocation sur un ou plusieurs cœurs. Par exemple, le niveau de priorité est défini en fonction de la période d’exécution, et est inversement proportionnel à ladite période d’exécution. Autrement dit, selon cet exemple, plus la période d’exécution d’une tâche est faible plus le niveau de priorité est élevé. Il existe évidemment d’autres modes de détermination du niveau de priorité de chaque tâche.
Le système d’exploitation permet de choisir à chaque instant quelle tâche doit être exécutée et dans quel ordre en fonction du schéma d’activation des tâches et de leur niveau de priorité.
Chaque fonction est dite « productrice » et/ou « consommatrice » d’au moins une donnée. En effet, chaque fonction productrice s’exécute et permet de déterminer une ou plusieurs données, dites « produites », et chaque fonction consommatrice s’exécute à partir d’une ou plusieurs données, dites « à consommer ».
Par ailleurs, chaque fonction est également caractérisée par son schéma d’activation et donc par sa période d’exécution.
M écanisme de protection
Le mécanisme de protection est configuré pour enregistrer une copie de la valeur des données produites par une tâche et pour restaurer des données à consommer par une autre tâche, à partir des copies enregistrées.
Ainsi, le mécanisme de protection empêche temporairement la concurrence entre les tâches, et donc stoppe temporairement la concurrence entre l’exécution de chaque tâche pendant l’enregistrement des données produites et la restauration des données à consommer.
Dans le cas présent, le mécanisme de protection comprend un module de transition et une mémoire physique.
a) Module de transition RT
Le module de transition RT gère le transfert de données entre des tâches concurrentes en fonction du niveau de priorité des tâches, afin d’éviter tout problème de concurrence entre l’exécution de tâches. La gestion du transfert des données dépend du schéma d'activation, du niveau de priorité, et du schéma d’allocation, c’est-à-dire du cœur auquel la tâche est allouée.
Le module de transition RT est configuré pour agréger le transfert des données des fonctions productrices vers les fonctions consommatrices via une fonction d’enregistrement des données produites par les fonctions productrices et une fonction de restauration des données à consommer par les fonctions consommatrices.
Le module de transition RT, via sa fonction d’enregistrement, permet de déterminer la copie d’une donnée produite et est implémenté pour enregistrer cette copie.
Le module de transition RT, via sa fonction de restauration, permet de déterminer les données à consommer à partir de la valeur d’une copie enregistrée. Autrement dit, le module de transition RT est implémenté pour restaurer les données à consommer.
b) Mémoire
La mémoire physique du mécanisme de protection comprend une pluralité de zones, permettant de stocker les données produites par une tâche ou par une série de tâches ou par plusieurs tâches indépendantes et de restaurer les données en assurant la cohérence et la stabilité.
Selon d’autres formes de réalisation, le mécanisme de protection peut par exemple consister en des sémaphores ou des files d’attente ou à imposer une séquentialité forcée entre les tâches.
Exemple 1
En référence à la figure 1, il va être présenté un premier exemple d’exécution d’une pluralité de fonctions A, B, C, D, productrices et consommatrices. Dans cet exemple, les fonctions A et C sont des fonctions dites « productrices » et sont exécutées par une première tâche 1, dite « source », dont la période d’exécution est égale à 5 millisecondes, et les fonctions B et D sont des fonctions dites « consommatrices » et sont exécutées par une deuxième tâche 2, dite « cible », dont la période d’exécution est égale à 10 millisecondes. La première tâche 1 et la deuxième tâche 2, respectivement, à 5 millisecondes et à 10 millisecondes, peuvent être allouées dans le même cœur ou dans une pluralité de cœurs différents.
Le nombre de tâches, de fonctions et de cœurs n’est pas limitatif dans l’invention.
Les fonctions productrices A et C sont donc exécutées séquentiellement par la première tâche 1 et les fonctions consommatrices B et D sont également exécutées séquentiellement par la deuxième tâche 2.
Un unique module de transition RT est configuré pour agréger le transfert des données de la fonction productrice A, respectivement la fonction productrice C, vers la fonction consommatrice B, respectivement la fonction consommatrice D, via la fonction d’enregistrement et la fonction de restauration.
Exemple 2
En référence à la figure 2, il est représenté un transfert de données de la première tâche 1 exécutant les fonctions productrices A, C vers la deuxième tâche 2 exécutant les fonctions consommatrices B, D. Pour simplifier la description, on se limitera à la description d’un transfert entre la fonction productrice A et la fonction consommatrice B des données produites par la tâche productrice A.
Un module de transition RT est relié entre la première tâche 1 et la deuxième tâche 2. Autrement dit, le module de transition RT relie la fonction productrice A à la fonction consommatrice B, et la fonction productrice C à la fonction consommatrice D.
Comme détaillé précédemment dans le premier exemple, la première tâche 1 possède une période d’exécution égale à 5 millisecondes et la deuxième tâche 2 possède une période d’exécution égale à 10 millisecondes. Ainsi, la première tâche 1 comprend un niveau de priorité plus élevé que la deuxième tâche 2. C’est pourquoi la fonction productrice A est réalisée avant la fonction consommatrice B.
La fonction productrice A est configurée pour s’exécuter à partir d’une valeur d’entrée étant par exemple définie par un dispositif ou une fonction extérieure à la pluralité de fonctions A, B, C, D et permet de déterminer une donnée produite V1Aaprès exécution de la fonction productrice A.
Le module de transition RT est configuré pour assurer le transfert de la donnée produite V1Apar la fonction productrice A vers la fonction consommatrice B. Ainsi, la module de transition RT permet de déterminer une copie V1A_ intde la donnée produite V1Aet d’enregistrer cette copie V1A_ int .
Le mécanisme de protection utilise la mémoire MEM pour enregistrer, autrement dit pour écrire, la copie V1A_ intdans une zone comprise dans ladite mémoire MEM.
La fonction consommatrice B est configurée pour lire la donnée à consommer V2 B, à partir de la copie V1A_ intenregistrée et pour s’exécuter à partir de la donnée à consommer V2 B .
PROCEDE
En référence à la figure 3, il va maintenant être présenté un mode de réalisation du procédé de gestion d’échanges de données entre une pluralité de tâches par un calculateur tel que présenté précédemment, dans lequel seront considérées les quatre fonctions A, B, C, D, décrites en référence à la figure 1.
Le procédé selon l’invention comprend tout d’abord une phase de regroupement d’ensembles ETde fonctions. Dans chaque ensemble ETsont regroupées les fonctions productrices, dont l’exécution est effectuée par une même première tâche 1, et les fonctions consommatrices des données produites par lesdites fonctions productrices, dont l’exécution est effectuée par une même deuxième tâche 2. Dans l’exemple présenté ici, l’ensemble ETcomprend donc les fonctions productrices A et C, et les fonctions consommatrices B et D des données produites par lesdites fonctions productrices A, C.
Chaque fonction productrice A et C peut comprendre une pluralité de valeurs d’entrée.
Pour chaque ensemble ETde fonctions regroupées, le procédé comprend une première phase PH1 comprenant une étape d’exécution E1 séquentielle des fonctions productrices A et C. Autrement dit, les fonctions productrices A et C sont exécutées l’une après l’autre. La fonction productrice A est exécutée et permet de déterminer une donnée produite V1A. De même, la fonction productrice C est exécutée et permet de déterminer une donnée produite V2 C.
Enfin, la première phase PH1 comprend une étape d’enregistrement E2 des données produites V1Aet V1 C, autrement dit une étape d’écriture de la donnée produite V1A ,respectivement de la donnée produite V1 C, par le module de transition RT. Le module de transition RT permet, via sa fonction d’enregistrement des données produites V1A, V1 C, de déterminer une copie V1A_ intde la donnée produite V1A et une copie V1 C_intde la donnée produite V1 Cet d’enregistrer lesdites copies V1 A_ int, V1 C_intdans la mémoire MEM.
Le procédé comprend également une deuxième phase PH2, réalisée à la suite de la première phase PH1, comprenant une étape de restauration E3 des données à consommer V2 B,V2 D par les fonctions consommatrices B et D. Autrement dit, la fonction de restauration du module de transition RT permet d’affecter la valeur de la copie V1A_ int ,respectivement de la copie V1 C_ int, enregistrée dans la mémoire MEM, à la valeur de la donnée à consommer V2 B,respectivement de la donnée à consommer V2 D.
Une telle restauration, en miroir d’enregistrement, dite lecture en mémoire d’écriture, permet donc de copier la valeur d’une donnée enregistrée dans la mémoire MEM, ici la valeur de la copie V1A_ int ,respectivement de la copie V1 C_ int, vers la donnée à consommer V2 B,respectivement la donnée à consommer V2 D, par la fonction consommatrice B, respectivement la fonction consommatrice D, lors de son exécution.
La deuxième phase PH2 comprend ensuite une étape d’exécution E4 séquentielle des fonctions consommatrices B et D de l’ensemble ETà partir des données à consommer V2B,V2 D ,restaurées. Autrement dit, la fonction consommatrice B est exécutée à partir de la donnée à consommer V2 Bet ensuite, la fonction consommatrice D est exécutée à partir de la donnée à consommer V2 D.
Ainsi, le mécanisme de protection empêche une exécution simultanée de l’étape d’enregistrement E2 et de l’étape de restauration E3, permettant ainsi de figer la valeur des copies V1A_ int, V1C_int. Ainsi la stabilité de la valeur des copies V1A_ int, V2C_int, qui deviendront ensuite les données à consommer V1B,V2 D,est assurée.
Cependant, l’exécution des fonctions productrices A, C et des fonctions consommatrices B, D peut être simultanée.
Dans le procédé présenté précédemment, la deuxième phase PH2 est réalisée après la première phase PH1. Cependant, en variante, il est possible que la deuxième phase PH2 soit réalisée avant la première phase PH1, en exécutant les tâches consommatrices à partir de données déjà enregistrées ou pré-enregistrées dans la mémoire MEM lors d’une itération précédemment réalisée.
La stabilité et la cohérence des données sont assurées en même temps. La stabilité est assurée parce que chaque copie V1A_ int, V1 C_intde données produites V1Aet V1Cn’est enregistrée qu’en fin d’exécution des fonctions productrices A, C et parce que la restauration est réalisée avant le début de l’exécution des fonctions consommatrices B, D.
La cohérence des données est assurée puisque les données sont traitées de façon agrégées et triées par ensemble ETde fonctions productrices A, C et de fonctions consommatrices B, D. Par ailleurs, le procédé est automatisable et réalisable.

Claims (10)

  1. Procédé de gestion d’échanges de données entre une pluralité de tâches par un calculateur d’un véhicule, notamment automobile, ledit calculateur comprenant au moins un cœur, chaque tâche permettant d’exécuter au moins une fonction (A, B, C, D), chaque fonction (A, B, C, D) étant désignée comme productrice et/ou consommatrice d’au moins une donnée, ledit procédé étant caractérisé en ce qu’il comprend :
    1. une phase de regroupement (R) par ensemble (ET) de fonctions, chaque ensemble (ET) comprenant les fonctions productrices (A, C) de données, dont l’exécution est allouée dans une même première tâche (1), et les fonctions consommatrices (B, D) des données produites par lesdites fonctions productrices (A, C) de données, dont l’exécution est allouée dans une même deuxième tâche (2) différente de la première tâche (1),
    2. pour chaque ensemble (ET) de fonctions (A, B, C, D):
      1. une première phase comprenant les étapes de :
        1. exécution (E1) des fonctions productrices (A, C) de données de l’ensemble (ET) afin de produire les données dites « produites » (V1A,V1C),
        2. enregistrement (E2) d’une copie (V1A_int,V1C_int) de chaque donnée produite (V1A,V1C),
      2. une deuxième phase comprenant les étapes de :
        1. restauration (E3) des données à consommer (V2B,V2D) par les fonctions consommatrices (B, D) de l’ensemble (ET), à partir des copies (V1A_int,V1C_int) enregistrées,
        2. exécution (E4) des fonctions consommatrices (B, D) de l’ensemble (ET) à partir des données à consommer (V2B,V2D) restaurées.
  2. Procédé selon la revendication précédente, dans lequel dans l’étape d’exécution (E1) des fonctions productrices (A, C), l’exécution des fonctions productrices (A, C) de données par la première tâche (1), dans laquelle l’exécution est allouée, est séquentielle.
  3. Procédé selon l’une quelconque des revendications précédentes, dans lequel dans l’étape d’exécution (E4) des fonctions consommatrices (B, D), l’exécution des fonctions consommatrices (B, D) de données par la deuxième tâche (2), dans laquelle l’exécution est allouée, est séquentielle.
  4. Procédé selon l’une quelconque des revendications précédentes, lors de l’étape d’enregistrement (E2), les copies (V1A_int,V1C_int) sont enregistrées dans une mémoire (MEM) comprenant une pluralité de zones, en affectant la valeur de chaque copie (V1A_int,V1C_int) à une zone de la pluralité de zones.
  5. Procédé selon la revendication précédente, dans lequel lors de l’étape de restauration (E3), la valeur de chaque copie (V1A_int,V1C_int) enregistrée dans une zone de la mémoire (MEM) est respectivement affectée à une donnée à consommer (V2B, V2D).
  6. Calculateur de gestion d’échanges de données entre une pluralité de tâches pour véhicule, notamment automobile, ledit calculateur comprenant au moins un cœur, chaque tâche permettant d’exécuter au moins une fonction (A, B, C, D), chaque fonction (A, B, C, D) étant désignée comme productrice et/ou consommatrice d’au moins une donnée, ledit calculateur étant caractérisé en ce qu’il est configuré pour :
    1. regrouper par ensemble (ET) de fonctions (A, B, C, D), chaque ensemble (ET) comprenant les fonctions productrices (A, C) de données, dont l’exécution est allouée dans une même première tâche (1), et les fonctions consommatrices (B, D) des données produites par lesdites fonctions productrices (A, C) de données, dont l’exécution est allouée dans une même deuxième tâche (2) différente de la première tâche (1),
    1. pour chaque ensemble (ET) de fonctions (A, B, C, D) :
    2. exécuter les fonctions productrices (A, C) de données de l’ensemble (ET) afin de produire les données dites « produites » (V1A,V1C),
    3. enregistrer une copie (V1A_int,V1C_int) de chaque donnée produite (V1A,V1C),
    1. restaurer les données à consommer (V2B,V2D) par les fonctions consommatrices (B, D) de l’ensemble (ET), à partir des copies (V1A_int,V1C_int) enregistrées,
    2. exécuter les fonctions consommatrices (B, D) de l’ensemble (ET) à partir des données à consommer (V2B,V2D) restaurées.
  7. Calculateur selon la revendication précédente, configuré pour exécuter séquentiellement les fonctions productrices (A, C) de données par la première tâche (1) dans laquelle l’exécution est allouée.
  8. Calculateur selon l’une quelconque des revendications 6 et 7, configuré pour exécuter séquentiellement les fonctions consommatrices (B, D) de données par la deuxième tâche (2) dans laquelle l’exécution est allouée.
  9. Calculateur selon l’une quelconque des revendications 6 à 8, configuré pour enregistrer une copie (V1A_int,V1C_int) de chaque donnée produite (V1A,V1C), dans une mémoire (MEM) comprenant une pluralité de zones, en affectant la valeur de chaque copie (V1A_int,V1C_int) à une zone de la pluralité de zones.
  10. Véhicule comprenant un calculateur selon l’une quelconque des revendications 6 à 9.
FR1910711A 2019-09-27 2019-09-27 Procédé et calculateur de gestion d’échanges de données entre une pluralité de tâches Active FR3101460B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR1910711A FR3101460B1 (fr) 2019-09-27 2019-09-27 Procédé et calculateur de gestion d’échanges de données entre une pluralité de tâches
PCT/EP2020/076962 WO2021058773A1 (fr) 2019-09-27 2020-09-25 Procédé et calculateur de gestion d'échanges de données entre une pluralité de tâches
US17/763,418 US20220357986A1 (en) 2019-09-27 2020-09-25 Method and computer for the management of data exchanges between a plurality of tasks
CN202080067241.1A CN114402294A (zh) 2019-09-27 2020-09-25 管理多个任务之间的数据交换的方法和计算机

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1910711 2019-09-27
FR1910711A FR3101460B1 (fr) 2019-09-27 2019-09-27 Procédé et calculateur de gestion d’échanges de données entre une pluralité de tâches

Publications (2)

Publication Number Publication Date
FR3101460A1 true FR3101460A1 (fr) 2021-04-02
FR3101460B1 FR3101460B1 (fr) 2021-09-03

Family

ID=69024394

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1910711A Active FR3101460B1 (fr) 2019-09-27 2019-09-27 Procédé et calculateur de gestion d’échanges de données entre une pluralité de tâches

Country Status (4)

Country Link
US (1) US20220357986A1 (fr)
CN (1) CN114402294A (fr)
FR (1) FR3101460B1 (fr)
WO (1) WO2021058773A1 (fr)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110296431A1 (en) * 2010-05-25 2011-12-01 International Business Machines Corporation Method and apparatus for efficient helper thread state initialization using inter-thread register copy
US20130021360A1 (en) * 2011-07-19 2013-01-24 Qualcomm Incorporated Synchronization of shader operation
WO2015144488A1 (fr) * 2014-03-25 2015-10-01 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede de transfert de donnees entre taches temps reel utilisant un controleur memoire dma
US20170147400A1 (en) * 2015-11-24 2017-05-25 Informatica Llc Method, apparatus, and computer-readable medium for performing a data exchange
FR3065550A1 (fr) * 2017-09-29 2018-10-26 Continental Automotive France Procede d'echange protege de donnees entre deux taches
US20190087123A1 (en) * 2017-09-19 2019-03-21 Arm Limited Handling in-order and out-of-order ring buffer updates
FR3071334A1 (fr) * 2017-09-19 2019-03-22 Psa Automobiles Sa Procede pour assurer la stabilite des donnees d’un processeur multicoeur d’un vehicule automobile

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110296431A1 (en) * 2010-05-25 2011-12-01 International Business Machines Corporation Method and apparatus for efficient helper thread state initialization using inter-thread register copy
US20130021360A1 (en) * 2011-07-19 2013-01-24 Qualcomm Incorporated Synchronization of shader operation
WO2015144488A1 (fr) * 2014-03-25 2015-10-01 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede de transfert de donnees entre taches temps reel utilisant un controleur memoire dma
US20170147400A1 (en) * 2015-11-24 2017-05-25 Informatica Llc Method, apparatus, and computer-readable medium for performing a data exchange
US20190087123A1 (en) * 2017-09-19 2019-03-21 Arm Limited Handling in-order and out-of-order ring buffer updates
FR3071334A1 (fr) * 2017-09-19 2019-03-22 Psa Automobiles Sa Procede pour assurer la stabilite des donnees d’un processeur multicoeur d’un vehicule automobile
FR3065550A1 (fr) * 2017-09-29 2018-10-26 Continental Automotive France Procede d'echange protege de donnees entre deux taches

Also Published As

Publication number Publication date
WO2021058773A1 (fr) 2021-04-01
US20220357986A1 (en) 2022-11-10
CN114402294A (zh) 2022-04-26
FR3101460B1 (fr) 2021-09-03

Similar Documents

Publication Publication Date Title
US7584190B2 (en) Data files systems with hierarchical ranking for different activity groups
FR2674654A1 (fr) Systeme de commande de registres partages.
FR2872605A1 (fr) Procede de gestion d'un processus logiciel, procede et systeme de redistribution ou de continuite de fonctionnement dans une architecture multi-ordinateurs
EP3599552B1 (fr) Procédé et dispositif électronique d'installation d'applications logicielles avioniques sur une plateforme comprenant un processeur multicoeurs, programme d'ordinateur et système électronique associés
EP2427823B1 (fr) Capture et chargement d'états de système d'exploitation
CN101710373A (zh) 嵌入式系统的文件操作方法
WO2008009609A2 (fr) Coeur processeur a frequence pilotee et procede de demarrage dudit coeur processeur dans un mode programme
FR3101460A1 (fr) Procédé et calculateur de gestion d’échanges de données entre une pluralité de tâches
WO2012107189A2 (fr) Procede de reprogrammation d'un calculateur, support de memorisation de donnees et calculateur de vehicule automobile
FR3082974A1 (fr) Procede de gestion de panne dans un reseau de nœuds base sur une strategie globale
FR2991074A1 (fr) Procede, dispositif et programme d'ordinateur de controle dynamique de distances d'acces memoire dans un systeme de type numa
FR2890765A1 (fr) Procede de memorisation de donnees numeriques dans un grand systeme informatique et dispositif associe
WO2023117502A1 (fr) Procede et calculateur de gestion d'echanges de donnees entre une pluralite de taches
FR3071334B1 (fr) Procede pour assurer la stabilite des donnees d’un processeur multicoeur d’un vehicule automobile
US7640328B1 (en) Method and apparatus for prioritizing provisioning data in a provisioning server
WO2019129958A1 (fr) Procede de stockage de donnees et procede d'execution d'application avec reduction du temps d'acces aux donnees stockees
CA2938678A1 (fr) Equipement electronique comprenant un programme de demarrage partitionne, vehicule ferroviaire et systeme ferroviaire associes
EP3598315B1 (fr) Accès direct en mémoire
CN110618791B (zh) 一种cfs存储域配置方法、装置、设备及可读存储介质
FR3104279A1 (fr) Gestion d’acces a une ressource partagee par une pluralite d’applications
FR2908538A1 (fr) Reserves secondaires.
FR3073061B1 (fr) Procede de communication entre processus, programme d’ordinateur et installation informatique correspondants
EP4113297A1 (fr) Procédé de gestion des travaux dans un système informatique et système associé
FR3082338A1 (fr) Procede de gestion d’une pluralite de taches par un calculateur automobile multicœur
FR3100073A1 (fr) Procédé de sécurisation d’un calculateur de véhicule automobile

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20210402

TP Transmission of property

Owner name: VITESCO TECHNOLOGIES, DE

Effective date: 20210629

PLFP Fee payment

Year of fee payment: 3

CA Change of address

Effective date: 20220103

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5