Brevet FR2491654A1 — publié le 19820409

1. La présente invention concerne un appareil. de commande par microprogramme destiné à commander une suite d'opérations élémentaires dans un système de traitement de l'information. Un appareil de commande par microprogramme de cette nature servant à un traitement à grande vitesse est proposé dans le brevet des Etats-Unis d'Amérique n0 3.800.293. Cet appareil est équipé de première et seconde mémoires de commande 18 et 19, comme cela est représenté dans la figure, chacune, stockant une pluralité de micro- instructions pour l'exécution d'une instruction du système de poids plus élevé. Dans cet appareil, la micro-instruc- tion finale de la pluralité de micro-instructions stockées dans la première mémoire de commande 18 est exécutée concur- remment et en parallèle à l'exécution de la micro-instruc- tion initiale des multiples micro-instructions stockées dans la seconde mémoire de commande 19. Cependant, les autres micro-instructions stockées dans les deux mémoires 18 et 19 sont exécutées en série. De cette façon, étant donné que la micro-instruction finale de la première instruction du système et la première micro-instruction de la seconde ins- truction du système sont exécutées en parallèle, le temps total d'exécution nécessaire peut être relativement réduit 2. par rapport au traitement séquentiel de telles séquences de micro-instructions, sans arrêt du fonctionnement d'une uni- té arithmétique. Cependant, un nombre plus grand de micro-instruc- tions destinées à la commande d'un traitement compliqué entraîne une augmentation de la capacité de chacune des mé- moires de commande utilisées, ce qui à son tour se traduit par une augmentation du temps d'accès à chacune des mémoi- res de commande, perturbant l'exploitation à grande vites- lO se. Un objet de la présente invention est un appareil de commande par microprogramme qui ne souffre pas des incon- vénients décrits ci-dessus des appareils de l'art antérieur. Selon l'un des aspects de la présente invention, on prévoit un appareil de commande par micro-instructions pour la commande de séquences de micro-instructions, cha- que micro-instruction ayant unezone d'adresses de branche- ment. L'appareil de la présente invention comprend: un premier moyen de mémoire de commande pour stocker l'infor- mation de commande; un second moyen de mémoire de commande pour stocker une micro-instruction; un troisième moyen de mémoire de commande constitué d'une pluralité de parties de mémoire de commande, chacune d'entre elles stockant une pluralité de micro-instructions; un premier moyen de sélec- tion pour sélectionner soit la micro-instruction provenant du second moyen de mémoire de commande, soit une micro-ins-.. truction sélectionnée dans la pluralité de micro-instruc- tions provenant du troisième moyen de mémoire de commande; un moyen de décodage destiné au décodage d'au moins une mi- cro-instruction sélectionnée par le premier moyen de sélec- tion; et un second moyen de sélection pour sélectionner soit le résultat décodé du moyen de décodage, soit l'infor- mation de commande provenant du premier moyen de mémoire de commande, d'o il résulte que l'information de commande stockée dans le premier moyen de mémoire de commande est lue dans une adresse correspondante en réponse à une adresse 3. donnée par une unité extérieure; la micro-instruction sto- ckée dans le second moyen de mémoire de commande est lue dans une adresse correspondante en réponse à une autre adresse donnée par l'unité; et la micro-instruction sélectionnée par- mi les micro-instructions stockées dans le troisième moyen de mémoire de commande est lue dans une adresse correspondante en réponse au contenu de la zone d'adresses de branchement de la micro-instruction provenant de la seconde mémoire de commande. La présente invention sera bien comprise lors de la description suivante faite en liaison avec les dessins ci-joints dans lesquels: La figure 1A représente un mode de réalisation de la présente invention; La figure 1B représente un format de micro-ins- tructions utilisé dans la présente invention; La figure 2A est un diagramme de description du fonctionnement du mode de réalisation représenté en figure 1; et La figure 2B est un diagramme représentant la rela- tion entre une macro-instruction et une micro-instruction. Dans les figures, des références identiques repré- sentent des éléments de structure identiques. De plus, cha- que cercle entourant une porte représente l'inversion de sa sortie et les trajets de signaux et les signaux peuvent être utilisés sans destruction. En liaison avec la figure lA, un mode de réalisa- tion de la présente invention comprend un registre 5 de ma- cro-instructions pour mémoriser une macro-instruction, une mémoire de commande d'adresses 10 pour mémoriser une plura- lité d'adresses, un registre d'adresses 120 pour mémoriser une adresse provenant de la mémoire 10, une première mémoire pour stocker une information de commande, un registre d'adresses 20 pour stocker l'adresse provenant de la mémoire 10, une seconde mémoire de commande 30 pour stocker une mi- cro-instruction, et une troisième mémoire de commande 450 constituée de deux parties de mémoire 40 et 50 (chacune d'en- tre elles stockant plusieurs micro-instructions). Chaque opé- 4. ration de stockage de tels contenus dans le registre 5 et les mémoires 10, 140, 30 et 450 est exécutée extérieure- ment dans un premier temps au moment du démarrage de l'appa- reil représenté en figure 1A. Le présent mode de réalisation de l'invention com- prend en outre un sélecteur 60 destiné à sélectionner soit la micro-instruction provenant de la mémoire 30, soit une micro-instruction sélectionnée provenant de la partie de mémoire 40, un sélecteur 70 destiné à sélectionner soit la micro-instruction provenant de la mémoire 30, soit une micro- instruction sélectionnée provenant de la partie de mémoire 50, un registre de micro-instructions 80 destiné à stocker la sortie du sélecteur 60, un registre de micro-instructions destiné à stocker la sortie du sélecteur 70, un circuit de commande 100 répondant aux sorties des registres 80 et 90, un sélecteur 110 destiné à sélectionner l'une ou l'autre des sorties des registres 80 et 90 en réponse à un signal de commande provenant du circuit 100, un décodeur de mémoire destiné à décoder la sortie du sélecteur 110, un s6lec- teur 150 destiné à sélectionner l'une ou l'autre des sorties de la mémoire 140 et du décodeur 130 en réponse au signal de commande provenant du circuit 100, un registre de décodeur de mémoire 160 destiné à stocker la sortie du sélecteur 150,et une unité arithmétique 170 destinée à exécuter l'opération pour le contenu du registre 160. En liaison avec la figure 1B, chaque micro-ins- truction comprend une zone à code exécution (OP) ayant un bit B0, une zone d'information de commande ayant des bits B1 à B3, une zone d'adresses de décodeur ayant des bits B4 et B5, et une zone d'adresses de branchement ayant des bits B6 et B7. Chaque inversion de ces bits est représentée en 81, -2... et B7, respectivement, dans la figure lA. Le sélecteur 60 est constitué d'un circuit ET 61 destiné à donner un produit logique d'un signal provenant du circuit 100 par l'intermédiaire d'un trajet de signal 1010 et d'une micro-instruction provenant de la partie de mémoire , d'une porte 62 destinée à former un signal de sélection 5. utilisant le signal provenant du circuit 100 via un trajet de signal 1030, et de portes NON ET 63, 64 et 65 destinées à sélectionner l'une ou l'autre des micro-instructions prove- nant de la seconde mémoire de commande 30 et de la partie de mémoire de commande 40 en réponse au signal de sélection pro- venant de la porte 62. Le sélecteur 70 a une structure iden- tique à celle du sélecteur 60. Le circuit de commande 100 comprend une porte ET 101 destinée à donner un produit logi- que des bits 82 et 63 du contenu du registre 80, et une por- te ET 102 destinée à donner un produit logique des bits B3 et -2 du contenu du registre 90, et une porte ET 103 desti- née à donner un produit logique des bits 81 du contenu du registre 80 et du bit r1 du contenu du registre 90. Le sélecteur 110 comprend une porte NON ET 111 destinée à provoquer une inversion du produit logique des bits B4 des contenus des registres 80 et 90 et une porte NON ET 112 destinée à donner une inversion du produit logique des bits 85 des contenus des registres 80 et 90. Le circuit comprend une porte 151 destinée à former un signal de sélection utilisant un signal donné via la porte ET 103 du circuit 100 par l'intermédiaire du trajet de signal 1030,et des portes NON ET 152,153 et 154 destinées à sélectionner l'une ou l'autre des sorties du décodeur de mémoire 130 et de la mémoire de commande 140 en réponse à la sortie de porte 151. Le décodeur 130 peut avoir la même composition que le type décrit en 3 de la figure la dans le brevet des Etats-Unis d'Amérique n0 4.051.460. Le fonctionnement du mode de réalisation de la présente invention sera maintenant décrit en détail. En liaison avec la figure 2B, une macro-instruc- tion (appelée ci-après simplement "instruction") NA(A) est constituée d'une information de commande (A) et de trois mi- cro-instructions (A + 1), (A + 2) et (A + 3), alors qu'une instruction MA(B) comprend une information de commande (B) et 3 micro-instructions (B + 1), (B + 2) et (B + 3). Chaque ins- truction MA(A) et MA(B) a une zone de code opération et au 6. moins une autre zone telle qu'une zone d'adresse (non utili- sée dans ce mode de réalisation). De plus, l'instruction MA(B) est établie dans le registre 5 un cycle d'horloge après l'établissement de l'instruction MA(A) dans ce registre.De plus, l'information de commande (A) et (B), les micro-instruc- tions (A + 1) et (B + 1), les microinstructions (A + 2) et (A + 3), les micro-instructions (B + 2) et (B + 3) sont sto- ckées dans les mémoires de commande 140, 30, les parties de mé- moire de commande 40, 50, respectivement. L'exécution de cha- O10 que micro-instruction nécessite un cycle d'horloge (CL). En liaison avec les figures 1A et 2A, en réponse au code opération de l'instruction MA(A) établi initialement dans le registre 5, l'adresse A est donnée par la mémoire de com- mande 10 au registre 120 de façon que l'information de comman- de (A) stockée dans la mémoire de commande 140 soit lue. L'in- formation (A) est alors stockée dans le registre 160 par l'intermédiaire du sélecteur 150 de façon à commander l'unité arithmétique 170, étant donné que le circuit de commande lO0 produit "l" à la porte 103 à l'état initial de l'appareil de la figure lA. Entre temps, l'adresse A + 1 est donnée par la mémoire 10 au registre 20, en réponse au code opération de l'instruction MA(A) établie dans le registre 5, de sorte que la microinstruction (A + 1) stockée dans la mémoire 30 est lue. Le circuit 100 commande la sélection de la micro- instruction (A + 1) par les sélecteurs 60 et 70. Ainsi, les microinstructions (A + 1) sélectionnés par les sélecteurs et 70 sont stockées concurremment dans les registres 80 et 90. La micro-instruction (A + 2) stockée dans la partie de mémoire 40 est lue par la zone d'adresse de branchement de la micro-instruction (A + 1) stockée dans le registre 80. En réponse à des "1" des deux bits B2 et B3 du registre 80, le circuit 100 produit un "1" sur le trajet 1010 pour qu'il y ait lecture de la micro-instruction (A + 2) dans la partie de mémoire 40. En outre, le décodeur 130 produit une sortie en réponse à la zone d'adresse de décodeur de la micro-instruc- tion (A + 1) sélectionnée par le sélecteur 110. La sortie du décodeur 130 est alors sélectionnée par le sélecteur 150 et 7. stockée dans le registre de décodeur 160 de façon à comman- der l'unité arithmétique 170. Similairement, la micro-ins- truction (A + 3) est lue dans la partie de mémoire 40 de fa- çon à être stockée dans le registre 80. Par la zone d'infor- mation de commande de la micro-instruction (A + 3) stockée dans le registre 80,1a terminaison de l'instruction MA(A) est désignée de façon que le circuit 100 puisse commander les sélecteurs 60 et 70 pour qu'il y ait stockage, dans les registres 80 et 90, de la micro-instruction (B + 1) de l'ins- truction MA(B) établie dans le registre 5 un cycle après l'établissement de l'instruction MA(A) dans ce registre. L'exécution de l'instruction MA(B) est faite de la même ma- nière que celle de l'instruction MA(A). C'est-à-dire que l'adresse B est donnée par la mémoire de commande 10 au registre 120 en réponse code opération de l'instruction MA(B) établi dans le registre 5, de sorte que l'information de commande B stockée dans la mémoire de commande 140 est lue. La micro-instruction (B + 1) est alors lue dans la mé- moire 30 de façon à être stockée dans les registres 80 et 90. La microinstruction (B + 2) stockée dans la partie de mémoire 50 est lue par la zone d'adresse de branchement de la micro-instruction (B + 1) stockée dans le registre 90. En réponse à des "1" des deux bits B2 et B3 du registre 90, le circuit 100 produit un "1" sur les trajets 1020 de façon à lire la micro-instruction (B + 2) dans la partie de mémoi- re 50. En outre, le décodeur 130 produit une sortie en ré- ponse à la zone d'adresse de décodeur de la micro-instruc- tion (B + 1) sélectionnée par le sélecteur 110. La sortie du décodeur 130 est alors sélectionnée par le sélecteur 150 et stockée dans le registre 160 de façon à commander l'uni- té 170.De même, la micro-instruction (B + 3) est lue dans la partie de la mémoire 50 de façon à être stockée dans le registre 80. Par le champ d'information de commande de la micro-instruction (B + 3) stockée dans le registre 90, la terminaison de l'instruction MA(B) est désignée. De cette façon, l'exécution en parallèle des ins- tructions MA(A) et MA(B) est complétée par l'utilisation de 8. plusieurs micro-instructions. Ainsi, la présente invention permet l'exécution en parallèle de plusieurs macro-instructions en utilisant princi- palement les mémoires de commande 30 et 450 et en divisant les mémoires de commande 450 en parties 40 et 50 sans arrêt du fonctionnement de l'unité arithmétique 170. L'adoption de la mémoire 450 divisée en parties 40 et 50 facilite le main- tien à une faible valeur de chaque capacité de mémoire de ces parties de mémoire de commande par rapport à chaque mémoi- re de commande utilisée dans l 'appareil représenté dans le brevet des Etats-Unis d'Amérique nu 3.800.293 et par consé- quent évite l'augmentation du temps d'accès aux mémoires. De la même manière, la présente invention permet d'avoir une capacité pour la mémoire de commande 30 beaucoup plus petite que celle de chaque mémoire de commande utilisée dans l'appareil représenté dans le brevet des Etats-Unis d'Amérique nu 3.800.293. La présente invention M'est pas limitée aux exemples de réalisation qui viennent d'être décrits, elle est au con- traire susceptible de modifications et de variantes qui ap- paraltront à l'homme de l'art. 9. REVENDICATIONS l - Appareil de commande micro-programmé pour la commande de séquences de micro-instructions, chaque micro- instruction ayant une zone d'adresse de branchement, carac- térisé en ce qu'il comprend: - un premier moyen de mémoire de commande (140) destiné à mémoriser une information de commande; - un second moyen de mémoire de commande (30) des- tiné à mémoriser une micro-instruction; - un troisième moyen de mémoire de commande (450) constitué d'une pluralité de parties de mémoire de commande (40, 50) chaque partie stockant une pluralité de micro-ins- tructions; - un premier moyen de sélection (60) destiné à sé- lectionner soit la micro-instruction provenant du second moyen de mémoire de commande, soit une micro-instruction sélectionnée parmi la pluralité de micro-instructions provenant du troisième moyen de mémoire de commande; un moyen de décodage (130) destiné à décoder au moins une micro-instruction sélectionnée par le premier mo- yen de sélection; et - un second moyen de sélection (150) destiné à sélectionner soit le résultat décodé du moyen de décodage, soit l'information de commande donnée par le premier moyen de mémoire de commande, d'o il résulte que l'information de commande stockée dans le premier moyen de mémoire de com- mande est lue dans une adresse correspondante en réponse à une adresse donnée par une unité extérieure; la micro-ins- truction stockée dans le second moyen de mémoire de commande est lue dans une adresse correspondante en réponse à une au- tre adresse donnée par cette unité; et la micro-instruction sélectionnée dans la pluralité de micro-instructions sto- ckées dans le troisième moyen de mémoire de commande est lue dans une adresse correspondante en réponse à la zone d'adres- se de branchement de la micro-instruction provenant de la seconde mémoire de commande.