Brevet FR3096154A1 — publié le 20201120

Description Titre de l'invention : Procédé et système pour gérer une fonctionnalité d'allocation de mémoire à bord d'un véhicule automobile Domaine technique de l'invention [0001] La présente invention concerne le domaine des systèmes informatiques embarqués à bord de véhicules automobiles. L'invention porte notamment sur un procédé de gestion d'une fonctionnalité d'allocation de mémoire afin de mémoriser une pluralité d'objets manipulés pendant l'exécution d'un système d'aide à la conduite et/ou d'un système de gestion d'éléments graphiques embarqué(s) à bord d'un véhicule automobile. L'invention porte également sur un système mettant en oeuvre un tel procédé. État de la technique antérieure [0002] On sait que, dans le domaine des véhicules automobiles, notamment celui plus par- ticulier des véhicules autonomes, il est nécessaire d'exécuter des systèmes informatiques au sein desquels des instances d'objets de différentes sortes sont créées. C'est par exemple le cas pour les systèmes d'aide à la conduite lorsqu'il s'agit de mettre en oeuvre la conduite autonome (e.g. création des objets situés à proximité du véhicule autonome). C'est également le cas pour les systèmes de traitement d'éléments graphiques lorsqu'il s'agit d'afficher des éléments graphiques aux occupants du véhicule (e.g. création des objets graphiques). Or, en informatique, on sait qu'il est possible de procéder à une allocation dynamique de la mémoire disponible, ce qui permet d'allouer et de désaffecter, i.e. libérer, des blocs de mémoire selon les besoins. Ces mécanismes d'allocation dynamique de mémoire permettent notamment, dans certains cas, de minimiser les ressources utilisées par rapport à une allocation statique de mémoire. [0003] Cependant, la manipulation d'une telle mémoire dynamique peut être problématique et inefficace. On sait en effet que l'allocation dynamique de mémoire présente certains désavantages, notamment ceux liés au risque de dépassement de mémoire, ceux dûs à la fragmentation de la mémoire ou ceux induits par le risque de fuite de mémoire. Pour ces raisons, des systèmes informatiques utilisés pour gérer une fonctionnalité d'allocation de mémoire qui sont basés uniquement sur une allocation dynamique de mémoire sont inappropriés dans le contexte des véhicules automobiles, contexte dans lequel certaines conséquences des désavantages précités peuvent être désastreuses et mettre en danger la vie des usagers de la route du fait d'une défaillance d'un boîtier électronique. Résumé de l'invention [0004] L'invention vise à pallier ces inconvénients. L'invention a en particulier pour but de 2 fournir un procédé et un système de gestion d'une fonctionnalité d'allocation de mémoire qui permettent de minimiser, voire supprimer, le risque de dépassement de mémoire, le risque de fragmentation et/ou le risque de fuite de mémoire. Subsidiairement, l'invention a pour dessein de fournir un procédé et un système de gestion d'une fonctionnalité d'allocation de mémoire qui permettent de minimiser les ressources en mémoire utilisées pour mémoriser des objets manipulés pendant l'exécution d'un système d'aide à la conduite et/ou d'un système de traitement d'éléments graphiques embarqué(s) à bord d'un véhicule automobile. [0005] Ces buts sont atteints, selon l'invention, au moyen d'un procédé de gestion par un système informatique d'une fonctionnalité d'allocation de mémoire afin de mémoriser une pluralité d'objets manipulés durant l'exécution d'un système d'aide à la conduite et/ou d'un système de traitement d'éléments graphiques embarqué(s) à bord d'un véhicule automobile, le procédé comprenant les étapes de : [0006] - déterminer une valeur d'un premier paramètre qui quantifie un nombre maximal d'objets manipulés, [0007] - déterminer une valeur d'un deuxième paramètre qui quantifie la taille d'un ensemble formé par des classes d'objets correspondantes, [0008] - réserver, au sein d'une mémoire, une zone dont la taille est établie en utilisant la valeur du premier paramètre et la valeur du deuxième paramètre, et [0009] - constituer un superviseur configuré pour gérer l'allocation d'un emplacement de la zone requise lors de la création d'un objet et la libération d'un emplacement de la zone requise lorsqu'un objet cesse d'être utilisé ou d'exister. [0010] Selon une variante, le superviseur peut être configuré pour gérer de manière autonome la libération d'au moins un emplacement de la zone. [0011] Selon une autre variante, le procédé peut comprendre une étape d'utilisation d'au moins une portion de la zone pour enregistrer des données caractérisant une grille d'allocation identifiant au moins un emplacement de la zone qui est occupé par au moins un objet et/ou au moins un emplacement de la zone qui est libre. [0012] Selon une autre variante, le procédé peut comprendre une étape de mise à jour, par le superviseur, des données caractérisant une grille d'allocation. [0013] L'invention a en outre pour objet un système de gestion qui peut être embarqué à bord d'un véhicule automobile et gérer une fonctionnalité d'allocation de mémoire afin de mémoriser une pluralité d'objets manipulés durant l'exécution d'un système d'aide à la conduite et/ou d'un système de traitement d'éléments graphiques embarqué(s), le système comprenant au moins une unité de traitement d'informations, comprenant au moins un processeur, et un support de stockage de données configurés pour mettre en oeuvre un procédé tel que décrit ci-dessus. [0014] L'invention a en outre pour objet un programme pour l'exécution des étapes d'un 3 procédé tel que décrit ci-dessus lorsque ledit programme est exécuté sur un ordinateur. [0015] L'invention a en outre pour objet un support utilisable dans un ordinateur sur lequel est enregistré un programme tel que décrit ci-dessus. [0016] L'invention a enfin pour objet un véhicule automobile comprenant un système tel que décrit ci-dessus. Brève description des figures [0017] D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la des- cription détaillée ci-après, et des dessins annexés, sur lesquels : [0018] [fig.1] est un schéma fonctionnel d'un système de gestion selon l'invention, [0019] [fig.2] est un organigramme illustrant certaines étapes d'un procédé de gestion selon l'invention et [0020] [fig.3] est un schéma illustrant une zone de mémoire selon l'invention dans laquelle des objets manipulés peuvent être mémorisés. Description détaillée de l'invention [0021] Selon l'invention, un système de gestion 100 permettant de gérer une fonctionnalité d'allocation de mémoire afin de mémoriser une pluralité d'objets manipulés durant l'exécution d'un système d'aide à la conduite et/ou d'un système de traitement d'éléments graphiques embarqué(s) à bord d'un véhicule automobile est un système informatique, représenté à la figure 1, qui comprend une unité de traitement d'informations 101, comprenant un ou plusieurs processeurs, un support de stockage de données 102, au moins une interface d'entrée et sortie 103, permettant la réception de données (ou signaux) et l'émission de données (ou signaux), et, éventuellement, un processeur de signal numérique 104 apte à recevoir des données, les démoduler, les amplifier, et ce conformément aux connaissances générales de l'homme du métier. Selon certains modes de réalisation, le système de gestion 100 est embarqué à bord d'un véhicule automobile, par exemple une voiture, et est hébergé par un ou plusieurs calculateurs, unités de commande électroniques ou autres boîtiers télématiques du véhicule. Selon le mode de réalisation, le système de gestion 100 fait partie intégrante d'un système d'aide à la conduite d'un véhicule automobile. 100221 Selon l'invention, tous les éléments décrits ci-dessus contribuent pour permettre au système de gestion 100 de mettre en oeuvre un procédé de gestion d'une fonctionnalité d'allocation de mémoire afin de mémoriser une pluralité d'objets manipulés durant l'exécution d'un système d'aide à la conduite et/ou d'un système de traitement d'éléments graphiques embarqué(s) à bord d'un véhicule automobile, tel que décrit ci-dessous en lien avec la figure 2. 100231 Selon une première étape 201 du procédé selon l'invention, le système de gestion 100 détermine une valeur d'un premier paramètre qui quantifie un nombre maximal d'objets manipulés, Nmax. Pour ce faire, le système de gestion 100 extrait d'un support de stockage de données agencé dans le véhicule, par exemple le support de stockage de données 102, des données qui caractérisent la valeur du premier paramètre. Ces données sont de préférence préétablies dans le but de refléter le nombre maximal d'objets que le système de gestion 100 est en mesure de prendre en charge. [0024] Ensuite, selon une deuxième étape 202 du procédé selon l'invention, le système de gestion 100 détermine une valeur d'un deuxième paramètre qui quantifie la taille d'un ensemble formé par des classes d'objets correspondantes. En effet, sur la base des objets qui sont manipulés, le système de gestion 100 identifie et évalue la taille, Tmax, d'un ensemble formé par une union (au sens langage de programmation) de toutes les classes qui correspondent aux objets manipulés. En d'autres termes, Tmax est la taille de la plus grosse classe de l'ensemble. [0025] Ensuite, selon une troisième étape 203 du procédé selon l'invention, le système de gestion 100 réserve, au sein d'une mémoire, une zone dont la taille est établie en utilisant la valeur du premier paramètre et la valeur du deuxième paramètre. De préférence, la mémoire utilisée est mise à disposition par le système d'aide à la conduite et/ou le système de traitement d'éléments graphiques au moyen d'un support de stockage de données approprié (e.g. RAM). Selon un exemple, le système de gestion 100 réalise en outre une étape subsidiaire au cours de laquelle il utilise au moins une portion de la zone pour enregistrer des données caractérisant une grille d'allocation identifiant au moins un emplacement de la zone qui est occupé par au moins un objet et/ou au moins un emplacement de la zone qui est libre, i.e. identifiant des emplacements occupés et des emplacements libres. La zone est en effet divisée en une pluralité d'emplacements dans lesquels des objets manipulés peuvent être mémorisés. Selon un autre exemple, la grille d'allocation comprend des informations additionnelles qui, pour au moins un emplacement de la zone, comprennent un motif particulier ou une somme de contrôle qui peut être utilisé(e) périodiquement par le système de gestion 100 pour surveiller l'intégrité de l'emplacement. Selon d'autres exemples, la grille d'allocation peut être regroupée ou distribuée (par exemple suivant les emplacements). [0026] De manière avantageuse, la taille de la zone de mémoire est établie de sorte à être égale à (Nmax*Tmax) + Tgrille, où Tgrille est la taille de la grille d'allocation Ainsi, en ce qui concerne le risque de dépassement de capacité, la taille maximum nécessaire dans le pire des cas est définie au moment de la compilation. La réservation d'un emplacement sera donc toujours possible lors de l'exécution (tant que l'hypothèse du nombre maximum d'objets est respectée). Par ailleurs, en ce qui concerne le problème de fragmentation de la mémoire, tous les emplacements de la zone sont de taille fixe et peuvent contenir le plus gros des objets. Enfin, par rapport à une allocation purement statique, la zone de mémoire n'occupe que Nmax* Tnzax, plutôt que la somme des Nnzax TclassXXX pour toutes les classes d'objets (ou TclassXXX serait la taille d'une classe d'objet). Ces aspects sont illustrés notamment par la figure 3, sur laquelle est schématisée une zone réservée par le procédé selon l'invention lorsque trois objets de deux classes distinctes ont été créés. Comme cela apparaît clairement sur la figure, il reste donc deux emplacements libres dans la zone. [0027] Enfin, selon une quatrième étape 204 du procédé selon l'invention, le système de gestion 100 constitue un superviseur configuré pour gérer l'allocation d'un emplacement de la zone requise lors de la création d'un objet et la libération d'un emplacement de la zone requise lorsqu'un objet cesse d'être utilisé ou est détruit. De préférence, le superviseur est aussi configuré pour mettre à jour la grille d'allocation lorsqu'un objet est créé ou lorsqu'un objet cesse d'être utilisé. Alternativement, ou cumulativement, le superviseur est configuré pour gérer de manière autonome la libération d'au moins un emplacement de la zone. Dans ce cas, le superviseur du système de gestion 100 dispose donc d'un service pour effacer toute la mémoire qui évite le problème de fuite de mémoire. [0028] Par conséquent, aux termes du procédé et du système selon l'invention décrits ci- dessus, les briques fonctionnelles sont fournies pour gérer une fonctionnalité d'allocation de mémoire en minimisant le risque de dépassement de mémoire, le risque de fragmentation et/ou le risque de fuite de mémoire. De plus, le procédé et le système selon l'invention permettent de gérer une fonctionnalité d'allocation de mémoire qui permet de minimiser les ressources en mémoire utilisées pour mémoriser des objets manipulés pendant l'exécution d'un système d'aide à la conduite et/ou d'un système de traitement d'éléments graphiques embarqué(s) à bord d'un véhicule automobile 6 [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4] [Revendication 5] REVENDICATIONSProcédé de gestion par un système informatique (100) d'une fonctionnalité d'allocation de mémoire afin de mémoriser une pluralité d'objets manipulés durant l'exécution d'un système d'aide à la conduite et/ou d'un système de traitement d'éléments graphiques embarqué(s) à bord d'un véhicule automobile, caractérisé en ce que le procédé comprend les étapes de : - déterminer une valeur d'un premier paramètre qui quantifie un nombre maximal d'objets manipulés, - déterminer une valeur d'un deuxième paramètre qui quantifie la taille d'un ensemble formé par des classes d'objets correspondantes, - réserver, au sein d'une mémoire, une zone dont la taille est établie en utilisant la valeur du premier paramètre et la valeur du deuxième paramètre, et - constituer un superviseur configuré pour gérer l'allocation d'un emplacement de la zone requise lors de la création d'un objet et la libération d'un emplacement de la zone requise lorsqu'un objet cesse d'être utilisé ou d'exister. Procédé selon la revendication 1, caractérisé en ce que le superviseur est configuré pour gérer de manière autonome la libération d'au moins un emplacement de la zone. Procédé selon l'une des revendications précédentes, caractérisé en ce que le procédé comprend une étape d'utilisation d'au moins une portion de la zone pour enregistrer des données caractérisant une grille d'allocation identifiant au moins un emplacement de la zone qui est occupé par au moins un objet et/ou au moins un emplacement de la zone qui est libre. Procédé selon la revendication 3, caractérisé en ce que le procédé comprend une étape de mise à jour, par le superviseur, des données caractérisant une erille d'allocation. Système de gestion (100) qui peut être embarqué à bord d'un véhicule automobile et gérer une fonctionnalité d'allocation de mémoire afin de mémoriser une pluralité d'objets manipulés durant l'exécution d'un système d'aide à la conduite et/ou d'un système de traitement d'éléments graphiques embarqué(s), caractérisé en ce que le système comprend au moins une unité de traitement d'informations (101), comprenant au moins un processeur, et un support de stockage de 7 données (102) configurés pour mettre en oeuvre un procédé selon l'une quelconque des revendications précédentes. [Revendication 6] Programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes d'un procédé selon l'une quelconque des revendications 1 à 4 lorsque ledit programme est exécuté sur un ordinateur. [Revendication 7] Support utilisable dans un ordinateur, caractérisé en ce qu'un programme selon la revendication 6 y est enregistré. [Revendication 8] Véhicule automobile, caractérisé en ce qu'il comprend un système selon la revendication 5.