FR2618235A1 - Memory access management unit, especially for database management - Google Patents

Memory access management unit, especially for database management Download PDF

Info

Publication number
FR2618235A1
FR2618235A1 FR8709970A FR8709970A FR2618235A1 FR 2618235 A1 FR2618235 A1 FR 2618235A1 FR 8709970 A FR8709970 A FR 8709970A FR 8709970 A FR8709970 A FR 8709970A FR 2618235 A1 FR2618235 A1 FR 2618235A1
Authority
FR
France
Prior art keywords
address
bank
information
lock
memory
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.)
Granted
Application number
FR8709970A
Other languages
French (fr)
Other versions
FR2618235B1 (en
Inventor
Pascal Faudemay
Daniel Etiemble
Jean-Luc Bechennec
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.)
Centre National de la Recherche Scientifique CNRS
Original Assignee
Centre National de la Recherche Scientifique CNRS
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 Centre National de la Recherche Scientifique CNRS filed Critical Centre National de la Recherche Scientifique CNRS
Priority to FR8709970A priority Critical patent/FR2618235B1/en
Priority to FR8805631A priority patent/FR2630838A2/en
Priority to DE19883885202 priority patent/DE3885202T2/en
Priority to EP88401819A priority patent/EP0306357A1/en
Priority to EP19880401820 priority patent/EP0304348B1/en
Priority to JP63177953A priority patent/JPH01152546A/en
Publication of FR2618235A1 publication Critical patent/FR2618235A1/en
Application granted granted Critical
Publication of FR2618235B1 publication Critical patent/FR2618235B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The field of the invention is that of memory access management units, of the type intended to be interposed between the central processing unit and the memory units of a computer. The purpose of the invention is to supply a memory access management unit which is configured for databases requiring large volumes of memory, with logical addressing of the unvarying data and system for managing conflicts. this purpose is achieved with the aid of addressing memory banks 101, 102, 103 each corresponding to a different level of indirect addressing and of means 160, 260, 360 for selecting a registration, associated with each of the said banks 101, 201, 301, the output 810 of the addressing memory bank 301 of lowest level supplying the physical address result corresponding to the source logic address 100.

Description

"Unité de gestion d'accès en mémoire, notamment pour la gestion de bases de données". "Memory access management unit, in particular for database management".

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. The field of the invention is that of memory access management units, of the type intended to be interposed between the central unit and the storage units of a computer, in particular for the management of databases.

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. An MMU (memory management unit or UGM) is a circuit that maps a physical address to a logical address in a virtual memory architecture.

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.
We already know a type of MMU performing this correspondence using an associative memory (cf.
Fairchild "The Clipper Microprocessor: User's Manual",
Addison Welsey, 1987). However, the capacity of these memories makes it possible to know the physical address only for a small number of logical page addresses, a few hundreds at present. In conventional applications, these may be sufficient page addresses to manage an acceptable virtual space. It is not the same for database applications, where it is now necessary to manage with a small locality a large number of objects dispersed in a large memory. This problem becomes critical when the data is processed by a high performance general processor, or even more by an efficient specialized processor.

On connaît également des mémoires virtuelles fonctionnant avec hachage de l'adresse logique source. There are also known virtual memories operating with hashing of the source logical address.

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.An illustration of this principle can be found in American patent US 4 356 549 (CHUEH) issued on October 26, 1982. MMUs of this type establish a surjective relationship between the source logical addresses, and the physical addresses mounted in the cache memory, due to the hash operation. They therefore assume that there is, on the one hand, collision management, making it possible to verify that the record selected in cache memory from the hashed logical address corresponds to the record sought, and on the other hand, in otherwise, the possibility of raising the data sought in an overflow space of the cache memory. This principle is completely unsuitable for the management of large volume memories, such as database memories, which require a simple address calculation.

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. Consequently, the object of the invention is to provide a memory access management unit suitable for databases requiring large volumes of memory.

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. A complementary object of the invention is to provide such a memory management unit capable of working at a speed compatible with the speed of processing of large volumes of accessed data.

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.
Another object of the invention is to provide a memory access management unit consisting of a temporary storage cache memory of indirect address tables (indirections), making it possible to handle a logical addressing of the invariant data, despite the modifications that can be made to the data, and to their physical address in memory. In other words, the object of the invention is to make the logical address of a record invariant whatever the modifications made to the other records.
An additional objective of the invention is to provide a memory access management unit comprising a conflict management system, during requests for access to the same object originating from several 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.
These objectives and others which will appear subsequently are achieved using a memory access management unit, of the type intended to be interposed between the central unit and the memory units of a computer. , in particular for the management of databases, so as to associate physical addresses results of objects stored in said storage units with source logical addresses requested in requests from the central unit,
said logical addresses being made up of at least two distinct fields each containing an indirect address, each field corresponding to an indirect addressing of different level,
characterized unit
in that it is made up
- Address memory banks each corresponding to one of said indirect addressing levels, each of said banks comprising address tables, the records of which each contain secondary addressing information, each bank receiving an access address as input å one of said records, and outputting the secondary addressing information contained in said record
- means for selecting a record, associated with each of said banks, said selection means receiving as input on the one hand the indirect address contained in a field of the source logical address, said field being at the same level as the associated address bank, and on the other hand, for banks other than the higher level bank, secondary addressing information originating from the higher level bank, and providing as output the selected address for accessing a record of said associated bank,
the output of each of said selection means being connected to the input of the associated address memory bank, and the output of the lowest level address memory bank providing the physical address result corresponding to the logical address 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. Advantageously, the logical address is made up of three address fields of 'different level (packet number, page number, and object number), and said unit contains three address memory banks, namely a package bank, page bank, object bank.

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. In a preferred embodiment of the invention, said selection means consist of adder circuits, and decoder circuits.

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.
In an embodiment ensuring the management of conflicts of requests for access to an object originating from several transactions, the unit according to the invention also includes a fourth memory bank of access locks, consisting of a table of locks each record of which corresponds to lock information and / or a lock information address, associated with a different page from the page bank,
said fourth lock memory bank cooperating with fourth means for selecting a lock record providing as output the selected address for accessing a record of said lock bank.

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é. Advantageously, the invention also includes a fifth lock marking memory bank, consisting of a table, each record of which corresponds to a page of said page bank and includes a field containing for each record of said fourth lock memory bank. associated with said corresponding page, information on whether or not specific locking information exists in the locked state.

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.
Providing this fifth memory bank has two advantages
- a saving of time in the lock initialization operation for each newly accessed page, this initialization relating only to the information of existence or not of specific locking information for each object, and not on the field d lock status of the fourth memory bank.

- 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. - this principle of rapid initialization has the corollary that reading the information field of existence or not of a lock in the fifth database makes it possible to check the relevance of the lock information (not systematically initialized) in the fourth memory bank.

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. The objective of managing data access conflicts, according to the invention, is also resolved by the fact that each record of the lock table includes a lock status field containing specific lock information for each object of the page associated with said record, said specific locking information being placed consecutively within said unique locking status field.

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.
The subject of the invention is also a method for managing conflicts of requests for access to the same object originating from at least two different transactions,
characterized in that
- we initialize all the locks associated with the objects of the source relation (s), during the first access to the page;
- the specific locking information of each object is incremented, for each request for access to said object originating from any transaction;
- the number of accesses it has requested to each object is stored for each transaction, forming part of the result, of the source relation (s) with selective incrementation of the specific information for locking each object for each request for access to said object originating from said transaction ;;
- at each end of one of the transactions in progress, the specific locking information of each object of the source relation is decremented by the value of the specific locking information corresponding to said object in the result relation.

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.
In a preferred embodiment, the method also has the following characteristics
- said locking state field of said source relationship is systematically duplicated in an identical mirror field;
- at each occurrence of a read / write conflict, we subtract the specific information for locking the object in access request, in the mirror field of the source relationship, the value of the specific information of locking of corresponding objects in the result relation of said current transaction;
- A conflict is noted and the said transaction is put on hold when the result of the subtraction operation is different from 0, that is to say when at least one other transaction not yet completed has obtained access to said object.

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. Advantageously, said storage operation for each transaction, of the number of accesses it has requested to each tuple, forming part of the result, of the source relation (s) is effected by simple insertion in the result relation, for each access to said tuple requested by said transaction, of a copy of the identifier of said 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.
Other characteristics and advantages of the invention will appear on reading the following description of a preferred embodiment given by way of illustration, and the appended drawings in which
- Figure 1 is a block diagram illustrating a preferred embodiment of the memory access management unit according to the invention;
- Figure 2 is a diagram illustrating the different operating phases of the management unit of Figure 1;
- Figures 3a, 3b, 3c illustrate some aspects of the lock access conflict management system according to the 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. The management unit shown in FIG. 1 is an embodiment suitable for a database designed for a large memory.

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. It plays the role of both a memory management unit, and a cache memory for the correspondence tables between the source logical address and the physical address result.

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. More precisely, the management unit according to the invention ensures the correspondence between the logical and physical addresses of the whole of a database mounted in memory for a session, or of the most used part of this database; this can represent between several tens and several hundred relationships. In certain cases, the unit according to the invention may contain only the access tables to one or two very large relationships, called in memory for a request. Because of the volume of the referenced data, the volume of the tables is not negligible and they are stored in memories which constitute a form of cache for the correspondence operation. This is done by a series of indirect addresses (indirect), which allow a relatively fast correspondence without using associative memory.

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 de paquet > < numéro de page > numéro d'objet > . In the environment considered for the preferred embodiment presented here, the logical addresses of the objects of the base (tuples, attributes, sets ...) are object identifiers or TIDs (for "tuple identifiers") of the form <package number> <page number> object number>.

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.
The memory management unit according to the invention mainly consists of 5 memory banks, which can optionally be reduced to 4 as shown in FIG. 1
- TPAQ (101) contains the package tables
- TPAGES (201) contains the page tables
- TOBJ (301) delivers a movement in the page, for example on 16 bits, or an object address, for example on 32 bits
- TEXIST (401) delivers a value on a word memory, for example on 32 bits. This result width is necessary for rapid initialization of the bits of its tables. Within this memory word, the bit corresponding to the current object is selected, normally by hardware in the cache / MMU of the invention.

- TVERROUS 501 délivre un verrou ou une adresse physique sur 32 bits. - TVERROUS 501 delivers a lock or a physical address on 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. Advantageously, this memory bank can be divided into two areas of the same size: a first LOCK area 530 containing sets of locks, and a second MIRROR area 531 containing copies of locks or addresses of these copies; in this case, the selection between the two zones LOCK 530 and MIRROR 531 is carried out by a wire of addresses MIRROR 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.
In another embodiment, the area
MIRROR 531 is a subset of the VERROUS 530 area, and its addressing is done from a third secondary addressing information 232 provided in the page table.

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. The TOBJ 301 and TVERROUS 501 memory banks are grouped here in a single TOBJVER 301. In this case a memory space equal to TOBJ is lost due to the existence of the wire ~ MIRROR 540, but the number of components can possibly be reduced.

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. In this structure, the packet number 112 of the source logical address 100 can be allocated sequentially or result from a static multi-attribute hash. It constitutes the index in the packet table 101 of the current relationship of secondary addressing information 130 corresponding to the address of the page table associated with a packet.

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.
The page number 212 is the index in this page table of secondary addressing information 230 corresponding to an address in the table of objects
TOBJ associated with the page, and if necessary an element 231 formed by a tuple address for the relationship ~ VERROUS, as well as possibly by a tuples copy address.

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). The tuple number 312 constitutes the index of a secondary addressing information 330 corresponding to a tuple address or of a movement in its page, in the table TOBJ 301, and if necessary of an existence bit of a lock in an attribute ~ VERROUS.EXISTE of type set of bits in the memory bank EXISTE 401, and of a lock 530 in an attribute ~ VERROUS.VERROU of type set of locks (these are defined below).

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.
All of these table or tuple addresses, except the last one, are either physical addresses or
TIDs. If a logical address is encountered in the search for the tuple address ~ VERROUS, this logical address is converted recursively to a physical address.

Il n'y a pas de verrous sur la relation ~ VERROUS. Dans les autres cas cela implique un défaut de page.There are no locks on the ~ LATCHES relationship. In other cases this implies a page fault.

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. Advantageously, the logical addresses use a 32-bit word, and are therefore 31 bits taking into account the bit defining the logical / physical nature of the address. However, this assumption is made for purposes of illustration, and is not at all necessary for the validity of the 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. The page table can also contain the physical address of the page on disk (page number), and if necessary, forward and backward chaining information allowing lists of pages. This information is not used by the 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. The memory banks are connected as shown in FIG. 1. TPAQ is addressed by the packet number 10, taking account of the relation number NREL. This number defines an address base in each of the memory banks. There is a base of addresses 111, 211, 311 for each source relation of the current operation (generally one or two). The address base for the packet table is stored in a register at the start of the request, as are the other characteristics of the request (existence or not of locks in masking existence or not of locks in read / write; read, deletion, removal of locks on the copy, removal of locks at the end of the transaction; other common information); they are added to the movement defined by the package number 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. The base 111 and the displacement 112 are then added by an adder 120 forming means for selecting 160 of a recording in TPAQ. Given the small size of the package tables, it is also possible to directly use the relationship number as part of the TPAQ address. For the other tables 201, 301 the use of the address base 211, 311 of the relation is not absolutely necessary, the addresses obtained in the previous table level being able to be all in the local space of this relation. However, rewriting these tables from non-contiguous primary memory spaces, when loading the cache / NNU, would then require modifying all the addresses during the transfer, which is not necessarily optimal. an address base linked to the relationship for each table level is therefore a variant which may prove preferable.

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.
The value of the address of the current tuple of
TPAGES is obtained from address 210 issued by
TPAQ, page number (20; 212) and possibly address base 211 of the relationship. Three alternative embodiments can be envisaged
- the use of the relative number of relation as part of address (it supposes that in general the relations have a comparable size, which is not the most usual case);
- the use of an implicit address database through the addresses provided by TPAQ;
- the use of an explicit address database.

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).  In this case and as shown in Figure 1, we can avoid successively adding the three components of the address (base 211, the secondary addressing information formed by the address 210 of a set of TPAGES, number of page 20, 212) provided that the maximum size of a set of TPAGES is reserved for each relationship. The recording selection means in the memory bank 201 include adder and decoder circuits. The most significant 210a of the assembly address 210 are added with the address base 211 in a first adding circuit 221, and the least significant 210b with the page number 212 in a second adding circuit 222 (or vice versa).

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. A variant of addressing is to consider the number of packets per relation and the number of pages (maximum) per packet as fixed; this allows the page number and package address to be used separately; it is a variant of the solution using the relative number of the relation; it has the advantage of reducing the size of the word in 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 < adresse de tuple de ~ VERROUS 231 > < adresse de table des objets 230 > . Normalement ces deux résultats sont délivrés simultanément par TPAGES. An element of the table of pages 201 in the cache is formed of a fixed-length record comprising two secondary addressing information in the form <tuple address of ~ VERROUS 231> <table address of objects 230>. Normally these two results are delivered simultaneously by TPAGES.

Les circuits additionneurs 221, 222 peuvent le cas échéant coopérer avec un circuit multiplexeur 250. The adder circuits 221, 222 can if necessary cooperate with a multiplexer circuit 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. On the other hand, the secondary address information 231 (lock address), and possibly the secondary address information 232 (lock copy address) can be output from the TPAGES memory bank by command of a corresponding address shift in TPAGES provided by one or two input tracks 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.
In the case where at least some of said memory banks are produced in dynamic CMOS type memory boxes,
said boxes cooperate with the selection means associated with the address banks so as to allow independent sampling, of the row address portion (RAS) on the one hand, and of the column address portion (CAS) on the other hand. This makes it possible to address the memory with one of the address portions as soon as it is determined and without waiting for the value of the other address portion.

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.
This characteristic makes it possible to accelerate the operating speed of the device. Indeed, the part of the address located in the TID being available from the beginning of the operating cycle, it is sampled at the input of the memories of TPAGES and of
TOBJ in parallel with reading the memory of 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.
The value of the address of the current tuple of
TOBJET is obtained similarly to what has been described for TPAGES, from the address 310 delivered by TPAGES 30, 312, and possibly from the address base 311 of the relationship.

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. In the TOBJVER recording selection means 360, as represented in FIG. 1, the most significant 310a of the assembly address 310 are added with the address base 311 in a first adder circuit 321, and the weights weak 310b with page number 312 in a second adder circuit 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. As will be seen below, a multiplexer circuit 350 alternately ensures the engagement of the access phase to the recording of objects 330, and to a recording of locks 530, 531, in the case of the integrated memory bank TOBJVER 301 of 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. Of course, when the address base 311 does not exist, the adder circuit 321 has no reason to be. The same remark applies to the adder circuit 221 of the selection means 360 of a record of 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. A slightly faster solution consists in making the selection means 360 no longer in the form of a set of adders, but by means of a mixer circuit. This solution corresponds to the case where, in TOBJET, we reserve a fixed number of objects per page (for a given relation), which supposes that most of the pages have a number of objects close to the maximum in order to optimize the use of tables. The mixer circuit used then receives on the one hand the object number 312 coming from the logical address of objects 100, and on the other hand the overall address 310 coming from TPAGES. If the address 310 is given on x bits, and the object number 312 on y bits, each of the two input information will arrive on a separate bus comprising (x + y) wires. These two buses constitute the input of the mixer circuit, which will selectively mask the irrelevant bits of each bus (y bits for the address 310, and x bits for the object number 312), the thus masked buses then undergo a logical OR on the tracks of the same index , to obtain on the input bus of the TOBJ memory bank 301 (or on the multiplexer 350 if necessary) the object number 312 on the least significant bits, and the address 310 on the most significant bits.

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. A circuit of the same type can possibly replace the set of adders 221, 222 of the selection means 260 associated with the memory bank 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. In a preferred embodiment of the invention, the organization of the cache / MMU ensures the management of access conflicts of the same object by several different transactions.

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.
A conflict situation appears in particular when a second transaction requests to perform a read on an object, while a first transaction has performed a write operation. Consequently, conflict management consists first of all in identifying the nature of the operation (read or write) performed by the transaction each time a data item is accessed. It also involves ensuring systematic verification of all transactions requesting access to data that has undergone a write operation.
Two situations must be considered in the case of a write the deletion of an object from the source relation, and the insertion of an object in this source relation.

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é. In the case of an insertion, only the current transaction having carried out the write operation will be authorized for access, the lock placed corresponding to a masking lock. This means that other transactions continue, ignoring the hidden object.

Dans le cas d'une suppression, la transaction courante ayant effectué la suppression n'accède plus à l'objet supprimé. In the case of a deletion, the current transaction having carried out the deletion no longer accesses the deleted object.

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é. According to the invention, the conflict management system is based on locks, formed by specific locking information associated with each accessed object.

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.
These locks undergo the following operations
- they are initialized before the launch of one or more transactions;
- They include counters which are incremented on each access request by any transaction;
- these counters are decremented at the end of each transaction, by the value corresponding to the number of accesses requested by said 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. This last characteristic supposes that each transaction stores for its account the number of accesses that it requested, preferably in a copy of locks associated with each object of the file or of the result relation (generally temporary) for the 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.  Conflict resolution is done by providing a mirror copy of the lock, associated with each object in a source file (or relationship). At the occurrence of a conflict, we subtract from the object locking information requesting access, in the mirror lock of the source relation, the number stored in the result relation for access to said object for the current transaction.

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. When the result of the subtraction operation is different from 0, that is to say when at least one other transaction not yet completed has also obtained access to said object, access to said object is locked for the current transaction.

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). In the embodiment represented in FIG. 3a, each lock is constituted by a LOCK tuple, in a specific relation (lock memory bank 501), and by an EXISTING tuple in another relation (marking memory bank 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. The structure of the tuple ~ EXISTS consists of a field 31 of length of tuple, and an attribute 32 of type "set" whose length corresponds to the information in field 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. The structure of the tuple ~ LOCK is symmetrical, and includes a field 36 of tuple length, followed by an attribute 33 also of type "set". The attribute 33 comprises a succession of locks 34, on 32 bits, corresponding for example each to specific locking information on an object in a 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. In this case, which is that of the embodiment presented in the drawings, the assembly 33 provides locking information for a complete page.

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.
For each lock 34 of attribute 33 of the tuple
LOCK, attribute 32 has a bit 35 expressing whether lock 34 has a significant value, or is undefined.

Chaque information de verrouillage 34 présente avantageusement la structure schématisée en figure 3c. Each locking item 34 advantageously has the structure shown diagrammatically in FIG. 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.Thus, for each object, the locking information includes a counter 41, a stamping area 42, and a complementary bit area 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.  As already mentioned, the value of the counter is incremented by one each time the tuple is accessed in read mode, and decremented, at each end of the transaction, by the number of accesses requested by the completed transaction.

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. When a single transaction has locked in read mode, the stamp of this transaction is additionally stored in the stamp part 42 of the lock 34. This stamp is deleted in the event of locking by other 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. In the event of a conflict with a read lock by an unknown transaction, the system must check whether the lock comes from the transaction requesting the write lock (absence of conflict) or from another transaction. To do this, it copies the lock and decrements the copy for each TID which references it in the temporary relations of the transaction.

L'adresse du tuple verrou 231 peut être soit une adresse physique, soit une adresse logique (TID). The address of tuple lock 231 can be either a physical address or a logical address (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.
Although the cache card / MMU can be produced with either of the two solutions, the use of a logical address gives more flexibility to the system. In the case where it is a logical address, it is broken down into three elements (packet number 40, page 50 and tuple 60 in the relationship ~ VERROUS 501) multiplexed with the entries corresponding to the packet numbers 10 , page 20 and object 30; in the following cycle these three elements are used in place of the initial values of these inputs. It can also be a physical address. In this case it is used to access the attributes of the tuple lock in TEXIST 401 and
TVERROUS 501; if TVERROUS 501 and TOBJ 301 are replaced by TOBJVER 301, it is transmitted as a component of the address of TOBJVER in the next cycle, the first being used to access the TOBJ table.

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.
The current word for TEXIST 401 and TVERROUS 501 (if the latter exists) is addressed identically, apart from the existence of the signal
MIRROR which is positioned at the start of the operation. In the event of conflict detection, the lock decrement operation is a search operation distinct from the operation during which conflicts were detected; the register describing the operating mode is rewritten with new values. In the current word of
EXISTS, the tuple number also determines the current bit. EXISTED and LOCKED information can also be rewritten in the cache / MMU after selection, after modification by the processor.

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. The memory management unit of the invention therefore supports locking, possibly testing locks, removing locks on copies, as well as removing locks at the end of the transaction. It also allows good management of workspaces, by applying "masking locks" of deleted or inserted tuples. The fact that this possibility is offered in no way excludes the effective use of another method of competition management, such as certification, or the absence of competition management.

La figure 2 récapitule le fonctionnement de l'unité de gestion mémoire suivant l'invention. Figure 2 summarizes the operation of the memory management unit according to the 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. Phase 1 consists in successively using the memory banks TPAQ 101, TPAGES 201, TTUPLES 301 from the packet numbers 10, pages 20 and tuples 30 of the source logical address, in order to obtain the physical address result 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.
Phase 2 consists in fetching the locking information for the accessed object, with two aspects
- consultation of the EXISTE 401 lock marking memory bank, which makes it possible to know whether or not there is a lock on the object requesting access. This information is found in bit 35 of the row of the object on the page, since as we have already seen, each lock tuple advantageously corresponds to locking information for a complete page (see fig. 3a);
- consultation of the lock status field 530 of the lock memory bank 501, corresponding to the page in request for access; and consultation in this field 530 of the specific locking information 34 for the object requesting access.

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.
Consultation of the memory banks EXISTE 401 and VERROU 501 is carried out using two separate pieces of information
- physical address information of the records 430, 530, obtained by successive processing, in the TPAQ, TPAGE, TTUPLE banks, of the logical lock address 231 provided in phase 1 when consulting the memory bank of pages TPAGES ;
- bit bit rank information 35, and specific object locking information 34 respectively, in the records 430, 530, from the tuple number - 30 of the logical object address.

Le résultat fourni par la phase 1 est l'adresse physique 1 de l'objet en demande d'accès. The result provided by phase 1 is the physical address 1 of the object requesting access.

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é.
In the case where said integrated memory bank includes both object address tables, lock address tables and locking information tables,
said unit includes means for returning a physical address of locks obtained at the output of said integrated bank during said phase 2, to the input of said integrated bank for pointing and obtaining information for locking objects at the output of said integrated database, during a third phase of operation of the unit.

Le résultat fourni par la phase 2 est l'information spécifique de verrouillage 2 dudit objet en demande d'accès. The result provided by phase 2 is the specific locking information 2 of said object requesting access.

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. An internal bus 600 which connects the memory banks with those of the host machine makes it possible to initialize the cache / MMU at the start of the session, and to update it, either in order to create a "locks" tuple relative to a page which did not include one, either during modifications of the data page which can cause, in addition to modifications of the current lock, an increase in the size of the set of locks.

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. The internal bus 600 also makes it possible to update memory banks TPAQ, TPAGES and TOBJ, it being understood that any modification of any memory bank implies updating the memory banks located upstream.

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. Advantageously, the updating of the memory banks is carried out on the one hand by transmission of an activation bit 601, 602, 603, 604, 605 to the memory banks 101, 102, 103, 104, 105, and d on the other hand by sending the update data to separate sets 611, 612, 613, 614, 615 for each memory bank.

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. The management unit according to the invention may also include means for storing complementary information and / or addresses of complementary information, and means for accessing said complementary information from said source logical address. This additional information must obviously be information related to the addressing of the data, and may for example relate to the validity of the data.

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. In a preferred embodiment, the memory banks are RAMs, the RAM of TPAQ being for example with a capacity of 8 K words x 32 bits, and the RAMs of TPAGES and TOBJVERS being of a capacity of 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.  In the absence of cache / MMU, the time to access a tuple, without concurrency management or workspaces, is 3 memory accesses. With either concurrency management by locking, or workspace management, or more probably both, the time to access a tuple increases to 9 memory accesses.

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.With cache / MMU and current technology, the total time to obtain an object address increases to only 250 or 300 ns, the current duration of a memory access through a VME bus. The access time to the lock is of the order of an additional memory access, but it is masked by the following operations of the processor which are carried out in parallel. The number of memory accesses to obtain the address of a tuple is therefore reduced from 9 to 1. This gain is particularly significant in the case where the processing time for tuples is low, for example thanks to a specialized parallel processor of data base management. A gain of a factor of 4 or more over the whole of a join or selection operation can result. This type of MMU corresponds to a currently unmet need for a cache representing 5% of the data for large bases, with a minimum of around 1 Megabyte for small 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.
The management unit according to the invention is particularly suitable for working with a specialized processor of the type of database processor described in the doctoral thesis of the University
Paris VI (specialty: mathematics; computer science mention) supported by Pascal FAUDEMAY on June 20, 1986, on the subject "a VLSI processor for database operations, which was notably the subject of a patent application in the States United.

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.
However, the management unit according to the invention can perfectly be used with a general processor. Data such as the start addresses of the tables for each source relation of the current operation (~ VERROUS, REL1, if applicable
REL2, and possibly other RELi), the mode of operation, the stamp of the transaction are defined prior to the set operation of search or deletion. For each tuple, the processor writes the TID of this tuple to an input port on the cache / MMU card, then successively reads the physical address of the tuple and the lock, including its existence bit, in an output port . If the output port has 32 bits, the result is that the lock itself must use at most 31 bits.

Claims (21)

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, 1) Memory access management unit, of the type intended to be interposed between the central unit and the storage units of a computer, in particular for the management of databases, so as to associate physical addresses results of objects stored in said storage units at source logical addresses requested in requests from the central unit, 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, said logical addresses (100) being made up of at least two separate fields (10, 20, 30) each containing an indirect address, each field (10, 20, 30) corresponding to an indirect addressing of different level, unité caractérisée characterized unit en ce qu'elle est constituée in that it is made up - de banques mémoires d'adressage (101, 102, 103) correspondant chacune à un desdits niveaux d'adressage indirect, chacune desdites banques (101, 102, - address memory banks (101, 102, 103) each corresponding to one of said indirect addressing levels, each of said banks (101, 102, 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). the output (105, 205, 305) of each of said selection means (160, 260, 360) being connected to the input (105, 205, 305) of the associated address memory bank (101, 201, 301) , and the output (810) of the lowest level address memory bank (301) providing the result physical address corresponding to the source logical address (100). - 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, - means (160, 260, 360) for selecting a record, associated with each of said banks (101, 201, 301), said selection means (160, 260, 360) receiving on the one hand the indirect address (112, 212, 312) contained in a field (10, 20, 30) of the source logical address (100), said field (10, 20, 30) being at the same level as the associated address bank (101, 201, 301), and on the other hand, for banks (201, 301) other than the higher level bank (101), secondary addressing information (210, 310) coming from the bank of upper level (101, 201), and providing as output (105, 205, 305) the selected address for accessing a record of said associated bank, 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  103) comprising address tables, the records of which each contain secondary address information (130, 230, 330), each bank (101, 201, 301) receiving as input (105, 205, 305) an address of access to one of said records, and providing as output (210, 310, 810) the secondary addressing information contained in said record 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, 2) memory access management unit according to claim 1, characterized in that said logical address (100) consists of at least three address fields (10, 20, 30) of different levels, a first field (10) containing a packet number, a second field (20) containing a page number, and a third field (30) containing an object number, 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), and in that said unit contains at least three address memory banks, namely a packet bank (101), a page bank (201), and an object bank (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, said means for selecting (160, 260, 360) a record associated with each of said banks (101, 201, 301) ensuring the selection of a packet from the packet bank (101), from a page of said packets in said bank of pages (201), and of an object of said selected page, in the bank of objects (301), respectively, ladite banque d'objets (301) fournissant en sortie (810) l'adresse physique résultat dudit objet correspondant à l'adresse logique source (100). said object bank (301) providing at output (810) the physical address result of said object corresponding to the source logical address (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). 3) Unit according to any one of claims 1 or 2, characterized in that at least one of said selection means (160, 260, 360) also comprises an input for receiving an address base (111, 211, 311), and means for combining (120; 221, 222; 321, 322) of said address base (111, 211, 311) with the indirect address (112, 212, 312) coming from the field ( 10, 20, 30) of the same level of the source logical address (100), and for the address memory banks (201, 301) other than the higher level bank (101), with the secondary information d addressing (210, 310) coming from the immediately superior bank (101, 201), said combining means (120; 221, 222; 321, 322) providing as output said address for accessing a record of the bank of addressing (101, 201, 301) associated with said selection means (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. 4) Unit according to claim 3, characterized in that said combining means (120; 221, 222 321, 322) are adder circuits. 5) Unité selon la revendication 4, caractérisée en ce que lesdits moyens de combinaison < 120 ; 221, 222 321, 322) des moyens de sélection associés aux banques d'adressage autres que la banque d'adressage de plus haut niveau, sont constituées de deux circuits additionneurs (221, 222 t 321, 322) en parallèle, un premier circuit additionneur (221, 321) assurant la combinaison de l'adresse indirecte (212, 312) provenant du champ (20, 30) de même niveau de l'adresse logique source (100), avec les bits de poids faible (210b ; 310b) de l'information secondaire d'adressage (210, 310) provenant de la banque d'adressage (101, 201) de niveau immédiatement supérieur, et le second circuit additionneur (222 t 322) assurant la combinaison de ladite base d'adresses (211, 311) avec les bits de poids fort (210a ; 310a) de ladite information secondaire d'adressage (210, 310) provenant de la banque d'adressage (101, 201) de niveau immédiatement supérieur.  5) Unit according to claim 4, characterized in that said combination means <120; 221, 222 321, 322) selection means associated with the address banks other than the highest level address bank, consist of two adder circuits (221, 222 t 321, 322) in parallel, a first circuit adder (221, 321) ensuring the combination of the indirect address (212, 312) coming from the field (20, 30) of the same level of the source logical address (100), with the least significant bits (210b; 310b ) secondary address information (210, 310) from the address bank (101, 201) of immediately higher level, and the second adder circuit (222 t 322) ensuring the combination of said address base (211, 311) with the most significant bits (210a; 310a) of said secondary address information (210, 310) coming from the address bank (101, 201) of immediately higher level. 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, 6) Unit according to claim 2, characterized in that it also comprises a fourth memory bank of access locks (501), consisting of a table of locks, each record (530) corresponding to locking information and / or a locking information address, associated with a different page from the page bank 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. said. fourth lock memory bank (501) cooperating with fourth means for selecting a lock record providing as output the selected address for accessing a record from said lock bank. 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, 7) Unit according to claim 6, characterized in that each of said records from the page memory bank (201) comprises a field (231) containing secondary information for addressing locks, 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). and in that said record selection means (260) associated with said lock memory bank (501) receives as input said secondary lock addressing information (231) from the page memory bank (201), for outputting said selected address for accessing the corresponding record from said lock bank (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), 8) Unit according to claim 6, characterized in that said locking information contained in each record of the lock table (501) comprises a locking status field (530) containing specific locking information (34) for each object of the page associated with said record, said specific locking information (34) being placed consecutively inside said unique locking status field (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é. and in that said fourth lock memory bank (501) cooperates with means for selecting (510, 520) specific object lock information (34) corresponding to the object selected in the page associated with said record, said selection means (510, 520) providing as output the rank, in said locking status field (530), of access to said specific locking information (34) of said selected object. 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é. 9) Unit according to claim 8, characterized in that said recording selection means associated with said fourth lock memory bank (501) receive on the one hand the object number (312) of said source logical address (100), and on the other hand the secondary addressing information (310) coming from the page memory bank (201), to output the rank, in said locking status field (530), d access to said specific information for locking said selected object. 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é. 10) Unit according to claim 8, characterized in that it comprises a fifth lock marking memory bank (401), consisting of a table each record of which corresponds to one page of said page bank (201) and comprises a field (430) containing, for each recording of said fourth lock memory bank (501) associated with said corresponding page, information (35) of the existence or not of specific locking information in the locked state. 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). 11) Unit according to claim 8, characterized in that at least part of said fourth lock memory bank (501) is integrated into the object memory bank (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. 12) Unit according to any one of claims 1 or 2, characterized in that each of said memory banks (101, 201, 301, 401, 501) cooperates with means (600) for updating said banks, said means ( 600) comprising for each databank, on the one hand an entry (601, 602, 603, 604, 605) for activating the update function, and on the other hand an entry (611, 612, 613 , 614, 615) for receiving update data. 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. 13) Management unit according to any one of claims 1 or 2, characterized in that it comprises means for storing complementary information and / or addresses of complementary information, and means of access to said information. complementary from said source logical address. 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), 14) Unit according to any one of claims 6 and 11, characterized in that it comprises an input multiplexer circuit (150) receiving as input, on the one hand the values contained in the fields (10, 20, 30 ) the source logical address, and on the other hand a lock logical address (310) coming from the page memory bank (201), ledit circuit multiplexeur d'entrée (150) assurant alternativement l'enclenchement de l'une des deux phases suivantes said input multiplexer circuit (150) alternately ensuring the engagement of one of the following two phases - une première phase de conversion de l'adresse logique d'entrée (100) en adresse physique d'objet, a first phase of converting the logical input address (100) into a physical object address, - 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. - a second phase of conversion from. the logical lock address (231) in lock state information and / or in physical address of said lock state information. 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. 15) Unit according to Claims 14 and 10, characterized in that it comprises means for checking the relevance of the LOCK information as a function of the de-lock information provided by said fifth marking memory bank (401) lock. 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), 16) Unit according to claims 11 and 14, characterized in that it comprises an output multiplexer circuit (350), interposed between the integrated memory bank (301) of objects and latches, and the recording selection means associated with said integrated memory bank (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  said output multiplexer circuit (350) sending alternately to the input of said recording selection means (360) of said integrated memory bank - 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) - during said first phase, the object number (30, 312) of the source logical address (100), and the additional addressing information (230) coming from the page memory bank (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, - during said second phase, said additional addressing information (230) of phase 1, coming from the page memory bank via a first temporary storage register (520), and said object number (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). 312) of the source logical address from a second temporary storage register (510), as well as the object number (60, 312) of the lock address and the additional addressing information from the page memory bank (201) from the logical lock address (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, 17) Unit according to claim 16, characterized in that said integrated memory bank comprises tables of address of objects, as well as tables of address of locks and / or tables of information of locking, 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. said integrated bank supplying alternately a physical address for objects, and a physical address for locks. and / or information for locking said object, during said phases 1 and 2 respectively. 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,  18) Unit according to claim 16, characterized in that said integrated memory bank includes both object address tables, lock address tables and locking information tables, 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é. said unit comprising means for returning a physical address of locks obtained at the output of said integrated bank during said phase 2, to the input of said integrated bank for pointing and obtaining information on locking objects at the output of said integrated database, during a third phase of operation of the 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, 19) Unit according to claim 1, characterized in that at least some of said memory banks are produced in dynamic memory boxes of CMOS type, 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. said boxes cooperating with the selection means associated with the address banks so as to allow independent sampling, of the row address portion (RAS) on the one hand, and of the column address portion (CAS) on the other hand. 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, 20) Method for using a management unit according to claim 8, for managing conflicts of requests for access to the same object originating from at least two different transactions, caractérisé en ce que characterized in that - on initialise tous les verrous associés aux objets de la (ou des) relation(s) source(s); - we initialize all the locks associated with the objects of the source relation (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; - the specific locking information of each object is incremented, for each request for access to said object originating from any transaction; - 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). - the number of accesses it requested to each object, which is part of the result, of the source relation (s) is memorized for each 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. - at each end of one of the transactions in progress, the specific locking information of each object of the source relation is decremented by the value of the specific locking information corresponding to said object in the result relation. 21) Procédé suivant la revendication 20, caractérisé en ce que  21) Method according to claim 20, characterized in that - ledit champ d'état de verrouillage de ladite relation source est systématiquement dupliqué en un champ-miroir identique; - said locking state field of said source relationship is systematically duplicated in an identical mirror field; - à 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; - at each occurrence of a read / write conflict, we subtract the specific information for locking the object in request for access, in the mirror field of the source relation, the number stored in the result relation for access to said object for the current transaction; - 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.  - There is a conflict and we put on hold said transaction when the result of the subtraction operation is different from 0, that is to say when at least one other transaction not yet completed has obtained access to said object.
FR8709970A 1987-07-15 1987-07-15 MEMORY ACCESS MANAGEMENT UNIT, PARTICULARLY FOR DATABASE MANAGEMENT. Expired - Fee Related FR2618235B1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
FR8709970A FR2618235B1 (en) 1987-07-15 1987-07-15 MEMORY ACCESS MANAGEMENT UNIT, PARTICULARLY FOR DATABASE MANAGEMENT.
FR8805631A FR2630838A2 (en) 1987-07-15 1988-04-27 MEMORY ACCESS MANAGEMENT UNIT WITH INVARIANT LOGIC IDENTIFIERS, IN PARTICULAR FOR MANAGING DATABASES, AND CORRESPONDING ACCESS MANAGEMENT METHOD
DE19883885202 DE3885202T2 (en) 1987-07-15 1988-07-12 Access locking means for memory access management unit and access conflict management with such locking means.
EP88401819A EP0306357A1 (en) 1987-07-15 1988-07-12 Memory access management unit with logical unvarying identifiers, especially for data base management
EP19880401820 EP0304348B1 (en) 1987-07-15 1988-07-12 Access locking means for memory access management unit and access conflict management using such locking means
JP63177953A JPH01152546A (en) 1987-07-15 1988-07-15 Utilization of access managing means and access demand collision managing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR8709970A FR2618235B1 (en) 1987-07-15 1987-07-15 MEMORY ACCESS MANAGEMENT UNIT, PARTICULARLY FOR DATABASE MANAGEMENT.

Publications (2)

Publication Number Publication Date
FR2618235A1 true FR2618235A1 (en) 1989-01-20
FR2618235B1 FR2618235B1 (en) 1992-08-28

Family

ID=9353139

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8709970A Expired - Fee Related FR2618235B1 (en) 1987-07-15 1987-07-15 MEMORY ACCESS MANAGEMENT UNIT, PARTICULARLY FOR DATABASE MANAGEMENT.

Country Status (1)

Country Link
FR (1) FR2618235B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3614746A (en) * 1968-10-31 1971-10-19 Philips Corp Memory addressing device using arbitrary directed graph structure
US4527232A (en) * 1982-07-02 1985-07-02 Sun Microsystems, Inc. High-speed memory and memory management system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3614746A (en) * 1968-10-31 1971-10-19 Philips Corp Memory addressing device using arbitrary directed graph structure
US4527232A (en) * 1982-07-02 1985-07-02 Sun Microsystems, Inc. High-speed memory and memory management system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 18, no. 2, juillet 1975, pages 525-526, New York, US; C.R. MASOG et al.: "Compatible expanded main storage addressability" *

Also Published As

Publication number Publication date
FR2618235B1 (en) 1992-08-28

Similar Documents

Publication Publication Date Title
US10230643B2 (en) Full flow retrieval optimized packet capture
CA2156227C (en) Device and process for generating object-oriented interfaces for relational data bases
BE1003816A4 (en) APPARATUS AND METHOD FOR ACCESSING DATA IN PAGES stored MEMORY.
FR3023030B1 (en) INVALIDATION DATA AREA FOR CACHE
US20130013890A1 (en) Database system
FR2613505A1 (en) METHOD OF FAST OPENING OF DISC FILES IDENTIFIED BY THE NAME OF PATHS
WO1999012099A1 (en) Method for allocating memory in a multiprocessor data processing system
FR2787601A1 (en) Memory system with anti-wear memory management and method of managing an anti-wear memory so as to increase duration life of memory
FR2824160A1 (en) DYNAMICALLY CONFIGURABLE GENERIC CONTAINER
EP1483673A1 (en) Method for storing data blocks in a memory
WO2018046850A1 (en) Methods and devices for bypassing the internal cache of an advanced dram memory controller
EP1607878B1 (en) Method for managing a virtual address used to program a DMA controller, computer program and system on a chip therefor.
FR2472232A1 (en) DEVICE AND METHOD FOR DELETING ANEMEMATORY
FR2600441A1 (en) MEMORY MANAGEMENT UNIT
EP0304348B1 (en) Access locking means for memory access management unit and access conflict management using such locking means
FR2618235A1 (en) Memory access management unit, especially for database management
FR2645987A1 (en) DEVICE FOR ACCELERATING MEMORY ACCESS IN A COMPUTER SYSTEM
EP3506110A1 (en) Multi-access to a data file stored in a data storage system related to a buffer memory
EP3239851B1 (en) Management of access to data in a storage system
US8825970B1 (en) System and method for mounting a storage volume utilizing a block reference list
EP0354073A1 (en) Random access memory management system
FR2799555A1 (en) System for accessing overlapping memory modules of different capacity, comprises bank control table, an address bit position table and parts to determine module number and row and column numbers
EP4180974A1 (en) Method and system for managing cache
FR2632094A1 (en) Apparatus and method for getting access to data stored in a page memory
WO2021089928A1 (en) Method for executing a transaction

Legal Events

Date Code Title Description
ST Notification of lapse