Brevet FR3045182A1 (20170616)
REVENDICATIONS1. Procédé de gestion d'espace mémoire, comprenant en réponse à une demande d'allocation (DA) d'un espace mémoire virtuel ayant une taille mémoire donnée au sein d'une mémoire virtuelle (MV), ladite mémoire virtuelle (MV) étant partitionnée en partitions virtuelles (PV), chaque partition (PV,) étant subdivisée en sous- partitions virtuelles (SPV,), chaque sous-partition (SPV,) correspondant à une combinaison de plusieurs secteurs (SMPk) de tailles identiques ou différentes d'une mémoire physique (MP), a) une sélection d'une partition (PV,) libre, b) une sélection d'une sous-partition virtuelle (SPV,) correspondant à une combinaison de secteurs (SMPk) ayant une taille totale minimale couvrant ladite taille mémoire donnée de l'espace mémoire virtuel à allouer, c) une sélection de secteurs (SMPk) libres de la mémoire physique (MP) correspondant à ladite combinaison sélectionnée, d) une détermination d'une table de correspondance (TC) entre la partition virtuelle (PV,) sélectionnée et les adresses physiques initiales (API) desdits secteurs (SMPk) libres sélectionnés, et e) une génération d'une adresse virtuelle (AV) comportant une première partie (P1) permettant d'identifier ladite sous-partition virtuelle (SPV,) sélectionnée et une deuxième partie (P2) destinée à contenir les différentes adresses dudit espace mémoire virtuel alloué au sein de ladite sous-partition virtuelle (SPV,).\n<CLM>\1\tProcédé selon la revendication 1, dans lequel la première partie (P1) comporte une première sous-partie (SPI) permettant d'identifier ladite partition (PV,) libre et une deuxième sous-partie (SP2) permettant d'identifier la sous-partition (SPV,) sélectionnée au sein de ladite partition (PV,) libre.\n<CLM>\1\tProcédé selon la revendication 2, dans lequel les tailles des secteurs sont choisies dans un jeu de tailles de référence (JTR) rangées selon un ordre de tailles connu, la combinaison de secteurs (SMPk) d'une sous-partition (SPV ) correspond à une association d'un premier 3045182 22 nombre (N1) de secteurs (SMPk) d'une première taille (T1) dudit jeu (JTR) et éventuellement d'au moins un deuxième nombre (N2) de secteurs (SMPk) d'une deuxième taille (T2) dudit jeu (JTR) immédiatement adjacente à la première taille (Ti) dans l'ordre de 5 tailles, la deuxième sous-partie (SP2) comporte un premier champ (C1) destiné à identifier ledit premier nombre (N1) et éventuellement au moins ledit deuxième nombre (N2), et un deuxième champ (C2) destiné à identifier ladite première taille (T1) et éventuellement au moins ladite deuxième taille (T2). 10\n<CLM>\1\tProcédé selon la revendication 3, comprenant en outre, après l'étape c), au moins une itération de l'étape b) de façon à déterminer au moins une sous-partition ajustée (SPVAi) correspondant à au moins une combinaison ajustée (CAi) ayant le deuxième champ (C2) rectifié par rapport à celui (C2) de ladite combinaison 15 sélectionnée (CS) et le premier champ (C1) rectifié lorsqu'il n'y a pas assez de secteurs (SMPk) libres de la taille la plus petite parmi ladite première taille (T1) et éventuellement au moins ladite deuxième taille (T2), et au moins une itération de l'étape c) pour sélectionner des secteurs (SMPk) libres correspondant à ladite combinaison ajustée 20 (CA,).\n<CLM>\1\tProcédé selon l'une quelconque des revendications précédentes, dans lequel la table de correspondance (TC) comporte pour chaque partition virtuelle (PV,) plusieurs index de secteurs (ISO à IS7), chaque index de secteur (IS) étant destiné à être rempli avec 25 l'adresse physique initiale (API) d'un des secteurs (SMPk) libres sélectionnés.\n<CLM>\1\tProcédé selon la revendication 5, dans lequel les index de secteurs (IS) sont remplis prioritairement avec les adresses physiques initiales (API) des secteurs (SMPk) libres sélectionnés ayant l'une des 30 tailles dudit jeu de tailles (JTR).\n<CLM>\1\tProcédé selon l'une quelconque des revendications 3 à 6, dans lequel ladite deuxième partie (P2) de l'adresse virtuelle (AV) générée comporte plusieurs champs d'index (CI4, CI32, CI256 et CI2048) correspondant chacun à un index de secteurs (IS) dédié à des 3045182 23 secteurs (SMPk) d'une taille différente dudit jeu (JTR) de tailles de référence.\n<CLM>\1\tProcédé selon la revendication 7 comprenant en outre une génération, à partir desdits champs d'index (CI4, CI32, CI256 et 5 CI2048) et de ladite deuxième sous-partie (SP2), d'un premier paramètre de secteur (PSI) et d'au moins un deuxième paramètre de secteur (PS2).\n<CLM>\1\tProcédé selon la revendication 8 comprenant en outre au sein de ladite table de correspondance (TC) une désignation d'un des 10 index de secteurs (IS1) correspondant à la partition virtuelle (PV,) sélectionnée à partir de ladite première sous-partie (SPI), dudit premier paramètre (PS1) et d'une adresse de base (AB) indiquant l'adresse de début de ladite table de correspondance (TC).\n<CLM>\1\tProcédé selon la revendication 9 comprenant en outre au 15 sein dudit secteur physique (SP) sélectionné dont l'adresse physique initiale (API) est stockée dans ledit index de secteurs (IS1) une désignation d'une adresse physique absolue (APA) correspondant à ladite adresse virtuelle (AV) à partir dudit deuxième paramètre (PS2) et de ladite adresse physique initiale (API). 20\n<CLM>\1\tDispositif de gestion d'espace mémoire, comprenant : une mémoire virtuelle (MV) partitionnée en partitions virtuelles (PVI), chaque partition (PV,) étant subdivisée en sous-partitions virtuelles (SPV,), une mémoire physique (MP) comportant plusieurs secteurs (SMPk), chaque sous-partition (SPV,) correspondant 25 à une combinaison de plusieurs secteurs (SMPk) de tailles identiques ou différentes, et des moyens de traitement (MT) configurés pour effectuer a) une sélection d'une partition (PV,) libre, b) une sélection d'une sous-partition virtuelle (SPV,) 30 correspondant à une combinaison (CS) de secteurs (SMPk) ayant une taille totale minimale couvrant ladite taille mémoire donnée de l'espace mémoire virtuel à allouer, c) une sélection de secteurs (SMPk) libres de la mémoire physique (MP) correspondant à ladite combinaison sélectionnée (CS), 3045182 24 d) une détermination d'une table de correspondance (TC) entre la partition virtuelle (PV,) sélectionnée et les adresses physiques initiales (API) desdits secteurs (SMPk) libres sélectionnés, et e) une génération d'une adresse virtuelle (AV) comportant une 5 première partie (P1) permettant d'identifier ladite sous-partition virtuelle (SPV,) sélectionnée et une deuxième partie (P2) destinée à contenir les différentes adresses dudit espace mémoire virtuel alloué au sein de ladite sous-partition virtuelle (SPV,).\n<CLM>\1\tDispositif selon la revendication 11, dans lequel la 10 première partie (P1) comporte une première sous-partie (SPI) permettant d'identifier ladite partition (PV,) libre et une deuxième sous-partie (SP2) permettant d'identifier la sous-partition (SPV,) sélectionnée au sein de ladite partition (PV,) libre.\n<CLM>\1\tDispositif selon la revendication 12, dans lequel les moyens 15 de traitement (MT) sont configurés pour choisir les tailles des secteurs dans un jeu de tailles de référence (JTR) rangées selon un ordre de tailles connu, la combinaison de secteurs d'une sous-partition (SPV,) correspondant à une association d'un premier nombre (N1) de secteurs (SMPk) d'une première taille (T1) dudit jeu (JTR) et éventuellement 20 d'au moins un deuxième nombre (N2) de secteurs (SMPk) d'une deuxième taille (T2) dudit jeu (JTR) immédiatement adjacente à la première taille (Ti) dans l'ordre de tailles, la deuxième sous-partie (SP2) comportant un premier champ (C1) destiné à identifier ledit premier nombre (N1) et éventuellement au moins ledit deuxième 25 nombre (N2), et un deuxième champ (C2) destiné à identifier ladite première taille (T1) et éventuellement au moins ladite deuxième taille (T2).\n<CLM>\1\tDispositif selon la revendication 13, dans lequel les moyens de traitement (MT) sont en outre configurés pour déterminer au moins 30 une sous-partition ajustée (SPVA1) correspondant à au moins une combinaison ajustée (CA1) ayant le deuxième champ (C2) rectifié et le premier champ (C1) rectifié lorsqu'il n'y a pas assez de secteurs (SMPk) libres de la taille la plus petite entre ladite première taille (T1) et éventuellement au moins ladite deuxième taille (T2), et les moyens 3045182 25 de traitement (MT) étant en outre configurés pour sélectionner des secteurs (SMPk) libres correspondant à ladite combinaison ajustée (CA,)\n<CLM>\1\tDispositif selon l'une quelconque des revendications 11 à 5 14, dans lequel la table de correspondance (TC) est incorporée dans la mémoire physique (MP) et comporte pour chaque partition virtuelle (PV,) plusieurs index de secteurs (ISO à IS7) destinés à être remplis chacun avec l'adresse physique initiale (API) d'un des secteurs (SMPk) libres sélectionnés. 10\n<CLM>\1\tDispositif selon l'une quelconque des revendications 11 à 15, dans lequel les index de secteurs (ISO à IS7) sont remplis prioritairement avec les adresses physiques initiales (API) des secteurs (SMP) libres sélectionnés ayant l'une des tailles dudit jeu de tailles (JTR). 15\n<CLM>\1\tDispositif selon l'une quelconque des revendications 11 à 16, dans lequel chaque adresse de ladite deuxième partie (P2) comporte plusieurs champs d'index (CI4, CI32, CI256 et CI2048) correspondant chacun à un index de secteurs (IS) dédié à des secteurs (SMPk) d'une taille différente dudit jeu (JTR). 20\n<CLM>\1\tDispositif selon la revendication 20, dans lequel les moyens de traitement (MT) sont en outre configurés pour générer à partir desdits champs d'index (CI4, CI32, CI256 et CI2048) et de ladite deuxième sous-partie (SP2) un premier paramètre de secteur (PSI) et d'au moins un deuxième paramètre de secteur (PS2). 25\n<CLM>\1\tDispositif selon la revendication 18, dans lequel la mémoire physique (MP) comporte en outre une adresse de base (AB) indiquant l'adresse de début de ladite table de correspondance (TC), les moyens de traitement (MT) étant par ailleurs configurés pour désigner au sein de ladite table de correspondance (TC) un des index de secteurs (IS1) 30 correspondant à la partition virtuelle (PV,) sélectionnée à partir de ladite première sous-partie (SPI), dudit premier paramètre (PSI) et de ladite adresse de base (AB).\n<CLM>\1\tDispositif selon la revendication 19, les moyens de traitements (MT) sont par ailleurs configurés pour désigner au sein 3045182 26 dudit secteur (SMPk) sélectionné dont l'adresse physique initiale (API) est stockée dans ledit index de secteurs (IS1) l'adresse physique absolue (APA) correspondant à ladite adresse virtuelle (AV) à partir dudit deuxième paramètre (PS2) et de l'adresse physique initiale 5 (API).