Brevet FR2491233A1 — publié le 19820402

L'invention se rapporte à un système de commande de microprogramme pour processeur. Dans les processeurs-ordinaires, les opérations de commande pour l'exécution d'instructions logiàielles sont effectuées en fonction de signaux de commande issus d'une unité de commande composée de circuits logiques. Il s'ensuit que l'unité de commande est si compliquée qu'il est difficile de faire les modifications désirées des opérations effectuées par le processeur. D'autre part, certains processeurs comman- dés par microprogrammes ayant été réalisés récemment comman- dent l'exécution d'instructions logi.ielles en emmagasinant une pluralité de microinstructions dans une mémoire réservée, en lisant séquentiellement ces microinstructions dans la mémoire, et en les décodant. Les processeurs de ce type pré- sentent un avantage résidant en ce que les modifications précitées des opérations du processeur peuvent être aisément obtenues, en ré-écrivant simplement les microinstructions im- pliquées. L'accroissement de la vitesse de fonctionnement de tels processeurs exige des opérations à haute vitesse dans la mémoire réservée. Or, des mémoires réservées à haute vites- se sont très coûteuses. Par ailleurs, des opérations à haute vitesse sont demandées pour l'exécution d'instructions logicielles géné- rales. Il y a néanmoins des instructions logicielles, telles que celles destinées à des traitements exceptionnels, qui peuvent être traitées à des vitesses relativement basses sans affecter par contre la performance des opérations du proces- seur. Jusqu'à présent, même ces dernières instructions logiciel les ont été exécutées en utilisant une pluralité de microins- tructions emmagasinées dans une mémoire à haute vitesse, em- pêchant ainsi l'emploi économique de cette mémoire. Comme solution à ce problème, il a été proposé un système dans le- quel une pluralité de microinstructions pour l'exécution d'instructions logicielles méritant des traitements à basse vitesse, sont emmagasinées dans une mémoire principale ordinai- re, une microinstruction requise est lue dans cette mémoire chaque fois qu'une requête pour le traitement demandé se pré- sente, et la microinstruction lue est écrite par recouvrement sur une microinstruction présentement non nécessaire, em- magasinée dans une mémoire réservée pour commander l'exécu- tion des instructions logicielles. Pour avoir plus de détail sur le constitution de ce système, on peut se référer au brevet US no 3 478 322. En particulier, dans le système décrit dans ce brevet, une microinstruction issue d'une mémoire principale (portant la référence 36 à la figure lA) est fournie à ECCS1 et ECCS2 par l'intermédiaire d'un canal 6 d'entrée-sortie de calculateur, d'un adaptateur de canal à canal 40, et d'un canal 5 d'entrée-sortie d'ECCS. Ce système n'exclut pas l'inconvénient consistant en la difficulté d'exécution de modifications fonctionnelles ou de conception, car les opérations de commande impliquées sont effectuées par l'intermédiaire d'une unité de commande formée de circuits logiques compliqués tels que ceux mentionnés ci-dessus. La présente invention vise à éliminer les inconvé- nients précités et a pour objet un système de commande de microprogramme simplifié et capable de souplesse en écriture par recouvrement. Un système de commande de microprogramme conforme à l'invention, destiné à servir dans un processeur, comprend - un premier moyen de stockage pour mémoriser une pluralité de microinstructions exploitant chacune une zone de code d'opération et une zone d'adresse; - une mémoire principale conçue pour subir un adres- sage selon le contenu de la zone d'adresse dans une microins- truction reçue dudit premier moyen de stockage; - un second moyen de stockage pour mémoriser les données lues de ladite mémoire principale en réponse audit adressage; et - des moyens pour écrire lesdites données dans le second moyen de stockage en réponse au contenu de la zone de code d'opération dans ladite microinstruction. L'invention met ainsi en oeuvre une pluralité de mémoires de commande, de sorte que par la commande de micro- instructions stockées dans une seule mémoire de commande, une microinstruction requise est transférée de la mémoire principale à l'autre mémoire de commande. 2A91233 Les caractéristiques et avantages de l'invention ressortiront plus clairement de la description qui suit, faite en référence aux dessins annexés. Dans les dessins - la figure 1 est une vue synoptique fragmentaire d'un processeur mettant en oeuvre un exemple de réalisation d'un système de commande de microprogramme conforme à l'in- vention; - la figure 2 est une vue schématique d'un circuit logique représentant en détail un exemple de constitution d'un circuit de génération de bit, de contrôle d'erreur 271 ou 272 indiqué à la figure 1 i - la figure 3 est une vue synoptique illustrant en détail un exemple de constitution d'une unité arithmétique impliquée dans le circuit représenté sur la figure 1;et - la figure 4 est un schéma illustrant la sortie 701 d'un sélecteur 70 indiqué à la figure 1. La figure 1 présente un système de commande de micro- programme conforme à l'invention, tel qu'incorporé dans un processeur. Le système comprend une mémoire principale 10, une unité d'écriture 20, des générateurs d'adresses 30 et , des mémoires de commande 40 et 60, un circuit de sélec- tion 70, et une unité arithmétique 80. L'unité d'écriture inclut des registres 21 et 23, un dispositif de décalage 22, des circuits de sélection 24, 251 et 252, des registres 261 et 262, et des circuits de génération de bit de contrôle d'erreur 271 et 272. Le générateur d'adresses 50 inclut des circuits de sélection 51, 53 et 55, des registres 52, 56 et 57 et un additionneur 54. La figure 2 révèle que le circuit de génération de bit de contrôle d'erreur 271 ou 272 inclut un premier groupe d'au moins deux portes OU exclusif 2710 adapté pour recevoir en unités de trois bits l'information formée de 72 bits au total, du bit 0 au bit 71, depuis le registre 261 ou 262, et pour effectuer une somme logique exclusive de-l'infor- mation, et un second groupe d'au moins deux portes OU exclusives 2711 adaptées pour effectuer une somme logique exclusive des signaux issus des trois portes OU exclusif adjacentes du premier groupe 2710. Le circuit 271 ou 272 peut corriger une erreur-d'un bit et détecter une erreur de deux bits. La figure 3 révèle que l'unité arithmétique 80 à la, figure 1 est composée d'un décodeur 801, d'un registre de base 802 pour mémoriser l'adresse de base indiquant l'adresse de tête de la mémoire associée ou la mémoire principale, d'un registre d'argument 803 pour mémoriser l'adresse d'argument indiquant l'adresse de déviation s'étendant de cette adresse de base jusqu'à une adresse donnée, et d'un circuit arithmé- tique 804 pour effectuer un calcul en rapport avec lesdites adresses de base et d'argument. La figure 4 illustre le format de la donnée de sortie 701 du circuit de sélection 70 indiqué aux figures 1 et 3. Ce format de sortie reste inchangé, indépendamment du fait que la donnée soit issue du registre 261 ou du registre 262. La donnée de sortie 701 est composée d'une zone de code d'opération OP, d'une zone de commande CNT1 de l'accès mémoire, d'une zone de commande CNT2 de l'unité d'écriture 20, et de générateurs d'adresse 30 et 50 représentés sur la figure 1. Le fonctionnement du système conforme à la présente invention va maintenant être décrit en détail en référence aux figures 1 à 3. Lorsque l'exécution des microinstructions dans la mémoire de commande 60 est arrivée au point o une plurali- té de microinstructions à traiter ultérieurement ne sont pas présentes dans la mémoire de commande 60 mais sont stockées dans la mémoire principale 10, il devient nécessaire que la pluralité de microinstructions à traiter ultérieurement soit prélevée de la mémoire principale 10 et stockée dans la mémoire de commande 60. Dans ce cas, une microinstruction pour lire les microinstructions à traiter ultérieurement, est d'abord prélevée de la mémoire de commande 60, passée dans le circuit de sélection 251, et stockée dans le registre 261. Ensuite, une adresse prédéterminée pour la détermination d'une routine d'écriture par recouvrement destinée à la mémoire de commande 60, à savoir une adresse de terminal de branchement dans la mémoire de commande 40, est adressée par le registre 261 à travers un circuit de sélection 35, un registre 36 et un circuit de sélection 33. L'information sur l'adresse de terminal de branchement est ajoutée à +1 par un additionneur 34, et le résultat de l'addition est fourni par un circuit de sélection 31, un registre 32 et le circuit de sélection 33 à la mémoire de commande 40 pour son adressage. En répon- se à cet adressage et à l'adressage de terminal de branche- ment, une microinstruction pour la routine de recouvrement est prélevée de la mémoire de commande 40 et fournie, par l'intermédiaire du circuit de sélection 252, du registre 262 et du circuit de sélection 70 à l'unité arithmétique 80. Dans cette unité arithmétique, la microinstruction est décodée par le décodeur 801 et traitée par le circuit arith- métique 804 illustré à la figure 3. Au cours du traitement de la routine de recouvrement, le contenu de la zone de commas de CNT1 de la donnée de sortie 701 issu du circuit de sélec- tion 70 est d'abord décodé par le décodeur 801, une adresse de la mémoire principale 10 est calculée par le circuit arithmétique 804, et les résultats sont fournis, en plus d'une requetez de lecture 8010, à la mémoire principale 10. En réponse à la fourniture de ces résultats, une adresse d'insertion pour la mémoire de commande 60 est lue dans la mémoire principale 10. Cette adresse d'insertion sert à com- mander le fonctionnement suivant, en réponse à un signal de commande de la zone de commande CNT2 représenté sur la figure 2, qui est décodé par le décodeur 801. Plus précisément, l'adresse d'insertion est mise dans le registre d'adresse 52 via le registre 21, le dispositif de décalage 22, et le registre 23 à l'intérieur de l'unité d'écriture 20, et ensuite via le circuit de sélection 51 dans le générateur d'adresses 50. L'adresse d'insertion qui a ainsi été stockée dans le registre 52 désigne une adresse de la mémoire principale 10 et conduit la première donnée (72 bits à être lue et stockée dans le registre 21, sous la commande du champ CNT2 de la sortie 701 qui sert à désigner la mémoire de commande 60 via le circuit de sélection 53. Puis, la donnée (72 bits) est divisée en un champ supérieur et un champ inférieur par le dispositif de décalage 22, et ces champs sont stockés, maintenant en unités de 36 bits, dans les champs prescrits du registre 23. Ensuite, la donnée du registre 23 est délivrée via le circuit de sélection 24 et le circuit de sélection 2 '91233 251 et stockée dans le registre de commande 261. Puis, le circuit de génération de bit de contrôle d'erreur 271 pro- duit un bit de contrôle d'erreur relatif à la donnée dans le registre de commande 261 et ajoute ce bit à la donnée. Le résultat de l'addition est fourni au circuit de sélection 24. La constitution du circuit 271 a été décrite en détail ci-dessus en référence à la figure 2. La donnée et le bit de contrôle d'erreur qui ont été donnés au circuit de sélection 24 sont transmis par le circuit de sélection 251 et resto- ckés dans le registre de commande 261. Ensuite, en fonction de l'adresse indiquée dans le registre d'adresse 52, interne au générateur d'adresse50, le contenu du registre 261 est écrit en un seul mot dans la mémoire de commande 60. Simultané- ment à cette opération d'insertion, le contenu du registre d'adresse 52 est ajouté à +1 dans l'additionneur 54 et la somme résultante est stockée dans le registre d'adresse 52. La série des opérations précitées est répétée jusqu'à ce que toutes les microinstructions nécessaires soient chargées dans la mémoire de commande 60. Lorsque le transfert des microinstructions nécessaires depuis la mémoire principale 10 jusqu'à la mémoire de commande est achevé, une adresse de terminal de branchement est lue dans le champ d'adresse de la dernière microinstruction de la routine de recouvrement stockée dans la mémoire de com- mande 40, puis elle est transmise par le circuit de sélection 252, le registre 262 et le circuit de sélection 55 du géné- rateur d'adresse 50 pour être stockée dans le registre 56, de sorte que la mémoire de commande 60 est désignée par l'in- termédiaire du circuit de sélection 53. Ensuite, une adresse de retour stockée dans le registre 57 est lue, et l'adresse dans la mémoire principale 10 d'une microinstruction précédent immédiatement l'exécution de la routine de recouvrement est désignée. En réponse à cette désignation, les microinstructions sont lues et la pluralité de microinstructions issues de la mémoire principale et stockées dans la mémoire de commande 60 par suite de l'exécution de la routine de recouvrement précitée, sont traitées. Pour résumer, dans l'exemple de réalisation représenté sur la figure 1, une boucle comprenant le registre 27, le 2 '91233 dispositif de décalage 22, le registre 23, les circuits de sélection 24 et 251, le registre 261, le circuit de généra- tion de bits de contrôle d'erreur 271, les circuits de sélection 24 et 251, le registre 261 et la mémoire de commande 60 participe à l'opération d'écriture. Cette boucle répond au contenu de la zone de code d'opération par l'in- termédiaire de la ligne comprise entre le registre 261 et le circuit de sélection 70. D'autre part, une boucle comprenant successivement la mémoire de commande 40, le circuit de sélection 252, le registre 262, le circuit de sélection 70, l'unité arithmétique 80 et la mémoire principale 10 parti- cipe à l'opération de commande comprenant l'adressage de la mémoire principale, la lecture de cette mémoire et le chargement dans la mémoire de commande 60. La mémoire de commande 40 est adressée depuis le générateur d'adresse 30, suivant la ligne comprise entre le circuit de sélection 33 et la mémoire de commande 40, tandis que la mémoire de comman- de 60 est adressée depuis le générateur d'adresse 50, suivant la ligne comprise entre le circuit de sélection 53 et la mémoire de commande 60. Telle qu'elle vient d'être décrite, l'invention a pour effet de permettre un recouvrement souple et bon marché en micro-programmation, du fait d'être effectuée en chargeant, sous la commande de microinstructions stockées parmi l'une de la pluralité de mémoire de commande, l'instruction nécessai- re depuis la mémoire principale jusque dans l'autre mémoire de commande. 2 4'91233 REVENDICATIONS 1. Système de commande de microprogramme pour proces- seur, caractérisé en ce qu'il comprend un premier moyen de stockage (40) pour mémoriser une pluralité de microinstruc- tions possédant chacune une zone de code d'opération (OP) et une zone d'adresse (CNT1, CNT2); une mémoire principale (10) adaptée pour subir un adressage selon le contenu de la zone d'adresse dans une zone de microinstruction reçue dudit premier moyen de stockage; un second moyen de stockage (60) pour mémoriser la donnée lue de la mémoire principale en ré- ponse audit adressage; et des moyens (20) pour écrire dans ledit second moyen de stockage ladite donnée en réponse au contenu de ladite zone de code d'opération. dans ladite microinstruction.