Brevet FR2539239A1 — publié le 19840713

Système d'ordinateur à tâches multiples à gestion de mémoire ". La présente invention concerne un système d'ordinateur à tâches multiples à gestion de mémoire. L'invention concerne de façon plus particulière un sys- tème d'ordinateur à gestion de mémoire assurant la pro- tection de la mémoire en combinaison avec différents programmes utilisés par l'ordinateur. Dans de nombreux ordinateurs à 16 bits actuellement utilisés, y compris l'ordinateur Radio Shack TRS-80, modèle 16, il y a des systèmes à tâches multi- ples Dans un système à tâches multiples même si un seul programme ou une seule tâche est en cours d'exécution à un instant donné, les codes réels de programme correspon- dant à de nombreux programmes résident en fait dans la mémoire du système en même temps Ce type de système permet une commutation rapide d'un programme à un autre si le programme en cours d'exécution est arrêté même pen- dant un court instant A titre d'exemple, le déroulement du programme peut être bloqué pendant une phase d'accès de disque. Dans un système à tâches multiples, il est usuel de prévoir un certain type de protection pour chaque partie de la mémoire du système dans laquelle réside un code de programme ou de données attribué à une tâche particulière Sans cette protection, on risque des erreurs de système Par exemple, un programme peut insérer ses données dans le code de programme d'un autre program- me ou encore un programme peut tenter d'exécuter une par- tie des données d'un autre programme, ce qui se traduit par des difficultés au niveau du système. Cette protection du code de programme ou des données se fait-normalement en effectuant une traduc- tion entre les adresses de mémoire fournies par le pro- cesseur (unité centrale de traitement) et les adresses réelles utilisées pour l'adressage de la mémoire Les espaces de mémoire attribués à chaque programme ainsi que les données associées des programmes sont générale- ment séparés par un jeu distinct de traductions pour cha- que programme Les traductions se font généralement par une unité dite de gestion de mémoire De façon générale, l'unité de gestion de mémoire utilise soit un tableau enregistré dans la mémoire pour exécuter les traductions ou un tableau enregistré de façon interne dans une mémoire câblée à grande vitesse, contenue dans l'unité de gestion de mémoire proprement dite Dans cette opéra- tion de traduction, caractéristique, les adresses pro- duites par le processeur sont fournies à lunité de ges- tion de mémoire qui donne alors une adresse traduite ou adresse "physique" pour le circuit de mémoire proprement dit. Il existe actuellement différents schémas assurant la traduction d'adresses et la séparation des espaces de mémoire Le niveau de complexité de ces dif- férents schémas est très variable Toutefois, les schémas de traduction utilisent généralement des séquences de mise à jour de tableau Par exemple, la Société Motorola diffuse une unité de gestion de mémoire telle que le composant MC 68451 L 4, 6 ou 8 Toutefois, ce schéma de ges- tion de mémoire est très complexe et nécessite des cir- cuits importants En résumé dans le système Motorola, chaque bus-maître (ou processeur) donne un code de fonc- tion et une adresse au cours de chaque cycle de bus Le code de fonction définit un espace *d'adresse et l'adresse définit une position dans l'espace d'adresse Les codes de fonction distinguent entre les espaces d'utilisateur et les espaces de contrôle et dans ces espaces, ils dis- tinguent entre les espaces de données et les espaces de programme Cette séparation des espaces d'adresse consti- tue la base de la gestion de mémoire et de la protection par le système de mise en oeuvre Toutefois, le circuit qui est utilisé pour les fonctions de mise à jour des tableaux est un circuit très complexe. La présente invention a ainsi pour but de créer un système d'ordinateur à tâches multiples avec gestion de mémoire protégeant chaque partie de la mémoire du système dans laquelle réside un code de programme ou de données attribué à une tâche particulière. L'invention a également pour but de créer un système destiné en particulier à un ordinateur à 16 bits avec une possibilité de tâches multiples et dans lequel le circuit de gestion de mémoire est non seulement simple mais également peu coûteux et pratique- ment sans incident de fonctionnement. A cet effet, l'invention-concerne un système d'ordinateur à tâches multiples comportant un processeur avec de multiples lignes d'adresse et de don- nées et une mémoire pour enregistrer de façon cloisonnée des programmes multiples, chaque programme ayant une adresse de base prédéterminée qui, dans le mode de réali- sation préférentiel est l'adresse zéro. Selon l'invention, il est prévu un cir- cuit de gestion de mémoire qui comprend des moyens pour enregistrer un indice ou un nombre de décalage, ce nombre de décalage ainsi enregistré étant associé au programme 2539239, correspondant enregistré dans la mémoire Des moyens sont prévus pour combiner le nombre de décalage à l'adresse de base et donner l'adresse effective Cette adresse effective est couplée à la mémoire pour accéder au pro- gramme qui doit se dérouler Le système selon l'invention comporte en outre de préférence un moyen pour enregistrer un indice limite ou un nomb're limite, des moyens pour comparer la valeur du nombre limite et l'adresse effecti- ve et un moyen correspondant à la comparaison pour donner un état d'erreur lorsque l'adresse effective est à l'ex- térieur du nomb're limite. Suivant un mode de réalisation préféren- tiel décrit ci-après, le nombre de décalage est représen- té structurellement par une paire de registres à décalage qui sont autorisés réciproquement de façon exclusive De la même manière, il est prévu une paire de registres limites qui sont également autorisés réciproquement de façon exclusive Ces registres à décalage et à limite donnent la frontière ou l'extension de chacun des para- mètres Une paire d'additionneurs fonctionnant comme moyens de combinaison du nombre de décalage et de l'adres- se de base sont associes aux registres à décalage L'un des additionneurs reçoit la partie d'ordre inférieur de l'adresse de processeur et l'autre additionneur reçoit la partie d'ordre supérieur de l'adresse de processeur. Ces adresses de processeur sont additionnées respective- ment par les additionneurs, chaque additionneur recevant également les adresses respectives d'ordre supérieur et inférieur des registres à décalage Le signal de sortie des additionneurs constitue l'adresse effective Cette adresse effective est couplée au moyen de comparaison qui est un comparateur ayant un premier et un second ensembles d'entrées de comparaison appelées P et Q Des moyens sont prévus pour coupler les adresses effectives des deux additionneurs aux entrées P du comparateur et les moyens distincts sont prévus pour coupler les sorties communes des deux registres limites aux entrées Q des comparateurs. Lorsque la grandeur P dépasse la grandeur Q, cela corres- pond à un état d'erreur L'adresse effective est lue comme étant à l'extérieur des limites fixées définissant l'espace de mémoire attribué à ce programme particulier. On évite que le programme n'accède à la zone de mémoire à l'extérieur de sa zone attribuée en comparant la somme des adresses de décalage et de processeur au nombre limite. Si le résultat est inférieur à la limite, l'adresse cal- culée est validée Toutefois comme indiqué, si l'adresse respective sur les entrées P est supérieure au nombre limite, l'adresse calculée est considérée comme non valide et le système initialise une routine d'erreur. Ainsi dans le mode de réalisation préférentiel de l'inven- tion, on a une paire de multiplexeurs de sortie qui sont associés respectivement à la paire d'additionneurs men- tionnés précédemment Ces multiplexeurs assurent princi- palement l'interface de l'adresse effective à la mémoire. Le multiplexage autorise soit le couplage de l'adresse effective des additionneurs à la mémoire ou autorise le couplage direct des adresses de processeur à la mémoire. La présente invention sera décrite de façon plus détaillée à l'aide des dessins annexés, dans lesquels: a figure 1 est un schéma-bloc dos éléments principaux d'un système d'ordinateur avec une gestion de mémoire selon l'invention. la figure 2 est un schéma plus détaillé du processeur du système d'ordinateur et des transmet- teurs correspondants. la figure 3 montre le détail d'un mode de réalisation préférentiel du circuit de gestion de mémoire proprement dit. 2539239. Description détaillée Selon les figuree, on décrira ci-après les détails du circuit d'ordinateur à gestion de mémoire selon l'invention La figure 1 est un schéma-bloc très détaillé du système Les détails du circuit de gestion de mémoire sont donnés aux figures 2 et 3 Le circuit de gestion de mémoire selon l'invention, tel que donné à titre d'exemple dans les dessins détaillés est relative- ment simple mais néanmoins très efficace pour assurer la protection de la mémoire vis-à-vis des différents pro- grammes qui sont mis en oeuvre dans 1 'ordinateur. Le système de gestion de mémoire décrit ci-après fait partie de l'ensemble du système d'ordina- teur qui, dans cet exemple, est l'ordinateur Radio Shack TRS-80 Modèle 16 De façon caractéristique, en plus du circuit de gestion de mémoire, l'ordinateur comprend éga- lement une unité centrale de traitement, une logique d'interruption, un circuit d'interface de mémoire, une logique d'arbitrage de bus, une logique-d'accusé de réception de transfert de données, un circuit de décodage entrée/sortie (I/0), une logique d'horloge, une logique de rafraîchissement et une logique d'erreur de bus. Comme les caractéristiques générales de la présente inven- tion s'appliquent principalement uniquement au circuit de gestion de mémoire, les détails des autres parties du système d'ordinateur ne seront pas donnés. Comme indiqué précédemment, le système d'ordinateur dont fait partie le circuit de gestion de mémoire est de préférence un ordinateur à 16 bits ayant des capacités de tâches multiples La figure 1 est un schéma-bloc simplifié montrant certains des composants fondamentaux nécessaires à l'explication des principes de la présente invention Ces composants comprennent une unité centrale de traitement (CPU) 10, une mémoire de système 12 et un traducteur 14 contenant le circuit de 2539239 - gestion de mémoire La figure 1 montre également les lignes qui relient ces parties du système d'ordinateur. Il est à remarquer que ces lignes se composent d'une première ligne d'adresses l contenant les adresses de bits les moins significatifs et d'une seconde ligne d'adresses 13 couplée au traducteur 14 et représentant les adresses de bits les plus significatifs Ainsi comme cela découle de façon évidente du schéma de la figurel, les bits les moins significatifs-sont-appliqués directe- ment à la mémoire 12 alors que les bits les plus signifi- catifs sont couplés à la mémoire 12 par le traducteur 14. En se reportant aux schémas détaillés des figures 2 et 3, la figure 2 montre le processeur 20 qui est le processeur Motorola de type MC 68000 à 16 lignes de données, 23 lignes d'adresses et 20 lignes de commande. La figure 2 montre également une série de transmet- teurs représentés dans un premier groupe comme les trans- metteurs 22 et 24 et dans un second groupe comme les transmetteurs 26, 28, 30 La figure 2 montre le transmet- teur 26 divisé en deux, parties uniquement pour montrer dans une séquence correcte les lignes d'adresses. Les détails du circuit de gestion de mémoire se trouvent principalement à la figure 3 Selon les principes de l'invention, on a associé deux nombres à chaque programme: un nombre de décalage et un nombre limite Chaque programme est inscrit de façon que son adresse de départ de base soit une adresse initiale pré- déterminée de préférence nulle L'espace adresse de cha- que programme est séparé en mémoire par addition du nom- bre de décalage de ce programme particulier à l'adresse de base pour donner le nombre d'adresse physique On évite que le programme n'accède à une zone de mémoire à l'extérieur de sa zone attribuée en comparant la somme des adresses de décalage et de processeur au nombre limite. Lorsque le résultat est inférieur au 2539239 nombre limite, l'adresse calculée est validée Au con- traire, si le résultat est à l'extérieur du nombre limite, l'adresse calculée est considérée comme non valide et le système initialise une routine d'erreur. Comme représenté à la figure 3, le cir- cuit de gestion de mémoire comprend deux ensembles de registres de décalage et de limite Ces registres se composent d'un premier registre de décalage 40 et d'un second registre de décalage 42 Il est également prévu un premier registre limite 46 et un second registre limite 48 Ch acun de ces registres est de type 374 sus- ceptible de traiter des données à 8 bits Le registre de décalage et-le registre limite définissent l'adresse de base de repositionnement et l'adresse limite absolue, respective, attribuées par le programme courant d'utilisa- teur Les deux ensembles de registres limites et de décalage permettent à tous les programmes d'utilisateur d'accéder en commun à l'élément principal du système de fonctionnement ou aux composants travaillant dans le temps. Selon le schéma de gestion de mémoire, la mémoire est attribuée suivant des incréments de 4 K octets et le repositionnement se fait sur des fron- tières à 4 K octets La gestion de mémoire n'est pas active dans le mode du système ou pendant les transferts de mémoire initialisés parles busmaîtres autres que ceux de l'unité CPU de type 68000. Il est prévu une protection d'inscription pour la mémoire en'dehors du cloisonnement de l'utilisa- teur Les accès extérieurs définis par le cloisonnement engendrent une exception d'erreur de bus Une interruption peut également être générée si le contrôleur d'interrup- tion (non représenté) est initialisé correctement Il y a deux cas pour lesquels on génère une erreur de bus Le premier cas est celui des adresses d'utilisateur se trou- -2539239 vant à l'extérieur de leur cloisonnement Le second cas est celui d'un bus e N dehors du temps Un bus en dehors du temps existe lorsqu'on tente d'accéder à une mémoire qui n'existe pas ou de faire des, accès entrée/sortie (I/0) La source de l'erreur de bus peut se déterminer par la lecture du registre d'état du contrôleur d'inter- ruption. A la figure 3, en plus des registres à décalage 40 et 32, et des registres limites 46 et 48, on a également prévu une paire d'additionneurs 50 et 52, des multiplexeurs 56 et 58 à quatre bits et un compara- teur 60 Les additionneurs 50 et 52 peuvent être des additionneurs de type L 5283 Les multiplexeurs 56 et 58 peuvent être des multiplexeurs de type 157 Le compara- teur 60 peut être un comparateur de type L 5682. Il est à remarquer à la figure 3 que la sortie des multplexeurs 56 et 58 est constituée par les lignes d'adresses effectives EA 12-EA 19 Bien que non représenté à la figure 3, il est clair qu'il s'agit des lignes d'adresses effectives reliées à la mémoire pour en assurer l'adressage Par ces lignes d'adresse, la mémoire reçoit également les lignes d'adresse supplémen- taires, directement du processeur comme représenté ci- dessus à la figure 1. Comme indiqué précédemment, la figure 2 montre l'unité centrale de traitement 20, de base et ses transmetteurs ou circuits tampons de données correspon- dants Tous les détails de fonctionnement de l'unité cen- trale CPU 20 ne sont pas donnés ci-après Toutefois, cer- tains des signaux pertinents associés à l'unité seront examinés schématiquement Comme indiqué, le processeur est le microprocesseur Motorola MC 68000 à 16 lignes de données KDO-KD 15, 23 lignes d'adresse K Al-KA 23, et 20 lignes de commande comme cela est indiqué à la figure 2. Les lignes de données KDO-KD 15 sont mises à l'interface 2539239, par le bus par l'intermédiaire des transmetteurs 22 et 24 Chacun de ces transmetteurs peut être un transmetteur de type AMD 8303 Pour ces transmetteurs, lorsque la ligne de commande CD sur la broche 9 est à l'état haut, cela met le bus de données dans trois états Ce signal est commandé par le signal de confirmation d'attribution de bus (BGACK), qui indique qu'un dispositif autre que le microprocesseur 68000 CPU a le bus-maitre. La ligne de commande TR sur la broche 11 de chacun des transmetteurs 22 et 24 commande la direc- tion du transfert des données Cette entrée est commandée par le signal transmission/réception par le bus de don- nées (DBTR) Une sortie active basse DBTR autorise-les transmetteurs de données pendant une séquence de confir- mation d'une interruption extérieure ou pendant une lec- ture dans une mémoire extérieure L'état actif haut su signal DPTR autorise les circuits d'entraînement de don- nées Il résulte l'interdiction des transmetteurs de don- nées lorsque le NI 1, une lecture ou une inscription se développe à partir de la commande d'interruption (non représentée) et que le NO 2 a une séquence de confirma- tion d'interruption interne, et que le NO 3 a une inscrip- tion dans une mémoire externe Il est également à remar- quer que la ligne de commande CD domine la ligne de com- mande TR et que, à la fois les circuits d'entraînement et les circuits de confirmation sont interdits (mis dans trois états) si le signal BGACK est affirmé. Toujours pour le processeur 20, les lignes d'adresses K Al-KA 23 sont reliées au bus d'adresses par les transmetteurs 26, 28 et 30 qui sont du même type que ceux utilisés pour les lignes de données, c'est-à- dire de type AMD 8303 La ligne de commande CD sur la broche 9 de tous ces dispositifs est reliée directement à la masse comme cela est indiqué, ce qui autorise tou- jours les lignes d'adresses K Al-K A 11, EA 12-E A 19, et Il KA 20-KA 23 pour le bus d'adresses La ligne de commande de direction (TR) sur la broche 11 de tous les transmet- teurs est commutée en retour par le signal BGACK* qui indique qu'il a la maîtrise du bus' Si le processeur CPU a le bus-maitre, le signal BGACK* est inversé et les lignes d'adresses sont entraînées sur le bus Si un dis- positif externe a le bus-maitre, le signal BGACK* est confirmé et l'adresse contenue dans le bus passe sur les lignes d'adresses de l'unité CPU. Les lignes de commandes associées au pro- cesseur 20 comprennent les lignes de commande d'accès de mémoire comprenant le signal de déclenchement d'adresse (AS*), le'signal de déclenchement de données inférieures (LDS*), le signal de déclenchement de données supérieures (UDS*), le signal lecture/inscription (RW*) et le signal de confirmation de transfert de données (DTACK*) Le signal AS* indique qu'il y a une adresse validée sur les lignes d'adresses de l'unité 68000 CPU et qu'elle est appliquée directement aux dispositifs du sous-système 68000. Le bus AW* (BAS*) dépend de l'état de l'unité CPU 68000 Lorsque le processeur est à l'état d'utilisateur, un signal AS* retardé est nécessaire pour autoriser le temps supplémentaire demandé par le contr 6 le dladresses de l'unité de gestion de mémoire. Les signaux LDS*, UDS* et R/W* sont directement reliés au bus en utilisant un transmetteur non inversé Le signal LDS* indique que les bits de don- nées DBO-DB 7 sont accédés et le signal UDS* indique que les bits de données BD 8-BD 15 sont en accès Si les deux sont confirmés en même temps, tous les 16 bits de don- nées-sont en accès Le signal R/W* indique que le bus de données assure le transfert d'un cycle de lecture, ou d'un cycle d'inscription Un état actif haut indique un cycle de lecture et un état actif bas indique un cycle d'inscription. Le signal de confirmation de transfert de données (DTACK*) est un signal synchrone de salutation utilisé par la mémoire et les dispositifs périphériques pour indiquer la fin d'un cycle de bus Le signal DTACK* est appliqué directement au bus et devient le signal BDTACK*. Les lignes d'arbitrage de bus font passer les signaux de demande de bus (BR*), d'attribution de bus (BG*), et confirmation d'attribution dé bus (BCACK*). Les signaux BR* et BGACK* sont des signaux d'entrée pour l'unité centrale 68000 et le signal BC* est un signal de sortie Ces signaux sont utilisés pour déterminer le dis- positif qui dominera le bus. Les lignes de priorité d'interruption (IPL O *-IPL 2 *), sont des entrées du processeur CPU ind- quant la priorité codée du dispositif de commande d'in- terruption Le niveau de priorité le plus élevé est le niveau 7; le niveau 0 indique qu'aucune interruption n'est demandée. Les lignes de code de fonction (FCO, FC 1, FC 2) sont fournies par la plaquette du processeur alimen- tant un décodeur (non représenté) Cette transmission est utilisée pour détecter l'accès à l'emplacement réservé à l'utilisateur (soit en code, soit en données) ou encore pour décoder une séquence de confirmation d'interruption. Les lignes de-commande du processeur 20 comprend également des lignes d'interface périphérique (E, VMA*, et VPA*) autorisant le microprocesseur CPU à communiquer facilement avec des dispositifs de type 6800. Les signaux de s ortie (E et VMA*) sont échangés avec le bus 6800 par l'intermédiaire d'un transmetteur (non repré- senté). L'entrée de cadence du système CLK pour le microprocesseur CPU 68000 est entraînée par un signal de sortie d'une fréquence de 6-M Hz de la logique d'horlo- ge PCLOCK Les signaux RESET*, HALT* et BERR* sont appli- qués directement au bus 68000 Ces lignes sont entraînées par un circuit de portes OU par des inverseurs à collec- teurs ouverts Les signaux RESET* et HALT* sont commandés directement par un autre processeur de type Z 80. Ainsi, à la figure 2, sous une commande appropriée, on a des signaux de bus de données BDO-BD 15 qui relient les transmetteurs 22 et 24 De même, pour les transmetteurs 26, 28 et 30, les sorties sont identi- fiées comme sorties de bus d'adresses B Al-BA 23. Pour le circuit de gestion de mémoire lui- même et en particulier le circuit de la figure 3, il y a deux registres à décalage 40 et 42 L'entrée à 8 bits de chacun de ces registres est reliée aux lignes de données du processeur 20 telles que les lîgnes d'entrée de don- * nées KDO-KD 7 Ainsi pour un programme particulier, les données sont fournies par ces lignes de données aux deux registres à décalage 40 et 42, données qui représentent un nombre de décalage Le circuit additionne les bits d'adresses KA 12-K A 19 à la valeur à 8 bits qui est enre- gistrée dans les registres à décalage, actifs Le résul- tat de cette addition est l'adresse effective à EA 12- E A 19 représentée à la figure 3, à la sortie du multiple- xeur 56 et 58 L'adresse effective est comparée à la valeur à 8 bits qui est enregistrée dans les registres actifs limités 46 et 48 Cette comparaison est effectuée par le comparateur 60 Si l'adresse effective est supé- rieure au contenu du registre actif limite ou si l'addi- tion se traduit par un débordement de report de l'addi- tionneur, il en résulte la génération d'un bus d'erreur identifiée à la figure 3 comme signal d'erreur OBERROR couplé par la sortie de la porte 62. Il est à remarquer que l'adresse de pro- cesseur KA 23 détermine le jeu des registres à décalage 2539239. et des registres limites utilisés Si le signal KA 23 est de niveau haut, les registres 40 et-48 sont mis en oeu- vre Par ailleurs, si le signal d'adresse KA 23 est de niveau bas, les registres à décalage et limite 42 et 46 sont mis en oeuvre. Deux registres à décalage et deux regis- tres limites sont utilisés pour démarquer les deux exten- sions de la plage des nombres Chacune des deux exten- sions est constituée par un registre à décalage et un registre limite qui sont tous deux du type 74 L 5374 Il s'agit de registres à 8 bits de type D La valeur repré- sentée par les 8 bits dans le registre à décalage est additionnée aux huit lignes d'adresse de processeur KA 12- K A 19 pour former les lignes d'adresse d'extension de l'utilisateur UEA 12-UE A 19 Cette addition est faite à l'aide des additionneurs 50 et 5 ? L'additionneur 50 reçoit le signal de sortie de l'un des registres à déca- lage sur ces bornes d'entrée Bl-B 4 L'additionneur 50 reçoit également les entrées sur ces autres bornes d'addi- tionneur à AI-A 4 des lignes d'adresse de processeur res- pectives K A 12-K A 15 De la même manière, l'additionneur 52 reçoit quatre entrées sur les bornes BI-84 de l'un des registres à décalage, ainsi que les entrées sur les bor- nes AI-A 4 des lignes d'adresse de processeur KA 16-K A 19. L additionneur 50 reçoit en principe le domaine d'ordre inférieur du nombre de décalage, alors que l'additionneur reçoit le domaine d'ordre supérieur du nombre d'adres- ses Le domaine d'ordre inférieur correspond aux lignes de données KDO-KD 3, alors que le domaine d'ordre supé- rieur correspond aux lignes de données KD 4-KD 7. Les lignes d'adresse d'extension d'utili- sateur UEA 12-UE A 19 entre les additionneurs 50 et 52 relient par l'intermédiaire de deux chemins distincts leun aux multiplexeurs 56 et 58 et l'autre au comparateur 60 Le comparateur 60 est utilisé pour comparer l'adresse effective à la valeur se trouvant dans le registre limite. L'adresse effective-est appliquée aux bornes d'entrées PO-P 7 du comparateur 60 pendant que le contenu du regis- tre limite qui est mis en oeuvre est appliqué aux bornes d'entrée QO-Q 7 Si l'adresse effective est supérieure au nombre limite, le circuit génère une erreur signalant l'état hors limite Cela est représenté sur la borne de sortie 1 du comparateur 60 couplé par l'intermédiaire de la porte 62 donnant le signal d'erreur OBERROR Un report des additionneurs 50 et 52 (signal C 4) génère également un signal d'erreur Ce signal est couplé par l'intermé- diaire d'un inverseur 64 à une seconde entrée de la porte de type OU 62donnant l'erreur:OBERROR En outre, si le signal OBERROR se produit lorsque le signal MMA et MAS sont également actifs, le circuit génère un signal d'erreur d'adresse (ADERR) Ce signal est l'un des signaux des sources d'interruption. Comme indiqué précédemment, il y a deux chemins de transfert de signal à partir des sorties des additionneurs 50 et 52 Le premier chemin qui vient d'être examiné est celui allant au comparateur 60 Il y a égale- ment un second chemin vers les deux multiplexeurs 56 et 58 à quatre bits, chacun de type L 5157 Ces multiplexeurs choisissent soit l'adresse de processeur (KAI 2-K A 19) soit l'adresse d'extension d'utilisateur (UEA 12-UE A 19) pour former l'adresse effective (EA 12-E A 19) Dans ce contexte, comme représenté à la figure 3, le signal MMA (adresse de gestion de mémoire) choisit la source d'adresse et l'adresse de processeur supérieur KA 23 choisit l'exten- sion active Pour une capacité de mémoire correspondant à un méga octet, les bits de gestion de mémoire permet- tent de protéger une dimension minimale correspondant à 4 K Il est également à remarquer que l'adresse KA 22 lorsqu'elle est confirmée, choisit l'emplacement d'adres- se du dispositif I/O (entrée/sortie) La logique de 2539239, génération de déclenchement du dispositif I/0 génère les déclenchements I/0 nécessaires à la communication avec le contrôleur d'interruption et les registres de gestion de mémoire en décodant l'adresse KA 21 et KA 22. Si, en résumé, la gestion de mémoire selon l'invention travaille sur la base de chaque pro- gramme individuel qui est enregistré, et auquel sont associés deux nombres; l'un est un nombre de décalage et l'autre un nombre limite ou plus approximativement une plage pour ces nombres Chaque programme eàt inscrit de façon que son adresse de départ de base soit nulle L'em- placement d'adresse de chaque programme est séparé en mémoire par l'addition du nombre de décalage pour ce programme pour l'adresse de base donnant le nombre réel de l'adresse Dans la figure 3, cette addition est fait à l'aide des additionneurs 50 et 52 qui donnent les adresses effectives sur les sorties références ci-après comme adresses UEA 12-UEA 19 Le programme ne peut accéder à une zone de mémoire à l'extérieur de la zone qui lui est attribuée par comparaison de la somme des adresses de décalage et de processeur ou nombre limite Si le résultat est inférieur au nombre limite, l'adresse cal- culée est validée et si le résultat est supérieur à la limite, l'adresse calculée est invalidée et ce dispositif initialise une routine d'erreur Cette comparaison est faite à l'aide du comparateur 60 qui compare l'adresse effective des additionneurs et le nombre contenu dans le registre limite O 2539239- R E V E N D I C A T I O N S ) Système d'ordinateur à tâches multi- ples comportant un processeur ayant de multiples lignes d'adresses et de données, et une mémoire pour enregistrer de façon cloisonnée de multiples programmes, chaque pro- gramme ayant une adresse de base prédéterminée, système caractérisé en ce que le circuit de gestion de mémoire comporte un moyen pour enregistrer un indice de décalage, chaque indice de décalage ainsi enregistré étant associé à un programme correspondant mis en mémoire, un moyen pour combiner cet indice de décalage à l'adresse de base et donner l'adresse effective et un moyen pour coupler l'adresse effective à la mémoire pour accéder au programme en cours d'exécution. 20) Système d'ordinateur à tâches multi- ples selon la revendication 1, caractérisé en ce que le moyen pour combiner se compose d'un moyen pour addition- ner l'indice de décalage à l'adresse de base. ) Système d'ordinateur à tâches multi- ples selon la revendication 1, caractérisé en ce que l'indice de décalage comporte au moins un nombre de décalage - ) Système d'ordinateur à tâches multi- ples selon la revendication 1, caractérisé en ce que cha- que programme a la même adresse de base. ) Système dtordinateur à tâches multi- ples selon la revendication 4, caractérisé en ce que l'adresse de base est zéro. ) Système d'ordinateur à tâches multi- ples selon la revendication 1, caractérisé en ce qu'il comprend un moyen pour enregistrer un indice limite, un moyen pour comparer la valeur de l'incide limite et l'adresse effective, et un moyen répondant à la comparai- son pour fournir un état d'erreur lorsque l'adresse effective est à l'extérieur de l'indice limite. 2539239. ) Système d'ordinateur à tâches multi- ples selon la revendication 6, caractérisé en ce que le moyen pour enregistrer un indice de décalage se compose d'au moins un registre à décalage, le moyen pour enregis- trer un indice limite se compose d'au moins un registre limite. ) Système d'ordinateur à tâches multi- ples selon la revendication 6, caractérisé en ce que le moyen pour enregistrer un indice de décalage se compose d'un registre de décalage, supérieur et inférieur et le moyen pour enregistrer un indice limite se compose d'un registre limite supérieur et inférieur. ) Système d'ordinateur à tâches multi- ples selon la revendication 8, caractérisé en ce que le moyen de combinaison se compose d'un premier et d'un second additionneurs. ) Système d'ordinateur à tâches multi- ples selon la revendication 9, caractérisé en ce qu'il comprend un moyen pour coupler les adresses d'ordre infé- rieur du registre de décalage inférieur à un ensemble d'entrées du premier additionneur et des moyens pour coupler les adresses de processeur d'ordre inférieur à un autre ensemble d'entrées sur le premier additionneur. 11 ) Système d'ordinateur à tâches multi- ples selon la revendication 10, caractérisé en ce qu'il comprend un moyen reliant les adresses d'ordre inférieur du registre à décalage supérieur à l'une des entrées du premier additionneur. 12 ) Système d'ordinateur à tâches multi- ples selon la revendication 11, caractérisé en ce qu'il comprend un moyen appliquant les adresses d'ordre supé- rieur du registre à décalage supérieur à un ensemble d'entrées du premier additionneur et les moyens couplant les adresses de processeur d'ordre supérieur à un autre ensemble d'entrées du second additionneur. 2539239, 13 ) Système d'ordinateur à tâches multi- ples selon la revendication 12, caractérisé en ce qu'il comprend des moyens reliant les adresses d'ordre supé- rieur du registre à décalage inférieur à l'un des ensem- bles d'entrées du second additionneur. 14 ) Système d'ordinateur à taches multi- ples selon la revendication 13, caractérisé enfce que le moyen pour comparer se compose d'un comparateur ayant un premier et un second ensembles d'entrées de comparaison référencés entre P et Q. ) Système d'ordinateur à tâches multi- ples selon la revendication 14, caractérisé en ce-qu'il comprend des moyens couplant les adresses effectives des deux additionneurs aux entrées P du comparateur et un moyen couplant les sorties en commun des deux registres limites vers les entrées Q du comparateur. 16 ) Système d'ordinateur à tâches multi- ples selon la revendication 14, caractérisé en ce qu'il comprend un moyen pour autoriser de façon exclusive et mutuelle les registres à décalage. 17 ) Système d'ordinateur à tâches multi- ples selon la revendication 14, caractérisé en ce qu'il comprend des moyens pour autoriser de façon exclusive et mutuelle les registres limites. 18 ) Système d'ordinateur à taches multi- ples selon la revendication 1, caractérisé en ce que le moyen de combinaison se compose d'un moyen additionneur et d'un moyen multiplexeur. 19 ) Système d'ordinateur à tâches multi- ples selon la revendication 18, caractérisé en ce qu'il comprend une paire d'additionneurs couplés respectivement à une paire de multiplexeurs, chaque multiplexeur étant relié à l'adresse effective ou à une adresse de proces- seur. ) Système d'ordinateur à taches multi- pies comportant un processeur à lignes d'adresses et de données multiples, une mémoire pour enregistrer de façon cloisonnée les programmes multiples, chaque programme ayant une adresse de base prédéterminée, procédé de ges- tion de mémoire caractérisé en ce qu'il consiste à enre- gistrer un indice de décalage et chaque indice'de décalage ainsi enregistré étant associé à un programme correspon- dant mis en mémoire, à combiner l'indice de décalage et l'adresse de base pour donner une adresse effective, et à coupler l'adresse effective à la mémoire pour accéder au programme que lion souhaite mettre en oeuvre. 210) Procédé de gestion de mémoire selon la revendication 20, caractérisé en ce que l'étape de combinaison est exécutée en additionnant l'indice de déca- lage à l'adresse de base. 220) Procédé de gestion de mémoire selon la revendication 20, caractérisé en ce qu'il consiste à enregistrer -l'indice limite à comparer la valeur de l'in- dice limite et l'adresse effective et à fournir un état d'erreur lorsque l'adresse effective est à l'extérieur de l'indice limite.