Brevet FR2437300A1 — publié le 19800425

La présente invention concerne un procédé de traitement de linfor- mation faisant appel aux techniques de pagination pour la gestion des mémoires et un dispositif mettant en oeuvre un tel procédé. Ce procédé interesse plus particuliérement le déroulement des instructions traitant des ensembles de données et vise à déterminer, avant d'exécuter l'instruction, si cet ensemble franchit les limites d'une page. Le fonctionnement d'un système de traitement de données exige le stockage d'un nombre élevé de données. Ces données sont soit des instructions à exécuter soit des nombres sur lesquels porteront les instructions. Pour ne pas accroltre exagérément le prix de revient du système ces données sont stockées dans une mémoire de grande capacité dont le prix de revient est faible mais dont le temps d'accès est long. Cette mémoire est appelée mémoire auxiliaire ou mémoire secondaire ou mémoire de masse. Le système de traitement de données est commandé par un organe central appelé unité centrale de traitement. Cette unité centrale de traitement est responsable du fonctionnementdu système ainsi que du traitement des données. Pour cette raison la rapidité de fonctionnement du système est une fonction directe de la vitesse de fonctionnement de l'unité centrale de traitement. On choisit donc une unité centrale de traitement fonctionnant à grande vitesse. Cette rapidité de fonctionnement est incompatible avec la longueur du temps d'accès de la mémoire de masse. Pour éviter que l'unité centrale de traitement ne soit freinée par la mémoire de masse, on est conduit à placer une mémoire intermédiaire entre l'unité centrale de traitement et la mémoire de masse, Cette mémoire intermédiaire est une mémoire rapide : on J'appelle mémoire centrale ou mémoire principale.Dans cette mémoire sont chargées les données réclamées de la façon la plus urgente par le fonctionnement du système. C'est à l'unité centrale de traitement qu'il incombe la responsabilité de venir placer dans la mémoire principale les données qui vont lui être utile dans l'immédiat et de ranger dans la mémoire de masse les données à conserver qui ne lui font plus besoin. On voit donc que la mémoire principale dont la dimension est réduite en raison de son prix de revient, contient la réplique de certaines données contenues dans la mémoire secondaire. Pour établir une correspondance entre l'adresse d'une donnée en mémoire de masse et l'adresse de sa réplique en mémoire principale il existe différents systèmes appel lés systèmes de gestion de mémoire. Parmi ces systèmes il existe le système de gestion par pagination. Ce système de gestion est bien connu.Il consiste à diviser l'espace de la mémoire principale et celui de la mémoire secondaire en pages de du'mensions.constante. Puisqu'on travaille sur des adresses exprimées en chiffres binaires on choisit des dimensions de page comportant un nombre p'#irr#-(l##ses# On verra plus loin que cela simplifie les calculs d'adresse. L'unité centrale de traitement gère les espaces des mémoires au niveau de la page : les transferts se font page par page. Il existe donc deux types de pages: les pages originales qui se trouvent dans la mémoire de masse et les pages dupliquées qui résident en mémoire principale. Les pages dupliquées sont utilisées par l'unité centrale de traitement pour y effectuer les traitements demandés par les instructions. Une fois les traitements effectués, ces pages dupliquées devenues des pages traitées servent à la mise à jour des pages originales correspondantes. Il apparaît ici la nécessité d'établir une correspondance entre l'adresse d'une page originale en mémoire secondaire et l'adresse d'une page dupliquée et/ou traitée en mémoire principal e. Pour cela l'unité centrale de traitement établit des tables de correspondance. Une première table fournit pour chaque page de la mémoire secondaire l'adresse du début de la page correspondante en mémoire centrale si cette page est bien chargée en mémoire centrale. Dans le cas contraire la table indique que la page n'est pas chargée. Une deuxième table donne pour chaque page de la mémoire principale l'adresse du début de la page correspondante en mémoire secondaire. Quand l'unité centrale veut connaître l'adresse du début d'une page dans une mémoire donnée à partir de l'adresse du début de cette page dans une autre mémoire, il lui suffit de consulter la table correspondante pour e renseigné. En fait les 2 espaces qui viennnent d'être décrits : l'espace en mémoire principale et espace en mémoire secondaire sont des espaces réels en machine. Pour des facilités de description on appellera l'espace de la mémoire principale: l'espace actif puisqu'il contient des données appelées à être traitées rapidement et l'espace de la mémoire secondaire espace inactif par opposition à espace précédent. Les données contenues dans ces espaces sont appelées respectivement : données actives et données inactives. Ces deux espaces ne sont pas pris en considération par le programmeur car ce dernier ignore ces deux espaces car son programme ne doit pas dépendre dune machine pour y être exécute. En fait le programmeur écrit ses programmes dans un troisième espace que nous appellerons espace logique.L'espace logique est aussi appelé espace virtuel en raison de son aspect fictif. On désignera les adresses correspondantes par le nom d'adresses virtuelles ou adresses logiques. Les programmes comprennent des instructions à exécuter, des données à traiter et des adresses. Ces programmes n'ont recours qu'a des adresses écrites en espace logique comme il vient autre dit et tous les calculs d'adresses définis par les instructions sont fait dans cet espace. Par convention l'espace de programmation est divisé en pages de même dimension que les pages des espaces "machine". Cette disposition facilite le fonctionnement du système de traitement de données car celui-ci peut traiter le programme au niveau de la page. Les pages logiques sont classées en ordre croissant et sont désignées par leur rang dans cet ordre.Pour définir une donnée il suffit de donner le rang de la page qui contient cette donnée et la position de la donnée dans la page appelée aussi adresse relative au début de la page ou adresse relative dans la page. Il faut remarquer d'une part que ces adresses ainsi que le rang de la page sont exprimés en nombres binaires et d'autre part que la taille des pages est respectée par un nombre pair d'adresse. il en résulte que, si le nombre de bit nécessaire pour exprimer la longueurdiune page est de p bits, en plaçant le rang de la page à la gauche du bit de poids p de l'adresse relative dans la page on obtient un nombre binaire qui exprime l'adresse de la donnée comptée depuis l'origine de l'espace logique.Le découpage en pages s'inscrit naturellement dans l'espace logique puisque l'on a pris la précaution de situer la frontière des pages à l'endroit diun changement de poids binaire. Ceci simplifie tous les calculs d'adresses puisqu'il suffit de faire l'addition des nombres binaires exprimant l'adresse origine et des nombres binaires exprimant l'évolution de l'adresse pour obtenir la nouvelle adresse. Les systèmes d'adressage par pagination ont été décrits largement dans la littérature et on pourra se reporter par exemple, aux différents systèmes décrits dans les ouvrages ci-dessous - SYSTEMES D'EXPLOITATION DES ORDINATEURS de la page 172 à la page 182 par CROCUS, édité en 1975 par DUNOD INFORMATIQUE - COMPUTER ORGANIZATION AND MICROPROGRAMMING de la page 312 à la page 317 par YAOHAN CHU, édité en 1972 par PRENTICE HALL - COMPUTER ORGANIZATION AND THE 370 de la page 4 à la-page 7 par HARRY KATZAN, édité en 1971 par VAN NOSTRAND - COMPUTER DATA SECURITY de la page 8 à la page 14 et de la page 134 à la page 137 par HARRY KATZAN, édité en 1973 par VAN NOSTRAND - COMPUTER ARCHITECTURE de la page 162 à la page 169 par CAXON FOSTER, édité en 1976 par VAN NOSTRAND Pendant le déroulement d'un programme l'unité centrale de traite ment vient chercher en mémoire centrale les instructions qui lui ont été définies par le programme. Chaque instruction se divise en deux parties : une première partie qui définit l'opération à exécuter et une deuxième partie qui définit les données auxquelles vont s'appliquer l'opération. Ces données sont appelées "opérande". L'opérande est défini par son adresse d'origine et sa longueur dans l'espace logique. La page dans laquelle se trouve l'instruction est appelée "page courante".Cette page se trouve obligatoirement chargée en mémoire centrale puisque cela est une condition nécessaire pour que l'unité centrale de traitement ait pu obtenir la dite instruction. L'opérande peut se trouver dans une des deux conditions suivantes. Soit il est entièrement contenu dans la page courante et dans ce cas l'unité de traitement n'aura aucune peine à l'extraire de la mémoire centrale. Soit il est contenu, au moins partiellement, dans une page différente de la page courante. Ici deux éventualités peuvent se produire. Soit la page contenant l'opérande est chargée en mémoire et dans ce cas l'unité centrale de traitement devra demander la traduction de l'adresse logique pour obtenir l'adresse de début de la page en mémoire centrale. Soit la page logique n'est pas chargée en mémoire, dans ce cas unité centrale devra entreprendre une série d'opérations afin d'obtenir le chargement en mémoire centrale de la page manquante. La situation peut autre encore plus compliquée dans la cas où l'instruction concernée traite des opérandes successifs définis par évolution d'adresse. Dans ce type d'instruction Unité centrale de traitement effectue une série d'opérations identiques en allant chercher- à chaque opération un nouvel opérande.L'adresse de ce nouvel opérande est définie par une adresse diori- gine qui est l'adresse du premier opérande et par une loi diévolution d'adresse. Cette loi d'évolution peut être une progression d'adresse clest-à-dire qu'à chaque opération l'adresse de l'opérande s'accrott d'une valeur positive. ou alors elle peut être une régression d'adresse et dans ce cas l'adresse de lgopé- rande décrit à chaque opération. L'évolution d'adresse se poursuit jusqu'à attendre soit une limite extraie, soit après exécution diun nombre donné diopé- rations. Cette instruction en fin d'exécution a traité un ensemble de données situé entre une adresse inférieure et une adresse supérieure.La difficulté dans ce type d'opération intervient quand l'évolution d'adresse fait franchir une limite de page à l'adresse de l'opérande et que la nouvelle page adresse n'est pas en IffemOire centrale. Ace moment là l'unité centrale doit suspendre le déroulement de la série d'opérations en cours et entreprendre la sauvegarde du contexte de l'instruction. On entend par sauvegarde du contexte une série dio- pérations destinées à mémoriser tout ce qui est nécessaire pour reprendre là où l'avait arrété le déroulement de l'instruction.Une fois cette sauvegarde assurée l'unité centrale de traitement peut entreprendre les opérations de chargement en mémoire centrale de la page manquante. Une fois la page chargée en mémoire I'unité de traitement doit entreprendre une nouvelle série d'opérations destinées à rétablir J'état du sytème tel qu'il était au moment de la suspension du déroulement de l'instruction. Cette série d'opérations s'appelle opérations de restauration du contexte de l'instruction. C'est seulement quand les opérations de sauvegarde sont terminées que l'unité centrale de traitement peut reprendre le déroulement de l'instruction là où elle l'avait laissé. Ces opérations de sauvegarde et de restauration sont longues et coûteuses.Le procédé et le dispositif de l'invention apportent une solution à ce problème et remédient aux inconvénients précités par le fait qu'ils consistent à effectuer le contrale préalable du franchissement d'une limite de pages avant d'entreprendre le déroulement d'une instruction opérant sur des données par évolution d'adresse. A cet effet l'invention a pour objet un procédé de détection anticipée du franchissement d'une limite de page par un ensemble de données faisant objet d'un traitement par une instruction à évolution d'adresse de l'opérande, caractérisé en ce qu'il consiste: - à reconnaitre la dite instruction, - à définir les adresses extrêmes de l'ensemble de données à traiter, - à détecter s'il y a eu franchissement de limite de page entre les deux adresses extrêmes, - à signaler à l'unité de traitement ce franchissement de page. Suivant une autre caractéristique de l'invention, la définition des adresses extrèmes de l'ensemble de données à traiter consiste - à charger la première adresse à traiter dans un premier registre, - à charger la longueur du dit ensemble dans un deuxième registre, - à effectuer l'addition du contenu des deux registres pour obtenir la valeur de la dernière adresse à traiter. C'est aussi un autre objet de l'invention que de prévoir un dispositif portant application du procédé et du type comprenant - au moins une unité de traitement pour interpréter et exécuter des instructions inscrites en mémoire principale, - une mémoire principale paginée pour mémoriser les données nécessaires au fonctionnement de l'unité de traitment, - un canal d'échange de données reliant la dite mémoire principale à l'unité de traitement, - les moyens pour contrôler le fonctionnement du dit canal de données, - au moins une mémoire auxiliaire paginée - pour stocker les données du système, - un canal d'échange de page reliant la mémoire principale à au moins une des dites mémoires auxiliaires paginées, - les moyens pour contrôler les échanges de page à travers le dit canal d'échange de pages. Caractérisé en ce que l'unité de traitement comporte des moyens pour détecter par anticipation le dépassement d'une limite de page par un ensemble de données faisant l'objet d'un traitement par progression d'adresse. Selon une autre caractéristique de l'invention le système de détection de franchissement de limite de page est constitué par un additionneur/ soustracteur pour additionner ou soustraire suivant le sens de l'évolution de adresse, la longueur du dit ensemble de données de l'adresse de la première donnée. Selon une autre caractéristique de l'invention la capacité de ltaddition- neur/ soustracteur est limitée au nombre exact de bits nécessaires pour adresser toute l'étendue d'une page, le dépassement étant défini par le débordement de l'additionneur, ce débordement pouvant être un dépassement de capacité par valeurs positives ou une tentative à franchi r la valeur nulle pour arriver à des valeurs négatives. Selon une autre caractéristique de l'invention l'additionneur est celui du calculateur adresse de unité de traitement. L'invention vise bien entendu les systèmes de traitement de données équipés de dispositifs répondant aux caractéristiques précitées. 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 des modes de réalisation préférés de ltinvention. La figure 1 est une représentation logique simplifiée diun système de traitement de données utilisant la gestion de la mémoire par pagination. La figure 2 est la représentationschématique du fonctionnement diun traducteur d'adresses. La figure 3 est une représentation schématique d'un module de calcul des adresses conforme à I i nvent ion. La figure 4 représente un organigramme fonctionnel correspondant à un procédé conforme à l'invention. Sur la figure 1 on a représenté schématiquement un système de traitement de données utilisant la gestion de mémoires par pagination. Ce système comprend quatre parties principales - l'unité centrale de traitement (1), - la mémoire principale (3), - la mémoire secondaire (5), - le traducteur d'adresse 10). L'unité centrale de traitement (i) est l'origine qui commande le fonctionnement du système. C'est elle qui interprète les instructions et qui assure leur déroulement. En particulier l'unité centrale est chargée de l'élaboration des adresses mises en cause par les instructions. Pour cela elle dispose d'un module de calcul des adresses (2) qui est représenté sur la figure 3 et qui sera décrit par la suite. L'unité de traitement (i) reçoit les données nécessaires à son fonctionnement par le canal de transfert des données (7). Les adresses calculées sont transmises au traducteur (10) par la liaison (8). Les calculs d'adresses se font sur des adresses logiques. En effet les programmes qui rédigent les programmes ne connaissent ps la machine sur laquelle leurs programmes seront exploités.Ils utilisent donc des adresses fictives dans un espace fictif. Comme on l'a dit auparavant ces adresses et ces espaces sont aussi appelés adresses virtuelles et espaces virtuels. La mémoire principale (3) est une mémoire rapide à accès aléatoire clest-à-dire que le contenu de toute adresse peut être obtenu directement sur simple indication de cette adresse. Comme il a été dit plus haut pour des raisons de prix de revient elle a une capacité réduite et en tous cas insuffisante pour contenir toutes les données du système de traitement de données. Les données à mémoriser sont rangées dans les emplacements de la mémoire. Ce sont ces emplacements qui seront regroupés par pages. Pour fonctionner la mémoire principale nécessite que par la liaison (11) l'unité centrale de traitement lui ait fourni - la nature du cycle demandé : lecture ou écriture - l'adresse de l'emplacement de la mémoire concernée La liaison (lr) transmet ces signaux de commande aux circuits de con trôle et d'adressage de la mémoire centrale qui assurent le déroulement du cycle de fonctionnement de cette mémoire La mémoire principale (3) peut communiquer - avec l'unité de traitement (î) par le canal de transfert de données (7) - avec la mémoire secondaire (5) par le canal de transfert de pages (9) Comme il a été dit plus haut la mémoire secondaire (5) est une mémdre de masse. Le fonctionnement de la mémoire secondaire est commandé par les circuits de contrôle et d'adressage (6).Ces circuits sont commandés par les signaux véhiculés par la liaison d'adresse inactive (12). Cette liaison définit la nature du cycle demandé (lecture ou écriture) et l'adresse inactive de lempla- cement concerné. Les échanges de données sè font à travers le canal de transfert de la page (9). Le fonctionnement du système de traitement de données se comprend en examinant la figure 1. L'unité de traitement (1) aYant élaboré une instruction, soumet au module de calcul des adresses (2) le soin d'établir I'adresse logique de données nécessaire à l'exécution de cette instruction. On verra plus loin le fonctionnement détaillé de ce module. L'adresse logique étant calculée, dans une première étape le module de calcul des adresses vérifie si cette adresse se trouve dans la page courante (la page courante étant celle où se trouve l'instruction en cours de traitement). Dans l'affirmative l'accès aux données recherchées sera direct puisque l'adresse du début de page est connue de unité de traitement il suffira d'utiliser l'adresse relative dans la page. Dans la négative l'adresse logique est transmise par le cable(8) au traducteur d'adresse (16). Celui-ci effectue la recherche des adresses actives et inactives correspondantes.Si l'adresse active existe, elle est transmise par le cable(11) à la mémoire principale (3) qui peut alors, par le cable de transfert de données (7), fournir à l'unité centrale de traitement (1) les données attendues. L'unité centrale de traitement peut alors poursuivre Sa tache. Si le traducteur d'adresse (10) ne trouve pas d'adresse active, il le signale à l'unité de traitement (1) qui doit suspendre le travail en cours et demander le transfert en mémoire principale (3) de la page manquante. Ce transfert est long car la mémoire secondaire a un temps d'accès élevé et-de plus réclame souvent la libération diun espace en mémoire centralé. La figure 2 est la représentation schématique du fonctionnement d'un traducteur d'adresse. Quand l'unité centrale de traitement désire obtenir la traduction d'une adresse logique, elle fournit cette adresse au traducteur adresse. Cette adresse logique est représentée en (20). Elle se compose de deux parties le rang de la page logique (21) et l'adresse relative dans la page logique (22). On a vu précédemment que l'adresse relative dans la page est la même dans les trois espaces. Par conséquent le traducteur ne prendra en considération que le rang de la page logique. Pour établir une correspondance entre les rangs des pages logiques Je traducteur dispose d'une table de correspondance représentée en (150). Cette table comprend autant de lignes qu'il y a de pages logiques. A chaque ligne correspond donc un rang de la page logique. Sur chaque ligne existe deux emplacements. Sur l'emplacement de gauche se trouve l'adresse réduite de la page active, si elle existe, correspondant au rang de la page logique associée à la ligne. Sur l'emplacement de droite se trouve l'adresse réduite de la page inactive correspondant au rang de la dite page logique. De la sorte connaissant le rang de la page logique il est possible d'obtenir par consultation de la table l'adresse réduite de la page active et celle de la page inactive où cette page logique est#enregistrée en machine. Comme nous l'avons dit précédemment il suffit d'associer les adresses relatives et les adresses réduites comme il est indiqué en (30) et (40) pour obtenir l'adresse active et l'adresse inactive de Ja donnée en machine. Si la donnée est en mémoire active l'unité centrale de traitement peut y accéder normalement. Si la donnée ne se trouve pas en mémoire active, l'unité centrale doit demander le transfert de la page de la mémoire inactive en mé moire active et pour cela elle dispose de l'adresse réduite de la page inactive.On pourra trouver des compléments d'informations sur les traducteurs adresses dans les ouvrages cités plus haut - COMPUTER ORGANIZATION AND MICROPROGRAMMING de la page 312 à la page 321 - COMPUTER DATA SECURITY de la page 25 à la page 34 - COMPUTER ARCHITECTURE de la page 166 à la page 169 La figure 3 représente le schéma simplifié diun calculateur d'adresse logique dont il est fait état sur la figure 1. Il se compose - d'un registre (60) d'adresse logique d'origine. Ce registre est composé de deux sous registres. Le sous registre (61) contient le rang de la page logique d'origine et le sous registre (62) contient l'adresse logique à l'intérieur de cette page.Ce registre d'adresse pourra, par exemple, dans le calcul d'une adresse indexée renfermer le contenu du registre index. -diun registre (70) d'évolution d'adresse. Ce registre comprend tro is sous registres. Le sous registre (71) qui indique le sens de l'évolution progression vers les adresses plus élevées ou régression vers les adresses de rang inférieur. Le sous registre (72) contient le nombre de pages logiques concernées par l'évolution de Adresse. Le sous registre (73) contient le nombre de progression d'adresse dans la page. - d'un additionneur/ soustracteur (90). C'est un opérateurarithmê- tique qui effectue Itaddition ou le soustracteur des contenus des regi stres (60) et (70) suivant l'indication fournie par le sous registre (71). - d'un registre d'adresse logique calculée (80) qui comprend un sous registre de rang de page calculé (81) et un sous registre d'adresse I ogique relative dans la page (82). - d'un comparateur(91) effectuant la comparaison entre le rang de la page logique calculé (81) et le rang de la page logique courante (93). On entend par page courante la page où se trouve l'instruction en cours d'exécution. Examinons ce qui se passe quand l'unité de traitement fait appel au calculateur d'adresse pour obtenir le calcul d'une nouvelle adresse logi que définie par une instruction. L'unité centrale charge les registres (60) et (70). Elle charge dans le registre (60) l'adresse logique définie comme origine de l'évolution d'adresse et dans le registre (70) le nombre représentant l'évolution de l'adresse à effectuer ainsi que le signe définissant le sens de cette évolution. L'additionneur / soustracteur (90) effectue l'opération définie et met le résultat dans le registre (80) Le contenu de ce registre est la valeur de l'adresse logique calculée. Le comparateur (91) effectue la comparaison de la valeur du rang de I a page courante qui est contenue dans le registre (93) avec la valeur du rang de la page logique calculée. On voit que si l'adresse calculée se trouve dans la même page que lins- truction en cours, il n'y aura pas besoin de faire appel au traducteur d'adresse puisque l'unité centrale de traitement dispose déjà de l'adresse de début de la page active concernée. Il suffira à l'unité de traitement d'utiliser l'adresse. relative dans la page contenue dans le sous registre (82). Sur la figure 4 on a représenté lEorganigramme fonctionnel d'un procédé conforme à l'invention. En 110 l'instruction est décodifiée. A la suite de cette décodification la nature de l'instruction est connue. En 111 on détermine si l'instruction est une instruction traitant des données par évolution d'adresse. En cas de réponse négative en 114 l'éxécution de l'instruction est entreprise. Si l'instruction traite des données par évolution d'adresse, en 113 on recherche si l'ensemble de données traitées se trouve totalement contenu dans la page courante. Si l'ensemble de données est contenu totalement dans la page courante l'exécution de l'instruction est effectuée en 114. Si l'ensemble n'est pas contenu totalement dans la page courante, en 115 on recherche si la totalité des pages contenant l'ensemble de données traitées par l'instruction est présente en mémoire centrale. Dans l'affirmative on passe en 114 où l'instruction est exécutée. Dans la négative on passe en 116 où l'instruction est mise en attente puis en 117 où les pages contenant l'ensemble des données traitées sont chargées en mémoire centrale. Une fois ce chargement effectué on passe en 1 t8 où ltins- truction est reprise en charge par le système. Puis, en 114 l'instruction est exécutée. Bien entendu, l'invention n'est nullement limitée au mode de réalisation décrit et représenté et comprend tous les équivalents techniques des moyens décrits ainsi que leurs combinaisons si celles-ci sont effectuées suivant l'es prit de l'invention et mises en oeuvre dans le cadre des revendications qui suivent. REVENDICÂTIONS 1. Procédé de détection anticipée du franchissement d'une limite de page par un ensemble de données faisant l'objet diun traitement par une instruction à évolution dladresse de l'opérande, caractérisé en ce qu'il consiste - à reconnattre la dite instruction, - à définir les adresses extrêmes de l'ensemble de données à traiter, - à détecter s'il y a eu franchissement de limite de page entre les deux adresses extrêmes, - à signaler à l'unité de traitement ce franchissement de page. 2. Procédé selon la revendication 1 caractérisé en ce que la définition des adresses extrêmes de l'ensemble de données à traiter consiste - à charger la première adresse à traiter dans un premier registre - à charger la longueurdu dit ensemble dans un deuxième registre, - à effectuer l'addition du contenu des deux registres pour obtenir la valeur de la dernière adresse à traiter. 3. Dispositif portant application du procédé selon l'une des revendications 1 ou 2 et du type comprenant: - au moins une unité de traitement pour interpréter et exécuter des instructions inscrites en mémoire principale, - une mémoire principale paginée pour mémoriser les données nécessaires au fonctionnenent de l'unité de traitement, - un canal d'échange de données reliant la dite mémoire principale à l'unité de traitement, - les moyens pour contrôler le fonctionnement du dit canal de données, - au moins une mémoire auxiliaire paginée pour stocker les données du système, - un canal d'échange de page reliant la mémoire principale à au moins une des dites mémoires auxiliaires paginées, - les moyens pour contrôler les'échanges de page à travers le dit canal d'échange de pages, caractérisé en ce que unité de trai tement comporte des moyens pour détecter par anticipation le dépassement d'une limite de page par un ensemble de données faisant l'objet diun traitement par progression d'adresse. Selon une autre caractéristique de l'invention le système de détection de franchissement de limite de page est constitué par un additionneur/ soustracteur pour additionner ou soustraire, suivant le sens de l'évolution de l'adresse, la longueur du dit ensemble de données de l'adresse de la première donnée. 4. Dispositif selon la revendication 3 caractérisé en ce que la capacité de l'additionneur/ soustracteur est limitée au nombre exact de bits nécessaires pour adresser toute l'étendue d'une page, le dépassement étant défini par le débordement de l'additionneur, ce débordement pouvant astre un dépassement de capacité par valeurs positives ou une tentative à franchir la valeur nulle pour arriver à dbs valeurs négatives. 5. Dispositif selon la revendication 4 caractérisé en ce que l'additionneur/ soustracteur est celui du calculateur d'adresse de l'unité de traitement. 6. Systèmes de traitement de données équipés de dispositifs répondant aux caractéristiques précitées.