Brevet FR2289962A1 — publié le 19760528

ba présente invention concerne les systèmes informatiques, et plus particulièrement les systèmes qui permettent d'accéder seiectiveirent a' des informations contenues dans de grandes bases de données. On utilise de plus en plus les bases ou banques de données qui sont en général organisées en fichiers et en articles présentant des relations complexes. Des systèmes spécialisés ont été conçus pour restituer rapidement et efficacement les données qui composera de telles bases. Il est en outre souhaitable que le système soit à accès multiple, c'est à dire que plusieurs utilisateurs puissent l'interroger indépendamment. Jusqu'ici, pour manipuler les grandes bases de données on utilisait des ordinateurs universels convenablement programmés et associes à des mémoires de masse à disques ou bandes magnétiques. L'accès aux différents articles du fichier est basé sur un adressage de leurs emplacements "physiques" dans le système et sur l'emploi de divers index permettant de localiser des articles contenant des éléments d'information prédéterminés. Cependant, la création, l'emploi et la mise a' jour de ces index posent des problèmes considérables et compromettent le rendement du système. I1 est en outre extrêmement difficile d'obtenir par ce moyen une possibilité d'accès multiples à la base de données. Pour éviter ces problèmes d'indexation, on a proposé de localiser les articles d'un fichier d'après leurs contenus plutôt que d'apr leurs emplacements physiques. Ainsi, pour faire une recherche systématique dans un fichier, on prend tour à tour chaque article dont on examine un certain critère de recherche pour déter- miner si l'article doit être extrait ou traité d'une manière quelconque. La présente invention adonc pour objet un système informa tique de ce type. Le système informatique de l'invention comprend une mé- moire de masse, undispositif de lecture de son contenu sur plu- sieurs canaux parallèles, un dispositif de multiplexage temporel des canaux sur une voie unique, plusieurs unités de comparaison travaillant en parallèle sur les informations multiplexées pour effectuer des comparaison avec des "clés" prédéterminées, chaque unité de comparaison travaillant en temps partagé avec les différents canaux pour effectuer des comparaisons indépendantes sur les informations qu'ils débitent. Ainsi qu'on le verra, un tel système est capable d'effectuer une recherche systématique dans un fichier et d'en tester individuellement chaque article sur la base d'un critère de recherche qui est la combinaison logique des résultats d'un certain nombre de comparaisons élémentaires. Avec un nombre suffisant d'unités de comparaison, on peut soit effectuer une recherche sur un critère relativement complexe, soit effectuer simuitanément plusieurs recherches sur des critères simples. Les unités de comparaison travaillant en parallèle sur les flux d'information, les vitesses de traitement peuvent atteindre des valeurs très élevées. Grâce au multiplexage d'un certain nombre de canaux, cette vitesse de traitement est pleinement utilisée.Le multiplexage permet en outre de réduire le matériel nécessaire à la commande du système en faisant travailler les unités en temps partagé entre les différents canaux qui conservent une capacité de traitement indépendant. En raison de cette indépendance, les différents canaux peuvent travailler sur des fichiers complètement indépendants, ce qui permet d'effectuer des recherches simultanées pour différents utilisateurs et d'assurer une possibilité d'accès multiples au système. D'autres caractéristiques et avantages de l'invention ressortiront de la description détaillée qui suit et des dessins sur lesquels: la figure 1 est un schéma synoptique général du système informatique de l'invention qui comprend plusieurs mémoires à disques, une unité de multiplexage, des unités de comparaison, une logique de commande des unités de comparaison et une unité d'évaluation le recherche; la figure 2 représente schématiquement le format adopté poùr les fichiers sur disques; les figures 3 à 5 représentent l'unité de multiplexage; la figure 6 représente schématiquement le format d'enregistrement d'un article de fichier; les figures 7 à 14 représentent différents circuits de la logique de commande;; les figures 15 à 18 représentent différents circuits d'une unité de comparaison, ainsi que la logique commune à deux unités; la figure 19 illustre schématiquement un mode d'utilisation du système de l1invention; les figures 20 à 25 représentent différents circuits de l'unité d'évaluation de recherche. La figure 1 représente schématiquement un système informatique comprenant un certain nombre de mémoires de masse t comportant chacune un empilage de disques magnétiques et une série de têtes magnétiques capables de lire ou d'écrire des informations sur des pistes concentriques des faces de disque associées. Ces têtes de lecture-écriture sont positionnées radialement pour sélectionner des "cylindres" de pistes dans la pile de disques. Certaines unités de disques portent la lettre S et sont du type "monocanal", c'est à dire qu'une seule de leurs têtes est active à un instant donné. Les autres unités portant la lettre M sont du type "multicanal", c'est à dire que plusieurs de leurs têtes peuvent être actives simultanément pour fournir une série de sorties parallèles (dix canaux dans l'exemple illustré-). Les informations stockées dans les unités de disques 1 sont organisées logiquement en fichiers. Un fichier peut occuper un seul cylindre, plusieurs cylindres, ou même plusieurs unités de disques. Dans d'autres cas, plusieurs fichiers occupent le même cylindre. Chaque fichier est une séquence d'articles contenant normalement un certain nombre d'informations élémentaires. Pour prendre un exemple pratique, on peut dire que la liste des pièces tenues en stock par une entreprise constitue un fichier dont chaque article correspond à une pièce et contient des renseignements tels que numéro, prix, niveau de stock, date de livraison, etc.. Les canaux de lecture des unités de disques 1 sont tous appliqués à une unité de commutation 2 qui sélectionne jusqu'à douze de ces canaux et les applique aux douze entrées d'une unité de multiplexage 3. Dans l'unité de multiplexage, ces douze canaux d'inform.ation sont combinés par partage de temps en un signal multi plexé qui apparait sur une voie rapide 4. On remarquera que le signal multiplexé contient non seulement des données, mais égale- ment des infcrmatfons de commande qui sont présentes sur chaque piste de disque. On verra que grâce à ces informations, la même logique de commande peut traiter les douze canaux, ce qui représente une économie importante sur le plan du matériel. Chaque canal est cependant traité indépendamment des autres et aucune synchronisation n'est nécessaire entre les douze canaux multiplexés. En particulier, dans le cas où les canaux proviennent de faces de disques séparées d'une unité multicanal, il n'est pas nécessaire que les données lues soient alignées. De plus, les canaux multiplexés peuvent très bien provenir d'unités de disques différentes. L'unité de multiplexage 3 fournit également des signaux de commande permettant dtiaentifier les données qui circulent sur la voie rapide 5. Ces signaux de commande comprennent un numéro de canal et une adresse physique indiquant l'origine des données dans les mémoires à disques. Les données multiplexées transmises sur la voie principale 4 sont appliquées en parallèle à un groupe de seize unités de comparaison 5 (dont une seule est représentée). Ces unités partagent une logique de commande commune 6. Chaque unité de comparaison travaille en temps partagé avec les douze canaux de données et fonctionne indépendamment sur chaque canal. Pour un canal particulier, la séquence des opérations est la suivante: l'unité compare chaque zone de donnée élémentaire de la voie principale 4 à une clé mémorisée. Les résultats de ces comparaisons sont accumulés (par une fonction logique OU) et à la fin de l'article sont mémorisés par unité de comparaison. A la fin d'un article, les résultats mémorisés correspondants sont appliqués à une unité d'évaluation de recherche 7.Grâce à un programme enregistré, cette unité effectue des opérations logiques sur les résultats pour décider si l'article correspondant satisfait ou non à un critère de recherche spécifié. Pour que les résultats des comparaisons n'apparaissent pas plus rapidement que l'unité de recherche n'est capable de les traiter, une longueur minimale est spécifiée pour les articles (dans ce cas seize octets), et l'unité de recherche est conçue de manière que sa plus longue séquence d'évaluation ne dépasse pas en temps seize périodes d'octet Les données de la voie principale 4 accompagnées de leurs signaux de qualification sont également appliquées à une unité de restitution 10 qui permet de sélectionner certaines informations élémentaires dans les articles qui satisfont au critère de recherche. Du fait qu'un article n'est traité par l'unité de recherche 7 qu'après avoir été analysé, l'unité de restitution 10 doit comporter des registres tampons capables de mémoriser temporairement les éléments spécifiés dans l'attente du résultat de l'évaluation. Les informations extraites accompagnées de leur adresse physique sont transmises à un processeur de coordination 8. Ce processeur peut être un petit ordinateur gérant les différentes parties du système de l'invention. Le processeur 8 est en outre associé à une unité d'accès direct 9. qui fonctionne en parallèle et indépendamment du reste du système, et permet d'accéder directement à la base de données par l'intermédiaire de l'unité de commutation 2 qui sélectionne l'une des mémoire de masse 1. L'ensemble du système décrit jusqu'ici peut être considéré comme un périphérique d'un ordinateur central qui fournit des ordres généraux au processeur de coordination 8 en fonction des programmes utIlisateurs. La figure 2 illustre le format d'enregistrement des données dans les mémoires de masse 1. Chaque piste de disque contient quinze blocs régulièrement espacés et appelés zones de données DA. Chaque zone de données a une capacité de 384 octets d'information (caractères de huits bits). On notera que les zones DA ne colncident pas avec les articles de fichier précédemment définis, c'est à dire qu'une zone peut contenir plusieurs articles ou qu'un article peut s'étendre sur plusieurs zones de la même piste. Chaque zone de données est précédée d'un marqueur de neuf octets, appelé zone de comptage CA, qui identifie d'une manière unique la zone de données à l'intérieur de l'unité de disques. Ainsi, chaque zone de comptage comprend: a) un numéro de cylindre indiquant la position radiale de la piste, b) un numéro de tête indiquant la tête associée à cette piste, c) un numéro de zone (de O à 14) indiquant la position circonférentielle de la zone sur la piste définie. Chaque zone DA ou CA est immédiatement précédée par la séquence suivante: a) un "préambule" PA constitué de huit bits intégralement forcés à t ui sont utilisés pour la synchronisation des circuits d'horloge, b) une nargue d'adresse LM qui est une combinaison prédéterminée et unique de bits s'étendant sur sept octets et qui sert à repérer le début de la zone suivante de données ou de comptage, c) un octet de synchronisation S indiquant le type de zone (données ou comptage). Chaque zone DA ou CA est immédiatement suivie de deux octets de contrôle cyclique CC utilisés pour la vérification de la lecture correcte des informations de la zone associée. Le premier octet cyclique représente le résultat de la réunion logique exclusive d'un octet forcé à "1" avec chaque octet de rang impair de la zone, et le second octet cyclique représente le résultat de la réunion d'un octet forcé à "1 tut avec chaque octet de rang pair de la zone. Les zones hâchurées de la figure 2 représentent des intervalles ne contenant aucune information. Les figures 3 à 5 représentent les circuits de l'unité de multiplexage 3. Sur la figure 3, les données brutes des douze canaux sélectionnés par l'unité 2 sont appliquées à douze unités d'entrée CHO-CH11. A ce stade, le débit binaire des canaux est évidemment égal à la vitesse de lecture des pistes de disque, soit-2,5 megabits par seconde. La figure 4 représente l'une des unités d'-entrée de canal qui comprend un circuit 11 de démodulation des données brutes et d'extraction d?un -signal d'horloge. (Ce signal étant extrait des données, il n'est défini que pendant la lecture des zones effectivement enregistrées de la piste, et non pas dans les intervalles de séparation). Un sélecteur 13 permet de choisir soit l'horloge extraite des données, soit une horloge locale fournie par un oscillateur 14 (dont la fréquence est légèrement inférieure à celle de l'horloge extraite des données) pour servir d'horloge de base à 11 ensemble de I1 unité de canal. Cette horloge de base est appliquée à un diviseur par huit 15 qui convertit sa fréquence "bits" en une fréquence 1,octets". Les données démodulées sur la ligne 12 sont appliquées-à un détecteur de marque d'adresse 15 de type classique qui est conditionné pour reconnaître la combinaison unique d'octets constituant une marque d'adresse AM. Lorsque le circuit 16 détecte le début d'une telle marque d'adresse (à savoir un octet forcé à "0" suivant un octet forcé à "1"), il. émet un signal de reconnaissance appelé DEBUT. Les données démodulées sont également appliquées à un convertisseur série-parallèle 17 qui rétablit la forme parallèle des octets transmis bit par bit. La sortie du convertisseur 17 est appliquée à deux registres tampons B1 et B2 qui peuvent être des mémoires à accès direct d'une capacité unitaire de seize octets. Ces registres tampons sont validés tour à tour par un circuit bistable 19 connecté en diviseur par deux. Dans ce qui suit, le registre tampon validé sera appelé registre courant. Les sorties des deux registres tampons sont appliquées à un circuit sélecteur de données 20 qui est également commandé par le bistable 19 de manière que le contenu du registre non courant soit transmis à une ligne 21. L'adressage du registre tampon est également commandé par l'intermédiaire d'un circuit de commutation 18 fonctionnant de la manière suivante: le registre non courant est adressé par un signal à quatre bits AD. LECTURE transmis sur une ligne 22, alors que le registre courant est adressé par le contenu d'un compteur à quatre bits 23. Ce compteur est incrementé par le signal d'horloge octets du compteur 15. Le débordement du compteur 23 signifie que le registre courant est plein et sert à commander le basculement du bistable 19 pour échanger les rôles des registres tampons. Ce signal de débordement sert également à produire un signal DE}IA1DE sur une ligne 24, à condition toutefois qu'une porte ET 25 soit validée. En revenant à la figure 3, on voit que les lignes de demande 24 des douze unités de canal CHO-CH11 aboutissent à un sélecteur de canal 26 qui traite une par une les demandes en attente en appliquant un signal VALID. CANAL sur l'une des douze lignes, 27 qui aboutissent individuellement aux unités de canal. Le sélecteur de canal fournit également une séquence de signaux d'adressage AD. LECTURE numérotés de O à 15 et qui sont appliqués aux lignes d'adressage 22 des unités de canal pour commander la lecture séquentielle octet par octet de leurs registres tampons non courants. Le temps de lecture est 235 nanosecondes par octet. Comme indiqué sur la figure 4n le signal VALTD. CÀNAL conditionne dans l'unité de canal associée un groupe de portes logiques A permettant le transfert du contenu du registre tampon non courant sur une voie de sortie 29 capable de transmettre un octet en parallèle. Comme illustré sur la figure 3, les signaux des voies 29 sont combinés dans une logique OU câblée pour produire un signal multiplexé sur une voie de sortie commune 31 capable de transmettre un octet en parallèle. On remarquera que la vitesse de lecture des données dans les registres tampons est légèrement supérieure à douze fois leur vitesse d'écriture, La différence représente un intervalle libre d'un octet séparant les données des différents canaux pour que les parties suivantes du système aient le temps d'effectuer les commutations nécessaires d'un canal à l'autre. Ces intervalles permettent également d'absorber les légères fluctuations de la vitesse de rotation des disques qui peuvent entraîner de petites différences dans la vitesse de lecture des données. On notera également que l'ordre de multiplexage des canaux n'est pas nécessairement fixe, car il est établi par le sélecteur de canal en réponse aux signaux de demande, et non pas sur une base cyclique fixe. On voit sur la figure 4 que chaque unité de canal comprend un registre à décalage cyclique 32 à six étages servant de programmateur pour commander le fonctionnement de l'unité. A un instant quelconque, l'un des étages du registre contient un bit "1", tous les autres contenant des bits "O", ce qui donne six états successifs correspondant aux six régions du disque précédemment décrites (voir figure 2). CASYNC : Octet de synchronisation précédant une zone de comptage. CA : Zone de comptage. INTER : Intervalle suivant la zone de comptage. DASYNC : Octet de synchronisation précédant une zone de données. DA : Zone de données. DACC : Octets de contrôle cyclique suivant une zone de données. Le programmateur 32 est initialisé à l'état CASYNC avant la réception d'une marque d'adresse AM précédant une zone de comptage. Dans cet état, il valide le détecteur 16 qui repère le début de la marque d'adresse AM et émet un signal DEBUT. Ce signal sert à initialiser le compteur 23 à une valeur de huit et à valider le comptage direct. Au fur et à mesure de la progression du compteur, la marque d'adresse AM et l'octet de synchronisation S qui la suit sont chargés dans les octets 8 à 15 du registre tampon courant. Un signal DEMANDE est ensuite émis sur la ligne 24 pour que le sélecteur de canal commande la lecture du contenu du registre tampon. En même temps, un signal de débordement du compteur commande l'échange des rôles des registres tampons et le pas sage du programmateur 32 à l'état CA. En mode CA, le compteur 23 continue sa progression pour charger la zone de comptage CA et ses octets cycliques CC dans les étages 0-10 du registre tampon courant. Lorsque le comptage atteint dix, le sélecteur 13 passe sur le signal d'horloge interne et le comptage se poursuit jusqu quinze. Un signa ] DEMANDE est ensuite émis et le programmateur 32 passa à l'état INTER. En mode INTER, , le comptage se poursuit mais le signal DEMANDE est inhibé car la porte 25 est bloquée. De ce fait, aucune information, n'est lue sur la voie de sortie 29. La longueur de l'intervalle vide et la fréquence de l'horloge interne sont telles qu'au prochain débordement du compteur 23, le préambule PA précédent la marque d'adresse suivante commence à arriver du disque et fournit à nouveau l'horloge extraite des données. Le signal de débordement fait donc repasser le sélecteur 13 à l'état "horloge externe" et en même temps le programmateur avance à l'état DASYNC et le compteur 23 est inhibé. En mode DASYNC, le détecteur 16 est à nouveau validé et lorsque la marque d'adresse AM apparaît, il produit un signal DEBUT qui réinitialise le compteur 23 à huit et valide le comptage direct. Au fur et à mesure de la progression du compteur, la marque d'adresse et l'octet de synchronisation DA sont transférés dans les positions 8 a 15 du registre tampon courant. Au moment du débordement, un signal DEMANDE est émis et le programmateur 32 passe à l'état DA. EN mode DA, le programmateur est bloque dans son état courant par l'application d'un signal INHIBIT. DECAL. Dans ces conditions, le compteur 23 compte répétitivement de 0 à 15 pour transférer des groupes de seize octets consécutifs de la zone de données DA dans les registres tampons B1 et B2 tour à tour validés. Comme précedemment, un signal DEMANDE est émis à la fin du chargement de chaque groupe d'octets. Le signalINHIBIT.DECAL. est maintenu jusqu'au chargement du dernier groupe d'octets de la zone DA, après quoi il disparaît pour permettre l'avance du programmateur 32 à l'état A En mode DACC, le compteur 23 continue à progresser et transfer le eux octets cycliques CC dans les étages O et 1 du regis tr courant Lorsque le compteur arrive à un, il émet un signal qui commute le sélecteur 13 sur l'horloge interne. Le comptage se poursuit ensuite jusqu'au débordement, après quoi un autre signal DEMANDE est émis et le programmateur 32 est ramené à son état initial CASYs!C. En même temps, le sélecteur 13 commute à nouveau l'horloge externe et le compteur 23 est-inhibé. L'unité de canal est alors prête à la réception d'une nouvelle marque d'adresse et la séquence des opérations se reproduit identique à elle-même. En résumé, on voit que l'unité de canal permet de diviser les données transmises sur le canal correspondant en une série de groupes de 16 octets chacun. Chaque zone de données DA de 384 oc tets est partagée en 24 de ces groupes. Chaque marque d'adresse suivie de son octet de synchronisation occupe les octets 8 à 15 d'un groupe, les autres étant laissés vides. De mène, chaque zone de comptage suivie de ses octets de contrôle cyclique occupe les octets O à 10 d'un groupe, -les autres octets étant laissés vides, alors que les octets de contrôle cyclique d'une zone de données occupent les octets O à ' d'un groupe dont tous les autres octets sont vides. Comme indiqué sur la figure 4, les portes 28 autorisent le transfert de l'état du programmateur 32 à la réception drun signal VALID. CANAL pour fournir un signal ETAT CANAL qui est combiné par une fonction OU câblée avec des signaux similaires correspondant aux autres canaux. La figure 5 représente en détail le sélecteur de canal 26. Le sélecteur comprend un circuit de priorité 33 qui sélectionne l'un des signaux DEMANDE de service sur les lignes 24 et fournit le signal VALID. CANAL sur la ligne 27 correspondante. En même temps, l'identité du canal sélectionné est codée par un circuit 34 sous la forme d'un NO. CANAL à quatre bits. Le circuit de priorité 33 actionne ensuite un compteur à quatre bits 35 recevant les signaux d'une horloge 36 associée à la voie rapide. Le compteur 35 compte répétitivement de zéro à quinze et fournit une séquence de signaux AD. LECTURE pour lire un groupe de seize octets dans l'unité de canal sélectionnée. Lorsque le coepteur déborde il s'arrête et applique un signal au circuit de priorité 33 qui sélectionne la demande suivante. Le signal qui déclenehe la lecture d'un groupe d'octets est-appelé DEBUT GROUPE, alors que le signal de débordement qui marque la Din nu groupe d'octets est appelé FIN GROUPE. Le sélecteur de canal comprend également un compteur 38 qui compte le nombre de groupes lus dans une zone de données. Ce compteur est incrêmenté d'une unité à chaque signal DEBUT GROUPE lorsque le signal ETAT CANAL indique que le canal sélectionné est en mode DA. Pour tenir compte du multiplexage des canaux, le contenu du compteur 38 est rangé dans une mémoire à accès direct 39 qui est adressée par le signal NO. CANAL à la fin de chaque groupe d'octet et le compteur est rechargé à partir de la méirulre #u début de chaque nouveau groupe d'octets.Le comptage est dore to talement indépendant pour chaque canal. ? La sortie du compteur 38 est appliquée N un décodeur 41 qui détermine le moment où le comptage atteint vingt-deux pour le canal sélectionné, ce qui indique que l'avant dernier groupe d'octets d'une zone de données est en train d'être lu dans le registre tampon non courant de ce canal. Au même moment, le dernier groupe d'octets de la zone de données est écrit dans le registre tampon courant. La sortie du décodeur 41 est donc utilisée pour supprimer le signal INHIBAIT. DECAL. qui bloque le programmateur du canal validé. La sortie.du compteur 38 est appelée NO. GROUPE et fait partie de l'adresse physique qui qualifie les données circulant sur la voie principale 4. En revenant à la figure 3, on voit que le signal ETAT CANAL est utilisé de la manière suivante pour déterminer le traitement appliqué aux signaux de la voie 31. Lorsque le signal ETAT CANAL indiqué que le canal est en mode CA ou CASYNC, un comparateur 400 est validé pour comparer la zone de comptage CA et son octet de synchronisation S à la sortie d'une mémoire à- accès direct 401. Cette mémoire est divisée en douze zones correspondant aux douze canaux et sélectionnées par le signal NC. CANAL. Chacune de ces zones contient la valeur attendue de 11 octet de synchronisation de la zone de données, et de la zone de comptage qui correspond à la zone de données que l'on désire analyser. Si le comparateur 400 Indique qu'il n'y a pas coïncidence avec l'octet de synchronisation ou la zone de comptage, le pro- grammateur 32 du canal validé est réinitialisé à l'état CASYNC. Par contre > sile comparateur 400 détermine qu'il y a colnc-- dence pour la zone de comptage et son octet de synchronisation, un signal est envoyé au processeur de commande pour l'en informer. Le processeur met alors à jour la zone de la mémoire 401 en y transcrivant les détails de la prochaine zonedè comptage à détecter. De cette manière, l'ordinateur peut sélectionner n'importe quelle séquence de zones de données à rechercher par le système et cette sélection peut se faire indépendamment pour chaque canal. De plus, en mode CA, une autre mémoire à accès direct 402 est validée pour permettre l'enregistrement de l'octet qui circule sur la voie 31 et qui contient le numéro de la zone de comptage, dans l'emplacement de la mémoire 402 qui est adressé par le numéro de canal courant. Le contenu de cet emplacement adressé de la mé moire fournit un signal NO. CA qui fait partie (avec le NO. GROUPE) de l'adresse physique qualifiant les données sur la voie 4. Lorsque le programmateur sélectionne le mode DASYNC, le groupe d'octets de la voie 31 est transmis à un comparateur 42 qui compare le quinzième octet à une valeur fixe câblée pour déterminer s'il constitue bien un octet de synchronisation valable pour une zone de données. Dans le cas contraire, un signal d'erreur est envoyé au processeur de commande. En mode DA, les groupes successifs d'octets apparaissant sur la voie 31 sont transmis à la voie 4 (figure 1) et de là aux unités de comparaison 5. Les données de la voie 31 sont également appliquées à un générateur d'octets de contrôle 43 qui calcule des octets de contrôle pour chaque zone de comptage et ses octets de contrôle cyclique, et pour chaque zone de données et ses octets de contrôle cyclique. Les octets de contrôle ainsi créés sont normalement nuls. Une mémoire à accès direct 44 est associée au circuit 43. Cette mémoire, qui est adressée par le numéro du canal, sert à conserver l'état du circuit 43 à la fin de chaque groupe d'octets et à le recharger au début de chaque nouveau groupende defaçon que les octets de contrôle soient créés indépendamment pour chaque canal. En mode CA ou DACC, un comparateur 45 est validé pour que les octets de contrôle créés par le circuit 43 soient comparés à une valeur nulle câblée. S'il n'y a pas coïncidence en'mode DACC, un signal d'erreur est envoyé au processeur de commande. Par contre, s'il nty a pas concidence en mode CA, le programmateur de l'unité de canal validée est réinitialisé . ltétat CASYNC. On notera que les circuits de la figure 3 qui servent au traitement des zones de comptage, à la vérification des octets de synchronisation, etc., sont utilisés en temps partage par les douze canaux, ce qui réduit d'autant le matériel électronique néces saie. La ligure 6 illustre le format des. données à l'intérieur d'un article de fichier. L'article se compose d'une succession de segments contenant des données élémentaires constituées des éléments suivants: a) un octet d'identification I représentant la nature de la donnée élémentaire. Par exemple, dans le cas d'un fichier d'inventaire, l'identificateur I peut être un code signifiant "numéro de pièce", "prix", etc. b) ln octet de longueur L indiquant la longueur en octet du segment Slémentaire, y compris les octets I et L. cj une partie valeur V de longueur variable contenant la valeur effective de la donnée. Par exemple, dans le cas d'un identificateur I signifiant "numéro de pièce", la partie V contient le numéro de la pièce Chaque article se termine par un segment de queue constitué d'un identificateur spécial I ayant une valeur numérique comprise entre 240 et 255, et d'un octet de longueur L. Le tableau 1 ci-après illustre unexemple de fichier constitué d'un certain nombre d'articles. Pour plus de clarté, les segments élémentaires des articles sont représentés sur la même lice. Ies lettres X, Y, Z désignent les identificateurs et les symboles X1, Y1, Z1, etc. désignent les valeurs correspondantes. Ainsi, la notation X = X1 représente un segment dont l'identifi cateur est X et dont la valeur est X1. Les octets de longueur et les segments de queue n'ont pas été représentés. TABLEAU 1 Numéro article Segments 1 X = Xl Y = Yl Z = Z1 2 X = X1 Y = Y1 Z = Z2 3 X = X1 Y = Y1 Z = Z3 4 X = X1 Y = Y2 Z = Z4 On voit sur ce tableau que certains segments se répètent dans des articles consécutifs. Le segment X = X1 apparaît par exemple dansles quatre articles. Cette particularité se rencontre fréquemment dans les fichier informatiques.Ainsi, dans le cas d'un fichier d'inventaire, des articles successifs peuvent désigner des pièces qui font partie u même sous-ensemble, et ainsi de suite. Ainsi qu'on le verra plus loin, le système de la présente invention permet de mémoriser un tel fichier sous une forme plus compacte par l'élimination de segments qui sont identiques d'un article à l'autre. En mettant en oeuvre ce principe, on peut réécrire le fichier du tableau I sous la forme suivante: TABLEAU 2 Numéro article Segments 1 X = Xl Y = Y1 Z = Z1 2 Z = Z2 3 Z =.Z3 4 Y = Y2 Z = Z4 On voit que le nombre de segments effectivement mémorisés a été réduit de douze dans le tableau 1 à sept dans le tableau 2, ce qui représente une réduction sensible de l'espace mémoire nécessaire. Il est évident que pour pouvoir comprimer ainsi les données, il faut prévoir un rappel quelconque des informations omises d'un article à l'autre. Ainsi, dans l'exemple du tableau 2, il est indispensable de mémoriser les segments X = X1 et Y = Y1 de l'article 1 car ils doivent être traités comme s'ils étaient présents dans l'article 2 (voir tableau 1). Dans cet exemple, l'analyse du fichier doit obligatoirement commencer à l'article 1, sous peine d'erreurs. Si l'analyse commençait à l'article 2,: les segments X = Xl et Y = Y1 n'auraient pas été mémorisés et rien ne permettrait de savoir qu'ils doivent figurer dans l'article 2.Pour résoudre ce problème, l'invention prévoit d'utiliser des segments spéciaux appelés "points d'entrée", qui sort insérés de loin en loin entre les articles pour indiquer les endroits du fichier où l'analyse peut débuter sans erreur. Il est évident que les données du fichier sont arrangées de manière qu'aucun rappel d'information ne soit nécessaire au passage des points d'entrée, c'est à -dire que le pre mier article qui suit le point d'entrée ne doit comporter aucun segment omis. Le tableau 3 ci-après représente une partie d'un fichier non comprime. TABLEAU 3 Numéro article Segments 1 X = X2 Y = Y3 Z = Z5 2 X = X2 Z = Z6 3 X = X2 Z = Z7 Dans ce cas, on voit que le segment Y est réellement absent des articles 2 et 3. Au moment de la compresssion du fichier, il faut trouver un moyen d'empêcher la mémorisation du segment Y = Y3 à partir du premier article. as cet effet, on introduit un segment spécial "NUL" indiquant que le segment correspondant ne figure pas dans l'article. Avec cette convention, on pourrait réduire le fichier du tableau 3 sous la forme comprimée suivante. TABLEAU 4 Numéro article Segments 1 1 X = X2 Y = Y3 Z = Z5 2 Y = NUL Z = Z6 3 7 = Z7 Le segment nul peut être rappelé de la même manière qu'un segment normal, ce qui est le cas pour le troisième article cidessus. La figure 6 représente le format d'un point d'entrée qui ne comprend qu'un identificateur spécial dont l'octet a la valeur 1 et n'est accompagné ni d'un octet de longueur, ni d'une partie va est leur. Le format d'un segment nul/constitué d'un identificateur normal I suivi d'un octet de longueur 2, sans aucune partie valeur. Il existe également des segments fictifs dont l'identificateur a la valeur O qui peut être utilisée pour remplir des vides dans les zones de données. Comme on le verra plus loin, le système de l'invention peut fonctionner selon deux modes différents. Le premier mode ou mode normal permet de traiter uniquement des fichiers non comprimés du type de ceux des tableaux 1 et 3. Le second mode utilise le principe du "rappel" énoncé plus haut et le système peut effectivement fse souvenir" des résultats de comparaisons faites sur des segments pour traiter des fichiers comprimés comme ceux des tableaux 2 et 4. Les figures 7 à 14 illustrent en détail les circuits de la logique de commande 6 des unités de comparaison. La synchronisation de cette logique est assurée par un signal d'horloge maitresse HM qui est dérivé du signal d'horloge de la voie principale (figure 5). L'horloge HM n'est cependant présente que lorsque le signal ETAT CANAL indique que la voie principale 4 transmet une zone de données. Sur la figure 7, le circuit de la logique de commande comprend deux bascules de type D 110 et 111. Lorsque la bascule 110 est à l'état "un", elle fournit un signal IDENTIFICATEUR indiquant la présence d'un octet d'identification sur la voie principale 4. Lorsque la bascule 111 est à l'état "un", elle fournit un signal LONGUEUR indiquant la présence d'un octet de longueur sur la voie principale. La bascule 110 est initialement mise à l'état "un" par une porte OU 112 qui reçoit un signal DEBUT DA dérivé du signal ETAT CANAL (figure 3) et indiquant l'arrivée du premier octet d'une zone de données (toujours un identificateur j. Comme on le verra, la porte OU 112 réunit un certain nombre d'autres entrées capables de positionner la bascule 110 en réponse aux identificateurs sui vants. La bascule 110 est remise à I'état "zéro" par la première impulsion HM qui suit le retour au repos de la sortie de la porte OU 112. La bascule 111 reçoit le signal IDENTIFICATEUR d#e la bascule 110 et est mise à l'état "un" par la première impulsion HM qui suit ce signal à moins qu'elle ne reçoive simultanément un signal de remise à "zéro". La bascule 111 est remise à "zéro" à la première impulsion HM qui suit la disparition du signal IDENTI FICATEUR. Sur la figure 8, chaque octet de données reçu sur la voie principale 4 est appliqué à un décodeur 113 qui est sensible aux valeurs 0, 1 et 2. La sortie O du décodeur 113 est combinée avec le signal IDENTIFICATEUR dans une porte ET 114 pour positionner une bascule 100 qui fournit un signal de sortie FICTIF en réponse à un identificateur de ce type. De même, la sortie 1 du décodeur 113 est combinée avec le signal IDENTIFICATEUR dans une porte ET 115 pour positionner une bascule 101 qui fournit un signal de sortie POINT D'ENTREE en réponse à un identificateur de ce type. Les signaux FICTIF et POINT D'ENTREE sont appliqués à la porte OU 112 (figure 7) pour empêcher la remise à "zéro" de la bascule 110 à l'impulsion d'horloge suivante. Ceci est indispensable car l'octet suivant un identificateur fictif ou de point d'entrée est toujours un autre identificateur.Les signaux FICTIF et POINT D'ENTREE sont également appliqués après identification à l'entrée de remise à "zéro" de la bascule 111 de façon à interdire son positionnement car un identificateur .fictif ou de point d'entrée n'est jamais suivi d'un octet de longueur. La sortie 2 du décodeur 113 est combinée avec le signal LONGUEUR dans une porte ET 116 de façon à positionner une bascule 102 qui produit un signal de sortie NUL en réponse à un segment dont l'octet de longueur est égal à 2 (ce qui caractérise un segment nul). Le signal NUL est également appliqué à la porte OU 112 pour provoquer le positionnement de la bascule 110 à l'impul- sion d'horloge suivante, c'est à dire à l'arrivée de l'octet suivant qui sera obligatoirement l'identificateur du segment qui suit le segment nul. Sur la figure 9, chaque octet transmis sur la voie principale 4 est appliqué à un comparateur 103 ayant un seuil compris entre 240 et 255. Ce comparateur possède deux sorties "non infé rieurà"et "égal". L'une ou l'autre de ces sorties est sélectionnée par un bit de commande et appliquée à une porte ET 104 en même temps que le signal IDENTIFICATEUR. Lorsque la porte 104 est validée, sa sortie positionne une bascule 105 qui fournit un signal FIN ARTICLE Indiquant la détection de l'identificateur d'un segment de queue. La valeur du seuil indépendante pour chaque canal est fournie par une mémoire à accès direct 106 qui est adressée par le signal ro. CANAL. Le bit de commande est de même fourni par une mémoire à accès direct 109 qui est adressée par le signal NO. CANAL. En service, le processeur de commande charge dans la mémoire 109 les bits qui déterminent la sortie du comparateur 103 à utiliser pour chaque canal, et charge dans la mémoire 106 les valeurs de seuil correspondant à chaque canal. Les contenus de ces mémoires déterminent les identificateurs qui seront reconnus comme "identificateur de queue" pour chaque canal. Ainsi, si pour un canal particulier, le seuil est fixé a 248 et si la sortie "non inférieur à" est sélectionne, seuls les identificateurs compris entre 248 et 255 seront reconnu et donneront lieu à un signal FIN ARTICLE. On voit-donc qu'en changeant les contenus des mémoires 106 et 109, il est possible de modifier les frontières d'articles des fichiers. La figure 10 représente une partie de la logique de commande comprenant un compteur 17 qui est remis à zéro par le signal IDENTI- FICATEUR et qui est initial avec un octet pris sur la voie principale 4 sous contrôle du signal LONGUEUR. Le compteur est décrémente d'une unité à chaque impulsion d'horloge HM. résumé, le compteur 117 est initialement chargé avec l'octet de longueur du segment, puis décrémenré au fur et à mesure de l'apparition des octets successifs du segment.En conséquence, lorsque le compteur 117 revient à deux, le dernier octet du segment doit être présence sur la vole principale 4. Un détecteur 118 associe au compteur 117 détecte cet état et positionne une bascule 107 qui fournit un signal FIN SEGMENT. Le signal FIN SEGMENT est également appliqué à las porte OU 112 (figure 7) pour remettre la bascule 110 à l'état "un" à l'impulsion d'horloge suivante, c'est à dire à l'arrivée de l'octet suivant qui est I'identificateur du groupe suivant. En raison du multiplexage des données sur la voie principale est contenu du compteur 11.7 est rangé dans une mémoire à accès direct 108 à la fin de chaque groupe d'octets transmis. La mémoire 108 comporte douze emplacements adressés par le signal NO. CANAL pour que le contenu du compteur 117, qui est propre à chaque canal, soit récupérable. Au début de chaque nouveau groupe d'octets, le compteur 117 est initiaiisé avec le contenu de l'emplacement adressé de la mémoire 108. La partie de la logique de commande représentée sur la figure 11 comprend un autre compteur 119 dont la sortie fournit une adresse d'octet permettant d'accéder aux clés des, unités de comparaison 5, comme on le verra par la suite. Ce compteur est chargé avec une valeur de référence fournie par une mémoire à accès direct 120 lorsqu'un signal IDENTIFICATEUR apparaît. La mémoire 120 est adressée par le signal NO. CANAL pour permettre d'utiliser une valeur de référence différente pour chaque canal. En raison du multiplexage des données, le contenu du compteur 119 est rangé dans une mémoire à accès direct 121 adressée par le signal NO. CANAL, à-la fin de chaque groupe d'octets, et le compteur 119 est rechargé au début de chaque nouveau groupe d'octets. Dans le circuit de la figure 12, le signal POINT D'ENTREE positionne à 11 état "un" une bascule 122 qui est ultérieurement remise à 11zéro" par le#signal FIN ARTICLE. On voit donc que la sortie active de la bascule 122 marque le premier article suivant un point d'entrée. Le mode de fonctionnement du système est déterminé par un signal MODE qui est haut en mode normal et bas en mode rappel Ce signal est dérivé d'un registre 124 dont les emplacements de bit sont adressables individuellement par le signal NO. CANAL. Ainsi, certains canaux peuvent être traités en mode normal, alors que les autres sont traités en mode rappel. La sortie de la bascule 122 et le signal MOIW sont plius à une porte OU 125 dont la sortie est le signal RAPPEL. Ce sigrsal indique aux unités de comparaison si elles doivent ou non morrrer les résultats. En mode normal, le signal RAPPEL est toujours haut et en mode rappel il est toujours bas, sauf pour le premier article suivant un point d'entrée qui ne nécessite par définition aucune mémorisation, comme expliqué plus haut. La logique de commande illustrée sur les figures 7 à 12 utilise un certain nombre de bascules 110, 111, 100, 101, 102, 105, 107 et 122 qui contiennent des informations de commande relatives à un canal de données particulier. En raison du multiplexage des canaux, les états de ces bascules doivent être rangés à la fin de chaque groupe d'octets d'un canal particulier, et remplacés pardes informations correspondant au canal suivant dans l'ordre de multiplexage de la voie principale. La figure 13 illustre un dispositif permettant de réaliser ces échanges d'informations. Une mémoire à accès direct 126 comportant douze emplacements de mots est adresséepar le signal NO. CANAL. A l'apparition d'un signal FIN GROUPE, les états des bascules mentionnées plus haut sont transcrits dans le mot adressé de la mémoire 126.Inversement, à l'apparition d'un signal DEBUT-GROUPE, le contenu du mot adressé est transféré dans les bascules avant le début du premier octet du groupe. La figure 14 représente une logique de commande fournissant une série de signaux d'horloge appelés Ht, H2 et HA, HB, HC. Les horloges Hi et H2/aeOrnitvées de l'horloge maîtresse HM au moyen d'une ligne à retard 127 dont la sortie H2 est retardée par rapport à la sortie H1. L'horloge HA est dérivée de H2 par une porte ET 128 qui est bloquée si le signal LONGUEUR est présent. L'horloge HB est dérivée de H1 par une porte ET 129 qui est bloquée pendant la réception des octets d'identification et de longueur. L'horloge HC est également dérivée de H1 par une porte ET 130 qui n'est validée que lorsque le signal LONGUEUR est présent.Un troisième signal appelé PRESELECTION est dérivé de H1 par une porte ET 131 qui n'est validée que lorsque le signal IDENTIFICATEUR est présent. Les figures 15 et 16 représentent en détail l'une des unités de comparaison (5 sur la figure 1). Sur la figure 15, chaque unité de comparaison comprend une mémoire à accès direct 230 appelée "mémoire de clés" qui contient les valeurs des clés à utiliser pour la comparaison des données reçues su la vcie principale i. Chaque mémoire de clés a une capacité de 256 octets accessibles à l'aide de l'adresse d'octet fournie par la logique de commande. Le format d'une valeur de clé est identique à celui d'une zone de données de la figure 6, c'est à dire qu'il comprend un octet d'identification, un octet de longueur et une partie valeur de longueur variable. Chaque# mémoire de clés peut contenir plusieurs'valeurs rangées dans des emplacements d'octet séquentiels à partir d'une adresse de référence qui correspond à l'une des adresses contenues dans la mémoire de référence 120 (figure 11). On voit donc qu'à la réception d'un segment de donnée d'un certain canal sur la voie principale 4, une valeur de clé correspondant au canal est lue dans la mémoire 230 de chaque unité de comparaison. La clé est extraite octet par octet en synchronisme avec la réception du segment de donnée, c'est à dire que l'octet d'identification de la clé est lu au moment où l'identificateur du segment de donnée est reçu,#et ainsi de suite. Chaque unité de comparaison comprend également une autre mémoire à accès direct 229 appelée "mémoire de masques", qui est également accessible à l'aide de l'adresse d'octet. La sortie de cette mémoire est combinée dans plusieurs portes ET 228 avec l'octet de donnée qui est reçu sur la voie 4 et le résultat est appliqué à l'une des entrées d'un comparateur 231 dont la seconde entrée reçoit un octet de clé de la mémoire 230. Le masque permet ainsi de'ignorer sélectivement certaines parties d'un segment de donnée. En service, les mémoires 229 et 230 sont chargées et modifiées à volonté par le processeur de commande. Le comparateur 231 recevant les deux octets mentionnés plus haut fournit l'un de trois signaux possibles selon que le premier octet est supérieur, inférieur ou égal à l'autre octet. Dans le circuit de la figure 16, au début de chaque segment, le signal PRESELECTION positionne une bascule de verrouillage 232. En même temps, l'identificateur du segment est comparé à l'identificateur correspondant de la clé. Si les deux octets ne coincident pas, une porte ET NON 227 est validée par l'inverse de la sortie "égal" du comparateur 231 pour transmettre l'horloge HA à entrée de remise à "zéro" de la bascule 232 qui conserve cet état jusqu'à l'apparition du segment suivant. Ceci marque la fin de la comparaison pour le segment en cours de traitement. Par contre, s'il y a coincidence entre les identificateurs, la bascule 232 reste à l'état "un" et la comparaison se poursuit. L'octet de longueur est ignoré car l'horloge HA est supprimée, mais si l'un quelconque des octets de la partie valeur du segment ne coincide pas avec 11 octet correspondant de la clé, la bascule 232 est remise à "zéro" par l'horloge HA. Avant cela, la sortie du comparateur 231 (supérieur ou inférieur) est conditionnée par l'horloge HE dans des portes ET NON 233 et 234 associées à des bascules de verrouillage 235 et 236. Dans le cas où il y a coincidence parfaite entre les deux valeurs séparées, la bascule 232 reste à l'état "un" et-à la fin du segment la sortie du comparateur est toujours "égal". Ces signaux valident une autre porte ET NON 237 positionnant une bascule de verrouillage 238.Les bascules 235, 236 et 238 sont appelées collectivement bascules de segment" et sont remises à "zéro" ensemble au début du premier article et â la fin de chaque article en vue du traitement de l'article suivant. On notera que les horloges HA et HB sont supprimées pendant la réception de l'octet de longueur L de chaque segment pour inhiber sa comparaisom qui ne doit pas affecter les bascules 232, 235, 236 et 238. Le fonctionnement des parties décrites jusqu'ici de l'unité de comparaison peut être résumé comme suit: l'octet d'identification de chaque segment est initialement comparé à celui de la valeur de clé mémorisée. Cette comparaison se répète pour chaque segment de l'article et à la fin de celui-ci, si aucun des segments n'a donné de coïcidence au niveau de son identificateur, les @@@@@@@- les de segment sont toutes à l'état "zéro". Ceci signifie que le type de segment en question ne figure pas dans l'article examiné. Cependant, si l'identificateur de l'un des segments (autre qu'un segment nul) donne lieu à une coïncidence, la partie valeur de ce segment est comparée à celle de la clé. Le résultat est mémorisé dans les bascules de segment et conservés jusqu'à la fin de l'article. On notera que la longueur de chaque comparaison (c'est à dire le nombre d'octets lus dans la mémoire de clés et comparés a ceux du segment de données) est fixée par l'indicateur de longueur L du segment car cet octet détermine l'instant d'apparition du signal de @@ de segment. Ainsi, si la longueur de la clé mémori- sée est huit octets et si la longueur du segment n'est que de six octets. seuls @@@ six octets de la clé seront pris en considération pour la comparaison, les deux derniers étant ignorés. Une bascule 239 faisans également partie des bascules de segment *-5- remise à zéro t à àla fin de chaque article et mise à "un" lorsqu'apparaît un segment nul dont l'identificateur coïncide avec celui de la clé de sélection. Ceci est réalisé à l'aide d'une porte ET NON 240 qui reçoit la sortie directe de la bascule 232, l'horloge HC et le signal NUL de la logique de commande. Les états des bascules 232, 235,#236, 238 et 239 de l'unité de comparaison sont rangés dans une mémoire à accès direct semblable à celle de la figure 13 à la fin de chaque groupe d'octets, et rechargés au début de chaque. nouveau groupe. Lorsque la bascule 239 est à l'état "zéro", trois portes ET 241, 242 et243 sont validées pour transmettre l'état des bascules desegment à l'entrée d'une mémoire à accès direct 244. La mémoire 244 a une capacité de douze mots de trois bits chacun adressés par le signal NO. CANAL. La sortie du mot adressé est appliquée à l'unité d'évaluation de recherche (UER) et représente les comparaisons effectuées. L'entrée de validation d'écriture de la mémoire 244 est reliée à la sortie d'une porte ET 247 dont une entrée reçoit le signal FIN ARTICLE de la logique de commande et dont l'-autre entrée reçoit la sortie d'une porte OU 248 à cinq entrées. Les quatre premières entrées de la porte 248 sont reliées aux sorties directes des bascules 235, 236, 238 et 239, et la cinquième entrée reçoit le signal RAPPEL de la logique de commande. La sortie de la porte 27 est également utilisée, après inversion, pour la remise à "zéro" des bascules 245, 236, 238 et 239 à la fin de chaque article. Les deux modes de fonctionnement de l'unité de comparaison vont maintenant être décrits. En mode normal, le signal RAPPEL est toujours haut comme indiqué précédemment. La porte OU 248 reçoit donc toujours au moins un signal "1 't et la porte ETE 247 est donc validée à la fin de chaque article pour appliquer un signal d'autorisation à l'entrée d'écriture de la mémoire 244. Ce mode n'utilisant pas les segments nuls, la bascule 239 reste à l'état "zéro" et les portes ET 241, 242 et 243 sont validées. En résumé, la mémoire 244 est mise à jour à la fin de chaque arti cle par le transfert des contenus des bascules de seg ment 235, 236 et 239. En mode rappel, le signal RAPPEL est haut pendant le pr- mier article qui suit un point d'entrée, de sorte que la mémoire 244 est normalemert mise à jour. Cependant, pour les articles suivants, le signal RAPPEL est bas. Si une coïncidence est obtenue pour l'identificateur d'un segment quelconque d'un article, 1 ' une des bascules 235, 236, 238 (ou la bascule 239 si le segment est nul) est positionnée, de sorte la porte OU 248 est quand même validée. Dans ces conditions, la mémoire 244 est toujours mise à Jour à la fin de l'article. (Dans le cas d'un segment nul, les portes 241 à 243 sont bloquées et la mémoire est mise à jour à zéro, ce qui signifie que le segment en question n'est pas présent). Par cotr, si aucune coincidence d'identificateur n'est obtenue pendant 1 lyse de l'article, les bascules 235, 236, 238 et 239 restent à l'état "zéro" et la porte OU 248 ne fournit pas de sortie capable de valider la porte ET 247. La mémoire 244 n'est donc pas mise à jour et conserve le résultat de la comparaison de l'article précédent.Ainsi, pour l'unité d'évaluation de recherche, l'unité de comparaison fournit exactement la même sortie que si le segment qui a donné lieu à une coïncidence d'identificateur dans un article précédent, était répété dans l'article en cours de traitement. On voit donc que le mode de rappel permet d'effectuer une recherche associative sur un fichier comprimé, tel que celui des tableaux 2 et 4, avec les mêmes résultats que s'il était traité sous sa forme non comprimée des tableaux 1 et 3. Le système permet également de comparer deux segments d'un même article dont les identificateurs sont différents. Cette possibilité est par exemple avantageuse dans un système de gestion de comptes pour comparer les dépenses totales d'un client à la limite de son crédit personnel. Ce mode de fonctionnement que l'on appelle 1,recherche-substitution" utilise deux unités de comparaison, arbitrairement appelées A et B, dont les mémoires de clés sont initialement chargées avec les identificateurs des deux segments que l'on veut comparer. Le mode recherche-substitution est commandé par la logique de la figure 7 qui est associée aux deux unités de comparaison A et B. Dans la pratique, il est avantageux d'implanter la logique commune et les deux unités de comparaison sur une même carte à circuit imprimé. Sur la figure 17, la logique de recherche-substitution comprend deux bascules de type D 250 et 251 qui sont périodiquement par la sortie d'une porte ET 252 recevant le signal LONGUEUR et l'horloge Hî La bascule 250 reçoit à son entrée de mise à "un" la sortie de la bascule 232 (figure 16) de l'unité de comparaison A, et ce signal est appelé 'tPRESENT (A)". De même, la bascule 241 reçoit une signal correspondant T'PRESSENT (B)" de l'unité de comparaison B. Le mode recherche-substitution est déclenché par un signal SUBSTITUIION appliqué à deux portes ET 253 et 254 avec l'horloge HB. Les portes 253 et 254 reçoivent également les sorties directes des bascules 250 et 251. Les- sorties des portes 253 et 254 sont des signaux de validation d'écriture respectivement VE (B) et VE (A). On voit sur la figure 18 que le signal VE (A) est appliqué à une porte NI 255 dont la sortie est reliée à la borne de validation d'écriture VE de la mémoire de clés 230 de l'unité 4. Ces signaux permettent d'écrire dans la mémoire 230 des données de la voie principale 4 à travers une porte OU 256. (L'autre entrée de la porte NI 255 est un signal MAJ indiquant que la mémoire doit être mise à jour par le processeur dont les nouvelles informations sont appliquées à la porte OU 256 sur une ligne 257 en l'absence de données sur la voie principale). Le signal VE (B) est appliqué d'une manière similaire à la mémoire de clés de l'unité B. En revenant à la figure 17, on voit que les sorties des bascules 250 et 251 sont également appliquées aux portes ET NON 258 et 259 qui reçoivent aussi le signal SUBSTITUTION et le signal PRESELECTION. Les sorties des portes 258 et 259 sont appliquées à des bascules de type D 260 et 261 dont les sorties directes sont appliquées à des portes NI 262 et 263. Ces portes reçoivent également un signal d'une porte ET 254 dont les entrées sont le signal SUBSTITUTION, le signal LONGUEUR, l'horloge H2 et les inverses des sorties des bascules 260, 261. Les sorties des portes NI 262#et 263 sont utilisées pour la remise à "zéro" des bascules 232 (figure 16) des unités respectives A et B. Le fonctionnement du système en mode recherche-substitution va maintenant etre décrit. Au début de chaque article, les bascules 250, 251, 260 et 261 sont remises "zéro" par l'inverse du signal FIN ARTICLE. Si l'on suppose qu'une coincidence d'identificateur est d'abord détectée par l'unité A, la bascule 250 est d'abord positionnée à l'horloge Hi de l'octet de longueur suivant. La porte ET 253 est ainsi validée et fournit une séquence de signaux VE (B) corres pondants aux impulsions HB, pour que la partie valeur du segment transmis par la voie principale 4 soit chargée dans la mémoire de clés de l'unité B. Les bascules 260 et 261 étant à "zéro", la porte ET 264 sera validée par L'horloge H2 pendant la durée de l'octet de longueur et validera les portes NI 262 et 263 pour provoquer la remise à "zéro" de la bascule 232 de l'unité A. Ceci interdit toute nouvelle comparaison de ce segment dans l'unité A. Au début du segment suivant, le signal PRESELECTION est appliqué aux portes 258, 259 et, du fait que la bascule 250 est encore à l'état "un" à ce point, la porte 258 est validée et fait passer la bascule 260 à l'état "un" jusqu'à la fin de l'article. La porte 262 est validée et inhibe toute nouvelle détection d'une coïncidence d'identificateur par l'unité A nusqulau début de l'article suivant. La bascule 25Oest remise à "zéro" par l'impulsion suivante de l'horloge H1 pour empêcher la production, d'autres signaux VE (B). On suppose maintenant qu'une coincidence d'identificateur est détectée par l'unité B pour un-segment suivant du même art cle. @@@ comparaison est faite de la valeur contenue dans la mémoire de clés de l'unité B et la partie valeur de ce segment. Le résultat de la comparaison est rangé normalement dans les bascules de seg rent de l'unité B. Au moment où l'unité B détecte une coincidence d'identi- ficateur, la bascule 251 est positionnée pour produire le signal rn (A) qui permet l'écriture du second segment dans la mémoire de l'unité A. Cependant, ceci n'est fait que pour conserver la symétrie des circuits et en pratique la valeur mémorisée n'est pas utilisée car l'unité A est inhibée. La bascule 261 est positionnée à la fin du Segment pour produire un signal RAZ (B) qui bloque les comparaisons de l'unité B de la fin de l'article. Ainsi, à la fin de l'article, la mémoire 244 de l'unité A (la première qui a obtenu une ceincidence d'identificateur) est mise à jour avec une Indication "non présent" (c'est à dire tout à zéro), alors que la mémoire 244 de l'unité B est mise à jour avec le résultat de la comparaison des deux valeurs de segment. Les contenus de ces mémoires sont ensuite transmis à l'unité d'évaluation de recherche, comme décrit précédemment. Il est évident qu'en raison de la symétrie du circuit de la figure 17 par rapport aux unités A et B, un résultat identique aurait été obtenu si la première coïncidence d'identificateur avait été détectée parl'unité 3. Dans ce cas, l'unité B donnerait l'indi- cation "non présent" et l'unité A donnerait le résultat de la comparaison des valeurs. Pour tenir compte du multiplexage des données, les contenus des bascules 250, 251, 260 et 261 sont rangés dans une mémoire à accus direct à la fin de chaque groupe octets, comme décrit pré cédemment dans le cas de la figure 13. Il fut remarquer qu1en pratique la synchrônisation des unités de comparaison et de la logique associée est retardée d'une période d'octet par rapport à celle de l'unité de multiplexage pour tenir compte des délais de propagation des signaux et autres causes de retards. En conséquence, les signaux de commande NO. CANAL, DERUT GROUPE et FIN GROUPE qui sont transmis de l'unité de multiplexage aux autres unités du système doivent être retardés de cette valeur. En outre, compte tenu des délais de propagation, le signal NO. CANAL appliqué à la mémoire 244 (figure 16) doit être retardé d'environ 1,5 période d'octet. L'emploi des mémoires de clés des unités de comparaison va maintenant être illustré à l'aide du tableau de la figure 19. Sur cette figure, les mémoires de clés des seize unités de comparaison sont représentées cote à côte, chaque colonne correspondant à une mémoire. On suppose que les informations traitées proviennent de quatre fichiers différents auxquels correspondent des ensembles différents de valeurs de clés. Quatre valeurs de référence DO-D3 sont donc chargées dans la mémoire de référence 120 (figure 11). Ces valeurs permettent de "cloisonner" les mémoires de clés en quatre zones (par nécessairement de la même taille) et qui correspondent aux quatre fichiers de la figure 19. Chaque mémoire de clés peut ainsi contenir quatre valeurs (chaque petit rectangle de la figure 19 représente un emplacement de clé). En plus de ce cloisonnement horizontal, on peut considérer que les unités de comparaison sont également cloisonnées verticalement en groupes. Dans cet exemple, les unités sont. groupées par quatre, comme indiqué par les traits verticaux épais. Chaque groupe d'unités peut être alloué à une tâche de recherche séparée sur les memes fichiers. On voit donc qu'avec le cloisonnement horizontal et vertical de la figure 9, il est possible d'exécuter simultanément seize tâches de recherche distinctes, à raison de quatre tâches par fichier. On remarquera que le groupage des unités de comparaison dépend de la manière dont l'unité d'évaluation de recherche traite les résultats des comparaisons. L'unité d'évaluation de recherche (UER) va maintenant être décrite an détail en regard des figures 20 à 25. Sur la figure 20, on voit que LOUER comprend seize éléments de traitement P(O) à P(15) correspondant individuellement aux seize unités de comparaison. Les éléments de traItement sont associés à une unité commune de commande 300, à une unité de fonction de sélection 301 et à une unité de fonction quorum 302. Comme indiqué, chaque élément de traitement peut transférer des données à l'été ment suivant de la série. (Le dernier élément de la série peut être relié au premier pour former une boucle fermée). La figure 21 illustre la structure de l'un des éléments de traitement P(N) qui comprend trois bascules 303, 304 et 305 destinées à recevoir les indications de relation (supérieur, égal, inférieur) de la mémoire 244 (figure 16) de l'unité de comparaison associée Ces résultats sont introduits dans les bascules par un signal appelé DEBUT EVALUATION. L'élément de traitement comporte une mémoire d'instructions 306 capable de contenir une ou plusieurs séquences de microinstructions à neuf bits, jusqu'à un total de 32 microinstructions. La longueur maximale d'une séquence donnée est quinze microinstructions. Cette limitation tient au fait que la plus longue séquence doit être exécutable en moins de seize périodes d'octet (longueur minimale d'un article). Les microinstructions sont lues une par une dans la mémoire 306 à des adresses fournies par l'unité de commande 300, et sont transférées dans une unité logique 307. La sortie de l'unité 307 est un signal binaire R(N) qui peut être mémorisé par une bascule 308 appelée "mémoire de résultat". L'unité logique reçoit à ses entrées les états des trois bascules 303 à 305, la sortie S(N) de la mémoire de résultat et la sortie r?(N-1) de l'unité logique de l'élément précédent P(#-i). La figure 22 illustre en détail les circuits de l'unité logique 3G7. Pour simplifier, les neuf bits de la microinstruction courante seront représentés par les symboles bits9, et tes sorties des bascules 303 à 305 seront représentées par les symboles mathé matiques tl > fs in L'unité logique a deux modes de fonctionnement. Dans le premier mode déterminé par b = O, la sortie r?(N) est la suivante: b8, b9 R(N) 00 S(N) AND X 01 X 10 S(N) Il S(N) OR X X étant une fonction OU des indications de relation des bascules 303-305. La nature exacte de cette fonction OU est déterminée par bits3. De plus, si b4 =#1, la sortie SELECT de l'unité de fonction de sélection est incluse dans cette fonction OU. Dans le second mode déterminé par b5 = 1, la sortie R(N) est la suivante: bl, b2 R(N) 00 S(N) AND R(N-1) 01 S(N) 10 R(N-1) 11 S(N) OR R(N-1) Si b7 = 1, le résultat R(N) est inscrit dans la mémoire de résultat, et si b6 = 1, la sortie S(N) de cette mémoire est inversée (voir figure 21). La figure 23 représente l'unité de fonction de sélection 301 qui comprend une mémoire à accès direct 309 d'une capacité de trente-deux mots d'instruction adressables individuellement par l'unité de commande 300. Chacun de ces emplacements contient une adresse désignant l'un des éléments de traitement P(N) et son décodage permet de choisir la sortie S(N) de cet élément comme signal de sortie SELECT. Ce signal est appliqué à tous les éléments de traitement, comme expliqué plus haut en regard de la figure 22. On voit que l'unité de sélection 301 permet de transférer une information de la mémoire de résultat de l'élément de traitement sélectionné à l'unité logique de n'importe quel autre élément. La figure 24 illustre l'unité de fonction quorum qui comprend une mémoire à accès direct.310 d'une capacité de trente-deux mots d'instruction accessibles à l'aide de l'ADRESSE INSTRUCTION. Cette unité comprend également un multiplexeur 311 qui choisit l'une des sorties S(O)-S(15) des éléments de traitement d'après le contenu d'un compteur à quatre bits 319. En fonctionnement, chaque séquence de microinstructions est exécutée par les éléments de traitement et une séquence correspondante d'emplacements de la mémoire 310 est adressée. Le premier emplacement de la séquence contient une valeur de seuil à sept bits et les autres emplacements contiennent un ensemble de valeurs de pondération. Pendant l'exécution de la première microinstruction de la séquence, la valeur de seuil lue dans la mémoire 310 est chargée dans un registre 312. L'adresse d'instruction est ensuite incrémentée,le compteur 319 est remis à zéro et le multiplexeur 311 est validé. - X exécution de la microinstruction#suivante, la première valeur de pondération est extraite de. la mémoire 310 et le multiplexeur 311 sélectionne simultanément la sortie S(O). Si S(O) = 1, plusieurs portes ET 313 sont validées pour transférer la valeur de pondération dans un registre accumulateur 314 où elle s'ajoute au contenu de l'accumulateur (qui est initialement mis à .éno). Ce processus se répète pour chaque adresse sucsessive, de sorte que les sorties S(0), S(1), S(2), etc. sont tour à tour combinées par une fonction logique ET avec les valeurs de pondération correspondantes et additionnes au total contenu dans l'accwiiula- teur 314. Le total accumulé est constamment comparé à la valeur de seuil contenue dans le registre 313 par un comparateur 315 qui fournit le signal QUORUM dès que le total dépasse le seuil. On voit sur la figure 23 que ce signal est utilisé par l'unité de fonction de sélection comme s'il s'agissait d'un résultat S(0)-S(15). Ls fonction quorum donne la possibilité d'additionner une série de résultats pondérés des éléments de traitement individuels pour déterminer si le total ais obtenu dépasse u certain seuil. Tous les éléments de traitement ne contriBuent pas nécessairement à la somme car les résultats de ceux dont la valeur de pondération est nulle sont ignorés. On notera que chaque mémoire de résultat doit avoir été convenablement chargée avant d'être utilisée par la fonction quorum. Ainsi, la séquence d'évaluation pour l'élément de traitement P(N) doit avoir une durée ne dépassant pas celle de N+1 micrsinstructions. Par exemple, la séquence d'évacuation de l'élément de traitement P(0) est limitée à une microinstruction. En outre, du fait que la fonction quorum dure l'équivalent de N+1 microinstructions pour évaluer ier sorties de li éléments de traitement, la sortie QUORUM de ces N élements ne peutêtre utilisée qu'au terme de (N+2) micro- instructions de l'unité de fonction de sélection 301. Pour illustrer l'emploi de la fonction quorum, on suppose qu'il est nécessaire de déterminer si les résultats des évaluations effectuées par quatre des huit premiers éléments de traitement sont vrais. Les poids applicables à ces huit éléments sont tous égaux à un, les autres étant nuls, et la valeur du seuil est fixée à trois. Dans ce cas, l'évaluation de la fonction Quorum dure neuf microinstructions et la sortie QUORUM peut être demandée par la dixième microinstruction de la fonction de sélection. La figure 25 représente l'unité de commande 300 ui comprend une mémoire à accès directe 316 adressée par le NO. CANAL, et dont chaque emplacement contient L'adresse de début d'une sequence de microprogramme correspondant au canal en question. Chaque emplacement contient également une longueur de séquence. Le fonctionnement de l'unité de commande est déclenché par un signal FIN ARTICLE qui (à condition que l'UER ne soit pas déjà occupée) provoque le chargement de l'adresse de départ du canal en question dans un compteur d'instructions 317, et le chargement de la longueur de séquence correspondante dans un compteur 318. Le compteur d'instructions est ensuite incrementé pour fournir une séquence de signaux ADRESSE INSTRUCTION qui sont appliqués aux éléments de traitement, à l'unité de fonction de sélection 301 et à l'unité de fonction quorum 302. En même temps le compteur de longueur 318 est décréments et, lorsqu'il revient à zéro, il fournit un signal PRET marquant la fin de la séquence.Ce signal indique à l'unité de restitution 10 (figure 1) que l'évaluation des résul- tats pour l'article en question est maintenant terminée et qu'ils sont disponibles dans les mémoires de résultat des éléments de traitement. L'unité d'évaluation de recherche qui comprend un certain nombre (16) d'éléments de traitement travaillant en parallèle, a une puissance de traitement considérable car elle peut effectuer plusieurs opérations différentes pour chaque pas de microinstruc- tion. De bits, les éléments de traitement peuvent être assemblés en groupe effectuant chacun une tâche d'évaluation distincte. Ainsi, dans l'exemple de la figure 19, les éléments de traitement sont arrangés en groupes de quatre évaluant séparément des relations entre les groupes correspondants des mémoires de clés. Dans cet exemple, chaque élément de traitement contient quatre séquences de microinstructions, une pour chacun des quatre fichiers correspondant aux divisions horizontales du tableau de la figure 19. Il va de soi que la description précédente n'est nullement limitative et qu'on pourra y apporter diverses modifications ou variantes entrant dans le cadre et dans l'esprit de l'invention. Par exemple, le nombre de canaux multiplexés peut être différent de douze. Ce nombre de canaux est limité par le fait que les unités de comparaison doivent être capables de traiter toutes les informations. De même, le nombre d'unités de comparaison peut être adapté aux exigences du systèmes. Une autre modification possible consisterait à remplacer le système à deux registres tampons de chaque unité de canal par une seule mémoire à circulation asynchrone du type "premier entré, premier sorti". On peut également modifier les unités de comparaison de manière que la comparaison d'un segment particulier se termine si l'octet de longueur de ce segment est plus petit que l'octet de longueur contenu dans la mémoire de clés, ce qui peut être avantageux dans certains cas. Pour réaliser ceci, il suffit de combiner dans une porte ET l'horloge H2, le signal LONGUEUR et la sortie "inférieur" du comparateur 231 (figure 15), puis de réunir logiquement cette sortie et celle de la porte 227 (figure 16) et d'utiliser le signal résultant pour remettre la bascule 232 à"zéro". r?EVENDI C#TI ONS 1. Système informatique comprenant une mémoire de masse à plusieurs canaux de données, et plusieurs unités de comparaison entre lesdites données et les valeurs clés correspondantes, ledit système étant caractérisé en ce que les canaux de données sont multiplexés par division temporelle et en ce que les unités de comparaison (5) peuvent traitées en parallèle les données multiplexées, chaque unité de comparaison travaillant en temps partagé entre les divers canaux pour effectuer des comparaisons indépendantes sur les données qu'ils transmettent. 2. Système informatique selon la revendication 1, caractérisé en ce que la mémoire de masse (1) se compose de plusieurs unités de disques (S, M) et une unité de commutation (2) sélectionnant un sous-ensemble de pistes des unités de disques (S, M) dont les données sont multiplexées. 3. Système informatique selon l'une ou l'autre des revendications 1 et 2, caractérisé en ce que chaque canal de données transmet également les informations de commande qui sont également multiplexées par division temporelle et qui sont appliquées à des moyens de commande (42-45, 400-402) travaillant en te#mps partagé entre les différents canaux de données pour traiter indépendamment les informations de commande de chaque canal. 4. Système informatique selon la revendication 3, caractérisé en ce que les données de chaque canal sont arrangées en une séquence de zones de données (DA), les informations de commande comprenant une zone de comptage (CA) associée à chaque zone de données pour permettre son identification, les moyens de commande comprenant des circuits (400, 401) recherchant une coincidence avec les zones de comptage de chaque canal. 5. Système informatique selon l'une quelconque des revendications 1 à 4, caractérisé en ce que les données extraites de la mémoire da masse et transmises par les canaux sont chargées dans des registres tampons (B1, B2) dont les contenus respectifs sont lus individuellement à une vitesse supérieure à la vitesse de chargement des données dans les registres tampons, chaque registre tampon plein émettant un signal de demande qui est pris en compte individuellement par un dispositif (26) commandant la lecture du contenu du registre tampon demandeur. 6 Système informatique selon l'une quelconque des revendi- cations 1 à 5, caractérisé en ce que chaque unité de comparaison (5) comprend plusieurs éléments bistables (232, 235, 236, 238, 239) destinées à contenir des résultats intermédiaires du processus de comparaison, et une mémoire ayant un emplacement de mot pour chaque canal, ladite mémoire étant adressée par un signal de numéro de canal correspondant au canal qui est appliqué aux unités de comparaison à l'instant considéré, les contenus des éléments bist3bles étant rangés dans la mémoire avant chaque changement de numéro de canal, le contenu de la mémoire servant à recharger les éléments bistables après chaque changement de numéro de canal. 7. Système informatique selon l'une quelconque des revendi cations 1 à 6, caractérisé en ce que l'unité de comparaison (5) comporte une mémoire (2!#4 ) destinée à contenir les résultats finaux des comparaisons, cette mémoire ayant un emplacement de mot pour chaque canal et étant adressée par un signal de numéro de canal ccrrespcndant au canal qui est appliqué aaux unités de compa- raison à l'instant considéré. 8. Système informatique comprenant une mémoire de masse constituée d'un support d'enregistrement sur lequel sont délimitées plusieurs pistes associées à des têtes de lecture, caractérisé en ce que les sorties des têtes sont appliquées à des registres tampons (B1, B2) dont les contenus sont lus à une vitesse supérieure à la vitesse de chargement des registres tampons pour produire sur une voie de transmission principale (4) un signal multiplexé par division temporelle contenant les données issues de toutes les pis- tes.