Brevet FR2068679A1 — publié le 19710827

La présente invention concerne une mémoire associative à mise en séquence automatique. Une mémoire associative est une mémoire comprenant plusieurs registres de mots disposés de façon que l'on puisse accéder à un registre de mots 5 suivant son contenu plutBt que, comme dans les autres mémoires, suivant la position du registre de mots dans la mémoire. La sélection d'un registre de mots dans une mémoire associative se fait, dans la plupart des cas, à la suite d'une opération que l'on appelera recherche. Un argument de recherche est comparé"au contenu d'un champ sélectionné de registre de mots et 10 les registres dont le contenu du champ sélectionné concorde avec l'argument de recherche sont sélectionnés pour une opération d'accès. A chaque registre de mots est associé un"basculeur de sélection et le registre est sélectionné pour y avoir accès lorsque son basculeur de sélection est mis à un état stable donné. 15 On a trouvé que les mémoires associatives contenant des tables de fonction sur lesquelles sont réalisées les opérations de consultation constituent un moyen pratique dans les systèmes de traitement de données. Dans la demande de brevet n° 6918096 déposée par la demanderesse en France le 4 Juin 1969, est décrit un système de traitement de données utilisant'des mémoires associa-20 tives. Les performances peuvent Stre dans certains cas améliorées si une mémoire associative réalise une séquence d'opérations sous une commande externe au moins partielle. Un des objets de cette invention est de réaliser une mémoire associative à mise en séquence automatique. Conformément à l'invention, une mémoire associative à mise en séquence 25 automatique comprend un registre d'entrée pour emmagasiner un argument de recherche à utiliser dans une opération de recherche et des sorties disposées de façon qu'une partie des données fournies par la mémoire à la suite d'une opération de lecture soit introduite dans le registre d'entrée, constituant au moins une partie de l'argument de recherche pour une opération de recher-30 che ultérieure réalisée par la mémoire. La mémoire associative peut être de préférence, bien que ce ne soit pas nécessaire, analogue à la mémoire décrite dans le brevet français n° 1 582 992 déposé par la demanderesse en France le 3 Septembre 1968. La mémoire décrite dans ce brevet peut réaliser les opérations "recherche", "registre 35 suivant", "lecture" et "écriture". L'opération "registre suivant" provoque le transfert des états de chaque basculeur de sélection au basculeur du registre de mots adjacent dans une direction donnée. L'opération peut être combinée à une opération de recherche ou peut être utilisée seule. Par exemple, on suppose que les registres de mots sont numérotés dans l'ordre croissant. 40 Si le basculeur de sélection du registre N est enclenché, l'opération "régis- 70 36309 2 2068679 tre suivant" restaure le basculeur de sélection du registre N et enclenche le basculeur de sélection du registre N+1. S'il résulte d'une opération de recherche que le basculeur ds sélection du registre N est enclenché, la corn** binaison des opérations de recherche et "registre suivant" fait que le bascu-5 leur de sélection du registre N+1 est enclenché. La mémoire à mise en séquence automatique de l'invention utilise en plus une opération appelée "registre précédent" dans laquelle la direction du transfert de l'état d'un basculeur de sélection est opposée à celle de l'opération "registre suivant". Si le basculeur de sélection du registre 10 N 'est enclenché, l'opération "registre précédent" fait que le basculeur de sélection du registre N-1 ast enclenché. Dans une mémoire associative, le champ de l'argument de recherche d'une opération de recherche est délimité par un registre de masque, qui contient des basculeurs qui par leur état sélectionnent les ordres des registres de 15 mots qu'il faut examiner pour recherche une concordance avec l'argument de recherché. Le champ défini par le registre de masque est appelé, le champ de recherche. Le registre de masque est commandé par des signaux de commanda engendrés de l'extérieur et définit le champ sur lequel une opération de lecture ou d'écriture doit avoir lieu. Le cycle de fonctionnement de la mémoire 20 associative est celui décrit dans le brevet n° 1 582 992, dans lequel, au cours du premier cycle, ont lieu une recherche sur le champ de recherche et/ou une opération "registre suivant" ou "registre précédent" et dans le second cycle a lieu une opération Lecture ou Ecriture. La mémoire peut Être disposée de sorte que le champ de Lecture ou d'Ecriture comprenne les ordres des re-25 gistrss de mots qui ne sont pas utilisés dans le champ de recherche. Un seul masque est alors utilisé pendant chaque cycle d'emmagasinage. On préfère cependant définir le champ de recherche au début de la première partie d'un cycle d'emmagasinage et le champ de lecture ou d'écriture au début de la seconde partie du cycle. Ceci donne plus de souplesse dans le choix des champs. 30 II est possible qu'à la suite d'une opération de recherche, plusieurs registres de mots soient sélectionnés pour y avoir accès. Dans ce cas, si l'opération à réaliser sur les registres sélectionnés est une opération de lecture, le contenu des champs de lecture de tous les registres sélectionnés sont lus simultanément, ce qui correspond effectivement à une opération logi» 35 que OU sur les données accédées. Si l'opération est une opération "d'écriture", les données à écrire sont introduites simultanément dans tous les registres sélectionnés. L'opération ou la combinaison d'opérations que la mémoire réalise sur chaque cycle est définie par les données de commande qui peuvent Être amenées 40 de façon appropriée à un décodeur qui fait partie de la mémoire. Dans la 70 36309 3 2068679 description qui va suivre, on donnera différents exemples, montrant comment une mémoire est commandée. Une autre caractéristique désirable mais non souhaitable d'une mémoire associative à laquelle cette invention est appliquée est que les cellules 5 de mémoire qui constituent la mémoire soient des cellules à quatre états capables de prendre des états représentant les chiffres binaires 1 et 0, et en plus des états que l'on appellera respectivement X et Y. L'état X est tel que lorsque le contenu de la cellule de mémoire est comparé à un argument de recherche, la cellule n'engendre pas de signal de desaccord, que l'argument 10 de recherche soit un 1 ou un 0 binaire. L'état Y est l'inverse de l'état X et il est tel qu'une cellule dans l'état Y engendre toujours un signal de désaccord quelque soit l'argument de recherche. Une cellule à quatre états appropriés est décrite dans le brevet n° 1 581 240 déposé par la demanderesse en France le 19 Août 1968. 15 D'autres objets caractéristiques et avantages de la présente invention ressortiront mieux de l'exposé qui suit, fait en référence aux dessins annexés à ce texte, qui représentent un mode de réalisation préféré de celle-ci. Les figures 1, 3, 5, 6, 8, 9, 10, 12 et 14 représentent les différents montages de mémoires associatives à mise en séquence automatique conformes 20 à l'invention. Les figures 2 et 4 représentent des diagrammes des transitions de mode représentant le fonctionnement des mémoires des figures 1 et 3 respectivement. Les figures 7, 11 et 13 sont des organigrammes montrant la séquence des fonctions réalisées par les mémoires à mise en séquence automatique des 25 figures 6, 10 et 12, respectivement. La figure 1 représente schématiquement une mémoire associative à mise en séquence automatique 10 conforme à l'invention qui contient une table de fonction de décodage à vingt lignes pour engendrer un signal 'de sortie à cinq bits, Z1 à Z5 à partir d'un signal d'entrée à quatre bits P1, P2, 30 01, Q2, la sortie ne dépendant pas seulement de l'entrée mais aussi du mode suivant lequel la mémoire fonctionne. La mémoire fonctionne dans un des quatre modes A à D, et les seuls changements de mode possibles sont représentés schématiquement sur la figure 2. Par exemple, lorsque la mémoire fonctionne dans le mode B, elle peut passer au mode C ou au mode D, mais non au mode 35 A. La mémoire 10 a treize bits de large et comprend un registre entrée/sortie 11 contenant un champ de clé à deux bits, un champ d'entrée à quatre bits, un champ de nouvelle clé à deux bits et un champ lecture à cinq bits Un bus de données relie les champs de nouvelle clé et de clé. La mémoire réalise 40 une combinaison fixe d'opérations à savoir recherche, lecture et comporte 70 36309 4 2068679 un masque fixe qui est tel que l'opération de recherche utilise comme argument de recherche les champs de clé et d'entrée du registre 11 et l'opération de lecture, provoque la lecture des champs correspondant des lignes sélectionnées de la table de fonction et leur introduction dans les chanps de nouvelle clé et sortie. Le contenu du champ de nouvelle clé est transféré immédiatement au champ de clé et constitue une partie de l'argument de recherche pour l'opération de recherche suivante. Sur la figure 1 et dans tout cet exposé, on suppose, à moins qu'il y ait une indication contraire, qu'une ligne d'une table de fonction occupe un registre de mot. Une cellule de donnée est représentée sur la figure par son contenu dans cet exemple 1, 0 ou X. Le décodeur fonctionne conformément aux régies suivante: (a) Si P1, P2 sont respectivement 01 ou 10, ou 00, sauf pour le cas spécial (b), l'entrée à quatre bits P1, P2, Q1, Q2 est décodée en une sortie à cinq bits Z1 à Z5. £b) Si P1, P2, Q1, Q2 est 0000 ou 0010 et que le mode est le mode C, on passe au mode A, (c) Si P1, P2 est 11, un changement de mode se produit suivant les valeurs de 01, Q2, (d) Les changements de mode autres que ceux représentés sur la figure 2 ne sont pas possibles. Si on essaie de réaliser un changement de mode impossible, une configuration d'erreur dans laquelle Z1 à Z5 ne contiennent que des 1 est émise. On va maintenant expliquer plus en détail le fonctionnement de la mémoire à mise en séquence automatique de la figure 1 afin d'établir les principes de fonctionnement qui sont utilisés dans les autres exemples de l'invention décrite en se référant aux autres figures. Initialement le registre 11 est vide, ne contenant que des 0 binaires. La clé initiale est ainsi 00. Si P1, P2 est 00, une sélection est réalisée à partir des lignes 0 à 2 de la table. Si Q1, Q2 est 00, la ligne 0 est sélectionnée et la sortie est 01001, si Q1 est 1, la ligne 2 est sélectionnée que Q2 soit égal à 1 ou à 0 puisque 02 est comparée dans l'opération de recher che avec une cellule dans l'état X. Une technique analogue est utilisée pour les lignes 3 et 4 où les valeurs de P1, P2 déterminent complètement la sortie. Pour chacune des lignes 0 à 4, la nouvelle clé est 00, ce qui signifie que dans l'hypothèse où l'entrée suivante P1, P2 n'est pas 11, la sortie suivante sera sélectionnée à partir des lignes 0 à 4. Si P1, P2 est 11, une sélection est faite à partir des lignes 16 à 19 de la table. Le champ clé de'chacune de ces lignes comprend des cellules de mémoire dans l'état X de sorte que les lignes peuvent être sélectionnées 70 36309 5 2068679 quelques soient les valeurs dans le champ de clé du registre 11. Dn verra que dans les lignes 16 à 19 les valeurs de Q1, Q2 sont les mêmes que les champs de nouvelle clé. Par conséquent, Q1, Q2 déterminent la transition de mode. Si la transition de mode tenté n'est pas permise, non seulement 5 une des lignes 16 à 19 est sélectionnée mais aussi une des lignes 7, 11, 14 ou 15 qui contient le signal d'erreur. Puisque les lignes sélectionnées sont lues simultanément, la sortie est le résultat de l'opération QU sur de Q00QQ provenant d'une des lignes 16 à 19, et de 11111 provenant d'une des lignes 7, 11, 14 ou 15, qui est le signal d'erreur 11111. Cette technique qui cons-10 iste à combiner les champs de sortie des lignes sélectionnées simultanément est utilisée dans les autres exemples à décrire. Le cas spécial (b) est réalisé par la ligne B de la table qui est sélectionnée si le mode est C (clé 10) et si P1, P2 et Q2 ne contiennent que des 0..I1 est sans importance que 01 soit 1 ou 0 puisque la cellule Q1 de la 15 ligne 8 se trouve dans l'état X. A la sélection de la ligne 8, on passe au mode A (nouvelle clé 00). Dans la table de transition de mode de la figure 1, il y a relativement peu de transitions interdites. Lorsqu'il y a un nombre relativement grand de transitions interdites, on peut utiliser la technique de réalisation de 20 table représentée sur la figure 3. Les transitions permises entre les modes A et D sont représentées sur la figure 4. Une transition valide est signalée par la sortie 00001 tandis qu'une transition interdite est signalée par la sortie 00000. La différence entre les tables de fonction des figures 1 et 3 peut être résumée en disant qu'avec la table de la figure 1, toutes les 25 transitions sont initialement supposées va lides et les transitions interdites sont traitées comme des cas particuliers tandis qu'avec la table de la figure 3, toutes les transitiosont supposées interdites et les transitions valides sont traitées comme des cas particuliers. Une des conséquence de'cette solution est représentée en considérant les transitions à partir du mode C et 30 à partir du mode D. La seule transition valide à partir du mode C (clé 10) est une transition au mode D (clé 11). La fonction OU sur les deux clés est 11 qui est la clé nécessaire pour la transition au mode D. Les transitions du mode C peuvent Stre traitées en sélectionnant les lignes M et N+3 de la table si la transition est valide et seule la ligne N+3 si la transition 35 n'est pas valide. Cependant, la seule transition valide du mode D au mode A nécessite une nouvelle clé 00 et il est impossible d'obtenir cette clé comme le résultat de la fonction DU de deux opérandes différents. Ainsi, seules la ligne N est sélectionnée si la transition est valide (01, Q2 sont 00) mais les lignes N+4 et N5 ne sont pas sélectionnées à cause de la présen-40 ce des 1 dans les positions Q1, 02 des lignes respectives. L'une ou l'autre 70 36309 6 2068679 des lignes ou les deux lignes N+4 et N+5 sont sélectionnées si tJ1, Q2 ne sont pas 00. Jusqu'ici, on a décrit une mémoire à mise en séquence automatique qui engendre une partie de son argument de recherche suivant. La figure 5 repré-5 sente schématiquement une mémoire qui peut réaliser des séquences d'opérations automatiques plus complexes. La mémoire associative 26 comporte deux registres entrée/sortie I/O 1 et I/O 2, et à partir de l'un ou l'autre de ces registres un argument de recherche peut être pris et, entre l'un ou l'autre de ces registres et la mémoire associative 26, un transfert de données peut avoir 10 lieu. La mémoire est commandée par un décodeur 27 qui,, en réponse aux données de commande, détermine la combinaison d'opérations à réaliser dans un cycle mémoire et pour chaque partie du cycle, quel registre entrée/sortie et quel masque doivent 6tre utilisés. Le registre I/O 1 est divisé en champs 28 à 32. Les champs 29 et 31 sont les champs de données d'entrée et de sortie 15 respectivement. Le champ 30 est un champ nouvelle clé qui est connecté au champ clé 28 par une ligne 33. Le champ 32 est un champ de commande d'opération qui fournit les données de commande émises par la mémoire sur la ligne 34 au décodeur 27. Le registre I/O 2 est divisé en champs 35 à 39. Une commande externe qui peut être constituée par des données engendrées par un micro-20 programme ou émise par une autre mémoire associative est connectée par la ligne 41 à un champ de clé 35 et par la ligne 42 au décodeur 27. Les champs 36 et 38 sont les champs de données d'entrée et de sortie respectivement et les champs 37 et 39 constituent un moyen pour charger à partir du registre I/O 2 les données de commande d'opération et nouvelles clés dans la mémoire 25 26. La mémoire 26 peut Être mise en séquence automatiquement à partir du registre I/O 1 pour que les champs 30 et 32 émettent une information suffisante pour commander le cycle d'opération suivant de la mémoire, mime si les données d'entrée dans le champ 29 sont inchangées, le registre I/O 2 constitue 30 le moyen grâce auquel la- mémoire est commandée de l'extérieur. Comme exemple des techniques de mise en séquence automatique, décrites jusqu'ici, la figure 6 représente une mémoire associative avec une table de fonctions, pour la réalisation de l'opération. Si A On sait que l'addition binaire de deux opérandes peut Être réalisée 40 en faisant la fonction OU exclusif des opérandes et en utilisant un' des opé 70 36309 7 2068679 randes et la fonction OU exclusif pour donner le résultat de l'addition. Puisque la fonction équivalence de deux opérandes binaires dans laquelle les résultats contiennent un 1 dans chaque ordre qui est identique dans les deux opérandes, est la même que la fonction OU exclusif d'un opérande négatif 5 et d'un opérande positif, en combinant le résultat de la fonction équivalence et un des opérandes, on obtient le résultat de l'addition d'un opérande positif et d'un opérande négatif, 'est-à-dire le résultat de la soustraction de deux opérandes. La figure 7 représente un organigramme du procédé utilisé par la mémoire de la figure B pour réaliser l'opération exposée ci-dessus. 10 Sur la figure B, tous les détails des sous tables ne sont pas représentés car ils ne concernent pas directement 1'invention qui est relative aux caractéristiques de mise en séquence automatique de la mémoire. Le registre entrée/sortie et la mémoire est divisé en champs K, M, N, P, Q, R et S. Le champ K est le champ clé et il est connecté au champ de 15 nouvelle clé Q par la ligne 43. P est le champ d'entrée et S le champ de sortie, qui est connecté par la ligne 44 au champ N. M est un champ d'entrée de commande et doit contenir un 1 pour que la séquence d'opérations commence ou continue. R est un champ de sortie de commande qui signale une source de données comme cela sera expliqué. Sur la figure B et d'ans les autres figu-00 res, à moins qu'une indication contraire soit mentionnée, une position vide dans une table de fonction représente une cellule dans l'état X. La mémoire est disposée pour réaliser la combinaison fixée des opérations de recherche sur les champs K, M, N et P et de Lecture sur les champs Q, R et S. La lecture du champ Q donne les champs K pour l'opération de recherche 25 suivante et la lecture du champ S donne le champ IM pour l'opération de recherche suivante. Initialement, le champ M est à zéro, la mémoire est inactive, sélectionnant la ligne 1 et extrayant les champs Q, R et S qui ne contiennent que des zéros. Losqu'un 1 est placé dans le champ M et qu'un opérande A se trouve simultanément dans le champ P, la table de décalage est sélectionnée 30 puisque le champ K. est 00 et M est maintenant égal à 1. Si A est négatif, le bit d'ordre le plus haut est égal à 1 et au moins la ligne 2 de la table sera sélectionnée, ce qui donnera un champ Q de 11, indépendamment des autres lignes qui sont sélectionnées. Le champ S est l'opérande A et apparaît comme le champ N pour l'opération de recherche suivante. 35 L'opérande B est à ce moment placé dans le champ P du registre entrée/sortie. Au cours du second cycle de la mémoire, le champ K étant 11, on accède à la table OU exclusif et les lignes de la table qui donnent la fonction OU exclusif de l'opérande A dans le champ N et de l'opérande B dans le champ P sont sélectionnées pour la lecture. Le résultat de l'opération apparaît 40 dans le champ S et est transféré au champ N. Le champ 0 est 01 qui sélectionne 70 36309 8 2068679 la table addition-report pour terminer l'opération dans un troisième cycle de la mémoire. L'opérande B est maintenu dans le champ P durant ce cycle. La table addition-report émet le résultat final dans le champ S. Si au contraire l'opérande A est positif, son bit d'ordre supérieur 5 n'est pas 1 et la ligne 2 de la table n'est pas sélectionnée au premier cycle. La lecture du champ Q donne 10, ce qui conduit à la sélection de la table d'équivalence au second cycle. La table d'équivalence émet un champ Q de 01 conduisant à la sélection de la tabla addition-report dans le troisième cycle. 10 'Le champ de sortie de commande est 1 à la fin du premier cycle et lorsque le résultat final est émis. Ceci peut être interprété comme une demande de l'opérande B et comme une indication que le résultat se trouve dans le champ S. Si le champ d'entrée de commande M comprend plusieurs bits, il est pos-15 sible de combiner et de faire se chevaucher des tables pour deux ou plusieurs opérations. Un exemple est représenté sur la figure 8. La mémoire réalise les mêmes opérations que la mémoire de la figure 7 et comporte les. mêmes champs sauf que le champ M comprend deux bits. Les tables représentées sont capables d'exécuter les deux opérations suivantes! 20 Opération 1 : si A Opération 2s si A > 0 , on a X=B+A si non X=B»A. Les fonctions nécessitent pour exécuter les deux opérations, les tables addition-report, équivalence et OU exclusif. Celle des opérations qui est à réaliser et celle des tables à laquelle on doit accéder en premier lieu 25 est déterminé par les lignes 2 à 5 de la mémoire. Si le champ M est 01, l'opération 1 est à exécuter et un champ G) de 11 provenant de la ligne 2 ou 10 ou provenant de la ligne 3 est émis comme clé de l'opération de recherche suivante suivant que le bit d'ordre supérieur de l'opérande A est 1 ou 0 respectivement. Si le champ M est 11, l'opération 2 est à exécuter et un 30 champ Q de 10 provenant de la ligne 4 ou 11 provenant de la ligne 5 est émis suivant que le bit d'ordre supérieur de l'opérande A est 1 ou 0 respectivement. On notera que ce choix a lieu en mBme temps que l'opérande A est décalé au champ S. Les opérations sont exécutées dans trois cycles comme décrit en se référant aux figures 6 et 7. 35 La figure 9 représente un exemple de mémoire associative à mise en séquen ce automatique dans laquelle la sortie de la mémoire au cours d'un cycle commande les champs sur lesquels seront réalisées des opérations de recherche ou de lecture au cours du cycle suivant La mémoire est disposée pour exécuter l'opération 1 décrite précédemment et comporte les mêmes champs et tables, 40 bien que les champs soient légèrement modifiés comme cela sera expliqué. 70 36309 9 2068679 Le champ S n'est cependant pas connecté au champ N. De plus, il y a un champ T à deux bits dont le contenu commande les sections 45 et 46 du registre de masque correspondant respectivement au champ N et S, le bit de gauche du champ T commande la section du registre de masque 45 et le bit de droite 5 commande la section 46. Le montage est tel que lorsque le bit de commande est 0, la section commandée fait que l'on peut accéder à son champ correspondant mais non y effectuer une recherche et lorsque le bit de commande est 1, la section commandée fait que l'on peut effectuer une recherche dans le champ correspondant mais non y accéder. Comme pour les autres mémoires décrites, 10 le cycle mémoire comprend une combinaison des opérations de recherche et de lecture. Initialement, la mémoire étant inactive, la ligne 1 est sélectionnée de façon répétitive. Le champ T est 10, ce qui signifie que 18 champ N fait partie de l'argument de recherche. L'opérande A est placé dans le champ P 15 et un 1 dans le champ M. La table de décalage est sélectionnée, envoyant l'opérande A au champ S du egistre entrée/sortie et déterminant à partir du signe de A comme décrit précédemment, si la table d'équivalence ou OU exclusif est à utiliser ensuite. Le champ T est 01, ce qui fait que le champ S fait partie de l'argument de recherche du cycle suivanti Ceci évite d'avoir 20 à transférer le champ S au champ N comme dans les exemples précédent. Ensuite le champ T de la table d'équivalence ou OU exclusif est 10, ce qui fait que l'argument de recherche relatif au troisième cycle comprend le champ N. Dans la table addition-report, le résultat apparaît dans le champ S. Le champ T peut commander le masquage des ordres individuels au lieu, 25 ^ comme décrit, des groupes d'ordres ou peut Stre dispose pour sélectionner différents masques pendant chaque partie d'un cycle d'emmagasinage. Par exemple, chaque groupe d'ordres sera attribué à deux bits du champ T, dont un détermine si les ordres sont masqués pendant la phase de recherche et l'autre si les ordres sont masqués pendant la phase accès. ^ Il est souvent commode pour une mémoire associative de réaliser une partie d'une séquences d'opérations et ensuite de transmettre le résultat partiel à une autre mémoire pour que la séquence soit terminée. Ceci est appelé opération en chaîne. La figure 10 représente deux mémoires 101 et 102 associées, de ce type. Les champs de commande qui conduisent à la mise en séquence automatique sont les champs M, N, K, L, V, W et F. Puisque, si une mémoire est prise parmi une chaîne de mémoires reliées, il peut être nécessaire de transmettre les signaux de commande aux mémoires adjacentes dans la chaîne, il y a deux champs de sortie de commande V et W respectivement, pour transmettre l'information de commande et deux champs d'entrée de comman-^ de M, N pour recevoir l'information de commande. K est le champ clé et L k 70 36309 2068679 le champ nouvelle clé. F est un champ de commande de fonction. Comme représenté sur la figure 10, le champ d'entrée de commande N1 de la mémoire 101 est connecté au champ de sortie de commande V2 de la mémoire 102, et le champ de sortie de commande W1 de la mémoire 101 est connecté au champ d'entrée 5 de commande M2 de la mémoire 102. Les champs de clé et de nouvelle clé sont connectés de la manière classique. Dans l'application à décrire, le fonctionnement de la mémoire 101 est inchangé, de sorte que seule la mémoire 102 a un champ F commandant le décodeur de fonction 103. La mémoire 101 a des champs de données P, Q et Rj P étant un champ de données d'entrée recevant les données 1D s ' a partir d'une source externe ou champ Q, et R étant un champ de données de sortie. La mémoire 102 a deux champs de données S et T, S étant un champ de données d'entrée recevant les données à partir du champ R, et T étant un champ de données de sortie. L'application à décrire est celle de la normalisation des données en 15 virgule flottante. Les données comprennent 0 bits, les 4 bits d'ordre supérieur étant la caractéristique et les 4 bits restants la mantisse, la virgule binaire est placée immédiatement à gauche du bit d'ordre le plus haut du nombre. La normalisation est réalisée lorsque le bit d'ordre supérieur du nombre est 1, de sorte que la mantisse a une valeur décimale entre 0,5 et 1. Si 20 le bit d'ordre supérieur est 0, le nombre doit être décalé vers la gauche, jusqu'à ce qu'il soit normalisé et la caractéristique diminué de 1 pour chaque décalage. Les fonctions réalisées par les mémoires 101 et 102 sont représentées sur la figure 11. La caractéristique est contenue dans la mémoire 101 et 25 la mantisse dans la mémoire 102. Chaque fois que l'on trouve nécessaire de décaler la mantisse, la caractéristique est augmentée de 1. La mémoire 101 a un cycle, comprenant la recherche, la lecture sur les champs respectifs indiqués en dessous de la mémoire. La mémoire 102 au cours du cycle suivant le moment où le décodeur 103 a reçu un 1 à partir du champ F réalise aussi 30 une recherche, une lecture sur les champs indiqués. On notera que le champ S fait partie du champ de recherche et du champ de lecture. Au cours du cycle suivant le moment où le décodeur 103 a reçu un 0 à partir du champ F, la mémoire 102 réalise une opération, registre suivant, lecture. Les espaces blancs dans la figure, sauf aux endroits où un table est indiquée, représentent 35 les cellules qui sont dans l'état X. Les champs M, N, K., L, V et W sont les mêmes pour chaque ligne d'une table, mais ne sont pas repris sur la figure 10. Les champs P, 0, R, S et T ont chacun quatre bits. Initialement, les deux mémoires sont inactives, sélectionnant et lisant leurs mots respectifs 1. Lorsque le champ d'entrée de commande M1 est mis 40 à 1, les données dans le champ P du registre entrée/sortie à ce moment sont 70 36309 11 2068679 prises comme mantisse. La table de décalage, mots 2 à 5 de la mémoire 101, est sélectionnée et les données dans le champ P sont transférées au champ R. Pendant la phase de lecture, le champ K1 devient 01, le champ de sortie de commande V1 est 1, le champ d'entrée de commande M2 de la mémoire 012 5 est mis à 1, et le champ R est transféré au champ S de la mémoire 102. La caractéristique est maintenant obtenue à partir d'une source externe sur le champ P. Dans le cycle suivant, la mémoire 101 sélectionne la table de décalage des mots B à 9 et transfère la caractéristique au champ Q. De façon synchrone, la mémoire 102 avec le champ K2 00 et le champ M2 1, effectue une 10 opération de recherche et de lecture sur les mots 2 à 7, Si la fraction est déjà normalisée, le mot 3 ou le mot 4 au moins est sélectionné, le champ L2 devient 11 et le champ V2 devient 1. Si la fraction n'est pas normalisée, un des mots 5, B et 7 au moins est sélectionné et le champ L2 devient 01, tandis que le champ F est mis à 0, demandant une opération registre suivant, 15 lecture et le champ V2 reste à 0. On va d'abord décrire la séquence d'opérations dans ce dernier cas. Au début du cycle suivant, le champ Q est transféré au champ P du registre entrée/sortie et une recherche est réalisée avec le champ K.1 égal à 10 et le champ N1 égal àO. Ceci sélectionne les mots 10 à 19 de/ la mémoire qui 20 forment une table permettant de diminuer la valeur de la caractéristique dans le champ P de un et transférer le résultat au champ Q. Dans la mémoire 102, unB opération registre suivant, lecture a lieu. Pour fixer les idées, on suppose que la mantisse est 0101 obtenue dans le cycle précédent au cours de la sélection des mots 5 et 7 de la mémoire. L'o-25 pération registre suivant, lecture provoque la sélection et la lecture des mots B et 8. Les données dans le registre S sont maintenant 1010 qui est obtenu par un décalage à gauche de la mantisse provoquant sa normalisation. Ceci est signalé par la sélection du mot B. Le mot 8 fait que ld champ V2 devient 1 et ainsi, le champ N1 de la mémoire 101 change pour devenir égal 30 à 1. Les champs L2 et F changent aussi pour devenir 11 et 1, respectivement. Au cours du cycle mémoire synchrone suivant, dans la mémoire 101, la mantisse dans le champ 0 est transférée au champ R à cause de la sélection des mots 20 à 23 de la mémoire car le champ N1 est maintenant 1. Dans la mémoire 102» le champ K.2 est maintenant 11 et les mots 11 à 14 sont sélectionnés ce qui 35 fait que la mantisse dans le champ S est transférée au champ T et ainsi est extraite de la chaîne. Au cours du cycle suivant, la mémoire 101 est inactive et la mémoire 102 reprend son opération précédente, le contenu du champ S étant, maintenant la caractéristique qui est transférée au champ R dans le cycle précédent de la mémoire 101. On notera que si le mot 8 de la mémoire 40 102 n'est pas sélectionné pendant le cycle au cours duquel la mantisse est k 70 36309 2068679 décalée, les clés et autres informations de commande des mémoires ne sont pas changées et le cycle est repris. Si la mantisse est normalisée, elle apparaît d'abord dans le champ S de la mémoire 102, le mot 3 ou 4 de la mémoire est sélectionné et la mantisse 5 et la caractéristique sont transférées sucessivement comme décrit précédemment au champ T de la mémoire 102. Les mémoires montées en série peuvent Être aussi disposées de sorte qu'une mémoire puisse émettre les données au décodeur d'opération d'une autre mémoire de la chaîne ou qui commande le masque d'une autre mémoire. t 10 L'exemple .final d'une mémoire à mise en séquence automatique est celui d'une table d'augmentation ou de diminution. La table à 54 mots est représentée sur la figure 12 et.l'organigramme de la figure 13 représente la séquence des opérations. Sur la figure 12, les blancs représentent les cellules dans l'état X et les Y représentent chacun une cellule présentant un désaccord 15 permanent. Un mot comportant un Y ne peut Stre sélectionné directement par une opération de recherche. Le registre entrée/sortie a des champs K, F, M, W, P, G), R, S et C et la mémoire contient quatre tables. Les mots 0 à 2 constituent une table de commande. Les mots 3 à 14 constituent une table prévision-report. Les mots 15 à 48 constituent une table de décalagB. Les 20 mots 49 à 53 représentent une table de marquage. La table incrémente un nombre de vingt bits appliqué aux champs P à S et donne les résultats dans les mêmes champs. Le cycle de fonctionnement fondamental est un cycle de recherche sur les champs K, P, Q, R, S et de lecture sur les champs F, M, W, P, 0, R, S, C. Le champ F peut insérer une opération registre suivant ou registre 25 précédent dans le cycle suivant que le champ comporte un 1 à droite ou à gauche de ses deux positions. La table incrémente le champ S ou, s'il y a un report dans le champ R, le champ R est décalé au champ S et incrémente. Ce décalage appelé XVR sur la figure 13, peut être réalisé plusieurs fois si le report doit se propager dans les champs Q ou P. A la fin de l'incrémen-30 tation, les champs sont'ramenés jusqu'à ce qu'ils occupent leur position initiale au moyen d'une ou plusieurs opérations de décalage inverse qui suppriment les 1 redondants. C'est la fonction du champ de marquage de compter les opérations de décalage et d'assurer que le nombre des décalages inverses soit le même. On va considérer comme exemple l'incrémentation du nombre: 35 P = Q = 0 j R = 00001j S = 11111 La clé est 0000. L'opération initiale est une opéi'ation de recherche sur les champs K, P, Q, R, S, de lecture sur les champs F, M, W, P, Q, R, S, C. Les mots 1, 13, 19, 25, 31, 37, 42 et 49 à 53 sont sélectionnés conduisant au champ de sortie. 40 70 36309 13 2068679 F = 01, M = 111, W = 111, . P = Q = 0, R = 00001, S = 11111, et C = 1. Le bit de commande dans le champ C est interprété par le décodeur de la mémoire, non représenté, comme une instruction pour changer le masque 5 pour effectuer une recherche sur les champs K, M, W, P, Q, R, S et une lecture sur les champs F, M, W, P, Q, R, S. Le champ F 01 est interprété comme instruction pour insérer une opération du registre suivant dans le cycle suivant. Pendant ce cycle, on trouve que les mots 13, 19, 25, 31, 37, 42, 43 et 49 concordent avec l'argument de recherche, mais à cause de l'opération registre 10 suivant, les mots 14, 20, 26, 32, 38, 43, 44 et 50 sont lus. La sélection du mot 13 indique qu'il y aura un repart résultant du champ 5. A la fin de ce cycle, le registre entrée/sortie contient: F = 01, M = 100, W = 111, P = 11111, 0 = R = 0, S = 00001, C = 0 15 Un décalage cyclique à droite des champs P à S a été réalisé. Pendant le cycle d'opération suivant, les fonctions réalisées au cours du cycle précédent sont reprises, mais à ce moment, on trouve qu'il n'y aura pas de report provenant du champ S au cours de l'incrémentation. Les mots qui concordent, sont les mots 5, 16, 22, 28', 34, 40 et 50. 20 Les mots lus sont les mots 6, 17, 23, 29, 35, 41 et 51. A la fin du cycle, le registre entrée/sortie contient. F = 10, M = 011, W = 001, P = 00011, Q = 11111, S = R = 0, C = 0 Le champ F est interprété comme champ demandant l'insertion d'opérations 25 registre précédent dans le cycle de fonctionnement. Dans le cycle suivant, les mots 1, 17, 23, 29, 34, 35, 38, 41 et 51 concordent avec l'argument de recherche, ce qui fait que les mots 0, 16, 22, 28, 33, 34, 37^ 40 et 50 sont lus. Le registre entrée/sortie contient alors F = 10, n = 100, W = 110, P = 11111, 30 Q = R = 0, S = 00010, C = 0 Un décalage cyclique à gauche du champ de données a eu lieu et les 1 redondants dans le champ S ont été supprimés. Finalement, les fonctions du dernier cycle sont reprises. Les mots concordants sont les mots 16, 22, 28, 34, 37, 40 et 50. Les mots sélectionnés sont 35 les mots 15, 21, 27, 33, 36, 39 et 49. Le registre entrée/sortie à la fin du cycle contient F = 00, M = 111, W = 111, P = Q = 0, R = 00010, S = 0, C = 1. Le bit de condition indique que l'opération est terminée. 40 La table peut Être étendue pour couvrir la diminution en ajoutant les k 70 36309 14 2068679 mots représentés sur la figure 14. La clé pour la diminution est 0001. On a décrit-diverses conceptions de mémoires associatives à mise en séquence automatique. Les mémoires peuvent réaliser une séquence d'opération indépendamment d'une commande externe, une fois que la séquence a été amorcée. 5 Une mémoire à mise en séquence automatique permet de déterminer les opérations qu'il faut réaliser pendant le cycle suivant et/ou quel masque il faut utiliser totalement et/ou partiellement qiâque soit l'argument de recherche. Bien que l'on ait décrit dans ce qui précède et représenté sur le dessin, les caractéristiques essentielles de l'invention appliquées à un mode de 10 réalisation préféré de celle-ci, il est évident que l'homme de l'art peut y apporter toutes modifications de forme ou de détail qu'il jugé utiles, sans pour autant sortir du cadre de ladite invention. 70 36309 15 2068679 REVENDICATIONS 1.- Mémoire associative à mise en séquence automatique caractérisée en ce qu'elle comprend: un registre d'entrée pour emmagasiner un argument de recherche à utiliser 5 dans une opération de recherche et des sorties disposées de façon que, au moins une partie des données émises par la mémoire à la suite dfune opération de lecture soit introduite dans le registre d'entrée pour former au moins une partie de l'argument de recherche d'une opération de recherche ultérieure réalisée par la mémoire. 10 2.» Mémoire selon la revendication 1, caractérisée en ce que: elle contient des tables de fonction pour la réalisation de fonctions arithmétiques ou logiques au moyen de procédés de consultation de tables, chaque table étant identifiée par une clé respective, et au moins une partie des données émises par la mémoire contiennent des 15 clés permettant de déterminer la fonction suivante réalisée par la mémoire. 3.» Mémoire selon la revendication 1 ou 2, caractérisée/en ce que elle peut réaliser diverses opérations d'emmagasinage ou d'accès sous la commande d'un décodeur d'opérations, certaines des sorties au moins de la mémoire étant connectées aux entrées du décodeur d'opérations, ce qui 20 détermine les opérations suivantes ou combinaison d'opérations à réaliser par la mémoire. 4.- Mémoire selon une quelconque des revendications précédentes, caractérisée en ce que: la mémoire est associée à un masque variable qui détermine- les champs 25 de la mémoire qui doivent être accédés, et certaines entrées au moins de la mémoire sont connectées au circuit de commande de masque pour déterminer le masque suivant avec lequel la mémoire doit fonctionner. 5.» Ensemble d'emmagasinage associatif comprenant une combinaison de mémoires 2Q à mise en séquence automatique selon l'une des revendications précédentes, caractérisé en ce que: la sortie d'une mémoire fournit au moins une partie de l'argument de recherche d'une autre mémoire de l'ensemble. t