Brevet FR2375659A1 — publié le 19780721

La présente invention concerne un système de traitement de données à bus en boucle fermée. La présente invention concerne en particulier une architecture de bus unidirectionnels ou en boucle fermée pour transmettre des données, des instructions et autres informations entre une unite de traitement et une série de mémoires et d'unités d'entrée/sortie. Les systèmes microprocesseurs connus dans la technique comprennent trois ou quatre éléments fonctionnels de base séparés. Le premier de ces éléments est le registre d'adresses de micro-instructions constitué par une mémoire morte (ou quelquefois par une mémoire à accès sélectif) avec ses circuits d'incrémentation, de branchement-et de liaison. Le second élément est l'unite arithmetique et logique (ALU) avec ses registres et ses voies de données Le troisième élément est le circuit d'interconnexion d'adressage et de transfert de données avec la mémoire principale, qui est habituellement traité comme une unité d'entrée/sortie et est, du point de vue de son architecture, combiné avec d'autres dispositifs d'entrée/sortie de l'ordinateur.Si le microprocesseur est suffisamment élaboré, il comporte un quatrième élément contenant des registres et des voies de données, habituellement appelé un canal, pour effectuer les aiguillages d'interruptions et, facultativement les commandes de vols de cycle multiplexées ou dans le mode continu (appelé quelquefois accès direct à la mémoire ou DAMA) Les microprocesseurs classiques peuvent être classés en deux catégories qui répartissent les fonctions ci-dessus mentionnées dans un ensemble comportant plusieurs microplaquettes. Dans la première catégorie, les différentes fonctions sont sur des microplaquettes sépareestelles qu'une microplaquette d'unité arithmétique et logique, une microplaquette de commande, une microplaquette d'adressage, une microplaquette d'entrée/sortie, et des microplaquettes de mémoire morte/ mémoire a accès sélectif (quelquefois avec une commande d'addressage). Dans la seconde catégorie les fonctions du processeur sont réparties entre un certain nombre de micropl#aquettes identiques. Cette solution est appelée "technique de découpage en tranches de bits" et elle nécessite habituellement l'emploi de microplaquettes de commande d'entrée/sortie séparées. Les deux solutions nécessitent l'emploi entre les microplaquettes, de nombreuses interconnexions dont l'importance est limitée par les broches d'entrée/sortie disponibles et entrain, par conséquent, une duplication de circuits logiques et également des retards dûs au passage nécessaire par les circuits d'attaque et de réception hors microplaquettes. Si les bus de données ou d'adresse sont bidirectionnels, aucun signal ne peut être transmis ou reçu tant qu'un état de commande "tous circuits bloques" puis "tous circuits actifs" n'est pas établi entre les circuits d'attaque et les récepteurs des microplaquettes. En outre, chacun de ces bus bidirectionnels a besoin de broches d'entrée/sortie et de circuits d'attaque hors microplaquettes ce qui a pour résultat la réalisation d'un agencement de microplaquettes plus important et, ce qui est pire, une dissipation d'énergie plus importante. Pour éviter cet inconvénient, certaines architectures combinent les bus d'adresse et de données en un bus unique désigné "uni bus" à multiplexage temporel rendant les commandes encore plus compliquées et accroissant les retards d'échanges d'identification. Par conséquent, le besoin se fait sentir de disposer d'une architecture de microprocesseur qui réduise au minimum le nombre des circuits d'attaque et de réception et qui puisse être assemblé sur une microplaquette contenant environ 68 broches de connexion afin de réduire au minimum le cott et optimiser les performances. Selon la présente invention, il est prévu une architecture de bus en boucle fermée pour un microprocesseur complètement intégré qui ne nécessite aucun petit nombre de connexions de lignes d'entree/sortie de sorte que le microprocesseur puisse être assemble sur une unique microplaquette de circuit intégré. Le nombre des circuits d'attaque du canal est réduit au minimum et, cependant, la capacité de traitement est accrue au maximum en permettant un fonctionnement en pipeline et l'exécution d'opérations en chevauchement. L'invention réalise une architecture de bus pour un ordinateur comportant un processeur central ayant une unité arithmétique et logique, les registres d'opérandes coopérants, et des moyens de décodage et d'exécution d'instruction et comportant, en outre, des registres de mémoire locale, une mémoire principale, une mémoire de commande et un ou plusieurs dispositifs d'entréefsortie. Selon la présente invention, un groupe de bus unidirectionnels comprenant un bus d'entrée, un bus de sortie et un minibus d'adressage auxiliaire est prévu pour permettre la communication entre les diverses mémoires, les moyens d'entrée/ sortie et le processeur central. Le bus de sortie est utilise pour adresser la mémoire de commande et la mémoire principale et pour fournir des données aux dispositifs d'entrée/ sortie et aux registres de la mémoire locale. Le bus d'entrée est utilise pour fournir des instructions et des informations au processeur et pour fournir des informations provenant des dispositifs d'entrée/sortie et des registres de mémoire locale à la mémoire principale. Selon un autre aspect de l'invention, il est prévu une horloge pour établir un cycle exécution d'instruction en deux parties afin de permettre un fonctionnement avec chevauchement. Au cours de la première partie, on accède ala mémoire de commande avec-l'adresse présente sur le bus de sortie et, au cours de l'autre partie, le bus de sortie est utilisé pour transmettre des données aux registres de la mémoire locale ou aux dispositifs d'entree/sortie. Selon un autre aspect de l'invention, les moyens d'horloge et les moyens de décodage et d'exécution sont utilisés pour produire un cycle double pour ltexecution d'une instruction nécessitant un accès à la mémoire principale. Au cours du premier cycle, -l 'adresse--de la la mémoire principale ou un accès doit entre effectué est calculée et, au cours du second cycle, cette adresse-est appliquée sur le bus de sortie. Les données reçues sur le bus d'entrée peuvent être chargées dans un registre d'opérande interne ou peuvent être transmi-ses par l-'intermediaire de l'unité arithmétique et logique au bus de sortie pour être reçues par un dispositif d'entrée/sortie. Selon un autre aspect de l'invention, le bus d'entrée est utilisé pour transmettre les données provenant d'un dispositif d'entrée/sortie ou d'un registre de la mémoire locale au processeur central tandis que le bus de sortie est utilisé pour adresser la mémoire de commande:afin de lire l'instruction suivante exécuter. Selon un autre aspect de l'invention, le processeur central est commande pour commencer l'execution d'une seconde instruction au cours d'une première partie d'un cycle d'exécution d'instruction puis, au cours d'une seconde partie de ce cycle d'exécution, lesvdonnees provenant de l'exécution d'une premier instruction sont placees sur le bus de sortie en vue de leur transfert au dispositif d'entrée/sortie et/ou à l'emplacement du registre de la mémoire locale adresse par le bus d'adressage auxiliaire. Selon un autre aspect de la présente inventions les registres de la mémoire locale sont utilisés pour mettre en mémoire, à une adresse réservée, une image des données apparaissant sur le bus de sortie au cours de chaque cycle d'exécution d'instruction en vue de la charger sélectivement sur le bus d'entrée au cours du cycle d'exécution suivant. En outre, les#données apparaissant sur le bus de sortie comme résultat de la modification d'un registre d'opérande interne quelconque peuvent être facultativement sauvegardées dans un registre de mémoire locale spécifié comme troisième opérande au cours de l'instruction en cours. Les données sont transférées à la mémoire principale à partir du processeur central par l'intermédiaire du registre de mémoire locale au moyen d'une instruction spécifiant le registre d'image indirect contenu dans la mémoire locale en tant qu'origine des données. Selon un autre aspect de l'invention, il est prévu, dans le processeur central, un premier registre pour conserver les données de sortie de l'unité arithmétique et logique et un second registre emmagasinant tempo- rairement les données de sortie du premier registre pour les transférer au bus de sortie. Selon un autre aspect de l'invention, l'unité arithmetique et logique est utilisée pour exécuter une seconde instruction par rapport a des données reçues sur le bus d'entrée tandis que les résultats de l'exécution d'une première instruction sont appliques sur le bus de sortie. Par ailleurs, dans la technologie actuelle des ordinateurs, les canaux qui ont jusqu'à 8 niveaux d'interruption imbriques et 8 niveaux de priorité de vols de cycle, avec les voies de données, les registres et les mémoires tampons correspondantes, sont extrêmement complexes et sont gênêralementséparés du processeur central et se trouvent sur une microplaquette séparée. Ceci est dA au fait qu'ils nécessitent généralement 600 a 700 portes logiques, ce qui est presqu'équivalent, en circuits logiques a un microprocesseur de 8 bits. Conformément à un autre aspect de la présente invention, il est donc prévu une architectureqde microprocesseur comprenant, dans le processeur central, une unité arithmetique et logique qui esttutilisee en temps partage pour le traitement des données, pour les opérations d'-entrêe/sortie, pour les transferts de données entre les registres et entre la mémoire et les registres, pour les opérations de décalage, pour les manipulations de multiplets et pour les modifications du registre d'adresse. La présente invention a également pour objet une architecture de micro-ordinateur comportant un bus commun a appel sélectif et un circuit logique de commande pour permettre des vols de cycle et des demandes d'interruption. La présente invention prévoit également la réalisation d'une série de piles de registres d'opérandes de travail, chaque pile pouvant être sélectionnée par le niveau d'interruption en cours d'exécution, en utilisant un adressage de pile absolu au moyen de la sélection de la page équivalente au niveau d'interruption. Selon un autre aspect de l'invention, il est prévu, en combinaison avec un bus unidirectionnel en boucle fermée, un registre d'adressage pour adresser la mémoire. Au cours d'une partie d'un cycle d'exécution, l'unité arithmétique et logique modifie le contenu du registre d'adressage, le résultat étant rechargé dans le registre d'adressage et également chargé sur le bus de sortie pour adresser la#mémoire. L'invention prévoit également l'utilisation de registres de mémoire locale pour mettre en mémoire l'adresse de la mémoire chargée sur le bus de sor#tie en vue de pouvoir l'utiliser comme pointeur de retour d'une interruption. L'invention prévoit également l'utilisation, en vue de leur emplo-i dans une opération d'accès direct à la mémoire (ou vols de cycle) de registres de mémoire locale pour mettre en mémoire des adresses indirectes de la mémoire principale. #L'adresse indirecte est automatiquement incré mentée, à moins d'un blocage par le dispositif d'entrée/sortie ayant la commande, au moyen de l'unité arithmétique et logique lors de sa transmission au bus de sortie comme pointeur temporaire pour écrire dans la mémoire principale les données provenant des moyens d'entrée/sortie et contenues sur le bus d'entrée, ou comme pointeur temporaire pour accéder à des données de la mémoire principale en vue de les charger sur le bus d'entrée, puis par l'intermédiaire de l'unité arithmétique et logique, sur le bus de sortie en vue de leur réception par un dispositif d'entrée/sortie. Selon un autre aspect de l'invention, destine en particulier à être employé lorsque le microprocesseur de l'invention est utilise pour émuler un calculateur différent, des registres d'opérande sont prévus pour mettre en mémoire le code opération de l'instruction. L'unité arithmétique et logique est utilisée pour ajouter le code opération qui est émulé au contenu du registre d'adresse d'instruction, le résultat étant place sur le bus de sortie en tant que pointeur de déplacement d'une table contenue dans la mémoire de commande, cette table fournissant un pointeur immédiat à la séquence de micro-instructions contenue dans la mémoire de commande pour exécuter le code opération qui est émulé. Selon encore un autre aspect de la présente invention, il est prévu un bus commun à appel sélectif de vols de cycle et d'interruption. Des moyens de commande, fonctionnant en réponse à une demande d'interruption autorisée, sont prévus pour provoquer le changement des pointeurs d'adresse de micro-instruction: l'adresse de l'instruction en cours est transférée du registre d'adressage à l'emplacement de la mémoire locale attribué au niveau d'interruption en cours et l'adresse d'instruction correspondant au nouveau niveau d'interruption est transférée du registre de la mémoire locale accédé par le code du nouveau niveau d'interruption au registre d'adressage. Selon encore un autre aspect de l'invention, des moyens sont prévus pour détecter une demande de vols de cycle sur le bus à appel sélectif commun. Une fois que le bus a été libéré des demandes d'interruption, la priorité de vols de cycle est obtenue sur le bus à appel sélectif commun et utilisée pour adresser le registre correspondant de la mémoire locale pour charger dans le registre d'adressage l'adresse indirecte de la mémoire principale. L'adresse indirecte de la mémoire principale peut être incrémentée pour y écrire des données provenant du dispositif d'entrée/sortie ou pour y lire des données destinées à ce dispositif sous la commande du microprocesseur sans nécessiter des informations d'adresse ou de synchronisation du dispositif d'entrée/sortie. D'autres objets, caractéristiques et avantages de la présente invention ressortiront mieux de l'exposé qui suit, fait en référence aux dessins annexés à ce texte, qui représentent un mode de réalisation préféré de celle-ci. La figure 1 représente la manière suivant laquelle les figures 1A, 18 et 1C doivent être disposées. Les figures 1A, 1B, 1C représentent un schéma logique du système de la présente invention. Les figures 2A, 2B, 3A à 3C et 4A à 4C sont des diagrammes des temps illustrant l'exécution d'un jeu d'instructions de base susceptible d'être utilise avec le système de la présente invention. La figure 5 est un schéma logique plus détaillé représentant le canal intégré à priorités d'interruption et de vols de cycle. On décrira maintenant, en se référant aux dessins et plus particulierement aux figures 1A à 1C, l'architecture du système de l'invention. Les quatre unités physiques principales de l'ordinateur représenté sur les figures 1A à 1C sont les suivantes: 1. L'unité de traitement (CPU) 9, qui comprend l'unité arithmé tique et logique 22, un canal (qui comprend le bus d'entrée 10, le bus de sortie 20, le bus d'adresse 21, le bus d'appel sélectif commun 53 et les lignes de commande 15), plusieurs registres de travail et un circuit logique de commande; 2. Les registres de mémoire locale 14 3. La mémoire principale 12 4. La mémoire morte 16 ou mémoire du microprogramme 16. L'unité de traitement 9 peut être réalisée, par exemple, sur une unique microplaquette superintégrée montée conformément à la technologie actuelle dans un assemblage nécessitant moins de 70 broches d'entrée/sortie. Cet assemblage d'unité de traitement peut être monté conformément à la technologie actuelle, sur une carte avec un module de mémoire morte 16, un module de mémoire locale 14 (comportant par exemple 32 registres), deux modules pour les circuits d'attaque. 18 et un oscillateur (représenté par la ligne de sortie 59, figure tic). Une petite partie de la mémoire principale 12 peut être également montée sur cette carte. Cependant, il est prévu que, si l'on utilise la technologie de construction de circuits actuellement disponible, la mémoire principale 12, est montee en grande partie sur une seconde carie. Les données, les instructions et les commandes d'entrée/ sortie sont transférées entre l'unité de traitement-9et les autres unites au moyen de deux bus unidirectionnels, le bus d'entree commun 10 et le bus de sortie commun 20. Le bus d'entrée commun 10 reçoit des données des dispositifs d'entree/sortie (non représentés), de la mémoire principale 12, sur le bus 11, de la mémoire morte 16, sur le#bus 17, et de la mémoire locale 14 sur le bus 13. Les données présentes sur le bus 10 sont chargées dans le registre de programme 30 et, directement, à :'unité arithémtique et logique 22.Il est particulièrement important de noter que les données et les informations présentes sur le bus 1C circulent dans une seule direction par rapport a la microplaquette 9, aucun circuit d'attaque n'étant prévu pour transférer les données à partir de la microplaquette d'unite de traitement 9 sur le bus 10. La mémoire principale 12, la mémoire locale 14 et la mémoire morte 16 comportent des circuits d'attaque appropriés ou ont une. puissance de sortie suffisante pour placer les données sur le bus d'entrée 10. En outre, la mémoire principale 12 a la possibilité de prélever sur l2 bus 10 les donnees plåcees sur le bus 13 par la mémoire locale 14 ou par l'un quelconque des dispositifs d'entrée/sortie.Le bus de sortie 20 présente le contenu-du.registre tampon de sortie 26 à la mémoire morte 16, à la mémoire principale 12, à la mémoire locale 14 et aux dispositifs d'entrée/sortie #(non représentés). Pour la mémoire morte 16 et la mémoire principale 12, le bus de sortie commun 20 remplit le roule d'un bus d'adresse tandis que, pour les registres de la mémoire locale 14 et pour les dispositifs d'entrée/sortie, le bus de sortie 20 est utilisé comme bus de données. Les dispositifs d'entrée/ sortie sont adressés par un groupe de six lignes 21 (LCO) de sortie de la mémoire locale qui, dans ce mode de réalisation, permettent d'adresser jusqu'à 64 registres de la mémoire locale 14 et jusqu'à 63 dispositifs d'entrée/ sortie, au maximum. Comme précédemment mentionné, le. bus d'entrée 10-transmet des micro-instructions ou des données. provenant des dispositifs d'entree/sortie ou des mémoires.L'origine ou la destination des transferts effectués sur le bus d'entrée 10 et sur le- bus de sortie 20 sont choisis par les lignes de commande 15 qui, après amplification par les circuits d'attaque de ligne 18, sont les lignes de commande et d'horloge 19. Ces lignes comprennent, la ligne de sélection de la mémoire locale, la ligne de sélection de la mémoire morte, la ligne de sélection de la mémoire principale, la ligne d'écriture du multiplet le plus significatif et la ligne dtécriture du multiplet le moins significatif. Un dispositif d'entrée/sortie est sélectionné lorsqu'une adresse de dispositif valide est présente alors que la ligne de sélection de la mémoire locale n'est pas active. La validation des transferts de données sur le bus de sortie 20 est synchronisée par les impulsions d'horloge appliquées sur l'une des lignes 15. Des signaux de prélèvement des données en sortie indiquent que le code LCO et le code de sélection sont valides. Le si#gnal de prélèvement des données en entrée est un signal produit en réponse au signal de prélèvement des données en sortie pour valider les transferts de données du bus d'entrée au microprocesseur 9 ou les réponses des dispositifs aux commandes.Ces signaux, en combinaison avec le signal de maintien du signal d'horloge d'entree qui permet aux dispositifs d'entree/sortie de masquer les avances de l'horloge de l'unité de traitement, permettent un fonctionnement totalement asynchrone des opérations d'.entree/sortle. On donnera ci-après une liste des lignes d'interface d'entrée/sortie 19, 20, 21, 10 et 31 avec une brève note concernant leur fonction. Le bus de sortie 20 comporte, dans le présent exemple, 18 lignes pour les données de sortie transmises aux dispositifs d'entrée/sortie et aux registres 14 de la memoire localet pour les adresses de sortie appliquées à la mémoire principale 12 et pour les adresses de sortie appliquées à la mémoire 16. Le bus d'entrée 10 comporte, dans le present exemple, 18 lignes pour les micro-instructions provenant de la mémoire morte 16, pour les données d'entrée provenant des dispositifs d'entrée/sortie et de la mémoire locale 14 et pour les données d'entrée provenant de la mémoire principale et les données de sortie destinées a la mémoire principale. Le bus d'entrée à appel sélectif 53 comporte 7 lignes de vols de cycle en multiplex ou 7 lignes de demande de niveau d'interruption qui seront plus complètement décrites ci-apres. La ligne de sortie à appel sélectif de vols de cycle est l'une des lignes 19 et est utilisée pour demander un appel sélectif de vols de cycle (la ligne est haute) sur le bus d'entrée à appel sélectif 53 à la place des interruptions, en retirant les priorités d'interruption du bus d'entree à appel sélectif 53 et en demandant l'appel des priorités de vols de cycle. Les lignes de sortie de sélection des mémoires comprennent 5 des lignes de commande et d'horloge 19 à savoir la ligne# de sélection de la mémoire morte, la ligne de sélection de la mémoire principale, la ligne de sélection de la mémoire morte, la ligne d'écriture du multiplet le plus significatif et la ligne d'écriture du multiplet le moins significatif. (S'il n'est pas spécifié qu'il s'agit d'une opération d'écriture dans le multiplet le plus significatif ou le moins significatif, ceci indique, implicitement, qu'il #s'agit d'une opération de lecture). La ligne de prelevementdes données en sortie est l'une des lignes 19 qui sert à indiquer que des signaux de code LCO ou de commande sont valides, ce qui est le cas au cours des temps d'horloge 3-4 et 9-14 comme on le décrira plus complètement ci--après. La ligne de prélèvement des données en entrée (non représentée) est une ligne commune utilisée par le dispositif sélectionné pour répondre au signal de prélèvement des données en sortie, Validant les données qu'il a placé sur le bus d'entrée 10 ou répondant à une commande. Une ligne d'entrée d'interruption haute (non représentée) indique qu'un ou plusieurs dispositifs ont une demande d'i-nterruption en instance sur le bus d'entrée à appel sélectif 53 avec les priorités indiquées. La ligne d'entrée de restauration (non représentée) fournit un signal d'entrée de restauration du système ou de restauration de la mise sous tension initiale. La ligne de sortie des signaux d'horloge -est l'une des lignes 19 qui sert à fournir continuellement des signaux# d'horloge validant les données précédentes du registre tampon de sortie 26 sur le bus de sortie 20. Le signal de masquage de multiplet le plus significatif de la mémoire est produit pour n'écrire que le multiplet le moins significatif dans la mémoire principale 12. Le signal de masquage du multiplet le moins significatif est produit par le dispositif pour n récrire que le multiplet le plus significatif dans la mémoire principale 12. Si le dispositif porte à un niveau haut les deux signaux de masquage, ceci signifie implicitement qu'il s'agit d'une opération de lecture dans la mémoire principale. Le signal de sélection des données de la mémoire permet aux données de la mémoire principale 12 d'apparaitre sur le bus d'entrée 10. En masquant le signal de selection des données de la mémoire, un dispositif peut fournir ses données (qui peuvent être une adresse de la mémoire principale) sur le bus d'entrée afin qu'elles soient écrites dans un registre de la mémoire locale (registre d'adressage de vol de cycle). Le signal de commande d'écriture dans la mémoire locale est produit pour effectuer le chaSnage des tables de données dans la mémoire principale ou pour empêcher l'incrémentation de l'adresse de la mémoire locale 14. Les adresses 0-63 des lignes de sortie 21 de la mémoire locale 14 (lignes LCO 21) adressent, en combinaison avec le signal de la ligne de sélection 19 (LSR) de la mémoire locale, les emplacements 0-63 de la mémoire locale 14. Les emplacements 16-23 sont utilisés pour les interruptions et les emplacements 24-31 sont utilisés pour les vols de cycle. Les adresses 1-63 fournies sur les lignes LCO 21, sans le signal de la ligne de sélection 19 de la mémoire locale, adressent les dispositifs d'entrée/sortie, l'adresse O étant réservée pour les fonctions du canal. On décrira maintenant l'unité de traitement 9. Le bus d'entrée commun 10 est connecté à l'unité arithmétique et logique (ALU) 22 et au registre de programme 30. Les signaux de sortie du registre de programme 30 sont appliques sur des lignes 33 à l'unité ALU 22 et à un décodeur d'instruction 62. La partie adresse d'une instruction enregistrée dans le registre 30 est également appliquée sur les lignes 31 au registre de sortie de la mémoire locale (registre LCO) 40 et au registre de décrémentation 38. Les signaux de sortie du registre de décrémentation 38 sont appliqués sur des lignes 39en retour du registre 30, au registre de condition en cours 48 et au registre de compte 50. Les signaux de sortie du registre de compte 50 sont appliqués sur des lignes 51 au registre de décrémentation 38 et au registre LCO 40.Les signaux de sortie du registre de condition en cours 48 sont appliqués sur des lignes 49 au registre de code condition préservé 42. Les signaux de sortie du registre de condition en cours 48 et du registre de compte 50 sont également appliqués sur des lignes 43 à l'unité ALU 22. La circulation des données dans l'unité de traitement 9 passe par une unité ALU de 16 bits et par les registres d'opérande ciaprès: Registre d'accumulateur 34 dont le contenu peut être transféré sur des lignes 35 à l'un ou l'autre des côtés d'entrée de l'unité ALU; Registre d'extension 36 de l'accumulateur dont le contenu peut être transféré sur des lignes 37 à l'un ou l'autre des deux côtés d'entrée de l'unité ALU. Registre de total 24 qui est le registre tampon de sortie de l'unité ALU et est chargé par le bus 23. Le registre du programme 30, comme précédemment note, contient la micro-instruction destinée à être décodée par le décodeur 62 puis exécutée. Le contenu du registre du programme 30 peut également etre transmis à l'unité ALU, sur le bus 33. Le registre d'adresse de micro-instruction 32 peut avoir son contenu transféré à l'unité ALU 22 sur les lignes 29 pour les opérations de modification d'adresse ou pour les opérations de branchement et liaison. Le registre de compte 50 est utilise pour le comptage des décalages et pour l'adressage indirect de la mémoire locale 14. Son contenu peut être transféré à l'unité ALU 22 sur les lignes 43 pour l'exécution de diverses opérations-qui seront décrites ci-après. Le registre tampon de sortie 26 contient les données --présentes sur le bus de sortie 28, qui après avoir été amplifiées par les circuits d'attaque 18, apparaissent sur le bus de sortie commun 20.Des instructions spécifiques qui seront décrites ultérieurement sauvegardent le contenu du registre tampon de sortie 26 dans l'emplacement 0 de la mémoire locale 24, de sorte qu'il peut être ensuite appliqué l'entrée de l'unité ALU -sur le bus d'entrée 10 pour l'exécution de diverses opérations. Les signaux de sortie du registre de total 24 apparaissent sur le bus 25 et sont transmis sous la commande du décodeur d'instruction 62 de façon à charger le registre d'adresse de micro-instruction 32, le registre accumulateur 34, le registre d'extension 36, le registre d'erreur 46, le registre de masque d'interruption 44,. le registre. de compte 50, le registre de condition en cours 48 et le registre tampon de sortie 26. Les signaux de sortie du registre de masque d'interruption 44 sont appliqués sur les lignes 45 et 43 à l'unité ALU.22 et sur la ligne. 45 à la porte d'interruption 52 Les signaux de sortie du registre. d'erreur 46 sont appliqués sur les lignes 47 et 43 à l'unité ALU 22. En outre, les quatre bits les moins significatifs du registre de total 24 peuvent être transférés sur les lignes 27 aux positions binaires les plus significatives du registre d'instruction 32. Les signaux du bus commun 53 à appel sélectif. de. demandes de vols de cycle et d'interruption multiplexées sont appliqués à la porte d'interruption 52 et au codeur de priorité 54,. ce dernier pour les vols de cycle qui ont priorité sur les interruptions. Les signaux de sortie de la porte d'interruption 52 sont appliqués sur les lignes 55 à un registre de niveau d'interruption en cours 56, à un circuit de test d'interruption de niveau supérieur 58 et au registre LCO 40. Le signal de sortie-du circuit de test d'interruption de niveau supérieur 58 apparait. sur la ligne 63 en tant que signal d'imposition d'interruption de niveau supérieur. Les signaux de sortie du registre de niveau d'interruption en cours 56 sont appliqués sur des lignes 57 au circuit 58 de test d'interruption de niveau supérieur et au registre 40 Les signaux d'horloge appliqués sur la ligne 59 par un oscillateur monophasé sont appliques à un générateur tétraphasé 60 dont les signaux de sortie sont appliqués sur des lignes 61 à une horloge 66 et à une horloge auxiliaire 64 dont les signaux de sortie sont utilisés, en combinaison avec ceux du décodeur 62, pour commander le fonctionnement de l'unité de traitement 9, et notamment, pour commander le transfert du contenu des bus aux divers registres d'opérande et pour commander l'utilisation en temps partagé des divers bus et registres. On décrira maintenant de manière plus détaillée, en se référant à la figure 5, le canal de vols de cycle et d'interruption de l'invention. Chaque fois que ceci est possible, les références déjà utilisees pour désigner les éléments de la figure 1 ont été à nouveau utilisées. En se référant à cette figure 5, on donnera, à titre d'exemple, une description plus détaillée des divers circuits de commandes et bascules bistables utilisés pour réaliser le canal intégré de vols de cycle et d'interruption. Comme il apparaftra aux spécialistes de la technique, des descriptions plus détaillées des commandes pourraient être données pour le reste de l'architecture d'ordinateur représentée sur la figure 1. Cependant, de telles descriptions ne sont pas indispensables pour la compréhension de l'invention qui concerne plus spécifiquement l'architecture, et les circuits de commande détaillés sont à la portée de specialistes de la technique et peuvent être réalisés sans expérimentation excessive en partant de la description de l'architecture et des diagrammes des temps qui ont été donnés.Comme représenté, sur la figure 5, les lignes à appel sélectif d'interruption/ vols de cycle 530 à 536 représentent les lignes individuelles du bus commun à appel sélectif 53 de la figure 1, en logique négative. Le registre de masque 44 comporte des lignes de sortie 450 à 456. La bascule bistable 75 d'appel sélectif réservé au vol de cycle comporte une ligne de sortie de restauration 80.Dans la porte d'interruption 52 (non représentée), le signal de la ligne 450 (qui est la ligne du bit 0 du registre de masque 44) fait l'objet d'une opération ET avec le signal de la ligne de restauration 80. de la bascule d'appelsélectif réservé aux vols de cycle et le résultat fait l'objet d'une opération NI avec le signal de la ligne 530 qui représente le signal contenu dans la position binaire 0 du bus à appel sélectif 53. Le résultat apparaft sur la ligne 520. Dlune manière similaire, chacun des bits 1-6 du registre de masque 44 transmis sur les lignes 451 à 456 fait l'objet d'une opération ET avec le signal de Ta.ligne de restauration 80 de la bascule d'appel sélectif réservé aux vols de cycle et le résultat fait l'objet d'une opération NI avec celui des bits 1-6 du bus à appel sélectif 53 transmis sur les lignes 531 à 536 qui lui correspond, les résultats apparaissant sur les lignes 521 à 526. La ligne 520 est raccordée aux circuits NI 86, 94 et 95. La ligne 521 est raccordée aux circuits NI 86, 90 et 95. La ligne 522 est raccordee au circuit NI 86 et au circuit ET 91. La ligne 523 est raccordée aux circuits NI 86 et 90. La ligne 524 est raccordée aux circuits ET 87 et 92. La ligne 525 est raccordée au circuit ET 88 et au circuit NI 90.La ligne 526 est raccordée au circuit ET 93. Le signal de sortie du circuit NI 86 apparaît sur la ligne de priorité -4 et est appliqué aux portes ET 87, 88 et 92, au circuit de code d'interruption en cours 56 (position 4), au circuit de test de la priorité la plus élevée 58 et à la porte ET 82. Le signal de sortie du circuit NI 95 apparaSt sur la ligne de priorité -2, 542, et est appliqué à la porte ET 91, au circuit de code de priorité en cours 56 (position 2), au circuit comparateur de test de la priorité la plus élevée 58 et à la porte ET 82. Le signal de sortie du circuit NI 90 est appliqué à la porte ET 93. Dans le circuit NI 95, les signaux de sortie des portes ET 87 et 88 font l'objet d'une opération NI avec les signaux des lignes 520 et 521.Dans le circuit NI 94, les signaux de sortie des portes ET 91 à 93 font ltobjet d'une opération NI avec le signal de la ligne 520 et le résultat apparaît sur la ligne 541 et est appliqué au circuit de code d'interruption en cours 56 (position 1), au circuit comparateur de test de la priorité la plus élevée 58 et à la porte# ET 82. Le signal de demande de vols de cycle inverse transmis sur la ligne 68 est inversé et applique l'entrée d'enclenchement de la bascule 75 d'appel sélectif réservé au vols de cycle. Le signal de la sortie directe de la bascule 75 est appliqué sur Ta ligne 77 pour enclencher la bascule bistable 76 d'accuse réception de vol de cycle. Le signal de restauration de la bascule 75 est appliqué sur la ligne 80 aux portes ET de la porte 52 pour les bloquer et à la bascule bistable 84 de commutation des niveaux d'interruption pour la déconditionner, le signal de sortie de cette bascule apparaissant sur la ligne 79 et étant utilisé pour commander la ligne de chargement du nouveau niveau d'interruption 72 et pour charger la ligne de niveau d'interruption en cours 73.Le signal de demande d'interruption inversé, transmis sur la ligne 70 est appliqué à la bascule bistable 76 d'accusé réception de vol de cycle et après inversion, à la bascule 84 de commutation des niveaux d'interruption. Le signal, en logique positive, de la ligne d'autorisation d'interruption 71 est appliqué à la bascule 84. Le signal de demande de vol de cycle inverse de la ligne 68 est également appliqué à la bascule 76 d'accusé réception de vol de cycle. Le s#ignal de la sortie directe de la bascule 76 d'accusé réception de vol de cycle est appliqué sur la ligne 55. Le signal de la ligne 55 est également appliqué à une porte ET 89 qui reçoit, sur son autre entrée, un signal d'horloge appliqué sur une ligne 85.Le signal de sortie de la porte ET 89 est appliqué par la ligne 78 à la porte ET 82 et aux lignes des bits d'entrées les plus significatifs 834, 835, pour transmettre sur ces lignes un code prédéterminé. Les lignes 310 à 314 représentent les positions binaires les moins significatives de la partie adresse du registre de programme 30, représentées par les lignes 31 sur les figures 1A à 1C. Les signaux des lignes 310 à 314 sont transmis par des portes ET 83 dans lesquelles chacun est individuellement l'objet d'une opération ET avec le signal de commande de mise en place de micro-instruction transmis sur la ligne 74, les résultats de ces opérations étant respectivement appliqués sur les lignes de sortie 831 à 835 et ensuite au registre LCO 40 d'adresse de sortie de la mémoire locale. Les signaux de sortie de la porte ET 82 sont l'objet d'une opération OU, par une simple connexion des lignes respectives, avec ceux des lignes 831 à 833 qui constituent les positions binaires les moins significatives des entrées du registre LCO 40. En outre, les signaux des lignes de sortie de la porte ET 81 sont également l'objet d'une opération OU, par une simple connexion des lignes respectives avec les signaux des lignes 381 à 383 constituant les positions binaires les moins significatives des entrées du registre LCO 40. Dans la porte ET 81, les signaux de sortie du registre 56 du code d'interruption en cours, présents sur les lignes 561, 562 et 564 sont individuellement l'objet d'une opération ET avec le signal de mise en place du niveau d'interruption en cours transmis sur la ligne 73.Les signaux de sortie du registre 56 sont également appliqués au circuit comparateur de test de priorité la plus élevée 58. Le signal de mise en place du niveau d'interruption en cours de la ligne 73 qui provoque le transfert du contenu du registre 56 du code d'interruption en cours aux trois lignes d'entrée les moins significatives du registre LCD 40 fixe également le contenu des lignes d'entrée les plus significatives 834 et 835 du registre LCO 40, de la même manière que le signal de la ligne 78, mais à un code différent, de façon à placer sur les lignes de sortie 41 du registre 40 l'adresse d'un emplacement différent de mémoire locale 14. Les vols de cycle ont priorité sur les interruptions et une demande de vols de cycle transmise sur la ligne 68 annule immédiatement l'appel sélectif pour interruption effectue normalement de manière ininterrompue, en enclenchant la bascule d'appel sélectif réservé aux vols de cycle demandant a tous les dispositifs de placer leurs priorités de vols de cycle sur les lignes 530 à 536 du bus d'appel sélectif 53 et de retirer leurs demandes d'interruption.La disparition du signal de la ligne 70 de demande d'interruption informe le microprocesseur 9 que tous les dispositifs ont retiré leurs bits de priorité d'interruption du bus d'appel sélectif 53 et la disparition du signal de la ligne 68 de demande de vols de cycle en combinaison avec celle du signal de la bascule 75 d'appel sélectif réservé aux vols de cycle, assure que les signaux des lignes de sortie 541, 542 et 544 du circuit de priorité 54 peuvent être placés dans le registre d'adresse LCO 40 avec les bits modificateurs de vol de cycle sur la ligne 78 dans les positions binaires les.- plus significatives 834 et 835, et provoque la transmission par la bascule 76 du signal d'accusé réception de vols de cycle aux dispositifs d'entrée/sortie. Le registre de vols de cycle de la mémoire locale 14 qui est adressé par les lignes 41 fournit l'adresse indirecte de la mémoire principale sur le bus 13, adresse qui peut être également.incrémentée au moyen de l'unité ALU 22, soit pour extraire les données de la mémoire 12 soit pour charger dans la mémoire des données provenant du dispositif. Le niveau de priorité de vols de #cycle le plus bas ne nécessite aucun-bit de priorité et sa partie d'adresse de dispositif est. mise à 0 pour permettre toutes les adresses binaires du dispositif.Au début du cycle de vol de cycle, la bascule 75 d'appel sélectif réservé aux vols de cycle est restaurée pour revenir à l'appel sélectif pour interruption ininterrompu ou à l'exécution sêquentielle de micro-instructions#. Alternativement, la bascule 75 peut être à nouveau enclenchée étant donné qu'elle doit être tout d'abord restaurez pour permettre aux dispositifs de replacer le signal de demande de vols de cycle sur la ligne 68 si des vols de cycle séquentiels dans le mode continu sont necessaires. Le registre 44 de masque d'interruption est toujours déconditionné lorsque la bascule 75 est enclenchée. Les demandes de vols de. cycle de dispositif asynchrones peuvent être commandées. par la transmission de signaux. d'horloge du microprocesseur ou en verrouillant le bus d'appel. sélectif de façon que les circuits de priorité puissent être stabilises. L'architecture d'ensemble de l'ordinateur de l'invention ayant été décrite, on donnera maintenant une description plus détaillée des carac teristiques des divers éléments, de leur fonctionnement, et de leur interaction. Organisation des bus unidirectionnels d'entrée/sortie La connexion interne en boucle fermée par l'intermédiaire de l'unité arithmétique et logique des bus d'entrée et de sortie unidirectionnels externes réalisée par la présente invention permet aux fonctions de traitement interne et de modification des données d'entrée/sortie externes, aux fonctions de commutation des niveaux d'interruption et aux fonctions d'incrémentation d'adresse de vols de cycle servant à exécuter les interruptions et les vols de cycle à plusieurs niveaux, de se partager l'unité ALU existante et le chemin d'écoulement des données avec un nombre minimal de circuits logiques de commande et sans l'emploi de registres intermédiaires supplémentaires. Ce résultat est obtenu en utilisant un bus unidirectionnel qui entre et sort de la microplaquette 9 d'unité de traitement. Les données et les adresses sont mélangées sur le même bus de sortie. Le bus d'entrée commun 10 est le seul bus d'entrée de données raccordé à la microplaquette d'unité de traitement 9. La mémoire principale 12 est connectée à ce bus de même que la mémoire locale 14. Tout en conservant le fonctionnement unidirectionnel du bus d'entrée 10 par rapport à l'unité de traitement 9, la mémoire principale 12 utilise le bus d'entrée 10 pour lire ou écrire des données pendant que le bus de sortie 20 contient l'adresse de la mémoire principale 12. Le bus d'entree 10 sert également d'entrée externe appliquée à un des cotés d'entrée de l'unité ALU 22 dont les données de-sortie sont conservées dans le registre 24 de maintien provisoire-du total. Le registre 24 comporte un bus de sortie commun 25 qui est raccorde à tous les registres contenus l'intérieur de la microplaquette d'unité de traitement 9 pour former le bus de sertie commun 20 qui, dans le présent exemple, est un bus de deux multiplets de large.Le bus de sortie 20 fournit des données aux registres de la mémoire locale 14 et'également à un certain nombre de dispositifs d'entree/sortie (non représentés). Sur la base d'une utilisation en temps partage, le bus 20 est également te bus d'adresse de la mémoire morte 16 (ou de toute autre memoire de commande à lecture/écriture). Le bus 20 est également le bus d'adresse pour la mémoire principale 12. L'invention fournit ainsi une architecture de bus unidirectionnels en boucle fermée qui est de nature hybride contenant un mélange de données et d'adresses sur le bus de sortie 20 et de données et d'instructions sur le bus d'entrée 10. Le probleme pose par l'absence d'une voie directe de données entre la microplaquette de processeur et la mémoire principale 12 est résolu par la mise en place facultative par le processeur, d'images de résultat dans la mémoire locale 14 et par l'utilisation du bus d'entrée unidirectionnel en sens inverse entre la mémoire locale 14 et la mémoire principale 12. Ainsi, le bus d'entrée 10 est maintenu unidirectionnel par rapport à la micropiaquette de processeur 9 en permettant au bus de sortie 20, à chaque micro-instruction de modification de données interne, de mettre facultativement le résultat dans le registre sélectionné de la mémoire locale 14 sans instruction ni temps supplémentaire. Cette innovation permet le fonctionnement en pipeline et l'exécution concurrente d'opérations sur les deux bus, permettant au registre 26 du bus de sortie d'accéder à l'instruction suivante de la mémoire morte 16 tandis que l'instruction précédente est en cours d'exécution avec les données présentes sur le bus d'entrée 10 dans un mode de chevauchement. D'une manière similaire, le registre 26 est utilise pour accéder directement à la mémoire principale 12.Entre ces deux modes d'adressage, un étroit créneau permet de transférer les données à la mémoire locale 14 ou aux dispositifs d'entrée/sortie dont l'adressage s'effectue par un minibus d'adresse à six bits 21 qui signale également les accusés réception de vols de cycle respectifs ou change les niveaux d'interruption.En réservant l'un des 64 registres de la mémoire locale comme registre image du bus de sortie, la circulation des données à l'intérieur de la microplaquette du processeur peut être organisée autour d'une unité-arithmétique et logique (ALU) commune, le registre 24 alimentant tous les autres registres d'adresse et de données internes et les dispositifs externes par l'intermédiaire du registre 26 dont le contenu est également préservé en vue de pouvoir être utilisé par le programme en tant que quatrième opérande contenu dans le registre tampon d'image de la mémoire locale 14. De cette manière, tout dispositif d'entrée/sortie extérieur peut partager 11 unité ALU 22 avec les opérations de traitement interne. Les bus unidirectionnels externes en boucle fermée permettent également une transparence interne totale de la microplaquette de processeur pour la commutation du niveau d'interruption et pour l'accès direct à la mémoire (vol de cycle) avec une incrémentation automatique de l'adresse de la mémoire par l'intermédiaire de l'unité ALU et du chemin d'écoulement des données commun. L'architecture des bus en boucle fermée permet le fonctionnement en pipeline et le chevauchement de l'exécution des instructions dont les exemples seront décrits ci-après. Tout d'abord, le fonctionnement en pipeline se produit chaque fois que des instructions en provenance de la mémoire morte sont présentes sur le bus d'entrée 10, (ce qui est habituellement le cas à la fin et au début de chaque cycle de micro-instruction), lorsque simultanément le bus de sortie commun 20 commence à transmettre des données à un dispositif d'entrée/sortie. Ensuite, une opération en chevauchement se produit lorsque des données sont présentes sur le bus d'entrée 10 en provenance d'un dispositif d'entrée/sortie ou de la mémoire locale 14 et sont traitées intérieurement par l'unité ALU 22. Au même moment, le bus de sortie 20 contient l'adresse de la mémoire morte 16 de sorte que l'instruction suivante de la séquence est adressée. Un autre exemple de chevauchement se produit lorsque les données résultant de l'exécution d'une instruction précédente n'ont pas encore été mises en mémoire dans la mémoire locale 14 et que l'exécution d'une nouvelle instruction a déjà commence. La mémoire locale 14 est chargée au cours du temps d'horloge 1 du nouveau cycle d'instruction tandis que l'exécution de la novuelle instruction a commence au temps d'horloge 0. Les six lignes du registre de sortie 40 de la mémoire locale (LCO) forment un bus d'adresse auxiliaire 21, 41 qui est utilisé pour adresser 64 demi-mots de la mémoire locale 14 ou jusqu'à 63 dispositifs d'entrée/sortie raccordes au bus de sortie commun 20 selon le type d'instruction qui est exécutée. La combinaison de ce minibus d'adresse auxiliaire et des bus d'entrée/sortie 10, 20 en boucle fermée permet aux opérations d'être exécutées en un seul cycle. Un dispositif d'entrée/sortie peut placer des données sur le bus d'entrée 10 avoir ces données traitées par l'unité ALU 22, recevoir les données modifiées logiquement ou arithmétiquement sur le bus de sortie 20 au cours de la même instruction pendant laquelle le dispositif est adresse par le minibus 21.Ceci constitue un avantage par raport aux canaux de la technique antérieure qui nécessitent trois instructions pour effectuer même un simple transfert de données d'entrée/ sortie sans une opération de l'unité ALU de la manière suivante: en premier lieu, le processeur doit transmettre une adresse en sortie sur l'un des bus d'entrée/sortie commun. Ensuite, le dispositif doit répondre par l'intermédiaire d'une interface de demande/ réponse pour signaler qu'il a reconnu sa propre adresse. Une seconde instruction est nécessaire pour que le processeur transmette une spécification de commande à laquelle répond le dispositif. Après achèvement de ces opérations, le processeur doit exécuter une troisième instruction d'écriture ou de lecture selon le sens de circulation des données. Le bus de sortie commun 20 est multiplexé de sorte que, pour chaque instruction qui est exécutée, un fonctionnement en chevauchement se produit. Le chevauchement signifie que l'instruction suivante de la mémoire de commande 16 est accédée pendant que, simultanément, le processeur exécute intérieurement l'instruction en cours. Ce résultat est obtenu au moyen de bus communs en attribuant, par exemple 5 temps d'horloge du cycle d'instruction comportant 8 temps d'horloge, pour-adresser la mémoire morte 16 et les 3 autres temps restants du cycle d'instruction pour transmettre des données soit à la mémoire locale-14 soit aux dispositifs d'entree/sortie. Mémoire principale 12 La mémoire principale 12 est une mémoire adressable et susceptible d'être mise à jour pour l'emmagasinage des données à la fois par le microprocesseur et par les dispositifs d'entree/sortie en vue de leur lecture ultérieure. Les données sont transférées à la fois dans le mode de lecture et dans le mode d'écriture sur le bus 11 raccordé au bus d'entrée 10. Les lignes 19 fournissent les signaux d'horloge et de commande et l'adresse est fournie par le bus de sortie 20. Chaque fois qu'un accès est effectué à la mémoire-principale 12, un cycle supplémentaire est ajouté pour faire de l'instruction une instruction à deux cycles. Comme on le décrira ci-après, au cours du premier cycle, une incrémentation, une dêcrémentation ou autre modification d'adresse est effectuée sur le pointeur d'adresse de la mêmoire#principale.12 obtenu à partir de la mémoire locale 14 ou du registre B 36. (Ceci donne la possibilité d'un fonctionnement avec des piles même si un pointeur de pile n'est pas utilisé étant donne qu'un système d'incrémentation/décrémen- tation automatique pour l'adressage a la même. capacite que des pointeurs d'empilage).L'opération de lecture ou d'écriture dans la mémoire -12 est effectuée au cours du second cycle après que le pointeur d'adresse a été mis à jour pour obtenir la nouvelle adresse effective. L'adresse est conservée dans le registre tampon de sortie 26 pendant la totalité du second cycle, appelé ci-après cycle de la mémoire principale, fournissant 8 temps d'horloge pour adresser la mémoire principale 12. La mémoire principale 12 est utilisee en pipeline de la manière suivante. Au cours d'une operation de lecture dans la mémoire principale 12, les données sont obrenues de la mémoire principale sur le bus d'entree 10 et chargées dans l'un des registres internes de microprocesseur 9. A la fin de l'opération de lecture, au temps d'horloge0, lorsque l'instruction suivante est sur le point-de commencer, les données qui ont été extraites de la mémoire principale 12 et placées sur le bus 10 sont transmises par l'unité ALU 22 et chargées dans le registre de total 24 à partir duquel elles sont transférées au registre tampon de sortie 26. Le chargement de ces données dans le registre 26 détruit l'adresse en cours de la mémoire principale. Mémoire morte 16 La mémoire morte 16, encore appelée mémoire de commande, met en mémoire les instructions qui constituent le programme de commande du micro-ordinateur. Les instructions sont chargées sur le bus d'entrée 10, mises en mémoire dans le registre du programme 30 et décodées par le décodeur 62 -- qui, en combinaison avec les circuits d'horloge, commande les portes, les registres et les circuits d'exécution pour exécuter les diverses instructions d'une manière qui sera expliquée plus en détail ci-après en ce référant aux figures 2 à 4. La mémoire morte 16 est utilisée dans le cadre d'un système a fonctionnement en pipeline. Ainsi, au temps d'horloge 0, qui est habituellement le début de chaque micro-instruction, l'instruction est chargée dans le registre du programme 30 à partir du bus d'entrée 10. Simultanément, au temps d'horloge 0, les données sont chargées dans le registre tampon de sortie 26. Ainsi, les données de la mémoire 16 adressées par le bus de sortie 20 sont prélevées du bus d'entrée 10 tandis que, simultanément, l'adresse présente sur le bus de sortie 20 est détruite. Registres de la mémoire locale 14 La mémoire locale 14 comprend une série de registres adressables et modifiables. Les données écrites dans la mémoire locale 14 proviennent du bus de sortie 20 et les données lues dans la mémoire locale 14 a l'adresse indiquée par les lignes LCO 21 sont placées sur le bus d'entrée 10. Les données placées sur le bus d'entrée 10 peuvent être destinées à la mémoire principale 12 ou à la microplaquette d'unité de traitement 9. L'emplacement O de la mémoire locale 14 est réservé pour sauvegarder les données du registre tampon 26, dans des conditions qui seront décrites ci-après. Unité ari-thmêtique et logique ALU 22 L'unité ALU 22 est partagée sur la base d'un multiplexage temporel entre le traitement des données, l'incrémentation de# l'adresse de microinstruction, le branchement avec. déplacement, le chaînage des séquences d'instructions, l'adressage de la mémoire principale, la modification d'adresse, la lecture ou la mise en mémoire de données, le traitement des interruptions imbriquées avec les vols de cycle. Ce résultat est obtenu en intégrant le registre d'adresse 32 au chemin de circulation des données de l'unité ALU 22 et grâce à l'emploi de la mémoire locale 14. Le registre d'adresse 32 (un registre simple à maintien de polarité sans incrémentation)#utilise l'unité ALU 22 en temps partagé lors de demi-cycles alternes pour incrémenter ou modifier d'une autre manière l'adresse de l'instruction de la mémoire morte16* Les opérations de branchement et liaison-avec deplacement positif -ou -négatif sont facilitées par cette voie de donnée raccordée à l'-unité ALU 22.Etant donné que les données de#sortie de l'unité ALU 22 sont transmises au bus de sortie 20, des micro-adresses peuvent être mises en mémoire dans la mémoire 14 comme pointeurs de retour d'interruption. Pour la même raison, étant donné que les données de sortie-de la mémoire locale 14 sont transmies au bus d'entrée 10 et, par l'intermédiaire de Irunité ALU 22, au registre d'adresse 3Z; de nouveaux pointeurs de programmes d'interruption peuvent être chargés ou des# pointeurs de programme-précédemment interrompus -peuvent être remis en place, permettant ainsi l'inclusion d'une structure d'interruptions imbriquées et extensible avec priorité dans le chemin de circulation des données de l'unité ALU 22.Un emplacement de la mémoire locale 14 (emplacement ou registre 0) est réservé pour sauvegarder et restaurer le contenu du registre 26 du bus de sortie. Le microprocesseur 9 extrait les données de-la mémoire principale 12 par l'intermédiaire du bus d'entrée 10 et de l'unite ALU 22 pour les charger dans ses registres d'operande internes pendant que le registre 26 du bus de sortie contient adresse de la mémoire principale 12 fournie par le registre-choisi de la mémoire-locale 14 ou par un registre d'opérande (tel que le registre d'extension 36) pour l'exécution simultanée d'une opération d'accès et d'une operation de mise à jour.Les données du microprocesseur 9 qui doivent être mises en mémoire dans la mémoire principale 12, par suite de ltexecution d'une micro-instruction precedente, sont tout d'abord transférées à un registre choisi de la mémoire locale 14, par l'intermédiaire du registre 26 du bus de sortie. La microinstruction d'écriture dans la mémoire principale transmet les données du registre de la mémoire locale 14 au bus de sortie 10- afin qu'elles soient transmises à la mémoire principale 12. En outre, certains emplacements de la memoire locale 14 peuvent également servir à- contenir des adresses indirectes de la mémoire principale pour les opérations de vols de cycle par les dispositifs d'entrée/sortie, un registre de la mémoire locale étant attribué à chaque niveau de priorité. Les-dispositifs d'entrée/sortie comportent leur propre compteur de longueur de données. Les contenus des registres d'adresse de la mémoire principale faisant partie de la mémoire locale 14 sont automatiquement incrémentés par l'unite ALU 22 au cours de leur transfert au bus de sortie en vue d'adresser la mémoire principale 12 pour écrire les données présentes sur le bus d'entrée 10 ou pour lire les données de la mémoire principa#le 12 qui sont transférées par le bus d'entrée 10 et traversent l'unité ALU 22 pour être ensuite mises à la disposition des dispositifs d'entrée/sortie sur le bus de sortie 20. Les dispositifs d'entrée/sortie reçoivent les données du microprocesseur 9 sur le bus de sortie 20 et transmettent des données au microprocesseur 9 sur le bus d'entrée 10. L'unité ALU 22 est utilisée en temps partage pour décoder les instructions d'émulation. Le code opération de l'instruction qui est émulée est ajouté par l'unite ALU 22 à l'adresse d'instruction en cours contenue dans le registre d'adresse 32 pour obtenir un pointeur de déplacement à une table contenue dans la mémoire morte 16 juste audessous de l'instruction en cours d'exécution. De cette manière, un branchement à 256 voies est obtenu aux instructions de la mémoire 16 pour exécuter l'instruction d'émulation. Grâce à l'utilisation partagée du registre d'adresse d'instruction 32, la commutation d'interruption est effectuee au moyen du même chemin de données qui existe pour l'exécution des instructions de base. La valeur d'adresse d'instruction qui est contenue dans le registre d'adresse 32 est mise en mémoire dans un registre de la mémoire locale 14 par l'intermédiaire de l'unité ALU 22, du registre de total 24, du bus interne 25, du registre tampon de sortie 26 et du bus de sortie 20. Ainsi, lorsqu'unie interruption se produit, le pointeur indiquant l'instruction suivante, qui aurait été exécutée avec le niveau de priorité du programme en cours, est conserve dans la mémoire locale 14. Ensuite, le plus haut niveau qui doit être exécuté est déterminé en utilisant le code de priorité qui est développé dans le codeur de priorité 54, pour engendrer une adresse qui est chargée dans le registre LCO 40. Le registre LC0 40 adresse un emplacement de la mémoire locale qui contient le pointeur indiquant la séquence d'instructions de la mémoire morte 16 pour ce niveau de priorité. Ce pointeur est lu dans la mémoire locale et transmis sur le bus d'entrée commun 10 à la microplaquette de microordinateur 9.Il traverse ensuite l'unité ALU 22 pour être charge dans le registre 24 avant d'être enregistré dans le registre d'adresse 32 et dans le registre tampon de sortie 26 pour adresser, dans la mémoire morte 16, la séquence d'instructions pour le niveau d'interruption qui doit être exécuté. Lorsque l'interruption a été servie, le pointeur de la séquence d'instructions d'interruption en cours est mis en mémoire dans la mémoire locale 14, et le pointeur d'adresse pour le programme interrompu est extrait de cette mémoire. Registre du programme (P) Le registre du programme 30 est un registre intermédiaire contenant l'instruction en cours et il contient le code opération de l'instruction qui est en cours d'èxécution par la microplaquette. de micro-ordinateur 9. La zone de compte ou adresse des instructions mises en mémoire dans le registre du programme 30 peut être transmise directement au registre de décrémentation 38 et au registre#. LC0 40. Registre du total (T) Le registre de total 24 est charge avec les données de sortie de l'unité ALU 22 et charge le bus 25 au moins deux fois au cours de chaque cycle d'exécution d'instruction -- une première fois avec l'adresse de l'instruction suivante à exécuter et une autre fois avec les résultats de l'unité ALU à la suite de ltexecution de la fonction spécifiée par l'instruction. Etant donné que les données provenant de l'unité ALU 22 sont temporairement conservées dans le registre de total puis mises en mémoire temporairement dans le registre de sortie 26, une fonction peut dure exécutée sur le bus d'entrée 10 tandis que, simultanement, une autre fonction est terminée sur le bus de sortie 20.Ainsi, cette mise en mémoire tampon à deux étages dans la boucle permet l'exécution d'operations en chevauchement et un fonctionnement en pipeline Registre d'adresse d'instruction (U) Le registre d'adresse d'instruction 32 est modifié au cours de l'exécution de chaque instruction-par l'unité ALU 22 pour produire 22.pour,produîre l'adresse dans la mémoire morte 16 de l'instructi~n-suivante à exécuter. Registre accumulateur et registre d'extension ( Les deux registres de travail sont le registre accumulateur 34 et le registre d'extension 36. Dans le présent exemple, les deux registres contiennent chacun 16 bits donnant la capacité d'utiliser 32 bits pour les instructions utilisant un decalage telles qu'un décalage arithmétique, un décalage logique a gauche ou a droite, un décalage à gauche et comptage ou un décalage circulaire à gauche ou à droite. Ces registres ainsi que le registre de compte 50 et le registre de sortie 26 sont les registres internes et sont directement adressables par les micro-instructions pour exécuter des calculs arithmétiques et logiques internes. Ils peuvent#être également modifiés avec l'un des registres externes de la mémoire locale 14 ou vice-versa, le résultat étant mis en mémoire dans l'un des-registres internes-ou dans un registre de la mémoire locale 14. Registre tampon de sortie (M) Le registre tampon de sortie 26 rempl-it une fonction double. Du fait qu'il est un registre d'opérande de l'unité ALU 22, il contient les données que le microprogramme lui transmet. En outre, une interruption qui impose le transfert de pointeurs d'adresse ou un accès quelconque par vol de cycle ou accès direct à la mémoire (DMA) doit permettre le transfert à la fois de l'adresse et des données par l'intermédiaire du registre tampon de sortie 26.Pour que le registre tampon 26 ne perde pas les données qui y sont placees par le microprogramme, l'emplacement O de la mémoire locale 14 est réservé pour contenir une image du registre tampon de sortie 26 chaque fois que le microprocesseur change les instructions, les adresses et les données que ce soit sous la commande d'une interruption ou au cours diune opération de vols de cycle. Ensuite, la valeur du registre tampon 26 mise en mémoire à l'emplacement 0 de la mémoire locale 14 en tant que valeur d'opérande de l'unité ALU 22 peut être rappelée. De cette manière, aucun double de sécurité du registre tampon 26 n'est nécessaire sur la microplaquette du micro-ordinateur 9. Circuits amplificateurs d'attaque Lorsque le bus 38 quitte la microplaquette 9, il se raccorde à des circuits d'attaque ou d'amplification 18 dont la sortie forme le bus 20. Dans une microplaquette superintégrée, chaque circuit d'attaque ne peut commander qu'une seule charge. Par conséquent, étant donné que le bus de sortie 20 est un bus commun raccordé à un certain nombre d'unités (ou charge) ses signaux doivent être reamplifies. (Lors de la réalisation de cette réamplification, un accroissement du nombre des lignes de canal utilisées est effectué en codant les lignes existantes comme étant à haut niveau ou à bas niveau au cours des différents temps d'horloge de chaque cycle de micro-instructions qui comporte 8 temps d'horloge). Registre de décrémentation Le registre de décrémentation 38 est utilise pour effectuer un comptage dans toutes les instructions de décalage, de multiplication et de division et dans les instructions de décrémentation, de test et de branchement. Le registre de décrémentation 38 reçoit des données d'entrée du registre du programme 30 chaque fois qu'une operation-de décalage nécessite un décalage direct de 1 à 32 positions et il place la valeur décrémentée dans le registre du programme 30. Dans les décalages indirects, dans lesquels le contenu du registre de compte 50 devient la valeur de compte de décalage, la même décrémentation d'un bit est utilisée que dans les décalages directs et le registre de décrémentation 38 contient la valeur décrémentée avant qu'elle soit retournée au registre de compte 50. Etant donné que l'opération de décalage maximale qui est effectuée dans ce mode de réalisation est de 32 positions, un registre de décrémentation 38 de 5 bits est suffisant. Cependant, pour effectuer une opération de longueur de zone, le registre #de compte 50-est#galement utilisé comme compte de longueur de zone Pour cette opération, il nécessite une fonction de décrémentation de 8 bits au total Ce résultat est obtenu en utilisant deux cycles du registre de decrementation de 5 bits, en prenant tout d'abord un caractère de#4-bits du registre de compte 50, en dêcrémentant et en mettant le report en-mémoire-dans- la Sème position la plus significative. Le report mis en-mémoire, s'il y en a un, avec le caractère le plus significatif de 4 bits du registre de compte est decrémente pour former la valeur décrêmentée de 8 bits au total en vue de son rechargement dans le registr#e de compte 50. Registre (LC0) de sortie de la mémoire locale Le registre LCO 40 adresse le dispositif d'entree/sortie ou l'empla- cement de la mémoire locale 14 dans lequel ou partir duquel les données doivent être transférées. Registre deconditions en cours Les quatre bits les plus significatifs du registre de conditions en cours 48 contiennent les quatre codes conditions et les quatre bits les moins significatifs contiennent quatre indicateurs programmables; ces bits forment le multiplet de gauche non connecté du registre de compte 50. A chaque operation arithmetique, les codes conditions sont mis pour les opérations ulterieures, liées par les zones. Les quatre conditions sont: report binaire, dépassement de capacité en complement deux, moins en complément-à deux et l'indicateur non-nul# qui est cumulatif. L'indicateur non-nul une fois mis-dans une longueur de zone quelconque reste mis jusqu'à ce qu'il soit changé par une micro-instruction. Registre de compte Le registre secondaire d'opérande de l'unité ALU est le registre de compte 50. En outre, il peut servir de compteur de décalage. Le compte de décalage initialement mis en mémoire dans le registre de compte 50 est décrémenté pour chaque décalage du registre accumulateur 34 ou du registre d'-extension 36 individuellement, ou des deux, lorsqu'ils sont connectes ensemble pour une opération à double précision. Dans une instruction de décalage à gauche et comptage, des que le bit le plus significatif est trouvé, le décalage est terminé et la valeur restant dans le registre de compte 5Q indique jusqu'ou le décalage a progressé. Par conséquent, dans de nombreuses opérations, cette valeur devient un pointeur d'adresse indirect de la mémoire morte 16 ou de la mémoire locale 14. Ainsi, le registre de compte 50 peut être chargé par le bus interne 25 et peut être modifié par l'intermédiaire de l'unité ALU 22, le résultat étant chargé dans le registre LCO 40 pour adresser la mémoire locale ou les dispositifs d'entreelsortie sur le bus 21. Pour indexer les calculs d'adresse et pour calculer les adresses effectives, le contenu du registre de compte 50 est utilise comme deplacement positif ou négatif qui est combiné avec les données par l'unité ALU 22. Le résultat est mis en mémoire dans la mémoire locale ou dans l'un quelconque des registres internes de la microplaquette 9. Registres de code condition préservé et de code condition en cours Les données de sortie du registre de condition en cours 48 sont sélectivement mises en mémoire intermédiaire dans le registre de code condition préservé 42. Les codes condition de base mis à la suite d'opérations arithmétiques sont: dépassement de capacité, report-retenue, non-nul cumulatif, moins. Les codes condition en cours reflètent le résultat de l'exécution de la micro-instruction arithmétique la plus récente. Tous les bits les plus significatifs d'un décalage à gauche sont décalés dans l'indicateur de report en cours. Lors d'un décalage à gauche et comptage, le bit le plus significatif peut mettre l'indicateur de report.Les instructions de chargement, stockage, mouvement, d'opérations logiques, d'incrémentation, de décrémentation de saut et de branchement ne changent pas les codes condition. Les codes contenus dans les registres 42 et 48 peuvent être effacés séparément et peuvent être individuellement vérifiés par des instructions de saut. En plus de ces codes condition, il existe quatre bits indicateurs commandes par le programme qui, en combinaison avec le code condition en cours forment le registre de condition 48. Lorsqu'une micro-instruction est émulée, le code de micro-niveau en cours correct est transféré au registre de code condition préservé 42 pour sauvegarder le code condition du micro-niveau du langage qui est émulé au micro-niveau. Registre d'interruption Le registre de masque d'interruption 44 contient letat du masque en cours des niveaux d'interruption permis. Le contenu du registre d'interruption 44 peut être également modifié par l'intermédiaire de l'unité ALU 22, son contenu mis en mémoire dans la mémoire locale 14 ou rechargé à partir de cette mémoire. Registre d'erreur Les bits les moins significatifs du registre de masque 44 constituent le registre d'erreur d'un multiplet 46 qui contrôle et consigne les erreurs. Des exemples d'erreurs machine qui peuvent être enregistrées sont: une erreur de parité sur une instruction qui est extraite de la mémoire morte 16; une erreur de données provenant de la mémoire locale; une erreur de parité de la mémoire principale-12 détectée par un contrôle de parité sur le bus d'entrée 10; une erreur de parité sur les données qui sont reçues de l'un quelconque des dispositifs d'entrée/sortie; une condition d'arrêt du canal, dans le cas oO un dispositif d '-entrée/sorti e ne répond pas à son identification et ne permet pas au microprocesseur de passer à l'exécution de la micro-instruction suivante, ou des erreurs de dépassement de délai d'attente, telles que celle qui se produit lorsqutune instruction d'entree/sortie est transmise à un dispositif d'entrée/sortie qui n'existe pas et que l'adresse n'est par conséquent pas détectable. Ces erreurs peuvent être enregistrées dans le registre d'erreur 46 et modifiées, sauvegardées, vérifiées ou mises en mémoire dans la mémoire locale 14.Lorsque# l1une-quelco-nqùe de ces erreurs est automatiquement enregistrée, elle provoque l'exécution par le plus haut niveau d'interruption (niveau 7) du micro-ordinateur d'une#séquence d'ins- tructions qui peut Soit recommencer l'opération soit terminer la fonction en cours et transmettre un signal au pupitre de l'opérateur. Générateur tétraphasé, et horloges 60, 64, 66 Un oscillateur monophasé 59 fournit le signal d'entrée à un générateur tétraphasé 60 qui commande deux -l'horloge de base 66 et horloge auxiliaire de décalage et de délai d'attente 64. L'horloge de base 66 est une horloge diphasée qui peut être arrêtée toutes- les deux positions d'horloge et qui comporte huit positions de décodage d'horloge formées par quatre états de bascules bistables qui se chevauchent. L'horloge de base 66 parcourt les 8 positions à chaque cycle de micro-instruction. L'horloge de base 66 fournit également une position verrouillée haute qui est utilisée chaque fois que la micro-instruction qui est exécutée nécessite un cycle double, ce qui se produit chaque fois qu'un accès à la mémoire principale 12 est effectue; dans ce cas, l'horloge 66 parcourt les huit mêmes positions à cette différence près que, dans ce cas, la présence du signal de la bascule bistable en position haute code les signaux de sortie de l'holorge 66 comme étant les signaux d'horloge 8 à 15 Le décodeur d'horloge auxiliaire 64 fournit quatre créneaux. de temps distincts en combinaison avec une bascule bistable à position haute qui est utilisée chaque fois que horloge effectue un cycle de répétition pour indiquer le délai d'attente maximal de deux cycles d'horloge qui est l'équivalent d'un cycle d'exécution d'instruction complet. L'horloge auxiliaire 64 est utilisée chaque fois qu'une opération de décalage, de multiplication ou de division est requise. Au cours de ces instructions, l'horloge principale 66 est arrêtée à sa septième position. Ceci permet aux vols de cycle d'être-effectués au milieu d'opérations de décalage, de multiplication ou de division prolongées. L'horloge auxiliaire 64 est également utilisée pour compter les délais d'attente lorsque les dispositifs d'entrée/sortie ne répondent pas ou pour les opérations d'échange d'identification chaque fois qu'un dispositif d'entrée/sortie utilise le bus d'entrée 10 et et cherche à échanger des données. Si le délai d'attente dépasse le temps attribué, l'horloge auxiliaire 64 indique la fin du délai et met des indicateurs dans le registre d'erreur pour déclencher l'interruption de plus haut niveau (contrôle d'erreur machine). Canal Intégré de vol de cycle et d'interruption fonctionnant avec un système de priorités Comme représenté sur la figure 5 a laquelle on se référera et qui doit être considérée en combinaison avec la figure 1, les fonctions de vols de cycle et d'interruption sont- exécutées par le bus commun à appel sélectif 53 qui permet 8 niveaux de vols de cycle ou 7 niveaux de demande d'interruption. Dans le présent mode de réalisation, le bus à appel sélectif 53 est un bus de 7 bits de large qui peut contenir les demandes pour 7 niveaux d'interruption au-dessus du niveau de programme executable en cours soit, au total, 8 niveaux d'interruption.Tout dispositif d'entrée/sortie peut être connecté une quelconque des 7 lignes de demande d'interruption organisées par priorité. L'appel des interruptions est effectue de manière continue sauf lorsque la bascule d'appel sélectif réservé au vol de cycle 75 est enclenchée et que la fonction de vols de cycle est exécutée. Dès qu'un dispositif d'entrée sortie demande un service du micro-ordinateur 9, il place sa demande sur le bit de priorité affecté 530 à 536 du bus a appel sélectif 53. Les demandes multiples sont appliquées au circuit logique de codage de priorité 54 dans lequel la demande ayant le plus haut niveau est codée en un code à 3 bits (sur les lignes 541, 542, 544) spécifiant l'un des huit niveaux de priorité différents.La priorité des interruptions est également commandée par le registre de masque d'interruption 44. Si le masque 44 est réglé pour permettre l'interruption, les circuits ET de la porte d'interruption 52 permettent-la transmission de ladite interruption au codeur de priorité 54 de façon à établir le code des priorités requérantes en cours. Cette priorité d'interruption est comparee dans le comparateur 58 au niveau en cours contenu dans le registre de niveau d'interruption en cours à 3 bits 56. Le niveau en cours du registre 56 est continuellement-comparé à tout nouveau niveau du codeur de priorité 54 pour déterminer Si le nouveau code a un niveau plus élevé que le code en cours. Dans l'affirma tive, l'instruction suivante dans la chaîne en cours n'est pas exécutée. Par contre, le pointeur d'adresse en cours contenu dans le registre d'adresse d'instruction 32 est transféré à l'emplacement de la mémoire locale 14 réservé au niveau en cours. Le nouveau pointeur de niveau (plus élevé) est alors extrait de la mémoire locale 14 et placé dans le registre d'adresse d'instruction 32. L'adresse du programme interrompant dans la mémoire locale (l'un des. 8 pointeurs d'interruption possibles) est calculée comme suit: les 3 bits les moins significatifs (présentes sur les lignes 561, 562, 564) du registre d'interruption en cours 56 sont transférés sous la commande de la porte 81 aux lignes d'entrée 831, 832, 833 du registre LCO 40. La ligne 73 de mise en place du niveau d'interruption en cours charge dans les lignes d'entrée les plus significatives 834, 835 les bits restant de l'adresse du registre LCO 40 pour mettre en mémoire le pointeur interrompu dans la mémoire locale 14.Le nouveau pointeur désignant un registre d'interruption dans la mémoire locale 14 est chargé d'une manière similaire dans le registre LCO 40, les bits des lignes les plus significatives 834, 835 étant chargés par la ligne 73- de mise en place du niveau d'interruption en cours et les lignes d'entrée les moins significatives 831 à 833 du registre LOC 40 étant chargées par le registre d'interruption 56 après que le signal de la ligne 72 de chargement du nouveau niveau d'interruption a transféré la nouvelle priorité contenue dans le registre 54 au registre d'interruption en cours 56..Ceci change l-a nouvelle adresse du registre LCO 40 en celle de llemplacement de la mémoire locale 14 qui contient un pointeur désignant la séquence d'instructions de la mémoire morte 16 pour exécuter l'interruption du niveau choisi, le pointeur d'adresse étant transmis au bus de sortie 20 et au registre d'adresse d'instruction 32 par la mémoire locale 14 en passant par l'unité ALU 22 et le registre de total 24. A la fin de-l'execution de la séquence d'instructions du nouveau niveau d'interruption, une instruction de branchement en sortie est émise. Cette instruction remet en place le pointeur du programme originellement interrompu. Etant donné que la sé- quence d'instructions qui a servi à l'interruption remet également l'interruption à zéro, la demande #pour la même interruption ne doit pas être présentée.Si une autre interruption se produit au même niveau ou à un niveau supérieur, le programme ne retourne pas à la position du programme d'origine mais continue en traitant la demande d'interruption prioritaire plus récente. Ceci assure une imbrication complète des 8 niveaux d'interruption En outre, pour chaque niveau, il peut exister une multiplicité de sous-niveaux. Une fois qu'un niveau d'interruption donné est détecté, un mot d'état de niveau d'interruption (ILSW) est transmis à tous les dispositifs d'entréersortie et l'un des 16 dispositifs qui demande à ce moment à être servi à un niveau d'interruption particulier doit s'identifier (de cette manière 16 sous-niveaux peuvent être obtenus pour chacun des 8 niveaux soit un total de 128 sous-niveaux d'interruption). Le mot d'état de niveau d'interruption qui est reçu dans l'un des registre du micro-ordinateur peut être utilise pour déterminer celui des 16 dispositifs à ce niveau qui demande à être servi. Ceci est effectué au moyen d'une instruction de décalage à gauche et comptage. Le premier bit dans la position la plus significative arrête l'instruction de décalage à gauche et comptage et le compte restant dans le registre de compte 50 indique la position du programme pour ce dispositif particulier. Le bus commun à appel sélectif 53 est également utilisé pour le vol de cycle. Cependant, il doit tout d'abord être libéré de toutes les demandes d'interruption. La ligne 68 de demande de vols de cycle quelconque est mise à un niveau logique négatif par un dispositif qui demande un vol de cycle. Une fois que cette ligne a enclenché la bascule 75 d'appel sélectif réservé aux vols de cycle, la ligne 77 de demande d'appel sélectif pour un vol de cycle est immédiatement portée à un haut niveau et les dispositifs sont requis de ce fait de retirer leurs demandes d'interruption du bus à appel sélectif 53 jusqu'à ce que la fonction de vol, de cycle ait été achevée.Dès que le signal de la ligne commune 70 de demande d'interruption et celui de la ligne 68 de demande de vols de cycle cessent d'être appliques par les dispositifs, la bascule 76 d'accuse réception de vols de cycle est enclenchée, au temps d'horloge O suivant, indiquant que le bus à appel sélectif 53 contient la priorité de vols de cycle pour le dispositif requérant, qui est directement appliqué au codeur de priorité 54 (en contournant la porte 52 du masque d'interruption). Ceci provoque la production de 3 bits d'une adresse de priorité du registre LCO 40 par le codeur de priorité, ces 3 bits étant transmis par la porte 82 rendue passante par le signal de la porte ET 89 transmis sur la ligne 78 le signal de sortie synchronise de la bascule 76) au registre LCO 40 Les bits les plus significatifs adressent les pointeurs contenus dans la mémoire locale 14 et qui désignent le niveau de vols de cycle utilisé comme adresse de la mémoire principale 12 soit pour obtenir des données de la mémoire principale 12 soit pour y emmagasiner des données sous la pleine commande du dispositif d'entrée/ sortie.Le registre 56 de niveau d'interruption en cours n'est pas modifié étant donné que le niveau d'interruption (que ce soit le niveau du programme ou un niveau supérieur qui est exécuté) est juste retardé par l'interruption de l'instruction de vols de cycle. Comme on vient de le décrire, un accès à la mémoire est initialement adresse par un pointeur contenu dans le registre LCO 40 dont-les trois bits les moins significatifs signifient celui des 8 niveaux de vol de cycle auquel il est actuellement répondu et dont les bits les plus significatifs indiquent un déplacement au registre de demi-mot de la mémoire locale 14 contenant l'adresse indirecte de la mémoire. Cette adresse lue dans la mémoire locale 14 est placée sur le bus d'entrée 10 et est incrémentée par l'unité ALU 22 avant d'être placée dans le registre tampon 26.Au cours du temps d'accès à la mémoire principale 12, l'adresse incrémentée présente sur le bus de sortie 20 peut être ré-écrite, après mise à jour, dans son registre de vols de cycle de la mémoire locale 14 ou empêchée- d'être écrite par le dispositif dKentree/sortie ayant répondu de façon conserver l'adresse de vols de cycle inchangée. Après un temps d'accès, les données sont extraites de la mémoire 12- et placées sur le bus d'entrée 10 si le dispositif d'entrée/sortie permet la sélection de lecture de la mémoire principale 12 et masque les impulsions-d'ecriture qui sont des impulsions de commande transmises sur les lignes 19 par le microprocesseur.Alternativement, le dispositif d'entrée/sortie peut placer ses propres données sur le bus d'entrée 10-pour qu'elles soient écrites dans la mémoire principale 12 Ainsi, le dispositif afiltentiere commande de la fonction d'incrémentation et de non-incrementation par l'intermédiaire de l'unité ALU intégrée et l'entière commande du mode de lecture ou d'écriture de l'opération. Dans le mode d'écriture, une fois que l'opération a été achevée, le dispositif d'entree/sortie peut encore "voir" ses propres données sur le bus de sortie 20 au cours du temps d'horloge 1 suivant. Dans le mode de lecture, les données lues et placées sur le bus d'entrée 10 traversent l'unité ALU 22 pour parvenir au registre de total 24 et au registre tampon de sortie 26 de façon à être disponibles pour tous lesdispositifs sur le bus de sortie 20. Le seul dispositif d'entree/sortie qui prélève les données dans le mode de lecture est le dispositif qui reconnaît le code de niveau de vol de cycle sur les six lignes d'adresse LCO 21. Le processeur revient. alors à son exécution d'instruction normale ou au traitement du programme d'interrutpion qui a été suspendu pour le vol de cycle ou l'accès direct à la mémoire. Synchronisation du microprocesseur On donnera ciaprès en se référant aux figures 2 à 4 une brève description des diagrammes des temps pour l'exécution des micro-instructions. Etant donné que toutes les instructions ont des caractéristiques chronologiques d'exécution similaires, une description générale sera donnée tout d'abord et sera suivie d'une description plus détaillée de chaque type d'instruction. Le cycle de l'horloge est divisé en 8 temps différents appelés temps O a 7. Les temps d'horloge 8 à 15 constituent une répétition des temps d'horloge O à 7 et ils n'apparaissent qu'au cours des opérations de la mémoire principale 12 et notamment au cours des opérations d'accès direct à la mémoire. Le cycle d'instruction de base de 8 temps d'horloge est divise en deux parties pour permettre l'utilisation de l'unité ALU 22. Au cours des temps d'horloge 7 à 2,.l'unité ALU 22 est consacrée-à l'incrémentation ou autre modification du registre d'adresse d'instruction 32. Les temps 3 à 6 sont utilisés pour le traitement par toutes les micro-instructions.De cette manière, l'unité ALU 22 travaille sur la base d'une utilisation à 50% pour l'exécution des instructions et à 50% pour la mise à jour des pointeurs d'instruction. Le créneau de base au cours duquel l'adresse de la mémoire morte 16 apparat sur le bus de sortie 20 commence au temps 3 lorsque le nouveau pointeur d'adresse calculé est charge à partir de l'unité ALU 22 dans le registre de total 24 et transféré au registre tampon de sortie 26. Cette adresse reste Inchangée jusqutau temps O suivant-lorsque le registre tampon 26 est modifié pour contenir les données destinées à être transférées à la mémoire locale 14 ou à l'un quelconque des dispositifs d'entrée/sortie sur le bus de sortie commun 20. Le temps O commande chaque micro-instruction en chargeant l'instruction extraite de la mémoire morte 16 dans le registre du programme 30. Cette mise en mémoire intermédiaire dans le registre du programme 30 permet l'exécution de cette instruction pendant que l'adresse de la mémoire morte 16 est changée au temps d'horloge 3, comme précédemment décrit, pour accéder à l'instruction suivante. Le registre de total 24 est charge au temps 2 avec l'adresse d'instruction-et au temps 6 avec les données traitées par l'unite ALU 22 au cours de l'exécution de l'instruction. Au cours du temps 3, l1adresse de l'instruction suivante est chargée dans le registre tampon 26-en vue de son chargement sur le bus de sortie 20. Si la micro-instruction nécessite que des données soient écrites dans la mémoire locale 14, ces données sont écrites au cours du temps 1 de l'instruction suivant celle au cours de laquelle tes' données ont été calculées et elles sont transférées par le registre tampon 26, par l'intermédiaire des circuits d'amplification d'attaque 18,-directement à l'emplacement de la mémoire locale 14 choisi par les six lignes du registre LCO 40. De la même manière, des données peuvent être transférues à un dispositif d'entrée/sortie en étant chargées dans le registre tampon de sortie 26 au temps 0, un signal émis sur une ligne 19 au temps 1 indiquant-que les données présentes sur le bus de sortie 20 sont valides.Ces données changent au début du temps 3 lorsque l'adresse de la mémoire morte 16 apparaît dans le registre tampon de sortie 26. Toutes les données qui parviennent à l'unité de traitement 9 sur le bus d'entrée 10 pour être mises en mémoire ou pour être modifiées doivent arriver à l'unité ALU 22 et être valides aux temps d'horloge 3, 4, 5 et 6, cette période étant celle au cours de laquelle l'unité ALU 22 exécute le processus spécifié par l'instruction en cours d'exécution. Pour la même raison, les données de la mémoire locale 14 sont placées sur le bus d'entrée 10 pour être traitées par-l'unité de traitement 9, au temps 2. Au temps 3, de façon à tenir compte des retards de transmission des signaux, les données sont disponibles pour l'exécution de la fonction par l'unité ALU. Les données provenant de la mémoire locale 14 sont placées sur le bus d'entrée 10 au début du temps 2. Elles ne sont pas transférées à l'unité ALU 22 avant le début du temps 3 étant donné qu'au cours des temps 7 à 2, l'unité ALU est utilisée pour la mise à jour du registre d'adresse d'instruction 32. Au début du temps 7, l'unité ALU reprend sa fonction dtincrementation d'adresse ayant achevé sa fonction de base de traitement des micro-instructions. Comme représenté sur les figures 2A et 2B auxquelles on se référera, pour les micro-instructions qui impliquent l'intervention de la mémoire principale 12, en particulier celles qui commandent le chargement des données de la mémoire principale dans l'un des registres de l'unité de traitement 9, le second cycle (temps 8-15) présente une légère variation en ce sens que la micro-instruction suivante est extraite de la mémoire morte 16 au temps 8 bien que l'execution de l'instruction en cours se poursuive jusqu'au temsp 15 et au temps 0 suivant, moment auquel les données de la mémoire principale 12 sont finalement placées dans le registre spécifié de l'unité de traitement 9 ou transmises à un dispositif d'entrée/sortie.Dans ce cas, à la suite de toutes les instructions d'acces à la mémoire principale 12, une nouvelle instruction n'est pas transmise au registre du programme 30 au temps O suivant étant donné qu'elle a déjà été chargée dans ce registre au temps 8 précédent de l'instruction d'accès a la mémoire principale. En outre, le créneau de temps pour la mise à jour du registre d'adresse d'instruction 32 est raccourci et ne commence pas au temps d'horloge équivalent 15 mais deux temps d'horloge après et il ne dure que pendant les temps 1 et 2 étant donne que la mise à jour consiste seulement en un transfert direct par l'unité ALU sans aucune modification (étant donné que cette modification a déjà été effectuée au cours des temps 7-10 de l'instruction précédente d'accès à la mémoire principale 12). L'instruction d'écriture dans la mémoire principale écrit les données dans la mémoire principale 12 au cours de la seconde phase de l'instruction pendant les temps 13 à 15. Comme représenté sur les figures 3A à 3C auxquelles on se référera pour les opérations en arithmétique décimale, au cours des quatre premiers temps d'horloge, l'unité ALU 22 exécute la fonction binaire équivalente et met en mémoire les reports intermédiaires pour chaque chiffre décimal condense. Un nouveau passage dans l'unité ALU 22 est effectue pendant quatre autres temps d'horloge (commandes par l'horloge auxiliaire 64) pour corriger par "six" afin d'obtenir le résultat décimal. Comme représenté sur les figures 4A à 4C auxquelles on se référera, chaque fois qu'une branchement est effectue, dans le cas où l'adresse de branchement est chargée au temps 7 (comme ceci est le cas pour un branchement conditionnel, un branchement à une table à voies multiples au cours du décodage d'un code opération d'un langage "objectif" qui est émulé ou lorsqu'un retour d'un branchement et liaison est effectue en rechargeant l'adresse d'origine contenue dans la mémoire locale 14 dans le registre d'adresse d'instruction 32), un cycle de quatre temps d'horloge supplémentaires de l'horloge auxiliaire 64 est ajouté pour fournir le temps nécessaire pour l'accès à la mémoire morte 16 étant donné que, dans chacun de ces cas, un branchement a changé l'adresse avancée précalculée à partir de l'instruction précédente. Dans les opérations de décalage, l'horloge auxiliaire 64 ajoute deux temps d'horloge pour chaque décalage d'un seul bit dans le registre accumulateur 34 ou dans le registre d'extension 36 ou elle ajoute 4 temps d'horloge (qui représentent une période de temps égale à la moitie du temps d'exécution de base des micro-instructions) pour décaler d'une position les registres d'accumulateur et d'extension à double précision 34 et 36. Ces deux registres sont logiquement connectés ensemble pour former un unique registre à double précision en faisant alternativement passer leur contenu par l'unité ALU 22. Pour les instructions de saut, le temps de traitement de base de l'unité ALU 22 (temps 3 à 6) effectue le test d'égalité, supériorité ou le test par masque; le résultat n'est pas connu avant le début du temps 7 et à ce moment, une décision de saut est prise. Si aucun saut ne doit être effectué, l'instruction suivante qui a été accédée continue sans aucun retard. Si une condition de saut est satisfaite et qu'une instruction doit être sautée, l'horloge de base exécute un autre cycle de microinstruction fictive au cours duquel il effectue l'incrementation pour la micro-instruction suivante sans executer la micro-instruction sautée. Le branchement inconditionnel est une instruction très rapide du fait qu'aucune condition nta besoin d'être vérifiée et que, par conséquent, aucun retard n'est introduit par horloge auxiliaire. En outre, l'adresse de branchement-de 12 bits est directement transférée par l'unité-ALU-22 et chargée dans le registre de total 24 au temps 2. L'adresse est transmise par le registre de total 26 au registre d'adresse d'instruction 32 et au registre tampon 26, au temps 3, établissant ainsi la synchronisation avec l'accès avancé normal des instructions. Jeu d1 instructions Les instructions machine.de base sont conçues de manière optimale pour l'emulation et sont mises en mémoire dans la mémoire morte 16 Fréquemment appelées micro-instructions-elles seront plus simplement appelées instructions dans la description quiva suivre sauf, éventuel- lement, pour insister sur une distinction entre les instructions machine objectives émulées et les instructions du microprocesseur. Toutes les instructions comportent-un bit de parité.dans la position binaire la plus significative (bit 03 et un code opération de 3 bits dans les positions suivantes (bits 1-3). Les bits restants sont subdivisés en zones de longueur variable dont la nature et la fonction dépendent du type d'instruction. Etant donne outil n'y a que 8 codes opération différents, certains des types d'instruction sont.différeneiés en décodant des bits modificateurs supplémentaires.La plupart des instructions sont codées avec une très grande précision et spécifient ou impliquent- une grande diversité d'opérations différentes dont.un grand-nombre sont effectuées sequentiellement. Ces opérations séquentielles sont coordonnées par une série de configurations de séquences de temps d'horloge ordonnées de façon très précise comme indiqué dans les figures 2 4. On décrira maintenant en se référant aux figures 2 à 4, les 11 catégories d'instructions de base. Les symboles utilisés dans les diagrammes de temps sont les suivants: Symbole Registre A Registre accumulateur B Registre d'extension T Registre de total P Registre du programme U -R#gistre d'adresse d'instruction N Registre de compte (compte de décalage). M Registre tampon de sortie (bus de sortie) E/S Registre de dispositif d'entree/sortie E Registre d'erreur I Registre de masque d'interruption C Registre de code conditions en cours PCC Registre de code conditi-ons préservé L Registre de la mémoire locale Chacune des instructions peut être définie par un code d'instruction de 16 bits, bit de parité inclus. Les bits 1-3 définissent le code opération et les codes sont listés ci-apres avec la catégorie d'instruction. Instruction Mnémonique Code opération Commande CO 000 Ecriture logique LW 001 Décalage logique LS 001 Mouvement logique-comptage LM 001 Modification de données MD 010 Modification de facteur MO 010 Lecture mémoire FS 011 Modification données immédiates IM 100 Saut conditionnel JC 101 Branchement conditionnel BC 110 Branchement inconditionnel BU 111 Instructions de commande Sur la figure 3C à laquelle on se référera, on a représenté le diagramme des temps pour les instructions de commande.Des instructions de commande peuvent être prévues, par exemple, pour les opérations suivantes: pour le transfert des données, pour l'exécution indirecte, pour la pose du masque d'interruption, pour la pose de la pagination, pour le branchement à une table, pour la selection de modes facultatifs, pour l'exécution d'opérations sur le code conditions préservé et sur le code conditions en cours, pour la pose des indicateurs du programme et pour les transferts d'entree/sortie. A titre d'introduction, on décrira un certain nombre des instructions de commande. Un certain nombre des instructions de commande se rapportent au traitement des interruptions. Une de ces instructions permet à une interruption d'être exécutée après l'achèvement de chaque micro-instruction tandis qu'une autre fournit un créneau d'interruption au cours duquel toutes les interruptions en instance sont exécutées et la commutation d'interruptions est effectuée. Après cette période, les interruptions sont masquées jusqu'à ce que le créneau d'interruption soit à nouveau rencontré. D'autres instructions de commande concernent la pagination d'entrée/ sortie de la mémoire morte 16. La page à adresse de 4 bits de la mémoire morte 16 est une page interne spécifiée dans le registre d'adresse d'instruction 32. Ce registre de page est utilise chaque fois qu'un branchement direct franchissant l'une des séparations qui existent tous les 4096 (4K) emplacements d'adresse d'instruction de la mémoire morte 16 directement adressable doit être effectué. L'unité ALU 22 incrémente l'adresse au-delà des séparations qui existent tous les 4096 emplacements d'adresse jusqu'à la fin des 65536 (64K) demi-mots de la mémoire morte 16. En outre, les pointeurs de commutation d'interruption effectuent un adressage complet de 16 bits et non seulement de 12 bits. Par conséquent, ils sont capables d'adresser la totalité des 65536 (64K) instructions. D'autres instructions de commande commandent les quatre bits indicateurs. Ces bits sont les quatre bits les moins signifi-catifs du registre C 48 qui, en combinaison avec les quatre bits du code condition, forment le multiplet supérieur non connecté du registre de compte 50. Les bits indicateurs peuvent être entrés par le programmeur pour différentes indications et peuvent être utilises comme indicateurs dans la séquence d'instructions. Les bits indicateurs peuvent être mis en mémoire ou rechargés avec les codes condition et le registre 50 contenant le multiplet inférieur dans et hors de la mémoire locale 14 lors d'une commutation d'interruptions. Les instructions de commande restantes se rapportent au code condition. Il y a deux niveaux de codes condition, chacun ayant quatre bits indiquant: report binaire, dépassement de capacité en complément à 2, bit moins dans la position la plus significative en complément à 2 et non nul cumulatif. Les quatre bits les plus significatifs du registre de code conditions en cours 48 changent lors de chaque opération arithmétique ainsi que lors des opérations de décalage logique à gauche, de décalage à gauche et comptage, de multiplication et de division.Pour d'autres instructions de nature logique, les registres eux-mêmes peuvent être vérifiés pour déterminer si leur contenu est nul ou non nul, s'ils ne contiennent que des 1 ou s'ils #contiennent des 1 et des O mélangés, le registre de code conditions préservé 42 contient les mêmes quatre bits que le registre de code condition en cours 48 à cette différence qu'il est sous la commande du microprogramme pour transférer et accumuler l'équivalent des codes conditions du macro-langage qui est émulé. A titre d'exemple, les opérations de commande suivantes sont utilisées dans le mode de réalisation du micro-ordinateur de l'invention, L'opération de commande de chargement de données immédiates (KBUS) sert à charger la zone de données de l'instruction dans les positions binaires les plus significatives du registre tampon de sortie 26. Les bits de données 0-4 du registre O de la mémoire locale 14 sont charges dans les positions binaires les moins significatives du registre tampon 26 et le contenu du registre tampon 26 est écrit dans le registre O de la mémoire locale 14. L'opération de commande de transfert des données de la mémoire locale à un dispositif d'entrée/sortie (KLSR) fournit une zone de 4 bits pour adresser les registres 0-15 de la mémoire locale 14. Les données du registre adresse de la mémoire locale 14 sont transférées au registre tampon de sortie 26 et au bus de sortie 20. Une zone de six bits de l'instruction KLSR fournit une adresse de dispositif qui est chargée dans le registre LCO 40 pour adresser l'un des dispositifs d'entrée/sortie la 63. L'instruction de commande de transfert de données immédiates à un dispositif E/S (KLCO) charge les données immédiates du code d'instruction dans une partie du registre tampon de sortie 26, le reste étant chargé avec les bits sélectés du registre O de la mémoire locale 14. Les données contenues dans d'autres positions binaires du code d'instruction sont chargées dans le registre LCO 40 pour fournir l'adresse du dispositif. Le contenu du registre tampon de sortie 26 est charge dans le registre O de la mémoire locale 14. L'opération de commande de pose du masque d'interruption fournit les bits du masque d'interruption contenu dans le registre 44, un 1 dans une position binaire autorisant une interruption pour le niveau correspondant. Un bit de code d'instruction spécifie Si les bits du masque d'interruption doivant être sauvegardés ou posés. Des opérations de commande sont prévues pour mettre en place la pagination de la mémoire morte 16. L'instruction KLAP comporte une zone pour spécifier les pages 0-15 et l'instruction KRAP spécifie la page 16. Chaque page représente 4096 demi-mots. Des opérations de commande pour le branchement à une table spécifient le registre ou la partie de registre qui doit être ajoutée à, ou doit faire l'objet d'une opération OU exclusif avec, le contenu du registre d'adresse d'instruction 32 pour donner T'adresse séquentielle suivante dans la mémoire morte 16 en vue de son exécution.Ces opérations sont indiquées ci-apres: Mnémonique Ajouter à registre d'adresse d'instruction 32 KIAL Multiplet le moins significatif du registre accumulateur 34 KIXL Multiplet le moins significàtif du registre d'extension 36 KIBL Multiplet le moins-significatif du registre de sortie 26 - KIEL Multiplet le moins significatif du bus d'entrée 10 KIAH Chiffre-décimal le moins significatif du registre accumulateur 34 KIXH Chiffre hexadecimal le moins significatif du registre d'extension 36 KIBH Chiffre héxadécimal le moins significatif du registre de sortie 26 KIEH Chiffre hexadecimal le moins significatif du bus d'entrée 10 KIAZ Hors-texte le moins significatif du registre accumulateur 34 KIXZ Hors-texte le moins significatif du-registre d'extension 36 KIBZ Hors-texte le moins significatif du registre de sortie 26 KIEZ Hors-texte le moins significatif du bus d'entrée 10 KIAS Six bits les moins significatifs du registre accumulateur 34 KIXS Six bits les moins significatifs du registre d'extension 36 KIBS Six bits les moins significatifs du registre de sortie 26 KIES Six bits les moins significatifs du bus d'entrée 10 L'opération de commande de branchement en sortie-(KILB) tranfère le contenu du registre d'adresse d'instruction en cours 32 au registre de la mémoire locale 14 réservé à l'interruption en cours, remet à zéro l'interruption en cours, effectue un test pour déterminer une nouvelle interruption et transfère au registre d'adresse d'instruction 32 le contenu de l'emplacement de la mémoire locale 14 réservé au nouveau niveau d'interruption. L'opération de commande KSIE fournit trois zones de 2 bits- (Il, EE et SS) pour spécifier le code interruption (autorisant une interruption ou acceptant l'interruption puis masquant toutes les autres interruptions) pour spécifier le mode d'erreur et pour spécifier une adresse de multiplet dans la mémoire principale 12 (aucun changement, remettre à O ou poser le mode par multiplets). Le code 01 dans une ou plusieurs des zones de code d'interruption (II#) de mode d'erreur (EE) et d'adresse de multiplet dans la mémoire principale (SS) de l'opération de commande KSIE est réservé pour spécifier des opérations de commande supplémentaires dans lesquelles les caractéristiques du code d'interruption, du mode d'erreur, ou du mode d'adresse de multiplet dans la mémoire principale de l'instruction de commande KSIE sont préservées ou remplacées de la manière indiquée dans le tableau ci-dessous. Si le code de commande indique Il, EE ou SS, l'instruction de commande KSIE définit les operations specifiees respectivement par le code d'interruption, le mode d'erreur ou le mode d'adresse de multiplet de la mémoire principale. Mnémonique Zone de code Description d'instruction KPIE Il EE 01 Remettre à O code condition préservé (sauf dépassement de capacite) KPSI Il 01 SS Remettre à O code condition préservé (dans- sa totalité) KCSE 01 EE SS Opération OU du code condition en cours avec code condition préservé et remettre à O code condition en cours KTPI Il 01 01 Remettre à O code condition en cours et code condition préservé (sauf dépassement de capacité) KCPS 01 01 SS Transférer code condition en cours à code condition préservé et remettre à O code condition en cours. KCPE 01 EE 01 Transférer code condition en cours à code condition préservé sauf opération OU sur dépassement de capacite) et remettre à 0 code condition en cours L'opération de commande KNTC effectue la fonction de l'opération KTPI. En outre, des commandes sont établies pour effectuer une opération KCSE à la suite de l'instruction suivante si celle-ci est une opération arithmétique. L'indicateur 4 est egalement remis à l'état "pair" ou mis à l'état "impair" en fonction du résultat. L'instruction de commande KPCC effectue un transfert direct du code conditions préservé au code conditions en cours. L'instruction de commande KFCC spécifie si le contenu du registre de code conditions en cours 48 doit être sauvegardé ou chargé et spécifie les positions à sauvegarder ou à-mettre en place: report-retenue, dépassement de capacité, moins, non nul, cumulatif ou indicateur 1 à 4. Instructions d'accès a la mémoire principale Les instructions d'écriture logique (LW) et de lecture en mémoire (FS) constituent le groupe d'instructions d'accès à.la mémoire principale. Avec ces instructions, les données peuvent être lues dans la mémoire principale 12 et placées dans les quatre registres de données internes de base: le registre accumulateur 34, le registre d'extension 36, le registre de compte 50 et le registre tampon de sortie 26. Les données qui sont extraites de la mémoire principale 12 sont adressées par le registre dtextension 36 ou par l'un des registres de la mémoire locale 14 comme spécifié dans l'adresse d'instruction. L'adresse peut être initialement mise à jour au moyen d'une incrémentation ou d'une décrémentation pour fournir un pointeur qui se déplace continuellement et désigne un emplacement de la mémoire principale 12 sur le bus de sortie commun 20, ou elle peut être déplacée en va-et-vient à une adresse effective en ajoutant à un pointeur spécifié le déplacement du bloc de registre N 50 (positif ou négatif). Le mode d'adressage de demi-mot ou de multiplet peut être spécifié pour les instructions relatives à la mémoire. Pour faciliter l'émulation, le microprocesseur de la presente=invention réalise des alignements sur les demi-mots en permutant les multiplets du demi-mot des données provenant de la mémoire principale 12 dans l'unité ALU 22 de façon à aligner un multiplet spécifique quelconque dans une position donnée de façon, par exemple, que le code opération de l'instruction apparaisse toujours dans le multiplet le moins significatif. Instruction d'écriture logique Comme précédemment noté, il n'y a aucun trajet directe données entre l'unité de traitement 9 et la mémoire principale 12. Ceci est dû au fait que le bus de sortie st utilisé comme bus d'adresse de la mémoire principale et n'est, par conséquent, pas disponible pour les données. Le bus d'entrée 10 n'est bidirectionnel que par rapport à la mémoire principale La raison pour laquelle on ne permet pas à ce bus d'être bidirectionnel par rapport à la microplaquette d'unité de traitement 9 est que ceci permet d'économiser l'espace sur la microplaquette d'unité de traitement étant donné que les circuits d'attaque de sortie nécessaires pour placer les données sur le bus 10 occuperaient une surface importante de la microplaquette et consommeraient une énergie importante et, de ce fait, ils ne sont pas prévus. Les quatre instructions logiques sélectent le mode de demi-mot, de multiplet le moins significatif ou de multiplet le plus significatif et mettent en mémoire, dans la mémoire principale 12, les données provenant d'un emplacement adressé de la mémoire locale 14 ou d'un dispositif d'entrée/sortie. Ecriture logique de données provenant de la mémoire locale Dans la première instruction d'écriture logique, les données provenant de l'emplacement 1 de la mémoire locale 14 sont écrites dans l'emplacement de la mémoire principale 12 adressé par l'un des emplacements 0-63 de la mémoire locale 14. Un des registres 1-63 de la mémoire locale 14 est choisi et son contenu est incrémenté ou décrémenté d'un ou laisse inchangé avant de charger le registre tampon de sortie 26 pour adresser la mémoire principale, l'adresse mise à jour étant réécrite dans l'emplacement cidessus mentionné 1-63 de la mémoire locale 14.La spécification de l'emplacement O de la mémoire locale 14 comme origine d'adresse sélection- ne le registre de compte 50 comme adresse indirecte du registre de la mémoire locale qui doit être utilisé comme origine pour l'adresse de la mémoire principale 12. Un cycle d'écriture en mémoire est effectue avec les données obtenues de l'emplacement 1 de la mémoire locale 14 qui ont été aiguillées sur le bus d'entrée 10. Facultativement, le code de modification d'adresse (2 bits de code opération), s'il est mis à 10, sélectionne le multiplet le moins significatif ou le multiplet le plus significatif comme devant être écrit dans la mémoire principale 12.Si une instruction de commande a précédemment mis le mode d'adressage de multiplet de la mémoire, toutes les mises à jour positives ou négatives fonctionnent en ajoutant + ou -2 et la sélection du multiplet le plus significatif impose une mise à jour de l'adresse égale à -1 (la sélection du multiplet le moins significatif ne modifie pas l'adresse) l'adresse resultante, paire ou impaire, contenant respectivement le multiplet le moins ou le multiplet le plus significatif. De même, le contenu d'origine du registre tampon de sortie 26 est pris dans l'emplacement 0 de la mémoire locale 14. La seconde instruction est similaire à la première dont elle ne diffère que par le fait que les données à écrire dans la mémoire principale 12 sont obtenues d'un emplacement sélectionné (0-63) de la mémoire locale 14 et que l'adresse de mémoire pour la mémoire 12 est obtenue du registre d'extension 36. Les opérations portant sur le multiplet le plus significatif ou sur le multiplet le moins significatif décrites cidessus sont également disponibles. La troisième instruction est similaire à la première instruction d'écriture logique décrite dont elle ne diffère que par le fait que le même code (0-63) de la mémoire locale qui sélectionne le registre d'adresse sélectionne également le dispositif d'entrée/sortie qui doit fournir sur le bus d'entrez 10 les données qui doivent être écrites dans la mémoire principale 12. La quatrième instruction est similaire à la seconde instruction d'écriture logique décrite ci-dessus, dont elle ne diffère que par le fait que les données qui doivent être écrites dans la mémoire principale 12 sont fournies par le dispositif d'entrée/ sortie (1-63) sélectionné, sur le bus d'entrée 10. Lecture dans la mémoire Les instructions de lecture dans la mémoire sont prévues pour fonctionner dans le mode de demi-mot. Pour effectuer l'adressage de multiplet de la mémoire à la place-de l'adressage de demi-mot on renverra aux instructions de commande (le registre de code condition en cours 48 -plus le registre de compte 50 ou le masque d'interruption 44 plus le registre d'erreur 46 sont toujours utilisés en combinaison dans# le mode de multiplet et le multiplet le plus significatif n'est pas mis O lors d'une commande de lecture dans la mémoire). Chargement de données de la mémoire dans les registres de l'unité de traitement 9 avec adressage.par la mémoire locale (mode d'adressage de demi-mot) Un registre {1-63) de la mémoire locale 14 est sélectionné et son contenu modifié par 0, + 1 ou par une operation OU avec 1 avant-d'être chargé dans le registre tampon de sortie 26 (mais non dans l'emplacement O de la mémoire locale 14) pour adresser la mémoire principale 12. Si la modification a été de f 1, le contenu du registre tampon de sortie 26 est mis à jour dans le registre sélectionné de la mémoire locale 14.Un cycle de lecture de la mémoire est alors effectué et les données de sortie de la mémoire 12 sont aiguillées sur le bus d'entrée 10 pour être chargées sélectivement dans les registres d'opérande, à savoir le registre accumulateur 34, le registre d'extension 36, le registre tampon 26 ou le registre de compte 50 ou d'erreur 46. Les registres d'interruption 44 et d'erreur 46 peuvent être sélectionnés par l'instruction de commande KSIE à la place des registres de condition 48 et de compte 50 (le registre de compte 50 ou le registre d'erreur 46 ne contiennent que le multiplet le moins significatif). L'emplacement O de la mémoire locale 14 sélectionne l'adressage indirect de la mémoire locale au moyen des 6 bits les moins significatifs du registre 50 de compte d'opérande.En outre, les données d'origine du registre tampon de sortie 26 sont choisies à partir de l'emplacement O de la mémoire locale 14. Chargement des données de la mémoire dans les registres de l'unité de traitement 9 avec l'adresse de l'opérande sur le bus (mode d'adressage de demi-mot) Cette instruction est similaire à l'instruction suivante décrite cl-après dont elle ne diffère que par le fait que le registre tampon de sortie 26 (ce qui signifie l'emplacement O de la mémoire locale 14) est utilise à la place du registre d'extension 36 et que le transfert d'adresse au bus de sortie 20 sert comme un mouvement d'un demi-mot du registre tampon 26 aux emplacements 1 à 63 de la mémoire locale 14 ou de mise à jour de l'adresse du bus de sortie 20 dans l'emplacement O de la mémoire locale 14. Chargement de données de la mémoire dans les registres de l'unité de traitement avec l'adresse d'opérande formée par le registre d'extension#(mode d'adressage de demi-mot) Le contenu du registre d'extension 36 est modifie en y ajoutant 0, t 1 ou le déplacement de l'opérande contenu dans le registre de compte 50 avant de charger dans le registre tampon de sortie 26 (mais non dans le registre O de la mémoire locale) l'adresse de la mémoire principale. La valeur mise à jour du registre tampon 26 est réécrite dans le registre d'extension. Un cycle de lecture de la mémoire principale 12 est commence. Un transfert auxiliaire est effectué (avant que les données de la mémoire principale 12 soient disponibles) à condition que l'emplacement adressé de la mémoire locale 14 soit compris entre 1 et 63 et ne soit pas l'emplacement 0. Facultativement, le contenu du registre d'adresse 32 est écrit dans le registre sélectionné de la mémoire locale 14. Enfin, les données de la mémoire principale 12 sont aiguillées sur le bus d'entrée 10 pour être chargées sélectivement dans l'un des registres d'opérande à savoir le registre accumulateur 34, le registre d'extension 36, le registre tampon de sortie 26 ou le registre de compte ou d'erreur 50 et 46, comme dans la première instruction de lecture dans la mémoire. En outre, les données d'origine du registre tampon de sortie 26 proviennent de l'emplacement O de la mémoire locale 14. Instructions an thméti que s et logiques Comme représenté sur la figure 3 à laquelle on se référera les instructions arithmétiques sont: modification de données (MD) et modification d'opérande (MO). Les opérations arithmétiques comprennent l'addition, avec ou sans report, et la soustraction. Elles peuvent être effectuées en complément à 2 binaire ou en décimal condense. (1 chiffre non signé dans chaque groupe héxadêcimal de 4 bits de données). Les fonctions arithmétiques peuvent être exécutées à l'interieur du microprocesseur entre les registres internes (registre d'accumulateur 34, registre d'extension 36, registre de compte 50 et registre tampon de sortie 26). En outre, le registre accumulateur 34 ou le registre d'extension 36 peuvent être arithmetiquement combinés avec l'un des 64 registres de la mémoire locale 14, le résultat étant mis en mémoire soit dans l'un des registres de la mémoire locale 14 soit dans le registre d'extension 36. Toutes les instructions arithmétiques exécutées avec les registres de l'unité 9 peuvent être effectuées dans le mode de demi-mot, -dans le mode de multiplet le plus significatif, dans le mode de multiplet le moins significatif ou dans le mode des 4 bits hexadécimaux les moins significatifs. Les autres bits dans chacune de ces configurations restent inchangés. Les instructions logiques comprennent les opérations ET, OU et OU Exclusif. Ces opérations, lorsqutelles sont exécutées uniquement sur les registres internes, comme dans le mode arithmétique, peuvent être effectuées dans l'un des modes ci-après: le mode de 4 bits hexadécimaux les moins significatifs, le mode de multiplet le moins significatif, le mode de multiplet le plus significatif et le mode de demi-mot. Des fonctions similaires peuvent être également exécutées avec la mémoire locale 14 mais, dans ce cas, toutes les fonctions logiques de registre externe à registre interne et de registre interne à registre externe peuvent seulement être exécutées dans le mode de demi-mot. Modification de données Par la commande de modification de données, le registre accumulateur 34 ou le registre d'extension 36 peuvent-être modifiés sur place avec le contenu d'un registre de la mémoire locale 14 qui reste inchangé. En outre, un registre spécifié de la mémoire locale 14 peut être modifié avec le contenu du registre d'extension 36, le registre d'extension 36 restant inchangé et le résultat étant placé dans le registre sélectionné de la mémoire locale 14. En outre, tout dispositif d'entrée/ sortie peut être sélectionné pour fournir des données sur le bus d'entrée 10.Les données peuvent être modifiées avec les données contenues dans le registre d'extension 36 et le résultat retourné au même dispositif d'entrée/sortie en plaçant les données dans le registre de sortie (mais non dans l'emplacement O de la mémoire locale) et de là sur le bus de sortie 20. Si la partie d'adresse de l'instruction de modification des données est mise à 0, des données égales à O sont produites sur le bus d'entrée 10. En utilisant la fonction OU, un mouvement est effectué du registre d'extension 36 au registre de sortie 26. En utilisant la fonction ET, le registre de sortie 26 est chargé uniquement avec des 0. Les fonctions de modification qui peuvent être spécifiées par l'instruction de modification des données sont: addition binaire avec ou sans report ou addition en décimal condensé avec report, soustraction binaire ou soustraction en décimal condensé avec retenue (les données soustraites ne peuvent provenir d'un registre sélectionné de la mémoire locale 14 ou d'un dispositif d'entrée/sortie sauf avec inversion) ET, OU et OU Exclusif. La spécification de-l'emplacement O de la mémoire locale 14 sélecte l'adressage indirect du registre de la mémoire locale 14 ou d'un dispositif d'entrée/sortie par les 6 bits les moins significatifs du registre de compte 50. Modification d'opérande Avec l'instruction de modification d'opérande (MO), le registre accumulateur 34 ou le registre d'extension 36 peuvent être modifiés sur place avec les données d'un registre de la mémoire locale, du registre d'extension 36 ou du registre accumulateur 34 qui restent inchangés. En outre, le registre d'extension 36 peut être modifié sur place avec les données du registre tampon de sortie 26. Lorsque le contenu du registre d'extension 36 est égal à O, le mouvement du contenu de l'emplacement O de la mémoire locale 14 (registre tampon de sortie) au registre d'extension 36 et également à la mémoire locale 14 (position 1-15) par le mouvement facultatif du résultat de demi-mot peut être obtenu. Les fonctions de modification sont les mêmes que dans les instructions de modification de données (MD) sauf que les fonctions de mouvement entre une combinaison quelconque des registres accumulateurs 34, d'extension 36 ou de facteur de compte 50 et d'erreur 46 sont ajoutées et que les données soustraites ne peuvent provenir des registres d'opérande de compte 50 et d'erreur 46, sauf avec inversion. En outre, toutes les fonctions ci-dessus peuvent être effectuées dans le mode de demi-mot, de multiplet le plus significatif, de multiplet le moins significatif ou de chiffre hexadécimal le moins significatif sauf que le multiplet le plus significatif des registres d'opérande, de compte 50 et d'erreur 46 n'existe pas.Après que chacune des fonctions ci-dessus a été achevée, un mouvement auxiliaire du résultat de demi-mot (multiplet le plus significatif des registres de compte 50 et d'erreur 46 = registres de code condition en cours 48 et masque d'interruption 44) peut être effectué à un emplacement 1-15 sélectionné de la mémoire locale 14. Décalage logique Comme représenté sur les figures 4A -à 4C, les opérations de décalage peuvent-être effectuées à gauche ou à droite, un bit à la fois. La longueur du décalage dépend de la longueur du registre. Le registre accumulateur 34 et le registre d'extension 36 peuvent chacun être décalés de 1 à 16 positions.Pour la multiplication et la division, lorsqu'une double précision est requise, le registre accumulateur 34 devient la partie la plus significative du registre d'extension~36 et en combinaison, ils forment un registre couplé de 32 bits qui peut étire décalé de 1 a 32 positions dans l'un quelconque des modes suivants: décalage à droite arithmetique, decalage à gauche et comptage, décalage à gauche logique, décalage à droite logique, décalage circulaire à gauche, décalage circulaire à droite.Des opérations plus rapides qui sont équivalentes à un décalage circulaire de 8 positions binaires des registres de 16 bits appelées également "torsion" ou permutation des multiplets peuvent etre effectuées en un cycle de micro-instruction. Modification de données immédiates Les instructions de modification de données-immédiates (IM) sont représentées sur la figure 3C. Un multiplet de données provenant du registre du programme 30 (bits d'opération 8-15) est combiné#avec le multiplet le moins significatif du registre accumulateur 34, du registre d'extension 36 ou des registres de compte 50 et d'erreur 46, choisis par une instruction de commande KSIE précédente. Pour le registre accumulateur 34 et le registre d'extension 36, les fonctions combinatoires sont-les fonctions de soustraction, de chargement, OU, ET, OU exclusif et addition.- Tout report ou retenue engendré par une opération d'addition ou de soustraction est transmis au multiplet le plus significatif. Pour les registres de compte 50 met d'erreur 46, les fonctions combinatoires sont les fonctions OU, ET, Chargement, Addition. Pour les fonctions d'addition et de soustraction, les données du-multiplet immédiat sont incrémentées ou décrémentées de 1 et tous les reports qui arrivent seront ignores avec un nouvel ensemble de code conditions. Saut conditionnel Comme représenté sur la figure 4B, l'instruction de saut est exécutée chaque fois que le résultat d'un test est négatif. Les tests effectues avec un multiplet de masque contenu dans l'instruction sur les 8 bits les moins significatifs d'un registre sélectionné sont les suivants: le masque est égal au multiplet le moins significatif, le masque# est supérieur au multiplet le moins significatif, les bits de masque sont vérifiés pour les bits en fonction dans le multiplet le moins significatif et les bits restants non sélectionnés sont ignorés, ou le masque est vérifié pour les bits hors fonction dans le multiplet le moins significatif et les bits restant sont ignores.Le registre de code condition 48 peut être vérifié par un masque avec sélection des bits en fonction/hors fonction et un saut pour une combinaison quelconque de conditions. Le registre de code condition 48 comporte 4 bits de code condition et 4 bits indicateurs commandes par le programme. Si le test est négatif, l'instruction suivante est sautée. En outre, les bits de hors texte du chiffre hexadécimal le plus significatif des opérandes contenus dans le registre accumulateur 34 ou dans le registre d'extension 36 peuvent être vérifiés pour déterminer s'ils ne contiennent que des 0. Opérations de branchement Les opérations de branchement sont les opérations de branchement conditionnel et de branchement inconditionne-l. Elles peuvent être effectuées sur un espace quelconque de 4096 emplacements de la mémoire de commande 16. En mettant en mémoire le contenu du registre d'adresse d'instruction en cours 32 plus 1 dans l'un des registres de la mémoire locale 14 avant d'exécuter le branchement inconditionnel, une opération de branchement et liaison est exécutée. L'opération inverse qui consiste à prendre l'adresse ainsi mise en mémoire dans la mémoire locale 14 et à replacer le pointeur d'adresse dans le registre d'adresse d'instruction 32 effectue le retour à la séquence d'instructions à partir de laquelle une opération de branchement et liaison a été initialement effectuée. Un second groupe d'instructions de branchement effectue le branchement à une table à voies multiples qui peut être effectué sur les 4 bits hexadécimaux les moins significatifs des registres du microprocesseur, sur les 4 bits suivants qui sont-les bits de hors-texte, tout en ignorant les 4 ou 6 bits les moins significatifs ou sur le total de 8 bits, fournissant un branchement à une table à 256 entrées à partir duquel le code opération de 8 bits peut être décodé par une instruction de branchement inconditionnel lue dans la table. Un troisième groupe d'instructions de branchement fournit des branchements avec déplacement signé pour 16 conditions différentes, telles que registre nul ou non nul, registre négatif ou non négatif. Le branchement avec déplacement est effectué en prenant le déplacement de 8 bits de l'instruction et en l'ajoutant-sous forme d'un nombre de i6 bits signé au contenu du registre d'adresse d'instruction en cours 32. D'autres instructions permettent le branchement avec déplacement basé sur la décrémentation d'un ou de 16 bits du registre de compte 50 et le branchement s'effectue si le résultat ne contient que des O ou ne contient pas que des 0, si les 4 bits les moins significatifs sont tous des O ou ne sont pas tous des 0, si les 4 bits les plus significatifs sont sous des 1 ou ne sont pas tous des 1, etc. Mouvement logique-comptage Comme représenté sur la figure 3B à laquelle on se référera, les instructions de mouvement logique-comptage (LM) déplacent sélectivement le contenu d'un registre spécifi-é 1-63 de la mémoire locale 14 dans le registre d'adresse d'instruction 32, le registre accumulateur 34, le registre d'extension 36 ou les registres combines de condition en cours et de compte 48, 50. Au cours de ce transfert, la valeur peut être modifiée en y ajoutant 0, -1 ou +1 (sauf sans le cas des mouvements de multiplets uniques dans le registre accumulateur 34 ou dans le registre d'extension 36) et la valeur telle que modifiée et réécrite dans le registre sélectionné 1-63 de la mémoire locale 14.Inversement, le registre spécifié (registre d'adresse d'instruction 32, registre accumulateur 34, registre d'extension 36 ou registres combines de conditions en cours et de compte 48, 50) peut avoir son contenu déplacé dans l'emplacement sélectionné 1-63 de la mémoire locale 14 avec modification par addition de O, +1 ou -1 (sauf pour les mouvements de multiplets uniques de données à partir du registre accumulateur 34 ou du registre d'extension 36). Les mouvements du multiplet peuvent spécifier le multiplet le plus significatif ou le moins significatif du registre accumulateur 32 ou du registre d'extension 36 mais aucune modification n'est effectuée sur les mouvements entre le registre accumulateur 34 ou le registre d'extension 36 et le registre spécifié de la mémoire locale 14.Le contenu du registre d'adresse d'instruction 32 est compose de l'adresse de 16 bits de la mémoire 16. Le registre de condition en cours 48 ne peut être sélectionné que comme le multiplet le plus significatif des registres combines de condition en cours et de compte 48, 50 si aucune incrémentation ou décrémentation n'est spécifiée. En outre, le registre d'interruption 44 et le registre d'erreur 46 sont utilisés à la place des registres de condition en cours et de compte 48, 50 si l'instruction de commande KSIE précédemment décrite l'a prévu.Lorsque l'instruction de mouvement logique-comptage spécifie l'emplacement O de la mémoire locale 14, l'adressage indirect de la mémoire locale est sélectionné au moyen des 6 bits les moins significatifs du registre de compte 50 sauf que la sélection des registres de condition en cours et de compte 48, 50, comme registres d'origine ou de destination pour l'opération de mouvement, transfère les données des registres de condition et de compte 48, 50, à l'emplacement O de la mémoire locale 14. Entrée/sortie Il n'y a aucune instruction d'entrée/sortie proprement dite, les transferts des données commandés directement par le programme ou les messages de commande adressés à un dispositif d'entrée sortie ou émanant d'un dispositif d'entrée/ sortie étant effectues par les instructions ci-après: Lecture dans la mémoire, Ecriture logique dans la mémoire, Modification de données et commande. L'instruction de lecture dans la mémoire transfère les données provenant de la mémoire 12 à un dispositif d'entrée/ sortie par la voie de données interne formée par les bus 23, 25, 28. L'instruction d'écriture logique transfère les donnees directement d'un dispositif d'entrée/sortie à la mémoire principale 12 par l'intermédiaire du bus d'entrée 10 sans passer par le processeur 9, en utilisant l'adresse fournie par le registre d'extension 36 ou par l'un quelconque des registres de la mémoire locale 14.L'instruction de modification de données prend les données de l'un des dispositifs d'entree/sortie, effectue sur elles, dans l'unité ALU 22, une operation avec l'opérande du registre d'extension 36 et retourne le résultat au dispositif d'entree/sortie par l'intermédiaire du registre tampon de sortie 26. Une instruction de commande peut être utilisée pour transférer en sortie à un dispositif des données provenant soit d'un registre spécifié (1-15) de la mémoire locale 14 soit d'une zone de données immédiates de l'instruction. D'autres instructions de commande peuvent transférer des données provenant d'un dispositif d'entrée/sortie quelconque au registre accumulateur 34, au registre d'extension 36 ou à l'un des registres 0-15 de la mémoire locale 14. Dans tous les cas l'adresse du dispositif spécifié par l'instruction soit directement dans la zone d'adresse, soit indirectement en tant que contenu du registre de compte 50, est transmise au dispositif d'entrée/ sortie par les lignes 41, 21 du registre LCO 40 qui sont également utilisées pour adresser la mémoire locale 14. Le transfert est synchronisé par deux signaux d'échange d'identification de prélèvement des données en sortie et en entrée. Ces signaux, en combinaison avec le signal de maintien de l'horloge, permettent le fonctionnement asynchrone des transferts d'entrée/sortie indépendamment de la longueur des lignes et des retards de fonctionnement des dispositifs. Bien que l'on ait décrit dans ce qui précède et représenté sur les dessins les caractéristiques essentielles de l'invention appliquées à X mode de réalisation préféré de celle-ci, il est évident que l'homme de l'art peut y apporter toutes modifications de forme ou de détail qu'il juge utiles, sans pour autant sortir du cadre de ladite invention. REVENDICATIONS 1.- Système de traitement de données à bus en boucle fermée caractérisé en ce qu'il comprend: une unité de traitement de données, un premier bus ou bus d'entrée de l'unité de traitement, un second bus ou bus de sortie de l'unité de traitement, des moyens de réception prévus dans ladite unité de traitement pour recevoir des signaux d'information en provenance dudit premier bus, des premiers moyens d'emmagasinage d'informations fonctionnant en réponse aux signaux d'adresse présents sur ledit second bus pour sélective- ment charger des signaux de données sur ledit premier bus, et recevoir des signaux de données dudit premier bus. 2.- Système selon la revendication 1 caractérisé en ce qu'il comprend, en outre: un troisième bus; des seconds moyens d'emmagasinage d'informations fonctionnant en réponse aux signaux d'adresse présents sur ledit troisième bus pour charger des signaux de données sur ledit premier bus en vue de leur transmission auxdits premiers moyens d'emmagasinage. 3.- Système selon la revendication 1 ou 2 caractérisé en ce que lesdits seconds moyens d'emmagasinage reçoivent sélectivement des signaux de données dudit second bus en vue de leur transmission ultérieure auxdits premiers moyens d'emmagasinage. 4.- Système selon la revendication 1, 2 ou 3 caractérisé en ce qu'il comprend, en outre, des troisièmes moyens d'emmagasinage d'informations fonctionnant en réponse aux signaux d'adresse présents sur ledit second bus pour charger des signaux de commande sur ledit premier bus en vue de leur transmission à ladite unité de traitement. 5.- Système selon l'une des revendications 2, 3 ou 4 caractérisé en ce qu'il comprend des dispositifs d'entrée/sortie adresse par ledit troisième bus chargeant des signaux de données sur ledit premier bus et recevant des signaux de données sur ledit second bus. 6.- Système selon la revendication 4 ou 5 caractérisé en ce que ladite unité de traitement comprend: un registre d'adresse pour enregistrer sélectivement des adresses d'emplacements desdits premiers et troisièmes moyens d'emmagasinage, des moyens de commande et de synchronisation pour commander sélectif vement le transfert des signaux desdits moyens d'emmagasinage audit premier bus et dudit registre d'adresse audit second bus. 7.- Système selon la revendication 6 caractérisé en ce que: ledit registre d'adresse fonctionne en réponse auxdits moyens de commande et de synchronisation pour charger sur ledit second bus au cours d'une première période de temps d'horloge, une première adresse et, au cours d'une seconde période de temps d'horloge, une seconde adresse et, lesdits troisièmes moyens d'emmagasinage chargent sur ledit premier bus des signaux d'instruction spécifiés par ladite première adresse et lesdits premiers moyens d'emmagasinage transfèrent ou reçoivent des signaux de données sur ou en provenance dudit premier bus dont les emplacements sont spécifiés par ladite seconde adresse. 8.- Système selon la revendication 7 caractérisé en ce que: ladite unité de traitement--comprend des moyens d'exécution d'instruction pour exécuter les instructions en réponse aux signaux d'instruction en provenance dudit premier bus, lesdits moyens de commande et de synchronisation commandent le transfert audit second b-us des données résultant de l'exécution d'une première instruction pendant que lesdits moyens d'eution d'instruction exécutent l'instruction suivante. 9. - Système selon la revendication 8 caractérisé en ce que ladite unité de traitement comprend des moyens pour commander le transfert sur ledit premier bus de signaux de données en provenance desdits premiers moyens d'emmaga singe en vue de leur utilisation par lesdits moyens d'exécution pendant qu'ils exécutent l'instruction suivante de la séquence. 10.- Système selon l'une quelconque des revendications 6 à 9 caractérisé en ce que ladite unité de traitement comprend: une unité arithmétique et logique associée à plusieurs registres d opérande, des moyens de transmission pour transférer à ladite unité arithmétique et logique des signaux d'adresse provenant dudit registre d'adresse et des données provenant desdits registres d'opérande. 11.- Système selon la revendication 10 caractérisé en ce que ladite unité arithmétique et logique comprend, en outre, des moyens pour combiner ari thmétîquement des données provenant dudit registre d'adresse et d'un desdits registres d'opérande et pour recharger le résultat dans ledit registre d'adresse et sur ledit second bus. 12.- Système selon la revendication 10 ou Il destiné à simuler le fonctionnement d'un autre système de traitement de données caractérisé en ce que: lesdits troisièmes moyens d'emmagasinage contiennent des instructions séquentielles organisées en plusieurs séquences, l'un desdits registres d'opérande contient le code opératoire de l'instruction à émuler, ledit registre d'adresse contient le pointeur d'adresse désignant l'emplacement dans lesdits troisièmes moyens d'emmagasinage de l'instruction séquentielle en cours d'exécution, et ladite unité arithmétique et logique combine arithmétiquement ou logiquement ledit pointeur d'adresse et ledit code opération afin de calculer un pointeur de déplacement l'emplacement desdits troisièmes moyens d'emmagasinage contenant l'adresse immédiate de la séquence d'instructions devant exécuter le code opération de l'instruction qui est émulée. 13.- Système selon l'une quelconque des revendications précédentes caracté- risé en ce qu'il comprend en outre: un bus d'appel sélectif comprenant une pluralité de lignes pouvant être conditionnées par des dispositifs d'entree/sortie désirant signaler des demandes de vols de cycle ou des demandes d'interruption, à ladite unité de traitement, un moyen de masquage d'interruption pour permettre ou interdire les demandes d'interruption de façon sélective, un moyen de porte d'interruption pour signaler la présence d'une demande d'interruption permise sur ledit bus d'appel sélectif en réponse audit moyen de masquage d'interruption, et un moyen de codage de priorité pour fournir un signal de priorité de niveau d'interruption en réponse audit moyen de porte et fournir un signal de priorité de vols de cycle en réponse audit bus d'appel sélectif. 14.- Système selon la revendication 13 caractérisé en ce que: lesdits troisièmes moyens d'emmagasinage contiennent des séquences d'instructions adressables pour traiter les demandes d'interruption, ladite unité de traitement contient-un registre de premier niveau u'interruption contenant une représentation du niveau d'interruption en cours, et un registre de second niveau d'interruption destine a recevoir des pointeurs pour adresser lesdits troisièmes moyens d'emmagasinage, raison d'un pointeur pour chaque séquence d'instructions, un moyen d'adressage adresse ledit registre de second niveau d1in- terruption de façon à obtenir le pointeur d'adressage desdits troisièmes moyens d'emmagasinage, lorsque ledit moyen de porte d'interruption signale la présence, sur ledit bus d'appel sélectif, d'une demande d'interruption ayant une priorité plus élevée que l'interruption en cours. l Système selon la revendication 14 et la revendication 6 caractérisé en ce que ledit moyen de porte d'interruption charge les signaux d'adresse de niveau d'interruption permise sur ledit troisième bus en réponse à une demande d'interruption permise, et ledit registre d'adresse reçoit l'adresse de la première instruction à exécuter sur ledit premier bus, en réponse auxdits signaux d'adresse de niveau d'interruption permise. 16.- Système selon la revendication 15 caractérisé en ce qu'il comprend en outre un registre adressable par les signaux d'adresse du niveau d'interruption en cours et du niveau d'interruption.permise sur ledit troi sième bus, pour emmagasiner l'adresse de la prochaine instruction pour le niveau d'interruption en cours et charger l'adresse de la première instruction pour le niveau d'interruption permise sur ledit premier bus.