Brevet FR2609340A1 — publié le 19880708

TITRE: SYSTEME DE DETECTION PRECOCE DES PANNES POUR SYS- TEME MULTIPROCESSEUR La présente invention se rapporte à un système de détection précoce des pannes pour un système multipro- cesseur et, de façon plus particulière, à un système de détection précoce des pannes pour tester un processeur qui est en attente. Selcn un système conventionnel typique de dé- tection précoce des pannes pour un système multiproces-v--, seur, deux processeurs sont reliés à une unité d'entrée/ sortie et à un circuit de test par l'intermédiaire de deux commutateurs. De façon plus spécifique, lorsque l'un des processeurs est relié à l'unité d'entrée/sortie, l'au- tre processeur est mis en mode réserve et relié au cir- cuit de test. Toutefois, dans un tel système, on ne peut tes- ter un processeur que lôrsqu'il est mis en mode réserve tandis qu'cn ne peut pas tester un processeur en attente, c'est-à-dire un processeur qui attend l'instruction sui- vante. Par conséquent, si un processeur tombe en panne au cours d'une attente, il n'est pas possible de détecter la panne avant que le processeur commence le traitement con- formément à l'instruction suivante. Si le traitement se rapporte à un contr8le critique du système, le fonction- nement du système est sérieusement affecté de façon indé- sirable. Lorsqu'il faut exécuter un test pour un proces- seur en attente, il faut un circuit de test complexe. De plus il est très difficile de détecter une panne dans toute l'étendue du processeur. Un but de l'invention est de proposer, pour un système multiprocesseur, un système de détection précoce des pannes qui élimine les inconvénients conventionnels ci-dessus et qui puisse se réaliser sans utilisation d'un circuit de test complexe, qui soit efficace et qui puisse modifier l'étendue du test. Selon l'invention, un système de détection pré- coce des pannes pour un système multiprocesseur, incluant une pluralité d'unités centrales de traitement pour la commande d'un microprogramme, comporte un moyen pour dé- tecter qu'une unité centrale de traitement est en atten- te, un moyen pour mémoriser un programme de test utilisé pour tester une unité centrale de traitement en attente, un moyen pcur exécuter le programme de test avant que l'unité centrale de traitement en attente ne devienne ac- tive, et un moyen pour mettre à part une unité centrale de traitement en panne. La figure 1 est un diagramme par blocs de la disposition d'ensemble d'un système conforme à une réali- sation de l'invention. La figure 2 est un diagramme par blocs de la disposition d'une unité centrale de traitement représen- tée sur la figure 1. La figure 3 est un ordinogramme pour expliquer le fonctionnement de l'unité centrale de traitement repré- sentée sur la figure 2. La figure 4 est un diagramme par blocs d'une disposition d'ensemble d'un système conforme à une autre réalisation de l'invention. La figure 5 est un diagramme par blocs de la disposition d'une unité centrale de traitement représen- tée sur la figure 4; et La figure 6 est un ordinogramme pour expliquer le fonctionnement de l'unité centrale de traitement re- présentée sur la figure 5. On va décrire en détail des réalisations pré- férées de l'invention en se référant aux dessins joints. La figure 1 est un diagramme par blocs de la disposition d'ensemble d'un système de détection précoce des pannes pour un système multiprocesseur conforme à une réalisation de l'invention. En se reportant à la figure 1, une mémoire prin- cipale 10, une unité de commande du système 11, une unité de traitement des pannes 12, un processeur de service 13, une unité de commande d'entrée/sortie (I/O) (0) 14, une unité de commande I/O 15, une unité centrale de traite- ment (CPU) (0) 16, et une unité centrale de traitement CPU (1) 17 sont reliées l'un à l'autre comme dans un sys- tème multiprocesseur conventionnel. La mémoire principale 10 possède une pluralité de programmes incluant un programme de test 10A pour dé- tecter une défaillance du câblage d'une unité centrale de traitement en attente. La figure 2 est un diagramme par blocs d'une disposition de l'unité centrale de traitement (0) 16 re- présentée sur la figure 1. La disposition de l'unité cen- trale de traitement (1) 17 est identique à celle de l'uni- té centrale de traitement (0) 16 et on omet donc s.a des- cription détaillée. En se reportant à la figure 2, l'unité centrale de traitement (0) 16 comporte un circuit 50 de contrôle d'accès en mémoire principale pcur exécuter le contrôle de l'accès de la mémoire principale 10 (figure 1), un cir- cuit 51 d'appel d'une instruction à l'avance et de déco- dage de l'instruction pour appeler une instruction à l'avance et décoder un code d'instruction, un circuit arithmétique 52 pour exécuter des opérations arithméti- ques, une mémoire de contrôle 53 pour mémoriser un micro- programme, un registre 54 pour retenir le microprogramme lu dans la mémoire de contrôle 53, un registre d'adresse 53 pour retenir une adresse de la mémoire de contrôle 53, un registre d'adresse 56 pour retenir une adresse pré- cédent, d'un top d'horloge, l'adresse du registre d'adresse 55, un additionneur 59 pour incrémenter l'adresse de un et un contrôleur 57 de mémoire de con- trôle pour décoder un signal provenant du registre 54 et pour envoyer un signal de contrôle au circuit arithméti- que 52, au circuit 51 d'appel à l'avance et de décodage d'une;. instruction, ainsi qu'au registre d'adresse 55. Le contrôleur 57 de mémoire de contrôle présente un registre 58 d'adresse de programme de test pour mémoriser une adresse du programme de test 1OA de la mémoire principale 10. La figure 3 est un ordinogramme montrant un mode opératoire de l'unité centrale de traitement (O) 16 pour traiter un travail. De façon plus spécifique, lors- que l'initialisation de l'unité centrale de traitement est achevée, l'exécution d'un premier travail démarre au pas 100. Au cours de l'exécution de ce travail, il est vérifié au pas 101 s'il y a, oui ou non, génération d'une interruption, par exemple une interruption pour accuser réception de l'achèvement d'une opération d'entrée/sortie. Si c'est OUI au pas 101, l'interruption est traitée au pas 103 et le déroulement passe au pas 105. Au pas 105 il est vérifié s'il existe un travail suivant. Si c'est OUI au pas 105, le déroulement revient au pas 101; si c'est NON, le déroulement saute au pas 109. D'un autre côté, si c'est NON au pas 101, l'exécution du travail se poursuit au pas 102. S'il est déterminé au pas 104 que le travail est achevé, le dérou- lement passe au pas 109. Au pas 109 il est vérifié s'il y a, oui ou non, génération d'une interruption. Si c'est OUI au.pas 109, l'interruption est traitée au pas 110 et le déroulement passe au pas 106; si c'est NON, le dérou- lement passe directement',au pas 106. Au pas 106 il est vé- rifié s'il existe, oui ou non, un travail suivant. Si c'est OUI au pas 106, l'exécution du travail suivant dé- marre au pas 108 et le déroulement saute au pas 101. Si c'est NON au pas 106, le programme de test prédéterminé A est lu en mémoire principale 10 au pas 107 et le pro- gramme de test est exécuté. Lorsque l'exécution du pro- gramme de test est achevée, le déroulement retourne au pas 109. Finalement, l'exécution du programme test se poursuit jusqu'à l'arrivée d'un programme suivant. On va décrire l'exécution du programme de test au pas 107 en se référant aux figures 1 et 2. En se reportant à la figure 2, supposons que le contrôleur 57 de la mémoire de contrôle envoie une com- o10 mande de lecture d'une instruction au circuit 51 d'appel à l'avance et de décodage d'une instruction en utilisant l'adresse du registre 58 d'adresse du programme de test. Alors le circuit 51 d'appel à l'avance et de décodage de l'instruction envoie une demande de lecture de l'instruc- tion au circuit 50 de contrôle d'action de mémoire princi- pale et l'instruction ccrrespondante est lue. L'instruc- tion est décodée par le circuit 51 d'appel à l'avance et de décodage de l'instruction et l'adresse, en mémoire de contrôle 53, du début d'instruction correspondante est en- voyée au registre d'adresse 55. L'instruction correspon- dante est exécutée conformément à un pas de microprogram- me, ou à une pluralité de pas du microprogramme, de la mé- moire de contrôle 53. L'instruction est exécutée à l'aide du registre 54, du circuit arithmétique 52, du circuit 51 d'appel à l'avance et de décodage de l'instruction, du circuit 50 de contrôle d'accès en mémoire principale etc. Un microprogramme ou programme câblé du con- trôleur 57 de la mémoire de contrôle exécute une détec- tion de l'état d'attente de l'unité centrale de traite- ment 16. Sur la figure 1, le programme de test 10 est mémorisé en mémoire principale 10. Toutefois le moyen de mémorisation du programme de test n'est pas limité à la mémoire principale 10. Le programme de test 10A peut être mémorisé dans une unité centrale de traitement 16 ou 17 ou dans une unité de commande 11 du système. En variante, un moyen de mémorisation, par exemple une mémoire RAM (mémoire à accès direct), mémoire ROM (mémoire fixe), une disquette etc peut être prévu dans le processeur de service 13. Comme décrit ci-dessus, dans cette réalisation, lorsqu'une condition de transition pour passer d'un état d'activité à un état d'attente est détectée, le programme de test 1OA de la mémoire principale 10 est exécuté. Lors- que l'exécution du programme de test lOA est achevée, il est vérifié si, oui ou non, il existe un travail suivant. S'il existe un travail suivant, il est exécuté, s'il n'existe pas de travail suivant, c'est le programme de test lOA qui est exécuté. Il en résulte que l'on peut dé- tecter la panne à un stade précoce. Lorsqu'une panne de l'unité centrale de traite- ment 16 ou 17 est détectée au cours de l'exécution du pro- gramme de test lOA, l'unité centrale de traitement en pan- ne 16 ou 17 est séparée d'avec le système. On peut ainsi réduire le risque qu'une panne survienne au cours de l'exécution d'un travail utilisateur. La figure 4 est un diagramme par blocs d'une autre réalisation de l'invention. Les mêmes chiffres de référence que sur la figure 1 désignent les mêmes portions et on en omet donc la description détaillée. En se réfé- rant à la figure 4, une mémoire principale 20 ne com- prend pas de programme de test, à la différence de la réa- lisation de la figure 1. La figure 5 représente une disposition d'une unité centrale de traitement (O) 18 représentée sur la fi- gure 4. En se reportant à la figure 5, les mêmes chiffres de référence que sur la figure 2 désignent les mêmes por- tions et o e omet une description détaillée. En se reportant à la figure 5, une mémoire de contrôle 60 comprend un microprogramme de test 60A et un contrôleur 61 de mémoire de contrôle ne nécessite pas un registre d'adresses du programme de test correspondant au registre 18 d'adresse du programme de test représenté sur la figure 2. La figure 6 est un ordinogramme pour expliquer le mode opératoire du système de la réalisation représen- tée sur la figure 4. Les pas désignés par les mêmes chif- fres de référence que sur la figure 3 représentent les mêmes opérations et on en omet la description détaillée. Au pas 111, le microprogramme de test prédéterminé 60A est lu en mémoire de contrôle 60 et il est exécuté. Lorsque l'exécution du microprogramme de test 60A est achevée, le déroulement repasse au pas 109. A la fin, l'exécution du microprogramme de test 60A se poursuit jusqu'à ce que sur- vienne le travail suivant. On va décrire l'exécution du microprogramme de test 60A (pas 111) de cette réalisation en se reportant aux figures 4 et 5. En se reportant à la figure 5, la détection de l'état d'attente est exécutée par un microprogramme ou un programme câblé du contrôleur 61 de la mémoire de contrôle. Lorsqu'une condition de transition pour passer de l'état actif à l'état d'attente est détectée, le déroulement saute au pas 111 pour exécuter le microprogramme de test 60A de la mémoire de contrôle 60. Lorsque le microprogramme de test 60A est lu en mémoire de contrôle 60 et qu'il est exécuté, une panne de l'unité centrale de traitement peut être détectée à un stade précoce. On sépare d'avec le système toutes les uni- tés de traitement dont les pannes sont détectées au cours de l'état d'attente. Il en résulte que l'on peut éviter une dispute pour accéder au programme de test mémôrisé dans la mémoire principale, dispute qui serait provoquée par une pluralité d'unités centrales de traitement en at- tente. Comme décrit ci-dessus, dans cette réalisa- tion, lorsque les conditions de transition pour passer de l'état actif à l'état d'attente sont détectées, le mi- croprogramme de test de la mémoire de contrôle est exécu- té. Lorsque l'exécution du microprogramme de test est achevée, il est vérifié s'il existe, oui ou non, un tra- vail suivant. S'il existe un travail suivant, il est exé- cuté. S'il n'existe pas de travail suivant, c'est le mi- croprogramme de test qui est exécuté. Il en résulte qu'à l'état d'attente, le microprogramme de test est constam- ment exécuté de sorte que l'on peut détecter une panne à un stade précoce. En outre, si une panne se produit au cours de l'exécution du microprogramme de test, l'unité centrale de traitement en panne est miseà part d'avec le système. Il en résulte que l'on peut réduire le risque qu'une panne survienne au cours de l'exécution d'un travail utilisateur. REVENDICATIONS 1. Système de détection précoce des pannes pour un système comprenant une pluralité d'unités centra- les de traitement (16, 17) pour la commande d'un micro- programme, caractérisé en ce qu'il comporte un moyen (57) de détection de l'état d'attente pour détecter que l'une desdites unités centrales de traitement (16, 17) est en attente, une mémoire principale (10) pour mémoriser un programme de test (1OA) utilisé pour détecter une panne du câblage de ladite unité centrale de traitement en at- tente avant que ladite unité centrale de traitement en attente ne devienne active, un moyen pour lire ledit pro- gramme de test (10A) dans ladite mémoire principale (10) et pour exécuter ledit programme de test (1OA) au cours de l'attente de ladite unité centrale de traitement (16, 17), et un moyen, sensible à une panne ou à des pannes au cours de l'exécution dudit programme de test (O10A), pour mettre à part toutes les unités centrales de traitement en panne et permettre le fonctionnement continu dudit sys- tème. 2. Système selon la revendication 1, caracté- risé en ce que chacune de ladite pluralité d'unités cen- trales de traitement (16, 17) comporte un circuit (50) de contrôle d'accès en mémoire principale pour effectuer un contrôle d'accès dans ladite mémoire principale (10), un circuit (51) d'appel à l'avance et de décodage d'une ins- truction, pour appeler à l'avance une instruction et déco- der un code d'instruction, un circuit arithmétique (52) pour exécuter différentes opérations arithmétiques, une section de commande du microprogramme comportant une mé- moire de contrôle (53) pour mémoriser un microprogramme et un contrôleur (57) de mémoire de contrôle pour décoder ledit microprogramme lu dans ladite mémoire de contrôle (53) et pour envoyer un signal de contrôle à ladite uni- té arithmétique (52), ainsi que ledit moyen (57) de détec- tion de l'état d'attente et un moyen pour lire ledit pro- gramme de test dans ladite mémoire principale et pour exé- cuter ledit programme de test. 3. Système de détection précoce d'une panne pour un système comprenant une pluralité d'unités centra- les de traitement (18, 19) pour la commande d'un micro- programme, caractérisé en ce qu'il comporte un moyen (61) de détection de l'état d'attente pour détecter que l'une de ladite pluralité d'unités centrales de traitement (18, 19) est en attente, un moyen pour lire un microprogramme de test (60A) dans une mémoire de contrôle (60) et pour exécuter ledit microprogramme de test (60A), ledit micro- programme de test (60A) étant utilisé pour détecter une panne de câblage de ladite unité centrale de traitement en attente avant que ladite unité centrale de traitement en attente ne devienne active, ainsi qu'un moyen pour mettre à part toutes les unités centrales de traitement en panne lorsqu'une panne ou des pannes se produisent au cours de l'exécution dudit microprogramme de test et pour permettre le fonctionnement continu desdits systèmes. 4. Système selon la revendication 3, caracté- risé en ce que chacune de ladite pluralité d'unités cen- trales de traitement (18, 19) comporte un circuit (50) de contrôle de l'accès en mémoire principale pour exécuter un contrôle d'accès dans ladite mémoire principale (20), un circuit (51) d'appel à l'avance et de décodage d'une instruction, pour appeler à l'avance une instruction et décoder un code d'instruction, un circuit arithmétique (52) pour exécuter différentes opérations arithmétiques, une section de commande du microprogramme comportant une mémôire de contrôle (60) pour mémoriser un microprogramme incluant ledit microprogramme de test (60A), et un contrô- leur (61) de la mémoire de contrôle pour décoder ledit mi- croprogramme et pour envoyer un signal de contrôle audit circuit arithmétique (50), ainsi qu'un moyen (61) de dé- tection de l'état d'attente et un moyen pour lire ledit microprogramme de test dans ladite mémoire principale et pour exécuter ledit microprogramme de test.