FR 2480459 A1 19811016 FR 8107446 A 19810414 La présente invention concerne de façon gé- nérale les systèmes de traitement de données et, en particulier, des mémoires de contrôle incluses dans ces systèmes. Un grand nombre des unités de traitement de données développées comprennent une mémoire dite "de contrôle" qui comporte un ensemble d'emplacements de mémoire contenant chacun un mot de mémoire de contrôle ou mot dit microprogramme. La mémoire de contrôle est utilisée pour exécuter une série d'opérations machine voulue afin d'obtenir le résultat demandé. La mémoire de contr8le est le coeur du système de contrôle dans l'unité de traitement de données. Ainsi, la vitesse de fonctionnement du processeur est, en grande partie, directement fonction de la vitesse de la mémoire de contrôle. On est parvenu à augmenter la vitesse de la mémoire de contrôle de nombreuses manieres, telles que par l'utilisation de mémoires plus rapides, de circuits logiques plus rapides et différentes techniques permet- tant de gagner du temps, y compris par des arrangements d'architecture et de synchronisation perfectionnés. Différentes techniques ont été également utilisées pour réduire la capacité de la mémoire de contrale afin d'avoir un nombre minimal d'emplacements, pour réduire les exigences en espace et en coût et pour faciliter également l'utilisation de mémoires plus-rapides. Un objet principal de la présente invention est une mémoire de contrôle avec des circuits logiques associés perfectionnés utilisable dans un système de traitement de données. % Selon la présente invention, un système de traitement de données est caractérisé en-ce qu'il comprend une"mémoire de contrôle comportant unepremière et une seconde partie dont chacune se compose d'un ensemble d'emplacements pour mémoriser des mots de *2480459 mémoire de contrôle utilisés pour contrôler le fonction- nement du système. Le système comprend, en outre, un dispositif pour adresser la première partie-avec une portion du contenu d'un mot qui est adressé parmi les mots de mémoire de contrôle et un multiplexeur pour adresser la seconde partie de la mémoire de contrôle avec des informations relatives au type d'opération à exécuter dans le système.-Le système comprend aussi un dispositif, incluant le multiplexeur, qui est relié 1-0 pour valider, en réponse à un premier type d'opération ou à un second type d'opération, l'adressage d'un empla- cement de l'ensemble des emplacements de la première partie ou d'un emplacement de l'ensemble des emplacements de la seconde partie, et pour valider ainsi l'apparie- ment d'un emplacement d'adresse paire ou impaire de chaque partie à adresser. D'autres caractéristiques et avantages de.; la présente invention seront mis en évidence dans la- description suivante, donnée à titre d'exemple'non limitatif, en référence aux figures annexées dans lesquelles: - la figure I représente un schéma fonction- nel d'ensemble d'un systèmes de traitement de données dans lequel un dispositif selon la présente invention est inclus; - - - les figures 2(A) et 2(B) représentent un schéma fonctionnel détaillé de l'unité centrale de traitement du système de la figure 1, selon la présen- te invention; - - la figure 3 représente des détails des connexions à l'unité arithmétique et logique de l'unité centrale de.traitement selon la présente invention - la figure 4 représente des détails de la composition des emplacements de la mémoire de contrôle de l'unité centrale de traitement de l'invention - 3a f!gure 5 représente un schéma fonctionnel détaillé de la mémoire de contr8le et des circuits logi- ques associés, contenus dans l'unité centrale de traitement selon l'invention j -- le figure 6 est un tableau représentant les signaux utilisés pour adresser la mémoire de contr8- le en réponse à différentes conditions de branchement:s' - la figure 7 est un schéma fonctionnel détaillé représentant les circuits-Iogiques de test utilisés pour valider la mémoire de contrôle de l'unitg centrale de traitement de l'invention j - la figure 8 représente un schéma détaillé d'un multiplexeur servant è adresser la mémoire de contr6le qui est cbhtenu dans l'unité centrala de trai- j5 tement de l'invention; et, - la figure 9 représente un exemple de l'o- pération d'appariement d'emplacements dans la mémoire de contr8le incluse dans l'unité centrale de traitement de l'invention. La figure I est un schéma fonctionnel d'en- semble de la configuration d'un système de traitement de données pouvant inclure uhs:bhité centrale de trai- tement 'CPU, salon la présente invention, Ce système comprend une unité centrale de traitement (CPU) 100, et des processeurs facultatifs qui peuvent comprendre -un processeur ou unité de traitement d'instructions scientifiques (SIP) 101 et.un processeur ou unité de traitement d'instructions commerciales (CIP) 102. Ces processeurs facultatifs peuvent être utilisés pour étendre la portée du processeur de base 100 à des ap- plications spéciales. Le système peut aussi comprendre une unité 103 d'antémémoirelde gestion de mémoire MMU, un bus électrique de système 105, des modules de mémoire principale 106, des contrôleurs d'entrée- sortie 107 reliés à des dispositifs d'entrée-sortie 108, et un contr6leur Qoj processeur de transmission mult- ligne (MLCP} 109, Le système peut également avoir une configuration è processeurs multiples dans laquelle un second sous-système central 110 comprend l'ensemble ou une partie des éléments du système décrit plus haut. Les processeurs-.de sous-système central sont connectés entre eux par l'intermédiaire d'un bus local M et ils sont connectés au reste du système par l'inter- médiaire de l'unité 103 d'antémémoire/de gestion de mémoire MMU. La fonction de l'unité 103 dans le sous- système central est de constituer une mémoire tampon pour la partie de la mémoire principale 106 qui est utilisée par les processeurs, et de fournir la traduc- tion de l'adresse de mémoire principale. La fonction du bus local est de constituer une interconnexion des processeurs et de l'unité 103 d'antémémoire/MMU, Il est' prévu un bus local physique 9 organisé en de nombreuses interfaces. Comme l'indique la figure 1, des interfa-es spécialisées sont prévues entre l'unité CPU 100 et les deux autres processeurs. Une autre interface spécialasé est prévue entre chaque processeur et-l'unité d'anté- mémoire/MMU 103. Le bus local 9 est une interface è temps partagé ou pu. blique, c'est-3-dire, partagée par les trois processeurs et l'unité 103. De plus, l'unit-é 103 constitue une interface avec le reste du syst!ème dont fait partie la mémoire principale 106 par l'inter- médiaire du bus de système 105, et avec les dispositifs d'entrée-sortis 108 par l'intermédiaire des contrt- leurs 107. On va maintenant décrire l'unité centrale de - traitement selon la présente invention, en se référant au schéma fonctionnel des figures 1(A) et 2(B). En particulier, on va décrire les différents bus électri- ques et unités fonctionnelles, ainsi que leurs înter- actions. Les éléments principaux de l'unité CPU sont représentés par les blocs délimités par des tirets. Un premier élément est l'interface de bus local 10 (figure 2(A)) qui comprend un tampon de données 31, un tampon de mémoire de procédure par permutation cir- culaire 36, et différents multiplexeurs de mot et d'adresse de procédure/données 34, 35, 39 et 40 reliés à un bus de source 33 ainsi qu'à d'autres circuits qui seront décrits par la suite. Le premier élément 10 est utilisé pour la réception de données provenant du bus local 9. Un second élément 16 (figure 2(B)), est l'élément arithmétique qui comprend plusieurs circuits incluant deux groupes de blocs registres (RAM) désignés par DRAM 11 et BRAM 12, et un bus de RAM 13 auquel sont connectés les registres DRAM 11 et BRAM 12. Le second élément 16 comprend également un bus d'entrée ou intérieur (I) 14 auquel est connecté leregistre BRAM 12, ainsi que d'autres circuits. Le second élément 16 comprend, en outre, une unité DALU 15 arithmétique et logique qui est reliée pour commander le registre DRAM 11o Un troisième élément 22 (figure 2(B)) de l'unité CPU comprend un bus extérieur 17 et un bus d'écriture 84, des registres à décalage 19-1 et 19-2 reliant ces deux bus et des sélecteurs les commandant, Ces sélecteurs comprennent un sélecteur 20 de DALU-15/ bus 13 et un sélecteur 21 de registre Y/registre P (YP). Un quatrième élément 27 (figures 2(A) et 2(B)) est la section d'adressage de l'unité CPU qui comprend un registre 23 d'adresse de procédure (P) et un re- gistre 24 d'adresse de données (Y). Ce quatrième élé- ment comprend également un multiplexeur d'adresse 25 et un registre 28 d'adresse de préextraction. L'élé- ment 27 comprend aussi un registre 28 de données d'é- criture (W) et un sélecteur 29 de données d'écriture (WS). Cette partie de l'unité CPU est utilisée pour le transfert de données vers le bus local 9. Un dispositif 30 de la figure 2(A) est un circuit logique de test de l'unité CPU qui comprend,- ainsi que l'indique la figure 7, un groupe de multi- plexeurs de huit-à-un commandant un second groupe d'au moins deux multiplexeurs de huit-à-un servant à engendrer un seul signal binaire appelé "test vrai" ou "test faux", qui est utilisé ensuite pour commander un branchement dans la partie microprogrammée. Les signaux de test vrai et de test faux sont envoyés dans des mémoires mortes programmables PROM contenues dans des blocs de mémoire;de contrôle 80 et 81, représentés sur la figure 5. Un générateur d'adresse suivante 44 de la figure 2(A) est relié à un registre F 38 et à un bus F 37. Le générateur 44 a pour fonction principale d'engendrer des adresses de microprogramme à utiliser dans l'unité CPU. La fonction de l'élément 10, qui est dans la zone d'entrée de données du bus local, est de recevoir des données revenant de l'unité 103 d'antémémoire/MMU ou d'autres dispositifs par le bus local 9 pour sélec- tionner des données des mémoires PROM de séquence d'appel, si une exécution de procédure de séquence d'appel est demandée, et pour diriger ces données vers le tampon de données approprié. Si une extraction d'instruction est demandée, les données sont placées dans le registre de fonction 38. En particulier, le tampon de données principal 31 reçoit des mots de données à 16 ou 32 éléments-binaires ou bits du bus local 9. Sa sortie est connectée à wn bus L 32. Le bus L 32 est utilisé pour commander le bus de source 33 par l'utilisation de deux sélecteurs DA 34 et DW 35 et pour commander le tampon de procédure à quatre mots 36. Des données de non procédure entrent dans l'unité CPU par l'intermédiaire du bus de source 33 qui est com- mandé à partir du bus L 32 par les sélecteurs de données. Z480-459 Des données de procédure entrent.dans J'unité CPU par l!intermédiaire, d'un groupe différent de sélecteurs PA 39 et PW 40, ces données provenant du tampon de procédure 36. Le tampon de procédure a la respo.nsabi- lité de contenir les deux ou trois mots suivants de la proc&dure à exécuter, de sorte que lorsqu'ils sont demandés, un délai n'est pas nécessaire pour les extrai- re. I1 est rechargé automatiquement à partir de l'unité -103 d'antémémoire/MMU par-l'intermédiaire du-bus 1-ocal 9 quand il est vidé par l'unité CPU. - Le bus F 37 est un bus spécial qui est utilisé pour le transfert d'informations dans le registre F 38, c'est-b-dire, les quatre zones désignées par FOP, FM, FN et. Liaison sur la figure-2(A). Le registre F 38 est le registre d'instruction principale de l'unité CPU.-La Fonction du bus F 37 est de prendre des données dans le registre F 38 et d'envoyer des donné-es au registre F à partir de différentes sources. Un multiplexeur 43 est également prévu pour permettre le chargement de 2.0. constantes ou de données-en provenance d'un élément AS' 42 dans l'une des zones de Liaison ou FN du registre F 38. Il est également prévu dans'' la zone d'entrée de données constituée par l'élément 10.un groupe de mémoires PROM 41 de séquence.d'appel qui peuvent être utilisées pour fournir des instructions, au lieu d'instructions de mémoire, si le fonctionnement est en mode de séquence d'appel. Le tampon 36 qui comporte des emplacements A, B. C, D, est une mémoire de procédure' par permutation. circulaire à quatre mots, Chaque fois que le tampon a la place pour deux mots de procédure, c'est-à-dire, qu'il est-à moitié vide, il déclenche alors automa- tiquement une lecture de procédure de mémoire par l'intermédiaire du bus local 9, à partir de l'unité 103 d'antémémoire/MMUU. Ls données en retour sont chargées dans'les deux emplacements suivants qui sont disponi- bles dans le tampon 36, Quand l'unité CPU utilise.des procédures en les émettant en direction du bus de source 33 pour leur utilisation à l'intérieur des élé- ments de traitement de l'unité CPU, ou en les envoyant au registre F 38 car elles sont une partie d'une ins- truction,-les deux pointeurs 36-1 et 36-2, qui repré- sentent effectivement des curseurs dans le tampon 36, progressent alors jusqu'à l'emplacement suivant dispo- nible par l'utilisation-d'un compteur contenu dans le tampon 36 qui valide successivement les quatre empla- cements pour les scrties du tampon 36. Le curseur ou pointeur à gauche 362 indique le mot ou procédure suivante à extraire; le curseur à droite 36-1 repré- sente le mot qui suit. Quelquefois, un mot de procédure est utilisé en haut, auquel cas le mot indiqué par le curseur à gauche est utilisé pour engendrer l'in- formation, en traversant le multiplexeur PW 40. Quelque- fois, deux mots de procédure sont nécessaires (comme lorsqu'il s'agit d'une extraction-d'adresse sous forme de grande adresse (LAF). Les mots indiqués par les curseurs à gauche et 3 droite sont alors combinés dans le multiplexeur PA 39 du sélecteur de procédure. Cela sera décrit plus en détail dans la suite de la description de cette partie de circuit logique. L'élément 10 est ainsi la zone dont la fonc- tion est d'amener des données dans l'unité CPU par le bus de source 33, par l'intermédiaire des sélecteurs 30. de données 34.et 35 ou des sélecteurs de procédure 39 et 40,.ou d'amener des données directement dans le registre d'instruction F 38 par l'intermédiaire du tampon de procédure 36 et du bus F 37. Un dispositif (F') 76 est utilisé-pour conserver des bits sélection- nés en provenance d'informations ou syllabes d'adresse g auxiliaire. La syllabe d'adresse est, présentement, une partie d'un descripteur de données à 16 bits. Certains: bits du descripteur doivent être conservés. pour une analyse ultérieure. Le bit de longueur d'o- pérande dans le descripteur de CIP et les bits de longueur d'opérande, avec signe ou sans signe du descripteur de registre K, doivent être conservés. Ces bits sont conservés dans le registre à cinq bits F' 76. Le second élément 16 contient l'unité arithmé- tique et logique (DALU) 15, les registres BRAM 12 et DRAM 11, contenant tous -les registres visibles par le programmeur, plus un certain nombre de registres de travail non visibles par le programmeur. Ces éléments de mémorisation de données sont organisés comme suit le registre DRAM 11, qui est une des deux souces pou- vant commander le bus de RAM 13, contient 32 emplace- ments dont chacun a une longueur de 24 bits. Ces empla- cements sont utilisés pour contenir les registres désignés par D, deux moitiés (K & L) des registres désignés par K qui ont une longueur de 32 bits, un certain nombre de pointeurs internes, et sept registres désignés par M. Le registre BRAM 12, qui contient 16 mots de 24 bits chacun, contient les sept registres de base plus un certain nombre-de pointeurs visibles et non visibles par le programmeur de différents types, La figure 3 représente de façon plus détaillée les connexions entre les registres RAM, les bus et l'unité DALU 15. Les registres DRAM 11 et BRAM 12 peuvent constituer chacun des sources pour le bus de RAM 13. Le registre BRAM 12 a effectivement une struc- ture double; c'est-à-dire qu'il est constitué par deux registres BRAM 60 et 61 en parallèle danb l'unité CPU. Les deux éléments du registre BRAM 12 sont chargés de façon identique. L'élément 60 commande le bus R (ou transfère des données vers celui-ci), et l'autre élément 61 commande le bus I 14. L'aspect important des deux registres BRAM identiques est que le système.a sa vitesse de traitement augmentée. Le bus R peut être commandé par le registre BRAM 60 ou par le registre DRAM 11. Comme on le verra dans la suite, d'autres sources commandent également le bus. I 14. L'unité DALU 15 utilise le Bus I et le bus R à ses entrées et la sortie de l'unité DALU peut ensuite être recyclée par rapport au registre DRAM et/ou utilisée ailleurs dans l'unité CPU. L'élément 16 comprend deux bus d'un intérêt majeur. Le bus d'entrée ou intérieur (I) 14 est la source principale d'entrée originale dans-le processeur, c'est- à-dire que des données de mémoire atteignent ce bus comme celles émises par la sortie du registre 4 50 qui sont transmises par le circuit de commande 54 ainsi que celles émises par la sortie du registre BRAM 12. Le second bus R ou bus de RAM est 1le point o les sorties des deux registres RAM différents, c'est-à-dire les registres BRAM et DRAM sont reliés. Les sorties de ces deux bus sont reliées aux entrées de l'unité DALU 15, qui engendre des données pouvant être renvoyées dans le registre DRAM 11 ou envoyées au bus extérieur 17 pour un autre traitement dans le système. Les deux bus intérieur et de RAM, 14 et 13, utilisent un élément matériel considéré comme ce qu'on appelle un "verrou de pas" (BL) qui est une porte dont les entrée et sortie sont reliées pour un couplage avec des signaux sur le bus. Ce verrou est destiné à prendre la suite du contrôle de ce signal après que la source de commande soit obligée de laisser le bus pour des raisons de synchronisation et de mise en sé- quence. Quand cela se produit, le verrou maintient alors ce signal au même niveau qu'il avait quand la source de commande était présente, jusqu'à ce que le verrou soit arrêté, le signal de bus pouvant alors se relâcher (passer à un niveau prédéterminé.tel que O volt), Le bus de RAM 13 est l'interface servant au transfert de données-entre le tableau de commande 90 et l'unité centrale de traitement, ce bus étant connecté à.l'uh'it".par l'intermédiaire de 16 lignes bidirection- nelles de signaux. Les données de mémoire sont envoyées *au-bus intérieur 14 par l'intermédiaire d'un groupé de circuits de commande appelés verrous de données (DL) 51. Les verrous de d.onnées sont connectés en parallèle avec un second groupe de verrous appelés verrous d'extension de signe (SE) 52., Ces verrous 52 sontuti- lisés pour étendre au signe ou à zéro les verrous de données 51 quand Ils ne fournissent au bus -à 24 bits qu'nne quantité de 16 bits. De m me les verrous 52 sont utilisés pour prendre 7 ou.:8 bits de l'instruction courante et pour faire une extension de signe-& 24 bits afin d'être utilisés par les instructions de branchement et de valeur qui obtiennent respectivement leur dépla-- cement et'leur opérande de la portion à droite du mot d'instruction. Un circuit logique de sélection/modification 53 est également associé aux registres BRAM 12 et DRAM 1-1 co.circuit permet d'adresser.les registres BRAM etlDRAM ,par blocs de huit registres, en utilisant différentes Zones de l'instruction pour commander la sélection de registres inhdividuels à l'intérieur du bloc considéré. Un générateur de constantes (KON) 70 est égalemént inclus dans l'élément 16 d'unité principale arithmétique et logique 'ALU, ce générateur constituant une autre source pour le bus intérieur 14, c'est-à-dire qu'il constitue la source qui peut être utilisée pour engendrer sur le bus intérieur des constantes à 24 bits (selon les signaux d'entrée qu'il reçoit en provenance des zones BI et K du mot de mémoire de contrôle) pour leur utilisation par l'unité arithmétique sous.la com- mande de la partie microprogrammée. Ainsi, l'6élément 16 est la zone principale d'opérations arithmé'tiques de.l'.unité centrale de traitement CPU, c'est-à-dire qu'il assure le traitement d'op6randes, la génération d'opérandes.-à introduire dans les registres de données DRAM 11 ou d'opérandes qui doivent tre envoyés aubus extérieur 17,.soit pour être renvoyés au registre BRAM.12, soit pour être envoyés aux différents registres d'adresse et de données afin d'être -émis en direction du bus local 9. L'élément 22 correspond principalement à la section de l'unité centrale CPU incluant les bus exté- rieur 17 et-d'écriture 84. Le bus extérieur 17 est le bus o différents chemins de données sont regroupés, c'est-à-dire, les chemins par le registre Y 24. le registre P 23, la sortie de l'unité DALU 15 et le bus de RAM 13. Le bus d'écriture 84 est le bus utilisé pour transférer des opérandes au registre.BRAM 12, aux registres de données d'écriture, et à l'unité BALU 55 qui est l'unité arithmétique et logique ALU principale pour le traitement d'adresses. Un groupe de vingt-quatre registres à déca- lage 19 de multiplexage, connectés entre le bus exté- rieur 17 et le bus d'écriture 84 permettent de décaler 1, 2 ou 4 bits d'opérandes en direction du bus exté- rieur 17. De plus, un groupe de seize registres à décalage 56 de multiplexage sont prévus pour le char- gement d'opérandes dans le registre Q 50. 30.Deux des quatre types différents d'opérandes qui sont émis en direction du bus extérieur provien- nent de l'unité DALU 15 et du bus de RAM 13 et sont sélectionnés par l'intermédiaire d'un multiplexeur de deux-à-un 20 relié au bus extérieur 17. Les deux autres sources pour le bus extérieur 17 sont le registre Y 24, qui est le registre d'adresse de données, et le registre d'adresse de procédure (P) 23. Les sorties de ces deux registres sources sont reliées au bus extérieur 17 par l'intermédiaire d'un multiplexeur de deux-à-un-21 (sélecteur de Y/P). Un registre I 57 est également relié au bus extérieur 17 v ce registre est un registre d'in- dicateur pour le sous-système central de traitement. Le contenu du bus extérieur 17 peut être'transféré soit directemânt ou par décalage Jusqu'au bus d'écri- ture 84 pour un autre traitement dans l'unité CPU. - Le contenu du bus extérieur peut aussi être chargé direc- tement dans le registre Q 50 de sorte que le registre Q puisse être utilisé pour des opérations de décalage à double précisions. Tout décalage ayant lieu dans l'unité CPU s.e produit par traitement d'opérandes entre le bus exté- rieur 17 et le bus d'écriture 84. Les ving-quatre registres à décalage 19 sont utilisés pour décaler des opérandes à 24 bits, c'est-à-dire la longueur des opérandes sur le bus extérieur 17 et sur le bus d'écri- ture 84 (à gauche ou à droite) sous la commande du mot de mémoire de contrôle. Ces registres peuvent décaler les bits d'opérande de 1, 2 ou 4 positions, faire traverser directement l'opérande, ou transférer l'opé- rande en ihterchangebnt les deux multiplets à droite -de l'opérande. Le fonctionnement de ces registres à décalage est commandé par une portion spéciale -du mot-de mémoire de contrôle. Cette section de l'unité CPU est utilisée pour décaler des opérandes à 24 bits. Quand des opérandes à 32 bits (de registre- double) sont décalés, l'opérande à droite est chargé dans le registre Q 50 par l'intermédiaire du bus extérieur 17, et un décalage est ensuite effectué, non seulement,. dans les registres 19 du bus d'écriture,.mais également, dans les seize registres à décalage 56 de registre Q. Le registre Q contient des informations traitées comme une extension de 16 bits du côté droit de l'opérande de 24 bits qui est décalé jusqu'au bus d'écriture 84; les extrémités de ces deux registres à décalage sont reliées entre elles, ce qui permet d'obtenir un déca- lage de 40 bits. Dans ces décalages en registre double, les opérandes intéressants sont les 16 bits renvoyés au registre Q et les 16 bits transférés auxdeux empla- : cements de multiplet à.droite du bus extérieur 17, tandis que lés 8 bits à gauche des données de bus d'écriture sont habituellement rejetés. L'élément 75 représente le circuit de collecte des bits d'état dans l'unité CPU pour leur transmission * au bus d'écriture par l'intermédiaire du circuit de commande 93 dans certaines conditions. Le bus d'écri- ture a deux sources.dont la principale est le registre à décalage 19 relié au bus extérieur 17. Ce registre à décalage 19 peut être invalidé comme source d'entrée du bus d'écriture 84 pour que l'élément 75 de collecte des bits d'état (S/Z) puisse envoyer des bits d'état sur. le bus'd'écriture 84 pour une analyse ultérieure par la partie microprogrammée. Il est également prévu une unité associée au registre Q 50, non décrite précédemment, qui est le registre XB 58 de La figure 2(6) et le décodeur 59 associé. Le registre XB 58 est utilisé pendant le décalage d'index pour saisir les bits d'index qui sont décalés à droite pour des opérandes dessous-mot et qui seraient perdus puisqu'ils se déplacent vers la 30. droite du seul bit de mot dans l'adresse, Le registre XB les saisit, un bit à la fois pour des décalages de demi-mot, deux bits à la fois pour des décalages de chiffre, et quatre bits à la fois pour des décalages d'opérande évalué en bits. Le registre XB contient des informations qui sont ensuite utilisées pour commander directement, une sélection de moitié gauche ou droite quand il traite des opérandes à demi-mots, quand il engendre un paramètre à envoyer au processeur d'instructions commerciales CTP pour des opérandes à chiffres, et pour engendrer un masque de 15 zéros binaires et un seul un binaire, en association avec le décodeur 59, quand il traite des opérandes à bits. C'est ainsi que pour un opérande-à bits, un mot est lu, un masque est utilisé pour mettre à un'ou remettre à zéro le bit sélectionné dans le mot, et le mot est ensuite écrit à nouveau dans la mémoires Le masque est engendré par le décodeur 59 et il est envoyé.& l'entreée du registre Q 50. C'est ainsi qu'un élément des données qui peuvent être chargées dans le registre Q est le masque de décodeur engendré à partir du contenu du registre XB 58. La quatriàme.élément principal de l'unité CPU est l'élément 27 dont la fonction est d'engendrer des adresses, des commandes et des opérandes à trans- mettre au bus local 9 et, par l'intermédiaire du bus local, au processeur CIP 102, au processeur SIP 101, ou à l'unité 103 d'antémémoire/MMU, et donc à la mémoire ou aux dispositifs.d'entrée-sortie. Cet élément prin- cipal peut 8tre décomposé en trois zones approximatives don-t la première est le registre de données d'écriture (W] 28 ethle sélecteur d'écriture (WS) 29. Le registre 28 est un registre à 32 bits ayant une capacité de chargement cloisonné, c'est-à-dire de chargement de moitié droite ou de moitié gauche ou des deux moitiés à la fois. La moitié droite est toujours chargée à partir de 16 bits du bus d'écriture 84 par l'inter- médiaire des circuits de commande 74. La moltié gauche est chargée avec des données provenant du sélecteur d'écriture 29. Ce sélecteur d'écriture reçoit à ses 16 entrées soit les 16 bits de la moitié droite du bus - 16 d'écriture 84, soait les 8 bits à gauche du bus d'écri- iure plus l'extension de signe ou de zéros, Le bus d'écriture est le chemin principal par lequel des don- nées peuvent être envoyées au-reg'stre W 28 pour écrire ensuite ces données dans tout autre dispositif relié au bus l.ocal.g.9 La zone suivante de l'interface de sortie de bus local 27 est le circuit -de commande 71. Le circuit de commande 71 commande une série de.lignes de commandes qui accompagnent tous les transferts.par l'unité CPU sur le bus local et indique à l'unité 103 d'anté- mémoire/MMU un cycle de référence de mémoire, un cycle de référence d'entrée-sortie, ou un cycle de référence de bus local, ou à une des unités de'traitement par le bus local. Les informations transférées à partir de la ligne 72 sur les lignes de commandes sont déduites des zones ou champs F et FK du mot de mémoire de con- trôle ou de microprogramme (FW), représenté sur la figure 4, qui commande à d'autres moments le fonction- nement du registre F 38 de l'élément 10. La troisième partie de l'élément 27 comprend les deux registres d'adresse principale, c'est-à-dire -le registre Y 24 pour des adresses de mémoire de non- procédure et pour des adresses-d'autres dispositifs sur les bus local. et de système, et le registre P 23 (le compteur de programme) ainsi que le registre de pré-extraction 26. Le compteur P 23 garde la trace du dernier mot que la partie microprogrammée a utilisée, ce mot ayant été extrait du tampon de permutation circulaire 36 et étant introduit dans l'unité CPU 100 pour que des opérations soient effectuées sur ce pot. Le registre de préextraction (PF) 26 garde la trace du mot qui doit être ensuite extrait de la mémoire; c'est ainsi que les registres P et PF peuvent avoir leurs contenus 1 7 qui diffèrent de n'importe quel nombre dans une-adresse de mémoires de un à quatre mots selon le contenu du tampon de permutation circulaire et depuis quand le système central de traitement a extrait des données du tampon. Si le système central de traitement a extrait toutes les données du tampon, l'unité 103- d'antémémoire/ MMU a besoin d'un intervalle de temps limité pour répondre avec de nouvelles données';en réponse à une demande et pour remplir le tampon 36 à nouveau. Pans- ces conditions, le registre de pré-extraction 26 et le compteur ou registre P 23 ont des contenus d'adresse proches ou identiques. Quand le tampon 36 est plein et que l'unité CPU 100 n'a pas extrait de données récemment, le registre P a alors son contenu inférieur de deux à quatre mots à celui du registre de pré-extrac- tion puisqu'il indique le dernier mot extrait tandis que le registre de pré-extraction indique le mot suivant à venir de la mémoire dès qu'il y aura de la place pour lui dans le registre de pré-extraction. Les contenus du registre P 23 ne sont jamais admis comme source d'adresse de mémoire pour le bus local 9. Les deux sources de données qui peuvent at- teindre le bus local par l'intermédiaire du multiplexeur d'adresse virtuelle 25 sont le registre Y 24 (qui est utilisé pour toutes les extractions de non-procédure) et le registre de pré-extraction 26 (qui est utilisé automatiquement par le circuit logique de pré-extraction pour atteindre la mémoire et demander des mots à utiliser dans des phases suivantes d'exécution de microprogramme). * Les flèches sur les circuits 23, 24 et 26 indiquent la capacité de progression de ces registres particuliers. C'est ainsi que le registre P peut pro- gresser de un ou de deux mots en fonction du nombre de mots qui sont extraits du. tampon 36 en même temps. - 18 Ainsi, l'extraction d'un mot du tampon 36 fait progres- ser automatiquement le contenu du registre P de un; l'extraction de deux mots du tampon 36 fait progresser automatiquement le contenu du registre P de deux. Le registre de pré-extraction a son contenu qui progresse toujours de deux car des pré-extractions sont toujours effectuées sur deux mots. Le registre Y peut avoir son contenu qui progresse de un ou de deux sous la commande de la partie microprogrammée quand celle-ci est utilisée ou en préparation pour une utilisation ultérieure. Le mot de microprogramme contient une zone -de commande de bus qui permet de commander cette pro- gression et les différentes demandes de cycle au bus local. Les entrées du registre W 28 constituent deux chemins de données à 16 bits pris de différentes ma- nières. Si une adresse à 24 bits doit être écrite, les circuits de commande 74 sont alors commandés pour vali- der les 16 bits à droite du bus d'écriture et les transférer aux entrées de 16 bits à droite du registre W. Le multiplexeur 29 est conditionné de façon à ce que les huit bits à gauche du bus d'écriture et les huit bits à zéro de poids fort à gauche soient envoyés aux entrées de 16 bits à gauche du registre W 28. Une adresse à 24 bits de deux mots est ainsi chargée dans le registre W pour être écrite ensuite dans la mémoire. Si un seul mot doit être écrit dans la mémoire, la moitié droite du registre W n'est alors pas validée et ne change pas, et le multiplexeur 29 est conditionné pour valider le transfert des 16 bits à-dràite du bus d'écriture aux entrées de 16 bits à gauche du re- gistre W dans lequel ils sont chargés. Pour des écri- tures de mots uniques, la moitié gauche du registre W contient les données qui sont écrites dans la mémoire. Les circuits logiques qui ont été décrits jusqu'icl sont utilisés pour demander et accepter des données d'autres unités sur le bus local 9, telles que l'unité 103 d'4ntémémoire/MMU, le processeur CIP 102 ou le processeur SIP 101, afin d'opérer sur ces données et de les mémoriser de façon interne dans divers re- gist-re-s par l'intermédiaire des deux unités arithméti- ques et logiques ALU qui sont contenues dans le système. et afin de créer de nouveaux opérandes qui sont ensuite modifiés et envoyés, sur le bus local pour Atre trans- mis à.une des unités reliées à ce bus ainsi qu'une adresse indiquant l'unité concernée (calculée de façon: - interne dans l'unité centrale de traitement CPU et utilisée pour commander le bus local). Toutes ces opé- --rations sont exécutées sous commands de la-partie mzLcroprogrammée qui est contenue dans les deux blocs de mémoirs de contrôle 80 et 81, de1 '048 mots par 96 bits par mot,-incluses dans l'unité CPU. La mémoire de contrôle est constituée d'un certain nombre de zones ou champs individuels qui commandent chacun un aspect des performances internes de l'unité CPU. La figure 4 représente le mot de micro- programme et les différents champs intéressants à l'in- térieur de ce.mot.. Le premier de ces champs est le champ de bus local {LB) formé par les bits 0 à 7 de mémoire de contrôle. Le champ LB concerne les demandes de différents cycles faites à partir du bus local 9 et les réponses qui lui sont faites. Il est également responsable de l'émission d'adresses virtuelles par l'intermédiaire du registre de pré- extraction 26 ou du registre Y 24, et il commande les différentes progres- sions des registres Y et P. Ce champ-de bus local com- mande aussi les lectures successives de données dans le tampon de procédure par permutation circulaire 36, et les validations respectives des multiplexeurs de données et de procédure 34, 35, 39 et 40 pour le trans- - fert d.'informrtions sur le bus de source 33 et leur utilisation ultérieure par le bus intérieur 14. Le champ suivant, constitué par les bits 8 et 9 de mémoire de contrôle, est le champ d'horloge (CK) utilisé pour commander'la vitesse-d'horloge de l'unité CPU, c'est-à-dire, l'intervalle de temps entre les impulsions d'horloge successives dans l'unité CPU. Chaque phase de micràprogramme comporte une vitesse d'horloge appropriée 4 sa complexité. Dans le système de la présente invention, on a prévu quatre intervalles de temps possibles entre les impulsions d'horloge successives, comme par exemple 96 nanosecondes, 105. nanosecondes, 130 nanosecondes et 170 nanosecondes. L'intervalle de temps qui est utilisé pour une phase de microprogramme est commandé par le champ CK pour cette phase.. Ls champ suivant est le champ de test et de commande TC constitué par les bits 10 à 15 de mémoire de contrôle. Ce champ à 6 bits sélectionne une des 64 fonctions logiques possibles à l'intérieur de l'unité CPU pour tester et commander des séquences de microprogramme. Le champ suivant est le champ BR de branche- ment, constitué par lea bits 17 & 19 de mémoire de 25.contrôle, qui est utilisé pour commander le type- d'act.ion à prendre en fonction d'un résultat:de test, c'est-à-dire quel type de branchement doit Btre effectué à savoir si le branchement sélectionne simplement une phase parmi deux phases de microprogramme, ou si ce branchement sélectionne une phase de microprogramme qu une procédure conditionnelle de génération d'adresse. de mémoire de contrôle (la génération d'une adresse d'une multiplicité d'adresses suivantes de mémoire de contrôle basée sur l'état d'un ou de plusieurs éléments logiques dans l'unité CPU) dans laquelle l'adre-sse suivante est commandée par une fonction du contenu de registre F 38- Le champ suivant qui présente un intérêt est le champ TP de test de polarité constitué par le bit 21. Ce bhamp contrôle si la condition de test établie par test est.vraie ou fausse. Le champ NA, constitué par les bits 22 à 31, est un champ à dix bits qui est utilisé pour engendrer au. moins une des deux adresses sélectionnées par tous les branchements. L'autre adresse est également déduite du même champ NA ou des procédures conditionnelles de génération d'adresse de mémoire de contrôle'mentionnées plus haut. Le champ suivant, constitué par les bits 32 à 39, est le champ de commande de registre F qui est divisé en une partie de quatre bits désignée par F et une seconde partie de quatre bits désignée par FK.' Les champs F et FK sont utilisés pour commander le chargement et l'échantillonnage de différents éléments dans le registre F et dans la zone du bus F 37-; c'est ainsi qu'ils sont utilisés pour commander l'échantil- lonnage des dispositifs F' et AS', des sous-parties du registre F 38 et du multiplexeur 43. Les champs F et FK contrôlent quels sont les dispositifs chargés et quelles sont les sources de ces dispositifs-. Le champ suivant,constitué par les bits 40 à 47,-est le champ K de constante qui est utilisé pour commander le bus intérieur I 14, C'est un champ de 8 bits qui fournit les huit bits à droite pour toutes les constantes qui sont admises pour le bus 14. Les 16 bits à gauche de la constante sont contrôlés par le champ de bus I qui sera décrit dans la suite. Le champ K est directement relié au dispositif de constantes KON 70. Le champ suivant de mémoire de contrôle, constitué par les bits 48 à 63, concerne principalement v* - 2480459 l'adressage et la commande du registre DRAM 11 et du registre BRAM 12. Le champ DW de deux> bits est utilisé pour commander l'écriture dans le registre DRAM 11 avec un bit commandant des opérations d'écriture dens les huits positions de bits de poids fort à gauche du registre DRAM, et l'autre bit commandant les opérations d'écriture dans les 16 positions de bits de poids faible à droite du registre. Le bit suivant, c'est-à- dire le bit 50 de champ BW, est utilisé pour commander des opérations d'écriture dans les deux parties du registre BRAM, dans lesquelles des écritures sont toujours faites en m9me temps. Le champ suivant DS, constitué par cinq bits, assure la sélection d'un des 32 registres du registre DRAM 11. Le champ DM, constitué. par les bits 56 et 57, est le champ de sélection-modi- fication associé au registre DRAM qui permet la sélection soit directement du registre DRAM, soit d'une des trois fonctions différentes du registre F 38 pour modifier l'adressage du registre DRAM. Le champ suivant est le champ de sélection de B (BS), constitué par les bits 60 à 63, quiest utilisé pour la sélection d'un des 16 registres du registre BRAM. Le champ de deux bits, constitué par les bits 58 et 59, est le champ de pélection-modifi- cation IBM) pour l'adressage de registre BRAM. Il opère comme le champ pour l'adressage de registre DRAM à l'exception du fait qu'il est séparé de sorte que des fonctions de sélection et de modification indépen- dantes peuvent être exécutées pour les deux registes BRAM 12 et DRAM 11. Le champ suivant est le champ GP, constitué par les bits 65 à 71, qui est utilisé pour commander un grand nombre de micro-opérations à toutes fins dans l'unité de traitement, telles que la synchronisa- tiQon des différentes bascules bistables et la valida- tion de différentes fonctions de commande. Ce champ est également Utilisé pour commander l'accès au tableau de commande 90 à partir de -l'unité CRU, pour l'entrée et. la sortie de données au tableau de commande, et pour commander différentes bascules qui y sont contenues. Le champ suivant, constitué par les bits 72 et 73, est le champ RB utilisé pour commander l'émis- sion à partir d'une source de données sur le bus R 13, un bit commandant le registre BRAM et l'autre bit com- mandant le registre DRAM. Le champ BA, constitué par les bits 74 à 79., est utilisé pour commander les fonctions de l'unité BALU 55, c'est-à-dire l'unité arithmétique et logique qui a ses entrées reliées au bus intérieur-I et au bus d'écriture W et qui est utilisée pour commander le registre Y 24. Les six bits du champ BA sont utilisés comme suit: -un bit est introduit comme report dans l'unité BALU, un bit est destiné à la commande de l'unité arithmétique etlogique, et les quatre autres bits assurent la sélection de fonctions particulières. Le champ suivant est le champ IB, constitué par lés bits 80 à 83, qui est utilisé pour contrôler quelle est la source de donnée*s validée pour le bus intérieur 14. Ce champ peut valider les verrous de données, l'extension de signe pour le registre F, ou sélectionner une constante, ou le registre BRAM dans différentes combinaisons par rapport au bus I 14. Le champ suivant est le champ SH, constitué par les bits 84 à 89, qui est utilisé pour commander à la fois les registres à décalage et les sources du bus d'écri- ture W qui ont été décrits plus haut. Les six bits de ce champ permettent au système d'avoir une grande quantité de commandes autonomes par lesquelles des -2480459 registres sont v li.dés pour le bus W et indiquant si le registre Q est ou.non chargé et dans quelle direction est décalé l'opérande qui traverse les registres à décalage. -Le dernier champ est le champ DA, constitué par les bits 90 à 95, dont la fonction est de commander l'unité.DALU 15-avec six bits ayant-des fonctions ana- logues à celles des bits du-champ BA, c'est-à-dire, un bit sert à introduire un report, un bit sert à sélectionner la partie logique ou la partie arithméti- que, et les quatre autres bits servent à sélectionner des fonctions particulières. La mémoire de contrôle de l'unité CPU (figure ) est constituée, dans l'exemple de réalisation pré- féré de l'invention, de deux blocs de mémoire de con- trôle: un bloc supérieur 80 et un bloc inférieur 81. Le bloc supérieur est adressé par le générateur d'adres- se suivante 44 et le bloc inférieur est adressé direc- tement par une portion du contenu du mot de mémoire de contr le qui est traité. Dans le cas des types les plus communs de branchements, c'est le même champ NA du mot de mémoire de contrôle qui est utilisé-comme source de base de l'adresse suivante, et une modification de ce-lle-ci est faite de manière que les deux adresses destinées aux blocs supérieur et inférieur soient essentiellement identiques. Dans le cas des autres branchements, c'est-à-dire ceux qui sélectionnent une adresse suivante ou une adresse dérivée de la procédure conditionnelle de génération en mémoire PROM, le bloc inférieur reçoit le champ d'adresse suivante inchangé partir du mot de mémoire de contrôle, tandis que le bloc supérieur reçoit l'adresse conditionnelle du mot de mémoire de contrôle. La mémoire de contrôle est ainsi divisée de telle sorte que le système puisse avoir un accès simultané à deux mots de mémoire de contrôle possibles pouvant donner une adresse suivante et qu'il puisse ajourner la décision disant lequel va être utilisé jusqu'à peu près l'extr me fin de la phase d'opération de mémoire de contrôle en cours, juste avant de transférer les données dans le registre de commande 82. Les détails du fonctionnement de la mémoire de contrôle seront décrits dans la suite. On va maintenant décrire la manière suivant laquelle l'unité CPU et la partie microprogrammée agissent l'une sur l'autre pour exécuter certaines opérations typiques du processeur central, telles que a) la lecture d'un mot en mémoire; b) le calcul d'une adresse suivante pour la lecture d'un autre mot en mémoire; c) l'écriture d'un mot en mémoire; et d) l'exécution d'opérations selon un certain type d'algotithme d'itération, qui sont entièrement internes à l'unité CPU. On va décrire des situations typiques et des opérations représentatives. Dans le cas d'une lecture de mot en mémoire, pendant une phase d'opération de mémoire de contrôle, le mot de mémoire de contrôle valide l'adresse virtuelle de mémoire du mot provenant du registre BRAM 12 sur le bus de RAM 13 par l'intermédiaire des champs RB, BS et BM. Le champ SH conditionne ensuite le bus extérieur et la source de bus W de manière que le bus de RAM soit validé pour un transfert jusqu'au bus extérieur 17 par l'intermédiaire du sélecteur 20, et qu'il soit ensuite non modifié pour un transfert jusqu'au bus W 84 par l'intermédiaire du registre à décalage 19. Le bus W est relié à l'entrée de l'unité BALU 55, qui est conditionnée par le champ BA pour que son entrée reliée au bus W soit validée pour un transfert direct d'informations jusqu'à sa sortie. En même temps, le champ LB provoque le chargement du registre Y 24, c'est-à-dire en transférant l'adresse dans ce registre. Dans la phase suivante de microprogramme, le champ LB provoque ensuite l'émission d'une demande vers le bus local pour indiquer qu'une demande de mé- moire doit être faite et que l'adresse fournie au bus local doit être utilisée pour faire cette demande. Les lignes de commande 71 sont conditionnées par les champs F et FK (représentés par une flèche 72 sur la figure 2(A)) pour indiquer que la demande de lecture de mémoire est demandée. Le multiplexeur d'adresse 25 est conditionné pour valider le contenu du registre Y sur le bus local par l'intermédiaire des 24 lignes d'adresse. L'unité 103 d'antémémoire/MMU qui contrl1e et commande toutes les activités sur le bus local, accuse réception de la demande, tandis que l'unité CPU exécute la phase suivante de microprogramme. Dans la phase suivante de microprogramme, le champ de bus local spécifie ensuite un blocage-, qui indique que l'unité CPU ne doit pas laisser cette phase de microprogramme jusqu'à ce que la fin du cycle de bus local ait été détectée, les données provenant de l'unité d'antémé- moire/MiMUétant renvoyées au tampon de données de CPU par l'intermédiaire du bus local. Dès que ce renvoi est détecté, le blocage prend alors fin. et l'unité CPU entre dans la quatrième phase de ce cycle de lecture. La quatrième phase est celle dans laquelle - la partie microprogrammée spécifie un champ LB qui utilise les données qui se trouvent dans le tampon de données, et qui les dirige sur le bus intérieur 14 pour qu'elles soient utilisées par l'unité CPU. Le champ LB valide ensuite le circuit de commande de DA 34 ou le circuit de commande-de DW 35, selon qu'un mot de 16 bits ou qu'une adresse de 24 bits est demandée sur le bus de source. A son tour, le champ de bus in- térieur spécifie que le bus de source (soit tous les 24 bits, soit les 16 bits de signe étendu à 24 de ce bus) soit validé pour le bus intérieur.-D. ns le bus intérieur, en supposant qu'-un mot de 16 bits a été envoyé par le tampon de données, le champ DA est utilisé pour valider l'unité DALU pour la iecture du bus intérieur et les champs DW, D et DM sont ensuite commandés pour adresser et effectuer un chargement d'un des 32 re- gistres du registre DRAM. Cela termine la quatrième phase de cetteséquence de commande, la première ayant permis. le chargement du registre Y, la seconde ayant permis d'émettre la demande de lecture, la troisième ayant consisté è attendre le r.etorrdes données, et la quatrième permettant de prendre les données et de les transférer dans un des registres de l'unité CPU. Une deuxième séquence typique d'opérations qui peut être exécutée par le système est le traitement d'opérandes dans une opération arithmétique, telle que d'additionner un opérande qui a été extrait de la mé- moire et un opérande provenant des registres de donné-es et, après additionde le renvoyer au registre de don- nées et de le placer également dans le tampon de don- nées d'écriture de sorte qu'il puisse être ultérieure- ment écrit & nouveau en mémoire. Cette séquence d'opé- rations doit commencer à la suite du blocage considéré dans l'opération précédente. Cette séquence est celle dans laquelle les données sont validées, c'est-à-dire un mot dans le cas d'un opérande de mot,:pour leur transfert du tampon de données 31 au bus de source par l'intermédiaire du bus L 32 et des multiplexeurs de données 35. Ensuite, le champ de bus I 14 spécifie que le bus de source de signe étendu soit validé pour un-. transfert sur le bus intérieur par l'intermédiaire du dispositif d'extension de signe 52 et des verrous de données 51. En même temps, le champ de commande de bus R spécifie que le registre de do.nnées particulier à'considérer soit validé pour un transfert du registre DRAM 11 au;lbus R 13, Le champ DA, c'est-à-dire le champ de commande d'unité DALU, spécifie alors que l'unité DALU soit conditionnée,pour additionner les 24 bits sur le bus R 13 et les 24 bits sur le 1 14. L'unité DALU 15 doit avoir à sa-sortie 24. bits-repré- sentant la somme. Le bit DW indique que la somme à la sortie de l'unité DALU doit être écrite à nouveau dans le registre DRAM 11. - En même temps, les informations à la sortie de l'unité DALU validée doivent être transférées au bus W au moyen du champ SH. Ce champ indique que le sélecteur 20 doit être validé pour un transfert d'in- formations sur le bus extérieur et qu'il doit être conditionné pour sélectionner la sortie de l'unité DALU au lieu de la sortie du bus R pour effectuer cette opération. En même temps:aussi, le registre à décalage 191 doit être conditionné pour que le contenu traverse le bus extérieur sans modification jusqu'au bus d'é-' criture 84. Le même bhamp LB qui a spécifié les multi- plexeurs DW 35 pour un transfert jusqu'au.bus de source 33, doit avoir spécifié aussi que le bus d'écri- ture soit validé pour un transfert à la moitié gauche du-registre W 28 par l'intermédiaire du sélecteur-29. Toutes ces opérations sont exécutées pendant une seule phase de microprogramme. Puisqu'il s'agit d'une opéra- tion d'addition, il est probable qu'un test de dépas- sement de capacité soit effectué sur l'addition, ce t-est étant spécifié par le circuit logique de test 30. Le circuit logique d'adresse sỉvante doit engendrer *30 une adresse qui indique une entrée particulière à laquelle il faut aller si l'opérande-doit être immédia- tement écrit à nouveau en mémoire. L'autre adresse, qui doit être celle du bloc inférieur, doit être engen- drée pour l'exécution de la phase suivante par laquelle l'indicateur de dépassement de capacité est ensuite mis à un dans le registre X 57? S'&l n'y a pas de dépassement de cqpacité, le registre I 57 doit être remis à zéro qutomatiquement. La troisième opération consiste à écrire un opérande an mémoire. Cette opération demande trois phases de microprogramme. La première est celle dans laquelle l'adresse o l'opérande doit être écrit est chargée dans le registre Y 24. La deuxième est celle par laquelle l'opérande à écrire est chargé dans le registre W 28. La troisième est celle o le champ LB spécifie qu'une demande de bus local, spécifiant une écriture de mémoire, doit être adressée au bus local pour que l'unité 103 d'antémémoire/MMU la reçoive et l'exécute. La première phase qui permet de charger le registre Y 24, obtient probablement l'adresse d'un des 16 emplacements de la mémoire à accès sélectif BRAM. Cela est réalisé en conditionnant le champ de bus I de manière que le bus I reçoive les informations de sortie de registre ou mémoire BRAMo Le champ de sélection de B indique lequel des 16 registres de BRAM a été adressé à cet effet. L'unité BALLU 55, qui est commandée par le champ BA, doit être conditionnée pour laisser passer le contenu (24 bits) du bus inférieur à sa sortie. Le champ LB est celui qui spécifie le chargement du regis- tre Y. Puisque l'entrée du registre Y est reliése à la sortie de l'unité BALU, il permet le transfert du con- tenu du registre sélectionné dans le registre BRAM jusqu'au registre Y. La phase suivante de mémoire de contrôle permet de prendre l'opérande à sa source, quelle que soit celle-ci, qui est dans le cas présent un des 32 emplacements de DRAM. Le champ DS sélectionne le registre des 32 registres de DRAM qui doit être validé. Le champ RB valide le registre DRAM pour un transfert sur le bus R. Le champ SH sélectionne le bus de RAM pour un transfert sur le bus extérieur 17 par l'intermédiaire du sélecteur 20, et le bus extérieur pour un transfert sur le bus d'écriture 84 par l'inter- médiaire du registre à décalage 19 sans q'il y ait de décalage dans celui-ci. Le champ LB spécifie le chargement de la moitié gauche du registre W. Cela est réalisé en conditionnant le sélecteur de W 29 pourvalider le transfert des deux-tiers à droite du bus d'écriture dans la moitié gauche du registre W, et en validant le registre W pour que sa moitié gauche soit chargée. Enfin, la troisième phase de microprogramme est exécutée. Dans cette phase, la seule opération essentielle est que le champ de bus local, c'est-à- dire le champ LB, spécifie une écriture du contenu de bus local en mémoire. Pour cela, les bits F et FK sont utilisés pour alimenter les lignes de commandes reliées au bus local et pour indiquer à l'unité d'an- témémoire/MMU qu'il s'agit d'une opération d'écriture de mémoirs. L'adresse contenue dans le registre Y 24 est alors validée pour un transfert jusqu'au bus local par l'intermédiaire du sélecteur d'adresse virtuelle 25. Les données contenues dans le registre W 28 sont transférées dans le bus local. L'unité d'antémémoire/ Mr1U qui surveille tous les transferts par le bus local reconnaît celui-ci comme appartenant à un cycle d'écri- ture de mémoire, et prend l'adresse, établit une cor- respondance pour ceile-ci, et l'envoie en mémoire avec les données, et indique à la mémoire par le système qu'il s'agit d'une opération d'écriture de mémoire. La quatrième séquence d'une opération typique que l'unité CPU peut exécuter est celle dans laquelle un opérande en double précision est décalé d'un certain nombre de bits vers la gauche ouvers la droite. Il est probable que les opérandes soient tous les deux dans le registre DRAM, c'est-"-dire si les deux opé- randes à considérer sont dans le registre BRAN, la première phase de microprogramme doit déclencher le transfert à la droite de ces deux opérandes dans le registre Q. Cela est réalisé de la façon suivante.' Le champ BS doit être conditionné pour adresser.un des 16 emplacements qui contient l'opérande dans la regis- tre BRAM 12. Le champ de bus R,'commandant le bus de RAM 13,.doit être conditionné pour prendre les infor- mations à la sortie du registre BRAM au lieu des in- formations à la sortie du registre DRAM. Le champ SH doit être conditionné pour transférer le contenu du bus R jusqu'au bus extérieur par l'intermédiaire du sélecteur 20, en validant ce transfert jusqu'au bus extérieur et en sélectionnant son entrée reliée au bus R, et il doit aussi spécifier que le registre-Q et le bus W reçoivent tous les deux le cpntenu du bus extérieur et valider le registre Q pour son chargement. L'opérande adressé dans le registre BRAM peut ainsi être transféré dans le registre Q. La phase ou les phases suivantes sont celles dans lesquelles les doécalages:sont effectivement exécutés. Dans une telle phase, l'autre des deux re- gistres contenant le second opérande dans le registre BRAM est adressé par le champ de sélection de B et le registre BRAM est validé pour un transfert sur le bus de RAM 13 au moyen du champ RB. Le bus de RAM est ensuite validé pour un transfert Jusqu'au bus extérieur-par l'intermédiaire du sélecteur 20. Le champ SH prend n'importe quelle valeur d'un certain nombre de valeurs selon la direction et la quantité de bits dont le décalage doit être exécuté. Le champ SH permet de sélectionner un décalage à gauche ou à droite d'un, de deux ou de quatre bits. Dans h'importe lequel de ces cas, le registre Q est considéré pour le connecter -2480459 coqe une eXt-ensQn du bus eXtérAeur, pour engendrer un opérande de 32 hits. Dans le cas présent, il s'agit d'un opérande de 40 bits mais les huits bits à gauche sur le bus extérieur sont ignorés. Cet opérande de 32 bits est décalé à gauche ou à droite comme l'indique le champ SH.. Les 16 bits à droite sont envoyés au registre Q et les 16 bits à gauche et les 8 bits ignorés sont transférés sur le bus W. Cette opération est com- mandée par le champ SH qui a un contrôle exclusif sur la distance de décalage. L'opérande ayant été décalé à partir du bus extérieur jusqu'au bus W-et à partir du regist.re Q pour y revenir, le champ.SH permet le rechargement de l'opérande décalé dans le registre Q tandis qu'en même temps le champ BW permet de charger le contenu du bus W dans l'emplacement de registre BRAM adressé. Ainsi, les contenus des: registres B et Q ont été décalés et renvoyés dans les registres B et Q. Les effets d'ex- trémité particuliers associés à ce décalage, s'il s'agit d'un décalage ouvert, circulaire ou arithmétique, sont une fonction des bascules de commande de l'unité CPU. Ce type d'opération, dans laquelle un décalage est exécuté, est répétée un certain nombre de fois dans diverses combinaisons, c'est-à-dire que, si l'on sou- haite effectuer un décalage 'à gauche de cinq bits, on doit faire suivre un décalage d'un bit à gauche d'un décalage de quatre bits à gauche. Pour effectuer un -décalage à droite de trois bits, il faut faire un décalage à droite de deux bits suivi d'un décalage à droite d'un bit par exemple. Ensuite, une-fois que le décalage final a - été exécuté, c'est-à-dire après que les opérandes sont correctement alignés dans l'emplacement de registre BRAM adressé et dans le registre Q, l'opération finale ne provoque pas de décalage, mais elle permet de renVQyer le contenu du pegistpe 9 dans Iemplaôement de registre CRAM à partir duquel il avait été chargé ini- talementq Cette opération est exécutée de la façon suivante. Le champ de bus I spécifie que le bus I est commandé par le registre Q (les 16 bits du registre Q étendus de huit bits à zéro). L'unité DALU 15 est com- mandée par le champ DA de sorte que les informations en sortie de l'unité DALU traversent le bus I sans être modifiées. Le champ SH est sélectionné pour qu'il puisse valider l'unité DALU pour un transfert sans modifica- tion de ses informations de sortie jusqu'au bus exté- rieur-17 par l'intermédiaire du sélecteur 20, et encore sans modification Jusqu'au bus W 84 par l'intermédiaire du registre à décalage 19, Le bit BW 50 du mot de micro- programme est alors mis à un pour conditionnerle char- gement du registre BRAM à partir du bus W, et les bits OS ( de sélection de B) sent conditionnés pour spé- cifier l'emplacement des 16 emplacements de registre DRAM qui doit recevoir l'opérande décalé, Cela est réalisé dans un certain nombre de phases de micreprogramme, par.exemple, trois ou plus. Une phase est utilisée pour charger le registre Q afin d'engendrer un opérande de 40 bits, une phase ou da- Vantage pour exécuter le décalage voulu de cet opérande et ensuite une autre phase pour renvoyer le contenu du registre Q (les 16 bits à droite) dans le.registre BRAM et terminer l'opération. La figure 5 représente l'organisation des blocs supérieur et inférieur 80 et 81 de mémoire de contrôle PROM et, en particulier, la manière suivant laquelle ils sont reliés ou couplés pour obtenir une vitesse de traitement maximale. Chacun des blocs de mémoire de contrôle comprend une ou plusieurs mémoires mortes programmables PROM incluant chacune un ensemble de pastilles électroniques. A titre d'exemple, la capacité de mémoire de chaque bloc peut être de 1 024 (1K) emplacements adressables contenant chacun 96 bits, c'-est à dire, vingt-quatre pastilles de 1K chacune, chaque emplacement contenant quatre bits. Pour accroi- tre la vitesse de fonctionnement, chaque bloc comporte au moins deux mémoires PROM dont l'une d'elles est plus rapide (temps de propagation d'adresse inférieur) que l'autre dans ce bloc de manière à compenser le temps de propagation dans d'autres éléments inclus dans la mémoire de contrôle. Deux blocs sont utilisés principalement pour une adaptation efficace à des décisions de branchement déduites du mot de micropro- gramme présent et du générateur d'adresse suivante 44. Un bloc est organisé pour être adressé directement par le mot de microprogramme tandis que l'autre bloc (par exemple, le bloc supérieur) est organisé pour être adressé par le mot de microprogramme- et/ou une fonction dérivée du mot de microprogramme et différents éléments logiques inclus dans l'unité CPU 100. En conséquence, le bloc supérieur nécessite une entrée multiplexée et, comme on le verra dans la suite, une des deux mémoires PROM du bloc supérieur est définie avec un temps de propagation d'adresse plus rapide que celui des autres mémoires PROM des deux blocs. Cela est obtenu dans la pratique en utilisant deux mémoires PROM dont l'une d'elles a une vitesse de fonctionnement accrue, c'est-à-dire, un temps de propagation d'adresse infé- rieur. L'intérêt de coupler les mémoires PROM de mémoire de contrôle est de réduire le temps nécessaire pour engendrer l'adresse suivante de mémoire de contrô- le. pour sélectionner les données appropriées à cette adresse, et pour les valider à l'entrée du registre de données de mémoire de contrôle principal MLR 82 de la figure 2[B) qui est le registre de sortie de la mémoqire de cqntr8le, Dans le passé, on utIlisait un seil groupe de mémoires PROM de mémoire de contrôle ' et on sélectionnait une seule adresse pour les adresser. Dans ces conditions, le temps nécessaire pour propager des données à travers les circuits logiques de la mémoire de contrôle correspond au temps de sélection d'adresse, c'est-à-dire l'intervalle de temps entre le changement d'entrée d'adresse de mémoire PROM et o la sortie est stable. Pour des mémoires PROM typiques de mémoire de contrôle, cet intervalle de temps est beaucoup plus long que le temps qu'on appelle "de, va- lidation". On peut prévoir des mémoires PROM de mémoire de contrôle ayant une entrée de'validation qui peut être typiquement mise en circuit et hors-circuit beaucoup plus vite (le "temps de validation") que les sorties adressées. L'approche de base qui est donc faite dans la présente invention est de séparer les mémoires PROM de mémoire de contrôle en deux groupes ou blocs de manière que les adresses respectives pour chaque groupe, par exemple une adresse parmi deux adresses de branche- ment, puissent être transférées simultanément par les pastilles de mémoire de contrôle, et de manière que la décision disant quelle adresse utiliser puisse être aJournée jusqu'au dernier moment o la décision est ap- pliquée en validant la sortie de l'un ou de l'autre des deux groupes ou blocs. Dans l'unité CPU décrite, ainsi qu'avec d'autres ordinateurs, toutes les opérations dites de branchement comportent une sélection d'une adresse parmi deux adres- ses dont l'une est explicitement fournie par le mot de microprogramme dans-la phase ou pas de microprogramme en cours d'exécution, et dont l'autre est plus ou moins indirectement engendrée à partir des données disponibles dans le pas en cours. Dans l'unité CPUselon la présente invention, cette paire d'adresses est contrainte de e* 36 telle manière que tous les branchements consistent è sélectionner une adresse parmi deux dont l'une est pour le bloc inférieur et l'autre est pour-le bloc su- périeur. Le bloc inférieur peut utiliser des adresses dans l'intervalle de 000 à 3FF en hexadécimal, et le bloc supérieur-de mémoire de contrôle peut utiliser des adresses de 400 à 7FF en hexadécimal. La structure utilisée pour mettre en oeuvre cette méthode de division de mémoire de contrôle est représentée dans ie schéma de la figure 5. Comme le montre la figure, la mémoire de contrôle est divisée en cing groupes d'éléments ou mémoires PROM de mémoire de contrôle 251 à 255. Les éléments 251 et 252 qui, comme il est indiqué à l'intérieur des parenthèses de la figure, comprennent un total de 24 pastilles de mémoire de contrôle (19 dans l'élément 251 et 5 dans l'élément 252)sont les éléments qui contiennent. les données pour le bloc inférieur de mémoire de contrôle. * Les éléments 253, 254 et 255 (qui comprennent un total de 29 pastilles)' sont les éléments qui contiennent les données pour le bloc supérieur. Trois types de cir- cuits-intégrés sont utilisés pour réaliser ces éléments. L'élément 251 est constitué de 19 pastilles de mémoire de contr6le de 1K (1 024) par 4 bits ayant un temps de propagation d'adresse typique de 60 nanosecondes. L'élément 252 et l'élément 253 sont constitués de pas- tilles de mémoire de contrôle spécifiquement sélection- nées de 1K par 4 bits ayant un temps de propagation d'adresse typique de 50 nanosecondes. Les éléments 254 et 255 sont constitués de pastilles de mémoire de con- trôle sélectionnées de 512 par 4 bits ayant un temps de propagation d'adresse typique de 40 nanosecondes. Il y a deux raisons pour lesquelles on utilise des pastilles ou circuits de différents temps de pro- pagation d'adresse dans ce circuit logique. Les parties sélectionnées dans les éléments:253, 254 et 255 sont - sélectionnées pour être plus rapides que leurs cor- respondantes dans les éléments 251 et 252 de manière à compenser le temps de propagation dans le multiplexeur d'adresse 256 de bloc supérieur. De plus? les éléments 252, 254 et 255 sont sélectionnés pour êtreplUs rapides -que les éléments 251 et 253, respectivement, en raison du délai de propagation nécessaire dans le circuit logi- que préparatoire 259 qui est en série avec leur sortie par rapport au registre MLR 82. Le multiplexeur d'adresse 256 de bloc supé- rieur, qui est contenu dans le générateur d'adresse suivante 44, est utilisé pour fournir une des deux adresses qui sont sélectionnées dans un branchement de microprogramme. L'adresse de bloc inférieur (l'adresse utilisée par les mémoires PROM de bloc inférieur de mémoire de contrôle) est plus ou moins directement dé- duite de l'adresse suivante qui est contenue dans le mot de microprogramme (le champ NA] et elle est l'adres- , se qui est explicitement sélectionnde dans ce mot de mémoire de contrôle. L'autre adresse qui est utilisée pour un branchement, c'est-àdire celle qui est utilisée dans le bloc supérieur, est une certaine dérivation logique du champ NA ou une adresse engendrée- logiquement à partir des mémoires PROM ou d'un autre circuit logique de l'unité CPU (ainsi que les trois entrées du multi- plexeur 256 l'indiquent) qui sont sélectionnés confor- mément au type de branchement. Cet autre circuit logique, c'est-à-dire les mémoires PROM ou autre circuit logique d'adressage logique et le multiplexeur d'adresses da bloc supérieur qui le sélectionne, demande un temps de propagation supplémentaire qui n'est pas nécessaire pour le chemin d'adresse dans le bloc inférieur. La différence entre ces deux chemins d'adresse est com- pensée par la différence de vitesses des pastilles de mémoire de contrôle en série avec ceux-ci. En uti- lisent un bloc (c'est-à-dire le bloc inférieur) qui comporte un chemin d'adresse direct, seules certaines mémoires PROM doivent avoir une vitesse accrue alors que si un multiplexeur tel que le multiplexeur 256 était utilisé pour les deux blocs, toutes les mémoires PROM devraient avoir une vitesse accrue pour donner le même temps de propagation. Comme on l'a remarqué, le délai de propaga- tion pour atteindre et traverser le multiplexeur d'adresse 258 de bloc supérieur qui engendre des bits d'adresse reçus par les mémoires PROM les plus rapides du bloc supérieur, est uniformément plus rapide que celui pour traverser les éléments correspondants du bloc inférieur. Ainsi, les données à la sortie de chaque mémoire PROM sont stables à peu près en même temps. Le circuit logique préparatoire 259 qui est connecté à la sortie des mémoires PROM les plus rapides de chaque bloc, c'est-à-dire aux éléments 252, 254 et 255 est utilisé pour exécuter un certain décodage logique préparatoire du mot de mémoire-de contrôle suivant avant de le verrouiller dans le registre MLR 82. C'est ainsi que ce circuit 259 peut comprendre le circuit logique de sélection/modification 53 qui est utilisé pour engendrer les signaux d'entrée d'adresse du registre DRAM 11 et du registre BRAM 12, ces signaux d'entrée d'adresse devant être disponibles au début du cycle de mémoire de contrôle. En particulier, les signaux d'entrée d'adresse ne doivent pas être engen- drés après que l'horloge principale a validé le trans- fert des données dans le registre MLR, mais ils doi- vent être engendrés à l'entrée du registre MLR afin d'être disponibles dès que la transition d'horloge s'est produite. Les deux adresses qui sont utilisées pour sélectionner.n mot de mémoire de contrôle dans le-bloc inférieur et dans le bloc supérieur sont engendrées de la manière suivante.L'adrease NA du bloc inférieur provient directement du mot de mémoire de.contr le pour le pas ou phase de microprogramme en cours. Ainsi, cette adresse est disponible dès-que le mot de mémoire de contrôle a été transféré dans le registre MLR 82. L'adresse NA est envoyée à l'entrée des deux éléments 251 et 252. L'adresse de bloc supérieur, à la sortie - du multiplexeur. 256, c'est-à-dire, les signaux d'entrée d'adresse des éléments 253, 254 et 255, est une dàri- vation logique d'un certain nombre de fonctions logiques comprises dans l'unité CPU. Le multiplexeur d'adresse peut engendrer, dans l'exemple de réalisation préféré de la présente invention, huit adresses fonctionnelles différentes qui peuvent être utilisées par 'le bloc supérieur. Celles-ci sont le résultat des huit types de branchement possibles qui peuvent être spécifiés dans le mot de mémoire de contrôle. Ces types-de branchement sont connus comme branchements XO.et X1, XA, XB, XR, XE, XW et XL repré- sentés dans le tableau de la figure 6. Les types de branchements XO et X1, qui sont les types de branche- ment les plu's communs, sont fondamentalement une fonction logique directe du champ NA. Ces types de branchement utilisent le champ NA. avec le bit de poids faible NA10 ou NACA) inchangé, NA(A), ou son complément, NA(A). Les six autres typas de franchement sont utilisés pour des opérations spécifiques. Le branchement XA est utilisé pour sélectionner l'adresse de début appropriée pour lancer le décodage d'un code opération d'une nouvelle instruction. Le branchement XB est utilisé pour exécuter le décodage initial de certaines des syllabes d'edresse qui sont possibles dans l'unité CPU. Le branchement XR est util-isé pour sélectionner l'adresse de début pour l'exécution de la routine afin de lire l'opérande dans la plupart des cas, ou pour l'exécution de certaines instructions qui peuvent être exécutées immédiatement. Le branchement XE est utilisé pour sélectionner une adresse parmi les adresses de début des routines de microprogramme qui sont utilisées pour exécuter les algorithmes d'instructions individuels. Le branchement XW est utilisé pour poursuivre la sélection d'une routine- d'un certain nombre de routines qui sont utilisées pour mémoriser l'opérande. Le branchement XL est utilisé pour permettre une procédure conditionnelle de microprogramme simplifiée sous la commande de la partie microprogrammée. Ce branchement utilise le con- tenu du registre de liaison, qui peut être chargé sous commande microprogrammée pour contrôler quatre bits de l'adresse de bloc supérieur. L'ensemble des branchements principaux XA, XB, XR, XE, WX et XL utilisent les deux bits de poids fort (NA1, 2) du champ NA comme leurs bits de poids fort, mais ils engendrent les huit autres bits pour leur adresse particulière d'une manière différente. La procédure ou branchement XA utilise la sortie de cinq mémoires PROM(5) de XA pour engendrer -les bits 3 à 10 de l'adresse suivante de XA. Le branchement XB utilise trois signaux de constante, deux uns en binaire (11) et un zéro (0), et un bit qui est le bit de sortie d'un des emplace- ments de bit du registre F 38, et quatre bits de sortie 30. d'une mémoire PROM qui est commandée par le registre F pour engendrer les bits 7 à 10 de son champ NA. Le branchement XR force trois bits à zéro (000) engendre le bit suivant avec le contenu d'une bascule - de commmande (KOP) dont l'état correspond.3aux types d'instruction, et engendre les quatre derniers bits, c'est-à-dire les bits 7 à 10, à partir d'une mémQire PROM de XR, Le troisième bit du branchement XE est le signal de type d'instruction mentionné plus haut. Le bit suivant indique si le bit O du registre F est à zéro ou non, le bit suivant indique si les bits 1 à 3 du registre F.38 sont tous à zéro ou non) et si les bits 4 à 8 du registre F sont utilisés comme bits 6 à 10 du champ NA. 10. Le branchement XW donne une combinaison de signaux un zéro de constante et trois bits de sortie d'une mémoire PROM qui décode et classifie le type de longueur d'opérande pour les bits 4 à-6. Le bit 7 est. à un, le bit 8 est un bit de sortie de la mémoire PROM qui classifie des opérandes comme étant des adresses ou non, et enfin deux bits qui sont les bits de sortie d'une mémoire PROM de XW, pour les bits 9 à 10 du champ NA qui identifie si le résultat est d'aller à la mémoire, à un registre de base ou de données ou à un registre K (non représenté). Les lignes d'adresse pour le branchement XL utilisent les bits I à 6 du champ NA pour les six premiers bits, et utilisent ensuite quatre bits de registre de liaisoh pour engendrer les quatre derniers bits (bits 7 à 10). Ces différents signaux ou bits d'entrée sont sélectionnés par le groupe de multiplexeurs de huit-à- un qui constituent le multiplexeur d'adresse 256 du bloc supérieur. L'adresse particulière qui est sélectionnée par ce multiplexeur est sélectionnée en utilisant le mot de mémoire de contrôle en cours de traitement. Dans ce mot de mémoire de contrôle, un branchement-est exécuté en sélectionnant une condition de test et en la contrôlant pour déterminer si elle est satisfaisante ou non. Le circuit logique de test 30 engendre à sa sortie deux signaux TCTRUE- ou NON VRAI et TCTRUE+ ou VRAI. Le signal TCTRUE- est le signal sur la ligne 261 dans le schéma de la figure 5 et le signal TCTRUE+ est le signal sur la ligne 262. Ces deux signaux sont envoyés aux entrées de validation des mémoires PROM correspondantes de mémoire de contrôle. Au début d'une phase de microprogramme donnée, le champ NA devient stable et cette adresse commence immédiatement à se propager dans les éléments 251 et 252 de la mémoire de contrôle. Tout de suite après, suivant lavitesse de fonctionnement deE éléments logiques, la sortie du multiplexeur d'adresse 256 du bloc supérieur devient stable, et l'adresse NA commence à se propager dans les éléments 253, 254 et 255. On notera qu'un des bits d'adresse à la sortie du multi- plexeur 256 sélectionne un des éléments 254 et 255. Ce- la est dû au fait que-les éléments 254 et 255 sont réalisés avec des mémoires PROM plus rapides ayant une plus petite capacité de mémoire de mots. En conséquence, ce qui représente une ligne d'adresse pour une mémoire PROM de 1K mots (4 bits/mot), devient une ligne de validation sélective pour deux mémoires PROM de 512 mots, une entrée de validation de l'élément 255 de mémoire PROM étant couplée par un inverseur 264. En particulier, dans les éléments 254 et 255, qui sont les mémoires PROM sélectionnées de mémoire de contrôle de 512 par 4 bits, les bits d'adresse sont subdivisés de façon légèrement différente. La raison en est qu'une mémoire PROM de 512 mots ne nécessite que neuf bits d'adresse.'Le'dixiàme bit d'adresse,-qui est un bit d'adresse pour toutes les autres mémoires PROM de mémoire de contrôle, est par contre utilisé comme second bit de validation des mémoires PROM de mémoire de contrôle de 512 par 4 bits. C'est ainsi que l'élé- ment 254 est validé pour des adresses de 400 à 5FF en hexadécimal, et puisque l'inverse de cette m me ligne d'adresse est reliée à l'élément 255, celui-ci est validé pour des adresses de 600 à 7FF en hexadé- cimal. Ainsi, dès que les adresses sont disponLbles, elles sont propagées dans les mémoires PROM de mémoire de contrôle. Pendant ce temps, en parallèle, le circuit logique de test 30 (de condition de test), représenté en détail sur la figure 7. décide si la.condition de test est satisfaite ou non, les signaux de sortie TCTRUE- et TCTRUE+ devenant stables ensuite. Si la condition de test dans la polarité indiquée est satis- faite, l'état bas du signal TCTRUE* valide alors les mémoires PROM 253; 254 et 255r-tandis que le signal TCTRUE- à l'état haut invalide les mémoires PROM 251 et 252. Ainsi, les sorties des connexions câblées selon la fonction logique OU telles qu'elles sont représentées par les références 257 et 258 (de 76 et 20 lignes cou- plées.respectivement) représentent le contenu de l'em- placement adressé dans le bloc supérieur de la mémoire de contrôle. Cependant, si la condition de test n'est pas satisfaits, le signal TCTRUE(NON VRAI) a l'autre polarité ou état logique qui valide les éléments 251 et 252 de mémoire de contrôle, tandis que le signal TCTRUE+ invalide les éléments 253, 254 et 255. Dans ce cas, les sorties des connexions câblées selon la fonc- tion CU 257 et 258 représentent le contenu de l'empla- cement adressé dans le bloc inférieur de mémoire de contrôle. Le temps de validation pour les mémoires PROM de mémoire de contrôle est typiquement de 15 à 20 nano- secondes. Celui-ci est bien inférieur au temps de propagation d'adresse pour une mémoire PROM qui peut être par exemple, comme on l'a noté sur la figure 5, de 60 nanosecondes pour la mémoire PROM-251. Le "retard" à partir du moment o les résultats de condi- tion de test.sont connus a été. ainsi amélioré de manière que le temps de propagation de validation des mémoires PROU soit-contr lé plutôt que le temps de propagation d'adresse dans les mémoires PROM. La raison de ces considérations particulières faites sur la synchrohi- sation dans cette chaîne de circuits logiques. c'est- à-dire le temps de propagation pour la génération et sélection d'adresse de bloc supérieur, le temps de synchronisation dans les mémoires PROM de mémoire de contrôle, et le temps de synchronisation dans le circuit logique préparatoire, est que le temps le plus défavo- rable au.bout duquel les données à l'entrée du registre MLR 82 doivent être stables, est le temps o l'horloge principale est déclenchée. Une des fonctions principales est le contrôle du temps de cycle, et donc de la vitesse de fonctionnement de l'unité CPU. Si chacune des mémoires PROM de mémoire de contrôle a un temps de propagation de 60 nanosecondes, dans le cas le plus défavorable,-si une sélection d'adresse de bloc supérieur était en cours, il faudrait nanosecondes au total à partir d-'un point de dqbut de préparation pour que l'entrée du registre MLR 82 devienne stable. Pour accroître la vitesse, il est donc préférable d'utiliser des mémoires PROM ayant trois temps de propagation différents. La mémoire PROM 252 compense la vitesseréduite ou ralentie provoquée par le circuit logique préparatoire ou de sélection/ modification 259. La mémoire PROM 253 compense le -retard accru dans l'adressage dO au multiplexeur d'adresse 256 du bloc supérieur. Les m-émoiras PROM 254 et 255 compensent le retard d& au multiplexeur 256 et au circuit logique 259. Ainsi, le temps le plus défa- vorable dans ce réseau est presque le m me quel que soit le bloc utilisé, supérieur ou inférieur, et quelles que soient les informations de sortie engendrées, celles qui Vont directement Jusqu'au registre MLR 82 ou celles qui voit d'abord Jusqu'au circuit logique 259 avant d'aller jusqu'au registre MLR. Si les éléments 253, 254 et 255 n'étaient pas plus rapides que les éléments 251 et 252, la période d'horloge devrait être plus longue pour n'importe quelle phase de microprogramme dans laquelle le bloc supérieur serait le bloc sélec- tionné= Le temps de cycle pour cette phase de mémoire de contrôle doit donc être plus long car il faudrait tenir compte du temps supplémentaire pour que les mémoires d'adresse suivante PROM et le multiplexeur d'adresse de bloc supérieur engendrent une adresse stable pour l'adressage des mémoires PROM de mémoire de contrôle. Le principe de base impliqué dans le circuit logique représenté sur la figure 5 est résumé comme suit. Puisque le chemin d'adresse dans les mémoires PROM de mémoire de contrôle est si lent par rapport au chemin de validation, le chemin d'adresse est toujours ouvert à gauche, c'est-àdire l'adresse suivante passe par ie bloc inférieur de mémoire de contrôle et l'adresse de sortie du multiplexeur d'adresse 256'passe par le bloc supérieur de la mémoire de contrôle, tandis que la décision est prise pour déterminer quel bloc va finalement être utilisé. L-a. synchronisation de cette décision ne devient critique que, lorsque le moment est venu de valider les sorties de ces nfremoires PROM de mémoire de contrôle, auquel cas la condition de test engendrée, vraie ou fausse, valide les mémoires PROM de bloc inférieur ou de bloc supérieur, selon le chemin que doit suivre le branchement. Le chemin de valida- tion est beaucoup plus court que le chemin d'adresse si l'on compare les 15 nanosecondes de temps de validation aux 60 nanosecondes de temps de propagation 248045-9 d'adresse, ce qui permet d'ajourner la décision de sélection de bloc pendant 45 nanosecondes dans une phase typique de mémoire de contrôle, ce qui permet d'avoir chaque phase de mémoire de contrôle beaucoup S plus rapide. On va se référer maintenant à la figure 7 o le circuit logique de test 30 pour engendrer les signaux TCTRUE+ et TCTRUE- est représenté en détail. Le signal TCTRUE+ est engendré à la sortie de négation d'un multiplexeur 302 sur la ligne 262, et le signal TCTRUE- est engendré à la sortie de négation d'un multi- plexeur 304 sur la ligne 261. Les lignes 261 et 262 sont reliées aux mémoires PROM comme l'indique la figu- re 5. Les multiplexeurs 302 et 304 ont chacun huit entrées (0-7), chaque entrée ayant le même numéro étant reliée pour recevoir le même signal d'entrée. Ces entrées sont reliées aux huit sorties d'un mutliple- xeur 300 qui comprend présentement huit multiplexeurs MUX 1-MUX 8 ayant chacun' huit entrées et une sortie. Les soixante quatre entrées du multiplexeur 300 sont chacune reliées pour recevoir une condition de test de différents circuits fonctionnels inclus dans l'unité centrale de traitement 100 comme il est indiqué par le circuit logique de test 30 de la figure 7. Selon lea condition définie par le circuit fonctionnel testé, le bloc supérieur ou le bloc inférieur de mémoire de contrôle est validé, et par conséquent, adressé. Les entrées des multiplexeurs qui sont sélectionnées et/ou validées sont déterminées par les bits de commande reçus du mot de mémoire de contrôle en cours de trai- tement, c'est-à-dire le mot de microprogramme provenant de la mémoire de contrôle. Il est ainsi souhaitable d'effectuer un - - branchement sur une variété de différents signaux qui peuvent, par exemple, être au nombre de soixante quatre, de telle sorte qu'un seul signal représente l'entrée sélectionnée parmi les soixante quatre entrées, Le circuit logique de test de la figure 7 offre cette possibilité avec un temps de propagation minimal en utilisant deux niveaux de multiplexeurs, un niveau comprenant le multiplexeur 300 et l'autre niveau com- prenant les multiplexeurs 302 et 304. Le circuit logiqẻ de la figure 7 valide également le branchement basé sur une des deux polarités du même signal. Le fonctionnement du circuit logique de test 30 de la figure 7 est le suivant. Une entrée de chacun des huit multiplexeurs inclus dans le multiple- xeur 300 est sélectionnée pour une propagation jusqu'aux sorties de négation GPO à GP7 respectivement par les trois bits reçus aux entrées de sélection 3, 4 et 5 de chacun des huit multiplexeurs. Ces trois bits sont reçus du champ TC (bits 13-15) du mot de microprogramme. Les sorties GP0 à GP7 sont respectivement reliées aux entrées numérotées de 0 à 7 de chacun des multiplexeurs 302 et 304. Les multiplexeurs 302 et 304 sont égale- ment reliés pour recevoir respectivement à leurs entrées de validation les signaux CRTCSP- et CRTCSP+. Les signaux CRTCSP (d'affirmation et de négation] sont également reçus du mot de microprogramme traité et, en particulier, du bit 21 du champ TP du mot de micro- programme, qui est transféré par l'intermédiaire du registre 82. Pour le bit 21 (du champ TP), l'élément à l'emplacement de bit 21 dans le registre 82 est présentement un élément bistable (bascule) ayant une sortie de négation et une sortie d'affirmation. Selon le niveau logique nécessaire pour d'autres bits du mot de microprogramme, l'une ou les deux sorties d'affir- mation et de négation sont utilisées. Les multiplexeurs 302 et 304, qui peuvent être par exemple du type SN74S251 fabriqué par Texas Instruments Inc., permettent la commutation des signaux de sorties d'affirmation et de négation du multiplexeur si le signal à l'entrée de validation est 3 un niveau logique bas ou à zéro, Si ce signal 3 l'entrée de vali- dation est à un niveau logique haut, les sorties sont à un état faux et par conséquent, tel qu'il est struc- turé, ce multiplexeur ayant une entrée de validation à un niveau haut est effectivement coupé du circuit logique de la figure 7. Ainsi qu'on peut le voir sur la figure 7, un seul des multiplexeurs 302 et 304 est validé à un moment donné. Les sorties des multiple-- xeurs 302 et 304 sont reliées de sorte que la sortie d'affirmation de chaque multiplexeur soit- couplée à -la sortie de négation de l'autre multiplexeur pour produire ce qu'on appelle. une connexion de circuit OU câblé. Quand l'un des multiplexeurs 302 et 304 est validé, les signaux TCTRUE sont obtenus avec la polarité appropriée. Le signal TCTRUE qui est à un niveau logique bas ou à zéro, valide le bloc auquel sa ligne est reliée. C'est ainsi que le signal TCTRUE- valide le bloc inférieur quand il est à un niveau bas. Le fonctionnement du circuit logique de la figure 7.montre que, si le signal CRTCSP- est à un niveau-haut et que, par conséquent, le signal CRTCSP+ est à un niveau bas, le multiplexeur 304 est alors actif ou validé et le signal TCTRUE- reflète le niveau (haut ou bas) de la condition de test définie parmi les soixante 'quatre conditions et le signal TCTRUE+ reflète l'inverse de ce niveau. Si le signal CRTCSP- est à un niveau bas et que par conséquent, le signal CRTCSP+ est à un niveau haut, le mutliplexeur 302 est actif ou validé et le signal TCTRUE+ reflète le niveau de la condition de test définie et le signal TCTRUE- reflète l'inverse de ce niveau. La va- lidation du bloc supérieur ou du bloc inférieur de la mémoire de contr8le est déterminée par le niveau bas - du signalTCTRUE- ou du signal TCTRUE+. On notera que le code opération d'une ins- truction lue en mémoire 106 peut être utilisé pour sélectionner une condition de test parmi plusieurs conditions de test qui peuvent être différentes de celles reçues par le multiplexeur 300. Dans ce cas, les bits de code opération pourraient être utilisés _ pour sélectionner les entrées de condition de test d'un premier multiplexeur semblable au multiplexeur 300 ou. une partie de celui-ci, et deux multiplexeurs sembla- bles aux multiplexeurs 302 et 304 pourraient aussi être utilisés dans une disposition semblable à-celle représentée sur la figure 7. On notera également que l'utilisation du code opération pour ainsi sélection- ner une condition de test pourrait être envisagée en prévoyant un circuit indépendant ou en parallèle:;avec le circuit logique de la figure 7. Si l'on considère un circuit en parallèle, les multiplexeurs 302 et 304 commandés par les bits de microprogramme devraient alors être invalidés quand les multiplexeurs commandés par le code opération sont validés et vice versa. On Va maintenant décrire la figure 8 qui représente les détails du multiplexeur 256 de la figure 5 ainsi que les connexions de celui-ci avec les autres circuits. En particulier, le multiplexeur 256 représenté comprend dix multiplexeurs ayant chacun huit entrées. Les entrées de ces dix multiplexeurs correspondent aux signaux identifiés dans le tableau de la figure 6. Ces signaux sont envoyés pour indiquer les huit types de branchement de la figure 6, de telle sorte que le premier signal pour chacun des types de branchement est reçu aux huit entrées correspondantes du multiplexeur MUX 1 inclus dans le multiplexeur 256. Ainsi, le multiplexeur MUX 1 reçoit par chacune de ses huit entrées le signal NA1. Le multiplexeur MUX 2 reçoit aussi le même signal (NA2 à chacune de ses huit entrées. Pour chacun des autres multiplexeurs du multiplexeur 256, à l'exception des deux premières entrées, les signaux reçus à leurs entrées sont, pour la plupart, différents. Par exemple, le multiplexeur MUX 3 reçoit à son entrée numéro trois le signal XA3 qui est, comme le montre le tableau de la figure 6, le troisième bit de l'adresse de bloc supérieur pour le branchement XA, ce troisième bit étant un bit pro- venant de l'emplacement 3 d'une mémoire PROM dite de XA qui n'est pas représentée, mais qui peut être simplement un décodeur relié pour recevoir des signaux à ses entrées principales du registre F 35 et dont la sortie est reliée pour envoyer le bit au multiplexeur MUX 3 du multiplexeur 256. Les autres entrées des autres multiplexeurs - du multiplexeur 256 reçoivent également les signaux d'entrée indiqués sur la figure.6. Les deux premiers signaux d'entrée du multiplexeur MUX 10, NA[A) et - NA(A), ont un autre intérêt. En particulier, l'utilisa- tion de ces bits dent l'un est le complément de l'autre permet une plus grande souplesse et une meilleure effi- cacité dans. l'1appariement des emplacements de mémoires PROM de mémoire de contrôle pour des opérations de branchement. Dans l'art antérieur, on sait effectuer un branchement à un emplacement impair de mémoire PROM sur une condition de correspondance de branchement et un branchement à un emplacement pair sur une condition d'abscence de correspondance de branchement, ou vice versa. Cependant, une telle technique comporte des limitations. Par exemple, en supposant quatre emnlace- ments consécutifs dont les adresses sont XXXOO, XXX01o, XXX10 et XXX11 (o X est un I binaire ou un zéro binaire), une séquence qui est un branchement peut allYr 3:l'adresse XXXQO ou à l'adresse XXX01 selon qu'il s'agit d'une condition d'absence de correspon- dance ou de correspondance, ou une autre séquence peut aller à l'adresse XXX10 ou à l'adresse XXX11, Cependant, même si les emplacements-XXX11 et XXXOI contiennent exactement les mêmes informations, ils ne peuvent pas être parta'gés, c'est-à-dire que deux emplacements doivent être utilisés mime pour le même contenu. Cela est dO au fait que les deux adresses sont impaires et que le seul appariement permis est entre une adresse impaire et une adresse paire. Dans une autre technique, connue, une condition d'absence de correspondance peut être établie pour permettre l'adressage de i'em- placement spécifié par le mot de mémoire de contrôle et une condition de correspondance peut être établie pour permettre l'adressage d'un emplacement spécifié par les bits d'adresse depoids fort avec les deux bits de poids faible à zéro, par exemple, De cette manière, une adresse dont les deux'bits de poids faible étaient tous les deux à un peut âtre appariée avec des adresses dont les deux bits de poids faible étaient tous les deux à zéro ou dont l'un était à un et l'autre à zéro (dans un ordre indifférent). Cependant, cette technique restreint l'adresse commune à une adresse dont les deux bits de poids faible sont à un (ou vice versa, c'est-à-dire que les deux bits sont à zéro avec une modification appropriée de l'autre paire d'adresses o l'une d'elles a ses deux bits de poids faible soit tous les deux-à un, -soit l'un d'eux à un et l'autre à zéro).- Dans une unité- de traitement de données qui permet à une variété de sources d'engendrer ou de former l'adresse suivante pour la mémoire de contrôle,. l'utilisation de la disposition de la présente inven- tion représentée sur les figures, en particulier sur les figures 5 et 8, est préférable? En particulier, les circuits lqgiques représentés sur ces figures permettent de réduire le nombre total d'emplacements microprogrammés ou de mémoire de contrôle en permettant *5 que tous les emplacements soient utilisés comme rem- placements à un nombre accru d'emplacements sélection- nés. Pour réaliser cela, la position de bit de poids faible (NA10) est reliée de manière que pour le bran- chement XO, NA.1O est en fait le m&me que le bit NA10, c'est-à-dire NA(A), reçu du registre 82 pour le mot de mémoire de contrôle en cours de traitement, tandis que, pour le branchement X1, le complément de ce bit NA(A) est utilisé. A titre d'exemple, on va considérer la fig- gure 9.- Si l'adresse NA est:telle qu'elle est repré- sent-ée sur la première ligne, l'adresse de bloc infé- rieur est alors la même. L'adresse de bloc supérieur est par contre dépendante du type de branchement XO ou X1. S'il s'agit d'un branchement X1, l'adresse de bloc supérieur est alors telle qu'elle est représentée sur la troisième ligne de la figure. L'adresse finale dépend de la valeur zéro ou un du signal TCTRUE-. Si ce signal est à zéro, les mémoires PROM du bloc inférieur sont alors validées. Ainsi, comme le montre la quatrième ligne de la figure, l'adresse finale est destinée au bloc inférieur si le signal TCTRUE- - est à zéro. Si le signal TCTRUE- est à un, l'adresse finale est alors destinée au bloc supérieur, et selon le type de branchement X1 ou XO, l'adresse finale est celle représentée respectivement sur les lignes 5 et 6 de la figure 9. En particulier, on remarquera que l'adressé de bloc inférieur de la ligne 4 peut être appariée avec l'une des adresses de bloc supérieur- représentées sur les lignes 5 et S. - De cette manière, on peut obtenir un appa- riement d'emplacements de mémoire plus efficace. Des variantes de l'exemple représenté sur la figure 9 mon- trent qu'un emplacement d'adresse paire du bloc infé- rieur peut être apparié avec un emplacement d'adresse paire ou impaire du bloc supérieur, et qu'un emplacement d'adresse impaire du bloc inférieur peut être également apparié avec un emplaceme'nt d'adresse paire ou impaire dans le bloc supérieur. On notera que l'appariement décrit plus haut pourrait être obtenu en établissant la valeur binaire du bit NA1O indépendamment de la valeur binaire du bit NA10 du mot de microprogramme en cours de traite- ment. Par exemple, le bit NA10 pouÈ. le branchement XO peut avoir été établi à la valeur binaire un au lieu de NA(A), tant que le bit NA10 pour le branchement Xl représente son complément, dans le cas présent, un zéro. REVENDICATIONS 1. Système de traitement de données, carac- térisé en ce qu'il comprend: A. une mémoire de contrôle comportant une première partie et une seconde partie dont chacune comprend un ensemble d'emplacements pour mémoriser des mots de mémoire de contrôle utilisés pour commander le fonctionnement du système; B. des moyens pour adresser ladite première partie avec une portion du contenu d'un mot présente- ment adressé de l'ensemble des mots de mémoire de contrôle C. des moyens multiplexeurs, reliés pour re- cevoir des informations, comprenant une sous-portion de ladite portion utilisée pour adresser la première partie, pour adresser la seconde partie de la mémoire de contrôle, lesdites informations étant relatives aux types d'opérations à exécuter dans le système, les types d'opérations comprenant une première opé- ration et une seconde opération; et, D. des moyens, comprenant les moyens multi- plexeurs et étant sensibles à la première-opration ou à la seconde opération, pour valider un emplacement d'un ensemble d'emplacements dans ladite première partie à adresser ou pour valider un emplacement d'un ensemble d'emplacements de ladite seconde partie à adresser, pour permettre ainsi de valider l'appariement d'un emplacement d'adresse paire ou impaire dans la première partie-avec un emplacement d'adresse paire ou impaire - dans la seconde partie. 2. Système de traitement de données selon la revendication 1, caractérisé en ce que lesdits moyens de validation comprennent: A. un moyen, sensible à ladite première opé- ration, pour recevoir un signal ayant un premier niveau; et, B. un moyen, sensible à ladite seconde opé- ration, pour recevoir un signalayant le complément dudit premier niveau. 3. Système de traitement de données selon la revendication 2, caractérisé en ce que ledit piemier niveau correspond au niveau d'un signal reçu d'un emplacement prédéterminé du mot présentement adressé de l'ensemble des mots de mémoire de contrl81e. 4. Système de traitement de données selon la'revendication 2, caractérisé en-ce que le premier niveau est un 1 binaire et le second niveau est un 0 binaire. 5. Systèms de traitement de données selon la revendication 2, caractérisé en ce que les moyens multiplexeurs comprennent une entrée de sélection reliée pour recevoir un signal de sélection du mot présentement adressé de l'ensemble des mots de mémoire de contrôle, ledit signal de sélection indiquant le type d'opération à exécuter. 6. Système de traitement de données selon la revendication 5, caractérisé en ce que les moyens multiplexeurs comprennent un.ensemble de multiplexeurs ayant chacun un ensemble d'entrées, une sortie et une telle entrée de sélection pour recevoir ledit signal de sélection, le nombre de multiplexeurs corres- pondant au nombre de bits possibles desdites infor- mations de la portion du contenu reçue du mot adressé présentement de l'ensemble des mots de mémoire de contr8le et le nombre desdites entrées correspondant au nombre deddits types d'opérations. 7. Système de traitement de données selon la revendication 6, caractérisé en ce que ledit premier bit des informations pour chacun des types d'opérations étant reçu par un premier multiplexeur de l'ensemble des multiplexeurs, les bits de même numéro desdits bits étant envoyés aux multiplexeurs. de même numéro respectivement jusqu'à ce que le dernier bit pour chacun des types d'opérations soit reçu par un dernier multiplexeur de l'ensemble et chacun des multiplexeurs comprenant lesdits moyens de validation, cesdits moyens de validation comprenant: A. des moyens, sensibles à ladite première opération, pour recevoir un signal ayant un premier niveau; et, B.- des moyens, sensibles à ladite seconde opération, pour recevoir un signal ayant le complément du premier niveau. 8. Système de traitement de. données selon la revendication 7, caractérisé en ce que le premier niveau correspond au niveau d'un signal reçu d'un emplacement prédéterminé du mot présentement adressé de l'ensemble des mots de mémoire de contr6le. 9. Système de traitement de données selon la revendication 7, caractérisé en ce que lesdites opérations sont des opérations de branchement par les- quelles le système, en réponse à des conditions pré- déterminées, valide l'adressage de la première partie ou de la seconde partie de ladite mémoire de contrôle. 10. Système de traitement de données selon la revendication T, caractérisé en ce que chacune desdites sorties de l'ensemble des multiplexeurs est reliée pour adresser la seconde partie de la mémoire de contrôle.