i 2005426 La présente invention se rapporte aux systèmes électroniques de traitement de données ou d'une information. A mesure que les calculatrices électroniques et les ordinateurs deviennent plus compliqués, leur coût augmente et il est 5 souhaitable que cette augmentation soit compensée par un plus grand rendement. Les calculatrices compliquées et de grande taille comportent généralement des mémoires principales â accès rapide de grande capacité. Or, étant donné que l'augmentation des dimensions d'une mé-10 moire n'a «jamais pour résultat une augmentation automatique de sa vitesse d'accès, mais se traduit au contraire plus- souvent par une diminution de celle-ci, il devient important d'utiliser la mémoire principale à sa vitesse la plus élevée et de-façon aussi continue que possible. Les tentatives faites pour utiliser plei-15 nement cette mémoire principale, afin d'augmenter le débit de la calculatrice, ont conduit à la réalisation de machines dites â "multitraitement" et à "multiprogrammation" et à avoir recours à des possibilités d'"anticipation", ce qui s'est traduit par une augmentation considérable de la complexité du contrôle du trafic 20 avec les équipements périphériques. Le terme "multitraitement" est utilisé ici pour désigner un système de traitement électronique de données dans lequel deux ou plusieurs unités de traitement, opérant de façon asynchrone en parallèle, coopèrent de manière à travailler fréquemment en même 25 temps sur des parties"séparées d'un même problème. Le concept de "multitraitement" implique une dépense considérable en équipements supplémentaires et redondants. En effet, chaque unité de traitement utilise ses propres générateurs d'adresses, mémoires internes et unités arithmétiques et logiques. 30 Or, dans les systèmes complexes, rien que la génération des a~ dresses peut exiger des équipements considérables. De plus, des équipements sont généralement nécessaires pour les fonctions d'anticipation et pour les communications entre les unités de traitement . 35 L'expression "anticipation" est un terme général décrivant l'aptitude d'examiner à l'avance les instructions d'un programme et, par exemple, de commencer autant que possible l'exécution de l'instruction suivante avant que l'instruction en cours soit achevée. Cette possibilité se présente, par exemple, lorsque 6908776 2 2005426 l'instruction suivante peut être traitée jusqu'à un certain point par une unité de traitement séparée et ne nécessite pas les résultats de l'instruction en cours. Des enclenchements ou interconnexions définissent ce point à chaque unité de traitement 5 pour chaque instruction. La réalisation de la fonction d'anticipation est généralement compliquée et coûteuse en matériel. En conséquence, il est souvent souhaitable, pour réduire les unités logiques d'anticipation, de fournir de nouvelles instructions aux unités de traitement dès 10 que celles-ci deviennent disponibles et d'utiliser des intercommunications entre ces unités. L'intercommunication peut exiger qu'une unité de traitement s'arrête pour attendre les résultats d'un traitement dans une autre unité. Malheureusement, une inter-communication convenable pour cette sorte d'opération est diffi-15 cile à réaliser avec un certain degré de souplesse et d'efficacité et se traduit généralement par des retards inutiles et/ou par des équipements d'une importance exagérée. La présente invention apporte une solution spécifique au problème général de l'interconnexion de dispositifs mutuellement 20 asynchrones. Dans le traitement électronique de données, ce problème général se présente entre une unité de traitement centrale et les équipements périphériques d'entrée et de sortie j entre les équipements individuels d'entrée et de sortie ; et entre les unités de traitement dans le domaine du multitraitement. Il est 25 indésirable, dans ces■situations, de renforcer le fonctionnement synchrone, car celui-ci limite la vitesse des unités impliquées à celle de l'unité la plus lente, sans que cela soit nécessaire. En ce qui concerne l'équipement périphérique, des commandes compliquées de trafic d'entrée et de sortie sont utilisées avec ou 30 sans une certaine forme de multiplexage. Avec des unités de traitement multiples, certaines méthodes particulières sont généralement nécessaires pour résoudre les problèmes particuliers auxquels le programmeur doit faire face. Autrement dit, en établissant les instructions pour les différentes unités de traitement, 35 le programmeur doit incorporer des instructions disant à celles-ci quand l'une doit attendre l'autre. Certaines calculatrices, plus particulièrement conçues pour le multitraitement, comportent des équipements, tels que des compteurs, que le programmeur peut utiliser pour faciliter la programmation des points de 6908776 3 2005426 synchronisation entre les calculatrices opérant en parallèle de façon asynchrone. Dans le traitement des données, ce problème général se présente aussi quand deux ou plusieurs unités de sous-traitement 5 opèrent simultanément sur les mêmes instructions. La méthode pré cédente ne s'applique pas ici, car le problème se situe dans le "micro-univers" dans lequel les opérations élémentaires sont exé cutées par la machine dans un dédale de détails beaucoup trop grand pour être effectivement maîtrisées par les instructions de 10 programme provenant du "macro-univers" du programmeur. En conséquence, la machine doit posséder l'aptitude d'interconnecter les unités de sous-traitement aux points de traitement critiques. Les buts particuliers à atteindre pour résoudre ce problème sont : 15 1. Une unité de sous-traitement donnée doit être capable d'anticiper l'instruction suivante et de commencer à travailler sur celle-ci pendant qu'une autre unité de traitement opère encore sur l'instruction précédente. 2. Les équipements d'enclenchement ne doivent pas produire 20 une augmentation sensible du coût ou des dimensions. 3. Les enclenchements doivent être uniques pour les sous-routines qui les exigent de façon à ne pas introduire de retards inutiles. Selon la présente invention il est prévu, dans ion système 25 électronique de traitement de données comprenant une mémoire principale, un générateur d'adresses et une unité arithmétique et logique, la combinaison, dans ledit générateur d'adresses et dans ladite unité logique et arithmétique comprenant : (a) Un premier séquenceur adressable fournissant des micro-30 instructions pour diriger les opérations élémentaires dudit générateur d'adresses. (b) Un second séquenceur adressable fournissant des microinstructions pour diriger les opérations élémentaires de ladite unité logique et arithmétique. 35 (c) Des moyens pour faire séquentiellement avancer les mots de micro-instruction respectivement dans le premier et le second séquenceurs adressables. (d) Des moyens pour inhiber l'avancement de l'un desdits séquenceurs quand l'un desdits mots de micro-instruction contient 6908776 4 2005426 un caractère d'interconnexion. (e) Des moyens de mise en état reliés à l'autre desdits sé-quenceurs pour permettre au premier séquenceur d'avancer au delà dudit mot contenant un caractère d'interconnexion à la réception 5 d'un mot de micro-instruction contenant un caractère d'interconnexion dans le second séquenceur. La présente invention améliore l'efficacité en utilisant des caractères d'interconnexion dans les micro-instructions cféléments de commande micro-programmés indépendants d'unités de sous-trai-10 tement opérant simultanément. Un montage simple et souple est prévu qui permet simultanément une génération d'adresse et un traitement arithmétique, ainsi qu'une anticipation sans "conjecture". D'autres sous-traitements simultanés peuvent être réalisés de la même façon. Conformément à l'invention, les sous-traite-15 xnents sont exécutés par plusieurs unités de sous-traitement dont chacune est régie par un élément de commande micro-programmé séparé. Pour permettre un fonctionnement indépendant à pleine vitesse, tout en empêchant qu'une unité de sous-traitement dépasse le point où elle dispose d'informations destinées à une autre 20 unité de sous-traitement, ou auquel une autre unité de sous- traitement a besoin d'informations élaborées provenant de la première, il est prévu des circuits d'interconnexion répondant à des indicateurs d'interconnexion contenus dans les micro-instructions des êëments de commande individuels. De simples circuits condi-25 tionnels assurent toutes les fonctions d'interconnexion avec un minimum de matériel. Etant donné que les unités de sous-traitement sont sous la commande de micro-programmes indépendants, une unité de sous-traitement peut, en l'absence d'un indicateur d'interconnexion, 30 procéder à l'anticipation de l'instruction suivante, pendant que l'autre ou les autres unités de sous-traitement continuent de travailler sur l'instruction précédente. Cette anticipation n'est bloquée que par un indicateur d'enclenchement particulier se rapportant à la séquence de micro-programme qui l'exige. 35 D'autres caractéristiques et avantages de la présente invention ressortiront de la description qui va suivre, faite en regard des dessins annexés et donnant à titre explicatif mais nullement limitatif une forme de réalisation conforme à l'invention. Sur ces dessins, 6908776 5 2005426 la figure 1 est un schéma synoptique partiel d'un système de traitement de données électronique dans lequel deux éléments de commande micro-programmables sont enclenchés conformément à l'invention ; 5 la figure 2 est un schéma synoptique simplifié de l'unité de traitement centrale d'un système de traitement de données électronique dans lequel une unité de sous-traitement génératrice d'adressas et une unité de sous-traitement arithmétique sont respectivement commandées par des éléments de commande ayant les 10 facultés d'interconnexion de la présente invention ; la figure 3 est un organigramme montrant la séquence de fonctionnement des éléments de commande de la figure 2 pour l'exécution d'une instruction de comparaison qui nécessite la fonction d'interconnexion de la présente invention. 15 La présente invention s'applique principalement à une unité de traitement centrale comportant deux ou plusieurs unités de sous-traitement partageant une mémoire principale commune. Chaque unité de sous-traitement est commandée par des éléments de commande micro-programmables indépendants. 20 La figure 1 est un schéma extrêmement simplifié montrant les éléments de commande micro-programmables pour deux unités de sous traitement, ainsi que les liaisons d'enclenchement ou d'interconnexion entre ces deux éléments de commande» Les éléments de commande sont figurés par des générateurs de micro-opérations ac-25 tionnés par des séquenceurs adressables » Les séquenceurs peuvent avantageusement avoir la forme d'ensembles de mémoire à accès rapide. Un exemple d'un séquenceur approprié est décrit dans le brevet des Etats-Unis d'Amérique N° 3.157.862. Un séquenceur préféré est une mémoire uniquement de lecture dans lequel les micro 30 instructions peuvent être réécrites électriquement, mais ne sont pas changées pendant le fonctionnement normal. La mémoire principale 10 fournit des instructions aux éléments de commande des unités de sous-traitement par l'intermédiaire d'un registre d'ins tructionsll. Des sections séparées de ce registre ^instructions 35 désignent les micro-instructions de départ pour les éléments de commande respectifs des unités de traitement. C'est ainsi qu'une section du registre 11 est connectée à l'entrée d'un registre d'adresses 12. Le registre d'adresses 12 sélectionne dans le séquenceur 13, la micro-instruction devant être enregistrée dans 6908776 6 2005426 un registre local 15. La micro-instruction inscrite dans le registre local 15 spécifie les micro-opérations devant être exécutées par le générateur de micro-opérations 16. De plus, comme représenté, une section 17 du registre local 15 fournit l'adresse 5 suivante au registre d'adresses 12. Une autre section 18 est utilisée pour un indicateur d'interconnexion qui est fourni aux portes d'interconnexion 20 et 21. Une section du registre d'instructions 11 fournit également une adresse de départ au registre d'adresses 22 du séquenceur 23. 10 La micro-instruction adressée dans le séquenceur 23 est fournie à un registre local 25 et commande les micro-opérations du générateur de micro-opérations 26. La section 27 du registre iocal 25 fournit l'adresse suivante à uri registre d'adresses 22 et une autre section du registre local 25. fournit un indicateur d'inter-15 connexion aux portes d'interconnexion 20 et 21. Les portes d'interconnexion 20 et 21 sont figurées par des circuits ET qiii ne sont activés que par la réception simultanée des signaux d'interconnexion des deux registres 15 et 25. La sortie de la porte d'interconnexion 20 est reliée à une entrée d'in-20 crémentation (cre6t-à-dire, d'avancement d'un pas) du registre d'adresses 12, tandis que la sortie de la porte d'interconnexion 21 est reliée à une entrée correspondante du registre d'âdresses 22. Les générateurs 16 et 26 fournissent les micro-opérations pour les unités de sous-traitement respectives (non représentées). 25 Les interconnexions avec un système de traitement de données seront décrites plus en détail en regard de la figure 2. Lors du fonctionnement du mode de réalisation représenté sur la figure 1, la mémoire principale 10 fournit d'abord une instruction qui donne les adresses de départ aux séquenceurs 13 et 23. 30 Chaque micro-instruction adressée à chaque séquenceur inscrit dans les registres locaux 15 et 25 des sous-commandes pour les générateurs de micro-opérations 16 et 26, ainsi qu'une adresse suivante qui est renvoyée des sections 17 et 27 respectivement aux registres d'adresses 12 et 22. Les deux éléments de commande 35 opèrent à pleine vitesse, de façon indépendante, jusqu'à ce qu'une micro-instruction adressée dans l'un des éléments de commande contienne un indicateur d'interconnexion. C'est ainsi, par exemple, que s'il apparaît dans le registre local 15 une micro-instruction comportant un indicateur d'interconnexion dans la section 6908776 7 2005426 18, l'adresse contenue dans la section 17 sera une adresse répétée du même mot. Ceci arrête effectivement l'avancement de l'élément de commande, puisqu'il continue de répéter la même microinstruction à chaque cycle. 5 Quand le séquenceur 23 atteint le point de son intruction que le séquenceur 13 attend, un signal d'interconnexion provenant de la section 28 du registre 25 est appliqué à l'une des entrées des portes 20 et 21, en même temps que le signal d'interconnexion provenant de. la section 18 du registre local 15- L'adresse sui-10 vante fournie respectivement par les registres 15 et 25 aux registres d'adresses 12 et 22 sera une adresse répétée. Toutefois, les sorties des portes 20 et 21 modifient respectivement les registres d'adresses 12 et 22 de sorte que chaque séquenceur pourra accéder à la micro-instruction suivante. i 15 On conçoit que les unités de traitement de données opèrent sous un certain nombre de contraintes. C'est ainsi, par exemple, qu'une restriction commune est l'accessibilité à la mémoire principale. La plupart des restrictions sont facilement maîtrisées par des équipements déterminés. Quand deux ou plusieurs uni-20 tés de traitement ont une certaine interdépendance d'action, il est d'usage de leur imposer une contrainte déterminée les restreignant à des vitesses respectives permettant l'exécution des diverses séquences de sous-commande exigeant une action interdépendante sans que l'une des unités prenne de l'avance sur l'autre 25 à cet égard. Toutefois, des contraintes de délai sont différentes pour les différentes séquences de sous-commande et il existe souvent de nombreuses séquences de sous-commande qui n'exigent aucune interdépendance. En utilisant un petit degré de coïncidence et en réservant, au moins, un bit ou une combinaison de bits dans 30 chaque micro-instruction, le mode de réalisation décrit en regard de la figure 1 offre un moyen pour confiner les contraintes de délai des actions interdépendantes uniquement aux séquences de sous-commande qui les exigent. La figure 2 illustre plus en détail un mode de réalisation 35 dans lequel deux unités de sous-traitement dissemblables fonctionnent avec une mémoire principale commune. Dans ce mode de réalisation, l'une des unités de sous-traitement est un générateur d'adresses et l'autre une unité arithmétique. On conçoit que le générateur d'adresses de la mémoire principale ou mémoire de 6908776 8 2005426 commande d'une unité de traitement centrale peut prendre de nombreuses formes, dont certaines sont relativement compliquées. C'est ainsi, par exemple, qu'il y a l'adressage, direct, l'adressage indirect, l'adressage indexé direct et l'adressage indexé 5 indirect, tous deux prolongés et normaux, ainsi que des vides. Dans les grandes calculatrices, on utilise parfois tous ces modes d'adressage, et d'autres encore et dans celles-ci la génération des adresses est exécutée plus efficacement par des unités de sous-traitement séparées opérant de façon asynchrone par rapport 10 aux autres et comportant en propre leur élément de commande, leurs registres de mémoires et leurs circuits logiques et arithmétiques. L'unité de sous-traitement de la figure 2 comporte lin registre d'adresses ROMAR 32 (Read Only Memory = mémoire uniquement de lecture), un générateur d'adresses AG ROM 33 et un registre lo-15 cal ROMLR 35. La sortie du registre ROMLR 35 commande le générateur de micro-opérations AG J>6 qui, de son côté, fourni des signaux de commande au générateur d'adresses 50. Le générateur d'adresses reçoit des instructions de la mémoire principale 30 par l'intermédiaire d'un registre local de mémoire 31 et d'un 20 circuit de commande de séquence 39. Le circuit de commande 39 fournit une adresse de départ pour le registre ROMAR 32. Dans le mode de réalisation représenté, le générateur d'adresses AGROM 33, lorsqu'il a été mis en marche, continue de fonctionner cyclique-ment sous la commande d'une horloge 51 contenue dans le registre 25 ROMAR 32, qui est avàrjcé d'un pas à chaque cycle par un incrémen-teur 52. Le raccordement à une séquence différente de la mémoire est institué par une micro-opération de branchement à travers un circuit logique d'adresse de générateur d'adresses et de branchement 53• Le générateur d'adresses 50 est connecté au registre 30 d'adresses de mémoire 55 de la mémoire principale 30 pour fournir les adresses de la mémoire principale. Une entrée 56 est prévue sur le générateur de micro-opérations du générateur d'adresses 36 de manière que les résultats d'une opération de l'unité logique et arithmétique puissent, par exemple, influencer les micro-35 opérations du générateur d'adresses. Dans certains cas, une décision si un branchement doit être établi ou non dépend du résultat d'une opération arithmétique effectuée dans l'unité logique et arithmétique. L'unité logique et arithmétique est également commandée par un élément de commande ROM comprenant un registre 6908776 9 2005426 d'adresses ROM 42 connecté à l'unité arithmétique ROM 43 qui, de son côté, est connectée au registre local ROM 45. De son côté, le registre local ROM 45 est connecté pour fournir, des signaux de commande au générateur de micro-opérations 46 de l'unité arithmé-5 tique. Un registre de code d'opérations 58 connecté à la sortie du registre local 31 de la mémoire principale fournit l'adresse de départ au registre d'adresses ROM 42. Comme dans le mode de réalisation de la figure 1 les adresses successives destinées à l'unité arithmétique ROM sont fournies par la section 47 du re-10 gistre local ROM 45. En conséquence, la section 47 du registre local ROM est reliée à l'entrée du registre d'adresses ROM 42. Aux fins de branchement le générateur de micro-opérations 46 comporte une sortie reliée au circuit logique 59 qui fournit les adresses de branchement au registre d'adresses ROM 42. Le généra-15 teur de micro-opérations 46 est connecté pour fournir des signaux de commande à l'élément logique et arithmétique 60. L'élément log^Ôme et arithmétique 60 comporte une liaison directe 63 avec le registre local 31 de la mémoire principale pour recevoir des opérandes. Une connexion de sortie de l'élément logique et arith-20 métique 60 aboutit aux circuits d'écriture 65 de la mémoire principale 30 et fournit les résultats des opérations logiques et arithmétiques devant être conservés dans la mémoire principale. Dans le mode de réalisation représenté sur la figure 2, l'opération d'interconnexion s'effectue comme suit : les caractères 25 d'interconnexion des sections 38 et 48 des registres locaux ROM 35 et 45 sont respectivement de préférence des caractères à un seul bit dans lesquels un "1" sert à indiquer la présence d'une interconnexion et un "0" l'absence d'une interconnexion. La présence d'un "1" dans la section 38 et d'ion "0" dans la section 48 30 produit un signal de sortie de la porte d'interconnexion 40 arrêtant l'horloge 51. Ceci arrête la progression du générateur d'adresses jusqu'à ce qu'un bit d'interconnexion apparaisse dans la section 48 du registre 45- La présence d^un "1" dans la section 48 bloque la porte d'interconnexion 40, permettant à l'hor-35 loge 51 de se remettre en marche. On conçoit que cette fonction d'inhibition peut être réalisée dans le circuit de sortie de l'horloge 51, auquel cas cette dernière peut marcher en continu. Quand un "0" est présent dans les deux sections 38 et 48, aucune action d'inhibition n'a lieu et l'horloge 51 continue de marcher. 6908776 10 2005426 L'opération d'interconnexion de l'unité logique et arithmétique est identique à celle décrite ci-dessus en regard de la figure 1. Un mot de l'unité arithmétique ROM qui comporte un "1" dans la section d'interconnexion 48 possède une adresse de répétition 5 dans la section 47. Quand un "1" est présent dans la section 48 et qu'un "0" est présent dans la section 38, la porte d'interconnexion 41 est bloquée et l'adresse de répétition de la section 47 fait que le registre d'adresse de mémoire 42 répète l'adresse du même mot. Quand un "1" est présent dans la section 48 10 et un "0" dans la section 38, la sortie de la porte d'interconnexion 4l modifie l'adresse dans le registre 42, de sorté que l'élément de commande ROM de l'unité logique et arithmétique avance. On trouvera ci-après une description fonctionnelle et opérationnelle générale du mode de réalisation de la figure 2. 15 L'unité de traitement centrale de la figure 2 contient deux unités de sous-traitement, à savoir : l'unité arithmétique "AU" 62 et le générateur d'adresses "AG" 6l, ayant chacun sa propre mémoire uniquement ROM 43 et 33» Les unités AU 62 et AG 6l fonctionnent en parallèle, comme deux unités.de traitement indépen-20 dantes, chacune étant commandée complètement par sa propre mémoire ROM. Toutefois, il existe un certain degré de synchronisation et de communication entre ces unités. Il y a des différences fondamentales d'organisation, d'adressage et de décodage entre les registres ROM AU et AG. Ces différences reflètent (et dans 25 une certaine mesure produisent) des différences fondamentales entre les unités AU et AG elles-mêmes et servent à démontrer la souplesse et l'aptitude à la spécialisation d'un circuit ROM. La grande vitesse, la complexité et les dimensions physiques réelles sont des facteurs importants dans la détermination de la manière 30 dont les fonctions de commande ROM sont réalisées. Le générateur d'adresses ROM 33 remplit les fonctions suivantes : (1) génération de toutes les adresses de mémoire (principale et de commande) ; (2) cyclage de la mémoire de commande ; (3) génération des mots de communication entre unités de traite-35 ment (conjointement avec l'unité AU ROM). Les séquences AG ROM constituent un groupe de micro-routines de base parmi lesquelles un sous-groupe peut être sélectionné pour engendrer une adresse quelconque ou pour lire ou modifier le contenu d'un emplacement de mémoire de commande quelconque. 6908776 2005426 L'échantillonnage suivant de séquences typiques AG ROM va élucider ce point : (1) liaison avec lin compteur périphérique ; (2) adresse directe de mémoire principale ; (3) branchement indexé de mémoire principale ; (4) charge de compteur AU, type 1 ; (5) 5 assemblage de bits-tampons. L'échantillon 1 représente des séquences de lecture ou d'écriture dans un certain emplacement spécial ; l'échantillon 2 représente des séquences appartenant à des modes d'adressage spécifiques ; l'échantillon 3 représente des séquences appartenant à une combinaison particulière de types 10 d'ordres (embranchement) et de types d'adresses (mémoire principale indexée) ; l'échantillon 4 est représentatif de séquences se rapportant à une combinaison particulière de types d'ordres (type 1) et d'emplacements de mémoire de commande (compteur AU); l'échantillon 5 est typique de séquences se rapportant à des or-15 dres spécifiques (assemblage de bits-tampons). Quand un mot d'instruction arrive, une unité logique classique (circuit de commande de séquence 39) développe à partir du mot d'instruction lui-même, le groupe de séquences AG ROM nécessaire pour engendrer toutes les adresses de mémoire et pour lire 20 et/ou modifier tous les emplacements de mémoire nécessaires à l'achèvement de l'instruction. Le circuit de commande de séquence 39 charge alors l'adresse du premier emplacement de la première séquence dans le registre d'adresses AG ROM 32. Le registre 32 est alors avancé d'un pas à chaque impulsion d'horloge (à moins 25 qu'il y ait un embranchement), jusqu'à ce que le dernier emplacement de la séquence soit atteint, après quoi le circuit de commande 39 charge l'adresse du premier emplacement de la séquence suivante dans le registre 32. Quand le dernier emplacement de la dernière séquence est atteint, le circuit de commande 30 39 charge l'adresse du premier emplacement de la première séquence de l'instruction suivante dans le registre d'adresses 32, et le processus est répété. Il ressort de ce qui précède que le générateur d'adresses 32 a la possibilité de brancher n'importe quel emplacement à 35 n'importe quel autre emplacement, conditionnellement ou inconditionnellement, sous sa propre commande. L'établissement d'un branchement sert à économiser des emplacements et à accélérer l'établissement d'un itinéraire en bouclant une séquence ou en sautant à une partie d'une autre séquence ou à une autre partie 6908776 12 2005426 d'un ROM. Normalement, une fois au cours d'une séquence, le registre d'adresses ROM avance d'un pas à chaque impulsion d'horloge jusqu'au dernier emplacement, à moins de rencontrer un embranchement. Après l'embranchement, l'avancement normal pas à pas 5 du registre d'adresse 32 recommence. Le générateur d'adresses ROM AG 33 contient, par exemple, 54 séquences comprenant de deux mots (adresses directes de mémoire principale) à 102 (instruction périphérique) mots chacune ; huit mots par séquence est "typique". La génération de chaque adresse 10 de mémoire exige l'utilisation d'une (mémoire principale directe) à quatre (délivrance à un-compteur périphérique) de ces séquences ; deux séquences par adresse est typique. Pour chaque adresse devant être engendrée, les séquences particulières utilisées et l'ordre dans lequel elles sont utilisées sont une fonction com-15 plexe de l'instruction, du mode d'adressage et des emplacements de mémoire de commande impliqués. C'est ainsi que la génération de l'adresse A pour un ordre d'addition binaire peut impliquer l'une de deux séries différentes de séquences à cause des différences des modes d'adressage. Il est bien évident qu'une sé-20 quence donnée peut être utilisée dans un grand nombre d'ordres différents. L'unité arithmétique ROM 62 remplit les fonctions de commande suivantes : (1) manipulation des opérances ; (2) cyclage de la mémoire effaçable de l'unité arithmétique ; (3) génération des 25 mots de communication entre unités de traitement (conjointement avec AG/61). Pour rendre le plus économique possible l'utilisation du générateur d'adresses ROM 43 9 les ordres de machine sont réunis par exemple, en quelque 50 groupes d'ordres ayant une relation 30 étroite ; il y a une séquence AU ROM distincte pour chaque groupe. C'est ainsi, par exemple, que la séquence fixe d'addition comprend les instructions d'addition décimale, d'addition binaire, de soustraction décimale, de soustraction binaire, d'addition binaire prolongée et de soustraction binaire prolongée. Des va-" 35 riations particulières sont obtenues par branchement. Quand un mot d'instruction arrive, les bits du code Op (code d'opération) sont conservés dans le registre de code Op 58. Quand l'instruction en train d'être traitée est achevée (et si aucune erreur n'a été détectée), le contenu du registre de code Op est 6908776 13 2005426 transféré dans le registre d'adresses AU ROM 42. L'emplacement ROM ainsi adressé srappelle un emplacement de code Op; il y a un emplacement de code Op pour chacun des codes Op de la machine. Plusieurs bits de chaque mot AU ROM sont réservés pour la 5 section d'adresse suivante 47- Normalement (sauf lors de l'inscription d'une séquence ou lors d'un branchement dans une séquence), la section d'adresse suivante 47 est la source fournissant la valeur suivante au registre d'adresses ROM 42. La section d'adresse suivante d'un emplacement de code Op contient l'adresse 10 du premier mot de la séquence devant être utilisé pour l'exécution de l'ordre. C'est ainsi, par exemple, que la section d'adresse suivante de l'emplacement de code Op de soustraction binaire contient l'adresse du premier emplacement de la séquence d'addition fixe. Ce procédé d'adressage, dans lequel chaque mot 15 ROM spécifie le mot ROM suivant, offre une très grande souplesse opératoire. Le branchement est utilisé pour : (1) spécialiser une séquence pour l'ordre particulier contenu dans le groupe d'ordres ; (2) tenir compte des variations des formes d'adressage ; (3) te-20 nir compte des conditions dépendantes de l'opérande. ($sst ainsi, par exemple, que c'est le branchement qui spécialise la séquence fixe d'addition pour le cas particulier de la soustraction décimale, de l'absence d'une adresse A, où les opérandes d'accumulateur et B sont de même signe, où l'opérande B est plus grand que 25 l'opérande de l'accumulateur. Le branchement est commandé par des micro-opérations réunies en groupes s'excluant mutuellement. Chaque micro-opération de branchement se rapporte à un sous-groupe particulier de conditions de branchement et à un bit particulier parmi les bits du 30 registre d'adresses AU ROM 42. Une micro-opération de branchement "dit" que si les conditions spécifiées sont remplies, le bit spécifié du registre d'adresse doit être placé sur "1". Quand la section d'adresse suivante est introduite dans le registre d'adresses, les micro-opérations de branchement actives ont pour 35 effet de superposer les conditions externes choisies sur les bits sélectionnés du registre d'adresses. Pour bien faire comprendre l'idée de la présente invention, un exemple de l'une des procédures les plus simples utilisant le concept dinterconnexion décrit ci-contre est exposé dans 6908776 14 2005426 l'organigramme de la figure 3. L'exemple donné se rapporte à une simple comparaison des opérandes A et B. L'instruction provenant de la mémoire principale 30 instruit le générateur d'adresses 6l d'engendrer l'adresse 5 d'opérande A. L'instruction de la mémoire principale 30 instruit aussi l'unité arithmétique d'accepter l'opérande A. Des équipements logiques classiques empêchent l'unité arithmétique d'avancer avant que l'opérande A soit disponible. Dans le mode de réalisation décrit, la plupart des délais nécessaires lorsque la 10 mémoire principale n'est pas immédiatement accessible sont réalisés matériellement. Etant donné qu'il s'agit de circuits classiques, ne faisant pas partie de l'invention, ils ne seront pas décrits en détail. Le générateur d'adresses effectue les cycles nécessaires pour 15 engendrer l'adresse d'opérande A. Ceci est illustré sur la figure 3 par trois cycles. Pendant ce temps, l'unité arithmétique ROM peut être arrêtée, comme l'indique la ligne en tirets 70. Quand l'adresse d'opérande A a été engendrée, elle est fournie au registre d'adresses de mémoire 55» rendant ainsi l'opéran-20 de A disponible. La disponibilité de l'opérande A remet en marche l'avancement du registre ROM 43 de l'unité arithmétique 62. Sur la figure 3, le registre ROM 43 effectue deux cycles pour accepter l'opérande A. Il est bien évident que les nombres de cycles représentés pour chaque opération ne sont donnés qu'aux fins de 25 la description et que.dans des cas typiques un nombre relativement grand de cycles, par exemple, huit, sera nécessaire. Immédiatement après l'achèvement de l'adresse d'opérande A, le générateur d'adresses 6l procède à la génération de l'adresse y' d'opérande B. Etant donné qu'un seul mot d'instruction peut cou-30 vrir la génération des deux adresses d'opérande A et B, les délais rencontrés par le générateur d'adresses jusqu'à ce point sont ceux dus à son propre temps de traitement interne, plus 3es délais dus à la non disponibilité de la mémoire principale. Quand la génération de l'adresse d'opérande B est achevée, le généra-35 teur d'adresses doit attendre les résultats de la comparaison de l'unité arithmétique pour obtenir l'adresse dJinstruction suivante. C'est ainsi, par exemple, qu'en l'absence d'une comparaison satisfaisante, le même registre du générateur d'adresses extrait l'adresse de l'instruction séquentielle suivante, tandis 6908776 15 2005426 que lors d'une comparaison satisfaisante, un embranchement du registre ROM AG calcule une adresse d'embranchement et l'utilise comme emplacement pour l'instruction suivante. Le signal ordonnant au générateur d'adresses d'attendre se 5 présente sous la forme d'un indicateur d'interconnexion contenu dans le dernier mot de la séquence "engendrer l'adresse B". Ceci est indiqué sur la figure 3 par un bloc désigné "cycle 3-inter-connexion". En se référant â la figure 2, il est à noter qu'un caractère 10 d'interconnexion du générateur d'adresses inhibe l'horloge 51s arrêtant ainsi l'avancement du registre ROM AG 33* L'unité arithmétique continue, en acceptant d'abord l'opérande B, puis en comparant les opérandes A et B. Cette comparaison exige une séquence comprenant les cycles 1 à 6 du registre ROM AU, 15 ce nombre de cycles ayant été choisi arbitrairement comme séquence de comparaison aux fins de la description. La ligne en tirets 71 indique les cycles non représentés. Le dernier mot de la séquence de comparaison comporte un indicateur d'interconnexion figuré par un bloc désigné "cycle 6-interconnexion". Le ca-20 ractère d'interconnexion AU active l'horloge 51 (voir figure 2), en bloquant la porte 40. Ceci a pour but d'informer le comparateur d'adresse que les résultats de la comparaison sont disponibles en remettant en marche l'avancement du registre AG ROM. La ligne en tirets de la figure 3 indique la période de temps pen-25 dant laquelle le générateur d'adresses a attendu les résultats de la comparaison A/B. En réponse â la présence du caractère d'interconnexion AU, le générateur d'adresses avance et les résultats de la comparaison de A et de B sont considérés comme des conditions externes appli-30 quées au générateur de micro-opérations AU 36 par la ligne d'entrée 56 (Pig. 2). En se reportant à la figure 3» on voit que le bloc désigné "si A=B placer l'indicateur d'embranchement" place l'indicateur d'embranchement du générateur d'adresses selon les résultats pro-35 venant de l'unité arithmétique. La ligne 73 représente cette communication. Une comparaison satisfaisante peut, par exemple, déclencher une micro-opération de branchement désignée par le bloc intitulé "branchement". Une comparaison non satisfaisante peut, par exemple, avoir pour résultat la continuation de la même 6908776 16 2005426 séquence comme l'indique le bloc "non branchement". Les deux séquences ont pour résultat la génération d'adresses pour des instructions différentes selon les résultats de la comparaison. La présence de l'interconnexion figurée par la ligne en ti-5 rets 75j lors de la présence de l'interconnexion AU, permet à l'unité arithmétique de poursuivre son opération. Si l'interconnexion 75 n'était pas présente, l'unité arithmétique continuerait de cycler sur le dernier mot. L'avancement de l'unité arithmétique peut être arrêté, même 10 lorsque l'interconnexion AG est présente, par absence d'une instruction suivante. L'organigramme de la figure 2 décrit une séquence de sous-commande exigeant une interconnexion entre les deux unités de sous-traitement de la figure 2. En considérant ces mêmes unités, 15 certaines séquences de sous-commande n'exigent pas une interconnexion. C'est ainsi, par exemple, que dans l'instruction "additionner A et B puis placer la somme dans le registre de mémoire X", aucune des adresses devant être engendrées n'est dépendante du résultat de l'opération arithmétique. Dans ce cas, le 20 registre d'adresses peut continuer et engendrer des adresses incluant l'instruction suivante et les adresses exigées par l'instruction suivante à sa vitesse maximale limitée que par le temps d'accès à la mémoire principale. L'unité arithmétique opère aussi à pleine vitesse, sauf en ce qui concerne la disponibilité de la 25 mémoire. Ainsi, cettè, séquence n'est pas freinée par des délais inutiles. Les interconnexions entre les registres de mémoire ne sont établies que. pour les séquences qu'ils nécessitent. Des circuits logiques supplémentaires sont utilisés pour empêcher les opérandes d'arriver avant que l'unité arithmétique puisse les 30 accepter ou que les résultats soient délivrés avant que cette unité puisse les fournir. Les particularités d'anticipation des modes de réalisation décrits ci-dessus ne sont pas immédiatement évidentes sur le dessin. En se référant à la figure-2, l'élément générateur d'adres-35 ses 50 comporte de préférence un certain nombre de registres pour inscrire à l'avance les adresses de mémoire principales. Ceci permet au générateur d'adresses 6l de continuer à engendrer des adresses, même quand l'unité arithmétique 62 n'est pas prête â les utiliser. Etant donné que l'unité arithmétique 62 et le 6908776 ^ 2005426 générateur d'adresses 61 continuent d'opérer sous la commande du micro-programme, indépendamment de l'instruction commençante, le générateur d'adresses 61 peut extraire une instruction et peut commencer à engendrer des adresses sous la commande de celle-ci 5 pendant que l'unité arithmétique.61 continue de traiter l'instruction suivante. Ce mode d'opération à. anticipation est considérablement simplifié dans la présente invention, puisque les interconnexions déclenchées par les indicateurs contenus dans les micro-instructions fournissent la protection nécessaire en ce qui 10 concerne les points critiques auxquels l'opération de l'unité de sous-traitement doit engrener. Il ressort clairement de ce qui précède que la complexité et le coût des équipements nécessaires pour cette protection sont négligeables. Bien que l'invention ait été décrite ci-dessus à la lumière 15 de modes de réalisation particuliers ne comportant que deux unités de sous-traitement, il convient de signaler qu'elle s'applique tout aussi bien au cas où trois ou plusieurs unités de sous-traitement exigent des interconnexions. Les montages particuliers utilisés dépendent dans une- certaine mesure de la structure des 20 séquenceurs. C'est ainsi que la figure 1 montre un montage essentiellement symétrique, tandis que la figure 2 montre une unité de sous-traitement arrêtée par une interconnexion, tandis que l'autre unité continue d'opérer sur un seul mot en réponse à me interconnexion. 25 Dans le mode de réalisation de la figure 2, il est également parfois souààitable de faire fonctionner les deux imités de sous-traitement dans le mode asservi. En supprimant ou en désactivant la porte d'interconnexion 40, seule l'unité arithmétique 62 est arrêtée par un caractère d'interconnexion. Dans ce cas, un carac-30 tère d'interconnexion du générateur d'adresses 6l réactive l'unité arithmétique 62, en tant qu'unité pilote. Il va de soi que la présente invention n'a été décrite ci-dessus qu'à titre explicatif mais nullement limitatif et que lron pourra y apporter toutes variantes sans sortir de son cadre. 6908776 2005426 LEGENDE DES DESSINS Fig. 3 - A Engendre des adresses A B Engendre des adresses B C Cycle 5 D Interconnexion E Branché F Non branché G Engendre de nouvelles adresses d'instruction H Accepte opérande (A) enfin disponible 10 I Accepte opérande A J Accepte opérande B enfin disponible K Accepte opérande B L Compare A avec B M Interconnexion 15 N Si A = B placer l'indicateur d'interconnexion. 6908776 19 2005426 REVENDICATIONS 1. Installation de traitement de données électroniques comprenant une mémoire principale, un générateur d'adresses et une unité logique et arithmétique, caractérisée par la combinaison, 5 dans ledit générateur d'adresses et dans ladite unité logique et arithmétique, comprenant : (a) Un premier séquenceur adressable fournissant des microinstructions pour diriger les opérations élémentaires dudit générateur d'adresses. 10 (b) Un second séquenceur adressable fournissant des micro instructions pour diriger les opérations élémentaires de ladite unité logique et arithmétique. (c) Des moyens pour faire séquentiellement avancer les mots de micro-instruction respectivement dans le premier et le second 15 séquenceurs adressables. (d) Des moyens pour inhiber l'avancement de l'un desdits séquenceurs quand l'un desdits mots de micro-instruction contient un caractère d'interconnexion. (e) Des moyens de mise en état reliés à l'autre desdits sé-20 quenceurs pour permettre au premier séquenceur d'avancer au delà dudit mot contenant un caractère d'interconnexion à la réception d'un mot de micro-instruction contenant un caractère d'interconnexion dans le second séquenceur. 2. Installation selon la revendication 1, caractérisée en ce 25 que lesdits séquenceurs sont des mémoires uniquement de lecture dont le contenu ne peut être changé électriquement qu'en dehors du fonctionnement normal de l'équipement. 3. Installation selon la revendication 1, caractérisée en ce que les moyens d'avancement séquentiels comprennent une source 30 d'impulsions d'horloge. 4. Installation selon la revendication 3j caractérisée en ce que les moyens d'inhibition comprennent des moyens pour inhiber lesdites impulsions d'horloge. 5. Installation selon la revendication 1, caractérisé en ce 35 que les moyens d'inhibition comprennent des moyens pour fournir une adresse de répétition du présent mot de micro-instruction au séquenceur correspondant. 6. Installation selon la revendication 5, caractérisée en ce que les moyens de mise en état comprennent des moyens pour 6908776 20 2005426 modifier ladite adresse de répétition. 7. Installation de traitement de données électronique comportant ime unité de traitement centrale comprenant une mémoire principale3 une première unité de sous-traitement, une seconde 5 unité de sous-traitement, un premier élément de commande microprogrammé fournissant des micro-instructions pour commander cette première unité de sous-traitement et un second élément de commande micro-programmé fournissant des micro-instructions pour commander la seconde unité de sous-traitement, caractérisée par la 10 combinaison dans ledit premier et ledit second éléments de commande des moyens suivants : des moyens pour avancer séquentiellement les micro-instructions dans le premier élément de commande; des moyens pour avancer séquentiellement des micro-instructions dans le second élément de commande ; des moyens pour transférer 15 un indicateur dans une se-ction prédéterminée desdites microinstructions de chacun desdits éléments de commande, ladite section étant représentative d'une fonction d'interconnexion ; des moyens pour inhiber l'avancement de l'un desdits éléments de commande lors de l'une desdites micro-instructions en réponse à la 20 présence d'un indicateur dans ladite section de celle-ci ; et, des moyens pour faire avancer l'un desdits éléments de commande au delà de ladite micro-instruction en réponse à la présence d'un indicateur dans ladite section de l'autre élément de commande. 8. Installation selon la revendication J, caractérisée en ce 25 que la première unité.de sous-traitement est un générateur d'adresses et la seconde unité de sous-traitement est une unité arithmétique. 9. Installation selon la revendication J, caractérisée en ce que lesdits moyens de transfert sont constitués par une porte 30 logique. 10. Installation selon.la revendication 9, caractérisée en ce que lesdits moyens d'avancement sont une connexion partant de l'autre élément de commande représentative de la section correspondante. 35 11. Installation selon la revendication 7, caractérisée en ce que les moyens pour avancer séquentiellement des micro-instructions dans le premier élément de commande sont constitués par une source d'impulsions d'horloge, les moyens pour inhiber l'avancement du premier élément de commande comprenant des moyens pour in-lQ hiber lesdites impulsions d'horloge,tandis que les moyens pour 6908776 2005426 inhiber l'avancement du second élément de commande sont constitués par des moyens produisant une réitération des mêmes microinstructions . 12. Installation selon la revendication 7, caractérisée en ce 5 que les éléments de commande de la première et de la seconde unités de sous-traitement occupent respectivement.les positions de maître et d'esclave, de sorte qu'un indicateur d'interconnexion présent dans une micro-instruction de l'élément de commande de la seconde unité de sous-traitement inhibe 1'avancement de cette 10 seconde unité, tandis qu'un indicateur d'interconnexion contenu dans une micro-instruction de l'élément de commande de la première unité de traitement permet l'avancement de cette dernière. 13. Installation de traitement de données comportant un certain nombre d'unités de sous-traitement, dont chacune est comman- 15 dée séparément par un séquenceur adressable, caractérisée par la combinaison, dans chaque séquenceur-2 pour interconnecter un certain nombre desdites unités de sous-traitement, des éléments suivants : un agencement adressable d'éléments de mémoire ; un registre d'adresses pour adresser un mot de micro-instruction conservé 20 dans ledit agencement ; un registre local ayant un certain nombre de sections pour recevoir un mot de micro-instruction adressé audit agencement ; des moyens pour avancer séquentiellement ledit registre d'adresses d'une manière périodique ; des moyens dinhibition connectés à l'une des sections dudit registre local pour 25 inhiber sélectivement l'avancement dudit registre d'adresses en réponse à la présence d'un caractère d'interconnexion dans ladite section ; et, des moyens reliés fonctionnellement auxdits moyens d'inhibition pour surpasser ladite inhibition en réponse à un caractère d'interconnexion du séquenceur d'une autre desdites unités 30 de sous-traitement. 14. Installation selon la revendication 13, caractérisé en ce que ledit agencement adressable est une mémoire uniquement de lecture contenant des mots de micro-instructions qui sont conservés en continu pendant le fonctionnement normal dudit système de 35 traitement de données, mais qui peuvent être électriquement changés aux fins d'un réajustement exceptionnel du système. 15. Installation selon la revendication 14, caractérisée en ce que les moyens d'avancement séquentiels sont constitués par une source d'impulsions d'horloge coopérant avec des moyens, pour 6908776 22 2005426 appliquer les adresses suivantes, des moyens d'inhibition constitués par des portes logiques intervenant en réponse audit caractère d'interconnexion pour interrompre ledit avancement. 16. Procédé pour interconnecter sélectivement les fonction-5 nements de deux unités de sous-traitement pouvant opérer simultanément, caractérisé en ce qu'il consiste à commander chacune desdites unités avec des micro-instructions conservées dans un séquenceur micro-programmé ; à introduire dans les micro-instructions des caractères d'interconnexion aux points des sé-10 quences du micro-programme exigeant qu'une desdites unités de sous-traitement soit placée sous la dépendance de l'autre ; et à interrompre le fonctionnement de ce séquenceur en atteignant une micro-instruction contenant un caractère d'interconnexion avant que l'autre séquenceur n'atteigne une micro-instruction contenant 15 un tel caractère.