Brevet FR2385147A1 — publié le 19781020

La présente invention concerne de façon générale l'elimination des entrées synonymes dans les tables ou mémoires de consultation de translation d'adresses (DLAT) utilisée dans des systèmes de traitement de données à hautes performances qui peuvent translater des adresses virtuelles concernant des espaces d'adresses multiples en adresses réelles de mémoire principale dans laquelle des espaces différents d'adresses doivent avoir accès à un ensemble partagé de programmes et de données.Un synonyme de la table de consultation se manifeste quand une information ou "entrée" de la table de consultation qui translate l'adresse virtuelle permettant d'accéder à une page renfermant des données ou des instructions, se retrouve dans une autre entre de la table de consultation pour la meme information dans une autre page pour un autre espace d'adresses. On trouve des synonymes dans les tables de consultation de translation d'adresses dans les systèmes de l'art antérieur qui comportent des mémoires ou tables de translation d'adresses dynamiques (DLAT). Ces tables de consultation ont été utilisées pendant plusieurs années pour accroître la vitesse d'accès aux adresses translatées, réelles ou physiques, dans la mémoire principale ou dans la mémoire-tampon rapide des systèmes de traitement de données. Des exemples de tables de consultation de l'art antérieur sont décrits par exemple dans les brevets des E.U.A Nos. 3 725 874 et 3 902 163 et dans le brevet français No. 73 34200 déposé par la demanderesse le 19 septembre 1973. Dans les systèmes comprenant de multiples espaces d'adresses, on peut attribuer à chaque utilisateur un espace d'adresses différent et, pour des raisons de sécurité, aucun accès n'est permis d'un espace d'adresses privé à un autre. Puisque l'utilisation des programmes du système opérationnel (par exemple IBM OS/VS2 version 2 MVS) est demandée par tous les programmes dans tous les espaces d'adresses, la solution a été précédemment d'attribuer ces programmes et données communs à un ou plusieurs segments dans chacun des espaces d'adresses. Toutes les fois qu'un utilisateur utilisant son propre espace d'adresses à accès aux programmes communs, il adresse simplement les programmes dans son propre espace d'adresses.Cette façon distincte d'adresser a un effet défavorable sur les performances du système parce que les programmes et données communs sont translates par des entrées différentes de la table DLAT dans le processeur. Par exemple, si deux utilisateurs exploitent le meme programme OS, ce programme est mis en pages dans la mémoire principale et est translaté dans l'espace d'adresses de l'utilisateur. Si un autre utilisateur désire le meme programme, ce programme ne sera mis en pages à nouveau dans la mémoire principale pour l'autre utilisateur, cependant, il sera translaté indépendamment pour cet espace d'adresses d'utilisateur. La translation de chaque espace d'adresses entrain un accroissement sans nécessité de la translation et un gaspillage des entrées de la table DLAT par la duplication des translations dans les entrées de la table DLAT (c'est-à-dire des synonymes de la table du DLAT) pour les différents utilisateurs nécessitant simultanément le meme ensemble partagé de programmes et de données. Un objet principal de cette invention consiste à éliminer les pertes d'utilisation de la mémoire principale pour des pages renfermant des programmes et des données partagés par tous les espaces d'adresses, tels que des segments ou pages renfermant des programmes et des données de commande du système. Un autre objet de cette invention consiste à éliminer l'attribution de différentes entrées dans la table DLAT habituellement utilisées pour des programmes partagés par tous les espaces d'adresses. Un autre objet de cette invention consiste à améliorer l'efficacite du processeur en ce qui concerne l'utilisation du nombre limite de DLAT dans le processeur en éliminant la redondance de l'attribution des DLAT à des pages correspondant à des programmes partagés. Un autre objet de cettte invention consiste à réduire au minimum le gaspillage et le cout résultant du système lors de la réattribution du nombre limité des entrées de la table DLAT dans un processeur lorsque toutes les entrées de la table sont occupées parce que beaucoup d'entre elles renferment des synonymes, ce qui entra me la nécessité pour le système d'éliminer des données d'entrée du DLAT pour faire de la place aux entrées synonymes de la table de consultation et ensuite d'introduire les données d'entrée du programme d'application pour l'execution. Un autre objet de cette invention consiste à éliminer les pertes de temps du système dues aux synonymes des pages en permettant à une table DLAT d'être utilisée par plusieurs ou par tous les espaces d'adresses nécessitant l'accès au contenu commun. Un autre objet de cette invention consiste à proposer un dispositif qui supporte le partage entre tous les espaces d'adresses des utilisateurs de chaque segment présentant un bit drapeau d'espace commun dans son entrée de table de segments dans n'importe quelle table de segments d'utilisateur pour indiquer que le segment muni d'un bit drapeau est partagé par les autres espaces d'adresses. Un autre objet de cette invention consiste à proposer un#at#ieI qui permette la possibilité de partage, parmi tous les espaces d'adresses des parties d'espaces d'adresses communes dans laquelle la taille des parties communes est choisie par le nombre de bits d'ordre supérieur envoyés à partir du registre d'adresse logique sur un registre de résolution de synonymie (SRR), le registre SRR présentant un champ de masquage pour chaque partie commune d'un espace d'adresses unique quelconque. Un autre objet de cette invention consiste à proposer une commande de synonymes dans les tables de consultation en commandant 1' enclenchement d'un indicateur dans chaque entrée de table de consultation pour indiquer si entrée de la table doit etre partagée par tous les espaces d'adresses des utilisateurs ou doit etre restreinte à un espace d'adresses unique identifié par la table du DLAT Un autre objet de cette invention consiste à utiliser pour registre SRR un registre de commande du système dans lequel les positions du champ de masquage sont enclenchées à un état initialise par le chargement du registre de commande du système. Un autre objet de cette invention consiste à proposer des commandes de lecture du DLAT qui reconnaissent si un indicateur d'espace d'adresses à l'intérieur de entrée du DLAT signale qu'un accès devrait etre restreint à l'espace d'adresse identifié, ou que l'accès devrait etre permis en ignorant une identification d'espace d'adresses dans le cas où l'accès est partage La possibilité d'éliminer de façon efficace l'identification d'espace d'adresses dans une entree quelconque du DLAT permet de partager la page adressée par ltentrée respective du DLAT parmi tous les espaces d'adresses, bien que l'identification de l'indicateur d'espace d'adresses dans entrée du DLAT nécessite que entrée du DLAT soit utilisée seulement par l'espace d'adresse identifié. L'invention est utilisée en relation avec un processeur qui peut fournir une possibilité d'adressage dans son DLAT pour les pages utilisées le plus récemment dans plusieurs espaces d'adresses. La possibilité d'adressage du DLAT pour plusieurs espaces d'adresses est obtenue de façon classique en fournissant un champ identificateur d'espace d'adresses dans chaque entrée du DLAT ce qui représente uniquement l'espace d'adresses associé à une page identifiée dans le champ d'adresse réelle de la page (PFRA) dans la meme entrée du DLAT pour contenir l'adresse de la page translatée. Des accès futurs aux données dans une page translatée adressée par une entrée du DLAT peuvent être réalisés rapidement en utilisant entrée du DLAT pour accéder aux données de la mémoire principale, ou dans une mémoire tampon rapide, sans avoir à prendre le temps de retranslater l'adresse virtuelle. Le brevet français No. 73 34200 décrit. et revendique le dispositif qui permet de réaliser ces opérations, tel que ceux utilisés dans le système IBM 370 modèle 168. La présente invention propose un indicateur ou drapeau de mémoire~ commun dans chaque entrée de table de segments ou de pages, et dans chaque entrée du DLAT, chargé pendant la translation des entrées de tables de segments et de tables de pages, pour indiquer si une page qui est adressée par l'entrée du DLAT est ou n'est pas accessible par tous les espaces d'adresses du système, ou si la page est seulement accessible par l'espace d'adresses identifié à l'entrée du DLAT. Les commandes de chargement du DLAT fonctionnent avec le drapeau ou indicateur de mémoire commune pour chaque entrée de la table de segments, ou pour chaque entrée de la table de pages, selon ltapplication de la présente invention à un système particulier. L'indicateur de mémoire commune dans la réalisation préférée est une position de bit dans chaque entrée de table de segments. Dans une autre réalisation, l'indicateur de mémoire commune est constitué par une position de bit située dans chaque entrée de table de pages. Un translateur d'adresses détecte l'état du bit d'emmagasinage commun dans une entrée de table de segments (ou une entrée de table de pages) pendant le procédé de translation, et ensuite enclenche ou restaure un indicateur de mémoire commun à l'entrée du DLAT qui reçoit les résultats de la translation pour indiquer si la page translatée dans entrée du DLAT doit etre partagée ou privée Si l'indicateur de mémoire commun n'est pas enclenché dans 1' entrée concernée de la table, la page translatée est privée, et un identificateur pour le seul espace dtadresses qui peut utiliser cette entrée du DLAT est aussi introduit dans cette entrée du DLAT pour empêcher son partage.Si le bit de mémoire commun est enclenché à l'entrée de la table, le DLAT reçoit un indicateur pour signaler qu'aucun examen ne devra etre fait pour un identificateur d'espace d'adresses qui rend l'entrée du DLAT utilisable par n'importe quel espace d'adresses. Il est essentiel selon la présente invention que l'adressage subdivisé ou partiel appelé "hash addressing" dans la littérature technique américaine, pour une adresse virtuelle demandée utilisée pour choisir deux entrées associées du DLAT ne doit pas comporter des bits de subdivision provenant de l'identificateur d'espace d'adresses, comme cela est fait dans l'adressage subdivisé du DLAT de l'art antérieur telle que décrit dans le brevet français No. 73 34200 sus-mentionné. Un tel adressage subdivisé rendra l'invention nulle parce qu'elle empêche la meme adresse virtuelle dans différents espaces d'adresses à partir de l'adressage subdivisé de la meme paire d'entrées du DLAT. Par conséquent, l'invention obtient des bits seulement à partir de l'adresse virtuelle sans utiliser l'identificateur d'espace d'adresses. Les commandes de lecture du DLAT détectent l'indicateur d'espace d'adresses dans chaque entrée du DLAT à lire. Dans la présente invention, les commandes du DLAT doivent aussi détecter l'indication de mémoires communes dans tout DLAT à lire. Dans la présente invention, lorsque les commandes de lecture détectent une indication de mémoire commune, dans un DLAT (dans lequel aucune autre condition n'est erronée) les contrôles de lecture du DLAT transmettent la demande d'accès avec le champ PFRA du DLAT aux commandes de l'accès à la mémoire principale qui exécute l'accès dans la mémoire principale ou dans la mémoire tampon rapide. La présente invention obtient par ce moyen une nouvelle possibilité de sélection pour les commandes de lecture du DLAT (1) pour obtenir la sécurité d'espace d'adresses unique en rejetant des demandes pour une translation du DLAT à partir d'un espace d'adresses quelconque dont l'indicateur d'espace d'adresses n'est pas égal à l'indicateur d'espace d'adresses contenu dans le DLAT, ou (2) en permettant à tous les espaces d'adresses d'utiliser la translation du DLAT en ignorant l'indicateur d'espace d'adresses se trouvant dans le DLAT. Chaque espace d'adresses est représenté dans le système par une table de segments, qui est définie par une origine de table de segments (STO). Chaque origine STO est une adresse réelle permettant de localiser le début d'une table de segments. Il y a un très grand nombre d'origines STO utilisables dans le système. Lorsqu'une origine STO quelconque doit etre utilisée, elle est rendue active en l'introduisant dans un registre de commande (CR) et elle est aussi introduite dans l'entrée suivante d'une pile d'origines de table de segments (STOK). Un indicateur d'espace d'adresses est disponible pour chaque origine STO dans la pile STOK sous la forme d'un index affecté à la pile STOK et appelé STO ID. L'origine de la table de segments occupe 32 bits (mot complet) dans chaque entrée de la pile STOK et dans le registre CR. Une origine STO ne peut pas être positionnée dans plus d'une entrée de la pile STOK. La raison est de réduire au minimum le nombre de bits nécessaires pour l'indication de l'espace d'adresses dans le DLAT, pour en réduire la taille. Des DLAT plus petits sont en général plus rapides que des DLAT plus grands. Par exemple, une pile STOK renfermant jusqu'a 29 STO nécessite seulement cinq bits pour un STO ID pour identifier un espace d'adresses. Toutes les fois qu'une nouvelle origine STO entraine un dépassement de la pile STOK, elle est restaurée et toutes les entrées du DLAT sont aussi restaurées et le nouveau STO est inséré au début de la pile STOK et une entrée du DLAT dante est translatée. Une réalisation de l'invention propose un registre de résolution de synonymie (SRR) qui renferme plusieurs champs d'état qui correspondent à des portions de l'espace d'adresses dans chaque espace d'adresses dans le système. Dans la réalisation préférée, un bit unique est utilisé pour chaque champ d'état. Le champ d'état commande l'enclenchement d'indicateurs d'emmagasinage commun dans les entrées du DLAT. L'indicateur de mémoire commune est enclenché lorsqu'une entrée du DLAT est chargée pendant la translation d'une adresse virtuelle demandée non disponible dans une entrée existante au DLAT.Aussi longtemps que l'entrée reste valide dans le DLAT, elle indiquera si la page dans l'entrée du DLAT est ou non accessible par tous les espaces d'adresses dans le système, ou si cette page est seulement accessible de façon privée par l'espace d'adresses identifié à l'entrée du DLAT. Un champ d'état est choisi dans le registre SRR pour commander le chargement de chaque entrée du DLAT. Les circuits de commande du registre SRR utilisent une partie d'ordres supérieurs de l'adresse virtuelle de demande pour choisir le champ d'état demandé dans le registre SRR pendant le procédé de translation d'adresses. L'état du champ d'état signale aux circuits de commande de chargement du DLAT comment il enclenchera un indicateur de mémoire commun dans les circuits d'entrée du DLAT qui reçoivent les résultats de la translation. L'enclenchement de l'indicateur de mémoire commune est alors réalisé de façon à indiquer si la page translatée dans le circuit d'entrée du DLAT doit être partagée ou privée. Si l'indicateur de mémoire commun est enclenché à 1' état "commun" dans l'entrée du DLAT, la page translatée à l'entrée du DLAT est disponible à un espace d'adresses quelconque. Si l'indicateur de mEmoire commune n'est pas enclenché à l'état commun à l'entrée du DLAT, la page translatée est privée, et un identificateur dans l'entrée du DLAT est enclenché par les circuits de commande de chargement pour identifier le seul espace d'adresses qui peut utiliser cette entrée du DLAT. De façon a obtenir une entrée du DLAT pour permettre la lecture ou le chargement d'informations, 1' adressage par une adresse virtuelle de demande est d'abord utilisé pour choisir deux entrées du DLAT du type associatif. L'adressage subdivisé ne doit pas introduire de bits de subdivision à partir de l'identificateur d'espace d'adresses, comme réalisé dans l'art antérieur par l'adressage du DLAT par signaux de subdivision tel que décrit dans le brevet français No. 73 34200 dont on a parlé précédemment. Un tel adressage par signaux de subdivisions de l'art antérieur rend impossible le fonctionnement de la présente invention parce qu'il empêche la méme adresse virtuelle dans des espaces d'adresses différents de choisir toujours la meme page commune.Par conséquent, l'invention obtient des bits de signaux de subdivision seulement à partir de l'adresse virtuelle sans utiliser 11 identificateur d'espace d'adresses. Les circuits de commande de lecture du DLAT détectent de façon classique 11 indicateur d'espace d'adresses dans chaque entrée DLAT à lire. Dans cette invention, les circuits de commande du DLAT doivent aussi détecter l'indicateur de mémoire commun dans tout DLAT à lire. Dans la présente invention, lorsque les circuits de commande de lecture détectent un indicateur de mémoire commun à l'entrée du DLAT, (pour lequel toutes les autres conditions sont remplies), les circuits de commande de lecture-du DLAT ignorent l'identificateur d'espace d'adresses à partir de l'espace d'adresses de demande et permet l'accès à la page translatée du DLAT en transférant l'adresse réelle de la page (PFRA) de l'entrée du DLAT aux circuits de commande d'accès à la mémoire principale qui réalise l'acces à la mémoire principale ou la mémoire tampon rapide. Si l'indicateur de mémoire commun n'est pas enclenché, l'identificateur d'espace d'adresses de l'espace d'adresses de demande doit être égal à l'identificateur d'espace d'adresses des circuits d'entrée du DLAT pour obtenir l'acces. n Le registre SRR est divisé en 2n champs de portions d'espaces d'adres n ses, avec le nombre 2n qui correspond respectivement aux portions d'espaces d'adresses de taille égale dans chaque espace d'adresses, dans lequel chaque portion comporte 224-n multiplets (pour des adresses à 24 bits) 31-n ou 231 2 multiplets (pour des adresses a 31 bits) dans lesquels n est le nombre de bits d'ordres supérieurs ou de poids supérieurs dans un registre d'adresse virtuelle décodé de façon à localiser un champ de portion demandé dans le registre SRR. Les champs de portion dans le registre SRR renferme des drapeaux indiquant ltétat privé ou commun des portions d'espaces d'adresses.Les portions peuvent avoir une taille en multiplets qui est égale à n'importe quelle puissance de 2, la taille de la page constituant une limite inférieure, et la taille de 1' espace d'adresses constituant une limite supérieure. La présente invention obtient par ce moyen de nouvelles possibilités de chargement et d'entrée du DLAT (1) pour permettre à tous les espaces d'adresses d'utiliser une translation d'entrée du DLAT en évitant une comparaison avec le champ indicateur d'espace d'adresses dans l'entrée du DLAT, ou (2) pour obtenir une sécurité de l'espace d'adresses privé en rejetant des demandes de translation du DLAT à partir d'un espace d'adresses quelconque qui ne présente pas d'indicateur d'espace d'adresses égal à l'indicateur d'espace d'adresses contenu dans le DLAT. D'autres objets, caractéristiques et avantages de la présente invention ressortiront mieux de l'exposé qui suit, fait en référence aux dessins annexés à ce texte, qui représentent un mode de réalisation préféré de celle-ci. La figure 1 représente sous forme d'organigramme une réalisation préférée de la présente invention. La figure 2 représente une mémoire principale utilisée par une seconde réalisation de la présente invention. La figure 3 représente des formats de l'art antérieur utilisés par les registres de commande, les entrées de tables de segments et les entrées de tables de pages. La figure 4A représente un nouveau format pour l'entrée de table de segments utilisé pour la réalisation préférée. La figure 4B représente un nouveau format pour 11 entrée de table de pages utilisée par une autre réalisation de la présente invention. La figure 5 représente une pile d'origines de tables de segments (STOK) et ses dispositifs de commande utilisés dans les réalisations de la présente invention pour générer des identificateurs d'espaces d'adresses (STO ID). La figure 6 représente le format de chaque paire d'entrées du DLAT associées auxquelles on accède par une adresse unique subdivisée de DLAT. La figure 7 représente de façon détaillée un dispositif de translation d'adresses utilisé dans les réalisations de la présente invention. La figure 8 représente de façon détaillée les dispositifs de commande de lecture du DLAT utilisés dans les réalisations de la présente invention. La figure 9 représente de façon détaillée les circuits de commande de chargement du DLAT utilisés dans les réalisations de la présente invention. Les figures 10A et lOB représentent les différentes réalisations des circuits de commande du registre SRR. La figure I représente sous forme de diagramme la réalisation préférée de la présente invention. Un circuit 5 constitué d'une pile STOK et de circuits de commande comporte un registre de commande (CR 1) qui renferme l'origine de la table de segments active (STO) utilisés par l'adresse virtuelle du processeur habituellement chargée dans un registre d'adresse logique ( LAR) 61, cette adresse virtuelle devant etre translatée en une adresse réelle physique à laquelle on doit accéder. Le dispositif de commande 5 renferme aussi une pile d'origines de tables de segments (STOK) 50 dont les entrées reçoivent séquentiellement chaque STO active lorsqu'elle est chargée dans le registre CR 1.Les espaces d'adresses représentés par les STO dans le STOK sont les seuls espaces d'adresses qui sont représentés généralement par les entrées dans le DLAT 6 Chaque entrée dans la pile STOK a une valeur d'index de 2 à 30. Ces valeurs dtindex sont utilisées comme identificateurs STO (STO ID). Le STO généralement actif dans la pile STOK est localisé par le STO ID dans le registre indicateur ou identificateur (PTR REG) 51. Le STO ID dans le registre indicateur 51 localise l'entrée du STOK comportant le meme STO que le STO contenu dans CRI. La raison pour laquelle on utilise seulement STO ID 2 à 30 est due au fait que l'on désire adopter une taille d'index de cinq bits binaires donnant les valeurs 0-31, parmi lesquelles les valeurs 0, 1 et 31 sont utilisées dans le DLAT pour indiquer des conditions particulières telles que STO invalide, translations d'adresses non dynamiques (mode NON-DAT) et mémoire commune. Cette dernière valeur est introduite dans la présente invention pour fournir une indication au DLAT concernant le fait qu'il adresse une page pouvant être partagée par tous les espaces d'adresses.On peut prévoir une pile STOK plus grande avec plus de STO ID, par exemple en ayant un identificateur STO ID à six bits qui permet d'identifier 61 entrées de la mémoire STOK (26-3),#etc. Sur la figure 1, l'élément indiqué par la référence 54 signale une condition de dépassement pour la mémoire STOK 50. Lorsque toutes les entrées de 2 à 30 sont remplies, une autre origine STO doit être introduite dans la mémoire STOK, le circuit 54 génère un signal de dépassement lorsque STO ID 30 se trouve dans PTR REG 51 et qu'une origine STO active suivante dans CR1 n'est pas obtenue lors d'une recherche des entrées STOK 2 à 30. Le signal de sortie de dépassement du circuit 54 est transféré aux circuits de chargement du DLAT 9 pour restaurer toutes les entrées du DLAT. Le DLAT 6 est structué de la meme façon que celui qui se trouve dans le système IBM 370 Modèle 168, sauf qu'il comporte plus d'entrées. Le DLAT 6 de la figure 1 est un ensemble associatif à deux voies, dans lequel la moitié du réseau du DLAT renferme la table de DLAT 0 comportant 64 entrées indiquées par les références 00 à 063 et l'autre moitié du réseau DLAT est désignée par la table 1 du DLAT renfermant 64 entrées désignées par les références 10 à 163. Le registre DRR 6B renferme l'adresse de la paire généralement choisie des entrées DLAT. L'adresse dans le registre DRR 6B est obtenue après passage à travers les circuits 6A utilisant les bits 9 à 20 de l'adresse virtuelle dans le registre LAR 61. La figure 6 représente le format des deux entrées adressées par le registre DRR. On voit ici que chaque entrée comporte un champ STO ID provenant soit (1) lu registre indicateur- 51, soit (2) d'un bit espace commun C dans l'entrée de la table de segment (STE) à laquelle on accède pour la translation de l'entrée du DIAT. Excepté pour l'addition du bit d'espace commun C dans le STE, la forme de toutes les entrées dans les tables de segments, les tables de pages, CR# et CR1 peut être identique à celle utilisée dans les programmes de commande IBM OS/VS2 version 3.7 connu comme systèmes d'emmagasinage multiple (MVS) utilisé avec un système de traitement de données IBM S/370 Modèle 168. La translation de l'adresse virtuelle contenue dans le registre LAR 61 est réalisée de façon classique par un translateur d'adresses 7, dans lequel la partie SX de l'adresse indexe les entrées STE à partir de l'adresse STO de la table de segments de la figure 1, dont l'adresse STE est donc égale à STO plus SX. L'adresse de l'origine de table de pages (PTO) se trouve dans le STE auquel on a accédé et est utilisée par le translateur pour adresser l'entrée de la table de page (PTE) représentée par PTE-g sur la figure 1. PTE-g est adressé ici à l'emplacement d'adresse PTO plus PX. L'adresse réelle ou absolue de la page à laquelle on doit accéder est contenue dans la partie PFRA du PTE auquel on accède, qui est alors transférée par le translateur 7 au dispositif de commande de chargement 9 et introduit dans le champ d'adresse absolu (RA) du DLAT choisi. La figure 4A représente le nouveau format du STE renfermant le bit d'espace commun C à la position de bit 30, qui est le format STE utilisé dans la table de segments de la figure 1. La figure 3 représente le format PTE utilisé dans la table de pages de la figure I. Lorsque le bit C du format STE est égal à 1, l'entrée de la table de segments indique par ce moyen un segment d'espace commun (c'est-a'- dire un segment partagé) représenté par toutes les pages dans -la table de pages à laquelle on accède par l'intermédiaire de l'adresse PTO située à l'intérieur de STE. Cependant, lorsque le bit C est nul, le STE définit un segment privé, c'est-à-dire, non accessible à tout autre espace d'adresses tel que celui défini par le STO qui adresse la table de segments particulière. Sur la figure 6, le champ d'adresse virtuelle (VA) à entrée du DLAT choisi reçoit aussi les bits 8-14 de l'adresse dans le registre LAR 61 de façon à distinguer l'adresse virtuelle de page VA dans le DIA des autres adresses VA représentées dans les autres entrées du DLAT. Les clés paires et les clés impaires reçues dans les entrées du DLAT sont respectivement des clés de protection de la mémoire pour la première moitié 2K et la dernière moitié 2K de la page, lorsque la page a une taille de 4K. Le moyen de charger les champs de clés dans le DLAT 6 ne fait pas partie de cette invention et peut être réalisé par le dispositif du Système IBM 370 Modèle 168. L'opération de chargement du DLAT se produit toutes les fois que le processeur transfère une adresse dans le registre LAR 61, et que les circuits de commandes de lecture ne permettent pas aux signaux d'entrée du DLAT d'adresser la page demandée par l'adresse dans le LAR 61. Le fait que les signaux d'entrée de DLAT ne permettent pas d'adresser les pages est indiqué par les circuits de commande de lecture 8 du DLAT sur la figure 1 en fournissant un signal d'exception du DLAT sur la ligne 87A au translateur 7.Les circuits de commande 8 de lecture du DLAT comparent simultanément tous les champs pertinents de chacune des paires d'entrées de DLAT choisies adressées par les signaux du registre DRR avec les champs correspondants comprenant les bits VA 8-14 dans le registre LAR 61, l'identificateur STO ID étant prévu à partir du registre indicateur 51 et le champ de clé étant fourni par le mot état de programme (PSW). Si l'on trouve une égalité pour l'une des deux entrées DLAT 0, 1, qui sont respectivement comparées simultanément dans les circuits de commande de lecture du DLAT 8, les circuits de commandes de lecture choisissent seulement le DLAT qui comprend tous les champs pertinents égaux. L'entrée choisie du DLAT amène alors le dispositif de commande 8 à envoyer en sortie une adresse de pages (RA) sous la forme d'un signal appliqué sur la ligne 89A sur les commandes d'accès à la mémoire 12 pour déclencher l'accès de 1 ou plusieurs multiplets commençant à cette adresse RA obtenue à partir de l'entrée DLAT choisie et en tenant compte du déplacement D obtenu à partir de LAR 61. Cependant, les circuits de commande de lecture 8 du DLAT peuvent indiquer qu'une valeur d'indicateur de mémoire commune de 31 dans le champ STO ID de l'entrée DLAT choisie, auquel cas les circuits de commande de lecture 8 du DLAT ignorent la détection de non égalité due à la valeur 31 de STO ID en la forçant à agir comme un STO ID égal comparé à toutes les valeurs STO ID. Alors on permet l'accès de l'adresse virtuelle dans le registre LAR 61, quel que soit l'espace d'adresses qui fait la demande (indiqué par le registre indicateur 51). En conséquence, on réalise par ce moyen que le champ STO ID dans le DLAT est chargé avec une valeur qui commande le fait que lton permet à l'entrée du DLAT d'entre utilisée par seulement l'espace d'adresses qui l'a chargé ou par tous les espaces d'adresses, quel que soit l'espace d'adresses qui l'a chargé. La description générale de la réalisation préférée est maintenant réalisée et ses composants représentés de façon détaillée dans les autres schémas décrits ensuite. Les figures IOA et lOB représentent chacune une réalisation différente des dispositifs de commande 110 des registres SRR 100 représentés sur la figure 1. Les exemples des figures 10A et 10B diffèrent par le fait qu'ils ont chacun une largeur différente, (c'est-à-dire R-7) pour la porte de sortie 102 pour le registre LAR 61. La valeur de R est 11 pour la figure 10A et 12 pour la figure lOB. La porte à quatre bits 102 de la figure 10A fournit 16 portions (c'est-à-dire 2 ) dans chaque espace d'adresses, tandis que la porte à cinq bits 102A de la figure lOB fournit 5 32 portions (c'est-à-dire 2 ).L'adressage à 24 bits dans le registre LAR donne des espaces d'adresses de taille de 16 négamultiplets (c'està-dire 224) qui sont par conséquent divisés en portions de 1 mégamultiplets ou de 500 méga-multiplets par les circuits de commande des registres SRR représentées respectivement sur les figures 10A et lOB. Chaque partie du champ d'état du registre SRR 100 est indiquée par une position de bit unique. Si ce bit est égal à 1, la partie d'espace d'adresses correspondante est commune à tous les espaces d'adresses, mais si le bit d'état est égal à 0, la partie d'espace d'adresses correspondante est privée dans tous les espaces d'adresses du système. Les figures 10A et 10B ont chacune les mimes circuits de base (on a ajouté le suffixe A aux éléments de la figure 2B) dans lesquels un registre de commande (CR) 12 renferme le registre SRR. Le registre SRR faisant partie des registres de commande, le registre SRR peut être chargé et examiné par des instructions classiques prévues pour le chargement et l'examen des registres de commande dans un système. Sur la figure 10A, le registre SRR comporte 16 bits d'état et sur la figure 10B le registre SRR comporte 32 bits d'état Les signaux de sortie des bits d'état dans le registre SRR 100, le signal de chargement du DLAT sur 68A et le signal de sortie 102 constituent des signaux d'entrée du dispositif de commande du registre SRR 110. Le dispositif de commande 110 se compose d'un décodeur 111 (figure lOA) qui reçoit et décode les quatre bits de la porte de sortie 102 et donne une des seize sorties choisies 0-15. Un ensemble de seize portes ET 112 a' 113, respectivement est connecté aux sorties du décodeur et aux sorties du registre SRR. Le signal de chargement du DLAT est appliqué sur la ligne 68A et est appliqué comme signal d'entrée supplémentaire à chacune des portes ET 112-113. Une bascule de mémoire commune CSL 114 a une entrée d'enclenchement à laquelle est appliqué le signal de sortie de chacune des portes ET 112 à 113. En conséquence, avec une adresse virtuelle donnée dans le registre LAR 61, le décodeur 111 conditionnera une des portes ET 112-113. On choisit un bit d'état du registre 100 pour conditionner une des portes ET 112113, ainsi conditionné par le signal de chargement DLAT de façon à fournir un signal de sortie à la bascule de mémoire commune 114, Si le bit de sortie correspondant du décodeur est 1. Si le bit d'état choisi est égal à 1, il enclenchera la bascule 114 qui alors donnera un signal d'espace commun sur la ligne 116 appliqué aux circuits de commande 9 de chargement du DLAT, qui chargera une valeur commune 31 à l'entrée du DLAT choisi.Cependant, si le bit d'état du registre SRR choisi est égal à O, la bascule 114 ne sera pas enclenché et il n'y aura pas de signal sur la ligne de signal d'espace commun 116 appliqué aux circuits de commande 9 de chargement du DLAT, qui chargera alors à 1' entrée du DLAT choisi, Itidentifîcateur STO ID demandé qui provient du registre indicateur 51, à la place de la valeur 3î indiquant l'identificateur STO ID commun. Les figures lOA et lOB représentent la nature variable de la porte de sortie 102 du registre LAR 61 dans les circuits de commande de registre SRR. Le nombre des portions peut être accru selon des puissances de 2 en augmentant le nombre des positions de bits trouvées dans la porte 102. Ceci montre la possibilité de variation de la largeur de la porte 102, cette possibilité de variation est représentée par la valeur R sur la figure 1. La limite supérieure est de deux portions par espace d'adresse, l'une privée et l'autre commune. La limite inférieure pour la taille d'une portion est la taille d'une page, parce que les mémoires DLAT ont comme unités d'adressage une page. Le nombre de bits dans le registre SRR 100 et le nombre de portes ET 112-113 doivent entre accrus en conséquence.Une fois quton a choisi une taille de portion, elle reste en général déterminée dans un système de traitement de données donné. On peut par conséquent voir à partir des exemples représentés sur les figures IOA et lOB que la taille de la partie d'espace d'adresses peut varier en conséquence de deux par espace d'adresse à la taille de la page, dans laquelle une portion peut avoir n'importe quelle taille c'est-à-dire 224 R Les variables comportent la largeur de la porte ET 102, le nombre de bits de champ d'état dans le registre SRR 100 et le nombre de portes ET 112-113. La figure 5 représente le circuit préféré pour la réalisation de la pile STOK et des circuits de commande 5. Les registres CRO et CR1 renferment les formats illustrés sur la figure 3, dans lesquels les bits 8-25 du registre CR1 renferment l'adresse STO active et, dans le registre CRO, les bits 8 et 9 indiquent la taille de la page, c' est-a-dire, une page de 2K ou 4K multiplets et les bits 10 et 11 indiquent la taille du segment, c'est-à-dire 64K ou 1000K multiplets. Ces bits du registre CRO sont aussi introduits à l'entrée de la pile STOK 50 lorsquielle est chargée. On permet à la pile STOK 50 par ces circuits de commande de renfermer une seule fois, une valeur STO. Les valeurs STO valides dans la pile STOK 50 sont seulement ces valeurs STO qui se trouvent dans l'entrée 2 jus qui a mais non inclues dans l'entrée identifiée par le contenu d'un registre FIFO 52. Toutes les entrées de la pile STOK à partir de l'index dans le registre 52 à travers l'index 30 sont considérées non valides. Toutes les fois qu'une nouvelle valeur STO est chargée dans le registre CRI, on réalise une recherche dans la pile STOK 50 pour voir si ce STO existe normalement dans la pile STOK 50, et, si elle existe, l'index de cette entrée sera prévu dans un registre de pointeur 51 pour représenter alors l'identificateur STO ID actif sur les lignes 51C. Si cette recherche ne permet de trouver une entrée renfermant le STO actif dans CRI, le STO dans CR1 est chargé à l'entrée de la pile STOK correspondant à l'index du registre FIFO 52, et le registre FIFO est incrémenté jusqu'à la valeur STOK ID séquentielle suivante. Une recherche dans la pile STOK est réalisée toutes les fois qu'une nouvelle valeur STO est introduite dans le registre CRI. La recherche commence en enclenchant le contenu du registre#indicateur 51 sur I1iden- tificateur STO ID 2 qui est l'index de la première entrée dans la pile STOK. Ensuite, le contenu de l'entrée 2 est extrait et comparé avec STO qui se trouve dans CRI. S'ils sont égaux, l'entrée 2 de STO représente le nouveau STO et il possède un identificateur STO ID 2. La condition d'égalité est indiquée par le circuit de comparaison 56 par un signal sur la ligne 56A appliqué à la porte 51B qui, par ce moyen, fait sortir le contenu du registre indicateur 51 comme l'identificateur STO ID actif sur les lignes 51C. Cependant, si le circuit de comparaison 56 envoie en sortie un signal d'inégalité sur la ligne 56B, il incrémente le contenu du registre indicateur 51 à la valeur suivante STO ID et la comparaison de cette entrée suivante dans le registre STOK 50 est alors faite dans le comparateur 56 avec le STO dans le registre CR1. Le procédé continE alors jusqu'a ce qu'un signal d'égalité soit généré, ou jusqu'à ce que le STO qui se trouve dans le registre CRI soit chargé dans l'entrée positionnée par la bascule FIFO 52. La recherche dans la pile STOK prend fin toutes les fois que le comparateur 53 trouve le contenu du registre indicateur 51 égal à la valeur qui se trouve dans le registre FIFO 52. C'est lorsque le STO actif dans le registre CRI ne se trouve pas dans l'une quelconque des entrées de la pile STOK 50 qu'elle est introduite dans l'entrée de la pile STOK à l'emplacement prévu dans le registre FIFO 52, qui est alors égale au signal d'l'entrée dans le registre indicateur 51. Le signal de sortie égalité du comparateur 53 est ainsi appliqué par l'intermédiaire d'un circuit OU 58, qui fournit alors un signal STO d'écriture aux portes d'entrée de la pile STOK 50, qui écrit par ce moyen les valeurs STO actives fournies par les registres CRO et CR1 et qui sont introduites dans cette entrée par la bascule FIFO. Le signal d'égalité provenant du comparateur 53 incrémente aussi le registre FIFO 52 à la valeur STO ID séquentielle suivante. Eventuellement, il est possible pour la pile STOK 50 que toutes ses entrées de 2 à 30 soient remplies de STO. Alors si une nouvelle valeur de STO est chargée dans le registre CRI, et qu'une recherche est faite de la façon décrite précédemment et qu'aucune valeur STO égale ne soit trouvée dans les entrées STOK 2-30, le registre indicateur 51 s'incrémentera éventuellement jusqu'à la valeur 31 qui sera détectée par le circuit 54 comme une valeur supérieure à 30 qui donnera alors en sortie un signal DLAT sur la ligne 54A, ce qui rendra toutes les entrées DLAT invalides. La sortie du circuit 54 est réappliquée à nouveau à l'entrée de restauration du registre indicateur 51, qui le restaurera à la valeur 2 pour indexer la première entrée de la pile STOK 50. En outre, le signal de sortie du circuit 54 est aussi appliqué par l'intermédiaire d'un circuit de retardement 57 qui fournit en effet un retard égal au temps nécessaire pour éliminer toutes les entrées du DLAT et, après la fin de l'élimination du DLAT, fournit un signal de sortie par l'intermédiaire du circuit OU 58 qui écrit la nouvelle valeur STO dans l'entrée 2 de la pile STOK. Excepté pour la bascule 57 de la mémoire commune et ses circuits de conditionnement d'entrée, le dispositif de translation d'adresses représenté sur la figure 7 est identique à celui utilisé dans le CPU du Système IBM 370 Modèle 168. Les signaux d'entrée appliqués au dispositif de translation proviennent du registre d'adresse logique (LAR) 61 qui est aussi représenté sur la figure 1, et d'un registre d'entrée du dispositif de translation (TIR) 62. Le registre LAR 61 reçoit les adresses virtuelles provenant de l'unité d'instruction du processeur, et le registre TIR 62 reçoit les STO provenant du registre CR1 et les STE et PTE provenant de la mémoire principale, une à la fois. L'état du bit d'espace commun C dans un STE est détecté par la porte de sortie 62C qui détecte la position de bit 30 dans le registre TIR 62.La porte de sortie 62C est connectée à l'entrée d'enclenchement de la bascule de mémoire commune 67 et la met en circuit si le bit C est égal à "1", et met la bascule hors circuit si le bit C est égal à "0". Le conducteur de sortie 67A enclenche la bascule sur les circuits de commande 9 de chargement du DLAT, qui génèrent ensuite et chargent la valeur 31 de mémoire commune dans le STO ID d'une entrée DLAT choisie, si le bit d'espace commun C est égal à 1. Si le bit C d'espace commun est nul, alors la bascule 67 est mise hors circuit et la ligne 67A signalera aux circuits de commande 9 de charger le STO ID à partir du registre indicateur 51 dans le DLAT choisi. Le signal de sortie du dispositif de translation 7 donne les adresses STO + SX, ou PTO + PX, selon le cas pour accéder respectivement à STE et PTE. La valeur PFRA + D n'est pas générée par le dispositif de translation mais est obtenue par l'association de RA provenant du DLAT choisi et la valeur D provenant du LAR 61 laquelle association est faite directement par les circuits de commande d'accès à la mémoire 12 de façon à obtenir une génération plus rapide des adresses de multiplets dans une page en général disponible par l'intermédiaire d'une entrée au DLAT. Une horloge 68 commande la synchronisation nécessaire des circuits du dispositif de translation. L'horloge est actionnée par un signal d'exception du DLAT sur la ligne 87A provenant des circuits de commande 8 de lecture du DLAT. Lorsqu'on ne trouve pas de signaux d'entrée du DLAT, l'horloge termine son fonctionnement en envoyant un signal de chargement du DLAT sur la ligne 68A, qui signale que la valeur PFRA a été obtenue à partir de PTE et est maintenant disponible pour son chargement dans l'entrée du DLAT choisi. Les circuits de commande de chargement du DLAT représentés sur la figure 9 se composent de plusieurs portes qui chargent les différents champs dans le DLAT choisi. Des circuits LRV classiques (non représentés) choisissent le DLAT à charger. Le circuit de chargement pour les clés paires et impaires n'est pas représenté puisqu'il est similaire aux circuits disponibles dans le CPU du système IBM 370 Modèle 168. Sur la figure 9, le générateur ID commun 31 est constitué d'une porte ET qui reçoit le signal d'espace commun sur la ligne 67A et les signaux de chargement du DLAT sur la ligne 68A. Lorsqu'excité, le générateur 91 envoie son signal de sortie sous la forme de bits "1" sur cinq lignes pour représenter la valeur binaire 31. Ces lignes sont appliqués par l'intermédiaire d'un circuit OU 96 au champ STO ID à ltentrée du DLAT choisi. Aussi, la ligne 67A applique le signal d'espace commun provenant de la bascule 67 à un inverseur 97 qui met hors circuit une porte 92 STO ID pour empêcher STO ID actif de passer par la ligne 51C du registre indicateur au circuit OU 96. Par conséquent, lorsqu'un bit C commun est égal à 1, la seule sortie provenant du circuit OU 96 est la valeur 31 indiquant ID commun pour le DLAT choisi. Si le bit d'espace commun est nul, il n'y aura pas de signal de sortie provenant du générateur 91 et l'inverseur 97 enverra un signal à l'entrée de la porte 92, auquel cas l'identificateur STO ID sur les lignes 51C sera appliqué par l'intermédiaire d'un circuit OU 96 au champ STO ID à cinq bits a' l'entrée du DLAT choisi. La porte VA 93 transmettra les bits LAR 8-14 sur la ligne 61A au champ VA du DLAT choisi pour donner l'identification VA. D'ailleurs, la porte RA g4 transmettra le PFRA sur la ligne 66B de la figure 7 au champ RA dans le DLAT choisi. Les circuits de commande de lecture du DLAT représentés sur la figure 8 comportent deux circuits 80 et 86 de commande de lecture de DLAT identiques, qui reçoivent respectivement les signaux d'entrée du DLAT choisi dans les tables de DLAT O et 1. Chaque circuit 80 et 86 comporte plusieurs circuits de comparaison. Dans le circuit 80 par exemple, le circuit de comparaison 81 compare l'identificateur STO ID du DLAT choisi avec le STO ID actif reçu à partir du registre indicateur 51 pour déterminer si l'adresse du DLAT se trouve dans l'espace d'adresses demandé. S'ils sont égaux, un signal est appliqué sur la ligne de sortie 81B au circuit OU 81A. S'ils sont inégaux, aucun signal n'est appliqué sur la ligne 81B et l'adresse du DLAT ne se trouve pas dans l'espace d'adresses demandé.Cependant, la présente invention propose un circuit ET 82 de détection de mémoire commune pour détecter si l'identificateur STO ID dans le DLAT choisi est 11 indicateur 31 de mémoire commune. Le circuit 82 est constitué d'une porte qui détecte que les cinq entrées STO ID sont toutes des "1" pour détecter la valeur 31 binaire et exciter le signal de sortie de la porte OU 81A, qui ne tient pas compte des conditions d'inégalité quelconques dans le circuit 81. Ainsi, le circuit OU 81A donne un signal de sortie actif sauf si les STO ID sont égaux ou si un identificateur ID commun se trouve à l'entrée du DLAT. Un circuit de comparaison VA 83 compare les champs VA dans le DLAT choisi avec les positions de bits 8-14 dans le registre LAR 61. Si ces champs VA sont égaux, le DLAT translate ce VA, pourvu qu'un signal de résolution d'espace d'adresses soit appliqué par le circuit OU 81A pour conditionner le circuit 84 qui fournit alors un signal de sortie à la porte 85A qui transmet par ce moyen l'adresse absolue RA reçue à partir du DLAT choisi par un registre RA 85. Le RA est alors transmis à la porte de sélection RA 89 à partir du registre RA. Les signaux de sortie de la porte 85A et de sortie 80A du circuit 84 conditionnent aussi une porte 84A pour choisir la clé paire ou impaire à partir de l'entrée DLAT pour l'introduire dans les circuits de protection de clés 88. Les circuits de commande 86 de lecture du DLAT 1 renferment des circuits identiques aux circuits de commande 80 de lecture du DLAT O que lion vient de décrire. Les circuits de commande 80 et 86 (qui reçoivent simultanément les signaux de sortie de la paire à une adresse choisie prennent la décision de laquelle de l'entrée DLAT de la paire ou d'aucune de ces entrées, sera le DLAT choisi par la demande d'adresse en cours dans le LAR 61 et le registre indicateur 51. Seule une des lignes 80A ou 86A peut être active à un moment quelconque à partir d'une paire d'entrées du DLAT, puisque seulement un des deux circuits peut remplir les conditions d'égalité nécessaires pour rendre active la ligne respective. D'ailleurs, seulement un des circuits 80 ou 86 peut envoyer un signal de sortie RA à travers sa porte 85A.Le signal RA conditionné sera appliqué comme signal d'entrée à la porte de sélection de RA 89, mais on ne lui permettra pas de sortir de la porte 89 à moins que la clé à l'entrée du DLAT choisi soit égale à la clé PSW (mot d'état de programme) reçue par le circuit de protection de clé 88. Si la clé PSW et la clé DLAT sont égales, un signal est appliqué sur la ligne 88A pour exciter la porte de sélection RA 89 pour transmettre son signal RA reçu aux circuits de commande d'accès à la mémoire, qui accédera à l'adresse dans la mémoire principale. Cependant, si la comparaison de clés donne un signal d'inégalité dans les circuits 88, un signal sur la ligne 88B indique 'une violation de clés qui sera appliquée aux circuits d'interruption du dispositif de traitement de données, et l'accès sera empeché par la porte 89. Le circuit OU 87 comporte aussi une sortie complémentaire 87B qui indique que ni l'entrée 80A ni l'entrée 86A indique une sélection soit de l'entrée DLAT O soit de l'entrée DLAT 1, dans la paire. Le signal sur la ligne de sortie 87B génère un signal d'exception DLAT pour indiquer que l'adresse virtuelle dans le registre LAR 61 n'est pas représentée par un signal d'entrée DLAT quelconque et qu'il est -nécessaire pour le dispositif de translation de translater l'adresse virtuelle en une adresse de page absolue pour une page qui peut être située dans la mémoire principale.Si la page ne se trouve pas dans la mémoire principale, alors une opération d'entrée/sortie (E/S) est nécessaire pour transférer la page du dispositif E/S à la mémoire principale avant que le dispositif de translation puisse y accéder et charger une entrée DLAT avec le résultat de la translation d'adresse. La réalisation préférée, décrite précédemment, fournit un indicateur de segment commun dans les STE qui sont communs à tous les espaces d'adresses, c'est-à-dire, toutes les tables de segments et toutes les pages dans un segment commun (ctest-à-dire une table de pages) sont inclues de façon implicite dans le segment commun sans nécessiter un indicateur quelconque dans les tables de-pages. C'est-à-dire, un bit unique de segment commun C rend commun les différentes pages de ce segment avec tous les espaces d'adresses. La réalisation de page commune résout l'espace commun au niveau de la page, plutôt qu'au niveau du segment comme#cela est réalisé dans la première réalisation. Mais, dans l'une ou l'autre des réalisations, l'entrée ID de la mémoire commune dans le DLAT s'applique seulement à la page représentée par l'entrée du-DLAT. La seconde réalisation permet, par conséquent, à quelques pages dans un segment, d'être des pages partagées communes à tous les espaces d'adresses, tandis que d'autres pages dans le même segment peuvent etre restreintes seulement à un espace d'adresse unique. Le facteur déterminant grâce auquel les pages seront partagées en commun est commandé en plaçant le bit d'espace commun C dans les entrées de la table de pages (PTE) plutôt que dans les entrées de la table de segment (STE). Ceci est représenté sur la figure 2, le bit d'espace commun C étant représenté dans PTE-g pour représenter une entrée dans la table de pages i.En conséquence, les pages représentées dans la table de pages g sont partagées de façon sélective ou ne sont pas partagées parmi les espaces d'adresses en enclenchant simplement ou en n'enclenchant pas le bit indicateur C sur la position 1 ou O dans niimporte quel indicateur d'espace commun dans les STE qui peuvent alors avoir le format classique représenté sur la figure 3. La nouvelle entrée PTE de la figure 2 est illustrée sur la figure 4B. La seule différence dans le dispositif détaillé qui est représentée pour supporter le bit C commun PTE de la figure 2 tplutôt que le bit commun STE de la figure 1) se trouve sur la figure 7 dans laquelle la porte de sortie TIR 62D est utilisée pour détecter l'état du bit PTE 23 et la porte de sortie 62C ne sert à rien. Tous les autres circuits représentés sur les figures 5, 6, 7#, 8 et 9 n'ont pas besoin d'être modifiés. La valeur 31 est encore utilisée comme l'indicateur de mémoire commun dans le DLAT mais il sera maintenant automatiquement utilisé pour commander la possibilité de partage sur une base de page plutôt que sur la base d'un segment. On comprendra que l'indicateur de mémoire commun utilisé dans le DLAT nia pas besoin d'avoir la valeur 31 mais peut être n importe quel indication unique utilisable dans tous les DLAT. Par exemple, ce peut etre un bit drapeau supplémentaire dans chaque DLAT enclenché à l'état du bit C trouvé dans le STE ou PTE translaté. Bien que l'on ait décrit dans ce qui précède et représenté sur les dessins les caractéristiques essentielles de l'invention appliquées à un mode de réalisation préféré de celle-ci, il est évident que l'homme de l'art peut y apporter toutes modifications de forme ou de détail qu'il juge utiles, sans pour autant sortir du cadre de ladite invention. REVENDICATIONS 1.- Dispositif translatant des adresses virtuelles en adresses réelles au moyen de tables de segments et de tables de pages, dans un système de traitement de données pouvant utiliser des pages de données etjou d'instructions dites partageables, entre différents espaces d'adresses utilisant la meme série d'adresses virtuelles, les espaces d'adresses étant identifiés par des tables de segments, un registre de commande identifiant une table de segments active et un registre d'adresse virtuelle contenant une adresse virtuelle permettant d'accéder, après translation, à l'espace d'adresses identifié par la table de segments active. Ce dispositif est caractérisé en ce qu'il comporte: une mémoire contenant des groupes d'informations, chaque groupe contenant l'adresse virtuelle et l'adresse réelle correspondante d'une page et un champ identifiant la table de segments associée; des moyens d'adressage, à l'entrée de cette mémoire, recevant des signaux d'adressage à partir de certains champs du registre d'adresse virtuelle pour adresser un groupe d'informations dans la mémoire; des moyens de translation d'adresses connectés au registre d'adresse virtuelle pour translater l'adresse contenue dans ce registre d'adresse virtuelle en une adresse réelle en accédant à l'une des entrées de la table de segments active pour pouvoir adresser une table de pages pour obtenir finalement une adresse réelle de pages;; des moyens de détection de pages partageables détectant la valeur d'un champ spécial d'un ou de plusieurs bits dans l'entrée de la table de segments active ou dans l'entrée de la table de pages consultée par les moyens de translation d'adresses; des moyens de chargement de la mémoire chargeant dans une de ses positions pouvant contenir un groupe d'information, l'adresse directe ou indirecte d'une table de segments active, l'adresse virtuelle d'une page adressée fournie par le registre d'adresse virtuelle et l'adresse réelle correspondante fournit par les moyens de translation d'adresse, ces moyens de chargement pouvant en outre introduire dans la mémoire, quand nécessaire, une information indiquant l'état du champ spécial de l'entrée correspondante de la table de segments ou de la table de pages consultée;; des moyens indicateurs de pages partageables détectant cette information dans la mémoire pobr indiquer si une page adressée est partageable entre plusieurs espaces d'adresses ou si elle est réservée uniquement à espace d'adresses correspondant. 2.- Dispositif selon la revendication précédente caractérisé en ce que le champ spécial dans chacune des entrées d'une table de segments comporte seulement un bit, ce bit indiquant, suivant sa valeur, si toutes les pages de l'espace d'adresses correspondant au-segment identifié par l'entrée de table concernée sont réservées à cet espace d'adresses ou sont partageables entre plusieurs espaces d'adresses. 3.- Dispositif selon la revendication I caractérisé en ce que le champ spécial dans chacune des entrées d'une table de pages comporte seulement un bit, ce bit indiquant, suivant sa valeur, si la page référencée par ltentrée-de table concernée est réservée seulement au segment correspondant ou est partageable entre plusieurs segments ou espaces d'adresses. 4.- Dispositif selon l'une quelconque des revendications précédentes caractérisé en ce que l'information, dans la mémoire, indiquant si une page adressée est partageable entre plusieurs espaces d'adresses, correspond à une valeur prédéterminée du champ d'identification de table de segments dans le groupe d'informations correspondant de la mémoire. 5.- Dispositif selon l'une quelconque des revendications précédentes caractérisé en ce que la mémoire est du type associatif dont les circuits de lecture comportent des moyens de comparaison comparant d'une part l'adresse virtuelle de page fournie par le registre d'adresse virtuelle à chacune des adresses virtuelles de pages contenues dans la mémoire et d'autre part le champ d'identification de la table de segments active fourni par le registre de commande aux champs identifiant les tables de segments contenus dans la mémoire, les moyens de translation d'adresses utilisant l'adresse réelle de page d'un groupe d'informations de la mémoire quand l'adresse virtuelle de page et le champ d'identification de table de segments de ce groupe d'informations sont égaux respectivement à l'adresse virtuelle de page fournie par le registre d'adresse virtuelle et au champ d'identification de la table de segments active fourni par le registre de commande. 6.- Dispositif selon les revendications 4 ou 5 caractérisé en ce que les moyens de translation d'adresses utilisent l'adresse réelle de page d'un groupe d'informations de la mémoire quand l'adresse virtuelle de page de ce groupe d'information est égale à l'adresse virtuelle de page fournie par le registre d'adresse virtuelle, meme quand le champ d' iden- tification de table de segments dans ce groupe d'informations n'est pas égal au champ d'identification de la table de segments active fourni par le registre de commande, lorsque-le champ d'identification de ce groupe d'informations a une valeur prédéterminée. 7.- Dispositif selon l'une quelconque des revendications précédentes caractérisé en ce qu'il comporte une pile contenant les adresses d'origine des tables de segments du système, un pointeur contenu dans un registre de pointage étant utilisé pour adresser l'une de ces adresses d'origine dans la pile, ce pointeur étant également utilisé par les circuits de chargement et de lecture de la mémoire. 8.- Dispositif selon l'une quelconque des revendications précédentes caractérisé en ce que les espaces d'adresses sont divisés en une centaine de portions d'adresses, un registre d'états de portions d'adresses étant prévu contenant autant de positions de bits qu'il existe de portions d'adresses dans un espace d'adresses, chaque position de bit indiquant si la portion d'adresses correspondante est réservée à l'espace d'adresses concerné ou est partageable entre les différents espaces d'adresses. 9.- Dispositif selon la revendication précédente caractérisé en ce qu'il comporte en outre des portes logiques ET en nombre égal au nombre de portions d'adresses dans un espace d'adresses, chacune de ces portes recevant sur l'une de ses entrées l'une des sorties d'un circuit décodeur décodant les bits de poids supérieurs de l'adresse virtuelle définissant une portion d'adresses dans le registre d'adresse virtuelle et sur l'autre entrée le bit d'état de portion d'adresses correspondant délivré par le registre d'états de portions d'adresses, l'un de ces circuits ET lorsqu'il est actif délivrant un signal activant un circuit générant la valeur prédéterminée du champ d'identification de table de segments dans le groupe dtinformations correspondant de la mémoire.