FR 3131033 A1 20230623 FR 2113968 A 20211220 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 apte à exécuter au moins une tâche, chaque tâche permettant d’exécuter une fonction désignée comme productrice d’au moins une donnée et une fonction désignée comme consommatrice de l’au moins une donnée, ledit calculateur comprenant une mémoire comprenant : - une première zone mémoire (Z1) de données, - une deuxième zone mémoire (Z2) de données, - un premier pointeur associé à la fonction productrice, - un deuxième pointeur associé à la fonction consommatrice, - un troisième pointeur dit « de transfert », ledit procédé étant caractérisé en ce qu’il comprend : a) une étape d’exécution (E1) de la fonction productrice (A) b) une deuxième phase (P2) dite de « transfert » des données, c) une étape d’exécution (E33) de la fonction consommatrice (E4). Figure pour l’abrégé : Fig. 4 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é. De manière usuelle, la chaine de traction d’un véhicule comprend un moteur, apte à mettre en rotation les roues du véhicule, et une pluralité d’actuateurs relatifs au moteur. Par exemple, les actuateurs peuvent correspondre à l’injecteur de carburant, au système d’allumage du moteur ou encore au système de recirculation des gaz dans le moteur. Le véhicule comprend également un calculateur dit « de contrôle moteur », apte à commander l’ensemble des actuateurs afin de commander le moteur. 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, chaque cœur étant apte à exécuter une série de tâches afin de déterminer les commandes à émettre à chaque actuateur. Chaque tâche comprend une ou plusieurs fonctions, chaque fonction étant productrice de données et/ou consommatrice 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 de chaque donnée produite 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. 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. Autrement dit, la valeur d’une donnée est vue comme instable lorsque les fonctions consommatrices de cette donnée ne consomment pas toutes la même valeur de la donnée. 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. 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. De nos jours, il est connu d’utiliser un procédé d’échanges de données, dans lequel un ensemble de données est produite par une fonction productrice, puis une copie intermédiaire de données à consommer est enregistrée dans une zone mémoire. Les données enregistrées sont ensuite restaurées afin que la fonction consommatrice des données produites précédemment s’exécute à partir de la copie des données et non plus directement des données produites. La fonction consommatrice ne peut donc s’exécuter qu’après l’enregistrement des données produites dans la zone mémoire et la restauration des données enregistrées. Ce temps d’attente avant exécution de la fonction consommatrice peut être relativement long. Cela peut être problématique, notamment lors de la nécessité d’exécution de fonctions consommatrices relatives à un diagnostic moteur. Par exemple dans le cas où des bruits inhabituels surviennent du moteur, il est nécessaire d’identifier si il s’agit de cliquetis, caractéristiques d’une mauvaise combustion du mélange air/carburant dans les chambres des cylindres d’un moteur. Si les cliquetis ne sont pas identifiés à temps, cela peut endommager certaines parties du moteur. 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 apte à exécuter au moins une tâche, chaque tâche permettant d’exécuter une fonction désignée comme productrice d’au moins une donnée et une fonction désignée comme consommatrice de l’au moins une donnée, ledit calculateur comprenant une mémoire comprenant : - une première zone mémoire de stockage de données, caractérisée par une première adresse de mémoire, - une deuxième zone mémoire de stockage de données, caractérisée par une deuxième adresse de mémoire, - un premier pointeur défini comme une variable et étant associé à la fonction productrice, - un deuxième pointeur défini comme une variable et associé à la fonction consommatrice, - un pointeur dit « de transfert », ledit procédé étant caractérisé en ce qu’il comprend : a) une étape d’initialisation du premier pointeur et du deuxième pointeur, dans laquelle la première adresse est enregistrée dans le premier pointeur et la deuxième adresse est enregistrée dans le deuxième pointeur, b) une première phase comprenant les étapes de : i) exécution de la fonction productrice de données afin de produire les données dites « produites », ii) enregistrement de l’ensemble de données produites dans la zone mémoire dont l’adresse est enregistrée dans le premier pointeur, c) une deuxième phase dite de « transfert » comprenant : i) une première étape de copie de l’adresse comprise dans le premier pointeur associé à ladite fonction productrice, dans le pointeur de transfert, ii) une deuxième étape de copie de l’adresse comprise dans le deuxième pointeur associé à la fonction consommatrice, dans le premier pointeur associé à la fonction productrice, iii) une troisième étape de copie de l’adresse comprise dans le pointeur de transfert dans le deuxième pointeur associé à la fonction consommatrice, d) une troisième phase comprenant les étapes de : i) récupération de l’adresse copiée dans le deuxième pointeur, ii) récupération des données enregistrées dans l’adresse récupérée, iii) exécution de la fonction consommatrice à partir des données récupérées. Ainsi, le procédé permet l’enregistrement et la restauration des données, et donc l’exécution d’une fonction exécutrice et d’une fonction consommatrice, à tout moment, sauf pendant la phase de transfert, autrement dit, sauf pendant les étapes de copie d’adresse entre les différents pointeurs. La durée nécessaire pour copier des adresses entre différents pointeurs est significativement inférieure au temps nécessaire à la copie d’un ensemble de données entre différentes zones mémoires. Ainsi, le temps d’attente entre l’exécution d’une fonction productrice et l’exécution d’une fonction consommatrice est relativement faible, ce qui est avantageux, notamment lors qu’il est nécessaire d’exécuter rapidement la ou les fonctions productrices ou consommatrices par exemple afin d’effectuer un diagnostic moteur. De plus, la stabilité et la cohérence des données sont assurées en même temps. La stabilité est assurée parce que chaque donnée produite n’est enregistrée qu’en fin d’exécution de la fonction productrice et parce que la restauration est réalisée avant le début de l’exécution des fonctions consommatrices. 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 de données. De plus, le premier pointeur désignant la deuxième zone mémoire après mise en œuvre du procédé, la fonction productrice peut ainsi s’exécuter de nouveau et les données produites sont enregistrées dans la deuxième zone mémoire. De préférence, lorsqu’une deuxième fonction consommatrice s’exécute à partir des données produites par la fonction productrice, la mémoire comprend : - une troisième zone mémoire, caractérisée par une troisième adresse mémoire, - un troisième pointeur, associé à la fonction productrice, l’étape d’initialisation comprend l’enregistrement de la troisième adresse dans le troisième pointeur et l’étape d’enregistrement comprend une étape de copie depuis la première zone mémoire de stockage vers la zone mémoire dont l’adresse est enregistrée dans le troisième pointeur, des données utiles à la deuxième fonction consommatrice. Ainsi, l’étape d’enregistrement comprend la copie des données utiles à la deuxième fonction consommatrice, de la première zone mémoire vers la troisième zone mémoire. Cela permet à la fonction productrice de ne s’exécuter qu’une seule fois. Cela représente un gain de temps non négligeable dans la mise en œuvre de fonctions. Il est désigné par « données utiles » un ensemble de données parmi les données produites par la fonction productrice, nécessaires à la mise en œuvre de la deuxième fonction consommatrice. Le procédé permet ainsi d’agréger et d’enregistrer différents ensembles de données en fonction des données nécessaires à chaque fonction consommatrice. De préférence encore, la mémoire comprend une quatrième zone mémoire caractérisée par une quatrième adresse mémoire, un quatrième pointeur associé à la deuxième fonction consommatrice, et un deuxième pointeur de transfert, l’étape d’initialisation comprend l’enregistrement de la quatrième adresse mémoire dans le quatrième pointeur, la deuxième phase comprend : a) une quatrième étape de copie de l’adresse comprise dans le troisième pointeur associé à la fonction productrice, dans le deuxième pointeur de transfert, b) une cinquième étape de copie de l’adresse comprise dans le quatrième pointeur associé à la deuxième fonction consommatrice, dans le troisième pointeur associé à la fonction productrice, c) une sixième étape de copie de l’adresse comprise dans le deuxième pointeur de transfert dans le quatrième pointeur associé à la deuxième fonction consommatrice. Le procédé permet ainsi également le transfert de l’adresse mémoire comprenant les données à consommer par une deuxième fonction consommatrice, vers le pointeur associé à cette deuxième fonction consommatrice. De plus, le troisième pointeur désignant la quatrième zone mémoire après mise en œuvre du procédé, la fonction productrice peut ainsi s’exécuter de nouveau et les données produites sont copiées dans la quatrième zone mémoire. De manière avantageuse, la troisième phase comprend : a) une deuxième étape de récupération de l’adresse copiée dans le quatrième pointeur, b) une deuxième étape de récupération des données enregistrées dans l’adresse mémoire récupérée, c) une deuxième étape d’exécution de la deuxième fonction consommatrice à partir des données récupérées. Le procédé permet ainsi à la deuxième fonction reproductrice de s’exécuter à partir des données produites qui lui sont utiles. De même, le procédé permet l’enregistrement et la restauration des données, et donc l’exécution de la fonction productrice et d’une deuxième fonction consommatrice, à tout moment, sauf pendant la phase de transfert, autrement dit, sauf pendant les étapes de copie d’adresse entre les différents pointeurs. La durée nécessaire pour copier des adresses entre différents pointeurs est significativement inférieure au temps nécessaire à la copie d’un ensemble de données entre différentes zones mémoires. Ainsi, le temps d’attente entre l’exécution de la fonction productrice et l’exécution de la deuxième fonction consommatrice est relativement faible, ce qui est avantageux, notamment lors qu’il est nécessaire d’exécuter rapidement la ou les fonctions productrices ou consommatrices par exemple afin d’effectuer un diagnostic moteur. De plus, La stabilité et la cohérence des données sont assurées en même temps. 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 comprenant une mémoire, ladite mémoire comprenant : - une première zone mémoire de stockage de données, caractérisée par une première adresse de mémoire, - une deuxième zone mémoire de stockage de données, caractérisée par une deuxième adresse de mémoire, - un premier pointeur défini comme une variable et étant associé à la fonction productrice, - un deuxième pointeur défini comme une variable et étant associé à la fonction consommatrice, - un pointeur dit « de transfert », le calculateur étant remarquable en ce qu’il est configuré pour mettre en œuvre le procédé tel que présenté précédemment. De préférence, lorsqu’une deuxième fonction consommatrice s’exécute à partir des données produites par la fonction productrice, la mémoire comprend : - une troisième zone mémoire, caractérisée par une troisième adresse mémoire, - un troisième pointeur, associé à la fonction productrice, - un deuxième pointeur de transfert, - une quatrième zone mémoire caractérisée par une quatrième adresse mémoire, - un quatrième pointeur associé à la deuxième fonction consommatrice, le calculateur étant remarquable en qu’il est configuré pour mettre en œuvre le procédé tel que décrit précédemment. L’invention concerne également un véhicule comprenant un calculateur tel que présenté 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 représente un premier exemple de la mémoire du mécanisme de protection de selon l’invention, : la représente un deuxième exemple de la mémoire du mécanisme de protection de selon l’invention, : la représente un troisième exemple de la mémoire du mécanisme de protection de selon l’invention, : la représente un mode de réalisation du procédé de selon l’invention. 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 apte à exécuter au moins une tâche, chaque tâche permettant d’exécuter une fonction désignée comme productrice (A) d’au moins une donnée et une fonction désignée comme consommatrice (B) de l’au moins une donnée, ledit calculateur comprenant une mémoire (MEM) comprenant : - une première zone mémoire (Z1) de stockage de données, caractérisée par une première adresse (a Z1 ) de mémoire, - une deuxième zone mémoire (Z2) de stockage de données, caractérisée par une deuxième adresse (a Z2 ) de mémoire, - un premier pointeur (P A ) défini comme une variable et étant associé à la fonction productrice (A), - un deuxième pointeur (P B ) défini comme une variable et associé à la fonction consommatrice (B), - un pointeur dit « de transfert » (Pf A/B ), ledit procédé étant caractérisé en ce qu’il comprend : a) une étape d’initialisation (E0) du premier pointeur (P A ) et du deuxième pointeur (P B ), dans laquelle la première adresse (a Z1 ) est enregistrée dans le premier pointeur (P A ) et la deuxième adresse (a Z2 ) est enregistrée dans le deuxième pointeur (PB), b) une première phase -P1) comprenant les étapes de : i) exécution (E11) de la fonction productrice (A) de données afin de produire les données dites « produites », ii) enregistrement (E12) de l’ensemble de données produites dans la zone mémoire (Z1) dont l’adresse est enregistrée dans le premier pointeur (P A ), c) une deuxième phase (P2) dite de « transfert » comprenant : i) une première étape de copie (E21) de l’adresse comprise dans le premier pointeur (P A ) associé à ladite fonction productrice (A), dans le pointeur de transfert (Pf A/B ), ii) une deuxième étape de copie (E22) de l’adresse comprise dans le deuxième pointeur (P B ) associé à la fonction consommatrice (B), dans le premier pointeur (A) associé à la fonction productrice (A), iii) une troisième étape de copie (E23) de l’adresse comprise dans le pointeur de transfert (Pf A/B ) dans le deuxième pointeur (P B ) associé à la fonction consommatrice (B), d) une troisième phase (P3) comprenant les étapes de : i) récupération de l’adresse (E31) copiée dans le deuxième pointeur (P B ), ii) récupération des données (E3) enregistrées dans l’adresse récupérée, iii) exécution (E33) de la fonction consommatrice (B) à partir des données récupérées. Procédé selon la revendication précédente, lorsqu’une deuxième fonction consommatrice (C) s’exécute à partir des données produites par la fonction productrice (A), la mémoire (MEM) comprend : - une troisième zone mémoire (Z3) caractérisée par une troisième adresse (a Z3 ) mémoire, - et un troisième pointeur (P A2 ), associé à la fonction productrice (A), l’étape d’initialisation (E0) comprend l’enregistrement de la troisième adresse (a Z3 ) dans le troisième pointeur (P A2 ) et l’étape d’enregistrement (E12) comprend une étape de copie depuis la première zone mémoire (Z1) de stockage vers la zone mémoire (Z2) dont l’adresse est enregistrée dans le troisième pointeur (P A2 ), des données utiles à la deuxième fonction consommatrice (C). Procédé selon la revendication précédente, la mémoire (MEM) comprenant une quatrième zone mémoire (Z4) caractérisée par une quatrième adresse (a Z4 ) mémoire, un quatrième pointeur (P C ) associé à la deuxième fonction consommatrice (C), et un deuxième pointeur de transfert (Pf A/C ), l’étape d’initialisation (E0) comprend l’enregistrement de la quatrième adresse mémoire (a Z4 ) dans le quatrième pointeur (P C ), la deuxième phase (P2) comprend : a) une quatrième étape de copie (E24) de l’adresse comprise dans le troisième pointeur (P A2 ) associé à la fonction productrice (A), dans le deuxième pointeur de transfert (Pf A/C ), b) une cinquième étape de copie (E25) de l’adresse comprise dans le quatrième pointeur (P C ) associé à la deuxième fonction consommatrice (C), dans le troisième pointeur (P A2 ) associé à la fonction productrice (A), c) une sixième étape de copie (E26) de l’adresse comprise dans le deuxième pointeur de transfert (Pf A/C ) dans le quatrième pointeur (P C ) associé à la deuxième fonction consommatrice (C). Procédé selon la revendication précédente, dans lequel la troisième phase (P3) comprend : a) une deuxième étape de récupération de l’adresse (E34) copiée dans le quatrième pointeur (P C ), b) une deuxième étape de récupération des données (E35) enregistrées dans l’adresse mémoire récupérée, c) une deuxième étape d’exécution (E36) de la deuxième fonction consommatrice (C) à partir des données récupérées. 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 comprenant une mémoire (MEM) comprenant : - une première zone mémoire (Z1) de stockage de données, caractérisée par une première adresse (a Z1 ) de mémoire, - une deuxième zone mémoire (Z2) de stockage de données, caractérisée par une deuxième adresse (a Z2 ) de mémoire, - un premier pointeur (P A ) défini comme une variable et étant associé à la fonction productrice (A), - un deuxième pointeur (P B ) défini comme une variable et étant associé à la fonction consommatrice (B), - un pointeur dit « de transfert » (Pf A/B ), le calculateur étant caractérisé en ce qu’il est configuré pour mettre en œuvre le procédé selon la revendication 1. Calculateur selon la revendication précédente, lorsqu’une deuxième fonction consommatrice (C) s’exécute à partir des données produites par la fonction productrice (A), la mémoire (MEM) comprenant : - une troisième zone mémoire (Z3), - un troisième pointeur (P A2 ), associé à la fonction productrice (A), - un deuxième pointeur de transfert (Pf A/C ), - une quatrième zone mémoire (Z4) caractérisée par une quatrième adresse (a Z4 ) mémoire, - un quatrième pointeur (P C ) associé à la deuxième fonction consommatrice (C), le calculateur étant caractérisé en qu’il est configuré pour mettre en œuvre le procédé selon l’une quelconque des revendications 2 à 4. Véhicule comprenant un calculateur selon l’une quelconque des revendications 5 et 6.