FR2503900A1 - Dispositif de reprise pour installation de traitement de donnees - Google Patents

Dispositif de reprise pour installation de traitement de donnees Download PDF

Info

Publication number
FR2503900A1
FR2503900A1 FR8107410A FR8107410A FR2503900A1 FR 2503900 A1 FR2503900 A1 FR 2503900A1 FR 8107410 A FR8107410 A FR 8107410A FR 8107410 A FR8107410 A FR 8107410A FR 2503900 A1 FR2503900 A1 FR 2503900A1
Authority
FR
France
Prior art keywords
sep
memory
checkpoint
recovery
stack
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR8107410A
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GRANDJEAN BERNARD
Original Assignee
GRANDJEAN BERNARD
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GRANDJEAN BERNARD filed Critical GRANDJEAN BERNARD
Priority to FR8107410A priority Critical patent/FR2503900A1/fr
Publication of FR2503900A1 publication Critical patent/FR2503900A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)

Abstract

UN DISPOSITIF DE REPRISE POUR INSTALLATION DE TRAITEMENT DE DONNEES, NOTAMMENT A MICROPROCESSEUR, COMPREND UNE MEMOIRE D'ETAT COURANT. LE DISPOSITIF COMPORTE UNE MEMOIRE DE SAUVEGARDE ORGANISEE EN PILE, DES MOYENS DE RECOPIE DANS LA MEMOIRE DE SAUVEGARDE 16, DES MOYENS DE CREATION DE POINTS DE REPRISE A AU MOINS UN EMPLACEMENT DETERMINE DU PROGRAMME PAR RECOPIE, DES MOYENS D'INSCRIPTION DE LA VALEUR LORS DU DEBUT DU STOCKAGE ET DES MOYENS QUI, EN REPONSE A UN TEST INDIQUANT LA NECESSITE DE REVENIR A UN POINT DE REPRISE, REMETTENT LA MEMOIRE DE L'INSTALLATION DANS L'ETAT CORRESPONDANT AU POINT DE REPRISE PAR VIDAGE DE LA PILE.

Description

Dispositif de reprise pour installation de traitement de données
L'invention concerne les installations de traitement de données programmables, destinées à traiter des informations ou des nombres conformément à un programme enregistré.
Le programme que doit exécuter l'installation est constitué d'une séquence d'instructions que l'on peut considérer comme groupées en sections correspondant- à des opérations distinctes, chaque section pouvant être fractionnée en sous-sections comportant une ou plusieurs instructions.
Dans de nombreux cas, il est souhaitable de pouvoir rétablir l'installation dans l'état où elle se trouvait au début d'une section ou d'une sous-section de programme qui viént d'être exécutée, en réponse au résultat d'un test effectué à la fin de la section ou de la sous-section.
Un cas qui a été particulièrement étudié dans le passé est celui où un test de vérification effectué à l'issue d'une section de programme dont le début est qualifié de "point de reprise" fait apparaître une erreur et conduit à ramener I1 installation dans l'état où elle se trouvait au point de reprise, afin de reprendre l'exécution du programme dans des conditions qui normalement évitent le renouvellement de l'erreur.
On connaît notamment un procédé -visant à corriger les erreurs dues à des pannes intermittentes ou transitoires du matériel, dont la probabilité de répétition au cours de deux exécutions successives de la même section de programme est faible.
A titre d'exemple particulièrement élaboré d'un tel procédé, on peut citer celui qui est décrit dans l'article de Y. DESWARTE et autre, "hlarignan, An intermittent failure correction method" FTC 5. Paris,
Juin 1975, pp. 191-195.
Ce procédé fait appel, pour révéler les erreurs, à l'exécution simultanée du même programme par deux calculateurs fonctionnant en parallèle. Périodiquement, l'identité des résultats est vérifiée par un test.
Au cours de l'exécution du programme, la mémoire locale de chaque calculateur évolue de façon classique.
Mais à chaque point de reprise on stocke le contexte de reprise (c'est-à-dire le contenu des registres internes) et, à chaque écriture ultérieure jusqu'au test, les valeurs successives des mots modifiés et leur adresse sont stockées dans une pile du type "dernier entrépremier sorti", dite "LIFO", incorporée à l'installation.
Si une restauration est nécessaire, chaque mot modifié sera récrit,éventuellement plusieurs fois, dans l'ordre inverse de ses modifications. Si le test est satisfaisant et qu'il y a création d'un nouveau point de reprise, il suffit de mettre à zéro le po#inteur de pile de la
LIFO dont la taille détermine l'intervalle de temps moyen entre deux créations de points de reprise.
L'emploi d'une LIFO a l'avantage d'éviter tout traitement en logiciel lors de la désactivation d'un point de reprise, la seule opération étant la remise à zéro du pointeur de pile.
Ce procédé n'en présente pas moins des limitations graves. Il ne permet pas d'éliminer les conséquences d'erreurs de logiciel. Les opérations de création et de désactivation d'un point de reprise, ainsi que de reprise, étant gérées par les calculateurs surveillés eux-mêmes, le taux de récupération d'erreurs transitoires est faible.
En d'autres termes, on laisse échapper une fraction non négligeable des erreurs dues à des pannes fugitives du matériel. Enfin, le procédé est logiciel, donc peu rapide.
On connaît par ailleurs des installations de calcul prévues pour limiter les effets d'erreurs de programmation, parmi lesquelles on peut citer celle qui fait l'objet du brevet GB 1 509 193 et de l'article "A program structure for error detection and recovery" de J.J. HORNING et al, Lecture Note in Computer Science 16, Berlin, Springer
Verlag, pp. 177-193. L'approche utilisée consiste à fractionner le programme à exécuteren blocs de récupération" qui comportent chacun un bloc primaire et un test d'acceptation final, ainsi qu'un ou plusieurs blocs constituant des substituts ou alternats du bloc primaire.
Chacun des blocs primaire et de substitution peut lui même contenir un bloc de récupération d'ordre hiérarchique inférieur.
Si le test effectué à la fin d'un bloc révèle une erreur d'origine logicielle, on retourne au point de reprise pour éxécuter une version substituée du programme qui s'est mal exécuté. La mise en oeuvre de cette approche s'effectue en utilisant un "cache de récupération",-constitué par une mémoire qui stocke l'identité des variables qui ont été modifiées au cours de l'exécution de la section de programme dans sa première variante, ou éventuellement dans une seconde variante dans la mesure où cette seconde variante conduit également à un test défavorable. Si cette seconde variante est la dernière, il convient de remonter à un point de reprise hiérarchiquement supérieur, ce qui implique que le cache de récupération ait également conservé en mémoire les indications concernant les variables modifiées antérieurement au point de reprise hiérarchiquement le-plus bas.
Pratiquement, la séquence de fonctionnement est la suivante : les variables sont empilées au fur et à mesure de leur déclaration dans une pile principale et une marque est placée dans cette pile à chaque entrée dans un bloc de récupération. Toutes les variables sous cette barre sont globales, et non pas locales, puisque déclarées dans un bloc contenant le bloc courant.
Lorsqu'un bloc est complètement exécuté, l'espace alloué à ses variables est récupéré.
On empile dans le cache de récupération les valeurs antérieures des mots ou "images-avant" des variables modifiées dans un bloc de récupération à la première modification ; un marquage de la variable spécifie Si son état à l'entrée du bloc a été ou non mémorisé. Si oui, on évite de sauvegarder cette variable lors d'une modification ultérieure.
Ce mode de conservation avec marquage présente des inconvénients graves : à chaque création de point de reprise, il faut effacer tous les marquages ; ceci est fait par exploration de la mémoire-cache, ce qui fournit l'adresse des mots marqués.
Cette approche ralentit considérablement le fonctionnement, car elle implique l'arrêt du fonctionnement utile de l'installation pour faire exécuter par les organes de gestion du cache de récupération des algorithmes qui sont particulièrement compliqués en cas d'imbrication des points de reprise. De plus, elle ne pallie que les conséquences d'erreurs de logiciel.
La présente invention vise à fournir une installation de traitement de données répondant mieux que celles antérieurement connues aux exigences de la pratique, utilisable non seulement pour la correction d'erreurs, mais aussi pour le retour à un point de branchement dans un arbre de décision en cas de test conduisant au rejet de la branche essayée.
Elle vise également à éviter tout ralentissement notable du fonctionnement de l'installation, y compris lors d'opérations fréquentes telles que la désactivation d'un point de reprise, et toute modification du mot de mémoire si plusieurs points de reprise de niveaux hiérarchiques différents cohabitent.
Dans ce but, l'invention fait appel à un dispositif de récupération, externe à la partie de traitement de données de l'installation, ce qui permet de le transposer sur des processeurs autres que celui de l'installation pour laquelle il a été étudié et permet d'arriver à un haut degré de fiabilité, la probabilité de panne simultanée de la partie de traitement de données et du dispositif de récu pérationétant très faible. Le dispositif, lorsqu'il vise à éviter les conséquences d'erreurs, permet à la fois et en même temps, de récupérer les erreurs provenant du logiciel et celles dues à des défaillances transitoires, et de différencier les pannes transitoires et permanentes du matériel.
L'invention propose plus particulièrement un dispositif de reprise pour installation de traitement de données programmable, installation destinée à traiter des informations ou des nombres conformément à un programme enregistré et comportant des moyens de mémorisation prévus pour stocker, lors du fonctionnement, les états courants des données, caractérisé en ce qu'il comprend : une mémoire organisée en pile du type dernier entré-premier sorti ; des moyens pour recopier dans ladite mémoire l'état antérieur de chaque donnée contenue dans les moyens de mémorisation avant changement de cet état par écriture dans les moyens de mémorisation ; des moyens de création d'au moins un point de reprise à un emplacement déterminé dudit programme par recopie dans lesdits moyens de mémorisation des registres de l'installation et des moyens d'inscription de la valeur du pointeur de pile à la création de chaque point de reprise ; en réponse à un test indiquant la nécessité de revenir à un point de reprise, des moyens remettent les moyens de mémorisation de l'installation dans l'état correspondant audit point de reprise par vidage de la pile depuis le pointeur courant jusqu'à la dernière valeur inscrite, tandis qu'en cas de réussite du test, lesdits moyens annulent la dernière inscription du pointeur de pile et le remettent à zéro si le point de reprise était du niveau hiérarchique le plus élevé.
Le dispositif permet de façon simple de prévoir dans le programme des points de reprise de niveaux hiérarchiques différents, ce qui permet notamment de revenir au point de reprise de niveau hiérarchique élevé si toutes les portions de programme constituant des alternats à partir d'un point de reprise de niveau hiérarchique bas comportent des erreurs.
L'invention sera mieux comprise à la lecture de la description qui suit d'un dispositif qui en constitue un mode particulier de réalisation, donné à titre d'exemple non limitatif. La description se réfère aux dessins qui l'accompagnent, dans lesquels
- la Figure 1 est un schéma de principe montrant les éléments d'un dispositif de reprise qui interviennent en cas de défaillance du matériel et les liaisons entre ce dispositif et le processeur de l'installation
- la Figure 2 est un schéma montrant l'affectation des composants principaux du dispositif de reprise et le fractionnement de la mémoire principale de l'installation et de la mémoire de sauvegarde-
- la Figure 3 est un schéma fonctionnel de l'ensemble d'un dispositif de reprise correspondant à la constitution de principe des figures 1 et 2
- la Figure 4 est un chronogramme faisant appa raître l'allure des signaux en divers points du schéma de la figure 3.
On décrira maintenant, à titre de mode particulier de réalisation de l'invention, un dispositif destiné à assurer une reprise à la suite d'une défaillance matérielle ou d'une erreur de logiciel sur une installation de traitement de données à microprocesseur, permettant d'atteindre un taux élevé de récupération des erreurs.
Le dispositif doit être associé à des moyens de détection d'erreur qui peuvent être de l'un quelconque des types connus et ne seront donc pas décrits ici. Ces moyens de détection d'erreur peuvent notamment utiliser le fonctionnement en synchronisme de deux microprocesseurs, avec comparaison des résultats. On trouvera une description de tels moyens de détection dans les documents cités au préambule de la présente demande.
Le dispositif suivant l'invention constitue, pour le processeur de l'installation, un périphérique qui lui est externe et ne le modifie pas. Il peut être paramétré de manière à permettre la reprise sur faute matérielle seule, mode de fonctionnement caractérisé par ltexistence d'un seul point de reprise à un instant donné ou bien de manière à permettre la reprise sur faute matérielle ou erreur logicielle, mode de fonctionnement caractérisé par la possibilité d'existence de plusieurs points de reprise de niveaux hiérarchiques différents. Avant de décri#re sa constitution, on rappellera son mode de fonctionnement, d'abord lors d'une reprise sur panne transitoire du matériel, puis à la suite d'une erreur de logiciel imposant l'utilisation d'un bloc alternat de programme au lieu d'un bloc primaire erroné.
Reprise sur panne transitoire du matériel : La reprise vise, dans le dispositif suivant l'invention comme dans des dispositifs antérieurs, à déterminer si une anomalie détectée a un caractère transitoire ou permanent, le programme entrepris étant achevé dans le cas d'un caractère transitoire de la défaillance. Des points de reprise sont créés dans le programme, soit à la demande du dispositif lorsque la pile
est pleine soit en fonction de l'occurence d'instructions d'entrées-sorties dans le programme de l'installation.
Pour réexécuter une séquence de programme depuis un point de reprise pré-établi, il est nécessaire de remettre la mémoire et les registres du processeur dans l'état correspondant au point de reprise, ce qui implique
- lors de la création d'un point de reprise, de mémoriser l'état des registres du processeur,
- ultérieurement, avant d'effectuer chaque écriture en mémoire, de sauvegarder le mot mémoire tel qu'il se présente avant sa modification et de le stocker avec son adresse.
En conséquence, le dispositif devra comporter les moyens nécessaires pour stocker, dans une mémoire de sauvegarde, les données nécessaires à la restauration de la mémoire en dépit des modifications qu'elle subit.
La mémoire de sauvegarde nécessaire à la restauration de la mémoire principale est constituée en pile en mode "dernier entré-premier sorti" ou LIFO. Cette mémoire peut être une mémoire vive classique, dont la taille est choisie en fonction de l'intervalle que l'on veut ménager entre deux points successifs de reprise de niveau hiérarchique supérieur.
Le dispositif peut notamment avoir la constitution de principe montrée en figure 1. Sur cette figure, le processeur 10, qui constitue l'élément de calcul de l'installation de traitement de données, comporte une sortie 11 fournissant un signal d'erreur en cas de résultat défavorable d'un test. Ce processeur 10 est associé, par un bus d'adresse 12 et un bus de données 13, à une mémoire principale 14. Les communications entre le processeur et son environnement sont commandées par le bus CTRL 18. La ligne 15 d'écriture WR provenant du microprocesseur 10 attaque la mémoire 14 sous contrôle du dispositif 17.En effet, l'invention implique que le dispositif de reprise soit capable de transformer le cycle d'écriture en mémoire 14 du processeur en un cycle de lecture-écriture, permettant de lire la valeur antérieure (image avant) du mot en mémoire avant que ce mot ne soit modifié par écriture.
Le dispositif proprement dit comprend la mémoire de sauvegarde ou mémoire-cache 16 gérée en mode LIFO et un dispositif 17 de gestion de la mémoire 16.
La création d'un point de reprise est faite en coopération par le processeur et le dispositif de gestion 17, celui-ci validant l'opération.
Le dispositif de gestion 17 est prévu pour que
- lorsque la pile est pleine, une demande de création d'un point de reprise soie émise vers le processeur sous forme d'une interruption,
- sur un ordre du processeur 10 au dispositif de gestion 17 signalant qu'il vient de copier ses registres internes dans la mémoire 14, le dispositif de gestion annule le pointeur de pile validant ainsi le point de reprise.
- lors de l'exécution du programme, chaque ordre d'écriture en mémoire 14, émis sur la ligne 15, soit transformé par le dispositif de gestion 17 en, successivement, une lecture de la mémoire 14 à l'adresse dans laquelle va s'effectuer l'écriture, un stockage du mot mémoire (adresse et donnée lues) dans la pile LIFO 16, et, enfin, écriture de la nouvelle valeur de la donnée dans la mémoire 14.
L'exemple suivant correspond à une partie de programme exécutée entre un point de reprise numéroté j et une détection d'anomalie, seules ayant été reproduites les instructions correspondant à une écriture en mémoire pour plus de simplicité
PR n0 j (point de reprise j) INST
X : = X1
Y : = Y1
X:=X2
Z : = Z1
X = X3
Détection d'anomalie
La mémoire 14 et la pile 16 auront alors successivement les deux configurations suivantes
Figure img00090001
<tb> <SEP> Meinoire <SEP> <SEP> Pile
<tb> <SEP> Avant <SEP> PR <SEP> n0 <SEP> <SEP> j <SEP> :<SEP> t <SEP> <SEP> <SEP> X <SEP> g <SEP>
<tb> <SEP> Yo <SEP>
<tb> Avant <SEP> la <SEP> détection <SEP> d'anomalie <SEP> X <SEP> :x3 <SEP> g
<tb> <SEP> :Y1 <SEP> J <SEP> Y: <SEP> Y0
<tb>
Pour restaurer la mémoire 14 dans l'état où elle était au dernier point de reprise, il suffit de vider la pile 16.Ainsi, la variable X par exemple, qui avait, immédiatement avant détection, la valeur X3, sera successivement récrite X2, X1 puis Xo qui était son état avant création du point de reprise
Si le test ne fait apparaître aucune anomalie, il suffit, pour désactiver le point de reprise, de remettre à zéro le pointeur de pile, ce qui est une opération qui, contrairement à celle envisagée dans le brevet GB 1 509 193, n'exige aucune exécution d'algorithme.
Reprise à la suite d'une erreur de logiciel : Une telle reprise exige l'utilisation d'une technique logicielle appropriée. On
prendra pour exemple la technique des blocs de récupération dont une description détaillée figure dans de nombreux documents antérieurs, en particulier dans le brevet GB 1 509 193 déjà cité. On ne rappellera donc que très brièvement la constitution et le rôle des blocs de récupération.
Dans le mode de mise en oeuvre le plus simple de cette conception, on découvre le programme on blocs successifs. La structure de chaque bloc est du genre suivant bloc de récupération : A
Figure img00100001
<tb> test <SEP> <SEP> d'acceptation <SEP> : <SEP> AT
<tb> <SEP> bloc <SEP> primaire <SEP> : <SEP> AP
<tb> <SEP> programme
<tb> <SEP> bloc <SEP> secondaire <SEP> : <SEP> AQ
<tb> t <SEP> programme
<tb>
C'est le programme correspondant au bloc primaire qui est d'abord exécuté. Ensuite, le test d'acceptation AT est appliqué. S'il donne un résultat favorable indiquant une bonne exécution du programme, il y a passage au bloc de récupération suivant. Dans le cas contraire, il y a exécution du bloc secondaire AQ, qui constitue un alternat du bloc primaire.
Mais, avant d'exécuter le bloc secondaire AQ, il faut restaurer la mémoire dans l'état où elle se trouvait à l'entrée du bloc de réeupération. Cette opération peut être simplifiée en ne restaurant que les variables globales au bloc de récupération, et non pas celles qui ont été déclarées, donc définies, dans le bloc primaire AP.
Très souvent, il est nécessaire d'imbriquer des blocs de récupération de niveaux hiérarchiques différents.
Le Tableau I (plus complet que le précédent en ce qutil porte la mention des variables globales et locales) montre un exemple d'imbrication. Pour mieux faire apparaître sur ce tableau l'étendue des blocs de récupération, ils sont encadrés par des flèches, tandis que les lignes verticales délimitent chacune un bloc primaire ou un bloc constituant alternat.
TABLEAU I
Déclarer X bloc de récupération A
Figure img00110001
<tb> test <SEP> <SEP> d'acceptation <SEP> AT
<tb> <SEP> bloc <SEP> primaire <SEP> AP
<tb> <SEP> déclarer <SEP> : <SEP> Y
<tb> <SEP> programme
<tb> <SEP> bloc <SEP> de <SEP> récupération <SEP> B
<tb> <SEP> test <SEP> d'acceptation <SEP> BT
<tb> <SEP> bloc <SEP> primaire <SEP> BP
<tb> <SEP> déclarer <SEP> : <SEP> U
<tb> <SEP> programme
<tb> <SEP> bloc <SEP> secondaire <SEP> BQ
<tb> <SEP> déclarer: <SEP> V
<tb> <SEP> L <SEP> programme
<tb> <SEP> bloc <SEP> secondaire <SEP> AQ
<tb> <SEP> déclarer <SEP> :<SEP> W
<tb> <SEP> programme
<tb> <SEP> bloc <SEP> de <SEP> récupération <SEP> C
<tb> <SEP> test <SEP> <SEP> d'acceptation <SEP> CT
<tb> <SEP> bloc <SEP> primaire <SEP> CP
<tb> <SEP> programme
<tb> <SEP> bloc <SEP> secondaire <SEP> CQ
<tb> <SEP> programme
<tb> <SEP> bloc <SEP> de <SEP> récupération <SEP> D
<tb> <SEP> test <SEP> d'acceptation <SEP> DT
<tb> <SEP> bloc <SEP> primaire <SEP> DP
<tb> <SEP> t <SEP> <SEP> programme
<tb> programme <SEP>
<tb>
Lorsque par exemple c'est la portion de programme correspondant au bloc de récupération BP, qui est en cours d'exécution, le dispositif doit intervenir pour permettre de
- restaurer les variables globales (ici limitées à
Y) dans leur état à l'entrée du bloc de récupération B, en cas d'échec du test d'acceptation BT
- restaurer les variables globales au bloc de récupération A (ici X) si le bloc de récupération B dans son ensemble ne peut s'exécuter, entraînant la non exécution de AP et le recours nécessaire à AQ, c'est-à-dire le retour à un point de reprise hiérarchiquement supérieur à celui précédant le bloc B.
La partie de la mémoire principale 14, où s'effectue la copie des registres du processeur 10 et la mémoire de sauvegarde 16 doivent être organisées pour permettre la coexistence de ces points de reprise de niveaux hiérarchiques différents. On décrira maintenant ltorganisation schématisée en Figure 2 où a été utilisée la notation suivante
MCLX partie de la mémoire qui contient les
contextes du processeur pour tous les
points de reprise non désactivés.
IMB numéro d'imbrication du bloc de récupé
ration courant.
SPM registre d'adressage contenant le pointeur
courant dans la pile 16.
DOIS dimension de la pile 16.
HLIM
BLIM
Figure img00120001

limites haute et basse de zone des variables locales/globales.
SPo à SPn délimiteurs de zones dans la pile 16
(destines à stocker les valeurs du poin
teur de pile correspondant aux niveaux
hiérarchiques successifs, au nombre de
n+1 au maximum, de points de reprise).
C'est le processeur 10 (figure 1) qui initialise le dispositif constituant cache de récupération. Cette initialisation comporte le positionnement des différents registres du dispositif 17, en particulier DMS et MODE qui rendent le fonctionnement du dispositif paramétrable.
Le registre DIODE, qui est mis à éro par un ordre de remise à zéro (reset) général invalide le fonctionnement du dispositif jusqu'à ce que le processeur l'ait chargé.
Lors du fonctionnement normal de l'installation, toute écriture d'une variable globale (définie par exemple par une adresse n'appartenant pas à l'ensemble défini par BLIM et BLINI), provoque le stockage dans la pile 16 de l'ancienne valeur de la variable.
Comme on l'a vu plus haut, les points de reprise sont prévus dans le programme. La création d'un point de reprise provoquera l'incrémentation du numéro dtimbrica- tion courant IMB et la copie du pointeur courant SPM dans le registre SPi correspondant au numéro d'imbrication i.
Cette création sera généralement suivie d'ordres de modification, issus du processeur, des registres LI et BLIM, délimitant de nouvelles zones de rangement des variables locales.
L'annulation ou désactivation d'un point de reprise par le processeur 10, par exemple après succès d'un test d'acceptation, s'effectue en décrémentant le numéro d'imbrication courant dans IMB. Le pointeur SPM n'est remis à zéro que lorsqu'on quitte un bloc de récupération du rang hiérarchique le plus élevé (rang 0).
Une reprise est demandée par le processeur soit après une erreur logicielle, soit après une phase spéciale d'initialisation consécutive à une détection de panne matérielle. Dans ce cas, on restaure la mémoire 14 en vidant la pile 16 depuis le pointeur courant SPM jusqu'au pointeur SPi associé au niveau d'imbrication en cours.
On voit que le dispositif est tout à la fois très simple (ce qui autorise son emploi dans un microcalculateur de faible complexité) et capable de récupérer à la fois les erreurs de logiciel, d'où une tolérance à ces erreurs, et les pannes transitoires.
On décrira maintenant en détail un schéma fonctionnel possible du dispositif des figures 1 et 2, puis son application à une installation à microprocesseur zilog Z 80, donnée à titre d'exemple. Sur le schéma fonctionnel de la figure 3, où les organes correspondant à ceux des figures 1 et 2 portent le même numéro de référence, on a représenté en plus les registres de mode 20 et de code 21. Dans le registre 21 s inscrit l'instruction à exécuter par le cache, fournie par le bus de données 13. Le repère RD-M-WR réfère la logique permettant l'extraction du mot à sauvegarder en mémoire 14.
Enfin, le repère IIRT 22 désigne un registre d'état, contenant en particulier des comptes rendus d'erreur.
On décrira maintenant, en faisant référence à l'ensemble des figures 1 et 3, les moyens mis en service pour
- la sauvegarde d'un mot mémoire avant son écriture,
- la gestion de la pile de sauvegarde,
- la création d'un point de reprise,
- la désactivation d'un point de réponse,
- la restauration de la mémoire après une faute et la procédure de reprise.
Sauvegarde du mot mémoire (IMAGE AVANT) avant écriture
La sauvegarde du mot mémoire est réalisée par transformation systématique des cycles d'écriture en cycles comprenant successivement lecture, mémorisation dans la mémoire de sauvegarde 16 et écriture. Le chronogramme des opérations est illustré sur la figure 4 où sont montrés les signaux apparaissant sur chaque ligne de la figure 3 avec la même référence.
Le signal ATD provenant du décodage de MREQ (demande mémoire) sans ordre de lecture ni rafraîchissement provoque un état d'attente Tw dans le microprocesseur, isole ses sorties du bus de données 13 et empêche la transmission du signal WR à la mémoire 14. La mémoire 14 est lue et le couple constitué par le mot contenu en mémoire et son adresse est rangé dans la mémoire de sauvegarde 16 lors du signal d'écriture WR. La remontée de ATD termine l'écriture en mémoire de sauvegarde 16, relie les sorties de données du microprocesseur au bus 13 et autorise l'écriture en mémoire 14.En parallèle, l'adresse du mot modifié, pour laquelle le registre 25 joue le rôle de tampon, est comparée au couple HLIM-BLINf par le circuit 23. Selon sa position relative dans ces limites et le paramètrage spécifié par le registre MODE, l'incrémentation du pointeur de pile SPM, adressant la mémoire 16, sera effectuée ou non.
Gestion de la pile de sauvegarde : Une caractéristique essentielle de l'invention est que la mémoire de sauvegarde est gérée en mode LIFO. Le registre DMS indique le seuil de remplissage de cette pile ; il est initialisé par le processeur
La valeur-à charger dans DMS est égale à la dimension physique de la pile, diminuée
d'autant dé mots qu'il faut d'écritures pour créer un point de reprise,
du nombre maximum d'écritures exécutables dans une seule instruction,
de deux fois le nombre d'écritures accompagnant la prise en compte d'une interruption.
Lorsque le pointeur de pile dépasse la valeur fixée par DMS, une interruption ITPILEPLEiNE est générée par l'intermédiaire de la bascule ITPP 24.
Les actions entreprises par le programme de traitement de l'interruption dépendent du mode d'utilisation de la reprise.
Dans le cas du traitement de fautes matérielles seules (par de structure logicielle ad hoc pour la récupération d'erreurs de programmation), un nouveau point de reprise sera créé. Dans le cas où on récupère les erreurs logicielles, c'est le programme qui décide a priori de la création des points de reprise. La situation résultant de l'interruption est anormale. Son traitement dépend étroitement de l'application. Dans tous les cas, il conduira à une éxécution dégradée de la tâche à accomplir par l'installation.
Création d'un point de reprise : A la suite d'une interruption ITPILEPLEINE (récupération d'erreurs matérielles seules) ou à des instants prédéterminés (occurence d'une instruction d'entrée-sortie, récupération d'erreurs logicielles), le programme décide de créer un point de reprise. Il envoie d'abord un ordre de "début de création de point de reprise" qui fait exécuter par le dispositif les actions suivantes
le compteur ISIB est incrémenté,
. le compteur SPM est mémorisé dans SPI à l'adresse 1MB.
Le processeur sauvegarde ensuite ses registres.
Il envoie enfin au dispositif 17 l'ordre de "fin de création de point de reprise" qui provoque les actions suivantes
le compteur SPM est rechargé par le contenu de
SPI à l'adresse IMB. Ceci a pour effet de supprimer de la pile 16 les I#IAGES-AVANT prises pendant la création du point de reprise, car elles ne servent plus.
en mode "récupération de fautes matérielles seules", IMB est décrémenté (on n'utilise qu'un point de réponse), ce qui a pour effet dans ce mode de mettre la valeur zéro dans SPM.
Désactivation d'un point de reprise : Sur un ordre du processeur, le point de reprise de niveau hiérarchique le plus bas est désactivé. Cette opération s'exécute de la manière suivante
- décrémentation du compteur d'imbrication IMB,
- si IMB devient négatif (c'est le cas quand le point de reprise du plus haut niveau hiérarchique est désactivé), le pointeur SPM est mis à zéro.
Dans le cas général, la décrémentation du compteur
IMB n'a pas d'action sur SPM. Cette opération a en conséquence pour effet d'associer les images-avant, prises dans le dernier bloc de reprise, au bloc de reprise de niveau immédiatement supérieur (figure 2), qui devient le bloc courant.
Restauration de la mémoire et la procédure de reprise : Sur ordre du processeur (qui a décelé par exemple une anomalie dans son logiciel), une reprise est effectuée. La mémoire est restaurée en vidant la pile depuis le pointeur courant SPAX jusqu'a la valeur stockée dans SPI à l'adresse IB.
Après avoir retrouvé l'accès à sa mémoire, le processeur poursuit l'exécution de son travail.
Dans le cas d'une faute matérielle, le comportement est différent selon que le signal de faute est une confir maton ou non.
cet effet, le dispositif comporte une bascule de mémorisation de faute 31.
- Si elle est déjà armée quand arrive la faute, celleci est considérée comme permanente ; le processeur est arrêté par émission d'un signal sur la ligne STP,
- sinon, des mécanismes extérieurs au dispositif t7, destinés à traiter la faute peuvent agir : une interruption
ITFAUTE est générée en même temps qu'un ordre RESET est envoyé au processeur. L'interruption est prise en compte après la réinitialisation du processeur. Le programme d'interruption demande au dispositif 17 d'effectuer une restauration de la mémoire (voir plus haut) ; restaure ensuite les registres du processeur dans leur état au dernier point de reprise et provoque ensuite un branchement à ce point de reprise lors de sa désactivation.
Pour déterminer Si une faute matérielle est permanente ou transitoire en présence de niveaux de reprise imbriqués, il faut prévoir un dispositif de décision approprié. Ce dispositif doit résoudre la situation suivante
Figure img00170001
<tb> <SEP> Création <SEP> Désactivation
<tb> Création <SEP> erreur <SEP> matérielle
<tb> <SEP> PR0
<tb> <SEP> Retour
<tb> <SEP> Recréation
<tb> <SEP> PR1
<tb> <SEP> L <SEP> =r <SEP>
<tb>
Dans cet exemple, la bascule de mémorisation de faute ne doit être relachée qu'à la désactivation du point de reprise PRO, seul moyen de garantir que le relachement ait lieu après l'exécution de l'instruction où a été détectée la faute. A cette fin, la bascule de faute attaque un registre à décalage 32 (figure 3) comportant autant de positions que le nombre maximum admissible de niveaux hiérarchiques.On opèrera un décalage de la bascule vers le registre à chaque création d'un point de reprise et un décalage du registre vers la bascule à chaque désactivation.
On applique maintenant ce dispositif à l'exemple cidessus.
En l'absence d'erreur, l'évolution de l'état de la bascule et du contenu du registre sera la suivante
Création de PRo
Création de PR1
Désactivation de PR
Figure img00180001
<tb> Bascule <SEP> Registre
<tb> g <SEP> <SEP> r. <SEP>
<tb>
Si au contraire il y a apparition d'une faute détectée après la désactivation de PR1, le déroulement des actions est le suivant
Faute
Reprise à PRO
Création de PR1
Désactivation de PR1
Désactivation de PRo
Figure img00180002
<tb> Bascule <SEP> Registre
<tb> <SEP> izm <SEP>
<tb> E <SEP> <SEP> l <SEP>
<tb> 10101 <SEP>
<tb>
On Voit que la bascule n'est relachée que lorsqu'on désactive le point de reprise PRO, donc après avoir exécuté correctement l'instruction où la faute a été détectée.
En résumé, on voit que l'invention permet de réaliser un dispositif qui tout à la fois est simple et permet un taux très élevé de récupération d'erreur quelle qu'en soit la nature. De même, elle permet de façon simple de remonter à des points de reprise de différents niveaux hiérar chiques pour d'autres applications et notamment,dans une installation, une structure en arbre de décision.
Il va sans dire que la portée du présent brevet ne se limite pas aux modes particuliers de réalisation qui ont été représentés et décrits à titre d'exemples mais s'étend à toute variante restant dans le cadre des équivalences.

Claims (4)

Revendications.
1. Dispositif de reprise pour installation de traitement de données programmable, installation destinée à traiter des informations ou des nombres conformément à un programme enregistré et comportant des moyens de mémorisation prévus pour stocker, lors du fonctionnement, les états courants des données, caractérisé en ce qu'il comprend : une mémoire de sauvegarde (16) organisée en pile du type dernier entré-premier sorti ; des moyens pour recopier dans ladite mémoire (16) l'adresse et l'état antérieur de chaque donnée contenue dans les moyens de mémorisation (14) avant changement de cet état par écriture dans les moyens de mémorisation ; des moyens de création de points de reprise à au moins un emplacement déterminé dudit programme par recopie dans lesdits moyens de mémorisation (14) des registres de l'installation ; des moyens d'inscription de la valeur (spi) lors du début du stockage : et des moyens qui, en réponse à un test indiquant la nécessité de revenir à un point de reprise remettent les moyens de mémorisation de l'installation dans l'état correspondant audit point de reprise par vidage de la pile depuis le pointeur courant jusqu'à la dernière valeur inscrite, tandis qu'en cas de réussite du test, lesdits moyens annulent la dernière inscription et remettent à zéro le pointeur de pile (SPM) si le point de reprise était du niveau hiérarchique le plus élevé.
2. Dispositif suivant la revendication 1, permettant de réaliser des points de reprise de niveau hiérarchiques successifs, prévus dans le programme de fonctionnement de l'installation, caractérisé en ce que lesdits moyens de création de points de reprise sont prévus pour recopier, dans lesdits moyens de mémorisation, l'état des registres de l'installation, à la suite de chaque point de reprise de niveau hiérarchique le plus élevé, l'état des registres de l'installation à chaque création de point de reprise de niveau hiérarchique plus bas et en ce que ladite mémoire (16) organisée en pile est de dimension suffisante pour recevoir l'état antérieur de chaque donnée contenue dans les moyens de mémoirisation (14) avant cha
que changement entre deux points de reprise de niveau hiérarchiquement le plus élevé.
3. Dispositif suivant la revendication 2, caractérisé en ce qu'il comprend, hors de ladite installation, des registres appartenant à un ensemble de gestion de la mémoire de sauvegarde (16), lesdits registres (SPO SP;) étant prévus pour recevoir la valeur du pointeur de pile correspondant à chaque point de reprise entre deux points de reprise de niveau hiérarchiquement le plus élevé.
4. Dispositif suivant la revendication 2 ou 3, caractérisé en ce qu il comprend des moyens permettant de différencier une panne transitoire de matériel d'une panne permanente, comprenant une bascule de mémorisation d'erreur de matériel, attaquant un registre à décalage commandé de façon qu'il y ait décalage de la bascule vers le registre à chaque création de point de reprise et décalage du registre vers la bascule à chaque désactivation de point de reprise.
FR8107410A 1981-04-13 1981-04-13 Dispositif de reprise pour installation de traitement de donnees Pending FR2503900A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR8107410A FR2503900A1 (fr) 1981-04-13 1981-04-13 Dispositif de reprise pour installation de traitement de donnees

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR8107410A FR2503900A1 (fr) 1981-04-13 1981-04-13 Dispositif de reprise pour installation de traitement de donnees

Publications (1)

Publication Number Publication Date
FR2503900A1 true FR2503900A1 (fr) 1982-10-15

Family

ID=9257345

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8107410A Pending FR2503900A1 (fr) 1981-04-13 1981-04-13 Dispositif de reprise pour installation de traitement de donnees

Country Status (1)

Country Link
FR (1) FR2503900A1 (fr)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0113982A2 (fr) * 1982-12-25 1984-07-25 Fujitsu Limited Système de traitement de données
EP0119806A2 (fr) * 1983-03-14 1984-09-26 Unisys Corporation Méthode d'attribution de points de contrôle asynchrone pour recouvrement après erreur
EP0532334A2 (fr) * 1991-09-11 1993-03-17 International Business Machines Corporation Redressement d'erreur dans un système de traitement de l'information
EP0750258A2 (fr) * 1995-06-19 1996-12-27 Kabushiki Kaisha Toshiba Appareil pour la récupération d'état de mémoire
US6148416A (en) * 1996-09-30 2000-11-14 Kabushiki Kaisha Toshiba Memory update history storing apparatus and method for restoring contents of memory

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0113982A2 (fr) * 1982-12-25 1984-07-25 Fujitsu Limited Système de traitement de données
EP0113982A3 (en) * 1982-12-25 1987-07-01 Fujitsu Limited A data processing system
EP0119806A2 (fr) * 1983-03-14 1984-09-26 Unisys Corporation Méthode d'attribution de points de contrôle asynchrone pour recouvrement après erreur
EP0119806A3 (en) * 1983-03-14 1987-05-06 System Development Corporation Asynchronous checkpointing system for error recovery
EP0532334A2 (fr) * 1991-09-11 1993-03-17 International Business Machines Corporation Redressement d'erreur dans un système de traitement de l'information
EP0532334A3 (en) * 1991-09-11 1993-11-24 Ibm Error recovery in an information processing system
EP0750258A2 (fr) * 1995-06-19 1996-12-27 Kabushiki Kaisha Toshiba Appareil pour la récupération d'état de mémoire
EP0750258A3 (fr) * 1995-06-19 1998-12-30 Kabushiki Kaisha Toshiba Appareil pour la récupération d'état de mémoire
US6079030A (en) * 1995-06-19 2000-06-20 Kabushiki Kaisha Toshiba Memory state recovering apparatus
US6148416A (en) * 1996-09-30 2000-11-14 Kabushiki Kaisha Toshiba Memory update history storing apparatus and method for restoring contents of memory

Similar Documents

Publication Publication Date Title
US10423783B2 (en) Methods and apparatus to recover a processor state during a system failure or security event
EP1212678B1 (fr) Protocole de gestion, procede de verification et de transformation d&#39;un fragment de programme telecharge et systemes correspondants
US7380245B1 (en) Technique for detecting corruption associated with a stack in a storage device
FR2977694A1 (fr) Microprocesseur protege contre un debordement de pile
US8095510B2 (en) Data restoration in a storage system using multiple restore points
CN105144113A (zh) 从快照恢复应用
EP2880588A1 (fr) Systeme de detection de modification d&#39;une pile d&#39;appel de sous-programme
FR2684472A1 (fr) Systeme expert supportant les contraintes du temps reel.
CA2770955A1 (fr) Dispositif pour l&#39;amelioration de la tolerance aux fautes d&#39;un processeur
EP1960934A1 (fr) Procede pour securiser l&#39;execution d&#39;un code logiciel en langage intermediaire dans un appareil portatif
FR2503900A1 (fr) Dispositif de reprise pour installation de traitement de donnees
EP1881404A1 (fr) Procédé de protection dynamique des données lors de l&#39;exécution d&#39;un code logiciel en langage intermédiaire dans un appareil numérique
US9778969B2 (en) Automatic memory leak detection
EP2836913B1 (fr) Dispositif pour générer une signature à l&#39;exécution d&#39;une tâche de programme et méthode de comparaison de flots d&#39;exécution
EP1258004A1 (fr) Ecriture en temps reel securisee pour memoire non volatile
WO2012038000A1 (fr) Procede de gestion de taches dans un microprocesseur ou un ensemble de microprocesseurs
US20120066181A1 (en) File removal with no available disk blocks in redirect-on-write file systems
EP2960798B1 (fr) Détection de fuite de mémoire automatique
EP3131005B1 (fr) Equipement électronique ferroviaire comprenant un programme de démarrage comportant une ou plusieurs partitions de démarrage, véhicule ferroviaire et système ferroviaire associés
CN115098454B (zh) 一种数据处理方法及系统
EP1155389A1 (fr) Dispositif d&#39;acces securise a des applications d&#39;une carte a puce
EP2646916B1 (fr) Procédé et dispositif de fiabilisation d&#39;un système multi-processeur par pointage hybride
JPH03105434A (ja) エラーロギングシステム
EP0020931B1 (fr) Dispositif exécutant des opérations d&#39;interruption de programme pour processeur du type à appel anticipé des instructions
CN110688193B (zh) 磁盘处理方法以及装置