FR 2012269 A1 19700320 FR 6918096 A 19690604 69 18096 1 2012269 ùa présente invention concerne un système de traitement de données électronique . Les systèmes de traitement de données électroniques actuels utilisent fréquemment des mémoires de commande pour emmagasiner des séquences de mlcro-ins-5 tructions ou autres mots de commande au moyen desquels le système peut exécuter des fonctions de traitement de données. Ordinairement, une mémoire de commande est une mémoire inaltérable et la réponse de la mémoire, ainsi que l'action qu'elle amorce par les mots de commande qu'elle transmet à un agent moteur donné quelconque est limitée. Il a été suggéré que la mémoire de commande contienne 1Q des informations modifiables mais la difficulté d'effectuer le changement en utilisant les techniques de commande des systèmes actuels, limite l'usage des possibilités à des occasions bien définies, par exemple, l'introduction d'un nouveau type de mot d'ordre ou d'instructions dans le système ou au démarrage. Fréquemment, une mémoire de commande modifiable est utilisée simplement comme 15 mémoire de commande auxiliaire à une mémoire inaltérable. La présente invention a pour objet un système de mémoire de commande plus souple. Conformément à la présente invention, un système de traitement de données électronique comprend une mémoire de commande associative pourvue de plusieurs 20 positions d'emmagasinage de mots dont chacune comprend un champ de repères de la mémoire de travail et un champ de repères d'identification de la mémoire de commande, et une mémoire de travail associative pourvue de plusieurs positions d'emmagasinage de mots dont chacune comprend un champ de repères d'identification de la mémoire de travail et un premier champ de données de la mémoire de 25 travail, le système comprenant un moyen de commande du fonctionnement de la mémoire de commande et un moyen de commande du fonctionnement de la mémoire de travail, le moyen de commande du fonctionnement de la mémoire de travail étant mis en oeuvre de façon sélective pour une comparaison du contenu du repère de la mémoire de travail d'un mot provenant de la mémoire de commande avec le con-30 tenu des champs de repères d'identification de la mémoire de travail, le moyen de commande du fonctionnement de la mémoire de commande étant mis en eouvre de façon sélective pour une comparaison du contenu du premier champ de données de la mémoire de travail d'un mot extrait de la mémoire de travail avec le contenu des champs de repères d'identification de la mémoire de commande. 35 II est à noter que chacune des deux mémoires transmet une adresse, et un repère qui permet d'avoir accès au contenu de l'autre mémoire. L'invention telle qu'elle est définie ci-dessus peut être appliqués de façon très générale mais il s'est avéré qu'en introduisant une troisième mémoire on obtenait un système de traitement de données électronique qui pouvait accomplir les fonctions de 40 calculateurs. 69 18096 2 2012269 En conséquence, un autre aspect de la présente invention consiste à fournir un système de traitement de données électronique qui comprend une mémoire de commande associative, une mémoire de travail associative et une mémoire locale associative, dans lequel la mémoire de commande emmagasine des mots de 5 commande, chacune de ces mémoires comprenant des repères de mémoire locale et de mémoire de travail ce qui fait que les positions d'emmagasinage de données dans la mémoire de travail et la mémoire locale sont sélectionnées en vue d'un accès, système dans lequel, la mémoire de travail emmagasine des tables de fonctions, ce qui fait que des fonctions logiques et/ou arithmétiques peuvent 10 être réalisées par des procédures de consultation de tables, et dans lesquelles la mémoire locale emmagasine des opérandes sur lesquels sont réalisées des fonctions logiques et/ou arithmétiques;les interconnexions entre les mémoires associatives étant telles que lorsqu'un mot de commande est lu ou extrait de la mémoire de commanda, les repères de la mémoire locale et de la mémoire de 15 travail dans le mot de commande favorisent l'accès à une table de fonctions particulière et aux opérandes particulièrs respectivement, les opérandes particuliers étant appliqués - à la mémoire de travail afin de permettre l'accès de l'entrée ou des entrées se trouvant dans la table de fonctions appropriée, à laquelle il y a eu accès, aux opérandes. 20 Un système de traitement de données électronique conforme à cet aspect de la présente invention a comme principal avantage par rapport aux systèmes classiques que l'équipement peut être de construction uniforme dans tout le système. - Un système classique requiert un équipement spécifique. Il comprend ordinairement un complexe da conditionnement dans lequel une porte quelconque donnée est 25 utilisée uniquement dans quelques unes des nombreuses opérations que le système peut accomplir. Des compteurs et registres spécifiques'sont également ordinairement nécessaires. Un calculateur comprenant un système de traitement de données conforme à la présente invention peut comprendre un certain nombre de mé-noires de construction identique. Le système de la présente invention offre 30 d'autres avantages du point de vue fabrication et maintenance. D'autres objets caractéristiques et avantages de la présente invention ressortiront de la description qui va suivre donnée à titre d exemple non limitatif, en se reportant aux dessins annexés La figure 1 représente de façon schématique une mémoire associative utili*-' 35 sée dans un système conforme à la présente invention. La figure 2 représente un diagramme'de fonctionnement général d;un système de traitement de données électronique conforme à la présente invention, La figure 3 représente un exemple d'une table de fonction, La figure 4 représente un diagramme de fonctionnement général d'un autre " 40' système de traitement de données électronique conforme à la présente invention. s V 69 5 10 15 20 25 30 35 40 18096 3 2012269 La figure 5 représente une table de fonction pour un compteur d'instructions. La mémoire associative 1 (figure 1} a été décrite dans la demande de brevet PV 9431 AM déposée au nom de la demanderesse et sera, donc seulement décrits de façon générale. La mémoire comprend un registre entrée/sortie 2, un registre de masques 3 et plusieurs mémoires de mots 4. Chaque mémoire de mots a une bascule de sélection primaire £P3 5 et une bascule de sélection secondaire CSy) 6. Ceetains ordres du contenu du registre entrée/sortie sont décodés dans le décodeur d'opération 7 afin de commander les circuits logiques de masques de mots et de bits 8. De façon bien connue dans une mémoire associative, l'opération fondamentale consiste à rechercher les mémoires de mots dont le con tenu suivant des ordres prédéterminés coïncide avec le contenu des mâmes ordres du registre entrée/sortie, et ensuite à utiliser le résultat de la recherche pour commander le transfert des données entre le registre entrée/sortie et les mémoires de mots. Les ordres prédéterminés sont sélectionnés au moyen du registre de masques 3. Les mémoires de mots contenant les données qui coïncident avec le contenu du registre entrée/sortie sont marquées en enclenchant une bascule de sélection appartenant à la mémoire de mots et la bascule ainsi enclenchée est utilisée pour commander le transfert subséquent des données. Les mémoires associatives utilisées dans le système de traitement de données qui sera décrit ici', ont subi plusieurs modifications par rapport à la mémoire de l'art antérieur. Chaque mémoire de mots a deux bascules de sélection 5, 6 et une opération de recherche peut résulter en ce que les bascules de sélection primaires des mémoires de mots coïncidents soient enclenchées ou en ce que les bascules de sélection secondaires le soient. Une opération appelée "Suivant" est fournie, ce qui fait que l'enclenchement de chaque bascule de sélection primaire ou de sélection secondaire est transféré respectivement à la bascule primaire ou secondaire de la mémoire de mots adjacente placée à distance du registre entrée/sortie. Seuls deux masques sont prévus, c'est à dire seuls deux groupes d'ordres prédéterminés du registre entrée/sortie peuvent être choisis en vue d'une comparaison avec le contenu des mêmes ordres de la mémoire de mots. Il est également possible de n'utiliser aucun masque. Chaque cycle de fonctionnement d'une mémoire associative-est divisé en deux cycles secondaires; dans le premier de ces deux cycles secondaires, il est réalisé une opération de Recherche et/ou une opération "Suivant" et dans le second cycle secondaire, il est réalisé une opération de transfert de données. S'il arrive que plus d'une mémoire de mots coïncide avec le contenu du registre entrée/sortie 2, durant une opération d'inscription, les ordres du registre 2 qui n'ont pas été utilisés pour la recherche, sont inscrits dans chacune des mémoires de mots coïncidents, tandis que dans une opération de lecture, 69 18096 4 2012269 le contenu des mimes ordres sont inscrits ensemble dans le registre entrée/sortie durant ce qui est effectivement une opération OU effectuée sur les mots coïncidents. Durant une opération de Lecture ou d'Inscription/ le contenu du registre entrée/sortie 2 est disponible sur un bus 9. 5 Sur les soixante douze combinaisons possibles des opérations disponibles dans la mémoire associative de la figure 1, seize d'entre elles sont utilisées dans le système ds traitement de données à décrire. L'opération de recherche pour des mots coïncidents est appelée par la suite opération de Sélection (S). Les opérations fondamentales sont identifiées de la façon suivante: 10 0 Sélection □ Pas de Masque N Suivant 1 Utiliser Masque 1 R Lecture 2 Utiliser Masque 2 W Inscription P Utiliser la bascule de sélection primaire Sy Utiliser la bascule ds sélection secondaire Les seize combinaisons sont les suivantes: 20 25 Opération 0: S N W 2 ' Sy N 1 : S N R 0 Sy W 2 ! S W 2 Sy IV 3: S R 2 Sy * 4: S N W 1 Sy m 5: S N R 1 Sy n S: N R 1 Sy m 7 : Pas d'opération m 8: s ■ R 1 Sy m 9: S W 1 sy Opération As N W 1 p M B: N R Q P N C: N R 0 Sy » D: N R 1 P * Es S W 1 P n Ft S R 1 P 30 Chaque opération est identifiée par le numéro ou la lettre placée dans la colonne gauche. Pour la réalisation d'une opération, le numéro ou la lettre est présentée au décodeur d'opérations 7 sous la forme d'un signal à 4 bits. Quelques opérations types vont maintenant être décrites. Opération 0 : Sélection, Suivant, écriture. Masque 2, Secondaire. La recherche se fait sur le champ du mot défini comme repère par le masque 2. Les basculas de sélection secondaire des mots proches des mots coïncidents sont enclenchées. Le champ du registre entrée/sortie non utilisé dans 69 18096 5 2012269 l'opération ds Sélection est inscrit dans les mots qui ont enclenché la bascule secondaire et est également appliqué sur le bus S. Opération 1 : Sélection, Suivant, Lecture, Pas de Masque, Secondaire. Etant donné qu'il n'y a pas de masque, toute la largeur du registre entrée/ 5 sortie est comparée à toute la largeur de toutes les mémoires de. mots. Les sélecteurs secondaires proches des mots coïncidents sont enclenchés et le contenu des mémoires de mot avec le sélecteur secondaire enclenché est soumis à une condition OU et envoyé dans le registre entrée/sortie et dans le bus. Opération 6 : Suivant, Lecture, Masque 1, Secondaire. 10 II n'y a pas d'opération de Sélection. L'enclenchement de chaque bascule de sélection secondaire est transféré sur la prochaine bascule de sélection secondaire. Le champ défini par le masque 1 de toutes les mémoires de mots lorsque les bascules de sélection secondaires sont enclenchées est lu et envoyé au registre entrée/sortie. 15 Bien qu'un système de traitement de données conforme à la présente inven tion puisse utiliser uniquement des cellules d'emmagasinage binaire dans les mémoires associatives, dans l'exemple d un système à décrire, les cellules d'emmagasinage sont des cellules associatives à trois états. Outre le fait de supposer que les états stables représentent l'état binaire 0 et l'état binaire 1 et 20 répondent aux indications de coïncidence et de non coïncidence aux signaux d'interrogation représentant 0 et 1, les cellules à trois états sont également capables d'assumer un état X ou "sans importance" dans lequel la cellule répond avec une indication de coïncidence quel que soit le signal d'interrogation. Des formes appropriées de cellules à trois états ont été décrites dans la demande de 25 brevet au nom de la demanderesse, déposée sous le numéro PV 9341 AN dans l'art antérieur. La figure 2 représente un schéma d'un calculateur électronique à programmes emmagasinés comprenant un système de traitement de données électronique conforme à la présente invention. La figure représente trois mémoires associatives, une 30 mémoire de commande 21, une mémoire de travail 22 et une mémoire locale 23. Les blocs représentant les mémoires sont subdivisés en champs dans lesquels est subdivisé chaque mot de la mémoire. Comme on le verra dans la description, les bus de transfert de données interconnectent certains des champs des différentes mémoires. Les données sont généralement représentées dans le calculateur sous fortne 35 d'éléments numériques ou digits codés binaires dont chacun comprend 4 bits. Bien que dans la pratique, chaque digit comprenne également un bit de parité, afin d'éviter toute complication inutile, il n'est pas fait allusion à ce bit dans la description. La mémoire locale 23 a une largeur de 6 digits, chaque mot comprenant un 40 champ 23a de repères de mémoire locale de 2 digits, un champ 23Jd de données 69 18096 6 2012269 1 de deux digits, et un champ 23jd de données 0 de deux digits. Deux masques CM54) sont utilisés dans la mémoire locale 23. Sous le masque 1, a lieu une opération de sélection en faisant coïncider les données dans les champs de données 1 et de repère de mémoire locale, et un transfert de données a lieu sur 5 le champ de données 0. Sous le masque 2, une opération de sélection a lieu sur le champ de données de mémoire locale et une opération de transfert de données a lieu sur les champs da donnée 1 et de données 0. La mémoire de travail 22 a une largeur de 7 digits chaque mot comprenant un champ da repère de mémoire de 2 digits, un champ 22t^ de données 0 de deux 10 digits, et un champ 22d de code de condition de 1 digit. 11 y a deux masques. Sous le masqua 1, une opération da Sélection a lieu sur les champs de tionnâsa 0 et de repères da mémoire de travail et un transfert de données se fait sur les champs de données 1 et da eoda/$8ndition. Sous le masque 2, une opération de sélection a lieu sur les champs de données 1, de données 0 et de repère de 15 données de travail, et les données sont transférées sur le Code de Condition. La mémoire de commande 21 a une largeur de S digits et chaque mot comprend un champ 21jj ds code de condition de 1 digit, des champs de repères de mémoire de commanda, de mémoire da travail et de mémoire locale qui sont respectivement désignés par 21b, 21£ et 21 ch chacun comprenant deux digits et un champ d'Opé-20 ration de mémoire da commande 21j3 da 1 digit. La mémoire de commande 21 a uniquer: v ment un masque, la masqua 1, sous lequel une Opération da Sélection a lieu sur las champs de Repère da mémoire de commande et de code de condition. □ans toutes les mémoires, l'utilisation d'un masque est facultative, c'est à dire.il est possible de faire une opération de Sélection sur toute la largeur 25 d'un mot et de réaliser un transfert de données sur toute la largeur d'un mot. Cette opération se fait invariablement conjointement à une opération "Solvant " au cours des opérations 1, B, C données ci-deBsus. C'est à dire, une opération de coïncidence est faite avec un mot et 11 y a accès au mot suivant du mot qui coïncide. 30 Les bus de transfert de données 24 à 27 connectent respectivement les champs de repères de mémoire de travail des mémoires de travail et de commande, les champs de repères de mémoire locale des mémoires locales et de commande, les champs de code ds condition des mémoires de travail et de commande, et les champs de données 0 des mémoires de travail et Locale. Le bus de transfert de 35 données 26 connecte les champs de Données 1 des mémoires de travail et locale et la champ de repère de mémoire de commande. Un calculateur électronique de programmes emmagasinés devrait avoir la possibilité de réaliser les opérations arithmétiques ou logiques en réponse aux instructions emmagasinées dans le calculateur. Ceci implique pour un travail 40 efficace, la possibilité d'exploiter des instructions de rattachement et plus é % • - 69 18096 7 2012269 particulièrement, la possibilité de rattacher une sous-routine d'instructions et de retourner au courant principal d'instructions à la fin de la sous-routine, □ans la description qui suit, l'attention se portera sur ces trois possibilités. Le calculateur représenté sur la figure 2 est un calculateur à microprogram 5 mes c'est à dirB l'exécution d une macro-instruction telle que ADDITION ou TRANSMISSION est amorcée et réalisée sur la commande d'un groupe de micro-instructions qui définissent chacune une opération plus élémentaire et l'opérande ou les opérandes sur lesquels doit être réalisée l'opération. Les calculateurs à micro-programmes organisés de façon classique ne seront pas donnés ici étant 10 qu'ils ont été décrits dans les brevets 1.429.730, 1429.731; 1.429.732, 1.436. 161, 1.436.169 et 1.437.719 tous déposés au nom ds la demanderesse. En bref, le calculateur de la figure 2 fonctionne de la façon suivante. La mémoire de commande 21 contient les séquences de micro-instructions, la mémoire de Travail 22 contient les tables de fonction et la mémoire locale 23 15 contient les macro-instructions et les données. Une macro-instruction est interprêtée comme sélectionnant une séquence de micro-instruction. Chaque micro-instruction contient un repère de mémoire de travail qui forme au moins une partie de l'argument pour avoir l'accès à une table de fonction particulière dans la mémoire de travail.La repère de mémoire de travail peut, par exemple, 20 définir le repère.de la table ADDITION. En général, le reste de l'argument représente les opérandes et est fourni à partir de la mémoire locale. Par exemple, le champ de données Q de la mémoire locale peut contenir deux digits à additionner qui, lorsqu'ils sont transférés à la mémoire de travail et combinés avec le repère ds mémoire de travail, vont fournir un argu-25 ment de recherche qui sélectionne la ligne ou les lignes de la table ADDITION contenant la somme des deux digits. Le résultat de l'opération de consultation de tables e9t lu et introduit dans le registre entrée/sortie de la mémoire de travail et est transféré à la mémoire locale. En considérant les tables de fonctions de façon plus détaillée, chaque 30 table est formée d'un réseau de lignes, chaque ligne comprenant une ou plusieurs positions de mémoire de la mémoire et étant formées d'un argument et d'une partie de données. Dans une opération de consultation de table, l'argument de chaque ligne est comparé à un argument de recherche placé dans le registre en-trée/sortie. Etant donné qu'une position d'emmagasinage de bit peut assumer 35 2'état X.ûu "sans importance", il est possible que les lignes ayant différents arguments soient sélectionnées par un seul argument de recherche. Ainsi, un argument de recherche 11 sélectionne les lignes dont les arguments sont respectivement XX, XI et IX et 11. Avec les masques de mémoire de travail représentés sur la figure 2, une ligne peut avoir un argument comprenant les champs 40 de données 0 et de repère de mémoire de travail ou les champs de données 1, 18096 8 2012269 de données 0 et de repère de mémoire de travail. L'argument peut également avoir toute la largeur de la mémoire de travail lorsqu'il est procédé à une opération de Sélection "Pas de Masque? Dans ce dernier cas, la partie de données de la ligne est placée dans la position d'emmagasinage de mot suivant et l'opération de consultation de table comprend l'opération Pas de Masque, Lecture, Suivant, Sélection, et l'Opération 1. Si la portion de donnée d'une ligne est trop longue pour être placée le long de l'argument dans une seule position de mot, la possibilité suivant de la mémoire de travail est utilisée et 11 est procédé â l'opération 5. 10 Un autre usage des opérations Suivant et Pas de Masque a lieu lorsque les données doivent être transmises du mime champ que l'argument de recherche. Une table de fonction pour les opérations ET, OU ou OU EXCLUSIF est représentée sur la figure 3. Le tableau donne 1s résultat ds ces opérations sur deux digits de quatre bits A et B. Chaque ligne de la table est placés dans une 15 seule mémoire de mots et les entrées de la table représentent les états 1, 0 ou X des cellules d'emmagasinage formant la mémoire de mots. On suppose que le digit A à considérer est 1001 et que le digit B est 1010. En utilisant la table, il est fait usage d'un masque qui permet une opération de Sélection sur les 10 colonnes gauches de la table, l'argument, et le transfert des données, 20 en fait la Lecture et sur las quatre colonnes droites le champ de sortie de données. Pour réaliser une opération ET, l'argument CARG) de recherche est 01 1001 1010. Les deux chiffres gauches ds l'argument sélectionnent uniquement las autres premières lignes de la table étant donné que le bit 1 dans las 8 lignes restantes permet une non coïncidence dans cas mémoires da mots. Il est à rappa-25 1er qu'une cellule à l'état X répond avec une indication de coïncidence quel que soit le signal d'interrogation de sorte que la présence d un bit 0 dans la position de repère CTG) gauche ne provoque pas une coïncidence dans les quatre premières mémoires de mots. Les quatre lignes sélectionnées de la table détectent chacune la présence des bits 1 dans les ordres correspondants des digits 30 A et B et sont sélectionnés uniquement dans le cas où les digits correspondants sont tous deux des 1. Le champ de sortie est un bit 1 dans l'ordre du digit attribué à la ligne et 0 dans les ordres restants. Il résulte de l'opération de Sélection que seule la mémoire de mots qui contient la première ligne de la table indique une coïncidence en enclenchant la bascule de sélection requise 35 soit la bascule primaire, soit la bascule secondaire et la sortie (□) résultante appliquée au registre entrée/sortie est 1000. Pour une opération OU EXCLUSIF, 1'argument de recherche est 10 1001, 1010. Etant donné qu'il y a un bit 1 dans la seconde colonne da la tabla, las quatre premières lignes ne sont pas sélectionnées et las 8 lignes restantes détectant 40 la présence de bits complémentaires dans les ordres correspondants des digits A 69 18096 9 2012269 et Bi Les coïncidences ont lieu dans les mémoires de mots- contenant les lignes 7 et 12 de la table, les champs de sortie respectifs étant 0010 et 0001. Etant donné qu'une opération de lecture consiste à soumettre à une condition OU les données de sortie en provenance des mémoires sélectionnées, le résultat appa-5 raissant dans 1s registre entrée/sortie est 0011. Finalement, pour une opération OU, l'argument de recherche est 11 10Q1 1Q10 dont les deux bits gauches sélectionnent les 12 lignes de la table. Les lignes 1, 7 et 12 sont sélectionnées par les bits restants du repère donnant les champs de données de sortie de 1000, 0010, et ÛQG1 et le résultat dans le registre 10 entrée/sortie est 1011. De manière à décrire le fonctionnement du calculateur de la figure 2, oa va supposer que la mémoire de commande 21, la mémoire de travail 22 et la mémoire locale 23 ont été respectivement chargées, au moyen d'un procédé classique, de microprogrammes, de tables de fonctions et de macro-instructions avec des 15 données. En outre, on s'arrangera pour que les codes de fonctionnement des macro-instructions soient alignés dans les champs de données 0 de la mémoire locale. Les macro-instructions sont emmagasinées séquentiellement dans la mémoire locale, la première ayant un repère de mémoire locale prédéterminé , et au démarrage du calculateur, une séquence ds micro-instructions d'amorçage 20 est sélectionnée et permet l'accès à la première macro-instruction et provoque également l'application d'un champ de données 0 à la mémoire de commande en tant qu'argument de recherche à comparer avec les repères de mémoire de commande des micro-instructions. Le micro-programme d'amorçage nécessite l'opération F: Sélection, Lecture, Masque 1, Primaire, Opération qui sélectionne la premiè-25 re instruction du micro-programme pour 1 opération à réaliser et qui permet la lecture en direction du registre entrée/sortie de la mémoire de commande des repères des mémoires locale et de travail et du code d'opération de mémoire de commande. Le repère de mémoire de travail est transféré sur le bus 24 du régis-; tre entrée/sortie de la mémoire de travail et détermine la table de fonction 30 dans la mémoire à utiliser dans l'opération. Lorsque une table est construite, l'opération la plus appropriée qui doit être réalisée en utilisant la table peut être prédéterminée. Par exemple, une table, au moyen de laquelle il est réalisé une opération de décalage, peut être construite de 3orts qu'en utilisant la table, 1 opération 35 3 soit nécessaire: Sélection, Lecture, Masque 1, Secondaire. Un des digits d'argument identifiant la table est choisi comme étant 3 et lorsque l'argument de recherche est placé dans le registre entrée/sortie pour l'accès a la table, le digit 3 est décodé par le décodeur d opération 7 [figure 1} afin de déterminer l'opération à réaliser. En conséquence, l'argument identifiant la table peut 40 également être utilisé pour la détermination de l'opération à réaliser. En 69 18096 10 2012269 fait, chaque table dans la mémoire ds travail est identifiée par deux- digits dont 19 premier est décédé pour donner l'opération è réaliser en utilisant la table. Ca stratagème est utilisé sur la figure 2 par la flâche 24a conduisant du bus 24 eu bord du blés représentant la mémoire de travail. 5 Le repère de mémoire Locale est transféré sur le bus 25 pour atteindre le registre entrée/sortie do mémoire locale et identifie une ou plusieurs mémoires ds mots contenant les données à utiliser dans l'opération à réaliser. Comme dans la mémoire de travail, le repère de mémoire locale contient l'information relative â l'opération à réaliser dans la mémoire locale. Une modification du stra-10 tagème utilisé dans la mémoire de travail est nécessaire étant donné que dans la mémoire locale, 11 n'est en général pas possible d'associer uniquement une seuls opération avec une position d'emmagasinage de mot particulière. Il est nécessaire de pouvoir transférer les données dans la plupart des positions d'emmagasinage de mots et à partir de de ces positions dans la mémoire locale. 15 Deux opérations typas sont l'opération 2, Sélection, Inscription, Masque 2, Secondaire, Opération qui est demandée par le digit codé Mftâire 0010, et l'Opération 3, Sélection, Lecture, MasquB 2, Secondaire, Opération qui est demandée par 1s digit codé-binalre 0011. Une position d'emmagasinage de mot ayant un digit d'argument 001X est sélectionnés soit par le repère 0010, soit par le 20 repère 0011 ds sorte qu'une opération ds Lecture ou une opération d'inscription puisse être effectuée sur la mémoire ds mots. Les dnnées sélectionnées dena la méirolrs locale comme résultant de l'entrés du repère da mémolra locale sont transmises à la mémoire ds travail pour réaliser l'argument da recherche.La sortie de données provenant de la mémoire 25 de travail/transférée sur les bus 27 et 28 pour atteindre habituellement la mémoire locale. Uns fois réalisée la première opération d'une séquence de micro-instrucr: -, tions, les micro-instructions suivantes sont chacune transmise de la mémoire de commande par l'opération D: Suivant, Lecture, Masque 1 : les repères ds 30 mémoire de travail ds Mémoire locale dans la position d emmagasinage de mot suivante sur la mémoire dans laquelle la micro-instruction précédente a été emmagasinée et lue pour être appliquée sur les bus de sortie. Il est ainsi évident qu'une séquence de micro-Instructions emmagasinée dans les positions d'-emmagasinage de mots successives de la mémoire de commande peut être exécutée 35 par le calculateur de la figure 2. Pour le branchement, à partir d'une séquence de micro-instructions, le procédé de sélection de la micro-instruction à exécuter est changé de sorte que la sélection dépende des conditions machines. Cette opération est effectuée en réalisant une opération de Sélection sur la mémoire de commande tout sn s'as-40 surant que l'argument de recherche reflète les conditions machine.. La micro- BAD ORIGINAL" 69 18096 n 2012269 instruction juste avant un branchement est transmise de la mémoire de commande par l'opération A: Suivant, Lecture, Pas ds Masque, Primaire, Opération qui résulte dans l'apparition d'un repère de mémoire de commande dans le registre entrée/sortie de la mémoire de commande. Il est fait en sorte que les sorties 5 de données î en provenance des mémoires locales et de travail soient connues ou soient prévisibles. Par exemple, il peut être procédé à une vérification qu'une opération arithmétique a été correctement réalisée dans la mémoire de travail, ce qui résulte en une ou deux sorties prédéterminées dans le champ de données 1 de la mémoire de travail. Le code de condition dans la mémoire de 1Q travail est transféré sur le bus 26 en direction des ordres correspondants du registre entrée/sortie ds la mémoire de commande. L'opération de la mémoire ds commande requise par la micro-instruction qui vient juste d'âtre mentionnée est l'opération F : Sélection, Lecture, Masque 1, Primaire, opération qui résulte en une sélection de la micro-instruction qui coïncide avec le contenu du champ 15 de repère de la mémoire de commande et du code de conditions du registre entrée/ sortie de la mémoire de commande. Si, comme cela est habituellement le cas, on suppose que les champs de données 1 sont tous des 0, étant donné que le repère de la mémoire de commande est prédéterminé, l'argument de recherche dépend alors du contenu du code de condition qui est formé d un seul digit à 4 bits 20 et peut ainsi prendre l'une quelconque des 16 valeurs. Un branchement à 16 trajets est alors possible. L'usage du code de conditions ne va pas être décrit en détails étant donné que ce moyen est bien connu dans les systèmes ds traitement de données. Le code de conditions est utilisé pour indiquer quelques conditions machine ou de don-25 nées provenant d'une manipulation de données. Le code peut, entre autres, indiquer lequel des deux opérandes est le plus grand ou si le dépassement de capacité provient du résultat d'une addition. La signification particulière à donnsr à un digit de code de conditions donné dépend en général, de l'opération qui vient juste d'être réalisée. Le même digit de Code de Conditions peut si-30 gnifier que la valeur du champ de données 1 est supérieure au champ de données 0 ou peut signifier dans un contexte différent, qu'un débordement de capacité a eu lieu. Etant donné que la mémoire de travail se trouve là où sont emmagasinées les tables de fonction, les conditions déterminant un branchement apparaissent 35 le plus fréquemment à la suite des opérations dans une mémoire de travail, mais quelquefois il est souhaitable de procéder à un branchement sur les signaux dérivés de la mémoire [locale. Cette opération est réalisée en faisant sn sorte que certains bits du repère de la mémoire de commande à utiliser en sélectionnant la micro-instruction du branchement soitont 0, et que les valeurs des bits 40 correspondants dans un champ de données 1 "tous des 0", reflètent la condition 18096 12 2012269 déterminant la branchement. Le champ de données 1 est lu et envoyé par le bus 28 dans le registre entrée/sortie de la mémoire de Commande, en même temps que le repère de la mémoire de commande. Le champ de repère utilisé pour sélectionr ner la micro-instruction suivante dépend ainsi des signaux provenant de la mé-5 moire locale. L'usage des bascules de sélections secondaires et primaires permet une incorporation rapide de ssous-routines de microprogrammes dans le système de traitement de données. Les micro-instructions du programme principal sont sélectionnées en enclenchant la bascule de sélection primaire et lorsqu'il est 10 nécessaire de procéder à un branchement sur une sous-routine, il est fait appel à l'opération. Q: Sélection, Lecture, Masque 1, Secondaire. La bascule de sélection primaire enclenchée qui identifie la dernière micro-instruction utilisée n'est pas affectée, et la sélection de la prochaine micro-instruction à utiliser se fait en enclenchant la bascule secondaire de la position d'emmaga-15 sinage de mot contenant cette micro-instruction. Les micro-instructions suivantes sont sélectionnées en utilisant l'opération 6 : Suivant, Lecture, Masque -1, Secondaire, opération qui permet l'enclenchement des bascules secondaires à transférer aux bascules secondaires des prochaines positions d'emmagasinage de mots. De cette manière, la sous-routine est réalisée. La dernière opération 20 d'une sous-routine est l'opération D : Suivant, Lecture, Masque 1, Primaire. La prochaine opération permet le transfert ds l'état de chaque bascule de sélecteur primaire sur la bascule da sélecteur primaire de la prochaine position dèmmagasinage da mot. Etant donné que seule la bascule de sélection primaire enclenchée est celle associée à la dernière micro-instruction utilisée dans la 25 programme principal, l'effet de l'opération consiste à lire la prochaine micro-instruction du programme principal. Etant donné qu'un branchement à une sous-routine est le même en principe que le branchement décrit ci-dessus, un branchement à une sous-routine peut 8tre fait avec les mêmes facilités qu'un branchement, c'est à dire, le branchement 30 peut être Inconditionnel- ou peut résulter de tests ou d autres conditions dans la mémoire de travail ou la mémoire locale. La seule différence est que l'usage des bascules de sélection secondaire permet le maintien d'une liaison, par les bascules de sélection primaire avec le programme principal. Les macro-instructions sont emmagasinées dans la mémoire locale et leur 35 accès se fait séquentiellement en utilisant l'opération: Suivant, Lecture, Primaire. On fait en sorte que l'accès à toutes les autres positions d'emmagasinage de mots de la mémoire locale se fasse en utilisant les bascules de sélection secondaire mais en sorte que l'accès aux macro-instructions se fasse en utilisant les bascules de sélection primaire comme indicateurs d'une manière 40 très semblable à l'accès des sous-routines dans la mémoire de commande. Les 69 ,8096 13 2012269 instructions da branchement aux macro-instructions sont exécutées de la même façon que les instructions de branchement aux micro-instructions quoique le code de condition ne soit pas utilisé pour déterminer si un branchement doit être fait. 5 Dans un autre mode de réalisation représenté sur la figure 4, les macro- instructions sont emmagasinées dans une mémoire à noyaux classique, la mémoire principale 41, pourvue d un registre d'adresses d'emmagasinage 42. Les autres éléments sont semblables à ceux décrits en regard de la figure 2 et ont les mimes références. La communication entre le système associatif et la mémoire 10 principale 41 se fait en connectant les bus 27, 28 à la mémoire principale 41, et plus particulièrement, à un dispositif intermédiaire de mémoire principale 41a, et au registre d'adresses d'emmagasinage 42. La commande de la mémoire principale se fait par l'unité de la commande de mémoire principale 43 qui est sensible aux repères de mémoire principale prédéterminés qui sont appliqués à 15 la commande 43 par le bus 24. Les repères de mémoire de commande provoquent les fonctions suivantes de la mémoire.principale : chargement des Champs de données 1 et de données 0 dans le registre d'adresses d'emmagasinage 42, et Transfert des données entre les champs de données 1 et de données 0 et la mémoire intermédiaire 41 Contrairement au système décrit dans la figure 2, la mémoire (Locale 23 de la figure 4, au lieu d'emmagasiner les macro-instructions, emmagasine mainte-25 nant une table de compteurs d'instructions dont la sortie est utilisée comme entrée appliquée aux registres d'adresses d emmagasinage afin de sélectionner la prochaine macro-in9truction. La table est représentée sur la figure 5 et représente un cas général où la zone de mémoire principale utilisée pour emmagasiner les macro-instructions est définie par un multiplet de 8 bits d'or-30 dre supérieur variable IC3, un multiplet à 8 bits d'ordre inférieur variable IC2 et IC3. Les lignes 1 et 2 de la table comprennent un bit repère 010X qui implique que l'accès à ces lignes puisse se faire par les opérations 4 ou 5 : Sélection, Suivant, Inscription ou Lecture, Masque 1, secondaire . Si le multiplet 0101, 1010 se trouve dans le champ Repère de Mémoire Locale CLCL STR TG) 35 du registre entrée/sortie de -la mémoire locale, la ligne 1 de la table est sélectionnée - peu importe ce qui se trouve dans le champ de données 1 du registre (DTA 1) - et l'opération suivante résulte dans l'enclenchement de la bascule de sélection secondaire de la ligne 2 de la table. Sous le Masque 1, le multiplet d'adresse IC3 est lu et appliqué au registre entrée/sortie. Si 40 l'opération d'inscription est utilisée, le multiplet d'adresse IC3 est inscrit 69 18096 14 2012269 dans ls champ de données 0 (DTA 0) de la ligne 2 de la table. Oe la même façon, en utilisant un repère de mémoire locale, 0101, 0100 ou 0100 0100, il y a accès au multiplet IC2 de la ligne 3 de la table. Si le champ de repère du registre entrée/sortie de la mémoire locale contient le multiplet 0011, 0100, 1'opération 5 3: Sélection, Lecture, Masque 2, Secondaire, résulte dans le transfert des multiplets d'adresse IC1 et IC2 de la ligne 3 de la table au registre entrée/ sortie de la mémoire locàle. Un champ de repère 0010 0100 résulte dans le transfert des multiplets IC1 st IC2 du registre entrée/sortie à la ligne 3 dé la table. 10 L'incrément à additionner au multiplet d ordre inférieur IC3 de l'adresse d'instruction est considéré à partir d'une table à trois lignes dans la mémoire de travail. Le champ de repère de la mémoire de travail de chaque entrée de la table comprend le digit d'opération de mémoire de travail 1000 qui définit l'opération S: Sélection, Lecture, Masque 1, Secondaire, et provoque le transfert 15 du contenu du champ de données 1 au registre entrée/sortie de la mémoire de travail. Les champs de données 1 de la table contiennent les incréments qui sont le plus communément requis. Par exemple, la table peut fournir des incréments de +1, +2, ou -1. Si l'accès à la table d'incréments de la mémoire de travail se fait simul-20 tanément à celui de la table des compteurs d Instruction dans la mémoire locale, il en résulte le multiplet IC3 sur le bus 27 et un incrément sur le bus 28. La table d'addition dans la mémoire de travail est alors utilisée pour incré-menter le multiplet ÏC3 et le multiplet incrémenté et renvoyé à la ligne 2 de la table de compteurs d'instructions. Un débordement de capacité du multiplet 25 IC3 est utilisé pour introduire une sous-routine qui a accès à la ligne 3 de la table de compteurs d'instructions et l'incrément +1 en provenance de la table d'incréments dans la mémoire de travail. Ceux-ci sont additionnés en utilisant la table d'addition de la mémoire de travail pour donner le multiplet incrémenté IC2. 30 En bref, on a fait la description d'un calculateur comprenant un système de traitement de données dans lequel les opérations arithmétiques et logiques sont réalisées sur des opérandes au moyen de procédures de consultation de tables sélectionnées par un programme emmagasiné de micro-instructions. De nombreuses modifications du système fondamental peuvent être envisagées. Par 35 exemple, le système peut comprendre uniquement une mémoire de travail et une mémoire de Commande, la première des dites mémoires contenant également les données et les macro-instructions. Dans un autre cas, le système peut être utilisé pour traiter les données en temps réel, en fournissant par exemple, un interface entre une ligne de transmission de données et un système de traiter 40 ment de données de grande puissance. Les données qui arrivent sur la ligne de BAD ORIGINAL^ j V 69 5 10 15 20 25 30 35 40 18Q96 15 1012269 transmission peuvent être emmagasinées temporairement dans la mémoire de travail, et peuvent être vérifiées et transmises sous la commande de micro-programmes dans la mémoire de commande avant d'être transférées au système de grande puissance. □ans les modes de réalisation particuliers décrits ici, il n'est pas nécessaire que la mémoire de commande soit totalement associative. Elle peut être conçue de sorte que seul le masque 1 soit utilisé dans la mémoire de commande avec la possibilité de ne pas utiliser le masque qui n'est pas disponible. Dans ce cas, il est seulement nécessaire que les champs de repères des mémoire de commande et de condition aient des propriétés associatives. Dans le cas où les cellules atilleées sont celles décrites dans la demande de brevet PV 9341 AM déjà citée, chaque circuit bistable de la cellule peut être utilisé pour emmagasiner un bit différent des champs d'opérations et de repères restants de la mémoire de travail divisant de ce fait en deux l'équipement nécessaire pour emmagasiner ces champs. Bien que dans les dessins les différentes mémoires associatives aient été représentées comme étant physiquement distinctes, il se peut que dans certains cas, il soit avantageux d'assembler deux mémoires ou davantage en une seule mémoire associative. Par exemple, les mémoires de commande et de travail pourraient être incorporées dans une seule mémoire ayant une largeur de 15 digits au lieu de comprendre deux mémoires ayant respectivement une largeur de 7 et 8 digits. Dans les revendications qui suivent, on comprendra que les références aux différentes mémoires impliquent simplement que les mémoires soient fonctionnellement distinctes et non nécessairement physiquement distinctes formant différents ensembles dans l'équipement. En outre, bien que la présente invention ait été décrite en se reportant à un système faisant usage de cellules d'emmagasinage avec un état "Sans importance, " et de mémoire associative ayant des fonctions spéciales telles que la fonction "Suivant," il est clair que la présente invention dans ses grandes lignes, telle qu'elle est définie dans les revendications attenantes, n'est pas limitée aux systèmes ayant ces caractéristiques. Dans les revendications qui suivent, il est fait usage des termes "mémoire de travail," "mémoire locale" et "mémoire de commande." Il est bien entendu que ces termes font simplement une distinction entre les différentes mémoires définies par les revendications et ne doivent pas être interprétées comme nécessitant pour les mémoires des caractéristiques semblables à celles des mémoires décrites dans l'exemple de la présente invention. Il reste bien entendu que la description qui précède n'a été donnée qu'à titre d'exemple non limitatif et que de nombreuses variantes peuvent être envisagées sans sortir pour autant du cadre et de la portée de la présente invention. 8096 16 20l2269 REVENDICATIONS 1.- Systems de traitement de données électronique comprenant une mémoire associative de commande pourvue d'une pluralité de positions d'emmagasinage de mots comprenant chacune un champ dit champ de repères ds la mémoire de travail et un champ dit champ de repère d'identification de la mémoire de commande caractérisé en ce qu'il comprend une mémoire associative de travail pourvue d'une pluralité de positions d'emmagasinage de mots comprenant chacune un champ de repère d'identification de la mémoire de travail et un premier champ de données de la mémoire de travail, un moyen de commande du fonctionnement de la mémoire de commande et un moyen de commande du fonctionnement de la mémoire de travail, le moyen de commande du fonctionnement de la mémoire de travail étant mis en oeuvre de façon sélective pour une comparaison du contenu du repère de la mémoire de travail d'un mot provenant de la mémoire de commande avec le contenu des champs de repères d'identification de la mémoire de travail, le moysn de commande du fonctionnement de la mémoire de commande étant mis en oeuvre de façon sélective pour une comparaison du contenu du premier champ de données de la mémoire da travail d'un mot extrait de la mémoire de travail avec le contenu des champs de repères d'identification de la mémoire ds commande . 2.- Système de traitement de données électronique selon la revendication 1, caractérisé par une mémoire locale associative pourvue de positions d'emmagasinage comprenant chacune un champ de repères d'identification de la mémoire locale et un premier champ de données de la mémoire locale, dans laquelle chaque position d'emmagasinage de mot de la mémoire de commande possède un champ de repères de la mémoire locale, le système comprenant un moyen de commande du fonctionnement de la mémoire locale qui est actionné de façon sélective en vue d'effectuer la comparaison du champ de repères de la mémoire locale d'un mot extrait de la mémoire de commande avec le contenu des champs d'identification de la mémoire locale. 3.- Système de traitement de données électronique selon la revendication 2, caractérisé en ce que le moyen de commande du fonctionnement de la mémoire de travail est actionné de façon sélective en vue de la comparaison du contenu du premier champ de données de la mémoire locale d'un mot qui en est extrait avec le contenu des premiers champs de données de la mémoire de travail. 4.- Système de traitement de données électronique selon l'une des 18096 17 201226'? revendications 2 ou 3, caractérisé par le moyen de commande du fonctionnement de la mémoire locale qui est actionné en vue de la comparaison du contenu des premiers champs de données de la mémoire de travail d'un mot qui est extrait de cette mémoire de travail avec le contenu des premiers champs de données de la mémoire locale. 5.- Système de traitement de données électronique selon l'une quelconque des revendications 2, 3 ou 4, caractérisé en ce que chaque position d'emmagasinage de mot de la mémoire de travail est pourvue d'un second champ de données de la mémoire de travail et que chaque position d'emmagasinage de mot de la mémoire locale possède un second champ de données de la mémoire locale, le moyen de commande du fonctionnement de la mémoire de travail étant actionné de façon sélective en vue de la comparaison du contenu du second champ de données de la mémoire locale avec le contenu du second champ de données de la mémoire de 15 travail. 6.- Système de traitement de données électronique selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque position d'emmagasinage de la mémoire de commande possède un champ de données de la mémoire de 2o commande et chaque position d'emmagasinage de la mémoire de travail a un troisième champ de données de la mémoire de travail, le moyen de commande du fonctionnement de la mémoire de contrôle étant actionné de façon sélective en vue de la comparaison du troisième champ de données de la mémoire de travail d'un mot qui en est extrait avec le contenu des champs ds données de la mémoire de 25 commande. 7.- Système électronique selon l'une quelconque des revendications précédentes, caractérisé en ce que le moyen de commande du fonctionnement de la mémoire de commande fonctionne selon les données contenues dans un champ prédé- 30 terminé d'un mot extrait de la mémoire. 8. - Système électronique selon l'une quelconque des revendications précédentes, caractérisé sn ce que le moyen de commande du fonctionnement de la mémoire de travail fonctionne selon les données contenues dans une partie au moins 35 du champ de repère de la mémoire de travail d'un mot qui est extrait de cette mémoire. 9. - Système électronique selon la revendication 2, caractérisé en ce que le moyen de commande du fonctionnement de la mémoire locale fonctionne selon 40 les données contenues dans une partie au moins du champ de repère de la mémoire 69 ,1.8096 locals d'un mot qui est extrait de cette mémoire. 10.- Système électronique selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque position d'emmagasinage d'un mot de 5 chaque mémoire associative est pourvue d'une bascule de sélection qui est positionnée dans un état stable prédéterminé afin de permettre l'accès à cette position d'emmagasinage. 2012269 11.- Système électronique selon la revendication 10, caractérisé en ce 10 que les positions d'emmagasinage de mots sont placées côte à côte, et le moyen de commande du fonctionnement d'une mémoire associative est actionné afin de transférer l'état de la bascule de sélection à la bascule de sélection de la position d'emmagasinage du mot adjacent selon une direction prédéterminée. 15 12.- Système électronique selon la revendication 10 ou 11, caractérisé en ce que chaque position d'emmagasinage de mot de chaque mémoire associative possède d8ux bascules de sélection, ou davantage, dont une est positionnée dans un état stable prédéterminé afin de permettre l'accès à cette position dêemmagasinage. 20 13.- Système électronique selon la revendication 12, caractérisé en ce que chaque mémoire associative possède au moins deux jeux de bascules da sélection, chaque position d'emmagasinage de mot étant associée à une bascule de sélection différente de chaque jeu, de telle socte que le transfert de 25 l'état d'une bascula de sélection à la bascule de sélection d'emmagasinage suivante se fait entre bascules du mime jeu. 14.- Système électronique selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend une mémoire de données non associative et des moyens à transfert pour transférer les données entre la mémoire non associative et une mémoire associative. 15.- Système électronique selon les revendications 2 et 14, caractérisé en ce que le transfert de données s'effectue entre la mémoire non associative et la mémoire locale. 16.- Système électroniquè selon la revendication 2, caractérisé en ce que la mémoire locale emmagasine des tables de fonction permettant au système d'effectuer des fonctions arithmétiques et logiques au moyen de procédures de consultation de tables,et en ce que la mémoire locale emmagasine les opérandes. - 18096 19 2012269 sur lesquels vont être exécutées les fonctions arithmétiques et logiques, les connexions entre les mémoires associatives étaût telles que, si un mot est extrait de la mémoire de commande, les repères de la mémoire de travail et de la mémoire locale respectivement dans le mot de commande entraînent l'accès à la table de fonctions particulières et aux opérandes particuliers respectivement, ces opérandes particulières étant appliqués à la mémoire de travail en vue de permettre l'accès à la table de fonction particulière correspondant aux opérandes.