Brevet FR2618235A1 — publié le 19890120

"Unité de gestion d'accès en mémoire, notamment pour la gestion de bases de données". Le domaine de l'invention est celui des unités de gestion d'accès en mémoire, du type destinées à être interposées entre l'unité centrale et les unités de mémorisation d'un ordinateur, notamment pour la gestion de bases de données. Une MMU (unité de gestion mémoire ou UGM) est un circuit qui fait correspondre une adresse physique à une adresse logique dans une architecture de mémoire virtuelle. On connaît déjà un type de MMU réalisant cette correspondance à l'aide d'une mémoire associative (cf Fairchild "The Clipper Microprocessor : User's Manual" (le microprocesseur Clipper : Manuel de l'utilisateur), Addison Welsey, 1987). Cependant la capacité de ces mémoires ne permet de connaître l'adresse physique que pour un petit nombre d'adresses logiques de page, quelques centaines actuellement. Dans les applications classiques il peut s'agir d'adresses de pages en nombre suffisant pour gérer un espace virtuel acceptable. Il n'en est pas de même pour les applications de bases de données, où il est maintenant nécessaire de gérer avec peu de localité un grand nombre d'objets dispersés dans une grande mémoire.Ce problème devient critique lorsque les données sont traitées par un processeur général à hautes performances, ou plus encore par un processeur spécialisé efficace. On connaît également des mémoires virtuelles fonctionnant avec hachage de l'adresse logique source. Une illustration de ce principe peut être trouvée dans le brevet américain US 4 356 549 (CHUEH) délivré le 26 octobre 1982. Les MMU de ce type établissent une relation surjective entre les adresses logiques sources, et les adresses physiques montées dans la memoire cache, du fait de l'opération de hachage. Elles supposent donc qu'il existe d'une part une gestion de collision, permettant de vérifier que l'enregistrement sélectionné en mémoire cache à partir de l'adresse logique hachée correspond bien à l'enregistrement cherché, et d'autre part, dans le cas contraire, la possibilité de faire monter la donnée recherchée dans un espace de débordement de la mémoire cache. Ce principe est tout à fait inadapté à la gestion des mémoires de gros volume, tel que les mémoires de bases de données, qui requièrent un simple calcul d'adresse. En conséquence, l'invention a pour objet de fournir une unité de gestion d'accès en mémoire adaptée à des bases de données requérant de grands volumes de mémoire. Un objet complémentaire de l'invention est de fournir une telle unité de gestion mémoire susceptible de travailler à une vitesse compatible avec la vitesse de réalisation des traitements de gros volumes de données accédées. Un autre objet de l'invention est de fournir une unité de gestion d'accès en mémoire consistant en une mémoire cache de stockage temporaire de tables d'adresses indirectes (indirections), permettant de manipuler un adressage logique des données invariant, malgré les modifications qui peuvent être apportées aux données, et à leur adresse physique en mémoire. En d'autres termes, l'invention a pour objet de rendre l'adresse logique d'un enregistrement invariante quelles que soient les modifications apportées aux autres enregistrements Un objectif supplémentaire de l'invention est de fournir une unité de gestion d'accès mémoire comportant un système de gestion des conflits, lors de demandes d'accès à un même objet émanant de plusieurs transactions. Ces objectifs ainsi que d'autres qui apparaîtront par la suite sont atteints à l'aide d'une unité de gestion d'accès en mémoire, du type destinée à être interposée entre l'unité centrale et les unités de mémorisation d'un ordinateur, notamment pour la gestion de bases de données, de façon à associer des adresses physiques résultats d'objets stockés dans lesdites unités de mémorisation à des adresses logiques sources demandées dans des requêtes de l'unité centrale, lesdites adresses logiques étant constituées d'au moins deux champs distincts contenant chacun une adresse indirecte, chaque champ correspondant à un adressage indirect de niveau différent, unité caractérisée en ce qu'elle est constituée - de banques mémoires d'adressage correspondant chacune à un desdits niveaux d'adressage indirect, chacune desdites banques comprenant des tables d'adressage dont les enregistrements contiennent chacun une information secondaire d'adressage, chaque banque recevant en entrée une adresse d'accès å un desdits enregistrements, et fournissant en sortie l'information secondaire d'adressage contenue dans ledit enregistrement - de moyens de sélection d'un enregistrement, associés à chacune desdites banques, lesdits moyens de sélection recevant en entrée d'une part l'adresse indirecte contenue dans un champ de l'adresse logique source, ledit champ étant de même niveau que la banque d'adressage associée, et d'autre part, pour les banques autres que la banque de plus haut niveau, une information secondaire d'adressage provenant de la banque de niveau supérieur, et fournissant en sortie l'adresse sélectionnée d'accès à un enregistrement de ladite banque associée, la sortie de chacun desdits moyens de sélection étant connectée åa'l'entrée de la banque mémoire d'adressage associée, et la sortie de la banque mémoire d'adressage de plus bas niveau fournissant l'adresse physique résultat correspondant à l'adresse logique source. De façon avantageuse, l'adresse logique est constituée de trois champs d'adressage de ' niveau différent (numéro de paquet, numéro de page, et numéro d'objet), et ladite unité contient trois banques mémoires d'adressage, à savoir une banque de paquets, une banque de pages, une banque d'objets. Dans un mode de réalisation préférentiel de l'invention, lesdits moyens de sélection sont constitués de circuits additionneurs, et de circuits décodeurs. Dans un mode de réalisation assurant la gestion de conflits de demandes d'accès à un objet émanant de plusieurs transactions, l'unité selon l'invention, comporte également une quatrième banque mémoire de verrous d'accès, constituée d'une table de verrous dont chaque enregistrement correspond à une information de verrouillage et/ou une adresse d'information de verrouillage, associée à une page différente de la banque de pages, ladite quatrième banque mémoire de verrous coopérant avec des quatrièmes moyens de sélection d'un enregistrement de verrouillage fournissant en sortie l'adresse sélectionnée d'accès à un enregistrement de ladite banque de verrous. De façon avantageuse, l'invention comporte également une cinquième banque mémoire de marquage de verrouillage, constitué d'une table dont chaque enregistrement correspond à une page de ladite banque de pages et comporte un champ contenant pour chaque enregistrement de ladite quatrième banque mémoire de verrous associé à ladite page correspondante une information d'existence ou non d'une information spécifique de verrouillage à l'état verrouillé. Le fait de prévoir cette cinquième banque mémoire présente deux avantages - un gain de temps dans l'opération d'initialisation des verrous pour chaque page nouvellement accédée, cette initialisation portant uniquement sur l'information d'existence ou non d'une information spécifique de verrouillage pour chaque objet, et non sur le champ d'état de verrouillage de la quatrième banque mémoire. - ce principe d'initialisation rapide a pour corollaire que la lecture du champ d'information d'existence ou non d'un verrouillage dans la cinquième banque de données permet de vérifier la pertinence des informations de verrouillage (non systématiquement initialisées) dans la quatrième banque mémoire. L'objectif de gestion des conflits d'accès aux données, selon l'invention, est également résolu par le fait que chaque enregistrement de la table de verrous comporte un champ d'état de verrouillage contenant une information de verrouillage spécifique pour chaque objet de la page associé audit enregistrement, lesdites informations spécifiques de verrouillage étant placées consécutivement à l'intérieur dudit champ unique d'état de verrouillage. L'invention a également pour objet un procédé de gestion de conflits de demandes d'accès à un même objet provenant d'au moins deux transactions différentes, caractérisé en ce que - on initialise tous les verrous associés aux objets de la, (ou des) relation(s) source(s), lors du premier accés à la page; - on incrémente l'information spécifique de verrouillage de chaque objet, pour chaque demande d'accès audit objet provenant d'un transaction quelconque; - on mémorise pour chaque transaction le nombre d'accès qu'elle a demandé vers chaque objet, faisant partie du résultat, de la (ou des) relation(s) source(s) avec incrémentation sélective des informations spécifiques de verrouillage de chaque objet pour chaque demande d'accès audit objet provenant de ladite transaction;; - à chaque fin d'une des transactions en cours, on décrémente l'information spécifique de verrouillage de chaque objet de la relation source de la valeur de l'information spécifique de verrouillage correspondante dudit objet dans la relation résultat. Dans un mode de réalisation préférentiel, le procédé présente également les caractéristiques suivantes - ledit champ d'état de verrouillage de ladite relation source est systématiquement dupliqué en un champ-miroir identique; - à chaque occurence d'un conflit de lecture/écriture, on soustrait de l'information spécifique de verrouillage de l'objet en demande d'accès, dans le champ-miroir de la relation source, la valeur de l'information spécifique de verrouillage d'objets correspondante dans la relation résultat de ladite transaction courante; - on constate un conflit et on met en attente ladite transaction lorsque le résultat de l'opération de soustraction est différent de 0, c'est à dire lorsque au moins une autre transaction non encore achevée a obtenu l'accès audit objet. De façon avantageuse ladite opération de mémorisation pour chaque transaction, du nombre d'accès qu'elle a demandé vers chaque tuple, faisant partie du résultat, de la (ou des) relation(s) source(s) s'effectue par simple insertion dans la relation résultat, pour chaque accès audit tuple demandé par ladite transaction, d'une copie de l'identifiant dudit tuple. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante d'un mode de réalisation préférentiel donné à titre illustratif, et des dessins annexés dans lesquels - la figure 1 est un schéma bloc illustrant un mode de réalisation préférentiel de l'unité de gestion d'accès en mémoire selon l'invention; - la figure 2 est un schéma illustrant les différentes phases de fonctionnement de l'unité de gestion de la figure 1; - les figures 3a, 3b, 3c illustrent quelques aspects du système de gestion de conflit d'accès par verrous, selon l'invention. L'unité de gestion représentée en figure 1 est un mode de réalisation adapté à une base de données conçue pour une grande mémoire. Elle joue le rôle à la fois d'une unité de gestion de mémoire, et d'une mémoire cache pour les tables de correspondance entre l'adresse logique source et l'adresse physique résultat. Plus exactement, l'unité de gestion selon l'invention assure la correspondance entre les adresses logiques et physiques de la totalité d'une base de données montée en mémoire pour une session, ou de la partie la plus utilisée de cette base; celle-ci peut représenter entre plusieurs dizaines et plusieurs centaines de relations. Dans certains cas l'unité selon l'invention peut ne contenir que les tables d'accès à une ou deux très grandes relations, appelées en mémoire pour une requête. En raison du volume des données référencées, le volume des tables n'est pas négligeable et celles-ci sont rangées dans des mémoires qui constituent une forme de cache pour l'opération de correspondance. Celle-ci est effectuée par une suite d'adresses indirectes (indirections), qui permettent une correspondance relativement rapide sans utiliser de mémoire associative. Dans l'environnement considéré pour le mode de réalisation préférentiel présenté ici, les adresses logiques des objets de la base (tuples, attributs, ensembles...) sont des identifiants d'objets ou TIDs (pour "tuple identifiers") de la forme numéro d'objet > . L'unité de gestion mémoire selon l'invention est principalement constituée de 5 banques mémoire, qui peuvent éventuellement être réduites à 4 comme représenté sur la figure 1 - TPAQ (101) contient les tables des paquets - TPAGES (201) contient les tables des pages - TOBJ (301) délivre un déplacement dans la page, par exemple sur 16 bits, ou une adresse d'objet, par exemple sur 32 bits - TEXISTE (401) délivre une valeur sur un motmémoire, par exemple sur 32 bits. Cette largeur de résultat est nécessaire pour une initialisation rapide des bits de ses tables. A l'intérieur de ce mot-mémoire, le bit correspondant à l'objet courant est sélectionné, normalement par matériel dans le cache/MMU de l'invention. - TVERROUS 501 délivre un verrou ou une adresse physique sur 32 bits. De façon avantageuse, cette banque mémoire peut être divisée en deux zones de même taille : une première zone VERROUS 530 contenant des ensembles de verrous, et une seconde zone MIROIR 531 contenant des copies de verrous ou des adresses de ces copies ; dans ce cas, la sélection entre les deux zones VERROUS 530 et MIROIR 531 est effectuée par un fil d'adresses MIROIR 540. Dans un autre mode de réalisation, la zone MIROIR 531 est un sous-ensemble de la zone VERROUS 530, et son adressage se fait à partir d'une troisième information secondaire d'adressage 232 prévue dans la table des pages. Les banques mémoire TOBJ 301 et TVERROUS 501 sont ici regroupées en une seule TOBJVER 301. Dans ce cas un espace mémoire égal à TOBJ est perdu du fait de l'existence du fil ~ MIROIR 540, mais le nombre de composants peut éventuellement être réduit. Dans cette structure, le numéro de paquet 112 de l'adresse -logique source 100 peut être alloué séquentiellement ou résulter d'un hachage multi-attributs statique. Il constitue l'indice dans la table des paquets 101 de la relation courante d'une information secondaire d'adressage 130 correspondant à l'adresse de la table des pages associée à un paquet. Le numéro de page 212 est l'indice dans cette table des pages d'une information secondaire d'adressage 230 correspondant à une adresse de la table des objets TOBJ associée à la page, et le cas échéant d'un élément 231 formé d'une adresse de tuple de la relation~VERROUS, ainsi éventuellement que d'une adresse de copie de tuples. Le numéro de tuple 312 constitue l'indice d'une information secondaire d'adressage 330 correspondant à une adresse de tuple ou d'un déplacement dans sa page, dans la table TOBJ 301, et le cas échéant d'un bit d'existence de verrou dans un attribut ~ VERROUS.EXISTE de type ensemble de bits dans la banque mémoire EXISTE 401, et d'un verrou 530 dans un attribut ~ VERROUS.VERROU de type ensemble de verrous (ceux-ci sont définis plus loin). Toutes ces adresses de table ou de tuple, sauf la dernière sont soit des adresses physiques, soit des TIDs. Si on rencontre une adresse logique dans la recherche de l'adresse de tuple ~ VERROUS, cette adresse logique est convertie recursivement en adresse physique. Il n'y a pas de verrous sur la relation ~ VERROUS. Dans les autres cas cela implique un défaut de page. De façon avantageuse, les adresses logiques utilisent un mot de 32 bits, et sont donc sur 31 bits compte tenu du bit définissant le caractère logique/physique de l'adresse. Toutefois cette hypothèse est faite à des fins d'illustration, et n'est nullement nécessaire à la validité du circuit. La table des pages peut également contenir l'adresse physique de la page sur disque (numéro de page), et le cas échéant des informations de chaînage avant et arrière permettant des listes de pages. Ces informations ne sont pas utilisées par la MMU. Les banques mémoire sont connectées comme indiqué en figure 1. TPAQ est adressé par le numéro de paquet 10, compte tenu du numéro de relation NREL. Ce numéro définit une base d'adresses dans chacune des banques mémoire. Il existe une base d'adresses 111, 211, 311 pour chaque relation source de l'opération courante (en général une ou deux). La base d'adresse pour la table des paquets est rangée dans un registre au début de la requête, de même que les autres caractéristiqes de la requête (existence ou non de verrous en masquage existence ou non de verrous en lecture/écriture; lecture, suppression, retrait de verrous sur la copie, retrait de verrous en fin de transaction; autres informations communes); elles est ajoutée au déplacement défini par le numéro de paquet 10. La base 111 et le déplacement 112 sont alors ajoutées par un additionneur 120 formant moyens de sélection 160 d'un enregistrement dans TPAQ. Compte tenu de la faible taille des tables des paquets, il est également possible d'utiliser directement le numéro de relation comme une partie de l'adresse de TPAQ. Pour les autres tables 201, 301 l'utilisation de la base d'adresse 211, 311 de la relation n'est pas absolument nécessaire, les adresses obtenues dans le niveau de table précédent pouvant être toutes dans l'espace local de cette relation. Cependant la réécriture de ces tables à partir d'espaces de mémoire primaire non contigus, lors du chargement du cache/NNU, obligerait alors à modifier toutes les adresses lors du transfert, ce qui n'est pas forcement optimum.L'utilisation d'une base d'adresse liée à la relation pour chaque niveau de table est donc une variante qui peut s'avérer préférable. La valeur de l'adresse du tuple courant de TPAGES est obtenue à partir de l'adresse 210 délivrée par TPAQ, du numéro de page ( 20 ; 212) et éventuellement de la base d'adresse 211 de la relation. Trois variantes de réalisation peuvent être envisagées - l'utilisation du numéro relatif de relation comme partie d'adresse (elle suppose qu'en général les relations ont une taille comparable, ce qui n'est pas le cas le plus usuel); - l'utilisation d'une base d'adresse implicite à travers les adresses fournies par TPAQ; - l'utilisation d'une base d'adresse explicite. Dans ce cas et comme représenté en figure 1, on pourra éviter d'additionner successivement les trois composantes de l'adresse (base 211, l'information secondaire d'adressage formée de l'adresse 210 d'un ensemble de TPAGES, numéro de page 20, 212) à condition de réserver la taille maximum d'un ensemble de TPAGES pour chaque relation. Les moyens de sélection d'enregistrement dans la banque mémoire 201 comprennent des circuits additionneurs et décodeurs. Les poids forts 210a de l'adresse d'ensemble 210 sont additionnés avec la base d'adresse 211 dans un premier circuit additionneur 221, et les poids faibles 210b avec le numéro de page 212 dans un second circuit additionneur 222 (ou réciproquement). Une variante d'adressage est de considérer le nombre de paquets par relation et le nombre de pages (maximum) par paquet comme fixe; ceci permet d'utiliser séparément le numéro de page et l'adresse de paquet; il s'agit d'une variante de la solution utilisant le numéro relatif de la relation; elle présente l'avantage de diminuer la taille du mot dans TPAQ. Un élément de la table des pages 201 dans le cache est formé d'un enregistrement de longueur fixe comportant deux informations secondaires d'adressage sous la forme . Normalement ces deux résultats sont délivrés simultanément par TPAGES. Les circuits additionneurs 221, 222 peuvent le cas échéant coopérer avec un circuit multiplexeur 250. D'autre part, l'information secondaire d'adressage 231 (adresse de verrou), et éventuellement l'information secondaire d'adressage 232 (adresse de copie de verrou) peuvent être délivrées en sortie de la banque mémoire TPAGES par commande d'un déplacement d'adresse correspondant dans TPAGES fournie par une ou deux pistes d'entrée 213. Dans le cas où au moins certaines desdites banques mémoires sont réalisées en boîtiers de mémoire dynamique de type CMOS, lesdits boîtiers coopèrent avec les moyens de sélection associés aux banques d'adressage de façon à permettre un échantillonnage indépendant, de la portion d'adresse de rang (RAS) d'une part, et de la portion d'adresse de colonnes (CAS) d'autre part. Ceci permet d'adresser la mémoire avec l'une des portions d'adresse dès que celle-ci est déterminée et sans attendre la valeur de l'autre portion d'adresse. Cette caractéristique permet d'accélérer la vitesse de fonctionnement du dispositif. En effet, la partie de l'adresse située dans le TID étant disponible des le début du cycle de fonctionnement, elle est échantillonnée à l'entrée des mémoires de TPAGES et de TOBJ en parallèle avec la lecture de la mémoire de TPAQ. La valeur de l'adresse du tuple courant de TOBJET est obtenue de façon similaire à ce qui a été décrit pour TPAGES, à partir de l'adresse 310 délivrée par TPAGES 30, 312, et éventuellement de la base d'adresse 311 de la relation. Dans les moyens 360 de sélection d'enregistrement de TOBJVER, tels que représentés en figure 1, les poids forts 310a de l'adresse d'ensemble 310 sont additionnés avec la base d'adresse 311 dans un premier circuit additionneur 321, et les poids faibles 310b avec le numéro de page 312 dans un second circuit additionneur 322. Comme on le verra ci-après, un circuit multiplexeur 350 assure alternativement l'enclenchement de la phase d'accès à l'enregistrement d'objets 330, et à un enregistrement de verrous 530, 531, dans le cas de la banque mémoire intégrée TOBJVER 301 de la figure 1. Bien entendu, lorsque la base d'adresse 311 n'existe pas, le circuit additionneur 321 n'a pas de raisons d'être. La même remarque vaut pour le circuit additionneur 221 des moyens de sélection 360 d'un enregistrement de TPAGES. Une solution un peu plus rapide consiste à réaliser les moyens de sélection 360 non plus sous la forme d'un jeu d'additionneurs, mais au moyen d'un circuit mélangeur. Cette solution correspond au cas où on réserve, dans TOBJET, un nombre fixe d'objets par page (pour une relation donnée), ce qui suppose que la plupart des pages présente un nombre d'objet voisin du maximum afin d'optimiser l'utilisation des tables. Le circuit mélangeur utilisé reçoit alors en entrée d'une part le numéro d'objet 312 provenant de l'adresse logique d'objets 100, et d'autre part l'adresse d'ensemble 310 provenant de TPAGES. Si l'adresse 310 est donnée sur x bits, et le numéro d'objets 312 sur y bits, chacune des deux informations d'entrée arrivera sur un bus distinct comportant (x + y) fils.Ces deux bus constituent l'entrée du circuit mélangeur, qui va sélectivement masquer les bits non pertinents de chaque bus (y bits pour l'adresse 310, et x bits pour le numéro d'objet 312), les bus ainsi masqués subissant ensuite un OU logique sur les pistes de même indice, pour obtenir sur le bus d'entrée de la banque mémoire TOBJ 301 (ou sur le multiplexeur 350 le cas échéant) le numéro d'objet 312 sur les bits de poids faible, et l'adresse 310 sur les bits de poids fort. Un circuit de même type peut éventuellement remplacer le jeu d'additionneurs 221, 222 des moyens de sélection 260 associés à la banque mémoire TPAGES. Dans un mode de réalisation préférentiel de l'invention, l'organisation du cache/MMU assure la gestion de conflits d'accès d'un même objet par plusieurs transactions différentes. Une situation de conflit apparaît notamment lorsque une seconde transaction demande à effectuer une lecture sur un objet, alors qu'une première transaction a effectué une opération d'écriture. En conséquence, la gestion de conflit consiste d'abord a identifier la nature de l'opération (lecture ou écriture) effectuée par la transaction à chaque accès à une donnée. Il s'agit également d'assurer une vérification systématique de toutes les transactions demandant à accéder à une donnée qui a subi une opération d'écriture Deux situations doivent être envisagées dans le cas d'une écriture la suppression d'un objet de la relation source, et l'insertion d'un objet dans cette relation source. Dans le cas d'une insertion, seule sera autorisée à l'accés la transaction courante ayant effectué l'opération d'écriture, le verrou posé correspondant à un verrou de masquage. Ceci signifie que les autres transactions se poursuivent en ignorant l'objet masqué. Dans le cas d'une suppression, la transaction courante ayant effectué la suppression n'accède plus à l'objet supprimé. Selon l'invention, le système de gestion de conflits est à base de verrous, formés d'informations spécifiques de verrouillage associées à chaque objet accédé. Ces verrous subissent les opérations suivantes - ils sont initialisés avant le lancement d'une ou plusieurs transactions; - ils comportent des compteurs qui sont incrémentés à chaque demande d'accès par une transaction quelconque; - ces compteurs sont décrémentés lors de chaque fin de transaction, de la valeur correspondant au nombre d'accès demandé par ladite transaction. Cette dernière caractéristique suppose que chaque transaction stocke pour son compte le nombre d'accès qu'elle a demandé, de préférence dans une copie de verrous associée à chaque objet du fichier ou de la relation résultat (généralement temporaire) pour la transaction. La résolution des conflits est effectuée en prévoyant une copie miroir du verrou, associée à chaque objet dans un fichier (ou une relation) source. A l'occurrence d'un conflit, on soustrait de l'information de verrouillage de l'objet en demande d'accès, dans le verrou miroir de la relation source, le nombre mémorisé dans la relation résultat pour l'accés audit objet pour la transaction courante. Lorsque le résultat de l'opération de soustraction est différent de 0, c'est à dire lorsqu'au moins une autre transaction non encore achevée a également obtenu l'accès audit objet, on verrouille l'accès audit objet pour la transaction courante. Dans le mode de réalisation représenté en figure 3a, chaque verrou est constitué par un tuple VERROUS, dans une relation spécifique (banque mémoire de verrou 501), et par un tuple EXISTE dans une autre relation (banque mémoire de marquage 401). La structure du tuple~EXISTE est constituée par un champ 31 de longueur de tuple, et un attribut 32 de type "ensemble" dont la longueur correspond à l'information dans le champ 31. La structure du tuple~VERROU est symétrique, et comprend un champ 36 de longueur de tuple, suivi d'un attribut 33 également de type "ensemble". L'attribut 33 comporte une succession de verrous 34, sur 32 bits, correspondant par exemple chacun à une information spécifique de verrouillage sur un objet dans une page. Dans ce cas, qui est celui du mode de réalisation présenté dans les dessins, l'ensemble 33 fournit une information de verrouillage pour une page complète. Pour chaque verrou 34 de l'attribut 33 du tuple VERROU, l'attribut 32 comporte un bit 35 exprimant si le verrou 34 a une valeur significative, ou est non définie. Chaque information de verrouillage 34 présente avantageusement la structure schématisée en figure 3c. Ainsi, pour chaque objet, l'information de verrouillage comporte un compteur 41, une zone d'estampillage 42, et une zone de bits complémentaires 43. Comme déjà mentionné, la valeur du compteur est incrémentée d'une unité chaque fois que le tuple est accédé en lecture, et décrémenté, à chaque fin de transaction, du nombre d'accès demandés par la transaction achevée. Lorsqu'une seule transaction a verrouillé en lecture, l'estampille de cette transaction est en plus rangée dans la partie estampille 42 du verrou 34. Cette estampille est supprimée en cas de verrouillage par d'autres transactions. En cas de conflit avec un verrouillage en lecture par une transaction inconnue, le système doit vérifier si le verrouillage provient de la transaction qui demande le verrou en écriture (absence de conflit) ou d'une autre transaction. Pour cela il copie le verrou et décrémente la copie pour chaque TID qui la référence dans les relations temporaires de la transaction. L'adresse du tuple verrou 231 peut être soit une adresse physique, soit une adresse logique (TID). Bien que la carte de cache/MMU puisse être réalisée avec l'une ou l'autre des deux solutions, l'emploi d'une adresse logique donne plus de souplesse au système. Dans le cas où il s'agit d'une adresse logique, elle est décomposée en trois éléments (numéro de paquet 40, de page 50 et de tuple 60 dans la relation ~ VERROUS 501) multiplexés avec les entrées correspondant aux numéros de paquet 10, de page 20 et d'objet 30; au cycle suivant ces trois éléments sont utilisés à la place des valeurs initiales de ces entrées. Il peut s'agir aussi d'une adresse physique. Dans ce cas elle est utilisée pour accéder les attributs du tuple verrou dans TEXISTE 401 et TVERROUS 501; si TVERROUS 501 et TOBJ 301 sont remplacés par TOBJVER 301, elle est transmise comme composante de l'adresse de TOBJVER au cycle suivant, le premier servant à l'accès à la table TOBJ. L'adressage du mot courant de TEXISTE 401 et de TVERROUS 501 (si ce dernier existe) s'effectue de manière identique, mis à part l'existence du signal MIROIR qui est positionné en début d'opération. En cas de détection de conflits, l'opération de décrémentation des verrous est une opération de recherche distincte de l'opération au cours de laquelle ont été détecté des conflits; le registre décrivant le mode d'opération est réécrit avec de nouvelles valeurs. Dans le mot courant de EXISTE, le numéro de tuple détermine aussi le bit courant. Les informations EXISTE et VERROU peuvent aussi être réécrites dans le cache/MMU à l'issue de la sélection, après modification par le processeur. L'unité de gestion mémoire de l'invention supporte donc le verrouillage, éventuellement le test des verrous, le retrait des verrous sur les copies, ainsi que le retrait des verrous en fin de transaction. Il permet également une bonne gestion d'espaces de travail, par la pose de "verrous en masquage" des tuples supprimés ou insérés. Le fait que cette possibilité soit offerte n'exclut nullement l'utilisation effective d'une autre méthode de gestion de concurrence, comme la certification, ou l'absence de gestion de concurrence. La figure 2 récapitule le fonctionnement de l'unité de gestion mémoire suivant l'invention. La phase 1 consiste à utiliser successivement les banques mémoires TPAQ 101, TPAGES 201, TTUPLES 301 à partir des numéros de paquets 10, de pages 20 et de tuples 30 de l'adresse logique source, afin d'obtenir l'adresse physique résultat 1. La phase 2 consiste à aller chercher l'information de verrouillage pour l'objet accédé, avec deux aspects - consultation de la banque mémoire de marquage de verrou EXISTE 401, qui permet de savoir s'il existe ou non un verrouillage sur l'objet en demande d'accès. Cette information se trouve dans le bit 35 du rang de l'objet dans la page, puisque comme on l'a déjà vu, chaque tuple verrou correspond avantageusement à une information de verrouillage pour une page complète (voir fig. 3a); - consultation du champ d'état de verrouillage 530 de la banque mémoire de verrou 501, correspondant à la page en demande d'accès; et consultation dans ce champ 530 de l'information spécifique de verrouillage 34 pour l'objet en demande d'accès. La-consultation des banques mémoires EXISTE 401 et VERROU 501 est effectuée à partir de deux informations distinctes - une information d'adresse physique des enregistrements 430, 530, obtenue par traitements successifs, dans les banques TPAQ, TPAGE, TTUPLE, de l'adresse logique de verrou 231 fournie en phase 1 lors de la consultation de la banque mémoire de pages TPAGES; - une information de rang du bit 35, et de l'information spécifique de verrouillage d'objets 34 respectivement, dans les enregistrements 430, 530, à partir du numéro de tuple - 30 de l'adresse logique d'objet. Le résultat fourni par la phase 1 est l'adresse physique 1 de l'objet en demande d'accès. Dans le cas où ladite banque mémoire intégrée comporte à la fois des tables d'adresses d'objets, des tables d'adresses de verrous et des tables d'information de verrouillage, ladite unité comporte des moyens de renvoi d'une adresse physique de verrous obtenue en sortie de ladite banque intégrée pendant ladite phase 2, vers l'entrée de ladite banque intégrée pour le pointage et l'obtention de l'information de verrouillage d'objets en sortie de ladite banque de données intégrée, au cours d'une troisième phase de fonctionnement de l'unité. Le résultat fourni par la phase 2 est l'information spécifique de verrouillage 2 dudit objet en demande d'accès. Un bus interne 600 qui connecte les banques mémoire avec celles de la machine hôte permet d'initialiser le cache/MMU en début de session, et de le mettre à jour, soit en vue de créer un tuple "verrous" relatif à une page qui n'en comportait pas, soit lors de modifications de la page de données qui peut entrainer, en plus des modifications du verrou courant, une augmentation de la taille de l'ensemble verrous. Le bus interne 600 permet également d'effectuer la mise à jour de banques mémoires TPAQ, TPAGES et TOBJ, étant entendu que toute modification d'une banque mémoire quelconque implique la mise à jour des banques mémoires situées en amont. De façon avantageuse, la mise à jour des banques mémoires est effectuée d'une part par transmission d'un bit d'activation 601, 602, 603, 604, 605 aux banques mémoires 101, 102, 103, 104, 105, et d'autre part par l'envoi des données de mise à jour sur des ensembles distincts 611, 612, 613, 614, 615 pour chaque banque mémoire. L'unité de gestion suivant l'invention peut également comporter des moyens de stockage d'informations complémentaires et/ou d'adresses d'informations complémentaires, et des moyens d'accès auxdites informations complémentaires à partir de ladite adresse logique source. Ces informations complémentaires doivent bien évidemment être des informations liées à l'adressage des données, et peuvent par exemple être relatives à la validité des données. Dans un mode de réalisation préférentiel, les banques mémoires sont des RAM, la RAM de TPAQ étant par exemple d'une capacité de 8 K mots x 32 bits, et les RAM de TPAGES et TOBJVERS étant d'une capacité de 256 K x 64 bits. En l'absence de cache/MMU, le délai pour accéder à un tuple, sans gestion de concurrence ni espaces de travail, est de 3 accès mémoire. Avec soit gestion de concurrence par verrouillage, soit gestion d'espace de travail, soit plus probablement les deux, le délai pour accéder à un tuple passe à 9 accès mémoire. Avec le cache/MMU et la technologie actuelle le temps total pour obtenir une adresse d'objet passe à 250 ou 300 ns seulement, soit la durée courante d'un accès mémoire à travers un bus VME. Le temps d'accès au verrou est de l'ordre d'un accès mémoire supplémentaire, mais il est masqué par les opérations suivantes du processeur qui s'effectuent en parallèle. Le nombre d'accès mémoire pour obtenir l'adresse d'un tuple est donc ramené de 9 à 1. Ce gain est particulièrement important dans le cas où le temps de traitement des tuples est faible, par exemple grâce à un processeur parallèle spécialisé de gestion de base de données. Un gain d'un facteur 4 ou supérieur sur l'ensemble d'une opération de jointure ou de sélection peut en résulter.Ce type de MMU correspond à un besoin actuellement non satisfait de disposer d'un cache représentant 5% des données pour de grandes bases, avec un minimum de l'ordre de 1 Méga-octet pour de petites bases. L'unité de gestion selon l'invention est particulièrement adapté pour travailler avec un processeur spécialisé du type du processeur de bases de données décrit dans la thèse de doctorat de l'Université Paris VI (spécialité : mathématiques ; mention informatique) soutenue par Pascal FAUDEMAY le 20 juin 1986, sur le sujet "un processeur VLSI pour les opérations de bases de données, et qui a notamment fait l'objet d'une demande de brevet aux Etats Unis. Toutefois, l'unité de gestion suivant l'invention peut parfaitement être utilisée avec un processeur général. Les données telles que les adresses de début des tables pour chaque relation source de l'opération courante (~VERROUS, REL1, le cas échéant REL2, et éventuellement d'autres RELi), le mode d'opération, l'estampille de la transaction sont définis préalablement à l'opération ensembliste de recherche ou de suppression. Pour chaque tuple le processeur écrit dans un port d'entrée de la carte cache/MMU le TID de ce tuple, puis lit successivement l'adresse physique du tuple et le verrou, y compris son bit d'existence, dans un port de sortie. Si le port de sortie comporte 32 bits, il en résulte que le verrou proprement dit devra utiliser au plus 31 bits. REVENDICATIONS 1) Unité de gestion d'accès en mémoire, du type destinée à être interposée entre l'unité centrale et les unités de mémorisation d'un ordinateur, notamment pour la gestion de bases de données, de façon à associer des adresses physiques résultats d'objets stockés dans lesdites unités de mémorisation à des adresses logiques sources demandées dans des requêtes de l'unité centrale, lesdites adresses logiques (100) étant constituées d'au moins deux champs distincts (10, 20, 30) contenant chacun une adresse indirecte, chaque champ (10, 20, 30) correspondant à un adressage indirect de niveau différent, unité caractérisée en ce qu'elle est constituée - de banques mémoires d'adressage (101, 102, 103) correspondant chacune à un desdits niveaux d'adressage indirect, chacune desdites banques (101, 102, 103) comprenant des tables d'adressage dont les enregistrements contiennent chacun une information secondaire d'adressage (130, 230, 330), chaque banque (101, 201, 301) recevant en entrée (105, 205, 305) une adresse d'accès à un desdits enregistrements, et fournissant en sortie (210, 310, 810) l'information secondaire d'adressage contenue dans ledit enregistrement - de moyens (160, 260, 360) de sélection d'un enregistrement, associés à chacune desdites banques (101, 201, 301), lesdits moyens de sélection (160, 260, 360) recevant en entrée d'une part l'adresse indirecte (112, 212, 312) contenue dans un champ (10, 20, 30) de l'adresse logique source (100), ledit champ (10, 20, 30) étant de même niveau que la banque d'adressage associée (101, 201, 301), et d'autre part, pour les banques (201, 301) autres que la banque de plus haut niveau (101), une information secondaire d'adressage (210, 310) provenant de la banque de niveau supérieur (101, 201), et fournissant en sortie (105,, 205, 305) l'adresse sélectionnée d'accès à un enregistrement de ladite banque associée, la sortie (105, 205, 305) de chacun desdits moyens de sélection (160, 260, 360) étant connectée à l'entrée (105, 205, 305) de la banque mémoire d'adressage associée (101, 201, 301), et la sortie (810) de la banque mémoire d'adressage (301) de plus bas niveau fournissant l'adresse physique résultat correspondant à l'adresse logique source (100). 2) Unité de gestion d'accès en mémoire selon la revendication 1, caractérisée en ce que ladite adresse logique (100) est constituée d'au moins trois champs d'adressage (10, 20, 30) de niveaux différents, un premier champ (10) contenant un numéro de paquet, un second champ (20) contenant un numéro de page, et un troisième champ (30) contenant un numéro d'objet, et en ce que ladite unité contient au moins trois banques mémoires d'adressage, à savoir une banque de paquets (101), une banque de pages (201), et une banque d'objets (301), lesdits moyens de sélection (160, 260, 360) d'un enregistrement associés à chacune desdites banques (101, 201, 301) assurant la sélection d'un paquet de la banque de paquets (101), d'une page desdits paquets dans ladite banque de pages (201), et d'un objet de ladite page sélectionnée, dans la banque d'objets (301), respectivement, ladite banque d'objets (301) fournissant en sortie (810) l'adresse physique résultat dudit objet correspondant à l'adresse logique source (100). 3) Unité selon l'une quelconque des revendications 1 ou 2, caractérisée en ce qu'au moins un desdits, moyens de sélection (160, 260, 360) comporte également une entrée de réception d'une base d'adresses (111, 211, 311), et des moyens de combinaison (120 ; 221, 222 ; 321, 322) de ladite base d'adresse (111, 211, 311) avec l'adresse indirecte (112, 212, 312) provenant du champ (10, 20, 30) de même niveau de l'adresse logique source (100), et pour les banques mémoires d'adressage (201, 301) autres que la banque de plus haut niveau (101), avec l'information secondaire d'adressage (210, 310) provenant de la banque immédiatement supérieure (101, 201), lesdits moyens de combinaison (120 ; 221, 222 ; 321, 322) fournissant en sortie ladite adresse d'accès à un enregistrement de la banque d'adressage (101, 201, 301) associée auxdits moyens de sélection (160, 260, 360). 4) Unité selon la revendication 3, caractérisée en ce que lesdits moyens de combinaison (120 ; 221, 222 321, 322) sont des circuits additionneurs. 5) Unité selon la revendication 4, caractérisée en ce que lesdits moyens de combinaison 6) Unité selon la revendication 2, caractérisée en ce qu'elle comporte également une quatrième banque mémoire de verrous d'accès (501), constituée d'une table de verrous dont chaque enregistrement (530) correspond à une information de verrouillage et/ou une adresse d'information de verrouillage, associée à une page différente de la banque de pages 201, ladite. quatrième banque mémoire (501) de verrous coopérant avec des quatrièmes moyens de sélection d'un enregistrement de verrouillage fournissant en sortie l'adresse sélectionnée d'accès à un enregistrement de ladite banque de verrous. 7) Unité suivant la revendication 6, caractérisée en ce que chacun desdits enregistrements de la banque mémoire de pages (201) comporte un champ (231) contenant une information secondaire d'adressage de verrous, et en ce que lesdits moyens (260) de sélection d'enregistrement associés à ladite banque mémoire de verrous (501) reçoivent en entrée ladite information secondaire d'adressage de verrous (231) provenant de la banque mémoire de pages (201), pour fournir en sortie ladite adresse sélectionnée d'accès à l'enregistrement correspondant de ladite banque de verrous (501). 8) Unité selon la revendication 6, caractérisée en ce que ladite information de verrouillage contenue dans chaque enregistrement de la table de verrous (501) comporte un champ d'état de verrouillage (530) contenant une information de verrouillage spécifique (34) pour chaque objet de la page associée audit enregistrement, lesdites informations spécifiques de verrouillage (34) étant placées consécutivement à l'intérieur dudit champ unique d'état de verrouillage (530), et en ce que ladite quatrième banque mémoire de verrous (501) coopère avec des moyens de sélection (510, 520) de l'information spécifique (34) de verrou d'objet correspondant à l'objet sélectionné dans la page associée audit enregistrement, lesdits moyens de sélection (510, 520) fournissant en sortie le rang, dans ledit champ d'état de verrouillage (530), d'accès à ladite information spécifique de verrouillage (34) dudit objet sélectionné. 9) Unité selon la revendication 8, caractérisée en ce que lesdits moyens de sélection d'enregistrement associés à ladite quatrième banque mémoire de verrous (501) reçoivent en entrée d'une part le numéro d'objet (312) de ladite adresse logique source (100), et d'autre part l'information secondaire d'adressage (310) provenant de la banque mémoire de pages (201), pour fournir en sortie le rang, dans ledit champ d'état de verrouillage (530), d'accès à ladite information spécifique de verrouillage dudit objet sélectionné. 10) Unité selon la revendication 8, caractérisée en ce qu'elle comporte une cinquième banque mémoire de marquage de verrouillage (401), constitué d'une table dont chaque enregistrement correspond à une page de ladite banque de pages (201) et comporte un champ (430)contenant pour chaque enregistrement de ladite quatrième banque mémoire de verrous (501) associé à ladite page correspondante une information (35) d'existence ou non d'une information spécifique de verrouillage à l'état verrouillé. 11) Unité suivant la revendication 8, caractérisée en ce qu'au moins une partie de ladite quatrième banque mémoire de verrous (501) est intégrée à la banque mémoire d'objets (301). 12) Unité selon l'une quelconque des revendications 1 ou 2, caractérisée en ce que chacune desdites banques mémoires (101, 201, 301, 401, 501) coopère avec des moyens (600) de mise à jour desdites banques, lesdits moyens (600) comprenant pour chaque banque de donnée, d'un part une entrée (601, 602, 603, 604, 605) d'activation de la fonction de mise à jour, et d'autre part une entrée (611, 612, 613, 614, 615) de réception des données de mise à jour. 13) Unité de gestion selon l'une quelconque des revendications 1 ou 2, caractérisée en ce qu'elle comporte des moyens de stockage d'informations complémentaires et/ou d'adresses d'informations complémentaires, et des moyens d'accès aùxdites informations complémentaires à partir de ladite adresse logique source. 14) Unité selon l'une quelconque des revendications 6 et 11, caractérisée en ce qu'elle comporte un circuit multiplexeur d'entrée (150) recevant en entrée, d'une part les valeurs contenues dans les champs (10, 20, 30) de l'adresse logique source, et d'autre part une adresse logique de verrou (310) provenant de la banque mémoire de pages (201), ledit circuit multiplexeur d'entrée (150) assurant alternativement l'enclenchement de l'une des deux phases suivantes - une première phase de conversion de l'adresse logique d'entrée (100) en adresse physique d'objet, - une seconde phase de conversion de. l'adresse logique de verrou (231) en information d'état de verrouillage et/ou en adresse physique de ladite information d'état de verrouillage. 15) Unité suivant les revendications 14 et 10, caractérisée en ce qu'elle comprend des moyens de contrôle de la pertinence de l'information de VERROU en fonction de l'information de-verrou fournie par ladite cinquième banque mémoire (401) de marquage de verrouillage. 16) Unité suivant les revendications 11 et 14, caractérisée en ce qu'elle comporte un circuit multiplexeur de sortie (350), interposé entre la banque mémoire intégrée (301) d'objets et de verrous, et les moyens de sélection d'enregistrement associés à ladite banque mémoire intégrée (301), ledit circuit multiplexeur de sortie (350) envoyant alternativement à l'entrée desdits moyens (360) de sélection d'enregistrement de ladite banque mémoire intégrée - pendant ladite première phase, le numéro d'objet (30, 312) de l'adresse logique source (100), et l'information complémentaire d'adressage (230) provenant de la banque mémoire de pages (201) - pendant ladite seconde phase, ladite information complémentaire d'adressage (230) de la phase 1, provenant de la banque mémoire de pages via un premier registre de stockage temporaire (520), et ledit numéro d'objet (30, 312) de l'adresse logique source provenant d'un second registre de stockage temporaire (510), ainsi que le numéro d'objet (60, 312) de l'adresse de verrou et l'information complémentaire d'adressage provenant de la banque mémoire de pages (201) à partir de l'adresse logique de verrou (231 ; 40, 50, 60). 17) Unité suivant la revendication 16, caractérisée en ce que ladite banque mémoire intégrée comporte des tables d'adresses d'objets, ainsi que des tables d'adresses de verrous et/ou des tables d'information de verrouillage, ladite banque intégrée fournissant en sortie alternativement une adresse physique d'objets, et une adresse physique de verrous .et/ou une information de verrouillage dudit objet, pendant lesdites phases 1 et 2 respectivement. 18) Unité suivant la revendication 16, caractérisée en ce que ladite banque mémoire intégrée comporte à la fois des tables d'adresses d'objets, des tables d'adresses de verrous et des tables d'information de verrouillage, ladite unité comportant des moyens de renvoi d'une adresse physique de verrous obtenue en sortie de ladite banque intégrée pendant ladite phase 2, vers l'entrée de ladite banque intégrée pour le pointage et l'obtention de l'information de verrouillage d'objets en sortie de ladite banque de données intégrée, au cours d'une troisième phase de fonctionnement de l'unité. 19) Unité suivant la revendication 1, caractérisée en ce qu'au moins certaines desdites banques mémoires sont réalisées en boîtiers de mémoire dynamique de type CMOS, lesdits boîtiers coopèrant avec les moyens de sélection associés aux banques d'adressage de façon à permettre un échantillonnage indépendant, de la portion d'adresse de rang (RAS) d'une part, et de la portion d'adresse de colonnes (CAS) d'autre part. 20) Procédé d'utilisation d'une unité de gestion suivant la revendication 8, pour la gestion de conflits de demandes d'accès à un même objet provenant d'au moins deux transactions différentes, caractérisé en ce que - on initialise tous les verrous associés aux objets de la (ou des) relation(s) source(s); - on incrémente l'information spécifique de verrouillage de chaque objet, pour chaque demande d'accès audit objet provenant d'une transaction quelconque; - on mémorise pour chaque transaction le nombre d'accès qu'elle a demandé vers chaque objet, faisant partie du résultat, de la (ou des) relation(s) source(s). - à chaque fin d'une des transactions en cours, on décrémente l'information spécifique de verrouillage de chaque objet de la relation source de la valeur de l'information spécifique de verrouillage correspondante dudit objet dans la relation résultat. 21) Procédé suivant la revendication 20, caractérisé en ce que - ledit champ d'état de verrouillage de ladite relation source est systématiquement dupliqué en un champ-miroir identique; - à chaque occurence d'un conflit de lecture/écriture, on soustrait de l'information spécifique de verrouillage de l'objet en demande d'accès, dans le champ-miroir de la relation source, le nombre mémorisé dans la relation résultat pour l'accès audit objet pour la transaction courante; - on constate un conflit et on met en attente ladite transaction lorsque le résultat de l'opération de soustraction est différent de 0, c'est à dire lorsque au moins une autre transa-tion non encore achevée a obtenu l'accès audit objet.