Brevet FR2654852A1 — publié le 19910524

La présente invention concerne les procédés de surveillance du fonctionnement d'au moins deux microprocesseurs montés en coopération, soit par un montage dit "en parallèle", soit par un montage dit "en redondance", afin d'assurer une bonne sécurité à la commande des systèmes qu'ils sont amenés à piloter, par exemple ceux qui sont utilisés dans tous les dispositifs automatiques, notamment pour la commande des véhicules de transport sur rails. Cette technique de montage de microprocesseurs souvent désignée par les hommes de l'art en la matière par "architecture biprocesseur homogène n est, dans son principe général, bien connue. La structure de ce type de montage comporte deux microprocesseurs identiques aptes à délivrer en sortie des données par cycles d'émissions périodiques, et deux bus de liaison reliant les sorties des deux microprocesseurs aux systèmes qu'ils doivent piloter.Pour assurer à la commande de ces systèmes la sécurité désirée, ce type de structure comporte en outre des moyens permettant d'avoir en permanence une comparaison des données véhiculées par les deux bus, c'est-à-dire un comparateur de bus dont les deux entrées de comparaison sont respectivement reliées aux deux bus, ce comparateur délivrant, sur sa sortie de comparaison, un signal qui est une image du résultat de la comparaison des données véhiculées simultanément par les deux bus. Quand l'un des deux microprocesseurs a un fonctionnement anormal, le comparateur constate une disparité entre les deux ensembles de données véhiculées par les deux bus. Il délivre alors, à sa sortie, un signal qui permet d'alerter et/ou de commander les moyens de sécurité pour éviter que le système piloté ne reçoive des informations erronées. Cette structure donne a priori de bons résultats, mais présente cependant un inconvénient majeur : le risque de non émission, par le comparateur, d'un signal d'alerte, alors que le fonctionnement des deux microprocesseurs est incorrect. Pour prévenir ce risque, le comparateur est réalisé avec des éléments présentant toute la fiabilité voulue. Le résultat est bien entendu atteint, mais au détriment de l'encombrement du dispositif et, surtout, de son prix de revient. La présente invention a pour but de mettre en oeuvre un procédé de surveillance du fonctionnement d'une structure à au moins deux microprocesseurs pour la commande de dispositifs automatiques, qui permette d'obtenir des résultats aussi fiables que ceux donnés par des systèmes selon l'art antérieur et une réalisation de dispositifs de surveillance moins encombrants et moins coûteux, par le fait que les moyens essentiels pour cette réalisation comportent des éléments électroniques moins nombreux et moins cortex que ceux entrant dans la composition du comparateur rappelé ci-dessus. Plus précisément, la présente invention a pour objet un procédé de surveillance du fonctionnement de deux microprocesseurs montés en parallèle ou en redondance, pour la commande de systèmes automatiques, lesdits microprocesseurs émettant des données en cycles successifs, chaque cycle émis étant différent du cycle précédent, caractérisé par le fait qu'il consiste à - décaler l'émission de l'un des deux microprocesseurs par rapport à l'émission de l'autre, de façon que les cycles émis par les deux microprocesseurs soient déphasés d'une valeur donnée, - comparer les données des cycles respectivement émis par les deux microprocesseurs, et à - émettre des signaux de comparaison représentatifs du résultat de ladite comparaison, cesdits signaux de comparaison étant aptes à prendre deux états différents correspondant respectivement à des données identiques et à des données différentes. D'autres caractéristiques et avantages de la présente invention apparattront au cours de la description suivante donnée en regard des dessins annexés à titre illustratif, mais nullement limitatif, dans lesquels La figure l représente un schéma synoptique d'un mode de réalisation d'une architecture biprocesseur permettant de mettre en oeuvre le procédé selon l'invention, La figure 2 représente un ensemble de courbes permettant d'expliciter le procédé selon l'invention, Les figures 3 et 4 représentent respectivement deux modes de réalisation d'un élément entrant dans la composition de la structure selon la figure l, et La figure 5 représente un mode de réalisation d'un détail de l'élément selon la figure 4. L'invention se rapporte à un procédé de surveillance du fonctionnement de deux microprocesseurs montés en parallèle ou en redondance, pour la commande de systèmes automatiques. La figure l représente un schéma synoptique d'une architecture biprocesseur permettant de mettre en oeuvre ce procédé. La structure biprocesseur schématiquement illustrée comporte deux microprocesseurs l, 2 alimentés de façon connue par tout moyen, notamment, chacun, par une horloge 3, 4 dont les sorties sont respectivement reliées à leurs entrées d'alimentation, ces deux microprocesseurs étant simultanément mis en fonctionnement au moyen d'un organe de commande illustré par un interrupteur 5 dont la sortie est reliée à leurs entrées de commande. Les sorties 6, 7, respectivement des deux microprocesseurs l, 2, sont respectivement reliées à des conducteurs 8, 9 bien connus en eux-mêmes et que les techniciens dénomment par le terme de "bus qui est devenu un terme générique. Dans le cadre de la mise en oeuvre du procédé selon l'invention, ces deux microprocesseurs sont choisis pour émettre des données en cycles successifs, chaque cycle émis étant différent du cycle précédent, étant entendu que, pour la sécurité de la commande des dispositifs automatiques pilotés par cette structure biprocesseur, chaque cycle émis par un microprocesseur est identique au cycle correspondant émis par l'autre. Le procédé selon l'invention se caractérise essentiellement par le fait que l'émission des cycles de l'un des deux microprocesseurs est décalée par rapport à l'émission des cycles de l'autre, de façon que les cycles émis soient déphasés d'une valeur donnée. Sur la figure 2, courbe A, est représenté un exemple de cycles 18 véhiculés sur le bus 8, tandis que la courbe B représente les cycles 19 qui sont véhiculés sur le bus 9. Les émissions sont bien décalées l'une par rapport à l'autre, le déphasage des cycles 18 et 19 illustré étant égal à un demi-cycle. Plus précisément, dans l'exemple illustré, les cycles 18 sont en retard de phase par rapport aux cycles 19. Les deux bus 8, 9 sont reliés à un système de commande automatique comportant, par exemple, des mémoires tampons 21, 22. Dans le cadre du procédé selon l'invention, les données véhiculées par les deux bus 8, 9 sont comparées dans un comparateur de bus 23 monté en parallèle sur les deux bus 8, 9, ses deux entrées de comparaison 24, 25 étant respectivement connectées à ces deux bus. Le comparateur 23 compare les deux ensembles de données des cycles 18, 19 respectivement émis par les deux microprocesseurs 1, 2 et émet à sa sortie 26 des signaux de comparaison représentatifs du résultat de la comparaison. Comme illustré sur la figure 2, les deux ensembles de cycles 18, 19 sont déphasés d'un demi-cycle. Les demi-cycles 18-1 et 19-2 sont identiques parce qu'ils appartiennent à des cycles identiques, tandis que les demi-cycles 18-2 et 19-1 sont différents, car appartenant, eux, à des cycles différents. Pour les demi-cycles identiques, les signaux de comparaison délivrés par le comparateur 23 à sa sortie 26 ont un niveau 27, tandis que les signaux de comparaison délivrés pour les demi-cycles différents ont un autre niveau 28. Le signal global 29 prend ainsi la forme représentée sur la courbe C de la figure 2, celle d'un signal carré, dont les demi-périodes dépendent de la valeur du déphasage entre les émissions des cycles 18 et 19. Dans l'exemple de déphasage choisi égal à un demi-cycle, les demi-périodes du signal carré global sont égales. Un signal de comparaison de forme carrée est l'image d'un bon fonctionnement des deux microprocesseurs et, si l'un des deux microprocesseurs, ou les deux, ne fonctionnent pas correctement, le signal obtenu à la sortie 26 du comparateur perd sa forme carrée. Cependant, pour obtenir une sécurité encore plus grande dans la surveillance du fonctionnement de l'ensemble des deux microprocesseurs, le procédé consiste en outre, et avantageusement, à étudier la récurrence des deux états 27, 28 dans le signal de comparaison global 29 délivré à la sortie 26 du comparateur 23, par rapport à au moins une récurrence de référence. Dans un mode de mise en oeuvre avantageux, la ou les récurrences de référence sont élaborées à partir des signaux représentatifs des cycles de données 18, 19 véhiculés sur les bus 8, 9. Dans l'exemple illustré par les deux courbes D et E de la figure 2, cette récurrence est celle des signaux carrés 41, 42 correspondant à la récurrence des cycles véhiculés par les bus 8 et 9. C'est pour cela que le système de mise en oeuvre du procédé illustré sur la figure 1 comporte en outre un circuit de validation 30 dont l'entrée 31 est reliée à la sortie 26 du comparateur 23, et dont deux entrées d'alimentation 32, 33 sont respectivement reliées aux deux bus 8, 9. De cette façon, les signaux de comparaison émis par le comparateur sont analysés pour étudier leur récurrence, par rapport à celle des cycles véhiculés dans les deux bus. Une récurrence identique à celle des cycles émis permet de conclure à un bon fonctionnement des microprocesseurs, mais aussi du comparateur et du circuit de validation. Par contre un résultat correspondant à une différence par rapport à la récurrence de référence est représentatif d'un mauvais fonctionnement. Le circuit de validation 30 délivre ainsi, sur ses sorties 34, 35, un signal représentatif du résultat de la comparaison des récurrences des différents signaux. Ce signal peut être exploité comme signal d'alarme, et même comme signal d'arrêt de la commande du système automatique piloté par les deux microprocesseurs 1 et 2. Sur la courbe F de la figure 2, est représenté un signal 43 image de l'étude qui peut être effectuée dans le circuit de validation 30 et à partir duquel peut etre déterminé le signal d'alarme, comme défini ci-avant. La forme illustrée de ce signal 43 est celle obtenue si les signaux 29, 41 et 42 ont la forme illustrée sur cette figure 2 et elle est représentative d'un bon fonctionnement du système dans son ensemble. Ce signal image 43 est analysé dans le circuit de validation 30 qui délivre à ses sorties 34, 35 des signaux de commande appliqués, par exemple, aux entrées de blocage ou de validation 44, 45 respectivement des deux microprocesseurs 1 et 2, mais aussi aux entrées 46, 47 d'un circuit de commande de mise en arrêt 48 de l'ensemble du système automatique piloté par les deux microprocesseurs. Ce circuit de commande de mise en arrêt 48 couramment dénommé, par les techniciens, chien de garde peut être un relais amplificateur de commande de coupure, par exemple de l'alimentation en énergie du système automatique. Les figures 3 à 5 sont relatives à des modes de réalisation plus particulièrement du circuit de validation 30 défini ci-avant. Le décalage ou la mise en quadrature des cycles des deux microprocesseurs est obtenu par la commande d'une synchronisation de type handshake des deux microprocesseurs en utilisant leurs signaux caractéristiques. Pour l'exemple, le Demandeur a mis en oeuvre le procédé au moyen de deux microprocesseurs vendus dans le commerce sous la référence commerciale MOTOROLA 68000 dont il a utilisé les signaux caractéristiques, à savoir les signaux référencés: - AS : Adress Strobe - DTACK : Data Transfer ACKnowledge - et l'information A=B résultat de la comparaison des deux bus obtenu à la sortie 26 du comparateur de bus 23. Ce fonctionnement en quadrature de cycle est assuré par exemple au moyen d'un microprogramme implanté dans une mémoire 50 du type ROM , qui est l'élément essentiel du circuit de validation 30, comme illustré sur la figure 3. Cette mémoire ROM contrôle de façon séquentielle les changements d'état des signaux AS et DTACK des deux microprocesseurs et le résultat A=B de la comparaison dans le même cycle. Ce microprogramme active les acquittements DTACK envers chaque microprocesseur pour leur permettre de passer alternativement au cycle suivant. Cette fonction de séquencement est décrite dans la mémoire ROM sous forme de graphe d'état qui décrit la microséquence type. Tout écart de cette séquence amène le graphe dans un état puits 51, figure 3.La place puits" 51 peut être décomposée sous forme de graphes pour améliorer la disponibilité par tolérance aux fautes. L'état initial est choisi de manière à acquitter un microprocesseur, par exemple le microprocesseur 1, en premier. L'implantation du microprogramme est faite dans une mémoire ROM dont une partie du bus données 56, figure 3, est rebouclée sur la partie basse du bus adresse 57, pour faciliter le séquencement et assurer la récurrence définie ci-avant. A chaque place du graphe est associée une case mémoire 58 qui contient l'adresse de la place suivante et les actions à activer. L'accès à chaque case mémoire provoque l'acquittement de l'un des deux signaux DTACK pour maintenir la quadrature du cycle et prédispose la place suivante à l'aide de la partie données rebouclée sur la partie basse du bus adresse. Les autres cases seront chargées par le contenu de la place puits" ou poubelle qui sera rebouclée sur elle-même.Les transitions du graphe représentent les changements des états des entrées reliées à la partie haute du bus adresse. L'erreur dans une séquence due, soit à une défaillance matérielle, soit à un mauvais résultat du comparateur des bus, se traduit par l'arrêt du système en plaçant le microprogramme dans l'état "puits" dans lequel les deux signaux DTACKs seront figés, ce qui aura pour conséquence de bloquer l'évolution du programme d'application. Le système ne pourra être débloqué que par l'application d'un signal "RESET" à l'entrée 59 du circuit de validation 30 élaboré par exemple au moyen de l'interrupteur de commande 5 défini ci-avant. La réalisation avantageuse qui a été choisie et réalisée par le Demandeur, comme illustré sur les figures 1 et 4, comporte en fait deux mémoires ROMs 52, 53 contenant chacune des microprogrammes de cons rôle et de séquencement complémentés, excepté les états dits "poubelles". Les sorties DTACK des deux ROMs sont comparées à l'aide de portes "OU exclusif 54, 55 de sécurité dont les sorties sont utilisées comme horloge de séquencement des deux ROMs, figure 4, la figure 5 donnant un exemple de réalisation d'une telle porte "OU exclusif" de sécurité 54, 55. La figure 5 représente un exemple de réalisation d'une porte "OU exclusif de sécurité connue en elle-m#me et qui, schématiquement, comporte quatre diodes 60-63 montées en pont recevant sur leur point milieu 64, 65 les deux signaux à comparer, les deux autres points 66, 67 étant reliés respectivement aux collecteur 68 et émetteur 69 d'un transistor 70 dont la base 71 reçoit les signaux de cadencement des mémoires ROMs. Le collecteur 68 constitue la sortie de la porte "OU" 54, 55. REVENDICATIONS 1. Procédé de surveillance du fonctionnement de deux microprocesseurs montés en parallèle ou en redondance, pour la commande de systèmes automatiques, lesdits microprocesseurs émettant des données en cycles successifs, chaque cycle émis étant différent du cycle précédent, caractérisé par le fait qu'il consiste à - décaler l'émission de l'un des deux microprocesseurs par rapport à l'émission de l'autre, de façon que les cycles émis par les deux microprocesseurs soient déphasés d'une valeur donnée, - comparer les données des cycles respectivement émis par les deux microprocesseurs, et à - émettre des signaux de comparaison représentatifs du résultat de ladite comparaison, cesdits signaux de comparaison étant aptes à prendre deux états différents correspondant respectivement à des données identiques et à des données différentes. 2. Procédé selon la revendication 1, caractérisé par le fait qu'il consiste en outre à étudier la récurrence des deux états desdits signaux de comparaison par rapport à au moins une récurrence de référence, un résultat de récurrences identiques étant représentatif d'un bon fonctionnement desdits microprocesseurs, et un résultat de récurrences différentes étant représentatif d'un mauvais fonctionnement. 3. Procédé selon la revendication 2, caractérisé par le fait que ladite récurrence de référence est élaborée à partir des cycles émis par les deux dits microprocesseurs. 4. Procédé selon l'une des revendications 1 à 3, caractérisé par le fait que le décalage de l'émission de l'un des deux microprocesseurs par rapport à l'émission de l'autre est sensiblement égal à un demi-cycle.