Brevet FR2499732A2 — publié le 19820813

FR 2499732 A2 19820813 FR 8027928 A 19801231 Le brevet principal déposé sous le numéro 79.15701 'concerne un procédé pour la commande de rapprochn- ment à effectuer au vol entre des entités logiques de référence et des entités logiques issues du fichier. La première présente addition a pour objet un système selon lequel des informations incluses dans les commandes d'enchaînement permettent de commander les traitements répétitifs à exécuter sur des informations en cours de défilement par mémorisation des informations relatives aux débuts et aux fins de boucle de séquence correspondant à chaque ligne de la table de commande, lesdites informatiens de commande comportant aussi l'instruction correspondant à l'enc.haSnement à exécuter en fin d'exécution des boucles. Une telle mémorisation des points de reprise de début et de fin de boucles présente, en effet, l'avantage de ne pas avoir à développer, pas à pas. comme décrit dans la demande de brevet prinotpal déposé ' sous le numéro 79.15701 les enchaînements résultant d'une structure de fichier comportant des boucles imbriquées - et par cela même de faciliter au niveau des fichiers la description des structures d'article dont l'utilisateur confie au système d'exploitation. La ligne ds- la table de commande correspondant au début des boucles à exécuter comportera, par exemple, la commande d'enchaînement suivante BS c' est-à-dire "début de boucles de séquence à exécuter". La ligne de commande correspondant. dans cet exemple. à la fin des boucles enveloppées comportera l'instruction de boucle FB C c'est-A-dire : "fin d'exécution de boueles de séquence et saut au traitent consécutif sur la table de commende." La ligne de commande correspondant à la fin des boucles enveloppantes comportera, par exatnple, l'instruction: FB FA c'est-à-dire: "fin d'exécution de boucles de séquence et reprise pour fin d'article". Pour chaque traitement de la table de commande, sera stocké dans des mémoires spécifiques ou non le nombre total de boucles imbriquées dont le traitement a même ori- gine sur cette table de commande ou le nombre total de bou- cles dont la fin du traitement correspond à cette ligne de la table de commande. Les adresses correspondent aux enchainements.de re prise sont stockées séquentiellement, pour les débuts de séquence, au fur et à mesure par ligne dans la mémoire correspondante ; et les adresses de saut au traitement consecutif dans la table de commande sont stockées, en fin de la séquence correspondant à la boucle, dans un seul registre par écrasement successif. Soit, par exemple, 4 boucles enveloppant 3 boucles dont le traitement a même origine sur la table de csm- mande que les 4 boucles enveloppantes, on trouvera par ligne, dans la mémoire spécifique correspondant aux débuts de boucles 12 x c'est- -dirs : " exécution de 12 boucles ayant même adresse d'origine x sur la table de commande", et on aura, par ligne, pour la mémoire spécifique correspondant aux fins de boucles 3 4 les adresses y et z correspondant pour chèque fin d'opéra- tions da boucles à un saut au traitement consécutif de 13 table de commande étant successivement stockées dans un même registre spécifique par écrasement successif, ce qui aura pour signification : fin d'exécution de 3 boucles et saut à l'adresse y de la table de commande pour triitnt consécutif : puis fin d'exésution de 4 boucles et saut à l'adresse z de la table de commande pour traitement consécutif, sauf exécution d'une reprise pour boucle de fin d'article". Si les boucles imbriquées avaient eu, non pas une méme origine, mais au contraire une même fin sur la table de commande, on aurait eu - pour la mémoire spécifique correspondant aux débuts de boucles, 4 x 3 y et pour la mémoire spécifique aux fins de boucles 12 (z) Lorsque le nombre de chacune des boucles effectuer est fixé, soit par l'utilisateur, soit par le système, et que, de même, l'information dont le traitement est repris par l'opération de bouclage est de longueur également fixée, l'instruction de reprise ou de saut correspondant au traitement de la donnée consécutive de fichiers peut entre exécutée automatiquement sans mémorisation de l'adresse. Il n'en est pas de même pour des informations dont le trei- tement demande un nombre aléatoire de boucles et dont la fin est localisée dans le fichier par la présence d'un ou plusieurs séparateurs. La mémorisation des adresses de la table de commande correspondant à ces fins de boucles et l'instruction de saut pour le traitement de la donnée consécutive permet alors d'appliquer le procédé à des fichiers ou parties de fichiers structurées en longueur variable et comportant un nombre aléatoire de boucles. Il est donné, ci-dessous, figure 1, à titre d'exem ple, la description d'un dispositif permettant de réaliser l'application particulière ainsi décrite du présent brevet. Selon ladite figure 1, les informations relatives à la déclaration du séparateur de séquence sont rangées dans la case 1141 de la ligne correspondants de la table de commande 11, comme il est dit dans la demande de brevet principal déposé sous le numéro 79.15701. Da mêmme, les instructions relatives aux enchaînements à exécuter sur la table de commande 11 sont rangées dans les cases 1914 et 1915 de la ligne correspondant de cett. table de commande 11. Les cases 1914 contiennent les instructions relatives à l'exécution du début ou de 13 fin d'une opération de boucle. Les cases 1915 contiennent. pour exécution en fin de ces opérations de boucle, les instructions de reprise au traitement correspondant à une boucle plus enveloppante ou de saut au traitement consécutif pour cette table de conmande 11. Ces instructions sont décodées par le processeur de micro-commande 10, comme il est dit dans la demande de brevet principal déposé sous le numéro 79.15701 pour mettre en oeuvre le dispositif de bouclage 14. Le dispositif de bouclage 14 de la figure i comprends : 1. deux mémoires 1301 et 1303 où est chargé par case suc cessivement lors de l'enregistrement du programme ou en cours de traitement par instruction du systm2 le nombre de boucles correspondant pour le registre 1301 début et pour le registre 1303 3 chaque fin d'une opéra- tion de boucle. 2. un double registre à décalage 1400 où. correspondant à une même ligne de la table de commande 11, sont enregis très par ligne, d'une part, dans la case correspondante 1401 le nombre de boucles restant à effecteur et, d'autre part, dans la case 1402 l'adresse de reprise correspond dent à chaque saut de bcucl e ans la table de commande 11. 3. une autre mémoire à de calage 1403 ou est enregistré par case pour chaque fin de boucle le nombre correspondant de boucle restant à effectuer. 4. deux registres 121 et 122 pour l'enregistrement des adresses du compteur 12 de la table de commande il cor respondant pour Se registre 121 aux débuts de boucle et pour le registre 122 aux fins de boucle. 5. les compteurs 1451 et 1453. 8. les registres de travail correspondants 1431 et 1433. 7. le décodeur 141. En début d'article, l'instruction correspondante commande - par le décodeur 10 et la liaison I00 la copie simultanée des informations contenues dans les cases de la mémoire 1301 par liaison 1311 dans les cases 1401 de la mémoire 1400 et la copie simultanée des informations contenues dans les cases de la mémoire 1303 par la liaison 1413 dans les cases 1403 de cette mémoire 1400. - l'initialisation des mémoires 1400 et 1403 et des compteurs 1451 et 1453 aux valeurs correspondant sur les tables 1301 et 1303 à ce début d'article. Les instructions des débuts de boucle contenues n dans les cases I914 commande/par la liaisun 1924 et le déco deur 141 - par la commande 144 et la liaison 1223 la copie de l'adresse contenue dans le registre 121 du compteur 12 de la table de commande Il dans la case correspondante 1402 de la mé moire 1400. - par l'intermédiaire des liaisons 1411 et 1441 et du regis tre de travail 1431 la décrmentation du compteur 14ru1 et la mémorisation du résultat par le registre de travail 1431 dans lo meme casa 1401 de la mémoire 1400 - par la liaison 146. en fin d'exécution du traitement cor respondant à la ligna de la table de commende Il en ser vice, le décalage dans le sens de l'enregistrement de la mémoire 1400. Les instructions de fin de boucle contenues dans les cases 1914 commandent par la liaison 1925 et le décodeur 141 - par la commande 146, en début du traitement à exécuter pour la ligne correspondant à cette fin de boucle dans la table de commande il, le décalage dans le sons contraire de la mémoire 1400. - par la commande 145, l'enregistrement dans le registre 122 de l'adressa du compteur 12 de la table de commande Il cor e respondant à cette fin de boucle. - par l'intermédiaire des liaisons 1413 et 1443 et du regis tre de travail 1433 la décrémentation du compteur 145 et la mémorisation du résultat par le registre de travail 1453 dans la case 1401 de la mémoire 1400. Les instructions relatives aux enchaînements à effectuer en fin d'exécution des opérations de boucle et correspondant dans les cases 1915 de la mémoire de commande Il à un saut à exécuter pour le traitement consécutif de la table de commande Il commande - par les liaisons 1926 et 148 l'initialisation du compteur 12 sur la valeur contenus dans le registre 122 pour un résultat égal à O donné par la liaison 1463 pour le comp tsur 1453 st, par conséquent, par la liaison 1461 pour le compteur 1451, ou. par la liaison 1112, pour un résultat VRAI donné pour identification du séparateur contenu dans la case 1111. - par la liaison 146, le décalage dans le sens de l'enregis- triment de la mémoire 1400 et par 13 liaison 147 le déca lage de la mémoire 1403 dans le même sens, Les instructions relatives aux enchaînements à effectuer en fin d'exécution d'uns opération de boucle et correspondant dans les cases 1915 de la mémoire de commande Il à la reprise du traitement d'une boucle immédiatement enveloppante, commande par l'intermédiaire de la liaison 1927:: - pour un résultat égal à 0 donné par la liaison 1461 pour le compteur 1451 ou, par la liaison 1112, pour un résultat VRAI correspondant à l'identification du séparateur conte nu dans la case 111, et. pour un résultat différant de 0 donné par la liaison 1463 pour le compteur 1453 par la liaison 146, le décalage de la mémoire 1400 dans le sens contraire à celui de l'enregistrement, par la liaison 144, l'initialisation du compteur 12 par la valeur chargée dans le registre 121 par la liaison 143 à partir de la case 1402 correspondants, l'exécution de la reprise correspondante dans la table de commande il - pour un résultat égal à 0 donné par la liaison 1463 pour le compteur 1453 ou, par liaison 1112, pour un résultat VRAI correspondant à l'identification du séparateur con tenu dans la case 1111 et pour un résultat différent de 0 donné par la liaison 1461 pour le compteur 1451, par les liaisons 1926 et 148 l'initialisation du comp teur 12 sur la valeur contenue dans le registre 122, par la liaison t4S, le décalage dans le sens de l'enre- gistrement de la mémoire 1403. l'exécution du saut correspondant au traitement consé cutif de la table de commande 11. La description du dispositif, tel que donné cidessus, n'est qu'une des variantes du système tel que décrit dans le présent brevet et tel qu'il peut avoir de nombreuses applications en dehors du procédé décrit dans la demande de brevet principal dSHosfi sous le numsro 73.157CI. REVENDICATION Système, selon la revendication 1 di brevet principal déposé sous le numéro 79.15701, pour la commande des enchaînements a exécuter en fin de chauqe opération de boucle de séquence et carac térisé en ce que: a - on enregistre dans chaque ligne de la mémoire de commande les Informations signifient qu'il y a début st fin de boucle à exécuter, ainsi que les instruc- tions relatives aux enchaînements à effectuer sur la dite mémoire de commande en fin d'exécution des trai tements correspondants a b - on mémorise, correspondant à chaque ligne de la table de commande, les informations relatives au nombre de débuts et de fins de boucle de séquence à exécuter, ainsi que l'es adresses correspondant pour chaque bou cle de séquence à la reprise de la même opération de boucle ou au saut à effectuer au traitement consécutif de la table de commande t c - on procède. pour chaque information de début de boucle de séquence, au comptage desdites opérations de début de boucle de séquence ss d - on procède, pour chaque information de fin de boucle de séquence, au comptage desdites opérations de fin de boucle de séquence t et on combine le résultat des dits comptages et le résultat des comptages effectués en début de boucle de séquence pour commander, soit la poursuite de la même opération de boucle, soit - selon les instructions contenues dans la ligne correspondan te de la table de commande et relatives aux enchaîne- ment s à exécuter en fin de traitement - la reprise de l'opération correspondant à la boucle Immédiatement enveloppante ou le saut à effectuer sur la table de commande pour l'exécution correspondant au traitement consécutif.