Brevet FR2102142A1 — publié le 19720407

La présente invention concerne un procédé de compression des données utilisant des codes de longueur variable. Des codes de longueur variable peuvent être employés aux fins de la compression des données en affectant les codes les plus courts aux mots ou aux 5 octets qui se présentent le plus fréquemment, ce qui permet d'obtenir une longueur moyenne de code qui est inférieure à celle des chaînes de bits des codes de longueur fixe. Les codes de longueur variable devant représenter les différents codes de longueur fixe sont choisis en fonction d'une analyse statistique de la base particulière de données que l'on utilise. Si, par 10 exemple, les données doivent faire l'objet d'un traitement par octet, c'est-à-dire huit bits à la fois, la configuration d'octets qui se présente la plus fréquemment peut être représentée par un seul bit dans le système de codage utilisant un code de longueur variable, la combinaison la plus fréquente suivante par une paire de bits, et ainsi de suite. De préférence, les codes 15 de longueur variable ne comportent pas de préfixe, c'est-à-dire qu'aucun de ces codes ne peut former le commencement d'une chaîne de bits pour un code plus long. Cette condition est satisfaite, notamment, par les codes Huffman. Bien que l'utilisation de codes de longueur variable facilite la transmission et l'emmagasinage des données ainsi codées et permette de gagner du 20 temps, les données ne peuvent pas être traitées sous cette forme par un ordinateur et doivent être reconverties en un format de longueur fixe avant de pouvoir être traitées. Cette conversion par des procédés classiques et la perte de temps qu'elle entraîne peuvent par conséquent contre-balancer les avantages que présente l'utilisation de codes de longueur variable. Toutefois, 25 si la vitesse de conversion pouvait être augmentée, les avantages de l'utilisation de codes de longueur variable seraient considérablement augmentés et les ingénieurs chargés de l'étude de systèmes de traitement et de communication de données pourraient plus facilement en tirer parti. Il serait en conséquence souhaitable .de disposer de procédés de conversion de codes rendant 30 l'emploi de codes de longueur variable plus pratique. L'un des principaux objets de la présente invention est donc de permettre d'effectuer des conversions entre codes de longueur fixe et codes de longueur variable, de façon rapide et efficace, afin d'augmenter l'utilité du système de codage par codes de longueur variable en vue de la compression des données. 35 Conformément à la présente invention, une mémoire associative à trois états de conception originale est utilisée à la fois pour le codage et le décodage. Cette mémoire comporte une zone réservée à l'emmagasinage des codes de longueur variable Cou codes LV}, une zone réservée à l'emmagasinage des codes de longueur fixe (ou codes ID) -et une zone dite "de conversion de 40 longueur de code" (ci-après appelée "zone de longueur") dans laquelle est 71 26006 2 2102142 emmagasinée une représentation du nombre de bits significatifs dans chacun des codes de longueur variable. Les cellules de mémoire de la zone réservée aux codes LV dans lesquelles aucun bit significatif de code n'est emmagasiné sont mises dans un état dit "inopérant" dans lequel elles sont effectivement mas-5 quées et ne peuvent faire l'objet d'une interrogation au cours des opérations de recherche associative qui sont effectuées dans cette mémoire. La présence de la zone de longueur dans la mémoire associative permet éventuellement d'utiliser cette dernière pour coder une entrée à bits parallèles de longueur fixe de façon à obtenir une sortie à bits en série de 10 longueur variable,ou pour décoder une entrée à bits en série de longueur variable de façon à obtenir une sortie à bits parallèles de langueur fixe. En mode "codage", la valeur qui est lue depuis la zone de longueur indique le nombre de bits valides qui doivent être lus en série dans le registre de données, une fois que l'opération de recherche associative a été effectuée, ce 15 qui limite la lecture au code de longueur variable désiré et exclut les valeurs inopérantes éventuellement emmagasinées dans le's positions de bits restantes du registre de données. En mode "décodage", la valeur lue depuis la zone de longueur indique de combien de positions de bits le contenu du registre des valeurs significatives dit "registre d'arguments", doit être décalé une fois 20 la recherche associative effectuée, afin de mettre les bits du code de longueur variable suivant dans des positions d'enregistrement correctes en vue de la recherche associative. L'emploi d'une mémoire associative possédant une rangée ou "mot" de cellules de mémoire pour chaque configuration possible de bits de code de 25 longueur fixe, permet de réaliser une compression maximum des données. Cela nécessite toutefois une mémoire associative de dimensions assez importantes. Par exemple, si la longueur du code ID est d'un octet (8 bits), la mémoire associative doit contenir autant de mots qu'il existe de combinaisons de codes à huit bits, soit 256 mots, afin que la compression maximum des données puisse 30 être obtenue. On a cependant constaté que dans le cas de la plupart des bases de données, on peut sacrifier une faible partie de cette compression et, de ce fait, réduire considérablement le coût de la mémoire-associative. Par exemple on peut établir qu'avec une base donnée, on ne perdrait qu'une très faible partie de la compression maximum possible en utilisant une mémoire 35 associative faisant fonction de codeur-décodeur traitant, par exemple, les 150 combinaisons de bits de code ID se présentant les plus fréquemment (correspondant aux 150 codes LV les plus courts),les 156 combinaisons de bits de code ID restantes étant traitées sans conversion des codes. Un autre objet de la présente invention est de reconnaître la catégorie dans laquelle entre 40 un code ID particulier et de le traiter en conséquence, avec ou sans conversion 71 26006 3 2102142 en code LV. C'est ce qui est appelé ci-après la caractéristique de "duplication" de l'invention. D'autres objets, caractéristiques et avantages de la présente invention ressortiront mieux de l'exposé qui suit, fait en référence aux dessins annexés 5 à ce texte, qui représentent un mode de réalisation préférée de celle-ci. La figure 1 représente schémaiiquement une mémoire associative contenant des cellules de mémoire à trois états et une zone dite de longueur pour effectuer des opérations de codage et de décodage conformément à la présente invention. 10 La figure 2 représente schématiquement quelques uns des circuits utilisés dans la mémoire associative de la figure 1 et ses commandes associées, montrant la façon dont une cellule de mémoire à trois états est employée dans celle-ci. Les figures 3A et 3B représentent, lorsqu'elles sont réunies, un schéma 15 plus détaillé des circuits d'une mémoire associative et de ses commandes afin de mettre en oeuvre l'invention conformément aux principes représentés sur la figure 1. La figure 4 est un organigramme montrant le fonctionnement en mode "codage" de l'appareil représenté sur les figures 3A et 3B. 20 La figure 5 est un organigramme montrant le fonctionnement en mode "décodage" de l'appareil représenté sur les figures 3A et 3B. La figure 6 est un schéma analogue à celui de la figure 1 représentant uns variante de la présente invention, comprenant le dispositif dit "de duplication" . 25 La figure 7 représente une partie des circuits de commande de la mémoire associative agencés de manière à comprendre le dispositif de "duplication". Les figures SA, SB et 0C constituent, lorsqu'elles sont réunies, un schéma des circuits d'un appareil utilisant une mémoire associative modifiée de dimensions réduites comportant le dispositif dé "duplication". 30 La figure 9 est un organigramme montrant le fonctionnement en mode "coda ge" de l'appareil représenté sur les figures 8A à 8C. La figure 10 est un organigramme montrant le fonctionnement en mode "décodage" de l'appareil des figures 8A à 8C. Les figures 1 à 5 représentent une réalisation de la présente invention 35 dans laquelle la mémoire associative (MA] possède un "mot" ou rangée de cellule pour chaque combinaison possible de bits de code de longueur variable (ID). Si l'on suppose que la longueur du code ID est de huit bits, soit un octet, il existe 256 combinaisons possibles de bits de code i 256 mots de données sont donc emmagasinés aux différentes positions adressables de la mémoire 40 associative, comme le montre la figure 1. La zone des codes de longueur 71 26006 4 2102142 variable ( LV) est suffisamment longue pour recevoir le code LV le plus long, que l'on suppose être, dans cet exemple particulier, de 16 bits. C'est dans cette partie de la mémoire associative que sont chargés les codes LV qui correspondent aux codes 10 emmagasinés aux mêmes adresses de mots dans la 5 zone des codes ID de la mémoire. Le code LV ne comporte pas de préfixe, aucun de ces codes ne constituant le commencement d'une chaîne de bits pour un code plus long. Les codes LV sont justifiés du côté droit de telle sorte que les bits significatifs de chaque code occupent les positions les plus à droite 10 de la zone des codes LV de la mémoire. Les cellules de mémoire de cette zone qui ne sont pas utilisées pour emmagasiner des bits significatifs sont mises dans leur état inopérant, de la façon décrite plus loin. L'état inopérant est représenté par un X sur la figure 1. La première rangée de cellules de la zone des codes LV de la mémoire représentée sur la figure comporte deux 15 bits significatifs, "1" et "0", et. quatorze états inopérants disposés dans cet ordre de la droite vers la gauche dans cette inscription. Le code ID correspondant, dans cet exemple particulier, est supposé être □□□□0000. Il est évident que celle relation né serait pas nécessairement vraie dans le cas de toutes les bases de donnée. La zone de longueur de la mémoire contient une 20 inscription à quatre bits, 0010, qui indique qu'il existe deux bits significatifs dans l'inscription correspondante des codes LV. De même, l'inscription finale dans cette même zone de longueur indique que l'inscription finale des codes LV comporte 14 bits significatifs. Il n'est pas nécessaire que les inscriptions dans l'une des zones de la mémoire associative sb trouvent dans un 25 ordre donné l'une par rapport à l'autre, dans la mesure où chaque inscription est correctement alignée avec les inscriptions correspondantes dans les autres zones. N'importe quel type approprié de mémoire associative peut être utilisé à la condition qu'elle comporte des cellules de mémoire à trois états dans 30 sa zone d'emmagasinage des Godes LV. Pour les besoins de la présente description, on peut employer une mémoire associative du type décrit dans le brevet n° 1 412 453 déposé en France par la demanderesse le 17.7.64, modifiée de la façon représentée sur la figura 2 annexée au présent texte de manière à fournir un troisième état, ou état inopérant, dans les cellules de la mémoire 35 qui exigent cette propriété. •On a représenté sur la partie droite de la figure 2 une cellule de mémoire associative à trois états 20 entourée de pointillés longs. La cellule 20 comprend une bascule bistable 22 permettant d'emmagasiner un 1 binaire ou un 0 binaire. Si le bit emmagasiné est significatif, une autre 4Q bascule bistable 24 est mise dans son état "1", mais si le bit emmagasiné n'est 71 26006 5 2102142 pas significatif [c'est-à-dire si la cellule 20 se trouve dans son état inopérant), la bascule bistable 24 est restaurée dans son état "0".L'effet de cette opération est expliqué plus loin. Pour écrire des informations dans la cellule 20, l'une des trois lignes 5 d'entrée d'écriture 26, 28 et 30 pour cette position de bit sont excitées de même qu'une ligne de sélection d'écriture 32 associée au mot de mémoire particulier dans lequel est située la cellule 20. Si,par exemple, les lignes 26 et 32 sont excitées simultanément, la coïncidence de ces signaux à la porte ET 34 engendre un signal qui met la bascule bistable 22 dans son état "1". 10 Si les lignes 28 et 32 sont excitées simultanément, un signal.est transmis par l'intermédiaire de la porte ET 36 à la bascule bistable 22 qui est alors mise dans son état "0". Chaque fois qu'un signal est transmis par l'intermédiaire de la porte 34, ou de la porte 36 à la bascule 22, ce même signal traverse également une porte OU 38 et est appliqué à la bascule bistable 15 24, qui est alors mise dans son état "1". Les signaux de sortie "1" des bascules 22 et 24 sont appliqués à une porte ET 40 à trois entrées. La sortie "0" de la bascule 22 et la sortie "1" de la bascule 24 sont appliquées à une portB ET 42 à trois entrées. La troisième entrée de la porte ET 40 provient d'une branche de la ligne "0" de recherche associative 44, et la troisième 20 entrée de la porte ET 42 d'une branche de la ligne "1" de recherche associative 46. Des impulsions sont appliquées de façon sélective aux lignes 44 et 46 selon qu'une opération dB recherche pour un "1" ou pour un "Q"est ou non en cours dans la position de bit particulière eri considération. Les sorties des deux portes ET 40 et 42 sont appliquées à une ligne de 25 désaccord 48, une telle ligne étant prévue pour chaque mot de la mémoire associative. Lorsqu'elle est excitée, la ligne 48 restaure l'indicateur d'accord 50 pour ce mot dans son état "0". Un désaccord peut se produire si l'on est entrain d'emmagasiner un "0" dans la cellule 20 lorsque des impulsions sont appliquées à la ligne "1" 46, ou lorsqu'un "T" est en cours 30 d'emmagasinage dans la cellule 20 au moment où les impulsions sqnt appliquées à la ligne "D" 44, à la condition que la cellule 20 ne se trouve pas dans son état inopérant. La coïncidence résultante des signaux d'entrée à l'une ou l'autre des portes ET 40 et 42 se traduit par la transmission d'un signal de sortie sur la lignB 48.' 35 Pour mettre la cellule dans son état inopérant, la ligne d'entrée d'écriture en courant continu 30 et la ligne de sélection d'écriture 32 sont excitées simultanément. Cela provoque la transmission d'un signal à travers la porte ET 52 et la restauration dans son état "0" de la bascule bistable 24. Lorsque cette dernière bascule se trouve.dans son" état "0", aucun signal 40 n'est appliqué à l'une dBS entrées de chacune des portes ET 40 et 42, ces deux 71 26006 6 2102142 portes étant ainsi rendues non conductrices et ne pouvant transmettre aucun signal à la ligne de désaccord 48. De ce fait, lorsqu'elle se trouve dans son état inopérant (la bascule bistable 24 étant mise dans son état "G"), la cellule 20 fonctionne toujours comme s'il y avait accord, que cette cellule 5 ait ou non fait l'objet d'une interrogation sur la ligne 46 ou 44, la cellule 20 étant ainsi masquée et ne pouvant faire l'objet d'une interrogation. Les commandes de la mémoire associative sont représentées de façon simplifiée dans le rectangle en pointillés longs 56 de la figure 2. Ces commandes sont décrites de façon détaillée dans le brevet n° 1 412 453 pré-cité. Lorsque 10 des données doivent être écrites dans une adresse de mot choisie de la mémoire associative, une ligne d'écriture 58 est excitée de façon à fournir une entrée à chacune de plusieurs portes de sélection d'écriture telles que la porte 60, une telle porte étant prévue pour chaque mot. Si un signal de sélection de mot est appliqué à l'autre entrée de cette porte, la ligne 15 de sélection d'écriture correspondante, par exemple la ligne 32, est excitée, de façon à préparer les cellules de mémoire de ce mot à recevoir des données des lignes d'entrée d'écriture telles que les lignes 26, 28 et 30. Lorsqu'une opération de recherche associative doit être effectuée, les circuits d'indication d'accord, tels que le circuit 50, des différents mots 20 sont d'abord restaurés à leur état "1" par une impulsion appliquée à une ligne de restauration 62. Des impulsions sont ensuite appliquées de façon sélective aux différentes lignes de recherche -.associative pelles que les lignes 44 et 46 afin d'interroger les cellules de mémoire correspondantes. Si l'une des cellules d'un mot ou plusieurs cellules engendrent un signal de désaccord 25 sur la ligne de désaccord respective, telle que la ligne 48, le circuit d'indication d'accord tel que le circuit 50 relatif à ce mot est mis à "0" - et par conséquent l'une des entrées de la porte de sélection de lecture, telle que la porte 64, afférente à ce mot ne reçoit plus de signaux et le mot ne peut être lu en réponse à l'interrogation. 30 Pour lire le mot correspondant, on excite la ligne de lecture 66. Si ce mot est celui qui est associé au circuit d'indication d'accord 50, figure 2, ce circuit ne reçoit aucun signal de désaccord et reste par conséquent dans l'état "1", la porte ET 64 transmettant de ce .fait le signal de lecture de la ligne 66 à la ligne de sélection de lecture 68. Le signal transmis 35 sur la ligne 68 rend conductrices une paire de portes ET, telles que les portes 70 et 72, pour lire les données contenues dans chaque cellule de mémoire, telle que la cellule 20, dans le mot de mémoire choisi. En fonction de l'état de la bascule bistable 22, un signal est transmis par l'intermédiaire de l'une ou l'autre des portes ET 70 et 72 à l'une ou l'autre des lignes de 40 sortie de lecture "1" ou "0" 74 et76. 71 26006 7 2102142 Si la cellule 20 se trouve dans un état inopérant (la bascule bistable 24 étant mise à "0"), cet état n'aura aucun effet sur la lecture des données emmagasinées dans la bascule 22. La valeur "1" ou "0" qui est emmagasinée dans la bascule 22 à cet instant est lue, que la cellule 20 se trouve ou non 5 dans son état inopérant. D'autres dispositions (décrites plus loin) sont prises afin qu'aucun compte ne soit tenu des bits qui sont lus dans les cellules qui se trouvent dans leur état inopérant. Cet état a simplement pour effet de bloquer les portes ET de désaccord 40 et 42 de la cellule et n'affecte pas les portes ET 70 et 72. 10 Le fonctionnement de l'appareil représenté sur les figures 3A et 3B est décrit à l'aide des organigrammes des figures 4 et 5. L'opération de codage, dans laquelle un code ID est converti en un code LV correspondant est décrite en premier lieu. Les codes ID et LV nécessaires sont supposée avoir été préalablement chargés dans la mémoire associative MA de la figure 3A, de même 15 que las inscriptions de longueur correspondantes indiquant le nombre de bits significatifs dans chaque chaine de bits des codes LV. Comme mentionné ci-dessus, les codes ID sont supposés, à titre d'exemple, avoir une longueur de huit bits et les codes LV une longueur de un à seize bits. Pour représenter une longueur de code allant jusqu'à seize bits, 0000 20 représentant "16", une inscription de longueur de qaatre bits suffit. En conséquence, la mémoire associative MA de la figure 3A possède une zone à seize bits pour emmagasiner les codes LV, une zone à huit bits pour emmagasiner les codes ID, chacun desquels a une longueur d'un octet, et une zone de longueur de quatre bits dans laquelle chaque inscription sert à mesurer 25 le nombre de bits significatifs dans le code LV correspondant. Dans les réalisations des figures 3A et 3B, on suppose également que toutes les configurations possibles d'octet ID (256 en tout) peuvent être chargées dans la mémoire associative MA. Avant que commence l'opération de codage, le nombre d'octets ID à coder, 30 et que l'on suppose provenir d'une source de données ou d'un dispositif d'entrée, est chargé dans le compteur d'octets 80 de la figure 3B. Si le dispositif d'entréB fonctionne à une vitesse différente de celle de la mémoire associative, des mémoires intermédiaires appropriées peuvent être employées. L'état du compteur 80 est progressivement décrémenté au fur et à mesure que les octets 35 ID sont codés, et l'état en cours est décodé en une sortie "zéro" ou "non zéro" par un décodeur 82. Une sortie "zéro" du décodeur 82 met fin à l'opération de codage. Cette opération est décrite de façon.plus détaillée ci-après. - L'opération de codage est décrite à.l'aide des figures 3A, 3B et 4, 40 étant entendu que l'appareil représenté schématiquement sur les figures 3A 71 26006 e 2102142 et 3B n'est qu'un exemple d'une réalisation de la présente invention. L'opération de codage est déclenchée en appliquant une impulsion dite de départ à un conducteur 90 qui aboutit à un circuit d'horloge dit de "codage". Cette impulsion est transmise par l'intermédiaire d'un circuit OU 92 à un circuit 5 monostable 94, provoquant le passage de ce dernier à son niveau haut afin d'engendrer une impulsion sur le conducteur E1 qui passe dans un câble 96 (figures 3B et 3A). Cette impulsion est appliquée à une porte 98 (figure 3A), laquelle transmet alors un octet provenant du dispositif d'entrée (non représenté) au registre d'arguments ID 100. Ce dernier contient à présent 10 l'octet à coder. La même impulsion est également transmise du conducteur E1 par l'intermédiaire d'un circuit à retard 102 au dispositif d'entrée afin que ce dernier envoie l'octet de code 10 suivant sur les lignes d'entrée aboutissant à la porte 98. Cette mime impulsion est également transmise par l'intermédiaire d'un circuit OU 106 (figure 3A) au conducteur 62 (également 15 représenté sur la figure 2) dont l'excitation a pour effet de remettre dans leur état "1", les circuits d'indication d'accord dans les circuits de commande 56 de la mémoire associative. Le dispositif est maintenant en mesure de procéder au codage. Le passage au niveau bas du monostable 94 (figure 3B) provoque le passage 20 au niveau haut du monostable 108. Ceci provoque la transmission d'une impulsion sur une ligne E2, qui passe dans le câble 96, au registre 100, afin qu'une configuration de uns et de zéros soit transmise sur les lignes ds recherche associative 110 en fonction de l'état du registre 100. Ces lignes 110 exécutent une fonction analogue à celle des lignes 44 et 46 précédemment 25 décrites à l'aide de la figure 2, à cela près que dans le cas présent elles sont appliquées aux cellules de mémoire dans la zone des codes ID de la mémoire associative MA. Les différents codes 10 font en conséquence l'objet d'une opération de recherche afin de trouver le mot qui contient le code LV correspondant au code ID contenu dans le registre 100. 30 Le passage au niveau bas du monostable 108 (figure 3B)provoque le passage au niveau haut du monostable suivant, 114, lequel engendre une impulsion sur la ligne E3 dans le câble 96. Cette impulsion est transmise par 1'intermédiaire d'un circuit OU 116(figure 3A) à la ligne de lecture 66 des circuits de commande 56 de la mémoire associative (figures 3A et 2). L'application 35 d'impulsion à la ligne 62 se traduit par la lecture du mot correspondant dans la mémoire associative et par sa transmission, par l'intermédiaire du câble 118 (figure 3A),au registre de données 120, les données emmagasinées dans les différentes zones de ce mot étant alors chargées dans le registre 120. Ces données comprennent les seize bits de la zone des codes ainsi 40 que les huit bits de la zone des codes IQ et les 4 bits de la zone de langueur 71 26006 g 2102142 du mot. Au même instant, l'impulsion transmisa sur la ligne E3 est également appliquée par l'intermédiaire d'un circuit OU 122 de façon à décrémenter le compteur d'octets 80. Le passage au niveau bas du monostable 114 provoque la transmission d'une 5 impulsion par l'intermédiaire du circuit OU 124, laquelle fait passer le monostable 126 à son niveau haut. Cela se traduit par la transmission d'une impulsion sur la ligne E4 qui aboutit à la porte 128 (figure 3A), cette dernière étant rendue conductrice de façon à transmettre le bit le plus à droite dans la zone des codes LV du registre 120 au dispositif de sortie. Une 10 fois ce bit transmis, il est nécessaire de décaler vers la droite d'une position de bit le contenu de la zone des codes LV du registre 120. Ce décalage est effectué lorsque le monostable 126 passe au.niveau bas, ce qui provoque le passage au niveau haut du monostable 130 de façon à engendrer une impulsion sur la ligne E5. Cette impulsion est appliquée à un dispositif de décalage 15 approprié(non représenté) de façon à effectuer un décalage d'un bit vers la droite des bits des codes LV emmagasinés dans le registre 120 comme l'indique la flèche sur la ligne E5 de la figure 3A. La partie du registre 120 dans laquelle est emmagasiné le code de longueur de quatre bits fait fonction de compteur de longueur. Pour chaque décalage 20 vers la droite des bits des codes LV emmagasinés dans le registre 120, la valeur emmagasinée dans le compteur de longueur est réduite d'une unité. Cette décrémentation du compteur de longueur est effectuée dans le cas présent par la transmission de l'impulsion-de la, ligne E5, par l'intermédiaire d'un circuit Oll 132, à une ligne 134 qui conduit au dispositif (non représenté) 25 permettant de décrémenter, la valeur emmagasinée dans le compteur de longueur (les quatre derniers bits du registre 120). Une vérifieation est alors effectuée pour déterminer si la valeur emmagasinée dans le compteur de longueur a été réduite à zéro, c'est-à-dire si tous les bits significatifs du code LV en cours ont été décalés et sont sortis 30 du registre 120. Lorsque le monostable 130 passe au niveau bas, le monostable . 136 passe au niveau haut, provoquant la transmission d'une impulsion sur la ligne E6 qui conduit à la porte 138 (figure 3B). L8S lignes d'entrée zéro (0)146 et non-zéro (5) 144 vont jusqu'à la porte 138 depuis le circuit ET 140, auquel les sorties 0 de n'importe lequel des 4 ordres du compteur 35 de longueur sont appliquées. Si le circuit ET 140 n'a pas de sortie, ce qui signifie qu'au moins un des bits du compteur de longueur est un "1", un inverseur 142 applique une tension à la porte 138 par l'intermédiaire de la ligne d'entrée non-zéro 144. Si le compteur de longueur ne comporte que des zéros, la ligne d'entrée zéro 146 aboutissant à la porte 138 est excitée. En 40 supposant pour les besoins du présent exemple que plus d'un bit de code doive 71 26006 10 2102142 âtre décalé et sortir du registre de données 120, la porte 138 reçoit une entrée non zéro, ce qui provoque l'excitation d'une ligne de sortie 147 provenant de la porte 138. La ligne 147 passe dans les câbles 148 et 150 et parvient au circuit OU 124, et l'impulsion non zéro est appliquée au monostable 5 126, ce qui déclenche un nouveau cycle d'opérations avec passage successif au niveau haut des monostables 126, 130 et 136. Ce faisant, la lecture d'un autre bit de la position la plus à droite de la zone des codes LV du registre 120 se produira, de même qu'un décalage d'un bit vers la droite des bits restant dans cette zone et une.vérification de l'état du compteur de longueur 10 pour déterminer s'il ne contient que des zéros. Les. différentes étapes de l'opération, comportant le passage au niveau haut des monostables 126, 130 et 136 et l'application résultante d'impulsions aux lignes E4, E5 et E6, sont repétées aussi souvent qu'il le faut (figure 4) jusqu'à ce que le compteur de longueur ne contienne plus que des zéros. A ce 15 stade, le dernier bit significatif a été lu dans la zone des codes LV du registre 120 et les bits restant dans cette zone sont, sans intérêt car ils proviennent de cellules de mémoire qui se trouvaient dans leur état inopérant ou ont été introduits dans le registre pendant le processus de décalage. L'opération ressort maintenant à la sous-routine de décalage à droite. Lorsque 20 la porte 138 (figure 3B) est rendue conductrice par l'impulsion transmise sur la' ligne E6, la ligne d'entrée zéro 146 a été excitée en raison du fait que le compteur de longueur ne contient que des zéros et la ligne de sortie 154 de la porte 138 est en conséquence excitée et applique une impulsion d'entrée à chacun des circuits ET 156 et 158 (figure 3B). Une ligne de sortie 25 zéro 160 du décodeur. 8Z ne fournit une seconde entrée au circuit ET 156 que si l'état du compteur d'octets 80 a été ramené à zéro. Si tel n'est pas le cas, le décodeur fournit une sortie sur la ligne non-zéro 162 au circuit ET 158. Si l'on suppose que l'état du compteur 80 est différent de zéro, ce qui signifie que des octets ID supplémentaires doivent être décodés> la coïn-30 cidence des entrées du circuit ET 158 engendre sur la ligne 164 une impulsion qui est transmise par l'intermédiaire des câbles 148 et 150 au circuit OU 92 et au monostable 94. Cela marque le début d'un nouveau cycle de codage indiqué par les étapes E1 à E6 sur l'organigramme de la figure 4. Le cycle de codage décrit ci-dessus est répété aussi souvent qu'il le faut 35 pour amener l'état du compteur d'octets à zéro. Lorsque le ernier octet ID a été codé et que le compteur d'octets 80 passe à zéro, le décodeur 82 fournit une sortie zéro à la porte ET 156. Puis, lorsque l'état du compteur de longueur passe à zéro, indiquant ainsi que le dernier des bits codés a été lu dans le registre de données 120, la coïncidence des excitations aux 40 entrées de la porte ET 156 engendre une impulsion qui met fin au fonctionnement 71 26006 11 2102142 du système. Lorsque l'appareil fonctionne en mod8 "décodage", les bits du code LV qui doivent être décodés sont transmis en série à un registre d'arguments 178 [figure 3A), qui possède seize positions d'emmagasinage de bits. Le nom-5 bre de codes LV qui seront emmagasinés dans le registre 178 à un moment quelconque est indéterminé. Au début de chaque opération de décodage, il est néanmoins nécessaire que le premier bit d'un nouveau code soit chargé dans la portion la plus à droite du registre 170, de la façon décrite ci-après. Le fonctionnement du système en mode "décodage" est décrit à l'aide des 10 figures 3A, 3B et 5. Dans l'organigramme de la figure 5, les différentes étapes D1, D2 etc... correspondent aux actions produites par les impulsions transmises sur les différentes lignes D1, D2 etc... comme décrit ci-après. L'opération de décodage est déclenchée par l'application d'une impulsion à la ligne de "départ" 180 afin de faire passer au niveau haut le monostable 15 182 de l'horloge de décodage. Le passage au niveau haut du monostable 182 se traduit par la transmission d'une impulsion, par 1'intermédiaire de la ligne D1 et des câbles 184 et S6 (figures 3B et 3A), au dispositif de restauration du compteur de longueur comprenant les quatre positions d'emmagasinage de bits les plus à droite dans le registre de données 120. Cette impulsion 20 a pour effet de restaurer le compteur de longueur, lequel ne contiendra plus que des zéros et pourra compter les seize premiers bits de données qui seront chargés en série dans le registre 178. Avant que les opérations de décodage ne puissent commencer, il est nécessaire de vérifier que seize bits de nouvelles données ont été chargés dans le registre 178, cette vérification 25 étant rendue possible par le compteur de longueur. Le passage au niveau bas du monostable 182 se traduit par la transmission d'une impulsion, par l'intermédiaire du circuit OU 186, au monostable 190, lequel engendre une impulsion qui est transmise, par l'intermédiaire d'un circuit OU 192 (figure 3A) et d'une ligne 194, à une porte 196, laquelle est 30 alors rendue conductrice et autorise le passage du premier bit provenant du dispositif d'entrée à la position d'emmagasinage de bits la plus à gauche du registre 178. L'impulsion présente sur la ligne 194 est également transmise, par l'intermédiaire d'un dispositif à retard 198, au dispositif d'entrée afin que le bit suivant devienne disponible en vue de son transfert. 35 Le bit qui vient d'être chargé dans le registre 178 devra ultérieurement être décalé vers ladroite jusqu'à ce qu'il occupe la positiond'enmagasinage d8 bits la plus à droite dans ce registre. L'impulsion présente sur la ligne D2 est également transmise, par l'intermédiaire du circuit OU 132 (figure 3A), à la ligne 134 dB décrémentation du compteur de longueur, provoquant la 40 décrémentation de ce dernier d'une unité. Si le compteur de longueur ne 71 26006 12 2102142 contenait initialement que des zéros, la première décrémentation changera cet état de 0000, en 1111. Le passage au niveau bas du monostable 190 [figure 3B) provoque le passage au niveau haut du monostable 200, ce qui se traduit par la génération 5 d'une impulsion sur la ligne D3. Cette impulsion est appliquée à une porte 202 dont l'entrée provient de la ligne non-zéro 144 ou de la ligne zéro 146 associée au compteur de longueur. Si l'état du compteur n'est pas égal à zéro, comme c'est le cas dans l'exemple présent, un signal est transmis depuis la ligne 144, par l'intermédiaire de la porte 202 à la ligne 204, qui aboutit à un 10 monostable 206 (figure 3B). Lorsqu'il passe au niveau haut, le monostable 206 engendre une impulsion qui est transmise par l'intermédiaire de la ligne D4 et d'un circuit OU 210 (fig ,3A), à une ligne 212 aboutissant au dispositif de décalage (non représenté) du registre 176. De ce fait, le contenu du registre 176 est décalé 15 vers la droite d'une position de bit, la position de bit la plus à gauche étant prête à recevoir un nouveau bit. Lorsqu'il passe au niveau bas, le monostable 206 engendre une impulsion qui est transmise, par l'intermédiaire de la ligne 216 et du circuit OU 186, au monostable 190, qui passe au niveau haut. Les étapes 02 et D3 de l'orga-20 nigramme de la figure 5 sont répétées lors du passage successif au niveau haut des monostables 190 et 200. Pendant l'étape D3, l'état du compteur de longueur est de nouveau vérifié et si cet état n'est toujours pas 0000, le monostable 208 passe à l'état haut afin d'exécuter l'étape D4 pendant laquelle le contenu du registre 178 est décalé vers la droite. 25 La séquence consistant à charger un bit de données dans le registre 178, à décrémenter le compteur de longueur,à vérifier l'état de ce compteur et à décaler vers la droite le contenu du registre 178 est repétée jusqu'à ce que la vérification effectuée pendant l'étape D3 montre que l'état du compteur de longueur est 0000. Ceci indique que les seize premiers bits de 30 données ont été chargés dans le registre 178 et que le premier bit du premier code LV se trouve à présent dans la position la plus à droite de ce registre. Lorsque l'impulsion engendrée sur la ligne 03 est appliquée à la porte 202 (figure 3B), cette impulsion est transmise depuis la ligne de sortie zéro, 146 du compteur de longueur, par l'intermédiaire de la porte 202, à une ligne 35 220 qui aboutit au circuit OU 222 (figure 3B) par l'intermédiaire duquel elle est transmise au monostable 224. Lorsqu'il passe au niveau haut, ce dernier engendre sur la ligne D5, qui passe dans les câbles 184 et 96 une impulsion qui est transmise, par l'intermédiaire du circuit OU 106 (figure 3A), à la ligne 66 de restauration du circuit d'indication d'accord, ce qui a pour 40 Bffet de restaurer les indicateurs d'accord des circuits de commande 56 de 71 26006 13 2102142 la mémoire associative (fig. 3A et 2} et de les remettrs dans leurs états "1". Le passage au niveau bas du monostable 224 provoque le passage au niveau haut du monostable 226 de façon à engendrer sur la ligne D6 une impulsion qui est transmise au registre 170 (fig. 3A) de manière à déclencher une 5 opération de recherche associative au cours de laquelle le contenu du registre 178 est transmis par l'intermédiaire des lignes 230 à la zone des codes LV de la mémoire associative. Les lignes 230 comprennent des lignes telles que les lignes 44 et 46 de la figure 2 afin d'interroger les différentes cellules de mémoire à trois étages grâce auxquelles les codes LV sont emmagasinés 10 dans la mémoire associative. Celles des cellules de mémoire qui se trouvent dans leur état inopérant sont incapables d'engendrer des signaux de désaccord. Les cellules de mémoire qui ne se trouvent pas dans leur état inopérant et dans lesquelles des bits correspondants aux signaux transmis sur les lignes d'interrogation 230 (figure 2A) ne sont pas emmagasinées engendrent des 15 signaux de désaccord afin de mettre leurs indicateurs d'accord respectifs à 2éro. Comme on l'a mentionné ci-dessus, les codes LV ne comportent pas de préfixe. Les bits des codes contenus dans le registre d'arguments 170 ne concorderont par conséquent qu'avec un seul mot de code dans la mémoire 20 associative MA, et ce mot sera celui dont les bits significatifs concordent exactement avec les bits de la chaine des codes LV se trouvant à l'extrémité droite du registre 178. Cela est vrai quel que soit le nombre de codes LV emmagasinés dans d'autres positions du registre 178. Le passage au niveau bas du monostable 226 entraîne le passage au niveau 25 haut du monostable 232, qui engendre sur .la ligne D7 une impulsion qui est transmise, par l'intermédiaire des câbles 184 et 96 et du circuit OU 116 [fig. 3A), à la ligne de lecture 66 des circuits de commande 56 de la mémoire associative. L'indicateur d'accord qui se trouve alors dans son état "1" indique l'adresse du mot avec lequel il y a concordance dans la mémoire 30 associative, ce mot étant lu dans cette dernière, et transmis par 1'intermédiai re des lignes de sortie 118 au registre de données 120. Ce mot contient le code ID recherché ainsi qu'une indication dB longueur. Ces informations sont emmagasinées dans les parties appropriées du registre de données 120. L'impulsion engendrée sur la ligne D7 est également transmise par l'intsrmé-35 diaire du circuit OU 122 (figure 3A) de façon à décrémenter le compteur d'octets 80 (figure 3B). Le passage au niveau bas du monostable 232 entraîne le passage au niveau haut du monostable 236 qui engendre sur la ligne D8 une impulsion qui est appliquée à une porte 238 (figure 3A), laquelle est alors rendue conductrice 40 et transmet au dispositif de sortie la partie des codes ID à huit bits des 71 26006 14 2102142 informations emmagasinées dans le registre de données 120. Le compteur de longueur à quatre bits Ce'est-à-dire les quatre positions de bits les plus à droite du registre 120 de la figure 3A) enregistre alors le nombre de bits significatifs contenus dans le code LV qui vient d'être décodé. 5 Le contenu du registre 178 doit maintenant être décalé vers la droite de cette quantité afin d'amener le premier bit du code LV suivant à la position la plus à droite de ce registre. Cela s'effectue de la façon suivante. Lorsqu'il passe au niveau bas. lê monostable 236 transmet une impulsion par l'intermédiaire du circuit OU 240 afin de faire passer le monostable 10 242 au niveau haut.. Cela produit une impulsion sur la ligne 09 (figures 3B et 3A) qui est transmise par l'intermédiaire du circuit OU 210 à la ligne de décalage vers la droite 212. En conséquence, le contenu du registre 178 est décalé vers la droite d'un bit. Au même instant, l'impulsion présente sur la ligne 09 est transmise par l'intermédiaire du circuit OU 132 (figure 15 3A) à la ligne 134 dB décrémentation du compteur de longueur, provoquant ainsi une décrémentation d'une unité. Le passage au niveau bas du monostable 242 provoque le passage au niveau haut du monostable 244, lequel engendre sur la ligne 010 une impulsion qui est transmise par l'intermédiaire du circuit OU 192 et de la ligne 194 à 20 la porte 196 (figure 3A) afin de mettre le bit suivant dans la position la plus à gauche du registre 178. Au même instant, une impulsion est transmise par l'intermédiaire de l'unité à retard 198 au dispositif d'entrée afin que celui-ci présente un nouveau bit à l'entrée de la porte 196. Le passage au niveau bas du monostable 244 provoque le passage au niveau 25 haut du monostable 246, 'lequel engendre sur la ligne D11 une impulsion qui est transmise à la porte 248 (fig. 3B) et provoque une vérification de l'état du compteur de longueur. Si le compteur n'a pas encore été ramené à zérâ, la porte 248 autorise le passage d'une impulsion de la ligne non zéro 144 à une ligne 250 aboutissant au circuit OU 240 (fig. 3B). De ce fait, 30 le monostable 242 passe de nouveau à l'état haut afin de déclencher de nouveau les étapes D9, D10 et D11 de l'organigramme de la figure 5. Le contenu du registre 178 est ainsi décalé progressivement vers la droite jusqu'à ce que l'état en cours du compteur ait été ramené à zéro. Le bit de l'ordre le plus inférieur du code LV suivant se trouve alors à l'extrémité 35 droite du registre 178 et le dispositif est prêt à effectuer une nouvelle recherche associative sur ce code LV. Lorsque le compteur de longueur est à zéro et que le monostable 246 passe au niveau haut, une impulsion est transmise depuis la ligne "0" 146 par l'intermédiaire de la porte 248 à une ligne 252 qui fournit une entrée 40 à chacun des circuits ET 254 et 256. Si, à cet instant, le compteur d'octets 71 260Û6 15 2102142 80 se trouve toujours dans un état différent de zéro, le décodeur 82 engendre sur la ligne 162 un signal qui est transmis par l'intermédiaire du circuit ET 254 à une ligne 260 et, de là, par l'intermédiaire du circuit OU 222 (fig. 3B), au monostable 224, qui passe à l'état haut. Il en résulte une répétition 5 des étapes D5 à D11 de l'organigramme de la figure 5 jusqu'à ce que le compteur 80 se trouve à zéro. Ensuite, lorsque le monostable 246 (figure 3B) passe au niveau haut, la porte 256 devient conductrice et engendre un signal qui met fin à l'opération de décodage. Le dispositif de codage-décodage représenté sur les figures 1 à 5 10 utilise une mémoire associative possédant une adresse d'emmagasinage de mot pour chaque code ID possible et pour son code LV correspondant. Dans l'exemple choisi, les codes ID ont une longueur d'un octet (8 bits] et la mémoire associative doit par conséquent avoir une capacité de 256 mots afin de pouvoir recevoir toutes les combinaisons possibles d'octets. Cela permet de réaliser 15 une compression maximum des données. Il existe néanmoins de nombreux cas dans lesquels il peut être jugé souhaitable de sacrifier une faible partie de cette compression maximum afin de réduire dans des proportions importantes le coût de la mémoire. Une analyse des bases de données qui sont susceptibles d'être rencontrées en pratique peut permettre de conclure qu'un très faible pour-20 centage de cette compression maximum serait perdu si, par exemple, seuls les 150 codes ID les plus fréquents étaient convertis en codes LV. Les 156 codes ID restants pourraient alors être traités sans le codage et le décodage habituels, ces codes se présentant beaucoup moins fréquemment que les 150 autres. Les codes LV les plus longs sont affectés aux chaines de bits des 25 codes ID qui se présentent moins fréquemment et, de ce fait, une compression relativement peu importante est réalisée en les utilisant. Chaque fois qu'un de ces codes ID les moins fréquents se présente, il pourrait être identifié de façon appropriée (de la façon décrite ci-après) et faire simplement l'objet d'une "duplication" de la part du système sans procéder au codage normal. 30 Ce mode de fonctionnement est appelé ci-après "mode de duplication". Afin de pouvoir fonctionner en mode "duplication? le système représenté sur les figures 1 à 5 est modifié comme indiqué sur les figures 6 à 10. Une comparaison entre les figures 6 et 1 fera ressortir d'une façon générale les modifications requises. Dans cette réalisation, la mémoire associative MA' 35 de la figure 6 a une capacité d'emmagasinage de 150 mots ( un mot pour chaque paire correspondante de codes LV et ID) ainsi qu'un mot supplémentaire qui contient un code "duplication" dans sa zone LV. Le contenu'de la zone ID de ce dernier mot est immatériel dans la mesure où il n'est pas identique à l'un des codes ID contenus dans les 150 mots qui correspondent. Les circuits 40 de cormande (décrits plus loin) de la mémoire associative sont disposés 71 26006 16 2102142 de telle sorte que si aucun accord n'est obtenu sur aucun des codes ID emmagasinés dans les 150 mots d'accord de la mémoire associative pendant une opération de codage, le code "duplication" est alors automatiquement engendré en tant que sortie ds code LV. La sortie finale codée, lorsque l'appareil 5 fonctionne en mode "duplication", est une chaine de bits constituée par 18s bits du code "duplication" immédiatement suivis par les bits du code ID. Cela fournit évidemment une chaîne de bits de code qui est plus longue que la chaîne normale de bits des codes ID.'mais puisque cela se produit assez peu fréquemment, la compression globale des données n'en est pas affectée de façon 10 importante. Les dimensions de la zone des codes LV peuvent être choisies de façon à pouvoir recevoir le code LV le plus long qui puisse se présenter dans les mots qui font l'objet-d'un codage normal. Dans cet exemple particulier, une zone de codes LV d'une longueur de S bits est supposés pouvoir recevoir tous 15 ces mots. Une économie de sept cellules de mémoire par mot est par conséquent réalisée. Le dispositif de duplication permet donc de réaliser une économie non seulement en ce qui concerne le nombre de mots qui doivent être emmagasinés dans la mémoire associative MA', mais aussi en ce qui concerne le nombre de bits qui sont contenus dans chacun de ces mots. Ce dispositif permet donc 20 d'obtenir une compression satisfaisante des données en utilisant une mémoire associative de dimensions modestes. Le code "duplication" n'exige pas nécessairement le nombre maximum de bits significatifs. Cependant, par rapport aux autres codes LV emmagasinés, il ne doit pas comporter de préfixe. Ce code représente en fait tous les 156 25 codes ID qui, dans le présent exemple, sont traités sans le codage habituel. Ce groupe de codes, considéré comme une entité, peut Stre classé par ordre de fréquence de même que les 150 codes ID restants, et la fréquence d'apparition des membres de ce groupe déterminera la longueur du code "duplication" utilisé pour l'es représenter collectivement. Dans ces conditions, le code 30 "duplication" peut avoir une longueur (c'est-à-dire un nombre de bits significatifs) beaucoup plus faible que la longueur maximum de 9 bits pour les codes LV. Lorsque l'appareil de la figure 6 fonctionne en tant que décodeur, les codes d'entrée (qui peuvent dans certains cas comprendre.des combinaisons 35 des codes "duplication" et ID), sont chargés en série dans le registre d'argur\. ments de LV. Chaque code "duplication" déclenche une opération spéciale dont le but est de faire sortir les bits du code "duplication" du registre d'arguments en les décalant, et d'amener les huit bits suivants du code ID jusqu'aux huit positions les plus à droite de ce même registre. Ces huit bits ds 40 sont ensuite lus en parallèle depuis le registre d'arguments LV, au lieu d'être 71 26006 17 2102142 lus depuis le registre de données de décodage'd8 la façon habituelle. On fait ensuite sortir par décalage le code ID du registre d'arguments de LV (dans lequel il ne serait pas emmagasiné dans des conditions normales) afin d'introduire le code LV suivant. 5 Si, pendant une opération de codage, le code ID contenu dans le registre d'arguments ne trouve pas de code ID correspondant dans la mémoire associative MA', une opération spéciale est effectuée au cours de laquelle le code "duplication" est lu depuis la mémoire associative dans le registre de données de codage, dans lequel les bits de ce code sont ensuite lus en série. Immé-10 diatement après, les huit bits du code ID du registre d'arguments sont lus en série et ajoutés à la chaîne de bits des codes "duplication" afin de fournir une chaîne de bits de codes composites "duplication-ID" du type décrit ci-dessus. La figure 7 représente une partie des circuits de commande 56' de la 15 mémoire associative pour cette seconde réalisation de l'invention. Sur cette figure, comme sur les figures 8A à 10, les parties de la structure qui correspondent à des éléments de la première réalisation représentée sur les figures 1 à 5 sont identifiées à l'aide des mêmes numéros, les composants relatifs à la seconde réalisation étant simplement indiqués sous la forme 56', 20 48', 50' etc... Dans l'agencement de commande représenté sur la figure 7, une ligne de désaccord 48* et un indicateur d'accord 50' sont affectés à chacun des mots de la mémoire associative MA' (figure 6) exception faite de celui qui contient le code "duplication". Tout code "argument" qui ne correspond à aucun des 150 mots ayant des parties de codes LV et ID correspOft-25 dantes (figure 6) est supposé se trouver dans le groupe de codes identifiés collectivement par le code "duplication'.' Pendant une opération de codage, si le code d'argument ID ne correspond à aucun des mots auxquels des indicateurs d'accord 50' sont associés, tous ces indicateurs d'accord sont mis dans leur état "0". Des signaux sont de ce fait transmis depuis la ligne 30 de lecture 66' (figure 7) par l'intermédiaire d'une série de circuits ET 290 (chacun desquels reçoit une entrée de la sortie 0 de son indicateur d'accord respectif 50*), à une ligne de sélection de lecture 292 pour le code "duplication", ce dernier étant alors lu dans le registre de données en tant que première partie du signal codé. Au même instant, des signaux sont appliqués par 35 l'intermédiaire des lignes 292 et 294 à une bascule bistable de "duplication" 296 afin que celle-ci passe à son niveau "1". Comme il est expliqué plus loin de façon plus détaillée, cela entraîne la lecture en série, en tant que seconde partie du signal codé, des bits des codes ID emmagasinés dans le registre d'arguments. L'inscription d'un code ID pour lequel il n'existe pas de corres-40 pondance dans le registre d'arguments pendant une opération de codage se 71 26006 18 2102142 traduit donc par une chaîne de bits de codes composites consistant en un code "duplication" suivi du code ID. Il convient de noter que le fait que le code ID corresponde ou ne corresponde pas à la partie ID du mot contenant le code"duplication" est immatériel. Il s'agit en l'occurrence de"déterminer 5 si le code ID correspond ou non à l'un des codes ID emmagasinés dans les autres mots de la mémoire associative MA'. Pendant une opération de décodage, le code LV qui est utilisé en tant que valeur significative caractéristique de recherche correspondra soit à l'un des 150 mots contenant les codes corresponants LV et ID dans la 10 mémoire MA', soit au code "duplication" qui est emmagasiné dans celle-ci. Si la caractéristique de recherche est un code "duplication", tous lss indicateurs d'accord 50' (fig. 7) sont mis dans leur état "0" et les signaux de lecture sont transmis depuis la ligne 66' par l'intermédiaire des circuits ET 290 et des lignes 292 et 294 à la bascule bistable "duplication" 296, qui est 15 mise dans son état "1". Pendant une opération d8 décodage, cela a pour effet de décaler les bits du code "duplication" et de les faire sortir du registre d'arguments, et de mettre les bits du code ID suivant dans une position où ils puissent être lus directement depuis le registre d'arguments comme indiqué sur la figure 6. 20 Les figures 8A-8C et 9 - 10 représentent de façon plus détaillée la construction et le fonctionnement du système modifié incorporant le dispositif de "duplication". Sur ces figures, les éléments des circuits qui assurent des fonctions analogues à celles des éléments de la première réalisation (figures 1 à 5) sont identifiés à l'aide de numéros identiques, 25 les éléments relatifs à la seconde réalisation étant indiqués sous la forme 118', 142', etc... au lieu de 118, 142 etc... Afin qu'une corrélation puisse être établie entre les organigrammes des figures 9 et 10 et la structure représentée sur les figures 8A - 8C,les étapes de ces organigrammes sont respectivement identifiées à l'aide des références appliquées aux lignes sur 30 lesquelles sont transmises les impulsions d'horloge qui déclenchent ces étapes. Par exemple, l'étape E1' de la figure 9 est déclenchée par une impulsion d'horloge appliquée par l'intermédiaire de la ligne E1' représentée sur les figures 8C et 8B. Comme mentionné plus haut, la mémoire associative MA' (figure 8A] a une 35 capacité beaucoup moins importante que la mémoire associative MA de la figure 3A parce que, dans la seconde réalisation, la mémoire associative n'a pas à effectuer de conversion de codes pour chaque combinaison possible de bits de code qui peut lui être présentée. Les codes qui se présentent le plus fréquemment (et qui, dans le présent exemple, sont supposés être les codes 40 dont la longueur ne dépasse pas 9 bits sous leur forme codée en longueur 71 26006 13 2102142 variable) sont essentiellement traités de la façon précédemment décrite à propos des figures 1 à 5. Les opérations de codage et de décodage relatives à de tels codes ne seront donc pas décrites en détail. On s'attachera plus particulièrement ci-après à décrire les opérations relatives aux codes ID qui se produisent le moins fréquermient et qui, s'ils étaient codés de la façon normale, produiraient des codes LV d'une longueur dépassant 9 bits. Pour de tels codes, une procédure spéciale de cocjage "duplication" est suivie, comme expliqué plus loin. Dans le cas présent, on suppose que la majorité des configurations d'octets possibles qui constituent les codes ID entrent dans la catégorie des codes qui se présentent le moins fréquemment et pour lesquels la procédure de "duplication"est suivie. Tous les codes contenus dans ce groupe ont le même degré de probabilité et sont collectivement représentés par un code "duplication" commun, qui, dans le format codé, précédera le code ID et l'identifiera comme étant celui qui a fait l'objet d'une "duplication" sans codage normal. De plus, la même longueur, correspondant au nombre de bits significatifs dans le code "duplication", est affectée à chacun des codes de ce groupe. La longueur et la forme du code "duplication" dépendent du degré de probabilité du groupe de codes qu'il représente (lorsqu'il, est 20 considéré comme formant un tout), par rapport aux autres codes disponibles. Une opération de codage est décrite ci-après à l'aide de la figure 9 et des figures 8A à 6C. Le compteur d'octets 80' (figure 8B) est mis au nombre d'octets de codes ID qui doivent être codés. Une impulsion dite de départ est appliquée à la ligne 90' (fig. 8C) afin de déclencher le fonctionnement de 25 l'horloge de codage. A l'étape E1' (figure 9), le code ID à coder est chargé dans le registre d'arguments 100' (fig. 8A). Les indicateurs d'accord 50' (fig. 7) dans les circuits de commande de la mémoire associative sont remis à l'état "1". Dans la présente réalisation, une fonction supplémentaire est effectuée par l'impulsion d'horloge transmise sor la ligne E1'. Cette 3Q impulsion (fig. 8B) est appliquée par l'intermédiaire d'un circuit OU 300 à la bascule bistable de "duplication" 296, qu'elle remet dans son état "0". Aux étapes E2' et E3' (fig. 9), une recherche associative yst effectuée avec le code ID contenu dans le registre d'arguments afin d'obtenir un mot 35 correspondant. Si un tel mot est lu dans la mémoire MA', le code LV qu'il contient est lu et chargé dans le registre de données 120' (fig. 8A). Si aucun mot correspondant n'est lu, les circuits de commande 56' de la mémoire associative (fig. 7) excitent la ligne de sélection de lecture du code "duplication" afin que ce dernier soit lu'et chargé dans la zone des codes 40 LV du registre 120'. Au même instant, les circuits de commande provoquent la 71 26006 20 2102142 transmission da signaux par l'intermédiaire de la ligne 294 à la bascule bistable "duplication" 296 (fig. 0B] afin que cette dernière soit mise dans son état "1". Le compteur d'octets 60' est alors décrémenté d'une unité. Le cycle constitué par les étapes E4', E5', et E6' de l'organigramme de 5 la figure 9 est répété autant dB fois qu'il- le faut pour obtenir une lecture en série dss bits de code significatifs emmagasinés dans la zone à 9 bits du registre de données 120' [fig. BA) que le code emmagasiné dans cette zone soit un code LV ou un code "duplication". Lorsque le dernier bit significatif est lu, le compteur ds longueur (c'est-à-dire les quatre positions 10 les plus à droite du registre 120') est ramené à zéro. A cet instant, la porte 130' Cfig. 8B) à laquelle est appliquée l'imjpulsion d'horloge transmise sur la ligne E6' est rendue conductrice afin que les signaux soient transmis depuis la ligne de sortie zéro 146' du comptsur de longusur, par l'intermédiaire d'une ligne 302, aux trois circuits ET 304, 305 et 306. 15 Si la bascule bistabls 296 Bst mise dans son état "1", indiquant qu'un code "duplication" a été lu, une séquence" spéciale d'étapes doit être déclenchée afin que les bits du code ID emmagasinés dans le registre d'arguments soient transmis en série immédiatement après le dernier bit du code "duplication? Cette séquence spéciale porte les référenças E7 à E10 sur la 20 figure 9 et est déclenchée lorsque les excitations coïncidentes sont appliquées au circuit ET 304, c'est-à-dire lorsque le compteur de longueur est ramené à zéro (étape E6') cependant que la bascule bistable "duplication" se trouve dans son état "1". Un signal est alors transmis par le circuit ET 304 par l'intermédiaire d'une ligne 310 dans le câble 150' (fig. 8B 25 et 8C), à un monostable*312, qui passe à son nivsau haut pour sngendrer une impulsion d'horloge sur la ligne E7. Cette impulsion a pour effet de restaurer le compteur de longueur à 1000 (soit un 0 décimal). Le compteur est ainsi préparé à commander la lecture des huit bits du code ID emmagasinés dans le registre d'argument 100' (fig. SA). 30 Lorsqu'il passe au niveau bas, le monostable 312 applique une impulsion par l'intermédiaira d'un circuit OU 314 (fig. 0C) à un monostable 316, qui passe au niveau .haut afin d'engendrer une impulsion d'horloge sur la ligne E8, (fig. 8Ci 8B, et SA). Cela a pour effet de rendre conductrice une porte 320 (fig. 8A) et de permettre la transmission au dispositif de sortie 35 du bit placé le plus à droite dans le registre d'arguments 100'. Un monostable 322. (figure 0C) passe ensuite au niveau haut afin d'engendrer une impulsion d'horloge sur la ligne E9. Cela a pour effet â'exciter la ligne de décalags du registre 100' (fig. 0A) et de décrémenter le compteur d'une unité. Le monostable 324 (fig. 8C) passe ensuite au niveau haut afin 4Q d'engendrer une impulsion d'horloge, sur la ligne E1Q, laquelle impulsion rend 71 26006 21 2102142 conductrice une porte 326 (fig. 8B) afin de vérifier l'état du compteur de longueur. Si le compteur de longueur n'est pas à zéro (ce qui signifie que des bits de codes supplémentaires doivent être lus dans le registre d'arguments ID), 5 d8s signaux sont transmis depuis la ligne de sortie non-zéro 144' du compteur de longueur par l'intermédiaire de la porte 326 à une ligne 330 et, de là, par l'intermédiaire du circuit OU 314 (figure BC), au monostable 316. Cela a pour effet de déclencher de nouveau la séquence d'étapes E8, ES et E1Q de l'organigramme de la figure 9 afin de décaler le bit de code suivant dans le 10 registre d'arguments ID et de le faire sortir de ce dernier. Ce cycle est répété autant de fois qu'il le faut pour faire sortir tous les bits de code ID du registre d'arguments. Etant donné que 8 bits de code ID doivent être lus dans le registre d'arguments et que le compteur de longueur a été initialement mis à la même 15 valeur (étape E7), la lecture du bit de code ID final remet le compteur à zéro. De ce fait, la vérification prévue à l'étape E10 contraint la porte 326 (figure 8B) à laisser passer les- signaux depuis la ligne de sortie zéro 146* à une ligne 332 aboutissant aux circuits ET 334 et 335. Si, à cet instant, le compteur d'octets n'est pas à zéro, le circuit ET 334 est conduc-20 teur, ce qui provoque l'application des signaux par l'intermédiaire de la ligne 336 (figures 8B et 8C) et du circuit OU 92' au monostable 94', déclenchant ainsi une nouvelle séquence de codage commençant par l'étape E1' (figure 9). Lorsque cela se produit, les huit bits du code ID ont été lus dans le registre d'arguments 100' (figure 8A) consécutivement au train 25 de bits de code "duplication" précédemment lus dans la zone à neuf bits du registre de données 120'. Une chaîne de bits composites de codes "duplication "-ID a ainsi été engendrée. On répète ensuite la série d'étapes E1' à E6' décrite ci-dessus. Si le code ID suivant emmagasiné dans le egistre 100' n'est pas l'un des codes 30 entrant dans la catégorie spéciale"duplicationï la bascule bistable "duplication" 296 (figure 8B) restera à l'état "0". Dans de telles conditions, si le compteur d'octets n'est pas encore passé à zéro,le circuit ET 334 (figures 8B et 9j, transmet un signal destiné à déclencher de nouveau l'étape E1.' dès que le dernier bit significatif aura été lu dans la zone 35 des codes LV du registre de données. Les opérations qui sont effectuées lorsque la bascule bistable "duplication" reste à son niveau "0" sont des opérations normales de codage ou de décodage décrites ci-dessus à propos de la première réalisation [figures 1 à 5). Lorsque le compteur d'octets est à zéro et que la bascule bistable 40 "duplication" est également dans son état "0", le circuit ET 335 devient 71 26006 22 2102142 conducteur et engendre une impulsion dite de "fin" lorsque le dernier bit de code a été lu dans le registre de données. Cependant, si la bascule se trouve dans son état "1" à cet instant, cela indique que seuls les bits du code "duplication" ont été lus, et il est à présent nécessaire de lire les bits du 5 codé ID qui doivent suivre le code "duplication". Dans ce cas, le circuit ET 304 (figures 8B et 9) devient conducteur et déclenche l'opération de branchement représentée par les étapes E7 à E10 dans lesquelles les bits du code ID sont lus. Lorsque le dernier bit du code' ID a été lu, si le compteur d'octets est à zéro, le circuit ET 335 engendre une impulsion "fin" qui termine l'opération. 10 L'opération de.décodage du système modifié est décrite ci-après à l'aide des figures 10 et 8A à 8C. On se souviendra que lorsqu'une chaîne de bits de code d'entrée se compose d'un code "duplication" suivi d'un code ID (figure 6), le code "duplication" doit Stre ignoré par le système, et les huit bits suivants du code ID sont alors lus directement en tant que sortie décodée 15 sans tenir compte de la procédure normale de décodage. Pour toutes les autres chaînes de bits reçus, un décodage normal a lieu de la façon précédemment décrite à propos de.la réalisation représentée sur les figures 1 à 5. L'opération de décodage est déclenchée par l'application d'une impulsion dite de "départ" à la ligne 180", ce qui fait passer le monostable 182' au 20 niveau haut (figure 8C). Le nombre de codes entrant qui doivent être décodés et convertis en octets de codes' ID est chargé dans le compteur d'octets 80'. Lorsque le monostable 182' passe au niveau haut, une impulsion d'horlog8 est appliquée par l'intermédiaire de la ligne D1' à un dispositif indiqué sur la figure 8A pour restaurer le compteur de longueur à 1001 (9 décimal). A ce 25 stade, il est nécessaire-de remplir le registre d'arguments 178' à 9 bits avec les bits successifs du premier code LV et des codes suivants éventuels, jusqu'à concurrence des 9 premiers bits. Cela est fait conformément à la série d'étapes D2', D3' et D4' de la figure 10, laquelle est repétée jusqu'à ce que le compteur de longueur ait été décrémenté à 0000 à l'étape D3'. 30 La porte 202' (figure 8B) transmet alors un signal depuis la ligne de sortie zéro 146' du compteur de longueur à la ligne 220' et au circuit OU 222' afin que le monostable 224 passe à son niveau haut, une impulsion d'horloge étant alors engendrée sur la ligne D5'. Cette impulsion restaure les indicateurs d'accord 50', des circuits de 35 commande 56' de la mémoire associative dans leur état "1", elle traverse d'autre part le circuit OU 3.00 (figure 8B) et restaure la bascule bistable "duplication" 296 dans son état "0". Le monostable 226' passe alors à son niveau haut afin d'engendrer une impulsion d'horloge sur la ligne D6', et en conséquence le contenu du registre d'arguments 178' fait l'objet d'une recherche associa-40 tive avec le contenu de la zone de codes LV à 9 bits de la mémoire associative 71 26006 23 2102142 MA'. Si un mot correspondant existe ce mot est lu dans le registre de données 120' Cétape D7'.figure 10) et la bascule bistable "duplication" 296 reste dans son état zéro. Si aucun mot correspondant n'est obtenu, la ligne 294 (figures 8A et 8B) provenant des circuits de commande 56' est excitée de façon 5 à mettre la bascule bistable "duplication" dans son état "1", indiquant ainsi que le code le plus à droite emmagasiné dans le registre d'arguments 178' est un code "duplication". L'impulsion d'horloge transmise sur la ligne D7'a également pour effet de décrémenter le compteur d'octets 80'. Lorsqu'il passe au niveau bas, le monostable 232' (qui avait engendré 10 l'impulsion d'horloge sur la ligne D7') engendre une impulsion sur la ligné 350 (figures 8C et 8B) qui aboutit aux entrées des circuits ET 352 et 354. Si la bascule 296 est dans son état "0" (ce qui signifie qu'aucun code "duplication" n'est en cause), les signaux sont transmis depuis la ligne 350, par l'intermédiaire de la porte ET 352 et de la ligne 356 (figures 8B et 8C), 15 au monostable 236' qui passe au niveau haut afin d'engendrer une impulsion d'horloge sur la ligne D8'. La série normale d'opérations de décodage comprenant les étapes D8' à D11' .(figure 10) est alors effectuée, ce qui a pour effet la lecture en parallèle et la transmission au dispositif de sortie des bits du code ID récupérés, emmagasinés dans la zone ID à 8 bits du registre 20 de données 120*. Les bits emmagasinés dans le registre d'argument 178' sont progressivement décalés en ordre descendant jusqu'à ce que le compteur de longueur soit remis à zéro (étapes D9' à D11*). Cependant, que le compteur de longueur passe à zéro des signaux sont transmis depuis la ligne 146' par l'intermédiaire de la porte 248' (figure 8B) 25 à une ligne 360 menant aux circuits ET 362 et 364. Si le compteur d'octets n'était pas encore à zéro les signaux continueraient d'être transmis, par l'intermédiaire de la porte ET-362, de la ligne 366 et du circuit OU 222' (figure 8C), au monostable 224' afin de déclencher une nouvelle série d'étapes D5' à D7' (figure 10). Cependant, si le comptëurâ'octets était 30 à zéro, le circuit ET 364 (fi. 8B) serait rendu conducteur et engendrerait une impulsion "fin". Les opérations de détermination d'accord et de lecture sont effectuées de la façon décrite ci-dessus jusqu'à ce que le code "duplication" soit lu dans le registre d'arguments 178'. Une fois ce dernier code emmagasiné dans le registre de données 120' (étape D7', figure 10), 35 la bascule bistable "duplication" 296 (figure 8B) se trouve dans son état "1". Dans ces conditions, lorsque le monostable 232' (figure BC) passe à son niveau bas afin d'engendrer une impulsion sur la ligne 350; le circuit ET 354 (figure 8B) est rendu conducteur et transmet cette impulsion depuis la ligne 350 à une ligne 370 (figures 8B et 8C), et de là, par l'intermédiaire 40 d'un circuit OU 372, à un monostable 374. Ce dernier, lorsqu'il passe à son 71 26006 24 2102142 niveau haut, engendre une impulsion d'horloge sur la ligne D12. déclenchant ainsi une série spéciale d'étapes D12 à D16 (figure 10) afin de décoder la combinaison de codes qui a été reçue et qui est constituée par un code "duplication" suivi d'un code ID. Cette opération spéciale de décodage consiste. 5 en bref, à décaler le code"duplication" dans le registre d'arguments 178' et à le faire sortir de ce dernier, puis à lire les huit bits de codes suivants à partir de ce registre, ces derniers constituant le code ID qui doit être récupéré. Cette opération spéciale de décodage est décrite ci-après de façon plus 10 détaillée. L'impulsion d'horloge transmise sur la ligne D12 est appliquée par l'intermédiaire du circuit OU 210' à la ligne de décalage 212' du registre d'arguments 178', ce dernier étant de ce fait amené à décaler son contenu d'une position de bit vers la droite. Au même instant, l'impulsion d'horloge transmise sur la ligne D12 est également appliquée par l'inteimé-15 diaire du circuit OU 132' [figure BB) à la ligne 134', qui, lorsque des impulsions lui sont appliquées, provoque la décrémentation du compteur de longueur (figure 8A), d'une unité. Le passage au niveau bas du monostable 374 (figure 8C) provoque le passage au niveau haut du monostable 376, qui engendre une impulsion d'horloge sur 20 la ligne D13. Cette impulsion est ensuite transmise par l'intermédiaire du circuit OU 192' [figure 8B) à la ligne 194' de façon à rendre conductrice la porte 196' (figure 8A), un bit étant ainsi chargé depuis le dispositif d'entrée dans la position la plus à gauchedu registre d'arguments178' afin de remplacer le bit précédemment décalé et sorti de ce registre. 25 Le passage au niveau'bas du monostable 376 provoque le passage au niveau haut du monostable 378, lequel engendre une impulsion d'horloge sur la ligne D14 qui aboutit à une porte 380 (figure 3B). Si à cet instant le compteur n'est pas à zéro, des signaux sont transmis depuis la ligne non zéro 144' (figure 8B), par l'intermédiaire de la porte 380, de la ligne 382 et du 30 circuit 372 (figure 8C), au monostable 374, qui passe à son niveau haut afin de déclencher de nouveau la série d'étapes D12 à D14 de la figure 10. On se souviendra que lorsque le code "duplication" avait initialement été rencontré pendant l'opération de recherche associative (étape D6'), le mot contenant ce code avait été lu et emmagasiné dans le registre de données 35 120'. Cela avait provoqué le chargement, dans la partie "compteur de longueur" du registre de données de l'indicateur de longueur associé à ce code. Par conséquent, .la série.d'étapes D12 à D14 (figure 10) doit être répétée autant de fois que l'indique cet état du compteur de longueur afin d'extraire tous les bits du code "duplication" du registre d'arguments 17B'. Lorsque le 4Q compteur de longueur passe à zéro pour indiquer que le dernier bit du code 71 26006 25 2102142 "duplication" a été décalé et axtrait du registre d'arguments5 Ibs bits qui occupent à présent les huit positions les plus à droits du registre d'arguments 178' sont Ibs huit bits du code ID quivenaient irranédiatement après le cods "duplication". Ce sont ces huit bits qui doivent être récupérés. Lorsqu'il résulte de la vérification effectuée par l'impulsion d'horloge transmise sur la ligne D14 que le compteur de longueur est à zéro,des signaux sont transmis depuis la ligne zéro 146' (figure 8B), par l'intermédiaire de la porte 380 et dB la ligne 386 (figures 8B et 8C3» au monostable 390 qui passa à son niveau haut afin d'engendrer l'impulsion d'horloge sur la ligne D15. Cetts âernière impulsion est appliquée à une porte 392 (figure 8A). Pour lire les huit bits emmagasinés dans les huit positions les plus à droite du rsgistre d'arguments 178', qui sont lus en parallèle et communiqués au dispositif de sortie. Lorsqu'il passe au niveau bas le monostable 390 haut (fig. 8C) fait passsr au niveau/le monostable 393 qui génère une impulsion D16 qui, à travers le circuit OU 311 (fig. BB), par le fil 313 (fig. 8A) restaure le compteur de longueur à 1000. Le monostable 393 quand il rstombe applique une impulsion à la ligné 394 qui aboutit aux circuits ET 396 et 398 (figure 8B). Si à cet instant, le compteur d'octets n'sst pas sncore zéro cette impulsion est transmise par l'intermédiaire du circuit ET 396, ds la ligne 400 et du circuit OU 186' (fig. 8C) au monostabls 190' afin de déclencher ds nouvsau l'étaps D'2 ds l'opération de déocdage (figure 103. Les étapas D'2, D'3, D'4 sont répétéss jusqu'à réduire le contsnu du comptsur de longueur de 1000 à 0000, ceci en snlsvant les 8 bits de code 10 du registre d'argument 178' et en décalant le contenu de ce registre de huit positions vers la droite pour amener en position 1b code suivant. Si le compte d'octets est à zéro quand le monostable 393 (fig. 8C] retomba, l'impulsion sur 394 traverse le circuit ET 398 (fig. 8B) ce qui engendre un signal de fin marquant l'achèvement de l'opération de décodage.. Bien qus l'on ait décrit dans ce qui précéda st représenté sûr les dessins les caractéristiques principales de l'invention, appliquées à un « mode de réalisation préférée de celle-ci, il est évident que l'horrme de l'art peut y apporter toutes modifications ds forma ou de détail qu'il jugs utilss sans pour autant sortir du cadre de ladite invention. 71 26006 26 2102142 REVENDICATIONS 1. Procédé du type établissant une correspondance entre un premier code dont tous les éléments sont à longueur fixe et un second code dont plusieurs éléments au moins, sinon tous, sont à longueur variable, caractérisé en ce que, dans le cas le plus général où le second code dit è longueur variable com- 5 prend certains éléments à longueur fixe, le passage du code à longueur fixe au code à longueur variable comprend les étapes suivantes : mise en mémoire dans une première portion de mémoire des mots de codes possibles à longueur variable, mise en mémoire dans une deuxième portion de mémoire de mots de code à longueur fixe correspondants respectivement avec 10 les mots à longueur variable, mise en mémoire dans une troisième partie de mémoire d'éléments indicateurs de longueur donnant chacun le nombre de bits significatifs du mot à longueur variable respectif, comparaison du mot à longueur fixe entrant avec les mots à longueur fixe en mémoire, si aucune coïncidence, n'apparaît utilisation du mot de code entrant comme mot 15 de code sortant, si une coïncidence apparaît extraction du mot à longueur variable correspondant, ladite extraction pouvant être réalisée notamment par mise dans un registre du mot à longueur variable, le bit significatif d'ordre le plus bas étant dans la position d'ordre le plus bas du registre, suivie d'une extraction par décalage du contenu des portions du registre, 20 le nombre de décalage étant donné par la valeur de l'indicateur de longueur associé. 2. Procédé du type établissant une correspondance entre un premier code dont tous les éléments sont à longueur fixe et un second code dont plusieurs éléments au moins, sinon tous, sont à longueur variable, caractérisé en 25 ce que, dans le cas général où le second code, dit à longueur variable, comprend certains éléments à longueur fixe, le passage du code à longueur variable au code à longueur fixe comprend les étapes suivantes : mise en mémoire dans une première portion de mémoire des mots de code possibles à longueur variable, mise en mémoire dans une deuxième portion 30 de mémoire des mots de code à longueur fixe correspondants respectivement avec les mots à longueur variable, mise en mémoire dans une troisième portion de mémoire d'éléments indicateur de longueur donnant chacun le nombre de bits significatifs du mot à longueur variable respectif, comparaison du mot de code entrant avec les mots de code à longueur variable en mémoire, 35 si aucune coïncidence n'apparaît utilisation du mot de code entrant comme mot de code sortant, si une coïncidence apparaît extraction du mot à longueur fixe correspondant, la comparaison du mot entrant de code à longueur variable, 71 26006 27 2102142 pouvant être notamment faits en sntrant ce mot dans un rsgistrs avec ls fait significatif d'ordre le plus faible initialement dans la position d'ordre le plus faible du registre en associant le mot ainsi dans le registre avec le mot à longueur variable en accord et de mêmB longueur, dans la mémoire 5 dont on sort le mot à longueur fixe correspondant tandis que l'on décale le registre pour entrer le mot à longueur variable suivant. 3. Procédé conforme à la revendication 1, caractérisé en ce que lorsque le code à longueur variable comprend certains mots à longueur fixe, ces mots sont composés d'une partie significative de longueur fixe et d'un 10 indicatif spécial, confirmant qu'ils sont à longueur fixe et enregistré dans une quatrième portion de la mémoire, eb ce que, dès lors, dans le cas où aucune coïncidence n'apparaît, le mot de code sortant est l'ensemble constitué par le code indicatif et le mot de code entrant. 4. Procédé conforme à-la revendication 2, caractérisé en ce que lorsque le 15 code à longueur variable comprend certains mots à longueur fixe, ces mots sont composés d'une partie significative de longueur fixe et d'un indicatif spécial confirmant qu'ils sont à longueur fixe, en ce que, dès lors, le mot de code sortant est la partie significative du mot de code entrant en ce que on entre dans le registre tous les bits jusqu'à son remplissage complet, 20 les opérations étant telles que le bitd'ordre minimum d'un code est toujours dans la position d'ordre minirr. du. registre^si une coïncidence existe le registre est ensuite décalé de la valeur de l'indicateur de longueur, si pas de coïncidence, le contenu du registre.est.décàlé du nombre de positions de l'indicatif spécial, puis du nombre de positions du code à 25 longueur fixe, le contenu de ces dernières correspondant alors au mot de code sortant. 5. Système de conversion de code permettant la mise en oeuvre des procédés conformes à une quelconque des revendications précédentes caractérisé en ce que on utilise une mémoire associative avec un registre d'argument, la 30 partie de la mémoire où sont conservés les mots à longueur variable étant composée de cellules pouvant prendre un état neutre ledit état étant appliqué aux cellules de cette partie- qui ne renferment pas de bits significatifs de mots de longueur variable. 6. Système conforme à la revendication 5 caractérisé en ce que le registre 35 d'argument a une première portion active quand on reçoit Ses codes à longueur variable, une deuxième portion active quand on reçoit des codes 71 26006 28 2102142 à longueur fixe, la portion active à la réception de code à longueur variable pouvant être décalée sélectivement dans la direction des ordres décroissants.