FR 2583540 A1 19861219 FR 8512931 A 19850830 La présente invention concerne le domaine des dispo- sitifs de traduction d'adresses pour gestion de mémoire, en particulier dans un système à microprocesseur. Il existe de nombreux dispositifs bien connus pour une gestion de mémoire. Dans certains systèmes, une grande adresse (adresse virtuelle) est traduite en une adresse phy- sique plus petite. Dans d'autres, une petite adresse est utilisée pour accéder à un grand espace de mémoire, par exemple en utilisant une commutation par blocs. La présen- te invention se rapport à la première catégorie, c'est-à- dire o une grande adresse virtuelle est utilisée pour ac- céder à une mémoire physique limitée. Dans des systèmes de gestion de mémoire, il est éga- lementconnu de prévoir différents mécanismes de protection. Par exemple un système peut empêcher un utilisateur d'écri- re dans un système opérationnel ou même il peut empêcher d'effectuer la lecture du système opérationnel à des portes extérieures. Comme on le voit, la présente invention concer- ne un mécanisme de protection faisant partie d'un système de commande plus important, qui affecte des "attributs" à des données à deux niveaux distincts. L'art antérieur le plus rapproché et connu de la de- manderesse est celui décrit dans le brevet US 4 442 484. Ce brevet décrit le mécanisme de gestion et de protection de mé- moirequi est incorporé à un microprocesseur disponible dans le commerce, à savoir Intel 286. Ce microprocesseur comporte des registres de descripteurs de segmentation contenant des adresses de base de segments, une information limite et des attributs (par exemple des bits de protection). La table de descripteurs de segments et les registres de descripteurs de segments contiennent des bits définissant différents mé- canismes de commande, comme un niveau privilégié, des types de protection, etc. Ces mécanismes de commande sont décrits en détail dans le brevet US 4 442 484. Un problème posé par le microprocesseur Intel 286 est que le décalage de segments est limité à 64 k.octets. Il nécessite également des emplacements consécutifs dans une mémoire physique pour un segment qui n'est pas toujours aisé à maintenir. Comme on le voit, un avantage du système inventé consiste en ce que le décalage de segments est aussi grand que l'espace d'adressage physique. Ainsi le système inventé possède éga- lement une compatibilité avec le mécanisme de segmentation connu qui est appliqué dans Intel 286. D'autres avantages et différences entre le système de l'art antérieur décrit dans le brevet mentionné ci-dessus et sa réalisation commer- ciale (microprocesseur de Intel 286) seront mis en évidence dans la description détaillée de la présente invention. On va décrire un perfectionnement apporté à un sys- tème à microprocesseur, qui comprend un microprocesseur et une mémoire de données. Le microprocesseur comporte un mé- canisme de segmentation pour traduire une adresse de mémoi- re virtuelle en une seconde adresse de mémoire (adresse li- néaire) et pour tester et commander des attributs de segments de mémoire de données. Le perfectionnement apporté par la présente invention comprend une anté-mémoire de pages prévue dans lemicroprocesseur pour traduire une première zone pro- venant de l'adresse linéaire pour une condition de concor- dance ou d'adaptation. La mémoire de données mémorise éga- lement des données de localisation de pages, spécifiquement un répertoire de pages et une table de pages.La première zone assure l'accès au répertoire de pages et à la table de pages si aucune concordance n'est établie dans l'anté-mémoi- re de pages. Le signal de sortie de l'anté-mémoire de pages ou de la table de pages établit une adresse de base physique pour une page dans la mémoire. Une autre zone de l'adresse linéaire définit un décalage à l'intérieur de la page. A la fois l'anté-mémoire de pages et des données de localisation de pages se trouvant dans la mémoire de données mémorisent des signaux représentant des attributs des don- nées se trouvant dans une page particulière. Ces attributs comprennent une protection de lecture et d'écriture, une in- dication précisant si la page a été précédemment écrite, et une autre information. Avantageusement, la protection de niveau de page établit un second degré de contrôle de don- nées dans la mémoire, lequelest séparé et distinct des attri- buts de segments. D'autres caractéristiques et avantages de l'inven- tion seront mis en évidence dans la description qui va sui- vre, donnée à titre d'exemple non limitatif, en référence aux dessins annexés dans lesquels: La figure 1 est un schéma synoptique montrant l'archi- tecture d'ensemble du microprocesseur auquel la présente invention est appliquée; la figure 2 est un schéma synoptique montrant le mé- canisme de segmentation incorporé au microprocesseur de la figure 1; la figure 3 est un schéma synoptique illustrant la localisation d'une zone de page pour une concordance ou adap- tation dans l'anté-mémoire de pages; la figure 4 est un schéma synoptique illustrant la localisation d'une zone de page en l'absence de concordan- ce ou d'adaptation dans l'anté-mémoire de pages de la figure 3; pour cette condition, le répertoire de pages et la table de pages de la mémoire principale sont utilisés et, en con- séquence, sont représentés sur la figure 4; la figure 5 est un diagramme utilisé pour illustrér les attributs mémorisés dans le répertoire de pages, la ta- ble de pages et l'anté-mémoire de pages; la figure 6 est un schéma synoptique montrant l'or- ganisation de la mémoire adressable par le contenu et des données placées dans l'anté-mémoire de pages; la figure 7 est un schéma électrique d'une partie de la mémoire adressable par le contenu de la figure 6; la figure 8 est un schéma électrique des circuits lo- giques associés au détecteur de la figure 6. Un système à microprocesseur, et en particulier un mécanisme de gestion de mémoire pour ce système, vont être décrits dans la suite. On donnera de nombreux détails spéci- fiques, tels que le nombre spécifique de bits, etc..., de - façon a permettre une bonne compréhension de la présente in- vention. Cependant il est évident pour un spécialiste en la matière que la présente invention peut être mise en prati- que sans ces détails spécifiques. Dans d'autres cas, des structures bien connues ne sont pas représentées et décri- tes en détail afin de ne pas obscurcir inutilement la pré- sente invention. Dans le mode de réalisation couramment préféré, le système à microprocesseur comprend le microprocesseur 10 de la figure 1. Ce microprocesseur est réalisé sur un seul substrat en silicium en utilisant un traitement métal-oxyde- semi-conducteur complémentaire (CMOS). On peut utiliser l'un quelconque des procédés CMOS bien connus mais cependant il va de soi que la présente invention peut être mise en oeu- vre avec d'autres technologies, par exemple à canal-n, bi- polaire, SOS, etc... Le mécanisme de gestion de mémoire nécessite dans certaines conditions un accès à des tables mémorisées dans la mémoire principale. Une mémoire à accès sélectif (RAM) 13, qui fonctionne comme la mémoire principale pour le sys- tème est représentée sur la figure 1. On peut utiliser une mémoire RAM ordinaire, par exemple une qui fait intervenir des mémoires dynamiques. Comme indiqué sur la figure 1, le microprocesseur a une adresse physique de 32 bits et le processeur pro- prement dit est un processeur de 32 bits. D'autres compo- sants d'un système à microprocesseur couramment utilisés, tels que des éléments de commande, des processeurs mathé- matiques, etc., ne sont pas représentés sur la figure 1. Le système de gestion de mémoire conforme à l'in- vention utilise à la fois une segmentation et une pagina- tion. Des segments sont définis par un ensemble de tables de descripteurs de segments, qui sont séparées des tables de pages utilisées pour décrire la traductiondes pages. Les deux mécanismes sont complètement séparés et indépen- dants. Une adresse virtuelle est traduite en une adresse physique dans deux étapes distinctes, en utilisant deux mé- canismes de localisation distincts. Une technique de segmen- tation est utilisée pour la première étape de traduction et 3540 une technique de pagination est utilisée pour la seconde étape de traduction. La traduction de pagination peut être arrêtée de façon à produire une traduction en une étape avec seulement une segmentation, ce qui est compatible avec le microprocesseur Intel 286. Une segmentation (la première traduction) traduit une adresse virtuelle de 48 bits en une adresse linéaire (intermédiaire) de 32 bits. L'adresse virtuelle de 48 bits est composée d'un sélecteur de segment de 16 bits et d'un décalage de 32 bits à l'intérieur de ce segment. Le sélec- teur de segment de 16 bits identifie le segment et est uti- lisé pour accéder à une entree dans la table de descripteurs de segments. Cette entrée de descripteur de segment contient une adresse de base du segment, la taille (limite) du segment et différents attributs de ce segment. L'étape de traduction ajoute la base de segment au décalage de 32 bits de l'adres- se virtuelle de façon à obtenir une adresse linéaire de 32 bits. En même temps,le décalage de 32 bits se trouvant dans l'adresse virtuelle est comparé avec la limite de segment et le type de l'accès est contrôlé par rapport aux attributs du segment. Une interruption est produite et le processus d'adressage est arrêté, si le décalage de 32 bits est situé à l'extérieur de la limite de segment, ou bien si le type d'accès n'est pas autorisé par les attributs du segment. Une pagination (la seconde traduction) traduit une adresse linéaire de 32 bits en une adresse physique de 32 bits en utilisant une table de pagination à deux niveaux, dans un processus décrit en détail dans la suite. Les deux étapes sont totalement indépendantes. Ce- la permet à un (grand) segment d'être composé de plusieurs pages, ou bien à une page d'être composée de plusieurs (pe- tits) segments. Un segment peut commencer à n'importe quelle limite, et il peut avoir une dimension arbitraire; il n'est pas astreint à commencer à une limite de page et il ne doit éga- lementpas avoir une longueur qui soit un multiple exact de pages. Cela permet à des segments de décrire des zones pro- j/ 2533540 tégées séparément d'une mémoire, qui commencent à des adres- ses arbitraires et qui ont des dimensions arbitraires. Une segmentation peut être utilisée pour grouper un certain nombre de petits segments en une seule page, chaque segment possédant ses attributs particuliers de pro- tection et une dimension particulière. Dans ce cas une segmentation définit des attributs de protection et une pa- gination fournit un moyen commode de localisation dans une mémoire physique d'un groupe d'unités correspondant qui doi- vent être protégées séparément. Une pagination peut être utilisée pour décomposer de très grands segments en petites unités en vue d'une ges- tion de mémoire physique. Cela fait intervenir un seul iden- tificateur (le sélecteur de segment) et un seul descripteur (le descripteur de segment) pour une unité séparément proté- gée de la mémoire, au lieu de nécessiter l'utilisation d'une multitude de descripteurs de pages. A l'intérieur d'un segment, une pagination établit un niveau additionnel de lo- calisation qui permet de localiser de grands segments dans des pages séparées ne devant pas être contiguës dans une mé- moire physique. En fait, une pagination permet de localiser un grand segment de telle sorte que seulement quelques pa- ges se trouvent à un moment donné dans une mémoire physique, alors queles parties restantes du segment sont enregistrées sur un disque. Une pagination facilite également la défini- tion d'une sous-structure à l'intérieur d'un grand segment, par exemple pour protéger contre une écriture certaines pa- ges d'un grand segment alors que d'autres pages peuvent être écrites. Une segmentation établit un modèle de protection pré-complet qui opère sur les unités "naturelles" utilisées par un programmeur, à savoir des éléments de dimensions ar- bitraires d'une mémoire adressée linéairement. Une pagina- tion fournit le moyen le plus commode pour gérer une mémoire physique, à savoir à la fois la mémoire principale du systé- me et une mémoire d'appoint à disques. La combinaison des deux procédés dans la présente invention permet d'obtenir un modèle de protection de mémoire très souple et très effi- cace. On va maintenant décrire l'architecture d'ensemble du microprocesseur. Sur la figure 1, le microprocesseur com- prend une unité 14 formant interface de bus. L'unité d'inter- face de bus comprend des mémoires tampons permettant une transmission des signaux d'adresses de 32 bits ainsi qu'une émission et une réception des 32 bits de données.A l'intérieur du micro- processeur, l'unité 14 communique par l'intermédiaire du bus interne 19. L'unité d'interface comprend une unité de pré- extraction pour extraire des instructions de la mémoire RAM 12 et une file d'attente de pré-extraction qui communique avec l'unité d'instruction de l'unité de décodage d'instruc- tions 16. Les instructions mises en file d'attente sont traitées dans l'unité d'exécution 18 (unité logique arithmé- tique) qui comprend un fichier à registre de 32 bits. Cette unité, ainsi que l'unité de décodage, communique avec le bus interne 19. La présente invention est centrée sur l'unité de traduction d'adresses 20. Cette unité remplit deux fonctions, dont l'une est associée aux registres de descripteurs de segments tandis que l'autre est associée à l'anté-mémoire de descripteurs de pages. Les registres de segments sont en majeure partie connus dans l'art antérieur; il seront cependant décrits de façon plus détaillée en référence à la figure 2. L'anté- mémoire de pages et son interaction avec le répertoire de pages et la table de pages mémorisées dans la mémoire principale 13 seront décrites en relation avec les figures 3 à 7 et forment la base de la présente invention. On va d'abord décrire le mécanisme de segmentation. L'unité de segmentation de la figure 1 reçoit une adresse virtuelle provenant de l'unité d'exécution 18 et accède à l'information de segmentation de registre approprié. Le registre contient l'adresse de base de segment, qui est transmise, en même temps que le décalage provenant de l'adresse virtuelle, à l'unité de pagination par l'inter- O3540 médiaire de lignes 23. La figure 2 montre l'accès à des tables de la mémoi- re principale lorsque les registres de segmentation sont charges avec une information de localisation concernant un nouveau segment. La zone de segment indexe la table de des- cripteurs de segments dans la mémoire principale 13. Les contenus de la table fournissent une adresse de base et addi- tionnellement des attributs associés aux données se trouvant dans le segment. L'adresse de base et le décalage sont com- parés avec les limites de segment dans le comparateur 27; le signal de sortie de ce comparateur constituant un signal d'interruption. L'additionneur 26, qui fait partie du micro- processeur, combine l'adresse de base et le décalage pour transmettre une adresse "physique" dans les lignes 31. Cette adresse peut être utilisée par le microprocesseur comme une adresse physique ou bien peut être utilisée par l'unité de pagination. Cela est réalisé pour créer une compatibilité avec certains programmes établis pour un microprocesseur connu (Intel 286). Pour le microprocesseur Intel 286, l'es- pace d'adresse physique est de 24 bits. Les attributs de segments, incluant des détails sur les descripteurs utilisés, comme les différents niveaux privilégiés, ont été décrits dans le brevet US 4 442 484. Le fait que le mécanisme de segmentation est connu dans l'art antérieur est représenté sur la figure 2 par la ligne en trait interrompu 28, sur la gauche de laquelle sont indiquées des structures de l'art antérieur. Le bloc de localisation de zones de pages 30, qui comprend l'unité de pagination de la figure 1 ainsi que son système d'interaction avec le répertoire de pages et la ta- ble de pages qui sont mémorisés dans la mémoire principale, est représenté sur les figures 3 à 7. Bien que, dans le mode de réalisation présentement préféré, le mécanisme de segmentation utilise des registres de masquage, il pourrait également être réalisé avec une an- té-mémoire comme le mécanisme de pagination. On va maintenant décrire l'anté-mémoire de descrip- teurs de pages. Sur la figure 3, l'anté-mémoire de descrip- teurs de pages de l'unité de pagination 22 de la figure 1 est représentésà l'intérieur de la ligne en trait interrom- pu 22a. Cette mémoire comprend deux ensembles, à savoir une mémoire à contenu adressable (CAM) 34 et une mémoire de don- nées (bases) de pages 35. Les deux mémoires comportent des cellules de mémorisation statique. L'organisation des mémoi- res 34 et 35 est décrite en référence à la figure 6. Les circuits spécifiques utilisés pour la mémoire CAM 34 ainsi que sa nouvelle caractéristique de masquage sont décrits en référence aux figures 7 et 8. Les adresses linéaires provenant de l'unité de segmen- tation 21 sont appliquées à l'unité de pagination 22 de la fi- gure 1. Comme le montre la figure 3, cette adresse linéaire comprend deux zones, à savoir la zone d'information de page (20 bits) et une zone de déplacement (12 bits). Additionnel- lement, il est prévu une zone d'attributs de pages à 4 bits, établie par le microcode. La zone d'information de page de bits est comparée avec les contenus de la mémoire CAM 34. Egalement les 4 bits d'attribut ("incorrect", "valable", "U/S", et "W/R") doivent également correspondre à ceux se trouvant dans la mémoire CAM avant qu'une coïncidence se produise. (Il existe une exception à cela lorsqu'une "masquage" est utilisé comme cela sera décrit). Pour une condition de coïncidence, la mémoire 35 fournit un mot de base de 20 bits qui est combiné avec la zone de déplacement de 12 bits de l'adresse linéaire, comme représenté par l'additionneur 36 de la figure 3, et l'adres- se physique résultante est sélectionnée dans une trame de page de 4 k.octets dans la mémoire principale 13. On va maintenant décrire un adressage de page pour la condition de noncoincidence. Un répertoire de pages 13a et une table de pages 13b sont mémorisés dans la mémoire principale 13 (cf. figure 4). L'adresse de page pour le ré- pertoire de pages est fournie par le microprocesseur et est indiquée sur la figure 4 comme la base de répertoire de pa- ges 38. Dix bits de la zone d'information de page sont uti- lisés comme un index (après une pondération par un facteur de 4) dans le répertoire de page, comme indiqué par l'addi- tionneur 40 sur la figure 4. Le répertoire de pages fournit un mot de 32 bits. Vingt bits de ce mot sont utilisés comme base pour la table de pages. Les dix autres bits de la zone d'information de page sont utilisés de façon semblable com- me un index (à nouveau avec une pondération par le facteur 4) dans la table de pages, comme indiqué par l'additionneur 41. La table de pages fournit également un mot de 32 bits, dont 20 bits définissent la base de page de l'adresse physi- que. Cette adresse de base de page est combinée, comme indi- qué par l'additionneur 42, avec la zone de déplacement de 12 bits de façon à former une adresse physique de 32 bits. Cinq bits des zones à 12 bits du répertoire de pa- ges et de la table de pages sont utilisés pour des attributs, en particulier "incorrect", "accès", "U/S", "R/W" et "pré- sent". Ceux-ci seront décrits de façon plus détaillée en relation avec la figure 5. Les bits restants de cette zone ne sont pas effectés. Les attributs mémorisés du répertoire et de la table de pages sont transmis à un circuit logique de commande 75 en même temps que les 4 bits de l'information d'attribut associés à l'adresse linéaire. Des parties de ce circuit lo- gique sont représentées sur les figures suivantes qui vont être décrites en référence à ces figures. Sur la figure 5, on a à nouveau indiqué le mot de répertoire de pages, le mot de table de pages et le mot de mémoire CAM. Les attributs de protection/commande affectés aux quatre bits du mot de répertoire de pages sont indiqués en regard de la parenthèse 43. Les quatre mêmes attributs, avec un attribut supplémentaire, sont utilisés pour le mot de table de pages et sont indiqués en regard de la parenthè- se 44. Les quatre attributs utilisés pour le mot de mémoire CAM sont indiqués en regard de la parenthèse 45. Les attributs sont utilisés pour les fonctions sui- vantes: 1. INCORRECT: Ce bit indique si-une page a été écri- te. Le bit est changé une fois qu'une page a été écrite. Ce bit est utilisé, par exemple, pour informer le système opé- rationnel qu'une page complète n'est pas "propre". Ce bit est mémorisé dans la table de pages et dans la mémoire CAM (et non dans le répertoire de pages). Le processeur assure l'activation de ce bit dans la table de pages lorsqu'une page est écrite. * 2. ACCES: Ce bit est mémorisé seulement dans le ré- pertoire de page et la table de pages (et non dans la mémoi- re CAM) et il est utilisé pour indiquer qu'une page a fait l'objet d'un accès. Une fois qu'une page a fait l'objet d'un accès, ce bit est changé dans la mémoire par le processeur. A la différence du bit "incorrect", ce bit indique si une page a fait l'objet d'un accès pour une écriture ou pour une lecture. 3. U/S: L'état de ce bit indique si le contenu de la page est accessible à un utilisateur et à un superviseur (1 binaire) ou bien seulement à un superviseur (0 binaire). 4. R/W: Ce bit de protection de lecture et d'écritu- re doit avoir l'état binaire 1 pour permettre à la page d'être écrite par un programme d'utilisateur. 5. PRESENT: Ce bit placé dans la table de pages in- dique si la page associée est présente dans la mémoire physi- que. Ce bit placé dans le répertoire de pages indique si la table de pages associée est présente dans la mémoire physique. 6. VALABLE: Ce bit, qui est mémorisé seulement dans la mémoire CAM, est utilisé pour indiquer si le contenu de la mémoire CAM est valable. Ce bit est placé dans un premier état lors d'une initialisation puis il est changé lorsqu'un mot valable de la mémoire CAM est chargé. Les cinq bits du répertoire de pages et de la table de pages sont appliqués au circuit logique de commande 75 pour produire des signaux appropriés d'interruption à l'in- térieur du microprocesseur. Des bits d'utilisateur/superviseur provenant du ré- pertoire de pages et de la table de pages sont soumis à une combinaison logique ET, comme indiqué par la porte 46, pour produire le bit R/W mémorisé dans la mémoire CAM 34 de la fi- gure 3. De façon analogue, les bits de lecture/écriture pro- venant du répertoire et de la table de pages sont soumis à une combinaison logique ET par l'intermédiaire d'une porte 47 de façon à produire le bit W/R mémorisé dans la mémoire CAM. Le bit "incorrect" provenant de la table de pages est mémorisé dans la mémoire CAM. Ces portes font partie du cir- cuit logique 75 de la figure 4. Les attributs mémorisés dans la mémoire CAM sont "automatiquement" testés puisqu'ils sont traités comme une partie de l'adresse et qu'ils sont adaptés aux quatre bits provenant du microcode. Une condition d'interruption se pro- duit même si une base de page valable est mémorisée dans la mémoire CAM, par exemple quand l'adresse linéaire indique qu'un cycle d'écriture par "utilisateur" doit se produire dans une page pour R/W = 0. La combinaison logique ET des bits U/S provenant du répertoire et de la table de pages fait en sorte que le "cas le plus défavorable" soit mémorisé dans l'anté-mémoire. De façon analogue, la combinaison logique ET des bits R/W fournit le cas le plus défavorable à l'anté-mémoire. On va maintenant décrire l'organisation de l'anté- mémoire de descripteurs de pages. La mémoire CAM 34, comme indiqué sur la figure 6, est organisée en 8 ensembles, avec 4 mots dans chaque ensemble. Vingt-et un bits (17 pour l'adresse et 4 pour les attributs) sont utilisés pour trou- ver une correspondance dans cet ensemble. Les quatre lignes de comparaison correspondant aux quatres mots mémorisés dans chaque ensemble sont reliées à un détecteur. Par exemple les lignes de comparaison des quatre mots de l'ensemble 1 sont reliées au détecteur 53. De façon analogue, les lignes de comparaison des quatre mots des ensembles 2 à 8 sont reliées à des détecteurs. Les lignes de comparaison sont explorées par les détecteurs de façon à déterminer quel mot de l'en- semble correspond à l'entrée (21 bits) de la mémoire CAM. Chacun des détecteurs contient un circuit logique "cAblé matériellement"qui permet une sélection d'un des détecteurs en fonction de l'état des 3 bits contenus dans la zone d'information de page de 20 bits qui est reliée aux dé- tecteurs. (Il est à noter que les 17 autres bits de cette zone d'information de pages sont reliés à la mémoire CAM). Dans un but d'explication, huit détecteurs ont été représenté sur la figure 6. Dans le présent mode de réali- sation, un seul détecteur est utilisé avec les trois bits, en sélectionnant un ensemble de quatre lignes pour un cou- plage avec le détecteur. Le détecteur proprement dit est représenté sur la figure 8. La partie de mémorisation de données de l'anté-mé- moire est organisée en quatre groupes, représentés par les groupes 35a-d. Les mots de données correspondant à chaque ensemble de la mémoire CAM sont répartis de façon qu'un mot soit mémorisé dans chacun des quatre groupes. Par exem- ple, le mot de données (adresse de base) sélectionné par une coïncidence avec le mot 1 de l'ensemble 1 est situé dans le groupe 35a, le mot de données sélectionné par une coincidence avec le mot 2 de l'ensemble 1 estsitué dans le groupe 35b, etc. Les trois bits utilisés pour sélection- ner un détecteur-sont également employer pour sélectionner un mot dans chacun des groupes. En conséquence, simultané- ment, des mots sont sélectionnés dans chacun des quatre groupes. La sélection finale d'un mot dans les groupes est effectuée par l'intermédiaire du multiplexeur 55. Ce multi- plexeur est commandé par les quatre lignes de comparaison dans le détecteur. Lorsque l'anté-mémoire fait l'objet d'un accès, le processus d'adaptation, qui est un processus relativement lent, commence par l'utilisation des 21 bits. Les trois au- tres bits sont capables de sélectionner immédiatement un ensemble de quatre lignes et le détecteur est préparé pour détecter une baisse de potentiel dans les lignes de compa- raison. (Comme cela sera précisé, toutes les lignes de com- paraison (rangées) sont préchargées, la ligne sélectionnée (coïncidence) restant chargée alors que les lignes non sé- lectionnées se déchargent). Simultanément quatre motsprove- nant de l'ensemble sélectionné font l'objet d'un accès dans les groupes 35a- 35d. Si et quand une correspondance se pro- duit, le détecteur est capable d'identifier le mot à l'inté- rieur de l'ensemble et cette information est transmise au multiplexeur 55 en permettant la sélection du mot de données. Cette organisation améliore le temps d'accès à l'anté-mémoire. On va nmaintenant décrire la mémoire adressable par le contenu (CAM}.Sur la figure 7, les 21 bits qui sont reliés à la mémoire CAM sont à nouveau représentés de telle sorte que 17 bits soient reliés au circuit prioritaire et générateur de complément 56 tandis que les 4 bits d'attribut sont reliés au circuit logique VUDW 57. Les 3 bits associés à la sélec- tion des détecteurs décrits en référence à la figure 6 ne sont pas représentés sur la figure 7. Le circuit 56 produit le signal vrai et le signal complémentaire pour chacun des signaux d'adresse et il trans- met ces signaux à la mémoire CAM par des lignes parallèles, comme les lignes 59 et 60. De façon analogue, le circuit lo- gique VUDW 57 produit à la fois le signal vrai et le signal complémentaire pour les bits d'attribut et les transmet à la mémoire par des lignes parallèles. Leslignes 59 et 60 inter- viennent en double pour chacune des lignes de bits vrais et de bits de complément (c'est-à-dire 21 pairesde lignes de bits vrais et de bits de complément). Chacune des 32 rangées de la mémoire CAM comporte une paire de lignes de rangées parallèles, telles que les lignes 68 et 70. Une cellule de mémoire statique ordinaire, telle que la cellule 67 est branchée entre chacune des li- gnes de bits vrais et de bits de complément (colonnes) et est associée à la paire de lignes de rangées. Dans le mode de réalisation présentement préféré, lescellulesde mémoire comprennent des cellules statiques ordinaires à bascule uti- lisant des transistors à canal-p. Une ligne de chaque paire de lignes de rangées (ligne 70) permet à la cellule de mémoi- re d'être reliée à la ligne de bits vrais et à la ligne de bits de complément lorsqu'une donnée est écrite dans le grou- pe. Autrement le contenu de la cellule de mémoire est compa- ré aux données se trouvant dans les lignes de colonnes et le résultat de la comparaison est transmis à la ligne de coïncidence 68. La comparaison est effectuée par des com- parateurs, un comparateur étant associé à chaque cellule. Le comparateur comprend les transistors à canal-n désignés par 61 à 64. Chaque paire de transistors de comparaison, par exemple les transistors 61 et 62, sont branchés entre un côté de la cellule de mémoire et la ligne de bit oppo- sée. On va supposer qu'une donnée est mémorisée dans la cellule de mémoire 67 et que le point de la cellule la plus proche de la ligne de bits 59 se trouve au niveau haut. Lorsque les contenus de la mémoire CAM sont examinés, en premier lieu la ligne de coïncidence 68 est préchargée par l'intermédiaire du transistor 69. Ensuite les signaux appli- qués à la mémoire CAM sont placés dans les lignes de colonnes. On va d'abord supposer que la ligne 69 se trouve au niveau haut. Le transistor 62 n'est pas conducteur puisque la ligne est au niveau bas. Le transistor 63 n'est pas conducteur puisque le côté de la cellule auquel il est relié est au ni- veau bas. Dans ces conditions, la ligne 68 n'est pas déchar- gée et indique qu'une correspondance s'est produite dans la cellule. La ligne de coïncidence 68 assure une combinai- son logique ET des comparaisons se produisant le long de la rangée. Si une correspondance ne se produit pas, un ou plu- sieurs des comparateurs assurent une décharge de la ligne de coïncidence. Pendant une précharge, les circuits 56 et 57 engen- drent un signal prioritaire faisant en sorte que toutes les ligne de colonnes (bits et bits de complément) passent à un niveau bas. Cela empêche les comparateurs d'évacuer la charge des lignes de coïncidence avant que la comparaison ne commence. Il est à noter que les comparateurs examinent la condition "1 binaire" et qu'ils ignorent en fait la condi- tion "0 binaire". Ainsi par exemple si l'électrode de com- mande du transistor 64 se trouve à un niveau haut (ligne 59 au niveau haut), alors les transistors 63 et 64 comman- dent la comparaison. De façon analogue, si la ligne de bit' se trouve au niveau haut, alors les transistors 61 et 62 commandent la comparaison. Cette particularité du compara- teur permet à des cellules d'être ignorées. En conséquence, lorsqu'un mot est appliqué à la mémoire CAM, certains bits peuvent être masqués dans le processus de correspondance en faisant passer à la fois la ligne de bits vrais et la ligne de bits de complément au niveau bas. Cela fait apparattre que les contenus de la cellule s'adaptent à la condition existant dans leslignes de colonnes. Cette particularité est utilisée par le circuit logique VUDW 57. Des signaux de microcode appliqués au circuit logi-- que 57 font en sorte que la ligne de bits vrais et la ligne de bits de complément correspondant à des bits sélectionnés parmi les bits d'attribut soient placées à un niveau bas en fonction des bits de microcode. Il en résulte que l'attribut associé à ce bit est ignoré. Cette particularité est utilisée, par exemple, pour ignorer le bit U/S dans le mode de super- viseur. Ainsi le mode de superviseur peut accéder à des don- nées d'utilisateur. De façon analogue, le bit de lecture/ écriture peut être ignoré lors d'une lecture ou bien lors- que le mode de superviseur est enclenché. Le bit "incorrect" est également ignoré lors d'une lecture (cette particularité n'est pas utilisée pour le bit "valable"). Lorsque les bits d'attributs sont mémorisés dans la mémoire principale, ils peuvent faire l'objet d'un accès et d'un examen et des circuits logiques sont utilisés pour com- manderun accès, par exemple sur la base de l'état 1 ou 0 du bit U/S. Cependant, aucun circuit logique séparé n'est uti- lisé avec l'anté-mémoire. La commutation au niveau bas des lignes de bits vrais et de bits de complément provoque en fait l'autorisation d'une correspondance (ou l'empêchement d'une interruption) même si les motifs de bits des bits d'attributs ne sont pas adaptés. Le détecteur de la figure 6, comme le montre la fi- gure 8, comprend plusieurs portes NI, telles que les portes 81, 82, 83 et 84. Trois des lignes de coïncidence provenant de l'ensemble sélectionné des lignes de la mémoire CAM sont reliées à la porte 81 et elles sont désignées par les lignes A, B et C. Une combinaisondifférente de lignes est reliée à chacune des autres portes NI. Par exemple la porte NI 84 re- çoit les lignes de coïncidence D, A et B. La sortie de cha- cune des portes NI est une entrée pour une porte NON-ET tel- le que la porte NON-ET 86. Une ligne de coïncidence fournit un signal d'entrée à chaque porte NON-ET. Cette ligne est celle (parmi les quatre A, B, C, D) qui ne constitue pas une ligne d'entrée pour la porte NI. Elle constitue égale- ment la ligne de bits provenant de l'entrée d'ensemble à sé- lectionner. Par exemple la porte 86 sélectionnerait l'ensem- ble qui est associé à la ligne de coïncidence D. Ainsi, dans le cas de la porte NI 81, la ligne de c5incidence D est couplée avec la porte NON-ET 86. De façon analogue, pour la porte NON-ET 90, la ligne de coincidence C constitue, en addition à la sortie de la porte 84, une ligne d'entrée pour cette porte. Un signal de validation de lecture est également appliqué aux portes NON-ET afin d'empêcher les sorties de ces portes logiques d'-etre validées pour un écriture. Les sor- ties des portes NON-ET, comme la ligne 87, sont utilisées pour commander le multiplexeur 55 de la figure 6. En prati- que le signal provenant de la porte NON-ET, comme le signal transmis par la ligne 87, commande le multiplexeur par l'in- termédiaire de transistors à canal-p. Pour faciliter l'expli- cation, un inverseur additionnel 88 est représenté avec une ligne de sortie 89. L'avantage de ce détecteur est qu'il permet d'utili- ser des lignes de précharge dans le multiplexeur 55. En va- riante, on pourrait utiliser un agencement statique, mais cela nécessiterait beaucoup plus de courant. Avec l'agence- ment représenté sur la figure 8, la sortie des inverseurs reste dans le même état jusqu'à ce qu'une des lignes de coln- cidence diminue de potentiel. Quand cela ce produit, une seu- le sortie diminue le potentiel, en permettant au multiple- xeur de sélectionner le mot correct. En conséquence, on a décrit un nouveau dispositif de traduction d'adresses, qui utilise deux niveaux d'une anté- mémoire, à savoir un niveau pour la segmentation et un ni- veau pour la pagination. Une commande indépendante de don- nées et d'attributs (par exemple une protection) est prévue à chaque niveau REVENDICATIONS 1. Système à microprocesseur, qui comprend un micro- processeur et une mémoire de données, le microprocesseur comportant un mécanisme de segmentation pour traduire une adresse de mémoire virtuelle en une seconde adresse de mé- moire et pour commander des données sur la base d'attributs, caractérisé en ce qu'il comprend: une anté-mémoire de pages (22) intégrée audit microprocesseur (10) pour recevoir une première zone de ladite seconde adresse de mémoire et pour comparer celle-ci avec des contenus de ladite anté-mémoire de pages afin d'établir une seconde zone dans certaine con- dition; ladite mémoire de données (13) comprenant une partie de mémorisation de données de localisation de pages, ladite première zone de ladite seconde adresse de mémoire étant cou- plée avec ladite mémoire de données (13) pour sélectionner une troisième zone dans lesdites données de pages quand les- dites certaines conditions de ladite anté-mémoire de pages (22) ne sont pas satisfaites; ledit système à microprocesseur comprenant un circuit (75) pour combiner une desdites seconde et troisième zones avec une zone de décalage de la première adresse afin de créer une adresse physique pour ladite mémoi- re de données (35); en vue d'améliorer ainsi la capacité d'adressage physique de ladite mémoire de données (13). 2. Système à microprocesseur selon la revendication 1, caractérisé en ce que ladite anté-mémoire de pages (22) et ladite partie de mémorisation de données de pages con- tiennent des informations concernant les attributs de pages de mémoire. 3. Système à microprocesseur selon la revendication 2, caractérisé en ce que ladite partie de mémorisation de données de localisation de pages comprend au moins un réper- toire de pages (13a) et au moins une table de pages (13b). 4. Système à microprocesseur selon la revendication 3, caractérisé en ce que ledit répertoire de pages (13a) et ladite table de pages (13b) mémorisent chacun lesdits attri- buts desdites pages de mémoire. 5. Système à microprocesseur selon la revendication - 2583540 E 4, caractérisé en ce qu'au moins certains desdits attributs mémorisés dans ledit répertoire de pages (13a) et ladite ta- ble de pages (13b) sont combinés logiquement et mémorisés dans ladite anté-mémoire de pages (22). 6. Système à microprocesseur selon la revendication , caractérisé en ce que ledit microprocesseur (10) établit une base de répertoire de pages (38) pour ledit répertoire de pages (13a). 7. Système à microprocesseur selon la revendication 6, caractérisé en ce qu'une première partie de ladite premiè- re zone établit dans ladite base de répertoire depages (38) un index pour un emplacement dans le répertoire de pages (13a). 8. Système à microprocesseur selon la revendication 7, caractérisé en ce que lesdits emplacements dans le répertoi- re de pages (13a) contiennent des bases de table de pages et en ce qu'une second partie de ladite première zone établit dans ladite table de pages un index pour un emplacement de table de pages dans ladite mémoire de données (13). 9. Système à microprocesseur selon la revendication 8, caractérisé en ce que lesdits emplacements de ladite ta- ble de pages (13b) établissent une base pour des pages dans ladite mémoire de données (13). 10. Système à microprocesseur selon la revendication 2, caractérisé en ce que ladite anté-mémoire de pages (22) comprend une mémoire adressable par le contenu (CAM) (34) etune mémoire de bases de pages, la sortie de ladite mémoire (CAM) sélectionnant des basesde pages pour ladite mémoire de don- nées (13) à partir de ladite mémoire de bases de pages. 11. Système à microprocesseur selon la revendication 10, caractérisé en ce que ladite mémoire(CAM) (34) mémorise des attributs de pages de la mémoire de données (13). 12. Système à microprocesseur selon la revendication 11, caractérisé en ce que ladite mémoire(CAM) (34) comprend des moyens pour masquer sélectivement au moins un desdits attributs pendant ladite comparaison. 13. Système à microprocesseur à gestion de mémoire perfectionné, caractérisé en ce qu'il comprend: un micro- processeur (10) comportant un mécanisme de segmentation pour traduire une adresse de mémoire virtuelle en une seconde adresse de mémoire et pour tester des attributs de segments d'une mémoire de données (13); une mémoire de données (13) reliée audit microprocesseur (10) ledit microprocesseur comprenant une anté-mémoire de pages (22) intégrée audit microprocesseur de manière à recevoir une première zone de ladite seconde adresse de mémoire et pour la comparer avec des contenus de ladite anté-mémoire afin d'établir une se- conde zone dans certaines conditions; ladite mémoire de don- nées (13) comprenant une partie de mémorisation de données de l'organisation de pages, ladite première zone de ladite seconde adresse de mémoire étant couplée avec ladite mémoi- re de données (13) pour sélectionnerune troisième zone à partir desdites données de pages lorsque lesdites certaines conditions de ladite antémémoire de pages (22) nresont pas satisfaites; ledit système à microprocesseur comprenant un circuit (75) pour combiner une desdites seconde et troisiè- me zones avec une zone de décalage de la première adresse afin d'établir une adresse physique pour ladite mémoire de données (13); ce qui permet d'améliorer la capacité d'adres- sage physique de ladite mémoire de données (13). 14. Système à microprocesseur selon la revendication 13, caractérisé en ce que ledit mécanisme de segmentation comprend: des registres de descripteurs de segments (21) in- tégrés audit microprocesseur (10) de façon à établir une ba- se de segment; et en ce que ladite mémoire de données (13) comprend une table de descripteurs de segments (25) qui fait l'objet d'un accès par une zone de segment de ladite première adresse. 15. Système à microprocesseur selon la revendication 14, caractérisé en ce que ladite anté-mémoire de pages (22) et ladite partie de mémorisation de données de pages contien- nent des informations sur les attributs de pages de mémoire. 16. Système à microprocesseur selon la revendication , caractérisé en ce que ladite partie de mémorisation des- dites données de localisation de pages comprend un répertoi- re de pages (13a) et une table de pages (13b). 17. Système à microprocesseur selon la revendication 16, caractérisé en ce que ledit répertoire de pages(13a) et ladite table de pages (13b) contiennent chacun lesdits attri- buts pour lesdites pages de mémoire. 18. Système à microprocesseur selon la revendication 17, caractérisé en ce qu'au moins certains desdits attributs mémorisés dans ledit répertoire de pages (13a) et ladite ta- ble de pages (13b) sont combinés logiquement et mémorisés dans ladite anté-mémoire de pages (22). 19. Système à microprocesseur selon la revendication , caractérisé en ce qu'il comprend une mémoire adressable par le contenu (CAM) comprenant, une pluralité de mmoires tampons, servant chacun à recevoir des premiers signaux et à fournir lesdit premiers signaux et des seconds signaux, lesdits seconds si- gnaux étant des compléments desdits premiers signaux; une pluralité de paires de lignes généralement parallèles (59, ) chaque paire étant couplée de façon à recevoir un desdits premiers et seconds signaux; une pluralité de cellules de mé- moire (67) couplées entre deux lignes (59, 60) de chaque pai- re, lesdites cellules étant disposées en rangées générale- ment perpendiculaires auxdites paires de lignes (59, 60); une pluralité de lignes de comparateurs de rangées qui sont cha- cune associée à chacune desdites rangées de cellules (67); une pluralité de comparateurs (27) qui sont chacun branchés entre chacune desdites cellules de mémoire, la paire respec- tive de lignes et l'une desdites lignes de comparateurs, les- dits comparateurs servant à comparer un état binaire mémori- sé dans ladite cellule de mémoire (67) avec lesdits premiers et seconds signaux; un moyen de chargement pour charger des données provenant desdites paires de lignes dans lesdites cellules; lesdits comparateurs (27) étant empêchés d'opérer lorsque leurs paires respectives de lignes sont toutes deux maintenues à un certain état binaire;de façon que, en faisant en sorte qu'au moins certaines desditesmémoires tampons établis- sent ledit certain état binaire pour lesdits premiers et se- conds signaux, des cellules sélectionnées puissent être ignorées dans ladite comparaison. 20. Système à microprocesseur selon la revendication 19, carac- térisé en ce que lesditeslignes de comparateurs de rangées sont des lignes préchargées. 21. Système à microprocesseur selon la revendication 20, compre- nant une partie de mémorisation se composant d'une plurali- té de sections, caractérisé en ce que des données font l'objet d'un accès simultané dans toutes lesdites sections et en ce qu'un signal de sortie d'une desdites sections est sélectionné par l'intermédiaire desdites lignes de rangées. 22. Système à microprocesseur selon la revendication 21, caracté- risé en ce qu'elle comprend des détecteurs reliés à un nom- bre prédéterminé desdites lignes de rangées, lesdits détec- teurs servant à détecter celle dudit nombre prédéterminé de lignes qui reste chargée. 23. Système à microprocesseur selon la revendication 22, caracté- risé en ce que ladite sélection dudit signal de sortie d'une desdites sections est effectuée par lesdits détecteurs. 24. Un-dispositif de traduction d'adresses agencé comme une partie d'un microprocesseur pour opérer avec une mémoire de données, caractérisé en ce qu'il comprend: des registres de descripteurs de segments (21) pour recevoir une adresse virtuelle et pour établir une base de segment; ledit microprocesseur (10) établissant une adresse pour la mémoire de données (13) de façon à permettre l'adressage d'une ta- ble de descripteur de segments (25) dans ladite mémoire de données (13), ladite table de descripteur de segments (25) établissant ladite adresse de base de segment; ledit micro- processeur (10) utilisant ladite seconde adresse de base et une partie de ladite adresse virtuelle pour établir une se- conde adresse de mémoire; une anté-mémoire de base (22) pour recevoir une première zone de ladite seconde adresse de mé- moire et pour la comparer avec les contenus de ladite anté- 24 2583540 mémoire.de pages (22) afin d'établir une seconde zone dans certaines secondes conditions; ledit microprocesseur (10) fournissant ladite première zone à une table de données de pages se trouvant dans ladite mémoire de données (13) pour établir ladite secondezone si lesdites secondes conditions ne sont pas satisfaites; ladite seconde zone établissant une base de page pour ladite mémoire de données (13), ce quiper- met d'améliorer la capacité d'adressage physique de ladite mémoire de données (13). 25. Dispositif selon la revendication 24, caractéri- sé en ce que lesdits registres de descripteurs de segments (21) contiennent des attributs de données de segments et en ce que ladite anté-mémoire de pages (22) contient des attri- buts de données de pages.