Brevet FR2538928A1 — publié le 19840706

"Unité de traitement de données pourvue d'une section de commande qui cormporte un générateur d'adresses destiné a produire des adresses composées de parties d'adresses caractéristiques" La présente invention concerne une unité de traitement de données comportant une section de traitement, une section de commande et une section de communication pour le transport de l'infonration entre les dites sections, la section de commande comportant une mémoire de microcodes et un dispositif séquenceur; la section de communication étant pourvue d'un registre d'instructions dontune sortie estconnectée directement à une première entree du dispositif séquenceur, la mémoire de microcodes étant pourvue pour le stockage d'un nombre de modules de traitement qui comportent chacun au nmoins un mot de microinstruction, le dispositif séquenceur ayant une deuxième entrée connectée à une sortie d'adresse de la mémoire de microcodes et une première sortie connectée à une entrée d'adresse de la mémoire de microcode, le dispositif séquenceur étant aussi pourvu d'un générateur d'adresses destiné à produire des adresses pour les mots de micro-instruction, le dit générateur d'adresses comporte un premier et un deuxième générateur d'adresse partielle. Une telle unité de traitement de données est décrite dans la demande de brevet français no 7926362 (no de publication 2440030). L'unité de traitement de données traite l'information et produit alors de l'information de coianamnde L'information à traiter est présentée le plus souvent sous la forme d'instructions, principalement de macroinstructions, à l'unité de traitement de données Les macro-instructions sont stockées dans le registre d'instructions avant d'être traitées par l'unité de traitement de données Le générateur d'adresses du dispositif séquenceur produit une adresse de démarrage au moyen de laquelle un mot de micro- instruction stocké dans la mémoire de microcodes, qui fait partie d'un module de traitement, est alors adressé Un module de traitement comporte 1 'information nécessaire pour conmmander l'information à traiter Les mots de micro-instruction d'un module de traitement comportent un champ d'adresse dans lequel les données d'adresse sont stockées, au tmoyen duquel un mot de micro-instruction suivant est adressé par le générateur d'adresses Ainsi, sous la commande de nots de micro-instruction successifs, une information est traitée par l'unité de traitement de données L'information de commande nécessaire a cet effet est fournie à une autre sortie de la mémoire de microcodes Etant donné que l'unité de traitement de données doit souvent traiter de 1 ' information de nature différente corrme, par exemple, des opérations de lecture des opérations de calcul, des opérations d'écriture, etc, un certain nombre de modules de traitement sont également stockés à cet effet dans la mémoire de mircocodes Chacun de ces modules de traitement est alors pourvu, à son tour, d'informations de conmmande destinées à commander une opération déterminée La mémoire de microcodes est divisée en plusieures zones qui ont à peu près la même capacité de stockage Le générateur d'adresses comporte un premier et un 1 deuxième générateur d'adresse partielle Le premier générateur d'adresse partielle produit une adresse pour l'adressage d'un mot de Licro-instruction à l'intérieur d'une zone, tandis que le deuxième générateur d'adresse partielle produit une adresse partielle pour l'adressage de la zone même. En utilisant deux générateurs d'adresses partiellesl'onobtient qu'un plus grand nombre de macro-instructions peuvent être traitées par une unitéde traitement de données selon l'art antérieur Mais un inconvénient d'un tel dispositif est que ia capacité de la mémoire est utilisée d'une manière ineffective Lorsque par exemple, la mémoire de microcodes est divisée en quatre zones mais que la macro-instruction à traiter peut être traiter en seulement trois étappes, il resteune place dans la quatrième zone qui n'est pas utilisée En plus les différents mots de la micro-instruction qui sont nécessairesà l'exécution de la macro-instruction sont situés dans les différentes zones, ce' qui implique plusieurs passages d'un zone à 1 'autre Ceci coûte alors évidemment du temps d'exécution Les zones sont divisées sur base d'un partage égale de la capacité de la mémoire La capacité de mémoire requise par un modulede-traitement n'est pas prise en compte dans une unité de traitement de données selon l'art antérieur. L'invention a pour but de réaliser une unité de traitement de données o la capacité disponible de la mémoire est utilisée de façon efficace, o l'espace requis par un module de traitement est pris en compte lors d'un partage de la capacité de la mémoire et oh le temps d'exécution est réduit. Une unité de traitement de données conforme à l'invention est caractrisée en ce que le premier générateur d'adresse partielle étant pourvu pour produire une première adresse partielle pour l'adressage d'un module de traitement parnmi le dit nombre de modules de traitement et le deuxième générateur adresse partielle etant pourvu pour 1 'adressage d'un mot de micro-instruction dans le module de traitement adressé par la première adresse partielle, la première et la deuxième adresse par- tielle formant des parties réciproquement exclusives de l'adresse. Le premier et le deuxième générateur d'adresse partielle produisent chacun une adresse partielle, lesquelles adresses partielles forment alors l'adresse du mot de micro-instructions Une première adresse par- tielle indique-un module de traitement et la deuxième adresse partielle indique un mot faisant partie dudit module de traitement Ceci implique que lors du partage de la capacité de mémoire disponible l'on a pris en compte l'espace requise par un module de traitement A partir du con- tenu de la macro-instruction telle que stockée dans le registre d'ins- tructions, on détermine à présent directement le module de traitement qui est nécessaire pour commander le traitement de l'information De plus, l'utilisation d'adresses partielles rend la zone d'adresse plus petite, de sorte que les traitements sont plus simples et peuvent donc être réalisés plus rapidement. Une forme d'exécution particulière d'une unité de traitement de données conforme à l'invention est caractérisée en ce que le dit nombre de module de traitement est réparti en au moins deux différents groupesde modules de traitement, ledit premier générateur d'adresse par- tielle comrporte un '-remier et un second générateur de sub-portions d'adresses pour produire respectivement une première sub-portion d'adresse pour l'adressage d'un groupe individuel parmi les dits dif- férents groupes et une seconde sub-portion d'adresse pour l'adressage individuel d'un module de traitement parmi le groupe adressé par la première sub-portion d'adresse Trois groupes de modules de traitement différents sont en substance présents, à saoir -les micro- pgd Duse S, les modules de traitement spéciaux et les modules de traitement d'ins- trlctiorn Si l'on attribue à chacun de ces groupes une adresse par- tielle, une adresse pour un mot de micro-instruction comportera trois parties, qui sont traitées séparément par le dispositif séquenceur grace à quoi la manipulation avec les adresses devient simple et peut être réalisée rapidement. Une autre forme d'exécution particulière d'une unité de traite- ment de données conforme à l'invention est caractérisée en ce que l'ensemble des adresses à décoder par le décodeur d'adresses est nette- ment plus petit qu'un autre ensemble de nombres binaires dans une série de bits de longu Reur globale égale à celle d'une adresse Grace au choix particulier des adresses pour les mots de micro-instructions, a savoir une première, une deuxième et une troisième adresse partielle éventuelle, toutes les combinaisons d'adresses possibles qui peuvent être réalisées avec une longueur donnée de mot (nombre de bits) pour un mot d'adresse ne sont pas nécessaires Le nombre d'adresses à utiliser est en effet déterminé par le nombre de modules de traitement, le nombre de mots de micro-instructions dans un module de traitement et éventuellement le nombre de groupes de modules de traitement Ce caoix paric u dadressas a des consequ:ences pour la réalisation du décodeur d'adresses de lo la mémoire de microcodes qui pour cela occupe une moindre surface de puce, ce qui diminue aussi la surface de puce occupée par la mémoire de microcodes. L'invention sera expliquée ci-après avec plus de détail avec référence aux dessins annexés, dans lesquels: la Fig 1 est une vue des éléments principaux d'un système de traitement de données; la Fig 2 illustre un exemple d'une réalisation d'une section de commande d'une unité de traitement de données; la Fig 3 a illustre les diverses parties d'une mémoire de la section de commande d'une unité de traitement de données; la Fig 3 b est un exemple simple de la structure d'une mémoire de microcodes; les Fig 3 c et 3 d sont des exemples de la manière de former les adresses et illustrent la relation entre les adresses et les mots de micro-instructions, et la Fig 4 est un exemple de réalisation d'un dispositif séquenceur qui fait partie de la section de commande d'une unité de traitement de données conforme à l'invention. Un système de traitement de données tel que représenté sur la Fig 1 comporte, entre autres, une unité de traitement de données ( 1) et une mémoire principale ( 2) L'unité de traitement de données et la mémoire principale sont connectées à un bus 3 sur lequel circulent des données Plusieurs unités peuvent aussi être connectées au bus d'une manière bien connue dans les systèmes de traitement de données, mais ces unités ne sont pas représentées car elles sont sans importance pour l'invention Il faut distinguer diverses sections dans l'unité de traite- ment de données ( 1) Ainsi, l'unité centrale de traitement de données comnporte, par exemple, une section de mémoire interne A, une section de commande B, une section de traitement C et une section d'interface d'entrée/sortie D Ces sections A, B, C et D sont toutes connectées à un bus interne( 4) qui leur permet d'échanger de 1 ' information entre elles La section de commande B envoie en outre des signaux de commande par l'intermédiaire de la ligne( 5)vers chacune des autres sections. L'invention se rapporte à la section de commande B de l'unité de traitement de données, en particulier à une réalisation de cette section de commande B La section de commande assure, par la production de signaux de commande, que les données à traiter le soient effectivement aux endroits indiqués et d'une manière donnée. Le système 15 de la figure 2 est un exemple d'une réalisation d'une section de commande d'une unité de traitement de données conforme à l'invention La section de commande 15 comporte un dispositif séquenceur 11 dont une première entrée est connectée à un registre d'états 13 et une deuxième entrée à un registre d'instructions Un système de porte de sortie 16 du dispositif séquenceur est connecté à une entrée d'adresse d'une mémoire de microcodes 12 Une sortie de données de la mémoire de microcodes 12 est connectée à une entrée d'un registre de micro- instructions 14 dont une première sortie est connectée à la ligne 5 de l'unité de traitement de données Une deuxième et une troisième sortie du registre de mots de micro-instructions 14 sont connectées respectivement à une troisième et une quatrième entrée du dispositif séquenceur 11 Le registre de mots de micro-instructions et ses lignes de sortie qui y sont connectées forment une "ligne d'assemblage pipe-line" (pipe-line assembly- line) La notion de "ligne d'assemblage pipe-line" est décrite, par exemple, aux pages 84 et 85 du livre "Computer Structures Reading and Examples" de C G Bell et A Newell publié par Mc Graw Hill Book Company ( 1971). Le registre d'instructions 10 fait partie de la section d'inter- face d'entrée/sortie D de l'unité de traitement de données Dans le registre d'instructions 10, un code binaire est chaque fois stocké pour une instruction suivante du programme en cours de traitement par l'unité de traitement de données Les instructions du programme en cours de traitement proviennent de la mémoire principale ( 2 sur la Fig 1 l) ou d'une autre unité connectée au bus 3 Ces instructions sont des "macro- instructions", c'est-à-dire des instructions qui sont formnulées sous une forme compacte Un exemple d'une macro-instruction est "ADD R 1, R 3 ". Ainsi formulée, cette macro-instruction représente une opération selon laquelle le contenu du registre R 1 doit être ajouté au contenu dregitre R 3.La macro-instruction stockée dans le registre d'instructions est traduite par la section de commande de l'unité de traitement de données en micro-instructions qui sont alors exécutées par la section de traitement C Ainsi, la macro-instruction "ADD R 1, R 3 " citée dans l b"ple est traduite en R 1 ALU 1; R 3 ALU 2: ALU R 3; PC + 1 IEINADR PC+ 1 PC; AEM AITR; micro-instructions, par exemple par: amène le contenu de registre R 1 vers la première entrée de la ALU (unité arithmétique et logique) (La ALU fait partie de la section de traitement C de l'unité de traitement de données). amène le contenu de registre R 3 vers la deuxième entrée de la ALU inscrit le résultat à la sortie de la ALU dans le registre R 3 décale le compteur de programme PC (Program Counter) vers une adresse de mémonire suivante de la mémoire dans laquelle le programme en cours de traitement est stocké incrémente le compteur de progranme d'une unité lit de contenu de l'adresse de mémoire suivante et inscrit ce contenu dans le registre d'instructions. Ces trois dernières micro-instructions interviennent (presque) toujours lors de l'exécution de macro-instructions Les micro-instructions sont stockées sous la forme de mots de micro-instructions dans la nméoire de microcodes 12 Chaque mot de micro-instruction est adressé au moyen d'une adresse unique présentée à l'entrée d'adresse de la méioire de microcodes L'adresse provient du dispositif séquenceur 11 o elle est fournie au système de porte de sortie 16 Dans cette forme d'exécution, l'adresse est formée de trois parties caractéristiques Ces trois parties caractéristiques identifient le mot d'instruction associé Pour mettre ceci en évidence, il faut tout d'abord examiner le contenu de la mémoire de microcodes 12 On décrira ensuite comment l'adresse est formée dans le dispositif séquenceur 11, ainsi que la manière selon laquelle la section de commande 15 fonctionne. La Fig 3 a illustre un exemple d'une structure interne d'une mémoire de microcodes 12 pour une section de commande d'une unité de traitement de données Une telle mémoire de microcode cornporte une section de stockage 20 et une section d'adresses 21 qui y est connectée A chaque adresse de la section d'adresses 21 appartient un mot de micro- instruction provenant de la section de stockage L'adresse est présentée à une entrée d'adresse 22 et le mot de micro-instruction appartenant à l'adresse présentée est fourni à une sortie de données 23 La mémoire de microcodes comporte, par exemple, une structure de matrice ET pour le décodage du signal d'adresse et une structure de matrice OU pour le stockage des mots de micro-instructions qui sont stockés dans la section de stockage. La Fig 3 b illustre un exemple simple d'une telle structure de mémoire de microcodes L'adresse présentée à l'adresse 22 a, par exemple, une largeur de deux bits (A 1 Ao) Pour chaque bit d'adresse est prévue une ligne d'adresse, par exemple la ligne d'adresse 24 ou 25 pour le bit d'adresse Ao ou A 1 Chaque ligne d'adresse, à l'entrée de la section d'adresses, est connectée chaque fois à l'entrée d'un inverseur (G 0, G 1) appartenant à cette ligne d'adresse Une sortie de chaque inverseur (GO, G 1) est connectée à une ligne d'adresse voisine ( 241 ou 25 ') Les lignes d'adresses et les lignes d'adresses voisines forment alors les colonnes de la matrice Pour le décodage de l'information d'adresse, des transistors sont prévus et sont désignées par une croix Les transistors forment les éléments de la matrice qui sont situés aux points nodaux des rangées et des colonnes Les lignes d'adresses et les lignes d'adresses voisines sont connectées à une première électrode (par exemple la base) d'un tel transistor Une deuxième électrode (par exemple le collecteur) d'un tel transistor est connectée à un point 26 auquel une source de tension est connectée Cette source de tension (non représentée aux dessins) donne une tension qui représente, par exemple, la valeur logique " 1 " Une troisième électrode (par exemple l'émetteur) d'un tel transistor est connectée à une entrée d'un circuit-porte ET logique ( 27, 28, 29). Dans cet exemple, quatre entrées sont prévues pour chaque circuit-porte ET logique Pour conserver un dessin bien net, une seule entrée y est représentée La point particulier de cette structure est le fait qu'il n'y a qu'un nombre restreint despointsnodauxqui sont munis d'un tel transistor (il y a des points nodaux dépourvus de croix) Sur des points nodaiwy déterminés, le transistor est omis (dans la pratique, ceci est réalisé Dar la mise en court-circuit de transistor) Un tel point nodal dépourvu de transistor a alors toujours la valeur logique " 1 " quelle que soit la valeur du bit d'adresse Dans l'exemple indiqué sur la Fig 3 b, chaque rangée ne comporte que deux transistors L'avantage d'une telle structure réside dans le fait que de cette façon le choix de l'adresse pour les mots de micro-instrctions à adresser est entièrement libre. Dans l'exemple illustré sur la Fig 3 b, le mot de micro- instruction sur la première rangée de la section de stockage est adressé par l'adresse A 1 A O = 00 (valeur logique " 1111 " sur les quatre entrées du circuit-porte ET logique 27) Le mot de micro-instruction sur la deuxième et la troisième rangée de la section de stockage est adressé par l'adresse A 1 A O = 10 et A 1 A O = 11 respectivement L'adresse A 1 Ao = 01 n'est pas décodée par cette structure et n'est pas utilisée conmme adresse Grâce à cette liberté du choix des adresses, il est à présent possible d'établir une liaison entre la valeur de l'adresse et le mot de micro-instruction indiqué par cette adresse. La section de stockage a une structure analogue à celle de la section d'adresses Dans ce cas cependant, chaque colonne est connectée à un circuit-porte OU logique ( 30, 31, 32) La structure pour la section de stockage de données est alors aussi qualifiée de structure de matrice OU. Une telle mémoire dans laquelle de nombreuses adresses ne sont pas réalisées du point de vue du matériel sera qualifiée plus loin de "mémoire éparse" (sparse memnory) Une telle mémoire éparse n'est que partiellement remplie de mots de microcode par comparaison à une mémoire normale présentant la mêne capacité de stockage. Comre déjà mentionné à propos de la description de la Fig 2, le signal d'adresse comporte dans cette forme d'exécution trois parties caractéristiques Sur la Fig 3 c est représentée la partie d'adresse de la mémoire 12 de la Fig 3 a et de la Fig 2 et ces trois parties caractéristiques sont illustréesdans N exemple L'idée de bâtir une adresse pour une mémoire d'une unité de traitement de données au moyen de trois parties caractéristiques est basée sur le fait que le nombre de sortes de micro-instructions à distinguer est limité La distinction s'opère entre quatre sortes de micro-instructions, à savoir: 1 l'appel d'un micro-sous-prograrme, 2 le saut vers un module de traitement (handler) pour une nouvelle macro-instruction, 3 le saut vers des programmes de modules de traitement spéciaux, conme par exemple des programmes de traitement d'erreur ou un programme d'extraction (fetch routine), 4 le saut à l'intérieur d'un module de traitement. Etant donnré qu'on utilise une r&moire eéparse pour la mémoire de microcodes, on emploie la liberté de choix des adresses offerte par une telle mémoire éparse pour relier-les adresses aux mots de micro- instructions Une adresse pour cette émoire éparse est à présent composée de trois parties caractéristiques et forme ainsi un triplet Ce triplet comporte, comme illustré sur la Fig 3 c: I une indication pour le type de module de traitement II une indication donnant le numéro du module de traitement dans un type III une indication pour le mot de microinstruction à l'intérieur d'un module de traitement. Les parties constitutives de ce triplet seront à présent décrites plus en détail. I Une indication pour le type de module de traitement Cette partie a, par exemple, une largeur de deux bits, comme le montre la Fig 3 c, et indique le type de module de traitement Ainsi sont, par exemple, indiqués par. 00: les micro-sous-prograrumes (modules de traitement du premier type) 01: les modules de traitement spéciaux (modules de traitement du deuxième type) 0: les modules de traitement d'instructions (modules du troisième type), c'est-à-dire des modules de traitement pour l'exécution de micro- instructions). Dans cette réalisation, une adresse pour la mémoire éparse qui débute par 00 indiquera toujours un micro-sous-progranmeet, inversement, l'adressed'unmicro-sous-programme provenant de la mémoire éparse présentera toujours la valeur binaire 00 pour les deux premiersbits. L'adresse d'un module de traitement spécial ou d'un module de traitement d'instructions provenant de la mémoire éparse a toujours la valeur binaire 01 ou 10 pour les deux premiers bits Une première répartition grossière est de cette façon réalisée entre les diverses sortes de micro- instructions et la manière selon laquelle elles sont stockées dans la mémoire éparse Cette répartition grossière est affinée par les deux autres parties du triplet. II Une indication donnant le numéro du module de traitement dans un type Cette partie a une largeur de k bits (par exemple k= 8), de sorte que chaque type peut alors comprendre au maximum 2 k modules de traitement différents Grâce au fait que l'on utilise une rémoire éparse, il n'est cependant pas nécessaire d'utiliser toutes ces possibilités, mais il devient possible de réserver, pour chaque type de module de traitement, autant de numéros d'adresses différents que de nombres de modules de traitement appartenant au type en question Les différents modules de traitement d'un type déterminé sont numérotés, consécutivement ou non k de 0,, I ( O Iz 2 -1) Dans l'exemple donné sur la Fig 3 c, trois modules de traitement différents numérotés O, O 10 et O 11 sontprévus. pour les modules de traitement du premier type Deux modules de traitement différents numérotés O 00 et 0 01 sont prévus pour les modules de traitement du deuxième type et quatre modules de traitement différents numérotés 0 00, 0 01, 0 10 et 0 11 sont prévus pour les modules de traitement du troisième type. Comme le montre l'exemple de la Fig 3 c, pour les modules de traitement de premier type, il n'est pas nécessaire que les divers modules de traitement appartenant à un type déterminé sointmr nt; c=sttveamt Cette latitude dans l'attribution de numéros qui servent alors l'adresses est, comme déjà mentionné, possible par l'utilisation d'une mémoire éparse. III Une indication pour le mot de micro-instruction dans un module de traitement Cette partie a une largeur de p bits (par exemple p= 8), de sorte qu'au maximum 2 p adresses de micro-instruction sont alors disponibles séparément pour chaque module de traitement Cela signifie que chaque module de traitement peut comporter au maximum 2 P mots de microinstruction. Les mots de micro-instruction sont alors numérotés de 0, N ( O N 4 2 P-1) au moyen de la troisième partie (III) dutiplet GrâCe à 1 lisation d'une mémoire éparse, il n'est à nouveau pas nécessaire d'utiliser toutes les adresses 2 P-1 pour chaque module de traitement, mais un tel nombre d'adresses peut être utilisé chaque fois que des mots de micro-instruc- tion sont présents dans le module de traitement en question. La relation entre une adresse de triplet et un mot de micro- instruction est illustrée à titre d'exemple sur la Fig 3 do Dans cet exemple, la partie I (indication du type de module de traitement) comporte un bit, la partie II (indication du numéro du module de traitement dans un type) comporte deux bits et la partie III (indication pour le mot de micro-instruction) comporte trois bits On suppose qu'il s'agit d'un module de traitement du premier type, donc d'un micro-sous- programme (sbr), et que trois micro-sous-programmes différents sont présents Le fait qu'il s'agit d'un micro-sous-programme est indiqué par la valeur binaire " 0 " dans la première colonne (I) de la matrice d'adresses dans la section d'adresses 21 La deuxième et la troisième colonne, qui en- semble forment chaque fois la partie II du triplet pour chaque rangée, montrent que les micro-sous-programmes portant le numéro 00 (n 0), le numéro 10 (no 2) et le numéro 11 (n 3) sont stockés dans cette partie de la mémoire de microcodes Le micro-sous-progranmme portant le numéro 01 n'est pas présent, ce qui est possible étant donné la latitude allouée lors de l'utilisation d'une mémoire éparse La quatrième, la cinquième et la sixième colonne, qui forment ensemble la partie III du triplet pour chaque rangée, donnent, pour chaque rangée, les adresses des mots de micro-instruction successifs de chaque micro-sous-programme Dans l'exem- ple tel qu'indiqué sur la Fig 3 d, le micro-sous-programme portant le numéro 00 comporte cinq mots de micro-instruction (/u wrd O à 4 inclus), le micro-sous-programme portant le numéro 10 comporte trois mots de micro- instruction (/u wrd O à 2 inclus) et le micro-sous-programme portant le numéro 11 comporbs Ecinq mots de micro-instruction (/u wrd O à 4 inclus) Les cinq mots de micro-instruction du micro-sous-programme portant le numéro 00 comportent, pour la partie III l'adresse du triplet, une numérotation binaire successive de 000 à 100 inclus Pour les trois mots de micro- instruction du micro-sous-progranmme portant le numéro 10, la partie III de l'adresse de triplet présente une numérotation binaire successive de 000 A 100 inclus Pour le micro-sous-programme portant le numéro 11, il en va de méme L'exemple de la Fig 3 d montre donc comment l'information est stockée dans la mémoire éparse et comment la valeur de chaque adresse appartenant à un mot de micro-instruction est choisie. Ce choix particulier des adresses a naturellement des consé- quences pour la réalisation du dispositif séquenceur 11 de la Fig 2. La Fig 4 illustre un exemple d'une réalisation d'un disposi- tif séquenceur Ce dispositif séquenceur 11 comporte, pour chaque partie du dit triplet, un multiplexeur, à savoir un multiplexeur 50 pour la par- tie I, et des multiplexeurs 51, 52, respectivement, pour les parties II et III Chaque multiplexeur 50, 51, 52 comporte son propre registre de sortie 53, 54, 55 Chaque registre de sortie est alors connecté à une ligne de sortie respective 61, 62, 63, les lignes de sortie formant alors ensemble le systeme de porte de sortie 16 du dispositif séquenceur et l'adresse detriplet étant fournie au système de porte de sortie 16 pour l'adressage de la mémoire éparse Le dispositif séquenceur comporte, en outre, une-pile (stack) 58, qui est un "registre premier entré, premier sorti", ainsi qu'un élément "plus 1 " 56, un décodeur 57 et un générateur de constantes 59 La fonction de ces éléments et la manière selon laquelle ils sont connectés dans le dispositif séquenceur seront expliquées plus loin dans la description Pour plus de clarté dans le dessin, les lignes de connexion sont représentées par des lignes simples, mais il est clair que ces lignes sont à ménme de transporter un signal d'une largeur de plusieurs bits La pile 58 cormporte trois entrées d'information et trois sorties d'information parmi lesquelles chaque entrée d'information va de pair avec une sortie d'information Chaque paire est connectée par un multiplexeur déterminé et, par ailleurs, une paire d'entrée-sortie de la pile appartient à chaque multiplexeur L'entrée d'information de la paire P 50 et celle de la paire P 51 sont connectées respectivement à la ligne de sortie 61, et à la ligne de sortie 62 des multiplexeurs 50, 51 La sortie d'information de la paire P 50 et celle de la paire P 51 sont connectées respectivement aux portes d'entrée M 1 des multiplexeurs 50, 51 La sortie d'information de la paire 52 est connectée à la porte d'entrée M 1 du multiplexeur 52 L'entrée d'information de la paire P 52 est connectée à une sortie de l'élément "plus 1 " 56. Corme mentionné dans la description de la Fig 2, le disposi- tif séquenceur comporte quatre entrées, à savoir une première entrée 80 connectée à un registre d'états, une deuxième entrée 81 connectée à un registre d'instructions, une troisième entrée 78 et une quatrième entrée 79 connectées chacune à une sortie du registre de microcodes ( 14 sur la Fig 2). Chaque mot de micro-instruction comporte un microcode opéra- tionnel qui sera qualifié plus loin de microcode op et une zone de micro- adresse Le microcode op est présenté à la troisième entrée 78 et la micro-zone d'adresse à la quatrième entrée 79 du dispositif séquenceur. Le lxcx de c"fie l ende de calcul pour l'adresse du pas de micro-instruction suivant pour l'exécution du module de traite- ment La troisième entrée 78 du dispositif séquenceur est connectée à une première entrée du décodeur 57 Une deuxième entrée de ce décodeur est connectée a la première entrée 80 du dispositif séquenceur Ce déco- deur décode les états provenant du registre d'états ( 13 sur la Fig 2) et le microcode op Le signal décodé conmmande les trois multiplexeurs ( 50, 51, 52) ainsi que la pile 58 Une première entrée du décodeur est connectée à cet effet par l'intermédiaire d'une ligne de connexion 64 à une entrée de com ande du multiplexeur 50 Une deuxième et une troisième sortie du décodeur sont connectées respectivement par la ligne de liaison par la ligne de liaison 66 à une entrée de commande des multiplexeurs 51, 52 respectifs Une quatrième sortie du décodeur est connectée par 1 ' intermédiaire de la ligne de connexion 67 a une entrée de commande de la pile 58 En fonction du signal décodé présent a son entrée de commande, un multiplexeur est commuté dans un état déterminé, ce qui a pour effet de sélectionner une des portes d'entrée du multiplexeur et de transpor- ter le signal présent à cette porte d'entrée vers le registre de sortie associé Cette réalisation avec un décodeur 57 séparé ne représente qu'une solution possible Une autre solution consiste, par exemple, à munir chaque multiplexeur ainsi que la pile d'un décodeur séparé et de présenter le microcode op ainsi que les signaux d'état provenant du registre d'états directement au multiplexeur et à la pile Le choix d'une des deux solutions est sans conséquence directe sur le fonctionnement du dispositif séquenceur car ces deux solutions remplissent précisément la même tâche Ce choix ne joue en fait un rôle que dans une réalisation conforme à une technologie choisie d'un dispositif séquenceur conforme à l'invention. Le fonctionnement du dispositif séquenceur sera à présent décrit avec référence aux microcodes op possibles Ces microcodes op sont, par exemple: a) NEXT: adresser le mot de micro-instruction localisé sur l'adresse dans le module de traitement qui est exécuté, présentant une valeur d'adresse supérieure précisément d'une unité à l'adresse sur laquelle ce microcode op est localisé (adresse + 1 = nouvelle adresse), b) BRANCH: adresser le mot de micro-instruction qui est localisé dans le module de traitement en cours d'exécution sur l'adresse telle qu'indiquée dans la microzone d'adresse associée, et qui re- présente ici la partie III du triplet Dans ce microcode op, il est encore possible d'effectuer une distinction entre un branchement non conditionnel et un branchement conditionnel. Dans le cas d'un branchement non conditionnel, l'adresse est toujours adressée conme indiqué dans la microzone d'adresse. Dans le cas d'un branchement conditionnel par contre, l'adresse qui est déterminée en fonction de l'état sélectionné dans le registre d'états, est adressée. c) JUMP: adresser un module de traitement du même type, mais d'un nu- méro différent de celui en cours d'exécution Le numéro du module de traitement à adresser est indiqué dans la zone d'adresse associée, d) NEXT INSTRUCTION: choisir le module de traitement d'instructions sui- vant en fonction de la macro-instruction suivante dans le registre d'instructions, e) JSR: adresser un module de traitement du premier type à savoir un micro-sous-programme et placer l'adresse de la microinstruction suivante sur l'instruction JSR sur la pile, f) RETURN: extraire la micro-adresse de la pile, g) J Up SP: adresser un module de traitement du deuxième type, a savoir un module de traitement spécial. Pour chacun de ces microcodes op, on décrira à présent comment ils sont traités par le dispositif séquenceur La mâme séquence d'énumé- ration de microcodes op sera conservée. a) NEX'T: Le registre de sortie 55 du multiplexeur 52 a fourni, par l'intermédiaire de la ligne de sortie 63, la partie III de l'adresse de triplet d'un mot de micro-instruction A extraire Le microcode op de ce mot de micro-instruction A extraire est "NEXT" L'élément "plus 1 " 56 dont une entrée est connectée A la ligne de sortie 63 ajoute une unité a la dite partie III de l'adresse de triplet présente sur la ligne de sortie 63 (adresse i -3 adresse i+ 1) L'adresse incrémentée d'une unité est présentée A la porte d'entrée M 6 du multiplexeur 52 par l'intermné- diaire de la ligne 68 Le décodeur 57 décode le microcode op "NEXT" La porte d'entrée M 6 du multiplexeur 52 est sélectionnée sous le contrôle du signal "NEXT" décodé sur la ligne 66 La partie incrémentée III de l'adresse de triplet est ainsi transportée, par l'intermédiaire du re- gistre de sortie 55 et de la ligne 63, vers le système de porte de sor- tie 16 Les signaux "NEXT" décodés sur les lignes 65, 64, assurent que la porte d'entrée M 7 du multiplexeur 51 ou 50 soit sélectionnée et que le signal présent A la porte d'entrée soit stocké dans le registre de sortie correspondant Pour chaque multiplexeur 50, 51, la porte d'entrée M 7 est chaque fois connectée directement A la sortie de son registre de sor- tie propre La partie I et la partie II du triplet sont transportées par l'intermédiaire des lignes 61, 62 vers le système de porte de sortie 16. Pour un microcode op "NEXT", seule la partie III de l'adresse de triplet est donc modifiée, la partie I et la partie Il restant inchangées Un mot d'instruction suivant d'un méme module de traitement d'un même type est par conséquent ainsi adressé Le signal d'adresse pré- senté au système de porte de sortie 16 est alors de la forme (M 7, M 7, M 6) (signal d'adresse tel que présenté pour ce microcode op à la porte d'entrée Mi de chaque multiplexeur) Sous le contrôle du signal "NEXT" décodé sur la ligne 67, la pile 58 reste inactive. b) BRANCH: Non conditionnel: l'adresse des mots de micro-instruction a adresser est donnée dans la zone de micro-adresse du mot de micro-instruction qui cormporte "BRANCH" comm microcode op Cette adresse (partie III du o triplet) est présentée au dispositif séquenceur par l'intermédiaire de l'entrée 79 d'o elle est présentée le long de la ligne 60 a la porte d'entrée M 5 du multiplexeur 52 Le décodeur 57 décode le microcode op "BRANCH" La porte d'entrée M 5 du multiplexeur 52 est sélectionnée sous le contrôle du signal "BRANCH" décodé sur la ligne 66 La partie III du triplet de l'adresse A adresser est ainsi transportée par l'intermédiaire du registre 55 et de la ligne 63 vers le système de porte de sortie 16. Etant donné que le mot de micro-instruction à adresser se trouve dans le même module de traitement du méme type, la partie I et la partie II du triplet restent inchangées Ceci est réalisé, comme décrit également pour le microcode op "NEXT", par la sélection du signal à la porte d'entrée M 7 des multiplexeurs 50 et 51 Le signal d'adresse présenté au système de porte de sortie 16 est à présent sous la forme (M 7, M 7, M 5) La pile 58 reste inactive, même pour un branchement conditionnel, sous le con- trôle du signal "BRANCH" décodé sur la ligne 67. 20 Conditionnel: si le microcode op se présente sous condition, cette con- dition est fournie par l'intermédiaire de l'entrée 80 au décodeur 57. En fonction de cette condition, le décodeur choisira, par l'intermédiaire d'un signal de contrôle sur la ligne 66, la port d'entrée M 5 du multi- plexeur 52 pour le cas ou l'état est satisfait (branch effectif), ou la porte d'entrée M 6 du multiplexeur 52 pour le cas o l'état n'est pas (pas de branch, mais "NEXT"). c) JUMP: L'adresse du module de traitement à adresser, c'est-à-dire dans ce cas le numéro de ce module de traitement, est donnée dans la microzone d'adresse du mot de micro-instruction qui comporte "JUMP" comme micro- code op Cette adresse (partie II du triplet) est présentée au dispositif séquenceur par l'intermédiaire de l'entrée 79 d'o elle est présentée le long de la ligne 82 à la porte d'entrée M 5 du multiplexeur 51 Le dé- codeur 57 décode le microcode op "J Ul P" La porte d'entrée M 5 du multi- plexeur 51 est sélectionnée sous le contrôle du signal"JUMP" décodé sur la ligne 65 La pile 58 reste inactive sous le contrôle du signal "Jl P" décodé sur la ligne 67 La porte d'entrée M 4 du multiplexeur 52 est sé- lectionnée par le signal "J Ul P" décodé sur la ligne 66. La porte d'entrée M 4 du multiplexeur 52 est connectée à une sortie 70 du générateur de constantes 59 Le générateur de constantes 59 fournit toujours à sa sortie 70 un signal d'adresse qui caractérise la partie III de l'adresse de triplet d'un premier mot de micro-instruction d'un nmodule de traitement Dans l'exemple illustré sur la Fig 3 d, le signal d'adresse " 000 " serait alors fourni a la sortie 70 du générateur. Le signal "JUDIP" décodé sur la ligne 64 sélectionne la porte d'entrée M 7 du multiplexeur 50 Le signal d'adresse présenté au système de porte d'entrée 16 est à présent de la forme (M 7, M 5, M 4). d) NEXT INSTRUCTION: Le décodeur 57 décode le microcode op "NEXT INSTRUCTION" La porte d'entrée M 4 du multiplexeur 52 est sélectionnée sous le contrôle du signal "NEXT INSTRUCTION" décodé sur la ligne 66 La porte d'entrée M 4 est connectée à la sortie 70 du générateur de constantes 59 qui four- nit un signal d'adresse comme décrit plus haut pour le microcode op "JUMP" La porte d'entrée M 4 du multiplexeur 51 est sélectionnée sous le contrôle du signal "NEXT INSTRUCTION" décodé sur la ligne 65 La porte d'entrée M 4 du multiplexeur 51 est connectée par l'intermédiaire de la ligne 74 à l'entrée 81 du dispositif séquenceur 11 La macro-instruction suivante, sous la forme d'un numéro (d'adresse) d'un module de traitement, est présentée (partie II du triplet) à cette entrée 81 qui est connectée au registre d'instructions ( 10 sur la Fig 2) La porte d'entrée M 4 du multiplexeur 50 est sélectionnée sous le contrôle du signal "NE Xr IN- STRUCTION" décodé sur la ligne 64 La porte d'entrée M 4 du multiplexeur 50 est connectée à la sortie 73 du générateur de constantes 59 Ce géné- rateur de constantes 59 fournit constamment à sa sortie 73 un signal d'adresse qui caractérise la partie I de l'adresse de triplet pour un module de traitement d'instruction (module de traitement du troisième type) La pile 58 reste inactive sous le contrôle du signal "NEXT IN- STRUCTION" décodé sur la ligne 67 Dans l'exemple illustré sur la Fig. 3 d, le signal d'adresse " 10 " serait alors fourni a la sortie 73 du géné- rateur de constantes Le signal d'adresse présenté à ce système de porte de sortie 16 est a présent de la forme (M 4, M 4, M 4). e) JSR: Le décodeur 57 décode le microcode op "JSR" La porte d'entrée M 4 du multiplexeur 52 est sélectionnée (corne dans le cas du microcode cp "JUMP") sous le contrôle du signal décodé "JSR" sur la ligne 66 La porte d'entrée M 5 du multiplexeur 51 est sélectionnée sous le contrôle du si- gial "JSR" décodé sur la ligne 65 Le numéro du nmdule de traitement dans le micro-sous-programme est présenté à la porte d' entrée M 5 du multi- plexeur 51 Ce numéro provient de la microzone d'adresse (analogue a celle prévue pour le microcode op "JUMP") présentée à l'entrée 79 La porte d'entrée M 2 du multiplexeur 50 est sélectionnée sous le contrôle du s:i- gml "JSR" décodé sur la ligne 64 La porte d'entrée M 2 du multiplexeur est connectée à la sortie 71 du générateur de constantes 59 Ce géné- rateur de constantes 59 fournit constamment a sa sortie 71 un signal d'adresse qui est caractéristique de la partie I de l'adresse de triplet pour un micro-sous-prograrme (nodule de traitement du premier type). Dans l'exeuple illustré sur la Fig 3 d, le signal d'adresse " 00 " serait alors fourni à la sortie 73 du générateur de constantes Le signal d'adresse présenté au système de porte de sortie 16 est à présent de la forme (M 2, M 5, M 4) La pile 58 est activée sous le contrôle du signal "JSR" décodé sur la ligne 67 La pile effectue une opération "push", c'està-dire une opération au cours de laquelle le triplet (j, k, 1 + 1) est inscrit sur le dessus de la pile si (j, k, 1) est l'adresse de ce- nxt de micro-instruction à microcode op "JSR". f) PETURN: Lorsque le décodeur 57 décode le microcode op "RETU Rp N", la por- te d'entrée Ml de chaque multiplexeur 50, 51 et 52 est sélectionnée sous le contrôle du signal décodé sur les lignes 64, 65 et 66 La porte d'entrée Ml de chaque multiplexeur est connectée a une sortie associée de la pile 58 Sous la commande du signal "RETURN" décodé sur la ligne 67, la pile exécute une opération "pop", c'est-à-dire une opéràtion au cours de laquelle l'élément supérieur de la pile est extrait et est éliminé de la pile Le signal d'adresse présenté au système de port de-sortie 16 est a présent de la forme (Ml, Ml, Ml). g) Jt UT SP: Le fonctionnement dans le cas de ce microcode op pour les mul- tiplexeurs 51 et 52 est entièrement pareil à celui décrit pour le micro- code op "JSR" La porte d'entrée M 3 est toutefois sélectionnée pour le - multiplexeur 50 sous le contrôle du signal "JUMP SP" décodé sur la ligne 64 La porte d'entrée M 3 du multiplexeur 50 est connectée à la sortie 72 du générateur de constantes 59 Ce générateur de constantes fournit à sa sortie 72 toujours un signal d'adresse qui caractérise la partie I de l'adresse de triplet pour un module de traitement spécial (module de traitement du deuxième type) Dans l'exemple illustré sur la Fig 3 d, le signal d'adresse " 01 " serait alors fourni à la sortie 72 du générateur de constantes Le signal d'adresse présenté au système de porte de sortie 16 est à présent de la forme ( 13, M 5, M 4) La pile 58 reste inactive sous le contrôle du signal "JU Mi P SP" décodé sur la ligne 67. Revendications 1 Unité de traitement de données comportant une section de traitement, une section de conenande-et une section de communication pour le transport de l'information entre les dites sections, la section de commande comportant une mémoire de microcodes et un dispositif séquenceur; la section de comnmunication étant pourvue d'un registre d'instructions dont une sortie est connectée directement à une première entrée du dispositif séquenceur, la rrimoire de microcodes étant pourvuepour le stockage d'un nombre de modules de traitement qui comportent chacun au moins un mot de micro-instruction,le dispositif séquenceur ayant une deuxième entrée connectée à une sortie d'adresse de la mémoire de microcodes et unepremière sortie connectée à une entrée d'adresse de la mémoire de microcode, le dispositif séquenceur étant aussi pourvu d'un générateur d'adresses destiné âproduire des adresses pour les mots de micro-instruction, ledit générateur d'adresses comporte un premier et un deuxième générateur d'adresse partielle, caractérisée en ce que le premier générateur d'adresse partielle étant pourvue pour produire une première adresse partielle pour 1 'adressage d'un nmodule de traitement parmi le dit nombre de modules de traitement et le deuxième générateur adresse partielle étant pourvu pour l'adressage d'un mot de micro- instructiondans le module de traitement adressé par la première adresse partielle, la permière et la deuxième adresse partielle formant des parties réciproquement exclusives de l'adresse. 2 Unité de traitement de données suivant la revendication 1, caractérisée en ce que le dit nombre de module de traitement est réparti en au moins deux différents groupes de modules de traitement, le dit premier générateur d'adresse partielle comporte un premier et un second générateur de sub-portions d'adresses pour produire respectivement une première sub-portion d'adresse pour 1 'adressage d'un groupe individuel parmi les dits différents groupes et une seconde sub-portion d'adresse pour l'adressage individuel d'un module de traitement parmi le groupe adressé par la première sub-portion d'adresse. 3 Unité de traitement de données suivant la revendication 2, caractérisée en ce que la dite répartion en au moins deux différents groupes de modules de traitement étant réalis 6 e selon la nature de l'information de commande du mrodule de traitement. 4 Unité de traitement de dormées suivant la revendication 1, 2 ou 3, dans laquelle la nemoire de microcode comprend un décodeur d'adresses, caractérisée en ce que l'ensemble des adresses à décoder par le décodeur d'adresses est nettement plus petit qu'un autre ensemble de nombres binaires dans une série de bits de longueur globale égale à celle d'une adresse.