FR2818770A1 - Procede de gestion optimisee de l'allocation de memoire d'un systeme embarque et systeme embarque correspondant - Google Patents

Procede de gestion optimisee de l'allocation de memoire d'un systeme embarque et systeme embarque correspondant Download PDF

Info

Publication number
FR2818770A1
FR2818770A1 FR0016725A FR0016725A FR2818770A1 FR 2818770 A1 FR2818770 A1 FR 2818770A1 FR 0016725 A FR0016725 A FR 0016725A FR 0016725 A FR0016725 A FR 0016725A FR 2818770 A1 FR2818770 A1 FR 2818770A1
Authority
FR
France
Prior art keywords
memory
elementary
packets
allocation
object code
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
FR0016725A
Other languages
English (en)
Inventor
Nicolas Fougeroux
Patrice Hameau
Olivier Landier
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.)
Bull CP8 SA
Original Assignee
Bull CP8 SA
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 Bull CP8 SA filed Critical Bull CP8 SA
Priority to FR0016725A priority Critical patent/FR2818770A1/fr
Priority to AU2002228114A priority patent/AU2002228114A1/en
Priority to PCT/FR2001/004122 priority patent/WO2002050688A1/fr
Priority to US10/472,323 priority patent/US7093096B2/en
Priority to EP01989649A priority patent/EP1346286A1/fr
Publication of FR2818770A1 publication Critical patent/FR2818770A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Landscapes

  • Engineering & Computer Science (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)
  • Stored Programmes (AREA)

Abstract

L'invention concerne un procédé de gestion optimisée de l'allocation de mémoire d'un système embarqué à une structure de données et un système embarqué correspondant. Les paquets de code objet et les paquets de données étant discriminés, et la mémoire étant subdivisée en blocs de mémoire élémentaires adressables, on alloue (A1 ) aux paquets de code objet un ensemble de blocs de mémoire élémentaires localisés dans une première plage de mémoire (MS1 ) à des adresses sensiblement contiguës et aux paquets de données un autre ensemble de blocs de mémoire élémentaires localisés dans une deuxième plage de mémoire (MS2 ). Ceci permet d'éviter la fragmentation de la zone mémoire, lors d'installations / désinstallations successives et de mettre en oeuvre très facilement un processus de défragmentation optimal, adapté à chaque type de données, code ou données d'application.

Description

PROCEDE DE GESTION OPTIMISEE DE L'ALLOCATION DE MEMOIRE
D'UN SYSTEME EMBARQUE ET SYSTEME EMBARQUE CORRESPONDANT.
L'invention est relative à un procédé de gestion optimisée de l'allocation de mémoire d'un système informatique embarqué, désigné par système embarqué, et
au système embarqué correspondant.
Les systèmes embarqués actuellement disponibles dans le commerce, tels que notamment les assistants
numériques, les cartes à microprocesseur ou micro-
contrôleur, les cartes de type PCMCIA, les appareils informatiques portables, encore désignés par "notebook" ou "sub-notebook" en langage anglo-saxon, ont pour caractéristique commune, souvent contradictoire, la réduction de leur dimension et de leur encombrement et l'augmentation de leur fonctionnalité, grâce, notamment, aux progrès constants de la puissance de calcul des microprocesseurs ou micro-contrôleurs intégrés dans ces derniers. Compte tenu de l'évolution précitée, les systèmes embarqués tendent, en fait, à reproduire de la manière la
plus fidèle possible les fonctionnalités des micro-
ordinateurs, à l'exception toutefois des fonctionnalités offertes par la possibilité de connexion d'appareils ou
organes périphériques à ces derniers.
Parmi l'un des aspects du mode opératoire des systèmes embarqués qui sont susceptibles de restreindre le rapprochement des fonctionnalités de ces derniers de celles des micro-ordinateurs, celui relatif au mode de gestion de l'espace mémoire disponible apparaît crucial, dans la mesure o, à l'heure actuelle, un tel mode de
gestion apparaît réduit à sa plus simple expression.
En effet, dans le cas o le système embarqué est constitué par une carte à microprocesseur, encore désignée par carte à puce, ainsi que représenté en figure 1, ce système embarqué référencé 10 comprend de manière classique des circuits d'entrée/sortie, I/O, référencés 12, des ressources de traitement de l'information, référencés 14, constituées par un micro-contrôleur et reliées aux circuits d'entrée/sortie 12. En outre, une mémoire non volatile 18 est prévue, laquelle consiste en une mémoire programmable 18a et en une mémoire de type
ROM, ou mémoire de type à accès en lecture seulement 18b.
Enfin, une mémoire de travail, mémoire RAM référencée 16,
est également prévue. Ces mémoires sont reliées au micro-
contrôleur ou microprocesseur 14 par une liaison par BUS.
L'ensemble est géré par un système d'exploitation OS,
lequel peut être implanté en mémoire non volatile 18.
Enfin, dans certains cas, la carte à microprocesseur peut comporter une unité de calcul cryptographique SI, référencée 20, elle-même reliée au microprocesseur 14, et jouant le rôle, en quelque sorte, d'un coprocesseur dédié. Le microprocesseur lui-même peut être remplacé ou complété par des circuits logiques implantés dans une puce à semiconducteur, ces circuits logiques pouvant être des circuits de type ASIC, de l'anglais Application
Specific Integrated Circuit.
La gestion de la zone mémoire est de manière classique réalisée, pour l'installation d'applications multiples par exemple, par une référence constituée par un pointeur, liant une adresse de début et une adresse de
fin de zone mémoire relative à une application.
Lors de l'exécution de ces applications, des paquets de données relatives à ces applications sont écrites à des adresses quelconques de cette zone mémoire, le seul critère d'allocation mémoire et d'écriture consistant en un critère d'espace mémoire libre suffisant entre un pointeur de début et un pointeur de fin, pour permettre la mémorisation d'un paquet de données de
grandeur déterminée.
Dans le cas de procédures d'installation / désinstallation successives d'applications dans la zone mémoire correspondante, des espace mémoires libres sont créés dans lesquels des paquets de code objet, respectivement de données, peuvent être écrits et mémorisés. Un tel processus opératoire conduit à un phénomène d'émiettement, encore désigné par
fragmentation, de la zone mémoire considérée.
Le phénomène d'émiettement ou de fragmentation précité présente, de même que dans le cas du phénomène de fragmentation de la zone mémoire des disques durs des micro-ordinateurs, de sérieux inconvénients, tels que le ralentissement de l'exécution des applications ou programmes considérés, utilisation non optimisée de
l'espace mémoire du système embarqué.
La présente invention a pour objet de remédier aux inconvénients précités des systèmes embarqués de
l'art antérieur.
En conséquence, un objet de la présente invention est la mise en oeuvre d'un procédé de gestion optimisée de l'allocation dynamique de mémoire à une structure de données ou application identifiée par un numéro d'identification et mémorisée sous forme de paquets d'information numérique dans la zone mémoire d'un système embarqué, procédé par lequel la zone mémoire élémentaire est subdivisée en blocs de mémoire élémentaires organisés
selon un réseau adressable.
Un autre objet de la présente invention est en conséquence la mise en euvre d'un procédé de gestion optimisée de l'allocation dynamique de mémoire dans un système embarqué, dans lequel, grâce à la subdivision de la zone mémoire en blocs de mémoire élémentaires, et à un processus de réarrangement des blocs élémentaires de blocs alloués, le phénomène d'émiettement ou de fragmentation de la zone mémoire du système embarqué est
sensiblement supprimé.
Un autre objet de la présente invention est en conséquence la mise en ouvre d'un procédé de gestion optimisée de l'allocation dynamique de mémoire dans un système embarqué dans lequel un processus de défragmentation de la zone mémoire de ce dernier permet de supprimer sensiblement tout phénomène d'émiettement
après désinstallation d'une application.
Le procédé de gestion optimisée de l'allocation dynamique de mémoire à une structure de données identifiée par un numéro d'identification numérique dans la zone mémoire d'un système embarqué, objet de l'invention, est mis en oeuvre à partir de paquets d'information constitués par des paquets de code objet représentatifs de cette structure de données et par des paquets de données relatives à cette structure de données, la zone mémoire étant subdivisée en blocs de
mémoire élémentaires adressables.
Il consiste à allouer aux paquets de code objet un ensemble de blocs de mémoire élémentaires localisés à des adresses sensiblement contiguës dans une première plage de mémoire dédiée à l'allocation de mémoire de paquets de code objet de cette zone mémoire et à allouer aux paquets de données un autre ensemble de blocs de mémoire s élémentaires dans une deuxième plage de mémoire dédiée à l'allocation de mémoire de paquets de données de cette zone mémoire. Ceci permet d'éviter la fragmentation des première et deuxième plages dédiées, lors d'installations/désinstallations successives de
structures de données.
Le procédé de gestion optimisée de l'allocation dynamique de mémoire, objet de l'invention, trouve application à tout système embarqué, mais de manière plus
particulière aux cartes à microprocesseur ou micro-
contrôleur multi-application.
Le procédé de gestion optimisée de l'allocation dynamique de mémoire d'un système embarqué et le système embarqué correspondant seront mieux compris à la lecture
de la description et à l'observations des dessins ci-
après dans lesquels, outre la figure 1 relative à un système embarqué, tel qu'une carte à puce, de l'art antérieur: - la figure 2a représente un organigramme fonctionnel illustratif des étapes permettant la mise en euvre du procédé de gestion optimisée de l'allocation de mémoire d'un système embarqué objet de la présente invention lors d'un processus d'installation d'une application; - la figure 2b représente, à titre illustratif, un organigramme représentatif du détail des étapes de mise en oeuvre du procédé de gestion optimisée de l'allocation de mémoire d'un système embarqué, objet de la présente invention, lors d'un processus d'effacement d'une application; - la figure 2c représente, à titre illustratif, un organigramme fonctionnel d'un mode opératoire particulier non limitatif d'allocation de blocs de mémoire élémentaires permettant la mise en oeuvre du procédé de gestion de l'allocation de mémoire d'un système embarqué, objet de la présente invention; - les figures 3a et 3b représentent, à titre illustratif, un mode de mise en ouvre préférentiel non limitatif du procédé de gestion de l'allocation de mémoire d'un système embarqué, objet de la présente invention, dans lequel un processus de réallocation de blocs de mémoire élémentaires déjà alloués est utilisé - la figure 4 représente, à titre illustratif, un système embarqué, tel qu'une carte à microprocesseur ou micro-contrôleur multi- application, comportant, mémorisées en mémoire non volatile, des structure de données auxquelles des blocs de mémoire élémentaires ont été alloués, grâce à la mise en oeuvre du procédé de gestion optimisée de l'allocation de mémoire d'un
système embarqué objet de la présente invention.
Une description plus détaillée du procédé de
gestion optimisée de l'allocation dynamique de mémoire à une structure de données, objet de la présente invention, sera maintenant donnée en liaison avec la figure 2a et
les figures suivantes.
La figure 2a représente un organigramme fonctionnel des étapes essentielles permettant la mise en oeuvre du procédé de gestion optimisée de l'allocation dynamique de mémoire à une structure de données dans un système embarqué, conformément à l'objet de la présente invention, lors de l'installation d'une application, cet organigramme fonctionnel correspondant en fait à un
diagramme d'état des étapes essentielles précitées.
En particulier, on comprend que l'étape S représentée en figure 2a correspond à un état de départ dans lequel une structure de données, constituée par une application, par des données système, le cas échéant par des clés ou des valeurs numériques spécifiques, doit être mémorisée, c'est-à-dire installée dans le cas d'applications par exemple dans la zone mémoire du système embarqué dont la structure correspond à celle
précédemment décrite dans la description en liaison avec
la figure 1.
En particulier, on comprend que chaque structure de données peut avantageusement être identifiée par un numéro d'identification, noté ID Aj o j peut prendre des valeurs comprises entre 1 et n, n indiquant le nombre total de structures de données susceptibles d'être
mémorisées dans l'espace mémoire précité.
En outre, pour la mise en oeuvre du procédé objet de la présente invention, on indique que l'espace mémoire géré de manière optimisée conformément à ce dernier est avantageusement subdivisé en blocs de mémoire élémentaires, chaque bloc de mémoire élémentaire, noté BL1 avec 1 pouvant varier de 1 = 1 à 1 = L, étant formé
par un nombre déterminé d'octets.
Dans un mode de réalisation préférentiel non limitatif, on indique que le nombre d'octets constitutifs de chaque bloc BL1 peut être une puissance de 2, afin de faciliter l'adressage de chaque bloc de mémoire élémentaire ainsi que l'adressage dans chaque bloc de
mémoire élémentaire ainsi défini.
Dans un mode de réalisation donné à titre d'exemple non limitatif, on indique que chaque bloc de mémoire élémentaire peut comporter 256 octets. Enfin, et dans le cadre de la mise en oeuvre du procédé objet de la présente invention, on dispose à l'étape S de départ d'une valeur numérique arbitraire, notée AAAA, laquelle peut être avantageusement utilisée afin de permettre la mise en oeuvre d'un procédé d'allocation dynamique de mémoire par blocs de mémoire élémentaires spécifique, plus particulièrement adapté à la mise en oeuvre du procédé de gestion optimisée de l'allocation dynamique de mémoire, objet de la présente invention, ainsi qu'il sera décrit ultérieurement dans la
description.
Sur la figure 2a, à l'étape de départ S précitée, on note: [ID_Aj] J l'ensemble des numéros d'identification de structures de données susceptibles d'être installées et gérées conformément au protocole de gestion optimisée d'allocation de mémoire objet de la présente invention; [BLL l'ensemble des blocs de mémoire élémentaires dont on dispose après subdivision de la zone mémoire du système embarqué précédemment cité; QCOjp tout paquet de code objet relatif à une structure de données ou application de numéro d'identification IDAj lors de la procédure d'installation de l'application considérée; QDjp tout paquet de données relatif à la structure de données ou application de même numéro d'identification IDAj au cours de l'installation. D'une manière générale, on indique que lors de l'installation d'une structure de données ou d'une application, les paquets d'information sont constitués par des paquets de code objet précités, représentatifs de cette structure de données, et par des paquets de données relatives à cette structure de données ou à l'application considérée. Cette subdivision en paquets d'information des deux catégories précitées résulte d'une discrimination de fait de ces paquets d'information en fonction de l'étape d'installation réalisée. On comprend en particulier que lors de l'installation du code objet représentatif de la structure de données ou de l'application, les paquets d'information correspondants sont connus en tant que tels. Il en est de même pour ce qui concerne les paquets de données relatives à cette structure de données ou application. Ainsi, la subdivision précitée résulte a priori du processus d'installation de chaque application
dans la zone mémoire du système embarqué correspondant.
Compte tenu de la subdivision de la zone mémoire précitée en blocs de mémoire élémentaires adressables et de la discrimination de fait, et donc de la subdivision des paquets d'information en paquets de code objet et en paquets de données relatives à cette structure de données, le procédé de gestion optimisée de l'allocation dynamique de mémoire à une structure de données, objet de la présente invention, consiste en une étape A1, ainsi que représenté en figure 2a, à allouer aux paquets de code objet QCOjp pour l'application ou la structure de données correspondante, un ensemble de blocs de mémoire élémentaires, noté [BL,] ces blocs de mémoire élémentaires étant localisés à des adresses sensiblement contiguës dans une première plage de mémoire dédiée à l'allocation de mémoire de paquets de code objet de la
zone mémoire considérée.
Sur la figure 2a, le processus d'allocation, à l'étape A1, aux paquets de code objet est noté:
[BL1]Q EMS1
Dans la relation précédente, on indique que MS1 désigne la première plage de mémoire dédiée à l'allocation de mémoire des paquets de code objet précités. En outre, et de manière non limitative, l'ensemble de blocs de mémoire élémentaires localisés à des adresses sensiblement contiguës dans la première plage de mémoire dédiée est réputé défini par l'adresse de départ 1=1 et par l'adresse d'arrivée QC, QC désignant en fait l'espace mémoire nécessaire en nombre de blocs de mémoire élémentaires pour assurer la mémorisation de l'ensemble des paquets d'informations de code objet QCOjp pour la
structure de données ou application correspondante.
En outre, le procédé de gestion optimisée de l'allocation dynamique de mémoire à une structure de données, objet de la présente invention, consiste, en une étape A2, à allouer aux paquets de données QDjp un autre ensemble de blocs de mémoire élémentaires, noté L [BL,]L-QD dans une deuxième plage de mémoire dédiée à Il l'allocation de mémoire de paquets de données de la zone
mémoire considérée.
Sur la figure 2a, à l'étape A2, l'opération d'allocation correspondante est notée selon la relation: L
[BL1] L-QDEMS2
En ce qui concerne l'ensemble de blocs de mémoire élémentaires dans la deuxième plage de mémoire dédiée à l'allocation de mémoire de paquets de données, l'adresse de départ est établie de manière non limitative à la valeur L-QD o QD désigne en fait l'espace mémoire nécessaire à la mémorisation de l'ensemble des paquets de données QDjp pour l'application ou la structure de
données correspondante.
En ce qui concerne les adresses de début et de fin de définition des ensembles de blocs de mémoire élémentaires précités à l'étape A1, respectivement A2, ces données peuvent être arbitraires, pourvu qu'aucun risque de recouvrement ne soit encouru en ce qui concerne
les ensembles précités.
En outre, ainsi que représenté en figure 2b, pour une opération d'effacement E des paquets de code QCOj, respectivement des paquets de données QDj précédemment mentionnés, le processus de gestion d'allocation de mémoire, objet de la présente invention, peut consister, ainsi que représenté sur la figure précitée, à partir d'une étape d'effacement d'une application ID_Ar, pour l'effacement de paquets de code objet QCOj, en une étape El, en une sous-étape d'effacement des blocs d'indice 1, cette sous-étape, portant la référence El,, étant désignée sur la figure 2b par la relation: E1l ([BL]) MSl et [BL1]=ID Ar
alors [BL1]≤AAAA.
Par cette opération d'effacement, on comprend que pour tout bloc soumis à effacement, bloc BL1 appartenant à la zone de mémorisation des paquets de code objet MSl, l'ensemble de ces blocs correspondant à l'application soumise à effacement, et donc à l'application référencée ID_Ar, alors, on attribue à chacun des blocs précités BL1 la référence spécifique AAAA précédemment mentionnée dans
la description.
La sous-étape 1 d'effacement est alors suivie d'une sous-étape 2 de translation de code El2. Cette opération de translation est effectuée pour 1o désignant le premier bloc de code de l'application référencée IDAr et lmax dernier bloc de code de cette même application
soumise à effacement.
L'opération de translation est alors effectuée sur chaque bloc d'indice lmax+j pour lesquels le numéro de référence est différent de AAAA, cette opération étant notée sur la figure 2b: [BL0+j] = [BLlmax+j]
[BLlmax+j] <>AAAA.
L'opération de translation précédente consiste en fait à réaliser une translation des blocs d'indice lmax+j vers les blocs d'indice 10+j suivie d'un effacement par attribution de la valeur d'identification AAAA des blocs
déplacés.
En ce qui concerne l'effacement des paquets de données QDj, une étape d'effacement E2 est représentée en figure 2b, cette opération étant notée, pour tout indice 1 des blocs BL1, avec [BL1] eMS2 et [BL1]=IDAr
alors [BL1]≤>AAAA.
On comprend ainsi qu'en tout bloc BL1 relatif aux paquets de données QDj est alors affecté la valeur d'identification AAAA précédemment mentionnée dans la
description, ce qui permet d'effectuer l'effacement des
paquets de données correspondant au bloc précité.
On constate en particulier que, pour l'effacement des paquets de données QDj,il n'est pas nécessaire
d'effectuer une translation des blocs effacés.
En ce qui concerne la mise en oeuvre du procédé de gestion optimisée de l'allocation dynamique de mémoire à une structure de données ou application, objet de la présente invention, on indique qu'il est nécessaire de disposer d'un système de gestion de la zone mémoire précitée permettant de savoir quelles parties de celle-ci sont libres ou utilisées. Bien entendu, un tel système peut consister en un système analogue à celui utilisé pour la gestion des disques durs des micro- ordinateurs, ce système étant connu sous le nom de système de table
d'allocation de fichier, encore désigné en vocable anglo-
saxon par File Allocation Table, ou FAT.
De préférence, mais de manière non limitative, la subdivision de la zone mémoire précitée en blocs adressables peut être réalisée de manière particulièrement avantageuse grâce à la mise en euvre d'un processus d'allocation de mémoire spécifique, lequel sera maintenant décrit de manière non limitative plus
détaillée en liaison avec la figure 2c.
Ainsi que représenté en figure 2c, on indique que le processus d'allocation dynamique de mémoire par blocs de mémoire élémentaires à une structure de données est mis en euvre à partir d'au moins une instruction d'allocation d'un bloc mémoire élémentaire BL1, opération d'allocation notée A par laquelle, au bloc mémoire élémentaire précité est associée une référence au numéro d'identification de la structure de données ou application considérée, et à partir d'au moins une instruction d'effacement d'un bloc de mémoire élémentaire, instruction correspondant à l'opération E
représentée sur la figure 2c.
En particulier, l'opération d'allocation A, pour allouer un bloc de mémoire élémentaire, consiste à attribuer à la référence au numéro d'identification associé au bloc de mémoire élémentaire considéré la
valeur du numéro d'identification IDAj.
Alors que dans les procédés d'allocation de mémoire des systèmes embarqués antérieurs, les zones de mémorisation des structures de données, telles que les applications, comportent une simple référence au numéro d'identification de la structure de données ou application correspondante réalisée sous forme d'un pointeur, pointeur de début de mémorisation de la structure de données ou application et pointeur de fin de mémorisation de la structure de données ou application considérée, l'étape d'allocation A conforme au processus d'allocation précité consiste en fait à attribuer à titre de référence au numéro d'identification de la structure de données ou application, la valeur du numéro d'identification précité à chaque bloc BL1 dans lequel les paquets d'information numérique de code objet ou de données sont mémorisés. On comprend en particulier, ainsi que représenté en figure 2c, que l'attribution de la valeur du numéro d'identification à la référence au numéro d'identification consiste à associer de manière bi-univoque la valeur de ce numéro d'identification au bloc de mémoire élémentaire correspondant BL1, cette opération étant notée: BL1(IDAj). On comprend ainsi que la mise en correspondance bi-univoque précitée peut être réalisée par association à chaque bloc BL1 d'un champ de données représentatif de la valeur du numéro d'identification précité IDAj dans un tableau de gestion de l'allocation dynamique de mémoire
de la zone mémoire du système embarqué précité.
La structure complète du tableau précité sera
donnée ultérieurement dans la description.
Conformément à un autre aspect remarquable du processus précité d'allocation dynamique de mémoire par blocs de mémoire élémentaires, on indique, en référence à la figure 2b, que l'étape d'effacement E consiste, pour effacer un bloc de mémoire élémentaire, à attribuer à la référence au numéro d'identification associée au bloc de mémoire élémentaire considéré BL1 une valeur arbitraire en lieu et place du numéro d'identification de la structure de données ou application considérée. Cette valeur arbitraire est bien entendu la valeur AAAA
précédemment citée dans la description. Cette valeur
arbitraire est distincte de toute valeur de numéro d'identification attribué à une structure de données considérée. En référence à la figure 2c, on note: [IDAr]n1 l'ensemble des numéros d'identification de structures de données déjà installées; ID_Ak le numéro d'identification de la structure de données ou application pour laquelle l'allocation mémoire doit être effectuée, k E [l,n]; Qk l'espace mémoire nécessaire aux paquets d'information numérique, paquets de code objet ou paquets de données auxquels un espace mémoire correspondant doit être alloué. Par ailleurs, on définit un indice r particulier, que
l'on note ro, à qui l'on donne la valeur 0.
Dans ces conditions, l'opération d'allocation A, ainsi que représenté en figure 2c, peut consister, pour allouer un bloc de mémoire élémentaire donné, noté BL1, au paquet d'information numérique Qk précité, et préalablement à toute étape consistant à attribuer à la référence au numéro d'identification la valeur du numéro d'identification, à vérifier, pour tout bloc de mémoire élémentaire déjà alloué, l'identité de la référence au numéro d'identification et du numéro d'identification de
la structure de données correspondante, en une étape AA1.
Cette vérification d'identité consiste à effectuer un test consistant à chercher le premier bloc de mémoire BL1 dont le numéro d'identification associé ID_Ar correspond au numéro d'identification IDAk de la structure de données ou application pour laquelle l'allocation doit
être effectuée.
Le test précité est noté: 3 BL (ID_Ar) avec ID_Ar = ID_Ak ? et r>r0 Sur réponse négative au test AA1, consistant à rechercher le prochain bloc appartenant à l'application dont le numéro d'identification est ID_Ak, une instruction d'allocation d'un bloc de mémoire élémentaire libre est appelé à l'étape AA3, aucun des éventuels blocs de mémoire déjà alloués à l'application dont le numéro d'identification est ID_Ak ne possédant un espace libre
suffisant pour contenir le paquet d'informations Qk.
Sur la figure 2c, l'appel de l'instruction d'allocation du bloc de mémoire élémentaire suivant est notée: BLa(AAAA) = BLa(ID_Ak) L'instruction d'allocation précitée du bloc élémentaire suivant permet ainsi d'allouer un bloc de mémoire élémentaire d'adresse a, a étant une valeur de décalage quelconque, da E N ensemble des entiers naturels. Le bloc de mémoire élémentaire retenu est bien entendu un bloc élémentaire auquel la valeur arbitraire AAAA a été attribuée précédemment et correspond de ce fait à un bloc effacé, c'est-à-dire à un bloc libre et prêt pour toute opération d'allocation et de mémorisation
du paquet d'information Qk correspondant.
La réponse positive au test AA1 indique que le bloc de mémoire élémentaire qui vient d'être trouvé est au moins partiellement alloué à la structure de données ou application pour laquelle l'allocation doit être effectuée. Sur réponse positive au test AA1 précité, le procédé d'allocation consiste ensuite à vérifier, en un test AA2, l'existence d'un espace mémoire suffisant restant dans le bloc de mémoire élémentaire courant BL,(IDAj) précité pour mémoriser l'information numérique
Qk précédemment mentionnée.
Sur la figure 2c, la vérification de l'existence d'un espace mémoire suffisant au test AA2 comprend la mise à la valeur r de l'indice particulier r0 et est notée: LRr = LBr - LOr et Qk < LRr ? relation dans laquelle LRr désigne l'espace mémoire restant pour le bloc de mémoire élémentaire courant, LBr désigne l'espace mémoire total de chaque bloc élémentaire courant, c'est-à-dire 256 octets dans le mode de réalisation précédemment indiqué, et LOt désigne l'espace mémoire occupé dans le bloc de mémoire élémentaire
courant précité.
Sur réponse positive au test de vérification AA2, le paquet d'informationQk nécessitant un espace mémoire inférieur à l'espace mémoire du bloc de mémoire élémentaire courant, au paquet d'information Qk peut être alloué, en une étape AA4, le bloc de mémoire élémentaire courant précité BLl(IDAr) , le paquet d'information numérique Qk pouvant être mémorisé dans la zone mémoire
libre du bloc de mémoire élémentaire courant précité.
Ainsi, l'étape d'allocation AA4 consiste en une écriture du paquet d'information Qk dans le bloc BL,(ID_Ar) et en une actualisation de la valeur de l'espace mémoire occupé dans le bloc, notée:
LOr = LOr+Qk.
Sur réponse négative au test de vérification AA2, le bloc courant BL(IDAjo) ne possédant pas assez d'espace libre pour contenir le paquet d'information Qk, il convient de retourner à l'étape AAl afin de rechercher un nouveau bloc dont le numéro d'identification est ID_Ak et n'ayant pas encore été analysé lors de cette
allocation.
Bien entendu, les étapes d'allocation proprement dites AA3 et AA4 sont suivies d'un retour à l'état de départ S. Dans un mode de réalisation préférentiel non limitatif, on indique que, suite aux étapes d'allocation AA3 et AA4, et donc suite à l'allocation d'un bloc de mémoire élémentaire à une application et bien entendu à la mémorisation par écriture de l'information numérique, c'est-à-dire du paquet d'information Qk par écriture de cette information dans le bloc de mémoire élémentaire alloué, le procédé d'allocation conforme à l'objet de la présente invention peut consister en outre à calculer, en une étape AA5 une valeur de vérification du bloc de mémoire élémentaire alloué, cette opération étant
désignée par calcul CKS sur la figure 2c.
D'une manière générale, on indique que pour la mise en oeuvre de l'étape AA5, le calcul de la valeur de vérification, encore désigné par check sum en langage anglo-saxon, peut être effectué grâce à des moyens de calcul de valeur de vérification de type classique, ces moyens de calcul pouvant d'ailleurs correspondre au circuit de calcul spécialisé 20 contenu dans les systèmes embarqués de type classique, ainsi que décrit
précédemment dans la description.
L'étape A55 peut permettre d'appeler une étape AA6 de gestion d'erreur de type classique permettant de souligner un problème d'intégrité des données ou de code mémorisés, pouvant prévoir le blocage du système embarqué. Le processus d'allocation dynamique de mémoire précédemment décrit en liaison avec la figure 2c peut être mis en ouvre de manière préférentielle pour procéder aux étapes d'allocation A1 et/ou A2 de la figure 2a ou 2b. Par la mise en oeuvre du procédé de gestion optimisée de l'allocation dynamique de mémoire à une structure de données ou application, conforme à l'objet de la présente invention, tel que décrit précédemment en liaison avec la figure 2a et le cas échéant 2c, on indique que le fait de mémoriser les paquets de code objet et les paquets de données relatifs à une application ou à une structure de données à des endroits différents permet d'éviter l'émiettement de la zone mémoire lors de l'installation d'applications. En effet, lors de l'installation proprement dite, il n'existe pas vraiment de phénomène d'émiettement ou de fragmentation pour les paquets de données de code, car les paquets de code correspondants sont stockés et mémorisés selon de gros blocs consécutifs, et ceci en une seule fois lors de l'installation. En ce qui concerne le risque d'émiettement ou de fragmentation des paquets de données, une structure de données, telle qu'une application, pouvant créer des données relatives à cette application ou à cette structure de données à n'importe quel instant et de manière beaucoup plus fréquente, celui-ci est toutefois beaucoup plus facile à contrôler du fait que les blocs de données n'ont pas à être stockés consécutivement. Il est donc tout à fait facile de réutiliser un bloc de mémoire élémentaire vide en mémorisant dans ce dernier des paquets de données relatifs à une application. Le fait de séparer les paquets de données des paquets de codes résout donc bien le problème de l'émiettement ou de la
fragmentation.
Toutefois, il apparaît tout de même des trous, c'est-à-dire des risques de blocs de mémoire élémentaires non occupés dans la première plage de mémoire dédiée à l'allocation de mémoire de paquets de code objet de la zone mémoire considérée. Ce risque apparaît lors de la
suppression d'une application par exemple.
Pour supprimer totalement ce risque, le procédé de gestion optimisée de l'allocation dynamique de mémoire à une structure de données, conforme à l'objet de la présente invention, met également en oeuvre un processus de défragmentation, lequel sera décrit en liaison avec
les figures 3a et 3b.
On comprend en effet que suite à la désinstallation d'une application, cette désinstallation se traduit par un effacement des blocs de mémoire élémentaires alloués à cette application désinstallée dans la première plage de mémoire dédiée à l'allocation
de mémoire de paquets de code objet.
Sur la figure 3a, on a représenté différentes applications, désignées successivement Applet 1,
Applet 2, Applet 3 et Applet 4.
Les différentes applications dans l'exemple donné correspondent aux valeurs numériques ci-après: Applet 1 150 octets de code, soit 1 bloc 600 octets de données, soit 3 blocs Applet 2 150 octets de code, soit 1 bloc octets de données, soit 1 bloc Applet 3 1100 octets de code, soit 5 blocs octets de données, soit 1 bloc Applet 4 400 octets de code, soit 2 blocs 300 octets de données, soit 2 blocs Les étapes successives d'installation/ désinstallation des applications précitées sont représentées en figure 3b et sont les suivantes: Etape 1
Installation de Applet 1 et installation de Applet 2.
Etape 2 Effacement de Applet 1 et réallocation des paquets de
code objet restants non désinstallés.
Etape 3
Installation de Applet 3.
Etape 4
Installation de Applet 4.
Sur la figure 3b, l'espace mémoire utilisable est réputé subdivisé en un ensemble de blocs de mémoire élémentaires, d'adresse comprise entre 1 et L, d'adresse
de début, respectivement de fin.
Les références lc, 2c, 3c et 4c désignent les blocs de mémoire élémentaires alloués aux paquets de code objet des applications Applet 1, Applet 2, Applet 3 et Applet 4 respectivement et les blocs de mémoire élémentaires ld, 2d, 3d et 4d désignent les blocs de mémoire élémentaires alloués aux paquets de données
relatives à ces mêmes applications.
La réallocation au paquet de code objet restant, c'est-à-dire le paquet 2c suite à l'effacement de l'application Applet 1 à l'étape 2, l'application Applet 2 n'étant pas désinstallée, consiste en fait à réallouer par réarrangement les blocs de mémoire élémentaires alloués au paquet de code objet restant précité. Ainsi, le réarrangement du bloc de mémoire élémentaire occupé par le code objet 2c sur la figure 3b est représenté par la translation T de ce dernier pour passage au bloc de mémoire élémentaire d'adresse de début
1 en fin d'étape 2.
Ainsi, la réallocation précitée par réarrangement, et en particulier par translation, permet le réarrangement de tout ensemble de blocs de mémoire élémentaires localisé à des adresses sensiblement contiguës pour combler les blocs de mémoire élémentaires effacés alloués antérieurement à l'application désinstallée. D'une manière générale, ainsi que représenté en figure 3b, la zone mémoire du système embarqué, zone mémoire programmable non volatile, est de préférence adressée selon un champ d'adresses linéaire comportant une adresse de début et une adresse de fin de zone mémoire, ces adresses constituant chacune une adresse d'extrémité. Ces adresses sont notées 1 et L sur la
figure 3b.
Dans ces conditions, la définition de la première, respectivement de la deuxième plage de mémoire dédiée et l'allocation des paquets de données peuvent être effectuées à partir de l'une, respectivement de l'autre des adresses d'extrémité, ou réciproquement. On comprend bien entendu que le choix de l'adresse de début 1, respectivement de l'adresse de fin L pour assurer l'allocation des blocs de mémoire élémentaires aux paquets de code objet est sans incidence sur la mise en
oeuvre du procédé objet de la présente invention.
On comprend également qu'en fonction du nombre d'applications installées, la définition explicite de chacune des première et deuxième plages de mémoire dédiées à l'allocation de mémoire de paquets de code
objet ou de paquets de données n'est pas nécessaire.
En particulier, ce mode opératoire permet d'optimiser l'occupation de la zone mémoire précitée en l'absence de toute définition explicite de la première et
de la deuxième plage de mémoire dédiée.
Pour assurer un processus de réallocation des blocs de mémoire élémentaires particulièrement aisé, on indique que l'adressage du contenu des blocs de mémoire élémentaires, pour les opérations d'allocation, de réallocation et d'adressage pour la définition de la première et de la deuxième plage de mémoire, est un adressage relatif. Dans ces conditions, l'adressage relatif, dans chaque bloc de mémoire élémentaire, permet sans difficulté le réarrangement des blocs précités par translation d'un nombre voulu de blocs de mémoire élémentaires libérés suite à la déclaration de blocs élémentaires antérieurs et/ou postérieurs comme blocs
libres ou effacés.
Le fait d'assurer l'allocation des blocs de mémoire élémentaires à partir des adresses d'extrémité,
ainsi que mentionné précédemment dans la description,
permet d'utiliser l'espace mémoire libre dans les meilleures conditions en l'absence de tout a priori sur la taille du code et des données relatives aux applications. La seule contrainte à respecter est l'absence de recouvrement de la première, respectivement
de la deuxième plage mémoire dédiée.
Une description plus détaillée d'un système
embarqué multi-application spécialement adapté à la mise en euvre du procédé de gestion optimisée de l'allocation mémoire à une structure de données, conforme à l'objet de la présente invention, sera maintenant donnée en liaison
avec la figure 4.
D'une manière générale, on rappelle que le système embarqué précité comporte un système d'exploitation assurant la gestion des circuits d'entrée/sortie de la mémoire vive et de la mémoire programmable non volatile de ce système d'exploitation
par l'intermédiaire du microprocesseur.
Ainsi que représenté sur la figure 4 précitée, le système embarqué comprend, dans la zone mémoire programmable non volatile 18a, un tableau de gestion, noté TG, et d'allocation de la zone mémoire par blocs de
mémoire élémentaires.
Ainsi que mentionné précédemment, ce tableau de gestion TG peut correspondre soit à un fichier de type FAT, soit, au contraire, ainsi que représenté de manière non limitative sur la figure 4, en un tableau comportant pour chaque application ou structure de données, un numéro d'identification IDAk, la valeur de l'espace mémoire occupé noté LIk pour le bloc de mémoire élémentaire correspondant et les valeurs de vérification CKSIa et CKSlb pour le bloc de mémoire élémentaire
précité.
Sur la figure 4, on a représenté uniquement les
champs de données correspondantes pour k=l et k=2, c'est-
à-dire pour des blocs relatifs à deux applications distinctes. En particulier, le tableau de gestion TG précité permet d'assurer le processus d'allocation tel que représenté en figure 2c et bien entendu le processus de gestion optimisée de l'allocation dynamique de mémoire
conforme à l'objet de la présente invention.
Dans ces conditions, la mémoire programmable non volatile 18a peut comporter, à titre d'exemple, les blocs de mémoire élémentaires alloués aux paquets de code objet, respectivement aux paquets de données, selon l'arrangement représenté en figure 4 pour les applications Applet 3, Applet 2 et Applet 4 précédemment
mentionnées dans la description après la réalisation de
l'étape 4 de la figure 3b.
Dans ces conditions, la mémoire programmable non volatile 18a comprend les paquets de code objet représentatifs d'un ensemble d'applications, ces paquets de code objet étant mémorisés dans un ensemble de blocs de mémoire élémentaires localisés à des adresses sensiblement contiguës dans la première plage de mémoire P1 ainsi que des paquets de données relatives à chaque application, ces paquets de données étant mémorisés dans un autre ensemble de blocs de mémoire élémentaires dans une deuxième plage de mémoire P2 dédiée à l'allocation de
mémoire des paquets de données.
En référence à la figure 4, on note également que, pour une zone mémoire programmable non volatile adressée selon un champ d'adresses linéaire comportant une adresse de début 1 et une adresse de fin L, constituant en fait les adresses d'extrémité précitées, la définition de la première MS1 et de la deuxième MS2 plage de mémoire dédiée est alors effectuée à partir des adresses d'extrémité précitées, la première et la deuxième plage de mémoire MS1, MS2 dédiées étant alors définies selon un premier et un deuxième ensemble disjoints de blocs de mémoire élémentaires, la zone mémoire étant ainsi optimisée du point de vue de
l'occupation de celle-ci.

Claims (7)

REVENDICATIONS
1. Procédé de gestion optimisée de l'allocation dynamique de mémoire à une structure de données, identifiée par un numéro d'identification et mémorisée sous forme de paquets d'information numérique dans la zone mémoire d'un système embarqué, caractérisé en ce que lesdits paquets d'information étant constitués par des paquets de code objet, représentatifs de cette structure de données, et par des paquets de données relatives à cette structure de données et ladite zone mémoire étant subdivisée en blocs de mémoire élémentaires adressables, ce procédé comprend les étapes consistant: - à allouer auxdits paquets de code objet un ensemble de blocs de mémoire élémentaires localisés à des adresses sensiblement contiguës dans une première plage de mémoire dédiée à l'allocation de mémoire de paquets de code objet de ladite zone mémoire; à allouer auxdits paquets de données un autre ensemble de blocs de mémoire élémentaires dans une deuxième plage de mémoire dédiée à l'allocation de mémoire de paquets de données de ladite zone mémoire, ce qui permet d'éviter la fragmentation desdites première et deuxième plages dédiées lors d'installations/
désinstallations successives de structures de données.
2. Procédé selon la revendication 1, caractérisé en ce que, suite à la désinstallation d'une application, cette désinstallation se traduisant par un effacement des blocs de mémoire élémentaires alloués à ladite application désinstallée dans ladite première plage de mémoire dédiée à l'allocation de mémoire de paquets de code objet, celui-ci comprend une étape consistant à effectuer une réallocation par translation auxdits paquets de code objet restants, non désinstallés, d'un ensemble de blocs de mémoire élémentaires localisés à des adresses sensiblement contiguës pour combler les blocs de mémoire élémentaires effacés antérieurement alloués à ladite application désinstallée.
3. Procédé selon la revendication 1, caractérisé en ce que, pour une zone mémoire adressée selon un champ d'adresses linéaire comportant une adresse de début et une adresse de fin de zone mémoire constituant chacune une adresse d'extrémité, la définition de la première respectivement de la deuxième plage de mémoire dédiée et l'allocation des paquets de code objet respectivement des paquets de données sont effectuées à partir de l'une respectivement de l'autre des adresses d'extrémité, ou réciproquement, ce qui permet d'optimiser l'occupation de
ladite zone mémoire.
4. Procédé selon la revendication 3, caractérisé en ce que l'adressage du contenu desdits blocs de mémoire élémentaires pour les opérations d'allocation et de réallocation destinées au moins aux paquets de code objet et d'adressage pour la définition de la première et de la
deuxième plage de mémoire est un adressage relatif.
5. Système embarqué multi-application comportant un système d'exploitation assurant la gestion des circuits d'entrée/sortie, de la mémoire vive et de la mémoire programmable non volatile de ce système d'exploitation par l'intermédiaire d'un microprocesseur, caractérisé en ce qu'il comprend, mémorisé en zone mémoire programmable non volatile, un tableau de gestion et d'allocation de la zone mémoire par blocs de mémoire élémentaires.
6. Système selon la revendication 5, caractérisé en ce qu'il comprend en outre, mémorisés en zone mémoire programmable non volatile: - des paquets de code objet, représentatifs d'un ensemble d'applications, ces paquets de code objet étant mémorisés dans un ensemble de blocs de mémoire élémentaires localisés à des adresses sensiblement contiguës dans une première plage de mémoire, dédiée à l'allocation de mémoire à des paquets de code objet, de ladite zone mémoire programmable non volatile; - des paquets de données relatifs à chaque application, ces paquets de données étant mémorisés dans un autre ensemble de blocs de mémoire élémentaires dans une deuxième plage de mémoire, dédiée à l'allocation de mémoire à des paquets de données, de ladite zone
mémoire programmable non volatile.
7. Système selon la revendication 6, caractérisé en ce que, pour une zone mémoire programmable non volatile adressée selon un champ d'adresses linéaire comportant une adresse de début et une adresse de fin de zone mémoire programmable non volatile, constituant chacune une adresse d'extrémité, la définition de la première respectivement de la deuxième plage de mémoire dédiée est effectuée à partir de l'une, respectivement de l'autre des adresses d'extrémité, ou réciproquement, ce qui permet de définir la première respectivement la deuxième plage de mémoire dédiée selon un premier et un deuxième ensemble disjoints de blocs de mémoire élémentaires et d'optimiser l'occupation de ladite zone
mémoire programmable non volatile.
FR0016725A 2000-12-21 2000-12-21 Procede de gestion optimisee de l'allocation de memoire d'un systeme embarque et systeme embarque correspondant Pending FR2818770A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR0016725A FR2818770A1 (fr) 2000-12-21 2000-12-21 Procede de gestion optimisee de l'allocation de memoire d'un systeme embarque et systeme embarque correspondant
AU2002228114A AU2002228114A1 (en) 2000-12-21 2001-12-20 Optimised management method for allocating memory workspace of an onboard systemand corresponding onboard system
PCT/FR2001/004122 WO2002050688A1 (fr) 2000-12-21 2001-12-20 Procede de gestion optimisee de l'allocation de memoire d'un systeme embarque et systeme embarque correspondant
US10/472,323 US7093096B2 (en) 2000-12-21 2001-12-20 Optimised management method for allocating memory workspace of an onboard system and corresponding onboard system
EP01989649A EP1346286A1 (fr) 2000-12-21 2001-12-20 Procede de gestion optimisee de l'allocation de memoire d'un systeme embarque et systeme embarque correspondant

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0016725A FR2818770A1 (fr) 2000-12-21 2000-12-21 Procede de gestion optimisee de l'allocation de memoire d'un systeme embarque et systeme embarque correspondant

Publications (1)

Publication Number Publication Date
FR2818770A1 true FR2818770A1 (fr) 2002-06-28

Family

ID=8857970

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0016725A Pending FR2818770A1 (fr) 2000-12-21 2000-12-21 Procede de gestion optimisee de l'allocation de memoire d'un systeme embarque et systeme embarque correspondant

Country Status (5)

Country Link
US (1) US7093096B2 (fr)
EP (1) EP1346286A1 (fr)
AU (1) AU2002228114A1 (fr)
FR (1) FR2818770A1 (fr)
WO (1) WO2002050688A1 (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7856523B2 (en) * 2005-06-01 2010-12-21 Microsoft Corporation Random Access Memory (RAM) based Content Addressable Memory (CAM) management
US7793040B2 (en) * 2005-06-01 2010-09-07 Microsoft Corporation Content addressable memory architecture
US20080046724A1 (en) * 2006-07-25 2008-02-21 General Dynamics C4 System, Inc. Method for governing interaction between code within a code base
US8438365B2 (en) * 2006-10-06 2013-05-07 Calos Fund Limited Liability Company Efficient data loading in a data-parallel processor
SE531837C2 (sv) 2007-12-05 2009-08-25 Oricane Ab Förfarande och datorprogramprodukt
US8122219B2 (en) * 2009-07-22 2012-02-21 International Business Machines Corporation Storage allocation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3924245A (en) * 1973-07-18 1975-12-02 Int Computers Ltd Stack mechanism for a data processor
EP0884681A2 (fr) * 1997-06-10 1998-12-16 Sanyo Electric Co., Ltd. Caméra numérique
US5946714A (en) * 1996-10-21 1999-08-31 Mitsubishi Denki Kabushiki Kaisha Semiconductor storage device utilizing address management tables and table state maps for managing data storage and retrieval
WO1999054824A1 (fr) * 1998-04-21 1999-10-28 Intel Corporation Attribution dynamique, aux fins de gestion efficace, de donnees de dimensions variables dans une memoire non volatile

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4044334A (en) * 1975-06-19 1977-08-23 Honeywell Information Systems, Inc. Database instruction unload
AU9176698A (en) * 1997-09-25 1999-04-12 British Telecommunications Public Limited Company Memory allocation
CA2267484C (fr) * 1999-03-30 2002-03-05 Object Technology International Inc. Recuperation de memoire d'applications supprimees
US6546477B1 (en) * 1999-09-20 2003-04-08 Texas Instruments Incorporated Memory management in embedded systems with dynamic object instantiation
FR2818771A1 (fr) * 2000-12-21 2002-06-28 Bull Cp8 Procede d'allocation dynamique de memoire par blocs de memoire elementaires a une structure de donnees, et systeme embarque correspondant
US7185167B2 (en) * 2003-06-06 2007-02-27 Microsoft Corporation Heap allocation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3924245A (en) * 1973-07-18 1975-12-02 Int Computers Ltd Stack mechanism for a data processor
US5946714A (en) * 1996-10-21 1999-08-31 Mitsubishi Denki Kabushiki Kaisha Semiconductor storage device utilizing address management tables and table state maps for managing data storage and retrieval
EP0884681A2 (fr) * 1997-06-10 1998-12-16 Sanyo Electric Co., Ltd. Caméra numérique
WO1999054824A1 (fr) * 1998-04-21 1999-10-28 Intel Corporation Attribution dynamique, aux fins de gestion efficace, de donnees de dimensions variables dans une memoire non volatile

Also Published As

Publication number Publication date
AU2002228114A1 (en) 2002-07-01
US7093096B2 (en) 2006-08-15
US20040098554A1 (en) 2004-05-20
EP1346286A1 (fr) 2003-09-24
WO2002050688A1 (fr) 2002-06-27

Similar Documents

Publication Publication Date Title
EP1151384B1 (fr) Systeme de memorisation comprenant des moyens de gestion d&#39;une memoire avec anti-usure et procede de gestion anti- usure d&#39;une memoire
CA2317950C (fr) Procede de compactage d&#39;un programme de type code objet intermediaire executable dans un systeme embarque muni de ressources de traitement de donnees, systeme compacteur et systeme embarque multi-applications correspondants
EP1918822A1 (fr) Système et procédé d&#39;indexation de mémoire
FR2828294A1 (fr) Procede pour generer une image en memoire morte
FR2671223A1 (fr) Memoire semiconductrice remanente pour ordinateur personnel.
FR2652926A1 (fr) Procede d&#39;exploitation de la memoire dans un systeme informatique du type a adressage virtuel et dispositif pour la mise en óoeuvre dudit procede.
FR2880444A1 (fr) Dispositif de stockage de donnees
EP1335287B1 (fr) Procédé de mise à jour automatique d&#39;un chemin d&#39;accès au disque système d&#39;un périmètre matériel de ressources informatiques, système pour exécuter ce procédé et mémoire utilisée dans ce système
FR3055992A1 (fr) Gestion d&#39;index dans une memoire flash
FR2818770A1 (fr) Procede de gestion optimisee de l&#39;allocation de memoire d&#39;un systeme embarque et systeme embarque correspondant
EP1346287B1 (fr) Procede d&#39;allocation dynamique de memoire par blocs de memoire elementaires a une structure de donnees, et systeme embarque correspondant
EP0228329A1 (fr) Dispositif électronique formant mémoire stable rapide perfectionnée
EP1388134A1 (fr) Procede et systeme de gestion de donnes destinees a etre stockees dans une carte a puce programmable
FR2835628A1 (fr) Gestion de la mise a jour d&#39;informations encodees en memoire
EP2530586B1 (fr) Procédé de génération d&#39;un logiciel
EP2901291B1 (fr) Procédé de gestion des ressources mémoire d&#39;un dispositif de sécurité, tel qu&#39;une carte à puce, et dispositif de sécurité mettant en oeuvre ledit procédé.
EP1217525A1 (fr) Procédé de gestion de mémoire
EP3392768A1 (fr) Procédé et dispositif électronique de vérification d&#39;une configuration de partitionnement, programme d&#39;ordinateur associé
EP1449090B1 (fr) Architecture d&#39;un circuit integre pour carte a puce et procede d&#39;allocation memoire associe
FR2771531A1 (fr) Procede, dispositif, systeme en reseau et support d&#39;informations codees, automatiques de configuration securisee, de memorisation/acces et de calcul de cout d&#39;applications
FR2799046A1 (fr) Procede pour l&#39;ecriture aleatoire de secteurs d&#39;une taille inferieure a celle d&#39;un bloc d&#39;effacement dans une memoire effacable par bloc pour laquelle toute ecriture d&#39;une donnee necessite l&#39;effacement du bloc qui contient ladite donnee
WO2006063911A1 (fr) Procede de positionnement de donnees elementaires d&#39;une structure de donnees dans une memoire
FR2935502A1 (fr) Procede d&#39;optimisation de la duree de vie d&#39;une memoire non volatile reinscriptible.
FR2830667A1 (fr) Procede de determination d&#39;une zone stable dans une memoire et dispositif de gestion d&#39;une memoire associe
EP0078229A1 (fr) Ensemble de gestion de la mémoire d&#39;un processeur

Legal Events

Date Code Title Description
CA Change of address
TP Transmission of property