Brevet FR2631141A1 — publié le 19891110

PROCEDE DE TRAITEMENT D'ERREURS La présente invention concerne un procédé de traitement d'erreurs dans un dispositif de traitement de l'information permettant d'avoir accès à une mémoire de données différente d'une mémoire centrale destinée à la mémorisation d'un logiciel de contrôle des opérations, et comportant un ensemble de niveaux d'opérations pour exécuter des opérations associées à un traitement d'in interruption et un groupe de registres généraux disposés en unités de niveaux d'opérations pour changer les traitements lors d'une opération d'interruption, pour sauvegarder le contenu d'un registre d'état de traitement destiné à mémoriser un état présent de traitement dans un registre général correspondant quand le niveau d'opération présent est changé en un nouveau niveau d'opération, et pour relancer le traitement précédent selon le contenu du registre général et, plus particulièrement, l'invention concerne un procédé de traitement d'une erreur se produisant quand le dispositif de traitement de l'information a accès à la mémoire de données. On va décrire ci-dessous un procédé de traitement d'une erreur d'accès à une mémoire de données et de traitement de changement de niveau dans un dispositif de traitement de l'information classique.de ce type. Dans un dispositif de traitement de l'information classique, quand une erreur incorrigible est détectée lors d'un accès à la mémoire centrale servant à mémoriser un logiciel de contrôle des opérations, le fonctionnement du dispositif de traitement de l'information est arrêté. Cependant, quand une erreur d'accès à la mémoire de données est détectée, le présent traitement de logiciel est automatiquement interrompu et est transféré jusqu'à un programme de traitement exceptionnel sous la commande du matériel/micrologiciel du dispositif de traitement de l'information. Le terme "exceptionnel" indique un état détecté par le dispositif de traitement de l'information tel que le présent traitement ne peut plus être poursuivi. Quand le matériel/ micrologiciel du dispositif de traitement de l'information détecte l'erreur d'accès à la mémoire de données, les informations mémorisées dans le registre d'état de traitement et nécessaires pour poursuivre le traitement sont sauvegardées dans la mémoire centrale. La commande est automatiquement transférée jusqu'à un programme de traitement exceptionnel et un traitement exceptionnel prédéterminé est exécuté. On va décrire ci-dessous un traitement de changement de niveau par une opération d'interruption. Un ensemble de niveaux d'opérations pour l'exécution de traitementsassociés à une opération d'interruption est disponible dans le dispositif de traitement de l'information.Quand une demande d'interruption pour une opération d'un niveau supérieur est reçue pendant une opération d'un niveau donné, le présent traitement est interrompu, et le traitement de niveau supérieur est lancé en réponse à la demande d'interruption. On va décrire le traitement de changement de niveau en référence à la Figure 2 des dessins annexés. Le dispositif de traitement de l'information comprend une unité de contrôle de priorité 11 pour déterminer si un niveau d'interruption est supérieur au présent niveau d'opération lors de la génération d'un signal d'interruption, une unité d'indication de niveau 16 qui représente le présent niveau d'opération, et un groupe de registres généraux 9 correspondant respectivement aux niveaux d'opérations pour exécuter un changement de traitement au moyen du signal d'interruption. Quand un signal d'interruption est engendré pendant une opération d'un niveau donné et quand l'unité de contrôle de priorité 11 détermine que le niveau d'interruption est supérieur au présent niveau d'opération, une adresse fixe des microprogrammes est détectée sous la commande du matériel, et un traitement d'interruption est exécuté. Les micro-instructions des microprogrammes sont mémorisées dans une mémoire de contrôle (CSM) 13, et une micro-instruction lue dans la mémoire de contrôle 13 et mémorisée ensuite dans un registre compteur d'instruction (CSR) 14 est exécutée par une unité de commande FW15. Dans un traitement d'interruption, l'état de traitement du présent niveau d'opération, c'est-à-dire des données RSR mémorisées dans un registre d'état de traitement (PSR) 1, est sauvegardé dans le registre général correspondant 9. Les informations d'état de traitement nécess#aires pour un nouveau traitement sont lues dans une mémoire centrale 17 et mémorisées dans le registre d'état de traitement 1. Le contenu de l'unité d'indication de niveau 16 est mis à jour à un niveau correspondant au signal d'interruption, et le nouveau traitement est lancé. Afin de rétablir le précédent traitement à la fin du nouveau traitement, le contenu du registre général est lu et mémorisé dans le registre d'état de traitement 1. Le contenu de l'unité d'indication de niveau 16 est mis au précédent niveau d'opération, et, par conséquent, le précédent niveau est relancé. La description ci-dessus a trait au fonctionnement général d'un traitement de-changement de niveau, et on a représenté sur la Figure 3 des dessins annexés un organigramme schématique pour le changement de niveau. Comme on l'a décrit plus haut, dans le dispositif de traitement de l'information classique, quand l'erreur d'accès à la mémoire de données est détectée, un traitement exceptionnel est automatiquement exécuté sous la commande du matériel/ micrologiciel. Par conséquent, une commande par logiciel ne peut pas être exécutée. Quand une erreur d'accès à la mémoire centrale qui mémorise des instructions de logiciel est détectée, il se produit inévitablement un arrêt normal de système du dispositif de traitement de l'information. Cependant, quand une erreur d'accès à la mémoire de données est détectée, le programme de traitement exceptionnel est exécuté indépendamment de la commande par logiciel. Il en résulte que le présent traitement est interrompu. Un but de la présente invention est de fournir un procédé de traitement d'erreurs dans lequel la présence/ absence d'une erreur d'accès à une mémoire de données n'a pas besoin d'être détectée à chaque cycle d'accès, et les données d'erreur d'accès sont sauvegardées et traitées en unités de niveaux d'opérations. Un autre but de la présente invention est de fournir un procédé de traitement d'erreurs dans lequel on puisse empêcher une interruption de traitement en cours au-delà d'une commande par logiciel, et dans lequel on puisse également empêcher un transfert de commande du traitement en cours à un traitement exceptionnel. D'autres caractéristiques et avantages de la présente invention seront mis en évidence dans la description suivante, donnée à titre d'exemple non limitatif, en référence aux dessins annexés dans lesquels: la Figure 1 est un schéma fonctionnel représentant un agencement d'un dispositif de traitement de l'information qui met en oeuvre un procédé de traitement d'erreurs selon un exemple de réalisation de la présente invention; la Figure 2 est un schéma fonctionnel représentant un agencement classique pour exécuter un traitement de changement de niveau ; et la Figure 3 est un organigramme servant à expliquer un traitement de changement de niveau dans le dispositif classique. On va décrire la présente invention en se référant à la Figure 1. La Figure 1 représente un agencement typique d'un dispositif de traitement de l'information qui met en oeuvre un procédé de traitement d'erreurs selon un exemple de réalisation de la présente invention. Dans cet exemple de réalisation, une bascule d'erreur (F/F) 106 est connectée à un élément indicateur d'erreur 102 par l'intermédiaire d'une porte ET 107 et d'une porte OU 108 pour empêcher la mise à jour d'une valeur de l'élément indicateur d'erreur 102 dans un registre d'état de traitement (PSR) 101 à chaque accès à la mémoire de données. Un signal 111 est représentatif d'une erreur d'accès à la mémoire de données et il est établi inconditionnellement par #la bascule d'erreur F/F 106 à l'apparition d'une erreur. Une instruction d'accès à la mémoire de données établit toujours un signal de sortie de la bascule d'erreur F/F 106 dans l'élément indicateur d'erreur 102 à l'intérieur du registre d'état de traitement 101. En pratique, un signal de condition d'établissement de signal de sortie de F/F d'erreur (FLGST) 112 est mis au niveau logique "1" par commande de matériel/ micrologiciel qui décode l'instruction de logiciel, c'est-à-dire une commande par une unité de commande de mise à un/ remise à zéro de PSR 103. Quand le signal de sortie de la bascule F/F d'erreur 106 est mis au niveau logique "1", le signal de sortie de la porte ET 107 est mis au niveau logique "1", et l'élément indicateur d'erreur 102 du registre d'état de traitement 101 est mis au niveau logique "1".L'erreur d'accès à la mémoire de données est établie dans la bascule F/F d'erreur 106 et dans l'élément indicateur d'erreur 102. Au moment de la mise à jour du registre d'état de traitement 101, un signal d'instruction d'établissement de données d'écriture de PSR (PSRS) 110 provenant de l'unité de commande de mise à un/remise à zéro de PSR 103 est mis au niveau logique "1" sous la commande du micrologiciel. Le signal de sortie d'une porte ET 104 est simultanément établi dans la bascule F/F d'erreur 106 et dans l'élément indicateur d'erreur 102 par l'intermédiaire d'une porte OU 105 et de la porte OU 108. Sous la commande ci-dessus, l'information dans l'élément indicateur d'erreur 102 peut être maintenue au moment d'un changement de niveau par une opération d'interruption. Dans un traitement d'interruption, les informations à établir de la mémoire centrale dans le registre d'état de traitement 101 au moment d'un changement de niveau, c'est-à-dire les données d'écriture de PSR (P5R WRT DATAI 115 sont lues de la même manière que dans le cas classique. Les informations lues sont écrites dans le registre d'état de traitement 101. A ce moment-là, un niveau logique "O" est écrit simultanément dans la bascule F/F d'erreur 106 et dans l'élément indicateur d'erreur 102. Quand le traitement associé à l'opé- ration d'interruption est terminé et que le traitement. précédent doit être rétabli, l'état de traitement précédent mémorisé dans un registre général (GR) 109 est lu et ensuite mémorisé dans le registre d'état de traitement 101 par l'intermédiaire d'un circuit de commutation 114. Quand une erreur d'accès à la mémoire de données est détectée dans le traitement précédent et que l'élé- ment indicateur d'erreur 102 est mis au niveau logique "1", la valeur renvoyée par le registre général 109 est également au niveau logique "1". Le niveau logique "1" est simultanément mis dans l'élément indicateur d'erreur 102 et dans la bascule F/F d'erreur 106. Le programme (logiciel) de traitement d'erreurs efface simultanément le contenu de la bascule F/F d'erreur 106 et de l'élément indicateur d'erreur 102 sous la commande de l'unité de commande de mise à un/ remise à zéro de PSR 103. La bascule F/F d'erreur 106 maintient son contenu excepté pour l'instruction de remise à zéro (RST) 113 provenant de l'unité de commande de mise à un/ remise à zéro de PSR 103 et le signal d'accès d'écriture de données PSRS 110. L'élément indicateur d'erreur 102 qui est positionné à chaque cycle d'accès à la mémoire de données maintient la même valeur jusqu'à ce qu'un traitement d'erreur soit terminé et la bascule F/F d'erreur 106 soit effacée, Le logiciel peut déterminer la présence/l'absence de l'erreur d'accès à la mémoire de données en lisant le contenu du registre d'état de traitement 101. Quand une erreur est détectée, un transfert est fait du traitement en cours jusqu a un programme de traitement d'erreur sous sa propre commande. On a décrit la présente invention dans l'exemple de réalisation préféré et elle n'est pas limitée à celui-ci. Selon la présente invention telle qu'elle a été décrite plus haut, quand une erreur est détectée lors d'un accès à une mémoire de données indépendamment de la mémoire centrale par le dispositif de traitement de l'information, le traitement classique pour exécuter automatiquement le traitement exceptionnel sous la commande du matériel/ micrologiciel n'est pas exécuté. L'erreur est établie dans l'élément indicateur d'erreur du registre d'état de traitement pour mémoriser un état de traitement, même après que le niveau d'opération ait changé, et cet état est déterminé par logiciel, ce qui permet d'exécuter un traitement d'erreur. Même si le niveau est changé par un traitement d'interruption, l'information d'erreur d'accès à la mémoire de données est maintenue au même niveau d'opération que celui utilisé lors de l'apparition de l'erreur. En d'autres termes, l'informa- tion d'erreur d'accès à la mémoire de données peut être mémorisée dans des unités de niveaux d'opérations. La présence/ absence de l'erreur n'a pas besoin d'être déterminée à chaque cycle d'accès, et l'information d'erreur est sauvegardée et traitée. De plus, l'interruption du présent traitement peut être empêchée au-delà de la commande par logiciel, et une commande#de transfert automatique peut être également empêchée du présent traitement à un traitement exceptionnel. REVENDICATIONS 1. Procédé de traitement d'une erreur d'accès à une mémoire de données dans un dispositif de traitement de l'information permettant d'avoir accès à une mémoire de données différente d'une mémoire centrale destinée à mémoriser un logiciel de contrôle des opérations, et comportant un ensemble de niveaux d'opérations pour exé cuter des opérations associées à un traitement d'inter ruption et un groupe de registres généraux disposés en unités de niveaux d'opérations pour changer les traite ments par une opération d'interruption pour sauvegarder le contenu d'un registre d'état de traitement destiné à mémoriser un état présent de traitement dans un registre général correspondant quand le présent niveau d'opération est changé en un nouveau niveau d'opération, et pour relancer le précédent traitement selon le contenu du registre général, consistant à : : établir l'erreur d'accès à la mémoire de données lors de son apparition, en mettant à jour le registre d'état de traitement, et en établissant un indicateur d'erreur (102) dans le registre d'état de traitement (lOi) jusqu'à la mise à jour du registre d'état de traitement et jus qu'à son effacement au moyen d'une instruction de lo giciel; et à mémoriser les erreurs d'accès à la mémoire de don nées dans les registres généraux (109) dans des#unités de ni veaux d'opérations et à exécuter le traitement d'erreur d'accès à la mémoire de données lors de la détection de l'indicateur d'erreur sous la commande du logiciel.