FR 2459512 A1 19810109 FR 7915701 A 19790619 24595 12 La présente invention concerne un procédé pour la commande de rapprochement à effectuer entre des entités logiques de référence et des entités logiques issues d'un fichier. Plus précisément, la présente invention concerne un procédé-du type selon lequel on range des entités logi- ques de même type dans les colonnes d'une table de réfé- rence, on compare selon une première fonction tous les éléments d'information de chaque entité logique à rappro- cher en parallèle et successivement avec les éléments d'in- formation de même rang des entités logiques de référence contenus dans les lignes successives de la table, et on combine les résultats successifs des comparaisons pour fournir le résultat du rapprochement et décider des infor- mations à stocker. Le traitement des données d'un fichier nécessite un repérage de l'information. Lorsque celle-ci a une struc- ture complexe, le repérage par des moyens externes au fi- chier est difficile et onéreux surtout si le fichier est de grande capacité et est sujet à de fréquentes mises à jour. On peut se passer de repères externes en intro- duisant dans le fichier des éléments de localisation tels que des entités logiques spéciales, ou labels, et des ca- ractères spéciaux, ou séparateurs. Le traitement du fichier peut alors être effectué au moyen d'un procédé du type in- diqué plus haut et tel que décrit dans le brevet français n0 2 293.741 et son certificat d'addition n0 2 330.075. - 2- Différents sous-ensembles de rapprochement peuvent être utilisés pour repérer les séparateurs, labels et entités logiques en vue de localiser dans le fichier les informa- tions à reconnaître et éventuellement à stocker. Toutefois, lorsque la structure de l'informa- tion contenue dans le fichier est complexe, on doit avoir recours à un nombre élevé de labels et de séparateurs, ce qui alourdit le système de traitement du fichier. Aussi, l'invention a-t-elle pour but de four- nir un procédé de micro-commande permettant d'appliquer le procédé de rapprochement décrit ci-dessus à des infor- mations contenues dans des structures quelconques de fi- chier tout en travaillantau rythme des informations dé- livrées par la source, sans repérage externe et tout en commandant l'éxécution simultanée des fonctions élémen- taires liées aux rapprochements et aux stockages à effec- tuer, sans interruption du déroulement du fichier. Ces fonctions élémentaires à exécuter simultanément sont re- latives à la localisation, au traitement, au transfert des informations issues de la source, aux enchaînements séquentiels des ensembles d'opérations simultanées et aux tests concernant les résultats obtenus sur les précédents rapprochements. Les informations soumises au procédé de rapprochement pourront être de longueur fixe ou variable, le procédé de commande permettant alors, en particulier, une réduction du nombre de labels et séparateurs nécessai- res à la localisation des données à exploiter. Les trai- tements à exécuter pourront admettre, selon ledit procédé de ccmuande, toutes les formes de bouclage que peut demander le traitement d'une structure d'informations. - Ce but est atteint par un procédé selon lequel, conformément à l'invention, (a) on enregistre des entités logiques de réfé- rence dans la table de référence en rangeant verticalement, dans des zones horizontales différentes de la table, des e n t i t é s logiques de types différents, le rangement -3 - étant effectué dans l'ordre dans lequel les suites for- mées chacune d'entités logiques de même type à rapprocher se présentent, non nécessairement de façon consécutive, dans le fichier, chaque zone horizontale de la table con- tenant des entités logiques de référence de même type rangées elles aussi verticalement par colonnes, (b) on enregistre dans une mémoire de commande, par ligne: - des premières informations de commande com- portant, d'une part, des informations de commande relati- ves au rapprochement à effectuer entre des entités logi- ques de même type du fichier et des entités logiques de référence situées dans une zone horizontale de la table correspondant à la ligne de la mémoire dans laquelle les- dites informations de commande de rapprochement sont en- registrées, et, d'autre part, des informations de comman- de relatives au stockage d'entités logiques issues du fichier, et - des secondes informations de commande d'opé- rations à effectuer à la fin du ou des rapprochements réalisés avec une ou plusieurs entités logiques du fichier et/ou du stockage d'une ou plusieurs entités logiques du fichier, lesdites informations de commande d'opérations comportant des informations de commande de saut pour commander l'enchaînement des traitements à effectuer (c) on fait défiler le fichier, et (d) on exécute les opérations correspondant aux premières informations de commande d'une première ligne de la mémoire de commande, puis les opérations correspon- dant aux secondes informations de commande de cette ligne dont, notamment, l'enchaînement sur une autre ligne non nécessairement consécutive de la mémoire de commande et éventuellement sur une zone horizontale de la table de ré- férence correspondant à cette autre ligne. Il convient de noter ici que par informations de commande relatives à un rapprochement, informations de commande de stockage et informations de commande d'o- pérations, on entend aussi bien la présence d'instruc- tions pour effectuer un rapprochement, un stockage ou une opération, que l'absence de telles instructions. L'enchainement entre des lignes de la mémoire de commande auxquelles correspondent des zones horizonta- les différentes de la table de référence permet de rêali- ser des enchaînements sur des entités logiques de réfé- rence de types différents. Il en résulte une grande sou- plesse de traitement du fichier et la possibilité de ré- duire le nombre de labels et de caractères spéciaux spé- cifiques à ce fichier. Un autre avantage du procédé conforme à l'in- vention réside dans le fait qu'il peut être mis en oeuvre sur des fichiers contenant des informations de format fixe ou variable. Les informations de commande enregistrées dans la mémoire de commande peuvent comporter des informations de commande de localisation pour repérer dans le fichier un point origine à partir duquel on effectue des opéra- tions de rapprochement et/ou de stockage. On peut avoir recours à une localisation en' préalable à un traitement d'une partie du fichier, ou, en cours de traitement pour franchir une zone du fichier contenant des informations sur lesquelles aucun traitement n'est à effectuer. L'opération de localisation peut être réalisée de plusieurs façons. On enregistre dans au moins une ligne de la mémoire de commande des caractères spéciaux utilisés comme repères dans le fichier. Comme repères, on pourra utiliser par exemple, outre des caractères spéciaux marquant la fin d'entités logiques de longueur variable, des carac- tères spéciaux marquant la fin d'articles ou sous- articles du fichier. On peut aussi enregistrer dans au moins une li- gne de la mémoire de commande des informations de com- mande relatives aux boucles à effectuer pour les traite- ments correspondant à cette ligne de la mémoire de com- mande et l'on enregistre dans une mémoire, d'une part des informations relatives au nombre de boucles à effectuer pour lesdits traitements et, d'autre part, des informa- tions relatives au saut à effectuer dans la mémoire de commande et éventuellement dans la table de référence lorsque ledit nombre de boucles a été effectué. Au cours du défilement du fichier, on compte le nombre desdits traitements effectués correspondant à ladite ligne de la mémoire de commande et on exécute les opérations corres- pondant auxdites informations relatives au saut lorsque le nombre de traitements effectués est égal au nombre de boucles enregistré. Comme indiqué plus haut, le procédé conforme à l'invention peut être mis en oeuvre que les entités logi- ques du fichier aient un format fixe ou non totalement ou en partie. On enregistre, dans au moins une ligne de la mémoire de commande des informations relatives à la struc- ture des entités logiques sur lesquelles doit être effec- tué le rapprochement et/ou le stockage commandé par des informations de commande de cette même ligne de la mémoi- re de commande. Au cours du défilement du fichier, on utilise les informations de structure des entités logi- ques pour reconnaître la fin de chacune d'entre elles et commander, en conséquence, l'initialisation ou la fin d'une opération de rapprochement et/ou de stockage.Pour des entités logiques de format fixe, on compte les élé- ments d'informations issus du fichier pour reconnaître la fin de chaque entité logique du fichier. Parmi les opérations de commande pouvant être enregistrées dans une ligne de la mémoire, on peut dis- tinguer entre celles concernant les opérations à carac- tère itératif et les opérations à effectuer en fin de 24595 12 -6- traitement. Les informations de commande à caractère itéra- tif comprennent les informations de commande relatives à un rapprochement. Ces dernières caractérisent les fonc- tions de comparaison itérative des éléments d'information de même rang des entités logiques issues du fichier et des entités logiques de référence, et les fonctions de combinaison des résultats des différentes comparaisons. A titre indicatif, les fonctions de comparaison peuvent être: "égal", "plus grand", "plus petit" ou leurs opposées: "différent", "plus petit ou égal", "plus grand ou égal". Les fonctions de combinaison sont des combinaisons booléennes portant sur des résultats obtenus séquentiellement entre des suites d'en- tités logiques et simultanément entre entités logiques de même type, donc appartenant à une mêae suite. Les informations de commande à caractère itératif comprennent aussi les informations de commande relatives au stockage, lesquelles consistent généralement en la présence ou l'ab- sence d'instructions de stockage d'informations issues du fichier. Les secondes informations de commande peuvent être des opérations inconditionnelles, c'est-à-dire nécessairement ef- fectuées, ou conditionnelles, c'est-à-dire effectuées uniquement si une condition particulière est remplie, par exemple un résultat po- sitif ou négatif à la fin des rapprochements effectués pour un ensemble d'entités logiques correspondant à un article du fichier. Ces opérations conditionnelles ou inconditionnel- les peuvent être liées à des opérations de stockage résul- tant du transfert d'informations du fichier vers un péri- phérique, une mémoire auxiliaire, une sortie ou tout autre organe de stockage d'informations.-Elles correspondent alors à l'effacement ou à la conservation:d'informations stockées. Parmi les secondes informations de commande, on trouve en outre des informations de commande de saut pour effectuer des enchaînements dans la mémoire de commande ainsi que dans la table de référence, un enchaînement 24595 12 d'une ligne à une autre dans la mémoire de commande ne correspondant pas nécessairement à un enchaînement d'une zone horizontale à une autre dans la table de référence. Les informations de commande de saut peuvent résulter de la combinaison de plusieurs informations de commande. Il en est ainsi notamment lorsqu'une opération conditionnelle est commandée par une information spécifi- que laquelle résulte elle-nême d'autres informations. Ces autres informations peuvent par exemple être relatives pour un résultat global, à la combinaison boolénne recherchée entre les différents résultats élémentaires obtenus, soit simultanément, soit consécutivement. De même, on peut faire qu'une opération de commande de saut dans la mémoire de commande peut commander un saut dans la table de référen- ce, mais que toute incrémentation de la table des entités logiques de référence soit inhibée pour un code d'opéra- tion nul (NOP) correspondant à la nouvelle ligne de la mémoire de commande, c'est-à-dire à défaut de rapproche- ment à effectuer sur les entités logiques de la zone ho- rizontale de la table de référence correspondant à la li- gne de la mémoire de commande pour laquelle est ordonné le saut. D'autres secondes informations de commande d'o- pérations peuvent être enregistrées dans la mémoire de com- mande. On peut citer les opérations d'enchaînement sur des périphériques ou des mémoires auxiliaires et, en par- ticulier en fin des traitements, les opérations de tests et de comparaisons avec les résultats de référence. La présente invention concerne aussi un dispo- sitif pour la mise en oeuvre du procédé conforme à l'in- vention, dispositif du type comportant une table de réfé- rence pour le rangement verticalement et horizontalement des entités logiques de référence, des opérateurs ayant chacun une entrée recevant les éléments d'information des entités logiques du fichier et une autre entrée pouvant recevoir les éléments d'information contenus dans une cc- - 8 - lonne de la table, au moins une mémoire-tampon pouvant recevoir des informations issues du fichier, et une uni- té de commande du traitement à effectuer sur les éléments d'information du fichier. Conformément à l'invention, ce dispositif est caractérisé en ce que: - - la table est partagée en plusieurs zones ho- rizontales différentes par le rangement vertical, dans chaque zone, d'entités logiques de référence de même type, rangement effectué dans l'ordre dans lequel les suites d'entités logiques à rapprocher se présentent, non néces- sairement de façon consécutive, dans le fichier, chaque zone horizontale de la table contenant des entités de ré- férence de même type qui sont rangées dans cette zone à raison d'une entité par colonne, et - l'unité de commande comporte. une mémoire de commande pour le rangement, par ligne de mémoire, de pre- mières informations de commande comportant, d'une part, des informations de commande relatives au rapprochement à effectuer entre des entités logiques-de même type du fi- chier et des entités logiques dé référence situées dans une zone horizontale de la table correspondant à la ligne de la mémoire dans laquelle lesdites informations de com- mande de rapprochement sont enregistrées, et, d'autre part, des informations de commande relatives au stockage d'en- tités logiques issues du fichier, et de secondes informations de commande d'opérations à effectuer à la fin du ou des rapprochements réalisés avec une ou plusieurs entités logiques du fichier et/ou du stockage d'une ou plusieurs entités logiques du fichier; et un circuit de micro- commande relié à la mémoire de commande pour délivrer les signaux de commande correspondant aux premières et se- condes informations de commande. La mémoire de commande, ainsi que la table de référence, peuvent être réalisées sous forme de mémoires 24595 12 -9- adressables ou de mémoires piles. D'autres particularités et avantages du procédé et du dispositif de commande de rapprochement conformes à l'invention ressortiront à la lecture de la description faite ci-après, à titre indicatif mais non limitatif, en référence aux figures des dessins joints qui illustrent - figure 1: un schéma très général d'un dispo- sitif de commande conforme à l'invention; - figure 2: un schéma plus détaillé d'un opé- rateur de comparaison du dispositif illustré par la figure 1; - figures 3 à 7: des schémas plus détaillés de parties de l'unité de commande du dispositif représen- té par la figure 1; - les figures 8 à 10: des schémas plus détail- lés d'opérateurs de combinaison du dispositif illustré par la figure 1; et - figure il: un schéma plus détaillé du dispo- sitif de comptage du dispositif 14 illustré par la fig. 1. Sur la figure 1, on a représenté le schéma d'un mode particulier de réalisation d'un dispositif de comman- de conforme à l'invention. Ce dispositif comporte un tableau, ou table de référence 21, constitué, dans cet exemple, par une mémoire adressable. La table 21 est ici décrite et illustrée com- me étant partagée en plusieurs colonnes 210, 211, 212, 213 et plusieurs zones horizontales A, B, C variables et non nécessairement de longueurs égales; ceci pour la clarté de l'exposé. En effet, sur le plan strictement matériel, l'orga- nisation de la mémoire pourra être différente, pour autant que l'on retrouve le même partage entre plusieurs éléments de mâmoires initialisables au moyen d'un m^em compteur 22. Par ail- leurs, le nombre de colonnes et le nombre de zones hori- - -zontales pourront être des nombres quelconques. Un ensemble 31 d'opérateurs 310, 311, 312, 313 sont associés aux différentes colonnes de la table 21 et - sont reliés à l'opérateur de combinaison des résultats 40. Ces opérateurs reçoivent les éléments d'information issus d'un fichier S et sur lesquels. doit être effectué un- ou plusieurs processus de rapprochement. Ce ou ces rapprochements sont réalisés sous la commande d'une unité de commande comprenant une mémoire de commande 11, un circuit de microcommande 10 recevant les informations et instructions contenues dans la mémoi- re 11, un compteur adressable 12 régissant l'accès à la mémoire 11, un registre 13 de chargement de la mémoire 11. et un dispositif de localisation 14 de l'information par comptage des entités logiques et par comptahe ou identi- fication des séparateurs.. Le registre de chargement 13 comprend des pre- mières zones 130, 131 reliées au compteur 12 et comprenant des indications relatives aux adresses auxquelles les in- formations ou instructions contenues dans une seconde zone 132 doivent être chargées dans la mémoire 11 ou le dispositif de localisation 14. La mémoire Il est partagée en lignes horizonta- les, chaque zone horizontale du tableau correspondant à une ligne horizontale de la mémoire. Comme indiqué ci- dessus à propos de la table 21, le partage de la mémoire Il n'est défini ici comme étant réalisé en lignes hori- zontales que pour la clarté de l'exposé. La mémoire 11 est partagée en outre en zones verticales 110, 119 dans lesquelles sont respectivement enregistrées des instructions correspondant à des opéra- tions à caractère itératif effectuées pendant le traite- * ment de chaque ligne de ladite mémoire et des instructions correspondant à des opérations terminales effectuées en fin de traitement. Ces différentes zones de la mémoire seront définies plus en détail ci-après. Une mémoire auxilaire adressable 51 et son comp- teur adressable associé 52 sont prévus pour stocker de façon conditionnelle ou non l'information issue de - il - fichier, en fonction de signaux de commandes fournis par le circuit 10. Enfin, des compteurs adressables 62, 72, 82, 92... permettent le transfert d'informations issues du fichier sur des périphériques,sorties,ou toute autre mémoire 61, 71, 81, 91en fonction de commandes fournies par le circuit 10. Avant de décrire en détail le fonctionnement du dispositif de commande, on va rappeler en quoi consiste le processus de rapprochement itératif et simultané tel qu'il est décrit dans le brevet français n0 2 293.741 et son certificat d'addition n0 2 330.075. Un fichier sur lequel un rapprochement est à effectuer comporte des données, appelées entités logiques, constituées d'éléments d'information, par exemple des oc- tets. Les entités logiques sont en longueur fixe ou va- riable. Dans le second cas, il est nécessaire d'adjoin- dre à chaque entité logique un caractère spécial indi- quant sa fin. Les entités logiques sont regroupées en séquences identifiées chacune par un label (ou étiquette, ou titre,.....) particulier appelé entité logique spéciale. Les séquences peuvent être de longueur fixe ou variable, c' est-à-dire comporter un nombre fixe ou non d'entités logiques. Dans le second cas, on adjoint à chaque sé- quence un caractère spécial indiquant sa fin. Un rapprochement itératif et simultané consiste à reconnaître une relation entre chaque entité logique spéciale ou non issue de la source et simultanément plu- sieurs entités logiques de référence. La relation est, par exemple, une relation d'égalité, d'inégalité, d'encadrement,..... A cet effet, on compare chaque entité logique issue de la source, élément d'information par élément d'information, avec les entités logiques de référence. Ces résultats des comparaisons sont combinés pour four- nir le résultat de rapprochement. Avec Le dispositif conforme à l'invention, on - 12 _ charge dans la table 21, dans une même colonne, une suite d'entités logiques de types différents se présentant dans le même ordre, mais non nécessairement consécutivement, dans le fichier. Dans une même zone horizontale de la table 21, on range les entités logiques de même type sur lesquelles un rapprochement est à effectuer simultanément en parallèle, la longueur de chaque zone correspondant soit à la longueur maxima des entités logiques de réfé- rence, soit à la plus longue des entités logiques appar- tenant à cette zone. On entend par entités logiques de même type des entités logiques appartenant à un ensemble ou sous-ensemble de même signification. Par entités logiques de types différents, on entend ici, par exemple, les labels et les données. Les labels pourront être de niveaux différents, un label iden- tifiant une séquence du fichier contenant plusieurs sous- articles identifiés chacun par un label de niveau infé- rieur. Les labels de différents niveaux sont considérés comme des entités logiques de types différents. On vaimaintenant décrire de façon détaillée des modes de réalisation particuliers de différentes parties du procédé et du dispositif conformes à l'invention, à -savoir successivement: le chargement dans la mémoire de commande 11 et le dispositif de localisation 14 des ins- tructions nécessaires à la réalisation des localisations, rapprochements et transferts à effectuer sur les informa- tions d'un fichier; la structure et le fonctionnement d'un opérateur de rapprochement; la commande d'opéra- tions du premier niveau à effectuer en fin de chaque en- tité logique; la commande d'opérations du second niveau à effectuer en fin de chaque sous-article; la commande de transferts; la commande des enchaînements sur la ta- ble de commande; la commande des enchaînements sur la ta- ble de référence; la commande des enchaînements à effec- tuer sur le périphérique; les commandes et circuits re- latifs aux comparaisons avec les résultats de référence; - 13 - et les commandes relatives aux tests. Différents exemples de mise en oeuvre de l'invention seront ensuite décrits. Chargement des instructions Dans la mémoire de commande 11, sont chargées les instructions nécessaires à la réalisation des rappro- chements ainsi que des transferts à effectuer sur les in- formations issues du fichier. Chaque ligne de la mémoire de commande corres- pond à une instruction de localisation des informations à traiter et/ou de rapprochements à effectuer entre les entités logiques issues de la source et la ou les entités logiques de référence et/ou de stockage des éléments d'information reçues de la source. Lorsque la localisa- tion résulte d'un rapprochement à effectuer, par exemple, sur une entité logique spéciale de référence ou label, l'instruction de localisation est une instruction de rapprochement. Chaque ligne de la mémoire de commande corres- pondant à une zone horizontale de la table de référence est chargée comme suit. Dans la zone verticale 110 (figures 3, 4) on introduit, en 1110 et 1111, si nécessaire, des codes re- latifs aux séparateurs des différents niveaux (entités logiques, sousarticles, séquences,.....), le dispositif devant au moins permettre, pour chaque ligne de la table de commande, le chargement des séparateurs correspondant à deux niveaux de traitement. Le chargement du code de séparateur de premier niveau est nécessaire lorsque les entités logiques sur lesquelles le rapprochement est à effectuer ont une longueur variable. Des codes représentatifs de la nature des enti- tés logiques (information déclarée binaire ou hexadécimale ou alpha- numérique,.....) de la nature du format des entités logiques (format fixe ou variable) et de la longueur du format lorsque respectivement celui-ci est fixe sont enregistrés / en 1121, 1122 et 1123.' - 14 - Le code de l'opération à effectuer sur chaque élément d'information des entités logiques à rapprocher est chargé en 1124. On notera que plusieurs cases 1124 sont prévues de manière, si nécessaire, à permettre le chargement de codes d'opération différents selon les co- lonnes de la table de référence. Le code de l'opération à effectuer comporte un élément d'information caractérisant la nature de l'opération (logique, arithmétique,.....) (11240) et un élément caractérisant la nature de l'opéra- tion logique ( =, 0, K, i, > , >) ou de l'opération arithmétique (+, x, -,.) ou de toute autre opéra- tion (11241). Des codés commandant le transfert conditionnel ou inconditionnel des éléments d'information issus du fi- chier sont introduits en 1130 et 1131. Ces codes correspon- du dent pour 1130 aux inforrmation's de premier niveau / dispositif (entité logique de longueur fixe ou variable) et pour 1131 aux informations de second niveau (séparateur de second niveau). Le séparateur marquant la fin d'une enti- té logique de longueur variable est transmis nécessaire- ment avec l'entité logique qui lui correspond. En l'ab- sence d'une entité logique de longueur variable à trans- férer, le code ihtroduit en 1130 commande le transfert du séparateur correspondant. Lorsque les éléments d'in- formation. d'une séquence issue de la source ne sont pas soumisrapprochement, le transfert de la séquence est commandé comme il en est d'une entité logique. Des codes commandant la destination des infor- mations qui sont issues de la source et dont le transfert est commandé par les codes introduits en 1130 et 1131, sont introduits en 1132. On notera que plusieurs cases 1132 sont prévues, en général en raison d'une case par opérateur de rapprochement, de manière, si nécessaire, à permettre pour les informations reçues de la source le stockage simultané sur plusieurs dispositifs de stockage ( périphériques, sorties ou toute autre ménoire). Le code 1132 peut comporter autant de sous-ensembles, si nécessaire, pour commander le stockage par incrémentation de la mémoire de stockage ou par saut à une nouvelle adresse déterminée. Dans la zone verticale 119 de la mémoire de commande (fig. 5 à 9), sont introduits les codes des opérations à effectuer en fin de traitement sur une en- tité logique ou une séquence d'entités logiques du fi- chier, ou en fin d'une opération de localisation. Ces opérations comprennent les enchaînements à effectuer dans la table de référence. On considère d'a- bord les enchaînements du premier niveau. Ceux-ci sont à effectuer après chaque entité logique issue du fichier, c'est-à-dire après reconnaissance du séparateur du pre-. mier niveau, dans le cas d'une-entité logique de longueur variable, ou, dans le cas d'une entité logique de longueur fixe, lorsque la dernière information-appartenant à cette entité logique et correspondant à cette longueur déclarée a été identifiée par comptage. Pour ces enchaînements: du premier niveau, on peut introduire dans la zone de mémoire 119 les codes relatifs respectivement à: l'instruction de saut d'entités logiques de référence ou de reprise de la ou des mêmes entités logiques de référence ou d'absence d'enchaînement, au caractère conditionnel ou incondition- nel du saut ainsi commandé. Des codes analogues-sont alors introduits pour les enchaînements à effectuer après chaque sous article ou séquence du fichier, c'est-à-dire correspondant au second niveau du dispositif,tel que choisi dans cet exemple. Toutefois, dans l'exemple illustré, les comman- des d'enchaînement sur la table des entités logiques de référence sont commandées par les codes commandant les enchaînements de la table de commande, toute incrémenta- tion de la table des entités logiques de référence étant inhibée pour un code opération de comparaison NOP relatif aux rapprochements à effectuer pour la ligne de la table de commande pour laquelle est commandé le saut. Les opérations à effectuer en fin de localisa- tion ou de rapprochement, en effet, comportent aussi les enchaînements à effectuer dans la mémoire de commande (figure 5). Pour les enchaînements à effectuer au premier niveau du dispositif, tel que décrit ci-dessus, on intro- duit en 1910 et 1911 les codes relatifs respectivement à l'instruction de saut dans la table de commande ou de re- prise dans la table de commande ou de retour dans la mé- moire auxiliaire, au caractère conditionnel ou incondi- tionnel dudit enchaînement. Des codes analogues sont in- troduits en 1914 et 1915 pour les enchaînements à effec- tuer après chaque sous-article ou séquence du fichier, c'est-à-dire correspondant au second niveau du disposi- tif choisi. En 1920 et 1921 (figure 6), sont enregistrés les codes relatifs respectivement aux enchaînements à ef- fectuer sur le périphérique en lecture, à savoir, pour 1920, l'indication que la lecture du périphérique est in- terrompue avec ou sans interruption du déroulement péri- phérique pour reprise au même positionnement du périphé- rique; pour.1921, de façon conditionnelle ou non. Sont encore enregistrés les codes d'opérations relatives aux tests (figure 7): test logique ou arithmé- tique sur les résultats pour la conservation des informa- tions stockées (1930) et comptage des résultats VRAI (1931). Enfin, les codes d'opérations relatives aux ré- sultats de référence sont stockées au bout de la ligne de la mémoire de commande. En 1940, sont enregistrés les co- des relatifs à la commande du transfert des résultats vers la mémoire auxiliaire. En 1950. (figure 8), dans-deux sous- ensembles 19501 et 19502, sont enregistrés les codes re- latifs au résultat 1 ou 0 de référence, à raison d'un seul résultat par opérateur, et ceux relatifs au caractère SPACE pris pour masque du résultat et rendant VRAI ce résultat quels que puissent-être les rapprochements effectués. En 1951 (figure 9), dans deux sous- ensembles 19511 et 19512, sont enregistrés les codes relatifs à l'opérateur OU ou ET de combinaison linéaire des résultats, ainsi qu'au ca- - 17 - ractère SPACE pris pour masque dudit opérateur de combi- naison -c'est-à-dire établissant une indépendance entre deux combinaisons linéaires du résultat. On notera que plusieurs cases sont prévues de façon à obtenir un ré- sultat élémentaire par opérateur de rapprochement et à combiner entre eux lesdits résultats élémentaires. Une localisation peut être effectuée au début ou en cours de traitement. Une ligne de la mémoire de commande peut alors correspondre à cette instruction de localisation. Cette localisation peut se faire, comme on l'a dit, par un rapprochement effectué entre une entité logique, par exemple une entité logique spéciale ou la- bel et l'entité logique de référence servant à localiser les informations issues de la source. Cette localisation peut se faire aussi par identification d'un caractère spécial ou séparateur appartenant à la source. Elle peut se faire encore par comptage. Ce comptage peut être ef- fectué sur des octets, quelle que soit la signification des octets reçus. La localisation par comptage de tels éléments d'information quelconques ou octets se fait com- me il en est pour une entité logique de format fixe par une déclaration correspondant à une longueur d'entité lo- gique ou donnée. La localisation peut au contraire réeul- ter d'un comptage effectué sur des octets qui ont une si- gnification particulière en raison de leur contenu, par exemple, des séparateurs, ou en raison de leur localisa- tion dans le flot d'informations ou sur des entités logi- ques de format fixe, en particulier, des labels. La nature des éléments comptés peut être définie implicitement comme résultant des déclarations relatives aux séparateurs et aux données correspondant à la même ligne de commande. Ces comptages sont exécutés par le dispositif de localisation 14 permettant de commander les enchaîne- ments correspondants. Le comptage peut être un comptage simple; o il peut au contraire être combiné avec d'au- tres comptages dont la combinaison permxet de localiser - 18 - une information au cours d'un traitement répondant à un processus de bouclage. Lorsque les comptages sont à exé- cuter sur des unités logiques ou articles d'un fichier constitué d'articles de longueur connue, ils sont comman- dés et enchaînés par des informations de commande relati- ves notamment au nombre et à la longueur de ces articles et rangés dans des registres spéciaux. Les comptages à effectuer pour le traitement d'informations appartenant à un article sont commandés, d'une part, par des informations de commande contenues dans les codes des cases 1910 et 1914 de la mémoire de commande il et, d'autre part, en ce qui concerne le noimbre de traitements à effec- tuer pour une ligne de cette mésoire de ommide,par l'information contenue dans la case 01100 de la mémoire à-pile 0110 du disposi- - tif de localisation 14 (fig. 11), ou tout autre mémoire et notamment de la mémoire auxiliaire 51 prise coe ménuire à pile du dispositif 14. Cette même ligne de la table 0110 du dispositif de localisation 14 comporte également des cases 01101 et 01102 o sont enregistrées les valeurs de reprise respec- tivement du compteur 22 de la table des entités logiques 21 et du compteur 12 de la table de commande 11 pour la commande des enchaînements à effectuer en fin du boucla- ge commandé par l'information contenue dans cette case 01100 ou sur identification du séparateur du second niveau. Les informations à ranger dans les cases 01100, 01101 et 01102 le sont séquentiellement,ligne par ligne, dans la mémoire à pile 0110 selon l'ordre dans lequel les informations correspondant aux traitements à exécuter se présentent en cours de déroulement du fichier. On a décrit ci-dessus l'ensemble des codes qui peuvent être enregistrés dans une ligne de la mémoire de commande correspondant à une zone horizontale du tableau. Bien entendu, seuls les codes appropriés pour l'exécution du traitement désiré sont enregistrés. Les adresses correspondant à la mémoire auxi- Maire 51 sont chargées dans un dispositif associatif permettant d'associer une à une lesdites valeurs d'adres- sage de la mémoire auxiliaire aux valeurs significatives fournies par le compteur de la table de commande à un instant donné. Quel que soit le mode choisi de réalisation du dispositif conforme à l'invention, toutes les instructions contenues dans une ligne de la mémoire de commande sont lues simultanément par le circuit de microcommande 10 pour être transformées en signaux de commande. Avant de décrire le circuit de microcommande en référence aux figures 3 à 11, on va maintenant dé- crire schématiquement la variante de l'opérateur de rap- prochement choisi, toujours à titre d'exemple, dans ce dispositif pour mettre en oeuvre un procédé de type de celui décrit dans le brevet français no 2 293.741 et son certificat d'addition n0 2 330.075. Opérateur de rapprochement - Comme le montre la figure 2, chacun des opéra- teurs de rapprochement 310, 311, 312, 313 se compose es- sentiellement de trois éléments 301, 302, 304 pour combi- ner entre eux les résultats élémentaires correspondant au rapprochement d'une entité logique. L'élément 301 compare l'élément d'information reçu de la source par la liaison 1104 et l'élément de ré- férence correspondant reçu par la liaison 2100. Les re- ports sont mémorisés, à chaque élément d'information reçu par des bascules 3010, 3011, 3012. Le comparateur 301 est initialisé en début d'entité logique par une liaison 010 et i. est actionné, de même que les bascules 3010, 301] et 3012 par le signal d'horloge 01 émis pour chaque si- gnal d'information reçu. A la fin de chaque entité logi- que, les contenus des bascules 3010, 3011 et 3012 repré- sentent le résultat cumulé des comparaisons successives des éléments d'information. - 20 - 2459512 Un comparateur 302 effectue, à la fin de l'en- tité logique reçue, la comparaison du résultat obtenu avec le code de référence chargé dans la case 11241 de la mémoire de commande il pour un code 11240 donnant à l'o- pération une signification logique. Les informations;cor- respondant au code contenu en 11241 sont transmises au comparateur 302 par les liaisons 12500 après décodage en 11250 du contenu de 11240. Une porte 11251 a ses entrées reliées aux liaisons 12500 pour émettre sur une liaison 12501 une information correspondant, après décodage du contenu de 11240, à un code d'opération nul (NOP) en 11241. Une bascule 304 initialisée par la liaison 010 permet de mémoriser selon une fonction ET les résultats fournis par le comparateur 302 et transmis à travers une porte OU 3013. Celle-ci a aussi une entrée reliée à la liaison 12501. Une liaison 12200 transmet à la bascule 304 l'information correspondant à une fin d'entité logi- que (voir paragraphe suivant) pour commander le transfert du résultat par la liaison 3300. On dispose donc sur la liaison 3300 du résultat du rapprochement effectué sur chaque entité logique re- çue, dans le cas d'un code opération non nul, ou d'un ré- sultat virtuel, dans le cas d'un code opération nul. Commande d'opérations du premier niveau Sur la figure 3 est représenté schématiquement, pour le premier niveau du dispositif, le dispositif de commande relatif à la déclaration du séparateur et des données, à l'exclusion des codes 1124, dont les fonctions des sous-ensembles 11240 et 11241 sont expliquées ci- dessus. Le séparateur déclaré en 1100 correspond au pre- mier niveau du dispositif. Il est identifié par le com- parateur 11100 qui reçoit de la source chaque élément d'information (octet) par la liaison 1104. La liaison 01 transmettant le signal d'horloge correspondant à l'élé- ment d'information reçu de la source actionne le compteur - 21 - 11230 dont le résultat est comparé par le comparateur 11231 à la valeur de longueur affichée dans la case 1123. Les informations contenues dans la case 1122 (format va- riable ou fixe) sont décodées en 11220, notamment pour activer respectivement par les liaisons 11221 et 11222, * soit le comparateur 11100 (format variable), soit le com- parateur 11231 (format fixe). Une porte OU 11232 reçoit un signal du comparateur 11100 après chaque identifica- tion de séparateur de premier niveau (format variable) et reçoit un signal du comparateur 11231 après comptage du nombre d'éléments d'information enregistré en 1123 (format fixe). La liaison 12200 en sortie de la porte OU 11232 commande donc l'exécution des opérations à effectuer en fin d'entité logique de longueur fixe ou sur identifica- tion du séparateur. Les informations contenues en 1121 sont éven- tuellement décodées pour des traitements à effectuer par l'étage de la mémoire auxiliaire. Commande des opérations de second niveau On utilise le dispositif 14 de localisation des informations par comptage ou par identification de sépa- rateurs représenté schématiquement sur la figure 11. Dans les registres 1960 et 1961, sont chargées les informations relatives respectivement à la commande du comptage des articles appartenant à un même fichier et au nombre de ces articles. Dans la mémoire à pile 0110 de type FIFO (FIRST IN, FIRST OUT), sont stockées par ligne dans des cases 01100, 01101 et 01102 les informations relatives respec- tivement à la localisation par comptage des boucles à ef- fectuer, à la valeur de reprise correspondante du compteur 22 de la table des entités logiques de référence 21 et à la valeur de reprise correspondante du compteur 12 de Ja table de commande 11 Les informations contenues séquen- - 22 - tiellement dans la colonne contenant les cases 01100 de la mémoire à pile 0110 fournissent les valeurs de locali- sation par comptage des entités logiques ou des sépara- teurs d'un fichier exprimées en unités de traitement cor- respondant chacune à une ligne de la mémoire de commande 11. Par exemple, si l'on veut commander deux fois quatre boucles sur un premier traitement suivies de deux boucles sur un second traitement, la colonne correspondant pour la mémoire à pile 0110 aux cases 01100 sera chargée comme ci-dessous Pour un traitement correspondant à une ligne de la mémoire de commande 11, le contenu de la case 01100 est comparé par le comparateur 0111 à la valeur du comp- teur 1110 actionné par la liaison 19105 de la figure 5 (voir plus loin le paragraphe intitulé "Enchaînements sur la table de commande") commandant les opérations à effec- tuer en fin d'entité logique de longueur fixe ou sur iden- tification du séparateur de premier niveau. Lorsque le nombre de traitements enregistré dans la case 01100 est atteint, le comparateur 0111 fournit un résultat VRAI et commande les opérations à exécuter, pour le second niveau du dispositif, sur une liaison 12301 par l'intermédiaire d'une porte OU 11129. Cette liaison 12301 est également activée, à travers la porte 11129, par le résultat VRAI de la sortie 11111 du comparateur 11110 correspondant à la comparaison effectuée sur le séparateur de second niveau avec l'élément d'information reçu de la source par la liaison 1104. La liaison 12301 permet d'activer l'informa- tion de commande correspondant aux enchaînements à effec- tuer sur la table de commande 11 et transmise par la liai- son 19140 de la figure 5 (voir paragraphe suivant) corres- - 23 - pondant aux cases 1914 et 1915 de cette table de commande 11 pour le second niveau du dispositif. Par la liaison 19140, on commande la remise à zéro du compteur 1110, la reprise des traitements à effectuer selon les valeurs de reprise des compteurs 22 et 12 contenues dans les cases 01101 et 01102 de la même ligne de la mémoire à pile 0110 et l'incrémentation de cette mémoire à pile 0110. Cette mémoire à pile est alors activée par la liaison 19105 de la figure 5 pour les codes contenus dans les cases 1910 et 1911 et correspondant à une instruction de boucle pour le premier niveau du dispositif. A défaut d'instruction de bouclage correspondant au second niveau du dispositif, la liaison 12301 commande une incrémentation de la table des entités logiques de référence 21 et de la table de commande 11. Les informations contenues dans les cases 01101 sont successivement enregistrées, zone par zone, au mo- ment du chargement de la table 21 préalablement à l'exé- cution du procédé de rapprochement. L'enregistrement dans les cases 01101 des valeurs de reprise du compteur 22 est effectué au moyen du dispositif 1901. Celui-ci permet, par comparaison, de ne mémoriser dans la case 01101 cor- respondant à une ligne de la mémoire A pile 0110 que la valeur d'initialisation du compteur 22 correspondant, pour les entités logiques de cette zone, à la plus longue des entités logiques appartenant à la zone immédiatement précédente. En d'autres termes, pour la première ligne d'une zone de la table de référence, la valeur du compteur 22 est celle qui suit la valeur du compteur pour le der- nier élément d'information de l'entité logique la plus longue de la zone précédente de la table de référence. Pour certaines opérations, notamment comme il en est des opérations de séparation et d'inter-classement, cette va- leur d'initialisation peut être fixée arbitrairement pour une longueur maximale correspondante des entités logiques de la zone précédente. - 24 _- Lorsqu'il n'y a pas d'entité logique à rappro- cher pour un traitement à effectuer correspondant à une ligne de la table de commande 11, c'est-à-dire lorsque le code d'opération de la case 11241 après décodage de 11240 donne pour cette ligne une valeur égale à zéro (NOP), la liaison 12501 de la figure 2 bloque le compteur 22 de la table des données de référence 21 pour sa valeur correspondant à l'initialisation de cette zone. Cette va- leur du compteur 22 est enregistrée éventuellement dans la case 01101 de la mémoire à pile 0110 correspondant à cette ligne de la mémoire de commande 11. Les informations contenues dans les cases 01102, et correspondant aux valeurs de reprise dans la table de commande 11 sont enregistrées successivement au moment du chargement de cette table 11. A la fin de chaque article, on commande par une liaison 19142 (voir figure 5), l'incrémentation d'un comp- teur 19611 à travers une porte ET 19612 validée par la liaison 19600 transmettant l'information contenue dans la case 1900 (commande de comptage d'articles). La valeur du compteur 19611 est comparée, par un comparateur 19610 au contenu de la case 1961 (nombre d'articles). La sortie 12302 du comparateur 19610 commande, pour un résultat VRAI, un saut à la ligne consécutive de la table de com- mande correspondant aux opérations à effectuer en fin de traitement (opérations terminales). Transfert des informations Sur la figure 4 est représenté schématiquement le dispositif de commande relatif au transfert des infor- mations. Le code contenu en 1130, après décodage par le décodeur 1133, et le code contenu en 1131 activent, par les liaisons 11300 et 11310, le décodage en 11321, 11322,.... des informations contenues dans les cases 1132 pour commander le transfert des informations reçues de la source par la liaison 1104 vers les mémoires à pile - 25,- 61, 71, 81, 91..... des périphériques correspondants. Les liaisons 11300 et 11310 sont unies par une porte OU 1138 dont la sortie est donc activée lorsqu'un transfert est à faire. L'information transmise par une liaison 11301, après décodage en 1133 avec la liaison 11223 correspon- dant au code contenu dans la case 1122 de la figure 3 et relatif au format des données déclarées, active, s'il y a déclaration de données, le résultat transmis par la liaison 400 de la figure 9 et les résultats transmis par les liaisons P10, Pll, P12, P13, P14, P15, P16, P17,..... de la figure 10. On ne valide donc les résultats que s'ils concernent des données. En cas d'absence d'information dans la case 1122, c'est-à-dire en l'absence de donnée déclarée, le code 1130, après décodage en 1133, active par la liaison 1134, une porte ET 1135 pour laisser passer vers une porte NON OU 1136 la liaison 11101 de la figure 3 relative au résultat de la comparaison effectuée pour le séparateur de premier niveau par le comparateur 11100. La liaison 11302, qui est toujours relative au séparateur de second niveau du dispositif, active une por- te ET 1137 pour aisser passer vers la porte NON OU 1136 le resultat de la comparaison effectuée pour le séparateur de second niveau par le comparateur 11110 de la figure 11 et transmis par la liaison 11111 de la même figure. Une porte ET 1139 reçoit les informations de sortie des portes 1138 et 1136 pour transmettre l'infor- mation résultante sur une liaison 11000 correspondant au transfert des séparateurs. Cette information résultante transmise par la liaison 11000 décrémente donc, en l'ab- sence de séparateurs, pour un code 1130 ou 1131 non nul, les mémoires à pile 62, 72, 82, 92..... des périphériques correspondants. - 26 - Enchaînements sur la table de commande Sur la figure 5 est représenté schématiquement le dispositif de commande relatif aux enchaînements à ef- fectuer sur la table de commande 11 ainsi qu'éventuelle- ment sur la table des entités logiques de référence 21. Les codes correspondant au premier niveau du dispositif sont enregistrés dans les cases 1910 et 1911 et ceux cor- respondant au second niveau en 1914 et 1915. Les informations contenues dans les cases 1910 et 1911 sont décodées en 19100 avec l'information trans- mise par la liaison 12200 relative à la commande des opé- rations à exécuter à la fin des rapprochements pour le premier niveau du dispositif (figure 3) et avec l'infor- mation transmise par la liaison 400 et relative au résul- tat VRAI ou FAUX des rapprochements précédents (figure 9). Les informations contenues en 1914 et 1915 sont décodées en 19101 avec l'information transmise par la même liai- son 400 de la figure 9 et avec l'information transmise par la liaison 12301 et relative à la commande des opéra- tions à exécuter en fin de rapprochement pour le second niveau du dispositif (figure 11). Les signaux de commande correspondant aux ins- tructions de boucles enregistrées dans les cases 1910 et 1914 sont transmis par des liaisons 19105 et 19140 en sortie des décodeurs 19100 et 19101. Les signaux de com- mande correspondant aux instructions de boucles enregis- trés dans la case 1914 commandent, par la liaison 19142, pour une fin d'article, outre les opérations commandées par la liaison 19140, les opérations correspondant à cette fin d'article. A défaut de code correspondant dans les cases 1910 et 1914, les liaisons 19106 et 19141 commandent, conditionnellement ou non selon les codes contenus dans les cases 1911 et 1915, une incrémentation du compteur 12 de la mémoire de commande 11 (saut implicite dans la mé- moire de commande). - 27 - Enchaînements sur la table de référence Au cours d'opérations de rapprochement corres- pondant à une ligne de la mémoire de commande, le comp- teur 22 est incrémenté pour les éléments d'information successifs reçus des entités logiques à rapprocher et est ramené à sa valeur d'initialisation (première ligne de la zone horizontale de la table de référence correspondant à cette ligne de la mémoire de commande) après chaque trai- tement (bouclage au premier niveau par initialisation du compteur 22 par la liaison 19105). Comme représenté sur la figure 11, le compteur 22 est relié aux cases 01101 à travers un dispositif à porte ET 0112 qui est commandée par la liaison 19142 de manière à autoriser le transfert d'une valeur de reprise contenue dans une case 01101 lorsque la case 1914 contient une information de commande de bouclage au second niveau du dispositif. En l'absence de cette information de com- mande, il n'y a transfert de nouvelle valeur d'initiali- sation du compteur 22. Le compteur 22 est, en outre, incrémenté par la liaison 01, à chaque fin d'élément d'information reçu du fichier, à travers une porte ET 221 dont l'autre entrée est connectée à la liaison 12501 (figure 2) par un inver- seur 222. Il n'y a donc incrémentation du compteur 22 (passage d'une ligne à la suivante de la table de réfé- rence) que lorsque le code opération n'est pas nul sur la liaison 12501 (absence de NOP). A la fin d'une opération de rapprochement effec- tuée sur des entités de référence d'une zone horizontale de la table de référence, on passe à la première ligne de la zone horizontale suivante en même temps que l'on passe dans une autre ligne de la mémoire de commande. S'il n'y a pas de code opération dans la case 11241 de cette autre ligne, toute nouvelle incrémentation du compteur 22 est bloquée. - 28 - Enchaînements sur périphérique Sur la figure 6 est représenté schématiquement le dispositif de commande relatif aux enchaînements à ef- fectuer sur le périphérique en lecture. Les informations contenues dans les cases 1920 et 1921 (interruption con- didionnelle ou non de la lecture du périphérique) sont décodées en 19200 avec l'information transmise par la liaison 400 et relative aux résultats des rapprochements (figure 9) et l'information transmise par la liaison 12300 de la figure 11 et relative à la fin d'article. L'information transmise par la liaison 1925 en sortie du décodeur 19200 commande, d'une part, sur le contrôleur de périphérique correspondant, la mémorisation de l'adres- se et de la position de piste et l'interruption de la lecture du périphérique et, d'autre part, envoie un si- gnal d'état sur le dispositif de la mémoire auxiliaire. Opérations sur résultats de référence Les figures 8 à 10 donnent schématiquement les principes de l'ensemble du dispositif de commande relatif aux résultats de référence. Les cases 1950 comportent chacune deux sous- ensembles, à savoir un sous-ensemble 19501 o est enre- gistrée la valeur binaire 1 ou 0 correspondant au résul- tat de référence à raison d'un résultat par opérateur et un sous-ensemble 19502 o est enregistré l'élément binai- re relatif au masque, la valeur 0 étant choisie pour des raisons de commodité comme représentative du masque. La figure 8 donne le schéma classique d'un dispositif de comparaison associé à un dispositif de masquage. Le dis- positif de comparaison comporte une porte OU EXCLUSIF 3301 qui reçoit, d'une part, l'information d'un sous- ensemble 19501 par une liaison 3310 et, d'autre part, la liaison 3300 qui transmet le résultat du rapprochement effectué, comme le montre la figure 2. Une liaison 3311 transmet à un inverseur 3302 l'information du sous- 29 9 ensemble 19502. Les sorties de la porte 3301 et de l'in- verseur 3302 sont unies par une porte OU 3303 dont la sortie est reliée à une liaison 3340 pour transmettre à l'opérateur de combinaison horizontale 3500 (figure 9) le résultat VRAI ou FAUX obtenu selon la comparaison et le masquage décrits ci-dessus. La figure 9 donne les principes de l'opérateur booléen et modulaire horizontal 3500 formé de modules identiques 3511, 3512, 3513, 3514. Les cases 1951 comportent deux sous-ensembles, à savoir un sous-ensemble 19511 o est enregistrée la na- ture de l'opérateur de combinaison + ou x, à savoir, dans cet exemple, 0 pour x et 1 pour +, et un ensemble 19512 o est enregistré l'élément binaire relatif au masque de l'opérateur, la valeur 0 étant choisie pour des raisons de commodité comme masque de l'opérateur. Les liaisons 3340, 3341, 3342, 3343..... trans- mettent, comme il est montré figure 8, les résultats booléens VRAI ou FAUX des rapprochements obtenus par les opérateurs de rapprochement 310, 311, 312, 313.... Les liaisons 3360, 3361, 3362, 3363..... et 3330, 3331, 3332, 3333,... transmettent les informations contenues dans les cases 19511 et 19512 correspondantes. Chaque module 3510, 3511, 3512, 3513. peut être considéré comme étant disposé entre deux liaisons consécutives 3Ze0, 3341, 3342, 3343,. pour valider les résultats transmis sur ces liaisons selon les codes enregistrés dans les cases 1951. La structure d'un module est la suivante. Une porte ET 35101 reçoit sur une entrée le co- de relatif au masquage enregistré en 19512 et sur son au- tre entrée le code opérateur enregistré en 19511 et in- versé par un inverseur 35102. La sortie de la porte 35101 (inverse du code opérateur en l'absence de masquage) ccm- mande une porte ET 35103 qui reçoit la sortie d'une porte - 30 - OU 35104. Celle-ci reçoit les sorties de deux portes ET 35105 et 35106 qui transmettent le résultat de rappro- chement (liaison 3340 ou 3341 ou 3342 ou 3343,.....) sous la commande, respectivement de l'inverse du code relatif au masquage correspondant au module situé à gauche (code inversé par un inverseur 35107) et de la sortie d'une. porte OU 35108 dont les entrées sont reliées à la case 19511 (code opérateur) et à la sortie de la porte 35103. La sortie de la porte OU 35104 est également reliée à une entrée d'une porte ET 35109 qui reçoit sur son autre en- trée le code opérateur. Le résultat sur la liaison 3340, 3341, 3342, 3343,..... est validé ou non en sortie du mo- dule sur une liaison (respectivement 3501, 3502, 3503, 3504,...) branchée à la sortie d'une porte OU 35110. Celle-ci a une entrée reliée à la sortie de la porte ET 35109 et l'autre entrée reliée à la sortie d'une porte ET 35111 qui reçoit le code relatif au masquage sur une pre- mière entrée de commande et la sortie du module situé immédiatement à droite sur sa deuxième entrée. La deuxième entrée du module situé le plus à droite est en permanence au niveau logique bas (0), alors que sa liaison d'entrée 3334 est au niveau logique haut. Le niveau de l'entrée 3364 n'est pas critique. Les entrées de commande des portes ET 35105 et 35106 du modulé situé le plus à gauche sont au niveau-haut (1). Le fonctionnement de l'opérateur 3500 est le suivant. Un code opérateur égal à 1, correspondant par conséquent à un OU et enregistré en 19511, a pour consé- quence de valider par la porte 35108 l'information four- nissant un résultat VRAI ou FAUX par la liaison de sortie d'opérateur de rapprochement (liaison 3340, 3341, 3342, 3343,...) qui lui correspond selon la syntaxe habituelle, c'est-à-dire la liaison reçue immédiatement à droite, donc de valider le résultat suivant indépendamment du résultat - 31 - précédent. Le même code opérateur égal à 1 a pour consé- quence de valider le résultat VRAI ou FAUX correspondant à la liaison 3340, 3341, 3342, ou 3343 situé immédiate- ment à sa gauche, c'est-à-dire de le valider, à travers les portes 35109, 35110, par la liaison correspondante 3501, 3502, 3503 ou 3504 indépendamment du résultat de droite. Un code opérateur égal à 0, c'est-à-dire cor- respondant à un ET aura au contraire, pour un élément d'information relatif au masque et égal à 1, c'est-à- dire en l'absence de masquage, pour effet de soumettre la validité d'un résultat VRAI élémentaire qui le suit à un résultat VRAI situé immédiatement à sa gauche (par la porte 35103) et de ne pas valider le résultat VRAI pou- vant correspondre à la liaison 3340, 3341, 3342 ou 3343 située immédiatement à sa gauche. Un code relatif au masquage et égal à 0, c'est- à-dire: signifiant qu'il y a masquage du code opérateur booléen aura pour effet de se comporter en ce qui concer- ne les combinaisons horizontales comme il en est d'un co- de opérateur égal à 1, c'est-à-dire correspondant à un OU. Ainsi, un code signifiant qu'il y a masquage de l'opéra- teur valide le résultat suivant indépendamment du résul- tat précédent par l'inverseur 35107 et valide le résultat situé immédiatement à sa gauche indépendamment du résultat de droite (porte 35111 fermée). Le même code égal à 0 au- ra, de plus, comme effet d'interdire une combinaison OU pour les résultats obtenus en 3501, 3502, 3503 et 3504 entre deux résultats situés sémantiquement de part et d'autre de ce dit code égal à 0. Un OU effectué entre les résultats 3501, 3502, 3503, 3504,..... par la porte 3515 permet de commander, par la liaison 400 en sortie de cette porte, les opéra- tions à exécuter conditionnellement et correspondant aux liaisons 12300 (fin d'article), 12301 (enchaînement sur - 32 - la table de commande) de la figure 11. Le dispositif décrit figure 9 peut être com- plété par le dispositif de priorité de la figure 10 per- mettant de ventiler sur un parmi plusieurs périphériques les informations à conserver selon les encadrements obte- nus pour des opérateurs effectuant un rapprochement sui- vant un code d'inégalité. Dans l'exemple illustré, les résultats obtenus en 00, 01, 02, 03, 04, 05, 06, 07,..... sont validés en P10, Pli, P12, P13, P14, P15, P16, P17,..... pour le-seul résultat VRAI le plus à gauche par exemple pour un code opérateur. La liaison 020 est mise à 1. Le dispositif de priorité est, dans l'exemple illustré, formé de modules identiques POO constitués par une porte ET P01 dont une première entrée reçoit la sor- tie du module précédent (ou la liaison 020 pour le module le plus à gauche) et dont l'autre entrée reçoit la sortie d'un inverseur P02 qui inverse la sortie d'une porte ET P02 dont une entrée est reliée à l'entrée de la porte PFO et dont l'autre entrée reçoit le résultat à valider ou non sur la sortie de cette porte P02. Ainsi, tant que les * résultats à valider sont nuls, de gauche à droite, un ni- veau 1 est présent sur les sorties des modules P00 et un niveau 0 est présent sur les sorties de validation. Dès qu'un résultat est au niveau 1, la sortie de validation correspondante est à 1 et un niveau 0 est établi sur les sorties des modules situés à droite, ce qui force le ni- veau 0 sur les sorties de validation de ces modules quel- le que soit la valeur du résultat à valider. Le dispositif illustré par la figure 10 accorde donc bien la priorité au premier résultat VRAI apparais- sant depuis la gauche de la figure. Commande relative aux tests La figure 7 donne schématiquement le principe du dispositif de commande relatif aux tests effectués - 33 - pour la conservation des éléments stockés. Une informa- tion contenue dans la case 1930 active par les liaisons 19301,-19302, 19303, 19304,..... après décodage en 19300, les dispositifs de reprise des différents compteurs des mémoires à pile 62, 72, 82, 92,..... pour lesquelles ont été transmises les informations à stocker selon les codes contenus dans les cases 1132. Le dispositif de décodage 19300 reçoit la liaison 12302 de la figure Il et est ac- tivé par les liaisons PIO, Pll, P12, P13, P14, P15, P16, P17 de la figure 10. L'information contenue dans le code de la case 1931 (instruction de comptage des résultats VRAI) est ac- tivée pour un résultat VRAI par la liaison 400 de la fi- gure 9 pour commander le compteur 19310 qui compte les résultats VRAI. Exemples Soit à chercher les noms des personnes nées à Montpellier entre 1940 et 1970 dans un fichier dont la structure est la suivante: - | ARX|ARX34L-. :/j NOM LIEU DATE 1 /- lul - Il/ I la mémoire de commande du processeur à unités parallèles est à charger comme ci- après: - 34 - D S M A I P T 0 AF64:: 1:AF03:: I: P::: 2:AV=:J *: I: P: M:RI::1 3::/ ::: B ::: 4:AF05: : C: P:: :: :AV=: :: :: : : 1 6:AF94<>: z::lx 6: AF04 (}:::: ::: 1 x 1 7::/ :C:P:A: : T : et la table de référence comme ci-dessous: A R X A R X Li __ M O N T P E L L I E R 1 1 9 9 4 7 0 0 Dans la table de commande, les colonnes succes- sives sont D pour données et codes opératoires, S pour séparateurs, M pour transferts, A pour la désignation dés dispositifs de stockage correspondants, I pour les instruc- tions sur la table de commande, P pour les instructions correspondant aux enchaînements sur périphériques en lec- R - 35 - ture, T pour les instructions correspondant aux tests et R pour les instructions correspondant aux résultats de référence. Dans la colonne des données, AF désigne l'in- formation de format fixe, AF03, AF04, AF05 une informa- tion de format fixe de 3, 4, 5 octets, AV une information de format variable. Dans la colonne M, I signifie transfert incon- ditionnel et C transfert conditionnel. Dans la colonne A, P signifie le périphérique en lecture. Dans la colonne I, M signifie saut à la mémoi- re auxiliaire, B signifie boucle et A boucle correspon- dant à la fin d'article. Dans la colonne P, RI signifie interruption in- condtionnelle pour reprise à la même adresse sur la piste. Dans la colonne T, T signifie test logique pour la conservations des résultats. E Soit à effectuer sur un fichier structure en longueur fixe quatre boucles à l'intérieur de deux bou- cles en supposant, si besoin est, que les bouclages à effectuer sont donnés par le système, Soit, tel que décrit di-dessous, le fichier bibliographique correspondant: F712 |($O BIBLI) (RUBRIQOE) B 4 |(CODES D'.ANALYSE DU C NTEU) 6 3 4 4 4 4 4 (RBIQUE) B5 | (CODES D'ANALYSE DU CONENU)1 (les chiffres situes au-dessus des parties du fichier in- diquent la longueur du format fixe des informations con- tenues dans ces parties). -36- Et soit à rechercher selon trois codes d'ana- lyse se rapportant à deux rubriques le numéro de biblio- thèque d'un ouvrage, on aura dans la mémoire de commande les instructions rangées comme ci-dessous (les lettres ont la même signification que dans l'exemple 1, la lettre L de la colonne A signifiant un renvoi vers la table de comptage 0110) D S M A I P T R AF03 I L AF1 2 C P AF06= = 1 l AFt03 I L AI?04=== ______ B A T 1xx1 qui suit, système: La table de référence le chargement pouvant se présentera être effectué de la façon par le 7 9 2 5 8 2 2 I 4 4 6 4 3 3 4 2 8 7 Exemple 3 Soit à effectuer un certain nombre aléatoire de boucles pour un fichier structuré partiellement en longueur variable par des lebels ou des séparateurs, Soit, tel que décrit ci-après le fichier bi- - bliographique correspondant: - 37 - / u|WVR4(NO BIBLI) IANALYSii CICERONUPltO-lMURENACATILINAu GALBA4ê ____ GALBA-,* 1oa SO-1 3II-NAT w ARSENAItFLORENCEkVATICANuPARTICULu!* / j _, I*.. .. . Et soit à rechercher le numéro d'un ouvrage concernant CICERON et GALBA g des sources puisées dans des COLLECTIONS J la mémoire de commande sera chargée comme (dans la colonne I, la lettre L signifie nel au traitement consécutif) D S M A I ó de bibliothèque et utilisant PARTICULIERES, ci-dessous: saut condition- P T R / _ _ AV R LM R _ ___ AF08 c P _ AV = = u/ L B 1 1 AV === L* B A T 1xlxl La table des références sera chargée comme suit: U V R A, S N 0 A U L R y Li S LJ C I C E R N w G A L B A U P A R T I c U I. - 38 - Dans les exemples, le chargement du dispositif de comptage se fait,. en ce qui concerne les boucles à effectuer à l'intérieur d'un article, par l'intermédiai- re du dispositif de chargement 13, en prenant B pour code de sélection des opérations de bouclage. L'instruction comprend alors, d'une part, la structure des bouclages à effectuer et, d'autre part, la valeur de reprise du comp- teur 22 de la mémoire de commande pour le premier bou- clage correspondant au second niveau du dispositif de commande. Ainsi, pour les trois exemples donnés ci-dessus, la table du dispositif de comptage est chargée respecti- vement comme suit :4: 4 :2: :1:3: :1:2::5 :1:: 1: Le chargement des cases 01001 se fait implici- tement, comme décrit ci-avant, au moyen du dispositif 1901 de la figure 11. - 39- Revendications 1. Procédé pour la commande de rapprochements à effectuer entre des entités logiques de référence et des entités logiques issues d'un fichier, procédé selon lequel on range des entités logiques de même type dans des colon- nes d'une table de référence, on compare selon une première fonction tous les éléments d'information de chaque entité logique à rapprocher en parallèle et successivement avec les éléments d'information de môme rang des entités logi- ques de référence contenus dans les lignes successives de la table, et on combine les résultats successifs des com- paraisons pour fournir le résultat du rapprochement et dé- cider des informations à stocker, procédé caractérisé en ce que (a) on enregistre des entités logiques de réfé- rence dans la table de référence en rangeant verticalement, dans des zones horizontales différentes de la table, des e n t i t é s logiques de types différents, le rangement étant effectué dans l'ordre dans lequel les suites formées cha- cune d'entités logiques de xmem type à rapprocher- se présentent, non nécessairement de façon consécutive, dans le fichier, chaque zone horizontale de la table contenant des entités logiques de référence de même type rangées elles aussi verticalement par colonnes (b) on enregistre dans une mémoire de commande, par ligne: - des premières informations de commande con-portant, d'une part, 7 informations de commande relatives au rappro- chement à effectuer entre des entités logiques de même type du fichier et des entités logiques de référence si- tuées dans une zone horizontale de la table correspondant à la ligne de la mémoire dans laquelle lesdites informa- tions de commande de rapprochement sont enregistrées, et d'autre part, des informations de commande relatives au stockage d'entités logiques issues du fichier, et 245 95 12 - 40 - - des-secondes informations de commande d'opé- rations à effectuer à la fin du ou des rapprochements réalisés avec une ou plusieurs entités logiques du fichier et/ou du stockage d'une ou plusieurs entités logiques du fichier, lesdites informations de commande d'opérations comportant des informations de commande de saut pour com- mander l'enchaînement des traitements à effectuer (c) on fait défiler le fichier, et (d) on exécute les opérations correspondant aux premières informations de commande d'une première ligne de-la mémoire de commande, puis les opérations correspon- dant aux secondes informations de commande de cette ligne dont, notamment, l'enchaînement sur une autre ligne non nécessairement consécutive de la mémoire de commande et éventuellement sur une zone horizontale de la table de référence correspondant à cette autre ligne. 2. Procédé selon la revendication 1, caractérisé en ce que, pour la localisation dans le fichier des informa- tions à traiter, on enregistre dans au moins une ligne de la mémoire de commande des caractères spéciaux utilisés comme repères dans le fichier. 3. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que l'on enregistre dans au moins une ligne de la mémoire de commande des informations de com- mande relatives au boucles à effectuer pour les traitements correspondant à cette ligne de la mémoire de commande et l'on enregistre dans une mémoire, d'une part, des informa- tions relatives au nombre de boucles à effectuer pour les- dits traitements et, d'autre part, des informations rela- tives au saut à effectuer dans la mémoire de commande et éventuellement dans la table de référence lorsque ledit nombre de boucles a été effectué, et en ce que, au cours du défilement du fichier, on compte le nombre desdits traitements effectués correspondant à ladite ligne de la mémoire de commande et on exécute les opérations corres- - 41 - pondant auxdites informations relatives au saut lorsque le nombre de traitements effectués est égal au nombre de boucles enregistré. 4. Procédé selon l'une quelconque des revendica- tions l à 3, caractérisé en ce que l'on enregistre dans chaque ligne de la mémoire de commande une'information relative à l'enchaînement à réaliser éventuellement sur la table de référence lorsqu'ont été effectués les trai- tements correspondant à cette ligne de commande. 5. Procédé selon l'une quelconque des revendica- tions l à 4, caractérisé en ce que l'on enregistre dans au moins une ligne de la mémoire de commande des infor- mations relatives à la nature des opérations de rappro- chement et/ou de stockage à effectuer et, au cours du dé- filement du fichier, on saute d'une ligne à la suivante d'une zone horizontale de la table de référence lorsque la ligne correspondante de la mémoire de commande con- tient une information caractérisant une opération de rap- prochement à effectuer avec la ou les entités logiques de référence contenues dans cette zone horizontale du tableau. 6. Procédé selon l'une quelconque des revendica- tions l à 5, caractérisé en ce que l'on enregistre dans au moins une ligne de la mémoire de commande des informa- tions relatives à la structure des entités logiques sur lesquelles doit être effectué le rapprochement et/ou le stockage commandé par des informations de commande de cette même ligne de la mémoire de commande, et en ce que, au cours du défilement du fichier, on utilise les informa- tions de structure des entités logiques pour reconnaître la fin de chacune d'entre elles et commander, en consé- quence, l'initialisation ou la fin d'une opération de rap- prochement et/ou de stockage. 7. Procédé selon l'une quelconque des revendica- tions l à 6, caractérisé en ce que l'on enregistre, dans chaque ligne de la mémoire de commande comportant des in- formations de commande de rapprochement, des informations relatives aux résultats de référence pour les opérations de rapprochement effectuées en parallèle sur les entités logiques de référence situées dans la zone horizontale de la table de référence correspondant à cette ligne de la mémoire de commande. 8. Procédé selon la revendication 7, caractérisé en ce que l'on enregistre dans au moins une ligne de la mémoire de commande une information de commande relative au test à effectuer sur les résultats des opérations de rapprochement effectués, et, au cours du défilement du fichier, on commande la conservation ou l'effacement d'en- tités logiques issues du fichier et stockées en fonction d'un signal de commande produit en réponse à la lecture de ladite information de commande relative au test. 9. Dispositif pour la commande de rapprochements à effectuer entre des entités logiques de référence et des entités logiques issues d'un fichier, dispositif compor- tant une table de référence pour le rangement verticale- ment et horizontalement des entités logiques de référence, des opérateurs ayant chacun une entrée recevant les enti- tés logiques du fichier et une autre entrée pouvant rece- voir les éléments d'information contenus dans une colonne de la table, au moins une mémoire-tampon pouvant recevoir des informations issues du fichier, et une unité de com- mande du traitement à effectuer sur les éléments d'infor- mation du fichier, dispositif caractérisé en ce que - la table est partagée en plusieurs zones hori- zontales différentes par le rangement vertical, dans cha- que zone, d'entités logiques de référence de même type, rangement effectué dans l'ordre dans lequel les suites d'entités logiques à rapprocher se présentent, non néces- sairement de façon consécutive, dans le fichier, chaque à - 4.3 - zone horizontale de la table contenant des entités de référence de même type qui sont rangées dans cette zone à raison d'une entités par colonne, et - l'unité de commande comporte: une mémoire de commande pour le rangement, par ligne de mémoire, de pre- mières informations de commande comportant, d'une part, des informations de commande relatives au rapprochemet à effectuer entre des entités logiques de même type du fi- chier et des entités logiques de référence situées dans io une zone horizontale de la table correspondant à la ligne de la mémoire dans laquelle lesdites informations de com- mande de rapprochement sont enregistrées et, d'autre part, des informations de commande relatives au stockage d'en- tités logiques issues du fichier, et de secondes informa- tions de commande d'opérations à effectuer à la fin du ou des rapprochements réalisés avec une ou plusieurs entités logiques du fichier et/ou du stockage d'une ou plusieurs entités logiques du fichier; et un circuit de micro- commande relié à la mémoire de commande pour délivrer les signaux de commande correspondant aux premières et secon- des informations de commande. 10. Dispositif de commande selon la revendication 9, caractérisé en ce que l'unité de commande comporte un dis- positif de comptage comprenant: une mémoire pour le ran- gement, par ligne, d'informations relatives au nombre de traitements à effectuer sur des entités logiques suivant des informations de commande d'une ligne de la mémoire de commande correspondant à la ligne du dispositif de comp- tage, un compteur pour compter les traitements effectués et un dispositif de comparaison ayant des entrées reliées à la mémoire du dispositif de comptage et au compteur et une sortie reliée à des moyens de commande d'opérations à effectuer à la fin du traitement des entités logiques d'un sous-article du fichier, dont un saut dans la mémoi- re de commande et, éventuellement dans la table de référence. - 44 - ll.. Dispositif de commande selon l'une quelconque des revendications 9 et 10, dans lequel un dispositif de combinaison horizontale est prévu pour combiner les ré- sultats desdits opérateurs, caractérisé en ce que le dispositif de combinaison horizontale est constitué de modules connectés, aux sorties desdits opérateurs et au circuit de microtraitement, chaque module recevant des signaux relatifs à un code de combinaison des résultats fournis par deux opérateurs et comportant des premiers moyens pour valider les résultats de ces deux opérateurs lorsque lesdits signaux de code de combinaison ont une première valeur et des seconds moyens pour conditionner la validité d'un résultat transmis par un desdits deux opérateurs à la véracité du résultat transmis par l'au- tre, et réciproquement, lorsque lesdits signaux de code de combinaison ont une seconde valeur.