Brevet FR2349888A1 — publié le 19771125

La présente invention concerne de façon générale les dispositifs permettant l'accroissement de la taille de la mémoire principale d'un système de traitement de données au moyen de différents types d'unités de mémoire. 5 En particulier, l'invention concerne un système de traitement de données présentant une mémoire principale composée de différents types d'unités d'emmagasinage qui peuvent fonctionner soit dans un mode de translation d'adresses soit dans un mode de non translation. La mémoire comporte initialement une unité d'emmagasinage interne qui peut fonc-10 tionner soit dans un mode de translation, soit dans un mode de non translation. Mais des accroissements de mémoire au-delà de l'unité d'emmagasinage interne peuvent seulement fonctionner dans le mode de translation en utilisant un translateur d'adresses. L'augmentation de la capacité de la mémoire principale ajoute une unité d'emmagasinage externe 15 et/ou une unité d'emmagasinage asynchrone. Les unités d'emmagasinage internes et externes sont synchrones parce qu'elles utilisent le cycle d'accès à la mémoire normal d'un processeur dans le système, tandis que l'unité d'emmagasinage asynchrone peut demander un temps d'accès plus long. 20 L'accroissement de la mémoire principale par l'addition physique d'unités d'emmagasinage est bien connu dans l'art antérieur. Le brevet français No. 74 07871 déposé par la demanderesse le 28 février 1974 décrit une technique de commande de mémoire permettant d'accroître la mémoire en ajoutant un bit d'ordre supérieur à l'adresse, 25 lequel bit d'ordre supérieur ne fait pas partie de l'adresse apparenté du programme mais est commandé par les différents modes de systèmes, mode d'interruption, mode d'entrée/sortie (E/s), etc. . Les brevet des E.U.A NoS. 3 343 140 (Richmond et al); 3 247 488 (Welsh et al); et 3 274 554 (Hopper et al) décrivent un dispositif agis-30 sant sur l'horloge du processeur lorsqu'un circuit de priorité d'emmagasinage donne la priorité à une demande d'accès à la mémoire à partir d'une unité autre que le processeur. Par exemple, le brevet des E.U.A No. 3 343 140 décrit une mémoire principale présentant plusieurs blocs de mémoires synchrones identiques, 35 chaque bloc comportant son circuit de sélection de priorité, son registre d'adresses et son registre de données. Chaque bloc fonctionne de façon synchrone (c'est-à-dire en phase) avec l'horloge du processeur (c'est-à-dire le compteur de phases de l'unité arithmétique). Un réseau de réaction dans chaque bloc de mémoire peut arrêter l'horloge du processeur, tandis 40 qu'une demande d'accès au processeur est momentanément arrêtée due au bloc 2 2349888 donnant la priorité d'accès à une demande de priorité supérieure provenant d'une autre unité; mais une fois qu'une demande d'accès est accordée, la mémoire de bloc activée continue à fonctionner selon un cycle synchrone. La présente invention propose un dispositif permettant d'accroître 5 la taille de la mémoire principale d'un système de traitement de données, comportant un translateur de repositionnement et ayant des interfaces de connexion pour la fixation d'une unité d'emmagasinage externe synchrone et/ou d'une unité d'emmagasinage asynchrone qui peuvent être placées de façon éloignée du processeur. Le translateur renferme plusieurs ensembles 10 de registres de segmentation qui exécutent une translation d'adresses qui augmente le nombre de bits dans l'adresse physique pour permettre un accroissement de la capacité de la mémoire principale. L'adresse dont la valeur est accrue se compose d'un champ d'adresse provenant du programme et d'une clé d'adresses provenant de la machine qui peut représenter le 15 type d'accès à la mémoire identifié par le processeur ou le canal. Une forme différente de cycles d'emmagasinage est générée pour chacune des trois unités d'emmagasinage auxquelles on accède. Le système d'accroissement de mémoire permet un adressage statique dans la mémoire étendue allant jusqu'à une limite déterminée soit (1) 20 par le nombre de positions de bits dans la clé d'adresses actives et l'adresse de programme logique, soit (2) par le nombre des registres de segmentation dans tous les groupes de registres du translateur d'adresses multiplié par la taille du bloc adressé par un registre de segmentation. La taille accrue maximum de là mémoire peut excéder de façon subs-25 tantielle la taille d'adressage statique, dans laquelle l'adressage total de la mémoire est obtenu par le rechargement des registres de segmentation. La taille d'accroissement maximum de la mémoire principale est déterminée par le nombre des positions de bits dans l'adresse physique de la mémoire principale, qui est déterminé par le nombre de bits dans 30 le champ d'adresse de bloc physique dans un registre de segmentation (pour l'adressage d'un bloc physique dans l'une quelconque des unités d'emmagasinage) associé au nombre de positions de bits nécessaires pour adresser une position dans ion bloc d'emmagasinage quelconque choisi. Par conséquent, l'objet principal de cette invention consiste à 35 proposer un système d'accroissement de capacité de mémoire qui utilise un translateur de repositionnement d'adresses ou translateur d'adresses, présentant des interfaces synchrones et asynchrones pour connecter des unités d'emmagasinage pouvant être ajoutées. Un autre objet de cette invention consiste à proposer un translateur 40 qui permet à une mémoire principale pouvant être accrue de recevoir des 3 2349888 adresses logiques, dans lesquelles les mêmes adresses de programme logiques peuvent avoir des emplacements différents qui n'entrent pas en conflit les unes avec les autres dans la mémoire principale physique qu'elle soit ou non accrue par l'intermédiaire d'unités d'emmagasinage 5 externes ou asynchrones. Un autre objet de cette invention consiste à proposer m système d'emmagasinage pouvant être accru qui présente des interfaces uniques entre un processeur et un translateur, entre le translateur et une unité d'emmagasinage interne, entre le translateur et une unité d'emmagasinage 10 externe, et entre le translateur et une imité d'emmagasinage asynchrone. Un autre objet de cette invention consiste à proposer des caractéristiques nouvelles à l'intérieur des interfaces de translateurs respectifs. Un cycle d'emmagasinage interne (ISC) est généré par le translateur pour chaque accès translaté à réaliser dans l'unité d'emmagasinage 15 interne. Cependant, l'interface entre le translateur et l'unité d'emmagasinage interne n'est pas obtenue par une connexion directe entre le translateur et l'unité d'emmagasinage interne, mais plutôt, leur connexion se fait avec l'extrémité côté processeur du bus de la mémoire principale dont l'autre extrémité est reliée à l'unité d'emmagasinage interne. La 20 connexion du translateur au bus de la mémoire principale fournit les bits d'adresse de bloc d'ordres supérieurs, tandis que le registre d'adresses de la mémoire du processeur (SaR) fournit les bits de déplacement d'ordre inférieur dans l'adresse physique au bus de la mémoire principale. Ainsi, l'interface translateur-processeur a un rôle double d'être aussi 25 un interface translateur-unité d'emmagasinage interne. Les commandes du translateur pour l'unité d'emmagasinage asynchrone permettent des variations de temps d'accès importantes. Ceci permet à l'unité asynchrone d'être placée de façon éloignée du translateur si nécessaire, bien que le temps d'accès augmente avec la longueur de la 30 connexion, et ceci permet aussi à l'unité d'emmagasinage asynchrone d'être fabriquée à partir d'une technologie d'emmagasinage quelconque en tolérant des vitesses différentes de technologies. La variation du temps d'accès est obtenue par une ligne "mémoire du translateur occupée" placée dans l'interface translateur-processeur, qui arrête l'horloge du processeur 35 et la maintient arrêtée jusqu'à ce qu'un signal de transition soit envoyé sur la ligne "introduction des réponses" à partir de l'unité d'emmagasinage asynchrone sur son interface avec le translateur. L'arrêt de l'horloge du processeur par le translateur de l'unité d'emmagasinage asynchrone se produit indépendemment de n'importe quel contenu prioritaire 40 parmi les différents types de demandes d'emmagasinage pour un accès 4 2349888 à la mémoire. En outre, un dépassement du temps imparti est prévu dans le translateur pour permettre une période meiximum pendant laquelle l'horloge du processeur peut être maintenue en arrêt. Lors de l'apparition d'un tel dépassement 5 de temps imparti, un signal d'adresse de mémoire invalide (ISA) est généré et transmis au processeur. Ceci signifie que 1'emplacement de la mémoire adressé ne se trouve pas physiquement dans la mémoire principale, ou que l'unité d'emmagasinage n'est pas sous puissance, ou qu'une panne s'est produit dans les circuits de mémoire adressés. 10 C'est par conséquent un objet de cette invention de proposer une mémoire principale qui peut être composée d'unités d'emmagasinage synchrones et asynchrones de façon hétérogène, commandées par un translateur de repositionnement. Les unités d'emmagasinage synchrones fonctionnent de façon synchrone avec une horloge de processeur pour ne demander aucun 15 arrêt de l'horloge du processeur pendant un cycle d'accès normal. L'unité d'emmagasinage asynchrone fonctionne de façon asynchrone avec un processeur en signalant au processeur d'arrêter son horloge lors de chaque cycle d'accès. Un autre objet de cette invention consiste à proposer un procédé et 20 un moyen de générer un signal d'adresse d'emmagasinage invalide par une opération de dépassement de temps imparti, lequel signal est transmis à un processeur présentant un contrôle sur l'unité d'emmagasinage. 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 25 dessins annexés à ce texte, qui représentent un mode de réalisation préféré de celle-ci. La figure 1A-1 représente de façon générale un concept d'adressage par type d'accès dans lequel une clé de protection mémoire active (AAK) est choisie par une demande d'accès en mémoire pour commander l'accès 30 physique à line mémoire principale. La figure 1A-2 représente de façon générale un concept de translation de clés de protection mémoire dans lequel une adresse physique de la mémoire principale est générée à partir d'une adresse d'entrée logique composée d'une clé AAK générée par la machine et d'une adresse apparente 35 du programme. La figure 1B représente de façon schématique plusieurs types d'accès à la mémoire identifiables par la machine qui peuvent être réalisés dans la présente invention. La figure 1C est une représentation physique d'un système de traitement 40 de données comportant une mémoire principale physique unique pouvant 2349888 être agrandie, qui peut fonctionner avec un ou plusieurs types de protection d'adressage. La figure 2 représente le format du contenu de chaque registre de segmentation que l'on trouve dans la réalisation détaillée. 5 Les figures 3A et 3B représentent en détail une réalisation préférée du translateur d'adresse représenté sur la figure 1C qui translate une adresse machine logique de 19 bits en une adresse physique de 24 bits pour accéder à la mémoire. Les figures 3C et 3D représentent des circuits détaillés que l'on 10 trouve dans des rectangles représentés sur les figures 3A et 3B. La figure 3E représente le fonctionnement des circuits d'anticipation sélectant l'une des unités d'emmagasinage interne, externe, ou asynchrone et l'interprétation de l'adresse physique à 24 bits par l'unité choisie pendant le cycle d'accès. 15 La figure 4 représente un circuit de commande de mode processeur utilisé dans la réalisation détaillée pour la sélection soit du mode de protection-mémoire non translaté, soit du mode de protection-mémoire translaté. La figure 5 représente une instruction de conditionnement/annulation 20 utilisée pour conditionner ou annuler les modes d'adressages spéciaux du processeur, tels que protection-mémoire non translaté (SPO), protection de mémoire translaté (TE), et commande d'adressage des espaces d'opérandes équivalents (EOS). La figure 1A donne sous forme d'exemple le concept inventif général 25 utilisé dans la réalisation préférée sous forme de concept. lia figure 1A comporte un circuit 20 de sélection de la clé AAK, dite encore clé de protection-mémoire ou adressage active, qui concerne un type particulier de demande d'accès à la mémoire (indiqué par l'une quelconque des lignes 21, 22, 23, 24 ou 25) pour chacune des parties du registre de 30 clés correspondant 31, 32, 33, 34 ou 35 qui renferment respectivement une clé CS, une clé IS, une clé OPl, une clé OP2, et une clé OP3. La clé correspondant à ces clés donne à la sortie des circuits 20 de sélection de clés, la clé AAK. La clé AAK commande l'adressage de la mémoire principale du système pendant l'accès suivant à la mémoire, c'est-à-dire 35 lorsqu'on extrait (ou emmagasine des données) de (ou dans) la mémoire principale. Dans cette opération d'adressage, la clé AAK fournit la partie d'ordre supérieur de l'adresse logique utilisée par le dispositif pour accéder à la mémoire. Les lignes de demande d'accès 21, 22, 23, 24 et 25 signalent chacune 40 un type différent de demande d'accès. Ces demandes sont envoyées à 6 2349888 partir des canaux et des processeurs pouvant accéder à la même mémoire principale. Ces lignes de demande sont appelées respectivement sur la figure 1A accès Entrée/Sortie E/S 21, extraction instruction I (22), accès opérande 1 OPl (23), accès opérande 2 0P2 (24), et accès opérande 3 OP3 (25). Si un seul signal de demande d'accès apparaît à un moment quelconque, alors ce signal de demande d'accès permet immédiatement à la sortie de la section correspondante du registre AKR de fournir la clé AAK. Si plusieurs signaux de demande d'accès apparaissent simultanément, alors des circuits de priorité dans les circuits 20 de sélection de clé AAK déterminent l'ordre dans lequel chacune des demandes d'accès simultanées seront traitées dans le registre de clé de protection mémoire correspondant en tant que clé AAK. Il est prévu un ordre de priorité parmi les signaux de demande simultanés, de telle sorte qu'une demande d'accès E/S de vol de cycle est d'abord acceptée pour sortir la clé de la mémoire de commande CS. La demande d'extraction I est acceptée ensuite pour sortir la clé IS en tant que clé AAK. La demande d'accès de OPl est acceptée en troisième rang pour sortir la clé OPl en tant que clé AAK? et les demandes d'accès OP2 et OP3 sont acceptées en quatrième et cinquième positions pour sortir respectivement la clé QP2 ou OP3 en tant que clé AAK. On peut par conséquent voir que l'invention présente une relation particulière entre les types de demandes d'accès et des parties particulières du registre de clés. L'ensemble des clés d'adressage dans un processeur sont groupées dans un registre AKR qui renferme: la partie registre de clés XS qui concerne chaque demande d'extraction d'instruction de la mémoire principale pour commander l'accès à chaque instruction, et les parties de registre de clés OPl à OP3 qui concernent les différents types d'accès d'opérandes nécessaires à l'exécution des instructions. En outre, chaque sous-canal d'entrée/sortie possède son propre registre de clés CS. Plusieurs sous-canaux E/S peuvent aussi demander simultanément à accéder à la mémoire principale. Des circuits de sélection de priorité sont prévus pour présenter les clés CSK dans un ordre séquentiel prédéterminé lorsque leurs demandes apparaissent simultanément. En outre, si des multiprocesseurs accèdent à la même mémoire principale, des circuits d'ordre de priorité sont prévus pour choisir un ordre parmi les sorties des clés aak des processeurs respectifs. La figure 1A représente un dispositif de clé aak canal/processeur qui utilise un sous-ensemble de types de demandes d'accès à la mémoire qui peuvent être réalisés en tenant compte des données architecturales ayant présidé à la conception du système de traitement de données. 7 2349888 L'adresse d'entrée de la mémoire principale donnée pair la machine, représentée sur la figure 1A, est la combinaison de la clé AAK et de l'adresse apparente du programme. L'adresse apparente du programme est l'adresse apparaissant sur la machine à partir d'un programme à exécuter, 5 telle que les adresses d'appel d'instructions dans un registre d'adresses d'instructions (IAR), et les adresses d'opérandes dans les instructions du programme. Lorsqu'un programme est écrit, le programme manipule seulement des adresses apparentes. Le programmeur d'application a connaissance des opérations effectuées par les clés AAK seulement dans la mesure où 10 il groupe les données d'opérandes séparément à partir du programme. Le programmeur-système précisera en général les zones d'accès aux événements du processeur et leurs contenus, et le programmeur E/S précisera en général les zones d'accès aux événements et commandes E/S et leurs contenus. Sur la figure lA, la composante de la clé AAK occupe un nombre 15 K de positions de bits sur la partie d'ordre supérieur de l'adresse d'entrée combinée, et l'adresse apparente du programme occupe 16 positions de bit pour donner un total de 16+K positions de bits dans l'adresse d'entrée de la machine. Sur la figure 1A, l'adresse d'entrée, comprenant le champ de clés 20 AAK, est une adresse logique machine, qui nécessite une translation d'adresse à l'emplacement désiré dans le système de traitement de données. D'autre part, l'invention comprend l'utilisation de la clé AAK par exemple comme une restriction utilisable directement sur l'adresse physique, qui n'est pas translatée. 25 Le translateur d'adresses de la figure lA présente plusieurs piles K ou ensembles de registres de segmentation 0 à 2 . Chaque partie du registre de clés AKR du processeur ou du sous-canal renferme au moins une clé de K bits, qui a une valeur telle qu'elle peut provoquer l'adressage de n'importe lequel des ensembles de registres. Un dispositif d'adressage 30 40 des ensembles de registres reçoit la clé AAK et décode l'adresse de l'ensemble des registres pour choisir celui qui est nécessaire. Alors les positions de bits d'ordre supérieur 0 à P de la composante apparente de l'adresse dans le programme d'entrée choisissent un registre de segmentation (SR) dans l'ensemble choisi. Le contenu des positions de 35 bits 0 à 12 du registre choisi SR renferme un numéro de bloc attribué qui donne les positions de bits 0 - 12 de l'adresse physique d'un bloc physique particulier dans la mémoire principale, auquel on accède alors. Les positions de bits restantes 13 à 23 de l'adresse physique à 24 bits donnent le déplacement (D) du multiplet dans le bloc physique 40 choisi, et qui est le même que le déplacement D du multiplet dans l'adresse 8 2349888 d'entrée déterminée par ses bits d'ordre inférieur (P+l) à 15. L'accès dans le bloc physique particulier est aussi commandé par des bits "drapeau" dans les emplacements de bits restants 13 à 15 du registre SR. Le format de l'un quelconque des registres SR est représenté de façon plus détaillée sur la figure 2 dans lequel la position 13, bit de validité (V), indique si le contenu du numéro de bloc est valide. S'il est invalide, (c'est-à-dire V=0), le contenu du registre SR ne peut pas être utilisé pour générer une adresse physique et il se produit une interruption d'exception d'adressage. La position du bit drapeau 14 indique si le contenu du bloc adressé peut être ou non lu. Si le bit 14 est égal à 1, il n'est pas permi d'effectuer une opération d'écriture sur le bloc, seuls les appels de données sont autorisés. Le bit 15 n'est pas utilisé. Le second mot, composé des bits 16 à 31, est réservé et n'est pas utilisé dans la présente invention. La figure 1C représente une configuration d'un système de traitement de données présentant une nouvelle mémoire principale pouvant être agrandie pour traiter des adresses translatées. La mémoire principale minimum renferme une mémoire interne 51 qui contient jusqu'à 64K multiplets. Le premier accroissement est dû à l'addition d'une mémoire externe 52 qui peut ajouter 64K multiplets de mémoire pour accroître la mémoire principale jusqu'à 128K multiplets. Ensuite, une mémoire asynchrone 53 pouvant être agrandie peut être ajoutée de façon à accroître la mémoire principale jusqu'à un maximum de 16 777 216 multiplets (c'est-à-dire 224) . Un translateur 59 permet la translation d'adresses et contient des interfaces qui permettent de réaliser les connexions supplémentaires de la mémoire externe 52 et de la mémoire asynchrone 53 avec la configuration de la mémoire principale. Un bus de mémoire principale S6A relie un processeur 54 et un canal E/S 55 à la configuration de mémoire principale à travers un circuit de sélection de priorité d'emmagasinage 55. Le bus de la mémoire principale 56A est aussi relié au translateur 59 et à la mémoire interne 51. Les lignes de signaux séquentiels de la mémoire interne 54A relient directement la mémoire interne 51 au circuit de sélection de priorité d'emmagasinage 56 pour transférer des signaux de cycle d'emmagasinage interne (ISC), lorsqu'il représente une adresse physique non translatée de 16 bits générée par le fonctionnement du processeur dans un mode non translaté. Lorsque le processeur fonctionne dans le mode translaté, le cycle ISC obtient ses cinq bits d'ordres supérieurs du translateur qui comprend un signal de sélection de cartes (que choisit une carte parti- 9 2349888 culière dans un nombre total de cartes allant jusqu'à un maximum de quatre cartes formant l'emmagasinage interne) et des champs CSY et CSX (qui choisissent une zone particulière sur la carte choisie, laquellle zone renferme 4096 bits). Les cinq bits d'ordres supérieurs sur les 5 lignes de bus d'adresses 00-04 sont transférés du translateur au processeur pour être utilisés par le processeur pendant un cycle ISC. Des bits 13 à 22 sont fournis par le registre d'adresse de mémoire SAR du processeur de façon à choisir la position de mot particulière dans la zone adressée, et le bit restant 23 choisit un multiplet particulier dans le mot lorsqu'une 10 opération d'écriture est nécessaire. L'adressage de multiplet obtenu par le bit 23 est utilisé seulement pour des opérations d'écriture, puisque des opérations de lecture sont adressées sur une base d'un mot (un mot se compose de deux multiplets). Pendant une fonction d'écriture, le dernier bit d'adressage 23 est enclenché soit à 0 soit à 1 pour adresser 15 soit le multiplet gauche, soit le multiplet droit dans un..mot. Lorsque le processeur fonctionne seulement avec l'emmagasinage interne (c'est-à-dire sans avoir l'emmagasinage externe ou l'emmagasinage asynchrone dans le système), le processeur adresse seulement la mémoire interne avec des adresses physiques de 16 bits directement sur le bus 20 54A à partir du registre SAR. Les adresses de 16 bits fournies par le processeur peuvent comporter un nombre de bits allant jusqu'à la limite physique de la mémoire interne (c'est-à-dire jusqu'à 64K). Des clés de protection sont utilisées avec les adresses physiques de 16 bits dans ce système de configuration minimum conformément aux circuits de protection 25 sans translation. Les clés de protection utilisent la possibilité d'adressage distinct fournie par les parties du registre AKR pour les différents types d'accès à la mémoire. Les combinaisons des circuits AAK avec les clés de protection font aussi partie des caractéristiques de la présente spécification. Les 30 circuits de clés AAK permettent des possibilités d'adressage distincts suivant le type d'accès à la mémoire et peuvent être combinés séparénment avec les clés d'adressage de mémoire avec non repositionnement ou repositionnement. Si l'on souhaite avoir une possibilité de repositionnement qui 35 permette d'accroître la capacité de la mémoire principale au-delà des limites des 64K de l'unité d'emmagasinage interne, alors le translateur doit être ajouté tel que représenté sur la figure 1C. La mémoire externe peut alors être ajoutée et connectée au translateur par l'intermédiaire du bus 58 sur lequel est appliqué le signal de séquence d'emmagasinage 40 externe pour permettre les commandes du cycle d'emmagasinage externe (OSC). 10 2349888 Le translateur permet aussi un accroissement supplémentaire de la mémoire principale au-delà de la limite de 128K des unités d'emmagasinage internes et externes en permettant l'addition d'une unité d'emmagasinage asynchrone. L'unité d'emmagasinage asynchrone utilise l'adresse à 24 bits translatée d'une façon différente de celle de la mémoire externe, telle que représentée par le cycle d'emmagasinage asynchrone (ASC) représenté sur la figure 3E. Avec le cycle ASC, les positions de bits 0 à 6 sont utilisées et ces positions de bits contiendront au moins un bit supplémentaire parce qu'il faut plus de 16 bits pour représenter un nombre supérieur à 128K. L'utilisation des positions de bits 0 à 6 distingue le cycle ASC du cycle OSC qui n'utilise pas les positions de bits 0 à 6, le cycle OSC utilise seulement les bits 7 à 23. Ces caractéristiques des positions de bits 0 à 6 sont utilisées en plaçant une paire de bits dits à anticipation représentée sur la figure 3E," dont les circuits et le fonctionnement sont décrits de façon plus détaillée en relation avec les figures 3A et 3B. Le translateur présente une connexion avec l'interface du bus de la mémoire principale à travers lequel il reçoit les adresses logiques provenant du processeur comportant la clé d'adressage active pour la translation. Le translateur présente aussi des interfaces connectés à la mémoire externe et aux unités d'emmagasinage asynchrones. Les figures 3A et 3b représentent de façon détaillée un translateur qui exécute les opérations de translation de nouvelles positions décrites sur la figure lA. Ce circuit est capable d'accroître les possibilités d'adressage physique de 64K (2*^) multiplets à 16 millions (2^) multiplets qui représentent un accroissement d'une mémoire interne renfermant 64K multiplets. Le translateur augmente les possibilités d'adressage de la mémoire principale en interprétant la clé AAK et l'adresse apparente du programme à 16 bits à partir soit d'un processeur, soit d'un sous-canal, comme line adresse d'entrée logique appliquée au translateur, qui la translate en une adresse physique à 24 bits qui accède aux composants d'emmagasinage internes, externes ou asynchrones. La translation permet une affectation dynamique de l'emmagasinage physique sur des espaces d'adresses logiques et le partage de la mémoire physique parmi les espaces d'adresses logiques. Il existe huit ensembles de 32 registres de segmentation SR pour les huit valeurs respectives disponibles pour les clés d'adresse pour un total de 256 registres de segmentation. Une fois chargée, chaque pile SR peut renfermer une carte complète d'un espace d'emmagasinage ayant jusqu'à 64K multiplets, qui 11 2349888 peut être ventilé en blocs de mémoire physique de 2K multiplets. Une pile peut adresser un espace présentant moins de 64K multiplets en plaçant simplement le bit- invalide dans un ou plusieurs de ces registres SR, de sorte que seulement les registres SR dont les bits invalides sont annulés désignent les blocs 2K comprenant l'espace adressable identifié par une clé d'adresses désignée. Une pile distincte de registres de segmentation est prévue pour chaque clé d'adresse pour permettre une commutation rapide des espaces d'adresses logiques sans avoir besoin de mettre de côté et de restaurer la carte d'emmagasinage de l'espace d'adresse du système. Le translateur d'adresses des figures 3A et 3B accepte un accroissement de la mémoire principale grâce à une mémoire externe de 64K multiplets constituée de cartes de 16K multiplets de la cinquième à la huitième cartes de la mémoire externe. Dans la mémoire interne constituée de la première à la quatrième carte, chacune présentant d'ailleurs la capacité d'emmagasinage de 16K multiplets. Des suppléments d'emmagasinage au-delà de la capacité de 128K multiplets de la mémoire interne et de la mémoire externe nécessitent l'addition de l'unité d'emmagasinage asynchrone sur la figure le, qui fournit des adresses au-dessus de 128K multiplets qui peuvent aller jusqu'à un maximum de 16 millions de multiplets de la mémoire physique. La possibilité d'adressage maximum de la machine disponible pour tous les programmes simultanés lorsque tous les registres de segmentation 19 sont chargés avec une adresse de blocs physique différente est de 2 multiplets, qui est déterminée par l'adresse d'entrée composée de 19 bits représentée sur la figure lA lorsque la clé AAK à trois bits est annexée à l'adresse apparente de programme de 16 bits pour donner au translateur l'adresse d'entrée logique à 19 bits. Un programme unique peut avoir une possibilité d'adressage1de 1 à 3 espaces d'adresses différents définis dans les trois parties du registre AKR, par exemple, ISK, OP1K, et 0P2K, pour une possibilité d'adressage totale de 64K à 192K multiplets. Ainsi, pour une mémoire principale physique entre 512K et 16m multiplets, seul un nombre maximum de 512K multiplets peut être adressé pour tout chargement donné des registres de segmentation, ceci est défini comme la possibilité d'adressage machine statique maximum. Par conséquent, l'adressage au-delà du maximiim statique de 512K multiplets nécessite le rechargement des registres de segmentation par programme pour permettre la possibilité d'adressage sur d'autres régions de la mémoire principale qui peut être chargée. 12 2349888 La possibilité d'adressage statique peut facilement être accrue en ajoutant des bits supplémentaires à la taille de la clé d'adresse dans le registre AKR et les circuits associés pour permettre un nombre correspondant plus important des piles de registres de segmentation. Lorsqu'on a installé un translateur dans le système tel que représenté sur la figure lA, son utilisation est commandée par un bit 14 dans le mot état de programme (PSW) qui est commandé par les lignes de sortie du décodeur de la mémoire ROS du processeur sous la commande de l'instruction conditionnement/mise hors circuit. Le bit 14 dans l'instruction conditionnement/mise hors circuit indique si le translateur est ou non choisi dans le système et le bit 7 indique s'il est conditionné ou mis hors circuit. Un circuit commande le fait que le translateur soit ou non conditionné. Si le translateur n'est pas conditionné, et si le bit SP apparaît dans l'instruction, on utilise le circuit de commande de protection de la mémoire non translatable. Lorsqu'on a besoin de seulement line faible possibilité d'adressage et d'une vitesse de traitement plus rapide, le translateur peut être mis hors circuit. Les figures 3A et 3B représentent de façon détaillée les circuits, bus et lignes d'interface dans le translateur 59 du système représenté sur la figure 1C, de la façon suivante: (1) Bus d'adresse d'emmagasinage 101. Il possède 15 lignes qui relient l'adresse logique de programme du registre d'adresses d'emmagasinage du processeur (SAR) au translateur. Après translation d'adresses, les cinq bits les plus significatifs translatés sont renvoyés au processeur pour être utilisés dans 1'adressage de la mémoire interne 51. Les dix bits les moins significatifs (bits de champ D) ne nécessitent pas de translation. (2) Bus de données d'emmagasinage 102 appliqué à la mémoire. Il comprend 16 lignes de transfert de données plus deux lignes de parité. Il transfère les données de la mémoire et le contenu du registre de segmentation du processeur au translateur. (3) Bus de données d'emmagasinage 103 provenant de la mémoire. Il comporte 16 lignes de transfert de données plus deux lignes de parité. Il transfère les données de mémoire à partir du translateur et le contenu des registres de segmentation SR vers le processeur. (4) Bus de clés d'adressage actives (AAK). Ces trois lignes transfèrent la clé AAK du circuit de sélection de la priorité de la mémoire au translateur pour permettre de choisir le groupe de registres SR particulier dans le translateur. 13 2349888 (5) Ligne d'écriture dans la mémoire (OP O). Cette ligne unique provenant du processeur signale au translateur qu'une opération d'écriture doit se produire dans la mémoire sur le multiplet le plus à gauche du mot de données se trouvant actuellement 5 sur le bus de données d'emmagasinage appliqué à la mémoire. Cette ligne est commandée par l'état 0 du bit d'ordre le plus faible 23 dans l'adresse physique de 24 bits. (6) Ligne d'écriture dans la mémoire (OP 1}. Cette ligne unique provenant du processeur appliquée au translateur signale 10 qu'une opération d'écriture dans la mémoire doit être exécutée dans le multiplet le plus à droite du mot actuel se trouvant sur le bus de données d'emmagasinage appliqué à la mémoire. Ce signal est aussi commandé par l'état 1 du bit 23 d'ordre le plus faible dans l'adresse physique à 24 bits. 15 (7) Ligne de conditionnement du translateur. Cette ligne unique transmet un signal de processeur au translateur pour permettre au translateur d'exécuter ses fonctions de translation. Il est commandé par l'instruction conditionnement/annulation. (8) Ligne de demande d'emmagasinage au translateur. Cette ligne 20 unique communique un signal du processeur qui demande au translateur de translater l'adresse logique sur le bus d'adresses d'emmagasinage. On microcycle (220 nanosecondes) est automatiquement sauté pour permettre l'accès par le translateur au registre de segmentation approprié, pour obtenir l'adresse physique et 25 déterminer si une référence devrait être faite à la mémoire interne, externe ou asynchrone. (9) Lignes d'impulsions de synchronisation A, B, C et D. Ces quatre lignes transmettent des impulsions de synchronisation de 55 ns qui fournissent le synchronisme entre le processeur 30 et le translateur. (10) Ligne de porte du registre SAR du translateur. Cette ligne signale que le translateur a placé les cinq bits les plus significatifs de l'adresse d'emmagasinage physique translatée sur le bus d'adresse d'emmagasinage 55 ns après application de 35 ce signal. Il indique au processeur qu'il devrait envoyer les bits de bus d'adresses 00-04 de l'adresse translatée sur l'unité d'emmagasinage interne. (11) Ligne de cycle d'emmagasinage interne (ISC). Cette ligne fournit un signal généré par le translateur qui indique au 40 processeur d'envoyer des signaux de séquences d'emmagasinage 14 2349688 à la mémoire interne 51 avec chaque nouvelle adresse physique. Si un cycle d'emmagasinage externe ou asynchrone (OSC ou ASC) doit être utilisé, cette ligne est rendue inactive, de sorte que la mémoire interrife n'est pas choisie. 5 (12) Ligne de mémoire occupée. Sur cette ligne circule un signal généré par le translateur qui indique au processeur d'arrêter son horloge. Cette ligne est excitée seulement sur des références à l'unité d'emmagasinage asynchrone 53. Lorsque le translateur a obtenu la réponse appropriée à partir de l'unité d'emmagasinage 10 asynchrone 53, cette ligne n'est plus excitée, et l'horloge recommence à fonctionner pour terminer le cycle d'emmagasinage. Cet arrêt de l'horloge d'emmagasinage par une opération d'unité d'emmagasinage asynchrone est ce qui rend son fonctionnement asynchrone et son cycle d'accès plus long que le cycle d'accès 15 dans les unités d'emmagasinage externes ou internes 51 ou 52. (13) Ligne de translateur installé. Cette ligne transporte vin signal générateur translateur qui informe le processeur qu''un translateur 59 a été installé dans le système. (14) Ligne d'adresse d'emmagasinage invalide (ISA) du translateur. 20 Sur cette ligne circule un signal généré par le translateur appliqué au processeur qui l'informe que l'adresse logique en cours appliquée au translateur est invalide, et qu'un contrôle de programme (PCK) se produit alors. (15) Ligne de contrôle de protection du translateur. Cette ligne 25 transporte vers le processeur un signal généré par le translateur qui indique qu'un essai a été fait pour effectuer une opération d'écriture dans la mémoire dans un état "problème" dans un bloc dont le bit de lecture seulement (bit 14) des registres de segmentation est enclenché à 1, ce qui indique que l'état 30 de lecture seulement est permis. (16) Ligne de cycle de vol de cycle, ou état superviseur. Cette ligne transporte un signal généré par le processeur et appliqué au translateur indiquant qu'il devrait ignorer le bit de lecture seulement 14 dans le registre de segmentation adressé, 35 parce que la demande d'accès à la mémoire en cours est faite soit par le superviseur soit par un sous-canal E/S. (17) Ligne de séquence EOC (fin de cycle). Sur cette ligne circule un signal généré par le processeur qui informe le translateur qu'il est en train de terminer son cycle d'emmagasinage. 15 2349888 (18) Ligne de cycle du registre de segmentation. Sur cette ligne circule un signal généré par le processeur qui indique au translateur que les registres de segmentation seront excités. Les lignes d'écriture en mémoire OP 0 et OP 1 sont utilisées aussi pour indiquer si le cycle est un cycle de lecture ou d'écriture comme faisant partie d'une instruction de déchargement du registre de segmentation ou d'une instruction de chargement du registre de segmentation. L'interface translateur/mémoire externe représenté sur la figure 3B comporte les lignes suivantes: (1) lignes de sélection de carte. Ces quatre lignes sont identifiées respectivement comme les lignes de sélection de cartes 80K, 96K, 112K et 128K pour choisir une carte de 16K multiplets dans la mémoire externe. (2) Lignes TCSX et TCSY. Ces six lignes indiquent les coordonnées X et Y sur la carte choisie pour choisir une zone particulière sur la carte. (3) Lignes d'écriture de multiplet 0 et de multiplet 1. Ces lignes donnent les signaux d'échantillonnage d'écriture pour les quatre cartes d'emmagasinage externe pour l'écriture d'un multiplet. Le translateur, lors de l'obtention de l'adresse physique de mémoire à partir du registre de segmentation approprié, détermine si line référence doit être faite à la mémoire interne, externe ou asynchrone et enverra des signaux de chronologie sur les lignes I/F translateur/mémoire externe si un cycle d'emmagasinage externe est indiqué. Les connexions installées avec les commandes de mémoire externe de la figure 3B indiquent lesquelles des quatre cartes sont installées dans l'unité d'enmagasinage externe. Les lignes de l'interface translateur/mémoire asynchrone représentées sur les figures 3A et 3b sont les suivantes: (1) Lignes de parité et sortie de données de la mémoire asynchrone. Ces 16 lignes de données et les deux lignes de parité forment le bus de données de la mémoire appliqué à l'unité d'emmagasinage asynchron. (2) Lignes de parité de la mémoire asynchrone/entrée de données. Ces 16 lignes de données et deux lignes de parité forment le bus de données de mémoire en provenance de l'unité d'emmagasinage asynchrone vers le processeur et le canal. (3) Lignes de sortie du registre SAR partie inférieure-mémoire asynchrone. Ces 13 lignes transportent les 13 bits les plus 16 2349888 significatifs de l'adresse physique qui comprend l'adresse de bloc dans l'unité d'emmagasinage asynchrone. Elles comprennent les bits supérieurs 0-12 du registre SAR représentés dans le cycle de la mémoire asynchrone illustré sur la figure 3E. 5 (4) Ligne de sortie du registre SAR partie supérieure-mémoire asynchrone. Ces dix lignes transportent les 10 bits 13-22 les moins significatifs dans le cycle ASC, mais non le bit 23 dans le cycle ASC représenté sur la figure 3E. Les bits 13-22 adressent un mot dans le bloc choisi. 10 (5) Ligne d'écriture de multiplet 0. Cette ligne transporte la position de bit la plus faible 23 dans l'adresse physique pour indiquer si le multiplet le plus à gauche dans le mot adressé doit être une opération de déchargement pendant le cycle de la mémoire asynchrone. 15 (6) Ligne d'écriture de multiplet 1. Cette ligne informe la mémoire asynchrone que le multiplet le plus à droite dans le mot adressé en cours doit subir une opération de déchargement pendant le cycle de mémoire asynchrone. (7) Ligne de sortie de sélection de la mémoire asynchrone. Cette 20 ligne indique au module d'emmagasinage adressé de commencer un cycle d'emmagasinage. Cette ligne de sortie de sélection est seulement excitée pendant un cycle d'emmagasinage asycnchrone et lorsqu'aucune adresse d'emmagasinage d'instruction logique ou de contrôle de protection a été détectée par le translateur. 25 (8) Lignes d'horloge X/F et d'horloge I/F déphasée de 90°. Ces deux cycles d'horloge ont line période de 440 ns avec ion coefficient d'utilisation de 50%. Ces cycles d'horloge sont déphasés de 90° l'un peu: rapport à l'autre et sont seulement actifs lorsque la ligne sortie de sélection est excitée. Ces 30 cycles d'horloge peuvent être utilisés par l'unité d'emmaga sinage asynchrone pour synchroner l'unité, pour résoudre le contenu de rénégération, pour les données de verrouillage et pour générer des réponses à des moments appropriés. (9) Ligne d'entrée de réponse. Cette ligne reçoit un signal à 35 partir de l'unité d'emmagasinage asynchrone indiquant qu'on a obtenu la position adressée. (10) Ligne d'échantillon d'écriture. Cette ligne est excitée pendant la première partie d'un cycle d'écriture sur le module de la mémoire asynchrone choisie, après avoir reçu le signal d'entrée 40 de réponse par le translateur. La ligne d'échantillon d'écriture 17 . 2349888 est excitée seulemënt lorsque la ligne sortie choisie est excitée. (11) Ligne de cycle EOC (fin de cycle) de la mémoire asynchrone normale. Cette ligne fournit une impulsion d'échantillonnage si la ligne d'entrée de réponse reçoit un signal provenant de la mémoire asynchrone. Elle est utilisée comme signal d'accusé de réception par la mémoire asynchrone choisie pour réaliser la restauration des bascules enclenchées pendant le cycle et pour empêcher la resélection pendant le même cycle pendant la chute du signal de sélection de sortie choisi. 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 1 '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. 18 2349888 REVENDICATIONS 1.- Dispositif d'extension de la capacité de la mémoire d'ion système de traitement de données exécutant un ou plusieurs programmes dont les instructions et les opérandes sont adressées par adresses physiques en mémoire principale ou par adresses logiques, et permettant d'adjoindre à la mémoire principale interne du système une mémoire externe synchrone et une mémoire asynchrone. Ce dispositif est caractérisé en ce qu'il comporte: une unité de translation d'adresses générant des adresses physiques réelles en mémoire interne à partir des adresses logiques d'un programme à exécuter par le processeur du système; un bus de connexion de mémoire interne connectant la mémoire interne du système à l'unité de translation d'adresses et au processeur du système, ce bus comportant des lignes d'adresses, de données et de commandes pour permettre au processeur d'envoyer des adresses logiques à l'unité de translation d'adresses et des adresses physiques à la mémoire interne; des circuits d'interface de mémoire interne dans l'unité de translation générant des cycles de commande pour accéder à la mémoire interne et lui transmettre une adresse translatée des circuits d'interface de mémoire externe dans l'unité de translation reliés à la mémoire externe par un bus de mémoire externe permettant d'adjoindre une mémoire externe au système, ces circuits générant un cycle de commande de mémoire externe chaque fois qu'un accès la mémoire externe doit être effectué; des circuits d'interface de mémoire asynchrone dans l'unité de translation, reliés à la mémoire asynchrone par un bus de mémoire asynchrone permettant d'adjoindre une mémoire asynchrone au système, ces circuits générant un cycle de commande de mémoire asynchrone chaque fois qu'un accès à la mémoire asynchrone doit être effectué, ce cycle ayant une période de temps qui peut être plus longue que lé cycle de mémoire interne ou le cycle de mémoire externe; un bus de commande connecté à une extrémité aux circuits d'interface de mémoire interne, aux circuits d'interface de mémoire et aux circuits d'interface de mémoire asynchrone et à l'autre extrémité aux circuits de priorité de mémoire du processeur; des circuits de sélection de mémoire dans l'unité de translation d'adresses sélectent la mémoire interne, la mémoire externe ou la mémoire 19 2349888 asynchrone pour adresser la mémoire concernée par l'adresse logique translatée. 2.- Dispositif selon la revendication précédente caractérisé en ce que les circuits d'interface de mémoire interne fournissent aux lignes d'adresses de poids supérieurs du bus de mémoire interne les bits de poids supérieurs de l'adresse translatée durant un cycle de mémoire interne, les lignes d'adresses de poids inférieurs du bus de mémoire interne étant connectées aux positions de poids inférieurs du registre d'adresse du processeur, durant un cycle de mémoire interne, le bus de mémoire interne recevant ainsi l'adresse physique complète en mémoire interne, obtenue par translation d'une adresse logique, cette adresse physique complète translatée étant envoyée à la mémoire interne durant un cycle de mémoire interne. 3.- Dispositif selon la revendication 1 ou 2 caractérisé en ce que les circuits d'interface de mémoire externe transmettent aux circuits de translation d'adresses les bits d'adresse de poids supérieurs durant un cycle de commande de mémoire externe de façon à obtenir les bits d'adresse physique de poids supérieurs, des moyens connectant les lignes d'adresses de poids inférieurs du bus de mémoire interne aux circuits d'interface de mémoire externe de façon à transmettre ces bits d'adresse de poids inférieurs durant le même cycle de mémoire externe. 4.- Dispositif selon la revendication 1 ou 2 ou 3 caractérisé en ce que les circuits d'interface de mémoire asynchrone transmettent aux circuits de translation d'adresses les bits d'adresse de poids supérieurs durant un cycle de commande de mémoire asynchrone, de façon à obtenir les bits d'adresse physique de poids supérieurs, des moyens connectant les lignes d'adresses de poids inférieurs du bus de mémoire interne aux circuits d'interface de mémoire asynchrone de façon à transmettre ces bits d'adresse de poids inférieurs durant le même cycle de mémoire asynchrone. 5.- Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte en outre un circuit de détection d'adresse invalide dans les circuits d'interface de mémoire asynchrone, générant un lignai d1adresse invalide quand un signal de réponse n'est pas reçu d'une unité de mémoire asynchrone durant un laps de temps déterminé par un circuit d'horloge quand un cycle de mémoire asynchrone est en cours.