Brevet FR2667411A1 — publié le 19920403

DISPOSITIF DE CORRECTION D'ERREURS DE MEMOIRE DE COMMANDE La présente invention se rapporte à un dispositif de commande de microprogrammes dans un dispositif de traitement de l'information et plus particulièrement, à un dispositif de correction d'erreurs de mémoire de commande ayant pour fonction de détecter/corriger une opération comportant une erreur pouvant être corrigée, et de bloquer l'opération d'une unité de calcul pendant la détection de l'erreur. Un exemple de type classique sera décrit ci-après en faisant référence aux dessins annexés. La figure 4 montre l'agencement du dispositif classique de commande de micro-programmes En se reportant à la figure 4, une micro- instruction est stockée dans une mémoire de commande 21 Cette micro- instruction est constituée par les composants suivants: une zone d'adresse A, représentant l'information d'adresse suivante; une zone de commande arithmétique B agissant de manière à ce qu'un modèle de micro- instruction peut directement commander un circuit arithmétique 25; une zone de commande de modèle C pour produire le modèle de commande d'un circuit arithmétique 26; ainsi qu'un code de correction d'erreur suivant le code autorectifiable d'une série de modèles de bit La microinstruction extraite de la mémoire de commande 21 est mémorisée dans le registre 22 de micro-instruction. La zone C de commande de modèle de la micro- instruction mémorisée dans le registre 22 de micro- instruction est entrée dans un générateur de modèle de commande 23 Ce générateur de modèle de commande 23 produit un modèle de commande suivant la micro- instruction représentée par la zone C de commande de modèle et l'entre/le mémorise dans un registre 24 de mémorisation de modèle de commande Le registre 24 de mémorisation de modèle de commande transmet le modèle de commande mémorisé à un circuit arithmétique 26 pour le commander Deux procédés typiques de production de modèle de commande seront montrés ci-dessous en se référant aux figures 6 et 7 La figure 6 montre un procédé de décodage automatique suivant lequel un décodeur 72 décode une seconde zone d'une micro-instruction, ce qui permet d'obtenir un modèle de commande La figure 7 montre un procédé de décodage par RAM (mémoire vive), permettant d'obtenir un modèle de commande à partir d'une mémoire 73 de modèle de commande, en utilisant la seconde zone de la micro-instruction comme adresse Les procédés ci- dessus permettent d'obtenir un modèle de commande Le circuit arithmétique 26 mémorise le résultat arithmétique dans un registre 30 de résultat arithmétique. La zone de commande arithmétique B de la micro- instruction mémorisée dans le registre 22 de micro- instruction est entrée dans le circuit arithmétique 25. Le circuit arithmétique 25 exécute l'opération conforme à la microinstruction représentée par la zone de commande B, et entre/mémorise le résultat arithmétique dans un registre 29 de mémorisation de résultat arithmétique Il est à noter que le circuit arithmétique 25 et le registre 29 de mémorisation de résultat arithmétique constituent une unité de calcul 33, et que le circuit arithmétique 26 et le registre 30 de mémorisation de résultat arithmétique constituent une unité de calcul 34. Si les détecteurs d'erreur 271 à 273 d'un générateur 27 de signal d'interdiction de fonctionnement détectent des erreurs dans une quelconque zone d'adresse A, la zone de commande arithmétique B ou la zone de commande de modèle C de la micro-instruction mémorisée dans le registre 22 de micro-instruction, les détecteurs 271 à 273 transmettent un signal d'interdiction de fonctionnement D, par un circuit OU 274, interdisant la mise à jour du registre 24 de mémorisation de modèle de commande et des registres 29 et 30 de mémorisation de résultat arithmétique dans les limites de calcul 33 et 34 Par conséquent, ces registres ne sont pas touchés par une micro- instruction comportant une erreur Le circuit de correction d'erreur 28 corrige l'erreur dans la micro- instruction et la mémorise dans le registre de micro- instruction 22 pendant la production du signal d'interdiction de fonctionnement. L'ensemble des opérations ci-dessus va être décrit dans la suite en se rapportant aux chronogrammes de la figure 5 Quand une micro-instruction Ei', comportant une erreur, est mémorisée dans le registre de micro- instruction 22,le signal d'interdiction de fonctionnement D est actvé, la mise à jour du registre 24 de mémorisation de modèle de commande et des registres 29 et de mémorisation de résultat arithmétique est interdite, et les registres respectivement 24, 29 et 30 gardent les données F 1,_,, R 11 1 et R 2,_ 2 Une micro- instruction Ei à erreur corrigée est mémorisée dans le registre 22 de micro-instruction pendant le cycle suivant Le signal d'interdiction de fonctionnement D est annulé, et un fonctionnement normal recommence Par conséquent, les opérations du registre 24 de mémorisation de modèle de commande et les registres 29 et 30 de mémorisation de résultat arithmétique ne sont pas touchées par la micro-instruction Ei' et peuvent être exécutées correctement. Avec un dispositif de correction d'erreur de mémoire de commande de ce type, une erreur corrigible est détectée dans toutes les zones de la micro-instruction, et la mise à jour du registre 24 de mémorisation de modèle de commande et des registres 29 et 30 de mémorisation de résultat arithmétique dans les unités de calcul 33 et 34 est interdite pendant un cycle dans lequel une erreur est détectée. Avec le dispositif classique de correction des erreurs de mémoire de commande, une erreur corrigible est détectée dans toutes les zones de la micro-instruction et les opérations des unités de calcul sont interdites pendant un cycle dans lequel une erreur est détectée. Un dispositif de mémoire de micro-programme comprend en général une multiplicité de LSI (circuit intégré à grande échelle d'intégration) Quelques uns de ces LSI se trouvent à proximité d'un circuit arithmétique et quelques uns à distance d'un circuit arithmétique Le registre de micro-instruction est réalisé par une multitude de LSI bien répartis Pour cette raison, quand une erreur est détectée dans toutes les zones de la micro-instruction et que le signal D d'interdiction de fonctionnement est activé, la durée de retard du signal D d'interdiction de fonctionnement est prolongée pendant la propagation du registre de micro-instruction 22 des LSI éloignées au registre 24 de mémorisation de modèle de mémoire et aux registres 29 et 30 de mémorisation de résultat arithmétique Par conséquent, le cycle est également prolongé. Le but principal de la présente invention est de créer un dispositif de correction d'erreur de mémoire de commande empêchant qu'un cycle soit touché par le retard d'un signal d'interdiction de fonctionnement. Un autre but de la présente invention est de créer un dispositif de correction d'erreur de mémoire de commande empêchant qu'une unité de calcul soit touchée par une erreur au cas o une erreur s'est produite dans une quelconque zone de la micro-instruction. Afin d'atteindre les buts ci-dessus, suivant la présente invention, il est créé un dispositif de correction d'erreur de mémoire de commande comprenant une mémoire de commande pour mémoriser une micro-instruction avec une première zone pour commander une première unité de calcul à l'aide d'un modèle de micro-instruction et une seconde zone, produisant un modèle de commande pour commander une seconde unité de calcul, un registre de micro-instruction pour mémoriser la micro-instruction de la mémoire de commande, un générateur de modèle de commande pour produire le modèle de commande suivant la seconde zone du registre de micro-instruction, un registre de mémorisation de modèle de commande pour mémoriser le modèle de commande du générateur de modèle de commande et, un générateur de signal d'interdiction de fonctionnement pour changer les durées et les destinations des signaux d'interdiction de fonctionnement donnés à la première et à la seconde unités de calcul, et au registre de mémorisation de modèle de commande suivant le type de zones dans lequel une erreur est détectéee, lorsqu'une erreur corrigible est détectée dans une quelconque première ou seconde zones mémorisées dans le registre de micro-instruction. Les caractéristiques et avantages de l'invention ressortiront d'ailleurs de la description qui va suivre à titre d'exemple en référence aux dessins annexés, sur lesquels: la figure 1 est le schéma d'un mode de réalisation de la présente invention; les figures 2 et 3 sont des chronogrammes expliquant le fonctionnement de la présente invention; la figure 4 est le schéma d'un mode de réalisation classique; la figure 5 est unn chronogramme expliquant le fonctionnement d'un mode de réalisation classique; les figures 6 et 7 sont des schémas montrant en détail respectivement l'agencement d'un générateur de modèle de commande suivant le mode de réalisation d'après la présente invention, et un générateur de modèle de commande classique. La présente invention va être décrite ci-dessous en se reportant aux dessins annexés. La figure 1 est un schéma de principe montrant un mode de réalisation de la présente invention Les blocs correspondants de la figure 1 ont les mêmes fonctions que dans l'exemple d'un mode de réalisation classique, à l'exception du générateur 7 de signal d'interdiction de fonctionnement, il ne sera donc pas fait de description détaillée de ces blocs correspondants Les détecteurs d'erreur 72 à 74 dans le générateur 7 de signal d'interdiction de fonctionnement transmettent un signal d'interdiction de fonctionnement à une ligne 12 de signal d'interdiction par un circuit OU 76 dans un cycle lorsqu'une erreur est détectée dans une zone B de commande arithmétique, en tant que première zone de la micro-instruction mémorisée dans un registre 2 de micro- instruction La mise à jour du registre 4 de mémorisation de modèle de commande et des registres 9 et 10 dans les unités de calcul 13 et 14 est bloquée Par ailleurs, quand une erreur est détectée dans une zone C de modèle de commande, en tant que seconde zone de la micro- instruction, ou une zone d'adresse A, par les détecteurs 72 à 74, une bascule 71 est activée par un circuit OU 75. La bascule 71 garde un signal, indiquant la présence d'une erreur, pendant un cycle et sort le signal D d'interdiction de fonctionnement par le circuit OU 76 La mise à jour du registre 4 de mémorisation de modèle de commande et des registres 9 et 10 de mémorisation de résultat arithmétique est bloquée Cependant, quand une erreur est détectée dans la zone C de modèle de commande, en tant que seconde zone de la micro- instruction, le modèle de commande mémorisé dans le registre 4 de mémorisation de modèle de commande, est un modèle de commande erroné, produit par le générateur 3 de modèle de commande suivant une micro- instruction comportant une erreur Pour cette raison, si le registre 4 de mémorisation de modèle de commande garde ce modèle de commande, le circuit arithmétique 6 dans une unité de calcul 14 sera commandé d'une manière erronée à la fin du signal d'interdiction de fonctionnement D Le résultat arithmétique erroné est mémorisé dans le registre 10 de mémorisation de résultat arithmétique Pour cette raison, le modèle de commande produit suivant la micro- instruction, comprenant l'erreur corrigée, doit être mémorisé dans le registre 4 de mémorisation de modèle de commande pendant le cycle qui suit le cycle dans lequel une erreur est détectée A cet effet, un signal d'activation est donné au registre 4 de mémorisation de modèle de commande par une ligne 11 de signal d'activation et le modèle de commande produit suivant la micro-instruction dont l'erreur est corrigée est mémorisé dans le registre 4 de mémorisation de modèle de commande, même si le signal d'interdiction de fonctionnement D est transmis L'erreur de la micro-instruction ne touche pas le circuit arithmétique 6 de sorte que le dispositif de commande de micro- programme peut fonctionner correctement. Le fonctionnement ci- dessus sera décrit en faisant référence aux chronogrammes, à l'aide d'un cas dans lequel une erreur est détectée dans la zone B de commande arithmétique, en tant que première zone de la micro- instruction mémorisée dans le registre 2 de micro- instruction, et d'un cas dans lequel une erreur est détectée dans la zone C de commande arithmétique, en tant que seconde zone. La figure 2 est un chronogramme que l'on obtient quand une erreur est détectée dans la zone B de commande arithmétique, en tant que première zone de la micro- instruction, et la figure 3 est un chronogramme que l'on obtient quand une erreur est détectée dans la zone C de commande arithmétique en tant que seconde zone. Suivant la figure 2, quand une micro-instruction, Eli' contenant une erreur dans la première zone de la micro-instruction, est mémorisée dans le registre 2 de micro-instruction, le signal d'interdiction de fonctionnement D est émis dans le même cycle Puisqu'il s'agit d'une erreur dans la première zone de la micro- instruction, aucun signal d'activation n'est sorti Pour cette raison, la mise à jour du registre 4 de mémorisation de modèle de commande des registre 9 et 10 de mémorisation de résultat arithmétique est bloquée par le signal d'interdiction de fonctionnement D, et les registres respectivement 4, 9 et 10 gardent les données F 11 _,, Rl,-, et R 2 2 jusqu'au cycle qui suit le cycle dans lequel une erreur est détectée Le signal d'interdiction de fonctionnement D est annulé dans le cycle qui suit le cycle dans lequel une erreur est détectée et chacun des registres 4, 9 et 10 est mis à jour Par conséquent, le circuit arithmétique 5 commandé par la première zone de la micro- instruction n'est pas touché par l'erreur et peut fonctionner correctement. Suivant la figure 3, quand une micro-instruction E 2 i', comportant une erreur dans la zone de commande B. en tant que seconde zone de la microinstruction, est mémorisée dans le registre 2 de micro-instruction, l'erreur est détectée au cours du même cycle et le signal d'interdiction de fonctionnement D est transmis par le cycle suivant au cycle qui le suit Une ligne 11 à signal d'activation sort un signal d'activation du premier cycle qui suit le cycle dans lequel une erreur est détectée et le transmet au deuxième cycle qui suit le premier de sorte que le signal d'interdiction de fonctionnement D est annulé dans le registre 4 de modèle de commande Le signal d'activation a pour conséquence que le registre 4 de modèle de commande ne garde pas, jusqu'au cycle suivant, le modèle de commande Fil, produit par la micro- instruction E 2 i', comprenant une erreur Le modèle de commande Fi, produit par la nouvelle micro-instruction E 2 i à erreur corrigée est mémorisée Pour cette raison, le circuit arithmétique 6 commandé par le modèle de commande n'est pas touché par l'erreur dans la seconde zone de micro-instruction du registre 2 de micro- instruction et peut fonctionner correctement. Comme il a été décrit précédemment, un LSI à proximité du circuit arithmétique est affecté à la zone de commande arithmétique en tant que première zone de la micro-instruction, et un LSI, qui se trouve à distance du circuit arithmétique, est affecté à la zone de modèle de commande, en tant que seconde zone de la micro- instruction Lorsqu'une erreur est détectée dans la première zone, le signal d'interdiction de fonctionnement arrive au circuit arithmétique avec un temps de retard court puisque la première zone se trouve près du circuit arithmétique Quand une erreur est détectée dans la seconde zone, et bien que la seconde zone se trouve à distance du circuit arithmétique, le signal d'interdiction de fonctionnement peut atteindre le circuit arithmétique dans le cycle qui suit le cycle dans lequel une erreur est détectée Pour cette raison, puisqu'une bascule peut être disposée au milieu du trajet vers le circuit arithmétique, Il n'y a pas de problème dû au retard causé par le signal d'interdiction de fonctionnement Suivant la présente invention, il est possible d'empêcher que les cycles du dispositif de commande de micro-programme et du circuit arithmétique soient limités, grâce au retard causé par le signal d'interdiction de fonctionnement. REVENDICATIONS 1 Dispositif de correction d'erreur de mémoire de commande caractérisé en ce qu'il comprend une mémoire de commande ( 1) pour mémoriser une micro-instruction incluant une première zone pour commander une première unité de calcul ( 14) à l'aide d'un modèle de micro- instruction et une zone pour produire un modèle de commande pour commander une seconde unité de calcul ( 13); un registre de micro- instruction ( 2) pour mémoriser la micro-instruction de ladite mémoire de commande; un générateur ( 3) de modèle de commande pour produire un modèle de commande suivant ladite seconde zone dudit registre de micro- instruction ( 2); un registre de mémorisation de modèle de commande ( 4) pour mémoriser le modèle de commande dudit générateur de modèle de commande; et un générateur ( 7) de signal d'interdiction de fonctionnement pour changer les données et les destinations des signaux d'interdiction de fonctionnement transmis auxdites première et seconde unités de calcul ( 14, 13) et audit registre de mémorisation de modèle de commande suivant les types des zones dans lequel une erreur est détectée, lorsqu'une erreur corrigible est détectée dans une des première et seconde zones mémorisées dans ledit registre de micro-instruction ( 2). 2 Dispositif selon la revendication 1, comprenant en outre un circuit de correction d'erreur ( 8) pour corriger l'erreur corrigible qui est produite dans la micro-instruction mémorisée dans ledit registre de micro- instruction ( 2), et pour mémoriser la micro-instruction corrigée dans ledit registre de micro-instruction ( 2). 3 Dispositif selon la revendication 1, caractérisé en ce que, lorsqu'une erreur est détectée dans ladite première zone, ledit générateur de signal d'interdiction de fonctionnement ( 7) délivre le signal d'interdiction de fonctionnement auxdites première et seconde unités de calcul ( 14, 13) et audit registre de mémorisation de il modèle de commande ( 4), à partir d'un cycle dans lequel une erreur corrigible est détectée jusqu'à ce qu'une micro-instruction dont l'erreur est corrigée soit mémorisée dans ledit registre de micro-instruction ( 2). 4 Dispositif selon la revendication 1, caractérisé en ce que, quand une erreur est détectée dans ladite zone, ledit générateur de signal d'interdiction de fonctionnement ( 7) délivre le signal d'interdiction de fonctionnement auxdites première et seconde unités de calcul ( 14, 13), à partir d'un cycle qui suit un cycle dans lequel une erreur corrigible est détectée jusqu'à ce qu'une micro-instruction dont l'erreur est corrigée soit mémorisée dans ledit registre de micro- instruction ( 2) et que le modèle de commande produit par ladite seconde zone de la micro-instruction dont l'erreur est corrigée soit mémorisé dans ledit registre de mémorisation de modèle de commande ( 4). Dispositif selon la revendication 4, caractérisé en ce que ledit générateur d'interdiction de fonctionnement ( 7) délivre simultanément le signal d'interdiction de fonctionnement et un signal d'annulation du signal d'interdiction de fonctionnement audit registre de mémorisation de modèle de commande ( 4). 6 Dispositif selon la revendication 1, caractérisé en ce que ledit générateur d'interdiction de fonctionnement ( 7) comprend des premiers moyens ( 73) produisant, quand l'erreur est détectée dans ladite première zone, un premier signal d'interdiction, maintenu du cycle dans lequel une erreur corrigible est détectée au cycle suivant, des seconds moyens ( 71, 74) produisant, quand l'erreur corrigible est détectée dans ladite zone, un signal d'interdiction de fonctionnement, et délivrant un signal d'annulation du signal d'interdiction de fonctionnement audit registre de mémorisation de modèle de commande ( 4) durant le laps de temps entre le premier cycle qui suit le cycle dans lequel une erreur corrigible est détectée et un deuxième cycle qui suit, et des troisièmes moyens ( 76) transmettant la somme logique des premier et second signaux d'interdiction de fonctionnement auxdites première et seconde unités de calcul ( 14, 13), et audit registre de mémorisation de modèle commande ( 4).